{
  "version": 3,
  "sources": ["/cdn/shop/t/14/assets/hr-product-lineup-owned.js?qa=25312d6"],
  "sourcesContent": ["(() => {\n  const ROOT_SELECTOR = '[data-hr-product-lineup-owned]';\n  const INITIALIZED_ATTRIBUTE = 'data-hr-lineup-initialized';\n  const EYEBROW_RID = '1231aa69-6bc9-4169-aa8d-fdf6886fbbca';\n  const BRAND_RID = '0140d19e-5d36-45ec-80f1-e52fc33f1c0b';\n  const TRADEMARK_RID = 'ada69e85-30bc-4f9b-8329-82ce96c27374';\n  const TITLE_RID = '1f62ba53-90b4-411e-a068-e8bd52216fd4';\n  const SUMMARY_RID = '16b9d060-dc5a-440b-a105-116d32d85f0b';\n  const BULLET_HEADING_RID = '3aab2460-40f7-41e4-bf29-1c496bfc3f3b';\n  const BULLET_RIDS = [\n    '2f37d9a9-6022-4cc8-a381-d7f419882d64',\n    '1c8590be-a87b-44ef-b188-6bfab6484e0e',\n    'd8a2540b-ccf3-4613-a2d9-85494d1fb3c1',\n    'bfd02069-dbe7-43cb-aaab-163341a85bd6',\n  ];\n  const DESCRIPTION_RID = '44a9cfba-1a7b-4ac2-a493-3f22e23dfd99';\n  const ONE_TIME_RID = 'd5ee2ae8-b433-4951-b617-d31abfd32770';\n  const ONE_TIME_SELECTED_CLASS = 'r-1lz2b66';\n  const ONE_TIME_PRICE_RID = 'e2d6f936-6dd5-4ec1-a845-f1374f14d51b';\n  const ATC_RID = 'e7e19110-224d-48bd-8fbd-e6f538fcee40';\n  const ATC_LABEL_RID = '087402d9-16cc-4f4f-b863-c581225fa42a';\n  const SHOP_NOW_TARGET_RID = '2f696450-80fb-4fdc-ad26-2829c699d7a0';\n  const SHOP_NOW_RIDS = [\n    'c2fac1c1-9125-4cb1-93b0-c64070297931',\n    '00ae44c1-98f0-4b6f-83be-971f777bb0a5',\n    '9ec30e6d-b30a-4163-a5ba-1578f3c87088',\n    '2ae12040-7252-42ec-88f7-752e9a273b42',\n    '5c2ad3f4-eb8e-49a3-99c3-fbf4343569e6',\n  ];\n  const PRODUCT_LINKS = {\n    'c6dd9eaf-de03-4dd1-8ffa-e60a75f8b0e4': 'rush',\n    'd867556e-5d41-4aec-a7e1-54e6ff633640': 'vibe',\n  };\n  const THUMBNAIL_SELECTED_CLASS = 'r-8awaoj';\n  const POTENCY_PHRASE = '50MG Fast-Acting Nano THC';\n  const DELIVERY_RID = 'c302db94-4852-474d-b813-edde0479548a';\n  const MARQUEE_BUNDLE_RID = 'fde8d5cc-f20b-4b4b-8bf9-f96075d74efc';\n  const MARQUEE_PURCHASE_RID = 'a266bcb5-a97b-4f4b-9617-aa73fdc761c8';\n  const MARQUEE_STATUS_RID = '8c187b43-98e4-41e1-bdbe-caa29a2967f4';\n  const CALORIES_RID = '822d98f1-3238-495b-bca1-df852079636f';\n  const EFFECT_HEADING_RID = '59032739-8ada-4bf6-a1c3-0b111b2598ec';\n  const EFFECT_BODY_RID = 'aeed331d-3455-4d75-a26a-8d0e90ada84b';\n  const GROUP_BODY_RID = 'bcfc8aac-a443-45c4-b2e2-bc0a49a46e36';\n  const ONSET_HEADING_RID = 'd61a3fae-eff0-42a6-8d0c-30935e508488';\n  const ONSET_VALUE_RID = '5482c145-4f69-44aa-b402-376d2e79f843';\n  const TRAVEL_BODY_RID = 'b178daa3-e61d-4e4e-a22b-370dff663407';\n  const SPARKLAYER_WRAPPER_RID = '9d769cf1-1ed9-4d88-a2c7-4445f01a6857';\n  const REQUIRED_REFERENCE_RIDS = [\n    EYEBROW_RID,\n    TITLE_RID,\n    SUMMARY_RID,\n    ONE_TIME_RID,\n    ONE_TIME_PRICE_RID,\n    ATC_RID,\n    ATC_LABEL_RID,\n  ];\n\n  const byRid = (root, rid) => root.querySelector(`[data-rid=\"${rid}\"]`);\n  const byRidAll = (root, rid) => root.querySelectorAll(`[data-rid=\"${rid}\"]`);\n\n  const onKeyboardActivate = (element, callback) => {\n    element.addEventListener('keydown', (event) => {\n      if (event.key !== 'Enter' && event.key !== ' ') return;\n      event.preventDefault();\n      callback(event);\n    });\n  };\n\n  const getConfig = (root) => {\n    const configElement = root.querySelector('[data-hr-product-lineup-config]');\n    if (!configElement) return null;\n    try {\n      return JSON.parse(configElement.textContent);\n    } catch (error) {\n      console.error('[High Rider LINEUP] Invalid product configuration.', error);\n      return null;\n    }\n  };\n\n  const formatMoney = (cents, moneyFormat) => {\n    const amount = Number(cents || 0) / 100;\n    const withCommas = amount.toLocaleString('en-US', {\n      minimumFractionDigits: 2,\n      maximumFractionDigits: 2,\n    });\n    const withoutTrailingZeros = amount.toLocaleString('en-US', {\n      minimumFractionDigits: 0,\n      maximumFractionDigits: 2,\n    });\n    const format = moneyFormat || '${{amount}}';\n\n    return format\n      .replace(/\\{\\{\\s*amount_no_decimals\\s*\\}\\}/g, Math.round(amount).toLocaleString('en-US'))\n      .replace(/\\{\\{\\s*amount_with_comma_separator\\s*\\}\\}/g, withCommas.replace(/,/g, 'X').replace(/\\./g, ',').replace(/X/g, '.'))\n      .replace(/\\{\\{\\s*amount_no_decimals_with_comma_separator\\s*\\}\\}/g, Math.round(amount).toLocaleString('de-DE'))\n      .replace(/\\{\\{\\s*amount\\s*\\}\\}/g, withCommas)\n      .replace(/\\{\\{\\s*amount_with_apostrophe_separator\\s*\\}\\}/g, withCommas.replace(/,/g, \"'\"))\n      .replace(/\\{\\{\\s*amount_no_decimals_with_space_separator\\s*\\}\\}/g, Math.round(amount).toLocaleString('fr-FR'))\n      .replace(/\\{\\{\\s*amount_with_space_separator\\s*\\}\\}/g, withCommas.replace(/,/g, ' '))\n      .replace(/\\{\\{\\s*amount_no_trailing_zeros\\s*\\}\\}/g, withoutTrailingZeros);\n  };\n\n  const setParagraph = (element, text) => {\n    if (!element) return;\n    const paragraph = element.querySelector('p');\n    if (paragraph) paragraph.textContent = text;\n    else element.textContent = text;\n  };\n\n  const setAllParagraphs = (root, rid, text) => {\n    byRidAll(root, rid).forEach((element) => setParagraph(element, text));\n  };\n\n  const setStrongParagraph = (element, text) => {\n    const paragraph = element?.querySelector('p');\n    if (!paragraph) {\n      setParagraph(element, text);\n      return;\n    }\n    paragraph.textContent = '';\n    const strong = document.createElement('strong');\n    strong.textContent = text;\n    paragraph.append(strong);\n  };\n\n  const hideElement = (element) => {\n    if (!element) return;\n    element.hidden = true;\n    element.setAttribute('data-hr-lineup-hidden', 'true');\n  };\n\n  const validateReference = (root) => {\n    const missingRids = REQUIRED_REFERENCE_RIDS.filter((rid) => !byRid(root, rid));\n    if (missingRids.length) {\n      throw new Error(`Required reference elements are missing: ${missingRids.join(', ')}`);\n    }\n  };\n\n  const generalizePotencyCopy = (root) => {\n    const visit = (node) => {\n      if (node.nodeName === 'SCRIPT' || node.nodeName === 'STYLE') return;\n      if (node.nodeType === Node.TEXT_NODE) {\n        node.nodeValue = node.nodeValue\n          .replaceAll(POTENCY_PHRASE, 'Fast-Acting Nano THC')\n          .replaceAll('farm bill complaint hemp', 'Farm Bill-compliant hemp')\n          .replaceAll('unsatisified', 'unsatisfied');\n        return;\n      }\n      node.childNodes.forEach(visit);\n    };\n    visit(root);\n  };\n\n  const applyLineupClaims = (root, config) => {\n    const available = Boolean(config.variant?.available);\n    setAllParagraphs(root, DELIVERY_RID, available ? 'Delivery in 3-5 business days' : 'Currently sold out');\n    setAllParagraphs(root, MARQUEE_BUNDLE_RID, '6 Shots. One Box.');\n    setAllParagraphs(root, MARQUEE_PURCHASE_RID, 'One-Time Purchase');\n    setAllParagraphs(root, MARQUEE_STATUS_RID, available ? 'In Stock, Fast Shipping' : 'Currently Sold Out');\n    setAllParagraphs(root, CALORIES_RID, '30\u201345 Cals');\n    setAllParagraphs(root, EFFECT_HEADING_RID, 'CHOOSE YOUR RIDE, YOUR WAY');\n    setAllParagraphs(\n      root,\n      EFFECT_BODY_RID,\n      'The Lineup brings together 10MG, 20MG, and 50MG shots so you can choose the labeled strength that fits the moment.',\n    );\n    setAllParagraphs(\n      root,\n      GROUP_BODY_RID,\n      'Perfect for group hangs where different adults want different options. Each person can choose the labeled strength that suits them.',\n    );\n    setAllParagraphs(root, ONSET_HEADING_RID, 'FAST-ACTING NANO-TECH, DESIGNED FOR A SMOOTH ONSET');\n    setAllParagraphs(root, ONSET_VALUE_RID, 'About 15 Min');\n    setAllParagraphs(\n      root,\n      TRAVEL_BODY_RID,\n      'At only 2 ounces, High Rider bottles are compact and easy to pack for local plans. Keep products sealed and follow all applicable laws and travel rules.',\n    );\n  };\n\n  const applyProductCopy = (root, config) => {\n    const parsed = new DOMParser().parseFromString(config.descriptionHtml || '', 'text/html');\n    const summary = parsed.querySelector('p')?.textContent.replace(/\\s+/g, ' ').trim();\n    const bullets = [...parsed.querySelectorAll('li strong')]\n      .map((element) => element.textContent.replace(/\\s+/g, ' ').trim().replace(/\\.$/, ''))\n      .filter(Boolean);\n    const descriptionText = parsed.body.textContent || '';\n    if (/third-party lab tested/i.test(descriptionText)\n      && !bullets.some((bullet) => /third-party lab tested/i.test(bullet))) {\n      bullets.push('Third-party lab tested');\n    }\n\n    const quantities = bullets.reduce((total, bullet) => {\n      const match = bullet.match(/^(\\d+)\\s*[\u00D7x]/i);\n      return total + (match ? Number(match[1]) : 0);\n    }, 0);\n\n    setParagraph(byRid(root, EYEBROW_RID), quantities > 0 ? `${quantities} Shots. One Box.` : 'The Lineup');\n    hideElement(byRid(root, BRAND_RID));\n    hideElement(byRid(root, TRADEMARK_RID));\n    setParagraph(byRid(root, TITLE_RID), 'THE LINEUP BUNDLE');\n    if (summary) setParagraph(byRid(root, SUMMARY_RID), summary);\n    setParagraph(byRid(root, BULLET_HEADING_RID), \"What's in the box\");\n\n    BULLET_RIDS.forEach((rid, index) => {\n      const element = byRid(root, rid);\n      const bullet = bullets[index];\n      if (!element) return;\n      if (!bullet) {\n        hideElement(element.parentElement || element);\n        return;\n      }\n      setStrongParagraph(element, bullet);\n    });\n\n    const description = byRid(root, DESCRIPTION_RID);\n    if (description && config.descriptionHtml) {\n      const container = document.createElement('div');\n      container.className = 'hr-lineup-description';\n      container.innerHTML = config.descriptionHtml;\n      description.replaceChildren(container);\n    }\n  };\n\n  const initializeCarousel = (root, config) => {\n    let revealTimeoutId = null;\n    const revealCarousel = () => {\n      if (revealTimeoutId !== null) window.clearTimeout(revealTimeoutId);\n      root.setAttribute('data-hr-lineup-gallery-ready', 'true');\n    };\n    const media = Array.isArray(config.media) ? config.media.filter((item) => item?.url) : [];\n    const carousel = root.querySelector('[data-replo-carousel=\"true\"]');\n    if (!carousel || !media.length) {\n      throw new Error('Required Lineup carousel configuration is missing.');\n    }\n\n    const mainTrack = carousel.querySelector('[data-replo-part=\"slide-track\"][data-replo-root-id*=\"R2fmsj2\"]');\n    const thumbnailTrack = carousel.querySelector('[data-replo-part=\"slide-track\"][data-replo-root-id*=\"Rnmsj2\"]');\n    const mainTemplate = mainTrack?.querySelector('[data-replo-part=\"slide\"]');\n    const thumbnailTemplate = thumbnailTrack?.querySelector('[data-replo-part=\"slide\"]');\n    if (!mainTrack || !thumbnailTrack || !mainTemplate || !thumbnailTemplate) {\n      throw new Error('Required Lineup carousel structure is missing.');\n    }\n\n    const liveRegion = carousel.querySelector('[aria-live=\"polite\"]');\n    const previousButton = carousel.querySelector('[data-direction=\"previous\"]');\n    const nextButton = carousel.querySelector('[data-direction=\"next\"]');\n    const reducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)');\n    let activeIndex = 0;\n\n    const makeSlide = (template, item, index, isThumbnail) => {\n      const slide = template.cloneNode(true);\n      const image = slide.querySelector('img');\n      const picture = slide.querySelector('picture');\n      slide.id = `hr-lineup-${isThumbnail ? 'thumbnail' : 'gallery'}-${index + 1}`;\n      slide.dataset.slideIndex = String(index);\n      slide.dataset.isActive = index === 0 ? 'true' : 'false';\n      slide.dataset.hrLineupSlide = String(index);\n      slide.removeAttribute('data-is-cloned');\n      slide.setAttribute('aria-label', `Slide ${index + 1}`);\n      slide.tabIndex = isThumbnail ? 0 : -1;\n      if (isThumbnail) {\n        slide.removeAttribute('aria-hidden');\n        slide.setAttribute('role', 'button');\n        slide.setAttribute('aria-label', `View product image ${index + 1}`);\n        slide.setAttribute('aria-current', index === 0 ? 'true' : 'false');\n        slide.setAttribute('aria-pressed', index === 0 ? 'true' : 'false');\n        slide.dataset.hrLineupThumbnail = 'true';\n        slide.firstElementChild?.classList.toggle(THUMBNAIL_SELECTED_CLASS, index === 0);\n      } else {\n        slide.setAttribute('aria-hidden', index === 0 ? 'false' : 'true');\n      }\n      if (picture) picture.removeAttribute('id');\n      if (image) {\n        image.src = isThumbnail ? item.thumbnailUrl || item.url : item.url;\n        image.alt = item.alt || config.title || 'The Lineup Bundle';\n        image.loading = index === 0 && !isThumbnail ? 'eager' : 'lazy';\n        image.draggable = false;\n        image.removeAttribute('srcset');\n        image.removeAttribute('sizes');\n      }\n      slide.querySelectorAll('source').forEach((source) => source.remove());\n      return slide;\n    };\n\n    const mainSlides = media.map((item, index) => makeSlide(mainTemplate, item, index, false));\n    const thumbnailSlides = media.map((item, index) => makeSlide(thumbnailTemplate, item, index, true));\n    mainTrack.replaceChildren(...mainSlides);\n    thumbnailTrack.replaceChildren(...thumbnailSlides);\n\n    const setActive = (nextIndex, shouldFocusThumbnail = false) => {\n      activeIndex = (nextIndex + mainSlides.length) % mainSlides.length;\n      mainTrack.style.transitionDuration = reducedMotion.matches ? '0ms' : '300ms';\n      mainTrack.style.transitionProperty = 'transform';\n      mainTrack.style.transform = `translate3d(-${activeIndex * 100}%, 0, 0)`;\n      mainSlides.forEach((slide, index) => {\n        const isActive = index === activeIndex;\n        slide.dataset.isActive = String(isActive);\n        slide.setAttribute('aria-hidden', String(!isActive));\n      });\n      thumbnailSlides.forEach((slide, index) => {\n        const isActive = index === activeIndex;\n        slide.dataset.isActive = String(isActive);\n        slide.setAttribute('aria-current', String(isActive));\n        slide.setAttribute('aria-pressed', String(isActive));\n        slide.firstElementChild?.classList.toggle(THUMBNAIL_SELECTED_CLASS, isActive);\n        if (isActive && thumbnailTrack.parentElement) {\n          thumbnailTrack.parentElement.scrollTo({\n            left: slide.offsetLeft,\n            behavior: reducedMotion.matches ? 'auto' : 'smooth',\n          });\n        }\n      });\n      if (liveRegion) liveRegion.textContent = `Slide ${activeIndex + 1} of ${mainSlides.length}`;\n      if (shouldFocusThumbnail) thumbnailSlides[activeIndex]?.focus({ preventScroll: true });\n    };\n\n    thumbnailSlides.forEach((slide, index) => {\n      slide.addEventListener('click', () => setActive(index));\n      onKeyboardActivate(slide, () => setActive(index));\n      slide.addEventListener('keydown', (event) => {\n        if (event.key !== 'ArrowLeft' && event.key !== 'ArrowRight') return;\n        event.preventDefault();\n        setActive(index + (event.key === 'ArrowRight' ? 1 : -1), true);\n      });\n    });\n    previousButton?.addEventListener('click', () => setActive(activeIndex - 1));\n    nextButton?.addEventListener('click', () => setActive(activeIndex + 1));\n\n    let pointerState = null;\n    const restoreActiveSlide = () => {\n      if (!pointerState) return;\n      pointerState = null;\n      setActive(activeIndex);\n    };\n\n    mainTrack.addEventListener('pointerdown', (event) => {\n      if (event.button !== 0 || pointerState) return;\n      pointerState = {\n        id: event.pointerId,\n        startX: event.clientX,\n        startY: event.clientY,\n        direction: null,\n      };\n      mainTrack.setPointerCapture?.(event.pointerId);\n      mainTrack.style.transitionDuration = '0ms';\n    });\n\n    mainTrack.addEventListener('pointermove', (event) => {\n      if (!pointerState || pointerState.id !== event.pointerId) return;\n      const distanceX = event.clientX - pointerState.startX;\n      const distanceY = event.clientY - pointerState.startY;\n      if (!pointerState.direction && Math.max(Math.abs(distanceX), Math.abs(distanceY)) >= 8) {\n        pointerState.direction = Math.abs(distanceX) > Math.abs(distanceY) ? 'horizontal' : 'vertical';\n      }\n      if (pointerState.direction !== 'horizontal') return;\n      event.preventDefault();\n      const previewDistance = Math.max(-140, Math.min(140, distanceX));\n      mainTrack.style.transform = `translate3d(calc(-${activeIndex * 100}% + ${previewDistance}px), 0, 0)`;\n    });\n\n    mainTrack.addEventListener('pointerup', (event) => {\n      if (!pointerState || pointerState.id !== event.pointerId) return;\n      const distanceX = event.clientX - pointerState.startX;\n      const direction = pointerState.direction;\n      pointerState = null;\n      if (mainTrack.hasPointerCapture?.(event.pointerId)) mainTrack.releasePointerCapture(event.pointerId);\n      if (direction !== 'horizontal' || Math.abs(distanceX) < 45) {\n        setActive(activeIndex);\n        return;\n      }\n      setActive(activeIndex + (distanceX < 0 ? 1 : -1));\n    });\n    mainTrack.addEventListener('pointercancel', restoreActiveSlide);\n    mainTrack.addEventListener('lostpointercapture', restoreActiveSlide);\n\n    setActive(0);\n    const firstImage = mainSlides[0]?.querySelector('img');\n    if (!firstImage || firstImage.complete) {\n      revealCarousel();\n    } else {\n      firstImage.addEventListener('load', revealCarousel, { once: true });\n      firstImage.addEventListener('error', revealCarousel, { once: true });\n      revealTimeoutId = window.setTimeout(revealCarousel, 1500);\n    }\n  };\n\n  const initializeCollapsibles = (root) => {\n    root.querySelectorAll('[data-replo-collapsible=\"true\"]').forEach((collapsible) => {\n      if (collapsible.hasAttribute('data-hr-lineup-hidden')) return;\n      const trigger = Array.from(collapsible.children).find((child) => child.matches('[role=\"button\"][aria-controls]'));\n      if (!trigger) return;\n      const panelId = trigger.getAttribute('aria-controls');\n      const panel = panelId ? root.querySelector(`#${CSS.escape(panelId)}`) : null;\n      if (!panel) return;\n      const iconPath = trigger.querySelector('svg path')?.getAttribute('d') || '';\n      trigger.dataset.hrLineupIcon = iconPath.includes('v3h3') || iconPath.includes('v-3h-3') ? 'plus' : 'chevron';\n      const setExpanded = (expanded) => {\n        collapsible.dataset.state = expanded ? 'open' : 'closed';\n        trigger.setAttribute('aria-expanded', String(expanded));\n        panel.hidden = !expanded;\n      };\n      trigger.setAttribute('aria-expanded', 'false');\n      setExpanded(collapsible.dataset.state === 'open' && !panel.hidden);\n      const toggle = () => setExpanded(trigger.getAttribute('aria-expanded') !== 'true');\n      trigger.addEventListener('click', toggle);\n      onKeyboardActivate(trigger, toggle);\n    });\n  };\n\n  const initializeNavigation = (root, config) => {\n    const smoothBehavior = window.matchMedia('(prefers-reduced-motion: reduce)').matches ? 'auto' : 'smooth';\n    const shopNowTarget = byRid(root, SHOP_NOW_TARGET_RID);\n    if (shopNowTarget) shopNowTarget.id = 'hr-lineup-shop-now';\n    if (shopNowTarget && !shopNowTarget.hasAttribute('tabindex')) shopNowTarget.tabIndex = -1;\n\n    SHOP_NOW_RIDS.forEach((rid) => {\n      const control = byRid(root, rid);\n      if (!control || !shopNowTarget) return;\n      control.setAttribute('role', control.tagName === 'A' ? 'link' : 'button');\n      if (!control.hasAttribute('tabindex')) control.tabIndex = 0;\n      control.setAttribute('aria-controls', shopNowTarget.id);\n      if (control.tagName === 'A') control.setAttribute('href', `#${shopNowTarget.id}`);\n      const activate = (event) => {\n        event.preventDefault();\n        shopNowTarget.scrollIntoView({ behavior: smoothBehavior, block: 'start' });\n        window.setTimeout(() => shopNowTarget.focus({ preventScroll: true }), smoothBehavior === 'smooth' ? 500 : 0);\n      };\n      control.addEventListener('click', activate);\n      onKeyboardActivate(control, activate);\n    });\n\n    Object.entries(PRODUCT_LINKS).forEach(([rid, routeKey]) => {\n      const control = byRid(root, rid);\n      const href = config.routes?.[routeKey];\n      if (!control || !href) return;\n      control.setAttribute('role', 'link');\n      if (!control.hasAttribute('tabindex')) control.tabIndex = 0;\n      if (control.tagName === 'A') control.setAttribute('href', href);\n      const activate = (event) => {\n        event.preventDefault();\n        window.location.assign(href);\n      };\n      control.addEventListener('click', activate);\n      onKeyboardActivate(control, activate);\n    });\n  };\n\n  const initializeReviews = (root) => {\n    root.querySelectorAll('.jdgm-preview-badge').forEach((badge) => {\n      badge.setAttribute('role', 'link');\n      badge.setAttribute('tabindex', '0');\n      badge.setAttribute('aria-controls', 'judgeme_product_reviews');\n      const activate = (event) => {\n        const widget = document.getElementById('judgeme_product_reviews') || document.querySelector('.jdgm-review-widget');\n        if (!widget) return;\n        event.preventDefault();\n        widget.scrollIntoView({\n          behavior: window.matchMedia('(prefers-reduced-motion: reduce)').matches ? 'auto' : 'smooth',\n          block: 'start',\n        });\n      };\n      badge.addEventListener('click', activate);\n      onKeyboardActivate(badge, activate);\n    });\n  };\n\n  const initializePurchase = (root, config) => {\n    const form = root.querySelector('form[action*=\"/cart/add\"]');\n    const variantInput = form?.querySelector('input[name=\"id\"]');\n    const quantityInput = form?.querySelector('input[name=\"quantity\"]');\n    const sellingPlanInput = form?.querySelector('input[name=\"selling_plan\"]');\n    const addButton = byRid(root, ATC_RID);\n    const buttonLabel = byRid(root, ATC_LABEL_RID);\n    const oneTimeControl = byRid(root, ONE_TIME_RID);\n    const priceElement = byRid(root, ONE_TIME_PRICE_RID);\n    const variant = config.variant || {};\n    const offer = config.offer || {};\n    const discountPercent = Number(offer.discountPercent || 0);\n    const offerEnabled = Boolean(offer.enabled && offer.discountCode);\n    const offerTokenProperty = '_hr_lineup_offer';\n    if (!addButton || !buttonLabel || !variant.id) {\n      throw new Error('Required one-time purchase controls are missing.');\n    }\n    if (offer.enabled && (!offerEnabled || discountPercent <= 0 || discountPercent >= 100)) {\n      throw new Error('The Lineup offer configuration is incomplete.');\n    }\n\n    const discountedUnitPrice = (cents) => {\n      const unitPrice = Number(cents || 0);\n      const discountAmount = Math.floor(unitPrice * discountPercent / 100);\n      return unitPrice - discountAmount;\n    };\n    const discountedLinePrice = (cents, itemQuantity) => (\n      discountedUnitPrice(cents) * Number(itemQuantity || 0)\n    );\n    const ensureJsonRoute = (configuredRoute, fallbackRoute) => {\n      const route = configuredRoute || fallbackRoute;\n      return route.endsWith('.js') ? route : `${route}.js`;\n    };\n    const parseCartResponse = async (response, fallbackMessage) => {\n      const responseText = await response.text();\n      let state;\n      try {\n        state = JSON.parse(responseText);\n      } catch (_error) {\n        throw new Error(`Shopify returned an unexpected ${response.status} response.`);\n      }\n      if (!response.ok || state?.status) {\n        throw new Error(state?.description || state?.message || fallbackMessage);\n      }\n      return state;\n    };\n    const postCartJson = async (url, body, fallbackMessage) => {\n      const response = await fetch(url, {\n        method: 'POST',\n        credentials: 'same-origin',\n        headers: {\n          Accept: 'application/json',\n          'Content-Type': 'application/json',\n          'X-Requested-With': 'XMLHttpRequest',\n        },\n        body: JSON.stringify(body),\n      });\n      return parseCartResponse(response, fallbackMessage);\n    };\n    const getCart = async () => {\n      const response = await fetch(ensureJsonRoute(config.routes?.cartJson, '/cart'), {\n        credentials: 'same-origin',\n        cache: 'no-store',\n        headers: {\n          Accept: 'application/json',\n          'X-Requested-With': 'XMLHttpRequest',\n        },\n      });\n      return parseCartResponse(response, 'Unable to verify your cart. Please try again.');\n    };\n    const uniqueCodes = (codes) => {\n      const normalized = new Set();\n      return codes.filter((code) => {\n        const value = String(code || '').trim();\n        const key = value.toLowerCase();\n        if (!value || normalized.has(key)) return false;\n        normalized.add(key);\n        return true;\n      });\n    };\n    const discountCodesFromCart = (cart, appliedOnly = false) => {\n      const codes = (cart?.discount_codes || [])\n        .filter((discount) => !appliedOnly || discount?.applicable !== false)\n        .map((discount) => discount?.code);\n      const applications = [\n        ...(cart?.cart_level_discount_applications || []),\n        ...(cart?.items || []).flatMap((item) => (\n          item?.line_level_discount_allocations || []\n        ).map((allocation) => allocation?.discount_application)),\n      ];\n      applications.forEach((application) => {\n        if (application?.type === 'discount_code') codes.push(application.title);\n      });\n      return uniqueCodes(codes);\n    };\n    const discountCodeSignature = (codes) => uniqueCodes(codes)\n      .map((code) => String(code).toLowerCase())\n      .sort()\n      .join('\\n');\n    const cartLineSignature = (item, parentVariantId = null) => JSON.stringify({\n      variantId: Number(item?.variant_id || item?.id || 0),\n      sellingPlanId: Number(item?.selling_plan_allocation?.selling_plan?.id || 0) || null,\n      parentVariantId: Number(parentVariantId || 0) || null,\n      properties: Object.entries(item?.properties || {})\n        .sort(([left], [right]) => left.localeCompare(right))\n        .map(([key, value]) => [key, String(value)]),\n    });\n    const snapshotCartLines = (cart) => {\n      const lines = new Map();\n      const itemsByKey = new Map((cart?.items || []).map((item) => [item?.key, item]));\n      (cart?.items || []).forEach((item) => {\n        const parentKey = item?.parent_relationship?.parent_key;\n        const parent = parentKey ? itemsByKey.get(parentKey) : null;\n        const parentVariantId = Number(parent?.variant_id || parent?.id || 0) || null;\n        const signature = cartLineSignature(item, parentVariantId);\n        const aggregate = lines.get(signature) || { signature, quantity: 0, finalLinePrice: 0 };\n        aggregate.quantity += Number(item?.quantity || 0);\n        aggregate.finalLinePrice += Number(item?.final_line_price || 0);\n        lines.set(signature, aggregate);\n      });\n      return [...lines.values()];\n    };\n    const createCartSnapshot = (cart) => {\n      const cartItems = cart?.items || [];\n      const itemsByKey = new Map(cartItems.map((item) => [item?.key, item]));\n      const variantLineCounts = cartItems.reduce((counts, item) => {\n        const variantId = Number(item?.variant_id || item?.id || 0);\n        if (variantId) counts.set(variantId, (counts.get(variantId) || 0) + 1);\n        return counts;\n      }, new Map());\n      const items = cartItems.map((item) => {\n        const restoreItem = {\n          id: Number(item?.variant_id || item?.id || 0),\n          quantity: Number(item?.quantity || 0),\n        };\n        if (!restoreItem.id || restoreItem.quantity <= 0) {\n          throw new Error('Your current cart cannot be safely replaced. Please try again.');\n        }\n        if (item?.properties && Object.keys(item.properties).length) {\n          restoreItem.properties = { ...item.properties };\n        }\n        const sellingPlanId = Number(item?.selling_plan_allocation?.selling_plan?.id || 0);\n        if (sellingPlanId) restoreItem.selling_plan = sellingPlanId;\n        const parentKey = item?.parent_relationship?.parent_key;\n        const parent = parentKey ? itemsByKey.get(parentKey) : null;\n        const parentVariantId = Number(parent?.variant_id || parent?.id || 0);\n        if (parentKey && !parentVariantId) {\n          throw new Error('A bundled item in your cart cannot be safely restored.');\n        }\n        if (parentVariantId && variantLineCounts.get(parentVariantId) > 1) {\n          throw new Error('A bundled item in your cart has an ambiguous parent and cannot be safely restored.');\n        }\n        if (parentVariantId) restoreItem.parent_id = parentVariantId;\n        return restoreItem;\n      });\n      items.sort((left, right) => Number(Boolean(left.parent_id)) - Number(Boolean(right.parent_id)));\n      return {\n        items,\n        lines: snapshotCartLines(cart),\n        discountCodes: discountCodesFromCart(cart),\n        appliedDiscountCodes: discountCodesFromCart(cart, true),\n        note: cart?.note || '',\n        attributes: { ...(cart?.attributes || {}) },\n      };\n    };\n    const validateCartSnapshot = (cart, snapshot) => {\n      if (\n        discountCodeSignature(discountCodesFromCart(cart))\n          !== discountCodeSignature(snapshot.discountCodes)\n        || discountCodeSignature(discountCodesFromCart(cart, true))\n          !== discountCodeSignature(snapshot.appliedDiscountCodes)\n      ) {\n        throw new Error('Your previous cart discounts could not be restored exactly.');\n      }\n\n      const currentLines = new Map(snapshotCartLines(cart).map((line) => [line.signature, line]));\n      const changedLine = snapshot.lines.find((line) => {\n        const current = currentLines.get(line.signature);\n        return !current\n          || current.quantity !== line.quantity\n          || current.finalLinePrice !== line.finalLinePrice;\n      });\n      if (changedLine || currentLines.size !== snapshot.lines.length) {\n        throw new Error('Your previous cart items could not be restored exactly.');\n      }\n      const attributeSignature = (attributes) => JSON.stringify(\n        Object.entries(attributes || {})\n          .sort(([left], [right]) => left.localeCompare(right))\n          .map(([key, value]) => [key, String(value)]),\n      );\n      if (\n        String(cart?.note || '') !== String(snapshot.note || '')\n        || attributeSignature(cart?.attributes) !== attributeSignature(snapshot.attributes)\n      ) {\n        throw new Error('Your previous cart details could not be restored exactly.');\n      }\n    };\n    const offerLineFromCart = (cart, offerToken) => (cart?.items || []).find(\n      (item) => item?.properties?.[offerTokenProperty] === offerToken,\n    );\n    const validateOfferLine = (cart, offerToken, offerQuantity) => {\n      const line = offerLineFromCart(cart, offerToken);\n      if (!line || Number(line.quantity) !== Number(offerQuantity)) {\n        throw new Error('The Lineup quantity could not be verified. Please try again.');\n      }\n      return line;\n    };\n    const offerCodeIsApplied = (cart, line) => {\n      const expectedCode = String(offer.discountCode || '').toLowerCase();\n      const explicitCode = (cart?.discount_codes || []).some((discount) => (\n        discount?.applicable !== false && String(discount?.code || '').toLowerCase() === expectedCode\n      ));\n      const applications = [\n        ...(cart?.cart_level_discount_applications || []),\n        ...(line?.line_level_discount_allocations || []).map((allocation) => allocation?.discount_application),\n      ];\n      const applicationCode = applications.some((application) => (\n        application?.type === 'discount_code'\n        && String(application?.title || '').toLowerCase() === expectedCode\n      ));\n      const lineDiscount = (line?.discounts || []).some(\n        (discount) => String(discount?.title || '').toLowerCase() === expectedCode,\n      );\n      return explicitCode || applicationCode || lineDiscount;\n    };\n    const validateOfferCart = (cart, offerToken, offerQuantity) => {\n      const line = validateOfferLine(cart, offerToken, offerQuantity);\n      const activeLines = (cart?.items || []).filter((item) => Number(item?.quantity || 0) > 0);\n      const originalTotal = Number(variant.price || 0) * Number(offerQuantity);\n      const expectedTotal = discountedLinePrice(variant.price, offerQuantity);\n      if (\n        activeLines.length !== 1\n        || activeLines[0] !== line\n        || Number(cart?.item_count || 0) !== Number(offerQuantity)\n        || Number(line.original_line_price) !== originalTotal\n        || Number(line.final_line_price) !== expectedTotal\n        || Number(cart?.total_price) !== expectedTotal\n        || !offerCodeIsApplied(cart, line)\n      ) {\n        throw new Error('Lineup20 could not be verified. Please try again.');\n      }\n      return line;\n    };\n    const cartIsEmpty = (cart) => (\n      Number(cart?.item_count || 0) === 0\n      && (!Array.isArray(cart?.items) || cart.items.length === 0)\n    );\n    const resetCart = async () => {\n      let clearedCart = await postCartJson(\n        ensureJsonRoute(config.routes?.cartClear, '/cart/clear'),\n        {},\n        'Unable to clear your cart. Please try again.',\n      );\n      if (!cartIsEmpty(clearedCart) && Array.isArray(clearedCart?.items)) {\n        const updates = clearedCart.items.reduce((result, item) => {\n          if (item?.key) result[item.key] = 0;\n          return result;\n        }, {});\n        if (Object.keys(updates).length) {\n          clearedCart = await postCartJson(\n            ensureJsonRoute(config.routes?.cartUpdate, '/cart/update'),\n            { updates },\n            'Unable to clear your cart. Please try again.',\n          );\n        }\n      }\n      if (!cartIsEmpty(clearedCart)) {\n        throw new Error('Your cart could not be cleared. Please try again.');\n      }\n      const preparedCart = await postCartJson(\n        ensureJsonRoute(config.routes?.cartUpdate, '/cart/update'),\n        { discount: '' },\n        'Unable to prepare the Lineup20 offer. Please try again.',\n      );\n      if (!cartIsEmpty(preparedCart) || discountCodesFromCart(preparedCart).length) {\n        throw new Error('Your cart could not be prepared for Lineup20. Please try again.');\n      }\n      return preparedCart;\n    };\n    const applyAndConfirmOffer = async (offerToken, offerQuantity) => {\n      const updatePayload = {\n        discount: offer.discountCode,\n        sections: ['cart-drawer', 'cart-icon-bubble'],\n        sections_url: `${window.location.pathname}${window.location.search}`,\n      };\n      let lastError = null;\n      for (const delayMs of [0, 250, 500]) {\n        if (delayMs) await new Promise((resolve) => window.setTimeout(resolve, delayMs));\n        await postCartJson(\n          ensureJsonRoute(config.routes?.cartUpdate, '/cart/update'),\n          updatePayload,\n          'Unable to apply Lineup20. Please try again.',\n        );\n        const cart = await getCart();\n        try {\n          validateOfferCart(cart, offerToken, offerQuantity);\n          return cart;\n        } catch (error) {\n          lastError = error;\n        }\n      }\n      throw lastError || new Error('Lineup20 could not be verified. Please try again.');\n    };\n    const restoreCartSnapshot = async (snapshot) => {\n      await resetCart();\n      if (snapshot.items.length) {\n        await postCartJson(\n          ensureJsonRoute(config.routes?.cartAdd, '/cart/add'),\n          { items: snapshot.items },\n          'Unable to restore your previous cart items.',\n        );\n      }\n      await postCartJson(\n        ensureJsonRoute(config.routes?.cartUpdate, '/cart/update'),\n        {\n          note: snapshot.note,\n          attributes: snapshot.attributes,\n          discount: snapshot.discountCodes.join(','),\n        },\n        'Unable to restore your previous cart details.',\n      );\n      let lastError = null;\n      for (const delayMs of [0, 250, 500]) {\n        if (delayMs) await new Promise((resolve) => window.setTimeout(resolve, delayMs));\n        const cart = await getCart();\n        try {\n          validateCartSnapshot(cart, snapshot);\n          return cart;\n        } catch (error) {\n          lastError = error;\n        }\n      }\n      throw lastError || new Error('Your previous cart could not be restored.');\n    };\n\n    if (variantInput) variantInput.value = String(variant.id);\n    let quantity = 1;\n    if (quantityInput) quantityInput.value = String(quantity);\n    if (sellingPlanInput) {\n      sellingPlanInput.value = '';\n      sellingPlanInput.removeAttribute('name');\n    }\n    root.querySelectorAll('input[name=\"selling_plan\"]').forEach((input) => {\n      input.value = '';\n      input.removeAttribute('name');\n    });\n\n    if (oneTimeControl) {\n      oneTimeControl.classList.add(ONE_TIME_SELECTED_CLASS);\n      oneTimeControl.setAttribute('role', 'radio');\n      oneTimeControl.setAttribute('aria-checked', 'true');\n      oneTimeControl.setAttribute('aria-label', 'One-time purchase');\n    }\n    if (offerEnabled && priceElement) {\n      const priceWrapper = document.createElement('span');\n      const regularPrice = document.createElement('s');\n      const salePrice = document.createElement('span');\n      const offerBadge = document.createElement('span');\n      const regularPriceText = formatMoney(variant.price, config.moneyFormat);\n      const salePriceText = formatMoney(discountedUnitPrice(variant.price), config.moneyFormat);\n      priceWrapper.className = 'hr-lineup-offer-price';\n      regularPrice.className = 'hr-lineup-offer-price__regular';\n      regularPrice.textContent = regularPriceText;\n      regularPrice.setAttribute('aria-label', `Regular price ${regularPriceText}`);\n      salePrice.className = 'hr-lineup-offer-price__sale';\n      salePrice.textContent = salePriceText;\n      salePrice.setAttribute('aria-label', `Sale price ${salePriceText}`);\n      offerBadge.className = 'hr-lineup-offer-price__badge';\n      offerBadge.textContent = `${discountPercent}% off`;\n      priceWrapper.append(regularPrice, salePrice, offerBadge);\n      priceElement.replaceChildren(priceWrapper);\n    } else {\n      setParagraph(priceElement, formatMoney(variant.price, config.moneyFormat));\n    }\n\n    let loading = false;\n    const quantitySelector = document.createElement('div');\n    const quantityLabel = document.createElement('span');\n    const quantityControls = document.createElement('div');\n    const decrementButton = document.createElement('button');\n    const quantityValue = document.createElement('output');\n    const incrementButton = document.createElement('button');\n    quantitySelector.className = 'hr-lineup-quantity';\n    quantitySelector.setAttribute('role', 'group');\n    quantitySelector.setAttribute('aria-label', `${config.title || 'Product'} quantity`);\n    quantityLabel.className = 'hr-lineup-quantity__label';\n    quantityLabel.textContent = 'Quantity';\n    quantityControls.className = 'hr-lineup-quantity__controls';\n    decrementButton.className = 'hr-lineup-quantity__button';\n    decrementButton.type = 'button';\n    decrementButton.textContent = '\u2212';\n    decrementButton.setAttribute('aria-label', `Decrease ${config.title || 'product'} quantity`);\n    quantityValue.className = 'hr-lineup-quantity__value';\n    quantityValue.setAttribute('aria-live', 'polite');\n    quantityValue.setAttribute('aria-atomic', 'true');\n    quantityValue.setAttribute('aria-label', 'Selected quantity');\n    incrementButton.className = 'hr-lineup-quantity__button';\n    incrementButton.type = 'button';\n    incrementButton.textContent = '+';\n    incrementButton.setAttribute('aria-label', `Increase ${config.title || 'product'} quantity`);\n    quantityControls.append(decrementButton, quantityValue, incrementButton);\n    quantitySelector.append(quantityLabel, quantityControls);\n    addButton.insertAdjacentElement('beforebegin', quantitySelector);\n\n    const setButtonLabel = (text) => setParagraph(buttonLabel, text);\n    const getButtonLabel = () => {\n      if (!variant.available) return config.soldOutLabel;\n      const regularTotal = Number(variant.price || 0) * quantity;\n      const displayedTotal = offerEnabled\n        ? discountedLinePrice(variant.price, quantity)\n        : regularTotal;\n      return `${config.addToCartLabel} \u2014 ${formatMoney(displayedTotal, config.moneyFormat)}`;\n    };\n    const syncQuantity = () => {\n      if (quantityInput) quantityInput.value = String(quantity);\n      quantityValue.value = String(quantity);\n      quantityValue.textContent = String(quantity);\n      const decrementDisabled = loading || !variant.available || quantity <= 1;\n      const incrementDisabled = loading || !variant.available;\n      decrementButton.disabled = decrementDisabled;\n      decrementButton.setAttribute('aria-disabled', String(decrementDisabled));\n      incrementButton.disabled = incrementDisabled;\n      incrementButton.setAttribute('aria-disabled', String(incrementDisabled));\n      if (!loading) setButtonLabel(getButtonLabel());\n    };\n\n    const errorMessage = document.createElement('p');\n    errorMessage.className = 'hr-lineup-error';\n    errorMessage.setAttribute('role', 'alert');\n    errorMessage.hidden = true;\n    addButton.insertAdjacentElement('afterend', errorMessage);\n    const clearError = () => {\n      errorMessage.hidden = true;\n      errorMessage.textContent = '';\n    };\n    addButton.disabled = !variant.available;\n    addButton.setAttribute('aria-disabled', String(!variant.available));\n    syncQuantity();\n\n    decrementButton.addEventListener('click', () => {\n      if (loading || !variant.available || quantity <= 1) return;\n      quantity -= 1;\n      clearError();\n      syncQuantity();\n    });\n    incrementButton.addEventListener('click', () => {\n      if (loading || !variant.available) return;\n      quantity += 1;\n      clearError();\n      syncQuantity();\n    });\n\n    const setLoading = (isLoading) => {\n      loading = isLoading;\n      addButton.classList.toggle('hr-lineup-is-loading', isLoading);\n      addButton.disabled = isLoading || !variant.available;\n      addButton.setAttribute('aria-disabled', String(isLoading || !variant.available));\n      addButton.setAttribute('aria-busy', String(isLoading));\n      syncQuantity();\n      if (!isLoading) return;\n      const label = buttonLabel?.querySelector('p') || buttonLabel;\n      if (!label) return;\n      const computed = window.getComputedStyle(label);\n      label.textContent = '';\n      const loadingText = document.createElement('span');\n      const spinner = document.createElement('span');\n      loadingText.className = 'hr-lineup-loading-text';\n      loadingText.textContent = 'LOADING';\n      loadingText.style.fontFamily = computed.fontFamily;\n      loadingText.style.fontSize = computed.fontSize;\n      loadingText.style.fontStyle = computed.fontStyle;\n      loadingText.style.fontWeight = computed.fontWeight;\n      loadingText.style.lineHeight = computed.lineHeight;\n      loadingText.style.letterSpacing = computed.letterSpacing;\n      loadingText.style.textTransform = computed.textTransform;\n      loadingText.style.color = computed.color;\n      spinner.className = 'hr-lineup-loading-spinner';\n      spinner.setAttribute('aria-hidden', 'true');\n      label.append(loadingText, spinner);\n    };\n\n    const openEliteCart = async () => {\n      let refreshRequested = false;\n      for (let attempt = 0; attempt < 40; attempt += 1) {\n        const backdrop = document.getElementById('EliteCartBackdrop');\n        const eliteCartDialog = Array.from(document.querySelectorAll('[role=\"dialog\"]'))\n          .find((dialog) => dialog.querySelector('.ec-cart-container') || dialog.closest('.ec-cart-container'));\n        const backdropStyles = backdrop ? window.getComputedStyle(backdrop) : null;\n        const backdropVisible = backdropStyles\n          && backdropStyles.display !== 'none'\n          && backdropStyles.visibility !== 'hidden';\n        const dialogVisible = eliteCartDialog\n          && window.getComputedStyle(eliteCartDialog).display !== 'none'\n          && window.getComputedStyle(eliteCartDialog).visibility !== 'hidden';\n        if (backdropVisible || dialogVisible) return true;\n\n        if (!refreshRequested && typeof window.EliteCart?.openDrawerWithDataRefresh === 'function') {\n          refreshRequested = true;\n          try {\n            await window.EliteCart.openDrawerWithDataRefresh();\n          } catch (error) {\n            console.warn('[High Rider LINEUP] EliteCart could not be opened.', error);\n          }\n        }\n        await new Promise((resolve) => window.setTimeout(resolve, 100));\n      }\n      return false;\n    };\n\n    const addToCart = async (event) => {\n      event.preventDefault();\n      if (loading || !variant.available) return;\n\n      let offerToken = null;\n      let previousCartSnapshot = null;\n      let replacementStarted = false;\n      let offerCommitted = false;\n      let cartRestored = false;\n      let restorationFailed = false;\n      const item = {\n        id: Number(variant.id),\n        quantity,\n      };\n\n      clearError();\n      setLoading(true);\n      try {\n        if (offerEnabled) {\n          const currentCart = await getCart();\n          previousCartSnapshot = createCartSnapshot(currentCart);\n          offerToken = window.crypto?.randomUUID?.()\n            || `${Date.now()}-${Math.random().toString(16).slice(2)}`;\n          item.properties = { [offerTokenProperty]: offerToken };\n          replacementStarted = true;\n          await resetCart();\n        }\n\n        const data = await postCartJson(\n          ensureJsonRoute(config.routes?.cartAdd, '/cart/add'),\n          { items: [item] },\n          'Unable to add this item to your cart.',\n        );\n\n        let cartData = data;\n        if (offerEnabled) {\n          validateOfferLine(await getCart(), offerToken, quantity);\n          cartData = await applyAndConfirmOffer(offerToken, quantity);\n        }\n        offerCommitted = offerEnabled;\n\n        root.dispatchEvent(new CustomEvent('high-rider:cart-added', {\n          bubbles: true,\n          detail: {\n            data: cartData,\n            product: config.handle,\n            variantId: variant.id,\n            quantity,\n            sellingPlanId: null,\n            discountCode: offerEnabled ? offer.discountCode : null,\n          },\n        }));\n        document.dispatchEvent(new CustomEvent('cart:refresh', {\n          detail: { data: cartData, source: 'hr-product-lineup-owned' },\n        }));\n        if (typeof publish === 'function' && typeof PUB_SUB_EVENTS !== 'undefined') {\n          publish(PUB_SUB_EVENTS.cartUpdate, {\n            source: 'hr-product-lineup-owned',\n            productVariantId: String(variant.id),\n            cartData,\n          });\n        }\n        if (!await openEliteCart()) window.location.assign(config.routes?.cart || '/cart');\n      } catch (error) {\n        if (replacementStarted && !offerCommitted && previousCartSnapshot) {\n          try {\n            await restoreCartSnapshot(previousCartSnapshot);\n            cartRestored = true;\n          } catch (restorationError) {\n            restorationFailed = true;\n            console.error('[High Rider LINEUP] Cart restoration failed.', restorationError);\n          }\n        }\n        console.error('[High Rider LINEUP] Add to cart failed.', error);\n        errorMessage.textContent = restorationFailed\n          ? 'The offer could not be verified and your previous cart may not be fully restored. Please review your cart before checkout.'\n          : `${error.message || 'Unable to add this item to your cart.'}${cartRestored ? ' Your previous cart was restored.' : ''}`;\n        errorMessage.hidden = false;\n      } finally {\n        setLoading(false);\n      }\n    };\n\n    form?.addEventListener('submit', addToCart);\n    addButton.addEventListener('click', addToCart);\n  };\n\n  const initialize = (scope = document) => {\n    scope.querySelectorAll(ROOT_SELECTOR).forEach((root) => {\n      if (root.hasAttribute(INITIALIZED_ATTRIBUTE)) return;\n      const config = getConfig(root);\n      if (!config) return;\n      const reference = root.querySelector('[data-hr-lineup-reference]');\n      const referenceTemplate = root.querySelector('template[data-hr-lineup-reference-template]');\n      const fallback = root.querySelector('[data-hr-lineup-fallback]');\n      if (!reference || !referenceTemplate) return;\n\n      try {\n        const referenceFragment = referenceTemplate.content;\n        referenceFragment.querySelectorAll(`[data-rid=\"${SPARKLAYER_WRAPPER_RID}\"]`).forEach((element) => element.remove());\n        referenceFragment.querySelectorAll('spark-pdp').forEach((element) => element.remove());\n        reference.replaceChildren(referenceFragment);\n\n        validateReference(reference);\n        generalizePotencyCopy(reference);\n        applyProductCopy(reference, config);\n        applyLineupClaims(reference, config);\n        initializeCarousel(root, config);\n        initializeCollapsibles(reference);\n        initializeNavigation(reference, config);\n        initializeReviews(reference);\n        initializePurchase(reference, config);\n\n        reference.hidden = false;\n        if (fallback) fallback.hidden = true;\n        referenceTemplate.remove();\n        root.setAttribute(INITIALIZED_ATTRIBUTE, 'true');\n      } catch (error) {\n        console.error('[High Rider LINEUP] Product page initialization failed.', error);\n      }\n    });\n  };\n\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', () => initialize());\n  } else {\n    initialize();\n  }\n  document.addEventListener('shopify:section:load', (event) => initialize(event.target));\n})();\n"],
  "mappings": "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",
  "names": []
}
