{
  "version": 3,
  "sources": ["/cdn/shop/t/29/assets/tuokus-live-recovery.js?cb=20260711-livefix2"],
  "sourcesContent": ["(function() {\n  var PRODUCT_SECTION_SELECTOR = '[data-section-type=\"product\"]';\n  var COPY_BUTTON_SELECTOR = '[data-tuokus-copy-coupon], [data-copy-coupon], [data-coupon-copy-button]';\n  var GENERIC_RAIL_SELECTOR = '.variant-swatch-list, .block-swatch-list, .color-swatch-list--large, .product-gallery__thumbnail-list, .tuokus-promo-module__rail, .product-list--scrollable, .activity-product-list, .activity-collection-grid, .tuokus-collection-discovery__rail';\n  var SEARCH_FORM_SELECTOR = 'form.search-bar, form[role=\"search\"], form[action*=\"/search\"]';\n  var SEARCH_INPUT_SELECTOR = 'input[name=\"q\"], input[type=\"search\"], .search-bar__input';\n  var dragMap = new WeakMap();\n  var railScrollMemory = Object.create(null);\n\n  function toArray(list) {\n    return Array.prototype.slice.call(list || []);\n  }\n\n  function isMobileViewport() {\n    return window.innerWidth <= 999;\n  }\n\n  function normalizeToken(value) {\n    return String(value || '').trim().toLowerCase();\n  }\n\n  function cssEscape(value) {\n    if (window.CSS && typeof window.CSS.escape === 'function') {\n      return window.CSS.escape(String(value || ''));\n    }\n\n    return String(value || '').replace(/[\"\\\\]/g, '\\\\$&');\n  }\n\n  function normalizeCouponCode(value) {\n    var text = String(value || '').trim();\n    var match = text.match(/\\b[A-Z0-9][A-Z0-9_-]{4,}\\b/i);\n\n    return (match ? match[0] : text).toUpperCase();\n  }\n\n  function getDirectChild(parent, selector) {\n    return toArray(parent && parent.children).find(function(child) {\n      return child.matches && child.matches(selector);\n    }) || null;\n  }\n\n  function setText(node, value) {\n    if (node) {\n      node.textContent = value;\n    }\n  }\n\n  function injectRuntimeStyles() {\n    var style = document.getElementById('tuokus-live-recovery-runtime-style');\n\n    if (style) {\n      document.head.appendChild(style);\n      return;\n    }\n\n    style = document.createElement('style');\n    style.id = 'tuokus-live-recovery-runtime-style';\n    style.textContent = [\n      '@media screen and (max-width: 999px) {',\n      '.template-product [data-section-type=\"product\"] .product-block-list, .template-product [data-section-type=\"product\"] .product-block-list__wrapper, .template-product [data-section-type=\"product\"] .product-block-list__item, .template-product [data-section-type=\"product\"] .product-info, .template-product [data-section-type=\"product\"] .product-info__block-list, .template-product [data-section-type=\"product\"] .product-info__block-item, .template-product [data-section-type=\"product\"] .product-form__variants--static, .template-product [data-section-type=\"product\"] variant-picker, .template-product [data-section-type=\"product\"] .product-form__option, .template-product [data-section-type=\"product\"] .product-form__option-selector, .template-product [data-section-type=\"product\"] .product-form__info-list, .template-product [data-section-type=\"product\"] .product-form__pricing-panel { box-sizing: border-box !important; width: 100% !important; max-width: 100% !important; min-width: 0 !important; }',\n      '.template-product [data-section-type=\"product\"] .product-gallery, .template-product [data-section-type=\"product\"] .product-gallery__carousel-wrapper, .template-product [data-section-type=\"product\"] .product-gallery__carousel, .template-product [data-section-type=\"product\"] .product-gallery__size-limiter, .template-product [data-section-type=\"product\"] .flickity-viewport { box-sizing: border-box !important; width: 100% !important; max-width: 100% !important; min-width: 0 !important; }',\n      '.template-product [data-section-type=\"product\"] .variant-swatch-list { display: flex !important; flex-wrap: nowrap !important; justify-content: flex-start !important; align-items: center !important; gap: 4px !important; column-gap: 4px !important; grid-auto-columns: unset !important; overflow-x: auto !important; overflow-y: hidden !important; padding: 0 0 2px !important; margin: 0 !important; scroll-snap-type: none !important; scroll-padding-inline: 0 !important; scroll-behavior: auto !important; overscroll-behavior-x: contain !important; touch-action: pan-x pinch-zoom !important; -webkit-overflow-scrolling: touch !important; }',\n      '.template-product [data-section-type=\"product\"] .variant-swatch-list > .variant-swatch { flex: 0 0 76px !important; width: 76px !important; min-width: 76px !important; max-width: 76px !important; height: 76px !important; margin: 0 !important; scroll-snap-align: none !important; }',\n      '.template-product [data-section-type=\"product\"] .variant-swatch__item { display: flex !important; align-items: center !important; justify-content: center !important; width: 76px !important; min-width: 76px !important; height: 76px !important; min-height: 76px !important; padding: 4px !important; gap: 0 !important; }',\n      '.template-product [data-section-type=\"product\"] .variant-swatch__media, .template-product [data-section-type=\"product\"] .variant-swatch__media.aspect-ratio { width: 68px !important; height: 68px !important; min-width: 68px !important; min-height: 68px !important; padding-bottom: 0 !important; border-radius: 13px !important; overflow: hidden !important; }',\n      '.template-product [data-section-type=\"product\"] .variant-swatch__image { width: 68px !important; height: 68px !important; object-fit: cover !important; }',\n      '.template-product [data-section-type=\"product\"] .variant-swatch__label { display: none !important; height: 0 !important; min-height: 0 !important; margin: 0 !important; padding: 0 !important; overflow: hidden !important; }',\n      '.template-product [data-section-type=\"product\"] .product-form__info-list--secondary .product-form__info-item--quantity { display: flex !important; flex-direction: row !important; justify-content: flex-start !important; align-items: center !important; gap: 10px !important; min-height: 42px !important; padding: 4px 0 !important; }',\n      '.template-product [data-section-type=\"product\"] .quantity-selector--product { width: 150px !important; max-width: 150px !important; margin: 0 !important; }',\n      '}'\n    ].join('');\n    document.head.appendChild(style);\n  }\n\n  function hasMojibake(text) {\n    return /[\\uFFFD\\u00C2\\u00C3\\u00E3]|(?:\u9288|\u9289|\u935F|\u93C3|\u95B0|\u95C1|\u95B5|\u6769|\u6427|\u746D|\u5D07|\u93B5|\u941F|\u92D2|\u9479)/.test(String(text || ''));\n  }\n\n  function normalizeSupportCopy(root) {\n    var scope = root && root.querySelectorAll ? root : document;\n    var contentTitles = [\n      '\\u30b5\\u30a4\\u30ba\\u306b\\u3064\\u3044\\u3066',\n      '\\u304a\\u624b\\u5165\\u308c\\u65b9\\u6cd5',\n      '\\u914d\\u9001\\u30fb\\u8fd4\\u54c1\\u306b\\u3064\\u3044\\u3066'\n    ];\n    var refundMarkup = [\n      '<h2>\\u914d\\u9001\\u30fb\\u8fd4\\u54c1\\u30dd\\u30ea\\u30b7\\u30fc\\u306b\\u3064\\u3044\\u3066</h2>',\n      '<p>\\u65e5\\u672c\\u3078\\u306e\\u304a\\u5c4a\\u3051\\u76ee\\u5b89\\u306f\\u901a\\u5e388\\u301c11\\u65e5\\u3067\\u3059\\u3002\\u5730\\u57df\\u3084\\u914d\\u9001\\u72b6\\u6cc1\\u306b\\u3088\\u308a\\u524d\\u5f8c\\u3059\\u308b\\u5834\\u5408\\u304c\\u3042\\u308a\\u307e\\u3059\\u306e\\u3067\\u3001\\u3042\\u3089\\u304b\\u3058\\u3081\\u3054\\u4e86\\u627f\\u304f\\u3060\\u3055\\u3044\\u3002</p>',\n      '<h3>\\u8fd4\\u54c1\\u306b\\u3064\\u3044\\u3066</h3>',\n      '<p>\\u5546\\u54c1\\u306b\\u4e0d\\u5177\\u5408\\u3084\\u7834\\u640d\\u304c\\u3042\\u3063\\u305f\\u5834\\u5408\\u306f\\u3001\\u5546\\u54c1\\u5230\\u7740\\u5f8c\\u3067\\u304d\\u308b\\u3060\\u3051\\u65e9\\u304f\\u3054\\u9023\\u7d61\\u304f\\u3060\\u3055\\u3044\\u3002\\u5185\\u5bb9\\u3092\\u78ba\\u8a8d\\u306e\\u3046\\u3048\\u3001\\u4ea4\\u63db\\u307e\\u305f\\u306f\\u8fd4\\u54c1\\u306e\\u6d41\\u308c\\u3092\\u3054\\u6848\\u5185\\u3044\\u305f\\u3057\\u307e\\u3059\\u3002</p>',\n      '<h3>\\u3054\\u78ba\\u8a8d\\u4e8b\\u9805</h3>',\n      '<p>\\u8a73\\u3057\\u3044\\u6761\\u4ef6\\u3084\\u5bfe\\u5fdc\\u65b9\\u6cd5\\u306f\\u3001\\u30b9\\u30c8\\u30a2\\u306e\\u914d\\u9001\\u30fb\\u8fd4\\u54c1\\u30dd\\u30ea\\u30b7\\u30fc\\u3092\\u3054\\u78ba\\u8a8d\\u304f\\u3060\\u3055\\u3044\\u3002</p>'\n    ].join('');\n\n    scope.querySelectorAll(PRODUCT_SECTION_SELECTOR).forEach(function(sectionRoot) {\n      setText(sectionRoot.querySelector('.product-block-list__item--description .card__title'), '\\u5546\\u54c1\\u8a73\\u7d30');\n\n      toArray(sectionRoot.querySelectorAll('.product-block-list__item--content .card__title')).forEach(function(title, index) {\n        if (contentTitles[index]) {\n          title.textContent = contentTitles[index];\n        }\n      });\n\n      setText(sectionRoot.querySelector('.product-block-list__item--reviews .card__title'), '\\u30ec\\u30d3\\u30e5\\u30fc');\n\n      toArray(sectionRoot.querySelectorAll('#modal-refunds-policy .rte')).forEach(function(content) {\n        if (!content.textContent.trim() || hasMojibake(content.textContent)) {\n          content.innerHTML = refundMarkup;\n        }\n      });\n    });\n  }\n\n  function collapseBlankReviews(root) {\n    var scope = root && root.querySelectorAll ? root : document;\n\n    toArray(scope.querySelectorAll('.product-block-list__item--reviews')).forEach(function(block) {\n      var blankFrame = block.querySelector('iframe[src=\"about:blank\"]');\n      var anchor = block.querySelector('.product-page__reviews-anchor');\n      var wrapper = block.querySelector('.tydal-reviews-iframe-panel-wrapper');\n      var card = block.querySelector('.product-reviews-card, .card__section');\n\n      if (!blankFrame) {\n        return;\n      }\n\n      [blankFrame, anchor, wrapper].forEach(function(node) {\n        if (!node) {\n          return;\n        }\n\n        node.style.setProperty('display', 'none', 'important');\n        node.style.setProperty('height', '0px', 'important');\n        node.style.setProperty('min-height', '0px', 'important');\n        node.style.setProperty('max-height', '0px', 'important');\n        node.style.setProperty('margin', '0px', 'important');\n        node.style.setProperty('padding', '0px', 'important');\n        node.style.setProperty('overflow', 'hidden', 'important');\n      });\n\n      if (card) {\n        card.style.setProperty('height', 'auto', 'important');\n        card.style.setProperty('min-height', '0px', 'important');\n      }\n    });\n  }\n\n  function normalizeRecommendationRails(root) {\n    var scope = root && root.querySelectorAll ? root : document;\n    var isDesktop = !isMobileViewport();\n\n    toArray(scope.querySelectorAll('[data-section-type=\"product-recommendations\"], .shopify-section--product-recommendations')).forEach(function(section) {\n      var list = section.querySelector('.product-list--scrollable, .product-list');\n      var viewport = list ? list.querySelector(':scope > .flickity-viewport') : null;\n      var slider = viewport ? viewport.querySelector('.flickity-slider') : null;\n      var sliderItems = slider ? toArray(slider.querySelectorAll('.product-item')) : [];\n      var directItems = list ? toArray(list.querySelectorAll(':scope > .product-item')) : [];\n      var items = sliderItems.length ? sliderItems : directItems;\n      var cardWidth = isDesktop ? 240 : Math.min(170, Math.round(window.innerWidth * 0.53));\n\n      if (list && slider && sliderItems.length) {\n        sliderItems.forEach(function(item) {\n          list.appendChild(item);\n        });\n\n        viewport.hidden = true;\n        viewport.setAttribute('aria-hidden', 'true');\n        viewport.style.setProperty('display', 'none', 'important');\n        viewport.style.setProperty('height', '0px', 'important');\n        viewport.style.setProperty('min-height', '0px', 'important');\n        viewport.style.setProperty('max-height', '0px', 'important');\n        viewport.style.setProperty('overflow', 'hidden', 'important');\n        section.setAttribute('data-tuokus-recommendations-ready', 'true');\n        list.setAttribute('data-tuokus-recommendation-rail', 'true');\n        items = toArray(list.children).filter(function(child) {\n          return child.classList && child.classList.contains('product-item');\n        });\n      }\n\n      if (!list || !items.length) {\n        section.style.setProperty('display', 'none', 'important');\n        section.style.setProperty('height', '0px', 'important');\n        section.style.setProperty('min-height', '0px', 'important');\n        section.style.setProperty('max-height', '0px', 'important');\n        section.style.setProperty('margin', '0px', 'important');\n        section.style.setProperty('padding', '0px', 'important');\n        section.style.setProperty('overflow', 'hidden', 'important');\n        return;\n      }\n\n      section.setAttribute('data-tuokus-recommendations-ready', 'true');\n      section.hidden = false;\n      section.removeAttribute('aria-hidden');\n      section.style.setProperty('display', 'block', 'important');\n      section.style.setProperty('height', 'auto', 'important');\n      section.style.setProperty('min-height', '0px', 'important');\n      section.style.setProperty('max-height', 'none', 'important');\n      section.style.setProperty('margin-top', isDesktop ? '10px' : '8px', 'important');\n      section.style.setProperty('margin-bottom', isDesktop ? '18px' : '12px', 'important');\n      section.style.setProperty('padding-top', '0px', 'important');\n      section.style.setProperty('padding-bottom', '0px', 'important');\n      section.style.setProperty('overflow', 'visible', 'important');\n\n      if (section.parentElement && section.parentElement.classList && section.parentElement.classList.contains('shopify-section')) {\n        section.parentElement.hidden = false;\n        section.parentElement.removeAttribute('aria-hidden');\n        section.parentElement.style.setProperty('display', 'block', 'important');\n        section.parentElement.style.setProperty('height', 'auto', 'important');\n        section.parentElement.style.setProperty('min-height', '0px', 'important');\n        section.parentElement.style.setProperty('max-height', 'none', 'important');\n        section.parentElement.style.setProperty('overflow', 'visible', 'important');\n      }\n\n      list.style.setProperty('display', 'flex', 'important');\n      list.style.setProperty('flex-wrap', 'nowrap', 'important');\n      list.style.setProperty('align-items', 'stretch', 'important');\n      list.style.setProperty('gap', isDesktop ? '14px' : '12px', 'important');\n      list.style.setProperty('overflow-x', 'auto', 'important');\n      list.style.setProperty('overflow-y', 'hidden', 'important');\n      list.style.setProperty('min-height', '0px', 'important');\n      list.style.setProperty('height', 'auto', 'important');\n      list.style.setProperty('padding-bottom', '8px', 'important');\n      list.style.setProperty('scroll-snap-type', 'none', 'important');\n      list.style.setProperty('scroll-behavior', 'auto', 'important');\n      list.style.setProperty('-webkit-overflow-scrolling', 'touch', 'important');\n      list.style.setProperty('touch-action', 'pan-x pinch-zoom', 'important');\n\n      [viewport, slider].forEach(function(node) {\n        if (!node || list.getAttribute('data-tuokus-recommendation-rail') === 'true') {\n          return;\n        }\n\n        node.style.setProperty('position', 'static', 'important');\n        node.style.setProperty('display', 'flex', 'important');\n        node.style.setProperty('flex-wrap', 'nowrap', 'important');\n        node.style.setProperty('gap', isDesktop ? '14px' : '12px', 'important');\n        node.style.setProperty('height', 'auto', 'important');\n        node.style.setProperty('min-height', '0px', 'important');\n        node.style.setProperty('width', 'max-content', 'important');\n        node.style.setProperty('max-width', 'none', 'important');\n        node.style.setProperty('overflow', 'visible', 'important');\n        node.style.setProperty('transform', 'none', 'important');\n      });\n\n      items.forEach(function(item) {\n        item.style.setProperty('position', 'static', 'important');\n        item.style.setProperty('left', 'auto', 'important');\n        item.style.setProperty('transform', 'none', 'important');\n        item.style.setProperty('display', 'block', 'important');\n        item.style.setProperty('visibility', 'visible', 'important');\n        item.style.setProperty('opacity', '1', 'important');\n        item.style.setProperty('width', cardWidth + 'px', 'important');\n        item.style.setProperty('min-width', cardWidth + 'px', 'important');\n        item.style.setProperty('max-width', cardWidth + 'px', 'important');\n        item.style.setProperty('flex', '0 0 ' + cardWidth + 'px', 'important');\n        forceImages(item);\n      });\n    });\n  }\n\n  function prepareCouponButtons(root) {\n    toArray((root || document).querySelectorAll('.product-form__coupon-copy')).forEach(function(button) {\n      var couponCode = extractCouponCode(button);\n\n      button.setAttribute('data-tuokus-copy-coupon', 'true');\n      button.setAttribute('data-copy-coupon', 'true');\n      button.setAttribute('data-coupon-copy-button', 'true');\n      if (couponCode) {\n        button.setAttribute('data-copy-value', couponCode);\n        button.setAttribute('data-coupon-code', couponCode);\n      }\n      if (!button.getAttribute('data-default-label')) {\n        button.setAttribute('data-default-label', button.getAttribute('data-copy-label') || '\\u30b3\\u30d4\\u30fc');\n      }\n      if (!button.getAttribute('data-copied-label')) {\n        button.setAttribute('data-copied-label', '\\u30b3\\u30d4\\u30fc\\u6e08\\u307f');\n      }\n      button.setAttribute('type', 'button');\n    });\n\n    toArray((root || document).querySelectorAll('.product-coupon-box__button')).forEach(function(button) {\n      var couponCode = extractCouponCode(button);\n\n      button.setAttribute('data-tuokus-copy-coupon', 'true');\n      button.setAttribute('data-copy-coupon', 'true');\n      button.setAttribute('data-coupon-copy-button', 'true');\n      if (couponCode) {\n        button.setAttribute('data-copy-value', couponCode);\n        button.setAttribute('data-coupon-code', couponCode);\n      }\n      if (!button.getAttribute('data-default-label')) {\n        button.setAttribute('data-default-label', button.getAttribute('data-copy-label') || String(button.textContent || '').trim() || '\\u30b3\\u30d4\\u30fc');\n      }\n      if (!button.getAttribute('data-copied-label')) {\n        button.setAttribute('data-copied-label', button.getAttribute('data-copy-success-label') || button.getAttribute('data-copy-success') || '\\u30b3\\u30d4\\u30fc\\u6e08\\u307f');\n      }\n      button.setAttribute('type', 'button');\n    });\n  }\n\n  function getControlForm(control) {\n    if (!control) {\n      return null;\n    }\n\n    return control.form || document.getElementById(control.getAttribute('form') || '');\n  }\n\n  function getControlLabel(control, scope) {\n    var root = scope && scope.querySelector ? scope : document;\n\n    if (!control || !control.id) {\n      return null;\n    }\n\n    return root.querySelector('label[for=\"' + cssEscape(control.id) + '\"]') || document.querySelector('label[for=\"' + cssEscape(control.id) + '\"]');\n  }\n\n  function getControlDisplayValue(control, scope) {\n    var label = getControlLabel(control, scope);\n    var option = null;\n\n    if (!control) {\n      return '';\n    }\n\n    if (control.tagName === 'SELECT') {\n      option = control.options[control.selectedIndex];\n\n      return String(\n        (option && (option.getAttribute('data-display-value') || option.textContent || option.value)) ||\n        control.value ||\n        ''\n      ).trim();\n    }\n\n    return String(\n      (label && (label.getAttribute('data-display-value') || label.getAttribute('data-raw-value') || label.textContent)) ||\n      control.value ||\n      ''\n    ).trim();\n  }\n\n  function syncSelectedOptionLabel(control) {\n    var optionRoot = control && control.closest ? control.closest('.product-form__option') : null;\n    var selectedValueNode = optionRoot ? optionRoot.querySelector('.product-form__selected-value') : null;\n    var displayValue = getControlDisplayValue(control, optionRoot);\n\n    if (selectedValueNode && displayValue) {\n      selectedValueNode.textContent = displayValue;\n    }\n  }\n\n  function syncOptionVisualState(control) {\n    var form = getControlForm(control);\n    var scope = form ? document : (control && control.closest ? control.closest(PRODUCT_SECTION_SELECTOR) : document);\n    var controls = [];\n\n    if (!control || !control.name) {\n      return;\n    }\n\n    controls = toArray((scope || document).querySelectorAll('input[name=\"' + cssEscape(control.name) + '\"][data-option-position]'));\n\n    controls.forEach(function(item) {\n      var label = getControlLabel(item, document);\n      var selected = item === control && item.checked;\n\n      if (label) {\n        label.classList.toggle('is-selected', selected);\n      }\n    });\n\n    syncSelectedOptionLabel(control);\n  }\n\n  function getOptionValuesForForm(form) {\n    if (!form) {\n      return [];\n    }\n\n    return toArray(form.elements)\n      .filter(function(item) {\n        return item.matches && item.matches(\n          'input[data-option-position]:checked, ' +\n          'input[data-option-position][type=\"hidden\"], ' +\n          'select[data-option-position]'\n        );\n      })\n      .sort(function(a, b) {\n        return parseInt(a.getAttribute('data-option-position'), 10) - parseInt(b.getAttribute('data-option-position'), 10);\n      })\n      .map(function(input) {\n        return input.value;\n      });\n  }\n\n  function getRailMemoryKey(control) {\n    var form = getControlForm(control);\n    var formId = form ? form.id : (control ? control.getAttribute('form') : '');\n    var optionPosition = control ? control.getAttribute('data-option-position') : '';\n\n    return formId && optionPosition ? formId + '::' + optionPosition : '';\n  }\n\n  function getRailCard(control, rail) {\n    var card = null;\n\n    if (!control || !control.closest) {\n      return null;\n    }\n\n    card = control.closest('.variant-swatch, .block-swatch, .color-swatch');\n\n    if (!card && control.id) {\n      card = document.querySelector('label[for=\"' + cssEscape(control.id) + '\"]');\n    }\n\n    if (!card || !rail || !card.closest || card.closest(GENERIC_RAIL_SELECTOR) !== rail) {\n      return null;\n    }\n\n    return card;\n  }\n\n  function clampRailScroll(rail, value) {\n    var maxScrollLeft = Math.max(rail.scrollWidth - rail.clientWidth, 0);\n\n    return Math.max(0, Math.min(Number(value) || 0, maxScrollLeft));\n  }\n\n  function getInteractionScrollLeft(rail) {\n    if (!rail) {\n      return null;\n    }\n\n    if (typeof rail.__tuokusLastPointerScrollLeft === 'number' && Date.now() - (rail.__tuokusLastPointerTime || 0) < 1600) {\n      return rail.__tuokusLastPointerScrollLeft;\n    }\n\n    return rail.scrollLeft;\n  }\n\n  function normalizeRailScrollForControl(control, rail, preferredScrollLeft) {\n    var card = null;\n    var padding = 8;\n    var targetScrollLeft = clampRailScroll(rail, preferredScrollLeft);\n    var cardLeft = 0;\n    var cardRight = 0;\n    var viewportLeft = targetScrollLeft;\n    var viewportRight = targetScrollLeft + rail.clientWidth;\n\n    if (!rail) {\n      return 0;\n    }\n\n    card = getRailCard(control, rail);\n\n    if (!card) {\n      return targetScrollLeft;\n    }\n\n    cardLeft = card.offsetLeft;\n    cardRight = cardLeft + card.offsetWidth;\n\n    if (cardLeft - padding < viewportLeft) {\n      targetScrollLeft = cardLeft - padding;\n    } else if (cardRight + padding > viewportRight) {\n      targetScrollLeft = cardRight + padding - rail.clientWidth;\n    }\n\n    return clampRailScroll(rail, targetScrollLeft);\n  }\n\n  function rememberRailScroll(control, rail, preferredScrollLeft) {\n    var key = getRailMemoryKey(control);\n\n    if (!key || !rail) {\n      return;\n    }\n\n    railScrollMemory[key] = typeof preferredScrollLeft === 'number' ? preferredScrollLeft : rail.scrollLeft;\n  }\n\n  function restoreRailScroll(control, rail, preferredScrollLeft) {\n    var key = getRailMemoryKey(control);\n    var remembered = key ? railScrollMemory[key] : null;\n    var targetScrollLeft = typeof preferredScrollLeft === 'number' ? preferredScrollLeft : remembered;\n\n    if (!rail || typeof targetScrollLeft !== 'number') {\n      return;\n    }\n\n    [0, 32, 96, 180, 360, 720, 1100].forEach(function(delay) {\n      window.setTimeout(function() {\n        rail.scrollLeft = normalizeRailScrollForControl(control, rail, targetScrollLeft);\n        forceImages(rail);\n      }, delay);\n    });\n  }\n\n  function restoreRememberedRails(sectionRoot) {\n    toArray((sectionRoot || document).querySelectorAll('.product-form__single-selector[data-option-position]:checked')).forEach(function(control) {\n      var card = control.closest('.variant-swatch, .block-swatch, .color-swatch');\n      var rail = card && card.closest ? card.closest(GENERIC_RAIL_SELECTOR) : null;\n\n      restoreRailScroll(control, rail);\n    });\n  }\n\n  function forceVariantPickerSync(control, previousVariantId) {\n    var form = getControlForm(control);\n    var picker = null;\n    var variantInput = null;\n    var optionValues = [];\n\n    if (!control || !form || !form.id) {\n      return;\n    }\n\n    picker = document.querySelector('variant-picker[form-id=\"' + cssEscape(form.id) + '\"]');\n    variantInput = form.querySelector('input[name=\"id\"]');\n\n    if (!picker || typeof picker.selectCombination !== 'function' || !variantInput) {\n      return;\n    }\n\n    optionValues = getOptionValuesForForm(form);\n\n    window.setTimeout(function() {\n      if (!control.checked || variantInput.value !== previousVariantId) {\n        return;\n      }\n\n      try {\n        picker.selectCombination({\n          optionValues: optionValues,\n          productChange: control.hasAttribute('data-product-url')\n        });\n      } catch (error) {\n      }\n    }, 120);\n  }\n\n  function activateOptionControl(control, rail, event, preferredScrollLeft) {\n    var form = getControlForm(control);\n    var variantInput = form ? form.querySelector('input[name=\"id\"]') : null;\n    var previousVariantId = variantInput ? variantInput.value : '';\n    var sectionRoot = control && control.closest ? control.closest(PRODUCT_SECTION_SELECTOR) : null;\n    var stableScrollLeft = typeof preferredScrollLeft === 'number' ? preferredScrollLeft : getInteractionScrollLeft(rail);\n\n    if (!control || control.disabled || !control.matches || !control.matches('input[data-option-position]')) {\n      return false;\n    }\n\n    if (event) {\n      event.preventDefault();\n      event.stopPropagation();\n\n      if (typeof event.stopImmediatePropagation === 'function') {\n        event.stopImmediatePropagation();\n      }\n    }\n\n    rememberRailScroll(control, rail, stableScrollLeft);\n\n    if (!control.checked) {\n      control.checked = true;\n      syncOptionVisualState(control);\n      control.dispatchEvent(new Event('input', { bubbles: true }));\n      control.dispatchEvent(new Event('change', { bubbles: true }));\n      forceVariantPickerSync(control, previousVariantId);\n    } else {\n      syncOptionVisualState(control);\n    }\n\n    restoreRailScroll(control, rail, stableScrollLeft);\n\n    if (sectionRoot) {\n      queueRecovery(sectionRoot);\n    }\n\n    return true;\n  }\n\n  function setInlineOrder(node, order) {\n    if (!node) {\n      return;\n    }\n\n    if (order === null || typeof order === 'undefined') {\n      node.style.removeProperty('order');\n      return;\n    }\n\n    node.style.order = String(order);\n  }\n\n  function setImportantStyle(node, property, value) {\n    if (node) {\n      node.style.setProperty(property, value, 'important');\n    }\n  }\n\n  function getSearchUrl() {\n    return (window.routes && window.routes.searchUrl) ||\n      (window.theme && window.theme.routes && window.theme.routes.searchUrl) ||\n      '/search';\n  }\n\n  function getVisibleSearchInput(form) {\n    var inputs = toArray((form || document).querySelectorAll(SEARCH_INPUT_SELECTOR));\n\n    return inputs.find(function(input) {\n      return input.name === 'q' && input.type !== 'hidden' && input.offsetParent !== null;\n    }) || inputs.find(function(input) {\n      return input.name === 'q' && input.type !== 'hidden';\n    }) || null;\n  }\n\n  function normalizeSearchForms(root) {\n    var scope = root && root.querySelectorAll ? root : document;\n\n    toArray(scope.querySelectorAll(SEARCH_FORM_SELECTOR)).forEach(function(form) {\n      var typeInput = form.querySelector('input[name=\"type\"]');\n\n      form.setAttribute('action', getSearchUrl());\n      form.setAttribute('method', 'get');\n      form.setAttribute('data-tuokus-search-normalized', 'true');\n\n      if (!typeInput) {\n        typeInput = document.createElement('input');\n        typeInput.type = 'hidden';\n        typeInput.name = 'type';\n        form.appendChild(typeInput);\n      }\n\n      typeInput.value = 'product';\n    });\n  }\n\n  function submitSearchForm(form, event) {\n    var input = form ? getVisibleSearchInput(form) : null;\n    var query = input ? String(input.value || '').trim() : '';\n    var url = null;\n\n    if (!form || !query) {\n      return false;\n    }\n\n    if (event) {\n      event.preventDefault();\n      event.stopPropagation();\n\n      if (typeof event.stopImmediatePropagation === 'function') {\n        event.stopImmediatePropagation();\n      }\n    }\n\n    url = new URL(getSearchUrl(), window.location.origin);\n    url.searchParams.set('q', query);\n    url.searchParams.set('type', 'product');\n    window.location.href = url.toString();\n    return true;\n  }\n\n  function handleSearchSubmit(event) {\n    var form = event.target && event.target.closest ? event.target.closest(SEARCH_FORM_SELECTOR) : null;\n\n    if (form) {\n      submitSearchForm(form, event);\n    }\n  }\n\n  function handleSearchKeydown(event) {\n    var input = event.target && event.target.closest ? event.target.closest(SEARCH_INPUT_SELECTOR) : null;\n    var form = input ? input.closest(SEARCH_FORM_SELECTOR) : null;\n\n    if (event.key === 'Enter' && form && String(input.value || '').trim()) {\n      submitSearchForm(form, event);\n    }\n  }\n\n  function applyCompactMobileControls(sectionRoot) {\n    var lists = [];\n\n    if (!sectionRoot || !isMobileViewport()) {\n      return;\n    }\n\n    lists = toArray(sectionRoot.querySelectorAll('.variant-swatch-list'));\n\n    lists.forEach(function(list) {\n      setImportantStyle(list, 'display', 'flex');\n      setImportantStyle(list, 'flex-wrap', 'nowrap');\n      setImportantStyle(list, 'justify-content', 'flex-start');\n      setImportantStyle(list, 'align-items', 'center');\n      setImportantStyle(list, 'gap', '4px');\n      setImportantStyle(list, 'column-gap', '4px');\n      setImportantStyle(list, 'grid-auto-columns', 'unset');\n      setImportantStyle(list, 'overflow-x', 'auto');\n      setImportantStyle(list, 'overflow-y', 'hidden');\n      setImportantStyle(list, 'padding', '0 0 2px');\n      setImportantStyle(list, 'margin', '0');\n      setImportantStyle(list, 'scroll-snap-type', 'none');\n      setImportantStyle(list, 'scroll-padding-inline', '0');\n      setImportantStyle(list, 'scroll-behavior', 'auto');\n      setImportantStyle(list, 'overscroll-behavior-x', 'contain');\n      setImportantStyle(list, 'touch-action', 'pan-x pinch-zoom');\n      setImportantStyle(list, '-webkit-overflow-scrolling', 'touch');\n\n      toArray(list.querySelectorAll('.variant-swatch')).forEach(function(item) {\n        if (item.hidden || item.getAttribute('aria-hidden') === 'true') {\n          setImportantStyle(item, 'display', 'none');\n          return;\n        }\n\n        setImportantStyle(item, 'box-sizing', 'border-box');\n        setImportantStyle(item, 'padding', '0');\n        setImportantStyle(item, 'display', 'block');\n        setImportantStyle(item, 'flex', '0 0 76px');\n        setImportantStyle(item, 'width', '76px');\n        setImportantStyle(item, 'min-width', '76px');\n        setImportantStyle(item, 'max-width', '76px');\n        setImportantStyle(item, 'height', '76px');\n        setImportantStyle(item, 'margin', '0');\n        setImportantStyle(item, 'scroll-snap-align', 'none');\n      });\n\n      toArray(list.querySelectorAll('.variant-swatch__item')).forEach(function(item) {\n        setImportantStyle(item, 'display', 'flex');\n        setImportantStyle(item, 'align-items', 'center');\n        setImportantStyle(item, 'justify-content', 'center');\n        setImportantStyle(item, 'box-sizing', 'border-box');\n        setImportantStyle(item, 'width', '76px');\n        setImportantStyle(item, 'min-width', '76px');\n        setImportantStyle(item, 'max-width', '76px');\n        setImportantStyle(item, 'height', '76px');\n        setImportantStyle(item, 'min-height', '76px');\n        setImportantStyle(item, 'max-height', '76px');\n        setImportantStyle(item, 'padding', '4px');\n        setImportantStyle(item, 'gap', '0');\n      });\n\n      toArray(list.querySelectorAll('.variant-swatch__media, .variant-swatch__media.aspect-ratio')).forEach(function(media) {\n        setImportantStyle(media, 'width', '68px');\n        setImportantStyle(media, 'height', '68px');\n        setImportantStyle(media, 'min-width', '68px');\n        setImportantStyle(media, 'min-height', '68px');\n        setImportantStyle(media, 'padding-bottom', '0');\n        setImportantStyle(media, 'border-radius', '13px');\n        setImportantStyle(media, 'overflow', 'hidden');\n      });\n\n      toArray(list.querySelectorAll('.variant-swatch__image')).forEach(function(image) {\n        setImportantStyle(image, 'width', '68px');\n        setImportantStyle(image, 'height', '68px');\n        setImportantStyle(image, 'object-fit', 'cover');\n      });\n\n      toArray(list.querySelectorAll('.variant-swatch__label')).forEach(function(label) {\n        setImportantStyle(label, 'display', 'none');\n        setImportantStyle(label, 'height', '0');\n        setImportantStyle(label, 'min-height', '0');\n        setImportantStyle(label, 'margin', '0');\n        setImportantStyle(label, 'padding', '0');\n        setImportantStyle(label, 'overflow', 'hidden');\n      });\n    });\n  }\n\n  function normalizeMobileThumbnailRail(gallery) {\n    var wrapper = null;\n    var inner = null;\n    var list = null;\n\n    if (!gallery || !isMobileViewport()) {\n      return;\n    }\n\n    wrapper = gallery.querySelector(':scope > .scroller, .product-gallery__thumbnail-list-wrapper');\n    inner = wrapper ? wrapper.querySelector('.scroller__inner') : null;\n    list = gallery.querySelector('.product-gallery__thumbnail-list');\n\n    if (wrapper) {\n      setImportantStyle(wrapper, 'display', 'block');\n      setImportantStyle(wrapper, 'box-sizing', 'border-box');\n      setImportantStyle(wrapper, 'width', '100%');\n      setImportantStyle(wrapper, 'min-width', '0');\n      setImportantStyle(wrapper, 'max-width', '100%');\n      setImportantStyle(wrapper, 'height', 'auto');\n      setImportantStyle(wrapper, 'min-height', '64px');\n      setImportantStyle(wrapper, 'margin', '8px auto 0');\n      setImportantStyle(wrapper, 'padding', '0 2px 5px');\n      setImportantStyle(wrapper, 'overflow-x', 'auto');\n      setImportantStyle(wrapper, 'overflow-y', 'hidden');\n      setImportantStyle(wrapper, 'scroll-snap-type', 'none');\n      setImportantStyle(wrapper, 'scroll-behavior', 'auto');\n      setImportantStyle(wrapper, '-webkit-overflow-scrolling', 'touch');\n      setImportantStyle(wrapper, 'touch-action', 'pan-x pinch-zoom');\n      wrapper.scrollLeft = Math.max(0, wrapper.scrollLeft);\n    }\n\n    if (inner) {\n      setImportantStyle(inner, 'display', 'block');\n      setImportantStyle(inner, 'position', 'static');\n      setImportantStyle(inner, 'box-sizing', 'border-box');\n      setImportantStyle(inner, 'width', 'max-content');\n      setImportantStyle(inner, 'min-width', '100%');\n      setImportantStyle(inner, 'max-width', 'none');\n      setImportantStyle(inner, 'transform', 'none');\n      setImportantStyle(inner, 'left', '0');\n      setImportantStyle(inner, 'right', 'auto');\n      setImportantStyle(inner, 'margin-left', '0');\n      setImportantStyle(inner, 'margin-right', '0');\n      setImportantStyle(inner, 'overflow', 'visible');\n    }\n\n    if (list) {\n      setImportantStyle(list, 'display', 'flex');\n      setImportantStyle(list, 'position', 'static');\n      setImportantStyle(list, 'flex-wrap', 'nowrap');\n      setImportantStyle(list, 'justify-content', 'flex-start');\n      setImportantStyle(list, 'align-items', 'center');\n      setImportantStyle(list, 'gap', '7px');\n      setImportantStyle(list, 'box-sizing', 'border-box');\n      setImportantStyle(list, 'width', 'max-content');\n      setImportantStyle(list, 'min-width', '100%');\n      setImportantStyle(list, 'max-width', 'none');\n      setImportantStyle(list, 'margin', '0');\n      setImportantStyle(list, 'padding', '0');\n      setImportantStyle(list, 'overflow', 'visible');\n      setImportantStyle(list, 'transform', 'none');\n      setImportantStyle(list, 'left', '0');\n      setImportantStyle(list, 'right', 'auto');\n      setImportantStyle(list, 'margin-left', '0');\n      setImportantStyle(list, 'margin-right', '0');\n      setImportantStyle(list, 'scroll-snap-type', 'none');\n    }\n  }\n\n  function copyWithTextarea(value) {\n    var textarea = document.createElement('textarea');\n    var copied = false;\n\n    textarea.value = String(value || '');\n    textarea.setAttribute('readonly', 'readonly');\n    textarea.style.position = 'fixed';\n    textarea.style.opacity = '0';\n    textarea.style.pointerEvents = 'none';\n    textarea.style.left = '-9999px';\n    textarea.style.top = '0';\n    document.body.appendChild(textarea);\n    textarea.focus();\n    textarea.select();\n    textarea.setSelectionRange(0, textarea.value.length);\n\n    try {\n      copied = document.execCommand('copy');\n    } catch (error) {\n      copied = false;\n    }\n\n    document.body.removeChild(textarea);\n    return copied;\n  }\n\n  function copyText(value) {\n    var normalized = String(value || '').trim();\n\n    if (!normalized) {\n      return Promise.reject(new Error('empty coupon'));\n    }\n\n    if (window.isSecureContext && navigator.clipboard && typeof navigator.clipboard.writeText === 'function') {\n      return navigator.clipboard.writeText(normalized).catch(function() {\n        return copyWithTextarea(normalized) ? Promise.resolve() : Promise.reject(new Error('copy failed'));\n      });\n    }\n\n    return copyWithTextarea(normalized) ? Promise.resolve() : Promise.reject(new Error('copy failed'));\n  }\n\n  function updateCouponButtonState(button, copied) {\n    var label = button.querySelector('.product-form__coupon-copy-label, .product-coupon-box__button-label');\n    var defaultLabel = button.getAttribute('data-default-label') || button.getAttribute('data-copy-label') || '\\u30b3\\u30d4\\u30fc';\n    var copiedLabel = button.getAttribute('data-copied-label') || '\\u30b3\\u30d4\\u30fc\\u6e08\\u307f';\n\n    button.classList.toggle('is-copied', copied);\n    button.setAttribute('data-copy-state', copied ? 'copied' : 'default');\n    button.setAttribute('aria-label', copied ? copiedLabel : defaultLabel);\n\n    if (label) {\n      label.textContent = copied ? copiedLabel : defaultLabel;\n      return;\n    }\n\n    button.textContent = copied ? copiedLabel : defaultLabel;\n  }\n\n  function extractCouponCode(button) {\n    var root = button.closest('[data-coupon-copy-root], .product-form__pricing-panel, .product-coupon-box');\n    var codeNode = root ? root.querySelector('[data-coupon-code], .product-form__coupon-code, .product-coupon-box__code') : null;\n    var text = String(\n      button.getAttribute('data-copy-value') ||\n      button.getAttribute('data-coupon-code') ||\n      button.getAttribute('data-copy-text') ||\n      (codeNode ? (codeNode.getAttribute('data-coupon-code') || codeNode.textContent || '') : '') ||\n      (root ? root.textContent || '' : '')\n    ).trim();\n\n    return normalizeCouponCode(text || 'WELCOME10');\n  }\n\n  function activateCouponCopy(button, event) {\n    var couponCode = '';\n\n    if (!button) {\n      return;\n    }\n\n    couponCode = extractCouponCode(button);\n\n    if (!couponCode) {\n      return;\n    }\n\n    if (event) {\n      event.preventDefault();\n      event.stopPropagation();\n\n      if (typeof event.stopImmediatePropagation === 'function') {\n        event.stopImmediatePropagation();\n      }\n    }\n\n    button.setAttribute('data-copy-value', couponCode);\n    button.setAttribute('data-coupon-code', couponCode);\n\n    copyText(couponCode).then(function() {\n      updateCouponButtonState(button, true);\n    }).catch(function() {\n      try {\n        window.prompt('\\u30af\\u30fc\\u30dd\\u30f3\\u30b3\\u30fc\\u30c9\\u3092\\u30b3\\u30d4\\u30fc\\u3057\\u3066\\u304f\\u3060\\u3055\\u3044', couponCode);\n        updateCouponButtonState(button, true);\n      } catch (error) {\n        updateCouponButtonState(button, false);\n      }\n    }).finally(function() {\n      window.setTimeout(function() {\n        updateCouponButtonState(button, false);\n      }, 1800);\n    });\n  }\n\n  function handleCouponCopy(event) {\n    var button = event.target && event.target.closest ? event.target.closest(COPY_BUTTON_SELECTOR) : null;\n\n    if (!button) {\n      return;\n    }\n\n    activateCouponCopy(button, event);\n  }\n\n  function reorderProductFlow(sectionRoot) {\n    var wrapper = null;\n    var titleBlock = null;\n    var galleryBlock = null;\n    var infoBlock = null;\n    var promotionBlock = null;\n    var trailingBlocks = [];\n\n    if (!sectionRoot) {\n      return;\n    }\n\n    if (!isMobileViewport()) {\n      sectionRoot.querySelectorAll('.product-block-list__wrapper > .product-block-list__item').forEach(function(node) {\n        setInlineOrder(node, null);\n      });\n\n      return;\n    }\n\n    wrapper = sectionRoot.querySelector('.product-block-list__wrapper');\n\n    if (!wrapper) {\n      return;\n    }\n\n    titleBlock = getDirectChild(wrapper, '.product-block-list__item--mobile-title');\n    galleryBlock = getDirectChild(wrapper, '.product-block-list__item--gallery');\n    infoBlock = getDirectChild(wrapper, '.product-block-list__item--info');\n    promotionBlock = getDirectChild(wrapper, '.product-block-list__item--mobile-promotion');\n    trailingBlocks = toArray(wrapper.children).filter(function(node) {\n      return node !== titleBlock && node !== galleryBlock && node !== infoBlock && node !== promotionBlock;\n    });\n\n    setInlineOrder(titleBlock, 1);\n    setInlineOrder(galleryBlock, 2);\n    setInlineOrder(infoBlock, 3);\n\n    trailingBlocks.forEach(function(node, index) {\n      setInlineOrder(node, 4 + index);\n    });\n\n    setInlineOrder(promotionBlock, 5);\n\n    [titleBlock, galleryBlock, infoBlock].concat(trailingBlocks).concat([promotionBlock]).forEach(function(node) {\n      if (node && node.parentNode === wrapper) {\n        wrapper.appendChild(node);\n      }\n    });\n  }\n\n  function reorderVariantSelector(sectionRoot) {\n    var block = null;\n    var picker = null;\n    var infoList = null;\n    var pricingPanel = null;\n\n    if (!sectionRoot) {\n      return;\n    }\n\n    block = sectionRoot.querySelector('.product-info__block-item--variant-selector');\n\n    if (!block) {\n      return;\n    }\n\n    picker = getDirectChild(block, '.product-form__variants--static, variant-picker');\n    infoList = getDirectChild(block, '.product-form__info-list');\n    pricingPanel = getDirectChild(block, '.product-form__pricing-panel');\n\n    if (picker) {\n      block.appendChild(picker);\n    }\n\n    if (infoList) {\n      block.appendChild(infoList);\n    }\n\n    if (pricingPanel) {\n      block.appendChild(pricingPanel);\n    }\n\n    if (isMobileViewport()) {\n      block.classList.add('tuokus-recovery-variant-block');\n      setInlineOrder(picker, 1);\n      setInlineOrder(infoList, 2);\n      setInlineOrder(pricingPanel, 3);\n    } else {\n      block.classList.remove('tuokus-recovery-variant-block');\n      setInlineOrder(picker, null);\n      setInlineOrder(infoList, null);\n      setInlineOrder(pricingPanel, null);\n    }\n  }\n\n  function parseVariantIds(node) {\n    return String((node && node.getAttribute && node.getAttribute('data-variant-ids')) || '')\n      .split(',')\n      .map(function(item) { return item.trim(); })\n      .filter(Boolean);\n  }\n\n  function isSharedDetailNode(node) {\n    var explicit = String((node && node.getAttribute && node.getAttribute('data-tuokus-shared-detail')) || '').toLowerCase();\n    var variantIds = parseVariantIds(node);\n    var hasGroup = Boolean(node && node.getAttribute && node.getAttribute('data-group-name'));\n\n    if (explicit === 'true' || explicit === '1') {\n      return true;\n    }\n\n    return variantIds.length === 0 && !hasGroup;\n  }\n\n  function showNode(node) {\n    if (!node) {\n      return;\n    }\n\n    node.hidden = false;\n    node.classList.remove('is-filtered');\n    if (node.classList.contains('product-gallery__carousel-item')) {\n      node.classList.remove('product-gallery__carousel-item--hidden');\n    }\n\n    if (node.classList.contains('product-gallery__thumbnail')) {\n      node.classList.remove('product-gallery__thumbnail--hidden');\n    }\n    node.removeAttribute('aria-hidden');\n    node.style.removeProperty('display');\n    node.style.removeProperty('visibility');\n    forceImages(node);\n  }\n\n  function hideNode(node) {\n    if (!node) {\n      return;\n    }\n\n    node.classList.add('is-filtered');\n\n    if (node.classList.contains('product-gallery__carousel-item')) {\n      node.classList.add('product-gallery__carousel-item--hidden');\n    }\n\n    if (node.classList.contains('product-gallery__thumbnail')) {\n      node.classList.add('product-gallery__thumbnail--hidden');\n    }\n    node.setAttribute('aria-hidden', 'true');\n    node.style.setProperty('display', 'none', 'important');\n    node.style.setProperty('visibility', 'hidden', 'important');\n  }\n\n  function getSelectedVariantId(sectionRoot) {\n    var input = sectionRoot.querySelector('input[name=\"id\"][value]');\n    return input ? String(input.value || '').trim() : '';\n  }\n\n  function getSelectedOptionValues(sectionRoot) {\n    var values = {};\n\n    toArray(sectionRoot.querySelectorAll('.product-form__single-selector')).forEach(function(control) {\n      var optionPosition = String(control.getAttribute('data-option-position') || '').trim();\n      var selectedOption = null;\n      var label = null;\n      var normalizedValue = '';\n\n      if (!optionPosition) {\n        return;\n      }\n\n      if (control.tagName === 'SELECT') {\n        selectedOption = control.options[control.selectedIndex];\n        normalizedValue = normalizeToken(\n          selectedOption ? (\n            selectedOption.getAttribute('data-raw-value') ||\n            selectedOption.getAttribute('data-display-value') ||\n            selectedOption.textContent ||\n            selectedOption.value\n          ) : control.value\n        );\n      } else {\n        if (!control.checked) {\n          return;\n        }\n\n        label = control.id ? sectionRoot.querySelector('label[for=\"' + control.id.replace(/\"/g, '\\\\\"') + '\"]') : null;\n        normalizedValue = normalizeToken(\n          label ? (\n            label.getAttribute('data-raw-value') ||\n            label.getAttribute('data-display-value') ||\n            label.textContent\n          ) : control.value\n        );\n      }\n\n      if (normalizedValue) {\n        values[optionPosition] = normalizedValue;\n      }\n    });\n\n    return values;\n  }\n\n  function getSelectedOptionsKey(selectedOptions) {\n    return Object.keys(selectedOptions || {}).sort().map(function(key) {\n      return key + ':' + selectedOptions[key];\n    }).join('|');\n  }\n\n  function matchesGroupedMedia(node, selectedOptions) {\n    var optionPosition = String((node && node.getAttribute && node.getAttribute('data-group-position')) || '').trim();\n    var groupedValue = normalizeToken((node && node.getAttribute && node.getAttribute('data-group-value')) || '');\n\n    if (!optionPosition || !groupedValue) {\n      return false;\n    }\n\n    return selectedOptions[optionPosition] === groupedValue;\n  }\n\n  function getVisible(nodes) {\n    return nodes.filter(function(node) {\n      return !node.classList.contains('is-filtered');\n    });\n  }\n\n  function getMobileGallerySquareSize(gallery, carousel) {\n    var rect = null;\n    var size = 0;\n\n    if (!isMobileViewport()) {\n      return 0;\n    }\n\n    rect = (carousel || gallery).getBoundingClientRect();\n    size = Math.round(rect.width || 0);\n\n    if (!size || size < 220) {\n      size = Math.max(260, Math.min(window.innerWidth - 32, 360));\n    }\n\n    return Math.max(260, Math.min(size, window.innerWidth - 24));\n  }\n\n  function applyMobileGallerySquareFrame(gallery, carousel, activeItem) {\n    var viewport = carousel ? carousel.querySelector('.flickity-viewport') : null;\n    var slider = viewport ? viewport.querySelector('.flickity-slider') : null;\n    var limiter = activeItem ? activeItem.querySelector('.product-gallery__size-limiter') : null;\n    var ratio = activeItem ? activeItem.querySelector('.aspect-ratio') : null;\n    var image = activeItem ? activeItem.querySelector('img') : null;\n    var size = getMobileGallerySquareSize(gallery, carousel);\n\n    if (!size || !gallery || !carousel || !activeItem) {\n      return 0;\n    }\n\n    gallery.style.setProperty('min-height', '0px', 'important');\n    gallery.style.setProperty('display', 'block', 'important');\n    gallery.style.setProperty('margin-left', 'auto', 'important');\n    gallery.style.setProperty('margin-right', 'auto', 'important');\n    carousel.style.setProperty('height', size + 'px', 'important');\n    carousel.style.setProperty('min-height', size + 'px', 'important');\n    carousel.style.setProperty('max-height', size + 'px', 'important');\n    carousel.style.setProperty('display', 'block', 'important');\n    carousel.style.setProperty('width', '100%', 'important');\n    carousel.style.setProperty('max-width', '100%', 'important');\n    carousel.style.setProperty('padding', '0px', 'important');\n    carousel.style.setProperty('margin-left', 'auto', 'important');\n    carousel.style.setProperty('margin-right', 'auto', 'important');\n\n    if (viewport) {\n      viewport.style.setProperty('height', size + 'px', 'important');\n      viewport.style.setProperty('min-height', size + 'px', 'important');\n      viewport.style.setProperty('max-height', size + 'px', 'important');\n      viewport.style.setProperty('width', '100%', 'important');\n      viewport.style.setProperty('max-width', '100%', 'important');\n      viewport.style.setProperty('padding', '0px', 'important');\n      viewport.style.setProperty('left', '0px', 'important');\n      viewport.style.setProperty('box-sizing', 'border-box', 'important');\n    }\n\n    if (slider) {\n      slider.style.setProperty('height', size + 'px', 'important');\n      slider.style.setProperty('min-height', size + 'px', 'important');\n      slider.style.setProperty('max-height', size + 'px', 'important');\n    }\n\n    activeItem.style.setProperty('display', 'flex', 'important');\n    activeItem.style.setProperty('align-items', 'center', 'important');\n    activeItem.style.setProperty('justify-content', 'center', 'important');\n    activeItem.style.setProperty('width', '100%', 'important');\n    activeItem.style.setProperty('max-width', '100%', 'important');\n    activeItem.style.setProperty('height', size + 'px', 'important');\n    activeItem.style.setProperty('min-height', size + 'px', 'important');\n    activeItem.style.setProperty('max-height', size + 'px', 'important');\n    activeItem.style.setProperty('padding', '8px', 'important');\n    activeItem.style.setProperty('box-sizing', 'border-box', 'important');\n    activeItem.style.setProperty('background', 'transparent', 'important');\n\n    if (limiter) {\n      limiter.style.setProperty('width', '100%', 'important');\n      limiter.style.setProperty('max-width', '100%', 'important');\n      limiter.style.setProperty('height', '100%', 'important');\n      limiter.style.setProperty('max-height', '100%', 'important');\n      limiter.style.setProperty('min-height', '0px', 'important');\n      limiter.style.setProperty('padding', '0px', 'important');\n      limiter.style.setProperty('display', 'flex', 'important');\n      limiter.style.setProperty('align-items', 'center', 'important');\n      limiter.style.setProperty('justify-content', 'center', 'important');\n      limiter.style.setProperty('box-sizing', 'border-box', 'important');\n      limiter.style.setProperty('overflow', 'hidden', 'important');\n    }\n\n    if (ratio) {\n      ratio.style.setProperty('width', '100%', 'important');\n      ratio.style.setProperty('max-width', '100%', 'important');\n      ratio.style.setProperty('height', '100%', 'important');\n      ratio.style.setProperty('max-height', '100%', 'important');\n      ratio.style.setProperty('min-height', '0px', 'important');\n      ratio.style.setProperty('padding-bottom', '0px', 'important');\n      ratio.style.setProperty('display', 'flex', 'important');\n      ratio.style.setProperty('align-items', 'center', 'important');\n      ratio.style.setProperty('justify-content', 'center', 'important');\n      ratio.style.setProperty('box-sizing', 'border-box', 'important');\n      ratio.style.setProperty('overflow', 'hidden', 'important');\n    }\n\n    if (image) {\n      image.style.setProperty('position', 'static', 'important');\n      image.style.setProperty('display', 'block', 'important');\n      image.style.setProperty('width', '100%', 'important');\n      image.style.setProperty('height', '100%', 'important');\n      image.style.setProperty('max-width', '100%', 'important');\n      image.style.setProperty('max-height', '100%', 'important');\n      image.style.setProperty('padding', '0px', 'important');\n      image.style.setProperty('box-sizing', 'border-box', 'important');\n      image.style.setProperty('object-fit', 'contain', 'important');\n      image.style.setProperty('object-position', 'center center', 'important');\n      image.style.setProperty('margin', 'auto', 'important');\n    }\n\n    return size;\n  }\n\n  function restoreGalleryHeight(gallery, carousel, activeItem) {\n    var height = 0;\n    var viewport = carousel ? carousel.querySelector('.flickity-viewport') : null;\n\n    if (!gallery || !carousel || !activeItem || !isMobileViewport()) {\n      return;\n    }\n\n    height = applyMobileGallerySquareFrame(gallery, carousel, activeItem);\n\n    if (height) {\n      return;\n    }\n\n    height = Math.ceil(activeItem.scrollHeight || activeItem.getBoundingClientRect().height || 0);\n\n    if (height < 160) {\n      return;\n    }\n\n    carousel.style.minHeight = height + 'px';\n    gallery.style.minHeight = height + 'px';\n\n    if (viewport) {\n      viewport.style.height = height + 'px';\n      viewport.style.minHeight = height + 'px';\n    }\n  }\n\n  function forceActiveMediaVisible(activeItem) {\n    if (!activeItem) {\n      return;\n    }\n\n    activeItem.hidden = false;\n    activeItem.classList.remove('is-filtered');\n    activeItem.classList.remove('product-gallery__carousel-item--hidden');\n    activeItem.removeAttribute('aria-hidden');\n    activeItem.style.setProperty('display', 'block', 'important');\n    activeItem.style.setProperty('visibility', 'visible', 'important');\n    activeItem.style.setProperty('opacity', '1', 'important');\n    forceImages(activeItem);\n  }\n\n  function forceImageLoad(image) {\n    var src = '';\n    var srcset = '';\n    var normalizedSrc = '';\n\n    if (!image || !image.tagName || image.tagName !== 'IMG') {\n      return;\n    }\n\n    image.setAttribute('loading', 'eager');\n    image.setAttribute('decoding', 'async');\n    try {\n      image.loading = 'eager';\n    } catch (error) {}\n\n    src = image.getAttribute('data-src') || image.getAttribute('data-original-src') || image.getAttribute('data-master-src') || image.getAttribute('src') || '';\n    srcset = image.getAttribute('data-srcset') || image.getAttribute('data-original-srcset') || image.getAttribute('srcset') || '';\n    normalizedSrc = src && src.indexOf('//') === 0 ? window.location.protocol + src : src;\n\n    if (srcset) {\n      image.setAttribute('srcset', srcset);\n    }\n\n    if (normalizedSrc) {\n      if (!image.getAttribute('src') || image.naturalWidth === 0 || !image.currentSrc) {\n        image.setAttribute('src', normalizedSrc);\n      }\n      if (!image.currentSrc || image.naturalWidth === 0) {\n        try {\n          image.src = normalizedSrc;\n        } catch (error) {}\n      }\n    }\n  }\n\n  function forceImages(scope) {\n    if (!scope) {\n      return;\n    }\n\n    if (scope.tagName === 'IMG') {\n      forceImageLoad(scope);\n      return;\n    }\n\n    toArray(scope.querySelectorAll('img')).forEach(forceImageLoad);\n  }\n\n  function syncFlickityToActive(carousel, activeItem) {\n    if (!carousel || !activeItem || !window.Flickity || typeof window.Flickity.data !== 'function') {\n      return;\n    }\n\n    try {\n      var flickityInstance = window.Flickity.data(carousel);\n\n      if (!flickityInstance) {\n        return;\n      }\n\n      if (typeof flickityInstance.reloadCells === 'function') {\n        flickityInstance.reloadCells();\n      }\n\n      if (typeof flickityInstance.selectCell === 'function') {\n        flickityInstance.selectCell(activeItem, false, true);\n      } else if (typeof flickityInstance.select === 'function') {\n        flickityInstance.select(Math.max(0, toArray(carousel.querySelectorAll('.product-gallery__carousel-item:not(.is-filtered)')).indexOf(activeItem)), false, true);\n      }\n\n      if (typeof flickityInstance.resize === 'function') {\n        flickityInstance.resize();\n      }\n    } catch (error) {\n    }\n  }\n\n  function normalizeMobileGalleryLock(gallery, carousel, activeItem) {\n    var viewport = null;\n    var slider = null;\n    var height = 0;\n\n    if (!gallery || !carousel) {\n      return;\n    }\n\n    if (!isMobileViewport()) {\n      gallery.removeAttribute('data-tuokus-gallery-mobile-lock');\n      return;\n    }\n\n    if (!activeItem) {\n      return;\n    }\n\n    viewport = carousel.querySelector('.flickity-viewport');\n    slider = carousel.querySelector('.flickity-slider');\n\n    gallery.setAttribute('data-tuokus-gallery-mobile-lock', 'true');\n    normalizeMobileThumbnailRail(gallery);\n    carousel.style.setProperty('width', '100%', 'important');\n    carousel.style.setProperty('max-width', '100%', 'important');\n    activeItem.style.setProperty('width', '100%', 'important');\n    activeItem.style.setProperty('max-width', '100%', 'important');\n    activeItem.style.setProperty('left', 'auto', 'important');\n    activeItem.style.setProperty('transform', 'none', 'important');\n\n    if (slider) {\n      slider.style.setProperty('transform', 'translateX(0px)', 'important');\n      slider.style.setProperty('left', '0', 'important');\n      slider.style.setProperty('position', 'relative', 'important');\n    }\n\n    height = Math.ceil(activeItem.scrollHeight || activeItem.getBoundingClientRect().height || 0);\n\n    if (applyMobileGallerySquareFrame(gallery, carousel, activeItem)) {\n      return;\n    }\n\n    if (height > 160) {\n      carousel.style.setProperty('min-height', height + 'px', 'important');\n      if (viewport) {\n        viewport.style.setProperty('height', height + 'px', 'important');\n        viewport.style.setProperty('min-height', height + 'px', 'important');\n      }\n    }\n  }\n\n  function normalizeGalleryStableLayout(gallery, carousel, activeItem) {\n    var viewport = null;\n    var slider = null;\n    var height = 0;\n\n    if (!gallery || !carousel || !activeItem) {\n      return;\n    }\n\n    viewport = carousel.querySelector('.flickity-viewport');\n    slider = carousel.querySelector('.flickity-slider');\n\n    gallery.setAttribute('data-tuokus-gallery-stable', 'true');\n    normalizeMobileThumbnailRail(gallery);\n    carousel.style.setProperty('width', '100%', 'important');\n    carousel.style.setProperty('max-width', '100%', 'important');\n    activeItem.style.setProperty('display', 'block', 'important');\n    activeItem.style.setProperty('visibility', 'visible', 'important');\n    activeItem.style.setProperty('opacity', '1', 'important');\n    activeItem.style.setProperty('left', 'auto', 'important');\n    activeItem.style.setProperty('transform', 'none', 'important');\n\n    if (slider) {\n      slider.style.setProperty('left', '0', 'important');\n      slider.style.setProperty('position', 'relative', 'important');\n      slider.style.setProperty('transform', 'translateX(0px)', 'important');\n    }\n\n    height = Math.ceil(activeItem.scrollHeight || activeItem.getBoundingClientRect().height || 0);\n\n    if (applyMobileGallerySquareFrame(gallery, carousel, activeItem)) {\n      return;\n    }\n\n    if (height > 160) {\n      carousel.style.setProperty('min-height', height + 'px', 'important');\n      if (viewport) {\n        viewport.style.setProperty('height', height + 'px', 'important');\n        viewport.style.setProperty('min-height', height + 'px', 'important');\n      }\n    }\n  }\n\n  function scrollActiveThumbnail(thumbnail) {\n    if (!thumbnail || typeof thumbnail.scrollIntoView !== 'function') {\n      return;\n    }\n\n    try {\n      thumbnail.scrollIntoView({ block: 'nearest', inline: 'center' });\n    } catch (error) {\n      thumbnail.scrollIntoView(false);\n    }\n  }\n\n  function selectGalleryMedia(sectionRoot, mediaId) {\n    var gallery = null;\n    var carousel = null;\n    var activeItem = null;\n    var activeThumbnail = null;\n\n    if (!sectionRoot || !mediaId) {\n      return false;\n    }\n\n    gallery = sectionRoot.querySelector('.product-gallery');\n    carousel = sectionRoot.querySelector('.product-gallery__carousel');\n    activeItem = sectionRoot.querySelector('.product-gallery__carousel-item[data-media-id=\"' + mediaId + '\"]:not(.is-filtered)') ||\n      sectionRoot.querySelector('.product-gallery__carousel-item[data-media-id=\"' + mediaId + '\"]');\n    activeThumbnail = sectionRoot.querySelector('.product-gallery__thumbnail[data-media-id=\"' + mediaId + '\"]:not(.is-filtered)') ||\n      sectionRoot.querySelector('.product-gallery__thumbnail[data-media-id=\"' + mediaId + '\"]');\n\n    if (!gallery || !carousel || !activeItem) {\n      return false;\n    }\n\n    showNode(activeItem);\n    forceActiveMediaVisible(activeItem);\n\n    toArray(sectionRoot.querySelectorAll('.product-gallery__carousel-item')).forEach(function(item) {\n      item.classList.toggle('is-selected', item === activeItem);\n      item.removeAttribute('data-tuokus-shared-detail-active');\n    });\n\n    if (isSharedDetailNode(activeItem)) {\n      activeItem.setAttribute('data-tuokus-shared-detail-active', 'true');\n    }\n\n    toArray(sectionRoot.querySelectorAll('.product-gallery__thumbnail')).forEach(function(item) {\n      item.classList.toggle('is-nav-selected', item === activeThumbnail);\n    });\n\n    if (activeThumbnail) {\n      showNode(activeThumbnail);\n      scrollActiveThumbnail(activeThumbnail);\n    }\n\n    carousel.setAttribute('data-initial-media-id', mediaId);\n    restoreGalleryHeight(gallery, carousel, activeItem);\n    syncFlickityToActive(carousel, activeItem);\n    normalizeGalleryStableLayout(gallery, carousel, activeItem);\n    normalizeMobileGalleryLock(gallery, carousel, activeItem);\n    normalizeMobileThumbnailRail(gallery);\n    restoreGalleryHeight(gallery, carousel, activeItem);\n\n    return true;\n  }\n\n  function syncGallery(sectionRoot) {\n    var gallery = null;\n    var carousel = null;\n    var thumbnailWrapper = null;\n    var carouselItems = [];\n    var thumbnails = [];\n    var selectedVariantId = '';\n    var selectedOptions = {};\n    var selectedOptionsKey = '';\n    var lastSelectedOptionsKey = '';\n    var lastVariantId = '';\n    var variantChanged = false;\n    var optionChanged = false;\n    var selectedVisibleItem = null;\n    var navSelectedThumbnail = null;\n    var navSelectedMediaId = '';\n    var forcedMediaId = '';\n    var forcedItem = null;\n    var variantMatchedItem = null;\n    var groupedMatchedItem = null;\n    var activeItem = null;\n    var activeMediaId = '';\n    var visibleCount = 0;\n\n    if (!sectionRoot) {\n      return;\n    }\n\n    gallery = sectionRoot.querySelector('.product-gallery');\n    carousel = sectionRoot.querySelector('.product-gallery__carousel');\n    thumbnailWrapper = sectionRoot.querySelector('.product-gallery > .scroller, .product-gallery__thumbnail-list-wrapper');\n    carouselItems = toArray(sectionRoot.querySelectorAll('.product-gallery__carousel-item'));\n    thumbnails = toArray(sectionRoot.querySelectorAll('.product-gallery__thumbnail'));\n    selectedVariantId = getSelectedVariantId(sectionRoot);\n    selectedOptions = getSelectedOptionValues(sectionRoot);\n    selectedOptionsKey = getSelectedOptionsKey(selectedOptions);\n    lastVariantId = String(sectionRoot.getAttribute('data-tuokus-last-variant-id') || '');\n    lastSelectedOptionsKey = String(sectionRoot.getAttribute('data-tuokus-last-options-key') || '');\n    variantChanged = Boolean(selectedVariantId && selectedVariantId !== lastVariantId);\n    optionChanged = Boolean(selectedOptionsKey && selectedOptionsKey !== lastSelectedOptionsKey);\n    forcedMediaId = String(sectionRoot.getAttribute('data-tuokus-forced-media-id') || '').trim();\n\n    if (!gallery || !carouselItems.length) {\n      return;\n    }\n\n    carouselItems.forEach(function(item) {\n      var variantIds = parseVariantIds(item);\n      var matchesVariant = selectedVariantId && variantIds.indexOf(selectedVariantId) > -1;\n      var matchesGroup = matchesGroupedMedia(item, selectedOptions);\n\n      if (isSharedDetailNode(item) || matchesVariant || matchesGroup) {\n        showNode(item);\n        return;\n      }\n\n      if (variantIds.length || item.getAttribute('data-group-name')) {\n        hideNode(item);\n      } else {\n        showNode(item);\n      }\n    });\n\n    thumbnails.forEach(function(item) {\n      var variantIds = parseVariantIds(item);\n      var matchesVariant = selectedVariantId && variantIds.indexOf(selectedVariantId) > -1;\n      var matchesGroup = matchesGroupedMedia(item, selectedOptions);\n\n      if (isSharedDetailNode(item) || matchesVariant || matchesGroup) {\n        showNode(item);\n        return;\n      }\n\n      if (variantIds.length || item.getAttribute('data-group-name')) {\n        hideNode(item);\n      } else {\n        showNode(item);\n      }\n    });\n\n    selectedVisibleItem = sectionRoot.querySelector('.product-gallery__carousel-item.is-selected:not(.is-filtered)');\n    navSelectedThumbnail = sectionRoot.querySelector('.product-gallery__thumbnail.is-nav-selected:not(.is-filtered)');\n    navSelectedMediaId = navSelectedThumbnail ? String(navSelectedThumbnail.getAttribute('data-media-id') || '') : '';\n    forcedItem = forcedMediaId ? carouselItems.find(function(item) {\n      return item.getAttribute('data-media-id') === forcedMediaId && !item.classList.contains('is-filtered');\n    }) || null : null;\n    variantMatchedItem = carouselItems.find(function(item) {\n      return parseVariantIds(item).indexOf(selectedVariantId) > -1;\n    }) || null;\n    groupedMatchedItem = carouselItems.find(function(item) {\n      return !item.classList.contains('is-filtered') && matchesGroupedMedia(item, selectedOptions);\n    }) || null;\n\n    if (variantChanged || optionChanged || !selectedVisibleItem) {\n      if (!forcedItem) {\n        sectionRoot.removeAttribute('data-tuokus-forced-media-id');\n      }\n      activeItem =\n        forcedItem ||\n        variantMatchedItem ||\n        groupedMatchedItem ||\n        selectedVisibleItem ||\n        getVisible(carouselItems)[0] ||\n        carouselItems[0];\n    } else {\n      activeItem =\n        forcedItem ||\n        selectedVisibleItem ||\n        (\n          navSelectedMediaId\n            ? carouselItems.find(function(item) {\n                return item.getAttribute('data-media-id') === navSelectedMediaId && !item.classList.contains('is-filtered');\n              })\n            : null\n        ) ||\n        variantMatchedItem ||\n        groupedMatchedItem ||\n        getVisible(carouselItems)[0] ||\n        carouselItems[0];\n    }\n\n    if (!activeItem) {\n      return;\n    }\n\n    showNode(activeItem);\n    forceActiveMediaVisible(activeItem);\n    activeMediaId = String(activeItem.getAttribute('data-media-id') || '');\n    sectionRoot.setAttribute('data-tuokus-last-variant-id', selectedVariantId);\n    sectionRoot.setAttribute('data-tuokus-last-options-key', selectedOptionsKey);\n\n    carouselItems.forEach(function(item) {\n      item.classList.toggle('is-selected', item === activeItem);\n      item.removeAttribute('data-tuokus-shared-detail-active');\n    });\n\n    if (isSharedDetailNode(activeItem)) {\n      activeItem.setAttribute('data-tuokus-shared-detail-active', 'true');\n    }\n\n    thumbnails.forEach(function(item) {\n      var isActive = activeMediaId && item.getAttribute('data-media-id') === activeMediaId;\n      item.classList.toggle('is-nav-selected', isActive);\n\n      if (isActive) {\n        showNode(item);\n        scrollActiveThumbnail(item);\n      }\n    });\n\n    visibleCount = Math.max(getVisible(carouselItems).length, getVisible(thumbnails).length);\n\n    if (visibleCount <= 0) {\n      showNode(activeItem);\n      forceActiveMediaVisible(activeItem);\n      visibleCount = 1;\n    }\n\n    gallery.setAttribute('data-visible-media-count', String(visibleCount));\n    gallery.classList.toggle('product-gallery--single-visible-media', visibleCount <= 1);\n    gallery.classList.toggle('product-gallery--few-visible-media', visibleCount > 1 && visibleCount <= 2);\n\n    if (thumbnailWrapper) {\n      thumbnailWrapper.classList.toggle('tuokus-shell--empty', visibleCount <= 0);\n    }\n\n    if (carousel) {\n      carousel.setAttribute('data-initial-media-id', activeMediaId);\n      restoreGalleryHeight(gallery, carousel, activeItem);\n      syncFlickityToActive(carousel, activeItem);\n      normalizeGalleryStableLayout(gallery, carousel, activeItem);\n      normalizeMobileGalleryLock(gallery, carousel, activeItem);\n      normalizeMobileThumbnailRail(gallery);\n      restoreGalleryHeight(gallery, carousel, activeItem);\n    }\n  }\n\n  function finalizeGalleryVisibility(sectionRoot) {\n    var gallery = null;\n    var carousel = null;\n    var carouselItems = [];\n    var thumbnails = [];\n    var selectedVariantId = '';\n    var selectedOptions = {};\n    var forcedMediaId = '';\n    var forcedItem = null;\n    var activeItem = null;\n    var activeMediaId = '';\n    var visibleCount = 0;\n\n    if (!sectionRoot) {\n      return;\n    }\n\n    gallery = sectionRoot.querySelector('.product-gallery');\n    carousel = sectionRoot.querySelector('.product-gallery__carousel');\n    carouselItems = toArray(sectionRoot.querySelectorAll('.product-gallery__carousel-item'));\n    thumbnails = toArray(sectionRoot.querySelectorAll('.product-gallery__thumbnail'));\n    selectedVariantId = getSelectedVariantId(sectionRoot);\n    selectedOptions = getSelectedOptionValues(sectionRoot);\n    forcedMediaId = String(sectionRoot.getAttribute('data-tuokus-forced-media-id') || '').trim();\n\n    if (!gallery || !carouselItems.length) {\n      return;\n    }\n\n    forcedItem = forcedMediaId ? carouselItems.find(function(item) {\n      return item.getAttribute('data-media-id') === forcedMediaId && !item.classList.contains('is-filtered');\n    }) || null : null;\n\n    activeItem = forcedItem || carouselItems.find(function(item) {\n      return selectedVariantId && parseVariantIds(item).indexOf(selectedVariantId) > -1;\n    }) || carouselItems.find(function(item) {\n      return matchesGroupedMedia(item, selectedOptions);\n    }) || sectionRoot.querySelector('.product-gallery__carousel-item.is-selected:not(.is-filtered)') || getVisible(carouselItems)[0] || carouselItems[0];\n\n    carouselItems.forEach(function(item) {\n      var matchesVariant = selectedVariantId && parseVariantIds(item).indexOf(selectedVariantId) > -1;\n      var matchesGroup = matchesGroupedMedia(item, selectedOptions);\n      var shared = isSharedDetailNode(item);\n      var shouldShow = item === activeItem || matchesVariant || matchesGroup || shared;\n\n      item.classList.toggle('is-selected', item === activeItem);\n\n      if (shouldShow) {\n        showNode(item);\n      } else if (parseVariantIds(item).length || item.getAttribute('data-group-name')) {\n        hideNode(item);\n      } else {\n        showNode(item);\n      }\n    });\n\n    if (activeItem) {\n      forceActiveMediaVisible(activeItem);\n      activeMediaId = String(activeItem.getAttribute('data-media-id') || '');\n    }\n\n    thumbnails.forEach(function(item) {\n      var matchesVariant = selectedVariantId && parseVariantIds(item).indexOf(selectedVariantId) > -1;\n      var matchesGroup = matchesGroupedMedia(item, selectedOptions);\n      var shared = isSharedDetailNode(item);\n      var isActive = activeMediaId && item.getAttribute('data-media-id') === activeMediaId;\n      var shouldShow = isActive || matchesVariant || matchesGroup || shared;\n\n      item.classList.toggle('is-nav-selected', isActive);\n\n      if (shouldShow) {\n        showNode(item);\n        if (isActive) {\n          scrollActiveThumbnail(item);\n        }\n      } else if (parseVariantIds(item).length || item.getAttribute('data-group-name')) {\n        hideNode(item);\n      }\n    });\n\n    visibleCount = Math.max(getVisible(carouselItems).length, getVisible(thumbnails).length);\n    gallery.setAttribute('data-visible-media-count', String(Math.max(visibleCount, 1)));\n    gallery.classList.toggle('product-gallery--single-visible-media', visibleCount <= 1);\n    gallery.classList.toggle('product-gallery--few-visible-media', visibleCount > 1 && visibleCount <= 2);\n\n    if (carousel && activeMediaId) {\n      carousel.setAttribute('data-initial-media-id', activeMediaId);\n      restoreGalleryHeight(gallery, carousel, activeItem);\n      syncFlickityToActive(carousel, activeItem);\n      normalizeGalleryStableLayout(gallery, carousel, activeItem);\n      normalizeMobileGalleryLock(gallery, carousel, activeItem);\n      restoreGalleryHeight(gallery, carousel, activeItem);\n    }\n  }\n\n  function queueGalleryVisibility(sectionRoot) {\n    if (!sectionRoot) {\n      return;\n    }\n\n    [0, 80, 180, 360, 720, 1200, 1800].forEach(function(delay) {\n      window.setTimeout(function() {\n        syncGallery(sectionRoot);\n        finalizeGalleryVisibility(sectionRoot);\n      }, delay);\n    });\n  }\n\n  function syncPromotionShells(scope) {\n    toArray((scope || document).querySelectorAll('.product-gallery__promotion-shell, .product-gallery__promotion-shell--desktop-only, .product-block-list__item--mobile-promotion')).forEach(function(shell) {\n      var hasCards = shell.querySelector('.product-item, .tuokus-rail-card, .tuokus-merch-card');\n      var desktopOnlyShell = shell.classList.contains('product-gallery__promotion-shell') || shell.classList.contains('product-gallery__promotion-shell--desktop-only') || shell.classList.contains('hidden-pocket');\n      var mobileOnlyShell = shell.classList.contains('product-block-list__item--mobile-promotion') || shell.classList.contains('hidden-tablet-and-up');\n      var forceHide = !hasCards || (isMobileViewport() && desktopOnlyShell) || (!isMobileViewport() && mobileOnlyShell);\n\n      shell.classList.toggle('tuokus-shell--empty', forceHide);\n      shell.hidden = forceHide;\n      shell.setAttribute('aria-hidden', forceHide ? 'true' : 'false');\n\n      if (forceHide) {\n        shell.style.display = 'none';\n      } else {\n        shell.style.removeProperty('display');\n        forceImages(shell);\n      }\n    });\n  }\n\n  function getControlFromRailTrigger(trigger) {\n    var forId = '';\n    var control = null;\n\n    if (!trigger) {\n      return null;\n    }\n\n    if (trigger.control) {\n      control = trigger.control;\n    }\n\n    if (!control && trigger.getAttribute) {\n      forId = trigger.getAttribute('for') || '';\n\n      if (forId) {\n        control = document.getElementById(forId);\n      }\n    }\n\n    if (!control && trigger.querySelector) {\n      control = trigger.querySelector('input[data-option-position]');\n    }\n\n    if (!control && trigger.closest) {\n      var swatch = trigger.closest('.variant-swatch, .block-swatch, .color-swatch');\n\n      if (swatch) {\n        control = swatch.querySelector('input[data-option-position]');\n      }\n    }\n\n    return control && control.matches && control.matches('input[data-option-position]') ? control : null;\n  }\n\n  function revealSelectedControl(control) {\n    var rail = null;\n    var card = null;\n\n    if (!control || !control.closest) {\n      return;\n    }\n\n    card = control.closest('.variant-swatch, .block-swatch, .color-swatch') ||\n      (control.id ? document.querySelector('label[for=\"' + control.id.replace(/\"/g, '\\\\\"') + '\"]') : null);\n    rail = card && card.closest ? card.closest(GENERIC_RAIL_SELECTOR) : null;\n\n    if (!rail || !card || typeof card.scrollIntoView !== 'function') {\n      return;\n    }\n\n    window.requestAnimationFrame(function() {\n      card.scrollIntoView({ block: 'nearest', inline: 'nearest', behavior: 'smooth' });\n    });\n  }\n\n  function bindRail(rail) {\n    var state = null;\n    var pointerOptions = { capture: true, passive: false };\n    var globalListenersBound = false;\n    var getPoint = function(event) {\n      var touch = null;\n\n      if (event && event.touches && event.touches.length) {\n        touch = event.touches[0];\n      } else if (event && event.changedTouches && event.changedTouches.length) {\n        touch = event.changedTouches[0];\n      }\n\n      return touch || event;\n    };\n    var addGlobalListeners = function(type) {\n      if (globalListenersBound) {\n        return;\n      }\n\n      if (type === 'touch') {\n        document.addEventListener('touchmove', moveDrag, pointerOptions);\n        document.addEventListener('touchend', finishDrag, pointerOptions);\n        document.addEventListener('touchcancel', finishDrag, pointerOptions);\n      } else if (type === 'mouse') {\n        document.addEventListener('mousemove', moveDrag, pointerOptions);\n        document.addEventListener('mouseup', finishDrag, pointerOptions);\n      } else {\n        document.addEventListener('pointermove', moveDrag, pointerOptions);\n        document.addEventListener('pointerup', finishDrag, pointerOptions);\n        document.addEventListener('pointercancel', finishDrag, pointerOptions);\n      }\n\n      globalListenersBound = true;\n    };\n    var removeGlobalListeners = function() {\n      if (!globalListenersBound) {\n        return;\n      }\n\n      document.removeEventListener('touchmove', moveDrag, pointerOptions);\n      document.removeEventListener('touchend', finishDrag, pointerOptions);\n      document.removeEventListener('touchcancel', finishDrag, pointerOptions);\n      document.removeEventListener('mousemove', moveDrag, pointerOptions);\n      document.removeEventListener('mouseup', finishDrag, pointerOptions);\n      document.removeEventListener('pointermove', moveDrag, pointerOptions);\n      document.removeEventListener('pointerup', finishDrag, pointerOptions);\n      document.removeEventListener('pointercancel', finishDrag, pointerOptions);\n      globalListenersBound = false;\n    };\n    var startDrag = function(event) {\n      var point = getPoint(event);\n      var trigger = null;\n      var control = null;\n      var pointerId = event && typeof event.pointerId === 'number' ? event.pointerId : null;\n\n      if (event && event.type === 'mousedown' && event.button !== 0) {\n        return;\n      }\n\n      if (event && event.type === 'pointerdown' && event.pointerType !== 'touch' && event.button !== 0) {\n        return;\n      }\n\n      if (!point) {\n        return;\n      }\n\n      trigger = event.target && event.target.closest ? event.target.closest('label[for], .variant-swatch__item[for], .block-swatch__item[for], .color-swatch__item[for], .variant-swatch, .block-swatch, .color-swatch') : null;\n      control = getControlFromRailTrigger(trigger);\n\n      state = {\n        pointerId: pointerId,\n        type: event.type.indexOf('touch') === 0 ? 'touch' : event.type.indexOf('mouse') === 0 ? 'mouse' : 'pointer',\n        startX: point.clientX,\n        startY: point.clientY,\n        startScrollLeft: rail.scrollLeft,\n        moved: false,\n        captured: false,\n        control: control\n      };\n\n      rail.__tuokusLastPointerScrollLeft = rail.scrollLeft;\n      rail.__tuokusLastPointerTime = Date.now();\n      addGlobalListeners(state.type);\n    };\n    var moveDrag = function(event) {\n      var point = getPoint(event);\n      var deltaX = 0;\n      var deltaY = 0;\n\n      if (!state || !point) {\n        return;\n      }\n\n      if (event && typeof event.pointerId === 'number' && state.pointerId !== null && state.pointerId !== event.pointerId) {\n        return;\n      }\n\n      deltaX = point.clientX - state.startX;\n      deltaY = point.clientY - state.startY;\n\n      if (!state.moved && Math.abs(deltaX) > 6 && Math.abs(deltaX) > Math.abs(deltaY)) {\n        state.moved = true;\n        rail.style.cursor = 'grabbing';\n        rail.classList.add('is-swatch-dragging');\n        dragMap.get(rail).suppressClick = true;\n\n        if (event && typeof event.pointerId === 'number' && !state.captured && typeof rail.setPointerCapture === 'function') {\n          rail.setPointerCapture(event.pointerId);\n          state.captured = true;\n        }\n      }\n\n      if (!state.moved) {\n        return;\n      }\n\n      rail.scrollLeft = state.startScrollLeft - deltaX;\n      rail.__tuokusLastPointerScrollLeft = rail.scrollLeft;\n      rail.__tuokusLastPointerTime = Date.now();\n\n      if (event && event.cancelable) {\n        event.preventDefault();\n      }\n    };\n    var finishDrag = function(event) {\n      var tapControl = null;\n      var stableScrollLeft = null;\n\n      if (!state) {\n        return;\n      }\n\n      if (event && typeof event.pointerId === 'number' && state.pointerId !== null && state.pointerId !== event.pointerId) {\n        return;\n      }\n\n      tapControl = !state.moved ? state.control : null;\n      stableScrollLeft = state.moved ? rail.scrollLeft : state.startScrollLeft;\n      rail.__tuokusLastPointerScrollLeft = stableScrollLeft;\n      rail.__tuokusLastPointerTime = Date.now();\n\n      if (event && state.captured && typeof rail.releasePointerCapture === 'function' && state.pointerId !== null && rail.hasPointerCapture(state.pointerId)) {\n        rail.releasePointerCapture(state.pointerId);\n      }\n\n      rail.style.cursor = 'grab';\n      rail.classList.remove('is-swatch-dragging');\n      removeGlobalListeners();\n\n      window.setTimeout(function() {\n        var railState = dragMap.get(rail);\n\n        if (railState) {\n          railState.suppressClick = false;\n        }\n      }, state.moved ? 180 : 0);\n\n      state = null;\n\n      if (tapControl && tapControl.matches && tapControl.matches('input[data-option-position]')) {\n        activateOptionControl(tapControl, rail, event, stableScrollLeft);\n        queueRecovery(tapControl.closest(PRODUCT_SECTION_SELECTOR));\n        queueGalleryVisibility(tapControl.closest(PRODUCT_SECTION_SELECTOR));\n      }\n    };\n\n    if (!rail) {\n      return;\n    }\n\n    forceImages(rail);\n    [120, 360, 760, 1400].forEach(function(delay) {\n      window.setTimeout(function() {\n        forceImages(rail);\n      }, delay);\n    });\n\n    if (rail.dataset.tuokusRecoveryRailBound === 'true') {\n      return;\n    }\n\n    rail.dataset.tuokusRecoveryRailBound = 'true';\n    rail.style.cursor = 'grab';\n\n    toArray(rail.querySelectorAll('img')).forEach(function(image) {\n      image.setAttribute('draggable', 'false');\n    });\n\n    dragMap.set(rail, { suppressClick: false });\n\n    rail.addEventListener('pointerdown', startDrag, pointerOptions);\n    rail.addEventListener('pointermove', moveDrag, pointerOptions);\n    rail.addEventListener('pointerup', finishDrag, pointerOptions);\n    rail.addEventListener('pointercancel', finishDrag, pointerOptions);\n    rail.addEventListener('lostpointercapture', finishDrag, true);\n    rail.addEventListener('mousedown', startDrag, { capture: true, passive: true });\n    rail.addEventListener('mousemove', moveDrag, pointerOptions);\n    rail.addEventListener('mouseup', finishDrag, pointerOptions);\n    rail.addEventListener('mouseleave', finishDrag, pointerOptions);\n    rail.addEventListener('touchstart', startDrag, { capture: true, passive: true });\n    rail.addEventListener('touchmove', moveDrag, pointerOptions);\n    rail.addEventListener('touchend', finishDrag, pointerOptions);\n    rail.addEventListener('touchcancel', finishDrag, pointerOptions);\n\n    rail.addEventListener('click', function(event) {\n      var railState = dragMap.get(rail);\n      var trigger = event.target && event.target.closest ? event.target.closest('label[for], .variant-swatch__item[for], .block-swatch__item[for], .color-swatch__item[for], .variant-swatch, .block-swatch, .color-swatch') : null;\n      var control = null;\n      var sectionRoot = null;\n      var stableScrollLeft = getInteractionScrollLeft(rail);\n\n      if (railState && railState.suppressClick) {\n        event.preventDefault();\n        event.stopPropagation();\n        railState.suppressClick = false;\n        return;\n      }\n\n      if (!trigger) {\n        return;\n      }\n\n      control = getControlFromRailTrigger(trigger);\n\n      if (!control || !control.matches || !control.matches('input[data-option-position]') || control.disabled) {\n        return;\n      }\n\n      sectionRoot = control.closest(PRODUCT_SECTION_SELECTOR);\n      activateOptionControl(control, rail, event, stableScrollLeft);\n\n      if (sectionRoot) {\n        queueRecovery(sectionRoot);\n        queueGalleryVisibility(sectionRoot);\n      }\n    }, true);\n  }\n\n  function bindRails(scope) {\n    toArray((scope || document).querySelectorAll(GENERIC_RAIL_SELECTOR)).forEach(bindRail);\n  }\n\n  function queueRecovery(sectionRoot) {\n    [40, 140, 280, 520, 900, 1400].forEach(function(delay) {\n      window.setTimeout(function() {\n        runRecovery(sectionRoot);\n      }, delay);\n    });\n  }\n\n  function runRecovery(scope) {\n    var root = scope && scope.querySelectorAll ? scope : document;\n    var productSections = [];\n\n    injectRuntimeStyles();\n    normalizeSearchForms(root);\n    normalizeSupportCopy(root);\n    collapseBlankReviews(root);\n    prepareCouponButtons(root);\n    syncPromotionShells(root);\n    normalizeRecommendationRails(root);\n    bindRails(root);\n\n    if (root.matches && root.matches(PRODUCT_SECTION_SELECTOR)) {\n      productSections.push(root);\n    }\n\n    productSections = productSections.concat(toArray(root.querySelectorAll(PRODUCT_SECTION_SELECTOR)));\n\n    productSections.forEach(function(sectionRoot) {\n      reorderProductFlow(sectionRoot);\n      reorderVariantSelector(sectionRoot);\n      applyCompactMobileControls(sectionRoot);\n      syncGallery(sectionRoot);\n      finalizeGalleryVisibility(sectionRoot);\n      syncPromotionShells(sectionRoot);\n      collapseBlankReviews(sectionRoot);\n      normalizeRecommendationRails(sectionRoot);\n      restoreRememberedRails(sectionRoot);\n    });\n  }\n\n  document.addEventListener('click', function(event) {\n    var trigger = event.target && event.target.closest ? event.target.closest('label[for], .variant-swatch, .block-swatch, .color-swatch') : null;\n    var control = getControlFromRailTrigger(trigger);\n    var card = control && control.closest ? control.closest('.variant-swatch, .block-swatch, .color-swatch') : null;\n    var rail = card && card.closest ? card.closest(GENERIC_RAIL_SELECTOR) : null;\n    var stableScrollLeft = getInteractionScrollLeft(rail);\n\n    if (!control || !rail) {\n      return;\n    }\n\n    activateOptionControl(control, rail, event, stableScrollLeft);\n    queueRecovery(control.closest(PRODUCT_SECTION_SELECTOR));\n    queueGalleryVisibility(control.closest(PRODUCT_SECTION_SELECTOR));\n  }, true);\n\n  document.addEventListener('click', handleCouponCopy, true);\n  document.addEventListener('submit', handleSearchSubmit, true);\n  document.addEventListener('keydown', handleSearchKeydown, true);\n\n  document.addEventListener('click', function(event) {\n    var button = event.target && event.target.closest ? event.target.closest('.search-bar__submit, button[type=\"submit\"], input[type=\"submit\"]') : null;\n    var form = button ? button.closest(SEARCH_FORM_SELECTOR) : null;\n\n    if (form) {\n      submitSearchForm(form, event);\n    }\n  }, true);\n\n  function bindGlobalRailDrag() {\n    var active = null;\n    var moveOptions = { capture: true, passive: false };\n    var startOptions = { capture: true, passive: false };\n    var clickWindow = 260;\n    var getPoint = function(event) {\n      if (event && event.touches && event.touches.length) {\n        return event.touches[0];\n      }\n\n      if (event && event.changedTouches && event.changedTouches.length) {\n        return event.changedTouches[0];\n      }\n\n      return event;\n    };\n    var getRail = function(event) {\n      return event && event.target && event.target.closest ? event.target.closest(GENERIC_RAIL_SELECTOR) : null;\n    };\n    var isSamePointer = function(event) {\n      return !active || active.pointerId === null || typeof event.pointerId !== 'number' || event.pointerId === active.pointerId;\n    };\n    var start = function(event) {\n      var rail = getRail(event);\n      var point = getPoint(event);\n\n      if (event && event.type === 'mousedown' && event.button !== 0) {\n        return;\n      }\n\n      if (event && event.type === 'pointerdown' && event.pointerType !== 'touch' && event.button !== 0) {\n        return;\n      }\n\n      if (!rail || !point || rail.scrollWidth <= rail.clientWidth + 8) {\n        return;\n      }\n\n      active = {\n        rail: rail,\n        pointerId: event && typeof event.pointerId === 'number' ? event.pointerId : null,\n        startX: point.clientX,\n        startY: point.clientY,\n        startScrollLeft: rail.scrollLeft,\n        moved: false\n      };\n\n      rail.__tuokusLastPointerScrollLeft = rail.scrollLeft;\n      rail.__tuokusLastPointerTime = Date.now();\n    };\n    var move = function(event) {\n      var point = getPoint(event);\n      var deltaX = 0;\n      var deltaY = 0;\n\n      if (!active || !point || !isSamePointer(event)) {\n        return;\n      }\n\n      deltaX = point.clientX - active.startX;\n      deltaY = point.clientY - active.startY;\n\n      if (!active.moved) {\n        if (Math.abs(deltaY) > 12 && Math.abs(deltaY) > Math.abs(deltaX) * 1.25) {\n          active = null;\n          return;\n        }\n\n        if (Math.abs(deltaX) < 7 || Math.abs(deltaX) < Math.abs(deltaY)) {\n          return;\n        }\n\n        active.moved = true;\n        active.rail.classList.add('is-swatch-dragging');\n        active.rail.style.cursor = 'grabbing';\n      }\n\n      active.rail.scrollLeft = active.startScrollLeft - deltaX;\n      active.rail.__tuokusLastPointerScrollLeft = active.rail.scrollLeft;\n      active.rail.__tuokusLastPointerTime = Date.now();\n\n      if (event && event.cancelable) {\n        event.preventDefault();\n      }\n\n      if (event && event.stopPropagation) {\n        event.stopPropagation();\n      }\n    };\n    var end = function(event) {\n      var rail = active ? active.rail : null;\n\n      if (!active || !isSamePointer(event)) {\n        return;\n      }\n\n      if (active.moved && rail) {\n        rail.__tuokusGlobalDragClickUntil = Date.now() + clickWindow;\n        rail.__tuokusLastPointerScrollLeft = rail.scrollLeft;\n        rail.__tuokusLastPointerTime = Date.now();\n      }\n\n      if (rail) {\n        rail.classList.remove('is-swatch-dragging');\n        rail.style.cursor = 'grab';\n      }\n\n      active = null;\n    };\n    var cancelClick = function(event) {\n      var rail = getRail(event);\n\n      if (!rail || !rail.__tuokusGlobalDragClickUntil || Date.now() > rail.__tuokusGlobalDragClickUntil) {\n        return;\n      }\n\n      event.preventDefault();\n      event.stopPropagation();\n      rail.__tuokusGlobalDragClickUntil = 0;\n    };\n\n    if (document.documentElement.dataset.tuokusGlobalRailDragBound === 'true') {\n      return;\n    }\n\n    document.documentElement.dataset.tuokusGlobalRailDragBound = 'true';\n    document.addEventListener('pointerdown', start, startOptions);\n    document.addEventListener('pointermove', move, moveOptions);\n    document.addEventListener('pointerup', end, moveOptions);\n    document.addEventListener('pointercancel', end, moveOptions);\n    document.addEventListener('mousedown', start, startOptions);\n    document.addEventListener('mousemove', move, moveOptions);\n    document.addEventListener('mouseup', end, moveOptions);\n    document.addEventListener('touchstart', start, startOptions);\n    document.addEventListener('touchmove', move, moveOptions);\n    document.addEventListener('touchend', end, moveOptions);\n    document.addEventListener('touchcancel', end, moveOptions);\n    document.addEventListener('click', cancelClick, true);\n  }\n\n  bindGlobalRailDrag();\n\n  document.addEventListener('change', function(event) {\n    var sectionRoot = event.target && event.target.closest ? event.target.closest(PRODUCT_SECTION_SELECTOR) : null;\n\n    if (!sectionRoot) {\n      return;\n    }\n\n    sectionRoot.removeAttribute('data-tuokus-forced-media-id');\n    queueRecovery(sectionRoot);\n    queueGalleryVisibility(sectionRoot);\n  }, true);\n\n  document.addEventListener('click', function(event) {\n    var sectionRoot = event.target && event.target.closest ? event.target.closest(PRODUCT_SECTION_SELECTOR) : null;\n    var thumbnail = event.target && event.target.closest ? event.target.closest('.product-gallery__thumbnail') : null;\n    var mediaId = thumbnail ? String(thumbnail.getAttribute('data-media-id') || '').trim() : '';\n\n    if (!sectionRoot) {\n      return;\n    }\n\n    if (thumbnail && mediaId) {\n      event.preventDefault();\n      event.stopPropagation();\n      if (typeof event.stopImmediatePropagation === 'function') {\n        event.stopImmediatePropagation();\n      }\n      sectionRoot.setAttribute('data-tuokus-forced-media-id', mediaId);\n      selectGalleryMedia(sectionRoot, mediaId);\n      [0, 80, 220].forEach(function(delay) {\n        window.setTimeout(function() {\n          if (sectionRoot.getAttribute('data-tuokus-forced-media-id') === mediaId) {\n            selectGalleryMedia(sectionRoot, mediaId);\n          }\n        }, delay);\n      });\n      queueRecovery(sectionRoot);\n      queueGalleryVisibility(sectionRoot);\n      return;\n    }\n\n    if (event.target.closest('.variant-swatch, .block-swatch, .color-swatch, .product-gallery__thumbnail')) {\n      sectionRoot.removeAttribute('data-tuokus-forced-media-id');\n      queueRecovery(sectionRoot);\n      queueGalleryVisibility(sectionRoot);\n    }\n  }, true);\n\n  document.addEventListener('variant:change', function(event) {\n    var sectionRoot = event.target && event.target.closest ? event.target.closest(PRODUCT_SECTION_SELECTOR) : null;\n\n    if (!sectionRoot && event.detail && event.detail.sectionId) {\n      sectionRoot = document.querySelector(PRODUCT_SECTION_SELECTOR + '[data-section-id=\"' + event.detail.sectionId + '\"]');\n    }\n\n    if (sectionRoot) {\n      sectionRoot.removeAttribute('data-tuokus-forced-media-id');\n    }\n    queueGalleryVisibility(sectionRoot);\n  }, true);\n\n  document.addEventListener('variant:changed', function(event) {\n    var sectionRoot = event.target && event.target.closest ? event.target.closest(PRODUCT_SECTION_SELECTOR) : null;\n\n    if (!sectionRoot && event.detail && event.detail.sectionId) {\n      sectionRoot = document.querySelector(PRODUCT_SECTION_SELECTOR + '[data-section-id=\"' + event.detail.sectionId + '\"]');\n    }\n\n    if (!sectionRoot) {\n      return;\n    }\n\n    sectionRoot.removeAttribute('data-tuokus-forced-media-id');\n    queueRecovery(sectionRoot);\n    queueGalleryVisibility(sectionRoot);\n  }, true);\n\n  document.addEventListener('product:rerender', function(event) {\n    var sectionRoot = event.target && event.target.closest ? event.target.closest(PRODUCT_SECTION_SELECTOR) : null;\n\n    queueGalleryVisibility(sectionRoot);\n  }, true);\n\n  document.addEventListener('shopify:section:load', function(event) {\n    window.requestAnimationFrame(function() {\n      runRecovery(event.target || document);\n    });\n  });\n\n  document.addEventListener('theme:loading:end', function(event) {\n    window.requestAnimationFrame(function() {\n      runRecovery(event.target || document);\n    });\n  });\n\n  window.addEventListener('resize', function() {\n    window.requestAnimationFrame(function() {\n      runRecovery(document);\n    });\n  });\n\n  window.addEventListener('pageshow', function() {\n    window.requestAnimationFrame(function() {\n      runRecovery(document);\n    });\n  });\n\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', function() {\n      runRecovery(document);\n    }, { once: true });\n  } else {\n    runRecovery(document);\n  }\n\n  [700, 1600, 3200, 5200].forEach(function(delay) {\n    window.setTimeout(function() {\n      runRecovery(document);\n    }, delay);\n  });\n})();\n"],
  "mappings": "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",
  "names": []
}
