{
  "version": 3,
  "sources": ["/cdn/shop/t/30/assets/theme-commerce-20260616-mobile-ui.js?cb=seo-geo-locale-20261003"],
  "sourcesContent": ["(function () {\n  function storefrontText(english) {\n    if ((document.documentElement.lang || '').split('-')[0] !== 'es') return english;\n    var labels = {'Add to Cart': 'A\u00F1adir al carrito', 'Adding...': 'A\u00F1adiendo...', 'Added': 'A\u00F1adido', 'Checkout': 'Finalizar compra', 'Remove': 'Eliminar', 'Subtotal': 'Subtotal', 'Your cart is empty': 'Tu carrito est\u00E1 vac\u00EDo', 'Return to shop': 'Volver a la tienda', 'Loading cart...': 'Cargando el carrito...', 'Unable to load cart.': 'No se puede cargar el carrito.', 'Open cart drawer': 'Abrir el carrito'};\n    return labels[english] || english;\n  }\n  function storefrontUrl(path) {\n    var root = (window.Shopify && window.Shopify.routes && window.Shopify.routes.root) || '/';\n    return root.replace(/\\/?$/, '/') + path.replace(/^\\//, '');\n  }\n  function localizeCartDrawer() {\n    if (!cartDrawerBody) return;\n    cartDrawerBody.querySelectorAll('strong,span,button,a').forEach(function (element) {\n      if (element.children.length === 0) element.textContent = storefrontText(element.textContent.trim());\n    });\n  }\n  function ensureMobileAccountDrawer() {\n    if (document.querySelector(\"[data-account-drawer]\")) return;\n\n    var accountLinks = Array.prototype.slice.call(document.querySelectorAll(\"a[href$='/account'], a[href*='/account?'], a[href*='customer_authentication/redirect']\"));\n    if (!accountLinks.length) return;\n\n    accountLinks.forEach(function (link) {\n      link.setAttribute(\"aria-controls\", \"MobileAccountDrawer\");\n      link.setAttribute(\"data-account-drawer-open\", \"\");\n    });\n\n    var overlay = document.createElement(\"div\");\n    overlay.className = \"mobile-account-overlay\";\n    overlay.setAttribute(\"data-account-drawer-overlay\", \"\");\n    overlay.hidden = true;\n\n    var drawer = document.createElement(\"aside\");\n    drawer.className = \"mobile-account\";\n    drawer.id = \"MobileAccountDrawer\";\n    drawer.setAttribute(\"aria-hidden\", \"true\");\n    drawer.setAttribute(\"aria-label\", \"Customer account\");\n    drawer.setAttribute(\"data-account-drawer\", \"\");\n    drawer.innerHTML = [\n      '<div class=\"mobile-account__header\">',\n      '<span data-account-title>Log in</span>',\n      '<button class=\"mobile-account__close\" type=\"button\" aria-label=\"Close account panel\" data-account-drawer-close>',\n      '<svg aria-hidden=\"true\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M18 6 6 18\"/><path d=\"m6 6 12 12\"/></svg>',\n      \"</button>\",\n      \"</div>\",\n      '<div class=\"mobile-account__body\">',\n      '<div class=\"mobile-account__view\" data-account-view=\"login\">',\n      '<form method=\"post\" action=\"/account/login\" id=\"MobileCustomerLogin\" class=\"mobile-account__form\">',\n      '<input type=\"hidden\" name=\"form_type\" value=\"customer_login\">',\n      '<input type=\"hidden\" name=\"utf8\" value=\"&#10003;\">',\n      '<label class=\"visually-hidden\" for=\"MobileCustomerEmail\">Email</label>',\n      '<input id=\"MobileCustomerEmail\" class=\"mobile-account__input\" type=\"email\" name=\"customer[email]\" autocomplete=\"email\" autocorrect=\"off\" autocapitalize=\"off\" placeholder=\"Email *\" required>',\n      '<label class=\"visually-hidden\" for=\"MobileCustomerPassword\">Password</label>',\n      '<input id=\"MobileCustomerPassword\" class=\"mobile-account__input\" type=\"password\" name=\"customer[password]\" autocomplete=\"current-password\" placeholder=\"Password *\" required>',\n      '<a class=\"mobile-account__link\" href=\"/account/login#recover\">Forgot your password?</a>',\n      '<button class=\"mobile-account__submit\" type=\"submit\">Sign in</button>',\n      '<button class=\"mobile-account__create mobile-account__switch\" type=\"button\" data-account-mode=\"register\">New customer? Create your account</button>',\n      \"</form>\",\n      \"</div>\",\n      '<div class=\"mobile-account__view\" data-account-view=\"register\" hidden>',\n      '<form method=\"post\" action=\"/account\" id=\"MobileCreateCustomer\" class=\"mobile-account__form\">',\n      '<input type=\"hidden\" name=\"form_type\" value=\"create_customer\">',\n      '<input type=\"hidden\" name=\"utf8\" value=\"&#10003;\">',\n      '<label class=\"visually-hidden\" for=\"MobileCustomerFirstName\">First name</label>',\n      '<input id=\"MobileCustomerFirstName\" class=\"mobile-account__input\" type=\"text\" name=\"customer[first_name]\" autocomplete=\"given-name\" placeholder=\"First name\">',\n      '<label class=\"visually-hidden\" for=\"MobileCustomerLastName\">Last name</label>',\n      '<input id=\"MobileCustomerLastName\" class=\"mobile-account__input\" type=\"text\" name=\"customer[last_name]\" autocomplete=\"family-name\" placeholder=\"Last name\">',\n      '<label class=\"visually-hidden\" for=\"MobileCreateCustomerEmail\">Email</label>',\n      '<input id=\"MobileCreateCustomerEmail\" class=\"mobile-account__input\" type=\"email\" name=\"customer[email]\" autocomplete=\"email\" autocorrect=\"off\" autocapitalize=\"off\" placeholder=\"Email *\" required>',\n      '<label class=\"visually-hidden\" for=\"MobileCreateCustomerPassword\">Password</label>',\n      '<input id=\"MobileCreateCustomerPassword\" class=\"mobile-account__input\" type=\"password\" name=\"customer[password]\" autocomplete=\"new-password\" placeholder=\"Password *\" required>',\n      '<button class=\"mobile-account__submit\" type=\"submit\">Register</button>',\n      '<button class=\"mobile-account__create mobile-account__switch\" type=\"button\" data-account-mode=\"login\">Already have an account? Login here</button>',\n      \"</form>\",\n      \"</div>\",\n      \"</div>\"\n    ].join(\"\");\n\n    document.body.appendChild(overlay);\n    document.body.appendChild(drawer);\n  }\n\n  function normalizeCachedMobileDrawerCopy() {\n    Array.prototype.slice.call(document.querySelectorAll(\".mobile-drawer a[href='/pages/about'], .mobile-drawer a[href$='/pages/about']\")).forEach(function (link) {\n      var label = link.querySelector(\"span:last-child\") || link;\n      label.textContent = \"About iKyoor\";\n    });\n  }\n\n  function ensureMobileAccountViews() {\n    var drawer = document.querySelector(\"[data-account-drawer]\");\n    if (!drawer) return;\n\n    var headerTitle = drawer.querySelector(\".mobile-account__header span\");\n    if (headerTitle && !headerTitle.hasAttribute(\"data-account-title\")) {\n      headerTitle.setAttribute(\"data-account-title\", \"\");\n    }\n\n    var body = drawer.querySelector(\".mobile-account__body\");\n    if (!body) return;\n\n    var loginView = drawer.querySelector(\"[data-account-view='login']\");\n    if (!loginView) {\n      var loginForm = body.querySelector(\"#MobileCustomerLogin, .mobile-account__form\");\n      if (loginForm) {\n        loginView = document.createElement(\"div\");\n        loginView.className = \"mobile-account__view\";\n        loginView.setAttribute(\"data-account-view\", \"login\");\n        loginForm.parentNode.insertBefore(loginView, loginForm);\n        loginView.appendChild(loginForm);\n      }\n    }\n\n    Array.prototype.slice.call(drawer.querySelectorAll(\".mobile-account__create\")).forEach(function (button) {\n      var text = (button.textContent || \"\").toLowerCase();\n      button.classList.add(\"mobile-account__switch\");\n      button.setAttribute(\"data-account-mode\", text.indexOf(\"already\") !== -1 || text.indexOf(\"login\") !== -1 ? \"login\" : \"register\");\n      if (button.tagName.toLowerCase() === \"a\") {\n        button.setAttribute(\"href\", \"#\");\n        button.setAttribute(\"role\", \"button\");\n      }\n    });\n\n    if (drawer.querySelector(\"[data-account-view='register']\")) return;\n\n    body.insertAdjacentHTML(\"beforeend\", [\n      '<div class=\"mobile-account__view\" data-account-view=\"register\" hidden>',\n      '<form method=\"post\" action=\"/account\" id=\"MobileCreateCustomer\" class=\"mobile-account__form\">',\n      '<input type=\"hidden\" name=\"form_type\" value=\"create_customer\">',\n      '<input type=\"hidden\" name=\"utf8\" value=\"&#10003;\">',\n      '<label class=\"visually-hidden\" for=\"MobileCustomerFirstName\">First name</label>',\n      '<input id=\"MobileCustomerFirstName\" class=\"mobile-account__input\" type=\"text\" name=\"customer[first_name]\" autocomplete=\"given-name\" placeholder=\"First name\">',\n      '<label class=\"visually-hidden\" for=\"MobileCustomerLastName\">Last name</label>',\n      '<input id=\"MobileCustomerLastName\" class=\"mobile-account__input\" type=\"text\" name=\"customer[last_name]\" autocomplete=\"family-name\" placeholder=\"Last name\">',\n      '<label class=\"visually-hidden\" for=\"MobileCreateCustomerEmail\">Email</label>',\n      '<input id=\"MobileCreateCustomerEmail\" class=\"mobile-account__input\" type=\"email\" name=\"customer[email]\" autocomplete=\"email\" autocorrect=\"off\" autocapitalize=\"off\" placeholder=\"Email *\" required>',\n      '<label class=\"visually-hidden\" for=\"MobileCreateCustomerPassword\">Password</label>',\n      '<input id=\"MobileCreateCustomerPassword\" class=\"mobile-account__input\" type=\"password\" name=\"customer[password]\" autocomplete=\"new-password\" placeholder=\"Password *\" required>',\n      '<button class=\"mobile-account__submit\" type=\"submit\">Register</button>',\n      '<button class=\"mobile-account__create mobile-account__switch\" type=\"button\" data-account-mode=\"login\">Already have an account? Login here</button>',\n      \"</form>\",\n      \"</div>\"\n    ].join(\"\"));\n  }\n\n  function ensureDesktopCommerceSurfaces() {\n    Array.prototype.slice.call(document.querySelectorAll(\".header-actions a[href*='/search'], .mobile-bottom-nav a[href*='/search'], .mobile-drawer__quick a[href*='/search']\")).forEach(function (link) {\n      link.setAttribute(\"aria-controls\", \"SearchModal\");\n      link.setAttribute(\"data-search-modal-open\", \"\");\n    });\n\n    Array.prototype.slice.call(document.querySelectorAll(\".header-actions a[href*='#wishlist'], .mobile-bottom-nav a[href*='#wishlist']\")).forEach(function (link) {\n      link.setAttribute(\"aria-controls\", \"WishlistDrawer\");\n      link.setAttribute(\"data-wishlist-drawer-open\", \"\");\n    });\n\n    Array.prototype.slice.call(document.querySelectorAll(\".header-actions a[href*='/cart'], .mobile-bottom-nav a[href*='/cart']\")).forEach(function (link) {\n      link.setAttribute(\"aria-controls\", \"CartDrawer\");\n      link.setAttribute(\"data-cart-drawer-open\", \"\");\n    });\n\n    Array.prototype.slice.call(document.querySelectorAll(\".header-actions a[href*='customer_authentication/redirect'], .header-actions a[href*='/account']\")).forEach(function (link) {\n      link.setAttribute(\"aria-controls\", \"AccountModal\");\n      link.setAttribute(\"data-account-modal-open\", \"\");\n    });\n\n    if (!document.querySelector(\"[data-ui-overlay]\")) {\n      var overlay = document.createElement(\"div\");\n      overlay.className = \"desktop-ui-overlay\";\n      overlay.setAttribute(\"data-ui-overlay\", \"\");\n      overlay.hidden = true;\n      document.body.appendChild(overlay);\n    }\n\n    if (!document.querySelector(\"[data-search-modal]\")) {\n      var searchNode = document.createElement(\"div\");\n      searchNode.className = \"search-modal\";\n      searchNode.id = \"SearchModal\";\n      searchNode.setAttribute(\"role\", \"dialog\");\n      searchNode.setAttribute(\"aria-modal\", \"true\");\n      searchNode.setAttribute(\"aria-hidden\", \"true\");\n      searchNode.setAttribute(\"aria-label\", \"Search products\");\n      searchNode.setAttribute(\"data-search-modal\", \"\");\n      searchNode.hidden = true;\n      searchNode.innerHTML = [\n        '<div class=\"search-modal__panel\">',\n        '<div class=\"search-modal__header\">',\n        \"<span>Search</span>\",\n        '<button class=\"search-modal__close\" type=\"button\" aria-label=\"Close search\" data-search-modal-close>',\n        '<svg aria-hidden=\"true\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M18 6 6 18\"/><path d=\"m6 6 12 12\"/></svg>',\n        \"</button>\",\n        \"</div>\",\n        '<form class=\"search-modal__form\" action=\"/search\" method=\"get\" role=\"search\">',\n        '<label class=\"visually-hidden\" for=\"RuntimeHeaderSearchInput\">Search products</label>',\n        '<input id=\"RuntimeHeaderSearchInput\" class=\"search-modal__input\" type=\"search\" name=\"q\" placeholder=\"Search by model, product, or category\" autocomplete=\"off\" data-search-modal-input>',\n        '<input type=\"hidden\" name=\"type\" value=\"product\">',\n        '<button class=\"search-modal__submit\" type=\"submit\">',\n        '<svg aria-hidden=\"true\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\"><path d=\"m21 21-4.35-4.35\"/><circle cx=\"11\" cy=\"11\" r=\"7\"/></svg>',\n        \"<span>Search</span>\",\n        \"</button>\",\n        \"</form>\",\n        '<div class=\"search-modal__quick\" aria-label=\"Popular searches\">',\n        '<a href=\"/products/ikyoor-heated-neck-shoulder-massager-n366\">N366</a>',\n        '<a href=\"/products/ikyoor-extended-handle-massage-gun-gs40\">GS40</a>',\n        '<a href=\"/collections/neck-and-shoulder-massagers\">Neck massagers</a>',\n        '<a href=\"/collections/foot-and-leg-massagers\">Foot massagers</a>',\n        \"</div>\",\n        \"</div>\"\n      ].join(\"\");\n      document.body.appendChild(searchNode);\n    }\n\n    if (!document.querySelector(\"[data-account-modal]\")) {\n      var accountModalNode = document.createElement(\"div\");\n      accountModalNode.className = \"account-modal\";\n      accountModalNode.id = \"AccountModal\";\n      accountModalNode.setAttribute(\"role\", \"dialog\");\n      accountModalNode.setAttribute(\"aria-modal\", \"true\");\n      accountModalNode.setAttribute(\"aria-hidden\", \"true\");\n      accountModalNode.setAttribute(\"aria-label\", \"Customer account\");\n      accountModalNode.setAttribute(\"data-account-modal\", \"\");\n      accountModalNode.hidden = true;\n      accountModalNode.innerHTML = [\n        '<div class=\"account-modal__header\">',\n        '<h2 data-account-modal-title>Log in</h2>',\n        '<button class=\"account-modal__close\" type=\"button\" aria-label=\"Close account panel\" data-account-modal-close>',\n        '<svg aria-hidden=\"true\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M18 6 6 18\"/><path d=\"m6 6 12 12\"/></svg>',\n        \"</button>\",\n        \"</div>\",\n        '<div class=\"account-modal__body\">',\n        '<div class=\"account-modal__view\" data-desktop-account-view=\"login\">',\n        '<form method=\"post\" action=\"/account/login\" class=\"account-modal__form\">',\n        '<input type=\"hidden\" name=\"form_type\" value=\"customer_login\">',\n        '<input type=\"hidden\" name=\"utf8\" value=\"&#10003;\">',\n        '<input class=\"account-modal__input\" type=\"email\" name=\"customer[email]\" autocomplete=\"email\" placeholder=\"Email *\" required>',\n        '<input class=\"account-modal__input\" type=\"password\" name=\"customer[password]\" autocomplete=\"current-password\" placeholder=\"Password *\" required>',\n        '<a class=\"account-modal__link\" href=\"/account/login#recover\">Forgot your password?</a>',\n        '<button class=\"account-modal__submit\" type=\"submit\">Sign in</button>',\n        '<button class=\"account-modal__switch\" type=\"button\" data-desktop-account-mode=\"register\">New customer? Create your account</button>',\n        \"</form>\",\n        \"</div>\",\n        '<div class=\"account-modal__view\" data-desktop-account-view=\"register\" hidden>',\n        '<form method=\"post\" action=\"/account\" class=\"account-modal__form\">',\n        '<input type=\"hidden\" name=\"form_type\" value=\"create_customer\">',\n        '<input type=\"hidden\" name=\"utf8\" value=\"&#10003;\">',\n        '<input class=\"account-modal__input\" type=\"text\" name=\"customer[first_name]\" autocomplete=\"given-name\" placeholder=\"First name\">',\n        '<input class=\"account-modal__input\" type=\"text\" name=\"customer[last_name]\" autocomplete=\"family-name\" placeholder=\"Last name\">',\n        '<input class=\"account-modal__input\" type=\"email\" name=\"customer[email]\" autocomplete=\"email\" placeholder=\"Email *\" required>',\n        '<input class=\"account-modal__input\" type=\"password\" name=\"customer[password]\" autocomplete=\"new-password\" placeholder=\"Password *\" required>',\n        '<button class=\"account-modal__submit\" type=\"submit\">Register</button>',\n        '<button class=\"account-modal__switch\" type=\"button\" data-desktop-account-mode=\"login\">Already have an account? Login here</button>',\n        \"</form>\",\n        \"</div>\",\n        \"</div>\"\n      ].join(\"\");\n      document.body.appendChild(accountModalNode);\n    }\n\n    if (!document.querySelector(\"[data-wishlist-drawer]\")) {\n      var wishlistNode = document.createElement(\"aside\");\n      wishlistNode.className = \"commerce-drawer\";\n      wishlistNode.id = \"WishlistDrawer\";\n      wishlistNode.setAttribute(\"aria-hidden\", \"true\");\n      wishlistNode.setAttribute(\"aria-label\", \"Wishlist\");\n      wishlistNode.setAttribute(\"data-wishlist-drawer\", \"\");\n      wishlistNode.hidden = true;\n      wishlistNode.innerHTML = [\n        '<div class=\"commerce-drawer__header\">',\n        \"<h2>Your wishlist</h2>\",\n        '<button class=\"commerce-drawer__close\" type=\"button\" aria-label=\"Close wishlist\" data-wishlist-drawer-close>',\n        '<svg aria-hidden=\"true\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M18 6 6 18\"/><path d=\"m6 6 12 12\"/></svg>',\n        \"</button>\",\n        \"</div>\",\n        '<div class=\"commerce-drawer__body\" data-wishlist-drawer-body></div>'\n      ].join(\"\");\n      document.body.appendChild(wishlistNode);\n    }\n\n    if (!document.querySelector(\"[data-cart-drawer]\")) {\n      var cartNode = document.createElement(\"aside\");\n      cartNode.className = \"commerce-drawer\";\n      cartNode.id = \"CartDrawer\";\n      cartNode.setAttribute(\"aria-hidden\", \"true\");\n      cartNode.setAttribute(\"aria-label\", \"Cart\");\n      cartNode.setAttribute(\"data-cart-drawer\", \"\");\n      cartNode.hidden = true;\n      cartNode.innerHTML = [\n        '<div class=\"commerce-drawer__header\">',\n        \"<h2>Your cart</h2>\",\n        '<button class=\"commerce-drawer__close\" type=\"button\" aria-label=\"Close cart\" data-cart-drawer-close>',\n        '<svg aria-hidden=\"true\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M18 6 6 18\"/><path d=\"m6 6 12 12\"/></svg>',\n        \"</button>\",\n        \"</div>\",\n        '<div class=\"commerce-drawer__body\" data-cart-drawer-body></div>'\n      ].join(\"\");\n      document.body.appendChild(cartNode);\n    }\n  }\n\n  ensureMobileAccountDrawer();\n  ensureMobileAccountViews();\n  ensureDesktopCommerceSurfaces();\n  normalizeCachedMobileDrawerCopy();\n\n  var mobileDrawer = document.querySelector(\"[data-mobile-drawer]\");\n  var mobileDrawerOpen = document.querySelector(\"[data-mobile-drawer-open]\");\n  var mobileDrawerClose = document.querySelector(\"[data-mobile-drawer-close]\");\n  var mobileDrawerOverlay = document.querySelector(\"[data-mobile-drawer-overlay]\");\n  var mobileDrawerToggles = Array.prototype.slice.call(document.querySelectorAll(\"[data-mobile-drawer-toggle]\"));\n  var mobileAccountDrawer = document.querySelector(\"[data-account-drawer]\");\n  var mobileAccountOpeners = Array.prototype.slice.call(document.querySelectorAll(\"[data-account-drawer-open]\"));\n  var mobileAccountClose = document.querySelector(\"[data-account-drawer-close]\");\n  var mobileAccountOverlay = document.querySelector(\"[data-account-drawer-overlay]\");\n  var mobileAccountTitle = mobileAccountDrawer ? mobileAccountDrawer.querySelector(\"[data-account-title]\") : null;\n\n  function setMobileAccountMode(mode) {\n    if (!mobileAccountDrawer) return;\n    var nextMode = mode === \"register\" ? \"register\" : \"login\";\n    var views = Array.prototype.slice.call(mobileAccountDrawer.querySelectorAll(\"[data-account-view]\"));\n    views.forEach(function (view) {\n      view.hidden = view.getAttribute(\"data-account-view\") !== nextMode;\n    });\n    if (mobileAccountTitle) {\n      mobileAccountTitle.textContent = nextMode === \"register\" ? \"Create account\" : \"Log in\";\n    }\n    mobileAccountDrawer.setAttribute(\"data-account-active-view\", nextMode);\n  }\n\n  function setMobileDrawerOpen(isOpen) {\n    if (!mobileDrawer) return;\n    mobileDrawer.classList.toggle(\"is-open\", isOpen);\n    mobileDrawer.setAttribute(\"aria-hidden\", String(!isOpen));\n    document.body.classList.toggle(\"mobile-drawer-open\", isOpen);\n\n    if (mobileDrawerOpen) {\n      mobileDrawerOpen.setAttribute(\"aria-expanded\", String(isOpen));\n    }\n\n    if (mobileDrawerOverlay) {\n      mobileDrawerOverlay.hidden = false;\n      mobileDrawerOverlay.classList.toggle(\"is-active\", isOpen);\n      if (!isOpen) {\n        window.setTimeout(function () {\n          if (!mobileDrawer.classList.contains(\"is-open\")) {\n            mobileDrawerOverlay.hidden = true;\n          }\n        }, 220);\n      }\n    }\n\n    if (isOpen && mobileDrawerClose) {\n      mobileDrawerClose.focus();\n    }\n  }\n\n  if (mobileDrawerOpen && mobileDrawer) {\n    mobileDrawerOpen.addEventListener(\"click\", function () {\n      setMobileDrawerOpen(true);\n    });\n  }\n\n  if (mobileDrawerClose) {\n    mobileDrawerClose.addEventListener(\"click\", function () {\n      setMobileDrawerOpen(false);\n      if (mobileDrawerOpen) mobileDrawerOpen.focus();\n    });\n  }\n\n  if (mobileDrawerOverlay) {\n    mobileDrawerOverlay.addEventListener(\"click\", function () {\n      setMobileDrawerOpen(false);\n    });\n  }\n\n  function setMobileAccountOpen(isOpen) {\n    if (!mobileAccountDrawer) return;\n    mobileAccountDrawer.classList.toggle(\"is-open\", isOpen);\n    mobileAccountDrawer.setAttribute(\"aria-hidden\", String(!isOpen));\n    document.body.classList.toggle(\"mobile-account-open\", isOpen);\n\n    mobileAccountOpeners.forEach(function (opener) {\n      opener.setAttribute(\"aria-expanded\", String(isOpen));\n    });\n\n    if (mobileAccountOverlay) {\n      mobileAccountOverlay.hidden = false;\n      mobileAccountOverlay.classList.toggle(\"is-active\", isOpen);\n      if (!isOpen) {\n        window.setTimeout(function () {\n          if (!mobileAccountDrawer.classList.contains(\"is-open\")) {\n            mobileAccountOverlay.hidden = true;\n          }\n        }, 220);\n      }\n    }\n\n    if (isOpen && mobileAccountClose) {\n      mobileAccountClose.focus();\n    }\n  }\n\n  mobileAccountOpeners.forEach(function (opener) {\n    opener.addEventListener(\"click\", function (event) {\n      if (isMobileViewport()) {\n        event.preventDefault();\n        setMobileAccountMode(opener.getAttribute(\"data-account-open-mode\") || \"login\");\n        setMobileDrawerOpen(false);\n        setMobileAccountOpen(true);\n        return;\n      }\n      if (!accountModal) return;\n      event.preventDefault();\n      setDesktopAccountMode(opener.getAttribute(\"data-account-open-mode\") || \"login\");\n      setMobileDrawerOpen(false);\n      setMobileAccountOpen(false);\n      setAccountModalOpen(true);\n    });\n  });\n\n  document.addEventListener(\"click\", function (event) {\n    var modeButton = event.target.closest(\"[data-account-mode]\");\n    var desktopModeButton = event.target.closest(\"[data-desktop-account-mode]\");\n    if (modeButton) {\n      event.preventDefault();\n      setMobileAccountMode(modeButton.getAttribute(\"data-account-mode\"));\n      return;\n    }\n    if (desktopModeButton) {\n      event.preventDefault();\n      setDesktopAccountMode(desktopModeButton.getAttribute(\"data-desktop-account-mode\"));\n    }\n  });\n\n  if (mobileAccountClose) {\n    mobileAccountClose.addEventListener(\"click\", function () {\n      setMobileAccountOpen(false);\n    });\n  }\n\n  if (mobileAccountOverlay) {\n    mobileAccountOverlay.addEventListener(\"click\", function () {\n      setMobileAccountOpen(false);\n    });\n  }\n\n  if (accountModalClose) {\n    accountModalClose.addEventListener(\"click\", function () {\n      setAccountModalOpen(false);\n    });\n  }\n\n  if (uiOverlay) {\n    uiOverlay.addEventListener(\"click\", closeCommerceSurfaces);\n  }\n\n  mobileDrawerToggles.forEach(function (button) {\n    button.addEventListener(\"click\", function () {\n      var group = button.closest(\"[data-mobile-drawer-group]\");\n      var submenu = group ? group.querySelector(\".mobile-drawer__submenu\") : null;\n      var isExpanded = button.getAttribute(\"aria-expanded\") === \"true\";\n      var nextExpanded = !isExpanded;\n      button.setAttribute(\"aria-expanded\", String(nextExpanded));\n      if (submenu) submenu.hidden = !nextExpanded;\n    });\n  });\n\n  function isMobileViewport() {\n    return window.matchMedia && window.matchMedia(\"(max-width: 680px)\").matches;\n  }\n\n  var uiOverlay = document.querySelector(\"[data-ui-overlay]\");\n  var accountModal = document.querySelector(\"[data-account-modal]\");\n  var accountModalTitle = accountModal ? accountModal.querySelector(\"[data-account-modal-title]\") : null;\n  var accountModalClose = document.querySelector(\"[data-account-modal-close]\");\n  var wishlistDrawer = document.querySelector(\"[data-wishlist-drawer]\");\n  var wishlistDrawerBody = document.querySelector(\"[data-wishlist-drawer-body]\");\n  var wishlistDrawerClose = document.querySelector(\"[data-wishlist-drawer-close]\");\n  var cartDrawer = document.querySelector(\"[data-cart-drawer]\");\n  var cartDrawerBody = document.querySelector(\"[data-cart-drawer-body]\");\n  var cartDrawerClose = document.querySelector(\"[data-cart-drawer-close]\");\n  var searchModal = document.querySelector(\"[data-search-modal]\");\n  var searchModalInput = document.querySelector(\"[data-search-modal-input]\");\n  var searchModalClose = document.querySelector(\"[data-search-modal-close]\");\n  var activeCommerceSurface = null;\n\n  if (accountModalClose) {\n    accountModalClose.addEventListener(\"click\", function () {\n      setAccountModalOpen(false);\n    });\n  }\n\n  if (uiOverlay) {\n    uiOverlay.addEventListener(\"click\", closeCommerceSurfaces);\n  }\n\n  function setSharedOverlayOpen(isOpen) {\n    if (!uiOverlay) return;\n    uiOverlay.hidden = false;\n    uiOverlay.classList.toggle(\"is-active\", isOpen);\n    document.body.classList.toggle(\"ui-overlay-open\", isOpen);\n    if (!isOpen) {\n      window.setTimeout(function () {\n        if (!uiOverlay.classList.contains(\"is-active\")) {\n          uiOverlay.hidden = true;\n        }\n      }, 200);\n    }\n  }\n\n  function closeCommerceSurfaces() {\n    setSearchModalOpen(false, true);\n    setAccountModalOpen(false, true);\n    setWishlistDrawerOpen(false, true);\n    setCartDrawerOpen(false, true);\n    activeCommerceSurface = null;\n    setSharedOverlayOpen(false);\n  }\n\n  function setDesktopAccountMode(mode) {\n    if (!accountModal) return;\n    var nextMode = mode === \"register\" ? \"register\" : \"login\";\n    Array.prototype.slice.call(accountModal.querySelectorAll(\"[data-desktop-account-view]\")).forEach(function (view) {\n      view.hidden = view.getAttribute(\"data-desktop-account-view\") !== nextMode;\n    });\n    if (accountModalTitle) {\n      accountModalTitle.textContent = nextMode === \"register\" ? \"Create account\" : \"Log in\";\n    }\n    accountModal.setAttribute(\"data-account-active-view\", nextMode);\n  }\n\n  function setAccountModalOpen(isOpen, skipOverlay) {\n    if (!accountModal) return;\n    accountModal.hidden = false;\n    accountModal.classList.toggle(\"is-open\", isOpen);\n    accountModal.setAttribute(\"aria-hidden\", String(!isOpen));\n    if (isOpen) {\n      activeCommerceSurface = \"account\";\n      setSearchModalOpen(false, true);\n      setWishlistDrawerOpen(false, true);\n      setCartDrawerOpen(false, true);\n      if (!skipOverlay) setSharedOverlayOpen(true);\n      var firstInput = accountModal.querySelector(\".account-modal__view:not([hidden]) .account-modal__input\");\n      window.setTimeout(function () {\n        (firstInput || accountModalClose || accountModal).focus();\n      }, 50);\n    } else {\n      if (!skipOverlay && activeCommerceSurface === \"account\") {\n        activeCommerceSurface = null;\n        setSharedOverlayOpen(false);\n      }\n      window.setTimeout(function () {\n        if (!accountModal.classList.contains(\"is-open\")) accountModal.hidden = true;\n      }, 200);\n    }\n  }\n\n  function setWishlistDrawerOpen(isOpen, skipOverlay) {\n    if (!wishlistDrawer) return;\n    wishlistDrawer.hidden = false;\n    wishlistDrawer.classList.toggle(\"is-open\", isOpen);\n    wishlistDrawer.setAttribute(\"aria-hidden\", String(!isOpen));\n    if (isOpen) {\n      activeCommerceSurface = \"wishlist\";\n      renderWishlistDrawer();\n      setSearchModalOpen(false, true);\n      setAccountModalOpen(false, true);\n      setCartDrawerOpen(false, true);\n      if (!skipOverlay) setSharedOverlayOpen(true);\n      if (wishlistDrawerClose) wishlistDrawerClose.focus();\n    } else {\n      if (!skipOverlay && activeCommerceSurface === \"wishlist\") {\n        activeCommerceSurface = null;\n        setSharedOverlayOpen(false);\n      }\n      window.setTimeout(function () {\n        if (!wishlistDrawer.classList.contains(\"is-open\")) wishlistDrawer.hidden = true;\n      }, 220);\n    }\n  }\n\n  function setCartDrawerOpen(isOpen, skipOverlay) {\n    if (!cartDrawer) return;\n    cartDrawer.hidden = false;\n    cartDrawer.classList.toggle(\"is-open\", isOpen);\n    cartDrawer.setAttribute(\"aria-hidden\", String(!isOpen));\n    if (isOpen) {\n      activeCommerceSurface = \"cart\";\n      renderCartDrawerLoading();\n      refreshCartDrawer();\n      setSearchModalOpen(false, true);\n      setAccountModalOpen(false, true);\n      setWishlistDrawerOpen(false, true);\n      if (!skipOverlay) setSharedOverlayOpen(true);\n      if (cartDrawerClose) cartDrawerClose.focus();\n    } else {\n      if (!skipOverlay && activeCommerceSurface === \"cart\") {\n        activeCommerceSurface = null;\n        setSharedOverlayOpen(false);\n      }\n      window.setTimeout(function () {\n        if (!cartDrawer.classList.contains(\"is-open\")) cartDrawer.hidden = true;\n      }, 220);\n    }\n  }\n\n  function setSearchModalOpen(isOpen, skipOverlay) {\n    if (!searchModal) return;\n    searchModal.hidden = false;\n    searchModal.classList.toggle(\"is-open\", isOpen);\n    searchModal.setAttribute(\"aria-hidden\", String(!isOpen));\n    if (isOpen) {\n      activeCommerceSurface = \"search\";\n      setAccountModalOpen(false, true);\n      setWishlistDrawerOpen(false, true);\n      setCartDrawerOpen(false, true);\n      setMobileDrawerOpen(false);\n      setMobileAccountOpen(false);\n      if (!skipOverlay) setSharedOverlayOpen(true);\n      window.setTimeout(function () {\n        if (searchModalInput) {\n          searchModalInput.focus();\n          searchModalInput.select();\n        } else if (searchModalClose) {\n          searchModalClose.focus();\n        }\n      }, 60);\n    } else {\n      if (!skipOverlay && activeCommerceSurface === \"search\") {\n        activeCommerceSurface = null;\n        setSharedOverlayOpen(false);\n      }\n      window.setTimeout(function () {\n        if (!searchModal.classList.contains(\"is-open\")) searchModal.hidden = true;\n      }, 200);\n    }\n  }\n\n  document.querySelectorAll(\"[data-search-modal-open]\").forEach(function (opener) {\n    opener.addEventListener(\"click\", function (event) {\n      if (!searchModal) return;\n      event.preventDefault();\n      setSearchModalOpen(true);\n    });\n  });\n\n  if (searchModalClose) {\n    searchModalClose.addEventListener(\"click\", function () {\n      setSearchModalOpen(false);\n    });\n  }\n\n  function escapeHtml(value) {\n    return String(value || \"\")\n      .replace(/&/g, \"&amp;\")\n      .replace(/</g, \"&lt;\")\n      .replace(/>/g, \"&gt;\")\n      .replace(/\"/g, \"&quot;\");\n  }\n\n  function formatMoney(cents) {\n    if (window.Shopify && typeof window.Shopify.formatMoney === \"function\") {\n      return window.Shopify.formatMoney(cents);\n    }\n    var amount = (Number(cents || 0) / 100).toFixed(2);\n    return \"$\" + amount;\n  }\n\n  function emptyIcon(name) {\n    if (name === \"heart\") {\n      return '<svg aria-hidden=\"true\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\"><path d=\"M20.8 5.6c-1.7-2-4.8-2.1-6.7-.2L12 7.5 9.9 5.4C8 3.5 4.9 3.6 3.2 5.6c-1.6 1.9-1.5 4.8.3 6.6L12 20l8.5-7.8c1.8-1.8 1.9-4.7.3-6.6Z\"/><path d=\"m15 9-6 6\"/><path d=\"m9 9 6 6\"/></svg>';\n    }\n    return '<svg aria-hidden=\"true\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\"><path d=\"M6 6h15l-2 9H8L6 6Z\"/><path d=\"M6 6 5 3H2\"/><circle cx=\"9\" cy=\"20\" r=\"1\"/><circle cx=\"18\" cy=\"20\" r=\"1\"/><path d=\"m10 10 5 5\"/><path d=\"m15 10-5 5\"/></svg>';\n  }\n\n  function injectMobileCacheFixStyles() {\n    if (document.getElementById(\"ikyoor-mobile-cache-fix\")) return;\n    var style = document.createElement(\"style\");\n    style.id = \"ikyoor-mobile-cache-fix\";\n    style.textContent = [\n      \"@media (max-width: 980px){\",\n      \".mobile-drawer{width:min(82vw,320px)!important;background:linear-gradient(180deg,#009f9a 0%,#007a75 100%)!important;color:#fff!important;box-shadow:18px 0 42px rgba(16,24,23,.22)!important;}\",\n      \".mobile-drawer__header{grid-template-columns:1fr 52px!important;min-height:52px!important;background:rgba(255,255,255,.13)!important;font-size:.8rem!important;letter-spacing:.1em!important;text-transform:uppercase!important;border-bottom:1px solid rgba(255,255,255,.14)!important;}\",\n      \".mobile-drawer__close{background:rgba(255,255,255,.04)!important;border-left:1px solid rgba(255,255,255,.12)!important;color:#fff!important;}\",\n      \".mobile-drawer__close svg{width:20px!important;height:20px!important;}\",\n      \".mobile-drawer__nav{padding:14px 14px calc(82px + env(safe-area-inset-bottom))!important;background:transparent!important;}\",\n      \".mobile-drawer__home{margin-bottom:12px!important;}\",\n      \".mobile-drawer__section{gap:6px!important;margin-bottom:18px!important;}\",\n      \".mobile-drawer__section h3{margin:4px 0 5px!important;color:#fff!important;font-size:.82rem!important;letter-spacing:.08em!important;text-transform:uppercase!important;}\",\n      \".mobile-drawer__item,.mobile-drawer__section a{display:flex!important;align-items:center!important;gap:9px!important;min-height:38px!important;border-radius:12px!important;padding:6px 8px!important;color:rgba(255,255,255,.88)!important;font-size:.88rem!important;font-weight:660!important;line-height:1.2!important;}\",\n      \".mobile-drawer__icon{display:inline-grid!important;width:27px!important;height:27px!important;flex:0 0 27px!important;place-items:center!important;border:1px solid rgba(255,255,255,.22)!important;border-radius:9px!important;background:rgba(255,255,255,.15)!important;color:#fff!important;}\",\n      \".mobile-drawer__icon svg{width:15px!important;height:15px!important;}\",\n      \".mobile-drawer__submenu{padding-left:26px!important;}\",\n      \".mobile-drawer__submenu .mobile-drawer__subitem{gap:10px!important;}\",\n      \".mobile-drawer__submenu .mobile-drawer__icon{width:34px!important;height:34px!important;flex-basis:34px!important;border-radius:12px!important;}\",\n      \".mobile-drawer__submenu .mobile-drawer__icon svg{width:18px!important;height:18px!important;}\",\n      \".mobile-drawer__quick{display:none!important;}\",\n      \"body.mobile-account-open .mobile-bottom-nav{display:none!important;}\",\n      \".mobile-account-overlay{position:fixed!important;inset:0!important;z-index:2147483050!important;display:block!important;background:rgba(16,24,23,.58)!important;opacity:0!important;visibility:hidden!important;transition:opacity 180ms ease,visibility 180ms ease!important;}\",\n      \".mobile-account-overlay.is-active{opacity:1!important;visibility:visible!important;}\",\n      \".mobile-account{position:fixed!important;top:0!important;right:0!important;bottom:0!important;z-index:2147483100!important;width:min(90vw,420px)!important;display:grid!important;grid-template-rows:auto 1fr!important;background:#fff!important;color:#101817!important;box-shadow:-18px 0 42px rgba(16,24,23,.2)!important;transform:translateX(105%)!important;transition:transform 220ms ease!important;}\",\n      \".mobile-account.is-open{transform:translateX(0)!important;}\",\n      \".mobile-account__header{display:grid!important;grid-template-columns:1fr 64px!important;min-height:62px!important;border-bottom:1px solid #e5e9e5!important;text-transform:uppercase!important;font-size:1.28rem!important;font-weight:500!important;}\",\n      \".mobile-account__header span{display:flex!important;align-items:center!important;padding-left:clamp(22px,7vw,34px)!important;}\",\n      \".mobile-account__close{display:grid!important;place-items:center!important;border:0!important;border-left:1px solid #edf0ed!important;background:#fff!important;color:#101817!important;}\",\n      \".mobile-account__body{overflow-y:auto!important;-webkit-overflow-scrolling:touch!important;padding:clamp(26px,7vw,40px)!important;}\",\n      \".mobile-account__view[hidden]{display:none!important;}\",\n      \".mobile-account__form{display:grid!important;gap:16px!important;}\",\n      \".mobile-account__input{width:100%!important;min-height:56px!important;border:1px solid #d8dfda!important;border-radius:999px!important;background:#fff!important;padding:0 22px!important;color:#101817!important;font:inherit!important;font-size:1rem!important;}\",\n      \".mobile-account__submit{min-height:58px!important;border:0!important;border-radius:999px!important;background:linear-gradient(135deg,#008f89 0%,#00cfc7 100%)!important;color:#fff!important;font:inherit!important;font-size:1.05rem!important;font-weight:850!important;box-shadow:0 10px 24px rgba(0,159,154,.2)!important;}\",\n      \".mobile-account__link,.mobile-account__create,.mobile-account__switch{width:fit-content!important;color:rgba(16,24,23,.62)!important;text-decoration:underline!important;text-underline-offset:4px!important;font-size:.98rem!important;font-weight:500!important;}\",\n      \".mobile-account__switch{appearance:none!important;border:0!important;background:transparent!important;padding:0!important;text-align:left!important;cursor:pointer!important;}\",\n      \"}\",\n      \"@media (max-width: 680px){\",\n      \"body{padding-bottom:calc(58px + env(safe-area-inset-bottom))!important;}\",\n      \".site-header .brand__logo--primary{display:none!important;}\",\n      \".site-header .brand__logo--mobile{display:block!important;width:auto!important;max-width:min(154px,42vw)!important;height:38px!important;max-height:38px!important;object-fit:contain!important;mix-blend-mode:multiply!important;}\",\n      \".home-carousel__slide{aspect-ratio:9/16!important;min-height:0!important;max-height:none!important;background:#f7f5ef!important;}\",\n      \".home-carousel__image{width:100%!important;height:100%!important;object-fit:cover!important;object-position:center!important;}\",\n      \".home-carousel__arrow{display:none!important;}\",\n      \".home-carousel__controls{bottom:10px!important;}\",\n      \".home-carousel__dots{gap:5px!important;padding:5px 8px!important;}\",\n      \".home-carousel__dot{width:20px!important;height:3px!important;}\",\n      \".header-actions a[aria-label='Account'],.header-actions a[aria-label='Wishlist']{display:none!important;}\",\n      \".hero__actions,.template-index .trust-icons-section,.template-index .support-band,.template-index .support-band--mobile-hidden,.template-index .hero__badges,.site-footer{display:none!important;}\",\n      \".category-tile .button,.product-card__footer,.template-index .about-brand{display:none!important;}\",\n      \".product-card__kicker{display:none!important;}\",\n      \".product-card__text{display:-webkit-box!important;overflow:hidden!important;-webkit-box-orient:vertical!important;-webkit-line-clamp:2!important;min-height:2.35em!important;font-size:.86rem!important;line-height:1.18!important;}\",\n      \".collection-tools{gap:10px!important;margin-bottom:18px!important;padding:10px!important;border-radius:10px!important;}\",\n      \".filter-pills{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important;}\",\n      \".filter-pills .pill{justify-content:center!important;min-height:36px!important;padding:6px 10px!important;font-size:.82rem!important;line-height:1.1!important;text-align:center!important;}\",\n      \".filter-pills .pill:first-child{grid-column:1/-1!important;}\",\n      \".collection-tools .field{min-height:40px!important;padding:9px 12px!important;font-size:.86rem!important;}\",\n      \".newsletter{gap:14px!important;padding:18px!important;}\",\n      \".newsletter h2{font-size:clamp(1.45rem,8vw,1.9rem)!important;line-height:1.08!important;}\",\n      \".newsletter .lede{font-size:.95rem!important;line-height:1.5!important;}\",\n      \".newsletter form{gap:8px!important;}\",\n      \".newsletter .field,.newsletter .button{min-height:44px!important;}\",\n      \".video-promo__frame{aspect-ratio:16/9!important;}\",\n      \".video-promo__controls{right:8px!important;bottom:8px!important;gap:5px!important;opacity:0!important;transform:translateY(4px)!important;transition:opacity 180ms ease,transform 180ms ease!important;}\",\n      \".video-promo__frame.is-controls-visible .video-promo__controls,.video-promo__frame:focus-within .video-promo__controls{opacity:1!important;transform:translateY(0)!important;}\",\n      \".video-promo__control{min-width:34px!important;min-height:34px!important;padding:0 9px!important;gap:4px!important;font-size:.68rem!important;box-shadow:0 8px 18px rgba(16,24,23,.2)!important;}\",\n      \".video-promo__control svg{width:15px!important;height:15px!important;flex-basis:15px!important;}\",\n      \".video-promo__control--sound{min-width:34px!important;}\",\n      \".video-promo__control--sound span{display:none!important;}\",\n      \"body.template-product{padding-bottom:calc(106px + env(safe-area-inset-bottom))!important;}\",\n      \".product-sticky-atc{right:6px!important;left:6px!important;bottom:calc(55px + env(safe-area-inset-bottom))!important;display:grid!important;grid-template-columns:minmax(0,1fr) 96px 116px!important;align-items:center!important;min-height:48px!important;padding:5px!important;gap:4px!important;border-radius:14px!important;overflow:hidden!important;}\",\n      \".product-sticky-atc__info{grid-column:1!important;min-width:0!important;max-width:100%!important;gap:5px!important;overflow:hidden!important;}\",\n      \".product-sticky-atc__info>div{min-width:0!important;overflow:hidden!important;}\",\n      \".product-sticky-atc__info img{width:30px!important;height:30px!important;border-radius:7px!important;}\",\n      \".product-sticky-atc__info strong{max-width:none!important;overflow:hidden!important;font-size:.64rem!important;line-height:1.05!important;text-overflow:ellipsis!important;white-space:nowrap!important;}\",\n      \".product-sticky-atc__info span{font-size:.7rem!important;line-height:1!important;}\",\n      \".quantity-control--sticky{grid-column:2!important;justify-self:center!important;position:relative!important;z-index:3!important;isolation:isolate!important;grid-template-columns:30px 36px 30px!important;width:96px!important;max-width:96px!important;min-height:32px!important;padding:0!important;gap:0!important;box-sizing:border-box!important;border-radius:999px!important;overflow:hidden!important;}\",\n      \".quantity-control--sticky button,.quantity-control--sticky input{min-height:32px!important;height:32px!important;width:100%!important;min-width:0!important;max-width:100%!important;padding:0!important;font-size:.82rem!important;}\",\n      \"body.template-product .product-sticky-atc .quantity-control.quantity-control--sticky{z-index:4!important;display:grid!important;grid-template-columns:30px 36px 30px!important;width:96px!important;max-width:96px!important;min-width:96px!important;height:32px!important;min-height:32px!important;padding:0!important;gap:0!important;box-sizing:border-box!important;overflow:hidden!important;}\",\n      \"body.template-product .product-sticky-atc .quantity-control.quantity-control--sticky button,body.template-product .product-sticky-atc .quantity-control.quantity-control--sticky input{position:relative!important;z-index:5!important;width:100%!important;min-width:0!important;max-width:100%!important;height:32px!important;min-height:32px!important;padding:0!important;box-sizing:border-box!important;}\",\n      \".product-sticky-atc .button{grid-column:3!important;justify-self:stretch!important;position:relative!important;z-index:1!important;min-width:0!important;width:100%!important;max-width:116px!important;min-height:32px!important;padding:0 6px!important;border-radius:999px!important;font-size:.64rem!important;letter-spacing:0!important;}\",\n      \".whatsapp-float{right:12px!important;bottom:calc(66px + env(safe-area-inset-bottom))!important;width:44px!important;height:44px!important;min-height:44px!important;justify-content:center!important;padding:0!important;}\",\n      \".whatsapp-float span{display:none!important;}\",\n      \".mobile-bottom-nav{position:fixed!important;left:0!important;right:0!important;bottom:0!important;z-index:2147483000!important;display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr))!important;width:100%!important;min-height:calc(48px + env(safe-area-inset-bottom))!important;padding:4px 6px calc(4px + env(safe-area-inset-bottom))!important;border-top:1px solid #dce4df!important;background:rgba(255,255,255,.96)!important;box-shadow:0 -8px 24px rgba(16,24,23,.08)!important;backdrop-filter:blur(10px)!important;}\",\n      \".mobile-bottom-nav__item{position:relative!important;display:grid!important;justify-items:center!important;align-content:center!important;gap:0!important;min-width:0!important;color:#101817!important;font-size:.52rem!important;font-weight:850!important;line-height:1!important;}\",\n      \".mobile-bottom-nav__item svg{width:17px!important;height:17px!important;}\",\n      \".mobile-bottom-nav__item:first-child svg,.mobile-bottom-nav__item--shop svg{width:26px!important;height:26px!important;stroke-width:1.9!important;}\",\n      \".mobile-bottom-nav__item:first-child,.mobile-bottom-nav__item--shop{transform:translateY(-3px)!important;}\",\n      \".mobile-bottom-nav__badge{top:0!important;right:calc(50% - 17px)!important;min-width:13px!important;height:13px!important;font-size:.5rem!important;}\",\n      \"}\"\n    ].join(\"\");\n    document.head.appendChild(style);\n  }\n\n  function mobileCarouselUrl(source) {\n    var replacements = {\n      \"home-carousel-n365.jpg\": \"home-carousel-mobile-n365.jpg\",\n      \"home-carousel-chair.jpg\": \"home-carousel-mobile-chair.jpg\",\n      \"home-carousel-knee-calf.jpg\": \"home-carousel-mobile-knee-calf.jpg\"\n    };\n    var nextSource = source;\n    Object.keys(replacements).forEach(function (oldName) {\n      if (nextSource.indexOf(oldName) !== -1) {\n        nextSource = nextSource.replace(oldName, replacements[oldName]);\n      }\n    });\n    return nextSource;\n  }\n\n  function swapMobileCarouselImages() {\n    if (!isMobileViewport()) return;\n    document.querySelectorAll(\".home-carousel__image\").forEach(function (image) {\n      var currentSource = image.getAttribute(\"src\") || \"\";\n      var nextSource = mobileCarouselUrl(currentSource);\n      if (nextSource && nextSource !== currentSource) {\n        image.setAttribute(\"src\", nextSource);\n        image.removeAttribute(\"srcset\");\n        image.setAttribute(\"width\", \"1080\");\n        image.setAttribute(\"height\", \"1920\");\n      }\n    });\n  }\n\n  function drawerIconName(link) {\n    var text = (link.textContent || \"\").trim().toLowerCase();\n    var href = link.getAttribute(\"href\") || \"\";\n    if (text === \"home\" || href === \"/\") return \"home\";\n    if (text.indexOf(\"all review videos\") !== -1) return \"videoLibrary\";\n    if (text.indexOf(\"foot\") !== -1 || text.indexOf(\"calf\") !== -1) return \"footCalf\";\n    if (text.indexOf(\"neck\") !== -1 || text.indexOf(\"shoulder\") !== -1) return \"neckShoulder\";\n    if (text.indexOf(\"eye\") !== -1) return \"eye\";\n    if (text.indexOf(\"knee\") !== -1) return \"knee\";\n    if (text.indexOf(\"massage gun\") !== -1) return \"massageGun\";\n    if (text.indexOf(\"massagers on sale\") !== -1 || text === \"shop\") return \"shopMassager\";\n    if (text.indexOf(\"chair\") !== -1) return \"chair\";\n    if (text.indexOf(\"best electric\") !== -1 || text.indexOf(\"massager\") !== -1) return \"massage\";\n    if (text.indexOf(\"comparison\") !== -1) return \"comparison\";\n    if (text.indexOf(\"safety\") !== -1) return \"safety\";\n    if (text.indexOf(\"guide\") !== -1) return \"guideBook\";\n    if (text.indexOf(\"all product\") !== -1) return \"grid\";\n    if (text.indexOf(\"contact\") !== -1) return \"mail\";\n    if (text.indexOf(\"catalog\") !== -1) return \"catalog\";\n    if (text.indexOf(\"manual\") !== -1) return \"manual\";\n    if (text.indexOf(\"warranty\") !== -1) return \"shield\";\n    if (text.indexOf(\"faq\") !== -1) return \"questionBubble\";\n    if (text.indexOf(\"track\") !== -1) return \"truck\";\n    if (text.indexOf(\"shipping\") !== -1) return \"parcel\";\n    if (text.indexOf(\"return\") !== -1) return \"refresh\";\n    if (text.indexOf(\"about\") !== -1) return \"building\";\n    if (text.indexOf(\"wholesale\") !== -1) return \"wholesaleBox\";\n    return \"grid\";\n  }\n\n  function drawerIconMarkup(name) {\n    var paths = {\n      home: '<path d=\"M3 10.5 12 3l9 7.5\"/><path d=\"M5 10v10h14V10\"/><path d=\"M9.5 20v-6h5v6\"/>',\n      chair: '<path d=\"M7 4h10v7a5 5 0 0 1-10 0V4Z\"/><path d=\"M6 13h12l-1.5 7h-9L6 13Z\"/><path d=\"M9 20v2M15 20v2\"/>',\n      massage: '<path d=\"M5.5 8.5h10a3.5 3.5 0 0 1 0 7h-10a3.5 3.5 0 0 1 0-7Z\"/><path d=\"M8 10.5v3\"/><path d=\"M11 10.5v3\"/><path d=\"M14 10.5v3\"/><path d=\"M18.8 10.5v3\"/><path d=\"M19 12h2\"/>',\n      shopMassager: '<path d=\"M5 9h14l-1.2 10.5H6.2L5 9Z\"/><path d=\"M9 9a3 3 0 0 1 6 0\"/><path d=\"M8.5 14h5.8a2.3 2.3 0 0 1 0 4.6H8.5a2.3 2.3 0 0 1 0-4.6Z\"/><path d=\"M16.8 15.4v1.8\"/>',\n      videoLibrary: '<rect x=\"4\" y=\"5\" width=\"16\" height=\"14\" rx=\"3\"/><path d=\"m10 9 5 3-5 3Z\"/><path d=\"M7 19v2h10v-2\"/>',\n      footCalf: '<path d=\"M5 10.5h14a2.5 2.5 0 0 1 2.5 2.5v3.5A4.5 4.5 0 0 1 17 21H7a4.5 4.5 0 0 1-4.5-4.5V13A2.5 2.5 0 0 1 5 10.5Z\"/><path d=\"M7 10.5V8a3 3 0 0 1 3-3h4a3 3 0 0 1 3 3v2.5\"/><path d=\"M8 14.2h8\"/><path d=\"M8.5 17.2h7\"/><path d=\"M10 5.5c.7 1 1.3 2.1 1.3 3.2M14 5.5c-.7 1-1.3 2.1-1.3 3.2\"/>',\n      neckShoulder: '<path d=\"M6 5c3 2.4 9 2.4 12 0\"/><path d=\"M7 6v7a5 5 0 0 0 10 0V6\"/><path d=\"M7 13H4.8A2.8 2.8 0 0 0 2 15.8V18\"/><path d=\"M17 13h2.2a2.8 2.8 0 0 1 2.8 2.8V18\"/><path d=\"M10 11h4\"/>',\n      eye: '<path d=\"M3.5 12c2.1-3.1 5-4.7 8.5-4.7s6.4 1.6 8.5 4.7c-2.1 3.1-5 4.7-8.5 4.7S5.6 15.1 3.5 12Z\"/><path d=\"M8.5 12h7\"/><path d=\"M5 10.5V8.2M19 10.5V8.2\"/>',\n      knee: '<path d=\"M8 4h8l2 4v10a3 3 0 0 1-3 3H9a3 3 0 0 1-3-3V8Z\"/><path d=\"M7 9h10\"/><path d=\"M8 15h8\"/><path d=\"M10 5v15M14 5v15\"/>',\n      massageGun: '<path d=\"M5 7h9.5a3 3 0 0 1 0 6H11l-2 7H6l1.5-7H5Z\"/><path d=\"M17.5 9.5H21\"/><path d=\"M9 13h3\"/><path d=\"M7 7V5h5v2\"/>',\n      guideBook: '<path d=\"M5 4h9a3 3 0 0 1 3 3v13H8a3 3 0 0 0-3-3Z\"/><path d=\"M5 4v13\"/><path d=\"M9 8h5M9 12h4\"/><path d=\"M17 7h2v13h-2\"/>',\n      comparison: '<path d=\"M5 6h5v12H5z\"/><path d=\"M14 4h5v16h-5z\"/><path d=\"M3 20h18\"/><path d=\"M7.5 10h.01M16.5 10h.01\"/>',\n      safety: '<path d=\"M12 3 20 6v6c0 5-3.4 8.4-8 9-4.6-.6-8-4-8-9V6z\"/><path d=\"M12 8v4\"/><path d=\"M12 16h.01\"/>',\n      grid: '<rect x=\"4\" y=\"4\" width=\"6\" height=\"6\"/><rect x=\"14\" y=\"4\" width=\"6\" height=\"6\"/><rect x=\"4\" y=\"14\" width=\"6\" height=\"6\"/><rect x=\"14\" y=\"14\" width=\"6\" height=\"6\"/>',\n      mail: '<rect x=\"3\" y=\"5\" width=\"18\" height=\"14\" rx=\"2\"/><path d=\"m4 7 8 6 8-6\"/>',\n      manual: '<path d=\"M6 3h9l3 3v15H6z\"/><path d=\"M14 3v4h4\"/><path d=\"M9 12h6M9 16h6\"/>',\n      catalog: '<path d=\"M5 4h11l3 3v13H5z\"/><path d=\"M16 4v4h4\"/><path d=\"M8 11h8M8 15h8\"/><path d=\"M8 19h5\"/>',\n      shield: '<path d=\"M12 3 20 6v6c0 5-3.4 7.7-8 9-4.6-1.3-8-4-8-9V6z\"/><path d=\"m9 12 2 2 4-5\"/>',\n      questionBubble: '<path d=\"M5 5h14v10H9l-4 4Z\"/><path d=\"M10 9a2.2 2.2 0 0 1 4.2.8c0 1.6-2.2 1.7-2.2 3.2\"/><path d=\"M12 16h.01\"/>',\n      tracking: '<path d=\"M4 17c3-5 8-5 11-2l2 2\"/><path d=\"M14 17h5v-5\"/><path d=\"M7 7h8v6H7z\"/><path d=\"M9 7V5h4v2\"/><circle cx=\"6\" cy=\"18\" r=\"1.6\"/><circle cx=\"18\" cy=\"18\" r=\"1.6\"/>',\n      truck: '<path d=\"M3 6h11v9H3z\"/><path d=\"M14 9h4l3 3v3h-7z\"/><circle cx=\"7\" cy=\"18\" r=\"2\"/><circle cx=\"17\" cy=\"18\" r=\"2\"/>',\n      parcel: '<path d=\"M4 8.5 12 4l8 4.5v9L12 22l-8-4.5Z\"/><path d=\"m4 8.5 8 4.5 8-4.5\"/><path d=\"M12 13v9\"/><path d=\"m8 6.2 8 4.5\"/>',\n      refresh: '<path d=\"M20 7v5h-5\"/><path d=\"M4 17v-5h5\"/><path d=\"M18 12a6 6 0 0 0-10-4.5L4 12\"/><path d=\"M6 12a6 6 0 0 0 10 4.5L20 12\"/>',\n      building: '<path d=\"M4 21V5l8-3 8 3v16\"/><path d=\"M9 21v-5h6v5\"/><path d=\"M8 8h.01M12 8h.01M16 8h.01M8 12h.01M12 12h.01M16 12h.01\"/>',\n      wholesaleBox: '<path d=\"M4.5 8.5 12 4l7.5 4.5v8.2L12 21l-7.5-4.3Z\"/><path d=\"m4.5 8.5 7.5 4.3 7.5-4.3\"/><path d=\"M12 12.8V21\"/><path d=\"M8.2 6.3 15.8 10.8\"/><path d=\"M8 16.4h3.2\"/><path d=\"M15.5 15.2h2.1\"/><path d=\"M15.5 17.3h2.1\"/>',\n      bag: '<path d=\"M6 8h12l-1 13H7z\"/><path d=\"M9 8a3 3 0 0 1 6 0\"/>'\n\n    };\n    return '<span class=\"mobile-drawer__icon\"><svg aria-hidden=\"true\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">' + (paths[name] || paths.grid) + \"</svg></span>\";\n  }\n\n  function enrichMobileDrawerLinks() {\n    document.querySelectorAll(\".mobile-drawer__home, .mobile-drawer__section a\").forEach(function (link) {\n      link.classList.add(\"mobile-drawer__item\");\n      if (link.classList.contains(\"mobile-drawer__subitem\")) {\n        if (link.querySelector(\".mobile-drawer__icon\")) return;\n        link.insertAdjacentHTML(\"afterbegin\", drawerIconMarkup(drawerIconName(link)));\n        return;\n      }\n      if (link.querySelector(\".mobile-drawer__icon\")) return;\n      link.insertAdjacentHTML(\"afterbegin\", drawerIconMarkup(drawerIconName(link)));\n    });\n  }\n\n  function replaceMobileBottomShopIcon() {\n    var shopLink = document.querySelector(\".mobile-bottom-nav__item[href*='/collections/massagers-on-sale']\");\n    if (!shopLink) return;\n    var label = (shopLink.textContent || \"\").trim().toLowerCase();\n    if (label !== \"shop\") return;\n    var svg = shopLink.querySelector(\"svg\");\n    if (!svg) return;\n    svg.outerHTML = '<svg aria-hidden=\"true\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.9\"><path d=\"M5 9h14l-1.2 10.5H6.2L5 9Z\"/><path d=\"M9 9a3 3 0 0 1 6 0\"/><path d=\"M8.5 14h5.8a2.3 2.3 0 0 1 0 4.6H8.5a2.3 2.3 0 0 1 0-4.6Z\"/><path d=\"M16.8 15.4v1.8\"/></svg>';\n  }\n\n  function normalizeMobileDrawerAboutLink() {\n    var aboutDetails = document.querySelector(\".mobile-drawer__about\");\n    if (!aboutDetails) return;\n    var replacement = document.createElement(\"a\");\n    replacement.className = \"mobile-drawer__item\";\n    replacement.href = \"/pages/about\";\n    replacement.innerHTML = drawerIconMarkup(\"building\") + \"<span>About iKyoor</span>\";\n    aboutDetails.replaceWith(replacement);\n  }\n\n  injectMobileCacheFixStyles();\n  normalizeMobileDrawerAboutLink();\n  swapMobileCarouselImages();\n  enrichMobileDrawerLinks();\n  replaceMobileBottomShopIcon();\n  window.addEventListener(\"resize\", swapMobileCarouselImages);\n\n  var navDropdownItems = Array.prototype.slice.call(document.querySelectorAll(\"[data-nav-item]\"));\n\n  function closeNavDropdowns(exceptItem) {\n    navDropdownItems.forEach(function (item) {\n      if (item === exceptItem) return;\n      item.classList.remove(\"is-open\");\n      var trigger = item.querySelector(\"[data-nav-dropdown-trigger]\");\n      if (trigger) trigger.setAttribute(\"aria-expanded\", \"false\");\n    });\n  }\n\n  navDropdownItems.forEach(function (item) {\n    var trigger = item.querySelector(\"[data-nav-dropdown-trigger]\");\n    if (!trigger) return;\n\n    trigger.addEventListener(\"click\", function (event) {\n      event.preventDefault();\n      event.stopPropagation();\n      var isOpen = item.classList.toggle(\"is-open\");\n      trigger.setAttribute(\"aria-expanded\", String(isOpen));\n      closeNavDropdowns(item);\n    });\n\n    item.addEventListener(\"keydown\", function (event) {\n      if (event.key === \"Escape\") {\n        item.classList.remove(\"is-open\");\n        trigger.setAttribute(\"aria-expanded\", \"false\");\n        trigger.focus();\n      }\n    });\n  });\n\n  document.addEventListener(\"click\", function (event) {\n    if (!event.target.closest(\"[data-nav-item]\")) {\n      closeNavDropdowns();\n    }\n  });\n\n  var collectionAnchorMap = {\n    \"massage-chairs\": \"massage-chairs\",\n    \"flagship-chairs\": \"flagship-chairs\",\n    \"mid-range-chairs\": \"mid-range-chairs\",\n    \"compact-chairs\": \"compact-chairs\",\n    \"commercial-chairs\": \"commercial-chairs\",\n    massagers: \"massagers\",\n    \"neck-shoulder-massagers\": \"neck-shoulder-massagers\",\n    \"eye-massagers\": \"eye-massagers\",\n    \"foot-leg-massagers\": \"foot-leg-massagers\",\n    \"knee-massagers\": \"knee-massagers\",\n    \"massage-guns\": \"massage-guns\",\n    \"massage-cushions\": \"massage-cushions\"\n  };\n\n  function scrollToCollectionAnchor(anchor) {\n    var target = document.getElementById(anchor);\n    if (!target) return false;\n    target.scrollIntoView({ behavior: \"smooth\", block: \"start\" });\n    return true;\n  }\n\n  document.querySelectorAll(\".nav__dropdown a, .mobile-drawer__submenu a, .mobile-drawer__section a\").forEach(function (link) {\n    link.addEventListener(\"click\", function (event) {\n      var url;\n      try {\n        url = new URL(link.getAttribute(\"href\"), window.location.origin);\n      } catch (error) {\n        return;\n      }\n\n      var match = url.pathname.match(/^\\/collections\\/all\\/([^/]+)\\/?$/);\n      var anchor = match ? collectionAnchorMap[match[1]] : collectionAnchorMap[url.hash.replace(\"#\", \"\")];\n      if (!anchor) return;\n\n      event.preventDefault();\n      closeNavDropdowns();\n      setMobileDrawerOpen(false);\n\n      var targetUrl = \"/collections/all?sort_by=manual#\" + anchor;\n      if (window.location.pathname.replace(/\\/$/, \"\") === \"/collections/all\") {\n        window.history.pushState(null, \"\", targetUrl);\n        scrollToCollectionAnchor(anchor);\n      } else {\n        window.location.assign(targetUrl);\n      }\n    });\n  });\n\n  document.querySelectorAll(\".mobile-drawer a\").forEach(function (link) {\n    link.addEventListener(\"click\", function () {\n      setMobileDrawerOpen(false);\n    });\n  });\n\n  document.addEventListener(\"keydown\", function (event) {\n    if (event.key === \"Escape\") {\n      closeNavDropdowns();\n      setMobileDrawerOpen(false);\n      setMobileAccountOpen(false);\n      closeCommerceSurfaces();\n    }\n  });\n\n  document.querySelectorAll(\"[data-carousel]\").forEach(function (carousel) {\n    var viewport = carousel.querySelector(\"[data-carousel-viewport]\");\n    if (!viewport) return;\n\n    var slides = Array.prototype.slice.call(carousel.querySelectorAll(\"[data-carousel-slide]\"));\n    var dots = Array.prototype.slice.call(carousel.querySelectorAll(\"[data-carousel-dot]\"));\n    var previous = carousel.querySelector(\"[data-carousel-prev]\");\n    var next = carousel.querySelector(\"[data-carousel-next]\");\n    var activeIndex = 0;\n    var scrollFrame = null;\n    var timer = null;\n    var interval = Number(carousel.getAttribute(\"data-carousel-interval\")) || 5000;\n    var canAutoplay = carousel.getAttribute(\"data-carousel-autoplay\") === \"true\";\n\n    if (slides.length <= 1) return;\n\n    function setActive(index) {\n      activeIndex = (index + slides.length) % slides.length;\n      dots.forEach(function (dot, dotIndex) {\n        dot.classList.toggle(\"is-active\", dotIndex === activeIndex);\n      });\n    }\n\n    function goTo(index) {\n      var targetIndex = (index + slides.length) % slides.length;\n      var target = slides[targetIndex];\n      if (!target) return;\n      viewport.scrollTo({ left: target.offsetLeft, behavior: \"smooth\" });\n      setActive(targetIndex);\n    }\n\n    function nearestSlide() {\n      var viewportLeft = viewport.scrollLeft;\n      var closestIndex = 0;\n      var closestDistance = Infinity;\n      slides.forEach(function (slide, index) {\n        var distance = Math.abs(slide.offsetLeft - viewportLeft);\n        if (distance < closestDistance) {\n          closestDistance = distance;\n          closestIndex = index;\n        }\n      });\n      setActive(closestIndex);\n    }\n\n    function stopAutoplay() {\n      if (timer) {\n        window.clearInterval(timer);\n        timer = null;\n      }\n    }\n\n    function startAutoplay() {\n      var reduceMotion = window.matchMedia && window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;\n      if (!canAutoplay || reduceMotion) return;\n      stopAutoplay();\n      timer = window.setInterval(function () {\n        goTo(activeIndex + 1);\n      }, interval);\n    }\n\n    dots.forEach(function (dot) {\n      dot.addEventListener(\"click\", function () {\n        goTo(Number(dot.getAttribute(\"data-carousel-index\")));\n        startAutoplay();\n      });\n    });\n\n    if (previous) {\n      previous.addEventListener(\"click\", function () {\n        goTo(activeIndex - 1);\n        startAutoplay();\n      });\n    }\n\n    if (next) {\n      next.addEventListener(\"click\", function () {\n        goTo(activeIndex + 1);\n        startAutoplay();\n      });\n    }\n\n    viewport.addEventListener(\"scroll\", function () {\n      if (scrollFrame) return;\n      scrollFrame = window.requestAnimationFrame(function () {\n        nearestSlide();\n        scrollFrame = null;\n      });\n    });\n\n    carousel.addEventListener(\"mouseenter\", stopAutoplay);\n    carousel.addEventListener(\"mouseleave\", startAutoplay);\n    carousel.addEventListener(\"focusin\", stopAutoplay);\n    carousel.addEventListener(\"focusout\", startAutoplay);\n    startAutoplay();\n  });\n\n  document.querySelectorAll(\"[data-product-page]\").forEach(function (page) {\n    var galleryImage = page.querySelector(\"[data-product-gallery-image]\");\n    var galleryPanels = Array.prototype.slice.call(page.querySelectorAll(\"[data-product-gallery-panel]\"));\n    var thumbnails = Array.prototype.slice.call(page.querySelectorAll(\"[data-product-thumbnail]\"));\n    var variantSelect = page.querySelector(\"[data-product-variant-select]\");\n    var variantButtons = Array.prototype.slice.call(page.querySelectorAll(\"[data-variant-id]\"));\n    var price = page.querySelector(\"[data-product-price]\");\n    var comparePrice = page.querySelector(\"[data-product-compare-price]\");\n    var stickyPrice = page.querySelector(\"[data-product-sticky-price]\");\n    var stickyVariant = page.querySelector(\"[data-product-sticky-variant]\");\n    var submitButton = page.querySelector(\"[data-product-submit]\");\n    var dynamicCheckout = page.querySelector(\"[data-product-dynamic-checkout]\");\n    var stickyBar = page.querySelector(\"[data-product-sticky-bar]\");\n    var stickySubmit = page.querySelector(\"[data-sticky-submit]\");\n    var quantityInput = page.querySelector(\"[data-quantity-input]\");\n    var quantityMinus = page.querySelector(\"[data-quantity-minus]\");\n    var quantityPlus = page.querySelector(\"[data-quantity-plus]\");\n    var stickyQuantityInput = page.querySelector(\"[data-sticky-quantity-input]\");\n    var stickyQuantityMinus = page.querySelector(\"[data-sticky-quantity-minus]\");\n    var stickyQuantityPlus = page.querySelector(\"[data-sticky-quantity-plus]\");\n    var productDetails = Array.prototype.slice.call(document.querySelectorAll(\".product-info-card\"));\n    var detailsPreparedForMobile = false;\n\n    var galleryPrev = page.querySelector(\"[data-product-gallery-prev]\");\n    var galleryNext = page.querySelector(\"[data-product-gallery-next]\");\n    var galleryZoom = page.querySelector(\"[data-product-gallery-zoom]\");\n    var galleryStage = page.querySelector(\".product-gallery__stage\");\n    var galleryMain = page.querySelector(\"[data-product-gallery-main]\");\n    var thumbsPrev = page.querySelector(\"[data-product-thumbs-prev]\");\n    var thumbsNext = page.querySelector(\"[data-product-thumbs-next]\");\n    var thumbsTrack = page.querySelector(\"[data-product-thumbs-track]\") || page.querySelector(\".product-gallery__thumbs\");\n    var shareButton = page.querySelector(\"[data-product-share]\");\n\n    function updateGalleryVideoState(panel) {\n      if (!panel) return;\n      var video = panel.querySelector(\"video\");\n      if (!video) return;\n      panel.classList.toggle(\"is-playing\", !video.paused && !video.ended);\n    }\n\n    function pauseGalleryVideo(panel) {\n      if (!panel) return;\n      Array.prototype.slice.call(panel.querySelectorAll(\"video\")).forEach(function (video) {\n        video.pause();\n      });\n      panel.classList.remove(\"is-playing\");\n    }\n\n    function activeThumbnailIndex() {\n      var active = thumbnails.findIndex(function (item) {\n        return item.classList.contains(\"is-active\");\n      });\n      return active >= 0 ? active : 0;\n    }\n\n    function isGalleryVideoType(mediaType) {\n      return mediaType === \"video\" || mediaType === \"external_video\";\n    }\n\n    function normalizeMediaRatio(value) {\n      var ratio = parseFloat(value);\n      return Number.isFinite(ratio) && ratio > 0 ? ratio : 1;\n    }\n\n    function mediaShapeFor(mediaType, ratio) {\n      if (!isGalleryVideoType(mediaType)) return \"default\";\n      if (ratio <= 0.8) return \"portrait\";\n      if (ratio >= 1.25) return \"landscape\";\n      return \"default\";\n    }\n\n    function updateGalleryMediaState(thumbnail) {\n      if (!galleryMain) return;\n      var activePanel = getActiveGalleryPanel();\n      var mediaType = thumbnail ? thumbnail.getAttribute(\"data-media-type\") : \"\";\n      var mediaRatio = thumbnail ? thumbnail.getAttribute(\"data-media-ratio\") : \"\";\n\n      if (!mediaType && activePanel) {\n        mediaType = activePanel.getAttribute(\"data-media-type\") || \"\";\n      }\n      if (!mediaRatio && activePanel) {\n        mediaRatio = activePanel.getAttribute(\"data-media-ratio\") || \"\";\n      }\n\n      var ratio = normalizeMediaRatio(mediaRatio);\n      galleryMain.setAttribute(\"data-active-media-type\", mediaType || \"image\");\n      galleryMain.setAttribute(\"data-active-media-ratio\", String(ratio));\n      galleryMain.setAttribute(\"data-active-media-shape\", mediaShapeFor(mediaType, ratio));\n    }\n\n    function activateThumbnail(thumbnail) {\n      if (!thumbnail) return;\n      var mediaId = thumbnail.getAttribute(\"data-product-media-id\");\n\n      if (galleryPanels.length && mediaId) {\n        galleryPanels.forEach(function (panel) {\n          var isActive = panel.getAttribute(\"data-product-gallery-panel\") === mediaId;\n          panel.classList.toggle(\"is-active\", isActive);\n          panel.hidden = !isActive;\n          if (!isActive) {\n            pauseGalleryVideo(panel);\n          } else {\n            updateGalleryVideoState(panel);\n          }\n        });\n      } else if (galleryImage) {\n        var nextSource = thumbnail.getAttribute(\"data-full-src\");\n        var nextSourceSet = thumbnail.getAttribute(\"data-full-srcset\");\n        var nextAlt = thumbnail.getAttribute(\"data-alt\");\n        if (nextSource) galleryImage.setAttribute(\"src\", nextSource);\n        if (nextSourceSet) {\n          galleryImage.setAttribute(\"srcset\", nextSourceSet);\n        } else {\n          galleryImage.removeAttribute(\"srcset\");\n        }\n        if (nextAlt) galleryImage.setAttribute(\"alt\", nextAlt);\n      }\n\n      thumbnails.forEach(function (item) {\n        var isActive = item === thumbnail;\n        item.classList.toggle(\"is-active\", isActive);\n        item.setAttribute(\"aria-pressed\", String(isActive));\n      });\n      if (thumbsTrack) {\n        var thumbTop = thumbnail.offsetTop;\n        var thumbBottom = thumbTop + thumbnail.offsetHeight;\n        var visibleTop = thumbsTrack.scrollTop;\n        var visibleBottom = visibleTop + thumbsTrack.clientHeight;\n        if (thumbTop < visibleTop) {\n          thumbsTrack.scrollTop = Math.max(0, thumbTop - 6);\n        } else if (thumbBottom > visibleBottom) {\n          thumbsTrack.scrollTop = thumbBottom - thumbsTrack.clientHeight + 6;\n        }\n      }\n\n      updateGalleryMediaState(thumbnail);\n      updateGalleryZoomAvailability();\n    }\n\n    thumbnails.forEach(function (thumbnail) {\n      thumbnail.addEventListener(\"click\", function () {\n        activateThumbnail(thumbnail);\n      });\n    });\n\n    galleryPanels.forEach(function (panel) {\n      var video = panel.querySelector(\"video\");\n      if (!video) return;\n      panel.classList.add(\"product-gallery__panel--video\");\n      var playButton = panel.querySelector(\"[data-product-gallery-video-play]\");\n\n      function requestGalleryVideoPlay() {\n        var playPromise = video.play();\n        if (playPromise && typeof playPromise.catch === \"function\") {\n          playPromise.catch(function () {\n            updateGalleryVideoState(panel);\n          });\n        }\n      }\n\n      video.addEventListener(\"play\", function () {\n        updateGalleryVideoState(panel);\n      });\n      video.addEventListener(\"pause\", function () {\n        updateGalleryVideoState(panel);\n      });\n      video.addEventListener(\"ended\", function () {\n        updateGalleryVideoState(panel);\n      });\n      if (playButton) {\n        playButton.addEventListener(\"click\", function (event) {\n          event.preventDefault();\n          event.stopPropagation();\n          requestGalleryVideoPlay();\n        });\n      }\n      panel.addEventListener(\"click\", function (event) {\n        if (!panel.classList.contains(\"is-active\")) return;\n        if (event.target.closest(\".product-gallery__nav, .product-gallery__zoom, [data-product-gallery-video-play]\")) return;\n        if (video.paused || video.ended) {\n          requestGalleryVideoPlay();\n        }\n      });\n      updateGalleryVideoState(panel);\n    });\n\n    function stepGallery(delta) {\n      if (!thumbnails.length) return;\n      var nextIndex = (activeThumbnailIndex() + delta + thumbnails.length) % thumbnails.length;\n      activateThumbnail(thumbnails[nextIndex]);\n    }\n\n    if (galleryPrev) {\n      galleryPrev.addEventListener(\"click\", function () {\n        stepGallery(-1);\n      });\n    }\n\n    if (galleryNext) {\n      galleryNext.addEventListener(\"click\", function () {\n        stepGallery(1);\n      });\n    }\n\n    function scrollThumbnailRail(direction) {\n      if (!thumbsTrack) return;\n      var firstThumb = thumbnails[0];\n      var firstRect = firstThumb ? firstThumb.getBoundingClientRect() : null;\n      var gap = 10;\n      var distance = firstRect ? Math.max(firstRect.height + gap, 58) * 3 : 240;\n      thumbsTrack.scrollBy({ top: direction * distance, behavior: \"smooth\" });\n    }\n\n    if (thumbsPrev) {\n      thumbsPrev.addEventListener(\"click\", function () {\n        scrollThumbnailRail(-1);\n      });\n    }\n\n    if (thumbsNext) {\n      thumbsNext.addEventListener(\"click\", function () {\n        scrollThumbnailRail(1);\n      });\n    }\n\n    function getActiveGalleryPanel() {\n      if (!galleryPanels.length) return null;\n      var activePanel = galleryPanels.find(function (panel) {\n        return panel.classList.contains(\"is-active\") && !panel.hidden;\n      });\n      return activePanel || galleryPanels[0];\n    }\n\n    function getActiveGalleryImage() {\n      var activePanel = getActiveGalleryPanel();\n      if (activePanel) {\n        return activePanel.querySelector(\"[data-product-gallery-image]\");\n      }\n      return galleryImage || null;\n    }\n\n    function updateGalleryZoomAvailability() {\n      if (!galleryZoom) return;\n      var hasImage = Boolean(getActiveGalleryImage());\n      galleryZoom.hidden = !hasImage;\n      galleryZoom.disabled = !hasImage;\n      galleryZoom.setAttribute(\"aria-hidden\", String(!hasImage));\n    }\n\n    function createProductZoomViewer() {\n      var viewer = document.createElement(\"div\");\n      viewer.className = \"product-zoom-viewer\";\n      viewer.hidden = true;\n      viewer.setAttribute(\"role\", \"dialog\");\n      viewer.setAttribute(\"aria-modal\", \"true\");\n      viewer.setAttribute(\"aria-label\", \"Product image zoom viewer\");\n      viewer.innerHTML = [\n        '<div class=\"product-zoom-viewer__topbar\">',\n        '<span class=\"product-zoom-viewer__title\">Product image</span>',\n        '<button class=\"product-zoom-viewer__close\" type=\"button\" aria-label=\"Close image viewer\" data-product-zoom-close>',\n        '<svg aria-hidden=\"true\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M18 6 6 18\"/><path d=\"m6 6 12 12\"/></svg>',\n        \"</button>\",\n        \"</div>\",\n        '<div class=\"product-zoom-viewer__stage\" data-product-zoom-stage>',\n        '<img class=\"product-zoom-viewer__image\" alt=\"\" draggable=\"false\" data-product-zoom-image>',\n        \"</div>\",\n        '<div class=\"product-zoom-viewer__controls\" aria-label=\"Image zoom controls\">',\n        '<button type=\"button\" aria-label=\"Zoom out\" data-product-zoom-out>-</button>',\n        '<span class=\"product-zoom-viewer__level\" data-product-zoom-level>100%</span>',\n        '<button type=\"button\" aria-label=\"Zoom in\" data-product-zoom-in>+</button>',\n        '<button class=\"product-zoom-viewer__reset\" type=\"button\" data-product-zoom-reset>Reset</button>',\n        \"</div>\"\n      ].join(\"\");\n      document.body.appendChild(viewer);\n\n      var stage = viewer.querySelector(\"[data-product-zoom-stage]\");\n      var image = viewer.querySelector(\"[data-product-zoom-image]\");\n      var closeButton = viewer.querySelector(\"[data-product-zoom-close]\");\n      var zoomOut = viewer.querySelector(\"[data-product-zoom-out]\");\n      var zoomIn = viewer.querySelector(\"[data-product-zoom-in]\");\n      var zoomReset = viewer.querySelector(\"[data-product-zoom-reset]\");\n      var zoomLevel = viewer.querySelector(\"[data-product-zoom-level]\");\n      var minScale = 1;\n      var maxScale = 4;\n      var scale = 1;\n      var panX = 0;\n      var panY = 0;\n      var previousFocus = null;\n      var pointers = {};\n      var dragging = false;\n      var dragStartX = 0;\n      var dragStartY = 0;\n      var dragStartPanX = 0;\n      var dragStartPanY = 0;\n      var pinchStartDistance = 0;\n      var pinchStartScale = 1;\n\n      function clamp(value, min, max) {\n        return Math.max(min, Math.min(max, value));\n      }\n\n      function pointerValues() {\n        return Object.keys(pointers).map(function (key) {\n          return pointers[key];\n        });\n      }\n\n      function distanceBetween(first, second) {\n        var dx = first.x - second.x;\n        var dy = first.y - second.y;\n        return Math.sqrt(dx * dx + dy * dy);\n      }\n\n      function centerBetween(first, second) {\n        return {\n          x: (first.x + second.x) / 2,\n          y: (first.y + second.y) / 2\n        };\n      }\n\n      function clampPan() {\n        if (scale <= minScale) {\n          panX = 0;\n          panY = 0;\n          return;\n        }\n        var rect = stage.getBoundingClientRect();\n        var maxPanX = (rect.width * (scale - 1)) / 2;\n        var maxPanY = (rect.height * (scale - 1)) / 2;\n        panX = clamp(panX, -maxPanX, maxPanX);\n        panY = clamp(panY, -maxPanY, maxPanY);\n      }\n\n      function renderTransform() {\n        clampPan();\n        image.style.transform = \"translate3d(\" + panX + \"px, \" + panY + \"px, 0) scale(\" + scale + \")\";\n        zoomLevel.textContent = Math.round(scale * 100) + \"%\";\n        zoomOut.disabled = scale <= minScale + 0.01;\n        zoomIn.disabled = scale >= maxScale - 0.01;\n      }\n\n      function setScale(nextScale, origin) {\n        var previousScale = scale;\n        scale = clamp(nextScale, minScale, maxScale);\n        if (origin && previousScale > 0 && previousScale !== scale) {\n          var ratio = scale / previousScale;\n          var rect = stage.getBoundingClientRect();\n          var offsetX = origin.x - rect.left - rect.width / 2 - panX;\n          var offsetY = origin.y - rect.top - rect.height / 2 - panY;\n          panX -= offsetX * (ratio - 1);\n          panY -= offsetY * (ratio - 1);\n        }\n        renderTransform();\n      }\n\n      function resetZoom() {\n        scale = 1;\n        panX = 0;\n        panY = 0;\n        renderTransform();\n      }\n\n      function handleKeydown(event) {\n        if (viewer.hidden) return;\n        if (event.key === \"Escape\") {\n          event.preventDefault();\n          closeViewer();\n        } else if (event.key === \"+\" || event.key === \"=\") {\n          event.preventDefault();\n          setScale(scale + 0.5);\n        } else if (event.key === \"-\") {\n          event.preventDefault();\n          setScale(scale - 0.5);\n        } else if (event.key === \"0\") {\n          event.preventDefault();\n          resetZoom();\n        }\n      }\n\n      function openViewer(sourceImage) {\n        var nextSrc = sourceImage.currentSrc || sourceImage.getAttribute(\"src\");\n        var nextSrcset = sourceImage.getAttribute(\"srcset\");\n        if (!nextSrc) return;\n\n        previousFocus = document.activeElement;\n        if (nextSrcset) {\n          image.setAttribute(\"srcset\", nextSrcset);\n          image.setAttribute(\"sizes\", \"100vw\");\n        } else {\n          image.removeAttribute(\"srcset\");\n          image.removeAttribute(\"sizes\");\n        }\n        image.setAttribute(\"src\", nextSrc);\n        image.setAttribute(\"alt\", sourceImage.getAttribute(\"alt\") || document.title || \"Product image\");\n        viewer.hidden = false;\n        document.body.classList.add(\"product-zoom-viewer-open\");\n        document.addEventListener(\"keydown\", handleKeydown);\n        resetZoom();\n        window.requestAnimationFrame(function () {\n          closeButton.focus({ preventScroll: true });\n        });\n      }\n\n      function closeViewer() {\n        viewer.hidden = true;\n        document.body.classList.remove(\"product-zoom-viewer-open\");\n        document.removeEventListener(\"keydown\", handleKeydown);\n        pointers = {};\n        dragging = false;\n        stage.classList.remove(\"is-dragging\");\n        image.removeAttribute(\"src\");\n        image.removeAttribute(\"srcset\");\n        image.removeAttribute(\"sizes\");\n        if (previousFocus && typeof previousFocus.focus === \"function\") {\n          previousFocus.focus({ preventScroll: true });\n        }\n      }\n\n      zoomOut.addEventListener(\"click\", function () {\n        setScale(scale - 0.5);\n      });\n\n      zoomIn.addEventListener(\"click\", function () {\n        setScale(scale + 0.5);\n      });\n\n      zoomReset.addEventListener(\"click\", resetZoom);\n      closeButton.addEventListener(\"click\", closeViewer);\n\n      stage.addEventListener(\"wheel\", function (event) {\n        if (viewer.hidden) return;\n        event.preventDefault();\n        var delta = event.deltaY < 0 ? 0.25 : -0.25;\n        setScale(scale + delta, { x: event.clientX, y: event.clientY });\n      }, { passive: false });\n\n      stage.addEventListener(\"pointerdown\", function (event) {\n        if (viewer.hidden) return;\n        if (event.button !== undefined && event.button > 0) return;\n        event.preventDefault();\n        viewer.classList.add(\"is-interacting\");\n        stage.classList.add(\"is-dragging\");\n        pointers[event.pointerId] = { x: event.clientX, y: event.clientY };\n        if (stage.setPointerCapture) {\n          stage.setPointerCapture(event.pointerId);\n        }\n\n        var values = pointerValues();\n        if (values.length >= 2) {\n          dragging = false;\n          pinchStartDistance = distanceBetween(values[0], values[1]);\n          pinchStartScale = scale;\n        } else {\n          dragging = true;\n          dragStartX = event.clientX;\n          dragStartY = event.clientY;\n          dragStartPanX = panX;\n          dragStartPanY = panY;\n        }\n      });\n\n      stage.addEventListener(\"pointermove\", function (event) {\n        if (viewer.hidden || !pointers[event.pointerId]) return;\n        event.preventDefault();\n        pointers[event.pointerId] = { x: event.clientX, y: event.clientY };\n        var values = pointerValues();\n        if (values.length >= 2 && pinchStartDistance > 0) {\n          var nextDistance = distanceBetween(values[0], values[1]);\n          setScale(pinchStartScale * (nextDistance / pinchStartDistance), centerBetween(values[0], values[1]));\n          return;\n        }\n        if (dragging && scale > minScale) {\n          panX = dragStartPanX + event.clientX - dragStartX;\n          panY = dragStartPanY + event.clientY - dragStartY;\n          renderTransform();\n        }\n      });\n\n      function endPointer(event) {\n        delete pointers[event.pointerId];\n        var values = pointerValues();\n        if (!values.length) {\n          dragging = false;\n          pinchStartDistance = 0;\n          viewer.classList.remove(\"is-interacting\");\n          stage.classList.remove(\"is-dragging\");\n          return;\n        }\n        if (values.length === 1) {\n          dragging = true;\n          dragStartX = values[0].x;\n          dragStartY = values[0].y;\n          dragStartPanX = panX;\n          dragStartPanY = panY;\n          pinchStartDistance = 0;\n        }\n      }\n\n      stage.addEventListener(\"pointerup\", endPointer);\n      stage.addEventListener(\"pointercancel\", endPointer);\n      window.addEventListener(\"resize\", renderTransform);\n\n      return {\n        open: openViewer,\n        close: closeViewer\n      };\n    }\n\n    function syncGalleryZoomButtonIcon() {\n      if (!galleryZoom || galleryZoom.getAttribute(\"data-product-gallery-zoom-ready\") === \"true\") return;\n      galleryZoom.setAttribute(\"aria-label\", \"Zoom product image\");\n      galleryZoom.innerHTML = [\n        '<svg class=\"product-gallery__zoom-icon\" aria-hidden=\"true\" viewBox=\"0 0 24 24\" fill=\"none\" focusable=\"false\">',\n        '<path d=\"M8 4H4v4\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>',\n        '<path d=\"m4 4 6.5 6.5\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>',\n        '<path d=\"M16 20h4v-4\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>',\n        '<path d=\"m20 20-6.5-6.5\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>',\n        \"</svg>\"\n      ].join(\"\");\n      galleryZoom.setAttribute(\"data-product-gallery-zoom-ready\", \"true\");\n    }\n\n    var productZoomViewer = null;\n\n    if (galleryZoom) {\n      syncGalleryZoomButtonIcon();\n      galleryZoom.addEventListener(\"click\", function () {\n        var activeImage = getActiveGalleryImage();\n        if (!activeImage) return;\n        if (!productZoomViewer) {\n          productZoomViewer = createProductZoomViewer();\n        }\n        productZoomViewer.open(activeImage);\n      });\n    }\n\n    updateGalleryMediaState(thumbnails[activeThumbnailIndex()] || null);\n    updateGalleryZoomAvailability();\n\n    if (shareButton) {\n      shareButton.addEventListener(\"click\", function () {\n        var shareData = { title: document.title, url: window.location.href };\n        if (navigator.share) {\n          navigator.share(shareData).catch(function () {});\n        } else if (navigator.clipboard) {\n          navigator.clipboard.writeText(window.location.href).catch(function () {});\n        }\n      });\n    }\n\n    function setButtonAvailability(isAvailable) {\n      if (submitButton) {\n        submitButton.disabled = false;\n        submitButton.textContent = storefrontText(\"Add to Cart\");\n      }\n      if (stickySubmit) {\n        stickySubmit.disabled = false;\n        stickySubmit.textContent = storefrontText(\"Add to Cart\");\n      }\n      if (dynamicCheckout) {\n        dynamicCheckout.classList.remove(\"is-hidden\");\n      }\n    }\n\n    function syncVariantFromButton(button) {\n      var variantId = button.getAttribute(\"data-variant-id\");\n      var nextPrice = button.getAttribute(\"data-variant-price\");\n      var nextComparePrice = button.getAttribute(\"data-variant-compare-price\");\n      var isAvailable = button.getAttribute(\"data-variant-available\") === \"true\";\n\n      if (variantSelect && variantId) {\n        variantSelect.value = variantId;\n        variantSelect.dispatchEvent(new Event(\"change\", { bubbles: true }));\n      }\n\n      if (price && nextPrice) price.textContent = nextPrice;\n      if (stickyPrice && nextPrice) stickyPrice.textContent = nextPrice;\n      if (stickyVariant) {\n        var variantTitle = button.getAttribute(\"data-variant-title\") || \"\";\n        stickyVariant.textContent = variantTitle && variantTitle !== \"Default Title\" ? variantTitle + \" - \" : \"\";\n      }\n      if (comparePrice) {\n        comparePrice.textContent = nextComparePrice || \"\";\n        comparePrice.classList.toggle(\"is-empty\", !nextComparePrice);\n      }\n\n      setButtonAvailability(isAvailable);\n\n      variantButtons.forEach(function (item) {\n        var isActive = item === button;\n        item.classList.toggle(\"is-active\", isActive);\n        item.setAttribute(\"aria-pressed\", String(isActive));\n      });\n    }\n\n    variantButtons.forEach(function (button) {\n      button.addEventListener(\"click\", function () {\n        if (button.disabled) return;\n        syncVariantFromButton(button);\n      });\n    });\n\n    function readQuantity() {\n      if (!quantityInput) return 1;\n      var value = parseInt(quantityInput.value, 10);\n      if (Number.isNaN(value) || value < 1) value = 1;\n      return value;\n    }\n\n    function setQuantity(nextValue) {\n      var value = String(Math.max(1, nextValue));\n      if (quantityInput) quantityInput.value = value;\n      if (stickyQuantityInput) stickyQuantityInput.value = value;\n    }\n\n    if (quantityMinus) {\n      quantityMinus.addEventListener(\"click\", function () {\n        setQuantity(readQuantity() - 1);\n      });\n    }\n\n    if (quantityPlus) {\n      quantityPlus.addEventListener(\"click\", function () {\n        setQuantity(readQuantity() + 1);\n      });\n    }\n\n    if (quantityInput) {\n      quantityInput.addEventListener(\"change\", function () {\n        setQuantity(readQuantity());\n      });\n    }\n\n    function readStickyQuantity() {\n      if (!stickyQuantityInput) return readQuantity();\n      var value = parseInt(stickyQuantityInput.value, 10);\n      if (Number.isNaN(value) || value < 1) value = 1;\n      return value;\n    }\n\n    if (stickyQuantityMinus) {\n      stickyQuantityMinus.addEventListener(\"click\", function () {\n        setQuantity(readStickyQuantity() - 1);\n      });\n    }\n\n    if (stickyQuantityPlus) {\n      stickyQuantityPlus.addEventListener(\"click\", function () {\n        setQuantity(readStickyQuantity() + 1);\n      });\n    }\n\n    if (stickyQuantityInput) {\n      stickyQuantityInput.addEventListener(\"change\", function () {\n        setQuantity(readStickyQuantity());\n      });\n    }\n\n    if (stickySubmit && submitButton) {\n      stickySubmit.addEventListener(\"click\", function () {\n        submitButton.click();\n      });\n    }\n\n    function syncStickyBar() {\n      if (!stickyBar || !submitButton) return;\n      var buttonRect = submitButton.getBoundingClientRect();\n      var isButtonVisible = buttonRect.top < window.innerHeight && buttonRect.bottom > 0;\n      var hasScrolledPastIntro = window.scrollY > Math.min(360, window.innerHeight * 0.42);\n      stickyBar.classList.toggle(\"is-visible\", hasScrolledPastIntro && !isButtonVisible);\n    }\n\n    function syncProductDetails() {\n      if (!productDetails.length || !window.matchMedia) return;\n      var isMobile = window.matchMedia(\"(max-width: 680px)\").matches;\n      if (isMobile) {\n        if (detailsPreparedForMobile) return;\n        productDetails.forEach(function (detail, index) {\n          detail.open = index === 0;\n        });\n        detailsPreparedForMobile = true;\n        return;\n      }\n\n      productDetails.forEach(function (detail) {\n        detail.open = true;\n      });\n      detailsPreparedForMobile = false;\n    }\n\n    syncStickyBar();\n    syncProductDetails();\n    window.addEventListener(\"scroll\", syncStickyBar, { passive: true });\n    window.addEventListener(\"resize\", function () {\n      syncStickyBar();\n      syncProductDetails();\n    });\n  });\n\n  document.querySelectorAll(\"[data-accordion]\").forEach(function (button) {\n    function syncAccordionIcon(isExpanded) {\n      var icon = button.querySelector(\".accordion__icon, span\");\n      if (icon) {\n        icon.textContent = isExpanded ? \"-\" : \"+\";\n      }\n    }\n\n    syncAccordionIcon(button.getAttribute(\"aria-expanded\") === \"true\");\n\n    button.addEventListener(\"click\", function () {\n      var panel = document.getElementById(button.getAttribute(\"aria-controls\"));\n      var isExpanded = button.getAttribute(\"aria-expanded\") === \"true\";\n      var nextExpanded = !isExpanded;\n      button.setAttribute(\"aria-expanded\", String(nextExpanded));\n      syncAccordionIcon(nextExpanded);\n      if (panel) {\n        panel.hidden = isExpanded;\n      }\n    });\n  });\n\n  document.querySelectorAll(\"[data-manual-filter]\").forEach(function (input) {\n    var scope = input.closest(\"[data-manual-search-scope]\") || document;\n    var empty = scope.querySelector(\"[data-manual-empty]\");\n    var items = Array.prototype.slice.call(scope.querySelectorAll(\"[data-manual-item]\"));\n    var groups = Array.prototype.slice.call(scope.querySelectorAll(\".manual-group\"));\n\n    input.addEventListener(\"input\", function () {\n      var query = input.value.trim().toLowerCase();\n      var visibleCount = 0;\n\n      items.forEach(function (item) {\n        var match = item.textContent.toLowerCase().indexOf(query) !== -1;\n        item.hidden = !match;\n        if (match) visibleCount += 1;\n      });\n\n      groups.forEach(function (group) {\n        var groupItems = Array.prototype.slice.call(group.querySelectorAll(\"[data-manual-item]\"));\n        var hasVisibleItem = groupItems.some(function (item) {\n          return !item.hidden;\n        });\n        group.hidden = query !== \"\" && !hasVisibleItem;\n      });\n\n      if (empty) empty.hidden = visibleCount !== 0;\n    });\n  });\n\n  var isShopifyDesignMode = Boolean(window.Shopify && window.Shopify.designMode);\n\n  function overviewFallbackThumbnail(src) {\n    if (!src || (src.indexOf(\"img.youtube.com\") === -1 && src.indexOf(\"i.ytimg.com\") === -1)) return \"\";\n    if (src.indexOf(\"/maxresdefault.jpg\") !== -1) return src.replace(\"/maxresdefault.jpg\", \"/mqdefault.jpg\");\n    if (src.indexOf(\"/sddefault.jpg\") !== -1) return src.replace(\"/sddefault.jpg\", \"/mqdefault.jpg\");\n    if (src.indexOf(\"/hqdefault.jpg\") !== -1) return src.replace(\"/hqdefault.jpg\", \"/mqdefault.jpg\");\n    return \"\";\n  }\n\n  function isOverviewYoutubeThumbnail(src) {\n    return Boolean(src && (src.indexOf(\"img.youtube.com\") !== -1 || src.indexOf(\"i.ytimg.com\") !== -1));\n  }\n\n  function bindOverviewThumbnailFallback(image) {\n    if (!image || image.dataset.youtubeFallbackBound === \"true\") return;\n    image.dataset.youtubeFallbackBound = \"true\";\n    image.addEventListener(\"error\", function () {\n      var fallback = overviewFallbackThumbnail(image.getAttribute(\"src\") || \"\");\n      if (!fallback || image.dataset.youtubeFallbackUsed === \"true\") return;\n      image.dataset.youtubeFallbackUsed = \"true\";\n      image.setAttribute(\"src\", fallback);\n    });\n  }\n\n  function syncOverviewSourceClasses(element, baseClass, source) {\n    if (!element || !baseClass) return;\n    element.classList.remove(baseClass + \"--custom\", baseClass + \"--youtube\");\n    if (source === \"custom\" || source === \"youtube\") {\n      element.classList.add(baseClass + \"--\" + source);\n      element.setAttribute(\"data-thumb-source\", source);\n    } else {\n      element.removeAttribute(\"data-thumb-source\");\n    }\n  }\n\n  function setOverviewImage(image, src, alt, source) {\n    if (!image) return;\n    var thumbSource = source || (isOverviewYoutubeThumbnail(src) ? \"youtube\" : \"custom\");\n    if (src) {\n      image.dataset.youtubeFallbackUsed = \"\";\n      image.setAttribute(\"src\", src);\n    }\n    if (alt) image.setAttribute(\"alt\", alt);\n    if (thumbSource) image.setAttribute(\"data-thumb-source\", thumbSource);\n    if (thumbSource === \"youtube\") {\n      image.setAttribute(\"data-youtube-thumbnail-fallback\", \"\");\n      bindOverviewThumbnailFallback(image);\n    } else {\n      image.removeAttribute(\"data-youtube-thumbnail-fallback\");\n      image.dataset.youtubeFallbackUsed = \"\";\n    }\n  }\n\n  function initProductOverviewVideos(root) {\n    var scope = root || document;\n    var modules = Array.prototype.slice.call(scope.querySelectorAll(\"[data-product-overview-videos]\"));\n    if (scope.nodeType === 1 && scope.matches(\"[data-product-overview-videos]\")) {\n      modules.unshift(scope);\n    }\n\n    modules.forEach(function (module) {\n      if (module.dataset.overviewVideosBound === \"true\") return;\n      module.dataset.overviewVideosBound = \"true\";\n    var frame = module.querySelector(\"[data-overview-video-frame]\");\n    var poster = module.querySelector(\"[data-overview-video-poster]\");\n    var posterImage = module.querySelector(\"[data-overview-video-poster-image]\");\n    var posterTitle = module.querySelector(\"[data-overview-video-poster-title]\");\n    var title = module.querySelector(\"[data-overview-video-title]\");\n    var description = module.querySelector(\"[data-overview-video-description]\");\n    var watchLink = module.querySelector(\"[data-overview-video-watch-link]\");\n    var list = module.querySelector(\"[data-overview-video-list]\");\n    var scrollPrev = module.querySelector(\"[data-overview-video-scroll-prev]\");\n    var scrollNext = module.querySelector(\"[data-overview-video-scroll-next]\");\n    var options = Array.prototype.slice.call(module.querySelectorAll(\"[data-overview-video-option]\"));\n    var activeOption = options.filter(function (option) {\n      return option.classList.contains(\"is-active\");\n    })[0] || options[0] || null;\n\n    function getVideoData(source) {\n      if (!source) return null;\n      return {\n        src: source.getAttribute(\"data-video-src\") || \"\",\n        watchUrl: source.getAttribute(\"data-video-watch-url\") || \"\",\n        title: source.getAttribute(\"data-video-title\") || \"Product video\",\n        description: source.getAttribute(\"data-video-description\") || \"\",\n        thumb: source.getAttribute(\"data-video-thumb\") || \"\",\n        thumbSource: source.getAttribute(\"data-video-thumb-source\") || source.getAttribute(\"data-thumb-source\") || \"\"\n      };\n    }\n\n    function autoplaySrc(src) {\n      if (!src) return \"\";\n      if (/[?&]autoplay=/.test(src)) return src;\n      return src + (src.indexOf(\"?\") === -1 ? \"?\" : \"&\") + \"autoplay=1&playsinline=1\";\n    }\n\n    function removePlayer() {\n      if (!frame) return;\n      var player = frame.querySelector(\"[data-overview-video-player]\");\n      if (player) player.remove();\n      frame.classList.remove(\"is-playing\");\n    }\n\n    function syncMainVideo(video) {\n      if (!video) return;\n      if (title) title.textContent = video.title;\n      if (description) description.textContent = video.description;\n      if (watchLink && video.watchUrl) watchLink.setAttribute(\"href\", video.watchUrl);\n      if (poster) {\n        poster.setAttribute(\"aria-label\", \"Play \" + video.title);\n        poster.setAttribute(\"data-video-src\", video.src);\n        poster.setAttribute(\"data-video-watch-url\", video.watchUrl);\n        poster.setAttribute(\"data-video-title\", video.title);\n        poster.setAttribute(\"data-video-description\", video.description);\n        poster.setAttribute(\"data-video-thumb\", video.thumb);\n        poster.setAttribute(\"data-video-thumb-source\", video.thumbSource);\n        syncOverviewSourceClasses(poster, \"product-overview-videos__poster\", video.thumbSource);\n      }\n      if (posterImage && video.thumb) {\n        setOverviewImage(posterImage, video.thumb, video.title, video.thumbSource);\n      }\n      if (posterTitle) posterTitle.textContent = video.title;\n      removePlayer();\n    }\n\n    function selectOption(option) {\n      if (!option) return;\n      activeOption = option;\n      options.forEach(function (item) {\n        var isActive = item === option;\n        item.classList.toggle(\"is-active\", isActive);\n        item.setAttribute(\"aria-pressed\", String(isActive));\n      });\n      syncMainVideo(getVideoData(option));\n    }\n\n    function loadCurrentVideo() {\n      var video = getVideoData(activeOption) || getVideoData(poster);\n      if (isShopifyDesignMode) {\n        removePlayer();\n        return;\n      }\n      if (!frame || !video || !video.src) return;\n      removePlayer();\n      var player = document.createElement(\"iframe\");\n      player.setAttribute(\"data-overview-video-player\", \"\");\n      player.setAttribute(\"data-base-src\", video.src);\n      player.setAttribute(\"src\", autoplaySrc(video.src));\n      player.setAttribute(\"title\", video.title);\n      player.setAttribute(\"loading\", \"eager\");\n      player.setAttribute(\"allow\", \"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\");\n      player.setAttribute(\"allowfullscreen\", \"\");\n      frame.appendChild(player);\n      frame.classList.add(\"is-playing\");\n    }\n\n    function updateRailButtons() {\n      if (!list || !scrollPrev || !scrollNext) return;\n      var maxScroll = Math.max(0, list.scrollWidth - list.clientWidth);\n      var canScroll = maxScroll > 2;\n      scrollPrev.disabled = !canScroll || list.scrollLeft <= 2;\n      scrollNext.disabled = !canScroll || list.scrollLeft >= maxScroll - 2;\n    }\n\n    function scrollRail(direction) {\n      if (!list) return;\n      var firstOption = options[0];\n      var distance = firstOption ? firstOption.getBoundingClientRect().width + 8 : list.clientWidth * 0.75;\n      list.scrollBy({ left: distance * direction, behavior: \"smooth\" });\n      window.setTimeout(updateRailButtons, 260);\n    }\n\n    options.forEach(function (option) {\n      option.addEventListener(\"click\", function (event) {\n        event.preventDefault();\n        selectOption(option);\n      });\n    });\n\n    if (poster) {\n      poster.addEventListener(\"click\", function (event) {\n        if (isShopifyDesignMode) {\n          event.preventDefault();\n          removePlayer();\n          return;\n        }\n        loadCurrentVideo();\n      });\n    }\n\n    if (scrollPrev) {\n      scrollPrev.addEventListener(\"click\", function () {\n        scrollRail(-1);\n      });\n    }\n\n    if (scrollNext) {\n      scrollNext.addEventListener(\"click\", function () {\n        scrollRail(1);\n      });\n    }\n\n    if (list) {\n      list.addEventListener(\"scroll\", updateRailButtons);\n    }\n\n    window.addEventListener(\"resize\", updateRailButtons);\n    Array.prototype.slice.call(module.querySelectorAll(\"[data-youtube-thumbnail-fallback]\")).forEach(bindOverviewThumbnailFallback);\n    syncMainVideo(getVideoData(activeOption));\n    updateRailButtons();\n  });\n  }\n\n  initProductOverviewVideos(document);\n  if (isShopifyDesignMode) {\n    document.addEventListener(\"shopify:section:load\", function (event) {\n      initProductOverviewVideos(event.target);\n    });\n  }\n\n  document.querySelectorAll(\"[data-video-promo]\").forEach(function (player) {\n    var video = player.querySelector(\"[data-video-player]\");\n    if (!video) return;\n\n    // Native controls remain available if JavaScript is unavailable.\n    video.controls = false;\n    var playButton = player.querySelector(\"[data-video-play-toggle]\");\n    var playLabel = playButton ? playButton.querySelector(\"[data-video-play-label]\") : null;\n    var playIcon = playButton ? playButton.querySelector(\"[data-video-icon-play]\") : null;\n    var pauseIcon = playButton ? playButton.querySelector(\"[data-video-icon-pause]\") : null;\n    var soundButton = player.querySelector(\"[data-video-sound]\");\n    var soundLabel = soundButton ? soundButton.querySelector(\"[data-video-sound-label]\") : null;\n    var speedSelect = player.querySelector(\"[data-video-speed]\");\n    var speedButton = player.querySelector(\"[data-video-speed-toggle]\");\n    var speedLabel = speedButton ? speedButton.querySelector(\"[data-video-speed-label]\") : null;\n    var fullscreenButton = player.querySelector(\"[data-video-fullscreen]\");\n    var mutedIcon = soundButton ? soundButton.querySelector(\"[data-video-icon-muted]\") : null;\n    var volumeIcon = soundButton ? soundButton.querySelector(\"[data-video-icon-volume]\") : null;\n    var controlsTimer = null;\n    var pointerOverVideo = false;\n    var keyboardControls = false;\n\n    function setVideoIconHidden(icon, hidden) {\n      if (!icon) return;\n      if (hidden) icon.setAttribute(\"hidden\", \"\");\n      else icon.removeAttribute(\"hidden\");\n    }\n\n    function syncPlayButton() {\n      var isPaused = video.paused || video.ended;\n      player.classList.toggle(\"is-paused\", isPaused);\n      if (!playButton) return;\n      var label = playButton.getAttribute(isPaused ? \"data-video-play-label\" : \"data-video-pause-label\");\n      playButton.setAttribute(\"aria-label\", label);\n      playButton.setAttribute(\"title\", label);\n      if (playLabel) playLabel.textContent = label;\n      setVideoIconHidden(playIcon, !isPaused);\n      setVideoIconHidden(pauseIcon, isPaused);\n    }\n\n    if (playButton) {\n      playButton.addEventListener(\"click\", function () {\n        if (video.paused || video.ended) {\n          var playPromise = video.play();\n          if (playPromise && typeof playPromise.catch === \"function\") playPromise.catch(syncPlayButton);\n        } else {\n          video.pause();\n        }\n        showVideoControls();\n      });\n    }\n    [\"play\", \"pause\", \"ended\", \"loadedmetadata\"].forEach(function (eventName) {\n      video.addEventListener(eventName, syncPlayButton);\n    });\n    syncPlayButton();\n\n    function formatSpeed(speed) {\n      return speed + \"x\";\n    }\n\n    function syncSoundButton() {\n      if (!soundButton) return;\n      var isMuted = video.muted || video.volume === 0;\n      var label = isMuted ? \"Turn sound on\" : \"Turn sound off\";\n\n      soundButton.setAttribute(\"aria-label\", label);\n      soundButton.setAttribute(\"aria-pressed\", String(!isMuted));\n      soundButton.setAttribute(\"title\", label);\n      soundButton.classList.toggle(\"is-on\", !isMuted);\n\n      setVideoIconHidden(mutedIcon, !isMuted);\n      setVideoIconHidden(volumeIcon, isMuted);\n      if (soundLabel) soundLabel.textContent = isMuted ? \"Muted\" : \"Sound\";\n    }\n\n    if (speedSelect) {\n      video.playbackRate = Number(speedSelect.value) || 1;\n      speedSelect.addEventListener(\"change\", function () {\n        video.playbackRate = Number(speedSelect.value) || 1;\n      });\n    }\n\n    if (speedButton) {\n      var speedValues = (speedButton.getAttribute(\"data-video-speed-values\") || \"1,1.25,1.5,2\")\n        .split(\",\")\n        .map(function (value) {\n          return Number(value.trim());\n        })\n        .filter(function (value) {\n          return Number.isFinite(value) && value > 0;\n        });\n\n      if (!speedValues.length) {\n        speedValues = [1, 1.25, 1.5, 2];\n      }\n\n      var speedIndex = Math.max(0, speedValues.indexOf(1));\n\n      function syncSpeedButton() {\n        var speed = speedValues[speedIndex] || 1;\n        video.playbackRate = speed;\n        speedButton.setAttribute(\"aria-label\", \"Playback speed: \" + formatSpeed(speed));\n        speedButton.setAttribute(\"title\", \"Playback speed: \" + formatSpeed(speed));\n        if (speedLabel) speedLabel.textContent = formatSpeed(speed);\n      }\n\n      speedButton.addEventListener(\"click\", function () {\n        speedIndex = (speedIndex + 1) % speedValues.length;\n        syncSpeedButton();\n      });\n\n      syncSpeedButton();\n    }\n\n    if (soundButton) {\n      soundButton.addEventListener(\"click\", function () {\n        video.muted = !video.muted;\n        if (!video.muted && video.volume === 0) {\n          video.volume = 1;\n        }\n\n        syncSoundButton();\n\n      });\n\n      video.addEventListener(\"volumechange\", syncSoundButton);\n      syncSoundButton();\n    }\n\n    function syncFullscreenButton() {\n      if (!fullscreenButton) return;\n      var isFullscreen = (document.fullscreenElement || document.webkitFullscreenElement) === player;\n      var label = fullscreenButton.getAttribute(isFullscreen ? \"data-video-exit-label\" : \"data-video-enter-label\");\n      fullscreenButton.setAttribute(\"aria-label\", label);\n      fullscreenButton.setAttribute(\"title\", label);\n    }\n\n    if (fullscreenButton) {\n      fullscreenButton.addEventListener(\"click\", function () {\n        var active = document.fullscreenElement || document.webkitFullscreenElement;\n        var exit = document.exitFullscreen || document.webkitExitFullscreen;\n        var request = player.requestFullscreen || player.webkitRequestFullscreen || player.msRequestFullscreen;\n        try {\n          var result;\n          if (active === player && exit) {\n            result = exit.call(document);\n          } else if (request) {\n            result = request.call(player);\n          } else if (video.webkitEnterFullscreen) {\n            video.webkitEnterFullscreen();\n          }\n          if (result && typeof result.catch === \"function\") result.catch(syncFullscreenButton);\n        } catch (error) {\n          syncFullscreenButton();\n        }\n      });\n      [\"fullscreenchange\", \"webkitfullscreenchange\"].forEach(function (eventName) {\n        document.addEventListener(eventName, function () {\n          syncFullscreenButton();\n          showVideoControls();\n        });\n      });\n      video.addEventListener(\"webkitendfullscreen\", function () {\n        syncPlayButton();\n        syncFullscreenButton();\n      });\n      syncFullscreenButton();\n    }\n\n    function hideVideoControls() {\n      if (controlsTimer) window.clearTimeout(controlsTimer);\n      controlsTimer = null;\n      player.classList.remove(\"is-controls-visible\");\n    }\n\n    function showVideoControls(event) {\n      if (event && (event.pointerType === \"touch\" || event.type === \"touchstart\")) {\n        pointerOverVideo = false;\n        keyboardControls = false;\n      } else if (event && (event.type === \"pointerenter\" || event.type === \"pointermove\")) {\n        pointerOverVideo = true;\n      }\n      player.classList.add(\"is-controls-visible\");\n      if (controlsTimer) window.clearTimeout(controlsTimer);\n      controlsTimer = window.setTimeout(function () {\n        controlsTimer = null;\n        if (!pointerOverVideo && !keyboardControls) hideVideoControls();\n      }, 2600);\n    }\n\n    [\"pointerenter\", \"pointermove\", \"pointerdown\", \"touchstart\"].forEach(function (eventName) {\n      player.addEventListener(eventName, showVideoControls, { passive: true });\n    });\n    player.addEventListener(\"pointerleave\", function (event) {\n      if (event.pointerType === \"touch\") return;\n      pointerOverVideo = false;\n      keyboardControls = false;\n      hideVideoControls();\n    });\n    player.addEventListener(\"focusin\", function (event) {\n      keyboardControls = event.target.matches(\":focus-visible\");\n      if (keyboardControls) showVideoControls();\n    });\n    player.addEventListener(\"focusout\", function (event) {\n      if (player.contains(event.relatedTarget)) return;\n      keyboardControls = false;\n      if (!pointerOverVideo) hideVideoControls();\n    });\n    hideVideoControls();\n  });\n\n  function readQuantityInput(input) {\n    if (!input) return 1;\n    var value = parseInt(input.value, 10);\n    return Number.isFinite(value) && value > 0 ? value : 1;\n  }\n\n  function setQuantityInput(input, nextValue) {\n    if (!input) return;\n    input.value = String(Math.max(1, nextValue));\n  }\n\n  function bindCardQuantityControls(scope) {\n    (scope || document).querySelectorAll(\"[data-card-quantity]\").forEach(function (control) {\n      if (control.hasAttribute(\"data-card-quantity-bound\")) return;\n      control.setAttribute(\"data-card-quantity-bound\", \"\");\n      var input = control.querySelector(\"[data-card-quantity-input]\");\n      var minus = control.querySelector(\"[data-card-quantity-minus]\");\n      var plus = control.querySelector(\"[data-card-quantity-plus]\");\n\n      if (minus) {\n        minus.addEventListener(\"click\", function () {\n          setQuantityInput(input, readQuantityInput(input) - 1);\n        });\n      }\n\n      if (plus) {\n        plus.addEventListener(\"click\", function () {\n          setQuantityInput(input, readQuantityInput(input) + 1);\n        });\n      }\n\n      if (input) {\n        input.addEventListener(\"change\", function () {\n          setQuantityInput(input, readQuantityInput(input));\n        });\n      }\n    });\n  }\n\n  function productHandleFromUrl(url) {\n    var match = String(url || \"\").match(/\\/products\\/([^/?#]+)/);\n    return match ? match[1] : \"\";\n  }\n\n  function createCardQuantityControl() {\n    var control = document.createElement(\"div\");\n    control.className = \"product-card__qty\";\n    control.setAttribute(\"data-card-quantity\", \"\");\n    control.innerHTML = [\n      '<button type=\"button\" aria-label=\"Decrease quantity\" data-card-quantity-minus>-</button>',\n      '<input type=\"number\" name=\"quantity\" value=\"1\" min=\"1\" inputmode=\"numeric\" aria-label=\"Quantity\" data-card-quantity-input>',\n      '<button type=\"button\" aria-label=\"Increase quantity\" data-card-quantity-plus>+</button>'\n    ].join(\"\");\n    var input = control.querySelector(\"[data-card-quantity-input]\");\n    control.querySelector(\"[data-card-quantity-minus]\").addEventListener(\"click\", function () {\n      setQuantityInput(input, readQuantityInput(input) - 1);\n    });\n    control.querySelector(\"[data-card-quantity-plus]\").addEventListener(\"click\", function () {\n      setQuantityInput(input, readQuantityInput(input) + 1);\n    });\n    input.addEventListener(\"change\", function () {\n      setQuantityInput(input, readQuantityInput(input));\n    });\n    return control;\n  }\n\n  function ensureHomepageMassagersSale() {\n    if (!document.body.classList.contains(\"template-index\")) return;\n    if (document.getElementById(\"massagers-on-sale\")) return;\n    var carousel = document.querySelector(\".home-carousel\");\n    if (!carousel) return;\n\n    var handles = [\n      \"ikyoor-30-speed-percussion-massage-gun-g045\",\n      \"ikyoor-heated-neck-shoulder-massager-n366\",\n      \"ikyoor-foot-calf-massager-fm8017\",\n      \"ikyoor-heated-shiatsu-foot-massager-fm8892\",\n      \"ikyoor-6-speed-massage-gun-g022\",\n      \"ikyoor-extended-handle-massage-gun-gs40\",\n      \"ikyoor-smart-eye-massager-em10\",\n      \"ikyoor-heat-compression-knee-massager-k10\",\n      \"ikyoor-wireless-knee-massager-k01\"\n    ];\n\n    var section = document.createElement(\"section\");\n    section.className = \"section massagers-sale-section\";\n    section.id = \"massagers-on-sale\";\n    section.innerHTML = [\n      '<div class=\"page-width\">',\n      '<div class=\"massagers-sale-section__header\">',\n      \"<div>\",\n      '<p class=\"eyebrow\">Limited-time offers</p>',\n      \"<h2>Massagers on Sale</h2>\",\n      '<p class=\"lede\">Shop nine featured iKyoor massage devices with simple controls, comfort-focused programs, and quick add-to-cart shopping.</p>',\n      \"</div>\",\n      '<a class=\"button button--secondary\" href=\"/collections/all?sort_by=manual#massagers\">View all sale massagers</a>',\n      \"</div>\",\n      '<div class=\"massagers-sale-section__rail product-grid product-grid--sale\" data-homepage-sale-grid></div>',\n      \"</div>\"\n    ].join(\"\");\n    carousel.insertAdjacentElement(\"afterend\", section);\n\n    var grid = section.querySelector(\"[data-homepage-sale-grid]\");\n    handles.forEach(function (handle) {\n      var card = document.createElement(\"article\");\n      card.className = \"product-card product-card--commerce\";\n      card.setAttribute(\"data-product-card\", \"\");\n      card.setAttribute(\"data-product-handle\", handle);\n      card.setAttribute(\"data-quick-url\", \"/products/\" + handle);\n      card.setAttribute(\"data-quick-title\", \"iKyoor massager\");\n      card.setAttribute(\"data-quick-description\", \"Quick shop this iKyoor sale product.\");\n      card.innerHTML = [\n        '<a class=\"product-card__media\" href=\"/products/' + handle + '\" aria-label=\"iKyoor massager\">',\n        '<img src=\"\" width=\"720\" height=\"720\" loading=\"lazy\" alt=\"iKyoor massager\">',\n        \"</a>\",\n        '<div class=\"product-card__overlay\" aria-label=\"Quick shopping actions\">',\n        '<button class=\"product-card__quick-view\" type=\"button\" data-quick-view>Quick View</button>',\n        '<form class=\"product-card__cart-form\" action=\"/cart/add\" method=\"post\" data-card-cart-form data-deferred-variant-form>',\n        '<input type=\"hidden\" name=\"id\" value=\"\">',\n        '<div class=\"product-card__qty\" data-card-quantity>',\n        '<button type=\"button\" aria-label=\"Decrease quantity\" data-card-quantity-minus>-</button>',\n        '<input type=\"number\" name=\"quantity\" value=\"1\" min=\"1\" inputmode=\"numeric\" aria-label=\"Quantity\" data-card-quantity-input>',\n        '<button type=\"button\" aria-label=\"Increase quantity\" data-card-quantity-plus>+</button>',\n        \"</div>\",\n        '<button class=\"product-card__add\" type=\"submit\">Add to Cart</button>',\n        \"</form>\",\n        \"</div>\",\n        '<div class=\"product-card__body\">',\n        '<span class=\"product-card__kicker\">On Sale</span>',\n        '<h3 class=\"product-card__title\"><a href=\"/products/' + handle + '\">Loading product...</a></h3>',\n        '<div class=\"product-card__price\"><span class=\"price\">Loading...</span></div>',\n        \"</div>\"\n      ].join(\"\");\n      grid.appendChild(card);\n\n      if (window.fetch) {\n        fetch(\"/products/\" + handle + \".js\", {\n          headers: { \"Accept\": \"application/json\" },\n          credentials: \"same-origin\"\n        })\n          .then(function (response) {\n            if (!response.ok) throw new Error(\"Product read failed\");\n            return response.json();\n          })\n          .then(function (product) {\n            var variant = (product.variants || []).filter(function (item) { return item.available; })[0] || (product.variants || [])[0];\n            var title = product.title || \"iKyoor massager\";\n            var price = variant && variant.price ? \"$\" + (Number(variant.price) / 100).toFixed(2) : \"\";\n            var compare = variant && variant.compare_at_price ? \"$\" + (Number(variant.compare_at_price) / 100).toFixed(2) : \"\";\n            var image = product.featured_image || (product.images && product.images[0]) || \"\";\n            card.setAttribute(\"data-quick-title\", title);\n            card.setAttribute(\"data-quick-description\", title);\n            card.setAttribute(\"data-quick-price\", price);\n            card.setAttribute(\"data-quick-compare\", compare && compare !== price ? compare : \"\");\n            if (variant && variant.id) card.setAttribute(\"data-quick-variant-id\", String(variant.id));\n            var link = card.querySelectorAll(\"a\");\n            link.forEach(function (item) {\n              item.setAttribute(\"aria-label\", title);\n            });\n            var imageEl = card.querySelector(\"img\");\n            if (imageEl && image) {\n              imageEl.src = image;\n              imageEl.alt = title;\n            }\n            var titleLink = card.querySelector(\".product-card__title a\");\n            if (titleLink) titleLink.textContent = title;\n            var priceBox = card.querySelector(\".product-card__price\");\n            if (priceBox) {\n              priceBox.innerHTML = '<span class=\"price\">' + price + '</span>' + (compare && compare !== price ? ' <s class=\"price price--compare\">' + compare + '</s>' : \"\");\n            }\n          })\n          .catch(function () {\n            card.hidden = true;\n          });\n      }\n    });\n  }\n\n  function enhanceLegacyProductCards() {\n    document.querySelectorAll(\".template-collection .product-card:not([data-product-card])\").forEach(function (card) {\n      var mediaLink = card.querySelector(\".product-card__media\");\n      var titleLink = card.querySelector(\".product-card__title a\");\n      var image = card.querySelector(\".product-card__media img\");\n      var price = card.querySelector(\".price:not(.price--compare)\");\n      var compare = card.querySelector(\".price--compare\");\n      var title = titleLink ? titleLink.textContent.trim() : \"\";\n      var url = titleLink ? titleLink.getAttribute(\"href\") : mediaLink ? mediaLink.getAttribute(\"href\") : \"\";\n      var handle = productHandleFromUrl(url);\n      if (!handle || !mediaLink) return;\n\n      card.classList.add(\"product-card--commerce\", \"product-card--enhanced\");\n      card.setAttribute(\"data-product-card\", \"\");\n      card.setAttribute(\"data-quick-title\", title);\n      card.setAttribute(\"data-quick-url\", url || \"#\");\n      card.setAttribute(\"data-quick-image\", image ? image.currentSrc || image.src : \"\");\n      card.setAttribute(\"data-quick-price\", price ? price.textContent.trim() : \"\");\n      card.setAttribute(\"data-quick-compare\", compare ? compare.textContent.trim() : \"\");\n      card.setAttribute(\"data-quick-description\", title);\n      card.setAttribute(\"data-product-handle\", handle);\n\n      var overlay = document.createElement(\"div\");\n      overlay.className = \"product-card__overlay\";\n      overlay.setAttribute(\"aria-label\", \"Quick shopping actions for \" + title);\n\n      var quickButton = document.createElement(\"button\");\n      quickButton.className = \"product-card__quick-view\";\n      quickButton.type = \"button\";\n      quickButton.setAttribute(\"data-quick-view\", \"\");\n      quickButton.textContent = \"Quick View\";\n\n      var form = document.createElement(\"form\");\n      form.className = \"product-card__cart-form\";\n      form.action = \"/cart/add\";\n      form.method = \"post\";\n      form.setAttribute(\"data-card-cart-form\", \"\");\n      form.setAttribute(\"data-deferred-variant-form\", \"\");\n      form.innerHTML = '<input type=\"hidden\" name=\"id\" value=\"\">';\n      form.appendChild(createCardQuantityControl());\n\n      var add = document.createElement(\"button\");\n      add.className = \"product-card__add\";\n      add.type = \"submit\";\n      add.textContent = storefrontText(\"Add to Cart\");\n      form.appendChild(add);\n\n      overlay.appendChild(quickButton);\n      overlay.appendChild(form);\n      card.appendChild(overlay);\n    });\n  }\n\n  ensureHomepageMassagersSale();\n  enhanceLegacyProductCards();\n  bindCardQuantityControls(document);\n\n  function ensureCardVariant(card) {\n    var existing = card.getAttribute(\"data-quick-variant-id\");\n    if (existing) return Promise.resolve(existing);\n    var handle = card.getAttribute(\"data-product-handle\") || productHandleFromUrl(card.getAttribute(\"data-quick-url\"));\n    if (!handle || !window.fetch) return Promise.reject(new Error(\"Missing product handle\"));\n    return fetch(\"/products/\" + handle + \".js\", {\n      headers: { \"Accept\": \"application/json\" },\n      credentials: \"same-origin\"\n    })\n      .then(function (response) {\n        if (!response.ok) throw new Error(\"Product read failed\");\n        return response.json();\n      })\n      .then(function (product) {\n        var variants = product.variants || [];\n        var variant = variants.filter(function (item) { return item.available; })[0] || variants[0];\n        if (!variant || !variant.id) throw new Error(\"No variant\");\n        card.setAttribute(\"data-quick-variant-id\", String(variant.id));\n        return String(variant.id);\n      });\n  }\n\n  function updateCartBadgesFromCart(cart) {\n    var badges = Array.prototype.slice.call(document.querySelectorAll(\"[data-cart-count]\"));\n    badges.forEach(function (badge) {\n      badge.textContent = String((cart && cart.item_count) || 0);\n    });\n  }\n\n  function renderCartDrawerLoading() {\n    if (!cartDrawerBody) return;\n    cartDrawerBody.innerHTML = '<div class=\"drawer-empty\"><strong>Loading cart...</strong></div>';\n    localizeCartDrawer();\n  }\n\n  function renderCartDrawer(cart) {\n    if (!cartDrawerBody) return;\n    var items = (cart && cart.items) || [];\n    if (!items.length) {\n      cartDrawerBody.innerHTML = [\n        '<div class=\"drawer-empty\">',\n        emptyIcon(\"cart\"),\n        '<strong>Your cart is empty</strong>',\n        '<a class=\"drawer-empty__button\" href=\"' + escapeHtml(storefrontUrl(\"collections/all\")) + '\">Return to shop</a>',\n        \"</div>\"\n      ].join(\"\");\n      localizeCartDrawer();\n      return;\n    }\n\n    var rows = items.map(function (item) {\n      var image = item.image ? '<img src=\"' + escapeHtml(item.image) + '\" alt=\"' + escapeHtml(item.product_title || item.title) + '\">' : emptyIcon(\"cart\");\n      var options = (item.options_with_values || []).map(function (option) {\n        return option.value && option.value !== \"Default Title\" ? escapeHtml(option.name + \": \" + option.value) : \"\";\n      }).filter(Boolean).join(\" / \");\n      return [\n        '<div class=\"drawer-line\">',\n        '<a class=\"drawer-line__media\" href=\"' + escapeHtml(item.url || \"#\") + '\">' + image + \"</a>\",\n        '<div class=\"drawer-line__content\">',\n        '<a class=\"drawer-line__title\" href=\"' + escapeHtml(item.url || \"#\") + '\">' + escapeHtml(item.product_title || item.title) + \"</a>\",\n        options ? '<span class=\"drawer-line__meta\">' + options + \"</span>\" : \"\",\n        '<span class=\"drawer-line__price\">' + formatMoney(item.final_line_price) + \"</span>\",\n        '<div class=\"drawer-line__actions\">',\n        '<span class=\"drawer-line__qty\">',\n        '<button type=\"button\" aria-label=\"Decrease quantity\" data-cart-line-change data-cart-key=\"' + escapeHtml(item.key) + '\" data-cart-quantity=\"' + Math.max(0, item.quantity - 1) + '\">-</button>',\n        '<span>' + item.quantity + \"</span>\",\n        '<button type=\"button\" aria-label=\"Increase quantity\" data-cart-line-change data-cart-key=\"' + escapeHtml(item.key) + '\" data-cart-quantity=\"' + (item.quantity + 1) + '\">+</button>',\n        \"</span>\",\n        '<button class=\"drawer-line__remove\" type=\"button\" data-cart-line-change data-cart-key=\"' + escapeHtml(item.key) + '\" data-cart-quantity=\"0\">Remove</button>',\n        \"</div>\",\n        \"</div>\",\n        \"</div>\"\n      ].join(\"\");\n    }).join(\"\");\n\n    cartDrawerBody.innerHTML = [\n      '<div class=\"drawer-list\">',\n      rows,\n      \"</div>\",\n      '<div class=\"cart-drawer__footer\">',\n      '<div class=\"cart-drawer__subtotal\"><span>Subtotal</span><strong>' + formatMoney(cart.total_price) + \"</strong></div>\",\n      '<a class=\"cart-drawer__checkout\" href=\"' + escapeHtml(storefrontUrl(\"checkout\")) + '\">Checkout</a>',\n      \"</div>\"\n    ].join(\"\");\n    localizeCartDrawer();\n  }\n\n  function refreshCartDrawer() {\n    if (!window.fetch) return;\n    fetch(storefrontUrl(\"cart.js\"), {\n      headers: { \"Accept\": \"application/json\" },\n      credentials: \"same-origin\"\n    })\n      .then(function (response) {\n        if (!response.ok) throw new Error(\"Cart read failed\");\n        return response.json();\n      })\n      .then(function (cart) {\n        updateCartBadgesFromCart(cart);\n        renderCartDrawer(cart);\n      })\n      .catch(function () {\n        if (cartDrawerBody) {\n          cartDrawerBody.innerHTML = '<div class=\"drawer-empty\"><strong>Unable to load cart.</strong><a class=\"drawer-empty__button\" href=\"#CartDrawer\">Open cart drawer</a></div>';\n          localizeCartDrawer();\n        }\n      });\n  }\n\n  function changeCartLine(key, quantity) {\n    if (!window.fetch || !key) return;\n    renderCartDrawerLoading();\n    fetch(storefrontUrl(\"cart/change.js\"), {\n      method: \"POST\",\n      headers: {\n        \"Accept\": \"application/json\",\n        \"Content-Type\": \"application/json\"\n      },\n      credentials: \"same-origin\",\n      body: JSON.stringify({ id: key, quantity: Number(quantity) || 0 })\n    })\n      .then(function (response) {\n        if (!response.ok) throw new Error(\"Cart change failed\");\n        return response.json();\n      })\n      .then(function (cart) {\n        updateCartBadgesFromCart(cart);\n        renderCartDrawer(cart);\n      })\n      .catch(refreshCartDrawer);\n  }\n\n  function updateCartBadge() {\n    if (!window.fetch) return;\n    fetch(storefrontUrl(\"cart.js\"), {\n      headers: { \"Accept\": \"application/json\" },\n      credentials: \"same-origin\"\n    })\n      .then(function (response) {\n        if (!response.ok) throw new Error(\"Cart read failed\");\n        return response.json();\n      })\n      .then(function (cart) {\n        updateCartBadgesFromCart(cart);\n        if (cartDrawer && cartDrawer.classList.contains(\"is-open\")) {\n          renderCartDrawer(cart);\n        }\n      })\n      .catch(function () {});\n  }\n\n  document.querySelectorAll(\"[data-cart-drawer-open]\").forEach(function (opener) {\n    opener.addEventListener(\"click\", function (event) {\n      event.preventDefault();\n      setMobileDrawerOpen(false);\n      setMobileAccountOpen(false);\n      setCartDrawerOpen(true);\n    });\n  });\n\n  if (cartDrawerClose) {\n    cartDrawerClose.addEventListener(\"click\", function () {\n      setCartDrawerOpen(false);\n    });\n  }\n\n  if (cartDrawerBody) {\n    cartDrawerBody.addEventListener(\"click\", function (event) {\n      var button = event.target.closest(\"[data-cart-line-change]\");\n      if (!button) return;\n      event.preventDefault();\n      changeCartLine(button.getAttribute(\"data-cart-key\"), button.getAttribute(\"data-cart-quantity\"));\n    });\n  }\n\n  document.querySelectorAll(\"[data-card-cart-form]\").forEach(function (form) {\n    form.addEventListener(\"submit\", function (event) {\n      if (!window.fetch || !window.FormData) return;\n      event.preventDefault();\n      var card = form.closest(\"[data-product-card]\");\n      var submit = form.querySelector('button[type=\"submit\"]');\n      var originalText = submit ? submit.textContent : \"\";\n      if (submit) {\n        submit.disabled = true;\n        submit.textContent = storefrontText(\"Adding...\");\n      }\n\n      var addRequest = Promise.resolve();\n      if (form.hasAttribute(\"data-deferred-variant-form\") && card) {\n        addRequest = ensureCardVariant(card).then(function (variantId) {\n          var input = form.querySelector('input[name=\"id\"]');\n          if (input) input.value = variantId;\n        });\n      }\n\n      addRequest.then(function () {\n        return fetch(form.getAttribute(\"action\") || storefrontUrl(\"cart/add\"), {\n        method: \"POST\",\n        body: new FormData(form),\n        headers: { \"Accept\": \"application/json\" },\n        credentials: \"same-origin\"\n        });\n      })\n        .then(function (response) {\n          if (!response.ok) throw new Error(\"Add to cart failed\");\n          return response.json();\n        })\n        .then(function () {\n          if (submit) submit.textContent = storefrontText(\"Added\");\n          updateCartBadge();\n          setCartDrawerOpen(true);\n          window.setTimeout(function () {\n            if (submit) submit.textContent = originalText || storefrontText(\"Add to Cart\");\n          }, 1400);\n        })\n        .catch(function () {\n          form.submit();\n        })\n        .finally(function () {\n          if (submit) {\n            window.setTimeout(function () {\n              submit.disabled = false;\n            }, 250);\n          }\n        });\n    });\n  });\n\n  var quickViewModal = document.querySelector(\"[data-quick-view-modal]\");\n  if (quickViewModal) {\n    var quickViewImage = quickViewModal.querySelector(\"[data-quick-view-image]\");\n    var quickViewTitle = quickViewModal.querySelector(\"[data-quick-view-title]\");\n    var quickViewDescription = quickViewModal.querySelector(\"[data-quick-view-description]\");\n    var quickViewPrice = quickViewModal.querySelector(\"[data-quick-view-price]\");\n    var quickViewCompare = quickViewModal.querySelector(\"[data-quick-view-compare]\");\n    var quickViewVariant = quickViewModal.querySelector(\"[data-quick-view-variant]\");\n    var quickViewUrl = quickViewModal.querySelector(\"[data-quick-view-url]\");\n    var quickViewClose = quickViewModal.querySelector(\"[data-quick-view-close]\");\n    var quickViewQuantity = quickViewModal.querySelector(\"[data-card-quantity-input]\");\n\n    function setQuickViewOpen(isOpen) {\n      quickViewModal.hidden = !isOpen;\n      document.body.classList.toggle(\"quick-view-open\", isOpen);\n    }\n\n    document.querySelectorAll(\"[data-quick-view]\").forEach(function (button) {\n      button.addEventListener(\"click\", function () {\n        var card = button.closest(\"[data-product-card]\");\n        if (!card) return;\n        var title = card.getAttribute(\"data-quick-title\") || \"\";\n        var image = card.getAttribute(\"data-quick-image\") || \"\";\n        var price = card.getAttribute(\"data-quick-price\") || \"\";\n        var compare = card.getAttribute(\"data-quick-compare\") || \"\";\n        var description = card.getAttribute(\"data-quick-description\") || \"\";\n        var url = card.getAttribute(\"data-quick-url\") || \"#\";\n\n        if (quickViewImage) {\n          quickViewImage.src = image;\n          quickViewImage.alt = title;\n        }\n        if (quickViewTitle) quickViewTitle.textContent = title;\n        if (quickViewDescription) quickViewDescription.textContent = description;\n        if (quickViewPrice) quickViewPrice.textContent = price;\n        if (quickViewCompare) {\n          quickViewCompare.textContent = compare;\n          quickViewCompare.hidden = !compare;\n        }\n        if (quickViewVariant) quickViewVariant.value = \"\";\n        if (quickViewUrl) quickViewUrl.href = url;\n        if (quickViewQuantity) quickViewQuantity.value = \"1\";\n        setQuickViewOpen(true);\n        ensureCardVariant(card)\n          .then(function (variantId) {\n            if (quickViewVariant) quickViewVariant.value = variantId;\n          })\n          .catch(function () {});\n      });\n    });\n\n    if (quickViewClose) {\n      quickViewClose.addEventListener(\"click\", function () {\n        setQuickViewOpen(false);\n      });\n    }\n\n    quickViewModal.addEventListener(\"click\", function (event) {\n      if (event.target === quickViewModal) {\n        setQuickViewOpen(false);\n      }\n    });\n\n    document.addEventListener(\"keydown\", function (event) {\n      if (event.key === \"Escape\" && !quickViewModal.hidden) {\n        setQuickViewOpen(false);\n      }\n    });\n  }\n\n  var wishlistKey = \"ikyoor:wishlist\";\n  var wishlistButtons = Array.prototype.slice.call(document.querySelectorAll(\"[data-wishlist-toggle]\"));\n  var wishlistCounts = Array.prototype.slice.call(document.querySelectorAll(\"[data-wishlist-count]\"));\n\n  function readWishlist() {\n    try {\n      var rawItems = JSON.parse(window.localStorage.getItem(wishlistKey)) || [];\n      return rawItems.map(function (item) {\n        if (typeof item === \"string\") {\n          return { id: item, title: item.replace(/-/g, \" \"), url: \"/collections/all\" };\n        }\n        return item || {};\n      }).filter(function (item) {\n        return item.id;\n      });\n    } catch (error) {\n      return [];\n    }\n  }\n\n  function writeWishlist(items) {\n    try {\n      window.localStorage.setItem(wishlistKey, JSON.stringify(items));\n    } catch (error) {\n      return;\n    }\n  }\n\n  function syncWishlist() {\n    var items = readWishlist();\n    var ids = items.map(function (item) { return item.id; });\n    wishlistCounts.forEach(function (count) {\n      count.textContent = String(items.length);\n    });\n    wishlistButtons.forEach(function (button) {\n      var productId = button.getAttribute(\"data-product-id\");\n      var isSaved = ids.indexOf(productId) !== -1;\n      button.setAttribute(\"aria-pressed\", String(isSaved));\n      button.setAttribute(\"title\", isSaved ? \"Saved to wishlist\" : \"Save to wishlist\");\n    });\n    if (wishlistDrawer && wishlistDrawer.classList.contains(\"is-open\")) {\n      renderWishlistDrawer();\n    }\n  }\n\n  function getWishlistProduct(button) {\n    var card = button.closest(\"[data-product-card]\");\n    var mediaImage = card ? card.querySelector(\".product-card__media img\") : null;\n    var title = button.getAttribute(\"data-wishlist-title\") || (card && card.getAttribute(\"data-quick-title\")) || \"iKyoor product\";\n    return {\n      id: button.getAttribute(\"data-product-id\"),\n      title: title,\n      url: button.getAttribute(\"data-wishlist-url\") || (card && card.getAttribute(\"data-quick-url\")) || \"/collections/all\",\n      image: button.getAttribute(\"data-wishlist-image\") || (card && card.getAttribute(\"data-quick-image\")) || (mediaImage ? mediaImage.currentSrc || mediaImage.src : \"\"),\n      kicker: button.getAttribute(\"data-wishlist-kicker\") || \"iKyoor\",\n      price: button.getAttribute(\"data-wishlist-price\") || \"\"\n    };\n  }\n\n  function renderWishlistDrawer() {\n    if (!wishlistDrawerBody) return;\n    var items = readWishlist();\n    if (!items.length) {\n      wishlistDrawerBody.innerHTML = [\n        '<div class=\"drawer-empty\">',\n        emptyIcon(\"heart\"),\n        '<strong>Wishlist is empty.</strong>',\n        '<a class=\"drawer-empty__button\" href=\"' + escapeHtml(storefrontUrl(\"collections/all\")) + '\">Return to shop</a>',\n        \"</div>\"\n      ].join(\"\");\n      return;\n    }\n\n    wishlistDrawerBody.innerHTML = [\n      '<div class=\"drawer-list\">',\n      items.map(function (item) {\n        var image = item.image ? '<img src=\"' + escapeHtml(item.image) + '\" alt=\"' + escapeHtml(item.title) + '\">' : emptyIcon(\"heart\");\n        return [\n          '<div class=\"drawer-line\">',\n          '<a class=\"drawer-line__media\" href=\"' + escapeHtml(item.url || \"/collections/all\") + '\">' + image + \"</a>\",\n          '<div class=\"drawer-line__content\">',\n          item.kicker ? '<span class=\"drawer-line__kicker\">' + escapeHtml(item.kicker) + \"</span>\" : \"\",\n          '<a class=\"drawer-line__title\" href=\"' + escapeHtml(item.url || \"/collections/all\") + '\">' + escapeHtml(item.title || \"iKyoor product\") + \"</a>\",\n          item.price ? '<span class=\"drawer-line__price\">' + escapeHtml(item.price) + \"</span>\" : \"\",\n          '<button class=\"drawer-line__remove\" type=\"button\" data-wishlist-remove=\"' + escapeHtml(item.id) + '\">Remove</button>',\n          \"</div>\",\n          \"</div>\"\n        ].join(\"\");\n      }).join(\"\"),\n      \"</div>\"\n    ].join(\"\");\n  }\n\n  wishlistButtons.forEach(function (button) {\n    button.addEventListener(\"click\", function (event) {\n      event.preventDefault();\n      var productId = button.getAttribute(\"data-product-id\");\n      if (!productId) return;\n      var items = readWishlist();\n      var index = items.map(function (item) { return item.id; }).indexOf(productId);\n      if (index === -1) {\n        items.push(getWishlistProduct(button));\n      } else {\n        items.splice(index, 1);\n      }\n      writeWishlist(items);\n      syncWishlist();\n    });\n  });\n\n  document.querySelectorAll(\"[data-wishlist-drawer-open]\").forEach(function (opener) {\n    opener.addEventListener(\"click\", function (event) {\n      event.preventDefault();\n      setMobileDrawerOpen(false);\n      setMobileAccountOpen(false);\n      setWishlistDrawerOpen(true);\n    });\n  });\n\n  if (wishlistDrawerClose) {\n    wishlistDrawerClose.addEventListener(\"click\", function () {\n      setWishlistDrawerOpen(false);\n    });\n  }\n\n  if (wishlistDrawerBody) {\n    wishlistDrawerBody.addEventListener(\"click\", function (event) {\n      var remove = event.target.closest(\"[data-wishlist-remove]\");\n      if (!remove) return;\n      event.preventDefault();\n      var id = remove.getAttribute(\"data-wishlist-remove\");\n      var items = readWishlist().filter(function (item) {\n        return item.id !== id;\n      });\n      writeWishlist(items);\n      syncWishlist();\n      renderWishlistDrawer();\n    });\n  }\n\n  syncWishlist();\n})();\n\n/* iKyoor localization auto-submit 20260617 */\n(function () {\n  function submitLocalizationForm(form) {\n    if (!form) return;\n    if (typeof form.requestSubmit === \"function\") {\n      form.requestSubmit();\n      return;\n    }\n    form.submit();\n  }\n\n  function initLocalizationSelectors() {\n    document.querySelectorAll(\"[data-localization-select]\").forEach(function (select) {\n      if (select.dataset.localizationBound === \"true\") return;\n      select.dataset.localizationBound = \"true\";\n      select.addEventListener(\"change\", function () {\n        submitLocalizationForm(select.closest(\"form\"));\n      });\n    });\n  }\n\n  if (document.readyState === \"loading\") {\n    document.addEventListener(\"DOMContentLoaded\", initLocalizationSelectors);\n  } else {\n    initLocalizationSelectors();\n  }\n})();\n\n/* iKyoor carousel asset fallback 20260610 */\n(function () {\n  var replacements = {\n    \"home-carousel-chair.jpg\": \"home-carousel-chair-20260610-pc.jpg\",\n    \"home-carousel-chair-20260607-new.jpg\": \"home-carousel-chair-20260610-pc.jpg\",\n    \"home-carousel-knee-calf.jpg\": \"home-carousel-knee-calf-20260610-pc.jpg\",\n    \"home-carousel-knee-calf-20260607-new.jpg\": \"home-carousel-knee-calf-20260610-pc.jpg\",\n    \"home-carousel-mobile-chair.jpg\": \"home-carousel-mobile-chair-original-20260607.jpg\",\n    \"home-carousel-mobile-knee-calf.jpg\": \"home-carousel-mobile-knee-calf-original-20260607.jpg\"\n  };\n\n  function replaceAssetUrl(value) {\n    if (!value) return value;\n    Object.keys(replacements).forEach(function (from) {\n      var to = replacements[from];\n      value = value.replace(new RegExp(from + \"\\\\?v=[0-9]+\", \"g\"), to);\n      value = value.replace(new RegExp(from, \"g\"), to);\n    });\n    return value;\n  }\n\n  function refreshCarouselAssets() {\n    document.querySelectorAll(\".home-carousel source[srcset], .home-carousel img[src]\").forEach(function (element) {\n      if (element.hasAttribute(\"srcset\")) {\n        element.setAttribute(\"srcset\", replaceAssetUrl(element.getAttribute(\"srcset\")));\n      }\n      if (element.hasAttribute(\"src\")) {\n        element.setAttribute(\"src\", replaceAssetUrl(element.getAttribute(\"src\")));\n      }\n    });\n  }\n\n  if (document.readyState === \"loading\") {\n    document.addEventListener(\"DOMContentLoaded\", refreshCarouselAssets);\n  } else {\n    refreshCarouselAssets();\n  }\n})();\n"],
  "mappings": "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",
  "names": ["syncSpeedButton", "setQuickViewOpen"]
}
