{"product_id":"lampara-nocturna-de-capibara-led-decorativa","title":"Lámpara Nocturna de Capibara LED Decorativa","description":"\u003cstyle\u003e\n\/* =========================================\n   MILGENIAL — LÁMPARA CAPIBARA LED\n   SKU: 3109-0\n========================================= *\/\n\n.mg3109 {\n  --mg-green: #08A56E;\n  --mg-green-dark: #087e54;\n  --mg-dark: #1c2b22;\n  --mg-muted: #68756d;\n  --mg-soft: #f3faf6;\n  --mg-border: #e0ece4;\n\n  width: 100%;\n  overflow: hidden;\n  background: #ffffff;\n  color: var(--mg-dark);\n  font-family: \"Poppins\", \"Inter\", Arial, sans-serif;\n  line-height: 1.6;\n}\n\n.mg3109 *,\n.mg3109 *::before,\n.mg3109 *::after {\n  box-sizing: border-box;\n}\n\n.mg3109 .mg-wrap {\n  width: 100%;\n  max-width: 760px;\n  margin: 0 auto;\n  padding: 0 22px;\n}\n\n.mg3109 h2,\n.mg3109 h3,\n.mg3109 p {\n  margin: 0;\n  padding: 0;\n}\n\n.mg3109 h2 {\n  font-size: clamp(29px, 5vw, 43px);\n  line-height: 1.18;\n  letter-spacing: -1.3px;\n  font-weight: 800;\n  color: var(--mg-dark);\n}\n\n.mg3109 h3 {\n  font-size: 19px;\n  font-weight: 750;\n  line-height: 1.35;\n}\n\n.mg3109 p {\n  color: var(--mg-muted);\n  font-size: 15px;\n  line-height: 1.75;\n}\n\n.mg3109 .mg-green {\n  color: var(--mg-green);\n}\n\n.mg3109 .mg-label {\n  display: inline-block;\n  margin-bottom: 16px;\n  color: var(--mg-green);\n  font-size: 11px;\n  font-weight: 800;\n  letter-spacing: 1.5px;\n  text-transform: uppercase;\n}\n\n\/* =========================================\n   HERO\n========================================= *\/\n\n.mg3109 .mg-hero {\n  padding: 58px 0 48px;\n  text-align: center;\n  background: linear-gradient(\n    180deg,\n    #effaf4 0%,\n    #ffffff 100%\n  );\n}\n\n.mg3109 .mg-hero h2 {\n  max-width: 650px;\n  margin: 0 auto;\n}\n\n.mg3109 .mg-hero p {\n  max-width: 565px;\n  margin: 22px auto 0;\n}\n\n.mg3109 .mg-tags {\n  display: flex;\n  justify-content: center;\n  flex-wrap: wrap;\n  gap: 9px;\n  margin-top: 25px;\n}\n\n.mg3109 .mg-tags span {\n  padding: 9px 15px;\n  border: 1px solid #dcece1;\n  border-radius: 30px;\n  background: #ffffff;\n  color: #397754;\n  font-size: 12px;\n  font-weight: 700;\n}\n\n\/* =========================================\n   IMAGEN PRINCIPAL\n========================================= *\/\n\n.mg3109 .mg-image-section {\n  padding: 12px 0 54px;\n}\n\n.mg3109 .mg-image-frame {\n  width: 100%;\n  max-width: 650px;\n  margin: 0 auto;\n  overflow: hidden;\n  border: 1px solid #e1ece4;\n  border-radius: 18px;\n  background: #f8fbf9;\n}\n\n.mg3109 .mg-image-placeholder {\n  min-height: 340px;\n  padding: 35px;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  flex-direction: column;\n  gap: 16px;\n  border: 1px dashed #bedac8;\n  border-radius: 18px;\n  background: #f5faf7;\n}\n\n.mg3109 .mg-image-placeholder svg {\n  width: 46px;\n  height: 46px;\n  color: var(--mg-green);\n}\n\n.mg3109 .mg-image-placeholder p {\n  max-width: 390px;\n  text-align: center;\n  font-size: 13px;\n  color: #779082;\n}\n\n.mg3109 .mg-product-image {\n  display: block !important;\n  width: 100% !important;\n  max-width: 100% !important;\n  height: auto !important;\n  margin: 0 !important;\n  object-fit: cover;\n}\n\n.mg3109 .mg-image-note {\n  max-width: 520px;\n  margin: 17px auto 0 !important;\n  text-align: center;\n  font-size: 13px !important;\n}\n\n\/* =========================================\n   MOMENTOS DE USO\n========================================= *\/\n\n.mg3109 .mg-moments {\n  padding: 54px 0 61px;\n  background: var(--mg-soft);\n  text-align: center;\n}\n\n.mg3109 .mg-moments h2 {\n  max-width: 610px;\n  margin: 0 auto;\n}\n\n.mg3109 .mg-moments-intro {\n  max-width: 560px;\n  margin: 18px auto 0;\n}\n\n.mg3109 .mg-moments-grid {\n  display: grid;\n  grid-template-columns: repeat(3, minmax(0, 1fr));\n  gap: 14px;\n  margin-top: 31px;\n  text-align: left;\n}\n\n.mg3109 .mg-moment {\n  padding: 25px 21px;\n  background: #ffffff;\n  border: 1px solid var(--mg-border);\n  border-radius: 17px;\n}\n\n.mg3109 .mg-moment-icon {\n  width: 48px;\n  height: 48px;\n  margin-bottom: 18px;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  border-radius: 13px;\n  background: #eaf8ef;\n  color: var(--mg-green);\n}\n\n.mg3109 .mg-moment-icon svg {\n  width: 25px;\n  height: 25px;\n}\n\n.mg3109 .mg-moment h3 {\n  margin-bottom: 10px;\n  font-size: 16px;\n}\n\n.mg3109 .mg-moment p {\n  font-size: 12px;\n  line-height: 1.75;\n}\n\n\/* =========================================\n   MENSAJE EMOCIONAL\n========================================= *\/\n\n.mg3109 .mg-message {\n  padding: 63px 0;\n  text-align: center;\n  background: #ffffff;\n}\n\n.mg3109 .mg-message h2 {\n  max-width: 620px;\n  margin: 0 auto;\n}\n\n.mg3109 .mg-message p {\n  max-width: 555px;\n  margin: 21px auto 0;\n}\n\n\/* =========================================\n   CTA\n========================================= *\/\n\n.mg3109 .mg-final {\n  padding: 52px 0 63px;\n  background: var(--mg-soft);\n  text-align: center;\n}\n\n.mg3109 .mg-final h2 {\n  max-width: 640px;\n  margin: 0 auto;\n  font-size: clamp(27px, 4.6vw, 38px);\n}\n\n.mg3109 .mg-final p {\n  max-width: 520px;\n  margin: 18px auto 0;\n}\n\n.mg3109 .mg-cart {\n  position: relative;\n  display: block;\n  width: 100%;\n  max-width: 450px;\n  min-height: 61px;\n  margin: 29px auto 0;\n  padding: 16px 55px;\n  border: 0;\n  border-radius: 12px;\n  background: #18a558;\n  color: #ffffff;\n  font-family: inherit;\n  font-size: 16px;\n  font-weight: 750;\n  cursor: pointer;\n  transition: background .2s ease,\n              transform .2s ease;\n}\n\n.mg3109 .mg-cart:hover:not(:disabled) {\n  background: #117c40;\n  transform: translateY(-2px);\n}\n\n.mg3109 .mg-cart:disabled {\n  opacity: .65;\n  cursor: not-allowed;\n  transform: none;\n}\n\n.mg3109 .mg-cart:focus-visible {\n  outline: 3px solid #9ad9b7;\n  outline-offset: 3px;\n}\n\n.mg3109 .mg-cart svg {\n  position: absolute;\n  top: 50%;\n  width: 21px;\n  height: 21px;\n  transform: translateY(-50%);\n}\n\n.mg3109 .mg-cart-left {\n  left: 19px;\n}\n\n.mg3109 .mg-cart-right {\n  right: 19px;\n}\n\n.mg3109 .mg-cart-message {\n  min-height: 22px;\n  margin: 12px auto 0 !important;\n  font-size: 13px !important;\n  font-weight: 650;\n}\n\n.mg3109 .mg-cart-message[data-type=\"success\"] {\n  color: #087d53;\n}\n\n.mg3109 .mg-cart-message[data-type=\"error\"] {\n  color: #b63030;\n}\n\n\/* =========================================\n   RESPONSIVE\n========================================= *\/\n\n@media (max-width: 600px) {\n\n  .mg3109 .mg-wrap {\n    padding: 0 17px;\n  }\n\n  .mg3109 h2 {\n    font-size: 29px;\n    letter-spacing: -1px;\n  }\n\n  .mg3109 p {\n    font-size: 14px;\n  }\n\n  .mg3109 .mg-hero {\n    padding: 39px 0 33px;\n  }\n\n  .mg3109 .mg-hero h2 {\n    font-size: 33px;\n  }\n\n  .mg3109 .mg-hero p {\n    margin-top: 17px;\n  }\n\n  .mg3109 .mg-tags {\n    gap: 7px;\n    margin-top: 22px;\n  }\n\n  .mg3109 .mg-tags span {\n    padding: 8px 12px;\n    font-size: 11px;\n  }\n\n  .mg3109 .mg-image-section {\n    padding: 8px 0 41px;\n  }\n\n  .mg3109 .mg-image-frame,\n  .mg3109 .mg-image-placeholder {\n    border-radius: 14px;\n  }\n\n  .mg3109 .mg-image-placeholder {\n    min-height: 245px;\n    padding: 25px;\n  }\n\n  .mg3109 .mg-moments {\n    padding: 42px 0 48px;\n  }\n\n  .mg3109 .mg-moments-grid {\n    grid-template-columns: 1fr;\n    gap: 11px;\n    margin-top: 25px;\n  }\n\n  .mg3109 .mg-moment {\n    display: grid;\n    grid-template-columns: 47px 1fr;\n    gap: 0 14px;\n    padding: 19px;\n  }\n\n  .mg3109 .mg-moment-icon {\n    grid-row: span 2;\n    margin: 0;\n  }\n\n  .mg3109 .mg-moment h3 {\n    margin: 0 0 5px;\n  }\n\n  .mg3109 .mg-moment p {\n    font-size: 12px;\n  }\n\n  .mg3109 .mg-message {\n    padding: 44px 0;\n  }\n\n  .mg3109 .mg-final {\n    padding: 43px 0 51px;\n  }\n\n  .mg3109 .mg-final h2 {\n    font-size: 29px;\n  }\n\n  .mg3109 .mg-cart {\n    max-width: none;\n    margin-top: 25px;\n  }\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .mg3109 .mg-cart {\n    transition: none;\n  }\n}\n\u003c\/style\u003e\n\u003cdiv class=\"mg3109\" id=\"mg3109\"\u003e\n\u003c!-- =====================================\n       HERO\n  ====================================== --\u003e\n\u003csection class=\"mg-hero\"\u003e\n\u003cdiv class=\"mg-wrap\"\u003e\n\u003cspan class=\"mg-label\"\u003e Lámpara nocturna LED de capibara \u003c\/span\u003e\n\u003ch2\u003eUna pequeña compañía \u003cspan class=\"mg-green\"\u003e para sus noches. \u003c\/span\u003e\n\u003c\/h2\u003e\n\u003cp\u003eCuando llega la hora de dormir, a veces los más chicos quieren dejar una luz encendida. La Lámpara Nocturna de Capibara LED aporta una iluminación suave y una figura simpática que puede acompañarlos mientras descansan.\u003c\/p\u003e\n\u003cdiv class=\"mg-tags\"\u003e\n\u003cspan\u003eLuz suave\u003c\/span\u003e \u003cspan\u003eDiseño de capibara\u003c\/span\u003e \u003cspan\u003ePara el dormitorio infantil\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003c!-- =====================================\n       IMAGEN EN DESCRIPCION\n  ====================================== --\u003e\n\u003csection class=\"mg-image-section\"\u003e\n\u003cdiv class=\"mg-wrap\"\u003e\n\u003cdiv class=\"mg-image-frame\"\u003e\n\u003cdiv class=\"mg-image-placeholder\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0758\/3698\/1562\/files\/modelo2_17096f48-ef08-4bdb-bdd6-4419490bfbd5.png?v=1794402462\" alt=\"\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cp class=\"mg-image-note\"\u003eUn pequeño detalle para acompañar los momentos más tranquilos del día.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003c!-- =====================================\n       MOMENTOS DE USO\n  ====================================== --\u003e\n\u003csection class=\"mg-moments\"\u003e\n\u003cdiv class=\"mg-wrap\"\u003e\n\u003cspan class=\"mg-label\"\u003e Para acompañar sus noches \u003c\/span\u003e\n\u003ch2\u003eQue la oscuridad \u003cspan class=\"mg-green\"\u003e no sea protagonista. \u003c\/span\u003e\n\u003c\/h2\u003e\n\u003cp class=\"mg-moments-intro\"\u003eUna luz tenue puede hacer que la habitación se sienta más agradable cuando llega la noche.\u003c\/p\u003e\n\u003cdiv class=\"mg-moments-grid\"\u003e\n\u003c!-- CUENTO --\u003e\n\u003carticle class=\"mg-moment\"\u003e\n\u003cdiv class=\"mg-moment-icon\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"\u003e\n              \u003cpath d=\"M3 5.5C6 4 9 4 12 6v14c-3-2-6-2-9-.5z\"\u003e\u003c\/path\u003e\n              \u003cpath d=\"M21 5.5c-3-1.5-6-1.5-9 .5v14c3-2 6-2 9-.5z\"\u003e\u003c\/path\u003e\n            \u003c\/svg\u003e\u003c\/div\u003e\n\u003ch3\u003eAntes de dormir\u003c\/h3\u003e\n\u003cp\u003eUna luz agradable para acompañar el momento del cuento y prepararse para descansar.\u003c\/p\u003e\n\u003c\/article\u003e\n\u003c!-- NOCHE --\u003e\n\u003carticle class=\"mg-moment\"\u003e\n\u003cdiv class=\"mg-moment-icon\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"\u003e\n              \u003cpath d=\"M20 15.5A8.5 8.5 0 0 1 8.5 4 8.5 8.5 0 1 0 20 15.5z\"\u003e\u003c\/path\u003e\n              \u003cpath d=\"M17 3v4\"\u003e\u003c\/path\u003e\n              \u003cpath d=\"M15 5h4\"\u003e\u003c\/path\u003e\n            \u003c\/svg\u003e\u003c\/div\u003e\n\u003ch3\u003eDurante la noche\u003c\/h3\u003e\n\u003cp\u003eUna pequeña fuente de luz para las noches en las que prefieren no estar completamente a oscuras.\u003c\/p\u003e\n\u003c\/article\u003e\n\u003c!-- DECORACION --\u003e\n\u003carticle class=\"mg-moment\"\u003e\n\u003cdiv class=\"mg-moment-icon\"\u003e\u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"\u003e\n              \u003cpath d=\"M12 3l2.5 5.5L20 11l-5.5 2.5L12 19l-2.5-5.5L4 11l5.5-2.5z\"\u003e\u003c\/path\u003e\n              \u003cpath d=\"M19 18l1 2\"\u003e\u003c\/path\u003e\n              \u003cpath d=\"M17 20l2 1\"\u003e\u003c\/path\u003e\n            \u003c\/svg\u003e\u003c\/div\u003e\n\u003ch3\u003eUn toque divertido\u003c\/h3\u003e\n\u003cp\u003eSu simpático diseño de capibara también decora el dormitorio cuando está apagada.\u003c\/p\u003e\n\u003c\/article\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003c!-- =====================================\n       MENSAJE EMOCIONAL\n  ====================================== --\u003e\n\u003csection class=\"mg-message\"\u003e\n\u003cdiv class=\"mg-wrap\"\u003e\n\u003cspan class=\"mg-label\"\u003e Un detalle para su habitación \u003c\/span\u003e\n\u003ch2\u003eSu nueva compañera \u003cspan class=\"mg-green\"\u003e de mesita de luz. \u003c\/span\u003e\n\u003c\/h2\u003e\n\u003cp\u003eIdeal para acompañar los momentos de tranquilidad y esas noches en las que los más chicos prefieren tener una pequeña luz cerca. Una capibara simpática para darle un toque especial a su rincón de descanso.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003c!-- =====================================\n       CTA\n  ====================================== --\u003e\n\u003csection class=\"mg-final\"\u003e\n\u003cdiv class=\"mg-wrap\"\u003e\n\u003cspan class=\"mg-label\"\u003e Lámpara nocturna de capibara \u003c\/span\u003e\n\u003ch2\u003eUna capibara pequeña. \u003cspan class=\"mg-green\"\u003e Un rincón más acogedor. \u003c\/span\u003e\n\u003c\/h2\u003e\n\u003cp\u003eUna luz suave y un diseño encantador para acompañar sus momentos de descanso.\u003c\/p\u003e\n\u003cbutton type=\"button\" class=\"mg-cart\" id=\"mg3109-add\" disabled\u003e \u003csvg class=\"mg-cart-left\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"\u003e\n          \u003ccircle cx=\"9\" cy=\"21\" r=\"1\"\u003e\u003c\/circle\u003e\n          \u003ccircle cx=\"20\" cy=\"21\" r=\"1\"\u003e\u003c\/circle\u003e\n          \u003cpath d=\"M1 1h4l2.6 13.4a2 2 0 002 1.6h9.8a2 2 0 002-1.6L23 6H6\"\u003e\u003c\/path\u003e\n        \u003c\/svg\u003e \u003cspan id=\"mg3109-add-text\"\u003e Cargando producto... \u003c\/span\u003e \u003csvg class=\"mg-cart-right\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"\u003e\n          \u003cpath d=\"M5 12h14\"\u003e\u003c\/path\u003e\n          \u003cpath d=\"m13 6 6 6-6 6\"\u003e\u003c\/path\u003e\n        \u003c\/svg\u003e \u003c\/button\u003e\n\u003cp class=\"mg-cart-message\" id=\"mg3109-message\" role=\"status\" aria-live=\"polite\"\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003c\/div\u003e\n\u003c!-- =========================================\n     JAVASCRIPT — CARRITO SHOPIFY\n========================================= --\u003e\n\u003cscript\u003e\n(function () {\n  \"use strict\";\n\n  function initMG3109() {\n\n    const root = document.getElementById(\"mg3109\");\n\n    if (!root || root.dataset.ready === \"true\") {\n      return;\n    }\n\n    root.dataset.ready = \"true\";\n\n    const button = root.querySelector(\"#mg3109-add\");\n    const buttonText = root.querySelector(\"#mg3109-add-text\");\n    const message = root.querySelector(\"#mg3109-message\");\n\n    const base = window.Shopify?.routes?.root || \"\/\";\n    const TARGET_SKU = \"3109-0\";\n\n    let variant = null;\n    let loading = false;\n    let resetTimer = null;\n\n    function showMessage(text, type) {\n      message.textContent = text || \"\";\n      message.dataset.type = type || \"\";\n    }\n\n    function productURL() {\n\n      const match = window.location.pathname.match(\n        \/\\\/products\\\/([^\/]+)\/\n      );\n\n      if (!match) {\n        throw new Error(\n          \"El botón debe utilizarse en la página del producto.\"\n        );\n      }\n\n      return (\n        base.replace(\/\\\/$\/, \"\") +\n        \"\/products\/\" +\n        encodeURIComponent(match[1]) +\n        \".js\"\n      );\n    }\n\n    async function loadProduct() {\n\n      const response = await fetch(productURL(), {\n        headers: {\n          Accept: \"application\/json\"\n        }\n      });\n\n      if (!response.ok) {\n        throw new Error(\n          \"No se pudo cargar la información del producto.\"\n        );\n      }\n\n      const product = await response.json();\n\n      variant = product.variants.find(function (item) {\n        return String(item.sku || \"\").trim() === TARGET_SKU;\n      });\n\n      if (!variant) {\n\n        button.disabled = true;\n        buttonText.textContent = \"No disponible\";\n\n        showMessage(\n          \"No se encontró el SKU 3109-0.\",\n          \"error\"\n        );\n\n        return;\n      }\n\n      if (!variant.available) {\n\n        button.disabled = true;\n        buttonText.textContent = \"Sin stock\";\n\n        showMessage(\n          \"Producto no disponible por el momento.\",\n          \"error\"\n        );\n\n        return;\n      }\n\n      button.disabled = false;\n      buttonText.textContent = \"Agregar al carrito\";\n\n      showMessage(\"\", \"\");\n    }\n\n    async function getCart() {\n\n      const response = await fetch(base + \"cart.js\", {\n        headers: {\n          Accept: \"application\/json\"\n        }\n      });\n\n      if (!response.ok) {\n        return null;\n      }\n\n      return response.json();\n    }\n\n    function updateCartCount(cart) {\n\n      if (!cart) return;\n\n      document.querySelectorAll(\n        \"[data-cart-count]\"\n      ).forEach(function (element) {\n        element.textContent = cart.item_count;\n      });\n\n      document.querySelectorAll(\n        \".cart-count-bubble\"\n      ).forEach(function (element) {\n\n        const visible = element.querySelector(\n          'span[aria-hidden=\"true\"]'\n        );\n\n        const accessible = element.querySelector(\n          \".visually-hidden\"\n        );\n\n        if (visible) {\n          visible.textContent = cart.item_count;\n        }\n\n        if (accessible) {\n          accessible.textContent =\n            cart.item_count + \" artículos\";\n        }\n\n        if (!visible \u0026\u0026 !accessible) {\n          element.textContent = cart.item_count;\n        }\n\n        element.style.display =\n          cart.item_count \u003e 0 ? \"\" : \"none\";\n      });\n    }\n\n    function notifyCart(cart) {\n\n      [\n        \"cart:refresh\",\n        \"cart:updated\",\n        \"cart:change\"\n      ].forEach(function (name) {\n\n        document.dispatchEvent(\n          new CustomEvent(name, {\n            detail: {\n              source: \"mg3109\",\n              cart: cart || null\n            }\n          })\n        );\n\n      });\n    }\n\n    function openMiniCart() {\n\n      const drawer = document.querySelector(\"cart-drawer\");\n\n      if (\n        drawer \u0026\u0026\n        typeof drawer.open === \"function\"\n      ) {\n        drawer.open();\n        return true;\n      }\n\n      const notification = document.querySelector(\n        \"cart-notification\"\n      );\n\n      if (\n        notification \u0026\u0026\n        typeof notification.open === \"function\"\n      ) {\n        notification.open();\n        return true;\n      }\n\n      const selectors = [\n        \"[data-cart-drawer-toggle]\",\n        \"[data-cart-toggle]\",\n        '[aria-controls=\"CartDrawer\"]',\n        '[href=\"#cart-drawer\"]'\n      ];\n\n      for (const selector of selectors) {\n\n        const trigger = document.querySelector(selector);\n\n        if (trigger) {\n          trigger.click();\n          return true;\n        }\n      }\n\n      return false;\n    }\n\n    async function addToCart() {\n\n      if (!variant || !variant.available || loading) {\n        return;\n      }\n\n      loading = true;\n      button.disabled = true;\n      buttonText.textContent = \"Agregando...\";\n      showMessage(\"\", \"\");\n\n      if (resetTimer) {\n        clearTimeout(resetTimer);\n        resetTimer = null;\n      }\n\n      try {\n\n        const cartComponent =\n          document.querySelector(\"cart-drawer\") ||\n          document.querySelector(\"cart-notification\");\n\n        const sections =\n          typeof cartComponent?.getSectionsToRender ===\n          \"function\"\n            ? cartComponent.getSectionsToRender()\n            : [];\n\n        const sectionIDs = sections\n          .map(function (section) {\n            return section.id;\n          })\n          .filter(Boolean);\n\n        const payload = {\n          items: [{\n            id: Number(variant.id),\n            quantity: 1\n          }]\n        };\n\n        if (sectionIDs.length) {\n          payload.sections = sectionIDs;\n          payload.sections_url = location.pathname;\n        }\n\n        const response = await fetch(\n          base + \"cart\/add.js\",\n          {\n            method: \"POST\",\n            headers: {\n              \"Content-Type\": \"application\/json\",\n              Accept: \"application\/json\"\n            },\n            body: JSON.stringify(payload)\n          }\n        );\n\n        const result = await response.json();\n\n        if (!response.ok || result.status) {\n          throw new Error(\n            result.description ||\n            result.message ||\n            \"No se pudo agregar al carrito.\"\n          );\n        }\n\n        const cart = await getCart().catch(function () {\n          return null;\n        });\n\n        updateCartCount(cart);\n\n        let rendered = false;\n\n        if (\n          cartComponent \u0026\u0026\n          typeof cartComponent.renderContents === \"function\" \u0026\u0026\n          result.sections\n        ) {\n          try {\n\n            cartComponent.renderContents({\n              ...result,\n              id: result.items?.[0]?.key,\n              sections: result.sections\n            });\n\n            rendered = true;\n\n          } catch (error) {\n\n            console.warn(\n              \"MG3109: error al actualizar el mini-carrito.\",\n              error\n            );\n          }\n        }\n\n        if (!rendered) {\n          openMiniCart();\n        }\n\n        notifyCart(cart);\n\n        buttonText.textContent = \"Agregado al carrito\";\n\n        showMessage(\n          \"Producto agregado correctamente.\",\n          \"success\"\n        );\n\n        resetTimer = setTimeout(function () {\n          if (!loading \u0026\u0026 variant?.available) {\n            buttonText.textContent = \"Agregar al carrito\";\n          }\n        }, 2200);\n\n      } catch (error) {\n\n        console.error(\"MG3109:\", error);\n\n        buttonText.textContent = \"Agregar al carrito\";\n\n        showMessage(\n          error.message || \"Intentá nuevamente.\",\n          \"error\"\n        );\n\n      } finally {\n\n        loading = false;\n        button.disabled = !variant || !variant.available;\n\n      }\n    }\n\n    button.addEventListener(\"click\", addToCart);\n\n    loadProduct().catch(function (error) {\n\n      console.error(\"MG3109:\", error);\n\n      button.disabled = true;\n      buttonText.textContent = \"No disponible\";\n\n      showMessage(\n        error.message || \"No se pudo cargar el producto.\",\n        \"error\"\n      );\n    });\n\n  }\n\n  if (document.readyState === \"loading\") {\n    document.addEventListener(\n      \"DOMContentLoaded\",\n      initMG3109\n    );\n  } else {\n    initMG3109();\n  }\n\n})();\n\u003c\/script\u003e","brand":"Clara (Yiwu Mayhome Import\u0026export Co.,ltd) (0.0 Unidades - 57,63 $)","offers":[{"title":"Default Title","offer_id":67951838757178,"sku":"3109-0","price":790.0,"currency_code":"UYU","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0758\/3698\/1562\/files\/Portada_ee3b2955-bda8-413c-a841-7eeb77056374.png?v=1794401308","url":"https:\/\/milgenialuruguay.com\/products\/lampara-nocturna-de-capibara-led-decorativa","provider":"MilGenial Uruguay","version":"1.0","type":"link"}