{"product_id":"keychain-tote","title":"Eco-Friendly Sizable Keychain Tote","description":"\u003ch1\u003eReusable Mini Keychain Tote Bag – From Keychain to Shopping Bag in Seconds\u003c\/h1\u003e\n\u003cp\u003e\u003cstrong\u003eTransforms from a compact keychain accessory into a full-size shopping tote in seconds.\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003eForget single-use plastic bags. This reusable mini bag clips onto your keys and unfolds instantly to hold all your groceries and daily essentials. When you're done, it folds back down to the size of a smartphone and returns to its place on your keyring.\u003c\/p\u003e\n\u003ch2\u003e\u003cbr\u003e\u003c\/h2\u003e\n\u003ch2\u003eKey Benefits\u003c\/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eAlways with you\u003c\/strong\u003e – Clip it to your keys and take it everywhere without taking up space.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eOpens and folds in seconds\u003c\/strong\u003e – Less than 5 seconds to deploy or pack away.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eSurprising expansion\u003c\/strong\u003e – Expands from a mini keychain to a bag 3 times its folded size.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eUltra lightweight\u003c\/strong\u003e – Weighs less than your mobile phone, you won't even notice it.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eIncredible capacity\u003c\/strong\u003e – Supports up to \u003cstrong\u003e15 kg\u003c\/strong\u003e (33 lbs) of load – much stronger than it looks!\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003ePocket-friendly\u003c\/strong\u003e – Fits in any pocket, even the back pocket of your jeans.\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch2\u003e🌿 Eco-Friendly Commitment\u003c\/h2\u003e\n\u003cp\u003eEvery time you use this bag, you avoid using between \u003cstrong\u003e1 and 5 plastic bags\u003c\/strong\u003e. Small daily actions add up to a big impact. Made from durable, washable, and non-toxic materials, it is designed to last for thousands of uses.\u003c\/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e\u003cem\u003e\"Small habit, big impact.\"\u003c\/em\u003e\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003c\/blockquote\u003e\n\u003cdiv class=\"compare-container\"\u003e\n    \u003cdiv class=\"compare-wrapper\"\u003e\n        \u003c!-- Imagen de la IZQUIERDA: \"DESPUÉS\" (fondo \/ capa inferior) --\u003e\n        \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0692\/0830\/9826\/files\/68499217ba390.r_d.1500-1000_430x.jpg?v=1784287738\" alt=\"Después\" class=\"compare-img compare-img-after\"\u003e\n        \n        \u003c!-- Imagen de la DERECHA: \"ANTES\" (capa superior que se recorta) --\u003e\n        \u003c!-- 🔽 QUITÉ EL \"#\" AL FINAL DE LA URL PARA QUE CARGUE BIEN EN MÓVIL --\u003e\n        \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0692\/0830\/9826\/files\/main-image-1_430x.jpg?v=1784289437\" alt=\"Antes\" class=\"compare-img compare-img-before\"\u003e\n        \n        \u003c!-- Control deslizante (barra vertical + tirador) --\u003e\n        \u003cdiv class=\"compare-handle\"\u003e\n            \u003cdiv class=\"compare-line\"\u003e\u003c\/div\u003e\n            \u003cdiv class=\"compare-knob\"\u003e\n                \u003csvg width=\"22\" height=\"22\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"#1e2a3a\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\n                    \u003cpolyline points=\"8 18 3 12 8 6\"\u003e\u003c\/polyline\u003e\n                    \u003cpolyline points=\"16 18 21 12 16 6\"\u003e\u003c\/polyline\u003e\n                \u003c\/svg\u003e\n            \u003c\/div\u003e\n        \u003c\/div\u003e\n        \n        \u003c!-- Etiquetas flotantes --\u003e\n        \u003cdiv class=\"compare-label compare-label-after\"\u003eBefore\u003c\/div\u003e\n        \u003cdiv class=\"compare-label compare-label-before\"\u003eNow\u003c\/div\u003e\n    \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cstyle\u003e\n.compare-container {\n    max-width: 800px;\n    margin: 30px auto;\n    width: 100%;\n}\n\n.compare-wrapper {\n    position: relative;\n    width: 100%;\n    padding-bottom: 75%; \/* Relación de aspecto 4:3 *\/\n    background: #e5e7eb;\n    overflow: hidden;\n    border-radius: 16px;\n    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);\n    cursor: ew-resize;\n    touch-action: none; \/* Bloquea el scroll al arrastrar en móvil *\/\n    user-select: none;\n    -webkit-user-select: none;\n}\n\n.compare-img {\n    position: absolute;\n    top: 0;\n    left: 0;\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    pointer-events: none; \/* Permite que el clic pase al wrapper *\/\n}\n\n.compare-img-after {\n    z-index: 1;\n}\n\n.compare-img-before {\n    z-index: 2;\n    clip-path: inset(0 0 0 50%);\n    will-change: clip-path;\n    \/* Tu desplazamiento vertical (hacia arriba) *\/\n    transform: translateY(-6%);\n}\n\n.compare-handle {\n    position: absolute;\n    top: 0;\n    left: 50%;\n    width: 3px;\n    height: 100%;\n    background: rgba(255, 255, 255, 0.9);\n    z-index: 10;\n    transform: translateX(-1.5px);\n    pointer-events: none;\n    box-shadow: 0 0 12px rgba(0, 0, 0, 0.1);\n}\n\n.compare-knob {\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    width: 48px;\n    height: 48px;\n    background: white;\n    border-radius: 50%;\n    transform: translate(-50%, -50%);\n    box-shadow: 0 2px 16px rgba(0, 0, 0, 0.18);\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    pointer-events: none;\n    border: 2px solid #ffffff;\n    color: #1e2a3a;\n}\n\n.compare-label {\n    position: absolute;\n    bottom: 24px;\n    padding: 6px 18px;\n    background: rgba(0, 0, 0, 0.55);\n    backdrop-filter: blur(4px);\n    -webkit-backdrop-filter: blur(4px);\n    color: #ffffff;\n    font-size: 13px;\n    font-weight: 700;\n    letter-spacing: 0.6px;\n    border-radius: 40px;\n    z-index: 5;\n    pointer-events: none;\n    text-transform: uppercase;\n    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n}\n\n.compare-label-after {\n    left: 20px;\n}\n\n.compare-label-before {\n    right: 20px;\n}\n\n@media (max-width: 600px) {\n    .compare-wrapper {\n        border-radius: 10px;\n    }\n    .compare-knob {\n        width: 40px;\n        height: 40px;\n    }\n    .compare-knob svg {\n        width: 18px;\n        height: 18px;\n    }\n    .compare-label {\n        font-size: 11px;\n        padding: 4px 14px;\n        bottom: 16px;\n    }\n}\n\u003c\/style\u003e\n\n\u003cscript\u003e\n\/\/ Lógica completamente reescrita para funcionar SIEMPRE, incluso en móviles con carga lenta\n(function() {\n    var wrapper = document.querySelector('.compare-wrapper');\n    if (!wrapper) return;\n\n    var beforeImg = wrapper.querySelector('.compare-img-before');\n    var handle = wrapper.querySelector('.compare-handle');\n    var isDragging = false;\n\n    function updateSlider(clientX) {\n        var rect = wrapper.getBoundingClientRect();\n        var xPos = (clientX - rect.left) \/ rect.width;\n        xPos = Math.max(0, Math.min(1, xPos));\n        var percent = xPos * 100;\n        beforeImg.style.clipPath = 'inset(0 0 0 ' + percent + '%)';\n        handle.style.left = percent + '%';\n    }\n\n    \/\/ --- RATÓN ---\n    wrapper.addEventListener('mousedown', function(e) {\n        isDragging = true;\n        e.preventDefault();\n        updateSlider(e.clientX);\n    });\n\n    window.addEventListener('mousemove', function(e) {\n        if (!isDragging) return;\n        e.preventDefault();\n        updateSlider(e.clientX);\n    });\n\n    window.addEventListener('mouseup', function() {\n        isDragging = false;\n    });\n\n    \/\/ --- TÁCTIL (MÓVIL) ---\n    wrapper.addEventListener('touchstart', function(e) {\n        var touch = e.touches[0];\n        if (touch) {\n            isDragging = true;\n            e.preventDefault(); \/\/ Evita scroll\n            updateSlider(touch.clientX);\n        }\n    }, { passive: false });\n\n    window.addEventListener('touchmove', function(e) {\n        if (!isDragging) return;\n        var touch = e.touches[0];\n        if (touch) {\n            e.preventDefault(); \/\/ Evita scroll\n            updateSlider(touch.clientX);\n        }\n    }, { passive: false });\n\n    window.addEventListener('touchend', function() {\n        isDragging = false;\n    });\n\n    \/\/ --- INICIALIZAR en 50% (con fallback para móvil) ---\n    function initSlider() {\n        var rect = wrapper.getBoundingClientRect();\n        if (rect.width \u003e 0) {\n            updateSlider(rect.left + rect.width * 0.5);\n        } else {\n            \/\/ Si el contenedor aún no tiene tamaño (móvil lento), lo intentamos de nuevo en 100ms\n            setTimeout(function() {\n                var newRect = wrapper.getBoundingClientRect();\n                if (newRect.width \u003e 0) {\n                    updateSlider(newRect.left + newRect.width * 0.5);\n                }\n            }, 150);\n        }\n    }\n\n    initSlider();\n})();\n\u003c\/script\u003e\n\u003ch2\u003eMake the Switch Today\u003c\/h2\u003e\n\u003cp\u003eSay goodbye to plastic and hello to convenience. Click \u003cstrong\u003e\"Add to Cart\"\u003c\/strong\u003e and start carrying your bag with you everywhere.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003e100% secure checkout\u003c\/strong\u003e\u003c\/p\u003e","brand":"My Store","offers":[{"title":"Red","offer_id":44140628639810,"sku":null,"price":20.95,"currency_code":"USD","in_stock":true},{"title":"Beige","offer_id":44140628508738,"sku":null,"price":20.95,"currency_code":"USD","in_stock":true},{"title":"White","offer_id":44140628541506,"sku":null,"price":20.95,"currency_code":"USD","in_stock":true},{"title":"Black","offer_id":44140628574274,"sku":null,"price":20.95,"currency_code":"USD","in_stock":true},{"title":"Brown","offer_id":44140628607042,"sku":null,"price":20.95,"currency_code":"USD","in_stock":true},{"title":"Green","offer_id":44140628672578,"sku":null,"price":20.95,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0692\/0830\/9826\/files\/ChatGPT_Image_17_jul_2026_01_16_10.png?v=1784269003","url":"https:\/\/pockettote.store\/products\/keychain-tote","provider":"Pocket Tote","version":"1.0","type":"link"}