{"product_id":"protector-coche-perros-base-rigida","title":"Protector de coche para perros con base rígida | CANMIGO","description":"\u003cstyle\u003e\n.cmg-wrap {\n  --cmg-green: #16392b;\n  --cmg-lime: #d5e56b;\n  --cmg-soft: #f6f7ef;\n  --cmg-text: #46564b;\n  --cmg-line: rgba(22,57,43,.13);\n  font-family: var(--font-body-family,Arial,sans-serif);\n  color: var(--cmg-green);\n  max-width: 680px;\n  width: 100%;\n  margin: 0 auto;\n  overflow-x: clip;\n  line-height: 1.6;\n}\n.cmg-wrap * { box-sizing: border-box; }\n\n.cmg-wrap .cmg-section {\n  padding: 34px 0;\n  border-bottom: 1px solid var(--cmg-line);\n}\n.cmg-wrap .cmg-section:last-child { border-bottom: 0; }\n\n.cmg-wrap .cmg-label {\n  display: inline-flex;\n  align-items: center;\n  gap: 8px;\n  padding: 6px 12px;\n  background: var(--cmg-lime);\n  border-radius: 999px;\n  color: var(--cmg-green);\n  font-size: 10px;\n  font-weight: 750;\n  letter-spacing: .1em;\n  line-height: 1.4;\n  text-transform: uppercase;\n  margin-bottom: 14px;\n}\n.cmg-wrap .cmg-label:before {\n  content: \"\";\n  width: 6px;\n  height: 6px;\n  border-radius: 50%;\n  background: var(--cmg-green);\n  flex-shrink: 0;\n}\n.cmg-wrap .cmg-title {\n  font-family: var(--font-heading-family,var(--font-body-family,Arial,sans-serif));\n  color: var(--cmg-green);\n  font-size: clamp(23px,3.2vw,30px);\n  font-weight: 750;\n  line-height: 1.15;\n  letter-spacing: -.035em;\n  margin: 0 0 14px;\n  text-wrap: balance;\n}\n.cmg-wrap .cmg-body {\n  font-size: 15px;\n  font-weight: 400;\n  line-height: 1.75;\n  color: var(--cmg-text);\n  margin: 0;\n  text-wrap: pretty;\n}\n.cmg-wrap strong {\n  font-weight: 700;\n  color: var(--cmg-green);\n}\n.cmg-wrap .cmg-body a {\n  color: var(--cmg-green);\n  text-decoration: underline;\n  text-decoration-color: var(--cmg-lime);\n  text-decoration-thickness: 3px;\n  text-underline-offset: 4px;\n}\n.cmg-wrap a:hover { text-decoration-color: var(--cmg-green); }\n\n.cmg-wrap a:focus-visible,\n.cmg-wrap button:focus-visible,\n.cmg-wrap video:focus-visible,\n.cmg-wrap [tabindex]:focus-visible {\n  outline: 3px solid var(--cmg-green);\n  outline-offset: 4px;\n}\n.cmg-wrap .cmg-note {\n  margin-top: 18px;\n  padding: 18px 20px;\n  background: var(--cmg-soft);\n  border: 1px solid var(--cmg-line);\n  border-left: 4px solid var(--cmg-lime);\n  border-radius: 0 16px 16px 0;\n}\n.cmg-wrap .cmg-note p {\n  margin: 0;\n  font-size: 14px;\n  line-height: 1.7;\n  color: var(--cmg-text);\n}\n.cmg-wrap .cmg-q {\n  font-size: 17px;\n  font-weight: 700;\n  line-height: 1.35;\n  letter-spacing: -.015em;\n  color: var(--cmg-green);\n  margin: 24px 0 8px;\n}\n.cmg-wrap .cmg-media {\n  width: 100%;\n  display: block;\n  overflow: hidden;\n  margin: 20px 0 0;\n  background: var(--cmg-soft);\n  border: 1px solid var(--cmg-line);\n  border-radius: 18px;\n}\n.cmg-wrap .cmg-media video,\n.cmg-wrap .cmg-media img {\n  width: 100%;\n  height: auto;\n  display: block;\n  border-radius: 0;\n}\n.cmg-wrap .cmg-media video {\n  aspect-ratio: 1\/1;\n  object-fit: contain;\n  background: var(--cmg-soft);\n}\n.cmg-wrap .cmg-media-shadow {\n  box-shadow: 0 12px 32px -20px rgba(22,57,43,.35);\n}\n.cmg-wrap table {\n  width: 100%;\n  border-collapse: collapse;\n  font-size: 14px !important;\n  color: var(--cmg-green) !important;\n  margin-top: 18px;\n}\n.cmg-wrap table td {\n  padding: 12px 10px !important;\n  border-color: var(--cmg-line) !important;\n  vertical-align: top;\n}\n.cmg-wrap table td:first-child { width: 58%; }\n.cmg-wrap table tr:nth-child(odd) { background: var(--cmg-soft); }\n.cmg-wrap table td:last-child { font-weight: 650 !important; }\n\n.cmg-wrap .cmg-reviews { padding: 34px 0; }\n.cmg-wrap .cmg-reviews-header { margin-bottom: 18px; }\n.cmg-wrap .cmg-reviews-header .cmg-title { margin-bottom: 6px; }\n.cmg-wrap .cmg-carousel-outer { position: relative; margin: 0; }\n\n.cmg-wrap .cmg-carousel-track {\n  display: flex;\n  gap: 12px;\n  overflow-x: auto;\n  scroll-snap-type: x mandatory;\n  scrollbar-width: thin;\n  scrollbar-color: var(--cmg-lime) var(--cmg-soft);\n  padding: 2px 0 12px;\n  overscroll-behavior-x: contain;\n  cursor: grab;\n  -webkit-overflow-scrolling: touch;\n}\n.cmg-wrap .cmg-carousel-track.is-dragging {\n  cursor: grabbing;\n  scroll-snap-type: none;\n  user-select: none;\n}\n.cmg-wrap .cmg-carousel-slide {\n  flex: 0 0 43%;\n  scroll-snap-align: start;\n  border-radius: 16px;\n  overflow: hidden;\n  aspect-ratio: 3\/4;\n  background: var(--cmg-soft);\n  border: 1px solid var(--cmg-line);\n}\n.cmg-wrap .cmg-carousel-slide img {\n  width: 100%;\n  height: 100%;\n  object-fit: cover;\n  display: block;\n  pointer-events: none;\n}\n.cmg-wrap .cmg-progress-wrap {\n  margin-top: 12px;\n  height: 4px;\n  background: var(--cmg-soft);\n  border-radius: 999px;\n  overflow: hidden;\n}\n.cmg-wrap .cmg-progress-bar {\n  height: 100%;\n  background: var(--cmg-lime);\n  border-radius: 999px;\n  width: 20%;\n}\n.cmg-wrap .cmg-hint {\n  margin: 10px 0 0;\n  font-size: 11px;\n  font-weight: 600;\n  letter-spacing: .07em;\n  text-transform: uppercase;\n  color: var(--cmg-text);\n}\n@media(max-width:430px) {\n  .cmg-wrap .cmg-section,\n  .cmg-wrap .cmg-reviews { padding: 28px 0; }\n  .cmg-wrap .cmg-title { font-size: 24px; }\n  .cmg-wrap .cmg-body { font-size: 14px; }\n  .cmg-wrap .cmg-media {\n    margin-top: 18px;\n    border-radius: 15px;\n  }\n  .cmg-wrap .cmg-carousel-slide { flex-basis: 45%; }\n  .cmg-wrap .cmg-note { padding: 16px; }\n  .cmg-wrap table { font-size: 12px !important; }\n  .cmg-wrap table td { padding: 10px 7px !important; }\n}\n@media(prefers-reduced-motion:reduce) {\n  .cmg-wrap * {\n    scroll-behavior: auto !important;\n    transition: none !important;\n  }\n}\n\u003c\/style\u003e\n\n\u003cdiv class=\"cmg-wrap\"\u003e\n\n  \u003cdiv class=\"cmg-section\"\u003e\n    \u003cdiv class=\"cmg-label\"\u003e01 — Estructura\u003c\/div\u003e\n    \u003ch2 class=\"cmg-title\"\u003eUna base firme para viajar más cómodo\u003c\/h2\u003e\n    \u003cp class=\"cmg-body\"\u003e\n      La base rígida amplía la superficie del asiento trasero y cubre\n      el hueco hacia los asientos delanteros. Tu perro dispone de una\n      zona plana para apoyarse, tumbarse y cambiar de postura.\n    \u003c\/p\u003e\n    \u003cdiv class=\"cmg-media cmg-media-shadow\"\u003e\n      \u003cvideo class=\"cmg-lazy-video\" preload=\"none\" playsinline loop muted controls\u003e\n        \u003csource type=\"video\/mp4\" src=\"https:\/\/cdn.shopify.com\/videos\/c\/vp\/9d3d127ba4554e308202486010953989\/9d3d127ba4554e308202486010953989.HD-720p-1.6Mbps-85817283.mp4\"\u003e\u003c\/video\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"cmg-section\"\u003e\n    \u003cdiv class=\"cmg-label\"\u003e02 — Versatilidad\u003c\/div\u003e\n    \u003ch2 class=\"cmg-title\"\u003ePreparada para acompañarte en cada salida\u003c\/h2\u003e\n    \u003cp class=\"cmg-body\"\u003e\n      Del paseo diario a una escapada de fin de semana: organiza el\n      espacio de tu perro con una superficie firme y los paneles\n      protectores colocados antes de salir.\n    \u003c\/p\u003e\n    \u003cdiv class=\"cmg-media cmg-media-shadow\"\u003e\n      \u003cvideo class=\"cmg-lazy-video\" preload=\"none\" playsinline loop muted controls\u003e\n        \u003csource type=\"video\/mp4\" src=\"https:\/\/cdn.shopify.com\/videos\/c\/vp\/88a9316e30fc4069b22e3b6c44a068f2\/88a9316e30fc4069b22e3b6c44a068f2.SD-480p-0.9Mbps-83327087.mp4\"\u003e\u003c\/video\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"cmg-section\"\u003e\n    \u003cdiv class=\"cmg-label\"\u003e03 — Protección\u003c\/div\u003e\n    \u003ch2 class=\"cmg-title\"\u003eLas aventuras fuera. La tapicería protegida.\u003c\/h2\u003e\n    \u003cp class=\"cmg-body\"\u003e\n      El protector crea una barrera entre tu perro y la tapicería.\n      Sus paneles ayudan a recoger pelos y suciedad del paseo,\n      mientras la base cubre el espacio entre los asientos.\n    \u003c\/p\u003e\n    \u003cdiv class=\"cmg-media cmg-media-shadow\"\u003e\n      \u003cvideo class=\"cmg-lazy-video\" preload=\"none\" playsinline loop muted controls\u003e\n        \u003csource type=\"video\/mp4\" src=\"https:\/\/cdn.shopify.com\/videos\/c\/vp\/4d36e43a7516401c9cd0ecad4c2a257b\/4d36e43a7516401c9cd0ecad4c2a257b.SD-480p-1.0Mbps-83328563.mp4\"\u003e\u003c\/video\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"cmg-section\"\u003e\n    \u003cdiv class=\"cmg-label\"\u003e04 — Diseño\u003c\/div\u003e\n    \u003ch2 class=\"cmg-title\"\u003eFácil de guardar. Lista para la próxima aventura.\u003c\/h2\u003e\n    \u003cp class=\"cmg-body\"\u003e\n      Cuando termina el viaje, recoge el protector y guárdalo en\n      su bolsa de transporte. Todo junto y preparado para volver a salir.\n    \u003c\/p\u003e\n    \u003cdiv class=\"cmg-media\"\u003e\n      \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1083\/7288\/5845\/files\/Duitse_herder_naast_grote_draagtas.png?v=1790942998\" alt=\"Bolsa de transporte CANMIGO junto a un pastor alemán\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"1024\" style=\"height:auto\"\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"cmg-section\"\u003e\n    \u003cdiv class=\"cmg-label\"\u003e05 — Diseño práctico\u003c\/div\u003e\n    \u003ch2 class=\"cmg-title\"\u003eMás espacio para él. Todo a mano para ti.\u003c\/h2\u003e\n    \u003cp class=\"cmg-body\"\u003e\n      La ventana central de malla permite que tu perro te vea y\n      facilita la circulación del aire. Los bolsillos mantienen\n      la correa y los pequeños accesorios del paseo a mano.\n    \u003c\/p\u003e\n    \u003cdiv class=\"cmg-note\"\u003e\n      \u003cp\u003e\n        \u003cstrong\u003eUn espacio pensado para compartir viajes:\u003c\/strong\u003e\n        base plana, paneles protectores y una zona de descanso\n        sobre el asiento trasero.\n      \u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"cmg-section\"\u003e\n    \u003cdiv class=\"cmg-label\"\u003e06 — Medidas\u003c\/div\u003e\n    \u003ch2 class=\"cmg-title\"\u003eComprueba las medidas de tu coche\u003c\/h2\u003e\n    \u003cp class=\"cmg-body\"\u003e\n      Antes de pedirlo, compara el espacio disponible en tu coche\n      con las medidas del protector.\n    \u003c\/p\u003e\n    \u003cdiv class=\"cmg-media\"\u003e\n      \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1083\/7288\/5845\/files\/CANMIGO_maattabel_voor_hondenautohoes.png?v=1792199068\" alt=\"Guía de medidas CANMIGO: base de 130 por 61 cm\" width=\"1254\" height=\"1254\" loading=\"lazy\" decoding=\"async\"\u003e\n    \u003c\/div\u003e\n\n    \u003ctable aria-label=\"Medidas del protector CANMIGO\"\u003e\n      \u003ctbody\u003e\n        \u003ctr\u003e\n          \u003ctd\u003eAncho de la base\u003c\/td\u003e\n          \u003ctd\u003e130 cm\u003c\/td\u003e\n        \u003c\/tr\u003e\n        \u003ctr\u003e\n          \u003ctd\u003eFondo de la base\u003c\/td\u003e\n          \u003ctd\u003e61 cm\u003c\/td\u003e\n        \u003c\/tr\u003e\n        \u003ctr\u003e\n          \u003ctd\u003eAltura del panel superior\u003c\/td\u003e\n          \u003ctd\u003e41,9 cm\u003c\/td\u003e\n        \u003c\/tr\u003e\n        \u003ctr\u003e\n          \u003ctd\u003eAncho de la solapa lateral\u003c\/td\u003e\n          \u003ctd\u003e39,9 cm\u003c\/td\u003e\n        \u003c\/tr\u003e\n        \u003ctr\u003e\n          \u003ctd\u003eAltura del panel inferior\u003c\/td\u003e\n          \u003ctd\u003e15,9 cm\u003c\/td\u003e\n        \u003c\/tr\u003e\n      \u003c\/tbody\u003e\n    \u003c\/table\u003e\n\n    \u003cdiv class=\"cmg-note\"\u003e\n      \u003cp\u003e\n        \u003cstrong\u003eMide antes de comprar:\u003c\/strong\u003e\n        comprueba el ancho del asiento trasero, la distancia hasta\n        los asientos delanteros y la posición de los reposacabezas.\n        El tipo de coche por sí solo no garantiza el ajuste.\n      \u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"cmg-section\"\u003e\n    \u003cdiv class=\"cmg-label\"\u003e07 — Antes de salir\u003c\/div\u003e\n    \u003ch2 class=\"cmg-title\"\u003ePrepara su rincón de viaje\u003c\/h2\u003e\n    \u003cp class=\"cmg-body\"\u003e\n      Coloca la base plana, ajusta las correas y comprueba que los\n      paneles queden bien sujetos. Si añades una manta o una esterilla,\n      déjala extendida sobre la superficie.\n    \u003c\/p\u003e\n    \u003cdiv class=\"cmg-note\"\u003e\n      \u003cp\u003e\n        \u003cstrong\u003eRecuerda:\u003c\/strong\u003e\n        el protector no sustituye un sistema de retención para tu perro.\n        Utiliza uno adecuado y sigue las instrucciones de su fabricante.\n      \u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"cmg-section\"\u003e\n    \u003cdiv class=\"cmg-label\"\u003e08 — La diferencia está en la base\u003c\/div\u003e\n    \u003ch2 class=\"cmg-title\"\u003eMás que una manta sobre el asiento\u003c\/h2\u003e\n\n    \u003ch3 class=\"cmg-q\"\u003eUna manta convencional\u003c\/h3\u003e\n    \u003cp class=\"cmg-body\"\u003e\n      Cubre la superficie del asiento, pero no crea una plataforma\n      sobre el hueco de los pies.\n    \u003c\/p\u003e\n\n    \u003ch3 class=\"cmg-q\"\u003eUna hamaca de tela\u003c\/h3\u003e\n    \u003cp class=\"cmg-body\"\u003e\n      Cubre el espacio entre los asientos mediante una superficie\n      flexible, sin una base rígida debajo.\n    \u003c\/p\u003e\n\n    \u003ch3 class=\"cmg-q\"\u003eLa base rígida CANMIGO\u003c\/h3\u003e\n    \u003cp class=\"cmg-body\"\u003e\n      Añade una superficie plana que se prolonga hacia los asientos\n      delanteros, junto con paneles que ayudan a proteger la tapicería.\n    \u003c\/p\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"cmg-section\"\u003e\n    \u003cdiv class=\"cmg-label\"\u003e09 — Resolvemos tus dudas\u003c\/div\u003e\n    \u003ch2 class=\"cmg-title\"\u003ePreguntas frecuentes\u003c\/h2\u003e\n\n    \u003ch3 class=\"cmg-q\"\u003e¿La base es rígida?\u003c\/h3\u003e\n    \u003cp class=\"cmg-body\"\u003e\n      Sí. La base forma una plataforma firme sobre el asiento\n      y el hueco hacia los asientos delanteros.\n    \u003c\/p\u003e\n\n    \u003ch3 class=\"cmg-q\"\u003e¿Sirve para mi coche?\u003c\/h3\u003e\n    \u003cp class=\"cmg-body\"\u003e\n      Compara la base de 130 × 61 cm y los paneles de la guía con\n      el espacio de tu coche. Comprueba también los puntos de sujeción.\n    \u003c\/p\u003e\n\n    \u003ch3 class=\"cmg-q\"\u003e¿Puedo poner una esterilla encima?\u003c\/h3\u003e\n    \u003cp class=\"cmg-body\"\u003e\n      Sí. Puedes colocar una esterilla sobre la base, sin tapar los\n      accesos necesarios para sujetar a tu perro. Las fotos muestran\n      distintas opciones de uso; consulta el contenido del pedido\n      para saber qué accesorios incluye.\n    \u003c\/p\u003e\n\n    \u003ch3 class=\"cmg-q\"\u003e¿Cuánto tarda en llegar?\u003c\/h3\u003e\n    \u003cp class=\"cmg-body\"\u003e\n      Consulta el plazo de entrega indicado en esta página.\n      El envío es gratuito e incluye seguimiento.\n    \u003c\/p\u003e\n\n    \u003ch3 class=\"cmg-q\"\u003e¿Y si no me convence?\u003c\/h3\u003e\n    \u003cp class=\"cmg-body\"\u003e\n      Dispones de 30 días para solicitar la devolución según las\n      condiciones de nuestra política de devoluciones.\n    \u003c\/p\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"cmg-reviews\"\u003e\n    \u003cdiv class=\"cmg-reviews-header\"\u003e\n      \u003cdiv class=\"cmg-label\"\u003eMomentos de viaje\u003c\/div\u003e\n      \u003ch2 class=\"cmg-title\"\u003eMás aventuras juntos\u003c\/h2\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"cmg-carousel-outer\"\u003e\n      \u003cdiv id=\"cmg-track\" class=\"cmg-carousel-track\" tabindex=\"0\" role=\"region\" aria-label=\"Galería de viajes con perro\"\u003e\n\n        \u003cdiv class=\"cmg-carousel-slide\"\u003e\n          \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1083\/7288\/5845\/files\/Hond_op_stevig_zwart_autoplatform-3.png?v=1792199551\" alt=\"Border collie sobre la base rígida negra\" loading=\"lazy\" decoding=\"async\" width=\"1086\" height=\"1448\"\u003e\n        \u003c\/div\u003e\n\n        \u003cdiv class=\"cmg-carousel-slide\"\u003e\n          \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1083\/7288\/5845\/files\/Hond_op_stevig_autoplatform-2.png?v=1792199551\" alt=\"Labrador descansando sobre una esterilla en la plataforma\" loading=\"lazy\" decoding=\"async\" width=\"1086\" height=\"1448\"\u003e\n        \u003c\/div\u003e\n\n        \u003cdiv class=\"cmg-carousel-slide\"\u003e\n          \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1083\/7288\/5845\/files\/Hond_ontspannen_op_stevig_autoplatform-1.png?v=1792199552\" alt=\"Cocker spaniel sobre la plataforma con esterilla\" loading=\"lazy\" decoding=\"async\" width=\"1086\" height=\"1448\"\u003e\n        \u003c\/div\u003e\n\n        \u003cdiv class=\"cmg-carousel-slide\"\u003e\n          \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1083\/7288\/5845\/files\/Gele_labrador_ontspannen_op_autostoelbeschermer.png?v=1792199563\" alt=\"Labrador descansando en el protector de coche\" loading=\"lazy\" decoding=\"async\" width=\"1086\" height=\"1448\"\u003e\n        \u003c\/div\u003e\n\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"cmg-progress-wrap\"\u003e\n      \u003cdiv id=\"cmg-progress\" class=\"cmg-progress-bar\"\u003e\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cp class=\"cmg-hint\"\u003eDesliza para ver más\u003c\/p\u003e\n  \u003c\/div\u003e\n\n\u003c\/div\u003e\n\n\u003cscript\u003e\n(function() {\n  function init() {\n    var root = document.querySelector('.cmg-wrap');\n    if (!root || root.dataset.cmgReady) return;\n    root.dataset.cmgReady = '1';\n\n    var reduced = window.matchMedia(\n      '(prefers-reduced-motion: reduce)'\n    ).matches;\n\n    var videos = root.querySelectorAll('.cmg-lazy-video');\n\n    if (\n      videos.length \u0026\u0026\n      'IntersectionObserver' in window \u0026\u0026\n      !reduced\n    ) {\n      var preloadObs = new IntersectionObserver(function(entries) {\n        entries.forEach(function(entry) {\n          if (!entry.isIntersecting) return;\n\n          var video = entry.target;\n\n          if (video.dataset.cmgLoaded !== '1') {\n            video.dataset.cmgLoaded = '1';\n            video.preload = 'auto';\n            video.load();\n          }\n\n          preloadObs.unobserve(video);\n        });\n      }, {\n        rootMargin: '1200px 0px 1200px 0px',\n        threshold: 0\n      });\n\n      var playObs = new IntersectionObserver(function(entries) {\n        entries.forEach(function(entry) {\n          var video = entry.target;\n\n          if (entry.isIntersecting) {\n            video.play().catch(function() {});\n          } else {\n            video.pause();\n          }\n        });\n      }, {\n        threshold: 0.25\n      });\n\n      videos.forEach(function(video) {\n        preloadObs.observe(video);\n        playObs.observe(video);\n      });\n    }\n\n    var track = document.getElementById('cmg-track');\n    var progress = document.getElementById('cmg-progress');\n\n    if (!track) return;\n\n    var slides = track.querySelectorAll('.cmg-carousel-slide');\n    var autoTimer = null;\n    var userInteracted = false;\n\n    function updateProgress() {\n      if (!progress) return;\n\n      var maxScroll = track.scrollWidth - track.clientWidth;\n\n      if (maxScroll \u003c= 0) {\n        progress.style.width = '100%';\n        return;\n      }\n\n      progress.style.width =\n        ((track.scrollLeft \/ maxScroll) * 80 + 20) + '%';\n    }\n\n    function autoAdvance() {\n      if (userInteracted) return;\n\n      var slideWidth = slides[0]\n        ? slides[0].offsetWidth + 12\n        : 156;\n\n      var maxScroll = track.scrollWidth - track.clientWidth;\n\n      if (track.scrollLeft \u003e= maxScroll - 5) {\n        track.scrollTo({ left: 0, behavior: 'smooth' });\n      } else {\n        track.scrollBy({\n          left: slideWidth,\n          behavior: 'smooth'\n        });\n      }\n    }\n\n    function startAuto() {\n      clearInterval(autoTimer);\n      autoTimer = setInterval(autoAdvance, 2800);\n    }\n\n    function stopAuto() {\n      clearInterval(autoTimer);\n    }\n\n    track.addEventListener('scroll', updateProgress, {\n      passive: true\n    });\n\n    window.addEventListener('resize', updateProgress);\n\n    track.addEventListener('focusin', function() {\n      userInteracted = true;\n      stopAuto();\n    });\n\n    track.addEventListener('mouseenter', stopAuto);\n\n    track.addEventListener('mouseleave', function() {\n      if (!userInteracted \u0026\u0026 !reduced) startAuto();\n    });\n\n    track.addEventListener('touchstart', function() {\n      userInteracted = true;\n      stopAuto();\n    }, {\n      passive: true\n    });\n\n    var isDragging = false;\n    var dragStartX = 0;\n    var dragScrollLeft = 0;\n\n    track.addEventListener('mousedown', function(event) {\n      isDragging = true;\n      dragStartX = event.pageX;\n      dragScrollLeft = track.scrollLeft;\n      track.classList.add('is-dragging');\n      stopAuto();\n    });\n\n    window.addEventListener('mousemove', function(event) {\n      if (!isDragging) return;\n\n      track.scrollLeft =\n        dragScrollLeft - (event.pageX - dragStartX);\n    });\n\n    window.addEventListener('mouseup', function() {\n      if (!isDragging) return;\n\n      isDragging = false;\n      track.classList.remove('is-dragging');\n    });\n\n    updateProgress();\n    if (!reduced) startAuto();\n  }\n\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', init);\n  } else {\n    init();\n  }\n})();\n\u003c\/script\u003e","brand":"canmigo","offers":[{"title":"132 × 160 cm","offer_id":55115964318037,"sku":"SKU_1790437917742_18","price":89.99,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1083\/7288\/5845\/files\/ChatGPT-afbeelding1okt2026_13_57_45.png?v=1790855889","url":"https:\/\/www.canmigo.es\/products\/protector-coche-perros-base-rigida","provider":"CANMIGO","version":"1.0","type":"link"}