{"product_id":"poudre-dube","title":"Poudre d'Ube Premium","description":"\u003cdiv class=\"ube-offer-header\" id=\"ube-offer-header\"\u003e\n  \u003cspan class=\"ube-offer-header__current\" id=\"bundle-price-current\"\u003e24,90€\u003c\/span\u003e\n  \u003cspan class=\"ube-offer-header__compare\" id=\"bundle-price-compare\"\u003e29,90€\u003c\/span\u003e\n  \u003cspan class=\"ube-offer-header__badge\" id=\"bundle-price-note\"\u003eOffre découverte\u003c\/span\u003e\n\u003c\/div\u003e\n\n\u003cp style=\"font-size: 17px; line-height: 1.7; font-family: 'TitleFont'; color: #6d407b;\"\u003eLa boisson bien-être qui réunit plaisir et bienfaits.\u003c\/p\u003e\n\u003cp style=\"line-height: 1.7; margin-top: 0 !important;\"\u003eL'ube, sourcée au cœur des Philippines.\u003c\/p\u003e\n\n\u003cul\u003e\n  \u003cli\u003e\n    \u003cspan class=\"ube-info\" tabindex=\"0\"\u003e\n      Un concentré naturel de bienfaits\n      \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0931\/1803\/8283\/files\/information.svg?v=1771092121\" alt=\"Info\"\u003e\n      \u003cspan class=\"ube-tooltip\"\u003e\n        • Une source d'énergie stable sans pic\u003cbr\u003e\n        • Il renforce la digestion et la satiété\u003cbr\u003e\n        • Il booste la peau et les cheveux\u003cbr\u003e\n        • Il contribue à réduire le stress\u003cbr\u003e\u003cbr\u003e\n        \u003ca href=\"#shopify-section-template--25389555613963__custom_liquid_MiAkyF\" class=\"ube-tooltip__link\"\u003e En savoir plus \u003c\/a\u003e\n      \u003c\/span\u003e\n    \u003c\/span\u003e\n  \u003c\/li\u003e\n  \u003cli\u003eGoût vanille\/noisette, non amer\u003c\/li\u003e\n  \u003cli\u003eSans caféine ni sucre ajouté\u003c\/li\u003e\n  \u003cli\u003ePrêt en 2 minutes, chaud ou froid\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003cp id=\"rituel-dynamic-text\"\u003e1 sachet ≈ 16 à 22 boissons soit ~1,20€ par rituel.\u003c\/p\u003e\n\u003cbr\u003e\u003cbr\u003e\n\n\u003cstyle\u003e\n  li::marker {\n    color: #6D407B;\n  }\n\n  .ube-offer-header {\n    display: flex;\n    align-items: center;\n    flex-wrap: wrap;\n    gap: 8px;\n    margin-bottom: 12px;\n    line-height: 1.2;\n  }\n\n  .ube-offer-header__current {\n  }\n\n  .ube-offer-header__compare {\n    color: #8f8f8f;\n    text-decoration: line-through;\n  }\n\n  .ube-offer-header__badge {\n    color: #2E9E5B;\n  }\n\n  .ube-info {\n    position: relative;\n    display: inline-flex;\n    align-items: center;\n    cursor: pointer;\n  }\n\n  .ube-info img {\n    width: 16px;\n    height: 16px;\n    display: block;\n    margin-left: 4px;\n  }\n\n  .ube-tooltip {\n    position: absolute;\n    left: 50%;\n    top: calc(100% + 8px);\n    transform: translateX(-50%);\n    background: #fff;\n    color: #111;\n    border: 1px solid #ddd;\n    padding: 10px 12px;\n    font-size: 12px;\n    line-height: 1.5;\n    white-space: nowrap;\n    box-shadow: 0 8px 18px rgba(0, 0, 0, 0.08);\n    border-radius: 6px;\n    opacity: 0;\n    visibility: hidden;\n    transition: opacity 200ms ease, visibility 200ms ease;\n    z-index: 10;\n    pointer-events: auto;\n  }\n\n  .ube-tooltip__link {\n    color: rgb(var(--color-button-background)) !important;\n    text-decoration-thickness: initial !important;\n  }\n\n  .ube-info:hover .ube-tooltip,\n  .ube-info:focus-within .ube-tooltip,\n  .ube-tooltip:hover {\n    opacity: 1;\n    visibility: visible;\n  }\n\u003c\/style\u003e\n\n\u003cstyle\u003e\n  \/* Remplace l'ID par celui de ton bloc custom liquid si nécessaire *\/\n  #shopify-block-TON_ID_DU_BLOC {\n    margin: 0 !important;\n    padding: 0 !important;\n    min-height: 0 !important;\n  }\n\u003c\/style\u003e\n\n\u003cscript\u003e\n  (function () {\n    const TEXT_ID = \"rituel-dynamic-text\";\n    const PRICE_CURRENT_ID = \"bundle-price-current\";\n    const PRICE_COMPARE_ID = \"bundle-price-compare\";\n    const PRICE_NOTE_ID = \"bundle-price-note\";\n\n    const BUNDLE_CONTAINER_SELECTOR = \".Avada-Bundle-Offer__Volume\";\n    const BUNDLE_ITEM_SELECTOR = \".Avada-Volume__Item\";\n    const SELECTED_CLASS = \"Avada-Volume__Item--Selected\";\n\n    const DRINKS_MIN_PER_SACHET = 16;\n    const DRINKS_MAX_PER_SACHET = 22;\n\n    const BUNDLE_DATA_BY_POSITION = {\n      0: {\n        qty: 1,\n        currentPrice: \"24,90€\",\n        comparePrice: \"29,90€\",\n        note: \"Offre découverte\",\n        pricePerRituel: \"1,30€\"\n      },\n      1: {\n        qty: 2,\n        currentPrice: \"45,90€\",\n        comparePrice: \"59,80€\",\n        note: \"Livraison offerte\",\n        pricePerRituel: \"1,20€\"\n      },\n      2: {\n        qty: 3,\n        currentPrice: \"63,90€\",\n        comparePrice: \"89,70€\",\n        note: \"Livraison offerte\",\n        pricePerRituel: \"1,10€\"\n      }\n    };\n\n    function updateBundleContent() {\n      const output = document.getElementById(TEXT_ID);\n      const currentPriceEl = document.getElementById(PRICE_CURRENT_ID);\n      const comparePriceEl = document.getElementById(PRICE_COMPARE_ID);\n      const noteEl = document.getElementById(PRICE_NOTE_ID);\n      const container = document.querySelector(BUNDLE_CONTAINER_SELECTOR);\n\n      if (!output || !currentPriceEl || !comparePriceEl || !noteEl || !container) return;\n\n      const items = Array.from(container.querySelectorAll(BUNDLE_ITEM_SELECTOR));\n      if (!items.length) return;\n\n      let selectedIndex = items.findIndex(function (item) {\n        return item.classList.contains(SELECTED_CLASS);\n      });\n\n      if (selectedIndex === -1) {\n        selectedIndex = 0;\n      }\n\n      const bundleData = BUNDLE_DATA_BY_POSITION[selectedIndex] || BUNDLE_DATA_BY_POSITION[0];\n      const qty = bundleData.qty;\n      const totalMinDrinks = qty * DRINKS_MIN_PER_SACHET;\n      const totalMaxDrinks = qty * DRINKS_MAX_PER_SACHET;\n\n      currentPriceEl.textContent = bundleData.currentPrice;\n      comparePriceEl.textContent = bundleData.comparePrice;\n      noteEl.textContent = bundleData.note;\n\n      output.textContent =\n        qty + \" sachet\" + (qty \u003e 1 ? \"s\" : \"\") +\n        \" ≈ \" + totalMinDrinks + \" à \" + totalMaxDrinks +\n        \" boissons soit ~\" + bundleData.pricePerRituel + \" par rituel.\";\n    }\n\n    function bindBundleEvents(container) {\n      if (container.dataset.ubeBound === \"true\") return;\n      container.dataset.ubeBound = \"true\";\n\n      container.addEventListener(\"click\", function () {\n        setTimeout(updateBundleContent, 80);\n        setTimeout(updateBundleContent, 200);\n      });\n\n      container.addEventListener(\"change\", function () {\n        setTimeout(updateBundleContent, 80);\n      });\n\n      const observer = new MutationObserver(function () {\n        updateBundleContent();\n      });\n\n      observer.observe(container, {\n        childList: true,\n        subtree: true,\n        attributes: true,\n        attributeFilter: [\"class\", \"aria-checked\"]\n      });\n    }\n\n    function init() {\n      const container = document.querySelector(BUNDLE_CONTAINER_SELECTOR);\n      if (!container) return false;\n\n      bindBundleEvents(container);\n      updateBundleContent();\n      return true;\n    }\n\n    let attempts = 0;\n    const maxAttempts = 40;\n\n    function retryInit() {\n      const ok = init();\n      attempts += 1;\n\n      if (!ok \u0026\u0026 attempts \u003c maxAttempts) {\n        setTimeout(retryInit, 300);\n      }\n    }\n\n    if (document.readyState === \"loading\") {\n      document.addEventListener(\"DOMContentLoaded\", retryInit);\n    } else {\n      retryInit();\n    }\n  })();\n\u003c\/script\u003e\n","brand":"Maori de Lilaya","offers":[{"title":"Default Title","offer_id":52848970170635,"sku":"LIL-UBE-80G","price":24.9,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0931\/1803\/8283\/files\/PHOTO_PACKSHOT___OFFICIEL___LILAYA.jpg?v=1774345447","url":"https:\/\/lilaya.co\/products\/poudre-dube","provider":"Lilaya","version":"1.0","type":"link"}