{"title":"test de menus karina","description":"\u003c!-- ===================== 1) CASCOS POR CATEGORÍA \/ EDAD ===================== --\u003e\n\u003csection class=\"bm-row bm-row--series\" data-bm-row aria-label=\"CASCOS\"\u003e\n\n  \u003cdiv class=\"bm-row__head\"\u003e\n    \u003ch3 class=\"bm-row__title\"\u003eCASCOS POR CATEGORÍA \/ EDAD\u003c\/h3\u003e\n    \u003cp class=\"bm-row__sub\"\u003eCompra por tipo\u003c\/p\u003e\n  \u003c\/div\u003e\n\n  \u003cbutton class=\"bm-arrow left\" aria-label=\"Anterior\"\u003e❮\u003c\/button\u003e\n\n  \u003cdiv class=\"bm-track\"\u003e\n    \u003ca href=\"https:\/\/beisbolmania.mx\/collections\/casco-adulto\" class=\"bm-card bm-card--series\" title=\"ADULTO\"\u003e\n      \u003cdiv class=\"bm-card__media\"\u003e\n        \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0267\/4940\/3235\/files\/adulto_e708d692-f23b-4645-afdf-c482e8b1aa9c.png?v=1770236116\" alt=\"ADULTO\" loading=\"lazy\"\u003e\n      \u003c\/div\u003e\n      \u003cspan class=\"bm-card__label bm-card__label--below\"\u003eADULTO (EDAD +15)\u003c\/span\u003e\n    \u003c\/a\u003e\n\n    \u003ca href=\"https:\/\/beisbolmania.mx\/collections\/cascos-softbol\" class=\"bm-card bm-card--series\" title=\"DAMA\"\u003e\n      \u003cdiv class=\"bm-card__media\"\u003e\n        \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0267\/4940\/3235\/files\/Dama.png?v=1770236116\" alt=\"DAMA\" loading=\"lazy\"\u003e\n      \u003c\/div\u003e\n      \u003cspan class=\"bm-card__label bm-card__label--below\"\u003eDAMA\u003c\/span\u003e\n    \u003c\/a\u003e\n\n    \u003ca href=\"https:\/\/beisbolmania.mx\/collections\/casco-infantil\" class=\"bm-card bm-card--series\" title=\"INFANTIL\"\u003e\n      \u003cdiv class=\"bm-card__media\"\u003e\n        \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0267\/4940\/3235\/files\/Infantil_1cb03938-694c-42a0-9910-208c8f8769ba.png?v=1770236116\" alt=\"INFANTIL\" loading=\"lazy\"\u003e\n      \u003c\/div\u003e\n      \u003cspan class=\"bm-card__label bm-card__label--below\"\u003eINFANTIL (EDAD 8–14)\u003c\/span\u003e\n    \u003c\/a\u003e\n\n    \u003ca href=\"https:\/\/beisbolmania.mx\/collections\/casco-panalitos\" class=\"bm-card bm-card--series\" title=\"PAÑALITOS\"\u003e\n      \u003cdiv class=\"bm-card__media\"\u003e\n        \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0267\/4940\/3235\/files\/PANALITOS_aa7645f7-7dd6-420a-a8ab-b2114bcac68b.png?v=1770237387\" alt=\"PAÑALITOS\" loading=\"lazy\"\u003e\n      \u003c\/div\u003e\n      \u003cspan class=\"bm-card__label bm-card__label--below\"\u003ePAÑALITOS (EDAD 3–7)\u003c\/span\u003e\n    \u003c\/a\u003e\n\n    \u003ca href=\"https:\/\/beisbolmania.mx\/collections\/casco-zurdo-1\" class=\"bm-card bm-card--series\" title=\"ZURDO\"\u003e\n      \u003cdiv class=\"bm-card__media\"\u003e\n        \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0267\/4940\/3235\/files\/juvenil.png?v=1770236116\" alt=\"ZURDO\" loading=\"lazy\"\u003e\n      \u003c\/div\u003e\n      \u003cspan class=\"bm-card__label bm-card__label--below\"\u003eZURDO\u003c\/span\u003e\n    \u003c\/a\u003e\n  \u003c\/div\u003e\n\n  \u003cbutton class=\"bm-arrow right\" aria-label=\"Siguiente\"\u003e❯\u003c\/button\u003e\n\u003c\/section\u003e\n\n\n\u003c!-- ===================== 2) ESPECIALIDAD Y ACCESORIOS ===================== --\u003e\n\u003csection class=\"bm-row bm-row--series\" data-bm-row aria-label=\"ESPECIALIDAD Y ACCESORIOS\"\u003e\n\n  \u003cdiv class=\"bm-row__head\"\u003e\n    \u003ch3 class=\"bm-row__title\"\u003eESPECIALIDAD Y ACCESORIOS\u003c\/h3\u003e\n    \u003cp class=\"bm-row__sub\"\u003eCompra por tipo\u003c\/p\u003e\n  \u003c\/div\u003e\n\n  \u003cbutton class=\"bm-arrow left\" aria-label=\"Anterior\"\u003e❮\u003c\/button\u003e\n\n  \u003cdiv class=\"bm-track\"\u003e\n    \u003ca href=\"https:\/\/beisbolmania.mx\/collections\/accesorio-cascos\" class=\"bm-card bm-card--series\" title=\"Protector Mandíbula\"\u003e\n      \u003cdiv class=\"bm-card__media\"\u003e\n        \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0267\/4940\/3235\/files\/ACCESORIOS.png?v=1770340989\" alt=\"Protector Mandíbula\" loading=\"lazy\"\u003e\n      \u003c\/div\u003e\n      \u003cspan class=\"bm-card__label bm-card__label--below\"\u003eProtector Mandíbula\u003c\/span\u003e\n    \u003c\/a\u003e\n\n    \u003ca href=\"https:\/\/beisbolmania.mx\/collections\/casco-1-oreja\" class=\"bm-card bm-card--series\" title=\"1 OREJA\"\u003e\n      \u003cdiv class=\"bm-card__media\"\u003e\n        \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0267\/4940\/3235\/files\/ONEEAR.png?v=1770340988\" alt=\"1 OREJA\" loading=\"lazy\"\u003e\n      \u003c\/div\u003e\n      \u003cspan class=\"bm-card__label bm-card__label--below\"\u003e1 OREJA\u003c\/span\u003e\n    \u003c\/a\u003e\n\n    \u003ca href=\"https:\/\/beisbolmania.mx\/collections\/casco-catcher\" class=\"bm-card bm-card--series\" title=\"Catcher o Coach.\"\u003e\n      \u003cdiv class=\"bm-card__media\"\u003e\n        \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0267\/4940\/3235\/files\/COACH.png?v=1770340988\" alt=\"Catcher o Coach.\" loading=\"lazy\"\u003e\n      \u003c\/div\u003e\n      \u003cspan class=\"bm-card__label bm-card__label--below\"\u003eCatcher o Coach.\u003c\/span\u003e\n    \u003c\/a\u003e\n  \u003c\/div\u003e\n\n  \u003cbutton class=\"bm-arrow right\" aria-label=\"Siguiente\"\u003e❯\u003c\/button\u003e\n\u003c\/section\u003e\n\n\n\u003c!-- ===================== 3) MARCAS ===================== --\u003e\n\u003csection class=\"bm-row bm-row--brands\" data-bm-row aria-label=\"MARCAS\"\u003e\n\n  \u003cdiv class=\"bm-row__head\"\u003e\n    \u003ch3 class=\"bm-row__title\"\u003eMARCAS\u003c\/h3\u003e\n    \u003cp class=\"bm-row__sub\"\u003eCompra por marca\u003c\/p\u003e\n  \u003c\/div\u003e\n\n  \u003cbutton class=\"bm-arrow left\" aria-label=\"Anterior\"\u003e❮\u003c\/button\u003e\n\n  \u003cdiv class=\"bm-track\"\u003e\n    \u003ca href=\"https:\/\/beisbolmania.mx\/collections\/cascos?constraint=easton\" class=\"bm-card bm-card--brand\" title=\"Easton\"\u003e\n      \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0267\/4940\/3235\/files\/easton_58c8dea2-0cf6-4d29-aa87-f3f623ae6de6.jpg?v=1770166395\" alt=\"Easton\" loading=\"lazy\"\u003e\n      \u003cspan class=\"bm-card__label\"\u003eEaston\u003c\/span\u003e\n    \u003c\/a\u003e\n\n    \u003ca href=\"https:\/\/beisbolmania.mx\/collections\/cascos?constraint=rawlings\" class=\"bm-card bm-card--brand\" title=\"Rawlings\"\u003e\n      \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0267\/4940\/3235\/files\/rawlings_d760fde2-97ea-4545-8bde-ff83696ac5da.jpg?v=1770166395\" alt=\"Rawlings\" loading=\"lazy\"\u003e\n      \u003cspan class=\"bm-card__label\"\u003eRawlings\u003c\/span\u003e\n    \u003c\/a\u003e\n\n    \u003ca href=\"https:\/\/beisbolmania.mx\/collections\/cascos?constraint=rvlL\" class=\"bm-card bm-card--brand\" title=\"RVL\"\u003e\n      \u003cimg src=\"\" alt=\"RVL\" loading=\"lazy\"\u003e\n      \u003cspan class=\"bm-card__label\"\u003eRVL\u003c\/span\u003e\n    \u003c\/a\u003e\n\n    \u003ca href=\"https:\/\/beisbolmania.mx\/collections\/cascos?constraint=under-armour\" class=\"bm-card bm-card--brand\" title=\"Under Armour\"\u003e\n      \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0267\/4940\/3235\/files\/underamour.jpg?v=1770166395\" alt=\"Under Armour\" loading=\"lazy\"\u003e\n      \u003cspan class=\"bm-card__label\"\u003eUnder Armour\u003c\/span\u003e\n    \u003c\/a\u003e\n\n    \u003ca href=\"https:\/\/beisbolmania.mx\/collections\/cascos?constraint=all-star\" class=\"bm-card bm-card--brand\" title=\"All Star\"\u003e\n      \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0267\/4940\/3235\/files\/allstart.jpg?v=1770166395\" alt=\"All Star\" loading=\"lazy\"\u003e\n      \u003cspan class=\"bm-card__label\"\u003eAll Star\u003c\/span\u003e\n    \u003c\/a\u003e\n\n    \u003ca href=\"https:\/\/beisbolmania.mx\/collections\/cascos?constraint=beisbolsports-mx\" class=\"bm-card bm-card--brand\" title=\"Beisbolsports MX\"\u003e\n      \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0267\/4940\/3235\/files\/bs.jpg?v=1770166396\" alt=\"Beisbolsports MX\" loading=\"lazy\"\u003e\n      \u003cspan class=\"bm-card__label\"\u003eBeisbolsports MX\u003c\/span\u003e\n    \u003c\/a\u003e\n\n    \u003ca href=\"https:\/\/beisbolmania.mx\/collections\/cascos?constraint=marucci\" class=\"bm-card bm-card--brand\" title=\"Marucci\"\u003e\n      \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0267\/4940\/3235\/files\/marucci_1353d7cd-f03c-4768-be5c-2a7d5bc850c4.jpg?v=1770166395\" alt=\"Marucci\" loading=\"lazy\"\u003e\n      \u003cspan class=\"bm-card__label\"\u003eMarucci\u003c\/span\u003e\n    \u003c\/a\u003e\n\n    \u003ca href=\"https:\/\/beisbolmania.mx\/collections\/cascos?constraint=evoshield\" class=\"bm-card bm-card--brand\" title=\"Evoshield\"\u003e\n      \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0267\/4940\/3235\/files\/evoshield.png?v=1770226176\" alt=\"Evoshield\" loading=\"lazy\"\u003e\n      \u003cspan class=\"bm-card__label\"\u003eEvoshield\u003c\/span\u003e\n    \u003c\/a\u003e\n\n    \u003ca href=\"https:\/\/beisbolmania.mx\/collections\/cascos?constraint=worth\" class=\"bm-card bm-card--brand\" title=\"Worth\"\u003e\n      \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0267\/4940\/3235\/files\/WORTH_e87418ec-84b3-4cb4-a0aa-2999ef83ec60.jpg?v=1770166396\" alt=\"Worth\" loading=\"lazy\"\u003e\n      \u003cspan class=\"bm-card__label\"\u003eWorth\u003c\/span\u003e\n    \u003c\/a\u003e\n\n    \u003ca href=\"https:\/\/beisbolmania.mx\/collections\/cascos?constraint=champro\" class=\"bm-card bm-card--brand\" title=\"Champro\"\u003e\n      \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0267\/4940\/3235\/files\/CHAMPRO_f0d7a8fa-2afa-48ae-92a1-a752b22ff2f6.jpg?v=1770166395\" alt=\"Champro\" loading=\"lazy\"\u003e\n      \u003cspan class=\"bm-card__label\"\u003eChampro\u003c\/span\u003e\n    \u003c\/a\u003e\n\n    \u003ca href=\"https:\/\/beisbolmania.mx\/collections\/cascos?constraint=beisbolmania\" class=\"bm-card bm-card--brand\" title=\"Beisbolmania\"\u003e\n      \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0267\/4940\/3235\/files\/BEISBOLMANIA.MX.jpg?v=1770166396\" alt=\"Beisbolmania\" loading=\"lazy\"\u003e\n      \u003cspan class=\"bm-card__label\"\u003eBeisbolmania\u003c\/span\u003e\n    \u003c\/a\u003e\n  \u003c\/div\u003e\n\n  \u003cbutton class=\"bm-arrow right\" aria-label=\"Siguiente\"\u003e❯\u003c\/button\u003e\n\u003c\/section\u003e\n\n\n\u003cstyle\u003e\n\/* ====== BASE ====== *\/\n.bm-row{\n  position:relative;\n  background:#fff;\n  padding: 10px 0 14px;\n  border-bottom: 1px solid #eee;\n  overflow:hidden;\n}\n\n.bm-row__head{\n  max-width: 1400px;\n  margin: 0 auto 8px;\n  padding: 0 12px;\n  display:flex;\n  align-items:baseline;\n  justify-content:space-between;\n  gap:12px;\n}\n.bm-row__title{\n  margin:0;\n  font: 900 18px\/1.1 system-ui;\n  letter-spacing:.02em;\n  text-transform: uppercase;\n}\n.bm-row__sub{\n  margin:0;\n  font: 500 12px\/1.2 system-ui;\n  opacity:.7;\n}\n\n.bm-track{\n  display:flex;\n  gap:18px;\n  overflow-x:auto;\n  scroll-behavior:smooth;\n  scrollbar-width:none;\n  -webkit-overflow-scrolling:touch;\n  padding: 0 44px; \/* espacio para flechas *\/\n}\n.bm-track::-webkit-scrollbar{display:none}\n\n.bm-card{\n  flex:0 0 auto;\n  text-decoration:none;\n  color:#000;\n  position:relative;\n  border-radius:14px;\n  overflow:hidden;\n  border:1px solid #d7d7d7;\n  background:#fff;\n  transform: translateZ(0);\n}\n\n\/* ====== ARROWS ====== *\/\n.bm-arrow{\n  position:absolute;\n  top: 62%;\n  transform: translateY(-50%);\n  z-index:10;\n  border:none;\n  cursor:pointer;\n  width:36px;\n  height:36px;\n  border-radius:999px;\n  background: rgba(255,255,255,.85);\n  box-shadow: 0 6px 18px rgba(0,0,0,.12);\n  font-size:20px;\n  color:#000;\n  opacity:0;\n  transition: opacity .25s ease, transform .25s ease, background .25s ease;\n}\n.bm-row:hover .bm-arrow{ opacity:1; }\n.bm-arrow:hover{ background: rgba(0,0,0,.06); }\n.bm-arrow.left{ left:8px; }\n.bm-arrow.right{ right:8px; }\n.bm-arrow:disabled{ opacity:.25 !important; cursor:default; }\n\n\/* ====== SERIES (cards grandes con texto abajo) ====== *\/\n.bm-row--series .bm-track{ gap:18px; }\n\n.bm-card--series{\n  width: 190px;\n  border-radius:18px;\n  border: 1px solid #e8e8e8;\n  background:#fff;\n  overflow:hidden;\n}\n\n.bm-card--series .bm-card__media{\n  width: 190px;\n  height: 190px;\n  overflow:hidden;\n  border-radius:18px;\n}\n\n.bm-card--series .bm-card__media img{\n  width:100%;\n  height:100%;\n  object-fit: cover;\n  padding:0 !important;\n  background:#fff;\n  display:block;\n  transition: transform .25s ease;\n}\n.bm-card--series:hover .bm-card__media img{ transform: scale(1.04); }\n\n.bm-card__label--below{\n  position: static !important;\n  display:block;\n  margin: 10px 0 12px;\n  padding: 0 10px;\n  background:none !important;\n  color:#000 !important;\n  backdrop-filter:none !important;\n  font: 900 13px\/1 system-ui;\n  text-transform: uppercase;\n  letter-spacing:.04em;\n  text-align:center;\n  opacity:.9;\n}\n\n\/* ====== BRANDS (rectángulo grande como tu código anterior) ====== *\/\n.bm-row--brands .bm-track{ gap:14px; }\n\n\/* rectángulo (no cuadrado) *\/\n.bm-card--brand{\n  width: 210px;            \/* ✅ tamaño tipo “rectángulo grande” *\/\n  height: 120px;\n  border-radius:16px;\n  border: 1px solid #e8e8e8;\n  background:#fff;\n  overflow:hidden;\n  display:flex;\n  flex-direction:column;\n  align-items:center;\n  justify-content:center;\n  padding: 12px 12px 14px;\n}\n\n\/* logo centrado *\/\n.bm-card--brand img{\n  width:100%;\n  height:60px;             \/* alto del logo *\/\n  padding:0;               \/* ya no uses padding 16px aquí *\/\n  object-fit:contain;\n  display:block;\n}\n\n\/* texto abajo centrado *\/\n.bm-row--brands .bm-card__label{\n  position: static;\n  margin-top: 10px;\n  padding: 0;\n  background:none;\n  color:#000;\n  font: 900 13px\/1 system-ui;\n  text-transform: uppercase;\n  letter-spacing:.04em;\n  text-align:center;\n  opacity:.85;\n}\n\n\n\/* ====== MOBILE ====== *\/\n@media (max-width: 768px){\n  .bm-row__head{ padding: 0 12px; }\n  .bm-track{\n    padding: 0 12px;\n    scroll-snap-type: x mandatory;\n  }\n  .bm-card{ scroll-snap-align: start; }\n  .bm-arrow{ display:none !important; }\n\n  .bm-card--series{ width: 170px; }\n  .bm-card--series .bm-card__media{ width:170px; height:170px; }\n\n  \n\u003c\/style\u003e\n\n\u003cscript\u003e\ndocument.addEventListener(\"DOMContentLoaded\", () =\u003e {\n  document.querySelectorAll('[data-bm-row]').forEach((row) =\u003e {\n    const track = row.querySelector('.bm-track');\n    const btnL = row.querySelector('.bm-arrow.left');\n    const btnR = row.querySelector('.bm-arrow.right');\n    if(!track) return;\n\n    const getStep = () =\u003e {\n      const card = track.querySelector('.bm-card');\n      const w = card ? card.getBoundingClientRect().width : 160;\n      const gap = parseFloat(getComputedStyle(track).gap || 18);\n      const perClick = row.classList.contains('bm-row--brands') ? 5 : 2;\n      return (w + gap) * perClick;\n    };\n\n    const updateDisabled = () =\u003e {\n      if(!btnL || !btnR) return;\n      const max = track.scrollWidth - track.clientWidth - 2;\n      btnL.disabled = track.scrollLeft \u003c= 2;\n      btnR.disabled = track.scrollLeft \u003e= max;\n    };\n\n    const go = (dir) =\u003e {\n      track.scrollBy({ left: dir === 'left' ? -getStep() : getStep(), behavior: 'smooth' });\n    };\n\n    if(btnL) btnL.addEventListener('click', () =\u003e go('left'));\n    if(btnR) btnR.addEventListener('click', () =\u003e go('right'));\n\n    track.addEventListener('scroll', () =\u003e requestAnimationFrame(updateDisabled), { passive:true });\n    window.addEventListener('resize', updateDisabled);\n    updateDisabled();\n  });\n});\n\u003c\/script\u003e\n","products":[],"url":"https:\/\/beisbolmania.mx\/collections\/test-de-menus-karina.oembed","provider":"Beisbolmania","version":"1.0","type":"link"}