{
  "version": 3,
  "sources": ["/cdn/shop/t/33/assets/custom.js?cb=20260712-livefix8"],
  "sourcesContent": ["\uFEFF/* Tuokus live rebuild marker 2026-06-21 01:18 HKT */\r\n/**\r\n * Include your custom JavaScript here.\r\n *\r\n * We also offer some hooks so you can plug your own logic. For instance, if you want to be notified when the variant\r\n * changes on product page, you can attach a listener to the document:\r\n *\r\n * document.addEventListener('variant:changed', function(event) {\r\n *   var variant = event.detail.variant; // Gives you access to the whole variant details\r\n * });\r\n *\r\n * You can also add a listener whenever a product is added to the cart:\r\n *\r\n * document.addEventListener('product:added', function(event) {\r\n *   var variant = event.detail.variant; // Get the variant that was added\r\n *   var quantity = event.detail.quantity; // Get the quantity that was added\r\n * });\r\n *\r\n * If you are an app developer and requires the theme to re-render the mini-cart, you can trigger your own event. If\r\n * you are adding a product, you need to trigger the \"product:added\" event, and make sure that you pass the quantity\r\n * that was added so the theme can properly update the quantity:\r\n *\r\n * document.documentElement.dispatchEvent(new CustomEvent('product:added', {\r\n *   bubbles: true,\r\n *   detail: {\r\n *     quantity: 1\r\n *   }\r\n * }));\r\n *\r\n * If you just want to force refresh the mini-cart without adding a specific product, you can trigger the event\r\n * \"cart:refresh\" in a similar way (in that case, passing the quantity is not necessary):\r\n *\r\n * document.documentElement.dispatchEvent(new CustomEvent('cart:refresh', {\r\n *   bubbles: true\r\n * }));\r\n */\r\n\r\n(function() {\n  if (window.__TUOKUS_FINAL_RECOVERY_ACTIVE) {\n    return;\n  }\n\n  var SWATCH_TRACK_SELECTOR = '.color-swatch-list--large, .block-swatch-list, .variant-swatch-list';\n  var GALLERY_TRACK_SELECTOR = '.product-gallery__thumbnail-list';\r\n  var GENERIC_RAIL_SELECTOR = '.tuokus-promo-module__rail, .tuokus-collection-discovery__rail, .activity-product-list, .product-list--scrollable, .template-index [id$=\"__homepage_featured_collections\"] [data-section-type=\"activity-featured-collections\"] .activity-collection-grid';\r\n  var GENERIC_RAIL_TRACK_SELECTOR = '[data-tuokus-drag-track=\"generic\"]';\r\n  var SWATCH_INTERACTIVE_SELECTOR = '.variant-swatch__item, .block-swatch__item, .color-swatch__item';\r\n  var DRAG_THRESHOLD_MOUSE = 5;\r\n  var DRAG_THRESHOLD_TOUCH = 8;\r\n  var DRAG_SUPPRESS_MS = 220;\r\n  var optionRootFrames = new WeakMap();\r\n  var optionRealignFrames = Object.create(null);\r\n  var optionRealignTimers = Object.create(null);\r\n  var pickerRealignFrames = Object.create(null);\r\n  var galleryRealignFrames = Object.create(null);\r\n  var optionScrollMemory = Object.create(null);\r\n  var lastOptionByForm = Object.create(null);\r\n  var forcedVariantSyncTimers = Object.create(null);\r\n  var dragState = null;\r\n  var genericRailDragState = null;\r\n  var genericRailInitFrame = 0;\r\n  var genericRailObserver = null;\r\n\r\n  function formUsesProductRerender(formId) {\r\n    if (!formId) {\r\n      return false;\r\n    }\r\n\r\n    return Boolean(document.querySelector('product-rerender[observe-form=\"' + formId + '\"]'));\r\n  }\r\n\r\n  function getOptionKey(formId, optionPosition) {\r\n    if (!formId || !optionPosition) {\r\n      return null;\r\n    }\r\n\r\n    return formId + '::' + optionPosition;\r\n  }\r\n\r\n  function getOptionTrack(optionRoot) {\r\n    if (!optionRoot || !optionRoot.querySelector) {\r\n      return null;\r\n    }\r\n\r\n    return optionRoot.querySelector(SWATCH_TRACK_SELECTOR);\r\n  }\r\n\r\n  function getControlForm(control) {\r\n    if (!control) {\r\n      return null;\r\n    }\r\n\r\n    return control.form || getFormById(control.getAttribute('form'));\r\n  }\r\n\r\n  function getFormById(formId) {\r\n    if (!formId) {\r\n      return null;\r\n    }\r\n\r\n    return document.getElementById(formId) || document.forms.namedItem(formId) || null;\r\n  }\r\n\r\n  function getVariantControlFromTarget(target) {\r\n    if (!target || !target.closest) {\r\n      return null;\r\n    }\r\n\r\n    if (target.matches && target.matches('.product-form__single-selector[data-option-position]')) {\r\n      return target;\r\n    }\r\n\r\n    var label = target.closest('.variant-swatch__item[for], .block-swatch__item[for], .color-swatch__item[for], label[for]');\r\n\r\n    if (!label) {\r\n      return null;\r\n    }\r\n\r\n    return label.control || document.getElementById(label.getAttribute('for'));\r\n  }\r\n\r\n  function getPickerForFormId(formId) {\r\n    if (!formId) {\r\n      return null;\r\n    }\r\n\r\n    return document.querySelector('variant-picker[form-id=\"' + formId + '\"]');\r\n  }\r\n\r\n  function getOptionValuesForForm(form) {\r\n    if (!form) {\r\n      return [];\r\n    }\r\n\r\n    return Array.from(form.elements)\r\n      .filter(function(item) {\r\n        return item.matches(\r\n          'input[data-option-position]:checked, ' +\r\n          'input[data-option-position][type=\"hidden\"], ' +\r\n          'select[data-option-position]'\r\n        );\r\n      })\r\n      .sort(function(a, b) {\r\n        return parseInt(a.getAttribute('data-option-position'), 10) - parseInt(b.getAttribute('data-option-position'), 10);\r\n      })\r\n      .map(function(input) {\r\n        return input.value;\r\n      });\r\n  }\r\n\r\n  function normalizeProductOptionToken(value) {\r\n    return String(value || '')\r\n      .replace(/^[\\s\\u3000]+|[\\s\\u3000]+$/g, '')\r\n      .replace(/\\s+/g, ' ')\r\n      .split(':')[0]\r\n      .trim()\r\n      .toLowerCase();\r\n  }\r\n\r\n  function normalizeProductOptionName(value) {\r\n    var token = normalizeProductOptionToken(value);\r\n\r\n    if ([\r\n      'color',\r\n      'colour',\r\n      'couleur',\r\n      'cor',\r\n      'colore',\r\n      'farbe',\r\n      '\\u8272',\r\n      '\\u30ab\\u30e9\\u30fc'\r\n    ].indexOf(token) !== -1) {\r\n      return 'color';\r\n    }\r\n\r\n    if (['size', '\\u30b5\\u30a4\\u30ba'].indexOf(token) !== -1) {\r\n      return 'size';\r\n    }\r\n\r\n    if ([\r\n      'pattern',\r\n      'design',\r\n      'style',\r\n      '\\u67c4',\r\n      '\\u30c7\\u30b6\\u30a4\\u30f3',\r\n      '\\u30b9\\u30bf\\u30a4\\u30eb'\r\n    ].indexOf(token) !== -1) {\r\n      return 'pattern';\r\n    }\r\n\r\n    return token;\r\n  }\r\n\r\n  function getControlDisplayValue(control) {\r\n    var label = null;\r\n    var selectedOption = null;\r\n    var rawValue = '';\r\n    var controlId = '';\r\n\r\n    if (!control) {\r\n      return '';\r\n    }\r\n\r\n    if (control.matches && control.matches('select')) {\r\n      selectedOption = control.options && control.selectedIndex >= 0 ? control.options[control.selectedIndex] : null;\r\n      rawValue = selectedOption ? (selectedOption.getAttribute('data-raw-value') || selectedOption.text || selectedOption.value) : control.value;\r\n\r\n      return String(rawValue || '').trim();\r\n    }\r\n\r\n    controlId = String(control.id || '');\r\n\r\n    if (controlId) {\r\n      label = document.querySelector('label[for=\"' + controlId.replace(/\\\\/g, '\\\\\\\\').replace(/\"/g, '\\\\\"') + '\"]');\r\n    }\r\n\r\n    if (!label && control.closest) {\r\n      label = control.closest('label');\r\n    }\r\n\r\n    if (label) {\r\n      rawValue = label.getAttribute('data-raw-value') || label.getAttribute('data-display-value') || label.getAttribute('title') || label.textContent;\r\n    }\r\n\r\n    if (!rawValue) {\r\n      rawValue = control.value;\r\n    }\r\n\r\n    return String(rawValue || '').trim();\r\n  }\r\n\r\n  function getCurrentOptionValueMap(sectionRoot) {\r\n    var form = null;\r\n    var optionNameByPosition = Object.create(null);\r\n    var valueMap = Object.create(null);\r\n\r\n    if (!sectionRoot || !sectionRoot.querySelectorAll) {\r\n      return valueMap;\r\n    }\r\n\r\n    form = sectionRoot.querySelector('form[action*=\"/cart/add\"], form[id^=\"product-form\"]');\r\n\r\n    if (!form) {\r\n      return valueMap;\r\n    }\r\n\r\n    sectionRoot.querySelectorAll('.product-form__option').forEach(function(optionRoot) {\r\n      var control = optionRoot.querySelector('[data-option-position]');\r\n      var label = optionRoot.querySelector('.product-form__option-name');\r\n      var position = control ? String(control.getAttribute('data-option-position') || '') : '';\r\n      var optionName = normalizeProductOptionName(label ? label.textContent : (control ? control.getAttribute('name') : ''));\r\n\r\n      if (!position) {\r\n        return;\r\n      }\r\n\r\n      optionNameByPosition[position] = optionName || ('option' + position);\r\n    });\r\n\r\n    Array.from(form.elements)\r\n      .filter(function(item) {\r\n        return item.matches(\r\n          'input[data-option-position]:checked, ' +\r\n          'input[data-option-position][type=\"hidden\"], ' +\r\n          'select[data-option-position]'\r\n        );\r\n      })\r\n      .sort(function(a, b) {\r\n        return parseInt(a.getAttribute('data-option-position'), 10) - parseInt(b.getAttribute('data-option-position'), 10);\r\n      })\r\n      .forEach(function(control) {\r\n        var position = String(control.getAttribute('data-option-position') || '');\r\n        var optionName = optionNameByPosition[position] || ('option' + position);\r\n        var optionValue = normalizeProductOptionToken(getControlDisplayValue(control));\r\n\r\n        if (!position || !optionValue) {\r\n          return;\r\n        }\r\n\r\n        valueMap[optionName] = optionValue;\r\n        valueMap['option' + position] = optionValue;\r\n      });\r\n\r\n    return valueMap;\r\n  }\r\n\r\n  function matchesVariantIdsCsv(variantIdsCsv, variantId) {\r\n    var currentVariantId = variantId ? String(variantId) : '';\r\n    var value = String(variantIdsCsv || '').trim();\r\n\r\n    if (!currentVariantId || !value) {\r\n      return false;\r\n    }\r\n\r\n    return (',' + value + ',').indexOf(',' + currentVariantId + ',') !== -1;\r\n  }\r\n\r\n  function getGalleryItemGroupKey(item) {\r\n    var groupName = normalizeProductOptionName(item.getAttribute('data-group-name'));\r\n    var groupValue = normalizeProductOptionToken(item.getAttribute('data-group-value'));\r\n    var variantIdsCsv = String(item.getAttribute('data-variant-ids') || '').trim();\r\n\r\n    if (groupName && groupValue) {\r\n      return 'group:' + groupName + '::' + groupValue;\r\n    }\r\n\r\n    if (variantIdsCsv) {\r\n      return 'variant:' + variantIdsCsv;\r\n    }\r\n\r\n    return '';\r\n  }\r\n\r\n  function getGalleryItemGroupMatch(item, optionValueMap) {\n    var groupName = normalizeProductOptionName(item.getAttribute('data-group-name'));\n    var groupValue = normalizeProductOptionToken(item.getAttribute('data-group-value'));\n    var currentOptionValue = '';\n\r\n    if (!groupName || !groupValue) {\r\n      return null;\r\n    }\r\n\r\n    currentOptionValue = optionValueMap && optionValueMap[groupName] ? optionValueMap[groupName] : '';\r\n\r\n    if (!currentOptionValue) {\r\n      return null;\r\n    }\r\n\n    return currentOptionValue === groupValue;\n  }\n\n  function getPreferredVisibleGalleryItem(sectionRoot, visibleCarouselItems, currentVariantId, currentOptionValueMap) {\n    var variantId = currentVariantId ? String(currentVariantId) : '';\n    var selectedVisibleItem = null;\n    var exactVariantItem = null;\n    var groupedItem = null;\n\n    if (!sectionRoot || !visibleCarouselItems || !visibleCarouselItems.length) {\n      return null;\n    }\n\n    selectedVisibleItem = sectionRoot.querySelector('.product-gallery__carousel-item.is-selected:not(.is-filtered)');\n\n    visibleCarouselItems.some(function(item) {\n      if (variantId && matchesVariantIdsCsv(item.getAttribute('data-variant-ids'), variantId)) {\n        exactVariantItem = item;\n        return true;\n      }\n\n      return false;\n    });\n\n    visibleCarouselItems.some(function(item) {\n      if (getGalleryItemGroupMatch(item, currentOptionValueMap) === true) {\n        groupedItem = item;\n        return true;\n      }\n\n      return false;\n    });\n\n    if (selectedVisibleItem) {\n      if (!variantId) {\n        return selectedVisibleItem;\n      }\n\n      if (matchesVariantIdsCsv(selectedVisibleItem.getAttribute('data-variant-ids'), variantId)) {\n        return selectedVisibleItem;\n      }\n\n      if (getGalleryItemGroupMatch(selectedVisibleItem, currentOptionValueMap) === true) {\n        return selectedVisibleItem;\n      }\n    }\n\n    return exactVariantItem || groupedItem || selectedVisibleItem || visibleCarouselItems[0] || null;\n  }\n\n  function restoreVariantPrimaryGalleryMedia(sectionRoot, currentVariantId, currentOptionValueMap) {\n    var variantId = currentVariantId ? String(currentVariantId) : '';\n    var preferredItem = null;\n    var mediaId = '';\n    var thumbnail = null;\n\n    if (!sectionRoot || !sectionRoot.querySelectorAll) {\n      return null;\n    }\n\n    preferredItem = Array.prototype.slice.call(sectionRoot.querySelectorAll('.product-gallery__carousel-item')).find(function(item) {\n      if (variantId && matchesVariantIdsCsv(item.getAttribute('data-variant-ids'), variantId)) {\n        return true;\n      }\n\n      return getGalleryItemGroupMatch(item, currentOptionValueMap) === true;\n    }) || sectionRoot.querySelector('.product-gallery__carousel-item.is-selected') || sectionRoot.querySelector('.product-gallery__carousel-item');\n\n    if (!preferredItem) {\n      return null;\n    }\n\n    preferredItem.classList.remove('is-filtered');\n    mediaId = preferredItem.getAttribute('data-media-id') || '';\n    thumbnail = mediaId ? sectionRoot.querySelector('.product-gallery__thumbnail[data-media-id=\"' + mediaId + '\"]') : null;\n\n    if (thumbnail) {\n      thumbnail.classList.remove('is-filtered');\n    }\n\n    return preferredItem;\n  }\n\r\n  function scheduleForcedVariantSync(control) {\r\n    if (!control || !control.matches || !control.matches('.product-form__single-selector[data-option-position]')) {\r\n      return;\r\n    }\r\n\r\n    var form = getControlForm(control);\r\n\r\n    if (!form || !form.id) {\r\n      return;\r\n    }\r\n\r\n    var formId = form.id;\r\n    var picker = getPickerForFormId(formId);\r\n    var variantIdInput = form.querySelector('[name=\"id\"]');\r\n\r\n    if (!picker || !variantIdInput || typeof picker.selectCombination !== 'function') {\r\n      return;\r\n    }\r\n\r\n    window.clearTimeout(forcedVariantSyncTimers[formId]);\r\n\r\n    var beforeVariantId = variantIdInput.value;\r\n    var optionValues = getOptionValuesForForm(form);\r\n\r\n    forcedVariantSyncTimers[formId] = window.setTimeout(function() {\r\n      var afterVariantId = variantIdInput.value;\r\n\r\n      if (!control.checked || beforeVariantId !== afterVariantId) {\r\n        return;\r\n      }\r\n\r\n      picker.selectCombination({\r\n        optionValues: optionValues,\r\n        productChange: control.hasAttribute('data-product-url')\r\n      });\r\n    }, 160);\r\n  }\r\n\r\n  function rememberOptionScroll(formId, optionPosition, optionRoot) {\r\n    var key = getOptionKey(formId, optionPosition);\r\n    var track = getOptionTrack(optionRoot);\r\n\r\n    if (!key || !track) {\r\n      return;\r\n    }\r\n\r\n    optionScrollMemory[key] = track.scrollLeft;\r\n    lastOptionByForm[formId] = optionPosition;\r\n  }\r\n\r\n  function rememberOptionScrollFromTarget(target) {\r\n    var optionInput = getVariantControlFromTarget(target);\r\n    var formId = null;\r\n    var optionPosition = null;\r\n    var optionRoot = null;\r\n\r\n    if (!optionInput || !optionInput.matches || !optionInput.matches('.product-form__single-selector[data-option-position]')) {\r\n      return;\r\n    }\r\n\r\n    optionRoot = optionInput.closest('.product-form__option');\r\n    formId = optionInput.getAttribute('form') || (optionInput.form ? optionInput.form.id : null);\r\n    optionPosition = optionInput.getAttribute('data-option-position');\r\n\r\n    if (!formId || !optionPosition || !optionRoot) {\r\n      return;\r\n    }\r\n\r\n    rememberOptionScroll(formId, optionPosition, optionRoot);\r\n  }\r\n\r\n  function restoreOptionScroll(formId, optionPosition, optionRoot) {\r\n    var key = getOptionKey(formId, optionPosition);\r\n    var track = getOptionTrack(optionRoot);\r\n    var rememberedScrollLeft = key ? optionScrollMemory[key] : null;\r\n\r\n    if (!track || typeof rememberedScrollLeft !== 'number') {\r\n      return;\r\n    }\r\n\r\n    track.scrollLeft = rememberedScrollLeft;\r\n  }\r\n\r\n  function clearFrameBucket(frameBucket, key) {\r\n    var frameIds = frameBucket[key];\r\n\r\n    if (!frameIds) {\r\n      return;\r\n    }\r\n\r\n    frameIds.forEach(window.cancelAnimationFrame);\r\n    delete frameBucket[key];\r\n  }\r\n\r\n  function clearTimerBucket(timerBucket, key) {\r\n    var timerIds = timerBucket[key];\r\n\r\n    if (!timerIds) {\r\n      return;\r\n    }\r\n\r\n    timerIds.forEach(window.clearTimeout);\r\n    delete timerBucket[key];\r\n  }\r\n\r\n  function setTrackScroll(track, nextScrollLeft, behavior) {\r\n    if (!track) {\r\n      return;\r\n    }\r\n\r\n    var maxScrollLeft = Math.max(track.scrollWidth - track.clientWidth, 0);\r\n    var clampedScrollLeft = Math.max(0, Math.min(nextScrollLeft, maxScrollLeft));\r\n\r\n    if (Math.abs(clampedScrollLeft - track.scrollLeft) < 1) {\r\n      return;\r\n    }\r\n\r\n    if (behavior === 'smooth' && typeof track.scrollTo === 'function') {\r\n      track.scrollTo({\r\n        left: clampedScrollLeft,\r\n        behavior: 'smooth'\r\n      });\r\n    } else {\r\n      track.scrollLeft = clampedScrollLeft;\r\n    }\r\n  }\r\n\r\n  function persistTrackScroll(track) {\r\n    if (!track || !track.closest) {\r\n      return;\r\n    }\r\n\r\n    var optionRoot = track.closest('.product-form__option');\r\n    var optionInput = optionRoot ? optionRoot.querySelector('[data-option-position]') : null;\r\n    var formId = optionInput ? optionInput.getAttribute('form') || (optionInput.form ? optionInput.form.id : null) : null;\r\n    var optionPosition = optionInput ? optionInput.getAttribute('data-option-position') : null;\r\n    var key = getOptionKey(formId, optionPosition);\r\n\r\n    if (!key) {\r\n      return;\r\n    }\r\n\r\n    optionScrollMemory[key] = track.scrollLeft;\r\n  }\r\n\r\n  function trackPrefersCentering(track) {\r\n    return Boolean(track && track.matches && track.matches(GALLERY_TRACK_SELECTOR));\r\n  }\r\n\r\n  function getTrackVisiblePadding(track) {\r\n    if (!track) {\r\n      return 0;\r\n    }\r\n\r\n    return track.matches && track.matches(GALLERY_TRACK_SELECTOR) ? 14 : Math.min(24, Math.max(12, track.clientWidth * 0.08));\r\n  }\r\n\r\n  function scrollTrackElementIntoView(track, element, behavior) {\r\n    if (!track || !element) {\r\n      return;\r\n    }\r\n\r\n    window.requestAnimationFrame(function() {\r\n      var trackWidth = track.clientWidth;\r\n      var maxScrollLeft = Math.max(track.scrollWidth - trackWidth, 0);\r\n\r\n      if (!trackWidth || maxScrollLeft <= 0) {\r\n        return;\r\n      }\r\n\r\n      var elementStyle = window.getComputedStyle(element);\r\n      var elementStart = element.offsetLeft - (parseFloat(elementStyle.marginLeft) || 0);\r\n      var elementEnd = element.offsetLeft + element.offsetWidth + (parseFloat(elementStyle.marginRight) || 0);\r\n      var elementWidth = elementEnd - elementStart;\r\n      var nextScrollLeft = track.scrollLeft;\r\n      var visiblePadding = getTrackVisiblePadding(track);\r\n\r\n      if (trackPrefersCentering(track)) {\r\n        nextScrollLeft = elementStart - Math.max((trackWidth - elementWidth) / 2, visiblePadding);\r\n      } else {\r\n        var viewportStart = track.scrollLeft;\r\n        var viewportEnd = viewportStart + trackWidth;\r\n\r\n        if (elementStart < viewportStart + visiblePadding) {\r\n          nextScrollLeft = elementStart - visiblePadding;\r\n        } else if (elementEnd > viewportEnd - visiblePadding) {\r\n          nextScrollLeft = elementEnd - trackWidth + visiblePadding;\r\n        }\r\n      }\r\n\r\n      if (Math.abs(nextScrollLeft - track.scrollLeft) < 1) {\r\n        persistTrackScroll(track);\r\n        return;\r\n      }\r\n\r\n      setTrackScroll(track, nextScrollLeft, behavior);\r\n      persistTrackScroll(track);\r\n    });\r\n  }\r\n\r\n  function scheduleOptionRootScroll(optionRoot, behavior) {\r\n    if (!optionRoot) {\r\n      return;\r\n    }\r\n\r\n    var existingFrames = optionRootFrames.get(optionRoot) || [];\r\n\r\n    existingFrames.forEach(window.cancelAnimationFrame);\r\n\r\n    var nextFrames = [];\r\n    var frameId = window.requestAnimationFrame(function() {\r\n      var settleFrameId = window.requestAnimationFrame(function() {\r\n        scrollActiveSwatchIntoView(optionRoot, behavior);\r\n      });\r\n\r\n      optionRootFrames.set(optionRoot, [settleFrameId]);\r\n    });\r\n\r\n    nextFrames.push(frameId);\r\n    optionRootFrames.set(optionRoot, nextFrames);\r\n  }\r\n\r\n  function bindProductRerenderListener(form) {\r\n    if (!form || form.__tuokusRerenderBound === true) {\r\n      return;\r\n    }\r\n\r\n    form.__tuokusRerenderBound = true;\r\n    form.addEventListener('product:rerender', function() {\r\n      var formId = form.id || null;\r\n      var optionPosition = formId ? lastOptionByForm[formId] : null;\r\n      var key = getOptionKey(formId, optionPosition);\r\n\r\n      if (formId && optionPosition) {\r\n        clearFrameBucket(optionRealignFrames, key);\r\n        optionRealignFrames[key] = [];\r\n\r\n        realignOption(formId, optionPosition, 'auto');\r\n\r\n        optionRealignFrames[key].push(window.requestAnimationFrame(function() {\r\n          realignOption(formId, optionPosition, 'auto');\r\n        }));\r\n\r\n        queueOptionRealignSettles(formId, optionPosition, 'auto');\r\n\r\n        return;\r\n      }\r\n\r\n      queuePickerRealign(formId, 'auto');\r\n    });\r\n  }\r\n\r\n  function initProductRerenderBindings() {\r\n    document.querySelectorAll('variant-picker[form-id]').forEach(function(picker) {\r\n      var formId = picker.getAttribute('form-id');\r\n\r\n      if (!formId) {\r\n        return;\r\n      }\r\n\r\n      bindProductRerenderListener(getFormById(formId));\r\n    });\r\n  }\r\n\r\n  function getActiveSwatch(optionRoot) {\r\n    if (!optionRoot) return null;\r\n\r\n    return optionRoot.querySelector(\r\n      '.color-swatch__radio:checked + .color-swatch__item,' +\r\n      '.block-swatch__radio:checked + .block-swatch__item,' +\r\n      '.variant-swatch__radio:checked + .variant-swatch__item,' +\r\n      '.color-swatch__item.is-selected,' +\r\n      '.block-swatch__item.is-selected,' +\r\n      '.variant-swatch__item.is-selected'\r\n    );\r\n  }\r\n\r\n  function scrollActiveSwatchIntoView(optionRoot, behavior) {\r\n    var activeSwatch = getActiveSwatch(optionRoot);\r\n\r\n    if (!activeSwatch || !activeSwatch.closest) {\r\n      return;\r\n    }\r\n\r\n    var track = activeSwatch.closest(SWATCH_TRACK_SELECTOR);\r\n\r\n    if (!track) {\r\n      return;\r\n    }\r\n\r\n    scrollTrackElementIntoView(track, activeSwatch, behavior);\r\n  }\r\n\r\n  function queueSwatchScroll(optionRoot, behavior) {\r\n    scheduleOptionRootScroll(optionRoot, behavior);\r\n  }\r\n\r\n  function findOptionRoot(formId, optionPosition) {\r\n    if (!formId || !optionPosition) {\r\n      return null;\r\n    }\r\n\r\n    var picker = document.querySelector('variant-picker[form-id=\"' + formId + '\"]');\r\n\r\n    if (!picker) {\r\n      return null;\r\n    }\r\n\r\n    var optionInput = picker.querySelector('[data-option-position=\"' + optionPosition + '\"]');\r\n\r\n    return optionInput && optionInput.closest ? optionInput.closest('.product-form__option') : null;\r\n  }\r\n\r\n  function realignOption(formId, optionPosition, behavior) {\r\n    var optionRoot = findOptionRoot(formId, optionPosition);\r\n\r\n    if (!optionRoot) {\r\n      realignPicker(formId, behavior);\r\n      return;\r\n    }\r\n\r\n    restoreOptionScroll(formId, optionPosition, optionRoot);\r\n    scrollActiveSwatchIntoView(optionRoot, behavior);\r\n  }\r\n\r\n  function queueOptionRealignSettles(formId, optionPosition, behavior) {\r\n    var key = getOptionKey(formId, optionPosition);\r\n\r\n    if (!key) {\r\n      return;\r\n    }\r\n\r\n    clearTimerBucket(optionRealignTimers, key);\r\n\r\n    optionRealignTimers[key] = [24, 90, 180, 320, 520, 820, 1200].map(function(delay) {\r\n      return window.setTimeout(function() {\r\n        realignOption(formId, optionPosition, behavior);\r\n      }, delay);\r\n    });\r\n  }\r\n\r\n  function queueOptionRealign(formId, optionPosition, behavior) {\r\n    var key = getOptionKey(formId, optionPosition);\r\n\r\n    if (!key) {\r\n      realignPicker(formId, behavior);\r\n      return;\r\n    }\r\n\r\n    clearFrameBucket(optionRealignFrames, key);\r\n\r\n    optionRealignFrames[key] = [];\r\n\r\n    var frameId = window.requestAnimationFrame(function() {\r\n      realignOption(formId, optionPosition, behavior);\r\n\r\n      var settleFrameId = window.requestAnimationFrame(function() {\r\n        realignOption(formId, optionPosition, behavior);\r\n      });\r\n\r\n      optionRealignFrames[key] = [settleFrameId];\r\n    });\r\n\r\n    optionRealignFrames[key].push(frameId);\r\n    queueOptionRealignSettles(formId, optionPosition, behavior);\r\n  }\r\n\r\n  function realignPicker(formId, behavior) {\r\n    initTrackDrag();\r\n    initProductRerenderBindings();\r\n\r\n    if (!formId) {\r\n      document.querySelectorAll('variant-picker .product-form__option').forEach(function(optionRoot) {\r\n        scrollActiveSwatchIntoView(optionRoot, behavior);\r\n      });\r\n      return;\r\n    }\r\n\r\n    var picker = document.querySelector('variant-picker[form-id=\"' + formId + '\"]');\r\n\r\n    if (!picker) {\r\n      return;\r\n    }\r\n\r\n    picker.querySelectorAll('.product-form__option').forEach(function(optionRoot) {\r\n      scrollActiveSwatchIntoView(optionRoot, behavior);\r\n    });\r\n  }\r\n\r\n  function queuePickerRealign(formId, behavior) {\r\n    var key = formId || '__all__';\r\n\r\n    clearFrameBucket(pickerRealignFrames, key);\r\n\r\n    pickerRealignFrames[key] = [];\r\n\r\n    var frameId = window.requestAnimationFrame(function() {\r\n      realignPicker(formId, behavior);\r\n\r\n      var settleFrameId = window.requestAnimationFrame(function() {\r\n        realignPicker(formId, behavior);\r\n      });\r\n\r\n      pickerRealignFrames[key] = [settleFrameId];\r\n    });\r\n\r\n    pickerRealignFrames[key].push(frameId);\r\n  }\r\n\r\n  function findTrack(target) {\r\n    return target && target.closest ? target.closest(SWATCH_TRACK_SELECTOR) : null;\r\n  }\r\n\r\n  function findInteractiveRail(target) {\r\n    if (!target || !target.closest) {\r\n      return null;\r\n    }\r\n\r\n    return target.closest(SWATCH_TRACK_SELECTOR + ', ' + GENERIC_RAIL_SELECTOR + ', ' + GENERIC_RAIL_TRACK_SELECTOR);\r\n  }\r\n\r\n  function shouldSuppressTrackClick(track) {\r\n    if (!track) {\r\n      return false;\r\n    }\r\n\r\n    return Number(track.dataset.dragSuppressUntil || 0) > Date.now();\r\n  }\r\n\r\n  function finishCurrentTrackDrag(event) {\r\n    var pointerId = event && typeof event.pointerId === 'number' ? event.pointerId : null;\r\n    var track = null;\r\n\r\n    if (!dragState) {\r\n      return;\r\n    }\r\n\r\n    if (pointerId !== null && dragState.pointerId !== pointerId) {\r\n      return;\r\n    }\r\n\r\n    track = dragState.track;\r\n\r\n    if (dragState.moved && track) {\r\n      track.dataset.dragSuppressUntil = String(Date.now() + DRAG_SUPPRESS_MS);\r\n    }\r\n\r\n    if (track) {\r\n      track.classList.remove('is-swatch-dragging');\r\n    }\r\n\r\n    if (track && dragState.pointerCaptured && pointerId !== null && typeof track.hasPointerCapture === 'function' && track.hasPointerCapture(pointerId) && typeof track.releasePointerCapture === 'function') {\r\n      track.releasePointerCapture(pointerId);\r\n    }\r\n\r\n    dragState = null;\r\n  }\r\n\r\n  function getGalleryRealignKey(sectionRoot) {\r\n    if (!sectionRoot || !sectionRoot.getAttribute) {\r\n      return '__all__';\r\n    }\r\n\r\n    return sectionRoot.getAttribute('data-section-id') || '__all__';\r\n  }\r\n\r\n  function getSelectedGalleryThumbnail(sectionRoot) {\r\n    if (!sectionRoot || !sectionRoot.querySelector) {\r\n      return null;\r\n    }\r\n\r\n    return sectionRoot.querySelector('.product-gallery__thumbnail.is-nav-selected');\r\n  }\r\n\r\n  function scrollSelectedGalleryThumbnailIntoView(sectionRoot, behavior) {\r\n    var thumbnail = getSelectedGalleryThumbnail(sectionRoot);\r\n    var track = thumbnail && thumbnail.closest ? thumbnail.closest(GALLERY_TRACK_SELECTOR) : null;\r\n\r\n    if (!thumbnail || !track) {\r\n      return;\r\n    }\r\n\r\n    scrollTrackElementIntoView(track, thumbnail, behavior);\r\n  }\r\n\r\n  function queueGalleryThumbnailRealign(sectionRoot, behavior) {\r\n    var key = getGalleryRealignKey(sectionRoot);\r\n\r\n    clearFrameBucket(galleryRealignFrames, key);\r\n\r\n    galleryRealignFrames[key] = [];\r\n\r\n    var frameId = window.requestAnimationFrame(function() {\r\n      if (sectionRoot) {\r\n        scrollSelectedGalleryThumbnailIntoView(sectionRoot, behavior);\r\n      } else {\r\n        document.querySelectorAll('[data-section-type=\"product\"]').forEach(function(productSection) {\r\n          scrollSelectedGalleryThumbnailIntoView(productSection, behavior);\r\n        });\r\n      }\r\n\r\n      var settleFrameId = window.requestAnimationFrame(function() {\r\n        if (sectionRoot) {\r\n          scrollSelectedGalleryThumbnailIntoView(sectionRoot, behavior);\r\n        } else {\r\n          document.querySelectorAll('[data-section-type=\"product\"]').forEach(function(productSection) {\r\n            scrollSelectedGalleryThumbnailIntoView(productSection, behavior);\r\n          });\r\n        }\r\n      });\r\n\r\n      galleryRealignFrames[key] = [settleFrameId];\r\n    });\r\n\r\n    galleryRealignFrames[key].push(frameId);\r\n  }\r\n\r\n  var productGalleryDataCache = Object.create(null);\r\n\r\n  function getProductSectionHandle(sectionRoot) {\r\n    var picker = null;\r\n\r\n    if (!sectionRoot || !sectionRoot.querySelector) {\r\n      return '';\r\n    }\r\n\r\n    picker = sectionRoot.querySelector('variant-picker[handle]');\r\n\r\n    return picker ? (picker.getAttribute('handle') || '') : '';\r\n  }\r\n\r\n  function getCurrentProductVariantId(sectionRoot) {\r\n    var variantInput = null;\r\n\r\n    if (!sectionRoot || !sectionRoot.querySelector) {\r\n      return '';\r\n    }\r\n\r\n    variantInput = sectionRoot.querySelector('input[name=\"id\"]');\r\n\r\n    return variantInput ? (variantInput.value || '') : '';\r\n  }\r\n\r\n  function fetchProductGalleryData(handle) {\r\n    var productUrl = '';\r\n\r\n    if (!handle) {\r\n      return Promise.resolve(null);\r\n    }\r\n\r\n    if (!productGalleryDataCache[handle]) {\r\n      productUrl = window.Shopify.routes.root + 'products/' + encodeURIComponent(handle) + '.js';\r\n\r\n      productGalleryDataCache[handle] = window.fetch(productUrl, { credentials: 'same-origin' }).then(function(response) {\r\n        if (!response.ok) {\r\n          throw new Error('Unable to load product media data');\r\n        }\r\n\r\n        return response.json();\r\n      }).catch(function(error) {\r\n        delete productGalleryDataCache[handle];\r\n        throw error;\r\n      });\r\n    }\r\n\r\n    return productGalleryDataCache[handle];\r\n  }\r\n\r\n  function buildProductMediaVariantMap(productData) {\r\n    var mediaVariantMap = Object.create(null);\r\n\r\n    if (!productData || !Array.isArray(productData.variants)) {\r\n      return mediaVariantMap;\r\n    }\r\n\r\n    productData.variants.forEach(function(variant) {\r\n      var featuredMedia = variant && variant.featured_media ? variant.featured_media : null;\r\n      var mediaId = featuredMedia && featuredMedia.id ? String(featuredMedia.id) : '';\r\n\r\n      if (!mediaId) {\r\n        return;\r\n      }\r\n\r\n      if (!mediaVariantMap[mediaId]) {\r\n        mediaVariantMap[mediaId] = [];\r\n      }\r\n\r\n      if (mediaVariantMap[mediaId].indexOf(String(variant.id)) === -1) {\r\n        mediaVariantMap[mediaId].push(String(variant.id));\r\n      }\r\n    });\r\n\r\n    Object.keys(mediaVariantMap).forEach(function(mediaId) {\r\n      mediaVariantMap[mediaId] = mediaVariantMap[mediaId].join(',');\r\n    });\r\n\r\n    return mediaVariantMap;\r\n  }\r\n\r\n  function applyProductMediaVariantMap(sectionRoot, mediaVariantMap) {\r\n    if (!sectionRoot || !sectionRoot.querySelectorAll) {\r\n      return;\r\n    }\r\n\r\n    sectionRoot.querySelectorAll('.product-gallery__carousel-item, .product-gallery__thumbnail').forEach(function(item) {\r\n      var mediaId = item.getAttribute('data-media-id');\r\n      var variantIdsCsv = mediaId ? mediaVariantMap[String(mediaId)] : '';\r\n\r\n      if (variantIdsCsv) {\r\n        item.setAttribute('data-variant-ids', variantIdsCsv);\r\n      }\r\n    });\r\n  }\r\n\r\n  function ensureVisibleProductGallerySelection(sectionRoot, variantId) {\n    var currentVariantId = variantId ? String(variantId) : String(getCurrentProductVariantId(sectionRoot) || '');\n    var currentOptionValueMap = getCurrentOptionValueMap(sectionRoot);\n    var visibleCarouselItems = [];\n    var visibleThumbnails = [];\n    var targetCarouselItem = null;\n    var targetMediaId = '';\n    var targetThumbnail = null;\n    var gallery = null;\r\n\r\n    if (!sectionRoot || !sectionRoot.querySelectorAll) {\r\n      return;\r\n    }\r\n\r\n    visibleCarouselItems = Array.prototype.slice.call(sectionRoot.querySelectorAll('.product-gallery__carousel-item:not(.is-filtered)'));\r\n    visibleThumbnails = Array.prototype.slice.call(sectionRoot.querySelectorAll('.product-gallery__thumbnail:not(.is-filtered)'));\r\n\r\n    if (!visibleCarouselItems.length) {\r\n      return;\r\n    }\r\n\r\n    targetCarouselItem = getPreferredVisibleGalleryItem(sectionRoot, visibleCarouselItems, currentVariantId, currentOptionValueMap) || visibleCarouselItems[0];\n    targetMediaId = targetCarouselItem.getAttribute('data-media-id') || '';\n\r\n    sectionRoot.querySelectorAll('.product-gallery__carousel-item.is-selected').forEach(function(item) {\r\n      item.classList.remove('is-selected');\r\n    });\r\n\r\n    targetCarouselItem.classList.add('is-selected');\r\n\r\n    if (visibleThumbnails.length) {\r\n      targetThumbnail = sectionRoot.querySelector('.product-gallery__thumbnail.is-nav-selected:not(.is-filtered)');\r\n\r\n      if (!targetThumbnail || (targetMediaId && targetThumbnail.getAttribute('data-media-id') !== targetMediaId)) {\r\n        targetThumbnail = targetMediaId\r\n          ? sectionRoot.querySelector('.product-gallery__thumbnail[data-media-id=\"' + targetMediaId + '\"]:not(.is-filtered)')\r\n          : visibleThumbnails[0];\r\n      }\r\n\r\n      sectionRoot.querySelectorAll('.product-gallery__thumbnail.is-nav-selected').forEach(function(item) {\r\n        item.classList.remove('is-nav-selected');\r\n      });\r\n\r\n      if (targetThumbnail) {\r\n        targetThumbnail.classList.add('is-nav-selected');\r\n      }\r\n    }\r\n\r\n    gallery = sectionRoot.querySelector('.product-gallery__carousel');\r\n\r\n    if (gallery && targetMediaId) {\r\n      gallery.setAttribute('data-initial-media-id', targetMediaId);\r\n    }\r\n  }\r\n\r\n  function applySharedGalleryDetailFallback(sectionRoot, currentVariantId) {\r\n    var variantId = currentVariantId ? String(currentVariantId) : '';\r\n    var currentOptionValueMap = getCurrentOptionValueMap(sectionRoot);\r\n    var groupedCarouselItems = Object.create(null);\r\n    var currentGroupKey = '';\r\n    var donorGroupKey = '';\r\n    var donorDetailItems = [];\r\n    var totalVisibleCount = 0;\r\n\r\n    if (!sectionRoot || !sectionRoot.querySelectorAll || !variantId) {\r\n      return;\r\n    }\r\n\r\n    sectionRoot.querySelectorAll('[data-tuokus-shared-detail=\"true\"]').forEach(function(item) {\r\n      item.removeAttribute('data-tuokus-shared-detail');\r\n    });\r\n\r\n    totalVisibleCount = sectionRoot.querySelectorAll('.product-gallery__carousel-item:not(.is-filtered)').length;\r\n\r\n    if (totalVisibleCount > 2) {\r\n      return;\r\n    }\r\n\r\n    sectionRoot.querySelectorAll('.product-gallery__carousel-item[data-variant-ids]').forEach(function(item) {\r\n      var key = (item.getAttribute('data-variant-ids') || '').trim();\r\n\r\n      if (!key) {\r\n        return;\r\n      }\r\n\r\n      if (!groupedCarouselItems[key]) {\r\n        groupedCarouselItems[key] = [];\r\n      }\r\n\r\n      groupedCarouselItems[key].push(item);\r\n\r\n      if (!currentGroupKey && (',' + key + ',').indexOf(',' + variantId + ',') !== -1) {\r\n        currentGroupKey = key;\r\n      }\r\n    });\r\n\r\n    if (!currentGroupKey || !groupedCarouselItems[currentGroupKey] || groupedCarouselItems[currentGroupKey].length > 1) {\r\n      return;\r\n    }\r\n\r\n    donorGroupKey = Object.keys(groupedCarouselItems).sort(function(a, b) {\r\n      return groupedCarouselItems[b].length - groupedCarouselItems[a].length;\r\n    }).find(function(key) {\r\n      return key !== currentGroupKey && groupedCarouselItems[key].length > 1;\r\n    }) || '';\r\n\r\n    if (!donorGroupKey) {\r\n      return;\r\n    }\r\n\r\n    donorDetailItems = groupedCarouselItems[donorGroupKey].slice(1, 5);\r\n\r\n    donorDetailItems.forEach(function(item) {\r\n      var mediaId = item.getAttribute('data-media-id');\r\n\r\n      if (!mediaId) {\r\n        return;\r\n      }\r\n\r\n      sectionRoot.querySelectorAll('.product-gallery__carousel-item[data-media-id=\"' + mediaId + '\"], .product-gallery__thumbnail[data-media-id=\"' + mediaId + '\"]').forEach(function(match) {\r\n        match.classList.remove('is-filtered');\r\n        match.setAttribute('data-tuokus-shared-detail', 'true');\r\n      });\r\n    });\r\n  }\r\n\r\n  function filterProductGalleryByVariant(sectionRoot, variantId) {\n    var currentVariantId = variantId ? String(variantId) : String(getCurrentProductVariantId(sectionRoot) || '');\n    var currentOptionValueMap = getCurrentOptionValueMap(sectionRoot);\n\r\n    if (!sectionRoot || !sectionRoot.querySelectorAll) {\r\n      return;\r\n    }\r\n\r\n    sectionRoot.querySelectorAll('.product-gallery__carousel-item, .product-gallery__thumbnail').forEach(function(item) {\r\n      var variantIdsCsv = item.getAttribute('data-variant-ids');\r\n      var groupMatch = getGalleryItemGroupMatch(item, currentOptionValueMap);\r\n      var isVisible = true;\r\n\r\n      if (groupMatch !== null) {\r\n        isVisible = groupMatch;\r\n      } else if (currentVariantId && variantIdsCsv) {\r\n        isVisible = matchesVariantIdsCsv(variantIdsCsv, currentVariantId);\r\n      }\r\n\r\n      item.classList.toggle('is-filtered', !isVisible);\n    });\n\n    if (!sectionRoot.querySelector('.product-gallery__carousel-item:not(.is-filtered)')) {\n      restoreVariantPrimaryGalleryMedia(sectionRoot, currentVariantId, currentOptionValueMap);\n    }\n\n    applySharedGalleryDetailFallback(sectionRoot, currentVariantId);\n    ensureVisibleProductGallerySelection(sectionRoot, currentVariantId);\n    refreshProductGalleryLayout(sectionRoot);\n  }\n\r\n  function refreshProductGalleryLayout(sectionRoot) {\r\n    var gallery = null;\r\n    var visibleThumbCount = 0;\r\n    var visibleMediaCount = 0;\r\n    var visibleCount = 0;\r\n    var hasFewVisibleMedia = false;\r\n\r\n    if (!sectionRoot || !sectionRoot.querySelector) {\r\n      return;\r\n    }\r\n\r\n    gallery = sectionRoot.querySelector('.product-gallery');\r\n\r\n    if (!gallery) {\r\n      return;\r\n    }\r\n\r\n    visibleThumbCount = sectionRoot.querySelectorAll('.product-gallery__thumbnail:not(.is-filtered)').length;\r\n    visibleMediaCount = sectionRoot.querySelectorAll('.product-gallery__carousel-item:not(.is-filtered)').length;\r\n    visibleCount = visibleThumbCount || visibleMediaCount;\r\n    hasFewVisibleMedia = visibleCount > 1 && visibleCount <= 2;\r\n\r\n    gallery.classList.toggle('product-gallery--single-visible-media', visibleCount <= 1);\r\n    gallery.classList.toggle('product-gallery--few-visible-media', hasFewVisibleMedia);\r\n    gallery.setAttribute('data-visible-media-count', String(visibleCount));\r\n  }\r\n\r\n  function hydrateProductGalleryMedia(sectionRoot, variantId) {\r\n    var handle = getProductSectionHandle(sectionRoot);\r\n\r\n    if (!handle) {\r\n      return Promise.resolve();\r\n    }\r\n\r\n    return fetchProductGalleryData(handle).then(function(productData) {\r\n      var mediaVariantMap = buildProductMediaVariantMap(productData);\r\n\r\n      applyProductMediaVariantMap(sectionRoot, mediaVariantMap);\r\n      filterProductGalleryByVariant(sectionRoot, variantId);\r\n      queueGalleryThumbnailRealign(sectionRoot, 'auto');\r\n    }).catch(function() {\r\n      return null;\r\n    });\r\n  }\r\n\r\n  function hydrateAllProductGalleries() {\r\n    document.querySelectorAll('[data-section-type=\"product\"]').forEach(function(sectionRoot) {\r\n      hydrateProductGalleryMedia(sectionRoot);\r\n    });\r\n  }\r\n\r\n  function scheduleProductGalleryHydration(sectionRoot, variantId) {\r\n    [0, 80, 220, 480, 900].forEach(function(delay) {\r\n      window.setTimeout(function() {\r\n        if (sectionRoot && document.body.contains(sectionRoot)) {\r\n          hydrateProductGalleryMedia(sectionRoot, variantId);\r\n        } else if (!sectionRoot) {\r\n          hydrateAllProductGalleries();\r\n        }\r\n      }, delay);\r\n    });\r\n  }\r\n\r\n  function bindTrackDrag(track) {\n    if (!track || track.__tuokusDragBound === true) {\n      return;\n    }\n\n    track.__tuokusDragBound = 'native';\n    track.style.setProperty('touch-action', 'pan-x pan-y pinch-zoom', 'important');\n    track.style.setProperty('-webkit-overflow-scrolling', 'touch', 'important');\n    track.style.setProperty('overscroll-behavior-x', 'contain', 'important');\n    track.style.setProperty('scroll-behavior', 'auto', 'important');\n    track.querySelectorAll('img').forEach(function(image) {\n      image.setAttribute('draggable', 'false');\n    });\n\n    return;\n\n    track.__tuokusDragBound = true;\n    track.addEventListener('dragstart', function(event) {\r\n      if (event.target && event.target.closest && event.target.closest(SWATCH_INTERACTIVE_SELECTOR)) {\r\n        event.preventDefault();\r\n      }\r\n    });\r\n\r\n    track.addEventListener('pointerdown', function(event) {\r\n      if (typeof event.button === 'number' && event.button !== 0) {\r\n        return;\r\n      }\r\n\r\n      if (track.scrollWidth <= track.clientWidth + 1) {\r\n        return;\r\n      }\r\n\r\n      dragState = {\r\n        pointerId: event.pointerId,\r\n        track: track,\r\n        pointerType: event.pointerType || 'mouse',\r\n        startX: event.clientX,\r\n        startY: event.clientY,\r\n        startScrollLeft: track.scrollLeft,\r\n        moved: false,\r\n        pointerCaptured: false\r\n      };\r\n    });\r\n\r\n    track.addEventListener('pointermove', function(event) {\r\n      if (!dragState || dragState.track !== track || dragState.pointerId !== event.pointerId) {\r\n        return;\r\n      }\r\n\r\n      var deltaX = event.clientX - dragState.startX;\r\n      var deltaY = event.clientY - dragState.startY;\r\n      var absDeltaX = Math.abs(deltaX);\r\n      var absDeltaY = Math.abs(deltaY);\r\n      var isMousePointer = dragState.pointerType === 'mouse';\r\n      var movementThreshold = isMousePointer ? DRAG_THRESHOLD_MOUSE : DRAG_THRESHOLD_TOUCH;\r\n\r\n      if (!dragState.moved && absDeltaX > movementThreshold && absDeltaX > absDeltaY) {\r\n        dragState.moved = true;\r\n        track.classList.add('is-swatch-dragging');\r\n\r\n        if (typeof track.setPointerCapture === 'function') {\r\n          track.setPointerCapture(event.pointerId);\r\n          dragState.pointerCaptured = true;\r\n        }\r\n      }\r\n\r\n      if (dragState.moved) {\r\n        event.preventDefault();\r\n        track.scrollLeft = dragState.startScrollLeft - deltaX;\r\n      }\r\n    });\r\n\r\n    function clearDrag(event) {\r\n      if (!dragState || dragState.track !== track) {\r\n        return;\r\n      }\r\n\r\n      finishCurrentTrackDrag(event);\r\n    }\r\n\r\n    track.addEventListener('pointerup', clearDrag);\r\n    track.addEventListener('pointercancel', clearDrag);\r\n    track.addEventListener('lostpointercapture', function() {\r\n      if (!dragState || dragState.track !== track) {\r\n        return;\r\n      }\r\n\r\n      track.classList.remove('is-swatch-dragging');\r\n      dragState = null;\r\n    });\r\n    track.addEventListener('scroll', function() {\r\n      persistTrackScroll(track);\r\n    }, { passive: true });\r\n  }\r\n\r\n  function initTrackDrag() {\r\n    document.querySelectorAll(SWATCH_TRACK_SELECTOR).forEach(bindTrackDrag);\r\n  }\r\n\r\n  function finishGenericRailDrag(event) {\r\n    var pointerId = event && typeof event.pointerId === 'number' ? event.pointerId : null;\r\n    var track = null;\r\n\r\n    if (!genericRailDragState) {\r\n      return;\r\n    }\r\n\r\n    if (pointerId !== null && genericRailDragState.pointerId !== pointerId) {\r\n      return;\r\n    }\r\n\r\n    track = genericRailDragState.track;\r\n\r\n    if (genericRailDragState.moved && track) {\r\n      track.dataset.dragSuppressUntil = String(Date.now() + DRAG_SUPPRESS_MS);\r\n    }\r\n\r\n    if (track) {\r\n      track.classList.remove('is-tuokus-rail-dragging');\r\n    }\r\n\r\n    if (track && genericRailDragState.pointerCaptured && pointerId !== null && typeof track.hasPointerCapture === 'function' && track.hasPointerCapture(pointerId) && typeof track.releasePointerCapture === 'function') {\r\n      track.releasePointerCapture(pointerId);\r\n    }\r\n\r\n    genericRailDragState = null;\r\n  }\r\n\r\n  function getGenericRailTrack(element) {\r\n    if (!element) {\r\n      return null;\r\n    }\r\n    \r\n    return element;\r\n  }\r\n\r\n  function bindGenericRailDrag(track) {\n    if (!track || track.__tuokusGenericDragBound === true) {\n      return;\n    }\n\n    track.__tuokusGenericDragBound = 'native';\n    track.setAttribute('data-tuokus-drag-track', 'native');\n    track.style.setProperty('touch-action', 'pan-x pan-y pinch-zoom', 'important');\n    track.style.setProperty('-webkit-overflow-scrolling', 'touch', 'important');\n    track.style.setProperty('overscroll-behavior-x', 'contain', 'important');\n    track.style.setProperty('scroll-behavior', 'auto', 'important');\n    track.querySelectorAll('img').forEach(function(image) {\n      image.setAttribute('draggable', 'false');\n    });\n\n    return;\n\n    track.__tuokusGenericDragBound = true;\n    track.setAttribute('data-tuokus-drag-track', 'generic');\r\n    track.querySelectorAll('img').forEach(function(image) {\r\n      image.setAttribute('draggable', 'false');\r\n    });\r\n\r\n    track.addEventListener('dragstart', function(event) {\r\n      if (event.target && event.target.closest) {\r\n        event.preventDefault();\r\n      }\r\n    });\r\n\r\n    track.addEventListener('pointerdown', function(event) {\r\n      if (typeof event.button === 'number' && event.button !== 0) {\r\n        return;\r\n      }\r\n\r\n      if (track.scrollWidth <= track.clientWidth + 1) {\r\n        return;\r\n      }\r\n\r\n      genericRailDragState = {\r\n        pointerId: event.pointerId,\r\n        track: track,\r\n        pointerType: event.pointerType || 'mouse',\r\n        startX: event.clientX,\r\n        startY: event.clientY,\r\n        startScrollLeft: track.scrollLeft,\r\n        moved: false,\r\n        pointerCaptured: false\r\n      };\r\n    });\r\n\r\n    track.addEventListener('pointermove', function(event) {\r\n      if (!genericRailDragState || genericRailDragState.track !== track || genericRailDragState.pointerId !== event.pointerId) {\r\n        return;\r\n      }\r\n\r\n      var deltaX = event.clientX - genericRailDragState.startX;\r\n      var deltaY = event.clientY - genericRailDragState.startY;\r\n      var absDeltaX = Math.abs(deltaX);\r\n      var absDeltaY = Math.abs(deltaY);\r\n      var isMousePointer = genericRailDragState.pointerType === 'mouse';\r\n      var movementThreshold = isMousePointer ? DRAG_THRESHOLD_MOUSE : DRAG_THRESHOLD_TOUCH;\r\n\r\n      if (!genericRailDragState.moved && absDeltaX > movementThreshold && absDeltaX > absDeltaY) {\r\n        genericRailDragState.moved = true;\r\n        track.classList.add('is-tuokus-rail-dragging');\r\n\r\n        if (typeof track.setPointerCapture === 'function') {\r\n          track.setPointerCapture(event.pointerId);\r\n          genericRailDragState.pointerCaptured = true;\r\n        }\r\n      }\r\n\r\n      if (genericRailDragState.moved) {\r\n        event.preventDefault();\r\n        track.scrollLeft = genericRailDragState.startScrollLeft - deltaX;\r\n      }\r\n    });\r\n\r\n    function clearGenericRailDrag(event) {\r\n      if (!genericRailDragState || genericRailDragState.track !== track) {\r\n        return;\r\n      }\r\n\r\n      finishGenericRailDrag(event);\r\n    }\r\n\r\n    track.addEventListener('pointerup', clearGenericRailDrag);\r\n    track.addEventListener('pointercancel', clearGenericRailDrag);\r\n    track.addEventListener('lostpointercapture', function() {\r\n      if (!genericRailDragState || genericRailDragState.track !== track) {\r\n        return;\r\n      }\r\n\r\n      track.classList.remove('is-tuokus-rail-dragging');\r\n      genericRailDragState = null;\r\n    });\r\n\r\n    track.addEventListener('touchstart', function(event) {\r\n      var touch = null;\r\n\r\n      if (!event.touches || event.touches.length !== 1) {\r\n        return;\r\n      }\r\n\r\n      if (track.scrollWidth <= track.clientWidth + 1) {\r\n        return;\r\n      }\r\n\r\n      touch = event.touches[0];\r\n\r\n      genericRailDragState = {\r\n        pointerId: null,\r\n        track: track,\r\n        pointerType: 'touch',\r\n        startX: touch.clientX,\r\n        startY: touch.clientY,\r\n        startScrollLeft: track.scrollLeft,\r\n        moved: false,\r\n        pointerCaptured: false,\r\n        touchIdentifier: touch.identifier\r\n      };\r\n    }, { passive: true });\r\n\r\n    track.addEventListener('touchmove', function(event) {\r\n      var touch = null;\r\n      var deltaX = 0;\r\n      var deltaY = 0;\r\n      var absDeltaX = 0;\r\n      var absDeltaY = 0;\r\n\r\n      if (!genericRailDragState || genericRailDragState.track !== track || genericRailDragState.pointerType !== 'touch') {\r\n        return;\r\n      }\r\n\r\n      touch = Array.from(event.changedTouches || []).find(function(item) {\r\n        return item.identifier === genericRailDragState.touchIdentifier;\r\n      }) || event.touches[0];\r\n\r\n      if (!touch) {\r\n        return;\r\n      }\r\n\r\n      deltaX = touch.clientX - genericRailDragState.startX;\r\n      deltaY = touch.clientY - genericRailDragState.startY;\r\n      absDeltaX = Math.abs(deltaX);\r\n      absDeltaY = Math.abs(deltaY);\r\n\r\n      if (!genericRailDragState.moved && absDeltaX > DRAG_THRESHOLD_TOUCH && absDeltaX > absDeltaY) {\r\n        genericRailDragState.moved = true;\r\n        track.classList.add('is-tuokus-rail-dragging');\r\n      }\r\n\r\n      if (genericRailDragState.moved) {\r\n        event.preventDefault();\r\n        track.scrollLeft = genericRailDragState.startScrollLeft - deltaX;\r\n      }\r\n    }, { passive: false });\r\n\r\n    function clearGenericTouchDrag() {\r\n      if (!genericRailDragState || genericRailDragState.track !== track || genericRailDragState.pointerType !== 'touch') {\r\n        return;\r\n      }\r\n\r\n      finishGenericRailDrag();\r\n    }\r\n\r\n    track.addEventListener('touchend', clearGenericTouchDrag, { passive: true });\r\n    track.addEventListener('touchcancel', clearGenericTouchDrag, { passive: true });\r\n  }\r\n\r\n  function initGenericRailDrag() {\r\n    document.querySelectorAll(GENERIC_RAIL_SELECTOR).forEach(function(element) {\r\n      bindGenericRailDrag(getGenericRailTrack(element));\r\n    });\r\n  }\r\n\r\n  function scheduleGenericRailInit() {\r\n    if (genericRailInitFrame) {\r\n      return;\r\n    }\r\n\r\n    genericRailInitFrame = window.requestAnimationFrame(function() {\r\n      genericRailInitFrame = 0;\r\n      initGenericRailDrag();\r\n    });\r\n  }\r\n\r\n  function ensureGenericRailObserver() {\r\n    if (genericRailObserver || typeof MutationObserver === 'undefined' || !document.body) {\r\n      return;\r\n    }\r\n\r\n    genericRailObserver = new MutationObserver(function(mutations) {\r\n      var shouldRefresh = mutations.some(function(mutation) {\r\n        return mutation.addedNodes && mutation.addedNodes.length > 0;\r\n      });\r\n\r\n      if (shouldRefresh) {\r\n        scheduleGenericRailInit();\r\n      }\r\n    });\r\n\r\n    genericRailObserver.observe(document.body, { childList: true, subtree: true });\r\n  }\r\n\r\n  /* Legacy mojibake support-copy shim superseded by the final reconciler below.\n  function normalizeProductSupportCopy(root) {\n    var scope = root && root.querySelectorAll ? root : document;\r\n    var supportTitles = ['\u9288\u70B9\u5046\u9288\u6052\u4F00\u9287\u3083\u4E9C\u9287?, '\u9287\u5A43\u589C\u934F\u30E3\u5022\u93C2\u89C4\u7876', '\u95B0\u5D89\u20AC\u4F75\u5153\u6769\u65BF\u6427\u9287\uE0A0\u4EF1\u9287\u52E9\u4EF8'];\r\n    var refundMarkup = [\r\n      '<h2>\u95B0\u5D89\u20AC\u4F75\u5153\u6769\u65BF\u6427\u9289\u6FC4\u5136\u9288\u67AB\u5157\u9287\uE0A0\u4EF1\u9287\u52E9\u4EF8</h2>',\r\n      '<p>\u9287\u65C0\u655E\u93C2\u56E7\u7DE6\u9287\uE21E\u20AC\u6C2C\u7236 8\u9286?1 \u93C3\u30E5\u58A0\u5BF0\u5C7B\u4EF9\u9287\uE1BA\u4EB0\u705E\u5A3F\u4EBC\u9288\u6394\u6D30\u7039\u5908\u4EFA\u9287\u693C\u4EF8\u9287\u52E9\u4F28\u9287\u6B0D\u20AC\u509A\u6E74\u9369\u71B4\u5013\u95B0\u5D89\u20AC\u4F7A\u59F8\u5A09\u4F75\u4F00\u9288\u581B\u501E\u9353\u5D85\u7DE6\u9287\u6B0D\u5020\u936B\u6751\u608E\u9287\u5C7B\u4E97\u9288\u5A3F\u4F28\u9287\u6B0D\u4F04\u9287\u0441\u20AC\u4F75\u4E97\u9288\u5908\u4EB1\u9287\u6A38\u500E\u9287\u65BE\u7C21\u93B5\u88E4\u4EB8\u9287\u72AE\u4ECC\u9287\u52E9\u20AC?/p>',\r\n      '<h3>\u6769\u65BF\u6427\u9287\uE0A0\u4EF1\u9287\u52E9\u4EF8</h3>',\r\n      '<p>\u6D93\u56E6\u7AF4\u9286\u4F78\u6662\u935D\u4F75\u4F00\u6D93\u5D85\u53FF\u935A\u581B\u5013\u942E\u5B58\u6095\u9287\u5C7B\u4E97\u9287\uFF43\u4EE7\u936B\u6751\u608E\u9287\uE218\u20AC\u4F78\u6662\u935D\u4F78\u57CC\u942B\u20AC\u5BF0\u5C7B\u4EF9\u9287\u5D83\u5020\u9287\u72AE\u4EBC\u93C3\u253F\u4EB8\u9287\u65C8\u20AC\uFF47\u6020\u9287\u5FCB\u4EE9\u9287\u66D8\u4E9C\u9286\u509A\u5534\u7039\u5E7F\u5030\u7EB0\u9E3F\u735A\u9287\uE1BA\u4E9E\u9287\u581B\u20AC\u4F77\u6C26\u93BB\u6D96\u4F28\u9287\u71B4\u4F05\u6769\u65BF\u6427\u9287\uE1BD\u7966\u9288\u5C7B\u5030\u9287\u65C0\uE50D\u9350\u546B\u4ED0\u9287\u4FF1\u4EDA\u9286?/p>',\r\n      '<h3>\u9287\u65C2\u2491\u747E\u5D84\u7C28\u95CB?/h3>',\r\n      '<p>\u9287\u65BE\u5A07\u9422\u3125\u7DE6\u9287\uE1BD\u7754\u9288\u5C7B\u5013\u9287\u5A42\uE179\u9287\u66D8\u4F28\u95AE\u85C9\u608E\u9287\u0441\u4F04\u6769\u65BF\u6427\u93C9\u2032\u6B22\u9287\uE042\u4EFC\u9286\u4F7D\u250F\u7EF1\u822C\u4F05\u9288\u5E7F\u5113\u9288\uE76C\u4F04\u95B0\u5D89\u20AC\u4F75\u5129\u9289\uE042\u5061\u9289\u7B3A\u5153\u6769\u65BF\u6427\u9289\u6FC4\u5136\u9288\u67AB\u5157\u9288\u638B\u4EC8\u7EB0\u9E3F\u735A\u9287\u5FCB\u4EE9\u9287\u66D8\u4E9C\u9286?/p>'\r\n    ].join('');\r\n\r\n    scope.querySelectorAll('[data-section-type=\"product\"]').forEach(function(sectionRoot) {\r\n      sectionRoot.querySelectorAll('.product-block-list__item--content .card__title').forEach(function(title, index) {\r\n        var currentText = (title.textContent || '').trim();\r\n\r\n        if (index >= supportTitles.length) {\r\n          return;\r\n        }\r\n\r\n        if (!currentText || !/[\u9287?\u9288\u64B1\u5042-\u9289\u8EB2\u5157]/.test(currentText) || /[\u951F\u7D54/.test(currentText)) {\r\n          title.textContent = supportTitles[index];\r\n        }\r\n      });\r\n\r\n      sectionRoot.querySelectorAll('.product-block-list__item--description .card__title').forEach(function(title) {\r\n        title.textContent = '\u935F\u55D7\u6427\u746D\u5D07\u7A97';\r\n      });\r\n\r\n      sectionRoot.querySelectorAll('.product-block-list__item--reviews .card__title').forEach(function(title) {\r\n        title.textContent = '\u9289\uE0FE\u511E\u9289\u30E3\u5157';\r\n      });\r\n\r\n      sectionRoot.querySelectorAll('#modal-refunds-policy .rte').forEach(function(content) {\r\n        var text = (content.textContent || '').trim();\r\n\r\n        if (text && /[\u951F\u7D54|\u95BA\u588A\u95C1\u7AF1\u6FE1\u7959\u95B5?.test(text)) {\r\n          content.innerHTML = refundMarkup;\r\n        }\r\n      });\r\n    });\r\n  }\n  */\n\n  function normalizeProductSupportCopy(root) {\n    var scope = root && root.querySelectorAll ? root : document;\n    var supportTitles = ['\u30B5\u30A4\u30BA\u306B\u3064\u3044\u3066', '\u304A\u624B\u5165\u308C\u65B9\u6CD5', '\u914D\u9001\u30FB\u8FD4\u54C1\u306B\u3064\u3044\u3066'];\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>\u3054\u4F7F\u7528\u5F8C\u306E\u6C5A\u308C\u3084\u304A\u5BA2\u69D8\u90FD\u5408\u3067\u306E\u8FD4\u54C1\u6761\u4EF6\u306A\u3069\u3001\u8A73\u3057\u304F\u306F\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    var mojibakePattern = /[\\uFFFD]|(?:\u00C2|\u00C3|\u9288|\u9289|\u935F|\u93C3|\u95B0|\u95C1|\u95B5|\u6769|\u6427|\u746D|\u5D07)/;\n\n    scope.querySelectorAll('[data-section-type=\"product\"]').forEach(function(sectionRoot) {\n      sectionRoot.querySelectorAll('.product-block-list__item--description .card__title').forEach(function(title) {\n        var currentText = (title.textContent || '').trim();\n\n        if (!currentText || mojibakePattern.test(currentText)) {\n          title.textContent = '\u5546\u54C1\u8A73\u7D30';\n        }\n      });\n\n      sectionRoot.querySelectorAll('.product-block-list__item--content .card__title').forEach(function(title, index) {\n        var currentText = (title.textContent || '').trim();\n\n        if (index >= supportTitles.length) {\n          return;\n        }\n\n        if (!currentText || mojibakePattern.test(currentText)) {\n          title.textContent = supportTitles[index];\n        }\n      });\n\n      sectionRoot.querySelectorAll('.product-block-list__item--reviews .card__title').forEach(function(title) {\n        var currentText = (title.textContent || '').trim();\n\n        if (!currentText || mojibakePattern.test(currentText)) {\n          title.textContent = '\u30EC\u30D3\u30E5\u30FC';\n        }\n      });\n\n      sectionRoot.querySelectorAll('#modal-refunds-policy .rte').forEach(function(content) {\n        var text = (content.textContent || '').trim();\n\n        if (!text || mojibakePattern.test(text)) {\n          content.innerHTML = refundMarkup;\n        }\n      });\n    });\n  }\n\n  function onVariantOptionInteraction(target) {\n    var optionRoot = target && target.closest ? target.closest('.product-form__option') : null;\r\n    var optionInput = null;\r\n    var formId = null;\r\n    var optionPosition = null;\r\n\r\n    if (target && target.matches && target.matches('.product-form__single-selector[data-option-position]')) {\r\n      optionInput = target;\r\n    } else if (target && target.getAttribute) {\r\n      var targetFor = target.getAttribute('for');\r\n\r\n      if (targetFor) {\r\n        optionInput = document.getElementById(targetFor);\r\n      }\r\n    }\r\n\r\n    if (optionInput) {\r\n      formId = optionInput.getAttribute('form') || (optionInput.form ? optionInput.form.id : null);\r\n      optionPosition = optionInput.getAttribute('data-option-position');\r\n    }\r\n\r\n    if (formId && optionPosition) {\r\n      rememberOptionScroll(formId, optionPosition, optionRoot);\r\n\r\n      if (formUsesProductRerender(formId)) {\r\n        queueOptionRealign(formId, optionPosition, 'auto');\r\n      }\r\n\r\n      return;\r\n    }\r\n\r\n    if (!optionRoot) {\r\n      return;\r\n    }\r\n\r\n    queueSwatchScroll(optionRoot, 'auto');\r\n  }\r\n\r\n  document.addEventListener('change', function(event) {\r\n    var target = event.target;\r\n\r\n    if (!target || !target.matches || !target.matches(\r\n      '.product-form__single-selector[data-option-position], ' +\r\n      '.color-swatch__radio, ' +\r\n      '.block-swatch__radio, ' +\r\n      '.variant-swatch__radio'\r\n    )) {\r\n      return;\r\n    }\r\n\r\n    onVariantOptionInteraction(target);\r\n\r\n    if (target.matches('.product-form__single-selector[data-option-position]')) {\r\n      scheduleForcedVariantSync(target);\r\n    }\r\n  });\r\n\r\n  document.addEventListener('pointerdown', function(event) {\r\n    rememberOptionScrollFromTarget(event.target);\r\n  }, true);\r\n\r\n  document.addEventListener('click', function(event) {\r\n    var track = findInteractiveRail(event.target);\r\n\r\n    if (!shouldSuppressTrackClick(track)) {\r\n      return;\r\n    }\r\n\r\n    event.preventDefault();\r\n    event.stopImmediatePropagation();\r\n  }, true);\r\n\r\n  document.addEventListener('click', function(event) {\r\n    var track = findInteractiveRail(event.target);\r\n\r\n    if (shouldSuppressTrackClick(track)) {\r\n      event.preventDefault();\r\n      event.stopPropagation();\r\n      return;\r\n    }\r\n\r\n    var label = event.target.closest(\r\n      '.variant-swatch__item, .block-swatch__item, .color-swatch__item'\r\n    );\r\n\r\n    if (!label || !label.getAttribute('for')) {\r\n      return;\r\n    }\r\n\r\n    var control = document.getElementById(label.getAttribute('for'));\r\n\r\n    if (!control || !control.matches('.product-form__single-selector[data-option-position]') || control.disabled || control.checked) {\r\n      return;\r\n    }\r\n\r\n    var optionRoot = label.closest('.product-form__option');\r\n    var formId = control.getAttribute('form') || (control.form ? control.form.id : null);\r\n    var optionPosition = control.getAttribute('data-option-position');\r\n\r\n    if (formId && optionPosition) {\r\n      rememberOptionScroll(formId, optionPosition, optionRoot);\r\n    }\r\n\r\n    control.checked = true;\r\n    control.dispatchEvent(new Event('change', { bubbles: true }));\r\n    queueSwatchScroll(optionRoot, 'smooth');\r\n    scheduleForcedVariantSync(control);\r\n  });\r\n\r\n  document.addEventListener('pointerup', finishCurrentTrackDrag, true);\r\n  document.addEventListener('pointercancel', finishCurrentTrackDrag, true);\r\n  document.addEventListener('pointerup', finishGenericRailDrag, true);\r\n  document.addEventListener('pointercancel', finishGenericRailDrag, true);\r\n  window.addEventListener('blur', function() {\r\n    finishCurrentTrackDrag();\r\n    finishGenericRailDrag();\r\n  });\r\n\r\n  document.addEventListener('variant:changed', function(event) {\r\n    var form = event.target;\r\n    var formId = null;\r\n    var optionPosition = null;\r\n    var sectionRoot = null;\r\n\r\n    if (form) {\r\n      formId = form.id || (form.getAttribute ? form.getAttribute('form-id') : null);\r\n      sectionRoot = form.closest ? form.closest('[data-section-type=\"product\"]') : null;\r\n    }\r\n\r\n    if (!formId && event.detail && event.detail.formId) {\r\n      formId = event.detail.formId;\r\n    }\r\n\r\n    if (formId) {\r\n      optionPosition = lastOptionByForm[formId] || null;\r\n    }\r\n\r\n    if (formUsesProductRerender(formId)) {\r\n      return;\r\n    }\r\n\r\n    if (!formId) {\r\n      document.querySelectorAll('variant-picker .product-form__option').forEach(function(optionRoot) {\r\n        queueSwatchScroll(optionRoot, 'smooth');\r\n      });\r\n\r\n      queueGalleryThumbnailRealign(null, 'smooth');\r\n      scheduleProductGalleryHydration(null);\r\n      return;\r\n    }\r\n\r\n    if (optionPosition) {\r\n      queueOptionRealign(formId, optionPosition, 'smooth');\r\n    } else {\r\n      queuePickerRealign(formId, 'smooth');\r\n    }\r\n\r\n    queueGalleryThumbnailRealign(sectionRoot, 'smooth');\r\n    scheduleProductGalleryHydration(sectionRoot, event.detail && event.detail.variant ? event.detail.variant.id : null);\r\n  });\r\n\r\n  document.addEventListener('product:rerender', function(event) {\r\n    var formId = event.detail && event.detail.formId ? event.detail.formId : null;\r\n\r\n    window.setTimeout(function() {\r\n      var form = formId ? document.getElementById(formId) : null;\r\n      var sectionRoot = form && form.closest ? form.closest('[data-section-type=\"product\"]') : null;\r\n\r\n      normalizeProductSupportCopy(sectionRoot || document);\r\n\r\n      if (sectionRoot) {\r\n        scheduleProductGalleryHydration(sectionRoot);\r\n      } else {\r\n        scheduleProductGalleryHydration(null);\r\n      }\r\n    }, 0);\r\n  });\r\n\r\n  document.addEventListener('click', function(event) {\r\n    var thumbnail = event.target.closest('.product-gallery__thumbnail');\r\n    var sectionRoot = null;\r\n\r\n    if (!thumbnail) {\r\n      return;\r\n    }\r\n\r\n    sectionRoot = thumbnail.closest('[data-section-type=\"product\"]');\r\n    queueGalleryThumbnailRealign(sectionRoot, 'smooth');\r\n  });\r\n\r\n  document.addEventListener('theme:loading:end', function() {\r\n    initTrackDrag();\r\n    initGenericRailDrag();\r\n    ensureGenericRailObserver();\r\n    initProductRerenderBindings();\r\n    scheduleProductGalleryHydration(null);\r\n    normalizeProductSupportCopy();\r\n    document.querySelectorAll('variant-picker .product-form__option').forEach(function(optionRoot) {\r\n      scrollActiveSwatchIntoView(optionRoot, 'auto');\r\n    });\r\n    queueGalleryThumbnailRealign(null, 'auto');\r\n  });\r\n\r\n  document.addEventListener('shopify:section:load', function(event) {\r\n    var sectionRoot = event.target && event.target.matches && event.target.matches('[data-section-type=\"product\"]')\r\n      ? event.target\r\n      : event.target && event.target.querySelector\r\n        ? event.target.querySelector('[data-section-type=\"product\"]')\r\n        : null;\r\n\r\n    if (!sectionRoot) {\r\n      return;\r\n    }\r\n\r\n    initTrackDrag();\r\n    initGenericRailDrag();\r\n    ensureGenericRailObserver();\r\n    initProductRerenderBindings();\r\n    normalizeProductSupportCopy(sectionRoot);\r\n    scheduleProductGalleryHydration(sectionRoot);\r\n    sectionRoot.querySelectorAll('variant-picker .product-form__option').forEach(function(optionRoot) {\r\n      scrollActiveSwatchIntoView(optionRoot, 'auto');\r\n    });\r\n    queueGalleryThumbnailRealign(sectionRoot, 'auto');\r\n  });\r\n\r\n  function initTuokusProductInteractions() {\r\n    initTrackDrag();\r\n    initGenericRailDrag();\r\n    ensureGenericRailObserver();\r\n    initProductRerenderBindings();\r\n    scheduleProductGalleryHydration(null);\r\n    normalizeProductSupportCopy();\r\n    document.querySelectorAll('variant-picker .product-form__option').forEach(function(optionRoot) {\r\n      scrollActiveSwatchIntoView(optionRoot, 'auto');\r\n    });\r\n    queueGalleryThumbnailRealign(null, 'auto');\r\n  }\r\n\r\n  window.addEventListener('pageshow', function() {\r\n    initTrackDrag();\r\n    initGenericRailDrag();\r\n    ensureGenericRailObserver();\r\n    initProductRerenderBindings();\r\n    scheduleProductGalleryHydration(null);\r\n    document.querySelectorAll('variant-picker .product-form__option').forEach(function(optionRoot) {\r\n      scrollActiveSwatchIntoView(optionRoot, 'auto');\r\n    });\r\n    queueGalleryThumbnailRealign(null, 'auto');\r\n  });\r\n\r\n  document.addEventListener('DOMContentLoaded', function() {\r\n    initTuokusProductInteractions();\r\n  });\r\n\r\n  if (document.readyState !== 'loading') {\r\n    initTuokusProductInteractions();\r\n  }\r\n\r\n  function applySharedGalleryDetailFallback(sectionRoot, currentVariantId) {\n    var variantId = currentVariantId ? String(currentVariantId) : '';\n    var currentOptionValueMap = getCurrentOptionValueMap(sectionRoot);\n    var groupedCarouselItems = Object.create(null);\n    var currentGroupKey = '';\n    var donorGroupKey = '';\n    var donorDetailItems = [];\r\n    var totalVisibleCount = 0;\r\n\r\n    if (!sectionRoot || !sectionRoot.querySelectorAll || !variantId) {\r\n      return;\r\n    }\r\n\r\n    sectionRoot.querySelectorAll('[data-tuokus-shared-detail=\"true\"]').forEach(function(item) {\r\n      item.removeAttribute('data-tuokus-shared-detail');\r\n      item.removeAttribute('data-tuokus-shared-detail-active');\r\n    });\r\n\r\n    totalVisibleCount = sectionRoot.querySelectorAll('.product-gallery__carousel-item:not(.is-filtered)').length;\r\n\r\n    if (totalVisibleCount > 2) {\r\n      return;\r\n    }\r\n\r\n    sectionRoot.querySelectorAll('.product-gallery__carousel-item[data-variant-ids]').forEach(function(item) {\r\n      var key = (item.getAttribute('data-variant-ids') || '').trim();\r\n\r\n      if (!key) {\r\n        return;\r\n      }\r\n\r\n      if (!groupedCarouselItems[key]) {\r\n        groupedCarouselItems[key] = [];\r\n      }\r\n\r\n      groupedCarouselItems[key].push(item);\r\n\r\n      if (!currentGroupKey && (',' + key + ',').indexOf(',' + variantId + ',') !== -1) {\r\n        currentGroupKey = key;\r\n      }\r\n    });\r\n\r\n    if (!currentGroupKey || !groupedCarouselItems[currentGroupKey] || groupedCarouselItems[currentGroupKey].length > 1) {\r\n      return;\r\n    }\r\n\r\n    donorGroupKey = Object.keys(groupedCarouselItems).sort(function(a, b) {\r\n      return groupedCarouselItems[b].length - groupedCarouselItems[a].length;\r\n    }).find(function(key) {\r\n      return key !== currentGroupKey && groupedCarouselItems[key].length > 1;\r\n    }) || '';\r\n\r\n    if (!donorGroupKey) {\r\n      return;\r\n    }\r\n\r\n    donorDetailItems = groupedCarouselItems[donorGroupKey].slice(1, 5);\r\n\r\n    donorDetailItems.forEach(function(item) {\r\n      var mediaId = item.getAttribute('data-media-id');\r\n      var carouselItem = null;\r\n      var thumbnail = null;\r\n\r\n      if (!mediaId) {\r\n        return;\r\n      }\r\n\r\n      carouselItem = sectionRoot.querySelector('.product-gallery__carousel-item[data-media-id=\"' + mediaId + '\"]');\r\n      thumbnail = sectionRoot.querySelector('.product-gallery__thumbnail[data-media-id=\"' + mediaId + '\"]');\r\n\r\n      if (carouselItem) {\r\n        carouselItem.classList.add('is-filtered');\r\n        carouselItem.classList.remove('is-selected');\r\n        carouselItem.setAttribute('data-tuokus-shared-detail', 'true');\r\n      }\r\n\r\n      if (thumbnail) {\r\n        thumbnail.classList.remove('is-filtered');\r\n        thumbnail.setAttribute('data-tuokus-shared-detail', 'true');\r\n      }\r\n    });\r\n  }\r\n\r\n  function resetSharedGalleryDetailMedia(sectionRoot) {\r\n    if (!sectionRoot || !sectionRoot.querySelectorAll) {\r\n      return;\r\n    }\r\n\r\n    sectionRoot.querySelectorAll('.product-gallery__carousel-item[data-tuokus-shared-detail=\"true\"]').forEach(function(item) {\r\n      item.classList.add('is-filtered');\r\n      item.classList.remove('is-selected');\r\n      item.removeAttribute('data-tuokus-shared-detail-active');\r\n    });\r\n  }\r\n\r\n  function revealSharedGalleryDetailMedia(sectionRoot, mediaId) {\r\n    var targetCarouselItem = null;\r\n    var targetThumbnail = null;\r\n\r\n    if (!sectionRoot || !mediaId) {\r\n      return false;\r\n    }\r\n\r\n    targetCarouselItem = sectionRoot.querySelector('.product-gallery__carousel-item[data-media-id=\"' + mediaId + '\"][data-tuokus-shared-detail=\"true\"]');\r\n    targetThumbnail = sectionRoot.querySelector('.product-gallery__thumbnail[data-media-id=\"' + mediaId + '\"][data-tuokus-shared-detail=\"true\"]');\r\n\r\n    if (!targetCarouselItem && !targetThumbnail) {\r\n      resetSharedGalleryDetailMedia(sectionRoot);\r\n      return false;\r\n    }\r\n\r\n    resetSharedGalleryDetailMedia(sectionRoot);\r\n\r\n    if (targetCarouselItem) {\r\n      targetCarouselItem.classList.remove('is-filtered');\r\n      targetCarouselItem.setAttribute('data-tuokus-shared-detail-active', 'true');\r\n    }\r\n\r\n    if (targetThumbnail) {\r\n      targetThumbnail.classList.remove('is-filtered');\r\n    }\r\n\r\n    return true;\r\n  }\r\n\r\n  /* Legacy duplicate support-copy shim superseded by the final reconciler below.\r\n  function normalizeProductSupportCopy(root) {\r\n    var scope = root && root.querySelectorAll ? root : document;\r\n    var supportTitles = ['\u9288\u70B9\u5046\u9288\u6052\u4F00\u9287\u3083\u4E9C\u9287?, '\u9287\u5A43\u589C\u934F\u30E3\u5022\u93C2\u89C4\u7876', '\u95B0\u5D89\u20AC\u4F75\u5153\u6769\u65BF\u6427\u9287\uE0A0\u4EF1\u9287\u52E9\u4EF8'];\r\n    var mojibakePattern = /[\u95B5\u56EC\u59B6\u95B8\u71BC\u67CA\u95C2\u4F80\u6553\\uFFFD]/;\r\n    var refundMarkup = [\r\n      '<h2>\u95B0\u5D89\u20AC\u4F75\u5153\u6769\u65BF\u6427\u9289\u6FC4\u5136\u9288\u67AB\u5157\u9287\uE0A0\u4EF1\u9287\u52E9\u4EF8</h2>',\r\n      '<p>\u93C3\u30E6\u6E70\u9287\u641E\u4F04\u9287\u5A42\u773E\u9287\u6220\u6D30\u7039\u5908\u4F05\u95AB\u6C2C\u7236 8\u9286?1 \u93C3\u30E3\u4EF9\u9287\u6B0D\u20AC\u509A\u6E74\u9369\u71B4\u5013\u95B0\u5D89\u20AC\u4F7A\u59F8\u5A09\u4F75\u4F00\u9288\u581B\u501E\u9353\u5D85\u7DE6\u9287\u6B0D\u5020\u936B\u6751\u608E\u9287\u5C7B\u4E97\u9288\u5A3F\u4F28\u9287\u6B0D\u4F04\u9287\u0441\u20AC\u4F75\u4E97\u9288\u5908\u4EB1\u9287\u6A38\u500E\u9287\u65BE\u7C21\u93B5\u88E4\u4EB8\u9287\u72AE\u4ECC\u9287\u52E9\u20AC?/p>',\r\n      '<h3>\u6769\u65BF\u6427\u9287\uE0A0\u4EF1\u9287\u52E9\u4EF8</h3>',\r\n      '<p>\u935F\u55D7\u6427\u9287\uE0A1\u7B09\u934F\u5CF0\u608E\u9288\u52ED\u726C\u93BC\u5D83\u4EB4\u9287\u5098\u4EEF\u9287\u71B7\u726C\u935A\u581B\u4F05\u9286\u4F78\u57CC\u942B\u20AC\u5BF0\u5C7B\u4EF9\u9287\u5D83\u5020\u9287\u72AE\u4EBC\u93C3\u253F\u4EB8\u9287\u65C8\u20AC\uFF47\u6020\u9287\u5FCB\u4EE9\u9287\u66D8\u4E9C\u9286\u509A\u5534\u7039\u5E7F\u5030\u7EB0\u9E3F\u735A\u9287\uE1BA\u4E9E\u9287\u581B\u20AC\u4F77\u6C26\u93BB\u6D96\u4F28\u9287\u71B4\u4F05\u6769\u65BF\u6427\u9287\uE1BD\u7966\u9288\u5C7B\u5030\u9287\u65C0\uE50D\u9350\u546B\u4ED0\u9287\u4FF1\u4EDA\u9286?/p>',\r\n      '<h3>\u9287\u65C2\u2491\u747E\u5D84\u7C28\u95CB?/h3>',\r\n      '<p>\u9287\u65BE\u5A07\u9422\u3125\u7DE6\u9287\uE1BD\u7754\u9288\u5C7B\u5013\u9287\u5A42\uE179\u9287\u66D8\u4F28\u95AE\u85C9\u608E\u9287\u0441\u4F04\u6769\u65BF\u6427\u93C9\u2032\u6B22\u9287\uE042\u4EFC\u9286\u4F7D\u250F\u7EF1\u822C\u4F05\u9288\u5E7F\u5113\u9288\uE76C\u4F04\u95B0\u5D89\u20AC\u4F75\u5153\u6769\u65BF\u6427\u9289\u6FC4\u5136\u9288\u67AB\u5157\u9288\u638B\u4EC8\u7EB0\u9E3F\u735A\u9287\u5FCB\u4EE9\u9287\u66D8\u4E9C\u9286?/p>'\r\n    ].join('');\r\n\r\n    scope.querySelectorAll('[data-section-type=\"product\"]').forEach(function(sectionRoot) {\r\n      sectionRoot.querySelectorAll('.product-block-list__item--content .card__title').forEach(function(title, index) {\r\n        if (index >= supportTitles.length) {\r\n          return;\r\n        }\r\n\r\n        title.textContent = supportTitles[index];\r\n      });\r\n\r\n      sectionRoot.querySelectorAll('.product-block-list__item--description .card__title').forEach(function(title) {\r\n        title.textContent = '\u935F\u55D7\u6427\u746D\u5D07\u7A97';\r\n      });\r\n\r\n      sectionRoot.querySelectorAll('.product-block-list__item--reviews .card__title').forEach(function(title) {\r\n        title.textContent = '\u9289\uE0FE\u511E\u9289\u30E3\u5157';\r\n      });\r\n\r\n      sectionRoot.querySelectorAll('#modal-refunds-policy .rte').forEach(function(content) {\r\n        var text = (content.textContent || '').trim();\r\n\r\n        if (text && mojibakePattern.test(text)) {\n          content.innerHTML = refundMarkup;\n        }\n      });\n    });\n  }\n  */\n\r\n  document.addEventListener('click', function(event) {\r\n    var thumbnail = event.target.closest('.product-gallery__thumbnail');\r\n    var sectionRoot = null;\r\n    var mediaId = '';\r\n\r\n    if (!thumbnail) {\r\n      return;\r\n    }\r\n\r\n    sectionRoot = thumbnail.closest('[data-section-type=\"product\"]');\r\n    mediaId = thumbnail.getAttribute('data-media-id') || '';\r\n\r\n    if (thumbnail.hasAttribute('data-tuokus-shared-detail')) {\r\n      revealSharedGalleryDetailMedia(sectionRoot, mediaId);\r\n    } else {\r\n      resetSharedGalleryDetailMedia(sectionRoot);\r\n    }\r\n\r\n    window.requestAnimationFrame(function() {\r\n      refreshProductGalleryLayout(sectionRoot);\r\n      queueGalleryThumbnailRealign(sectionRoot, 'smooth');\r\n    });\r\n  }, true);\r\n\r\n  function applySharedGalleryDetailFallback(sectionRoot, currentVariantId) {\n    var variantId = currentVariantId ? String(currentVariantId) : '';\n    var visibleCarouselItems = [];\n    var primaryCarouselItem = null;\n    var currentOptionValueMap = getCurrentOptionValueMap(sectionRoot);\n\n    if (!sectionRoot || !sectionRoot.querySelectorAll || !variantId) {\n      return;\n    }\n\n    sectionRoot.querySelectorAll('[data-tuokus-shared-detail=\"true\"]').forEach(function(item) {\n      item.removeAttribute('data-tuokus-shared-detail');\n      item.removeAttribute('data-tuokus-shared-detail-active');\n    });\n\n    visibleCarouselItems = Array.prototype.slice.call(sectionRoot.querySelectorAll('.product-gallery__carousel-item:not(.is-filtered)'));\n    primaryCarouselItem = getPreferredVisibleGalleryItem(sectionRoot, visibleCarouselItems, variantId, currentOptionValueMap);\n\n    visibleCarouselItems.forEach(function(item) {\n      var mediaId = '';\n      var thumbnail = null;\n\r\n      if (!primaryCarouselItem || item === primaryCarouselItem) {\r\n        return;\r\n      }\r\n\r\n      mediaId = item.getAttribute('data-media-id') || '';\r\n      thumbnail = mediaId ? sectionRoot.querySelector('.product-gallery__thumbnail[data-media-id=\"' + mediaId + '\"]') : null;\r\n\r\n      item.classList.add('is-filtered');\r\n      item.classList.remove('is-selected');\r\n      item.setAttribute('data-tuokus-shared-detail', 'true');\r\n\r\n      if (thumbnail) {\r\n        thumbnail.classList.remove('is-filtered');\r\n        thumbnail.setAttribute('data-tuokus-shared-detail', 'true');\r\n      }\r\n    });\r\n  }\r\n\r\n  function resetSharedGalleryDetailMedia(sectionRoot) {\r\n    if (!sectionRoot || !sectionRoot.querySelectorAll) {\r\n      return;\r\n    }\r\n\r\n    sectionRoot.querySelectorAll('.product-gallery__carousel-item[data-tuokus-shared-detail=\"true\"]').forEach(function(item) {\r\n      item.classList.add('is-filtered');\r\n      item.classList.remove('is-selected');\r\n      item.removeAttribute('data-tuokus-shared-detail-active');\r\n    });\r\n  }\r\n\r\n  function revealSharedGalleryDetailMedia(sectionRoot, mediaId) {\r\n    var targetCarouselItem = null;\r\n    var targetThumbnail = null;\r\n\r\n    if (!sectionRoot || !mediaId) {\r\n      return false;\r\n    }\r\n\r\n    targetCarouselItem = sectionRoot.querySelector('.product-gallery__carousel-item[data-media-id=\"' + mediaId + '\"][data-tuokus-shared-detail=\"true\"]');\r\n    targetThumbnail = sectionRoot.querySelector('.product-gallery__thumbnail[data-media-id=\"' + mediaId + '\"][data-tuokus-shared-detail=\"true\"]');\r\n\r\n    if (!targetCarouselItem && !targetThumbnail) {\r\n      resetSharedGalleryDetailMedia(sectionRoot);\r\n      return false;\r\n    }\r\n\r\n    resetSharedGalleryDetailMedia(sectionRoot);\r\n\r\n    if (targetCarouselItem) {\r\n      sectionRoot.querySelectorAll('.product-gallery__carousel-item.is-selected').forEach(function(item) {\r\n        item.classList.remove('is-selected');\r\n      });\r\n\r\n      targetCarouselItem.classList.remove('is-filtered');\r\n      targetCarouselItem.classList.add('is-selected');\r\n      targetCarouselItem.setAttribute('data-tuokus-shared-detail-active', 'true');\r\n    }\r\n\r\n    if (targetThumbnail) {\r\n      sectionRoot.querySelectorAll('.product-gallery__thumbnail.is-nav-selected').forEach(function(item) {\r\n        item.classList.remove('is-nav-selected');\r\n      });\r\n\r\n      targetThumbnail.classList.remove('is-filtered');\r\n      targetThumbnail.classList.add('is-nav-selected');\r\n    }\r\n\r\n    return true;\n  }\n\n  /* Legacy duplicate product copy/gallery reconcilers removed in favor of the final product reconciler near the end of this file.\n\r\n  function normalizeProductSupportCopy(root) {\r\n    var scope = root && root.querySelectorAll ? root : document;\r\n    var supportTitles = ['\u9288\u70B9\u5046\u9288\u6052\u4F00\u9287\u3083\u4E9C\u9287?, '\u9287\u5A43\u589C\u934F\u30E3\u5022\u93C2\u89C4\u7876', '\u95B0\u5D89\u20AC\u4F75\u5153\u6769\u65BF\u6427\u9287\uE0A0\u4EF1\u9287\u52E9\u4EF8'];\r\n    var mojibakePattern = /[\\uFFFD]|[\u95B8\u71BC\u67CA\u95B5\u56EC\u59B6]/;\r\n    var refundMarkup = [\r\n      '<h2>\u95B0\u5D89\u20AC\u4F75\u5153\u6769\u65BF\u6427\u9289\u6FC4\u5136\u9288\u67AB\u5157\u9287\uE0A0\u4EF1\u9287\u52E9\u4EF8</h2>',\r\n      '<p>\u93C3\u30E6\u6E70\u9287\u641E\u4F04\u9287\u5A42\u773E\u9287\u6220\u6D30\u7039\u5908\u4F05\u95AB\u6C2C\u72368\u9286?1\u93C3\u30E3\u4EF9\u9287\u6B0D\u20AC\u509A\u6E74\u9369\u71B4\u5013\u95B0\u5D89\u20AC\u4F7A\u59F8\u5A09\u4F75\u4F00\u9288\u581B\u501E\u9353\u5D85\u7DE6\u9287\u6B0D\u5020\u936B\u6751\u608E\u9287\u5C7B\u4E97\u9288\u5A3F\u4F28\u9287\u6B0D\u4F04\u9287\u0441\u20AC\u4F75\u4E97\u9288\u5908\u4EB1\u9287\u6A38\u500E\u9287\u65BE\u7C21\u93B5\u88E4\u4EB8\u9287\u72AE\u4ECC\u9287\u52E9\u20AC?/p>',\r\n      '<h3>\u6769\u65BF\u6427\u9287\uE0A0\u4EF1\u9287\u52E9\u4EF8</h3>',\r\n      '<p>\u935F\u55D7\u6427\u9287\uE0A1\u7B09\u934F\u5CF0\u608E\u9288\u52ED\u726C\u93BC\u5D83\u4EB4\u9287\u5098\u4EEF\u9287\u71B7\u726C\u935A\u581B\u4F05\u9286\u4F78\u6662\u935D\u4F78\u57CC\u942B\u20AC\u5BF0\u5C7B\u4EF9\u9287\u5D83\u5020\u9287\u72AE\u4EBC\u93C3\u253F\u4EB8\u9287\u65C8\u20AC\uFF47\u6020\u9287\u5FCB\u4EE9\u9287\u66D8\u4E9C\u9286\u509A\u5534\u7039\u5E7F\u5030\u7EB0\u9E3F\u735A\u9287\uE1BA\u4E9E\u9287\u581B\u20AC\u4F77\u6C26\u93BB\u6D96\u4F28\u9287\u71B4\u4F05\u6769\u65BF\u6427\u9287\uE1BD\u7966\u9288\u5C7B\u5030\u9287\u65C0\uE50D\u9350\u546B\u4E9C\u9287\u71B4\u4ED0\u9287\u4FF1\u4EDA\u9286?/p>',\r\n      '<h3>\u9287\u65C2\u2491\u747E\u5D84\u7C28\u95CB?/h3>',\r\n      '<p>\u9287\u65BE\u5A07\u9422\u3125\u7DE6\u9287\uE1BD\u7754\u9288\u5C7B\u5013\u9287\u5A42\uE179\u9287\u66D8\u4F28\u95AE\u85C9\u608E\u9287\u0441\u4F04\u6769\u65BF\u6427\u93C9\u2032\u6B22\u9287\uE042\u4EFC\u9286\u4F7D\u250F\u7EF1\u822C\u4F05\u9288\u5E7F\u5113\u9288\uE76C\u4F04\u95B0\u5D89\u20AC\u4F75\u5153\u6769\u65BF\u6427\u9289\u6FC4\u5136\u9288\u67AB\u5157\u9288\u638B\u4EC8\u7EB0\u9E3F\u735A\u9287\u5FCB\u4EE9\u9287\u66D8\u4E9C\u9286?/p>'\r\n    ].join('');\r\n\r\n    scope.querySelectorAll('[data-section-type=\"product\"]').forEach(function(sectionRoot) {\r\n      sectionRoot.querySelectorAll('.product-block-list__item--content .card__title').forEach(function(title, index) {\r\n        if (index >= supportTitles.length) {\r\n          return;\r\n        }\r\n\r\n        title.textContent = supportTitles[index];\r\n      });\r\n\r\n      sectionRoot.querySelectorAll('.product-block-list__item--description .card__title').forEach(function(title) {\r\n        title.textContent = '\u935F\u55D7\u6427\u746D\u5D07\u7A97';\r\n      });\r\n\r\n      sectionRoot.querySelectorAll('.product-block-list__item--reviews .card__title').forEach(function(title) {\r\n        title.textContent = '\u9289\uE0FE\u511E\u9289\u30E3\u5157';\r\n      });\r\n\r\n      sectionRoot.querySelectorAll('#modal-refunds-policy .rte').forEach(function(content) {\r\n        var text = (content.textContent || '').trim();\r\n\r\n        if (!text || mojibakePattern.test(text)) {\r\n          content.innerHTML = refundMarkup;\r\n        }\r\n      });\r\n    });\r\n  }\n  */\n})();\n(function() {\n  if (window.__TUOKUS_FINAL_RECOVERY_ACTIVE || window.__tuokusLiveRecovery20260711) {\n    return;\n  }\n\n  window.__tuokusLiveRecovery20260711 = true;\n\n  var PRODUCT_SECTION_SELECTOR = '[data-section-type=\"product\"]';\n  var RAIL_SELECTOR = '.variant-swatch-list, .block-swatch-list, .color-swatch-list--large, .tuokus-promo-module__rail, .tuokus-collection-discovery__rail, .product-list--scrollable, .activity-product-list';\n  var VARIANT_RAIL_SELECTOR = '.variant-swatch-list, .block-swatch-list, .color-swatch-list--large';\n  var COUPON_BUTTON_SELECTOR = '[data-copy-coupon], [data-coupon-copy-button]';\n  var lastCopyState = {\n    button: null,\n    time: 0\n  };\n\n  function toArray(nodeList) {\n    return Array.prototype.slice.call(nodeList || []);\n  }\n\n  function isMobileViewport() {\n    return window.innerWidth <= 999;\n  }\n\n  function getProductSection(node) {\n    return node && node.closest ? node.closest(PRODUCT_SECTION_SELECTOR) : null;\n  }\n\n  function removeFilterState(node) {\n    if (!node) {\n      return;\n    }\n\n    node.hidden = false;\n    node.classList.remove('is-filtered');\n    node.removeAttribute('aria-hidden');\n  }\n\n  function isSharedMediaNode(node) {\n    var sharedFlag = '';\n    var variantIds = '';\n\n    if (!node || !node.getAttribute) {\n      return false;\n    }\n\n    sharedFlag = String(node.getAttribute('data-tuokus-shared-detail') || '').toLowerCase();\n    variantIds = String(node.getAttribute('data-variant-ids') || '').replace(/\\s+/g, '');\n\n    return sharedFlag === 'true' || sharedFlag === '1' || variantIds === '';\n  }\n\n  function getVisibleNodes(nodes) {\n    return nodes.filter(function(node) {\n      return !node.classList.contains('is-filtered');\n    });\n  }\n\n  function forceProductBlockOrder(sectionRoot) {\n    var titleBlock = null;\n    var galleryBlock = null;\n    var infoBlock = null;\n    var promotionBlock = null;\n    var variantBlock = null;\n    var variantPicker = null;\n    var infoList = null;\n    var pricingPanel = null;\n\n    if (!sectionRoot || !isMobileViewport()) {\n      return;\n    }\n\n    titleBlock = sectionRoot.querySelector('.product-block-list__item--mobile-title');\n    galleryBlock = sectionRoot.querySelector('.product-block-list__item--gallery');\n    infoBlock = sectionRoot.querySelector('.product-block-list__item--info');\n    promotionBlock = sectionRoot.querySelector('.product-block-list__item--mobile-promotion');\n\n    if (titleBlock) {\n      titleBlock.style.order = '1';\n      titleBlock.style.marginBottom = '0';\n    }\n\n    if (galleryBlock) {\n      galleryBlock.style.order = '2';\n      galleryBlock.style.marginBottom = '0';\n    }\n\n    if (infoBlock) {\n      infoBlock.style.order = '3';\n      infoBlock.style.marginBottom = '0';\n    }\n\n    toArray(sectionRoot.querySelectorAll('.product-block-list__item--description, .product-block-list__item--content, .product-block-list__item--reviews')).forEach(function(block) {\n      block.style.order = '4';\n    });\n\n    if (promotionBlock) {\n      promotionBlock.style.order = '5';\n    }\n\n    variantBlock = sectionRoot.querySelector('.product-info__block-item--variant-selector');\n\n    if (!variantBlock) {\n      return;\n    }\n\n    variantBlock.style.display = 'flex';\n    variantBlock.style.flexDirection = 'column';\n    variantBlock.style.gap = '12px';\n\n    variantPicker = variantBlock.querySelector('.product-form__variants--static, variant-picker');\n    infoList = variantBlock.querySelector('.product-form__info-list');\n    pricingPanel = variantBlock.querySelector('.product-form__pricing-panel');\n\n    if (variantPicker) {\n      variantPicker.style.order = '1';\n    }\n\n    if (infoList) {\n      infoList.style.order = '2';\n      infoList.style.marginTop = '0';\n    }\n\n    if (pricingPanel) {\n      pricingPanel.style.order = '3';\n      pricingPanel.style.marginTop = '0';\n    }\n  }\n\n  function revealSharedMedia(sectionRoot) {\n    toArray(sectionRoot.querySelectorAll('.product-gallery__carousel-item, .product-gallery__thumbnail')).forEach(function(node) {\n      if (isSharedMediaNode(node)) {\n        removeFilterState(node);\n      }\n    });\n  }\n\n  function syncDesktopThumbnailRail(sectionRoot, visibleCount) {\n    var wrapper = sectionRoot.querySelector('.product-gallery__thumbnail-list-wrapper');\n\n    if (!wrapper) {\n      return;\n    }\n\n    wrapper.classList.toggle('tuokus-thumbnail-list--compact', visibleCount <= 2);\n  }\n\n  function normalizeMobileGallery(sectionRoot, activeItem) {\n    var gallery = sectionRoot.querySelector('.product-gallery');\n    var wrapper = sectionRoot.querySelector('.product-gallery__carousel-wrapper');\n    var carousel = sectionRoot.querySelector('.product-gallery__carousel');\n    var viewport = carousel ? carousel.querySelector('.flickity-viewport') : null;\n    var slider = carousel ? carousel.querySelector('.flickity-slider') : null;\n    var thumbnailWrapper = sectionRoot.querySelector('.product-gallery__thumbnail-list-wrapper');\n    var thumbnailList = sectionRoot.querySelector('.product-gallery__thumbnail-list');\n    var scroller = sectionRoot.querySelector('.product-gallery > .scroller');\n    var activeHeight = activeItem && activeItem.offsetHeight ? activeItem.offsetHeight : 0;\n\n    if (!gallery || !isMobileViewport()) {\n      return;\n    }\n\n    gallery.classList.remove('product-gallery--single-visible-media');\n    gallery.classList.remove('product-gallery--few-visible-media');\n\n    toArray([gallery, wrapper, carousel, viewport, slider, thumbnailWrapper, thumbnailList, scroller]).forEach(function(node) {\n      if (!node) {\n        return;\n      }\n\n      node.style.width = '100%';\n      node.style.minWidth = '0';\n      node.style.maxWidth = '100%';\n      node.style.height = node === viewport && activeHeight ? activeHeight + 'px' : node.style.height;\n    });\n\n    toArray(sectionRoot.querySelectorAll('.product-gallery__carousel-item')).forEach(function(item) {\n      item.style.width = '100%';\n      item.style.minWidth = '100%';\n      item.style.maxWidth = '100%';\n    });\n\n    toArray(sectionRoot.querySelectorAll('.product-gallery__size-limiter')).forEach(function(node) {\n      node.style.width = '100%';\n      node.style.maxWidth = '100%';\n      node.style.minWidth = '0';\n    });\n\n    if (window.Flickity && carousel) {\n      try {\n        var flkty = window.Flickity.data(carousel);\n\n        if (flkty) {\n          flkty.resize();\n        }\n      } catch (error) {\n      }\n    }\n  }\n\n  function rememberRailScroll(trigger) {\n    var rail = null;\n\n    if (!trigger || !trigger.closest) {\n      return;\n    }\n\n    rail = trigger.closest(VARIANT_RAIL_SELECTOR);\n\n    if (!rail) {\n      return;\n    }\n\n    rail.dataset.tuokusSavedScrollLeft = String(rail.scrollLeft || 0);\n  }\n\n  function revealRailItemWithinRail(rail, item) {\n    var railRect = null;\n    var itemRect = null;\n    var padding = 10;\n\n    if (!rail || !item || typeof rail.getBoundingClientRect !== 'function' || typeof item.getBoundingClientRect !== 'function') {\n      return;\n    }\n\n    railRect = rail.getBoundingClientRect();\n    itemRect = item.getBoundingClientRect();\n\n    if (itemRect.left < railRect.left + padding) {\n      rail.scrollLeft = Math.max(0, rail.scrollLeft + itemRect.left - railRect.left - padding);\n    } else if (itemRect.right > railRect.right - padding) {\n      rail.scrollLeft = Math.max(0, rail.scrollLeft + itemRect.right - railRect.right + padding);\n    }\n  }\n\n  function restoreRailScroll(sectionRoot) {\n    toArray(sectionRoot.querySelectorAll(VARIANT_RAIL_SELECTOR)).forEach(function(rail) {\n      var selectedItem = rail.querySelector('.variant-swatch__item.is-selected, .block-swatch__item.is-selected, .color-swatch__item.is-selected');\n      var savedScrollLeft = parseFloat(rail.dataset.tuokusSavedScrollLeft || '');\n\n      if (!isNaN(savedScrollLeft)) {\n        rail.scrollLeft = savedScrollLeft;\n      }\n\n      revealRailItemWithinRail(rail, selectedItem);\n    });\n  }\n\n  function syncGallery(sectionRoot) {\n    var gallery = null;\n    var carousel = null;\n    var carouselItems = [];\n    var thumbnails = [];\n    var visibleCarouselItems = [];\n    var visibleThumbnails = [];\n    var activeItem = null;\n    var activeMediaId = '';\n    var activeThumbnail = null;\n    var visibleCount = 0;\n\n    if (!sectionRoot || !sectionRoot.querySelectorAll) {\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\n    if (!gallery || !carouselItems.length) {\n      return;\n    }\n\n    revealSharedMedia(sectionRoot);\n\n    visibleCarouselItems = getVisibleNodes(carouselItems);\n    visibleThumbnails = getVisibleNodes(thumbnails);\n\n    if (!visibleCarouselItems.length) {\n      removeFilterState(carouselItems[0]);\n      visibleCarouselItems = getVisibleNodes(carouselItems);\n    }\n\n    activeItem =\n      sectionRoot.querySelector('.product-gallery__carousel-item.is-selected:not(.is-filtered)') ||\n      visibleCarouselItems[0] ||\n      carouselItems[0] ||\n      null;\n\n    carouselItems.forEach(function(item) {\n      item.classList.remove('is-selected');\n    });\n\n    if (activeItem) {\n      removeFilterState(activeItem);\n      activeItem.classList.add('is-selected');\n      activeMediaId = activeItem.getAttribute('data-media-id') || '';\n    }\n\n    thumbnails.forEach(function(item) {\n      item.classList.remove('is-nav-selected');\n    });\n\n    if (activeMediaId) {\n      activeThumbnail = sectionRoot.querySelector('.product-gallery__thumbnail[data-media-id=\"' + activeMediaId + '\"]');\n\n      if (activeThumbnail) {\n        removeFilterState(activeThumbnail);\n        activeThumbnail.classList.add('is-nav-selected');\n      }\n    } else if (visibleThumbnails[0]) {\n      visibleThumbnails[0].classList.add('is-nav-selected');\n    }\n\n    visibleCount = Math.max(getVisibleNodes(carouselItems).length, getVisibleNodes(thumbnails).length);\n    gallery.setAttribute('data-visible-media-count', String(visibleCount));\n\n    if (isMobileViewport()) {\n      normalizeMobileGallery(sectionRoot, activeItem);\n    } else {\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      syncDesktopThumbnailRail(sectionRoot, visibleCount);\n    }\n\n    if (carousel && activeMediaId) {\n      carousel.setAttribute('data-initial-media-id', activeMediaId);\n    }\n\n    restoreRailScroll(sectionRoot);\n  }\n\n  function markPromotionShells(root) {\n    toArray(root.querySelectorAll('.product-gallery__promotion-shell--desktop-only, .product-block-list__item--mobile-promotion')).forEach(function(shell) {\n      var cards = toArray(shell.querySelectorAll('.tuokus-promo-module__rail > *, .product-list > *, .product-item'));\n      var hasVisibleCards = cards.some(function(card) {\n        return card.offsetWidth > 0 || card.offsetHeight > 0;\n      });\n\n      shell.classList.toggle('tuokus-shell--empty', !hasVisibleCards);\n    });\n  }\n\n  function bindDraggableRail(rail) {\n    var pointerId = null;\n    var startX = 0;\n    var startScrollLeft = 0;\n    var dragging = false;\n    var suppressClick = false;\n\n    if (!rail || rail.dataset.tuokusDragBound === 'true') {\n      return;\n    }\n\n    rail.dataset.tuokusDragBound = 'true';\n    rail.style.cursor = 'grab';\n\n    rail.addEventListener('pointerdown', function(event) {\n      if (event.pointerType === 'touch' || event.button !== 0) {\n        return;\n      }\n\n      pointerId = event.pointerId;\n      startX = event.clientX;\n      startScrollLeft = rail.scrollLeft;\n      dragging = false;\n      suppressClick = false;\n\n      if (typeof rail.setPointerCapture === 'function') {\n        rail.setPointerCapture(pointerId);\n      }\n\n      rail.style.cursor = 'grabbing';\n    });\n\n    rail.addEventListener('pointermove', function(event) {\n      var deltaX = 0;\n\n      if (pointerId === null || event.pointerId !== pointerId) {\n        return;\n      }\n\n      deltaX = event.clientX - startX;\n\n      if (!dragging && Math.abs(deltaX) > 6) {\n        dragging = true;\n        suppressClick = true;\n      }\n\n      if (!dragging) {\n        return;\n      }\n\n      rail.scrollLeft = startScrollLeft - deltaX;\n      event.preventDefault();\n    });\n\n    function clearDrag() {\n      if (pointerId !== null && typeof rail.releasePointerCapture === 'function' && rail.hasPointerCapture(pointerId)) {\n        rail.releasePointerCapture(pointerId);\n      }\n\n      pointerId = null;\n      dragging = false;\n      rail.style.cursor = 'grab';\n\n      window.setTimeout(function() {\n        suppressClick = false;\n      }, 0);\n    }\n\n    rail.addEventListener('pointerup', clearDrag);\n    rail.addEventListener('pointercancel', clearDrag);\n    rail.addEventListener('lostpointercapture', clearDrag);\n\n    rail.addEventListener('click', function(event) {\n      if (!suppressClick) {\n        return;\n      }\n\n      event.preventDefault();\n      event.stopPropagation();\n      suppressClick = false;\n    }, true);\n  }\n\n  function bindRails(root) {\n    toArray(root.querySelectorAll(RAIL_SELECTOR)).forEach(bindDraggableRail);\n  }\n\n  function copyWithTextarea(value) {\n    var textarea = null;\n    var copied = false;\n\n    if (!value) {\n      return false;\n    }\n\n    textarea = document.createElement('textarea');\n    textarea.value = String(value);\n    textarea.setAttribute('readonly', 'readonly');\n    textarea.style.position = 'fixed';\n    textarea.style.top = '-9999px';\n    textarea.style.left = '-9999px';\n    textarea.style.opacity = '0';\n\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 updateCouponButtonState(button, copied) {\n    var label = button.querySelector('.product-form__coupon-copy-label');\n    var defaultLabel = button.getAttribute('data-default-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\n    if (label) {\n      label.textContent = copied ? copiedLabel : defaultLabel;\n    }\n  }\n\n  function extractCouponCode(button) {\n    var root = null;\n    var codeNode = null;\n\n    if (!button) {\n      return '';\n    }\n\n    root = button.closest('[data-coupon-copy-root], .product-form__pricing-panel, .product-coupon-box');\n    codeNode = root ? root.querySelector('[data-coupon-code], .product-form__coupon-code, .product-coupon-box__code') : null;\n\n    return 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    ).trim();\n  }\n\n  function copyCoupon(button) {\n    var couponCode = extractCouponCode(button);\n    var now = Date.now();\n    var copiedSync = false;\n\n    if (!couponCode) {\n      return;\n    }\n\n    if (lastCopyState.button === button && now - lastCopyState.time < 500) {\n      return;\n    }\n\n    lastCopyState.button = button;\n    lastCopyState.time = now;\n\n    copiedSync = copyWithTextarea(couponCode);\n\n    if (copiedSync) {\n      updateCouponButtonState(button, true);\n      window.setTimeout(function() {\n        updateCouponButtonState(button, false);\n      }, 1800);\n      return;\n    }\n\n    if (navigator.clipboard && typeof navigator.clipboard.writeText === 'function') {\n      navigator.clipboard.writeText(couponCode).then(function() {\n        updateCouponButtonState(button, true);\n\n        window.setTimeout(function() {\n          updateCouponButtonState(button, false);\n        }, 1800);\n      }).catch(function() {\n        updateCouponButtonState(button, copyWithTextarea(couponCode));\n\n        window.setTimeout(function() {\n          updateCouponButtonState(button, false);\n        }, 1800);\n      });\n      return;\n    }\n\n    updateCouponButtonState(button, false);\n  }\n\n  function handleCouponCopy(event) {\n    var button = event.target && event.target.closest ? event.target.closest(COUPON_BUTTON_SELECTOR) : null;\n\n    if (!button) {\n      return;\n    }\n\n    event.preventDefault();\n    event.stopPropagation();\n\n    if (typeof event.stopImmediatePropagation === 'function') {\n      event.stopImmediatePropagation();\n    }\n\n    copyCoupon(button);\n  }\n\n  function reconcileProducts(root) {\n    var scope = root && root.querySelectorAll ? root : document;\n\n    bindRails(scope);\n    markPromotionShells(scope);\n\n    toArray(scope.querySelectorAll(PRODUCT_SECTION_SELECTOR)).forEach(function(sectionRoot) {\n      forceProductBlockOrder(sectionRoot);\n      syncGallery(sectionRoot);\n      markPromotionShells(sectionRoot);\n    });\n  }\n\n  function scheduleProductRecovery(sectionRoot) {\n    if (!sectionRoot) {\n      return;\n    }\n\n    [40, 120, 280, 540, 900].forEach(function(delay) {\n      window.setTimeout(function() {\n        forceProductBlockOrder(sectionRoot);\n        syncGallery(sectionRoot);\n        bindRails(sectionRoot);\n        markPromotionShells(sectionRoot);\n      }, delay);\n    });\n  }\n\n  document.addEventListener('touchend', handleCouponCopy, true);\n  document.addEventListener('click', handleCouponCopy, true);\n\n  document.addEventListener('pointerdown', function(event) {\n    var trigger = event.target && event.target.closest\n      ? event.target.closest('.variant-swatch, .block-swatch, .color-swatch, .product-form__option-value, .product-gallery__thumbnail')\n      : null;\n\n    if (trigger) {\n      rememberRailScroll(trigger);\n    }\n  }, true);\n\n  document.addEventListener('click', function(event) {\n    var trigger = event.target && event.target.closest\n      ? event.target.closest('.variant-swatch, .block-swatch, .color-swatch, .product-form__option-value, .product-gallery__thumbnail')\n      : null;\n    var sectionRoot = getProductSection(trigger);\n\n    if (!sectionRoot) {\n      return;\n    }\n\n    scheduleProductRecovery(sectionRoot);\n  }, true);\n\n  document.addEventListener('change', function(event) {\n    var trigger = event.target && event.target.closest\n      ? event.target.closest('.product-form__single-selector[data-option-position], .product-form__option input, .product-form__option select')\n      : null;\n    var sectionRoot = getProductSection(trigger);\n\n    if (!sectionRoot) {\n      return;\n    }\n\n    scheduleProductRecovery(sectionRoot);\n  }, true);\n\n  document.addEventListener('variant:changed', function(event) {\n    var sectionRoot = null;\n\n    if (event.target && event.target.closest) {\n      sectionRoot = event.target.closest(PRODUCT_SECTION_SELECTOR);\n    }\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    scheduleProductRecovery(sectionRoot);\n  }, true);\n\n  document.addEventListener('theme:loading:end', function(event) {\n    window.requestAnimationFrame(function() {\n      reconcileProducts(event.target || document);\n    });\n  });\n\n  document.addEventListener('shopify:section:load', function(event) {\n    window.requestAnimationFrame(function() {\n      reconcileProducts(event.target || document);\n    });\n  });\n\n  window.addEventListener('pageshow', function() {\n    window.requestAnimationFrame(function() {\n      reconcileProducts(document);\n    });\n  });\n\n  window.addEventListener('resize', function() {\n    window.requestAnimationFrame(function() {\n      reconcileProducts(document);\n    });\n  });\n\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', function() {\n      reconcileProducts(document);\n    });\n  } else {\n    reconcileProducts(document);\n  }\n})();\n\n(function() {\n  if (window.__TUOKUS_FINAL_RECOVERY_ACTIVE) {\n    return;\n  }\n\n  var PRODUCT_SECTION_SELECTOR = '[data-section-type=\"product\"]';\n  var COPY_BUTTON_SELECTOR = '[data-copy-coupon], [data-coupon-copy-button]';\n\n  function toArray(nodes) {\n    return Array.prototype.slice.call(nodes || []);\n  }\n\n  function normalizeValue(value) {\n    return String(value || '')\n      .replace(/\\s+/g, ' ')\n      .trim()\n      .toLowerCase();\n  }\n\n  function parseVariantIds(csv) {\n    return String(csv || '')\n      .split(',')\n      .map(function(value) {\n        return String(value || '').trim();\n      })\n      .filter(Boolean);\n  }\n\n  function getCurrentVariantId(sectionRoot) {\n    var variantInput = null;\n\n    if (!sectionRoot) {\n      return '';\n    }\n\n    variantInput =\n      sectionRoot.querySelector('form[action*=\"/cart/add\"] input[name=\"id\"]') ||\n      sectionRoot.querySelector('input[name=\"id\"][data-sku]') ||\n      null;\n\n    return variantInput ? String(variantInput.value || '').trim() : '';\n  }\n\n  function getSelectedOptionMap(sectionRoot) {\n    var optionMap = {};\n\n    if (!sectionRoot) {\n      return optionMap;\n    }\n\n    toArray(sectionRoot.querySelectorAll('.product-form__option')).forEach(function(optionElement) {\n      var optionNameNode = optionElement.querySelector('.product-form__option-name');\n      var selectedValueNode = optionElement.querySelector('.product-form__selected-value');\n      var checkedInput = optionElement.querySelector('input:checked');\n      var selectedSelect = optionElement.querySelector('select');\n      var optionName = '';\n      var selectedValue = '';\n      var selectedLabel = null;\n\n      if (optionNameNode) {\n        optionName = normalizeValue(optionNameNode.textContent.split(':')[0]);\n      }\n\n      if (selectedValueNode && selectedValueNode.textContent.trim()) {\n        selectedValue = normalizeValue(selectedValueNode.textContent);\n      }\n\n      if (!selectedValue && checkedInput) {\n        selectedLabel = optionElement.querySelector('label[for=\"' + checkedInput.id + '\"]');\n\n        if (selectedLabel) {\n          selectedValue = normalizeValue(\n            selectedLabel.getAttribute('data-raw-value') ||\n            selectedLabel.getAttribute('data-display-value') ||\n            selectedLabel.textContent\n          );\n        }\n      }\n\n      if (!selectedValue && selectedSelect && selectedSelect.selectedIndex >= 0) {\n        selectedValue = normalizeValue(\n          selectedSelect.options[selectedSelect.selectedIndex].getAttribute('data-display-value') ||\n          selectedSelect.options[selectedSelect.selectedIndex].textContent\n        );\n      }\n\n      if (!optionName || !selectedValue) {\n        return;\n      }\n\n      optionMap[optionName] = selectedValue;\n\n      if (optionName === '\u30AB\u30E9\u30FC' || optionName === '\u8272' || optionName === 'color' || optionName === 'colour') {\n        optionMap.color = selectedValue;\n      }\n\n      if (optionName === '\u67C4' || optionName === 'pattern' || optionName === 'design' || optionName === 'style') {\n        optionMap.pattern = selectedValue;\n      }\n    });\n\n    return optionMap;\n  }\n\n  function itemMatchesSelection(item, variantId, optionMap) {\n    var variantIds = parseVariantIds(item.getAttribute('data-variant-ids'));\n    var groupName = normalizeValue(item.getAttribute('data-group-name'));\n    var groupValue = normalizeValue(item.getAttribute('data-group-value'));\n    var selectedGroupValue = '';\n\n    if (variantIds.length) {\n      return variantIds.indexOf(variantId) !== -1;\n    }\n\n    if (groupName && groupValue) {\n      selectedGroupValue = optionMap[groupName] || optionMap.color || optionMap.pattern || '';\n\n      if (!selectedGroupValue) {\n        return true;\n      }\n\n      return selectedGroupValue === groupValue;\n    }\n\n    return true;\n  }\n\n  function syncGalleryForSection(sectionRoot) {\n    var gallery = null;\n    var carousel = null;\n    var carouselItems = [];\n    var thumbnails = [];\n    var optionMap = {};\n    var variantId = '';\n    var visibleItems = [];\n    var preferredHero = null;\n    var selectedHero = null;\n    var selectedMediaId = '';\n    var thumbnailTarget = null;\n    var visibleCount = 0;\n\n    if (!sectionRoot || !sectionRoot.querySelectorAll) {\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\n    if (!gallery || !carouselItems.length) {\n      return;\n    }\n\n    variantId = getCurrentVariantId(sectionRoot);\n    optionMap = getSelectedOptionMap(sectionRoot);\n\n    carouselItems.forEach(function(item) {\n      var mediaId = item.getAttribute('data-media-id') || '';\n      var visible = itemMatchesSelection(item, variantId, optionMap);\n      var linkedThumbnail = mediaId\n        ? sectionRoot.querySelector('.product-gallery__thumbnail[data-media-id=\"' + mediaId + '\"]')\n        : null;\n\n      item.classList.toggle('is-filtered', !visible);\n      item.removeAttribute('data-tuokus-shared-detail-active');\n\n      if (linkedThumbnail) {\n        linkedThumbnail.classList.toggle('is-filtered', !visible);\n      }\n    });\n\n    visibleItems = carouselItems.filter(function(item) {\n      return !item.classList.contains('is-filtered');\n    });\n\n    if (!visibleItems.length) {\n      carouselItems.forEach(function(item) {\n        var mediaId = item.getAttribute('data-media-id') || '';\n        var linkedThumbnail = mediaId\n          ? sectionRoot.querySelector('.product-gallery__thumbnail[data-media-id=\"' + mediaId + '\"]')\n          : null;\n\n        item.classList.remove('is-filtered');\n\n        if (linkedThumbnail) {\n          linkedThumbnail.classList.remove('is-filtered');\n        }\n      });\n\n      visibleItems = carouselItems.slice();\n    }\n\n    preferredHero = visibleItems.find(function(item) {\n      return parseVariantIds(item.getAttribute('data-variant-ids')).indexOf(variantId) !== -1;\n    }) || visibleItems[0] || null;\n\n    selectedHero =\n      sectionRoot.querySelector('.product-gallery__carousel-item.is-selected:not(.is-filtered)') ||\n      preferredHero;\n\n    if (selectedHero && parseVariantIds(selectedHero.getAttribute('data-variant-ids')).indexOf(variantId) === -1) {\n      selectedHero = preferredHero;\n    }\n\n    carouselItems.forEach(function(item) {\n      item.classList.toggle('is-selected', item === selectedHero);\n    });\n\n    selectedMediaId = selectedHero ? (selectedHero.getAttribute('data-media-id') || '') : '';\n\n    thumbnails.forEach(function(item) {\n      item.classList.remove('is-nav-selected');\n    });\n\n    thumbnailTarget = selectedMediaId\n      ? sectionRoot.querySelector('.product-gallery__thumbnail[data-media-id=\"' + selectedMediaId + '\"]:not(.is-filtered)')\n      : null;\n\n    if (!thumbnailTarget) {\n      thumbnailTarget = thumbnails.find(function(item) {\n        return !item.classList.contains('is-filtered');\n      }) || null;\n    }\n\n    if (thumbnailTarget) {\n      thumbnailTarget.classList.add('is-nav-selected');\n    }\n\n    visibleCount = visibleItems.length;\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    gallery.setAttribute('data-visible-media-count', String(visibleCount));\n\n    if (carousel && selectedMediaId) {\n      carousel.setAttribute('data-initial-media-id', selectedMediaId);\n    }\n  }\n\n  function scheduleGallerySync(sectionRoot) {\n    if (!sectionRoot) {\n      return;\n    }\n\n    [40, 180, 420].forEach(function(delay) {\n      window.setTimeout(function() {\n        syncGalleryForSection(sectionRoot);\n      }, delay);\n    });\n  }\n\n  function syncAllProductSections(root) {\n    var scope = root && root.querySelectorAll ? root : document;\n\n    scope.querySelectorAll(PRODUCT_SECTION_SELECTOR).forEach(function(sectionRoot) {\n      syncGalleryForSection(sectionRoot);\n    });\n  }\n\n  function tryLegacyCopy(text) {\n    var textarea = document.createElement('textarea');\n    var copied = false;\n\n    textarea.value = text;\n    textarea.setAttribute('readonly', 'readonly');\n    textarea.style.position = 'fixed';\n    textarea.style.top = '-9999px';\n    textarea.style.left = '-9999px';\n    textarea.style.opacity = '0';\n\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\n    return copied;\n  }\n\n  function setCopyState(button, copied) {\n    var label = button.querySelector('.product-form__coupon-copy-label');\n    var defaultLabel = button.getAttribute('data-default-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\n    if (label) {\n      label.textContent = copied ? copiedLabel : defaultLabel;\n    }\n  }\n\n  function resolveCouponCode(button) {\n    var root = null;\n    var codeNode = null;\n\n    if (!button) {\n      return '';\n    }\n\n    root = button.closest('.product-form__pricing-panel, .product-coupon-box, [data-coupon-copy-root]');\n    codeNode = root\n      ? root.querySelector('[data-coupon-code], .product-form__coupon-code, .product-coupon-box__code')\n      : null;\n\n    return normalizeValue(\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    ).toUpperCase();\n  }\n\n  function copyCouponCode(button) {\n    var couponCode = resolveCouponCode(button);\n\n    if (!couponCode) {\n      return;\n    }\n\n    if (tryLegacyCopy(couponCode)) {\n      setCopyState(button, true);\n\n      window.setTimeout(function() {\n        setCopyState(button, false);\n      }, 1800);\n\n      return;\n    }\n\n    if (navigator.clipboard && typeof navigator.clipboard.writeText === 'function' && window.isSecureContext) {\n      navigator.clipboard.writeText(couponCode).then(function() {\n        setCopyState(button, true);\n\n        window.setTimeout(function() {\n          setCopyState(button, false);\n        }, 1800);\n      }).catch(function() {\n        setCopyState(button, false);\n      });\n\n      return;\n    }\n\n    setCopyState(button, false);\n  }\n\n  document.addEventListener('click', function(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    event.preventDefault();\n    event.stopPropagation();\n\n    if (typeof event.stopImmediatePropagation === 'function') {\n      event.stopImmediatePropagation();\n    }\n\n    copyCouponCode(button);\n  }, true);\n\n  document.addEventListener('click', function(event) {\n    var trigger = event.target && event.target.closest\n      ? event.target.closest('.variant-swatch, .block-swatch, .color-swatch, .product-gallery__thumbnail, .product-form__option-value')\n      : null;\n    var sectionRoot = trigger && trigger.closest ? trigger.closest(PRODUCT_SECTION_SELECTOR) : null;\n\n    if (sectionRoot) {\n      scheduleGallerySync(sectionRoot);\n    }\n  }, true);\n\n  document.addEventListener('change', function(event) {\n    var trigger = event.target && event.target.closest\n      ? event.target.closest('.product-form__single-selector, .product-form__option select')\n      : null;\n    var sectionRoot = trigger && trigger.closest ? trigger.closest(PRODUCT_SECTION_SELECTOR) : null;\n\n    if (sectionRoot) {\n      scheduleGallerySync(sectionRoot);\n    }\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    scheduleGallerySync(sectionRoot);\n  }, true);\n\n  document.addEventListener('theme:loading:end', function(event) {\n    window.requestAnimationFrame(function() {\n      syncAllProductSections(event.target || document);\n    });\n  });\n\n  document.addEventListener('shopify:section:load', function(event) {\n    window.requestAnimationFrame(function() {\n      syncAllProductSections(event.target || document);\n    });\n  });\n\n  window.addEventListener('pageshow', function() {\n    window.requestAnimationFrame(function() {\n      syncAllProductSections(document);\n    });\n  });\n\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', function() {\n      syncAllProductSections(document);\n    });\n  } else {\n    syncAllProductSections(document);\n  }\n})();\n\n  /* Legacy duplicate product copy/gallery reconcilers removed in favor of the final product reconciler near the end of this file.\n(function() {\n  if (window.__TUOKUS_FINAL_RECOVERY_ACTIVE) {\n    return;\n  }\n\n  var PRODUCT_SECTION_SELECTOR = '[data-section-type=\"product\"]';\n  var SUPPORT_TITLES = [\n    '\\u30b5\\u30a4\\u30ba\\u306b\\u3064\\u3044\\u3066',\r\n    '\\u304a\\u624b\\u5165\\u308c\\u65b9\\u6cd5',\r\n    '\\u914d\\u9001\\u30fb\\u8fd4\\u54c1\\u306b\\u3064\\u3044\\u3066'\r\n  ];\r\n  var MOJIBAKE_PATTERN = /\u95B8\u71B7\u68D7\u93BC\uE742\u95B5\u5918\u5159\u934E\u7028\u95C1\u677F\u79F9|\u93C9\u2542\u67E8\u93BC\uE742\u95B5\u5822\u5063\u934B\u5521[\\uFFFD]/;\r\n  var REFUND_MARKUP = [\r\n    '<h2>\\u914d\\u9001\\u30fb\\u8fd4\\u54c1\\u30dd\\u30ea\\u30b7\\u30fc\\u306b\\u3064\\u3044\\u3066</h2>',\r\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>',\r\n    '<h3>\\u8fd4\\u54c1\\u306b\\u3064\\u3044\\u3066</h3>',\r\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>',\r\n    '<h3>\\u3054\\u78ba\\u8a8d\\u4e8b\\u9805</h3>',\r\n    '<p>\\u3054\\u4f7f\\u7528\\u5f8c\\u306e\\u6c5a\\u308c\\u3084\\u304a\\u5ba2\\u69d8\\u90fd\\u5408\\u3067\\u306e\\u8fd4\\u54c1\\u6761\\u4ef6\\u306a\\u3069\\u3001\\u8a73\\u3057\\u304f\\u306f\\u30b9\\u30c8\\u30a2\\u306e\\u914d\\u9001\\u30fb\\u8fd4\\u54c1\\u30dd\\u30ea\\u30b7\\u30fc\\u3092\\u3054\\u78ba\\u8a8d\\u304f\\u3060\\u3055\\u3044\\u3002</p>'\r\n  ].join('');\r\n\r\n  function syncVisibleProductGallery(sectionRoot) {\r\n    var gallery = null;\r\n    var visibleCarouselItems = [];\r\n    var visibleThumbnails = [];\r\n    var activeCarouselItem = null;\r\n    var activeThumbnail = null;\r\n    var activeMediaId = '';\r\n    var visibleCount = 0;\r\n    var carousel = null;\r\n\r\n    if (!sectionRoot || !sectionRoot.querySelector) {\r\n      return;\r\n    }\r\n\r\n    gallery = sectionRoot.querySelector('.product-gallery');\r\n\r\n    if (!gallery) {\r\n      return;\r\n    }\r\n\r\n    visibleCarouselItems = Array.prototype.slice.call(\r\n      sectionRoot.querySelectorAll('.product-gallery__carousel-item:not(.is-filtered)')\r\n    );\r\n    visibleThumbnails = Array.prototype.slice.call(\r\n      sectionRoot.querySelectorAll('.product-gallery__thumbnail:not(.is-filtered)')\r\n    );\r\n    activeCarouselItem =\r\n      sectionRoot.querySelector('.product-gallery__carousel-item.is-selected:not(.is-filtered)') ||\r\n      visibleCarouselItems[0] ||\r\n      null;\r\n\r\n    sectionRoot.querySelectorAll('.product-gallery__carousel-item.is-selected').forEach(function(item) {\r\n      item.classList.remove('is-selected');\r\n    });\r\n\r\n    if (activeCarouselItem) {\r\n      activeCarouselItem.classList.add('is-selected');\r\n      activeMediaId = activeCarouselItem.getAttribute('data-media-id') || '';\r\n    }\r\n\r\n    sectionRoot.querySelectorAll('.product-gallery__thumbnail.is-nav-selected').forEach(function(item) {\r\n      item.classList.remove('is-nav-selected');\r\n    });\r\n\r\n    activeThumbnail = activeMediaId\r\n      ? sectionRoot.querySelector('.product-gallery__thumbnail[data-media-id=\"' + activeMediaId + '\"]:not(.is-filtered)')\r\n      : (visibleThumbnails[0] || null);\r\n\r\n    if (activeThumbnail) {\r\n      activeThumbnail.classList.add('is-nav-selected');\r\n    }\r\n\r\n    visibleCount = visibleThumbnails.length || visibleCarouselItems.length;\r\n    gallery.classList.toggle('product-gallery--single-visible-media', visibleCount <= 1);\r\n    gallery.classList.toggle('product-gallery--few-visible-media', visibleCount > 1 && visibleCount <= 2);\r\n    gallery.setAttribute('data-visible-media-count', String(visibleCount));\r\n\r\n    if (activeMediaId) {\r\n      carousel = sectionRoot.querySelector('.product-gallery__carousel');\r\n\r\n      if (carousel) {\r\n        carousel.setAttribute('data-initial-media-id', activeMediaId);\r\n      }\r\n    }\r\n  }\r\n\r\n  function stripBorrowedSharedDetailMedia(sectionRoot) {\n    if (!sectionRoot || !sectionRoot.querySelectorAll) {\n      return;\n    }\n\n    syncVisibleProductGallery(sectionRoot);\n  }\n\r\n  function normalizeProductJapaneseCopy(sectionRoot) {\r\n    if (!sectionRoot || !sectionRoot.querySelectorAll) {\r\n      return;\r\n    }\r\n\r\n    sectionRoot.querySelectorAll('.product-block-list__item--content .card__title').forEach(function(title, index) {\r\n      if (index >= SUPPORT_TITLES.length) {\r\n        return;\r\n      }\r\n\r\n      title.textContent = SUPPORT_TITLES[index];\r\n    });\r\n\r\n    sectionRoot.querySelectorAll('.product-block-list__item--description .card__title').forEach(function(title) {\r\n      title.textContent = '\\u5546\\u54c1\\u8a73\\u7d30';\r\n    });\r\n\r\n    sectionRoot.querySelectorAll('.product-block-list__item--reviews .card__title').forEach(function(title) {\r\n      title.textContent = '\\u30ec\\u30d3\\u30e5\\u30fc';\r\n    });\r\n\r\n    sectionRoot.querySelectorAll('#modal-refunds-policy .rte').forEach(function(content) {\r\n      var text = (content.textContent || '').trim();\r\n\r\n      if (!text || MOJIBAKE_PATTERN.test(text)) {\r\n        content.innerHTML = REFUND_MARKUP;\r\n      }\r\n    });\r\n  }\r\n\r\n  function reconcileProductSection(sectionRoot) {\r\n    normalizeProductJapaneseCopy(sectionRoot);\r\n    stripBorrowedSharedDetailMedia(sectionRoot);\r\n  }\r\n\r\n  function reconcileProductSections(root) {\r\n    var scope = root && root.querySelectorAll ? root : document;\r\n\r\n    scope.querySelectorAll(PRODUCT_SECTION_SELECTOR).forEach(function(sectionRoot) {\r\n      reconcileProductSection(sectionRoot);\r\n    });\r\n  }\r\n\r\n  document.addEventListener('theme:loading:end', function(event) {\r\n    window.requestAnimationFrame(function() {\r\n      reconcileProductSections(event.target || document);\r\n    });\r\n  });\r\n\r\n  document.addEventListener('shopify:section:load', function(event) {\r\n    window.requestAnimationFrame(function() {\r\n      reconcileProductSections(event.target || document);\r\n    });\r\n  });\r\n\r\n  document.addEventListener('change', function(event) {\r\n    var optionInput = event.target.closest && event.target.closest('.product-form__single-selector[data-option-position]');\r\n    var sectionRoot = null;\r\n\r\n    if (!optionInput) {\r\n      return;\r\n    }\r\n\r\n    sectionRoot = optionInput.closest(PRODUCT_SECTION_SELECTOR);\r\n\r\n    if (!sectionRoot) {\r\n      return;\r\n    }\r\n\r\n    window.setTimeout(function() {\r\n      reconcileProductSection(sectionRoot);\r\n    }, 32);\r\n  }, true);\r\n\r\n  window.addEventListener('pageshow', function() {\r\n    window.requestAnimationFrame(function() {\r\n      reconcileProductSections(document);\r\n    });\r\n  });\r\n\r\n  if (document.readyState === 'loading') {\r\n    document.addEventListener('DOMContentLoaded', function() {\r\n      reconcileProductSections(document);\r\n    });\r\n  } else {\r\n    reconcileProductSections(document);\r\n  }\r\n})();\r\n\r\n(function() {\n  if (window.__TUOKUS_FINAL_RECOVERY_ACTIVE) {\n    return;\n  }\n\n  var PRODUCT_SECTION_SELECTOR = '[data-section-type=\"product\"]';\n  var SUPPORT_TITLES = ['\u30B5\u30A4\u30BA\u306B\u3064\u3044\u3066', '\u304A\u624B\u5165\u308C\u65B9\u6CD5', '\u914D\u9001\u30FB\u8FD4\u54C1\u306B\u3064\u3044\u3066'];\n  var MOJIBAKE_PATTERN = /[\\uFFFD]|(?:\u95B5\u565F\u95B5\u577E\u95B5\u588A\u95C2\u4E85\u95C1\u7698\u95B8\u7132\u93C9\uFE5F\u941F\u74C5\u95BA\u588A\u95C1\u7AF1\u6FE1?/;\n  var REFUND_MARKUP = [\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>\u3054\u4F7F\u7528\u5F8C\u306E\u6C5A\u308C\u3084\u304A\u5BA2\u69D8\u90FD\u5408\u3067\u306E\u8FD4\u54C1\u6761\u4EF6\u306A\u3069\u3001\u8A73\u3057\u304F\u306F\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\r\n  function syncVisibleProductGallery(sectionRoot) {\r\n    var gallery = null;\r\n    var visibleCarouselItems = [];\r\n    var visibleThumbnails = [];\r\n    var activeCarouselItem = null;\r\n    var activeThumbnail = null;\r\n    var activeMediaId = '';\r\n    var visibleCount = 0;\r\n\r\n    if (!sectionRoot || !sectionRoot.querySelector) {\r\n      return;\r\n    }\r\n\r\n    gallery = sectionRoot.querySelector('.product-gallery');\r\n\r\n    if (!gallery) {\r\n      return;\r\n    }\r\n\r\n    visibleCarouselItems = Array.prototype.slice.call(sectionRoot.querySelectorAll('.product-gallery__carousel-item:not(.is-filtered)'));\r\n    visibleThumbnails = Array.prototype.slice.call(sectionRoot.querySelectorAll('.product-gallery__thumbnail:not(.is-filtered)'));\r\n    activeCarouselItem = sectionRoot.querySelector('.product-gallery__carousel-item.is-selected:not(.is-filtered)') || visibleCarouselItems[0] || null;\r\n\r\n    sectionRoot.querySelectorAll('.product-gallery__carousel-item.is-selected').forEach(function(item) {\r\n      item.classList.remove('is-selected');\r\n    });\r\n\r\n    if (activeCarouselItem) {\r\n      activeCarouselItem.classList.add('is-selected');\r\n      activeMediaId = activeCarouselItem.getAttribute('data-media-id') || '';\r\n    }\r\n\r\n    sectionRoot.querySelectorAll('.product-gallery__thumbnail.is-nav-selected').forEach(function(item) {\r\n      item.classList.remove('is-nav-selected');\r\n    });\r\n\r\n    activeThumbnail = activeMediaId\r\n      ? sectionRoot.querySelector('.product-gallery__thumbnail[data-media-id=\"' + activeMediaId + '\"]:not(.is-filtered)')\r\n      : (visibleThumbnails[0] || null);\r\n\r\n    if (activeThumbnail) {\r\n      activeThumbnail.classList.add('is-nav-selected');\r\n    }\r\n\r\n    visibleCount = visibleThumbnails.length || visibleCarouselItems.length;\r\n    gallery.classList.toggle('product-gallery--single-visible-media', visibleCount <= 1);\r\n    gallery.classList.toggle('product-gallery--few-visible-media', visibleCount > 1 && visibleCount <= 2);\r\n    gallery.setAttribute('data-visible-media-count', String(visibleCount));\r\n\r\n    if (activeMediaId) {\r\n      var carousel = sectionRoot.querySelector('.product-gallery__carousel');\r\n\r\n      if (carousel) {\r\n        carousel.setAttribute('data-initial-media-id', activeMediaId);\r\n      }\r\n    }\r\n  }\r\n\r\n  function stripBorrowedSharedDetailMedia(sectionRoot) {\n    if (!sectionRoot || !sectionRoot.querySelectorAll) {\n      return;\n    }\n\n    syncVisibleProductGallery(sectionRoot);\n  }\n\r\n  function normalizeProductJapaneseCopy(sectionRoot) {\r\n    if (!sectionRoot || !sectionRoot.querySelectorAll) {\r\n      return;\r\n    }\r\n\r\n    sectionRoot.querySelectorAll('.product-block-list__item--content .card__title').forEach(function(title, index) {\r\n      if (index >= SUPPORT_TITLES.length) {\r\n        return;\r\n      }\r\n\r\n      title.textContent = SUPPORT_TITLES[index];\r\n    });\r\n\r\n    sectionRoot.querySelectorAll('.product-block-list__item--description .card__title').forEach(function(title) {\n      title.textContent = '\\u5546\\u54c1\\u8a73\\u7d30';\n    });\n\n    sectionRoot.querySelectorAll('.product-block-list__item--reviews .card__title').forEach(function(title) {\n      title.textContent = '\\u30ec\\u30d3\\u30e5\\u30fc';\n    });\n\r\n    sectionRoot.querySelectorAll('#modal-refunds-policy .rte').forEach(function(content) {\r\n      var text = (content.textContent || '').trim();\r\n\r\n      if (!text || MOJIBAKE_PATTERN.test(text)) {\r\n        content.innerHTML = REFUND_MARKUP;\r\n      }\r\n    });\r\n  }\r\n\r\n  function reconcileProductSection(sectionRoot) {\r\n    normalizeProductJapaneseCopy(sectionRoot);\r\n    stripBorrowedSharedDetailMedia(sectionRoot);\r\n  }\r\n\r\n  function reconcileProductSections(root) {\r\n    var scope = root && root.querySelectorAll ? root : document;\r\n\r\n    scope.querySelectorAll(PRODUCT_SECTION_SELECTOR).forEach(function(sectionRoot) {\r\n      reconcileProductSection(sectionRoot);\r\n    });\r\n  }\r\n\r\n  document.addEventListener('theme:loading:end', function(event) {\r\n    window.requestAnimationFrame(function() {\r\n      reconcileProductSections(event.target || document);\r\n    });\r\n  });\r\n\r\n  document.addEventListener('shopify:section:load', function(event) {\r\n    window.requestAnimationFrame(function() {\r\n      reconcileProductSections(event.target || document);\r\n    });\r\n  });\r\n\r\n  document.addEventListener('change', function(event) {\r\n    var optionInput = event.target.closest && event.target.closest('.product-form__single-selector[data-option-position]');\r\n    var sectionRoot = null;\r\n\r\n    if (!optionInput) {\r\n      return;\r\n    }\r\n\r\n    sectionRoot = optionInput.closest(PRODUCT_SECTION_SELECTOR);\r\n\r\n    if (!sectionRoot) {\r\n      return;\r\n    }\r\n\r\n    window.setTimeout(function() {\r\n      reconcileProductSection(sectionRoot);\r\n    }, 32);\r\n  }, true);\r\n\r\n  window.addEventListener('pageshow', function() {\r\n    window.requestAnimationFrame(function() {\r\n      reconcileProductSections(document);\r\n    });\r\n  });\r\n\r\n  if (document.readyState === 'loading') {\r\n    document.addEventListener('DOMContentLoaded', function() {\r\n      reconcileProductSections(document);\r\n    });\r\n  } else {\r\n    reconcileProductSections(document);\r\n  }\r\n})();\r\n\r\n(function() {\n  if (window.__TUOKUS_FINAL_RECOVERY_ACTIVE) {\n    return;\n  }\n\n  var supportTitles = ['\u9288\u70B9\u5046\u9288\u6052\u4F00\u9287\u3083\u4E9C\u9287?, '\u9287\u5A43\u589C\u934F\u30E3\u5022\u93C2\u89C4\u7876', '\u95B0\u5D89\u20AC\u4F75\u5153\u6769\u65BF\u6427\u9287\uE0A0\u4EF1\u9287\u52E9\u4EF8'];\n  var refundMarkup = [\r\n    '<h2>\u95B0\u5D89\u20AC\u4F75\u5153\u6769\u65BF\u6427\u9289\u6FC4\u5136\u9288\u67AB\u5157\u9287\uE0A0\u4EF1\u9287\u52E9\u4EF8</h2>',\r\n    '<p>\u93C3\u30E6\u6E70\u9287\u641E\u4F04\u9287\u5A42\u773E\u9287\u6220\u6D30\u7039\u5908\u4F05 8\u9286?1 \u93C3\u30E3\u4EF9\u9287\u6B0D\u20AC\u509D\u250F\u9287\u693C\u4EB8\u9287\uE21E\u53A4\u95AB\u4F75\u5129\u9289\uE042\u5061\u9289\u7B3A\u4EFA\u6769\u65BF\u6427\u9289\u6FC4\u5136\u9288\u67AB\u5157\u9288\u638B\u4EC8\u7EB0\u9E3F\u735A\u9287\u5FCB\u4EE9\u9287\u66D8\u4E9C\u9286?/p>',\r\n    '<h3>\u6769\u65BF\u6427\u9287\uE0A0\u4EF1\u9287\u52E9\u4EF8</h3>',\r\n    '<p>\u93C8\uE043\u5A07\u9422\u3123\u4EB1\u9287\u3085\u57CC\u942B\u20AC\u5BF0\u5C7B\u4F04\u9429\u6B4C\u73D6\u93C8\u71BC\u6794\u9350\u546B\u4EF9\u9287\u5098\u5022\u9287\u822C\u20AC\u4F7A\u59F8\u93B1\u5B2C\u2491\u747E\u5D83\u4F04\u6D93\u5A3F\u4EF9\u6769\u65BF\u6427\u9289\u8BB3\u6C26\u93BB\u6D96\u5030\u9287\u65C0\uE50D\u9350\u546B\u4E9C\u9287\u71B4\u4ED0\u9287\u4FF1\u4EDA\u9286?/p>',\r\n    '<h3>\u9287\u65C2\u2491\u747E\u5D84\u7C28\u95CB?/h3>',\r\n    '<p>\u746D\u5D07\u7A97\u9287\uE045\u6F6F\u6D60\u8EB2\u5013\u7035\u60E7\u7E59\u93B5\u5B2E\u7222\u9287\uE218\u20AC\u4F75\u5063\u9289\u581B\u5044\u9289\u6FC4\u5136\u9288\u67AB\u5157\u9287\uE0A3\u90E8\u9287\uFF43\u4EF8\u9287\u65C0\uE50D\u9350\u546B\u4E9C\u9287\u71B4\u4ED0\u9287\u4FF1\u4EDA\u9286?/p>'\r\n  ].join('');\r\n  var mojibakePattern = /[\\uFFFD]|[\u95B5\u5825\u59B5\u95C1\u4F34\u5D2F\u93C9\u2545\u59B7\u95B8\u612E\u61CE]/;\r\n\r\n  function normalizeFinalProductJapaneseCopy(root) {\r\n    var scope = root && root.querySelectorAll ? root : document;\r\n\r\n    scope.querySelectorAll('[data-section-type=\"product\"]').forEach(function(sectionRoot) {\r\n      sectionRoot.querySelectorAll('.product-block-list__item--description .card__title').forEach(function(title) {\r\n        title.textContent = '\u935F\u55D7\u6427\u746D\u5D07\u7A97';\r\n      });\r\n\r\n      sectionRoot.querySelectorAll('.product-block-list__item--content .card__title').forEach(function(title, index) {\r\n        if (index < supportTitles.length) {\r\n          title.textContent = supportTitles[index];\r\n        }\r\n      });\r\n\r\n      sectionRoot.querySelectorAll('.product-block-list__item--reviews .card__title').forEach(function(title) {\r\n        title.textContent = '\u9289\uE0FE\u511E\u9289\u30E3\u5157';\r\n      });\r\n\r\n      sectionRoot.querySelectorAll('#modal-refunds-policy .rte').forEach(function(content) {\r\n        var text = (content.textContent || '').trim();\r\n\r\n        if (!text || mojibakePattern.test(text)) {\r\n          content.innerHTML = refundMarkup;\r\n        }\r\n      });\r\n    });\r\n  }\r\n\r\n  document.addEventListener('theme:loading:end', function(event) {\r\n    normalizeFinalProductJapaneseCopy(event.target || document);\r\n  });\r\n\r\n  document.addEventListener('shopify:section:load', function(event) {\r\n    normalizeFinalProductJapaneseCopy(event.target || document);\r\n  });\r\n\r\n  window.addEventListener('pageshow', function() {\r\n    normalizeFinalProductJapaneseCopy(document);\r\n  });\r\n\r\n  if (document.readyState === 'loading') {\r\n    document.addEventListener('DOMContentLoaded', function() {\r\n      normalizeFinalProductJapaneseCopy(document);\r\n    });\r\n  } else {\r\n    normalizeFinalProductJapaneseCopy(document);\r\n  }\r\n})();\r\n\r\n(function() {\n  if (window.__TUOKUS_FINAL_RECOVERY_ACTIVE) {\n    return;\n  }\n\n  var supportTitles = ['\u9288\u70B9\u5046\u9288\u6052\u4F00\u9287\u3083\u4E9C\u9287?, '\u9287\u5A43\u589C\u934F\u30E3\u5022\u93C2\u89C4\u7876', '\u95B0\u5D89\u20AC\u4F75\u5153\u6769\u65BF\u6427\u9287\uE0A0\u4EF1\u9287\u52E9\u4EF8'];\n  var mojibakePattern = /[\\uFFFD]|(?:\u95B5\u565F\u95B5\u577E\u95B5\u588A\u95C2\u4E85\u95C1\u7698\u93C9?/;\r\n  var refundMarkup = [\r\n    '<h2>\u95B0\u5D89\u20AC\u4F75\u5153\u6769\u65BF\u6427\u9289\u6FC4\u5136\u9288\u67AB\u5157\u9287\uE0A0\u4EF1\u9287\u52E9\u4EF8</h2>',\r\n    '<p>\u93C3\u30E6\u6E70\u9287\u641E\u4F04\u9287\u5A42\u773E\u9287\u6220\u6D30\u7039\u5908\u4F05\u95AB\u6C2C\u72368\u9286?1\u93C3\u30E3\u4EF9\u9287\u6B0D\u20AC\u509A\u6E74\u9369\u71B4\u5013\u95B0\u5D89\u20AC\u4F7A\u59F8\u5A09\u4F75\u4F00\u9288\u581B\u501E\u9353\u5D85\u7DE6\u9287\u6B0D\u5020\u936B\u6751\u608E\u9287\u5C7B\u4E97\u9288\u5A3F\u4F28\u9287\u6B0D\u4F04\u9287\u0441\u20AC\u4F75\u4E97\u9288\u5908\u4EB1\u9287\u6A38\u500E\u9287\u65BE\u7C21\u93B5\u88E4\u4EB8\u9287\u72AE\u4ECC\u9287\u52E9\u20AC?/p>',\r\n    '<h3>\u6769\u65BF\u6427\u9287\uE0A0\u4EF1\u9287\u52E9\u4EF8</h3>',\r\n    '<p>\u935F\u55D7\u6427\u9287\uE0A1\u7B09\u934F\u5CF0\u608E\u9288\u52ED\u726C\u93BC\u5D83\u4EB4\u9287\u5098\u4EEF\u9287\u71B7\u726C\u935A\u581B\u4F05\u9286\u4F78\u6662\u935D\u4F78\u57CC\u942B\u20AC\u5BF0\u5C7B\u4EF9\u9287\u5D83\u5020\u9287\u72AE\u4EBC\u93C3\u253F\u4EB8\u9287\u65C8\u20AC\uFF47\u6020\u9287\u5FCB\u4EE9\u9287\u66D8\u4E9C\u9286\u509A\u5534\u7039\u5E7F\u5030\u7EB0\u9E3F\u735A\u9287\uE1BA\u4E9E\u9287\u581B\u20AC\u4F77\u6C26\u93BB\u6D96\u4F28\u9287\u71B4\u4F05\u6769\u65BF\u6427\u9287\uE1BD\u7966\u9288\u5C7B\u5030\u9287\u65C0\uE50D\u9350\u546B\u4E9C\u9287\u71B4\u4ED0\u9287\u4FF1\u4EDA\u9286?/p>',\r\n    '<h3>\u9287\u65C2\u2491\u747E\u5D84\u7C28\u95CB?/h3>',\r\n    '<p>\u9287\u65BE\u5A07\u9422\u3125\u7DE6\u9287\uE1BD\u7754\u9288\u5C7B\u5013\u9287\u5A42\uE179\u9287\u66D8\u4F28\u95AE\u85C9\u608E\u9287\u0441\u4F04\u6769\u65BF\u6427\u93C9\u2032\u6B22\u9287\uE042\u4EFC\u9286\u4F7D\u250F\u7EF1\u822C\u4F05\u9288\u5E7F\u5113\u9288\uE76C\u4F04\u95B0\u5D89\u20AC\u4F75\u5153\u6769\u65BF\u6427\u9289\u6FC4\u5136\u9288\u67AB\u5157\u9288\u638B\u4EC8\u7EB0\u9E3F\u735A\u9287\u5FCB\u4EE9\u9287\u66D8\u4E9C\u9286?/p>'\r\n  ].join('');\r\n\r\n  function normalizeProductSupportCopyFinal(root) {\r\n    var scope = root && root.querySelectorAll ? root : document;\r\n\r\n    scope.querySelectorAll('[data-section-type=\"product\"]').forEach(function(sectionRoot) {\r\n      sectionRoot.querySelectorAll('.product-block-list__item--content .card__title').forEach(function(title, index) {\r\n        if (index >= supportTitles.length) {\r\n          return;\r\n        }\r\n\r\n        title.textContent = supportTitles[index];\r\n      });\r\n\r\n      sectionRoot.querySelectorAll('.product-block-list__item--description .card__title').forEach(function(title) {\r\n        title.textContent = '\u935F\u55D7\u6427\u746D\u5D07\u7A97';\r\n      });\r\n\r\n      sectionRoot.querySelectorAll('.product-block-list__item--reviews .card__title').forEach(function(title) {\r\n        title.textContent = '\u9289\uE0FE\u511E\u9289\u30E3\u5157';\r\n      });\r\n\r\n      sectionRoot.querySelectorAll('#modal-refunds-policy .rte').forEach(function(content) {\r\n        var text = (content.textContent || '').trim();\r\n\r\n        if (!text || mojibakePattern.test(text)) {\r\n          content.innerHTML = refundMarkup;\r\n        }\r\n      });\r\n    });\r\n  }\r\n\r\n  document.addEventListener('theme:loading:end', function(event) {\r\n    normalizeProductSupportCopyFinal(event.target || document);\r\n  });\r\n\r\n  document.addEventListener('shopify:section:load', function(event) {\r\n    normalizeProductSupportCopyFinal(event.target || document);\r\n  });\r\n\r\n  window.addEventListener('pageshow', function() {\r\n    normalizeProductSupportCopyFinal(document);\r\n  });\r\n\r\n  if (document.readyState === 'loading') {\r\n    document.addEventListener('DOMContentLoaded', function() {\r\n      normalizeProductSupportCopyFinal(document);\r\n    });\r\n  } else {\n    normalizeProductSupportCopyFinal(document);\n  }\n})();\n  */\n\n(function() {\n  var tuokusTheme = window.TuokusTheme = window.TuokusTheme || {};\n  var TRACK_SELECTOR = '.color-swatch-list--large, .block-swatch-list, .variant-swatch-list';\r\n\r\n  function syncAttributes(currentElement, nextElement) {\r\n    if (!currentElement || !nextElement) {\r\n      return;\r\n    }\r\n\r\n    Array.from(currentElement.attributes).forEach(function(attribute) {\r\n      if (!nextElement.hasAttribute(attribute.name)) {\r\n        currentElement.removeAttribute(attribute.name);\r\n      }\r\n    });\r\n\r\n    Array.from(nextElement.attributes).forEach(function(attribute) {\r\n      currentElement.setAttribute(attribute.name, attribute.value);\r\n    });\r\n  }\r\n\r\n  function syncTrack(currentTrack, nextTrack) {\r\n    var currentItems = null;\r\n    var nextItems = null;\r\n    var previousScrollLeft = 0;\r\n    var previousDragSuppressUntil = '';\r\n\r\n    if (!currentTrack || !nextTrack) {\r\n      return false;\r\n    }\r\n\r\n    previousScrollLeft = currentTrack.scrollLeft;\r\n    previousDragSuppressUntil = currentTrack.dataset.dragSuppressUntil || '';\r\n    currentItems = Array.from(currentTrack.children);\r\n    nextItems = Array.from(nextTrack.children);\r\n\r\n    if (currentItems.length !== nextItems.length) {\r\n      return false;\r\n    }\r\n\r\n    syncAttributes(currentTrack, nextTrack);\r\n\r\n    currentItems.forEach(function(currentItem, index) {\r\n      var nextItem = nextItems[index];\r\n\r\n      syncAttributes(currentItem, nextItem);\r\n      currentItem.innerHTML = nextItem.innerHTML;\r\n    });\r\n\r\n    if (previousDragSuppressUntil) {\r\n      currentTrack.dataset.dragSuppressUntil = previousDragSuppressUntil;\r\n    }\r\n\r\n    currentTrack.scrollLeft = previousScrollLeft;\r\n\r\n    return true;\r\n  }\r\n\r\n  function syncSelect(currentOption, nextOption) {\r\n    var currentSelect = currentOption.querySelector('select.product-form__single-selector');\r\n    var nextSelect = nextOption.querySelector('select.product-form__single-selector');\r\n\r\n    if (!currentSelect || !nextSelect) {\r\n      return false;\r\n    }\r\n\r\n    currentSelect.innerHTML = nextSelect.innerHTML;\r\n    currentSelect.value = nextSelect.value;\r\n    syncAttributes(currentSelect, nextSelect);\r\n\r\n    return true;\r\n  }\r\n\r\n  function syncOptionRoot(currentOption, nextOption) {\r\n    var currentLabel = currentOption.querySelector('.product-form__option-name');\r\n    var nextLabel = nextOption.querySelector('.product-form__option-name');\r\n    var currentTrack = currentOption.querySelector(TRACK_SELECTOR);\r\n    var nextTrack = nextOption.querySelector(TRACK_SELECTOR);\r\n\r\n    syncAttributes(currentOption, nextOption);\r\n\r\n    if (currentLabel && nextLabel) {\r\n      currentLabel.innerHTML = nextLabel.innerHTML;\r\n      syncAttributes(currentLabel, nextLabel);\r\n    }\r\n\r\n    if (currentTrack || nextTrack) {\r\n      return syncTrack(currentTrack, nextTrack);\r\n    }\r\n\r\n    return syncSelect(currentOption, nextOption);\r\n  }\r\n\r\n  tuokusTheme.preserveVariantSelector = function(currentBlock, nextBlock) {\r\n    var currentPicker = currentBlock ? currentBlock.querySelector('variant-picker') : null;\r\n    var nextPicker = nextBlock ? nextBlock.querySelector('variant-picker') : null;\r\n    var currentOptions = null;\r\n    var nextOptions = null;\r\n    var currentVariantScript = null;\r\n    var nextVariantScript = null;\r\n    var currentVariantInput = null;\r\n    var nextVariantInput = null;\r\n    var synced = true;\r\n\r\n    if (!currentPicker || !nextPicker) {\r\n      return false;\r\n    }\r\n\r\n    currentOptions = Array.from(currentPicker.querySelectorAll('.product-form__option'));\r\n    nextOptions = Array.from(nextPicker.querySelectorAll('.product-form__option'));\r\n\r\n    if (currentOptions.length !== nextOptions.length) {\r\n      return false;\r\n    }\r\n\r\n    currentOptions.forEach(function(currentOption, index) {\r\n      if (!synced) {\r\n        return;\r\n      }\r\n\r\n      synced = syncOptionRoot(currentOption, nextOptions[index]);\r\n    });\r\n\r\n    if (!synced) {\r\n      return false;\r\n    }\r\n\r\n    currentVariantScript = currentPicker.querySelector('script[data-variant]');\r\n    nextVariantScript = nextPicker.querySelector('script[data-variant]');\r\n\r\n    if (currentVariantScript && nextVariantScript) {\r\n      currentVariantScript.textContent = nextVariantScript.textContent;\r\n    }\r\n\r\n    currentVariantInput = currentPicker.querySelector('input[name=\"id\"]');\r\n    nextVariantInput = nextPicker.querySelector('input[name=\"id\"]');\r\n\r\n    if (currentVariantInput && nextVariantInput) {\r\n      currentVariantInput.value = nextVariantInput.value;\r\n      syncAttributes(currentVariantInput, nextVariantInput);\r\n    }\r\n\r\n    syncAttributes(currentPicker, nextPicker);\r\n    nextPicker.replaceWith(currentPicker);\r\n\r\n    return true;\r\n  };\r\n})();\r\n\r\n(function() {\n  if (window.__TUOKUS_FINAL_RECOVERY_ACTIVE) {\n    return;\n  }\n\n  function fallbackCopyText(text) {\n    return new Promise(function(resolve, reject) {\n      var textarea = document.createElement('textarea');\n\n      textarea.value = text;\n      textarea.setAttribute('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\n      try {\n        textarea.focus({ preventScroll: true });\n      } catch (error) {\n        textarea.focus();\n      }\n\n      textarea.select();\n      textarea.setSelectionRange(0, textarea.value.length);\n\n      try {\n        if (document.execCommand('copy')) {\n          resolve();\n        } else {\n          reject(new Error('copy failed'));\n        }\n      } catch (error) {\n        reject(error);\n      } finally {\n        document.body.removeChild(textarea);\n      }\n    });\n  }\n\n  function copyText(text) {\n    var value = String(text || '');\n\n    if (!value) {\n      return Promise.reject(new Error('empty text'));\n    }\n\n    if (navigator.clipboard && typeof navigator.clipboard.writeText === 'function') {\n      return navigator.clipboard.writeText(value).catch(function() {\n        return fallbackCopyText(value);\n      });\n    }\n\n    return fallbackCopyText(value);\n  }\n\r\n  function updateCouponButtonState(button, copied) {\r\n    var label = button.querySelector('.product-form__coupon-copy-label');\r\n    var defaultLabel = button.getAttribute('data-default-label') || 'Copy';\r\n    var copiedLabel = button.getAttribute('data-copied-label') || 'Copied';\r\n\r\n    if (!label) {\r\n      return;\r\n    }\r\n\r\n    button.classList.toggle('is-copied', copied);\r\n    label.textContent = copied ? copiedLabel : defaultLabel;\r\n  }\r\n\r\n  document.addEventListener('click', function(event) {\r\n    var button = event.target.closest('[data-copy-coupon]');\r\n    var couponCode = '';\r\n\r\n    if (!button) {\r\n      return;\r\n    }\r\n\r\n    couponCode = button.getAttribute('data-copy-value') || '';\r\n\r\n    if (!couponCode) {\r\n      return;\r\n    }\r\n\r\n    event.preventDefault();\r\n\r\n    copyText(couponCode).then(function() {\r\n      updateCouponButtonState(button, true);\r\n      window.setTimeout(function() {\r\n        updateCouponButtonState(button, false);\r\n      }, 1800);\r\n    }).catch(function() {\r\n      updateCouponButtonState(button, false);\r\n    });\r\n  });\r\n})();\r\n\r\n(function() {\r\n  var html = document.documentElement;\r\n  var refreshTimer = null;\r\n  var observer = null;\r\n  var GROUP_SELECTOR = '.product-list, .product-list--scrollable, .collection-list, .activity-collection-grid, .activity-service-grid, .footer__block-list, .error-page__recovery-links, .product-gallery__thumbnail-list';\r\n  var MOTION_DEFINITIONS = [\r\n    {\r\n      selector: '.shopify-section .section__header, .shopify-section .page__header, .shopify-section .collection__hero, .shopify-section .activity-hero__content, .shopify-section .error-page__hero, .shopify-section .error-page__search, .shopify-section .product-meta, .shopify-section .product-form__info-list, .shopify-section .product-service-guarantees',\r\n      variant: 'hero'\r\n    },\r\n    {\r\n      selector: '.shopify-section .product-gallery-card--sticky, .shopify-section .activity-lifestyle, .shopify-section .error-page__recovery, .shopify-section .footer__aside',\r\n      variant: 'soft'\r\n    },\r\n    {\r\n      selector: '.shopify-section .product-item, .shopify-section .collection-item, .shopify-section .activity-collection-card, .shopify-section .activity-service-card, .shopify-section .footer__block-item, .shopify-section .error-page__recovery-link, .shopify-section .product-gallery__thumbnail',\r\n      variant: 'card'\r\n    }\r\n  ];\r\n  var reducedMotionQuery = window.matchMedia ? window.matchMedia('(prefers-reduced-motion: reduce)') : null;\r\n\r\n  function isReducedMotion() {\r\n    return Boolean(reducedMotionQuery && reducedMotionQuery.matches);\r\n  }\r\n\r\n  function syncReducedMotionState() {\r\n    var isReduced = isReducedMotion();\r\n\r\n    html.classList.toggle('motion-system-reduce', isReduced);\r\n\r\n    if (isReduced && observer) {\r\n      observer.disconnect();\r\n      observer = null;\r\n    }\r\n\r\n    if (isReduced) {\r\n      document.querySelectorAll('.motion-enter').forEach(function(element) {\r\n        element.classList.add('is-in-view');\r\n      });\r\n    }\r\n  }\r\n\r\n  function ensureObserver() {\r\n    if (observer || isReducedMotion() || !('IntersectionObserver' in window)) {\r\n      return observer;\r\n    }\r\n\r\n    observer = new IntersectionObserver(function(entries) {\r\n      entries.forEach(function(entry) {\r\n        if (!entry.isIntersecting) {\r\n          return;\r\n        }\r\n\r\n        entry.target.classList.add('is-in-view');\r\n        observer.unobserve(entry.target);\r\n      });\r\n    }, {\r\n      rootMargin: '0px 0px -12% 0px',\r\n      threshold: 0.12\r\n    });\r\n\r\n    return observer;\r\n  }\r\n\r\n  function isInitiallyVisible(element) {\r\n    var rect = element.getBoundingClientRect();\r\n\r\n    return rect.bottom > 0 && rect.top < window.innerHeight * 0.92 && rect.right > 0 && rect.left < window.innerWidth;\r\n  }\r\n\r\n  function bindMotionElement(element, variant, groupCounts) {\r\n    if (!element || element.dataset.motionBound === 'true') {\r\n      return;\r\n    }\r\n\r\n    element.dataset.motionBound = 'true';\r\n    element.classList.add('motion-enter', 'motion-enter--' + variant);\r\n\r\n    var motionGroup = element.closest(GROUP_SELECTOR);\r\n    var groupIndex = 0;\r\n\r\n    if (motionGroup) {\r\n      groupIndex = groupCounts.get(motionGroup) || 0;\r\n      groupCounts.set(motionGroup, groupIndex + 1);\r\n      element.style.setProperty('--motion-delay', Math.min(groupIndex * 56, 224) + 'ms');\r\n    } else if (variant === 'hero') {\r\n      element.style.setProperty('--motion-delay', '20ms');\r\n    } else {\r\n      element.style.setProperty('--motion-delay', '0ms');\r\n    }\r\n\r\n    if (isReducedMotion() || isInitiallyVisible(element)) {\r\n      element.classList.add('is-in-view');\r\n      return;\r\n    }\r\n\r\n    var motionObserver = ensureObserver();\r\n\r\n    if (motionObserver) {\r\n      motionObserver.observe(element);\r\n    } else {\r\n      element.classList.add('is-in-view');\r\n    }\r\n  }\r\n\r\n  function scanMotionTargets(root) {\r\n    if (!root || !root.querySelectorAll) {\r\n      return;\r\n    }\r\n\r\n    var groupCounts = new WeakMap();\r\n\r\n    MOTION_DEFINITIONS.forEach(function(definition) {\r\n      root.querySelectorAll(definition.selector).forEach(function(element) {\r\n        bindMotionElement(element, definition.variant, groupCounts);\r\n      });\r\n    });\r\n  }\r\n\r\n  function scheduleMotionRefresh(root) {\r\n    window.clearTimeout(refreshTimer);\r\n\r\n    refreshTimer = window.setTimeout(function() {\r\n      syncReducedMotionState();\r\n      scanMotionTargets(root && root.querySelectorAll ? root : document);\r\n      html.classList.add('motion-system-enabled');\r\n    }, 34);\r\n  }\r\n\r\n  function initMotionSystem() {\r\n    syncReducedMotionState();\r\n    scanMotionTargets(document);\r\n\r\n    window.requestAnimationFrame(function() {\r\n      html.classList.add('motion-system-enabled');\r\n    });\r\n  }\r\n\r\n  if (reducedMotionQuery) {\r\n    if (typeof reducedMotionQuery.addEventListener === 'function') {\r\n      reducedMotionQuery.addEventListener('change', function() {\r\n        scheduleMotionRefresh(document);\r\n      });\r\n    } else if (typeof reducedMotionQuery.addListener === 'function') {\r\n      reducedMotionQuery.addListener(function() {\r\n        scheduleMotionRefresh(document);\r\n      });\r\n    }\r\n  }\r\n\r\n  document.addEventListener('theme:loading:end', function() {\r\n    scheduleMotionRefresh(document);\r\n  });\r\n\r\n  document.addEventListener('shopify:section:load', function(event) {\r\n    scheduleMotionRefresh(event.target || document);\r\n  });\r\n\r\n  window.addEventListener('pageshow', function() {\r\n    scheduleMotionRefresh(document);\r\n  });\r\n\r\n  if (document.readyState === 'loading') {\r\n    document.addEventListener('DOMContentLoaded', initMotionSystem);\r\n  } else {\r\n    initMotionSystem();\r\n  }\r\n})();\r\n\r\n(function() {\r\n  var mobileProductQuery = window.matchMedia ? window.matchMedia('(max-width: 999px)') : null;\r\n  var scheduledFrame = null;\r\n\r\n  function isMobileViewport() {\r\n    return mobileProductQuery ? mobileProductQuery.matches : window.innerWidth <= 999;\r\n  }\r\n\r\n  function shouldSuppressStickyPurchase() {\r\n    return Boolean(\r\n      document.querySelector('.header__search-bar-wrapper.is-fixed') ||\r\n      document.querySelector('.mini-cart[aria-hidden=\"false\"]') ||\r\n      document.querySelector('.drawer[aria-hidden=\"false\"]')\r\n    );\r\n  }\r\n\r\n  function ensurePurchaseSentinel(wrapper, paymentContainer) {\r\n    if (!wrapper || !paymentContainer) {\r\n      return null;\r\n    }\r\n\r\n    var sentinel = wrapper.querySelector('.product-form__mobile-purchase-sentinel');\r\n\r\n    if (sentinel) {\r\n      return sentinel;\r\n    }\r\n\r\n    sentinel = document.createElement('span');\r\n    sentinel.className = 'product-form__mobile-purchase-sentinel';\r\n    sentinel.setAttribute('aria-hidden', 'true');\r\n    paymentContainer.parentNode.insertBefore(sentinel, paymentContainer);\r\n\r\n    return sentinel;\r\n  }\r\n\r\n  function clearStickyPurchase(wrapper, paymentContainer) {\r\n    if (!wrapper || !paymentContainer) {\r\n      return;\r\n    }\r\n\r\n    wrapper.classList.remove('has-mobile-sticky-spacer');\r\n    wrapper.style.removeProperty('--mobile-payment-height');\r\n    paymentContainer.classList.remove('is-mobile-sticky');\r\n  }\r\n\r\n  function updateStickyPurchase(section) {\n    if (!section || !section.querySelector) {\n      return;\n    }\n\n    var wrapper = section.querySelector('.product-form__buy-buttons');\n    var paymentContainer = wrapper ? wrapper.querySelector('.product-form__payment-container') : null;\n\n    clearStickyPurchase(wrapper, paymentContainer);\n    return;\n\n    var sentinel = ensurePurchaseSentinel(wrapper, paymentContainer);\n\n    if (!wrapper || !paymentContainer || !sentinel || !isMobileViewport() || shouldSuppressStickyPurchase()) {\n      clearStickyPurchase(wrapper, paymentContainer);\n      return;\r\n    }\r\n\r\n    var headerHeight = Math.ceil(document.querySelector('.header') ? document.querySelector('.header').getBoundingClientRect().height : 0);\r\n    var sentinelRect = sentinel.getBoundingClientRect();\r\n    var shouldStick = sentinelRect.bottom <= headerHeight + 10 && window.scrollY > headerHeight;\r\n\r\n    if (!shouldStick) {\r\n      clearStickyPurchase(wrapper, paymentContainer);\r\n      return;\r\n    }\r\n\r\n    paymentContainer.classList.add('is-mobile-sticky');\r\n    wrapper.classList.add('has-mobile-sticky-spacer');\r\n\r\n    window.requestAnimationFrame(function() {\r\n      wrapper.style.setProperty('--mobile-payment-height', Math.ceil(paymentContainer.getBoundingClientRect().height) + 'px');\r\n    });\r\n  }\r\n\r\n  function refreshStickyPurchase() {\r\n    document.querySelectorAll('[data-section-type=\"product\"]').forEach(updateStickyPurchase);\r\n  }\r\n\r\n  function scheduleStickyPurchaseRefresh() {\r\n    if (scheduledFrame) {\r\n      window.cancelAnimationFrame(scheduledFrame);\r\n    }\r\n\r\n    scheduledFrame = window.requestAnimationFrame(function() {\r\n      scheduledFrame = null;\r\n      refreshStickyPurchase();\r\n    });\r\n  }\r\n\r\n  if (mobileProductQuery) {\r\n    if (typeof mobileProductQuery.addEventListener === 'function') {\r\n      mobileProductQuery.addEventListener('change', scheduleStickyPurchaseRefresh);\r\n    } else if (typeof mobileProductQuery.addListener === 'function') {\r\n      mobileProductQuery.addListener(scheduleStickyPurchaseRefresh);\r\n    }\r\n  }\r\n\r\n  document.addEventListener('variant:changed', scheduleStickyPurchaseRefresh);\r\n  document.addEventListener('theme:loading:end', scheduleStickyPurchaseRefresh);\r\n  document.addEventListener('shopify:section:load', scheduleStickyPurchaseRefresh);\r\n  window.addEventListener('pageshow', scheduleStickyPurchaseRefresh);\r\n  window.addEventListener('resize', scheduleStickyPurchaseRefresh);\r\n  window.addEventListener('scroll', scheduleStickyPurchaseRefresh, { passive: true });\r\n\r\n  if (document.readyState === 'loading') {\r\n    document.addEventListener('DOMContentLoaded', scheduleStickyPurchaseRefresh);\r\n  } else {\r\n    scheduleStickyPurchaseRefresh();\r\n  }\r\n})();\r\n\r\n(function() {\r\n  var availabilityCache = Object.create(null);\r\n  var pendingAvailabilityRequests = Object.create(null);\r\n  var refreshTimer = null;\r\n  var observer = null;\r\n  var ITEM_SELECTOR = [\r\n    '.activity-recommended-products-section .product-item',\r\n    '[data-section-type=\"featured-collection\"] .product-item',\r\n    '.product-recommendations .product-item',\r\n    '.search-bar__result-products .search-bar__result-item'\r\n  ].join(', ');\r\n  var SURFACE_SELECTOR = [\r\n    '.activity-recommended-products-section',\r\n    '[data-section-type=\"featured-collection\"]',\r\n    '[data-section-type=\"product-recommendations\"]',\r\n    '.search-bar__result-products'\r\n  ].join(', ');\r\n\r\n  function extractProductHandle(url) {\r\n    var pathname = url || '';\r\n    var matches = null;\r\n\r\n    if (!pathname) {\r\n      return null;\r\n    }\r\n\r\n    try {\r\n      pathname = new URL(pathname, window.location.origin).pathname;\r\n    } catch (error) {\r\n      pathname = pathname.split('?')[0];\r\n    }\r\n\r\n    matches = pathname.match(/\\/products\\/([^/?#]+)/);\r\n\r\n    return matches ? matches[1] : null;\r\n  }\r\n\r\n  function getAvailabilityUrl(handle) {\r\n    return '/products/' + handle + '.js';\r\n  }\r\n\r\n  function fetchProductAvailability(handle) {\r\n    if (!handle) {\r\n      return Promise.resolve(true);\r\n    }\r\n\r\n    if (Object.prototype.hasOwnProperty.call(availabilityCache, handle)) {\r\n      return Promise.resolve(availabilityCache[handle]);\r\n    }\r\n\r\n    if (pendingAvailabilityRequests[handle]) {\r\n      return pendingAvailabilityRequests[handle];\r\n    }\r\n\r\n    pendingAvailabilityRequests[handle] = window.fetch(getAvailabilityUrl(handle), {\r\n      credentials: 'same-origin'\r\n    }).then(function(response) {\r\n      if (!response.ok) {\r\n        throw new Error('Failed to load product availability for ' + handle);\r\n      }\r\n\r\n      return response.json();\r\n    }).then(function(productData) {\r\n      availabilityCache[handle] = Boolean(productData && productData.available);\r\n\r\n      return availabilityCache[handle];\r\n    }).catch(function() {\r\n      availabilityCache[handle] = true;\r\n\r\n      return true;\r\n    }).finally(function() {\r\n      delete pendingAvailabilityRequests[handle];\r\n    });\r\n\r\n    return pendingAvailabilityRequests[handle];\r\n  }\r\n\r\n  function getItemLink(item) {\r\n    if (!item) {\r\n      return null;\r\n    }\r\n\r\n    if (item.matches('.search-bar__result-item')) {\r\n      return item;\r\n    }\r\n\r\n    return item.querySelector('a[href*=\"/products/\"]');\r\n  }\r\n\r\n  function getAvailabilityHint(item) {\r\n    var link = getItemLink(item);\r\n    var selectedVariantAvailability = null;\r\n\r\n    if (!link || !link.getAttribute) {\r\n      return null;\r\n    }\r\n\r\n    selectedVariantAvailability = link.getAttribute('data-selected-variant-available');\r\n\r\n    if (selectedVariantAvailability === 'true') {\r\n      return true;\r\n    }\r\n\r\n    if (selectedVariantAvailability === 'false') {\r\n      return false;\r\n    }\r\n\r\n    return null;\r\n  }\r\n\r\n  function getCleanupSurface(item) {\r\n    if (!item || !item.closest) {\r\n      return null;\r\n    }\r\n\r\n    return item.closest(SURFACE_SELECTOR);\r\n  }\r\n\r\n  function cleanupSearchResultSurface(surface) {\r\n    if (!surface || !surface.matches('.search-bar__result-products')) {\r\n      return;\r\n    }\r\n\r\n    if (surface.querySelector('.search-bar__result-item')) {\r\n      return;\r\n    }\r\n\r\n    if (surface.previousElementSibling && surface.previousElementSibling.classList.contains('search-bar__result-category')) {\r\n      surface.previousElementSibling.remove();\r\n    }\r\n\r\n    surface.remove();\r\n  }\r\n\r\n  function cleanupProductSurface(surface) {\r\n    if (!surface || surface.matches('.search-bar__result-products')) {\r\n      cleanupSearchResultSurface(surface);\r\n      return;\r\n    }\r\n\r\n    if (surface.querySelector('.product-item')) {\r\n      return;\r\n    }\r\n\r\n    surface.style.display = 'none';\r\n  }\r\n\r\n  function cleanupSurface(surface) {\r\n    if (!surface) {\r\n      return;\r\n    }\r\n\r\n    if (surface.matches('.search-bar__result-products')) {\r\n      cleanupSearchResultSurface(surface);\r\n      return;\r\n    }\r\n\r\n    cleanupProductSurface(surface);\r\n  }\r\n\r\n  function auditSellableMerchandising(root) {\r\n    var scope = root && root.querySelectorAll ? root : document;\r\n    var items = Array.from(scope.querySelectorAll(ITEM_SELECTOR)).filter(function(item) {\r\n      return item.dataset.sellableAudit !== 'done';\r\n    });\r\n\r\n    if (!items.length) {\r\n      return;\r\n    }\r\n\r\n    items.forEach(function(item) {\r\n      item.dataset.sellableAudit = 'done';\r\n    });\r\n\r\n    Promise.allSettled(items.map(function(item) {\r\n      var link = getItemLink(item);\r\n      var handle = extractProductHandle(link ? link.getAttribute('href') : '');\r\n      var availabilityHint = getAvailabilityHint(item);\r\n\r\n      if (availabilityHint === false) {\r\n        var hintedSurface = getCleanupSurface(item);\r\n        item.remove();\r\n        cleanupSurface(hintedSurface);\r\n\r\n        return Promise.resolve();\r\n      }\r\n\r\n      if (availabilityHint === true || !handle) {\r\n        return Promise.resolve();\r\n      }\r\n\r\n      return fetchProductAvailability(handle).then(function(isAvailable) {\r\n        var surface = null;\r\n\r\n        if (isAvailable || !item.isConnected) {\r\n          return;\r\n        }\r\n\r\n        surface = getCleanupSurface(item);\r\n        item.remove();\r\n        cleanupSurface(surface);\r\n      });\r\n    })).then(function() {\r\n      document.querySelectorAll(SURFACE_SELECTOR).forEach(cleanupSurface);\r\n    });\r\n  }\r\n\r\n  function scheduleSellableAudit(root) {\r\n    window.clearTimeout(refreshTimer);\r\n\r\n    refreshTimer = window.setTimeout(function() {\r\n      auditSellableMerchandising(root);\r\n    }, 80);\r\n  }\r\n\r\n  function initSellableAuditObserver() {\r\n    if (observer || !document.body || !window.MutationObserver) {\r\n      return;\r\n    }\r\n\r\n    observer = new MutationObserver(function(mutations) {\r\n      mutations.forEach(function(mutation) {\r\n        Array.from(mutation.addedNodes).forEach(function(node) {\r\n          if (!node || node.nodeType !== 1) {\r\n            return;\r\n          }\r\n\r\n          if ((node.matches && (node.matches(ITEM_SELECTOR) || node.matches(SURFACE_SELECTOR))) || (node.querySelector && node.querySelector(ITEM_SELECTOR))) {\r\n            scheduleSellableAudit(node);\r\n          }\r\n        });\r\n      });\r\n    });\r\n\r\n    observer.observe(document.body, {\r\n      childList: true,\r\n      subtree: true\r\n    });\r\n  }\r\n\r\n  document.addEventListener('theme:loading:end', function() {\r\n    scheduleSellableAudit(document);\r\n  });\r\n\r\n  document.addEventListener('shopify:section:load', function(event) {\r\n    scheduleSellableAudit(event.target || document);\r\n  });\r\n\r\n  window.addEventListener('pageshow', function() {\r\n    scheduleSellableAudit(document);\r\n  });\r\n\r\n  if (document.readyState === 'loading') {\r\n    document.addEventListener('DOMContentLoaded', function() {\r\n      initSellableAuditObserver();\r\n      scheduleSellableAudit(document);\r\n    });\r\n  } else {\r\n    initSellableAuditObserver();\r\n    scheduleSellableAudit(document);\r\n  }\r\n})();\r\n\r\n(function() {\n  if (window.__TUOKUS_FINAL_RECOVERY_ACTIVE) {\n    return;\n  }\n\n  var PRODUCT_SECTION_SELECTOR = '[data-section-type=\"product\"]';\n  var SUPPORT_TITLES = ['\\u30b5\\u30a4\\u30ba\\u306b\\u3064\\u3044\\u3066', '\\u304a\\u624b\\u5165\\u308c\\u65b9\\u6cd5', '\\u914d\\u9001\\u30fb\\u8fd4\\u54c1\\u306b\\u3064\\u3044\\u3066'];\n  var REFUND_MARKUP = [\r\n    '<h2>\\u914d\\u9001\\u30fb\\u8fd4\\u54c1\\u30dd\\u30ea\\u30b7\\u30fc\\u306b\\u3064\\u3044\\u3066</h2>',\r\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>',\r\n    '<h3>\\u8fd4\\u54c1\\u306b\\u3064\\u3044\\u3066</h3>',\r\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>',\r\n    '<h3>\\u3054\\u78ba\\u8a8d\\u4e8b\\u9805</h3>',\r\n    '<p>\\u3054\\u4f7f\\u7528\\u5f8c\\u306e\\u6c5a\\u308c\\u3084\\u304a\\u5ba2\\u69d8\\u90fd\\u5408\\u3067\\u306e\\u8fd4\\u54c1\\u6761\\u4ef6\\u306a\\u3069\\u3001\\u8a73\\u3057\\u304f\\u306f\\u30b9\\u30c8\\u30a2\\u306e\\u914d\\u9001\\u30fb\\u8fd4\\u54c1\\u30dd\\u30ea\\u30b7\\u30fc\\u3092\\u3054\\u78ba\\u8a8d\\u304f\\u3060\\u3055\\u3044\\u3002</p>'\r\n  ].join('');\r\n  var MOJIBAKE_PATTERN = /\u95B8\u71B7\u68D7\u93BC\uE742\u95B5\u5918\u5159\u934E\u7028\u95C1\u677F\u79F9|\u93C9\u2542\u67E8\u93BC\uE742\u95B5\u5822\u5063\u934B\u5521[\\uFFFD]/;\r\n  function syncVisibleGallery(sectionRoot) {\r\n    var gallery = sectionRoot && sectionRoot.querySelector ? sectionRoot.querySelector('.product-gallery') : null;\r\n    var visibleCarouselItems = [];\r\n    var visibleThumbnails = [];\r\n    var activeCarouselItem = null;\r\n    var activeThumbnail = null;\r\n    var activeMediaId = '';\r\n    var visibleCount = 0;\r\n    var carousel = null;\r\n\r\n    if (!gallery) {\r\n      return;\r\n    }\r\n\r\n    visibleCarouselItems = Array.prototype.slice.call(\r\n      sectionRoot.querySelectorAll('.product-gallery__carousel-item:not(.is-filtered)')\r\n    );\r\n    visibleThumbnails = Array.prototype.slice.call(\r\n      sectionRoot.querySelectorAll('.product-gallery__thumbnail:not(.is-filtered)')\r\n    );\r\n    activeCarouselItem =\r\n      sectionRoot.querySelector('.product-gallery__carousel-item.is-selected:not(.is-filtered)') ||\r\n      visibleCarouselItems[0] ||\r\n      null;\r\n\r\n    sectionRoot.querySelectorAll('.product-gallery__carousel-item.is-selected').forEach(function(item) {\r\n      item.classList.remove('is-selected');\r\n    });\r\n\r\n    if (activeCarouselItem) {\r\n      activeCarouselItem.classList.add('is-selected');\r\n      activeMediaId = activeCarouselItem.getAttribute('data-media-id') || '';\r\n    }\r\n\r\n    sectionRoot.querySelectorAll('.product-gallery__thumbnail.is-nav-selected').forEach(function(item) {\r\n      item.classList.remove('is-nav-selected');\r\n    });\r\n\r\n    activeThumbnail = activeMediaId\r\n      ? sectionRoot.querySelector('.product-gallery__thumbnail[data-media-id=\"' + activeMediaId + '\"]:not(.is-filtered)')\r\n      : (visibleThumbnails[0] || null);\r\n\r\n    if (activeThumbnail) {\r\n      activeThumbnail.classList.add('is-nav-selected');\r\n    }\r\n\r\n    visibleCount = visibleThumbnails.length || visibleCarouselItems.length;\r\n    gallery.classList.toggle('product-gallery--single-visible-media', visibleCount <= 1);\r\n    gallery.classList.toggle('product-gallery--few-visible-media', visibleCount > 1 && visibleCount <= 2);\r\n    gallery.setAttribute('data-visible-media-count', String(visibleCount));\r\n\r\n    if (activeMediaId) {\r\n      carousel = sectionRoot.querySelector('.product-gallery__carousel');\r\n\r\n      if (carousel) {\r\n        carousel.setAttribute('data-initial-media-id', activeMediaId);\r\n      }\r\n    }\r\n  }\r\n\r\n  function reconcileSection(sectionRoot) {\r\n    if (!sectionRoot || !sectionRoot.querySelectorAll) {\r\n      return;\r\n    }\r\n\r\n    sectionRoot.querySelectorAll('.product-block-list__item--content .card__title').forEach(function(title, index) {\r\n      if (index < SUPPORT_TITLES.length) {\r\n        title.textContent = SUPPORT_TITLES[index];\r\n      }\r\n    });\r\n\r\n    sectionRoot.querySelectorAll('.product-block-list__item--description .card__title').forEach(function(title) {\r\n      title.textContent = '\\u5546\\u54c1\\u8a73\\u7d30';\r\n    });\r\n\r\n    sectionRoot.querySelectorAll('.product-block-list__item--reviews .card__title').forEach(function(title) {\r\n      title.textContent = '\\u30ec\\u30d3\\u30e5\\u30fc';\r\n    });\r\n\r\n    sectionRoot.querySelectorAll('#modal-refunds-policy .rte').forEach(function(content) {\r\n      var text = (content.textContent || '').trim();\r\n\r\n      if (!text || MOJIBAKE_PATTERN.test(text)) {\r\n        content.innerHTML = REFUND_MARKUP;\r\n      }\r\n    });\r\n\r\n    syncVisibleGallery(sectionRoot);\n  }\n\r\n  function reconcileAll(root) {\r\n    var scope = root && root.querySelectorAll ? root : document;\r\n\r\n    scope.querySelectorAll(PRODUCT_SECTION_SELECTOR).forEach(function(sectionRoot) {\r\n      reconcileSection(sectionRoot);\r\n    });\r\n  }\r\n\r\n  document.addEventListener('theme:loading:end', function(event) {\r\n    window.requestAnimationFrame(function() {\r\n      reconcileAll(event.target || document);\r\n    });\r\n  });\r\n\r\n  document.addEventListener('shopify:section:load', function(event) {\r\n    window.requestAnimationFrame(function() {\r\n      reconcileAll(event.target || document);\r\n    });\r\n  });\r\n\r\n  document.addEventListener('change', function(event) {\r\n    var optionInput = event.target.closest && event.target.closest('.product-form__single-selector[data-option-position]');\r\n    var sectionRoot = optionInput ? optionInput.closest(PRODUCT_SECTION_SELECTOR) : null;\r\n\r\n    if (!sectionRoot) {\r\n      return;\r\n    }\r\n\r\n    window.setTimeout(function() {\r\n      reconcileSection(sectionRoot);\r\n    }, 48);\r\n  }, true);\r\n\r\n  window.addEventListener('pageshow', function() {\r\n    window.requestAnimationFrame(function() {\r\n      reconcileAll(document);\r\n    });\r\n  });\r\n\r\n  if (document.readyState === 'loading') {\r\n    document.addEventListener('DOMContentLoaded', function() {\r\n      reconcileAll(document);\r\n    });\r\n  } else {\n    reconcileAll(document);\n  }\n})();\n\n(function() {\n  if (window.__TUOKUS_FINAL_RECOVERY_ACTIVE) {\n    return;\n  }\n\n  var PRODUCT_SECTION_SELECTOR = '[data-section-type=\"product\"]';\n  var COPY_BUTTON_SELECTOR = '[data-copy-coupon], [data-coupon-copy-button]';\n\n  function toArray(nodes) {\n    return Array.prototype.slice.call(nodes || []);\n  }\n\n  function legacyCopyText(value) {\n    return new Promise(function(resolve, reject) {\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.top = '-9999px';\n      textarea.style.left = '-9999px';\n      textarea.style.opacity = '0';\n\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\n      if (copied) {\n        resolve();\n      } else {\n        reject(new Error('copy failed'));\n      }\n    });\n  }\n\n  function writeCouponText(value) {\n    var text = String(value || '').trim();\n\n    if (!text) {\n      return Promise.reject(new Error('empty coupon'));\n    }\n\n    if (navigator.clipboard && typeof navigator.clipboard.writeText === 'function' && window.isSecureContext) {\n      return navigator.clipboard.writeText(text).catch(function() {\n        return legacyCopyText(text);\n      });\n    }\n\n    return legacyCopyText(text);\n  }\n\n  function updateCouponButtonLabel(button, copied) {\n    var label = button.querySelector('.product-form__coupon-copy-label');\n    var defaultLabel = button.getAttribute('data-default-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\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 = null;\n    var codeNode = null;\n\n    if (!button) {\n      return '';\n    }\n\n    root = button.closest('[data-coupon-copy-root], .product-form__pricing-panel, .product-coupon-box');\n    codeNode = root ? root.querySelector('[data-coupon-code], .product-form__coupon-code, .product-coupon-box__code') : null;\n\n    return (\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      ''\n    ).trim();\n  }\n\n  function handleCouponCopy(event) {\n    var button = event.target && event.target.closest ? event.target.closest(COPY_BUTTON_SELECTOR) : null;\n    var couponCode = '';\n\n    if (!button) {\n      return;\n    }\n\n    couponCode = extractCouponCode(button);\n\n    if (!couponCode) {\n      return;\n    }\n\n    event.preventDefault();\n    event.stopPropagation();\n\n    if (typeof event.stopImmediatePropagation === 'function') {\n      event.stopImmediatePropagation();\n    }\n\n    writeCouponText(couponCode).then(function() {\n      updateCouponButtonLabel(button, true);\n\n      window.setTimeout(function() {\n        updateCouponButtonLabel(button, false);\n      }, 1800);\n    }).catch(function() {\n      updateCouponButtonLabel(button, false);\n    });\n  }\n\n  function getVisibleCarouselItems(sectionRoot) {\n    return toArray(sectionRoot.querySelectorAll('.product-gallery__carousel-item')).filter(function(item) {\n      return !item.classList.contains('is-filtered');\n    });\n  }\n\n  function getVisibleThumbnails(sectionRoot) {\n    return toArray(sectionRoot.querySelectorAll('.product-gallery__thumbnail')).filter(function(item) {\n      return !item.classList.contains('is-filtered');\n    });\n  }\n\n  function revealSharedDetailItems(sectionRoot) {\n    toArray(sectionRoot.querySelectorAll('.product-gallery__carousel-item[data-tuokus-shared-detail=\"true\"]')).forEach(function(item) {\n      item.classList.remove('is-filtered');\n      item.removeAttribute('aria-hidden');\n    });\n\n    toArray(sectionRoot.querySelectorAll('.product-gallery__thumbnail[data-tuokus-shared-detail=\"true\"]')).forEach(function(item) {\n      item.classList.remove('is-filtered');\n      item.removeAttribute('aria-hidden');\n    });\n  }\n\n  function unfilterMatchingThumbnail(sectionRoot, mediaId) {\n    var thumbnail = null;\n\n    if (!mediaId) {\n      return;\n    }\n\n    thumbnail = sectionRoot.querySelector('.product-gallery__thumbnail[data-media-id=\"' + mediaId + '\"]');\n\n    if (thumbnail) {\n      thumbnail.classList.remove('is-filtered');\n      thumbnail.removeAttribute('aria-hidden');\n    }\n  }\n\n  function ensureGalleryContinuity(sectionRoot) {\n    var gallery = null;\n    var carousel = null;\n    var carouselItems = [];\n    var thumbnails = [];\n    var visibleCarouselItems = [];\n    var visibleThumbnails = [];\n    var activeCarouselItem = null;\n    var activeThumbnail = null;\n    var activeMediaId = '';\n    var visibleCount = 0;\n\n    if (!sectionRoot || !sectionRoot.querySelectorAll) {\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\n    if (!gallery || !carouselItems.length) {\n      return;\n    }\n\n    visibleCarouselItems = getVisibleCarouselItems(sectionRoot);\n\n    if (visibleCarouselItems.length <= 1 && sectionRoot.querySelector('.product-gallery__carousel-item[data-tuokus-shared-detail=\"true\"]')) {\n      revealSharedDetailItems(sectionRoot);\n      visibleCarouselItems = getVisibleCarouselItems(sectionRoot);\n    }\n\n    if (!visibleCarouselItems.length) {\n      carouselItems[0].classList.remove('is-filtered');\n      carouselItems[0].removeAttribute('aria-hidden');\n      unfilterMatchingThumbnail(sectionRoot, carouselItems[0].getAttribute('data-media-id') || '');\n      visibleCarouselItems = getVisibleCarouselItems(sectionRoot);\n    }\n\n    activeCarouselItem =\n      sectionRoot.querySelector('.product-gallery__carousel-item.is-selected:not(.is-filtered)') ||\n      visibleCarouselItems[0] ||\n      carouselItems[0] ||\n      null;\n\n    carouselItems.forEach(function(item) {\n      item.classList.remove('is-selected');\n    });\n\n    if (activeCarouselItem) {\n      activeCarouselItem.classList.remove('is-filtered');\n      activeCarouselItem.classList.add('is-selected');\n      activeMediaId = activeCarouselItem.getAttribute('data-media-id') || '';\n      unfilterMatchingThumbnail(sectionRoot, activeMediaId);\n    }\n\n    thumbnails.forEach(function(item) {\n      item.classList.remove('is-nav-selected');\n    });\n\n    visibleThumbnails = getVisibleThumbnails(sectionRoot);\n    activeThumbnail = activeMediaId\n      ? sectionRoot.querySelector('.product-gallery__thumbnail[data-media-id=\"' + activeMediaId + '\"]:not(.is-filtered)')\n      : (visibleThumbnails[0] || null);\n\n    if (activeThumbnail) {\n      activeThumbnail.classList.add('is-nav-selected');\n    }\n\n    visibleCount = Math.max(getVisibleCarouselItems(sectionRoot).length, getVisibleThumbnails(sectionRoot).length);\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    gallery.setAttribute('data-visible-media-count', String(visibleCount));\n\n    if (carousel && activeMediaId) {\n      carousel.setAttribute('data-initial-media-id', activeMediaId);\n    }\n  }\n\n  function scheduleGalleryContinuity(sectionRoot, delay) {\n    if (!sectionRoot) {\n      return;\n    }\n\n    window.setTimeout(function() {\n      ensureGalleryContinuity(sectionRoot);\n    }, delay || 80);\n  }\n\n  function reconcileProductSections(root) {\n    var scope = root && root.querySelectorAll ? root : document;\n\n    scope.querySelectorAll(PRODUCT_SECTION_SELECTOR).forEach(function(sectionRoot) {\n      ensureGalleryContinuity(sectionRoot);\n    });\n  }\n\n  document.addEventListener('click', handleCouponCopy, true);\n\n  document.addEventListener('click', function(event) {\n    var trigger = event.target && event.target.closest\n      ? event.target.closest('.variant-swatch, .block-swatch, .color-swatch, .product-form__option-value, .product-gallery__thumbnail')\n      : null;\n    var sectionRoot = trigger && trigger.closest ? trigger.closest(PRODUCT_SECTION_SELECTOR) : null;\n\n    if (!sectionRoot) {\n      return;\n    }\n\n    scheduleGalleryContinuity(sectionRoot, 90);\n    scheduleGalleryContinuity(sectionRoot, 220);\n  }, true);\n\n  document.addEventListener('change', function(event) {\n    var trigger = event.target && event.target.closest\n      ? event.target.closest('.product-form__single-selector[data-option-position], .product-form__option input, .product-form__option select')\n      : null;\n    var sectionRoot = trigger && trigger.closest ? trigger.closest(PRODUCT_SECTION_SELECTOR) : null;\n\n    if (!sectionRoot) {\n      return;\n    }\n\n    scheduleGalleryContinuity(sectionRoot, 70);\n    scheduleGalleryContinuity(sectionRoot, 180);\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    scheduleGalleryContinuity(sectionRoot, 70);\n    scheduleGalleryContinuity(sectionRoot, 190);\n  }, true);\n\n  document.addEventListener('theme:loading:end', function(event) {\n    window.requestAnimationFrame(function() {\n      reconcileProductSections(event.target || document);\n    });\n  });\n\n  document.addEventListener('shopify:section:load', function(event) {\n    window.requestAnimationFrame(function() {\n      reconcileProductSections(event.target || document);\n    });\n  });\n\n  window.addEventListener('pageshow', function() {\n    window.requestAnimationFrame(function() {\n      reconcileProductSections(document);\n    });\n  });\n\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', function() {\n      reconcileProductSections(document);\n    });\n  } else {\n    reconcileProductSections(document);\n  }\n})();\n"],
  "mappings": "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",
  "names": []
}
