{"product_id":"prueba","title":"PRUEBA","description":"\u003cp\u003eHOHLA \u003c\/p\u003e\n\n\u003cdiv class=\"mini-carrusel-mini-resenas\"\u003e\n  \u003cdiv class=\"mini-viewport-mini-resenas\" id=\"miniViewportResenas\"\u003e\n    \u003cdiv class=\"mini-track-mini-resenas\" id=\"miniTrackResenas\"\u003e\n      \u003cdiv class=\"mini-slide-mini-resenas\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0646\/2459\/0895\/files\/WhatsApp_Image_2026-03-26_at_11.58.49.jpg?v=1774557583\" alt=\"Reseña 1\"\u003e\u003c\/div\u003e\n      \u003cdiv class=\"mini-slide-mini-resenas\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0646\/2459\/0895\/files\/WhatsApp_Image_2026-03-26_at_11.52.38.jpg?v=1774557583\" alt=\"Reseña 2\"\u003e\u003c\/div\u003e\n      \u003cdiv class=\"mini-slide-mini-resenas\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0646\/2459\/0895\/files\/WhatsApp_Image_2026-03-26_at_11.52.38_2.jpg?v=1774557583\" alt=\"Reseña 3\"\u003e\u003c\/div\u003e\n      \u003cdiv class=\"mini-slide-mini-resenas\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0646\/2459\/0895\/files\/WhatsApp_Image_2026-03-26_at_11.56.01.jpg?v=1774557583\" alt=\"Reseña 4\"\u003e\u003c\/div\u003e\n      \u003cdiv class=\"mini-slide-mini-resenas\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0646\/2459\/0895\/files\/WhatsApp_Image_2026-03-26_at_11.52.38_1.jpg?v=1774557583\" alt=\"Reseña 5\"\u003e\u003c\/div\u003e\n      \u003cdiv class=\"mini-slide-mini-resenas\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0646\/2459\/0895\/files\/WhatsApp_Image_2026-03-26_at_11.56.01_2.jpg?v=1774557583\" alt=\"Reseña 6\"\u003e\u003c\/div\u003e\n      \u003cdiv class=\"mini-slide-mini-resenas\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0646\/2459\/0895\/files\/WhatsApp_Image_2026-03-26_at_11.56.01_1.jpg?v=1774557583\" alt=\"Reseña 7\"\u003e\u003c\/div\u003e\n      \u003cdiv class=\"mini-slide-mini-resenas\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0646\/2459\/0895\/files\/WhatsApp_Image_2026-03-26_at_11.52.37.jpg?v=1774557583\" alt=\"Reseña 8\"\u003e\u003c\/div\u003e\n      \u003cdiv class=\"mini-slide-mini-resenas\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0646\/2459\/0895\/files\/WhatsApp_Image_2026-03-26_at_11.58.37.jpg?v=1774557583\" alt=\"Reseña 9\"\u003e\u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cstyle\u003e\n.mini-carrusel-mini-resenas{\n  width:100%;\n  max-width:520px;\n  aspect-ratio:4\/5;\n  margin:auto;\n  overflow:hidden;\n  border-radius:16px;\n  background:#fff;\n  position:relative;\n}\n\n.mini-viewport-mini-resenas{\n  width:100%;\n  height:100%;\n  overflow:hidden;\n  touch-action:pan-y;\n}\n\n.mini-track-mini-resenas{\n  display:flex;\n  height:100%;\n  transition:transform .4s ease;\n  will-change:transform;\n}\n\n.mini-slide-mini-resenas{\n  min-width:50%;\n  height:100%;\n  padding:8px;\n  box-sizing:border-box;\n  user-select:none;\n}\n\n.mini-slide-mini-resenas img{\n  width:100%;\n  height:100%;\n  object-fit:contain;\n  border-radius:12px;\n  background:#f5f5f5;\n  display:block;\n  pointer-events:none;\n  user-select:none;\n  -webkit-user-drag:none;\n}\n\u003c\/style\u003e\n\n\u003cscript\u003e\n(function(){\n  const track = document.getElementById(\"miniTrackResenas\");\n  const viewport = document.getElementById(\"miniViewportResenas\");\n  if (!track || !viewport) return;\n\n  track.innerHTML += track.innerHTML;\n\n  let index = 0;\n  let autoplayId = null;\n  let startX = 0;\n  let isDragging = false;\n  let moved = false;\n  const stepPercent = 50;\n  const originalCount = track.children.length \/ 2;\n  const intervalMs = 1000;\n\n  function applyTransform(useTransition) {\n    track.style.transition = useTransition ? \"transform .4s ease\" : \"none\";\n    track.style.transform = \"translateX(-\" + (index * stepPercent) + \"%)\";\n  }\n\n  function normalizeBackward() {\n    if (index \u003c 0) {\n      track.style.transition = \"none\";\n      index = originalCount - 1;\n      track.style.transform = \"translateX(-\" + (index * stepPercent) + \"%)\";\n    }\n  }\n\n  function nextSlide() {\n    index++;\n    applyTransform(true);\n\n    if (index \u003e= originalCount) {\n      setTimeout(function(){\n        track.style.transition = \"none\";\n        index = 0;\n        track.style.transform = \"translateX(0)\";\n      }, 400);\n    }\n  }\n\n  function prevSlide() {\n    index--;\n    normalizeBackward();\n    applyTransform(true);\n  }\n\n  function stopAutoplay() {\n    if (autoplayId) {\n      clearInterval(autoplayId);\n      autoplayId = null;\n    }\n  }\n\n  function startAutoplay() {\n    stopAutoplay();\n    autoplayId = setInterval(nextSlide, intervalMs);\n  }\n\n  viewport.addEventListener(\"touchstart\", function(e){\n    stopAutoplay();\n    isDragging = true;\n    moved = false;\n    startX = e.touches[0].clientX;\n  }, {passive:true});\n\n  viewport.addEventListener(\"touchmove\", function(){\n    if (isDragging) moved = true;\n  }, {passive:true});\n\n  viewport.addEventListener(\"touchend\", function(e){\n    if (!isDragging) return;\n    const endX = e.changedTouches[0].clientX;\n    const diff = startX - endX;\n\n    if (diff \u003e 50) {\n      nextSlide();\n    } else if (diff \u003c -50) {\n      prevSlide();\n    }\n\n    isDragging = false;\n    setTimeout(startAutoplay, 1500);\n  }, {passive:true});\n\n  viewport.addEventListener(\"mousedown\", function(e){\n    stopAutoplay();\n    isDragging = true;\n    moved = false;\n    startX = e.clientX;\n  });\n\n  window.addEventListener(\"mousemove\", function(e){\n    if (!isDragging) return;\n    if (Math.abs(e.clientX - startX) \u003e 8) moved = true;\n  });\n\n  window.addEventListener(\"mouseup\", function(e){\n    if (!isDragging) return;\n    const endX = e.clientX;\n    const diff = startX - endX;\n\n    if (diff \u003e 50) {\n      nextSlide();\n    } else if (diff \u003c -50) {\n      prevSlide();\n    }\n\n    isDragging = false;\n    setTimeout(startAutoplay, 1500);\n  });\n\n  viewport.addEventListener(\"mouseenter\", stopAutoplay);\n  viewport.addEventListener(\"mouseleave\", function(){\n    if (!isDragging) startAutoplay();\n  });\n\n  applyTransform(false);\n  startAutoplay();\n})();\n\u003c\/script\u003e\n\n\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003e\u0026lt;div class=\"mini-carrusel-mini-resenas\"\u0026gt;\u003cbr\u003e  \u0026lt;div class=\"mini-viewport-mini-resenas\" id=\"miniViewportResenas\"\u0026gt;\u003cbr\u003e    \u0026lt;div class=\"mini-track-mini-resenas\" id=\"miniTrackResenas\"\u0026gt;\u003cbr\u003e      \u0026lt;div class=\"mini-slide-mini-resenas\"\u0026gt;\u0026lt;img src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0646\/2459\/0895\/files\/WhatsApp_Image_2026-03-26_at_11.58.49.jpg?v=1774557583\" alt=\"Reseña 1\"\u0026gt;\u0026lt;\/div\u0026gt;\u003cbr\u003e      \u0026lt;div class=\"mini-slide-mini-resenas\"\u0026gt;\u0026lt;img src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0646\/2459\/0895\/files\/WhatsApp_Image_2026-03-26_at_11.52.38.jpg?v=1774557583\" alt=\"Reseña 2\"\u0026gt;\u0026lt;\/div\u0026gt;\u003cbr\u003e      \u0026lt;div class=\"mini-slide-mini-resenas\"\u0026gt;\u0026lt;img src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0646\/2459\/0895\/files\/WhatsApp_Image_2026-03-26_at_11.52.38_2.jpg?v=1774557583\" alt=\"Reseña 3\"\u0026gt;\u0026lt;\/div\u0026gt;\u003cbr\u003e      \u0026lt;div class=\"mini-slide-mini-resenas\"\u0026gt;\u0026lt;img src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0646\/2459\/0895\/files\/WhatsApp_Image_2026-03-26_at_11.56.01.jpg?v=1774557583\" alt=\"Reseña 4\"\u0026gt;\u0026lt;\/div\u0026gt;\u003cbr\u003e      \u0026lt;div class=\"mini-slide-mini-resenas\"\u0026gt;\u0026lt;img src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0646\/2459\/0895\/files\/WhatsApp_Image_2026-03-26_at_11.52.38_1.jpg?v=1774557583\" alt=\"Reseña 5\"\u0026gt;\u0026lt;\/div\u0026gt;\u003cbr\u003e      \u0026lt;div class=\"mini-slide-mini-resenas\"\u0026gt;\u0026lt;img src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0646\/2459\/0895\/files\/WhatsApp_Image_2026-03-26_at_11.56.01_2.jpg?v=1774557583\" alt=\"Reseña 6\"\u0026gt;\u0026lt;\/div\u0026gt;\u003cbr\u003e      \u0026lt;div class=\"mini-slide-mini-resenas\"\u0026gt;\u0026lt;img src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0646\/2459\/0895\/files\/WhatsApp_Image_2026-03-26_at_11.56.01_1.jpg?v=1774557583\" alt=\"Reseña 7\"\u0026gt;\u0026lt;\/div\u0026gt;\u003cbr\u003e      \u0026lt;div class=\"mini-slide-mini-resenas\"\u0026gt;\u0026lt;img src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0646\/2459\/0895\/files\/WhatsApp_Image_2026-03-26_at_11.52.37.jpg?v=1774557583\" alt=\"Reseña 8\"\u0026gt;\u0026lt;\/div\u0026gt;\u003cbr\u003e      \u0026lt;div class=\"mini-slide-mini-resenas\"\u0026gt;\u0026lt;img src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0646\/2459\/0895\/files\/WhatsApp_Image_2026-03-26_at_11.58.37.jpg?v=1774557583\" alt=\"Reseña 9\"\u0026gt;\u0026lt;\/div\u0026gt;\u003cbr\u003e    \u0026lt;\/div\u0026gt;\u003cbr\u003e  \u0026lt;\/div\u0026gt;\u003cbr\u003e\u0026lt;\/div\u0026gt;\u003c\/p\u003e\n\u003cp\u003e\u0026lt;style\u0026gt;\u003cbr\u003e.mini-carrusel-mini-resenas{\u003cbr\u003e  width:100%;\u003cbr\u003e  max-width:520px;\u003cbr\u003e  aspect-ratio:4\/5;\u003cbr\u003e  margin:auto;\u003cbr\u003e  overflow:hidden;\u003cbr\u003e  border-radius:16px;\u003cbr\u003e  background:#fff;\u003cbr\u003e  position:relative;\u003cbr\u003e}\u003c\/p\u003e\n\u003cp\u003e.mini-viewport-mini-resenas{\u003cbr\u003e  width:100%;\u003cbr\u003e  height:100%;\u003cbr\u003e  overflow:hidden;\u003cbr\u003e  touch-action:pan-y;\u003cbr\u003e}\u003c\/p\u003e\n\u003cp\u003e.mini-track-mini-resenas{\u003cbr\u003e  display:flex;\u003cbr\u003e  height:100%;\u003cbr\u003e  transition:transform .4s ease;\u003cbr\u003e  will-change:transform;\u003cbr\u003e}\u003c\/p\u003e\n\u003cp\u003e.mini-slide-mini-resenas{\u003cbr\u003e  min-width:50%;\u003cbr\u003e  height:100%;\u003cbr\u003e  padding:8px;\u003cbr\u003e  box-sizing:border-box;\u003cbr\u003e  user-select:none;\u003cbr\u003e}\u003c\/p\u003e\n\u003cp\u003e.mini-slide-mini-resenas img{\u003cbr\u003e  width:100%;\u003cbr\u003e  height:100%;\u003cbr\u003e  object-fit:contain;\u003cbr\u003e  border-radius:12px;\u003cbr\u003e  background:#f5f5f5;\u003cbr\u003e  display:block;\u003cbr\u003e  pointer-events:none;\u003cbr\u003e  user-select:none;\u003cbr\u003e  -webkit-user-drag:none;\u003cbr\u003e}\u003cbr\u003e\u0026lt;\/style\u0026gt;\u003c\/p\u003e\n\u003cp\u003e\u0026lt;script\u0026gt;\u003cbr\u003e(function(){\u003cbr\u003e  const track = document.getElementById(\"miniTrackResenas\");\u003cbr\u003e  const viewport = document.getElementById(\"miniViewportResenas\");\u003cbr\u003e  if (!track || !viewport) return;\u003c\/p\u003e\n\u003cp\u003e  track.innerHTML += track.innerHTML;\u003c\/p\u003e\n\u003cp\u003e  let index = 0;\u003cbr\u003e  let autoplayId = null;\u003cbr\u003e  let startX = 0;\u003cbr\u003e  let isDragging = false;\u003cbr\u003e  let moved = false;\u003cbr\u003e  const stepPercent = 50;\u003cbr\u003e  const originalCount = track.children.length \/ 2;\u003cbr\u003e  const intervalMs = 1000;\u003c\/p\u003e\n\u003cp\u003e  function applyTransform(useTransition) {\u003cbr\u003e    track.style.transition = useTransition ? \"transform .4s ease\" : \"none\";\u003cbr\u003e    track.style.transform = \"translateX(-\" + (index * stepPercent) + \"%)\";\u003cbr\u003e  }\u003c\/p\u003e\n\u003cp\u003e  function normalizeBackward() {\u003cbr\u003e    if (index \u0026lt; 0) {\u003cbr\u003e      track.style.transition = \"none\";\u003cbr\u003e      index = originalCount - 1;\u003cbr\u003e      track.style.transform = \"translateX(-\" + (index * stepPercent) + \"%)\";\u003cbr\u003e    }\u003cbr\u003e  }\u003c\/p\u003e\n\u003cp\u003e  function nextSlide() {\u003cbr\u003e    index++;\u003cbr\u003e    applyTransform(true);\u003c\/p\u003e\n\u003cp\u003e    if (index \u0026gt;= originalCount) {\u003cbr\u003e      setTimeout(function(){\u003cbr\u003e        track.style.transition = \"none\";\u003cbr\u003e        index = 0;\u003cbr\u003e        track.style.transform = \"translateX(0)\";\u003cbr\u003e      }, 400);\u003cbr\u003e    }\u003cbr\u003e  }\u003c\/p\u003e\n\u003cp\u003e  function prevSlide() {\u003cbr\u003e    index--;\u003cbr\u003e    normalizeBackward();\u003cbr\u003e    applyTransform(true);\u003cbr\u003e  }\u003c\/p\u003e\n\u003cp\u003e  function stopAutoplay() {\u003cbr\u003e    if (autoplayId) {\u003cbr\u003e      clearInterval(autoplayId);\u003cbr\u003e      autoplayId = null;\u003cbr\u003e    }\u003cbr\u003e  }\u003c\/p\u003e\n\u003cp\u003e  function startAutoplay() {\u003cbr\u003e    stopAutoplay();\u003cbr\u003e    autoplayId = setInterval(nextSlide, intervalMs);\u003cbr\u003e  }\u003c\/p\u003e\n\u003cp\u003e  viewport.addEventListener(\"touchstart\", function(e){\u003cbr\u003e    stopAutoplay();\u003cbr\u003e    isDragging = true;\u003cbr\u003e    moved = false;\u003cbr\u003e    startX = e.touches[0].clientX;\u003cbr\u003e  }, {passive:true});\u003c\/p\u003e\n\u003cp\u003e  viewport.addEventListener(\"touchmove\", function(){\u003cbr\u003e    if (isDragging) moved = true;\u003cbr\u003e  }, {passive:true});\u003c\/p\u003e\n\u003cp\u003e  viewport.addEventListener(\"touchend\", function(e){\u003cbr\u003e    if (!isDragging) return;\u003cbr\u003e    const endX = e.changedTouches[0].clientX;\u003cbr\u003e    const diff = startX - endX;\u003c\/p\u003e\n\u003cp\u003e    if (diff \u0026gt; 50) {\u003cbr\u003e      nextSlide();\u003cbr\u003e    } else if (diff \u0026lt; -50) {\u003cbr\u003e      prevSlide();\u003cbr\u003e    }\u003c\/p\u003e\n\u003cp\u003e    isDragging = false;\u003cbr\u003e    setTimeout(startAutoplay, 1500);\u003cbr\u003e  }, {passive:true});\u003c\/p\u003e\n\u003cp\u003e  viewport.addEventListener(\"mousedown\", function(e){\u003cbr\u003e    stopAutoplay();\u003cbr\u003e    isDragging = true;\u003cbr\u003e    moved = false;\u003cbr\u003e    startX = e.clientX;\u003cbr\u003e  });\u003c\/p\u003e\n\u003cp\u003e  window.addEventListener(\"mousemove\", function(e){\u003cbr\u003e    if (!isDragging) return;\u003cbr\u003e    if (Math.abs(e.clientX - startX) \u0026gt; 8) moved = true;\u003cbr\u003e  });\u003c\/p\u003e\n\u003cp\u003e  window.addEventListener(\"mouseup\", function(e){\u003cbr\u003e    if (!isDragging) return;\u003cbr\u003e    const endX = e.clientX;\u003cbr\u003e    const diff = startX - endX;\u003c\/p\u003e\n\u003cp\u003e    if (diff \u0026gt; 50) {\u003cbr\u003e      nextSlide();\u003cbr\u003e    } else if (diff \u0026lt; -50) {\u003cbr\u003e      prevSlide();\u003cbr\u003e    }\u003c\/p\u003e\n\u003cp\u003e    isDragging = false;\u003cbr\u003e    setTimeout(startAutoplay, 1500);\u003cbr\u003e  });\u003c\/p\u003e\n\u003cp\u003e  viewport.addEventListener(\"mouseenter\", stopAutoplay);\u003cbr\u003e  viewport.addEventListener(\"mouseleave\", function(){\u003cbr\u003e    if (!isDragging) startAutoplay();\u003cbr\u003e  });\u003c\/p\u003e\n\u003cp\u003e  applyTransform(false);\u003cbr\u003e  startAutoplay();\u003cbr\u003e})();\u003cbr\u003e\u0026lt;\/script\u0026gt;\u003c\/p\u003e","brand":"AeroShop EC","offers":[{"title":"Default Title","offer_id":43095662723139,"sku":null,"price":0.0,"currency_code":"USD","in_stock":false}],"url":"https:\/\/tiendahuellafeliz.com\/products\/prueba","provider":"AeroShop EC","version":"1.0","type":"link"}