{
  "version": 3,
  "sources": ["/cdn/shop/t/125/assets/custom.js?cb=20260817-orphan-gift-cleanup-v1"],
  "sourcesContent": ["(function () {\n  if (window.__nariyalCartAddDedupe) {\n    return;\n  }\n\n  window.__nariyalCartAddDedupe = true;\n\n  var originalFetch = window.fetch ? window.fetch.bind(window) : null;\n  var recentAdds = new Map();\n  var duplicateWindowMs = 1200;\n\n  if (!originalFetch) {\n    return;\n  }\n\n  function getRequestUrl(input) {\n    if (typeof input === 'string') {\n      return input;\n    }\n\n    if (input && input.url) {\n      return input.url;\n    }\n\n    return '';\n  }\n\n  function isCartAddUrl(rawUrl) {\n    if (!rawUrl) {\n      return false;\n    }\n\n    try {\n      var url = new URL(rawUrl, window.location.origin);\n      return /\\/cart\\/add(\\.js)?$/.test(url.pathname);\n    } catch (error) {\n      return rawUrl.indexOf('/cart/add') !== -1;\n    }\n  }\n\n  function normalizeItemsFromParams(params) {\n    var items = [];\n\n    if (params.has('id')) {\n      items.push({\n        id: params.get('id'),\n        quantity: params.get('quantity') || '1'\n      });\n    }\n\n    for (var index = 0; params.has('items[' + index + '][id]'); index++) {\n      items.push({\n        id: params.get('items[' + index + '][id]'),\n        quantity: params.get('items[' + index + '][quantity]') || '1'\n      });\n    }\n\n    return items.length ? items.map(function (item) {\n      return item.id + ':' + item.quantity;\n    }).join('|') : '';\n  }\n\n  function normalizeItemsFromJson(payload) {\n    if (!payload || typeof payload !== 'object') {\n      return '';\n    }\n\n    if (Array.isArray(payload.items)) {\n      return payload.items.map(function (item) {\n        return item.id + ':' + (item.quantity || 1);\n      }).join('|');\n    }\n\n    if (payload.id) {\n      return payload.id + ':' + (payload.quantity || 1);\n    }\n\n    return '';\n  }\n\n  function getCartAddSignature(init) {\n    var body = init && init.body;\n\n    if (!body) {\n      return '';\n    }\n\n    if (body instanceof FormData) {\n      return normalizeItemsFromParams(body);\n    }\n\n    if (body instanceof URLSearchParams) {\n      return normalizeItemsFromParams(body);\n    }\n\n    if (typeof body === 'string') {\n      try {\n        return normalizeItemsFromJson(JSON.parse(body));\n      } catch (error) {\n        return normalizeItemsFromParams(new URLSearchParams(body));\n      }\n    }\n\n    return '';\n  }\n\n  window.fetch = function (input, init) {\n    var rawUrl = getRequestUrl(input);\n\n    if (!isCartAddUrl(rawUrl)) {\n      return originalFetch(input, init);\n    }\n\n    var signature = getCartAddSignature(init);\n\n    if (!signature) {\n      return originalFetch(input, init);\n    }\n\n    var now = Date.now();\n    var previous = recentAdds.get(signature);\n\n    if (previous && now - previous.at < duplicateWindowMs) {\n      return previous.promise.then(function (response) {\n        return response.clone();\n      });\n    }\n\n    var requestPromise = originalFetch(input, init);\n    recentAdds.set(signature, {\n      at: now,\n      promise: requestPromise\n    });\n\n    requestPromise.finally(function () {\n      window.setTimeout(function () {\n        var latest = recentAdds.get(signature);\n\n        if (latest && latest.promise === requestPromise) {\n          recentAdds.delete(signature);\n        }\n      }, duplicateWindowMs);\n    });\n\n    return requestPromise;\n  };\n})();\n\n/* Keep the Flo Buy It Now path from carrying automatic gift lines into checkout. */\n(function () {\n  var giftVariantId = '51610279444785';\n  var busy = false;\n\n  function cartUrl(path) {\n    var root = window.Shopify && Shopify.routes ? Shopify.routes.root : '/';\n    return root + path;\n  }\n\n  function productFormFor(button) {\n    var form = button.form || button.closest('form[action*=\"/cart/add\"]');\n    if (form) return form;\n\n    var stickyBar = button.closest('.sticky-atc-tlpc');\n    if (stickyBar) {\n      var sectionId = stickyBar.id.replace('StickyATCTLPC-', '');\n      var addButton = document.getElementById('AddToCartTLPC-' + sectionId);\n      return addButton && addButton.closest('form');\n    }\n\n    var productRoot = button.closest('product-form, .shopify-section--main-product, .product, [data-product-id]');\n    return productRoot && productRoot.querySelector('form[action*=\"/cart/add\"]');\n  }\n\n  function removeGiftLines() {\n    return window.fetch(cartUrl('cart.js'), {\n      headers: { Accept: 'application/json' }\n    }).then(function (response) {\n      if (!response.ok) throw new Error('Unable to read cart before checkout');\n      return response.json();\n    }).then(function (cart) {\n      var updates = {};\n      cart.items.forEach(function (item) {\n        var properties = item.properties || {};\n        var title = String(item.product_title || item.title || '').trim();\n        var isGift = String(item.variant_id) === giftVariantId ||\n          Object.prototype.hasOwnProperty.call(properties, '_free-gift') ||\n          (Number(item.final_line_price) === 0 && /^free gift$/i.test(title));\n        if (isGift) updates[item.key] = 0;\n      });\n\n      if (!Object.keys(updates).length) return cart;\n      return window.fetch(cartUrl('cart/update.js'), {\n        method: 'POST',\n        headers: {\n          Accept: 'application/json',\n          'Content-Type': 'application/json'\n        },\n        body: JSON.stringify({ updates: updates })\n      }).then(function (response) {\n        if (!response.ok) throw new Error('Unable to remove gift lines before checkout');\n        return response.json();\n      });\n    });\n  }\n\n  document.addEventListener('click', function (event) {\n    var button = event.target.closest(\n      '#flo-buy-now-button, [data-nariyal-buy-now], [onclick*=\"handleFloBuyNowBtn\"]'\n    );\n    if (!button || busy) return;\n\n    var form = productFormFor(button);\n    if (!form) return;\n\n    var formData = new FormData(form);\n    var idInput = form.querySelector('[name=\"id\"]');\n    if (!formData.get('id') && idInput && idInput.value) {\n      formData.set('id', idInput.value);\n    }\n    if (!formData.get('id')) return;\n    if (!formData.get('quantity')) formData.set('quantity', '1');\n\n    event.preventDefault();\n    event.stopImmediatePropagation();\n    busy = true;\n    button.disabled = true;\n    button.setAttribute('aria-busy', 'true');\n\n    window.fetch(cartUrl('cart/add.js'), {\n      method: 'POST',\n      headers: { 'X-Requested-With': 'XMLHttpRequest' },\n      body: formData\n    }).then(function (response) {\n      if (!response.ok) throw new Error('Unable to add product');\n      return removeGiftLines();\n    }).then(function () {\n      return new Promise(function (resolve) { window.setTimeout(resolve, 350); });\n    }).then(removeGiftLines).then(function () {\n      // window.location.assign(cartUrl('checkout'));\n    }).catch(function (error) {\n      console.error('[Nariyal Buy It Now gift cleanup]', error);\n      window.alert('Checkout ke liye product add nahi ho paya. Please ek baar phir try karein.');\n    }).finally(function () {\n      busy = false;\n      button.disabled = false;\n      button.removeAttribute('aria-busy');\n    });\n  }, true);\n})();\n\n/* Keep the order-level Free Gift after every paid and promotional product. */\n(function () {\n  if (window.__nariyalFreeGiftLast) return;\n  window.__nariyalFreeGiftLast = true;\n\n  var scheduled = false;\n\n  function reorderFreeGift() {\n    scheduled = false;\n    document.querySelectorAll('.line-item--free-gift').forEach(function (gift) {\n      var parent = gift.parentElement;\n      if (!parent) return;\n\n      var products = Array.prototype.filter.call(parent.children, function (child) {\n        return child.classList &&\n          child.classList.contains('line-item') &&\n          !child.classList.contains('line-item--free-gift');\n      });\n      if (!products.length) return;\n\n      var lastProduct = products[products.length - 1];\n      if (lastProduct.nextElementSibling !== gift) {\n        parent.insertBefore(gift, lastProduct.nextSibling);\n      }\n    });\n  }\n\n  function scheduleReorder() {\n    if (scheduled) return;\n    scheduled = true;\n    window.requestAnimationFrame(reorderFreeGift);\n  }\n\n  document.addEventListener('DOMContentLoaded', scheduleReorder);\n  document.documentElement.addEventListener('cart:refresh', scheduleReorder);\n  document.documentElement.addEventListener('cart:updated', scheduleReorder);\n  new MutationObserver(scheduleReorder).observe(document.documentElement, {\n    childList: true,\n    subtree: true\n  });\n  scheduleReorder();\n})();\n\n/*\n * Cart-page recommendations can be clicked faster than Shopify's product-form\n * redirect completes. Queue those requests and reload only after every click\n * has reached the server, so no recommendation item is lost.\n */\n(function () {\n  if (window.__nariyalCartRecommendationQueue) return;\n  window.__nariyalCartRecommendationQueue = true;\n\n  var addQueue = Promise.resolve();\n  var queuedAdds = 0;\n  var reloadTimer = null;\n\n  function cartAddUrl() {\n    var routes = window.themeVariables && window.themeVariables.routes;\n    return (routes ? routes.cartAddUrl : '/cart/add') + '.js';\n  }\n\n  document.addEventListener('submit', function (event) {\n    var form = event.target;\n\n    if (!form || !form.closest('.shopify-section--cart-recommendations')) return;\n    if (String(form.action || '').indexOf('/cart/add') === -1) return;\n\n    event.preventDefault();\n    event.stopImmediatePropagation();\n    window.clearTimeout(reloadTimer);\n\n    var formData = new FormData(form);\n    var button = form.querySelector('[type=\"submit\"]');\n    queuedAdds += 1;\n\n    if (button) {\n      button.disabled = true;\n      button.setAttribute('aria-busy', 'true');\n    }\n\n    addQueue = addQueue\n      .then(function () {\n        return window.fetch(cartAddUrl(), {\n          method: 'POST',\n          body: formData,\n          headers: {\n            'Accept': 'application/json',\n            'X-Requested-With': 'XMLHttpRequest',\n            'X-Nariyal-Featured-Collection-Add': '1'\n          }\n        });\n      })\n      .then(function (response) {\n        if (!response.ok) {\n          return response.json().then(function (payload) {\n            throw new Error(payload.description || 'Unable to add product');\n          });\n        }\n\n        return response.json();\n      })\n      .catch(function (error) {\n        console.error('[Cart recommendation add]', error);\n        window.alert(error.message || 'Product could not be added. Please try again.');\n      })\n      .finally(function () {\n        queuedAdds -= 1;\n\n        if (button) {\n          button.disabled = false;\n          button.removeAttribute('aria-busy');\n        }\n\n        if (queuedAdds === 0) {\n          reloadTimer = window.setTimeout(function () {\n            window.location.reload();\n          }, 450);\n        }\n      });\n  }, true);\n})();\n\n/*\n * Notify Me injects the product wishlist action after Add to Bag. Keep the\n * customer-facing order consistent on every PDP: Add to Bag, Buy It Now,\n * then Add to wishlist. The app button itself is moved so its click handler\n * and wishlist state remain untouched.\n */\n(function () {\n  if (window.__nariyalWishlistBelowBuyNow) {\n    return;\n  }\n\n  window.__nariyalWishlistBelowBuyNow = true;\n  var openNotifyFromCard = new URLSearchParams(window.location.search).get('notify_me') === '1';\n\n  function placeWishlistBelowBuyNow() {\n    document.querySelectorAll('.nm-wishlist-button').forEach(function (wishlistButton) {\n      var tlpcButtons = wishlistButton.closest('.product-tlpc__buttons');\n\n      if (tlpcButtons) {\n        var tlpcCheckout = tlpcButtons.querySelector('.product-tlpc__dynamic-checkout');\n\n        if (tlpcCheckout && tlpcCheckout.nextElementSibling !== wishlistButton) {\n          tlpcCheckout.insertAdjacentElement('afterend', wishlistButton);\n        }\n\n        return;\n      }\n\n      var paymentContainer = wishlistButton.closest('.product-form__payment-container');\n\n      if (!paymentContainer) {\n        return;\n      }\n\n      var buyNowButton = paymentContainer.querySelector(\n        '[data-nariyal-buy-now], .shopify-payment-button__button'\n      );\n\n      if (buyNowButton && buyNowButton.nextElementSibling !== wishlistButton) {\n        buyNowButton.insertAdjacentElement('afterend', wishlistButton);\n      }\n    });\n  }\n\n  function placeNotifyMeLast() {\n    document.querySelectorAll('[class*=\"notify-button\"]:not([class*=\"float-button\"])').forEach(function (notifyButton) {\n      var tlpcButtons = notifyButton.closest('.product-tlpc__buttons');\n\n      if (tlpcButtons) {\n        var tlpcAnchor = tlpcButtons.querySelector('.nm-wishlist-button') ||\n          tlpcButtons.querySelector('.product-tlpc__dynamic-checkout') ||\n          tlpcButtons.querySelector('.product-tlpc__btn-atc');\n\n        if (tlpcAnchor && tlpcAnchor.nextElementSibling !== notifyButton) {\n          tlpcAnchor.insertAdjacentElement('afterend', notifyButton);\n        }\n\n        if (openNotifyFromCard && !window.__nariyalNotifyAutoOpened) {\n          var tlpcNotifyTrigger = notifyButton.matches('button') ? notifyButton : notifyButton.querySelector('button');\n\n          if (tlpcNotifyTrigger) {\n            window.__nariyalNotifyAutoOpened = true;\n            tlpcNotifyTrigger.click();\n\n            var tlpcCleanUrl = new URL(window.location.href);\n            tlpcCleanUrl.searchParams.delete('notify_me');\n            window.history.replaceState({}, '', tlpcCleanUrl.pathname + tlpcCleanUrl.search + tlpcCleanUrl.hash);\n          }\n        }\n\n        return;\n      }\n\n      var paymentContainer = notifyButton.closest('.product-form__payment-container');\n\n      if (!paymentContainer) {\n        return;\n      }\n\n      var standardAnchor = paymentContainer.querySelector('.nm-wishlist-button') ||\n        paymentContainer.querySelector(\n          '[data-nariyal-buy-now], .shopify-payment-button__button'\n        ) ||\n        paymentContainer.querySelector('[data-product-add-to-cart-button]');\n\n      if (standardAnchor && standardAnchor.nextElementSibling !== notifyButton) {\n        standardAnchor.insertAdjacentElement('afterend', notifyButton);\n      }\n\n      if (openNotifyFromCard && !window.__nariyalNotifyAutoOpened) {\n        var notifyTrigger = notifyButton.matches('button') ? notifyButton : notifyButton.querySelector('button');\n\n        if (notifyTrigger) {\n          window.__nariyalNotifyAutoOpened = true;\n          notifyTrigger.click();\n\n          var cleanUrl = new URL(window.location.href);\n          cleanUrl.searchParams.delete('notify_me');\n          window.history.replaceState({}, '', cleanUrl.pathname + cleanUrl.search + cleanUrl.hash);\n        }\n      }\n    });\n  }\n\n  function renameWishlistCartButton() {\n    document.querySelectorAll('.nm-wishlist-item-add-to-cart-button').forEach(function (button) {\n      if (button.textContent.trim() !== 'Add to Bag') {\n        button.textContent = 'Add to Bag';\n        button.setAttribute('aria-label', 'Add to Bag');\n      }\n    });\n  }\n\n  function hideWishlistActions() {\n    document.querySelectorAll(\n      '.nariyal-header-wishlist, .nm-wishlist-button, .nm-wishlist-open-list-button, .nm-wishlist-inline-access-button'\n    ).forEach(function (wishlistAction) {\n      wishlistAction.style.setProperty('display', 'none', 'important');\n    });\n\n    document.querySelectorAll('button, a').forEach(function (action) {\n      var label = (action.getAttribute('aria-label') || action.textContent || '')\n        .replace(/\\s+/g, ' ')\n        .trim()\n        .toLowerCase();\n\n      if (label === 'wishlist' || label === 'add to wishlist') {\n        action.style.setProperty('display', 'none', 'important');\n      }\n    });\n  }\n\n  function placeProductActions() {\n    hideWishlistActions();\n    placeNotifyMeLast();\n    renameWishlistCartButton();\n  }\n\n  var wishlistPlacementObserver = new MutationObserver(placeProductActions);\n  wishlistPlacementObserver.observe(document.documentElement, {\n    childList: true,\n    subtree: true\n  });\n\n  document.addEventListener('DOMContentLoaded', placeProductActions);\n  document.addEventListener('shopify:section:load', placeProductActions);\n\n  document.addEventListener('click', function (event) {\n    var headerWishlist = event.target.closest('.nariyal-header-wishlist');\n\n    if (!headerWishlist) {\n      return;\n    }\n\n    event.preventDefault();\n\n    var appWishlistAccess = document.querySelector(\n      '.nm-wishlist-open-list-button, .nm-wishlist-inline-access-button'\n    );\n\n    if (appWishlistAccess) {\n      appWishlistAccess.click();\n    }\n  });\n})();\n\n/*\n * Native theme cart integration.\n * Open the theme mini cart after any successful customer-initiated AJAX add.\n * The automatic free-gift request uses the previously captured native fetch,\n * so it does not trigger the cart a second time.\n */\n(function () {\n  if (window.__nariyalNativeCartTrigger || !window.fetch) {\n    return;\n  }\n\n  window.__nariyalNativeCartTrigger = true;\n\n  var nativeCartFetch = window.fetch.bind(window);\n  var triggerTimer = null;\n\n  function isCartAdd(input, init) {\n    var rawUrl = typeof input === 'string' ? input : input && input.url;\n    var headers = init && init.headers;\n    var isAutomaticGift = false;\n    var isDeferredFeaturedCollectionAdd = false;\n\n    if (headers && typeof headers.get === 'function') {\n      isAutomaticGift = headers.get('X-Nariyal-Automatic-Gift') === '1';\n      isDeferredFeaturedCollectionAdd =\n        headers.get('X-Nariyal-Featured-Collection-Add') === '1';\n    } else if (headers) {\n      isAutomaticGift =\n        headers['X-Nariyal-Automatic-Gift'] === '1' ||\n        headers['x-nariyal-automatic-gift'] === '1';\n      isDeferredFeaturedCollectionAdd =\n        headers['X-Nariyal-Featured-Collection-Add'] === '1' ||\n        headers['x-nariyal-featured-collection-add'] === '1';\n    }\n\n    return (\n      !isAutomaticGift &&\n      !isDeferredFeaturedCollectionAdd &&\n      rawUrl &&\n      /\\/cart\\/add(?:\\.js)?(?:[?#]|$)/.test(rawUrl)\n    );\n  }\n\n  function triggerNativeCart() {\n    nativeCartFetch((window.Shopify && Shopify.routes ? Shopify.routes.root : '/') + 'cart.js', {\n      headers: { 'Accept': 'application/json' }\n    }).then(function (response) {\n      return response.json();\n    }).then(function (cart) {\n      document.documentElement.dispatchEvent(new CustomEvent('cart:updated', {\n        bubbles: true,\n        detail: { cart: cart }\n      }));\n      document.documentElement.dispatchEvent(new CustomEvent('cart:refresh', {\n        bubbles: true,\n        detail: { cart: cart, openMiniCart: true }\n      }));\n    }).catch(function (error) {\n      console.error('[Nariyal native cart trigger]', error);\n    });\n  }\n\n  function scheduleNativeCart() {\n    window.clearTimeout(triggerTimer);\n\n    /*\n     * Allow the purchased line and complimentary gift to finish syncing\n     * before the theme reads and opens the cart.\n     */\n    triggerTimer = window.setTimeout(function () {\n      triggerNativeCart();\n    }, 450);\n  }\n\n  // The free-gift guard defined later owns the timing. Expose the opener so\n  // it can launch the native mini cart after the server cart is normalized.\n  window.__nariyalScheduleNativeCart = scheduleNativeCart;\n\n  window.fetch = function (input, init) {\n    var responsePromise = nativeCartFetch(input, init);\n\n    if (!isCartAdd(input, init)) {\n      return responsePromise;\n    }\n\n    return responsePromise;\n  };\n})();\n\n/**\n * DEVELOPER DOCUMENTATION\n *\n * Include your custom JavaScript here.\n *\n * The theme Focal has been developed to be easily extensible through the usage of a lot of different JavaScript\n * events, as well as the usage of custom elements (https://developers.google.com/web/fundamentals/web-components/customelements)\n * to easily extend the theme and re-use the theme infrastructure for your own code.\n *\n * The technical documentation is summarized here.\n *\n * ------------------------------------------------------------------------------------------------------------\n * BEING NOTIFIED WHEN A VARIANT HAS CHANGED\n * ------------------------------------------------------------------------------------------------------------\n *\n * This event is fired whenever a the user has changed the variant in a selector. The target get you the form\n * that triggered this event.\n *\n * Example:\n *\n * document.addEventListener('variant:changed', function(event) {\n *   let variant = event.detail.variant; // Gives you access to the whole variant details\n *   let form = event.target;\n * });\n *\n * ------------------------------------------------------------------------------------------------------------\n * BEING NOTIFIED WHEN A NEW VARIANT IS ADDED TO THE CART\n * ------------------------------------------------------------------------------------------------------------\n *\n * This event is fired whenever a variant is added to the cart through a form selector (product page, quick\n * view...). This event DOES NOT include any change done through the cart on an existing variant. For that,\n * please refer to the \"cart:updated\" event.\n *\n * Example:\n *\n * document.addEventListener('variant:added', function(event) {\n *   var variant = event.detail.variant; // Get the variant that was added\n * });\n *\n * ------------------------------------------------------------------------------------------------------------\n * BEING NOTIFIED WHEN THE CART CONTENT HAS CHANGED\n * ------------------------------------------------------------------------------------------------------------\n *\n * This event is fired whenever the cart content has changed (if the quantity of a variant has changed, if a variant\n * has been removed, if the note has changed...). This event will also be emitted when a new variant has been\n * added (so you will receive both \"variant:added\" and \"cart:updated\"). Contrary to the variant:added event,\n * this event will give you the complete details of the cart.\n *\n * Example:\n *\n * document.addEventListener('cart:updated', function(event) {\n *   var cart = event.detail.cart; // Get the updated content of the cart\n * });\n *\n * ------------------------------------------------------------------------------------------------------------\n * REFRESH THE CART/MINI-CART\n * ------------------------------------------------------------------------------------------------------------\n *\n * If you are adding variants to the cart and would like to instruct the theme to re-render the cart, you cart\n * send the cart:refresh event, as shown below:\n *\n * document.documentElement.dispatchEvent(new CustomEvent('cart:refresh', {\n *   bubbles: true\n * }));\n *\n * ------------------------------------------------------------------------------------------------------------\n * USAGE OF CUSTOM ELEMENTS\n * ------------------------------------------------------------------------------------------------------------\n *\n * Our theme makes extensive use of HTML custom elements. Custom elements are an awesome way to extend HTML\n * by creating new elements that carry their own JavaScript for adding new behavior. The theme uses a large\n * number of custom elements, but the two most useful are drawer and popover. Each of those components add\n * a \"open\" attribute that you can toggle on and off. For instance, let's say you would like to open the cart\n * drawer, whose id is \"mini-cart\", you simply need to retrieve it and set its \"open\" attribute to true (or\n * false to close it):\n *\n * document.getElementById('mini-cart').open = true;\n *\n * Thanks to the power of custom elements, the theme will take care automagically of trapping focus, maintaining\n * proper accessibility attributes...\n *\n * If you would like to create your own drawer, you can re-use the <drawer-content> content. Here is a simple\n * example:\n *\n * // Make sure you add \"aria-controls\", \"aria-expanded\" and \"is\" HTML attributes to your button:\n * <button type=\"button\" is=\"toggle-button\" aria-controls=\"id-of-drawer\" aria-expanded=\"false\">Open drawer</button>\n *\n * <drawer-content id=\"id-of-drawer\">\n *   Your content\n * </drawer-content>\n *\n * The nice thing with custom elements is that you do not actually need to instantiate JavaScript yourself: this\n * is done automatically as soon as the element is inserted to the DOM.\n *\n * ------------------------------------------------------------------------------------------------------------\n * THEME DEPENDENCIES\n * ------------------------------------------------------------------------------------------------------------\n *\n * While the theme tries to keep outside dependencies as small as possible, the theme still uses third-party code\n * to power some of its features. Here is the list of all dependencies:\n *\n * \"vendor.js\":\n *\n * The vendor.js contains required dependencies. This file is loaded in parallel of the theme file.\n *\n * - custom-elements polyfill (used for built-in elements on Safari - v1.0.0): https://github.com/ungap/custom-elements\n * - web-animations-polyfill (used for polyfilling WebAnimations on Safari 12, this polyfill will be removed in 1 year - v2.3.2): https://github.com/web-animations/web-animations-js\n * - instant-page (v5.1.0): https://github.com/instantpage/instant.page\n * - tocca (v2.0.9); https://github.com/GianlucaGuarini/Tocca.js/\n * - seamless-scroll-polyfill (v2.0.0): https://github.com/magic-akari/seamless-scroll-polyfill\n *\n * \"flickity.js\": v2.2.0 (with the \"fade\" package). Flickity is only loaded on demand if there is a product image\n * carousel on the page. Otherwise it is not loaded.\n *\n * \"photoswipe\": v4.1.3. PhotoSwipe is only loaded on demand to power the zoom feature on product page. If the zoom\n * feature is disabled, then this script is never loaded.\n  */\ndocument.addEventListener('cart:update', function (event) {\n  if (event.detail && event.detail.data && event.detail.data.source === 'cart-drawer-bridge') return;\n\n  Promise.all([\n    fetch(window.Shopify.routes.root + 'cart.js').then(function (response) { return response.json(); }),\n    fetch(window.Shopify.routes.root + 'cart?sections=mini-cart').then(function (response) { return response.json(); })\n  ]).then(function (results) {\n    var cart = results[0];\n    cart.sections = results[1];\n\n    document.documentElement.dispatchEvent(new CustomEvent('cart:updated', {\n      bubbles: true,\n      detail: { cart: cart }\n    }));\n\n    document.documentElement.dispatchEvent(new CustomEvent('cart:refresh', {\n      bubbles: true,\n      detail: {\n        cart: cart,\n        openMiniCart: false\n      }\n    }));\n\n    document.documentElement.dispatchEvent(new CustomEvent('cart-notification:show', {\n      bubbles: true,\n      detail: { status: 'success' }\n    }));\n  });\n});\n\n/*\n * Rapi represents the soap Buy 3 Get 3 offer as two cart lines with the same\n * variant (one paid and one complimentary). Removing only the paid key leaves\n * the complimentary key behind, which makes the promotion restore the pair.\n * Update both linked keys atomically whenever the customer changes the paid\n * quantity. A paid quantity of 2 therefore keeps 2 complimentary units, while\n * zero removes the complete offer. Other products continue through the\n * theme's standard cart handler.\n */\n(function () {\n  if (window.__nariyalSoapOfferPairRemoval) {\n    return;\n  }\n\n  window.__nariyalSoapOfferPairRemoval = true;\n  var linkedOfferVariantIds = {\n    '55264654229809': true,\n    '55026179309873': true\n  };\n  var cartControlInProgress = false;\n\n  function cartUrl(path) {\n    var root = window.Shopify && window.Shopify.routes\n      ? window.Shopify.routes.root\n      : '/';\n    return root + path;\n  }\n\n  function refreshTheme(cart) {\n    if (/\\/cart\\/?$/.test(window.location.pathname)) {\n      window.location.reload();\n      return;\n    }\n\n    document.documentElement.dispatchEvent(new CustomEvent('cart:updated', {\n      bubbles: true,\n      detail: { cart: cart }\n    }));\n    document.documentElement.dispatchEvent(new CustomEvent('cart:refresh', {\n      bubbles: true,\n      detail: {\n        cart: cart,\n        replacementDelay: 0,\n        openMiniCart: true\n      }\n    }));\n  }\n\n  function xhrJson(method, url, body) {\n    return new Promise(function (resolve, reject) {\n      var xhr = new XMLHttpRequest();\n      xhr.open(method, url, true);\n      xhr.setRequestHeader('Accept', 'application/json');\n\n      if (body !== undefined) {\n        xhr.setRequestHeader('Content-Type', 'application/json');\n      }\n\n      xhr.onload = function () {\n        if (xhr.status < 200 || xhr.status >= 400) {\n          reject(new Error('Cart request failed with status ' + xhr.status));\n          return;\n        }\n\n        try {\n          resolve(JSON.parse(xhr.responseText));\n        } catch (error) {\n          reject(error);\n        }\n      };\n      xhr.onerror = function () {\n        reject(new Error('Cart request failed'));\n      };\n      xhr.send(body === undefined ? null : JSON.stringify(body));\n    });\n  }\n\n  /* VCO Remove clears its paid/free pair and the order-level free gift. */\n  document.addEventListener('click', function (event) {\n    var removeLink = event.target.closest('.line-item__remove-button');\n    var vcoRow = removeLink && removeLink.closest(\n      'line-item[data-variant-id=\"55026179309873\"], tr.line-item[data-variant-id=\"55026179309873\"]'\n    );\n    if (!removeLink || !vcoRow || vcoRow.classList.contains('line-item--vco-bogo-free') || window.__nariyalVcoRemovalPending) return;\n\n    event.preventDefault();\n    event.stopImmediatePropagation();\n    window.__nariyalVcoRemovalPending = true;\n    cartControlInProgress = true;\n    vcoRow.style.pointerEvents = 'none';\n    vcoRow.style.opacity = '.55';\n\n    xhrJson('GET', cartUrl('cart.js')).then(function (cart) {\n      var updates = {};\n      cart.items.forEach(function (item) {\n        var variantId = String(item.variant_id);\n        if (variantId === '55026179309873' || variantId === '51610279444785') {\n          updates[item.key] = 0;\n        }\n      });\n      return xhrJson('POST', cartUrl('cart/update.js'), { updates: updates });\n    }).then(function () {\n      window.location.reload();\n    }).catch(function (error) {\n      console.error('[Nariyal VCO remove]', error);\n      window.__nariyalVcoRemovalPending = false;\n      cartControlInProgress = false;\n      vcoRow.style.pointerEvents = '';\n      vcoRow.style.opacity = '';\n    });\n  }, true);\n\n  /* Soap Pack Remove must clear every paid/free promotion line together. */\n  document.addEventListener('click', function (event) {\n    var removeLink = event.target.closest('.line-item__remove-button');\n    var soapRow = removeLink && removeLink.closest(\n      'line-item[data-variant-id=\"55264654229809\"], tr.line-item[data-variant-id=\"55264654229809\"]'\n    );\n    if (!removeLink || !soapRow || window.__nariyalSoapRemovalPending) return;\n\n    event.preventDefault();\n    event.stopImmediatePropagation();\n    window.__nariyalSoapRemovalPending = true;\n    cartControlInProgress = true;\n    soapRow.style.pointerEvents = 'none';\n    soapRow.style.opacity = '.55';\n\n    xhrJson('GET', cartUrl('cart.js')).then(function (cart) {\n      var updates = {};\n      cart.items.forEach(function (item) {\n        if (String(item.variant_id) === '55264654229809' || item.sku === 'NARI6SOAP') {\n          updates[item.key] = 0;\n        }\n      });\n      return xhrJson('POST', cartUrl('cart/update.js'), { updates: updates });\n    }).then(function () {\n      window.location.reload();\n    }).catch(function (error) {\n      console.error('[Nariyal Soap remove]', error);\n      window.__nariyalSoapRemovalPending = false;\n      cartControlInProgress = false;\n      soapRow.style.pointerEvents = '';\n      soapRow.style.opacity = '';\n    });\n  }, true);\n\n  document.addEventListener('click', function (event) {\n    var link = event.target.closest(\n      '#mini-cart line-item .line-item__remove-button,' +\n      '#mini-cart line-item .quantity-selector__button,' +\n      '.shopify-section--main-cart tr.line-item:not(.line-item--soap-offer-free) .line-item__remove-button,' +\n      '.shopify-section--main-cart tr.line-item:not(.line-item--soap-offer-free) .quantity-selector__button'\n    );\n\n    if (!link || cartControlInProgress) {\n      return;\n    }\n\n    var row = link.closest('line-item, tr.line-item');\n    var isMiniCart = Boolean(link.closest('#mini-cart'));\n    var linkedVariantId = row && row.getAttribute('data-variant-id');\n    var isLinkedOffer = Boolean(linkedVariantId && linkedOfferVariantIds[linkedVariantId]);\n\n    var linkUrl = new URL(link.href, window.location.origin);\n    var desiredQuantity = parseInt(linkUrl.searchParams.get('quantity'), 10);\n    if (!Number.isFinite(desiredQuantity) || desiredQuantity < 0) {\n      return;\n    }\n\n    /*\n     * Normal full-cart controls can use Shopify's native navigation, except\n     * Remove. The last paid product and every complimentary cart line must be\n     * cleared atomically so the customer never lands on a gift-only cart.\n     */\n    if (!row || (!isMiniCart && !isLinkedOffer && desiredQuantity !== 0)) {\n      return;\n    }\n\n    event.preventDefault();\n    event.stopImmediatePropagation();\n    cartControlInProgress = true;\n    row.style.pointerEvents = 'none';\n    row.style.opacity = '.55';\n\n    if (desiredQuantity === 0) {\n      var activeCart = isMiniCart\n        ? document.querySelector('#mini-cart')\n        : link.closest('.shopify-section--main-cart');\n      var visiblePaidRows = Array.from(activeCart.querySelectorAll(\n        isMiniCart ? 'line-item' : 'tr.line-item'\n      )).filter(function (cartRow) {\n        return cartRow.querySelector('.line-item__remove-button') &&\n          !cartRow.classList.contains('line-item--free-gift') &&\n          !cartRow.classList.contains('line-item--soap-offer-free') &&\n          !cartRow.classList.contains('line-item--vco-bogo-free');\n      });\n\n      if (visiblePaidRows.length === 1 && visiblePaidRows[0] === row) {\n        activeCart.querySelectorAll('.line-item--free-gift').forEach(function (giftRow) {\n          giftRow.remove();\n        });\n      }\n    }\n\n    var request;\n\n    if (desiredQuantity === 0) {\n      request = xhrJson('GET', cartUrl('cart.js')).then(function (cart) {\n        var line = parseInt(linkUrl.searchParams.get('line'), 10);\n        var id = linkUrl.searchParams.get('id');\n        var targetItem = id\n          ? cart.items.find(function (item) {\n              return item.key === id || String(item.variant_id) === id;\n            })\n          : cart.items[line - 1];\n\n        if (!targetItem && !isLinkedOffer) {\n          throw new Error('Unable to find cart line to remove');\n        }\n\n        var remainingPaidItems = cart.items.filter(function (item) {\n          return (\n            (!targetItem || item.key !== targetItem.key) &&\n            (!isLinkedOffer || String(item.variant_id) !== linkedVariantId) &&\n            String(item.variant_id) !== '51610279444785' &&\n            item.final_line_price > 0\n          );\n        });\n        var updates = {};\n\n        if (remainingPaidItems.length === 0) {\n          cart.items.forEach(function (item) {\n            updates[item.key] = 0;\n          });\n        } else if (isLinkedOffer) {\n          cart.items.forEach(function (item) {\n            if (String(item.variant_id) === linkedVariantId) {\n              updates[item.key] = 0;\n            }\n          });\n        } else {\n          updates[targetItem.key] = 0;\n        }\n\n        return xhrJson('POST', cartUrl('cart/update.js'), { updates: updates });\n      });\n    } else if (isLinkedOffer) {\n      request = xhrJson('GET', cartUrl('cart.js')).then(function (cart) {\n        var updates = {};\n        var paidLineKept = false;\n        var freeLineFound = false;\n\n        cart.items.forEach(function (item) {\n          if (String(item.variant_id) !== linkedVariantId) return;\n\n          var itemRole = item.properties && (\n            item.properties._vco_bogo_role || item.properties._soap_bogo_role\n          );\n          var isFreeOfferLine = itemRole === 'free' || (!itemRole && item.final_line_price === 0);\n\n          if (isFreeOfferLine) {\n            updates[item.key] = desiredQuantity;\n            freeLineFound = true;\n            return;\n          }\n\n          updates[item.key] = paidLineKept ? 0 : desiredQuantity;\n          paidLineKept = true;\n        });\n\n        return xhrJson('POST', cartUrl('cart/update.js'), { updates: updates }).then(function (updatedCart) {\n          if (freeLineFound) return updatedCart;\n\n          return xhrJson('POST', cartUrl('cart/add.js'), {\n            items: [{\n              id: Number(linkedVariantId),\n              quantity: desiredQuantity,\n              properties: linkedVariantId === '55026179309873'\n                ? { _vco_bogo_role: 'free' }\n                : { _soap_bogo_role: 'free' }\n            }]\n          }).then(function () {\n            return xhrJson('GET', cartUrl('cart.js'));\n          });\n        });\n      });\n    } else {\n      var changePayload = {\n        quantity: desiredQuantity,\n        sections: ['mini-cart']\n      };\n      var line = linkUrl.searchParams.get('line');\n      var id = linkUrl.searchParams.get('id');\n\n      if (id) {\n        changePayload.id = id;\n      } else {\n        changePayload.line = parseInt(line, 10);\n      }\n\n      request = xhrJson('POST', cartUrl('cart/change.js'), changePayload);\n    }\n\n    request\n      .then(refreshTheme)\n      .catch(function (error) {\n        console.error('[Nariyal cart controls]', error);\n        document.documentElement.dispatchEvent(new CustomEvent('cart:refresh', {\n          bubbles: true\n        }));\n      })\n      .finally(function () {\n        cartControlInProgress = false;\n      });\n  }, true);\n})();\n\n/*\n * Branded add-to-cart toast.\n * Shows a small bouncing confirmation for AJAX add-to-cart actions across the storefront.\n */\n(function () {\n  if (window.__nariyalAddToCartToast) {\n    return;\n  }\n\n  window.__nariyalAddToCartToast = true;\n\n  var originalFetch = window.fetch ? window.fetch.bind(window) : null;\n  var lastSubmittedProduct = null;\n  var toastTimer = null;\n  var toastHideTimer = null;\n\n  if (!originalFetch) {\n    return;\n  }\n\n  function isCartAddUrl(input) {\n    var rawUrl = typeof input === 'string' ? input : input && input.url;\n\n    if (!rawUrl) {\n      return false;\n    }\n\n    try {\n      var url = new URL(rawUrl, window.location.origin);\n      return /\\/cart\\/add(\\.js)?$/.test(url.pathname);\n    } catch (error) {\n      return rawUrl.indexOf('/cart/add') !== -1;\n    }\n  }\n\n  function cleanImageUrl(url) {\n    if (!url) {\n      return '';\n    }\n\n    if (url.indexOf('//') === 0) {\n      return window.location.protocol + url;\n    }\n\n    return url;\n  }\n\n  function getProductFromResponse(payload) {\n    var item = payload && Array.isArray(payload.items) ? payload.items[0] : payload;\n\n    if (!item || typeof item !== 'object') {\n      return {};\n    }\n\n    return {\n      title: item.product_title || item.title || item.name || '',\n      image: cleanImageUrl(item.featured_image && item.featured_image.url ? item.featured_image.url : item.image)\n    };\n  }\n\n  function getProductFromForm(form) {\n    if (!form || !form.closest) {\n      return {};\n    }\n\n    var scope = form.closest('.product-item, .product, .shopify-section, section') || document;\n    var titleEl = scope.querySelector('.product-meta__title, .product-item-meta__title, .product-title, [data-product-title], h1, h2, h3');\n    var imageEl = scope.querySelector('.product__media img, .product-gallery img, .product-item__primary-image, .product-item img, img');\n\n    return {\n      title: titleEl ? titleEl.textContent.trim() : '',\n      image: imageEl ? cleanImageUrl(imageEl.currentSrc || imageEl.src) : ''\n    };\n  }\n\n  function ensureToast() {\n    var toast = document.querySelector('[data-nariyal-cart-toast]');\n\n    if (toast) {\n      return toast;\n    }\n\n    toast = document.createElement('div');\n    toast.className = 'nariyal-cart-toast';\n    toast.setAttribute('data-nariyal-cart-toast', '');\n    toast.setAttribute('role', 'status');\n    toast.setAttribute('aria-live', 'polite');\n    toast.setAttribute('tabindex', '0');\n    toast.innerHTML = [\n      '<div class=\"nariyal-cart-toast__accent\" aria-hidden=\"true\"></div>',\n      '<img class=\"nariyal-cart-toast__image\" data-toast-image alt=\"\">',\n      '<div class=\"nariyal-cart-toast__content\">',\n      '  <div class=\"nariyal-cart-toast__message\">Added to cart!</div>',\n      '  <div class=\"nariyal-cart-toast__title\" data-toast-title></div>',\n      '</div>',\n      '<button type=\"button\" class=\"nariyal-cart-toast__close\" data-toast-close aria-label=\"Close notification\">&times;</button>'\n    ].join('');\n    document.body.appendChild(toast);\n\n    toast.querySelector('[data-toast-close]').addEventListener('click', function () {\n      hideToast(toast);\n    });\n\n    toast.addEventListener('click', function (event) {\n      if (event.target.closest('[data-toast-close]')) {\n        return;\n      }\n\n      window.location.href = window.themeVariables && window.themeVariables.routes ? window.themeVariables.routes.cartUrl : '/cart';\n    });\n\n    toast.addEventListener('keydown', function (event) {\n      if (event.key === 'Enter' || event.key === ' ') {\n        event.preventDefault();\n        window.location.href = window.themeVariables && window.themeVariables.routes ? window.themeVariables.routes.cartUrl : '/cart';\n      }\n    });\n\n    return toast;\n  }\n\n  function hideToast(toast) {\n    clearTimeout(toastTimer);\n    clearTimeout(toastHideTimer);\n    toast.classList.remove('is-visible');\n    toastHideTimer = window.setTimeout(function () {\n      toast.hidden = true;\n    }, 260);\n  }\n\n  function showToast(product) {\n    if (window.__nariyalSuppressCartToastUntil && Date.now() < window.__nariyalSuppressCartToastUntil) {\n      return;\n    }\n\n    var toast = ensureToast();\n    var title = product && product.title ? product.title : 'Product';\n    var image = product && product.image ? product.image : '';\n    var imageEl = toast.querySelector('[data-toast-image]');\n\n    toast.querySelector('[data-toast-title]').textContent = title;\n\n    if (image) {\n      imageEl.src = image;\n      imageEl.alt = title;\n      imageEl.hidden = false;\n    } else {\n      imageEl.removeAttribute('src');\n      imageEl.alt = '';\n      imageEl.hidden = true;\n    }\n\n    clearTimeout(toastTimer);\n    clearTimeout(toastHideTimer);\n    toast.hidden = false;\n    toast.classList.remove('is-visible');\n\n    window.requestAnimationFrame(function () {\n      toast.classList.add('is-visible');\n    });\n\n    toastTimer = window.setTimeout(function () {\n      hideToast(toast);\n    }, 2800);\n  }\n\n  document.addEventListener('submit', function (event) {\n    var form = event.target;\n\n    if (form && form.matches && form.matches('form[action*=\"/cart/add\"], form[is=\"product-form\"], [data-type=\"add-to-cart-form\"]')) {\n      lastSubmittedProduct = getProductFromForm(form);\n    }\n  }, true);\n\n  document.addEventListener('nariyal:cart-added', function (event) {\n    showToast(getProductFromResponse(event.detail && event.detail.item ? event.detail.item : {}));\n  });\n\n  window.fetch = function (input, init) {\n    var requestPromise = originalFetch(input, init);\n\n    if (!isCartAddUrl(input)) {\n      return requestPromise;\n    }\n\n    requestPromise.then(function (response) {\n      if (!response || !response.ok) {\n        return;\n      }\n\n      response.clone().json().then(function (payload) {\n        var responseProduct = getProductFromResponse(payload);\n        showToast({\n          title: responseProduct.title || (lastSubmittedProduct && lastSubmittedProduct.title) || 'Product',\n          image: responseProduct.image || (lastSubmittedProduct && lastSubmittedProduct.image) || ''\n        });\n      }).catch(function () {\n        showToast(lastSubmittedProduct || {});\n      });\n    });\n\n    return requestPromise;\n  };\n})();\n\n/*\n * Never attach combo contents to products that are sold as standalone items.\n * Some third-party bundle forms can leak their Included products field into a\n * later cart request. Sanitize every AJAX payload for these known single SKUs.\n */\n(function () {\n  if (window.__nariyalStandaloneCartPropertyGuard || !window.fetch) {\n    return;\n  }\n\n  window.__nariyalStandaloneCartPropertyGuard = true;\n\n  var standaloneVariantIds = {\n    '55026163908913': true // Virgin Coconut Oil Cold Pressed 100 ml\n  };\n  var soapBuy3Get3VariantId = '55264654229809';\n  var vcoBuyOneGetOneVariantId = '55026179309873';\n  var soapBuy3Get3Property = '{\"main\":true,\"id\":\"k3t1\",\"offer\":\"AEWYX\"}';\n  var sunscreenBuy1Get1VariantId = '52465434722609';\n  var sunscreenBuy1Get1Property = '{\"main\":true,\"id\":\"125913\",\"offer\":\"YbJla\"}';\n  var lipBalmVariantId = '55025194631473';\n  var lipBalmBuyMoreProperty = '{\"main\":true,\"id\":\"157393\",\"offer\":\"JmWJG\"}';\n  var guardedFetch = window.fetch.bind(window);\n\n  function isCartAddRequest(input) {\n    var rawUrl = typeof input === 'string' ? input : input && input.url;\n    return rawUrl && rawUrl.indexOf('/cart/add') !== -1;\n  }\n\n  function selectedRapiOfferValue() {\n    var input = document.querySelector('[name=\"properties[__rapi_offer]\"]');\n    return input && input.value ? input.value : '';\n  }\n\n  function isLipBalmBuyMoreOffer(value) {\n    return String(value || '').indexOf('JmWJG') !== -1;\n  }\n\n  function soapOfferCartQuantity(value) {\n    var requestedQuantity = parseInt(value, 10);\n    return Number.isFinite(requestedQuantity) && requestedQuantity > 0\n      ? requestedQuantity\n      : 1;\n  }\n\n  function sanitizeParams(params) {\n    var variantId = params.get('id');\n\n    params.delete('properties[Free gift]');\n    params.delete('properties[Included products]');\n\n    if (String(variantId) === soapBuy3Get3VariantId) {\n      params.set('properties[__rapi_offer]', soapBuy3Get3Property);\n      /* Keep the charged cart quantity unchanged. The complimentary pack is\n         represented by the dedicated cart display row. */\n      params.set('quantity', String(soapOfferCartQuantity(params.get('quantity'))));\n    }\n\n    if (String(variantId) === sunscreenBuy1Get1VariantId) {\n      params.set('properties[__rapi_offer]', sunscreenBuy1Get1Property);\n      params.set('properties[_rapi_bundles]', '125913');\n    }\n\n    if (String(variantId) === lipBalmVariantId) {\n      var lipBalmOffer = params.get('properties[__rapi_offer]') || selectedRapiOfferValue();\n      if (isLipBalmBuyMoreOffer(lipBalmOffer)) {\n        params.set('properties[__rapi_offer]', lipBalmBuyMoreProperty);\n        params.set('properties[_rapi_bundles]', '157393');\n        params.set('quantity', '2');\n      }\n    }\n\n    for (var index = 0; params.has('items[' + index + '][id]'); index++) {\n      params.delete('items[' + index + '][properties][Free gift]');\n      params.delete('items[' + index + '][properties][Included products]');\n\n      if (String(params.get('items[' + index + '][id]')) === soapBuy3Get3VariantId) {\n        params.set('items[' + index + '][properties][__rapi_offer]', soapBuy3Get3Property);\n        params.set(\n          'items[' + index + '][quantity]',\n          String(soapOfferCartQuantity(params.get('items[' + index + '][quantity]')))\n        );\n      }\n      if (String(params.get('items[' + index + '][id]')) === sunscreenBuy1Get1VariantId) {\n        params.set('items[' + index + '][properties][__rapi_offer]', sunscreenBuy1Get1Property);\n        params.set('items[' + index + '][properties][_rapi_bundles]', '125913');\n      }\n      if (String(params.get('items[' + index + '][id]')) === lipBalmVariantId) {\n        var indexedLipBalmOffer = params.get('items[' + index + '][properties][__rapi_offer]') || selectedRapiOfferValue();\n        if (isLipBalmBuyMoreOffer(indexedLipBalmOffer)) {\n          params.set('items[' + index + '][properties][__rapi_offer]', lipBalmBuyMoreProperty);\n          params.set('items[' + index + '][properties][_rapi_bundles]', '157393');\n          params.set('items[' + index + '][quantity]', '2');\n        }\n      }\n    }\n\n    if (standaloneVariantIds[String(variantId)]) {\n      params.delete('properties[Included products]');\n    }\n  }\n\n  function sanitizeJson(payload) {\n    if (!payload || typeof payload !== 'object') {\n      return payload;\n    }\n\n    var items = Array.isArray(payload.items) ? payload.items : [payload];\n\n    items.forEach(function (item) {\n      if (item && item.properties) {\n        delete item.properties['Free gift'];\n        delete item.properties['Included products'];\n\n        if (Object.keys(item.properties).length === 0) {\n          delete item.properties;\n        }\n      }\n\n      if (item && String(item.id) === soapBuy3Get3VariantId) {\n        item.properties = item.properties || {};\n        item.properties.__rapi_offer = soapBuy3Get3Property;\n        item.quantity = soapOfferCartQuantity(item.quantity);\n      }\n\n      if (item && String(item.id) === sunscreenBuy1Get1VariantId) {\n        item.properties = item.properties || {};\n        item.properties.__rapi_offer = sunscreenBuy1Get1Property;\n        item.properties._rapi_bundles = '125913';\n      }\n\n      if (item && String(item.id) === lipBalmVariantId) {\n        var jsonLipBalmOffer = item.properties && item.properties.__rapi_offer\n          ? item.properties.__rapi_offer\n          : selectedRapiOfferValue();\n        if (isLipBalmBuyMoreOffer(jsonLipBalmOffer)) {\n          item.properties = item.properties || {};\n          item.properties.__rapi_offer = lipBalmBuyMoreProperty;\n          item.properties._rapi_bundles = '157393';\n          item.quantity = 2;\n        }\n      }\n\n      if (!item || !standaloneVariantIds[String(item.id)] || !item.properties) {\n        return;\n      }\n    });\n\n    return payload;\n  }\n\n  function requestedVcoCompanionQuantity(body) {\n    var paidQuantity = 0;\n    var hasFreeLine = false;\n\n    function inspectItem(id, quantity, role) {\n      if (String(id) !== vcoBuyOneGetOneVariantId) return;\n      if (String(role || '') === 'free') {\n        hasFreeLine = true;\n        return;\n      }\n      paidQuantity += Math.max(1, parseInt(quantity, 10) || 1);\n    }\n\n    if (body instanceof FormData || body instanceof URLSearchParams) {\n      if (body.has('id')) {\n        inspectItem(body.get('id'), body.get('quantity'), body.get('properties[_vco_bogo_role]'));\n      }\n\n      for (var index = 0; body.has('items[' + index + '][id]'); index++) {\n        inspectItem(\n          body.get('items[' + index + '][id]'),\n          body.get('items[' + index + '][quantity]'),\n          body.get('items[' + index + '][properties][_vco_bogo_role]')\n        );\n      }\n    } else if (typeof body === 'string') {\n      try {\n        var payload = JSON.parse(body);\n        var items = Array.isArray(payload.items) ? payload.items : [payload];\n        items.forEach(function (item) {\n          inspectItem(\n            item && item.id,\n            item && item.quantity,\n            item && item.properties && item.properties._vco_bogo_role\n          );\n        });\n      } catch (error) {\n        return requestedVcoCompanionQuantity(new URLSearchParams(body));\n      }\n    }\n\n    return hasFreeLine ? 0 : paidQuantity;\n  }\n\n  function addVcoCompanion(quantity) {\n    return new Promise(function (resolve, reject) {\n      var request = new XMLHttpRequest();\n      request.__nariyalVcoCompanionRequest = true;\n      request.open('POST', (window.Shopify && Shopify.routes ? Shopify.routes.root : '/') + 'cart/add.js', true);\n      request.setRequestHeader('Accept', 'application/json');\n      request.setRequestHeader('Content-Type', 'application/json');\n      request.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n      request.onload = function () {\n        if (request.status < 200 || request.status >= 400) {\n          reject(new Error('Unable to add the complimentary VCO bottle'));\n          return;\n        }\n        resolve();\n      };\n      request.onerror = function () {\n        reject(new Error('Unable to add the complimentary VCO bottle'));\n      };\n      request.send(JSON.stringify({\n        items: [{\n          id: Number(vcoBuyOneGetOneVariantId),\n          quantity: quantity,\n          properties: { _vco_bogo_role: 'free' }\n        }]\n      }));\n    });\n  }\n\n  window.fetch = function (input, init) {\n    if (!isCartAddRequest(input) || !init || !init.body) {\n      return guardedFetch(input, init);\n    }\n\n    var vcoCompanionQuantity = requestedVcoCompanionQuantity(init.body);\n\n    if (init.body instanceof FormData || init.body instanceof URLSearchParams) {\n      sanitizeParams(init.body);\n    } else if (typeof init.body === 'string') {\n      try {\n        init.body = JSON.stringify(sanitizeJson(JSON.parse(init.body)));\n      } catch (error) {\n        var params = new URLSearchParams(init.body);\n        sanitizeParams(params);\n        init.body = params.toString();\n      }\n    }\n\n    return guardedFetch(input, init).then(function (response) {\n      if (!response.ok || !vcoCompanionQuantity) return response;\n\n      return addVcoCompanion(vcoCompanionQuantity).then(function () {\n        return response;\n      });\n    });\n  };\n\n  if (window.XMLHttpRequest && !window.__nariyalVcoXhrPairGuard) {\n    window.__nariyalVcoXhrPairGuard = true;\n\n    var originalXhrOpen = XMLHttpRequest.prototype.open;\n    var originalXhrSend = XMLHttpRequest.prototype.send;\n\n    XMLHttpRequest.prototype.open = function (method, url) {\n      this.__nariyalVcoCartAdd =\n        !this.__nariyalVcoCompanionRequest &&\n        String(method || 'GET').toUpperCase() === 'POST' &&\n        String(url || '').indexOf('/cart/add') !== -1;\n\n      return originalXhrOpen.apply(this, arguments);\n    };\n\n    XMLHttpRequest.prototype.send = function (body) {\n      var request = this;\n      var companionQuantity = request.__nariyalVcoCartAdd\n        ? requestedVcoCompanionQuantity(body)\n        : 0;\n\n      if (!companionQuantity) {\n        return originalXhrSend.call(request, body);\n      }\n\n      addVcoCompanion(companionQuantity)\n        .catch(function (error) {\n          console.error('[Nariyal VCO companion]', error);\n        })\n        .then(function () {\n          originalXhrSend.call(request, body);\n        });\n    };\n  }\n})();\n\n/*\n * Cart drawer policy: adding an item only shows the confirmation toast.\n * The drawer may open exclusively from an intentional cart-icon click.\n */\n(function () {\n  if (window.__nariyalCartDrawerPolicy) {\n    return;\n  }\n\n  window.__nariyalCartDrawerPolicy = true;\n\n  var suppressDrawerUntil = 0;\n  var policyFetch = window.fetch ? window.fetch.bind(window) : null;\n  var observer = null;\n\n  function isCartAddUrl(input) {\n    var rawUrl = typeof input === 'string' ? input : input && input.url;\n    return rawUrl && rawUrl.indexOf('/cart/add') !== -1;\n  }\n\n  function closeDrawer() {\n    var drawer = document.getElementById('mini-cart');\n\n    if (!drawer || Date.now() >= suppressDrawerUntil) {\n      return;\n    }\n\n    if ('open' in drawer) {\n      drawer.open = false;\n    }\n\n    drawer.removeAttribute('open');\n  }\n\n  function suppressDrawer() {\n    suppressDrawerUntil = Date.now() + 2500;\n    closeDrawer();\n    window.setTimeout(closeDrawer, 0);\n    window.setTimeout(closeDrawer, 100);\n    window.setTimeout(closeDrawer, 350);\n    window.setTimeout(closeDrawer, 800);\n  }\n\n  function watchDrawer() {\n    var drawer = document.getElementById('mini-cart');\n\n    if (!drawer || observer) {\n      return;\n    }\n\n    observer = new MutationObserver(function (mutations) {\n      mutations.forEach(function (mutation) {\n        if (mutation.attributeName === 'open' && drawer.hasAttribute('open')) {\n          closeDrawer();\n        }\n      });\n    });\n\n    observer.observe(drawer, { attributes: true, attributeFilter: ['open'] });\n  }\n\n  document.addEventListener('DOMContentLoaded', watchDrawer);\n  watchDrawer();\n\n  document.addEventListener('click', function (event) {\n    var cartTrigger = event.target.closest('[aria-controls=\"mini-cart\"], a[href=\"/cart\"], a[href$=\"/cart\"]');\n\n    if (cartTrigger) {\n      suppressDrawerUntil = 0;\n      return;\n    }\n\n    var addButton = event.target.closest('button[type=\"submit\"], input[type=\"submit\"], .product-tlpc__btn-buy-now, .sticky-atc-tlpc__btn');\n    var addForm = addButton && addButton.form;\n\n    if ((addForm && String(addForm.action).indexOf('/cart/add') !== -1) ||\n        (addButton && addButton.matches('.product-tlpc__btn-buy-now, .sticky-atc-tlpc__btn'))) {\n      suppressDrawer();\n    }\n  }, true);\n\n  document.addEventListener('submit', function (event) {\n    var form = event.target;\n\n    if (form && String(form.action || '').indexOf('/cart/add') !== -1) {\n      suppressDrawer();\n    }\n  }, true);\n\n  document.addEventListener('variant:added', suppressDrawer, true);\n  document.addEventListener('nariyal:cart-added', suppressDrawer, true);\n\n  if (policyFetch) {\n    window.fetch = function (input, init) {\n      return policyFetch(input, init);\n    };\n  }\n})();\n\n/*\n * Keep mobile menu footer login usable with Shopify's account modal.\n * The menu drawer is closed after the account trigger receives the click so the modal content stays visible.\n */\n(function () {\n  if (window.__nariyalAccountDrawerFix) {\n    return;\n  }\n\n  window.__nariyalAccountDrawerFix = true;\n\n  document.addEventListener('click', function (event) {\n    var accountTrigger = event.target.closest('#mobile-menu-drawer shopify-account, .drawer--menu shopify-account');\n\n    if (!accountTrigger) {\n      return;\n    }\n\n    window.setTimeout(function () {\n      var drawer = document.querySelector('#mobile-menu-drawer, .drawer--menu[open]');\n\n      if (!drawer) {\n        return;\n      }\n\n      if ('open' in drawer) {\n        drawer.open = false;\n      } else {\n        drawer.removeAttribute('open');\n      }\n    }, 80);\n  }, true);\n})();\n\n/*\n * Keep Shopify product videos/GIF-like uploaded media playing automatically.\n * Muted + playsinline videos are allowed to autoplay by modern mobile browsers,\n * but sliders/drawers can insert or reveal them after the first page load.\n */\n(function () {\n  function playAutoplayMedia(root) {\n    var scope = root && root.querySelectorAll ? root : document;\n    scope.querySelectorAll('video[autoplay], video.js-autoplay-media').forEach(function (video) {\n      video.muted = true;\n      video.defaultMuted = true;\n      video.loop = true;\n      video.playsInline = true;\n      video.setAttribute('muted', '');\n      video.setAttribute('playsinline', '');\n      video.setAttribute('webkit-playsinline', '');\n      video.setAttribute('loop', '');\n      video.setAttribute('autoplay', '');\n      video.play().catch(function () {});\n    });\n  }\n\n  document.addEventListener('DOMContentLoaded', function () {\n    playAutoplayMedia(document);\n    window.setTimeout(function () { playAutoplayMedia(document); }, 500);\n    window.setTimeout(function () { playAutoplayMedia(document); }, 1500);\n  });\n\n  document.addEventListener('shopify:section:load', function (event) {\n    playAutoplayMedia(event.target);\n  });\n\n  document.addEventListener('visibilitychange', function () {\n    if (!document.hidden) playAutoplayMedia(document);\n  });\n\n  document.addEventListener('click', function () {\n    playAutoplayMedia(document);\n  }, { once: true });\n})();\n\n\n/*\n * Some cart drawers render outside the theme's Liquid line-item markup.\n * Hide only the quantity control belonging to the exact \"Free Gift\" row.\n * This does not touch checkout buttons, links or normal product quantities.\n */\n(function () {\n  if (window.__nariyalGiftQuantityUi) {\n    return;\n  }\n\n  window.__nariyalGiftQuantityUi = true;\n\n  function hideGiftQuantityControls() {\n    document.querySelectorAll('span, p, div').forEach(function (label) {\n      if (label.children.length > 0 || label.textContent.trim() !== 'Free Gift') {\n        return;\n      }\n\n      var row = label;\n\n      for (var depth = 0; row && depth < 6; depth++, row = row.parentElement) {\n        var buttons = row.querySelectorAll('button, [role=\"button\"]');\n        var hasFreeLabel = /\\bFREE!?\\b/i.test(row.textContent);\n\n        if (!hasFreeLabel || buttons.length < 2) {\n          continue;\n        }\n\n        var quantityButtons = Array.prototype.filter.call(buttons, function (button) {\n          var text = button.textContent.trim();\n          var aria = button.getAttribute('aria-label') || '';\n          return (\n            text === '+' ||\n            text === '-' ||\n            text === '\u2212' ||\n            /increase|decrease|quantity/i.test(aria)\n          );\n        });\n\n        if (quantityButtons.length >= 2) {\n          var quantityControl = quantityButtons[0].parentElement;\n\n          if (\n            quantityControl &&\n            quantityButtons.every(function (button) {\n              return button.parentElement === quantityControl;\n            })\n          ) {\n            quantityControl.style.setProperty('display', 'none', 'important');\n          } else {\n            quantityButtons.forEach(function (button) {\n              button.style.setProperty('display', 'none', 'important');\n            });\n          }\n\n          break;\n        }\n      }\n    });\n  }\n\n  var observer = new MutationObserver(hideGiftQuantityControls);\n  observer.observe(document.documentElement, { childList: true, subtree: true });\n  document.addEventListener('DOMContentLoaded', hideGiftQuantityControls);\n  document.documentElement.addEventListener('cart:refresh', hideGiftQuantityControls);\n})();\n/* Keep the Soap Pack BOGO cart at one charged line and render one free pack. */\n(function () {\n  var SOAP_VARIANT = '55264654229809';\n  var VCO_VARIANT = '55026179309873';\n  var normalizing = false;\n  var checkoutBusy = false;\n\n  function cartUrl(path) {\n    var root = window.Shopify && Shopify.routes ? Shopify.routes.root : '/';\n    return root + path;\n  }\n\n  function requestJson(method, path, body) {\n    return fetch(cartUrl(path), {\n      method: method,\n      credentials: 'same-origin',\n      headers: { Accept: 'application/json', 'Content-Type': 'application/json' },\n      body: body === undefined ? undefined : JSON.stringify(body)\n    }).then(function (response) {\n      if (!response.ok) throw new Error('Soap cart normalization failed');\n      return response.json();\n    });\n  }\n\n  function ensureBogoFreeItems() {\n    return requestJson('GET', 'cart.js').then(function (cart) {\n      var paidSoapQuantity = 0;\n      var freeSoapQuantity = 0;\n      var paidVcoQuantity = 0;\n      var freeVcoQuantity = 0;\n\n      cart.items.forEach(function (item) {\n        var variantId = String(item.variant_id);\n\n        if (variantId === SOAP_VARIANT) {\n          if (item.final_line_price === 0) {\n            freeSoapQuantity += item.quantity;\n          } else {\n            paidSoapQuantity += item.quantity;\n          }\n        }\n\n        if (variantId !== VCO_VARIANT) return;\n\n        if (item.properties && item.properties._vco_bogo_role === 'free') {\n          freeVcoQuantity += item.quantity;\n        } else {\n          paidVcoQuantity += item.quantity;\n        }\n      });\n\n      var missingSoapQuantity = Math.max(0, paidSoapQuantity - freeSoapQuantity);\n      var missingVcoQuantity = Math.max(0, paidVcoQuantity - freeVcoQuantity);\n      var missingItems = [];\n\n      if (missingSoapQuantity) {\n        missingItems.push({\n          id: Number(SOAP_VARIANT),\n          quantity: missingSoapQuantity,\n          properties: { _soap_bogo_role: 'free' }\n        });\n      }\n\n      if (missingVcoQuantity) {\n        missingItems.push({\n          id: Number(VCO_VARIANT),\n          quantity: missingVcoQuantity,\n          properties: { _vco_bogo_role: 'free' }\n        });\n      }\n\n      if (!missingItems.length) return cart;\n\n      return requestJson('POST', 'cart/add.js', {\n        items: missingItems\n      });\n    });\n  }\n\n  function verifyBogoFreeItems(attempt) {\n    attempt = attempt || 0;\n\n    return ensureBogoFreeItems().then(function () {\n      return new Promise(function (resolve) {\n        window.setTimeout(resolve, 250);\n      });\n    }).then(function () {\n      return requestJson('GET', 'cart.js');\n    }).then(function (cart) {\n      var paidVcoQuantity = 0;\n      var freeVcoQuantity = 0;\n\n      cart.items.forEach(function (item) {\n        if (String(item.variant_id) !== VCO_VARIANT) return;\n\n        if (item.properties && item.properties._vco_bogo_role === 'free') {\n          freeVcoQuantity += item.quantity;\n        } else {\n          paidVcoQuantity += item.quantity;\n        }\n      });\n\n      if (!paidVcoQuantity || paidVcoQuantity === freeVcoQuantity) return cart;\n      if (attempt >= 1) throw new Error('VCO BOGO pair verification failed');\n\n      return verifyBogoFreeItems(attempt + 1);\n    });\n  }\n\n  function renderFreeSoapRow() {\n    var selector = '.line-item[data-variant-id=\"' + SOAP_VARIANT + '\"]';\n    document.querySelectorAll(selector + '.line-item--soap-unit-clone').forEach(function (row) {\n      row.remove();\n    });\n\n    function prepareFreeUnit(row) {\n      row.classList.remove('line-item--soap-offer-paid');\n      row.classList.add('line-item--soap-offer-free');\n      row.dataset.lineQuantity = '1';\n      row.dataset.soapFreeRendered = 'true';\n      row.querySelectorAll('.line-item__quantity, .quantity-selector, .line-item__remove-button, .line-item__discount-list, .discount-badge, .line-item__free-quantity').forEach(function (node) {\n        node.remove();\n      });\n      row.querySelectorAll('.price-list').forEach(function (prices) {\n        prices.innerHTML = '<span class=\"price price--highlight\">Free!</span><span class=\"price price--compare\">Rs. 199</span>';\n      });\n      return row;\n    }\n\n    var actualFreeRows = Array.prototype.slice.call(document.querySelectorAll(selector + '.line-item--soap-offer-free:not(.line-item--soap-unit-clone)'));\n    if (actualFreeRows.length) {\n      actualFreeRows.forEach(function (freeRow) {\n        var freeQuantity = Math.max(1, Number(freeRow.dataset.soapOriginalQuantity || freeRow.dataset.lineQuantity) || 1);\n        freeRow.dataset.soapOriginalQuantity = String(freeQuantity);\n        prepareFreeUnit(freeRow);\n        var insertionPoint = freeRow;\n\n        for (var unit = 1; unit < freeQuantity; unit += 1) {\n          var unitRow = prepareFreeUnit(freeRow.cloneNode(true));\n          unitRow.classList.add('line-item--soap-unit-clone');\n          insertionPoint.parentNode.insertBefore(unitRow, insertionPoint.nextSibling);\n          insertionPoint = unitRow;\n        }\n      });\n      return;\n    }\n\n    var sourcePaidRow = document.querySelector(selector + ':not(.line-item--soap-offer-free)');\n    if (!sourcePaidRow || !sourcePaidRow.parentNode) return;\n    sourcePaidRow.dataset.soapFreeRendered = 'true';\n    sourcePaidRow.classList.add('line-item--soap-offer-paid');\n    var sourceQuantityInput = sourcePaidRow.querySelector('.quantity-selector__input');\n    var sourceQuantity = Math.max(1, Number(sourceQuantityInput ? sourceQuantityInput.value : sourcePaidRow.dataset.lineQuantity) || 1);\n    var sourceInsertionPoint = sourcePaidRow;\n\n    for (var sourceUnit = 0; sourceUnit < sourceQuantity; sourceUnit += 1) {\n      var syntheticUnitRow = prepareFreeUnit(sourcePaidRow.cloneNode(true));\n      syntheticUnitRow.classList.add('line-item--soap-unit-clone');\n      sourceInsertionPoint.parentNode.insertBefore(syntheticUnitRow, sourceInsertionPoint.nextSibling);\n      sourceInsertionPoint = syntheticUnitRow;\n    }\n    return;\n\n    document.querySelectorAll(selector).forEach(function (paidRow) {\n      if (paidRow.classList.contains('line-item--soap-offer-free')) return;\n      if (paidRow.dataset.soapFreeRendered === 'true') return;\n      if (paidRow.parentNode.querySelector(selector + '.line-item--soap-offer-free')) return;\n\n      paidRow.dataset.soapFreeRendered = 'true';\n      paidRow.classList.add('line-item--soap-offer-paid');\n      var paidQuantityInput = paidRow.querySelector('.quantity-selector__input');\n      var displayedFreeQuantity = paidQuantityInput ? Number(paidQuantityInput.value) || 1 : 1;\n      var freeRow = paidRow.cloneNode(true);\n      freeRow.classList.remove('line-item--soap-offer-paid');\n      freeRow.classList.add('line-item--soap-offer-free');\n      freeRow.dataset.soapFreeRendered = 'true';\n      freeRow.querySelectorAll('.line-item__quantity, .quantity-selector, .line-item__remove-button, .line-item__discount-list, .discount-badge').forEach(function (node) {\n        node.remove();\n      });\n      freeRow.querySelectorAll('.price-list').forEach(function (prices) {\n        prices.innerHTML = '<span class=\"price price--highlight\">Free!</span><span class=\"price price--compare\">Rs. 199</span>';\n      });\n      var freeInfo = freeRow.querySelector('.line-item__info');\n      if (freeInfo && !freeInfo.querySelector('.line-item__free-quantity')) {\n        var freeQuantity = document.createElement('span');\n        freeQuantity.className = 'line-item__free-quantity';\n        freeQuantity.textContent = 'Free \u00D7 ' + displayedFreeQuantity;\n        freeInfo.appendChild(freeQuantity);\n      }\n      paidRow.parentNode.insertBefore(freeRow, paidRow.nextSibling);\n    });\n  }\n\n  function normalizeSoapCart() {\n    if (normalizing || window.__nariyalSoapCheckoutPending || window.__nariyalSoapRemovalPending) return;\n    normalizing = true;\n\n    requestJson('GET', 'cart.js').then(function (cart) {\n      var paidLines = [];\n      var freeLines = [];\n\n      cart.items.forEach(function (item) {\n        if (String(item.variant_id) !== SOAP_VARIANT) return;\n\n        if (item.final_line_price === 0) {\n          freeLines.push(item);\n        } else {\n          paidLines.push(item);\n        }\n      });\n\n      if (!paidLines.length) return cart;\n\n      var paidQuantity = paidLines.reduce(function (total, item) {\n        return total + item.quantity;\n      }, 0);\n      var freeQuantity = freeLines.reduce(function (total, item) {\n        return total + item.quantity;\n      }, 0);\n      var needsConsolidation = paidLines.length > 1 || freeLines.length > 1 || freeQuantity !== paidQuantity;\n\n      if (!needsConsolidation) {\n        renderFreeSoapRow();\n        return cart;\n      }\n\n      var updates = {};\n      paidLines.forEach(function (item, index) {\n        updates[item.key] = index === 0 ? paidQuantity : 0;\n      });\n      freeLines.forEach(function (item, index) {\n        updates[item.key] = index === 0 ? paidQuantity : 0;\n      });\n\n      return requestJson('POST', 'cart/update.js', { updates: updates }).then(function () {\n        if (freeLines.length) return;\n\n        return requestJson('POST', 'cart/add.js', {\n          items: [{\n            id: Number(SOAP_VARIANT),\n            quantity: paidQuantity,\n            properties: { _soap_bogo_role: 'free' }\n          }]\n        });\n      }).then(function () {\n        window.location.reload();\n      });\n    }).catch(function (error) {\n      console.error('[Nariyal Soap BOGO cart]', error);\n    }).finally(function () {\n      normalizing = false;\n    });\n  }\n\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', normalizeSoapCart, { once: true });\n  } else {\n    normalizeSoapCart();\n  }\n  document.documentElement.addEventListener('cart:refresh', function () {\n    window.setTimeout(normalizeSoapCart, 100);\n  });\n\n  document.addEventListener('click', function (event) {\n    var checkoutLink = event.target.closest(\n      'a.checkout-button[href*=\"checkout\"], .cart__checkout-button, #mini-cart .checkout-button'\n    );\n    if (!checkoutLink || checkoutBusy) return;\n\n    event.preventDefault();\n    event.stopImmediatePropagation();\n\n    checkoutBusy = true;\n    return;\n    window.__nariyalSoapCheckoutPending = true;\n    checkoutLink.setAttribute('aria-busy', 'true');\n\n    verifyBogoFreeItems()\n      .then(function () { window.location.assign(cartUrl('checkout')); })\n      .catch(function (error) {\n        console.error('[Nariyal BOGO checkout]', error);\n        checkoutBusy = false;\n        window.__nariyalSoapCheckoutPending = false;\n        checkoutLink.removeAttribute('aria-busy');\n        window.alert('Free offer product add nahi ho paya. Please ek baar phir try karein.');\n      });\n  }, true);\n\n})();\n"],
  "mappings": "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",
  "names": ["line", "id"]
}
