/* * @license * Broadcast Theme (c) Invisible Themes * * This file is included for advanced development by * Shopify Agencies. Modified versions of the theme * code are not supported by Shopify or Invisible Themes. * * In order to use this file you will need to change * theme.js to theme.dev.js in /layout/theme.liquid * */(function(scrollLock,themeAddresses,themeCurrency,Rellax,Flickity,FlickityFade,themeImages){"use strict";(function(){const env={NODE_ENV:"production"};try{if(process){process.env=Object.assign({},process.env),Object.assign(process.env,env);return}}catch{}globalThis.process={env}})(),window.theme=window.theme||{},window.theme.sizes={mobile:480,small:750,large:990,widescreen:1400},window.theme.focusable='button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])';function floatLabels(container){container.querySelectorAll(".form-field").forEach(element=>{const label=element.querySelector("label"),input=element.querySelector("input, textarea");label&&input&&(input.addEventListener("keyup",event=>{event.target.value!==""?label.classList.add("label--float"):label.classList.remove("label--float")}),input.value&&input.value.length&&label.classList.add("label--float"))})}let screenOrientation=getScreenOrientation();window.initialWindowHeight=Math.min(window.screen.height,window.innerHeight);function readHeights(){const h={};return h.windowHeight=Math.min(window.screen.height,window.innerHeight),h.footerHeight=getHeight('[data-section-type*="footer"]'),h.headerHeight=getHeight("[data-header-height]"),h.stickyHeaderHeight=document.querySelector("[data-header-sticky]")?h.headerHeight:0,h.collectionNavHeight=getHeight("[data-collection-nav]"),h.logoHeight=getFooterLogoWithPadding(),h}function setVarsOnResize(){document.addEventListener("theme:resize",resizeVars),setVars()}function setVars(){const{windowHeight,headerHeight,logoHeight,footerHeight,collectionNavHeight}=readHeights();document.documentElement.style.setProperty("--full-height",`${windowHeight}px`),document.documentElement.style.setProperty("--three-quarters",`${windowHeight*(3/4)}px`),document.documentElement.style.setProperty("--two-thirds",`${windowHeight*(2/3)}px`),document.documentElement.style.setProperty("--one-half",`${windowHeight/2}px`),document.documentElement.style.setProperty("--one-third",`${windowHeight/3}px`),document.documentElement.style.setProperty("--collection-nav-height",`${collectionNavHeight}px`),document.documentElement.style.setProperty("--header-height",`${headerHeight}px`),document.documentElement.style.setProperty("--footer-height",`${footerHeight}px`),document.documentElement.style.setProperty("--content-full",`${windowHeight-headerHeight-logoHeight/2}px`),document.documentElement.style.setProperty("--content-min",`${windowHeight-headerHeight-footerHeight}px`),document.querySelector("[data-tracking-consent].popup-cookies--bottom")&&document.documentElement.style.setProperty("--cookie-bar-height",`${document.querySelector("[data-tracking-consent].popup-cookies--bottom").offsetHeight}px`)}function resizeVars(){const{windowHeight,headerHeight,logoHeight,footerHeight,collectionNavHeight}=readHeights(),currentScreenOrientation=getScreenOrientation();(currentScreenOrientation!==screenOrientation||window.innerWidth>window.theme.sizes.mobile)&&(document.documentElement.style.setProperty("--full-height",`${windowHeight}px`),document.documentElement.style.setProperty("--three-quarters",`${windowHeight*(3/4)}px`),document.documentElement.style.setProperty("--two-thirds",`${windowHeight*(2/3)}px`),document.documentElement.style.setProperty("--one-half",`${windowHeight/2}px`),document.documentElement.style.setProperty("--one-third",`${windowHeight/3}px`),screenOrientation=currentScreenOrientation),document.documentElement.style.setProperty("--collection-nav-height",`${collectionNavHeight}px`),document.documentElement.style.setProperty("--header-height",`${headerHeight}px`),document.documentElement.style.setProperty("--footer-height",`${footerHeight}px`),document.documentElement.style.setProperty("--content-full",`${windowHeight-headerHeight-logoHeight/2}px`),document.documentElement.style.setProperty("--content-min",`${windowHeight-headerHeight-footerHeight}px`),document.querySelector("[data-tracking-consent].popup-cookies--bottom")&&document.documentElement.style.setProperty("--cookie-bar-height",`${document.querySelector("[data-tracking-consent].popup-cookies--bottom").offsetHeight}px`)}function getScreenOrientation(){if(window.matchMedia("(orientation: portrait)").matches)return"portrait";if(window.matchMedia("(orientation: landscape)").matches)return"landscape"}function getHeight(selector){const el=document.querySelector(selector);return el?el.offsetHeight:0}function getFooterLogoWithPadding(){const height=getHeight("[data-footer-logo]");return height>0?height+20:0}function debounce(fn,time){let timeout;return function(){if(fn){const functionCall=()=>fn.apply(this,arguments);clearTimeout(timeout),timeout=setTimeout(functionCall,time)}}}function getWindowWidth(){return window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth}function getWindowHeight(){return window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight}function isDesktop(){return getWindowWidth()>=window.theme.sizes.small}function isMobile(){return getWindowWidth()prev?(down=!0,up=!1):position{scrollLockTimer&&clearTimeout(scrollLockTimer),scrollLock.disablePageScroll(e.detail,{allowTouchMove:el=>el.tagName==="TEXTAREA"}),document.documentElement.setAttribute("data-scroll-locked","")})}function unlock(e){const timeout=e.detail;timeout?scrollLockTimer=setTimeout(removeScrollLock,timeout):removeScrollLock()}function removeScrollLock(){scrollLock.clearQueueScrollLocks(),scrollLock.enablePageScroll(),document.documentElement.removeAttribute("data-scroll-locked")}function scrollListener(){let timeout;window.addEventListener("scroll",function(){timeout&&window.cancelAnimationFrame(timeout),timeout=window.requestAnimationFrame(function(){dispatch()})},{passive:!0}),window.addEventListener("theme:scroll:lock",lock),window.addEventListener("theme:scroll:unlock",unlock)}const wrap=(toWrap,wrapperClass="",wrapperOption)=>{const wrapper=wrapperOption||document.createElement("div");return wrapper.classList.add(wrapperClass),toWrap.parentNode.insertBefore(wrapper,toWrap),wrapper.appendChild(toWrap)};function wrapElements(container){container.querySelectorAll(".rte table").forEach(table=>{wrap(table,"rte__table-wrapper"),table.setAttribute("data-scroll-lock-scrollable","")}),container.querySelectorAll('.rte iframe[src*="youtube.com/embed"], .rte iframe[src*="player.vimeo"], .rte iframe#admin_bar_iframe').forEach(frame=>{wrap(frame,"rte__video-wrapper")})}function isTouchDevice(){return"ontouchstart"in window||navigator.maxTouchPoints>0||navigator.msMaxTouchPoints>0}function isTouch(){isTouchDevice()?(document.documentElement.className=document.documentElement.className.replace("no-touch","supports-touch"),window.theme.touch=!0):window.theme.touch=!1}function ariaToggle(container){const toggleButtons=container.querySelectorAll("[data-aria-toggle]");toggleButtons.length&&toggleButtons.forEach(element=>{element.addEventListener("click",function(event){event.preventDefault();const currentTarget=event.currentTarget;currentTarget.setAttribute("aria-expanded",currentTarget.getAttribute("aria-expanded")=="false"?"true":"false");const toggleID=currentTarget.getAttribute("aria-controls"),toggleElement=document.querySelector(`#${toggleID}`),removeExpandingClass=()=>{toggleElement.classList.remove("expanding"),toggleElement.removeEventListener("transitionend",removeExpandingClass)},addExpandingClass=()=>{toggleElement.classList.add("expanding"),toggleElement.removeEventListener("transitionstart",addExpandingClass)};toggleElement.addEventListener("transitionstart",addExpandingClass),toggleElement.addEventListener("transitionend",removeExpandingClass),toggleElement.classList.toggle("expanded")})})}function loading(){document.body.classList.add("is-loaded")}const classes$M={loading:"is-loading"},selectors$13={img:"img.is-loading"};function loadedImagesEventHook(){document.addEventListener("load",e=>{e.target.tagName.toLowerCase()=="img"&&e.target.classList.contains(classes$M.loading)&&(e.target.classList.remove(classes$M.loading),e.target.parentNode.classList.remove(classes$M.loading),e.target.parentNode.parentNode.classList.contains(classes$M.loading)&&e.target.parentNode.parentNode.classList.remove(classes$M.loading))},!0)}function removeLoadingClassFromLoadedImages(container){container.querySelectorAll(selectors$13.img).forEach(img=>{img.complete&&(img.classList.remove(classes$M.loading),img.parentNode.classList.remove(classes$M.loading),img.parentNode.parentNode.classList.contains(classes$M.loading)&&img.parentNode.parentNode.classList.remove(classes$M.loading))})}function isVisible(el){var style=window.getComputedStyle(el);return style.display!=="none"&&style.visibility!=="hidden"}function forceFocus(element,options){options=options||{};var savedTabIndex=element.tabIndex;element.tabIndex=-1,element.dataset.tabIndex=savedTabIndex,element.focus(),typeof options.className<"u"&&element.classList.add(options.className),element.addEventListener("blur",callback);function callback(event){event.target.removeEventListener(event.type,callback),element.tabIndex=savedTabIndex,delete element.dataset.tabIndex,typeof options.className<"u"&&element.classList.remove(options.className)}}function focusHash(options){options=options||{};var hash=window.location.hash,element=document.getElementById(hash.slice(1));if(element&&options.ignore&&element.matches(options.ignore))return!1;hash&&element&&forceFocus(element,options)}function bindInPageLinks(options){options=options||{};var links=Array.prototype.slice.call(document.querySelectorAll('a[href^="#"]'));function queryCheck(selector){return document.getElementById(selector)!==null}return links.filter(function(link){if(link.hash==="#"||link.hash===""||options.ignore&&link.matches(options.ignore)||!queryCheck(link.hash.substr(1)))return!1;var element=document.querySelector(link.hash);return element?(link.addEventListener("click",function(){forceFocus(element,options)}),!0):!1})}function focusable(container){var elements=Array.prototype.slice.call(container.querySelectorAll("[tabindex],[draggable],a[href],area,button:enabled,input:not([type=hidden]):enabled,object,select:enabled,textarea:enabled"));return elements.filter(function(element){return!!((element.offsetWidth||element.offsetHeight||element.getClientRects().length)&&isVisible(element))})}var trapFocusHandlers={};function trapFocus(container,options){options=options||{};var elements=focusable(container),elementToFocus=options.elementToFocus||container,first=elements[0],last=elements[elements.length-1];removeTrapFocus(),trapFocusHandlers.focusin=function(event){container!==event.target&&!container.contains(event.target)&&first&&first===event.target&&first.focus(),!(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==="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),forceFocus(elementToFocus,options)}function removeTrapFocus(){document.removeEventListener("focusin",trapFocusHandlers.focusin),document.removeEventListener("focusout",trapFocusHandlers.focusout),document.removeEventListener("keydown",trapFocusHandlers.keydown)}function autoFocusLastElement(){window.accessibility.lastElement&&document.body.classList.contains("is-focused")&&setTimeout(()=>{window.accessibility.lastElement?.focus()})}function accessibleLinks(elements,options){if(typeof elements!="string")throw new TypeError(elements+" is not a String.");if(elements=document.querySelectorAll(elements),elements.length===0)return;options=options||{},options.messages=options.messages||{};var messages={newWindow:options.messages.newWindow||"Opens in a new window.",external:options.messages.external||"Opens external website.",newWindowExternal:options.messages.newWindowExternal||"Opens external website in a new window."},prefix=options.prefix||"a11y",messageSelectors={newWindow:prefix+"-new-window-message",external:prefix+"-external-message",newWindowExternal:prefix+"-new-window-external-message"};function generateHTML(messages2){var container=document.createElement("ul"),htmlMessages=Object.keys(messages2).reduce(function(html,key){return html+="
  • "+messages2[key]+"
  • "},"");container.setAttribute("hidden",!0),container.innerHTML=htmlMessages,document.body.appendChild(container)}function externalSite(link){return link.hostname!==window.location.hostname}elements.forEach(function(link){var target=link.getAttribute("target"),rel=link.getAttribute("rel"),isExternal=externalSite(link),isTargetBlank=target==="_blank",missingRelNoopener=rel===null||rel.indexOf("noopener")===-1;if(isTargetBlank&&missingRelNoopener){var relValue=rel===null?"noopener":rel+" noopener";link.setAttribute("rel",relValue)}isExternal&&isTargetBlank?link.setAttribute("aria-describedby",messageSelectors.newWindowExternal):isExternal?link.setAttribute("aria-describedby",messageSelectors.external):isTargetBlank&&link.setAttribute("aria-describedby",messageSelectors.newWindow)}),generateHTML(messages)}var a11y=Object.freeze({__proto__:null,forceFocus,focusHash,bindInPageLinks,focusable,trapFocus,removeTrapFocus,autoFocusLastElement,accessibleLinks});const selectors$12={inputSearch:'input[type="search"]',focusedElements:'[aria-selected="true"] a',resetButton:'button[type="reset"]'},classes$L={hidden:"hidden"};class HeaderSearchForm extends HTMLElement{constructor(){super(),this.input=this.querySelector(selectors$12.inputSearch),this.resetButton=this.querySelector(selectors$12.resetButton),this.input&&(this.input.form.addEventListener("reset",this.onFormReset.bind(this)),this.input.addEventListener("input",debounce(event=>{this.onChange(event)},300).bind(this)))}toggleResetButton(){const resetIsHidden=this.resetButton.classList.contains(classes$L.hidden);this.input.value.length>0&&resetIsHidden?this.resetButton.classList.remove(classes$L.hidden):this.input.value.length===0&&!resetIsHidden&&this.resetButton.classList.add(classes$L.hidden)}onChange(){this.toggleResetButton()}shouldResetForm(){return!document.querySelector(selectors$12.focusedElements)}onFormReset(event){event.preventDefault(),this.shouldResetForm()&&(this.input.value="",this.toggleResetButton(),event.target.querySelector(selectors$12.inputSearch).focus())}}customElements.define("header-search-form",HeaderSearchForm);const selectors$11={allVisibleElements:'[role="option"]',ariaSelected:'[aria-selected="true"]',popularSearches:"[data-popular-searches]",predictiveSearch:"predictive-search",predictiveSearchResults:"[data-predictive-search-results]",predictiveSearchStatus:"[data-predictive-search-status]",searchInput:'input[type="search"]',searchPopdown:"[data-popdown]",searchResultsLiveRegion:"[data-predictive-search-live-region-count-value]",searchResultsGroupsWrapper:"[data-search-results-groups-wrapper]",searchForText:"[data-predictive-search-search-for-text]",sectionPredictiveSearch:"#shopify-section-predictive-search",selectedLink:'[aria-selected="true"] a',selectedOption:'[aria-selected="true"] a, button[aria-selected="true"]'};class PredictiveSearch extends HeaderSearchForm{constructor(){super(),this.a11y=a11y,this.abortController=new AbortController,this.allPredictiveSearchInstances=document.querySelectorAll(selectors$11.predictiveSearch),this.cachedResults={},this.input=this.querySelector(selectors$11.searchInput),this.isOpen=!1,this.predictiveSearchResults=this.querySelector(selectors$11.predictiveSearchResults),this.searchPopdown=this.closest(selectors$11.searchPopdown),this.popularSearches=this.searchPopdown?.querySelector(selectors$11.popularSearches),this.searchTerm=""}connectedCallback(){this.input.addEventListener("focus",this.onFocus.bind(this)),this.input.form.addEventListener("submit",this.onFormSubmit.bind(this)),this.addEventListener("focusout",this.onFocusOut.bind(this)),this.addEventListener("keyup",this.onKeyup.bind(this)),this.addEventListener("keydown",this.onKeydown.bind(this))}getQuery(){return this.input.value.trim()}onChange(){super.onChange();const newSearchTerm=this.getQuery();if((!this.searchTerm||!newSearchTerm.startsWith(this.searchTerm))&&this.querySelector(selectors$11.searchResultsGroupsWrapper)?.remove(),this.updateSearchForTerm(this.searchTerm,newSearchTerm),this.searchTerm=newSearchTerm,!this.searchTerm.length){this.reset();return}this.getSearchResults(this.searchTerm)}onFormSubmit(event){(!this.getQuery().length||this.querySelector(selectors$11.selectedLink))&&event.preventDefault()}onFormReset(event){super.onFormReset(event),super.shouldResetForm()&&(this.searchTerm="",this.abortController.abort(),this.abortController=new AbortController,this.closeResults(!0))}shouldResetForm(){return!document.querySelector(selectors$11.selectedLink)}onFocus(){const currentSearchTerm=this.getQuery();currentSearchTerm.length&&(this.searchTerm!==currentSearchTerm?this.onChange():this.getAttribute("results")==="true"?this.open():this.getSearchResults(this.searchTerm))}onFocusOut(){setTimeout(()=>{this.contains(document.activeElement)||this.close()})}onKeyup(event){switch(this.getQuery().length||this.close(!0),event.preventDefault(),event.code){case"ArrowUp":this.switchOption("up");break;case"ArrowDown":this.switchOption("down");break;case"Enter":this.selectOption();break}}onKeydown(event){(event.code==="ArrowUp"||event.code==="ArrowDown")&&event.preventDefault()}updateSearchForTerm(previousTerm,newTerm){const searchForTextElement=this.querySelector(selectors$11.searchForText),currentButtonText=searchForTextElement?.innerText;if(currentButtonText){if(currentButtonText.match(new RegExp(previousTerm,"g"))?.length>1)return;const newButtonText=currentButtonText.replace(previousTerm,newTerm);searchForTextElement.innerText=newButtonText}}switchOption(direction){if(!this.getAttribute("open"))return;const moveUp=direction==="up",selectedElement=this.querySelector(selectors$11.ariaSelected),allVisibleElements=Array.from(this.querySelectorAll(selectors$11.allVisibleElements)).filter(element=>element.offsetParent!==null);let activeElementIndex=0;if(moveUp&&!selectedElement)return;let selectedElementIndex=-1,i=0;for(;selectedElementIndex===-1&&i<=allVisibleElements.length;)allVisibleElements[i]===selectedElement&&(selectedElementIndex=i),i++;if(this.statusElement.textContent="",!moveUp&&selectedElement?activeElementIndex=selectedElementIndex===allVisibleElements.length-1?0:selectedElementIndex+1:moveUp&&(activeElementIndex=selectedElementIndex===0?allVisibleElements.length-1:selectedElementIndex-1),activeElementIndex===selectedElementIndex)return;const activeElement=allVisibleElements[activeElementIndex];activeElement.setAttribute("aria-selected",!0),selectedElement&&selectedElement.setAttribute("aria-selected",!1),this.input.setAttribute("aria-activedescendant",activeElement.id)}selectOption(){const selectedOption=this.querySelector(selectors$11.selectedOption);selectedOption&&selectedOption.click()}getSearchResults(searchTerm){const queryKey=searchTerm.replace(" ","-").toLowerCase();if(this.setLiveRegionLoadingState(),this.cachedResults[queryKey]){this.renderSearchResults(this.cachedResults[queryKey]);return}fetch(`${theme.routes.predictive_search_url}?q=${encodeURIComponent(searchTerm)}&resources[options][fields]=title,product_type,variants.title,variants.sku§ion_id=predictive-search`,{signal:this.abortController.signal}).then(response=>{if(!response.ok){var error=new Error(response.status);throw this.close(),error}return response.text()}).then(text=>{const resultsMarkup=new DOMParser().parseFromString(text,"text/html").querySelector(selectors$11.sectionPredictiveSearch).innerHTML;this.allPredictiveSearchInstances.forEach(predictiveSearchInstance=>{predictiveSearchInstance.cachedResults[queryKey]=resultsMarkup}),this.renderSearchResults(resultsMarkup)}).catch(error=>{if(error?.code!==20)throw this.close(),error})}setLiveRegionLoadingState(){this.statusElement=this.statusElement||this.querySelector(selectors$11.predictiveSearchStatus),this.loadingText=this.loadingText||this.getAttribute("data-loading-text"),this.setLiveRegionText(this.loadingText),this.setAttribute("loading",!0)}setLiveRegionText(statusText){this.statusElement.setAttribute("aria-hidden","false"),this.statusElement.textContent=statusText,setTimeout(()=>{this.statusElement.setAttribute("aria-hidden","true")},1e3)}renderSearchResults(resultsMarkup){this.predictiveSearchResults.innerHTML=resultsMarkup,this.setAttribute("results",!0),this.setLiveRegionResults(),this.open()}setLiveRegionResults(){this.removeAttribute("loading"),this.setLiveRegionText(this.querySelector(selectors$11.searchResultsLiveRegion).textContent)}open(){this.setAttribute("open",!0),this.input.setAttribute("aria-expanded",!0),this.isOpen=!0}close(clearSearchTerm=!1){this.closeResults(clearSearchTerm),this.isOpen=!1}closeResults(clearSearchTerm=!1){clearSearchTerm&&(this.input.value="",this.removeAttribute("results"));const selected=this.querySelector(selectors$11.ariaSelected);selected&&selected.setAttribute("aria-selected",!1),this.input.setAttribute("aria-activedescendant",""),this.removeAttribute("loading"),this.removeAttribute("open"),this.input.setAttribute("aria-expanded",!1),this.predictiveSearchResults?.removeAttribute("style")}reset(){this.predictiveSearchResults.innerHTML="",this.input.val="",this.a11y.removeTrapFocus(),this.popularSearches&&(this.input.dispatchEvent(new Event("blur",{bubbles:!1})),this.a11y.trapFocus(this.searchPopdown,{elementToFocus:this.input}))}}const selectors$10={popoutList:"[data-popout-list]",popoutToggle:"[data-popout-toggle]",popoutToggleText:"[data-popout-toggle-text]",popoutInput:"[data-popout-input]",popoutOptions:"[data-popout-option]",productGridImage:"[data-product-image]",productGridItem:"[data-grid-item]",section:"[data-section-type]"},classes$K={listVisible:"popout-list--visible",visible:"is-visible",active:"is-active",selectPopoutTop:"select-popout--top"},attributes$A={ariaExpanded:"aria-expanded",ariaCurrent:"aria-current",dataValue:"data-value",popoutToggleText:"data-popout-toggle-text",submit:"submit"};class Popout extends HTMLElement{constructor(){super()}connectedCallback(){this.popoutList=this.querySelector(selectors$10.popoutList),this.popoutToggle=this.querySelector(selectors$10.popoutToggle),this.popoutToggleText=this.querySelector(selectors$10.popoutToggleText),this.popoutInput=this.querySelector(selectors$10.popoutInput),this.popoutOptions=this.querySelectorAll(selectors$10.popoutOptions),this.productGridItem=this.popoutList.closest(selectors$10.productGridItem),this.fireSubmitEvent=this.hasAttribute(attributes$A.submit),this.popupToggleFocusoutEvent=evt=>this.onPopupToggleFocusout(evt),this.popupListFocusoutEvent=evt=>this.onPopupListFocusout(evt),this.popupToggleClickEvent=evt=>this.onPopupToggleClick(evt),this.keyUpEvent=evt=>this.onKeyUp(evt),this.bodyClickEvent=evt=>this.onBodyClick(evt),this._connectOptions(),this._connectToggle(),this._onFocusOut(),this.popupListMaxWidth()}onPopupToggleClick(evt){const ariaExpanded=evt.currentTarget.getAttribute(attributes$A.ariaExpanded)==="true";if(this.productGridItem){const productGridItemImage=this.productGridItem.querySelector(selectors$10.productGridImage);productGridItemImage&&productGridItemImage.classList.toggle(classes$K.visible,!ariaExpanded),this.popoutList.style.maxHeight=`${Math.abs(this.popoutToggle.getBoundingClientRect().bottom-this.productGridItem.getBoundingClientRect().bottom)}px`}evt.currentTarget.setAttribute(attributes$A.ariaExpanded,!ariaExpanded),this.popoutList.classList.toggle(classes$K.listVisible),this.popupListMaxWidth(),this.toggleListPosition(),document.body.addEventListener("click",this.bodyClickEvent)}onPopupToggleFocusout(evt){this.contains(evt.relatedTarget)||this._hideList()}onPopupListFocusout(evt){const childInFocus=evt.currentTarget.contains(evt.relatedTarget);this.popoutList.classList.contains(classes$K.listVisible)&&!childInFocus&&this._hideList()}toggleListPosition(){const ariaExpanded=this.querySelector(selectors$10.popoutToggle).getAttribute(attributes$A.ariaExpanded)==="true",windowHeight=window.innerHeight,bottom=this.popoutList.getBoundingClientRect().bottom,removeTopClass=()=>{this.classList.remove(classes$K.selectPopoutTop),this.popoutList.removeEventListener("transitionend",removeTopClass)};ariaExpanded?windowHeight{this.popoutList.style.setProperty("--max-width",`${parseInt(document.body.clientWidth-this.popoutList.getBoundingClientRect().left)}px`)})}popupOptionsClick(evt){if(evt.target.closest(selectors$10.popoutOptions).attributes.href.value==="#"){evt.preventDefault();const attrValue=evt.currentTarget.hasAttribute(attributes$A.dataValue)?evt.currentTarget.getAttribute(attributes$A.dataValue):"";if(this.popoutInput.value=attrValue,this.popoutInput.disabled&&this.popoutInput.removeAttribute("disabled"),this.fireSubmitEvent)this._submitForm(attrValue);else{const currentTarget=evt.currentTarget.parentElement,listTargetElement=this.popoutList.querySelector(`.${classes$K.active}`),targetAttribute=this.popoutList.querySelector(`[${attributes$A.ariaCurrent}]`);this.popoutInput.dispatchEvent(new Event("change")),listTargetElement&&(listTargetElement.classList.remove(classes$K.active),currentTarget.classList.add(classes$K.active)),this.popoutInput.name=="quantity"&&!currentTarget.nextSibling&&this.classList.add(classes$K.active),targetAttribute&&targetAttribute.hasAttribute(`${attributes$A.ariaCurrent}`)&&(targetAttribute.removeAttribute(`${attributes$A.ariaCurrent}`),evt.currentTarget.setAttribute(`${attributes$A.ariaCurrent}`,"true")),attrValue!==""&&(this.popoutToggleText.innerHTML=attrValue,this.popoutToggleText.hasAttribute(attributes$A.popoutToggleText)&&this.popoutToggleText.getAttribute(attributes$A.popoutToggleText)!==""&&this.popoutToggleText.setAttribute(attributes$A.popoutToggleText,attrValue)),this.onPopupToggleFocusout(evt),this.onPopupListFocusout(evt)}}}onKeyUp(evt){evt.code==="Escape"&&(this._hideList(),this.popoutToggle.focus())}onBodyClick(evt){const isOption=this.contains(evt.target);this.popoutList.classList.contains(classes$K.listVisible)&&!isOption&&this._hideList()}_connectToggle(){this.popoutToggle.addEventListener("click",this.popupToggleClickEvent)}_connectOptions(){this.popoutOptions.length&&this.popoutOptions.forEach(element=>{element.addEventListener("click",evt=>this.popupOptionsClick(evt))})}_onFocusOut(){this.addEventListener("keyup",this.keyUpEvent),this.popoutToggle.addEventListener("focusout",this.popupToggleFocusoutEvent),this.popoutList.addEventListener("focusout",this.popupListFocusoutEvent)}_submitForm(){const form=this.closest("form");form&&form.submit()}_hideList(){this.popoutList.classList.remove(classes$K.listVisible),this.popoutToggle.setAttribute(attributes$A.ariaExpanded,!1),this.toggleListPosition(),document.body.removeEventListener("click",this.bodyClickEvent)}}class QuantityCounter extends HTMLElement{constructor(){super()}connectedCallback(){this.input=this.querySelector("input"),this.changeEvent=new Event("change",{bubbles:!0}),this.buttonClickEvent=this.onButtonClick.bind(this),this.onQuantityChangeEvent=this.onQuantityChange.bind(this),this.input.addEventListener("change",this.onQuantityChangeEvent),this.querySelectorAll("button").forEach(button=>button.addEventListener("click",this.buttonClickEvent))}onButtonClick(event){event.preventDefault();const previousValue=this.input.value,button=event.target.nodeName=="BUTTON"?event.target:event.target.closest("button");button.name==="increase"&&this.input.stepUp(),button.name==="decrease"&&this.input.stepDown(),previousValue!==this.input.value&&this.input.dispatchEvent(this.changeEvent)}onQuantityChange(){this.input.name=="updates[]"&&this.updateCart()}updateCart(){this.quantityValue!==""&&this.dispatchEvent(new CustomEvent("theme:cart:update",{bubbles:!0,detail:{id:this.input.dataset.id,quantity:this.input.value}}))}}const selectors$$={aos:"[data-aos]:not(.aos-animate)",aosAnchor:"[data-aos-anchor]"},classes$J={aosAnimate:"aos-animate"},observerConfig={attributes:!1,childList:!0,subtree:!0};let anchorContainers=[];const mutationCallback=mutationList=>{for(const mutation of mutationList)if(mutation.type==="childList"){const element=mutation.target,elementsToAnimate=element.querySelectorAll(selectors$$.aos),anchors=element.querySelectorAll(selectors$$.aosAnchor);elementsToAnimate.length&&elementsToAnimate.forEach(element2=>{aosItemObserver.observe(element2)}),anchors.length&&initAnchorObservers(anchors)}},aosItemObserver=new IntersectionObserver((entries,observer)=>{entries.forEach(entry=>{entry.isIntersecting&&(entry.target.classList.add(classes$J.aosAnimate),observer.unobserve(entry.target))})},{root:null,rootMargin:"0px",threshold:[0,.1,.25,.5,.75,1]}),aosAnchorObserver=new IntersectionObserver((entries,observer)=>{entries.forEach(entry=>{if(entry.intersectionRatio){const elementsToAnimate=entry.target.querySelectorAll(selectors$$.aos);elementsToAnimate.length&&elementsToAnimate.forEach(item=>{item.classList.add(classes$J.aosAnimate)}),observer.unobserve(entry.target)}})},{root:null,rootMargin:"0px",threshold:[.1,.25,.5,.75,1]});function bodyMutationObserver(){new MutationObserver(mutationCallback).observe(document.body,observerConfig)}function elementsIntersectionObserver(){const elementsToAnimate=document.querySelectorAll(selectors$$.aos);elementsToAnimate.length&&elementsToAnimate.forEach(element=>{aosItemObserver.observe(element)})}function anchorsIntersectionObserver(){const anchors=document.querySelectorAll(selectors$$.aosAnchor);anchors.length&&initAnchorObservers(anchors)}function initAnchorObservers(anchors){anchors.length&&anchors.forEach(anchor=>{const containerId=anchor.dataset.aosAnchor;if(containerId&&anchorContainers.indexOf(containerId)===-1){const container=document.querySelector(containerId);container&&(aosAnchorObserver.observe(container),anchorContainers.push(containerId))}})}function initAnimations(){elementsIntersectionObserver(),anchorsIntersectionObserver(),bodyMutationObserver()}const selectors$_={img:"img",template:"template"},attributes$z={srcset:"srcset"};class DeferredImage extends HTMLElement{constructor(){super(),this.isRendered=!1}connectedCallback(){if(this.isRendered)return;const options={threshold:[.01,.25,.5,.75,1]},observer=new IntersectionObserver(entries=>{entries.forEach(entry=>{if(entry.intersectionRatio>0){const templateContent=this.querySelector(selectors$_.template)?.content.firstElementChild.cloneNode(!0);this.appendChild(templateContent),this.reloadSrcset(this),observer.disconnect()}})},options);observer.observe(this),this.isRendered=!0}reloadSrcset(container){container&&container.querySelectorAll(selectors$_.img).forEach(img=>{const srcset=img.getAttribute(attributes$z.srcset);img.setAttribute(attributes$z.srcset,""),img.setAttribute(attributes$z.srcset,srcset)})}}const selectors$Z={deferredMediaButton:"[data-deferred-media-button]",media:"video, model-viewer, iframe",youtube:'[data-host="youtube"]',vimeo:'[data-host="vimeo"]',productGridItem:"[data-grid-item]",section:".shopify-section",template:"template",video:"video",productModel:"product-model"},attributes$y={loaded:"loaded",autoplay:"autoplay"};class DeferredMedia extends HTMLElement{constructor(){super(),this.querySelector(selectors$Z.deferredMediaButton)?.addEventListener("click",this.loadContent.bind(this)),this.section=this.closest(selectors$Z.section),this.productGridItem=this.closest(selectors$Z.productGridItem),this.hovered=!1,this.mouseEnterEvent=()=>this.mouseEnterActions(),this.mouseLeaveEvent=()=>this.mouseLeaveActions()}connectedCallback(){this.productGridItem&&(this.section.addEventListener("mouseover",this.mouseOverEvent,{once:!0}),this.addEventListener("mouseenter",this.mouseEnterEvent),this.addEventListener("mouseleave",this.mouseLeaveEvent))}disconnectedCallback(){this.productGridItem&&(this.section.removeEventListener("mouseover",this.mouseOverEvent,{once:!0}),this.removeEventListener("mouseenter",this.mouseEnterEvent),this.removeEventListener("mouseleave",this.mouseLeaveEvent))}mouseEnterActions(){this.hovered=!0,this.videoActions(),this.getAttribute(attributes$y.loaded)||this.loadContent()}mouseLeaveActions(){this.hovered=!1,this.videoActions()}videoActions(){if(this.getAttribute(attributes$y.loaded)){const youtube=this.querySelector(selectors$Z.youtube),vimeo=this.querySelector(selectors$Z.vimeo),mediaExternal=youtube||vimeo,mediaNative=this.querySelector(selectors$Z.video);if(mediaExternal){let action=this.hovered?"playVideo":"pauseVideo",string=`{"event":"command","func":"${action}","args":""}`;vimeo&&(action=this.hovered?"play":"pause",string=`{"method":"${action}"}`),mediaExternal.contentWindow.postMessage(string,"*"),mediaExternal.addEventListener("load",e=>{this.videoActions()})}else mediaNative&&(this.hovered?mediaNative.play():mediaNative.pause())}}loadContent(focus=!0){if(this.pauseAllMedia(),!this.getAttribute(attributes$y.loaded)){const content=document.createElement("div"),templateContent=this.querySelector(selectors$Z.template).content.firstElementChild.cloneNode(!0);content.appendChild(templateContent),this.setAttribute(attributes$y.loaded,!0);const mediaElement=this.appendChild(content.querySelector(selectors$Z.media));focus&&mediaElement.focus(),mediaElement.nodeName=="VIDEO"&&mediaElement.getAttribute(attributes$y.autoplay)&&mediaElement.play(),this.productGridItem&&this.videoActions()}}pauseAllMedia(){document.querySelectorAll(selectors$Z.youtube).forEach(video=>{video.contentWindow.postMessage('{"event":"command","func":"pauseVideo","args":""}',"*")}),document.querySelectorAll(selectors$Z.vimeo).forEach(video=>{video.contentWindow.postMessage('{"method":"pause"}',"*")}),document.querySelectorAll(selectors$Z.video).forEach(video=>video.pause()),document.querySelectorAll(selectors$Z.productModel).forEach(model=>{model.modelViewerUI&&model.modelViewerUI.pause()})}}const classes$I={visible:"is-visible"};class IsInView{constructor(container,itemSelector){!container||!itemSelector||(this.observer=null,this.container=container,this.itemSelector=itemSelector,this.init())}init(){const options={root:this.container,threshold:[0,.5,.75,1]};this.observer=new IntersectionObserver(entries=>{entries.forEach(entry=>{entry.intersectionRatio>.5?entry.target.classList.add(classes$I.visible):entry.target.classList.remove(classes$I.visible)})},options),this.container.querySelectorAll(this.itemSelector)?.forEach(item=>{this.observer.observe(item)})}destroy(){this.observer.disconnect()}}const classes$H={dragging:"is-dragging",enabled:"is-enabled",scrolling:"is-scrolling",visible:"is-visible"},selectors$Y={image:"img, svg",productImage:"[data-product-image]",slide:"[data-grid-item]",slider:"[data-grid-slider]"};class DraggableSlider{constructor(sliderElement){this.slider=sliderElement,this.isDown=!1,this.startX=0,this.scrollLeft=0,this.velX=0,this.scrollAnimation=null,this.isScrolling=!1,this.duration=800,this.scrollStep=this.scrollStep.bind(this),this.scrollToSlide=this.scrollToSlide.bind(this),this.handleMouseDown=this.handleMouseDown.bind(this),this.handleMouseLeave=this.handleMouseLeave.bind(this),this.handleMouseUp=this.handleMouseUp.bind(this),this.handleMouseMove=this.handleMouseMove.bind(this),this.handleMouseWheel=this.handleMouseWheel.bind(this),this.slider.addEventListener("mousedown",this.handleMouseDown),this.slider.addEventListener("mouseleave",this.handleMouseLeave),this.slider.addEventListener("mouseup",this.handleMouseUp),this.slider.addEventListener("mousemove",this.handleMouseMove),this.slider.addEventListener("wheel",this.handleMouseWheel,{passive:!0}),this.slider.classList.add(classes$H.enabled)}handleMouseDown(e){e.preventDefault(),this.isDown=!0,this.startX=e.pageX-this.slider.offsetLeft,this.scrollLeft=this.slider.scrollLeft,this.cancelMomentumTracking()}handleMouseLeave(){this.isDown&&(this.isDown=!1,this.beginMomentumTracking())}handleMouseUp(){this.isDown=!1,this.beginMomentumTracking()}handleMouseMove(e){if(!this.isDown)return;e.preventDefault();const walk=(e.pageX-this.slider.offsetLeft-this.startX)*1,prevScrollLeft=this.slider.scrollLeft,direction=walk>0?1:-1;this.slider.classList.add(classes$H.dragging,classes$H.scrolling),this.slider.scrollLeft=this.scrollLeft-walk,this.slider.scrollLeft!==prevScrollLeft&&(this.velX=this.slider.scrollLeft-prevScrollLeft||direction)}handleMouseWheel(){this.cancelMomentumTracking(),this.slider.classList.remove(classes$H.scrolling)}beginMomentumTracking(){this.isScrolling=!1,this.slider.classList.remove(classes$H.dragging),this.cancelMomentumTracking(),this.scrollToSlide()}cancelMomentumTracking(){cancelAnimationFrame(this.scrollAnimation)}scrollToSlide(){if(!this.velX&&!this.isScrolling)return;const slide=this.slider.querySelector(`${selectors$Y.slide}.${classes$H.visible}`);if(!slide)return;const gap=parseInt(window.getComputedStyle(slide).marginRight)||0,slideWidth=slide.offsetWidth+gap,targetPosition=slide.offsetLeft,direction=this.velX>0?1:-1,slidesToScroll=Math.floor(Math.abs(this.velX)/100)||1;this.startPosition=this.slider.scrollLeft,this.distance=targetPosition-this.startPosition,this.startTime=performance.now(),this.isScrolling=!0,direction<0&&this.velX0&&this.velXthis.buttonArrowClickEvent(e),this.slidesObserver=null,this.firstLastSlidesObserver=null,this.isDragging=!1,this.toggleSlider=this.toggleSlider.bind(this)}connectedCallback(){this.init(),this.addEventListener("theme:grid-slider:init",this.init)}init(){this.slider=this.querySelector(selectors$X.slider),this.slides=this.querySelectorAll(selectors$X.slide),this.buttons=this.querySelectorAll(selectors$X.buttonArrow),this.toggleSlider(),document.addEventListener("theme:resize:width",this.toggleSlider)}toggleSlider(){const sliderWidth=this.slider.clientWidth,slidesWidth=this.getSlidesWidth();if(sliderWidth{buttonArrow.addEventListener("click",this.onButtonArrowClick)})}buttonArrowClickEvent(e){e.preventDefault();const firstVisibleSlide=this.slider.querySelector(`${selectors$X.slide}.${classes$G.visible}`);let slide=null;e.target.hasAttribute(attributes$x.buttonPrev)&&(slide=firstVisibleSlide?.previousElementSibling),e.target.hasAttribute(attributes$x.buttonNext)&&(slide=firstVisibleSlide?.nextElementSibling),this.goToSlide(slide)}removeArrows(){this.querySelector(`.${classes$G.arrows}`)?.remove()}goToSlide(slide){slide&&this.slider.scrollTo({top:0,left:slide.offsetLeft,behavior:"smooth"})}getSlidesWidth(){return this.slider.querySelector(selectors$X.slide)?.clientWidth*this.slider.querySelectorAll(selectors$X.slide).length}toggleArrowsObserver(){if(this.buttonPrev&&this.buttonNext){const slidesCount=this.slides.length,firstSlide=this.slides[0],lastSlide=this.slides[slidesCount-1],config={attributes:!0,childList:!1,subtree:!1},callback=mutationList=>{for(const mutation of mutationList)if(mutation.type==="attributes"){const slide=mutation.target,isDisabled=!!slide.classList.contains(classes$G.visible);slide==firstSlide&&(this.buttonPrev.disabled=isDisabled),slide==lastSlide&&(this.buttonNext.disabled=isDisabled)}};firstSlide&&lastSlide&&(this.firstLastSlidesObserver=new MutationObserver(callback),this.firstLastSlidesObserver.observe(firstSlide,config),this.firstLastSlidesObserver.observe(lastSlide,config))}}positionArrows(){const targetElement=this.slider.querySelector(selectors$X.productImage)?.parentNode||this.slider.querySelector(selectors$X.collectionImage)||this.slider.querySelector(selectors$X.columnImage)||this.slider;targetElement&&this.style.setProperty("--button-position",`${targetElement.clientHeight/2}px`)}arrowsResizeObserver(){document.addEventListener("theme:resize:width",this.positionArrows)}disconnectedCallback(){this.destroy(),document.removeEventListener("theme:resize:width",this.toggleSlider)}destroy(){this.isInitialized=!1,this.draggableSlider?.destroy(),this.draggableSlider=null,this.slidesObserver?.destroy(),this.slidesObserver=null,this.removeArrows(),document.removeEventListener("theme:resize:width",this.positionArrows)}}const selectors$W={time:"time",days:"[data-days]",hours:"[data-hours]",minutes:"[data-minutes]",seconds:"[data-seconds]",shopifySection:".shopify-section"},attributes$w={expirationBehavior:"data-expiration-behavior"},classes$F={showMessage:"show-message",hideCountdown:"hidden"},settings$3={hideSection:"hide-section",showMessage:"show-message"};class CountdownTimer extends HTMLElement{constructor(){super(),this.shopifySection=this.closest(selectors$W.shopifySection),this.expirationBehavior=this.getAttribute(attributes$w.expirationBehavior),this.time=this.querySelector(selectors$W.time),this.days=this.querySelector(selectors$W.days),this.hours=this.querySelector(selectors$W.hours),this.minutes=this.querySelector(selectors$W.minutes),this.seconds=this.querySelector(selectors$W.seconds),this.endDate=Date.parse(this.time.dateTime),this.daysInMs=1e3*60*60*24,this.hoursInMs=this.daysInMs/24,this.minutesInMs=this.hoursInMs/60,this.secondsInMs=this.minutesInMs/60,this.shouldHideOnComplete=this.expirationBehavior===settings$3.hideSection,this.shouldShowMessage=this.expirationBehavior===settings$3.showMessage,this.update=this.update.bind(this)}connectedCallback(){if(isNaN(this.endDate)){this.onComplete();return}if(this.endDate<=Date.now()){this.onComplete();return}this.interval=setInterval(this.update,1e3)}disconnectedCallback(){this.stopTimer()}convertTime(timeInMs){const days=this.formatDigits(parseInt(timeInMs/this.daysInMs,10));timeInMs-=days*this.daysInMs;const hours=this.formatDigits(parseInt(timeInMs/this.hoursInMs,10));timeInMs-=hours*this.hoursInMs;const minutes=this.formatDigits(parseInt(timeInMs/this.minutesInMs,10));timeInMs-=minutes*this.minutesInMs;const seconds=this.formatDigits(parseInt(timeInMs/this.secondsInMs,10));return{days,hours,minutes,seconds}}formatDigits(number){return number<10&&(number="0"+number),number}render(timer){this.days.textContent=timer.days,this.hours.textContent=timer.hours,this.minutes.textContent=timer.minutes,this.seconds.textContent=timer.seconds}stopTimer(){clearInterval(this.interval)}onComplete(){this.render({days:0,hours:0,minutes:0,seconds:0}),this.shouldHideOnComplete&&this.shopifySection.classList.add(classes$F.hideCountdown),this.shouldShowMessage&&this.classList.add(classes$F.showMessage)}update(){const timeNow=new Date().getTime(),timeDiff=this.endDate-timeNow;timeDiff<=0&&(this.stopTimer(),this.onComplete());const timeRemaining=this.convertTime(timeDiff);this.render(timeRemaining)}}window.requestIdleCallback=window.requestIdleCallback||function(cb){var start=Date.now();return setTimeout(function(){cb({didTimeout:!1,timeRemaining:function(){return Math.max(0,50-(Date.now()-start))}})},1)},window.cancelIdleCallback=window.cancelIdleCallback||function(id){clearTimeout(id)},window.theme.settings.enableAnimations&&initAnimations(),resizeListener(),scrollListener(),isTouch(),setVars(),loadedImagesEventHook(),window.addEventListener("DOMContentLoaded",()=>{setVarsOnResize(),ariaToggle(document),floatLabels(document),wrapElements(document),removeLoadingClassFromLoadedImages(document),loading(),requestIdleCallback(()=>{Shopify.visualPreviewMode&&document.documentElement.classList.add("preview-mode")})}),document.addEventListener("shopify:section:load",e=>{const container=e.target;floatLabels(container),wrapElements(container),ariaToggle(document),setVarsOnResize()}),customElements.get("popout-select")||customElements.define("popout-select",Popout),customElements.get("quantity-counter")||customElements.define("quantity-counter",QuantityCounter),customElements.get("predictive-search")||customElements.define("predictive-search",PredictiveSearch),customElements.get("deferred-image")||customElements.define("deferred-image",DeferredImage),customElements.get("deferred-media")||customElements.define("deferred-media",DeferredMedia),customElements.get("grid-slider")||customElements.define("grid-slider",GridSlider),customElements.get("countdown-timer")||customElements.define("countdown-timer",CountdownTimer);const showElement=(elem,removeProp=!1,prop="block")=>{elem&&(removeProp?elem.style.removeProperty("display"):elem.style.display=prop)};Shopify.Products=function(){const config={howManyToShow:4,howManyToStoreInMemory:10,wrapperId:"recently-viewed-products",section:null,onComplete:null};let productHandleQueue=[],wrapper=null,howManyToShowItems=null;const today=new Date,expiresDate=new Date;expiresDate.setTime(today.getTime()+36e5*24*90);const cookie={configuration:{expires:expiresDate.toGMTString(),path:"/",domain:window.location.hostname,sameSite:"none",secure:!0},name:"shopify_recently_viewed",write:function(recentlyViewed){const recentlyViewedString=recentlyViewed.join(" ");document.cookie=`${this.name}=${recentlyViewedString}; expires=${this.configuration.expires}; path=${this.configuration.path}; domain=${this.configuration.domain}; sameSite=${this.configuration.sameSite}; secure=${this.configuration.secure}`},read:function(){let recentlyViewed=[],cookieValue=null;return document.cookie.indexOf("; ")!==-1&&document.cookie.split("; ").find(row=>row.startsWith(this.name))&&(cookieValue=document.cookie.split("; ").find(row=>row.startsWith(this.name)).split("=")[1]),cookieValue!==null&&(recentlyViewed=cookieValue.split(" ")),recentlyViewed},destroy:function(){document.cookie=`${this.name}=null; expires=${this.configuration.expires}; path=${this.configuration.path}; domain=${this.configuration.domain}`},remove:function(productHandle){const recentlyViewed=this.read(),position=recentlyViewed.indexOf(productHandle);position!==-1&&(recentlyViewed.splice(position,1),this.write(recentlyViewed))}},finalize=(wrapper2,section)=>{showElement(wrapper2,!0);const cookieItemsLength=cookie.read().length;if(Shopify.recentlyViewed&&howManyToShowItems&&cookieItemsLength&&cookieItemsLength{productHandleQueue2.length&&shownresponse.text()).then(product=>{const aosDelay=shown*100,aosAnchor=wrapper2.id?`#${wrapper2.id}`:"",fresh=document.createElement("div");let productReplaced=product;productReplaced=productReplaced.includes("||itemAnimationDelay||")?productReplaced.replaceAll("||itemAnimationDelay||",aosDelay):productReplaced,productReplaced=productReplaced.includes("||itemAnimationAnchor||")?productReplaced.replaceAll("||itemAnimationAnchor||",aosAnchor):productReplaced,fresh.innerHTML=productReplaced,wrapper2.innerHTML+=fresh.querySelector("[data-api-content]").innerHTML,productHandleQueue2.shift(),shown++,moveAlong(shown,productHandleQueue2,wrapper2,section)}).catch(()=>{cookie.remove(productHandleQueue2[0]),productHandleQueue2.shift(),moveAlong(shown,productHandleQueue2,wrapper2,section)}):finalize(wrapper2,section)};return{showRecentlyViewed:function(params){const paramsNew=params||{},shown=0;Object.assign(config,paramsNew),productHandleQueue=cookie.read(),wrapper=document.querySelector(`#${config.wrapperId}`),howManyToShowItems=config.howManyToShow,config.howManyToShow=Math.min(productHandleQueue.length,config.howManyToShow),config.howManyToShow&&wrapper&&moveAlong(shown,productHandleQueue,wrapper,config.section)},getConfig:function(){return config},clearList:function(){cookie.destroy()},recordRecentlyViewed:function(params){Object.assign(config,params||{});let recentlyViewed=cookie.read();if(window.location.pathname.indexOf("/products/")!==-1){let productHandle=decodeURIComponent(window.location.pathname).match(/\/products\/([a-z0-9\-]|[\u3000-\u303F]|[\u3040-\u309F]|[\u30A0-\u30FF]|[\uFF00-\uFFEF]|[\u4E00-\u9FAF]|[\u2605-\u2606]|[\u2190-\u2195]|[\u203B]|[\w\u0430-\u044f]|[\u0400-\u04FF]|[\u0900-\u097F]|[\u0590-\u05FF\u200f\u200e]|[\u0621-\u064A\u0660-\u0669 ])+/)[0].split("/products/")[1];config.handle&&(productHandle=config.handle);const position=recentlyViewed.indexOf(productHandle);position===-1?(recentlyViewed.unshift(productHandle),recentlyViewed=recentlyViewed.splice(0,config.howManyToStoreInMemory)):(recentlyViewed.splice(position,1),recentlyViewed.unshift(productHandle)),cookie.write(recentlyViewed)}},hasProducts:cookie.read().length>0}}();const getUrlString=(params,keys=[],isArray=!1)=>{const p=Object.keys(params).map(key=>{let val=params[key];if(Object.prototype.toString.call(val)==="[object Object]"||Array.isArray(val))return Array.isArray(params)?keys.push(""):keys.push(key),getUrlString(val,keys,Array.isArray(val));{let tKey=key;return keys.length>0&&(tKey=(isArray?keys:[...keys,key]).reduce((str,k)=>str===""?k:`${str}[${k}]`,"")),isArray?`${tKey}[]=${val}`:`${tKey}=${val}`}}).join("&");return keys.pop(),p};function FetchError(object){this.status=object.status||null,this.headers=object.headers||null,this.json=object.json||null,this.body=object.body||null}FetchError.prototype=Error.prototype;const selectors$V={templateNoShipping:"[data-template-no-shipping]",getRates:".get-rates",addressContainer:"#address_container",addressCountry:"#address_country",addressProvince:"#address_province",addressZip:"#address_zip",wrapper:"#wrapper-response",template:"#shipping-calculator-response-template"},attributes$v={templateNoShipping:"data-template-no-shipping",default:"data-default"},classes$E={hidden:"is-hidden",error:"error",center:"center",success:"success",disabled:"disabled",getRatesTrigger:"get-rates--trigger"},texts={error:"Error : country is not supported.",feedback:"We do not ship to this destination.",feedbackLabel:"Error : "};class ShippingCalculator extends HTMLElement{constructor(){super(),this.getRatesButton=this.querySelector(selectors$V.getRates),this.fieldsContainer=this.querySelector(selectors$V.addressContainer),this.selectCountry=this.querySelector(selectors$V.addressCountry),this.selectProvince=this.querySelector(selectors$V.addressProvince),this.template=this.querySelector(selectors$V.template),this.wrapper=this.querySelector(selectors$V.wrapper),this.onCountryChangeEvent=()=>this.onCountryChange(),this.onButtonClickEvent=()=>this.onButtonClick()}connectedCallback(){const htmlEl=document.querySelector("html");let locale="en";if(htmlEl.hasAttribute("lang")&&htmlEl.getAttribute("lang")!==""&&(locale=htmlEl.getAttribute("lang")),this.fieldsContainer&&themeAddresses.AddressForm(this.fieldsContainer,locale,{shippingCountriesOnly:!0}),this.selectCountry&&this.selectCountry.hasAttribute(attributes$v.default)&&this.selectProvince&&this.selectProvince.hasAttribute(attributes$v.default)&&this.selectCountry.addEventListener("change",this.onCountryChangeEvent),this.getRatesButton&&(this.getRatesButton.addEventListener("click",this.onButtonClickEvent),theme.settings.customerLoggedIn&&this.getRatesButton.classList.contains(classes$E.getRatesTrigger))){const zipElem=document.querySelector(selectors$V.addressZip);zipElem&&zipElem.value&&this.getRatesButton.dispatchEvent(new Event("click"))}}disconnectedCallback(){this.selectCountry&&this.selectCountry.hasAttribute(attributes$v.default)&&this.selectProvince&&this.selectProvince.hasAttribute(attributes$v.default)&&this.selectCountry.removeEventListener("change",this.onCountryChangeEvent),this.getRatesButton&&this.getRatesButton.removeEventListener("click",this.onButtonClickEvent)}onCountryChange(){this.selectCountry.removeAttribute(attributes$v.default),this.selectProvince.removeAttribute(attributes$v.default)}onButtonClick(){for(this.disableButtons();this.wrapper.firstChild;)this.wrapper.removeChild(this.wrapper.firstChild);this.wrapper.classList.add(classes$E.hidden);const shippingAddress={};let elemCountryVal=this.selectCountry.value,elemProvinceVal=this.selectProvince.value;const elemCountryData=this.selectCountry.getAttribute(attributes$v.default);elemCountryVal===""&&elemCountryData&&elemCountryData!==""&&(elemCountryVal=elemCountryData);const elemProvinceData=this.selectProvince.getAttribute(attributes$v.default);elemProvinceVal===""&&elemProvinceData&&elemProvinceData!==""&&(elemProvinceVal=elemProvinceData),shippingAddress.zip=document.querySelector(selectors$V.addressZip).value||"",shippingAddress.country=elemCountryVal||"",shippingAddress.province=elemProvinceVal||"",this.getCartShippingRatesForDestination(shippingAddress)}formatRate(cents){return cents==="0.00"?window.theme.strings.free:themeCurrency.formatMoney(cents,theme.moneyFormat)}render(response){if(this.template&&this.wrapper){this.wrapper.innerHTML="";let ratesList="",ratesText="",successClass=`${classes$E.error} ${classes$E.center}`,markup=this.template.innerHTML;const rateRegex=/[^[\]]+(?=])/g;if(response.rates&&response.rates.length){let rateTemplate=rateRegex.exec(markup)[0];response.rates.forEach(rate=>{let rateHtml=rateTemplate;rateHtml=rateHtml.replace(/\|\|rateName\|\|/,rate.name),rateHtml=rateHtml.replace(/\|\|ratePrice\|\|/,this.formatRate(rate.price)),ratesList+=rateHtml})}if(response.success){successClass=`${classes$E.success} ${classes$E.center}`;const createdNewElem=document.createElement("div");createdNewElem.innerHTML=this.template.innerHTML;const noShippingElem=createdNewElem.querySelector(selectors$V.templateNoShipping);response.rates.length<1&&noShippingElem&&(ratesText=noShippingElem.getAttribute(attributes$v.templateNoShipping))}else ratesText=response.errorFeedback;markup=markup.replace(rateRegex,"").replace("[]",""),markup=markup.replace(/\|\|ratesList\|\|/g,ratesList),markup=markup.replace(/\|\|successClass\|\|/g,successClass),markup=markup.replace(/\|\|ratesText\|\|/g,ratesText),this.wrapper.innerHTML+=markup,this.wrapper.classList.remove(classes$E.hidden)}}enableButtons(){this.getRatesButton.removeAttribute("disabled"),this.getRatesButton.classList.remove(classes$E.disabled),this.getRatesButton.textContent=theme.strings.shippingCalcSubmitButton}disableButtons(){this.getRatesButton.setAttribute("disabled","disabled"),this.getRatesButton.classList.add(classes$E.disabled),this.getRatesButton.textContent=theme.strings.shippingCalcSubmitButtonDisabled}getCartShippingRatesForDestination(shippingAddress){const encodedShippingAddressData=encodeURI(getUrlString({shipping_address:shippingAddress})),url=`${theme.routes.cart_url}/shipping_rates.json?${encodedShippingAddressData}`;fetch(url).then(this.handleErrors).then(response=>response.text()).then(response=>{const rates=JSON.parse(response).shipping_rates;this.onCartShippingRatesUpdate(rates,shippingAddress)}).catch(error=>{this.onError(error.json)})}fullMessagesFromErrors(errors){const fullMessages=[];for(const error in errors)for(const message of errors[error])fullMessages.push(message);return fullMessages}handleErrors(response){return response.ok?response:response.json().then(function(json){throw new FetchError({status:response.statusText,headers:response.headers,json})})}onError(data){this.enableButtons();let feedback="";data.message?feedback=data.message+"("+data.status+"): "+data.description:feedback=texts.feedbackLabel+this.fullMessagesFromErrors(data).join("; "),feedback===texts.error&&(feedback=texts.feedback),this.render({rates:[],errorFeedback:feedback,success:!1})}onCartShippingRatesUpdate(rates,shippingAddress){this.enableButtons();let readableAddress="";shippingAddress.zip&&(readableAddress+=shippingAddress.zip+", "),shippingAddress.province&&(readableAddress+=shippingAddress.province+", "),readableAddress+=shippingAddress.country,this.render({rates,address:readableAddress,success:!0})}}const throttle=(fn,wait)=>{let prev2,next;return function invokeFn(...args){const now=Date.now();next=clearTimeout(next),!prev2||now-prev2>=wait?(fn.apply(null,args),prev2=now):next=setTimeout(invokeFn.bind(null,...args),wait-(now-prev2))}},classes$D={animated:"is-animated",active:"is-active",added:"is-added",disabled:"is-disabled",error:"has-error",headerStuck:"js__header__stuck",hidden:"is-hidden",hiding:"is-hiding",loading:"is-loading",open:"is-open",removed:"is-removed",success:"is-success",visible:"is-visible",expanded:"is-expanded",updated:"is-updated",variantSoldOut:"variant--soldout",variantUnavailable:"variant--unavailable"},selectors$U={apiContent:"[data-api-content]",apiLineItems:"[data-api-line-items]",apiUpsellItems:"[data-api-upsell-items]",apiCartPrice:"[data-api-cart-price]",animation:"[data-animation]",additionalCheckoutButtons:".additional-checkout-buttons",buttonHolder:"[data-foot-holder]",buttonSkipUpsellProduct:"[data-skip-upsell-product]",cartBarAdd:"[data-add-to-cart-bar]",cartCloseError:"[data-cart-error-close]",cartDrawer:"[data-cart-drawer]",cartDrawerClose:"[data-cart-drawer-close]",cartEmpty:"[data-cart-empty]",cartErrors:"[data-cart-errors]",cartItemRemove:"[data-item-remove]",cartPage:"[data-cart-page]",cartForm:"[data-cart-form]",cartTermsCheckbox:"[data-cart-acceptance-checkbox]",cartCheckoutButtonWrapper:"[data-cart-checkout-buttons]",cartCheckoutButton:"[data-cart-checkout-button]",cartToggle:"[data-cart-toggle]",cartTotal:"[data-cart-total]",errorMessage:"[data-error-message]",formCloseError:"[data-close-error]",formErrorsContainer:"[data-cart-errors-container]",formWrapper:"[data-form-wrapper]",freeShipping:"[data-free-shipping]",freeShippingGraph:"[data-progress-graph]",freeShippingProgress:"[data-progress-bar]",headerWrapper:"[data-header-wrapper]",item:"[data-item]",itemsHolder:"[data-items-holder]",leftToSpend:"[data-left-to-spend]",navDrawer:"[data-drawer]",outerSection:"[data-section-id]",priceHolder:"[data-cart-price-holder]",quickAddHolder:"[data-quick-add-holder]",quickAddModal:"[data-quick-add-modal]",qtyInput:'input[name="updates[]"]',upsellProductsHolder:"[data-upsell-products]",upsellWidget:"[data-upsell-widget]",termsErrorMessage:"[data-terms-error-message]",collapsibleBody:"[data-collapsible-body]"},attributes$u={cartToggle:"data-cart-toggle",cartTotal:"data-cart-total",disabled:"disabled",drawerUnderlay:"data-drawer-underlay",freeShipping:"data-free-shipping",freeShippingLimit:"data-free-shipping-limit",item:"data-item",itemIndex:"data-item-index",itemTitle:"data-item-title",quickAddHolder:"data-quick-add-holder",quickAddVariant:"data-quick-add-variant",open:"open",addAll:"data-add-all-to-cart"};class CartDrawer{constructor(){window.location.pathname.endsWith("/password")||this.init()}init(){this.cartPage=document.querySelector(selectors$U.cartPage),this.cartForm=document.querySelector(selectors$U.cartForm),this.cartDrawer=document.querySelector(selectors$U.cartDrawer),this.cartDrawerClose=document.querySelector(selectors$U.cartDrawerClose),this.cartEmpty=document.querySelector(selectors$U.cartEmpty),this.cartTermsCheckbox=document.querySelector(selectors$U.cartTermsCheckbox),this.cartCheckoutButtonWrapper=document.querySelector(selectors$U.cartCheckoutButtonWrapper),this.cartCheckoutButton=document.querySelector(selectors$U.cartCheckoutButton),this.buttonHolder=document.querySelector(selectors$U.buttonHolder),this.itemsHolder=document.querySelector(selectors$U.itemsHolder),this.priceHolder=document.querySelector(selectors$U.priceHolder),this.items=document.querySelectorAll(selectors$U.item),this.cartTotal=document.querySelector(selectors$U.cartTotal),this.freeShipping=document.querySelectorAll(selectors$U.freeShipping),this.cartErrorHolder=document.querySelector(selectors$U.cartErrors),this.cartCloseErrorMessage=document.querySelector(selectors$U.cartCloseError),this.headerWrapper=document.querySelector(selectors$U.headerWrapper),this.accessibility=a11y,this.navDrawer=document.querySelector(selectors$U.navDrawer),this.upsellProductsHolder=document.querySelector(selectors$U.upsellProductsHolder),this.subtotal=window.theme.subtotal,this.cart=this.cartDrawer||this.cartPage,this.cartAddEvent=this.cartAddEvent.bind(this),this.addToCart=this.addToCart.bind(this),this.updateProgress=this.updateProgress.bind(this),document.addEventListener("theme:cart:add",this.cartAddEvent),document.addEventListener("theme:announcement:init",this.updateProgress),this.skipUpsellProductsArray=[],this.skipUpsellProductEvent(),this.checkSkippedUpsellProductsFromStorage(),this.toggleCartUpsellWidgetVisibility(),this.circumference=28*Math.PI,this.freeShippingLimit=this.freeShipping.length?Number(this.freeShipping[0].getAttribute(attributes$u.freeShippingLimit))*100*window.Shopify.currency.rate:0,this.freeShippingMessageHandle(this.subtotal),this.updateProgress(),this.cart&&(this.build=this.build.bind(this),this.updateCart=this.updateCart.bind(this),this.productAddCallback=this.productAddCallback.bind(this),this.openCartDrawer=this.openCartDrawer.bind(this),this.closeCartDrawer=this.closeCartDrawer.bind(this),this.toggleCartDrawer=this.toggleCartDrawer.bind(this),this.openCartDrawerOnProductAdded=this.openCartDrawerOnProductAdded.bind(this),this.animateItems=this.animateItems.bind(this),this.showAnimatedItems=this.showAnimatedItems.bind(this),this.formSubmitHandler=throttle(this.formSubmitHandler.bind(this),50),this.cartPage&&this.showAnimatedItems(),this.hasItemsInCart=this.hasItemsInCart.bind(this),this.cartCount=this.getCartItemCount(),this.toggleClassesOnContainers=this.toggleClassesOnContainers.bind(this),this.totalItems=this.items.length,this.cartDrawerIsOpen=!1,this.cartDrawerEnabled=theme.settings.cartDrawerEnabled,this.cartUpdateFailed=!1,this.cartEvents(),this.cartToggleEvents(),this.cartRemoveEvents(),this.cartUpdateEvents(),document.addEventListener("theme:cart:toggle",this.toggleCartDrawer),document.addEventListener("theme:quick-add:open",this.closeCartDrawer),document.addEventListener("theme:product:add",this.productAddCallback),document.addEventListener("theme:product:add-error",this.productAddCallback),document.addEventListener("theme:product:added",this.openCartDrawerOnProductAdded))}cartUpdateEvents(){this.items=document.querySelectorAll(selectors$U.item),this.items.forEach(item=>{item.addEventListener("theme:cart:update",event=>{this.updateCart({id:event.detail.id,quantity:event.detail.quantity},item)})})}cartRemoveEvents(){document.querySelectorAll(selectors$U.cartItemRemove).forEach(button=>{const item=button.closest(selectors$U.item);button.addEventListener("click",event=>{event.preventDefault(),!button.classList.contains(classes$D.disabled)&&this.updateCart({id:button.dataset.id,quantity:0},item)})}),this.cartCloseErrorMessage&&this.cartCloseErrorMessage.addEventListener("click",event=>{event.preventDefault(),this.cartErrorHolder.classList.remove(classes$D.expanded)})}cartAddEvent(event){let formData="",button=event.detail.button;if(button.hasAttribute("disabled"))return;const form=button.closest("form");if(!form.checkValidity()){form.reportValidity();return}formData=new FormData(form),!(form!==null&&form.querySelector('[type="file"]'))&&(event.preventDefault(),this.addToCart(formData,button))}cartEvents(){this.cartTermsCheckbox&&(this.cartTermsCheckbox.removeEventListener("change",this.formSubmitHandler),this.cartCheckoutButtonWrapper.removeEventListener("click",this.formSubmitHandler),this.cartForm.removeEventListener("submit",this.formSubmitHandler),this.cartTermsCheckbox.addEventListener("change",this.formSubmitHandler),this.cartCheckoutButtonWrapper.addEventListener("click",this.formSubmitHandler),this.cartForm.addEventListener("submit",this.formSubmitHandler))}formSubmitHandler(){const termsAccepted=document.querySelector(selectors$U.cartTermsCheckbox).checked,termsError=document.querySelector(selectors$U.termsErrorMessage);if(termsAccepted)termsError.classList.remove(classes$D.expanded),this.cartCheckoutButton.removeAttribute(attributes$u.disabled);else{if(document.querySelector(selectors$U.termsErrorMessage).length>0)return;termsError.innerText=theme.strings.cartAcceptanceError,this.cartCheckoutButton.setAttribute(attributes$u.disabled,!0),termsError.classList.add(classes$D.expanded)}}formErrorsEvents(errorContainer){errorContainer.querySelector(selectors$U.formCloseError)?.addEventListener("click",e=>{e.preventDefault(),errorContainer&&errorContainer.classList.remove(classes$D.visible)})}getCart(){fetch(theme.routes.cart_url+"?section_id=api-cart-items").then(this.cartErrorsHandler).then(response=>response.text()).then(response=>{const element=document.createElement("div");element.innerHTML=response;const cleanResponse=element.querySelector(selectors$U.apiContent);this.build(cleanResponse)}).catch(error=>console.log(error))}addToCart(formData,button){this.cart&&this.cart.classList.add(classes$D.loading);const quickAddHolder=button?.closest(selectors$U.quickAddHolder);this.cartDrawerEnabled&&(button&&(button.classList.add(classes$D.loading),button.disabled=!0),quickAddHolder&&quickAddHolder.classList.add(classes$D.visible)),fetch(theme.routes.cart_add_url,{method:"POST",headers:{"X-Requested-With":"XMLHttpRequest",Accept:"application/javascript"},body:formData}).then(response=>response.json()).then(response=>{if(response.status){this.addToCartError(response,button),button&&(button.classList.remove(classes$D.loading),button.disabled=!1);return}this.cartDrawerEnabled?(button&&(button.classList.remove(classes$D.loading),button.classList.add(classes$D.added),button.dispatchEvent(new CustomEvent("theme:product:add",{detail:{response,button},bubbles:!0}))),this.getCart()):window.location=theme.routes.cart_url}).catch(error=>{this.addToCartError(error,button),this.enableCartButtons()})}updateCart(updateData={},currentItem=null){this.cart.classList.add(classes$D.loading);let updatedQuantity=updateData.quantity;currentItem!==null&&(updatedQuantity?currentItem.classList.add(classes$D.loading):currentItem.classList.add(classes$D.removed)),this.disableCartButtons();const newItem=this.cart.querySelector(`[${attributes$u.item}="${updateData.id}"]`)||currentItem,lineIndex=newItem?.hasAttribute(attributes$u.itemIndex)?parseInt(newItem.getAttribute(attributes$u.itemIndex)):0,itemTitle=newItem?.hasAttribute(attributes$u.itemTitle)?newItem.getAttribute(attributes$u.itemTitle):null;if(lineIndex===0)return;const data={line:lineIndex,quantity:updatedQuantity};fetch(theme.routes.cart_change_url,{method:"post",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify(data)}).then(response=>response.text()).then(state=>{if(JSON.parse(state).errors){this.cartUpdateFailed=!0,this.updateErrorText(itemTitle),this.toggleErrorMessage(),this.resetLineItem(currentItem),this.enableCartButtons();return}this.getCart()}).catch(error=>{console.log(error),this.enableCartButtons()})}resetLineItem(item){const qtyInput=item.querySelector(selectors$U.qtyInput),qty=qtyInput.getAttribute("value");qtyInput.value=qty,item.classList.remove(classes$D.loading)}disableCartButtons(){const inputs=this.cart.querySelectorAll("input"),buttons=this.cart.querySelectorAll(`button, ${selectors$U.cartItemRemove}`);inputs.length&&inputs.forEach(item=>{item.classList.add(classes$D.disabled),item.blur(),item.disabled=!0}),buttons.length&&buttons.forEach(item=>{item.setAttribute(attributes$u.disabled,!0)})}enableCartButtons(){const inputs=this.cart.querySelectorAll("input"),buttons=this.cart.querySelectorAll(`button, ${selectors$U.cartItemRemove}`);inputs.length&&inputs.forEach(item=>{item.classList.remove(classes$D.disabled),item.disabled=!1}),buttons.length&&buttons.forEach(item=>{item.removeAttribute(attributes$u.disabled)}),this.cart.classList.remove(classes$D.loading)}updateErrorText(itemTitle){this.cartErrorHolder.querySelector(selectors$U.errorMessage).innerText=itemTitle}toggleErrorMessage(){this.cartErrorHolder&&(this.cartErrorHolder.classList.toggle(classes$D.expanded,this.cartUpdateFailed),this.cartUpdateFailed=!1)}cartErrorsHandler(response){return response.ok?response:response.json().then(function(json){throw new FetchError({status:response.statusText,headers:response.headers,json})})}addToCartError(data,button){if(this.cartDrawerEnabled&&this.closeCartDrawer(),button!==null){let errorContainer=(button.closest(selectors$U.outerSection)||button.closest(selectors$U.quickAddHolder)||button.closest(selectors$U.quickAddModal))?.querySelector(selectors$U.formErrorsContainer);const buttonUpsellHolder=button.closest(selectors$U.quickAddHolder);buttonUpsellHolder&&buttonUpsellHolder.querySelector(selectors$U.formErrorsContainer)&&(errorContainer=buttonUpsellHolder.querySelector(selectors$U.formErrorsContainer)),errorContainer&&(errorContainer.innerHTML=`
    ${data.message}: ${data.description}
    `,errorContainer.classList.add(classes$D.visible),this.formErrorsEvents(errorContainer)),button.dispatchEvent(new CustomEvent("theme:product:add-error",{detail:{response:data,button},bubbles:!0}))}const quickAddHolder=button?.closest(selectors$U.quickAddHolder);quickAddHolder&&quickAddHolder.dispatchEvent(new CustomEvent("theme:cart:error",{bubbles:!0,detail:{message:data.message,description:data.description,holder:quickAddHolder}})),this.cart?.classList.remove(classes$D.loading)}productAddCallback(event){let buttons=[],quickAddHolder=null;const hasError=event.type=="theme:product:add-error",buttonATC=event.detail.button,cartBarButtonATC=document.querySelector(selectors$U.cartBarAdd);buttons.push(buttonATC),quickAddHolder=buttonATC.closest(selectors$U.quickAddHolder),cartBarButtonATC&&buttons.push(cartBarButtonATC),buttons.forEach(button=>{button.classList.remove(classes$D.loading),hasError||button.classList.add(classes$D.added)}),setTimeout(()=>{buttons.forEach(button=>{button.classList.remove(classes$D.added),button.closest(selectors$U.formWrapper)?.classList.contains(classes$D.variantSoldOut)||button.closest(selectors$U.formWrapper)?.classList.contains(classes$D.variantUnavailable)||(button.disabled=!1)}),quickAddHolder?.classList.remove(classes$D.visible)},1e3)}openCartDrawerOnProductAdded(){this.cartDrawerIsOpen?this.showAnimatedItems():this.openCartDrawer()}openCartDrawer(){this.cartDrawer&&(this.cartDrawerIsOpen=!0,this.onBodyClickEvent=this.onBodyClickEvent||this.onBodyClick.bind(this),document.body.addEventListener("click",this.onBodyClickEvent),document.dispatchEvent(new CustomEvent("theme:cart:open",{bubbles:!0})),document.dispatchEvent(new CustomEvent("theme:scroll:lock",{bubbles:!0})),this.cartDrawer.classList.add(classes$D.open),this.observeAdditionalCheckoutButtons(),setTimeout(this.showAnimatedItems),this.accessibility.trapFocus(this.cartDrawer,{elementToFocus:this.cartDrawer.querySelector(selectors$U.cartDrawerClose)}))}closeCartDrawer(){this.cartDrawer&&this.cartDrawer.classList.contains(classes$D.open)&&(this.cartDrawerIsOpen=!1,document.dispatchEvent(new CustomEvent("theme:cart:close",{bubbles:!0})),this.resetAnimatedItems(),this.itemsHolder.classList.remove(classes$D.updated),this.cartEmpty.classList.remove(classes$D.updated),this.cartErrorHolder.classList.remove(classes$D.expanded),this.cartDrawer.querySelectorAll(selectors$U.animation).forEach(item=>{const removeHidingClass=()=>{item.classList.remove(classes$D.hiding),item.removeEventListener("animationend",removeHidingClass)};item.classList.add(classes$D.hiding),item.addEventListener("animationend",removeHidingClass)}),this.cartDrawer.classList.remove(classes$D.open),this.accessibility.removeTrapFocus(),this.accessibility.autoFocusLastElement(),document.body.removeEventListener("click",this.onBodyClickEvent),document.dispatchEvent(new CustomEvent("theme:scroll:unlock",{bubbles:!0})))}toggleCartDrawer(){this.cartDrawerIsOpen?this.closeCartDrawer():this.openCartDrawer()}cartToggleEvents(){this.cartDrawer&&(this.cartDrawerClose.addEventListener("click",e=>{e.preventDefault(),this.closeCartDrawer()}),this.cartDrawer.addEventListener("keyup",event=>{event.code==="Escape"&&this.closeCartDrawer()}))}onBodyClick(event){event.target.hasAttribute(attributes$u.drawerUnderlay)&&this.closeCartDrawer()}toggleClassesOnContainers(){const hasItemsInCart=this.hasItemsInCart();this.cartEmpty.classList.toggle(classes$D.hidden,hasItemsInCart),this.buttonHolder.classList.toggle(classes$D.hidden,!hasItemsInCart),this.itemsHolder.classList.toggle(classes$D.hidden,!hasItemsInCart)}build(data){const cartItemsData=data.querySelector(selectors$U.apiLineItems),upsellItemsData=data.querySelector(selectors$U.apiUpsellItems),cartEmptyData=cartItemsData===null&&upsellItemsData===null,priceData=data.querySelector(selectors$U.apiCartPrice),cartTotal=data.querySelector(selectors$U.cartTotal);this.priceHolder&&priceData&&(this.priceHolder.innerHTML=priceData.innerHTML),cartEmptyData?(this.itemsHolder.innerHTML=data,this.upsellProductsHolder.innerHTML=""):(this.itemsHolder.innerHTML=cartItemsData.innerHTML,this.upsellProductsHolder.innerHTML=upsellItemsData.innerHTML,this.skipUpsellProductEvent(),this.checkSkippedUpsellProductsFromStorage(),this.toggleCartUpsellWidgetVisibility()),this.newTotalItems=cartItemsData&&cartItemsData.querySelectorAll(selectors$U.item).length?cartItemsData.querySelectorAll(selectors$U.item).length:0,this.subtotal=cartTotal&&cartTotal.hasAttribute(attributes$u.cartTotal)?parseInt(cartTotal.getAttribute(attributes$u.cartTotal)):0,this.cartCount=this.getCartItemCount(),document.dispatchEvent(new CustomEvent("theme:cart:change",{bubbles:!0,detail:{cartCount:this.cartCount}})),this.cartTotal.innerHTML=this.subtotal===0?window.theme.strings.free:themeCurrency.formatMoney(this.subtotal,theme.moneyWithCurrencyFormat),this.cart.classList.remove(classes$D.loading),this.totalItems!==this.newTotalItems&&(this.totalItems=this.newTotalItems,this.toggleClassesOnContainers()),this.cartDrawerIsOpen&&this.itemsHolder.classList.add(classes$D.updated),this.hasItemsInCart()||this.cartEmpty.querySelectorAll(selectors$U.animation).forEach(item=>{item.classList.remove(classes$D.animated)}),this.freeShippingMessageHandle(this.subtotal),this.cartRemoveEvents(),this.cartUpdateEvents(),this.toggleErrorMessage(),this.enableCartButtons(),this.updateProgress(),document.dispatchEvent(new CustomEvent("theme:product:added",{bubbles:!0})),this.cartDrawer||this.showAnimatedItems()}getCartItemCount(){return Array.from(this.cart.querySelectorAll(selectors$U.qtyInput)).reduce((total,quantityInput)=>total+parseInt(quantityInput.value),0)}hasItemsInCart(){return this.totalItems>0}freeShippingMessageHandle(total){this.freeShipping.length&&this.freeShipping.forEach(message=>{const hasQualifiedShippingMessage=message.hasAttribute(attributes$u.freeShipping)&&message.getAttribute(attributes$u.freeShipping)==="true"&&total>=0;message.classList.toggle(classes$D.success,hasQualifiedShippingMessage&&total>=this.freeShippingLimit)})}updateProgress(){if(this.freeShipping=document.querySelectorAll(selectors$U.freeShipping),!this.freeShipping.length)return;const percentValue=isNaN(this.subtotal/this.freeShippingLimit)?100:this.subtotal/this.freeShippingLimit,percent=Math.min(percentValue*100,100),dashoffset=this.circumference-percent/100*this.circumference/2,leftToSpend=themeCurrency.formatMoney(this.freeShippingLimit-this.subtotal,theme.moneyFormat);this.freeShipping.forEach(item=>{const progressBar=item.querySelector(selectors$U.freeShippingProgress),progressGraph=item.querySelector(selectors$U.freeShippingGraph),leftToSpendMessage=item.querySelector(selectors$U.leftToSpend);leftToSpendMessage&&(leftToSpendMessage.innerHTML=leftToSpend.replace(".00","")),progressBar&&(progressBar.value=percent),progressGraph&&progressGraph.style.setProperty("--stroke-dashoffset",`${dashoffset}`)})}skipUpsellProductEvent(){if(this.upsellProductsHolder===null)return;const skipButtons=this.upsellProductsHolder.querySelectorAll(selectors$U.buttonSkipUpsellProduct);skipButtons.length&&skipButtons.forEach(button=>{button.addEventListener("click",event=>{event.preventDefault();const productID=button.closest(selectors$U.quickAddHolder).getAttribute(attributes$u.quickAddHolder);this.skipUpsellProductsArray.includes(productID)||this.skipUpsellProductsArray.push(productID),window.sessionStorage.setItem("skip_upsell_products",this.skipUpsellProductsArray),this.removeUpsellProduct(productID),this.toggleCartUpsellWidgetVisibility()})})}checkSkippedUpsellProductsFromStorage(){const skippedUpsellItemsFromStorage=window.sessionStorage.getItem("skip_upsell_products");if(!skippedUpsellItemsFromStorage)return;skippedUpsellItemsFromStorage.split(",").forEach(productID=>{this.skipUpsellProductsArray.includes(productID)||this.skipUpsellProductsArray.push(productID),this.removeUpsellProduct(productID)})}removeUpsellProduct(productID){if(!this.upsellProductsHolder)return;const upsellProduct=this.upsellProductsHolder.querySelector(`[${attributes$u.quickAddHolder}="${productID}"]`);upsellProduct&&upsellProduct.parentNode.remove()}toggleCartUpsellWidgetVisibility(){if(!this.upsellProductsHolder)return;const upsellItems=this.upsellProductsHolder.querySelectorAll(selectors$U.quickAddHolder),upsellWidget=this.upsellProductsHolder.closest(selectors$U.upsellWidget);if(upsellWidget&&(upsellWidget.classList.toggle(classes$D.hidden,!upsellItems.length),upsellItems.length&&!upsellWidget.hasAttribute(attributes$u.open))){upsellWidget.setAttribute(attributes$u.open,!0);const upsellWidgetBody=upsellWidget.querySelector(selectors$U.collapsibleBody);upsellWidgetBody&&(upsellWidgetBody.style.height="auto")}}observeAdditionalCheckoutButtons(){const additionalCheckoutButtons=this.cartDrawer.querySelector(selectors$U.additionalCheckoutButtons);if(additionalCheckoutButtons){const observer=new MutationObserver(()=>{this.accessibility.trapFocus(this.cartDrawer,{elementToFocus:this.cartDrawer.querySelector(selectors$U.cartDrawerClose)}),observer.disconnect()});observer.observe(additionalCheckoutButtons,{subtree:!0,childList:!0})}}resetAnimatedItems(){this.cart.querySelectorAll(selectors$U.animation).forEach(item=>{item.classList.remove(classes$D.animated),item.classList.remove(classes$D.hiding)})}showAnimatedItems(){requestAnimationFrame(this.animateItems)}animateItems(){this.cart.querySelectorAll(selectors$U.animation).forEach(item=>{item.classList.add(classes$D.animated)})}}window.cart=new CartDrawer,customElements.get("shipping-calculator")||customElements.define("shipping-calculator",ShippingCalculator);const classes$C={focus:"is-focused"},selectors$T={inPageLink:"[data-skip-content]",linkesWithOnlyHash:'a[href="#"]'};class Accessibility{constructor(){this.init()}init(){this.a11y=a11y,this.html=document.documentElement,this.body=document.body,this.inPageLink=document.querySelector(selectors$T.inPageLink),this.linkesWithOnlyHash=document.querySelectorAll(selectors$T.linkesWithOnlyHash),this.a11y.focusHash(),this.a11y.bindInPageLinks(),this.clickEvents(),this.focusEvents()}clickEvents(){this.inPageLink&&this.inPageLink.addEventListener("click",event=>{event.preventDefault()}),this.linkesWithOnlyHash&&this.linkesWithOnlyHash.forEach(item=>{item.addEventListener("click",event=>{event.preventDefault()})})}focusEvents(){document.addEventListener("mousedown",()=>{this.body.classList.remove(classes$C.focus)}),document.addEventListener("keyup",event=>{event.code==="Tab"&&this.body.classList.add(classes$C.focus)})}}window.accessibility=new Accessibility;const selectors$S={inputSearch:'input[type="search"]'};class MainSearch extends HeaderSearchForm{constructor(){super(),this.allSearchInputs=document.querySelectorAll(selectors$S.inputSearch),this.setupEventListeners()}setupEventListeners(){let allSearchForms=[];this.allSearchInputs.forEach(input=>allSearchForms.push(input.form)),this.input.addEventListener("focus",this.onInputFocus.bind(this)),!(allSearchForms.length<2)&&(allSearchForms.forEach(form=>form.addEventListener("reset",this.onFormReset.bind(this))),this.allSearchInputs.forEach(input=>input.addEventListener("input",this.onInput.bind(this))))}onFormReset(event){super.onFormReset(event),super.shouldResetForm()&&this.keepInSync("",this.input)}onInput(event){const target=event.target;this.keepInSync(target.value,target)}onInputFocus(){isDesktop()||this.scrollIntoView({behavior:"smooth"})}keepInSync(value,target){this.allSearchInputs.forEach(input=>{input!==target&&(input.value=value)})}}customElements.define("main-search",MainSearch);const selectors$R={details:"details",popdown:"[data-popdown]",popdownClose:"[data-popdown-close]",popdownToggle:"[data-popdown-toggle]",input:'input:not([type="hidden"])'},attributes$t={popdownUnderlay:"data-popdown-underlay"};class SearchPopdown extends HTMLElement{constructor(){super(),this.popdown=this.querySelector(selectors$R.popdown),this.popdownContainer=this.querySelector(selectors$R.details),this.popdownToggle=this.querySelector(selectors$R.popdownToggle),this.popdownClose=this.querySelector(selectors$R.popdownClose),this.a11y=a11y}connectedCallback(){this.popdownContainer.addEventListener("keyup",event=>event.code.toUpperCase()==="ESCAPE"&&this.close()),this.popdownClose.addEventListener("click",this.close.bind(this)),this.popdownToggle.addEventListener("click",this.onPopdownToggleClick.bind(this)),this.popdownToggle.setAttribute("role","button"),this.popdown.addEventListener("transitionend",event=>{event.propertyName=="visibility"&&this.popdownContainer.hasAttribute("open")&&this.popdownContainer.getAttribute("open")=="false"&&this.popdownContainer.removeAttribute("open")})}onPopdownToggleClick(event){event.preventDefault(),event.target.closest(selectors$R.details).hasAttribute("open")?this.close():this.open(event)}onBodyClick(event){(!this.contains(event.target)||event.target.hasAttribute(attributes$t.popdownUnderlay))&&this.close()}open(event){this.onBodyClickEvent=this.onBodyClickEvent||this.onBodyClick.bind(this),event.target.closest(selectors$R.details).setAttribute("open",""),document.body.addEventListener("click",this.onBodyClickEvent),document.dispatchEvent(new CustomEvent("theme:scroll:lock",{bubbles:!0})),requestAnimationFrame(()=>{event.target.closest(selectors$R.details).setAttribute("open","true"),this.a11y.trapFocus(this.popdown,{elementToFocus:this.popdown.querySelector(selectors$R.input)})})}close(){this.a11y.removeTrapFocus(),this.popdownContainer.setAttribute("open","false"),document.body.removeEventListener("click",this.onBodyClickEvent),document.dispatchEvent(new CustomEvent("theme:scroll:unlock",{bubbles:!0}))}}customElements.define("header-search-popdown",SearchPopdown);const selectors$Q={collapsible:"[data-collapsible]",trigger:"[data-collapsible-trigger]",body:"[data-collapsible-body]",content:"[data-collapsible-content]"},attributes$s={open:"open",single:"single"};class CollapsibleElements extends HTMLElement{constructor(){super(),this.collapsibles=this.querySelectorAll(selectors$Q.collapsible),this.single=this.hasAttribute(attributes$s.single)}connectedCallback(){this.collapsibles.forEach(collapsible=>{const trigger=collapsible.querySelector(selectors$Q.trigger),body=collapsible.querySelector(selectors$Q.body);trigger.addEventListener("click",event=>this.onCollapsibleClick(event)),body.addEventListener("transitionend",event=>{event.target===body&&(collapsible.getAttribute(attributes$s.open)=="true"&&this.setBodyHeight(body,"auto"),collapsible.getAttribute(attributes$s.open)=="false"&&(collapsible.removeAttribute(attributes$s.open),this.setBodyHeight(body,"")))})})}open(collapsible){if(collapsible.getAttribute("open")=="true")return;const body=collapsible.querySelector(selectors$Q.body),content=collapsible.querySelector(selectors$Q.content);collapsible.setAttribute("open",!0),this.setBodyHeight(body,content.offsetHeight)}close(collapsible){if(!collapsible.hasAttribute("open"))return;const body=collapsible.querySelector(selectors$Q.body),content=collapsible.querySelector(selectors$Q.content);this.setBodyHeight(body,content.offsetHeight),collapsible.setAttribute("open",!1),requestAnimationFrame(()=>{requestAnimationFrame(()=>{this.setBodyHeight(body,0)})})}setBodyHeight(body,contentHeight){body.style.height=contentHeight!=="auto"&&contentHeight!==""?`${contentHeight}px`:contentHeight}onCollapsibleClick(event){event.preventDefault();const collapsible=(event.target.matches(selectors$Q.trigger)?event.target:event.target.closest(selectors$Q.trigger)).closest(selectors$Q.collapsible);this.single&&this.collapsibles.forEach(otherCollapsible=>{otherCollapsible.hasAttribute(attributes$s.open)&&otherCollapsible!=collapsible&&requestAnimationFrame(()=>{this.close(otherCollapsible)})}),collapsible.hasAttribute(attributes$s.open)?this.close(collapsible):this.open(collapsible),collapsible.dispatchEvent(new CustomEvent("theme:form:sticky",{bubbles:!0,detail:{element:"accordion"}}))}}customElements.get("collapsible-elements")||customElements.define("collapsible-elements",CollapsibleElements);const selectors$P={actions:"[data-actions]",content:"[data-content]",trigger:"[data-button]"},attributes$r={height:"data-height"},classes$B={open:"is-open",enabled:"is-enabled"};class ToggleEllipsis extends HTMLElement{constructor(){super(),this.initialHeight=this.getAttribute(attributes$r.height),this.content=this.querySelector(selectors$P.content),this.trigger=this.querySelector(selectors$P.trigger),this.actions=this.querySelector(selectors$P.actions),this.toggleActions=this.toggleActions.bind(this)}connectedCallback(){this.setHeight(this.initialHeight),this.trigger.addEventListener("click",()=>{this.setHeight(this.content.offsetHeight),this.classList.add(classes$B.open)}),this.setHeight(this.initialHeight),this.toggleActions(),document.addEventListener("theme:resize",this.toggleActions)}disconnectedCallback(){document.removeEventListener("theme:resize",this.toggleActions)}setHeight(contentHeight){this.style.setProperty("--height",`${contentHeight}px`)}toggleActions(){this.classList.toggle(classes$B.enabled,this.content.offsetHeight+this.actions.offsetHeight>this.initialHeight)}}customElements.get("toggle-ellipsis")||customElements.define("toggle-ellipsis",ToggleEllipsis);const selectors$O={templateAddresses:".template-addresses",addressNewForm:"#AddressNewForm",btnNew:".address-new-toggle",btnEdit:".address-edit-toggle",btnDelete:".address-delete",dataFormId:"data-form-id",dataConfirmMessage:"data-confirm-message",editAddress:"#EditAddress",addressCountryNew:"AddressCountryNew",addressProvinceNew:"AddressProvinceNew",addressProvinceContainerNew:"AddressProvinceContainerNew",addressCountryOption:".address-country-option",addressCountry:"AddressCountry",addressProvince:"AddressProvince",addressProvinceContainer:"AddressProvinceContainer"},classes$A={hidden:"hidden"};class Addresses{constructor(section){this.section=section,this.addressNewForm=this.section.querySelector(selectors$O.addressNewForm),this.init()}init(){if(this.addressNewForm){const section=this.section,newAddressForm=this.addressNewForm;this.customerAddresses();const newButtons=section.querySelectorAll(selectors$O.btnNew);newButtons.length&&newButtons.forEach(element=>{element.addEventListener("click",function(){newAddressForm.classList.toggle(classes$A.hidden)})});const editButtons=section.querySelectorAll(selectors$O.btnEdit);editButtons.length&&editButtons.forEach(element=>{element.addEventListener("click",function(){const formId=this.getAttribute(selectors$O.dataFormId);section.querySelector(`${selectors$O.editAddress}_${formId}`).classList.toggle(classes$A.hidden)})});const deleteButtons=section.querySelectorAll(selectors$O.btnDelete);deleteButtons.length&&deleteButtons.forEach(element=>{element.addEventListener("click",function(){const formId=this.getAttribute(selectors$O.dataFormId),confirmMessage=this.getAttribute(selectors$O.dataConfirmMessage);confirm(confirmMessage)&&Shopify.postLink(window.theme.routes.addresses_url+"/"+formId,{parameters:{_method:"delete"}})})})}}customerAddresses(){Shopify.CountryProvinceSelector&&new Shopify.CountryProvinceSelector(selectors$O.addressCountryNew,selectors$O.addressProvinceNew,{hideElement:selectors$O.addressProvinceContainerNew}),this.section.querySelectorAll(selectors$O.addressCountryOption).forEach(element=>{const formId=element.getAttribute(selectors$O.dataFormId),countrySelector=`${selectors$O.addressCountry}_${formId}`,provinceSelector=`${selectors$O.addressProvince}_${formId}`,containerSelector=`${selectors$O.addressProvinceContainer}_${formId}`;new Shopify.CountryProvinceSelector(countrySelector,provinceSelector,{hideElement:containerSelector})})}}const template$1=document.querySelector(selectors$O.templateAddresses);template$1&&new Addresses(template$1);const selectors$N={accountTemplateLogged:".customer-logged-in",account:".account",accountSidebarMobile:".account-sidebar--mobile"};class Account{constructor(section){this.section=section,this.init()}init(){this.section.querySelector(selectors$N.account)&&this.accountMobileSidebar()}accountMobileSidebar(){this.section.querySelector(selectors$N.accountSidebarMobile)&&this.section.querySelector(selectors$N.accountSidebarMobile).addEventListener("click",function(){const nextElem=this.nextElementSibling;nextElem&&nextElem.tagName==="UL"&&nextElem.classList.toggle("visible")})}}const template=document.querySelector(selectors$N.accountTemplateLogged);template&&new Account(template);const selectors$M={form:"[data-account-form]",showReset:"[data-show-reset]",hideReset:"[data-hide-reset]",recover:"[data-recover-password]",recoverSuccess:"[data-recover-success]",login:"[data-login-form]",recoverHash:"#recover",hideClass:"is-hidden"};class Login{constructor(form){this.form=form,this.showButton=form.querySelector(selectors$M.showReset),this.hideButton=form.querySelector(selectors$M.hideReset),this.recover=form.querySelector(selectors$M.recover),this.recoverSuccess=form.querySelector(selectors$M.recoverSuccess),this.login=form.querySelector(selectors$M.login),this.init()}init(){window.location.hash==selectors$M.recoverHash||this.recoverSuccess?this.showRecoverPasswordForm():this.hideRecoverPasswordForm(),this.showButton.addEventListener("click",function(e){e.preventDefault(),this.showRecoverPasswordForm()}.bind(this),!1),this.hideButton.addEventListener("click",function(e){e.preventDefault(),this.hideRecoverPasswordForm()}.bind(this),!1)}showRecoverPasswordForm(){return this.login.classList.add(selectors$M.hideClass),this.recover.classList.remove(selectors$M.hideClass),window.location.hash=selectors$M.recoverHash,!1}hideRecoverPasswordForm(){return this.recover.classList.add(selectors$M.hideClass),this.login.classList.remove(selectors$M.hideClass),window.location.hash="",!1}}const loginForm=document.querySelector(selectors$M.form);loginForm&&new Login(loginForm),window.Shopify=window.Shopify||{},window.Shopify.theme=window.Shopify.theme||{},window.Shopify.theme.sections=window.Shopify.theme.sections||{},window.Shopify.theme.sections.registered=window.Shopify.theme.sections.registered||{},window.Shopify.theme.sections.instances=window.Shopify.theme.sections.instances||[];const registered=window.Shopify.theme.sections.registered,instances=window.Shopify.theme.sections.instances,selectors$L={id:"data-section-id",type:"data-section-type"};class Registration{constructor(type=null,components=[]){this.type=type,this.components=validateComponentsArray(components),this.callStack={onLoad:[],onUnload:[],onSelect:[],onDeselect:[],onBlockSelect:[],onBlockDeselect:[],onReorder:[]},components.forEach(comp=>{for(const[key,value]of Object.entries(comp)){const arr=this.callStack[key];Array.isArray(arr)&&typeof value=="function"?arr.push(value):(console.warn(`Unregisted function: '${key}' in component: '${this.type}'`),console.warn(value))}})}getStack(){return this.callStack}}class Section{constructor(container,registration){this.container=validateContainerElement(container),this.id=container.getAttribute(selectors$L.id),this.type=registration.type,this.callStack=registration.getStack();try{this.onLoad()}catch(e){console.warn(`Error in section: ${this.id}`),console.warn(this),console.warn(e)}}callFunctions(key,e=null){this.callStack[key].forEach(func=>{const props={id:this.id,type:this.type,container:this.container};e?func.call(props,e):func.call(props)})}onLoad(){this.callFunctions("onLoad")}onUnload(){this.callFunctions("onUnload")}onSelect(e){this.callFunctions("onSelect",e)}onDeselect(e){this.callFunctions("onDeselect",e)}onBlockSelect(e){this.callFunctions("onBlockSelect",e)}onBlockDeselect(e){this.callFunctions("onBlockDeselect",e)}onReorder(e){this.callFunctions("onReorder",e)}}function validateContainerElement(container){if(!(container instanceof Element))throw new TypeError("Theme Sections: Attempted to load section. The section container provided is not a DOM element.");if(container.getAttribute(selectors$L.id)===null)throw new Error("Theme Sections: The section container provided does not have an id assigned to the "+selectors$L.id+" attribute.");return container}function validateComponentsArray(value){if(typeof value<"u"&&typeof value!="object"||value===null)throw new TypeError("Theme Sections: The components object provided is not a valid");return value}function register(type,components){if(typeof type!="string")throw new TypeError("Theme Sections: The first argument for .register must be a string that specifies the type of the section being registered");if(typeof registered[type]<"u")throw new Error('Theme Sections: A section of type "'+type+'" has already been registered. You cannot register the same section type twice');Array.isArray(components)||(components=[components]);const section=new Registration(type,components);return registered[type]=section,registered}function load(types,containers){types=normalizeType(types),typeof containers>"u"&&(containers=document.querySelectorAll("["+selectors$L.type+"]")),containers=normalizeContainers(containers),types.forEach(function(type){const registration=registered[type];typeof registration>"u"||(containers=containers.filter(function(container){return isInstance(container)||container.getAttribute(selectors$L.type)===null?!1:container.getAttribute(selectors$L.type)!==type?!0:(instances.push(new Section(container,registration)),!1)}))})}function reorder(selector){var instancesToReorder=getInstances(selector);instancesToReorder.forEach(function(instance){instance.onReorder()})}function unload(selector){var instancesToUnload=getInstances(selector);instancesToUnload.forEach(function(instance){var index=instances.map(function(e){return e.id}).indexOf(instance.id);instances.splice(index,1),instance.onUnload()})}function getInstances(selector){var filteredInstances=[];if(NodeList.prototype.isPrototypeOf(selector)||Array.isArray(selector))var firstElement=selector[0];if(selector instanceof Element||firstElement instanceof Element){var containers=normalizeContainers(selector);containers.forEach(function(container){filteredInstances=filteredInstances.concat(instances.filter(function(instance){return instance.container===container}))})}else if(typeof selector=="string"||typeof firstElement=="string"){var types=normalizeType(selector);types.forEach(function(type){filteredInstances=filteredInstances.concat(instances.filter(function(instance){return instance.type===type}))})}return filteredInstances}function getInstanceById(id){for(var instance,i=0;i0}function normalizeType(types){return types==="*"?types=Object.keys(registered):typeof types=="string"?types=[types]:types.constructor===Section?types=[types.prototype.type]:Array.isArray(types)&&types[0].constructor===Section&&(types=types.map(function(Section2){return Section2.type})),types=types.map(function(type){return type.toLowerCase()}),types}function normalizeContainers(containers){return NodeList.prototype.isPrototypeOf(containers)&&containers.length>0?containers=Array.prototype.slice.call(containers):NodeList.prototype.isPrototypeOf(containers)&&containers.length===0?containers=[]:containers===null?containers=[]:!Array.isArray(containers)&&containers instanceof Element&&(containers=[containers]),containers}window.Shopify.designMode&&(document.addEventListener("shopify:section:load",function(event){var id=event.detail.sectionId,container=event.target.querySelector("["+selectors$L.id+'="'+id+'"]');container!==null&&load(container.getAttribute(selectors$L.type),container)}),document.addEventListener("shopify:section:reorder",function(event){var id=event.detail.sectionId,container=event.target.querySelector("["+selectors$L.id+'="'+id+'"]'),instance=getInstances(container)[0];typeof instance=="object"&&reorder(container)}),document.addEventListener("shopify:section:unload",function(event){var id=event.detail.sectionId,container=event.target.querySelector("["+selectors$L.id+'="'+id+'"]'),instance=getInstances(container)[0];typeof instance=="object"&&unload(container)}),document.addEventListener("shopify:section:select",function(event){var instance=getInstanceById(event.detail.sectionId);typeof instance=="object"&&instance.onSelect(event)}),document.addEventListener("shopify:section:deselect",function(event){var instance=getInstanceById(event.detail.sectionId);typeof instance=="object"&&instance.onDeselect(event)}),document.addEventListener("shopify:block:select",function(event){var instance=getInstanceById(event.detail.sectionId);typeof instance=="object"&&instance.onBlockSelect(event)}),document.addEventListener("shopify:block:deselect",function(event){var instance=getInstanceById(event.detail.sectionId);typeof instance=="object"&&instance.onBlockDeselect(event)}));const selectors$K={tooltip:"data-tooltip",tooltipStopMouseEnter:"data-tooltip-stop-mouseenter"},classes$z={tooltipDefault:"tooltip-default",visible:"is-visible",hiding:"is-hiding"};let sections$n={};class Tooltip{constructor(el,options={}){this.tooltip=el,this.tooltip.hasAttribute(selectors$K.tooltip)&&(this.label=this.tooltip.getAttribute(selectors$K.tooltip),this.class=options.class||classes$z.tooltipDefault,this.transitionSpeed=options.transitionSpeed||200,this.hideTransitionTimeout=0,this.addPinEvent=()=>this.addPin(),this.addPinMouseEvent=()=>this.addPin(!0),this.removePinEvent=event=>throttle(this.removePin(event),50),this.removePinMouseEvent=event=>this.removePin(event,!0,!0),this.init())}init(){if(!document.querySelector(`.${this.class}`)){const tooltipTemplate=`
    `,tooltipElement=document.createElement("div");tooltipElement.className=this.class,tooltipElement.innerHTML=tooltipTemplate,document.body.appendChild(tooltipElement)}this.tooltip.addEventListener("mouseenter",this.addPinMouseEvent),this.tooltip.addEventListener("mouseleave",this.removePinMouseEvent),this.tooltip.addEventListener("theme:tooltip:init",this.addPinEvent),document.addEventListener("theme:tooltip:close",this.removePinEvent)}addPin(stopMouseEnter=!1){const tooltipTarget=document.querySelector(`.${this.class}`);if(tooltipTarget&&(stopMouseEnter&&!this.tooltip.hasAttribute(selectors$K.tooltipStopMouseEnter)||!stopMouseEnter)){const tooltipTargetArrow=tooltipTarget.querySelector(`.${this.class}__arrow`),tooltipTargetInner=tooltipTarget.querySelector(`.${this.class}__inner`),tooltipTargetText=tooltipTarget.querySelector(`.${this.class}__text`);tooltipTargetText.textContent=this.label;const tooltipTargetWidth=tooltipTargetInner.offsetWidth,tooltipRect=this.tooltip.getBoundingClientRect(),tooltipTop=tooltipRect.top,tooltipWidth=tooltipRect.width,tooltipHeight=tooltipRect.height,tooltipTargetPositionTop=tooltipTop+tooltipHeight+window.scrollY;let tooltipTargetPositionLeft=tooltipRect.left-tooltipTargetWidth/2+tooltipWidth/2;const tooltipTargetWindowDifference=tooltipTargetPositionLeft+tooltipTargetWidth-getWindowWidth();tooltipTargetWindowDifference>0&&(tooltipTargetPositionLeft-=tooltipTargetWindowDifference),tooltipTargetPositionLeft<0&&(tooltipTargetPositionLeft=0),tooltipTargetArrow.style.left=`${tooltipRect.left+tooltipWidth/2}px`,tooltipTarget.style.setProperty("--tooltip-top",`${tooltipTargetPositionTop}px`),tooltipTargetInner.style.transform=`translateX(${tooltipTargetPositionLeft}px)`,tooltipTarget.classList.remove(classes$z.hiding),tooltipTarget.classList.add(classes$z.visible),document.addEventListener("theme:scroll",this.removePinEvent)}}removePin(event,stopMouseEnter=!1,hideTransition=!1){const tooltipTarget=document.querySelector(`.${this.class}`),tooltipVisible=tooltipTarget.classList.contains(classes$z.visible);tooltipTarget&&(stopMouseEnter&&!this.tooltip.hasAttribute(selectors$K.tooltipStopMouseEnter)||!stopMouseEnter)&&(tooltipVisible&&(hideTransition||event.detail.hideTransition)&&(tooltipTarget.classList.add(classes$z.hiding),this.hideTransitionTimeout&&clearTimeout(this.hideTransitionTimeout),this.hideTransitionTimeout=setTimeout(()=>{tooltipTarget.classList.remove(classes$z.hiding)},this.transitionSpeed)),tooltipTarget.classList.remove(classes$z.visible),document.removeEventListener("theme:scroll",this.removePinEvent))}unload(){this.tooltip.removeEventListener("mouseenter",this.addPinMouseEvent),this.tooltip.removeEventListener("mouseleave",this.removePinMouseEvent),this.tooltip.removeEventListener("theme:tooltip:init",this.addPinEvent),document.removeEventListener("theme:tooltip:close",this.removePinEvent),document.removeEventListener("theme:scroll",this.removePinEvent)}}const tooltipSection={onLoad(){sections$n[this.id]=[],this.container.querySelectorAll(`[${selectors$K.tooltip}]`).forEach(el=>{sections$n[this.id].push(new Tooltip(el))})},onUnload:function(){sections$n[this.id].forEach(el=>{typeof el.unload=="function"&&el.unload()})}};var sections$m={};const parallaxHero={onLoad(){sections$m[this.id]=[],this.container.querySelectorAll("[data-parallax-wrapper]").forEach(frame=>{const inner=frame.querySelector("[data-parallax-img]");sections$m[this.id].push(new Rellax(inner,{center:!0,round:!0,frame}))}),window.addEventListener("load",()=>{sections$m[this.id].forEach(image=>{typeof image.refresh=="function"&&image.refresh()})})},onUnload:function(){sections$m[this.id].forEach(image=>{typeof image.destroy=="function"&&image.destroy()})}};register("article",[tooltipSection,parallaxHero]);const selectors$J={aos:"[data-aos]",collectionImage:".collection-item__image",columnImage:"[data-column-image]",flickityNextArrow:".flickity-button.next",flickityPrevArrow:".flickity-button.previous",link:"a:not(.btn)",productItemImage:".product-item__image",slide:"[data-slide]",slideValue:"data-slide",slider:"[data-slider]",sliderThumb:"[data-slider-thumb]"},attributes$q={arrowPositionMiddle:"data-arrow-position-middle",slideIndex:"data-slide-index",sliderOptions:"data-options",slideTextColor:"data-slide-text-color"},classes$y={aosAnimate:"aos-animate",desktop:"desktop",focused:"is-focused",flickityEnabled:"flickity-enabled",heroContentTransparent:"hero__content--transparent",initialized:"is-initialized",isLoading:"is-loading",isSelected:"is-selected",mobile:"mobile",singleSlide:"single-slide",sliderInitialized:"js-slider--initialized"},sections$l={};class Slider{constructor(container,slideshow=null){this.container=container,this.slideshow=slideshow||this.container.querySelector(selectors$J.slider),this.slideshow&&(this.slideshowSlides=this.slideshow.querySelectorAll(selectors$J.slide),!(this.slideshowSlides.length<=1)&&(this.sliderThumbs=this.container.querySelectorAll(selectors$J.sliderThumb),this.multipleSlides=this.slideshow.hasAttribute(attributes$q.slidesLargeDesktop),this.slideshow.hasAttribute(attributes$q.sliderOptions)&&(this.customOptions=JSON.parse(decodeURIComponent(this.slideshow.getAttribute(attributes$q.sliderOptions)))),this.flkty=null,this.init()))}init(){this.slideshow.classList.add(classes$y.isLoading);let slideSelector=selectors$J.slide;const isDesktopView=isDesktop(),slideMobile=`${selectors$J.slide}:not(.${classes$y.mobile})`,slideDesktop=`${selectors$J.slide}:not(.${classes$y.desktop})`;(this.slideshow.querySelectorAll(slideDesktop).length||this.slideshow.querySelectorAll(slideMobile).length)&&(isDesktopView?slideSelector=slideMobile:slideSelector=slideDesktop),this.slideshow.querySelectorAll(slideSelector).length<=1&&(this.slideshow.classList.add(classes$y.singleSlide),this.slideshow.classList.remove(classes$y.isLoading)),this.sliderOptions={cellSelector:slideSelector,contain:!0,wrapAround:!0,adaptiveHeight:!0,...this.customOptions,on:{ready:()=>{requestAnimationFrame(()=>{this.slideshow.classList.add(classes$y.initialized),this.slideshow.classList.remove(classes$y.isLoading),this.slideshow.parentNode.dispatchEvent(new CustomEvent("theme:slider:loaded",{bubbles:!0,detail:{slider:this}}))}),this.slideActions(),this.sliderOptions.prevNextButtons&&this.positionArrows()},change:index=>{const slide=this.slideshowSlides[index];if(!slide||this.sliderOptions.groupCells)return;const elementsToAnimate=slide.querySelectorAll(selectors$J.aos);elementsToAnimate.length&&elementsToAnimate.forEach(el=>{el.classList.remove(classes$y.aosAnimate),requestAnimationFrame(()=>{setTimeout(()=>{el.classList.add(classes$y.aosAnimate)},0)})})},resize:()=>{this.sliderOptions.prevNextButtons&&this.positionArrows()}}},this.sliderOptions.fade&&(this.flkty=new FlickityFade(this.slideshow,this.sliderOptions)),this.sliderOptions.fade||(this.flkty=new Flickity(this.slideshow,this.sliderOptions)),this.flkty.on("change",()=>this.slideActions(!0)),this.sliderThumbs.length&&this.sliderThumbs.forEach(element=>{element.addEventListener("click",e=>{e.preventDefault();const slideIndex=[...element.parentElement.children].indexOf(element);this.flkty.select(slideIndex)})}),(!this.flkty||!this.flkty.isActive)&&this.slideshow.classList.remove(classes$y.isLoading)}slideActions(changeEvent=!1){const currentSlide=this.slideshow.querySelector(`.${classes$y.isSelected}`),currentSlideTextColor=currentSlide.getAttribute(attributes$q.slideTextColor),currentSlideLink=currentSlide.querySelector(selectors$J.link),buttons=this.slideshow.querySelectorAll(`${selectors$J.slide} a, ${selectors$J.slide} button`);if(document.body.classList.contains(classes$y.focused)&¤tSlideLink&&this.sliderOptions.groupCells&&changeEvent&¤tSlideLink.focus(),buttons.length&&buttons.forEach(button=>{const slide=button.closest(selectors$J.slide);if(slide){const tabIndex=slide.classList.contains(classes$y.isSelected)?0:-1;button.setAttribute("tabindex",tabIndex)}}),currentSlideTextColor!=="rgba(0,0,0,0)"&¤tSlideTextColor!==""&&this.slideshow.style.setProperty("--text",currentSlideTextColor),this.sliderThumbs.length&&this.sliderThumbs.length===this.slideshowSlides.length&¤tSlide.hasAttribute(attributes$q.slideIndex)){const slideIndex=parseInt(currentSlide.getAttribute(attributes$q.slideIndex)),currentThumb=this.container.querySelector(`${selectors$J.sliderThumb}.${classes$y.isSelected}`);currentThumb&¤tThumb.classList.remove(classes$y.isSelected),this.sliderThumbs[slideIndex].classList.add(classes$y.isSelected)}}positionArrows(){if(this.slideshow.hasAttribute(attributes$q.arrowPositionMiddle)&&this.sliderOptions.prevNextButtons){const itemImage=this.slideshow.querySelector(selectors$J.collectionImage)||this.slideshow.querySelector(selectors$J.productItemImage)||this.slideshow.querySelector(selectors$J.columnImage);if(!itemImage)return;this.slideshow.querySelector(selectors$J.flickityPrevArrow).style.top=itemImage.clientHeight/2+"px",this.slideshow.querySelector(selectors$J.flickityNextArrow).style.top=itemImage.clientHeight/2+"px"}}onUnload(){this.slideshow&&this.flkty&&(this.flkty.options.watchCSS=!1,this.flkty.destroy())}onBlockSelect(evt){if(!this.slideshow)return;const slide=this.slideshow.querySelector(`[${selectors$J.slideValue}="${evt.detail.blockId}"]`);if(!slide)return;let slideIndex=parseInt(slide.getAttribute(attributes$q.slideIndex));this.multipleSlides&&!this.slideshow.classList.contains(classes$y.sliderInitialized)&&(slideIndex=0),this.slideshow.classList.add(classes$y.isSelected),this.flkty&&this.slideshow.classList.contains(classes$y.flickityEnabled)&&(this.flkty.selectCell(slideIndex),this.flkty.stopPlayer())}onBlockDeselect(){this.slideshow&&(this.slideshow.classList.remove(classes$y.isSelected),this.flkty&&this.sliderOptions.hasOwnProperty("autoPlay")&&this.sliderOptions.autoPlay&&this.flkty.playPlayer())}}const slider={onLoad(){sections$l[this.id]=[],this.container.querySelectorAll(selectors$J.slider).forEach(el=>{sections$l[this.id].push(new Slider(this.container,el))})},onUnload(){sections$l[this.id].forEach(el=>{typeof el.onUnload=="function"&&el.onUnload()})},onBlockSelect(e){sections$l[this.id].forEach(el=>{typeof el.onBlockSelect=="function"&&el.onBlockSelect(e)})},onBlockDeselect(e){sections$l[this.id].forEach(el=>{typeof el.onBlockDeselect=="function"&&el.onBlockDeselect(e)})}};register("blog-section",[slider]),register("hero",parallaxHero),register("double",slider);const scrollTo=elementTop=>{let{stickyHeaderHeight}=readHeights();window.scrollTo({top:elementTop+window.scrollY-stickyHeaderHeight,left:0,behavior:"smooth"})};class PopupCookie{constructor(name,value,daysToExpire=7){const today=new Date,expiresDate=new Date;expiresDate.setTime(today.getTime()+36e5*24*daysToExpire),this.configuration={expires:expiresDate.toGMTString(),path:"/",domain:window.location.hostname,sameSite:"none",secure:!0},this.name=name,this.value=value}write(){(document.cookie.indexOf("; ")!==-1&&!document.cookie.split("; ").find(row=>row.startsWith(this.name))||document.cookie.indexOf("; ")===-1)&&(document.cookie=`${this.name}=${this.value}; expires=${this.configuration.expires}; path=${this.configuration.path}; domain=${this.configuration.domain}; sameSite=${this.configuration.sameSite}; secure=${this.configuration.secure}`)}read(){return document.cookie.indexOf("; ")!==-1&&document.cookie.split("; ").find(row=>row.startsWith(this.name))?document.cookie.split("; ").find(row=>row.startsWith(this.name)).split("=")[1]:!1}destroy(){document.cookie.split("; ").find(row=>row.startsWith(this.name))&&(document.cookie=`${this.name}=null; expires=${this.configuration.expires}; path=${this.configuration.path}; domain=${this.configuration.domain}`)}}const selectors$I={newsletterForm:"[data-newsletter-form]",newsletterHeading:"[data-newsletter-heading]",newsletterPopup:"[data-newsletter]"},classes$x={success:"has-success",error:"has-error",hidden:"hidden"},attributes$p={cookieNameAttribute:"data-cookie-name"},sections$k={};class NewsletterCheckForResult{constructor(newsletter){this.sessionStorage=window.sessionStorage,this.newsletter=newsletter,this.popup=this.newsletter.closest(selectors$I.newsletterPopup),this.popup&&(this.cookie=new PopupCookie(this.popup.getAttribute(attributes$p.cookieNameAttribute),"user_has_closed",null)),this.stopSubmit=!0,this.isChallengePage=!1,this.formID=null,this.checkForChallengePage(),this.newsletterSubmit=e=>this.newsletterSubmitEvent(e),this.isChallengePage||this.init()}init(){this.newsletter.addEventListener("submit",this.newsletterSubmit),this.showMessage()}newsletterSubmitEvent(e){this.stopSubmit&&(e.preventDefault(),e.stopImmediatePropagation(),this.removeStorage(),this.writeStorage(),this.stopSubmit=!1,this.newsletter.submit())}checkForChallengePage(){this.isChallengePage=window.location.pathname==="/challenge"}writeStorage(){this.sessionStorage!==void 0&&this.sessionStorage.setItem("newsletter_form_id",this.newsletter.id)}readStorage(){this.formID=this.sessionStorage.getItem("newsletter_form_id")}removeStorage(){this.sessionStorage.removeItem("newsletter_form_id")}showMessage(){if(this.readStorage(),this.newsletter.id===this.formID){const newsletter=document.getElementById(this.formID),newsletterHeading=newsletter.parentElement.querySelector(selectors$I.newsletterHeading),submissionSuccess=window.location.search.indexOf("?customer_posted=true")!==-1,submissionFailure=window.location.search.indexOf("accepts_marketing")!==-1;submissionSuccess?(newsletter.classList.remove(classes$x.error),newsletter.classList.add(classes$x.success),newsletterHeading&&(newsletterHeading.classList.add(classes$x.hidden),newsletter.classList.remove(classes$x.hidden)),this.popup&&this.cookie.write()):submissionFailure&&(newsletter.classList.remove(classes$x.success),newsletter.classList.add(classes$x.error),newsletterHeading&&(newsletterHeading.classList.add(classes$x.hidden),newsletter.classList.remove(classes$x.hidden))),(submissionSuccess||submissionFailure)&&window.addEventListener("load",()=>{this.scrollToForm(newsletter)})}}scrollToForm(newsletter){const rect=newsletter.getBoundingClientRect();rect.top>=0&&rect.left>=0&&rect.bottom<=getWindowHeight()&&rect.right<=getWindowWidth()||setTimeout(()=>{scrollTo(newsletter.getBoundingClientRect().top)},500)}unload(){this.newsletter.removeEventListener("submit",this.newsletterSubmit)}}const newsletterCheckForResultSection={onLoad(){sections$k[this.id]=[],this.container.querySelectorAll(selectors$I.newsletterForm).forEach(form=>{sections$k[this.id].push(new NewsletterCheckForResult(form))})},onUnload(){sections$k[this.id].forEach(form=>{typeof form.unload=="function"&&form.unload()})}};register("footer",[parallaxHero,newsletterCheckForResultSection]);const selectors$H={section:"[data-section-type]",collectionSidebar:"[data-collection-sidebar]",collectionSidebarSlideOut:"[data-collection-sidebar-slide-out]",collectionSidebarCloseButton:"[data-collection-sidebar-close]",form:"[data-collection-filters-form]",input:"input",select:"select",label:"label",textarea:"textarea",priceMin:"[data-field-price-min]",priceMax:"[data-field-price-max]",priceMinValue:"data-field-price-min",priceMaxValue:"data-field-price-max",rangeMin:"[data-se-min-value]",rangeMax:"[data-se-max-value]",rangeMinValue:"data-se-min-value",rangeMaxValue:"data-se-max-value",rangeMinDefault:"data-se-min",rangeMaxDefault:"data-se-max",product:"[data-grid-item]",showMore:"[data-show-more]",linkHidden:"[data-link-hidden]",collectionNav:"[data-collection-nav]",productsContainer:"[data-products-grid]",activeFilters:"[data-active-filters]",activeFiltersCount:"data-active-filters-count",filterUpdateUrlButton:"[data-filter-update-url]",dataSort:"[data-sort-enabled]",sortLinks:"[data-sort-link]",sortValue:"data-value",sortButton:"[data-popout-toggle]",sortButtonText:"[data-sort-button-text]"},classes$w={hidden:"hidden",focused:"is-focused",loading:"is-loading",active:"is-active"};class CollectionFiltersForm extends HTMLElement{constructor(){super(),this.container=this.closest(selectors$H.section),this.collectionSidebar=this.container.querySelector(selectors$H.collectionSidebar),this.collectionSidebarSlideOut=this.container.querySelector(selectors$H.collectionSidebarSlideOut),this.form=this.querySelector(selectors$H.form),this.productsContainer=this.container.querySelector(selectors$H.productsContainer),this.collectionNav=this.container.querySelector(selectors$H.collectionNav),this.sort=this.container.querySelector(selectors$H.dataSort),this.sortButton=this.container.querySelector(selectors$H.sortButton),this.sortLinks=this.container.querySelectorAll(selectors$H.sortLinks),this.filterUrlButtons=this.container.querySelectorAll(selectors$H.filterUpdateUrlButton),this.collectionSidebarCloseButtons=this.container.querySelectorAll(selectors$H.collectionSidebarCloseButton),this.showMoreOptions=this.querySelectorAll(selectors$H.showMore),this.a11y=a11y,this.updatePriceEvent=debounce(e=>this.updatePrice(e),500),this.updateRangeEvent=e=>this.updateRange(e),this.showMoreEvent=e=>this.showMore(e),this.onSortButtonClickEvent=e=>this.onSortButtonClick(e),this.submitFormEvent=e=>this.submitForm(e),this.collectionSidebarCloseEvent=e=>this.collectionSidebarClose(e),this.filterUpdateFromUrlEvent=e=>this.filterUpdateFromUrl(e)}connectedCallback(){this.sort&&this.sortLinks.length&&this.sortLinks.forEach(link=>{link.addEventListener("click",this.onSortButtonClickEvent)}),this.collectionSidebar&&this.form&&(this.collectionSidebar.addEventListener("input",this.updatePriceEvent),this.collectionSidebar.addEventListener("theme:range:update",this.updateRangeEvent)),this.showMoreOptions.length&&this.showMoreOptions.forEach(element=>{element.addEventListener("click",this.showMoreEvent)}),(this.collectionSidebar||this.sort)&&window.addEventListener("popstate",this.submitFormEvent),this.filterUrlButtons.length&&this.filterUrlButtons.forEach(filterUrlButton=>{filterUrlButton.addEventListener("click",this.filterUpdateFromUrlEvent)}),this.collectionSidebarCloseButtons.length&&this.collectionSidebarCloseButtons.forEach(button=>{button.addEventListener("click",this.collectionSidebarCloseEvent)})}collectionSidebarClose(e){e.preventDefault(),this.container.dispatchEvent(new CustomEvent("theme:filter:close",{bubbles:!1}))}onSortButtonClick(e){e.preventDefault(),this.sortButton&&this.sortButton.dispatchEvent(new Event("click")),this.sortActions(e,e.currentTarget)}sortActions(e,link,submitForm=!0){const sortButtonText=this.sort.querySelector(selectors$H.sortButtonText),sortActive=this.sort.querySelector(`.${classes$w.active}`);if(sortButtonText){const linkText=link?link.textContent.trim():"";sortButtonText.textContent=linkText}sortActive&&sortActive.classList.remove(classes$w.active),this.sort.classList.toggle(classes$w.active,link),link&&(link.parentElement.classList.add(classes$w.active),submitForm&&this.submitForm(e))}onSortCheck(e){let link=null;if(window.location.search.includes("sort_by")){const urlParams=new window.URL(window.location.href).searchParams;for(const[key,val]of urlParams.entries()){const linkSort=this.sort.querySelector(`[${selectors$H.sortValue}="${val}"]`);if(key.includes("sort_by")&&linkSort){link=linkSort;break}}}this.sortActions(e,link,!1)}showMore(e){e.preventDefault();const target=e.target.matches(selectors$H.showMore)?e.target:e.target.closest(selectors$H.showMore);target.parentElement.classList.add(classes$w.hidden),target.parentElement.previousElementSibling.querySelectorAll(selectors$H.linkHidden).forEach((link,index)=>{link.classList.remove(classes$w.hidden);const input=link.querySelector(selectors$H.input);index===0&&document.body.classList.contains(classes$w.focused)&&input&&(this.collectionSidebarSlideOut||isMobile()?(this.a11y.removeTrapFocus(),this.a11y.trapFocus(this.collectionSidebar,{elementToFocus:input})):input.focus())})}updatePrice(e){const type=e.type,target=e.target;if((type===selectors$H.input||type===selectors$H.select||type===selectors$H.label||type===selectors$H.textarea)&&this.form&&typeof this.form.submit=="function"){const priceMin=this.form.querySelector(selectors$H.priceMin),priceMax=this.form.querySelector(selectors$H.priceMax);priceMin&&priceMax&&(target.hasAttribute(selectors$H.priceMinValue)&&!priceMax.value?priceMax.value=priceMax.placeholder:target.hasAttribute(selectors$H.priceMaxValue)&&!priceMin.value&&(priceMin.value=priceMin.placeholder)),this.submitForm(e)}}updateRange(e){if(this.form&&typeof this.form.submit=="function"){const rangeMin=this.form.querySelector(selectors$H.rangeMin),rangeMax=this.form.querySelector(selectors$H.rangeMax),priceMin=this.form.querySelector(selectors$H.priceMin),priceMax=this.form.querySelector(selectors$H.priceMax);if(rangeMin&&rangeMax&&priceMin&&priceMax&&rangeMin.hasAttribute(selectors$H.rangeMinValue)&&rangeMax.hasAttribute(selectors$H.rangeMaxValue)){const priceMinValue=parseInt(priceMin.placeholder),priceMaxValue=parseInt(priceMax.placeholder),rangeMinValue=parseInt(rangeMin.getAttribute(selectors$H.rangeMinValue)),rangeMaxValue=parseInt(rangeMax.getAttribute(selectors$H.rangeMaxValue));(priceMinValue!==rangeMinValue||priceMaxValue!==rangeMaxValue)&&(priceMin.value=rangeMinValue,priceMax.value=rangeMaxValue,this.submitForm(e))}}}filterUpdateFromUrl(e){e.preventDefault(),this.submitForm(e,e.currentTarget.getAttribute("href"))}submitForm(e,replaceHref=""){if(!e||e&&e.type!=="popstate")if(replaceHref===""){let filterUrl=new window.URL(window.location.href).searchParams;const filterUrlParams=Object.fromEntries(filterUrl),filterUrlRemoveString=filterUrl.toString();if(filterUrlRemoveString.includes("filter.")||filterUrlRemoveString.includes("page=")||filterUrlRemoveString.includes("sort_by="))for(const key in filterUrlParams)(key.includes("filter.")||key==="page"||key==="sort_by")&&filterUrl.delete(key);if(this.form){const formData=new FormData(this.form),formParams=new URLSearchParams(formData),rangeMin=this.form.querySelector(selectors$H.rangeMin),rangeMax=this.form.querySelector(selectors$H.rangeMax),rangeMinDefaultValue=rangeMin&&rangeMin.hasAttribute(selectors$H.rangeMinDefault)?rangeMin.getAttribute(selectors$H.rangeMinDefault):"",rangeMaxDefaultValue=rangeMax&&rangeMax.hasAttribute(selectors$H.rangeMaxDefault)?rangeMax.getAttribute(selectors$H.rangeMaxDefault):"";let priceFilterDefaultCounter=0;for(let[key,val]of formParams.entries())(key.includes("filter.")&&val||key.includes("sort_by")&&val)&&(filterUrl.append(key,val),(val===rangeMinDefaultValue&&key==="filter.v.price.gte"||val===rangeMaxDefaultValue&&key==="filter.v.price.lte")&&(priceFilterDefaultCounter+=1));priceFilterDefaultCounter===2&&(filterUrl.delete("filter.v.price.gte"),filterUrl.delete("filter.v.price.lte"))}const filterUrlString=filterUrl.toString(),filterNewParams=filterUrlString?`?${filterUrlString}`:location.pathname;window.history.pushState(null,"",filterNewParams)}else window.history.pushState(null,"",replaceHref);else this.sort&&this.onSortCheck(e);this.productsContainer&&(this.productsContainer.classList.add(classes$w.loading),fetch(`${window.location.pathname}${window.location.search}`).then(response=>response.text()).then(data=>{const dataHtml=new DOMParser().parseFromString(data,"text/html");if(this.productsContainer.innerHTML=dataHtml.querySelector(selectors$H.productsContainer).innerHTML,this.collectionSidebar){this.collectionSidebar.innerHTML=dataHtml.querySelector(selectors$H.collectionSidebar).innerHTML;const activeFiltersCountContainer=this.collectionSidebar.querySelector(`[${selectors$H.activeFiltersCount}]`),activeFiltersContainer=this.container.querySelectorAll(selectors$H.activeFilters);if(activeFiltersCountContainer&&activeFiltersContainer.length){const activeFiltersCount=parseInt(activeFiltersCountContainer.getAttribute(selectors$H.activeFiltersCount));activeFiltersContainer.forEach(counter=>{counter.textContent=activeFiltersCount,counter.classList.toggle(classes$w.hidden,activeFiltersCount<1)})}}this.collectionNav&&scrollTo(this.productsContainer.getBoundingClientRect().top-this.collectionNav.offsetHeight),setTimeout(()=>{this.productsContainer.classList.remove(classes$w.loading)},500)}).catch(error=>{console.log(error)}))}disconnectedCallback(){this.collectionSidebar&&this.form&&(this.collectionSidebar.removeEventListener("input",this.updatePriceEvent),this.collectionSidebar.removeEventListener("theme:range:update",this.updateRangeEvent)),this.showMoreOptions.length&&this.showMoreOptions.forEach(element=>{element.removeEventListener("click",this.showMoreEvent)}),this.sort&&this.sortLinks.length&&this.sortLinks.forEach(link=>{link.removeEventListener("click",this.onSortButtonClickEvent)}),(this.collectionSidebar||this.sort)&&window.removeEventListener("popstate",this.submitFormEvent),this.filterUrlButtons.length&&this.filterUrlButtons.forEach(filterUrlButton=>{filterUrlButton.removeEventListener("click",this.filterUpdateFromUrlEvent)}),this.collectionSidebarCloseButtons.length&&this.collectionSidebarCloseButtons.forEach(button=>{button.removeEventListener("click",this.collectionSidebarCloseEvent)})}}const selectors$G={sidebar:"[data-collection-sidebar]",rangeDotLeft:"[data-range-left]",rangeDotRight:"[data-range-right]",rangeLine:"[data-range-line]",rangeHolder:"[data-range-holder]",dataMin:"data-se-min",dataMax:"data-se-max",dataMinValue:"data-se-min-value",dataMaxValue:"data-se-max-value",dataStep:"data-se-step",dataFilterUpdate:"data-range-filter-update",priceMin:"[data-field-price-min]",priceMax:"[data-field-price-max]"},classes$v={initialized:"is-initialized"};class RangeSlider extends HTMLElement{constructor(){super(),this.sidebar=this.closest(selectors$G.sidebar),this.sidebarTransitionEvent=event=>this.onSidebarTransitionEnd(event),this.resizeEvent=()=>{this.connectedCallback(),this.sidebar.addEventListener("transitionend",this.sidebarTransitionEvent)},this.onMoveEvent=event=>this.onMove(event),this.onStopEvent=event=>this.onStop(event),this.onStartEvent=event=>this.onStart(event),this.startX=0,this.x=0,this.touchLeft=this.querySelector(selectors$G.rangeDotLeft),this.touchRight=this.querySelector(selectors$G.rangeDotRight),this.lineSpan=this.querySelector(selectors$G.rangeLine),this.min=parseFloat(this.getAttribute(selectors$G.dataMin)),this.max=parseFloat(this.getAttribute(selectors$G.dataMax)),this.step=0,this.normalizeFact=26,document.addEventListener("theme:resize:width",this.resizeEvent)}connectedCallback(){let defaultMinValue=this.min;this.hasAttribute(selectors$G.dataMinValue)&&(defaultMinValue=parseFloat(this.getAttribute(selectors$G.dataMinValue)));let defaultMaxValue=this.max;this.hasAttribute(selectors$G.dataMaxValue)&&(defaultMaxValue=parseFloat(this.getAttribute(selectors$G.dataMaxValue))),defaultMinValuethis.max&&(defaultMaxValue=this.max),defaultMinValue>defaultMaxValue&&(defaultMinValue=defaultMaxValue),this.getAttribute(selectors$G.dataStep)&&(this.step=Math.abs(parseFloat(this.getAttribute(selectors$G.dataStep)))),this.reset(),this.maxX=this.offsetWidth-this.touchRight.offsetWidth,this.selectedTouch=null,this.initialValue=this.lineSpan.offsetWidth-this.normalizeFact,this.setMinValue(defaultMinValue),this.setMaxValue(defaultMaxValue),this.touchLeft.addEventListener("mousedown",this.onStartEvent),this.touchRight.addEventListener("mousedown",this.onStartEvent),this.touchLeft.addEventListener("touchstart",this.onStartEvent,{passive:!0}),this.touchRight.addEventListener("touchstart",this.onStartEvent,{passive:!0}),this.classList.add(classes$v.initialized)}reset(){this.touchLeft.style.left="0px",this.touchRight.style.left=this.offsetWidth-this.touchLeft.offsetWidth+"px",this.lineSpan.style.marginLeft="0px",this.lineSpan.style.width=this.offsetWidth-this.touchLeft.offsetWidth+"px",this.startX=0,this.x=0}setMinValue(minValue){const ratio=(minValue-this.min)/(this.max-this.min);this.touchLeft.style.left=Math.ceil(ratio*(this.offsetWidth-(this.touchLeft.offsetWidth+this.normalizeFact)))+"px",this.lineSpan.style.marginLeft=this.touchLeft.offsetLeft+"px",this.lineSpan.style.width=this.touchRight.offsetLeft-this.touchLeft.offsetLeft+"px",this.setAttribute(selectors$G.dataMinValue,minValue)}setMaxValue(maxValue){const ratio=(maxValue-this.min)/(this.max-this.min);this.touchRight.style.left=Math.ceil(ratio*(this.offsetWidth-(this.touchLeft.offsetWidth+this.normalizeFact))+this.normalizeFact)+"px",this.lineSpan.style.marginLeft=this.touchLeft.offsetLeft+"px",this.lineSpan.style.width=this.touchRight.offsetLeft-this.touchLeft.offsetLeft+"px",this.setAttribute(selectors$G.dataMaxValue,maxValue)}onStart(event){let eventTouch=event;event.touches&&(eventTouch=event.touches[0]),event.currentTarget===this.touchLeft?this.x=this.touchLeft.offsetLeft:event.currentTarget===this.touchRight&&(this.x=this.touchRight.offsetLeft),this.startX=eventTouch.pageX-this.x,this.selectedTouch=event.currentTarget,document.addEventListener("mousemove",this.onMoveEvent),document.addEventListener("mouseup",this.onStopEvent),document.addEventListener("touchmove",this.onMoveEvent,{passive:!0}),document.addEventListener("touchend",this.onStopEvent,{passive:!0})}onMove(event){let eventTouch=event;event.touches&&(eventTouch=event.touches[0]),this.x=eventTouch.pageX-this.startX,this.selectedTouch===this.touchLeft?(this.x>this.touchRight.offsetLeft-this.selectedTouch.offsetWidth+10?this.x=this.touchRight.offsetLeft-this.selectedTouch.offsetWidth+10:this.x<0&&(this.x=0),this.selectedTouch.style.left=this.x+"px"):this.selectedTouch===this.touchRight&&(this.xthis.maxX&&(this.x=this.maxX),this.selectedTouch.style.left=this.x+"px"),this.lineSpan.style.marginLeft=this.touchLeft.offsetLeft+"px",this.lineSpan.style.width=this.touchRight.offsetLeft-this.touchLeft.offsetLeft+"px",this.calculateValue(),this.getAttribute("on-change")&&new Function("min, max",this.getAttribute("on-change"))(this.getAttribute(selectors$G.dataMinValue),this.getAttribute(selectors$G.dataMaxValue)),this.onChange(this.getAttribute(selectors$G.dataMinValue),this.getAttribute(selectors$G.dataMaxValue))}onStop(){document.removeEventListener("mousemove",this.onMoveEvent),document.removeEventListener("mouseup",this.onStopEvent),document.removeEventListener("touchmove",this.onMoveEvent),document.removeEventListener("touchend",this.onStopEvent),this.selectedTouch=null,this.calculateValue(),this.onChanged(this.getAttribute(selectors$G.dataMinValue),this.getAttribute(selectors$G.dataMaxValue))}onChange(min,max){const rangeHolder=this.closest(selectors$G.rangeHolder);if(rangeHolder){const priceMin=rangeHolder.querySelector(selectors$G.priceMin),priceMax=rangeHolder.querySelector(selectors$G.priceMax);priceMin&&priceMax&&(priceMin.value=min,priceMax.value=max)}}onChanged(min,max){this.hasAttribute(selectors$G.dataFilterUpdate)&&this.dispatchEvent(new CustomEvent("theme:range:update",{bubbles:!0}))}calculateValue(){const newValue=(this.lineSpan.offsetWidth-this.normalizeFact)/this.initialValue;let minValue=this.lineSpan.offsetLeft/this.initialValue,maxValue=minValue+newValue;if(minValue=minValue*(this.max-this.min)+this.min,maxValue=maxValue*(this.max-this.min)+this.min,this.step!==0){let multi=Math.floor(minValue/this.step);minValue=this.step*multi,multi=Math.floor(maxValue/this.step),maxValue=this.step*multi}this.selectedTouch===this.touchLeft&&this.setAttribute(selectors$G.dataMinValue,minValue),this.selectedTouch===this.touchRight&&this.setAttribute(selectors$G.dataMaxValue,maxValue)}onSidebarTransitionEnd(event){event.target==this.sidebar&&event.propertyName=="min-width"&&(this.sidebar.removeEventListener("transitionend",this.sidebarTransitionEvent),this.connectedCallback())}disconnectedCallback(){this.sidebar.removeEventListener("transitionend",this.sidebarTransitionEvent),this.resizeEvent&&document.removeEventListener("theme:resize:width",this.resizeEvent)}}const selectors$F={collectionSidebar:"[data-collection-sidebar]",collectionSidebarSlideOut:"[data-collection-sidebar-slide-out]",collectionSidebarCloseButton:"[data-collection-sidebar-close]",groupTagsButton:"[data-aria-toggle]",animation:"[data-animation]"},classes$u={animated:"drawer--animated",hiding:"is-hiding",expanded:"expanded",noMobileAnimation:"no-mobile-animation",focused:"is-focused"};let sections$j={};class Collection{constructor(section){this.container=section.container,this.collectionSidebar=this.container.querySelector(selectors$F.collectionSidebar),this.groupTagsButton=this.container.querySelector(selectors$F.groupTagsButton),this.a11y=a11y,this.groupTagsButtonClickEvent=evt=>this.groupTagsButtonClick(evt),this.sidebarResizeEvent=()=>this.toggleSidebarSlider(),this.collectionSidebarCloseEvent=evt=>this.collectionSidebarClose(evt),this.init()}init(){this.groupTagsButton!==null&&(document.addEventListener("theme:resize:width",this.sidebarResizeEvent),this.groupTagsButton.addEventListener("click",this.groupTagsButtonClickEvent),this.collectionSidebar&&setTimeout(()=>{this.collectionSidebar.classList.remove(classes$u.noMobileAnimation)},1e3),new MutationObserver(mutationList=>{for(const mutation of mutationList)mutation.type==="attributes"&&mutation.target.getAttribute("aria-expanded")=="true"&&this.showSidebarCallback()}).observe(this.groupTagsButton,{attributes:!0,childList:!1,subtree:!1})),this.container.addEventListener("keyup",function(evt){evt.code==="Escape"&&this.hideSidebar()}.bind(this)),this.collectionSidebar&&(this.collectionSidebar.addEventListener("transitionend",()=>{this.collectionSidebar.classList.contains(classes$u.expanded)||this.collectionSidebar.classList.remove(classes$u.animated)}),this.toggleSidebarSlider(),this.container.addEventListener("theme:filter:close",this.collectionSidebarCloseEvent))}showSidebarCallback(){const collectionSidebarSlideOut=this.container.querySelector(selectors$F.collectionSidebarSlideOut),isScrollLocked=document.documentElement.hasAttribute("data-scroll-locked"),isMobileView=isMobile();this.collectionSidebar.classList.add(classes$u.animated),collectionSidebarSlideOut===null&&!isMobileView&&isScrollLocked&&(this.a11y.removeTrapFocus(),document.dispatchEvent(new CustomEvent("theme:scroll:unlock",{bubbles:!0}))),(isMobileView||collectionSidebarSlideOut!==null)&&(collectionSidebarSlideOut&&this.a11y.trapFocus(this.collectionSidebar,{elementToFocus:this.collectionSidebar.querySelector(selectors$F.collectionSidebarCloseButton)}),document.dispatchEvent(new CustomEvent("theme:scroll:lock",{bubbles:!0})))}hideSidebar(){const collectionSidebarSlideOut=this.container.querySelector(selectors$F.collectionSidebarSlideOut),isScrollLocked=document.documentElement.hasAttribute("data-scroll-locked");this.groupTagsButton.setAttribute("aria-expanded","false"),this.collectionSidebar.classList.remove(classes$u.expanded),collectionSidebarSlideOut&&this.a11y.removeTrapFocus(),isScrollLocked&&document.dispatchEvent(new CustomEvent("theme:scroll:unlock",{bubbles:!0}))}toggleSidebarSlider(){isMobile()?this.hideSidebar():this.collectionSidebar.classList.contains(classes$u.expanded)&&this.showSidebarCallback()}collectionSidebarClose(evt){evt.preventDefault(),this.hideSidebar(),document.body.classList.contains(classes$u.focused)&&this.groupTagsButton&&this.groupTagsButton.focus()}groupTagsButtonClick(){document.documentElement.hasAttribute("data-scroll-locked")&&document.dispatchEvent(new CustomEvent("theme:scroll:unlock",{bubbles:!0}))}onUnload(){this.groupTagsButton!==null&&(document.removeEventListener("theme:resize:width",this.sidebarResizeEvent),this.groupTagsButton.removeEventListener("click",this.groupTagsButtonClickEvent)),this.collectionSidebar&&this.container.removeEventListener("theme:filter:close",this.collectionSidebarCloseEvent)}}register("collection",[slider,parallaxHero,{onLoad(){sections$j[this.id]=new Collection(this)},onUnload(){sections$j[this.id].onUnload()}},tooltipSection]),customElements.get("collection-filters-form")||customElements.define("collection-filters-form",CollectionFiltersForm),customElements.get("range-slider")||customElements.define("range-slider",RangeSlider);const selectors$E={frame:"[data-ticker-frame]",scale:"[data-ticker-scale]",text:"[data-ticker-text]",clone:"data-clone"},attributes$o={autoplay:"autoplay",speed:"speed"},classes$t={animation:"ticker--animated",unloaded:"ticker--unloaded",comparitor:"ticker__comparitor"},settings$2={speed:1.63,space:100};class Ticker extends HTMLElement{constructor(){super(),this.autoplay=this.hasAttribute(attributes$o.autoplay),this.scale=this.querySelector(selectors$E.scale),this.text=this.querySelector(selectors$E.text),this.speed=this.hasAttribute(attributes$o.speed)?this.getAttribute(attributes$o.speed):settings$2.speed,this.comparitor=this.text.cloneNode(!0),this.comparitor.classList.add(classes$t.comparitor),this.appendChild(this.comparitor),this.scale.classList.remove(classes$t.unloaded),this.checkWidthEvent=this.checkWidth.bind(this)}connectedCallback(){this.checkWidth(),this.addEventListener("theme:ticker:refresh",this.checkWidthEvent),document.addEventListener("theme:resize:width",this.checkWidthEvent)}disconnectedCallback(){document.removeEventListener("theme:resize:width",this.checkWidthEvent)}checkWidth(){const padding=window.getComputedStyle(this).paddingLeft.replace("px","")*2;if(this.clientWidth-paddingthis.initSlider(event)}connectedCallback(){this.removeAnnouncement(),this.slider&&this.initSliders(),this.addEventListener("theme:block:select",e=>{this.onBlockSelect(e)}),this.addEventListener("theme:block:deselect",e=>{this.onBlockDeselect(e)}),document.dispatchEvent(new CustomEvent("theme:announcement:init",{bubbles:!0}))}removeAnnouncement(){for(let index=0;index{this.querySelectorAll(selectors$D.tickerBar)?.forEach(ticker=>{ticker.dispatchEvent(new CustomEvent("theme:ticker:refresh"))})})}initSlider(){const isDesktopView=isDesktop(),isMobileView=!isDesktopView;(isDesktopView&&this.enableSlider||isMobileView&&!this.enableSlider)&&(this.slider.flkty?.destroy(),isDesktopView&&this.enableSlider?this.enableSlider=!1:isMobileView&&!this.enableSlider&&(this.enableSlider=!0),this.slider=new Slider(this,this.querySelector(selectors$D.slider)),this.slider.flkty?.reposition())}onBlockSelect(e){this.slider&&this.slider.onBlockSelect(e)}onBlockDeselect(e){this.slider&&this.slider.onBlockDeselect(e)}disconnectedCallback(){document.removeEventListener("theme:resize:width",this.initSliderEvent),document.removeEventListener("theme:resize:width",this.tickerResizeEvent),this.removeEventListener("theme:block:select",e=>{this.onBlockSelect(e)}),this.removeEventListener("theme:block:deselect",e=>{this.onBlockDeselect(e)})}}customElements.get("announcement-bar")||customElements.define("announcement-bar",AnnouncementBar),customElements.get("ticker-bar")||customElements.define("ticker-bar",Ticker);const selectors$C={body:"body",drawerWrappper:"[data-drawer]",drawerInner:"[data-drawer-inner]",underlay:"[data-drawer-underlay]",stagger:"[data-stagger-animation]",wrapper:"[data-header-wrapper]",drawerToggle:"data-drawer-toggle",focusable:'button, [href], select, textarea, [tabindex]:not([tabindex="-1"])'},classes$s={animated:"drawer--animated",open:"is-open",isFocused:"is-focused",headerStuck:"js__header__stuck"};let sections$i={};class Drawer{constructor(el){this.drawer=el,this.drawerWrapper=this.drawer.closest(selectors$C.drawerWrappper),this.drawerInner=this.drawer.querySelector(selectors$C.drawerInner),this.underlay=this.drawer.querySelector(selectors$C.underlay),this.wrapper=this.drawer.closest(selectors$C.wrapper),this.key=this.drawer.dataset.drawer,this.btnSelector=`[${selectors$C.drawerToggle}='${this.key}']`,this.buttons=document.querySelectorAll(this.btnSelector),this.staggers=this.drawer.querySelectorAll(selectors$C.stagger),this.body=document.querySelector(selectors$C.body),this.accessibility=a11y,this.initWatchFocus=evt=>this.watchFocus(evt),this.showDrawer=this.showDrawer.bind(this),this.hideDrawer=this.hideDrawer.bind(this),this.connectToggle(),this.connectDrawer(),this.closers()}connectToggle(){this.buttons.forEach(btn=>{btn.addEventListener("click",()=>{this.drawer.dispatchEvent(new CustomEvent("theme:drawer:toggle",{bubbles:!1}))})})}connectDrawer(){this.drawer.addEventListener("theme:drawer:toggle",()=>{this.drawer.classList.contains(classes$s.open)?this.drawer.dispatchEvent(new CustomEvent("theme:drawer:close",{bubbles:!0})):this.drawer.dispatchEvent(new CustomEvent("theme:drawer:open",{bubbles:!0}))}),this.drawerInner&&this.drawerInner.addEventListener("transitionend",event=>{event.target==this.drawerInner&&(this.drawer.classList.contains(classes$s.open)||(this.drawer.classList.remove(classes$s.animated),document.dispatchEvent(new CustomEvent("theme:sliderule:close",{bubbles:!1}))))}),document.addEventListener("theme:cart:open",this.hideDrawer),document.addEventListener("theme:drawer:close",this.hideDrawer),document.addEventListener("theme:drawer:open",this.showDrawer)}watchFocus(evt){!this.wrapper.contains(evt.target)&&this.body.classList.contains(classes$s.isFocused)&&this.hideDrawer()}closers(){this.wrapper.addEventListener("keyup",function(evt){evt.code==="Escape"&&(this.hideDrawer(),this.buttons[0].focus())}.bind(this)),this.underlay.addEventListener("click",()=>{this.hideDrawer()})}showDrawer(){this.drawerInner&&this.drawerInner.querySelector(this.btnSelector)&&(this.accessibility.removeTrapFocus(),this.drawerInner.addEventListener("transitionend",event=>{event.target==this.drawerInner&&this.drawer.classList.contains(classes$s.open)&&this.accessibility.trapFocus(this.drawerInner,{elementToFocus:this.drawerInner.querySelector(this.btnSelector)})})),this.buttons.forEach(el=>{el.setAttribute("aria-expanded",!0)}),this.drawer.classList.add(classes$s.open),this.drawer.classList.add(classes$s.animated),this.drawer.querySelector(selectors$C.focusable).focus(),document.addEventListener("focusin",this.initWatchFocus),document.dispatchEvent(new CustomEvent("theme:scroll:lock",{bubbles:!0}))}hideDrawer(){this.drawer.classList.contains(classes$s.open)&&(this.accessibility.removeTrapFocus(),this.body.classList.contains(classes$s.isFocused)&&this.buttons.length&&this.buttons[0].focus(),this.buttons.forEach(el=>{el.setAttribute("aria-expanded",!1)}),this.drawer.classList.remove(classes$s.open),document.removeEventListener("focusin",this.initWatchFocus),document.dispatchEvent(new CustomEvent("theme:scroll:unlock",{bubbles:!0})))}onUnload(){document.removeEventListener("theme:cart:open",this.hideDrawer),document.removeEventListener("theme:drawer:close",this.hideDrawer),document.removeEventListener("theme:drawer:open",this.showDrawer)}}const drawer={onLoad(){sections$i[this.id]=[],this.container.querySelectorAll(selectors$C.drawerWrappper).forEach(el=>{sections$i[this.id].push(new Drawer(el))})},onUnload(){sections$i[this.id].forEach(el=>{typeof el.onUnload=="function"&&el.onUnload()})}},selectors$B={pageHeader:".page-header"},classes$r={stuck:"js__header__stuck",sticky:"has-header-sticky",headerGroup:"shopify-section-group-header-group"},attributes$m={stickyHeader:"data-header-sticky",scrollLock:"data-scroll-locked"};let sections$h={};class Sticky{constructor(el){this.wrapper=el,this.sticks=this.wrapper.hasAttribute(attributes$m.stickyHeader),document.body.classList.toggle(classes$r.sticky,this.sticks),this.sticks&&(this.isStuck=!1,this.cls=this.wrapper.classList,this.headerOffset=document.querySelector(selectors$B.pageHeader)?.offsetTop,this.updateHeaderOffset=this.updateHeaderOffset.bind(this),this.scrollEvent=e=>this.onScroll(e),this.listen(),this.stickOnLoad())}listen(){document.addEventListener("theme:scroll",this.scrollEvent),document.addEventListener("shopify:section:load",this.updateHeaderOffset),document.addEventListener("shopify:section:unload",this.updateHeaderOffset)}onScroll(e){e.detail.down?!this.isStuck&&e.detail.position>this.headerOffset&&this.stickSimple():e.detail.position<=this.headerOffset&&this.unstickSimple()}updateHeaderOffset(event){event.target.classList.contains(classes$r.headerGroup)&&setTimeout(()=>{this.headerOffset=document.querySelector(selectors$B.pageHeader)?.offsetTop})}stickOnLoad(){window.scrollY>this.headerOffset&&this.stickSimple()}stickSimple(){this.cls.add(classes$r.stuck),this.isStuck=!0}unstickSimple(){document.documentElement.hasAttribute(attributes$m.scrollLock)||(this.cls.remove(classes$r.stuck),this.isStuck=!1)}unload(){document.removeEventListener("theme:scroll",this.scrollEvent),document.removeEventListener("shopify:section:load",this.updateHeaderOffset),document.removeEventListener("shopify:section:unload",this.updateHeaderOffset)}}const stickyHeader={onLoad(){sections$h=new Sticky(this.container)},onUnload:function(){typeof sections$h.unload=="function"&§ions$h.unload()}},selectors$A={disclosureToggle:"data-hover-disclosure-toggle",disclosureWrappper:"[data-hover-disclosure]",link:"[data-top-link]",wrapper:"[data-header-wrapper]",stagger:"[data-stagger]",staggerPair:"[data-stagger-first]",staggerAfter:"[data-stagger-second]",focusable:'button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])'},classes$q={isVisible:"is-visible",meganavVisible:"meganav--visible",meganavIsTransitioning:"meganav--is-transitioning"};let sections$g={},disclosures={};class HoverDisclosure{constructor(el){this.disclosure=el,this.wrapper=el.closest(selectors$A.wrapper),this.key=this.disclosure.id,this.trigger=document.querySelector(`[${selectors$A.disclosureToggle}='${this.key}']`),this.link=this.trigger.querySelector(selectors$A.link),this.grandparent=this.trigger.classList.contains("grandparent"),this.transitionTimeout=0,this.trigger.setAttribute("aria-haspopup",!0),this.trigger.setAttribute("aria-expanded",!1),this.trigger.setAttribute("aria-controls",this.key),this.connectHoverToggle(),this.handleTablets(),this.staggerChildAnimations()}onBlockSelect(evt){this.disclosure.contains(evt.target)&&this.showDisclosure(evt)}onBlockDeselect(evt){this.disclosure.contains(evt.target)&&this.hideDisclosure()}showDisclosure(e){e&&e.type&&e.type==="mouseenter"&&this.wrapper.classList.add(classes$q.meganavIsTransitioning),this.grandparent?this.wrapper.classList.add(classes$q.meganavVisible):(this.wrapper.classList.remove(classes$q.meganavVisible),console.log("dfg")),this.trigger.setAttribute("aria-expanded",!0),this.trigger.classList.add(classes$q.isVisible),this.disclosure.classList.add(classes$q.isVisible),this.transitionTimeout&&clearTimeout(this.transitionTimeout),this.transitionTimeout=setTimeout(()=>{this.wrapper.classList.remove(classes$q.meganavIsTransitioning)},200)}hideDisclosure(){this.disclosure.classList.remove(classes$q.isVisible),this.trigger.classList.remove(classes$q.isVisible),this.trigger.setAttribute("aria-expanded",!1),$(".nav_sublinks ").removeClass("active"),this.wrapper.classList.remove(classes$q.meganavVisible,classes$q.meganavIsTransitioning)}staggerChildAnimations(){this.disclosure.querySelectorAll(selectors$A.stagger).forEach((el,index)=>{el.style.transitionDelay=`${index*50+10}ms`}),this.disclosure.querySelectorAll(selectors$A.staggerPair).forEach((child,i)=>{const d1=i*100;child.style.transitionDelay=`${d1}ms`,child.parentElement.querySelectorAll(selectors$A.staggerAfter).forEach((grandchild,i2)=>{const d2=(i2+1)*20;grandchild.style.transitionDelay=`${d1+d2}ms`})})}handleTablets(){this.trigger.addEventListener("touchstart",function(e){this.disclosure.classList.contains(classes$q.isVisible)||(e.preventDefault(),this.showDisclosure(e))}.bind(this),{passive:!0})}connectHoverToggle(){this.trigger.addEventListener("mouseenter",e=>this.showDisclosure(e)),this.link.addEventListener("focus",e=>this.showDisclosure(e)),this.trigger.addEventListener("mouseleave",()=>this.hideDisclosure()),this.trigger.addEventListener("focusout",e=>{this.trigger.contains(e.relatedTarget)||this.hideDisclosure()}),this.disclosure.addEventListener("keyup",evt=>{evt.code==="Escape"&&this.hideDisclosure()})}}const hoverDisclosure={onLoad(){sections$g[this.id]=[],disclosures=this.container.querySelectorAll(selectors$A.disclosureWrappper),disclosures.forEach(el=>{sections$g[this.id].push(new HoverDisclosure(el))})},onBlockSelect(evt){sections$g[this.id].forEach(el=>{typeof el.onBlockSelect=="function"&&el.onBlockSelect(evt)})},onBlockDeselect(evt){sections$g[this.id].forEach(el=>{typeof el.onBlockDeselect=="function"&&el.onBlockDeselect(evt)})}},selectors$z={count:"data-cart-count"};class Totals{constructor(el){this.section=el,this.counts=this.section.querySelectorAll(`[${selectors$z.count}]`),this.cartCount=null,this.listen()}listen(){document.addEventListener("theme:cart:change",event=>{this.cartCount=event.detail.cartCount,this.update()})}update(){this.cartCount!==null&&this.counts.forEach(count=>{count.setAttribute(selectors$z.count,this.cartCount),count.innerHTML=this.cartCount<10?`${this.cartCount}`:"9+"})}}const headerTotals={onLoad(){new Totals(this.container)}},selectors$y={slideruleOpen:"data-sliderule-open",slideruleClose:"data-sliderule-close",sliderulePane:"data-sliderule-pane",slideruleWrappper:"[data-sliderule]",drawerContent:"[data-drawer-content]",focusable:'button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])',dataAnimates:"data-animates",children:`:scope > [data-animates], :scope > * > [data-animates], :scope > * > * >[data-animates], :scope > * > .sliderule-grid > *`},classes$p={isVisible:"is-visible",isHiding:"is-hiding",isHidden:"is-hidden",focused:"is-focused",scrolling:"is-scrolling"};let sections$f={};class HeaderMobileSliderule{constructor(el){this.sliderule=el,this.key=this.sliderule.id;const btnSelector=`[${selectors$y.slideruleOpen}='${this.key}']`;this.exitSelector=`[${selectors$y.slideruleClose}='${this.key}']`,this.trigger=document.querySelector(btnSelector),this.exit=document.querySelectorAll(this.exitSelector),this.pane=document.querySelector(`[${selectors$y.sliderulePane}]`),this.children=this.sliderule.querySelectorAll(selectors$y.children),this.drawerContent=document.querySelector(selectors$y.drawerContent),this.cachedButton=null,this.accessibility=a11y,this.trigger.setAttribute("aria-haspopup",!0),this.trigger.setAttribute("aria-expanded",!1),this.trigger.setAttribute("aria-controls",this.key),this.closeSliderule=this.closeSliderule.bind(this),this.clickEvents(),this.keyboardEvents(),document.addEventListener("theme:sliderule:close",this.closeSliderule)}clickEvents(){this.trigger.addEventListener("click",()=>{this.cachedButton=this.trigger,this.showSliderule()}),this.exit.forEach(element=>{element.addEventListener("click",()=>{this.hideSliderule()})})}keyboardEvents(){this.sliderule.addEventListener("keyup",evt=>{evt.stopPropagation(),evt.code==="Escape"&&this.hideSliderule()})}trapFocusSliderule(showSliderule=!0){const trapFocusButton=showSliderule?this.sliderule.querySelector(this.exitSelector):this.cachedButton;this.accessibility.removeTrapFocus(),trapFocusButton&&this.drawerContent&&this.accessibility.trapFocus(this.drawerContent,{elementToFocus:document.body.classList.contains(classes$p.focused)?trapFocusButton:null})}hideSliderule(close=!1){const newPosition=parseInt(this.pane.dataset.sliderulePane,10)-1;this.pane.setAttribute(selectors$y.sliderulePane,newPosition),this.pane.classList.add(classes$p.isHiding),this.sliderule.classList.add(classes$p.isHiding);const hiddenSelector=close?`[${selectors$y.dataAnimates}].${classes$p.isHidden}`:`[${selectors$y.dataAnimates}="${newPosition}"]`,hiddenItems=this.pane.querySelectorAll(hiddenSelector);hiddenItems.length&&hiddenItems.forEach(element=>{element.classList.remove(classes$p.isHidden)});const children=close?this.pane.querySelectorAll(`.${classes$p.isVisible}, .${classes$p.isHiding}`):this.children;children.forEach((element,index)=>{const lastElement=children.length-1==index;element.classList.remove(classes$p.isVisible),close&&(element.classList.remove(classes$p.isHiding),this.pane.classList.remove(classes$p.isHiding));const removeHidingClass=()=>{parseInt(this.pane.getAttribute(selectors$y.sliderulePane))===newPosition&&this.sliderule.classList.remove(classes$p.isVisible),this.sliderule.classList.remove(classes$p.isHiding),this.pane.classList.remove(classes$p.isHiding),lastElement&&(this.accessibility.removeTrapFocus(),close||this.trapFocusSliderule(!1)),element.removeEventListener("animationend",removeHidingClass)};window.theme.settings.enableAnimations?element.addEventListener("animationend",removeHidingClass):removeHidingClass()})}showSliderule(){let lastScrollableFrame=null;const parent=this.sliderule.closest(`.${classes$p.isVisible}`);let lastScrollableElement=this.pane;parent&&(lastScrollableElement=parent),lastScrollableElement.scrollTo({top:0,left:0,behavior:"smooth"}),lastScrollableElement.classList.add(classes$p.scrolling);const lastScrollableIsScrolling=()=>{lastScrollableElement.scrollTop<=0?(lastScrollableElement.classList.remove(classes$p.scrolling),lastScrollableFrame&&cancelAnimationFrame(lastScrollableFrame)):lastScrollableFrame=requestAnimationFrame(lastScrollableIsScrolling)};lastScrollableFrame=requestAnimationFrame(lastScrollableIsScrolling),this.sliderule.classList.add(classes$p.isVisible);const oldPosition=parseInt(this.pane.dataset.sliderulePane,10),newPosition=oldPosition+1;this.pane.setAttribute(selectors$y.sliderulePane,newPosition);const hiddenItems=this.pane.querySelectorAll(`[${selectors$y.dataAnimates}="${oldPosition}"]`);hiddenItems.length&&hiddenItems.forEach((element,index)=>{const lastElement=hiddenItems.length-1==index;element.classList.add(classes$p.isHiding);const removeHidingClass=()=>{element.classList.remove(classes$p.isHiding),parseInt(this.pane.getAttribute(selectors$y.sliderulePane))!==oldPosition&&element.classList.add(classes$p.isHidden),lastElement&&this.trapFocusSliderule(),element.removeEventListener("animationend",removeHidingClass)};window.theme.settings.enableAnimations?element.addEventListener("animationend",removeHidingClass):removeHidingClass()})}closeSliderule(){this.pane&&this.pane.hasAttribute(selectors$y.sliderulePane)&&parseInt(this.pane.getAttribute(selectors$y.sliderulePane))>0&&(this.hideSliderule(!0),parseInt(this.pane.getAttribute(selectors$y.sliderulePane))>0&&this.pane.setAttribute(selectors$y.sliderulePane,0))}onUnload(){document.removeEventListener("theme:sliderule:close",this.closeSliderule)}}const headerMobileSliderule={onLoad(){sections$f[this.id]=[],this.container.querySelectorAll(selectors$y.slideruleWrappper).forEach(el=>{sections$f[this.id].push(new HeaderMobileSliderule(el))})},onUnload(){sections$f[this.id].forEach(el=>{typeof el.onUnload=="function"&&el.onUnload()})}},selectors$x={wrapper:"[data-header-wrapper]",style:"data-header-style",widthContentWrapper:"[data-takes-space-wrapper]",widthContent:"[data-child-takes-space]",desktop:"[data-header-desktop]",deadLink:'.navlink[href="#"]',cartToggleButton:"[data-cart-toggle]",firstSectionOverlayHeader:".main-content > .shopify-section.section-overlay-header:first-of-type"},classes$o={clone:"js__header__clone",firstSectionOverlayHeader:"has-first-section-overlay-header",showMobileClass:"js__show__mobile",transparent:"has-header-transparent"},attributes$l={transparent:"data-header-transparent"};let sections$e={};class Header{constructor(el){this.wrapper=el,this.style=this.wrapper.dataset.style,this.desktop=this.wrapper.querySelector(selectors$x.desktop),this.deadLinks=document.querySelectorAll(selectors$x.deadLink),this.resizeObserver=null,this.checkWidth=this.checkWidth.bind(this),this.killDeadLinks(),this.style!=="drawer"&&this.desktop&&(this.minWidth=this.getMinWidth(),this.listenWidth()),this.cartToggleEvent();const firstSectionOverlayHeader=document.querySelector(selectors$x.firstSectionOverlayHeader);document.body.classList.toggle(classes$o.transparent,this.wrapper.hasAttribute(attributes$l.transparent)),document.body.classList.toggle(classes$o.firstSectionOverlayHeader,firstSectionOverlayHeader)}initTicker(stopClone=!1){this.tickerFrames.forEach(frame=>{new Ticker(frame,stopClone)}),this.tickerResizeEvent=event=>this.onTickerResize(event),document.addEventListener("theme:resize:width",this.tickerResizeEvent)}listenWidth(){"ResizeObserver"in window?(this.resizeObserver=new ResizeObserver(this.checkWidth),this.resizeObserver.observe(this.wrapper)):document.addEventListener("theme:resize",this.checkWidth)}killDeadLinks(){this.deadLinks.forEach(el=>{el.onclick=e=>{e.preventDefault()}})}checkWidth(){if(document.body.clientWidth{const wideElements=context.querySelectorAll(selectors$x.widthContent);let thisWidth=0;wideElements.length===3?thisWidth=_sumSplitWidths(wideElements):thisWidth=_sumWidths(wideElements),thisWidth>minWidth&&(minWidth=thisWidth,spaced=wideElements.length*20)}),document.body.removeChild(comparitor),minWidth+spaced}cartToggleEvent(){const cartToggleButtons=this.wrapper.querySelectorAll(selectors$x.cartToggleButton);cartToggleButtons.length&&cartToggleButtons.forEach(button=>{button.addEventListener("click",e=>{e.preventDefault(),document.dispatchEvent(new CustomEvent("theme:cart:toggle",{bubbles:!0}))})})}unload(){"ResizeObserver"in window?this.resizeObserver?.unobserve(this.wrapper):document.removeEventListener("theme:resize",this.checkWidth)}}function _sumSplitWidths(nodes){let arr=[];return nodes.forEach(el=>{el.firstElementChild&&arr.push(el.firstElementChild.clientWidth)}),arr[0]>arr[2]?arr[2]=arr[0]:arr[0]=arr[2],arr.reduce((a,b)=>a+b)}function _sumWidths(nodes){let width=0;return nodes.forEach(el=>{width+=el.clientWidth}),width}register("header",[{onLoad(){sections$e=new Header(this.container)},onUnload(){typeof sections$e.unload=="function"&§ions$e.unload()}},drawer,headerMobileSliderule,stickyHeader,hoverDisclosure,headerTotals]),customElements.get("ticker-bar")||customElements.define("ticker-bar",Ticker);const selectors$w={scrollElement:"[data-block-scroll]",flickityEnabled:"flickity-enabled"},sections$d={};class BlockScroll{constructor(el){this.container=el.container}onBlockSelect(evt){const scrollElement=this.container.querySelector(selectors$w.scrollElement);if(scrollElement&&!scrollElement.classList.contains(selectors$w.flickityEnabled)){const currentElement=evt.srcElement;currentElement&&scrollElement.scrollTo({top:0,left:currentElement.offsetLeft,behavior:"smooth"})}}}const blockScroll={onLoad(){sections$d[this.id]=new BlockScroll(this)},onBlockSelect(e){sections$d[this.id].onBlockSelect(e)}},selectors$v={slider:"[data-slider-mobile]",slide:"[data-slide]",thumb:"[data-slider-thumb]",sliderContainer:"[data-slider-container]",popupContainer:"[data-popup-container]",popupClose:"[data-popup-close]"},classes$n={isAnimating:"is-animating",isSelected:"is-selected",isOpen:"is-open"},attributes$k={thumbValue:"data-slider-thumb"},sections$c={};class Look{constructor(section){this.container=section.container,this.slider=this.container.querySelector(selectors$v.slider),this.slides=this.container.querySelectorAll(selectors$v.slide),this.thumbs=this.container.querySelectorAll(selectors$v.thumb),this.popupContainer=this.container.querySelector(selectors$v.popupContainer),this.popupClose=this.container.querySelectorAll(selectors$v.popupClose),this.popupCloseByEvent=this.popupCloseByEvent.bind(this),this.init()}init(){this.slider&&this.slides.length&&this.thumbs.length&&(this.popupContainer.addEventListener("transitionend",e=>{e.target==this.popupContainer&&(this.popupContainer.classList.remove(classes$n.isAnimating),e.target.classList.contains(classes$n.isOpen)?this.popupOpenCallback():this.popupCloseCallback())}),this.popupContainer.addEventListener("transitionstart",e=>{e.target==this.popupContainer&&this.popupContainer.classList.add(classes$n.isAnimating)}),this.popupClose.forEach(button=>{button.addEventListener("click",()=>{this.popupContainer.classList.remove(classes$n.isOpen),document.dispatchEvent(new CustomEvent("theme:scroll:unlock",{bubbles:!0}))})}),this.thumbs.forEach((thumb,i)=>{thumb.addEventListener("click",e=>{e.preventDefault();const idx=thumb.hasAttribute(attributes$k.thumbValue)&&thumb.getAttribute(attributes$k.thumbValue)!==""?parseInt(thumb.getAttribute(attributes$k.thumbValue)):i,slide=this.slides[idx];if(isMobile()){const parentPadding=parseInt(window.getComputedStyle(this.slider).paddingLeft);this.slider.scrollTo({top:0,left:slide.offsetLeft-parentPadding,behavior:"auto"}),document.dispatchEvent(new CustomEvent("theme:scroll:lock",{bubbles:!0})),this.popupContainer.classList.add(classes$n.isAnimating,classes$n.isOpen)}else{let{stickyHeaderHeight}=readHeights();const slideTop=slide.getBoundingClientRect().top,slideHeightHalf=slide.offsetHeight/2,windowHeight=window.innerHeight,windowHeightHalf=windowHeight/2,sliderContainer=this.container.querySelector(selectors$v.sliderContainer);let scrollTarget=slideTop+slideHeightHalf-windowHeightHalf+window.scrollY;if(sliderContainer){const sliderContainerTop=sliderContainer.getBoundingClientRect().top+window.scrollY,sliderContainerHeight=sliderContainer.offsetHeight,sliderContainerBottom=sliderContainerTop+sliderContainerHeight;scrollTargetsliderContainerBottom&&(scrollTarget=sliderContainerBottom-windowHeight)}window.scrollTo({top:scrollTarget,left:0,behavior:"smooth"})}})}))}popupCloseByEvent(){this.popupContainer.classList.remove(classes$n.isOpen)}popupOpenCallback(){document.addEventListener("theme:quick-add:open",this.popupCloseByEvent,{once:!0}),document.addEventListener("theme:product:added",this.popupCloseByEvent,{once:!0})}popupCloseCallback(){document.removeEventListener("theme:quick-add:open",this.popupCloseByEvent,{once:!0}),document.removeEventListener("theme:product:added",this.popupCloseByEvent,{once:!0})}}register("look",[{onLoad(){sections$c[this.id]=new Look(this)}},blockScroll]);function Listeners(){this.entries=[]}Listeners.prototype.add=function(element,event,fn){this.entries.push({element,event,fn}),element.addEventListener(event,fn)},Listeners.prototype.removeAll=function(){this.entries=this.entries.filter(function(listener){return listener.element.removeEventListener(listener.event,listener.fn),!1})};function getVariantFromSerializedArray(product,collection){_validateProductStructure(product);var optionArray=_createOptionArrayFromOptionCollection(product,collection);return getVariantFromOptionArray(product,optionArray)}function getVariantFromOptionArray(product,options){_validateProductStructure(product),_validateOptionsArray(options);var result=product.variants.filter(function(variant){return options.every(function(option,index){return variant.options[index]===option})});return result[0]||null}function _createOptionArrayFromOptionCollection(product,collection){_validateProductStructure(product),_validateSerializedArray(collection);var optionArray=[];return collection.forEach(function(option){for(var i=0;i"u"?Function.prototype.bind():function(event){event.dataset=this.getFormState(),this._setIdInputValue(event.dataset.variant),cb(event)}.bind(this)}_initInputs(selector,cb){var elements=Array.prototype.slice.call(this.element.querySelectorAll(selector));return elements.map(function(element){return this._listeners.add(element,"change",this._onFormEvent(cb)),element}.bind(this))}_serializeInputValues(inputs,transform){return inputs.reduce(function(options,input){return(input.checked||input.type!=="radio"&&input.type!=="checkbox")&&options.push(transform({name:input.name,value:input.value})),options},[])}_validateProductObject(product){if(typeof product!="object")throw new TypeError(product+" is not an object.");if(typeof product.variants[0].options>"u")throw new TypeError("Product object is invalid. Make sure you use the product object that is output from {{ product | json }} or from the http://[your-product-url].js route");return product}}function fetchProduct(handle){const requestRoute=`${window.theme.routes.root}products/${handle}.js`;return window.fetch(requestRoute).then(response=>response.json()).catch(e=>{console.error(e)})}const selectors$t={scrollbarAttribute:"data-scrollbar",scrollbar:"data-scrollbar-slider",scrollbarSlideFullWidth:"data-scrollbar-slide-fullwidth",scrollbarArrowPrev:"[data-scrollbar-arrow-prev]",scrollbarArrowNext:"[data-scrollbar-arrow-next]"},classes$m={hidden:"is-hidden"},settings$1={delay:200};class NativeScrollbar{constructor(scrollbar){this.scrollbar=scrollbar,this.arrowNext=this.scrollbar.parentNode.querySelector(selectors$t.scrollbarArrowNext),this.arrowPrev=this.scrollbar.parentNode.querySelector(selectors$t.scrollbarArrowPrev),this.scrollbar.hasAttribute(selectors$t.scrollbarAttribute)&&(this.init(),this.listen()),this.scrollbar.hasAttribute(selectors$t.scrollbar)&&this.scrollToVisibleElement()}init(){this.arrowNext&&this.arrowPrev&&(this.toggleNextArrow(),this.events())}listen(){document.addEventListener("theme:modal:open",()=>{this.toggleNextArrow()}),document.addEventListener("theme:resize",()=>{this.toggleNextArrow()})}events(){this.arrowNext.addEventListener("click",event=>{event.preventDefault(),this.goToNext()}),this.arrowPrev.addEventListener("click",event=>{event.preventDefault(),this.goToPrev()}),this.scrollbar.addEventListener("scroll",()=>{this.togglePrevArrow(),this.toggleNextArrow()})}goToNext(){const position=(this.scrollbar.hasAttribute(selectors$t.scrollbarSlideFullWidth)?this.scrollbar.getBoundingClientRect().width:this.scrollbar.getBoundingClientRect().width/2)+this.scrollbar.scrollLeft;this.move(position),this.arrowPrev.classList.remove(classes$m.hidden),this.toggleNextArrow()}goToPrev(){const moveWith=this.scrollbar.hasAttribute(selectors$t.scrollbarSlideFullWidth)?this.scrollbar.getBoundingClientRect().width:this.scrollbar.getBoundingClientRect().width/2,position=this.scrollbar.scrollLeft-moveWith;this.move(position),this.arrowNext.classList.remove(classes$m.hidden),this.togglePrevArrow()}toggleNextArrow(){setTimeout(()=>{this.arrowNext.classList.toggle(classes$m.hidden,Math.round(this.scrollbar.scrollLeft+this.scrollbar.getBoundingClientRect().width+1)>=this.scrollbar.scrollWidth)},settings$1.delay)}togglePrevArrow(){setTimeout(()=>{this.arrowPrev.classList.toggle(classes$m.hidden,this.scrollbar.scrollLeft<=0)},settings$1.delay)}scrollToVisibleElement(){[].forEach.call(this.scrollbar.children,element=>{element.addEventListener("click",event=>{event.preventDefault(),this.move(element.offsetLeft-element.clientWidth)})})}move(offsetLeft){this.scrollbar.scrollTo({top:0,left:offsetLeft,behavior:"smooth"})}}const selectors$s={gridSwatchForm:"[data-grid-swatch-form]",input:"[data-swatch-input]",productItem:"[data-grid-item]",productInfo:"[data-product-information]",sectionId:"[data-section-id]",productImage:"[data-product-image]",swatchButton:"[data-swatch-button]",swatchLink:"[data-swatch-link]",swatchText:"[data-swatch-text]",template:"[data-swatch-template]"},classes$l={visible:"is-visible",hidden:"hidden",stopEvents:"no-events",swatch:"swatch"},attributes$j={image:"data-swatch-image",handle:"data-swatch-handle",label:"data-swatch-label",scrollbar:"data-scrollbar",swatchCount:"data-swatch-count",tooltip:"data-tooltip",variant:"data-swatch-variant",variantName:"data-swatch-variant-name",variantTitle:"data-variant-title",swatchValues:"data-swatch-values"};class RadioSwatch extends HTMLElement{constructor(){super()}connectedCallback(){this.hasAttribute(attributes$j.tooltip)&&new Tooltip(this)}}class GridSwatch extends HTMLElement{constructor(){super(),this.productItemMouseLeaveEvent=()=>this.hideVariantImages(),this.showVariantImageEvent=swatchButton=>this.showVariantImage(swatchButton)}connectedCallback(){this.handle=this.getAttribute(attributes$j.handle),this.productItem=this.closest(selectors$s.productItem),this.productInfo=this.closest(selectors$s.productInfo),this.productImage=this.productItem.querySelector(selectors$s.productImage),this.template=document.querySelector(selectors$s.template).innerHTML,this.swatchesJSON=this.getSwatchesJSON();const label=this.getAttribute(attributes$j.label).trim().toLowerCase();fetchProduct(this.handle).then(product=>{this.product=product,this.colorOption=product.options.find(function(element){return element.name.toLowerCase()===label||null}),this.colorOption&&(this.swatches=this.colorOption.values,this.init())})}init(){this.innerHTML="",this.count=0,this.swatches.forEach(swatch=>{let variant=null,variantAvailable=!1,image="";for(const productVariant of this.product.variants){const optionWithSwatch=productVariant.options.includes(swatch);if(!variant&&optionWithSwatch&&(variant=productVariant),optionWithSwatch&&productVariant.featured_media){image=productVariant.featured_media.preview_image.src,variant=productVariant;break}}for(const productVariant of this.product.variants)if(productVariant.options.includes(swatch)&&productVariant.available){variantAvailable=!0;break}if(variant){const swatchTemplate=document.createElement("div");swatchTemplate.innerHTML=this.template;const swatchButton=swatchTemplate.querySelector(selectors$s.swatchButton),swatchLink=swatchTemplate.querySelector(selectors$s.swatchLink),swatchText=swatchTemplate.querySelector(selectors$s.swatchText),swatchHandle=this.swatchesJSON[swatch],variantTitle=variant.title.replaceAll('"',"'");swatchButton.style=`--animation-delay: ${100*this.count/1e3}s`,swatchButton.classList.add(`${classes$l.swatch}-${swatchHandle}`),swatchButton.dataset.tooltip=swatch,swatchButton.dataset.swatchVariant=variant.id,swatchButton.dataset.swatchVariantName=variantTitle,swatchButton.dataset.swatchImage=image,swatchButton.dataset.variant=variant.id,swatchButton.style.setProperty("--swatch",`var(--${swatchHandle})`),swatchLink.href=getUrlWithVariant(this.product.url,variant.id),swatchLink.dataset.swatch=swatch,swatchLink.disabled=!variantAvailable,swatchText.innerText=swatch,this.innerHTML+=swatchTemplate.innerHTML,this.count++}}),this.swatchCount=this.productInfo.querySelector(`[${attributes$j.swatchCount}]`),this.swatchElements=this.querySelectorAll(selectors$s.swatchLink),this.swatchForm=this.productInfo.querySelector(selectors$s.gridSwatchForm),this.hideSwatchesTimer=0,this.swatchCount.hasAttribute(attributes$j.swatchCount)&&(this.swatchCount.innerText=`${this.count} ${this.count>1?theme.strings.otherColor:theme.strings.oneColor}`,this.swatchCount.addEventListener("mouseenter",()=>{this.hideSwatchesTimer&&clearTimeout(this.hideSwatchesTimer),this.productInfo.classList.add(classes$l.stopEvents),this.swatchForm.classList.add(classes$l.visible)}),this.productInfo.addEventListener("mouseleave",()=>{this.hideSwatchesTimer=setTimeout(()=>{this.productInfo.classList.remove(classes$l.stopEvents),this.swatchForm.classList.remove(classes$l.visible)},100)})),this.hasAttribute(attributes$j.scrollbar)&&new NativeScrollbar(this),this.showDeferredImage(),this.bindSwatchButtonEvents()}showDeferredImage(){const deferredImages=this.productItem.querySelectorAll(`[${attributes$j.variantTitle}]`);deferredImages.length&&this.productItem.addEventListener("mouseenter",()=>{deferredImages.forEach(image=>{image.classList.remove(classes$l.hidden)})},{once:!0})}bindSwatchButtonEvents(){this.querySelectorAll(selectors$s.swatchButton)?.forEach(swatchButton=>{swatchButton.addEventListener("mouseenter",this.showVariantImageEvent),swatchButton.hasAttribute(attributes$j.tooltip)&&new Tooltip(swatchButton)}),this.productItem.addEventListener("mouseleave",this.productItemMouseLeaveEvent)}showVariantImage(event){const variantName=event.target.getAttribute(attributes$j.variantName)?.replaceAll('"',"'"),variantImages=this.productImage.querySelectorAll(`[${attributes$j.variantTitle}]`),variantImageSelected=this.productImage.querySelector(`[${attributes$j.variantTitle}="${variantName}"]`);variantImages?.forEach(image=>{image.classList.remove(classes$l.visible)}),variantImageSelected?.classList.add(classes$l.visible)}hideVariantImages(){this.productImage.querySelectorAll(`[${attributes$j.variantTitle}].${classes$l.visible}`)?.forEach(image=>{image.classList.remove(classes$l.visible)})}getSwatchesJSON(){if(!this.hasAttribute(attributes$j.swatchValues))return{};const pairs=this.getAttribute(attributes$j.swatchValues).split(","),jsonObject={};return pairs?.forEach(pair=>{const[key,value]=pair.split(":");jsonObject[key.trim()]=value.trim()}),jsonObject}}const selectors$r={productCutline:"[data-product-cutline]",productLink:"[data-product-link]",productGridItem:"[data-grid-item]",productInfo:"[data-product-information]",productImage:"[data-product-image-default]",productImageSibling:"[data-product-image-sibling]",productPrice:"[data-product-price]",siblingsInnerHolder:"[data-sibling-inner]",siblingCount:"[data-sibling-count]",siblingFieldset:"[data-sibling-fieldset]",siblingLink:"[data-sibling-link]",tooltip:"[data-tooltip]"},classes$k={visible:"is-visible",fade:"is-fade",stopEvents:"no-events",active:"is-active"},attributes$i={siblingAddedImage:"data-sibling-added-image",siblingCutline:"data-sibling-cutline",siblingImage:"data-sibling-image",siblingLink:"data-sibling-link",siblingPrice:"data-sibling-price",productLink:"data-product-link"};class SiblingSwatches{constructor(swatches,product){this.swatches=swatches,this.product=product,this.productLinks=this.product.querySelectorAll(selectors$r.productLink),this.productCutline=this.product.querySelector(selectors$r.productCutline),this.productPrice=this.product.querySelector(selectors$r.productPrice),this.productImage=this.product.querySelector(selectors$r.productImage),this.productImageSibling=this.product.querySelector(selectors$r.productImageSibling),this.init()}init(){this.cacheDefaultValues(),this.product.addEventListener("mouseleave",()=>this.resetProductValues()),this.swatches.forEach(swatch=>{swatch.addEventListener("mouseenter",event=>this.showSibling(event))}),this.productLinks.length&&this.swatches.forEach(swatch=>{swatch.addEventListener("click",()=>{this.productLinks[0].click()})})}cacheDefaultValues(){this.productLinkValue=this.productLinks[0].hasAttribute(attributes$i.productLink)?this.productLinks[0].getAttribute(attributes$i.productLink):"",this.productPriceValue=this.productPrice.innerHTML,this.productCutline&&(this.productCutlineValue=this.productCutline.innerHTML)}resetProductValues(){this.product.classList.remove(classes$k.active),this.productLinkValue&&this.productLinks.forEach(productLink=>{productLink.href=this.productLinkValue}),this.productPrice&&(this.productPrice.innerHTML=this.productPriceValue),this.productCutline&&this.productCutline&&(this.productCutline.innerHTML=this.productCutlineValue,this.productCutline.title=this.productCutlineValue),this.hideSiblingImage()}showSibling(event){const swatch=event.target,siblingLink=swatch.hasAttribute(attributes$i.siblingLink)?swatch.getAttribute(attributes$i.siblingLink):"",siblingPrice=swatch.hasAttribute(attributes$i.siblingPrice)?swatch.getAttribute(attributes$i.siblingPrice):"",siblingCutline=swatch.hasAttribute(attributes$i.siblingCutline)?swatch.getAttribute(attributes$i.siblingCutline):"",siblingImage=swatch.hasAttribute(attributes$i.siblingImage)?swatch.getAttribute(attributes$i.siblingImage):"";siblingLink&&this.productLinks.forEach(productLink=>{productLink.href=siblingLink}),siblingPrice&&(this.productPrice.innerHTML=siblingPrice),siblingCutline?(this.productCutline.innerHTML=siblingCutline,this.productCutline.title=siblingCutline):(this.productCutline.innerHTML="",this.productCutline.title=""),siblingImage&&this.showSiblingImage(siblingImage)}showSiblingImage(siblingImage){if(!this.productImageSibling)return;const ratio=window.devicePixelRatio||1,pixels=this.productImage.offsetWidth*ratio,widthRounded=Math.ceil(pixels/180)*180,imageSrc=themeImages.getSizedImageUrl(siblingImage,`${widthRounded}x`),imageExists=this.productImageSibling.querySelector(`[src="${imageSrc}"]`),showCurrentImage=()=>{this.productImageSibling.classList.add(classes$k.visible),this.productImageSibling.querySelector(`[src="${imageSrc}"]`).classList.add(classes$k.fade)},swapImages=()=>{this.productImageSibling.querySelectorAll("img").forEach(image=>{image.classList.remove(classes$k.fade)}),requestAnimationFrame(showCurrentImage)};if(imageExists)swapImages();else{const imageTag=document.createElement("img");imageTag.src=imageSrc,this.productCutline&&(imageTag.alt=this.productCutline.innerText),imageTag.addEventListener("load",()=>{this.productImageSibling.append(imageTag),swapImages()})}}hideSiblingImage(){this.productImageSibling&&(this.productImageSibling.classList.remove(classes$k.visible),this.productImageSibling.querySelectorAll("img").forEach(image=>{image.classList.remove(classes$k.fade)}))}}class ProductSiblings extends HTMLElement{constructor(){super()}connectedCallback(){this.product=this.closest(selectors$r.productGridItem),this.siblingScrollbar=this.querySelector(selectors$r.siblingsInnerHolder),this.siblingCount=this.querySelector(selectors$r.siblingCount),this.siblingFieldset=this.querySelector(selectors$r.siblingFieldset),this.siblingLinks=this.querySelectorAll(selectors$r.siblingLink),this.productInfo=this.closest(selectors$r.productInfo),this.productLink=this.closest(selectors$r.link),this.hideSwatchesTimer=0,this.initScrollbar(),this.siblingCount&&this.siblingFieldset&&this.productInfo&&(this.siblingCount.addEventListener("mouseenter",()=>this.showSiblings()),this.productInfo.addEventListener("mouseleave",()=>this.hideSiblings())),this.siblingLinks.length&&new SiblingSwatches(this.siblingLinks,this.product),this.querySelectorAll(selectors$r.tooltip).forEach(tooltip=>{new Tooltip(tooltip)})}showSiblings(){this.hideSwatchesTimer&&clearTimeout(this.hideSwatchesTimer),this.productLink&&this.productLink.classList.add(classes$k.stopEvents),this.siblingFieldset.classList.add(classes$k.visible)}hideSiblings(){this.hideSwatchesTimer=setTimeout(()=>{this.productLink&&this.productLink.classList.remove(classes$k.stopEvents),this.siblingFieldset.classList.remove(classes$k.visible)},100)}initScrollbar(){this.siblingScrollbar&&new NativeScrollbar(this.siblingScrollbar)}}const selectors$q={body:"body",dataRelatedSectionElem:"[data-related-section]",dataTabsHolder:"[data-tabs-holder]",dataTab:"data-tab",dataTabIndex:"data-tab-index",dataAos:"[data-aos]",blockId:"data-block-id",tabsLi:"[data-tab]",tabLink:".tab-link",tabLinkRecent:".tab-link__recent",tabContent:".tab-content",scrollbarHolder:"[data-scrollbar]"},classes$j={current:"current",hidden:"hidden",aosAnimate:"aos-animate",aosNoTransition:"aos-no-transition",focused:"is-focused"},sections$b={};class GlobalTabs{constructor(holder){this.container=holder,this.body=document.querySelector(selectors$q.body),this.accessibility=window.accessibility,this.container&&(this.scrollbarHolder=this.container.querySelectorAll(selectors$q.scrollbarHolder),this.init(),this.initNativeScrollbar())}init(){const tabsNavList=this.container.querySelectorAll(selectors$q.tabsLi);this.container.addEventListener("theme:tab:check",()=>this.checkRecentTab()),this.container.addEventListener("theme:tab:hide",()=>this.hideRelatedTab()),tabsNavList.length&&tabsNavList.forEach(element=>{const tabId=parseInt(element.getAttribute(selectors$q.dataTab)),tab=this.container.querySelector(`${selectors$q.tabContent}-${tabId}`);element.addEventListener("click",()=>{this.tabChange(element,tab)}),element.addEventListener("keyup",event=>{(event.code==="Space"||event.code==="Enter")&&this.body.classList.contains(classes$j.focused)&&this.tabChange(element,tab)})})}tabChange(element,tab){if(element.classList.contains(classes$j.current))return;const currentTab=this.container.querySelector(`${selectors$q.tabsLi}.${classes$j.current}`),currentTabContent=this.container.querySelector(`${selectors$q.tabContent}.${classes$j.current}`);currentTab?.classList.remove(classes$j.current),currentTabContent?.classList.remove(classes$j.current),element.classList.add(classes$j.current),tab.classList.add(classes$j.current),element.classList.contains(classes$j.hidden)&&tab.classList.add(classes$j.hidden),this.accessibility.a11y.removeTrapFocus(),this.container.dispatchEvent(new CustomEvent("theme:tab:change",{bubbles:!0})),element.dispatchEvent(new CustomEvent("theme:form:sticky",{bubbles:!0,detail:{element:"tab"}})),this.animateItems(tab)}animateItems(tab,animated=!0){const animatedItems=tab.querySelectorAll(selectors$q.dataAos);animatedItems.length&&animatedItems.forEach(animatedItem=>{animatedItem.classList.remove(classes$j.aosAnimate),animated&&(animatedItem.classList.add(classes$j.aosNoTransition),requestAnimationFrame(()=>{animatedItem.classList.remove(classes$j.aosNoTransition),animatedItem.classList.add(classes$j.aosAnimate)}))})}initNativeScrollbar(){this.scrollbarHolder.length&&this.scrollbarHolder.forEach(scrollbar=>{new NativeScrollbar(scrollbar)})}checkRecentTab(){const tabLink=this.container.querySelector(selectors$q.tabLinkRecent);if(tabLink){tabLink.classList.remove(classes$j.hidden);const tabLinkIdx=parseInt(tabLink.getAttribute(selectors$q.dataTab)),tabContent=this.container.querySelector(`${selectors$q.tabContent}[${selectors$q.dataTabIndex}="${tabLinkIdx}"]`);tabContent&&(tabContent.classList.remove(classes$j.hidden),this.animateItems(tabContent,!1)),this.initNativeScrollbar()}}hideRelatedTab(){const relatedSection2=this.container.querySelector(selectors$q.dataRelatedSectionElem);if(!relatedSection2)return;const parentTabContent=relatedSection2.closest(`${selectors$q.tabContent}.${classes$j.current}`);if(!parentTabContent)return;const parentTabContentIdx=parseInt(parentTabContent.getAttribute(selectors$q.dataTabIndex)),tabsNavList=this.container.querySelectorAll(selectors$q.tabsLi);if(tabsNavList.length>parentTabContentIdx){const nextTabsNavLink=tabsNavList[parentTabContentIdx].nextSibling;nextTabsNavLink&&(tabsNavList[parentTabContentIdx].classList.add(classes$j.hidden),nextTabsNavLink.dispatchEvent(new Event("click")),this.initNativeScrollbar())}}onBlockSelect(evt){const element=this.container.querySelector(`${selectors$q.tabLink}[${selectors$q.blockId}="${evt.detail.blockId}"]`);element&&(element.dispatchEvent(new Event("click")),element.parentNode.scrollTo({top:0,left:element.offsetLeft-element.clientWidth,behavior:"smooth"}))}}const tabs={onLoad(){sections$b[this.id]=[],this.container.querySelectorAll(selectors$q.dataTabsHolder).forEach(holder=>{sections$b[this.id].push(new GlobalTabs(holder))})},onBlockSelect(e){sections$b[this.id].forEach(el=>{typeof el.onBlockSelect=="function"&&el.onBlockSelect(e)})}};function hasOpenModals(){const openModals=!!document.querySelectorAll("dialog[open][data-scroll-lock-required]").length,openDrawers=!!document.querySelectorAll(".drawer.is-open").length;return openModals||openDrawers}const classes$i={added:"is-added",animated:"is-animated",disabled:"is-disabled",error:"has-error",loading:"is-loading",open:"is-open",overlayText:"product-item--overlay-text",visible:"is-visible",siblingLinkCurrent:"sibling__link--current"},settings={errorDelay:3e3},selectors$p={animation:"[data-animation]",apiContent:"[data-api-content]",buttonQuickAdd:"[data-quick-add-btn]",buttonAddToCart:"[data-add-to-cart]",cartDrawer:"[data-cart-drawer]",cartLineItems:"[data-line-items]",dialog:"dialog",focusable:'button, [href], select, textarea, [tabindex]:not([tabindex="-1"])',messageError:"[data-message-error]",modalButton:"[data-quick-add-modal-handle]",modalContainer:"[data-product-upsell-container]",modalContent:"[data-product-upsell-ajax]",modalClose:"[data-quick-add-modal-close]",productGridItem:"data-grid-item",productInformationHolder:"[data-product-information]",quickAddHolder:"[data-quick-add-holder]",quickAddModal:"[data-quick-add-modal]",quickAddModalTemplate:"[data-quick-add-modal-template]"},attributes$h={closing:"closing",productId:"data-product-id",modalHandle:"data-quick-add-modal-handle",siblingSwapper:"data-sibling-swapper",quickAddHolder:"data-quick-add-holder"};class QuickAddProduct extends HTMLElement{constructor(){super(),this.container=this,this.quickAddHolder=this.container.querySelector(selectors$p.quickAddHolder),this.quickAddHolder&&(this.modal=null,this.currentModal=null,this.productId=this.quickAddHolder.getAttribute(attributes$h.quickAddHolder),this.modalButton=this.quickAddHolder.querySelector(selectors$p.modalButton),this.handle=this.modalButton?.getAttribute(attributes$h.modalHandle),this.cartDrawer=document.querySelector(selectors$p.cartDrawer),this.buttonQuickAdd=this.quickAddHolder.querySelector(selectors$p.buttonQuickAdd),this.buttonATC=this.quickAddHolder.querySelector(selectors$p.buttonAddToCart),this.button=this.modalButton||this.buttonATC,this.modalClose=this.modalClose.bind(this),this.modalCloseOnProductAdded=this.modalCloseOnProductAdded.bind(this),this.a11y=a11y,this.isAnimating=!1,this.modalButtonClickEvent=this.modalButtonClickEvent.bind(this),this.quickAddLoadingToggle=this.quickAddLoadingToggle.bind(this))}connectedCallback(){this.modalButton&&this.modalButton.addEventListener("click",this.modalButtonClickEvent),this.buttonATC&&this.buttonATC.addEventListener("click",e=>{e.preventDefault(),window.accessibility.lastElement=this.buttonATC,document.dispatchEvent(new CustomEvent("theme:cart:add",{detail:{button:this.buttonATC}}))}),this.quickAddHolder&&(this.quickAddHolder.addEventListener("animationend",this.quickAddLoadingToggle),this.errorHandler())}modalButtonClickEvent(e){e.preventDefault();const isSiblingSwapper=this.modalButton.hasAttribute(attributes$h.siblingSwapper),isSiblingLinkCurrent=this.modalButton.classList.contains(classes$i.siblingLinkCurrent);isSiblingLinkCurrent||(this.modalButton.classList.add(classes$i.loading),this.modalButton.disabled=!0,isSiblingSwapper&&!isSiblingLinkCurrent&&(this.currentModal=e.target.closest(selectors$p.quickAddModal),this.currentModal.classList.add(classes$i.loading)),this.renderModal())}modalCreate(response){const cachedModal=document.querySelector(`${selectors$p.quickAddModal}[${attributes$h.productId}="${this.productId}"]`);if(cachedModal)this.modal=cachedModal,this.modalOpen();else{const modalTemplate=this.quickAddHolder.querySelector(selectors$p.quickAddModalTemplate);if(!modalTemplate)return;const htmlObject=document.createElement("div");htmlObject.innerHTML=modalTemplate.innerHTML,document.body.appendChild(htmlObject.querySelector(selectors$p.quickAddModal)),modalTemplate.remove(),this.modal=document.querySelector(`${selectors$p.quickAddModal}[${attributes$h.productId}="${this.productId}"]`),this.modal.querySelector(selectors$p.modalContent).innerHTML=new DOMParser().parseFromString(response,"text/html").querySelector(selectors$p.apiContent).innerHTML,this.modalCreatedCallback()}}modalOpen(){this.currentModal&&this.currentModal.dispatchEvent(new CustomEvent("theme:modal:close",{bubbles:!1})),typeof this.modal.show=="function"&&this.modal.show(),this.modal.setAttribute("open",!0),this.modal.removeAttribute("inert"),this.quickAddHolder.classList.add(classes$i.disabled),this.modalButton&&(this.modalButton.classList.remove(classes$i.loading),this.modalButton.disabled=!1,window.accessibility.lastElement=this.modalButton),requestAnimationFrame(()=>{this.modal.querySelectorAll(selectors$p.animation).forEach(item=>{item.classList.add(classes$i.animated)})}),document.dispatchEvent(new CustomEvent("theme:quick-add:open",{bubbles:!0})),document.dispatchEvent(new CustomEvent("theme:scroll:lock",{bubbles:!0})),document.addEventListener("theme:product:added",this.modalCloseOnProductAdded,{once:!0})}modalClose(){if(!this.isAnimating){if(!this.modal.hasAttribute(attributes$h.closing)){this.modal.setAttribute(attributes$h.closing,""),this.isAnimating=!0;return}typeof this.modal.close=="function"?this.modal.close():this.modal.removeAttribute("open"),this.modal.removeAttribute(attributes$h.closing),this.modal.setAttribute("inert",""),this.modal.classList.remove(classes$i.loading),this.modalButton&&(this.modalButton.disabled=!1),this.quickAddHolder&&this.quickAddHolder.classList.contains(classes$i.disabled)&&this.quickAddHolder.classList.remove(classes$i.disabled),this.resetAnimatedItems(),hasOpenModals()||document.dispatchEvent(new CustomEvent("theme:scroll:unlock",{bubbles:!0})),document.removeEventListener("theme:product:added",this.modalCloseOnProductAdded),this.a11y.removeTrapFocus(),this.a11y.autoFocusLastElement()}}modalEvents(){this.modal.querySelector(selectors$p.modalClose)?.addEventListener("click",e=>{e.preventDefault(),this.modalClose()}),this.modal.addEventListener("click",event=>{event.target.nodeName==="DIALOG"&&event.type==="click"&&this.modalClose()}),this.modal.addEventListener("keydown",event=>{event.code=="Escape"&&(event.preventDefault(),this.modalClose())}),this.modal.addEventListener("theme:modal:close",()=>{this.modalClose()}),this.modal.addEventListener("animationend",event=>{event.target===this.modal&&(this.isAnimating=!1,this.modal.hasAttribute(attributes$h.closing)?this.modalClose():setTimeout(()=>{this.a11y.trapFocus(this.modal),(this.modal.querySelector("[autofocus]")||this.modal.querySelector(selectors$p.focusable))?.focus()},50))})}modalCloseOnProductAdded(){this.resetQuickAddButtons(),this.modal&&this.modal.hasAttribute("open")&&this.modalClose()}quickAddLoadingToggle(e){e.target==this.quickAddHolder&&this.quickAddHolder.classList.remove(classes$i.disabled)}errorHandler(){this.quickAddHolder.addEventListener("theme:cart:error",event=>{const holder=event.detail.holder,parentProduct=holder.closest(`[${selectors$p.productGridItem}]`);if(!parentProduct)return;const errorMessageHolder=holder.querySelector(selectors$p.messageError),hasOverlayText=parentProduct.classList.contains(classes$i.overlayText),productInfo=parentProduct.querySelector(selectors$p.productInformationHolder),button=holder.querySelector(selectors$p.buttonAddToCart);button&&(button.classList.remove(classes$i.added,classes$i.loading),holder.classList.add(classes$i.error)),errorMessageHolder&&(errorMessageHolder.innerText=event.detail.description),hasOverlayText&&productInfo.classList.add(classes$i.hidden),setTimeout(()=>{this.resetQuickAddButtons(),hasOverlayText&&productInfo.classList.remove(classes$i.hidden)},settings.errorDelay)})}resetQuickAddButtons(){this.quickAddHolder&&this.quickAddHolder.classList.remove(classes$i.visible,classes$i.error),this.buttonQuickAdd&&(this.buttonQuickAdd.classList.remove(classes$i.added),this.buttonQuickAdd.disabled=!1)}renderModal(){this.modal?this.modalOpen():window.fetch(`${window.theme.routes.root}products/${this.handle}?section_id=api-product-upsell`).then(this.upsellErrorsHandler).then(response=>response.text()).then(response=>{console.log(this.closest(".product-item")),this.modalCreate(response)})}modalCreatedCallback(){this.modalEvents(),this.modalOpen(),wrapElements(this.modal)}upsellErrorsHandler(response){return response.ok?response:response.json().then(function(json){throw new FetchError({status:response.statusText,headers:response.headers,json})})}resetAnimatedItems(){this.modal?.querySelectorAll(selectors$p.animation).forEach(item=>{item.classList.remove(classes$i.animated)})}}register("product-grid",[tabs]),customElements.get("quick-add-product")||customElements.define("quick-add-product",QuickAddProduct),customElements.get("radio-swatch")||customElements.define("radio-swatch",RadioSwatch),customElements.get("grid-swatch")||customElements.define("grid-swatch",GridSwatch),customElements.get("product-siblings")||customElements.define("product-siblings",ProductSiblings);const selectors$o={complementaryProducts:"complementary-products",quickAddProduct:"quick-add-product"},classes$h={loaded:"is-loaded"},attributes$g={url:"data-url"};class ComplementaryProducts extends HTMLElement{constructor(){super()}connectedCallback(){const handleIntersection=(entries,observer)=>{entries[0].isIntersecting&&(observer.unobserve(this),this.hasAttribute(attributes$g.url)&&this.getAttribute(attributes$g.url)!==""&&fetch(this.getAttribute(attributes$g.url)).then(response=>response.text()).then(text=>{const html=document.createElement("div");html.innerHTML=text;const recommendations=html.querySelector(selectors$o.complementaryProducts);recommendations&&recommendations.innerHTML.trim().length&&(this.innerHTML=recommendations.innerHTML),html.querySelector(`${selectors$o.complementaryProducts} ${selectors$o.quickAddProduct}`)&&this.classList.add(classes$h.loaded),setTimeout(()=>{var swiper=new Swiper(".complementary-slider",{slidesPerView:"auto",spaceBetween:15,navigation:{nextEl:".cp-button-next",prevEl:".cp-button-prev"}})},500)}).catch(e=>{console.error(e)}))};new IntersectionObserver(handleIntersection.bind(this),{rootMargin:"0px 0px 400px 0px"}).observe(this)}}const selectors$n={fields:'input:not([type="checkbox"]):not([type="hidden"]), textarea',fieldEmail:'input[type="email"]',fieldCheckbox:'input[type="checkbox"]',form:"[data-form-wrapper]"};class RecipientForm extends HTMLElement{constructor(){super(),this.fieldCheckbox=this.querySelector(selectors$n.fieldCheckbox),this.fieldEmail=this.querySelector(selectors$n.fieldEmail),this.fields=this.querySelectorAll(selectors$n.fields),this.form=this.closest(selectors$n.form),this.onChangeEvent=event=>this.onChange(event)}connectedCallback(){this.fieldCheckbox&&(this.fieldCheckbox.addEventListener("change",this.onChangeEvent),this.form&&this.form.addEventListener("theme:product:add",()=>{this.fieldCheckbox.checked=!1,this.fieldCheckbox.dispatchEvent(new Event("change"))}))}clearInputValues(){this.fields.length&&this.fields.forEach(field=>{field.value=""})}onChange(event){this.fieldEmail.required=!!event.target.checked,event.target.checked||this.clearInputValues()}disconnectedCallback(){this.fieldCheckbox.removeEventListener("change",this.onChangeEvent)}}const selectors$m={productPage:".product__page",formWrapper:"[data-form-wrapper]",headerSticky:"[data-header-sticky]",productMediaList:"[data-product-media-list]"},classes$g={sticky:"is-sticky"},attributes$f={stickyEnabled:"data-sticky-enabled"};window.theme.variables={productPageSticky:!1};const sections$a={};class ProductSticky{constructor(section){this.section=section,this.container=section.container,this.stickyEnabled=this.container.getAttribute(attributes$f.stickyEnabled)==="true",this.formWrapper=this.container.querySelector(selectors$m.formWrapper),this.stickyScrollTop=0,this.scrollLastPosition=0,this.stickyDefaultTop=0,this.currentPoint=0,this.defaultTopBottomSpacings=30,this.scrollTop=window.scrollY,this.scrollDirectionDown=!0,this.requestAnimationSticky=null,this.stickyFormLoad=!0,this.stickyFormLastHeight=null,this.onChangeCounter=0,this.scrollEvent=e=>this.scrollEvents(e),this.resizeEvent=e=>this.resizeEvents(e),this.stickyFormEvent=e=>this.stickyFormEvents(e),setTimeout(()=>{this.init()},50)}init(){this.stickyEnabled&&(this.stickyScrollCheck(),document.addEventListener("theme:resize",this.resizeEvent)),this.initSticky()}initSticky(){theme.variables.productPageSticky&&(this.requestAnimationSticky=requestAnimationFrame(()=>this.calculateStickyPosition()),this.formWrapper.addEventListener("theme:form:sticky",this.stickyFormEvent),document.addEventListener("theme:scroll",this.scrollEvent))}stickyFormEvents(e){this.removeAnimationFrameSticky(),this.requestAnimationSticky=requestAnimationFrame(()=>this.calculateStickyPosition(e))}scrollEvents(e){this.scrollTop=e.detail.position,this.scrollDirectionDown=e.detail.down,this.requestAnimationSticky||(this.requestAnimationSticky=requestAnimationFrame(()=>this.calculateStickyPosition()))}resizeEvents(e){this.stickyScrollCheck(),document.removeEventListener("theme:scroll",this.scrollEvent),this.formWrapper.removeEventListener("theme:form:sticky",this.stickyFormEvent),this.initSticky()}stickyScrollCheck(){const targetFormWrapper=this.container.querySelector(`${selectors$m.productPage} ${selectors$m.formWrapper}`);if(targetFormWrapper)if(isDesktop()){const form=this.container.querySelector(selectors$m.formWrapper),productMediaList=this.container.querySelector(selectors$m.productMediaList);if(!form||!productMediaList)return;const productCopyHeight=form.offsetHeight,productImagesHeight=productMediaList.offsetHeight;productCopyHeightthis.calculateStickyPosition(e))):this.requestAnimationSticky&&this.removeAnimationFrameSticky(),this.stickyFormLastHeight=formWrapperHeight}removeAnimationFrameSticky(){this.requestAnimationSticky&&(cancelAnimationFrame(this.requestAnimationSticky),this.requestAnimationSticky=null,this.onChangeCounter=0)}onUnload(){this.stickyEnabled&&document.removeEventListener("theme:resize",this.resizeEvent),theme.variables.productPageSticky&&document.removeEventListener("theme:scroll",this.scrollEvent)}}const productStickySection={onLoad(){sections$a[this.id]=new ProductSticky(this)},onUnload(){sections$a[this.id].onUnload()}},selectors$l={section:"data-section-type",shareButton:"[data-share-button]",shareMessage:"[data-share-message]"},classes$f={visible:"is-visible"};class ShareButton extends HTMLElement{constructor(){super(),this.container=this.closest(`[${selectors$l.section}]`),this.shareButton=this.querySelector(selectors$l.shareButton),this.shareMessage=this.querySelector(selectors$l.shareMessage),this.urlToShare=this.shareButton.dataset.shareUrl?this.shareButton.dataset.shareUrl:document.location.href,this.init(),this.updateShareLink()}init(){navigator.share?this.shareButton.addEventListener("click",()=>{navigator.share({url:this.urlToShare,title:document.title})}):this.shareButton.addEventListener("click",this.copyToClipboard.bind(this))}updateShareLink(){this.container.getAttribute(selectors$l.section)=="product"&&this.container.addEventListener("theme:variant:change",event=>{event.detail.variant&&(this.urlToShare=`${this.urlToShare.split("?")[0]}?variant=${event.detail.variant.id}`)})}copyToClipboard(){navigator.clipboard.writeText(this.urlToShare).then(()=>{this.shareMessage.classList.add(classes$f.visible);const removeVisibleClass=()=>{this.shareMessage.classList.remove(classes$f.visible),this.shareMessage.removeEventListener("animationend",removeVisibleClass)};this.shareMessage.addEventListener("animationend",removeVisibleClass)})}}const selectors$k={buttonArrow:"[data-button-arrow]",deferredMediaButton:"[data-deferred-media-button]",focusedElement:"model-viewer, video, iframe, button, [href], input, [tabindex]",productMedia:"[data-image-id]",productMediaList:"[data-product-media-list]",section:"[data-section-type]"},classes$e={arrows:"slider__arrows",dragging:"is-dragging",hidden:"hidden",isFocused:"is-focused",mediaActive:"media--active",mediaHidden:"media--hidden",mediaHiding:"media--hiding"},attributes$e={activeMedia:"data-active-media",buttonPrev:"data-button-prev",buttonNext:"data-button-next",imageId:"data-image-id",mediaId:"data-media-id",faderDesktop:"data-fader-desktop",faderMobile:"data-fader-mobile"};class ProductImages extends HTMLElement{constructor(){super(),this.initialized=!1,this.buttons=!1,this.isDown=!1,this.startX=0,this.scrollLeft=0,this.onButtonArrowClick=e=>this.buttonArrowClickEvent(e),this.container=this.closest(selectors$k.section),this.handleMouseDown=this.handleMouseDown.bind(this),this.handleMouseLeave=this.handleMouseLeave.bind(this),this.handleMouseUp=this.handleMouseUp.bind(this),this.handleMouseMove=this.handleMouseMove.bind(this),this.handleKeyUp=this.handleKeyUp.bind(this),this.productMediaItems=this.querySelectorAll(selectors$k.productMedia),this.productMediaList=this.querySelector(selectors$k.productMediaList),this.setHeight=this.setHeight.bind(this),this.toggleEvents=this.toggleEvents.bind(this),this.selectMediaEvent=e=>this.showMediaOnVariantSelect(e),this.imagesWrapper=this.closest(".product__images-wrapper")}connectedCallback(){this.productMediaObserver(),this.toggleEvents(),this.listen(),this.setHeight()}disconnectedCallback(){this.unlisten()}listen(){document.addEventListener("theme:resize:width",this.toggleEvents),document.addEventListener("theme:resize:width",this.setHeight),this.addEventListener("theme:media:select",this.selectMediaEvent)}unlisten(){document.removeEventListener("theme:resize:width",this.toggleEvents),document.removeEventListener("theme:resize:width",this.setHeight),this.removeEventListener("theme:media:select",this.selectMediaEvent)}toggleEvents(){const isMobileView=isMobile(),isMobileSlider=JSON.parse(this.getAttribute("data-mobile-is-slider"));isMobileView&&isMobileSlider||isMobileView&&this.hasAttribute(attributes$e.faderMobile)||!isMobileView&&this.hasAttribute(attributes$e.faderDesktop)?this.bindEventListeners():this.unbindEventListeners()}bindEventListeners(){this.initialized||(this.productMediaList.addEventListener("mousedown",this.handleMouseDown),this.productMediaList.addEventListener("mouseleave",this.handleMouseLeave),this.productMediaList.addEventListener("mouseup",this.handleMouseUp),this.productMediaList.addEventListener("mousemove",this.handleMouseMove),this.productMediaList.addEventListener("touchstart",this.handleMouseDown,{passive:!0}),this.productMediaList.addEventListener("touchend",this.handleMouseUp,{passive:!0}),this.productMediaList.addEventListener("touchmove",this.handleMouseMove,{passive:!0}),this.productMediaList.addEventListener("keyup",this.handleKeyUp),this.initArrows(),this.resetScrollPosition(),this.initialized=!0)}unbindEventListeners(){this.initialized&&(this.productMediaList.removeEventListener("mousedown",this.handleMouseDown),this.productMediaList.removeEventListener("mouseleave",this.handleMouseLeave),this.productMediaList.removeEventListener("mouseup",this.handleMouseUp),this.productMediaList.removeEventListener("mousemove",this.handleMouseMove),this.productMediaList.removeEventListener("touchstart",this.handleMouseDown),this.productMediaList.removeEventListener("touchend",this.handleMouseUp),this.productMediaList.removeEventListener("touchmove",this.handleMouseMove),this.productMediaList.removeEventListener("keyup",this.handleKeyUp),this.removeArrows(),this.initialized=!1)}handleMouseDown(e){this.isDown=!0,this.startX=(e.pageX||e.changedTouches[0].screenX)-this.offsetLeft}handleMouseLeave(){this.isDown&&(this.isDown=!1)}handleMouseUp(e){const distance=(e.pageX||e.changedTouches[0].screenX)-this.offsetLeft-this.startX,direction=distance>0?1:-1;Math.abs(distance)>40&&(direction<0?this.showNextImage():this.showPreviousImage()),this.isDown=!1,requestAnimationFrame(()=>{this.classList.remove(classes$e.dragging)})}handleMouseMove(){this.isDown&&this.classList.add(classes$e.dragging)}handleKeyUp(e){e.code==="ArrowLeft"&&this.showPreviousImage(),e.code==="ArrowRight"&&this.showNextImage()}handleArrowsClickEvent(){this.querySelectorAll(selectors$k.buttonArrow)?.forEach(button=>{button.addEventListener("click",e=>{e.preventDefault(),e.target.hasAttribute(attributes$e.buttonPrev)&&this.showPreviousImage(),e.target.hasAttribute(attributes$e.buttonNext)&&this.showNextImage();const videos=this.querySelectorAll(".product__slide video");videos&&videos.forEach(video=>{video.pause()}),this.querySelector(".product__slide.media--active video")!==null&&setTimeout(()=>{this.querySelector(".product__slide.media--active video").play()},200)})})}resetScrollPosition(){this.productMediaList.scrollLeft!==0&&(this.productMediaList.scrollLeft=0)}initArrows(){if(!this.buttons.length){const buttonsWrap=document.createElement("div");buttonsWrap.classList.add(classes$e.arrows),buttonsWrap.innerHTML=theme.sliderArrows.prev+theme.sliderArrows.next,this.productMediaList.append(buttonsWrap),this.buttons=this.querySelectorAll(selectors$k.buttonArrow),this.buttonPrev=this.querySelector(`[${attributes$e.buttonPrev}]`),this.buttonNext=this.querySelector(`[${attributes$e.buttonNext}]`)}this.handleArrowsClickEvent(),this.preloadImageOnArrowHover()}removeArrows(){this.querySelector(`.${classes$e.arrows}`)?.remove()}preloadImageOnArrowHover(){this.buttonPrev?.addEventListener("mouseover",()=>{const id=this.getPreviousMediaId();this.preloadImage(id)}),this.buttonNext?.addEventListener("mouseover",()=>{const id=this.getNextMediaId();this.preloadImage(id)})}preloadImage(id){this.querySelector(`[${attributes$e.mediaId}="${id}"] img`)?.setAttribute("loading","eager")}showMediaOnVariantSelect(e){const id=e.detail.id;this.setActiveMedia(id)}getCurrentMedia(){return this.querySelector(`${selectors$k.productMedia}.${classes$e.mediaActive}`)}getNextMediaId(){const currentMedia=this.getCurrentMedia();return(currentMedia?.nextElementSibling.hasAttribute(attributes$e.imageId)?currentMedia?.nextElementSibling:this.querySelector(selectors$k.productMedia))?.getAttribute(attributes$e.mediaId)}getPreviousMediaId(){const currentMedia=this.getCurrentMedia(),lastIndex=this.productMediaItems.length-1;return(currentMedia?.previousElementSibling||this.productMediaItems[lastIndex])?.getAttribute(attributes$e.mediaId)}showNextImage(){const id=this.getNextMediaId();this.selectMedia(id)}showPreviousImage(){const id=this.getPreviousMediaId();this.selectMedia(id)}selectMedia(id){if(JSON.parse(this.getAttribute("data-mobile-is-slider"))){const isVisible2=function(ele,container){const{left,right,width}=ele.getBoundingClientRect(),containerRect=container.getBoundingClientRect();return document.querySelector("zoom-images .product__slide.media--active video")!==null&&setTimeout(()=>{document.querySelector("zoom-images .product__slide.media--active video").play()},200),left<=containerRect.left?containerRect.left-left<=width:right-containerRect.right<=width};setTimeout(()=>{this.productMediaItems.forEach(media=>{if(isVisible2(media,this)){const mediaActiveId=media.getAttribute(attributes$e.mediaId),mediaDots=this.imagesWrapper.querySelectorAll(".product__images-dot"),activeMediaDot=this.imagesWrapper.querySelector(`.product__images-dot[data-dot-media-id="${mediaActiveId}"]`);mediaDots.forEach(dot=>dot.classList.remove("active")),activeMediaDot.classList.add("active")}})},500)}this.dispatchEvent(new CustomEvent("theme:media:select",{detail:{id}}))}setActiveMedia(id){if(!id)return;this.setAttribute(attributes$e.activeMedia,id);const activeImage=this.querySelector(`${selectors$k.productMedia}.${classes$e.mediaActive}`),selectedImage=this.querySelector(`[${attributes$e.mediaId}="${id}"]`),selectedImageFocus=selectedImage?.querySelector(selectors$k.focusedElement),deferredMedia=selectedImage.querySelector("deferred-media");activeImage?.classList.add(classes$e.mediaHiding),activeImage?.classList.remove(classes$e.mediaActive),selectedImage?.classList.remove(classes$e.mediaHiding,classes$e.mediaHidden),selectedImage?.classList.add(classes$e.mediaActive),deferredMedia&&deferredMedia.getAttribute("loaded")!==!0&&selectedImage.querySelector(selectors$k.deferredMediaButton)?.dispatchEvent(new Event("click",{bubbles:!1})),requestAnimationFrame(()=>{this.setHeight(),document.body.classList.contains(classes$e.isFocused)&&selectedImageFocus?.focus()})}setHeight(){const mediaHeight=this.querySelector(`${selectors$k.productMedia}.${classes$e.mediaActive}`)?.offsetHeight||this.productMediaItems[0]?.offsetHeight;this.style.setProperty("--height",`${mediaHeight}px`)}productMediaObserver(){this.productMediaItems.forEach(media=>{media.addEventListener("transitionend",e=>{e.target==media&&media.classList.contains(classes$e.mediaHiding)&&(media.classList.remove(classes$e.mediaHiding),media.classList.add(classes$e.mediaHidden))}),media.addEventListener("transitioncancel",e=>{e.target==media&&media.classList.contains(classes$e.mediaHiding)&&(media.classList.remove(classes$e.mediaHiding),media.classList.add(classes$e.mediaHidden))})})}}const hideElement=elem=>{elem&&(elem.style.display="none")},selectors$j={optionPosition:"data-option-position",optionInput:'[name^="options"], [data-popout-option]',optionInputCurrent:'[name^="options"]:checked, [name^="options"][type="hidden"]',selectOptionValue:"data-value",popout:"[data-popout]"},classes$d={soldOut:"sold-out",unavailable:"unavailable",sale:"sale"};class SelloutVariants{constructor(section,productJSON){this.container=section,this.productJSON=productJSON,this.optionElements=this.container.querySelectorAll(selectors$j.optionInput),this.productJSON&&this.optionElements.length&&this.init()}init(){this.update()}update(){this.getCurrentState(),this.optionElements.forEach(el=>{const parent=el.closest(`[${selectors$j.optionPosition}]`);if(!parent)return;const val=el.value||el.getAttribute(selectors$j.selectOptionValue),positionString=parent.getAttribute(selectors$j.optionPosition),position=parseInt(positionString,10)-1,selectPopout=el.closest(selectors$j.popout);let newVals=[...this.selections];newVals[position]=val;const found=this.productJSON.variants.find(element=>{let perfectMatch=!0;for(let index=0;index"u"?(el.classList.add(classes$d.unavailable),selectPopout&&selectPopout.classList.add(classes$d.unavailable)):found&&found.available===!1&&(el.classList.add(classes$d.soldOut),selectPopout&&selectPopout.classList.add(classes$d.soldOut)),found&&found.compare_at_price>found.price&&theme.settings.variantOnSale&&el.parentNode.classList.add(classes$d.sale)})}getCurrentState(){this.selections=[];const options=this.container.querySelectorAll(selectors$j.optionInputCurrent);options.length&&options.forEach(element=>{const elemValue=element.value;elemValue&&elemValue!==""&&this.selections.push(elemValue)})}}const selectors$i={product:"[data-product]",productForm:"[data-product-form]",addToCart:"[data-add-to-cart]",addToCartText:"[data-add-to-cart-text]",comparePrice:"[data-compare-price]",comparePriceText:"[data-compare-text]",formWrapper:"[data-form-wrapper]",originalSelectorId:"[data-product-select]",priceWrapper:"[data-price-wrapper]",productImages:"product-images",productImage:"[data-product-image]",productMediaList:"[data-product-media-list]",productJson:"[data-product-json]",productPrice:"[data-product-price]",unitPrice:"[data-product-unit-price]",unitBase:"[data-product-base]",unitWrapper:"[data-product-unit]",isPreOrder:"[data-product-preorder]",productSlide:".product__slide",subPrices:"[data-subscription-watch-price]",subSelectors:"[data-subscription-selectors]",subsToggle:"[data-toggles-group]",subsChild:"data-group-toggle",subDescription:"[data-plan-description]",section:"[data-section-type]",quickAddModal:"[data-quick-add-modal]",priceOffWrap:"[data-price-off]",priceOffType:"[data-price-off-type]",priceOffAmount:"[data-price-off-amount]",remainingCount:"[data-remaining-count]",remainingMax:"[data-remaining-max]",remainingWrapper:"[data-remaining-wrapper]",remainingJSON:"[data-product-remaining-json]",optionValue:"[data-option-value]",optionPosition:"[data-option-position]",installment:"[data-product-form-installment]",inputId:'input[name="id"]',productSku:".product__sku"},classes$c={hidden:"hidden",variantSoldOut:"variant--soldout",variantUnavailable:"variant--unavailable",productPriceSale:"product__price--sale",remainingLow:"count-is-low",remainingIn:"count-is-in",remainingOut:"count-is-out",remainingUnavailable:"count-is-unavailable"},attributes$d={remainingMaxAttr:"data-remaining-max",enableHistoryState:"data-enable-history-state",faderDesktop:"data-fader-desktop",faderMobile:"data-fader-mobile",optionPosition:"data-option-position",imageId:"data-image-id",mediaId:"data-media-id",quickAddButton:"data-quick-add-btn"};class ProductForm extends HTMLElement{constructor(){super()}connectedCallback(){if(this.cartAddEvents(),this.container=this.closest(selectors$i.section)||this.closest(selectors$i.quickAddModal),!this.container)return;if(this.sectionId=this.container.dataset.sectionId,this.product=this.container.querySelector(selectors$i.product),this.productForm=this.container.querySelector(selectors$i.productForm),this.productImages=this.container.querySelector(selectors$i.productImages),this.productMediaList=this.container.querySelector(selectors$i.productMediaList),this.installmentForm=this.container.querySelector(selectors$i.installment),this.sellout=null,this.priceOffWrap=this.container.querySelector(selectors$i.priceOffWrap),this.priceOffAmount=this.container.querySelector(selectors$i.priceOffAmount),this.priceOffType=this.container.querySelector(selectors$i.priceOffType),this.planDescription=this.container.querySelector(selectors$i.subDescription),this.remainingWrapper=this.container.querySelector(selectors$i.remainingWrapper),this.remainingWrapper){const remainingMaxWrap=this.container.querySelector(selectors$i.remainingMax);remainingMaxWrap&&(this.remainingMaxInt=parseInt(remainingMaxWrap.getAttribute(attributes$d.remainingMaxAttr),10),this.remainingCount=this.container.querySelector(selectors$i.remainingCount),this.remainingJSONWrapper=this.container.querySelector(selectors$i.remainingJSON),this.remainingJSON=null,this.remainingJSONWrapper&&this.remainingJSONWrapper.innerHTML!==""?this.remainingJSON=JSON.parse(this.remainingJSONWrapper.innerHTML):console.warn("Missing product quantity JSON"))}this.enableHistoryState=this.container.getAttribute(attributes$d.enableHistoryState)==="true",this.hasUnitPricing=this.container.querySelector(selectors$i.unitWrapper),this.subSelectors=this.container.querySelector(selectors$i.subSelectors),this.subPrices=this.container.querySelector(selectors$i.subPrices),this.isPreOrder=this.container.querySelector(selectors$i.isPreOrder);let productJSON=null;const productElemJSON=this.container.querySelector(selectors$i.productJson);productElemJSON&&(productJSON=productElemJSON.innerHTML),productJSON?(this.productJSON=JSON.parse(productJSON),this.linkForm(),this.sellout=new SelloutVariants(this.container,this.productJSON)):console.error("Missing product JSON")}cartAddEvents(){this.buttonATC=this.querySelector(selectors$i.addToCart),this.buttonATC&&this.buttonATC.addEventListener("click",e=>{e.preventDefault(),document.dispatchEvent(new CustomEvent("theme:cart:add",{detail:{button:this.buttonATC},bubbles:!1}))})}destroy(){this.productForm.destroy()}linkForm(){this.productForm=new ProductFormReader(this.container,this.productJSON,{onOptionChange:this.onOptionChange.bind(this),onPlanChange:this.onPlanChange.bind(this)}),this.pushState(this.productForm.getFormState(),!0),this.subsToggleListeners()}onOptionChange(evt){this.pushState(evt.dataset),this.updateProductImage(evt)}onPlanChange(evt){this.subPrices&&this.pushState(evt.dataset)}pushState(formState,init=!1){this.productState=this.setProductState(formState),this.updateAddToCartState(formState),this.updateProductPrices(formState),this.updateSku(formState),this.updateSaleText(formState),this.updateSubscriptionText(formState),this.updateRemaining(formState),this.updateLegend(formState),this.fireHookEvent(formState),this.sellout?.update(formState),this.enableHistoryState&&!init&&this.updateHistoryState(formState)}updateSku(formState){const sku=this.container.querySelector(selectors$i.productSku),variant=formState.variant;sku&&variant&&(sku.textContent=variant.sku)}updateAddToCartState(formState){const variant=formState.variant;let addText=theme.strings.addToCart;const priceWrapper=this.container.querySelectorAll(selectors$i.priceWrapper),addToCart=this.container.querySelectorAll(selectors$i.addToCart),addToCartText=this.container.querySelectorAll(selectors$i.addToCartText),formWrapper=this.container.querySelectorAll(selectors$i.formWrapper);if(this.installmentForm&&variant){const installmentInput=this.installmentForm.querySelector(selectors$i.inputId);installmentInput.value=variant.id,installmentInput.dispatchEvent(new Event("change",{bubbles:!0}))}this.isPreOrder&&(addText=theme.strings.preOrder),priceWrapper.length&&variant&&priceWrapper.forEach(element=>{element.classList.remove(classes$c.hidden)}),addToCart.length&&addToCart.forEach(element=>{element.hasAttribute(attributes$d.quickAddButton)||(variant&&variant.available?element.disabled=!1:element.disabled=!0)}),addToCartText.length&&addToCartText.forEach(element=>{variant?variant.available?element.innerHTML=addText:element.innerHTML=theme.strings.soldOut:element.innerHTML=theme.strings.unavailable}),formWrapper.length&&formWrapper.forEach(element=>{if(variant){variant.available?element.classList.remove(classes$c.variantSoldOut,classes$c.variantUnavailable):(element.classList.add(classes$c.variantSoldOut),element.classList.remove(classes$c.variantUnavailable));const formSelect=element.querySelector(selectors$i.originalSelectorId);formSelect&&(formSelect.value=variant.id);const inputId=element.querySelector(`${selectors$i.inputId}[form]`);inputId&&(inputId.value=variant.id,inputId.dispatchEvent(new Event("change")))}else element.classList.add(classes$c.variantUnavailable),element.classList.remove(classes$c.variantSoldOut)})}updateHistoryState(formState){const variant=formState.variant,plan=formState.plan,location2=window.location.href;if(variant&&location2.includes("/product")){const url=new window.URL(location2),params=url.searchParams;params.set("variant",variant.id),plan&&plan.detail&&plan.detail.id&&this.productState.hasPlan?params.set("selling_plan",plan.detail.id):params.delete("selling_plan"),url.search=params.toString();const urlString=url.toString();window.history.replaceState({path:urlString},"",urlString)}}updateRemaining(formState){const variant=formState.variant;if(this.remainingWrapper?.classList.remove(classes$c.remainingIn,classes$c.remainingOut,classes$c.remainingUnavailable,classes$c.remainingLow),variant&&this.remainingWrapper&&this.remainingJSON){const remaining=this.remainingJSON[variant.id];(remaining==="out"||remaining<1)&&this.remainingWrapper.classList.add(classes$c.remainingOut),(remaining==="in"||remaining>=this.remainingMaxInt)&&this.remainingWrapper.classList.add(classes$c.remainingIn),(remaining==="low"||remaining>0&&remaining{toggle.addEventListener("change",function(e){const val=e.target.value.toString(),selected=this.container.querySelector(`[${selectors$i.subsChild}="${val}"]`),groups=this.container.querySelectorAll(`[${selectors$i.subsChild}]`);if(selected){selected.classList.remove(classes$c.hidden);const first=selected.querySelector('[name="selling_plan"]');first.checked=!0,first.dispatchEvent(new Event("change"))}groups.forEach(group=>{group!==selected&&(group.classList.add(classes$c.hidden),group.querySelectorAll('[name="selling_plan"]').forEach(plan=>{plan.checked=!1,plan.dispatchEvent(new Event("change"))}))})}.bind(this))})}updateSaleText(formState){this.productState.planSale?this.updateSaleTextSubscription(formState):this.productState.onSale?this.updateSaleTextStandard(formState):this.priceOffWrap&&this.priceOffWrap.classList.add(classes$c.hidden)}updateSaleTextStandard(formState){if(this.priceOffType&&(this.priceOffType.innerHTML=window.theme.strings.sale||"sale"),this.priceOffAmount&&this.priceOffWrap){const variant=formState.variant,discountFloat=(variant.compare_at_price-variant.price)/variant.compare_at_price,discountInt=Math.floor(discountFloat*100);this.priceOffAmount.innerHTML=`${discountInt}%`,this.priceOffWrap.classList.remove(classes$c.hidden)}}updateSubscriptionText(formState){formState.plan&&this.planDescription?(this.planDescription.innerHTML=formState.plan.detail.description,this.planDescription.classList.remove(classes$c.hidden)):this.planDescription&&this.planDescription.classList.add(classes$c.hidden)}updateSaleTextSubscription(formState){if(this.priceOffType&&(this.priceOffType.innerHTML=window.theme.strings.subscription||"subscripton"),this.priceOffAmount&&this.priceOffWrap){const adjustment=formState.plan.detail.price_adjustments[0],discount=adjustment.value;adjustment&&adjustment.value_type==="percentage"?this.priceOffAmount.innerHTML=`${discount}%`:this.priceOffAmount.innerHTML=themeCurrency.formatMoney(discount,theme.moneyFormat),this.priceOffWrap.classList.remove(classes$c.hidden)}}updateProductPrices(formState){const variant=formState.variant,plan=formState.plan;this.container.querySelectorAll(selectors$i.priceWrapper).forEach(wrap2=>{const comparePriceEl=wrap2.querySelector(selectors$i.comparePrice),productPriceEl=wrap2.querySelector(selectors$i.productPrice),comparePriceText=wrap2.querySelector(selectors$i.comparePriceText);let comparePrice="",price="";this.productState.available&&(comparePrice=variant.compare_at_price,price=variant.price),this.productState.hasPlan&&(price=plan.allocation.price),this.productState.planSale&&(comparePrice=plan.allocation.compare_at_price,price=plan.allocation.price),comparePriceEl&&(this.productState.onSale||this.productState.planSale?(comparePriceEl.classList.remove(classes$c.hidden),comparePriceText.classList.remove(classes$c.hidden),productPriceEl.classList.add(classes$c.productPriceSale)):(comparePriceEl.classList.add(classes$c.hidden),comparePriceText.classList.add(classes$c.hidden),productPriceEl.classList.remove(classes$c.productPriceSale)),comparePriceEl.innerHTML=themeCurrency.formatMoney(comparePrice,theme.moneyFormat)),productPriceEl.innerHTML=price===0?window.theme.strings.free:themeCurrency.formatMoney(price,theme.moneyFormat)}),this.hasUnitPricing&&this.updateProductUnits(formState)}updateProductUnits(formState){const variant=formState.variant,plan=formState.plan;let unitPrice=null;if(variant&&variant.unit_price&&(unitPrice=variant.unit_price),plan&&plan.allocation&&plan.allocation.unit_price&&(unitPrice=plan.allocation.unit_price),unitPrice){const base=this.getBaseUnit(variant),formattedPrice=themeCurrency.formatMoney(unitPrice,theme.moneyFormat);this.container.querySelector(selectors$i.unitPrice).innerHTML=formattedPrice,this.container.querySelector(selectors$i.unitBase).innerHTML=base,showElement(this.container.querySelector(selectors$i.unitWrapper))}else hideElement(this.container.querySelector(selectors$i.unitWrapper))}fireHookEvent(formState){const variant=formState.variant;this.container.dispatchEvent(new CustomEvent("theme:variant:change",{detail:{variant},bubbles:!0}))}setProductState(dataset){const variant=dataset.variant,plan=dataset.plan,productState={available:!0,soldOut:!1,onSale:!1,showUnitPrice:!1,requiresPlan:!1,hasPlan:!1,planPerDelivery:!1,planSale:!1};return!variant||variant.requires_selling_plan&&!plan?productState.available=!1:(variant.available||(productState.soldOut=!0),variant.compare_at_price>variant.price&&(productState.onSale=!0),variant.unit_price&&(productState.showUnitPrice=!0),this.product&&this.product.requires_selling_plan&&(productState.requiresPlan=!0),plan&&this.subPrices&&(productState.hasPlan=!0,plan.allocation.per_delivery_price!==plan.allocation.price&&(productState.planPerDelivery=!0),variant.price>plan.allocation.price&&(productState.planSale=!0))),productState}updateProductImage(evt){const variant=evt.dataset.variant;if(variant&&variant.featured_media){const selectedImage=this.container.querySelector(`[${attributes$d.imageId}="${variant.featured_media.id}"]`);if(selectedImage){const selectedImageId=selectedImage.getAttribute(attributes$d.mediaId),isDesktopView=isDesktop();if(selectedImage.dispatchEvent(new CustomEvent("theme:media:select",{bubbles:!0,detail:{id:selectedImageId}})),isDesktopView&&!this.productImages.hasAttribute(attributes$d.faderDesktop)){const selectedImageTop=selectedImage.getBoundingClientRect().top;document.dispatchEvent(new CustomEvent("theme:tooltip:close",{bubbles:!1,detail:{hideTransition:!1}})),scrollTo(selectedImageTop)}!isDesktopView&&!this.productImages.hasAttribute(attributes$d.faderMobile)&&this.productMediaList.scrollTo({left:selectedImage.offsetLeft})}}}updateLegend(formState){const variant=formState.variant;if(variant){const optionValues=this.container.querySelectorAll(selectors$i.optionValue);optionValues.length&&optionValues.forEach(optionValue=>{const selectorWrapper=optionValue.closest(selectors$i.optionPosition);if(selectorWrapper){const optionPosition=selectorWrapper.getAttribute(attributes$d.optionPosition),optionIndex=parseInt(optionPosition,10)-1,selectedOptionValue=variant.options[optionIndex];optionValue.innerHTML=selectedOptionValue}})}}}const selectors$h={productImage:"[data-image-id]",productImagesContainer:"product-images",section:"[data-section-type]",thumbItem:"[data-thumb-item]",thumbLink:"[data-thumb-link]",thumbSlider:"[data-thumbs-slider]"},attributes$c={activeMedia:"data-active-media",mediaId:"data-media-id"},classes$b={active:"is-active",focused:"is-focused",mediaActive:"media--active",mediaHidden:"media--hidden",mediaHiding:"media--hiding"};class ProductThumbs extends HTMLElement{constructor(){super(),this.container=this.closest(selectors$h.section),this.productImages=this.container.querySelectorAll(selectors$h.productImage),this.productImagesContainer=this.container.querySelector(selectors$h.productImagesContainer),this.productThumbs=this.container.querySelectorAll(selectors$h.thumbItem),this.thumbSlider=this.querySelector(selectors$h.thumbSlider),this.thumbLinks=this.querySelectorAll(selectors$h.thumbLink)}connectedCallback(){this.handleEvents(),this.preloadImagesOnHover(),this.activeMediaObserver()}disconnectedCallback(){this.observer&&this.observer.disconnect()}activeMediaObserver(){const config={attributes:!0,childList:!1,subtree:!1},callback=mutationList=>{for(const mutation of mutationList)mutation.type==="attributes"&&mutation.attributeName==attributes$c.activeMedia&&this.setActiveThumb()};this.observer=new MutationObserver(callback),this.observer.observe(this.productImagesContainer,config)}handleEvents(){this.thumbLinks.forEach(thumb=>{thumb.addEventListener("click",e=>{e.preventDefault();const thumbItem=thumb.closest(selectors$h.thumbItem),id=thumb.getAttribute(attributes$c.mediaId);thumbItem.classList.contains(classes$b.active)||this.dispatchEvent(new CustomEvent("theme:media:select",{bubbles:!0,detail:{id}}))}),thumb.addEventListener("keyup",e=>{if(e.code==="Enter"){const mediaId=thumb.getAttribute(attributes$c.mediaId),mediaElem=this.productImagesContainer.querySelector(`[${attributes$c.mediaId}="${mediaId}"]`)?.querySelectorAll('model-viewer, video, iframe, button, [href], input, [tabindex]:not([tabindex="-1"])')[0];mediaElem&&(mediaElem.dispatchEvent(new Event("focus")),mediaElem.dispatchEvent(new Event("select")))}})})}preloadImagesOnHover(){this.thumbLinks.forEach(thumb=>{thumb.addEventListener("mouseover",()=>{const id=thumb.getAttribute(attributes$c.mediaId);this.productImagesContainer.querySelector(`[${attributes$c.mediaId}="${id}"] img`)?.setAttribute("loading","eager")})})}setActiveThumb(){const id=this.productImagesContainer.getAttribute(attributes$c.activeMedia),selectedThumb=this.querySelector(`[${attributes$c.mediaId}="${id}"]`),videos=this.querySelectorAll("zoom-images .product__slide video");videos&&videos.forEach(video=>{video.pause()}),document.querySelector("zoom-images .product__slide.media--active video")!==null&&setTimeout(()=>{document.querySelector("zoom-images .product__slide.media--active video").play()},200),this.querySelector(`${selectors$h.thumbItem}.${classes$b.active}`)?.classList.remove(classes$b.active),selectedThumb?.parentNode.classList.add(classes$b.active),requestAnimationFrame(()=>{this.scrollToThumb()})}scrollToThumb(){const thumbs=this.thumbSlider;if(thumbs){const thumb=thumbs.querySelector(`.${classes$b.active}`);if(!thumb)return;const thumbsScrollTop=thumbs.scrollTop,thumbsScrollLeft=thumbs.scrollLeft,thumbsWidth=thumbs.offsetWidth,thumbsHeight=thumbs.offsetHeight,thumbsPositionBottom=thumbsScrollTop+thumbsHeight,thumbsPositionRight=thumbsScrollLeft+thumbsWidth,thumbPosTop=thumb.offsetTop,thumbPosLeft=thumb.offsetLeft,thumbWidth=thumb.offsetWidth,thumbHeight=thumb.offsetHeight,thumbRightPos=thumbPosLeft+thumbWidth,thumbBottomPos=thumbPosTop+thumbHeight,topCheck=thumbsScrollTop>thumbPosTop,bottomCheck=thumbBottomPos>thumbsPositionBottom,leftCheck=thumbsScrollLeft>thumbPosLeft,rightCheck=thumbRightPos>thumbsPositionRight,verticalCheck=bottomCheck||topCheck,horizontalCheck=rightCheck||leftCheck,isMobileView=isMobile();if(verticalCheck||horizontalCheck){let scrollTopPosition=thumbPosTop-thumbsHeight+thumbHeight,scrollLeftPosition=thumbPosLeft-thumbsWidth+thumbWidth;topCheck&&(scrollTopPosition=thumbPosTop),rightCheck&&isMobileView&&(scrollLeftPosition+=parseInt(window.getComputedStyle(thumbs).paddingRight)),leftCheck&&(scrollLeftPosition=thumbPosLeft,isMobileView&&(scrollLeftPosition-=parseInt(window.getComputedStyle(thumbs).paddingLeft))),thumbs.scrollTo({top:scrollTopPosition,left:scrollLeftPosition,behavior:"smooth"})}}}}const selectors$g={open:"[data-popup-open]",close:"[data-popup-close]",focusable:'button, [href], select, textarea, [tabindex]:not([tabindex="-1"])'},attributes$b={closing:"closing"};class PopupActions{constructor(popup,holder,showModal=!0,scrollLock2=!0){this.popup=popup,this.holder=holder,this.a11y=a11y,this.isAnimating=!1,this.showModal=showModal,this.enableScrollLock=scrollLock2,this.buttonPopupOpen=this.holder?.querySelector(selectors$g.open),this.popupEvents()}popupOpen(){this.popup&&(this.showModal&&typeof this.popup.showModal=="function"?this.popup.showModal():!this.showModal&&typeof this.popup.show=="function"&&this.popup.show(),this.popup.setAttribute("open",!0),this.popup.removeAttribute("inert"),this.popup.dispatchEvent(new CustomEvent("theme:popup:open",{bubbles:!1})),this.enableScrollLock&&document.dispatchEvent(new CustomEvent("theme:scroll:lock",{bubbles:!0})))}popupClose(){if(!(this.isAnimating||!this.popup||this.popup.hasAttribute("inert"))){if(!this.popup.hasAttribute(attributes$b.closing)){this.popup.setAttribute(attributes$b.closing,""),this.isAnimating=!0;return}typeof this.popup.close=="function"?this.popup.close():this.popup.removeAttribute("open"),this.popup.removeAttribute(attributes$b.closing),this.popup.setAttribute("inert",""),!hasOpenModals()&&this.enableScrollLock&&document.dispatchEvent(new CustomEvent("theme:scroll:unlock",{bubbles:!0})),this.popup.dispatchEvent(new CustomEvent("theme:popup:onclose",{bubbles:!1})),this.enableScrollLock&&(this.a11y.removeTrapFocus(),this.a11y.autoFocusLastElement())}}popupEvents(){if(!this.popup)return;this.buttonPopupOpen?.addEventListener("click",e=>{e.preventDefault(),this.popupOpen(),window.accessibility.lastElement=this.buttonPopupOpen});const closeButtons=this.popup.querySelectorAll(selectors$g.close);closeButtons.length&&closeButtons.forEach(closeButton=>{closeButton.addEventListener("click",e=>{e.preventDefault(),this.popupClose()})}),this.showModal&&this.popup.addEventListener("click",event=>{event.target.nodeName==="DIALOG"&&event.type==="click"&&this.popupClose()}),this.popup.addEventListener("keydown",event=>{event.code==="Escape"&&(event.preventDefault(),this.popupClose())}),this.popup.addEventListener("theme:popup:close",()=>{this.popupClose()}),this.popup.addEventListener("animationend",event=>{event.target===this.popup&&(this.isAnimating=!1,this.popup.hasAttribute(attributes$b.closing)?this.popupClose():(this.enableScrollLock&&this.a11y.trapFocus(this.popup),(this.popup.querySelector("[autofocus]")||this.popup.querySelector(selectors$g.focusable))?.focus()))})}}const selectors$f={dialog:"dialog"};class ProductModal extends HTMLElement{constructor(){super()}connectedCallback(){new PopupActions(this.querySelector(selectors$f.dialog),this,!0,!0)}}class ProductModel extends DeferredMedia{constructor(){super()}loadContent(){super.loadContent(),Shopify.loadFeatures([{name:"model-viewer-ui",version:"1.0",onLoad:this.setupModelViewerUI.bind(this)}])}setupModelViewerUI(errors){errors||(this.modelViewerUI=new Shopify.ModelViewerUI(this.querySelector("model-viewer")))}}window.ProductModel={loadShopifyXR(){Shopify.loadFeatures([{name:"shopify-xr",version:"1.0",onLoad:this.setupShopifyXR.bind(this)}])},setupShopifyXR(errors){if(!errors){if(!window.ShopifyXR){document.addEventListener("shopify_xr_initialized",()=>this.setupShopifyXR());return}document.querySelectorAll('[id^="ModelJSON-"]').forEach(modelJSON=>{window.ShopifyXR.addModels(JSON.parse(modelJSON.textContent)),modelJSON.remove()}),window.ShopifyXR.setupXRElements()}}},window.addEventListener("DOMContentLoaded",()=>{window.ProductModel&&window.ProductModel.loadShopifyXR()});const selectors$e={pickupContainer:"data-store-availability-container",shopifySection:".shopify-section",drawer:"[data-pickup-drawer]",section:"[data-section-type]"},classes$a={isHidden:"hidden"};class PickupAvailability extends HTMLElement{constructor(){super()}connectedCallback(){this.container=this.closest(selectors$e.section),this.drawer=null,this.container.addEventListener("theme:variant:change",event=>this.fetchPickupAvailability(event)),this.fetchPickupAvailability()}fetchPickupAvailability(event){if(event&&!event.detail.variant||event&&event.detail.variant&&!event.detail.variant.available){this.classList.add(classes$a.isHidden);return}const variantID=event&&event.detail.variant?event.detail.variant.id:this.getAttribute(selectors$e.pickupContainer);variantID&&(this.popupActions=null,fetch(`${window.theme.routes.root}variants/${variantID}/?section_id=api-pickup-availability`).then(this.handleErrors).then(response=>response.text()).then(text=>{const pickupAvailabilityHTML=new DOMParser().parseFromString(text,"text/html").querySelector(selectors$e.shopifySection).innerHTML;if(this.innerHTML=pickupAvailabilityHTML,this.drawer=this.querySelector(selectors$e.drawer),!this.drawer){this.classList.add(classes$a.isHidden);return}this.classList.remove(classes$a.isHidden),this.popupActions=new PopupActions(this.drawer,this,!0,!0)}).catch(e=>{console.error(e)}))}handleErrors(response){return response.ok?response:response.json().then(function(json){throw new FetchError({status:response.statusText,headers:response.headers,json})})}}function getScript(url,callback,callbackError){let head=document.getElementsByTagName("head")[0],done=!1,script=document.createElement("script");script.src=url,script.onload=script.onreadystatechange=function(){!done&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")?(done=!0,callback()):callbackError()},head.appendChild(script)}const loaders={};window.isYoutubeAPILoaded=!1,window.isVimeoAPILoaded=!1;function loadScript(options={}){if(options.type||(options.type="json"),options.url)return loaders[options.url]?loaders[options.url]:getScriptWithPromise(options.url,options.type);if(options.json)return loaders[options.json]?Promise.resolve(loaders[options.json]):window.fetch(options.json).then(response=>response.json()).then(response=>(loaders[options.json]=response,response));if(options.name){const key="".concat(options.name,options.version);return loaders[key]?loaders[key]:loadShopifyWithPromise(options)}else return Promise.reject()}function getScriptWithPromise(url,type){const loader=new Promise((resolve,reject)=>{type==="text"?fetch(url).then(response=>response.text()).then(data=>{resolve(data)}).catch(error=>{reject(error)}):getScript(url,function(){resolve()},function(){reject()})});return loaders[url]=loader,loader}function loadShopifyWithPromise(options){const key="".concat(options.name,options.version),loader=new Promise((resolve,reject)=>{try{window.Shopify.loadFeatures([{name:options.name,version:options.version,onLoad:err=>{onLoadFromShopify(resolve,reject,err)}}])}catch(err){reject(err)}});return loaders[key]=loader,loader}function onLoadFromShopify(resolve,reject,err){return err?reject(err):resolve()}const selectors$d={popupContainer:".pswp",popupCloseBtn:".pswp__custom-close",popupIframe:"iframe, video",popupThumbs:".pswp__thumbs",popupButtons:".pswp__button, .pswp__caption-close"},classes$9={current:"is-current",customLoader:"pswp--custom-loader",customOpen:"pswp--custom-opening",loader:"pswp__loader",popupCloseButton:"pswp__button--close",isFocused:"is-focused"},attributes$a={dataOptionClasses:"data-pswp-option-classes",ariaCurrent:"aria-current"},loaderHTML=`
    `;class LoadPhotoswipe{constructor(items,options=""){this.items=items,this.pswpElement=document.querySelectorAll(selectors$d.popupContainer)[0],this.popup=null,this.popupThumbs=null,this.popupThumbsContainer=this.pswpElement.querySelector(selectors$d.popupThumbs),this.closeBtn=this.pswpElement.querySelector(selectors$d.popupCloseBtn),this.keyupCloseEvent=e=>this.keyupClose(e),this.a11y=a11y;const defaultOptions={history:!1,focus:!1,mainClass:""};this.options=options!==""?options:defaultOptions,this.init()}init(){this.pswpElement.classList.add(classes$9.customOpen),this.initLoader(),loadScript({url:window.theme.assets.photoswipe}).then(()=>this.loadPopup()).catch(e=>console.error(e))}initLoader(){if(this.pswpElement.classList.contains(classes$9.customLoader)&&this.options!==""&&this.options.mainClass){this.pswpElement.setAttribute(attributes$a.dataOptionClasses,this.options.mainClass);let loaderElem=document.createElement("div");loaderElem.innerHTML=loaderHTML,loaderElem=loaderElem.firstChild,this.pswpElement.appendChild(loaderElem)}else this.pswpElement.setAttribute(attributes$a.dataOptionClasses,"")}loadPopup(){const PhotoSwipe=window.themePhotoswipe.PhotoSwipe.default,PhotoSwipeUI=window.themePhotoswipe.PhotoSwipeUI.default;this.pswpElement.classList.contains(classes$9.customLoader)&&this.pswpElement.classList.remove(classes$9.customLoader),this.pswpElement.classList.remove(classes$9.customOpen),this.popup=new PhotoSwipe(this.pswpElement,PhotoSwipeUI,this.items,this.options),this.popup.init(),this.thumbsActions(),document.body.classList.contains(classes$9.isFocused)&&setTimeout(()=>{this.a11y.trapFocus(this.pswpElement,{elementToFocus:this.closeBtn})},200),this.popup.listen("close",()=>this.onClose()),this.options&&this.options.closeElClasses&&this.options.closeElClasses.length&&this.options.closeElClasses.forEach(closeClass=>{const closeElement=this.pswpElement.querySelector(`.pswp__${closeClass}`);closeElement&&closeElement.addEventListener("keyup",this.keyupCloseEvent)})}thumbsActions(){!this.popupThumbsContainer||!this.popupThumbsContainer.children.length||(this.popupThumbsContainer.addEventListener("wheel",e=>this.stopDisabledScroll(e)),this.popupThumbsContainer.addEventListener("mousewheel",e=>this.stopDisabledScroll(e)),this.popupThumbsContainer.addEventListener("DOMMouseScroll",e=>this.stopDisabledScroll(e)),this.popupThumbs=this.pswpElement.querySelectorAll(`${selectors$d.popupThumbs} > *`),this.popupThumbs.forEach((element,i)=>{element.addEventListener("click",e=>{e.preventDefault();const lastCurrentElement=element.parentElement.querySelector(`.${classes$9.current}`);lastCurrentElement.classList.remove(classes$9.current),lastCurrentElement.setAttribute(attributes$a.ariaCurrent,!1),element.classList.add(classes$9.current),element.setAttribute(attributes$a.ariaCurrent,!0),this.popup.goTo(i)})}),this.popup.listen("imageLoadComplete",()=>this.setCurrentThumb()),this.popup.listen("beforeChange",()=>this.setCurrentThumb()))}stopDisabledScroll(e){e.stopPropagation()}keyupClose(e){e.code==="Enter"&&this.popup.close()}onClose(){const popupIframe=this.pswpElement.querySelector(selectors$d.popupIframe);if(popupIframe&&popupIframe.parentNode.removeChild(popupIframe),this.popupThumbsContainer&&this.popupThumbsContainer.firstChild)for(;this.popupThumbsContainer.firstChild;)this.popupThumbsContainer.removeChild(this.popupThumbsContainer.firstChild);this.pswpElement.setAttribute(attributes$a.dataOptionClasses,"");const loaderElem=this.pswpElement.querySelector(`.${classes$9.loader}`);loaderElem&&this.pswpElement.removeChild(loaderElem),this.options&&this.options.closeElClasses&&this.options.closeElClasses.length&&this.options.closeElClasses.forEach(closeClass=>{const closeElement=this.pswpElement.querySelector(`.pswp__${closeClass}`);closeElement&&closeElement.removeEventListener("keyup",this.keyupCloseEvent)}),this.a11y.removeTrapFocus(),this.a11y.autoFocusLastElement()}setCurrentThumb(){const lastCurrentThumb=this.pswpElement.querySelector(`${selectors$d.popupThumbs} > .${classes$9.current}`);if(lastCurrentThumb&&(lastCurrentThumb.classList.remove(classes$9.current),lastCurrentThumb.setAttribute(attributes$a.ariaCurrent,!1)),!this.popupThumbs)return;const currentThumb=this.popupThumbs[this.popup.getCurrentIndex()];currentThumb.classList.add(classes$9.current),currentThumb.setAttribute(attributes$a.ariaCurrent,!0),this.scrollThumbs(currentThumb)}scrollThumbs(currentThumb){const thumbsContainerLeft=this.popupThumbsContainer.scrollLeft,thumbsContainerWidth=this.popupThumbsContainer.offsetWidth,thumbsContainerPos=thumbsContainerLeft+thumbsContainerWidth,currentThumbLeft=currentThumb.offsetLeft,currentThumbWidth=currentThumb.offsetWidth,currentThumbPos=currentThumbLeft+currentThumbWidth;if(thumbsContainerPos<=currentThumbPos||thumbsContainerPos>currentThumbLeft){const currentThumbMarginLeft=parseInt(window.getComputedStyle(currentThumb).marginLeft);this.popupThumbsContainer.scrollTo({top:0,left:currentThumbLeft-currentThumbMarginLeft,behavior:"smooth"})}}}const selectors$c={zoomCaption:"[data-zoom-caption]",zoomImage:"[data-zoom-image]",pswpThumbsTemplate:"[data-pswp-thumbs-template]",section:"[data-section-type]",thumbs:".pswp__thumbs",productImages:"product-images"},classes$8={dragging:"is-dragging",variantSoldOut:"variant--soldout",variantUnavailable:"variant--unavailable",popupClass:"pswp-zoom-gallery",popupClassNoThumbs:"pswp-zoom-gallery--single"},attributes$9={dataImageSrc:"data-image-src",dataImageWidth:"data-image-width",dataImageHeight:"data-image-height"};class ZoomImages extends HTMLElement{constructor(){super(),this.container=this.closest(selectors$c.section),this.images=this.querySelectorAll(selectors$c.zoomImage),this.zoomCaptions=this.container.querySelector(selectors$c.zoomCaption),this.thumbsContainer=document.querySelector(selectors$c.thumbs)}connectedCallback(){this.images.forEach((image,index)=>{image.addEventListener("click",e=>{e.preventDefault(),!image.closest(selectors$c.productImages).classList.contains(classes$8.dragging)&&(this.createZoom(index),window.accessibility.lastElement=image)}),image.addEventListener("keyup",e=>{e.code==="Enter"&&(e.preventDefault(),this.createZoom(index),window.accessibility.lastElement=image)})})}createZoom(indexImage){const thumbs=this.container.querySelector(selectors$c.pswpThumbsTemplate)?.innerHTML;let items=[],counter=0;this.images.forEach(image=>{const imgSrc=image.getAttribute(attributes$9.dataImageSrc);if(counter+=1,items.push({src:imgSrc,w:parseInt(image.getAttribute(attributes$9.dataImageWidth)),h:parseInt(image.getAttribute(attributes$9.dataImageHeight)),msrc:imgSrc}),this.images.length===counter){const options={history:!1,focus:!1,index:indexImage,mainClass:counter===1?`${classes$8.popupClass} ${classes$8.popupClassNoThumbs}`:`${classes$8.popupClass}`,showHideOpacity:!0,howAnimationDuration:150,hideAnimationDuration:250,closeOnScroll:!1,closeOnVerticalDrag:!1,captionEl:!0,closeEl:!0,closeElClasses:["caption-close","title"],tapToClose:!1,clickToCloseNonZoomable:!1,maxSpreadZoom:2,loop:!0,spacing:0,allowPanToNext:!0,pinchToClose:!1,addCaptionHTMLFn:(item,captionEl,isFake)=>{this.zoomCaption(item,captionEl,isFake)},getThumbBoundsFn:()=>{const imageLocation=this.images[indexImage],pageYScroll=window.scrollY||document.documentElement.scrollTop,rect=imageLocation.getBoundingClientRect();return{x:rect.left,y:rect.top+pageYScroll,w:rect.width}}};new LoadPhotoswipe(items,options),this.thumbsContainer&&thumbs!==""&&(this.thumbsContainer.innerHTML=thumbs)}})}zoomCaption(item,captionEl){let captionHtml="";const targetContainer=captionEl.children[0];return this.zoomCaptions&&(captionHtml=this.zoomCaptions.innerHTML,this.zoomCaptions.closest(`.${classes$8.variantSoldOut}`)?targetContainer.classList.add(classes$8.variantSoldOut):targetContainer.classList.remove(classes$8.variantSoldOut),this.zoomCaptions.closest(`.${classes$8.variantUnavailable}`)?targetContainer.classList.add(classes$8.variantUnavailable):targetContainer.classList.remove(classes$8.variantUnavailable)),targetContainer.innerHTML=captionHtml,!1}}const selectors$b={addToCart:"[data-add-to-cart]",priceWrapper:"[data-price-wrapper]",productImage:"[data-product-image]",productJson:"[data-product-json]",form:"[data-product-form]",dataSectionId:"data-section-id",dataCartBar:"data-cart-bar",cartBar:"#cart-bar",cartBarAdd:"data-add-to-cart-bar",cartBarScroll:"data-cart-bar-scroll",productSubmitAdd:".product__submit__add",formWrapper:"[data-form-wrapper]",productVariants:"[data-product-variants]",slider:"[data-slider]",sliderIndex:"data-slider-index"},classes$7={expanded:"is-expanded",visible:"is-visible",loading:"is-loading",added:"is-added"},sections$9={};class Product{constructor(section){this.section=section,this.container=section.container,this.id=this.container.getAttribute(selectors$b.dataSectionId),this.sliders=this.container.querySelectorAll(selectors$b.slider),this.slider=[],this.formWrapper=this.container.querySelector(selectors$b.formWrapper),this.cartBarExist=this.container.getAttribute(selectors$b.dataCartBar)==="true",this.cartBar=this.container.querySelector(selectors$b.cartBar),this.setCartBarHeight=this.setCartBarHeight.bind(this),this.scrollToTop=this.scrollToTop.bind(this),this.toggleCartBarOnScroll=this.toggleCartBarOnScroll.bind(this),this.unlockTimer=0,this.accessibility=a11y;const productJson=this.container.querySelector(selectors$b.productJson);if(productJson&&!productJson.innerHTML||!productJson)return;const productJsonHandle=JSON.parse(productJson.innerHTML).handle;let recentObj={};productJsonHandle&&(recentObj={handle:productJsonHandle}),Shopify.Products.recordRecentlyViewed(recentObj),this.form=this.container.querySelector(selectors$b.form),this.sliders.length&&this.sliders.forEach((slider2,index)=>{slider2.setAttribute(selectors$b.sliderIndex,index),this.slider.push(new Slider(this.container,slider2))}),this.cartBarExist&&(this.initCartBar(),this.setCartBarHeight(),document.addEventListener("theme:scroll",this.toggleCartBarOnScroll),document.addEventListener("theme:resize",this.setCartBarHeight))}initCartBar(){this.cartBarBtn=this.cartBar.querySelector(selectors$b.productSubmitAdd),this.cartBarBtn&&(this.cartBarBtn.addEventListener("click",e=>{e.preventDefault(),e.currentTarget.hasAttribute(selectors$b.cartBarAdd)?(theme.settings.cartDrawerEnabled&&(e.currentTarget.classList.add(classes$7.loading),e.currentTarget.setAttribute("disabled","disabled")),this.form.querySelector(selectors$b.addToCart).dispatchEvent(new Event("click",{bubbles:!0}))):e.currentTarget.hasAttribute(selectors$b.cartBarScroll)&&this.scrollToTop()}),this.cartBarBtn.hasAttribute(selectors$b.cartBarAdd)&&document.addEventListener("theme:product:add-error",this.scrollToTop)),this.setCartBarHeight()}scrollToTop(){const productVariants=this.container.querySelector(selectors$b.productVariants),scrollTargetTop=(isDesktop()?this.container:productVariants||this.form).getBoundingClientRect().top;scrollTo(isDesktop()?scrollTargetTop:scrollTargetTop-10)}toggleCartBarOnScroll(){const scrolled=window.scrollY,element=theme.variables.productPageSticky&&this.formWrapper?this.formWrapper:this.form;if(element&&this.cartBar){const formOffset=element.offsetTop,formHeight=element.offsetHeight,checkPosition=scrolled>formOffset+formHeight;this.cartBar.classList.toggle(classes$7.visible,checkPosition)}}setCartBarHeight(){const cartBarHeight=this.cartBar.offsetHeight;document.documentElement.style.setProperty("--cart-bar-height",`${cartBarHeight}px`)}onUnload(){document.removeEventListener("theme:product:add-error",this.scrollToTop),this.cartBarExist&&(document.removeEventListener("theme:scroll",this.toggleCartBarOnScroll),document.removeEventListener("theme:resize",this.setCartBarHeight))}onBlockSelect(e){const slider2=e.srcElement.closest(selectors$b.slider);if(slider2&&this.slider.length){const sliderIndex=slider2.hasAttribute(selectors$b.sliderIndex)?slider2.getAttribute(selectors$b.sliderIndex):0;if(!this.slider[sliderIndex])return;this.slider[sliderIndex].onBlockSelect(e)}}onBlockDeselect(e){const slider2=e.srcElement.closest(selectors$b.slider);if(slider2&&this.slider.length){const sliderIndex=slider2.hasAttribute(selectors$b.sliderIndex)?slider2.getAttribute(selectors$b.sliderIndex):0;if(!this.slider[sliderIndex])return;this.slider[sliderIndex].onBlockDeselect(e)}}}register("product",[{onLoad(){sections$9[this.id]=new Product(this)},onUnload(e){sections$9[this.id].onUnload(e)},onBlockSelect(e){sections$9[this.id].onBlockSelect(e)},onBlockDeselect(e){sections$9[this.id].onBlockDeselect(e)}},tooltipSection,tabs,productStickySection]),customElements.get("complementary-products")||customElements.define("complementary-products",ComplementaryProducts),customElements.get("pickup-availability")||customElements.define("pickup-availability",PickupAvailability),customElements.get("product-form")||customElements.define("product-form",ProductForm),customElements.get("product-images")||customElements.define("product-images",ProductImages),customElements.get("product-thumbs")||customElements.define("product-thumbs",ProductThumbs),customElements.get("product-modal")||customElements.define("product-modal",ProductModal),customElements.get("product-model")||customElements.define("product-model",ProductModel),customElements.get("product-siblings")||customElements.define("product-siblings",ProductSiblings),customElements.get("radio-swatch")||customElements.define("radio-swatch",RadioSwatch),customElements.get("recipient-form")||customElements.define("recipient-form",RecipientForm),customElements.get("share-button")||customElements.define("share-button",ShareButton),customElements.get("zoom-images")||customElements.define("zoom-images",ZoomImages);const selectors$a={apiRelatedProductsTemplate:"[data-api-related-template]",relatedSection:"[data-related-section]",relatedProduct:"[data-grid-item]",recentlyViewed:"[data-recent-wrapper]",recentlyViewedWrapper:"[data-recently-viewed-wrapper]",productItem:".product-item",slider:"grid-slider"},attributes$8={limit:"data-limit",minimum:"data-minimum",productId:"data-product-id"},classes$6={isHidden:"is-hidden"},sections$8={};class Related{constructor(section){this.section=section,this.sectionId=section.id,this.container=section.container,this.related(),this.recent()}related(){const relatedSection2=this.container.querySelector(selectors$a.relatedSection);if(!relatedSection2)return;const productId=relatedSection2.getAttribute(attributes$8.productId),limit=relatedSection2.getAttribute(attributes$8.limit),requestUrl=`${window.theme.routes.product_recommendations_url}?section_id=api-product-recommendation&limit=${limit}&product_id=${productId}&intent=related`;fetch(requestUrl).then(response=>response.text()).then(data=>{const relatedContent=document.createElement("div");relatedContent.innerHTML=new DOMParser().parseFromString(data,"text/html").querySelector(selectors$a.apiRelatedProductsTemplate).innerHTML,relatedContent.querySelector(selectors$a.relatedProduct)?relatedSection2.innerHTML=relatedContent.innerHTML:relatedSection2.dispatchEvent(new CustomEvent("theme:tab:hide",{bubbles:!0}))}).catch(function(){relatedSection2.dispatchEvent(new CustomEvent("theme:tab:hide",{bubbles:!0}))})}recent(){const recentlyViewed=this.container.querySelector(selectors$a.recentlyViewed),howManyToshow=recentlyViewed?parseInt(recentlyViewed.getAttribute(attributes$8.limit)):4;Shopify.Products.showRecentlyViewed({howManyToShow:howManyToshow,wrapperId:`recently-viewed-products-${this.sectionId}`,section:this.section,onComplete:(wrapper,section)=>{const container=section.container,recentlyViewedHolder=container.querySelector(selectors$a.recentlyViewed),recentlyViewedWrapper=container.querySelector(selectors$a.recentlyViewedWrapper),recentProducts=wrapper.querySelectorAll(selectors$a.productItem),slider2=recentlyViewedHolder.querySelector(selectors$a.slider),minimumNumberProducts=recentlyViewedHolder.hasAttribute(attributes$8.minimum)?parseInt(recentlyViewedHolder.getAttribute(attributes$8.minimum)):4,checkRecentInRelated=!recentlyViewedWrapper&&recentProducts.length>0,checkRecentOutsideRelated=recentlyViewedWrapper&&recentProducts.length>=minimumNumberProducts;(checkRecentInRelated||checkRecentOutsideRelated)&&(checkRecentOutsideRelated&&recentlyViewedWrapper.classList.remove(classes$6.isHidden),recentlyViewedHolder.classList.remove("is-hidden"),recentlyViewedHolder.dispatchEvent(new CustomEvent("theme:tab:check",{bubbles:!0})),slider2&&slider2.dispatchEvent(new CustomEvent("theme:grid-slider:init",{bubbles:!0})))}})}}register("related",[{onLoad(){sections$8[this.id]=new Related(this)}},tabs]),register("reviews",[slider,blockScroll]);const sections$7={},selectors$9={sliderLogos:"[data-slider-logos]",sliderText:"[data-slider-text]",slide:"[data-slide]"},classes$5={isSelected:"is-selected",isInitialized:"is-initialized",flickityEnabled:"flickity-enabled"},attributes$7={slideData:"data-slide",slideIndex:"data-slide-index"};class LogoList{constructor(section){this.container=section.container,this.slideshowNav=this.container.querySelector(selectors$9.sliderLogos),this.slideshowText=this.container.querySelector(selectors$9.sliderText),this.setSlideshowNavStateOnResize=()=>this.setSlideshowNavState(),this.flkty=null,this.flktyNav=null,this.logoSlides=this.slideshowNav.querySelectorAll(selectors$9.slide),this.logoSlidesWidth=this.getSlidesWidth(),this.initSlideshowText(),this.initSlideshowNav()}getSlidesWidth(){return this.logoSlides.length*200}initSlideshowText(){this.slideshowText&&(this.flkty=new FlickityFade(this.slideshowText,{fade:!0,autoPlay:!1,prevNextButtons:!1,cellAlign:"left",contain:!0,pageDots:!1,wrapAround:!1,selectedAttraction:.2,friction:.6,draggable:!1,accessibility:!1,on:{ready:()=>this.sliderAccessibility(),change:()=>this.sliderAccessibility()}}))}sliderAccessibility(){const buttons=this.slideshowText.querySelectorAll(`${selectors$9.slide} a, ${selectors$9.slide} button`);buttons.length&&buttons.forEach(button=>{const slide=button.closest(selectors$9.slide);if(slide){const tabIndex=slide.classList.contains(classes$5.isSelected)?0:-1;button.setAttribute("tabindex",tabIndex)}})}initSlideshowNav(){this.slideshowNav&&(this.logoSlides.length&&this.logoSlides.forEach(logoItem=>{logoItem.addEventListener("click",e=>{e.preventDefault();const index=parseInt(logoItem.getAttribute(attributes$7.slideIndex)),hasSlider=this.slideshowNav.classList.contains(classes$5.flickityEnabled);if(this.flkty&&this.flkty.select(index),hasSlider)this.flktyNav.select(index),this.slideshowNav.classList.contains(classes$5.isSelected)||this.flktyNav.playPlayer();else{const selectedSlide=this.slideshowNav.querySelector(`.${classes$5.isSelected}`);selectedSlide&&selectedSlide.classList.remove(classes$5.isSelected),logoItem.classList.add(classes$5.isSelected)}})}),this.setSlideshowNavState(),document.addEventListener("theme:resize",this.setSlideshowNavStateOnResize))}setSlideshowNavState(){const sliderInitialized=this.slideshowNav.classList.contains(classes$5.flickityEnabled);if(this.logoSlidesWidth>getWindowWidth()){if(!sliderInitialized){this.slideshowNav.classList.add(classes$5.isInitialized);const selectedSlide=this.slideshowNav.querySelector(`.${classes$5.isSelected}`);selectedSlide&&selectedSlide.classList.remove(classes$5.isSelected),this.logoSlides[0].classList.add(classes$5.isSelected),this.flktyNav||(this.flktyNav=new Flickity(this.slideshowNav,{autoPlay:4e3,prevNextButtons:!1,contain:!1,pageDots:!1,wrapAround:!0,watchCSS:!0,selectedAttraction:.05,friction:.8,initialIndex:0}),this.flktyNav.on("deactivate",()=>{this.slideshowNav.querySelector(selectors$9.slide).classList.add(classes$5.isSelected),this.flkty&&this.flkty.select(0)}),this.flkty&&(this.flkty.select(0),this.flktyNav.on("change",index=>this.flkty.select(index))))}}else sliderInitialized&&this.slideshowNav.classList.remove(classes$5.isInitialized)}onBlockSelect(evt){if(!this.slideshowNav)return;const slide=this.slideshowNav.querySelector(`[${attributes$7.slideData}="${evt.detail.blockId}"]`),slideIndex=parseInt(slide.getAttribute(attributes$7.slideIndex));this.slideshowNav.classList.contains(classes$5.flickityEnabled)?(this.flktyNav.select(slideIndex),this.flktyNav.stopPlayer(),this.slideshowNav.classList.add(classes$5.isSelected)):slide.dispatchEvent(new Event("click"))}onBlockDeselect(){this.slideshowNav&&this.slideshowNav.classList.contains(classes$5.flickityEnabled)&&(this.flktyNav.playPlayer(),this.slideshowNav.classList.remove(classes$5.isSelected))}onUnload(){document.removeEventListener("theme:resize",this.setSlideshowNavStateOnResize)}}register("logos",[{onLoad(){sections$7[this.id]=new LogoList(this)},onUnload(e){sections$7[this.id].onUnload(e)},onBlockSelect(e){sections$7[this.id].onBlockSelect(e)},onBlockDeselect(e){sections$7[this.id].onBlockDeselect(e)}},blockScroll]);const attributes$6={videoPlay:"data-video-play"};class VideoPopup extends HTMLElement{constructor(){super()}connectedCallback(){this.videoPlay=this.querySelectorAll(`[${attributes$6.videoPlay}]`),this.videoPlay?.forEach(button=>{button.addEventListener("click",e=>{const button2=e.currentTarget;if(button2.getAttribute(attributes$6.videoPlay).trim()!==""){e.preventDefault();const items=[{html:button2.getAttribute(attributes$6.videoPlay)}];new LoadPhotoswipe(items),window.accessibility.lastElement=button2}})})}}const selectors$8={videoTemplate:"[data-video-template]"},classes$4={loading:"is-loading"},attributes$5={videoId:"data-video-id"};class VideoBackground extends HTMLElement{constructor(){super()}connectedCallback(){this.videoId=this.getAttribute(attributes$5.videoId),this.videoTemplate=this.querySelector(selectors$8.videoTemplate),this.video=null,this.videoId&&(document.addEventListener("touchstart",this.powerSaverVideoPlay.bind(this),{passive:!0}),this.renderVideo())}powerSaverVideoPlay(){this.video?.play()}renderVideo(){this.videoTemplateObserver=new IntersectionObserver((entries,observer)=>{entries.forEach(entry=>{if(entry.isIntersecting){const content=this.videoTemplate.innerHTML;this.innerHTML=content,this.classList.remove(classes$4.loading),this.video=this.querySelector("video"),this.observeVideoPlayToggle(),observer.unobserve(entry.target)}})},{root:null,rootMargin:"300px",threshold:[0,.1,.25,.5,.75,1]}),this.videoTemplateObserver.observe(this)}observeVideoPlayToggle(){if(!this.video)return;const options={rootMargin:"0px",threshold:[0,1]};this.videoPlayObserver=new IntersectionObserver(entries=>{entries.forEach(entry=>{const isVisible2=entry.isIntersecting;isVisible2&&typeof this.video.play=="function"&&this.video.play(),!isVisible2&&typeof this.video.pause=="function"&&this.video.pause()})},options),this.videoPlayObserver.observe(this.video)}disconnectedCallback(){this.videoTemplateObserver&&this.videoTemplateObserver.disconnect(),this.videoPlayObserver&&this.videoPlayObserver.disconnect(),this.videoId&&document.removeEventListener("touchstart",this.powerSaverVideoPlay.bind(this),{passive:!0})}}register("featured-video",[parallaxHero]),customElements.get("video-background")||customElements.define("video-background",VideoBackground),customElements.get("video-popup")||customElements.define("video-popup",VideoPopup),register("slideshow",[slider,parallaxHero]);const selectors$7={imagesHolder:"[data-images-holder]",imageHolder:"[data-image-holder]",imageElement:"[data-image-element]",imagesButton:"[data-images-button]",dataStartPosition:"data-start-position"},sections$6={};class CompareImages{constructor(section){this.imagesHolder=section,this.imagesHolder&&(this.imageHolder=this.imagesHolder.querySelector(selectors$7.imageHolder),this.imageElement=this.imagesHolder.querySelector(selectors$7.imageElement),this.imagesButton=this.imagesHolder.querySelector(selectors$7.imagesButton),this.startPosition=this.imagesHolder.hasAttribute(selectors$7.dataStartPosition)?this.imagesHolder.getAttribute(selectors$7.dataStartPosition):0,this.startX=0,this.x=0,this.changeValuesEvent=event=>this.changeValues(event),this.onMoveEvent=event=>this.onMove(event),this.onStopEvent=event=>this.onStop(event),this.onStartEvent=event=>this.onStart(event),this.init(),document.addEventListener("theme:resize",this.changeValuesEvent))}init(){this.changeValues(),this.imagesButton.addEventListener("mousedown",this.onStartEvent),this.imagesButton.addEventListener("touchstart",this.onStartEvent,{passive:!0})}changeValues(event){const imagesHolderWidth=this.imagesHolder.offsetWidth,buttonWidth=this.imagesButton.offsetWidth;if((!event||event&&event.type!=="touchmove"&&event.type!=="mousemove")&&(this.imageElement.style.width=`${imagesHolderWidth}px`,this.imageHolder.style.width=`${100-parseInt(this.startPosition)}%`,this.startPosition!==0)){const newButtonPositionPixels=imagesHolderWidth*parseInt(this.startPosition)/100;this.x=newButtonPositionPixels-buttonWidth/2}this.x>imagesHolderWidth-buttonWidth?this.x=imagesHolderWidth-buttonWidth:this.x<0&&(this.x=0),this.imagesButton.style.left=`${this.x/imagesHolderWidth*100}%`,this.imageHolder.style.width=`${100-(this.x+buttonWidth/2)/imagesHolderWidth*100}%`}onStart(event){event.preventDefault();let eventTouch=event;event.touches&&(eventTouch=event.touches[0]),this.x=this.imagesButton.offsetLeft,this.startX=eventTouch.pageX-this.x,this.imagesHolder.addEventListener("mousemove",this.onMoveEvent),this.imagesHolder.addEventListener("mouseup",this.onStopEvent),this.imagesHolder.addEventListener("touchmove",this.onMoveEvent),this.imagesHolder.addEventListener("touchend",this.onStopEvent)}onMove(event){let eventTouch=event;event.touches&&(eventTouch=event.touches[0]),this.x=eventTouch.pageX-this.startX,this.changeValues(event)}onStop(event){this.imagesHolder.removeEventListener("mousemove",this.onMoveEvent),this.imagesHolder.removeEventListener("mouseup",this.onStopEvent),this.imagesHolder.removeEventListener("touchmove",this.onMoveEvent),this.imagesHolder.removeEventListener("touchend",this.onStopEvent)}onUnload(){this.changeValuesEvent&&document.removeEventListener("theme:resize",this.changeValuesEvent)}}const compareImages={onLoad(){sections$6[this.id]=[],this.container.querySelectorAll(selectors$7.imagesHolder).forEach(el=>{sections$6[this.id].push(new CompareImages(el))})},onUnload(){sections$6[this.id].forEach(el=>{typeof el.onUnload=="function"&&el.onUnload()})}};register("custom-content",[slider,parallaxHero,compareImages,newsletterCheckForResultSection]),customElements.get("video-background")||customElements.define("video-background",VideoBackground),customElements.get("video-popup")||customElements.define("video-popup",VideoPopup);var styles={};styles.basic=[],styles.light=[{featureType:"administrative",elementType:"labels",stylers:[{visibility:"simplified"},{lightness:"64"},{hue:"#ff0000"}]},{featureType:"administrative",elementType:"labels.text.fill",stylers:[{color:"#bdbdbd"}]},{featureType:"administrative",elementType:"labels.icon",stylers:[{visibility:"off"}]},{featureType:"landscape",elementType:"all",stylers:[{color:"#f0f0f0"},{visibility:"simplified"}]},{featureType:"landscape.natural.landcover",elementType:"all",stylers:[{visibility:"off"}]},{featureType:"landscape.natural.terrain",elementType:"all",stylers:[{visibility:"off"}]},{featureType:"poi",elementType:"all",stylers:[{visibility:"off"}]},{featureType:"poi",elementType:"geometry.fill",stylers:[{visibility:"off"}]},{featureType:"poi",elementType:"labels",stylers:[{lightness:"100"}]},{featureType:"poi.park",elementType:"all",stylers:[{visibility:"on"}]},{featureType:"poi.park",elementType:"geometry",stylers:[{saturation:"-41"},{color:"#e8ede7"}]},{featureType:"poi.park",elementType:"labels",stylers:[{visibility:"off"}]},{featureType:"road",elementType:"all",stylers:[{saturation:"-100"}]},{featureType:"road",elementType:"labels",stylers:[{lightness:"25"},{gamma:"1.06"},{saturation:"-100"}]},{featureType:"road.highway",elementType:"all",stylers:[{visibility:"simplified"}]},{featureType:"road.highway",elementType:"geometry.fill",stylers:[{gamma:"10.00"}]},{featureType:"road.highway",elementType:"geometry.stroke",stylers:[{weight:"0.01"},{visibility:"simplified"}]},{featureType:"road.highway",elementType:"labels",stylers:[{visibility:"off"}]},{featureType:"road.highway",elementType:"labels.text.fill",stylers:[{weight:"0.01"}]},{featureType:"road.highway",elementType:"labels.text.stroke",stylers:[{weight:"0.01"}]},{featureType:"road.arterial",elementType:"geometry.fill",stylers:[{weight:"0.8"}]},{featureType:"road.arterial",elementType:"geometry.stroke",stylers:[{weight:"0.01"}]},{featureType:"road.arterial",elementType:"labels.icon",stylers:[{visibility:"off"}]},{featureType:"road.local",elementType:"geometry.fill",stylers:[{weight:"0.01"}]},{featureType:"road.local",elementType:"geometry.stroke",stylers:[{gamma:"10.00"},{lightness:"100"},{weight:"0.4"}]},{featureType:"road.local",elementType:"labels",stylers:[{visibility:"simplified"},{weight:"0.01"},{lightness:"39"}]},{featureType:"road.local",elementType:"labels.text.stroke",stylers:[{weight:"0.50"},{gamma:"10.00"},{lightness:"100"}]},{featureType:"transit",elementType:"all",stylers:[{visibility:"off"}]},{featureType:"water",elementType:"all",stylers:[{color:"#cfe5ee"},{visibility:"on"}]}],styles.white_label=[{featureType:"all",elementType:"all",stylers:[{visibility:"simplified"}]},{featureType:"all",elementType:"labels",stylers:[{visibility:"simplified"}]},{featureType:"administrative",elementType:"labels",stylers:[{gamma:"3.86"},{lightness:"100"}]},{featureType:"administrative",elementType:"labels.text.fill",stylers:[{color:"#cccccc"}]},{featureType:"landscape",elementType:"all",stylers:[{color:"#f2f2f2"}]},{featureType:"poi",elementType:"all",stylers:[{visibility:"off"}]},{featureType:"road",elementType:"all",stylers:[{saturation:-100},{lightness:45}]},{featureType:"road.highway",elementType:"all",stylers:[{visibility:"simplified"}]},{featureType:"road.highway",elementType:"geometry.fill",stylers:[{weight:"0.8"}]},{featureType:"road.highway",elementType:"geometry.stroke",stylers:[{weight:"0.8"}]},{featureType:"road.highway",elementType:"labels",stylers:[{visibility:"off"}]},{featureType:"road.highway",elementType:"labels.text.fill",stylers:[{weight:"0.8"}]},{featureType:"road.highway",elementType:"labels.text.stroke",stylers:[{weight:"0.01"}]},{featureType:"road.arterial",elementType:"geometry.stroke",stylers:[{weight:"0"}]},{featureType:"road.arterial",elementType:"labels.icon",stylers:[{visibility:"off"}]},{featureType:"road.local",elementType:"geometry.stroke",stylers:[{weight:"0.01"}]},{featureType:"road.local",elementType:"labels.text",stylers:[{visibility:"off"}]},{featureType:"transit",elementType:"all",stylers:[{visibility:"off"}]},{featureType:"water",elementType:"all",stylers:[{color:"#e4e4e4"},{visibility:"on"}]}],styles.dark_label=[{featureType:"all",elementType:"labels",stylers:[{visibility:"off"}]},{featureType:"all",elementType:"labels.text.fill",stylers:[{saturation:36},{color:"#000000"},{lightness:40}]},{featureType:"all",elementType:"labels.text.stroke",stylers:[{visibility:"on"},{color:"#000000"},{lightness:16}]},{featureType:"all",elementType:"labels.icon",stylers:[{visibility:"off"}]},{featureType:"administrative",elementType:"geometry.fill",stylers:[{color:"#000000"},{lightness:20}]},{featureType:"administrative",elementType:"geometry.stroke",stylers:[{color:"#000000"},{lightness:17},{weight:1.2}]},{featureType:"administrative",elementType:"labels",stylers:[{visibility:"simplified"},{lightness:"-82"}]},{featureType:"administrative",elementType:"labels.text.stroke",stylers:[{invert_lightness:!0},{weight:"7.15"}]},{featureType:"landscape",elementType:"geometry",stylers:[{color:"#000000"},{lightness:20}]},{featureType:"landscape",elementType:"labels",stylers:[{visibility:"off"}]},{featureType:"poi",elementType:"all",stylers:[{visibility:"off"}]},{featureType:"poi",elementType:"geometry",stylers:[{color:"#000000"},{lightness:21}]},{featureType:"road",elementType:"labels",stylers:[{visibility:"simplified"}]},{featureType:"road.highway",elementType:"geometry.fill",stylers:[{color:"#000000"},{lightness:17},{weight:"0.8"}]},{featureType:"road.highway",elementType:"geometry.stroke",stylers:[{color:"#000000"},{lightness:29},{weight:"0.01"}]},{featureType:"road.highway",elementType:"labels",stylers:[{visibility:"off"}]},{featureType:"road.arterial",elementType:"geometry",stylers:[{color:"#000000"},{lightness:18}]},{featureType:"road.arterial",elementType:"geometry.stroke",stylers:[{weight:"0.01"}]},{featureType:"road.local",elementType:"geometry",stylers:[{color:"#000000"},{lightness:16}]},{featureType:"road.local",elementType:"geometry.stroke",stylers:[{weight:"0.01"}]},{featureType:"road.local",elementType:"labels",stylers:[{visibility:"off"}]},{featureType:"transit",elementType:"all",stylers:[{visibility:"off"}]},{featureType:"transit",elementType:"geometry",stylers:[{color:"#000000"},{lightness:19}]},{featureType:"water",elementType:"geometry",stylers:[{color:"#000000"},{lightness:17}]}];function mapStyle(key){return styles[key]}window.theme.allMaps=window.theme.allMaps||{};let allMaps=window.theme.allMaps;window.theme.mapAPI=window.theme.mapAPI||null;class Map{constructor(section){this.container=section.container,this.mapContainer=this.container.querySelector("[data-map-container]"),this.key=this.container.getAttribute("data-api-key"),this.styleString=this.container.getAttribute("data-style")||"",this.zoomString=this.container.getAttribute("data-zoom")||14,this.address=this.container.getAttribute("data-address"),this.enableCorrection=this.container.getAttribute("data-latlong-correction"),this.lat=this.container.getAttribute("data-lat"),this.long=this.container.getAttribute("data-long"),this.key&&this.initMaps()}initMaps(){loadAPI(this.key).then(()=>this.enableCorrection==="true"&&this.lat!==""&&this.long!==""?new google.maps.LatLng(this.lat,this.long):geocodeAddressPromise(this.address)).then(center=>{const zoom=parseInt(this.zoomString,10),styles2=mapStyle(this.styleString),mapOptions={zoom,styles:styles2,center,draggable:!0,clickableIcons:!1,scrollwheel:!1,zoomControl:!1,disableDefaultUI:!0};return createMap(this.mapContainer,mapOptions)}).then(map=>{this.map=map,allMaps[this.id]=map}).catch(e=>{console.log("Failed to load Google Map"),console.log(e)})}unload(){typeof window.google<"u"&&google.maps.event.clearListeners(this.map,"resize")}}register("map",{onLoad(){allMaps[this.id]=new Map(this)},onUnload(){typeof allMaps[this.id].unload=="function"&&allMaps[this.id].unload()}});function loadAPI(key){if(window.theme.mapAPI===null){const urlKey=`https://maps.googleapis.com/maps/api/js?key=${key}`;window.theme.mapAPI=loadScript({url:urlKey})}return window.theme.mapAPI}function createMap(container,options){var map=new google.maps.Map(container,options),center=map.getCenter();return new google.maps.Marker({map,position:center}),google.maps.event.addDomListener(window,"resize",function(){google.maps.event.trigger(map,"resize"),map.setCenter(center)}),map}function geocodeAddressPromise(address){return new Promise((resolve,reject)=>{var geocoder=new google.maps.Geocoder;geocoder.geocode({address},function(results,status){if(status=="OK"){var latLong={lat:results[0].geometry.location.lat(),lng:results[0].geometry.location.lng()};resolve(latLong)}else reject(status)})})}const selectors$6={largePromo:"[data-large-promo]",largePromoInner:"[data-large-promo-inner]",trackingInner:"[data-tracking-consent-inner]",tracking:"[data-tracking-consent]",trackingAccept:"[data-confirm-cookies]",cartBar:"cart-bar",newsletterPopup:"[data-newsletter]",newsletterPopupHolder:"[data-newsletter-holder]",newsletterHeading:"[data-newsletter-heading]",newsletterField:"[data-newsletter-field]",promoPopup:"[data-promo-text]",newsletterForm:"[data-newsletter-form]",delayAttribite:"data-popup-delay",cookieNameAttribute:"data-cookie-name",dataTargetReferrer:"data-target-referrer"},classes$3={hidden:"hidden",hasValue:"has-value",cartBarVisible:"cart-bar-visible",isVisible:"is-visible",success:"has-success",selected:"selected",hasBlockSelected:"has-block-selected",mobile:"mobile",desktop:"desktop",bottom:"bottom"},attributes$4={enable:"data-enable"};let sections$5={};class DelayShow{constructor(holder,element,popupEvents){if(this.element=element,this.delay=holder.getAttribute(selectors$6.delayAttribite),this.isSubmitted=window.location.href.indexOf("accepts_marketing")!==-1||window.location.href.indexOf("customer_posted=true")!==-1,this.popupActions=popupEvents,this.showPopupOnScrollEvent=()=>this.showPopupOnScroll(),(this.delay==="always"||this.isSubmitted)&&this.always(),this.delay&&this.delay.includes("delayed")&&!this.isSubmitted){const seconds=this.delay.includes("_")?parseInt(this.delay.split("_")[1]):10;this.delayed(seconds)}this.delay==="bottom"&&!this.isSubmitted&&this.bottom(),this.delay==="idle"&&!this.isSubmitted&&this.idle()}always(){this.popupActions.popupOpen()}delayed(seconds=10){setTimeout(()=>{this.popupActions.popupOpen()},seconds*1e3)}idle(){let timer=0,idleTime=6e4;const documentEvents=["mousemove","mousedown","click","touchmove","touchstart","touchend","keydown","keypress"],windowEvents=["load","resize","scroll"],startTimer=()=>{timer=setTimeout(()=>{timer=0,this.popupActions.popupOpen()},idleTime),documentEvents.forEach(eventType=>{document.addEventListener(eventType,resetTimer)}),windowEvents.forEach(eventType=>{window.addEventListener(eventType,resetTimer)})},resetTimer=()=>{timer&&clearTimeout(timer),documentEvents.forEach(eventType=>{document.removeEventListener(eventType,resetTimer)}),windowEvents.forEach(eventType=>{window.removeEventListener(eventType,resetTimer)}),startTimer()};startTimer()}bottom(){document.addEventListener("theme:scroll",this.showPopupOnScrollEvent)}showPopupOnScroll(){window.scrollY+window.innerHeight>=document.body.clientHeight&&(this.popupActions.popupOpen(),document.removeEventListener("theme:scroll",this.showPopupOnScrollEvent))}onUnload(){document.removeEventListener("theme:scroll",this.showPopupOnScrollEvent)}}class TargetReferrer{constructor(el){if(this.el=el,this.locationPath=location.href,!this.el.hasAttribute(selectors$6.dataTargetReferrer))return!1;this.init()}init(){this.locationPath.indexOf(this.el.getAttribute(selectors$6.dataTargetReferrer))===-1&&!window.Shopify.designMode&&this.el.parentNode.removeChild(this.el)}}class LargePopup{constructor(el){this.popup=el,this.modal=this.popup.querySelector(selectors$6.largePromoInner),this.form=this.popup.querySelector(selectors$6.newsletterForm),this.cookie=new PopupCookie(this.popup.getAttribute(selectors$6.cookieNameAttribute),"user_has_closed"),this.isTargeted=new TargetReferrer(this.popup),this.popupActions=new PopupActions(this.modal,this.modal,!0,!0),this.a11y=a11y,this.init()}init(){const cookieExists=this.cookie.read()!==!1,targetMobile=this.popup.classList.contains(classes$3.mobile),targetDesktop=this.popup.classList.contains(classes$3.desktop),isMobileView=!isDesktop();let targetMatches=!0;if((targetMobile&&!isMobileView||targetDesktop&&isMobileView)&&(targetMatches=!1),!targetMatches){this.a11y.removeTrapFocus(),document.dispatchEvent(new CustomEvent("theme:scroll:unlock",{bubbles:!0}));return}(!cookieExists||window.Shopify.designMode)&&(!window.Shopify.designMode&&!window.location.pathname.endsWith("/challenge")&&new DelayShow(this.popup,this.modal,this.popupActions),this.form&&this.form.classList.contains(classes$3.success)&&this.checkForSuccess(),this.modal.addEventListener("theme:popup:onclose",()=>this.cookie.write()))}checkForSuccess(){this.popupActions.popupOpen(),this.cookie.write()}onBlockSelect(evt){this.popup.contains(evt.target)&&(this.popupActions.popupOpen(),this.popup.classList.add(classes$3.selected),this.popup.parentNode.classList.add(classes$3.hasBlockSelected))}onBlockDeselect(evt){this.popup.contains(evt.target)&&(this.popupActions.popupClose(),this.popup.classList.remove(classes$3.selected),this.popup.parentNode.classList.remove(classes$3.hasBlockSelected))}}class Tracking{constructor(el){this.popup=el,this.modal=document.querySelector(selectors$6.tracking),this.acceptButton=this.modal.querySelector(selectors$6.trackingAccept),this.enable=this.modal.getAttribute(attributes$4.enable)==="true",this.showPopup=!1,this.popupActions=new PopupActions(this.popup,this.popup,!1,!1),window.Shopify.loadFeatures([{name:"consent-tracking-api",version:"0.1"}],error=>{if(error)throw error;const userCanBeTracked=window.Shopify.customerPrivacy.userCanBeTracked(),userTrackingConsent=window.Shopify.customerPrivacy.getTrackingConsent();this.showPopup=!userCanBeTracked&&userTrackingConsent==="no_interaction"&&this.enable,window.Shopify.designMode&&(this.showPopup=!0),this.init()})}init(){this.showPopup&&this.popupActions.popupOpen(),this.clickEvents()}clickEvents(){this.acceptButton.addEventListener("click",event=>{event.preventDefault(),window.Shopify.customerPrivacy.setTrackingConsent(!0,()=>this.popupActions.popupClose()),document.documentElement.style.setProperty("--cookie-bar-height","0px")}),document.addEventListener("trackingConsentAccepted",()=>{})}onSelect(){this.showPopup&&(this.popupActions.popupOpen(),this.popup.classList.add(classes$3.selected),this.popup.parentNode.classList.add(classes$3.hasBlockSelected))}onDeselect(){this.showPopup&&(this.popupActions.popupClose(),this.popup.classList.remove(classes$3.selected),this.popup.parentNode.classList.remove(classes$3.hasBlockSelected))}}class PromoText{constructor(el){this.popup=el,this.cookie=new PopupCookie(this.popup.getAttribute(selectors$6.cookieNameAttribute),"user_has_closed"),this.isTargeted=new TargetReferrer(this.popup),this.popupActions=new PopupActions(this.popup,this.popup,!1,!1),this.init()}init(){(!(this.cookie.read()!==!1)||window.Shopify.designMode)&&(window.Shopify.designMode?this.popupActions.popupOpen():new DelayShow(this.popup,this.popup,this.popupActions),this.popup.addEventListener("theme:popup:onclose",()=>this.cookie.write()))}onSelect(){this.popupActions.popupOpen(),this.popup.classList.add(classes$3.selected),this.popup.parentNode.classList.add(classes$3.hasBlockSelected)}onDeselect(){this.popupActions.popupClose(),this.popup.classList.remove(classes$3.selected),this.popup.parentNode.classList.remove(classes$3.hasBlockSelected)}}class NewsletterPopup{constructor(el){this.popup=el,this.holder=this.popup.querySelector(selectors$6.newsletterPopupHolder),this.heading=this.popup.querySelector(selectors$6.newsletterHeading),this.newsletterField=this.popup.querySelector(selectors$6.newsletterField),this.cookie=new PopupCookie(this.popup.getAttribute(selectors$6.cookieNameAttribute),"newsletter_is_closed"),this.form=this.popup.querySelector(selectors$6.newsletterForm),this.isTargeted=new TargetReferrer(this.popup),this.popupActions=new PopupActions(this.holder,this.holder,!1,!1),this.resetClassTimer=0,this.init()}init(){const cookieExists=this.cookie.read()!==!1,submissionSuccess=window.location.search.indexOf("?customer_posted=true")!==-1,isPositionBottom=[...this.holder.classList].toString().includes(classes$3.bottom);submissionSuccess&&(this.delay=0),(!cookieExists||window.Shopify.designMode)&&(this.show(),this.form.classList.contains(classes$3.success)&&this.checkForSuccess()),isPositionBottom&&this.observeCartBar()}show(){window.location.pathname.endsWith("/challenge")||(window.Shopify.designMode?this.popupActions.popupOpen():new DelayShow(this.popup,this.holder,this.popupActions)),this.showForm(),this.inputField(),this.holder.addEventListener("theme:popup:onclose",()=>this.cookie.write())}checkForSuccess(){this.popupActions.popupOpen(),this.cookie.write()}observeCartBar(){if(this.cartBar=document.getElementById(selectors$6.cartBar),!this.cartBar)return;const config={attributes:!0,childList:!1,subtree:!1};let isVisible2=this.cartBar.classList.contains(classes$3.isVisible);document.body.classList.toggle(classes$3.cartBarVisible,isVisible2);const callback=mutationList=>{for(const mutation of mutationList)mutation.type==="attributes"&&(isVisible2=mutation.target.classList.contains(classes$3.isVisible),document.body.classList.toggle(classes$3.cartBarVisible,isVisible2))};this.observer=new MutationObserver(callback),this.observer.observe(this.cartBar,config)}showForm(){this.heading.addEventListener("click",event=>{event.preventDefault(),this.heading.classList.add(classes$3.hidden),this.form.classList.remove(classes$3.hidden),this.newsletterField.focus()}),this.heading.addEventListener("keyup",event=>{event.code==="Enter"&&this.heading.dispatchEvent(new Event("click"))})}inputField(){const setClass=()=>{this.resetClassTimer&&clearTimeout(this.resetClassTimer),this.newsletterField.value!==""&&this.holder.classList.add(classes$3.hasValue)},unsetClass=()=>{this.resetClassTimer&&clearTimeout(this.resetClassTimer),this.resetClassTimer=setTimeout(()=>{this.holder.classList.remove(classes$3.hasValue)},2e3)};this.newsletterField.addEventListener("input",setClass),this.newsletterField.addEventListener("focus",setClass),this.newsletterField.addEventListener("focusout",unsetClass)}onBlockSelect(evt){this.popup.contains(evt.target)&&(this.popupActions.popupOpen(),this.popup.classList.add(classes$3.selected),this.popup.parentNode.classList.add(classes$3.hasBlockSelected))}onBlockDeselect(evt){this.popup.contains(evt.target)&&(this.popupActions.popupClose(),this.popup.classList.remove(classes$3.selected),this.popup.parentNode.classList.remove(classes$3.hasBlockSelected))}onUnload(){this.observer&&this.observer.disconnect()}}register("popups",[{onLoad(){sections$5[this.id]=[],this.container.querySelectorAll(selectors$6.largePromo).forEach(el=>{sections$5[this.id].push(new LargePopup(el))}),this.container.querySelectorAll(selectors$6.tracking).forEach(el=>{sections$5[this.id].push(new Tracking(el))}),this.container.querySelectorAll(selectors$6.newsletterPopup).forEach(el=>{sections$5[this.id].push(new NewsletterPopup(el))}),this.container.querySelectorAll(selectors$6.promoPopup).forEach(el=>{sections$5[this.id].push(new PromoText(el))})},onBlockSelect(evt){sections$5[this.id].forEach(el=>{typeof el.onBlockSelect=="function"&&el.onBlockSelect(evt)})},onBlockDeselect(evt){sections$5[this.id].forEach(el=>{typeof el.onBlockDeselect=="function"&&el.onBlockDeselect(evt)})},onSelect(){sections$5[this.id].forEach(el=>{typeof el.onSelect=="function"&&el.onSelect()})},onDeselect(){sections$5[this.id].forEach(el=>{typeof el.onDeselect=="function"&&el.onDeselect()})},onUnload(){sections$5[this.id].forEach(el=>{typeof el.onUnload=="function"&&el.onUnload()})}},newsletterCheckForResultSection]);const selectors$5={modal:"[data-password-modal]",loginErrors:"#login_form .errors"};class Password{constructor(section){this.container=section.container,this.popupActions=new PopupActions(this.container.querySelector(selectors$5.modal),this.container,!0,!0),this.container.querySelector(selectors$5.loginErrors)&&this.popupActions.popupOpen()}}register("password-template",{onLoad(){new Password(this)}}),register("list-collections",[slider,blockScroll]),register("columns",[blockScroll,slider]),register("newsletter",newsletterCheckForResultSection),register("before-after",[compareImages]);const selectors$4={scrollToElement:"[data-scroll-to]",tooltip:"[data-tooltip]",collapsibleTrigger:"[data-collapsible-trigger]"},attributes$3={open:"open",dataScrollTo:"data-scroll-to",tooltipStopMousenterValue:"data-tooltip-stop-mouseenter"},sections$4={};class ScrollToElement{constructor(section){this.section=section,this.container=section.container,this.scrollToButtons=this.container.querySelectorAll(selectors$4.scrollToElement),this.scrollToButtons.length&&this.init()}init(){this.scrollToButtons.forEach(element=>{element.addEventListener("click",()=>{const target=this.container.querySelector(element.getAttribute(attributes$3.dataScrollTo));!target||element.tagName==="A"||this.scrollToElement(target)})})}scrollToElement(element){scrollTo(element.getBoundingClientRect().top+1);const collapsibleElement=element.nextElementSibling.matches("details")?element.nextElementSibling:null;if(collapsibleElement){const collapsibleTrigger=collapsibleElement?.querySelector(selectors$4.collapsibleTrigger);collapsibleElement.hasAttribute(attributes$3.open)||collapsibleTrigger?.dispatchEvent(new Event("click"))}const tooltips=document.querySelectorAll(`${selectors$4.tooltip}:not([${attributes$3.tooltipStopMousenterValue}])`);tooltips.length&&tooltips.forEach(tooltip=>{tooltip.setAttribute(attributes$3.tooltipStopMousenterValue,""),setTimeout(()=>{tooltip.removeAttribute(attributes$3.tooltipStopMousenterValue)},1e3)})}}const scrollToElement={onLoad(){sections$4[this.id]=new ScrollToElement(this)}},selectors$3={scrollSpy:"[data-scroll-spy]"},classes$2={selected:"is-selected"},attributes$2={scrollSpy:"data-scroll-spy",mobile:"data-scroll-spy-mobile",desktop:"data-scroll-spy-desktop",triggerPoint:"data-scroll-trigger-point"},sections$3={};class ScrollSpy{constructor(container,element){this.container=container,this.elementToSpy=element,this.anchorSelector=`[${attributes$2.scrollSpy}="#${this.elementToSpy.id}"]`,this.anchor=this.container.querySelector(this.anchorSelector),this.anchorSiblings=this.container.querySelectorAll(`[${attributes$2.scrollSpy}]`),this.initialized=!1,this.anchor&&(this.triggerPoint=this.anchor.getAttribute(attributes$2.triggerPoint),this.scrollCallback=()=>this.onScroll(),this.toggleScrollObserver=this.toggleScrollObserver.bind(this),this.init())}init(){this.toggleScrollObserver(),document.addEventListener("theme:resize:width",this.toggleScrollObserver)}toggleScrollObserver(){this.isEligible()?this.initialized||(document.addEventListener("theme:scroll",this.scrollCallback),this.initialized=!0):(document.removeEventListener("theme:scroll",this.scrollCallback),this.initialized=!1)}isEligible(){const isDesktopView=isDesktop();return!isDesktopView&&this.anchor.hasAttribute(attributes$2.mobile)||isDesktopView&&this.anchor.hasAttribute(attributes$2.desktop)||!this.anchor.hasAttribute(attributes$2.desktop)&&!this.anchor.hasAttribute(attributes$2.mobile)}onScroll(){this.top=this.elementToSpy.getBoundingClientRect().top;const windowHeight=Math.round(window.innerHeight),scrollTop=Math.round(window.scrollY),scrollBottom=scrollTop+windowHeight,elementOffsetTopPoint=Math.round(this.top+scrollTop),elementHeight=this.elementToSpy.offsetHeight,isBottomOfElementPassed=elementOffsetTopPoint+elementHeight{anchor.matches(this.anchorSelector)||anchor.classList.remove(classes$2.selected)}),this.anchor.classList.add(classes$2.selected))}triggerPointReached(){let triggerPointReached=!1;switch(this.triggerPoint){case"top":triggerPointReached=this.top<=0;break;case"middle":triggerPointReached=this.top<=window.innerHeight/2;break;case"bottom":triggerPointReached=this.top<=window.innerHeight;break;default:triggerPointReached=this.top<=0}return triggerPointReached}onUnload(){document.removeEventListener("theme:resize:width",this.toggleScrollObserver),document.removeEventListener("theme:scroll",this.scrollCallback)}}const scrollSpy={onLoad(){sections$3[this.id]=[],this.container.querySelectorAll(selectors$3.scrollSpy)?.forEach(element=>{const scrollSpy2=this.container.querySelector(element.getAttribute(attributes$2.scrollSpy));sections$3[this.id].push(new ScrollSpy(this.container,scrollSpy2))})},onUnload(){sections$3[this.id].forEach(section=>{typeof section.onUnload=="function"&§ion.onUnload()})}};register("sidebar",[scrollToElement,scrollSpy]);const selectors$2={button:"[data-hover-target]",image:"[data-collection-image]"},attributes$1={target:"data-hover-target"},classes$1={visible:"is-visible",selected:"is-selected"};let sections$2={};class CollectionsHover{constructor(section){this.container=section.container,this.buttons=this.container.querySelectorAll(selectors$2.button),this.init()}init(){this.buttons.length&&this.buttons.forEach(button=>{button.addEventListener("mouseenter",e=>{const targetId=e.currentTarget.getAttribute(attributes$1.target);this.updateState(targetId)})})}updateState(targetId){const button=this.container.querySelector(`[${attributes$1.target}="${targetId}"]`),target=this.container.querySelector(`#${targetId}:not(.${classes$1.visible})`),buttonSelected=this.container.querySelector(`${selectors$2.button}.${classes$1.selected}`),imageVisible=this.container.querySelector(`${selectors$2.image}.${classes$1.visible}`);target&&isDesktop()&&(imageVisible?.classList.remove(classes$1.visible),buttonSelected?.classList.remove(classes$1.selected),target.classList.add(classes$1.visible),button.classList.add(classes$1.selected))}onBlockSelect(e){this.updateState(e.target.id)}}register("collections-hover",[{onLoad(){sections$2[this.id]=new CollectionsHover(this)},onBlockSelect(e){sections$2[this.id].onBlockSelect(e)}},scrollSpy]);const selectors$1={image:"[data-featured-image]",imagesHolder:"[data-featured-aside]",contentHolder:"[data-featured-content]",wrapper:"[data-featured-wrapper]"},attributes={horizontalScroll:"data-horizontal-scroll",horizontalScrollReversed:"data-horizontal-scroll-reversed"},sections$1={};class FeaturedProduct{constructor(section){this.container=section.container,this.horizontalScroll=this.container.hasAttribute(attributes.horizontalScroll),this.horizontalScrollReversed=this.container.hasAttribute(attributes.horizontalScrollReversed),this.images=this.container.querySelectorAll(selectors$1.image),this.imagesHolder=this.container.querySelector(selectors$1.imagesHolder),this.contentHolder=this.container.querySelector(selectors$1.contentHolder),this.wrapper=this.container.querySelector(selectors$1.wrapper),this.requestAnimationSticky=null,this.lastPercent=0,this.scrollEvent=()=>this.scrollEvents(),this.calculateHorizontalPositionEvent=()=>this.calculateHorizontalPosition(),this.calculateHeightEvent=()=>this.calculateHeight(),this.init()}init(){this.horizontalScroll&&this.imagesHolder&&(this.requestAnimationSticky=requestAnimationFrame(this.calculateHorizontalPositionEvent),document.addEventListener("theme:scroll",this.scrollEvent)),this.wrapper&&this.contentHolder&&this.images.length&&(this.calculateHeight(),document.addEventListener("theme:resize:width",this.calculateHeightEvent))}scrollEvents(){this.requestAnimationSticky||(this.requestAnimationSticky=requestAnimationFrame(this.calculateHorizontalPositionEvent))}removeAnimationFrame(){this.requestAnimationSticky&&(cancelAnimationFrame(this.requestAnimationSticky),this.requestAnimationSticky=null)}calculateHorizontalPosition(){let scrollTop=window.scrollY+this.headerHeight;const windowBottom=scrollTop+window.innerHeight,elemTop=this.imagesHolder.offsetTop,elemHeight=this.imagesHolder.offsetHeight,elemBottom=elemTop+elemHeight+this.headerHeight,elemBottomTop=elemHeight-(window.innerHeight-this.headerHeight),direction=this.horizontalScrollReversed?1:-1;let percent=0;scrollTop>=elemTop&&windowBottom<=elemBottom?percent=(scrollTop-elemTop)/elemBottomTop*100:scrollTopthis.scrollEvents(),this.resizeEvent=()=>this.resizeEvents(),this.init())}init(){this.calculateRowsHeight(),this.requestAnimation=requestAnimationFrame(()=>this.calculatePosition()),document.addEventListener("theme:scroll",this.scrollEvent),document.addEventListener("theme:resize:width",this.resizeEvent),this.buttons.length&&this.buttons.forEach((button,index)=>{button.addEventListener("click",e=>{e.preventDefault();const row=e.currentTarget.closest(selectors.row);if(!row)return;const hightestRow=Math.max(...this.rowsHeight),rowHeight=this.holderHeight/this.rows.length,holderTop=this.holder.getBoundingClientRect().top,elementPosition=index>0&&hightestRowthis.calculatePosition())}scrollEvents(){this.requestAnimation||(this.requestAnimation=requestAnimationFrame(()=>this.calculatePosition()))}removeAnimationFrame(){this.requestAnimation&&(cancelAnimationFrame(this.requestAnimation),this.requestAnimation=null)}calculateRowsHeight(){if(this.rows.length){this.rowsHeight=[];let prevRowsHeight=0;this.rows.forEach((row,index)=>{if(this.rowsHeight.push(row.offsetHeight),window.Shopify.designMode){const rowsEditor=this.container.querySelectorAll(selectors.rowEditor);rowsEditor.length&&(prevRowsHeight+=row.offsetHeight,rowsEditor[index]?.style.setProperty("--row-height-min",`${row.offsetHeight}px`),rowsEditor[index+1]?.style.setProperty("--row-top-mobile",`${prevRowsHeight}px`))}})}}calculatePosition(){let scrollTop=window.scrollY;const windowHeight=window.innerHeight,windowBottom=scrollTop+windowHeight;if(this.removeAnimationFrame(),windowBottomthis.holderTop+this.holderHeight+windowHeight)return;const isDesktopView=isDesktop(),elementHeight=this.holderHeight/this.rows.length;let elementsTop=this.holderTop,mobileCheckSelectedValue=null;if(!isDesktopView){const headerHeight=document.querySelector(selectors.headerSticky)&&document.querySelector(selectors.headerHeight)?document.querySelector(selectors.headerHeight).getBoundingClientRect().height:0;scrollTop+=headerHeight;const windowHeightMobile=windowHeight-headerHeight,holderWindowHeightDifference=this.holderHeight-windowHeightMobile,heightValue=holderWindowHeightDifference>0?holderWindowHeightDifference:this.holderHeight/2,heightValueCheck=holderWindowHeightDifference>0?windowHeightMobile:this.holderHeight/2,percentMobile=(scrollTop-this.holderTop)/heightValue*100;mobileCheckSelectedValue=scrollTop+heightValueCheck*percentMobile/100,this.holder.style.setProperty("--percent-mobile",`${percentMobile}%`)}this.rows.forEach((row,index)=>{if(index>0){const selectedCheck=isDesktopView?elementsTop+elementHeightrow.getBoundingClientRect().top+window.scrollY;elementsTop-elementHeight{window.scrollTo({top:0,left:0,behavior:"smooth"})}),document.addEventListener("theme:scroll",()=>{scrollTopButton.classList.toggle("is-visible",window.scrollY>window.innerHeight)})),window.self!==window.top&&document.querySelector("html").classList.add("iframe"),"scrollBehavior"in document.documentElement.style||loadScript({url:window.theme.assets.smoothscroll})}),window.navigator.cookieEnabled&&(document.documentElement.className=document.documentElement.className.replace("supports-no-cookies","supports-cookies"))})(themeVendor.ScrollLock,themeVendor.themeAddresses,themeVendor.themeCurrency,themeVendor.Rellax,themeVendor.Flickity,themeVendor.FlickityFade,themeVendor.themeImages); //# sourceMappingURL=/cdn/shop/t/28/assets/theme.dev.js.map?v=183312743617744172771729868810