{"product_id":"centr-ml","title":"Crème Apaisante Cuir Chevelu ML","description":"\u003cscript\u003e\n      (function() {\n        \/\/ Capture host references before any artifact code runs: Window.parent\n        \/\/ is [Replaceable] (a top-level `var parent` in artifact code would\n        \/\/ replace the accessor with a data property), and a top-level\n        \/\/ `const crypto` would shadow the global — either would otherwise\n        \/\/ silently break the bridge for artifacts that worked before.\n        const realParent = window.parent;\n        const cryptoObj = window.crypto;\n        \/\/ html-to-image is only used by takeScreenshot: fetched on first use, not as a\n        \/\/ parser-blocking tag. Native fetch, captured before the proxy override below.\n        const realFetch = typeof window.fetch === 'function' ? window.fetch.bind(window) : null;\n        const HTML_TO_IMAGE_SRC = \"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/html-to-image\/1.11.13\/html-to-image.min.js\";\n        const HTML_TO_IMAGE_INTEGRITY = \"sha512-iZ2ORl595Wx6miw+GuadDet4WQbdSWS3JLMoNfY8cRGoEFy6oT3G9IbcrBeL6AfkgpA51ETt\/faX6yLV+\/gFJg==\";\n        let htmlToImageLoad = null;\n        const loadHtmlToImage = () =\u003e {\n          if (!htmlToImageLoad) {\n            htmlToImageLoad = (realFetch\n              ? realFetch(HTML_TO_IMAGE_SRC, { integrity: HTML_TO_IMAGE_INTEGRITY, credentials: 'omit', referrerPolicy: 'no-referrer' })\n              : Promise.reject(new Error('fetch unavailable'))\n            )\n              .then((res) =\u003e {\n                if (!res.ok) throw new Error('html-to-image failed to load (' + res.status + ')');\n                return res.text();\n              })\n              .then((source) =\u003e {\n                \/\/ UMD bundle: hide the artifact's AMD\/CommonJS globals so it takes the\n                \/\/ window-global branch; inline script text runs synchronously on insert.\n                const hidden = ['define', 'module', 'exports'].map((k) =\u003e {\n                  const entry = { k, own: Object.prototype.hasOwnProperty.call(window, k), v: window[k] };\n                  try { window[k] = undefined; } catch (e) {}\n                  return entry;\n                });\n                try {\n                  const el = document.createElement('script');\n                  el.text = source;\n                  (document.head || document.documentElement).appendChild(el);\n                } finally {\n                  hidden.forEach(({ k, own, v }) =\u003e {\n                    try { if (own) { window[k] = v; } else { delete window[k]; } } catch (e) {}\n                  });\n                }\n                if (!window.htmlToImage) throw new Error('html-to-image unavailable after load');\n                return window.htmlToImage;\n              });\n            \/\/ A failed load may be transient; let the next screenshot retry.\n            htmlToImageLoad.catch(() =\u003e { htmlToImageLoad = null; });\n          }\n          return htmlToImageLoad;\n        };\n        \/\/ crypto.randomUUID exists only in Secure Contexts; fall back to a\n        \/\/ unique non-crypto id elsewhere (http:\/\/LAN-IP dev flows) —\n        \/\/ uniqueness is what the bridge needs, unpredictability is\n        \/\/ defense-in-depth on top of the source guards.\n        const newRequestId =\n          cryptoObj \u0026\u0026 typeof cryptoObj.randomUUID === \"function\"\n            ? function () { return cryptoObj.randomUUID(); }\n            : function () { return Date.now() + \"-\" + Math.random(); };\n        const originalConsole = window.console;\n        window.console = {\n          log: (...args) =\u003e {\n            originalConsole.log(...args);\n            realParent.postMessage({ type: 'console', message: args.join(' ') }, '*');\n          },\n          error: (...args) =\u003e {\n            originalConsole.error(...args);\n            realParent.postMessage({ type: 'console', message: 'Error: ' + args.join(' ') }, '*');\n          },\n          warn: (...args) =\u003e {\n            originalConsole.warn(...args);\n            realParent.postMessage({ type: 'console', message: 'Warning: ' + args.join(' ') }, '*');\n          }\n        };\n\n        \/\/ Bridge request ids are crypto-random (not sequential) so they\n        \/\/ cannot be predicted by other frames in the tab.\n        let callbacksMap = new Map();\n        let streamControllers = new Map();\n        \n        window.claude = {\n          complete: (prompt) =\u003e {\n            return new Promise((resolve, reject) =\u003e {\n              const id = newRequestId();\n              callbacksMap.set(id, { resolve, reject });\n              realParent.postMessage({ type: 'claudeComplete', id, prompt }, '*');\n            });\n          }\n        };\n\n        window.storage = {\n          get: (key, shared = false) =\u003e {\n            return new Promise((resolve, reject) =\u003e {\n              const id = newRequestId();\n              callbacksMap.set(id, { resolve, reject });\n              realParent.postMessage({ type: 'storageGet', id, key, shared }, '*');\n            });\n          },\n          set: (key, value, shared = false) =\u003e {\n            return new Promise((resolve, reject) =\u003e {\n              const id = newRequestId();\n              callbacksMap.set(id, { resolve, reject });\n              realParent.postMessage({ type: 'storageSet', id, key, value, shared }, '*');\n            });\n          },\n          delete: (key, shared = false) =\u003e {\n            return new Promise((resolve, reject) =\u003e {\n              const id = newRequestId();\n              callbacksMap.set(id, { resolve, reject });\n              realParent.postMessage({ type: 'storageDelete', id, key, shared }, '*');\n            });\n          },\n          list: (prefix, shared = false) =\u003e {\n            return new Promise((resolve, reject) =\u003e {\n              const id = newRequestId();\n              callbacksMap.set(id, { resolve, reject });\n              realParent.postMessage({ type: 'storageList', id, prefix, shared }, '*');\n            });\n          }\n        };\n\n        let pendingBlobs = new Map();\n        URL.createObjectURL = (blob) =\u003e {\n          \/\/ Store the blob and create an ID and URL for it\n          const blobId = `blob-${Date.now()}-${Math.random()}`;\n          pendingBlobs.set(blobId, blob);\n          return `blob-request:\/\/${blobId}`;\n        };\n\n        URL.revokeObjectURL = (url) =\u003e {\n          \/\/ Remove the blob from our store\n          const blobId = url.replace(\"blob-request:\/\/\", \"\");\n          pendingBlobs.delete(blobId);\n        };\n\n        const getBlobFromURL = (url) =\u003e {\n          const blobId = url.replace(\"blob-request:\/\/\", \"\");\n          return pendingBlobs.get(blobId);\n        };\n\n        \/\/ Override global fetch with streaming support\n        window.fetch = (url, init = {}) =\u003e {\n          return new Promise((resolve, reject) =\u003e {\n            const id = newRequestId();\n            const channelId = `fetch-${id}-${Date.now()}`;\n            \n            callbacksMap.set(id, { \n              resolve: (response) =\u003e {\n                \/\/ Null-body statuses: Response(stream, {status: 204}) throws\n                \/\/ per the Fetch spec, which would escape this resolver and\n                \/\/ hang the artifact's await forever.\n                if (response.status === 204 || response.status === 205 || response.status === 304) {\n                  try {\n                    resolve(new Response(null, {\n                      status: response.status,\n                      statusText: response.statusText,\n                      headers: response.headers\n                    }));\n                  } catch (err) {\n                    \/\/ Invalid statusText\/header bytes can throw here too.\n                    reject(new TypeError(\n                      'Bridge fetch: unconstructable response (status ' + response.status + ')'\n                    ));\n                  }\n                  return;\n                }\n                \/\/ Create a ReadableStream for the response body\n                const stream = new ReadableStream({\n                  start(controller) {\n                    streamControllers.set(channelId, controller);\n                  },\n                  cancel() {\n                    streamControllers.delete(channelId);\n                  }\n                });\n                \n                \/\/ Create and return the Response with the stream. Response()\n                \/\/ requires status in [200, 599]; an opaque\/no-cors fetch\n                \/\/ forwards status 0, which would throw here and escape the\n                \/\/ resolver, hanging the artifact's await. Surface it as a\n                \/\/ network-error-shaped rejection instead.\n                try {\n                  resolve(new Response(stream, {\n                    status: response.status,\n                    statusText: response.statusText,\n                    headers: response.headers\n                  }));\n                } catch (err) {\n                  streamControllers.delete(channelId);\n                  reject(new TypeError(\n                    'Bridge fetch: unconstructable response (status ' + response.status + ')'\n                  ));\n                }\n              },\n              reject,\n              channelId\n            });\n            \n            realParent.postMessage({\n              type: 'proxyFetch',\n              id,\n              url,\n              init,\n              channelId\n            }, '*');\n          });\n        };\n\n        window.addEventListener('message', async (event) =\u003e {\n          \/\/ Only the embedding parent may drive the bridge — sibling and\n          \/\/ nested frames can also postMessage into this window.\n          if (event.source !== realParent) return;\n          if (event.data.type === 'takeScreenshot') {\n            \/\/ Echo the request's nonce so the requester can correlate the\n            \/\/ reply to ITS request — a reply without the expected nonce\n            \/\/ (e.g. from a stale pre-remount artifact) is ignored upstream.\n            const screenshotNonce = event.data.nonce;\n            const rootElement = document.getElementById('artifacts-component-root-html');\n            if (!rootElement) {\n              realParent.postMessage({\n                type: 'screenshotError',\n                nonce: screenshotNonce,\n                error: new Error('Root element not found'),\n              }, '*');\n              return;\n            }\n            \/\/ Catch CDN load failures and toPng errors so the parent always\n            \/\/ gets a response instead of hanging forever.\n            try {\n              const htmlToImage = await loadHtmlToImage();\n              const screenshot = await htmlToImage.toPng(rootElement, {\n                imagePlaceholder:\n                  \"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAA1JREFUGFdjePDgwX8ACOQDoNsk0PMAAAAASUVORK5CYII=\",\n              });\n              realParent.postMessage({\n                type: 'screenshotData',\n                nonce: screenshotNonce,\n                data: screenshot,\n              }, '*');\n            } catch (err) {\n              realParent.postMessage({\n                type: 'screenshotError',\n                nonce: screenshotNonce,\n                error: err instanceof Error ? err : new Error(String(err)),\n              }, '*');\n            }\n          } else if (event.data.type === 'claudeComplete') {\n            const callback = callbacksMap.get(event.data.id);\n            if (!callback) return;\n            if (event.data.error) {\n              callback.reject(new Error(event.data.error));\n            } else {\n              callback.resolve(event.data.completion);\n            }\n            callbacksMap.delete(event.data.id);\n          } else if (event.data.type === 'proxyFetchResponse') {\n            const callback = callbacksMap.get(event.data.id);\n            if (!callback) return;\n            if (event.data.error) {\n              callback.reject(new Error(event.data.error));\n              callbacksMap.delete(event.data.id);\n            } else {\n              \/\/ Initial response with headers, status, etc.\n              callback.resolve({\n                status: event.data.status,\n                statusText: event.data.statusText,\n                headers: event.data.headers\n              });\n              \/\/ Don't delete the callback yet if streaming\n              if (!event.data.body) {\n                callbacksMap.delete(event.data.id);\n              }\n            }\n          } else if (event.data.type === 'proxyFetchStream') {\n            \/\/ Handle streaming data chunks\n            const controller = streamControllers.get(event.data.channelId);\n            if (controller) {\n              if (event.data.error) {\n                controller.error(new Error(event.data.error));\n                streamControllers.delete(event.data.channelId);\n              } else if (event.data.done) {\n                controller.close();\n                streamControllers.delete(event.data.channelId);\n                \/\/ Clean up the callback\n                const callback = Array.from(callbacksMap.entries()).find(\n                  ([_, value]) =\u003e value.channelId === event.data.channelId\n                );\n                if (callback) {\n                  callbacksMap.delete(callback[0]);\n                }\n              } else if (event.data.chunk) {\n                controller.enqueue(new Uint8Array(event.data.chunk));\n              }\n            }\n          } else if (event.data.type === 'storageGet') {\n            const callback = callbacksMap.get(event.data.id);\n            if (!callback) return;\n            if (event.data.error) {\n              callback.reject(new Error(event.data.error));\n            } else {\n              callback.resolve(event.data.result);\n            }\n            callbacksMap.delete(event.data.id);\n          } else if (event.data.type === 'storageSet') {\n            const callback = callbacksMap.get(event.data.id);\n            if (!callback) return;\n            if (event.data.error) {\n              callback.reject(new Error(event.data.error));\n            } else {\n              callback.resolve(event.data.result);\n            }\n            callbacksMap.delete(event.data.id);\n          } else if (event.data.type === 'storageDelete') {\n            const callback = callbacksMap.get(event.data.id);\n            if (!callback) return;\n            if (event.data.error) {\n              callback.reject(new Error(event.data.error));\n            } else {\n              callback.resolve(event.data.result);\n            }\n            callbacksMap.delete(event.data.id);\n          } else if (event.data.type === 'storageList') {\n            const callback = callbacksMap.get(event.data.id);\n            if (!callback) return;\n            if (event.data.error) {\n              callback.reject(new Error(event.data.error));\n            } else {\n              callback.resolve(event.data.result);\n            }\n            callbacksMap.delete(event.data.id);\n          }\n        });\n\n        window.addEventListener('click', (event) =\u003e {\n          const isEl = event.target instanceof HTMLElement;\n          if (!isEl) return;\n    \n          \/\/ find ancestor links\n          const linkEl = event.target.closest(\"a\");\n          if (!linkEl || !linkEl.href) return;\n    \n          event.preventDefault();\n          event.stopImmediatePropagation();\n    \n          if (linkEl.href.startsWith(\"blob-request:\")) {\n            const blob = getBlobFromURL(linkEl.href);\n            if (!blob) return;\n            void blob.arrayBuffer().then((data) =\u003e {\n              realParent.postMessage({\n                type: \"downloadFile\",\n                filename: linkEl.download,\n                data,\n                mimeType: blob.type || \"application\/octet-stream\",\n              });\n            });\n          } else if (linkEl.href.startsWith(\"data:\")) {\n            const [header, base64Data] = linkEl.href.split(\",\");\n            const mimeMatch = header.match(\/data:([^;]+)\/);\n            const mimeType = mimeMatch ? mimeMatch[1] : \"application\/octet-stream\";\n            const binaryString = atob(base64Data);\n            const data = Uint8Array.from(binaryString, (c) =\u003e\n              c.charCodeAt(0),\n            ).buffer;\n            realParent.postMessage({\n              type: \"downloadFile\",\n              filename: linkEl.download,\n              data,\n              mimeType,\n            });\n          } else {\n            let linkUrl;\n            try {\n              linkUrl = new URL(linkEl.href);\n            } catch (error) {\n              return;\n            }\n    \n            if (linkUrl.hostname === window.location.hostname) return;\n      \n            realParent.postMessage({\n              type: 'openExternal',\n              href: linkEl.href,\n            }, '*');\n          }\n      });\n\n        const originalOpen = window.open;\n        window.open = function (url) {\n          realParent.postMessage({\n            type: \"openExternal\",\n            href: url,\n          }, \"*\");\n        };\n\n        window.addEventListener('error', (event) =\u003e {\n          realParent.postMessage({ type: 'console', message: 'Uncaught Error: ' + event.message }, '*');\n        });\n      })();\n    \u003c\/script\u003e\n  \u003cstyle id=\"claude-scrollbar\"\u003e@layer claude-scrollbar{*{scrollbar-width:thin}html{scrollbar-color:rgb(128 128 128 \/ 50%) transparent}}\u003c\/style\u003e\u003clink href=\"https:\/\/fonts.googleapis.com\/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,400;1,500\u0026amp;family=Jost:wght@300;400;500;600\u0026amp;display=swap\" rel=\"stylesheet\"\u003e\n\u003cstyle\u003e\n#cac{\n  --verde:#1b3d25;--oro:#c9a84c;--oro-light:#e0c477;--sfondo:#f7f4ee;\n  --bianco:#ffffff;--testo:#1a1a1a;--testo-chiaro:#4a4a4a;--grigio:#e6ded0;\n  font-family:'Jost',sans-serif;color:var(--testo);font-size:16px;line-height:1.6;\n}\n#cac *,#cac *::before,#cac *::after{margin:0;padding:0;box-sizing:border-box}\n#cac h1,#cac h2,#cac h3,#cac h4{font-family:'Cormorant Garamond',serif}\n#cac img{max-width:100%;height:auto;display:block}\n\n#cac .topbar{background:var(--verde);color:var(--oro);text-align:center;padding:10px 20px;font-size:13px;font-weight:500;letter-spacing:1.5px}\n\n#cac .hero{background:var(--verde);padding:60px 20px 70px;text-align:center;position:relative}\n#cac .hero-badge{display:inline-block;border:1px solid var(--oro);color:var(--oro);font-size:11px;font-weight:500;letter-spacing:2px;padding:6px 18px;border-radius:100px;margin-bottom:24px;text-transform:uppercase}\n#cac .hero h1{font-size:clamp(42px,8vw,72px);color:var(--bianco);font-weight:500;line-height:1.1;margin-bottom:20px}\n#cac .hero h1 em{color:var(--oro);font-style:italic}\n#cac .hero-sub{font-size:16px;color:rgba(255,255,255,0.75);max-width:580px;margin:0 auto 30px;font-weight:300;line-height:1.7}\n#cac .hero-rating{display:inline-flex;align-items:center;gap:10px;margin-bottom:28px;padding:8px 18px;background:rgba(255,255,255,0.05);border:1px solid rgba(201,168,76,0.25);border-radius:100px}\n#cac .hero-rating .stars{color:var(--oro);letter-spacing:2px;font-size:14px}\n#cac .hero-rating .rtxt{font-size:12px;color:rgba(255,255,255,0.7)}\n#cac .hero-garanties{display:flex;justify-content:center;gap:24px;margin-top:20px;flex-wrap:wrap}\n#cac .hero-garanties span{font-size:12px;color:rgba(255,255,255,0.6);display:flex;align-items:center;gap:6px}\n#cac .hero-garanties span::before{content:'✦';color:var(--oro);font-size:10px}\n\n#cac .photo-break img{width:100%;height:auto;display:block}\n\n#cac .section{padding:70px 20px}\n#cac .container{max-width:900px;margin:0 auto}\n#cac .section-label{font-size:11px;font-weight:600;letter-spacing:3px;text-transform:uppercase;color:var(--oro);margin-bottom:14px;display:block}\n#cac .section-title{font-size:clamp(30px,5vw,48px);font-weight:500;line-height:1.2;color:var(--verde);margin-bottom:20px}\n#cac .section-sub{font-size:16px;color:var(--testo-chiaro);line-height:1.8;max-width:700px}\n\n#cac .problema{background:var(--bianco)}\n#cac .problema-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px;margin-top:40px}\n#cac .prob-card{background:var(--sfondo);border-left:3px solid var(--oro);padding:22px 24px;border-radius:0 8px 8px 0}\n#cac .prob-card .emoji{font-size:22px;margin-bottom:10px}\n#cac .prob-card h4{font-size:20px;color:var(--verde);margin-bottom:8px}\n#cac .prob-card p{font-size:14px;color:var(--testo-chiaro);line-height:1.7}\n\n#cac .prima-dopo{background:var(--sfondo)}\n#cac .pd-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:40px}\n#cac .pd-col{padding:32px;border-radius:12px}\n#cac .pd-prima{background:#efe8db;border:1px solid #dcd3c1}\n#cac .pd-dopo{background:var(--verde);border:1px solid var(--verde)}\n#cac .pd-label{font-size:11px;font-weight:600;letter-spacing:2px;text-transform:uppercase;margin-bottom:16px;display:block}\n#cac .pd-prima .pd-label{color:#998}\n#cac .pd-dopo .pd-label{color:var(--oro)}\n#cac .pd-items{list-style:none;display:flex;flex-direction:column;gap:12px}\n#cac .pd-items li{font-size:14px;display:flex;align-items:flex-start;gap:10px;line-height:1.6}\n#cac .pd-prima .pd-items li{color:#887}\n#cac .pd-prima .pd-items li::before{content:'✗';color:#cc4444;font-weight:700;flex-shrink:0;margin-top:1px}\n#cac .pd-dopo .pd-items li{color:rgba(255,255,255,0.9)}\n#cac .pd-dopo .pd-items li::before{content:'✦';color:var(--oro);font-size:12px;flex-shrink:0;margin-top:3px}\n\n#cac .benefici{background:var(--bianco)}\n#cac .ben-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:24px;margin-top:40px}\n#cac .ben-card{text-align:center;padding:32px 20px;border-radius:12px;background:var(--sfondo);border:1px solid var(--grigio);transition:all 0.3s}\n#cac .ben-card:hover{transform:translateY(-4px);border-color:var(--oro)}\n#cac .ben-icon{width:56px;height:56px;border-radius:50%;background:var(--verde);display:flex;align-items:center;justify-content:center;font-size:22px;margin:0 auto 16px}\n#cac .ben-card h4{font-size:20px;color:var(--verde);margin-bottom:10px}\n#cac .ben-card p{font-size:13px;color:var(--testo-chiaro);line-height:1.7}\n\n#cac .testimonianze{background:var(--sfondo)}\n#cac .testi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px;margin-top:40px}\n#cac .testi-card{background:var(--bianco);border-radius:12px;padding:28px;border:1px solid var(--grigio)}\n#cac .stars{color:var(--oro);font-size:14px;margin-bottom:14px;letter-spacing:2px}\n#cac .testi-card p{font-size:18px;font-style:italic;color:var(--testo);line-height:1.6;margin-bottom:16px;font-family:'Cormorant Garamond',serif}\n#cac .testi-author{display:flex;align-items:center;gap:10px}\n#cac .testi-avatar{width:38px;height:38px;border-radius:50%;background:var(--verde);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;color:var(--oro);font-family:'Jost',sans-serif}\n#cac .testi-name{font-size:13px;font-weight:600;color:var(--testo)}\n#cac .testi-detail{font-size:11px;color:#999}\n\n#cac .scienza{background:var(--verde)}\n#cac .scienza .section-title{color:var(--bianco)}\n#cac .scienza .section-sub{color:rgba(255,255,255,0.7)}\n#cac .scienza .section-label{color:var(--oro)}\n#cac .meccanismo{margin-top:40px;display:grid;grid-template-columns:1fr;gap:24px}\n#cac .mec-step{display:flex;gap:20px;align-items:flex-start;background:rgba(255,255,255,0.05);border:1px solid rgba(201,168,76,0.2);border-radius:12px;padding:24px}\n#cac .mec-num{font-size:36px;font-weight:500;color:var(--oro);line-height:1;flex-shrink:0;min-width:44px}\n#cac .mec-text h4{font-size:22px;color:var(--bianco);margin-bottom:8px}\n#cac .mec-text p{font-size:14px;color:rgba(255,255,255,0.65);line-height:1.7}\n\n#cac .ingredienti{background:var(--bianco)}\n#cac .ing-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px;margin-top:40px}\n#cac .ing-card{border-radius:12px;overflow:hidden;border:1px solid var(--grigio)}\n#cac .ing-header{background:var(--verde);padding:20px;text-align:center}\n#cac .ing-header .ing-emoji{font-size:32px;margin-bottom:8px}\n#cac .ing-header h4{font-size:19px;color:var(--bianco)}\n#cac .ing-header small{font-size:11px;color:var(--oro);font-weight:500;letter-spacing:1px;text-transform:uppercase}\n#cac .ing-body{padding:20px}\n#cac .ing-body p{font-size:13px;color:var(--testo-chiaro);line-height:1.7;margin-bottom:12px}\n#cac .ing-dosage{font-size:11px;font-weight:600;color:var(--oro);letter-spacing:1px;text-transform:uppercase}\n\n#cac .comparazione{background:var(--sfondo)}\n#cac .comp-table{width:100%;border-collapse:collapse;margin-top:40px;background:var(--bianco);border-radius:12px;overflow:hidden;border:1px solid var(--grigio)}\n#cac .comp-table th{padding:16px 18px;font-family:'Jost',sans-serif;font-size:13px;font-weight:600;text-align:left;background:var(--verde);color:var(--bianco)}\n#cac .comp-table th.nous{color:var(--oro)}\n#cac .comp-table td{padding:14px 18px;font-size:14px;border-bottom:1px solid var(--grigio);vertical-align:middle}\n#cac .comp-table tr:last-child td{border-bottom:none}\n#cac .comp-table td.feature{font-weight:500;color:var(--testo);font-size:13px}\n#cac .comp-table td.oui{color:#1a7a4a;font-weight:600}\n#cac .comp-table td.non{color:#cc4444}\n#cac .comp-table tr:nth-child(even) td{background:#faf8f4}\n\n#cac .garanzie{background:var(--verde);padding:70px 20px}\n#cac .gar-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px;margin-top:40px}\n#cac .gar-card{background:rgba(255,255,255,0.07);border:1px solid rgba(201,168,76,0.25);border-radius:12px;padding:28px;text-align:center}\n#cac .gar-icon{font-size:32px;margin-bottom:14px}\n#cac .gar-card h4{font-size:20px;color:var(--oro);margin-bottom:10px}\n#cac .gar-card p{font-size:13px;color:rgba(255,255,255,0.65);line-height:1.7}\n#cac .gar-card.paiement{border-color:var(--oro);background:rgba(201,168,76,0.08)}\n#cac .garanzie .section-title{color:var(--bianco)}\n#cac .garanzie .section-label{color:var(--oro)}\n\n#cac .faq{background:var(--bianco)}\n#cac .faq-list{margin-top:40px;display:flex;flex-direction:column;gap:12px;max-width:720px}\n#cac .faq-item{border:1px solid var(--grigio);border-radius:10px;overflow:hidden}\n#cac .faq-q{width:100%;background:none;border:none;padding:20px 24px;text-align:left;cursor:pointer;display:flex;justify-content:space-between;align-items:center;font-family:'Jost',sans-serif;font-size:15px;font-weight:500;color:var(--testo);transition:background 0.2s}\n#cac .faq-q:hover{background:var(--sfondo)}\n#cac .faq-q .faq-icon{font-size:18px;color:var(--oro);transition:transform 0.3s;flex-shrink:0;margin-left:12px}\n#cac .faq-q.open .faq-icon{transform:rotate(45deg)}\n#cac .faq-a{display:none;padding:0 24px 20px;font-size:14px;color:var(--testo-chiaro);line-height:1.8}\n#cac .faq-a.show{display:block}\n\n#cac .manifesto{background:var(--sfondo);text-align:center;padding:80px 20px}\n#cac .manifesto .section-title{color:var(--verde);font-size:clamp(36px,5vw,54px)}\n#cac .manifesto-text{font-size:17px;color:var(--testo-chiaro);max-width:640px;margin:20px auto 40px;line-height:1.8;font-family:'Cormorant Garamond',serif;font-style:italic}\n#cac .manifesto-garantie{font-size:13px;color:#999;margin-top:8px}\n\n#cac .divider{display:flex;align-items:center;gap:12px;max-width:200px;margin:0 auto 16px}\n#cac .divider::before,#cac .divider::after{content:'';flex:1;height:1px;background:var(--oro);opacity:0.4}\n#cac .divider-ornament{color:var(--oro);font-size:12px}\n\n#cac .disclaimer{background:var(--verde);color:rgba(255,255,255,0.4);font-size:11px;line-height:1.7;text-align:center;padding:30px 24px;font-weight:300}\n\n@media(max-width:600px){\n  #cac .pd-grid{grid-template-columns:1fr}\n  #cac .ben-grid{grid-template-columns:1fr 1fr}\n  #cac .hero h1{font-size:38px}\n  #cac .comp-table{font-size:12px}\n  #cac .comp-table td,#cac .comp-table th{padding:10px 12px}\n  #cac .hero-garanties{gap:14px}\n  #cac .gar-grid{grid-template-columns:1fr 1fr}\n}\n\u003c\/style\u003e\n\n\u003cdiv id=\"cac\"\u003e\n\n\u003c!-- TOPBAR --\u003e\n\u003cdiv class=\"topbar\"\u003e✦ Livraison Express Gratuite Cette Semaine ✦ Formule 100% Naturelle ✦\u003c\/div\u003e\n\n\u003c!-- HERO --\u003e\n\u003csection class=\"hero\"\u003e\n  \u003cdiv class=\"hero-badge\"\u003eSoin Apaisant Cuir Chevelu\u003c\/div\u003e\n  \u003ch1\u003eEnfin un Cuir Chevelu\u003cbr\u003eVraiment \u003cem\u003eApaisé\u003c\/em\u003e\n\u003c\/h1\u003e\n  \u003cdiv class=\"hero-rating\"\u003e\n\u003cspan class=\"stars\"\u003e★★★★★\u003c\/span\u003e\u003cspan class=\"rtxt\"\u003e4,8\/5 — plus de 5 700 clients\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cp class=\"hero-sub\"\u003eLe vrai problème n'est pas un manque de soin, c'est un cercle vicieux : les shampooings qui apaisent dessèchent vos cheveux, et les huiles qui les nourrissent nourrissent aussi le champignon. Cette crème brise enfin ce cercle.\u003c\/p\u003e\n  \u003cdiv class=\"hero-garanties\"\u003e\n    \u003cspan\u003eLivraison sous 48h\u003c\/span\u003e\n    \u003cspan\u003ePaiement à la livraison\u003c\/span\u003e\n    \u003cspan\u003eSatisfait ou remboursé 30 jours\u003c\/span\u003e\n    \u003cspan\u003eFormule 100% naturelle\u003c\/span\u003e\n  \u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003c!-- PHOTO BREAK 1 --\u003e\n\u003cdiv class=\"photo-break\"\u003e\n  \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0897\/1131\/3232\/files\/fr-6.webp?v=1789595176\" alt=\"Crème Apaisante Cuir Chevelu\"\u003e\n\u003c\/div\u003e\n\n\u003c!-- PROBLÈME --\u003e\n\u003csection class=\"section problema\"\u003e\n  \u003cdiv class=\"container\"\u003e\n    \u003cspan class=\"section-label\"\u003eLe Problème\u003c\/span\u003e\n    \u003ch2 class=\"section-title\"\u003eChaque solution\u003cbr\u003een annule une autre.\u003c\/h2\u003e\n    \u003cp class=\"section-sub\"\u003eVous avez tout essayé. Les shampooings antipelliculaires calment les démangeaisons mais assèchent et cassent vos cheveux. Les huiles hydratent mais nourrissent le champignon responsable des squames. Résultat : vous tournez en rond, entre irritation et sécheresse, sans jamais de vrai répit.\u003c\/p\u003e\n    \u003cdiv class=\"problema-grid\"\u003e\n      \u003cdiv class=\"prob-card\"\u003e\n\u003cdiv class=\"emoji\"\u003e😣\u003c\/div\u003e\n\u003ch4\u003eDémangeaisons constantes\u003c\/h4\u003e\n\u003cp\u003eCe besoin de se gratter qui ne s'arrête jamais vraiment, souvent pire le soir ou après le lavage.\u003c\/p\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"prob-card\"\u003e\n\u003cdiv class=\"emoji\"\u003e❄️\u003c\/div\u003e\n\u003ch4\u003eSquames et pellicules\u003c\/h4\u003e\n\u003cp\u003eCes plaques blanches ou jaunâtres qui se déposent sur les épaules et reviennent sans cesse.\u003c\/p\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"prob-card\"\u003e\n\u003cdiv class=\"emoji\"\u003e🌡️\u003c\/div\u003e\n\u003ch4\u003eCuir chevelu irrité\u003c\/h4\u003e\n\u003cp\u003eRougeurs, sensations de tiraillement et d'échauffement, un cuir chevelu à vif et inconfortable.\u003c\/p\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"prob-card\"\u003e\n\u003cdiv class=\"emoji\"\u003e💔\u003c\/div\u003e\n\u003ch4\u003eCheveux abîmés\u003c\/h4\u003e\n\u003cp\u003eÀ force de shampooings agressifs, les cheveux deviennent secs, cassants et sans vie.\u003c\/p\u003e\n\u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003c!-- PRIMA\/DOPO --\u003e\n\u003csection class=\"section prima-dopo\"\u003e\n  \u003cdiv class=\"container\"\u003e\n    \u003cspan class=\"section-label\"\u003eLa Transformation\u003c\/span\u003e\n    \u003ch2 class=\"section-title\"\u003eAvant \u0026amp; Après\u003cbr\u003ela Crème Apaisante\u003c\/h2\u003e\n    \u003cdiv class=\"pd-grid\"\u003e\n      \u003cdiv class=\"pd-col pd-prima\"\u003e\n        \u003cspan class=\"pd-label\"\u003eAvant\u003c\/span\u003e\n        \u003cul class=\"pd-items\"\u003e\n          \u003cli\u003eDémangeaisons qui ne lâchent jamais\u003c\/li\u003e\n          \u003cli\u003eSquames visibles sur les épaules\u003c\/li\u003e\n          \u003cli\u003eCuir chevelu rouge et irrité\u003c\/li\u003e\n          \u003cli\u003eJour de lavage redouté\u003c\/li\u003e\n          \u003cli\u003eCheveux asséchés par les traitements\u003c\/li\u003e\n          \u003cli\u003eL'impression de tourner en rond\u003c\/li\u003e\n        \u003c\/ul\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"pd-col pd-dopo\"\u003e\n        \u003cspan class=\"pd-label\"\u003eAprès\u003c\/span\u003e\n        \u003cul class=\"pd-items\"\u003e\n          \u003cli\u003eCuir chevelu apaisé, démangeaisons calmées\u003c\/li\u003e\n          \u003cli\u003ePlus de squames, cuir chevelu net\u003c\/li\u003e\n          \u003cli\u003eHydratation scellée, plus de tiraillements\u003c\/li\u003e\n          \u003cli\u003eRoutine de 2 minutes, sans jour de lavage\u003c\/li\u003e\n          \u003cli\u003eCheveux intacts, ni secs ni gras\u003c\/li\u003e\n          \u003cli\u003eEnfin un vrai soulagement, durable\u003c\/li\u003e\n        \u003c\/ul\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003c!-- PHOTO BREAK 2 --\u003e\n\u003cdiv class=\"photo-break\"\u003e\n  \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0897\/1131\/3232\/files\/fr-3.webp?v=1789595176\" alt=\"Crème Apaisante Cuir Chevelu produit\"\u003e\n\u003c\/div\u003e\n\n\u003c!-- BENEFICI --\u003e\n\u003csection class=\"section benefici\"\u003e\n  \u003cdiv class=\"container\"\u003e\n    \u003cspan class=\"section-label\"\u003eLes Bénéfices\u003c\/span\u003e\n    \u003ch2 class=\"section-title\"\u003e4 Raisons de Choisir\u003cbr\u003eCette Crème\u003c\/h2\u003e\n    \u003cdiv class=\"ben-grid\"\u003e\n      \u003cdiv class=\"ben-card\"\u003e\n\u003cdiv class=\"ben-icon\"\u003e🌿\u003c\/div\u003e\n\u003ch4\u003eApaise les Démangeaisons\u003c\/h4\u003e\n\u003cp\u003eElle calme l'inflammation et les tiraillements dès les premières applications, pour un cuir chevelu enfin en paix.\u003c\/p\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"ben-card\"\u003e\n\u003cdiv class=\"ben-icon\"\u003e💧\u003c\/div\u003e\n\u003ch4\u003eSans Résidu ni Dessèchement\u003c\/h4\u003e\n\u003cp\u003eLa texture pénètre sans graisser ni laisser de film. Elle hydrate sans alourdir les cheveux.\u003c\/p\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"ben-card\"\u003e\n\u003cdiv class=\"ben-icon\"\u003e⏱️\u003c\/div\u003e\n\u003ch4\u003eRoutine de 2 Minutes\u003c\/h4\u003e\n\u003cp\u003eOn applique directement sur le cuir chevelu, sans rinçage ni jour de lavage. Simple et rapide, chaque jour.\u003c\/p\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"ben-card\"\u003e\n\u003cdiv class=\"ben-icon\"\u003e✨\u003c\/div\u003e\n\u003ch4\u003ePour Tous Types de Cheveux\u003c\/h4\u003e\n\u003cp\u003eDes ingrédients doux, pensés pour respecter toutes les natures de cheveux, même les plus fragiles.\u003c\/p\u003e\n\u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003c!-- TESTIMONIANZE --\u003e\n\u003csection class=\"section testimonianze\"\u003e\n  \u003cdiv class=\"container\"\u003e\n    \u003cdiv class=\"divider\"\u003e\u003cspan class=\"divider-ornament\"\u003e✦\u003c\/span\u003e\u003c\/div\u003e\n    \u003cspan class=\"section-label\"\u003eIls Ont Retrouvé le Confort\u003c\/span\u003e\n    \u003ch2 class=\"section-title\"\u003eCe Que Disent\u003cbr\u003eNos Clients\u003c\/h2\u003e\n    \u003cdiv class=\"testi-grid\"\u003e\n      \u003cdiv class=\"testi-card\"\u003e\n\u003cdiv class=\"stars\"\u003e★★★★★\u003c\/div\u003e\n\u003cp\u003e« En une semaine, les démangeaisons ont quasiment disparu. Je n'avais plus connu ça depuis des années. Un vrai soulagement au quotidien. »\u003c\/p\u003e\n\u003cdiv class=\"testi-author\"\u003e\n\u003cdiv class=\"testi-avatar\"\u003eDW\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"testi-name\"\u003eDestiny W.\u003c\/div\u003e\n\u003cdiv class=\"testi-detail\"\u003eCliente vérifiée ✓\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"testi-card\"\u003e\n\u003cdiv class=\"stars\"\u003e★★★★★\u003c\/div\u003e\n\u003cp\u003e« Fini les squames sur mes épaules. Et surtout, mes cheveux ne sont plus asséchés comme avec les shampooings. La routine de 2 min est parfaite. »\u003c\/p\u003e\n\u003cdiv class=\"testi-author\"\u003e\n\u003cdiv class=\"testi-avatar\"\u003eJR\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"testi-name\"\u003eJasmine R.\u003c\/div\u003e\n\u003cdiv class=\"testi-detail\"\u003eCliente vérifiée ✓\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"testi-card\"\u003e\n\u003cdiv class=\"stars\"\u003e★★★★★\u003c\/div\u003e\n\u003cp\u003e« Mon cuir chevelu était irrité en permanence. Cette crème l'a apaisé sans abîmer mes cheveux. Je ne reviendrai jamais en arrière. »\u003c\/p\u003e\n\u003cdiv class=\"testi-author\"\u003e\n\u003cdiv class=\"testi-avatar\"\u003eMT\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"testi-name\"\u003eMonique T.\u003c\/div\u003e\n\u003cdiv class=\"testi-detail\"\u003eCliente vérifiée ✓\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003c!-- PHOTO BREAK 3 --\u003e\n\u003cdiv class=\"photo-break\"\u003e\n  \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0897\/1131\/3232\/files\/fr-2.webp?v=1789595176\" alt=\"Ingrédients Crème Apaisante\"\u003e\n\u003c\/div\u003e\n\n\u003c!-- SCIENZA --\u003e\n\u003csection class=\"section scienza\"\u003e\n  \u003cdiv class=\"container\"\u003e\n    \u003cspan class=\"section-label\"\u003eLe Mécanisme\u003c\/span\u003e\n    \u003ch2 class=\"section-title\"\u003eComment Cette Crème\u003cbr\u003eBrise le Cercle Vicieux\u003c\/h2\u003e\n    \u003cp class=\"section-sub\"\u003eLa plupart des soins ne règlent qu'une moitié du problème et aggravent l'autre. Cette crème agit sur les deux à la fois : elle apaise, hydrate et coupe la source des squames — sans compromis.\u003c\/p\u003e\n    \u003cdiv class=\"meccanismo\"\u003e\n      \u003cdiv class=\"mec-step\"\u003e\n\u003cdiv class=\"mec-num\"\u003e01\u003c\/div\u003e\n\u003cdiv class=\"mec-text\"\u003e\n\u003ch4\u003eElle Cible la Source des Squames\u003c\/h4\u003e\n\u003cp\u003eL'extrait de racine de Coptis est un actif botanique qui aide à réguler la prolifération à l'origine des squames, sans agresser ni dessécher les cheveux.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"mec-step\"\u003e\n\u003cdiv class=\"mec-num\"\u003e02\u003c\/div\u003e\n\u003cdiv class=\"mec-text\"\u003e\n\u003ch4\u003eElle Scelle l'Hydratation\u003c\/h4\u003e\n\u003cp\u003eL'allantoïne apaise le cuir chevelu et retient l'hydratation — sans nourrir ce qui provoque les squames, contrairement aux huiles classiques.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"mec-step\"\u003e\n\u003cdiv class=\"mec-num\"\u003e03\u003c\/div\u003e\n\u003cdiv class=\"mec-text\"\u003e\n\u003ch4\u003eElle Calme l'Inflammation\u003c\/h4\u003e\n\u003cp\u003eLes extraits botaniques de Kudzu et d'Armoise apaisent les rougeurs et les tiraillements, pour un cuir chevelu visiblement plus calme.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"mec-step\"\u003e\n\u003cdiv class=\"mec-num\"\u003e04\u003c\/div\u003e\n\u003cdiv class=\"mec-text\"\u003e\n\u003ch4\u003eElle Respecte les Cheveux\u003c\/h4\u003e\n\u003cp\u003eSans rinçage, sans résidu, sans dessèchement. La crème agit là où il faut sans jamais abîmer la fibre capillaire.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003c!-- INGREDIENTI --\u003e\n\u003csection class=\"section ingredienti\"\u003e\n  \u003cdiv class=\"container\"\u003e\n    \u003cspan class=\"section-label\"\u003eLes Ingrédients\u003c\/span\u003e\n    \u003ch2 class=\"section-title\"\u003eUne Formule Botanique\u003cbr\u003eDouce et Ciblée\u003c\/h2\u003e\n    \u003cdiv class=\"ing-grid\"\u003e\n      \u003cdiv class=\"ing-card\"\u003e\n\u003cdiv class=\"ing-header\"\u003e\n\u003cdiv class=\"ing-emoji\"\u003e🌱\u003c\/div\u003e\n\u003ch4\u003eRacine de Coptis\u003c\/h4\u003e\n\u003csmall\u003eActif Botanique\u003c\/small\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"ing-body\"\u003e\n\u003cp\u003eL'ingrédient star : un actif végétal qui aide à réguler la source des squames en douceur, sans stripper ni dessécher les cheveux.\u003c\/p\u003e\n\u003cdiv class=\"ing-dosage\"\u003eRégule les squames\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"ing-card\"\u003e\n\u003cdiv class=\"ing-header\"\u003e\n\u003cdiv class=\"ing-emoji\"\u003e💧\u003c\/div\u003e\n\u003ch4\u003eAllantoïne\u003c\/h4\u003e\n\u003csmall\u003eApaisant \u0026amp; Hydratant\u003c\/small\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"ing-body\"\u003e\n\u003cp\u003eElle scelle l'hydratation et apaise le cuir chevelu, sans nourrir ce qui cause les squames — ce qu'aucune huile classique ne peut faire.\u003c\/p\u003e\n\u003cdiv class=\"ing-dosage\"\u003eScelle l'hydratation\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"ing-card\"\u003e\n\u003cdiv class=\"ing-header\"\u003e\n\u003cdiv class=\"ing-emoji\"\u003e🍃\u003c\/div\u003e\n\u003ch4\u003eRacine de Kudzu\u003c\/h4\u003e\n\u003csmall\u003ePueraria Lobata\u003c\/small\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"ing-body\"\u003e\n\u003cp\u003eUn extrait botanique apaisant qui aide à calmer les rougeurs et les sensations d'irritation du cuir chevelu.\u003c\/p\u003e\n\u003cdiv class=\"ing-dosage\"\u003eApaise les rougeurs\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"ing-card\"\u003e\n\u003cdiv class=\"ing-header\"\u003e\n\u003cdiv class=\"ing-emoji\"\u003e🌾\u003c\/div\u003e\n\u003ch4\u003eRacine d'Armoise\u003c\/h4\u003e\n\u003csmall\u003eArtemisia\u003c\/small\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"ing-body\"\u003e\n\u003cp\u003eReconnue pour ses propriétés apaisantes, elle complète la formule pour un cuir chevelu confortable et détendu.\u003c\/p\u003e\n\u003cdiv class=\"ing-dosage\"\u003eConfort durable\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003c!-- PHOTO BREAK 4 --\u003e\n\u003cdiv class=\"photo-break\"\u003e\n  \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0897\/1131\/3232\/files\/fr-4.webp?v=1789595176\" alt=\"Crème Apaisante lifestyle\"\u003e\n\u003c\/div\u003e\n\n\u003c!-- COMPARAZIONE --\u003e\n\u003csection class=\"section comparazione\"\u003e\n  \u003cdiv class=\"container\"\u003e\n    \u003cspan class=\"section-label\"\u003eLa Différence\u003c\/span\u003e\n    \u003ch2 class=\"section-title\"\u003eCrème Apaisante ou\u003cbr\u003eShampooing Antipelliculaire ?\u003c\/h2\u003e\n    \u003ctable class=\"comp-table\"\u003e\n      \u003cthead\u003e\u003ctr\u003e\n\u003cth\u003eCritère\u003c\/th\u003e\n\u003cth class=\"nous\"\u003e✦ Crème Apaisante\u003c\/th\u003e\n\u003cth\u003eShampooing \/ huile classique\u003c\/th\u003e\n\u003c\/tr\u003e\u003c\/thead\u003e\n      \u003ctbody\u003e\n        \u003ctr\u003e\n\u003ctd class=\"feature\"\u003eApaise sans dessécher\u003c\/td\u003e\n\u003ctd class=\"oui\"\u003e✦ Oui\u003c\/td\u003e\n\u003ctd class=\"non\"\u003e✗ Assèche les cheveux\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr\u003e\n\u003ctd class=\"feature\"\u003eCible la source des squames\u003c\/td\u003e\n\u003ctd class=\"oui\"\u003e✦ Actif botanique\u003c\/td\u003e\n\u003ctd class=\"non\"\u003e✗ Effet de surface\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr\u003e\n\u003ctd class=\"feature\"\u003eN'alourdit pas les cheveux\u003c\/td\u003e\n\u003ctd class=\"oui\"\u003e✦ Sans résidu\u003c\/td\u003e\n\u003ctd class=\"non\"\u003e✗ Film gras \/ résidus\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr\u003e\n\u003ctd class=\"feature\"\u003eRoutine rapide\u003c\/td\u003e\n\u003ctd class=\"oui\"\u003e✦ 2 min, sans rinçage\u003c\/td\u003e\n\u003ctd class=\"non\"\u003e✗ Jour de lavage\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr\u003e\n\u003ctd class=\"feature\"\u003eFormule naturelle\u003c\/td\u003e\n\u003ctd class=\"oui\"\u003e✦ Botanique \u0026amp; douce\u003c\/td\u003e\n\u003ctd class=\"non\"\u003e✗ Agents agressifs\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr\u003e\n\u003ctd class=\"feature\"\u003ePaiement à la livraison\u003c\/td\u003e\n\u003ctd class=\"oui\"\u003e✦ Disponible\u003c\/td\u003e\n\u003ctd class=\"non\"\u003e✗ Rarement proposé\u003c\/td\u003e\n\u003c\/tr\u003e\n      \u003c\/tbody\u003e\n    \u003c\/table\u003e\n  \u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003c!-- GARANZIE --\u003e\n\u003csection class=\"garanzie\"\u003e\n  \u003cdiv class=\"container\"\u003e\n    \u003cspan class=\"section-label\"\u003eNos Engagements\u003c\/span\u003e\n    \u003ch2 class=\"section-title\"\u003eVous Commandez\u003cbr\u003een Toute Sérénité\u003c\/h2\u003e\n    \u003cdiv class=\"gar-grid\"\u003e\n      \u003cdiv class=\"gar-card\"\u003e\n\u003cdiv class=\"gar-icon\"\u003e🏆\u003c\/div\u003e\n\u003ch4\u003eSatisfait ou Remboursé\u003c\/h4\u003e\n\u003cp\u003e30 jours pour l'essayer. Si vous n'êtes pas satisfait, nous vous remboursons intégralement, sans question.\u003c\/p\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"gar-card\"\u003e\n\u003cdiv class=\"gar-icon\"\u003e🚀\u003c\/div\u003e\n\u003ch4\u003eLivraison Express\u003c\/h4\u003e\n\u003cp\u003eVotre commande est expédiée et livrée sous 48h. Suivi en temps réel inclus.\u003c\/p\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"gar-card paiement\"\u003e\n\u003cdiv class=\"gar-icon\"\u003e💳\u003c\/div\u003e\n\u003ch4\u003ePaiement à la Livraison\u003c\/h4\u003e\n\u003cp\u003eVous payez uniquement à la réception de votre colis. Notre équipe vous appellera pour confirmer votre commande avant expédition.\u003c\/p\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"gar-card\"\u003e\n\u003cdiv class=\"gar-icon\"\u003e🌿\u003c\/div\u003e\n\u003ch4\u003eFormule 100% Naturelle\u003c\/h4\u003e\n\u003cp\u003eDes ingrédients botaniques doux, sans agents agressifs. Pensée pour respecter votre cuir chevelu et vos cheveux.\u003c\/p\u003e\n\u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003c!-- FAQ --\u003e\n\u003csection class=\"section faq\"\u003e\n  \u003cdiv class=\"container\"\u003e\n    \u003cspan class=\"section-label\"\u003eQuestions Fréquentes\u003c\/span\u003e\n    \u003ch2 class=\"section-title\"\u003eTout Ce Que Vous\u003cbr\u003eDevez Savoir\u003c\/h2\u003e\n    \u003cdiv class=\"faq-list\"\u003e\n      \u003cdiv class=\"faq-item\"\u003e\n\u003cbutton class=\"faq-q\" onclick=\"cacFaq(this)\"\u003e\u003cspan\u003eEn combien de temps vais-je voir des résultats ?\u003c\/span\u003e\u003cspan class=\"faq-icon\"\u003e+\u003c\/span\u003e\u003c\/button\u003e\u003cdiv class=\"faq-a\"\u003eCela varie d'une personne à l'autre, mais la plupart des utilisateurs constatent une amélioration nette dès les 7 premiers jours d'utilisation régulière.\u003c\/div\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"faq-item\"\u003e\n\u003cbutton class=\"faq-q\" onclick=\"cacFaq(this)\"\u003e\u003cspan\u003eConvient-elle aux cuirs chevelus sensibles ?\u003c\/span\u003e\u003cspan class=\"faq-icon\"\u003e+\u003c\/span\u003e\u003c\/button\u003e\u003cdiv class=\"faq-a\"\u003eOui. La crème est conçue pour tous types de peau et de cheveux, avec une formule botanique douce pensée pour les cuirs chevelus sensibles et irrités.\u003c\/div\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"faq-item\"\u003e\n\u003cbutton class=\"faq-q\" onclick=\"cacFaq(this)\"\u003e\u003cspan\u003eComment l'utiliser ?\u003c\/span\u003e\u003cspan class=\"faq-icon\"\u003e+\u003c\/span\u003e\u003c\/button\u003e\u003cdiv class=\"faq-a\"\u003eAppliquez la crème directement sur le cuir chevelu 2 à 3 fois par jour, en ajustant selon vos besoins. Aucun rinçage nécessaire : elle pénètre sans laisser de résidu et sans jour de lavage.\u003c\/div\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"faq-item\"\u003e\n\u003cbutton class=\"faq-q\" onclick=\"cacFaq(this)\"\u003e\u003cspan\u003eVa-t-elle assécher ou alourdir mes cheveux ?\u003c\/span\u003e\u003cspan class=\"faq-icon\"\u003e+\u003c\/span\u003e\u003c\/button\u003e\u003cdiv class=\"faq-a\"\u003eNon. C'est justement sa différence : elle apaise et hydrate le cuir chevelu sans dessécher, sans graisser et sans laisser de film sur les cheveux.\u003c\/div\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"faq-item\"\u003e\n\u003cbutton class=\"faq-q\" onclick=\"cacFaq(this)\"\u003e\u003cspan\u003eQue faire si elle ne fonctionne pas pour moi ?\u003c\/span\u003e\u003cspan class=\"faq-icon\"\u003e+\u003c\/span\u003e\u003c\/button\u003e\u003cdiv class=\"faq-a\"\u003eNous offrons une garantie satisfait ou remboursé de 30 jours. Si vous ne constatez pas d'amélioration, il vous suffit de nous contacter pour être remboursé, sans question.\u003c\/div\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"faq-item\"\u003e\n\u003cbutton class=\"faq-q\" onclick=\"cacFaq(this)\"\u003e\u003cspan\u003eComment fonctionne le paiement à la livraison ?\u003c\/span\u003e\u003cspan class=\"faq-icon\"\u003e+\u003c\/span\u003e\u003c\/button\u003e\u003cdiv class=\"faq-a\"\u003ePassez commande en ligne et notre équipe vous contactera par téléphone pour confirmer votre commande avant l'expédition. Vous réglez directement au livreur à la réception de votre colis — sans risque, sans engagement.\u003c\/div\u003e\n\u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003c!-- MANIFESTO --\u003e\n\u003csection class=\"manifesto\"\u003e\n  \u003cdiv class=\"container\"\u003e\n    \u003cdiv class=\"divider\"\u003e\u003cspan class=\"divider-ornament\"\u003e✦\u003c\/span\u003e\u003c\/div\u003e\n    \u003cspan class=\"section-label\" style=\"text-align:center;display:block\"\u003eNotre Philosophie\u003c\/span\u003e\n    \u003ch2 class=\"section-title\"\u003eVotre Cuir Chevelu\u003cbr\u003eMérite la Paix\u003c\/h2\u003e\n    \u003cp class=\"manifesto-text\"\u003eVous n'avez pas besoin de choisir entre apaiser votre cuir chevelu et préserver vos cheveux. Vous méritez les deux. Cette crème rend cela possible — pour en finir avec le cercle vicieux et retrouver, enfin, un vrai confort au quotidien.\u003c\/p\u003e\n    \u003cdiv class=\"manifesto-garantie\"\u003e✦ Livraison sous 48h · Paiement à la livraison · Remboursé sous 30 jours ✦\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003c\/div\u003e\n\n\u003c!-- DISCLAIMER --\u003e\n\u003cdiv id=\"cac\"\u003e\u003cdiv class=\"disclaimer\"\u003eCe produit est un cosmétique à usage externe, destiné au cuir chevelu uniquement. Éviter le contour des yeux et les muqueuses. Un test cutané est recommandé avant la première utilisation. En cas de réaction ou d'irritation persistante, cessez l'usage et consultez un professionnel de santé. Tenir hors de portée des enfants. Les résultats peuvent varier d'une personne à l'autre.\u003c\/div\u003e\u003c\/div\u003e\n\n\u003c!-- COPY BUTTON --\u003e\n\u003cdiv id=\"cac-copy-bar\" style=\"position: fixed; bottom: 24px; right: 24px; z-index: 9999; display: none;\"\u003e\n  \u003cbutton onclick=\"cacCopy()\" id=\"cac-copy-btn\" style=\"display:flex;align-items:center;gap:10px;background:#c9a84c;color:#1b3d25;border:none;padding:12px 22px;border-radius:100px;font-size:14px;font-weight:600;cursor:pointer;box-shadow:0 8px 28px rgba(201,168,76,.5);font-family:'Jost',sans-serif;transition:all .2s;\"\u003e\n    \u003cspan\u003e📋\u003c\/span\u003e\u003cspan id=\"cac-copy-txt\"\u003eCopia codice\u003c\/span\u003e\n  \u003c\/button\u003e\n\u003c\/div\u003e\n\n\u003cscript\u003e\nfunction cacFaq(btn){\n  var a=btn.nextElementSibling;\n  var isOpen=a.classList.contains('show');\n  document.querySelectorAll('#cac .faq-a').forEach(function(x){x.classList.remove('show')});\n  document.querySelectorAll('#cac .faq-q').forEach(function(x){x.classList.remove('open')});\n  if(!isOpen){a.classList.add('show');btn.classList.add('open');}\n}\nfunction cacCopy(){\n  var btn=document.getElementById('cac-copy-btn'),txt=document.getElementById('cac-copy-txt'),bar=document.getElementById('cac-copy-bar');\n  bar.style.display='none';var code=document.documentElement.outerHTML;bar.style.display='';\n  navigator.clipboard.writeText(code).then(function(){\n    txt.textContent='✓ Copiato!';btn.style.background='#1b3d25';btn.style.color='white';\n    setTimeout(function(){txt.textContent='Copia codice';btn.style.background='#c9a84c';btn.style.color='#1b3d25';},2500);\n  }).catch(function(){\n    var ta=document.createElement('textarea');ta.value=code;document.body.appendChild(ta);ta.select();document.execCommand('copy');document.body.removeChild(ta);\n    txt.textContent='✓ Copiato!';btn.style.background='#1b3d25';btn.style.color='white';\n    setTimeout(function(){txt.textContent='Copia codice';btn.style.background='#c9a84c';btn.style.color='#1b3d25';},2500);\n  });\n}\n\u003c\/script\u003e\n","brand":"NaayaLab","offers":[{"title":"Default Title","offer_id":53623327031632,"sku":null,"price":18900.0,"currency_code":"XOF","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0897\/1131\/3232\/files\/fr-5.webp?v=1789595176","url":"https:\/\/naayalab.com\/products\/centr-ml","provider":"NaayaLab","version":"1.0","type":"link"}