{
  "version": 3,
  "sources": ["/cdn/shop/t/24/assets/jacobina-landing.js?qa=sticky-direct-1"],
  "sourcesContent": ["(() => {\n  const ROOT_SELECTOR = \"[data-aqj-root]\";\n  const IOS_VIDEO_SOURCE =\n    \"https://cdn.shopify.com/videos/c/o/v/3fd094baf769456bb3af654f35a81ba3.mp4\";\n  const clamp = (value, min = 0, max = 1) =>\n    Math.min(max, Math.max(min, value));\n\n  function normalizeCachedMarkup(root) {\n    const heroPrompt = root.querySelector(\".aqj-hero__prompt\");\n    if (heroPrompt) {\n      const promptText = heroPrompt.querySelector(\"span\");\n      const promptArrow = heroPrompt.querySelector(\"i\");\n      if (promptText) promptText.textContent = \"ARRASTE PARA CIMA\";\n      if (promptArrow) promptArrow.textContent = \"\u2191\";\n    }\n\n    const cachedPanel = root.querySelector(\n      \".aqj-purchase__panel\",\n    );\n\n    if (cachedPanel) {\n      const purchaseIntro = document.createElement(\"div\");\n      purchaseIntro.className = \"aqj-purchase__intro\";\n\n      [...cachedPanel.children]\n        .slice(0, 3)\n        .forEach((node) => purchaseIntro.appendChild(node));\n\n      cachedPanel.parentNode?.insertBefore(\n        purchaseIntro,\n        cachedPanel,\n      );\n      cachedPanel.classList.remove(\"aqj-purchase__panel\");\n      cachedPanel.classList.add(\"aqj-purchase__conversion\");\n    }\n\n    const purchaseConversion = root.querySelector(\n      \".aqj-purchase__conversion\",\n    );\n    const promotion = purchaseConversion?.querySelector(\n      \":scope > .aqj-promo\",\n    );\n    const price = purchaseConversion?.querySelector(\n      \":scope > .aqj-price\",\n    );\n\n    if (\n      promotion &&\n      price &&\n      price.compareDocumentPosition(promotion) &\n        Node.DOCUMENT_POSITION_FOLLOWING\n    ) {\n      purchaseConversion.insertBefore(promotion, price);\n    }\n\n    const promotionCopy = promotion?.querySelector(\"p\");\n    if (promotionCopy) {\n      [...promotionCopy.childNodes].forEach((node) => {\n        if (node.nodeType !== Node.TEXT_NODE) return;\n        node.textContent = node.textContent.replace(\n          /Promo\u00E7\u00E3o\\s+v\u00E1lida\\s+apenas\\s+hoje,\\s+dia/iu,\n          \"V\u00E1lida apenas hoje, dia\",\n        );\n      });\n    }\n\n    const sizeGuideTrigger = root.querySelector(\n      \"[data-aqj-size-open]\",\n    );\n    if (sizeGuideTrigger) {\n      sizeGuideTrigger.textContent = \"Ver tabela de medidas\";\n    }\n\n    const cachedVideo = root.querySelector(\"[data-aqj-video]\");\n    if (!cachedVideo) return;\n\n    [...cachedVideo.querySelectorAll(\"source\")].forEach(\n      (source) => {\n        const sourceUrl = source.getAttribute(\"src\");\n        if (sourceUrl?.includes(\"#t=0.001\")) {\n          source.setAttribute(\n            \"src\",\n            sourceUrl.replace(\"#t=0.001\", \"\"),\n          );\n        }\n      },\n    );\n\n    if (\n      !cachedVideo.querySelector(\n        'source[media=\"(max-width: 800px)\"]',\n      )\n    ) {\n      const mobileSource = document.createElement(\"source\");\n      mobileSource.media = \"(max-width: 800px)\";\n      mobileSource.src = IOS_VIDEO_SOURCE;\n      mobileSource.type = \"video/mp4\";\n      cachedVideo.insertBefore(\n        mobileSource,\n        cachedVideo.firstChild,\n      );\n    }\n  }\n\n  function initRoot(root) {\n    if (!root || root.dataset.aqjReady === \"true\") return;\n    normalizeCachedMarkup(root);\n    root.dataset.aqjReady = \"true\";\n    document.body.classList.add(\"aqj-landing-active\");\n\n    const reducedMotion = window.matchMedia(\n      \"(prefers-reduced-motion: reduce)\",\n    ).matches;\n    const isIOSWebKit =\n      /iP(hone|ad|od)/.test(navigator.userAgent) ||\n      (navigator.platform === \"MacIntel\" &&\n        navigator.maxTouchPoints > 1);\n    const cleanup = [];\n    const hero = root.querySelector(\"[data-aqj-hero]\");\n    const story = root.querySelector(\"[data-aqj-story]\");\n    const video = root.querySelector(\"[data-aqj-video]\");\n    const videoShell = root.querySelector(\n      \"[data-aqj-video-shell]\",\n    );\n    const stickyCta = root.querySelector(\n      \"[data-aqj-sticky-cta]\",\n    );\n    const purchase = root.querySelector(\"[data-aqj-purchase]\");\n    const finalPurchaseButton = root.querySelector(\n      \"[data-aqj-submit]\",\n    );\n    const purchaseLinks = [\n      ...root.querySelectorAll(\"[data-aqj-purchase-link]\"),\n    ];\n    let isDisposed = false;\n    let animationFrame = 0;\n    let desiredVideoTime = 0;\n    let lastScene = -1;\n    let videoWarmInFlight = false;\n    let videoUnlocked = false;\n    let paintIOSVideoFrame = null;\n    let selectCarouselMedia = null;\n\n    root.classList.toggle(\"aqj--ios-webkit\", isIOSWebKit);\n\n    const seekVideo = () => {\n      if (\n        !video ||\n        video.readyState < HTMLMediaElement.HAVE_METADATA ||\n        !Number.isFinite(video.duration) ||\n        video.duration <= 0 ||\n        video.seeking ||\n        videoWarmInFlight ||\n        (isIOSWebKit && !videoUnlocked)\n      ) {\n        return;\n      }\n\n      const target = clamp(\n        desiredVideoTime,\n        0,\n        Math.max(0, video.duration - 0.04),\n      );\n      const tolerance = isIOSWebKit ? 0.05 : 1 / 120;\n\n      if (Math.abs(video.currentTime - target) <= tolerance) {\n        return;\n      }\n\n      if (isIOSWebKit && paintIOSVideoFrame) {\n        paintIOSVideoFrame(target);\n        return;\n      }\n\n      try {\n        video.currentTime = target;\n      } catch (_) {\n        requestRender();\n      }\n    };\n\n    const renderScroll = () => {\n      animationFrame = 0;\n\n      if (hero && !reducedMotion) {\n        const rect = hero.getBoundingClientRect();\n        const distance = Math.max(\n          1,\n          hero.offsetHeight - window.innerHeight,\n        );\n        const rawProgress = clamp(-rect.top / distance);\n        const transitionProgress = clamp(\n          rawProgress / 0.88,\n        );\n        const progress = transitionProgress;\n        const copyProgress = clamp((progress - 0.68) / 0.24);\n        const promptProgress = 1 - clamp(progress / 0.2);\n\n        hero.style.setProperty(\n          \"--hero-mask-full\",\n          `${(progress * 100).toFixed(2)}%`,\n        );\n        hero.style.setProperty(\n          \"--hero-mask-fade\",\n          `${(progress * 100 + 8).toFixed(2)}%`,\n        );\n        hero.style.setProperty(\n          \"--hero-after-opacity\",\n          clamp(progress / 0.08).toFixed(4),\n        );\n        hero.style.setProperty(\n          \"--hero-copy-opacity\",\n          copyProgress.toFixed(4),\n        );\n        hero.style.setProperty(\n          \"--hero-copy-y\",\n          `${((1 - copyProgress) * 24).toFixed(2)}px`,\n        );\n        hero.style.setProperty(\n          \"--hero-prompt-opacity\",\n          promptProgress.toFixed(4),\n        );\n        hero.style.setProperty(\n          \"--hero-prompt-y\",\n          `${((1 - promptProgress) * -12).toFixed(2)}px`,\n        );\n      }\n\n      if (story) {\n        const rect = story.getBoundingClientRect();\n        const distance = Math.max(\n          1,\n          story.offsetHeight - window.innerHeight,\n        );\n        const progress = clamp(-rect.top / distance);\n        const scene = Math.round(progress * 4);\n\n        if (scene !== lastScene) {\n          story.dataset.scene = String(scene);\n          lastScene = scene;\n        }\n\n        if (\n          video &&\n          Number.isFinite(video.duration) &&\n          video.duration > 0\n        ) {\n          desiredVideoTime =\n            progress * Math.max(0, video.duration - 0.04);\n          seekVideo();\n        }\n      }\n\n      if (stickyCta && story && purchase) {\n        const viewportHeight = window.innerHeight;\n        const storyRect = story.getBoundingClientRect();\n        const finalTargetRect = (\n          finalPurchaseButton || purchase\n        ).getBoundingClientRect();\n        const stickyBottom =\n          Number.parseFloat(\n            window.getComputedStyle(stickyCta).bottom,\n          ) || 16;\n        const stickyTop =\n          viewportHeight -\n          stickyCta.offsetHeight -\n          stickyBottom;\n        const reachedFinalButton =\n          finalTargetRect.top <= stickyTop + 1;\n        const shouldShow =\n          storyRect.bottom <= viewportHeight &&\n          !reachedFinalButton;\n\n        stickyCta.classList.toggle(\"is-visible\", shouldShow);\n        stickyCta.classList.toggle(\n          \"is-past-purchase\",\n          reachedFinalButton,\n        );\n        stickyCta.setAttribute(\n          \"aria-hidden\",\n          String(!shouldShow),\n        );\n      }\n    };\n\n    const requestRender = () => {\n      if (!animationFrame) {\n        animationFrame = window.requestAnimationFrame(renderScroll);\n      }\n    };\n\n    const scrollToPurchase = (event) => {\n      if (!purchase) return;\n      event.preventDefault();\n      const target = finalPurchaseButton || purchase;\n      const targetRect = target.getBoundingClientRect();\n      const stickyRect = stickyCta?.getBoundingClientRect();\n      const desiredViewportTop =\n        stickyRect && stickyRect.height > 0\n          ? stickyRect.top\n          : window.innerHeight * 0.84;\n      const targetTop = Math.max(\n        0,\n        window.scrollY + targetRect.top - desiredViewportTop,\n      );\n\n      window.scrollTo({\n        top: targetTop,\n        behavior: reducedMotion ? \"auto\" : \"smooth\",\n      });\n    };\n\n    purchaseLinks.forEach((link) =>\n      link.addEventListener(\"click\", scrollToPurchase),\n    );\n    cleanup.push(() => {\n      purchaseLinks.forEach((link) =>\n        link.removeEventListener(\"click\", scrollToPurchase),\n      );\n    });\n\n    window.addEventListener(\"scroll\", requestRender, {\n      passive: true,\n    });\n    window.addEventListener(\"resize\", requestRender);\n    cleanup.push(() => {\n      window.removeEventListener(\"scroll\", requestRender);\n      window.removeEventListener(\"resize\", requestRender);\n      if (animationFrame) {\n        window.cancelAnimationFrame(animationFrame);\n      }\n    });\n\n    if (video) {\n      let videoLoadRequested = false;\n      let warmFrameCallback = 0;\n      let warmFrameTimeout = 0;\n      let warmTimeUpdateHandler = null;\n      let iosPaintInFlight = false;\n      let iosPaintQueued = false;\n      let iosPaintTarget = 0;\n      let iosPaintFrameCallback = 0;\n      let iosPaintNudgeTimeout = 0;\n      let iosPaintHardTimeout = 0;\n      let iosPaintTimeUpdateHandler = null;\n\n      const markVideoReady = (force = false) => {\n        if (\n          videoShell &&\n          (force ||\n            (!isIOSWebKit &&\n              video.readyState >=\n                HTMLMediaElement.HAVE_CURRENT_DATA))\n        ) {\n          videoShell.classList.add(\"is-video-ready\");\n        }\n      };\n\n      const cancelVideoFrameCallback = (callbackId) => {\n        if (\n          callbackId &&\n          typeof video.cancelVideoFrameCallback === \"function\"\n        ) {\n          try {\n            video.cancelVideoFrameCallback(callbackId);\n          } catch (_) {}\n        }\n      };\n\n      const clearWarmFrameWait = () => {\n        cancelVideoFrameCallback(warmFrameCallback);\n        warmFrameCallback = 0;\n        if (warmFrameTimeout) {\n          window.clearTimeout(warmFrameTimeout);\n          warmFrameTimeout = 0;\n        }\n        if (warmTimeUpdateHandler) {\n          video.removeEventListener(\n            \"timeupdate\",\n            warmTimeUpdateHandler,\n          );\n          warmTimeUpdateHandler = null;\n        }\n      };\n\n      const clearIOSPaintWait = () => {\n        cancelVideoFrameCallback(iosPaintFrameCallback);\n        iosPaintFrameCallback = 0;\n        if (iosPaintNudgeTimeout) {\n          window.clearTimeout(iosPaintNudgeTimeout);\n          iosPaintNudgeTimeout = 0;\n        }\n        if (iosPaintHardTimeout) {\n          window.clearTimeout(iosPaintHardTimeout);\n          iosPaintHardTimeout = 0;\n        }\n        if (iosPaintTimeUpdateHandler) {\n          video.removeEventListener(\n            \"timeupdate\",\n            iosPaintTimeUpdateHandler,\n          );\n          iosPaintTimeUpdateHandler = null;\n        }\n      };\n\n      const detachWarmListeners = () => {\n        root.removeEventListener(\"touchstart\", warmVideo);\n        root.removeEventListener(\"pointerdown\", warmVideo);\n      };\n\n      const loadVideoOnce = () => {\n        if (videoLoadRequested) return;\n        videoLoadRequested = true;\n        video.muted = true;\n        video.defaultMuted = true;\n        video.playsInline = true;\n        video.setAttribute(\"muted\", \"\");\n        video.setAttribute(\"playsinline\", \"\");\n        video.setAttribute(\"webkit-playsinline\", \"\");\n        try {\n          video.load();\n        } catch (_) {}\n      };\n\n      const finishWarmVideo = (framePresented) => {\n        if (isDisposed) return;\n        clearWarmFrameWait();\n        video.pause();\n        videoWarmInFlight = false;\n\n        if (!framePresented) {\n          requestRender();\n          return;\n        }\n\n        videoUnlocked = true;\n        detachWarmListeners();\n        markVideoReady(true);\n        requestRender();\n      };\n\n      const waitForWarmVideoFrame = () => {\n        const handleWarmFrame = () => finishWarmVideo(true);\n\n        if (\n          typeof video.requestVideoFrameCallback === \"function\"\n        ) {\n          warmFrameCallback =\n            video.requestVideoFrameCallback(handleWarmFrame);\n        } else {\n          warmTimeUpdateHandler = handleWarmFrame;\n          video.addEventListener(\n            \"timeupdate\",\n            warmTimeUpdateHandler,\n            { once: true },\n          );\n        }\n\n        warmFrameTimeout = window.setTimeout(\n          () => finishWarmVideo(false),\n          900,\n        );\n      };\n\n      const warmVideo = () => {\n        if (\n          videoUnlocked ||\n          videoWarmInFlight ||\n          isDisposed\n        ) {\n          return;\n        }\n        videoWarmInFlight = true;\n        loadVideoOnce();\n\n        if (isIOSWebKit) {\n          waitForWarmVideoFrame();\n        }\n\n        let playResult;\n        try {\n          playResult = video.play();\n        } catch (_) {\n          clearWarmFrameWait();\n          videoWarmInFlight = false;\n          requestRender();\n          return;\n        }\n\n        if (isIOSWebKit) {\n          if (playResult && typeof playResult.catch === \"function\") {\n            playResult.catch(() => {\n              clearWarmFrameWait();\n              videoWarmInFlight = false;\n              if (!isDisposed) requestRender();\n            });\n          }\n          return;\n        }\n\n        const finishNonIOSWarmVideo = () => {\n          window.requestAnimationFrame(() =>\n            finishWarmVideo(true),\n          );\n        };\n\n        if (playResult && typeof playResult.then === \"function\") {\n          playResult\n            .then(finishNonIOSWarmVideo)\n            .catch(() => {\n              videoWarmInFlight = false;\n              if (!isDisposed) requestRender();\n            });\n        } else {\n          finishNonIOSWarmVideo();\n        }\n      };\n\n      const finishIOSPaint = (framePresented) => {\n        if (isDisposed || !iosPaintInFlight) return;\n        clearIOSPaintWait();\n        video.pause();\n        iosPaintInFlight = false;\n\n        if (framePresented) {\n          markVideoReady(true);\n        }\n\n        const latestTarget = clamp(\n          desiredVideoTime,\n          0,\n          Math.max(0, video.duration - 0.04),\n        );\n        const targetChanged =\n          Math.abs(latestTarget - iosPaintTarget) > 0.05;\n\n        if (iosPaintQueued || targetChanged) {\n          iosPaintQueued = false;\n          window.requestAnimationFrame(() => {\n            if (!isDisposed) paintIOSVideoFrame(latestTarget);\n          });\n        }\n      };\n\n      const beginIOSPaint = (target) => {\n        iosPaintInFlight = true;\n        iosPaintQueued = false;\n        iosPaintTarget = target;\n\n        const handlePresentedFrame = () =>\n          finishIOSPaint(true);\n\n        if (\n          typeof video.requestVideoFrameCallback === \"function\"\n        ) {\n          iosPaintFrameCallback =\n            video.requestVideoFrameCallback(\n              handlePresentedFrame,\n            );\n        }\n\n        try {\n          video.currentTime = target;\n        } catch (_) {\n          finishIOSPaint(false);\n          return;\n        }\n\n        iosPaintNudgeTimeout = window.setTimeout(() => {\n          if (!iosPaintInFlight || isDisposed) return;\n\n          if (\n            typeof video.requestVideoFrameCallback !== \"function\"\n          ) {\n            iosPaintTimeUpdateHandler = handlePresentedFrame;\n            video.addEventListener(\n              \"timeupdate\",\n              iosPaintTimeUpdateHandler,\n              { once: true },\n            );\n          }\n\n          let playResult;\n          try {\n            playResult = video.play();\n          } catch (_) {\n            finishIOSPaint(false);\n            return;\n          }\n\n          if (\n            playResult &&\n            typeof playResult.catch === \"function\"\n          ) {\n            playResult.catch(() => finishIOSPaint(false));\n          }\n        }, 90);\n\n        iosPaintHardTimeout = window.setTimeout(\n          () => finishIOSPaint(false),\n          420,\n        );\n      };\n\n      paintIOSVideoFrame = (target) => {\n        iosPaintTarget = target;\n        if (iosPaintInFlight) {\n          iosPaintQueued = true;\n          return;\n        }\n        beginIOSPaint(target);\n      };\n\n      const handleVideoReady = () => {\n        markVideoReady();\n        requestRender();\n      };\n\n      const videoRenderEvents = [\n        \"loadedmetadata\",\n        \"durationchange\",\n      ];\n      const videoReadyEvents = [\n        \"loadeddata\",\n        \"canplay\",\n        \"canplaythrough\",\n        \"seeked\",\n      ];\n\n      videoRenderEvents.forEach((eventName) =>\n        video.addEventListener(eventName, requestRender),\n      );\n      videoReadyEvents.forEach((eventName) =>\n        video.addEventListener(eventName, handleVideoReady),\n      );\n      root.addEventListener(\"touchstart\", warmVideo, {\n        passive: true,\n      });\n      root.addEventListener(\"pointerdown\", warmVideo, {\n        passive: true,\n      });\n      loadVideoOnce();\n      markVideoReady();\n\n      cleanup.push(() => {\n        videoRenderEvents.forEach((eventName) =>\n          video.removeEventListener(eventName, requestRender),\n        );\n        videoReadyEvents.forEach((eventName) =>\n          video.removeEventListener(eventName, handleVideoReady),\n        );\n        clearWarmFrameWait();\n        clearIOSPaintWait();\n        detachWarmListeners();\n        video.pause();\n        paintIOSVideoFrame = null;\n        videoShell?.classList.remove(\"is-video-ready\");\n      });\n    }\n    renderScroll();\n\n    const revealItems = [\n      ...root.querySelectorAll(\"[data-aqj-reveal]\"),\n    ];\n\n    if (\n      reducedMotion ||\n      !(\"IntersectionObserver\" in window)\n    ) {\n      revealItems.forEach((item) =>\n        item.classList.add(\"is-revealed\"),\n      );\n    } else {\n      const revealObserver = new IntersectionObserver(\n        (entries) => {\n          entries.forEach((entry) => {\n            if (!entry.isIntersecting) return;\n            entry.target.classList.add(\"is-revealed\");\n            revealObserver.unobserve(entry.target);\n          });\n        },\n        {\n          threshold: 0.12,\n          rootMargin: \"0px 0px -8% 0px\",\n        },\n      );\n      revealItems.forEach((item) =>\n        revealObserver.observe(item),\n      );\n      cleanup.push(() => revealObserver.disconnect());\n    }\n\n    const count = root.querySelector(\"[data-aqj-count]\");\n    let counterFrame = 0;\n\n    if (count) {\n      if (\n        reducedMotion ||\n        !(\"IntersectionObserver\" in window)\n      ) {\n        count.textContent = \"10.000\";\n      } else {\n        const countObserver = new IntersectionObserver(\n          ([entry], observer) => {\n            if (!entry || !entry.isIntersecting) return;\n            observer.disconnect();\n            const startedAt = performance.now();\n            const formatter = new Intl.NumberFormat(\"pt-BR\");\n\n            const tick = (now) => {\n              const progress = clamp(\n                (now - startedAt) / 1800,\n              );\n              const eased = 1 - Math.pow(1 - progress, 4);\n              count.textContent = formatter.format(\n                Math.round(eased * 10000),\n              );\n              if (progress < 1) {\n                counterFrame =\n                  window.requestAnimationFrame(tick);\n              }\n            };\n\n            counterFrame = window.requestAnimationFrame(tick);\n          },\n          { threshold: 0.55 },\n        );\n        countObserver.observe(count);\n        cleanup.push(() => countObserver.disconnect());\n      }\n    }\n\n    cleanup.push(() => {\n      if (counterFrame) {\n        window.cancelAnimationFrame(counterFrame);\n      }\n    });\n\n    const track = root.querySelector(\n      \"[data-aqj-carousel-track]\",\n    );\n\n    if (track) {\n      const slides = [...track.children];\n      const current = root.querySelector(\"[data-aqj-current]\");\n      const progressBar = root.querySelector(\n        \"[data-aqj-progress]\",\n      );\n      const previousButton = root.querySelector(\n        \"[data-aqj-prev]\",\n      );\n      const nextButton = root.querySelector(\"[data-aqj-next]\");\n      let activeIndex = 0;\n\n      const renderCarouselState = () => {\n        if (current) {\n          current.textContent = String(\n            activeIndex + 1,\n          ).padStart(2, \"0\");\n        }\n        if (progressBar && slides.length) {\n          progressBar.style.width = `${\n            ((activeIndex + 1) / slides.length) * 100\n          }%`;\n        }\n      };\n\n      const goTo = (requestedIndex) => {\n        if (!slides.length) return;\n        activeIndex =\n          (requestedIndex + slides.length) % slides.length;\n        track.scrollTo({\n          left: track.clientWidth * activeIndex,\n          behavior: \"smooth\",\n        });\n        renderCarouselState();\n      };\n\n      selectCarouselMedia = (mediaId) => {\n        if (!mediaId) return;\n        const requestedIndex = slides.findIndex(\n          (slide) =>\n            String(slide.dataset.aqjMediaId || \"\") ===\n            String(mediaId),\n        );\n        if (requestedIndex >= 0) {\n          goTo(requestedIndex);\n        }\n      };\n\n      const syncFromScroll = () => {\n        if (!track.clientWidth || !slides.length) return;\n        activeIndex = clamp(\n          Math.round(track.scrollLeft / track.clientWidth),\n          0,\n          slides.length - 1,\n        );\n        renderCarouselState();\n      };\n\n      const goPrevious = () => goTo(activeIndex - 1);\n      const goNext = () => goTo(activeIndex + 1);\n\n      previousButton?.addEventListener(\"click\", goPrevious);\n      nextButton?.addEventListener(\"click\", goNext);\n      track.addEventListener(\"scroll\", syncFromScroll, {\n        passive: true,\n      });\n      renderCarouselState();\n\n      cleanup.push(() => {\n        previousButton?.removeEventListener(\n          \"click\",\n          goPrevious,\n        );\n        nextButton?.removeEventListener(\"click\", goNext);\n        track.removeEventListener(\"scroll\", syncFromScroll);\n        selectCarouselMedia = null;\n      });\n    }\n\n    const promotionDate = root.querySelector(\n      \"[data-aqj-promotion-date]\",\n    );\n\n    const updatePromotionDate = () => {\n      if (!promotionDate) return;\n      promotionDate.textContent = new Intl.DateTimeFormat(\n        \"pt-BR\",\n        {\n          day: \"2-digit\",\n          month: \"long\",\n          year: \"numeric\",\n          timeZone: \"America/Sao_Paulo\",\n        },\n      ).format(new Date());\n    };\n\n    updatePromotionDate();\n    const dateInterval = window.setInterval(\n      updatePromotionDate,\n      60000,\n    );\n    cleanup.push(() => window.clearInterval(dateInterval));\n\n    const buyForm = root.querySelector(\"[data-aqj-buy-form]\");\n    if (buyForm) {\n      const optionGroups = [\n        ...buyForm.querySelectorAll(\"[data-aqj-option-group]\"),\n      ].sort(\n        (first, second) =>\n          Number(first.dataset.optionPosition || 0) -\n          Number(second.dataset.optionPosition || 0),\n      );\n      const optionInputs = [\n        ...buyForm.querySelectorAll(\"[data-aqj-option]\"),\n      ];\n      const variantInput = buyForm.querySelector(\n        \"[data-aqj-variant-id]\",\n      );\n      const submitButton = buyForm.querySelector(\n        \"[data-aqj-submit]\",\n      );\n      const status = buyForm.querySelector(\n        \"[data-aqj-variant-status]\",\n      );\n      const variantsElement = buyForm.querySelector(\n        \"[data-aqj-variants]\",\n      );\n      const sizeOpenButton = buyForm.querySelector(\n        \"[data-aqj-size-open]\",\n      );\n      const sizeDialog = buyForm.querySelector(\n        \"[data-aqj-size-dialog]\",\n      );\n      const sizeCloseButtons = [\n        ...buyForm.querySelectorAll(\"[data-aqj-size-close]\"),\n      ];\n      const availableLabel =\n        submitButton?.dataset.availableLabel?.trim() ||\n        submitButton?.textContent.trim() ||\n        \"Garantir j\u00E1 o meu\";\n      let variants = [];\n\n      try {\n        variants = JSON.parse(\n          variantsElement?.textContent || \"[]\",\n        );\n      } catch (_) {}\n\n      const syncVariant = (shouldSyncCarousel = false) => {\n        const selectedOptions = optionGroups.map((group) => {\n          const selectedInput = group.querySelector(\n            \"[data-aqj-option]:checked\",\n          );\n          const selectedValue = selectedInput?.value || \"\";\n          const selectedLabel = group.querySelector(\n            \"[data-aqj-selected-value]\",\n          );\n\n          if (selectedLabel) {\n            selectedLabel.textContent = selectedValue;\n          }\n          return selectedValue;\n        });\n        const variant = optionGroups.length\n          ? variants.find(\n              (candidate) =>\n                candidate.options.length ===\n                  selectedOptions.length &&\n                candidate.options.every(\n                  (option, index) =>\n                    String(option) === selectedOptions[index],\n                ),\n            )\n          : variants.find(\n              (candidate) =>\n                String(candidate.id) === variantInput?.value,\n            ) || variants[0];\n\n        if (!variant) {\n          if (variantInput) variantInput.value = \"\";\n          if (submitButton) {\n            submitButton.disabled = true;\n            submitButton.textContent =\n              \"Combina\u00E7\u00E3o indispon\u00EDvel\";\n          }\n          if (status) {\n            status.textContent =\n              \"Esta combina\u00E7\u00E3o n\u00E3o est\u00E1 dispon\u00EDvel.\";\n          }\n          return;\n        }\n\n        if (variantInput) {\n          variantInput.value = String(variant.id);\n        }\n        if (submitButton) {\n          submitButton.disabled = !variant.available;\n          submitButton.textContent = variant.available\n            ? availableLabel\n            : \"Produto esgotado\";\n        }\n        if (status) {\n          status.textContent = variant.available\n            ? \"\"\n            : \"Esta varia\u00E7\u00E3o est\u00E1 esgotada.\";\n        }\n\n        if (shouldSyncCarousel) {\n          selectCarouselMedia?.(\n            variant.featured_image?.id ||\n              variant.featured_media?.id,\n          );\n        }\n      };\n\n      const openSizeDialog = () => {\n        if (!sizeDialog || sizeDialog.open) return;\n        sizeOpenButton?.setAttribute(\"aria-expanded\", \"true\");\n        if (typeof sizeDialog.showModal === \"function\") {\n          try {\n            sizeDialog.showModal();\n            return;\n          } catch (_) {}\n        }\n        sizeDialog.setAttribute(\"open\", \"\");\n      };\n\n      const closeSizeDialog = () => {\n        if (!sizeDialog) return;\n        sizeOpenButton?.setAttribute(\"aria-expanded\", \"false\");\n        if (\n          typeof sizeDialog.close === \"function\" &&\n          sizeDialog.open\n        ) {\n          sizeDialog.close();\n        } else {\n          sizeDialog.removeAttribute(\"open\");\n        }\n      };\n\n      const handleOptionChange = (event) => {\n        const changedColor = Boolean(\n          event.currentTarget.closest(\n            \".aqj-option-group--cor\",\n          ),\n        );\n        syncVariant(changedColor);\n      };\n\n      const closeSizeDialogFromBackdrop = (event) => {\n        if (event.target === sizeDialog) {\n          closeSizeDialog();\n        }\n      };\n\n      optionInputs.forEach((input) =>\n        input.addEventListener(\"change\", handleOptionChange),\n      );\n      sizeOpenButton?.addEventListener(\"click\", openSizeDialog);\n      sizeCloseButtons.forEach((button) =>\n        button.addEventListener(\"click\", closeSizeDialog),\n      );\n      sizeDialog?.addEventListener(\n        \"click\",\n        closeSizeDialogFromBackdrop,\n      );\n      syncVariant(false);\n\n      cleanup.push(() => {\n        optionInputs.forEach((input) =>\n          input.removeEventListener(\n            \"change\",\n            handleOptionChange,\n          ),\n        );\n        sizeOpenButton?.removeEventListener(\n          \"click\",\n          openSizeDialog,\n        );\n        sizeCloseButtons.forEach((button) =>\n          button.removeEventListener(\n            \"click\",\n            closeSizeDialog,\n          ),\n        );\n        sizeDialog?.removeEventListener(\n          \"click\",\n          closeSizeDialogFromBackdrop,\n        );\n        closeSizeDialog();\n      });\n    }\n\n    root._aqjCleanup = () => {\n      isDisposed = true;\n      cleanup.forEach((callback) => callback());\n      delete root._aqjCleanup;\n      delete root.dataset.aqjReady;\n      window.setTimeout(() => {\n        if (!document.querySelector(ROOT_SELECTOR)) {\n          document.body.classList.remove(\"aqj-landing-active\");\n        }\n      }, 0);\n    };\n  }\n\n  function initAll(scope = document) {\n    if (scope.matches?.(ROOT_SELECTOR)) {\n      initRoot(scope);\n    }\n    scope\n      .querySelectorAll?.(ROOT_SELECTOR)\n      .forEach((root) => initRoot(root));\n  }\n\n  if (!window.AquaFitJacobinaLanding) {\n    window.AquaFitJacobinaLanding = { initAll };\n    if (document.readyState === \"loading\") {\n      document.addEventListener(\n        \"DOMContentLoaded\",\n        () => initAll(),\n        { once: true },\n      );\n    } else {\n      initAll();\n    }\n\n    document.addEventListener(\n      \"shopify:section:load\",\n      (event) => initAll(event.target),\n    );\n    document.addEventListener(\n      \"shopify:section:unload\",\n      (event) => {\n        const root = event.target.matches?.(ROOT_SELECTOR)\n          ? event.target\n          : event.target.querySelector?.(ROOT_SELECTOR);\n        root?._aqjCleanup?.();\n      },\n    );\n  } else {\n    window.AquaFitJacobinaLanding.initAll();\n  }\n})();\n"],
  "mappings": "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",
  "names": []
}
