{
  "version": 3,
  "sources": ["/cdn/shop/t/58/assets/hiranya-wote.js?rev=20260516-drawer-atc-button"],
  "sourcesContent": ["document.addEventListener('DOMContentLoaded', () => {\n  initHiranyaHome();\n  initHiranyaSeo();\n  initHiranyaHeader();\n  initHiranyaProductForms();\n  initHiranyaWelcomePopup();\n});\n\nfunction hiranyaEscapeHtml(value) {\n  return String(value ?? '')\n    .replace(/&/g, '&amp;')\n    .replace(/</g, '&lt;')\n    .replace(/>/g, '&gt;')\n    .replace(/\"/g, '&quot;')\n    .replace(/'/g, '&#39;');\n}\n\nfunction hiranyaFormatMoney(amount, currency = '\u20B9') {\n  const parsedAmount = Number(amount) || 0;\n  const hasDecimals = Math.abs(parsedAmount - Math.round(parsedAmount)) > 0.001;\n  const currencyLabel = !currency || currency === 'INR' ? '\u20B9' : currency;\n\n  return `${currencyLabel} ${parsedAmount.toLocaleString('en-IN', {\n    minimumFractionDigits: hasDecimals ? 2 : 0,\n    maximumFractionDigits: hasDecimals ? 2 : 0,\n  })}`;\n}\n\nfunction hiranyaNormalizeSkuKey(value) {\n  return String(value ?? '').trim().toUpperCase();\n}\n\nfunction hiranyaLoadSkuMap(url) {\n  if (!url) {\n    return Promise.resolve({});\n  }\n\n  if (window.__hiranyaSkuMapPromise && window.__hiranyaSkuMapUrl === url) {\n    return window.__hiranyaSkuMapPromise;\n  }\n\n  window.__hiranyaSkuMapUrl = url;\n  window.__hiranyaSkuMapPromise = fetch(url, {\n    headers: { Accept: 'application/json' },\n  }).then((response) => {\n    if (!response.ok) {\n      throw new Error('Unable to load SKU map.');\n    }\n\n    return response.json();\n  });\n\n  return window.__hiranyaSkuMapPromise;\n}\n\nfunction hiranyaBuildPairCardMarkup(pairItem) {\n  if (!pairItem || !Array.isArray(pairItem.variants) || !pairItem.variants.length) {\n    return '';\n  }\n\n  const productUrl = pairItem.url || `/products/${pairItem.handle}`;\n  const featuredImage = pairItem.featuredImage || '';\n  const currentVariant =\n    pairItem.variants.find((variant) => String(variant.id) === String(pairItem.selectedVariantId)) ||\n    pairItem.variants[0];\n  const currentPrice = currentVariant\n    ? hiranyaFormatMoney((Number(currentVariant.priceCents) || 0) / 100, '\u20B9')\n    : '';\n  const currentAvailable = Boolean(currentVariant?.available);\n  const pairImage = hiranyaImageUrlWithWidth(featuredImage, 360);\n  const imageMarkup = featuredImage\n    ? `<img src=\"${hiranyaEscapeHtml(pairImage)}\" alt=\"${hiranyaEscapeHtml(pairItem.title)}\" loading=\"lazy\" decoding=\"async\">`\n    : '';\n  const optionsMarkup = pairItem.variants\n    .map((variant) => {\n      const label =\n        variant.title && variant.title !== 'Default Title' ? String(variant.title).toUpperCase() : 'STD';\n      const optionText = variant.available ? label : `${label} - SOLD OUT`;\n      const selected = String(variant.id) === String(currentVariant?.id) ? ' selected' : '';\n      const disabled = variant.available ? '' : ' disabled';\n\n      return `<option value=\"${hiranyaEscapeHtml(variant.id)}\" data-price=\"${hiranyaEscapeHtml(\n        hiranyaFormatMoney((Number(variant.priceCents) || 0) / 100, '\u20B9')\n      )}\" data-available=\"${variant.available ? 'true' : 'false'}\"${selected}${disabled}>${hiranyaEscapeHtml(\n        optionText\n      )}</option>`;\n    })\n    .join('');\n\n  return `\n    <div class=\"hiranya-pdp__pair-card\">\n      <a class=\"hiranya-pdp__pair-media\" href=\"${hiranyaEscapeHtml(productUrl)}\">\n        ${imageMarkup}\n      </a>\n      <div class=\"hiranya-pdp__pair-copy\">\n        <a class=\"hiranya-pdp__pair-name\" href=\"${hiranyaEscapeHtml(productUrl)}\">${hiranyaEscapeHtml(pairItem.title)}</a>\n        <p class=\"hiranya-pdp__pair-price\" data-hiranya-pair-price>${hiranyaEscapeHtml(currentPrice)}</p>\n        <form method=\"post\" action=\"${hiranyaEscapeHtml(window.theme?.routes?.cart_add_url || '/cart/add')}\" class=\"hiranya-pdp__pair-form\" data-hiranya-pair-form>\n          <div class=\"hiranya-pdp__pair-select-wrap\">\n            <select name=\"id\" class=\"hiranya-pdp__pair-select\" data-hiranya-pair-select>\n              ${optionsMarkup}\n            </select>\n          </div>\n          <button type=\"submit\" class=\"hiranya-pdp__pair-button\"${currentAvailable ? '' : ' disabled'}>${currentAvailable ? 'Add' : 'Sold Out'}</button>\n        </form>\n      </div>\n    </div>\n  `;\n}\n\nfunction hiranyaResolveProductFabric(product, fabricMap = {}) {\n  const handle = product?.handle || '';\n  const candidates = [\n    product?.fabric,\n    product?.fabric_list,\n    product?.metafields?.custom?.fabric_list,\n    handle ? fabricMap[handle] : '',\n  ];\n\n  return String(candidates.find((value) => String(value || '').trim()) || '').trim();\n}\n\nfunction hiranyaImageUrlWithWidth(imageUrl, width = 700) {\n  const rawUrl = String(imageUrl || '').trim();\n\n  if (!rawUrl) {\n    return '';\n  }\n\n  try {\n    const normalizedUrl = rawUrl.startsWith('//')\n      ? `${window.location.protocol}${rawUrl}`\n      : rawUrl;\n    const url = new URL(normalizedUrl, window.location.origin);\n    const isShopifyCdn =\n      url.hostname.includes('cdn.shopify.com') ||\n      url.pathname.includes('/cdn/shop/') ||\n      url.pathname.includes('/s/files/');\n\n    if (isShopifyCdn) {\n      url.searchParams.set('width', String(width));\n    }\n\n    return url.toString();\n  } catch (error) {\n    return rawUrl;\n  }\n}\n\nfunction hiranyaLoadDeferredImage(image) {\n  if (!(image instanceof HTMLImageElement) || image.dataset.hiranyaImageLoaded === 'true') {\n    return;\n  }\n\n  const src = image.dataset.hiranyaDeferredSrc || image.dataset.hiranyaHoverSrc;\n  const srcset = image.dataset.hiranyaDeferredSrcset || image.dataset.hiranyaHoverSrcset;\n  const sizes = image.dataset.hiranyaDeferredSizes || image.dataset.hiranyaHoverSizes;\n\n  if (sizes) {\n    image.setAttribute('sizes', sizes);\n  }\n\n  if (srcset) {\n    image.setAttribute('srcset', srcset);\n  }\n\n  if (src) {\n    image.setAttribute('src', src);\n  }\n\n  image.dataset.hiranyaImageLoaded = 'true';\n}\n\nfunction hiranyaHydrateDeferredImages(root = document) {\n  root.querySelectorAll('[data-hiranya-deferred-src]').forEach((image) => {\n    hiranyaLoadDeferredImage(image);\n  });\n}\n\nfunction hiranyaHydrateHoverImages(root = document) {\n  root.querySelectorAll('[data-hiranya-hover-src]').forEach((image) => {\n    hiranyaLoadDeferredImage(image);\n  });\n}\n\nfunction hiranyaBindHoverImageLoading(root = document) {\n  root.querySelectorAll('[data-hiranya-hover-image-root]').forEach((hoverRoot) => {\n    if (hoverRoot.dataset.hiranyaHoverBound === 'true') {\n      return;\n    }\n\n    const loadImages = () => {\n      hiranyaHydrateHoverImages(hoverRoot);\n    };\n\n    hoverRoot.addEventListener('pointerenter', loadImages, { once: true });\n    hoverRoot.addEventListener('focusin', loadImages, { once: true });\n    hoverRoot.addEventListener('touchstart', loadImages, { once: true, passive: true });\n    hoverRoot.dataset.hiranyaHoverBound = 'true';\n  });\n}\n\nfunction hiranyaLoadReelsVideo(video) {\n  if (!(video instanceof HTMLVideoElement) || video.dataset.hiranyaVideoLoaded === 'true') {\n    return;\n  }\n\n  const sourceUrl = video.dataset.hiranyaVideoSrc;\n\n  if (!sourceUrl) {\n    return;\n  }\n\n  const source = document.createElement('source');\n  source.src = sourceUrl;\n  source.type = 'video/mp4';\n  video.appendChild(source);\n  video.load();\n  video.dataset.hiranyaVideoLoaded = 'true';\n}\n\nfunction hiranyaBuildProductCardMarkup(product, fabricMap = {}) {\n  const productUrl = product.url || `/products/${product.handle}`;\n  const imageUrl =\n    (typeof product.featured_image === 'string' && product.featured_image) ||\n    product.featured_image?.src ||\n    product.image?.src ||\n    product.image ||\n    product.images?.[0] ||\n    '';\n  const sizedImageUrl = hiranyaImageUrlWithWidth(imageUrl, 700);\n  const imageMarkup = imageUrl\n    ? `\n      <div class=\"hiranya-collection-card__media\">\n        <img class=\"hiranya-collection-card__image\" src=\"${hiranyaEscapeHtml(sizedImageUrl)}\" alt=\"${hiranyaEscapeHtml(product.title)}\" loading=\"lazy\" decoding=\"async\" sizes=\"(min-width: 1024px) 25vw, 70vw\">\n      </div>\n    `\n    : '<div class=\"hiranya-collection-card__media\"></div>';\n  const fabric = hiranyaResolveProductFabric(product, fabricMap);\n  const fabricMarkup = fabric\n    ? `<p class=\"hiranya-collection-card__fabric\">${hiranyaEscapeHtml(fabric)}</p>`\n    : '';\n\n  return `\n    <a class=\"hiranya-collection-card hiranya-collection-card--small\" href=\"${hiranyaEscapeHtml(productUrl)}\">\n      ${imageMarkup}\n      <div class=\"hiranya-collection-card__caption\">\n        <h3 class=\"hiranya-collection-card__title hiranya-collection-card__title--small\">${hiranyaEscapeHtml(product.title)}</h3>\n        ${fabricMarkup}\n        <p class=\"hiranya-collection-card__price\">${hiranyaEscapeHtml(hiranyaFormatMoney((Number(product.price) || 0) / 100, '\u20B9'))}</p>\n      </div>\n    </a>\n  `;\n}\n\nfunction initHiranyaHome() {\n  const arrivalsRoot = document.querySelector('[data-hiranya-arrivals]');\n  const reelsVideos = Array.from(document.querySelectorAll('[data-hiranya-reels-video]'));\n\n  hiranyaBindHoverImageLoading(document);\n\n  if (reelsVideos.length) {\n    reelsVideos.forEach((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    });\n\n    if ('IntersectionObserver' in window) {\n      const reelsObserver = new IntersectionObserver(\n        (entries) => {\n          entries.forEach((entry) => {\n            const video = entry.target;\n\n            if (!(video instanceof HTMLVideoElement)) {\n              return;\n            }\n\n            if (entry.isIntersecting && entry.intersectionRatio >= 0.35) {\n              hiranyaLoadReelsVideo(video);\n              const playPromise = video.play();\n              if (playPromise && typeof playPromise.catch === 'function') {\n                playPromise.catch(() => {});\n              }\n            } else {\n              video.pause();\n            }\n          });\n        },\n        {\n          rootMargin: '200px 0px',\n          threshold: [0, 0.35, 0.75],\n        }\n      );\n\n      reelsVideos.forEach((video) => {\n        reelsObserver.observe(video);\n      });\n    } else {\n      reelsVideos.forEach((video) => {\n        hiranyaLoadReelsVideo(video);\n        const playPromise = video.play();\n        if (playPromise && typeof playPromise.catch === 'function') {\n          playPromise.catch(() => {});\n        }\n      });\n    }\n  }\n\n  if (arrivalsRoot) {\n    const tabs = Array.from(arrivalsRoot.querySelectorAll('[data-arrivals-tab]'));\n    const panels = Array.from(arrivalsRoot.querySelectorAll('[data-arrivals-panel]'));\n    const viewAllLink = arrivalsRoot.querySelector('[data-arrivals-view-all]');\n\n    if (!tabs.length || !panels.length) {\n      return;\n    }\n\n    const setActiveTab = (target, url) => {\n      tabs.forEach((tab) => {\n        const isActive = tab.dataset.arrivalsTab === target || tab.dataset.target === target;\n        tab.classList.toggle('is-active', isActive);\n        tab.setAttribute('aria-pressed', isActive ? 'true' : 'false');\n      });\n\n      panels.forEach((panel) => {\n        const isActivePanel = panel.dataset.arrivalsPanel === target;\n\n        if (isActivePanel) {\n          hiranyaHydrateDeferredImages(panel);\n          hiranyaBindHoverImageLoading(panel);\n        }\n\n        panel.hidden = !isActivePanel;\n      });\n\n      if (viewAllLink && url) {\n        viewAllLink.setAttribute('href', url);\n      }\n    };\n\n    tabs.forEach((tab) => {\n      tab.addEventListener('click', () => {\n        setActiveTab(tab.dataset.target, tab.dataset.url);\n      });\n    });\n\n    const initialTab = tabs.find((tab) => tab.classList.contains('is-active')) || tabs[0];\n    if (initialTab) {\n      setActiveTab(initialTab.dataset.target, initialTab.dataset.url);\n    }\n  }\n}\n\nfunction initHiranyaSeo() {\n  const homeToggle = document.querySelector('[data-hiranya-home-seo-toggle]');\n  const homeMore = document.querySelector('[data-hiranya-home-seo-more]');\n\n  if (homeToggle && homeMore) {\n    homeToggle.addEventListener('click', () => {\n      const isExpanded = !homeMore.hidden;\n      homeMore.hidden = isExpanded;\n      homeToggle.textContent = isExpanded ? 'Read More' : 'Read Less';\n      homeToggle.setAttribute('aria-expanded', isExpanded ? 'false' : 'true');\n    });\n  }\n\n  document.querySelectorAll('[data-hiranya-collection-seo-content]').forEach((content) => {\n    const seoRoot = content.querySelector('.productlist-desc');\n\n    if (seoRoot) {\n      seoRoot.querySelectorAll('style').forEach((styleNode) => {\n        styleNode.remove();\n      });\n\n      let isFaqSection = false;\n\n      Array.from(seoRoot.children).forEach((node) => {\n        const tagName = node.tagName?.toLowerCase();\n        const headingText = (node.textContent || '').replace(/\\s+/g, ' ').trim().toLowerCase();\n\n        if (tagName && /^h[2-5]$/.test(tagName)) {\n          isFaqSection = headingText.includes('faq');\n        }\n\n        if (!isFaqSection) {\n          return;\n        }\n\n        if (tagName && /^h[2-5]$/.test(tagName) && !headingText.includes('faq')) {\n          node.classList.add('hiranya-faq-question');\n          node.querySelectorAll('strong, b').forEach((strongNode) => {\n            strongNode.classList.add('hiranya-faq-plain');\n          });\n        }\n      });\n    }\n\n    const toggle = content.parentElement?.querySelector('[data-hiranya-collection-seo-toggle]');\n    if (!toggle) {\n      return;\n    }\n\n    const directChildren = Array.from(content.children);\n    const paragraphs = directChildren.filter((element) => element.tagName === 'P');\n\n    if (paragraphs.length < 3) {\n      return;\n    }\n\n    const secondParagraph = paragraphs[1];\n    const trailingNodes = [];\n    let nextNode = secondParagraph.nextSibling;\n\n    while (nextNode) {\n      const currentNode = nextNode;\n      nextNode = nextNode.nextSibling;\n\n      if (currentNode.nodeType === 1 || (currentNode.nodeType === 3 && currentNode.textContent.trim())) {\n        trailingNodes.push(currentNode);\n      }\n    }\n\n    if (!trailingNodes.length) {\n      return;\n    }\n\n    const hiddenContent = document.createElement('div');\n    hiddenContent.className = 'hiranya-collection-seo__more';\n    hiddenContent.hidden = true;\n\n    trailingNodes.forEach((node) => {\n      hiddenContent.appendChild(node);\n    });\n\n    content.appendChild(hiddenContent);\n    toggle.hidden = false;\n\n    toggle.addEventListener('click', () => {\n      const isExpanded = !hiddenContent.hidden;\n      hiddenContent.hidden = isExpanded;\n      toggle.textContent = isExpanded ? 'Read More' : 'Read Less';\n      toggle.setAttribute('aria-expanded', isExpanded ? 'false' : 'true');\n    });\n  });\n}\n\nfunction initHiranyaHeader() {\n  const header = document.querySelector('[data-hiranya-header]');\n  const backdrop = document.querySelector('[data-hiranya-header-backdrop]');\n  const miniCart = document.querySelector('[data-hiranya-mini-cart]');\n  const mobileNav = document.querySelector('[data-hiranya-mobile-nav]');\n  const mobileNavToggles = Array.from(document.querySelectorAll('[data-hiranya-mobile-nav-toggle]'));\n  const mobileSearchToggle = document.querySelector('[data-hiranya-mobile-footer-search]');\n  const mobileCartToggle = document.querySelector('[data-hiranya-mobile-footer-cart]');\n\n  if (!header || !backdrop || !miniCart) {\n    return;\n  }\n\n  const searchPanel = header.querySelector('[data-hiranya-search-panel]');\n  const searchToggle = header.querySelector('[data-hiranya-search-toggle]');\n  const searchClose = header.querySelector('[data-hiranya-search-close]');\n  const searchForm = header.querySelector('[data-hiranya-search-form]');\n  const searchInput = header.querySelector('[data-hiranya-search-input]');\n  const searchResults = header.querySelector('[data-hiranya-search-results]');\n  const cartToggle = header.querySelector('[data-hiranya-cart-toggle]');\n  const cartClose = miniCart.querySelector('[data-hiranya-cart-close]');\n  const cartContent = miniCart.querySelector('[data-hiranya-mini-cart-content]');\n  const cartFooter = miniCart.querySelector('[data-hiranya-mini-cart-footer]');\n  const cartCountNodes = Array.from(document.querySelectorAll('[data-hiranya-cart-count]'));\n\n  let activePanel = null;\n  let searchTimer = null;\n  let searchRequestId = 0;\n  const syncMobileNavToggles = (isOpen) => {\n    mobileNavToggles.forEach((toggle) => {\n      toggle.setAttribute('aria-expanded', isOpen ? 'true' : 'false');\n      toggle.classList.toggle('is-active', isOpen);\n    });\n  };\n\n  const closePanels = () => {\n    activePanel = null;\n    header.classList.remove('is-search-open', 'is-cart-open');\n    searchPanel.classList.remove('is-querying');\n    miniCart.classList.remove('is-open');\n    mobileNav?.classList.remove('is-open');\n    searchPanel.setAttribute('aria-hidden', 'true');\n    miniCart.setAttribute('aria-hidden', 'true');\n    mobileNav?.setAttribute('aria-hidden', 'true');\n    searchToggle?.setAttribute('aria-expanded', 'false');\n    cartToggle?.setAttribute('aria-expanded', 'false');\n    syncMobileNavToggles(false);\n    document.body.classList.remove('hiranya-ui-open', 'hiranya-mobile-nav-open');\n  };\n\n  const openSearch = () => {\n    const shouldClose = activePanel === 'search';\n    closePanels();\n\n    if (shouldClose) {\n      return;\n    }\n\n    activePanel = 'search';\n    header.classList.add('is-search-open');\n    header.classList.remove('is-cart-open');\n    miniCart.classList.remove('is-open');\n    searchPanel.setAttribute('aria-hidden', 'false');\n    miniCart.setAttribute('aria-hidden', 'true');\n    searchToggle?.setAttribute('aria-expanded', 'true');\n    cartToggle?.setAttribute('aria-expanded', 'false');\n    document.body.classList.add('hiranya-ui-open');\n    window.setTimeout(() => searchInput?.focus(), 30);\n  };\n\n  const showCart = async () => {\n    activePanel = 'cart';\n    header.classList.add('is-cart-open');\n    header.classList.remove('is-search-open');\n    searchPanel.classList.remove('is-querying');\n    miniCart.classList.add('is-open');\n    searchPanel.setAttribute('aria-hidden', 'true');\n    miniCart.setAttribute('aria-hidden', 'false');\n    searchToggle?.setAttribute('aria-expanded', 'false');\n    cartToggle?.setAttribute('aria-expanded', 'true');\n    document.body.classList.add('hiranya-ui-open');\n    await loadCart();\n  };\n\n  const openCart = async () => {\n    const shouldClose = activePanel === 'cart';\n    closePanels();\n\n    if (shouldClose) {\n      return;\n    }\n\n    await showCart();\n  };\n\n  const openMobileNav = () => {\n    if (!mobileNav || !mobileNavToggles.length) {\n      return;\n    }\n\n    const shouldClose = activePanel === 'mobile-nav';\n    closePanels();\n\n    if (shouldClose) {\n      return;\n    }\n\n    activePanel = 'mobile-nav';\n    mobileNav.classList.add('is-open');\n    mobileNav.setAttribute('aria-hidden', 'false');\n    syncMobileNavToggles(true);\n    document.body.classList.add('hiranya-mobile-nav-open');\n  };\n\n  const formatMoney = (amount, currency) => {\n    const parsedAmount = Number(amount) || 0;\n    const hasDecimals = Math.abs(parsedAmount - Math.round(parsedAmount)) > 0.001;\n    const currencyLabel = !currency || currency === 'INR' ? '\u20B9' : currency;\n\n    return `${currencyLabel} ${parsedAmount.toLocaleString('en-IN', {\n      minimumFractionDigits: hasDecimals ? 2 : 0,\n      maximumFractionDigits: hasDecimals ? 2 : 0,\n    })}`;\n  };\n\n  const escapeHtml = (value) => {\n    return String(value ?? '')\n      .replace(/&/g, '&amp;')\n      .replace(/</g, '&lt;')\n      .replace(/>/g, '&gt;')\n      .replace(/\"/g, '&quot;')\n      .replace(/'/g, '&#39;');\n  };\n\n  const updateCartCount = (count) => {\n    cartCountNodes.forEach((node) => {\n      node.textContent = String(count);\n      node.classList.toggle('is-hidden', count < 1);\n    });\n  };\n\n  const renderCart = (cart) => {\n    updateCartCount(cart.item_count || 0);\n\n    if (!cart.items || cart.items.length === 0) {\n      cartContent.innerHTML = `\n        <div>\n          <p class=\"hiranya-mini-cart__empty\">Your cart is empty.</p>\n          <a class=\"hiranya-mini-cart__empty-cta\" href=\"/collections/all-products\">Continue Shopping</a>\n        </div>\n      `;\n      cartFooter.innerHTML = '';\n      return;\n    }\n\n    cartContent.innerHTML = `\n      <div class=\"hiranya-mini-cart__items\">\n        ${cart.items\n          .map((item, index) => {\n            const variant = item.variant_title && item.variant_title !== 'Default Title'\n              ? `<span class=\"hiranya-mini-cart__variant\">${escapeHtml(item.variant_title)}</span>`\n              : '';\n            const cartImage = hiranyaImageUrlWithWidth(item.image, 240);\n            const media = item.image\n              ? `<img src=\"${escapeHtml(cartImage)}\" alt=\"${escapeHtml(item.product_title)}\" loading=\"lazy\" decoding=\"async\">`\n              : '';\n\n            return `\n              <article class=\"hiranya-mini-cart__item\">\n                <a class=\"hiranya-mini-cart__item-media\" href=\"${item.url}\">\n                  ${media}\n                </a>\n                <div class=\"hiranya-mini-cart__item-copy\">\n                  <a class=\"hiranya-mini-cart__item-title\" href=\"${item.url}\">${escapeHtml(item.product_title)}</a>\n                  ${variant}\n                  <div class=\"hiranya-mini-cart__meta\">Qty ${item.quantity} \u00B7 ${formatMoney(item.final_line_price / 100, cart.currency)}</div>\n                  <button class=\"hiranya-mini-cart__remove\" type=\"button\" data-hiranya-cart-remove data-line=\"${index + 1}\">Remove</button>\n                </div>\n              </article>\n            `;\n          })\n          .join('')}\n      </div>\n    `;\n\n    cartFooter.innerHTML = `\n      <div class=\"hiranya-mini-cart__summary\">\n        <span class=\"hiranya-mini-cart__summary-label\">Subtotal</span>\n        <span class=\"hiranya-mini-cart__summary-value\">${formatMoney(cart.total_price / 100, cart.currency)}</span>\n      </div>\n      <div class=\"hiranya-mini-cart__buttons\">\n        <a class=\"hiranya-mini-cart__button hiranya-mini-cart__button--primary\" href=\"/checkout\">Checkout</a>\n        <a class=\"hiranya-mini-cart__button hiranya-mini-cart__button--secondary\" href=\"${window.theme?.routes?.cart_url || '/cart'}\">View Cart</a>\n      </div>\n    `;\n  };\n\n  const loadCart = async () => {\n    cartContent.innerHTML = '<p class=\"hiranya-mini-cart__status\">Loading cart\u2026</p>';\n    cartFooter.innerHTML = '';\n\n    try {\n      const response = await fetch(`${window.theme?.routes?.cart_url || '/cart'}.js`, {\n        headers: { Accept: 'application/json' },\n      });\n\n      if (!response.ok) {\n        throw new Error('Unable to load cart');\n      }\n\n      const cart = await response.json();\n      renderCart(cart);\n    } catch (error) {\n      cartContent.innerHTML = '<p class=\"hiranya-mini-cart__status\">Unable to load the cart right now.</p>';\n      cartFooter.innerHTML = '';\n    }\n  };\n\n  const updateCartLine = async (line, quantity) => {\n    cartContent.innerHTML = '<p class=\"hiranya-mini-cart__status\">Updating cart\u2026</p>';\n    cartFooter.innerHTML = '';\n\n    try {\n      const response = await fetch(`${window.theme?.routes?.cart_change_url || '/cart/change'}.js`, {\n        method: 'POST',\n        headers: {\n          'Content-Type': 'application/json',\n          Accept: 'application/json',\n        },\n        body: JSON.stringify({ line, quantity }),\n      });\n\n      if (!response.ok) {\n        throw new Error('Unable to update cart');\n      }\n\n      const cart = await response.json();\n      renderCart(cart);\n    } catch (error) {\n      cartContent.innerHTML = '<p class=\"hiranya-mini-cart__status\">Unable to update the cart right now.</p>';\n      cartFooter.innerHTML = '';\n    }\n  };\n\n  const renderSearchResults = (resources, query) => {\n    const groups = [];\n\n    const buildCard = (item, typeLabel, price) => {\n      const imageUrl = item.featured_image?.url || item.image || '';\n      const searchImageUrl = hiranyaImageUrlWithWidth(imageUrl, 240);\n      const imageMarkup = imageUrl\n        ? `\n          <span class=\"hiranya-search-result-card__media\">\n            <img src=\"${escapeHtml(searchImageUrl)}\" alt=\"${escapeHtml(item.title)}\" loading=\"lazy\" decoding=\"async\">\n          </span>\n        `\n        : '<span class=\"hiranya-search-result-card__media\"></span>';\n\n      const priceMarkup = price ? `<div class=\"hiranya-search-result-card__price\">${price}</div>` : '';\n\n      return `\n        <a class=\"hiranya-search-result-card\" href=\"${item.url}\">\n          ${imageMarkup}\n          <span>\n            <div class=\"hiranya-search-result-card__type\">${typeLabel}</div>\n            <div class=\"hiranya-search-result-card__name\">${escapeHtml(item.title)}</div>\n            ${priceMarkup}\n          </span>\n        </a>\n      `;\n    };\n\n    if (resources.products?.length) {\n      groups.push(`\n        <section class=\"hiranya-search-results__group\">\n          <h3 class=\"hiranya-search-results__title\">Products</h3>\n          <div class=\"hiranya-search-results__items\">\n            ${resources.products\n              .map((product) => buildCard(product, 'Product', formatMoney(product.price, '\u20B9')))\n              .join('')}\n          </div>\n        </section>\n      `);\n    }\n\n    if (resources.collections?.length) {\n      groups.push(`\n        <section class=\"hiranya-search-results__group\">\n          <h3 class=\"hiranya-search-results__title\">Collections</h3>\n          <div class=\"hiranya-search-results__items\">\n            ${resources.collections.map((collection) => buildCard(collection, 'Collection', '')).join('')}\n          </div>\n        </section>\n      `);\n    }\n\n    if (resources.pages?.length) {\n      groups.push(`\n        <section class=\"hiranya-search-results__group\">\n          <h3 class=\"hiranya-search-results__title\">Pages</h3>\n          <div class=\"hiranya-search-results__items\">\n            ${resources.pages.map((page) => buildCard(page, 'Page', '')).join('')}\n          </div>\n        </section>\n      `);\n    }\n\n    if (!groups.length) {\n      searchResults.innerHTML = `<p class=\"hiranya-search-results__empty\">No results found for \"${escapeHtml(query)}\".</p>`;\n      return;\n    }\n\n    searchResults.innerHTML = `\n      ${groups.join('')}\n      <div class=\"hiranya-search-results__footer\">\n        <a class=\"hiranya-search-results__view-all\" href=\"${window.theme?.routes?.search_url || '/search'}?q=${encodeURIComponent(query)}\">View all results</a>\n      </div>\n    `;\n  };\n\n  const runPredictiveSearch = async (query) => {\n    const requestId = ++searchRequestId;\n    searchPanel.classList.add('is-querying');\n    searchResults.innerHTML = '<p class=\"hiranya-search-results__status\">Searching\u2026</p>';\n\n    try {\n      const params = new URLSearchParams({\n        q: query,\n        'resources[type]': 'product,collection,page',\n        'resources[limit]': '4',\n        'resources[options][unavailable_products]': 'hide',\n        'resources[options][fields]': 'title,product_type,variants.title,vendor',\n      });\n      const response = await fetch(`${window.theme?.routes?.predictive_search_url || '/search/suggest'}.json?${params.toString()}`, {\n        headers: { Accept: 'application/json' },\n      });\n\n      if (!response.ok) {\n        throw new Error('Unable to load search suggestions');\n      }\n\n      const data = await response.json();\n\n      if (requestId !== searchRequestId) {\n        return;\n      }\n\n      renderSearchResults(data.resources?.results || {}, query);\n    } catch (error) {\n      if (requestId !== searchRequestId) {\n        return;\n      }\n\n      searchResults.innerHTML = '<p class=\"hiranya-search-results__status\">Unable to load suggestions right now.</p>';\n    }\n  };\n\n  window.HiranyaUI = Object.assign(window.HiranyaUI || {}, {\n    openCart: showCart,\n    openSearch,\n    openMobileNav,\n    closePanels,\n    refreshCart: loadCart,\n  });\n\n  searchToggle?.addEventListener('click', (event) => {\n    event.preventDefault();\n    openSearch();\n  });\n\n  searchClose?.addEventListener('click', () => {\n    closePanels();\n  });\n\n  cartToggle?.addEventListener('click', async (event) => {\n    event.preventDefault();\n    await openCart();\n  });\n\n  mobileNavToggles.forEach((toggle) => {\n    toggle.addEventListener('click', (event) => {\n      event.preventDefault();\n      openMobileNav();\n    });\n  });\n\n  mobileSearchToggle?.addEventListener('click', (event) => {\n    event.preventDefault();\n    openSearch();\n  });\n\n  mobileCartToggle?.addEventListener('click', async (event) => {\n    event.preventDefault();\n    await openCart();\n  });\n\n  cartClose?.addEventListener('click', () => {\n    closePanels();\n  });\n\n  backdrop.addEventListener('click', () => {\n    closePanels();\n  });\n\n  document.addEventListener('keydown', (event) => {\n    if (event.key === 'Escape') {\n      closePanels();\n    }\n  });\n\n  mobileNav?.addEventListener('click', (event) => {\n    if (event.target.closest('a')) {\n      closePanels();\n    }\n  });\n\n  searchForm?.addEventListener('submit', () => {\n    closePanels();\n  });\n\n  searchInput?.addEventListener('input', () => {\n    const query = searchInput.value.trim();\n    window.clearTimeout(searchTimer);\n\n    if (query.length < 2) {\n      searchRequestId += 1;\n      searchPanel.classList.remove('is-querying');\n      searchResults.innerHTML = '<p class=\"hiranya-search-results__empty\">Start typing to see products, collections, and pages.</p>';\n      return;\n    }\n\n    searchTimer = window.setTimeout(() => {\n      runPredictiveSearch(query);\n    }, 180);\n  });\n\n  miniCart.addEventListener('click', (event) => {\n    const removeButton = event.target.closest('[data-hiranya-cart-remove]');\n\n    if (!removeButton) {\n      return;\n    }\n\n    event.preventDefault();\n    updateCartLine(Number(removeButton.dataset.line), 0);\n  });\n}\n\nfunction initHiranyaProductForms() {\n  document.querySelectorAll('[data-hiranya-product-root]').forEach((root) => {\n    const form = root.querySelector('[data-hiranya-product-form]');\n    const variantInput = root.querySelector('[data-hiranya-variant-id]');\n    const priceNodes = Array.from(root.querySelectorAll('[data-hiranya-price]'));\n    const compareNodes = Array.from(root.querySelectorAll('[data-hiranya-compare-price]'));\n    const savingsNodes = Array.from(root.querySelectorAll('[data-hiranya-savings]'));\n    const skuNodes = Array.from(root.querySelectorAll('[data-hiranya-sku]'));\n    const skuRow = root.querySelector('[data-hiranya-sku-row]');\n    const addToCartLabel = root.querySelector('[data-hiranya-submit-label]');\n    const addToCartButton = root.querySelector('[data-hiranya-submit]');\n    const buyNowButton = root.querySelector('[data-hiranya-buy-now]');\n    const mobileBar = root.querySelector('[data-hiranya-mobile-cartbar]');\n    const mobileBarButton = root.querySelector('[data-hiranya-mobile-submit]');\n    const lineSkuInput = root.querySelector('[data-hiranya-line-sku]');\n    const variantsScript = root.querySelector('[data-hiranya-variants]');\n\n    if (!form || !variantInput || !variantsScript) {\n      return;\n    }\n\n    initHiranyaProductMedia(root);\n    initHiranyaSizeGuide(root);\n    initHiranyaRecentlyViewed(root);\n    initHiranyaPairWith(root);\n\n    const variants = JSON.parse(variantsScript.textContent);\n    const optionWrappers = Array.from(root.querySelectorAll('[data-hiranya-option-group]'));\n    const sizeDrawer = root.querySelector('[data-hiranya-size-drawer]');\n    const drawerOptionButtons = Array.from(root.querySelectorAll('[data-hiranya-drawer-option-button]'));\n    const drawerSubmitButton = root.querySelector('[data-hiranya-size-drawer-submit]');\n    const sizeDrawerCloseButtons = Array.from(root.querySelectorAll('[data-hiranya-size-drawer-close]'));\n    const drawerPriceNode = root.querySelector('[data-hiranya-size-drawer-price]');\n    const defaultDrawerPrice = drawerPriceNode?.textContent || '';\n    const isMobilePdp = () => window.matchMedia('(max-width: 1023px)').matches;\n    const requiresExplicitMobileSelection = optionWrappers.length > 0 && variants.length > 1;\n    const state = optionWrappers.map((wrapper) => {\n      const activeButton =\n        wrapper.querySelector('[data-option-button].is-active') ||\n        wrapper.querySelector('[data-option-button]');\n      return activeButton ? activeButton.dataset.optionValue : '';\n    });\n    let selectedVariant = null;\n\n    if (requiresExplicitMobileSelection && isMobilePdp()) {\n      state.fill('');\n    }\n\n    const syncOptionButtons = () => {\n      optionWrappers.forEach((group, index) => {\n        const selectedValue = state[index] || '';\n        group.querySelectorAll('[data-option-button]').forEach((button) => {\n          const isActive = Boolean(selectedValue) && button.dataset.optionValue === selectedValue;\n          button.classList.toggle('is-active', isActive);\n          button.setAttribute('aria-pressed', isActive ? 'true' : 'false');\n        });\n      });\n    };\n\n    const setActiveButton = (position, value) => {\n      state[position - 1] = value;\n      syncOptionButtons();\n    };\n\n    const isDrawerOptionAvailable = (position, value) => {\n      return variants.some((variant) => {\n        if (!variant.available) {\n          return false;\n        }\n\n        return variant.options.every((optionValue, index) => {\n          if (index === position - 1) {\n            return optionValue === value;\n          }\n\n          return !state[index] || state[index] === optionValue;\n        });\n      });\n    };\n\n    const updateDrawerPrice = (variant) => {\n      if (!drawerPriceNode) {\n        return;\n      }\n\n      drawerPriceNode.textContent = variant?.price || defaultDrawerPrice;\n    };\n\n    const syncDrawerButtons = () => {\n      drawerOptionButtons.forEach((button) => {\n        const position = Number(button.dataset.optionPosition);\n        const value = button.dataset.optionValue;\n        const selectedValue = state[position - 1] || '';\n        const isActive = Boolean(selectedValue) && value === selectedValue;\n        const isAvailable = isDrawerOptionAvailable(position, value);\n\n        button.classList.toggle('is-active', isActive);\n        button.setAttribute('aria-pressed', isActive ? 'true' : 'false');\n        button.toggleAttribute('disabled', !isAvailable);\n        button.setAttribute('aria-disabled', isAvailable ? 'false' : 'true');\n      });\n    };\n\n    const syncDrawerSubmit = (variant) => {\n      if (!drawerSubmitButton) {\n        return;\n      }\n\n      const canSubmit = Boolean(variant?.available);\n      drawerSubmitButton.disabled = !canSubmit;\n      drawerSubmitButton.setAttribute('aria-disabled', canSubmit ? 'false' : 'true');\n      drawerSubmitButton.textContent = 'Add to Cart';\n    };\n\n    const setSubmittingState = (isSubmitting, actionLabel) => {\n      addToCartButton?.toggleAttribute('disabled', isSubmitting);\n      buyNowButton?.toggleAttribute('disabled', isSubmitting);\n      mobileBarButton?.toggleAttribute('disabled', isSubmitting);\n      if (drawerSubmitButton && isSubmitting) {\n        drawerSubmitButton.disabled = true;\n        drawerSubmitButton.setAttribute('aria-disabled', 'true');\n        drawerSubmitButton.textContent = actionLabel;\n      }\n\n      if (addToCartLabel && isSubmitting) {\n        addToCartLabel.textContent = actionLabel;\n      }\n      if (mobileBarButton && isSubmitting) {\n        mobileBarButton.textContent = actionLabel;\n      }\n    };\n\n    const openSizeDrawer = () => {\n      if (!sizeDrawer) {\n        return false;\n      }\n\n      sizeDrawer.hidden = false;\n      sizeDrawer.setAttribute('aria-hidden', 'false');\n      document.body.classList.add('hiranya-size-drawer-open');\n      window.requestAnimationFrame(() => {\n        sizeDrawer.classList.add('is-open');\n      });\n      return true;\n    };\n\n    const closeSizeDrawer = () => {\n      if (!sizeDrawer) {\n        return;\n      }\n\n      sizeDrawer.classList.remove('is-open');\n      sizeDrawer.setAttribute('aria-hidden', 'true');\n      document.body.classList.remove('hiranya-size-drawer-open');\n      window.setTimeout(() => {\n        if (sizeDrawer.getAttribute('aria-hidden') === 'true') {\n          sizeDrawer.hidden = true;\n        }\n      }, 220);\n    };\n\n    const updateVariant = () => {\n      const hasIncompleteSelection = state.some((value) => !value);\n\n      if (hasIncompleteSelection) {\n        selectedVariant = null;\n        syncOptionButtons();\n        syncDrawerButtons();\n        syncDrawerSubmit(null);\n        updateDrawerPrice(null);\n        form.classList.remove('is-unavailable');\n        root.classList.remove('is-unavailable', 'is-variant-selected');\n        root.classList.add('is-size-unselected');\n        variantInput.value = '';\n        if (lineSkuInput) {\n          lineSkuInput.value = '';\n        }\n        if (skuRow) {\n          skuRow.hidden = true;\n        }\n        skuNodes.forEach((node) => {\n          node.textContent = '';\n        });\n        addToCartButton?.toggleAttribute('disabled', false);\n        buyNowButton?.toggleAttribute('disabled', false);\n        mobileBarButton?.toggleAttribute('disabled', false);\n        if (addToCartLabel && isMobilePdp()) {\n          addToCartLabel.textContent = 'Add to Cart';\n        }\n        if (mobileBarButton && isMobilePdp()) {\n          mobileBarButton.textContent = 'Add to Cart';\n        }\n        return null;\n      }\n\n      const variant = variants.find((candidate) => {\n        return candidate.options.every((value, index) => value === state[index]);\n      });\n\n      if (!variant) {\n        selectedVariant = null;\n        syncDrawerButtons();\n        syncDrawerSubmit(null);\n        updateDrawerPrice(null);\n        form.classList.add('is-unavailable');\n        root.classList.add('is-unavailable');\n        root.classList.remove('is-variant-selected', 'is-size-unselected');\n        if (skuRow) {\n          skuRow.hidden = true;\n        }\n        skuNodes.forEach((node) => {\n          node.textContent = '';\n        });\n        if (lineSkuInput) {\n          lineSkuInput.value = '';\n        }\n        addToCartButton?.toggleAttribute('disabled', true);\n        buyNowButton?.toggleAttribute('disabled', true);\n        mobileBarButton?.toggleAttribute('disabled', true);\n        if (addToCartLabel) {\n          addToCartLabel.textContent = 'Unavailable';\n        }\n        if (mobileBarButton) {\n          mobileBarButton.textContent = 'Unavailable';\n        }\n        return null;\n      }\n\n      selectedVariant = variant;\n      syncOptionButtons();\n      syncDrawerButtons();\n      syncDrawerSubmit(variant);\n      updateDrawerPrice(variant);\n      form.classList.remove('is-unavailable');\n      root.classList.remove('is-unavailable');\n      root.classList.remove('is-size-unselected');\n      root.classList.add('is-variant-selected');\n      variantInput.value = variant.id;\n      if (lineSkuInput) {\n        lineSkuInput.value = variant.sku || '';\n      }\n      addToCartButton?.toggleAttribute('disabled', !variant.available);\n      buyNowButton?.toggleAttribute('disabled', !variant.available);\n      mobileBarButton?.toggleAttribute('disabled', !variant.available);\n\n      priceNodes.forEach((node) => {\n        node.textContent = variant.price;\n      });\n\n      compareNodes.forEach((node) => {\n        node.textContent = variant.compare_at_price || '';\n        node.classList.toggle('hidden', !variant.compare_at_price);\n      });\n\n      savingsNodes.forEach((node) => {\n        node.textContent = variant.savings || '';\n        node.classList.toggle('hidden', !variant.savings);\n      });\n\n      const hasSku = Boolean(String(variant.sku || '').trim());\n      if (skuRow) {\n        skuRow.hidden = !hasSku;\n      }\n      skuNodes.forEach((node) => {\n        node.textContent = variant.sku || '';\n      });\n\n      const buttonText = variant.available ? 'Add to Cart' : 'Sold Out';\n      if (addToCartLabel) {\n        addToCartLabel.textContent = buttonText;\n      }\n      if (mobileBarButton) {\n        mobileBarButton.textContent = buttonText + ' - ' + variant.price;\n      }\n      return variant;\n    };\n\n    const submitAddToCart = async (formData, action) => {\n      const pendingText = action === 'checkout' ? 'Processing\u2026' : 'Adding\u2026';\n      setSubmittingState(true, pendingText);\n\n      try {\n        const response = await fetch(`${window.theme?.routes?.cart_add_url || '/cart/add'}.js`, {\n          method: 'POST',\n          headers: {\n            Accept: 'application/json',\n            'X-Requested-With': 'XMLHttpRequest',\n          },\n          body: formData,\n        });\n\n        if (!response.ok) {\n          throw new Error('Unable to add this product right now.');\n        }\n\n        if (action === 'checkout') {\n          window.location.href = '/checkout';\n          return;\n        }\n\n        if (window.HiranyaUI?.openCart) {\n          await window.HiranyaUI.openCart();\n        }\n      } catch (error) {\n        window.alert(error.message || 'Unable to add this product right now.');\n      } finally {\n        setSubmittingState(false, 'Add to Cart');\n        updateVariant();\n      }\n    };\n\n    root.querySelectorAll('[data-option-button]').forEach((button) => {\n      button.addEventListener('click', () => {\n        const position = Number(button.dataset.optionPosition);\n        setActiveButton(position, button.dataset.optionValue);\n        updateVariant();\n      });\n    });\n\n    drawerOptionButtons.forEach((button) => {\n      button.addEventListener('click', () => {\n        if (button.disabled) {\n          return;\n        }\n\n        const position = Number(button.dataset.optionPosition);\n        setActiveButton(position, button.dataset.optionValue);\n        updateVariant();\n      });\n    });\n\n    drawerSubmitButton?.addEventListener('click', () => {\n      if (!selectedVariant || !selectedVariant.available) {\n        openSizeDrawer();\n        return;\n      }\n\n      closeSizeDrawer();\n      if (addToCartButton) {\n        form.requestSubmit(addToCartButton);\n      }\n    });\n\n    sizeDrawerCloseButtons.forEach((button) => {\n      button.addEventListener('click', (event) => {\n        event.preventDefault();\n        closeSizeDrawer();\n      });\n    });\n\n    document.addEventListener('keydown', (event) => {\n      if (!sizeDrawer || sizeDrawer.hidden || event.key !== 'Escape') {\n        return;\n      }\n\n      closeSizeDrawer();\n    });\n\n    if (mobileBar && mobileBarButton) {\n      const observer = new IntersectionObserver(\n        (entries) => {\n          entries.forEach((entry) => {\n            const shouldShow = !entry.isIntersecting;\n            mobileBar.classList.toggle('is-visible', shouldShow);\n            mobileBar.setAttribute('aria-hidden', shouldShow ? 'false' : 'true');\n          });\n        },\n        { rootMargin: '-120px 0px 0px 0px' }\n      );\n\n      const buttonBlock = root.querySelector('[data-hiranya-buttons]');\n      if (buttonBlock) {\n        observer.observe(buttonBlock);\n      }\n\n      mobileBarButton.addEventListener('click', () => {\n        if (requiresExplicitMobileSelection && isMobilePdp() && !selectedVariant) {\n          openSizeDrawer();\n          return;\n        }\n\n        if (addToCartButton) {\n          form.requestSubmit(addToCartButton);\n        }\n      });\n    }\n\n    form.addEventListener('submit', async (event) => {\n      const action = event.submitter?.dataset.hiranyaAction || 'add';\n\n      if (requiresExplicitMobileSelection && isMobilePdp() && !selectedVariant) {\n        event.preventDefault();\n        openSizeDrawer();\n        return;\n      }\n\n      if (root.classList.contains('is-unavailable')) {\n        event.preventDefault();\n        return;\n      }\n\n      event.preventDefault();\n      await submitAddToCart(new FormData(form), action);\n    });\n\n    updateVariant();\n  });\n}\n\nfunction initHiranyaPairWith(root) {\n  const pairRoot = root.querySelector('[data-hiranya-pair-root]');\n  const pairGrid = root.querySelector('[data-hiranya-pair-grid]');\n\n  if (!pairRoot || !pairGrid) {\n    return;\n  }\n\n  const bindPairForm = (pairForm) => {\n    if (!pairForm || pairForm.dataset.hiranyaBound === 'true') {\n      return;\n    }\n\n    pairForm.dataset.hiranyaBound = 'true';\n\n    const select = pairForm.querySelector('[data-hiranya-pair-select]');\n    const priceNode = pairForm.closest('.hiranya-pdp__pair-copy')?.querySelector('[data-hiranya-pair-price]');\n    const submitButton = pairForm.querySelector('button[type=\"submit\"]');\n    const syncSelectedVariant = () => {\n      const selectedOption = select?.options?.[select.selectedIndex];\n      const isAvailable = selectedOption ? selectedOption.dataset.available !== 'false' : true;\n\n      if (priceNode && selectedOption?.dataset.price) {\n        priceNode.textContent = selectedOption.dataset.price;\n      }\n\n      if (submitButton) {\n        submitButton.disabled = !isAvailable;\n        submitButton.textContent = isAvailable ? 'Add' : 'Sold Out';\n      }\n    };\n\n    select?.addEventListener('change', syncSelectedVariant);\n    syncSelectedVariant();\n\n    pairForm.addEventListener('submit', async (event) => {\n      event.preventDefault();\n\n      if (submitButton?.disabled) {\n        return;\n      }\n\n      const originalLabel = submitButton?.textContent || 'Add';\n\n      try {\n        if (submitButton) {\n          submitButton.disabled = true;\n          submitButton.textContent = 'Adding\u2026';\n        }\n\n        const response = await fetch(`${window.theme?.routes?.cart_add_url || '/cart/add'}.js`, {\n          method: 'POST',\n          headers: {\n            Accept: 'application/json',\n            'X-Requested-With': 'XMLHttpRequest',\n          },\n          body: new FormData(pairForm),\n        });\n\n        if (!response.ok) {\n          throw new Error('Unable to add this item right now.');\n        }\n\n        if (window.HiranyaUI?.openCart) {\n          await window.HiranyaUI.openCart();\n        }\n      } catch (error) {\n        window.alert(error.message || 'Unable to add this item right now.');\n      } finally {\n        if (submitButton) {\n          submitButton.textContent = originalLabel;\n        }\n        syncSelectedVariant();\n      }\n    });\n  };\n\n  Array.from(pairGrid.querySelectorAll('[data-hiranya-pair-form]')).forEach(bindPairForm);\n\n  const pairSkusScript = root.querySelector('[data-hiranya-pair-skus]');\n  if (!pairSkusScript) {\n    if (!pairGrid.children.length) {\n      pairRoot.hidden = true;\n    }\n    return;\n  }\n\n  let pairSkuValues = null;\n  try {\n    pairSkuValues = JSON.parse(pairSkusScript.textContent || 'null');\n  } catch (error) {\n    pairSkuValues = pairSkusScript.textContent || '';\n  }\n\n  const normalizedSkus = (Array.isArray(pairSkuValues) ? pairSkuValues : [pairSkuValues])\n    .flatMap((value) => String(value || '').split(/[\\n,]+/))\n    .map((value) => hiranyaNormalizeSkuKey(value))\n    .filter(Boolean);\n  const uniqueSkus = Array.from(new Set(normalizedSkus));\n\n  if (!uniqueSkus.length) {\n    if (!pairGrid.children.length) {\n      pairRoot.hidden = true;\n    }\n    return;\n  }\n\n  hiranyaLoadSkuMap(root.dataset.hiranyaSkuMapUrl)\n    .then((skuMap) => {\n      const matchedPairs = uniqueSkus\n        .map((sku) => skuMap?.[sku])\n        .filter((item) => item && Array.isArray(item.variants) && item.variants.length);\n\n      if (!matchedPairs.length) {\n        pairGrid.innerHTML = '';\n        pairRoot.hidden = true;\n        return;\n      }\n\n      pairGrid.innerHTML = matchedPairs.map((item) => hiranyaBuildPairCardMarkup(item)).join('');\n      Array.from(pairGrid.querySelectorAll('[data-hiranya-pair-form]')).forEach(bindPairForm);\n      pairRoot.hidden = false;\n    })\n    .catch(() => {\n      if (!pairGrid.children.length) {\n        pairRoot.hidden = true;\n      }\n    });\n}\n\nfunction initHiranyaProductMedia(root) {\n  const triggers = Array.from(root.querySelectorAll('[data-hiranya-media-trigger]'));\n  const lightbox = root.querySelector('[data-hiranya-lightbox]');\n\n  if (!triggers.length || !lightbox) {\n    return;\n  }\n\n  const image = lightbox.querySelector('[data-hiranya-lightbox-image]');\n  const stage = lightbox.querySelector('[data-hiranya-lightbox-stage]');\n  const count = lightbox.querySelector('[data-hiranya-lightbox-count]');\n  const prevButton = lightbox.querySelector('[data-hiranya-lightbox-prev]');\n  const nextButton = lightbox.querySelector('[data-hiranya-lightbox-next]');\n  const closeButtons = Array.from(lightbox.querySelectorAll('[data-hiranya-lightbox-close]'));\n  const items = triggers.map((trigger, index) => ({\n    index,\n    src: trigger.dataset.fullSrc || '',\n    alt: trigger.dataset.alt || '',\n  }));\n\n  let currentIndex = 0;\n  let isZoomed = false;\n  let isPanning = false;\n  let didPan = false;\n  let suppressClick = false;\n  let panX = 0;\n  let panY = 0;\n  let panStartX = 0;\n  let panStartY = 0;\n  let pointerStartX = 0;\n  let pointerStartY = 0;\n\n  const applyPan = () => {\n    stage.style.setProperty('--zoom-pan-x', `${panX}px`);\n    stage.style.setProperty('--zoom-pan-y', `${panY}px`);\n  };\n\n  const clampPan = (x, y) => {\n    const maxX = Math.max(0, stage.clientWidth * 0.55);\n    const maxY = Math.max(0, stage.clientHeight * 0.55);\n\n    return {\n      x: Math.max(-maxX, Math.min(maxX, x)),\n      y: Math.max(-maxY, Math.min(maxY, y)),\n    };\n  };\n\n  const resetZoom = () => {\n    isZoomed = false;\n    isPanning = false;\n    didPan = false;\n    suppressClick = false;\n    panX = 0;\n    panY = 0;\n    stage.classList.remove('is-zoomed');\n    stage.classList.remove('is-panning');\n    stage.style.setProperty('--zoom-origin-x', '50%');\n    stage.style.setProperty('--zoom-origin-y', '50%');\n    applyPan();\n  };\n\n  const updateImage = () => {\n    const item = items[currentIndex];\n\n    if (!item) {\n      return;\n    }\n\n    image.src = item.src;\n    image.alt = item.alt;\n    count.textContent = `${currentIndex + 1} / ${items.length}`;\n    prevButton.disabled = items.length < 2;\n    nextButton.disabled = items.length < 2;\n    resetZoom();\n  };\n\n  const open = (index) => {\n    currentIndex = index;\n    updateImage();\n    lightbox.hidden = false;\n    lightbox.setAttribute('aria-hidden', 'false');\n    document.body.classList.add('hiranya-lightbox-open');\n    window.requestAnimationFrame(() => {\n      lightbox.classList.add('is-open');\n    });\n  };\n\n  const close = () => {\n    lightbox.classList.remove('is-open');\n    lightbox.setAttribute('aria-hidden', 'true');\n    document.body.classList.remove('hiranya-lightbox-open');\n    resetZoom();\n\n    window.setTimeout(() => {\n      if (lightbox.getAttribute('aria-hidden') === 'true') {\n        lightbox.hidden = true;\n      }\n    }, 220);\n  };\n\n  const move = (direction) => {\n    currentIndex = (currentIndex + direction + items.length) % items.length;\n    updateImage();\n  };\n\n  triggers.forEach((trigger) => {\n    trigger.addEventListener('click', () => {\n      open(Number(trigger.dataset.index || 0));\n    });\n  });\n\n  closeButtons.forEach((button) => {\n    button.addEventListener('click', close);\n  });\n\n  prevButton?.addEventListener('click', (event) => {\n    event.stopPropagation();\n    move(-1);\n  });\n\n  nextButton?.addEventListener('click', (event) => {\n    event.stopPropagation();\n    move(1);\n  });\n\n  stage?.addEventListener('click', () => {\n    if (suppressClick) {\n      suppressClick = false;\n      return;\n    }\n\n    isZoomed = !isZoomed;\n    stage.classList.toggle('is-zoomed', isZoomed);\n    if (!isZoomed) {\n      panX = 0;\n      panY = 0;\n      applyPan();\n    }\n  });\n\n  stage?.addEventListener('mousemove', (event) => {\n    if (!isZoomed || isPanning) {\n      return;\n    }\n\n    const rect = stage.getBoundingClientRect();\n    const originX = ((event.clientX - rect.left) / rect.width) * 100;\n    const originY = ((event.clientY - rect.top) / rect.height) * 100;\n    stage.style.setProperty('--zoom-origin-x', `${originX}%`);\n    stage.style.setProperty('--zoom-origin-y', `${originY}%`);\n  });\n\n  stage?.addEventListener('pointerdown', (event) => {\n    if (!isZoomed || event.button > 0) {\n      return;\n    }\n\n    isPanning = true;\n    didPan = false;\n    pointerStartX = event.clientX;\n    pointerStartY = event.clientY;\n    panStartX = panX;\n    panStartY = panY;\n    stage.classList.add('is-panning');\n    stage.setPointerCapture?.(event.pointerId);\n    event.preventDefault();\n  });\n\n  stage?.addEventListener('pointermove', (event) => {\n    if (!isPanning) {\n      return;\n    }\n\n    const deltaX = event.clientX - pointerStartX;\n    const deltaY = event.clientY - pointerStartY;\n\n    if (Math.abs(deltaX) > 3 || Math.abs(deltaY) > 3) {\n      didPan = true;\n    }\n\n    const clamped = clampPan(panStartX + deltaX, panStartY + deltaY);\n    panX = clamped.x;\n    panY = clamped.y;\n    applyPan();\n    event.preventDefault();\n  });\n\n  const stopPanning = (event) => {\n    if (!isPanning) {\n      return;\n    }\n\n    isPanning = false;\n    stage.classList.remove('is-panning');\n    try {\n      stage.releasePointerCapture?.(event.pointerId);\n    } catch (error) {\n      // Ignore stale pointer captures after touch gestures are interrupted.\n    }\n\n    if (didPan) {\n      suppressClick = true;\n      window.setTimeout(() => {\n        suppressClick = false;\n      }, 0);\n    }\n  };\n\n  stage?.addEventListener('pointerup', stopPanning);\n  stage?.addEventListener('pointercancel', stopPanning);\n  stage?.addEventListener('pointerleave', stopPanning);\n\n  document.addEventListener('keydown', (event) => {\n    if (lightbox.hidden) {\n      return;\n    }\n\n    if (event.key === 'Escape') {\n      close();\n    }\n    if (event.key === 'ArrowLeft') {\n      move(-1);\n    }\n    if (event.key === 'ArrowRight') {\n      move(1);\n    }\n  });\n}\n\nfunction initHiranyaSizeGuide(root) {\n  const triggers = Array.from(root.querySelectorAll('[data-hiranya-size-guide-trigger], .hiranya-pdp__size-guide'));\n  const customTemplate = root.querySelector('[data-hiranya-size-chart-template]');\n  const customModal = root.querySelector('[data-hiranya-size-chart-modal]');\n  const customContent = root.querySelector('[data-hiranya-size-chart-content]');\n\n  if (!triggers.length) {\n    return;\n  }\n\n  const hasCustomChart =\n    Boolean(customTemplate) &&\n    Boolean(customModal) &&\n    Boolean(customContent) &&\n    Boolean(customTemplate.innerHTML.trim());\n\n  const toCentimeters = (value) => {\n    const numericValue = Number(value);\n\n    if (!Number.isFinite(numericValue)) {\n      return value;\n    }\n\n    const convertedValue = Math.round(numericValue * 2.54 * 10) / 10;\n    return Number.isInteger(convertedValue) ? String(convertedValue) : convertedValue.toFixed(1);\n  };\n\n  const renderBodyMeasurementTable = (columns, rows, unit, conversionStartIndex) => {\n    const headerCells = columns\n      .map((column, index) => {\n        const alignment = index === 0 ? ' style=\"text-align: center; width: auto;\"' : '';\n        return `<th scope=\"col\"${alignment}>${column}</th>`;\n      })\n      .join('');\n    const bodyRows = rows\n      .map((row) => {\n        const cells = row\n          .map((cell, index) => {\n            const value = unit === 'cm' && index >= conversionStartIndex ? toCentimeters(cell) : cell;\n            return `<td>${value}</td>`;\n          })\n          .join('');\n        return `<tr>${cells}</tr>`;\n      })\n      .join('');\n\n    return `\n      <table class=\"hiranya-size-chart__table\" data-size-chart-table data-unit=\"${unit}\" style=\"min-width: ${columns.length > 7 ? '760px' : '640px'}; table-layout: auto;\"${unit === 'cm' ? ' hidden' : ''}>\n        <thead>\n          <tr>${headerCells}</tr>\n        </thead>\n        <tbody>${bodyRows}</tbody>\n      </table>\n    `;\n  };\n\n  const renderBodyMeasurementSection = (title, columns, rows, conversionStartIndex) => `\n    <section class=\"hiranya-size-chart__section\">\n      <h4 class=\"hiranya-size-chart__section-title\">${title}</h4>\n      <div class=\"hiranya-size-chart__table-wrap\">\n        ${renderBodyMeasurementTable(columns, rows, 'in', conversionStartIndex)}\n        ${renderBodyMeasurementTable(columns, rows, 'cm', conversionStartIndex)}\n      </div>\n    </section>\n  `;\n\n  const buildBodyMeasurementsMarkup = () => {\n    const topColumns = ['US', 'UK', 'EU', 'Hiranya', 'Chest', 'Waist', 'Hip', 'Shoulder'];\n    const topRows = [\n      ['1', '4', '32', 'XXS', 30, 25, 34, 14],\n      ['2', '6', '34', 'XS', 32, 27, 35, 14.5],\n      ['4', '8', '36', 'S', 34, 29, 37, 15],\n      ['6', '10', '38', 'M', 36, 31, 39, 15.5],\n      ['8', '12', '40', 'L', 38, 33, 41.5, 16],\n      ['10', '14', '42', 'XL', 40, 35, 44.5, 16.5],\n      ['12', '16', '44', 'XXL', 42, 37, 47.5, 17],\n    ];\n    const bottomColumns = ['US', 'UK', 'EU', 'Hiranya', 'Waist', 'Thigh', 'Hip'];\n    const bottomRows = [\n      ['1', '4', '32', 'XXS', 25, 20, 34],\n      ['2', '6', '34', 'XS', 27, 21, 35],\n      ['4', '8', '36', 'S', 29, 22.5, 37],\n      ['6', '10', '38', 'M', 31, 24, 39],\n      ['8', '12', '40', 'L', 33, 26, 41.5],\n      ['10', '14', '42', 'XL', 35, 28.5, 44.5],\n      ['12', '16', '44', 'XXL', 37, 31, 47.5],\n    ];\n\n    return `\n      <div class=\"hiranya-size-chart__sections\" data-size-chart-measurement-panel=\"body\" hidden>\n        ${renderBodyMeasurementSection('Top - Body Measurements', topColumns, topRows, 4)}\n        ${renderBodyMeasurementSection('Bottom - Body Measurements', bottomColumns, bottomRows, 4)}\n        <p class=\"hiranya-size-chart__note\" data-size-chart-unit-note data-unit=\"in\">Our comfort fit garments have 8-10 inches ease from the body measurements.</p>\n        <p class=\"hiranya-size-chart__note\" data-size-chart-unit-note data-unit=\"cm\" hidden>Our comfort fit garments have 20-25 cm ease from the body measurements.</p>\n      </div>\n    `;\n  };\n\n  const syncChartUnit = (chart, unit) => {\n    if (!chart) {\n      return;\n    }\n\n    chart.dataset.unit = unit;\n\n    chart.querySelectorAll('[data-size-chart-unit-button]').forEach((button) => {\n      const isActive = button.dataset.unit === unit;\n      button.classList.toggle('is-active', isActive);\n      button.setAttribute('aria-pressed', isActive ? 'true' : 'false');\n    });\n\n    chart.querySelectorAll('[data-size-chart-table]').forEach((table) => {\n      table.hidden = table.dataset.unit !== unit;\n    });\n\n    chart.querySelectorAll('[data-size-chart-unit-note]').forEach((note) => {\n      note.hidden = note.dataset.unit !== unit;\n    });\n  };\n\n  const syncMeasurementMode = (chart, mode) => {\n    if (!chart) {\n      return;\n    }\n\n    const activeMode = mode === 'body' ? 'body' : 'garment';\n    chart.dataset.measurement = activeMode;\n\n    chart.querySelectorAll('[data-size-chart-measurement-button]').forEach((button) => {\n      const isActive = button.dataset.measurement === activeMode;\n      button.classList.toggle('is-active', isActive);\n      button.setAttribute('aria-pressed', isActive ? 'true' : 'false');\n    });\n\n    chart.querySelectorAll('[data-size-chart-measurement-panel]').forEach((panel) => {\n      panel.hidden = panel.dataset.sizeChartMeasurementPanel !== activeMode;\n    });\n\n    const note = chart.querySelector('.hiranya-size-chart__toolbar .hiranya-size-chart__note');\n    if (note) {\n      note.textContent =\n        activeMode === 'body'\n          ? note.dataset.bodyCopy || 'Body measurements are reference body measurements. Toggle between inches and centimeters.'\n          : note.dataset.garmentCopy || 'All measurements are garment measurements. Toggle between inches and centimeters.';\n    }\n\n    syncChartUnit(chart, chart.dataset.unit || 'in');\n  };\n\n  const enhanceMeasurementToggle = (chart) => {\n    if (!chart || chart.dataset.measurementEnhanced === 'true') {\n      return;\n    }\n\n    const garmentSections = chart.querySelector('.hiranya-size-chart__sections');\n    const toolbar = chart.querySelector('.hiranya-size-chart__toolbar');\n\n    if (!garmentSections || !toolbar) {\n      return;\n    }\n\n    chart.dataset.measurementEnhanced = 'true';\n    garmentSections.dataset.sizeChartMeasurementPanel = 'garment';\n\n    const note = toolbar.querySelector('.hiranya-size-chart__note');\n    if (note) {\n      note.dataset.garmentCopy = note.textContent.trim() || 'All measurements are garment measurements. Toggle between inches and centimeters.';\n      note.dataset.bodyCopy = 'Body measurements are reference body measurements. Toggle between inches and centimeters.';\n    }\n\n    const measurementToolbar = document.createElement('div');\n    measurementToolbar.className = 'hiranya-size-chart__toolbar';\n    measurementToolbar.setAttribute('data-size-chart-measurement-toolbar', '');\n    measurementToolbar.innerHTML = `\n      <div class=\"hiranya-size-chart__copy\">\n        <p class=\"hiranya-size-chart__section-title\">Measurement Type</p>\n      </div>\n      <div class=\"hiranya-size-chart__toggle\" role=\"group\" aria-label=\"Toggle measurement type\">\n        <button type=\"button\" class=\"hiranya-size-chart__toggle-button is-active\" data-size-chart-measurement-button data-measurement=\"garment\" aria-pressed=\"true\">Garment Measurements</button>\n        <button type=\"button\" class=\"hiranya-size-chart__toggle-button\" data-size-chart-measurement-button data-measurement=\"body\" aria-pressed=\"false\">Body Measurements</button>\n      </div>\n    `;\n\n    toolbar.before(measurementToolbar);\n\n    const bodyContainer = document.createElement('div');\n    bodyContainer.innerHTML = buildBodyMeasurementsMarkup();\n    garmentSections.after(bodyContainer.firstElementChild);\n    syncMeasurementMode(chart, 'garment');\n  };\n\n  const initialiseCustomCharts = () => {\n    if (!hasCustomChart) {\n      return;\n    }\n\n    customContent.innerHTML = customTemplate.innerHTML;\n    customContent.querySelectorAll('[data-size-chart]').forEach((chart) => {\n      enhanceMeasurementToggle(chart);\n      syncChartUnit(chart, chart.dataset.unit || 'in');\n      syncMeasurementMode(chart, chart.dataset.measurement || 'garment');\n    });\n  };\n\n  const closeCustomSizeGuide = () => {\n    if (!hasCustomChart) {\n      return;\n    }\n\n    customModal.classList.remove('is-open');\n    customModal.setAttribute('aria-hidden', 'true');\n    document.body.classList.remove('hiranya-size-chart-open');\n\n    window.setTimeout(() => {\n      if (customModal.getAttribute('aria-hidden') === 'true') {\n        customModal.hidden = true;\n      }\n    }, 220);\n  };\n\n  const openCustomSizeGuide = () => {\n    if (!hasCustomChart) {\n      return false;\n    }\n\n    initialiseCustomCharts();\n    customModal.hidden = false;\n    customModal.setAttribute('aria-hidden', 'false');\n    document.body.classList.add('hiranya-size-chart-open');\n    window.requestAnimationFrame(() => {\n      customModal.classList.add('is-open');\n    });\n    return true;\n  };\n\n  const openExistingSizeGuide = () => {\n    const button = document.querySelector('.scr-open-size-chart');\n\n    if (button) {\n      button.click();\n      return true;\n    }\n\n    if (window.sizeChartsRelentless?.modal?.css) {\n      window.sizeChartsRelentless.modal.css({\n        opacity: 1,\n        visibility: 'visible',\n        transform: 'translate(-50%, 0%) scale(1)',\n      });\n\n      const shadow = document.querySelector('.scr-shadow');\n      if (shadow) {\n        shadow.style.opacity = '1';\n        shadow.style.visibility = 'visible';\n      }\n\n      return true;\n    }\n\n    return false;\n  };\n\n  if (hasCustomChart) {\n    customModal.addEventListener('click', (event) => {\n      const closeTrigger = event.target.closest('[data-hiranya-size-chart-close]');\n\n      if (closeTrigger) {\n        event.preventDefault();\n        closeCustomSizeGuide();\n        return;\n      }\n\n      const unitButton = event.target.closest('[data-size-chart-unit-button]');\n      if (unitButton) {\n        event.preventDefault();\n        syncChartUnit(unitButton.closest('[data-size-chart]'), unitButton.dataset.unit || 'in');\n        return;\n      }\n\n      const measurementButton = event.target.closest('[data-size-chart-measurement-button]');\n      if (measurementButton) {\n        event.preventDefault();\n        syncMeasurementMode(measurementButton.closest('[data-size-chart]'), measurementButton.dataset.measurement || 'garment');\n      }\n    });\n\n    document.addEventListener('keydown', (event) => {\n      if (customModal.hidden) {\n        return;\n      }\n\n      if (event.key === 'Escape') {\n        closeCustomSizeGuide();\n      }\n    });\n  }\n\n  triggers.forEach((trigger) => {\n    trigger.addEventListener('click', (event) => {\n      event.preventDefault();\n\n      if (openCustomSizeGuide()) {\n        return;\n      }\n\n      if (openExistingSizeGuide()) {\n        return;\n      }\n\n      let attempts = 0;\n      const timer = window.setInterval(() => {\n        attempts += 1;\n\n        if (openExistingSizeGuide() || attempts > 20) {\n          window.clearInterval(timer);\n        }\n      }, 150);\n    });\n  });\n}\n\nfunction initHiranyaRecentlyViewed(root) {\n  const currentHandle = root.dataset.hiranyaProductHandle;\n  const currentFabric = String(root.dataset.hiranyaProductFabric || '').trim();\n  const fabricMapScript = root.querySelector('[data-hiranya-product-fabrics]');\n  const section = root.querySelector('[data-hiranya-recently-viewed-section]');\n  const grid = root.querySelector('[data-hiranya-recently-viewed-grid]');\n\n  if (!currentHandle || !section || !grid) {\n    return;\n  }\n\n  const storageKey = 'hiranyaRecentlyViewed';\n  const fabricStorageKey = 'hiranyaProductFabricMap';\n  let viewedHandles = [];\n  let fabricMap = {};\n\n  try {\n    viewedHandles = JSON.parse(window.localStorage.getItem(storageKey) || '[]');\n  } catch (error) {\n    viewedHandles = [];\n  }\n\n  try {\n    fabricMap = JSON.parse(window.localStorage.getItem(fabricStorageKey) || '{}') || {};\n  } catch (error) {\n    fabricMap = {};\n  }\n\n  try {\n    fabricMap = Object.assign({}, fabricMap, JSON.parse(fabricMapScript?.textContent || '{}'));\n  } catch (error) {\n    // Keep stored fabric data if the inline map cannot be parsed.\n  }\n\n  if (currentHandle && currentFabric) {\n    fabricMap[currentHandle] = currentFabric;\n  }\n\n  viewedHandles = [currentHandle, ...viewedHandles.filter((handle) => handle && handle !== currentHandle)].slice(0, 12);\n\n  try {\n    window.localStorage.setItem(storageKey, JSON.stringify(viewedHandles));\n    window.localStorage.setItem(fabricStorageKey, JSON.stringify(fabricMap));\n  } catch (error) {\n    // Ignore storage failures.\n  }\n\n  const actualRecentHandles = viewedHandles.filter((handle) => handle !== currentHandle);\n  if (!actualRecentHandles.length) {\n    return;\n  }\n\n  const handles = actualRecentHandles.slice(0, 12);\n  const fallbackHandles = (section.dataset.hiranyaFallbackHandles || '')\n    .split(',')\n    .map((handle) => handle.trim())\n    .filter(Boolean);\n\n  fallbackHandles.forEach((handle) => {\n    if (handles.length < 12 && handle !== currentHandle && !handles.includes(handle)) {\n      handles.push(handle);\n    }\n  });\n\n  Promise.all(\n    handles.map(async (handle) => {\n      const response = await fetch(`/products/${handle}.js`, {\n        headers: { Accept: 'application/json' },\n      });\n\n      if (!response.ok) {\n        throw new Error(`Unable to load ${handle}`);\n      }\n\n      return response.json();\n    })\n  )\n    .then((products) => {\n      if (!products.length) {\n        return;\n      }\n\n      grid.innerHTML = products\n        .filter(Boolean)\n        .slice(0, 12)\n        .map((product) => hiranyaBuildProductCardMarkup(product, fabricMap))\n        .join('');\n\n      if (grid.innerHTML.trim()) {\n        section.classList.remove('is-hidden');\n      }\n    })\n    .catch(() => {\n      section.classList.add('is-hidden');\n    });\n}\n\nfunction initHiranyaWelcomePopup() {\n  return;\n\n  const popup = document.querySelector('[data-hiranya-welcome-popup]');\n\n  if (!popup || window.Shopify?.designMode) {\n    return;\n  }\n\n  const storageKey = 'hiranyaWelcomePopupSeen';\n  const cookieName = 'hiranya_welcome_popup_seen';\n  const closeButtons = Array.from(popup.querySelectorAll('[data-hiranya-welcome-popup-close]'));\n  const copyButton = popup.querySelector('[data-hiranya-welcome-copy]');\n  const couponNode = popup.querySelector('[data-hiranya-welcome-coupon]');\n  const form = popup.querySelector('.hiranya-welcome-popup__form');\n  const emailInput = popup.querySelector('input[type=\"email\"]');\n  let showTimer = null;\n\n  const hasSeenPopup = () => {\n    try {\n      if (window.localStorage.getItem(storageKey) === 'true') {\n        return true;\n      }\n    } catch (error) {\n      // Ignore storage failures and fall back to the cookie check.\n    }\n\n    return document.cookie.split(';').some((cookie) => cookie.trim().startsWith(`${cookieName}=true`));\n  };\n\n  const markSeen = () => {\n    try {\n      window.localStorage.setItem(storageKey, 'true');\n    } catch (error) {\n      // Ignore storage failures.\n    }\n\n    const maxAge = 60 * 60 * 24 * 365;\n    document.cookie = `${cookieName}=true; path=/; max-age=${maxAge}; SameSite=Lax`;\n  };\n\n  const closePopup = (shouldMarkSeen = true) => {\n    if (showTimer) {\n      window.clearTimeout(showTimer);\n      showTimer = null;\n    }\n\n    if (shouldMarkSeen) {\n      markSeen();\n    }\n\n    popup.classList.remove('is-visible');\n    popup.setAttribute('aria-hidden', 'true');\n    document.body.classList.remove('hiranya-welcome-popup-open');\n  };\n\n  const openPopup = () => {\n    if (hasSeenPopup()) {\n      return;\n    }\n\n    popup.classList.add('is-visible');\n    popup.setAttribute('aria-hidden', 'false');\n    document.body.classList.add('hiranya-welcome-popup-open');\n    window.setTimeout(() => emailInput?.focus({ preventScroll: true }), 260);\n  };\n\n  if (new URLSearchParams(window.location.search).get('customer_posted') === 'true') {\n    markSeen();\n    return;\n  }\n\n  if (hasSeenPopup()) {\n    return;\n  }\n\n  showTimer = window.setTimeout(openPopup, 1100);\n\n  closeButtons.forEach((button) => {\n    button.addEventListener('click', () => closePopup(true));\n  });\n\n  popup.addEventListener('click', (event) => {\n    if (event.target === popup) {\n      closePopup(true);\n    }\n  });\n\n  copyButton?.addEventListener('click', async () => {\n    const code = couponNode?.textContent?.trim() || 'DEBUT10';\n    const originalLabel = copyButton.getAttribute('aria-label') || `Copy coupon code ${code}`;\n\n    try {\n      if (navigator.clipboard?.writeText) {\n        await navigator.clipboard.writeText(code);\n      } else {\n        const temporaryInput = document.createElement('input');\n        temporaryInput.value = code;\n        temporaryInput.setAttribute('readonly', '');\n        temporaryInput.style.position = 'fixed';\n        temporaryInput.style.left = '-9999px';\n        document.body.appendChild(temporaryInput);\n        temporaryInput.select();\n        document.execCommand('copy');\n        temporaryInput.remove();\n      }\n\n      copyButton.classList.add('is-copied');\n      copyButton.setAttribute('aria-label', copyButton.dataset.copyLabel || 'Copied');\n      window.setTimeout(() => {\n        copyButton.classList.remove('is-copied');\n        copyButton.setAttribute('aria-label', originalLabel);\n      }, 1400);\n    } catch (error) {\n      copyButton.setAttribute('aria-label', originalLabel);\n    }\n  });\n\n  document.addEventListener('keydown', (event) => {\n    if (event.key === 'Escape' && popup.classList.contains('is-visible')) {\n      closePopup(true);\n    }\n  });\n\n  form?.addEventListener('submit', () => {\n    markSeen();\n  });\n}\n"],
  "mappings": "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",
  "names": []
}
