{"product_id":"cellu-bf","title":"Crème Corps Raffermissante BF","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  \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#crc{\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#crc *,#crc *::before,#crc *::after{margin:0;padding:0;box-sizing:border-box}\n#crc h1,#crc h2,#crc h3,#crc h4{font-family:'Cormorant Garamond',serif}\n#crc img{max-width:100%;height:auto;display:block}\n\n#crc .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#crc .hero{background:var(--verde);padding:60px 20px 70px;text-align:center;position:relative}\n#crc .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#crc .hero h1{font-size:clamp(42px,8vw,72px);color:var(--bianco);font-weight:500;line-height:1.1;margin-bottom:20px}\n#crc .hero h1 em{color:var(--oro);font-style:italic}\n#crc .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#crc .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#crc .hero-rating .stars{color:var(--oro);letter-spacing:2px;font-size:14px}\n#crc .hero-rating .rtxt{font-size:12px;color:rgba(255,255,255,0.7)}\n#crc .hero-garanties{display:flex;justify-content:center;gap:24px;margin-top:20px;flex-wrap:wrap}\n#crc .hero-garanties span{font-size:12px;color:rgba(255,255,255,0.6);display:flex;align-items:center;gap:6px}\n#crc .hero-garanties span::before{content:'✦';color:var(--oro);font-size:10px}\n\n#crc .photo-break img{width:100%;height:auto;display:block}\n\n#crc .section{padding:70px 20px}\n#crc .container{max-width:900px;margin:0 auto}\n#crc .section-label{font-size:11px;font-weight:600;letter-spacing:3px;text-transform:uppercase;color:var(--oro);margin-bottom:14px;display:block}\n#crc .section-title{font-size:clamp(30px,5vw,48px);font-weight:500;line-height:1.2;color:var(--verde);margin-bottom:20px}\n#crc .section-sub{font-size:16px;color:var(--testo-chiaro);line-height:1.8;max-width:700px}\n\n#crc .problema{background:var(--bianco)}\n#crc .problema-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px;margin-top:40px}\n#crc .prob-card{background:var(--sfondo);border-left:3px solid var(--oro);padding:22px 24px;border-radius:0 8px 8px 0}\n#crc .prob-card .emoji{font-size:22px;margin-bottom:10px}\n#crc .prob-card h4{font-size:20px;color:var(--verde);margin-bottom:8px}\n#crc .prob-card p{font-size:14px;color:var(--testo-chiaro);line-height:1.7}\n\n#crc .prima-dopo{background:var(--sfondo)}\n#crc .pd-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:40px}\n#crc .pd-col{padding:32px;border-radius:12px}\n#crc .pd-prima{background:#efe8db;border:1px solid #dcd3c1}\n#crc .pd-dopo{background:var(--verde);border:1px solid var(--verde)}\n#crc .pd-label{font-size:11px;font-weight:600;letter-spacing:2px;text-transform:uppercase;margin-bottom:16px;display:block}\n#crc .pd-prima .pd-label{color:#998}\n#crc .pd-dopo .pd-label{color:var(--oro)}\n#crc .pd-items{list-style:none;display:flex;flex-direction:column;gap:12px}\n#crc .pd-items li{font-size:14px;display:flex;align-items:flex-start;gap:10px;line-height:1.6}\n#crc .pd-prima .pd-items li{color:#887}\n#crc .pd-prima .pd-items li::before{content:'✗';color:#cc4444;font-weight:700;flex-shrink:0;margin-top:1px}\n#crc .pd-dopo .pd-items li{color:rgba(255,255,255,0.9)}\n#crc .pd-dopo .pd-items li::before{content:'✦';color:var(--oro);font-size:12px;flex-shrink:0;margin-top:3px}\n#crc .pd-settimane{background:var(--verde);border-radius:12px;padding:36px;margin-top:30px;color:var(--bianco)}\n#crc .pd-settimane h3{font-size:28px;color:var(--oro);margin-bottom:24px}\n#crc .timeline{display:flex;flex-direction:column;gap:16px}\n#crc .tl-item{display:flex;gap:16px;align-items:flex-start}\n#crc .tl-dot{width:44px;height:36px;border-radius:100px;background:rgba(201,168,76,0.15);border:1px solid var(--oro);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;color:var(--oro);flex-shrink:0;font-family:'Jost',sans-serif;letter-spacing:0.3px}\n#crc .tl-text h4{font-size:18px;color:var(--oro);margin-bottom:4px}\n#crc .tl-text p{font-size:13px;color:rgba(255,255,255,0.7);line-height:1.7}\n\n#crc .benefici{background:var(--bianco)}\n#crc .ben-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:24px;margin-top:40px}\n#crc .ben-card{text-align:center;padding:32px 20px;border-radius:12px;background:var(--sfondo);border:1px solid var(--grigio);transition:all 0.3s}\n#crc .ben-card:hover{transform:translateY(-4px);border-color:var(--oro)}\n#crc .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#crc .ben-card h4{font-size:20px;color:var(--verde);margin-bottom:10px}\n#crc .ben-card p{font-size:13px;color:var(--testo-chiaro);line-height:1.7}\n\n#crc .testimonianze{background:var(--sfondo)}\n#crc .testi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px;margin-top:40px}\n#crc .testi-card{background:var(--bianco);border-radius:12px;padding:28px;border:1px solid var(--grigio)}\n#crc .stars{color:var(--oro);font-size:14px;margin-bottom:14px;letter-spacing:2px}\n#crc .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#crc .testi-author{display:flex;align-items:center;gap:10px}\n#crc .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#crc .testi-name{font-size:13px;font-weight:600;color:var(--testo)}\n#crc .testi-detail{font-size:11px;color:#999}\n\n#crc .scienza{background:var(--verde)}\n#crc .scienza .section-title{color:var(--bianco)}\n#crc .scienza .section-sub{color:rgba(255,255,255,0.7)}\n#crc .scienza .section-label{color:var(--oro)}\n#crc .meccanismo{margin-top:40px;display:grid;grid-template-columns:1fr;gap:24px}\n#crc .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#crc .mec-num{font-size:36px;font-weight:500;color:var(--oro);line-height:1;flex-shrink:0;min-width:44px}\n#crc .mec-text h4{font-size:22px;color:var(--bianco);margin-bottom:8px}\n#crc .mec-text p{font-size:14px;color:rgba(255,255,255,0.65);line-height:1.7}\n\n#crc .ingredienti{background:var(--bianco)}\n#crc .ing-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px;margin-top:40px}\n#crc .ing-card{border-radius:12px;overflow:hidden;border:1px solid var(--grigio)}\n#crc .ing-header{background:var(--verde);padding:20px;text-align:center}\n#crc .ing-header .ing-emoji{font-size:32px;margin-bottom:8px}\n#crc .ing-header h4{font-size:19px;color:var(--bianco)}\n#crc .ing-header small{font-size:11px;color:var(--oro);font-weight:500;letter-spacing:1px;text-transform:uppercase}\n#crc .ing-body{padding:20px}\n#crc .ing-body p{font-size:13px;color:var(--testo-chiaro);line-height:1.7;margin-bottom:12px}\n#crc .ing-dosage{font-size:11px;font-weight:600;color:var(--oro);letter-spacing:1px;text-transform:uppercase}\n\n#crc .comparazione{background:var(--sfondo)}\n#crc .comp-table{width:100%;border-collapse:collapse;margin-top:40px;background:var(--bianco);border-radius:12px;overflow:hidden;border:1px solid var(--grigio)}\n#crc .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#crc .comp-table th.nous{color:var(--oro)}\n#crc .comp-table td{padding:14px 18px;font-size:14px;border-bottom:1px solid var(--grigio);vertical-align:middle}\n#crc .comp-table tr:last-child td{border-bottom:none}\n#crc .comp-table td.feature{font-weight:500;color:var(--testo);font-size:13px}\n#crc .comp-table td.oui{color:#1a7a4a;font-weight:600}\n#crc .comp-table td.non{color:#cc4444}\n#crc .comp-table tr:nth-child(even) td{background:#faf8f4}\n\n#crc .garanzie{background:var(--verde);padding:70px 20px}\n#crc .gar-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px;margin-top:40px}\n#crc .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#crc .gar-icon{font-size:32px;margin-bottom:14px}\n#crc .gar-card h4{font-size:20px;color:var(--oro);margin-bottom:10px}\n#crc .gar-card p{font-size:13px;color:rgba(255,255,255,0.65);line-height:1.7}\n#crc .gar-card.paiement{border-color:var(--oro);background:rgba(201,168,76,0.08)}\n#crc .garanzie .section-title{color:var(--bianco)}\n#crc .garanzie .section-label{color:var(--oro)}\n\n#crc .faq{background:var(--bianco)}\n#crc .faq-list{margin-top:40px;display:flex;flex-direction:column;gap:12px;max-width:720px}\n#crc .faq-item{border:1px solid var(--grigio);border-radius:10px;overflow:hidden}\n#crc .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#crc .faq-q:hover{background:var(--sfondo)}\n#crc .faq-q .faq-icon{font-size:18px;color:var(--oro);transition:transform 0.3s;flex-shrink:0;margin-left:12px}\n#crc .faq-q.open .faq-icon{transform:rotate(45deg)}\n#crc .faq-a{display:none;padding:0 24px 20px;font-size:14px;color:var(--testo-chiaro);line-height:1.8}\n#crc .faq-a.show{display:block}\n\n#crc .manifesto{background:var(--sfondo);text-align:center;padding:80px 20px}\n#crc .manifesto .section-title{color:var(--verde);font-size:clamp(36px,5vw,54px)}\n#crc .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#crc .manifesto-garantie{font-size:13px;color:#999;margin-top:8px}\n\n#crc .divider{display:flex;align-items:center;gap:12px;max-width:200px;margin:0 auto 16px}\n#crc .divider::before,#crc .divider::after{content:'';flex:1;height:1px;background:var(--oro);opacity:0.4}\n#crc .divider-ornament{color:var(--oro);font-size:12px}\n\n#crc .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  #crc .pd-grid{grid-template-columns:1fr}\n  #crc .ben-grid{grid-template-columns:1fr 1fr}\n  #crc .hero h1{font-size:38px}\n  #crc .comp-table{font-size:12px}\n  #crc .comp-table td,#crc .comp-table th{padding:10px 12px}\n  #crc .hero-garanties{gap:14px}\n  #crc .gar-grid{grid-template-columns:1fr 1fr}\n}\n\u003c\/style\u003e\n\n\u003cdiv id=\"crc\"\u003e\n\n\u003c!-- TOPBAR --\u003e\n\u003cdiv class=\"topbar\"\u003e✦ Livraison Express Gratuite Cette Semaine ✦ Peau Visiblement Raffermie ✦\u003c\/div\u003e\n\n\u003c!-- HERO --\u003e\n\u003csection class=\"hero\"\u003e\n  \u003cdiv class=\"hero-badge\"\u003eSoin Corps Raffermissant Premium\u003c\/div\u003e\n  \u003ch1\u003eRetrouvez une Peau\u003cbr\u003eFerme \u003cem\u003eet Lisse\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 15 000 avis vérifiés\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003cp class=\"hero-sub\"\u003eLa peau relâchée et l'aspect « papier de soie » sur les bras et le cou ne viennent pas d'un manque d'hydratation, mais d'une perte de fermeté. Cette crème agit en profondeur pour la reconstruire.\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é 60 jours\u003c\/span\u003e\n    \u003cspan\u003eFormule clean \u0026amp; vegan\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\/5_aaefd5b7-acc1-4e4a-bef4-78c93334cdca.webp?v=1789423372\" alt=\"Crème Corps Raffermissante\"\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\"\u003eCe n'est pas de la sécheresse.\u003cbr\u003eC'est une perte de fermeté.\u003c\/h2\u003e\n    \u003cp class=\"section-sub\"\u003eAvec le temps, la peau des bras, du cou et du décolleté s'affine et perd sa structure. Le relâchement et la texture crêpée viennent du même endroit : une perte de soutien. C'est pourquoi les crèmes hydratantes classiques, qui ne font qu'ajouter de l'eau en surface, n'y changent rien.\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\u003eAspect « papier de soie »\u003c\/h4\u003e\n\u003cp\u003eCette texture fine et fripée qui apparaît sur les bras et le cou, impossible à masquer avec un simple hydratant.\u003c\/p\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"prob-card\"\u003e\n\u003cdiv class=\"emoji\"\u003e🫗\u003c\/div\u003e\n\u003ch4\u003ePeau relâchée\u003c\/h4\u003e\n\u003cp\u003eLa peau perd son rebond et son maintien, surtout sur le haut des bras, sous le menton et le décolleté.\u003c\/p\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"prob-card\"\u003e\n\u003cdiv class=\"emoji\"\u003e👕\u003c\/div\u003e\n\u003ch4\u003eL'envie de se couvrir\u003c\/h4\u003e\n\u003cp\u003eOn évite les manches courtes, les cols en V, on choisit ses vêtements pour cacher plutôt que pour se plaire.\u003c\/p\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"prob-card\"\u003e\n\u003cdiv class=\"emoji\"\u003e💸\u003c\/div\u003e\n\u003ch4\u003eDes crèmes qui déçoivent\u003c\/h4\u003e\n\u003cp\u003eHydratant après hydratant, crème de luxe après crème de luxe… quelques heures d'effet, puis retour à la case départ.\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 Raffermissante\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\u003ePeau fine, fripée, aspect papier de soie\u003c\/li\u003e\n          \u003cli\u003eBras et cou qui trahissent l'âge\u003c\/li\u003e\n          \u003cli\u003eManches longues même en été\u003c\/li\u003e\n          \u003cli\u003eHydratants sans effet durable\u003c\/li\u003e\n          \u003cli\u003ePeau tendue, inconfortable, papuleuse\u003c\/li\u003e\n          \u003cli\u003eLe réflexe de se couvrir\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\u003ePeau plus ferme, plus lisse, plus rebondie\u003c\/li\u003e\n          \u003cli\u003eTexture crêpée visiblement atténuée\u003c\/li\u003e\n          \u003cli\u003eBras et cou plus toniques\u003c\/li\u003e\n          \u003cli\u003ePeau confortable, souple, hydratée en profondeur\u003c\/li\u003e\n          \u003cli\u003eLa confiance de porter sans manches\u003c\/li\u003e\n          \u003cli\u003eLe plaisir de se montrer à nouveau\u003c\/li\u003e\n        \u003c\/ul\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"pd-settimane\"\u003e\n      \u003ch3\u003eVotre Peau, Semaine après Semaine\u003c\/h3\u003e\n      \u003cdiv class=\"timeline\"\u003e\n        \u003cdiv class=\"tl-item\"\u003e\n\u003cdiv class=\"tl-dot\"\u003eJ1-3\u003c\/div\u003e\n\u003cdiv class=\"tl-text\"\u003e\n\u003ch4\u003eJours 1 à 3 — Confort Immédiat\u003c\/h4\u003e\n\u003cp\u003eLa peau est instantanément plus hydratée et souple. Moins tiraillée, moins papuleuse dès les premières applications.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"tl-item\"\u003e\n\u003cdiv class=\"tl-dot\"\u003eS1-2\u003c\/div\u003e\n\u003cdiv class=\"tl-text\"\u003e\n\u003ch4\u003eSemaines 1 à 2 — La Texture s'Affine\u003c\/h4\u003e\n\u003cp\u003eLa niacinamide lisse et unifie. La peau paraît plus douce et régulière, la barrière cutanée se renforce.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"tl-item\"\u003e\n\u003cdiv class=\"tl-dot\"\u003eS3-4\u003c\/div\u003e\n\u003cdiv class=\"tl-text\"\u003e\n\u003ch4\u003eSemaines 3 à 4 — La Fermeté Revient\u003c\/h4\u003e\n\u003cp\u003eLe complexe peptidique agit en profondeur. La texture crêpée s'atténue visiblement — le moment où la plupart des femmes voient un vrai changement.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"tl-item\"\u003e\n\u003cdiv class=\"tl-dot\"\u003eS8+\u003c\/div\u003e\n\u003cdiv class=\"tl-text\"\u003e\n\u003ch4\u003eSemaine 8 et au-delà — Résultats Durables\u003c\/h4\u003e\n\u003cp\u003eLe raffermissement se renforce avec l'usage régulier. Une peau visiblement plus lisse, plus tonique et plus jeune.\u003c\/p\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 2 --\u003e\n\u003cdiv class=\"photo-break\"\u003e\n  \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0897\/1131\/3232\/files\/10_9d5c6f69-21c2-4251-9afc-37e842156d5c.webp?v=1789423372\" alt=\"Crème Corps Raffermissante 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\u003eRaffermit Visiblement\u003c\/h4\u003e\n\u003cp\u003eLe Complexe Triple Peptide soutient le collagène et l'élasticité pour une peau visiblement plus ferme et tonique.\u003c\/p\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"ben-card\"\u003e\n\u003cdiv class=\"ben-icon\"\u003e✨\u003c\/div\u003e\n\u003ch4\u003eLisse la Texture Crêpée\u003c\/h4\u003e\n\u003cp\u003eLa niacinamide dosée à 5 % affine le grain de peau et atténue l'aspect fripé, semaine après semaine.\u003c\/p\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"ben-card\"\u003e\n\u003cdiv class=\"ben-icon\"\u003e💧\u003c\/div\u003e\n\u003ch4\u003eHydrate en Profondeur\u003c\/h4\u003e\n\u003cp\u003eLe Triple Complexe Céramides et l'acide hyaluronique reconstruisent la barrière et retiennent l'eau durablement.\u003c\/p\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"ben-card\"\u003e\n\u003cdiv class=\"ben-icon\"\u003e🌿\u003c\/div\u003e\n\u003ch4\u003eFormule Clean \u0026amp; Mature\u003c\/h4\u003e\n\u003cp\u003eSans silicones, parabènes ni parfum de synthèse. Vegan, pensée pour les peaux matures et sensibles.\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\"\u003eElles Ont Retrouvé Confiance\u003c\/span\u003e\n    \u003ch2 class=\"section-title\"\u003eCe Que Disent\u003cbr\u003eNos Clientes\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« Je cachais mes bras sous des gilets tout l'été. Après deux semaines, la peau paraît visiblement plus lisse. Je n'ai plus l'envie de me couvrir. »\u003c\/p\u003e\n\u003cdiv class=\"testi-author\"\u003e\n\u003cdiv class=\"testi-avatar\"\u003eMS\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"testi-name\"\u003eMarlène S., 62 ans\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 cou trahissait mon âge, ce côté fripé qu'aucune crème ne touchait. Après quelques semaines, la peau est plus lisse. Je remets des cols en V. »\u003c\/p\u003e\n\u003cdiv class=\"testi-author\"\u003e\n\u003cdiv class=\"testi-avatar\"\u003ePL\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"testi-name\"\u003ePatricia L., 69 ans\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« J'ai dépensé une fortune en crèmes de luxe inutiles. Il a fallu 6 semaines, mais mes bras n'ont plus cet aspect papier de soie. J'ai remis une robe sans manches. »\u003c\/p\u003e\n\u003cdiv class=\"testi-author\"\u003e\n\u003cdiv class=\"testi-avatar\"\u003eMH\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cdiv class=\"testi-name\"\u003eMargaret H., 58 ans\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\/2_d0b67476-f1eb-4763-ba0a-df9601b8d4e4.webp?v=1789423372\" alt=\"Actifs Crème Raffermissante\"\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\"\u003eLa Science\u003c\/span\u003e\n    \u003ch2 class=\"section-title\"\u003ePourquoi Cette Crème\u003cbr\u003eAgit là où les Autres Échouent\u003c\/h2\u003e\n    \u003cp class=\"section-sub\"\u003eLa plupart des crèmes se contentent d'hydrater la surface. Celle-ci travaille en profondeur, sur ce qui provoque réellement le relâchement et la texture crêpée de la peau mature.\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 Reconstruit la Fermeté\u003c\/h4\u003e\n\u003cp\u003eLe Complexe Triple Peptide — dont le peptide de cuivre — soutient la production de collagène et d'élastine, la structure que la peau perd avec l'âge.\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 Lisse et Unifie\u003c\/h4\u003e\n\u003cp\u003eLa niacinamide dosée à 5 %, la concentration cliniquement étudiée, renforce la barrière cutanée et affine visiblement le grain de peau.\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 Restaure la Barrière\u003c\/h4\u003e\n\u003cp\u003eLe Triple Complexe Céramides recrée les lipides que la peau perd en vieillissant, mettant fin à cette sensation sèche et papuleuse.\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 Hydrate en Profondeur\u003c\/h4\u003e\n\u003cp\u003eL'acide hyaluronique multi-poids et le bakuchiol — alternative végétale au rétinol, sans irritation — plumpent et renouvellent la peau à différents niveaux.\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 Actifs\u003c\/span\u003e\n    \u003ch2 class=\"section-title\"\u003eDes Actifs Dosés\u003cbr\u003epour Vraiment Agir\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\u003eComplexe Triple Peptide\u003c\/h4\u003e\n\u003csmall\u003eFermeté \u0026amp; Collagène\u003c\/small\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"ing-body\"\u003e\n\u003cp\u003eTrois peptides ciblant trois mécanismes du vieillissement, dont le peptide de cuivre, pour soutenir le collagène et l'élastine.\u003c\/p\u003e\n\u003cdiv class=\"ing-dosage\"\u003eRaffermit visiblement\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\u003eNiacinamide 5%\u003c\/h4\u003e\n\u003csmall\u003eVitamine B3\u003c\/small\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"ing-body\"\u003e\n\u003cp\u003eL'ingrédient référence pour la barrière cutanée. Dosé à 5 %, la concentration étudiée pour lisser et raffermir la peau.\u003c\/p\u003e\n\u003cdiv class=\"ing-dosage\"\u003eDose clinique\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\u003eTriple Complexe Céramides\u003c\/h4\u003e\n\u003csmall\u003eBarrière Cutanée\u003c\/small\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"ing-body\"\u003e\n\u003cp\u003eLes céramides exactes présentes dans une peau saine, reconstruites pour retenir l'eau et stopper l'aspect sec et papuleux.\u003c\/p\u003e\n\u003cdiv class=\"ing-dosage\"\u003eRestaure \u0026amp; protège\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\u003eBakuchiol\u003c\/h4\u003e\n\u003csmall\u003eAlternative Végétale au Rétinol\u003c\/small\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"ing-body\"\u003e\n\u003cp\u003eLes résultats du rétinol — fermeté et renouvellement — sans rougeur ni sensibilité. Idéal pour les peaux matures.\u003c\/p\u003e\n\u003cdiv class=\"ing-dosage\"\u003eSans irritation\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\/4_cb9579fb-a6cf-4893-bf54-f88183599d2d.webp?v=1789423372\" alt=\"Crème Raffermissante 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 Raffermissante ou\u003cbr\u003eHydratant Classique ?\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 Raffermissante\u003c\/th\u003e\n\u003cth\u003eHydratant classique\u003c\/th\u003e\n\u003c\/tr\u003e\u003c\/thead\u003e\n      \u003ctbody\u003e\n        \u003ctr\u003e\n\u003ctd class=\"feature\"\u003eAgit sur la fermeté\u003c\/td\u003e\n\u003ctd class=\"oui\"\u003e✦ Complexe peptidique\u003c\/td\u003e\n\u003ctd class=\"non\"\u003e✗ Hydrate la surface\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr\u003e\n\u003ctd class=\"feature\"\u003eActifs à dose clinique\u003c\/td\u003e\n\u003ctd class=\"oui\"\u003e✦ Niacinamide 5%\u003c\/td\u003e\n\u003ctd class=\"non\"\u003e✗ Traces pour l'étiquette\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr\u003e\n\u003ctd class=\"feature\"\u003eCible la texture crêpée\u003c\/td\u003e\n\u003ctd class=\"oui\"\u003e✦ Oui, en profondeur\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\"\u003eFormule sans silicones\u003c\/td\u003e\n\u003ctd class=\"oui\"\u003e✦ Vrais actifs\u003c\/td\u003e\n\u003ctd class=\"non\"\u003e✗ Faux lissage temporaire\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr\u003e\n\u003ctd class=\"feature\"\u003eClean \u0026amp; vegan\u003c\/td\u003e\n\u003ctd class=\"oui\"\u003e✦ Sans parabènes ni parfum\u003c\/td\u003e\n\u003ctd class=\"non\"\u003e✗ Souvent parfumé\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\u003e60 jours pour l'essayer. Utilisez le pot entier. Sans résultat, 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 Clean\u003c\/h4\u003e\n\u003cp\u003eSans silicones, parabènes, PEG ni parfum de synthèse. Vegan et non testée sur les animaux.\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=\"crcFaq(this)\"\u003e\u003cspan\u003eEn quoi est-elle différente des crèmes que j'ai déjà essayées ?\u003c\/span\u003e\u003cspan class=\"faq-icon\"\u003e+\u003c\/span\u003e\u003c\/button\u003e\u003cdiv class=\"faq-a\"\u003eLa plupart des crèmes n'hydratent que la surface. Celle-ci agit à trois niveaux : hydratation immédiate (acide hyaluronique multi-poids), soutien de la barrière (Triple Complexe Céramides) et soutien structurel (Complexe Triple Peptide et bakuchiol). La différence ? Des concentrations d'actifs réellement efficaces, pas des traces pour l'étiquette.\u003c\/div\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"faq-item\"\u003e\n\u003cbutton class=\"faq-q\" onclick=\"crcFaq(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\"\u003eJours 1 à 3 : peau plus hydratée et confortable, moins papuleuse. Semaines 1 à 2 : la texture commence à s'affiner. Semaines 3 à 4 : amélioration visible de la texture crêpée, la peau paraît plus ferme — c'est là que la plupart des femmes constatent un vrai changement. Semaines 8 et plus : raffermissement et lissage qui se renforcent avec l'usage régulier.\u003c\/div\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"faq-item\"\u003e\n\u003cbutton class=\"faq-q\" onclick=\"crcFaq(this)\"\u003e\u003cspan\u003eFonctionne-t-elle sur une peau très crêpée ?\u003c\/span\u003e\u003cspan class=\"faq-icon\"\u003e+\u003c\/span\u003e\u003c\/button\u003e\u003cdiv class=\"faq-a\"\u003eOui. La formule a été développée spécifiquement pour les peaux crêpées et relâchées avancées, pas seulement les ridules. Le Triple Complexe Céramides soutient la barrière lipidique, le Complexe Triple Peptide améliore la fermeté dans le temps, et le bakuchiol raffermit sans irritation.\u003c\/div\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"faq-item\"\u003e\n\u003cbutton class=\"faq-q\" onclick=\"crcFaq(this)\"\u003e\u003cspan\u003eSur quelles zones puis-je l'appliquer ?\u003c\/span\u003e\u003cspan class=\"faq-icon\"\u003e+\u003c\/span\u003e\u003c\/button\u003e\u003cdiv class=\"faq-a\"\u003eElle est pensée pour les zones les plus sujettes à la peau crêpée — bras, cou et décolleté — mais convient à toutes les zones du corps présentant un relâchement ou une texture crêpée, y compris les jambes et le ventre.\u003c\/div\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"faq-item\"\u003e\n\u003cbutton class=\"faq-q\" onclick=\"crcFaq(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 matin et soir sur une peau propre, sur les bras, le cou, le décolleté et partout où la texture crêpée vous gêne. Une noisette par bras suffit : la texture pénètre vite, sans coller ni graisser.\u003c\/div\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"faq-item\"\u003e\n\u003cbutton class=\"faq-q\" onclick=\"crcFaq(this)\"\u003e\u003cspan\u003eConvient-elle aux peaux matures et sensibles ?\u003c\/span\u003e\u003cspan class=\"faq-icon\"\u003e+\u003c\/span\u003e\u003c\/button\u003e\u003cdiv class=\"faq-a\"\u003eAbsolument. Cette formule a été spécifiquement développée pour les peaux matures et sensibles. Elle évite les irritants courants et intègre des ingrédients apaisants comme la centella asiatica.\u003c\/div\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"faq-item\"\u003e\n\u003cbutton class=\"faq-q\" onclick=\"crcFaq(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 Peau Mérite\u003cbr\u003ede Vrais Actifs\u003c\/h2\u003e\n    \u003cp class=\"manifesto-text\"\u003eVous n'avez pas besoin d'une crème de luxe de plus, remplie de silicones et de promesses. Vous avez besoin d'actifs dosés à des concentrations qui agissent vraiment. Cette crème rend cela possible — pour une peau que vous n'avez plus envie de cacher.\u003c\/p\u003e\n    \u003cdiv class=\"manifesto-garantie\"\u003e✦ Livraison sous 48h · Paiement à la livraison · Remboursé sous 60 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=\"crc\"\u003e\u003cdiv class=\"disclaimer\"\u003eCe produit est un cosmétique à usage externe. Éviter le contour des yeux et les muqueuses. Un test cutané est recommandé avant la première utilisation. En cas de réaction, cessez l'usage. 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=\"crc-copy-bar\" style=\"position: fixed; bottom: 24px; right: 24px; z-index: 9999; display: none;\"\u003e\n  \u003cbutton onclick=\"crcCopy()\" id=\"crc-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=\"crc-copy-txt\"\u003eCopia codice\u003c\/span\u003e\n  \u003c\/button\u003e\n\u003c\/div\u003e\n\n\u003cscript\u003e\nfunction crcFaq(btn){\n  var a=btn.nextElementSibling;\n  var isOpen=a.classList.contains('show');\n  document.querySelectorAll('#crc .faq-a').forEach(function(x){x.classList.remove('show')});\n  document.querySelectorAll('#crc .faq-q').forEach(function(x){x.classList.remove('open')});\n  if(!isOpen){a.classList.add('show');btn.classList.add('open');}\n}\nfunction crcCopy(){\n  var btn=document.getElementById('crc-copy-btn'),txt=document.getElementById('crc-copy-txt'),bar=document.getElementById('crc-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":53613019464016,"sku":null,"price":19500.0,"currency_code":"XOF","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0897\/1131\/3232\/files\/1_3e1e7027-f55c-48a4-8f9d-40012a61719a.webp?v=1789423372","url":"https:\/\/naayalab.com\/products\/cellu-bf","provider":"NaayaLab","version":"1.0","type":"link"}