{
  "version": 3,
  "sources": ["/cdn/shop/t/11/assets/jh-blocks.js?fresh=1780648115"],
  "sourcesContent": ["/*\n * Jhango product-block initializers\n * Runs once on page load AND re-runs when new block markup is injected\n * (e.g. by the quick-view modal). Idempotent via .__jhInit flag.\n */\n(function(){\n  'use strict';\n\n  /* ===== Cache reviews template HTML BEFORE the section's own DOMContentLoaded\n     handler can move/empty it. With `defer`, this script runs after HTML parse\n     but before DOMContentLoaded \u2014 perfect timing. ===== */\n  var _reviewsHTMLCache = null;\n  (function cacheReviewsHTMLNow(){\n    var tpl = document.querySelector('template[id^=\"ss-reviews-\"]');\n    if(tpl){ _reviewsHTMLCache = tpl.innerHTML; }\n  })();\n\n  /* ===== Define custom elements globally so they auto-upgrade everywhere\n     (including quick-view modal injections) ===== */\n\n  // typewriter-text\n  if(window.customElements && !customElements.get('typewriter-text')){\n    customElements.define('typewriter-text', class extends HTMLElement {\n      connectedCallback(){\n        if(this.__upgraded) return; this.__upgraded = true;\n        try { this.phrases = JSON.parse(this.dataset.phrases) || []; }\n        catch(e){ this.phrases = []; }\n        this.phrases = this.phrases.filter(Boolean);\n        if(!this.phrases.length) return;\n        this.live = this.querySelector('.tw__live');\n        if(!this.live) return;\n        this.typeSpeed = parseInt(this.dataset.typeSpeed,10) || 90;\n        this.deleteSpeed = parseInt(this.dataset.deleteSpeed,10) || 50;\n        this.pause = parseInt(this.dataset.pause,10) || 1500;\n        this.idx = 0; this.charIdx = 0; this.deleting = false;\n        this.loop();\n      }\n      loop(){\n        var word = this.phrases[this.idx % this.phrases.length];\n        if(!this.deleting){\n          this.charIdx++;\n          this.live.textContent = word.substring(0, this.charIdx);\n          if(this.charIdx === word.length){ this.deleting = true; this.timer = setTimeout(()=>this.loop(), this.pause); return; }\n          this.timer = setTimeout(()=>this.loop(), this.typeSpeed);\n        } else {\n          this.charIdx--;\n          this.live.textContent = word.substring(0, this.charIdx);\n          if(this.charIdx <= 0){ this.deleting = false; this.idx++; this.timer = setTimeout(()=>this.loop(), 200); return; }\n          this.timer = setTimeout(()=>this.loop(), this.deleteSpeed);\n        }\n      }\n      disconnectedCallback(){ if(this.timer) clearTimeout(this.timer); }\n    });\n  }\n\n  // price-pro\n  if(window.customElements && !customElements.get('price-pro')){\n    customElements.define('price-pro', class extends HTMLElement {\n      connectedCallback(){\n        if(this.__upgraded) return; this.__upgraded = true;\n        this.finalEl = this.querySelector('[data-final]');\n        this.compareEl = this.querySelector('[data-compare]');\n        this.badgeEl = this.querySelector('[data-badge]');\n        this.badgeVal = this.querySelector('[data-badge-value]');\n        this.cdEl = this.querySelector('[data-countdown]');\n        this.discType = this.dataset.discountType;\n        this.varPrice = parseInt(this.dataset.variantPrice,10);\n        this.varCompare = parseInt(this.dataset.variantCompare,10);\n        this.forcePct = parseFloat(this.dataset.forceDiscountPct) || 0;\n        this.form = this.closest('form');\n        if(this.form){\n          try { this.variants = JSON.parse(this.form.dataset.variants || '[]'); } catch(e){ this.variants = []; }\n          this.form.addEventListener('change', e=>{\n            if(e.target && e.target.name && (e.target.name.indexOf('option-')===0 || e.target.name==='id')){ this.onVariantChange(); }\n          });\n        }\n        document.addEventListener('qbp:change', e=>this.applyBundle(e.detail));\n        if(this.dataset.countdownEnabled === 'true'){ this.startCountdown(); }\n      }\n      onVariantChange(){\n        if(!this.form || !this.variants || !this.variants.length) return;\n        var selected = [];\n        this.form.querySelectorAll('input[name^=\"option-\"]:checked, select[name^=\"option-\"]').forEach(function(inp){\n          var pos = parseInt(inp.dataset.optionPosition, 10) || 0;\n          if(pos>0) selected[pos-1] = inp.value;\n        });\n        if(!selected.length) return;\n        var v = this.variants.find(function(x){\n          if(!x.options) return false;\n          for(var i=0;i<selected.length;i++){ if(x.options[i] !== selected[i]) return false; }\n          return true;\n        });\n        if(!v) return;\n        this.varPrice = v.price; this.varCompare = v.compare_at_price || 0;\n        var hid = this.form.querySelector('input[name=\"id\"]');\n        if(hid && parseInt(hid.value,10) !== v.id){ hid.value = v.id; hid.dispatchEvent(new Event('change',{bubbles:true})); }\n        document.dispatchEvent(new CustomEvent('variant:price-changed',{detail:{ variantId: v.id, price: v.price, compareAtPrice: v.compare_at_price || 0, available: v.available !== false }}));\n        this.renderForVariant();\n      }\n      money(cents){ return '\u20B9' + (cents/100).toLocaleString('en-IN',{maximumFractionDigits:0}); }\n      renderForVariant(){\n        var compare = this.varCompare > this.varPrice ? this.varCompare : 0;\n        if(compare === 0 && this.forcePct > 0){ var d = 100 - this.forcePct; if(d > 0) compare = Math.round(this.varPrice * 100 / d); }\n        var savings = compare > this.varPrice ? compare - this.varPrice : 0;\n        if(this.finalEl) this.finalEl.textContent = this.money(this.varPrice);\n        if(this.compareEl){ if(compare > this.varPrice){ this.compareEl.textContent = this.money(compare); this.compareEl.removeAttribute('hidden'); } else { this.compareEl.setAttribute('hidden',''); } }\n        if(this.badgeEl){\n          if(savings > 0){\n            if(this.discType === 'percentage'){ if(this.badgeVal) this.badgeVal.textContent = Math.round(savings*100/compare) + '%'; }\n            else { if(this.badgeVal) this.badgeVal.textContent = this.money(savings); }\n            this.badgeEl.removeAttribute('hidden');\n          } else { this.badgeEl.setAttribute('hidden',''); }\n        }\n      }\n      applyBundle(d){\n        if(!d) return;\n        var dc = d.totalCompare, ds = d.savings;\n        if(this.forcePct > 0 && dc <= d.totalFinal){ var dn = 100 - this.forcePct; if(dn > 0){ dc = Math.round(d.totalFinal * 100 / dn); ds = dc - d.totalFinal; } }\n        if(this.finalEl) this.finalEl.textContent = this.money(d.totalFinal);\n        if(this.compareEl){ if(dc > d.totalFinal){ this.compareEl.textContent = this.money(dc); this.compareEl.removeAttribute('hidden'); } else { this.compareEl.setAttribute('hidden',''); } }\n        if(this.badgeEl){\n          if(ds > 0){\n            if(this.discType === 'percentage'){ if(this.badgeVal) this.badgeVal.textContent = Math.round(ds*100/dc) + '%'; }\n            else { if(this.badgeVal) this.badgeVal.textContent = this.money(ds); }\n            this.badgeEl.removeAttribute('hidden');\n          } else { this.badgeEl.setAttribute('hidden',''); }\n        }\n      }\n      startCountdown(){\n        if(!this.cdEl) return;\n        var mins = parseInt(this.dataset.countdownMin,10) || 15;\n        var persist = this.dataset.countdownPersist === 'true';\n        var key = 'pp_cd_'+this.id+'_'+location.pathname;\n        var end;\n        if(persist){ var saved = localStorage.getItem(key); if(saved && parseInt(saved,10) > Date.now()){ end = parseInt(saved,10); } else { end = Date.now() + mins*60*1000; localStorage.setItem(key, end); } }\n        else { end = Date.now() + mins*60*1000; }\n        var tick = ()=>{\n          var diff = end - Date.now();\n          if(diff <= 0){ if(persist){ end = Date.now() + mins*60*1000; localStorage.setItem(key, end); } else { this.cdEl.textContent = '00:00'; return; } }\n          var sec = Math.max(0, Math.floor(diff/1000));\n          var h = Math.floor(sec/3600), m = Math.floor((sec%3600)/60), s = sec%60;\n          var pad = n=> n<10? '0'+n: ''+n;\n          this.cdEl.textContent = (h>0? pad(h)+':' :'') + pad(m)+':'+pad(s);\n        };\n        tick(); this.cdInterval = setInterval(tick, 1000);\n      }\n      disconnectedCallback(){ if(this.cdInterval) clearInterval(this.cdInterval); }\n    });\n  }\n\n  // qty-breaks-pro\n  if(window.customElements && !customElements.get('qty-breaks-pro')){\n    customElements.define('qty-breaks-pro', class extends HTMLElement {\n      connectedCallback(){\n        if(this.__upgraded) return; this.__upgraded = true;\n        this.varPrice = parseInt(this.dataset.variantPrice,10) || 0;\n        this.tiers = this.parseTiers(this.dataset.tiersRaw || '');\n        this.addEventListener('change', e=>{ if(e.target.matches('.qbp__radio')) this.sync(e.target); });\n        document.addEventListener('variant:price-changed', e=>{\n          if(e.detail && typeof e.detail.price === 'number'){\n            this.varPrice = e.detail.price;\n            this.recomputeAll();\n            var c = this.querySelector('.qbp__radio:checked');\n            if(c) this.sync(c);\n          }\n        });\n        var checked = this.querySelector('.qbp__radio:checked');\n        if(checked) this.sync(checked);\n      }\n      parseTiers(raw){\n        return raw.split('###').map(function(t){\n          var parts = t.split('|');\n          var qty = parseInt((parts[0]||'').trim(),10);\n          var name = (parts[1]||'').trim();\n          var disc = (parts[2]||'0').trim();\n          var isPct = disc.indexOf('%')>-1;\n          var dval = parseFloat(disc.replace('%','').trim()) || 0;\n          return {qty:qty, name:name, isPct:isPct, dval:dval};\n        }).filter(function(t){ return t.qty > 0; });\n      }\n      money(cents){ return '\u20B9' + (cents/100).toLocaleString('en-IN',{maximumFractionDigits:0}); }\n      recomputeAll(){\n        var self = this;\n        var radios = this.querySelectorAll('.qbp__radio');\n        radios.forEach(function(input, i){\n          var t = self.tiers[i]; if(!t) return;\n          var totalCompare = self.varPrice * t.qty;\n          var discountTotal = t.isPct ? Math.round(totalCompare * t.dval / 100) : Math.round(t.dval * 100);\n          var totalFinal = Math.max(0, totalCompare - discountTotal);\n          var savings = totalCompare - totalFinal;\n          var finalUnit = Math.round(totalFinal / t.qty);\n          input.dataset.finalUnit = finalUnit;\n          input.dataset.totalFinal = totalFinal;\n          input.dataset.totalCompare = totalCompare;\n          input.dataset.savings = savings;\n          var card = input.nextElementSibling; if(!card) return;\n          var priceEl = card.querySelector('.qbp__price');\n          var compareEl = card.querySelector('.qbp__compare');\n          var badgeEl = card.querySelector('.qbp__badge');\n          if(priceEl) priceEl.textContent = self.money(totalFinal);\n          if(compareEl){ if(totalCompare > totalFinal){ compareEl.textContent = self.money(totalCompare); compareEl.style.display=''; } else { compareEl.style.display='none'; } }\n          if(badgeEl){ if(savings > 0){ badgeEl.textContent = t.isPct ? Math.round(t.dval) + '% OFF' : self.money(savings) + ' OFF'; badgeEl.style.display=''; } else { badgeEl.style.display='none'; } }\n        });\n      }\n      sync(input){\n        var qty = parseInt(input.dataset.qty,10) || 1;\n        var form = this.closest('form');\n        if(!form) form = document.querySelector('product-form form');\n        if(form){\n          var qtyInput = form.querySelector('input[name=\"quantity\"]');\n          if(qtyInput){ qtyInput.value = qty; qtyInput.dispatchEvent(new Event('change',{bubbles:true})); }\n          var qtySwitcher = form.querySelector('qty-switcher input[type=\"number\"]');\n          if(qtySwitcher){ qtySwitcher.value = qty; qtySwitcher.dispatchEvent(new Event('change',{bubbles:true})); }\n        }\n        document.dispatchEvent(new CustomEvent('qbp:change',{detail:{\n          qty:qty,\n          finalUnit: parseInt(input.dataset.finalUnit,10),\n          totalFinal: parseInt(input.dataset.totalFinal,10),\n          totalCompare: parseInt(input.dataset.totalCompare,10),\n          savings: parseInt(input.dataset.savings,10),\n          blockId: this.dataset.blockId\n        }}));\n      }\n    });\n  }\n\n  var inits = []; // {selector, fn}\n  function reg(selector, fn){ inits.push({selector: selector, fn: fn}); }\n  function scan(root){\n    // Unconditional dedup: if there's more than one reviews-body in any product\n    // container, keep only the first. Catches the case where both my populator\n    // AND the section's own DOMContentLoaded handler inserted.\n    dedupReviewsBodies(root || document);\n    (root || document).querySelectorAll('[data-jh-init]').forEach(function(){}); // touch\n    inits.forEach(function(entry){\n      (root && root.querySelectorAll ? root : document).querySelectorAll(entry.selector).forEach(function(el){\n        if(el.__jhInit) return;\n        el.__jhInit = true;\n        try { entry.fn(el); } catch(e){ console.error('jh init', entry.selector, e); }\n      });\n    });\n  }\n\n  function dedupReviewsBodies(root){\n    // Group reviews-body elements by their nearest product-form/quick-view scope;\n    // if more than one in the same scope, remove extras.\n    var bodies = root.querySelectorAll('[id^=\"reviews-body-\"]');\n    if(bodies.length <= 1) return;\n    var seen = new Map();\n    bodies.forEach(function(b){\n      var scope = b.closest('product-form, .product, [data-quick-view-contents], .modal-body') || b.parentNode;\n      if(seen.has(scope)){\n        b.remove();\n      } else {\n        seen.set(scope, b);\n      }\n    });\n  }\n\n  function moneyINR(cents){\n    var n = (cents || 0) / 100;\n    return '\u20B9' + n.toLocaleString('en-IN', { maximumFractionDigits: 0 });\n  }\n\n  /* =========== ATC button =========== */\n  reg('.product-block-atc', function(root){\n    var atcBtn   = root.querySelector('[data-atc-add]');\n    var form     = root.closest('form');\n    var buyWrap  = root.querySelector('.atc__buy-wrap');\n\n    // 1) Force Razorpay/Shopify payment button to fill the wrap\n    if(buyWrap){\n      buyWrap.style.setProperty('position', 'relative', 'important');\n      var forceFill = function(){\n        var wrappers = buyWrap.querySelectorAll(\n          '.shopify-payment-button, shopify-accelerated-checkout, shopify-buy-it-now-button, ' +\n          'shopify-paypal-button, shopify-apple-pay-button, shopify-google-pay-button, ' +\n          '.atc__buy-wrap > div'\n        );\n        wrappers.forEach(function(el){\n          el.style.setProperty('position', 'absolute', 'important');\n          el.style.setProperty('inset', '0', 'important');\n          el.style.setProperty('width', '100%', 'important');\n          el.style.setProperty('height', '100%', 'important');\n          el.style.setProperty('max-width', 'none', 'important');\n          el.style.setProperty('min-width', '0', 'important');\n          el.style.setProperty('display', 'flex', 'important');\n          el.style.setProperty('align-items', 'stretch', 'important');\n          el.style.setProperty('justify-content', 'stretch', 'important');\n          el.style.setProperty('margin', '0', 'important');\n        });\n        var btns = buyWrap.querySelectorAll('button, .shopify-payment-button__button, [data-shopify-button-control]');\n        btns.forEach(function(btn){\n          btn.style.setProperty('position', 'absolute', 'important');\n          btn.style.setProperty('inset', '0', 'important');\n          btn.style.setProperty('width', '100%', 'important');\n          btn.style.setProperty('height', '100%', 'important');\n          btn.style.setProperty('max-width', 'none', 'important');\n          btn.style.setProperty('min-width', '0', 'important');\n          btn.style.setProperty('margin', '0', 'important');\n          btn.style.setProperty('display', 'flex', 'important');\n          btn.style.setProperty('align-items', 'center', 'important');\n          btn.style.setProperty('justify-content', 'center', 'important');\n        });\n      };\n      forceFill();\n      var start = (window.performance && performance.now) ? performance.now() : 0;\n      (function tick(t){\n        forceFill();\n        if((t || 0) - start < 3000){ requestAnimationFrame(tick); }\n      })();\n      setTimeout(forceFill, 4000);\n      setTimeout(forceFill, 7000);\n      if('MutationObserver' in window){\n        new MutationObserver(forceFill).observe(buyWrap, {childList:true, subtree:true, attributes:true});\n      }\n      window.addEventListener('resize', forceFill);\n    }\n\n    // 2) ATC click \u2192 cart-container.add() (theme native) \u2192 opens drawer\n    if(atcBtn && form){\n      atcBtn.addEventListener('click', function(e){\n        if(atcBtn.dataset.busy === '1'){ e.preventDefault(); return; }\n        e.preventDefault();\n        atcBtn.dataset.busy = '1';\n        var origLabel = atcBtn.querySelector('.atc__label');\n        var origText = origLabel ? origLabel.textContent : '';\n        if(origLabel) origLabel.textContent = 'Adding...';\n\n        var variantInput = form.querySelector('input[name=\"id\"]');\n        var qtyInput = form.querySelector('input[name=\"quantity\"]');\n        var items = [{\n          id: variantInput ? parseInt(variantInput.value, 10) : null,\n          quantity: qtyInput ? parseInt(qtyInput.value, 10) || 1 : 1\n        }];\n\n        function done(){ if(origLabel) origLabel.textContent = origText; atcBtn.dataset.busy = '0'; }\n        function fail(err){ if(origLabel) origLabel.textContent = origText; atcBtn.dataset.busy = '0'; console.error('ATC error', err); }\n\n        var cc = document.querySelector('cart-container');\n        if(cc && typeof cc.add === 'function'){\n          Promise.resolve(cc.add({ items })).then(done).catch(fail);\n          return;\n        }\n        var fd = new FormData(form);\n        fetch('/cart/add.js', { method:'POST', headers:{'Accept':'application/javascript','X-Requested-With':'XMLHttpRequest'}, body: fd })\n          .then(function(r){ if(!r.ok) throw new Error('HTTP '+r.status); return r.json(); })\n          .then(function(){ return fetch('/cart.js').then(function(r){return r.json();}).then(function(cart){\n            document.querySelectorAll('[data-cart-count], .cart-count, .header-cart-count, cart-count-badge').forEach(function(el){ el.textContent = cart.item_count; });\n            document.dispatchEvent(new CustomEvent('cart:updated', {detail: cart}));\n          }); })\n          .then(function(){\n            var oc = document.getElementById('offcanvas-cart');\n            if(oc && window.bootstrap && bootstrap.Offcanvas){ bootstrap.Offcanvas.getOrCreateInstance(oc).show(); }\n            else { var t = document.querySelector('[data-bs-target=\"#offcanvas-cart\"], [href=\"#offcanvas-cart\"]'); if(t) t.click(); }\n            done();\n          })\n          .catch(fail);\n      });\n    }\n\n    // 3) Live update button prices on qty/bundle/variant change\n    function setPrices(finalC, compareC){\n      root.querySelectorAll('[data-atc-final]').forEach(function(el){ el.textContent = moneyINR(finalC); });\n      root.querySelectorAll('[data-atc-compare]').forEach(function(el){\n        if(compareC > finalC){ el.textContent = moneyINR(compareC); el.removeAttribute('hidden'); }\n        else { el.setAttribute('hidden',''); }\n      });\n    }\n    document.addEventListener('qbp:change', function(e){ if(e.detail) setPrices(e.detail.totalFinal, e.detail.totalCompare); });\n    document.addEventListener('variant:price-changed', function(e){ if(e.detail) setPrices(e.detail.price, e.detail.compareAtPrice || 0); });\n  });\n\n  /* =========== Sibling Products carousel =========== */\n  reg('.sp', function(root){\n    var track = root.querySelector('.sp__track');\n    var prev  = root.querySelector('.sp__nav--prev');\n    var next  = root.querySelector('.sp__nav--next');\n    if(!track) return;\n    function step(){ var c = track.querySelector('.sp__card'); return c? c.getBoundingClientRect().width + 12 : track.clientWidth; }\n    if(prev) prev.addEventListener('click', function(){ track.scrollBy({left:-step(), behavior:'smooth'}); });\n    if(next) next.addEventListener('click', function(){ track.scrollBy({left: step(), behavior:'smooth'}); });\n    var down=false, sx=0, ss=0, moved=false;\n    track.addEventListener('mousedown', function(e){ down=true; moved=false; sx=e.pageX; ss=track.scrollLeft; track.classList.add('is-dragging'); });\n    window.addEventListener('mousemove', function(e){ if(!down) return; var d=e.pageX-sx; if(Math.abs(d)>3) moved=true; track.scrollLeft = ss-d; });\n    window.addEventListener('mouseup', function(){ down=false; track.classList.remove('is-dragging'); });\n    track.addEventListener('click', function(e){ if(moved){ e.preventDefault(); e.stopPropagation(); } }, true);\n    if(root.dataset.autoplay === 'true'){\n      var ms = parseInt(root.dataset.autoplayMs,10) || 4000;\n      var paused=false;\n      track.addEventListener('mouseenter', function(){ paused=true; });\n      track.addEventListener('mouseleave', function(){ paused=false; });\n      setInterval(function(){\n        if(paused) return;\n        if(track.scrollLeft + track.clientWidth >= track.scrollWidth - 4){ track.scrollTo({left:0, behavior:'smooth'}); }\n        else { track.scrollBy({left: step(), behavior:'smooth'}); }\n      }, ms);\n    }\n  });\n\n  /* =========== Review carousel =========== */\n  reg('.rc', function(root){\n    var track = root.querySelector('.rc__track');\n    var prev  = root.querySelector('.rc__nav--prev');\n    var next  = root.querySelector('.rc__nav--next');\n    if(!track) return;\n    function step(){ var c = track.querySelector('.rc__card'); return c? c.getBoundingClientRect().width + 12 : track.clientWidth; }\n    if(prev) prev.addEventListener('click', function(){ track.scrollBy({left:-step(), behavior:'smooth'}); });\n    if(next) next.addEventListener('click', function(){ track.scrollBy({left: step(), behavior:'smooth'}); });\n    var down=false, sx=0, ss=0, moved=false;\n    track.addEventListener('mousedown', function(e){ down=true; moved=false; sx=e.pageX; ss=track.scrollLeft; track.classList.add('is-dragging'); });\n    window.addEventListener('mousemove', function(e){ if(!down) return; var d=e.pageX-sx; if(Math.abs(d)>3) moved=true; track.scrollLeft = ss-d; });\n    window.addEventListener('mouseup', function(){ down=false; track.classList.remove('is-dragging'); });\n    track.addEventListener('click', function(e){ if(moved) e.preventDefault(); }, true);\n    if(root.dataset.autoplay === 'true'){\n      var ms = parseInt(root.dataset.autoplayMs,10) || 4000;\n      var paused=false;\n      track.addEventListener('mouseenter', function(){ paused=true; });\n      track.addEventListener('mouseleave', function(){ paused=false; });\n      setInterval(function(){\n        if(paused) return;\n        if(track.scrollLeft + track.clientWidth >= track.scrollWidth - 4){ track.scrollTo({left:0, behavior:'smooth'}); }\n        else { track.scrollBy({left: step(), behavior:'smooth'}); }\n      }, ms);\n    }\n  });\n\n  /* =========== Discount code copy button =========== */\n  reg('.dc', function(root){\n    root.addEventListener('click', function(e){\n      var btn = e.target.closest('.dc__copy');\n      if(!btn) return;\n      e.preventDefault();\n      var code = btn.getAttribute('data-dc-target') || '';\n      var label = btn.querySelector('.dc__copy-label');\n      var copy = function(){\n        if(navigator.clipboard && navigator.clipboard.writeText) return navigator.clipboard.writeText(code);\n        var t = document.createElement('textarea'); t.value = code; document.body.appendChild(t); t.select();\n        try { document.execCommand('copy'); } catch(_){}\n        document.body.removeChild(t);\n        return Promise.resolve();\n      };\n      copy().then(function(){\n        if(label){ var prev = label.textContent; label.textContent = 'Copied!'; setTimeout(function(){ label.textContent = prev; }, 1600); }\n      });\n    });\n  });\n\n  /* =========== Product Tabs =========== */\n  reg('.ptabs', function(root){\n    root.addEventListener('click', function(e){\n      var btn = e.target.closest('[data-ptab-target]');\n      if(!btn) return;\n      var sel = btn.getAttribute('data-ptab-target');\n      root.querySelectorAll('.nav-link').forEach(function(b){ b.classList.remove('active'); b.setAttribute('aria-selected','false'); });\n      root.querySelectorAll('.ptabs__body').forEach(function(p){ p.classList.add('d-none'); p.classList.remove('d-block'); });\n      btn.classList.add('active'); btn.setAttribute('aria-selected','true');\n      var t = root.querySelector(sel);\n      if(t){ t.classList.add('d-block'); t.classList.remove('d-none'); }\n    });\n  });\n\n  /* =========== Estimated Delivery Date =========== */\n  reg('.edd', function(root){\n    var min = parseInt(root.dataset.min,10);\n    var max = parseInt(root.dataset.max,10);\n    var cutoff = parseInt(root.dataset.cutoff,10);\n    var cdEl = root.querySelector('[data-edd-countdown]');\n    var rangeEl = root.querySelector('[data-edd-range]');\n    if(!(min > 0 && max > 0)) return;\n    function fmt(d){\n      var months = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];\n      var days = ['Sun','Mon','Tue','Wed','Thu','Fri','Sat'];\n      var dn = d.getDate();\n      var suf = (dn%10==1 && dn!=11)? 'st' : (dn%10==2 && dn!=12)? 'nd' : (dn%10==3 && dn!=13)? 'rd' : 'th';\n      return days[d.getDay()] + ' ' + dn + suf + ' ' + months[d.getMonth()];\n    }\n    function pad(n){ return n<10? '0'+n : ''+n; }\n    function compute(){\n      var now = new Date();\n      var cutoffToday = new Date(now); cutoffToday.setHours(cutoff,0,0,0);\n      var orderFromDate = new Date(now);\n      if(now > cutoffToday){ orderFromDate.setDate(orderFromDate.getDate()+1); cutoffToday = new Date(cutoffToday); cutoffToday.setDate(cutoffToday.getDate()+1); }\n      var dMin = new Date(orderFromDate); dMin.setDate(dMin.getDate()+min);\n      var dMax = new Date(orderFromDate); dMax.setDate(dMax.getDate()+max);\n      if(rangeEl) rangeEl.textContent = fmt(dMin) + ' and ' + fmt(dMax);\n      if(cdEl){\n        var diff = cutoffToday.getTime() - now.getTime(); if(diff < 0) diff = 0;\n        var totalSec = Math.floor(diff/1000), h = Math.floor(totalSec/3600), m = Math.floor((totalSec%3600)/60), s = totalSec%60;\n        cdEl.textContent = pad(h)+':'+pad(m)+':'+pad(s);\n      }\n    }\n    compute();\n    if(cdEl) setInterval(compute, 1000);\n  });\n\n  /* =========== Judge.me rating pill \u2014 click \u2192 scroll to reviews =========== */\n  reg('.jmr', function(root){\n    var btn = root.querySelector('.jmr__pill');\n    if(!btn) return;\n    btn.addEventListener('click', function(e){\n      e.preventDefault();\n      var selectors = ['#judgeme_product_reviews_widget','.jdgm-rev-widg','.jdgm-all-reviews-rating',\n        '[id^=\"shopify-block-judge_me_reviews_featured_carousel\"]','[id^=\"shopify-block-judge_me_reviews\"]',\n        '[id^=\"shopify-section-\"][id*=\"product_reviews\"]','[id^=\"shopify-section-\"][id*=\"reviews\"]',\n        '#product-reviews-mount','#ss-reviews','.jdgm-widget'];\n      var target = null;\n      for(var i=0;i<selectors.length && !target;i++){\n        var els = document.querySelectorAll(selectors[i]);\n        for(var k=0;k<els.length;k++){\n          var r = els[k].getBoundingClientRect();\n          if(r.width > 50 && r.height > 50){ target = els[k]; break; }\n        }\n      }\n      if(!target) return;\n      var top = window.pageYOffset + target.getBoundingClientRect().top - 80;\n      window.scrollTo({ top: top, behavior: 'smooth' });\n    });\n  });\n\n  /* =========== Bootstrap inits for runtime-injected components =========== */\n  reg('.jh-typewriter, typewriter-text, price-pro, qty-breaks-pro', function(){\n    /* Custom elements auto-upgrade \u2014 this entry just marks them as scanned. */\n  });\n\n  /* =========== Product reviews mount (#ss-reviews placeholder) =========== */\n  // Uses _reviewsHTMLCache captured at script-load time (above) so the\n  // template content is preserved even after the section's own DOMContentLoaded\n  // handler runs. We only re-inject when NO `reviews-body-*` exists anywhere\n  // (e.g. inside a quick-view modal) \u2014 prevents double-render on regular page.\n  function initSwiperOnReviews(root){\n    if(typeof window.Swiper !== 'function') return;\n    var sliders = (root || document).querySelectorAll('[class*=\"reviews-slider-\"]');\n    sliders.forEach(function(slider){\n      if(slider.__jhSwiper) return;\n      slider.__jhSwiper = true;\n      try {\n        var cls = slider.className.split(/\\s+/).find(function(c){ return c.indexOf('reviews-slider-') === 0; });\n        if(!cls) return;\n        var sectionId = cls.replace('reviews-slider-','');\n        new window.Swiper('.' + cls, {\n          speed: 200,\n          slidesPerView: 'auto',\n          navigation: {\n            nextEl: '.reviews-btn-next-' + sectionId,\n            prevEl: '.reviews-btn-prev-' + sectionId,\n          },\n        });\n      } catch(e){ console.warn('swiper init', e); }\n    });\n  }\n\n  reg('#ss-reviews', function(mount){\n    if(!_reviewsHTMLCache) return;\n    var scope = mount.closest('product-form, .product, [data-quick-view-contents], .modal-body') || mount.parentNode;\n    // If section's handler already injected reviews-body in this scope, init Swiper and bail.\n    var existing = scope.querySelectorAll('[id^=\"reviews-body-\"]');\n    if(existing.length > 0){\n      // Belt-and-suspenders: remove any duplicate reviews-body in this scope\n      for(var i=1; i<existing.length; i++){ existing[i].remove(); }\n      initSwiperOnReviews(scope);\n      return;\n    }\n    // Bail if mount already has children\n    if(mount.children.length > 0) return;\n    var tmp = document.createElement('div');\n    tmp.innerHTML = _reviewsHTMLCache;\n    while(tmp.firstChild){\n      mount.parentNode.insertBefore(tmp.firstChild, mount.nextSibling);\n    }\n    // After insertion, init Swiper on the newly-inserted slider(s)\n    setTimeout(function(){ initSwiperOnReviews(mount.parentNode); }, 50);\n  });\n\n  /* ============ Boot ============ */\n  // IMPORTANT: the product-reviews section uses `window.addEventListener(\n  // 'DOMContentLoaded', ...)` (BUBBLE phase). If we use document.addEventListener\n  // we fire in TARGET phase \u2014 BEFORE the section's handler \u2014 which causes us to\n  // inject reviews first and then the section also injects \u2192 double render.\n  // To always run AFTER the section, we:\n  //   a) listen on `window` too (matches the section's target)\n  //   b) wrap in a setTimeout(0) so even if our window listener was registered\n  //      before the section's, the timeout pushes us into the next macrotask,\n  //      after all DOMContentLoaded listeners finish.\n  function boot(){ setTimeout(scan, 0); }\n  if(document.readyState === 'complete'){\n    boot();\n  } else {\n    window.addEventListener('DOMContentLoaded', boot);\n    window.addEventListener('load', boot);\n  }\n\n  if('MutationObserver' in window){\n    var mo = new MutationObserver(function(muts){\n      var run = false;\n      for(var i=0;i<muts.length;i++){ if(muts[i].addedNodes && muts[i].addedNodes.length){ run = true; break; } }\n      if(run) scan();\n    });\n    mo.observe(document.body, { childList: true, subtree: true });\n  }\n\n  window.JhBlocks = { register: reg, scan: scan };\n})();\n"],
  "mappings": "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",
  "names": []
}
