{
  "version": 3,
  "sources": ["/cdn/shop/t/40/assets/privacy-banner.js?bt_rev=20260728_local_consent"],
  "sourcesContent": ["(() => {\n  const root = document.documentElement;\n  const localConsentKey = 'bt-local-privacy-dismissed';\n  const isLocalPreview = /^(localhost|127\\.0\\.0\\.1|10\\.\\d+\\.\\d+\\.\\d+|192\\.168\\.\\d+\\.\\d+|172\\.(1[6-9]|2\\d|3[01])\\.\\d+\\.\\d+)$/\n    .test(window.location.hostname);\n\n  // Shopify's native consent cookie can be rejected on an HTTP LAN preview\n  // because secure cookies require HTTPS. Remember only the local preview\n  // dismissal; production consent remains entirely controlled by Shopify.\n  if (isLocalPreview) {\n    const hideLocalPrivacyUi = () => {\n      let dismissed = false;\n      try {\n        dismissed = localStorage.getItem(localConsentKey) === 'true';\n      } catch (_error) {\n        return;\n      }\n      if (!dismissed) return;\n\n      document.querySelectorAll('#shopify-pc__banner, #shopify-pc__prefs').forEach((dialog) => {\n        dialog.style.setProperty('display', 'none', 'important');\n      });\n    };\n\n    document.addEventListener('click', (event) => {\n      const target = event.target instanceof Element ? event.target : null;\n      const button = target?.closest('#shopify-pc__banner button, #shopify-pc__prefs button');\n      if (!button) return;\n\n      const decisionLabel = [\n        button.id,\n        button.getAttribute('name'),\n        button.getAttribute('aria-label'),\n        button.textContent,\n      ].filter(Boolean).join(' ').toLowerCase();\n\n      if (!/(accept|agree|decline|reject|save|confirm)/.test(decisionLabel)) return;\n\n      try {\n        localStorage.setItem(localConsentKey, 'true');\n      } catch (_error) {\n        return;\n      }\n      window.setTimeout(hideLocalPrivacyUi, 0);\n    });\n\n    hideLocalPrivacyUi();\n    new MutationObserver(hideLocalPrivacyUi).observe(root, {\n      childList: true,\n      subtree: true,\n    });\n  }\n\n  // Visual-viewport compensation is only needed inside Shopify's scaled\n  // theme-editor preview. On a real mobile browser the visual viewport moves\n  // as browser chrome expands/collapses, so applying these values storefront-\n  // wide makes fixed elements visibly readjust while the customer scrolls.\n  if (!root.classList.contains('shopify-design-mode')) return;\n\n  const updateVisualViewport = () => {\n    const viewport = window.visualViewport;\n    const hasWidthMismatch = Boolean(\n      viewport\n      && viewport.width + 1 < window.innerWidth\n    );\n    const hasHeightMismatch = Boolean(\n      viewport\n      && viewport.height * 1.2 < window.innerHeight\n    );\n    const usesNarrowVisualViewport = Boolean(\n      viewport\n      && viewport.width < 768\n      && (hasWidthMismatch || hasHeightMismatch)\n    );\n\n    root.classList.toggle('shopify-visual-mobile-viewport', usesNarrowVisualViewport);\n\n    if (!usesNarrowVisualViewport) return;\n\n    const bottomOffset = window.innerHeight - viewport.height - viewport.offsetTop;\n\n    root.style.setProperty('--shopify-visual-viewport-width', `${viewport.width}px`);\n    root.style.setProperty('--shopify-visual-viewport-height', `${viewport.height}px`);\n    root.style.setProperty('--shopify-visual-viewport-left', `${viewport.offsetLeft}px`);\n    root.style.setProperty('--shopify-visual-viewport-top', `${viewport.offsetTop}px`);\n    root.style.setProperty('--shopify-visual-viewport-bottom', `${bottomOffset}px`);\n  };\n\n  updateVisualViewport();\n  requestAnimationFrame(updateVisualViewport);\n  window.addEventListener('load', updateVisualViewport);\n  window.setTimeout(updateVisualViewport, 250);\n  window.addEventListener('resize', updateVisualViewport);\n  window.visualViewport?.addEventListener('resize', updateVisualViewport);\n  window.visualViewport?.addEventListener('scroll', updateVisualViewport);\n})();\n"],
  "mappings": "CAAC,IAAM,CACL,MAAM,KAAO,SAAS,gBAChB,gBAAkB,6BAOxB,GANuB,oGACpB,KAAK,OAAO,SAAS,QAAQ,EAKZ,CAClB,MAAM,mBAAqB,IAAM,CAC/B,IAAI,UAAY,GAChB,GAAI,CACF,UAAY,aAAa,QAAQ,eAAe,IAAM,MACxD,MAAiB,CACf,MACF,CACK,WAEL,SAAS,iBAAiB,yCAAyC,EAAE,QAAS,QAAW,CACvF,OAAO,MAAM,YAAY,UAAW,OAAQ,WAAW,CACzD,CAAC,CACH,EAEA,SAAS,iBAAiB,QAAU,OAAU,CAE5C,MAAM,QADS,MAAM,kBAAkB,QAAU,MAAM,OAAS,OACzC,QAAQ,uDAAuD,EACtF,GAAI,CAAC,OAAQ,OAEb,MAAM,cAAgB,CACpB,OAAO,GACP,OAAO,aAAa,MAAM,EAC1B,OAAO,aAAa,YAAY,EAChC,OAAO,WACT,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG,EAAE,YAAY,EAExC,GAAK,6CAA6C,KAAK,aAAa,EAEpE,IAAI,CACF,aAAa,QAAQ,gBAAiB,MAAM,CAC9C,MAAiB,CACf,MACF,CACA,OAAO,WAAW,mBAAoB,CAAC,EACzC,CAAC,EAED,mBAAmB,EACnB,IAAI,iBAAiB,kBAAkB,EAAE,QAAQ,KAAM,CACrD,UAAW,GACX,QAAS,EACX,CAAC,CACH,CAMA,GAAI,CAAC,KAAK,UAAU,SAAS,qBAAqB,EAAG,OAErD,MAAM,qBAAuB,IAAM,CACjC,MAAM,SAAW,OAAO,eAClB,iBAAmB,GACvB,UACG,SAAS,MAAQ,EAAI,OAAO,YAE3B,kBAAoB,GACxB,UACG,SAAS,OAAS,IAAM,OAAO,aAE9B,yBAA2B,GAC/B,UACG,SAAS,MAAQ,MAChB,kBAAoB,oBAK1B,GAFA,KAAK,UAAU,OAAO,iCAAkC,wBAAwB,EAE5E,CAAC,yBAA0B,OAE/B,MAAM,aAAe,OAAO,YAAc,SAAS,OAAS,SAAS,UAErE,KAAK,MAAM,YAAY,kCAAmC,GAAG,SAAS,KAAK,IAAI,EAC/E,KAAK,MAAM,YAAY,mCAAoC,GAAG,SAAS,MAAM,IAAI,EACjF,KAAK,MAAM,YAAY,iCAAkC,GAAG,SAAS,UAAU,IAAI,EACnF,KAAK,MAAM,YAAY,gCAAiC,GAAG,SAAS,SAAS,IAAI,EACjF,KAAK,MAAM,YAAY,mCAAoC,GAAG,YAAY,IAAI,CAChF,EAEA,qBAAqB,EACrB,sBAAsB,oBAAoB,EAC1C,OAAO,iBAAiB,OAAQ,oBAAoB,EACpD,OAAO,WAAW,qBAAsB,GAAG,EAC3C,OAAO,iBAAiB,SAAU,oBAAoB,EACtD,OAAO,gBAAgB,iBAAiB,SAAU,oBAAoB,EACtE,OAAO,gBAAgB,iBAAiB,SAAU,oBAAoB,CACxE,GAAG",
  "names": []
}
