{"product_id":"kaiser-power-pack-100","title":"Kaiser Power Pack 100","description":"\u003c!-- ============================================================\n     KAISER POWER PACK 100 — Descripción producto Shopify v3\n     Pega este código en: Producto \u003e Descripción \u003e \u003c \u003e (editor HTML)\n     ============================================================ --\u003e\n\n\u003cstyle\u003e\n  #kpp * { box-sizing: border-box !important; margin: 0 !important; padding: 0 !important; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, sans-serif !important; }\n  #kpp { max-width: 680px; color: #111; }\n\n  \/* ── HERO ── *\/\n  #kpp .kpp-hero {\n    background: #060608 !important;\n    border-radius: 12px !important;\n    padding: 2.5rem 2rem 2rem !important;\n    position: relative !important;\n    overflow: hidden !important;\n    margin-bottom: 0 !important;\n  }\n  #kpp .kpp-hero canvas {\n    position: absolute !important;\n    top: 0 !important; left: 0 !important;\n    width: 100% !important; height: 100% !important;\n    pointer-events: none !important;\n    opacity: 0.9 !important;\n  }\n  #kpp .kpp-hero-content {\n    position: relative !important;\n    z-index: 2 !important;\n  }\n  #kpp .kpp-hero-badge {\n    display: inline-block !important;\n    border: 1px solid rgba(255,255,255,0.18) !important;\n    color: rgba(255,255,255,0.5) !important;\n    font-size: 10px !important;\n    letter-spacing: 0.14em !important;\n    text-transform: uppercase !important;\n    padding: 4px 12px !important;\n    border-radius: 2px !important;\n    margin-bottom: 1.2rem !important;\n  }\n  #kpp .kpp-hero-title {\n    font-size: 34px !important;\n    font-weight: 700 !important;\n    color: #ffffff !important;\n    line-height: 1.1 !important;\n    letter-spacing: -0.02em !important;\n    margin-bottom: 4px !important;\n  }\n  #kpp .kpp-hero-sub {\n    font-size: 18px !important;\n    font-weight: 400 !important;\n    color: rgba(255,255,255,0.32) !important;\n    margin-bottom: 1rem !important;\n  }\n  #kpp .kpp-hero-tagline {\n    font-size: 14px !important;\n    color: rgba(255,255,255,0.48) !important;\n    line-height: 1.7 !important;\n    max-width: 440px !important;\n    margin-bottom: 1.5rem !important;\n  }\n  #kpp .kpp-hero-line {\n    width: 36px !important; height: 2px !important;\n    background: #fff !important;\n    border-radius: 0 !important;\n    animation: kppGrow 1.2s cubic-bezier(.4,0,.2,1) forwards !important;\n    transform-origin: left !important;\n  }\n  @keyframes kppGrow {\n    from { transform: scaleX(0); }\n    to   { transform: scaleX(1); }\n  }\n\n  \/* ── TICKER ── *\/\n  #kpp .kpp-ticker {\n    background: #111111 !important;\n    overflow: hidden !important;\n    padding: 11px 0 !important;\n    margin-bottom: 2rem !important;\n  }\n  #kpp .kpp-ticker-track {\n    display: flex !important;\n    flex-wrap: nowrap !important;\n    white-space: nowrap !important;\n    width: max-content !important;\n    animation: kppTicker 26s linear infinite !important;\n  }\n  #kpp .kpp-ticker-track span {\n    font-size: 10px !important;\n    letter-spacing: 0.14em !important;\n    text-transform: uppercase !important;\n    color: #ffffff !important;\n    padding: 0 18px !important;\n    white-space: nowrap !important;\n    display: inline-block !important;\n  }\n  #kpp .kpp-ticker-track span.sep {\n    color: rgba(255,255,255,0.22) !important;\n    padding: 0 !important;\n  }\n  @keyframes kppTicker {\n    from { transform: translateX(0); }\n    to   { transform: translateX(-50%); }\n  }\n\n  \/* ── AHORRO ── *\/\n  #kpp .kpp-saving {\n    display: flex !important;\n    align-items: center !important;\n    gap: 14px !important;\n    background: #f5f5f5 !important;\n    border-left: 3px solid #111 !important;\n    border-radius: 0 8px 8px 0 !important;\n    padding: 14px 18px !important;\n    margin-bottom: 1.75rem !important;\n  }\n  #kpp .kpp-saving-label {\n    font-size: 11px !important;\n    text-transform: uppercase !important;\n    letter-spacing: 0.1em !important;\n    color: #888 !important;\n    margin-bottom: 2px !important;\n  }\n  #kpp .kpp-saving-amount {\n    font-size: 22px !important;\n    font-weight: 700 !important;\n    color: #111 !important;\n  }\n  #kpp .kpp-saving-desc {\n    font-size: 13px !important;\n    color: #555 !important;\n    line-height: 1.5 !important;\n  }\n\n  \/* ── TAGLINE ── *\/\n  #kpp .kpp-tagline {\n    font-size: 15px !important;\n    color: #555 !important;\n    line-height: 1.75 !important;\n    margin-bottom: 1.75rem !important;\n  }\n\n  \/* ── DIVIDER ── *\/\n  #kpp .kpp-divider {\n    border: none !important;\n    border-top: 1px solid #e5e5e5 !important;\n    margin: 1.5rem 0 !important;\n    background: none !important;\n  }\n\n  \/* ── SPECS GRID ── *\/\n  #kpp .kpp-specs {\n    display: grid !important;\n    grid-template-columns: repeat(4, 1fr) !important;\n    gap: 10px !important;\n    margin-bottom: 1.75rem !important;\n  }\n  @media (max-width: 540px) {\n    #kpp .kpp-specs { grid-template-columns: repeat(2, 1fr) !important; }\n  }\n  #kpp .kpp-spec {\n    background: #f5f5f5 !important;\n    border-radius: 8px !important;\n    padding: 14px !important;\n    transition: background 0.18s !important;\n  }\n  #kpp .kpp-spec:hover { background: #ebebeb !important; }\n  #kpp .kpp-spec-icon { font-size: 20px !important; margin-bottom: 8px !important; display: block !important; }\n  #kpp .kpp-spec-label {\n    font-size: 10px !important;\n    color: #999 !important;\n    text-transform: uppercase !important;\n    letter-spacing: 0.1em !important;\n    margin-bottom: 5px !important;\n    display: block !important;\n  }\n  #kpp .kpp-spec-num {\n    font-size: 26px !important;\n    font-weight: 700 !important;\n    color: #111 !important;\n    line-height: 1 !important;\n    display: block !important;\n  }\n  #kpp .kpp-spec-unit {\n    font-size: 11px !important;\n    color: #999 !important;\n    margin-top: 3px !important;\n    display: block !important;\n  }\n  #kpp .kpp-spec-val {\n    font-size: 13px !important;\n    font-weight: 600 !important;\n    color: #111 !important;\n    line-height: 1.4 !important;\n    display: block !important;\n  }\n\n  \/* ── FEATURES ── *\/\n  #kpp .kpp-section-title {\n    font-size: 11px !important;\n    font-weight: 600 !important;\n    text-transform: uppercase !important;\n    letter-spacing: 0.12em !important;\n    color: #999 !important;\n    margin-bottom: 1rem !important;\n    display: block !important;\n  }\n  #kpp .kpp-features { margin-bottom: 1.75rem !important; }\n  #kpp .kpp-feat {\n    display: flex !important;\n    gap: 12px !important;\n    align-items: flex-start !important;\n    margin-bottom: 14px !important;\n  }\n  #kpp .kpp-feat-dot {\n    width: 6px !important; height: 6px !important;\n    background: #111 !important;\n    border-radius: 50% !important;\n    margin-top: 6px !important;\n    flex-shrink: 0 !important;\n  }\n  #kpp .kpp-feat-name {\n    font-size: 14px !important;\n    font-weight: 600 !important;\n    color: #111 !important;\n    margin-bottom: 3px !important;\n    display: block !important;\n  }\n  #kpp .kpp-feat-desc {\n    font-size: 13px !important;\n    color: #666 !important;\n    line-height: 1.6 !important;\n  }\n\n  \/* ── WHY BOX ── *\/\n  #kpp .kpp-why {\n    background: #f5f5f5 !important;\n    border-radius: 8px !important;\n    padding: 1.25rem 1.5rem !important;\n    margin-bottom: 1.75rem !important;\n  }\n  #kpp .kpp-why p {\n    font-size: 14px !important;\n    color: #444 !important;\n    line-height: 1.8 !important;\n  }\n\n  \/* ── TABLE ── *\/\n  #kpp table.kpp-table {\n    width: 100% !important;\n    border-collapse: collapse !important;\n    margin-bottom: 1.75rem !important;\n    font-size: 14px !important;\n  }\n  #kpp table.kpp-table tr { border-bottom: 1px solid #e8e8e8 !important; }\n  #kpp table.kpp-table td { padding: 10px 0 !important; }\n  #kpp table.kpp-table td:first-child { color: #999 !important; width: 44% !important; }\n  #kpp table.kpp-table td:last-child { font-weight: 500 !important; color: #111 !important; }\n\n  \/* ── FOOTER ── *\/\n  #kpp .kpp-footer {\n    font-size: 13px !important;\n    color: #666 !important;\n    line-height: 1.75 !important;\n    border-top: 1px solid #e5e5e5 !important;\n    padding-top: 1.25rem !important;\n  }\n  #kpp .kpp-footer strong { color: #111 !important; }\n  #kpp .kpp-checks {\n    margin-top: 10px !important;\n    display: flex !important;\n    gap: 16px !important;\n    flex-wrap: wrap !important;\n  }\n  #kpp .kpp-checks span {\n    font-size: 12px !important;\n    color: #444 !important;\n    display: flex !important;\n    align-items: center !important;\n    gap: 5px !important;\n  }\n  #kpp .kpp-checks span::before {\n    content: '✔' !important;\n    font-size: 11px !important;\n    color: #111 !important;\n  }\n\u003c\/style\u003e\n\n\u003cdiv id=\"kpp\"\u003e\n\n  \u003c!-- 1. HERO BANNER --\u003e\n  \u003cdiv class=\"kpp-hero\"\u003e\n    \u003ccanvas id=\"kppLightning\"\u003e\u003c\/canvas\u003e\n    \u003cdiv class=\"kpp-hero-content\"\u003e\n      \u003cdiv class=\"kpp-hero-badge\"\u003eFabricación artesanal · España\u003c\/div\u003e\n      \u003cdiv class=\"kpp-hero-title\"\u003eKaiser Power Pack 100\u003c\/div\u003e\n      \u003cdiv class=\"kpp-hero-sub\"\u003eMaletín LiFePO4 · 100Ah\u003c\/div\u003e\n      \u003cp class=\"kpp-hero-tagline\"\u003eEnergía donde otros se quedan sin batería. Todo lo que necesitas en un maletín robusto y listo para el agua.\u003c\/p\u003e\n      \u003cdiv class=\"kpp-hero-line\"\u003e\u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003c!-- 2. TICKER --\u003e\n  \u003cdiv class=\"kpp-ticker\"\u003e\n    \u003cdiv class=\"kpp-ticker-track\"\u003e\n      \u003cspan\u003eStock limitado\u003c\/span\u003e\u003cspan class=\"sep\"\u003e·\u003c\/span\u003e\n      \u003cspan\u003eFabricación artesanal\u003c\/span\u003e\u003cspan class=\"sep\"\u003e·\u003c\/span\u003e\n      \u003cspan\u003eEnvío con seguimiento\u003c\/span\u003e\u003cspan class=\"sep\"\u003e·\u003c\/span\u003e\n      \u003cspan\u003eGarantía incluida\u003c\/span\u003e\u003cspan class=\"sep\"\u003e·\u003c\/span\u003e\n      \u003cspan\u003eCada unidad revisada a mano\u003c\/span\u003e\u003cspan class=\"sep\"\u003e·\u003c\/span\u003e\n      \u003cspan\u003eTecnología LiFePO4\u003c\/span\u003e\u003cspan class=\"sep\"\u003e·\u003c\/span\u003e\n      \u003cspan\u003e+2.000 ciclos de carga\u003c\/span\u003e\u003cspan class=\"sep\"\u003e·\u003c\/span\u003e\n      \u003cspan\u003eHecho en España\u003c\/span\u003e\u003cspan class=\"sep\"\u003e·\u003c\/span\u003e\n      \u003cspan\u003eStock limitado\u003c\/span\u003e\u003cspan class=\"sep\"\u003e·\u003c\/span\u003e\n      \u003cspan\u003eFabricación artesanal\u003c\/span\u003e\u003cspan class=\"sep\"\u003e·\u003c\/span\u003e\n      \u003cspan\u003eEnvío con seguimiento\u003c\/span\u003e\u003cspan class=\"sep\"\u003e·\u003c\/span\u003e\n      \u003cspan\u003eGarantía incluida\u003c\/span\u003e\u003cspan class=\"sep\"\u003e·\u003c\/span\u003e\n      \u003cspan\u003eCada unidad revisada a mano\u003c\/span\u003e\u003cspan class=\"sep\"\u003e·\u003c\/span\u003e\n      \u003cspan\u003eTecnología LiFePO4\u003c\/span\u003e\u003cspan class=\"sep\"\u003e·\u003c\/span\u003e\n      \u003cspan\u003e+2.000 ciclos de carga\u003c\/span\u003e\u003cspan class=\"sep\"\u003e·\u003c\/span\u003e\n      \u003cspan\u003eHecho en España\u003c\/span\u003e\u003cspan class=\"sep\"\u003e·\u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003c!-- AHORRO --\u003e\n  \u003cdiv class=\"kpp-saving\"\u003e\n    \u003cdiv\u003e\n      \u003cdiv class=\"kpp-saving-label\"\u003ePrecio de lanzamiento\u003c\/div\u003e\n      \u003cdiv class=\"kpp-saving-amount\"\u003eAhorras 150€\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"kpp-saving-desc\"\u003e\n      Precio habitual 600€ · Precio de lanzamiento \u003cstrong\u003e449,90€\u003c\/strong\u003e.\u003cbr\u003e\n      Stock muy limitado — fabricación bajo demanda.\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003c!-- TAGLINE --\u003e\n  \u003cp class=\"kpp-tagline\"\u003eCuando estás en el agua o en el monte, la energía no puede fallarte. Sin complicaciones. Sin adaptadores raros. Todo lo que necesitas ya está dentro.\u003c\/p\u003e\n\n  \u003chr class=\"kpp-divider\"\u003e\n\n  \u003c!-- 3. TARJETAS CON CONTADOR --\u003e\n  \u003cspan class=\"kpp-section-title\"\u003eEspecificaciones de un vistazo\u003c\/span\u003e\n  \u003cdiv class=\"kpp-specs\"\u003e\n    \u003cdiv class=\"kpp-spec\"\u003e\n      \u003cspan class=\"kpp-spec-icon\"\u003e⚡\u003c\/span\u003e\n      \u003cspan class=\"kpp-spec-label\"\u003eCapacidad\u003c\/span\u003e\n      \u003cspan class=\"kpp-spec-num\" id=\"kppN1\"\u003e0Ah\u003c\/span\u003e\n      \u003cspan class=\"kpp-spec-unit\"\u003eLiFePO4\u003c\/span\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"kpp-spec\"\u003e\n      \u003cspan class=\"kpp-spec-icon\"\u003e📱\u003c\/span\u003e\n      \u003cspan class=\"kpp-spec-label\"\u003eCarga USB\u003c\/span\u003e\n      \u003cspan class=\"kpp-spec-num\" id=\"kppN2\"\u003e0W\u003c\/span\u003e\n      \u003cspan class=\"kpp-spec-unit\"\u003eSalida 5V\u003c\/span\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"kpp-spec\"\u003e\n      \u003cspan class=\"kpp-spec-icon\"\u003e🔄\u003c\/span\u003e\n      \u003cspan class=\"kpp-spec-label\"\u003eCiclos\u003c\/span\u003e\n      \u003cspan class=\"kpp-spec-num\" id=\"kppN3\"\u003e0\u003c\/span\u003e\n      \u003cspan class=\"kpp-spec-unit\"\u003eVoltímetro digital\u003c\/span\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"kpp-spec\"\u003e\n      \u003cspan class=\"kpp-spec-icon\"\u003e🔋\u003c\/span\u003e\n      \u003cspan class=\"kpp-spec-label\"\u003eSalidas\u003c\/span\u003e\n      \u003cspan class=\"kpp-spec-val\"\u003eAnderson\u003cbr\u003e12V directas\u003cbr\u003eBornes\u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003c!-- QUÉ INCLUYE --\u003e\n  \u003cspan class=\"kpp-section-title\"\u003e¿Qué incluye?\u003c\/span\u003e\n  \u003cdiv class=\"kpp-features\"\u003e\n    \u003cdiv class=\"kpp-feat\"\u003e\n      \u003cdiv class=\"kpp-feat-dot\"\u003e\u003c\/div\u003e\n      \u003cdiv\u003e\n        \u003cspan class=\"kpp-feat-name\"\u003eVoltímetro digital integrado\u003c\/span\u003e\n        \u003cspan class=\"kpp-feat-desc\"\u003eSabes en todo momento cuánta energía te queda. Sin sorpresas cuando más lo necesitas.\u003c\/span\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"kpp-feat\"\u003e\n      \u003cdiv class=\"kpp-feat-dot\"\u003e\u003c\/div\u003e\n      \u003cdiv\u003e\n        \u003cspan class=\"kpp-feat-name\"\u003eSalida USB 5V · 30W — carga rápida integrada\u003c\/span\u003e\n        \u003cspan class=\"kpp-feat-desc\"\u003eMóvil, linterna frontal, cámara de acción, receptor de alarmas — todo cargado directamente desde el maletín. Sin buscar adaptadores, sin depender de un enchufe. 30W son suficientes para cargar tu teléfono de 0 a 100% varias veces con una sola carga del Power Pack.\u003c\/span\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"kpp-feat\"\u003e\n      \u003cdiv class=\"kpp-feat-dot\"\u003e\u003c\/div\u003e\n      \u003cdiv\u003e\n        \u003cspan class=\"kpp-feat-name\"\u003eClavija Anderson\u003c\/span\u003e\n        \u003cspan class=\"kpp-feat-desc\"\u003eConexión rápida y segura para cargadores solares, de coche o accesorios de alta corriente. La favorita de los instaladores profesionales.\u003c\/span\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"kpp-feat\"\u003e\n      \u003cdiv class=\"kpp-feat-dot\"\u003e\u003c\/div\u003e\n      \u003cdiv\u003e\n        \u003cspan class=\"kpp-feat-name\"\u003eTomas 12V directas\u003c\/span\u003e\n        \u003cspan class=\"kpp-feat-desc\"\u003eLas de toda la vida. Para nevera portátil, inflador, lámparas, bombas de cebo vivo — cualquier accesorio 12V estándar.\u003c\/span\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"kpp-feat\"\u003e\n      \u003cdiv class=\"kpp-feat-dot\"\u003e\u003c\/div\u003e\n      \u003cdiv\u003e\n        \u003cspan class=\"kpp-feat-name\"\u003eBornes de batería\u003c\/span\u003e\n        \u003cspan class=\"kpp-feat-desc\"\u003eConexión directa sin intermediarios. Perfecta para instalaciones solares o carga desde panel sin perder eficiencia.\u003c\/span\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003chr class=\"kpp-divider\"\u003e\n\n  \u003c!-- POR QUÉ LIFEPO4 --\u003e\n  \u003cspan class=\"kpp-section-title\"\u003e¿Por qué LiFePO4 y no plomo?\u003c\/span\u003e\n  \u003cdiv class=\"kpp-why\"\u003e\n    \u003cp\u003ePorque no tiene sentido cargar con el peso y los problemas de una batería de plomo en 2025. La química LiFePO4 aguanta más de 2.000 ciclos de carga, no tiene efecto memoria, es estable a temperaturas extremas y no suelta gases. La misma tecnología que usan los sistemas solares profesionales, ahora en un maletín que cabe en el maletero.\u003c\/p\u003e\n  \u003c\/div\u003e\n\n  \u003c!-- ESPECIFICACIONES --\u003e\n  \u003cspan class=\"kpp-section-title\"\u003eEspecificaciones técnicas\u003c\/span\u003e\n  \u003ctable class=\"kpp-table\"\u003e\n    \u003ctr\u003e\n\u003ctd\u003eCapacidad\u003c\/td\u003e\n\u003ctd\u003e100 Ah\u003c\/td\u003e\n\u003c\/tr\u003e\n    \u003ctr\u003e\n\u003ctd\u003eQuímica\u003c\/td\u003e\n\u003ctd\u003eLiFePO4 (litio ferrofosfato)\u003c\/td\u003e\n\u003c\/tr\u003e\n    \u003ctr\u003e\n\u003ctd\u003eSalidas\u003c\/td\u003e\n\u003ctd\u003eAnderson · 12V directas · Bornes · USB 5V 30W\u003c\/td\u003e\n\u003c\/tr\u003e\n    \u003ctr\u003e\n\u003ctd\u003eControl\u003c\/td\u003e\n\u003ctd\u003eVoltímetro digital en tiempo real\u003c\/td\u003e\n\u003c\/tr\u003e\n    \u003ctr\u003e\n\u003ctd\u003eCiclos de carga\u003c\/td\u003e\n\u003ctd\u003e+2.000\u003c\/td\u003e\n\u003c\/tr\u003e\n    \u003ctr\u003e\n\u003ctd\u003eFabricación\u003c\/td\u003e\n\u003ctd\u003eArtesanal, España\u003c\/td\u003e\n\u003c\/tr\u003e\n  \u003c\/table\u003e\n\n  \u003c!-- PIE --\u003e\n  \u003cdiv class=\"kpp-footer\"\u003e\n    \u003cstrong\u003eFabricado por un especialista, vendido con garantía.\u003c\/strong\u003e\u003cbr\u003e\n    Este maletín no sale de una cadena de montaje. Lo fabrica un técnico con experiencia en instalaciones de energía, con componentes seleccionados y revisados uno a uno. Cada unidad se prueba antes de salir.\n    \u003cdiv class=\"kpp-checks\"\u003e\n      \u003cspan\u003eEnvío con seguimiento\u003c\/span\u003e\n      \u003cspan\u003eGarantía incluida\u003c\/span\u003e\n      \u003cspan\u003eStock limitado\u003c\/span\u003e\n      \u003cspan\u003e30 días de devolución\u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n\u003c\/div\u003e\n\n\u003cscript\u003e\n(function(){\n  \/* ── LIGHTNING CANVAS ── *\/\n  var canvas = document.getElementById('kppLightning');\n  if (canvas) {\n    var hero = canvas.parentElement;\n    function resizeCanvas() {\n      canvas.width  = hero.offsetWidth;\n      canvas.height = hero.offsetHeight;\n    }\n    resizeCanvas();\n    var ctx = canvas.getContext('2d');\n\n    \/* Genera un rayo recursivo tipo \"arbol electrico\" *\/\n    function bolt(x1, y1, x2, y2, depth, ctx) {\n      if (depth \u003c= 0) return;\n      var mx = (x1 + x2) \/ 2 + (Math.random() - 0.5) * (Math.abs(x2 - x1) + Math.abs(y2 - y1)) * 0.4;\n      var my = (y1 + y2) \/ 2 + (Math.random() - 0.5) * (Math.abs(x2 - x1) + Math.abs(y2 - y1)) * 0.4;\n      ctx.beginPath();\n      ctx.moveTo(x1, y1);\n      ctx.lineTo(mx, my);\n      ctx.lineTo(x2, y2);\n      ctx.stroke();\n      if (Math.random() \u003c 0.45 \u0026\u0026 depth \u003e 1) {\n        var bx = mx + (Math.random() - 0.5) * 80;\n        var by = my + Math.random() * 60;\n        bolt(mx, my, bx, by, depth - 2, ctx);\n      }\n      bolt(x1, y1, mx, my, depth - 1, ctx);\n      bolt(mx, my, x2, y2, depth - 1, ctx);\n    }\n\n    function drawFrame() {\n      ctx.clearRect(0, 0, canvas.width, canvas.height);\n      var w = canvas.width, h = canvas.height;\n\n      \/* Rayos principales: de arriba a abajo y laterales *\/\n      var bolts = [\n        [Math.random() * w * 0.6 + w * 0.2, 0,   Math.random() * w * 0.4 + w * 0.3, h],\n        [0, Math.random() * h * 0.5,          w * 0.4 + Math.random() * w * 0.2, Math.random() * h],\n        [w, Math.random() * h * 0.5,          w * 0.4 + Math.random() * w * 0.2, Math.random() * h]\n      ];\n\n      bolts.forEach(function(b, idx) {\n        \/* Glow exterior azul-blanco *\/\n        ctx.shadowBlur = 18;\n        ctx.shadowColor = idx === 0 ? 'rgba(120,180,255,0.9)' : 'rgba(180,220,255,0.7)';\n        ctx.strokeStyle = idx === 0 ? 'rgba(160,210,255,0.25)' : 'rgba(160,210,255,0.12)';\n        ctx.lineWidth = idx === 0 ? 3 : 2;\n        bolt(b[0], b[1], b[2], b[3], 5, ctx);\n\n        \/* Core blanco brillante *\/\n        ctx.shadowBlur = 6;\n        ctx.shadowColor = 'rgba(255,255,255,1)';\n        ctx.strokeStyle = idx === 0 ? 'rgba(255,255,255,0.9)' : 'rgba(255,255,255,0.5)';\n        ctx.lineWidth = idx === 0 ? 1 : 0.5;\n        bolt(b[0], b[1], b[2], b[3], 4, ctx);\n      });\n    }\n\n    \/* Parpadeo realista: flash rápido + pausa larga *\/\n    function flashCycle() {\n      var flashes = Math.floor(Math.random() * 3) + 1;\n      var delay = 0;\n      for (var i = 0; i \u003c flashes; i++) {\n        (function(d) {\n          setTimeout(function() { drawFrame(); }, d);\n          setTimeout(function() { ctx.clearRect(0, 0, canvas.width, canvas.height); }, d + 60 + Math.random() * 60);\n        })(delay);\n        delay += 100 + Math.random() * 120;\n      }\n      \/* Pausa entre tormentas: 0.8s - 2.5s *\/\n      setTimeout(flashCycle, delay + 800 + Math.random() * 1700);\n    }\n\n    setTimeout(flashCycle, 400);\n    window.addEventListener('resize', resizeCanvas);\n  }\n})();\n\n(function(){\n  var configs = [\n    { id: 'kppN1', target: 100,  suffix: 'Ah', prefix: '',  start: '0Ah'   },\n    { id: 'kppN2', target: 30,   suffix: 'W',  prefix: '',  start: '0W'    },\n    { id: 'kppN3', target: 2000, suffix: '',   prefix: '+', start: '0'     }\n  ];\n\n  function runCounters() {\n    var duration = 1600;\n    var steps = 60;\n    var interval = Math.floor(duration \/ steps);\n    configs.forEach(function(c) {\n      var el = document.getElementById(c.id);\n      if (!el) return;\n      el.textContent = c.start;\n      var inc = c.target \/ steps;\n      var cur = 0;\n      var i = 0;\n      var iv = setInterval(function() {\n        i++;\n        cur += inc;\n        if (i \u003e= steps) { cur = c.target; clearInterval(iv); }\n        var val = Math.round(cur);\n        el.textContent = c.prefix + (val \u003e= 1000 ? val.toLocaleString('es-ES') : val) + c.suffix;\n      }, interval);\n    });\n  }\n\n  \/* Arranca cuando el elemento es visible en pantalla *\/\n  var grid = document.getElementById('kpp');\n  if (!grid) { setTimeout(runCounters, 600); return; }\n\n  if ('IntersectionObserver' in window) {\n    var triggered = false;\n    var obs = new IntersectionObserver(function(entries) {\n      entries.forEach(function(e) {\n        if (e.isIntersecting \u0026\u0026 !triggered) {\n          triggered = true;\n          obs.disconnect();\n          setTimeout(runCounters, 200);\n        }\n      });\n    }, { threshold: 0.15 });\n    obs.observe(grid);\n  } else {\n    setTimeout(runCounters, 800);\n  }\n})();\n\u003c\/script\u003e","brand":"KAISER PRODUCT","offers":[{"title":"Default Title","offer_id":53782296461651,"sku":null,"price":399.9,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1067\/0948\/3859\/files\/Gemini_Generated_Image_kkewy0kkewy0kkew.png?v=1779060902","url":"https:\/\/shop.kaiserproduct.com\/products\/kaiser-power-pack-100","provider":"KAISER PRODUCT","version":"1.0","type":"link"}