{
  "version": 3,
  "sources": ["/cdn/shop/t/28/assets/scripts.js?trust_auto_dismiss=20260708t024813z"],
  "sourcesContent": ["\"use strict\";\n\n// Helpers\n//\nconst isTouchDevice = () => {\n\treturn (('ontouchstart' in window) ||\n\t\t(navigator.maxTouchPoints > 0) ||\n\t\t(navigator.msMaxTouchPoints > 0));\n}\n\n// Main Menu\n//\nif (isTouchDevice()) {\n\tconst subMenuNavs = document.querySelectorAll('.has-sub-menu > a');\n\tsubMenuNavs.forEach(mainMenuNav => {\n\t\tmainMenuNav.addEventListener('click', event => {\n\t\t\tif (!isTouchDevice()) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tsubMenuNavs.forEach(item => {\n\t\t\t\tif (item === mainMenuNav) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\titem.classList.remove('is-dropdown-open');\n\t\t\t});\n\n\t\t\tif (mainMenuNav.classList.contains('is-dropdown-open')) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tevent.preventDefault();\n\t\t\tmainMenuNav.classList.add('is-dropdown-open');\n\t\t});\n\t});\n}\n\nconst loadDeferredMenuImages = (menuItem) => {\n\tmenuItem.querySelectorAll('img[data-ul-menu-image-src]').forEach(image => {\n\t\timage.src = image.dataset.ulMenuImageSrc;\n\t\timage.removeAttribute('data-ul-menu-image-src');\n\t});\n}\n\ndocument.querySelectorAll('.has-sub-menu').forEach(menuItem => {\n\tconst loadImages = () => loadDeferredMenuImages(menuItem);\n\n\tmenuItem.addEventListener('pointerenter', loadImages, { once: true });\n\tmenuItem.addEventListener('focusin', loadImages, { once: true });\n\tmenuItem.addEventListener('touchstart', loadImages, { once: true, passive: true });\n\tmenuItem.addEventListener('click', loadImages, { once: true });\n});\n\n// Menu classes based on available free space\n//\nconst navigations = document.querySelectorAll('.navigation-menu');\n\nnavigations.forEach(navigation => {\n\tconst navigationMenusTopNavs = navigation.querySelectorAll(':scope > .has-sub-menu');\n\n\tconst getMenuWidth = (element, initialWidth = 0) => {\n\t\tconst submenu = element && element.querySelector('.navigation-sub-menu');\n\n\t\tif (!submenu) {\n\t\t\treturn initialWidth;\n\t\t}\n\n\t\treturn getMenuWidth(submenu, initialWidth + submenu.clientWidth);\n\t}\n\n\tconst setMenuClasses = () => {\n\t\tconst windowWidth = window.innerWidth;\n\t\tnavigationMenusTopNavs.forEach(navigationMenusTopNav => {\n\t\t\tif (navigationMenusTopNav.classList.contains('navigation-item-static')) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tnavigationMenusTopNav.classList.remove('nav-open-left');\n\t\t\tconst width = getMenuWidth(navigationMenusTopNav);\n\n\t\t\tif (navigationMenusTopNav.offsetLeft + width > windowWidth) {\n\t\t\t\tnavigationMenusTopNav.classList.add('nav-open-left');\n\t\t\t}\n\t\t});\n\t}\n\n\tsetMenuClasses();\n\n\tlet resizeTimer;\n\n\twindow.addEventListener('resize', () => {\n\t\tclearTimeout(resizeTimer);\n\t\tresizeTimer = setTimeout(() => {\n\t\t\tsetMenuClasses();\n\t\t}, 350);\n\t});\n});\n\n\n// Mobile menu\n//\nconst mobileMenuWrap = document.querySelector('.head-slot-nav-mobile-link-wrapper');\nconst mobileNavWrap = document.querySelector('.navigation-mobile-wrap');\nconst mobileMenuToggle = document.querySelector('.head-slot-nav-mobile-link');\nconst mobileMenu = document.querySelector('.mobile-menu');\nconst expandOnButton = mobileMenu?.dataset.buttonExpand != null;\n\nconst setMobileMenuMaxheight = () => {\n\tmobileMenu.style.maxHeight = `${window.innerHeight - document.querySelector('.header').getBoundingClientRect().bottom + 70}px`;\n};\n\nconst handleMobileMenuOpen = () => {\n\tdocument.body.classList.add('mobile-menu-open');\n\tmobileMenuToggle.ariaExpanded = 'true';\n\tmobileMenu.ariaHidden = 'false';\n\ttrapFocus(mobileMenuWrap, mobileNavWrap);\n\tsetMobileMenuMaxheight();\n\n\tconst event = new CustomEvent('mobile-menu:open');\n\tdocument.dispatchEvent(event);\n}\n\nconst handleMobileMenuDismiss = () => {\n\tdocument.body.classList.remove('mobile-menu-open');\n\tmobileMenuToggle.ariaExpanded = 'false';\n\tmobileMenu.ariaHidden = 'true';\n\tremoveTrapFocus(mobileMenuToggle);\n\tmobileMenu.style.maxHeight = '';\n\n\tconst event = new CustomEvent('mobile-menu:close');\n\tdocument.dispatchEvent(event);\n}\n\nconst isMobileMenuOpen = () => {\n\treturn document.body.classList.contains('mobile-menu-open');\n};\n\ndocument.body.addEventListener('click', (event) => {\n\tconst { target } = event;\n\tconst mobileNav = target.closest('.navigation-mobile-item');\n\tconst isMobileNavButton = target.classList.contains('head-slot-nav-mobile-link') || !!target.closest('.head-slot-nav-mobile-link');\n\n\t// Handle mobile menu item expand\n\tif (mobileNav && mobileNav.querySelector('ul')) {\n\t\tif (expandOnButton) {\n\t\t\tif (target.closest('.navigation-mobile-item-link-expand')) {\n\t\t\t\tmobileNav.classList.toggle('menu-item-expanded');\n\t\t\t}\n\t\t} else {\n\t\t\tevent.preventDefault();\n\t\t\tmobileNav.classList.toggle('menu-item-expanded');\n\t\t}\n\t}\n\n\t// Handle mobile menu show / hide\n\tif (isMobileNavButton && document.body.classList.contains('mobile-menu-open')) {\n\t\thandleMobileMenuDismiss();\n\t\treturn;\n\t}\n\n\tif (isMobileNavButton) {\n\t\thandleMobileMenuOpen();\n\t\treturn;\n\t}\n\n\tif (isMobileMenuOpen() && !target.closest('.mobile-menu')) {\n\t\tevent.preventDefault();\n\t\thandleMobileMenuDismiss();\n\t}\n});\n\nif (mobileMenuWrap) {\n\tmobileMenuWrap.addEventListener('keyup', (event) => {\n\t\tif (event.code.toUpperCase() === 'ESCAPE') {\n\t\t\thandleMobileMenuDismiss();\n\t\t}\n\t});\n}\n\n// Sidebar drawer button toggle\n//\nconst sidebarDrawerButton = document.querySelector('.button-sidebar-drawer-open');\nconst sidebarDrawer = document.querySelector('.page-layout-sidebar');\n\nconst handleSidebarOpen = () => {\n\tdocument.body.classList.add('page-layout-sidebar-drawer-open');\n\tdocument.body.classList.add('overflow-hidden-tablet');\n\ttrapFocus(sidebarDrawer, sidebarDrawer.querySelector('.page-layout-sidebar-drawer-header'));\n}\n\nconst handleSidebarDismiss = () => {\n\tdocument.body.classList.remove('page-layout-sidebar-drawer-open');\n\tdocument.body.classList.remove('overflow-hidden-tablet');\n\tremoveTrapFocus(sidebarDrawerButton);\n}\n\nconst isSidebarOpen = () => {\n\treturn document.body.classList.contains('page-layout-sidebar-drawer-open');\n};\n\nif (sidebarDrawerButton && sidebarDrawer) {\n\tdocument.body.addEventListener('click', (event) => {\n\t\tconst { target } = event;\n\n\t\tif (target.classList.contains('js-button-sidebar-drawer-dismiss')) {\n\t\t\thandleSidebarDismiss();\n\t\t\treturn;\n\t\t}\n\n\t\tif (target.classList.contains('button-sidebar-drawer-open')) {\n\t\t\thandleSidebarOpen();\n\t\t\treturn;\n\t\t}\n\n\t\tif (isSidebarOpen() && !target.closest('.page-layout-sidebar')) {\n\t\t\thandleSidebarDismiss();\n\t\t\tevent.preventDefault();\n\t\t}\n\t});\n\n\tsidebarDrawer.addEventListener('keyup', (event) => {\n\t\tif (event.code.toUpperCase() === 'ESCAPE') {\n\t\t\thandleSidebarDismiss();\n\t\t}\n\t});\n}\n\ndocument.addEventListener('change', (event) => {\n\tif (event.target.parentNode?.classList.contains('select-custom')) {\n\t\tconst select = event.target;\n\t\tconst label = select.parentNode.querySelector('label');\n\t\tlabel.textContent = select.options[select.selectedIndex].text;\n\t}\n});\n\n// Review links / scroll\n//\n(() => {\n\t// Shopify app review link\n\tconst reviewsLink = document.querySelectorAll('a[href*=\"#product-reviews\"]');\n\tconst reviews = document.getElementById('product-reviews');\n\n\tif (reviewsLink && reviews) {\n\t\treviewsLink.forEach(link => {\n\t\t\tlink.addEventListener('click', () => {\n\t\t\t\treviews.expand();\n\t\t\t});\n\t\t});\n\t}\n\n\tif (window.location.hash === '#product-reviews' && reviews) {\n\t\tsetTimeout(() => {\n\t\t\treviews.expand();\n\t\t}, 0);\n\n\t\tsetTimeout(() => {\n\t\t\treviews.scrollIntoView();\n\t\t}, 200);\n\t}\n})();\n\n(() => {\n\t// App review links\n\tconst appReviewLinks = document.querySelectorAll('.star-rating-badge');\n\tconst reviews = document.getElementById('product-reviews');\n\n\tif (appReviewLinks.length > 0 && reviews) {\n\t\tappReviewLinks.forEach(link => {\n\t\t\tif (link.classList.contains('star-rating-link')) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tlink.addEventListener('click', () => {\n\t\t\t\treviews.expand();\n\t\t\t});\n\t\t});\n\t}\n\n\tif (appReviewLinks.length > 0 && !reviews) {\n\t\tappReviewLinks.forEach(link => {\n\t\t\tif (link.classList.contains('star-rating-link')) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst parentCard = link.closest('.card-product');\n\n\t\t\tif (parentCard) {\n\t\t\t\tconst href = parentCard.querySelector('.card-heading > a')?.getAttribute('href');\n\t\t\t\tlink.addEventListener('click', () => {\n\t\t\t\t\twindow.location = `${href}#product-reviews`;\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}\n})();\n\n// Collapsible / Expandable\n//\nclass CollapsibleExpandable extends HTMLElement {\n\tconstructor() {\n\t\tsuper();\n\t}\n\n\tconnectedCallback() {\n\t\tthis.collapsed = this.getAttribute('expanded') === 'false';\n\t\tthis.toggleElement = this.querySelector('.facet-toggle');\n\n\t\tthis.onToggle = this.onToggle.bind(this);\n\t\tthis.toggleElement.addEventListener('click', this.onToggle);\n\n\t\t// Expandable list\n\t\tthis.list = this.querySelector('.facet-options-list');\n\t\tthis.listCollapsed = this.list && this.list.getAttribute('aria-expanded') === 'false';\n\t\tthis.expandListToggle = this.querySelector('.facet-button-more');\n\n\t\tthis.onListToggle = this.onListToggle.bind(this);\n\n\t\tif (this.expandListToggle) {\n\t\t\tthis.expandListToggle.addEventListener('click', this.onListToggle);\n\t\t}\n\t}\n\n\tdisconnectedCallback() {\n\t\tthis.toggleElement.removeEventListener('click', this.onToggle);\n\n\t\tif (this.expandListToggle) {\n\t\t\tthis.expandListToggle.removeEventListener('click', this.onListToggle());\n\t\t}\n\t}\n\n\tonToggle(event) {\n\t\tevent.preventDefault();\n\t\tthis.handleToggle();\n\t}\n\n\tcollapse() {\n\t\tthis.setAttribute('expanded', 'false');\n\t\tthis.toggleElement.setAttribute('aria-expanded', 'false');\n\t\tthis.collapsed = true;\n\t}\n\n\texpand() {\n\t\tthis.setAttribute('expanded', 'true');\n\t\tthis.toggleElement.setAttribute('aria-expanded', 'true');\n\t\tthis.collapsed = false;\n\t}\n\n\thandleToggle() {\n\t\tif (this.collapsed) {\n\t\t\tthis.expand();\n\t\t} else {\n\t\t\tthis.collapse();\n\t\t}\n\t}\n\n\tonListToggle(event) {\n\t\tif (event) {\n\t\t\tevent.preventDefault();\n\t\t}\n\t\tthis.handleToggleList();\n\t}\n\n\tcollapseList() {\n\t\tthis.list.setAttribute('aria-expanded', 'false');\n\t\tthis.expandListToggle.innerHTML = '&plus; ' + window.productsStrings.facetsShowMore;\n\t\tthis.listCollapsed = true;\n\t}\n\n\texpandList() {\n\t\tthis.list.setAttribute('aria-expanded', 'true');\n\t\tthis.expandListToggle.innerHTML = '&minus; ' + window.productsStrings.facetsShowLess;\n\t\tthis.listCollapsed = false;\n\t}\n\n\thandleToggleList() {\n\t\tif (this.listCollapsed) {\n\t\t\tthis.expandList();\n\t\t} else {\n\t\t\tthis.collapseList();\n\t\t}\n\t}\n}\n\ncustomElements.define('collapsible-expandable', CollapsibleExpandable);\n\n// Generic Modal Dialog\n//\nclass ModalDialog extends HTMLElement {\n\tconstructor() {\n\t\tsuper();\n\t\tthis.querySelector('[id^=\"ModalClose-\"]').addEventListener(\n\t\t\t'click',\n\t\t\tthis.hide.bind(this)\n\t\t);\n\t\tthis.addEventListener('keyup', (event) => {\n\t\t\tif (event.code.toUpperCase() === 'ESCAPE') {\n\t\t\t\tthis.hide();\n\t\t\t}\n\t\t});\n\t\tif (this.classList.contains('media-modal')) {\n\t\t\tthis.addEventListener('pointerup', (event) => {\n\t\t\t\tif (event.pointerType === 'mouse' && !event.target.closest('deferred-media, product-model')) {\n\t\t\t\t\tthis.hide();\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tthis.addEventListener('click', (event) => {\n\t\t\t\tif (event.target.nodeName === 'MODAL-DIALOG') {\n\t\t\t\t\tthis.hide();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\tconnectedCallback() {\n\t\tif (this.moved) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.moved = true;\n\t\tdocument.body.appendChild(this);\n\t}\n\n\tshow(opener) {\n\t\tthis.openedBy = opener;\n\t\tdocument.body.classList.add('overflow-hidden');\n\t\tthis.setAttribute('open', '');\n\t\ttrapFocus(this, this.querySelector('[role=\"dialog\"]'));\n\t\twindow.pauseAllMedia();\n\t}\n\n\thide() {\n\t\tdocument.body.classList.remove('overflow-hidden');\n\t\tthis.removeAttribute('open');\n\t\tremoveTrapFocus(this.openedBy);\n\t\twindow.pauseAllMedia();\n\t}\n}\n\ncustomElements.define('modal-dialog', ModalDialog);\n\n// Global modal opener\n//\nclass ModalOpener extends HTMLElement {\n\tconstructor() {\n\t\tsuper();\n\n\t\tconst button = this.querySelector('button');\n\n\t\tif (!button) {\n\t\t\treturn;\n\t\t}\n\n\t\tbutton.addEventListener('click', () => {\n\t\t\tconst modal = document.querySelector(this.getAttribute('data-modal'));\n\t\t\tif (modal) {\n\t\t\t\tmodal.show(button);\n\t\t\t}\n\t\t});\n\t}\n}\n\ncustomElements.define('modal-opener', ModalOpener);\n\nwindow.updateProductFastShip = window.updateProductFastShip || function(sectionId, sku) {\n\tconst opener = document.getElementById(`ProductFastShipOpener-${sectionId}`);\n\n\tif (!opener) {\n\t\treturn;\n\t}\n\n\tconst source = document.getElementById(`FastShipSkus-${sectionId}`);\n\tlet skuMap = {};\n\n\tif (source) {\n\t\tif (!source.fastShipSkuMap) {\n\t\t\ttry {\n\t\t\t\tconst rawMap = JSON.parse(source.textContent || '{}');\n\t\t\t\tsource.fastShipSkuMap = Object.keys(rawMap).reduce((map, key) => {\n\t\t\t\t\tmap[String(key || '').trim().toUpperCase()] = rawMap[key] === true || rawMap[key] === 'true';\n\t\t\t\t\treturn map;\n\t\t\t\t}, {});\n\t\t\t} catch (error) {\n\t\t\t\tsource.fastShipSkuMap = {};\n\t\t\t}\n\t\t}\n\n\t\tskuMap = source.fastShipSkuMap;\n\t}\n\n\tconst normalizedSku = String(sku || '').trim().toUpperCase();\n\tconst isFastShip = Boolean(normalizedSku && skuMap[normalizedSku]);\n\tconst modalSku = document.getElementById(`ProductFastShipSku-${sectionId}`);\n\n\topener.hidden = !isFastShip;\n\topener.setAttribute('aria-hidden', isFastShip ? 'false' : 'true');\n\n\tif (modalSku) {\n\t\tmodalSku.textContent = normalizedSku ? `SKU: ${sku}` : '';\n\t}\n};\n\n// Variations\n//\nclass VariantSelects extends HTMLElement {\n\tconstructor() {\n\t\tsuper();\n\t\tthis.product = this.getProductData();\n\n\t\tif (!this.product.variants && !this.product.options) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.addEventListener('change', this.onVariantChange);\n\t\tthis.updateOptions();\n\t\tthis.updateMasterId();\n\n\t\tthis.hideOutOfStock = this.dataset.variantsVisibility === 'hide';\n\t\tthis.disableOutOfStock = this.dataset.variantsVisibility === 'disable';\n\t\tthis.hideSingle = this.dataset.hideSingle === 'true';\n\t\tthis.formId = this.dataset.formId;\n\t\tthis.optionsMap = this.getValidVariants();\n\t\tthis.outOfStockOptionsMap = this.getOutOfStockVariants();\n\n\t\tif (this.tagName === 'VARIANT-SELECTS') {\n\t\t\tthis.dropdowns = this.querySelectorAll('select');\n\n\t\t\tthis.dropdowns.forEach(select => {\n\t\t\t\tselect.addEventListener('change', this.onDropdownChange.bind(this));\n\t\t\t});\n\n\t\t\tif (this.dropdowns[0] !== null) {\n\t\t\t\tthis.onDropdownChange();\n\t\t\t}\n\t\t}\n\n\t\tthis.updateVisibility();\n\t}\n\n\tonDropdownChange() {\n\t\tthis.updateOptionsInDropdown(0);\n\n\t\tif (this.product.options.length > 1) {\n\t\t\tthis.updateOptionsInDropdown(1);\n\t\t}\n\n\t\tif (this.product.options.length === 3) {\n\t\t\tthis.updateOptionsInDropdown(2);\n\t\t}\n\t}\n\n\tupdateOptionsInDropdown(selectorIndex) {\n\t\tconst selector = this.dropdowns[selectorIndex];\n\t\tconst originalValue = selector.value;\n\t\tselector.replaceChildren();\n\n\t\tlet key = 'root';\n\t\tif (selectorIndex === 1) {\n\t\t\tkey = this.dropdowns[0].value;\n\t\t} else if (selectorIndex === 2) {\n\t\t\tkey = this.dropdowns[0].value + ' / ' + this.dropdowns[1].value;\n\t\t}\n\n\t\tconst availableOptions = this.optionsMap[key];\n\t\tconst outOfStockOptions = this.outOfStockOptionsMap[key];\n\n\t\tfor (let i = 0; i < availableOptions.length; i++) {\n\t\t\tconst option = availableOptions[i];\n\t\t\tconst newOption = document.createElement('option');\n\t\t\tnewOption.value = option;\n\t\t\tnewOption.append(option);\n\n\t\t\tif (this.disableOutOfStock && outOfStockOptions?.includes(option)) {\n\t\t\t\tnewOption.disabled = 'true';\n\t\t\t}\n\n\t\t\tselector.append(newOption);\n\t\t}\n\n\t\tif (availableOptions.includes(originalValue)) {\n\t\t\tselector.value = originalValue;\n\t\t}\n\t}\n\n\tgetValidVariants(ignoreHideOutOfStock) {\n\t\tconst optionsMap = {};\n\t\tfor (let i = 0; i < this.product.variants.length; i++) {\n\t\t\tconst variant = this.product.variants[i];\n\n\t\t\t// Make sure we don't hide the currently visited variant if it's out of stock.\n\t\t\t// The ignoreHideOutOfStock = true will always return only the\n\t\t\t// valid variants available for purchase regardless of the hide out of stock or disable\n\t\t\t// unavailable variants settings.\n\t\t\tif ((this.hideOutOfStock || ignoreHideOutOfStock) && !variant.available && this.currentVariant.id !== variant.id) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// Gathering values for the 1st drop-down.\n\t\t\toptionsMap['root'] = optionsMap['root'] || [];\n\t\t\toptionsMap['root'].push(variant.option1);\n\t\t\toptionsMap['root'] = [...new Set(optionsMap['root'])];\n\n\t\t\t// Gathering values for the 2nd drop-down.\n\t\t\tif (this.product.options.length > 1) {\n\t\t\t\tconst key = variant.option1;\n\t\t\t\toptionsMap[key] = optionsMap[key] || [];\n\t\t\t\toptionsMap[key].push(variant.option2);\n\t\t\t\toptionsMap[key] = [...new Set(optionsMap[key])];\n\t\t\t}\n\n\t\t\t// Gathering values for the 3rd drop-down.\n\t\t\tif (this.product.options.length === 3) {\n\t\t\t\tconst key = variant.option1 + ' / ' + variant.option2;\n\t\t\t\toptionsMap[key] = optionsMap[key] || [];\n\t\t\t\toptionsMap[key].push(variant.option3);\n\t\t\t\toptionsMap[key] = [...new Set(optionsMap[key])];\n\t\t\t}\n\t\t}\n\n\t\treturn optionsMap;\n\t}\n\n\tgetOutOfStockVariants() {\n\t\t// We get the actual valid variants to cross-reference them with the\n\t\t// option's map here. If a variant option is not included\n\t\t// in the following array it means it's not available.\n\t\tconst validVariants = this.getValidVariants(true);\n\n\t\tconst optionsMap = {};\n\t\tfor (let i = 0; i < this.product.variants.length; i++) {\n\t\t\tconst variant = this.product.variants[i];\n\n\t\t\tif (variant.available) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// Gathering values for the 1st drop-down.\n\t\t\tif (!validVariants['root'].includes(variant.option1)) {\n\t\t\t\toptionsMap['root'] = optionsMap['root'] || [];\n\t\t\t\toptionsMap['root'].push(variant.option1);\n\t\t\t\toptionsMap['root'] = [...new Set(optionsMap['root'])];\n\t\t\t}\n\n\t\t\t// Gathering values for the 2nd drop-down.\n\t\t\tif (this.product.options.length > 1) {\n\t\t\t\tconst key = variant.option1;\n\t\t\t\tif (!validVariants[key]?.includes(variant.option2)) {\n\t\t\t\t\toptionsMap[key] = optionsMap[key] || [];\n\t\t\t\t\toptionsMap[key].push(variant.option2);\n\t\t\t\t\toptionsMap[key] = [...new Set(optionsMap[key])];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Gathering values for the 3rd drop-down.\n\t\t\tif (this.product.options.length === 3) {\n\t\t\t\tconst key = variant.option1 + ' / ' + variant.option2;\n\t\t\t\tif (!validVariants[key]?.includes(variant.option3)) {\n\t\t\t\t\toptionsMap[key] = optionsMap[key] || [];\n\t\t\t\t\toptionsMap[key].push(variant.option3);\n\t\t\t\t\toptionsMap[key] = [...new Set(optionsMap[key])];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn optionsMap;\n\t}\n\n\tonVariantChange() {\n\t\tthis.updateOptions();\n\t\tthis.updateMasterId();\n\t\tthis.toggleAddButton(true, '');\n\n\t\tthis.updatePickupAvailability();\n\n\t\tif (!this.currentVariant) {\n\t\t\tthis.toggleAddButton(true, '');\n\t\t\tthis.setUnavailable();\n\t\t} else {\n\t\t\tthis.updateMedia();\n\t\t\tthis.updateURL();\n\t\t\tthis.updateVariantInput();\n\t\t\tthis.renderProductInfo();\n\n\t\t\tconst event = new CustomEvent('product:variant-change', {\n\t\t\t\tdetail: {\n\t\t\t\t\tvariant: this.currentVariant\n\t\t\t\t}\n\t\t\t});\n\t\t\tdocument.dispatchEvent(event);\n\t\t}\n\t}\n\n\tupdateOptions() {\n\t\tthis.options = Array.from(this.querySelectorAll('select'), (select) => select.value);\n\t}\n\n\tupdateMasterId() {\n\t\tif (!this.product) {\n\t\t\treturn null;\n\t\t}\n\n\t\tthis.currentVariant = this.getVariantData().find((variant) => {\n\t\t\treturn !variant.options.map((option, index) => {\n\t\t\t\treturn this.options[index] === option;\n\t\t\t}).includes(false);\n\t\t});\n\t}\n\n\tupdateMedia() {\n\t\tconst mediaGallery = document.getElementById(`MediaGallery-${this.dataset.section}`);\n\n\t\tif (!this.currentVariant || !this.currentVariant.featured_media) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (mediaGallery?.setActiveMedia) {\n\t\t\tmediaGallery.setActiveMedia(this.currentVariant.featured_media.id, mediaGallery.getAttribute('hide-variants') === 'true');\n\t\t}\n\t}\n\n\tupdateURL() {\n\t\tif (!this.currentVariant || this.dataset.updateUrl === 'false') {\n\t\t\treturn;\n\t\t}\n\t\twindow.history.replaceState({}, '', `${this.dataset.url}?variant=${this.currentVariant.id}`);\n\t}\n\n\tupdateVariantInput() {\n\t\tconst productForms = document.querySelectorAll(`#product-form-${this.dataset.section}, #product-form-installment`);\n\n\t\tproductForms.forEach((productForm) => {\n\t\t\tconst input = productForm.querySelector('input[name=\"id\"]');\n\t\t\tinput.value = this.currentVariant.id;\n\t\t\tinput.dispatchEvent(new Event('change', { bubbles: true }));\n\t\t});\n\t}\n\n\tupdatePickupAvailability() {\n\t\tconst pickUpAvailability = document.querySelector('pickup-availability');\n\n\t\tif (!pickUpAvailability || !pickUpAvailability.fetchAvailability) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.currentVariant && this.currentVariant.available) {\n\t\t\tpickUpAvailability.fetchAvailability(this.currentVariant.id);\n\t\t} else {\n\t\t\tpickUpAvailability.removeAttribute('available');\n\t\t\tpickUpAvailability.innerHTML = '';\n\t\t}\n\t}\n\n\tupdateVisibility() {\n\t\tconst hasSingleVariantAvailable = Object.keys(this.optionsMap).reduce((acc, key) => {\n\t\t\treturn this.optionsMap[key].length === 1;\n\t\t}, false);\n\t\tconst parent = this.closest('.product-variants');\n\n\t\tif (this.hideSingle && this.hideOutOfStock && hasSingleVariantAvailable) {\n\t\t\tparent?.classList.add('hidden');\n\t\t} else {\n\t\t\tparent?.classList.add('variants-visible');\n\t\t\tparent?.classList.remove('variants-hidden');\n\t\t}\n\t}\n\n\trenderProductInfo() {\n\t\tfetch(`${this.dataset.url}?variant=${this.currentVariant.id}&section_id=${this.dataset.section}`)\n\t\t\t.then((response) => response.text())\n\t\t\t.then((responseText) => {\n\t\t\t\tconst priceId = `price-${this.dataset.section}`;\n\t\t\t\tconst stockBadgeId = `ProductAvailability-${this.dataset.section}`;\n\t\t\t\tconst html = new DOMParser().parseFromString(responseText, 'text/html')\n\t\t\t\tconst priceDestination = document.getElementById(priceId);\n\t\t\t\tconst priceSource = html.getElementById(priceId);\n\t\t\t\tconst stockBadgeDestination = document.getElementById(stockBadgeId);\n\t\t\t\tconst stockBadgeSource = html.getElementById(stockBadgeId);\n\t\t\t\tconst productForm = document.getElementById(`product-form-${this.dataset.section}`);\n\n\t\t\t\tif (priceSource && priceDestination) {\n\t\t\t\t\tpriceDestination.innerHTML = priceSource.innerHTML;\n\t\t\t\t}\n\n\t\t\t\tif (stockBadgeSource && stockBadgeDestination) {\n\t\t\t\t\tstockBadgeDestination.innerHTML = stockBadgeSource.innerHTML;\n\t\t\t\t}\n\n\t\t\t\tconst price = document.getElementById(`price-${this.dataset.section}`);\n\n\t\t\t\tif (price) {\n\t\t\t\t\tprice.classList.remove('visibility-hidden');\n\t\t\t\t}\n\n\t\t\t\tif (productForm) {\n\t\t\t\t\tconst addButtonDestination = productForm.querySelector('[name=\"add\"]');\n\t\t\t\t\tconst addButtonSource = html.getElementById(`product-form-${this.dataset.section}`)?.querySelector('[name=\"add\"]');\n\n\t\t\t\t\taddButtonDestination.innerHTML = addButtonSource.innerHTML;\n\t\t\t\t}\n\n\t\t\t\tthis.toggleAddButton(!this.currentVariant.available, window.variantStrings.outOfStock);\n\t\t\t\tthis.setSku(this.currentVariant.sku);\n\t\t\t\tthis.setBarcode(this.currentVariant.barcode);\n\n\t\t\t\tpublish(PUB_SUB_EVENTS.productVariantChange, {\n\t\t\t\t\tsectionId: this.dataset.section,\n\t\t\t\t\thtml,\n\t\t\t\t\tvariant: this.currentVariant,\n\t\t\t\t});\n\t\t\t});\n\t}\n\n\tsetSku(sku) {\n\t\tconst skuField = document.getElementById(`ProductSku-${this.dataset.section}`);\n\t\twindow.updateProductFastShip?.(this.dataset.section, sku);\n\n\t\tif (!skuField) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!sku) {\n\t\t\tskuField.parentNode.classList.add('visually-hidden');\n\t\t\treturn;\n\t\t}\n\n\t\tskuField.parentNode.classList.remove('visually-hidden');\n\t\tskuField.textContent = sku;\n\t}\n\n\tsetBarcode(barcode) {\n\t\tconst barcodeField = document.getElementById(`ProductBarcode-${this.dataset.section}`);\n\n\t\tif (!barcodeField) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!barcode) {\n\t\t\tbarcodeField.parentNode.classList.add('visually-hidden');\n\t\t\treturn;\n\t\t}\n\n\t\tbarcodeField.parentNode.classList.remove('visually-hidden');\n\t\tbarcodeField.textContent = barcode ?? '';\n\t}\n\n\ttoggleAddButton(disable = true) {\n\t\tconst productForm = document.getElementById(`product-form-${this.dataset.section}`);\n\t\tif (!productForm) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst addButton = productForm.querySelector('[name=\"add\"]');\n\n\t\tif (!addButton) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (disable) {\n\t\t\taddButton.setAttribute('disabled', 'disabled');\n\t\t} else {\n\t\t\taddButton.removeAttribute('disabled');\n\t\t}\n\t}\n\n\tsetUnavailable() {\n\t\tconst form = document.getElementById(`product-form-${this.dataset.section}`);\n\t\tconst addButton = form.querySelector('[name=\"add\"]');\n\t\tconst addButtonText = form.querySelector('[name=\"add\"] > span');\n\t\tconst price = document.getElementById(`price-${this.dataset.section}`);\n\t\tconst product = document.getElementById(`Product-${this.dataset.section}`);\n\n\t\tif (!addButton) {\n\t\t\treturn;\n\t\t}\n\n\t\taddButtonText.textContent = window.variantStrings.unavailable;\n\n\t\tif (price) {\n\t\t\tprice.classList.add('visibility-hidden');\n\t\t}\n\t}\n\n\tnormalizeProductVariants(payload) {\n\t\tif (Array.isArray(payload)) {\n\t\t\treturn payload;\n\t\t}\n\n\t\tif (payload && Array.isArray(payload.v) && Array.isArray(payload.o)) {\n\t\t\tconst optionValues = payload.o;\n\t\t\tconst optionCount = optionValues.length;\n\t\t\treturn payload.v.map(row => {\n\t\t\t\tconst options = optionValues.map((values, index) => values[row[1 + index]] || '');\n\t\t\t\tconst baseIndex = 1 + optionCount;\n\t\t\t\treturn {\n\t\t\t\t\tid: row[0],\n\t\t\t\t\toption1: options[0] || '',\n\t\t\t\t\toption2: options[1] || '',\n\t\t\t\t\toption3: options[2] || '',\n\t\t\t\t\toptions,\n\t\t\t\t\tavailable: !!row[baseIndex],\n\t\t\t\t\tsku: row[baseIndex + 1] || '',\n\t\t\t\t\tbarcode: row[baseIndex + 2] || '',\n\t\t\t\t\tfeatured_media: row[baseIndex + 3] ? { id: row[baseIndex + 3] } : null,\n\t\t\t\t};\n\t\t\t});\n\t\t}\n\n\t\tif (payload && Array.isArray(payload.v)) {\n\t\t\treturn payload.v.map(row => ({\n\t\t\t\tid: row[0],\n\t\t\t\toption1: row[1] || '',\n\t\t\t\toption2: row[2] || '',\n\t\t\t\toption3: row[3] || '',\n\t\t\t\toptions: [row[1], row[2], row[3]].filter(value => value != null && value !== ''),\n\t\t\t\tavailable: !!row[4],\n\t\t\t\tsku: row[5] || '',\n\t\t\t\tbarcode: row[6] || '',\n\t\t\t\tfeatured_media: row[7] ? { id: row[7] } : null,\n\t\t\t}));\n\t\t}\n\n\t\treturn [];\n\t}\n\n\tgetProductData() {\n\t\tthis.productData = this.productData || {\n\t\t\toptions: JSON.parse(this.querySelector('[type=\"application/json\"][data-id=\"product-options\"]').textContent),\n\t\t\tvariants: this.normalizeProductVariants(JSON.parse(this.querySelector('[type=\"application/json\"][data-id=\"product-variants\"]').textContent)),\n\t\t}\n\n\t\tif (this.nodeName === 'VARIANT-RADIOS') {\n\t\t\tthis.productData.swatches = JSON.parse(this.querySelector('[type=\"application/json\"][data-id=\"product-swatches\"]').textContent);\n\t\t}\n\n\t\treturn this.productData;\n\t}\n\n\tgetVariantData() {\n\t\tthis.variantData = this.variantData || this.getProductData().variants;\n\t\treturn this.variantData;\n\t}\n}\n\nif (!customElements.get('variant-selects')) {\n\tcustomElements.define('variant-selects', VariantSelects);\n}\n\nclass VariantRadios extends VariantSelects {\n\tconstructor() {\n\t\tsuper();\n\n\t\tif (this.tagName === 'VARIANT-RADIOS') {\n\t\t\tthis.fieldsets = this.querySelectorAll('fieldset');\n\t\t\tthis.fieldsets.forEach(fieldset => {\n\t\t\t\tfieldset.addEventListener('change', this.onRadioChange.bind(this));\n\t\t\t});\n\n\t\t\tif (this.fieldsets[0] != null) {\n\t\t\t\tthis.onRadioChange();\n\t\t\t}\n\t\t}\n\t}\n\n\tonRadioChange() {\n\t\tthis.updateRadiosInFieldset(0);\n\n\t\tif (this.product.options.length > 1) {\n\t\t\tthis.updateRadiosInFieldset(1);\n\t\t}\n\n\t\tif (this.product.options.length === 3) {\n\t\t\tthis.updateRadiosInFieldset(2);\n\t\t}\n\t}\n\n\tgetFieldsetCheckedValue(fieldset) {\n\t\treturn Array.from(fieldset.querySelectorAll('input')).find((radio) => radio.checked).value\n\t}\n\n\tupdateRadiosInFieldset(selectorIndex) {\n\t\tconst selector = this.fieldsets[selectorIndex];\n\t\tconst optionName = selector.dataset.optionName;\n\t\tconst originalValue = this.getFieldsetCheckedValue(selector);\n\n\t\tselector.replaceChildren();\n\n\t\tlet key = 'root';\n\t\tif (selectorIndex === 1) {\n\t\t\tconst value0 = this.getFieldsetCheckedValue(this.fieldsets[0]);\n\t\t\tkey = value0;\n\t\t} else if (selectorIndex === 2) {\n\t\t\tconst value0 = this.getFieldsetCheckedValue(this.fieldsets[0]);\n\t\t\tconst value1 = this.getFieldsetCheckedValue(this.fieldsets[1]);\n\t\t\tkey = value0 + ' / ' + value1;\n\t\t}\n\n\t\tconst legend = document.createElement('legend');\n\t\tlegend.textContent = optionName;\n\t\tselector.append(legend);\n\n\t\tconst availableOptions = this.optionsMap[key];\n\t\tconst outOfStockOptions = this.outOfStockOptionsMap[key];\n\n\t\tlet checkFirst = false;\n\t\tif (!availableOptions.includes(originalValue)) {\n\t\t\tcheckFirst = true;\n\t\t}\n\n\t\tfor (let i = 0; i < availableOptions.length; i++) {\n\t\t\tconst option = availableOptions[i];\n\t\t\tconst id = `${this.dataset.section}-${selectorIndex}-${i}`;\n\n\t\t\tconst newLabel = document.createElement('label');\n\t\t\tnewLabel.value = option;\n\t\t\tnewLabel.htmlFor = id;\n\t\t\tnewLabel.textContent = option;\n\n\t\t\tif (this.nodeName === 'VARIANT-RADIOS' && this.productData.swatches?.swatches_on_products && this.productData.swatches?.swatches[option] && this.productData.swatches.swatches_options?.includes(optionName)) {\n\t\t\t\tconst color = this.productData.swatches.swatches[option].color;\n\t\t\t\tconst image = this.productData.swatches.swatches[option].image;\n\t\t\t\tnewLabel.dataset.tooltip = option;\n\n\t\t\t\tif (image) {\n\t\t\t\t\tnewLabel.dataset.image = image;\n\t\t\t\t\tnewLabel.style.backgroundImage = 'url(' + image + ')';\n\t\t\t\t} else if (color) {\n\t\t\t\t\tnewLabel.dataset.color = color;\n\t\t\t\t\tnewLabel.style.backgroundColor = color;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst newOption = document.createElement('input');\n\t\t\tnewOption.id = id;\n\t\t\tnewOption.type = 'radio';\n\t\t\tnewOption.name = optionName;\n\t\t\tnewOption.value = option;\n\t\t\tnewOption.setAttribute('form', this.formId);\n\n\t\t\tif (originalValue === option || checkFirst) {\n\t\t\t\tnewOption.checked = true;\n\t\t\t\tcheckFirst = false;\n\t\t\t}\n\n\t\t\tif (this.disableOutOfStock && outOfStockOptions?.includes(option)) {\n\t\t\t\tnewOption.disabled = 'true';\n\t\t\t}\n\n\t\t\tselector.append(newOption);\n\t\t\tselector.append(newLabel);\n\t\t\tselector.append(document.createTextNode(' '));\n\t\t}\n\t}\n\n\tupdateOptions() {\n\t\tconst fieldsets = Array.from(this.querySelectorAll('fieldset'));\n\t\tthis.options = fieldsets.map((fieldset) => {\n\t\t\treturn Array.from(fieldset.querySelectorAll('input')).find((radio) => radio.checked).value;\n\t\t});\n\t}\n}\n\ncustomElements.define('variant-radios', VariantRadios);\n\n// Product card\n//\n\nclass ProductCard extends HTMLElement {\n\tconstructor() {\n\t\tsuper();\n\t\tthis.colorSwatches = this.querySelectorAll('.card-product-color-swatch');\n\t\tthis.productLinks = this.querySelectorAll('a.js-product-link');\n\n\t\tthis.colorSwatches.forEach(colorSwatch => {\n\t\t\tcolorSwatch.addEventListener('click', event => {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tthis.handleColorSwatchClick(colorSwatch);\n\t\t\t});\n\n\t\t\tcolorSwatch.addEventListener('mouseover', () => {\n\t\t\t\tthis.handleColorSwatchMouseOver(colorSwatch);\n\t\t\t});\n\t\t});\n\t}\n\n\thandleColorSwatchClick(colorSwatch) {\n\t\t// Set the color swatch to active\n\t\tthis.colorSwatches.forEach(x => x.classList.remove('is-active'));\n\t\tcolorSwatch.classList.add('is-active');\n\n\t\t// Change all links to point to the new URL\n\t\tthis.productLinks.forEach(productLink => {\n\t\t\tproductLink.setAttribute('href', colorSwatch.getAttribute('href'));\n\t\t});\n\n\t\t// Change the image\n\t\tconst variantImageTemplate = colorSwatch.querySelector('.card-media-image');\n\t\tconst mainImage = this.querySelector('.card-media img:first-child');\n\t\tif (variantImageTemplate && mainImage) {\n\t\t\tconst variantImage = variantImageTemplate.cloneNode(true);\n\t\t\tvariantImage.classList.remove('card-variant-image');\n\t\t\tmainImage.replaceWith(variantImage);\n\t\t}\n\t}\n\n\thandleColorSwatchMouseOver(colorSwatch) {\n\t\tconst image = colorSwatch.querySelector('.card-media-image');\n\n\t\t// Preload the image on mouseover\n\t\tif (image) {\n\t\t\timage.style.display = 'inline-block'\n\t\t\timage.setAttribute('loading', '');\n\t\t}\n\t}\n}\n\ncustomElements.define('product-card', ProductCard);\n\n// Expandable list\n//\nclass ExpandableList extends HTMLElement {\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis.elements = {\n\t\t\troot: this.querySelector('ul'),\n\t\t\texpandableNavs: this.querySelectorAll('.has-sub-menu')\n\t\t};\n\n\t\tif (!this.elements.expandableNavs.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.elements.expandableNavs.forEach((nav) => {\n\t\t\tconst navLink = nav.querySelector('a');\n\t\t\tnavLink.addEventListener('click', this.onToggle.bind(this, nav));\n\t\t});\n\t}\n\n\tonToggle(navElement, event) {\n\t\tevent.preventDefault();\n\t\tevent.stopImmediatePropagation();\n\n\t\tconst submenu = navElement.querySelector('ul');\n\t\tconst closeOthers = this.getAttribute('close-others');\n\t\tconst isExpanded = submenu.getAttribute('aria-expanded') === 'true';\n\n\t\tif (isExpanded) {\n\t\t\tthis.onContract(navElement)\n\t\t} else {\n\t\t\tthis.onExpand(navElement);\n\n\t\t\tif (closeOthers) {\n\t\t\t\tconst closestRoot = navElement.closest('ul');\n\t\t\t\tconst siblings = [...closestRoot.querySelectorAll(':scope > .has-sub-menu')].filter(item => {\n\t\t\t\t\treturn item !== navElement;\n\t\t\t\t});\n\t\t\t\tsiblings.forEach(this.onContract);\n\t\t\t}\n\t\t}\n\t}\n\n\tonExpand(element) {\n\t\tconst submenu = element.querySelector('ul');\n\t\telement.classList.add('is-expanded');\n\t\tsubmenu.setAttribute('aria-expanded', 'true');\n\t}\n\n\tonContract(element) {\n\t\tconst submenu = element.querySelector('ul');\n\t\telement.classList.remove('is-expanded');\n\t\tsubmenu.setAttribute('aria-expanded', 'false');\n\t}\n}\n\ncustomElements.define('expandable-list', ExpandableList);\n\n// Quantity Input\n//\nclass QuantityInput extends HTMLElement {\n\tconstructor() {\n\t\tsuper();\n\t\tthis.input = this.querySelector('input');\n\t\tthis.changeEvent = new Event('change', { bubbles: true });\n\n\t\tthis.querySelectorAll('button').forEach(\n\t\t\t(button) => button.addEventListener('click', this.onButtonClick.bind(this))\n\t\t);\n\t}\n\n\tonButtonClick(event) {\n\t\tevent.preventDefault();\n\t\tconst previousValue = this.input.value;\n\n\t\tevent.target.name === 'plus' ? this.input.stepUp() : this.input.stepDown();\n\t\tif (previousValue !== this.input.value) {\n\t\t\tthis.input.dispatchEvent(this.changeEvent);\n\n\t\t\tconst event = new CustomEvent('product:quantity-update', {\n\t\t\t\tdetail: {\n\t\t\t\t\tquantity: Number(this.input.value),\n\t\t\t\t}\n\t\t\t});\n\t\t\tdocument.dispatchEvent(event);\n\t\t}\n\t}\n}\n\ncustomElements.define('quantity-input', QuantityInput);\n\nclass CartRemoveButton extends HTMLElement {\n\tconstructor() {\n\t\tsuper();\n\t\tthis.addEventListener('click', (event) => {\n\t\t\tevent.preventDefault();\n\t\t\tconst cartItems = this.closest('cart-items');\n\t\t\tconst miniCart = this.closest('mini-cart');\n\n\t\t\tif (cartItems) {\n\t\t\t\tcartItems.updateQuantity(this.dataset.index, 0);\n\t\t\t}\n\n\t\t\tif (miniCart) {\n\t\t\t\tminiCart.updateQuantity(this.dataset.index, 0);\n\t\t\t}\n\t\t});\n\t}\n}\n\ncustomElements.define('cart-remove-button', CartRemoveButton);\n\nclass CartItems extends HTMLElement {\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis.eventContext = this.dataset.eventContext;\n\t\tthis.lineItemStatusElement = document.getElementById('shopping-cart-line-item-status');\n\n\t\tthis.currentItemCount = Array.from(this.querySelectorAll('[name=\"updates[]\"]'))\n\t\t\t.reduce((total, quantityInput) => total + parseInt(quantityInput.value), 0);\n\n\t\tthis.debouncedOnChange = debounce((event) => {\n\t\t\tthis.onChange(event);\n\t\t}, 500);\n\n\t\tthis.addEventListener('change', this.debouncedOnChange.bind(this));\n\t}\n\n\tonChange(event) {\n\t\tthis.updateQuantity(event.target.dataset.index, event.target.value, document.activeElement.getAttribute('name'));\n\t}\n\n\tgetSectionsToRender() {\n\t\treturn [\n\t\t\t{\n\t\t\t\tid: 'cart-page-title-wrap',\n\t\t\t\tsection: document.getElementById('cart-page-title-wrap').dataset.id,\n\t\t\t\tselector: '.page-title-wrap',\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 'main-cart-items',\n\t\t\t\tsection: document.getElementById('main-cart-items').dataset.id,\n\t\t\t\tselector: '.js-contents',\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 'header',\n\t\t\t\tsection: 'header',\n\t\t\t\tselector: '.head-slot-cart-link'\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 'cart-live-region-text',\n\t\t\t\tsection: 'cart-live-region-text',\n\t\t\t\tselector: '.shopify-section'\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 'main-cart-footer',\n\t\t\t\tsection: document.getElementById('main-cart-footer').dataset.id,\n\t\t\t\tselector: '.js-contents',\n\t\t\t}\n\t\t];\n\t}\n\n\tupdateQuantity(line, quantity, name) {\n\t\tthis.enableLoading(line);\n\n\t\tconst body = JSON.stringify({\n\t\t\tline,\n\t\t\tquantity,\n\t\t\tsections: this.getSectionsToRender().map((section) => section.section),\n\t\t\tsections_url: window.location.pathname\n\t\t});\n\n\t\tfetch(`${routes.cart_change_url}`, {...fetchConfig(), ...{ body }})\n\t\t\t.then((response) => {\n\t\t\t\treturn response.text();\n\t\t\t})\n\t\t\t.then(async (state) => {\n\t\t\t\tconst parsedState = JSON.parse(state);\n\t\t\t\tconst quantityElement = document.getElementById(`quantity-input-${line}`) || document.getElementById(`Mini-Cart-Quantity-${line}`)\n\t\t\t\tconst items = document.querySelectorAll('.js-cart-item');\n\n\t\t\t\tif (parsedState.errors) {\n\t\t\t\t\tawait this.updateSectionContents();\n\t\t\t\t\tthis.updateLiveRegions(line, parsedState.errors);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthis.classList.toggle('is-empty', parsedState.item_count === 0);\n\t\t\t\tconst cartFooter = document.getElementById('main-cart-footer');\n\n\t\t\t\tif (cartFooter) {\n\t\t\t\t\tcartFooter.classList.toggle('is-empty', parsedState.item_count === 0);\n\t\t\t\t}\n\n\t\t\t\tthis.getSectionsToRender().forEach((section => {\n\t\t\t\t\tconst elementToReplace =\n\t\t\t\t\t\tdocument.getElementById(section.id).querySelector(section.selector) || document.getElementById(section.id);\n\n\t\t\t\t\telementToReplace.innerHTML =\n\t\t\t\t\t\tthis.getSectionInnerHTML(parsedState.sections[section.section], section.selector);\n\t\t\t\t}));\n\n\t\t\t\tconst updatedValue = parsedState.items[line - 1] ? parsedState.items[line - 1].quantity : undefined;\n\t\t\t\tlet message = ''\n\t\t\t\tif (items.length === parsedState.items.length && updatedValue !== parseInt(quantityElement.value)) {\n\t\t\t\t\tif (typeof updatedValue === 'undefined') {\n\t\t\t\t\t\tmessage = window.cartStrings.error;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmessage = window.cartStrings.quantityError.replace('[quantity]', updatedValue);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis.updateLiveRegions(line, message);\n\n\t\t\t\tconst lineItem = document.getElementById(`CartItem-${line}`) || document.getElementById(`MiniCartItem-${line}`);\n\t\t\t\tif (lineItem && lineItem.querySelector(`[name=\"${name}\"]`)) {\n\t\t\t\t\tlineItem.querySelector(`[name=\"${name}\"]`).focus();\n\t\t\t\t}\n\n\t\t\t\tif (quantity === 0) {\n\t\t\t\t\tconst event = new CustomEvent('cart:item-remove', {\n\t\t\t\t\t\tdetail: {\n\t\t\t\t\t\t\tcart: parsedState,\n\t\t\t\t\t\t\tcontext: this.eventContext,\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tdocument.dispatchEvent(event);\n\t\t\t\t} else {\n\t\t\t\t\tconst event = new CustomEvent('cart:item-quantity-update', {\n\t\t\t\t\t\tdetail: {\n\t\t\t\t\t\t\tcart: parsedState,\n\t\t\t\t\t\t\tcontext: this.eventContext,\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tdocument.dispatchEvent(event);\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(() => {\n\t\t\t\tthis.setError(window.cartStrings.error);\n\t\t\t})\n\t\t\t.finally(() => {\n\t\t\t\tthis.disableLoading();\n\t\t\t});\n\t}\n\n\tsetError(error) {\n\t\tdocument.getElementById('cart-errors').textContent = error;\n\t}\n\n\tupdateLiveRegions(line, message) {\n\t\tconst lineItemError = document.getElementById(`Line-item-error-${line}`);\n\n\t\tif (lineItemError) {\n\t\t\tlineItemError.querySelector('.cart-item-error-text').innerHTML = message;\n\t\t}\n\n\t\tthis.lineItemStatusElement.setAttribute('aria-hidden', true);\n\n\t\tconst cartStatus = document.getElementById('cart-live-region-text');\n\t\tcartStatus.setAttribute('aria-hidden', false);\n\n\t\tsetTimeout(() => {\n\t\t\tcartStatus.setAttribute('aria-hidden', true);\n\t\t}, 1000);\n\t}\n\n\tupdateSectionContents() {\n\t\treturn fetch(`${window.location.pathname}?sections=${this.getSectionsToRender().map((section) => section.section).join(',')}&v=${Date.now()}`).then(response => {\n\t\t\treturn response.json();\n\t\t}).then(response => {\n\t\t\tthis.getSectionsToRender().forEach((section => {\n\t\t\t\tconst elementToReplace =\n\t\t\t\t\tdocument.getElementById(section.id).querySelector(section.selector) || document.getElementById(section.id);\n\n\t\t\t\telementToReplace.innerHTML =\n\t\t\t\t\tthis.getSectionInnerHTML(response[section.section], section.selector);\n\t\t\t}));\n\t\t})\n\t}\n\n\tgetSectionInnerHTML(html, selector) {\n\t\treturn new DOMParser()\n\t\t\t.parseFromString(html, 'text/html')\n\t\t\t.querySelector(selector).innerHTML;\n\t}\n\n\tenableLoading(line) {\n\t\tdocument.getElementById('main-cart-items').classList.add('cart-items-disabled');\n\t\tthis.querySelectorAll(`#CartItem-${line} .cart-item-loading-overlay`).forEach((overlay) => overlay.classList.remove('hidden'));\n\t\tdocument.activeElement.blur();\n\t\tthis.lineItemStatusElement.setAttribute('aria-hidden', false);\n\t}\n\n\tdisableLoading() {\n\t\tdocument.getElementById('main-cart-items').classList.remove('cart-items-disabled');\n\t\tthis.querySelectorAll('.cart-item-loading-overlay').forEach((overlay) => overlay.classList.add('hidden'));\n\t}\n}\n\ncustomElements.define('cart-items', CartItems);\n\nclass MiniCart extends CartItems {\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis.toggle = this.querySelector('drawer-toggle');\n\t}\n\n\tconnectedCallback() {\n\t\t// PERF-MINICART-INITIAL-SECTIONS-HEADER-20260625: avoid a header sections fetch on page load; refresh when the header cart link is opened.\n\t\tthis.hasLoadedSectionContents = false;\n\t\tdocument.querySelectorAll('.head-slot-cart-link').forEach((toggle) => {\n\t\t\ttoggle.addEventListener('click', this.refreshSectionContentsOnce.bind(this));\n\t\t});\n\t}\n\n\trefreshSectionContentsOnce() {\n\t\tif (this.hasLoadedSectionContents) return;\n\t\tthis.hasLoadedSectionContents = true;\n\n\t\tconst refresh = this.updateSectionContents();\n\t\tif (refresh && typeof refresh.catch === 'function') {\n\t\t\trefresh.catch(() => {\n\t\t\t\tthis.hasLoadedSectionContents = false;\n\t\t\t});\n\t\t}\n\t}\n\n\topen(opener) {\n\t\tthis.toggle.open(opener);\n\t\tthis.refreshSectionContentsOnce();\n\t}\n\n\tclose() {\n\t\tthis.toggle.close();\n\t}\n\n\tgetSectionsToRender() {\n\t\treturn [\n\t\t\t{\n\t\t\t\tid: 'header',\n\t\t\t\tsection: 'header',\n\t\t\t\tselector: '.head-slot-cart-link'\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 'header-mini-cart-content',\n\t\t\t\tsection: 'header-mini-cart-content',\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 'header-mini-cart-footer',\n\t\t\t\tsection: 'header-mini-cart-footer',\n\t\t\t},\n\t\t]\n\t}\n\n\tgetSectionInnerHTML(html, selector = '.shopify-section') {\n\t\treturn new DOMParser()\n\t\t\t.parseFromString(html, 'text/html')\n\t\t\t.querySelector(selector).innerHTML;\n\t}\n\n\trenderContents(parsedState) {\n\t\tthis.getSectionsToRender().forEach((section => {\n\t\t\tconst elementToReplace =\n\t\t\t\tdocument.getElementById(section.id).querySelector(section.selector) || document.getElementById(section.id);\n\n\t\t\telementToReplace.innerHTML =\n\t\t\t\tthis.getSectionInnerHTML(parsedState.sections[section.section], section.selector);\n\t\t}));\n\t\tthis.currentItemCount = Array.from(this.querySelectorAll('[name=\"updates[]\"]'))\n\t\t\t.reduce((total, quantityInput) => total + parseInt(quantityInput.value), 0);\n\t}\n\n\tsetError(error) {\n\t\tdocument.getElementById('mini-cart-error').textContent = error;\n\t}\n\n\tenableLoading() {\n\t\tthis.querySelector('.mini-cart-wrap').classList.add('loading');\n\t}\n\n\tdisableLoading() {\n\t\tthis.querySelector('.mini-cart-wrap').classList.remove('loading');\n\t}\n\n\tupdateLiveRegions(line, message) {\n\t\tconst lineItemError = document.getElementById(`MiniCart-Line-item-error-${line}`);\n\n\t\tif (lineItemError) {\n\t\t\tlineItemError.querySelector('.cart-item-error-text').innerHTML = message;\n\t\t}\n\t}\n}\n\ncustomElements.define('mini-cart', MiniCart);\n\n// Language & Country selectors.\n//\nclass LocalizationForm extends HTMLElement {\n\tconstructor() {\n\t\tsuper();\n\t\tthis.elements = {\n\t\t\tinput: this.querySelector('input[name=\"locale_code\"], input[name=\"country_code\"]'),\n\t\t\tbutton: this.querySelector('button'),\n\t\t\tdropdown: this.querySelector('.dropdown'),\n\t\t\tpanel: this.querySelector('.dropdown-list-wrap'),\n\t\t};\n\t\tthis.elements.button.addEventListener('click', this.openSelector.bind(this));\n\t\tthis.elements.button.addEventListener('focusout', this.closeSelector.bind(this));\n\t\tthis.addEventListener('keyup', this.onContainerKeyUp.bind(this));\n\n\t\tthis.querySelectorAll('a').forEach(item => item.addEventListener('click', this.onItemClick.bind(this)));\n\t}\n\n\thidePanel() {\n\t\tthis.elements.button.blur();\n\t\tthis.elements.button.setAttribute('aria-expanded', 'false');\n\t\tthis.elements.panel.setAttribute('aria-hidden', 'true');\n\t}\n\n\tonContainerKeyUp(event) {\n\t\tif (event.code.toUpperCase() !== 'ESCAPE') {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.hidePanel();\n\t\tthis.elements.button.focus();\n\t}\n\n\tonItemClick(event) {\n\t\tevent.preventDefault();\n\t\tconst form = this.querySelector('form');\n\t\tthis.elements.input.value = event.currentTarget.dataset.value;\n\t\tif (form) {\n\t\t\tform.submit();\n\t\t}\n\t}\n\n\ttoggleSelector() {\n\t\tif (this.isOpen()) {\n\t\t\tthis.hidePanel();\n\t\t\treturn;\n\t\t}\n\n\t\tthis.elements.button.focus();\n\t\tthis.elements.panel.setAttribute('aria-hidden', 'false');\n\t\tthis.elements.button.setAttribute('aria-expanded', 'true');\n\t}\n\n\tisOpen() {\n\t\treturn this.elements.panel.getAttribute('aria-hidden') === 'false';\n\t}\n\n\topenSelector() {\n\t\tthis.elements.button.focus();\n\t\tthis.elements.panel.setAttribute('aria-hidden', (this.elements.button.getAttribute('aria-hidden') === 'true'));\n\t\tthis.elements.button.setAttribute('aria-expanded', (this.elements.button.getAttribute('aria-expanded') === 'false').toString());\n\t}\n\n\tcloseSelector(event) {\n\t\tconst shouldClose = event.relatedTarget && (event.relatedTarget.nodeName === 'BUTTON' || event.relatedTarget.nodeName === 'MAIN');\n\t\tif (event.relatedTarget === null || shouldClose) {\n\t\t\tthis.hidePanel();\n\t\t}\n\t}\n}\n\ncustomElements.define('localization-form', LocalizationForm);\n\nclass TabsComponent extends HTMLElement {\n\tconstructor() {\n\t\tsuper();\n\t}\n\n\tsetActiveTab(handle) {\n\t\tthis.querySelectorAll('[data-handle]').forEach(tab => {\n\t\t\ttab.setAttribute('aria-hidden', 'true');\n\n\t\t\tif (tab.getAttribute('data-handle') === handle) {\n\t\t\t\tconst carouselComponent = tab.querySelector('carousel-slider');\n\t\t\t\ttab.setAttribute('aria-hidden', 'false');\n\n\t\t\t\tif (carouselComponent) {\n\t\t\t\t\tcarouselComponent.flickity.resize();\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n}\n\ncustomElements.define('tabs-component', TabsComponent);\n\nclass TabsNavigation extends HTMLElement {\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis.sliderId = this.getAttribute('for');\n\t\tthis.navs = this.querySelectorAll('a, button');\n\t\tthis.navs.forEach(nav => {\n\t\t\tnav.addEventListener('click', this.onNavigationClick.bind(this, nav));\n\t\t});\n\t}\n\n\tonNavigationClick(element, event) {\n\t\tevent.preventDefault();\n\t\tthis.setActiveTab(element);\n\t}\n\n\tsetActiveTab(nav) {\n\t\tconst target = nav.getAttribute('data-handle');\n\t\tconst tabsComponent = document.querySelector(`#${this.sliderId}`);\n\n\t\tif (!tabsComponent) {\n\t\t\treturn;\n\t\t}\n\n\t\ttabsComponent.setActiveTab(target);\n\n\t\tthis.navs.forEach(element => {\n\t\t\tif (element === nav) {\n\t\t\t\telement.classList.add('is-active');\n\t\t\t} else {\n\t\t\t\telement.classList.remove('is-active');\n\t\t\t}\n\t\t});\n\t}\n}\n\ncustomElements.define('tabs-navigation', TabsNavigation);\n\nclass DeferredMedia extends HTMLElement {\n\tconstructor() {\n\t\tsuper();\n\t\tconst poster = this.querySelector('[id^=\"Deferred-Poster-\"]');\n\n\t\tif (!poster) {\n\t\t\treturn;\n\t\t}\n\n\t\tposter.addEventListener('click', this.loadContent.bind(this));\n\t}\n\n\tloadContent(focus = true) {\n\t\twindow.pauseAllMedia();\n\n\t\tif (!this.getAttribute('loaded')) {\n\t\t\tconst content = document.createElement('div');\n\t\t\tcontent.appendChild(this.querySelector('template').content.firstElementChild.cloneNode(true));\n\n\t\t\tthis.setAttribute('loaded', true);\n\t\t\tconst deferredElement = this.appendChild(content.querySelector('video, model-viewer, iframe'));\n\t\t\tif (focus) {\n\t\t\t\tdeferredElement.focus();\n\t\t\t}\n\t\t}\n\t}\n}\n\ncustomElements.define('deferred-media', DeferredMedia);\n\n// Drawers\n//\nclass DrawerModal extends HTMLElement {\n\tconstructor() {\n\t\tsuper();\n\t\tthis.bodyClass = this.getAttribute('body-class');\n\t\tthis.isOpen = false;\n\t\tthis.eventPrefix = this.dataset.eventPrefix;\n\n\t\tthis.addEventListener('keyup', (event) => {\n\t\t\tif (event.code.toUpperCase() === 'ESCAPE') {\n\t\t\t\tif (this.isOpen) {\n\t\t\t\t\tthis.close();\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\topen(opener) {\n\t\tthis.isOpen = true;\n\t\tthis.openedBy = opener;\n\t\tdocument.body.classList.add(this.bodyClass);\n\t\tdocument.body.classList.add('drawer-open');\n\n\t\tif (this.eventPrefix) {\n\t\t\tconst event = new CustomEvent(`${this.eventPrefix}:open`);\n\t\t\tdocument.dispatchEvent(event);\n\t\t}\n\t}\n\n\tclose() {\n\t\tthis.isOpen = false;\n\t\tdocument.body.classList.remove(this.bodyClass);\n\t\tdocument.body.classList.remove('drawer-open');\n\n\t\tif (this.openedBy) {\n\t\t\tremoveTrapFocus(this.openedBy);\n\t\t}\n\n\t\tif (this.eventPrefix) {\n\t\t\tconst event = new CustomEvent(`${this.eventPrefix}:close`);\n\t\t\tdocument.dispatchEvent(event);\n\t\t}\n\t}\n}\n\ncustomElements.define('drawer-modal', DrawerModal);\n\nclass DrawerToggle extends HTMLElement {\n\tconstructor() {\n\t\tsuper();\n\t\tthis.toggleElement = this.querySelector('a') || this.querySelector('button');\n\t\tthis.bodyClass = this.getAttribute('body-class');\n\t\tthis.preventOpen = this.getAttribute('prevent-open') === 'true';\n\t\tthis.eventPrefix = this.dataset.eventPrefix;\n\n\t\tif (this.preventOpen) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.toggleElement.addEventListener('click', (event) => {\n\t\t\tevent.preventDefault();\n\t\t\tthis.handleToggle();\n\t\t});\n\t}\n\n\thandleToggle(opener) {\n\t\tconst drawer = document.querySelector(`#${this.getAttribute('for')}`);\n\n\t\tif (drawer.isOpen) {\n\t\t\tthis.close();\n\t\t} else {\n\t\t\tthis.open(opener);\n\t\t}\n\t}\n\n\topen(opener) {\n\t\tconst drawer = document.querySelector(`#${this.getAttribute('for')}`);\n\n\t\tif (drawer) {\n\t\t\tdrawer.open(opener || this.toggleElement);\n\t\t\tconst drawerHeader = drawer.querySelector('.drawer-header');\n\t\t\ttrapFocus(drawer, drawerHeader);\n\t\t}\n\t}\n\n\tclose() {\n\t\tconst drawer = document.querySelector(`#${this.getAttribute('for')}`);\n\n\t\tif (drawer && drawer.close && drawer.isOpen) {\n\t\t\tdrawer.close();\n\t\t}\n\t}\n}\n\ncustomElements.define('drawer-toggle', DrawerToggle);\n\ndocument.body.addEventListener('click', (event) => {\n\tif (!document.body.classList.contains('drawer-open')) {\n\t\treturn;\n\t}\n\n\tif (event.target.closest('.drawer')) {\n\t\treturn;\n\t}\n\n\tif (event.target.closest('drawer-toggle')) {\n\t\treturn;\n\t}\n\n\t// Close all drawers\n\t[...document.querySelectorAll('.drawer')].forEach((drawer) => {\n\t\tconst dismiss = drawer.querySelector('drawer-toggle');\n\n\t\tif (dismiss) {\n\t\t\tdismiss.close();\n\t\t}\n\t});\n});\n\n// Focus trap\nfunction getFocusableElements(container) {\n\treturn Array.from(\n\t\tcontainer.querySelectorAll(\n\t\t\t\"summary, a[href], button:enabled, [tabindex]:not([tabindex^='-']), [draggable], area, input:not([type=hidden]):enabled, select:enabled, textarea:enabled, object, iframe\"\n\t\t)\n\t);\n}\n\nconst trapFocusHandlers = {};\n\nfunction trapFocus(container, elementToFocus = container) {\n\tvar elements = getFocusableElements(container);\n\tvar first = elements[0];\n\tvar last = elements[elements.length - 1];\n\n\tremoveTrapFocus();\n\n\ttrapFocusHandlers.focusin = (event) => {\n\t\tif (\n\t\t\tevent.target !== container &&\n\t\t\tevent.target !== last &&\n\t\t\tevent.target !== first\n\t\t)\n\t\t\treturn;\n\n\t\tdocument.addEventListener('keydown', trapFocusHandlers.keydown);\n\t};\n\n\ttrapFocusHandlers.focusout = function () {\n\t\tdocument.removeEventListener('keydown', trapFocusHandlers.keydown);\n\t};\n\n\ttrapFocusHandlers.keydown = function (event) {\n\t\tif (event.code.toUpperCase() !== 'TAB') return; // If not TAB key\n\t\t// On the last focusable element and tab forward, focus the first element.\n\t\tif (event.target === last && !event.shiftKey) {\n\t\t\tevent.preventDefault();\n\t\t\tfirst.focus();\n\t\t}\n\n\t\t//  On the first focusable element and tab backward, focus the last element.\n\t\tif (\n\t\t\t(event.target === container || event.target === first) &&\n\t\t\tevent.shiftKey\n\t\t) {\n\t\t\tevent.preventDefault();\n\t\t\tlast.focus();\n\t\t}\n\t};\n\n\tdocument.addEventListener('focusout', trapFocusHandlers.focusout);\n\tdocument.addEventListener('focusin', trapFocusHandlers.focusin);\n\n\telementToFocus.focus();\n}\n\n// Here run the querySelector to figure out if the browser supports :focus-visible or not and run code based on it.\ntry {\n\tdocument.querySelector(\":focus-visible\");\n} catch {\n\tfocusVisiblePolyfill();\n}\n\nfunction focusVisiblePolyfill() {\n\tconst navKeys = ['ARROWUP', 'ARROWDOWN', 'ARROWLEFT', 'ARROWRIGHT', 'TAB', 'ENTER', 'SPACE', 'ESCAPE', 'HOME', 'END', 'PAGEUP', 'PAGEDOWN']\n\tlet currentFocusedElement = null;\n\tlet mouseClick = null;\n\n\twindow.addEventListener('keydown', (event) => {\n\t\tif (navKeys.includes(event.code.toUpperCase())) {\n\t\t\tmouseClick = false;\n\t\t}\n\t});\n\n\twindow.addEventListener('mousedown', (event) => {\n\t\tmouseClick = true;\n\t});\n\n\twindow.addEventListener('focus', () => {\n\t\tif (currentFocusedElement) {\n\t\t\tcurrentFocusedElement.classList.remove('focused');\n\t\t}\n\n\t\tif (mouseClick) {\n\t\t\treturn;\n\t\t}\n\n\t\tcurrentFocusedElement = document.activeElement;\n\t\tcurrentFocusedElement.classList.add('focused');\n\n\t}, true);\n}\n\nfunction removeTrapFocus(elementToFocus = null) {\n\tdocument.removeEventListener('focusin', trapFocusHandlers.focusin);\n\tdocument.removeEventListener('focusout', trapFocusHandlers.focusout);\n\tdocument.removeEventListener('keydown', trapFocusHandlers.keydown);\n\n\tif (elementToFocus) {\n\t\telementToFocus.focus();\n\t}\n}\n\nfunction debounce(func, wait, immediate) {\n\tlet timeout;\n\n\treturn function executedFunction() {\n\t\tconst context = this;\n\t\tconst args = arguments;\n\n\t\tconst later = function () {\n\t\t\ttimeout = null;\n\t\t\tif (!immediate) func.apply(context, args);\n\t\t};\n\n\t\tconst callNow = immediate && !timeout;\n\t\tclearTimeout(timeout);\n\t\ttimeout = setTimeout(later, wait);\n\n\t\tif (callNow) {\n\t\t\tfunc.apply(context, args);\n\t\t}\n\t};\n}\n\nfunction fetchConfig(type = 'json') {\n\treturn {\n\t\tmethod: 'POST',\n\t\theaders: { 'Content-Type': 'application/json', 'Accept': `application/${type}` }\n\t};\n}\n\nfunction pauseAllMedia() {\n\tdocument.querySelectorAll('.js-youtube').forEach((video) => {\n\t\tvideo.contentWindow.postMessage('{\"event\":\"command\",\"func\":\"' + 'pauseVideo' + '\",\"args\":\"\"}', '*');\n\t});\n\tdocument.querySelectorAll('.js-vimeo').forEach((video) => {\n\t\tvideo.contentWindow.postMessage('{\"method\":\"pause\"}', '*');\n\t});\n\tdocument.querySelectorAll('video').forEach((video) => video.pause());\n\tdocument.querySelectorAll('product-model').forEach((model) => {\n\t\tif (model.modelViewerUI) {\n\t\t\tmodel.modelViewerUI.pause();\n\t\t}\n\t});\n}\n\n(function () {\n\t// We wrap each RTE table by a specific class to allow wrapping\n\tdocument.querySelectorAll('.rte table').forEach(function (table) {\n\t\ttable.outerHTML = '<div class=\"table-wrapper\">' + table.outerHTML + '</div>';\n\t});\n\tdocument.querySelectorAll('.rte iframe').forEach(function (iframe) {\n\t\t// We scope the wrapping only for YouTube and Vimeo\n\t\tif (iframe.src.indexOf('youtube') !== - 1 || iframe.src.indexOf('youtu.be') !== - 1 || iframe.src.indexOf('vimeo') !== - 1) {\n\t\t\tiframe.outerHTML = '<div class=\"video-wrapper\">' + iframe.outerHTML + '</div>'; // Re-set the src attribute on each iframe after page load for Chrome's \"incorrect iFrame content on 'back'\" bug.\n\t\t\t// https://code.google.com/p/chromium/issues/detail?id=395791. Need to specifically target video and admin bar\n\n\t\t\tiframe.src = iframe.src;\n\t\t}\n\t});\n})();\n\n\n/*\n * Shopify Common JS\n * Source: Dawn theme\n */\nif ((typeof window.Shopify) == 'undefined') {\n\twindow.Shopify = {};\n}\n\nShopify.bind = function(fn, scope) {\n\treturn function() {\n\t\treturn fn.apply(scope, arguments);\n\t}\n};\n\nShopify.setSelectorByValue = function(selector, value) {\n\tfor (var i = 0, count = selector.options.length; i < count; i++) {\n\t\tvar option = selector.options[i];\n\t\tif (value == option.value || value == option.innerHTML) {\n\t\t\tselector.selectedIndex = i;\n\t\t\treturn i;\n\t\t}\n\t}\n};\n\nShopify.addListener = function(target, eventName, callback) {\n\ttarget.addEventListener ? target.addEventListener(eventName, callback, false) : target.attachEvent('on'+eventName, callback);\n};\n\nShopify.postLink = function(path, options) {\n\toptions = options || {};\n\tvar method = options['method'] || 'post';\n\tvar params = options['parameters'] || {};\n\n\tvar form = document.createElement(\"form\");\n\tform.setAttribute(\"method\", method);\n\tform.setAttribute(\"action\", path);\n\n\tfor(var key in params) {\n\t\tvar hiddenField = document.createElement(\"input\");\n\t\thiddenField.setAttribute(\"type\", \"hidden\");\n\t\thiddenField.setAttribute(\"name\", key);\n\t\thiddenField.setAttribute(\"value\", params[key]);\n\t\tform.appendChild(hiddenField);\n\t}\n\tdocument.body.appendChild(form);\n\tform.submit();\n\tdocument.body.removeChild(form);\n};\n\nShopify.CountryProvinceSelector = function(country_domid, province_domid, options) {\n\tthis.countryEl         = document.getElementById(country_domid);\n\tthis.provinceEl        = document.getElementById(province_domid);\n\tthis.provinceContainer = document.getElementById(options['hideElement'] || province_domid);\n\n\tShopify.addListener(this.countryEl, 'change', Shopify.bind(this.countryHandler,this));\n\n\tthis.initCountry();\n\tthis.initProvince();\n};\n\nShopify.CountryProvinceSelector.prototype = {\n\tinitCountry: function() {\n\t\tvar value = this.countryEl.getAttribute('data-default');\n\t\tShopify.setSelectorByValue(this.countryEl, value);\n\t\tthis.countryHandler();\n\t},\n\n\tinitProvince: function() {\n\t\tvar value = this.provinceEl.getAttribute('data-default');\n\t\tif (value && this.provinceEl.options.length > 0) {\n\t\t\tShopify.setSelectorByValue(this.provinceEl, value);\n\t\t}\n\t},\n\n\tcountryHandler: function(e) {\n\t\tvar opt       = this.countryEl.options[this.countryEl.selectedIndex];\n\t\tvar raw       = opt.getAttribute('data-provinces');\n\t\tvar provinces = JSON.parse(raw);\n\n\t\tthis.clearOptions(this.provinceEl);\n\t\tif (provinces && provinces.length == 0) {\n\t\t\tthis.provinceContainer.style.display = 'none';\n\t\t} else {\n\t\t\tfor (var i = 0; i < provinces.length; i++) {\n\t\t\t\tvar opt = document.createElement('option');\n\t\t\t\topt.value = provinces[i][0];\n\t\t\t\topt.innerHTML = provinces[i][1];\n\t\t\t\tthis.provinceEl.appendChild(opt);\n\t\t\t}\n\n\t\t\tthis.provinceContainer.style.display = \"\";\n\t\t}\n\t},\n\n\tclearOptions: function(selector) {\n\t\twhile (selector.firstChild) {\n\t\t\tselector.removeChild(selector.firstChild);\n\t\t}\n\t},\n\n\tsetOptions: function(selector, values) {\n\t\tfor (var i = 0, count = values.length; i < values.length; i++) {\n\t\t\tvar opt = document.createElement('option');\n\t\t\topt.value = values[i];\n\t\t\topt.innerHTML = values[i];\n\t\t\tselector.appendChild(opt);\n\t\t}\n\t}\n};\n\n(function () {\n\t'use strict';\n\n\tif (window.__ulSeoEventsLoaded) return;\n\twindow.__ulSeoEventsLoaded = true;\n\n\tvar trackedExternalOrigins = ['www.unlimitedlights.com', 'unlimitedlights.com'];\n\n\tfunction pushEvent(eventName, parameters) {\n\t\twindow.dataLayer = window.dataLayer || [];\n\t\twindow.dataLayer.push(Object.assign({\n\t\t\tevent: eventName,\n\t\t\tsource_url: window.location.href\n\t\t}, parameters || {}));\n\t}\n\n\tfunction getAnchor(node) {\n\t\twhile (node && node !== document) {\n\t\t\tif (node.tagName && node.tagName.toLowerCase() === 'a') return node;\n\t\t\tnode = node.parentNode;\n\t\t}\n\t\treturn null;\n\t}\n\n\tfunction normalizeUrl(href) {\n\t\ttry {\n\t\t\treturn new URL(href, window.location.origin);\n\t\t} catch (error) {\n\t\t\treturn null;\n\t\t}\n\t}\n\n\tfunction isInternal(url) {\n\t\treturn url && (url.origin === window.location.origin || trackedExternalOrigins.indexOf(url.hostname) !== -1);\n\t}\n\n\tfunction cleanText(anchor) {\n\t\treturn (anchor.textContent || anchor.getAttribute('aria-label') || anchor.title || '').replace(/\\s+/g, ' ').trim().slice(0, 160);\n\t}\n\n\tfunction closestWithAttribute(node, attributeName) {\n\t\twhile (node && node !== document) {\n\t\t\tif (node.getAttribute && node.getAttribute(attributeName)) return node;\n\t\t\tnode = node.parentNode;\n\t\t}\n\t\treturn null;\n\t}\n\n\tfunction isSpecDownload(url) {\n\t\tvar pathname = (url.pathname || '').toLowerCase();\n\t\tvar href = url.href.toLowerCase();\n\t\treturn /\\.(pdf|ies|ldt|doc|docx|xls|xlsx)(\\?|$)/.test(pathname) || /(spec|cut[-_ ]?sheet|install|installation|ies|photometric)/.test(href);\n\t}\n\n\tfunction shouldTrackSeoCta(sourcePath, targetPath) {\n\t\tvar sourceIsContent = sourcePath.indexOf('/pages/learning-center') === 0\n\t\t\t|| sourcePath.indexOf('/pages/learning-center') === 0\n\t\t\t|| sourcePath.indexOf('/lighting-guide') === 0\n\t\t\t|| sourcePath.indexOf('/pages/') === 0;\n\t\tvar targetIsMoney = targetPath.indexOf('/collections/') === 0 || targetPath.indexOf('/products/') === 0;\n\t\treturn sourceIsContent && targetIsMoney;\n\t}\n\n\tfunction getContentGroup(sourcePath) {\n\t\tif (sourcePath.indexOf('/pages/learning-center') === 0 || sourcePath.indexOf('/lighting-guide') === 0) {\n\t\t\treturn 'lighting_guide';\n\t\t}\n\n\t\tif (sourcePath.indexOf('/pages/learning-center') === 0) {\n\t\t\treturn 'egress_knowledge_hub';\n\t\t}\n\n\t\treturn 'compliance_page';\n\t}\n\n\tfunction pushToolEvent(action, toolCard, targetUrl, targetPath, linkText) {\n\t\tvar eventMap = {\n\t\t\tstart: 'tool_start',\n\t\t\tcomplete: 'tool_complete',\n\t\t\trecommendation: 'tool_recommendation_click',\n\t\t\tquote_handoff: 'tool_quote_handoff'\n\t\t};\n\n\t\tvar eventName = eventMap[action];\n\t\tif (!eventName || !toolCard) return;\n\n\t\tpushEvent(eventName, {\n\t\t\ttool_name: toolCard.getAttribute('data-ul-tool-name') || '',\n\t\t\ttool_label: toolCard.getAttribute('data-ul-tool-label') || '',\n\t\t\ttarget_url: targetUrl,\n\t\t\ttarget_path: targetPath,\n\t\t\tlink_text: linkText\n\t\t});\n\t}\n\n\tdocument.addEventListener('click', function (event) {\n\t\tvar anchor = getAnchor(event.target);\n\t\tif (!anchor) return;\n\n\t\tvar url = normalizeUrl(anchor.getAttribute('href') || '');\n\t\tif (!url) return;\n\n\t\tvar linkText = cleanText(anchor);\n\t\tvar targetUrl = url.href;\n\t\tvar targetPath = url.pathname;\n\t\tvar toolCard = closestWithAttribute(anchor, 'data-ul-tool-name');\n\t\tvar toolAction = anchor.getAttribute('data-ul-tool-action') || '';\n\n\t\tpushToolEvent(toolAction, toolCard, targetUrl, targetPath, linkText);\n\n\t\tif (isInternal(url) && shouldTrackSeoCta(window.location.pathname, targetPath)) {\n\t\t\tpushEvent('seo_internal_cta_click', {\n\t\t\t\ttarget_url: targetUrl,\n\t\t\t\ttarget_path: targetPath,\n\t\t\t\tlink_text: linkText,\n\t\t\t\tcontent_group: getContentGroup(window.location.pathname)\n\t\t\t});\n\t\t}\n\n\t\tif (isSpecDownload(url)) {\n\t\t\tpushEvent('spec_sheet_download', {\n\t\t\t\tfile_url: targetUrl,\n\t\t\t\tfile_type: (targetPath.split('.').pop() || '').split('?')[0],\n\t\t\t\tlink_text: linkText\n\t\t\t});\n\t\t}\n\n\t\tif (targetPath.indexOf('/pages/request-a-quote') === 0 || targetPath.indexOf('/apps/request-a-quote') === 0 || url.protocol === 'tel:') {\n\t\t\tvar quoteParameters = {\n\t\t\t\ttarget_url: targetUrl,\n\t\t\t\tlink_text: linkText,\n\t\t\t\tphone_number: url.protocol === 'tel:' ? anchor.getAttribute('href').replace(/^tel:/, '') : ''\n\t\t\t};\n\n\t\t\tif (toolCard && toolAction === 'quote_handoff') {\n\t\t\t\tquoteParameters.tool_name = toolCard.getAttribute('data-ul-tool-name') || '';\n\t\t\t\tquoteParameters.tool_label = toolCard.getAttribute('data-ul-tool-label') || '';\n\t\t\t}\n\n\t\t\tpushEvent('quote_click', quoteParameters);\n\t\t}\n\n\t\tif (targetPath.indexOf('/checkout') === 0 || /checkout/i.test(linkText)) {\n\t\t\tpushEvent('begin_checkout', {\n\t\t\t\ttarget_url: targetUrl,\n\t\t\t\tlink_text: linkText\n\t\t\t});\n\t\t}\n\t}, true);\n\n\tdocument.addEventListener('submit', function (event) {\n\t\tvar form = event.target;\n\t\tif (!form || !form.getAttribute) return;\n\n\t\tvar action = normalizeUrl(form.getAttribute('action') || '');\n\t\tif (action && action.pathname.indexOf('/cart/add') === 0) {\n\t\t\tvar variantInput = form.querySelector('[name=\"id\"]');\n\t\t\tvar quantityInput = form.querySelector('[name=\"quantity\"]');\n\t\t\tpushEvent('add_to_cart', {\n\t\t\t\titem_id: variantInput ? variantInput.value : '',\n\t\t\t\tquantity: quantityInput ? quantityInput.value : '1'\n\t\t\t});\n\t\t}\n\n\t\tif (action && action.pathname.indexOf('/cart') === 0 && /checkout/i.test(form.outerHTML || '')) {\n\t\t\tpushEvent('begin_checkout', {\n\t\t\t\ttarget_url: action.href\n\t\t\t});\n\t\t}\n\t}, true);\n})();\n\n// COLLECTION-TRUST-AUTO-DISMISS-20260708: close marked details disclosures on outside click or Escape.\n(function () {\n\tif (window.__collectionTrustAutoDismiss) return;\n\twindow.__collectionTrustAutoDismiss = true;\n\n\tvar selector = 'details[data-auto-dismiss-details][open]';\n\n\tfunction openDetails() {\n\t\treturn Array.prototype.slice.call(document.querySelectorAll(selector));\n\t}\n\n\tfunction closeDetails(details) {\n\t\tdetails.removeAttribute('open');\n\t}\n\n\tfunction focusSummary(details) {\n\t\tvar summary = details && details.querySelector('summary');\n\t\tif (summary && typeof summary.focus === 'function') {\n\t\t\tsummary.focus();\n\t\t}\n\t}\n\n\tfunction handlePointerDown(event) {\n\t\tvar target = event.target;\n\t\tif (!target) return;\n\n\t\topenDetails().forEach(function (details) {\n\t\t\tif (!details.contains(target)) {\n\t\t\t\tcloseDetails(details);\n\t\t\t}\n\t\t});\n\t}\n\n\tfunction handleKeyDown(event) {\n\t\tif (event.key !== 'Escape' && event.key !== 'Esc') return;\n\n\t\tvar detailsList = openDetails();\n\t\tif (!detailsList.length) return;\n\n\t\tvar active = document.activeElement;\n\t\tvar focusTarget = detailsList[0];\n\t\tfor (var index = 0; index < detailsList.length; index += 1) {\n\t\t\tif (active && detailsList[index].contains(active)) {\n\t\t\t\tfocusTarget = detailsList[index];\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\tdetailsList.forEach(closeDetails);\n\t\tfocusSummary(focusTarget);\n\t}\n\n\tif (window.PointerEvent) {\n\t\tdocument.addEventListener('pointerdown', handlePointerDown, true);\n\t} else {\n\t\tdocument.addEventListener('mousedown', handlePointerDown, true);\n\t\tdocument.addEventListener('touchstart', handlePointerDown, true);\n\t}\n\tdocument.addEventListener('keydown', handleKeyDown, true);\n})();\n"],
  "mappings": "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",
  "names": ["event"]
}
