{"product_id":"caja-de-rosa-eterna","title":"Caja de Rosa Eterna | Rosa Real y Collar Personalizado","description":"\u003cstyle\u003e\n  .secao {\n    text-align: center;\n    max-width: 1200px;\n    margin: 30px auto;\n  }\n  .secao \u003e img {\n    width: 100%;\n    height: auto;\n    max-width: 400px;\n    border-radius: 12px;\n    border: none;\n    box-shadow: none;\n  }\n  .secao-grid,\n  .secao-grid-reverse {\n    display: grid;\n    grid-template-columns: 1fr 1fr;\n    gap: 1em;\n    align-items: center;\n    justify-items: center;\n    margin-bottom: 15px;\n    max-width: 1200px;\n    margin: 30px auto;\n    border-radius: 12px;\n  }\n  .secao-grid {\n    grid-template-areas: \"content image\";\n  }\n  .secao-grid-reverse {\n    grid-template-areas: \"image content\";\n  }\n  h4 {\n    margin-top: 0;\n  }\n  .secao-image {\n    grid-area: image;\n  }\n  .secao-image img {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    max-width: 600px;\n    border-radius: 12px;\n    border: none;\n    box-shadow: none;\n  }\n  .secao-content {\n    grid-area: content;\n    text-align: left;\n    padding: 20px;\n  }\n  .secao-content h2 {\n    margin-top: 0;\n  }\n  .listinha {\n    display: flex;\n    text-align: left;\n    align-items: center;\n    gap: 5px;\n    margin-top: 10px;\n  }\n  .listinha img {\n    width: 20px;\n    height: 20px;\n    padding-right: 5px;\n    border: none;\n    box-shadow: none;\n    margin: 0;\n  }\n  .accordion {\n    width: 100%;\n    max-width: 800px;\n    margin: 20px auto;\n    border-radius: 10px;\n    border: none;\n    font-size: 0.9em;\n  }\n  .accordion-item {\n    border: 1px solid #ffcad4;\n    background-color: white;\n    border-radius: 15px;\n    margin-bottom: 10px;\n  }\n  .accordion-header {\n    padding: 15px;\n    cursor: pointer;\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    text-align: left;\n  }\n  .accordion-header:hover {\n    background-color: #ffedf0;\n    border-radius: 15px;\n  }\n  .accordion-body {\n    text-align: left;\n    padding: 0 15px;\n    max-height: 0;\n    overflow: hidden;\n    transition:\n      max-height 0.3s ease,\n      padding 0.3s ease;\n  }\n  .accordion-body.active {\n    max-height: 500px;\n    padding: 15px;\n    margin-bottom: 15px;\n  }\n  .accordion-header .icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    flex-shrink: 0;\n    width: 20px;\n    height: 20px;\n    transition: transform 0.3s ease;\n    transform: rotate(45deg);\n  }\n  .accordion-header.active .icon {\n    transform: rotate(0deg);\n  }\n  .accordion-header .icon svg {\n    width: 100%;\n    height: 100%;\n    fill: #fda6b6;\n  }\n  .review {\n    max-width: 1200px;\n    margin-left: auto;\n    margin-right: auto;\n    border-radius: 10px;\n    color: #000;\n    display: flex;\n    flex-direction: column;\n    flex-grow: 1;\n    border: 1px solid #ffcad4;\n  }\n  .review-image {\n    width: 100%;\n    height: 250px !important;\n    object-fit: cover;\n    object-position: center;\n    display: block;\n    border-radius: 8px 8px 0 0;\n    margin: 0;\n    border: none;\n    box-shadow: none;\n  }\n  .star-box {\n    display: inline-block;\n    background-color: #fff;\n    border-radius: 16px;\n    padding: 6px 14px;\n    box-shadow:\n      0 1px 3px rgba(0, 0, 0, 0.12),\n      0 1px 2px rgba(0, 0, 0, 0.24);\n    line-height: 1;\n    position: relative;\n    z-index: 2;\n    margin-top: -18px;\n    color: #ffcfd8;\n    font-size: 1.4em;\n    margin-left: auto;\n    margin-right: auto;\n  }\n  .review-content {\n    text-align: center;\n    padding: 15px 10px 10px 10px;\n    font-size: 0.9em;\n    flex-grow: 1;\n  }\n  .review-content p:first-child {\n    font-weight: bold;\n  }\n  .review-carousel {\n    position: relative;\n    max-width: 1200px;\n    margin: 0px auto;\n    overflow: hidden;\n  }\n  .review-carousel-wrapper {\n    display: flex;\n    transition: transform 0.5s ease-in-out;\n  }\n  .review-slide {\n    min-width: 100%;\n    box-sizing: border-box;\n    display: flex;\n    flex-direction: column;\n  }\n  .review-carousel-button {\n    position: absolute;\n    top: 50%;\n    transform: translateY(-50%);\n    width: 34px;\n    height: 34px;\n    background-color: #fff;\n    border: 1px solid #ddd;\n    border-radius: 50%;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    cursor: pointer;\n    z-index: 10;\n    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);\n    transition: background-color 0.3s;\n    color: #fda6b6;\n    padding: 0;\n  }\n  .review-carousel-button:hover {\n    background-color: #f0f0f0;\n  }\n  .review-carousel-button.prev {\n    left: 10px;\n  }\n  .review-carousel-button.next {\n    right: 10px;\n  }\n  .review-carousel-dots {\n    text-align: center;\n    padding: 0;\n    margin-top: 15px;\n  }\n  .review-carousel-dot {\n    cursor: pointer;\n    height: 12px;\n    width: 12px;\n    margin: 0 5px;\n    background-color: #f0f0f0;\n    border-radius: 50%;\n    display: inline-block;\n    transition: background-color 0.6s ease;\n  }\n  .review-carousel-dot.active {\n    background-color: #fda6b6;\n  }\n  .lightbox {\n    display: none;\n    position: fixed;\n    z-index: 1000;\n    left: 0;\n    top: 0;\n    width: 100%;\n    height: 100%;\n    background-color: rgba(0, 0, 0, 0.8);\n    justify-content: center;\n    align-items: center;\n  }\n  .lightbox-content {\n    max-width: 90%;\n    max-height: 90%;\n    display: block;\n    margin: auto;\n  }\n  .lightbox-close {\n    position: absolute;\n    top: 20px;\n    right: 35px;\n    color: #f1f1f1;\n    font-size: 40px;\n    font-weight: bold;\n    cursor: pointer;\n  }\n\n  \/* Desktop *\/\n  @media (min-width: 601px) {\n    .review-carousel-wrapper {\n      display: flex;\n      gap: 20px;\n      transform: none !important;\n    }\n    .review-carousel .review-slide {\n      min-width: 0;\n      flex: 1 1 30%;\n    }\n    .review-carousel .review-content {\n      padding: 15px;\n      box-sizing: border-box;\n    }\n    .review-carousel-button,\n    .review-carousel-dots {\n      display: none;\n    }\n  }\n\n  \/* Mobile *\/\n  @media (max-width: 600px) {\n    .secao-grid,\n    .secao-grid-reverse {\n      grid-template-columns: 1fr;\n      grid-template-areas:\n        \"image\"\n        \"content\";\n    }\n    .secao-image img {\n      max-width: 400px;\n    }\n    .review {\n      max-width: 400px;\n      margin-left: auto;\n      margin-right: auto;\n      width: 100%;\n    }\n  }\n\u003c\/style\u003e\n\n\u003cscript\u003e\n  document.addEventListener(\"DOMContentLoaded\", function () {\n    \/\/ Accordion functionality\n    const accordionHeaders = document.querySelectorAll(\".accordion-header\");\n    accordionHeaders.forEach((header) =\u003e {\n      header.addEventListener(\"click\", function () {\n        const allBodies = document.querySelectorAll(\".accordion-body\");\n        const allHeaders = document.querySelectorAll(\".accordion-header\");\n        const currentBody = this.nextElementSibling;\n        const isActive = currentBody.classList.contains(\"active\");\n\n        \/\/ Close all\n        allBodies.forEach((body) =\u003e {\n          body.classList.remove(\"active\");\n          body.style.maxHeight = null;\n        });\n        allHeaders.forEach((h) =\u003e {\n          h.classList.remove(\"active\");\n        });\n\n        \/\/ Open current if it wasn't active\n        if (!isActive) {\n          currentBody.classList.add(\"active\");\n          this.classList.add(\"active\");\n          currentBody.style.maxHeight = currentBody.scrollHeight + 80 + \"px\";\n        }\n      });\n    });\n\n    \/\/ Review Carousel\n    const carouselWrapper = document.querySelector(\".review-carousel-wrapper\");\n    if (carouselWrapper) {\n      const slides = Array.from(carouselWrapper.children);\n      const nextButton = document.querySelector(\".review-carousel-button.next\");\n      const prevButton = document.querySelector(\".review-carousel-button.prev\");\n      const dotsContainer = document.querySelector(\".review-carousel-dots\");\n\n      let currentIndex = 0;\n      let touchStartX = 0;\n      let touchEndX = 0;\n\n      if (dotsContainer) {\n        dotsContainer.innerHTML = \"\";\n        slides.forEach((_, i) =\u003e {\n          const dot = document.createElement(\"span\");\n          dot.classList.add(\"review-carousel-dot\");\n          if (i === 0) dot.classList.add(\"active\");\n          dot.addEventListener(\"click\", () =\u003e {\n            currentIndex = i;\n            updateCarousel();\n          });\n          dotsContainer.appendChild(dot);\n        });\n      }\n\n      const dots = dotsContainer ? Array.from(dotsContainer.children) : [];\n\n      function updateCarousel() {\n        if (window.innerWidth \u003c= 600) {\n          carouselWrapper.style.transform = `translateX(-${currentIndex * 100}%)`;\n        } else {\n          carouselWrapper.style.transform = \"none\";\n        }\n        if (dots.length \u003e 0) {\n          dots.forEach((dot, i) =\u003e {\n            dot.classList.toggle(\"active\", i === currentIndex);\n          });\n        }\n      }\n\n      if (nextButton) {\n        nextButton.addEventListener(\"click\", () =\u003e {\n          currentIndex = (currentIndex + 1) % slides.length;\n          updateCarousel();\n        });\n      }\n\n      if (prevButton) {\n        prevButton.addEventListener(\"click\", () =\u003e {\n          currentIndex = (currentIndex - 1 + slides.length) % slides.length;\n          updateCarousel();\n        });\n      }\n\n      carouselWrapper.addEventListener(\n        \"touchstart\",\n        (e) =\u003e {\n          touchStartX = e.changedTouches[0].screenX;\n        },\n        { passive: true },\n      );\n\n      carouselWrapper.addEventListener(\"touchend\", (e) =\u003e {\n        touchEndX = e.changedTouches[0].screenX;\n        handleSwipe();\n      });\n\n      function handleSwipe() {\n        if (window.innerWidth \u003e 600) return;\n        const swipeThreshold = 50; \/\/ minimum distance for a swipe\n        if (touchStartX - touchEndX \u003e swipeThreshold) {\n          \/\/ Swiped left\n          currentIndex = (currentIndex + 1) % slides.length;\n          updateCarousel();\n        } else if (touchEndX - touchStartX \u003e swipeThreshold) {\n          \/\/ Swiped right\n          currentIndex = (currentIndex - 1 + slides.length) % slides.length;\n          updateCarousel();\n        }\n      }\n\n      window.addEventListener(\"resize\", () =\u003e {\n        updateCarousel();\n      });\n\n      updateCarousel();\n    }\n\n    \/\/ Lightbox functionality\n    const lightbox = document.getElementById(\"myLightbox\");\n    if (lightbox) {\n      const lightboxImg = document.getElementById(\"lightboxImg\");\n      const reviewImages = document.querySelectorAll(\".review-image\");\n      const closeBtn = document.querySelector(\".lightbox-close\");\n\n      reviewImages.forEach((img) =\u003e {\n        img.style.cursor = \"pointer\";\n        img.addEventListener(\"click\", () =\u003e {\n          document.body.appendChild(lightbox);\n          lightbox.style.display = \"flex\";\n          lightboxImg.src = img.src;\n        });\n      });\n\n      function closeLightbox() {\n        lightbox.style.display = \"none\";\n      }\n\n      if (closeBtn) {\n        closeBtn.addEventListener(\"click\", closeLightbox);\n      }\n\n      lightbox.addEventListener(\"click\", (e) =\u003e {\n        if (e.target === lightbox) {\n          closeLightbox();\n        }\n      });\n    }\n\n  });\n\u003c\/script\u003e\n\n\u003c!-- Secao 1: FAQ --\u003e\n\u003cdiv class=\"secao\"\u003e\n  \u003cdiv class=\"accordion\"\u003e\n    \u003cdiv class=\"accordion-item\"\u003e\n      \u003cdiv class=\"accordion-header\"\u003e\n        \u003cspan class=\"listinha\" style=\"margin: 0\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0723\/8320\/1562\/files\/listicon1.png?v=1772224448\" alt=\"list-icons\"\u003eIdeas de grabados\u003c\/span\u003e\n        \u003cspan class=\"icon\"\u003e\n          \u003csvg viewbox=\"0 0 256 256\"\u003e\u003cpath d=\"M165.66,101.66,139.31,128l26.35,26.34a8,8,0,0,1-11.32,11.32L128,139.31l-26.34,26.35a8,8,0,0,1-11.32-11.32L116.69,128,90.34,101.66a8,8,0,0,1,11.32-11.32L128,116.69l26.34-26.35a8,8,0,0,1,11.32,11.32ZM232,128A104,104,0,1,1,128,24,104.11,104.11,0,0,1,232,128Zm-16,0a88,88,0,1,0-88,88A88.1,88.1,0,0,0,216,128Z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n        \u003c\/span\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"accordion-body\"\u003e\n        \u003cp\u003e\u003cstrong\u003eIniciales de la pareja (A+B, A ♡ B)\u003c\/strong\u003e\u003c\/p\u003e\n        \u003cp\u003eGraba tus iniciales juntas, símbolo de amor eterno: A + B o A ♡ B\u003c\/p\u003e\n        \u003cp\u003e\u003cstrong\u003eNombres (Isabel \/ David)\u003c\/strong\u003e\u003c\/p\u003e\n        \u003cp\u003eGraba sus nombres para inmortalizar su amor en una joya que los mantendrá unidos toda la vida.\u003c\/p\u003e\n        \u003cp\u003e\u003cstrong\u003eFecha especial (24\/08\/2024)\u003c\/strong\u003e\u003c\/p\u003e\n        \u003cp\u003eTransforma un momento clave de tu historia en un recuerdo grabado para siempre: la fecha en que se conocieron, su boda o cualquier otro momento inolvidable.\u003c\/p\u003e\n        \u003cp\u003e\u003cstrong\u003eNúmeros romanos (V.XVI.MMXX)\u003c\/strong\u003e\u003c\/p\u003e\n        \u003cp\u003eAñade un toque de elegancia y misterio con una fecha grabada en números romanos. Una forma sofisticada de recordar su historia.\u003c\/p\u003e\n        \u003cp\u003e\u003ci\u003eConvierte tus joyas en una verdadera declaración de amor grabada para siempre.\u003c\/i\u003e\u003c\/p\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"accordion-item\"\u003e\n      \u003cdiv class=\"accordion-header\"\u003e\n        \u003cspan class=\"listinha\" style=\"margin: 0\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0723\/8320\/1562\/files\/listicon2.png?v=1772224448\" alt=\"list-icons\"\u003eEnvío en 24 horas\u003c\/span\u003e\n        \u003cspan class=\"icon\"\u003e\n          \u003csvg viewbox=\"0 0 256 256\"\u003e\u003cpath d=\"M165.66,101.66,139.31,128l26.35,26.34a8,8,0,0,1-11.32,11.32L128,139.31l-26.34,26.35a8,8,0,0,1-11.32-11.32L116.69,128,90.34,101.66a8,8,0,0,1,11.32-11.32L128,116.69l26.34-26.35a8,8,0,0,1,11.32,11.32ZM232,128A104,104,0,1,1,128,24,104.11,104.11,0,0,1,232,128Zm-16,0a88,88,0,1,0-88,88A88.1,88.1,0,0,0,216,128Z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n        \u003c\/span\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"accordion-body\"\u003e\n        \u003cp\u003eTodos los productos se preparan, empaquetan y se envían el mismo día en el que el pedido es realizado.\u003c\/p\u003e\n        \u003cp\u003eOfrecemos envíos en 24 horas gratuitos en México.\u003c\/p\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"accordion-item\"\u003e\n      \u003cdiv class=\"accordion-header\"\u003e\n        \u003cspan class=\"listinha\" style=\"margin: 0\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0723\/8320\/1562\/files\/listicon3.png?v=1772224449\" alt=\"list-icons\"\u003eGarantía de 3 años\u003c\/span\u003e\n        \u003cspan class=\"icon\"\u003e\n          \u003csvg viewbox=\"0 0 256 256\"\u003e\u003cpath d=\"M165.66,101.66,139.31,128l26.35,26.34a8,8,0,0,1-11.32,11.32L128,139.31l-26.34,26.35a8,8,0,0,1-11.32-11.32L116.69,128,90.34,101.66a8,8,0,0,1,11.32-11.32L128,116.69l26.34-26.35a8,8,0,0,1,11.32,11.32ZM232,128A104,104,0,1,1,128,24,104.11,104.11,0,0,1,232,128Zm-16,0a88,88,0,1,0-88,88A88.1,88.1,0,0,0,216,128Z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n        \u003c\/span\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"accordion-body\"\u003e\n        \u003cp\u003eNuestro mayor objetivo es satisfacer plenamente a nuestros clientes.\u003c\/p\u003e\n        \u003cp\u003ePor ese motivo, además de ofrecer servicio de pago Contra Entrega garantizando fiabilidad a nuestros primeros clientes, también ofrecemos \u003cstrong\u003egarantía reembolsable\u003c\/strong\u003e. Además, de nuestra garantía de reemplazo que ofrece recambios gratuitos durante 3 años.\u003c\/p\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"accordion-item\"\u003e\n      \u003cdiv class=\"accordion-header\"\u003e\n        \u003cspan class=\"listinha\" style=\"margin: 0\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0723\/8320\/1562\/files\/listicon4.png?v=1772224448\" alt=\"list-icons\"\u003eInformación del producto\u003c\/span\u003e\n        \u003cspan class=\"icon\"\u003e\n          \u003csvg viewbox=\"0 0 256 256\"\u003e\u003cpath d=\"M165.66,101.66,139.31,128l26.35,26.34a8,8,0,0,1-11.32,11.32L128,139.31l-26.34,26.35a8,8,0,0,1-11.32-11.32L116.69,128,90.34,101.66a8,8,0,0,1,11.32-11.32L128,116.69l26.34-26.35a8,8,0,0,1,11.32,11.32ZM232,128A104,104,0,1,1,128,24,104.11,104.11,0,0,1,232,128Zm-16,0a88,88,0,1,0-88,88A88.1,88.1,0,0,0,216,128Z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n        \u003c\/span\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"accordion-body\"\u003e\n        \u003cp\u003eNuestras rosas están preservadas para que su \u003cstrong\u003ebelleza y aroma\u003c\/strong\u003e perduren en el tiempo. Nos encargamos de escoger para ti las rosas más \u003cstrong\u003esofisticadas y extravagantes\u003c\/strong\u003e.\u003c\/p\u003e\n        \u003cp\u003eEl collar está hecho a mano, con un acabado en \u003cstrong\u003eoro de 18 quilates\u003c\/strong\u003e lo que hace que dure de por vida y nunca pierda color.\u003c\/p\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- Secao 2: Image left --\u003e\n\u003cdiv class=\"secao-grid-reverse\"\u003e\n  \u003cdiv class=\"secao-image\"\u003e\n    \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0723\/8320\/1562\/files\/1-left.webp?v=1772221572\" alt=\"gif left\" loading=\"lazy\"\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"secao-content\"\u003e\n    \u003ch2\u003eHecho para perdurar\u003c\/h2\u003e\n    \u003cp\u003eHecho a mano por nuestro equipo de artesanos altamente cualificados, en oro de 18 quilates, su collar está garantizado de por vida.\u003c\/p\u003e\n    \u003cp\u003eHipoalergénico, sin plomo ni níquel. 💖\u003c\/p\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- Secao 3: Image right --\u003e\n\u003cdiv class=\"secao-grid\"\u003e\n  \u003cdiv class=\"secao-image\"\u003e\n    \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0723\/8320\/1562\/files\/2-right.webp?v=1772221572\" alt=\"gif left\" loading=\"lazy\"\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"secao-content\"\u003e\n    \u003ch2\u003eDetalle inolvidable\u003c\/h2\u003e\n    \u003cp\u003eMira la felicidad en su cara cuando revele el precioso collar que esconde la rosa eterna. 💖\u003c\/p\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- Secao 4:New scrollable infinite gallery --\u003e\n\u003cdiv class=\"secao\" id=\"coverflow-gallery-section\"\u003e\n  \u003cstyle\u003e\n    .coverflow-gallery {\n      position: relative;\n      width: 100%;\n      max-width: 1200px;\n      margin: 0 auto;\n      padding: 20px 0;\n      overflow: hidden;\n    }\n    .coverflow-track {\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      position: relative;\n      height: 420px;\n      perspective: 1000px;\n    }\n    .coverflow-slide {\n      position: absolute;\n      transition: all 0.5s cubic-bezier(0.25, 0.8, 0.25, 1);\n      border-radius: 14px;\n      overflow: hidden;\n      cursor: pointer;\n      box-shadow: 0 8px 30px rgba(0, 0, 0, 0.25);\n    }\n    .coverflow-slide img {\n      width: 100%;\n      height: 100%;\n      object-fit: cover;\n      display: block;\n      border-radius: 14px;\n      box-shadow: none;\n      border: none;\n    }\n    .coverflow-arrow {\n      position: absolute;\n      top: 50%;\n      transform: translateY(-50%);\n      z-index: 10;\n      width: 44px;\n      height: 44px;\n      border-radius: 50%;\n      background: rgba(0, 0, 0, 0.55);\n      border: none;\n      cursor: pointer;\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      transition: background 0.3s ease, transform 0.2s ease;\n      -webkit-backdrop-filter: blur(4px);\n      backdrop-filter: blur(4px);\n    }\n    .coverflow-arrow:hover {\n      background: rgba(0, 0, 0, 0.8);\n      transform: translateY(-50%) scale(1.1);\n    }\n    .coverflow-arrow svg {\n      width: 22px;\n      height: 22px;\n      fill: none;\n      stroke: #fff;\n      stroke-width: 2.5;\n      stroke-linecap: round;\n      stroke-linejoin: round;\n    }\n    .coverflow-arrow.prev { left: 15px; }\n    .coverflow-arrow.next { right: 15px; }\n\n    @media (max-width: 768px) {\n      .coverflow-track { height: 280px; }\n    }\n    @media (max-width: 480px) {\n      .coverflow-track { height: 220px; }\n      .coverflow-arrow { width: 36px; height: 36px; }\n      .coverflow-arrow svg { width: 18px; height: 18px; }\n    }\n  \u003c\/style\u003e\n\n  \u003cdiv class=\"coverflow-gallery\"\u003e\n    \u003cbutton class=\"coverflow-arrow prev\" aria-label=\"Previous\"\u003e\n      \u003csvg viewbox=\"0 0 24 24\"\u003e\u003cpolyline points=\"15 18 9 12 15 6\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003e\n    \u003c\/button\u003e\n    \u003cdiv class=\"coverflow-track\"\u003e\n      \u003cdiv class=\"coverflow-slide\" data-index=\"0\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0723\/8320\/1562\/files\/3-gallery1.webp?v=1772221573\" alt=\"Gallery 1\" loading=\"lazy\"\u003e\u003c\/div\u003e\n      \u003cdiv class=\"coverflow-slide\" data-index=\"1\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0723\/8320\/1562\/files\/3-gallery2.webp?v=1772221573\" alt=\"Gallery 2\" loading=\"lazy\"\u003e\u003c\/div\u003e\n      \u003cdiv class=\"coverflow-slide\" data-index=\"2\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0723\/8320\/1562\/files\/3-gallery3.webp?v=1772221573\" alt=\"Gallery 3\" loading=\"lazy\"\u003e\u003c\/div\u003e\n      \u003cdiv class=\"coverflow-slide\" data-index=\"3\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0723\/8320\/1562\/files\/3-gallery4.webp?v=1772221573\" alt=\"Gallery 4\" loading=\"lazy\"\u003e\u003c\/div\u003e\n      \u003cdiv class=\"coverflow-slide\" data-index=\"4\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0723\/8320\/1562\/files\/3-gallery5.webp?v=1772221573\" alt=\"Gallery 5\" loading=\"lazy\"\u003e\u003c\/div\u003e\n      \u003cdiv class=\"coverflow-slide\" data-index=\"5\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0723\/8320\/1562\/files\/3-gallery6.webp?v=1772221573\" alt=\"Gallery 6\" loading=\"lazy\"\u003e\u003c\/div\u003e\n      \u003cdiv class=\"coverflow-slide\" data-index=\"6\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0723\/8320\/1562\/files\/3-gallery7.webp?v=1772221573\" alt=\"Gallery 7\" loading=\"lazy\"\u003e\u003c\/div\u003e\n      \u003cdiv class=\"coverflow-slide\" data-index=\"7\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0723\/8320\/1562\/files\/3-gallery8.webp?v=1772221573\" alt=\"Gallery 8\" loading=\"lazy\"\u003e\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cbutton class=\"coverflow-arrow next\" aria-label=\"Next\"\u003e\n      \u003csvg viewbox=\"0 0 24 24\"\u003e\u003cpolyline points=\"9 18 15 12 9 6\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003e\n    \u003c\/button\u003e\n  \u003c\/div\u003e\n\n  \u003cscript\u003e\n    (function () {\n      const section = document.getElementById(\"coverflow-gallery-section\");\n      const track = section.querySelector(\".coverflow-track\");\n      const slides = Array.from(track.querySelectorAll(\".coverflow-slide\"));\n      const prevBtn = section.querySelector(\".coverflow-arrow.prev\");\n      const nextBtn = section.querySelector(\".coverflow-arrow.next\");\n      const total = slides.length;\n      let current = 0;\n      let isAnimating = false;\n\n      function mod(n, m) { return ((n % m) + m) % m; }\n\n      function updatePositions() {\n        const isMobile = window.innerWidth \u003c= 480;\n        const isTablet = window.innerWidth \u003c= 768 \u0026\u0026 window.innerWidth \u003e 480;\n\n        const centerW = isMobile ? 200 : isTablet ? 280 : 360;\n        const centerH = isMobile ? 180 : isTablet ? 260 : 400;\n        const sideW   = isMobile ? 140 : isTablet ? 190 : 250;\n        const sideH   = isMobile ? 130 : isTablet ? 200 : 310;\n        const farW    = isMobile ? 100 : isTablet ? 140 : 180;\n        const farH    = isMobile ? 95  : isTablet ? 150 : 230;\n        const peekW   = isMobile ? 70  : isTablet ? 100 : 130;\n        const peekH   = isMobile ? 70  : isTablet ? 110 : 170;\n\n        const offsets = isMobile\n          ? [0, 130, -130, 230, -230, 300, -300, 350]\n          : isTablet\n          ? [0, 200, -200, 350, -350, 460, -460, 530]\n          : [0, 280, -280, 480, -480, 620, -620, 720];\n\n        const configs = [\n          { w: centerW, h: centerH, z: 5, op: 1,    tx: offsets[0] },\n          { w: sideW,   h: sideH,   z: 4, op: 0.85, tx: offsets[1] },\n          { w: sideW,   h: sideH,   z: 4, op: 0.85, tx: offsets[2] },\n          { w: farW,    h: farH,    z: 3, op: 0.6,  tx: offsets[3] },\n          { w: farW,    h: farH,    z: 3, op: 0.6,  tx: offsets[4] },\n          { w: peekW,   h: peekH,   z: 2, op: 0.35, tx: offsets[5] },\n          { w: peekW,   h: peekH,   z: 2, op: 0.35, tx: offsets[6] },\n          { w: peekW,   h: peekH,   z: 1, op: 0,    tx: offsets[7] },\n        ];\n\n        const posMap = [0, 1, 2, 3, 4, 5, 6, 7];\n\n        slides.forEach((slide, i) =\u003e {\n          const offset = mod(i - current, total);\n          let posIndex;\n          if (offset === 0) posIndex = 0;\n          else if (offset === 1) posIndex = 1;\n          else if (offset === total - 1) posIndex = 2;\n          else if (offset === 2) posIndex = 3;\n          else if (offset === total - 2) posIndex = 4;\n          else if (offset === 3) posIndex = 5;\n          else if (offset === total - 3) posIndex = 6;\n          else posIndex = 7;\n\n          const cfg = configs[posIndex];\n          slide.style.width = cfg.w + \"px\";\n          slide.style.height = cfg.h + \"px\";\n          slide.style.zIndex = cfg.z;\n          slide.style.opacity = cfg.op;\n          slide.style.transform = \"translateX(\" + (cfg.tx - cfg.w \/ 2) + \"px)\";\n          slide.style.left = \"50%\";\n        });\n      }\n\n      function goTo(index) {\n        if (isAnimating) return;\n        isAnimating = true;\n        current = mod(index, total);\n        updatePositions();\n        setTimeout(() =\u003e { isAnimating = false; }, 500);\n      }\n\n      prevBtn.addEventListener(\"click\", () =\u003e goTo(current - 1));\n      nextBtn.addEventListener(\"click\", () =\u003e goTo(current + 1));\n\n      slides.forEach((slide, i) =\u003e {\n        slide.addEventListener(\"click\", () =\u003e goTo(i));\n      });\n\n      \/* Touch \/ swipe support *\/\n      let startX = 0;\n      let dragging = false;\n      track.addEventListener(\"touchstart\", (e) =\u003e { startX = e.touches[0].clientX; dragging = true; }, { passive: true });\n      track.addEventListener(\"touchmove\", (e) =\u003e { e.preventDefault(); }, { passive: false });\n      track.addEventListener(\"touchend\", (e) =\u003e {\n        if (!dragging) return;\n        dragging = false;\n        const diff = e.changedTouches[0].clientX - startX;\n        if (Math.abs(diff) \u003e 40) { diff \u003e 0 ? goTo(current - 1) : goTo(current + 1); }\n      });\n\n      updatePositions();\n      window.addEventListener(\"resize\", updatePositions);\n    })();\n  \u003c\/script\u003e\n\u003c\/div\u003e\n\n\u003c!-- Secao 5: Big background image --\u003e\n\u003cdiv class=\"secao-background-image\"\u003e\n  \u003cstyle\u003e\n    .secao-background-image {\n      background-image: url(\"https:\/\/cdn.shopify.com\/s\/files\/1\/0723\/8320\/1562\/files\/4-background.webp?v=1772221574\");\n      background-size: cover;\n      background-position: center;\n      background-repeat: no-repeat;\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      height: 500px;\n      width: 100%;\n    }\n    .secao-background-image h1 {\n      color: #fff;\n      margin: 0;\n      padding: 20px;\n      text-align: center;\n      text-shadow: 0 0 10px rgba(0, 0, 0, 0.5);\n    }\n  \u003c\/style\u003e\n  \u003ch1\u003e\n    Caja de Rosa Eterna\u003cbr\u003e\n    Rosa Real y Collar Personalizado\n  \u003c\/h1\u003e\n\u003c\/div\u003e\n\n\u003c!-- Secao 6: FAQ2 --\u003e\n\u003cdiv class=\"secao\"\u003e\n  \u003ch2\u003ePreguntas Frecuentes\u003c\/h2\u003e\n  \u003cdiv class=\"accordion\"\u003e\n    \u003cdiv class=\"accordion-item\"\u003e\n      \u003cdiv class=\"accordion-header\"\u003e\n        ¿Cuánto dura la Rosa Eterna?\n        \u003cspan class=\"icon\"\u003e\n          \u003csvg viewbox=\"0 0 256 256\"\u003e\u003cpath d=\"M165.66,101.66,139.31,128l26.35,26.34a8,8,0,0,1-11.32,11.32L128,139.31l-26.34,26.35a8,8,0,0,1-11.32-11.32L116.69,128,90.34,101.66a8,8,0,0,1,11.32-11.32L128,116.69l26.34-26.35a8,8,0,0,1,11.32,11.32ZM232,128A104,104,0,1,1,128,24,104.11,104.11,0,0,1,232,128Zm-16,0a88,88,0,1,0-88,88A88.1,88.1,0,0,0,216,128Z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n        \u003c\/span\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"accordion-body\"\u003e\n        \u003cp\u003eUtilizamos un proceso de conservación especial en las rosas eternas que reemplaza la savia natural de la rosa con una solución que mantiene el color, la textura y la belleza de la rosa.\n        \u003c\/p\u003e\n\u003cp\u003eLa vida útil de su rosa eterna puede variar dependienndo de factores ambientales: es posible conservar su rosa eterna por un período de tiempo indefinido si se la cuida bien (debe durar al menos de 3 a 5 años y puede durar mucho más).\u003c\/p\u003e\n        \u003cp\u003e\u003cem\u003eA continuación se ofrecen algunos consejos para asegurarse de que su rosa eterna dure:\u003c\/em\u003e\u003c\/p\u003e\n        \u003col\u003e\n          \u003cli\u003eMantenla alejada de la luz solar directa: Lo mejor es mantener tu rosa eterna en un área fresca y sombreada de tu hogar.\u003c\/li\u003e\n          \u003cli\u003eEvite la exposición a la humedad: El agua puede hacer que los pétalos de la rosa se decoloren o incluso se enmohezcan. Mantén tu rosa eterna alejada de zonas húmedas y no intentes regarla.\u003c\/li\u003e\n          \u003cli\u003eManéjela con cuidado: Si bien una rosa eterna es resistente, aún puede dañarse si se manipula con brusquedad. Evite tocar demasiado los pétalos o el tallo y tenga cuidado al moverlo de un lugar a otro.\u003c\/li\u003e\n          \u003cli\u003eGuárdala en la vitrina: Una rosa eterna se puede guardar en una vitrina (con la tapa puesta) para protegerla del polvo y otros factores ambientales.\u003c\/li\u003e\n        \u003c\/ol\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"accordion-item\"\u003e\n      \u003cdiv class=\"accordion-header\"\u003e\n        ¿Necesito regar o mantener la rosa?\n        \u003cspan class=\"icon\"\u003e\n          \u003csvg viewbox=\"0 0 256 256\"\u003e\u003cpath d=\"M165.66,101.66,139.31,128l26.35,26.34a8,8,0,0,1-11.32,11.32L128,139.31l-26.34,26.35a8,8,0,0,1-11.32-11.32L116.69,128,90.34,101.66a8,8,0,0,1,11.32-11.32L128,116.69l26.34-26.35a8,8,0,0,1,11.32,11.32ZM232,128A104,104,0,1,1,128,24,104.11,104.11,0,0,1,232,128Zm-16,0a88,88,0,1,0-88,88A88.1,88.1,0,0,0,216,128Z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n        \u003c\/span\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"accordion-body\"\u003e\n        \u003cp\u003e\u003cstrong\u003e¡No!\u003c\/strong\u003e No es necesario regar ni mantener la rosa en nuestra caja de rosas eternas. Hemos desarrollado un proceso de conservación especial que mantiene la rosa con un aspecto fresco y vibrante sin necesidad de mantenimiento.\u003c\/p\u003e\n        \u003cp\u003eNuestras cajas de rosas eternas están diseñadas para brindarle una exhibición de belleza duradera y sin complicaciones, permitiéndole disfrutar de la elegancia de la rosa sin preocuparse por el mantenimiento.\u003c\/p\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"accordion-item\"\u003e\n      \u003cdiv class=\"accordion-header\"\u003e\n        ¿El collar es ajustable?\n        \u003cspan class=\"icon\"\u003e\n          \u003csvg viewbox=\"0 0 256 256\"\u003e\u003cpath d=\"M165.66,101.66,139.31,128l26.35,26.34a8,8,0,0,1-11.32,11.32L128,139.31l-26.34,26.35a8,8,0,0,1-11.32-11.32L116.69,128,90.34,101.66a8,8,0,0,1,11.32-11.32L128,116.69l26.34-26.35a8,8,0,0,1,11.32,11.32ZM232,128A104,104,0,1,1,128,24,104.11,104.11,0,0,1,232,128Zm-16,0a88,88,0,1,0-88,88A88.1,88.1,0,0,0,216,128Z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n        \u003c\/span\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"accordion-body\"\u003e\n        \u003cp\u003e\u003cstrong\u003eSí\u003c\/strong\u003e, el collar incluido en nuestra caja de rosas es ajustable, lo que facilita su uso con el largo perfecto para usted. El collar presenta una delicada cadena con cierre de langosta que le permite ajustar la longitud del collar al tamaño deseado.\u003c\/p\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"accordion-item\"\u003e\n      \u003cdiv class=\"accordion-header\"\u003e\n        ¿El collar se desgasta o cambia de color?\n        \u003cspan class=\"icon\"\u003e\n          \u003csvg viewbox=\"0 0 256 256\"\u003e\u003cpath d=\"M165.66,101.66,139.31,128l26.35,26.34a8,8,0,0,1-11.32,11.32L128,139.31l-26.34,26.35a8,8,0,0,1-11.32-11.32L116.69,128,90.34,101.66a8,8,0,0,1,11.32-11.32L128,116.69l26.34-26.35a8,8,0,0,1,11.32,11.32ZM232,128A104,104,0,1,1,128,24,104.11,104.11,0,0,1,232,128Zm-16,0a88,88,0,1,0-88,88A88.1,88.1,0,0,0,216,128Z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n        \u003c\/span\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"accordion-body\"\u003e\n        \u003cp\u003eNuestro collar con oro de 18 quilates está fabricado con materiales de alta calidad, el oro es un material \u003cstrong\u003eresistente que perdura en el tiempo\u003c\/strong\u003e.\u003c\/p\u003e\n        \u003cp\u003ePrometemos a nuestros clientes una buena experiencia, por ello nos aseguramos de que nuestras joyas \u003cstrong\u003eno pierdan color y duren para siempre\u003c\/strong\u003e.\u003c\/p\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- Secao 7: Review cards --\u003e\n\u003cdiv class=\"secao\"\u003e\n  \u003ch2\u003eReseñas de clientes\u003c\/h2\u003e\n  \u003cdiv class=\"review-carousel\"\u003e\n    \u003cdiv class=\"review-carousel-wrapper\"\u003e\n      \u003cdiv class=\"review-slide\"\u003e\n        \u003cdiv class=\"review\"\u003e\n          \u003cimg class=\"review-image\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0723\/8320\/1562\/files\/5-review1.jpg?v=1772221572\" alt=\"reviewCard1\" loading=\"lazy\"\u003e\n          \u003cdiv class=\"star-box\"\u003e★★★★★\u003c\/div\u003e\n          \u003cdiv class=\"review-content\"\u003e\n            \u003cp\u003eEsther\u003c\/p\u003e\n            \u003cp\u003eNo tengo palabras... me lo regalaron por sorpresa y casi lloro. La rosa es de verdad y huele super bien, el color es brutal y la caja queda preciosa. El collar venia grabado con mi nombre y ha quedado genial. De verdad q es de los regalos mas bonitos q he recibido\u003c\/p\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"review-slide\"\u003e\n        \u003cdiv class=\"review\"\u003e\n          \u003cimg class=\"review-image\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0723\/8320\/1562\/files\/5-review2.jpg?v=1772221573\" alt=\"reviewCard2\" loading=\"lazy\"\u003e\n          \u003cdiv class=\"star-box\"\u003e★★★★★\u003c\/div\u003e\n          \u003cdiv class=\"review-content\"\u003e\n            \u003cp\u003eLucia\u003c\/p\u003e\n            \u003cp\u003eNo conocia esta marca pero me transmitio confianza y la verdad q fue un acierto total. Todo super claro desde el principio, el pedido llego rapidisimo y cuando lo abri me encanto. Se nota q lo hacen con cariño y q cuidan cada detalle. Repetiria sin pensarlo 💖\u003c\/p\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"review-slide\"\u003e\n        \u003cdiv class=\"review\"\u003e\n          \u003cimg class=\"review-image\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0723\/8320\/1562\/files\/5-review3.webp?v=1772221573\" alt=\"reviewCard3\" loading=\"lazy\"\u003e\n          \u003cdiv class=\"star-box\"\u003e★★★★★\u003c\/div\u003e\n          \u003cdiv class=\"review-content\"\u003e\n            \u003cp\u003ePaula\u003c\/p\u003e\n            \u003cp\u003eAl principio dudaba porque no conocia la tienda, pero ha sido un acierto total. El pedido llego super rapido y la calidad del collar me sorprendio. El grabado se ve claro y la caja esta muy bien presentada. Se nota q cuidan los detalles. Lo recomiendo sin ninguna duda.\u003c\/p\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"review-carousel-button prev\"\u003e\n      \u003csvg width=\"24\" height=\"24\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpolyline points=\"15 18 9 12 15 6\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"review-carousel-button next\"\u003e\n      \u003csvg width=\"24\" height=\"24\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpolyline points=\"9 18 15 12 9 6\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"review-carousel-dots\"\u003e\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- The Lightbox --\u003e\n\u003cdiv id=\"myLightbox\" class=\"lightbox\"\u003e\n  \u003cspan class=\"lightbox-close\"\u003e×\u003c\/span\u003e\n  \u003cimg class=\"lightbox-content\" id=\"lightboxImg\"\u003e\n\u003c\/div\u003e\n","brand":"BestMaxy","offers":[{"title":"Rojo \/ Oro 18k","offer_id":48594448285939,"sku":"no","price":790.0,"currency_code":"MXN","in_stock":true},{"title":"Rojo \/ Plata","offer_id":48594448318707,"sku":"no","price":790.0,"currency_code":"MXN","in_stock":true},{"title":"Rosa \/ Oro 18k","offer_id":48594448351475,"sku":"no","price":790.0,"currency_code":"MXN","in_stock":true},{"title":"Rosa \/ Plata","offer_id":48594448384243,"sku":"no","price":790.0,"currency_code":"MXN","in_stock":true},{"title":"Azul \/ Oro 18k","offer_id":48594448417011,"sku":"no","price":790.0,"currency_code":"MXN","in_stock":true},{"title":"Azul \/ Plata","offer_id":48594448449779,"sku":"no","price":790.0,"currency_code":"MXN","in_stock":true},{"title":"Blanco \/ Oro 18k","offer_id":48594448482547,"sku":"no","price":790.0,"currency_code":"MXN","in_stock":true},{"title":"Blanco \/ Plata","offer_id":48594448515315,"sku":"no","price":790.0,"currency_code":"MXN","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0553\/1988\/8068\/files\/SYLOR-CAJA-ROJO-DORADO_20_1__upscayl_8x_bc690734-0202-4d1c-b51a-ec6318079336.webp?v=1772557178","url":"https:\/\/www.topmaxy.com\/products\/caja-de-rosa-eterna","provider":"TopMaxy","version":"1.0","type":"link"}