{
  "version": 3,
  "sources": ["/cdn/shop/t/204/assets/theme.js?nocache=1790884083239"],
  "sourcesContent": ["/* ==========================================================================\n   Lumbeard \u2014 JS del tema (sin dependencias)\n   ========================================================================== */\n(function () {\n  \"use strict\";\n\n  var moneyFormat = function (cents) {\n    var value = (cents / 100).toLocaleString(\"es-MX\", {\n      minimumFractionDigits: 2,\n      maximumFractionDigits: 2,\n    });\n    return \"$\" + value;\n  };\n\n  /* ---------------- Toast ---------------- */\n  var toastEl = null;\n  function toast(message) {\n    if (!toastEl) {\n      toastEl = document.createElement(\"div\");\n      toastEl.className = \"toast\";\n      document.body.appendChild(toastEl);\n    }\n    toastEl.textContent = message;\n    toastEl.classList.add(\"is-visible\");\n    clearTimeout(toastEl._t);\n    toastEl._t = setTimeout(function () {\n      toastEl.classList.remove(\"is-visible\");\n    }, 2600);\n  }\n\n  /* ---------------- Announcement ticker ---------------- */\n  function initAnnouncement() {\n    document.querySelectorAll(\"[data-announcement]\").forEach(function (bar) {\n      var track = bar.querySelector(\".announcement__track\");\n      var items = track ? track.children.length : 0;\n      if (!track || items <= 1) return;\n      var index = 0;\n      setInterval(function () {\n        index = (index + 1) % items;\n        track.style.transform = \"translateY(-\" + index * 38 + \"px)\";\n      }, 3200);\n    });\n  }\n\n  /* ---------------- Hero carousel ----------------\n     Solo la primera diapositiva trae su imagen en el HTML. Las dem\u00E1s traen\n     data-src / data-srcset y se cargan cuando la p\u00E1gina ya termin\u00F3 de cargar\n     (o justo al mostrarse), para que en celular no compitan con la primera\n     imagen. */\n  function heroLoadSlide(slide) {\n    if (!slide) return;\n    var img = slide.querySelector(\"img[data-src]\");\n    if (!img) return;\n    if (img.dataset.srcset) {\n      img.srcset = img.dataset.srcset;\n      img.removeAttribute(\"data-srcset\");\n    }\n    img.src = img.dataset.src;\n    img.removeAttribute(\"data-src\");\n  }\n\n  function initHero() {\n    document.querySelectorAll(\"[data-hero]\").forEach(function (hero) {\n      var slides = hero.querySelectorAll(\".hero__slide\");\n      var dots = hero.querySelectorAll(\".hero__dot\");\n      var contents = hero.querySelectorAll(\"[data-hero-content]\");\n      if (slides.length <= 1) return;\n      var idx = 0;\n      var paused = false;\n\n      function loadRest() {\n        setTimeout(function () {\n          slides.forEach(heroLoadSlide);\n        }, 1200);\n      }\n      if (document.readyState === \"complete\") {\n        loadRest();\n      } else {\n        window.addEventListener(\"load\", loadRest);\n      }\n\n      function show(next) {\n        idx = (next + slides.length) % slides.length;\n        heroLoadSlide(slides[idx]);\n        slides.forEach(function (s, i) {\n          s.classList.toggle(\"is-active\", i === idx);\n        });\n        dots.forEach(function (d, i) {\n          d.classList.toggle(\"is-active\", i === idx);\n          var span = d.querySelector(\"span\");\n          if (i === idx && !span) {\n            d.innerHTML = \"<span></span>\";\n          } else if (i !== idx) {\n            d.innerHTML = \"\";\n          }\n        });\n        contents.forEach(function (c, i) {\n          c.hidden = i !== idx;\n        });\n      }\n\n      hero.querySelectorAll(\"[data-hero-next]\").forEach(function (b) {\n        b.addEventListener(\"click\", function () {\n          show(idx + 1);\n        });\n      });\n      hero.querySelectorAll(\"[data-hero-prev]\").forEach(function (b) {\n        b.addEventListener(\"click\", function () {\n          show(idx - 1);\n        });\n      });\n      dots.forEach(function (d, i) {\n        d.addEventListener(\"click\", function () {\n          show(i);\n        });\n      });\n      hero.addEventListener(\"mouseenter\", function () {\n        paused = true;\n      });\n      hero.addEventListener(\"mouseleave\", function () {\n        paused = false;\n      });\n\n      setInterval(function () {\n        if (!paused) show(idx + 1);\n      }, 6000);\n\n      show(0);\n    });\n  }\n\n  /* En el editor de temas, al recargar la secci\u00F3n se cargan todas sus im\u00E1genes. */\n  document.addEventListener(\"shopify:section:load\", function (e) {\n    if (!e.target || !e.target.querySelectorAll) return;\n    e.target.querySelectorAll(\".hero__slide\").forEach(heroLoadSlide);\n  });\n\n  /* ---------------- Cuenta regresiva hasta medianoche ---------------- */\n  function initCountdown() {\n    var clocks = document.querySelectorAll(\"[data-countdown]\");\n    if (!clocks.length) return;\n    var pad = function (n) {\n      return String(n).padStart(2, \"0\");\n    };\n    function tick() {\n      var now = new Date();\n      var midnight = new Date(now.getTime());\n      midnight.setHours(24, 0, 0, 0);\n      var diff = Math.max(0, midnight.getTime() - now.getTime());\n      var h = pad(Math.floor(diff / 3600000));\n      var m = pad(Math.floor((diff % 3600000) / 60000));\n      var s = pad(Math.floor((diff % 60000) / 1000));\n      clocks.forEach(function (clock) {\n        var eh = clock.querySelector(\"[data-countdown-hours]\");\n        var em = clock.querySelector(\"[data-countdown-minutes]\");\n        var es = clock.querySelector(\"[data-countdown-seconds]\");\n        if (eh) eh.textContent = h;\n        if (em) em.textContent = m;\n        if (es) es.textContent = s;\n      });\n    }\n    tick();\n    setInterval(tick, 1000);\n  }\n\n  /* ---------------- Pesta\u00F1as (Sobre tu pedido) ---------------- */\n  function initTabs() {\n    document.querySelectorAll(\"[data-tabs]\").forEach(function (root) {\n      var tabs = root.querySelectorAll(\"[data-tab]\");\n      var panels = root.querySelectorAll(\"[data-tab-panel]\");\n      if (!tabs.length) return;\n      function show(value) {\n        tabs.forEach(function (t) {\n          var on = t.dataset.tab === value;\n          t.classList.toggle(\"is-active\", on);\n          t.setAttribute(\"aria-selected\", on ? \"true\" : \"false\");\n        });\n        panels.forEach(function (p) {\n          p.hidden = p.dataset.tabPanel !== value;\n        });\n      }\n      tabs.forEach(function (t) {\n        t.addEventListener(\"click\", function () {\n          show(t.dataset.tab);\n        });\n      });\n      show(tabs[0].dataset.tab);\n    });\n  }\n\n  /* ---------------- Rese\u00F1as de Revie ----------------\n     Revie inyecta en la p\u00E1gina las rese\u00F1as del producto (widget 2, en JSON) y\n     los testimonios de la tienda (widget 4, ya en el HTML), adem\u00E1s del total y\n     la media. Rellenamos con ellos el dise\u00F1o de la ficha y de la portada para\n     que se actualicen solos. Si la p\u00E1gina actual no trae ning\u00FAn bloque de\n     Revie, se piden una vez a una versi\u00F3n ligera de la portada que solo trae\n     el bloque de Revie (/?view=revie-data, plantilla index.revie-data) y se\n     guardan en cach\u00E9 unas horas. */\n  var RV_STAR_ON =\n    '<svg class=\"is-on\" viewBox=\"0 0 24 24\" width=\"14\" height=\"14\"><path d=\"M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z\"/></svg>';\n  var RV_STAR_OFF =\n    '<svg viewBox=\"0 0 24 24\" width=\"14\" height=\"14\"><path d=\"M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z\"/></svg>';\n  var RV_BADGE =\n    '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" width=\"16\" height=\"16\"><path d=\"M12 2 15 5h4v4l3 3-3 3v4h-4l-3 3-3-3H5v-4l-3-3 3-3V5h4z\"/><path d=\"m9 12 2 2 4-4\"/></svg>';\n  var RV_MONTHS = [\"ene\", \"feb\", \"mar\", \"abr\", \"may\", \"jun\", \"jul\", \"ago\", \"sep\", \"oct\", \"nov\", \"dic\"];\n  var RV_CACHE_KEY = \"revie-data\";\n  var RV_CACHE_TTL = 6 * 60 * 60 * 1000;\n  var RV_CACHE_MAX = 12;\n  var RV_DATA_URL = \"/?view=revie-data\";\n\n  function rvEscape(value) {\n    return String(value == null ? \"\" : value).replace(/[&<>\"']/g, function (c) {\n      return { \"&\": \"&amp;\", \"<\": \"&lt;\", \">\": \"&gt;\", '\"': \"&quot;\", \"'\": \"&#39;\" }[c];\n    });\n  }\n\n  function rvStars(rating) {\n    var full = Math.round(parseFloat(rating) || 0);\n    var out = \"\";\n    for (var i = 1; i <= 5; i++) out += i <= full ? RV_STAR_ON : RV_STAR_OFF;\n    return '<div class=\"stars\"><span class=\"stars__icons\" aria-hidden=\"true\">' + out + \"</span></div>\";\n  }\n\n  function rvDate(value) {\n    var parts = String(value || \"\").split(\"T\")[0].split(\"-\");\n    if (parts.length !== 3 || !parts[0]) return \"\";\n    var month = RV_MONTHS[parseInt(parts[1], 10) - 1] || \"\";\n    return parseInt(parts[2], 10) + \" \" + month + \" \" + parts[0];\n  }\n\n  function rvInitials(name) {\n    return String(name || \"\")\n      .trim()\n      .split(/\\s+/)\n      .slice(0, 2)\n      .map(function (part) {\n        return part.charAt(0);\n      })\n      .join(\"\")\n      .toUpperCase();\n  }\n\n  /* Media y total de la tienda. */\n  function revieTotalsFrom(scope) {\n    if (!scope || !scope.querySelector) return null;\n    var list = scope.querySelector(\"#revieListTestimoniales\");\n    var head = list && list.parentElement ? list.parentElement.querySelector(\".topTest\") : null;\n    if (!head) head = scope.querySelector(\".topTest\");\n    if (!head) return null;\n    var numberEl = head.querySelector(\"div\");\n    var count = numberEl ? parseInt(String(numberEl.textContent).replace(/[^0-9]/g, \"\"), 10) : 0;\n    if (!count) return null;\n    var rating = 0;\n    var starEl = head.querySelector(\".titleRevie\") || head.querySelector(\".rv-stars\");\n    if (starEl) {\n      var match = String(starEl.getAttribute(\"title\") || \"\").match(/([0-9]+(?:[.,][0-9]+)?)/);\n      if (match) rating = parseFloat(match[1].replace(\",\", \".\"));\n      if (!rating) {\n        var style = String(starEl.getAttribute(\"style\") || \"\").match(/--rating:\\s*([0-9.]+)/);\n        if (style) rating = parseFloat(style[1]);\n      }\n    }\n    return { count: count, rating: rating };\n  }\n\n  /* Lista de rese\u00F1as: primero las del producto (widget 2) y si no, los\n     testimonios de la tienda (widget 4). */\n  function revieListFrom(scope) {\n    if (!scope || !scope.querySelector) return [];\n    var jsonEl = scope.querySelector(\"[data-rvw2-list]\");\n    if (jsonEl) {\n      try {\n        var rows = JSON.parse(jsonEl.textContent) || [];\n        if (rows.length) {\n          return rows.map(function (row) {\n            var customer = row.customer || {};\n            var name = [customer.firstName, customer.lastName].filter(Boolean).join(\" \");\n            return {\n              name: name || \"Cliente\",\n              stars: row.stars,\n              text: row.comment,\n              date: row.createdAt\n            };\n          });\n        }\n      } catch (e) {}\n    }\n    var items = scope.querySelectorAll(\".gridTestimoniales .p-test\");\n    var out = [];\n    Array.prototype.forEach.call(items, function (el) {\n      var comment = el.querySelector(\".tm-rev-com\");\n      var text = comment ? comment.textContent.trim() : \"\";\n      if (!text) return;\n      out.push({\n        name: el.getAttribute(\"data-name\") || \"Cliente\",\n        stars: parseFloat(el.getAttribute(\"data-stars\")) || 0,\n        text: text,\n        date: \"\"\n      });\n    });\n    return out;\n  }\n\n  function revieThousands(value) {\n    return Number(value).toLocaleString(\"en-US\");\n  }\n\n  function revieApplyTotals(totals) {\n    if (!totals) return;\n    document.querySelectorAll(\"[data-revie-shop-count]\").forEach(function (el) {\n      el.textContent = revieThousands(totals.count);\n    });\n    document.querySelectorAll(\"[data-revie-shop-label]\").forEach(function (el) {\n      el.textContent = String(el.textContent).replace(/[0-9][0-9.,]*/, revieThousands(totals.count));\n    });\n    if (!totals.rating) return;\n    document.querySelectorAll(\"[data-revie-shop-rating]\").forEach(function (el) {\n      var mode = el.getAttribute(\"data-revie-shop-rating\");\n      var value = totals.rating.toFixed(1);\n      if (mode === \"comma\") value = value.replace(\".\", \",\");\n      if (mode === \"over5\") value = value + \"/5\";\n      el.textContent = value;\n    });\n  }\n\n  function revieApplyList(list, grid) {\n    if (!list || !list.length || !grid) return;\n    var limit = parseInt(grid.dataset.revieLimit || \"6\", 10);\n    grid.innerHTML = list\n      .slice(0, limit)\n      .map(function (review) {\n        var date = rvDate(review.date);\n        return (\n          '<div class=\"rv__card\">' +\n          '<div class=\"rv__head\">' +\n          rvStars(review.stars) +\n          (date ? '<span class=\"rv__date\">' + date + \"</span>\" : \"\") +\n          \"</div>\" +\n          '<div class=\"rv__meta\"><span class=\"rv__avatar\">' +\n          rvInitials(review.name) +\n          \"</span><div>\" +\n          '<p class=\"rv__name\">' +\n          rvEscape(review.name) +\n          \" \" +\n          RV_BADGE +\n          \"</p>\" +\n          '<p class=\"rv__verified\">Compra verificada</p></div></div>' +\n          '<p class=\"rv__text\">' +\n          rvEscape(review.text) +\n          \"</p>\" +\n          \"</div>\"\n        );\n      })\n      .join(\"\");\n  }\n\n  function initRevie() {\n    var grid = document.querySelector(\"[data-revie-cards]\");\n    var targets = document.querySelector(\n      \"[data-revie-shop-count], [data-revie-shop-label], [data-revie-shop-rating]\"\n    );\n    if (!grid && !targets) return;\n\n    var totals = revieTotalsFrom(document);\n    var list = grid ? revieListFrom(document) : [];\n    if (totals) revieApplyTotals(totals);\n    if (list.length) revieApplyList(list, grid);\n\n    var needTotals = targets && !totals;\n    var needList = grid && !list.length;\n    if (!needTotals && !needList) return;\n\n    var cached = null;\n    try {\n      cached = JSON.parse(sessionStorage.getItem(RV_CACHE_KEY) || \"null\");\n    } catch (e) {\n      cached = null;\n    }\n    if (cached && cached.at && Date.now() - cached.at < RV_CACHE_TTL) {\n      if (cached.totals) revieApplyTotals(cached.totals);\n      if (cached.list) revieApplyList(cached.list, grid);\n      return;\n    }\n\n    fetch(RV_DATA_URL, { credentials: \"same-origin\" })\n      .then(function (res) {\n        return res.text();\n      })\n      .then(function (html) {\n        var doc = new DOMParser().parseFromString(html, \"text/html\");\n        var found = { totals: revieTotalsFrom(doc), list: revieListFrom(doc).slice(0, RV_CACHE_MAX) };\n        try {\n          sessionStorage.setItem(\n            RV_CACHE_KEY,\n            JSON.stringify({ at: Date.now(), totals: found.totals, list: found.list })\n          );\n        } catch (e) {}\n        if (found.totals) revieApplyTotals(found.totals);\n        if (found.list && found.list.length) revieApplyList(found.list, grid);\n      })\n      .catch(function () {});\n  }\n\n  /* ---------------- Acordeones ---------------- */\n  function initAccordions() {\n    document.querySelectorAll(\"[data-accordion] .accordion__trigger\").forEach(function (btn) {\n      btn.addEventListener(\"click\", function () {\n        var item = btn.closest(\".accordion__item\");\n        var group = btn.closest(\"[data-accordion]\");\n        var single = group && group.dataset.accordion === \"single\";\n        if (single) {\n          group.querySelectorAll(\".accordion__item\").forEach(function (other) {\n            if (other !== item) other.classList.remove(\"is-open\");\n          });\n        }\n        item.classList.toggle(\"is-open\");\n      });\n    });\n  }\n\n  /* ---------------- Men\u00FA m\u00F3vil ---------------- */\n  function initMobileMenu() {\n    var menu = document.querySelector(\"[data-mobile-menu]\");\n    var header = document.querySelector(\".header\");\n    if (!menu) return;\n    document.querySelectorAll(\"[data-menu-open]\").forEach(function (b) {\n      b.addEventListener(\"click\", function () {\n        menu.classList.add(\"is-open\");\n        if (header) header.classList.add(\"is-menu-open\");\n      });\n    });\n    menu.querySelectorAll(\"[data-menu-close]\").forEach(function (b) {\n      b.addEventListener(\"click\", function () {\n        menu.classList.remove(\"is-open\");\n        if (header) header.classList.remove(\"is-menu-open\");\n      });\n    });\n    menu.querySelectorAll(\"a\").forEach(function (a) {\n      a.addEventListener(\"click\", function () {\n        menu.classList.remove(\"is-open\");\n        if (header) header.classList.remove(\"is-menu-open\");\n      });\n    });\n  }\n\n  /* ---------------- Galer\u00EDa de producto ---------------- */\n  function initGallery() {\n    document.querySelectorAll(\"[data-gallery]\").forEach(function (gallery) {\n      var main = gallery.querySelector(\"[data-gallery-main]\");\n      gallery.querySelectorAll(\"[data-gallery-thumb]\").forEach(function (thumb) {\n        thumb.addEventListener(\"click\", function () {\n          if (!main) return;\n          main.src = thumb.dataset.full || thumb.querySelector(\"img\").src;\n          gallery.querySelectorAll(\"[data-gallery-thumb]\").forEach(function (t) {\n            t.classList.remove(\"is-active\");\n          });\n          thumb.classList.add(\"is-active\");\n        });\n      });\n    });\n  }\n\n  /* ---------------- Carrito ---------------- */\n  var drawer = null;\n\n  function openDrawer() {\n    if (!drawer) return;\n    drawer.classList.add(\"is-open\");\n    document.body.style.overflow = \"hidden\";\n  }\n  function closeDrawer() {\n    if (!drawer) return;\n    drawer.classList.remove(\"is-open\");\n    document.body.style.overflow = \"\";\n  }\n\n  function renderCart(cart) {\n    if (!drawer) return;\n    var body = drawer.querySelector(\"[data-cart-body]\");\n    var count = drawer.querySelector(\"[data-cart-count]\");\n    var total = drawer.querySelector(\"[data-cart-total]\");\n    var headerCount = document.querySelector(\"[data-header-cart-count]\");\n\n    if (count) count.textContent = cart.item_count;\n    if (headerCount) {\n      headerCount.textContent = cart.item_count;\n      headerCount.hidden = cart.item_count === 0;\n    }\n    if (total) total.textContent = moneyFormat(cart.total_price);\n\n    if (!body) return;\n    if (cart.item_count === 0) {\n      body.innerHTML =\n        '<div class=\"cart-empty\">' +\n        '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"><path d=\"M6 2 3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4Z\"/><path d=\"M3 6h18\"/><path d=\"M16 10a4 4 0 0 1-8 0\"/></svg>' +\n        \"<p>Tu carrito est\u00E1 vac\u00EDo.</p></div>\";\n      return;\n    }\n\n    body.innerHTML = cart.items\n      .map(function (item) {\n        var img = item.image ? item.image.replace(/(\\.[a-z]+)(\\?|$)/i, \"_160x$1$2\") : \"\";\n        return (\n          '<div class=\"cart-line\" data-line-key=\"' + item.key + '\">' +\n          '<img src=\"' + img + '\" alt=\"\">' +\n          '<div class=\"cart-line__body\">' +\n          '<p class=\"cart-line__title\">' + item.product_title + \"</p>\" +\n          '<p class=\"cart-line__price\">' + moneyFormat(item.final_line_price) + \"</p>\" +\n          '<div class=\"cart-line__row\">' +\n          '<span class=\"cart-line__qty\">' +\n          '<button type=\"button\" data-qty-change=\"' + item.key + '\" data-qty=\"' + (item.quantity - 1) + '\" aria-label=\"Disminuir\">\u2212</button>' +\n          \"<span>\" + item.quantity + \"</span>\" +\n          '<button type=\"button\" data-qty-change=\"' + item.key + '\" data-qty=\"' + (item.quantity + 1) + '\" aria-label=\"Aumentar\">+</button>' +\n          \"</span>\" +\n          '<button type=\"button\" class=\"cart-line__remove\" data-qty-change=\"' + item.key + '\" data-qty=\"0\" aria-label=\"Eliminar\">' +\n          '<svg viewBox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M3 6h18\"/><path d=\"M8 6V4h8v2\"/><path d=\"M19 6l-1 14H6L5 6\"/></svg>' +\n          \"</button>\" +\n          \"</div></div></div>\"\n        );\n      })\n      .join(\"\");\n\n    body.querySelectorAll(\"[data-qty-change]\").forEach(function (btn) {\n      btn.addEventListener(\"click\", function () {\n        changeLine(btn.dataset.qtyChange, parseInt(btn.dataset.qty, 10));\n      });\n    });\n  }\n\n  function fetchCart() {\n    return fetch(\"/cart.js\").then(function (r) {\n      return r.json();\n    });\n  }\n\n  function changeLine(key, quantity) {\n    fetch(\"/cart/change.js\", {\n      method: \"POST\",\n      headers: { \"Content-Type\": \"application/json\" },\n      body: JSON.stringify({ id: key, quantity: quantity }),\n    })\n      .then(function (r) {\n        return r.json();\n      })\n      .then(renderCart)\n      .catch(function () {\n        toast(\"No se pudo actualizar el carrito\");\n      });\n  }\n\n  function addToCart(variantId, quantity) {\n    return fetch(\"/cart/add.js\", {\n      method: \"POST\",\n      headers: { \"Content-Type\": \"application/json\" },\n      body: JSON.stringify({ items: [{ id: variantId, quantity: quantity }] }),\n    })\n      .then(function (r) {\n        if (!r.ok) throw new Error(\"add failed\");\n        return r.json();\n      })\n      .then(function () {\n        return fetchCart();\n      })\n      .then(function (cart) {\n        renderCart(cart);\n        openDrawer();\n        toast(\"Producto a\u00F1adido al carrito\");\n      })\n      .catch(function () {\n        toast(\"No se pudo a\u00F1adir el producto\");\n      });\n  }\n\n  function initCart() {\n    drawer = document.querySelector(\"[data-cart-drawer]\");\n\n    document.querySelectorAll(\"[data-cart-open]\").forEach(function (b) {\n      b.addEventListener(\"click\", function (e) {\n        e.preventDefault();\n        fetchCart().then(renderCart);\n        openDrawer();\n      });\n    });\n    if (drawer) {\n      drawer.querySelectorAll(\"[data-cart-close]\").forEach(function (b) {\n        b.addEventListener(\"click\", closeDrawer);\n      });\n    }\n\n    document.querySelectorAll('form[action*=\"/cart/add\"]').forEach(function (form) {\n      form.addEventListener(\"submit\", function (e) {\n        if (!drawer) return;\n        e.preventDefault();\n        var idInput = form.querySelector('[name=\"id\"]');\n        var qtyInput = form.querySelector('[name=\"quantity\"]');\n        addToCart(idInput.value, qtyInput ? parseInt(qtyInput.value, 10) : 1);\n      });\n    });\n\n    // Cantidad en la ficha de producto\n    document.querySelectorAll(\"[data-qty-box]\").forEach(function (box) {\n      var input = box.querySelector(\"input\");\n      box.querySelectorAll(\"button\").forEach(function (btn) {\n        btn.addEventListener(\"click\", function () {\n          var current = parseInt(input.value, 10) || 1;\n          var next = btn.dataset.dir === \"up\" ? current + 1 : Math.max(1, current - 1);\n          input.value = next;\n        });\n      });\n    });\n  }\n\n  /* ---------------- Variantes y paquetes de producto ---------------- */\n  var CHECK_ICON =\n    '<svg viewBox=\"0 0 24 24\" width=\"12\" height=\"12\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" aria-hidden=\"true\"><path d=\"M20 6 9 17l-5-5\"/></svg>';\n\n  function parseMoney(value) {\n    if (!value) return 0;\n    var n = parseFloat(String(value).replace(/[^0-9.,]/g, \"\").replace(/,/g, \"\"));\n    return isNaN(n) ? 0 : n;\n  }\n\n  function initProductVariants() {\n    document.querySelectorAll(\"[data-product]\").forEach(function (root) {\n      var idInput = root.querySelector(\"[data-variant-id]\");\n      var priceEl = root.querySelector(\"[data-price]\");\n      var compareEl = root.querySelector(\"[data-compare]\");\n      var offEl = root.querySelector(\"[data-off]\");\n      var mainImg = root.querySelector(\"[data-gallery-main]\");\n      var select = root.querySelector(\"[data-variant-select]\");\n      var bundles = root.querySelectorAll(\"[data-bundle]\");\n      var qtyInput = root.querySelector('[name=\"quantity\"]');\n\n      function sync(price, compare, image) {\n        if (priceEl && price) priceEl.textContent = price;\n        if (compareEl) {\n          if (compare) {\n            compareEl.textContent = compare;\n            compareEl.hidden = false;\n          } else {\n            compareEl.hidden = true;\n          }\n        }\n        if (offEl) {\n          var c = parseMoney(compare);\n          var p = parseMoney(price);\n          if (c > p && c > 0) {\n            offEl.textContent = \"\u2212\" + Math.round(((c - p) / c) * 100) + \"%\";\n            offEl.hidden = false;\n          } else {\n            offEl.hidden = true;\n          }\n        }\n        if (mainImg && image) mainImg.src = image;\n      }\n\n      if (select) {\n        select.addEventListener(\"change\", function () {\n          var opt = select.options[select.selectedIndex];\n          if (idInput) idInput.value = opt.value;\n          sync(opt.dataset.price, opt.dataset.compare, opt.dataset.image);\n        });\n      }\n\n      bundles.forEach(function (btn) {\n        btn.addEventListener(\"click\", function () {\n          if (btn.disabled) return;\n          if (idInput) idInput.value = btn.dataset.variantId;\n          if (btn.dataset.price) {\n            sync(btn.dataset.price, btn.dataset.compare, btn.dataset.image);\n          }\n          if (btn.dataset.qty && qtyInput) {\n            qtyInput.value = btn.dataset.qty;\n          }\n          bundles.forEach(function (other) {\n            var on = other === btn;\n            other.classList.toggle(\"is-active\", on);\n            other.setAttribute(\"aria-pressed\", on ? \"true\" : \"false\");\n            var radio = other.querySelector(\".buy__radio\");\n            if (radio) radio.innerHTML = on ? CHECK_ICON : \"\";\n          });\n        });\n      });\n    });\n  }\n\n  /* ---------------- Copiar cup\u00F3n ---------------- */\n  function initCouponCopy() {\n    document.querySelectorAll(\"[data-copy-code]\").forEach(function (btn) {\n      btn.addEventListener(\"click\", function () {\n        var code = btn.dataset.copyCode;\n        var done = function () {\n          btn.classList.add(\"is-copied\");\n          toast(\"Cup\u00F3n \" + code + \" copiado\");\n          setTimeout(function () {\n            btn.classList.remove(\"is-copied\");\n          }, 2000);\n        };\n        if (navigator.clipboard && navigator.clipboard.writeText) {\n          navigator.clipboard.writeText(code).then(done, done);\n        } else {\n          done();\n        }\n      });\n    });\n  }\n\n  /* ---------------- Newsletter (demo) ---------------- */\n  function initNewsletter() {\n    document.querySelectorAll(\"[data-newsletter]\").forEach(function (wrap) {\n      var form = wrap.querySelector(\"form\");\n      if (!form) return;\n      form.addEventListener(\"submit\", function (e) {\n        e.preventDefault();\n        var success = wrap.querySelector(\"[data-newsletter-success]\");\n        if (success) {\n          form.hidden = true;\n          success.hidden = false;\n        }\n        toast(\"\u00A1Gracias! Te avisaremos de las pr\u00F3ximas promociones.\");\n      });\n    });\n  }\n\n  /* ---------------- Init ---------------- */\n  function init() {\n    initAnnouncement();\n    initCountdown();\n    initTabs();\n    initHero();\n    initAccordions();\n    initMobileMenu();\n    initGallery();\n    initCart();\n    initProductVariants();\n    initCouponCopy();\n    initRevie();\n    initNewsletter();\n    fetchCart()\n      .then(function (cart) {\n        var headerCount = document.querySelector(\"[data-header-cart-count]\");\n        if (headerCount) {\n          headerCount.textContent = cart.item_count;\n          headerCount.hidden = cart.item_count === 0;\n        }\n        if (drawer) renderCart(cart);\n      })\n      .catch(function () {});\n  }\n\n  if (document.readyState === \"loading\") {\n    document.addEventListener(\"DOMContentLoaded\", init);\n  } else {\n    init();\n  }\n})();\n"],
  "mappings": "CAGC,UAAY,CACX,aAEA,IAAI,YAAc,SAAU,MAAO,CACjC,IAAI,OAAS,MAAQ,KAAK,eAAe,QAAS,CAChD,sBAAuB,EACvB,sBAAuB,CACzB,CAAC,EACD,MAAO,IAAM,KACf,EAGI,QAAU,KACd,SAAS,MAAM,QAAS,CACjB,UACH,QAAU,SAAS,cAAc,KAAK,EACtC,QAAQ,UAAY,QACpB,SAAS,KAAK,YAAY,OAAO,GAEnC,QAAQ,YAAc,QACtB,QAAQ,UAAU,IAAI,YAAY,EAClC,aAAa,QAAQ,EAAE,EACvB,QAAQ,GAAK,WAAW,UAAY,CAClC,QAAQ,UAAU,OAAO,YAAY,CACvC,EAAG,IAAI,CACT,CAGA,SAAS,kBAAmB,CAC1B,SAAS,iBAAiB,qBAAqB,EAAE,QAAQ,SAAU,IAAK,CACtE,IAAI,MAAQ,IAAI,cAAc,sBAAsB,EAChD,MAAQ,MAAQ,MAAM,SAAS,OAAS,EAC5C,GAAI,GAAC,OAAS,OAAS,GACvB,KAAI,MAAQ,EACZ,YAAY,UAAY,CACtB,OAAS,MAAQ,GAAK,MACtB,MAAM,MAAM,UAAY,eAAiB,MAAQ,GAAK,KACxD,EAAG,IAAI,EACT,CAAC,CACH,CAOA,SAAS,cAAc,MAAO,CAC5B,GAAK,MACL,KAAI,IAAM,MAAM,cAAc,eAAe,EACxC,MACD,IAAI,QAAQ,SACd,IAAI,OAAS,IAAI,QAAQ,OACzB,IAAI,gBAAgB,aAAa,GAEnC,IAAI,IAAM,IAAI,QAAQ,IACtB,IAAI,gBAAgB,UAAU,GAChC,CAEA,SAAS,UAAW,CAClB,SAAS,iBAAiB,aAAa,EAAE,QAAQ,SAAU,KAAM,CAC/D,IAAI,OAAS,KAAK,iBAAiB,cAAc,EAC7C,KAAO,KAAK,iBAAiB,YAAY,EACzC,SAAW,KAAK,iBAAiB,qBAAqB,EAC1D,GAAI,OAAO,QAAU,EAAG,OACxB,IAAI,IAAM,EACN,OAAS,GAEb,SAAS,UAAW,CAClB,WAAW,UAAY,CACrB,OAAO,QAAQ,aAAa,CAC9B,EAAG,IAAI,CACT,CACI,SAAS,aAAe,WAC1B,SAAS,EAET,OAAO,iBAAiB,OAAQ,QAAQ,EAG1C,SAAS,KAAK,KAAM,CAClB,KAAO,KAAO,OAAO,QAAU,OAAO,OACtC,cAAc,OAAO,GAAG,CAAC,EACzB,OAAO,QAAQ,SAAU,EAAG,EAAG,CAC7B,EAAE,UAAU,OAAO,YAAa,IAAM,GAAG,CAC3C,CAAC,EACD,KAAK,QAAQ,SAAU,EAAG,EAAG,CAC3B,EAAE,UAAU,OAAO,YAAa,IAAM,GAAG,EACzC,IAAI,KAAO,EAAE,cAAc,MAAM,EAC7B,IAAM,KAAO,CAAC,KAChB,EAAE,UAAY,gBACL,IAAM,MACf,EAAE,UAAY,GAElB,CAAC,EACD,SAAS,QAAQ,SAAU,EAAG,EAAG,CAC/B,EAAE,OAAS,IAAM,GACnB,CAAC,CACH,CAEA,KAAK,iBAAiB,kBAAkB,EAAE,QAAQ,SAAU,EAAG,CAC7D,EAAE,iBAAiB,QAAS,UAAY,CACtC,KAAK,IAAM,CAAC,CACd,CAAC,CACH,CAAC,EACD,KAAK,iBAAiB,kBAAkB,EAAE,QAAQ,SAAU,EAAG,CAC7D,EAAE,iBAAiB,QAAS,UAAY,CACtC,KAAK,IAAM,CAAC,CACd,CAAC,CACH,CAAC,EACD,KAAK,QAAQ,SAAU,EAAG,EAAG,CAC3B,EAAE,iBAAiB,QAAS,UAAY,CACtC,KAAK,CAAC,CACR,CAAC,CACH,CAAC,EACD,KAAK,iBAAiB,aAAc,UAAY,CAC9C,OAAS,EACX,CAAC,EACD,KAAK,iBAAiB,aAAc,UAAY,CAC9C,OAAS,EACX,CAAC,EAED,YAAY,UAAY,CACjB,QAAQ,KAAK,IAAM,CAAC,CAC3B,EAAG,GAAI,EAEP,KAAK,CAAC,CACR,CAAC,CACH,CAGA,SAAS,iBAAiB,uBAAwB,SAAU,EAAG,CACzD,CAAC,EAAE,QAAU,CAAC,EAAE,OAAO,kBAC3B,EAAE,OAAO,iBAAiB,cAAc,EAAE,QAAQ,aAAa,CACjE,CAAC,EAGD,SAAS,eAAgB,CACvB,IAAI,OAAS,SAAS,iBAAiB,kBAAkB,EACzD,GAAI,CAAC,OAAO,OAAQ,OACpB,IAAI,IAAM,SAAU,EAAG,CACrB,OAAO,OAAO,CAAC,EAAE,SAAS,EAAG,GAAG,CAClC,EACA,SAAS,MAAO,CACd,IAAI,IAAM,IAAI,KACV,SAAW,IAAI,KAAK,IAAI,QAAQ,CAAC,EACrC,SAAS,SAAS,GAAI,EAAG,EAAG,CAAC,EAC7B,IAAI,KAAO,KAAK,IAAI,EAAG,SAAS,QAAQ,EAAI,IAAI,QAAQ,CAAC,EACrD,EAAI,IAAI,KAAK,MAAM,KAAO,IAAO,CAAC,EAClC,EAAI,IAAI,KAAK,MAAO,KAAO,KAAW,GAAK,CAAC,EAC5C,EAAI,IAAI,KAAK,MAAO,KAAO,IAAS,GAAI,CAAC,EAC7C,OAAO,QAAQ,SAAU,MAAO,CAC9B,IAAI,GAAK,MAAM,cAAc,wBAAwB,EACjD,GAAK,MAAM,cAAc,0BAA0B,EACnD,GAAK,MAAM,cAAc,0BAA0B,EACnD,KAAI,GAAG,YAAc,GACrB,KAAI,GAAG,YAAc,GACrB,KAAI,GAAG,YAAc,EAC3B,CAAC,CACH,CACA,KAAK,EACL,YAAY,KAAM,GAAI,CACxB,CAGA,SAAS,UAAW,CAClB,SAAS,iBAAiB,aAAa,EAAE,QAAQ,SAAU,KAAM,CAC/D,IAAI,KAAO,KAAK,iBAAiB,YAAY,EACzC,OAAS,KAAK,iBAAiB,kBAAkB,EACrD,GAAI,CAAC,KAAK,OAAQ,OAClB,SAAS,KAAK,MAAO,CACnB,KAAK,QAAQ,SAAU,EAAG,CACxB,IAAI,GAAK,EAAE,QAAQ,MAAQ,MAC3B,EAAE,UAAU,OAAO,YAAa,EAAE,EAClC,EAAE,aAAa,gBAAiB,GAAK,OAAS,OAAO,CACvD,CAAC,EACD,OAAO,QAAQ,SAAU,EAAG,CAC1B,EAAE,OAAS,EAAE,QAAQ,WAAa,KACpC,CAAC,CACH,CACA,KAAK,QAAQ,SAAU,EAAG,CACxB,EAAE,iBAAiB,QAAS,UAAY,CACtC,KAAK,EAAE,QAAQ,GAAG,CACpB,CAAC,CACH,CAAC,EACD,KAAK,KAAK,CAAC,EAAE,QAAQ,GAAG,CAC1B,CAAC,CACH,CAUA,IAAI,WACF,+KACE,YACF,iKACE,SACF,wMACE,UAAY,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAK,EAC/F,aAAe,aACf,aAAe,IAAS,GAAK,IAC7B,aAAe,GACf,YAAc,oBAElB,SAAS,SAAS,MAAO,CACvB,OAAO,OAAO,OAAS,KAAO,GAAK,KAAK,EAAE,QAAQ,WAAY,SAAU,EAAG,CACzE,MAAO,CAAE,IAAK,QAAS,IAAK,OAAQ,IAAK,OAAQ,IAAK,SAAU,IAAK,OAAQ,EAAE,CAAC,CAClF,CAAC,CACH,CAEA,SAAS,QAAQ,OAAQ,CAGvB,QAFI,KAAO,KAAK,MAAM,WAAW,MAAM,GAAK,CAAC,EACzC,IAAM,GACD,EAAI,EAAG,GAAK,EAAG,IAAK,KAAO,GAAK,KAAO,WAAa,YAC7D,MAAO,oEAAsE,IAAM,eACrF,CAEA,SAAS,OAAO,MAAO,CACrB,IAAI,MAAQ,OAAO,OAAS,EAAE,EAAE,MAAM,GAAG,EAAE,CAAC,EAAE,MAAM,GAAG,EACvD,GAAI,MAAM,SAAW,GAAK,CAAC,MAAM,CAAC,EAAG,MAAO,GAC5C,IAAI,MAAQ,UAAU,SAAS,MAAM,CAAC,EAAG,EAAE,EAAI,CAAC,GAAK,GACrD,OAAO,SAAS,MAAM,CAAC,EAAG,EAAE,EAAI,IAAM,MAAQ,IAAM,MAAM,CAAC,CAC7D,CAEA,SAAS,WAAW,KAAM,CACxB,OAAO,OAAO,MAAQ,EAAE,EACrB,KAAK,EACL,MAAM,KAAK,EACX,MAAM,EAAG,CAAC,EACV,IAAI,SAAU,KAAM,CACnB,OAAO,KAAK,OAAO,CAAC,CACtB,CAAC,EACA,KAAK,EAAE,EACP,YAAY,CACjB,CAGA,SAAS,gBAAgB,MAAO,CAC9B,GAAI,CAAC,OAAS,CAAC,MAAM,cAAe,OAAO,KAC3C,IAAI,KAAO,MAAM,cAAc,yBAAyB,EACpD,KAAO,MAAQ,KAAK,cAAgB,KAAK,cAAc,cAAc,UAAU,EAAI,KAEvF,GADK,OAAM,KAAO,MAAM,cAAc,UAAU,GAC5C,CAAC,KAAM,OAAO,KAClB,IAAI,SAAW,KAAK,cAAc,KAAK,EACnC,MAAQ,SAAW,SAAS,OAAO,SAAS,WAAW,EAAE,QAAQ,UAAW,EAAE,EAAG,EAAE,EAAI,EAC3F,GAAI,CAAC,MAAO,OAAO,KACnB,IAAI,OAAS,EACT,OAAS,KAAK,cAAc,aAAa,GAAK,KAAK,cAAc,WAAW,EAChF,GAAI,OAAQ,CACV,IAAI,MAAQ,OAAO,OAAO,aAAa,OAAO,GAAK,EAAE,EAAE,MAAM,yBAAyB,EAEtF,GADI,QAAO,OAAS,WAAW,MAAM,CAAC,EAAE,QAAQ,IAAK,GAAG,CAAC,GACrD,CAAC,OAAQ,CACX,IAAI,MAAQ,OAAO,OAAO,aAAa,OAAO,GAAK,EAAE,EAAE,MAAM,uBAAuB,EAChF,QAAO,OAAS,WAAW,MAAM,CAAC,CAAC,EACzC,CACF,CACA,MAAO,CAAE,MAAO,MAAO,OAAQ,MAAO,CACxC,CAIA,SAAS,cAAc,MAAO,CAC5B,GAAI,CAAC,OAAS,CAAC,MAAM,cAAe,MAAO,CAAC,EAC5C,IAAI,OAAS,MAAM,cAAc,kBAAkB,EACnD,GAAI,OACF,GAAI,CACF,IAAI,KAAO,KAAK,MAAM,OAAO,WAAW,GAAK,CAAC,EAC9C,GAAI,KAAK,OACP,OAAO,KAAK,IAAI,SAAU,IAAK,CAC7B,IAAI,SAAW,IAAI,UAAY,CAAC,EAC5B,KAAO,CAAC,SAAS,UAAW,SAAS,QAAQ,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG,EAC3E,MAAO,CACL,KAAM,MAAQ,UACd,MAAO,IAAI,MACX,KAAM,IAAI,QACV,KAAM,IAAI,SACZ,CACF,CAAC,CAEL,OAAS,EAAG,CAAC,CAEf,IAAI,MAAQ,MAAM,iBAAiB,4BAA4B,EAC3D,IAAM,CAAC,EACX,aAAM,UAAU,QAAQ,KAAK,MAAO,SAAU,GAAI,CAChD,IAAI,QAAU,GAAG,cAAc,aAAa,EACxC,KAAO,QAAU,QAAQ,YAAY,KAAK,EAAI,GAC7C,MACL,IAAI,KAAK,CACP,KAAM,GAAG,aAAa,WAAW,GAAK,UACtC,MAAO,WAAW,GAAG,aAAa,YAAY,CAAC,GAAK,EACpD,KAAM,KACN,KAAM,EACR,CAAC,CACH,CAAC,EACM,GACT,CAEA,SAAS,eAAe,MAAO,CAC7B,OAAO,OAAO,KAAK,EAAE,eAAe,OAAO,CAC7C,CAEA,SAAS,iBAAiB,OAAQ,CAC3B,SACL,SAAS,iBAAiB,yBAAyB,EAAE,QAAQ,SAAU,GAAI,CACzE,GAAG,YAAc,eAAe,OAAO,KAAK,CAC9C,CAAC,EACD,SAAS,iBAAiB,yBAAyB,EAAE,QAAQ,SAAU,GAAI,CACzE,GAAG,YAAc,OAAO,GAAG,WAAW,EAAE,QAAQ,gBAAiB,eAAe,OAAO,KAAK,CAAC,CAC/F,CAAC,EACI,OAAO,QACZ,SAAS,iBAAiB,0BAA0B,EAAE,QAAQ,SAAU,GAAI,CAC1E,IAAI,KAAO,GAAG,aAAa,wBAAwB,EAC/C,MAAQ,OAAO,OAAO,QAAQ,CAAC,EAC/B,OAAS,UAAS,MAAQ,MAAM,QAAQ,IAAK,GAAG,GAChD,OAAS,UAAS,MAAQ,MAAQ,MACtC,GAAG,YAAc,KACnB,CAAC,EACH,CAEA,SAAS,eAAe,KAAM,KAAM,CAClC,GAAI,GAAC,MAAQ,CAAC,KAAK,QAAU,CAAC,MAC9B,KAAI,MAAQ,SAAS,KAAK,QAAQ,YAAc,IAAK,EAAE,EACvD,KAAK,UAAY,KACd,MAAM,EAAG,KAAK,EACd,IAAI,SAAU,OAAQ,CACrB,IAAI,KAAO,OAAO,OAAO,IAAI,EAC7B,MACE,+CAEA,QAAQ,OAAO,KAAK,GACnB,KAAO,0BAA4B,KAAO,UAAY,IACvD,wDAEA,WAAW,OAAO,IAAI,EACtB,mCAEA,SAAS,OAAO,IAAI,EACpB,IACA,SACA,oFAGA,SAAS,OAAO,IAAI,EACpB,YAGJ,CAAC,EACA,KAAK,EAAE,EACZ,CAEA,SAAS,WAAY,CACnB,IAAI,KAAO,SAAS,cAAc,oBAAoB,EAClD,QAAU,SAAS,cACrB,4EACF,EACA,GAAI,GAAC,MAAQ,CAAC,SAEd,KAAI,OAAS,gBAAgB,QAAQ,EACjC,KAAO,KAAO,cAAc,QAAQ,EAAI,CAAC,EACzC,QAAQ,iBAAiB,MAAM,EAC/B,KAAK,QAAQ,eAAe,KAAM,IAAI,EAE1C,IAAI,WAAa,SAAW,CAAC,OACzB,SAAW,MAAQ,CAAC,KAAK,OAC7B,GAAI,GAAC,YAAc,CAAC,UAEpB,KAAI,OAAS,KACb,GAAI,CACF,OAAS,KAAK,MAAM,eAAe,QAAQ,YAAY,GAAK,MAAM,CACpE,OAAS,EAAG,CACV,OAAS,IACX,CACA,GAAI,QAAU,OAAO,IAAM,KAAK,IAAI,EAAI,OAAO,GAAK,aAAc,CAC5D,OAAO,QAAQ,iBAAiB,OAAO,MAAM,EAC7C,OAAO,MAAM,eAAe,OAAO,KAAM,IAAI,EACjD,MACF,CAEA,MAAM,YAAa,CAAE,YAAa,aAAc,CAAC,EAC9C,KAAK,SAAU,IAAK,CACnB,OAAO,IAAI,KAAK,CAClB,CAAC,EACA,KAAK,SAAU,KAAM,CACpB,IAAI,IAAM,IAAI,UAAU,EAAE,gBAAgB,KAAM,WAAW,EACvD,MAAQ,CAAE,OAAQ,gBAAgB,GAAG,EAAG,KAAM,cAAc,GAAG,EAAE,MAAM,EAAG,YAAY,CAAE,EAC5F,GAAI,CACF,eAAe,QACb,aACA,KAAK,UAAU,CAAE,GAAI,KAAK,IAAI,EAAG,OAAQ,MAAM,OAAQ,KAAM,MAAM,IAAK,CAAC,CAC3E,CACF,OAAS,EAAG,CAAC,CACT,MAAM,QAAQ,iBAAiB,MAAM,MAAM,EAC3C,MAAM,MAAQ,MAAM,KAAK,QAAQ,eAAe,MAAM,KAAM,IAAI,CACtE,CAAC,EACA,MAAM,UAAY,CAAC,CAAC,GACzB,CAGA,SAAS,gBAAiB,CACxB,SAAS,iBAAiB,sCAAsC,EAAE,QAAQ,SAAU,IAAK,CACvF,IAAI,iBAAiB,QAAS,UAAY,CACxC,IAAI,KAAO,IAAI,QAAQ,kBAAkB,EACrC,MAAQ,IAAI,QAAQ,kBAAkB,EACtC,OAAS,OAAS,MAAM,QAAQ,YAAc,SAC9C,QACF,MAAM,iBAAiB,kBAAkB,EAAE,QAAQ,SAAU,MAAO,CAC9D,QAAU,MAAM,MAAM,UAAU,OAAO,SAAS,CACtD,CAAC,EAEH,KAAK,UAAU,OAAO,SAAS,CACjC,CAAC,CACH,CAAC,CACH,CAGA,SAAS,gBAAiB,CACxB,IAAI,KAAO,SAAS,cAAc,oBAAoB,EAClD,OAAS,SAAS,cAAc,SAAS,EACxC,OACL,SAAS,iBAAiB,kBAAkB,EAAE,QAAQ,SAAU,EAAG,CACjE,EAAE,iBAAiB,QAAS,UAAY,CACtC,KAAK,UAAU,IAAI,SAAS,EACxB,QAAQ,OAAO,UAAU,IAAI,cAAc,CACjD,CAAC,CACH,CAAC,EACD,KAAK,iBAAiB,mBAAmB,EAAE,QAAQ,SAAU,EAAG,CAC9D,EAAE,iBAAiB,QAAS,UAAY,CACtC,KAAK,UAAU,OAAO,SAAS,EAC3B,QAAQ,OAAO,UAAU,OAAO,cAAc,CACpD,CAAC,CACH,CAAC,EACD,KAAK,iBAAiB,GAAG,EAAE,QAAQ,SAAU,EAAG,CAC9C,EAAE,iBAAiB,QAAS,UAAY,CACtC,KAAK,UAAU,OAAO,SAAS,EAC3B,QAAQ,OAAO,UAAU,OAAO,cAAc,CACpD,CAAC,CACH,CAAC,EACH,CAGA,SAAS,aAAc,CACrB,SAAS,iBAAiB,gBAAgB,EAAE,QAAQ,SAAU,QAAS,CACrE,IAAI,KAAO,QAAQ,cAAc,qBAAqB,EACtD,QAAQ,iBAAiB,sBAAsB,EAAE,QAAQ,SAAU,MAAO,CACxE,MAAM,iBAAiB,QAAS,UAAY,CACrC,OACL,KAAK,IAAM,MAAM,QAAQ,MAAQ,MAAM,cAAc,KAAK,EAAE,IAC5D,QAAQ,iBAAiB,sBAAsB,EAAE,QAAQ,SAAU,EAAG,CACpE,EAAE,UAAU,OAAO,WAAW,CAChC,CAAC,EACD,MAAM,UAAU,IAAI,WAAW,EACjC,CAAC,CACH,CAAC,CACH,CAAC,CACH,CAGA,IAAI,OAAS,KAEb,SAAS,YAAa,CACf,SACL,OAAO,UAAU,IAAI,SAAS,EAC9B,SAAS,KAAK,MAAM,SAAW,SACjC,CACA,SAAS,aAAc,CAChB,SACL,OAAO,UAAU,OAAO,SAAS,EACjC,SAAS,KAAK,MAAM,SAAW,GACjC,CAEA,SAAS,WAAW,KAAM,CACxB,GAAK,OACL,KAAI,KAAO,OAAO,cAAc,kBAAkB,EAC9C,MAAQ,OAAO,cAAc,mBAAmB,EAChD,MAAQ,OAAO,cAAc,mBAAmB,EAChD,YAAc,SAAS,cAAc,0BAA0B,EASnE,GAPI,QAAO,MAAM,YAAc,KAAK,YAChC,cACF,YAAY,YAAc,KAAK,WAC/B,YAAY,OAAS,KAAK,aAAe,GAEvC,QAAO,MAAM,YAAc,YAAY,KAAK,WAAW,GAEvD,EAAC,KACL,IAAI,KAAK,aAAe,EAAG,CACzB,KAAK,UACH,yQAGF,MACF,CAEA,KAAK,UAAY,KAAK,MACnB,IAAI,SAAU,KAAM,CACnB,IAAI,IAAM,KAAK,MAAQ,KAAK,MAAM,QAAQ,oBAAqB,WAAW,EAAI,GAC9E,MACE,yCAA2C,KAAK,IAAM,eACvC,IAAM,qEAEY,KAAK,cAAgB,mCACrB,YAAY,KAAK,gBAAgB,EAAI,uGAG1B,KAAK,IAAM,gBAAkB,KAAK,SAAW,GAAK,iDACnF,KAAK,SAAW,iDACiB,KAAK,IAAM,gBAAkB,KAAK,SAAW,GAAK,6GAExB,KAAK,IAAM,iPAKrF,CAAC,EACA,KAAK,EAAE,EAEV,KAAK,iBAAiB,mBAAmB,EAAE,QAAQ,SAAU,IAAK,CAChE,IAAI,iBAAiB,QAAS,UAAY,CACxC,WAAW,IAAI,QAAQ,UAAW,SAAS,IAAI,QAAQ,IAAK,EAAE,CAAC,CACjE,CAAC,CACH,CAAC,GACH,CAEA,SAAS,WAAY,CACnB,OAAO,MAAM,UAAU,EAAE,KAAK,SAAU,EAAG,CACzC,OAAO,EAAE,KAAK,CAChB,CAAC,CACH,CAEA,SAAS,WAAW,IAAK,SAAU,CACjC,MAAM,kBAAmB,CACvB,OAAQ,OACR,QAAS,CAAE,eAAgB,kBAAmB,EAC9C,KAAM,KAAK,UAAU,CAAE,GAAI,IAAK,SAAU,QAAS,CAAC,CACtD,CAAC,EACE,KAAK,SAAU,EAAG,CACjB,OAAO,EAAE,KAAK,CAChB,CAAC,EACA,KAAK,UAAU,EACf,MAAM,UAAY,CACjB,MAAM,kCAAkC,CAC1C,CAAC,CACL,CAEA,SAAS,UAAU,UAAW,SAAU,CACtC,OAAO,MAAM,eAAgB,CAC3B,OAAQ,OACR,QAAS,CAAE,eAAgB,kBAAmB,EAC9C,KAAM,KAAK,UAAU,CAAE,MAAO,CAAC,CAAE,GAAI,UAAW,SAAU,QAAS,CAAC,CAAE,CAAC,CACzE,CAAC,EACE,KAAK,SAAU,EAAG,CACjB,GAAI,CAAC,EAAE,GAAI,MAAM,IAAI,MAAM,YAAY,EACvC,OAAO,EAAE,KAAK,CAChB,CAAC,EACA,KAAK,UAAY,CAChB,OAAO,UAAU,CACnB,CAAC,EACA,KAAK,SAAU,KAAM,CACpB,WAAW,IAAI,EACf,WAAW,EACX,MAAM,gCAA6B,CACrC,CAAC,EACA,MAAM,UAAY,CACjB,MAAM,kCAA+B,CACvC,CAAC,CACL,CAEA,SAAS,UAAW,CAClB,OAAS,SAAS,cAAc,oBAAoB,EAEpD,SAAS,iBAAiB,kBAAkB,EAAE,QAAQ,SAAU,EAAG,CACjE,EAAE,iBAAiB,QAAS,SAAU,EAAG,CACvC,EAAE,eAAe,EACjB,UAAU,EAAE,KAAK,UAAU,EAC3B,WAAW,CACb,CAAC,CACH,CAAC,EACG,QACF,OAAO,iBAAiB,mBAAmB,EAAE,QAAQ,SAAU,EAAG,CAChE,EAAE,iBAAiB,QAAS,WAAW,CACzC,CAAC,EAGH,SAAS,iBAAiB,2BAA2B,EAAE,QAAQ,SAAU,KAAM,CAC7E,KAAK,iBAAiB,SAAU,SAAU,EAAG,CAC3C,GAAK,OACL,GAAE,eAAe,EACjB,IAAI,QAAU,KAAK,cAAc,aAAa,EAC1C,SAAW,KAAK,cAAc,mBAAmB,EACrD,UAAU,QAAQ,MAAO,SAAW,SAAS,SAAS,MAAO,EAAE,EAAI,CAAC,EACtE,CAAC,CACH,CAAC,EAGD,SAAS,iBAAiB,gBAAgB,EAAE,QAAQ,SAAU,IAAK,CACjE,IAAI,MAAQ,IAAI,cAAc,OAAO,EACrC,IAAI,iBAAiB,QAAQ,EAAE,QAAQ,SAAU,IAAK,CACpD,IAAI,iBAAiB,QAAS,UAAY,CACxC,IAAI,QAAU,SAAS,MAAM,MAAO,EAAE,GAAK,EACvC,KAAO,IAAI,QAAQ,MAAQ,KAAO,QAAU,EAAI,KAAK,IAAI,EAAG,QAAU,CAAC,EAC3E,MAAM,MAAQ,IAChB,CAAC,CACH,CAAC,CACH,CAAC,CACH,CAGA,IAAI,WACF,4JAEF,SAAS,WAAW,MAAO,CACzB,GAAI,CAAC,MAAO,MAAO,GACnB,IAAI,EAAI,WAAW,OAAO,KAAK,EAAE,QAAQ,YAAa,EAAE,EAAE,QAAQ,KAAM,EAAE,CAAC,EAC3E,OAAO,MAAM,CAAC,EAAI,EAAI,CACxB,CAEA,SAAS,qBAAsB,CAC7B,SAAS,iBAAiB,gBAAgB,EAAE,QAAQ,SAAU,KAAM,CAClE,IAAI,QAAU,KAAK,cAAc,mBAAmB,EAChD,QAAU,KAAK,cAAc,cAAc,EAC3C,UAAY,KAAK,cAAc,gBAAgB,EAC/C,MAAQ,KAAK,cAAc,YAAY,EACvC,QAAU,KAAK,cAAc,qBAAqB,EAClD,OAAS,KAAK,cAAc,uBAAuB,EACnD,QAAU,KAAK,iBAAiB,eAAe,EAC/C,SAAW,KAAK,cAAc,mBAAmB,EAErD,SAAS,KAAK,MAAO,QAAS,MAAO,CAUnC,GATI,SAAW,QAAO,QAAQ,YAAc,OACxC,YACE,SACF,UAAU,YAAc,QACxB,UAAU,OAAS,IAEnB,UAAU,OAAS,IAGnB,MAAO,CACT,IAAI,EAAI,WAAW,OAAO,EACtB,EAAI,WAAW,KAAK,EACpB,EAAI,GAAK,EAAI,GACf,MAAM,YAAc,SAAM,KAAK,OAAQ,EAAI,GAAK,EAAK,GAAG,EAAI,IAC5D,MAAM,OAAS,IAEf,MAAM,OAAS,EAEnB,CACI,SAAW,QAAO,QAAQ,IAAM,MACtC,CAEI,QACF,OAAO,iBAAiB,SAAU,UAAY,CAC5C,IAAI,IAAM,OAAO,QAAQ,OAAO,aAAa,EACzC,UAAS,QAAQ,MAAQ,IAAI,OACjC,KAAK,IAAI,QAAQ,MAAO,IAAI,QAAQ,QAAS,IAAI,QAAQ,KAAK,CAChE,CAAC,EAGH,QAAQ,QAAQ,SAAU,IAAK,CAC7B,IAAI,iBAAiB,QAAS,UAAY,CACpC,IAAI,WACJ,UAAS,QAAQ,MAAQ,IAAI,QAAQ,WACrC,IAAI,QAAQ,OACd,KAAK,IAAI,QAAQ,MAAO,IAAI,QAAQ,QAAS,IAAI,QAAQ,KAAK,EAE5D,IAAI,QAAQ,KAAO,WACrB,SAAS,MAAQ,IAAI,QAAQ,KAE/B,QAAQ,QAAQ,SAAU,MAAO,CAC/B,IAAI,GAAK,QAAU,IACnB,MAAM,UAAU,OAAO,YAAa,EAAE,EACtC,MAAM,aAAa,eAAgB,GAAK,OAAS,OAAO,EACxD,IAAI,MAAQ,MAAM,cAAc,aAAa,EACzC,QAAO,MAAM,UAAY,GAAK,WAAa,GACjD,CAAC,EACH,CAAC,CACH,CAAC,CACH,CAAC,CACH,CAGA,SAAS,gBAAiB,CACxB,SAAS,iBAAiB,kBAAkB,EAAE,QAAQ,SAAU,IAAK,CACnE,IAAI,iBAAiB,QAAS,UAAY,CACxC,IAAI,KAAO,IAAI,QAAQ,SACnB,KAAO,UAAY,CACrB,IAAI,UAAU,IAAI,WAAW,EAC7B,MAAM,YAAW,KAAO,UAAU,EAClC,WAAW,UAAY,CACrB,IAAI,UAAU,OAAO,WAAW,CAClC,EAAG,GAAI,CACT,EACI,UAAU,WAAa,UAAU,UAAU,UAC7C,UAAU,UAAU,UAAU,IAAI,EAAE,KAAK,KAAM,IAAI,EAEnD,KAAK,CAET,CAAC,CACH,CAAC,CACH,CAGA,SAAS,gBAAiB,CACxB,SAAS,iBAAiB,mBAAmB,EAAE,QAAQ,SAAU,KAAM,CACrE,IAAI,KAAO,KAAK,cAAc,MAAM,EAC/B,MACL,KAAK,iBAAiB,SAAU,SAAU,EAAG,CAC3C,EAAE,eAAe,EACjB,IAAI,QAAU,KAAK,cAAc,2BAA2B,EACxD,UACF,KAAK,OAAS,GACd,QAAQ,OAAS,IAEnB,MAAM,4DAAsD,CAC9D,CAAC,CACH,CAAC,CACH,CAGA,SAAS,MAAO,CACd,iBAAiB,EACjB,cAAc,EACd,SAAS,EACT,SAAS,EACT,eAAe,EACf,eAAe,EACf,YAAY,EACZ,SAAS,EACT,oBAAoB,EACpB,eAAe,EACf,UAAU,EACV,eAAe,EACf,UAAU,EACP,KAAK,SAAU,KAAM,CACpB,IAAI,YAAc,SAAS,cAAc,0BAA0B,EAC/D,cACF,YAAY,YAAc,KAAK,WAC/B,YAAY,OAAS,KAAK,aAAe,GAEvC,QAAQ,WAAW,IAAI,CAC7B,CAAC,EACA,MAAM,UAAY,CAAC,CAAC,CACzB,CAEI,SAAS,aAAe,UAC1B,SAAS,iBAAiB,mBAAoB,IAAI,EAElD,KAAK,CAET,GAAG",
  "names": []
}
