{"product_id":"mochila-puna-30l-0cvbg","title":"Mochila Puna 30L Impermeable, Puerto USB y Antirrobo","description":"\u003cstyle\u003e\n#emapps-custom-wrapper,.emapps-discount-radio-group,.emapps-discount-radio-group-list,.emapps-discount-radio-group-list-item,.emapps-variant-bundle-clone,[id^=emapps-],[class^=emapps-]{display:none !important;visibility:hidden !important;height:0 !important;width:0 !important;overflow:hidden !important;position:absolute !important;left:-9999px !important;opacity:0 !important;pointer-events:none !important;}\n#arado2x1Alert,.arado2x1Alert,.aradoHotSale,.aradoHS-wrap,.aradoHS-glow,.aradoHS-row,.aradoHS-fire,.aradoHS-textBlock,.aradoHS-eyebrow,.aradoHS-title,.aradoHS-promo,.aradoHS-cta,.aradoHS-status,[class*=aradoHS-]{display:none !important;visibility:hidden !important;height:0 !important;overflow:hidden !important;}\n\u003c\/style\u003e\n\u003cscript\u003e\n(function(){\n  if (window.__ARADO_GUARD_317348286__) return;\n  window.__ARADO_GUARD_317348286__ = true;\n  var n = 0;\n  var iv = setInterval(function(){\n    n++;\n    var forms = document.querySelectorAll('form.js-product-form,form#product_form,form.product-form');\n    forms.forEach(function(f){\n      var st = f.getAttribute('style') || '';\n      if (st.indexOf('display: none') \u003e= 0 || st.indexOf('display:none') \u003e= 0) f.removeAttribute('style');\n      if (getComputedStyle(f).display === 'none') f.style.setProperty('display','block','important');\n    });\n    var groups = document.querySelectorAll('.js-product-variants-group,.js-product-variants');\n    groups.forEach(function(g){ var s = g.getAttribute('style') || ''; if (s.indexOf('display: none') \u003e= 0) g.removeAttribute('style'); });\n    if (n \u003e= 120) clearInterval(iv);\n  }, 100);\n})();\n\u003c\/script\u003e\n\u003cdiv class=\"prose dark:prose-invert inline leading-relaxed break-words min-w-0 [word-break:break-word] prose-strong:font-medium [\u0026amp;_\u0026gt;*:first-child]:mt-0\"\u003e\n\u003ch2 id=\"especificaciones-tcnicas-principales\" class=\"mb-2 mt-4 font-sans font-semimedium text-base first:mt-0 md:text-lg [hr+\u0026amp;]:mt-4\"\u003eEspecificaciones técnicas principales\u003c\/h2\u003e\n\u003cp class=\"my-2 [\u0026amp;+p]:mt-4 [\u0026amp;_strong:has(+br)]:inline-block [\u0026amp;_strong:has(+br)]:pb-2\"\u003eLa Mochila Puna tiene dimensiones de 50cm de altura x 30cm de ancho x 15cm de profundidad, con capacidad de 30 litros. Está fabricada en material reforzado con forro interno y cuenta con cierres de alta resistencia que garantizan durabilidad.\u003c\/p\u003e\n\u003ch2 id=\"caractersticas-funcionales-destacadas\" class=\"mb-2 mt-4 font-sans font-semimedium text-base first:mt-0 md:text-lg [hr+\u0026amp;]:mt-4\"\u003eCaracterísticas funcionales destacadas\u003c\/h2\u003e\n\u003cp class=\"my-2 [\u0026amp;+p]:mt-4 [\u0026amp;_strong:has(+br)]:inline-block [\u0026amp;_strong:has(+br)]:pb-2\"\u003eEl producto incluye compartimiento para notebook, puerto USB externo con cable interno para conectar powerbank (no incluido), y salida para auriculares. También tiene bolsillos laterales, múltiples bolsillos frontales, y un bolsillo oculto antirrobo en la parte trasera. Las tiras son regulables y acolchonadas, con maya transpirable tanto en la espalda como en las correas para mayor comodidad.\u003c\/p\u003e\n\u003ch2 id=\"seguridad-y-extras\" class=\"mb-2 mt-4 font-sans font-semimedium text-base first:mt-0 md:text-lg [hr+\u0026amp;]:mt-4\"\u003eSeguridad y extras\u003c\/h2\u003e\n\u003cp class=\"my-2 [\u0026amp;+p]:mt-4 [\u0026amp;_strong:has(+br)]:inline-block [\u0026amp;_strong:has(+br)]:pb-2\"\u003eIncluye cierre antirrobo tipo candado para mayor protección de tus pertenencias. Viene con una cartuchera de regalo y cuenta con apertura de doble cierre. El diseño incorpora el logo frontal de la marca I Run.\u003c\/p\u003e\n\u003ch2 id=\"especificaciones-tcnicas-principales\" class=\"mb-2 mt-4 font-sans font-semimedium text-base first:mt-0 md:text-lg [hr+\u0026amp;]:mt-4\"\u003e\u003cimg src=\"https:\/\/d1a9qnv764bsoo.cloudfront.net\/stores\/006\/720\/937\/rte\/re.webp\" alt=\"\" width=\"1080\" height=\"2811\"\u003e\u003c\/h2\u003e\n\u003c\/div\u003e\n\u003cp\u003e\n\u003cscript\u003e\n\nconst productName = document.querySelector('.js-product-name');\n\nif (productName) {\n  productName.insertAdjacentHTML('afterend', \n    '\u003cp style=\"font-size: 14px; color: #666; margin-top: 8px; line-height: 1.4; font-style: italic;\"\u003eTela impermeable certificada que protege tu equipo electrónico en cualquier clima, con cierre antirrobo tipo candado y bolsillo oculto para máxima seguridad.\u003c\/p\u003e'\n  );\n}\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\/* Arado - FAQs estilo Passenger + Ocultar Medios de pago + Ocultar Medios de envío\n   Scope: SOLO producto \/productos\/mochila-puna-30l-0cvbg\/\n*\/\n(function () {\n  \/\/ 0) Scope por URL (para que no afecte otros productos)\n  var PATH_MATCH = \"\/productos\/mochila-puna-30l-0cvbg\/\";\n  if (location.pathname.indexOf(PATH_MATCH) === -1) return;\n\n  function ready(fn) {\n    if (document.readyState === \"loading\") document.addEventListener(\"DOMContentLoaded\", fn);\n    else fn();\n  }\n\n  \/\/ Helper: ocultar sin romper si no existe\n  function hideEl(el) {\n    if (!el) return;\n    el.style.display = \"none\";\n    el.setAttribute(\"aria-hidden\", \"true\");\n  }\n\n  ready(function () {\n    var form = document.querySelector(\".js-product-form\") || document.querySelector('form[action*=\"\/cart\"]');\n    if (!form) return;\n\n    \/* =========================================================\n       1) OCULTAR \"MEDIOS DE PAGO\" (acorde a tu script original)\n       ========================================================= *\/\n    (function disablePaymentsAccordion() {\n      var payStyle = document.getElementById(\"arado-pay-style\");\n      if (payStyle) payStyle.remove();\n\n      var payAcc = form.querySelector(\".js-accordion-container\");\n      if (!payAcc) return;\n\n      payAcc.classList.remove(\"arado-pay--skinned\", \"arado-acc--skinned\");\n\n      payAcc.querySelectorAll(\".arado-pay__icon, .arado-acc__icon\").forEach(function (el) {\n        el.remove();\n      });\n\n      payAcc.querySelectorAll(\".arado-pay__anim\").forEach(function (anim) {\n        var inner = anim.querySelector(\".arado-pay__inner\") || anim;\n        var parent = anim.parentNode;\n        while (inner.firstChild) parent.insertBefore(inner.firstChild, anim);\n        anim.remove();\n      });\n\n      hideEl(payAcc);\n\n      var gocuotasModal = document.getElementById(\"gocuotas-modal\");\n      hideEl(gocuotasModal);\n    })();\n\n    \/* =========================================================\n       2) FAQ Accordion (ajustado a Mochila Puna 30L)\n       ========================================================= *\/\n    if (form.querySelector(\".arado-faq\")) return;\n\n    var FAQS = [\n      {\n        q: \"¿Entra una notebook y qué tamaño?\",\n        a: \"Sí: tiene compartimiento para notebook. Si tu equipo es hasta 15,6\\\" normalmente entra sin problema (depende del grosor del modelo).\"\n      },\n      {\n        q: \"¿Cómo funciona el puerto USB?\",\n        a: \"Trae puerto USB externo con cable interno para conectar un powerbank por dentro (powerbank no incluido).\"\n      },\n      {\n        q: \"¿Tiene seguridad antirrobo?\",\n        a: \"Sí: incluye bolsillo oculto antirrobo en la parte trasera y cierre antirrobo tipo candado.\"\n      },\n      {\n        q: \"¿Qué capacidad y medidas tiene?\",\n        a: \"Capacidad 30L. Medidas: 50 cm alto x 30 cm ancho x 15 cm profundidad.\"\n      }\n    ];\n\n    if (!document.getElementById(\"arado-faq-style\")) {\n      var css = `\n        .arado-faq{ margin-top:14px; border-top:1px solid rgba(0,0,0,.10); }\n        .arado-faq__item{ border-bottom:1px solid rgba(0,0,0,.10); }\n        .arado-faq__btn{\n          width:100%; display:flex; align-items:center; justify-content:space-between;\n          gap:12px; padding:14px 0; background:transparent; border:0; text-align:left; cursor:pointer;\n        }\n        .arado-faq__title{ font-size:18px; line-height:1.2; font-weight:600; color:#111; }\n        .arado-faq__icon{\n          width:32px; height:32px; display:inline-grid; place-items:center; border-radius:999px;\n          border:1px solid rgba(0,0,0,.18); flex:0 0 auto; position:relative;\n        }\n        .arado-faq__icon:before,.arado-faq__icon:after{\n          content:\"\"; position:absolute; background:rgba(0,0,0,.70); border-radius:2px;\n        }\n        .arado-faq__icon:before{ width:14px; height:2px; }\n        .arado-faq__icon:after{ width:2px; height:14px; transition:transform .22s ease; }\n        .arado-faq__item[aria-expanded=\"true\"] .arado-faq__icon:after{ transform:scaleY(0); }\n        .arado-faq__panel{ overflow:hidden; height:0; transition:height .28s ease; }\n        .arado-faq__content{ padding:0 0 14px 0; color:rgba(0,0,0,.75); font-size:14px; line-height:1.5; }\n        @media (max-width:768px){\n          .arado-faq__title{ font-size:16px; }\n          .arado-faq__btn{ padding:12px 0; }\n        }\n      `.trim();\n\n      var style = document.createElement(\"style\");\n      style.id = \"arado-faq-style\";\n      style.appendChild(document.createTextNode(css));\n      document.head.appendChild(style);\n    }\n\n    var faqWrap = document.createElement(\"div\");\n    faqWrap.className = \"arado-faq\";\n    faqWrap.setAttribute(\"data-component\", \"arado.faq\");\n\n    FAQS.forEach(function (item, idx) {\n      var faqItem = document.createElement(\"div\");\n      faqItem.className = \"arado-faq__item\";\n      faqItem.setAttribute(\"aria-expanded\", \"false\");\n\n      var btn = document.createElement(\"button\");\n      btn.type = \"button\";\n      btn.className = \"arado-faq__btn\";\n      btn.setAttribute(\"aria-controls\", \"arado-faq-panel-\" + idx);\n      btn.setAttribute(\"aria-expanded\", \"false\");\n\n      var title = document.createElement(\"span\");\n      title.className = \"arado-faq__title\";\n      title.textContent = item.q;\n\n      var icon = document.createElement(\"span\");\n      icon.className = \"arado-faq__icon\";\n      icon.setAttribute(\"aria-hidden\", \"true\");\n\n      btn.appendChild(title);\n      btn.appendChild(icon);\n\n      var panel = document.createElement(\"div\");\n      panel.className = \"arado-faq__panel\";\n      panel.id = \"arado-faq-panel-\" + idx;\n\n      var content = document.createElement(\"div\");\n      content.className = \"arado-faq__content\";\n      content.textContent = item.a || \"\";\n\n      panel.appendChild(content);\n      faqItem.appendChild(btn);\n      faqItem.appendChild(panel);\n      faqWrap.appendChild(faqItem);\n    });\n\n    \/\/ Insert: al final del form (si lo querés en otro lugar decime dónde)\n    form.appendChild(faqWrap);\n\n    function closeItem(itemEl) {\n      if (!itemEl) return;\n      var btn = itemEl.querySelector(\".arado-faq__btn\");\n      var panel = itemEl.querySelector(\".arado-faq__panel\");\n      itemEl.setAttribute(\"aria-expanded\", \"false\");\n      btn.setAttribute(\"aria-expanded\", \"false\");\n      panel.style.height = panel.scrollHeight + \"px\";\n      panel.offsetHeight;\n      panel.style.height = \"0px\";\n    }\n\n    function openItem(itemEl) {\n      var btn = itemEl.querySelector(\".arado-faq__btn\");\n      var panel = itemEl.querySelector(\".arado-faq__panel\");\n      itemEl.setAttribute(\"aria-expanded\", \"true\");\n      btn.setAttribute(\"aria-expanded\", \"true\");\n      panel.style.height = panel.scrollHeight + \"px\";\n    }\n\n    function normalizeHeights() {\n      faqWrap.querySelectorAll(\".arado-faq__item[aria-expanded='true']\").forEach(function (itemEl) {\n        var panel = itemEl.querySelector(\".arado-faq__panel\");\n        panel.style.height = panel.scrollHeight + \"px\";\n      });\n    }\n\n    faqWrap.addEventListener(\"click\", function (e) {\n      var btn = e.target.closest(\".arado-faq__btn\");\n      if (!btn) return;\n      e.preventDefault();\n\n      var itemEl = btn.closest(\".arado-faq__item\");\n      var isOpen = itemEl.getAttribute(\"aria-expanded\") === \"true\";\n\n      faqWrap.querySelectorAll(\".arado-faq__item[aria-expanded='true']\").forEach(function (openEl) {\n        if (openEl !== itemEl) closeItem(openEl);\n      });\n\n      if (isOpen) closeItem(itemEl);\n      else openItem(itemEl);\n    });\n\n    window.addEventListener(\"resize\", normalizeHeights);\n    setTimeout(normalizeHeights, 350);\n\n    \/* =========================================================\n       3) OCULTAR \"MEDIOS DE ENVÍO\" (sin romper si no existe)\n       ========================================================= *\/\n    hideEl(document.getElementById(\"product-shipping-container\"));\n  });\n})();\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n(() =\u003e {\n  \/\/ 1. VALIDACIÓN DE URL (Solo se ejecuta en el Trekko Termico)\n  if (!window.location.href.includes(\"mochila-puna-30l-0cvbg\")) return;\n\n  \/\/ --- CONFIGURACIÓN ---\n  const SIZE_FACTOR = 0.65; \/\/ Aumenté un poco el factor para que en formato vertical no queden muy chicas\n  const SPEED_PX_PER_SEC = 25; \/\/ Velocidad suave\n  \n  \/\/ 2. TUS IMÁGENES (Usando las mismas del producto)\n  const IMAGE_ITEMS = [\n    {\n      src: \"https:\/\/i.ibb.co\/S47L7nqg\/fila-1-columna-1.jpg\",\n      alt: \"Trekko Térmico Beige\"\n    },\n    {\n      src: \"https:\/\/i.ibb.co\/NgP07TsW\/fila-1-columna-2.jpg\",\n      alt: \"Trekko Térmico Detalle\"\n    },\n    {\n      src: \"https:\/\/i.ibb.co\/QvGRsXXK\/fila-1-columna-3.jpg\",\n      alt: \"Trekko Térmico Uso\"\n    },\n    {\n      src: \"https:\/\/i.ibb.co\/jkNsbX0c\/fila-1-columna-4.jpg\",\n      alt: \"Trekko Térmico Gris\"\n    },\n    {\n      src: \"https:\/\/i.ibb.co\/9HpX3vMY\/fila-1-columna-5.jpg\",\n      alt: \"Trekko Térmico Negro\"\n    },\n    {\n      src: \"https:\/\/i.ibb.co\/Xkst42Wz\/fila-2-columna-1.jpg\",\n      alt: \"Trekko Térmico Atrás\"\n    },\n    {\n      src: \"https:\/\/i.ibb.co\/904PgMf\/fila-2-columna-2.jpg\",\n      alt: \"Trekko Térmico Detalle\"\n    },\n    {\n      src: \"https:\/\/i.ibb.co\/ksn1rdhY\/fila-2-columna-3.jpg\",\n      alt: \"Trekko Térmico Uso\"\n    },\n    {\n      src: \"https:\/\/i.ibb.co\/V0sccGkd\/fila-2-columna-4.jpg\",\n      alt: \"Trekko Térmico Gris\"\n    },\n    {\n      src: \"https:\/\/i.ibb.co\/cS5GFR6x\/fila-2-columna-5.jpg\",\n      alt: \"Trekko Térmico Negro\"\n    }\n\n  ];\n\n  if (document.querySelector(\"[data-wigy-infinite]\")) return;\n  const mountSelector = \".js-product-form\"; \n\n  const waitForMount = (selector, { timeout = 15000, interval = 200 } = {}) =\u003e\n    new Promise((resolve) =\u003e {\n      const start = Date.now();\n      const timer = setInterval(() =\u003e {\n        const el = document.querySelector(selector);\n        if (el) { clearInterval(timer); resolve(el); return; }\n        if (Date.now() - start \u003e timeout) { clearInterval(timer); resolve(null); }\n      }, interval);\n    });\n\n  const inject = async () =\u003e {\n    let mount;\n    try { mount = await waitForMount(mountSelector); } catch (e) { return; }\n    if (!mount) return;\n\n    \/\/ --- CSS AJUSTADO A 9:16 ---\n    \/\/ Calculamos el ancho base en función de una altura típica de móvil\n    const basePx = Math.round(260 * SIZE_FACTOR); \n    const baseVw = Math.round(50 * SIZE_FACTOR);\n    \n    const css = `\n      .wigy-image-carousel {\n        --gap: 12px;\n        \/* Ancho de cada slide *\/\n        --slideW: min(${basePx}px, ${baseVw}vw);\n        width: 100%;\n        position: relative;\n        margin: 24px 0;\n        z-index: 5;\n      }\n      .track-container {\n        overflow: hidden;\n        width: 100%;\n        user-select: none;\n        -webkit-user-select: none;\n        cursor: grab;\n        \/* Máscara para suavizar bordes *\/\n        mask-image: linear-gradient(to right, transparent 0%, black 10%, black 90%, transparent 100%);\n        -webkit-mask-image: linear-gradient(to right, transparent 0%, black 10%, black 90%, transparent 100%);\n      }\n      .track {\n        display: flex;\n        gap: var(--gap);\n        will-change: transform;\n      }\n      .wigy-slide { \n        flex: 0 0 var(--slideW); \n      }\n      .card { \n        border-radius: 12px;\n        overflow: hidden; \n        background: #f4f4f4;\n        box-shadow: 0 4px 10px rgba(0,0,0,0.1);\n        transition: transform 0.2s ease;\n      }\n      .card:hover { transform: scale(1.02); }\n      \n      .image-wrapper { \n        position: relative; \n        width: 100%; \n        \/* CAMBIO PRINCIPAL: Formato Vertical 9:16 *\/\n        aspect-ratio: 9 \/ 16; \n      }\n      .image-wrapper img {\n        position: absolute; inset: 0; width: 100%; height: 100%;\n        \/* Cover asegura que la imagen llene el alto vertical sin deformarse *\/\n        object-fit: cover; \n        display: block;\n      }\n    `;\n\n    if (!document.querySelector(\"[data-wigy-style='img-916']\")) {\n      const style = document.createElement(\"style\");\n      style.setAttribute(\"data-wigy-style\", \"img-916\");\n      style.textContent = css;\n      document.head.appendChild(style);\n    }\n\n    \/\/ --- HTML ---\n    const root = document.createElement(\"section\");\n    root.className = \"wigy-image-carousel\";\n    root.setAttribute(\"data-wigy-infinite\", \"1\");\n\n    const slidesHTML = (items) =\u003e\n      items.map((item) =\u003e `\n        \u003cdiv class=\"wigy-slide\"\u003e\n          \u003cdiv class=\"card\"\u003e\n            \u003cdiv class=\"image-wrapper\"\u003e\n              \u003cimg src=\"${item.src}\" alt=\"${item.alt}\" loading=\"lazy\" draggable=\"false\" \/\u003e\n            \u003c\/div\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      `).join(\"\");\n\n    root.innerHTML = `\n      \u003cdiv class=\"track-container\" aria-label=\"Galería infinita\"\u003e\n        \u003cdiv class=\"track\"\u003e\n          ${slidesHTML(IMAGE_ITEMS)}\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    `;\n\n    mount.appendChild(root); \n\n    \/\/ --- Lógica Slider ---\n    const trackContainer = root.querySelector(\".track-container\");\n    const track = root.querySelector(\".track\");\n    \n    const cloneSets = () =\u003e {\n      Array.from(track.querySelectorAll(\"[data-clone='1']\")).forEach((n) =\u003e n.remove());\n      const baseSlides = Array.from(track.children);\n      const baseCount = baseSlides.length;\n      for (let s = 0; s \u003c 3; s++) {\n        for (let i = 0; i \u003c baseCount; i++) {\n          const c = baseSlides[i].cloneNode(true);\n          c.setAttribute(\"data-clone\", \"1\");\n          const img = c.querySelector(\"img\");\n          if(img) img.loading = \"eager\";\n          track.appendChild(c);\n        }\n      }\n    };\n\n    const getOneSetWidth = () =\u003e {\n      const set = Array.from(track.children).slice(0, IMAGE_ITEMS.length);\n      if (!set.length) return 0;\n      const first = set[0];\n      const last = set[set.length - 1];\n      const gap = parseInt(getComputedStyle(root).getPropertyValue('--gap')) || 0;\n      return (last.offsetLeft - first.offsetLeft) + last.getBoundingClientRect().width + gap;\n    };\n\n    cloneSets();\n    \n    let oneSetWidth = 0;\n    let x = 0;\n    let lastT = 0;\n\n    const recalc = () =\u003e {\n      oneSetWidth = getOneSetWidth();\n      if (oneSetWidth \u003e 0) x = -((Math.abs(x) % oneSetWidth));\n    };\n\n    const tick = (t) =\u003e {\n      if (!lastT) lastT = t;\n      const dt = (t - lastT) \/ 1000;\n      lastT = t;\n      x -= SPEED_PX_PER_SEC * dt;\n      if (oneSetWidth \u003e 0 \u0026\u0026 Math.abs(x) \u003e= oneSetWidth) {\n        x += oneSetWidth;\n      }\n      track.style.transform = `translateX(${x}px)`;\n      requestAnimationFrame(tick);\n    };\n\n    setTimeout(() =\u003e { recalc(); requestAnimationFrame(tick); }, 500);\n    window.addEventListener(\"resize\", recalc);\n  };\n  inject();\n})();\n\n\u003c\/script\u003e\n\u003c\/p\u003e","brand":"Arado","offers":[{"title":"Default Title","offer_id":54159113846968,"sku":null,"price":49000.0,"currency_code":"ARS","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0984\/0512\/2232\/files\/fila-1-columna-1_4d531e48-4507-49da-80c0-cfc94352227b.jpg?v=1790096885","url":"https:\/\/arado.shop\/products\/mochila-puna-30l-0cvbg","provider":"Arado Argentina","version":"1.0","type":"link"}