{"product_id":"huile-cbd-bio-500-mg","title":"Huile CBD bio 500 mg","description":"\u003c!-- TRIKOME – Bloc pliable robuste (H2 + 20 mots du 1er paragraphe \/ En voir plus) --\u003e\n\u003cstyle\u003e\n  .trk-fold h2 { margin: 2em 0 1em !important; }\n  .trk-fold h3 { margin: 1.5em 0 .85em !important; }\n  .trk-fold p  { margin: 1em 0 !important; }\n\n  .trk-toggle{\n    appearance:none;\n    -webkit-appearance:none;\n    background:transparent !important;\n    border:0 !important;\n    padding:0 !important;\n    margin-top:10px;\n    font-size:16px;\n    cursor:pointer;\n    color:#000 !important;\n    font-weight:700;\n    text-decoration: underline;\n    border-radius:0 !important;\n  }\n  .trk-toggle:hover{ color:#000 !important; }\n  .trk-toggle:focus{ outline:none; }\n  .trk-toggle:focus-visible{ outline:2px solid #000; outline-offset:3px; }\n\n  .trk-more{\n    max-height:0 !important;\n    overflow:hidden !important;\n    opacity:0 !important;\n    transition:max-height .4s ease, opacity .4s ease;\n  }\n  .trk-more.open{\n    max-height:5000px !important;\n    overflow:visible !important;\n    opacity:1 !important;\n  }\n\n  .trk-source{ display:none !important; }\n\u003c\/style\u003e\n\n\u003cdiv class=\"trk-fold\" data-trk-fold\u003e\n  \u003cdiv class=\"trk-source\" data-trk-content\u003e\n    \u003ch2 data-start=\"1776\" data-end=\"1824\"\u003eHuile CBD Bio 500 mg – équilibre et régularité\u003c\/h2\u003e\n    \u003cp data-start=\"1826\" data-end=\"2049\"\u003eL’\u003cstrong data-start=\"1828\" data-end=\"1852\"\u003ehuile CBD bio 500 mg\u003c\/strong\u003e représente le dosage intermédiaire de notre gamme. Issue du même \u003cstrong data-start=\"1918\" data-end=\"1986\"\u003echanvre cultivé en agriculture biologique en Avant-Pays Savoyard\u003c\/strong\u003e, elle conserve l’ensemble du \u003cstrong data-start=\"2016\" data-end=\"2035\"\u003espectre complet\u003c\/strong\u003e de la plante.\u003c\/p\u003e\n    \u003cp data-start=\"2051\" data-end=\"2296\"\u003eObtenue par \u003cstrong data-start=\"2063\" data-end=\"2083\"\u003epression à froid\u003c\/strong\u003e, sans raffinage chimique ni isolat, elle préserve l’équilibre naturel entre \u003cstrong data-start=\"2160\" data-end=\"2177\"\u003ecannabinoïdes\u003c\/strong\u003e, \u003cstrong data-start=\"2179\" data-end=\"2191\"\u003eterpènes\u003c\/strong\u003e et lipides végétaux. Cette concentration permet une utilisation plus structurée tout en restant modérée.\u003c\/p\u003e\n    \u003cp data-start=\"2298\" data-end=\"2319\"\u003eLa 500 mg s’adresse :\u003c\/p\u003e\n    \u003cul data-start=\"2321\" data-end=\"2514\"\u003e\n      \u003cli data-start=\"2321\" data-end=\"2393\"\u003e\n        \u003cp data-start=\"2323\" data-end=\"2393\"\u003eaux utilisateurs recherchant un dosage plus affirmé que l’initiation\u003c\/p\u003e\n      \u003c\/li\u003e\n      \u003cli data-start=\"2394\" data-end=\"2430\"\u003e\n        \u003cp data-start=\"2396\" data-end=\"2430\"\u003eà une routine quotidienne stable\u003c\/p\u003e\n      \u003c\/li\u003e\n      \u003cli data-start=\"2431\" data-end=\"2514\"\u003e\n        \u003cp data-start=\"2433\" data-end=\"2514\"\u003eà celles et ceux qui souhaitent une lecture plus marquée du \u003cstrong data-start=\"2493\" data-end=\"2514\"\u003eCBD Full Spectrum\u003c\/strong\u003e\u003c\/p\u003e\n      \u003c\/li\u003e\n    \u003c\/ul\u003e\n    \u003cp data-start=\"2516\" data-end=\"2675\"\u003eLe profil reste végétal, légèrement noisetté, typique d’une \u003cstrong data-start=\"2576\" data-end=\"2600\"\u003ehuile de chanvre bio\u003c\/strong\u003e non raffinée. L’approche reste progressive et ajustable goutte par goutte.\u003c\/p\u003e\n    \u003cp data-start=\"2677\" data-end=\"2806\"\u003eElle incarne l’équilibre : ni microdosage, ni concentration élevée, mais un juste milieu cohérent avec une utilisation régulière.\u003c\/p\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv data-trk-intro\u003e\u003c\/div\u003e\n  \u003cbutton type=\"button\" class=\"trk-toggle\" data-trk-toggle aria-expanded=\"false\"\u003eEn voir plus\u003c\/button\u003e\n  \u003cdiv class=\"trk-more\" data-trk-more\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cscript\u003e\n(function(){\n  const script = document.currentScript;\n  const root = script\n    ? (script.previousElementSibling \u0026\u0026 script.previousElementSibling.matches('[data-trk-fold]')\n        ? script.previousElementSibling\n        : script.closest('[data-trk-fold]') || document.querySelector('[data-trk-fold]'))\n    : document.querySelector('[data-trk-fold]');\n  if(!root) return;\n\n  const source   = root.querySelector('[data-trk-content]');\n  const introBox = root.querySelector('[data-trk-intro]');\n  const moreBox  = root.querySelector('[data-trk-more]');\n  const btn      = root.querySelector('[data-trk-toggle]');\n  if(!source || !introBox || !moreBox || !btn) return;\n\n  function normalizeSpaces(str){\n    return (str || '').replace(\/\\u00A0\/g,' ').replace(\/\\s+\/g,' ').trim();\n  }\n\n  const tmp = document.createElement('div');\n  tmp.innerHTML = source.innerHTML;\n\n  const firstH2 = tmp.querySelector('h2');\n  if(!firstH2){\n    introBox.innerHTML = source.innerHTML;\n    btn.style.display = 'none';\n    source.classList.remove('trk-source');\n    return;\n  }\n\n  let firstP = firstH2.nextElementSibling;\n  while(firstP \u0026\u0026 firstP.tagName !== 'P') firstP = firstP.nextElementSibling;\n  if(!firstP){\n    introBox.innerHTML = source.innerHTML;\n    btn.style.display = 'none';\n    source.classList.remove('trk-source');\n    return;\n  }\n\n  const h2Node   = firstH2.cloneNode(true);\n  const pFull    = firstP.cloneNode(true);\n  const pPreview = firstP.cloneNode(true);\n\n  const words = normalizeSpaces(pPreview.textContent).split(' ').filter(Boolean);\n  pPreview.textContent = words.slice(0, 20).join(' ') + (words.length \u003e 20 ? '…' : '');\n\n  introBox.innerHTML = '';\n  introBox.appendChild(h2Node);\n  introBox.appendChild(pPreview);\n\n  moreBox.innerHTML = '';\n  let node = firstP.nextSibling;\n  while(node){\n    const next = node.nextSibling;\n    moreBox.appendChild(node);\n    node = next;\n  }\n\n  moreBox.classList.remove('open');\n  moreBox.style.maxHeight = '0px';\n  moreBox.style.overflow  = 'hidden';\n  moreBox.style.opacity   = '0';\n  btn.setAttribute('aria-expanded','false');\n\n  function swapParagraph(isOpen){\n    const currentP = introBox.querySelector('p');\n    if(currentP) currentP.remove();\n    introBox.appendChild(isOpen ? pFull : pPreview);\n  }\n\n  function setOpen(isOpen){\n    moreBox.classList.toggle('open', isOpen);\n    btn.textContent = isOpen ? 'En voir moins' : 'En voir plus';\n    btn.setAttribute('aria-expanded', String(isOpen));\n\n    swapParagraph(isOpen);\n\n    if(!isOpen){\n      moreBox.style.maxHeight = '0px';\n      moreBox.style.overflow  = 'hidden';\n      moreBox.style.opacity   = '0';\n      introBox.insertAdjacentElement('afterend', btn);\n    }else{\n      moreBox.style.maxHeight = '5000px';\n      moreBox.style.overflow  = 'visible';\n      moreBox.style.opacity   = '1';\n      moreBox.appendChild(btn);\n    }\n  }\n\n  btn.addEventListener('click', ()=\u003e setOpen(!moreBox.classList.contains('open')));\n})();\n\u003c\/script\u003e","brand":"Trikome","offers":[{"title":"Default Title","offer_id":53583028420954,"sku":"huile-cbd-bio-500-mg","price":30.0,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1015\/9783\/9706\/files\/trikome-huile-cbd-bio-500mg.jpg?v=1771783951","url":"https:\/\/trikome.fr\/products\/huile-cbd-bio-500-mg","provider":"Trikome","version":"1.0","type":"link"}