{
  "version": 3,
  "sources": ["/cdn/shop/t/162/assets/custom.js?bbb=202604301830"],
  "sourcesContent": ["/**\n * Include your custom JavaScript here.\n *\n * We also offer some hooks so you can plug your own logic. For instance, if you want to be notified when the variant\n * changes on product page, you can attach a listener to the document:\n *\n * document.addEventListener('variant:changed', function(event) {\n *   var variant = event.detail.variant; // Gives you access to the whole variant details\n * });\n *\n * You can also add a listener whenever a product is added to the cart:\n *\n * document.addEventListener('product:added', function(event) {\n *   var variant = event.detail.variant; // Get the variant that was added\n *   var quantity = event.detail.quantity; // Get the quantity that was added\n * });\n *\n * If you are an app developer and requires the theme to re-render the mini-cart, you can trigger your own event. If\n * you are adding a product, you need to trigger the \"product:added\" event, and make sure that you pass the quantity\n * that was added so the theme can properly update the quantity:\n *\n * document.documentElement.dispatchEvent(new CustomEvent('product:added', {\n *   bubbles: true,\n *   detail: {\n *     quantity: 1\n *   }\n * }));\n *\n * If you just want to force refresh the mini-cart without adding a specific product, you can trigger the event\n * \"cart:refresh\" in a similar way (in that case, passing the quantity is not necessary):\n *\n * document.documentElement.dispatchEvent(new CustomEvent('cart:refresh', {\n *   bubbles: true\n * }));\n */\n\n(function () {\n  \"use strict\";\n\n  function redirectMetaResultsRootUrl() {\n    var params = new URLSearchParams(window.location.search);\n    if (window.location.pathname === \"/\" && params.has(\"field\") && params.has(\"value\")) {\n      window.location.replace(\"/pages/meta-results-live\" + window.location.search);\n    }\n  }\n\n  redirectMetaResultsRootUrl();\n\n  var lockSensitiveSelectors = [\n    \"#mini-cart[aria-hidden='false']\",\n    \"#mobile-menu[aria-hidden='false']\",\n    \"#mobile-collection-filters[aria-hidden='false']\",\n    \".mobile-menu[aria-hidden='false']\",\n    \".search-bar[aria-hidden='false']\",\n    \".modal[aria-hidden='false']\",\n    \".drawer[aria-hidden='false']\",\n    \".popover[aria-hidden='false']\",\n    \".value-picker[aria-hidden='false']\"\n  ];\n\n  var lockRecoveryTimer = null;\n  var lockRecoveryDeadline = 0;\n\n  function copyTextToClipboard(value) {\n    if (navigator.clipboard && navigator.clipboard.writeText) {\n      return navigator.clipboard.writeText(value);\n    }\n\n    return new Promise(function (resolve, reject) {\n      try {\n        var helper = document.createElement(\"textarea\");\n        helper.value = value;\n        helper.setAttribute(\"readonly\", \"\");\n        helper.style.position = \"fixed\";\n        helper.style.top = \"-9999px\";\n        helper.style.left = \"-9999px\";\n        document.body.appendChild(helper);\n        helper.select();\n        helper.setSelectionRange(0, helper.value.length);\n\n        var copied = document.execCommand(\"copy\");\n        document.body.removeChild(helper);\n        copied ? resolve() : reject(new Error(\"Copy failed\"));\n      } catch (error) {\n        reject(error);\n      }\n    });\n  }\n\n  function markCopied(trigger) {\n    trigger.classList.add(\"is-copied\");\n    window.setTimeout(function () {\n      trigger.classList.remove(\"is-copied\");\n    }, 1200);\n  }\n\n  function getMetaRowCollapsedHeight(metaRow) {\n    var computedStyle = window.getComputedStyle(metaRow);\n    var lineHeight = parseFloat(computedStyle.lineHeight);\n\n    if (!Number.isFinite(lineHeight) || lineHeight <= 0) {\n      var fontSize = parseFloat(computedStyle.fontSize);\n      if (Number.isFinite(fontSize) && fontSize > 0) {\n        lineHeight = fontSize * 1.2;\n      }\n    }\n\n    if (!Number.isFinite(lineHeight) || lineHeight <= 0) {\n      lineHeight = 24;\n    }\n\n    return Math.max(16, Math.floor(lineHeight));\n  }\n\n  function runMetaExpandContent() {\n    var rows = document.querySelectorAll(\".product-meta .meta_row_wrapper\");\n    if (!rows.length) {\n      return;\n    }\n\n    rows.forEach(function (row) {\n      var metaRow = row.querySelector(\".meta_row\");\n      if (!metaRow) {\n        return;\n      }\n\n      var collapsedHeight = getMetaRowCollapsedHeight(metaRow);\n      row.style.setProperty(\"--bbb-meta-collapsed-height\", collapsedHeight + \"px\");\n\n      var isActiveRow = metaRow.classList.contains(\"active\");\n      if (isActiveRow) {\n        row.classList.remove(\"hide_all_content\");\n        row.style.maxHeight = \"100%\";\n        return;\n      }\n\n      row.style.maxHeight = collapsedHeight + \"px\";\n\n      if (metaRow.scrollHeight > collapsedHeight + 1) {\n        row.classList.add(\"hide_all_content\");\n      } else {\n        row.classList.remove(\"hide_all_content\");\n      }\n    });\n  }\n\n  function hasOpenLockingUI() {\n    return lockSensitiveSelectors.some(function (selector) {\n      return !!document.querySelector(selector);\n    });\n  }\n\n  function releaseScrollLockIfSafe(force) {\n    var body = document.body;\n    var root = document.documentElement;\n\n    if (!root || !body) {\n      return;\n    }\n\n    if (!force && hasOpenLockingUI()) {\n      return;\n    }\n\n    root.classList.remove(\"is-locked\");\n    body.classList.remove(\"is-locked\");\n\n    if (!hasOpenLockingUI()) {\n      root.style.overflow = \"\";\n      root.style.overflowY = \"\";\n      body.style.overflow = \"\";\n      body.style.overflowY = \"\";\n    }\n  }\n\n  function startLockRecoveryWindow(durationMs) {\n    if (\n      !document.documentElement.classList.contains(\"is-locked\") &&\n      !document.body.classList.contains(\"is-locked\") &&\n      !hasOpenLockingUI()\n    ) {\n      return;\n    }\n\n    lockRecoveryDeadline = Date.now() + durationMs;\n\n    if (lockRecoveryTimer) {\n      return;\n    }\n\n    lockRecoveryTimer = window.setInterval(function () {\n      releaseScrollLockIfSafe(false);\n\n      if (\n        !document.documentElement.classList.contains(\"is-locked\") &&\n        !document.body.classList.contains(\"is-locked\") &&\n        !hasOpenLockingUI()\n      ) {\n        window.clearInterval(lockRecoveryTimer);\n        lockRecoveryTimer = null;\n        return;\n      }\n\n      if (Date.now() >= lockRecoveryDeadline) {\n        window.clearInterval(lockRecoveryTimer);\n        lockRecoveryTimer = null;\n      }\n    }, 320);\n  }\n\n  function scheduleLockCleanup(force) {\n    var shouldForce = !!force;\n\n    window.requestAnimationFrame(function () {\n      releaseScrollLockIfSafe(shouldForce);\n    });\n\n    window.setTimeout(function () {\n      releaseScrollLockIfSafe(shouldForce);\n    }, 120);\n\n    startLockRecoveryWindow(1800);\n  }\n\n  function handleShowAllClick(trigger) {\n    var parentRow = trigger.closest(\".meta_row_wrapper\");\n    var rowBlock = trigger.closest(\".meta_row\");\n\n    if (!parentRow || !rowBlock) {\n      return;\n    }\n\n    rowBlock.classList.add(\"active\");\n    parentRow.classList.remove(\"hide_all_content\");\n    parentRow.style.maxHeight = \"100%\";\n    trigger.style.display = \"none\";\n  }\n\n  function handleCopyLink(trigger) {\n    var targetId = trigger.getAttribute(\"data-copy-url-target\");\n    var copyTarget = targetId ? document.getElementById(targetId) : document.getElementById(\"copyUrl\");\n\n    if (!copyTarget) {\n      copyTarget = document.querySelector(\".copy-url-field\");\n    }\n\n    var value = copyTarget ? copyTarget.value : window.location.href;\n    if (!value) {\n      return;\n    }\n\n    copyTextToClipboard(value).then(function () {\n      markCopied(trigger);\n    }).catch(function () {\n      window.prompt(\"Copy this link:\", value);\n    });\n  }\n\n  function getPrimeBadgeUrl(trigger) {\n    if (!trigger) {\n      return \"\";\n    }\n\n    var onClickAttr = trigger.getAttribute(\"onclick\") || \"\";\n    if (!onClickAttr) {\n      return \"\";\n    }\n\n    var match = onClickAttr.match(/redirectLinkbadge\\(\\s*['\"]([^'\"]*)['\"]/i);\n    if (!match || !match[1]) {\n      return \"\";\n    }\n\n    return String(match[1]).trim();\n  }\n\n  function getVariantMetaMap(container) {\n    if (!container || !container.querySelector) {\n      return null;\n    }\n\n    var script = container.querySelector(\"script[data-bbb-variant-meta]\");\n    if (!script) {\n      return null;\n    }\n\n    if (script.__bbbVariantMetaMap) {\n      return script.__bbbVariantMetaMap;\n    }\n\n    try {\n      script.__bbbVariantMetaMap = JSON.parse(script.textContent || \"{}\");\n    } catch (error) {\n      script.__bbbVariantMetaMap = {};\n    }\n\n    return script.__bbbVariantMetaMap;\n  }\n\n  function normalizeFormatValues(rawValue) {\n    if (Array.isArray(rawValue)) {\n      return rawValue.map(function (item) {\n        return String(item || \"\").trim();\n      }).filter(Boolean);\n    }\n\n    if (rawValue == null) {\n      return [];\n    }\n\n    var value = String(rawValue).trim();\n    if (!value) {\n      return [];\n    }\n\n    try {\n      var parsedValue = JSON.parse(value);\n      if (Array.isArray(parsedValue)) {\n        return parsedValue.map(function (item) {\n          return String(item || \"\").trim();\n        }).filter(Boolean);\n      }\n    } catch (error) {}\n\n    return value\n      .replace(/^\\[/, \"\")\n      .replace(/\\]$/, \"\")\n      .split(\",\")\n      .map(function (item) {\n        return item.replace(/\"/g, \"\").trim();\n      })\n      .filter(Boolean);\n  }\n\n  function setVisible(element, isVisible) {\n    if (!element) {\n      return;\n    }\n\n    element.style.display = isVisible ? \"\" : \"none\";\n  }\n\n  function buildMetaResultsLink(baseUrl, field, value) {\n    var separator = baseUrl.indexOf(\"?\") === -1 ? \"?\" : \"&\";\n    return baseUrl + separator + \"field=\" + encodeURIComponent(field) + \"&value=\" + encodeURIComponent(value);\n  }\n\n  function updateVariantBookDetails(container, variant, variantMeta) {\n    if (!container || !variantMeta) {\n      return;\n    }\n\n    var barcodeEl = container.querySelector(\".product-meta__barcode\");\n    var imprintValue = variantMeta.imprint ? String(variantMeta.imprint).trim() : \"\";\n    var qrCodeSupportEl = container.querySelector(\".qr_code_support\");\n\n    if (barcodeEl) {\n      var barcode = (variant && variant.barcode) || variantMeta.barcode || \"\";\n      setVisible(barcodeEl, barcode !== \"\");\n\n      if (barcode !== \"\") {\n        var barcodeValueEl = barcodeEl.querySelector(\".product-meta__barcode-number\");\n        if (barcodeValueEl) {\n          barcodeValueEl.textContent = barcode;\n        }\n      }\n\n      var barcodeDividerEl = barcodeEl.querySelector(\".product-meta__barcode-divider\");\n      if (barcodeDividerEl) {\n        setVisible(barcodeDividerEl, imprintValue !== \"\" || !!qrCodeSupportEl);\n      }\n    }\n\n    var imprintEl = container.querySelector(\"[data-bbb-imprint-link]\") || container.querySelector(\".product-meta__vendor\");\n    setVisible(imprintEl, imprintValue !== \"\");\n\n    if (imprintEl && imprintValue !== \"\") {\n      var metaResultsUrl = imprintEl.getAttribute(\"data-meta-results-url\") || \"/apps/meta-results-share?preview_v=202607181036\";\n      imprintEl.textContent = imprintValue;\n      imprintEl.setAttribute(\"href\", buildMetaResultsLink(metaResultsUrl, \"imprint\", imprintValue));\n    }\n\n    var imprintDividerEl = container.querySelector(\".product-meta__imprint-divider\");\n    if (imprintDividerEl) {\n      setVisible(imprintDividerEl, imprintValue !== \"\");\n    }\n\n    var publishDateEl = container.querySelector(\".publishing_date\");\n    var publishDate = variantMeta.publication_date || \"\";\n    setVisible(publishDateEl, publishDate !== \"\");\n\n    if (publishDateEl && publishDate !== \"\") {\n      var publishDateValueEl = publishDateEl.querySelector(\".publishing_date_value\");\n      if (publishDateValueEl) {\n        publishDateValueEl.textContent = publishDate;\n      }\n    }\n\n    var weightEl = container.querySelector(\".weight_block_wrapper\");\n    var weightValue = variantMeta.weight;\n    var weightUnit = variantMeta.weight_unit || \"\";\n    var hasWeight = weightValue !== null && weightValue !== undefined && String(weightValue) !== \"\" && String(weightValue) !== \"0\";\n    setVisible(weightEl, hasWeight);\n\n    if (weightEl && hasWeight) {\n      var weightValueEl = weightEl.querySelector(\".weight_block_value\");\n      if (weightValueEl) {\n        weightValueEl.textContent = String(weightValue) + \" \" + weightUnit;\n      }\n    }\n\n    var pageInfoEl = container.querySelector(\".variant_metafield_page_info\");\n    var pageValue = variantMeta.page === null || variantMeta.page === undefined ? \"\" : String(variantMeta.page).trim();\n    var hasPage = pageValue !== \"\";\n    setVisible(pageInfoEl, hasPage);\n\n    if (pageInfoEl && hasPage) {\n      var pageInfoValueEl = pageInfoEl.querySelector(\".variant_metafield_page_info_value\");\n      if (pageInfoValueEl) {\n        pageInfoValueEl.textContent = pageValue;\n      }\n    }\n\n    var formatInfoEl = container.querySelector(\".variant_metafield_format_info\");\n    var formatValues = normalizeFormatValues(variantMeta.format);\n    var hasFormat = formatValues.length > 0;\n    setVisible(formatInfoEl, hasFormat);\n\n    if (formatInfoEl && hasFormat) {\n      formatInfoEl.innerHTML = \"\";\n\n      formatValues.forEach(function (formatValue, index) {\n        if (index > 0) {\n          var andEl = document.createElement(\"span\");\n          andEl.textContent = \"&\";\n          formatInfoEl.appendChild(andEl);\n        }\n\n        var valueEl = document.createElement(\"span\");\n        valueEl.className = \"variant_metafield_format_info_value\";\n        valueEl.textContent = formatValue;\n        formatInfoEl.appendChild(valueEl);\n      });\n    }\n\n    var dimensionInfoEl = container.querySelector(\".variant_dimension_info\");\n    var dimensionValue = variantMeta.dimension ? String(variantMeta.dimension).trim() : \"\";\n    var hasDimension = dimensionValue !== \"\";\n    setVisible(dimensionInfoEl, hasDimension);\n\n    if (dimensionInfoEl && hasDimension) {\n      var dimensionValueEl = dimensionInfoEl.querySelector(\".variant_dimension_info_value\");\n      if (dimensionValueEl) {\n        dimensionValueEl.textContent = dimensionValue;\n      }\n\n      var dimensionDividerEl = dimensionInfoEl.querySelector(\".divider\");\n      if (dimensionDividerEl) {\n        setVisible(dimensionDividerEl, hasPage || hasFormat);\n      }\n    }\n  }\n\n  function updateVariantPreorderState(container, variant, variantMeta) {\n    if (!container || !variant || !variantMeta) {\n      return;\n    }\n\n    var addButton = container.querySelector(\".product-form__add-button\");\n    if (!addButton) {\n      return;\n    }\n\n    var isAvailable = variant.available !== false;\n    var isPreorder = !!variantMeta.is_preorder;\n    var paymentContainer = container.querySelector(\".product-form__payment-container\");\n    var preorderInput = container.querySelector(\"input.preorder_property\");\n\n    if (paymentContainer) {\n      paymentContainer.classList.toggle(\"product-form__payment-container--preorder\", isAvailable && isPreorder);\n    }\n\n    if (preorderInput) {\n      preorderInput.name = \"\";\n      preorderInput.value = \"\";\n    }\n\n    if (!isAvailable) {\n      addButton.classList.remove(\"button--primary\", \"button--secondary\");\n      addButton.classList.add(\"button--disabled\");\n      addButton.setAttribute(\"disabled\", \"disabled\");\n      if (window.languages && window.languages.productFormSoldOut) {\n        addButton.textContent = window.languages.productFormSoldOut;\n      }\n      return;\n    }\n\n    addButton.classList.remove(\"button--disabled\");\n    addButton.removeAttribute(\"disabled\");\n\n    if (isPreorder) {\n      addButton.classList.remove(\"button--primary\");\n      addButton.classList.add(\"button--secondary\");\n      if (window.languages && window.languages.productFormPreOrder) {\n        addButton.textContent = window.languages.productFormPreOrder;\n      }\n    } else {\n      addButton.classList.remove(\"button--secondary\");\n      addButton.classList.add(\"button--primary\");\n      if (window.languages && window.languages.productFormAddToCart) {\n        addButton.textContent = window.languages.productFormAddToCart;\n      }\n    }\n  }\n\n  function updateVariantMetaFromId(container, variantId, variantPayload) {\n    var variantMetaMap = getVariantMetaMap(container);\n    if (!variantMetaMap || !variantId) {\n      return;\n    }\n\n    var variantMeta = variantMetaMap[String(variantId)];\n    if (!variantMeta) {\n      return;\n    }\n\n    var safeVariantPayload = variantPayload || {\n      id: variantId,\n      barcode: variantMeta.barcode || \"\",\n      available: variantMeta.available !== false\n    };\n\n    updateVariantBookDetails(container, safeVariantPayload, variantMeta);\n    updateVariantPreorderState(container, safeVariantPayload, variantMeta);\n  }\n\n  function refreshVariantMetaForContainer(container) {\n    if (!container || !container.querySelector) {\n      return;\n    }\n\n    var variantIdInput = container.querySelector(\"input[name='id']\");\n    if (!variantIdInput || !variantIdInput.value) {\n      return;\n    }\n\n    updateVariantMetaFromId(container, variantIdInput.value);\n  }\n\n  function refreshAllVariantMeta() {\n    document.querySelectorAll(\"script[data-bbb-variant-meta]\").forEach(function (script) {\n      var container = script.closest(\".card__section\") || script.closest(\".product-form\") || script.parentElement;\n      refreshVariantMetaForContainer(container);\n    });\n  }\n\n  function findVariantMetaContainer(target) {\n    if (!target || !target.closest) {\n      return null;\n    }\n\n    return target.closest(\".card__section\") || target.closest(\".product-form\");\n  }\n\n  function init() {\n    runMetaExpandContent();\n    scheduleLockCleanup(true);\n    refreshAllVariantMeta();\n  }\n\n  document.addEventListener(\"click\", function (event) {\n    var target = event.target;\n    if (!target || !target.closest) {\n      return;\n    }\n\n    var showAllTrigger = target.closest(\".show_all\");\n    if (showAllTrigger) {\n      event.preventDefault();\n      handleShowAllClick(showAllTrigger);\n      return;\n    }\n\n    var copyTrigger = target.closest(\".copyUrlLink\");\n    if (copyTrigger) {\n      event.preventDefault();\n      handleCopyLink(copyTrigger);\n      return;\n    }\n\n    var badgeTrigger = target.closest(\".primebDesktop[onclick*='redirectLinkbadge']\");\n    if (badgeTrigger) {\n      var badgeUrl = getPrimeBadgeUrl(badgeTrigger);\n      if (badgeUrl) {\n        event.preventDefault();\n        window.location.href = badgeUrl;\n        return;\n      }\n    }\n\n    if (\n      target.closest(\n        \"[data-action='toggle-menu'], [data-action='open-panel'], [data-action='close-panel'], [data-action='toggle-mini-cart'], [data-action='open-drawer'], [data-action='close-drawer'], [data-action='open-modal'], [data-action='close-modal']\"\n      )\n    ) {\n      scheduleLockCleanup(false);\n    }\n  }, true);\n\n  document.addEventListener(\"keyup\", function (event) {\n    if (event.key === \"Escape\") {\n      scheduleLockCleanup(false);\n    }\n  });\n\n  document.addEventListener(\"theme:loading:end\", function () {\n    scheduleLockCleanup(true);\n  });\n\n  document.addEventListener(\"shopify:section:load\", function () {\n    runMetaExpandContent();\n    scheduleLockCleanup(true);\n    refreshAllVariantMeta();\n  });\n\n  document.addEventListener(\"variant:changed\", function (event) {\n    var variant = event.detail && event.detail.variant;\n    if (!variant || !variant.id) {\n      return;\n    }\n\n    var container = findVariantMetaContainer(event.target);\n    updateVariantMetaFromId(container, variant.id, variant);\n\n    window.setTimeout(function () {\n      refreshVariantMetaForContainer(container);\n    }, 0);\n  });\n\n  document.addEventListener(\"change\", function (event) {\n    var target = event.target;\n    if (\n      !target ||\n      !target.matches ||\n      (!target.matches(\".product-form__single-selector\") && !target.matches(\"input[name='id']\"))\n    ) {\n      return;\n    }\n\n    var container = findVariantMetaContainer(target);\n    if (!container) {\n      return;\n    }\n\n    window.setTimeout(function () {\n      refreshVariantMetaForContainer(container);\n    }, 50);\n  });\n\n  document.addEventListener(\"product:rerender\", function (event) {\n    var container = findVariantMetaContainer(event.target);\n\n    window.setTimeout(function () {\n      refreshVariantMetaForContainer(container);\n    }, 0);\n  }, true);\n\n  var resizeMetaExpandTimer = null;\n  window.addEventListener(\"resize\", function () {\n    if (resizeMetaExpandTimer) {\n      window.clearTimeout(resizeMetaExpandTimer);\n    }\n\n    resizeMetaExpandTimer = window.setTimeout(function () {\n      runMetaExpandContent();\n      resizeMetaExpandTimer = null;\n    }, 120);\n  });\n  window.addEventListener(\"pageshow\", function () {\n    scheduleLockCleanup(true);\n  });\n  window.addEventListener(\"popstate\", function () {\n    scheduleLockCleanup(true);\n  });\n\n  window.addEventListener(\"globoRelatedProductsAddedProductsToCart\", function () {\n    document.documentElement.dispatchEvent(\n      new CustomEvent(\"product:added\", {\n        bubbles: true,\n        detail: { quantity: 0 }\n      })\n    );\n  });\n\n  if (document.readyState === \"loading\") {\n    document.addEventListener(\"DOMContentLoaded\", init);\n  } else {\n    init();\n  }\n})();\n\n\n(function () {\n  function hasBlockingUIOpen() {\n    return !!document.querySelector(\n      \"#mini-cart[aria-hidden='false'], \" +\n      \"#mobile-menu[aria-hidden='false'], \" +\n      \"#mobile-collection-filters[aria-hidden='false'], \" +\n      \".mobile-menu[aria-hidden='false'], \" +\n      \".search-bar.is-fixed, .search-bar.is-expanded, .search-bar__results[aria-hidden='false'], \" +\n      \".modal[aria-hidden='false'], dialog[open], \" +\n      \".drawer[aria-hidden='false'], .popover[aria-hidden='false'], \" +\n      \".value-picker[aria-hidden='false'], .value-picker[aria-expanded='true']\"\n    );\n  }\n\n  function unlockIfStale() {\n    var root = document.documentElement;\n    var body = document.body;\n    if (!root || !body) return;\n\n    var locked = root.classList.contains(\"is-locked\") || body.classList.contains(\"is-locked\");\n    if (!locked || hasBlockingUIOpen()) return;\n\n    root.classList.remove(\"is-locked\");\n    body.classList.remove(\"is-locked\");\n    root.style.overflow = \"\";\n    root.style.overflowY = \"\";\n    body.style.overflow = \"\";\n    body.style.overflowY = \"\";\n  }\n\n  setInterval(unlockIfStale, 1000);\n  window.addEventListener(\"pageshow\", unlockIfStale);\n  window.addEventListener(\"focus\", unlockIfStale);\n  document.addEventListener(\"visibilitychange\", function () {\n    if (document.visibilityState === \"visible\") unlockIfStale();\n  });\n})();\n\n(function () {\n  var BLOCK_SELECTOR = \".bbb-countdown-banner-app-block\";\n  var BUTTON_SELECTOR = \".product-form__payment-container > buy-button\";\n  var pending = false;\n\n  function visibleButton(form) {\n    var buttons = form.querySelectorAll(BUTTON_SELECTOR);\n\n    for (var i = 0; i < buttons.length; i += 1) {\n      var rect = buttons[i].getBoundingClientRect();\n\n      if (rect.width > 0 && rect.height > 0) {\n        return buttons[i];\n      }\n    }\n\n    return null;\n  }\n\n  function alignProductCountdownBlocks() {\n    document.querySelectorAll(\"product-form\").forEach(function (form) {\n      var button = visibleButton(form);\n\n      if (!button) {\n        return;\n      }\n\n      var buttonRect = button.getBoundingClientRect();\n\n      form.querySelectorAll(BLOCK_SELECTOR).forEach(function (block) {\n        var parent = block.parentElement;\n\n        if (!parent) {\n          return;\n        }\n\n        var parentRect = parent.getBoundingClientRect();\n        var width = Math.round(buttonRect.width);\n        var left = Math.max(0, Math.round(buttonRect.left - parentRect.left));\n        var banner = block.querySelector(\".bbb-countdown-banner\");\n\n        block.style.width = width + \"px\";\n        block.style.maxWidth = width + \"px\";\n        block.style.marginLeft = left + \"px\";\n        block.style.marginRight = \"0\";\n        block.setAttribute(\"data-bbb-align\", \"add-to-cart\");\n\n        if (banner) {\n          banner.style.width = \"100%\";\n          banner.style.maxWidth = \"100%\";\n        }\n      });\n    });\n  }\n\n  function scheduleAlign() {\n    if (pending) {\n      return;\n    }\n\n    pending = true;\n    window.requestAnimationFrame(function () {\n      pending = false;\n      alignProductCountdownBlocks();\n    });\n  }\n\n  scheduleAlign();\n  window.addEventListener(\"load\", scheduleAlign);\n  window.addEventListener(\"resize\", scheduleAlign);\n  document.addEventListener(\"shopify:section:load\", scheduleAlign);\n\n  new MutationObserver(scheduleAlign).observe(document.documentElement, {\n    childList: true,\n    subtree: true\n  });\n})();\n\n(function () {\n  \"use strict\";\n\n  var BADGE_SELECTOR = \"[data-bbb-variant-status-id]\";\n  var FALLBACK_BADGE_SELECTOR = \".block-swatch__item-status:not([data-bbb-variant-status-id])\";\n  var VARIANT_INPUT_SELECTOR = [\n    \"form[action*='/cart/add'] input[name='id']\",\n    \"form[action*='/cart/add'] select[name='id']\",\n    \"form[action='/cart/add'] input[name='id']\",\n    \"form[action='/cart/add'] select[name='id']\"\n  ].join(\", \");\n  var APP_PROXY_FALLBACK = \"/apps/bbb-eta-lab/status\";\n  var CACHE_TTL_MS = 30000;\n\n  var cache = {};\n  var timer = 0;\n  var inflight = false;\n\n  function getLabels() {\n    var lang = String(\n      (window.BBB_ETACartWriterConfig && window.BBB_ETACartWriterConfig.locale) ||\n      document.documentElement.getAttribute(\"lang\") ||\n      navigator.language ||\n      \"en\"\n    ).toLowerCase();\n\n    if (lang.indexOf(\"zh\") === 0) {\n      return {\n        inStock: \"\\u6709\\u5b58\\u8ca8\",\n        onOrder: \"\\u8a02\\u8cfc\\u4e2d\",\n        soldOut: \"\\u7f3a\\u8ca8\"\n      };\n    }\n\n    return {\n      inStock: \"In stock\",\n      onOrder: \"On order\",\n      soldOut: \"Out of stock\"\n    };\n  }\n\n  function firstPresent() {\n    for (var i = 0; i < arguments.length; i += 1) {\n      if (arguments[i] !== undefined && arguments[i] !== null && arguments[i] !== \"\") {\n        return arguments[i];\n      }\n    }\n\n    return undefined;\n  }\n\n  function getProxyPath() {\n    var rawPath = String(\n      (window.BBB_ETACartWriterConfig && window.BBB_ETACartWriterConfig.appProxyPath) ||\n      APP_PROXY_FALLBACK\n    ).trim();\n    var queryIndex = rawPath.indexOf(\"?\");\n    var pathname = queryIndex >= 0 ? rawPath.slice(0, queryIndex) : rawPath;\n    var query = queryIndex >= 0 ? rawPath.slice(queryIndex) : \"\";\n\n    if (/\\/variants\\/?$/i.test(pathname)) {\n      pathname = pathname.replace(/\\/variants\\/?$/i, \"/status\");\n    }\n\n    return (pathname || APP_PROXY_FALLBACK) + query;\n  }\n\n  function normalizeRecord(row) {\n    var status = String(row && firstPresent(row.status, row.inventoryStatus, row.inventory_status) || \"\")\n      .trim()\n      .toLowerCase();\n\n    return {\n      variantId: Number(row && firstPresent(row.variantId, row.variant_id, row.id)) || 0,\n      status: status\n    };\n  }\n\n  function buildStatus(rec) {\n    var labels = getLabels();\n\n    if (rec && rec.status === \"in_stock\") {\n      return { name: \"in-stock\", badgeText: labels.inStock };\n    }\n\n    if (rec && rec.status === \"on_order\") {\n      return { name: \"on-order\", badgeText: labels.onOrder };\n    }\n\n    return { name: \"sold-out\", badgeText: labels.soldOut };\n  }\n\n  function currentVariantId() {\n    var input = document.querySelector(VARIANT_INPUT_SELECTOR);\n    var value = input && (input.value || input.getAttribute(\"value\"));\n    var id = Number(value || 0);\n\n    return Number.isFinite(id) ? id : 0;\n  }\n\n  function parseVariantIdFromScript(container) {\n    var script = container && container.querySelector && container.querySelector(\"script[data-variant]\");\n    var parsed;\n\n    if (!script) {\n      return 0;\n    }\n\n    if (script.__bbbEtaVariantId !== undefined) {\n      return script.__bbbEtaVariantId;\n    }\n\n    try {\n      parsed = JSON.parse(script.textContent || \"{}\");\n      script.__bbbEtaVariantId = Number(parsed && parsed.id) || 0;\n    } catch (_) {\n      script.__bbbEtaVariantId = 0;\n    }\n\n    return script.__bbbEtaVariantId;\n  }\n\n  function readVariantIdFromContainer(container) {\n    var input = container && container.querySelector && container.querySelector(\"input[name='id'], select[name='id']\");\n    var attrValue =\n      container &&\n      container.getAttribute &&\n      (container.getAttribute(\"data-variant-id\") || container.getAttribute(\"data-product-variant-id\"));\n    var value = (input && (input.value || input.getAttribute(\"value\"))) || attrValue;\n    var id = Number(value || 0);\n\n    if (Number.isFinite(id) && id > 0) {\n      return id;\n    }\n\n    return parseVariantIdFromScript(container);\n  }\n\n  function pushTarget(targets, seenNodes, node, variantId, type) {\n    if (!node || !(variantId > 0) || seenNodes.indexOf(node) >= 0) {\n      return;\n    }\n\n    seenNodes.push(node);\n    targets.push({ node: node, variantId: variantId, type: type });\n  }\n\n  function collectFallbackTargets(targets, seenNodes, selectedVariantId) {\n    document.querySelectorAll(\"variant-picker\").forEach(function (picker) {\n      var variantId = readVariantIdFromContainer(picker) || selectedVariantId;\n      var badges;\n\n      if (!(variantId > 0)) {\n        return;\n      }\n\n      badges = picker.querySelectorAll(FALLBACK_BADGE_SELECTOR);\n      if (badges.length === 1) {\n        pushTarget(targets, seenNodes, badges[0], variantId, \"badge\");\n      }\n    });\n  }\n\n  function collectTargets() {\n    var targets = [];\n    var seenNodes = [];\n    var selectedVariantId = currentVariantId();\n\n    document.querySelectorAll(BADGE_SELECTOR).forEach(function (node) {\n      var variantId = Number(node.getAttribute(\"data-bbb-variant-status-id\") || 0);\n      pushTarget(targets, seenNodes, node, variantId, \"badge\");\n    });\n\n    collectFallbackTargets(targets, seenNodes, selectedVariantId);\n\n    return targets;\n  }\n\n  function applyBadgeStatus(node, status) {\n    var classNames = [\"block-swatch__item-status--sold-out\"];\n\n    if (status.name === \"in-stock\") {\n      classNames = [\"block-swatch__item-status--in-stock\"];\n    } else if (status.name === \"on-order\") {\n      classNames = [\"block-swatch__item-status--on-order\"];\n    }\n\n    node.classList.remove(\n      \"block-swatch__item-status--in-stock\",\n      \"block-swatch__item-status--on-order\",\n      \"block-swatch__item-status--restocking\",\n      \"block-swatch__item-status--sold-out\"\n    );\n    classNames.forEach(function (className) {\n      node.classList.add(className);\n    });\n\n    if (String(node.textContent || \"\").trim() !== status.badgeText) {\n      node.textContent = status.badgeText;\n    }\n  }\n\n  function fetchRecords(variantIds) {\n    var now = Date.now();\n    var missing = [];\n    var out = {};\n\n    variantIds.forEach(function (id) {\n      var cached = cache[id];\n\n      if (cached && now - cached.time < CACHE_TTL_MS) {\n        out[id] = cached.record;\n      } else {\n        missing.push(id);\n      }\n    });\n\n    if (!missing.length) {\n      return Promise.resolve(out);\n    }\n\n    var proxyPath = getProxyPath();\n    var separator = proxyPath.indexOf(\"?\") >= 0 ? \"&\" : \"?\";\n    var shopDomain =\n      (window.Shopify && window.Shopify.shop) ||\n      (window.ShopifyAnalytics && window.ShopifyAnalytics.meta && window.ShopifyAnalytics.meta.shopDomain) ||\n      \"\";\n    var url = proxyPath + separator + \"ids=\" + encodeURIComponent(missing.join(\",\"));\n\n    if (shopDomain) {\n      url += \"&shop=\" + encodeURIComponent(shopDomain);\n    }\n\n    return fetch(url, {\n      credentials: \"same-origin\",\n      headers: { Accept: \"application/json\" }\n    })\n      .then(function (response) {\n        return response.ok ? response.json() : null;\n      })\n      .then(function (payload) {\n        var rows = payload && Array.isArray(payload.variants) ? payload.variants : [];\n\n        rows.forEach(function (row) {\n          var rec = normalizeRecord(row);\n          if (rec.variantId > 0) {\n            cache[rec.variantId] = { time: Date.now(), record: rec };\n            out[rec.variantId] = rec;\n          }\n        });\n\n        return out;\n      })\n      .catch(function () {\n        return out;\n      });\n  }\n\n  function run() {\n    var targets = collectTargets();\n    var variantIds = [];\n\n    if (!targets.length) {\n      return;\n    }\n\n    targets.forEach(function (target) {\n      if (variantIds.indexOf(target.variantId) < 0) {\n        variantIds.push(target.variantId);\n      }\n    });\n\n    return fetchRecords(variantIds).then(function (records) {\n      targets.forEach(function (target) {\n        var rec = records[target.variantId];\n        var status;\n\n        if (!rec) {\n          return;\n        }\n\n        status = buildStatus(rec);\n\n        applyBadgeStatus(target.node, status);\n      });\n    });\n  }\n\n  function schedule(delay) {\n    window.clearTimeout(timer);\n    timer = window.setTimeout(function () {\n      if (inflight) {\n        return;\n      }\n\n      inflight = true;\n      Promise.resolve()\n        .then(run)\n        .finally(function () {\n          inflight = false;\n        });\n    }, Math.max(0, Number(delay || 0)));\n  }\n\n  document.addEventListener(\"change\", function (event) {\n    if (event.target && event.target.closest && event.target.closest(\"form[action*='/cart/add']\")) {\n      schedule(80);\n    }\n  });\n\n  [\"variant:change\", \"variant:changed\", \"product:variant-change\", \"theme:variant:change\"].forEach(function (eventName) {\n    document.addEventListener(eventName, function () {\n      schedule(80);\n    });\n  });\n\n  new MutationObserver(function () {\n    schedule(180);\n  }).observe(document.documentElement, {\n    childList: true,\n    subtree: true\n  });\n\n  schedule(0);\n  window.setTimeout(function () { schedule(0); }, 300);\n  window.setTimeout(function () { schedule(0); }, 900);\n})();\n\n(function () {\n  var ON_ORDER_TEXT = String(\n    document.documentElement.getAttribute(\"lang\") || navigator.language || \"en\"\n  ).toLowerCase().indexOf(\"zh\") === 0 ? \"\\u8a02\\u8cfc\\u4e2d\" : \"On order\";\n  var STORAGE_PREFIX = \"bbb_eta_theme_dispatch_v1:\";\n  var STORE_TTL_MS = 10 * 60 * 1000;\n  var timer = 0;\n\n  if (!/\\/products\\//.test(window.location.pathname || \"\")) {\n    return;\n  }\n\n  function normalizeText(value) {\n    return String(value || \"\").replace(/\\s+/g, \" \").trim();\n  }\n\n  function currentVariantId() {\n    var urlVariant = Number(new URLSearchParams(window.location.search || \"\").get(\"variant\") || 0);\n    var formVariant = Number(\n      document.querySelector(\"form[action*='/cart/add'] [name='id']\") &&\n      document.querySelector(\"form[action*='/cart/add'] [name='id']\").value\n    );\n    return formVariant > 0 ? formVariant : urlVariant;\n  }\n\n  function readStoredDispatch(variantId) {\n    if (!(variantId > 0)) {\n      return \"\";\n    }\n\n    try {\n      var raw = window.sessionStorage.getItem(STORAGE_PREFIX + variantId);\n      var parsed = raw ? JSON.parse(raw) : null;\n      if (!parsed || Date.now() - Number(parsed.t || 0) > STORE_TTL_MS) {\n        window.sessionStorage.removeItem(STORAGE_PREFIX + variantId);\n        return \"\";\n      }\n      return normalizeText(parsed.text);\n    } catch (_) {\n      return \"\";\n    }\n  }\n\n  function writeStoredDispatch(variantId, text) {\n    var clean = normalizeText(text);\n    if (!(variantId > 0) || !clean) {\n      return;\n    }\n\n    try {\n      window.sessionStorage.setItem(\n        STORAGE_PREFIX + variantId,\n        JSON.stringify({ t: Date.now(), text: clean })\n      );\n    } catch (_) {}\n  }\n\n  function extractDispatchLine(text) {\n    var clean = normalizeText(text);\n    var match;\n\n    if (!clean) {\n      return \"\";\n    }\n\n    match = clean.match(/((?:Est\\.?\\s*dispatch|Re-stocking on|\u9810\u8A08\u5BC4\u51FA|\u9810\u8A08\u88DC\u8CA8)\\s+\\d{1,2}-[A-Za-z]{3}-\\d{4}.*)$/i);\n    return match && match[1] ? normalizeText(match[1]) : \"\";\n  }\n\n  function isOnOrderLike(text) {\n    return /\\bon\\s*order\\b|\\bpre[\\s-]*order\\b|\u8A02\u8CFC\u4E2D|\u9810\u8CFC/i.test(String(text || \"\"));\n  }\n\n  function findStockHost() {\n    var root = document.querySelector(\".product-form__info-item--stock .product-form__info-content\");\n    if (!root) {\n      return null;\n    }\n\n    return (\n      root.querySelector(\"[data-bbb-eta-stock='1']\") ||\n      root.querySelector(\".product-form__inventory\") ||\n      root.querySelector(\".inventory\")\n    );\n  }\n\n  function normalizeOnOrderBadges() {\n    document.querySelectorAll(\".block-swatch__item-status--on-order\").forEach(function (node) {\n      if (/\\bpre[\\s-]*order\\b|\u9810\u8CFC/i.test(node.textContent || \"\")) {\n        node.textContent = ON_ORDER_TEXT;\n      }\n      node.classList.remove(\"block-swatch__item-status--preorder\");\n    });\n  }\n\n  function normalizeOnOrderStockText(host) {\n    var primary = host && host.querySelector && host.querySelector(\".bbb-eta-stock-primary\");\n    var text = normalizeText(host && host.textContent);\n\n    if (!host || !isOnOrderLike(text)) {\n      return;\n    }\n\n    if (primary && /\\bpre[\\s-]*order\\b|\u9810\u8CFC/i.test(primary.textContent || \"\")) {\n      primary.textContent = ON_ORDER_TEXT;\n      return;\n    }\n\n    if (\n      /\\bpre[\\s-]*order\\b|\u9810\u8CFC/i.test(text) &&\n      !host.querySelector(\".bbb-eta-stock-eta\") &&\n      host.children.length === 0\n    ) {\n      host.textContent = ON_ORDER_TEXT;\n    }\n  }\n\n  function ensureDispatchLine(host, dispatchText) {\n    var clean = normalizeText(dispatchText);\n    var realEta;\n    var heldEta;\n\n    if (!host || !clean) {\n      return;\n    }\n\n    realEta = Array.prototype.slice\n      .call(host.querySelectorAll(\".bbb-eta-stock-eta\"))\n      .filter(function (node) {\n        return !node.classList.contains(\"bbb-eta-theme-held-dispatch\");\n      })[0];\n    heldEta = host.querySelector(\".bbb-eta-theme-held-dispatch\");\n\n    if (realEta && normalizeText(realEta.textContent)) {\n      realEta.style.visibility = \"\";\n      realEta.style.display = \"\";\n      if (heldEta) {\n        heldEta.remove();\n      }\n      return;\n    }\n\n    if (realEta) {\n      realEta.textContent = clean;\n      realEta.style.visibility = \"\";\n      realEta.style.display = \"\";\n      realEta.removeAttribute(\"aria-hidden\");\n      if (heldEta) {\n        heldEta.remove();\n      }\n      return;\n    }\n\n    if (normalizeText(host.textContent).indexOf(clean) >= 0) {\n      return;\n    }\n\n    if (!heldEta) {\n      heldEta = document.createElement(\"div\");\n      heldEta.className = \"bbb-eta-stock-eta bbb-eta-theme-held-dispatch\";\n      host.appendChild(heldEta);\n    }\n\n    heldEta.textContent = clean;\n    heldEta.style.visibility = \"\";\n    heldEta.style.display = \"\";\n  }\n\n  function run() {\n    var host = findStockHost();\n    var variantId = currentVariantId();\n    var text = normalizeText(host && host.textContent);\n    var dispatchText = extractDispatchLine(text);\n    var storedText;\n    var onOrderLike;\n\n    normalizeOnOrderBadges();\n\n    if (!host) {\n      return;\n    }\n\n    normalizeOnOrderStockText(host);\n\n    if (dispatchText) {\n      writeStoredDispatch(variantId, dispatchText);\n    }\n\n    storedText = readStoredDispatch(variantId);\n    onOrderLike =\n      isOnOrderLike(text) ||\n      host.getAttribute(\"data-bbb-eta-preorder\") === \"1\" ||\n      host.classList.contains(\"product-form__inventory--on-order\") ||\n      host.classList.contains(\"product-form__inventory--preorder\");\n\n    if (onOrderLike) {\n      ensureDispatchLine(host, dispatchText || storedText);\n    }\n  }\n\n  function schedule(delay) {\n    window.clearTimeout(timer);\n    timer = window.setTimeout(run, Math.max(0, Number(delay || 0)));\n  }\n\n  [\"change\", \"variant:change\", \"variant:changed\", \"product:variant-change\", \"theme:variant:change\"].forEach(function (eventName) {\n    document.addEventListener(eventName, function () {\n      schedule(0);\n      window.setTimeout(function () { schedule(0); }, 120);\n      window.setTimeout(function () { schedule(0); }, 400);\n    });\n  });\n\n  new MutationObserver(function () {\n    schedule(80);\n  }).observe(document.documentElement, {\n    childList: true,\n    subtree: true,\n    characterData: true\n  });\n\n  schedule(0);\n  window.setTimeout(function () { schedule(0); }, 300);\n  window.setTimeout(function () { schedule(0); }, 900);\n  window.setTimeout(function () { schedule(0); }, 1800);\n})();\n\n(function () {\n  \"use strict\";\n\n  var STYLE_ID = \"bbb-product-audio-fallback-style\";\n  var GRAPHQL_VERSION = \"2026-04\";\n\n  function productHandleFromPath() {\n    var match = String(window.location.pathname || \"\").match(/(?:^|\\/)products\\/([^/?#]+)/);\n    return match && match[1] ? decodeURIComponent(match[1]) : \"\";\n  }\n\n  function storefrontToken() {\n    var node = document.getElementById(\"shopify-features\");\n    if (!node) return \"\";\n\n    try {\n      var payload = JSON.parse(node.textContent || \"{}\");\n      return String(payload.accessToken || \"\");\n    } catch (_) {\n      return \"\";\n    }\n  }\n\n  function normalizeAudioUrl(metafield) {\n    var value = metafield && metafield.value;\n    if (!value) return \"\";\n\n    if (metafield.type === \"json\") {\n      try {\n        var parsed = JSON.parse(value);\n        if (typeof parsed === \"string\") value = parsed;\n        else if (parsed && typeof parsed.url === \"string\") value = parsed.url;\n      } catch (_) {}\n    }\n\n    value = String(value || \"\").trim();\n    return /^(https?:)?\\/\\//i.test(value) ? value : \"\";\n  }\n\n  function fetchAudioUrl(handle, token) {\n    return fetch(\"/api/\" + GRAPHQL_VERSION + \"/graphql.json\", {\n      method: \"POST\",\n      credentials: \"same-origin\",\n      cache: \"no-store\",\n      headers: {\n        \"Content-Type\": \"application/json\",\n        \"X-Shopify-Storefront-Access-Token\": token\n      },\n      body: JSON.stringify({\n        query: \"query($handle:String!){ product(handle:$handle){ metafield(namespace:\\\"custom\\\", key:\\\"audio_url\\\"){ type value } } }\",\n        variables: { handle: handle }\n      })\n    })\n      .then(function (response) { return response.ok ? response.json() : null; })\n      .then(function (payload) {\n        return normalizeAudioUrl(payload && payload.data && payload.data.product && payload.data.product.metafield);\n      })\n      .catch(function () { return \"\"; });\n  }\n\n  function ensureStyles() {\n    if (document.getElementById(STYLE_ID)) return;\n\n    var style = document.createElement(\"style\");\n    style.id = STYLE_ID;\n    style.textContent = [\n      \".bbb-pdp-audio-overlay{display:none!important;pointer-events:none!important}\",\n      \".bbb-product-review-audio-row{display:flex;align-items:center;flex-wrap:wrap;gap:5px 9px;margin-top:2px;margin-bottom:2px}\",\n      \".bbb-product-review-audio-row [data-bbb-review][data-mode='badge'],.bbb-product-review-audio-row .product-meta__reviews-badge{display:inline-flex!important;align-items:center!important;width:auto!important;margin:0!important}\",\n      \".bbb-product-audio-host{display:inline-flex;align-items:center;vertical-align:middle;margin-top:2px}\",\n      \".product-meta>.bbb-product-audio-host{margin-top:6px}\",\n      \".bbb-product-audio.bbb-product-audio--inline{position:relative!important;top:auto!important;left:auto!important;z-index:1!important;--bbb-audio-progress:0%;width:auto!important;height:auto!important;max-width:100%!important;display:inline-flex!important;align-items:center!important;gap:5px!important;color:var(--text-color)!important;background:transparent!important;box-shadow:none!important;border-radius:0!important;overflow:visible!important;pointer-events:auto!important;vertical-align:middle!important;font-family:var(--text-font-family,inherit)!important;font-style:var(--text-font-style,inherit)!important;font-weight:var(--text-font-weight,inherit)!important;line-height:1.2!important}\",\n      \".bbb-product-audio.bbb-product-audio--inline[data-open='1']{width:auto!important;height:auto!important;background:transparent!important;box-shadow:none!important}\",\n      \".bbb-product-audio.bbb-product-audio--inline .bbb-product-audio__button{position:relative!important;width:18px!important;height:18px!important;min-width:18px!important;border:0!important;border-radius:999px!important;padding:0!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;color:#fff!important;background:#333333!important;box-shadow:0 3px 9px rgba(51,51,51,.14)!important;-webkit-backdrop-filter:saturate(170%) blur(10px)!important;backdrop-filter:saturate(170%) blur(10px)!important;cursor:pointer!important;font-size:0!important;line-height:0!important;-webkit-appearance:none!important;appearance:none!important}\",\n      \".bbb-product-audio.bbb-product-audio--inline .bbb-product-audio__button:hover,.bbb-product-audio.bbb-product-audio--inline .bbb-product-audio__button:focus-visible{background:#3d3d3d!important;outline:none!important}\",\n      \".bbb-product-audio.bbb-product-audio--inline .bbb-product-audio__symbol{position:absolute!important;left:50%!important;top:50%!important;display:block!important;pointer-events:none!important}\",\n      \".bbb-product-audio.bbb-product-audio--inline .bbb-product-audio__symbol--play{color:#ffbd00!important;width:0!important;height:0!important;border-top:4px solid transparent!important;border-bottom:4px solid transparent!important;border-left:7px solid currentColor!important;border-radius:1.5px!important;transform:translate(-38%,-50%)!important}\",\n      \".bbb-product-audio.bbb-product-audio--inline .bbb-product-audio__symbol--pause{width:7px!important;height:8px!important;transform:translate(-50%,-50%)!important}\",\n      \".bbb-product-audio.bbb-product-audio--inline .bbb-product-audio__symbol--pause:before,.bbb-product-audio.bbb-product-audio--inline .bbb-product-audio__symbol--pause:after{content:\\\"\\\"!important;position:absolute!important;top:0!important;width:2.3px!important;height:8px!important;border-radius:999px!important;background:currentColor!important}\",\n      \".bbb-product-audio.bbb-product-audio--inline .bbb-product-audio__symbol--pause:before{left:0!important}\",\n      \".bbb-product-audio.bbb-product-audio--inline .bbb-product-audio__symbol--pause:after{right:0!important}\",\n      \".bbb-product-audio.bbb-product-audio--inline .bbb-product-audio__label{display:inline-block!important;color:var(--text-color)!important;font-family:var(--text-font-family,inherit)!important;font-style:var(--text-font-style,inherit)!important;font-size:calc(var(--base-text-font-size) - (var(--default-text-font-size) - 14px))!important;font-weight:var(--text-font-weight,inherit)!important;line-height:1.2!important;white-space:nowrap!important}\",\n      \".bbb-product-audio.bbb-product-audio--inline[data-open='1'] .bbb-product-audio__label{display:none!important}\",\n      \".bbb-product-audio.bbb-product-audio--inline .bbb-product-audio__details{width:74px!important;min-width:74px!important;height:18px!important;display:none!important;align-items:center!important;padding:0 7px!important;border-radius:999px!important;background:#333333!important;box-shadow:0 3px 9px rgba(51,51,51,.14)!important;-webkit-backdrop-filter:saturate(170%) blur(10px)!important;backdrop-filter:saturate(170%) blur(10px)!important;opacity:1!important;transform:none!important;pointer-events:none!important}\",\n      \".bbb-product-audio.bbb-product-audio--inline[data-open='1'] .bbb-product-audio__details{display:flex!important;pointer-events:auto!important}\",\n      \".bbb-product-audio.bbb-product-audio--inline .bbb-product-audio__time{display:none!important}\",\n      \".bbb-product-audio.bbb-product-audio--inline .bbb-product-audio__track{position:relative!important;flex:1 1 auto!important;width:100%!important;height:3px!important;border-radius:999px!important;background:rgba(255,255,255,.36)!important;cursor:pointer!important;overflow:hidden!important}\",\n      \".bbb-product-audio.bbb-product-audio--inline .bbb-product-audio__track:before{content:\\\"\\\"!important;position:absolute!important;inset:0 auto 0 0!important;width:var(--bbb-audio-progress)!important;border-radius:inherit!important;background:#fff!important}\",\n      \".bbb-product-audio.bbb-product-audio--inline .bbb-product-audio__track:focus-visible{outline:2px solid rgba(255,189,0,.45)!important;outline-offset:3px!important}\",\n      \".bbb-product-audio.bbb-product-audio--inline .bbb-product-audio__audio{display:none!important}\"\n    ].join(\"\");\n    document.head.appendChild(style);\n  }\n\n  function firstVisible(elements) {\n    return Array.prototype.slice.call(elements).find(function (element) {\n      return element instanceof HTMLElement && !element.hidden && (element.offsetParent || element.getClientRects().length);\n    });\n  }\n\n  function productScope(element) {\n    return element && element.closest && element.closest(\"[data-section-type='product']\") || document.querySelector(\"section[data-section-type='product']\") || document;\n  }\n\n  function findReviewBadge(scope) {\n    return firstVisible(scope.querySelectorAll(\"[data-bbb-review][data-mode='badge'], .product-meta__reviews-badge\"));\n  }\n\n  function ensureReviewAudioRow(badge) {\n    if (!badge || !badge.parentNode) return null;\n\n    var row = badge.closest(\".bbb-product-review-audio-row\");\n    if (row) return row;\n\n    row = document.createElement(\"div\");\n    row.className = \"bbb-product-review-audio-row\";\n    badge.parentNode.insertBefore(row, badge);\n    row.appendChild(badge);\n    return row;\n  }\n\n  function productAudioInlineHost() {\n    var section = document.querySelector(\"section[data-section-type='product']\") || document;\n    var existing = section.querySelector(\"[data-bbb-product-audio-host]\");\n    if (existing) return existing;\n\n    var host = document.createElement(\"span\");\n    host.className = \"bbb-product-audio-host\";\n    host.setAttribute(\"data-bbb-product-audio-host\", \"\");\n\n    var badge = findReviewBadge(section);\n    if (badge) {\n      var row = ensureReviewAudioRow(badge);\n      if (row) {\n        row.appendChild(host);\n        return host;\n      }\n    }\n\n    var anchor = firstVisible(section.querySelectorAll(\".product-meta__subtitle, .product-meta__title, .ProductMeta__Subtitle, .ProductMeta__Title, .product__subtitle, .product__title, .product-single__title, .product-info__title, h1\"));\n    if (anchor && anchor.parentNode) {\n      anchor.insertAdjacentElement(\"afterend\", host);\n      return host;\n    }\n\n    return null;\n  }\n\n  function placeAudioWithReview(root) {\n    if (!root) return;\n    var host = root.closest(\"[data-bbb-product-audio-host]\");\n    if (!host) return;\n\n    var scope = productScope(host);\n    var badge = findReviewBadge(scope);\n    if (!badge || host.contains(badge)) return;\n\n    var row = ensureReviewAudioRow(badge);\n    if (row && host.parentNode !== row) {\n      row.appendChild(host);\n    }\n  }\n\n  function setIcon(button, isPlaying) {\n    button.innerHTML = isPlaying\n      ? '<span class=\"bbb-product-audio__symbol bbb-product-audio__symbol--pause\" aria-hidden=\"true\"></span>'\n      : '<span class=\"bbb-product-audio__symbol bbb-product-audio__symbol--play\" aria-hidden=\"true\"></span>';\n    button.setAttribute(\"aria-label\", isPlaying ? \"Pause audio\" : \"Play audio sample\");\n    button.setAttribute(\"title\", isPlaying ? \"Pause audio\" : \"Play audio sample\");\n  }\n\n  function ensureRepairStyles() {\n    if (document.getElementById(\"bbb-product-audio-v2-repair-style\")) return;\n    var style = document.createElement(\"style\");\n    style.id = \"bbb-product-audio-v2-repair-style\";\n    style.textContent = [\n      \".bbb-product-audio.bbb-product-audio--inline{position:relative!important;top:auto!important;left:auto!important;width:auto!important;height:auto!important;display:inline-flex!important;align-items:center!important;gap:5px!important;color:var(--text-color)!important;background:transparent!important;box-shadow:none!important;border-radius:0!important;overflow:visible!important}\",\n      \".bbb-product-audio.bbb-product-audio--inline[data-open='1']{width:auto!important;height:auto!important;background:transparent!important;box-shadow:none!important}\",\n      \".bbb-product-audio.bbb-product-audio--inline .bbb-product-audio__button{position:relative!important;color:#fff!important;background:#333333!important;box-shadow:0 3px 9px rgba(51,51,51,.14)!important;width:18px!important;height:18px!important;min-width:18px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;padding:0!important;line-height:0!important}\",\n      \".bbb-product-audio__button svg[data-bbb-audio-icon]{display:none!important}\",\n      \".bbb-product-audio.bbb-product-audio--inline .bbb-product-audio__symbol{position:absolute!important;left:50%!important;top:50%!important;display:block!important;pointer-events:none!important}\",\n      \".bbb-product-audio.bbb-product-audio--inline .bbb-product-audio__symbol--play{color:#ffbd00!important;width:0!important;height:0!important;border-top:4px solid transparent!important;border-bottom:4px solid transparent!important;border-left:7px solid currentColor!important;border-radius:1.5px!important;transform:translate(-38%,-50%)!important}\",\n      \".bbb-product-audio.bbb-product-audio--inline .bbb-product-audio__symbol--pause{width:7px!important;height:8px!important;transform:translate(-50%,-50%)!important}\",\n      \".bbb-product-audio.bbb-product-audio--inline .bbb-product-audio__symbol--pause:before,.bbb-product-audio.bbb-product-audio--inline .bbb-product-audio__symbol--pause:after{content:\\\"\\\"!important;position:absolute!important;top:0!important;width:2.3px!important;height:8px!important;border-radius:999px!important;background:currentColor!important}\",\n      \".bbb-product-audio.bbb-product-audio--inline .bbb-product-audio__symbol--pause:before{left:0!important}\",\n      \".bbb-product-audio.bbb-product-audio--inline .bbb-product-audio__symbol--pause:after{right:0!important}\",\n      \".bbb-product-audio.bbb-product-audio--inline .bbb-product-audio__label{display:inline-block!important;color:var(--text-color)!important;font-size:calc(var(--base-text-font-size) - (var(--default-text-font-size) - 14px))!important;line-height:1.2!important;white-space:nowrap!important}\",\n      \".bbb-product-audio.bbb-product-audio--inline[data-open='1'] .bbb-product-audio__label{display:none!important}\",\n      \".bbb-product-audio.bbb-product-audio--inline .bbb-product-audio__details{width:74px!important;min-width:74px!important;height:18px!important;display:none!important;align-items:center!important;padding:0 7px!important;border-radius:999px!important;background:#333333!important;box-shadow:0 3px 9px rgba(51,51,51,.14)!important;opacity:1!important;transform:none!important;pointer-events:none!important}\",\n      \".bbb-product-audio.bbb-product-audio--inline[data-open='1'] .bbb-product-audio__details{display:flex!important;pointer-events:auto!important}\",\n      \".bbb-product-audio.bbb-product-audio--inline .bbb-product-audio__time{display:none!important}\",\n      \".bbb-product-audio.bbb-product-audio--inline .bbb-product-audio__track{position:relative!important;flex:1 1 auto!important;width:100%!important;height:3px!important;border-radius:999px!important;background:rgba(255,255,255,.36)!important;cursor:pointer!important;overflow:hidden!important}\",\n      \".bbb-product-audio.bbb-product-audio--inline .bbb-product-audio__track:before{background:#fff!important}\",\n      \".bbb-pdp-audio-overlay{display:none!important;pointer-events:none!important}\"\n    ].join(\"\");\n    document.head.appendChild(style);\n  }\n\n  function repairAudioRoot(root) {\n    if (!root) return;\n    ensureRepairStyles();\n    var button = root.querySelector(\"[data-bbb-product-audio-button]\");\n    var audio = root.querySelector(\"audio\");\n    if (!button) return;\n    var isPlaying = !!(audio && !audio.paused && !audio.ended);\n    var expectedSelector = isPlaying ? \".bbb-product-audio__symbol--pause\" : \".bbb-product-audio__symbol--play\";\n    if (!button.querySelector(expectedSelector) || button.querySelector(\"[data-bbb-audio-icon]\")) {\n      setIcon(button, isPlaying);\n    }\n    placeAudioWithReview(root);\n  }\n\n  function repairAllAudioControls() {\n    document.querySelectorAll(\"[data-bbb-product-audio]\").forEach(function (root) {\n      bindAudioRepair(root);\n      repairAudioRoot(root);\n    });\n  }\n\n  function scheduleAudioRepair(root) {\n    repairAudioRoot(root);\n    window.setTimeout(function () { repairAudioRoot(root); }, 0);\n    window.setTimeout(function () { repairAudioRoot(root); }, 80);\n  }\n\n  function bindAudioRepair(root) {\n    if (!root || root.getAttribute(\"data-bbb-product-audio-v2-repair\") === \"1\") return;\n    root.setAttribute(\"data-bbb-product-audio-v2-repair\", \"1\");\n    var audio = root.querySelector(\"audio\");\n    if (!audio) return;\n    [\"loadedmetadata\", \"play\", \"pause\", \"ended\"].forEach(function (eventName) {\n      audio.addEventListener(eventName, function () {\n        scheduleAudioRepair(root);\n      });\n    });\n  }\n\n  function formatTime(value) {\n    var seconds = Math.max(0, Math.floor(Number(value) || 0));\n    return Math.floor(seconds / 60) + \":\" + String(seconds % 60).padStart(2, \"0\");\n  }\n\n  function openAudio(root, button) {\n    root.setAttribute(\"data-open\", \"1\");\n    button.setAttribute(\"aria-expanded\", \"true\");\n    var details = root.querySelector(\".bbb-product-audio__details\");\n    if (details) details.setAttribute(\"aria-hidden\", \"false\");\n  }\n\n  function collapseAudio(root) {\n    if (!root) return;\n    root.setAttribute(\"data-open\", \"0\");\n    var button = root.querySelector(\"[data-bbb-product-audio-button]\");\n    var details = root.querySelector(\".bbb-product-audio__details\");\n    if (button) button.setAttribute(\"aria-expanded\", \"false\");\n    if (details) details.setAttribute(\"aria-hidden\", \"true\");\n  }\n\n  function syncProgress(root, audio) {\n    var current = root.querySelector(\"[data-bbb-product-audio-current]\");\n    var duration = root.querySelector(\"[data-bbb-product-audio-duration]\");\n    var track = root.querySelector(\"[data-bbb-product-audio-track]\");\n    var total = Number.isFinite(audio.duration) ? audio.duration : 0;\n    var now = Number.isFinite(audio.currentTime) ? audio.currentTime : 0;\n    var percent = total > 0 ? Math.max(0, Math.min(100, now / total * 100)) : 0;\n\n    root.style.setProperty(\"--bbb-audio-progress\", percent + \"%\");\n    if (current) current.textContent = formatTime(now);\n    if (duration) duration.textContent = total > 0 ? formatTime(total) : \"--:--\";\n    if (track) track.setAttribute(\"aria-valuenow\", String(Math.round(percent)));\n  }\n\n  function seekFromClientX(track, audio, clientX) {\n    if (!track || !Number.isFinite(audio.duration) || audio.duration <= 0) return;\n    var rect = track.getBoundingClientRect();\n    var ratio = Math.max(0, Math.min(1, (clientX - rect.left) / rect.width));\n    audio.currentTime = ratio * audio.duration;\n  }\n\n  function handleDelegatedAudioClick(event) {\n    var button = event.target && event.target.closest && event.target.closest(\"[data-bbb-product-audio-button]\");\n    var track = !button && event.target && event.target.closest && event.target.closest(\"[data-bbb-product-audio-track]\");\n    var control = button || track;\n    if (!control) return;\n\n    var root = control.closest(\"[data-bbb-product-audio]\");\n    if (!root) return;\n\n    var audio = root.querySelector(\"audio\");\n    var activeButton = root.querySelector(\"[data-bbb-product-audio-button]\");\n    if (!audio || !activeButton) return;\n\n    event.preventDefault();\n    event.stopImmediatePropagation();\n    openAudio(root, activeButton);\n\n    if (track) {\n      seekFromClientX(track, audio, event.clientX);\n      return;\n    }\n\n    if (!audio.paused) {\n      audio.pause();\n      return;\n    }\n\n    audio.play().catch(function () {});\n  }\n\n  function injectAudio(url) {\n    var host = productAudioInlineHost();\n    if (!host || !url || host.querySelector(\"[data-bbb-product-audio]\")) return false;\n\n    ensureStyles();\n\n    var root = document.createElement(\"span\");\n    root.className = \"bbb-product-audio bbb-product-audio--inline\";\n    root.setAttribute(\"data-bbb-product-audio\", \"\");\n    root.setAttribute(\"data-open\", \"0\");\n    root.innerHTML = [\n      '<button class=\"bbb-product-audio__button\" type=\"button\" aria-label=\"Play audio sample\" aria-expanded=\"false\" data-bbb-product-audio-button>',\n      '<span class=\"bbb-product-audio__symbol bbb-product-audio__symbol--play\" aria-hidden=\"true\"></span>',\n      '</button>',\n      '<span class=\"bbb-product-audio__label\">Audio sample</span>',\n      '<span class=\"bbb-product-audio__details\" aria-hidden=\"true\">',\n      '<span class=\"bbb-product-audio__time\"><span data-bbb-product-audio-current>0:00</span><span>/</span><span data-bbb-product-audio-duration>--:--</span></span>',\n      '<span class=\"bbb-product-audio__track\" role=\"slider\" aria-label=\"Audio progress\" aria-valuemin=\"0\" aria-valuemax=\"100\" aria-valuenow=\"0\" tabindex=\"0\" data-bbb-product-audio-track></span>',\n      '</span>',\n      '<audio class=\"bbb-product-audio__audio\" preload=\"metadata\"></audio>'\n    ].join(\"\");\n\n    var button = root.querySelector(\"button\");\n    var audio = root.querySelector(\"audio\");\n    var track = root.querySelector(\"[data-bbb-product-audio-track]\");\n    audio.src = url;\n\n    [\"click\", \"mousedown\", \"mouseup\", \"pointerdown\", \"touchstart\"].forEach(function (eventName) {\n      root.addEventListener(eventName, function (event) { event.stopPropagation(); }, true);\n    });\n\n    button.addEventListener(\"click\", function (event) {\n      event.preventDefault();\n      event.stopPropagation();\n      openAudio(root, button);\n      if (!audio.paused) {\n        audio.pause();\n        return;\n      }\n      audio.play().catch(function () {});\n    });\n\n    if (track) {\n      track.addEventListener(\"click\", function (event) {\n        event.preventDefault();\n        event.stopPropagation();\n        openAudio(root, button);\n        seekFromClientX(track, audio, event.clientX);\n      });\n\n      track.addEventListener(\"keydown\", function (event) {\n        var step = event.shiftKey ? 15 : 5;\n        if (event.key !== \"ArrowLeft\" && event.key !== \"ArrowRight\") return;\n        event.preventDefault();\n        openAudio(root, button);\n        audio.currentTime = Math.max(0, Math.min(Number(audio.duration) || 0, audio.currentTime + (event.key === \"ArrowRight\" ? step : -step)));\n      });\n    }\n\n    audio.addEventListener(\"loadedmetadata\", function () { syncProgress(root, audio); });\n    audio.addEventListener(\"durationchange\", function () { syncProgress(root, audio); });\n    audio.addEventListener(\"timeupdate\", function () { syncProgress(root, audio); });\n    audio.addEventListener(\"play\", function () {\n      root.setAttribute(\"data-playing\", \"1\");\n      openAudio(root, button);\n      setIcon(button, true);\n      syncProgress(root, audio);\n    });\n    audio.addEventListener(\"pause\", function () {\n      root.setAttribute(\"data-playing\", \"0\");\n      setIcon(button, false);\n      syncProgress(root, audio);\n    });\n    audio.addEventListener(\"ended\", function () {\n      root.setAttribute(\"data-playing\", \"0\");\n      setIcon(button, false);\n      syncProgress(root, audio);\n    });\n\n    syncProgress(root, audio);\n\n    host.appendChild(root);\n    placeAudioWithReview(root);\n    return true;\n  }\n\n  function initProductAudioFallback() {\n    if (document.querySelector(\"[data-bbb-product-audio]\")) {\n      document.querySelectorAll(\"[data-bbb-product-audio]\").forEach(function (root) {\n        bindAudioRepair(root);\n        scheduleAudioRepair(root);\n        placeAudioWithReview(root);\n      });\n      return;\n    }\n\n    var handle = productHandleFromPath();\n    var token = storefrontToken();\n    if (!handle || !token) return;\n\n    fetchAudioUrl(handle, token).then(function (url) {\n      if (!url) return;\n      injectAudio(url);\n      repairAllAudioControls();\n      window.setTimeout(function () { injectAudio(url); }, 500);\n      window.setTimeout(function () { injectAudio(url); }, 1500);\n      window.setTimeout(repairAllAudioControls, 1600);\n    });\n  }\n\n  if (!window.__BBB_PRODUCT_AUDIO_DELEGATE__) {\n    window.__BBB_PRODUCT_AUDIO_DELEGATE__ = true;\n    document.addEventListener(\"click\", handleDelegatedAudioClick, true);\n  }\n\n  document.readyState === \"loading\"\n    ? document.addEventListener(\"DOMContentLoaded\", initProductAudioFallback)\n    : initProductAudioFallback();\n  repairAllAudioControls();\n  window.setTimeout(repairAllAudioControls, 120);\n  window.setTimeout(repairAllAudioControls, 800);\n\n  document.addEventListener(\"product:rerender\", initProductAudioFallback);\n  document.addEventListener(\"shopify:section:load\", initProductAudioFallback);\n  document.addEventListener(\"click\", function (event) {\n    if (event.target && event.target.closest && event.target.closest(\"[data-bbb-product-audio]\")) return;\n    document.querySelectorAll(\"[data-bbb-product-audio]\").forEach(collapseAudio);\n  });\n  document.addEventListener(\"keyup\", function (event) {\n    if (event.key !== \"Escape\") return;\n    document.querySelectorAll(\"[data-bbb-product-audio]\").forEach(collapseAudio);\n  });\n})();\n"],
  "mappings": "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",
  "names": []
}
