{"title":"Home page","description":null,"products":[{"product_id":"patch-beautyshane","title":"Patch BeautyShane","description":"\n\u003c!-- ============================================================\n     BEAUTYSHAN - Description Produit Shopify\n     Coller dans : Produit \u003e Description \u003e mode HTML (\u003c\/\u003e)\n     \n     IMPORTANT : Avant de coller, configure ton produit avec\n     les variantes suivantes (dans cet ordre exact) :\n     \n     Variante 1 : \"10 Patchs – Cure 10 jours\"\n       Prix : 19.95 | Prix barré : –\n     Variante 2 : \"20 Patchs + 10 OFFERTS – Cure 1 mois\"\n       Prix : 39.95 | Prix barré : 59.95\n     Variante 3 : \"60 Patchs + 30 OFFERTS – Cure 3 mois\"\n       Prix : 59.95 | Prix barré : 179.55\n     Variante 4 : \"90 Patchs + 90 OFFERTS – Cure 6 mois\"\n       Prix : 99.95 | Prix barré : 359.10\n     ============================================================ --\u003e\n\n\u003cstyle\u003e\n  \/* === RESET LOCAL === *\/\n  .bs-desc * { box-sizing: border-box; margin: 0; padding: 0; }\n\n  \/* === CONTAINER === *\/\n  .bs-desc {\n    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;\n    color: #1a1a1a;\n    max-width: 560px;\n    line-height: 1.5;\n  }\n\n  \/* === RATING === *\/\n  .bs-rating {\n    display: flex;\n    align-items: center;\n    gap: 6px;\n    margin-bottom: 10px;\n  }\n  .bs-stars { color: #FF8C00; font-size: 17px; letter-spacing: 1px; }\n  .bs-rating-num { font-size: 15px; font-weight: 700; }\n  .bs-rating-count { font-size: 13px; color: #888; }\n\n  \/* === TITRE === *\/\n  .bs-title {\n    font-size: 30px;\n    font-weight: 800;\n    letter-spacing: -0.5px;\n    margin-bottom: 8px;\n    line-height: 1.15;\n  }\n\n  \/* === PRIX === *\/\n  .bs-price-wrap {\n    display: flex;\n    align-items: baseline;\n    gap: 10px;\n    margin-bottom: 18px;\n  }\n  .bs-price {\n    font-size: 26px;\n    font-weight: 800;\n    color: #1a1a1a;\n  }\n  .bs-price-compare {\n    font-size: 17px;\n    color: #aaa;\n    text-decoration: line-through;\n  }\n\n  \/* === BÉNÉFICES === *\/\n  .bs-benefits {\n    border-top: 1px solid #ebebeb;\n    border-bottom: 1px solid #ebebeb;\n    padding: 14px 0;\n    margin-bottom: 18px;\n    display: flex;\n    flex-direction: column;\n    gap: 10px;\n  }\n  .bs-benefit-row { display: flex; flex-direction: column; gap: 2px; }\n  .bs-benefit-header { display: flex; align-items: center; gap: 6px; }\n  .bs-benefit-emoji { font-size: 16px; line-height: 1; }\n  .bs-benefit-title { font-size: 14px; font-weight: 700; }\n  .bs-benefit-text { font-size: 13.5px; color: #555; margin-left: 22px; }\n\n  \/* === LABEL OFFRE === *\/\n  .bs-offer-label {\n    display: flex;\n    align-items: center;\n    gap: 10px;\n    margin-bottom: 12px;\n  }\n  .bs-offer-label::before,\n  .bs-offer-label::after {\n    content: '';\n    flex: 1;\n    height: 1px;\n    background: #d0d0d0;\n  }\n  .bs-offer-label span {\n    font-size: 10px;\n    font-weight: 700;\n    letter-spacing: 1.8px;\n    text-transform: uppercase;\n    color: #999;\n    white-space: nowrap;\n  }\n\n  \/* === BUNDLES === *\/\n  .bs-bundles {\n    display: flex;\n    flex-direction: column;\n    gap: 10px;\n    margin-bottom: 16px;\n  }\n  .bs-bundle {\n    position: relative;\n    border: 2px solid #e0e0e0;\n    border-radius: 12px;\n    padding: 14px 16px;\n    cursor: pointer;\n    transition: border-color 0.18s, background 0.18s;\n    background: #fff;\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    gap: 12px;\n  }\n  .bs-bundle:hover { border-color: #bbb; }\n  .bs-bundle.active {\n    border-color: #1a1a1a;\n    background: #fdf8f4;\n  }\n  .bs-bundle-left { display: flex; flex-direction: column; gap: 3px; }\n  .bs-bundle-title { font-size: 15px; font-weight: 700; color: #1a1a1a; }\n  .bs-bundle-sub {\n    font-size: 10.5px;\n    font-weight: 600;\n    letter-spacing: 1.2px;\n    text-transform: uppercase;\n    color: #999;\n  }\n  .bs-bundle-right { display: flex; flex-direction: column; align-items: flex-end; gap: 2px; }\n  .bs-bundle-price { font-size: 17px; font-weight: 800; color: #1a1a1a; }\n  .bs-bundle-old {\n    font-size: 13px;\n    color: #aaa;\n    text-decoration: line-through;\n  }\n  .bs-bundle-badge {\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    \/* Non, on met le badge à côté du titre *\/\n    position: static;\n    transform: none;\n    display: inline-block;\n    margin-top: 4px;\n    padding: 2px 7px;\n    background: #1a1a1a;\n    color: #fff;\n    font-size: 9.5px;\n    font-weight: 700;\n    letter-spacing: 1px;\n    text-transform: uppercase;\n    border-radius: 4px;\n  }\n\n  \/* === BOUTON ATC === *\/\n  .bs-atc {\n    width: 100%;\n    padding: 17px 24px;\n    border: none;\n    border-radius: 12px;\n    background: #c8a882;\n    color: #fff;\n    font-size: 17px;\n    font-weight: 700;\n    letter-spacing: 0.4px;\n    cursor: pointer;\n    transition: background 0.2s, transform 0.15s;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    gap: 10px;\n    margin-bottom: 20px;\n    position: relative;\n  }\n  .bs-atc:hover { background: #b59070; transform: translateY(-1px); }\n  .bs-atc:active { transform: translateY(0); }\n  .bs-atc.loading { opacity: 0.7; pointer-events: none; }\n  .bs-atc.success { background: #4caf50; }\n\n  .bs-spinner {\n    display: none;\n    width: 18px;\n    height: 18px;\n    border: 2px solid rgba(255,255,255,0.4);\n    border-top-color: #fff;\n    border-radius: 50%;\n    animation: bs-spin 0.7s linear infinite;\n  }\n  .bs-atc.loading .bs-spinner { display: inline-block; }\n  @keyframes bs-spin { to { transform: rotate(360deg); } }\n\n  \/* === SÉPARATEUR === *\/\n  .bs-divider {\n    height: 1px;\n    background: #ebebeb;\n    margin: 24px 0;\n  }\n\n  \/* === INGRÉDIENTS === *\/\n  .bs-section-title {\n    font-size: 17px;\n    font-weight: 800;\n    margin-bottom: 14px;\n    display: flex;\n    align-items: center;\n    gap: 8px;\n  }\n  .bs-ingredients { display: flex; flex-direction: column; gap: 14px; margin-bottom: 16px; }\n  .bs-ingredient { padding: 12px 14px; background: #faf8f5; border-radius: 10px; border-left: 3px solid #c8a882; }\n  .bs-ingredient-name { font-size: 14px; font-weight: 700; margin-bottom: 2px; }\n  .bs-ingredient-action { font-size: 12px; color: #888; font-style: italic; margin-bottom: 5px; }\n  .bs-ingredient-desc { font-size: 13px; color: #555; line-height: 1.5; }\n  .bs-ingredient-desc strong { color: #1a1a1a; }\n\n  .bs-disclaimer {\n    font-size: 12px;\n    color: #999;\n    font-style: italic;\n    padding: 10px 14px;\n    background: #f5f5f5;\n    border-radius: 8px;\n    line-height: 1.5;\n  }\n  .bs-disclaimer strong { color: #666; }\n\n  \/* === UTILISATION === *\/\n  .bs-steps { display: flex; flex-direction: column; gap: 12px; }\n  .bs-step { display: flex; gap: 12px; align-items: flex-start; }\n  .bs-step-num {\n    width: 28px;\n    height: 28px;\n    border-radius: 50%;\n    background: #1a1a1a;\n    color: #fff;\n    font-size: 12px;\n    font-weight: 700;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    flex-shrink: 0;\n    margin-top: 1px;\n  }\n  .bs-step-content { flex: 1; }\n  .bs-step-title { font-size: 14px; font-weight: 700; margin-bottom: 4px; }\n  .bs-step-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 3px; }\n  .bs-step-list li { font-size: 13px; color: #555; padding-left: 14px; position: relative; }\n  .bs-step-list li::before { content: '·'; position: absolute; left: 4px; color: #c8a882; font-weight: 700; }\n  .bs-step-text { font-size: 13px; color: #555; line-height: 1.5; }\n\u003c\/style\u003e\n\n\u003cdiv class=\"bs-desc\" id=\"bs-product-desc\"\u003e\n\n  \u003c!-- RATING --\u003e\n  \u003cdiv class=\"bs-rating\"\u003e\n    \u003cspan class=\"bs-stars\"\u003e★★★★★\u003c\/span\u003e\n    \u003cspan class=\"bs-rating-num\"\u003e4.8\u003c\/span\u003e\n    \u003cspan class=\"bs-rating-count\"\u003e(248 avis)\u003c\/span\u003e\n  \u003c\/div\u003e\n\n  \u003c!-- TITRE --\u003e\n  \u003ch1 class=\"bs-title\"\u003ePatch BeautyShan\u003c\/h1\u003e\n\n  \u003c!-- PRIX (mis à jour par JS selon bundle sélectionné) --\u003e\n  \u003cdiv class=\"bs-price-wrap\"\u003e\n    \u003cspan class=\"bs-price\" id=\"bs-price\"\u003e€19,95\u003c\/span\u003e\n    \u003cspan class=\"bs-price-compare\" id=\"bs-compare\" style=\"display:none;\"\u003e\u003c\/span\u003e\n  \u003c\/div\u003e\n\n  \u003c!-- BÉNÉFICES --\u003e\n  \u003cdiv class=\"bs-benefits\"\u003e\n    \u003cdiv class=\"bs-benefit-row\"\u003e\n      \u003cdiv class=\"bs-benefit-header\"\u003e\n        \u003cspan class=\"bs-benefit-emoji\"\u003e✨\u003c\/span\u003e\n        \u003cstrong class=\"bs-benefit-title\"\u003eRéduction de la Cellulite\u003c\/strong\u003e\n      \u003c\/div\u003e\n      \u003cp class=\"bs-benefit-text\"\u003eTraitement de 10 jours pour une peau plus lisse dès les premières applications.\u003c\/p\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"bs-benefit-row\"\u003e\n      \u003cdiv class=\"bs-benefit-header\"\u003e\n        \u003cspan class=\"bs-benefit-emoji\"\u003e😌\u003c\/span\u003e\n        \u003cstrong class=\"bs-benefit-title\"\u003eAction Ciblée Perte de Poids\u003c\/strong\u003e\n      \u003c\/div\u003e\n      \u003cp class=\"bs-benefit-text\"\u003eAppliquer quotidiennement pour stimuler la combustion des graisses.\u003c\/p\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"bs-benefit-row\"\u003e\n      \u003cdiv class=\"bs-benefit-header\"\u003e\n        \u003cspan class=\"bs-benefit-emoji\"\u003e🌸\u003c\/span\u003e\n        \u003cstrong class=\"bs-benefit-title\"\u003eEffet Drainant \u0026amp; Raffermissant\u003c\/strong\u003e\n      \u003c\/div\u003e\n      \u003cp class=\"bs-benefit-text\"\u003eOptimise la circulation et tonifie la peau en 10 jours.\u003c\/p\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"bs-benefit-row\"\u003e\n      \u003cdiv class=\"bs-benefit-header\"\u003e\n        \u003cspan class=\"bs-benefit-emoji\"\u003e⚡\u003c\/span\u003e\n        \u003cstrong class=\"bs-benefit-title\"\u003eBoost Métabolique\u003c\/strong\u003e\n      \u003c\/div\u003e\n      \u003cp class=\"bs-benefit-text\"\u003eActive votre métabolisme pour des résultats d'amincissement accélérés.\u003c\/p\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003c!-- LABEL OFFRE --\u003e\n  \u003cdiv class=\"bs-offer-label\"\u003e\u003cspan\u003eOFFRE SPÉCIALE SOLDES\u003c\/span\u003e\u003c\/div\u003e\n\n  \u003c!-- BUNDLES --\u003e\n  \u003c!--\n    data-variant-id : remplace par les vrais IDs de variantes Shopify\n    Tu les trouves dans : Produit \u003e Variantes \u003e copier l'ID dans l'URL\n    ou via \/products\/patch.json\n  --\u003e\n  \u003cdiv class=\"bs-bundles\" id=\"bs-bundles\"\u003e\n\n    \u003cdiv class=\"bs-bundle active\" data-variant-id=\"58026040721789\" data-price=\"€19,95\" data-compare=\"\"\u003e\n      \u003cdiv class=\"bs-bundle-left\"\u003e\n        \u003cspan class=\"bs-bundle-title\"\u003e10 Patchs\u003c\/span\u003e\n        \u003cspan class=\"bs-bundle-sub\"\u003eCure de 10 jours\u003c\/span\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"bs-bundle-right\"\u003e\n        \u003cspan class=\"bs-bundle-price\"\u003e€19,95\u003c\/span\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"bs-bundle\" data-variant-id=\"58026040754557\" data-price=\"€39,95\" data-compare=\"€59,95\"\u003e\n      \u003cdiv class=\"bs-bundle-left\"\u003e\n        \u003cspan class=\"bs-bundle-title\"\u003e20 Patchs + 10 patchs OFFERTS\u003c\/span\u003e\n        \u003cspan class=\"bs-bundle-sub\"\u003eCure de 1 mois\u003c\/span\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"bs-bundle-right\"\u003e\n        \u003cspan class=\"bs-bundle-price\"\u003e€39,95\u003c\/span\u003e\n        \u003cspan class=\"bs-bundle-old\"\u003e€59,95\u003c\/span\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"bs-bundle\" data-variant-id=\"58026040787325\" data-price=\"€59,95\" data-compare=\"€179,55\"\u003e\n      \u003cdiv class=\"bs-bundle-left\"\u003e\n        \u003cspan class=\"bs-bundle-title\"\u003e60 Patchs + 30 patchs OFFERTS\u003c\/span\u003e\n        \u003cspan class=\"bs-bundle-sub\"\u003eCure de 3 mois\u003c\/span\u003e\n        \u003cspan class=\"bs-bundle-badge\"\u003ePOPULAIRE !\u003c\/span\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"bs-bundle-right\"\u003e\n        \u003cspan class=\"bs-bundle-price\"\u003e€59,95\u003c\/span\u003e\n        \u003cspan class=\"bs-bundle-old\"\u003e€179,55\u003c\/span\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"bs-bundle\" data-variant-id=\"58026040820093\" data-price=\"€99,95\" data-compare=\"€359,10\"\u003e\n      \u003cdiv class=\"bs-bundle-left\"\u003e\n        \u003cspan class=\"bs-bundle-title\"\u003e90 Patchs + 90 patchs OFFERTS\u003c\/span\u003e\n        \u003cspan class=\"bs-bundle-sub\"\u003eCure de 6 mois\u003c\/span\u003e\n        \u003cspan class=\"bs-bundle-badge\"\u003eMEILLEURE OFFRE !\u003c\/span\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"bs-bundle-right\"\u003e\n        \u003cspan class=\"bs-bundle-price\"\u003e€99,95\u003c\/span\u003e\n        \u003cspan class=\"bs-bundle-old\"\u003e€359,10\u003c\/span\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n  \u003c!-- BOUTON ATC --\u003e\n  \u003cbutton class=\"bs-atc\" id=\"bs-atc-btn\" type=\"button\"\u003e\n    \u003cspan id=\"bs-atc-text\"\u003eAjouter Au Panier\u003c\/span\u003e\n    \u003cspan class=\"bs-spinner\" id=\"bs-spinner\"\u003e\u003c\/span\u003e\n  \u003c\/button\u003e\n\n  \u003c!-- INGRÉDIENTS --\u003e\n  \u003cdiv class=\"bs-divider\"\u003e\u003c\/div\u003e\n  \u003cdiv class=\"bs-section-title\"\u003e🧪 Ingrédients \u0026amp; Avantages\u003c\/div\u003e\n\n  \u003cdiv class=\"bs-ingredients\"\u003e\n    \u003cdiv class=\"bs-ingredient\"\u003e\n      \u003cdiv class=\"bs-ingredient-name\"\u003eCaféine\u003c\/div\u003e\n      \u003cdiv class=\"bs-ingredient-action\"\u003eFavorise la lipolyse et la microcirculation.\u003c\/div\u003e\n      \u003cdiv class=\"bs-ingredient-desc\"\u003eAide à réduire l'\u003cstrong\u003eapparence de la cellulite\u003c\/strong\u003e et favorise un aspect visiblement \u003cstrong\u003eplus lisse et plus raffiné\u003c\/strong\u003e sur les zones ciblées.\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"bs-ingredient\"\u003e\n      \u003cdiv class=\"bs-ingredient-name\"\u003eThé vert (catéchines)\u003c\/div\u003e\n      \u003cdiv class=\"bs-ingredient-action\"\u003eAntioxydant et soutien du métabolisme.\u003c\/div\u003e\n      \u003cdiv class=\"bs-ingredient-desc\"\u003eAide à \u003cstrong\u003efavoriser la dégradation des graisses\u003c\/strong\u003e et à protéger la peau du stress oxydatif pour un aspect \u003cstrong\u003eplus frais et plus tonique\u003c\/strong\u003e.\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"bs-ingredient\"\u003e\n      \u003cdiv class=\"bs-ingredient-name\"\u003eL-Carnitine\u003c\/div\u003e\n      \u003cdiv class=\"bs-ingredient-action\"\u003eTransport des graisses vers les voies énergétiques.\u003c\/div\u003e\n      \u003cdiv class=\"bs-ingredient-desc\"\u003eSoutient \u003cstrong\u003el'utilisation des acides gras\u003c\/strong\u003e, aidant à affiner la silhouette lorsqu'elle est utilisée régulièrement sur le long terme.\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"bs-ingredient\"\u003e\n      \u003cdiv class=\"bs-ingredient-name\"\u003eGuarana\u003c\/div\u003e\n      \u003cdiv class=\"bs-ingredient-action\"\u003eCaféine naturelle pour une micro-stimulation.\u003c\/div\u003e\n      \u003cdiv class=\"bs-ingredient-desc\"\u003eAide à \u003cstrong\u003eénergiser\u003c\/strong\u003e la zone ciblée et à \u003cstrong\u003estimuler la circulation\u003c\/strong\u003e, complétant l'action de la caféine.\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"bs-ingredient\"\u003e\n      \u003cdiv class=\"bs-ingredient-name\"\u003eMenthol\u003c\/div\u003e\n      \u003cdiv class=\"bs-ingredient-action\"\u003eConfort rafraîchissant et effet bien-être.\u003c\/div\u003e\n      \u003cdiv class=\"bs-ingredient-desc\"\u003eSensation \u003cstrong\u003eimmédiate de fraîcheur\u003c\/strong\u003e qui favorise le confort et stimule la \u003cstrong\u003emicrocirculation de surface\u003c\/strong\u003e.\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"bs-ingredient\"\u003e\n      \u003cdiv class=\"bs-ingredient-name\"\u003eExtraits botaniques drainants\u003c\/div\u003e\n      \u003cdiv class=\"bs-ingredient-action\"\u003eLégèreté et dégonflement.\u003c\/div\u003e\n      \u003cdiv class=\"bs-ingredient-desc\"\u003eAident à \u003cstrong\u003eréduire les sensations de rétention d'eau\u003c\/strong\u003e et favorisent une sensation de \u003cstrong\u003elégèreté\u003c\/strong\u003e dans la zone appliquée.\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"bs-ingredient\"\u003e\n      \u003cdiv class=\"bs-ingredient-name\"\u003eComplexe raffermissant (incl. collagène marin)\u003c\/div\u003e\n      \u003cdiv class=\"bs-ingredient-action\"\u003eTonus et texture.\u003c\/div\u003e\n      \u003cdiv class=\"bs-ingredient-desc\"\u003eAide à \u003cstrong\u003eaméliorer la fermeté et l'élasticité de la peau\u003c\/strong\u003e, pour un \u003cstrong\u003etoucher plus lisse\u003c\/strong\u003e et un aspect plus \u003cstrong\u003euniforme\u003c\/strong\u003e.\u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cp class=\"bs-disclaimer\"\u003eProduit cosmétique. Les résultats varient selon la routine et la régularité. Pour des résultats visibles optimaux, utiliser \u003cstrong\u003equotidiennement\u003c\/strong\u003e dans le cadre d'une \u003cstrong\u003ecure de 4 semaines minimum\u003c\/strong\u003e, puis continuer 3 à 6 mois pour consolider.\u003c\/p\u003e\n\n  \u003c!-- UTILISATION --\u003e\n  \u003cdiv class=\"bs-divider\"\u003e\u003c\/div\u003e\n  \u003cdiv class=\"bs-section-title\"\u003e📋 Comment l'utiliser ?\u003c\/div\u003e\n\n  \u003cdiv class=\"bs-steps\"\u003e\n    \u003cdiv class=\"bs-step\"\u003e\n      \u003cdiv class=\"bs-step-num\"\u003e1\u003c\/div\u003e\n      \u003cdiv class=\"bs-step-content\"\u003e\n        \u003cdiv class=\"bs-step-title\"\u003ePréparation (30 sec)\u003c\/div\u003e\n        \u003cul class=\"bs-step-list\"\u003e\n          \u003cli\u003eAppliquer sur une zone \u003cstrong\u003epropre et sèche\u003c\/strong\u003e (ventre, hanches, cuisses, bras).\u003c\/li\u003e\n          \u003cli\u003ePas de crème, d'huile ou de lotion avant application.\u003c\/li\u003e\n          \u003cli\u003eAprès la douche, \u003cstrong\u003eattendre 10 minutes\u003c\/strong\u003e que la peau soit bien sèche.\u003c\/li\u003e\n        \u003c\/ul\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"bs-step\"\u003e\n      \u003cdiv class=\"bs-step-num\"\u003e2\u003c\/div\u003e\n      \u003cdiv class=\"bs-step-content\"\u003e\n        \u003cdiv class=\"bs-step-title\"\u003eApplication\u003c\/div\u003e\n        \u003cul class=\"bs-step-list\"\u003e\n          \u003cli\u003eDécoller, placer à plat sur la zone, puis \u003cstrong\u003epresser 10–15 secondes\u003c\/strong\u003e.\u003c\/li\u003e\n          \u003cli\u003eNe pas étirer la peau ; éviter les plis pour une meilleure tenue.\u003c\/li\u003e\n        \u003c\/ul\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"bs-step\"\u003e\n      \u003cdiv class=\"bs-step-num\"\u003e3\u003c\/div\u003e\n      \u003cdiv class=\"bs-step-content\"\u003e\n        \u003cdiv class=\"bs-step-title\"\u003eDurée de port\u003c\/div\u003e\n        \u003cul class=\"bs-step-list\"\u003e\n          \u003cli\u003eGarder pendant \u003cstrong\u003e6–8 heures\u003c\/strong\u003e (la nuit est idéale).\u003c\/li\u003e\n          \u003cli\u003eRetirer doucement ; si des résidus restent, rincer à \u003cstrong\u003el'eau tiède + savon doux\u003c\/strong\u003e.\u003c\/li\u003e\n        \u003c\/ul\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"bs-step\"\u003e\n      \u003cdiv class=\"bs-step-num\"\u003e4\u003c\/div\u003e\n      \u003cdiv class=\"bs-step-content\"\u003e\n        \u003cdiv class=\"bs-step-title\"\u003eFréquence \u0026amp; durée\u003c\/div\u003e\n        \u003cul class=\"bs-step-list\"\u003e\n          \u003cli\u003e\n\u003cstrong\u003e1 patch par jour\u003c\/strong\u003e, sur au moins \u003cstrong\u003e4 semaines\u003c\/strong\u003e pour des résultats visibles.\u003c\/li\u003e\n          \u003cli\u003ePour consolider et remodelage : continuer \u003cstrong\u003e3–6 mois\u003c\/strong\u003e.\u003c\/li\u003e\n        \u003c\/ul\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"bs-step\"\u003e\n      \u003cdiv class=\"bs-step-num\"\u003e5\u003c\/div\u003e\n      \u003cdiv class=\"bs-step-content\"\u003e\n        \u003cdiv class=\"bs-step-title\"\u003ePlacement \u0026amp; rotation\u003c\/div\u003e\n        \u003cul class=\"bs-step-list\"\u003e\n          \u003cli\u003eCibler \u003cstrong\u003e1 zone à la fois\u003c\/strong\u003e et faire tourner chaque jour.\u003c\/li\u003e\n          \u003cli\u003eAttendre \u003cstrong\u003e24h\u003c\/strong\u003e avant de réappliquer au même endroit.\u003c\/li\u003e\n          \u003cli\u003ePossible d'utiliser \u003cstrong\u003eplusieurs patchs simultanément\u003c\/strong\u003e sur des zones différentes.\u003c\/li\u003e\n        \u003c\/ul\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n\u003c\/div\u003e\n\n\u003c!-- ============================================================\n     SCRIPT — Bundles + ATC\n     Fonctionne dans la description Shopify car le script\n     remonte les événements jusqu'au form natif du thème.\n     ============================================================ --\u003e\n\u003cscript\u003e\n(function () {\n  \/* ---- 1. Récupérer les éléments ---- *\/\n  var desc     = document.getElementById('bs-product-desc');\n  var bundles  = desc.querySelectorAll('.bs-bundle');\n  var priceEl  = desc.querySelector('#bs-price');\n  var compEl   = desc.querySelector('#bs-compare');\n  var atcBtn   = desc.querySelector('#bs-atc-btn');\n  var atcText  = desc.querySelector('#bs-atc-text');\n\n  \/* ---- 2. Sélection d'un bundle ---- *\/\n  var selectedVariantId = bundles[0] ? bundles[0].dataset.variantId : null;\n\n  bundles.forEach(function (bundle) {\n    bundle.addEventListener('click', function () {\n      \/* Visuel *\/\n      bundles.forEach(function (b) { b.classList.remove('active'); });\n      bundle.classList.add('active');\n\n      \/* Données *\/\n      selectedVariantId   = bundle.dataset.variantId;\n      var newPrice        = bundle.dataset.price;\n      var newCompare      = bundle.dataset.compare;\n\n      \/* Mise à jour prix *\/\n      if (priceEl)  priceEl.textContent  = newPrice;\n      if (compEl) {\n        if (newCompare \u0026\u0026 newCompare.trim() !== '') {\n          compEl.textContent = newCompare;\n          compEl.style.display = 'inline';\n        } else {\n          compEl.style.display = 'none';\n        }\n      }\n\n      \/* Synchroniser le select natif du thème Dawn (s'il existe) *\/\n      var nativeSelect = document.querySelector('select[name=\"id\"], input[name=\"id\"]');\n      if (nativeSelect \u0026\u0026 selectedVariantId \u0026\u0026 selectedVariantId !== '58026040721789'\n          \u0026\u0026 selectedVariantId !== '58026040754557'\n          \u0026\u0026 selectedVariantId !== '58026040787325'\n          \u0026\u0026 selectedVariantId !== '58026040820093') {\n        nativeSelect.value = selectedVariantId;\n        \/* Déclencher l'événement change pour que Dawn mette à jour son état *\/\n        nativeSelect.dispatchEvent(new Event('change', { bubbles: true }));\n      }\n    });\n  });\n\n  \/* ---- 3. Bouton ATC ---- *\/\n  atcBtn.addEventListener('click', function () {\n    \/* Vérification IDs configurés *\/\n    if (!selectedVariantId ||\n        selectedVariantId === '58026040721789' ||\n        selectedVariantId === '58026040754557' ||\n        selectedVariantId === '58026040787325' ||\n        selectedVariantId === '58026040820093') {\n\n      \/* Mode démo : essaie de cliquer le bouton ATC natif du thème *\/\n      var nativeAtc = document.querySelector('button[name=\"add\"], .product-form__submit');\n      if (nativeAtc) {\n        nativeAtc.click();\n        return;\n      }\n      alert('⚠️ Remplacez les VARIANT_ID dans le code par vos vrais IDs Shopify.');\n      return;\n    }\n\n    \/* État loading *\/\n    atcBtn.classList.add('loading');\n    atcBtn.disabled = true;\n    atcText.textContent = 'Ajout en cours…';\n\n    var formData = new FormData();\n    formData.append('id', selectedVariantId);\n    formData.append('quantity', '1');\n\n    fetch('\/cart\/add.js', {\n      method: 'POST',\n      headers: { 'X-Requested-With': 'XMLHttpRequest' },\n      body: formData\n    })\n    .then(function (r) {\n      if (!r.ok) throw new Error('Erreur réseau ' + r.status);\n      return r.json();\n    })\n    .then(function () {\n      \/* Succès *\/\n      atcBtn.classList.remove('loading');\n      atcBtn.classList.add('success');\n      atcText.textContent = '✓ Ajouté au panier !';\n\n      \/* Ouvrir le drawer panier Dawn *\/\n      var cartDrawer = document.querySelector('cart-drawer');\n      if (cartDrawer \u0026\u0026 typeof cartDrawer.open === 'function') cartDrawer.open();\n\n      \/* Rafraîchir le compteur panier Dawn *\/\n      document.dispatchEvent(new CustomEvent('cart:refresh'));\n\n      \/* Fetch pour mettre à jour le header cart count *\/\n      fetch('\/cart.js')\n        .then(function(r){ return r.json(); })\n        .then(function(cart){\n          var countEls = document.querySelectorAll('[data-cart-count], .cart-count-bubble span, #cart-icon-bubble span');\n          countEls.forEach(function(el){ el.textContent = cart.item_count; });\n        })\n        .catch(function(){});\n\n      \/* Reset après 2.5s *\/\n      setTimeout(function () {\n        atcBtn.classList.remove('success');\n        atcBtn.disabled = false;\n        atcText.textContent = 'Ajouter Au Panier';\n      }, 2500);\n    })\n    .catch(function (err) {\n      console.error('ATC error:', err);\n      atcBtn.classList.remove('loading');\n      atcBtn.disabled = false;\n      atcText.textContent = 'Erreur – Réessayer';\n      setTimeout(function () { atcText.textContent = 'Ajouter Au Panier'; }, 2000);\n    });\n  });\n\n})();\n\u003c\/script\u003e\n","brand":"Beautyshane","offers":[{"title":"10 Patchs - Cure 10 jours","offer_id":58026040721789,"sku":null,"price":19.95,"currency_code":"EUR","in_stock":true},{"title":"20 Patchs + 10 OFFERTS - Cure 1 mois","offer_id":58026040754557,"sku":null,"price":39.95,"currency_code":"EUR","in_stock":true},{"title":"60 Patchs + 30 OFFERTS - Cure 3 mois","offer_id":58026040787325,"sku":null,"price":59.95,"currency_code":"EUR","in_stock":true},{"title":"90 Patchs + 90 OFFERTS - Cure 6 mois","offer_id":58026040820093,"sku":null,"price":99.95,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0942\/7068\/5565\/files\/Gemini_Generated_Image_ok1fj8ok1fj8ok1f_1.png?v=1775842510"}],"url":"https:\/\/beautyshane.fr\/collections\/frontpage.oembed","provider":"Beautyshane","version":"1.0","type":"link"}