{"product_id":"sombrero-ibera-impermeable-1orq2","title":"Sombrero Iberá Impermeable","description":"\u003cp\u003e\n\u003cscript\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\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\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\n\n(() =\u003e {\n  \/\/ 1) SOLO EN ESTE PRODUCTO\n  if (!window.location.href.includes(\"sombrero-ibera-impermeable-1orq2\")) return; \/\/ [page:1]\n\n  \/\/ 2) SOLO TELÉFONO\n  const MOBILE_MAX_W = 640;\n  if (window.matchMedia(`(min-width: ${MOBILE_MAX_W + 1}px)`).matches) return;\n\n  \/\/ --- CONFIGURACIÓN ---\n  const SIZE_FACTOR = 0.70;\n  const SPEED_PX_PER_SEC = 25;\n\n  \/\/ 3) TUS IMÁGENES (ibb)\n  const IMAGE_ITEMS = [\n    { src: \"https:\/\/i.ibb.co\/S47L7nqg\/fila-1-columna-1.jpg\", alt: \"Sombrero Iberá Impermeable\" },\n    { src: \"https:\/\/i.ibb.co\/TxMP8CyL\/fila-1-columna-1.jpg\", alt: \"Sombrero Iberá Impermeable\" },\n    { src: \"https:\/\/i.ibb.co\/NgP07TsW\/fila-1-columna-2.jpg\", alt: \"Sombrero Iberá Impermeable\" },\n    { src: \"https:\/\/i.ibb.co\/QvGRsXXK\/fila-1-columna-3.jpg\", alt: \"Sombrero Iberá Impermeable\" },\n    { src: \"https:\/\/i.ibb.co\/jkNsbX0c\/fila-1-columna-4.jpg\", alt: \"Sombrero Iberá Impermeable\" },\n    { src: \"https:\/\/i.ibb.co\/9HpX3vMY\/fila-1-columna-5.jpg\", alt: \"Sombrero Iberá Impermeable\" },\n    { src: \"https:\/\/i.ibb.co\/Xkst42Wz\/fila-2-columna-1.jpg\", alt: \"Sombrero Iberá Impermeable\" },\n    { src: \"https:\/\/i.ibb.co\/904PgMf\/fila-2-columna-2.jpg\", alt: \"Sombrero Iberá Impermeable\" },\n    { src: \"https:\/\/i.ibb.co\/ksn1rdhY\/fila-2-columna-3.jpg\", alt: \"Sombrero Iberá Impermeable\" },\n    { src: \"https:\/\/i.ibb.co\/V0sccGkd\/fila-2-columna-4.jpg\", alt: \"Sombrero Iberá Impermeable\" },\n    { src: \"https:\/\/i.ibb.co\/cS5GFR6x\/fila-2-columna-5.jpg\", alt: \"Sombrero Iberá Impermeable\" }\n  ];\n\n  \/\/ Evita duplicar\n  if (document.querySelector(\"[data-wigy-infinite='1']\")) return;\n\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    const mount = await waitForMount(mountSelector);\n    if (!mount) return;\n\n    const basePx = Math.round(260 * SIZE_FACTOR);\n    const baseVw = Math.round(70 * SIZE_FACTOR);\n\n    const css = `\n      @media (min-width: ${MOBILE_MAX_W + 1}px) {\n        .wigy-image-carousel[data-wigy-infinite=\"1\"] { display: none !important; }\n      }\n\n      .wigy-image-carousel {\n        --gap: 12px;\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        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 { flex: 0 0 var(--slideW); }\n      .card {\n        border-radius: 12px;\n        overflow: hidden;\n        background: #f4f4f4;\n        box-shadow: 0 4px 10px rgba(0,0,0,0.10);\n      }\n      .image-wrapper {\n        position: relative;\n        width: 100%;\n        aspect-ratio: 9 \/ 16;\n      }\n      .image-wrapper img {\n        position: absolute; inset: 0;\n        width: 100%; height: 100%;\n        object-fit: cover;\n        display: block;\n      }\n    `;\n\n    if (!document.querySelector(\"[data-wigy-style='sombrero-ibera-916']\")) {\n      const style = document.createElement(\"style\");\n      style.setAttribute(\"data-wigy-style\", \"sombrero-ibera-916\");\n      style.textContent = css;\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 = (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    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      if (window.matchMedia(`(min-width: ${MOBILE_MAX_W + 1}px)`).matches) {\n        root.remove();\n        return;\n      }\n      oneSetWidth = getOneSetWidth();\n      if (oneSetWidth \u003e 0) x = -((Math.abs(x) % oneSetWidth));\n    };\n\n    const tick = (t) =\u003e {\n      if (window.matchMedia(`(min-width: ${MOBILE_MAX_W + 1}px)`).matches) 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); }, 500);\n    window.addEventListener(\"resize\", recalc);\n  };\n\n  inject();\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\n\n\n\n\/* FAQs estilo Passenger + Desactivar \"Medios de pago\" (ocultar contenedor) *\/\n(function () {\n  function ready(fn) {\n    if (document.readyState === \"loading\") document.addEventListener(\"DOMContentLoaded\", fn);\n    else fn();\n  }\n\n  ready(function () {\n    var form = document.querySelector(\".js-product-form\");\n    if (!form) return;\n\n    \/* =========================================================\n       1) DESACTIVAR \/ OCULTAR \"MEDIOS DE PAGO\" (y limpiar restos)\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      payAcc.querySelectorAll(\".arado-pay__icon, .arado-acc__icon\").forEach(function (el) {\n        el.remove();\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      payAcc.style.display = \"none\";\n\n      var gocuotasModal = document.getElementById(\"gocuotas-modal\");\n      if (gocuotasModal) gocuotasModal.style.display = \"none\";\n    })();\n\n    \/* =========================================================\n       2) FAQ Accordion (estilo Passenger)\n       ========================================================= *\/\n\n    if (form.querySelector(\".arado-faq\")) return;\n\n    \/\/ === CONTENIDO EDITABLE (Sombrero Iberá) ===\n    var FAQS = [\n      {\n        q: \"¿Es impermeable de verdad o solo repelente al agua?\",\n        a: \"Está confeccionado en poliéster impermeable para lluvia y salpicaduras, ideal para uso outdoor. En tormentas muy intensas o exposición prolongada, la protección puede depender de las condiciones y el ajuste.\"\n      },\n      {\n        q: \"¿Qué talle es y cómo ajusta?\",\n        a: \"Es talle único de 60 cm de circunferencia e incluye tira regulable con freno para mejorar el calce y que quede firme.\"\n      },\n      {\n        q: \"¿Sirve para días de viento?\",\n        a: \"Sí. La tira ajustable permite asegurar el sombrero para que no se vuele y se mantenga cómodo durante caminatas o actividades al aire libre.\"\n      },\n      {\n        q: \"¿Qué nivel de cobertura da del sol?\",\n        a: \"Tiene ala ancha de 8 cm y copa de 9 cm para dar buena cobertura en cara y parte del cuello, ayudando a reducir la exposición directa.\"\n      },\n      {\n        q: \"¿Es fresco para usar en primavera\/verano?\",\n        a: \"Sí, cuenta con respiradores laterales que favorecen la ventilación y ayudan a evitar el sobrecalentamiento en uso prolongado.\"\n      },\n      {\n        q: \"¿Cómo se recomienda limpiarlo?\",\n        a: \"Limpieza suave con paño húmedo y secado a la sombra. Evitá lavados agresivos para cuidar el material impermeable y las costuras.\"\n      }\n    ];\n\n    \/\/ === ESTILOS (solo JS) ===\n    if (!document.getElementById(\"arado-faq-style\")) {\n      var css = `\n        .arado-faq{\n          margin-top: 14px;\n          border-top: 1px solid rgba(0,0,0,.10);\n        }\n        .arado-faq__item{\n          border-bottom: 1px solid rgba(0,0,0,.10);\n        }\n        .arado-faq__btn{\n          width: 100%;\n          display: flex;\n          align-items: center;\n          justify-content: space-between;\n          gap: 12px;\n          padding: 14px 0;\n          background: transparent;\n          border: 0;\n          text-align: left;\n          cursor: pointer;\n        }\n        .arado-faq__title{\n          font-size: 18px;\n          line-height: 1.2;\n          font-weight: 600;\n          color: #111;\n        }\n        .arado-faq__icon{\n          width: 32px;\n          height: 32px;\n          display: inline-grid;\n          place-items: center;\n          border-radius: 999px;\n          border: 1px solid rgba(0,0,0,.18);\n          flex: 0 0 auto;\n          position: relative;\n        }\n        .arado-faq__icon:before,\n        .arado-faq__icon:after{\n          content:\"\";\n          position:absolute;\n          background: rgba(0,0,0,.70);\n          border-radius: 2px;\n        }\n        .arado-faq__icon:before{\n          width: 14px; height: 2px;\n        }\n        .arado-faq__icon:after{\n          width: 2px; height: 14px;\n          transition: transform .22s ease;\n        }\n        .arado-faq__item[aria-expanded=\"true\"] .arado-faq__icon:after{\n          transform: scaleY(0);\n        }\n\n        .arado-faq__panel{\n          overflow: hidden;\n          height: 0;\n          transition: height .28s ease;\n        }\n        .arado-faq__content{\n          padding: 0 0 14px 0;\n          color: rgba(0,0,0,.75);\n          font-size: 14px;\n          line-height: 1.5;\n        }\n\n        \/* Imagen (solo) *\/\n        .arado-faq__img{\n          width: 100%;\n          max-width: 520px;\n          display: block;\n          margin: 10px 0 0 0;\n          border-radius: 10px;\n          height: auto;\n        }\n\n        @media (max-width: 768px){\n          .arado-faq__title{ font-size: 16px; }\n          .arado-faq__btn{ padding: 12px 0; }\n          .arado-faq__img{ max-width: 100%; }\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    \/\/ === HTML ===\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\n      \/\/ Si tiene imagen: SOLO imagen\n      if (item.img) {\n        var img = document.createElement(\"img\");\n        img.className = \"arado-faq__img\";\n        img.src = item.img;\n        img.alt = \"\";\n        img.loading = \"eager\";\n        img.decoding = \"async\";\n        content.appendChild(img);\n      }\n\n      \/\/ Si tiene respuesta de texto: solo texto\n      if (item.a) {\n        content.textContent = item.a;\n      }\n\n      panel.appendChild(content);\n      faqItem.appendChild(btn);\n      faqItem.appendChild(panel);\n      faqWrap.appendChild(faqItem);\n    });\n\n    form.appendChild(faqWrap);\n\n    \/\/ === LÓGICA + ANIMACIÓ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; \/\/ reflow\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\n      itemEl.setAttribute(\"aria-expanded\", \"true\");\n      btn.setAttribute(\"aria-expanded\", \"true\");\n\n      panel.style.height = panel.scrollHeight + \"px\";\n\n      var img = panel.querySelector(\"img.arado-faq__img\");\n      if (img) {\n        var fixHeight = function () {\n          if (itemEl.getAttribute(\"aria-expanded\") === \"true\") {\n            panel.style.height = panel.scrollHeight + \"px\";\n          }\n        };\n\n        if (img.decode) {\n          img.decode().then(fixHeight).catch(function () {\n            if (!img.complete) img.addEventListener(\"load\", fixHeight, { once: true });\n            else fixHeight();\n          });\n        } else {\n          if (!img.complete) img.addEventListener(\"load\", fixHeight, { once: true });\n          else fixHeight();\n        }\n      }\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\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\", function () {\n      normalizeHeights();\n    });\n\n    setTimeout(normalizeHeights, 350);\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\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\u003c\/script\u003e\n\u003c\/p\u003e","brand":"Arado","offers":[{"title":"Default Title","offer_id":54159114928312,"sku":null,"price":27000.0,"currency_code":"ARS","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0984\/0512\/2232\/files\/fila-1-columna-1_461f54b8-cd89-4bf5-a872-8ac75ae582c1.jpg?v=1790102081","url":"https:\/\/arado.shop\/products\/sombrero-ibera-impermeable-1orq2","provider":"Arado Argentina","version":"1.0","type":"link"}