{"id":1249,"date":"2026-07-09T18:36:56","date_gmt":"2026-07-09T18:36:56","guid":{"rendered":"https:\/\/jenvsjen.com\/?page_id=1249"},"modified":"2026-10-01T18:34:49","modified_gmt":"2026-10-01T18:34:49","slug":"accesorios","status":"publish","type":"page","link":"https:\/\/jenvsjen.com\/en\/accesorios\/","title":{"rendered":"Accessories"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"1249\" class=\"elementor elementor-1249\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-3036b5c e-con-full e-flex e-con e-parent\" data-id=\"3036b5c\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-50f9ceb elementor-widget elementor-widget-spacer\" data-id=\"50f9ceb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-fcad1dd elementor-widget elementor-widget-spacer\" data-id=\"fcad1dd\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6caffe6 elementor-widget elementor-widget-html\" data-id=\"6caffe6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<section class=\"jvj-category-page jvj-category-charms\"><section class=\"jvj-animal-vector-strip\"><div class=\"jvj-animal-vector-strip-inner\"><a href=\"#mini-pepa\" class=\"jvj-animal-vector-link\"><span class=\"jvj-animal-vector-icon\"><img decoding=\"async\" src=\"https:\/\/jenvsjen.com\/wp-content\/uploads\/2026\/10\/VECTOR-MINI-PEPA-CHARM.png\" alt=\"Vector Mini Pepa\"><\/span><span class=\"jvj-animal-vector-name\">Mini Pepa<\/span><small>Charm mu\u00f1eca<\/small><\/a><a href=\"#mini-mrs-didi\" class=\"jvj-animal-vector-link\"><span class=\"jvj-animal-vector-icon\"><img decoding=\"async\" src=\"https:\/\/jenvsjen.com\/wp-content\/uploads\/2026\/10\/vECTOR-MINI-DIDI-CHARM.png\" alt=\"Vector Mini Mrs. DIDI\"><\/span><span class=\"jvj-animal-vector-name\">Mini Mrs. DIDI<\/span><small>Charm animalillo<\/small><\/a><\/div><\/section><section class=\"jvj-category-hero\"><div class=\"jvj-category-hero-main\"><img decoding=\"async\" src=\"https:\/\/jenvsjen.com\/wp-content\/uploads\/2026\/09\/Foto-para-poner-como-portada.jpeg\" alt=\"Charms JenVsJen\"><\/div><div class=\"jvj-category-hero-side\"><div class=\"jvj-category-hero-side-image\"><img decoding=\"async\" src=\"https:\/\/jenvsjen.com\/wp-content\/uploads\/2026\/09\/Mini-Pepa-Golden-1.png\" alt=\"Detalle charm JenVsJen\"><\/div><div class=\"jvj-category-story\"><p class=\"jvj-category-eyebrow\">Colecci\u00f3n JenVsJen<\/p><h1>Charms<\/h1><small>Esculturas de autor para llevar contigo<\/small><p>La magia de nuestras ic\u00f3nicas piezas de autor se concentra en un formato miniatura, concebido para aportar arte y sofisticaci\u00f3n a tus objetos de uso diario.<\/p><p>La esencia de nuestro taller se vuelve port\u00e1til en esta peque\u00f1a escultura de autor dise\u00f1ada para habitar tus objetos m\u00e1s cotidianos.<\/p><\/div><\/div><\/section><section class=\"jvj-editorial-break jvj-charms-video-break\"><div class=\"jvj-charms-video-inner\"><div class=\"jvj-charms-video-copy\"><p class=\"jvj-category-eyebrow\">Materia en movimiento<\/p><h3>El taller se vuelve port\u00e1til<\/h3><p>Una peque\u00f1a escultura con alma, creada para vivir contigo.<\/p><\/div><video id=\"jvj-charms-scroll-video\" class=\"jvj-charms-video\" muted playsinline preload=\"metadata\" poster=\"https:\/\/jenvsjen.com\/wp-content\/uploads\/2026\/09\/Foto-para-poner-como-portada.jpeg\"><source src=\"https:\/\/jenvsjen.com\/wp-content\/uploads\/2026\/09\/pikaso-untitled-project-2026-09-18.mp4\" type=\"video\/mp4\"><\/video><\/div><\/section><section id=\"mini-pepa\" class=\"jvj-family-section jvj-family-titi\"><div class=\"jvj-family-heading\"><span class=\"jvj-family-number\">01<\/span><p class=\"jvj-category-eyebrow\">Familia JenVsJen<\/p><h2>Mini Pepa<\/h2><p class=\"jvj-family-text\"><strong>La miniatura de autor con identidad propia.<\/strong><\/p><p class=\"jvj-family-text\">La magia de nuestras ic\u00f3nicas piezas de autor se concentra en un formato miniatura, concebido para aportar arte y sofisticaci\u00f3n a tus objetos de uso diario. Mini Pepa se presenta como un refinado charm colgante y llavero que traslada el prestigioso saber hacer marroquinero de Ubrique a un plano de dise\u00f1o consciente, \u00e9tico y circular. Esta peque\u00f1a obra de arte es la r\u00e9plica exacta en miniatura de nuestra gran mu\u00f1eca insignia, conservando intacto su magnetismo original.<\/p><p class=\"jvj-family-text\">Cada una de estas siluetas cobra vida a trav\u00e9s de un proceso artesanal minucioso, utilizando napa premium rescatada de los cortes sobrantes de nuestros bolsos y esculturas mayores. Mediante este ejercicio de supra-reciclaje de lujo, optimizamos la materia prima para otorgar un prop\u00f3sito noble y una nueva dimensi\u00f3n art\u00edstica a una piel excelente. Un amuleto con alma, sostenible y profundamente exclusivo, ideado para acompa\u00f1ar cada uno de tus pasos.<\/p><\/div><div class=\"jvj-family-products-grid\"><article class=\"jvj-family-product-card\" style=\"--jvj-photo-ratio:0.7545454545454545;--jvj-hover-ratio:1.1025163094128612\"><div class=\"jvj-family-product-image-wrapper\"><button type=\"button\" class=\"jvj-family-product-image jvj-product-quickview\" data-product-slug=\"mini-pepa\" aria-label=\"Ver Mini Pepa Golden\"><span class=\"jvj-family-product-badge\">Artesanal<\/span><img decoding=\"async\" class=\"jvj-family-img-main\" src=\"https:\/\/jenvsjen.com\/wp-content\/uploads\/2026\/09\/Mini-Pepa-Golden-1.png\" alt=\"Mini Pepa Golden\"><img decoding=\"async\" class=\"jvj-family-img-hover\" src=\"https:\/\/jenvsjen.com\/wp-content\/uploads\/2026\/09\/Mini-Pepa-Golden-2.jpeg\" alt=\"Mini Pepa Golden vista alternativa\"><\/button><button type=\"button\" class=\"jvj-family-eye-button jvj-product-quickview\" data-product-slug=\"mini-pepa\" aria-label=\"Vista r\u00e1pida de Mini Pepa Golden\" title=\"Vista r\u00e1pida\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M2.5 12s3.5-6 9.5-6 9.5 6 9.5 6-3.5 6-9.5 6-9.5-6-9.5-6Z\"><\/path><circle cx=\"12\" cy=\"12\" r=\"3\"><\/circle><\/svg><\/button><\/div><div class=\"jvj-family-product-info\"><h3>Mini Pepa Golden<\/h3><p>115,00 \u20ac<\/p><\/div><\/article><article class=\"jvj-family-product-card\" style=\"--jvj-photo-ratio:0.7545454545454545;--jvj-hover-ratio:0.7545454545454545\"><div class=\"jvj-family-product-image-wrapper\"><button type=\"button\" class=\"jvj-family-product-image jvj-product-quickview\" data-product-slug=\"mini-pepa\" aria-label=\"Ver Mini Pepa Brown\"><span class=\"jvj-family-product-badge\">Artesanal<\/span><img decoding=\"async\" class=\"jvj-family-img-main\" src=\"https:\/\/jenvsjen.com\/wp-content\/uploads\/2026\/09\/Mini-Pepa-Brown-1.png\" alt=\"Mini Pepa Brown\"><img decoding=\"async\" class=\"jvj-family-img-hover\" src=\"https:\/\/jenvsjen.com\/wp-content\/uploads\/2026\/09\/Mini-Pepa-Brown-2.png\" alt=\"Mini Pepa Brown vista alternativa\"><\/button><button type=\"button\" class=\"jvj-family-eye-button jvj-product-quickview\" data-product-slug=\"mini-pepa\" aria-label=\"Vista r\u00e1pida de Mini Pepa Brown\" title=\"Vista r\u00e1pida\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M2.5 12s3.5-6 9.5-6 9.5 6 9.5 6-3.5 6-9.5 6-9.5-6-9.5-6Z\"><\/path><circle cx=\"12\" cy=\"12\" r=\"3\"><\/circle><\/svg><\/button><\/div><div class=\"jvj-family-product-info\"><h3>Mini Pepa Brown<\/h3><p>115,00 \u20ac<\/p><\/div><\/article><\/div><\/section><section class=\"jvj-editorial-break jvj-bears-editorial-break\"><div class=\"jvj-bears-editorial\"><div class=\"jvj-bears-editorial-main\"><img decoding=\"async\" src=\"https:\/\/jenvsjen.com\/wp-content\/uploads\/2026\/09\/Mini-Pepa-Golden-3.png\" alt=\"Mini Pepa editorial\"><\/div><div class=\"jvj-bears-editorial-stack\"><div class=\"jvj-bears-editorial-copy\"><p class=\"jvj-category-eyebrow\">Mini Pepa en detalle<\/p><h3>Magnetismo en miniatura<\/h3><p>Cada silueta cobra vida mediante un proceso artesanal minucioso, siguiendo la filosof\u00eda slow fashion y el legado de la artesan\u00eda de lujo tradicional.<\/p><\/div><div class=\"jvj-bears-editorial-small\"><img decoding=\"async\" src=\"https:\/\/jenvsjen.com\/wp-content\/uploads\/2026\/09\/Mini-Pepa-Brown-4.jpeg\" alt=\"Detalle Mini Pepa Brown\"><\/div><\/div><\/div><\/section><section id=\"mini-mrs-didi\" class=\"jvj-family-section jvj-family-didi\"><div class=\"jvj-family-heading\"><span class=\"jvj-family-number\">02<\/span><p class=\"jvj-category-eyebrow\">Familia JenVsJen<\/p><h2>Mini Mrs. DIDI<\/h2><p class=\"jvj-family-text\"><strong>El amuleto port\u00e1til del bestiario.<\/strong><\/p><p class=\"jvj-family-text\">La esencia de nuestro taller se vuelve port\u00e1til en esta peque\u00f1a escultura de autor dise\u00f1ada para habitar tus objetos m\u00e1s cotidianos. Mini Mrs. DIDI nace como un charm para colgar o llavero que fusiona la sofisticaci\u00f3n marroquinera de Ubrique con una filosof\u00eda de dise\u00f1o consciente y circular.<\/p><p class=\"jvj-family-text\">Cada una de estas piezas se confecciona \u00edntegramente a mano utilizando delicada piel napa recuperada de los excedentes de corte de nuestras creaciones m\u00e1s grandes. A trav\u00e9s de este proceso de supra-reciclaje creativo, minimizamos el residuo en el taller y logramos dar una nueva vida llena de prop\u00f3sito y arte a una materia prima tan noble. Un amuleto \u00fanico, sostenible y exclusivo que late al ritmo de tus movimientos cotidianos para acompa\u00f1arte y darte luz.<\/p><\/div><div class=\"jvj-family-products-grid\"><article class=\"jvj-family-product-card\" style=\"--jvj-photo-ratio:0.7545454545454545;--jvj-hover-ratio:0.7545454545454545\"><div class=\"jvj-family-product-image-wrapper\"><button type=\"button\" class=\"jvj-family-product-image jvj-product-quickview\" data-product-slug=\"mini-mrs-didi\" aria-label=\"Ver Mini Mrs. DIDI Rosa\"><span class=\"jvj-family-product-badge\">Artesanal<\/span><img decoding=\"async\" class=\"jvj-family-img-main\" src=\"https:\/\/jenvsjen.com\/wp-content\/uploads\/2026\/09\/Mini-Mrs-DIDI-ROSA-1.jpeg\" alt=\"Mini Mrs. DIDI Rosa\"><img decoding=\"async\" class=\"jvj-family-img-hover\" src=\"https:\/\/jenvsjen.com\/wp-content\/uploads\/2026\/09\/Mini-Mrs-DIDI-ROSA-2.png\" alt=\"Mini Mrs. DIDI Rosa vista alternativa\"><\/button><button type=\"button\" class=\"jvj-family-eye-button jvj-product-quickview\" data-product-slug=\"mini-mrs-didi\" aria-label=\"Vista r\u00e1pida de Mini Mrs. DIDI Rosa\" title=\"Vista r\u00e1pida\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M2.5 12s3.5-6 9.5-6 9.5 6 9.5 6-3.5 6-9.5 6-9.5-6-9.5-6Z\"><\/path><circle cx=\"12\" cy=\"12\" r=\"3\"><\/circle><\/svg><\/button><\/div><div class=\"jvj-family-product-info\"><h3>Mini Mrs. DIDI Rosa<\/h3><p>115,00 \u20ac<\/p><\/div><\/article><article class=\"jvj-family-product-card\" style=\"--jvj-photo-ratio:0.5054945054945055;--jvj-hover-ratio:0.5054945054945055\"><div class=\"jvj-family-product-image-wrapper\"><button type=\"button\" class=\"jvj-family-product-image jvj-product-quickview\" data-product-slug=\"mini-mrs-didi\" aria-label=\"Ver Mini Mrs. DIDI Celeste\"><span class=\"jvj-family-product-badge\">Artesanal<\/span><img decoding=\"async\" class=\"jvj-family-img-main\" src=\"https:\/\/jenvsjen.com\/wp-content\/uploads\/2026\/09\/Mini-Mrs-DIDI-CELESTE-1.png\" alt=\"Mini Mrs. DIDI Celeste\"><img decoding=\"async\" class=\"jvj-family-img-hover\" src=\"https:\/\/jenvsjen.com\/wp-content\/uploads\/2026\/09\/Mini-Mrs-DIDI-CELESTE-2.png\" alt=\"Mini Mrs. DIDI Celeste vista alternativa\"><\/button><button type=\"button\" class=\"jvj-family-eye-button jvj-product-quickview\" data-product-slug=\"mini-mrs-didi\" aria-label=\"Vista r\u00e1pida de Mini Mrs. DIDI Celeste\" title=\"Vista r\u00e1pida\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M2.5 12s3.5-6 9.5-6 9.5 6 9.5 6-3.5 6-9.5 6-9.5-6-9.5-6Z\"><\/path><circle cx=\"12\" cy=\"12\" r=\"3\"><\/circle><\/svg><\/button><\/div><div class=\"jvj-family-product-info\"><h3>Mini Mrs. DIDI Celeste<\/h3><p>115,00 \u20ac<\/p><\/div><\/article><article class=\"jvj-family-product-card\" style=\"--jvj-photo-ratio:0.7501172058134083;--jvj-hover-ratio:0.7545454545454545\"><div class=\"jvj-family-product-image-wrapper\"><button type=\"button\" class=\"jvj-family-product-image jvj-product-quickview\" data-product-slug=\"mini-mrs-didi\" aria-label=\"Ver Mini Mrs. DIDI Beige\"><span class=\"jvj-family-product-badge\">Artesanal<\/span><img decoding=\"async\" class=\"jvj-family-img-main\" src=\"https:\/\/jenvsjen.com\/wp-content\/uploads\/2026\/09\/Mini-Mrs-Didi-Beige-1.jpeg\" alt=\"Mini Mrs. DIDI Beige\"><img decoding=\"async\" class=\"jvj-family-img-hover\" src=\"https:\/\/jenvsjen.com\/wp-content\/uploads\/2026\/09\/Mini-Mrs-Didi-Beige-2.png\" alt=\"Mini Mrs. DIDI Beige vista alternativa\"><\/button><button type=\"button\" class=\"jvj-family-eye-button jvj-product-quickview\" data-product-slug=\"mini-mrs-didi\" aria-label=\"Vista r\u00e1pida de Mini Mrs. DIDI Beige\" title=\"Vista r\u00e1pida\"><svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M2.5 12s3.5-6 9.5-6 9.5 6 9.5 6-3.5 6-9.5 6-9.5-6-9.5-6Z\"><\/path><circle cx=\"12\" cy=\"12\" r=\"3\"><\/circle><\/svg><\/button><\/div><div class=\"jvj-family-product-info\"><h3>Mini Mrs. DIDI Beige<\/h3><p>115,00 \u20ac<\/p><\/div><\/article><\/div><\/section><section class=\"jvj-editorial-break jvj-rats-editorial-break\"><div class=\"jvj-rats-editorial\"><div class=\"jvj-rats-editorial-copy\"><p class=\"jvj-category-eyebrow\">Mini Mrs. DIDI en escena<\/p><h3>Expresividad, color y movimiento<\/h3><p>Producci\u00f3n lenta, minuciosa y fiel al legado de la artesan\u00eda de lujo de Ubrique.<\/p><\/div><div class=\"jvj-rats-editorial-main\"><img decoding=\"async\" src=\"https:\/\/jenvsjen.com\/wp-content\/uploads\/2026\/09\/Mini-Mrs-DIDI-ROSA-3.jpeg\" alt=\"Mini Mrs. DIDI editorial\"><\/div><div class=\"jvj-rats-editorial-small jvj-rats-editorial-small-one\"><img decoding=\"async\" src=\"https:\/\/jenvsjen.com\/wp-content\/uploads\/2026\/09\/Mini-Mrs-DIDI-CELESTE-5.jpeg\" alt=\"Detalle Mini Mrs. DIDI Celeste\"><\/div><div class=\"jvj-rats-editorial-small jvj-rats-editorial-small-two\"><img decoding=\"async\" src=\"https:\/\/jenvsjen.com\/wp-content\/uploads\/2026\/09\/Mini-Mrs-Didi-Beige-4.jpeg\" alt=\"Detalle Mini Mrs. DIDI Beige\"><\/div><\/div><\/section><\/section><div id=\"jvj-product-modal\" class=\"jvj-product-modal\" aria-hidden=\"true\">\n\n        <div class=\"jvj-product-modal-overlay\"><\/div>\n\n\n        <div class=\"jvj-product-modal-dialog\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"jvj-popup-title\">\n\n\n            <!-- CERRAR -->\n\n            <button type=\"button\" class=\"jvj-product-modal-close\" aria-label=\"Cerrar\">\n\n                <span><\/span>\n                <span><\/span>\n\n            <\/button>\n\n\n            <!-- LOADING -->\n\n            <div class=\"jvj-product-modal-loading\">\n\n                <div class=\"jvj-product-modal-loading-inner\">\n\n                    <span class=\"jvj-product-modal-loading-line\"><\/span>\n\n                    <span>\n                        Cargando pieza\n                    <\/span>\n\n                <\/div>\n\n            <\/div>\n\n\n            <!-- CONTENIDO -->\n\n            <div class=\"jvj-product-modal-content\">\n\n\n                <!-- GALER\u00cdA -->\n\n                <div class=\"jvj-product-popup-gallery\">\n\n\n                    <div class=\"jvj-product-popup-main-image\">\n\n                        <img decoding=\"async\" id=\"jvj-popup-main-image\" src=\"\" alt=\"\">\n\n\n                        <button type=\"button\" class=\"jvj-popup-gallery-arrow jvj-popup-gallery-prev\" aria-label=\"Imagen anterior\">\n                            \u2190\n                        <\/button>\n\n\n                        <button type=\"button\" class=\"jvj-popup-gallery-arrow jvj-popup-gallery-next\" aria-label=\"Imagen siguiente\">\n                            \u2192\n                        <\/button>\n\n\n                        <div id=\"jvj-popup-gallery-counter\" class=\"jvj-popup-gallery-counter\"><\/div>\n\n                    <\/div>\n\n\n                    <div id=\"jvj-popup-thumbnails\" class=\"jvj-product-popup-thumbnails\"><\/div>\n\n                <\/div>\n\n\n                <!-- INFORMACI\u00d3N -->\n\n                <div id=\"jvj-product-popup-information\" class=\"jvj-product-popup-information\">\n\n\n                    <div class=\"jvj-product-popup-top\">\n\n                        <p class=\"jvj-product-popup-eyebrow\">\n                            JenVsJen \u00b7 Charm de autor\n                        <\/p>\n\n\n                        <h2 id=\"jvj-popup-title\"><\/h2>\n\n\n                        <div id=\"jvj-popup-price\" class=\"jvj-product-popup-price\"><\/div>\n\n\n                        <div id=\"jvj-popup-stock\" class=\"jvj-product-popup-stock\"><\/div>\n\n\n                        <div id=\"jvj-popup-short-description\" class=\"jvj-product-popup-short-description\"><\/div>\n\n                    <\/div>\n\n\n                    <!-- ATRIBUTOS -->\n\n                    <div id=\"jvj-popup-attributes\" class=\"jvj-product-popup-attributes\"><\/div>\n\n\n                    <!-- COMPRA -->\n\n                    <div class=\"jvj-product-popup-purchase\">\n\n\n                        <div class=\"jvj-product-popup-quantity\">\n\n                            <button type=\"button\" id=\"jvj-popup-quantity-minus\" aria-label=\"Restar cantidad\">\n                                \u2212\n                            <\/button>\n\n\n                            <input id=\"jvj-popup-quantity\" type=\"number\" value=\"1\" min=\"1\" step=\"1\" aria-label=\"Cantidad\">\n\n\n                            <button type=\"button\" id=\"jvj-popup-quantity-plus\" aria-label=\"Aumentar cantidad\">\n                                +\n                            <\/button>\n\n                        <\/div>\n\n\n                        <button type=\"button\" id=\"jvj-popup-add-cart\" class=\"jvj-product-popup-cart\">\n\n                            <span>\n                                A\u00f1adir al carro\n                            <\/span>\n\n                            <span id=\"jvj-popup-cart-price\" class=\"jvj-product-popup-cart-price\"><\/span>\n\n                        <\/button>\n\n                    <\/div>\n\n\n                    <div id=\"jvj-popup-cart-message\" class=\"jvj-popup-cart-message\"><\/div>\n\n\n                    <!-- ==================================================\n                         M\u00c9TODOS DE PAGO\n                    =================================================== -->\n\n                    <div id=\"jvj-popup-payment-section\" class=\"jvj-product-popup-payment-section\">\n\n                        <div class=\"jvj-product-popup-section-heading\">\n\n                            <span>\n                                M\u00e9todos de pago\n                            <\/span>\n\n                            <span class=\"jvj-payment-secure-text\">\n                                Pago seguro\n                            <\/span>\n\n                        <\/div>\n\n\n                        <div id=\"jvj-popup-payment-methods\" class=\"jvj-product-popup-payment-methods\"><\/div>\n\n                    <\/div>\n\n\n                    <!-- ==================================================\n                         ACORDEONES\n                    =================================================== -->\n\n                    <div class=\"jvj-product-popup-accordions\">\n\n\n                        <!-- DESCRIPCI\u00d3N -->\n\n                        <div class=\"jvj-product-popup-accordion\">\n\n                            <button type=\"button\" class=\"jvj-product-popup-accordion-title\">\n\n                                <span>\n                                    Descripci\u00f3n\n                                <\/span>\n\n                                <span class=\"jvj-accordion-symbol\">\n                                    +\n                                <\/span>\n\n                            <\/button>\n\n\n                            <div class=\"jvj-product-popup-accordion-content\">\n\n                                <div id=\"jvj-popup-description\" class=\"jvj-popup-description\"><\/div>\n\n                            <\/div>\n\n                        <\/div>\n\n\n                        <!-- DETALLES -->\n\n                        <div id=\"jvj-popup-attributes-accordion\" class=\"jvj-product-popup-accordion\">\n\n                            <button type=\"button\" class=\"jvj-product-popup-accordion-title\">\n\n                                <span>\n                                    Detalles\n                                <\/span>\n\n                                <span class=\"jvj-accordion-symbol\">\n                                    +\n                                <\/span>\n\n                            <\/button>\n\n\n                            <div class=\"jvj-product-popup-accordion-content\">\n\n                                <div id=\"jvj-popup-detail-attributes\" class=\"jvj-popup-detail-attributes\"><\/div>\n\n                            <\/div>\n\n                        <\/div>\n\n\n                        <!-- ARTESAN\u00cdA -->\n\n                        <div class=\"jvj-product-popup-accordion\">\n\n                            <button type=\"button\" class=\"jvj-product-popup-accordion-title\">\n\n                                <span>\n                                    Artesan\u00eda &amp; cuidados\n                                <\/span>\n\n                                <span class=\"jvj-accordion-symbol\">\n                                    +\n                                <\/span>\n\n                            <\/button>\n\n\n                            <div class=\"jvj-product-popup-accordion-content\">\n\n                                <p>\n                                    Cada charm JenVsJen est\u00e1 realizada\n                                    artesanalmente. Recomendamos conservarla\n                                    protegida de humedad, calor excesivo y\n                                    exposici\u00f3n solar prolongada.\n                                <\/p>\n\n                            <\/div>\n\n                        <\/div>\n\n\n                        <!-- ENV\u00cdOS -->\n\n                        <div class=\"jvj-product-popup-accordion\" data-jvj-shipping-enhanced=\"1\">\n\n                            <button type=\"button\" class=\"jvj-product-popup-accordion-title\">\n\n                                <span>\n                                    Env\u00edos &amp; devoluciones\n                                <\/span>\n\n                                <span class=\"jvj-accordion-symbol\">\n                                    +\n                                <\/span>\n\n                            <\/button>\n\n\n                            <div class=\"jvj-product-popup-accordion-content\"><ul class=\"jvj-popup-shipping-rates\"><li><strong>Espa\u00f1a peninsular:<\/strong> 9,90 \u20ac<\/li><li><strong>Uni\u00f3n Europea:<\/strong> 19,90 \u20ac<\/li><li><strong>Env\u00edo gratuito:<\/strong> pedidos de 150 \u20ac o m\u00e1s<\/li><\/ul><\/div>\n\n                        <\/div>\n\n                    <\/div>\n\n\n                    <!-- ==================================================\n                         PRODUCTOS RELACIONADOS\n                    =================================================== -->\n\n                    <div id=\"jvj-popup-related-section\" class=\"jvj-product-popup-related-section\">\n\n                        <div class=\"jvj-product-popup-related-heading\">\n\n                            <p class=\"jvj-product-popup-related-eyebrow\">\n                                Tambi\u00e9n te puede interesar\n                            <\/p>\n\n                            <h3>\n                                M\u00e1s piezas de esta colecci\u00f3n\n                            <\/h3>\n\n                        <\/div>\n\n\n                        <div id=\"jvj-popup-related-products\" class=\"jvj-product-popup-related-products\"><\/div>\n\n                    <\/div>\n\n                <\/div>\n\n            <\/div>\n\n        <\/div>\n\n    <\/div><script>(function(){var video=document.getElementById('jvj-charms-scroll-video');if(!video||!('IntersectionObserver'in window))return;var observer=new IntersectionObserver(function(entries){entries.forEach(function(entry){if(entry.isIntersecting&&entry.intersectionRatio>=0.45){video.play().catch(function(){});}else{video.pause();}});},{threshold:[0,0.45,1]});observer.observe(video);})();<\/script>\n<script>\n\ndocument.addEventListener('DOMContentLoaded', function () {\n\n    const modal = document.getElementById('jvj-product-modal');\n\n    if (!modal) {\n        return;\n    }\n\n\n    const overlay =\n        modal.querySelector('.jvj-product-modal-overlay');\n\n    const closeButton =\n        modal.querySelector('.jvj-product-modal-close');\n\n    const loading =\n        modal.querySelector('.jvj-product-modal-loading');\n\n    const loadingDefaultHTML =\n        loading.innerHTML;\n\n    const content =\n        modal.querySelector('.jvj-product-modal-content');\n\n\n    const productInformation =\n        document.getElementById(\n            'jvj-product-popup-information'\n        );\n\n\n    const mainImage =\n        document.getElementById(\n            'jvj-popup-main-image'\n        );\n\n    const thumbnails =\n        document.getElementById(\n            'jvj-popup-thumbnails'\n        );\n\n    const galleryCounter =\n        document.getElementById(\n            'jvj-popup-gallery-counter'\n        );\n\n\n    const title =\n        document.getElementById(\n            'jvj-popup-title'\n        );\n\n    const price =\n        document.getElementById(\n            'jvj-popup-price'\n        );\n\n    const stock =\n        document.getElementById(\n            'jvj-popup-stock'\n        );\n\n    const shortDescription =\n        document.getElementById(\n            'jvj-popup-short-description'\n        );\n\n    const description =\n        document.getElementById(\n            'jvj-popup-description'\n        );\n\n\n    const attributes =\n        document.getElementById(\n            'jvj-popup-attributes'\n        );\n\n    const detailAttributes =\n        document.getElementById(\n            'jvj-popup-detail-attributes'\n        );\n\n    const attributesAccordion =\n        document.getElementById(\n            'jvj-popup-attributes-accordion'\n        );\n\n\n    const paymentSection =\n        document.getElementById(\n            'jvj-popup-payment-section'\n        );\n\n    const paymentMethods =\n        document.getElementById(\n            'jvj-popup-payment-methods'\n        );\n\n\n    const relatedSection =\n        document.getElementById(\n            'jvj-popup-related-section'\n        );\n\n    const relatedProducts =\n        document.getElementById(\n            'jvj-popup-related-products'\n        );\n\n\n    const addCartButton =\n        document.getElementById(\n            'jvj-popup-add-cart'\n        );\n\n    const quantityInput =\n        document.getElementById(\n            'jvj-popup-quantity'\n        );\n\n    const quantityMinus =\n        document.getElementById(\n            'jvj-popup-quantity-minus'\n        );\n\n    const quantityPlus =\n        document.getElementById(\n            'jvj-popup-quantity-plus'\n        );\n\n    const cartMessage =\n        document.getElementById(\n            'jvj-popup-cart-message'\n        );\n\n\n    const prevButton =\n        modal.querySelector(\n            '.jvj-popup-gallery-prev'\n        );\n\n    const nextButton =\n        modal.querySelector(\n            '.jvj-popup-gallery-next'\n        );\n\n\n    let currentProduct = null;\n    let galleryImages = [];\n    let currentImageIndex = 0;\n\n\n    \/* ======================================================\n       LIMPIAR DESCRIPCI\u00d3N\n    ====================================================== *\/\n\n    function cleanProductHtml(html) {\n\n        if (!html) {\n            return '';\n        }\n\n\n        const wrapper =\n            document.createElement('div');\n\n\n        wrapper.innerHTML =\n            html;\n\n\n        const unwantedPatterns = [\n\n            \/Color\\s*:\\s*[^.]+\\.?\/gi,\n\n            \/Fotos entregadas\\s*:\\s*\\d+\\s*\\.?\/gi,\n\n            \/Vista Frente\\s*-\\s*Vista Perfil\\s*-\\s*Vista trasera\\s*\\.?\/gi,\n\n            \/Vista Frente\\s*[\u2013\u2014-]\\s*Vista Perfil\\s*[\u2013\u2014-]\\s*Vista trasera\\s*\\.?\/gi\n\n        ];\n\n\n        wrapper\n            .querySelectorAll('*')\n            .forEach(function (element) {\n\n                if (\n                    element.children.length === 0 &&\n                    element.textContent\n                ) {\n\n                    let value =\n                        element.textContent;\n\n\n                    unwantedPatterns.forEach(\n                        function (pattern) {\n\n                            value =\n                                value.replace(\n                                    pattern,\n                                    ''\n                                );\n\n                        }\n                    );\n\n\n                    value =\n                        value\n                            .replace(\n                                \/\\s{2,}\/g,\n                                ' '\n                            )\n                            .replace(\n                                \/^\\s*[.,;:-]+\\s*\/,\n                                ''\n                            )\n                            .trim();\n\n\n                    element.textContent =\n                        value;\n\n                }\n\n            });\n\n\n        wrapper\n            .querySelectorAll(\n                'p, li, div, span'\n            )\n            .forEach(function (element) {\n\n                if (\n                    element.children.length === 0 &&\n                    !element.textContent.trim()\n                ) {\n\n                    element.remove();\n\n                }\n\n            });\n\n\n        let cleaned =\n            wrapper.innerHTML;\n\n\n        unwantedPatterns.forEach(\n            function (pattern) {\n\n                cleaned =\n                    cleaned.replace(\n                        pattern,\n                        ''\n                    );\n\n            }\n        );\n\n\n        return cleaned;\n\n    }\n\n\n    \/* ======================================================\n       CLIC PRODUCTO\n    ====================================================== *\/\n\n    document.addEventListener(\n        'click',\n        function (event) {\n\n            const button =\n                event.target.closest(\n                    '.jvj-product-quickview'\n                );\n\n\n            if (!button) {\n                return;\n            }\n\n\n            event.preventDefault();\n            event.stopPropagation();\n\n\n            const slug =\n                button.dataset.productSlug;\n\n\n            if (!slug) {\n                return;\n            }\n\n\n            openModal(slug);\n\n        }\n    );\n\n\n    \/* ======================================================\n       ABRIR \/ CAMBIAR PRODUCTO\n    ====================================================== *\/\n\n    async function openModal(slug) {\n\n        resetModal();\n\n\n        modal.classList.add(\n            'is-open'\n        );\n\n\n        modal.setAttribute(\n            'aria-hidden',\n            'false'\n        );\n\n\n        document.documentElement\n            .classList.add(\n                'jvj-modal-open'\n            );\n\n\n        document.body\n            .classList.add(\n                'jvj-modal-open'\n            );\n\n\n        if (productInformation) {\n\n            productInformation.scrollTop =\n                0;\n\n        }\n\n\n        loading.innerHTML =\n            loadingDefaultHTML;\n\n\n        loading.classList.add(\n            'is-visible'\n        );\n\n\n        content.classList.remove(\n            'is-visible'\n        );\n\n\n        try {\n\n            const response =\n                await fetch(\n                    '\/wp-json\/jvj\/v1\/product\/' +\n                    encodeURIComponent(slug),\n                    {\n                        method:'GET',\n                        credentials:'same-origin',\n\n                        headers:{\n                            'Accept':\n                                'application\/json'\n                        }\n                    }\n                );\n\n\n            if (!response.ok) {\n\n                throw new Error(\n                    'No se ha podido cargar el producto'\n                );\n\n            }\n\n\n            const product =\n                await response.json();\n\n\n            currentProduct =\n                product;\n\n\n            renderProduct(\n                product\n            );\n\n\n            loading.classList.remove(\n                'is-visible'\n            );\n\n\n            content.classList.add(\n                'is-visible'\n            );\n\n\n        } catch (error) {\n\n            console.error(\n                'JenVsJen Quick View:',\n                error\n            );\n\n\n            loading.innerHTML = `\n                <div class=\"jvj-product-modal-error\">\n\n                    <p>\n                        No hemos podido cargar esta pieza.\n                    <\/p>\n\n                    <button\n                        type=\"button\"\n                        class=\"jvj-modal-error-close\"\n                    >\n                        Cerrar\n                    <\/button>\n\n                <\/div>\n            `;\n\n        }\n\n    }\n\n\n    \/* ======================================================\n       RENDER\n    ====================================================== *\/\n\n    function renderProduct(product) {\n\n        title.textContent =\n            product.name ||\n            'Pieza JenVsJen';\n\n\n        price.innerHTML =\n            product.price_html ||\n            '';\n\n\n        stock.textContent =\n            product.stock_label ||\n            '';\n\n\n        stock.classList.toggle(\n            'is-out',\n            product.stock_status ===\n            'outofstock'\n        );\n\n\n        shortDescription.innerHTML =\n            cleanProductHtml(\n                product.short_description ||\n                ''\n            );\n\n\n        description.innerHTML =\n            cleanProductHtml(\n                product.description ||\n                product.short_description ||\n                '<p>Informaci\u00f3n disponible pr\u00f3ximamente.<\/p>'\n            );\n\n\n        quantityInput.value =\n            1;\n\n\n        renderAttributes(\n            product.attributes ||\n            []\n        );\n\n\n        renderGallery(\n            product.images ||\n            []\n        );\n\n\n        renderPaymentMethods(\n            product.payment_methods ||\n            []\n        );\n\n\n        renderRelatedProducts(\n            product.related_products ||\n            []\n        );\n\n\n        configureCartButton(\n            product\n        );\n\n    }\n\n\n    \/* ======================================================\n       M\u00c9TODOS DE PAGO\n    ====================================================== *\/\n\n    function renderPaymentMethods(items) {\n\n        paymentMethods.innerHTML =\n            '';\n\n\n        if (\n            !Array.isArray(items) ||\n            !items.length\n        ) {\n\n            paymentSection.style.display =\n                'none';\n\n            return;\n\n        }\n\n\n        paymentSection.style.display =\n            '';\n\n\n        items.forEach(\n            function (method) {\n\n                const item =\n                    document.createElement(\n                        'div'\n                    );\n\n\n                item.className =\n                    'jvj-payment-method';\n\n\n                item.innerHTML = `\n                    <span class=\"jvj-payment-method-icon\">\n\n                        <svg\n                            viewBox=\"0 0 24 24\"\n                            aria-hidden=\"true\"\n                        >\n\n                            <rect\n                                x=\"2.5\"\n                                y=\"5\"\n                                width=\"19\"\n                                height=\"14\"\n                                rx=\"1.5\"\n                            ><\/rect>\n\n                            <path d=\"M2.5 9.5h19\"><\/path>\n\n                            <path d=\"M6 15h4\"><\/path>\n\n                        <\/svg>\n\n                    <\/span>\n\n                    <span class=\"jvj-payment-method-name\">\n                        ${escapeHtml(method.title)}\n                    <\/span>\n                `;\n\n\n                paymentMethods.appendChild(\n                    item\n                );\n\n            }\n        );\n\n    }\n\n\n    \/* ======================================================\n       RELACIONADOS\n    ====================================================== *\/\n\n    function renderRelatedProducts(items) {\n\n        relatedProducts.innerHTML =\n            '';\n\n\n        if (\n            !Array.isArray(items) ||\n            !items.length\n        ) {\n\n            relatedSection.style.display =\n                'none';\n\n            return;\n\n        }\n\n\n        relatedSection.style.display =\n            '';\n\n\n        items.forEach(\n            function (product) {\n\n                const button =\n                    document.createElement(\n                        'button'\n                    );\n\n\n                button.type =\n                    'button';\n\n\n                button.className =\n                    'jvj-related-product-card jvj-product-quickview';\n\n\n                button.dataset.productSlug =\n                    product.slug;\n\n\n                button.setAttribute(\n                    'aria-label',\n                    'Ver ' +\n                    product.name\n                );\n\n\n                button.innerHTML = `\n\n                    <span class=\"jvj-related-product-image\">\n\n                        <img decoding=\"async\"\n                            src=\"${escapeAttribute(product.image || '')}\"\n                            alt=\"${escapeAttribute(product.name || '')}\"\n                        >\n\n                    <\/span>\n\n\n                    <span class=\"jvj-related-product-info\">\n\n                        <strong>\n                            ${escapeHtml(product.name || '')}\n                        <\/strong>\n\n                        <span class=\"jvj-related-product-price\">\n                            ${product.price_html || ''}\n                        <\/span>\n\n                    <\/span>\n                `;\n\n\n                relatedProducts.appendChild(\n                    button\n                );\n\n            }\n        );\n\n    }\n\n\n    \/* ======================================================\n       CARRITO\n    ====================================================== *\/\n\n    function configureCartButton(product) {\n\n        addCartButton.classList.remove(\n            'is-variable',\n            'is-loading'\n        );\n\n\n        if (\n            !product.in_stock ||\n            !product.purchasable\n        ) {\n\n            addCartButton.disabled =\n                true;\n\n\n            addCartButton.innerHTML = `\n                <span>\n                    No disponible\n                <\/span>\n            `;\n\n\n            return;\n\n        }\n\n\n        addCartButton.disabled =\n            false;\n\n\n        if (product.is_variable) {\n\n            addCartButton.disabled =\n                true;\n\n\n            addCartButton.innerHTML = `\n                <span>\n                    Producto con opciones\n                <\/span>\n            `;\n\n\n            return;\n\n        }\n\n\n        addCartButton.innerHTML = `\n            <span>\n                A\u00f1adir al carro\n            <\/span>\n\n            <span class=\"jvj-product-popup-cart-price\">\n                ${product.price_html || ''}\n            <\/span>\n        `;\n\n    }\n\n\n    \/* ======================================================\n       ATRIBUTOS\n    ====================================================== *\/\n\n    function renderAttributes(items) {\n\n        attributes.innerHTML =\n            '';\n\n\n        detailAttributes.innerHTML =\n            '';\n\n\n        const filteredItems =\n            items.filter(\n                function (attribute) {\n\n                    const name =\n                        String(\n                            attribute.name ||\n                            ''\n                        )\n                        .trim()\n                        .toLowerCase();\n\n\n                    const values =\n                        Array.isArray(\n                            attribute.values\n                        )\n                            ? attribute.values.join(' ')\n                            : '';\n\n\n                    const combined =\n                        (\n                            name +\n                            ' ' +\n                            values\n                        )\n                        .toLowerCase();\n\n\n                    if (\n                        combined.includes(\n                            'fotos entregadas'\n                        ) ||\n                        combined.includes(\n                            'vista frente'\n                        ) ||\n                        combined.includes(\n                            'vista perfil'\n                        ) ||\n                        combined.includes(\n                            'vista trasera'\n                        )\n                    ) {\n\n                        return false;\n\n                    }\n\n\n                    return true;\n\n                }\n            );\n\n\n        if (!filteredItems.length) {\n\n            attributes.style.display =\n                'none';\n\n\n            attributesAccordion.style.display =\n                'none';\n\n\n            return;\n\n        }\n\n\n        attributes.style.display =\n            '';\n\n\n        attributesAccordion.style.display =\n            '';\n\n\n        filteredItems.forEach(\n            function (attribute) {\n\n                const values =\n                    Array.isArray(\n                        attribute.values\n                    )\n                        ? attribute.values.join(' \u00b7 ')\n                        : '';\n\n\n                const item =\n                    document.createElement(\n                        'div'\n                    );\n\n\n                item.className =\n                    'jvj-product-popup-attribute';\n\n\n                item.innerHTML = `\n                    <span>\n                        ${escapeHtml(attribute.name)}\n                    <\/span>\n\n                    <strong>\n                        ${escapeHtml(values)}\n                    <\/strong>\n                `;\n\n\n                attributes.appendChild(\n                    item\n                );\n\n\n                const detailItem =\n                    document.createElement(\n                        'div'\n                    );\n\n\n                detailItem.className =\n                    'jvj-popup-detail-row';\n\n\n                detailItem.innerHTML = `\n                    <span>\n                        ${escapeHtml(attribute.name)}\n                    <\/span>\n\n                    <span>\n                        ${escapeHtml(values)}\n                    <\/span>\n                `;\n\n\n                detailAttributes.appendChild(\n                    detailItem\n                );\n\n            }\n        );\n\n    }\n\n\n    \/* ======================================================\n       GALER\u00cdA\n    ====================================================== *\/\n\n    function renderGallery(images) {\n\n        galleryImages =\n            Array.isArray(images)\n                ? images\n                : [];\n\n\n        currentImageIndex =\n            0;\n\n\n        thumbnails.innerHTML =\n            '';\n\n\n        if (!galleryImages.length) {\n\n            mainImage.removeAttribute(\n                'src'\n            );\n\n\n            mainImage.alt =\n                '';\n\n\n            galleryCounter.textContent =\n                '';\n\n\n            prevButton.style.display =\n                'none';\n\n\n            nextButton.style.display =\n                'none';\n\n\n            return;\n\n        }\n\n\n        prevButton.style.display =\n            galleryImages.length > 1\n                ? ''\n                : 'none';\n\n\n        nextButton.style.display =\n            galleryImages.length > 1\n                ? ''\n                : 'none';\n\n\n        galleryImages.forEach(\n            function (image, index) {\n\n                const button =\n                    document.createElement(\n                        'button'\n                    );\n\n\n                button.type =\n                    'button';\n\n\n                button.className =\n                    'jvj-product-popup-thumbnail';\n\n\n                button.setAttribute(\n                    'aria-label',\n                    'Ver imagen ' +\n                    (index + 1)\n                );\n\n\n                if (index === 0) {\n\n                    button.classList.add(\n                        'is-active'\n                    );\n\n                }\n\n\n                const imageUrl =\n                    image.thumbnail ||\n                    image.large ||\n                    image.full ||\n                    '';\n\n\n                button.innerHTML = `\n                    <img decoding=\"async\"\n                        src=\"${escapeAttribute(imageUrl)}\"\n                        alt=\"${escapeAttribute(image.alt || '')}\"\n                    >\n                `;\n\n\n                button.addEventListener(\n                    'click',\n                    function () {\n\n                        setGalleryImage(\n                            index\n                        );\n\n                    }\n                );\n\n\n                thumbnails.appendChild(\n                    button\n                );\n\n            }\n        );\n\n\n        setGalleryImage(\n            0\n        );\n\n    }\n\n\n    function setGalleryImage(index) {\n\n        if (!galleryImages.length) {\n            return;\n        }\n\n\n        if (index < 0) {\n\n            index =\n                galleryImages.length - 1;\n\n        }\n\n\n        if (\n            index >=\n            galleryImages.length\n        ) {\n\n            index =\n                0;\n\n        }\n\n\n        currentImageIndex =\n            index;\n\n\n        const image =\n            galleryImages[index];\n\n\n        mainImage.src =\n            image.full ||\n            image.large ||\n            '';\n\n\n        mainImage.alt =\n            image.alt ||\n            (\n                currentProduct\n                    ? currentProduct.name\n                    : ''\n            );\n\n\n        galleryCounter.textContent =\n            (index + 1) +\n            ' \/ ' +\n            galleryImages.length;\n\n\n        thumbnails\n            .querySelectorAll(\n                '.jvj-product-popup-thumbnail'\n            )\n            .forEach(\n                function (\n                    thumbnail,\n                    i\n                ) {\n\n                    thumbnail\n                        .classList\n                        .toggle(\n                            'is-active',\n                            i === index\n                        );\n\n                }\n            );\n\n    }\n\n\n    prevButton.addEventListener(\n        'click',\n        function () {\n\n            setGalleryImage(\n                currentImageIndex - 1\n            );\n\n        }\n    );\n\n\n    nextButton.addEventListener(\n        'click',\n        function () {\n\n            setGalleryImage(\n                currentImageIndex + 1\n            );\n\n        }\n    );\n\n\n    \/* ======================================================\n       CANTIDAD\n    ====================================================== *\/\n\n    quantityMinus.addEventListener(\n        'click',\n        function () {\n\n            const value =\n                parseInt(\n                    quantityInput.value ||\n                    '1',\n                    10\n                );\n\n\n            quantityInput.value =\n                Math.max(\n                    1,\n                    value - 1\n                );\n\n        }\n    );\n\n\n    quantityPlus.addEventListener(\n        'click',\n        function () {\n\n            const value =\n                parseInt(\n                    quantityInput.value ||\n                    '1',\n                    10\n                );\n\n\n            quantityInput.value =\n                value + 1;\n\n        }\n    );\n\n\n    quantityInput.addEventListener(\n        'change',\n        function () {\n\n            let value =\n                parseInt(\n                    quantityInput.value ||\n                    '1',\n                    10\n                );\n\n\n            if (\n                Number.isNaN(value) ||\n                value < 1\n            ) {\n\n                value =\n                    1;\n\n            }\n\n\n            quantityInput.value =\n                value;\n\n        }\n    );\n\n\n    \/* ======================================================\n       A\u00d1ADIR AL CARRITO\n    ====================================================== *\/\n\n    addCartButton.addEventListener(\n        'click',\n        async function () {\n\n            if (!currentProduct) {\n                return;\n            }\n\n\n            if (\n                currentProduct.is_variable ||\n                !currentProduct.in_stock ||\n                !currentProduct.purchasable\n            ) {\n\n                return;\n\n            }\n\n\n            const quantity =\n                Math.max(\n                    1,\n                    parseInt(\n                        quantityInput.value ||\n                        '1',\n                        10\n                    )\n                );\n\n\n            addCartButton\n                .classList\n                .add(\n                    'is-loading'\n                );\n\n\n            addCartButton.disabled =\n                true;\n\n\n            cartMessage.textContent =\n                '';\n\n\n            cartMessage.className =\n                'jvj-popup-cart-message';\n\n\n            try {\n\n                const formData =\n                    new URLSearchParams();\n\n\n                formData.append(\n                    'product_id',\n                    currentProduct.id\n                );\n\n\n                formData.append(\n                    'quantity',\n                    quantity\n                );\n\n\n                const response =\n                    await fetch(\n                        '\/?wc-ajax=add_to_cart',\n                        {\n                            method:'POST',\n\n                            credentials:'same-origin',\n\n                            headers:{\n                                'Content-Type':\n                                    'application\/x-www-form-urlencoded; charset=UTF-8'\n                            },\n\n                            body:\n                                formData.toString()\n                        }\n                    );\n\n\n                if (!response.ok) {\n\n                    throw new Error(\n                        'Error al a\u00f1adir al carrito'\n                    );\n\n                }\n\n\n                const data =\n                    await response.json();\n\n\n                if (data.error) {\n\n                    throw new Error(\n                        'WooCommerce no ha permitido a\u00f1adir el producto'\n                    );\n\n                }\n\n\n                if (\n                    data.fragments &&\n                    typeof window.jQuery !==\n                    'undefined'\n                ) {\n\n                    window.jQuery(\n                        document.body\n                    ).trigger(\n                        'added_to_cart',\n                        [\n                            data.fragments,\n                            data.cart_hash,\n                            window.jQuery(\n                                addCartButton\n                            )\n                        ]\n                    );\n\n                }\n\n\n                cartMessage.textContent =\n                    'La pieza se ha a\u00f1adido al carro.';\n\n\n                cartMessage.classList.add(\n                    'is-success'\n                );\n\n\n                addCartButton.innerHTML = `\n                    <span>\n                        A\u00f1adido al carro\n                    <\/span>\n\n                    <span>\n                        \u2713\n                    <\/span>\n                `;\n\n\n                setTimeout(\n                    function () {\n\n                        if (!currentProduct) {\n                            return;\n                        }\n\n\n                        configureCartButton(\n                            currentProduct\n                        );\n\n                    },\n                    1800\n                );\n\n\n            } catch (error) {\n\n                console.error(\n                    'JenVsJen Add to Cart:',\n                    error\n                );\n\n\n                cartMessage.textContent =\n                    'No hemos podido a\u00f1adir la pieza al carro.';\n\n\n                cartMessage.classList.add(\n                    'is-error'\n                );\n\n\n                addCartButton.disabled =\n                    false;\n\n\n            } finally {\n\n                addCartButton\n                    .classList\n                    .remove(\n                        'is-loading'\n                    );\n\n            }\n\n        }\n    );\n\n\n    \/* ======================================================\n       ACORDEONES\n    ====================================================== *\/\n\n    modal\n        .querySelectorAll(\n            '.jvj-product-popup-accordion-title'\n        )\n        .forEach(\n            function (button) {\n\n                button.addEventListener(\n                    'click',\n                    function () {\n\n                        const accordion =\n                            button.closest(\n                                '.jvj-product-popup-accordion'\n                            );\n\n\n                        const isOpen =\n                            accordion\n                                .classList\n                                .contains(\n                                    'is-open'\n                                );\n\n\n                        accordion\n                            .classList\n                            .toggle(\n                                'is-open',\n                                !isOpen\n                            );\n\n\n                        const symbol =\n                            button.querySelector(\n                                '.jvj-accordion-symbol'\n                            );\n\n\n                        if (symbol) {\n\n                            symbol.textContent =\n                                isOpen\n                                    ? '+'\n                                    : '\u2212';\n\n                        }\n\n                    }\n                );\n\n            }\n        );\n\n\n    \/* ======================================================\n       CERRAR\n    ====================================================== *\/\n\n    function closeModal() {\n\n        modal.classList.remove(\n            'is-open'\n        );\n\n\n        modal.setAttribute(\n            'aria-hidden',\n            'true'\n        );\n\n\n        document.documentElement\n            .classList.remove(\n                'jvj-modal-open'\n            );\n\n\n        document.body\n            .classList.remove(\n                'jvj-modal-open'\n            );\n\n\n        content.classList.remove(\n            'is-visible'\n        );\n\n\n        loading.classList.remove(\n            'is-visible'\n        );\n\n\n        currentProduct =\n            null;\n\n    }\n\n\n    closeButton.addEventListener(\n        'click',\n        closeModal\n    );\n\n\n    overlay.addEventListener(\n        'click',\n        closeModal\n    );\n\n\n    document.addEventListener(\n        'keydown',\n        function (event) {\n\n            if (\n                event.key === 'Escape' &&\n                modal.classList.contains(\n                    'is-open'\n                )\n            ) {\n\n                closeModal();\n\n            }\n\n        }\n    );\n\n\n    document.addEventListener(\n        'click',\n        function (event) {\n\n            const errorClose =\n                event.target.closest(\n                    '.jvj-modal-error-close'\n                );\n\n\n            if (!errorClose) {\n                return;\n            }\n\n\n            closeModal();\n\n        }\n    );\n\n\n    \/* ======================================================\n       RESET\n    ====================================================== *\/\n\n    function resetModal() {\n\n        currentProduct =\n            null;\n\n\n        galleryImages =\n            [];\n\n\n        currentImageIndex =\n            0;\n\n\n        title.textContent =\n            '';\n\n\n        price.innerHTML =\n            '';\n\n\n        stock.textContent =\n            '';\n\n\n        stock.classList.remove(\n            'is-out'\n        );\n\n\n        shortDescription.innerHTML =\n            '';\n\n\n        description.innerHTML =\n            '';\n\n\n        attributes.innerHTML =\n            '';\n\n\n        detailAttributes.innerHTML =\n            '';\n\n\n        paymentMethods.innerHTML =\n            '';\n\n\n        relatedProducts.innerHTML =\n            '';\n\n\n        thumbnails.innerHTML =\n            '';\n\n\n        mainImage.removeAttribute(\n            'src'\n        );\n\n\n        mainImage.alt =\n            '';\n\n\n        galleryCounter.textContent =\n            '';\n\n\n        cartMessage.textContent =\n            '';\n\n\n        cartMessage.className =\n            'jvj-popup-cart-message';\n\n\n        quantityInput.value =\n            1;\n\n\n        addCartButton.disabled =\n            false;\n\n\n        addCartButton\n            .classList\n            .remove(\n                'is-loading',\n                'is-variable'\n            );\n\n\n        modal\n            .querySelectorAll(\n                '.jvj-product-popup-accordion'\n            )\n            .forEach(\n                function (accordion) {\n\n                    accordion\n                        .classList\n                        .remove(\n                            'is-open'\n                        );\n\n\n                    const symbol =\n                        accordion.querySelector(\n                            '.jvj-accordion-symbol'\n                        );\n\n\n                    if (symbol) {\n\n                        symbol.textContent =\n                            '+';\n\n                    }\n\n                }\n            );\n\n    }\n\n\n    \/* ======================================================\n       ESCAPE\n    ====================================================== *\/\n\n    function escapeHtml(value) {\n\n        return String(\n            value || ''\n        )\n            .replace(\/&\/g, '&amp;')\n            .replace(\/<\/g, '&lt;')\n            .replace(\/>\/g, '&gt;')\n            .replace(\/\"\/g, '&quot;')\n            .replace(\/'\/g, '&#039;');\n\n    }\n\n\n    function escapeAttribute(value) {\n\n        return escapeHtml(\n            value\n        );\n\n    }\n\n});\n\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Mini PepaCharm mu\u00f1ecaMini Mrs. DIDICharm animalillo Colecci\u00f3n JenVsJen Charms Esculturas de autor para llevar contigo La magia de nuestras ic\u00f3nicas [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"site-sidebar-layout":"no-sidebar","site-content-layout":"","ast-site-content-layout":"full-width-container","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"disabled","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-1249","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Accesorios - jenvsjen.com<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/jenvsjen.com\/en\/accesorios\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Accesorios - jenvsjen.com\" \/>\n<meta property=\"og:description\" content=\"Mini PepaCharm mu\u00f1ecaMini Mrs. DIDICharm animalillo Colecci\u00f3n JenVsJen Charms Esculturas de autor para llevar contigo La magia de nuestras ic\u00f3nicas [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/jenvsjen.com\/en\/accesorios\/\" \/>\n<meta property=\"og:site_name\" content=\"jenvsjen.com\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/profile.php?id=61572731871639&amp;locale=es_ES\" \/>\n<meta property=\"article:modified_time\" content=\"2026-10-01T18:34:49+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/jenvsjen.com\/wp-content\/uploads\/2026\/10\/VECTOR-MINI-PEPA-CHARM.png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@JenniferDo82109\" \/>\n<meta name=\"twitter:label1\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"13 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/jenvsjen.com\\\/accesorios\\\/\",\"url\":\"https:\\\/\\\/jenvsjen.com\\\/accesorios\\\/\",\"name\":\"Accesorios - jenvsjen.com\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/jenvsjen.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/jenvsjen.com\\\/accesorios\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/jenvsjen.com\\\/accesorios\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/jenvsjen.com\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/VECTOR-MINI-PEPA-CHARM.png\",\"datePublished\":\"2026-07-09T18:36:56+00:00\",\"dateModified\":\"2026-10-01T18:34:49+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/jenvsjen.com\\\/accesorios\\\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/jenvsjen.com\\\/accesorios\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/jenvsjen.com\\\/accesorios\\\/#primaryimage\",\"url\":\"https:\\\/\\\/jenvsjen.com\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/VECTOR-MINI-PEPA-CHARM.png\",\"contentUrl\":\"https:\\\/\\\/jenvsjen.com\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/VECTOR-MINI-PEPA-CHARM.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/jenvsjen.com\\\/accesorios\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\\\/\\\/jenvsjen.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Accesorios\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/jenvsjen.com\\\/#website\",\"url\":\"https:\\\/\\\/jenvsjen.com\\\/\",\"name\":\"JenVsJen\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/jenvsjen.com\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/jenvsjen.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/jenvsjen.com\\\/#organization\",\"name\":\"JenVsJen\",\"url\":\"https:\\\/\\\/jenvsjen.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/jenvsjen.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/jenvsjen.com\\\/wp-content\\\/uploads\\\/2025\\\/01\\\/logo-completo.png\",\"contentUrl\":\"https:\\\/\\\/jenvsjen.com\\\/wp-content\\\/uploads\\\/2025\\\/01\\\/logo-completo.png\",\"width\":130,\"height\":107,\"caption\":\"JenVsJen\"},\"image\":{\"@id\":\"https:\\\/\\\/jenvsjen.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/profile.php?id=61572731871639&locale=es_ES\",\"https:\\\/\\\/x.com\\\/JenniferDo82109\",\"https:\\\/\\\/www.instagram.com\\\/jenvsjen_official\",\"https:\\\/\\\/youtube.com\\\/channel\\\/UCtC5Ztz5odZFA6-axlvkjyQ\",\"https:\\\/\\\/www.tiktok.com\\\/@jenvsjen_official\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Accesorios - jenvsjen.com","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/jenvsjen.com\/en\/accesorios\/","og_locale":"en_GB","og_type":"article","og_title":"Accesorios - jenvsjen.com","og_description":"Mini PepaCharm mu\u00f1ecaMini Mrs. DIDICharm animalillo Colecci\u00f3n JenVsJen Charms Esculturas de autor para llevar contigo La magia de nuestras ic\u00f3nicas [&hellip;]","og_url":"https:\/\/jenvsjen.com\/en\/accesorios\/","og_site_name":"jenvsjen.com","article_publisher":"https:\/\/www.facebook.com\/profile.php?id=61572731871639&locale=es_ES","article_modified_time":"2026-10-01T18:34:49+00:00","og_image":[{"url":"https:\/\/jenvsjen.com\/wp-content\/uploads\/2026\/10\/VECTOR-MINI-PEPA-CHARM.png","type":"","width":"","height":""}],"twitter_card":"summary_large_image","twitter_site":"@JenniferDo82109","twitter_misc":{"Estimated reading time":"13 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/jenvsjen.com\/accesorios\/","url":"https:\/\/jenvsjen.com\/accesorios\/","name":"Accesorios - jenvsjen.com","isPartOf":{"@id":"https:\/\/jenvsjen.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/jenvsjen.com\/accesorios\/#primaryimage"},"image":{"@id":"https:\/\/jenvsjen.com\/accesorios\/#primaryimage"},"thumbnailUrl":"https:\/\/jenvsjen.com\/wp-content\/uploads\/2026\/10\/VECTOR-MINI-PEPA-CHARM.png","datePublished":"2026-07-09T18:36:56+00:00","dateModified":"2026-10-01T18:34:49+00:00","breadcrumb":{"@id":"https:\/\/jenvsjen.com\/accesorios\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/jenvsjen.com\/accesorios\/"]}]},{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/jenvsjen.com\/accesorios\/#primaryimage","url":"https:\/\/jenvsjen.com\/wp-content\/uploads\/2026\/10\/VECTOR-MINI-PEPA-CHARM.png","contentUrl":"https:\/\/jenvsjen.com\/wp-content\/uploads\/2026\/10\/VECTOR-MINI-PEPA-CHARM.png"},{"@type":"BreadcrumbList","@id":"https:\/\/jenvsjen.com\/accesorios\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/jenvsjen.com\/"},{"@type":"ListItem","position":2,"name":"Accesorios"}]},{"@type":"WebSite","@id":"https:\/\/jenvsjen.com\/#website","url":"https:\/\/jenvsjen.com\/","name":"JenVsJen","description":"","publisher":{"@id":"https:\/\/jenvsjen.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/jenvsjen.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":"Organization","@id":"https:\/\/jenvsjen.com\/#organization","name":"JenVsJen","url":"https:\/\/jenvsjen.com\/","logo":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/jenvsjen.com\/#\/schema\/logo\/image\/","url":"https:\/\/jenvsjen.com\/wp-content\/uploads\/2025\/01\/logo-completo.png","contentUrl":"https:\/\/jenvsjen.com\/wp-content\/uploads\/2025\/01\/logo-completo.png","width":130,"height":107,"caption":"JenVsJen"},"image":{"@id":"https:\/\/jenvsjen.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/profile.php?id=61572731871639&locale=es_ES","https:\/\/x.com\/JenniferDo82109","https:\/\/www.instagram.com\/jenvsjen_official","https:\/\/youtube.com\/channel\/UCtC5Ztz5odZFA6-axlvkjyQ","https:\/\/www.tiktok.com\/@jenvsjen_official"]}]}},"_links":{"self":[{"href":"https:\/\/jenvsjen.com\/en\/wp-json\/wp\/v2\/pages\/1249","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jenvsjen.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/jenvsjen.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/jenvsjen.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jenvsjen.com\/en\/wp-json\/wp\/v2\/comments?post=1249"}],"version-history":[{"count":14,"href":"https:\/\/jenvsjen.com\/en\/wp-json\/wp\/v2\/pages\/1249\/revisions"}],"predecessor-version":[{"id":1607,"href":"https:\/\/jenvsjen.com\/en\/wp-json\/wp\/v2\/pages\/1249\/revisions\/1607"}],"wp:attachment":[{"href":"https:\/\/jenvsjen.com\/en\/wp-json\/wp\/v2\/media?parent=1249"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}