{
  "version": 3,
  "sources": ["/cdn/shop/t/3/assets/vrinda.js?ck=20260708p"],
  "sourcesContent": ["(function () {\n  function getStoreConfig() {\n    try {\n      const el = document.getElementById('vrinda-store-config');\n      return el ? JSON.parse(el.textContent) : {};\n    } catch {\n      return {};\n    }\n  }\n\n  const store = getStoreConfig();\n  let geoIndia = null;\n  let fastrrLoaderPromise = null;\n  let pendingVrindaCartOpen = false;\n\n  function isIndiaTimezone() {\n    try {\n      const tz = Intl.DateTimeFormat().resolvedOptions().timeZone;\n      return tz === 'Asia/Kolkata' || tz === 'Asia/Calcutta';\n    } catch {\n      return false;\n    }\n  }\n\n  function applyIndiaCheckoutDomClass(isIndia) {\n    if (!isIndia || store.shiprocketHeadlessCheckout === false) return;\n    document.documentElement.classList.add('vrinda-india-checkout');\n    document.body.classList.add('vrinda-india-checkout');\n  }\n\n  function iconSvg(name, size) {\n    size = size || 16;\n    const paths = {\n      close: '<path d=\"M18 6 6 18M6 6l12 12\"/>',\n      minus: '<path d=\"M5 12h14\"/>',\n      plus: '<path d=\"M5 12h14\"/><path d=\"M12 5v14\"/>',\n      remove: '<path d=\"M3 6h18\"/><path d=\"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6\"/><path d=\"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2\"/>',\n      camera: '<path d=\"M14.5 4h-5L7 7H4a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2h-3l-2.5-3z\"/><circle cx=\"12\" cy=\"13\" r=\"3\"/>',\n    };\n    const d = paths[name];\n    if (!d) return '';\n    return '<svg class=\"vrinda-icon\" width=\"' + size + '\" height=\"' + size + '\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\">' + d + '</svg>';\n  }\n\n  function formatWithDelimiters(number, precision, thousands, decimal) {\n    if (isNaN(number) || number == null) return '0';\n    thousands = thousands || ',';\n    decimal = decimal || '.';\n    number = (number / 100.0).toFixed(precision);\n    const parts = number.split('.');\n    const whole = parts[0].replace(/(\\d)(?=(\\d\\d\\d)+(?!\\d))/g, '$1' + thousands);\n    const fraction = parts[1] ? decimal + parts[1] : '';\n    return whole + fraction;\n  }\n\n  function formatMoney(cents, format) {\n    if (typeof cents === 'string') cents = cents.replace('.', '');\n    const formatString = format || store.moneyFormat || '${{amount}}';\n    const placeholderRegex = /\\{\\{\\s*(\\w+)\\s*\\}\\}/;\n    const match = formatString.match(placeholderRegex);\n    const placeholder = match ? match[1] : 'amount';\n    let value = '';\n\n    switch (placeholder) {\n      case 'amount':\n        value = formatWithDelimiters(cents, 2);\n        break;\n      case 'amount_no_decimals':\n        value = formatWithDelimiters(cents, 0);\n        break;\n      case 'amount_with_comma_separator':\n        value = formatWithDelimiters(cents, 2, '.', ',');\n        break;\n      case 'amount_no_decimals_with_comma_separator':\n        value = formatWithDelimiters(cents, 0, '.', ',');\n        break;\n      case 'amount_with_apostrophe_separator':\n        value = formatWithDelimiters(cents, 2, \"'\", '.');\n        break;\n      case 'amount_with_space_separator':\n        value = formatWithDelimiters(cents, 2, ' ', ',');\n        break;\n      default:\n        value = formatWithDelimiters(cents, 2);\n    }\n\n    return formatString.replace(placeholderRegex, value);\n  }\n\n  function initLocalization() {\n    const select = document.querySelector('[data-country-select]');\n    const form = select?.closest('form');\n    if (!select || !form) return;\n    select.addEventListener('change', () => form.submit());\n  }\n\n  /* Account icon: guest \u2192 Shiprocket OTP modal on current page (GoKwik-style). Logged-in \u2192 account hub. */\n  const ACCOUNT_HUB_URL = store.accountPageUrl || store.accountPortalUrl || '/pages/my-account?view=account';\n  let userOpenedShiprocketLogin = false;\n\n  function suppressLegacyAuthWidgets() {\n    const selectors = [\n      '#icon-kwikpass',\n      '#kp-login-button-header-logo',\n      '#kwikpass-drawer-desktop',\n      '#kwikpass-drawer-mobile',\n      '.header--icon',\n      '.header--icon--mobile',\n      '[id*=\"gokwik\"]',\n      '[class*=\"gokwik\"]',\n    ];\n    document.querySelectorAll(selectors.join(',')).forEach((el) => {\n      el.setAttribute('hidden', '');\n      el.setAttribute('aria-hidden', 'true');\n      el.style.display = 'none';\n    });\n    document.body.classList.remove('cart-provider-gokwik');\n    document.documentElement.classList.remove('kp-session-pending');\n  }\n\n  function isHeaderAccountTrigger(link) {\n    if (!link) return false;\n    return (\n      link.classList.contains('header__icon--account') ||\n      link.hasAttribute('data-shiprocket-account-login') ||\n      link.getAttribute('aria-label') === 'Sign in' ||\n      link.getAttribute('aria-label') === 'My account'\n    );\n  }\n\n  function initAccountLinks() {\n    suppressLegacyAuthWidgets();\n\n    let suppressTimer = 0;\n    const runSuppression = () => {\n      suppressLegacyAuthWidgets();\n      suppressTimer += 1;\n      if (suppressTimer >= 8) clearInterval(interval);\n    };\n    const interval = setInterval(runSuppression, 500);\n    runSuppression();\n\n    document.addEventListener(\n      'click',\n      (event) => {\n        const link = event.target && event.target.closest\n          ? event.target.closest(\n              'a.header__icon--account, a[data-shiprocket-account-login], a[aria-label=\"Sign in\"], a[aria-label=\"My account\"]'\n            )\n          : null;\n        if (!link) return;\n        if (link.closest('[data-account-main], .account-sidebar, .account-order-list, [data-account-guest]')) return;\n\n        event.preventDefault();\n        event.stopPropagation();\n\n        if (isAccountAccessReady()) {\n          window.location.assign(ACCOUNT_HUB_URL);\n          return;\n        }\n        launchShiprocketLogin({ fromIcon: true });\n      },\n      true\n    );\n\n    syncAccountIconForSession();\n  }\n\n  initAccountLinks();\n\n  function isIndiaVisitorSync() {\n    if (isIndiaTimezone()) return true;\n    if (store.isIndia) return true;\n    if (window.Shopify?.country === 'IN') return true;\n    if (geoIndia === true) return true;\n    return false;\n  }\n\n  async function detectIndiaVisitor() {\n    if (isIndiaTimezone()) {\n      geoIndia = true;\n      applyIndiaCheckoutDomClass(true);\n      return true;\n    }\n    if (store.isIndia || window.Shopify?.country === 'IN') {\n      geoIndia = true;\n      applyIndiaCheckoutDomClass(true);\n      return true;\n    }\n    if (geoIndia !== null) return geoIndia;\n    try {\n      const res = await fetch('/browsing_context_suggestions.json');\n      const data = await res.json();\n      geoIndia = data?.detected_values?.country?.handle === 'IN';\n    } catch {\n      geoIndia = false;\n    }\n    if (geoIndia) applyIndiaCheckoutDomClass(true);\n    return geoIndia;\n  }\n\n  function applyIndiaCheckoutLabels(isIndia) {\n    document.querySelectorAll('[data-checkout-actions]').forEach((wrap) => {\n      const isDrawer = wrap.classList.contains('checkout-actions--drawer');\n      const btn = wrap.querySelector('.shiprocket-checkout, [name=\"checkout\"]');\n      const hint = wrap.querySelector('[data-checkout-hint]');\n      const legal = wrap.querySelector('[data-checkout-legal]');\n      if (btn && btn.name !== 'checkout') {\n        const longLabel = btn.querySelector('.checkout-btn__label--long');\n        const shortLabel = btn.querySelector('.checkout-btn__label--short');\n        const singleLabel = btn.querySelector('.checkout-btn__label:not(.checkout-btn__label--long):not(.checkout-btn__label--short)');\n        const indiaLong = isDrawer ? 'Checkout' : 'Checkout \u2014 UPI \u00B7 Cards \u00B7 COD';\n        const intlLong = isDrawer ? 'Checkout' : 'Secure International Checkout';\n        if (singleLabel) {\n          singleLabel.textContent = 'Checkout';\n        } else if (longLabel) {\n          longLabel.textContent = isIndia ? indiaLong : intlLong;\n          if (shortLabel) shortLabel.textContent = 'Checkout';\n        }\n        if (isIndia) {\n          if (!btn.id) btn.id = isDrawer ? 'shiprocket-checkout-drawer' : 'shiprocket-checkout';\n          btn.classList.add('shiprocket-checkout');\n          btn.type = 'button';\n          btn.removeAttribute('name');\n        }\n      }\n      if (hint) {\n        hint.textContent = isIndia\n          ? 'Secure Shiprocket checkout \u00B7 Phone OTP \u00B7 UPI \u00B7 Cards \u00B7 COD'\n          : 'Pay in ' + (store.currency || 'INR') + ' with cards, PayPal & more. Duties may apply at delivery.';\n      }\n      if (legal) {\n        legal.innerHTML = isIndia\n          ? 'By continuing you agree to our <a href=\"/pages/terms-of-service\">Terms</a> and <a href=\"/pages/privacy-policy\">Privacy Policy</a>. Checkout uses Shiprocket Fastrr with phone OTP verification.'\n          : 'Prices shown in ' + (store.currency || 'INR') + '. Final amount confirmed at checkout. See <a href=\"/pages/shipping-delivery\">Shipping</a> &amp; <a href=\"/pages/returns-exchanges\">Returns</a>.';\n      }\n    });\n    document.querySelectorAll('[data-market-banner]').forEach((banner) => {\n      if (isIndia) {\n        banner.innerHTML = '<span>Shipping across India \u00B7 Free over ' + (store.freeShippingThresholdFormatted || formatMoney((store.freeShippingThreshold || 999) * 100)) + ' \u00B7 COD via Shiprocket Checkout</span>';\n      }\n    });\n  }\n\n  function shouldUseShiprocketCheckout(isIndia) {\n    return !!isIndia && store.shiprocketCheckoutEnabled !== false;\n  }\n\n  function ensureShiprocketScript() {\n    if (\n      typeof window.shiprocketCheckoutBuyCartHandler === 'function' ||\n      typeof window.initiateFloCheckout === 'function' ||\n      typeof window.handleFloCheckoutBtn === 'function' ||\n      typeof window.fastrrCheckout === 'function' ||\n      typeof window.FastrrCheckout === 'function' ||\n      window.Fastrr?.Checkout?.open ||\n      window.ShiprocketCheckout?.open\n    ) {\n      return Promise.resolve(true);\n    }\n\n    if (fastrrLoaderPromise) return fastrrLoaderPromise;\n\n    const existing = document.querySelector('script[data-vrinda-fastrr], script[data-vrinda-fastrr=\"channel\"]');\n    if (existing) {\n      fastrrLoaderPromise = new Promise((resolve, reject) => {\n        existing.addEventListener('load', () => resolve(true), { once: true });\n        existing.addEventListener('error', () => reject(new Error('Fastrr script failed to load')), { once: true });\n      });\n      return fastrrLoaderPromise;\n    }\n\n    const src = window.__vrindaFastrrScriptUrl || 'https://fastrr-boost-ui.pickrr.com/assets/js/channels/shopify.js';\n    fastrrLoaderPromise = new Promise((resolve, reject) => {\n      const script = document.createElement('script');\n      script.src = src;\n      script.async = true;\n      script.defer = true;\n      script.dataset.vrindaFastrr = 'true';\n      script.onload = () => resolve(true);\n      script.onerror = () => reject(new Error('Fastrr script failed to load'));\n      document.head.appendChild(script);\n    });\n    return fastrrLoaderPromise;\n  }\n\n  async function waitForShiprocketHandler(timeoutMs = 4000) {\n    const start = Date.now();\n    while (Date.now() - start < timeoutMs) {\n      if (\n        typeof window.shiprocketCheckoutBuyCartHandler === 'function' ||\n        typeof window.initiateFloCheckout === 'function' ||\n        typeof window.handleFloCheckoutBtn === 'function' ||\n        typeof window.fastrrCheckout === 'function' ||\n        typeof window.FastrrCheckout === 'function' ||\n        window.Fastrr?.Checkout?.open ||\n        window.ShiprocketCheckout?.open\n      ) {\n        return true;\n      }\n      await new Promise((resolve) => setTimeout(resolve, 100));\n    }\n    return false;\n  }\n\n  function fastrrCheckoutUiPresent() {\n    return !!(\n      document.getElementById('headless-container') ||\n      document.getElementById('fastrr-main-container') ||\n      document.getElementById('headless-iframe') ||\n      document.getElementById('headless-payment-iframe')\n    );\n  }\n\n  async function waitForFastrrCheckoutUi(timeoutMs = 12000) {\n    const start = Date.now();\n    while (Date.now() - start < timeoutMs) {\n      if (isFastrrCheckoutUiActive()) return true;\n      await new Promise((resolve) => setTimeout(resolve, 100));\n    }\n    return isFastrrCheckoutUiActive();\n  }\n\n  function callShiprocketHandler(handler) {\n    if (typeof handler !== 'function') return false;\n    handler();\n    return true;\n  }\n\n  function invokeShiprocketCheckout() {\n    const handlers = [\n      window.shiprocketCheckoutBuyCartHandler,\n      window.initiateFloCheckout,\n      window.handleFloCheckoutBtn,\n      window.fastrrCheckout,\n      window.FastrrCheckout,\n      () => window.Fastrr?.Checkout?.open?.(),\n      () => window.ShiprocketCheckout?.open?.(),\n      window.openShiprocketCheckout,\n    ];\n    for (const handler of handlers) {\n      try {\n        if (callShiprocketHandler(handler)) return true;\n      } catch (_) {}\n    }\n    return false;\n  }\n\n  function isFastrrCheckoutUiActive() {\n    const nodes = document.querySelectorAll(\n      '#headless-container, #fastrr-main-container, #headless-iframe, #headless-payment-iframe'\n    );\n    for (const node of nodes) {\n      if (!(node instanceof HTMLElement)) continue;\n      const style = window.getComputedStyle(node);\n      if (style.display === 'none' || style.visibility === 'hidden' || Number(style.opacity) === 0) continue;\n      if (node.offsetParent !== null || style.position === 'fixed') return true;\n    }\n    return false;\n  }\n\n  function hideFastrrCheckoutNodes() {\n    document.querySelectorAll(\n      '#headless-container, #fastrr-main-container, #fastrr-prefetch-container, #headless-iframe, #headless-payment-iframe'\n    ).forEach((node) => {\n      if (!(node instanceof HTMLElement)) return;\n      node.style.setProperty('display', 'none', 'important');\n      node.style.setProperty('visibility', 'hidden', 'important');\n      node.style.setProperty('pointer-events', 'none', 'important');\n      node.setAttribute('aria-hidden', 'true');\n    });\n  }\n\n  let fastrrCloseWatchTimer;\n\n  function stopFastrrCloseWatch() {\n    if (!fastrrCloseWatchTimer) return;\n    clearInterval(fastrrCloseWatchTimer);\n    fastrrCloseWatchTimer = null;\n  }\n\n  let fastrrCloseWatchStartedAt = 0;\n\n  function startFastrrCloseWatch() {\n    stopFastrrCloseWatch();\n    fastrrCloseWatchStartedAt = Date.now();\n    fastrrCloseWatchTimer = setInterval(() => {\n      if (!document.body.classList.contains('fastrr-checkout-open')) {\n        stopFastrrCloseWatch();\n        return;\n      }\n      if (isFastrrCheckoutUiActive()) {\n        document.body.classList.add('fastrr-checkout-ui-active');\n        return;\n      }\n      // Fastrr iframe can take a few seconds \u2014 do not tear down during bootstrap.\n      if (Date.now() - fastrrCloseWatchStartedAt < 12000) return;\n      resetFastrrCheckoutUi();\n    }, 350);\n  }\n\n  function resetFastrrCheckoutUi() {\n    document.body.classList.remove('fastrr-checkout-open');\n    document.body.classList.remove('fastrr-checkout-ui-active');\n    document.body.classList.remove('vcc-checkout-pending');\n    document.body.style.removeProperty('overflow');\n    document.documentElement.style.removeProperty('overflow');\n    hideFastrrCheckoutNodes();\n    resetVrindaCommerceCartAfterCheckout();\n    stopCheckoutObserver();\n    stopFastrrCloseWatch();\n    document.dispatchEvent(new CustomEvent('fastrr:checkout-close'));\n  }\n\n  function shouldResetFastrrFromCallback(payload) {\n    if (!payload || typeof payload !== 'object') return false;\n    if (payload.exitCheckout) return true;\n    const eventName = String(payload.event || payload.type || payload.action || '').toLowerCase();\n    return /close|exit|back|cancel|dismiss/.test(eventName);\n  }\n\n  function resetCheckoutLaunchState() {\n    resetFastrrCheckoutUi();\n  }\n\n  function clipFastrrIframes() {\n    document.querySelectorAll('#headless-iframe, #headless-payment-iframe').forEach((iframe) => {\n      iframe.setAttribute('scrolling', 'yes');\n      iframe.style.overflow = 'auto';\n      iframe.style.width = '100%';\n      iframe.style.height = '100%';\n      let clip = iframe.parentElement;\n      if (!clip?.classList.contains('fastrr-iframe-clip')) {\n        clip = document.createElement('div');\n        clip.className = 'fastrr-iframe-clip';\n        iframe.parentNode.insertBefore(clip, iframe);\n        clip.appendChild(iframe);\n      }\n    });\n  }\n\n  function ensureFastrrCheckoutViewport() {\n    const main = document.getElementById('fastrr-main-container');\n    const headless = document.getElementById('headless-container');\n    [main, headless].forEach((node) => {\n      if (!node || node.parentElement === document.body) return;\n      document.body.appendChild(node);\n    });\n    if (fastrrCheckoutUiPresent()) {\n      document.body.classList.add('fastrr-checkout-open');\n      if (isFastrrCheckoutUiActive()) document.body.classList.add('fastrr-checkout-ui-active');\n      document.body.style.overflow = 'hidden';\n      clipFastrrIframes();\n    }\n  }\n\n  function hideVrindaCommerceCartForCheckout() {\n    document.body.classList.add('vcc-checkout-pending');\n    if (window.VrindaCommerceCart && typeof window.VrindaCommerceCart.close === 'function') {\n      window.VrindaCommerceCart.close();\n    }\n    document.querySelectorAll('.vcc-drawer, .vcc-overlay, .vcc-sticky-pill').forEach((node) => {\n      node.classList.add('vcc-hidden');\n    });\n  }\n\n  function resetVrindaCommerceCartAfterCheckout() {\n    document.body.classList.remove('vcc-checkout-pending');\n    document.querySelectorAll('.vcc-drawer, .vcc-overlay, .vcc-sticky-pill').forEach((node) => {\n      node.classList.remove('vcc-hidden');\n    });\n  }\n\n  let checkoutBindTimer;\n  let checkoutViewportTimer;\n  let checkoutObserver;\n\n  function hasRelevantCheckoutMutation(mutations) {\n    return mutations.some((mutation) => {\n      return Array.from(mutation.addedNodes || []).some((node) => {\n        if (!(node instanceof Element)) return false;\n        if (\n          node.id === 'headless-container' ||\n          node.id === 'fastrr-main-container' ||\n          node.id === 'headless-iframe' ||\n          node.id === 'headless-payment-iframe'\n        ) {\n          return true;\n        }\n        return !!node.querySelector?.(\n          '#headless-container, #fastrr-main-container, #headless-iframe, #headless-payment-iframe, [data-shiprocket-checkout], .shiprocket-checkout, #shiprocket-checkout, #shiprocket-checkout-drawer'\n        );\n      });\n    });\n  }\n\n  function startCheckoutObserver() {\n    if (checkoutObserver || !document.body) return;\n    checkoutObserver = new MutationObserver((mutations) => {\n      if (document.body.classList.contains('fastrr-checkout-open') && !isFastrrCheckoutUiActive()) {\n        resetFastrrCheckoutUi();\n        return;\n      }\n      if (!hasRelevantCheckoutMutation(mutations)) return;\n      clearTimeout(checkoutBindTimer);\n      checkoutBindTimer = setTimeout(bindShiprocketCheckoutButtons, 250);\n      if (fastrrCheckoutUiPresent()) {\n        clearTimeout(checkoutViewportTimer);\n        checkoutViewportTimer = setTimeout(ensureFastrrCheckoutViewport, 50);\n      }\n    });\n    checkoutObserver.observe(document.body, { childList: true, subtree: true });\n  }\n\n  function stopCheckoutObserver() {\n    if (!checkoutObserver) return;\n    checkoutObserver.disconnect();\n    checkoutObserver = null;\n    clearTimeout(checkoutBindTimer);\n    clearTimeout(checkoutViewportTimer);\n  }\n\n  async function launchShiprocketCheckout() {\n    const drawer = document.getElementById('cart-drawer');\n    const overlay = document.getElementById('cart-drawer-overlay');\n    if (drawer?.classList.contains('open')) {\n      drawer.classList.remove('open');\n      overlay?.classList.remove('open');\n      document.body.classList.remove('cart-drawer-open');\n      drawer.setAttribute('aria-hidden', 'true');\n      overlay?.setAttribute('aria-hidden', 'true');\n    }\n    overlay?.classList.remove('open');\n    hideVrindaCommerceCartForCheckout();\n    document.body.classList.add('fastrr-checkout-open');\n    document.body.style.overflow = 'hidden';\n    startCheckoutObserver();\n    try {\n      await ensureShiprocketScript();\n      await waitForShiprocketHandler();\n    } catch (_) {\n      resetCheckoutLaunchState();\n      window.location.href = '/checkout';\n      return;\n    }\n    if (!invokeShiprocketCheckout()) {\n      resetCheckoutLaunchState();\n      showToast('Checkout unavailable', 'Please refresh and try again');\n      return;\n    }\n    const opened = await waitForFastrrCheckoutUi();\n    if (!opened) {\n      resetCheckoutLaunchState();\n      showToast('Checkout is loading', 'Please tap Checkout again');\n      return;\n    }\n    ensureFastrrCheckoutViewport();\n    requestAnimationFrame(ensureFastrrCheckoutViewport);\n    setTimeout(ensureFastrrCheckoutViewport, 100);\n    setTimeout(ensureFastrrCheckoutViewport, 500);\n    startFastrrCloseWatch();\n  }\n\n  window.launchShiprocketCheckout = launchShiprocketCheckout;\n\n  async function launchShiprocketBuyNow(clickEvent) {\n    const btn = clickEvent?.currentTarget;\n    if (!btn) return;\n\n    const form = document.getElementById('product-form');\n    if (!form) return;\n\n    const isIndia = await detectIndiaVisitor();\n    if (!shouldUseShiprocketCheckout(isIndia)) {\n      const labelNode = btn.querySelector('.product-buy-btn__label') || btn;\n      const label = labelNode.textContent;\n      btn.disabled = true;\n      btn.setAttribute('aria-busy', 'true');\n      try {\n        const fd = new FormData(form);\n        const res = await fetch('/cart/add.js', { method: 'POST', body: fd });\n        if (!res.ok) throw new Error('Add failed');\n        window.location.href = '/checkout';\n      } catch {\n        showToast('Could not proceed', 'Please try again');\n        btn.disabled = false;\n        btn.removeAttribute('aria-busy');\n        if (labelNode !== btn) labelNode.textContent = label;\n      }\n      return;\n    }\n\n    const drawer = document.getElementById('cart-drawer');\n    const overlay = document.getElementById('cart-drawer-overlay');\n    if (drawer?.classList.contains('open')) {\n      drawer.classList.remove('open');\n      overlay?.classList.remove('open');\n      document.body.classList.remove('cart-drawer-open');\n      drawer.setAttribute('aria-hidden', 'true');\n      overlay?.setAttribute('aria-hidden', 'true');\n    }\n    overlay?.classList.remove('open');\n    hideVrindaCommerceCartForCheckout();\n    document.body.classList.add('fastrr-checkout-open');\n    document.body.style.overflow = 'hidden';\n    startCheckoutObserver();\n\n    try {\n      await ensureShiprocketScript();\n      await waitForShiprocketHandler(6000);\n    } catch (_) {\n      resetCheckoutLaunchState();\n      window.location.href = '/checkout';\n      return;\n    }\n\n    let launched = false;\n    try {\n      if (typeof window.shiprocketCheckoutEvents?.buyProduct === 'function') {\n        window.shiprocketCheckoutEvents.buyProduct(clickEvent);\n        launched = true;\n      } else if (typeof window.shiprocketCheckoutBuyProductHandler === 'function') {\n        window.shiprocketCheckoutBuyProductHandler(clickEvent);\n        launched = true;\n      } else if (typeof window.HeadlessCheckout?.buyNow === 'function') {\n        window.HeadlessCheckout.buyNow(clickEvent);\n        launched = true;\n      }\n    } catch (_) {\n      launched = false;\n    }\n\n    if (!launched) {\n      try {\n        const fd = new FormData(form);\n        const res = await fetch('/cart/add.js', { method: 'POST', body: fd });\n        if (!res.ok) throw new Error('Add failed');\n        if (!invokeShiprocketCheckout()) throw new Error('Checkout handler missing');\n      } catch (_) {\n        resetCheckoutLaunchState();\n        window.location.href = '/checkout';\n        return;\n      }\n    }\n\n    const opened = await waitForFastrrCheckoutUi();\n    if (!opened) {\n      resetCheckoutLaunchState();\n      showToast('Checkout is loading', 'Please tap Buy now again');\n      return;\n    }\n    ensureFastrrCheckoutViewport();\n    requestAnimationFrame(ensureFastrrCheckoutViewport);\n    setTimeout(ensureFastrrCheckoutViewport, 100);\n    setTimeout(ensureFastrrCheckoutViewport, 500);\n    startFastrrCloseWatch();\n  }\n\n  window.launchShiprocketBuyNow = launchShiprocketBuyNow;\n\n  function isShopifyCustomerLoggedIn() {\n    if (store.customerLoggedIn) return true;\n    if (window.ShopifyAnalytics?.meta?.page?.customerId) return true;\n    if (document.querySelector('[data-shopify-customer=\"true\"]')) return true;\n    return false;\n  }\n\n  function markShiprocketSession() {\n    setFastrrCookie('ShiprocketLoginCompleted', '1');\n    try {\n      localStorage.setItem('vrinda_shiprocket_logged_in', '1');\n    } catch (_) {}\n  }\n\n  function clearShiprocketSession() {\n    setFastrrCookie('ShiprocketLoginCompleted', '', -1);\n    try {\n      localStorage.removeItem('vrinda_shiprocket_logged_in');\n    } catch (_) {}\n  }\n\n  function isShiprocketSessionActive() {\n    if (getFastrrCookie('ShiprocketLoginCompleted') === '1') return true;\n    if (getFastrrCookie('LoggedInShopifyOnce') === '1') return true;\n    try {\n      if (localStorage.getItem('vrinda_shiprocket_logged_in') === '1') return true;\n    } catch (_) {}\n    return false;\n  }\n\n  /** Shopify customer OR completed Shiprocket phone OTP \u2014 enough to open account hub, not login modal again. */\n  function isAccountAccessReady() {\n    return isShopifyCustomerLoggedIn() || isShiprocketSessionActive();\n  }\n\n  function syncAccountIconForSession() {\n    const shopify = isShopifyCustomerLoggedIn();\n    const ready = shopify || isShiprocketSessionActive();\n    document\n      .querySelectorAll(\n        'a.header__icon--account, a[data-shiprocket-account-login], .mobile-menu-footer a[aria-label=\"Sign in\"], .mobile-menu-footer a[href=\"#account-login\"]'\n      )\n      .forEach((link) => {\n        if (!(link instanceof HTMLAnchorElement)) return;\n        if (ready) {\n          link.setAttribute('href', ACCOUNT_HUB_URL);\n          link.setAttribute('aria-label', 'My account');\n          link.removeAttribute('data-shiprocket-account-login');\n          if (link.classList.contains('btn')) link.textContent = 'My account';\n        }\n      });\n    document.documentElement.classList.toggle('vrinda-shiprocket-session', isShiprocketSessionActive());\n    document.documentElement.classList.toggle('vrinda-shopify-customer', shopify);\n  }\n\n  function isAccountAuthPage() {\n    const path = window.location.pathname.replace(/\\/$/, '') || '/';\n    if (path === '/pages/my-account' || path.startsWith('/pages/my-account/')) return true;\n    return new URLSearchParams(window.location.search).get('login') === 'shiprocket';\n  }\n\n  function enforceAccountOnlyLoginModal() {\n    // Allow intentional icon/account login overlays anywhere.\n    // Strip only auto marketing popups that we did not open.\n    if (userOpenedShiprocketLogin || isAccountAuthPage()) return;\n    const container = document.getElementById('shiprocket-login-container');\n    if (container && container.dataset.vrindaLogin === 'true') return;\n    clearShiprocketLoginContainer();\n  }\n\n  function getFastrrCookie(name) {\n    const value = `; ${document.cookie}`;\n    const parts = value.split(`; ${name}=`);\n    if (parts.length === 2) return parts.pop().split(';').shift();\n    return null;\n  }\n\n  function getSellerDomainForFastrr() {\n    const el = document.getElementById('sellerDomain');\n    return el?.value || store.sellerDomain || window.location.hostname;\n  }\n\n  function setFastrrCookie(name, value, minutesToExpire) {\n    const date = new Date();\n    if (minutesToExpire === -1) {\n      date.setTime(0);\n    } else if (minutesToExpire) {\n      date.setTime(date.getTime() + minutesToExpire * 60 * 1000);\n    } else {\n      date.setFullYear(date.getFullYear() + 10);\n    }\n    document.cookie = `${name}=${value};expires=${date.toUTCString()};path=/`;\n  }\n\n  function buildFastrrSellerConfig(options = {}) {\n    let existing = null;\n    try {\n      const raw = getFastrrCookie('fastrr_seller_config');\n      if (raw) existing = JSON.parse(raw);\n    } catch (_) {}\n\n    const primary = store.shiprocketLoginPrimaryColor || '#b35b54';\n    const theme = store.shiprocketLoginThemeColor || '#f7ccc5';\n    const logo = store.shiprocketLoginLogoUrl || '';\n    // enabled:false in cookie stops marketing.js from opening landing popups site-wide.\n    // Account iframe still gets branding via sellerConfigParent (enabled:true there).\n    const enabled = options.enablePopup === true;\n    const config = {\n      status: true,\n      data: {\n        eventsEnabled: existing?.data?.eventsEnabled ?? true,\n        accountPageEnabled: true,\n        popupConfigList: [{\n          type: 'all',\n          pageType: enabled ? 'account' : 'all',\n          enabled,\n          uiConfig: {\n            subText: '',\n            subTextLogin: store.shiprocketLoginSubtext || '',\n            discountText: '',\n            theme: 'light',\n            primaryColor: primary,\n            imgUrl: logo,\n            imgUrlLogin: logo,\n            discountCode: '',\n            loginPageTheme: theme,\n          },\n        }],\n      },\n    };\n    return config;\n  }\n\n  function ensureFastrrSellerConfigBranding() {\n    const config = buildFastrrSellerConfig({ enablePopup: false });\n    setFastrrCookie('fastrr_seller_config', JSON.stringify(config), 30);\n    return config;\n  }\n\n  function applyFastrrLoginOpenState(open) {\n    document.body.classList.toggle('fastrr-login-open', open);\n    document.documentElement.classList.toggle('fastrr-login-open', open);\n    document.querySelectorAll('[id*=\"nector\"], [class*=\"nector\"], [id*=\"Nector\"], [class*=\"Nector\"]').forEach((node) => {\n      if (!(node instanceof HTMLElement)) return;\n      if (open) {\n        node.dataset.vrindaLoginHidden = node.style.display || '';\n        node.style.setProperty('display', 'none', 'important');\n      } else if (node.dataset.vrindaLoginHidden !== undefined) {\n        node.style.display = node.dataset.vrindaLoginHidden;\n        delete node.dataset.vrindaLoginHidden;\n      }\n    });\n    if (open) {\n      document.body.style.overflow = 'hidden';\n    } else if (!document.body.classList.contains('fastrr-checkout-open')) {\n      document.body.style.removeProperty('overflow');\n    }\n  }\n\n  function clearShiprocketLoginContainer() {\n    document.getElementById('shiprocket-login-container')?.remove();\n    applyFastrrLoginOpenState(false);\n  }\n\n  async function waitForShiprocketMarketingLogin(timeoutMs = 8000) {\n    const start = Date.now();\n    while (Date.now() - start < timeoutMs) {\n      if (typeof window.shipRocketMarketingLogin === 'function') return true;\n      await new Promise((resolve) => setTimeout(resolve, 100));\n    }\n    return typeof window.shipRocketMarketingLogin === 'function';\n  }\n\n  function buildShiprocketLoginUrl(accountMode) {\n    ensureFastrrSellerConfigBranding();\n    const checkoutBuyer = (window.checkoutBuyer || store.checkoutBuyerUrl || 'https://fastrr-boost-ui.pickrr.com/').replace(/\\/?$/, '/');\n    const sellerConfigParent = JSON.stringify(buildFastrrSellerConfig({ enablePopup: true }));\n    const pageType = accountMode ? 'account' : 'Landing';\n    const params = new URLSearchParams();\n    params.set('popupType', 'shiprocketLogin');\n    params.set('pageType', pageType);\n    params.set('seller-domain', getSellerDomainForFastrr());\n    params.set('ipAddress', 'null');\n    params.set('sellerConfigParent', window.btoa(encodeURIComponent(sellerConfigParent)));\n    if (getFastrrCookie('LoggedInShopifyOnce')) {\n      params.set('LoggedInShopifyOnce', 'true');\n    }\n    if (accountMode) {\n      params.set('accountIconClicked', 'true');\n    }\n    return `${checkoutBuyer}?${params.toString()}`;\n  }\n\n  function hideShiprocketLoginModal() {\n    const container = document.getElementById('shiprocket-login-container');\n    if (container && (userOpenedShiprocketLogin || isAccountAuthPage())) {\n      container.style.display = 'none';\n    } else {\n      clearShiprocketLoginContainer();\n    }\n    userOpenedShiprocketLogin = false;\n    if (!document.body.classList.contains('fastrr-checkout-open')) {\n      document.body.style.removeProperty('overflow');\n    }\n    applyFastrrLoginOpenState(false);\n  }\n\n  function showShiprocketLoginModal() {\n    const container = document.getElementById('shiprocket-login-container');\n    if (container) {\n      container.style.display = 'block';\n      document.body.style.overflow = 'hidden';\n      applyFastrrLoginOpenState(true);\n      return true;\n    }\n    return false;\n  }\n\n  function showShiprocketPairingNote(show) {\n    const note = document.querySelector('[data-shiprocket-pairing-note]');\n    if (note) note.hidden = !show;\n  }\n\n  function reloadAfterShiprocketLogin() {\n    // Stay on the current page (homepage etc). Only account pages reload the hub URL.\n    if (isAccountAuthPage()) {\n      const target = ACCOUNT_HUB_URL;\n      window.location.replace(target + (target.includes('?') ? '&' : '?') + 'sr_auth=1');\n      return;\n    }\n    const url = new URL(window.location.href);\n    url.searchParams.set('sr_auth', '1');\n    window.location.replace(url.pathname + url.search + url.hash);\n  }\n\n  async function waitForShopifyCustomerSession(timeoutMs = 8000) {\n    const start = Date.now();\n    while (Date.now() - start < timeoutMs) {\n      if (isShopifyCustomerLoggedIn()) return true;\n      if (window.ShopifyAnalytics?.meta?.page?.customerId) return true;\n      await new Promise((r) => setTimeout(r, 300));\n    }\n    return isShopifyCustomerLoggedIn();\n  }\n\n  function handleShiprocketLoginMessage(event) {\n    const trigger = event.data?.trigger;\n    if (!trigger) return;\n\n    const phone =\n      event.data?.phone ||\n      event.data?.mobile ||\n      event.data?.data?.phone ||\n      event.data?.customer?.phone ||\n      null;\n    if (phone) {\n      try {\n        localStorage.setItem('vrinda_shiprocket_phone', String(phone));\n        sessionStorage.setItem(\n          'vrinda_fastrr_auth',\n          JSON.stringify({ at: Date.now(), event: trigger, phone: String(phone) })\n        );\n      } catch (_) {}\n    }\n\n    if (trigger === 'Login-popup-close') {\n      setFastrrCookie('shiprocketLoginPopupClosed', '1', 1440);\n      hideShiprocketLoginModal();\n      return;\n    }\n\n    if (trigger === 'login-completed') {\n      markShiprocketSession();\n      hideShiprocketLoginModal();\n      syncAccountIconForSession();\n      // Wait for Multipass cookie when Shiprocket pairing is enabled (classic accounts).\n      waitForShopifyCustomerSession(8000).then(() => {\n        reloadAfterShiprocketLogin();\n      });\n      return;\n    }\n\n    if (trigger === 'shopify-logged-in') {\n      setFastrrCookie('LoggedInShopifyOnce', '1');\n      markShiprocketSession();\n      hideShiprocketLoginModal();\n      syncAccountIconForSession();\n      // Multipass succeeded \u2014 soft-reload current page so Liquid customer is available next visit to account.\n      window.setTimeout(reloadAfterShiprocketLogin, 350);\n      return;\n    }\n\n    if (trigger === 'Shopify-login-error') {\n      setFastrrCookie('shopifyLoginError', '1', 30);\n      markShiprocketSession();\n      hideShiprocketLoginModal();\n      syncAccountIconForSession();\n      if (isAccountAuthPage()) showShiprocketPairingNote(true);\n      else reloadAfterShiprocketLogin();\n    }\n  }\n\n  function mountShiprocketLoginIframe(accountMode) {\n    if (document.getElementById('fastrr-main-container')) {\n      return true;\n    }\n    const existing = document.getElementById('shiprocket-login-container');\n    if (existing) existing.remove();\n\n    const url = buildShiprocketLoginUrl(accountMode);\n    const container = document.createElement('div');\n    container.id = 'shiprocket-login-container';\n    container.dataset.vrindaLogin = 'true';\n    container.style.display = 'block';\n    container.innerHTML = `<div class=\"headless-modal\"><div class=\"headless-modal-content\"><div class=\"headless-modal-body\"><iframe id=\"headless-iframe-login\" src=\"${url}\" allow=\"clipboard-read; clipboard-write\" title=\"Sign in with phone\"></iframe></div></div></div>`;\n    document.body.appendChild(container);\n    applyFastrrLoginOpenState(true);\n    return true;\n  }\n\n  function purgeForeignFastrrLoginContainers() {\n    if (userOpenedShiprocketLogin || isAccountAuthPage()) return;\n    const container = document.getElementById('shiprocket-login-container');\n    if (container && container.dataset.vrindaLogin === 'true') return;\n    clearShiprocketLoginContainer();\n  }\n\n  function hijackShiprocketMarketingLogin() {\n    window.shipRocketMarketingLogin = function () {\n      if (isAccountAccessReady()) {\n        return;\n      }\n      // Block automatic landing popups; only icon / explicit CTA may open login.\n      if (!userOpenedShiprocketLogin && !isAccountAuthPage()) {\n        return;\n      }\n      if (showShiprocketLoginModal()) return;\n      mountShiprocketLoginIframe(true);\n    };\n  }\n\n  async function launchShiprocketLogin(options = {}) {\n    if (store.shiprocketLoginEnabled === false || store.shiprocketCheckoutEnabled === false) {\n      if (isAccountAuthPage()) return;\n      window.location.href = ACCOUNT_HUB_URL;\n      return;\n    }\n    if (isAccountAccessReady() && options.fromIcon) {\n      window.location.href = ACCOUNT_HUB_URL;\n      return;\n    }\n    if (isAccountAccessReady() && !options.force && !isAccountAuthPage()) {\n      window.location.href = ACCOUNT_HUB_URL;\n      return;\n    }\n\n    userOpenedShiprocketLogin = options.fromIcon === true || isAccountAuthPage() || options.force === true;\n\n    if (showShiprocketLoginModal()) return;\n    ensureFastrrSellerConfigBranding();\n    await ensureShiprocketScript();\n    hijackShiprocketMarketingLogin();\n    mountShiprocketLoginIframe(true);\n  }\n\n  window.launchShiprocketLogin = launchShiprocketLogin;\n\n  function initFastrrLoginPageGuard() {\n    ensureFastrrSellerConfigBranding();\n    hijackShiprocketMarketingLogin();\n    enforceAccountOnlyLoginModal();\n    window.addEventListener('message', handleShiprocketLoginMessage);\n    window.addEventListener('load', () => {\n      ensureFastrrSellerConfigBranding();\n      hijackShiprocketMarketingLogin();\n      enforceAccountOnlyLoginModal();\n    });\n    window.addEventListener('pageshow', () => {\n      ensureFastrrSellerConfigBranding();\n      hijackShiprocketMarketingLogin();\n      enforceAccountOnlyLoginModal();\n    });\n  }\n\n  function initShiprocketAccountLogin() {\n    if (store.shiprocketLoginEnabled === false) return;\n\n    syncAccountIconForSession();\n\n    // Native Shopify / leftover account URLs from header \u2192 modal (guest) or hub (session)\n    document.addEventListener('click', (e) => {\n      const link = e.target.closest('a[href*=\"customer_authentication\"], a[href*=\"account.vrindaaddons.com\"], a[href=\"/account\"], a[href=\"/account/login\"]');\n      if (!link) return;\n      if (link.closest('[data-account-main], .account-sidebar, .account-order-list')) return;\n      if (isHeaderAccountTrigger(link)) return; // handled in initAccountLinks\n      e.preventDefault();\n      e.stopPropagation();\n      if (isAccountAccessReady()) {\n        window.location.href = ACCOUNT_HUB_URL;\n        return;\n      }\n      launchShiprocketLogin({ fromIcon: true });\n    }, true);\n\n    document.querySelectorAll('[data-shiprocket-login], [data-shiprocket-reopen]').forEach((el) => {\n      el.addEventListener('click', (e) => {\n        e.preventDefault();\n        // Explicit CTA on account page may re-open OTP even if session cookie exists\n        launchShiprocketLogin({ force: true });\n      });\n    });\n\n    if (!isAccountAuthPage()) {\n      const strip = () => enforceAccountOnlyLoginModal();\n      strip();\n      window.setTimeout(strip, 300);\n      window.setTimeout(strip, 1200);\n      return;\n    }\n\n    // Shopify Multipass session \u2014 Liquid already rendered the real dashboard.\n    if (isShopifyCustomerLoggedIn()) {\n      syncAccountIconForSession();\n      return;\n    }\n\n    // Phone OTP done but Multipass not yet \u2014 do not auto-open login; wait briefly for pairing, then show setup note.\n    if (isShiprocketSessionActive()) {\n      const guest = document.querySelector('[data-account-guest]');\n      const params = new URLSearchParams(window.location.search);\n      const justAuthed = params.get('sr_auth') === '1';\n\n      const showSetupNote = () => {\n        if (!guest) return;\n        guest.setAttribute('data-shiprocket-session', 'true');\n        const title = guest.querySelector('.customer__title, #login');\n        const sub = guest.querySelector('.account-hub__guest-sub');\n        const lead = guest.querySelector('.customer-login-fallback__lead');\n        if (title) title.textContent = 'Almost there';\n        if (sub) sub.textContent = 'Phone verified \u00B7 waiting for Shopify link';\n        if (lead) {\n          lead.textContent =\n            'Your phone works for checkout. Orders, wallet, and addresses appear here after classic customer accounts + Shiprocket Multipass pairing are enabled.';\n        }\n        showShiprocketPairingNote(true);\n        const phoneBtn = guest.querySelector('[data-shiprocket-login]');\n        if (phoneBtn) phoneBtn.textContent = 'Try phone login again';\n      };\n\n      if (justAuthed) {\n        waitForShopifyCustomerSession(10000).then((linked) => {\n          if (linked) {\n            window.location.replace(ACCOUNT_HUB_URL + (ACCOUNT_HUB_URL.includes('?') ? '&' : '?') + 'sr_linked=1');\n            return;\n          }\n          showSetupNote();\n        });\n      } else {\n        showSetupNote();\n      }\n      return;\n    }\n\n    const openAccountModal = async () => {\n      userOpenedShiprocketLogin = true;\n      ensureFastrrSellerConfigBranding();\n      await ensureShiprocketScript();\n      hijackShiprocketMarketingLogin();\n      if (showShiprocketLoginModal()) return;\n      mountShiprocketLoginIframe(true);\n    };\n\n    const guestHub = document.querySelector('[data-account-guest][data-auto-shiprocket-login]');\n    if (guestHub) {\n      if (document.readyState === 'complete') {\n        window.setTimeout(openAccountModal, 400);\n      } else {\n        window.addEventListener('load', () => window.setTimeout(openAccountModal, 400), { once: true });\n      }\n    }\n\n    const loginObserver = new MutationObserver(() => {\n      const container = document.getElementById('shiprocket-login-container');\n      const open = !!container && container.style.display !== 'none';\n      applyFastrrLoginOpenState(open);\n    });\n    loginObserver.observe(document.body, { childList: true });\n  }\n\n  function markHeadlessCheckoutReady() {\n    document.querySelectorAll('.checkout-actions--headless').forEach((wrap) => {\n      if (wrap.querySelector('.sr-headless-checkout, button.sr-headless-checkout')) {\n        wrap.classList.add('checkout-actions--headless-ready');\n      }\n    });\n  }\n\n  function initShiprocketHeadlessMounts() {\n    if (store.shiprocketHeadlessCheckout === false) return;\n\n    const syncHeadless = () => {\n      markHeadlessCheckoutReady();\n    };\n\n    syncHeadless();\n    const observer = new MutationObserver(syncHeadless);\n    observer.observe(document.documentElement, { childList: true, subtree: true });\n\n    document.addEventListener('cart:updated', syncHeadless);\n    document.addEventListener('cart:refresh', syncHeadless);\n  }\n\n  function bindShiprocketCheckoutButtons() {\n    if (store.shiprocketCheckoutEnabled === false) return;\n    if (document.documentElement.dataset.srCheckoutDelegated === 'true') return;\n    document.documentElement.dataset.srCheckoutDelegated = 'true';\n    document.addEventListener('click', async (e) => {\n      if (e.target.closest('.sr-headless-checkout, .shiprocket-headless button, [data-shiprocket-headless]')) return;\n      const btn = e.target.closest('[data-shiprocket-checkout], .shiprocket-checkout.checkout-btn--fallback');\n      if (!btn || btn.disabled || btn.classList.contains('visually-hidden')) return;\n      e.preventDefault();\n      e.stopPropagation();\n      startCheckoutObserver();\n      await launchShiprocketCheckout();\n    }, true);\n  }\n\n  function initShiprocketIntegration() {\n    if (window.checkoutBuyer && !window.checkoutBuyer.endsWith('/')) {\n      window.checkoutBuyer += '/';\n    }\n    bindShiprocketCheckoutButtons();\n    initShiprocketHeadlessMounts();\n    window.addEventListener('load', bindShiprocketCheckoutButtons);\n\n    const priorCheckoutCallback = window.srCustomCheckoutCallBackFn;\n    window.srCustomCheckoutCallBackFn = function (payload) {\n      const eventName = String(payload?.eventName || payload?.event || payload?.type || '').toLowerCase();\n      if (eventName === 'login' || eventName === 'we_phone') {\n        document.dispatchEvent(new CustomEvent('fastrr:customer-auth', { detail: payload }));\n        try {\n          sessionStorage.setItem('vrinda_fastrr_auth', JSON.stringify({\n            at: Date.now(),\n            event: eventName,\n            phone: payload?.data?.phone || payload?.phone || null,\n          }));\n        } catch (_) {}\n      }\n      if (shouldResetFastrrFromCallback(payload)) {\n        resetFastrrCheckoutUi();\n      }\n      if (typeof priorCheckoutCallback === 'function') priorCheckoutCallback(payload);\n    };\n\n    window.addEventListener('popstate', () => {\n      if (document.body.classList.contains('fastrr-checkout-open')) resetFastrrCheckoutUi();\n    });\n    window.addEventListener('pageshow', () => {\n      if (document.body.classList.contains('fastrr-checkout-open') && !isFastrrCheckoutUiActive()) {\n        resetFastrrCheckoutUi();\n      }\n    });\n    document.addEventListener('visibilitychange', () => {\n      if (document.visibilityState === 'visible' && document.body.classList.contains('fastrr-checkout-open') && !isFastrrCheckoutUiActive()) {\n        resetFastrrCheckoutUi();\n      }\n    });\n    window.addEventListener('message', (event) => {\n      if (!document.body.classList.contains('fastrr-checkout-open')) return;\n      let payload = event.data;\n      if (typeof payload === 'string') {\n        try { payload = JSON.parse(payload); } catch (_) { payload = { event: payload }; }\n      }\n      if (shouldResetFastrrFromCallback(payload)) resetFastrrCheckoutUi();\n    });\n    document.addEventListener('keydown', (event) => {\n      if (event.key === 'Escape' && document.body.classList.contains('fastrr-checkout-open') && !isFastrrCheckoutUiActive()) {\n        resetFastrrCheckoutUi();\n      }\n    });\n    document.addEventListener('fastrr:checkout-close', () => {\n      hideFastrrCheckoutNodes();\n    });\n\n    document.addEventListener('submit', async (e) => {\n      const form = e.target;\n      if (!form || form.tagName !== 'FORM') return;\n      const submitter = e.submitter;\n      if (!submitter || submitter.name !== 'checkout') return;\n      const action = (form.getAttribute('action') || '').toLowerCase();\n      if (action && !action.includes('/cart')) return;\n      const isIndia = await detectIndiaVisitor();\n      if (!shouldUseShiprocketCheckout(isIndia)) return;\n      e.preventDefault();\n      e.stopPropagation();\n      startCheckoutObserver();\n      await launchShiprocketCheckout();\n    }, true);\n  }\n\n  async function initMarketDetection() {\n    const isIndia = await detectIndiaVisitor();\n    if (isIndia) {\n      applyIndiaCheckoutLabels(true);\n      bindShiprocketCheckoutButtons();\n      markHeadlessCheckoutReady();\n    }\n  }\n\n  initLocalization();\n  initShiprocketIntegration();\n  initFastrrLoginPageGuard();\n  initShiprocketAccountLogin();\n  initMarketDetection();\n\n  /* \u2500\u2500 Mobile menu \u2500\u2500 */\n  const mobileMenu = document.getElementById('mobile-menu');\n  if (mobileMenu) {\n    const openBtn = document.querySelector('[data-mobile-menu-open]');\n    function setMenuOpen(open) {\n      mobileMenu.classList.toggle('open', open);\n      mobileMenu.setAttribute('aria-hidden', open ? 'false' : 'true');\n      if (openBtn) openBtn.setAttribute('aria-expanded', open ? 'true' : 'false');\n      document.body.style.overflow = open ? 'hidden' : '';\n    }\n    openBtn?.addEventListener('click', () => setMenuOpen(true));\n    mobileMenu.querySelectorAll('[data-mobile-menu-close]').forEach((el) => {\n      el.addEventListener('click', () => setMenuOpen(false));\n    });\n    mobileMenu.querySelectorAll('.mobile-menu-nav a').forEach((link) => {\n      link.addEventListener('click', () => setMenuOpen(false));\n    });\n    document.addEventListener('keydown', (e) => {\n      if (e.key === 'Escape' && mobileMenu.classList.contains('open')) setMenuOpen(false);\n    });\n  }\n\n  /* \u2500\u2500 Product tabs \u2500\u2500 */\n  document.querySelectorAll('[data-product-tabs]').forEach((wrap) => {\n    const tabs = wrap.querySelectorAll('.product-tab');\n    const panels = wrap.querySelectorAll('.product-tab-panel');\n    tabs.forEach((tab) => {\n      tab.addEventListener('click', () => {\n        const id = tab.dataset.tab;\n        tabs.forEach((t) => { t.classList.remove('active'); t.setAttribute('aria-selected', 'false'); });\n        panels.forEach((p) => {\n          const active = p.dataset.panel === id;\n          p.classList.toggle('active', active);\n          p.hidden = !active;\n        });\n        tab.classList.add('active');\n        tab.setAttribute('aria-selected', 'true');\n      });\n    });\n  });\n\n  document.querySelectorAll('[data-product-thumb]').forEach((btn) => {\n    btn.addEventListener('click', () => {\n      document.querySelectorAll('.product-thumb').forEach((b) => b.classList.remove('active'));\n      btn.classList.add('active');\n      const img = document.getElementById('product-main-image');\n      if (img) {\n        img.style.opacity = '0';\n        setTimeout(() => {\n          img.src = btn.dataset.productThumb;\n          img.style.opacity = '1';\n        }, 150);\n      }\n    });\n  });\n\n  const mainGallery = document.querySelector('.product-gallery-main');\n  const galleryZoom = document.querySelector('.product-gallery-zoom');\n  const lightbox = document.getElementById('product-lightbox');\n  const lightboxImg = document.getElementById('product-lightbox-img');\n  function openProductLightbox() {\n    const src = document.getElementById('product-main-image')?.src;\n    if (!src || !lightbox || !lightboxImg) return;\n    lightboxImg.src = src;\n    lightboxImg.alt = document.getElementById('product-main-image')?.alt || '';\n    lightbox.hidden = false;\n    lightbox.classList.add('open');\n    document.body.style.overflow = 'hidden';\n  }\n  if (mainGallery && lightbox && lightboxImg) {\n    mainGallery.addEventListener('click', (e) => {\n      if (e.target.closest('.product-gallery-zoom')) return;\n      openProductLightbox();\n    });\n    galleryZoom?.addEventListener('click', (e) => {\n      e.stopPropagation();\n      openProductLightbox();\n    });\n    function closeLightbox() {\n      lightbox.classList.remove('open');\n      lightbox.hidden = true;\n      document.body.style.overflow = '';\n    }\n    lightbox.querySelector('[data-lightbox-close]')?.addEventListener('click', closeLightbox);\n    lightbox.addEventListener('click', (e) => { if (e.target === lightbox) closeLightbox(); });\n    document.addEventListener('keydown', (e) => {\n      if (e.key === 'Escape' && lightbox.classList.contains('open')) closeLightbox();\n    });\n  }\n  const variantSelect = document.getElementById('product-variant-select');\n  if (variantSelect) {\n    variantSelect.addEventListener('change', () => {\n      const opt = variantSelect.options[variantSelect.selectedIndex];\n      const priceEl = document.getElementById('product-price');\n      const stickyPrice = document.getElementById('product-sticky-price');\n      const addBtn = document.getElementById('product-add-btn');\n      const buyBtn = document.getElementById('product-buy-btn');\n      const compareEl = document.getElementById('product-compare');\n      const saveBadge = document.getElementById('product-save-badge');\n      if (priceEl && opt.dataset.price) priceEl.textContent = opt.dataset.price;\n      if (stickyPrice && opt.dataset.price) stickyPrice.textContent = opt.dataset.price;\n      const discount = parseInt(opt.dataset.discount || '0', 10);\n      if (compareEl) {\n        compareEl.textContent = opt.dataset.compare || '';\n        compareEl.hidden = discount <= 0;\n      }\n      if (saveBadge) {\n        saveBadge.textContent = discount > 0 ? '(' + discount + '% OFF)' : '';\n        saveBadge.hidden = discount <= 0;\n      }\n      const available = opt.dataset.available === 'true';\n      if (addBtn) {\n        addBtn.disabled = !available;\n        addBtn.textContent = available ? 'Add to cart' : 'Sold out';\n      }\n      if (buyBtn) buyBtn.disabled = !available;\n    });\n  }\n\n  const qtyInput = document.getElementById('product-quantity');\n  const qtyRow = document.querySelector('.product-qty-row');\n  if (qtyInput && qtyRow) {\n    qtyRow.querySelector('[data-qty-minus]')?.addEventListener('click', () => {\n      qtyInput.value = Math.max(1, parseInt(qtyInput.value, 10) - 1 || 1);\n    });\n    qtyRow.querySelector('[data-qty-plus]')?.addEventListener('click', () => {\n      qtyInput.value = Math.max(1, parseInt(qtyInput.value, 10) + 1 || 2);\n    });\n  }\n\n  const stickyBar = document.getElementById('product-sticky-bar');\n  const stickyAnchor = document.querySelector('.product-cta-row') || document.getElementById('product-add-btn');\n  if (stickyBar && stickyAnchor) {\n    const stickyObs = new IntersectionObserver(([entry]) => {\n      stickyBar.hidden = entry.isIntersecting;\n    }, { threshold: 0, rootMargin: '0px 0px -40px 0px' });\n    stickyObs.observe(stickyAnchor);\n  }\n\n  function bindBuyNowButtons() {\n    if (document.documentElement.dataset.vrindaBuyNowDelegated === 'true') return;\n    document.documentElement.dataset.vrindaBuyNowDelegated = 'true';\n    document.addEventListener('click', async (e) => {\n      const btn = e.target.closest('[data-buy-now], [data-shiprocket-buy-now]');\n      if (!btn || btn.disabled) return;\n      e.preventDefault();\n      e.stopPropagation();\n      const labelNode = btn.querySelector('.product-buy-btn__label--long')\n        || btn.querySelector('.product-buy-btn__label')\n        || btn;\n      const label = labelNode.textContent;\n      btn.disabled = true;\n      btn.setAttribute('aria-busy', 'true');\n      if (labelNode !== btn && btn.querySelector('.product-buy-btn__label--short')) {\n        btn.querySelector('.product-buy-btn__label--short').textContent = 'Processing\u2026';\n      } else if (labelNode !== btn) {\n        labelNode.textContent = 'Processing\u2026';\n      } else {\n        btn.textContent = 'Processing\u2026';\n      }\n      try {\n        Object.defineProperty(e, 'currentTarget', { configurable: true, value: btn });\n        await launchShiprocketBuyNow(e);\n      } catch {\n        showToast('Could not proceed', 'Please try again');\n      } finally {\n        btn.disabled = false;\n        btn.removeAttribute('aria-busy');\n        const longLabel = btn.querySelector('.product-buy-btn__label--long');\n        const shortLabel = btn.querySelector('.product-buy-btn__label--short');\n        if (longLabel) longLabel.textContent = 'Buy now \u00B7 UPI \u00B7 COD';\n        if (shortLabel) shortLabel.textContent = 'Buy now';\n        if (!longLabel && !shortLabel && labelNode !== btn) labelNode.textContent = label;\n        else if (!longLabel && !shortLabel) btn.textContent = label;\n      }\n    }, true);\n  }\n\n  bindBuyNowButtons();\n\n  document.querySelectorAll('[data-product-share]').forEach((btn) => {\n    btn.addEventListener('click', async () => {\n      const url = btn.dataset.shareUrl || window.location.href;\n      const title = btn.dataset.shareTitle || document.title;\n      const text = title + ' \u2014 VrindaAddons';\n      if (navigator.share) {\n        try {\n          await navigator.share({ title, text, url });\n          return;\n        } catch (err) {\n          if (err && err.name === 'AbortError') return;\n        }\n      }\n      try {\n        if (navigator.clipboard && window.isSecureContext) {\n          await navigator.clipboard.writeText(url);\n          showToast('Link copied', 'Paste anywhere to share this product');\n          return;\n        }\n      } catch {\n        /* fall through */\n      }\n      window.open(\n        'https://wa.me/?text=' + encodeURIComponent(text + '\\n' + url),\n        '_blank',\n        'noopener,noreferrer'\n      );\n    });\n  });\n\n  document.querySelectorAll('.collection-sort-select').forEach((select) => {\n    select.addEventListener('change', () => select.form.submit());\n  });\n\n  function updateShippingProgress(cartTotal) {\n    const threshold = (store.freeShippingThreshold || 999) * 100;\n    const remaining = Math.max(0, threshold - cartTotal);\n    const progress = Math.min(100, Math.round((cartTotal / threshold) * 100));\n    document.querySelectorAll('[data-shipping-progress]').forEach((el) => {\n      const msg = el.querySelector('.shipping-progress-msg');\n      const fill = el.querySelector('.shipping-progress-fill');\n      if (msg) {\n        msg.textContent = cartTotal >= threshold\n          ? 'You qualify for free shipping'\n          : 'Add ' + formatMoney(remaining) + ' more for free shipping';\n        msg.classList.toggle('shipping-progress-msg--success', cartTotal >= threshold);\n      }\n      if (fill) fill.style.setProperty('--progress', String(progress));\n    });\n  }\n\n  function updateCartCount(count) {\n    document.querySelectorAll('[data-cart-count]').forEach((el) => {\n      el.textContent = count;\n      el.classList.toggle('is-visible', count > 0);\n    });\n    const desc = document.querySelector('[data-cart-desc]');\n    if (desc) {\n      desc.textContent = count === 0\n        ? 'Your bag is empty'\n        : count + ' item' + (count !== 1 ? 's' : '') + ' in your bag';\n    }\n  }\n\n  function dispatchCartUpdate(cart) {\n    document.dispatchEvent(new CustomEvent('cart:updated', {\n      bubbles: true,\n      detail: { cart, itemCount: cart.item_count },\n    }));\n  }\n\n  function useVrindaCommerceCart() {\n    return store.useVrindaCommerceCart === true;\n  }\n\n  function useShiprocketSmartCart() {\n    return store.useShiprocketSmartCart === true;\n  }\n\n  function useExternalCartDrawer() {\n    return useVrindaCommerceCart() || useShiprocketSmartCart();\n  }\n\n  function resetExternalCartState() {\n    if (!useVrindaCommerceCart()) document.body.classList.remove('vrinda-commerce-cart-active');\n    if (!useShiprocketSmartCart()) document.body.classList.remove('shiprocket-smart-cart-active');\n  }\n\n  function disableInactiveAppCartMarkup() {\n    if (!useVrindaCommerceCart()) {\n      document.querySelectorAll('[data-app=\"vrinda-commerce-cart\"], .vcc-overlay, .vcc-drawer, .vcc-sticky-pill').forEach((node) => {\n        node.remove();\n      });\n      document.querySelectorAll('script[data-vrinda-cart-reload=\"true\"]').forEach((node) => node.remove());\n      document.body.classList.remove('vcc-checkout-pending');\n    }\n  }\n\n  function vrindaCommerceCartReady() {\n    return !!(\n      document.querySelector('[data-app=\"vrinda-commerce-cart\"]') &&\n      window.VrindaCommerceCart &&\n      typeof window.VrindaCommerceCart.open === 'function'\n    );\n  }\n\n  function openVrindaCommerceCart() {\n    resetStaleVrindaCartUi();\n    if (!vrindaCommerceCartReady()) return false;\n    try {\n      pendingVrindaCartOpen = false;\n      window.VrindaCommerceCart.open();\n      return true;\n    } catch (_) {\n      return false;\n    }\n  }\n\n  function resetStaleVrindaCartUi() {\n    if (isFastrrCheckoutUiActive()) return;\n    if (!document.body.classList.contains('fastrr-checkout-open') && !document.body.classList.contains('vcc-checkout-pending')) return;\n    resetFastrrCheckoutUi();\n  }\n\n  function queueVrindaCommerceCartOpen() {\n    pendingVrindaCartOpen = true;\n    waitForVrindaCommerceCartReady(7000).then((ready) => {\n      if (ready) openVrindaCommerceCart();\n    });\n  }\n\n  function getVrindaCommerceCartScriptSrc() {\n    return (\n      document.querySelector('script[src*=\"vrinda-commerce-cart\"][src*=\"vrinda-cart.js\"]')?.src ||\n      document.querySelector('script[src*=\"vrinda-cart.js\"]')?.src ||\n      ''\n    );\n  }\n\n  function ensureVrindaCommerceCartScript() {\n    if (vrindaCommerceCartReady()) return Promise.resolve(true);\n\n    const src = getVrindaCommerceCartScriptSrc();\n    if (!src) return Promise.resolve(false);\n\n    const existingReload = document.querySelector('script[data-vrinda-cart-reload=\"true\"]');\n    if (existingReload) {\n      return new Promise((resolve) => {\n        existingReload.addEventListener('load', () => resolve(vrindaCommerceCartReady()), { once: true });\n        existingReload.addEventListener('error', () => resolve(vrindaCommerceCartReady()), { once: true });\n        setTimeout(() => resolve(vrindaCommerceCartReady()), 2500);\n      });\n    }\n\n    return new Promise((resolve) => {\n      const script = document.createElement('script');\n      script.src = src;\n      script.defer = true;\n      script.async = true;\n      script.dataset.vrindaCartReload = 'true';\n      script.onload = () => resolve(vrindaCommerceCartReady());\n      script.onerror = () => resolve(vrindaCommerceCartReady());\n      document.body.appendChild(script);\n      setTimeout(() => resolve(vrindaCommerceCartReady()), 2500);\n    });\n  }\n\n  async function waitForVrindaCommerceCartReady(timeoutMs = 5000) {\n    if (vrindaCommerceCartReady()) return true;\n    return new Promise((resolve) => {\n      let settled = false;\n      const cleanup = () => {\n        clearInterval(timer);\n        clearTimeout(timeout);\n        document.removeEventListener('vrinda-commerce-cart:ready', onReady);\n      };\n      const finish = (value) => {\n        if (settled) return;\n        settled = true;\n        cleanup();\n        resolve(value);\n      };\n      const onReady = () => {\n        if (vrindaCommerceCartReady()) finish(true);\n      };\n      setTimeout(() => {\n        if (!vrindaCommerceCartReady()) ensureVrindaCommerceCartScript().then((ok) => {\n          if (ok) finish(true);\n        });\n      }, 800);\n      const timer = setInterval(() => {\n        if (vrindaCommerceCartReady()) {\n          finish(true);\n          return;\n        }\n      }, 120);\n      const timeout = setTimeout(() => finish(vrindaCommerceCartReady()), timeoutMs);\n      document.addEventListener('vrinda-commerce-cart:ready', onReady, { once: true });\n    });\n  }\n\n  function shiprocketSmartCartReady() {\n    return !!(\n      document.querySelector('[data-app=\"shiprocket-smart-cart\"]') &&\n      typeof window.slideShiprocketSmartCartInFrame === 'function'\n    );\n  }\n\n  function openShiprocketSmartCart() {\n    if (!shiprocketSmartCartReady()) return false;\n    try {\n      window.slideShiprocketSmartCartInFrame();\n      return true;\n    } catch (_) {\n      return false;\n    }\n  }\n\n  async function syncHeaderCartCount() {\n    try {\n      const cart = await (await fetch('/cart.js')).json();\n      updateCartCount(cart.item_count);\n      updateShippingProgress(cart.total_price);\n      dispatchCartUpdate(cart);\n      return cart;\n    } catch (_) {\n      return null;\n    }\n  }\n\n  function markVrindaCommerceCartActive() {\n    if (!vrindaCommerceCartReady()) return;\n    resetStaleVrindaCartUi();\n    document.body.classList.add('vrinda-commerce-cart-active');\n    if (pendingVrindaCartOpen) openVrindaCommerceCart();\n  }\n\n  function markShiprocketSmartCartActive() {\n    if (!shiprocketSmartCartReady()) return;\n    document.body.classList.add('shiprocket-smart-cart-active');\n  }\n\n  async function openPreferredCart(openCartFn) {\n    if (useVrindaCommerceCart()) {\n      if (openVrindaCommerceCart()) return;\n      queueVrindaCommerceCartOpen();\n      return;\n    }\n    if (useShiprocketSmartCart() && openShiprocketSmartCart()) return;\n    if (typeof openCartFn === 'function') {\n      openCartFn();\n      return;\n    }\n    window.location.href = store.cartUrl || '/cart';\n  }\n\n  function initAppCartRouting(openCartFn) {\n    disableInactiveAppCartMarkup();\n    if (!useExternalCartDrawer()) return;\n\n    document.querySelectorAll('[data-cart-open]').forEach((el) => {\n      el.addEventListener('click', (e) => {\n        if (!useExternalCartDrawer()) return;\n        e.preventDefault();\n        openPreferredCart(openCartFn);\n      }, true);\n    });\n\n    const markWhenReady = () => {\n      if (useVrindaCommerceCart() && vrindaCommerceCartReady()) {\n        markVrindaCommerceCartActive();\n        syncHeaderCartCount();\n        return true;\n      }\n      if (useShiprocketSmartCart() && shiprocketSmartCartReady()) {\n        markShiprocketSmartCartActive();\n        syncHeaderCartCount();\n        return true;\n      }\n      return false;\n    };\n\n    if (!markWhenReady()) {\n      let attempts = 0;\n      const timer = setInterval(() => {\n        attempts += 1;\n        if (markWhenReady() || attempts >= 40) clearInterval(timer);\n      }, 250);\n    }\n\n    resetStaleVrindaCartUi();\n\n    document.addEventListener('visibilitychange', () => {\n      if (document.visibilityState === 'visible') {\n        resetStaleVrindaCartUi();\n        syncHeaderCartCount();\n      }\n    });\n    setInterval(() => {\n      if (document.visibilityState === 'visible' && (vrindaCommerceCartReady() || shiprocketSmartCartReady())) {\n        resetStaleVrindaCartUi();\n        syncHeaderCartCount();\n      }\n    }, 5000);\n\n    window.VrindaCart = Object.assign(window.VrindaCart || {}, {\n      open: () => openPreferredCart(openCartFn),\n      openVrindaCommerceCart,\n      openSmartCart: openShiprocketSmartCart,\n      refresh: syncHeaderCartCount,\n    });\n  }\n\n  function initShiprocketSmartCartRouting(openCartFn) {\n    initAppCartRouting(openCartFn);\n  }\n\n  /* \u2500\u2500 Cart: native theme drawer \u2500\u2500 */\n  const drawer = document.getElementById('cart-drawer');\n  const overlay = document.getElementById('cart-drawer-overlay');\n  if (drawer && overlay) {\n    function ensureNativeDrawerVisible() {\n      resetExternalCartState();\n      drawer.style.removeProperty('display');\n      drawer.style.removeProperty('visibility');\n      drawer.style.removeProperty('pointer-events');\n      overlay.style.removeProperty('display');\n      overlay.style.removeProperty('visibility');\n      overlay.style.removeProperty('pointer-events');\n      drawer.classList.remove('vcc-hidden');\n      overlay.classList.remove('vcc-hidden');\n      drawer.removeAttribute('hidden');\n      overlay.removeAttribute('hidden');\n      drawer.setAttribute('aria-hidden', 'false');\n      overlay.setAttribute('aria-hidden', 'false');\n    }\n\n    function openCart() {\n      ensureNativeDrawerVisible();\n      drawer.classList.add('open');\n      overlay.classList.add('open');\n      document.body.classList.add('cart-drawer-open');\n      document.body.style.overflow = 'hidden';\n      refreshCart();\n      setTimeout(markHeadlessCheckoutReady, 120);\n      setTimeout(markHeadlessCheckoutReady, 700);\n    }\n    function closeCart() {\n      drawer.classList.remove('open');\n      overlay.classList.remove('open');\n      document.body.classList.remove('cart-drawer-open');\n      drawer.setAttribute('aria-hidden', 'true');\n      overlay.setAttribute('aria-hidden', 'true');\n      if (!document.body.classList.contains('fastrr-checkout-open')) {\n        document.body.style.overflow = '';\n      }\n    }\n    document.querySelectorAll('[data-cart-open]').forEach((el) => {\n      if (useExternalCartDrawer()) return;\n      el.addEventListener('click', (e) => { e.preventDefault(); openCart(); });\n    });\n    document.querySelectorAll('[data-cart-close]').forEach((el) => el.addEventListener('click', closeCart));\n    overlay.addEventListener('click', closeCart);\n    resetExternalCartState();\n\n    function updateCartCountDrawer(count) {\n      updateCartCount(count);\n    }\n    async function fetchCartRecommendation(productId) {\n      try {\n        const res = await fetch('/recommendations/products.json?product_id=' + productId + '&limit=1');\n        if (!res.ok) return null;\n        const data = await res.json();\n        return data.products && data.products[0] ? data.products[0] : null;\n      } catch (_) {\n        return null;\n      }\n    }\n    async function addVariantToCart(variantId) {\n      await fetch('/cart/add.js', {\n        method: 'POST',\n        headers: { 'Content-Type': 'application/json' },\n        body: JSON.stringify({ id: variantId, quantity: 1 }),\n      });\n      refreshCart();\n    }\n    async function refreshCart() {\n      const res = await fetch('/cart.js');\n      const cart = await res.json();\n      updateCartCountDrawer(cart.item_count);\n      updateShippingProgress(cart.total_price);\n      const body = document.getElementById('cart-drawer-items');\n      const totalEl = document.getElementById('cart-drawer-subtotal');\n      if (!body) return;\n      if (cart.items.length === 0) {\n        body.innerHTML = '<div class=\"cart-empty cart-empty--commerce\"><p class=\"font-display cart-empty-title\">Your cart is empty</p><a href=\"' + (document.body.dataset.collectionDropUrl || '/collections/shop-the-drop') + '\" class=\"btn btn-outline cart-empty-actions\" data-cart-close>Continue shopping</a></div>';\n        body.querySelector('[data-cart-close]')?.addEventListener('click', closeCart);\n        if (totalEl) totalEl.textContent = formatMoney(0);\n        return;\n      }\n      const reco = await fetchCartRecommendation(cart.items[0].product_id);\n      const recoVariant = reco && reco.variants && reco.variants[0] ? reco.variants[0] : null;\n      const recoImage = reco && reco.featured_image ? reco.featured_image : '';\n      body.innerHTML = `\n        <div class=\"cart-lines-stack\">\n          ${cart.items.map((item) => {\n            const cmpUnit = (window.__vaCompareAt && window.__vaCompareAt[item.variant_id]) || 0;\n            const cmpLine = cmpUnit * item.quantity;\n            const priceHtml = cmpLine > item.final_line_price\n              ? `<span class=\"cart-line-price-now\">${formatMoney(item.final_line_price)}</span> <s class=\"cart-line-price-was\">${formatMoney(cmpLine)}</s>`\n              : formatMoney(item.final_line_price);\n            return `\n            <div class=\"cart-line cart-line--drawer\" data-key=\"${item.key}\">\n              <div class=\"cart-line-image\">${item.image ? `<img src=\"${item.image}\" alt=\"${item.title}\" width=\"80\" height=\"80\">` : ''}</div>\n              <div class=\"cart-line-body\">\n                <p class=\"cart-line-title\">${item.product_title}</p>\n                ${item.variant_title && item.variant_title !== 'Default Title' ? `<p class=\"cart-line-variant\">${item.variant_title}</p>` : ''}\n                <p class=\"cart-line-price\">${priceHtml}</p>\n                <div class=\"cart-line-controls\">\n                  <div class=\"cart-line-qty cart-line-qty--drawer\">\n                    <button type=\"button\" class=\"cart-qty-btn cart-qty-btn--muted\" data-qty-minus data-key=\"${item.key}\" aria-label=\"Decrease quantity\">${iconSvg('minus', 12)}</button>\n                    <span class=\"cart-line-qty-value\">${item.quantity}</span>\n                    <button type=\"button\" class=\"cart-qty-btn cart-qty-btn--solid\" data-qty-plus data-key=\"${item.key}\" aria-label=\"Increase quantity\">${iconSvg('plus', 12)}</button>\n                  </div>\n                  <button type=\"button\" class=\"cart-remove-btn\" data-remove data-key=\"${item.key}\" aria-label=\"Remove\">${iconSvg('remove', 14)}</button>\n                </div>\n              </div>\n            </div>`;\n          }).join('')}\n        </div>\n        ${reco && recoVariant ? `\n          <section class=\"cart-reco\">\n            <h3 class=\"cart-reco-title\">You'll Love These Too</h3>\n            <div class=\"cart-reco-card\">\n              <div class=\"cart-line-image cart-reco-image\">${recoImage ? `<img src=\"${recoImage}\" alt=\"${reco.title}\" width=\"80\" height=\"80\">` : ''}</div>\n              <div class=\"cart-reco-body\">\n                <p class=\"cart-line-title\">${reco.title}</p>\n                <p class=\"cart-line-price\">${formatMoney(recoVariant.price)}</p>\n                <button type=\"button\" class=\"cart-reco-btn\" data-reco-add data-variant-id=\"${recoVariant.id}\">Add To Cart</button>\n              </div>\n            </div>\n          </section>` : ''}\n      `;\n      if (totalEl) totalEl.textContent = formatMoney(cart.total_price);\n      body.querySelectorAll('[data-qty-minus]').forEach((btn) => btn.addEventListener('click', () => changeQty(btn.dataset.key, -1)));\n      body.querySelectorAll('[data-qty-plus]').forEach((btn) => btn.addEventListener('click', () => changeQty(btn.dataset.key, 1)));\n      body.querySelectorAll('[data-remove]').forEach((btn) => btn.addEventListener('click', () => removeLine(btn.dataset.key)));\n      body.querySelectorAll('[data-reco-add]').forEach((btn) => btn.addEventListener('click', () => addVariantToCart(btn.dataset.variantId)));\n    }\n    async function changeQty(key, delta) {\n      const cart = await (await fetch('/cart.js')).json();\n      const item = cart.items.find((i) => i.key === key);\n      if (!item) return;\n      await fetch('/cart/change.js', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ id: key, quantity: Math.max(0, item.quantity + delta) }) });\n      refreshCart();\n    }\n    async function removeLine(key) {\n      await fetch('/cart/change.js', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ id: key, quantity: 0 }) });\n      refreshCart();\n    }\n    document.querySelectorAll('[data-add-to-cart]').forEach((form) => {\n      form.addEventListener('submit', async (e) => {\n        if ((useVrindaCommerceCart() && vrindaCommerceCartReady()) || (useShiprocketSmartCart() && shiprocketSmartCartReady())) return;\n        e.preventDefault();\n        const submitBtn = form.querySelector('[type=\"submit\"]');\n        const defaultLabel = submitBtn?.textContent?.trim() || 'Add to cart';\n        if (submitBtn) {\n          submitBtn.disabled = true;\n          submitBtn.setAttribute('aria-busy', 'true');\n          submitBtn.textContent = 'Adding\u2026';\n        }\n        try {\n          const fd = new FormData(form);\n          const res = await fetch('/cart/add.js', { method: 'POST', body: fd });\n          if (!res.ok) throw new Error('Add failed');\n          const title = form.closest('.product-card')?.querySelector('.product-card-title')?.textContent || 'Added to bag';\n          showToast('Added to bag', title);\n          if (useVrindaCommerceCart()) {\n            await syncHeaderCartCount();\n            if (!openVrindaCommerceCart()) queueVrindaCommerceCartOpen();\n          } else if (useShiprocketSmartCart()) {\n            await syncHeaderCartCount();\n            if (!openShiprocketSmartCart()) openCart();\n          } else {\n            await refreshCart();\n            openCart();\n          }\n        } catch {\n          showToast('Could not add item', 'Please try again');\n        } finally {\n          if (submitBtn) {\n            submitBtn.disabled = false;\n            submitBtn.removeAttribute('aria-busy');\n            submitBtn.textContent = defaultLabel;\n          }\n        }\n      });\n    });\n    fetch('/cart.js').then((r) => r.json()).then((cart) => {\n      updateCartCountDrawer(cart.item_count);\n      updateShippingProgress(cart.total_price);\n      if (cart.item_count > 0) refreshCart();\n    }).catch(() => {});\n    window.VrindaCart = { open: openCart, close: closeCart, refresh: refreshCart };\n    initShiprocketSmartCartRouting(openCart);\n  }\n\n  /* \u2500\u2500 Build Your Look studio \u2500\u2500 */\n  const studio = document.querySelector('[data-build-look]');\n  if (studio) {\n    const modelBtns = studio.querySelectorAll('[data-model]');\n    const modelImg = studio.querySelector('[data-studio-model-img]');\n    const jewelBtns = studio.querySelectorAll('[data-jewel]');\n    const jewelImg = studio.querySelector('[data-studio-jewel-img]');\n    const jewelName = studio.querySelector('[data-studio-jewel-name]');\n    const modelSrcs = [\n      studio.querySelector('[data-model=\"0\"] img')?.src,\n      studio.querySelector('[data-model=\"1\"] img')?.src,\n      studio.querySelector('[data-model=\"2\"] img')?.src,\n    ];\n    modelBtns.forEach((btn) => {\n      btn.addEventListener('click', () => {\n        modelBtns.forEach((b) => b.classList.remove('active'));\n        btn.classList.add('active');\n        const idx = parseInt(btn.dataset.model, 10);\n        if (modelImg && modelSrcs[idx]) modelImg.src = modelSrcs[idx];\n      });\n    });\n    jewelBtns.forEach((btn) => {\n      btn.addEventListener('click', () => {\n        jewelBtns.forEach((b) => b.classList.remove('active'));\n        btn.classList.add('active');\n        if (jewelImg) {\n          jewelImg.style.opacity = '0';\n          jewelImg.style.transform = 'scale(0.6)';\n          setTimeout(() => {\n            jewelImg.src = btn.dataset.img;\n            jewelImg.style.opacity = '1';\n            jewelImg.style.transform = 'scale(1)';\n          }, 150);\n        }\n        if (jewelName) jewelName.textContent = btn.dataset.name;\n      });\n    });\n  }\n\n  /* \u2500\u2500 Drop countdown (next Friday 8 PM IST) \u2500\u2500 */\n  function nextFriday8pmIST() {\n    const now = new Date();\n    const ist = new Date(now.toLocaleString('en-US', { timeZone: 'Asia/Kolkata' }));\n    const day = ist.getDay();\n    let daysUntilFriday = (5 - day + 7) % 7;\n    if (daysUntilFriday === 0 && (ist.getHours() > 20 || (ist.getHours() === 20 && ist.getMinutes() >= 0))) daysUntilFriday = 7;\n    const target = new Date(ist);\n    target.setDate(ist.getDate() + daysUntilFriday);\n    target.setHours(20, 0, 0, 0);\n    return target;\n  }\n  const countdown = document.querySelector('[data-drop-countdown]');\n  if (countdown) {\n    function tick() {\n      const target = nextFriday8pmIST();\n      const now = new Date(new Date().toLocaleString('en-US', { timeZone: 'Asia/Kolkata' }));\n      let diff = Math.max(0, target - now);\n      const days = Math.floor(diff / 86400000); diff %= 86400000;\n      const hours = Math.floor(diff / 3600000); diff %= 3600000;\n      const mins = Math.floor(diff / 60000); diff %= 60000;\n      const secs = Math.floor(diff / 1000);\n      const pad = (n) => String(n).padStart(2, '0');\n      const d = countdown.querySelector('[data-days]');\n      const h = countdown.querySelector('[data-hours]');\n      const m = countdown.querySelector('[data-mins]');\n      const s = countdown.querySelector('[data-secs]');\n      if (d) d.textContent = pad(days);\n      if (h) h.textContent = pad(hours);\n      if (m) m.textContent = pad(mins);\n      if (s) s.textContent = pad(secs);\n    }\n    tick();\n    setInterval(tick, 1000);\n  }\n\n  document.querySelectorAll('[data-newsletter-scroll]').forEach((btn) => {\n    btn.addEventListener('click', () => {\n      document.getElementById('newsletter')?.scrollIntoView({ behavior: 'smooth' });\n    });\n  });\n\n  /* \u2500\u2500 Product carousel (featured collection) \u2500\u2500 */\n  document.querySelectorAll('[data-product-carousel]').forEach((root) => {\n    const viewport = root.querySelector('[data-product-carousel-viewport]');\n    const prev = root.querySelector('[data-product-carousel-prev]');\n    const next = root.querySelector('[data-product-carousel-next]');\n    if (!viewport) return;\n\n    function updateButtons() {\n      const maxScroll = viewport.scrollWidth - viewport.clientWidth;\n      const atStart = viewport.scrollLeft <= 4;\n      const atEnd = maxScroll <= 4 || viewport.scrollLeft >= maxScroll - 4;\n      if (prev) prev.disabled = atStart;\n      if (next) next.disabled = atEnd;\n    }\n\n    function scrollStep(direction) {\n      const card = viewport.querySelector('.product-card');\n      const styles = card ? getComputedStyle(viewport.querySelector('.product-carousel-track')) : null;\n      const gap = styles ? parseFloat(styles.gap) || 16 : 16;\n      const amount = (card?.offsetWidth || 240) + gap;\n      viewport.scrollBy({ left: direction * amount, behavior: 'smooth' });\n    }\n\n    prev?.addEventListener('click', () => scrollStep(-1));\n    next?.addEventListener('click', () => scrollStep(1));\n    viewport.addEventListener('scroll', updateButtons, { passive: true });\n    window.addEventListener('resize', updateButtons, { passive: true });\n    if ('ResizeObserver' in window) {\n      new ResizeObserver(updateButtons).observe(viewport);\n    }\n    updateButtons();\n  });\n\n  /* \u2500\u2500 Hero carousel \u2500\u2500 */\n  const heroCarousel = document.querySelector('[data-hero-carousel]');\n  if (heroCarousel) {\n    const slides = heroCarousel.querySelectorAll('[data-hero-slide]');\n    const dots = heroCarousel.querySelectorAll('[data-hero-dot]');\n    if (slides.length > 1) {\n      let current = 0;\n      let timer = null;\n      const reducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n\n      function goTo(index) {\n        current = (index + slides.length) % slides.length;\n        slides.forEach((slide, i) => {\n          const active = i === current;\n          slide.classList.toggle('is-active', active);\n          slide.setAttribute('aria-hidden', active ? 'false' : 'true');\n        });\n        dots.forEach((dot, i) => dot.classList.toggle('is-active', i === current));\n      }\n\n      function startAutoplay() {\n        if (reducedMotion) return;\n        stopAutoplay();\n        timer = setInterval(() => goTo(current + 1), 5000);\n      }\n      function stopAutoplay() {\n        if (timer) clearInterval(timer);\n        timer = null;\n      }\n\n      dots.forEach((dot) => {\n        dot.addEventListener('click', () => {\n          goTo(parseInt(dot.dataset.heroDot, 10));\n          startAutoplay();\n        });\n      });\n      heroCarousel.addEventListener('mouseenter', stopAutoplay);\n      heroCarousel.addEventListener('mouseleave', startAutoplay);\n      startAutoplay();\n    }\n  }\n\n\n  function showToast(title, desc) {\n    const toast = document.getElementById('vrinda-toast');\n    if (!toast) return;\n    toast.innerHTML = '<strong>' + title + '</strong>' + (desc ? '<br><span style=\"font-size:0.75rem;color:var(--muted-foreground)\">' + desc + '</span>' : '');\n    toast.classList.add('show');\n    setTimeout(() => toast.classList.remove('show'), 3000);\n  }\n  window.VrindaToast = showToast;\n\n  /* \u2500\u2500 Try-on dialog (Mirror Mode) \u2500\u2500 */\n  const tryOnOverlay = document.getElementById('try-on-overlay');\n  if (tryOnOverlay) {\n    const video = document.getElementById('try-on-video');\n    const stage = document.getElementById('try-on-stage');\n    const overlaysEl = document.getElementById('try-on-overlays');\n    const loadingEl = document.getElementById('try-on-loading');\n    const errorEl = document.getElementById('try-on-error');\n    const toolbar = document.getElementById('try-on-toolbar');\n    const snapshotWrap = document.getElementById('try-on-snapshot-wrap');\n    const snapshotImg = document.getElementById('try-on-snapshot');\n    const saveBtn = document.getElementById('try-on-save');\n    let stream = null;\n    let facingMode = 'user';\n    let overlays = [];\n    let activeId = null;\n    let drag = null;\n    let lastSnapshot = null;\n\n    function openTryOn(pieceId) {\n      tryOnOverlay.classList.add('open');\n      document.body.style.overflow = 'hidden';\n      overlays = [];\n      activeId = null;\n      renderOverlays();\n      startCamera();\n      if (pieceId) {\n        const btn = document.querySelector('[data-piece-id=\"' + pieceId + '\"]');\n        if (btn) addPiece(btn);\n      } else {\n        const first = document.querySelector('.try-on-piece-btn');\n        if (first) addPiece(first);\n      }\n    }\n    function closeTryOn() {\n      tryOnOverlay.classList.remove('open');\n      document.body.style.overflow = '';\n      stopCamera();\n      overlays = [];\n      activeId = null;\n      renderOverlays();\n      if (snapshotWrap) snapshotWrap.hidden = true;\n      if (saveBtn) saveBtn.hidden = true;\n      lastSnapshot = null;\n    }\n    async function startCamera() {\n      if (loadingEl) loadingEl.hidden = false;\n      if (errorEl) errorEl.hidden = true;\n      try {\n        stopCamera();\n        stream = await navigator.mediaDevices.getUserMedia({ video: { facingMode, width: { ideal: 1280 }, height: { ideal: 720 } }, audio: false });\n        if (video) {\n          video.srcObject = stream;\n          video.classList.toggle('mirror', facingMode === 'user');\n          await video.play().catch(() => {});\n        }\n        if (loadingEl) loadingEl.hidden = true;\n      } catch (e) {\n        if (loadingEl) loadingEl.hidden = true;\n        if (errorEl) {\n          errorEl.hidden = false;\n          errorEl.innerHTML = '<div><p class=\"try-on-error-icon\">' + iconSvg('camera', 24) + '</p><p>' + (e.message || 'Camera access denied') + '</p><p class=\"try-on-error-hint\">Allow camera in browser settings and reload.</p></div>';\n        }\n      }\n    }\n    function stopCamera() {\n      stream?.getTracks().forEach((t) => t.stop());\n      stream = null;\n      if (video) video.srcObject = null;\n    }\n    function addPiece(btn) {\n      const w = stage?.clientWidth || 400;\n      const h = stage?.clientHeight || 600;\n      const id = btn.dataset.pieceId + '-' + Date.now();\n      overlays.push({ id, name: btn.dataset.pieceName, img: btn.dataset.pieceImg, x: w / 2, y: h / 2, scale: 1, rotation: 0 });\n      activeId = id;\n      renderOverlays();\n    }\n    function renderOverlays() {\n      if (!overlaysEl) return;\n      overlaysEl.innerHTML = overlays.map((o) =>\n        '<div class=\"try-on-overlay-item' + (o.id === activeId ? ' active' : '') + '\" data-id=\"' + o.id + '\" style=\"left:' + o.x + 'px;top:' + o.y + 'px;width:' + (140 * o.scale) + 'px;height:' + (140 * o.scale) + 'px;transform:translate(-50%,-50%) rotate(' + o.rotation + 'deg)\">' +\n        '<img src=\"' + o.img + '\" alt=\"' + o.name + '\"></div>'\n      ).join('');\n      overlaysEl.querySelectorAll('.try-on-overlay-item').forEach((el) => {\n        el.addEventListener('pointerdown', (e) => {\n          e.stopPropagation();\n          activeId = el.dataset.id;\n          const o = overlays.find((x) => x.id === activeId);\n          if (!o) return;\n          drag = { id: activeId, sx: e.clientX, sy: e.clientY, ox: o.x, oy: o.y };\n          el.setPointerCapture(e.pointerId);\n          renderOverlays();\n        });\n      });\n      if (toolbar) toolbar.hidden = !activeId;\n    }\n    stage?.addEventListener('pointermove', (e) => {\n      if (!drag) return;\n      overlays = overlays.map((o) => o.id === drag.id ? { ...o, x: drag.ox + (e.clientX - drag.sx), y: drag.oy + (e.clientY - drag.sy) } : o);\n      renderOverlays();\n    });\n    stage?.addEventListener('pointerup', () => { drag = null; });\n    stage?.addEventListener('click', () => { activeId = null; renderOverlays(); });\n    function updateActive(patch) {\n      overlays = overlays.map((o) => o.id === activeId ? { ...o, ...patch } : o);\n      renderOverlays();\n    }\n    document.querySelector('[data-try-on-zoom-out]')?.addEventListener('click', () => {\n      const o = overlays.find((x) => x.id === activeId);\n      if (o) updateActive({ scale: Math.max(0.3, o.scale - 0.1) });\n    });\n    document.querySelector('[data-try-on-zoom-in]')?.addEventListener('click', () => {\n      const o = overlays.find((x) => x.id === activeId);\n      if (o) updateActive({ scale: Math.min(3, o.scale + 0.1) });\n    });\n    document.querySelector('[data-try-on-rotate]')?.addEventListener('click', () => {\n      const o = overlays.find((x) => x.id === activeId);\n      if (o) updateActive({ rotation: o.rotation + 15 });\n    });\n    document.querySelector('[data-try-on-remove]')?.addEventListener('click', () => {\n      overlays = overlays.filter((o) => o.id !== activeId);\n      activeId = null;\n      renderOverlays();\n    });\n    document.querySelector('[data-try-on-flip]')?.addEventListener('click', () => {\n      facingMode = facingMode === 'user' ? 'environment' : 'user';\n      startCamera();\n    });\n    document.querySelector('[data-try-on-capture]')?.addEventListener('click', async () => {\n      if (!video || !stage) return;\n      const sw = stage.clientWidth, sh = stage.clientHeight;\n      const canvas = document.createElement('canvas');\n      canvas.width = sw; canvas.height = sh;\n      const ctx = canvas.getContext('2d');\n      ctx.save();\n      if (facingMode === 'user') { ctx.translate(sw, 0); ctx.scale(-1, 1); }\n      const vw = video.videoWidth, vh = video.videoHeight;\n      if (vw && vh) {\n        const scale = Math.max(sw / vw, sh / vh);\n        ctx.drawImage(video, (sw - vw * scale) / 2, (sh - vh * scale) / 2, vw * scale, vh * scale);\n      }\n      ctx.restore();\n      await Promise.all(overlays.map((o) => new Promise((res) => {\n        const img = new Image();\n        img.onload = () => res({ o, img });\n        img.onerror = () => res({ o, img });\n        img.src = o.img;\n      }))).then((items) => {\n        items.forEach(({ o, img }) => {\n          const size = 140 * o.scale;\n          ctx.save();\n          ctx.translate(o.x, o.y);\n          ctx.rotate((o.rotation * Math.PI) / 180);\n          ctx.drawImage(img, -size / 2, -size / 2, size, size);\n          ctx.restore();\n        });\n        lastSnapshot = canvas.toDataURL('image/jpeg', 0.9);\n        if (snapshotImg) snapshotImg.src = lastSnapshot;\n        if (snapshotWrap) snapshotWrap.hidden = false;\n        if (saveBtn) saveBtn.hidden = false;\n      });\n    });\n    saveBtn?.addEventListener('click', () => {\n      if (!lastSnapshot) return;\n      const a = document.createElement('a');\n      a.href = lastSnapshot;\n      a.download = 'vrindaaddons-tryon-' + Date.now() + '.jpg';\n      a.click();\n    });\n    document.querySelectorAll('[data-try-on-open]').forEach((btn) => btn.addEventListener('click', () => openTryOn('jhumka')));\n    document.querySelectorAll('.try-on-piece-btn').forEach((btn) => btn.addEventListener('click', () => addPiece(btn)));\n    document.querySelectorAll('[data-try-on-close]').forEach((btn) => btn.addEventListener('click', closeTryOn));\n    tryOnOverlay.addEventListener('click', (e) => { if (e.target === tryOnOverlay) closeTryOn(); });\n  }\n})();\n\n// VrindaAddons \u2014 Shiprocket Checkout + Shopify Customer Accounts\n\n"],
  "mappings": "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",
  "names": ["drawer", "overlay", "setMenuOpen", "closeLightbox", "ensureNativeDrawerVisible", "openCart", "closeCart", "updateCartCountDrawer", "tick", "goTo", "startAutoplay", "stopAutoplay", "openTryOn", "renderOverlays", "addPiece", "closeTryOn", "stopCamera", "updateActive"]
}
