{"product_id":"gorro-morley-doble-81w2p","title":"Gorro Morley Doble","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_323982893__) return;\n  window.__ARADO_GUARD_323982893__ = 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\u003cp\u003e\u003cimg src=\"https:\/\/d1a9qnv764bsoo.cloudfront.net\/stores\/006\/720\/937\/rte\/re.webp\" alt=\"\" width=\"1080\" height=\"2811\"\u003e\u003c\/p\u003e\n\u003cp\u003e\n\u003cscript\u003e\n\n\n\n\n(() =\u003e {\n  const MOBILE_MAX_W = 640;\n\n  \/\/ ===== Carrusel =====\n  const SIZE_FACTOR = 0.65;\n  const SPEED_PX_PER_SEC = 25;\n\n  const IMAGE_ITEMS = [\n    { src: \"https:\/\/i.ibb.co\/S47L7nqg\/fila-1-columna-1.jpg\", alt: \"Trekko Térmico Beige\" },\n    { src: \"https:\/\/i.ibb.co\/TxMP8CyL\/fila-1-columna-1.jpg\", alt: \"Trekko Térmico Beige\" },\n    { src: \"https:\/\/i.ibb.co\/NgP07TsW\/fila-1-columna-2.jpg\", alt: \"Trekko Térmico Detalle\" },\n    { src: \"https:\/\/i.ibb.co\/QvGRsXXK\/fila-1-columna-3.jpg\", alt: \"Trekko Térmico Uso\" },\n    { src: \"https:\/\/i.ibb.co\/jkNsbX0c\/fila-1-columna-4.jpg\", alt: \"Trekko Térmico Gris\" },\n    { src: \"https:\/\/i.ibb.co\/9HpX3vMY\/fila-1-columna-5.jpg\", alt: \"Trekko Térmico Negro\" },\n    { src: \"https:\/\/i.ibb.co\/Xkst42Wz\/fila-2-columna-1.jpg\", alt: \"Trekko Térmico Atrás\" },\n    { src: \"https:\/\/i.ibb.co\/904PgMf\/fila-2-columna-2.jpg\", alt: \"Trekko Térmico Detalle\" },\n    { src: \"https:\/\/i.ibb.co\/ksn1rdhY\/fila-2-columna-3.jpg\", alt: \"Trekko Térmico Uso\" },\n    { src: \"https:\/\/i.ibb.co\/V0sccGkd\/fila-2-columna-4.jpg\", alt: \"Trekko Térmico Gris\" },\n    { src: \"https:\/\/i.ibb.co\/cS5GFR6x\/fila-2-columna-5.jpg\", alt: \"Trekko Térmico Negro\" },\n  ];\n\n  \/\/ ===== FAQ (solo gorro) =====\n  const FAQ_HANDLE = \"gorro-morley-doble-81w2p\";\n  const FAQS = [\n    { q: \"¿Abriga bien o es finito?\", a: \"Abriga bien: está tejido en punto canelón morley doble (estructura doble), lo que le da más cuerpo y protección para otoño\/invierno.\" },\n    { q: \"¿Qué talle es? ¿Se adapta?\", a: \"Es talle único (adulto) y se adapta con elasticidad. El puño ancho ayuda a un calce cómodo y firme.\" },\n    { q: \"¿De qué material está hecho?\", a: \"Material: acrílico. Textura suave, abrigada y elástica.\" },\n    { q: \"¿Cuáles son las medidas aproximadas?\", a: \"Medidas aprox.: 20 cm (alto), 18 cm (ancho), 7 cm (puño).\" },\n    { q: \"¿Es unisex?\", a: \"Sí, es un modelo unisex de estilo clásico.\" },\n    { q: \"¿Para qué uso lo recomiendan?\", a: \"Uso recomendado: diario, urbano, viajes; ideal para días fríos.\" },\n    { q: \"¿Cómo se lava?\", a: \"Lavado a mano o en ciclo suave, con agua fría. Secar a la sombra para cuidar el tejido.\" },\n    { q: \"¿Tiene garantía?\", a: \"Sí: garantía por fallas de fábrica por 30 días.\" },\n  ];\n\n  \/\/ ===== Helpers =====\n  const isProductPage = () =\u003e \/^\\\/productos\\\/[^\\\/]+\\\/?$\/i.test(location.pathname);\n  const isMobileNow = () =\u003e !window.matchMedia(`(min-width: ${MOBILE_MAX_W + 1}px)`).matches; \/\/ matchMedia [web:44]\n\n  const getHandle = () =\u003e {\n    const m = location.pathname.match(\/\\\/productos\\\/([^\\\/*?#]+)\\\/?\/i);\n    return (m \u0026\u0026 m[1]) ? decodeURIComponent(m[1]).toLowerCase() : \"\";\n  };\n\n  const debounce = (fn, wait = 150) =\u003e {\n    let t = null;\n    return (...args) =\u003e { clearTimeout(t); t = setTimeout(() =\u003e fn.apply(null, args), wait); };\n  };\n\n  const waitFor = (fn, { timeout = 15000, interval = 200 } = {}) =\u003e\n    new Promise((resolve) =\u003e {\n      const start = Date.now();\n      const timer = setInterval(() =\u003e {\n        const v = fn();\n        if (v) { clearInterval(timer); resolve(v); return; }\n        if (Date.now() - start \u003e timeout) { clearInterval(timer); resolve(null); }\n      }, interval);\n    });\n\n  const findAnchor = () =\u003e\n    document.querySelector('[data-store^=\"product-form\"]') ||\n    document.querySelector(\".js-product-form\") ||\n    document.querySelector('form[action*=\"\/comprar\"]') ||\n    document.querySelector(\"main\");\n\n  \/\/ ===== FAQ inject =====\n  const injectFAQ = () =\u003e {\n    if (!isProductPage()) return null;\n    if (getHandle() !== FAQ_HANDLE) return null;\n\n    const mount = findAnchor();\n    if (!mount) return null;\n\n    const existing = mount.querySelector(\".arado-faq\");\n    if (existing) return existing;\n\n    if (!document.getElementById(\"arado-faq-style\")) {\n      const 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{ width: 100%; display:flex; align-items:center; justify-content:space-between; gap: 12px; padding: 14px 0; background: transparent; border: 0; text-align: left; cursor: pointer; }\n.arado-faq__title{ font-size: 18px; line-height: 1.2; font-weight: 600; color: #111; }\n.arado-faq__icon{ width: 32px; height: 32px; display: inline-grid; place-items: center; border-radius: 999px; border: 1px solid rgba(0,0,0,.18); flex: 0 0 auto; position: relative; }\n.arado-faq__icon:before, .arado-faq__icon:after{ content:\"\"; position:absolute; background: rgba(0,0,0,.70); border-radius: 2px; }\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){ .arado-faq__title{ font-size: 16px; } .arado-faq__btn{ padding: 12px 0; } }\n      `.trim();\n      const style = document.createElement(\"style\");\n      style.id = \"arado-faq-style\";\n      style.textContent = css;\n      document.head.appendChild(style);\n    }\n\n    const faqWrap = document.createElement(\"div\");\n    faqWrap.className = \"arado-faq\";\n\n    FAQS.forEach((item, idx) =\u003e {\n      const faqItem = document.createElement(\"div\");\n      faqItem.className = \"arado-faq__item\";\n      faqItem.setAttribute(\"aria-expanded\", \"false\");\n\n      const 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      const title = document.createElement(\"span\");\n      title.className = \"arado-faq__title\";\n      title.textContent = item.q;\n\n      const icon = document.createElement(\"span\");\n      icon.className = \"arado-faq__icon\";\n      icon.setAttribute(\"aria-hidden\", \"true\");\n\n      const panel = document.createElement(\"div\");\n      panel.className = \"arado-faq__panel\";\n      panel.id = \"arado-faq-panel-\" + idx;\n\n      const content = document.createElement(\"div\");\n      content.className = \"arado-faq__content\";\n      content.textContent = item.a || \"\";\n\n      btn.appendChild(title);\n      btn.appendChild(icon);\n      panel.appendChild(content);\n\n      faqItem.appendChild(btn);\n      faqItem.appendChild(panel);\n      faqWrap.appendChild(faqItem);\n    });\n\n    mount.appendChild(faqWrap);\n\n    const closeItem = (itemEl) =\u003e {\n      const btn = itemEl.querySelector(\".arado-faq__btn\");\n      const 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    const openItem = (itemEl) =\u003e {\n      const btn = itemEl.querySelector(\".arado-faq__btn\");\n      const 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    const normalizeHeights = () =\u003e {\n      faqWrap.querySelectorAll(\".arado-faq__item[aria-expanded='true']\").forEach((itemEl) =\u003e {\n        const panel = itemEl.querySelector(\".arado-faq__panel\");\n        panel.style.height = panel.scrollHeight + \"px\";\n      });\n    };\n\n    faqWrap.addEventListener(\"click\", (e) =\u003e {\n      const btn = e.target.closest(\".arado-faq__btn\");\n      if (!btn) return;\n      e.preventDefault();\n\n      const itemEl = btn.closest(\".arado-faq__item\");\n      const isOpen = itemEl.getAttribute(\"aria-expanded\") === \"true\";\n\n      faqWrap.querySelectorAll(\".arado-faq__item[aria-expanded='true']\").forEach((openEl) =\u003e {\n        if (openEl !== itemEl) closeItem(openEl);\n      });\n\n      if (isOpen) closeItem(itemEl);\n      else openItem(itemEl);\n    });\n\n    window.addEventListener(\"resize\", debounce(normalizeHeights, 150), { passive: true });\n    setTimeout(normalizeHeights, 350);\n\n    return faqWrap;\n  };\n\n  \/\/ ===== Carrusel inject (debajo del FAQ si existe) =====\n  const injectCarousel = () =\u003e {\n    if (!isProductPage()) return;\n    if (!isMobileNow()) return;\n    if (document.querySelector(\"[data-wigy-infinite='1']\")) return;\n\n    const basePx = Math.round(260 * SIZE_FACTOR);\n    const baseVw = Math.round(50 * SIZE_FACTOR);\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 = `\n@media (min-width: ${MOBILE_MAX_W + 1}px){\n  .wigy-image-carousel[data-wigy-infinite=\"1\"]{ display:none !important; }\n}\n.wigy-image-carousel{ --gap:12px; --slideW:min(${basePx}px, ${baseVw}vw); width:100%; position:relative; margin:24px 0; z-index:5; }\n.track-container{ overflow:hidden; width:100%; user-select:none; -webkit-user-select:none; cursor:grab;\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{ display:flex; gap:var(--gap); will-change:transform; }\n.wigy-slide{ flex:0 0 var(--slideW); }\n.card{ border-radius:12px; overflow:hidden; background:#f4f4f4; box-shadow:0 4px 10px rgba(0,0,0,0.1); transition:transform .2s ease; }\n.card:hover{ transform:scale(1.02); }\n\n\/* 9:16 vertical *\/\n.image-wrapper{ position:relative; width:100%; height:0; padding-top:177.7778%; overflow:hidden; background:#f4f4f4; }\n.image-wrapper img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; display:block; }\n      `.trim();\n      document.head.appendChild(style);\n    }\n\n    const root = document.createElement(\"section\");\n    root.className = \"wigy-image-carousel\";\n    root.setAttribute(\"data-wigy-infinite\", \"1\");\n\n    const slidesHTML = IMAGE_ITEMS.map((item, idx) =\u003e {\n      const critical = idx \u003c 3;\n      return `\n\u003cdiv class=\"wigy-slide\"\u003e\n  \u003cdiv class=\"card\"\u003e\n    \u003cdiv class=\"image-wrapper\"\u003e\n      \u003cimg src=\"${item.src}\"\n           alt=\"${item.alt || \"\"}\"\n           loading=\"${critical ? \"eager\" : \"lazy\"}\"\n           decoding=\"async\"\n           draggable=\"false\" \/\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e`.trim();\n    }).join(\"\");\n\n    root.innerHTML = `\n\u003cdiv class=\"track-container\" aria-label=\"Galería infinita\"\u003e\n  \u003cdiv class=\"track\"\u003e${slidesHTML}\u003c\/div\u003e\n\u003c\/div\u003e`.trim();\n\n    const faqEl = document.querySelector(\".arado-faq\");\n    const anchor = faqEl || findAnchor();\n    if (!anchor) return;\n\n    anchor.insertAdjacentElement(\"afterend\", root); \/\/ [web:61]\n\n    const track = root.querySelector(\".track\");\n\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\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        track.appendChild(c);\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    let oneSetWidth = 0;\n    let x = 0;\n    let lastT = 0;\n\n    const recalc = () =\u003e {\n      if (!isMobileNow()) { root.remove(); return; }\n      oneSetWidth = getOneSetWidth();\n      if (oneSetWidth \u003e 0) x = -((Math.abs(x) % oneSetWidth));\n    };\n\n    const tick = (t) =\u003e {\n      if (!isMobileNow()) return;\n\n      if (!lastT) lastT = t;\n      const dt = (t - lastT) \/ 1000;\n      lastT = t;\n\n      x -= SPEED_PX_PER_SEC * dt;\n      if (oneSetWidth \u003e 0 \u0026\u0026 Math.abs(x) \u003e= oneSetWidth) x += oneSetWidth;\n\n      track.style.transform = `translateX(${x}px)`;\n      requestAnimationFrame(tick);\n    };\n\n    setTimeout(() =\u003e { recalc(); requestAnimationFrame(tick); }, 350);\n    window.addEventListener(\"resize\", debounce(recalc, 150), { passive: true });\n  };\n\n  \/\/ ===== Init =====\n  const init = async () =\u003e {\n    if (!isProductPage()) return;\n\n    injectFAQ();\n    await waitFor(() =\u003e findAnchor() || document.querySelector(\".arado-faq\"), { timeout: 15000, interval: 200 });\n    injectCarousel();\n  };\n\n  if (document.readyState === \"loading\") document.addEventListener(\"DOMContentLoaded\", init);\n  else init();\n})();\n\n\n\u003c\/script\u003e\n\u003c\/p\u003e","brand":"Arado","offers":[{"title":"Blanco","offer_id":54160773054648,"sku":null,"price":10000.0,"currency_code":"ARS","in_stock":true},{"title":"Negro","offer_id":54160773087416,"sku":null,"price":10000.0,"currency_code":"ARS","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0984\/0512\/2232\/files\/fila-1-columna-1_80f5dd57-c0f4-4cae-a6d2-288dcf4e386a.jpg?v=1790104430","url":"https:\/\/arado.shop\/products\/gorro-morley-doble-81w2p","provider":"Arado Argentina","version":"1.0","type":"link"}