{
  "version": 3,
  "sources": ["/cdn/shop/t/49/assets/eb-collection-variant-hover.js?version=1.0.276"],
  "sourcesContent": ["(() => {\n  // v1.4.0 (Task 110) Srcset widths come from the grid (data-eb-card-widths, same list as card-product.liquid); old ladder is the fallback.\n  // v1.3.0 (Task 104) Card data keeps the default pair only; a trusted swatch URL is handled directly.\n  // v1.2.0 (Task 99) Card data holds src, width and height only; the srcset string is built here.\n  // v1.1.2 (Task 98) Srcset ladder matches card-product.liquid: 400w and 600w steps added.\n  // v1.1.1 (Task 95.1) Keep selected image state through late Globo re-renders.\n  // \u0421\u043B\u0443\u0448\u0430\u0442\u0435\u043B\u044F scroll \u0431\u043E\u043B\u044C\u0448\u0435 \u043D\u0435\u0442: \u0441\u043C\u0435\u043D\u0430 \u043A\u0430\u0440\u0442\u0438\u043D\u043A\u0438 \u043D\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043E\u0442 \u043F\u0440\u043E\u043A\u0440\u0443\u0442\u043A\u0438, \u0430 \u043F\u043E\u0437\u0434\u043D\u0438\u0435 \u043F\u0435\u0440\u0435\u0440\u0438\u0441\u043E\u0432\u043A\u0438 Globo\n  // \u043B\u043E\u0432\u0438\u0442 MutationObserver \u043D\u0430 \u043A\u043E\u043D\u0442\u0435\u0439\u043D\u0435\u0440\u0435 \u0441\u0435\u0442\u043A\u0438. JSON \u0438\u0437 data-\u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043E\u0432 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044F \u043E\u0434\u0438\u043D \u0440\u0430\u0437 \u043D\u0430 \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0443.\n  const CARD_SELECTOR = '.product-card-wrapper .media--hover-effect[data-eb-variant-hover-media]';\n  const SHOPIFY_SIZE_SUFFIX = /_(?:pico|icon|thumb|small|compact|medium|large|grande|original|master|\\d+x\\d*|x\\d+)(?=\\.[a-z0-9]+$)/i;\n  const selectedImagesByCard = new Map();\n  // Task 110: \u0442\u0430 \u0436\u0435 \u043B\u0435\u0441\u0442\u043D\u0438\u0446\u0430, \u0447\u0442\u043E card-product.liquid \u043F\u0435\u0447\u0430\u0442\u0430\u0435\u0442 \u0431\u0435\u0437 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u0430 eb_widths.\n  const DEFAULT_WIDTHS = [165, 360, 400, 533, 600, 720, 940, 1066];\n  const widthsByGrid = new WeakMap();\n  let initFrame = null;\n  let gridObserver = null;\n  let gridObserverTarget = null;\n\n  const parseMediaData = (container, key, fallback) => {\n    try {\n      return JSON.parse(container.dataset[key] || fallback);\n    } catch (error) {\n      return JSON.parse(fallback);\n    }\n  };\n\n  // \u0420\u0430\u0437\u043E\u0431\u0440\u0430\u043D\u043D\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435 \u0436\u0438\u0432\u0443\u0442 \u043D\u0430 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0435: \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044B \u0443 \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0438 \u043D\u0435 \u043C\u0435\u043D\u044F\u044E\u0442\u0441\u044F, \u0430 \u0440\u0430\u0437\u0431\u043E\u0440 27 JSON\n  // \u043D\u0430 \u043A\u0430\u0436\u0434\u044B\u0439 \u043F\u0440\u043E\u0445\u043E\u0434 \u0431\u044B\u043B \u0441\u0430\u043C\u043E\u0439 \u0434\u043E\u0440\u043E\u0433\u043E\u0439 \u0447\u0430\u0441\u0442\u044C\u044E \u0441\u0438\u043D\u0445\u0440\u043E\u043D\u0438\u0437\u0430\u0446\u0438\u0438.\n  const getVariantMedia = (container) => {\n    if (!container._ebVariantMedia) container._ebVariantMedia = parseMediaData(container, 'ebVariantHoverMedia', '[]');\n    return container._ebVariantMedia;\n  };\n\n  const getFeaturedMedia = (container) => {\n    if (container._ebFeaturedMedia === undefined) container._ebFeaturedMedia = parseMediaData(container, 'ebFeaturedMedia', 'null');\n    return container._ebFeaturedMedia;\n  };\n\n  const normalizeImageUrl = (value) => {\n    if (!value) return '';\n\n    try {\n      const url = new URL(value, window.location.origin);\n      const pathParts = url.pathname.split('/').filter(Boolean);\n      const filename = pathParts.pop().replace(SHOPIFY_SIZE_SUFFIX, '');\n      const folder = pathParts.pop() || '';\n\n      return `${folder}/${filename}`.toLowerCase();\n    } catch (error) {\n      const pathParts = value.split('?')[0].split('/').filter(Boolean);\n      const filename = pathParts.pop().replace(SHOPIFY_SIZE_SUFFIX, '');\n      const folder = pathParts.pop() || '';\n\n      return `${folder}/${filename}`.toLowerCase();\n    }\n  };\n\n  // \u0420\u0430\u0437\u043C\u0435\u0440\u044B \u0441\u0440\u0430\u0432\u043D\u0438\u0432\u0430\u044E\u0442\u0441\u044F \u043F\u043E \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430\u043C: \u0441\u0432\u043E\u0439\u0441\u0442\u0432\u043E img.width \u0432\u043E\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043E\u0442\u0440\u0438\u0441\u043E\u0432\u0430\u043D\u043D\u0443\u044E \u0448\u0438\u0440\u0438\u043D\u0443 \u0438 \u0437\u0430\u0441\u0442\u0430\u0432\u043B\u044F\u0435\u0442 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\n  // \u0441\u0438\u043D\u0445\u0440\u043E\u043D\u043D\u043E \u043F\u0435\u0440\u0435\u0441\u0447\u0438\u0442\u0430\u0442\u044C \u0440\u0430\u0441\u043A\u043B\u0430\u0434\u043A\u0443 (PageSpeed: 75 \u043C\u0441 forced reflow \u043D\u0430 \u043A\u043E\u043B\u043B\u0435\u043A\u0446\u0438\u0438 \u043F\u043E\u0441\u043B\u0435 v1.1.0).\n  const setDimension = (img, name, value) => {\n    if (value == null) return;\n    const next = String(value);\n    if (img.getAttribute(name) !== next) img.setAttribute(name, next);\n  };\n\n  const setSecondaryImage = (secondaryImage, media) => {\n    if (!media) {\n      secondaryImage.hidden = true;\n      secondaryImage.removeAttribute('srcset');\n      secondaryImage.removeAttribute('src');\n      return;\n    }\n\n    secondaryImage.hidden = false;\n    const srcset = srcsetOf(media, widthsFor(secondaryImage));\n    if (secondaryImage.getAttribute('srcset') !== srcset) secondaryImage.srcset = srcset;\n    if (secondaryImage.getAttribute('src') !== media.src) secondaryImage.src = media.src;\n    setDimension(secondaryImage, 'width', media.width);\n    setDimension(secondaryImage, 'height', media.height);\n  };\n\n  // Task 110: \u0441\u0435\u0442\u043A\u0430 \u0441 \u0437\u0430\u043C\u0435\u0440\u0435\u043D\u043D\u043E\u0439 \u0440\u0430\u0441\u043A\u043B\u0430\u0434\u043A\u043E\u0439 \u043F\u0435\u0447\u0430\u0442\u0430\u0435\u0442 \u0441\u0432\u043E\u044E \u043B\u0435\u0441\u0442\u043D\u0438\u0446\u0443 \u0432 data-eb-card-widths (\u0435\u0451 \u0436\u0435 \u043F\u043E\u043B\u0443\u0447\u0430\u0435\u0442\n  // card-product.liquid), \u0438\u043D\u0430\u0447\u0435 \u043F\u043E\u0441\u043B\u0435 \u0441\u043C\u0435\u043D\u044B \u0446\u0432\u0435\u0442\u0430 srcset \u0440\u0430\u0441\u0445\u043E\u0434\u0438\u043B\u0441\u044F \u0431\u044B \u0441 Liquid.\n  const widthsFor = (element) => {\n    const grid = element && element.closest('[data-eb-card-widths]');\n    if (!grid) return DEFAULT_WIDTHS;\n    if (!widthsByGrid.has(grid)) {\n      const widths = grid.dataset.ebCardWidths.split(',').map(Number).filter((width) => width > 0);\n      widthsByGrid.set(grid, widths.length ? widths : DEFAULT_WIDTHS);\n    }\n    return widthsByGrid.get(grid);\n  };\n\n  const buildSrcset = (src, widths) => {\n    // Task 98: \u0441\u0442\u0443\u043F\u0435\u043D\u0438 400 \u0438 600 \u043F\u043E\u0432\u0442\u043E\u0440\u044F\u044E\u0442 \u043B\u0435\u0441\u0442\u043D\u0438\u0446\u0443 card-product.liquid, \u0438\u043D\u0430\u0447\u0435 \u043F\u043E\u0441\u043B\u0435 \u0441\u043C\u0435\u043D\u044B \u0446\u0432\u0435\u0442\u0430\n    // \u0442\u0435\u043B\u0435\u0444\u043E\u043D \u0441\u043D\u043E\u0432\u0430 \u0441\u043A\u0430\u0447\u0438\u0432\u0430\u0435\u0442 533w \u0442\u0430\u043C, \u0433\u0434\u0435 \u0445\u0432\u0430\u0442\u0430\u0435\u0442 400w.\n    return (widths || DEFAULT_WIDTHS)\n      .map((width) => `${resizeImage(src, width)} ${width}w`)\n      .join(', ');\n  };\n\n  // Task 99: srcset \u0431\u043E\u043B\u044C\u0448\u0435 \u043D\u0435 \u043F\u0435\u0447\u0430\u0442\u0430\u0435\u0442\u0441\u044F \u0432 data-\u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430\u0445 \u043A\u0430\u0440\u0442\u043E\u0447\u0435\u043A (\u043D\u0430 \u043A\u043E\u043B\u043B\u0435\u043A\u0446\u0438\u0438 \u044D\u0442\u043E \u0431\u044B\u043B\u043E 1158 \u041A\u0411),\n  // \u0441\u0442\u0440\u043E\u043A\u0430 \u0441\u043E\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044F \u0437\u0434\u0435\u0441\u044C \u043F\u0440\u0438 \u043F\u0435\u0440\u0432\u043E\u043C \u043E\u0431\u0440\u0430\u0449\u0435\u043D\u0438\u0438 \u0438 \u043E\u0441\u0442\u0430\u0451\u0442\u0441\u044F \u043D\u0430 \u0440\u0430\u0437\u043E\u0431\u0440\u0430\u043D\u043D\u043E\u043C \u043E\u0431\u044A\u0435\u043A\u0442\u0435.\n  const srcsetOf = (media, widths) => {\n    if (!media || !media.src) return '';\n    if (!media.srcset) media.srcset = buildSrcset(media.src, widths);\n    return media.srcset;\n  };\n\n  const resizeImage = (src, width) => {\n    try {\n      const url = new URL(src, window.location.origin);\n      url.searchParams.set('width', width);\n      return url.toString();\n    } catch (error) {\n      return src;\n    }\n  };\n\n  const getMediaByImage = (media, imageUrl) => {\n    const normalizedImage = normalizeImageUrl(imageUrl);\n\n    return media.find((item) => normalizeImageUrl(item.src) === normalizedImage);\n  };\n\n  const setPrimaryImage = (container, media) => {\n    const primaryImage = container.querySelector(':scope > img');\n\n    if (!media || !primaryImage) return;\n\n    const srcset = srcsetOf(media, widthsFor(container));\n    if (primaryImage.getAttribute('srcset') !== srcset) primaryImage.srcset = srcset;\n    if (primaryImage.getAttribute('src') !== media.src) primaryImage.src = media.src;\n    if (media.width && media.height) {\n      setDimension(primaryImage, 'width', media.width);\n      setDimension(primaryImage, 'height', media.height);\n    }\n  };\n\n  const setPrimaryImageFromUrl = (container, imageUrl) => {\n    const selectedImage = imageUrl;\n    if (!selectedImage) return;\n\n    const media = getVariantMedia(container);\n    const matchedMedia = getMediaByImage(media, selectedImage);\n    const fallbackMedia = {\n      src: resizeImage(selectedImage, 720),\n      srcset: buildSrcset(selectedImage, widthsFor(container)),\n    };\n\n    setPrimaryImage(container, matchedMedia || fallbackMedia);\n  };\n\n  const setPrimaryImageFromSwatch = (container, swatchItem) => {\n    setPrimaryImageFromUrl(container, swatchItem && swatchItem.getAttribute('productimage'));\n  };\n\n  const getCardKey = (container) => {\n    if (container._ebCardKey !== undefined) return container._ebCardKey;\n\n    const scope = container.closest('.product-card-wrapper') || container.closest('.grid-item');\n    const link = scope && scope.querySelector('a[href*=\"/products/\"]');\n    let key = '';\n    if (link) {\n      try {\n        key = new URL(link.getAttribute('href'), window.location.origin).pathname;\n      } catch (error) {\n        key = link.getAttribute('href') || '';\n      }\n    }\n    container._ebCardKey = key;\n    return key;\n  };\n\n  const getSelectedImage = (container) => {\n    const cardKey = getCardKey(container);\n    return container.dataset.ebSelectedImage || (cardKey && selectedImagesByCard.get(cardKey)) || '';\n  };\n\n  const syncPrimaryImage = (container) => {\n    const selectedImage = getSelectedImage(container);\n    if (selectedImage) {\n      if (container.dataset.ebVariantUserSelected !== 'true') container.dataset.ebVariantUserSelected = 'true';\n      setPrimaryImageFromUrl(container, selectedImage);\n      return;\n    }\n\n    if (container.dataset.ebVariantUserSelected !== 'false') container.dataset.ebVariantUserSelected = 'false';\n    const featuredMedia = getFeaturedMedia(container);\n    const primaryImage = container.querySelector(':scope > img');\n    if (!featuredMedia || !primaryImage) return;\n\n    const currentImage = normalizeImageUrl(primaryImage.getAttribute('src') || primaryImage.currentSrc || primaryImage.src);\n    const featuredImage = normalizeImageUrl(featuredMedia.src);\n    if (currentImage !== featuredImage) {\n      setPrimaryImage(container, featuredMedia);\n    }\n  };\n\n  const syncCardHoverImage = (container) => {\n    const media = getVariantMedia(container);\n    const images = container.querySelectorAll(':scope > img');\n    const primaryImage = images[0];\n    const secondaryImage = images[1];\n\n    if (!primaryImage || !secondaryImage || media.length < 2) return;\n\n    const currentImage = normalizeImageUrl(primaryImage.getAttribute('src') || primaryImage.currentSrc || primaryImage.src);\n    const currentIndex = media.findIndex((item) => normalizeImageUrl(item.src) === currentImage);\n\n    // The collection HTML carries only the default pair to keep the page small. When a swatch\n    // points at another product image, keep the existing secondary image instead of hiding it;\n    // the primary image is already updated directly from the trusted Globo URL.\n    if (currentIndex < 0) return;\n\n    setSecondaryImage(secondaryImage, currentIndex >= 0 ? media[currentIndex + 1] : null);\n  };\n\n  const initCard = (container) => {\n    if (container.dataset.ebVariantHoverInit === 'true') return;\n\n    container.dataset.ebVariantHoverInit = 'true';\n    syncPrimaryImage(container);\n    syncCardHoverImage(container);\n  };\n\n  const init = () => {\n    document.querySelectorAll(CARD_SELECTOR).forEach(initCard);\n  };\n\n  // \u041D\u0430\u0431\u043B\u044E\u0434\u0430\u0435\u043C \u0437\u0430 \u043A\u043E\u043D\u0442\u0435\u0439\u043D\u0435\u0440\u043E\u043C \u0441\u0435\u0442\u043A\u0438, \u0430 \u043D\u0435 \u0437\u0430 \u0441\u0430\u043C\u043E\u0439 \u0441\u0435\u0442\u043A\u043E\u0439: \u0444\u0438\u043B\u044C\u0442\u0440\u044B \u0437\u0430\u043C\u0435\u043D\u044F\u044E\u0442 #product-grid \u0446\u0435\u043B\u0438\u043A\u043E\u043C,\n  // \u0438 \u043D\u0430\u0431\u043B\u044E\u0434\u0430\u0442\u0435\u043B\u044C \u043D\u0430 \u0441\u0442\u0430\u0440\u043E\u043C \u0443\u0437\u043B\u0435 \u0442\u0435\u0440\u044F\u043B \u0431\u044B \u043D\u043E\u0432\u044B\u0435 \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0438.\n  const getGridObserverTarget = () =>\n    document.getElementById('ProductGridContainer') ||\n    document.querySelector('.product-grid-section') ||\n    document.getElementById('product-grid');\n\n  const observeProductGrid = () => {\n    const target = getGridObserverTarget();\n    if (!target || target === gridObserverTarget) return;\n\n    if (gridObserver) gridObserver.disconnect();\n    gridObserverTarget = target;\n    gridObserver = new MutationObserver(scheduleSyncAllCards);\n    gridObserver.observe(target, {\n      childList: true,\n      subtree: true,\n      attributes: true,\n      attributeFilter: ['src', 'srcset', 'class'],\n    });\n  };\n\n  const syncAllCards = () => {\n    document.querySelectorAll(CARD_SELECTOR).forEach((container) => {\n      initCard(container);\n      syncPrimaryImage(container);\n      syncCardHoverImage(container);\n    });\n  };\n\n  const scheduleSyncAllCards = () => {\n    if (initFrame) return;\n\n    initFrame = window.requestAnimationFrame(() => {\n      initFrame = null;\n      syncAllCards();\n    });\n  };\n\n  const start = () => {\n    init();\n    observeProductGrid();\n  };\n\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', start);\n  } else {\n    start();\n  }\n\n  const syncFromSwatchEvent = (event) => {\n    const swatchItem = event.target.closest('.swatches-globo li[productimage]');\n    if (!swatchItem) return;\n\n    const scope = event.target.closest('.product-card-wrapper') || event.target.closest('.grid-item');\n    if (!scope) return;\n    const container = scope.querySelector(CARD_SELECTOR);\n    if (event.type === 'click' && event.isTrusted && container) {\n      const selectedImage = swatchItem.getAttribute('productimage') || '';\n      const cardKey = getCardKey(container);\n\n      container.dataset.ebVariantUserSelected = 'true';\n      container.dataset.ebSelectedImage = selectedImage;\n      if (cardKey && selectedImage) selectedImagesByCard.set(cardKey, selectedImage);\n    }\n    if (!container || container.dataset.ebVariantUserSelected !== 'true') return;\n\n    setPrimaryImageFromSwatch(container, swatchItem);\n    syncCardHoverImage(container);\n\n    window.setTimeout(() => {\n      setPrimaryImageFromSwatch(container, swatchItem);\n      syncCardHoverImage(container);\n    }, 150);\n  };\n\n  document.addEventListener('click', syncFromSwatchEvent);\n  document.addEventListener('change', syncFromSwatchEvent);\n  document.addEventListener('shopify:section:load', () => {\n    observeProductGrid();\n    scheduleSyncAllCards();\n  });\n  window.addEventListener('pageshow', scheduleSyncAllCards);\n})();\n\n// v1.1.0 (Task 95) Proxy approach: visual .eb-btn-proxy in card-inner, scoped add-to-cart uses Globo selected variant.\n// Real .btn-globo stays in .swatches-globo \u2014 Globo event delegation works correctly.\n// \u041A\u043D\u043E\u043F\u043A\u0443 \u0441\u0442\u0430\u0432\u0438\u0442 CSS (custom.css: bottom \u0438 right \u0432\u043D\u0443\u0442\u0440\u0438 .card-inner, \u044D\u0442\u043E \u0440\u043E\u0432\u043D\u043E \u0442\u043E \u043C\u0435\u0441\u0442\u043E, \u043A\u043E\u0442\u043E\u0440\u043E\u0435 \u0440\u0430\u043D\u044C\u0448\u0435\n// \u0432\u044B\u0447\u0438\u0441\u043B\u044F\u043B \u0441\u043A\u0440\u0438\u043F\u0442 \u0447\u0435\u0440\u0435\u0437 getBoundingClientRect), \u043F\u043E\u044D\u0442\u043E\u043C\u0443 \u0441\u043B\u0443\u0448\u0430\u0442\u0435\u043B\u0435\u0439 scroll \u0438 resize \u0438 \u0441\u0435\u0440\u0438\u0439 \u0438\u0437 \u0448\u0435\u0441\u0442\u0438\n// \u043F\u0440\u043E\u0445\u043E\u0434\u043E\u0432 \u043F\u043E \u0441\u0435\u0442\u043A\u0435 \u0431\u043E\u043B\u044C\u0448\u0435 \u043D\u0435\u0442. \u041D\u043E\u0432\u044B\u0435 \u043A\u043D\u043E\u043F\u043A\u0438 Globo \u043B\u043E\u0432\u0438\u0442 MutationObserver \u043D\u0430 \u043A\u043E\u043D\u0442\u0435\u0439\u043D\u0435\u0440\u0435 \u0441\u0435\u0442\u043A\u0438.\n(() => {\n  const PROXY_CLASS = 'eb-btn-proxy';\n  const ICON_CLASS = 'eb-btn-proxy-icon';\n  const HIDDEN_ATTR = 'data-eb-hidden';\n  let scheduledFrame = 0;\n  let gridObserver = null;\n  let gridObserverTarget = null;\n\n  function ensureProxyIcon(proxy) {\n    if (proxy.querySelector('.' + ICON_CLASS) && proxy.childNodes.length === 1) return;\n\n    proxy.textContent = '';\n    const icon = document.createElement('span');\n    icon.className = ICON_CLASS;\n    icon.setAttribute('aria-hidden', 'true');\n    proxy.appendChild(icon);\n  }\n\n  function syncDisabled(realBtn, proxy) {\n    const dis = realBtn.disabled || realBtn.getAttribute('disabled') === 'disabled';\n    if (dis) {\n      if (proxy.getAttribute('disabled') !== 'disabled') proxy.setAttribute('disabled', 'disabled');\n    } else if (proxy.hasAttribute('disabled')) {\n      proxy.removeAttribute('disabled');\n    }\n  }\n\n  // v1.0.123: Add selected Globo variant without moving the real app button.\n  function buildCartFormData(realBtn) {\n    const scope = realBtn.closest('.swatches-globo') || realBtn.closest('.grid-item') || realBtn.parentElement;\n    const form =\n      realBtn.closest('form') ||\n      (scope && scope.querySelector('form[action*=\"/cart/add\"], form[action*=\"/cart\"]'));\n    const formData = form ? new FormData(form) : new FormData();\n    const checkedInput = scope && scope.querySelector('.swatches-globo input[type=\"radio\"]:checked');\n    const idFromInput = checkedInput && checkedInput.id && checkedInput.id.match(/swatch-collection-(\\d+)-/);\n    const variantId = formData.get('id') || (idFromInput && idFromInput[1]);\n\n    if (!variantId) return null;\n    formData.set('id', variantId);\n    if (!formData.get('quantity')) formData.set('quantity', '1');\n\n    return formData;\n  }\n\n  function updateCartBubble(cart) {\n    const cartIconBubble = document.querySelector('#cart-icon-bubble');\n    if (!cartIconBubble || !cart) return;\n\n    const count = cart.item_count || 0;\n    let cartCountBubble = cartIconBubble.querySelector('.cart-count-bubble');\n\n    if (!count) {\n      if (cartCountBubble) cartCountBubble.style.display = 'none';\n      return;\n    }\n\n    if (!cartCountBubble) {\n      cartCountBubble = document.createElement('div');\n      cartCountBubble.className = 'cart-count-bubble';\n      cartIconBubble.appendChild(cartCountBubble);\n    }\n\n    let visibleSpan = cartCountBubble.querySelector('span[aria-hidden=\"true\"]');\n    if (count < 100) {\n      if (!visibleSpan) {\n        visibleSpan = document.createElement('span');\n        visibleSpan.setAttribute('aria-hidden', 'true');\n        cartCountBubble.insertBefore(visibleSpan, cartCountBubble.firstChild);\n      }\n      visibleSpan.textContent = count;\n    } else if (visibleSpan) {\n      visibleSpan.remove();\n    }\n\n    let hiddenSpan = cartCountBubble.querySelector('.visually-hidden');\n    if (!hiddenSpan) {\n      hiddenSpan = document.createElement('span');\n      hiddenSpan.className = 'visually-hidden';\n      cartCountBubble.appendChild(hiddenSpan);\n    }\n    hiddenSpan.textContent = count + ' item' + (count !== 1 ? 's' : '');\n    cartCountBubble.style.display = '';\n  }\n\n  async function addSelectedVariant(realBtn, proxy) {\n    if (proxy._ebAdding) return;\n\n    const formData = buildCartFormData(realBtn);\n    if (!formData) {\n      realBtn.click();\n      return;\n    }\n\n    const cartUi = document.querySelector('cart-notification') || document.querySelector('cart-drawer');\n    if (cartUi && typeof cartUi.getSectionsToRender === 'function') {\n      const sectionIds = cartUi.getSectionsToRender().map((section) => section.id).filter(Boolean);\n      if (sectionIds.length) {\n        formData.set('sections', sectionIds.join(','));\n        formData.set('sections_url', window.location.pathname);\n      }\n      if (typeof cartUi.setActiveElement === 'function') cartUi.setActiveElement(proxy);\n    }\n\n    proxy._ebAdding = true;\n    proxy.setAttribute('aria-busy', 'true');\n\n    try {\n      const response = await fetch((window.routes && window.routes.cart_add_url) || '/cart/add.js', {\n        method: 'POST',\n        headers: {\n          Accept: 'application/json',\n          'X-Requested-With': 'XMLHttpRequest',\n        },\n        body: formData,\n      });\n      const parsedState = await response.json();\n\n      if (!response.ok || parsedState.status) {\n        throw new Error(parsedState.description || parsedState.message || 'Unable to add item to cart');\n      }\n\n      if (cartUi && typeof cartUi.renderContents === 'function') cartUi.renderContents(parsedState);\n\n      const cart = await fetch('/cart.js', { headers: { Accept: 'application/json' } }).then((cartResponse) => cartResponse.json());\n      updateCartBubble(cart);\n      window.dispatchEvent(new CustomEvent('globoSwatchProductsUpdateCart', { detail: { cart } }));\n      if (typeof publish !== 'undefined' && typeof PUB_SUB_EVENTS !== 'undefined') {\n        publish(PUB_SUB_EVENTS.cartUpdate, { source: 'eb-collection-proxy' });\n      }\n    } catch (error) {\n      console.error('[EB collection proxy] Add to cart failed:', error);\n      realBtn.click();\n    } finally {\n      proxy._ebAdding = false;\n      proxy.removeAttribute('aria-busy');\n    }\n  }\n\n  function createOrUpdateProxy(realBtn) {\n    const item = realBtn.closest('.grid-item');\n    const cardInner = item && item.querySelector('.card-inner');\n    if (!cardInner) return;\n\n    // Find or create proxy button inside card-inner\n    let proxy = cardInner.querySelector('.' + PROXY_CLASS);\n    if (!proxy) {\n      proxy = document.createElement('button');\n      proxy.className = PROXY_CLASS;\n      proxy.type = 'button';\n      proxy.setAttribute('aria-label', 'Add to cart');\n      ensureProxyIcon(proxy);\n      cardInner.appendChild(proxy);\n      item.setAttribute('data-eb-proxy-ready', '1');\n    }\n\n    // Hide real button in DOM \u2014 proxy takes visual role; real btn stays for Globo delegation\n    if (!realBtn.hasAttribute(HIDDEN_ATTR)) realBtn.setAttribute(HIDDEN_ATTR, '1');\n\n    // Sync disabled state from real button\n    syncDisabled(realBtn, proxy);\n\n    // Globo \u043C\u043E\u0436\u0435\u0442 \u043F\u0435\u0440\u0435\u0440\u0438\u0441\u043E\u0432\u0430\u0442\u044C \u0441\u0432\u043E\u044E \u043A\u043D\u043E\u043F\u043A\u0443: \u0442\u043E\u0433\u0434\u0430 \u043F\u0435\u0440\u0435\u043F\u0440\u0438\u0432\u044F\u0437\u044B\u0432\u0430\u0435\u043C \u043A\u043B\u0438\u043A \u0438 \u043D\u0430\u0431\u043B\u044E\u0434\u0430\u0442\u0435\u043B\u044C \u043A \u043D\u043E\u0432\u043E\u043C\u0443 \u0443\u0437\u043B\u0443.\n    if (proxy._ebRealBtn === realBtn) return;\n    proxy._ebRealBtn = realBtn;\n\n    // Forward proxy click through the selected Globo variant in the same card.\n    proxy.onclick = () => addSelectedVariant(realBtn, proxy);\n\n    // Watch real button attribute changes (e.g. sold-out state toggle on swatch select)\n    if (proxy._attrObserver) proxy._attrObserver.disconnect();\n    proxy._attrObserver = new MutationObserver(() => syncDisabled(realBtn, proxy));\n    proxy._attrObserver.observe(realBtn, { attributes: true, attributeFilter: ['disabled', 'class'] });\n  }\n\n  function processAll() {\n    document.querySelectorAll('#product-grid .btn-globo').forEach(createOrUpdateProxy);\n  }\n\n  function scheduleProcessAll() {\n    if (scheduledFrame) return;\n    scheduledFrame = requestAnimationFrame(() => {\n      scheduledFrame = 0;\n      processAll();\n    });\n  }\n\n  function getGridObserverTarget() {\n    return (\n      document.getElementById('ProductGridContainer') ||\n      document.querySelector('.product-grid-section') ||\n      document.getElementById('product-grid') ||\n      document.body\n    );\n  }\n\n  // \u041D\u0430\u0431\u043B\u044E\u0434\u0430\u0442\u0435\u043B\u044C \u043D\u0430 \u043A\u043E\u043D\u0442\u0435\u0439\u043D\u0435\u0440\u0435 \u0441\u0435\u0442\u043A\u0438 \u043F\u0435\u0440\u0435\u0436\u0438\u0432\u0430\u0435\u0442 \u0437\u0430\u043C\u0435\u043D\u0443 #product-grid \u0444\u0438\u043B\u044C\u0442\u0440\u0430\u043C\u0438; \u0440\u0435\u0430\u0433\u0438\u0440\u0443\u0435\u043C \u0442\u043E\u043B\u044C\u043A\u043E\n  // \u043D\u0430 \u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u043D\u044B\u0435 \u0443\u0437\u043B\u044B \u0441 \u043A\u043D\u043E\u043F\u043A\u043E\u0439 Globo \u0432\u043D\u0443\u0442\u0440\u0438.\n  function observeGrid() {\n    const target = getGridObserverTarget();\n    if (!target || target === gridObserverTarget) return;\n\n    if (gridObserver) gridObserver.disconnect();\n    gridObserverTarget = target;\n    gridObserver = new MutationObserver((mutations) => {\n      for (const m of mutations) {\n        for (const node of m.addedNodes) {\n          if (node.nodeType !== 1) continue;\n          if (node.classList.contains('btn-globo') || node.querySelector('.btn-globo, #product-grid')) {\n            scheduleProcessAll();\n            return;\n          }\n        }\n      }\n    });\n    gridObserver.observe(target, { childList: true, subtree: true });\n  }\n\n  function start() {\n    observeGrid();\n    processAll();\n  }\n\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', start);\n  } else {\n    start();\n  }\n\n  window.addEventListener('pageshow', scheduleProcessAll);\n  document.addEventListener('shopify:section:load', () => {\n    observeGrid();\n    scheduleProcessAll();\n  });\n})();\n"],
  "mappings": "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",
  "names": []
}
