{"title":"Casco Catcher","description":"\u003c!-- ===================== CASCOS CATCHER: MENU BM (marcas + medidas + colores, sin localStorage) ===================== --\u003e\n\u003cstyle\u003e\n*{box-sizing:border-box;}\n.bm-menu-arrow{ position: fixed; top: 170px; left: 18px; display:flex; align-items:center; gap:10px; text-decoration:none; z-index:9999; transition:transform .25s ease; }\n.bm-menu-arrow img{ width:58px; height:58px; border-radius:50%; box-shadow:0 6px 18px rgba(0,0,0,.28); transition:transform .25s ease; }\n.bm-menu-arrow span{ background:#000; color:#fff; font-weight:800; font-size:13px; letter-spacing:.03em; padding:9px 14px; border-radius:22px; white-space:nowrap; box-shadow:0 6px 18px rgba(0,0,0,.28); }\n.bm-menu-arrow:hover img{transform:scale(1.08);}\n@media (max-width:768px){\n  .bm-menu-arrow{ top:auto; bottom:calc(16px + env(safe-area-inset-bottom)); left:12px; }\n  .bm-menu-arrow img{ display:none; }\n  .bm-menu-arrow span{ display:inline-flex; align-items:center; min-height:44px; padding:0 16px; font-size:12px; }\n}\n.bm-row{ position:relative; background:#fff; padding:10px 0 14px; border-bottom:1px solid #eee; overflow:hidden; }\n.bm-row__head{ max-width:1400px; margin:0 auto 8px; padding:0 12px; display:flex; align-items:baseline; justify-content:space-between; gap:12px; }\n.bm-row__title{ margin:0; font:800 16px\/1.1 system-ui; letter-spacing:.02em; }\n.bm-row__sub{ margin:0; font:500 12px\/1.2 system-ui; opacity:.7; }\n.bm-track{ display:flex; gap:12px; overflow-x:auto; scroll-behavior:smooth; scrollbar-width:none; -webkit-overflow-scrolling:touch; padding:0 44px; }\n.bm-track::-webkit-scrollbar{display:none}\n.bm-size{ flex:0 0 auto; min-width:74px; height:44px; padding:0 14px; display:flex; align-items:center; justify-content:center; border-radius:12px; border:1px solid #d7d7d7; background:#fff; color:#000; font:900 16px system-ui; letter-spacing:.03em; text-decoration:none; box-shadow:0 6px 18px rgba(0,0,0,.08); transition:transform .2s ease, background .2s ease, color .2s ease, border-color .2s ease; white-space:nowrap; }\n.bm-size:hover{ transform:translateY(-1px); }\n.bm-tallas-mx .bm-size::after{ content:\"MX\"; margin-left:4px; font:700 10px system-ui; opacity:.55; }\n.bm-tallas-in .bm-size::after{ content:\"in\"; margin-left:4px; font:700 10px system-ui; opacity:.55; }\n.bm-size.is-selected{ background:#000; color:#fff; border-color:#000; }\n.bm-brand{ flex:0 0 auto; width:126px; height:74px; display:flex; align-items:center; justify-content:center; padding:8px; border:1px solid #e3e3e3; border-radius:14px; background:#fff; box-shadow:0 6px 18px rgba(0,0,0,.08); transition:transform .2s ease; }\n.bm-brand img{ max-width:100%; max-height:100%; object-fit:contain; border-radius:8px; }\n.bm-brand:hover{ transform:translateY(-2px); }\n.bm-brand.is-selected{ outline:3px solid #000; outline-offset:-2px; }\n.bm-brand--txt{ font:900 14px system-ui; color:#000; text-decoration:none; letter-spacing:.04em; width:auto; min-width:96px; padding:0 18px; height:52px; }\n.bm-color{ flex:0 0 auto; display:flex; align-items:center; height:44px; padding:0 16px 0 12px; border:1px solid #d7d7d7; border-radius:22px; background:#fff; color:#000; font:800 14px system-ui; text-decoration:none; box-shadow:0 6px 18px rgba(0,0,0,.08); white-space:nowrap; transition:transform .2s ease; }\n.bm-color:hover{ transform:translateY(-1px); }\n.bm-color .bm-dot{ width:18px; height:18px; border-radius:50%; border:1px solid rgba(0,0,0,.25); margin-right:8px; flex:0 0 auto; }\n.bm-color.is-selected{ background:#000; color:#fff; border-color:#000; }\n.bm-selected{ max-width:1400px; margin:10px auto 0; padding:0 12px; font:600 13px\/1.2 system-ui; opacity:.85; }\n.bm-clear{ display:none; align-items:center; vertical-align:middle; min-height:44px; margin-left:10px; padding:0 16px; border:1px solid #000; border-radius:12px; font:700 12px system-ui; color:#000; text-decoration:none; }\n@media (max-width:768px){\n  .bm-row__head{padding:0 12px;}\n  .bm-track{ padding:0 12px; scroll-snap-type:x mandatory; overscroll-behavior-x:contain; }\n  .bm-size{ scroll-snap-align:start; min-width:56px; height:48px; }\n  .bm-brand{ scroll-snap-align:start; width:112px; height:68px; }\n  .bm-color{ scroll-snap-align:start; height:48px; }\n  .bm-selected{ font:600 14px\/1.3 system-ui; opacity:1; }\n}\n\u003c\/style\u003e\n\n\u003ca href=\"\/collections\/cascos\" class=\"bm-menu-arrow\" aria-label=\"Regresar\"\u003e\n  \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0267\/4940\/3235\/files\/MENU-FLECHA.jpg?v=1718658956\" alt=\"Menú\"\u003e\n  \u003cspan\u003e❮ Menu Cascos\u003c\/span\u003e\n\u003c\/a\u003e\n\n\u003c!-- ===================== MARCAS (filtra dentro de esta coleccion) ===================== --\u003e\n\u003csection class=\"bm-row\" aria-label=\"Marcas\"\u003e\n  \u003cdiv class=\"bm-row__head\"\u003e\n    \u003ch3 class=\"bm-row__title\"\u003eMARCAS\u003c\/h3\u003e\n    \u003cp class=\"bm-row__sub\"\u003eToca una marca para filtrar\u003c\/p\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"bm-track\"\u003e\n    \u003ca href=\"\/collections\/casco-catcher\/champro\" class=\"bm-brand\" data-bm-marca=\"champro\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0267\/4940\/3235\/files\/champro-logo.jpg?v=1699828796\" alt=\"Champro\" loading=\"lazy\"\u003e\u003c\/a\u003e\n    \u003ca href=\"\/collections\/casco-catcher\/evoshield\" class=\"bm-brand\" data-bm-marca=\"evoshield\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0267\/4940\/3235\/files\/UNDERSS_b3d42cb0-dc76-499e-80bb-db1780ae8ee7_560x.jpg?v=1718312114\" alt=\"Evoshield\" loading=\"lazy\"\u003e\u003c\/a\u003e\n    \u003ca href=\"\/collections\/casco-catcher\/all-star\" class=\"bm-brand\" data-bm-marca=\"all-star\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0267\/4940\/3235\/files\/ALLSTAR.jpg?v=1593709080\" alt=\"All Star\" loading=\"lazy\"\u003e\u003c\/a\u003e\n  \u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003c!-- ===================== MEDIDAS (FILA DINAMICA: ESPEJO DEL FILTRO REAL) ===================== --\u003e\n\u003csection class=\"bm-row\" aria-label=\"Medidas\"\u003e\n  \u003cdiv class=\"bm-row__head\"\u003e\n    \u003ch3 class=\"bm-row__title\"\u003eMEDIDAS\u003c\/h3\u003e\n    \u003cp class=\"bm-row__sub\"\u003eDesliza y toca tu medida\u003c\/p\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"bm-track\" data-bm-tallas\u003e\n    \u003ca href=\"?filter.v.option.medida=Chico\" class=\"bm-size\" data-clave=\"Chico\"\u003eChico\u003c\/a\u003e\n    \u003ca href=\"?filter.v.option.medida=Grande\" class=\"bm-size\" data-clave=\"Grande\"\u003eGrande\u003c\/a\u003e\n    \u003ca href=\"?filter.v.option.medida=Ajustable\" class=\"bm-size\" data-clave=\"Ajustable\"\u003eAjustable\u003c\/a\u003e\n    \u003ca href=\"?filter.v.option.medida=6%201\/2%20-%207\" class=\"bm-size\" data-clave=\"6 1\/2 - 7\"\u003e6 1\/2 - 7\u003c\/a\u003e\n    \u003ca href=\"?filter.v.option.medida=7%201\/4%20-%207%205\/8\" class=\"bm-size\" data-clave=\"7 1\/4 - 7 5\/8\"\u003e7 1\/4 - 7 5\/8\u003c\/a\u003e\n  \u003c\/div\u003e\n  \u003cp class=\"bm-selected\" aria-live=\"polite\"\u003e\n    Medida seleccionada: \u003cstrong id=\"bmTallaText\"\u003e—\u003c\/strong\u003e\n    \u003ca id=\"bmTallaClear\" class=\"bm-clear\" href=\"\/collections\/casco-catcher\" style=\"display:none\"\u003eQuitar filtro\u003c\/a\u003e\n  \u003c\/p\u003e\n\u003c\/section\u003e\n\n\u003c!-- ===================== COLORES (tags hoy, filtro nativo custom.color cuando se active) ===================== --\u003e\n\u003csection class=\"bm-row\" aria-label=\"Colores\"\u003e\n  \u003cdiv class=\"bm-row__head\"\u003e\n    \u003ch3 class=\"bm-row__title\"\u003eCOLORES\u003c\/h3\u003e\n    \u003cp class=\"bm-row__sub\"\u003eCombinable con marca y medida\u003c\/p\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"bm-track\"\u003e\n    \u003ca href=\"\/collections\/casco-catcher\/negro\" class=\"bm-color\" data-bm-color=\"negro\" data-gid=\"282144244028\"\u003e\u003cspan class=\"bm-dot\" style=\"background:#111111\"\u003e\u003c\/span\u003eNegro\u003c\/a\u003e\n    \u003ca href=\"\/collections\/casco-catcher\/gris\" class=\"bm-color\" data-bm-color=\"gris\" data-gid=\"282144309564\"\u003e\u003cspan class=\"bm-dot\" style=\"background:#8E8E8E\"\u003e\u003c\/span\u003eGris\u003c\/a\u003e\n    \u003ca href=\"\/collections\/casco-catcher\/rojo\" class=\"bm-color\" data-bm-color=\"rojo\" data-gid=\"282144342332\"\u003e\u003cspan class=\"bm-dot\" style=\"background:#D22730\"\u003e\u003c\/span\u003eRojo\u003c\/a\u003e\n    \u003ca href=\"\/collections\/casco-catcher\/azul\" class=\"bm-color\" data-bm-color=\"azul\" data-gid=\"282144375100\"\u003e\u003cspan class=\"bm-dot\" style=\"background:#1F4FCC\"\u003e\u003c\/span\u003eAzul\u003c\/a\u003e\n    \u003ca href=\"\/collections\/casco-catcher\/marino\" class=\"bm-color\" data-bm-color=\"marino\" data-gid=\"282144407868\"\u003e\u003cspan class=\"bm-dot\" style=\"background:#1B2A4A\"\u003e\u003c\/span\u003eMarino\u003c\/a\u003e\n    \u003ca href=\"\/collections\/casco-catcher\/verde\" class=\"bm-color\" data-bm-color=\"verde\" data-gid=\"282144473404\"\u003e\u003cspan class=\"bm-dot\" style=\"background:#2E8B3D\"\u003e\u003c\/span\u003eVerde\u003c\/a\u003e\n    \u003ca href=\"\/collections\/casco-catcher\/morado\" class=\"bm-color\" data-bm-color=\"morado\" data-gid=\"282144670012\"\u003e\u003cspan class=\"bm-dot\" style=\"background:#6A3AB2\"\u003e\u003c\/span\u003eMorado\u003c\/a\u003e\n    \u003ca href=\"\/collections\/casco-catcher\/vino\" class=\"bm-color\" data-bm-color=\"vino\" data-gid=\"282144702780\"\u003e\u003cspan class=\"bm-dot\" style=\"background:#7B1F2B\"\u003e\u003c\/span\u003eVino\u003c\/a\u003e\n  \u003c\/div\u003e\n  \u003cp class=\"bm-selected\" aria-live=\"polite\"\u003e\n    Filtro: \u003cstrong id=\"bmFiltroTags\"\u003e—\u003c\/strong\u003e\n    \u003ca id=\"bmTagsClear\" class=\"bm-clear\" href=\"\/collections\/casco-catcher\" style=\"display:none\"\u003eQuitar filtros\u003c\/a\u003e\n  \u003c\/p\u003e\n\u003c\/section\u003e\n\n\u003c!-- ===================== CATEGORÍAS ===================== --\u003e\n\u003csection class=\"bm-row\" aria-label=\"Categorías\"\u003e\n  \u003cdiv class=\"bm-row__head\"\u003e\n    \u003ch3 class=\"bm-row__title\"\u003eCATEGORÍAS\u003c\/h3\u003e\n    \u003cp class=\"bm-row__sub\"\u003eExplora otros cascos\u003c\/p\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"bm-track\"\u003e\n    \u003ca href=\"\/collections\/casco-adulto\" class=\"bm-brand bm-brand--txt\"\u003eADULTO\u003c\/a\u003e\n    \u003ca href=\"\/collections\/cascos-softbol\" class=\"bm-brand bm-brand--txt\"\u003eSOFTBOL\u003c\/a\u003e\n    \u003ca href=\"\/collections\/casco-infantil\" class=\"bm-brand bm-brand--txt\"\u003eINFANTIL\u003c\/a\u003e\n    \u003ca href=\"\/collections\/casco-panalitos\" class=\"bm-brand bm-brand--txt\"\u003ePAÑALITOS\u003c\/a\u003e\n    \u003ca href=\"\/collections\/casco-zurdo-1\" class=\"bm-brand bm-brand--txt\"\u003eZURDO\u003c\/a\u003e\n    \u003ca href=\"\/collections\/casco-1-oreja\" class=\"bm-brand bm-brand--txt\"\u003e1 OREJA\u003c\/a\u003e\n    \u003ca href=\"\/collections\/accesorio-cascos\" class=\"bm-brand bm-brand--txt\"\u003eACCESORIOS\u003c\/a\u003e\n  \u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003cscript\u003e\ndocument.addEventListener(\"DOMContentLoaded\", () =\u003e {\n  \/\/ MARCAS y COLORES filtran por pagina de tag DENTRO de la coleccion:\n  \/\/ \/collections\/HANDLE\/marca+color (dos tags = Y). La talla viaja aparte en\n  \/\/ ?filter.v.option.talla. Sin localStorage: la URL es la unica verdad.\n  \/\/ Si Karina activa el filtro nativo custom.color en Search \u0026 Discovery, el\n  \/\/ chip brinca solo al filtro nativo usando su data-gid.\n  const HANDLE = 'casco-catcher';\n  const MARCAS = {\"champro\": \"Champro\", \"evoshield\": \"Evoshield\", \"all-star\": \"All Star\"};\n  const COLORES = {\"negro\": \"Negro\", \"gris\": \"Gris\", \"rojo\": \"Rojo\", \"azul\": \"Azul\", \"marino\": \"Marino\", \"verde\": \"Verde\", \"morado\": \"Morado\", \"vino\": \"Vino\"};\n  const path = decodeURIComponent(window.location.pathname);\n  const m = path.match(new RegExp('\/collections\/' + HANDLE + '\/([^\/?]+)'));\n  const activos = m ? m[1].split('+').map(s =\u003e s.trim().toLowerCase()) : [];\n  const marcaActiva = activos.find(t =\u003e MARCAS[t]);\n  const colorActivo = activos.find(t =\u003e COLORES[t]);\n\n  const rutaCon = (marca, color) =\u003e {\n    const tags = [];\n    if (marca) tags.push(marca);\n    if (color) tags.push(color);\n    return '\/collections\/' + HANDLE + (tags.length ? '\/' + tags.join('+') : '') + window.location.search;\n  };\n\n  document.querySelectorAll('[data-bm-marca]').forEach(a =\u003e {\n    const t = a.getAttribute('data-bm-marca');\n    const sel = (t === marcaActiva);\n    a.classList.toggle('is-selected', sel);\n    a.href = rutaCon(sel ? null : t, colorActivo);\n  });\n  document.querySelectorAll('[data-bm-color]').forEach(a =\u003e {\n    const t = a.getAttribute('data-bm-color');\n    const sel = (t === colorActivo);\n    a.classList.toggle('is-selected', sel);\n    let href = rutaCon(marcaActiva, sel ? null : t);\n    const gid = a.getAttribute('data-gid');\n    if (gid \u0026\u0026 !sel) {\n      const nativo = document.querySelector('a[href*=\"filter.p.m.custom.color\"][href*=\"' + gid + '\"]');\n      if (nativo \u0026\u0026 !nativo.closest('.bm-row')) href = nativo.getAttribute('href');\n    }\n    a.href = href;\n  });\n  const est = document.getElementById('bmFiltroTags');\n  const clr = document.getElementById('bmTagsClear');\n  if (est) {\n    const partes = [];\n    if (marcaActiva) partes.push(MARCAS[marcaActiva]);\n    if (colorActivo) partes.push(COLORES[colorActivo]);\n    est.textContent = partes.length ? partes.join(' + ') : '—';\n  }\n  if (clr) clr.style.display = (marcaActiva || colorActivo) ? 'inline-flex' : 'none';\n});\n\u003c\/script\u003e\n\n\u003cscript\u003e\ndocument.addEventListener(\"DOMContentLoaded\", () =\u003e {\n  \/\/ Fila de tallas: espejo del filtro real (Search \u0026 Discovery), AGRUPADA por\n  \/\/ clave: \"#26 MX\" y el grupo \"26\" (o \"Chica (Infantil)\" y \"Chica\") se vuelven\n  \/\/ UN chip que filtra ambos valores a la vez (varios valores del mismo filtro\n  \/\/ = O). Sin localStorage: la URL es la unica verdad.\n  const wrap = document.querySelector('[data-bm-tallas]');\n  if (!wrap) return;\n  const text = document.getElementById('bmTallaText');\n  const clearLink = document.getElementById('bmTallaClear');\n  const PARAM = 'filter.v.option.medida';\n  const ES_TALLA = \/^\\S\/;\n  const ORDEN_NOMBRES = {'pañalitos': 0, 'infantil': 1, 'juvenil': 2, 'chica': 3, 'chico': 3, 'mediana': 4, 'mediano': 4, 'adulto': 5, 'grande': 6, 'ajustable': 7, 'estándar': 8, 'estandar': 8};\n  const claveDe = (l) =\u003e { const base = l.replace(\/\\s*\\(.*\\)\\s*$\/, '').trim(); if (\/^infanti\/i.test(base)) return 'Infantil'; const m = base.match(\/^(\\d[\\d\\s\\\/\\-]*)\/); return m ? m[1].trim() : base; };\n\n  const tallasDelFiltro = () =\u003e {\n    const labels = [];\n    document.querySelectorAll('a[href*=\"' + PARAM + '\"]').forEach(a =\u003e {\n      if (a.closest('[data-bm-tallas]')) return;\n      const t = a.textContent.replace(\/\\s+\/g, ' ').replace(\/\\(\\d+\\)\\s*$\/, '').trim();\n      if (t \u0026\u0026 t.length \u003c 30 \u0026\u0026 ES_TALLA.test(t) \u0026\u0026 !\/LIMPIAR|MOSTRAR\/i.test(t) \u0026\u0026 labels.indexOf(t) === -1) labels.push(t);\n    });\n    return labels;\n  };\n\n  const seleccionadas = () =\u003e {\n    const out = [];\n    new URLSearchParams(window.location.search).getAll(PARAM).forEach(v =\u003e {\n      v = v.trim();\n      const gid = v.match(\/(?:FilterSettingGroup|Metaobject)\\\/(\\d+)\/);\n      if (gid) {\n        const candidatos = [...document.querySelectorAll('a[href*=\"' + PARAM + '\"]')]\n          .filter(a =\u003e !a.closest('[data-bm-tallas]') \u0026\u0026 ES_TALLA.test(a.textContent.trim()) \u0026\u0026 (a.getAttribute('href') || '').indexOf(gid[1]) \u003e -1);\n        let link = candidatos.find(a =\u003e {\n          const vals = new URLSearchParams((a.getAttribute('href').split('?')[1] || '')).getAll(PARAM);\n          return vals.length === 1 \u0026\u0026 vals[0].indexOf(gid[1]) \u003e -1;\n        });\n        if (!link \u0026\u0026 candidatos.length) link = candidatos[0];\n        if (link) v = link.textContent.replace(\/\\s+\/g, ' ').replace(\/\\(\\d+\\)\\s*$\/, '').trim();\n      }\n      if (v \u0026\u0026 out.indexOf(v) === -1) out.push(v);\n    });\n    return out;\n  };\n  const sel = seleccionadas();\n\n  const labels = tallasDelFiltro();\n  if (labels.length) {\n    const grupos = {};\n    labels.forEach(l =\u003e { const k = claveDe(l); (grupos[k] = grupos[k] || []).push(l); });\n    wrap.innerHTML = '';\n    Object.keys(grupos).sort((x, y) =\u003e {\n      const a = parseFloat(x), b = parseFloat(y);\n      if (!isNaN(a) \u0026\u0026 !isNaN(b)) return a - b;\n      const oa = ORDEN_NOMBRES[x.toLowerCase()], ob = ORDEN_NOMBRES[y.toLowerCase()];\n      if (oa !== undefined \u0026\u0026 ob !== undefined) return oa - ob;\n      return x.localeCompare(y);\n    }).forEach(k =\u003e {\n      const vals = grupos[k];\n      const a = document.createElement('a');\n      a.className = 'bm-size';\n      a.href = window.location.pathname + '?' + vals.map(v =\u003e PARAM + '=' + encodeURIComponent(v)).join('\u0026');\n      a.setAttribute('data-valores', JSON.stringify(vals));\n      a.setAttribute('data-clave', k);\n      a.title = vals.join(' · ');\n      a.textContent = k;\n      wrap.appendChild(a);\n    });\n  }\n\n  const valoresDe = (a) =\u003e {\n    try { const v = JSON.parse(a.getAttribute('data-valores') || 'null'); if (v \u0026\u0026 v.length) return v; } catch(e){}\n    return [a.getAttribute('data-clave')];\n  };\n\n  if (text) {\n    const bonitos = sel.map(v =\u003e {\n      const c = [...wrap.querySelectorAll('.bm-size')].find(a =\u003e valoresDe(a).indexOf(v) \u003e -1);\n      return c ? c.getAttribute('data-clave') : v;\n    });\n    const u = bonitos.filter((v, i) =\u003e bonitos.indexOf(v) === i);\n    text.textContent = u.length ? u.join(', ') : '—';\n  }\n  if (clearLink) clearLink.style.display = sel.length ? 'inline-flex' : 'none';\n  wrap.querySelectorAll('.bm-size').forEach(a =\u003e {\n    a.classList.toggle('is-selected', valoresDe(a).some(v =\u003e sel.indexOf(v) \u003e -1));\n  });\n});\n\u003c\/script\u003e\n","products":[{"product_id":"casco-beisbol-softbol-coach-catcher-champro-cchbl-negro","title":"Casco Beisbol Softbol Coach Catcher Champro CCHBL Negro","description":"\u003cli\u003e\u003cspan\u003eCasco de receptor\/entrenador para adultos\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eLigero y duradero, con una carcasa de ABS bien ventilada\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eEl acolchado de espuma de doble densidad brinda protección, comodidad y un ajuste excelente.\u003c\/span\u003e\u003c\/li\u003e","brand":"Champro","offers":[{"title":"6 1\/2 - 7","offer_id":52686833516860,"sku":"CCHBS","price":830.0,"currency_code":"MXN","in_stock":true},{"title":"7 1\/4 - 7 5\/8","offer_id":47823169093948,"sku":"CCHBL","price":830.0,"currency_code":"MXN","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0267\/4940\/3235\/files\/TIENDADEBEIScascocoachchampro_0014_Capa53.jpg?v=1699051585"},{"product_id":"casco-beisbol-softbol-coach-catcher-champro-cchscl-rojo","title":"Casco Beisbol Softbol Coach Catcher Champro CCHSCL Rojo","description":"\u003cli\u003e\u003cspan\u003eCasco de receptor\/entrenador para adultos\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eLigero y duradero, con una carcasa de ABS bien ventilada\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan\u003eEl acolchado de espuma de doble densidad brinda protección, comodidad y un ajuste excelente.\u003c\/span\u003e\u003c\/li\u003e","brand":"Champro","offers":[{"title":"7 1\/4 - 7 5\/8","offer_id":47823192949052,"sku":"CCHSCL","price":830.0,"currency_code":"MXN","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0267\/4940\/3235\/files\/TIENDADEBEIScascocoachchampro_0002_Capa65.jpg?v=1699051640"},{"product_id":"casco-beisbol-softbol-coach-catcher-all-star-s7-asjustabe-6-7-8-7-5-8","title":"Casco Beisbol Softbol Coach Catcher All Star S7 Asjustabe (6 7\/8 - 7 5\/8)","description":"\u003cp data-start=\"120\" data-end=\"333\"\u003eDiseñado para brindar máxima protección en situaciones de juego, especialmente contra impactos en el backswing. Ideal para catchers y coaches que buscan seguridad sin sacrificar comodidad.\u003c\/p\u003e\n\u003cp data-start=\"335\" data-end=\"355\"\u003e\u003cstrong data-start=\"335\" data-end=\"355\"\u003eCaracterísticas:\u003c\/strong\u003e\u003c\/p\u003e\n\u003cul data-start=\"356\" data-end=\"625\"\u003e\n\u003cli data-section-id=\"2fi7g9\" data-start=\"356\" data-end=\"406\"\u003eCarcasa de ABS altamente resistente a impactos\u003c\/li\u003e\n\u003cli data-section-id=\"1lf7vp8\" data-start=\"407\" data-end=\"469\"\u003eDiseño optimizado para proteger contra golpes de backswing\u003c\/li\u003e\n\u003cli data-section-id=\"2sekoz\" data-start=\"470\" data-end=\"526\"\u003eSistema de ventilación integrado para mayor frescura\u003c\/li\u003e\n\u003cli data-section-id=\"gow8ti\" data-start=\"527\" data-end=\"562\"\u003eCompatible con arnés DeltaFlex™\u003c\/li\u003e\n\u003cli data-section-id=\"v0qx80\" data-start=\"563\" data-end=\"625\"\u003eAjuste cómodo con liner unitalla (tallas de 6 7\/8 a 7 5\/8)\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"All Star","offers":[{"title":"Negro \/ Ajustable (6 7\/8 - 7 5\/8)","offer_id":52922796343612,"sku":"SC500-BK","price":990.0,"currency_code":"MXN","in_stock":true},{"title":"Verde \/ Ajustable (6 7\/8 - 7 5\/8)","offer_id":52922676707644,"sku":"SC500-DG","price":990.0,"currency_code":"MXN","in_stock":true},{"title":"Vino \/ Ajustable (6 7\/8 - 7 5\/8)","offer_id":52922796310844,"sku":"SC500-MA","price":990.0,"currency_code":"MXN","in_stock":true},{"title":"Negro Mate \/ Ajustable (6 7\/8 - 7 5\/8)","offer_id":52922840514876,"sku":"SC500-M-MBK","price":990.0,"currency_code":"MXN","in_stock":false},{"title":"Azul Marino \/ Ajustable (6 7\/8 - 7 5\/8)","offer_id":52922802471228,"sku":"SC500-NA","price":990.0,"currency_code":"MXN","in_stock":true},{"title":"Púrpura \/ Ajustable (6 7\/8 - 7 5\/8)","offer_id":52922796376380,"sku":"SC500-PU","price":990.0,"currency_code":"MXN","in_stock":true},{"title":"Azul \/ Ajustable (6 7\/8 - 7 5\/8)","offer_id":52922796409148,"sku":"SC500-RO","price":990.0,"currency_code":"MXN","in_stock":true},{"title":"Rojo \/ Ajustable (6 7\/8 - 7 5\/8)","offer_id":52922796441916,"sku":"SC500-SC","price":990.0,"currency_code":"MXN","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0267\/4940\/3235\/files\/CascoBeisbolSoftbolCoachCatcherAllStarS7Asjustabe_67_8-75_8__0003_Capa15.jpg?v=1774550552"}],"url":"https:\/\/beisbolmania.mx\/collections\/casco-catcher\/rojo.oembed","provider":"Beisbolmania","version":"1.0","type":"link"}