{"product_id":"funda-coche-perro-base-rigida","title":"Funda con base rígida","description":"\u003cstyle\u003e\n  .dg-wrap * { box-sizing: border-box; }\n  .dg-wrap { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: #111; max-width: 640px; margin: 0 auto; }\n  .dg-section { padding: 40px 0; border-bottom: 1px solid #f0f0f0; }\n  .dg-section:last-child { border-bottom: none; }\n  .dg-label { display: inline-block; font-size: 10px; font-weight: 700; letter-spacing: 0.15em; text-transform: uppercase; color: #888; margin-bottom: 12px; }\n  .dg-title { font-size: 24px; font-weight: 800; line-height: 1.2; color: #0f0f0f; margin: 0 0 12px; }\n  .dg-body { font-size: 15px; line-height: 1.7; color: #555; margin: 0; }\n  .dg-media { width: 100%; border-radius: 16px; display: block; overflow: hidden; margin: 24px 0 0; }\n  .dg-media video, .dg-media img { width: 100%; display: block; border-radius: 16px; }\n  .dg-media-shadow { box-shadow: 0 8px 40px rgba(0,0,0,0.10); }\n  .dg-reviews { padding: 40px 0; border-bottom: 1px solid #f0f0f0; }\n  .dg-reviews-header { margin-bottom: 20px; }\n  .dg-carousel-track-wrap { overflow: hidden; width: 100%; position: relative; }\n  .dg-carousel-track { display: flex; gap: 12px; transition: transform 0.4s cubic-bezier(0.25,0.46,0.45,0.94); will-change: transform; cursor: grab; user-select: none; }\n  .dg-carousel-track:active { cursor: grabbing; }\n  .dg-carousel-slide { flex: 0 0 200px; border-radius: 14px; overflow: hidden; aspect-ratio: 3\/4; background: #f0f0f0; }\n  .dg-carousel-slide img { width: 100%; height: 100%; object-fit: cover; display: block; pointer-events: none; border-radius: 14px; }\n  .dg-carousel-nav { display: flex; gap: 8px; margin-top: 16px; flex-wrap: wrap; }\n  .dg-carousel-dot { width: 6px; height: 6px; border-radius: 50%; background: #ddd; border: none; padding: 0; cursor: pointer; transition: background 0.2s, width 0.2s; }\n  .dg-carousel-dot.active { background: #111; width: 20px; border-radius: 3px; }\n  .dg-hint { font-size: 11px; color: #bbb; margin-top: 10px; letter-spacing: 0.03em; }\n\u003c\/style\u003e\n\n\u003cdiv class=\"dg-wrap\"\u003e\n  \u003cdiv class=\"dg-section\"\u003e\n    \u003cdiv class=\"dg-label\"\u003e01 — Estructura\u003c\/div\u003e\n    \u003ch2 class=\"dg-title\"\u003eBase reforzada que soporta grandes cargas\u003c\/h2\u003e\n    \u003cp class=\"dg-body\"\u003eSu estructura rígida mantiene la forma incluso bajo una fuerte presión, ofreciendo máxima estabilidad y comodidad para tu mascota en cada viaje.\u003c\/p\u003e\n    \u003cdiv class=\"dg-media dg-media-shadow\"\u003e\n      \u003cvideo muted loop playsinline preload=\"none\" class=\"dg-lazy-video\"\u003e\u003csource src=\"https:\/\/cdn.shopify.com\/videos\/c\/o\/v\/9d3d127ba4554e308202486010953989.mov\" type=\"video\/mp4\"\u003e\u003c\/video\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"dg-section\"\u003e\n    \u003cdiv class=\"dg-label\"\u003e02 — Confort\u003c\/div\u003e\n    \u003ch2 class=\"dg-title\"\u003eMás comodidad para cada viaje\u003c\/h2\u003e\n    \u003cp class=\"dg-body\"\u003eTu perro viaja más cómodo, estable y relajado gracias a una base firme que evita deslizamientos e incomodidad.\u003c\/p\u003e\n    \u003cdiv class=\"dg-media\"\u003e\n      \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1029\/8235\/3233\/files\/deuna.gif?v=1777658785\" alt=\"Dargonim en acción\"\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"dg-section\"\u003e\n    \u003cdiv class=\"dg-label\"\u003e03 — Versatilidad\u003c\/div\u003e\n    \u003ch2 class=\"dg-title\"\u003eConvertible a asiento individual en segundos\u003c\/h2\u003e\n    \u003cp class=\"dg-body\"\u003eCambia fácilmente de funda completa a medio asiento para dejar espacio a otro pasajero, un niño o lo que necesites en cada viaje.\u003c\/p\u003e\n    \u003cdiv class=\"dg-media dg-media-shadow\"\u003e\n      \u003cvideo muted loop playsinline preload=\"none\" class=\"dg-lazy-video\"\u003e\u003csource src=\"https:\/\/cdn.shopify.com\/videos\/c\/o\/v\/88a9316e30fc4069b22e3b6c44a068f2.mp4\" type=\"video\/mp4\"\u003e\u003c\/video\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"dg-section\"\u003e\n    \u003cdiv class=\"dg-label\"\u003e04 — Protección\u003c\/div\u003e\n    \u003ch2 class=\"dg-title\"\u003eOlvídate de pelos y escapes entre asientos\u003c\/h2\u003e\n    \u003cp class=\"dg-body\"\u003eProtege tu coche de suciedad y evita que tu mascota se cuele hacia delante gracias a una cobertura completa y segura en cada trayecto.\u003c\/p\u003e\n    \u003cdiv class=\"dg-media dg-media-shadow\"\u003e\n      \u003cvideo muted loop playsinline preload=\"none\" class=\"dg-lazy-video\"\u003e\u003csource src=\"https:\/\/cdn.shopify.com\/videos\/c\/o\/v\/4d36e43a7516401c9cd0ecad4c2a257b.mov\" type=\"video\/mp4\"\u003e\u003c\/video\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"dg-section\"\u003e\n    \u003cdiv class=\"dg-label\"\u003e05 — Diseño\u003c\/div\u003e\n    \u003ch2 class=\"dg-title\"\u003eDiseño plegable tipo maletín\u003c\/h2\u003e\n    \u003cp class=\"dg-body\"\u003eGuarda y transporta la funda fácilmente gracias a su formato compacto y plegable.\u003c\/p\u003e\n    \u003cdiv class=\"dg-media\"\u003e\n      \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1029\/8235\/3233\/files\/xx.webp?v=1780659945\" alt=\"Funda Dargonim plegada\"\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"dg-reviews\"\u003e\n    \u003cdiv class=\"dg-reviews-header\"\u003e\n      \u003cdiv class=\"dg-label\"\u003eComunidad Dargonim\u003c\/div\u003e\n      \u003ch2 class=\"dg-title\" style=\"margin-bottom:4px;\"\u003eLo que dicen nuestros clientes\u003c\/h2\u003e\n      \u003cp class=\"dg-body\" style=\"font-size:13px;\"\u003eMás de 10.000 familias ya viajan con la Funda Dargonim.\u003c\/p\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"dg-carousel-track-wrap\"\u003e\n      \u003cdiv class=\"dg-carousel-track\" id=\"dg-track\"\u003e\n        \u003cdiv class=\"dg-carousel-slide\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1029\/8235\/3233\/files\/IMG_4874.jpg?v=1780768468\" alt=\"Cliente Dargonim\"\u003e\u003c\/div\u003e\n        \u003cdiv class=\"dg-carousel-slide\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1029\/8235\/3233\/files\/IMG_4882.jpg?v=1780768468\" alt=\"Cliente Dargonim\"\u003e\u003c\/div\u003e\n        \u003cdiv class=\"dg-carousel-slide\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1029\/8235\/3233\/files\/IMG_4880.jpg?v=1780768468\" alt=\"Cliente Dargonim\"\u003e\u003c\/div\u003e\n        \u003cdiv class=\"dg-carousel-slide\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1029\/8235\/3233\/files\/IMG_4868.jpg?v=1780768468\" alt=\"Cliente Dargonim\"\u003e\u003c\/div\u003e\n        \u003cdiv class=\"dg-carousel-slide\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1029\/8235\/3233\/files\/IMG_4867.jpg?v=1780768468\" alt=\"Cliente Dargonim\"\u003e\u003c\/div\u003e\n        \u003cdiv class=\"dg-carousel-slide\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1029\/8235\/3233\/files\/IMG_4871.jpg?v=1780768468\" alt=\"Cliente Dargonim\"\u003e\u003c\/div\u003e\n        \u003cdiv class=\"dg-carousel-slide\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1029\/8235\/3233\/files\/IMG_4895.jpg?v=1780768468\" alt=\"Cliente Dargonim\"\u003e\u003c\/div\u003e\n        \u003cdiv class=\"dg-carousel-slide\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1029\/8235\/3233\/files\/IMG_4894.jpg?v=1780768468\" alt=\"Cliente Dargonim\"\u003e\u003c\/div\u003e\n        \u003cdiv class=\"dg-carousel-slide\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1029\/8235\/3233\/files\/IMG_4893.jpg?v=1780768468\" alt=\"Cliente Dargonim\"\u003e\u003c\/div\u003e\n        \u003cdiv class=\"dg-carousel-slide\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1029\/8235\/3233\/files\/IMG_4878.jpg?v=1780768468\" alt=\"Cliente Dargonim\"\u003e\u003c\/div\u003e\n        \u003cdiv class=\"dg-carousel-slide\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1029\/8235\/3233\/files\/IMG_4881.jpg?v=1780768468\" alt=\"Cliente Dargonim\"\u003e\u003c\/div\u003e\n        \u003cdiv class=\"dg-carousel-slide\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1029\/8235\/3233\/files\/IMG_4904.jpg?v=1780768467\" alt=\"Cliente Dargonim\"\u003e\u003c\/div\u003e\n        \u003cdiv class=\"dg-carousel-slide\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1029\/8235\/3233\/files\/IMG_4903.jpg?v=1780768467\" alt=\"Cliente Dargonim\"\u003e\u003c\/div\u003e\n        \u003cdiv class=\"dg-carousel-slide\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1029\/8235\/3233\/files\/IMG_4888.jpg?v=1780768468\" alt=\"Cliente Dargonim\"\u003e\u003c\/div\u003e\n        \u003cdiv class=\"dg-carousel-slide\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1029\/8235\/3233\/files\/IMG_4905.jpg?v=1780768469\" alt=\"Cliente Dargonim\"\u003e\u003c\/div\u003e\n        \u003cdiv class=\"dg-carousel-slide\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1029\/8235\/3233\/files\/IMG_4892.jpg?v=1780768467\" alt=\"Cliente Dargonim\"\u003e\u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"dg-carousel-nav\" id=\"dg-dots\"\u003e\u003c\/div\u003e\n    \u003cp class=\"dg-hint\"\u003e← Desliza para ver más\u003c\/p\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cscript\u003e\n(function() {\n  \/\/ ════════════════════════════════════════════════════════\n  \/\/ FIX TSP BEFORE\/AFTER SLIDER\n  \/\/ ════════════════════════════════════════════════════════\n  var _tSX = 0, _tSY = 0, _tDir = null;\n\n  window.addEventListener('touchstart', function(e) {\n    _tSX = e.touches[0].clientX;\n    _tSY = e.touches[0].clientY;\n    _tDir = null;\n  }, { capture: true, passive: true });\n\n  window.addEventListener('touchmove', function(e) {\n    if (_tDir === null) {\n      var dx = Math.abs(e.touches[0].clientX - _tSX);\n      var dy = Math.abs(e.touches[0].clientY - _tSY);\n      if (dx \u003e 5 || dy \u003e 5) _tDir = dy \u003e dx ? 'v' : 'h';\n    }\n    if (_tDir === 'v') e.stopImmediatePropagation();\n  }, { capture: true });\n\n  var _origAEL = EventTarget.prototype.addEventListener;\n  EventTarget.prototype.addEventListener = function(type, fn, opts) {\n    if (type === 'touchmove' \u0026\u0026 this !== window \u0026\u0026 this !== document) {\n      var _self = this;\n      var proxy = function(e) {\n        var pt = e.touches[0];\n        if (_tDir === null) {\n          var dx = Math.abs(pt.clientX - _tSX);\n          var dy = Math.abs(pt.clientY - _tSY);\n          if (dx \u003e 5 || dy \u003e 5) _tDir = dy \u003e dx ? 'v' : 'h';\n        }\n        if (_tDir !== 'v') fn.call(_self, e);\n      };\n      return _origAEL.call(this, type, proxy, opts);\n    }\n    return _origAEL.call(this, type, fn, opts);\n  };\n\n  \/\/ ════════════════════════════════════════════════════════\n  \/\/ LAZY LOADING CON PRECARGA ANTICIPADA\n  \/\/ Observer 1: precarga cuando el video está a 500px de entrar\n  \/\/ Observer 2: reproduce\/pausa cuando es visible en pantalla\n  \/\/ ════════════════════════════════════════════════════════\n  var videos = document.querySelectorAll('.dg-lazy-video');\n\n  if (!('IntersectionObserver' in window)) {\n    \/\/ Fallback navegadores antiguos\n    videos.forEach(function(v) { v.setAttribute('autoplay', ''); v.load(); v.play().catch(function(){}); });\n    return;\n  }\n\n  \/\/ Observer 1 — precarga anticipada (500px antes de entrar en pantalla)\n  var preloadObserver = new IntersectionObserver(function(entries) {\n    entries.forEach(function(entry) {\n      if (entry.isIntersecting) {\n        var video = entry.target;\n        if (video.readyState === 0) {\n          video.preload = 'auto';\n          video.load();\n        }\n        preloadObserver.unobserve(video); \/\/ Solo necesita dispararse una vez\n      }\n    });\n  }, { rootMargin: '500px 0px', threshold: 0 });\n\n  \/\/ Observer 2 — play\/pause al entrar\/salir de pantalla\n  var playObserver = new IntersectionObserver(function(entries) {\n    entries.forEach(function(entry) {\n      var video = entry.target;\n      if (entry.isIntersecting) {\n        video.play().catch(function() {});\n      } else {\n        video.pause();\n      }\n    });\n  }, { threshold: 0.1 });\n\n  videos.forEach(function(v) {\n    preloadObserver.observe(v);\n    playObserver.observe(v);\n  });\n\n  \/\/ ════════════════════════════════════════════════════════\n  \/\/ CARRUSEL DE FOTOS\n  \/\/ ════════════════════════════════════════════════════════\n  var track = document.getElementById('dg-track');\n  var dotsC = document.getElementById('dg-dots');\n  if (!track) return;\n  var slideW = 212;\n  var visCount = Math.max(1, Math.floor(track.parentElement.offsetWidth \/ slideW));\n  var total = track.children.length;\n  var maxIdx = Math.max(0, total - visCount);\n  var cur = 0, iDrag = false, sX = 0, sScroll = 0;\n\n  for (var i = 0; i \u003c= maxIdx; i++) {\n    (function(n) {\n      var d = document.createElement('button');\n      d.className = 'dg-carousel-dot' + (n === 0 ? ' active' : '');\n      d.onclick = function() { go(n); };\n      dotsC.appendChild(d);\n    })(i);\n  }\n\n  function go(n) {\n    cur = Math.max(0, Math.min(n, maxIdx));\n    track.style.transform = 'translateX(-' + cur * slideW + 'px)';\n    [].forEach.call(dotsC.children, function(d, i) {\n      d.classList.toggle('active', i === cur);\n    });\n  }\n\n  track.addEventListener('mousedown', function(e) {\n    iDrag = true; sX = e.pageX; sScroll = cur * slideW;\n    track.style.transition = 'none';\n  });\n  document.addEventListener('mousemove', function(e) {\n    if (!iDrag) return;\n    track.style.transform = 'translateX(-' + Math.max(0, sScroll + sX - e.pageX) + 'px)';\n  });\n  document.addEventListener('mouseup', function(e) {\n    if (!iDrag) return;\n    iDrag = false; track.style.transition = '';\n    go(cur + (sX - e.pageX \u003e 60 ? 1 : sX - e.pageX \u003c -60 ? -1 : 0));\n  });\n\n  track.addEventListener('touchstart', function(e) {\n    sX = e.touches[0].pageX; sScroll = cur * slideW;\n    track.style.transition = 'none';\n  }, { passive: true });\n  track.addEventListener('touchmove', function(e) {\n    track.style.transform = 'translateX(-' + Math.max(0, sScroll + sX - e.touches[0].pageX) + 'px)';\n  }, { passive: true });\n  track.addEventListener('touchend', function(e) {\n    track.style.transition = '';\n    go(cur + (sX - e.changedTouches[0].pageX \u003e 60 ? 1 : sX - e.changedTouches[0].pageX \u003c -60 ? -1 : 0));\n  });\n\n  setInterval(function() { go(cur \u003e= maxIdx ? 0 : cur + 1); }, 3500);\n})();\n\u003c\/script\u003e","brand":"Dargonim","offers":[{"title":"Funda PRO: Base plana rígida anticaída 69,99€","offer_id":53647675130193,"sku":null,"price":69.99,"currency_code":"EUR","in_stock":true},{"title":"Funda Estándar: Base de tela flexible 39,99€","offer_id":53647675097425,"sku":null,"price":39.99,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1029\/8235\/3233\/files\/foto_principal.webp?v=1780166237","url":"https:\/\/dargonim.com\/products\/funda-coche-perro-base-rigida","provider":"Dargonim","version":"1.0","type":"link"}