{"product_id":"eternalrosebox","title":"Boîte à roses éternelles | Rose véritable et collier personnalisé","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\"\u003eIdées de gravure\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\u003eInitiales du couple (A+B, A ♡ B)\u003c\/strong\u003e\u003c\/p\u003e\n        \u003cp\u003eGravez vos initiales ensemble, symbole d'amour éternel : A + B ou A ♡ B\u003c\/p\u003e\n        \u003cp\u003e\u003cstrong\u003ePrénoms (Isabelle \/ David)\u003c\/strong\u003e\u003c\/p\u003e\n        \u003cp\u003eGravez vos noms pour immortaliser votre amour dans un bijou qui vous gardera unis pour la vie.\u003c\/p\u003e\n        \u003cp\u003e\u003cstrong\u003eDate spéciale (24\/08\/2024)\u003c\/strong\u003e\u003c\/p\u003e\n        \u003cp\u003eTransformez un moment clé de votre histoire en un souvenir gravé à jamais : la date de votre rencontre, votre mariage ou tout autre moment inoubliable.\u003c\/p\u003e\n        \u003cp\u003e\u003cstrong\u003eChiffres romains (V.XVI.MMXX)\u003c\/strong\u003e\u003c\/p\u003e\n        \u003cp\u003eAjoutez une touche d'élégance et de mystère avec une date gravée en chiffres romains. Une façon sophistiquée de se souvenir de votre histoire.\u003c\/p\u003e\n        \u003cp\u003e\u003ci\u003eTransformez vos bijoux en une véritable déclaration d'amour gravée pour toujours.\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\"\u003eExpédition 24\/48h\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\u003eTous les produits sont préparés, emballés et expédiés le jour même de la commande.\u003c\/p\u003e\n        \u003cp\u003eNous offrons l'expédition gratuite 24\/48h au Canada.\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\"\u003eGarantie de 6 mois\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\u003eNotre plus grand objectif est de satisfaire pleinement nos clients.\u003c\/p\u003e\n        \u003cp\u003ePour cette raison, en plus d'offrir le paiement à la livraison pour garantir la fiabilité à nos nouveaux clients, nous offrons également une \u003cstrong\u003egarantie de remboursement\u003c\/strong\u003e. En plus de notre garantie de remplacement qui offre des pièces gratuites pendant 6 mois, avec une extension allant jusqu'à 1 an.\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\"\u003eInformations sur le produit\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\u003eNos roses sont préservées pour que leur \u003cstrong\u003ebeauté et leur parfum\u003c\/strong\u003e durent dans le temps. Nous prenons soin de choisir pour vous les roses les plus \u003cstrong\u003esophistiquées et extravagantes\u003c\/strong\u003e.\u003c\/p\u003e\n        \u003cp\u003eLe collier est fait à la main, avec une finition en \u003cstrong\u003eor 18 carats\u003c\/strong\u003e, ce qui le fait durer toute une vie et ne jamais perdre sa couleur.\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\u003eFait pour durer\u003c\/h2\u003e\n    \u003cp\u003eFabriqué à la main par notre équipe d'artisans hautement qualifiés, en or 18 carats, votre collier est garanti à vie.\u003c\/p\u003e\n    \u003cp\u003eHypoallergénique, sans plomb et sans nickel. 💖\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\u003eDétail inoubliable\u003c\/h2\u003e\n    \u003cp\u003eRegardez le bonheur sur son visage lorsqu'elle révèle le précieux collier qui cache la rose éternelle. 💖\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    Boîte de Rose Éternelle\u003cbr\u003e\n    Vraie Rose et Collier Personnalisé\n  \u003c\/h1\u003e\n\u003c\/div\u003e\n\n\u003c!-- Secao 6: FAQ2 --\u003e\n\u003cdiv class=\"secao\"\u003e\n  \u003ch2\u003eFoire Aux Questions\u003c\/h2\u003e\n  \u003cdiv class=\"accordion\"\u003e\n    \u003cdiv class=\"accordion-item\"\u003e\n      \u003cdiv class=\"accordion-header\"\u003e\n        Combien de temps dure la Rose Éternelle ?\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\u003eNous utilisons un processus de préservation spécial sur les roses éternelles qui remplace la sève naturelle de la rose par une solution qui maintient la couleur, la texture et la beauté de la rose.\n        \u003c\/p\u003e\n\u003cp\u003eLa durée de vie de votre rose éternelle peut varier en fonction des facteurs environnementaux : il est possible de conserver votre rose éternelle pour une durée indéterminée si elle est bien entretenue (elle doit durer au moins 3 à 5 ans et peut durer beaucoup plus longtemps).\u003c\/p\u003e\n        \u003cp\u003e\u003cem\u003eVoici quelques conseils pour vous assurer que votre rose éternelle dure :\u003c\/em\u003e\u003c\/p\u003e\n        \u003col\u003e\n          \u003cli\u003eGardez-la à l'abri de la lumière directe du soleil : il est préférable de conserver votre rose éternelle dans un endroit frais et ombragé de votre maison.\u003c\/li\u003e\n          \u003cli\u003eÉvitez l'exposition à l'humidité : l'eau peut décolorer les pétales de la rose ou même causer des moisissures. Gardez votre rose éternelle à l'abri des zones humides et n'essayez pas de l'arroser.\u003c\/li\u003e\n          \u003cli\u003eManipulez avec soin : bien qu'une rose éternelle soit résistante, elle peut tout de même être endommagée si elle est manipulée brusquement. Évitez de trop toucher les pétales ou la tige et soyez prudent lorsque vous la déplacez d'un endroit à un autre.\u003c\/li\u003e\n          \u003cli\u003eConservez-la dans la vitrine : une rose éternelle peut être conservée dans une vitrine (avec le couvercle en place) pour la protéger de la poussière et des autres facteurs environnementaux.\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        Dois-je arroser ou entretenir la rose ?\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\u003eNon !\u003c\/strong\u003e Il n'est pas nécessaire d'arroser ou d'entretenir la rose dans notre boîte à roses éternelles. Nous avons développé un processus de conservation spécial qui garde la rose fraîche et éclatante sans nécessiter d'entretien.\u003c\/p\u003e\n        \u003cp\u003eNos boîtes à roses éternelles sont conçues pour vous offrir une présentation de beauté durable et sans tracas, vous permettant de profiter de l'élégance de la rose sans vous soucier de l'entretien.\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        Le collier est-il 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\u003eOui\u003c\/strong\u003e, le collier inclus dans notre boîte à roses est ajustable, ce qui le rend facile à porter à la longueur parfaite pour vous. Le collier comporte une chaîne délicate avec un fermoir à homard qui vous permet d'ajuster la longueur du collier à la taille souhaitée.\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        Le collier s'use-t-il ou change-t-il de couleur ?\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\u003eNotre collier en or 18 carats est fait de matériaux de haute qualité, l'or est un matériau \u003cstrong\u003erésistant qui dure dans le temps\u003c\/strong\u003e.\u003c\/p\u003e\n        \u003cp\u003eNous promettons à nos clients une excellente expérience, c'est pourquoi nous nous assurons que nos bijoux \u003cstrong\u003ene perdent pas leur couleur et durent pour toujours\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\u003eAvis des clients\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\u003eEmma\u003c\/p\u003e\n            \u003cp\u003eJe n'ai pas de mots... on me l'a offert en surprise et j'ai failli pleurer. La rose est vraie et sent super bon, la couleur est incroyable et la boîte est magnifique. Le collier était gravé avec mon nom et il est génial. Vraiment l'un des plus beaux cadeaux que j'aie reçus\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\u003eLéa\u003c\/p\u003e\n            \u003cp\u003eJe ne connaissais pas cette marque mais elle m'a inspiré confiance et ça a été un succès total. Tout était super clair depuis le début, la commande est arrivée très rapidement et quand je l'ai ouverte, j'ai adoré. On voit qu'ils le font avec amour et qu'ils soignent chaque détail. Je le referais sans hésiter 💖\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\u003eChloé\u003c\/p\u003e\n            \u003cp\u003eAu début j'hésitais car je ne connaissais pas la boutique, mais ça a été un succès total. La commande est arrivée super rapidement et la qualité du collier m'a surprise. La gravure est claire et la boîte est très bien présentée. On peut dire qu'ils font attention aux détails. Je le recommande sans aucun doute.\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":"Rouge \/ Or 18k","offer_id":45769208365229,"sku":"no","price":69.9,"currency_code":"CAD","in_stock":true},{"title":"Rouge \/ Argent","offer_id":45769208397997,"sku":"no","price":69.9,"currency_code":"CAD","in_stock":true},{"title":"Rose \/ Or 18k","offer_id":45769208430765,"sku":"no","price":69.9,"currency_code":"CAD","in_stock":true},{"title":"Rose \/ Argent","offer_id":45769208463533,"sku":"no","price":69.9,"currency_code":"CAD","in_stock":true},{"title":"Bleu \/ Or 18k","offer_id":45769208496301,"sku":"no","price":69.9,"currency_code":"CAD","in_stock":true},{"title":"Bleu \/ Argent","offer_id":45769208529069,"sku":"no","price":69.9,"currency_code":"CAD","in_stock":true},{"title":"Blanc \/ Or 18k","offer_id":45769208561837,"sku":"no","price":69.9,"currency_code":"CAD","in_stock":true},{"title":"Blanc \/ Argent","offer_id":45769208594605,"sku":"no","price":69.9,"currency_code":"CAD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0540\/8053\/6749\/files\/SYLOR-CAJA-ROJO-DORADO_20_1__upscayl_8x_bc690734-0202-4d1c-b51a-ec6318079336.webp?v=1772467603","url":"https:\/\/www.bestmaxy.com\/en\/products\/eternalrosebox","provider":"BestMaxy","version":"1.0","type":"link"}