1<!doctype html> 2<html dir="ltr" lang="fr-FR" prefix="og: https://ogp.me/ns#"> 3<head> 4 5 <meta charset="UTF-8"> 6 <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=5, viewport-fit=cover"> 7 <link rel="profile" href="https://gmpg.org/xfn/11"> 8 9 <title>ð Mon diamond painting personnalisé | Diamond Painting</title> 10<style id="jdmc-anti-cls"> 11 html.jdmc-prep tr[id*="estimate"], 12 html.jdmc-prep #pi-overall-estimate-cart, 13 html.jdmc-prep #pi-overall-estimate-checkout{ visibility:hidden !important; } 14 html.jdmc-prep tr.jdmc-pi-placeholder{ display:table-row !important; } 15 html:not(.jdmc-prep) tr.jdmc-pi-placeholder{ display:none !important; } 16 </style>
16<script id="jdmc-anti-cls-boot"> 17 (function(){ 18 try{ document.documentElement.classList.add('jdmc-prep'); }catch(e){} 19 function ensurePlaceholderIn(tableSel, isCheckout){ 20 var table = document.querySelector(tableSel); 21 if(!table) return; 22 var tfoot = table.querySelector('tfoot'); 23 if(!tfoot){ tfoot = document.createElement('tfoot'); table.appendChild(tfoot); } 24 if(!tfoot.querySelector('tr.jdmc-pi-placeholder')){ 25 var row = document.createElement('tr'); 26 row.className = 'jdmc-pi-placeholder'; 27 if(isCheckout){ 28 var td = document.createElement('td'); td.colSpan = 10; td.style.height='2.6em'; row.appendChild(td); 29 }else{ 30 var td2 = document.createElement('td'); td2.colSpan = 10; td2.style.height='2.6em'; row.appendChild(td2); 31 } 32 tfoot.appendChild(row); 33 } 34 } 35 var tries=0, iv = setInterval(function(){ 36 ensurePlaceholderIn('.shop_table.cart', false); 37 ensurePlaceholderIn('#order_review .shop_table, .woocommerce-checkout-review-order-table, .shop_table.review-order', true); 38 if(++tries>=40){ clearInterval(iv); } 39 },25); 40 })(); 41 </script>
41 42 <style> 43 #ulcmp-bar{position:fixed;left:12px;right:12px;bottom:12px;z-index:999999;background:#111;color:#fff;border-radius:12px;padding:12px;box-shadow:0 8px 30px rgba(0,0,0,.35);font:14px/1.35 system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif} 44 #ulcmp-row{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap} 45 #ulcmp-actions{display:flex;gap:10px;align-items:center} 46 #ulcmp-ok{appearance:none;border:0;border-radius:10px;padding:9px 14px;background:#fff;color:#111;font-weight:700;cursor:pointer} 47 #ulcmp-settings-link{color:#bbb;font-size:13px;text-decoration:none} 48 #ulcmp-settings-link:hover{color:#fff;text-decoration:underline} 49 #ulcmp-panel{display:none;margin-top:10px;padding-top:10px;border-top:1px solid rgba(255,255,255,.12)} 50 #ulcmp-panel label{display:flex;gap:10px;align-items:flex-start;cursor:pointer} 51 #ulcmp-panel input[type="checkbox"]{margin-top:2px} 52 #ulcmp-panel .btn{appearance:none;border:1px solid rgba(255,255,255,.25);border-radius:10px;padding:8px 12px;background:transparent;color:#fff;cursor:pointer} 53 #ulcmp-panel .btn:hover{border-color:rgba(255,255,255,.5)} 54 #ulcmp-panel .danger{border-color:rgba(255,80,80,.45)} 55 #ulcmp-panel .danger:hover{border-color:rgba(255,80,80,.8)} 56 @media (max-width:700px){ 57 #ulcmp-actions{width:100%;justify-content:flex-end} 58 } 59 </style> 60 61
61<script> 62 (function(){ 63 var I18N = {"bar_text":"Nous utilisons des cookies pour améliorer votre expérience et mesurer nos performances.","btn_ok":"Jâai compris","link_settings":"Paramètres","checkbox":"Désactiver les cookies","btn_save":"Enregistrer"}; 64 var SHOW = false; 65 66 var LS_SEEN = 'ulcmp_seen_v1'; 67 var LS_OPTOUT = 'ulcmp_optout_v1'; 68 69 function optedOut(){ try{return localStorage.getItem(LS_OPTOUT)==='1'}catch(e){return false} } 70 function seen(){ try{return localStorage.getItem(LS_SEEN)==='1'}catch(e){return false} } 71 function setSeen(){ try{localStorage.setItem(LS_SEEN,'1')}catch(e){} } 72 function setOpt(o){ try{localStorage.setItem(LS_OPTOUT,o?'1':'0')}catch(e){} } 73 74 function delCookie(name){ 75 var d=document.domain, parts=d.split('.'), domains=[]; 76 for(var i=0;i<parts.length;i++) domains.push(parts.slice(i).join('.')); 77 var tryDomains=domains.concat(domains.map(function(x){return '.'+x;})); 78 tryDomains.forEach(function(dom){ 79 document.cookie = name+"=; Max-Age=0; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/; domain="+dom; 80 }); 81 document.cookie = name+"=; Max-Age=0; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/;"; 82 } 83 84 function purgeMarketingCookies(){ 85 // Google / GA / Ads 86 ['_ga','_gid','_gat','_gcl_au'].forEach(delCookie); 87 document.cookie.split(';').map(function(c){return c.trim().split('=')[0];}).forEach(function(k){ 88 if (k.indexOf('_ga_')===0) delCookie(k); 89 if (k.indexOf('_gac_')===0) delCookie(k); 90 if (k.indexOf('_gcl_')===0) delCookie(k); 91 }); 92 93 // Meta 94 ['_fbp','_fbc','fr','sb','datr'].forEach(delCookie); 95 96 // Microsoft/Bing (best effort) 97 ['_uetsid','_uetvid','_uetmsclkid','MUID','MUIDB','SRCHD','SRCHUID','SRCHUSR'].forEach(delCookie); 98 } 99 100 function applyOptOut(){ 101 // Google: deny 102 try{ 103 window.dataLayer = window.dataLayer || []; 104 window.gtag = window.gtag || function(){ dataLayer.push(arguments); }; 105 window.gtag('consent','update',{ 106 ad_storage:'denied', 107 analytics_storage:'denied', 108 ad_user_data:'denied', 109 ad_personalization:'denied' 110 }); 111 }catch(e){} 112 113 // Bing: deny 114 try{ 115 window.uetq = window.uetq || []; 116 window.uetq.push('consent','update',{ ad_storage:'denied' }); 117 }catch(e){} 118 119 // Meta: revoke 120 try{ 121 if (typeof window.fbq === 'function') window.fbq('consent','revoke'); 122 }catch(e){} 123 124 // Neutralisation best-effort (évite des envois futurs via JS) 125 try{ 126 var oldGtag = window.gtag; 127 window.gtag = function(){ 128 try{ if (arguments && arguments[0]==='consent') return oldGtag.apply(this, arguments); }catch(e){} 129 return; 130 }; 131 }catch(e){} 132 } 133 134 // Si déjà opt-out, on applique partout et on ne montre pas le bandeau 135 if (optedOut()){ 136 applyOptOut(); 137 purgeMarketingCookies(); 138 setSeen(); 139 return; 140 } 141 142 if (!SHOW) return; 143 if (seen()) return; 144 145 document.addEventListener('DOMContentLoaded', function(){ 146 var bar = document.createElement('div'); 147 bar.id = 'ulcmp-bar'; 148 149 bar.innerHTML = 150 '<div id="ulcmp-row">' + 151 '<div id="ulcmp-text"></div>' + 152 '<div id="ulcmp-actions">' + 153 '<a id="ulcmp-settings-link" href="#ulcmp-settings" rel="nofollow"></a>' + 154 '<button id="ulcmp-ok" type="button"></button>' + 155 '</div>' + 156 '</div>' + 157 '<div id="ulcmp-panel">' + 158 '<label>' + 159 '<input id="ulcmp-optout" type="checkbox" />' + 160 '<div><strong>'+ I18N.checkbox +'</strong></div>' + 161 '</label>' + 162 '<div style="margin-top:10px;display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;">' + 163 '<button id="ulcmp-save" class="btn danger" type="button"></button>' + 164 '</div>' + 165 '</div>'; 166 167 document.body.appendChild(bar); 168 169 // Texte i18n 170 document.getElementById('ulcmp-text').textContent = I18N.bar_text; 171 document.getElementById('ulcmp-settings-link').textContent = I18N.link_settings; 172 document.getElementById('ulcmp-ok').textContent = I18N.btn_ok; 173 document.getElementById('ulcmp-save').textContent = I18N.btn_save; 174 175 var link = document.getElementById('ulcmp-settings-link'); 176 var panel = document.getElementById('ulcmp-panel'); 177 var ok = document.getElementById('ulcmp-ok'); 178 var cb = document.getElementById('ulcmp-optout'); 179 var save = document.getElementById('ulcmp-save'); 180 181 cb.checked = false; 182 183 link.addEventListener('click', function(e){
184 e.preventDefault(); // empêche le scroll en haut 185 panel.style.display = (panel.style.display === 'block') ? 'none' : 'block'; 186 }); 187 188 ok.addEventListener('click', function(){ 189 setSeen(); 190 bar.remove(); 191 }); 192 193 save.addEventListener('click', function(){ 194 var wantOptOut = !!cb.checked; 195 setOpt(wantOptOut); 196 setSeen(); 197 198 if (wantOptOut){ 199 applyOptOut(); 200 purgeMarketingCookies(); 201 } 202 203 // â tu veux un refresh automatique à l'enregistrement 204 location.reload(); 205 }); 206 }); 207 })(); 208 </script>
208 209 <link rel="alternate" hreflang="nl" href="https://diamant-strass-dmc.com/nl/perles-broderie/custom-diamond-painting-personnalise-photo/" /> 210<link rel="alternate" hreflang="en" href="https://diamant-strass-dmc.com/en/perles-broderie/custom-diamond-painting-personnalise-photo/" /> 211<link rel="alternate" hreflang="fr" href="https://diamant-strass-dmc.com/perles-broderie/custom-diamond-painting-personnalise-photo/" /> 212<link rel="alternate" hreflang="de" href="https://diamant-strass-dmc.com/de/perles-broderie/custom-diamond-painting-personnalise-photo/" /> 213<link rel="alternate" hreflang="it" href="https://diamant-strass-dmc.com/it/perles-broderie/custom-diamond-painting-personnalise-photo/" /> 214<link rel="alternate" hreflang="pt-pt" href="https://diamant-strass-dmc.com/pt-pt/perles-broderie/custom-diamond-painting-personnalise-photo/" /> 215<link rel="alternate" hreflang="es" href="https://diamant-strass-dmc.com/es/perles-broderie/custom-diamond-painting-personnalise-photo/" /> 216<link rel="alternate" hreflang="bg" href="https://diamant-strass-dmc.com/bg/perles-broderie/custom-diamond-painting-personnalise-photo/" /> 217<link rel="alternate" hreflang="da" href="https://diamant-strass-dmc.com/da/perles-broderie/custom-diamond-painting-personnalise-photo/" /> 218<link rel="alternate" hreflang="el" href="https://diamant-strass-dmc.com/el/perles-broderie/custom-diamond-painting-personnalise-photo/" /> 219<link rel="alternate" hreflang="hu" href="https://diamant-strass-dmc.com/hu/perles-broderie/custom-diamond-painting-personnalise-photo/" /> 220<link rel="alternate" hreflang="no" href="https://diamant-strass-dmc.com/no/perles-broderie/custom-diamond-painting-personnalise-photo/" /> 221<link rel="alternate" hreflang="pl" href="https://diamant-strass-dmc.com/pl/perles-broderie/custom-diamond-painting-personnalise-photo/" /> 222<link rel="alternate" hreflang="ro" href="https://diamant-strass-dmc.com/ro/perles-broderie/custom-diamond-painting-personnalise-photo/" /> 223<link rel="alternate" hreflang="sv" href="https://diamant-strass-dmc.com/sv/perles-broderie/custom-diamond-painting-personnalise-photo/" /> 224<link rel="alternate" hreflang="x-default" href="https://diamant-strass-dmc.com/perles-broderie/custom-diamond-painting-personnalise-photo/" /> 225 226 <!-- All in One SEO 5.0.0.1 - aioseo.com --> 227 <meta name="description" content="Les diamants carrés offrent un rendu plus net que les ronds. Importez la photo ou image de votre choix et recevez-la sous forme de diamond painting quelques jours plus tard ! Tout est fourni : la toile adhésive, les sachets de perles, le plateau trieur, le stylo et les carrés de colle. Immortalisez vos plus" /> 228 <meta name="robots" content="max-image-preview:large" /> 229 <link rel="canonical" href="https://diamant-strass-dmc.com/perles-broderie/custom-diamond-painting-personnalise-photo/" /> 230 <meta name="generator" content="All in One SEO (AIOSEO) 5.0.0.1" /> 231 <meta property="og:locale" content="fr_FR" /> 232 <meta property="og:site_name" content="Diamant Strass DMC - ð¥ 1er fournisseur de perles pour diamond painting" /> 233 <meta property="og:type" content="article" /> 234 <meta property="og:title" content="ð Mon diamond painting personnalisé | Diamond Painting" /> 235 <meta property="og:description" content="Les diamants carrés offrent un rendu plus net que les ronds. Importez la photo ou image de votre choix et recevez-la sous forme de diamond painting quelques jours plus tard ! Tout est fourni : la toile adhésive, les sachets de perles, le plateau trieur, le stylo et les carrés de colle. Immortalisez vos plus" /> 236 <meta property="og:url" content="https://diamant-strass-dmc.com/perles-broderie/custom-diamond-painting-personnalise-photo/" /> 237 <meta property="og:image" content="https://diamant-strass-dmc.com/wp-content/uploads/2026/06/logov2-diamantstrassdmc-120.webp" /> 238 <meta property="og:image:secure_url" content="https://diamant-strass-dmc.com/wp-content/uploads/2026/06/logov2-diamantstrassdmc-120.webp" /> 239 <meta property="article:published_time" content="2024-11-10T16:30:30+00:00" /> 240 <meta property="article:modified_time" content="2026-04-30T00:21:51+00:00" /> 241 <meta name="twitter:card" content="summary" /> 242 <meta name="twitter:title" content="ð Mon diamond painting personnalisé | Diamond Painting" /> 243 <meta name="twitter:description" content="Les diamants carrés offrent un rendu plus net que les ronds. Importez la photo ou image de votre choix et recevez-la sous forme de diamond painting quelques jours plus tard ! Tout est fourni : la toile adhésive, les sachets de perles, le plateau trieur, le stylo et les carrés de colle. Immortalisez vos plus" /> 244 <meta name="twitter:image" content="https://diamant-strass-dmc.com/wp-content/uploads/2026/06/logov2-diamantstrassdmc-120.webp" /> 245
245<script type="application/ld+json" class="aioseo-schema"> 246 {"@context":"https:\/\/schema.org","@graph":[{"@type":"BreadcrumbList","@id":"https:\/\/diamant-strass-dmc.com\/perles-broderie\/custom-diamond-painting-personnalise-photo\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/diamant-strass-dmc.com#listItem","position":1,"name":"Accueil","item":"https:\/\/diamant-strass-dmc.com","nextItem":{"@type":"ListItem","@id":"https:\/\/diamant-strass-dmc.com\/couleur\/accessoires\/#listItem","name":"Accessoires pour Diamond Painting"}},{"@type":"ListItem","@id":"https:\/\/diamant-strass-dmc.com\/couleur\/accessoires\/#listItem","position":2,"name":"Accessoires pour Diamond Painting","item":"https:\/\/diamant-strass-dmc.com\/couleur\/accessoires\/","nextItem":{"@type":"ListItem","@id":"https:\/\/diamant-strass-dmc.com\/perles-broderie\/custom-diamond-painting-personnalise-photo\/#listItem","name":"Mon diamond painting personnalis\u00e9"},"previousItem":{"@type":"ListItem","@id":"https:\/\/diamant-strass-dmc.com#listItem","name":"Accueil"}},{"@type":"ListItem","@id":"https:\/\/diamant-strass-dmc.com\/perles-broderie\/custom-diamond-painting-personnalise-photo\/#listItem","position":3,"name":"Mon diamond painting personnalis\u00e9","previousItem":{"@type":"ListItem","@id":"https:\/\/diamant-strass-dmc.com\/couleur\/accessoires\/#listItem","name":"Accessoires pour Diamond Painting"}}]},{"@type":"ItemPage","@id":"https:\/\/diamant-strass-dmc.com\/perles-broderie\/custom-diamond-painting-personnalise-photo\/#itempage","url":"https:\/\/diamant-strass-dmc.com\/perles-broderie\/custom-diamond-painting-personnalise-photo\/","name":"\ud83d\udc8e Mon diamond painting personnalis\u00e9 | Diamond Painting","description":"Les diamants carr\u00e9s offrent un rendu plus net que les ronds. Importez la photo ou image de votre choix et recevez-la sous forme de diamond painting quelques jours plus tard ! Tout est fourni : la toile adh\u00e9sive, les sachets de perles, le plateau trieur, le stylo et les carr\u00e9s de colle. Immortalisez vos plus","inLanguage":"fr-FR","isPartOf":{"@id":"https:\/\/diamant-strass-dmc.com\/#website"},"breadcrumb":{"@id":"https:\/\/diamant-strass-dmc.com\/perles-broderie\/custom-diamond-painting-personnalise-photo\/#breadcrumblist"},"image":{"@type":"ImageObject","url":"https:\/\/diamant-strass-dmc.com\/wp-content\/uploads\/2024\/11\/custom-dp-diamond-painting.jpg","@id":"https:\/\/diamant-strass-dmc.com\/perles-broderie\/custom-diamond-painting-personnalise-photo\/#mainImage","width":1024,"height":1024,"caption":"Custom diamond painting"},"primaryImageOfPage":{"@id":"https:\/\/diamant-strass-dmc.com\/perles-broderie\/custom-diamond-painting-personnalise-photo\/#mainImage"},"datePublished":"2024-11-10T17:30:30+01:00","dateModified":"2026-04-30T02:21:51+02:00"},{"@type":"Organization","@id":"https:\/\/diamant-strass-dmc.com\/#organization","name":"Diamant Strass DMC","description":"\ud83e\udd47 1er fournisseur de perles pour diamond painting","url":"https:\/\/diamant-strass-dmc.com\/","telephone":"+33652550412","logo":{"@type":"ImageObject","url":"https:\/\/diamant-strass-dmc.com\/wp-content\/uploads\/2022\/01\/cropped-Sans-titre-17.png","@id":"https:\/\/diamant-strass-dmc.com\/perles-broderie\/custom-diamond-painting-personnalise-photo\/#organizationLogo","width":512,"height":512},"image":{"@id":"https:\/\/diamant-strass-dmc.com\/perles-broderie\/custom-diamond-painting-personnalise-photo\/#organizationLogo"}},{"@type":"WebSite","@id":"https:\/\/diamant-strass-dmc.com\/#website","url":"https:\/\/diamant-strass-dmc.com\/","name":"\ud83d\udc8e Diamant Strass DMC","description":"\ud83e\udd47 1er fournisseur de perles pour diamond painting","inLanguage":"fr-FR","publisher":{"@id":"https:\/\/diamant-strass-dmc.com\/#organization"}}]} 247 </script>
247 248 <!-- All in One SEO --> 249 250<style>:root { --jdmc-search-label: "Rechercher"; }</style><style>:root { --jdmc-site-title: "Diamant Strass DMC"; }</style><link rel="preload" as="font" href="/wp-content/themes/blocksy/static/fonts/woo.woff2" data-wpacu-preload-local-font="1" crossorigin> 251<link rel="preload" as="font" href="/wp-content/plugins/woocommerce-side-cart-premium/assets/css/fonts/Woo-Side-Cart.ttf?qq7fgp" data-wpacu-preload-local-font="1" crossorigin> 252 253<link rel="alternate" type="application/rss+xml" title="Diamant Strass DMC » Flux" href="https://diamant-strass-dmc.com/feed/" /> 254<link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="https://diamant-strass-dmc.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fdiamant-strass-dmc.com%2Fperles-broderie%2Fcustom-diamond-painting-personnalise-photo%2F" /> 255<link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://diamant-strass-dmc.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fdiamant-strass-dmc.com%2Fperles-broderie%2Fcustom-diamond-painting-personnalise-photo%2F&format=xml" /> 256<link rel='preload' as='image' href='https://diamant-strass-dmc.com/wp-content/uploads/2024/11/custom-dp-diamond-painting-600x600.jpg' imagesrcset='https://diamant-strass-dmc.com/wp-content/uploads/2024/11/custom-dp-diamond-painting-600x600.jpg 600w, https://diamant-strass-dmc.com/wp-content/uploads/2024/11/custom-dp-diamond-painting-300x300.jpg 300w, https://diamant-strass-dmc.com/wp-content/uploads/2024/11/custom-dp-diamond-painting-768x768.jpg 768w, https://diamant-strass-dmc.com/wp-content/uploads/2024/11/custom-dp-diamond-painting-416x416.jpg 416w, https://diamant-strass-dmc.com/wp-content/uploads/2024/11/custom-dp-diamond-painting.jpg 1024w' imagesizes='(max-width: 999px) 100vw, 625px' fetchpriority='high'> 257 <style id="blocksy-mobile-title-fix"> 258 /* Desktop : le titre mobile est caché */ 259 .single-product .product-title-mobile-wrap { display: none; } 260 261 /* Mobile */ 262 @media (max-width: 999px) { 263 /* Le wrapper devient transparent â le H1 hérite du style natif */ 264 .single-product .product-title-mobile-wrap { 265 display: contents; 266 } 267 268 /* Cache le H1 original (celui resté dans le vrai summary) */ 269 .single-product .summary:not(.product-title-mobile-wrap) .product_title { 270 display: none; 271 } 272 273 /* Espacement sous l'image */ 274 .single-product .woocommerce-product-gallery { 275 margin: 0 0 16px; 276 } 277 } 278 </style> 279 <style id="wp-img-auto-sizes-contain-inline-css"> 280img:is([sizes=auto i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px} 281/*# sourceURL=wp-img-auto-sizes-contain-inline-css */ 282</style> 283<link rel='stylesheet' id='font-awesome-css' href='https://diamant-strass-dmc.com/wp-content/cache/asset-cleanup/one/css/item/advanced-product-labels-for-woocommerce__berocket__assets__css__font-awesome-min-css-vf36f7cb9b36d7a40f875204faf8843e2ffac56fd.css' media='all' /> 284<link rel='stylesheet' id='berocket_products_label_style-css' href='https://diamant-strass-dmc.com/wp-content/plugins/advanced-product-labels-for-woocommerce/css/frontend.css?ver=3.3.3.7' media='all' /> 285<style id="berocket_products_label_style-inline-css"> 286 287 .berocket_better_labels:before, 288 .berocket_better_labels:after { 289 clear: both; 290 content: " "; 291 display: block; 292 } 293 .berocket_better_labels.berocket_better_labels_image { 294 position: absolute!important; 295 top: 0px!important; 296 bottom: 0px!important; 297 left: 0px!important; 298 right: 0px!important; 299 pointer-events: none; 300 } 301 .berocket_better_labels.berocket_better_labels_image * { 302 pointer-events: none; 303 } 304 .berocket_better_labels.berocket_better_labels_image img, 305 .berocket_better_labels.berocket_better_labels_image .fa, 306 .berocket_better_labels.berocket_better_labels_image .berocket_color_label, 307 .berocket_better_labels.berocket_better_labels_image .berocket_image_background, 308 .berocket_better_labels .berocket_better_labels_line .br_alabel, 309 .berocket_better_labels .berocket_better_labels_line .br_alabel span { 310 pointer-events: all; 311 } 312 .berocket_better_labels .berocket_color_label, 313 .br_alabel .berocket_color_label { 314 width: 100%; 315 height: 100%; 316 display: block; 317 } 318 .berocket_better_labels .berocket_better_labels_position_left { 319 text-align:left; 320 float: left; 321 clear: left; 322 } 323 .berocket_better_labels .berocket_better_labels_position_center { 324 text-align:center; 325 } 326 .berocket_better_labels .berocket_better_labels_position_right { 327 text-align:right; 328 float: right; 329 clear: right; 330 } 331 .berocket_better_labels.berocket_better_labels_label { 332 clear: both 333 } 334 .berocket_better_labels .berocket_better_labels_line { 335 line-height: 1px; 336 } 337 .berocket_better_labels.berocket_better_labels_label .berocket_better_labels_line { 338 clear: none; 339 } 340 .berocket_better_labels .berocket_better_labels_position_left .berocket_better_labels_line { 341 clear: left; 342 } 343 .berocket_better_labels .berocket_better_labels_position_right .berocket_better_labels_line { 344 clear: right; 345 } 346 .berocket_better_labels .berocket_better_labels_line .br_alabel { 347 display: inline-block; 348 position: relative; 349 top: 0!important; 350 left: 0!important; 351 right: 0!important; 352 line-height: 1px; 353 }.berocket_better_labels .berocket_better_labels_position { 354 display: flex; 355 flex-direction: column; 356 } 357 .berocket_better_labels .berocket_better_labels_position.berocket_better_labels_position_left { 358 align-items: start; 359 } 360 .berocket_better_labels .berocket_better_labels_position.berocket_better_labels_position_right { 361 align-items: end; 362 } 363 .rtl .berocket_better_labels .berocket_better_labels_position.berocket_better_labels_position_left { 364 align-items: end; 365 } 366 .rtl .berocket_better_labels .berocket_better_labels_position.berocket_better_labels_position_right { 367 align-items: start; 368 } 369 .berocket_better_labels .berocket_better_labels_position.berocket_better_labels_position_center { 370 align-items: center; 371 } 372 .berocket_better_labels .berocket_better_labels_position .berocket_better_labels_inline { 373 display: flex; 374 align-items: start; 375 } 376/*# sourceURL=berocket_products_label_style-inline-css */ 377</style> 378<style id="wp-block-library-inline-css"> 379:root{--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223;--wp-bound-block-color:var(--wp-block-synced-color);--wp-editor-canvas-background:#ddd;--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,160.5;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}
379.wp-element-button{cursor:pointer}:root .has-very-light-gray-background-color{background-color:#eee}:root .has-very-dark-gray-background-color{background-color:#313131}:root .has-very-light-gray-color{color:#eee}:root .has-very-dark-gray-color{color:#313131}:root .has-vivid-green-cyan-to-vivid-cyan-blue-gradient-background{background:linear-gradient(135deg,#00d084,#0693e3)}:root .has-purple-crush-gradient-background{background:linear-gradient(135deg,#34e2e4,#4721fb 50%,#ab1dfe)}:root .has-hazy-dawn-gradient-background{background:linear-gradient(135deg,#faaca8,#dad0ec)}:root .has-subdued-olive-gradient-background{background:linear-gradient(135deg,#fafae1,#67a671)}:root .has-atomic-cream-gradient-background{background:linear-gradient(135deg,#fdd79a,#004a59)}:root .has-nightshade-gradient-background{background:linear-gradient(135deg,#330968,#31cdcf)}:root .has-midnight-gradient-background{background:linear-gradient(135deg,#020381,#2874fc)}:root{--wp--preset--font-size--normal:16px;--wp--preset--font-size--huge:42px}.has-regular-font-size{font-size:1em}.has-larger-font-size{font-size:2.625em}.has-normal-font-size{font-size:var(--wp--preset--font-size--normal)}.has-huge-font-size{font-size:var(--wp--preset--font-size--huge)}:root .has-text-align-center{text-align:center}:root .has-text-align-left{text-align:left}:root .has-text-align-right{text-align:right}.has-fit-text{white-space:nowrap!important}#end-resizable-editor-section{display:none}.aligncenter{clear:both}.items-justified-left{justify-content:flex-start}.items-justified-center{justify-content:center}.items-justified-right{justify-content:flex-end}.items-justified-space-between{justify-content:space-between}.screen-reader-text{word-wrap:normal!important;border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.screen-reader-text:focus{background-color:#ddd;clip-path:none;color:#444;display:block;font-size:1em;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}html :where(.has-border-color){border-style:solid}html :where([style*=border-color]){border-style:solid}html :where([style*=border-top-color]){border-top-style:solid}html :where([style*=border-right-color]){border-right-style:solid}html :where([style*=border-bottom-color]){border-bottom-style:solid}html :where([style*=border-left-color]){border-left-style:solid}html :where([style*=border-width]){border-style:solid}html :where([style*=border-top-width]){border-top-style:solid}html :where([style*=border-right-width]){border-right-style:solid}html :where([style*=border-bottom-width]){border-bottom-style:solid}html :where([style*=border-left-width]){border-left-style:solid}html :where(img[class*=wp-image-]){height:auto;max-width:100%}:where(figure){margin:0 0 1em}html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:var(--wp-admin--admin-bar--height,0px)}@media screen and (max-width:600px){html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:0px}} 380 381/*# sourceURL=/wp-includes/css/dist/block-library/common.min.css */ 382</style> 383 384<link rel='stylesheet' id='wc-blocks-style-css' href='https://diamant-strass-dmc.com/wp-content/plugins/woocommerce/assets/client/blocks/wc-blocks.css?ver=wc-11.0.1' media='all' /> 385 386<link rel='stylesheet' id='metaslider-blocks-editor-css-css' href='https://diamant-strass-dmc.com/wp-content/plugins/ml-slider/admin/assets/dist/css/editor-block.css?ver=3.111.2' media='all' property='stylesheet' /> 387<style id="pi-edd_dummy-handle-inline-css"> 388 389 .pi-edd{ 390 display:block; 391 width:100%; 392 text-align:center; 393 margin-top:5px; 394 margin-bottom:5px; 395 font-size:12px; 396 border-radius:6px; 397 } 398 399 .pi-edd:empty{ 400 display:none !important; 401 } 402 403 .pi-edd-show{ 404 display:block; 405 } 406 407 .pi-edd-short-code-show{ 408 display:inline-block; 409 } 410 411 .pi-edd-hide{ 412 display:none; 413 } 414 415 .pi-edd span{ 416 font-weight:bold; 417 } 418 419 .pi-edd-product, .pi-edd-ajax{ 420 background:#ffffff; 421 color:#170048; 422 padding: 6px 6px; 423 margin-top:1rem; 424 margin-bottom:1rem; 425 clear:both; 426 text-align:left; 427 font-size:16px; 428 border-top: 1px solid #cccccc; border-right: 1px solid #cccccc; border-bottom: 1px solid #cccccc; border-left: 1px solid #cccccc; 429 border-radius: 6px 6px 6px 6px; 430 } 431 432 .pi-edd-loop{ 433 background:#f0947e; 434 color:#fff; 435 padding: 6px 6px; 436 text-align:center; 437 font-size:12px; 438 border-top: 1px solid #cccccc; border-right: 1px solid #cccccc; border-bottom: 1px solid #cccccc; border-left: 1px solid #cccccc; 439 border-radius: 6px 6px 6px 6px; 440 } 441 442 .pi-edd-loop-ajax{ 443 width:100%; 444 } 445 446 .pi-edd.pi-edd-cart{ 447 background:#f0947e; 448 color:#ffffff; 449 padding: 6px 6px; 450 text-align:left; 451 display:block; 452 width:auto; 453 font-size:12px; 454 border-top: 1px solid #cccccc; border-right: 1px solid #cccccc; border-bottom: 1px solid #cccccc; border-left: 1px solid #cccccc; 455 border-radius: 6px 6px 6px 6px; 456 } 457 458 .pi-edd-icon{ 459 display:inline-block !important; 460 margin:0 7px; 461 vertical-align:middle; 462 } 463 464 .pi-loading{ 465 background: url(https://diamant-strass-dmc.com/wp-content/plugins/estimate-delivery-date-for-woocommerce-pro//public/img/loading.gif) #ccc no-repeat 0 0; 466 background-size: cover; 467 color:transparent !important; 468 } 469 470 .pi-loading:empty{ 471 display: block !important; 472 padding:15px; 473 } 474 475 [data-tooltip] { 476 position: relative; 477 cursor: help; 478 } 479 480 [data-tooltip]:hover::after, 481 [data-tooltip]:focus::after { 482 content: attr(data-tooltip); 483 position: absolute; 484 left: 50%; 485 top: 100%; 486 transform: translateX(-50%); 487 margin-top: 8px; 488 background: #333; 489 color: #fff; 490 padding: 6px 8px; 491 border-radius: 4px; 492 font-size: 12px; 493 line-height: 1.3; 494 white-space: nowrap; 495 z-index: 999999 !important; 496 opacity: 1;
497 visibility: visible; 498 } 499 500 [data-tooltip]:hover::before, 501 [data-tooltip]:focus::before { 502 content: ""; 503 position: absolute; 504 left: 50%; 505 top: 100%; 506 transform: translateX(-50%); 507 margin-top: 0px; 508 border-width: 6px; 509 border-style: solid; 510 border-color: #333 transparent transparent transparent; 511 opacity: 1; 512 visibility: visible; 513 } 514 515 [data-tooltip]::before, 516 [data-tooltip]::after { 517 opacity: 0; 518 visibility: hidden; 519 transition: opacity .15s ease; 520 } 521 522 [data-tooltip=""]{ 523 cursor: default; 524 } 525 526 [data-tooltip=""]::before, 527 [data-tooltip=""]::after { 528 display: none !important; 529 } 530 531 [data-tooltip]:not([data-tooltip=""])::before, 532 [data-tooltip]:not([data-tooltip=""])::after { 533 display: block; 534 } 535 536 #pi-overall-estimate-cart td { 537 overflow: visible !important; 538 } 539 540 #pi-overall-estimate-cart td [data-tooltip]:before, 541 #pi-overall-estimate-checkout td [data-tooltip]:before{ 542 display:none; 543 } 544 545 #pi-overall-estimate-cart td [data-tooltip]:after, 546 #pi-overall-estimate-checkout td [data-tooltip]:after{ 547 position:relative !important; 548 display:block !important; 549 } 550 551 .woocommerce-cart-form__cart-item:has(.pi-edd) .variation-128652, .cart_item:has(.pi-edd) .variation-128652{ 552 display:none !important; 553 } 554 555 556/*# sourceURL=pi-edd_dummy-handle-inline-css */ 557</style> 558<link rel='stylesheet' id='wc-aelia-cs-frontend-css' href='https://diamant-strass-dmc.com/wp-content/plugins/woocommerce-aelia-currencyswitcher/src/design/css/frontend.css?ver=5.3.9.260811' media='all' /> 559<style id="woocommerce-inline-inline-css"> 560.woocommerce form .form-row .required { visibility: visible; } 561/*# sourceURL=woocommerce-inline-inline-css */ 562</style> 563<link rel='stylesheet' id='wpml-legacy-dropdown-click-0-css' href='https://diamant-strass-dmc.com/wp-content/plugins/sitepress-multilingual-cms/templates/language-switchers/legacy-dropdown-click/style.min.css?ver=1' media='all' /> 564<link rel='stylesheet' id='wpml-menu-item-0-css' href='https://diamant-strass-dmc.com/wp-content/plugins/sitepress-multilingual-cms/templates/language-switchers/menu-item/style.min.css?ver=1' media='all' /> 565<link rel='stylesheet' id='woo-variation-swatches-css' href='https://diamant-strass-dmc.com/wp-content/plugins/woo-variation-swatches/assets/css/frontend.min.css?ver=2.3.0' media='all' /> 566<style id="woo-variation-swatches-inline-css"> 567:root { 568--wvs-tick:url("data:image/svg+xml;utf8,%3Csvg filter='drop-shadow(0px 0px 2px rgb(0 0 0 / .8))' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3E%3Cpath fill='none' stroke='%23ffffff' stroke-linecap='round' stroke-linejoin='round' stroke-width='4' d='M4 16L11 23 27 7'/%3E%3C/svg%3E"); 569 570--wvs-cross:url("data:image/svg+xml;utf8,%3Csvg filter='drop-shadow(0px 0px 5px rgb(255 255 255 / .6))' xmlns='http://www.w3.org/2000/svg' width='72px' height='72px' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23ff0000' stroke-linecap='round' stroke-width='0.6' d='M5 5L19 19M19 5L5 19'/%3E%3C/svg%3E"); 571--wvs-single-product-item-width:30px; 572--wvs-single-product-item-height:30px; 573--wvs-single-product-item-font-size:16px} 574/*# sourceURL=woo-variation-swatches-inline-css */ 575</style> 576<link rel='stylesheet' id='select2-css' href='https://diamant-strass-dmc.com/wp-content/plugins/woocommerce/assets/css/select2.css?ver=11.0.1' media='all' /> 577<link rel='stylesheet' id='xoo-wsc-fonts-css' href='https://diamant-strass-dmc.com/wp-content/cache/asset-cleanup/one/css/item/woocommerce-side-cart-premium__assets__css__xoo-wsc-fonts-css-vefa8ce83d364bc6d66a07ea53d112c0397456ae2.css' media='all' /> 578<link rel='stylesheet' id='xoo-wsc-style-css' href='https://diamant-strass-dmc.com/wp-content/plugins/woocommerce-side-cart-premium/assets/css/xoo-wsc-style.css?ver=4.9.1' media='all' /> 579<style id="xoo-wsc-style-inline-css"> 580.xoo-wsc-empty-cart a.xoo-wsc-btn{max-width:none;width:max-content;height:auto;padding:10px 20px;background-color:#dde6ed;color:#27374d;font-weight:500;font-style:normal;font-size:15px;text-transform:capitalize;border-width:2px;border-style:solid;border-color:#27374d;border-radius:5px;
580display:inline-flex;align-items:center;justify-content:center;}.xoo-wsc-empty-cart a.xoo-wsc-btn:hover{background-color:#27374d;color:#dde6ed;border-width:2px;border-style:solid;border-color:#dde6ed;border-radius:5px;}span.xoo-wsc-sp-atc a.button,.xoo-wsc-sl-content.xoo-wsc-sl-coupon .xoo-wsc-btn,.xoo-wsc-savl-atc{max-width:none;width:max-content;height:auto;padding:8px 15px;background-color:#ffffff;color:#000000;font-weight:500;font-style:normal;font-size:14px;text-transform:capitalize;border-width:1px;border-style:solid;border-color:#dde6ed;border-radius:5px;display:inline-flex;align-items:center;justify-content:center;}span.xoo-wsc-sp-atc a.button:hover,.xoo-wsc-sl-content.xoo-wsc-sl-coupon .xoo-wsc-btn:hover,.xoo-wsc-savl-atc:hover{background-color:;color:#000000;border-width:1px;border-style:solid;border-color:#27374d;border-radius:5px;}.xoo-wsc-slider button[name="calc_shipping"]{max-width:100%;width:100%;height:47px;padding:5px 10px;background-color:#ffffff;color:#000000;font-weight:500;font-style:normal;font-size:15px;text-transform:capitalize;border-width:1px;border-style:solid;border-color:#dde6ed;border-radius:5px;display:inline-flex;align-items:center;justify-content:center;}.xoo-wsc-slider button[name="calc_shipping"]:hover{background-color:;color:#000000;border-width:1px;border-style:solid;border-color:#27374d;border-radius:5px;}.xoo-wsc-tooltip,.xoo-wsc-gift-ban{max-width:none;width:max-content;height:auto;padding:4px 10px;background-color:#ffffff;color:#000000;font-weight:500;font-style:normal;font-size:13px;text-transform:capitalize;border-width:1px;border-style:solid;border-color:#dde6ed;border-radius:5px;display:inline-flex;align-items:center;justify-content:center;}a.xoo-wsc-ft-btn.xoo-wsc-ft-btn-checkout .amount{ 581 color: #000000; 582 }a.xoo-wsc-ft-btn.xoo-wsc-ft-btn-checkout:hover .amount{ 583 color: #000000; 584 } 585 586 587.xoo-wsc-sp-left-col img, .xoo-wsc-sp-left-col{ 588 max-width: 150px; 589} 590 591.xoo-wsc-sp-right-col{ 592 font-size: 14px; 593} 594 595.xoo-wsc-sp-container, .xoo-wsc-dr-sp{ 596 background-color: #ffffff; 597} 598 599 600 601.xoo-wsc-footer{ 602 background-color: #ffffff; 603 color: #000000; 604 padding: 10px 20px; 605 box-shadow: 0 -5px 10px #0000001a; 606} 607 608.xoo-wsc-footer, .xoo-wsc-footer a, .xoo-wsc-footer .amount{ 609 font-size: 18px; 610} 611 612.xoo-wsc-ft-buttons-cont{ 613 grid-template-columns: auto; 614} 615 616.xoo-wsc-basket{ 617 bottom: 50px; 618 right: 0px; 619 background-color: #ffffff; 620 color: #000000; 621 box-shadow: 0 1px 4px 0; 622 border-radius: 50%; 623 display: none; 624 width: 60px; 625 height: 60px; 626} 627 628 629.xoo-wsc-bki{ 630 font-size: 35px} 631 632.xoo-wsc-items-count{ 633 top: -10px; 634 left: -10px; 635} 636 637.xoo-wsc-items-count, .xoo-wsch-items-count, .xoo-wsch-save-count{ 638 background-color: #000000; 639 color: #ffffff; 640} 641 642.xoo-wsc-container, .xoo-wsc-slider, .xoo-wsc-drawer{ 643 max-width: 320px; 644 right: -320px; 645 top: 0;bottom: 0; 646 bottom: 0; 647 font-family: } 648 649.xoo-wsc-drawer{ 650 max-width: 350px; 651} 652 653.xoo-wsc-cart-active .xoo-wsc-container, .xoo-wsc-slider-active .xoo-wsc-slider{ 654 right: 0; 655} 656 657.xoo-wsc-drawer-active .xoo-wsc-drawer{ 658 right: 320px; 659} 660.xoo-wsc-drawer{ 661 right: 0; 662} 663 664 665.xoo-wsc-cart-active .xoo-wsc-basket{ 666 right: 320px; 667} 668 669span.xoo-wsch-icon{ 670 font-size: 26px; 671} 672 673 674.xoo-wsch-text, .xoo-wsc-sl-heading, .xoo-wsc-drawer-header{ 675 font-size: 22px; 676} 677 678.xoo-wsc-header, .xoo-wsc-drawer-header, .xoo-wsc-sl-heading{ 679 color: #000000; 680 background-color: #ffffff; 681 border-bottom: 2px solid #eee; 682 padding: 15px 15px; 683} 684 685 686.xoo-wsc-body{ 687 background-color: #ffffff; 688} 689 690.xoo-wsc-body, .xoo-wsc-body span.amount, .xoo-wsc-body a{ 691 font-size: 16px; 692 color: #000000; 693} 694 695.xoo-wsc-product, .xoo-wsc-sp-product, .xoo-wsc-savl-product{ 696 padding: 10px 8px; 697 margin: 10px 15px; 698 border-radius: 5px; 699 box-shadow: 0 2px 2px #00000005; 700 background-color: #ffffff; 701} 702 703.xoo-wsc-body .xoo-wsc-ft-totals{ 704 padding: 10px 8px; 705 margin: 10px 15px; 706} 707 708.xoo-wsc-product-cont{ 709 padding: 10px 10px; 710} 711 712.xoo-wsc-products:not(.xoo-wsc-pattern-card) .xoo-wsc-img-col{ 713 width: 15%; 714} 715 716.xoo-wsc-pattern-card .xoo-wsc-img-col img{ 717 max-width: 100%; 718 height: auto; 719} 720 721.xoo-wsc-products:not(.xoo-wsc-pattern-card) .xoo-wsc-sum-col{ 722 width: 85%; 723} 724 725.xoo-wsc-pattern-card .xoo-wsc-product-cont{ 726 width: 50% 727} 728 729@media only screen and (max-width: 600px) { 730 .xoo-wsc-pattern-card .xoo-wsc-product-cont { 731 width: 50%; 732 } 733} 734 735 736.xoo-wsc-pattern-card .xoo-wsc-product{ 737 border: 0; 738 box-shadow: 0px 10px 15px -12px #0000001a; 739} 740 741 742.xoo-wsc-sm-front, .xoo-wsc-card-actionbar > *{ 743 background-color: #eee; 744} 745.xoo-wsc-pattern-card, .xoo-wsc-sm-front{ 746 border-bottom-left-radius: 5px; 747 border-bottom-right-radius: 5px; 748} 749.xoo-wsc-pattern-card, .xoo-wsc-img-col img, .xoo-wsc-img-col, .xoo-wsc-sm-back-cont{ 750 border-top-left-radius: 5px; 751 border-top-right-radius: 5px; 752} 753.xoo-wsc-sm-back{ 754 background-color: #fff; 755} 756.xoo-wsc-pattern-card, .xoo-wsc-pattern-card a, .xoo-wsc-pattern-card .amount{ 757 font-size: 16px; 758} 759 760.xoo-wsc-body .xoo-wsc-sm-front, .xoo-wsc-body .xoo-wsc-sm-front a, .xoo-wsc-body .xoo-wsc-sm-front .amount, .xoo-wsc-card-actionbar{ 761 color: #000; 762} 763 764.xoo-wsc-sm-back, .xoo-wsc-sm-back a, .xoo-wsc-sm-back .amount{ 765 color: #000; 766} 767 768 769.magictime { 770 animation-duration: 0.5s; 771} 772 773 774 775.xoo-wsc-sum-col{ 776 justify-content: flex-start; 777} 778 779/***** Quantity *****/ 780 781.xoo-wsc-qty-box{ 782 max-width: 75px; 783} 784 785.xoo-wsc-qty-box.xoo-wsc-qtb-square{ 786 border-color: #000000; 787} 788 789input[type="number"].xoo-wsc-qty{ 790 border-color: #000000; 791 background-color: #ffffff; 792 color: #000000;
793 height: 28px; 794 line-height: 28px; 795} 796 797input[type="number"].xoo-wsc-qty, .xoo-wsc-qtb-square{ 798 border-width: 1px; 799 border-style: solid; 800} 801.xoo-wsc-chng{ 802 background-color: #ffffff; 803 color: #000000; 804 width: 20px; 805} 806 807.xoo-wsc-qtb-circle .xoo-wsc-chng{ 808 height: 20px; 809 line-height: 20px; 810} 811 812/** Shortcode **/ 813.xoo-wsc-sc-count{ 814 background-color: #000000; 815 color: #ffffff; 816} 817 818.xoo-wsc-sc-bki{ 819 font-size: 28px; 820 color: #000000; 821} 822.xoo-wsc-sc-cont{ 823 color: #000000; 824} 825 826.xoo-wsc-sp-column li.xoo-wsc-sp-prod-cont{ 827 width: 50%; 828} 829 830 831 832 833 834 835 836span.xoo-wsc-dtg-icon{ 837 right: calc(100% - 11px ); 838} 839 840 841.xoo-wsc-sp-product{ 842 background-color: #fff; 843} 844 845 846 847 848@media only screen and (max-width: 600px) { 849 .xoo-wsc-basket { 850 width: 40px; 851 height: 40px; 852 } 853 854 .xoo-wsc-bki { 855 font-size: 20px; 856 } 857 858 span.xoo-wsc-items-count { 859 width: 17px; 860 height: 17px; 861 line-height: 17px; 862 top: -7px; 863 left: -7px; 864 } 865} 866 867 868 869.xoo-wsc-markup dl.variation { 870 display: block; 871} 872 873 874.xoo-wsc-sl-savelater .xoo-wsc-sl-body { 875 background-color: #eee; 876} 877 878.xoo-wsc-savl-left-col img, .xoo-wsc-savl-left-col{ 879 max-width: 80px; 880} 881 882.xoo-wsc-savl-column li.xoo-wsc-savl-prod-cont{ 883 width: 50%; 884} 885 886.xoo-wsc-savl-product{ 887 background-color: #fff; 888} 889 890.xoo-wsc-savl-column .xoo-wsc-savl-prod-cont{ 891 width: 50%; 892} 893 894 895.xoo-wsc-savl-right-col, .xoo-wsc-savl-right-col .amount, .xoo-wsc-savl-right-col a { 896 font-size: 16px; 897 color: #000; 898} 899 900.xoo-wsc-tooltip{ 901 display: none!important; 902} 903 904 905 906 907.xoo-wsc-save, .xoo-wsc-smr-del{ 908 font-size: 16px 909} 910 911.xoo-wsc-sm-sales{ 912 background-color: #ffffff; 913 color: #000000; 914 border: 1px solid #000; 915} 916 917 918 .xoo-wsc-bar-icons i{ 919 font-size: 12px; 920 width: 30px; 921 height: 30px; 922 line-height: 30px; 923 } 924 .xoo-wsc-bar-cont, .xoo-wsc-bar-cont .amount{ 925 font-size: 15px; 926 } 927 928 929 930/*# sourceURL=xoo-wsc-style-inline-css */ 931</style> 932<link rel='stylesheet' id='ct-main-styles-css' href='https://diamant-strass-dmc.com/wp-content/themes/blocksy/static/bundle/main.min.css?ver=1784478407' media='all' /> 933<link rel='stylesheet' id='ct-woocommerce-styles-css' href='https://diamant-strass-dmc.com/wp-content/themes/blocksy/static/bundle/woocommerce.min.css?ver=2.1.40' media='all' /> 934<link rel='stylesheet' id='ct-page-title-styles-css' href='https://diamant-strass-dmc.com/wp-content/themes/blocksy/static/bundle/page-title.min.css?ver=2.1.40' media='all' />
935<script id="jquery-core-js" src="https://diamant-strass-dmc.com/wp-includes/js/jquery/jquery.min.js?ver=3.7.1"></script>
vendor: 1 bytes, line 935
935
936<script id="jquery-core-js-after"> 937(function(){var route="https:\/\/diamant-strass-dmc.com\/wp-json\/jdmc\/v1\/eta_date",allowed=[72384,84680,99940,99390,99720,99885,99775,99446,99995,99335,99665,99830,99610,99555,99445],fbPref="Livr\u00e9 avant le ";function isAllowed(id){id=parseInt(id||0,10);return allowed.indexOf(id)!==-1;}function fetchDate(pid){return fetch(route+'?product_id='+encodeURIComponent(pid),{credentials:'same-origin',cache:'no-store'}).then(r=>r.json()).then(d=>d&&d.date?String(d.date):'').catch(()=> '');}function extractPrefix(t){t=(t||'').trim();if(!t)return fbPref;var i=t.search(/[0-9]/);if(i<=0){var k=t.lastIndexOf(':');return(k>0?t.slice(0,k+1)+' ':fbPref);}var p=t.slice(0,i);if(!/\s$/.test(p))p+=' ';return p;}function replaceOne(el,dateText){if(!el||!dateText)return;var cur=el.textContent||'';var pref=extractPrefix(cur);var hasBox=/^\s*ð¦/.test(cur)||/^\s*ð¦/.test(pref);var final=(hasBox?'ð¦ ':'')+pref.replace(/^\s*ð¦\s*/,'')+dateText;el.style.opacity='0';el.textContent=final;el.setAttribute('data-jdmc-overridden','1');requestAnimationFrame(function(){el.style.opacity='';});}function process(root){var list=(root&&root.querySelectorAll)?root.querySelectorAll('.pi-edd[data-product]'):[];list=[].slice.call(list);list.forEach(function(el){var pid=parseInt(el.getAttribute('data-product')||0,10);if(!isAllowed(pid))return;fetchDate(pid).then(function(dt){if(!dt)return;if(el.getAttribute('data-jdmc-overridden')==='1'&&(el.textContent||'').indexOf(dt)!==-1)return;replaceOne(el,dt);});});}try{new MutationObserver(function(m){m.forEach(function(x){if(x.type==='childList'){[].forEach.call(x.addedNodes||[],function(n){if(n.querySelectorAll)process(n);});}});}).observe(document.documentElement,{subtree:true,childList:true});}catch(e){}if(document.readyState!=='loading')process(document);document.addEventListener('DOMContentLoaded',function(){process(document);});if(window.jQuery){jQuery(document).on('found_variation ajaxComplete',function(){process(document);});}})(); 938 (function(){ 939 var ACTIVE_CLASS = 'jdmc-sidecart-active'; 940 function qs(sel, root){ return (root||document).querySelector(sel); } 941 function itemsCount(){ var el=qs('.xoo-wsc-items-count'); if(!el) return 0; var n=parseInt((el.textContent||'0').replace(/\D+/g,''),10); return isNaN(n)?0:n; } 942 function getBasket(){ return qs('.xoo-wsc-basket'); } 943 function applyState(){ 944 var b=getBasket(), count=itemsCount(); 945 if(!b){ document.documentElement.classList.remove(ACTIVE_CLASS); return; } 946 if(count>0){ 947 if(!document.documentElement.classList.contains(ACTIVE_CLASS)){ document.documentElement.classList.add(ACTIVE_CLASS); } 948 b.style.setProperty('display','block','important'); 949 b.style.setProperty('visibility','visible','important'); 950 b.style.setProperty('opacity','1','important'); 951 b.style.setProperty('pointer-events','auto','important'); 952 }else{ 953 document.documentElement.classList.remove(ACTIVE_CLASS); 954 ['display','visibility','opacity','pointer-events','z-index','position','right','bottom'].forEach(function(p){ b&&b.style.removeProperty(p); }); 955 } 956 } 957 var tDeb=null; function later(d){ if(tDeb) clearTimeout(tDeb); tDeb=setTimeout(applyState,d||30); } 958 function boot(){ 959 applyState(); 960 var tries=0, t=setInterval(function(){ applyState(); if(++tries>=20) clearInterval(t); },120); 961 try{ var t1=qs('.xoo-wsc-basket')||document.body; new MutationObserver(function(){ later(30); }).observe(t1,{childList:true,subtree:true,attributes:true,characterData:true}); }catch(e){}
962 try{ var t2=qs('.xoo-wsc-items-count')||document.body; new MutationObserver(function(){ later(30); }).observe(t2,{childList:true,subtree:true,characterData:true}); }catch(e){} 963 if(window.jQuery){ jQuery(function($){ $(document.body).on('wc_fragments_loaded wc_fragments_refreshed added_to_cart removed_from_cart', function(){ later(30); }); }); } 964 } 965 if(document.readyState!=='loading') boot(); document.addEventListener('DOMContentLoaded', boot); 966 })(); 967//# sourceURL=jquery-core-js-after 968</script>
vendor: 1 bytes, line 968
968
969<script id="jquery-migrate-js" src="https://diamant-strass-dmc.com/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1"></script>
vendor: 1 bytes, line 969
969
970<script id="wpml-cookie-js-extra"> 971var wpml_cookies = {"wp-wpml_current_language":{"value":"fr","expires":1,"path":"/"}}; 972var wpml_cookies = {"wp-wpml_current_language":{"value":"fr","expires":1,"path":"/"}}; 973//# sourceURL=wpml-cookie-js-extra 974</script>
vendor: 1 bytes, line 974
974
975<script data-wp-strategy="defer" defer id="wpml-cookie-js" src="https://diamant-strass-dmc.com/wp-content/plugins/sitepress-multilingual-cms/res/js/cookies/language-cookie.js?ver=496000"></script>
vendor: 1 bytes, line 975
975
976<script id="pi-edd-script-js-extra"> 977var pi_edd_data = {"wc_ajax_url":"/?wc-ajax=%%endpoint%%","show_first_variation_estimate":"first-variation","out_of_stock_message":"Rupture de stock","no_variation_selected_msg":"\u2705 En stock","load_single_by_ajax":"1","consider_quantity_field":"0"}; 978//# sourceURL=pi-edd-script-js-extra 979</script>
vendor: 1 bytes, line 979
979
980<script id="pi-edd-script-js" src="https://diamant-strass-dmc.com/wp-content/plugins/estimate-delivery-date-for-woocommerce-pro/public/js/script.js?ver=4.7.22.14"></script>
vendor: 1 bytes, line 980
980
981<script data-wp-strategy="defer" defer id="wc-zoom-js" src="https://diamant-strass-dmc.com/wp-content/plugins/woocommerce/assets/js/zoom/jquery.zoom.min.js?ver=1.7.21-wc.11.0.1"></script>
vendor: 1 bytes, line 981
981
982<script id="wc-single-product-js-extra"> 983var wc_single_product_params = {"i18n_required_rating_text":"Veuillez s\u00e9lectionner une note","i18n_rating_options":["1\u00a0\u00e9toile sur 5","2\u00a0\u00e9toiles sur 5","3\u00a0\u00e9toiles sur 5","4\u00a0\u00e9toiles sur 5","5\u00a0\u00e9toiles sur 5"],"i18n_product_gallery_trigger_text":"Voir la galerie d\u2019images en plein \u00e9cran","review_rating_required":"yes","flexslider":{"rtl":false,"animation":"slide","smoothHeight":true,"directionNav":false,"controlNav":"thumbnails","slideshow":false,"animationSpeed":500,"animationLoop":false,"allowOneSlide":false},"zoom_enabled":"1","zoom_options":[],"photoswipe_enabled":"","photoswipe_options":{"shareEl":false,"closeOnScroll":false,"history":false,"hideAnimationDuration":0,"showAnimationDuration":0},"flexslider_enabled":""}; 984//# sourceURL=wc-single-product-js-extra 985</script>
vendor: 1 bytes, line 985
985
986<script data-wp-strategy="defer" defer id="wc-single-product-js" src="https://diamant-strass-dmc.com/wp-content/plugins/woocommerce/assets/js/frontend/single-product.min.js?ver=11.0.1"></script>
vendor: 1 bytes, line 986
986
987<script data-wp-strategy="defer" id="wc-jquery-blockui-js" src="https://diamant-strass-dmc.com/wp-content/plugins/woocommerce/assets/js/jquery-blockui/jquery.blockUI.min.js?ver=2.7.0-wc.11.0.1"></script>
vendor: 1 bytes, line 987
987
988<script data-wp-strategy="defer" defer id="wc-js-cookie-js" src="https://diamant-strass-dmc.com/wp-content/plugins/woocommerce/assets/js/js-cookie/js.cookie.min.js?ver=2.1.4-wc.11.0.1"></script>
vendor: 1 bytes, line 988
988
989<script id="woocommerce-js-extra"> 990var woocommerce_params = {"ajax_url":"/wp-admin/admin-ajax.php","wc_ajax_url":"/?wc-ajax=%%endpoint%%","i18n_password_show":"Afficher le mot de passe","i18n_password_hide":"Masquer le mot de passe"}; 991//# sourceURL=woocommerce-js-extra 992</script>
vendor: 1 bytes, line 992
992
993<script data-wp-strategy="defer" defer id="woocommerce-js" src="https://diamant-strass-dmc.com/wp-content/plugins/woocommerce/assets/js/frontend/woocommerce.min.js?ver=11.0.1"></script>
vendor: 1 bytes, line 993
993
994<script id="wpml-legacy-dropdown-click-0-js" src="https://diamant-strass-dmc.com/wp-content/plugins/sitepress-multilingual-cms/templates/language-switchers/legacy-dropdown-click/script.min.js?ver=1"></script>
vendor: 1 bytes, line 994
994
995<script id="wc-add-to-cart-js-extra"> 996var wc_add_to_cart_params = {"ajax_url":"/wp-admin/admin-ajax.php","wc_ajax_url":"/?wc-ajax=%%endpoint%%","i18n_view_cart":"Voir le panier","cart_url":"https://diamant-strass-dmc.com/panier/","is_cart":"","cart_redirect_after_add":"no"}; 997//# sourceURL=wc-add-to-cart-js-extra 998</script>
vendor: 1 bytes, line 998
998
999<script data-wp-strategy="defer" defer id="wc-add-to-cart-js" src="https://diamant-strass-dmc.com/wp-content/plugins/woocommerce/assets/js/frontend/add-to-cart.min.js?ver=11.0.1"></script>
vendor: 1 bytes, line 999
999
1000<script id="wc-cart-fragments-js-extra"> 1001var wc_cart_fragments_params = {"ajax_url":"/wp-admin/admin-ajax.php","wc_ajax_url":"/?wc-ajax=%%endpoint%%","cart_hash_key":"wc_cart_hash_88aa8b8925edf9cb77463eae3dd1c42a_USD-fr","fragment_name":"wc_fragments_88aa8b8925edf9cb77463eae3dd1c42a_USD","request_timeout":"5000"}; 1002//# sourceURL=wc-cart-fragments-js-extra 1003</script>
vendor: 1 bytes, line 1003
1003
1004<script data-wp-strategy="defer" defer id="wc-cart-fragments-js" src="https://diamant-strass-dmc.com/wp-content/plugins/woocommerce/assets/js/frontend/cart-fragments.min.js?ver=11.0.1"></script>
1004 1005<link rel="https://api.w.org/" href="https://diamant-strass-dmc.com/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://diamant-strass-dmc.com/wp-json/wp/v2/product/72384" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://diamant-strass-dmc.com/xmlrpc.php?rsd" /> 1006<meta name="generator" content="WordPress 7.0.4" /> 1007<meta name="generator" content="WooCommerce 11.0.1" /> 1008<link rel='shortlink' href='https://diamant-strass-dmc.com/?p=72384' /> 1009
1009<script> 1010 window.jdmcAiLang = "fr"; 1011 </script>
1011 1012 <meta name="generator" content="WPML ver:4.9.6 stt:7,12,37,1,4,3,13,23,27,38,40,41,44,2,50;" />
1013<script>readMoreArgs = []</script>
1013<script type="text/javascript"> 1014 EXPM_VERSION=3.55;EXPM_AJAX_URL='https://diamant-strass-dmc.com/wp-admin/admin-ajax.php'; 1015 function yrmAddEvent(element, eventName, fn) { 1016 if (element.addEventListener) 1017 element.addEventListener(eventName, fn, false); 1018 else if (element.attachEvent) 1019 element.attachEvent('on' + eventName, fn); 1020 } 1021 </script>
1021<noscript><link rel='stylesheet' href='https://diamant-strass-dmc.com/wp-content/themes/blocksy/static/bundle/no-scripts.min.css' type='text/css'></noscript> 1022<style id="ct-main-styles-inline-css">[data-header*="type-1"] .ct-header [data-row*="bottom"] {--height:80px;background-color:var(--theme-palette-color-8);background-image:none;--theme-border-top:none;--theme-border-bottom:none;--theme-box-shadow:none;} [data-header*="type-1"] .ct-header [data-row*="bottom"] > div {--theme-border-top:none;--theme-border-bottom:none;} [data-header*="type-1"] .ct-header [data-id="logo"] .site-logo-container {--logo-max-height:120px;} [data-header*="type-1"] .ct-header [data-id="logo"] .site-title {--theme-font-weight:700;--theme-font-size:25px;--theme-line-height:1.5;--theme-link-initial-color:var(--theme-palette-color-4);} [data-header*="type-1"] .ct-header [data-id="menu"] > ul > li > a {--theme-font-weight:700;--theme-text-transform:uppercase;--theme-font-size:12px;--theme-line-height:1.3;--theme-link-initial-color:var(--theme-text-color);} [data-header*="type-1"] .ct-header [data-id="menu"] .sub-menu .ct-menu-link {--theme-link-initial-color:var(--theme-palette-color-8);--theme-font-weight:500;--theme-font-size:12px;} [data-header*="type-1"] .ct-header [data-id="menu"] .sub-menu {--dropdown-divider:1px dashed rgba(255, 255, 255, 0.1);--theme-box-shadow:0px 10px 20px rgba(41, 51, 61, 0.1);--theme-border-radius:0px 0px 2px 2px;} [data-header*="type-1"] .ct-header [data-row*="middle"] {--height:120px;background-color:var(--theme-palette-color-8);background-image:none;--theme-border-top:none;--theme-border-bottom:none;--theme-box-shadow:none;} [data-header*="type-1"] .ct-header [data-row*="middle"] > div {--theme-border-top:none;--theme-border-bottom:none;} [data-header*="type-1"] [data-id="mobile-menu"] {--theme-font-weight:700;--theme-font-size:20px;--theme-link-initial-color:#ffffff;--mobile-menu-divider:none;} [data-header*="type-1"] #offcanvas {--theme-box-shadow:0px 0px 70px rgba(0, 0, 0, 0.35);--side-panel-width:500px;--panel-content-height:100%;} [data-header*="type-1"] #offcanvas .ct-panel-inner {background-color:rgba(18, 21, 25, 0.98);} [data-header*="type-1"] [data-id="search"] .ct-label {--theme-font-weight:600;--theme-text-transform:uppercase;--theme-font-size:12px;} [data-header*="type-1"] #search-modal .ct-search-results {--theme-font-weight:500;--theme-font-size:14px;--theme-line-height:1.4;} [data-header*="type-1"] #search-modal .ct-search-form {--theme-link-initial-color:#ffffff;--theme-form-text-initial-color:#ffffff;--theme-form-text-focus-color:#ffffff;--theme-form-field-border-initial-color:rgba(255, 255, 255, 0.2);--theme-button-text-initial-color:rgba(255, 255, 255, 0.7);--theme-button-text-hover-color:#ffffff;--theme-button-background-initial-color:var(--theme-palette-color-1);--theme-button-background-hover-color:var(--theme-palette-color-1);} [data-header*="type-1"] #search-modal {background-color:rgba(18, 21, 25, 0.98);} [data-header*="type-1"] .ct-header [data-id="text"] {--max-width:100%;--theme-font-size:15px;--theme-line-height:1.3;} [data-header*="type-1"] [data-id="trigger"] {--theme-icon-size:18px;} [data-header*="type-1"] {--header-height:200px;} [data-header*="type-1"] .ct-header {background-image:none;} [data-footer*="type-1"] .ct-footer [data-row*="bottom"] > div {--container-spacing:25px;--theme-border:none;--theme-border-top:none;--theme-border-bottom:none;--grid-template-columns:initial;} [data-footer*="type-1"] .ct-footer [data-row*="bottom"] .widget-title {--theme-font-size:16px;} [data-footer*="type-1"] .ct-footer [data-row*="bottom"] {--theme-border-top:none;--theme-border-bottom:none;background-color:transparent;} [data-footer*="type-1"] .ct-footer [data-id="menu"] {--menu-item-width:100%;} [data-footer*="type-1"] .ct-footer [data-id="menu"] ul {--theme-font-weight:700;--theme-text-transform:uppercase;--theme-font-size:12px;--theme-line-height:1.3;} [data-footer*="type-1"] .ct-footer [data-id="menu"] > ul > li > a {--theme-link-initial-color:var(--theme-text-color);} [data-footer*="type-1"] .ct-footer {background-color:var(--theme-palette-color-6);}:root {--theme-font-family:var(--theme-font-stack-default);
1022--theme-font-weight:400;--theme-text-transform:none;--theme-text-decoration:none;--theme-font-size:16px;--theme-line-height:1.65;--theme-letter-spacing:0em;--theme-button-font-weight:500;--theme-button-font-size:15px;--has-classic-forms:var(--true);--has-modern-forms:var(--false);--theme-form-field-border-initial-color:var(--theme-border-color);--theme-form-field-border-focus-color:var(--theme-palette-color-1);--theme-form-selection-field-initial-color:var(--theme-border-color);--theme-form-selection-field-active-color:var(--theme-palette-color-1);--theme-palette-color-1:#2872fa;--theme-palette-color-2:#1559ed;--theme-palette-color-3:#3A4F66;--theme-palette-color-4:#170048;--theme-palette-color-5:#e1e8ed;--theme-palette-color-6:#FFFFFF;--theme-palette-color-7:#FFFFFF;--theme-palette-color-8:#ffffff;--theme-text-color:var(--theme-palette-color-3);--theme-link-initial-color:var(--theme-palette-color-1);--theme-link-hover-color:var(--theme-palette-color-2);--theme-selection-text-color:#ffffff;--theme-selection-background-color:var(--theme-palette-color-1);--theme-border-color:var(--theme-palette-color-5);--theme-headings-color:var(--theme-palette-color-4);--theme-content-spacing:1.5em;--theme-button-min-height:40px;--theme-button-shadow:none;--theme-button-transform:none;--theme-button-text-initial-color:#ffffff;--theme-button-text-hover-color:#ffffff;--theme-button-background-initial-color:#6319FF;--theme-button-background-hover-color:#4900E1;--theme-button-border:none;--theme-button-padding:5px 20px;--theme-normal-container-max-width:1290px;--theme-content-vertical-spacing:0px;--theme-container-edge-spacing:90vw;--theme-narrow-container-max-width:750px;--theme-wide-offset:130px;}h1 {--theme-font-weight:700;--theme-font-size:40px;--theme-line-height:1.5;}h2 {--theme-font-weight:700;--theme-font-size:25px;--theme-line-height:1.5;}h3 {--theme-font-weight:700;--theme-font-size:25px;--theme-line-height:1.5;}h4 {--theme-font-weight:700;--theme-font-size:25px;--theme-line-height:1.5;}h5 {--theme-font-weight:700;--theme-font-size:20px;--theme-line-height:1.5;}h6 {--theme-font-weight:700;--theme-font-size:16px;--theme-line-height:1.5;}.wp-block-pullquote {--theme-font-family:Georgia;--theme-font-weight:600;--theme-font-size:25px;}pre, code, samp, kbd {--theme-font-family:monospace;--theme-font-weight:400;--theme-font-size:16px;}figcaption {--theme-font-size:14px;}.ct-sidebar .widget-title {--theme-font-size:20px;}.ct-breadcrumbs {--theme-font-weight:600;--theme-text-transform:uppercase;--theme-font-size:12px;}body {background-color:var(--theme-palette-color-7);background-image:none;} [data-prefix="single_blog_post"] .entry-header .page-title {--theme-font-size:30px;} [data-prefix="single_blog_post"] .entry-header .entry-meta {--theme-font-weight:600;--theme-text-transform:uppercase;--theme-font-size:12px;--theme-line-height:1.3;} [data-prefix="categories"] .entry-header .page-title {--theme-font-size:30px;} [data-prefix="categories"] .entry-header .entry-meta {--theme-font-weight:600;--theme-text-transform:uppercase;--theme-font-size:12px;--theme-line-height:1.3;} [data-prefix="search"] .entry-header .page-title {--theme-font-size:30px;} [data-prefix="search"] .entry-header .entry-meta {--theme-font-weight:600;--theme-text-transform:uppercase;--theme-font-size:12px;--theme-line-height:1.3;} [data-prefix="author"] .entry-header .page-title {--theme-font-size:30px;} [data-prefix="author"] .entry-header .entry-meta {--theme-font-weight:600;--theme-text-transform:uppercase;--theme-font-size:12px;--theme-line-height:1.3;} [data-prefix="author"] .hero-section[data-type="type-2"] {background-color:var(--theme-palette-color-6);background-image:none;--container-padding:50px 0px;} [data-prefix="single_page"] .entry-header .page-title {--theme-font-size:30px;} [data-prefix="single_page"] .entry-header .entry-meta {--theme-font-weight:600;--theme-text-transform:uppercase;--theme-font-size:12px;--theme-line-height:1.3;} [data-prefix="woo_categories"] .entry-header .page-title {--theme-font-size:30px;} [data-prefix="woo_categories"] .entry-header .entry-meta {--theme-font-we
1022ight:600;--theme-text-transform:uppercase;--theme-font-size:12px;--theme-line-height:1.3;} [data-prefix="woo_categories"] .hero-section[data-type="type-2"] {background-color:var(--theme-palette-color-6);background-image:none;--container-padding:50px 0px;} [data-prefix="product"] .entry-header .page-title {--theme-font-size:30px;} [data-prefix="product"] .entry-header .entry-meta {--theme-font-weight:600;--theme-text-transform:uppercase;--theme-font-size:12px;--theme-line-height:1.3;} [data-prefix="blog"] .entries {--grid-template-columns:repeat(3, minmax(0, 1fr));} [data-prefix="blog"] .entry-card .entry-title {--theme-font-size:20px;--theme-line-height:1.3;} [data-prefix="blog"] .entry-card .entry-meta {--theme-font-weight:600;--theme-text-transform:uppercase;--theme-font-size:12px;} [data-prefix="blog"] .entry-card {background-color:var(--theme-palette-color-8);--theme-box-shadow:0px 12px 18px -6px rgba(34, 56, 101, 0.04);} [data-prefix="categories"] .entries {--grid-template-columns:repeat(3, minmax(0, 1fr));} [data-prefix="categories"] .entry-card .entry-title {--theme-font-size:20px;--theme-line-height:1.3;} [data-prefix="categories"] .entry-card .entry-meta {--theme-font-weight:600;--theme-text-transform:uppercase;--theme-font-size:12px;} [data-prefix="categories"] .entry-card {background-color:var(--theme-palette-color-8);--theme-box-shadow:0px 12px 18px -6px rgba(34, 56, 101, 0.04);} [data-prefix="author"] .entries {--grid-template-columns:repeat(3, minmax(0, 1fr));} [data-prefix="author"] .entry-card .entry-title {--theme-font-size:20px;--theme-line-height:1.3;} [data-prefix="author"] .entry-card .entry-meta {--theme-font-weight:600;--theme-text-transform:uppercase;--theme-font-size:12px;} [data-prefix="author"] .entry-card {background-color:var(--theme-palette-color-8);--theme-box-shadow:0px 12px 18px -6px rgba(34, 56, 101, 0.04);} [data-prefix="search"] .entries {--grid-template-columns:repeat(3, minmax(0, 1fr));} [data-prefix="search"] .entry-card .entry-title {--theme-font-size:20px;--theme-line-height:1.3;} [data-prefix="search"] .entry-card .entry-meta {--theme-font-weight:600;--theme-text-transform:uppercase;--theme-font-size:12px;} [data-prefix="search"] .entry-card {background-color:var(--theme-palette-color-8);--theme-box-shadow:0px 12px 18px -6px rgba(34, 56, 101, 0.04);}.quantity[data-type="type-2"] {--quantity-arrows-initial-color:var(--theme-text-color);}.onsale, .out-of-stock-badge, [class*="ct-woo-badge-"] {--theme-font-weight:600;--theme-font-size:12px;--theme-line-height:1.1;}.out-of-stock-badge {--badge-text-color:#ffffff;--badge-background-color:#24292E;}.demo_store {--theme-text-color:#ffffff;--background-color:var(--theme-palette-color-1);}.woocommerce-info, .woocommerce-thankyou-order-received, .wc-block-components-notice-banner.is-info {--theme-text-color:var(--theme-text-color);--theme-link-hover-color:var(--theme-link-hover-color);--background-color:#F0F1F3;}.woocommerce-message, .wc-block-components-notice-banner.is-success {--background-color:#F0F1F3;}.woocommerce-error, .wc-block-components-notice-banner.is-error {--theme-text-color:#ffffff;--theme-link-hover-color:#ffffff;--background-color:rgba(218, 0, 28, 0.7);--theme-button-text-initial-color:#ffffff;--theme-button-text-hover-color:#ffffff;--theme-button-background-initial-color:#b92c3e;--theme-button-background-hover-color:#9c2131;}.ct-woocommerce-cart-form .cart_totals {--cart-totals-border:2px solid var(--theme-border-color);--cart-totals-padding:30px;}.ct-order-review {--order-review-border:2px solid var(--theme-border-color);--order-review-padding:35px;}.woo-listing-top .woocommerce-result-count {--theme-font-weight:500;--theme-text-transform:uppercase;--theme-font-size:11px;--theme-letter-spacing:0.05em;} [data-products] .product figure {--product-element-spacing:25px;} [data-products] .product .entry-meta[data-id="default"] {--product-element-spacing:10px;} [data-products] .woocommerce-loop-product__title, [data-products] .woocommerce-loop-category__title {--theme-font-weight:600;--theme-font-size:17px;}
1022 [data-products] .product .price {--theme-font-weight:600;} [data-products] .ct-woo-card-stock {--theme-font-size:15px;} [data-products] .entry-meta {--theme-font-weight:600;--theme-text-transform:uppercase;--theme-font-size:12px;--theme-link-initial-color:var(--theme-text-color);}.woocommerce-tabs .tabs, .woocommerce-tabs .ct-accordion-heading, .woocommerce-tabs[data-type*="type-4"] .entry-content > h2:first-of-type {--theme-font-weight:600;--theme-text-transform:uppercase;--theme-font-size:12px;--theme-line-height:1;--theme-link-initial-color:var(--theme-text-color);}.woocommerce-tabs[data-type] .tabs {--tab-background:var(--theme-palette-color-1);}.related .ct-module-title, .up-sells .ct-module-title {--theme-font-size:20px;}.woocommerce-product-gallery [data-flexy="no"] .flexy-item:nth-child(n + 2) {height:1px;}.entry-summary-items > .price {--product-element-spacing:35px;}.entry-summary-items > .woocommerce-product-details__short-description {--product-element-spacing:35px;}.entry-summary-items > .ct-product-divider[data-id="divider_1"] {--product-element-spacing:35px;}.entry-summary-items > .ct-product-add-to-cart {--product-element-spacing:35px;}.entry-summary-items > .ct-product-add-to-cart > .cart {--theme-button-min-height:55px;}.entry-summary-items > .ct-product-divider[data-id="divider_2"] {--product-element-spacing:35px;}.entry-summary .entry-title {--theme-font-size:30px;}.entry-summary .price {--theme-font-weight:700;--theme-font-size:20px;}.entry-summary .quantity {--quantity-initial-color:var(--theme-palette-color-3);--quantity-hover-color:var(--theme-palette-color-4);}
1022.entry-summary .ct-product-divider {--single-product-layer-divider:1px solid var(--theme-border-color);}.entry-summary .ct-payment-methods[data-color="custom"] {--theme-icon-color:#4B4F58;}form textarea {--theme-form-field-height:170px;}.ct-sidebar {--theme-link-initial-color:var(--theme-text-color);} [data-prefix="single_blog_post"] [class*="ct-container"] > article[class*="post"] {--has-boxed:var(--false);--has-wide:var(--true);} [data-prefix="single_page"] [class*="ct-container"] > article[class*="post"] {--has-boxed:var(--false);--has-wide:var(--true);} [data-prefix="product"] [class*="ct-container"] > article[class*="post"] {--has-boxed:var(--false);--has-wide:var(--true);}@media (max-width: 999.98px) {[data-header*="type-1"] .ct-header [data-id="logo"] .site-logo-container {--logo-max-height:70px;} [data-header*="type-1"] .ct-header [data-row*="middle"] {--height:70px;} [data-header*="type-1"] #offcanvas {--side-panel-width:65vw;} [data-header*="type-1"] {--header-height:70px;} [data-footer*="type-1"] .ct-footer [data-row*="bottom"] > div {--grid-template-columns:initial;} [data-prefix="blog"] .entries {--grid-template-columns:repeat(2, minmax(0, 1fr));} [data-prefix="categories"] .entries {--grid-template-columns:repeat(2, minmax(0, 1fr));} [data-prefix="author"] .entries {--grid-template-columns:repeat(2, minmax(0, 1fr));} [data-prefix="search"] .entries {--grid-template-columns:repeat(2, minmax(0, 1fr));}.ct-woocommerce-cart-form .cart_totals {--cart-totals-padding:25px;}.ct-order-review {--order-review-padding:30px;} [data-products] {--shop-columns:repeat(3, minmax(0, 1fr));}.related [data-products], .upsells [data-products] {--shop-columns:repeat(3, minmax(0, 1fr));}}@media (max-width: 689.98px) {[data-header*="type-1"] #offcanvas {--side-panel-width:90vw;} [data-footer*="type-1"] .ct-footer [data-row*="bottom"] > div {--container-spacing:15px;--grid-template-columns:initial;} [data-prefix="blog"] .entries {--grid-template-columns:repeat(1, minmax(0, 1fr));} [data-prefix="blog"] .entry-card .entry-title {--theme-font-size:18px;} [data-prefix="categories"] .entries {--grid-template-columns:repeat(1, minmax(0, 1fr));} [data-prefix="categories"] .entry-card .entry-title {--theme-font-size:18px;} [data-prefix="author"] .entries {--grid-template-columns:repeat(1, minmax(0, 1fr));} [data-prefix="author"] .entry-card .entry-title {--theme-font-size:18px;} [data-prefix="search"] .entries {--grid-template-columns:repeat(1, minmax(0, 1fr));} [data-prefix="search"] .entry-card .entry-title {--theme-font-size:18px;}.ct-order-review {--order-review-padding:25px;} [data-products] {--shop-columns:repeat(1, minmax(0, 1fr));}.related [data-products], .upsells [data-products] {--shop-columns:repeat(1, minmax(0, 1fr));}.entry-summary-items > .ct-product-add-to-cart > .cart {--theme-button-min-height:40px;}:root {--theme-container-edge-spacing:88vw;}}</style> 1023
1023<script> 1024 (function() { 1025 var observer = new MutationObserver(function(mutations, me) { 1026 var switcher = document.querySelector('.wpml-header-switcher'); 1027 if (switcher) { 1028 var container = document.createElement('div'); 1029 container.className = 'headzlinks'; 1030 container.innerHTML = '<div class=\"headzlinks\"><a href=\"/code-couleur-nuancier-dmc/\" class=\"lien-header-perso\"><span>ð</span>Nuancier DMC</a><a href=\"/diamants-par-couleur/\" class=\"lien-header-perso\"><span>ð¨</span>Couleurs</a></div>'; 1031 switcher.insertBefore(container, switcher.firstChild); 1032 me.disconnect(); // Stop dès que c'est fait 1033 } 1034 }); 1035 observer.observe(document.documentElement, { childList: true, subtree: true }); 1036 })(); 1037 </script>
1037 1038 <style> 1039 /* Image "Image personnalisée" SOUS le texte, panier + checkout */ 1040 .woocommerce-cart .product-name dl.variation dd.variation-Imagepersonnalise, 1041 .woocommerce-checkout .product-name dl.variation dd.variation-Imagepersonnalise { 1042 clear: both; 1043 display: block; 1044 margin: 2px 0 0 0; 1045 } 1046 1047 /* Style propre pour lâimage "Image personnalisée" (cart, checkout, mini-panier XOO) */ 1048 .woocommerce-cart .product-name dl.variation dd.variation-Imagepersonnalise img, 1049 .woocommerce-checkout .product-name dl.variation dd.variation-Imagepersonnalise img, 1050 .xoo-wsc-product .variation dd.variation-Imagepersonnalise img { 1051 max-width: 60px; 1052 max-height: 60px; 1053 width: auto !important; 1054 height: auto !important; 1055 object-fit: contain !important; 1056 display: block; 1057 border-radius: 4px; 1058 border: 1px solid #ddd; 1059 } 1060 </style> 1061 <style> 1062 .woo-variation-swatches .variable-items-wrapper .variable-item:not(.radio-variable-item).button-variable-item.selected:not(.no-stock) { 1063 background: #6319FF; 1064 color: #fff; 1065 font-weight: bold; } 1066 1067 .quantity[data-type=type-2] { 1068 width:145px; 1069 } 1070 1071 div.quantity input[type=number] { 1072 font-size:1.2em; 1073 } 1074 1075 .quantity[data-type=type-2] .ct-increase { 1076 color: white; 1077 background: #840074; 1078 height: 100%; 1079 top: 0; 1080 right: 0; 1081 width: 50px; 1082 } 1083 1084 .quantity[data-type=type-2] .ct-increase::before, .quantity[data-type=type-2] .ct-decrease::before { 1085 font-weight:bold; 1086 } 1087 1088 .quantity[data-type=type-2] .ct-increase:hover { 1089 background:#4A0041; 1090 } 1091 1092 .quantity[data-type=type-2] .ct-decrease { 1093 color: white; 1094 background: #840074; 1095 height: 100%; 1096 top: 0; 1097 left: 0; 1098 width: 50px; 1099 } 1100 1101 .quantity[data-type=type-2] .ct-decrease:hover { 1102 background:#4A0041; 1103 } 1104 1105 1106 </style> 1107 <style> 1108 /* Sur toutes les pages WooCommerce (produits, archives, etc.) 1109 sauf panier (.woocommerce-cart) et checkout (.woocommerce-checkout), 1110 on cache les messages, erreurs et infos. */ 1111 body.woocommerce:not(.woocommerce-cart):not(.woocommerce-checkout) .woocommerce-notices-wrapper, 1112 body.woocommerce-page:not(.woocommerce-cart):not(.woocommerce-checkout) .woocommerce-notices-wrapper, 1113 body.woocommerce:not(.woocommerce-cart):not(.woocommerce-checkout) .woocommerce-message, 1114 body.woocommerce:not(.woocommerce-cart):not(.woocommerce-checkout) .woocommerce-error, 1115 body.woocommerce:not(.woocommerce-cart):not(.woocommerce-checkout) .woocommerce-info { 1116 display: none !important; 1117 } 1118 </style> 1119
1119<script> 1120 document.addEventListener('DOMContentLoaded', function () { 1121 1122 // Titre original tel qu'il est dans <title> (avec emoji diamant) 1123 const original = document.title; 1124 1125 // On retire uniquement l'emoji ð (si tu veux un autre emoji, je modifie) 1126 const cleaned = original.replace(/ð/g, '').trim(); 1127 1128 // Détection simple pour éviter Googlebot & co 1129 const isHuman = !/Googlebot|bingbot|DuckDuckBot|YandexBot|Baiduspider/i.test(navigator.userAgent); 1130 1131 if (isHuman) { 1132 document.title = cleaned; 1133 } 1134 }); 1135 </script>
1135 1136 <link rel="preconnect" href="https://www.googletagmanager.com"> 1137 <link rel="dns-prefetch" href="https://bat.bing.com"> 1138 <link rel="dns-prefetch" href="https://app.ardalio.com"> 1139
1139<script> 1140 window.dataLayer = window.dataLayer || []; 1141 function gtag(){dataLayer.push(arguments);} 1142 gtag('consent', 'default', { 1143 'ad_storage': 'granted', 1144 'ad_user_data': 'granted', 1145 'ad_personalization': 'granted', 1146 'analytics_storage': 'granted', 1147 'wait_for_update': 500 1148 }); 1149 </script>
1149 1150
1150<script>
vendor: 323 bytes, line 1150
1150(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src='https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);})(window,document,'script','dataLayer','
1150GTM-P233F6T
vendor: 3 bytes, line 1150
1150');
1150</script>
1150 1151 <style> 1152 /* La pastille existe toujours dans le flux, on gère ensuite opacité/visibilité en JS */ 1153 .berocket_better_labels_image { 1154 display: block !important; 1155 } 1156 </style> 1157 <noscript><style>.woocommerce-product-gallery{ opacity: 1 !important; }</style></noscript> 1158 <style id="jdmc-mixed-dp-style"> 1159 .jdmc-mixed-dp .woocommerce-info{ 1160 background:#3D9CD2 !important; 1161 color:#fff !important; 1162 border-color:#3D9CD2 !important; 1163 } 1164 .jdmc-mixed-dp .woocommerce-info::before{ 1165 color:#fff !important; 1166 } 1167 .jdmc-mixed-dp .woocommerce-info a{ 1168 color:#fff !important; 1169 text-decoration:underline; 1170 } 1171 </style><link rel="icon" href="https://diamant-strass-dmc.com/wp-content/uploads/2025/12/cropped-ChatGPT-Image-10-dec.-2025-15_53_19-32x32.png" sizes="32x32" /> 1172<link rel="icon" href="https://diamant-strass-dmc.com/wp-content/uploads/2025/12/cropped-ChatGPT-Image-10-dec.-2025-15_53_19-192x192.png" sizes="192x192" /> 1173<link rel="apple-touch-icon" href="https://diamant-strass-dmc.com/wp-content/uploads/2025/12/cropped-ChatGPT-Image-10-dec.-2025-15_53_19-180x180.png" /> 1174<meta name="msapplication-TileImage" content="https://diamant-strass-dmc.com/wp-content/uploads/2025/12/cropped-ChatGPT-Image-10-dec.-2025-15_53_19-270x270.png" />
1175<script type="application/ld+json">{"@context":"https://schema.org","@type":"Product","name":"Mon diamond painting personnalisé","image":"https://diamant-strass-dmc.com/wp-content/uploads/2024/11/custom-dp-diamond-painting.jpg","description":"ð¤ð¥\r\n Black Friday\r\n \r\n -50%\r\n sur toutes les toiles\r\n \r\n\r\n\r\nð¼ï¸ Votre photo transformée en DP\r\nð¸ Aperçu instantané du rendu\r\nâ
Tout inclus : perles, colle, styloâ¦\r\n⨠Créez votre image grâce à lâIA.","sku":"SKU-72384","mpn":"SKU-72384","brand":{"@type":"Brand","name":"Diamant Strass DMC"},"offers":{"@type":"Offer","priceCurrency":"USD","price":"22.40","priceValidUntil":"2027-10-04","availability":"https://schema.org/InStock","url":"https://diamant-strass-dmc.com/perles-broderie/custom-diamond-painting-personnalise-photo/","seller":{"@type":"Organization","name":"Diamant Strass DMC","address":{"@type":"PostalAddress","streetAddress":"rue du Solesmes","addressLocality":"Vendegies-sur-Ãcaillon","postalCode":"59213","addressCountry":"FR"}},"shippingDetails":[{"@type":"OfferShippingDetails","shippingRate":{"@type":"MonetaryAmount","value":"3.30","currency":"USD"},"shippingDestination":{"@type":"DefinedRegion","addressCountry":"FR"},"deliveryTime":{"@type":"ShippingDeliveryTime","handlingTime":{"@type":"QuantitativeValue","minValue":0,"maxValue":1,"unitCode":"DAY"},"transitTime":{"@type":"QuantitativeValue","minValue":2,"maxValue":4,"unitCode":"DAY"}}}],"hasMerchantReturnPolicy":{"@type":"MerchantReturnPolicy","returnPolicyCategory":"https://schema.org/MerchantReturnFiniteReturnWindow","merchantReturnDays":30,"returnMethod":"https://schema.org/ReturnByMail","returnFees":"https://schema.org/FreeReturn"}},"aggregateRating":{"@type":"AggregateRating","ratingValue":"4.79","bestRating":"5","ratingCount":1399}}</script>
1175 <style id="jdmc-vacation-delivery-style"> 1176 .jdmc-vacation-delivery { 1177 box-sizing: border-box; 1178 width: 100%; 1179 margin: 7px 0 12px; 1180 padding: 10px 12px 10px 40px; 1181 position: relative; 1182 1183 font-size: 13px; 1184 line-height: 1.45; 1185 font-weight: 500; 1186 1187 color: #574617; 1188 background: #fff9e8; 1189 border: 1px solid #f0dfad; 1190 border-left: 3px solid #e0a82e; 1191 border-radius: 7px; 1192 1193 box-shadow: 0 1px 2px rgba(0, 0, 0, 0.025); 1194 } 1195 1196 .jdmc-vacation-delivery::before { 1197 content: "âï¸"; 1198 position: absolute; 1199 left: 12px; 1200 top: 50%; 1201 transform: translateY(-50%); 1202 1203 font-size: 17px; 1204 line-height: 1; 1205 } 1206 1207 @media (max-width: 600px) { 1208 .jdmc-vacation-delivery { 1209 margin-top: 6px; 1210 margin-bottom: 10px; 1211 padding: 9px 10px 9px 36px; 1212 1213 font-size: 12.5px; 1214 line-height: 1.4; 1215 border-radius: 6px; 1216 } 1217 1218 .jdmc-vacation-delivery::before { 1219 left: 10px; 1220 font-size: 16px; 1221 } 1222 } 1223 </style> 1224 <style id="wp-custom-css"> 1225.ct-product-gallery-container .flexy-item img { 1226 width: auto !important; 1227 max-width: 100% !important; 1228 height: auto !important; 1229 margin: 0 auto; 1230} 1231 1232/* Cache la première occurrence de la description pour éviter le doublon */ 1233.summary.entry-summary .woocommerce-product-details__short-description:first-of-type { 1234 display: none !important; 1235} 1236 1237/* Forcer l'affichage de l'étiquette Menu sur mobile */ 1238.ct-header-trigger .ct-label.ct-hidden-sm, 1239.ct-header-trigger .ct-label.ct-hidden-md, 1240.ct-header-trigger .ct-label.ct-hidden-lg { 1241 display: block !important; 1242 font-size: 14px; /* Ajustez la taille si besoin */ 1243 margin-right: 8px; 1244} 1245 1246/* S'assurer que le bouton utilise bien flexbox pour aligner texte et icône */ 1247.ct-header-trigger { 1248 display: inline-flex !important; 1249 align-items: center !important; 1250} 1251</style> 1252<style id="jdmc-sidecart-center"> 1253 .jdmc-sidecart-active .xoo-wsc-basket{ 1254 display:flex !important; align-items:center !important; justify-content:center !important; text-align:center !important; 1255 } 1256 .jdmc-sidecart-active [class^="xoo-wsc-icon-"], 1257 .jdmc-sidecart-active [class*=" xoo-wsc-icon-"]{ 1258 line-height:1.7em !important; display:inline-block !important; vertical-align:middle !important; 1259 } 1260 </style> <style id="global-styles-inline-css"> 1261:root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--color--palette-color-1: var(--theme-palette-color-1, #2872fa);--wp--preset--color--palette-color-2: var(--theme-palette-color-2, #1559ed);--wp--preset--color--palette-color-3: var(--theme-palette-color-3, #3A4F66);--wp--preset--color--palette-color-4: var(--theme-palette-color-4, #170048);--wp--preset--color--palette-color-5: var(--theme-palette-color-5, #e1e8ed);--wp--preset--color--palette-color-6: var(--theme-palette-color-6, #FFFFFF);--wp--preset--color--palette-color-7: var(--theme-palette-color-7, #FFFFFF);--wp--preset--color--palette-color-8: var(--theme-palette-color-8, #ffffff);--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgb(6,147,227) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgb(252,185,
12610) 0%,rgb(255,105,0) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgb(255,105,0) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--gradient--juicy-peach: linear-gradient(to right, #ffecd2 0%, #fcb69f 100%);--wp--preset--gradient--young-passion: linear-gradient(to right, #ff8177 0%, #ff867a 0%, #ff8c7f 21%, #f99185 52%, #cf556c 78%, #b12a5b 100%);--wp--preset--gradient--true-sunset: linear-gradient(to right, #fa709a 0%, #fee140 100%);--wp--preset--gradient--morpheus-den: linear-gradient(to top, #30cfd0 0%, #330867 100%);--wp--preset--gradient--plum-plate: linear-gradient(135deg, #667eea 0%, #764ba2 100%);--wp--preset--gradient--aqua-splash: linear-gradient(15deg, #13547a 0%, #80d0c7 100%);--wp--preset--gradient--love-kiss: linear-gradient(to top, #ff0844 0%, #ffb199 100%);--wp--preset--gradient--new-retrowave: linear-gradient(to top, #3b41c5 0%, #a981bb 49%, #ffc8a9 100%);--wp--preset--gradient--plum-bath: linear-gradient(to top, #cc208e 0%, #6713d2 100%);--wp--preset--gradient--high-flight: linear-gradient(to right, #0acffe 0%, #495aff 100%);--wp--preset--gradient--teen-party: linear-gradient(135deg, #FF057C 0%, #8D0B93 50%, #321575 100%);--wp--preset--gradient--fabled-sunset: linear-gradient(135deg, #231557 0%, #44107A 29%, #FF1361 67%, #FFF800 100%);--wp--preset--gradient--arielle-smile: radial-gradient(circle 248px at center, #16d9e3 0%, #30c7ec 47%, #46aef7 100%);--wp--preset--gradient--itmeo-branding: linear-gradient(180deg, #2af598 0%, #009efd 100%);--wp--preset--gradient--deep-blue: linear-gradient(to right, #6a11cb 0%, #2575fc 100%);--wp--preset--gradient--strong-bliss: linear-gradient(to right, #f78ca0 0%, #f9748f 19%, #fd868c 60%, #fe9a8b 100%);--wp--preset--gradient--sweet-period: linear-gradient(to top, #3f51b1 0%, #5a55ae 13%, #7b5fac 25%, #8f6aae 38%, #a86aa4 50%, #cc6b8e 62%, #f18271 75%, #f3a469 87%, #f7c978 100%);--wp--preset--gradient--purple-division: linear-gradient(to top, #7028e4 0%, #e5b2ca 100%);--wp--preset--gradient--cold-evening: linear-gradient(to top, #0c3483 0%, #a2b6df 100%, #6b8cce 100%, #a2b6df 100%);--wp--preset--gradient--mountain-rock: linear-gradient(to right, #868f96 0%, #596164 100%);--wp--preset--gradient--desert-hump: linear-gradient(to top, #c79081 0%, #dfa579 100%);--wp--preset--gradient--ethernal-constance: linear-gradient(to top, #09203f 0%, #537895 100%);--wp--preset--gradient--happy-memories: linear-gradient(300deg, #ff5858 0%, #f09819 100%);--wp--preset--gradient--grown-early: linear-gradient(to top, #0ba360 0%, #3cba92 100%);--wp--preset--gradient--morning-salad: linear-gradient(135deg, #B7F8DB 0%, #50A7C2 100%);--wp--preset--gradient--night-call: linear-gradient(135deg, #AC32E4 0%, #7918F2 48%, #4801FF 100%);--wp--preset--gradient--mind-crawl: linear-gradient(135deg, #473B7B 0%, #3584A7 51%, #30D2BE 100%);--wp--preset--gradient--angel-care: linear-gradient(135deg, #FFE29F 0%, #FFA99F 48%, #FF719A 100%);--wp--preset--gradient--juicy-cake: linear-gradient(to top, #e14fad 0%, #f9d423 100%);--wp--preset--gradient--rich-metal: linear-gradient(to right, #d7d2cc 0%, #304352 100%);--wp--preset--gradient--mole-hall: linear-gradient(340deg, #616161 0%, #9bc5c3 100%);--wp--preset--gradient--cloudy-knoxville: linear-gradient(120deg, #fdfbfb 0%, #ebedee 100%);--wp--preset--gradient--soft-grass: linear-gradient(to top, #c1dfc4 0%, #deecdd 100%);--wp--preset--gradient--saint-petersburg: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);--wp--preset--gradient--everlasting-sky: linear-gradient(135deg, #fdfcfb 0%, #e2d1c3 100%);--wp--preset--gradient--kind-steel: linear-gradient(340deg, #e9defa 0%, #fbfcdb 100%);--wp--preset--gradient--over-sun: linear-gradient(60deg, #abecd6 0%, #fbed96 100%);--wp--preset--gradient--premium-white: linear-gradient(to top, #d5d4d0 0%, #d5d4d0 1%, #eeeeec 31%, #efeeec 75%, #e9e9e7 100%);--wp--preset--gradient--clean-mirror: linear-gradient(45deg, #93a5cf 0%, #e4efe9 100%);--wp--preset--gradient--wild-apple: linear-gradient(to top, #d299c2 0%, #fef9d7 100%);--wp--preset--gradient--snow-again: linear-gradient(to top, #e6e9f0 0%, #eef1f5 100%);--wp--preset--gradient--confident-cloud: linear-gradient(to top, #dad4ec 0%, #dad4ec 1%, #f3e7e9 100%);
1261--wp--preset--gradient--glass-water: linear-gradient(to top, #dfe9f3 0%, white 100%);--wp--preset--gradient--perfect-white: linear-gradient(135deg, #E3FDF5 0%, #FFE6FA 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: clamp(22px, 1.375rem + ((1vw - 3.2px) * 0.625), 30px);--wp--preset--font-size--x-large: clamp(30px, 1.875rem + ((1vw - 3.2px) * 1.563), 50px);--wp--preset--font-size--xx-large: clamp(45px, 2.813rem + ((1vw - 3.2px) * 2.734), 80px);--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgb(255, 255, 255), 6px 6px rgb(0, 0, 0);--wp--preset--shadow--crisp: 6px 6px 0px rgb(0, 0, 0);}:root { --wp--style--global--content-size: var(--theme-block-max-width);--wp--style--global--wide-size: var(--theme-block-wide-max-width); }:where(body) { margin: 0; }.wp-site-blocks > .alignleft { float: left; margin-right: 2em; }.wp-site-blocks > .alignright { float: right; margin-left: 2em; }.wp-site-blocks > .aligncenter { justify-content: center; margin-left: auto; margin-right: auto; }:where(.wp-site-blocks) > * { margin-block-start: var(--theme-content-spacing); margin-block-end: 0; }:where(.wp-site-blocks) > :first-child { margin-block-start: 0; }:where(.wp-site-blocks) > :last-child { margin-block-end: 0; }:root { --wp--style--block-gap: var(--theme-content-spacing); }:root :where(.is-layout-flow) > :first-child{margin-block-start: 0;}:root :where(.is-layout-flow) > :last-child{margin-block-end: 0;}:root :where(.is-layout-flow) > *{margin-block-start: var(--theme-content-spacing);margin-block-end: 0;}:root :where(.is-layout-constrained) > :first-child{margin-block-start: 0;}:root :where(.is-layout-constrained) > :last-child{margin-block-end: 0;}:root :where(.is-layout-constrained) > *{margin-block-start: var(--theme-content-spacing);margin-block-end: 0;}:root :where(.is-layout-flex){gap: var(--theme-content-spacing);}:root :where(.is-layout-grid){gap: var(--theme-content-spacing);}.is-layout-flow > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}.is-layout-flow > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}.is-layout-flow > .aligncenter{margin-left: auto !important;margin-right: auto !important;}.is-layout-constrained > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}.is-layout-constrained > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}.is-layout-constrained > .aligncenter{margin-left: auto !important;margin-right: auto !important;}.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)){max-width: var(--wp--style--global--content-size);margin-left: auto !important;margin-right: auto !important;}.is-layout-constrained > .alignwide{max-width: var(--wp--style--global--wide-size);}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}body{padding-top: 0px;padding-right: 0px;padding-bottom: 0px;padding-left: 0px;}:root :where(.wp-element-button, .wp-block-button__link){font-style: inherit;font-weight: inherit;letter-spacing: inherit;text-transform: inherit;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-palette-color-1-color{color: var(--wp--preset--color--palette-color-1) !important;}.has-palette-color-2-color{color: var(--wp--preset--color--palette-color-2) !important;}.has-palette-color-3-color{color: var(--wp--preset--color--palette-color-3) !important;}.has-palette-color-4-color{color: var(--wp--preset--color--palette-color-4) !important;}.has-palette-color-5-color{color: var(--wp--preset--color--palette-color-5) !important;}.has-palette-color-6-color{color: var(--wp--preset--color--palette-color-6) !important;}.has-palette-color-7-color{color: var(--wp--preset--color--palette-color-7) !important;}.has-palette-color-8-color{color: var(--wp--preset--color--palette-color-8) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-palette-color-1-background-color{background-color: var(--wp--preset--color--palette-color-1) !important;}.has-palette-color-2-background-color{background-color: var(--wp--preset--color--palette-color-2) !important;}.has-palette-color-3-background-color{background-color: var(--wp--preset--color--palette-color-3) !important;}.has-palette-color-4-background-color{background-color: var(--wp--preset--color--palette-color-4) !important;}.has-palette-color-5-background-color{background-color: var(--wp--preset--color--palette-color-5) !important;}.has-palette-color-6-background-color{background-color: var(--wp--preset--color--palette-color-6) !important;}.has-palette-color-7-background-color{background-color: var(--wp--preset--color--palette-color-7) !important;}.has-palette-color-8-background-color{background-color: var(--wp--preset--color--palette-color-8) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-palette-color-1-border-color{border-color: var(--wp--preset--color--palette-color-1) !important;}.has-palette-color-2-border-color{border-color: var(--wp--preset--color--palette-color-2) !important;}.has-palette-color-3-border-color{border-color: var(--wp--preset--color--palette-color-3) !important;}.has-palette-color-4-border-color{border-color: var(--wp--preset--color--palette-color-4) !important;}.has-palette-color-5-border-color{border-color: var(--wp--preset--color--palette-color-5) !important;}.has-palette-color-6-border-color{border-color: var(--wp--preset--color--palette-color-6) !important;}.has-palette-color-7-border-color{border-color: var(--wp--preset--color--palette-color-7) !important;}.has-palette-color-8-border-color{border-color: var(--wp--preset--color--palette-color-8) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}
1261.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-juicy-peach-gradient-background{background: var(--wp--preset--gradient--juicy-peach) !important;}.has-young-passion-gradient-background{background: var(--wp--preset--gradient--young-passion) !important;}.has-true-sunset-gradient-background{background: var(--wp--preset--gradient--true-sunset) !important;}.has-morpheus-den-gradient-background{background: var(--wp--preset--gradient--morpheus-den) !important;}.has-plum-plate-gradient-background{background: var(--wp--preset--gradient--plum-plate) !important;}.has-aqua-splash-gradient-background{background: var(--wp--preset--gradient--aqua-splash) !important;}.has-love-kiss-gradient-background{background: var(--wp--preset--gradient--love-kiss) !important;}.has-new-retrowave-gradient-background{background: var(--wp--preset--gradient--new-retrowave) !important;}.has-plum-bath-gradient-background{background: var(--wp--preset--gradient--plum-bath) !important;}.has-high-flight-gradient-background{background: var(--wp--preset--gradient--high-flight) !important;}
1261.has-teen-party-gradient-background{background: var(--wp--preset--gradient--teen-party) !important;}.has-fabled-sunset-gradient-background{background: var(--wp--preset--gradient--fabled-sunset) !important;}.has-arielle-smile-gradient-background{background: var(--wp--preset--gradient--arielle-smile) !important;}.has-itmeo-branding-gradient-background{background: var(--wp--preset--gradient--itmeo-branding) !important;}.has-deep-blue-gradient-background{background: var(--wp--preset--gradient--deep-blue) !important;}.has-strong-bliss-gradient-background{background: var(--wp--preset--gradient--strong-bliss) !important;}.has-sweet-period-gradient-background{background: var(--wp--preset--gradient--sweet-period) !important;}.has-purple-division-gradient-background{background: var(--wp--preset--gradient--purple-division) !important;}.has-cold-evening-gradient-background{background: var(--wp--preset--gradient--cold-evening) !important;}.has-mountain-rock-gradient-background{background: var(--wp--preset--gradient--mountain-rock) !important;}.has-desert-hump-gradient-background{background: var(--wp--preset--gradient--desert-hump) !important;}.has-ethernal-constance-gradient-background{background: var(--wp--preset--gradient--ethernal-constance) !important;}.has-happy-memories-gradient-background{background: var(--wp--preset--gradient--happy-memories) !important;}.has-grown-early-gradient-background{background: var(--wp--preset--gradient--grown-early) !important;}.has-morning-salad-gradient-background{background: var(--wp--preset--gradient--morning-salad) !important;}.has-night-call-gradient-background{background: var(--wp--preset--gradient--night-call) !important;}.has-mind-crawl-gradient-background{background: var(--wp--preset--gradient--mind-crawl) !important;}.has-angel-care-gradient-background{background: var(--wp--preset--gradient--angel-care) !important;}.has-juicy-cake-gradient-background{background: var(--wp--preset--gradient--juicy-cake) !important;}.has-rich-metal-gradient-background{background: var(--wp--preset--gradient--rich-metal) !important;}.has-mole-hall-gradient-background{background: var(--wp--preset--gradient--mole-hall) !important;}.has-cloudy-knoxville-gradient-background{background: var(--wp--preset--gradient--cloudy-knoxville) !important;}.has-soft-grass-gradient-background{background: var(--wp--preset--gradient--soft-grass) !important;}.has-saint-petersburg-gradient-background{background: var(--wp--preset--gradient--saint-petersburg) !important;}.has-everlasting-sky-gradient-background{background: var(--wp--preset--gradient--everlasting-sky) !important;}.has-kind-steel-gradient-background{background: var(--wp--preset--gradient--kind-steel) !important;}.has-over-sun-gradient-background{background: var(--wp--preset--gradient--over-sun) !important;}.has-premium-white-gradient-background{background: var(--wp--preset--gradient--premium-white) !important;}.has-clean-mirror-gradient-background{background: var(--wp--preset--gradient--clean-mirror) !important;}.has-wild-apple-gradient-background{background: var(--wp--preset--gradient--wild-apple) !important;}.has-snow-again-gradient-background{background: var(--wp--preset--gradient--snow-again) !important;}.has-confident-cloud-gradient-background{background: var(--wp--preset--gradient--confident-cloud) !important;}.has-glass-water-gradient-background{background: var(--wp--preset--gradient--glass-water) !important;}.has-perfect-white-gradient-background{background: var(--wp--preset--gradient--perfect-white) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;}.has-xx-large-font-size{font-size: var(--wp--preset--font-size--xx-large) !important;} 1262/*# sourceURL=global-styles-inline-css */ 1263</style> 1264<link rel='preload' as="style" onload="this.onload=null;this.rel='stylesheet'" data-wpacu-preload-it-async='1' id='wpacu-combined-google-fonts-css-async-preload' href='https://fonts.googleapis.com/css?family=Alata&display=swap' type='text/css' media='all' />
1265<script id="wpacu-preload-async-css-fallback"> 1266/*! LoadCSS. [c]2020 Filament Group, Inc. MIT License */ 1267/* This file is meant as a standalone workflow for 1268- testing support for link[rel=preload] 1269- enabling async CSS loading in browsers that do not support rel=preload 1270- applying rel preload css once loaded, whether supported or not. 1271*/ 1272(function(w){"use strict";var wpacuLoadCSS=function(href,before,media,attributes){var doc=w.document;var ss=doc.createElement('link');var ref;if(before){ref=before}else{var refs=(doc.body||doc.getElementsByTagName('head')[0]).childNodes;ref=refs[refs.length-1]} 1273var sheets=doc.styleSheets;if(attributes){for(var attributeName in attributes){if(attributes.hasOwnProperty(attributeName)){ss.setAttribute(attributeName,attributes[attributeName])}}} 1274ss.rel="stylesheet";ss.href=href;ss.media="only x";function ready(cb){if(doc.body){return cb()} 1275setTimeout(function(){ready(cb)})} 1276ready(function(){ref.parentNode.insertBefore(ss,(before?ref:ref.nextSibling))});var onwpaculoadcssdefined=function(cb){var resolvedHref=ss.href;var i=sheets.length;while(i--){if(sheets[i].href===resolvedHref){return cb()}} 1277setTimeout(function(){onwpaculoadcssdefined(cb)})};function wpacuLoadCB(){if(ss.addEventListener){ss.removeEventListener("load",wpacuLoadCB)} 1278ss.media=media||"all"} 1279if(ss.addEventListener){ss.addEventListener("load",wpacuLoadCB)} 1280ss.onwpaculoadcssdefined=onwpaculoadcssdefined;onwpaculoadcssdefined(wpacuLoadCB);return ss};if(typeof exports!=="undefined"){exports.wpacuLoadCSS=wpacuLoadCSS}else{w.wpacuLoadCSS=wpacuLoadCSS}}(typeof global!=="undefined"?global:this)) 1281</script>
1281 1282</head> 1283 1284 1285<body class="wp-singular product-template-default single single-product postid-72384 wp-custom-logo wp-embed-responsive wp-theme-blocksy theme-blocksy jdmc-ai-dp-perso woocommerce woocommerce-page woocommerce-no-js metaslider-plugin woo-variation-swatches wvs-behavior-blur wvs-theme-blocksy wvs-show-label product_cat_accessoires product_cat_custom loggedout-product-class" data-link="type-2" data-prefix="product" data-header="type-1" data-footer="type-1" itemscope="itemscope" itemtype="https://schema.org/WebPage"> 1286 1287 1288<div class="xoo-wsc-markup xoo-wsc-align-right"> 1289 1290 <div class="xoo-wsc-modal"> 1291 1292 <div class="xoo-wsc-container"> 1293 1294<span class="xoo-wsc-loader"></span> 1295<span class="xoo-wsc-icon-spinner8 xoo-wsc-loader-icon"></span> </div> 1296 1297 <span class="xoo-wsc-opac"></span> 1298 1299 </div> 1300 1301 <div class="xoo-wsc-slider-modal"> 1302 1303 <div class="xoo-wsc-slider"> 1304 </div> 1305 1306 </div> 1307 1308 <div class="xoo-wsc-drawer-modal"> 1309 1310 <div class="xoo-wsc-drawer"> 1311 </div> 1312 1313 </div> 1314 1315</div><a class="skip-link screen-reader-text" href="#main">Passer au contenu</a><div class="ct-drawer-canvas" data-location="start"> 1316 <div id="search-modal" class="ct-panel" data-behaviour="modal" role="dialog" aria-label="Modale de recherche" inert> 1317 <div class="ct-panel-actions"> 1318 <button class="ct-toggle-close" data-type="type-1" aria-label="Fermer la modale de recherche"> 1319 <svg class="ct-icon" width="12" height="12" viewBox="0 0 15 15"><path d="M1 15a1 1 0 01-.71-.29 1 1 0 010-1.41l5.8-5.8-5.8-5.8A1 1 0 011.7.29l5.8 5.8 5.8-5.8a1 1 0 011.41 1.41l-5.8 5.8 5.8 5.8a1 1 0 01-1.41 1.41l-5.8-5.8-5.8 5.8A1 1 0 011 15z"/></svg> </button> 1320 </div> 1321 1322 <div class="ct-panel-content"> 1323 1324 1325<form role="search" method="get" class="ct-search-form" action="https://diamant-strass-dmc.com/" aria-haspopup="listbox" data-live-results="thumbs"> 1326 1327 <input 1328 type="search" class="modal-field" placeholder="Rechercher" 1329 value="" 1330 name="s" 1331 autocomplete="off" 1332 title="Rechercherâ¦" 1333 aria-label="Rechercherâ¦" 1334 > 1335 1336 <div class="ct-search-form-controls"> 1337 1338 <button type="submit" class="wp-element-button" data-button="icon" aria-label="Bouton de recherche"> 1339 <svg class="ct-icon ct-search-button-content" aria-hidden="true" width="15" height="15" viewBox="0 0 15 15"><path d="M14.8,13.7L12,11c0.9-1.2,1.5-2.6,1.5-4.2c0-3.7-3-6.8-6.8-6.8S0,3,0,6.8s3,6.8,6.8,6.8c1.6,0,3.1-0.6,4.2-1.5l2.8,2.8c0.1,0.1,0.3,0.2,0.5,0.2s0.4-0.1,0.5-0.2C15.1,14.5,15.1,14,14.8,13.7z M1.5,6.8c0-2.9,2.4-5.2,5.2-5.2S12,3.9,12,6.8S9.6,12,6.8,12S1.5,9.6,1.5,6.8z"/></svg> 1340 <span class="ct-ajax-loader"> 1341 <svg viewBox="0 0 24 24"> 1342 <circle cx="12" cy="12" r="10" opacity="0.2" fill="none" stroke="currentColor" stroke-miterlimit="10" stroke-width="2"/> 1343 1344 <path d="m12,2c5.52,0,10,4.48,10,10" fill="none" stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2"> 1345 <animateTransform 1346 attributeName="transform" 1347 attributeType="XML" 1348 type="rotate" 1349 dur="0.6s" 1350 from="0 12 12" 1351 to="360 12 12" 1352 repeatCount="indefinite" 1353 /> 1354 </path> 1355 </svg> 1356 </span> 1357 </button> 1358 1359 1360 1361 1362 1363 </div> 1364 1365 <div class="screen-reader-text" aria-live="polite" role="status"> 1366 Aucun résultat </div> 1367 1368</form> 1369 1370 1371 </div> 1372 </div> 1373 1374 <div id="offcanvas" class="ct-panel ct-header" data-behaviour="right-side" role="dialog" aria-label="Modale hors champ" inert=""><div class="ct-panel-inner"> 1375 <div class="ct-panel-actions"> 1376 1377 1378 <button class="ct-toggle-close" data-type="type-1" aria-label="Fermer le tiroir"> 1379 <svg class="ct-icon" width="12" height="12" viewBox="0 0 15 15"><path d="M1 15a1 1 0 01-.71-.29 1 1 0 010-1.41l5.8-5.8-5.8-5.8A1 1 0 011.7.29l5.8 5.8 5.8-5.8a1 1 0 011.41 1.41l-5.8 5.8 5.8 5.8a1 1 0 01-1.41 1.41l-5.8-5.8-5.8 5.8A1 1 0 011 15z"/></svg> 1380 </button> 1381 1382 </div> 1383 <div class="ct-panel-content" data-device="desktop"><div class="ct-panel-content-inner"></div></div><div class="ct-panel-content" data-device="mobile"><div class="ct-panel-content-inner"> 1384<nav 1385 class="mobile-menu menu-container has-submenu" 1386 data-id="mobile-menu" data-interaction="click" data-toggle-type="type-1" data-submenu-dots="yes" aria-label="menu mobile"> 1387 1388 <ul id="menu-menu-mobile" class=""><li id="menu-item-58576" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-58576"><a href="/mon-compte/" class="ct-menu-link">ðââï¸ Mon compte</a></li> 1389<li id="menu-item-58469" class="menu-item menu-item-type-custom menu-item-object-custom current-menu-item menu-item-58469"><a href="/perles-broderie/custom-diamond-painting-personnalise-photo/" aria-current="page" class="ct-menu-link">ð¼ï¸ Ma toile</a></li> 1390<li id="menu-item-66431" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-66431"><span class="ct-sub-menu-parent"><a href="#" class="ct-menu-link">ð Diamants et accessoires</a><button class="ct-toggle-dropdown-mobile" aria-label="Déplier le menu déroulant" aria-haspopup="true" aria-expanded="false"><svg class="ct-icon toggle-icon-1" width="15" height="15" viewBox="0 0 15 15" aria-hidden="true"><path d="M3.9,5.1l3.6,3.6l3.6-3.6l1.4,0.7l-5,5l-5-5L3.9,5.1z"/></svg></button></span> 1391<ul class="sub-menu"> 1392 <li id="menu-item-44905" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-44905"><a href="/" class="ct-menu-link">ð Diamants</a></li> 1393 <li id="menu-item-44906" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-44906"><a href="/couleur/diamants-ab/?filters=filtres%5B7162-7166-7168%5D" class="ct-menu-link">⨠Strass AB</a></li> 1394 <li id="menu-item-44907" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-44907"><a href="/couleur/accessoires/" class="ct-menu-link">ðï¸ Accessoires</a></li> 1395 <li id="menu-item-44908" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-44908"><a href="/couleur/porte-cles-diamond-painting/" class="ct-menu-link">ðï¸ Porte-clés</a></li> 1396</ul> 1397</li> 1398<li id="menu-item-66430" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-66430"><span class="ct-sub-menu-parent"><a href="#" class="ct-menu-link">ðï¸ Outils couleurs</a><button class="ct-toggle-dropdown-mobile" aria-label="Déplier le menu déroulant" aria-haspopup="true" aria-expanded="false"><svg class="ct-icon toggle-icon-1" width="15" height="15" viewBox="0 0 15 15" aria-hidden="true"><path d="M3.9,5.1l3.6,3.6l3.6-3.6l1.4,0.7l-5,5l-5-5L3.9,5.1z"/></svg></button></span> 1399<ul class="sub-menu"> 1400 <li id="menu-item-6815" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-6815"><a href="https://diamant-strass-dmc.com/code-couleur-nuancier-dmc/" title="Nuancier DMC broderie diamant" class="ct-menu-link"></a></li> 1401 <li id="menu-item-66432" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-66432"><a href="/couleur/diamond-painting-documents-pdf-telecharger-imprimer/" class="ct-menu-link">ð Documents</a></li> 1402 <li id="menu-item-58470" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-58470"><a href="https://diamant-strass-dmc.com/diamants-par-couleur/" class="ct-menu-link">ð Couleurs</a></li> 1403 <li id="menu-item-66429" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-66429"><a href="/diamond-painting-couleurs-dmc-proches-remplacement/" class="ct-menu-link">ð Couleurs proches</a></li> 1404</ul> 1405</li> 1406<li id="menu-item-76031" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-76031"><span class="ct-sub-menu-parent"><a href="#" class="ct-menu-link">âï¸ Mentions légales / CGV</a><button class="ct-toggle-dropdown-mobile" aria-label="Déplier le menu déroulant" aria-haspopup="true" aria-expanded="false"><svg class="ct-icon toggle-icon-1" width="15" height="15" viewBox="0 0 15 15" aria-hidden="true"><path d="M3.9,5.1l3.6,3.6l3.6-3.6l1.4,0.7l-5,5l-5-5L3.9,5.1z"/></svg></button></span> 1407<ul class="sub-menu"> 1408 <li id="menu-item-76035" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-76035"><a href="https://diamant-strass-dmc.com/mentions-legales/" class="ct-menu-link">Mentions légales</a></li> 1409 <li id="menu-item-76033" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-76033"><a href="https://diamant-strass-dmc.com/cgv/" class="ct-menu-link">Conditions générales de vente</a></li> 1410 <li id="menu-item-76032" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-privacy-policy menu-item-76032"><a rel="privacy-policy" href="https://diamant-strass-dmc.com/politique-confidentialite/" class="ct-menu-link">Politique de confidentialité</a></li> 1411 <li id="menu-item-76034" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-76034"><a href="https://diamant-strass-dmc.com/livraison-retour-echange/" class="ct-menu-link">Livraison, retours et échanges</a></li> 1412</ul> 1413</li> 1414<li id="menu-item-58573" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-58573"><a href="/mon-compte/" class="ct-menu-link">ðââï¸ Connexion / Inscription</a></li> 1415<li id="menu-item-6807" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-6807"><a href="https://diamant-strass-dmc.com/contact/" title="Contacter Diamant Strass DMC" class="ct-menu-link">ð§ Nous contacter</a></li> 1416<li id="menu-item-47271" class="menu-item menu-item-type-gs_sim menu-item-object-gs_sim menu-item-47271">[widget id="wmc_widget-4"]</li> 1417<li id="menu-item-wpml-ls-508-fr" class="menu-item wpml-ls-slot-508 wpml-ls-item wpml-ls-item-fr wpml-ls-current-language wpml-ls-menu-item menu-item-type-wpml_ls_menu_item menu-item-object-wpml_ls_menu_item menu-item-has-children menu-item-wpml-ls-508-fr"><span class="ct-sub-menu-parent"><a href="https://diamant-strass-dmc.com/perles-broderie/custom-diamond-painting-personnalise-photo/" aria-current="page" class="ct-menu-link" aria-expanded="false" aria-controls="wpml-ls-submenu-wpml-ls-508-fr"><span class="wpml-ls-display">Français</span></a><button class="ct-toggle-dropdown-mobile" aria-label="Déplier le menu déroulant" aria-haspopup="true" aria-expanded="false"><svg class="ct-icon toggle-icon-1" width="15" height="15" viewBox="0 0 15 15" aria-hidden="true"><path d="M3.9,5.1l3.6,3.6l3.6-3.6l1.4,0.7l-5,5l-5-5L3.9,5.1z"/></svg></button></span> 1418<ul class="sub-menu"> 1419 <li id="menu-item-wpml-ls-508-nl" class="menu-item wpml-ls-slot-508 wpml-ls-item wpml-ls-item-nl wpml-ls-menu-item wpml-ls-first-item menu-item-type-wpml_ls_menu_item menu-item-object-wpml_ls_menu_item menu-item-wpml-ls-508-nl"><a href="https://diamant-strass-dmc.com/nl/perles-broderie/custom-diamond-painting-personnalise-photo/" title="Passer à Néerlandais" class="ct-menu-link" aria-label="Passer à Néerlandais"><span class="wpml-ls-display">Néerlandais</span></a></li> 1420 <li id="menu-item-wpml-ls-508-en" class="menu-item wpml-ls-slot-508 wpml-ls-item wpml-ls-item-en wpml-ls-menu-item menu-item-type-wpml_ls_menu_item menu-item-object-wpml_ls_menu_item menu-item-wpml-ls-508-en"><a href="https://diamant-strass-dmc.com/en/perles-broderie/custom-diamond-painting-personnalise-photo/" title="Passer à Anglais" class="ct-menu-link" aria-label="Passer à Anglais"><span class="wpml-ls-display">Anglais</span></a></li> 1421 <li id="menu-item-wpml-ls-508-de" class="menu-item wpml-ls-slot-508 wpml-ls-item wpml-ls-item-de wpml-ls-menu-item menu-item-type-wpml_ls_menu_item menu-item-object-wpml_ls_menu_item menu-item-wpml-ls-508-de"><a href="https://diamant-strass-dmc.com/de/perles-broderie/custom-diamond-painting-personnalise-photo/" title="Passer à Allemand" class="ct-menu-link" aria-label="Passer à Allemand"><span class="wpml-ls-display">Allemand</span></a></li> 1422 <li id="menu-item-wpml-ls-508-it" class="menu-item wpml-ls-slot-508 wpml-ls-item wpml-ls-item-it wpml-ls-menu-item menu-item-type-wpml_ls_menu_item menu-item-object-wpml_ls_menu_item menu-item-wpml-ls-508-it"><a href="https://diamant-strass-dmc.com/it/perles-broderie/custom-diamond-painting-personnalise-photo/" title="Passer à Ital
1422ien" class="ct-menu-link" aria-label="Passer à Italien"><span class="wpml-ls-display">Italien</span></a></li> 1423 <li id="menu-item-wpml-ls-508-pt-pt" class="menu-item wpml-ls-slot-508 wpml-ls-item wpml-ls-item-pt-pt wpml-ls-menu-item menu-item-type-wpml_ls_menu_item menu-item-object-wpml_ls_menu_item menu-item-wpml-ls-508-pt-pt"><a href="https://diamant-strass-dmc.com/pt-pt/perles-broderie/custom-diamond-painting-personnalise-photo/" title="Passer à Portugais - du Portugal" class="ct-menu-link" aria-label="Passer à Portugais - du Portugal"><span class="wpml-ls-display">Portugais – du Portugal</span></a></li> 1424 <li id="menu-item-wpml-ls-508-es" class="menu-item wpml-ls-slot-508 wpml-ls-item wpml-ls-item-es wpml-ls-menu-item menu-item-type-wpml_ls_menu_item menu-item-object-wpml_ls_menu_item menu-item-wpml-ls-508-es"><a href="https://diamant-strass-dmc.com/es/perles-broderie/custom-diamond-painting-personnalise-photo/" title="Passer à Espagnol" class="ct-menu-link" aria-label="Passer à Espagnol"><span class="wpml-ls-display">Espagnol</span></a></li> 1425 <li id="menu-item-wpml-ls-508-bg" class="menu-item wpml-ls-slot-508 wpml-ls-item wpml-ls-item-bg wpml-ls-menu-item menu-item-type-wpml_ls_menu_item menu-item-object-wpml_ls_menu_item menu-item-wpml-ls-508-bg"><a href="https://diamant-strass-dmc.com/bg/perles-broderie/custom-diamond-painting-personnalise-photo/" title="Passer à Bulgare" class="ct-menu-link" aria-label="Passer à Bulgare"><span class="wpml-ls-display">Bulgare</span></a></li> 1426 <li id="menu-item-wpml-ls-508-da" class="menu-item wpml-ls-slot-508 wpml-ls-item wpml-ls-item-da wpml-ls-menu-item menu-item-type-wpml_ls_menu_item menu-item-object-wpml_ls_menu_item menu-item-wpml-ls-508-da"><a href="https://diamant-strass-dmc.com/da/perles-broderie/custom-diamond-painting-personnalise-photo/" title="Passer à Danois" class="ct-menu-link" aria-label="Passer à Danois"><span class="wpml-ls-display">Danois</span></a></li> 1427 <li id="menu-item-wpml-ls-508-el" class="menu-item wpml-ls-slot-508 wpml-ls-item wpml-ls-item-el wpml-ls-menu-item menu-item-type-wpml_ls_menu_item menu-item-object-wpml_ls_menu_item menu-item-wpml-ls-508-el"><a href="https://diamant-strass-dmc.com/el/perles-broderie/custom-diamond-painting-personnalise-photo/" title="Passer à Grec moderne" class="ct-menu-link" aria-label="Passer à Grec moderne"><span class="wpml-ls-display">Grec moderne</span></a></li> 1428 <li id="menu-item-wpml-ls-508-hu" class="menu-item wpml-ls-slot-508 wpml-ls-item wpml-ls-item-hu wpml-ls-menu-item menu-item-type-wpml_ls_menu_item menu-item-object-wpml_ls_menu_item menu-item-wpml-ls-508-hu"><a href="https://diamant-strass-dmc.com/hu/perles-broderie/custom-diamond-painting-personnalise-photo/" title="Passer à Hongrois" class="ct-menu-link" aria-label="Passer à Hongrois"><span class="wpml-ls-display">Hongrois</span></a></li> 1429 <li id="menu-item-wpml-ls-508-no" class="menu-item wpml-ls-slot-508 wpml-ls-item wpml-ls-item-no wpml-ls-menu-item menu-item-type-wpml_ls_menu_item menu-item-object-wpml_ls_menu_item menu-item-wpml-ls-508-no"><a href="https://diamant-strass-dmc.com/no/perles-broderie/custom-diamond-painting-personnalise-photo/" title="Passer à Norvégien BokmÃ¥l" class="ct-menu-link" aria-label="Passer à Norvégien BokmÃ¥l"><span class="wpml-ls-display">Norvégien BokmÃ¥l</span></a></li> 1430 <li id="menu-item-wpml-ls-508-pl" class="menu-item wpml-ls-slot-508 wpml-ls-item wpml-ls-item-pl wpml-ls-menu-item menu-item-type-wpml_ls_menu_item menu-item-object-wpml_ls_menu_item menu-item-wpml-ls-508-pl"><a href="https://diamant-strass-dmc.com/pl/perles-broderie/custom-diamond-painting-personnalise-photo/" title="Passer à Polonais" class="ct-menu-link" aria-label="Passer à Polonais"><span class="wpml-ls-display">Polonais</span></a></li> 1431 <li id="menu-item-wpml-ls-508-ro" class="menu-item wpml-ls-slot-508 wpml-ls-item wpml-ls-item-ro wpml-ls-menu-item menu-item-type-wpml_ls_menu_item menu-item-object-wpml_ls_menu_item menu-item-wpml-ls-508-ro"><a href="https://diamant-strass-dmc.com/ro/perles-broderie/custom-diamond-painting-personnalise-photo/" title="Passer à Roumain" class="ct-menu-link" aria-label="Passer à Roumain"><span class="wpml-ls-display">Roumain</span></a></li> 1432 <li id="menu-item-wpml-ls-508-sv" class="menu-item wpml-ls-slot-508 wpml-ls-item wpml-ls-item-sv wpml-ls-menu-item wpml-ls-last-item menu-item-type-wpml_ls_menu_item menu-item-object-wpml_ls_menu_item menu-item-wpml-ls-508-sv"><a href="https://diamant-strass-dmc.com/sv/perles-broderie/custom-diamond-painting-personnalise-photo/" title="Passer à Suédois" class="ct-menu-link" aria-label="Passer à Suédois"><span class="wpml-ls-display">Suédois</span></a></li> 1433</ul> 1434</li> 1435</ul></nav> 1436 1437</div></div></div></div></div> 1438<div id="main-container"> 1439 <header id="header" class="ct-header" data-id="type-1" itemscope="" itemtype="https://schema.org/WPHeader"><div data-device="desktop"><div data-row="middle" data-column-set="2"><div class="ct-container"><div data-column="start" data-placements="1"><div data-items="primary"> 1440<div class="site-branding" 1441 data-id="logo" data-logo="top" itemscope="itemscope" itemtype="https://schema.org/Organization"> 1442 1443 <a href="https://diamant-strass-dmc.com/" class="site-logo-container" rel="home" itemprop="url" ><picture><source srcset="https://diamant-strass-dmc.com/wp-content/uploads/2026/06/logov2-diamantstrassdmc-120.webp 120w,https://diamant-strass-dmc.com/wp-content/uploads/2026/06/logov2-diamantstrassdmc-120-100x100.webp 100w,https://diamant-strass-dmc.com/wp-content/uploads/2026/06/logov2-diamantstrassdmc-120-50x50.webp 50w" sizes="(max-width: 120px) 100v
1443w, 120px" type="image/webp"><img src="https://diamant-strass-dmc.com/wp-content/uploads/2026/06/logov2-diamantstrassdmc-120.webp" height="120" width="120" srcset="https://diamant-strass-dmc.com/wp-content/uploads/2026/06/logov2-diamantstrassdmc-120.webp 120w, https://diamant-strass-dmc.com/wp-content/uploads/2026/06/logov2-diamantstrassdmc-120-100x100.webp 100w, https://diamant-strass-dmc.com/wp-content/uploads/2026/06/logov2-diamantstrassdmc-120-50x50.webp 50w" sizes="(max-width: 120px) 100vw, 120px" class="default-logo sp-no-webp" alt="Diamant Strass DMC" decoding="async" data-xoowscfly="fly" > </picture></a> 1444 <div class="site-title-container"> 1445 <span class="site-title " itemprop="name"><a href="https://diamant-strass-dmc.com/" rel="home" itemprop="url"> </a></span> </div> 1446 </div> 1447 1448</div></div><div data-column="end" data-placements="1"><div data-items="primary"> 1449<nav 1450 id="header-menu-1" 1451 class="header-menu-1 menu-container" 1452 data-id="menu" data-interaction="hover" data-menu="type-1" 1453 data-dropdown="type-1:simple" data-responsive="no" itemscope="" itemtype="https://schema.org/SiteNavigationElement" aria-label="Header"> 1454 1455 <ul id="menu-header" class="menu"><li id="menu-item-123642" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-home menu-item-123642"><a href="https://diamant-strass-dmc.com/" class="ct-menu-link">ð Diamants</a></li> 1456<li id="menu-item-123643" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-123643"><a href="https://diamant-strass-dmc.com/couleur/diamants-ab/?filters=filtres%5B7162-7166-7168%5D" class="ct-menu-link">⨠Strass AB</a></li> 1457<li id="menu-item-123746" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-123746"><a href="/couleur/accessoires/" class="ct-menu-link">ðï¸ Accessoires</a></li> 1458<li id="menu-item-123644" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-123644"><a href="https://diamant-strass-dmc.com/couleur/diamond-painting-documents-pdf-telecharger-imprimer/" class="ct-menu-link">ð Documents</a></li> 1459<li id="menu-item-123645" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-123645"><a href="https://diamant-strass-dmc.com/mon-compte/" class="ct-menu-link">ðââï¸ Mon compte</a></li> 1460</ul></nav> 1461 1462</div></div></div></div><div data-row="bottom" data-column-set="1"><div class="ct-container"><div data-column="end" data-placements="1"><div data-items="primary"> 1463<div 1464 class="ct-header-text " 1465 data-id="text"> 1466 <div class="entry-content is-layout-flow"> 1467 <p><div class="wpml-header-switcher"> 1468<div role="navigation" aria-label="Sélecteur de langue" class="wpml-ls-statics-shortcode_actions wpml-ls wpml-ls-legacy-dropdown-click js-wpml-ls-legacy-dropdown-click"> 1469 <ul> 1470 1471 <li class="wpml-ls-slot-shortcode_actions wpml-ls-item wpml-ls-item-fr wpml-ls-current-language wpml-ls-item-legacy-dropdown-click"> 1472 1473 <a href="#" hreflang="fr" lang="fr" class="js-wpml-ls-item-toggle wpml-ls-item-toggle" aria-current="page" aria-expanded="false" aria-controls="wpml-ls-submenu-click-default" aria-haspopup="true" aria-label="Français â Sélecteur de langue, cliquez pour ouvrir puis appuyez sur tabulation pour naviguer" tabindex="0" role="button" title="Passer à Français"> 1474 <img 1475 class="wpml-ls-flag" 1476 src="https://diamant-strass-dmc.com/wp-content/plugins/sitepress-multilingual-cms/res/flags/fr.svg" 1477 alt="" 1478 loading="lazy" 1479 width=18 1480 height=12 1481 /><span class="wpml-ls-native">Français</span></a> 1482 1483 <ul id="wpml-ls-submenu-click-default" class="js-wpml-ls-sub-menu wpml-ls-sub-menu"> 1484 1485 <li class="wpml-ls-slot-shortcode_actions wpml-ls-item wpml-ls-item-nl wpml-ls-first-item"> 1486 <a href="https://diamant-strass-dmc.com/nl/perles-broderie/custom-diamond-painting-personnalise-photo/" hreflang="nl" lang="nl" class="wpml-ls-link" aria-label="Passer à Nederlands" title="Passer à Nederlands"> 1487 <img 1488 class="wpml-ls-flag" 1489 src="https://diamant-strass-dmc.com/wp-content/plugins/sitepress-multilingual-cms/res/flags/nl.svg" 1490 alt="" 1491 loading="lazy" 1492 width=18 1493 height=12 1494 /><span class="wpml-ls-native">Nederlands</span></a> 1495 </li> 1496 1497 1498 <li class="wpml-ls-slot-shortcode_actions wpml-ls-item wpml-ls-item-en"> 1499 <a href="https://diamant-strass-dmc.com/en/perles-broderie/custom-diamond-painting-personnalise-photo/" hreflang="en" lang="en" class="wpml-ls-l
1499ink" aria-label="Passer à English" title="Passer à English"> 1500 <img 1501 class="wpml-ls-flag" 1502 src="https://diamant-strass-dmc.com/wp-content/plugins/sitepress-multilingual-cms/res/flags/en.svg" 1503 alt="" 1504 loading="lazy" 1505 width=18 1506 height=12 1507 /><span class="wpml-ls-native">English</span></a> 1508 </li> 1509 1510 1511 <li class="wpml-ls-slot-shortcode_actions wpml-ls-item wpml-ls-item-de"> 1512 <a href="https://diamant-strass-dmc.com/de/perles-broderie/custom-diamond-painting-personnalise-photo/" hreflang="de" lang="de" class="wpml-ls-link" aria-label="Passer à Deutsch" title="Passer à Deutsch"> 1513 <img 1514 class="wpml-ls-flag" 1515 src="https://diamant-strass-dmc.com/wp-content/plugins/sitepress-multilingual-cms/res/flags/de.svg" 1516 alt="" 1517 loading="lazy" 1518 width=18 1519 height=12 1520 /><span class="wpml-ls-native">Deutsch</span></a> 1521 </li> 1522 1523 1524 <li class="wpml-ls-slot-shortcode_actions wpml-ls-item wpml-ls-item-it"> 1525 <a href="https://diamant-strass-dmc.com/it/perles-broderie/custom-diamond-painting-personnalise-photo/" hreflang="it" lang="it" class="wpml-ls-link" aria-label="Passer à Ital
1525iano" title="Passer à Italiano"> 1526 <img 1527 class="wpml-ls-flag" 1528 src="https://diamant-strass-dmc.com/wp-content/plugins/sitepress-multilingual-cms/res/flags/it.svg" 1529 alt="" 1530 loading="lazy" 1531 width=18 1532 height=12 1533 /><span class="wpml-ls-native">Italiano</span></a> 1534 </li> 1535 1536 1537 <li class="wpml-ls-slot-shortcode_actions wpml-ls-item wpml-ls-item-pt-pt"> 1538 <a href="https://diamant-strass-dmc.com/pt-pt/perles-broderie/custom-diamond-painting-personnalise-photo/" hreflang="pt-pt" lang="pt-pt" class="wpml-ls-link" aria-label="Passer à Português" title="Passer à Português"> 1539 <img 1540 class="wpml-ls-flag" 1541 src="https://diamant-strass-dmc.com/wp-content/plugins/sitepress-multilingual-cms/res/flags/pt-pt.svg" 1542 alt="" 1543 loading="lazy" 1544 width=18 1545 height=12 1546 /><span class="wpml-ls-native">Português</span></a> 1547 </li> 1548 1549 1550 <li class="wpml-ls-slot-shortcode_actions wpml-ls-item wpml-ls-item-es"> 1551 <a href="https://diamant-strass-dmc.com/es/perles-broderie/custom-diamond-painting-personnalise-photo/" hreflang="es" lang="es" class="wpml-ls-link" aria-label="Passer à Español" title="Passer à Español"> 1552 <img 1553 class="wpml-ls-flag" 1554 src="https://diamant-strass-dmc.com/wp-content/plugins/sitepress-multilingual-cms/res/flags/es.svg" 1555 alt="" 1556 loading="lazy" 1557 width=18 1558 height=12 1559 /><span class="wpml-ls-native">Español</span></a> 1560 </li> 1561 1562 1563 <li class="wpml-ls-slot-shortcode_actions wpml-ls-item wpml-ls-item-bg"> 1564 <a href="https://diamant-strass-dmc.com/bg/perles-broderie/custom-diamond-painting-personnalise-photo/" hreflang="bg" lang="bg" class="wpml-ls-link" aria-label="Passer à ÐÑлгаÑÑки" title="Passer à ÐÑлгаÑÑки"> 1565 <img 1566 class="wpml-ls-flag" 1567 src="https://diamant-strass-dmc.com/wp-content/plugins/sitepress-multilingual-cms/res/flags/bg.svg" 1568 alt="" 1569 loading="lazy" 1570 width=18 1571 height=12 1572 /><span class="wpml-ls-native">ÐÑлгаÑÑки</span></a> 1573 </li> 1574 1575 1576 <li class="wpml-ls-slot-shortcode_actions wpml-ls-item wpml-ls-item-da"> 1577 <a href="https://diamant-strass-dmc.com/da/perles-broderie/custom-diamond-painting-personnalise-photo/" hreflang="da" lang="da" class="wpml-ls-link" aria-label="Passer à Dansk" title="Passer à Dansk"> 1578 <img 1579 class="wpml-ls-flag" 1580 src="https://diamant-strass-dmc.com/wp-content/plugins/sitepress-multilingual-cms/res/flags/da.svg" 1581 alt="" 1582 loading="lazy" 1583 width=18 1584 height=12 1585 /><span class="wpml-ls-native">Dansk</span></a> 1586 </li> 1587 1588 1589 <li class="wpml-ls-slot-shortcode_actions wpml-ls-item wpml-ls-item-el"> 1590 <a href="https://diamant-strass-dmc.com/el/perles-broderie/custom-diamond-painting-personnalise-photo/" hreflang="el" lang="el" class="wpml-ls-link" aria-label="Passer à Îλληνικα" title="Passer à Îλληνικα"> 1591 <img 1592 class="wpml-ls-flag" 1593 src="https://diamant-strass-dmc.com/wp-content/plugins/sitepress-multilingual-cms/res/flags/el.svg" 1594 alt="" 1595 loading="lazy" 1596 width=18 1597 height=12 1598 /><span class="wpml-ls-native">Îλληνικα</span></a> 1599 </li> 1600 1601 1602 <li class="wpml-ls-slot-shortcode_actions wpml-ls-item wpml-ls-item-hu"> 1603 <a href="https://diamant-strass-dmc.com/hu/perles-broderie/custom-diamond-painting-personnalise-photo/" hreflang="hu" lang="hu" class="wpml-ls-link" aria-label="Passer à Magyar" title="Passer à Magyar"> 1604 <img 1605 class="wpml-ls-flag" 1606 src="https://diamant-strass-dmc.com/wp-content/plugins/sitepress-multilingual-cms/res/flags/hu.svg" 1607 alt="" 1608 loading="lazy" 1609 width=18 1610 height=12 1611 /><span class="wpml-ls-native">Magyar</span></a> 1612 </li> 1613 1614 1615 <li class="wpml-ls-slot-shortcode_actions wpml-ls-item wpml-ls-item-no"> 1616 <a href="https://diamant-strass-dmc.com/no/perles-broderie/custom-diamond-painting-personnalise-photo/" hreflang="no" lang="no" class="wpml-ls-l
1616ink" aria-label="Passer à Norsk bokmÃ¥l" title="Passer à Norsk bokmÃ¥l"> 1617 <img 1618 class="wpml-ls-flag" 1619 src="https://diamant-strass-dmc.com/wp-content/plugins/sitepress-multilingual-cms/res/flags/no.svg" 1620 alt="" 1621 loading="lazy" 1622 width=18 1623 height=12 1624 /><span class="wpml-ls-native">Norsk bokmÃ¥l</span></a> 1625 </li> 1626 1627 1628 <li class="wpml-ls-slot-shortcode_actions wpml-ls-item wpml-ls-item-pl"> 1629 <a href="https://diamant-strass-dmc.com/pl/perles-broderie/custom-diamond-painting-personnalise-photo/" hreflang="pl" lang="pl" class="wpml-ls-link" aria-label="Passer à polski" title="Passer à polski"> 1630 <img 1631 class="wpml-ls-flag" 1632 src="https://diamant-strass-dmc.com/wp-content/plugins/sitepress-multilingual-cms/res/flags/pl.svg" 1633 alt="" 1634 loading="lazy" 1635 width=18 1636 height=12 1637 /><span class="wpml-ls-native">polski</span></a> 1638 </li> 1639 1640 1641 <li class="wpml-ls-slot-shortcode_actions wpml-ls-item wpml-ls-item-ro"> 1642 <a href="https://diamant-strass-dmc.com/ro/perles-broderie/custom-diamond-painting-personnalise-photo/" hreflang="ro" lang="ro" class="wpml-ls-link" aria-label="Passer à RomânÄ" title="Passer à RomânÄ"> 1643 <img 1644 class="wpml-ls-flag" 1645 src="https://diamant-strass-dmc.com/wp-content/plugins/sitepress-multilingual-cms/res/flags/ro.svg" 1646 alt="" 1647 loading="lazy" 1648 width=18 1649 height=12 1650 /><span class="wpml-ls-native">RomânÄ</span></a> 1651 </li> 1652 1653 1654 <li class="wpml-ls-slot-shortcode_actions wpml-ls-item wpml-ls-item-sv wpml-ls-last-item"> 1655 <a href="https://diamant-strass-dmc.com/sv/perles-broderie/custom-diamond-painting-personnalise-photo/" hreflang="sv" lang="sv" class="wpml-ls-link" aria-label="Passer à Svenska" title="Passer à Svenska"> 1656 <img 1657 class="wpml-ls-flag" 1658 src="https://diamant-strass-dmc.com/wp-content/plugins/sitepress-multilingual-cms/res/flags/sv.svg" 1659 alt="" 1660 loading="lazy" 1661 width=18 1662 height=12 1663 /><span class="wpml-ls-native">Svenska</span></a> 1664 </li> 1665 1666 </ul> 1667 1668 </li> 1669 1670 </ul> 1671</div> 1672</div></p> </div> 1673</div> 1674 1675<button 1676 class="ct-header-search ct-toggle " 1677 data-toggle-panel="#search-modal" 1678 aria-controls="search-modal" 1679 aria-label="Rechercher" 1680 data-label="left" 1681 data-id="search"> 1682 1683 <span class="ct-label ct-hidden-sm ct-hidden-lg" aria-hidden="true">Rechercher</span> 1684 1685 <svg class="ct-icon" aria-hidden="true" width="15" height="15" viewBox="0 0 15 15"><path d="M14.8,13.7L12,11c0.9-1.2,1.5-2.6,1.5-4.2c0-3.7-3-6.8-6.8-6.8S0,3,0,6.8s3,6.8,6.8,6.8c1.6,0,3.1-0.6,4.2-1.5l2.8,2.8c0.1,0.1,0.3,0.2,0.5,0.2s0.4-0.1,0.5-0.2C15.1,14.5,15.1,14,14.8,13.7z M1.5,6.8c0-2.9,2.4-5.2,5.2-5.2S12,3.9,12,6.8S9.6,12,6.8,12S1.5,9.6,1.5,6.8z"/></svg></button> 1686</div></div></div></div></div><div data-device="mobile"><div data-row="middle" data-column-set="2"><div class="ct-container"><div data-column="start" data-placements="1"><div data-items="primary"> 1687<div class="site-branding" 1688 data-id="logo" data-logo="top" > 1689 1690 <a href="https://diamant-strass-dmc.com/" class="site-logo-container" rel="home" itemprop="url" ><picture><source srcset="https://diamant-strass-dmc.com/wp-content/uploads/2026/06/logov2-diamantstrassdmc-70.webp 70w,https://diamant-strass-dmc.com/wp-content/uploads/2026/06/logov2-diamantstrassdmc-70-50x50.webp 50w" sizes="(max-width: 70px) 100v
1690w, 70px" type="image/webp"><img src="https://diamant-strass-dmc.com/wp-content/uploads/2026/06/logov2-diamantstrassdmc-70.webp" height="70" width="70" srcset="https://diamant-strass-dmc.com/wp-content/uploads/2026/06/logov2-diamantstrassdmc-70.webp 70w, https://diamant-strass-dmc.com/wp-content/uploads/2026/06/logov2-diamantstrassdmc-70-50x50.webp 50w" sizes="(max-width: 70px) 100vw, 70px" class="default-logo sp-no-webp" alt="Diamant Strass DMC" decoding="async" data-xoowscfly="fly" > </picture></a> 1691 <div class="site-title-container"> 1692 <span class="site-title "><a href="https://diamant-strass-dmc.com/" rel="home" > </a></span> </div> 1693 </div> 1694 1695</div></div><div data-column="end" data-placements="1"><div data-items="primary"> 1696<button 1697 class="ct-header-trigger ct-toggle " 1698 data-toggle-panel="#offcanvas" 1699 aria-controls="offcanvas" 1700 data-design="simple" 1701 data-label="right" 1702 aria-label="Menu" 1703 data-id="trigger"> 1704 1705 <span class="ct-label ct-hidden-sm ct-hidden-md ct-hidden-lg" aria-hidden="true">Menu</span> 1706 1707 <svg class="ct-icon" width="18" height="14" viewBox="0 0 18 14" data-type="type-1" aria-hidden="true"> 1708 <rect y="0.00" width="18" height="1.7" rx="1"/> 1709 <rect y="6.15" width="18" height="1.7" rx="1"/> 1710 <rect y="12.3" width="18" height="1.7" rx="1"/> 1711 </svg></button> 1712</div></div></div></div></div></header> 1713 <main id="main" class="site-main hfeed" itemscope="itemscope" itemtype="https://schema.org/CreativeWork"> 1714 1715 <div class="scroll-menu-container"><div class="liens-couleurs"><a href="/diamants-par-couleur/">ð¨ Couleurs</a> 1716 <a href="/code-couleur-nuancier-dmc/">ð Nuancier</a> 1717 <a class="bouton_avis" href="https://king-avis.com/fr/merchant/profile/5eba1c2bb10d7dd7ed5176f645ff16fde94a96b5/" target="_blank" rel="noopener">â Avis clients</a> 1718 <a class="boutons_2" href="/couleur/accessoires/">ðï¸ Accessoires</a> 1719 <a class="boutons_2" href="/couleur/diamants-ab/?filters=filtres%5B7162-7166-7168%5D">⨠Strass AB</a> 1720 <a class="boutons_2" href="/couleur/diamond-painting-documents-pdf-telecharger-imprimer/">ð Documents</a> 1721 <a class="boutons_3" href="/perles-broderie/sachet-de-perles-pour-diamond-painting-200-diamants/">â¡ Commande rapide</a> 1722 <a class="boutons_3" href="/diamond-painting-couleurs-dmc-proches-remplacement/">ð Outil couleurs proches</a></div></div> 1723 <div class="ct-container-full" data-content="normal" data-vertical-spacing="top:bottom"><article class="post-72384"> 1724<div class="hero-section is-width-constrained" data-type="type-1"> 1725 <header class="entry-header"> 1726 1727 1728 1729 </header> 1730 </div> 1731 1732 <div class="woocommerce-notices-wrapper"></div><div id="product-72384" class="product type-product post-72384 status-publish first instock product_cat-accessoires product_cat-custom has-post-thumbnail sale taxable shipping-taxable purchasable product-type-variable has-default-attributes ct-default-gallery"> 1733 1734 <div class="product-entry-wrapper is-width-constrained"><div class="summary entry-summary entry-summary-items entry-summary entry-summary-items-items product-title-mobile-wrap"><h1 class="product_title entry-title">Mon diamond painting personnalisé</h1></div> 1735 <div class="summary entry-summary entry-summary-items"> 1736 <h1 class="product_title entry-title">Mon diamond painting personnalisé</h1><p class="price"><span class="aelia_product_price" data-product_id="72384"><span class="from">à partir de : </span><span class="woocommerce-Price-amount amount"><bdi><span class="woocommerce-Price-currencySymbol" translate="no">$</span>22.40</bdi></span></span></p> 1737<div class="woocommerce-product-details__short-description"> 1738 <div class="bf-banner"> 1739<div class="bf-banner-inner"> 1740 <span class="bf-label"><br /> 1741 <span class="bf-label-emoji">ð¤ð¥</span><br /> 1742 <span>Black Friday</span><br /> 1743 </span><br /> 1744 <span class="bf-badge">-50%</span><br /> 1745 <span class="bf-text">sur toutes les toiles</span> 1746 </div> 1747</div> 1748<p class="dp3">ð¼ï¸ Votre photo transformée en DP</p> 1749<p class="dp3">ð¸ Aperçu instantané du rendu</p> 1750<p class="dp3">â Tout inclus : perles, colle, styloâ¦</p> 1751<p class="dp4">⨠Créez votre image grâce à lâIA.</p> 1752</div> 1753<span class="ct-product-divider" data-id="divider_1"></span><div class="ct-product-add-to-cart"> 1754<form class="variations_form cart" action="https://diamant-strass-dmc.com/perles-broderie/custom-diamond-painting-personnalise-photo/" method="post" enctype='multipart/form-data' data-product_id="72384" data-product_variations="false"> 1755 <div data-product_id="72384" data-threshold_min="0" data-threshold_max="100" data-total="46"> 1756 <table class="variations" cellspacing="0" role="presentation"> 1757 <tbody> 1758 <tr> 1759 <th class="label"><label for="taille">Taille</label></th> 1760 <td class="value"> 1761 <select style="display:none" id="taille" class=" woo-variation-raw-select" name="attribute_taille" data-attribute_name="attribute_taille" data-show_option_none="yes"><option value="">Choisir une option</option><option value="30 x 30 cm" >30 x 30 cm</option><option value="40 x 40 cm" >40 x 40 cm</option><option value="50 x 50 cm" >50 x 50 cm</option><option value="60 x 60 cm" >60 x 60 cm</option><option value="70 x 70 cm" >70 x 70 cm</option><option value="80 x 80 cm" >80 x 80 cm</option><option value="90 x 90 cm" >90 x 90 cm</option><option value="100 x 100 cm" >100 x 100 cm</option><option value="45 x 30 cm" >45 x 30 cm</option><option value="60 x 40 cm" >60 x 40 cm</option><option value="90 x 60 cm" >90 x 60 cm</option><option value="120 x 80 cm" >120 x 80 cm</option><option value="50 x 40 cm" >50 x 40 cm</option><option value="70 x 50 cm" >70 x 50 cm</option><option value="100 x 70 cm" >100 x 70 cm</option><option value="30 x 45 cm" >30 x 45 cm</option><option value="40 x 60 cm" >40 x 60 cm</option><option value="60 x 90 cm" >60 x 90 cm</option><option value="80 x 120 cm" >80 x 120 cm</option><option value="30 x 40 cm" selected='selected'>30 x 40 cm</option><option value="40 x 50 cm" >40 x 50 cm</option><option value="50 x 70 cm" >50 x 70 cm</option><option value="70 x 100 cm" >70 x 100 cm</option></select><ul role="radiogroup" aria-label="Taille" class="variable-items-wrapper button-variable-items-wrapper wvs-style-squared" data-attribute_name="attribute_taille" data-attribute_values="["30 x 30 cm","40 x 40 cm","50 x 50 cm","60 x 60 cm","70 x 70 cm","80 x 80 cm","90 x 90 cm","100 x 100 cm","45 x 30 cm","60 x 40 cm","90 x 60 cm","120 x 80 cm","50 x 40 cm","70 x 50 cm","100 x 70 cm","30 x 45 cm","40 x 60 cm","60 x 90 cm","80 x 120 cm","30 x 40 cm","40 x 50 cm","50 x 70 cm","70 x 100 cm"]"><li aria-checked="false" tabindex="0" data-attribute_name="attribute_taille" class="variable-item button-variable-item button-variable-item-30-x-30-cm " title="30 x 30 cm" data-title="30 x 30 cm" data-value="30 x 30 cm" role="radio" tabindex="0"><div class="variable-item-contents"><span class="variable-item-span variable-item-span-button">
176130 x 30 cm</span></div></li><li aria-checked="false" tabindex="0" data-attribute_name="attribute_taille" class="variable-item button-variable-item button-variable-item-40-x-40-cm " title="40 x 40 cm" data-title="40 x 40 cm" data-value="40 x 40 cm" role="radio" tabindex="0"><div class="variable-item-contents"><span class="variable-item-span variable-item-span-button">40 x 40 cm</span></div></li><li aria-checked="false" tabindex="0" data-attribute_name="attribute_taille" class="variable-item button-variable-item button-variable-item-50-x-50-cm " title="50 x 50 cm" data-title="50 x 50 cm" data-value="50 x 50 cm" role="radio" tabindex="0"><div class="variable-item-contents"><span class="variable-item-span variable-item-span-button">50 x 50 cm</span></div></li><li aria-checked="false" tabindex="0" data-attribute_name="attribute_taille" class="variable-item button-variable-item button-variable-item-60-x-60-cm " title="60 x 60 cm" data-title="60 x 60 cm" data-value="60 x 60 cm" role="radio" tabindex="0"><div class="variable-item-contents"><span class="variable-item-span variable-item-span-button">60 x 60 cm</span></div></li><li aria-checked="false" tabindex="0" data-attribute_name="attribute_taille" class="variable-item button-variable-item button-variable-item-70-x-70-cm " title="70 x 70 cm" data-title="70 x 70 cm" data-value="70 x 70 cm" role="radio" tabindex="0"><div class="variable-item-contents"><span class="variable-item-span variable-item-span-button">70 x 70 cm</span></div></li><li aria-checked="false" tabindex="0" data-attribute_name="attribute_taille" class="variable-item button-variable-item button-variable-item-80-x-80-cm " title="80 x 80 cm" data-title="80 x 80 cm" data-value="80 x 80 cm" role="radio" tabindex="0"><div class="variable-item-contents"><span class="variable-item-span variable-item-span-button">80 x 80 cm</span></div></li><li aria-checked="false" tabindex="0" data-attribute_name="attribute_taille" class="variable-item button-variable-item button-variable-item-90-x-90-cm " title="90 x 90 cm" data-title="90 x 90 cm" data-value="90 x 90 cm" role="radio" tabindex="0"><div class="variable-item-contents"><span class="variable-item-span variable-item-span-button">90 x 90 cm</span></div></li><li aria-checked="false" tabindex="0" data-attribute_name="attribute_taille" class="variable-item button-variable-item button-variable-item-100-x-100-cm " title="100 x 100 cm" data-title="100 x 100 cm" data-value="100 x 100 cm" role="radio" tabindex="0"><div class="variable-item-contents"><span class="variable-item-span variable-item-span-button">100 x 100 cm</span></div></li><li aria-checked="false" tabindex="0" data-attribute_name="attribute_taille" class="variable-item button-variable-item button-variable-item-45-x-30-cm " title="45 x 30 cm" data-title="45 x 30 cm" data-value="45 x 30 cm" role="radio" tabindex="0"><div class="variable-item-contents"><span class="variable-item-span variable-item-span-button">45 x 30 cm</span></div></li><li aria-checked="false" tabindex="0" data-attribute_name="attribute_taille" class="variable-item button-variable-item button-variable-item-60-x-40-cm " title="60 x 40 cm" data-title="60 x 40 cm" data-value="60 x 40 cm" role="radio" tabindex="0"><div class="variable-item-contents"><span class="variable-item-span variable-item-span-button">60 x 40 cm</span></div></li><li aria-checked="false" tabindex="0" data-attribute_name="attribute_taille" class="variable-item button-variable-item button-variable-item-90-x-60-cm " title="90 x 60 cm" data-title="90 x 60 cm" data-value="90 x 60 cm" role="radio" tabindex="0"><div class="variable-item-contents"><span class="variable-item-span variable-item-span-button">90 x 60 cm</span></div></li><li aria-checked="false" tabindex="0" data-attribute_name="attribute_taille" class="variable-item button-variable-item button-variable-item-120-x-80-cm " title="120 x 80 cm" data-title="120 x 80 cm" data-value="120 x 80 cm" role="radio" tabindex="0"><div class="variable-item-contents"><span class="variable-item-span variable-item-span-button">120 x 80 cm</span></div></li><li aria-checked="false" tabindex="0" data-attribute_name="attribute_taille" class="variable-item button-variable-item button-variable-item-50-x-40-cm " title="50 x 40 cm" data-title="50 x 40 cm" data-value="50 x 40 cm" role="radio" tabindex="0"><div class="variable-item-contents"><span class="variable-item-span variable-item-span-button">
176150 x 40 cm</span></div></li><li aria-checked="false" tabindex="0" data-attribute_name="attribute_taille" class="variable-item button-variable-item button-variable-item-70-x-50-cm " title="70 x 50 cm" data-title="70 x 50 cm" data-value="70 x 50 cm" role="radio" tabindex="0"><div class="variable-item-contents"><span class="variable-item-span variable-item-span-button">70 x 50 cm</span></div></li><li aria-checked="false" tabindex="0" data-attribute_name="attribute_taille" class="variable-item button-variable-item button-variable-item-100-x-70-cm " title="100 x 70 cm" data-title="100 x 70 cm" data-value="100 x 70 cm" role="radio" tabindex="0"><div class="variable-item-contents"><span class="variable-item-span variable-item-span-button">100 x 70 cm</span></div></li><li aria-checked="false" tabindex="0" data-attribute_name="attribute_taille" class="variable-item button-variable-item button-variable-item-30-x-45-cm " title="30 x 45 cm" data-title="30 x 45 cm" data-value="30 x 45 cm" role="radio" tabindex="0"><div class="variable-item-contents"><span class="variable-item-span variable-item-span-button">30 x 45 cm</span></div></li><li aria-checked="false" tabindex="0" data-attribute_name="attribute_taille" class="variable-item button-variable-item button-variable-item-40-x-60-cm " title="40 x 60 cm" data-title="40 x 60 cm" data-value="40 x 60 cm" role="radio" tabindex="0"><div class="variable-item-contents"><span class="variable-item-span variable-item-span-button">40 x 60 cm</span></div></li><li aria-checked="false" tabindex="0" data-attribute_name="attribute_taille" class="variable-item button-variable-item button-variable-item-60-x-90-cm " title="60 x 90 cm" data-title="60 x 90 cm" data-value="60 x 90 cm" role="radio" tabindex="0"><div class="variable-item-contents"><span class="variable-item-span variable-item-span-button">60 x 90 cm</span></div></li><li aria-checked="false" tabindex="0" data-attribute_name="attribute_taille" class="variable-item button-variable-item button-variable-item-80-x-120-cm " title="80 x 120 cm" data-title="80 x 120 cm" data-value="80 x 120 cm" role="radio" tabindex="0"><div class="variable-item-contents"><span class="variable-item-span variable-item-span-button">80 x 120 cm</span></div></li><li aria-checked="true" tabindex="0" data-attribute_name="attribute_taille" class="variable-item button-variable-item button-variable-item-30-x-40-cm selected" title="30 x 40 cm" data-title="30 x 40 cm" data-value="30 x 40 cm" role="radio" tabindex="0"><div class="variable-item-contents"><span class="variable-item-span variable-item-span-button">30 x 40 cm</span></div></li><li aria-checked="false" tabindex="0" data-attribute_name="attribute_taille" class="variable-item button-variable-item button-variable-item-40-x-50-cm " title="40 x 50 cm" data-title="40 x 50 cm" data-value="40 x 50 cm" role="radio" tabindex="0"><div class="variable-item-contents"><span class="variable-item-span variable-item-span-button">40 x 50 cm</span></div></li><li aria-checked="false" tabindex="0" data-attribute_name="attribute_taille" class="variable-item button-variable-item button-variable-item-50-x-70-cm " title="50 x 70 cm" data-title="50 x 70 cm" data-value="50 x 70 cm" role="radio" tabindex="0"><div class="variable-item-contents"><span class="variable-item-span variable-item-span-button">50 x 70 cm</span></div></li><li aria-checked="false" tabindex="0" data-attribute_name="attribute_taille" class="variable-item button-variable-item button-variable-item-70-x-100-cm " title="70 x 100 cm" data-title="70 x 100 cm" data-value="70 x 100 cm" role="radio" tabindex="0"><div class="variable-item-contents"><span class="variable-item-span variable-item-span-button">70 x 100 cm</span></div></li></ul> </td> 1762 </tr> 1763 <tr> 1764 <th class="label"><label for="forme-des-diamants">Forme des diamants</label></th> 1765 <td class="value"> 1766 <select style="display:none" id="forme-des-diamants" class=" woo-variation-raw-select" name="attribute_forme-des-diamants" data-attribute_name="attribute_forme-des-diamants" data-show_option_none="yes"><option value="">Choisir une option</option><option value="Carrés" selected='selected'>Carrés</option><option value="Ronds" >Ronds</option></select><ul role="radiogroup" aria-label="Forme des diamants" class="variable-items-wrapper button-variable-items-wrapper wvs-style-squared" data-attribute_name="attribute_forme-des-diamants" data-attribute_values="["Carr\u00e9s","Ronds"]"><li aria-checked="true" tabindex="0" data-attribute_name="attribute_forme-des-diamants" class="variable-item button-variable-item button-variable-item-carres selected" title="Carrés" data-title="Carrés" data-value="Carrés" role="radio" tabindex="0"><div class="variable-item-contents"><span class="variable-item-span variable-item-span-button">Carrés</span></div></li><li aria-checked="false" tabindex="0" data-attribute_name="attribute_forme-des-diamants" class="variable-item button-variable-item button-variable-item-ronds " title="Ronds" data-title="Ronds" data-value="Ronds" role="radio" tabindex="0"><div class="variable-item-contents"><span class="variable-item-span variable-item-span-button">Ronds</span></div></li></ul> </td> 1767 </tr> 1768 </tbody> 1769 </table> 1770 <div class="reset_variations_alert screen-reader-text" role="alert" aria-live="polite" aria-relevant="all"></div> 1771 1772 <div class="single_variation_wrap"> 1773 <div class="woocommerce-variation single_variation" role="alert" aria-relevant="additions"></div><div class="woocommerce-variation-add-to-cart variations_button"> 1774 <div class="jdmc-ai-wrapper"> 1775 1776 <!-- BLOC IMPORT DIRECT (champ 1) --> 1777 <div class="jdmc-ai-direct-block jdmc-ai-collapsible jdmc-ai-collapsed"> 1778 <div class="jdmc-ai-collapsible-header"> 1779 <div class="jdmc-ai-header-main"> 1780 <picture><source srcset="https://diamant-strass-dmc.com/wp-content/uploads/2024/11/custom-diamond-painting-personnalise.avif " type="image/avif"><img src="https://diamant-strass-dmc.com/wp-content/uploads/2024/11/custom-diamond-painting-personnalise.jpg" class="jdmc-ai-header-thumb sp-no-webp" alt="Jâai déjà mon image" > </picture> 1781 <p class="jdmc-ai-direct-title" style="font-size:17px;color:#414141;"> 1782 Jâai déjà ma photo ou image 1783</p> 1784 </div>
1785 <span class="jdmc-ai-collapsible-arrow">â¼</span> 1786 </div> 1787 1788 <div class="jdmc-ai-collapsible-body"> 1789 <p class="jdmc-ai-direct-text"> 1790 Si vous avez déjà une image à reproduire telle quelle, importez-la simplement ici. 1791 </p> 1792 1793 <!-- Variations pour l'option "j'ai déjà mon image" --> 1794 <div class="jdmc-ai-variations-part jdmc-ai-variations-part-direct"> 1795 <!-- Forme des diamants â zone DIRECT --> 1796 <div class="jdmc-ai-forme-wrapper jdmc-ai-forme-wrapper-direct"> 1797 <p class="jdmc-ai-forme-title">Forme des diamants</p> 1798 <div class="jdmc-ai-forme-swatches jdmc-ai-forme-swatches-direct"> 1799 <!-- Swatches clonés en JS --> 1800 </div> 1801 </div> 1802 1803 <!-- Dimensions DIRECT --> 1804 <div class="jdmc-ai-dimensions-wrapper jdmc-ai-dimensions-wrapper-direct"> 1805 <p class="jdmc-ai-dimensions-title">Dimensions de la toile</p> 1806 1807 <div class="jdmc-ai-size-zones jdmc-ai-size-zones-direct"> 1808 <div class="jdmc-ai-size-zone"> 1809 <p class="jdmc-ai-size-zone-title">Formats carrés</p> 1810 <select class="jdmc-ai-taille-select jdmc-ai-taille-select-direct jdmc-ai-taille-select-square"> 1811 <!-- Rempli en JS --> 1812 </select> 1813 </div> 1814 1815 <div class="jdmc-ai-size-zone"> 1816 <p class="jdmc-ai-size-zone-title">Formats portrait</p> 1817 <select class="jdmc-ai-taille-select jdmc-ai-taille-select-direct jdmc-ai-taille-select-portrait"> 1818 <!-- Rempli en JS --> 1819 </select> 1820 </div> 1821 1822 <div class="jdmc-ai-size-zone"> 1823 <p class="jdmc-ai-size-zone-title">Formats paysage</p> 1824 <select class="jdmc-ai-taille-select jdmc-ai-taille-select-direct jdmc-ai-taille-select-paysage"> 1825 <!-- Rempli en JS --> 1826 </select> 1827 </div> 1828 </div> 1829 </div> 1830 1831 <!-- Photo / image à transformer en DP --> 1832 <div class="jdmc-ai-photo-wrapper jdmc-ai-photo-wrapper-direct"> 1833 <p class="jdmc-ai-dimensions-title">Photo / image à transformer en DP</p> 1834 1835 <input type="file" class="jdmc-ai-direct-upload" accept="image/*"> 1836 <small class="jdmc-ai-help"> 1837 Formats acceptés : JPG ou PNG (max ~64 Mo). 1838 </small> 1839 1840 <p class="jdmc-ai-direct-filename" style="display:none;"></p> 1841 <img src="" alt="Image importée" class="jdmc-ai-direct-thumb" style="display:none;"> 1842 1843 <!-- Messages + barre pour UPLOAD DIRECT (local) --> 1844 <div class="jdmc-ai-upload-status jdmc-ai-upload-status-direct" aria-live="polite"></div> 1845 <div class="jdmc-ai-upload-progress jdmc-ai-upload-progress-direct" style="display:none;"> 1846 <div class="jdmc-ai-upload-progress-bar"></div> 1847 </div> 1848 1849 <button type="button" class="jdmc-ai-remove-image jdmc-ai-remove-direct" style="display:none;"> 1850 ðï¸ Supprimer cette image 1851 </button> 1852 </div> 1853 </div> 1854 1855 <!-- Prix dupliqué pour le bloc DIRECT (sous le bloc pointillé) --> 1856 <div class="jdmc-ai-price-duplicate jdmc-ai-price-duplicate-direct"></div> 1857 </div> 1858 </div> 1859 1860 <!-- BLOC IA --> 1861 <div class="jdmc-ai-ai-block jdmc-ai-collapsible jdmc-ai-collapsed"> 1862 <div class="jdmc-ai-collapsible-header"> 1863 <div class="jdmc-ai-header-main"> 1864 <picture><source srcset="https://diamant-strass-dmc.com/wp-content/uploads/2024/11/custom-dp-diamond-painting.avif " type="image/avif"><source srcset="https://diamant-strass-dmc.com/wp-content/uploads/2024/11/custom-dp-diamond-painting.webp " type="image/webp"><img src="https://diamant-strass-dmc.com/wp-content/uploads/2024/11/custom-dp-diamond-painting.jpg" class="jdmc-ai-header-thumb sp-no-webp" alt="Créer/retoucher avec lâIA" > </picture> 1865 <p class="jdmc-ai-title" style="font-size:17px;color:#414141;"> 1866 Je crée ou retouche mon image avec lâIA 1867</p> 1868 </div>
1869 <span class="jdmc-ai-collapsible-arrow">â¼</span> 1870 </div> 1871 1872 <div class="jdmc-ai-collapsible-body"> 1873 <p class="jdmc-ai-subtitle"> 1874 Choisissez si vous partez dâun texte ou dâune image, puis sélectionnez un style. 1875 </p> 1876 1877 <!-- Onglets : Texte / Image --> 1878 <div class="jdmc-ai-tabs" role="tablist"> 1879 <button type="button" 1880 class="jdmc-ai-tab jdmc-ai-tab-active" 1881 data-mode="prompt" 1882 role="tab" 1883 aria-selected="true"> 1884 à partir dâun texte 1885 </button> 1886 <button type="button" 1887 class="jdmc-ai-tab" 1888 data-mode="edit" 1889 role="tab" 1890 aria-selected="false"> 1891 à partir dâune image 1892 </button> 1893 </div> 1894 1895 <div class="jdmc-ai-modes"> 1896 <!-- MODE 1 : TEXTE --> 1897 <div class="jdmc-ai-mode jdmc-ai-mode-prompt jdmc-ai-mode-active" data-mode="prompt"> 1898 <label class="jdmc-ai-title jdmc-ai-prompt-title" for="jdmc-ai-prompt"> 1899 Je décris l'image que je souhaite créer 1900 </label> 1901 <textarea 1902 id="jdmc-ai-prompt" 1903 class="jdmc-ai-prompt" 1904 rows="3" 1905 placeholder="Ex : Un chat blanc sur un coussin bleu"></textarea> 1906 </div> 1907 1908 <!-- MODE 2 : RETOUCHE PHOTO (champ 2) --> 1909 <div class="jdmc-ai-mode jdmc-ai-mode-edit" data-mode="edit" style="display:none;"> 1910 1911 <p class="jdmc-ai-title jdmc-ai-edit-image-title"> 1912 Je choisis la photo / image à transformer en DP 1913 </p> 1914 1915 <input type="file" 1916 class="jdmc-ai-upload" 1917 accept="image/*"> 1918 <small class="jdmc-ai-help"> 1919 Formats acceptés : JPG ou PNG (max ~64 Mo). 1920 </small> 1921 1922 <img src="" alt="Image importée pour retouche" 1923 class="jdmc-ai-edit-thumb" 1924 style="display:none; border-radius:4px; border:1px solid #ccc; margin:6px 0;"> 1925 1926 <!-- Messages + barre pour UPLOAD IA (local) --> 1927 <div class="jdmc-ai-upload-status jdmc-ai-upload-status-edit" aria-live="polite"></div> 1928 <div class="jdmc-ai-upload-progress jdmc-ai-upload-progress-edit" style="display:none;"> 1929 <div class="jdmc-ai-upload-progress-bar"></div> 1930 </div> 1931 1932 <button type="button" class="jdmc-ai-remove-image jdmc-ai-remove-edit" style="display:none;"> 1933 ðï¸ Supprimer cette image 1934 </button> 1935 1936 <label class="jdmc-ai-label jdmc-ai-label-edit-facultatif" for="jdmc-ai-edit-prompt"> 1937 (Facultatif) Je demande une retouche / modification 1938 </label> 1939 1940 <p class="jdmc-ai-title jdmc-ai-edit-title" style="display:none;"> 1941 Je demande une retouche / modification 1942 </p> 1943 1944 <textarea 1945 id="jdmc-ai-edit-prompt" 1946 class="jdmc-ai-edit-prompt" 1947 rows="2" 1948 style="display:none;" 1949 placeholder="Ex : Supprime l'arbre et éclaircit le ciel"></textarea> 1950 </div> 1951 </div> 1952 1953 <!-- Styles --> 1954 <div class="jdmc-ai-styles"> 1955 <p class="jdmc-ai-title jdmc-ai-style-transform-title"> 1956 Je transforme le style de mon image 1957 </p> 1958 1959 <div class="jdmc-ai-styles-prompt-text"> 1960 <p class="jdmc-ai-title jdmc-ai-styles-main-title"> 1961 Je choisis le style de mon image 1962 </p> 1963 <p class="jdmc-ai-label jdmc-ai-styles-examples"> 1964 Exemples avec "chien et chat dans un panier" : 1965 </p> 1966 </div> 1967 1968 <div class="jdmc-ai-styles-grid"> 1969 <div class="jdmc-style-option" 1970 data-style-key="none"> 1971 <div class="jdmc-style-image-wrapper jdmc-style-image-wrapper-none"> 1972 <div class="jdmc-style-none-icon">â</div> 1973 </div> 1974 <div class="jdmc-style-label"> 1975 Ne pas modifier </div> 1976 </div> 1977 <div class="jdmc-style-option jdmc-ai-style-active" 1978 data-style-key="realistic"> 1979 <div class="jdmc-style-image-wrapper "> 1980 <img src="https://diamant-strass-dmc.com/wp-content/uploads/ai-styles/style-realistic.jpg" 1981 alt="Photo réaliste"> 1982 </div> 1983 <div class="jdmc-style-label"> 1984 Photo réaliste </div> 1985 </div> 1986 <div class="jdmc-style-option" 1987 data-style-key="galaxy"> 1988 <div class="jdmc-style-image-wrapper "> 1989 <img src="https://diamant-strass-dmc.com/wp-content/uploads/ai-styles/style-galaxy.jpg" 1990 alt="Fluo"> 1991 </div> 1992 <div class="jdmc-style-label"> 1993 Fluo </div> 1994 </div> 1995 <div class="jdmc-style-option" 1996 data-style-key="fairytale"> 1997 <div class="jdmc-style-image-wrapper "> 1998 <img src="https://diamant-strass-dmc.com/wp-content/uploads/ai-styles/style-fairytale.jpg" 1999 alt="Féerique"> 2000 </div> 2001 <div class="jdmc-style-label">
2002 Féerique </div> 2003 </div> 2004 <div class="jdmc-style-option" 2005 data-style-key="manga"> 2006 <div class="jdmc-style-image-wrapper "> 2007 <img src="https://diamant-strass-dmc.com/wp-content/uploads/ai-styles/style-manga.jpg" 2008 alt="Manga"> 2009 </div> 2010 <div class="jdmc-style-label"> 2011 Manga </div> 2012 </div> 2013 <div class="jdmc-style-option" 2014 data-style-key="watercolor"> 2015 <div class="jdmc-style-image-wrapper "> 2016 <img src="https://diamant-strass-dmc.com/wp-content/uploads/ai-styles/style-watercolor.jpg" 2017 alt="Aquarelle"> 2018 </div> 2019 <div class="jdmc-style-label"> 2020 Aquarelle </div> 2021 </div> 2022 <div class="jdmc-style-option" 2023 data-style-key="cartoon"> 2024 <div class="jdmc-style-image-wrapper "> 2025 <img src="https://diamant-strass-dmc.com/wp-content/uploads/ai-styles/style-cartoon.jpg" 2026 alt="Dessin animé"> 2027 </div> 2028 <div class="jdmc-style-label"> 2029 Dessin animé </div> 2030 </div> 2031 <div class="jdmc-style-option" 2032 data-style-key="abstract"> 2033 <div class="jdmc-style-image-wrapper "> 2034 <img src="https://diamant-strass-dmc.com/wp-content/uploads/ai-styles/style-abstract.jpg" 2035 alt="Abstrait"> 2036 </div> 2037 <div class="jdmc-style-label"> 2038 Abstrait </div> 2039 </div> 2040 </div> 2041 </div> 2042 2043 <!-- Variations pour l'option "je génère mon image" (sous les styles) --> 2044 <div class="jdmc-ai-variations-part jdmc-ai-variations-part-ia"> 2045 <!-- Forme des diamants â zone IA --> 2046 <div class="jdmc-ai-forme-wrapper jdmc-ai-forme-wrapper-ia"> 2047 <p class="jdmc-ai-forme-title">Forme des diamants</p> 2048 <div class="jdmc-ai-forme-swatches jdmc-ai-forme-swatches-ia"> 2049 <!-- Swatches clonés en JS --> 2050 </div> 2051 </div> 2052 2053 <!-- Dimensions IA --> 2054 <div class="jdmc-ai-dimensions-wrapper jdmc-ai-dimensions-wrapper-ia"> 2055 <p class="jdmc-ai-dimensions-title">Dimensions de la toile</p> 2056 2057 <div class="jdmc-ai-size-zones jdmc-ai-size-zones-ia"> 2058 <div class="jdmc-ai-size-zone"> 2059 <p class="jdmc-ai-size-zone-title">Formats carrés (IA)</p> 2060 <select class="jdmc-ai-taille-select jdmc-ai-taille-select-ia jdmc-ai-taille-select-square"> 2061 <!-- Rempli en JS --> 2062 </select> 2063 </div> 2064 2065 <div class="jdmc-ai-size-zone"> 2066 <p class="jdmc-ai-size-zone-title">Formats portrait (IA)</p> 2067 <select class="jdmc-ai-taille-select jdmc-ai-taille-select-ia jdmc-ai-taille-select-portrait"> 2068 <!-- Rempli en JS --> 2069 </select> 2070 </div> 2071 2072 <div class="jdmc-ai-size-zone"> 2073 <p class="jdmc-ai-size-zone-title">Formats paysage (IA)</p> 2074 <select class="jdmc-ai-taille-select jdmc-ai-taille-select-ia jdmc-ai-taille-select-paysage"> 2075 <!-- Rempli en JS --> 2076 </select> 2077 </div> 2078 </div> 2079 </div> 2080 </div> 2081 2082 <button type="button" class="button jdmc-ai-generate-btn"> 2083 Générer lâimage avec lâIA 2084 </button> 2085 2086 <!-- Barre de progression IA (indéterminée, pour la génération IA) --> 2087 <div class="jdmc-ai-progress" style="display:none;"> 2088 <div class="jdmc-ai-progress-bar"></div> 2089 </div> 2090 2091 <!-- Statut IA uniquement (erreurs/génération IA) -->
2092 <div class="jdmc-ai-status" aria-live="polite"></div> 2093 2094 <!-- Aperçu IA --> 2095 <div class="jdmc-ai-preview" style="display:none;"> 2096 <p class="jdmc-ai-label">Aperçu de lâimage générée :</p> 2097 <img src="" alt="Prévisualisation image IA"> 2098 <button type="button" class="jdmc-ai-remove-image jdmc-ai-remove-preview" style="display:none; margin-top:6px;"> 2099 ðï¸ Supprimer cette image 2100 </button> 2101 </div> 2102 </div> 2103 </div> 2104 2105 <!-- SECTION : récap + qté/bouton --> 2106 <div class="jdmc-ai-validate-block"> 2107 <p class="jdmc-ai-title jdmc-ai-validate-title"> 2108 â Je valide mon diamond painting 2109 </p> 2110 2111 <!-- Prix dupliqué en bas (récap) --> 2112 <div class="jdmc-ai-price-duplicate jdmc-ai-price-duplicate-bottom"></div> 2113 2114 <div class="jdmc-ai-recap"> 2115 <p class="jdmc-ai-recap-line jdmc-ai-recap-forme"> 2116 <span class="jdmc-ai-recap-label">Forme des diamants :</span> 2117 <span class="jdmc-ai-recap-value jdmc-ai-recap-forme-value">â</span> 2118 </p> 2119 <p class="jdmc-ai-recap-line jdmc-ai-recap-taille"> 2120 <span class="jdmc-ai-recap-label">Taille du diamond painting :</span> 2121 <span class="jdmc-ai-recap-value jdmc-ai-recap-taille-value">â</span> 2122 </p> 2123 <p class="jdmc-ai-recap-line jdmc-ai-recap-style"> 2124 <span class="jdmc-ai-recap-label">Style dâimage :</span> 2125 <span class="jdmc-ai-recap-value jdmc-ai-recap-style-value"></span> 2126 </p> 2127 <p class="jdmc-ai-recap-line jdmc-ai-recap-image"> 2128 <span class="jdmc-ai-recap-label">Image :</span> 2129 <span class="jdmc-ai-recap-value jdmc-ai-recap-image-value"> 2130 <img src="" alt="Image choisie" class="jdmc-ai-recap-image-thumb" style="display:none;"> 2131 </span> 2132 </p> 2133 <button type="button" class="jdmc-ai-remove-image jdmc-ai-remove-recap" style="display:none; margin-top:4px;"> 2134 ðï¸ Supprimer cette image 2135 </button> 2136 </div> 2137 2138 <!-- MESSAGES + BARRE EN BAS (global) --> 2139 <div class="jdmc-ai-global-status" aria-live="polite"></div> 2140 2141 <div class="jdmc-ai-upload-progress jdmc-ai-upload-progress-bottom" style="display:none;"> 2142 <div class="jdmc-ai-upload-progress-bar"></div> 2143 </div> 2144 2145 <div class="jdmc-ai-cart-row"> 2146 <!-- qté + bouton ajout panier --> 2147 </div> 2148 </div> 2149 2150 </div> 2151 2152 <input type="hidden" 2153 name="jdmc_ai_attachment_id" 2154 class="jdmc-ai-attachment-id" 2155 value=""> 2156<link rel="stylesheet" href="https://unpkg.com/[email protected]/dist/cropper.min.css"> 2157 2158 <style> 2159 .woocommerce-product-details__short-description p { 2160 margin-bottom: 0; 2161 } 2162 2163 /* Centrer la colonne summary uniquement sur ces produits */ 2164 .single-product.jdmc-ai-dp-perso .product .summary { 2165 max-width: 900px; 2166 margin: 0 auto; 2167 } 2168 2169 .jdmc-ai-wrapper { 2170 margin: 0 auto; 2171 padding: 0; 2172 border: none; 2173 background: transparent; 2174 max-width: 760px; 2175 } 2176 2177 .jdmc-ai-direct-block, 2178 .jdmc-ai-ai-block, 2179 .jdmc-ai-validate-block, 2180 .jdmc-ai-variations-block { 2181 margin: 0 auto 16px; 2182 padding: 14px 16px 10px; 2183 border-radius: 10px; 2184 background: #F2ECFF; 2185 border: 1px solid #170048; 2186 box-shadow: 0 3px 6px rgba(11, 99, 176, 0.08); 2187 } 2188 2189 .jdmc-ai-direct-title, 2190 .jdmc-ai-title { 2191 margin: 0 0 6px; 2192 font-size: 16px; 2193 font-weight: 700; 2194 color: #840074; 2195 display:flex; 2196 align-items:center; 2197 gap:4px; 2198 } 2199 2200 .jdmc-ai-validate-title { 2201 margin-top: 0; 2202 } 2203 2204 .jdmc-ai-style-transform-title { 2205 margin: 0 0 6px; 2206 display: none; 2207 } 2208 2209 .jdmc-ai-direct-text, 2210 .jdmc-ai-subtitle { 2211 margin: 0 0 10px; 2212 font-size: 13px; 2213 color: #555; 2214 } 2215 2216 .jdmc-ai-label { 2217 font-size: 13px; 2218 margin: 6px 0 10px; 2219 font-weight: 600; 2220 color: #333; 2221 } 2222 2223 .jdmc-ai-prompt, 2224 .jdmc-ai-edit-prompt { 2225 width: 100%; 2226 box-sizing: border-box; 2227 font-size: 13px; 2228 padding: 6px; 2229 border-radius: 3px; 2230 border: 1px solid #ccc; 2231 resize: vertical; 2232 background: #fff !important; 2233 margin-top:3px; 2234 } 2235 2236 .jdmc-ai-upload, 2237 .jdmc-ai-direct-upload { 2238 display: block; 2239 margin: 2px 0 4px; 2240 font-size: 13px; 2241 } 2242 2243 .jdmc-ai-help { 2244 display: block; 2245 font-size: 11px; 2246 color: #666; 2247 margin-bottom: 4px; 2248 } 2249 2250 .jdmc-ai-tabs { 2251 display: flex; 2252 margin-bottom: 10px; 2253 border: 1px solid #170048; 2254 border-radius: 6px; 2255 overflow: hidden; 2256 } 2257 2258 .jdmc-ai-tab { 2259 flex: 1; 2260 padding: 6px 8px; 2261 font-size: 13px; 2262 background: #f5f7fb; 2263 color: #333; 2264 border: 0; 2265 border-right: 1px solid #170048; 2266 cursor: pointer; 2267 text-align: center; 2268 transition: background 0.15s, color 0.15s; 2269 } 2270 2271 .jdmc-ai-tab:last-child { 2272 border-right: 0; 2273 } 2274 2275 .jdmc-ai-tab.jdmc-ai-tab-active { 2276 background: #6319FF; 2277 color: #fff; 2278 } 2279 2280 .jdmc-ai-styles { 2281 margin-top: 10px; 2282 margin-bottom: 10px; 2283 } 2284 2285 .jdmc-ai-styles-grid { 2286 display: grid; 2287 grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); 2288 gap: 10px; 2289 align-items: stretch; 2290 } 2291 2292 .jdmc-style-option { 2293 border: 1px solid #ccd2e0; 2294 border-radius: 8px; 2295 padding: 6px; 2296 cursor: pointer; 2297 display: flex; 2298 flex-direction: column; 2299 gap: 4px; 2300 background: #ffffff; 2301 transition: box-shadow 0.15s, border-color 0.15s, transform 0.1s; 2302 position: relative; 2303 } 2304 2305 .jdmc-style-option:hover { 2306 border-color: #8f9bb8; 2307 box-shadow: 0 1px 4px rgba(15, 23, 42, 0.1); 2308 transform: translateY(-1px); 2309 } 2310 2311 .jdmc-style-image-wrapper { 2312 position: relative; 2313 width: 100%; 2314 padding-top: 100%; 2315 border-radius: 6px; 2316 overflow: hidden; 2317 border: 1px solid #dde1ee; 2318 box-sizing: border-box; 2319 background: #fff; 2320 } 2321 2322 .jdmc-style-image-wrapper img { 2323 position: absolute; 2324 top: 0; 2325 left: 0; 2326 width: 100%; 2327 height: 100%; 2328 object-fit: contain; 2329 background: #fff; 2330 } 2331 2332 .jdmc-style-image-wrapper-none { 2333 background: #fff5f5; 2334 border-color: #f5b5b5; 2335 } 2336 2337 .jdmc-style-none-icon { 2338 position: absolute; 2339 inset: 0; 2340 display: flex; 2341 align-items: center; 2342 justify-content: center; 2343 font-size: 32px; 2344 line-height: 1; 2345 color: #c0392b; 2346 } 2347 2348 .jdmc-style-label { 2349 padding: 4px 2px 2px; 2350 font-size: 13px; 2351 font-weight: 600; 2352 color: #333; 2353 text-align: center; 2354 } 2355 2356 .jdmc-ai-generate-btn { 2357 margin-top: 8px; 2358 background:#6319FF !important; 2359 } 2360 2361 .jdmc-ai-generate-btn:hover { 2362 background:#094984 !important; 2363 } 2364 2365 .jdmc-ai-status { 2366 margin-top: 6px; 2367 font-size: 12px; 2368 color: #333; 2369 } 2370 2371 .jdmc-ai-preview { 2372 margin-top: 10px; 2373 } 2374 2375 .jdmc-ai-preview img { 2376 max-width: 100%; 2377 height: auto; 2378 border: 1px solid #eee; 2379 border-radius: 4px; 2380 } 2381 2382/* JDMC Gallery layout fix */ 2383.jdmc-ai-gallery { margin-top: 10px; } 2384.jdmc-ai-gallery .jdmc-ai-gallery-list { display: flex; flex-wrap: wrap; gap: 8px; } 2385.jdmc-ai-thumb { position: relative; display: inline-block; width: 84px; border: 1px dashed #cfcfcf; border-radius: 6px; padding: 4px; cursor: pointer; user-select: none; box-sizing: border-box; } 2386.jdmc-ai-thumb img { display: block; width: 100%; height: auto; border-radius: 4px; } 2387.jdmc-ai-thumb .jdmc-ai-thumb-check { position: absolute; top: 6px; left: 6px; width: 18px; height: 18px; border-radius: 3px; background: #fff; border: 1px solid #888; display:flex; align-items:center; justify-content:center; font-size: 12px; line-height: 1; color: #111; } 2388.jdmc-ai-thumb.jdmc-selected { border-color: #6ca6ff; background: #f3f8ff; } 2389.jdmc-ai-thumb.jdmc-selected .jdmc-ai-thumb-check { border-color:#2b6cff; background:#2b6cff; color:#fff; } 2390 2391 2392 @media (max-width: 480px) { 2393 .jdmc-ai-direct-block, 2394 .jdmc-ai-ai-block, 2395 .jdmc-ai-validate-block, 2396 .jdmc-ai-variations-block { 2397 padding: 12px 12px 14px; 2398 } 2399 } 2400 2401 form.variations_form table.variations tr { 2402 gap:0; 2403 } 2404 2405 form.variations_form .single_variation .price,
2406 form.variations_form .woocommerce-variation-price .price { 2407 display: none !important; 2408 } 2409 2410 .woo-selected-variation-item-name { 2411 display: none !important; 2412 } 2413 2414 .impossimage { 2415 display: none !important; 2416 } 2417 2418 .jdmc-ai-direct-filename { 2419 font-size: 12px; 2420 color: #444; 2421 margin: 4px 0 4px; 2422 word-break: break-all; 2423 } 2424 2425 .jdmc-ai-recap-image-thumb { 2426 max-width: 80px; 2427 max-height: 80px; 2428 border-radius: 4px; 2429 border: 1px solid #ccc; 2430 display: block; 2431 margin-bottom: 6px; 2432 } 2433 2434 .jdmc-ai-price-duplicate { 2435 margin: 4px 0 4px; 2436 font-size: 14px; 2437 } 2438 2439 .jdmc-ai-price-duplicate .price { 2440 margin-bottom: 0; 2441 } 2442 2443 .jdmc-ai-price-duplicate-direct { 2444 margin-top: 2px; 2445 } 2446 2447 .jdmc-ai-recap { 2448 font-size: 15px; 2449 color: #444; 2450 margin: 0 0 8px; 2451 } 2452 2453 .jdmc-ai-recap-line { 2454 margin: 0 0 3px; 2455 } 2456 2457 .jdmc-ai-recap-label { 2458 font-weight: 600; 2459 margin-right: 4px; 2460 } 2461 2462 .jdmc-ai-cart-row { 2463 display: flex; 2464 align-items: center; 2465 gap: 12px; 2466 flex-wrap: wrap; 2467 padding-top: 6px; 2468 } 2469 2470 .jdmc-ai-cart-row .quantity { 2471 margin: 0 !important; 2472 background:#fff; 2473 } 2474 2475 div.quantity[data-type] input[type=number] { 2476 font-weight:bold; 2477 } 2478 2479 .jdmc-ai-add-to-cart-disabled { 2480 opacity: 0.5; 2481 cursor: not-allowed !important; 2482 pointer-events: none; 2483 } 2484 2485 /* Barre IA (génération) */ 2486 .jdmc-ai-progress { 2487 margin-top: 8px; 2488 height: 6px; 2489 border-radius: 999px; 2490 background: #d0e3f8; 2491 overflow: hidden; 2492 } 2493 2494 .jdmc-ai-progress-bar { 2495 height: 100%; 2496 width: 40%; 2497 background: #6319FF; 2498 border-radius: 999px; 2499 animation: jdmc-ai-progress-indeterminate 1.1s infinite linear; 2500 transform-origin: left center; 2501 } 2502 2503 @keyframes jdmc-ai-progress-indeterminate { 2504 0% { transform: translateX(-100%); } 2505 100% { transform: translateX(250%); } 2506 } 2507 2508 /* Barre d'upload (direct, IA et bas) */ 2509 .jdmc-ai-upload-progress { 2510 margin: 4px 0 6px; 2511 height: 6px; 2512 border-radius: 999px; 2513 background: #d0e3f8; 2514 overflow: hidden; 2515 } 2516 2517 .jdmc-ai-upload-progress-bar { 2518 height: 100%; 2519 width: 40%; 2520 background: #6319FF; 2521 border-radius: 999px; 2522 animation: jdmc-ai-progress-indeterminate 1.1s infinite linear; 2523 transform-origin: left center; 2524 } 2525 2526 .jdmc-ai-upload-status { 2527 font-size: 12px; 2528 margin: 4px 0 4px; 2529 min-height: 1em; 2530 color: #333; 2531 } 2532 2533 .jdmc-ai-upload-status.jdmc-ai-has-error { 2534 color: #c00; 2535 } 2536 2537 .jdmc-ai-global-status { 2538 font-size: 12px; 2539 margin: 4px 0 6px; 2540 min-height: 1em; 2541 color: #333; 2542 } 2543 2544 .jdmc-ai-global-status.jdmc-ai-has-error { 2545 color: #c00; 2546 } 2547 2548 .jdmc-ai-label-edit-facultatif { 2549 cursor: pointer; 2550 position: relative; 2551 display: inline-flex; 2552 align-items: center; 2553 gap: 8px; 2554 padding: 6px 10px; 2555 margin-top: 10px; 2556 border-radius: 999px; 2557 border: 1px dashed #6319FF; 2558 background: #f3f7ff; 2559 font-size: 13px; 2560 } 2561 .jdmc-ai-label-edit-facultatif::after { 2562 content: "â¾"; 2563 flex: 0 0 auto; 2564 width: 20px; 2565 height: 20px; 2566 border-radius: 999px; 2567 border: 1px solid #170048; 2568 display: flex; 2569 align-items: center; 2570 justify-content: center; 2571 font-size: 14px; 2572 color: #D100B7; 2573 background: #fff; 2574 transition: transform 0.15s ease, background 0.15s ease; 2575 } 2576 .jdmc-ai-label-edit-facultatif.jdmc-ai-edit-open::after { 2577 transform: rotate(180deg); 2578 background: #e0edff; 2579 } 2580 .jdmc-ai-label-edit-facultatif:hover { 2581 background: #e0edff; 2582 } 2583 .jdmc-ai-label-edit-facultatif:hover::after { 2584 background: #e0edff; 2585 } 2586 2587 .jdmc-style-option.jdmc-ai-style-active { 2588 position: relative; 2589 border-color: #6319FF !important; 2590 border-width: 2px; 2591 background: #fff !important; 2592 box-shadow: 0 0 10px rgba(11, 99, 176, 0.35); 2593 transform: translateY(-2px); 2594 } 2595 .jdmc-style-option.jdmc-ai-style-active::after { 2596 content: "â"; 2597 position: absolute; 2598 top: 6px; 2599 right: 7px; 2600 font-size: 16px; 2601 color: #D100B7; 2602 font-weight: 700; 2603 background:white; 2604 } 2605 .jdmc-style-option.jdmc-ai-style-active .jdmc-style-label { 2606 color: #D100B7; 2607 font-weight: 700; 2608 } 2609 2610 .jdmc-ai-remove-image { 2611 display: inline-flex; 2612 align-items: center; 2613 gap: 4px; 2614 padding: 2px 8px; 2615 font-size: 11px; 2616 border-radius: 4px; 2617 border: 1px solid #ccc; 2618 background: #f8f8f8; 2619 color: #555; 2620 cursor: pointer; 2621 margin: 0 0 6px; 2622 } 2623 2624 .jdmc-ai-remove-image:hover { 2625 background: #fbeaea;
2626 border-color: #e08; 2627 color: #a00; 2628 } 2629 2630 input[type="file"].jdmc-ai-upload, 2631 input[type="file"].jdmc-ai-direct-upload { 2632 position: relative; 2633 display: block; 2634 padding: 8px 14px; 2635 font-size: 13px; 2636 font-weight: 600; 2637 color: #fff; 2638 background-color: #6B6B6B; 2639 border: 1px solid #6B6B6B; 2640 border-radius: 6px; 2641 cursor: pointer; 2642 transition: background 0.2s ease, transform 0.1s ease; 2643 } 2644 2645 input[type="file"].jdmc-ai-upload:hover, 2646 input[type="file"].jdmc-ai-direct-upload:hover, 2647 input[type="file"].jdmc-ai-upload:focus, 2648 input[type="file"].jdmc-ai-direct-upload:focus { 2649 background-color: #094984; 2650 cursor: pointer; 2651 color: #fff; 2652 outline: none; 2653 } 2654 2655 input[type="file"].jdmc-ai-upload::-webkit-file-upload-button, 2656 input[type="file"].jdmc-ai-direct-upload::-webkit-file-upload-button { 2657 visibility: hidden; 2658 } 2659 2660 input[type="file"].jdmc-ai-upload::before, 2661 input[type="file"].jdmc-ai-direct-upload::before { 2662 content: "ð Choisir une photo / image"; 2663 position: absolute; 2664 left: 0; 2665 top: 0; 2666 width: 100%; 2667 height: 100%; 2668 display: flex; 2669 align-items: center; 2670 justify-content: center; 2671 background: #6B6B6B; 2672 color: #fff; 2673 border-radius: 6px; 2674 cursor: pointer; 2675 transition: background 0.2s ease; 2676 pointer-events: none; 2677 } 2678 2679 input[type="file"].jdmc-ai-upload:hover::before, 2680 input[type="file"].jdmc-ai-direct-upload:hover::before { 2681 background: #094984; 2682 } 2683 2684 input[type="file"].jdmc-ai-upload, 2685 input[type="file"].jdmc-ai-direct-upload { 2686 color: #333; 2687 } 2688 2689 .jdmc-ai-variations-part { 2690 margin: 8px 0 10px; 2691 padding: 10px 12px; 2692 border-radius: 10px; 2693 background: #f8faff; 2694 border: 1px dashed rgba(11,99,176,0.4); 2695 } 2696 2697 .jdmc-ai-dimensions-title { 2698 margin: 0 0 6px; 2699 font-size: 15px; 2700 font-weight: 600; 2701 color: #840074; 2702 } 2703 2704 .jdmc-ai-photo-wrapper-direct .jdmc-ai-dimensions-title { 2705 margin-top: 10px; 2706} 2707 2708 .jdmc-ai-size-zones { 2709 display: grid; 2710 grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); 2711 gap: 8px; 2712 margin-top: 4px; 2713 } 2714 2715 .jdmc-ai-size-zone { 2716 padding: 6px 8px 8px; 2717 border-radius: 8px; 2718 background: #ffffff; 2719 border: 1px solid #d3dff2; 2720 } 2721 2722 .jdmc-ai-size-zone-title { 2723 margin: 0 0 4px; 2724 font-size: 13px; 2725 font-weight: 600; 2726 color: #000; 2727 } 2728 2729 .jdmc-ai-taille-select { 2730 width: 100% !important; 2731 box-sizing: border-box; 2732 font-size: 14px; 2733 padding: 6px 40px 6px 8px; 2734 border-radius: 3px; 2735 border: 1px solid #ccc; 2736 background-color: #fff !important; 2737 background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6'%3E%3Cpath fill='%23333' d='M0 0l5 6 5-6z'/%3E%3C/svg%3E"); 2738 background-repeat: no-repeat; 2739 background-position: right 10px center; 2740 background-size: 18px 18px; 2741 -webkit-appearance: none; 2742 -moz-appearance: none; 2743 appearance: none; 2744 cursor: pointer !important; 2745 } 2746 2747 .jdmc-ai-taille-select:hover, 2748 .jdmc-ai-taille-select:focus { 2749 background-color: #fff !important; 2750 outline: none !important; 2751 box-shadow: none !important; 2752 border-color: #ccc !important; 2753 color: #333 !important; 2754 } 2755 2756 .jdmc-ai-forme-wrapper { 2757 margin: 0 0 8px; 2758 } 2759 2760 .jdmc-ai-forme-title { 2761 margin: 0 0 4px; 2762 font-size: 15px; 2763 font-weight: 600; 2764 color: #840074; 2765 } 2766 2767 .jdmc-ai-forme-swatches .variable-items-wrapper { 2768 display: flex; 2769 flex-wrap: wrap; 2770 gap: 6px; 2771 margin-top: 2px; 2772 } 2773 2774 .jdmc-ai-forme-swatches .jdmc-ai-forme-item { 2775 display: inline-flex; 2776 align-items: center; 2777 justify-content: center; 2778 padding: 5px 12px; 2779 border-radius: 6px !important; 2780 border: 1px solid #a8a8a8; 2781 background: #fff; 2782 font-size: 13px; 2783 line-height: 1.2; 2784 cursor: pointer; 2785 width: auto !important; 2786 height: auto !important; 2787 box-sizing: border-box; 2788 white-space: nowrap; 2789 box-shadow: 0 0 0 1px #a8a8a8; 2790 } 2791 2792 .jdmc-ai-forme-swatches .jdmc-ai-forme-item .variable-item-span { 2793 width: auto !important; 2794 height: auto !important; 2795 margin: 0; 2796 line-height: 1.2; 2797 white-space: nowrap; 2798 padding:6px; 2799 font-size:14px; 2800 } 2801 2802 .jdmc-ai-forme-swatches .jdmc-ai-forme-item.selected { 2803 border-color: #D100B7; 2804 box-shadow: 0 0 0 1px #6319FF; 2805 background: #eef4ff; 2806 color: #D100B7; 2807 font-weight: 600; 2808 } 2809 2810 /* Messages d'erreur en rouge pour statut IA */ 2811 .jdmc-ai-status.jdmc-ai-has-error { 2812 color: #c00; 2813 } 2814 2815 /* === ACCORDÃONS (encarts enroulés) === */ 2816 .jdmc-ai-collapsible-header { 2817 display:flex; 2818 align-items:center; 2819 justify-content:space-between; 2820 gap:8px; 2821 cursor:pointer; 2822 } 2823 2824 .jdmc-ai-header-main { 2825 display:flex; 2826 align-items:center; 2827 gap:10px; 2828 } 2829 2830.jdmc-ai-header-thumb { 2831 width: 56px; 2832 aspect-ratio: 1 / 1; /* Toujours carré */ 2833 height: auto !important; /* Laisse le ratio gérer la hauteur */ 2834 border-radius: 8px; 2835 object-fit: cover; 2836 flex: 0 0 auto; /* Empêche le flex de lâécraser */ 2837 max-width: none !important; /* On ignore les max-width globales du thème */ 2838 display: block; 2839} 2840 2841 /* Vignette visible seulement quand l'encart est replié */ 2842 .jdmc-ai-collapsible:not(.jdmc-ai-collapsed) .jdmc-ai-header-thumb { 2843 display:none; 2844 } 2845 2846 .jdmc-ai-collapsible-arrow { 2847 font-size:22px; 2848 line-height:1; 2849 color:#87236B; 2850 transition:transform 0.2s ease; 2851 } 2852 2853 .jdmc-ai-collapsible.jdmc-ai-collapsed .jdmc-ai-collapsible-body { 2854 /* caché en JS (slideUp/Down) */ 2855 } 2856 2857 .jdmc-ai-collapsible:not(.jdmc-ai-collapsed) .jdmc-ai-collapsible-arrow { 2858 transform:rotate(180deg); 2859 } 2860 2861/* On aligne parfaitement les 2 titres d'encarts */ 2862.jdmc-ai-direct-title, 2863.jdmc-ai-ai-block .jdmc-ai-collapsible-header .jdmc-ai-title { 2864 margin-left: 0 !important; 2865 padding-left: 0 !important; 2866 text-indent: 0 !important; 2867} 2868 2869/* Base : pas d'emoji par défaut */ 2870.jdmc-ai-direct-title::before, 2871.jdmc-ai-ai-block .jdmc-ai-collapsible-header .jdmc-ai-title::before { 2872 content: ""; 2873 display: none; 2874 margin-right: 4px; 2875} 2876 2877/* Emoji encart 1, uniquement quand ouvert */ 2878.jdmc-ai-direct-block:not(.jdmc-ai-collapsed) .jdmc-ai-direct-title::before { 2879 content: "ð¤"; 2880 display: inline-block; 2881} 2882 2883/* Emoji encart 2, uniquement quand ouvert */ 2884.jdmc-ai-ai-block:not(.jdmc-ai-collapsed) .jdmc-ai-collapsible-header .jdmc-ai-title::before { 2885 content: "â¨"; 2886 display: inline-block; 2887} 2888 2889/* On s'assure qu'AUCUN sous-titre interne ne récupère un emoji */ 2890.jdmc-ai-mode .jdmc-ai-title::before, 2891.jdmc-ai-styles .jdmc-ai-title::before, 2892.jdmc-ai-validate-title::before { 2893 content: none !important; 2894 display: none !important; 2895} 2896 2897 2898/* Alignement identique des emojis ð¤ et ⨠*/ 2899.jdmc-ai-direct-title::before, 2900.jdmc-ai-ai-block .jdmc-ai-collapsible-header .jdmc-ai-title::before { 2901 display: inline-block; 2902 vertical-align: middle; 2903 margin-right: 6px; 2904 margin-left: 0; 2905} 2906 2907.jdmc-ai-ai-block .jdmc-ai-collapsible-header { 2908 padding-left: 0 !important; 2909} 2910 2911/* Harmonisation du titre dâupload (même style que Forme & Dimensions) */ 2912.jdmc-ai-upload-wrapper-top .jdmc-ai-edit-image-title { 2913 margin: 8px 0 6px; 2914 font-size: 15px; 2915 font-weight: 600; 2916 color: #D100B7; 2917} 2918 2919.jdmc-crop-modal { 2920 position: fixed; 2921 inset: 0; 2922 z-index: 9999; 2923 display: flex; /* important */ 2924 align-items: center; /* centre verticalement */ 2925 justify-content: center; /* centre horizontalement */ 2926 font-family: inherit; 2927} 2928 2929.jdmc-crop-modal.is-open { 2930 display: flex; 2931} 2932 2933.jdmc-crop-backdrop { 2934 position: absolute; 2935 inset: 0; 2936 background: rgba(0, 0, 0, 0.55); 2937} 2938 2939.jdmc-crop-dialog { 2940 position: relative; 2941 z-index: 1; 2942 background: #fff; 2943 max-width: 100%; 2944 width: 100%; 2945 max-height: 100%; 2946 display: flex; 2947 flex-direction: column; 2948} 2949 2950@media (min-width: 768px) { 2951 .jdmc-crop-dialog { 2952 max-width: 520px; 2953 border-radius: 8px; 2954 overflow: hidden; 2955 } 2956} 2957 2958.jdmc-crop-header, 2959.jdmc-crop-footer { 2960 padding: 10px 14px; 2961 display: flex; 2962 align-items: center; 2963 justify-content: space-between; 2964} 2965 2966.jdmc-crop-header { 2967 border-bottom: 1px solid #eee; 2968 font-weight: 600; 2969} 2970 2971.jdmc-crop-body { 2972 padding: 10px 14px; 2973 flex: 1 1 auto; 2974 overflow: hidden; 2975} 2976 2977.jdmc-crop-image-wrapper { 2978 width: 100%; 2979 height: min(70vh, 420px); 2980 max-height: 420px; 2981} 2982 2983.jdmc-crop-image-wrapper img { 2984 max-width: 100%; 2985 max-height: 100%; 2986 display: block; 2987 margin: 0 auto; 2988} 2989 2990.jdmc-crop-close { 2991 background: none; 2992 border: none; 2993 cursor: pointer; 2994 font-size: 18px; 2995 line-height: 1; 2996} 2997 2998.jdmc-btn { 2999 border-radius: 4px; 3000 border: 1px solid transparent; 3001 padding: 8px 12px; 3002 cursor: pointer; 3003 font-size: 14px; 3004} 3005 3006.jdmc-btn-primary { 3007 background: #0073aa; 3008 color: #fff; 3009 border-color: #0073aa; 3010} 3011 3012.jdmc-btn-secondary { 3013 background: #f3f3f3; 3014 color: #333; 3015 border-color: #ccc; 3016} 3017 3018.jdmc-ai-crop-disabled { 3019 opacity: 0.5;
3020 cursor: not-allowed; 3021} 3022 3023.jdmc-ai-crop-btn-loading { 3024 opacity: 0.7; 3025 cursor: wait; 3026} 3027 3028.jdmc-ai-crop-disabled { 3029 background: #e5e5e5 !important; /* gris clair très visible */ 3030 color: #999 !important; /* texte gris moyen */ 3031 border: 2px solid #ccc !important; 3032 cursor: not-allowed !important; 3033 opacity: 1 !important; /* 100% visible */ 3034} 3035 3036.jdmc-ai-crop-disabled:hover { 3037 background: #e5e5e5 !important; 3038 border-color: #ccc !important; 3039 color: #999 !important; 3040} 3041 3042/* Bouton recadrage actif (garde ton style normal) */ 3043.jdmc-ai-crop-direct, 3044.jdmc-ai-crop-edit, 3045.jdmc-ai-crop-preview { 3046 border: 2px solid #ccc; /* même bordure dans les deux états */ 3047} 3048 3049/* Bouton recadrage désactivé â très visible */ 3050.jdmc-ai-crop-disabled { 3051 background: #f0f0f0 !important; /* gris clair très lisible */ 3052 color: #999 !important; /* texte grisé mais visible */ 3053 cursor: not-allowed !important; 3054 opacity: 1 !important; /* bien visible */ 3055 border-color: #ccc !important; /* on garde la même bordure EXACTE */ 3056} 3057 3058/* Désactive les effets hover */ 3059.jdmc-ai-crop-disabled:hover { 3060 background: #f0f0f0 !important; 3061 color: #999 !important; 3062 border-color: #ccc !important; 3063} 3064 3065/* Bloc de l'onglet "à partir d'une image" (encart IA) */ 3066.jdmc-ai-edit-thumb-block { 3067 margin-top: 6px; 3068} 3069 3070/* Miniatures des images uploadées (encart 1 + onglet "à partir d'une image") */ 3071.jdmc-ai-direct-thumb, 3072.jdmc-ai-edit-thumb { 3073 width: 200px !important; 3074 height: auto !important; 3075 max-height: none !important; 3076 object-fit: contain; /* au cas où il resterait un cadre */ 3077 display: block; 3078} 3079 3080.woo-variation-swatches .variable-items-wrapper .variable-item:not(.radio-variable-item).selected, .woo-variation-swatches .variable-items-wrapper .variable-item:not(.radio-variable-item).selected:hover { 3081 background:#D100B7; 3082 color:white; 3083} 3084 3085 </style> 3086
3087<script src="https://unpkg.com/[email protected]/dist/cropper.min.js"></script>
3087 3088 3089
3089<script> 3090 (function($) { 3091 $(function() { 3092 var restUrl = "https:\/\/api.diamant-strass-dmc.com\/wp-json\/jdmc\/v1\/generate-image"; 3093 var ajaxUrl = "https:\/\/diamant-strass-dmc.com\/wp-admin\/admin-ajax.php"; 3094 var $hiddenField = $('.jdmc-ai-attachment-id'); 3095 3096 function jdmcGetAiRequestToken() { 3097 return $.ajax({ 3098 url: ajaxUrl, 3099 method: 'POST', 3100 dataType: 'json', 3101 cache: false, 3102 data: { action: 'jdmc_ai_request_token' } 3103 }).then(function(response) { 3104 if (!response || !response.success || !response.data || !response.data.token) { 3105 return $.Deferred().reject({ 3106 responseJSON: { error: 'Impossible dâobtenir lâautorisation de génération.' } 3107 }).promise(); 3108 } 3109 return response.data.token; 3110 }); 3111 } 3112 3113 // === Masquer le tout premier prix "à partir de XXâ¬" pour certains produits === 3114 var jdmcCurrentProductId = 72384; 3115 3116 // === JDMC Retargeting events (Meta/TikTok/GA4) === 3117 // Dédoublonnage simple par session pour éviter les doubles hits 3118 window.__jdmcDpImageUploaded = window.__jdmcDpImageUploaded || false; 3119 3120 function jdmcSafeEventName(name) { 3121 return String(name || '') 3122 .replace(/[^a-zA-Z0-9_]/g, '_') 3123 .replace(/_+/g, '_') 3124 .toLowerCase() 3125 .slice(0, 40); 3126 } 3127 3128 function jdmcTrack(eventName, params, onceKey) { 3129 params = params || {}; 3130 params.product_id = jdmcCurrentProductId; 3131 params.page_path = window.location.pathname || ''; 3132 3133 // onceKey => 1 hit max par session 3134 if (onceKey) { 3135 try { 3136 var k = 'jdmc_once_' + onceKey; 3137 if (sessionStorage.getItem(k)) return; 3138 sessionStorage.setItem(k, '1'); 3139 } catch (e) {} 3140 } 3141 3142 // Meta Pixel 3143 if (typeof window.fbq === 'function') { 3144 try { 3145 window.fbq('trackCustom', eventName, params); 3146 } catch (e) {} 3147 } 3148 3149 // GA4 3150 if (typeof window.gtag === 'function') { 3151 try { 3152 window.gtag('event', jdmcSafeEventName(eventName), params); 3153 } catch (e) {} 3154 } 3155 3156 // TikTok Pixel 3157 if (window.ttq && typeof window.ttq.track === 'function') { 3158 try { 3159 window.ttq.track(eventName, params); 3160 } catch (e) {} 3161 } 3162 } 3163 3164 function jdmcMarkImageUploaded(origin, attachmentId) { 3165 window.__jdmcDpImageUploaded = true; 3166 jdmcTrack('DP_ImageUploaded', { 3167 origin: origin || 'unknown', 3168 attachment_id: attachmentId || null 3169 }); 3170 } 3171 3172 // View product custom DP (utile pour audience "view") â multi-lang, sans liste dâURLs 3173 // On déclenche uniquement si lâUI Custom DP est réellement présente sur la page. 3174 try { 3175 if (document.querySelector('.jdmc-ai-direct-upload, .jdmc-ai-edit-upload, .jdmc-ai-photo-wrapper, .jdmc-ai-tabs')) { 3176 jdmcTrack('DP_ViewCustom', { 3177 page_path: location.pathname, 3178 lang: (document.documentElement && document.documentElement.lang) ? document.documentElement.lang : null 3179 }, 'viewcustom_' + location.pathname); 3180 } 3181 } catch(e) {} 3182// ð Mets ici les IDs des produits pour lesquels TU veux cacher le prix du haut 3183 var jdmcHideTopPriceFor = [72384,99940,99390,99720,99885,99775,84680,99446,99995,99335,99665,99830,99610,99555,99445]; 3184 3185 if (jdmcHideTopPriceFor.indexOf(jdmcCurrentProductId) !== -1) { 3186 var $summary = $('.single-product div.product .summary'); 3187 3188 if ($summary.length) { 3189 // On cible UNIQUEMENT le tout premier prix (celui sous le titre) 3190 var $topPrice = $summary.find('p.price').first(); 3191 if ($topPrice.length) { 3192 $topPrice.hide(); 3193 } 3194 } 3195 } 3196 // === /Masquer le tout premier prix === 3197 3198 // === Variables globales pour le recadrage (modale commune) === 3199 var $jdmcCropModal = null; 3200 var $jdmcCropImage = null; 3201 var $jdmcCropApply = null; 3202 var $jdmcCropProgress = null; 3203 var $jdmcCropText = null; 3204 var jdmcCropper = null; 3205 var currentCropAttachmentId = null; 3206 var currentCropCallback = null; 3207 3208 // Assure la création de la modale de recadrage
3209 function jdmcEnsureCropModal() { 3210 if ($jdmcCropModal && $jdmcCropModal.length) return; 3211 3212 $jdmcCropModal = $( 3213 3214 '<div class="jdmc-crop-modal" style="display:none;">' + 3215 '<div class="jdmc-crop-backdrop"></div>' + 3216 '<div class="jdmc-crop-dialog">' + 3217 '<div class="jdmc-crop-header">' + 3218 '<span>Recadrer lâimage</span>' + 3219 '<button type="button" class="jdmc-crop-close" aria-label="Fermer">Ã</button>' + 3220 '</div>' + 3221 '<div class="jdmc-crop-body">' + 3222 '<div class="jdmc-crop-image-wrapper">' + 3223 '<img class="jdmc-crop-image" src="" alt="Image à recadrer">' + 3224 '</div>' + 3225 '</div>' + 3226 '<div class="jdmc-crop-footer" style="display:flex;align-items:center;gap:10px;justify-content:flex-end;">' + 3227 '<div class="jdmc-crop-progress-wrapper" style="margin-right:auto;display:flex;align-items:center;gap:6px;">' + 3228 '<div class="jdmc-ai-upload-progress jdmc-ai-upload-progress-crop" style="display:none;"></div>' + 3229 '<span class="jdmc-crop-progress-text" style="display:none;font-size:12px;">Recadrage en coursâ¦</span>' + 3230 '</div>' + 3231 '<button type="button" class="jdmc-btn jdmc-btn-secondary jdmc-crop-cancel">Annuler</button>' + 3232 '<button type="button" class="jdmc-btn jdmc-btn-primary jdmc-crop-apply">Valider le recadrage</button>' + 3233 '</div>' + 3234 '</div>' + 3235 '</div>' 3236 ); 3237 3238 $('body').append($jdmcCropModal); 3239 3240 $jdmcCropImage = $jdmcCropModal.find('.jdmc-crop-image'); 3241 $jdmcCropApply = $jdmcCropModal.find('.jdmc-crop-apply'); 3242 $jdmcCropProgress = $jdmcCropModal.find('.jdmc-ai-upload-progress-crop'); 3243 $jdmcCropText = $jdmcCropModal.find('.jdmc-crop-progress-text'); 3244 3245 $jdmcCropModal.on('click', '.jdmc-crop-close, .jdmc-crop-cancel', function(e) { 3246 e.preventDefault(); 3247 jdmcCloseCropModal(); 3248 }); 3249 3250 $jdmcCropModal.on('click', '.jdmc-crop-backdrop', function(e) { 3251 e.preventDefault(); 3252 jdmcCloseCropModal(); 3253 }); 3254 3255 $(document).on('keydown.jdmcCropEsc', function(e) { 3256 if (e.key === 'Escape' && $jdmcCropModal.is(':visible')) { 3257 jdmcCloseCropModal(); 3258 } 3259 }); 3260 } 3261 3262 function jdmcOpenCropModal(imgUrl, attachmentId, callback) { 3263 jdmcEnsureCropModal(); 3264 3265 currentCropAttachmentId = attachmentId || null; 3266 currentCropCallback = (typeof callback === 'function') ? callback : null; 3267 3268 if (jdmcCropper) { 3269 jdmcCropper.destroy(); 3270 jdmcCropper = null; 3271 } 3272 3273 $jdmcCropImage.attr('src', imgUrl); 3274 3275 $jdmcCropImage.one('load', function() { 3276 jdmcCropper = new Cropper(this, { 3277 viewMode: 1, 3278 movable: true, 3279 zoomable: true, 3280 scalable: false, 3281 rotatable: false, 3282 responsive: true, 3283 autoCropArea: 1 3284 }); 3285 }); 3286 3287 // reset état loading éventuel 3288 if ($jdmcCropApply && $jdmcCropApply.length) { 3289 $jdmcCropApply 3290 .prop('disabled', false) 3291 .removeClass('jdmc-ai-crop-btn-loading'); 3292 } 3293 if ($jdmcCropProgress && $jdmcCropProgress.length) { 3294 $jdmcCropProgress.hide(); 3295 } 3296 if ($jdmcCropText && $jdmcCropText.length) { 3297 $jdmcCropText.hide(); 3298 } 3299 3300 $jdmcCropModal.css('display', 'flex'); 3301 } 3302
3303 function jdmcCloseCropModal() { 3304 if (jdmcCropper) { 3305 jdmcCropper.destroy(); 3306 jdmcCropper = null; 3307 } 3308 if ($jdmcCropModal && $jdmcCropModal.length) { 3309 $jdmcCropModal.hide(); 3310 } 3311 currentCropAttachmentId = null; 3312 currentCropCallback = null; 3313 } 3314 3315 function jdmcApplyCrop() { 3316 if (!jdmcCropper || !currentCropAttachmentId) { 3317 jdmcCloseCropModal(); 3318 return; 3319 } 3320 3321 var data = jdmcCropper.getData(true); 3322 if (!data || !data.width || !data.height) { 3323 alert('Recadrage invalide.'); 3324 jdmcCloseCropModal(); 3325 return; 3326 } 3327 3328 // Feedback visuel : bouton + barre + texte "en cours" 3329 if ($jdmcCropApply && $jdmcCropApply.length) { 3330 $jdmcCropApply 3331 .prop('disabled', true) 3332 .addClass('jdmc-ai-crop-btn-loading'); 3333 } 3334 if ($jdmcCropProgress && $jdmcCropProgress.length) { 3335 $jdmcCropProgress.show(); 3336 } 3337 if ($jdmcCropText && $jdmcCropText.length) { 3338 $jdmcCropText.show(); 3339 } 3340 3341 $.ajax({ 3342 url: ajaxUrl, 3343 method: 'POST', 3344 dataType: 'json', 3345 data: { 3346 action: 'jdmc_ai_crop_image', 3347 attachment_id: currentCropAttachmentId, 3348 x: data.x, 3349 y: data.y, 3350 width: data.width, 3351 height: data.height 3352 } 3353 }).done(function(response) { 3354 if (!response || !response.success || !response.data) { 3355 alert((response && response.data && response.data.message) || 'Erreur lors du recadrage.'); 3356 return; 3357 } 3358 3359 var d = response.data; 3360 if (currentCropCallback) { 3361 currentCropCallback(d.attachment_id, d.image_url); 3362 } 3363 }).fail(function() { 3364 alert('Erreur réseau lors du recadrage.'); 3365 }).always(function() { 3366 if ($jdmcCropApply && $jdmcCropApply.length) { 3367 $jdmcCropApply 3368 .prop('disabled', false) 3369 .removeClass('jdmc-ai-crop-btn-loading'); 3370 } 3371 if ($jdmcCropProgress && $jdmcCropProgress.length) { 3372 $jdmcCropProgress.hide(); 3373 } 3374 if ($jdmcCropText && $jdmcCropText.length) { 3375 $jdmcCropText.hide(); 3376 } 3377 3378 jdmcCloseCropModal(); 3379 }); 3380 } 3381 3382 // écouteur bouton "Valider le recadrage" 3383 $(document).on('click', '.jdmc-crop-apply', function(e) { 3384 e.preventDefault(); 3385 jdmcApplyCrop(); 3386 }); 3387 3388 $('.jdmc-ai-wrapper').each(function() { 3389 var $wrapper = $(this); 3390 var $prompt = $wrapper.find('.jdmc-ai-prompt'); 3391 var $editPrompt = $wrapper.find('.jdmc-ai-edit-prompt'); 3392 var $upload = $wrapper.find('.jdmc-ai-upload'); // champ 2 3393 var $directUpload = $wrapper.find('.jdmc-ai-direct-upload'); // champ 1 3394 var $editThumb = $wrapper.find('.jdmc-ai-edit-thumb'); 3395 var $btn = $wrapper.find('.jdmc-ai-generate-btn'); 3396 var $status = $wrapper.find('.jdmc-ai-status'); // Messages IA uniquement 3397 var $previewBox = $wrapper.find('.jdmc-ai-preview'); 3398 var $previewImg = $previewBox.find('img'); 3399 var $styleOptions = $wrapper.find('.jdmc-style-option'); 3400 var $tabs = $wrapper.find('.jdmc-ai-tab'); 3401
3402 // Boutons de recadrage spécifiques à ce wrapper 3403 var $directCropBtn = null; 3404 var $editCropBtn = null; 3405 var $previewCropBtn = null; 3406 3407 // === JDMC FIX v7: Réordonner le bloc pointillé IA en 3 éléments (Forme, Dimensions, Upload) === 3408 (function() { 3409 if ($wrapper.data('jdmcV7Done')) return; 3410 $wrapper.data('jdmcV7Done', true); 3411 3412 var $iaBody = $wrapper.find('.jdmc-ai-ai-block .jdmc-ai-collapsible-body'); 3413 if (!$iaBody.length) return; 3414 3415 var $tabsBar = $iaBody.find('.jdmc-ai-tabs').first(); 3416 var $varIa = $iaBody.find('.jdmc-ai-variations-part-ia').first(); // bloc pointillé IA existant 3417 if (!$tabsBar.length || !$varIa.length) return; 3418 3419 // 1) Placer le bloc pointillé IA juste sous les onglets 3420 if ($varIa.prev()[0] !== $tabsBar[0]) { 3421 $varIa.detach().insertAfter($tabsBar); 3422 } 3423 3424 // 2) à l'intérieur du bloc pointillé, on ne garde que : 3425 // - .jdmc-ai-forme-wrapper-ia 3426 // - .jdmc-ai-dimensions-wrapper-ia 3427 // - (upload + son titre) déplacés depuis le mode "image" 3428 var $forme = $varIa.find('.jdmc-ai-forme-wrapper-ia').first(); 3429 var $dims = $varIa.find('.jdmc-ai-dimensions-wrapper-ia').first(); 3430 var $allInside = $varIa.children().toArray(); 3431 3432 // Supprimer tout ce qui n'est pas forme/dims 3433 $($allInside).each(function(){ 3434 var $el = $(this); 3435 if ($el[0] !== $forme[0] && $el[0] !== $dims[0]) { 3436 $el.detach(); 3437 } 3438 }); 3439 3440 var $uploadTitle = $iaBody.find('.jdmc-ai-mode-edit .jdmc-ai-edit-image-title').first(); 3441 var $facultatif = $iaBody.find('.jdmc-ai-mode-edit .jdmc-ai-label-edit-facultatif').first(); 3442 var $uploadWrap = $('<div class="jdmc-ai-upload-wrapper-top"></div>'); 3443 3444 if ($uploadTitle.length) { 3445 $uploadTitle.text('Je choisis la photo / image à retoucher'); 3446 3447 var $cursor = $uploadTitle; 3448 var finished = false; 3449 while ($cursor.length && !finished) { 3450 var $next = $cursor.next(); 3451 if ($facultatif.length && $next.is($facultatif)) { 3452 finished = true; 3453 } 3454 3455 if ($cursor.is($uploadTitle)) { 3456 $cursor.detach().appendTo($uploadWrap); 3457 } else { 3458 if ($cursor.is('.jdmc-ai-upload, small.jdmc-ai-help, .jdmc-ai-edit-thumb, .jdmc-ai-upload-status-edit, .jdmc-ai-upload-progress-edit, .jdmc-ai-remove-edit')) { 3459 $cursor.detach().appendTo($uploadWrap); 3460 } 3461 } 3462 $cursor = $next; 3463 } 3464 } 3465 3466 if ($uploadWrap.children().length === 0) { 3467 $iaBody.find('.jdmc-ai-mode-edit .jdmc-ai-edit-image-title, .jdmc-ai-mode-edit .jdmc-ai-upload, .jdmc-ai-mode-edit small.jdmc-ai-help, .jdmc-ai-mode-edit .jdmc-ai-edit-thumb, .jdmc-ai-mode-edit .jdmc-ai-upload-status-edit, .jdmc-ai-mode-edit .jdmc-ai-upload-progress-edit, .jdmc-ai-mode-edit .jdmc-ai-remove-edit').each(function(){ 3468 $(this).detach().appendTo($uploadWrap); 3469 }); 3470 $uploadWrap.find('.jdmc-ai-edit-image-title').first().text('Je choisis la photo / image à retoucher'); 3471 } 3472 3473 if ($dims.length) { 3474 $uploadWrap.insertAfter($dims); 3475 } else if ($forme.length) { 3476 $uploadWrap.insertAfter($forme); 3477 } else { 3478 $varIa.append($uploadWrap); 3479 } 3480 3481 function toggleUploadTop(mode) { 3482 var isImage = (mode === 'edit'); 3483 $uploadWrap.toggle(isImage); 3484 } 3485 3486 toggleUploadTop('prompt'); 3487 3488 $tabs.on('click.jdmcV7', function() { 3489 var mode = $(this).data('mode'); 3490 toggleUploadTop(mode); 3491 }); 3492 3493 })(); 3494 // === /JDMC FIX v7 === 3495 3496 var $facultatifLabel = $wrapper.find('.jdmc-ai-label-edit-facultatif'); 3497 var $editTitle = $wrapper.find('.jdmc-ai-edit-title'); 3498 3499 var $directFileName = $wrapper.find('.jdmc-ai-direct-filename'); 3500 var $directThumb = $wrapper.find('.jdmc-ai-direct-thumb'); 3501 3502 var $directStatus = $wrapper.find('.jdmc-ai-upload-status-direct'); 3503 var $editStatus = $wrapper.find('.jdmc-ai-upload-status-edit'); 3504 var $directProgress = $wrapper.find('.jdmc-ai-upload-progress-direct'); 3505 var $editProgress = $wrapper.find('.jdmc-ai-upload-progress-edit'); 3506 3507 var $globalStatus = $wrapper.find('.jdmc-ai-global-status'); 3508 var $bottomProgress = $wrapper.find('.jdmc-ai-upload-progress-bottom'); 3509 3510 var $recapFormeVal = $wrapper.find('.jdmc-ai-recap-forme-value'); 3511 var $recapTailleVal = $wrapper.find('.jdmc-ai-recap-taille-value'); 3512 var $recapStyleRow = $wrapper.find('.jdmc-ai-recap-style'); 3513 var $recapStyleVal = $wrapper.find('.jdmc-ai-recap-style-value'); 3514 var $recapImgThumb = $wrapper.find('.jdmc-ai-recap-image-thumb'); 3515 3516 var $removeDirect = $wrapper.find('.jdmc-ai-remove-direct'); 3517 var $removeEdit = $wrapper.find('.jdmc-ai-remove-edit'); 3518 var $removePreview = $wrapper.find('.jdmc-ai-remove-preview'); 3519 var $removeRecap = $wrapper.find('.jdmc-ai-remove-recap'); 3520 3521 var $progress = $wrapper.find('.jdmc-ai-progress'); 3522 var $priceDirect = $wrapper.find('.jdmc-ai-price-duplicate-direct'); 3523 var $priceBottom = $wrapper.find('.jdmc-ai-price-duplicate-bottom'); 3524 3525 var $stylesBlock = $wrapper.find('.jdmc-ai-styles'); 3526 var $stylesOriginalParent = $stylesBlock.parent(); 3527 var $stylesOriginalNext = $stylesBlock.next(); 3528 var $stylesPromptText = $wrapper.find('.jdmc-ai-styles-prompt-text'); 3529 3530 var $styleNone = $styleOptions.filter('[data-style-key="none"]');
3531 var $styleNonNone = $styleOptions.not($styleNone); 3532 3533 var $styleTransformTitle = $wrapper.find('.jdmc-ai-style-transform-title'); 3534 3535 var $form = $wrapper.closest('form.cart'); 3536 var $tailleOriginal = $form.find('select#taille'); 3537 var $formeOriginal = $form.find('select[name*="forme"]').first(); 3538 var $tailleMirror = $wrapper.find('.jdmc-ai-taille-select'); 3539 3540 var $validateBlock = $wrapper.find('.jdmc-ai-validate-block'); 3541 var $cartRow = $wrapper.find('.jdmc-ai-cart-row'); 3542 var $addToCartBtn = null; 3543 3544 var currentMode = 'prompt'; 3545 var isLoading = false; 3546 var isUploadInProgress = false; 3547 3548 var sources = { 3549 direct: { src: '', attachmentId: null, lastSetAt: 0 }, 3550 edit: { src: '', attachmentId: null, lastSetAt: 0 }, 3551 ai: { src: '', attachmentId: null, lastSetAt: 0 } 3552 }; 3553 var sourceCounter = 0; 3554 var mainOrigin = null; 3555 var lastImageSrc = ''; 3556 var lastImageOrigin = null; 3557 var editImageBlob = null; 3558 3559 /* ============ ACCORDÃONS MUTUELLEMENT EXCLUSIFS + EMOJIS ============ */ 3560 3561 /* ============ ACCORDÃONS MUTUELLEMENT EXCLUSIFS + EMOJIS ============ */ 3562 3563var $collapsibles = $wrapper.find('.jdmc-ai-collapsible'); 3564var $titleEmojis = $wrapper.find('.jdmc-ai-title-emoji'); 3565 3566// Init : tous repliés + contenu caché + emojis cachés 3567$collapsibles.each(function() { 3568 var $b = $(this); 3569 $b.addClass('jdmc-ai-collapsed'); 3570 $b.find('.jdmc-ai-collapsible-body').hide(); 3571}); 3572$titleEmojis.hide(); 3573 3574$wrapper.on('click', '.jdmc-ai-collapsible-header', function(e) { 3575 e.preventDefault(); 3576 3577 var $block = $(this).closest('.jdmc-ai-collapsible'); 3578 var $body = $block.find('.jdmc-ai-collapsible-body'); 3579 var wasCollapsed = $block.hasClass('jdmc-ai-collapsed'); 3580 3581 if (wasCollapsed) { 3582 // On ouvre ce bloc, on ferme les autres 3583 $collapsibles.not($block).each(function() { 3584 var $other = $(this); 3585 if (!$other.hasClass('jdmc-ai-collapsed')) { 3586 $other.addClass('jdmc-ai-collapsed'); 3587 $other.find('.jdmc-ai-collapsible-body').stop(true,true).slideUp(200); 3588 $other.find('.jdmc-ai-title-emoji').hide(); 3589 } 3590 }); 3591 3592 // Ouvrir le bloc cliqué 3593 $block.removeClass('jdmc-ai-collapsed'); 3594 $body.stop(true,true).slideDown(200, function() { 3595 // Une fois ouvert, on scrolle pour avoir le haut de l'encart visible 3596 var offsetTop = $block.offset().top || 0; 3597 var headerOffset = 80; // ajuste si tu as un header sticky plus grand 3598 var scrollTarget = Math.max(0, offsetTop - headerOffset); 3599 3600 $('html, body').animate({ scrollTop: scrollTarget }, 200); 3601 }); 3602 $block.find('.jdmc-ai-title-emoji').show(); 3603 3604 } else { 3605 // On replie ce bloc 3606 $block.addClass('jdmc-ai-collapsed'); 3607 $body.stop(true,true).slideUp(200); 3608 $block.find('.jdmc-ai-title-emoji').hide(); 3609 } 3610}); 3611 3612 3613 3614 /* ================== HELPERS ================== */ 3615 3616 function ensureGalleryContainer() { 3617 var $gallery = $wrapper.find('.jdmc-ai-gallery'); 3618 if (!$gallery.length) { 3619 var $previewBox = $wrapper.find('.jdmc-ai-preview').first(); 3620 var $btn = $wrapper.find('.jdmc-ai-generate-btn').first(); 3621 if ($previewBox.length || $btn.length) { 3622 $gallery = $( 3623 '<div class="jdmc-ai-gallery" style="display:none;">' + 3624 '<p class="jdmc-ai-label">Mes images générées :</p>' + 3625 '<div class="jdmc-ai-gallery-list"></div>' + 3626 '</div>' 3627 ); 3628 if ($btn.length) { 3629 $gallery.insertAfter($btn); 3630 } else { 3631 $gallery.insertBefore($previewBox); 3632 } 3633 } 3634 } 3635 return $gallery; 3636 } 3637 3638 if (typeof aiGallery === 'undefined') { var aiGallery = []; } 3639 3640 function pushGalleryItem(src, attachmentId) { 3641 if (!src) return; 3642 if (typeof aiGallery === 'undefined') aiGallery = []; 3643 for (var i=0;i<aiGallery.length;i++) { 3644 var it = aiGallery[i]; 3645 if (!it) continue; 3646 if (it.src === src) return; 3647 if (attachmentId && it.attachmentId && (String(it.attachmentId) === String(attachmentId))) return; 3648 } 3649 aiGallery.push({ attachmentId: (attachmentId||null), src: src, createdAt: Date.now() }); 3650 } 3651 3652 function renderGallery() { 3653 var $gallery = ensureGalleryContainer(); 3654 if (!$gallery || !$gallery.length) return; 3655 var $list = $gallery.find('.jdmc-ai-gallery-list'); 3656 aiGallery = (aiGallery || []).filter(function(it){ return it && it.src; }); 3657 if (!aiGallery.length) { $gallery.hide(); if ($list.length) $list.empty(); return; } 3658 $list.empty();
3659 aiGallery.forEach(function(item, idx) { 3660 var $thumb = $('<div class="jdmc-ai-thumb" />').attr('data-idx', idx); 3661 var $check = $('<div class="jdmc-ai-thumb-check" />'); 3662 $check.text(item.attachmentId && (String(item.attachmentId) === String($hiddenField.val())) ? 'â' : ''); 3663 var $img = $('<img/>').attr('src', item.src).attr('alt', 'Générée #' + (idx+1)); 3664 $thumb.append($check).append($img); 3665 if (item.src === lastImageSrc) $thumb.addClass('jdmc-selected'); 3666 $list.append($thumb); 3667 }); 3668 $gallery.show(); 3669 } 3670 3671 function setMainFromGallery(idx) { 3672 var item = aiGallery[idx]; 3673 if (!item) return; 3674 sources.ai.src = item.src; 3675 sources.ai.attachmentId = item.attachmentId || null; 3676 sources.ai.lastSetAt = Date.now(); 3677 $hiddenField.val(item.attachmentId || ''); 3678 $previewImg.attr('src', item.src); 3679 $previewBox.show(); 3680 if ($removePreview.length) $removePreview.show(); 3681 if ($previewCropBtn && $previewCropBtn.length) { 3682 if (sources.ai && sources.ai.attachmentId) { 3683 $previewCropBtn 3684 .prop('disabled', false) 3685 .removeClass('jdmc-ai-crop-disabled'); 3686 } else { 3687 $previewCropBtn 3688 .prop('disabled', true) 3689 .addClass('jdmc-ai-crop-disabled'); 3690 } 3691 } 3692 lastImageSrc = item.src; 3693 mainOrigin = 'ai'; 3694 renderGallery(); 3695 if (typeof updateRecap === 'function') { updateRecap(); } 3696 } 3697 3698 $wrapper.on('click', '.jdmc-ai-thumb', function() { 3699 var idx = parseInt($(this).attr('data-idx'), 10); 3700 setMainFromGallery(idx); 3701 }); 3702 3703 function setStatus(msg, isError) { 3704 if ($status.length) { 3705 $status.text(msg || ''); 3706 if (isError) { 3707 $status.addClass('jdmc-ai-has-error'); 3708 } else { 3709 $status.removeClass('jdmc-ai-has-error'); 3710 } 3711 } 3712 } 3713 3714 function setDirectMessage(msg, isError) { 3715 if ($directStatus.length) { 3716 $directStatus.text(msg || ''); 3717 if (isError) { 3718 $directStatus.addClass('jdmc-ai-has-error'); 3719 } else { 3720 $directStatus.removeClass('jdmc-ai-has-error'); 3721 } 3722 } 3723 } 3724 3725 function setEditMessage(msg, isError) { 3726 if ($editStatus.length) { 3727 $editStatus.text(msg || ''); 3728 if (isError) { 3729 $editStatus.addClass('jdmc-ai-has-error'); 3730 } else { 3731 $editStatus.removeClass('jdmc-ai-has-error'); 3732 } 3733 } 3734 } 3735 3736 function setGlobalMessage(msg, isError) { 3737 if ($globalStatus.length) { 3738 $globalStatus.text(msg || ''); 3739 if (isError) { 3740 $globalStatus.addClass('jdmc-ai-has-error'); 3741 } else { 3742 $globalStatus.removeClass('jdmc-ai-has-error'); 3743 } 3744 } 3745 } 3746 3747 function setUploadInProgress(state) { 3748 isUploadInProgress = !!state; 3749 3750 if ($addToCartBtn && $addToCartBtn.length) { 3751 if (isUploadInProgress) { 3752 $addToCartBtn 3753 .prop('disabled', true) 3754 .addClass('jdmc-ai-add-to-cart-disabled'); 3755 } else { 3756 $addToCartBtn 3757 .prop('disabled', false) 3758 .removeClass('jdmc-ai-add-to-cart-disabled'); 3759 } 3760 } 3761 3762 if ($bottomProgress.length) { 3763 if (isUploadInProgress) { 3764 $bottomProgress.show(); 3765 } else { 3766 $bottomProgress.hide(); 3767 } 3768 } 3769 3770 if (isUploadInProgress) { 3771 if ($directCropBtn && $directCropBtn.length) { 3772 $directCropBtn.prop('disabled', true).addClass('jdmc-ai-crop-disabled'); 3773 } 3774 if ($editCropBtn && $editCropBtn.length) { 3775 $editCropBtn.prop('disabled', true).addClass('jdmc-ai-crop-disabled'); 3776 } 3777 if ($previewCropBtn && $previewCropBtn.length) { 3778 $previewCropBtn.prop('disabled', true).addClass('jdmc-ai-crop-disabled'); 3779 } 3780 } else { 3781 if ($directCropBtn && $directCropBtn.length) { 3782 if (sources.direct && sources.direct.attachmentId) { 3783 $directCropBtn.prop('disabled', false).removeClass('jdmc-ai-crop-disabled'); 3784 } else { 3785 $directCropBtn.prop('disabled', true).addClass('jdmc-ai-crop-disabled'); 3786 } 3787 } 3788 if ($editCropBtn && $editCropBtn.length) { 3789 if (sources.edit && sources.edit.attachmentId) { 3790 $editCropBtn.prop('disabled', false).removeClass('jdmc-ai-crop-disabled'); 3791 } else { 3792 $editCropBtn.prop('disabled', true).addClass('jdmc-ai-crop-disabled'); 3793 } 3794 } 3795 if ($previewCropBtn && $previewCropBtn.length) { 3796 if (sources.ai && sources.ai.attachmentId) { 3797 $previewCropBtn.prop('disabled', false).removeClass('jdmc-ai-crop-disabled'); 3798 } else { 3799 $previewCropBtn.prop('disabled', true).addClass('jdmc-ai-crop-disabled'); 3800 } 3801 } 3802 } 3803 } 3804 3805 function parseSizeFromText(text) { 3806 if (!text) return null; 3807 var match = text.match(/(\d+)\s*[xÃ]\s*(\d+)/i); 3808 if (!match) return null; 3809 var w = parseInt(match[1], 10); 3810 var h = parseInt(match[2], 10); 3811 if (!w || !h) return null; 3812 return { w: w, h: h }; 3813 } 3814 3815 function getOrientationFromSize(w, h) { 3816 if (w === h) return 'square'; 3817 if (w > h) return 'paysage'; 3818 return 'portrait'; 3819 } 3820 3821 function isIaExactSize(w, h) { 3822 if (w === h) return true; 3823 if (3 * w === 2 * h) return true; 3824 if (2 * w === 3 * h) return true; 3825 return false;
3826 } 3827 3828 function syncAllSizeSelectsFromOriginal() { 3829 if (!$tailleOriginal.length || !$tailleMirror.length) return; 3830 var val = $tailleOriginal.val(); 3831 $tailleMirror.each(function() { 3832 var $sel = $(this); 3833 if (!val) { 3834 $sel.val(''); 3835 return; 3836 } 3837 if ($sel.find('option[value="' + val + '"]').length) { 3838 $sel.val(val); 3839 } else { 3840 $sel.val(''); 3841 } 3842 }); 3843 } 3844 3845 function getCurrentTailleText() { 3846 var txt = ''; 3847 if ($tailleOriginal && $tailleOriginal.length) { 3848 txt = $.trim($tailleOriginal.find('option:selected').text()); 3849 if (txt) return txt; 3850 } 3851 if ($tailleMirror && $tailleMirror.length) { 3852 $tailleMirror.each(function() { 3853 var t = $.trim($(this).find('option:selected').text()); 3854 if (t) { 3855 txt = t; 3856 return false; 3857 } 3858 }); 3859 } 3860 return txt; 3861 } 3862 3863 function getIaTailleText() { 3864 var txt = ''; 3865 var $iaSelects = $wrapper.find('.jdmc-ai-taille-select-ia'); 3866 if (!$iaSelects.length) return ''; 3867 $iaSelects.each(function() { 3868 var $sel = $(this); 3869 if (!$sel.val()) return; 3870 var t = $.trim($sel.find('option:selected').text()); 3871 if (t) { 3872 txt = t; 3873 return false; 3874 } 3875 }); 3876 return txt; 3877 } 3878 3879 function recomputeMainImage() { 3880 var bestOrigin = null; 3881 var bestScore = 0; 3882 3883 $.each(sources, function(origin, data) { 3884 if (data.src && data.lastSetAt > bestScore) { 3885 bestScore = data.lastSetAt; 3886 bestOrigin = origin; 3887 } 3888 }); 3889 3890 mainOrigin = bestOrigin; 3891 3892 if (!mainOrigin) { 3893 lastImageSrc = ''; 3894 lastImageOrigin = null; 3895 $hiddenField.val(''); 3896 3897 $previewImg.attr('src',''); 3898 $previewBox.hide(); 3899 if ($removePreview.length) $removePreview.hide(); 3900 if ($previewCropBtn && $previewCropBtn.length) { 3901 $previewCropBtn 3902 .prop('disabled', true) 3903 .addClass('jdmc-ai-crop-disabled'); 3904 } 3905 } else { 3906 var data = sources[mainOrigin]; 3907 lastImageSrc = data.src; 3908 lastImageOrigin = mainOrigin; 3909 3910 if (data.attachmentId) { 3911 $hiddenField.val(data.attachmentId); 3912 } else { 3913 $hiddenField.val(''); 3914 } 3915 3916 if (mainOrigin === 'ai') { 3917 pushGalleryItem(lastImageSrc, $hiddenField.val()); 3918 renderGallery(); 3919 $previewImg.attr('src', data.src); 3920 $previewBox.show(); 3921 if ($removePreview.length) $removePreview.show(); 3922 if ($previewCropBtn && $previewCropBtn.length) { 3923 if (sources.ai && sources.ai.attachmentId) { 3924 $previewCropBtn 3925 .prop('disabled', false) 3926 .removeClass('jdmc-ai-crop-disabled'); 3927 } else { 3928 $previewCropBtn 3929 .prop('disabled', true) 3930 .addClass('jdmc-ai-crop-disabled'); 3931 } 3932 } 3933 } else { 3934 $previewImg.attr('src',''); 3935 $previewBox.hide(); 3936 if ($removePreview.length) $removePreview.hide(); 3937 if ($previewCropBtn && $previewCropBtn.length) { 3938 $previewCropBtn 3939 .prop('disabled', true) 3940 .addClass('jdmc-ai-crop-disabled'); 3941 } 3942 } 3943 } 3944 3945 updateRecap(); 3946 } 3947 3948 function removeOrigin(origin) { 3949 if (!sources[origin]) return; 3950 3951 sources[origin].src = ''; 3952 sources[origin].attachmentId = null; 3953 sources[origin].lastSetAt = 0; 3954 3955 if (origin === 'ai') { 3956 $previewImg.attr('src',''); 3957 $previewBox.hide(); 3958 if ($removePreview.length) $removePreview.hide(); 3959 if ($previewCropBtn && $previewCropBtn.length) { 3960 $previewCropBtn 3961 .prop('disabled', true) 3962 .addClass('jdmc-ai-crop-disabled'); 3963 } 3964 } 3965 3966 $wrapper.trigger('jdmc_dp_clear_preview', [origin]); 3967 3968 recomputeMainImage(); 3969 } 3970 3971 // Synchro & tri TAILLES 3972 if ($tailleOriginal.length && $tailleMirror.length) { 3973 $tailleMirror.each(function() { 3974 $(this).empty(); 3975 }); 3976
3977 var hasAny = false; 3978 3979 var sizeOptions = []; 3980 $tailleOriginal.find('option').each(function() { 3981 var $opt = $(this); 3982 var val = $opt.attr('value'); 3983 var text = $.trim($opt.text()); 3984 if (!val || !text) return; 3985 3986 var size = parseSizeFromText(text); 3987 if (!size) return; 3988 3989 sizeOptions.push({ 3990 value: val, 3991 text: text, 3992 w: size.w, 3993 h: size.h 3994 }); 3995 }); 3996 3997 sizeOptions.sort(function(a, b) { 3998 if (a.w !== b.w) return a.w - b.w; 3999 return a.h - b.h; 4000 }); 4001 4002 var $placeholderOpt = $tailleOriginal.find('option[value=""]').first().clone(); 4003 $tailleOriginal.empty(); 4004 if ($placeholderOpt.length) { 4005 $tailleOriginal.append($placeholderOpt); 4006 } 4007 4008 sizeOptions.forEach(function(opt) { 4009 $tailleOriginal.append( 4010 $('<option>').val(opt.value).text(opt.text) 4011 ); 4012 }); 4013 4014 sizeOptions.forEach(function(opt) { 4015 var orientation = getOrientationFromSize(opt.w, opt.h); 4016 var iaExact = isIaExactSize(opt.w, opt.h); 4017 4018 var $directSelect = $wrapper.find( 4019 '.jdmc-ai-taille-select-direct.jdmc-ai-taille-select-' + orientation 4020 ); 4021 if ($directSelect.length) { 4022 $directSelect.append( 4023 $('<option>').val(opt.value).text(opt.text) 4024 ); 4025 hasAny = true; 4026 } 4027 4028 if (iaExact) { 4029 var $iaSelect = $wrapper.find( 4030 '.jdmc-ai-taille-select-ia.jdmc-ai-taille-select-' + orientation 4031 ); 4032 if ($iaSelect.length) { 4033 $iaSelect.append( 4034 $('<option>').val(opt.value).text(opt.text) 4035 ); 4036 } 4037 } 4038 }); 4039 4040 $tailleMirror.each(function() { 4041 var $select = $(this); 4042 var $group = $select.closest('.jdmc-ai-size-zone'); 4043 if ($select.children('option').length) { 4044 $select.prepend($('<option value="">Choisirâ¦</option>')); 4045 if ($group.length) $group.show(); 4046 } else { 4047 if ($group.length) $group.hide(); 4048 } 4049 }); 4050 4051 if (hasAny) { 4052 var $tailleRow = $tailleOriginal.closest('tr'); 4053 if ($tailleRow.length) { 4054 $tailleRow.hide(); 4055 } 4056 4057 syncAllSizeSelectsFromOriginal(); 4058 4059 $tailleMirror.on('change', function() { 4060 var $select = $(this); 4061 var val = $select.val(); 4062 4063 if (!val) { 4064 return; 4065 } 4066 4067 var isIa = $select.hasClass('jdmc-ai-taille-select-ia'); 4068 var $groupFamily = isIa 4069 ? $wrapper.find('.jdmc-ai-taille-select-ia') 4070 : $wrapper.find('.jdmc-ai-taille-select-direct'); 4071 4072 $groupFamily.not($select).val(''); 4073 4074 $tailleOriginal.val(val).trigger('change'); 4075 4076 $tailleMirror.each(function() { 4077 var $s = $(this); 4078 if ($s.is($select)) return; 4079 if ($s.find('option[value="' + val + '"]').length) { 4080 $s.val(val); 4081 } else { 4082 $s.val(''); 4083 } 4084 }); 4085 4086 updateRecap(); 4087 updatePriceDuplicate(); 4088 }); 4089 4090 $tailleOriginal.on('change.jdmcTaille', function() { 4091 syncAllSizeSelectsFromOriginal(); 4092 updateRecap(); 4093 updatePriceDuplicate(); 4094 }); 4095 4096 (function() { 4097 var defaultText = '30 x 30 cm'; 4098 var chosenVal = null; 4099 $tailleOriginal.find('option').each(function() { 4100 var $opt = $(this); 4101 var t = $.trim($opt.text()); 4102 if (t.indexOf(defaultText) !== -1) { 4103 chosenVal = $opt.val(); 4104 return false;
4105 } 4106 }); 4107 if (chosenVal) { 4108 $tailleOriginal.val(chosenVal).trigger('change'); 4109 } 4110 })(); 4111 } 4112 } 4113 4114 function initFormeSwatches() { 4115 if (!$formeOriginal.length) return; 4116 4117 var $formeRow = $formeOriginal.closest('tr'); 4118 if ($formeRow.length) { 4119 $formeRow.hide(); 4120 } 4121 4122 var formeOptions = []; 4123 $formeOriginal.find('option').each(function() { 4124 var $opt = $(this); 4125 var val = $opt.attr('value'); 4126 var txt = $.trim($opt.text()); 4127 if (!val || !txt) return; 4128 formeOptions.push({ value: val, label: txt }); 4129 }); 4130 4131 if (!formeOptions.length) return; 4132 4133 var $directContainer = $wrapper.find('.jdmc-ai-forme-swatches-direct'); 4134 var $iaContainer = $wrapper.find('.jdmc-ai-forme-swatches-ia'); 4135 4136 var $groupDirect = null; 4137 var $groupIa = null; 4138 4139 function buildGroup($container) { 4140 if (!$container.length) return null; 4141 4142 var $wrap = $('<div class="variable-items-wrapper jdmc-ai-forme-items"></div>'); 4143 4144 formeOptions.forEach(function(opt) { 4145 var $item = $('<span class="variable-item jdmc-ai-forme-item" data-value=""></span>'); 4146 $item.attr('data-value', opt.value); 4147 4148 var $inner = $('<span class="variable-item-span"></span>').text(opt.label); 4149 $item.append($inner); 4150 $wrap.append($item); 4151 }); 4152 4153 $container.empty().append($wrap); 4154 return $wrap; 4155 } 4156 4157 $groupDirect = buildGroup($directContainer); 4158 $groupIa = buildGroup($iaContainer); 4159 4160 function currentValue() { 4161 var v = $formeOriginal.val(); 4162 if (v) return v; 4163 if (formeOptions.length) return formeOptions[0].value; 4164 return ''; 4165 } 4166 4167 function syncActive(value) { 4168 [$groupDirect, $groupIa].forEach(function($group) { 4169 if (!$group || !$group.length) return; 4170 $group.find('.jdmc-ai-forme-item').each(function() { 4171 var $it = $(this); 4172 var v = $it.attr('data-value'); 4173 if (String(v) === String(value)) { 4174 $it.addClass('selected'); 4175 } else { 4176 $it.removeClass('selected'); 4177 } 4178 }); 4179 }); 4180 } 4181 4182 syncActive(currentValue()); 4183 4184 $wrapper.on('click', '.jdmc-ai-forme-item', function(e) { 4185 e.preventDefault(); 4186 var $it = $(this); 4187 var v = $it.attr('data-value'); 4188 if (!v) return; 4189 4190 $formeOriginal.val(v).trigger('change'); 4191 syncActive(v); 4192 updateRecap(); 4193 updatePriceDuplicate(); 4194 }); 4195 4196 $formeOriginal.on('change.jdmcForme', function() { 4197 syncActive(currentValue()); 4198 updateRecap(); 4199 updatePriceDuplicate(); 4200 }); 4201 4202 updateRecap(); 4203 } 4204 4205 initFormeSwatches(); 4206 4207 if ($form.length && $validateBlock.length && $cartRow.length) { 4208 var $qty = $form.find('.quantity').first(); 4209 $addToCartBtn = $form.find('button.single_add_to_cart_button').first(); 4210 4211 if ($qty.length) { 4212 $qty.appendTo($cartRow); 4213 } 4214 if ($addToCartBtn.length) { 4215 $addToCartBtn.appendTo($cartRow); 4216 $addToCartBtn.text('Ajouter au panier'); 4217 } 4218 4219 // Tracking : clic ajout panier (Custom DP) 4220 $addToCartBtn.off('click.jdmcTrack').on('click.jdmcTrack', function() { 4221 jdmcTrack('DP_AddToCartCustom', { 4222 image_uploaded: !!window.__jdmcDpImageUploaded, 4223 image_origin: (typeof mainOrigin !== 'undefined' ? mainOrigin : null) 4224 }); 4225 }); 4226 4227 setUploadInProgress(false); 4228 } 4229 4230 function updatePriceDuplicate() { 4231 if ((!$priceDirect.length && !$priceBottom.length) || !$form.length) return; 4232 4233 var $src = $form.find('.single_variation .price, .woocommerce-variation-
4233price .price').first(); 4234 4235 if (!$src.length) { 4236 var $summary = $form.closest('.summary'); 4237 $src = $summary.find('p.price, .price').first(); 4238 } 4239 4240 if ($src.length) { 4241 var html = $src.clone().wrap('<div>').parent().html(); 4242 if ($priceDirect.length) { 4243 $priceDirect.html(html); 4244 } 4245 if ($priceBottom.length) { 4246 $priceBottom.html(html); 4247 } 4248 } else { 4249 if ($priceDirect.length) $priceDirect.empty(); 4250 if ($priceBottom.length) $priceBottom.empty(); 4251 } 4252 } 4253 4254 function getActiveStyleKey() { 4255 var $active = $styleOptions.filter('.jdmc-ai-style-active').first(); 4256 var key = $active.data('style-key'); 4257 return key ? String(key) : 'realistic'; 4258 } 4259 4260 function updateRecap() { 4261 var formeText = ''; 4262 if ($formeOriginal.length && $formeOriginal.find('option:selected').length) { 4263 formeText = $.trim($formeOriginal.find('option:selected').text()); 4264 } 4265 4266 if (!formeText) { 4267 var $vsName = $form.find('.woo-selected-variation-item-name'); 4268 if ($vsName.length) { 4269 formeText = $.trim($vsName.text()); 4270 } 4271 } 4272 4273 if (!formeText) { 4274 formeText = 'â'; 4275 } 4276 $recapFormeVal.text(formeText); 4277 4278 var tailleText = getCurrentTailleText(); 4279 if (!tailleText) { 4280 tailleText = 'â'; 4281 } 4282 $recapTailleVal.text(tailleText); 4283 4284 var styleText = ''; 4285 var $styleActive = $styleOptions.filter('.jdmc-ai-style-active').first(); 4286 if ($styleActive.length) { 4287 styleText = $.trim($styleActive.find('.jdmc-style-label').text()); 4288 } 4289 4290 if (mainOrigin === 'ai' && styleText && lastImageSrc) { 4291 $recapStyleVal.text(styleText); 4292 $recapStyleRow.show(); 4293 } else { 4294 $recapStyleVal.text(''); 4295 $recapStyleRow.hide(); 4296 } 4297 4298 if (lastImageSrc) { 4299 $recapImgThumb.attr('src', lastImageSrc).show(); 4300 if ($removeRecap.length) $removeRecap.show(); 4301 } else { 4302 $recapImgThumb.hide(); 4303 if ($removeRecap.length) $removeRecap.hide(); 4304 } 4305 } 4306 4307 function placeStylesForMode(mode) { 4308 if (!$stylesBlock.length) return; 4309 4310 if (mode === 'edit') { 4311 var $editMode = $wrapper.find('.jdmc-ai-mode-edit'); 4312 var $facLabel = $editMode.find('.jdmc-ai-label-edit-facultatif').first(); 4313 4314 if ($facLabel.length) { 4315 $stylesBlock.insertBefore($facLabel); 4316 } else { 4317 $stylesBlock.appendTo($editMode); 4318 } 4319 } else { 4320 if ($stylesOriginalNext && $stylesOriginalNext.length && $stylesOriginalNext.parent().length) { 4321 $stylesBlock.insertBefore($stylesOriginalNext); 4322 } else { 4323 $stylesBlock.appendTo($stylesOriginalParent); 4324 } 4325 } 4326 } 4327 4328 function applyNoneVisibilityForMode(mode) { 4329 if (!$styleNone.length) return; 4330 4331 if (mode === 'prompt') { 4332 $styleNone.hide(); 4333 4334 if ($styleNone.hasClass('jdmc-ai-style-active')) { 4335 $styleNone.removeClass('jdmc-ai-style-active'); 4336 var $fallback = $styleNonNone.first(); 4337 if ($fallback.length) { 4338 $fallback.addClass('jdmc-ai-style-active'); 4339 } 4340 } 4341 } else { 4342 $styleNone.show(); 4343 } 4344 } 4345 4346 function updateStylesPromptVisibility(mode) { 4347 if (!$stylesPromptText.length) return; 4348 if (mode === 'prompt') { 4349 $stylesPromptText.show(); 4350 } else { 4351 $stylesPromptText.hide(); 4352 } 4353 } 4354 4355 function updateEditRetouchUI() { 4356 if (!$editPrompt.length || !$facultatifLabel.length || !$editTitle.length) { 4357 return; 4358 } 4359 4360 if (currentMode !== 'edit') { 4361 $facultatifLabel.show().removeClass('jdmc-ai-edit-open'); 4362 $editTitle.hide(); 4363 $editPrompt.hide(); 4364 return; 4365 } 4366 4367 var styleKey = getActiveStyleKey(); 4368 if (styleKey === 'none') { 4369 $facultatifLabel.hide().removeClass('jdmc-ai-edit-open'); 4370 $editTitle.show(); 4371 $editPrompt.show(); 4372 } else { 4373 $facultatifLabel.show().removeClass('jdmc-ai-edit-open'); 4374 $editTitle.hide(); 4375 $editPrompt.hide(); 4376 } 4377 } 4378 4379 if ($form.length) { 4380 $form.on('found_variation', function(event, variation) { 4381 if (variation && variation.price_html) { 4382 if ($priceDirect.length) $priceDirect.html(variation.price_html); 4383 if ($priceBottom.length) $priceBottom.html(variation.price_html); 4384 } else { 4385 updatePriceDuplicate(); 4386 } 4387 }); 4388 4389 $form.on('reset_data', function() { 4390 updatePriceDuplicate(); 4391 }); 4392 4393 setTimeout(function() { 4394 $form.trigger('check_variations'); 4395 updatePriceDuplicate(); 4396 }, 50); 4397 } 4398 4399 $tabs.on('click', function() { 4400 var mode = $(this).data('mode'); 4401 if (!mode || mode === currentMode) return; 4402 4403 currentMode = mode; 4404 4405 $tabs.removeClass('jdmc-ai-tab-active') 4406 .attr('aria-selected', 'false'); 4407 $(this).addClass('jdmc-ai-tab-active') 4408 .attr('aria-selected', 'true'); 4409 4410 $wrapper.find('.jdmc-ai-mode') 4411 .hide() 4412 .removeClass('jdmc-ai-mode-active'); 4413 4414 $wrapper.find('.jdmc-ai-mode-' + mode) 4415 .show() 4416 .addClass('jdmc-ai-mode-active'); 4417 4418 $btn.text('Générer l\'image avec l\'IA'); 4419 4420 if (mode === 'prompt') { 4421 if ($styleTransformTitle.length) { 4422 $styleTransformTitle.hide(); 4423 } 4424 } else { 4425 if ($styleTransformTitle.length) { 4426 $styleTransformTitle.show(); 4427 } 4428 4429 if ($styleNone.length) { 4430 $styleOptions.removeClass('jdmc-ai-style-active'); 4431 $styleNone.addClass('jdmc-ai-style-active'); 4432 updateRecap(); 4433 } 4434 } 4435 4436 placeStylesForMode(mode); 4437 applyNoneVisibilityForMode(mode); 4438 updateStylesPromptVisibility(mode); 4439 updateEditRetouchUI(); 4440 setStatus('', false); 4441 }); 4442 4443 placeStylesForMode(currentMode); 4444 applyNoneVisibilityForMode(currentMode); 4445 updateStylesPromptVisibility(currentMode); 4446 if ($styleTransformTitle.length) { 4447 $styleTransformTitle.hide(); 4448 } 4449 4450 if ($facultatifLabel.length && $editPrompt.length) { 4451 $editPrompt.hide(); 4452 4453 $facultatifLabel.on('click', function(e) { 4454 e.preventDefault(); 4455 if (currentMode === 'edit' && getActiveStyleKey() === 'none') { 4456 return; 4457 } 4458 $editPrompt.slideToggle(150); 4459 $(this).toggleClass('jdmc-ai-edit-open'); 4460 }); 4461 } 4462 4463 $styleOptions.on('click', function() { 4464 if (!$(this).is(':visible')) { 4465 return; 4466 } 4467 $styleOptions.removeClass('jdmc-ai-style-active'); 4468 $(this).addClass('jdmc-ai-style-active'); 4469 updateRecap(); 4470 updateEditRetouchUI(); 4471 }); 4472 4473 function buildPromptWithStyle(basePrompt, tailleText) { 4474 basePrompt = $.trim(basePrompt || ''); 4475 var styleKey = getActiveStyleKey(); 4476 var suffix = ''; 4477 4478 // En génération, le texte du client décrit d'abord le SUJET de l'image. 4479 // On force une lecture littérale des termes descriptifs afin d'éviter 4480 // qu'une expression ordinaire (ex. "chat noir") soit transformée en 4481 // personnage, franchise ou référence culturelle portant un nom similaire. 4482 // Cette consigne n'est volontairement PAS appliquée au mode retouche. 4483 if (currentMode === 'prompt' && basePrompt) { 4484 basePrompt = 4485 'Sujet demandé par l\'utilisateur : "' + basePrompt + '". ' + 4486 'Représente fidèlement et littéralement le sujet décrit. ' + 4487 'Conserve exactement sa nature (animal, objet, personne, paysage, etc.) et ses caractéristiques demandées. ' + 4488 'Si des mots descriptifs ordinaires peuvent aussi correspondre au nom d\'un personnage, d\'une franchise, d\'une célébrité ou d\'une référence culturelle, ' + 4489 'privilégie leur sens descriptif ordinaire, sauf si l\'utilisateur demande explicitement cette référence. ' + 4490 'Le style visuel demandé ci-dessous doit modifier uniquement le rendu de l\'image, jamais remplacer ou réinterpréter le sujet.'; 4491 } 4492 4493 if (tailleText) { 4494 basePrompt += ' Format de composition demandé : ' + tailleText + '.'; 4495 } 4496 4497 if (styleKey === 'none') { 4498 return basePrompt; 4499 } 4500 4501 switch (styleKey) { 4502 case 'cartoon': 4503 suffix = ' Style dessin animé très coloré, illustration HD, contours nets, couleurs vives et lumineuses.'; 4504 break; 4505 case 'realistic': 4506 suffix = ' Photo extrêmement réaliste de la scène, éclairage naturel, détails nets, rendu haute résolution, image qui ne laisse pas deviner quâelle a été cr
4506éée par une IA.'; 4507 break; 4508 case 'fairytale': 4509 suffix = ' Style paysage féerique extrêmement détaillé, ambiance magique, lumière douce et couleurs vives et saturées, fort contraste, contours nets, reflets dorés.'; 4510 break; 4511 case 'galaxy': 4512 suffix = ' Style fluo galaxie, couleurs néon très contrastées, fond sombre avec étoiles et effets lumineux intenses.'; 4513 break; 4514 case 'manga': 4515 suffix = ' Illustration dans un style manga détaillé, lignes propres, trames classiques, couleurs harmonieuses, expressions travaillées.'; 4516 break; 4517 case 'watercolor': 4518 suffix = ' Style aquarelle douce, contours légèrement fondus, texture papier, palette de couleurs harmonieuses.'; 4519 break; 4520 case 'abstract': 4521 suffix = ' Style abstrait moderne, grandes formes colorées, composition artistique, couleurs intenses.'; 4522 break; 4523 default: 4524 suffix = ''; 4525 break; 4526 } 4527 4528 if (!basePrompt) { 4529 return suffix || ''; 4530 } 4531 return basePrompt + (suffix ? ' ' + suffix : ''); 4532 } 4533 4534 function setLoading(state) { 4535 isLoading = state; 4536 if (state) { 4537 $btn.prop('disabled', true); 4538 setStatus('Génération en cours, cela peut prendre un peu de temps...', false); 4539 if ($progress.length) { 4540 $progress.show(); 4541 } 4542 } else { 4543 $btn.prop('disabled', false); 4544 if ($progress.length) { 4545 $progress.hide(); 4546 } 4547 setStatus('', false); 4548 } 4549 } 4550 4551 function handleSuccess(response) { 4552 if (!response || !response.success) { 4553 var err = response && response.error ? response.error : 'Erreur inconnue.'; 4554 setStatus('Erreur : ' + err, true); 4555 return; 4556 } 4557 4558 if (response.image_url && response.attachment_id) { 4559 sources.ai.src = response.image_url; 4560 pushGalleryItem(response.image_url, response.attachment_id); 4561 renderGallery(); 4562 sources.ai.attachmentId = response.attachment_id; 4563 4564 // Tracking : image générée (IA) 4565 jdmcMarkImageUploaded('ai', response.attachment_id); 4566 4567 sources.ai.lastSetAt = ++sourceCounter; 4568 4569 recomputeMainImage(); 4570 4571 if ($previewCropBtn && $previewCropBtn.length) { 4572 if (sources.ai && sources.ai.attachmentId) { 4573 $previewCropBtn 4574 .prop('disabled', false) 4575 .removeClass('jdmc-ai-crop-disabled'); 4576 } else { 4577 $previewCropBtn 4578 .prop('disabled', true) 4579 .addClass('jdmc-ai-crop-disabled'); 4580 } 4581 } 4582 } 4583 4584 setStatus('Image générée avec succès. Vous pouvez maintenant ajouter le produit au panier.', false); 4585 } 4586 4587 function handleAjaxError(jqXHR, textStatus, errorThrown) { 4588 var statusCode = jqXHR.status || 'inconnu'; 4589 var snippet = ''; 4590 4591 if (jqXHR.responseText) { 4592 snippet = jqXHR.responseText.toString().substr(0, 300); 4593 snippet = snippet.replace(/<[^>]+>/g, ' '); 4594 } 4595 4596 var errMsg = 'Erreur AJAX (' + statusCode + ') : ' + (errorThrown || textStatus); 4597 if (snippet) { 4598 errMsg += ' â Détail : ' + snippet; 4599 } 4600 4601 setStatus(errMsg, true); 4602 } 4603 4604 function clearDirectUI() { 4605 if ($directUpload.length) { 4606 $directUpload.val(''); 4607 } 4608 $directFileName.hide().text(''); 4609 if ($directThumb.length) { 4610 $directThumb.hide().attr('src', ''); 4611 } 4612 if ($removeDirect.length) { 4613 $removeDirect.hide(); 4614 } 4615 if ($directStatus.length) { 4616 $directStatus.text('').removeClass('jdmc-ai-has-error'); 4617 } 4618 if ($directProgress.length) { 4619 $directProgress.hide(); 4620 } 4621 if ($directCropBtn && $directCropBtn.length) { 4622 $directCropBtn 4623 .prop('disabled', true) 4624 .addClass('jdmc-ai-crop-disabled'); 4625 } 4626 } 4627 4628 function clearEditUI() { 4629 editImageBlob = null; 4630 if ($upload.length) { 4631 $upload.val(''); 4632 } 4633 if ($editThumb.length) { 4634 $editThumb.hide().attr('src', ''); 4635 } 4636 if ($removeEdit.length) { 4637 $removeEdit.hide(); 4638 } 4639 if ($editStatus.length) { 4640 $editStatus.text('').removeClass('jdmc-ai-has-error'); 4641 } 4642 if ($editProgress.length) { 4643 $editProgress.hide(); 4644 } 4645 if ($editCropBtn && $editCropBtn.length) { 4646 $editCropBtn 4647 .prop('disabled', true) 4648 .addClass('jdmc-ai-crop-disabled'); 4649 } 4650 } 4651 4652 if ($removeDirect.length) { 4653 $removeDirect.on('click', function(e) { 4654 e.preventDefault(); 4655 clearDirectUI(); 4656 removeOrigin('direct'); 4657 setGlobalMessage('', false); 4658 setUploadInProgress(false); 4659 }); 4660 } 4661 4662 if ($removeEdit.length) { 4663 $removeEdit.on('click', function(e) { 4664 e.preventDefault(); 4665 clearEditUI(); 4666 removeOrigin('edit'); 4667 setGlobalMessage('', false); 4668 setUploadInProgress(false); 4669 }); 4670 } 4671 4672 if ($removePreview.length) { 4673 $removePreview.on('click', function(e) { 4674 e.preventDefault(); 4675 4676 var currentSrc = lastImageSrc || ''; 4677 var currentId = $hiddenField.val() ? String($hiddenField.val()) : null; 4678 4679 // 1) Supprimer la vignette correspondante dans "Mes images générées" 4680 if (typeof aiGallery !== 'undefined' && aiGallery && aiGallery.length) { 4681 aiGallery = aiGallery.filter(function(item) { 4682 if (!item || !item.src) return false;
4683 4684 var sameSrc = currentSrc && item.src === currentSrc; 4685 var sameId = currentId && item.attachmentId && (String(item.attachmentId) === currentId); 4686 4687 // On garde uniquement ce qui n'est PAS l'image courante 4688 return !(sameSrc || sameId); 4689 }); 4690 4691 renderGallery(); 4692 } 4693 4694 // 2) S'il reste encore des images IA, on en sélectionne une automatiquement 4695 if (typeof aiGallery !== 'undefined' && aiGallery && aiGallery.length) { 4696 // On prend la dernière (la plus récente visuellement) 4697 var newIdx = aiGallery.length - 1; 4698 setMainFromGallery(newIdx); 4699 } else { 4700 // 3) Sinon : plus d'image IA -> on nettoie comme avant 4701 removeOrigin('ai'); 4702 } 4703 }); 4704} 4705 4706 4707 4708 if ($removeRecap.length) { 4709 $removeRecap.on('click', function(e) { 4710 e.preventDefault(); 4711 if (!mainOrigin) return; 4712 4713 if (mainOrigin === 'direct') { 4714 clearDirectUI(); 4715 } else if (mainOrigin === 'edit') { 4716 clearEditUI(); 4717 } else if (mainOrigin === 'ai') { 4718 pushGalleryItem(lastImageSrc, $hiddenField.val()); 4719 renderGallery(); 4720 $previewImg.attr('src',''); 4721 $previewBox.hide(); 4722 if ($removePreview.length) $removePreview.hide(); 4723 if ($previewCropBtn && $previewCropBtn.length) { 4724 $previewCropBtn 4725 .prop('disabled', true) 4726 .addClass('jdmc-ai-crop-disabled'); 4727 } 4728 } 4729 removeOrigin(mainOrigin); 4730 setGlobalMessage('', false); 4731 setUploadInProgress(false); 4732 }); 4733 } 4734 4735 // === Création des boutons "Recadrer l'image" === 4736 jdmcEnsureCropModal(); 4737 4738 if ($directThumb.length) { 4739 $directCropBtn = $('<button type="button" class="jdmc-btn jdmc-ai-crop-direct jdmc-ai-crop-disabled" style="margin-top:6px;" disabled>âï¸ Recadrer lâimage</button>'); 4740 $directCropBtn.insertAfter($directThumb); 4741 $directCropBtn.prop('disabled', true).addClass('jdmc-ai-crop-disabled'); 4742 4743 $directCropBtn.on('click', function(e) { 4744 e.preventDefault(); 4745 if ($directCropBtn.prop('disabled')) return; 4746 if (!sources.direct || !sources.direct.src || !sources.direct.attachmentId) { 4747 alert('Aucune image importée à recadrer pour cet encart.'); 4748 return; 4749 } 4750 jdmcOpenCropModal(sources.direct.src, sources.direct.attachmentId, function(newAttachmentId, newUrl) { 4751 sourceCounter++; 4752 sources.direct.src = newUrl; 4753 sources.direct.attachmentId = newAttachmentId; 4754 sources.direct.lastSetAt = sourceCounter; 4755 if ($directThumb.length) { 4756 $directThumb.attr('src', newUrl).show(); 4757 } 4758 recomputeMainImage(); 4759 updateRecap(); 4760 }); 4761 }); 4762 } 4763 4764 if ($editThumb.length) { 4765 // On crée un petit bloc pour avoir l'image PUIS le bouton en dessous 4766 var $editBlock = $('<div class="jdmc-ai-edit-thumb-block"></div>'); 4767 $editThumb.after($editBlock); 4768 $editBlock.append($editThumb); 4769 4770 $editCropBtn = $('<button type="button" class="jdmc-btn jdmc-ai-crop-edit jdmc-ai-crop-disabled" disabled>âï¸ Recadrer lâimage</button>'); 4771 $editBlock.append($editCropBtn); 4772 4773 $editCropBtn.prop('disabled', true).addClass('jdmc-ai-crop-disabled'); 4774 4775 $editCropBtn.on('click', function(e) { 4776 e.preventDefault(); 4777 if ($editCropBtn.prop('disabled')) return; 4778 if (!sources.edit || !sources.edit.src || !sources.edit.attachmentId) { 4779 alert('Aucune image importée à recadrer pour cet encart.'); 4780 return; 4781 } 4782 jdmcOpenCropModal(sources.edit.src, sources.edit.attachmentId, function(newAttachmentId, newUrl) { 4783 sourceCounter++; 4784 sources.edit.src = newUrl; 4785 sources.edit.attachmentId = newAttachmentId;
4786 sources.edit.lastSetAt = sourceCounter; 4787 if ($editThumb.length) { 4788 $editThumb.attr('src', newUrl).show(); 4789 } 4790 recomputeMainImage(); 4791 updateRecap(); 4792 }); 4793 }); 4794} 4795 4796 4797 if ($previewImg.length) { 4798 $previewCropBtn = $('<button type="button" class="jdmc-btn jdmc-ai-crop-preview jdmc-ai-crop-disabled" style="margin-top:6px;" disabled>âï¸ Recadrer lâimage</button>'); 4799 $previewCropBtn.insertAfter($previewImg); 4800 $previewCropBtn.prop('disabled', true).addClass('jdmc-ai-crop-disabled'); 4801 4802 $previewCropBtn.on('click', function(e) { 4803 e.preventDefault(); 4804 if ($previewCropBtn.prop('disabled')) return; 4805 if (!sources.ai || !sources.ai.src || !sources.ai.attachmentId) { 4806 alert('Aucune image générée à recadrer.'); 4807 return; 4808 } 4809 jdmcOpenCropModal(sources.ai.src, sources.ai.attachmentId, function(newAttachmentId, newUrl) { 4810 sourceCounter++; 4811 sources.ai.src = newUrl; 4812 sources.ai.attachmentId = newAttachmentId; 4813 sources.ai.lastSetAt = sourceCounter; 4814 if ($previewImg.length) { 4815 $previewImg.attr('src', newUrl); 4816 $previewBox.show(); 4817 } 4818 if ($removePreview.length) { 4819 $removePreview.show(); 4820 } 4821 $previewCropBtn 4822 .prop('disabled', false) 4823 .removeClass('jdmc-ai-crop-disabled'); 4824 pushGalleryItem(newUrl, newAttachmentId); 4825 renderGallery(); 4826 recomputeMainImage(); 4827 updateRecap(); 4828 }); 4829 }); 4830 } 4831 4832 // Upload direct (champ 1) 4833 if ($directUpload.length) { 4834 4835 // pour pouvoir réuploader le même fichier 4836 $directUpload.on('click', function() { 4837 this.value = null; 4838 }); 4839 4840 $directUpload.on('change', function() { 4841 var file = this.files && this.files[0] ? this.files[0] : null; 4842 4843 if (!file) { 4844 clearDirectUI(); 4845 removeOrigin('direct'); 4846 setGlobalMessage('', false); 4847 setUploadInProgress(false); 4848 return; 4849 } 4850 4851 if (!file.type.match(/^image\//)) { 4852 clearDirectUI(); 4853 setDirectMessage('Merci de sélectionner un fichier image (JPG ou PNG).', true); 4854 setGlobalMessage('Merci de sélectionner un fichier image (JPG ou PNG).', true); 4855 removeOrigin('direct'); 4856 setUploadInProgress(false); 4857 return; 4858 } 4859 4860 if (file.size > 64 * 1024 * 1024) { 4861 clearDirectUI(); 4862 setDirectMessage('Fichier trop volumineux (max ~64 Mo).', true); 4863 setGlobalMessage('Fichier trop volumineux (max ~64 Mo).', true); 4864 removeOrigin('direct'); 4865 setUploadInProgress(false); 4866 return; 4867 } 4868 4869 sourceCounter++; 4870 sources.direct.lastSetAt = sourceCounter; 4871 4872 // Tracking : l'utilisateur a sélectionné une image (avant upload) 4873 // Utile si l'upload AJAX échoue / est bloqué : on veut quand même capter l'intention "image ajoutée". 4874 jdmcTrack('DP_ImageUploaded', { 4875 origin: 'direct_select', 4876 stage: 'select' 4877 }, 'dp_image_select'); 4878 4879 4880 var localUrl = URL.createObjectURL(file); 4881 $directFileName.text(file.name).show(); 4882 if ($directThumb.length) { 4883 $directThumb.attr('src', localUrl).show(); 4884 } 4885 if ($removeDirect.length) { 4886 $removeDirect.show(); 4887 } 4888 4889 sources.direct.src = localUrl; 4890 sources.direct.attachmentId = null; 4891 4892 recomputeMainImage(); 4893 4894 setDirectMessage('Téléversement de votre image en cours...', false); 4895 setGlobalMessage('Téléversement de votre image en cours...', false); 4896 4897 if ($directProgress.length) $directProgress.show(); 4898 setUploadInProgress(true); 4899 $directUpload.prop('disabled', true); 4900 4901 var formData = new FormData(); 4902 formData.append('action', 'jdmc_ai_direct_upload'); 4903 formData.append('image', file); 4904 4905 $.ajax({ 4906 url: ajaxUrl, 4907 method: 'POST', 4908 data: formData, 4909 processData: false, 4910 contentType: false, 4911 dataType: 'json', 4912 xhr: function() { 4913 var xhr = $.ajaxSettings.xhr(); 4914 if (xhr.upload) { 4915 xhr.upload.addEventListener('progress', function(e) { 4916 if ($directProgress.length) $directProgress.show(); 4917 }); 4918 } 4919 return xhr; 4920 } 4921 }).done(function(response) { 4922 if (!response || !response.success || !response.data) { 4923 setDirectMessage('Erreur lors de lâenregistrement de votre image.', true); 4924 setGlobalMessage('Erreur lors de lâenregistrement de votre image.', true); 4925 return; 4926 } 4927 4928 var data = response.data; 4929 if (!data.attachment_id || !data.image_url) { 4930 setDirectMessage('Réponse incomplète lors de lâenregistrement de lâimage.', true); 4931 setGlobalMessage('Réponse incomplète lors de lâenregistrement de lâimage.', true); 4932 return; 4933 } 4934 4935 sources.direct.src = data.image_url; 4936 sources.direct.attachmentId = data.attachment_id; 4937 4938 // Tracking : image uploadée (direct) 4939 jdmcMarkImageUploaded('direct', data.attachment_id); 4940 4941 4942 recomputeMainImage(); 4943 4944 if ($directThumb.length) { 4945 $directThumb.attr('src', data.image_url).show(); 4946 } 4947 4948 if ($directCropBtn && $directCropBtn.length) { 4949 $directCropBtn 4950 .prop('disabled', false) 4951 .removeClass('jdmc-ai-crop-disabled'); 4952 } 4953 4954 setDirectMessage('Image importée avec succès. Elle sera utilisée pour votre diamond painting.', false); 4955 setGlobalMessage('Image importée avec succès. Elle sera utilisée pour votre diamond painting.', false); 4956 }).fail(function() { 4957 setDirectMessage('Erreur réseau lors de lâenvoi de votre image.', true); 4958 setGlobalMessage('Erreur réseau lors de lâenvoi de votre image.', true); 4959 }).always(function() { 4960 $directUpload.prop('disabled', false); 4961 if ($directProgress.length) $directProgress.hide(); 4962 setUploadInProgress(false); 4963 }); 4964 }); 4965 } 4966 4967 // Upload champ 2 (base IA) 4968 if ($upload.length) { 4969 4970 // pour pouvoir réuploader la même base 4971 $upload.on('click', function() { 4972 this.value = null; 4973 }); 4974 4975 $upload.on('change', function() { 4976 var file = this.files && this.files[0] ? this.files[0] : null; 4977 4978 if (!file) { 4979 clearEditUI(); 4980 removeOrigin('edit'); 4981 setGlobalMessage('', false); 4982 setUploadInProgress(false); 4983 return; 4984 } 4985 4986 if (!file.type.match(/^image\//)) { 4987 clearEditUI(); 4988 setEditMessage('Merci de sélectionner un fichier image (JPG ou PNG).', true); 4989 setGlobalMessage('Merci de sélectionner un fichier image (JPG ou PNG).', true); 4990 removeOrigin('edit'); 4991 setUploadInProgress(false); 4992 return; 4993 } 4994 4995 if (file.size > 64 * 1024 * 1024) { 4996 clearEditUI(); 4997 setEditMessage('Fichier trop volumineux (max ~64 Mo). Merci de le compresser un peu.', true); 4998 setGlobalMessage('Fichier trop volumineux (max ~64 Mo). Merci de le compresser un peu.', true); 4999 removeOrigin('edit'); 5000 setUploadInProgress(false); 5001 return; 5002 } 5003 5004 sourceCounter++; 5005 sources.edit.lastSetAt = sourceCounter; 5006 5007 // Tracking : l'utilisateur a sélectionné une image pour l'édition (avant upload) 5008 jdmcTrack('DP_ImageUploaded', { 5009 origin: 'edit_select', 5010 stage: 'select' 5011 }, 'dp_image_select_edit'); 5012 5013 5014 var reader = new FileReader(); 5015 reader.onload = function(e) { 5016 var img = new Image(); 5017 img.onload = function() { 5018 var maxDim = 1024; 5019 var w = img.width;
5020 var h = img.height; 5021 5022 if (w > h) { 5023 if (w > maxDim) { 5024 h = Math.round(h * maxDim / w); 5025 w = maxDim; 5026 } 5027 } else { 5028 if (h > maxDim) { 5029 w = Math.round(w * maxDim / h); 5030 h = maxDim; 5031 } 5032 } 5033 5034 var canvas = document.createElement('canvas'); 5035 canvas.width = w; 5036 canvas.height = h; 5037 5038 var ctx = canvas.getContext('2d'); 5039 ctx.drawImage(img, 0, 0, w, h); 5040 5041 canvas.toBlob(function(blob) { 5042 if (!blob) { 5043 setEditMessage('Erreur lors du traitement de lâimage.', true); 5044 setGlobalMessage('Erreur lors du traitement de lâimage.', true); 5045 editImageBlob = null; 5046 setUploadInProgress(false); 5047 if ($editProgress.length) $editProgress.hide(); 5048 return; 5049 } 5050 5051 editImageBlob = blob; 5052 5053 var url = URL.createObjectURL(blob); 5054 5055 if ($editThumb.length) { 5056 $editThumb.attr('src', url).show(); 5057 } 5058 if ($removeEdit.length) { 5059 $removeEdit.show(); 5060 } 5061 5062 sources.edit.src = url; 5063 sources.edit.attachmentId = null; 5064 5065 $previewImg.attr('src', ''); 5066 $previewBox.hide(); 5067 if ($removePreview.length) $removePreview.hide(); 5068 if ($previewCropBtn && $previewCropBtn.length) { 5069 $previewCropBtn 5070 .prop('disabled', true) 5071 .addClass('jdmc-ai-crop-disabled'); 5072 } 5073 5074 recomputeMainImage(); 5075 5076 setEditMessage('Téléversement de votre image en cours...', false); 5077 setGlobalMessage('Téléversement de votre image en cours...', false); 5078 5079 if ($editProgress.length) $editProgress.show(); 5080 setUploadInProgress(true); 5081 $upload.prop('disabled', true); 5082 5083 var formData = new FormData(); 5084 var fileForUpload = new File([blob], 'image-base-ia.jpg', { type: 'image/jpeg' }); 5085 formData.append('action', 'jdmc_ai_direct_upload'); 5086 formData.append('image', fileForUpload); 5087 5088 $.ajax({ 5089 url: ajaxUrl, 5090 method: 'POST', 5091 data: formData, 5092 processData: false, 5093 contentType: false, 5094 dataType: 'json', 5095 xhr: function() { 5096 var xhr = $.ajaxSettings.xhr(); 5097 if (xhr.upload) { 5098 xhr.upload.addEventListener('progress', function(e) { 5099 if ($editProgress.length) $editProgress.show(); 5100 }); 5101 } 5102 return xhr; 5103 } 5104 }).done(function(response) { 5105 if (!response || !response.success || !response.data) { 5106 setEditMessage('Erreur lors de lâenregistrement de votre image.', true); 5107 setGlobalMessage('Erreur lors de lâenregistrement de votre image.', true); 5108 return; 5109 } 5110 5111 var data = response.data; 5112 if (!data.attachment_id || !data.image_url) { 5113 setEditMessage('Réponse incomplète lors de lâenregistrement de lâimage.', true); 5114 setGlobalMessage('Réponse incomplète lors de lâenregistrement de lâimage.', true); 5115 return; 5116 } 5117 5118 sources.edit.src = data.image_url; 5119 sources.edit.attachmentId = data.attachment_id; 5120 5121 // Tracking : image uploadée (edit) 5122 jdmcMarkImageUploaded('edit', data.attachment_id); 5123 5124 5125 recomputeMainImage(); 5126 5127 if ($editCropBtn && $editCropBtn.length) { 5128 $editCropBtn 5129 .prop('disabled', false) 5130 .removeClass('jdmc-ai-crop-disabled'); 5131 } 5132 5133 setEditMessage('Image importée avec succès. Elle sera utilisée comme base pour la retouche IA.', false); 5134 setGlobalMessage('Image importée avec succès. Elle sera utilisée comme base pour la retouche IA.', false); 5135 }).fail(function() { 5136 setEditMessage('Erreur réseau lors de lâenvoi de votre image.', true); 5137 setGlobalMessage('Erreur réseau lors de lâenvoi de votre image.', true); 5138 }).always(function() { 5139 $upload.prop('disabled', false); 5140 if ($editProgress.length) $editProgress.hide(); 5141 setUploadInProgress(false); 5142 }); 5143 }, 'image/jpeg', 0.9); 5144 }; 5145 5146 img.onerror = function() { 5147 setEditMessage('Impossible de lire cette image.', true); 5148 setGlobalMessage('Impossible de lire cette image.', true); 5149 editImageBlob = null; 5150 setUploadInProgress(false); 5151 if ($editProgress.length) $editProgress.hide(); 5152 }; 5153 5154 img.src = e.target.result; 5155 }; 5156 5157 reader.onerror = function() { 5158 setEditMessage('Erreur de lecture du fichier.', true); 5159 setGlobalMessage('Erreur de lecture du fichier.', true); 5160 editImageBlob = null; 5161 setUploadInProgress(false); 5162 if ($editProgress.length) $editProgress.hide(); 5163 }; 5164
5165 reader.readAsDataURL(file); 5166 }); 5167 } 5168 5169 // Génération IA 5170 $btn.on('click', function(e) { 5171 e.preventDefault(); 5172 if (isLoading) return; 5173 5174 var mode = currentMode; 5175 var basePrompt, finalPrompt; 5176 5177 var iaTailleText = getIaTailleText(); 5178 if (!iaTailleText) { 5179 setStatus('Veuillez sélectionner la dimension de la toile ci-dessus', true); 5180 return; 5181 } 5182 5183 var tailleText = iaTailleText; 5184 var imageSize; 5185 5186 switch (tailleText) { 5187 case '30 x 30 cm': imageSize = '1024x1024'; break; 5188 case '40 x 40 cm': imageSize = '1024x1024'; break; 5189 case '50 x 50 cm': imageSize = '1024x1024'; break; 5190 case '60 x 60 cm': imageSize = '1024x1024'; break; 5191 5192 case '30 x 45 cm': imageSize = '1024x1536'; break; 5193 case '40 x 60 cm': imageSize = '1024x1536'; break; 5194 case '60 x 90 cm': imageSize = '1024x1536'; break; 5195 case '80 x 120 cm': imageSize = '1024x1536'; break; 5196 5197 case '45 x 30 cm': imageSize = '1536x1024'; break; 5198 case '60 x 40 cm': imageSize = '1536x1024'; break; 5199 case '90 x 60 cm': imageSize = '1536x1024'; break; 5200 case '120 x 80 cm': imageSize = '1536x1024'; break; 5201 5202 default: 5203 imageSize = '1024x1024'; 5204 break; 5205 } 5206 5207 if (mode === 'prompt') { 5208 basePrompt = $prompt.val(); 5209 if (!$.trim(basePrompt)) { 5210 setStatus('Merci de décrire un minimum votre image.', true); 5211 return; 5212 } 5213 finalPrompt = buildPromptWithStyle(basePrompt, tailleText); 5214 if (!finalPrompt) { 5215 setStatus('Le prompt est vide après traitement. Merci de le compléter.', true); 5216 return; 5217 } 5218 5219 setLoading(true); 5220 5221 jdmcGetAiRequestToken() 5222 .then(function(aiToken) { 5223 return $.ajax({ 5224 url: restUrl, 5225 method: 'POST', 5226 contentType: 'application/json', 5227 dataType: 'json', 5228 headers: { 'X-JDMC-AI-Token': aiToken }, 5229 data: JSON.stringify({ 5230 mode: 'prompt', 5231 prompt: finalPrompt, 5232 size: imageSize, 5233 style_key: getActiveStyleKey() 5234 }) 5235 }); 5236 }) 5237 .done(handleSuccess) 5238 .fail(handleAjaxError) 5239 .always(function() { 5240 setLoading(false); 5241 }); 5242 5243 } else { 5244 var file = editImageBlob; 5245 5246 if (!file) { 5247 setStatus('Merci de choisir une photo à transformer.', true); 5248 return; 5249 } 5250 5251 basePrompt = $editPrompt.val(); 5252 finalPrompt = buildPromptWithStyle(basePrompt, tailleText); 5253 5254 if (!finalPrompt) { 5255 setStatus('Le prompt est vide après traitement. Merci de sélectionner un style ou dâajouter quelques mots.', true); 5256 return; 5257 } 5258 5259 var formData = new FormData(); 5260 formData.append('mode', 'edit'); 5261 formData.append('prompt', finalPrompt); 5262 formData.append('size', imageSize); 5263 formData.append('style_key', getActiveStyleKey()); 5264 formData.append('image', file, 'base-photo.jpg'); 5265
5266 setLoading(true); 5267 5268 jdmcGetAiRequestToken() 5269 .then(function(aiToken) { 5270 return $.ajax({ 5271 url: restUrl, 5272 method: 'POST', 5273 data: formData, 5274 processData: false, 5275 contentType: false, 5276 dataType: 'json', 5277 headers: { 'X-JDMC-AI-Token': aiToken } 5278 }); 5279 }) 5280 .done(handleSuccess) 5281 .fail(handleAjaxError) 5282 .always(function() { 5283 setLoading(false); 5284 }); 5285 } 5286 }); 5287 5288 if ($form.length) { 5289 $form.on('change', 'select[name*="attribute_"], select[name*="forme"]', function() { 5290 updateRecap(); 5291 updatePriceDuplicate(); 5292 }); 5293 } 5294 5295 updateRecap(); 5296 updatePriceDuplicate(); 5297 updateEditRetouchUI(); 5298 }); 5299 }); 5300 })(jQuery); 5301</script>
5301 5302 5303 5304 5305 5306 5307 <div class="ct-cart-actions"><div class="quantity" data-type="type-2"> 5308 <span class="ct-increase"></span><span class="ct-decrease"></span> <label class="screen-reader-text" for="quantity_6ac1b70a38620">quantité de Mon diamond painting personnalisé</label> 5309 <input 5310 type="number" 5311 id="quantity_6ac1b70a38620" 5312 class="input-text qty text pi-quantity-field-72384 pi-quantity-field" 5313 name="quantity" 5314 value="1" 5315 aria-label="Quantité de produits" 5316 min="1" 5317 step="1" 5318 placeholder="" 5319 inputmode="numeric" 5320 autocomplete="off" 5321 /> 5322 </div> 5323 5324 <button type="submit" class="single_add_to_cart_button button alt">Ajouter</button> 5325 5326 <div class="pi-edd pi-edd-product pi-edd-ajax-variable pi-estimate-72384" data-product="72384" data-type="single" data-tooltip=""></div></div> 5327 <input type="hidden" name="add-to-cart" value="72384" /> 5328 <input type="hidden" name="product_id" value="72384" /> 5329 <input type="hidden" name="variation_id" class="variation_id" value="0" /> 5330</div> 5331 </div> 5332 5333 </div></form> 5334 5335</div><div class="pi-edd-wrapper edd-static" style="min-height:40px;"></div><span class="ct-product-divider" data-id="divider_2"></span> 5336<div class="woocommerce-product-details__short-description"> 5337 <div class="bf-banner"> 5338<div class="bf-banner-inner"> 5339 <span class="bf-label"><br /> 5340 <span class="bf-label-emoji">ð¤ð¥</span><br /> 5341 <span>Black Friday</span><br /> 5342 </span><br /> 5343 <span class="bf-badge">-50%</span><br /> 5344 <span class="bf-text">sur toutes les toiles</span> 5345 </div> 5346</div> 5347<p class="dp3">ð¼ï¸ Votre photo transformée en DP</p> 5348<p class="dp3">ð¸ Aperçu instantané du rendu</p> 5349<p class="dp3">â Tout inclus : perles, colle, styloâ¦</p> 5350<p class="dp4">⨠Créez votre image grâce à lâIA.</p> 5351</div> 5352 </div> 5353 5354 </div><div class="ct-container" style="margin:2em auto;"><div class="entry-content product-description"><p><em>Les diamants carrés offrent un rendu plus net que les ronds.</em></p> 5355<p>Importez la photo ou image de votre choix et recevez-la sous forme de diamond painting quelques jours plus tard !</p> 5356<p><strong>Tout est fourni</strong> : la toile adhésive, les sachets de perles, le plateau trieur, le stylo et les carrés de colle.</p> 5357<p><!--<picture><source srcset="https://diamant-strass-dmc.com/wp-content/uploads/2024/11/diamond-painting-dp-mycustom.avif " type="image/avif"><source srcset="https://diamant-strass-dmc.com/wp-content/uploads/2024/11/diamond-painting-dp-mycustom.webp " type="image/webp"><img src="https://diamant-strass-dmc.com/wp-content/uploads/2024/11/diamond-painting-dp-mycustom.jpg" height="1024" width="1024" class="alignleft size-full wp-image-104929 sp-no-webp" alt="Personnalisation diamond painting custom" style="width:100%;margin-bottom:30px;" > </picture>--></p> 5358<p>Immortalisez vos plus beaux souvenirs en diamond painting et prenez encore plus de plaisir à le réaliser.</p> 5359<p>Portait, photo de mariage, animal de compagnie... Faîtes-vous plaisir ou <strong>offrez à un proche un cadeau</strong> original qu'il n'est pas près d'oublier !</p> 5360<p>Toute photo ou image non adaptée au format choisi sera légèrement redimensionnée par nos soins, mais jamais déformée ni mal cadrée. En cas de doute sur le respect de l'image ou de la photo initiale nous vous recontacterons par email pour vous demander votre avis, et si la simulation du résultat ne vous convient pas vous pourrez nous envoyer une autre image ou être remboursé.</p> 5361<style><!-- .enkar2div, .wcuf_already_uploaded_data_container h4, a.button.download_small_button, button.button.delete_button, .newdp, .dayz { display:none !important; } div#wcuf_file_uploads_container { background: #eee;border-top:1px solid green; } .wcuf_upload_fields_row_element { margin-bottom:0 !important; } .wcuf_single_upload_field_container { margin-bottom:0 !important; } .single-product div.product table.variations { border-top:0; } .wcuf_single_upload_field_container { border:0 !important;margin-top:0 !important; } h4.wcuf_upload_field_title { color: #111 !important;font-size: 17px !important;font-family:arial; } p.wcuf_field_description { margin: 0 0 5px 0; } .wcuf_upload_drag_and_drop_area { margin-bottom:0 !important;background:white;border:2px dashed #333 !important; } .wcuf_drag_and_drop_area_description { color:#333 !important; } .wcuf_drag_and_drop_area_icon { fill:#01578B !important; } li.wcuf_file_preview_list_item { background:#DFF1F2 !important; } .wcuf_already_uploaded_data_container { background:#DFF1F2;border-radius:5px !important;border:2px solid black !important; } .wcuf_preview_file_title { color:#111; }
5361 .woocommerce-variation-price { display:block !important; } @media (max-width: 689px) { .woocommerce-product-details__short-description p.dp2 { margin-bottom:20px; } } .bf-banner { background: linear-gradient(90deg, #000000, #111111, #ff0040, #000000); background-size: 300% 300%; animation: bfGradient 6s ease infinite; color: #ffffff; text-align: center; padding: 10px 12px; margin-bottom: 15px; font-family: inherit; font-weight: 800; font-size: 16px; line-height: 1.25; text-transform: uppercase; box-shadow: 0 2px 10px rgba(0,0,0,0.35); } .bf-banner-inner { display: inline-flex; align-items: center; justify-content: center; gap: 8px; flex-wrap: wrap; } .bf-label { display: inline-flex; align-items: center; gap: 6px; } .bf-label-emoji { font-size: 18px; } .bf-badge { display: inline-flex; align-items: center; justify-content: center; padding: 4px 12px; border-radius: 999px; background: #ffffff; color: #000000; font-size: 15px; font-weight: 900; box-shadow: 0 0 0 2px rgba(255,255,255,0.25); animation: bfPulse 1.8s ease-in-out infinite; white-space: nowrap; } .bf-text { font-size: 14px; font-weight: 600; } @keyframes bfGradient { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } } @keyframes bfPulse { 0% { transform: scale(1); box-shadow: 0 0 0 2px rgba(255,255,255,0.25); } 50% { transform: scale(1.08); box-shadow: 0 0 0 6px rgba(255,255,255,0.05); } 100% { transform: scale(1); box-shadow: 0 0 0 2px rgba(255,255,255,0.25); } } @media (max-width: 600px) { .bf-banner { padding: 8px 8px; font-size: 14px; } .bf-text { font-size: 13px; } } --></style> 5362</div></div><div class="ct-container bloc-ab-crystal" style="margin-top: 30px; margin-bottom: 30px;"></div><div class="ct-container"><div class="bezoin"><h2 class="expl">Promos du mois</h2><div class="woocommerce columns-4 "><ul class="products columns-4" data-products="type-1"> 5363<li class="product type-product post-34761 status-publish first instock product_cat-accessoires product_cat-promo has-post-thumbnail sale taxable shipping-taxable purchasable product-type-variable has-default-attributes thumbs-bottom"> 5364 <figure > 5365 5366 <a class="ct-media-container" href="https://diamant-strass-dmc.com/perles-broderie/stylo-lumineux-loupe-tetes-broderie-diamant/" aria-label="Stylo lumineux avec loupe et têtes"><picture><source srcset="https://diamant-strass-dmc.com/wp-content/uploads/2022/07/stylo-lumineux-loupe-diamond-painting-300x300.avif 300w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/stylo-lumineux-loupe-diamond-painting-150x150.webp 150w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/stylo-lumineux-loupe-diamond-painting-768x768.avif 768w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/stylo-lumineux-loupe-diamond-painting-416x416.avif 416w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/stylo-lumineux-loupe-diamond-painting.avif 800w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/stylo-lumineux-loupe-diamond-painting-324x324.avif 324w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/stylo-lumineux-loupe-diamond-painting-100x100.webp 100w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/stylo-lumineux-loupe-diamond-painting-600x600.avif 600w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/stylo-lumineux-loupe-diamond-painting-50x50.webp 50w" sizes="auto, (max-width: 300px) 100vw, 300px" type="image/avif"><source srcset="https://diamant-strass-dmc.com/wp-content/uploads/2022/07/stylo-lumineux-loupe-diamond-painting-300x300.webp 300w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/stylo-lumineux-loupe-diamond-painting-150x150.webp 150w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/stylo-lumineux-loupe-diamond-painting-768x768.webp 768w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/stylo-lumineux-loupe-diamond-painting-416x416.webp 416w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/stylo-lumineux-loupe-diamond-painting.webp 800w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/stylo-lumineux-loupe-diamond-painting-324x324.webp 324w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/stylo-lumineux-loupe-diamond-painting-100x100.webp 100w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/stylo-lumineux-loupe-diamond-painting-600x600.webp 600w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/stylo-lumineux-loupe-diamond-painting-50x50.webp 50w" sizes="auto, (max-width: 300px) 100v
5366w, 300px" type="image/webp"><img src="https://diamant-strass-dmc.com/wp-content/uploads/2022/07/stylo-lumineux-loupe-diamond-painting-300x300.jpg" height="300" width="300" srcset="https://diamant-strass-dmc.com/wp-content/uploads/2022/07/stylo-lumineux-loupe-diamond-painting-300x300.jpg 300w, https://diamant-strass-dmc.com/wp-content/uploads/2022/07/stylo-lumineux-loupe-diamond-painting-150x150.jpg 150w, https://diamant-strass-dmc.com/wp-content/uploads/2022/07/stylo-lumineux-loupe-diamond-painting-768x768.jpg 768w, https://diamant-strass-dmc.com/wp-content/uploads/2022/07/stylo-lumineux-loupe-diamond-painting-416x416.jpg 416w, https://diamant-strass-dmc.com/wp-content/uploads/2022/07/stylo-lumineux-loupe-diamond-painting.jpg 800w, https://diamant-strass-dmc.com/wp-content/uploads/2022/07/stylo-lumineux-loupe-diamond-painting-324x324.jpg 324w, https://diamant-strass-dmc.com/wp-content/uploads/2022/07/stylo-lumineux-loupe-diamond-painting-100x100.jpg 100w, https://diamant-strass-dmc.com/wp-content/uploads/2022/07/stylo-lumineux-loupe-diamond-painting-600x600.jpg 600w, https://diamant-strass-dmc.com/wp-content/uploads/2022/07/stylo-lumineux-loupe-diamond-painting-50x50.jpg 50w" sizes="auto, (max-width: 300px) 100vw, 300px" class=" wp-post-image sp-no-webp" alt="stylo lumineux loupe diamond painting" loading="lazy" decoding="async" itemprop="image" style="aspect-ratio: 1/1;" title="stylo-lumineux-loupe-diamond-painting" data-xoowscfly="fly" > </picture></a></figure><div class="berocket_better_labels berocket_better_labels_image"><div class="berocket_better_labels_position berocket_better_labels_position_left"><div class="berocket_better_labels_line berocket_better_labels_line_1"><div class="berocket_better_labels_inline berocket_better_labels_inline_1"><div class="br_alabel br_alabel_type_sale_p br_alabel_template_type_css berocket_alabel_id_115461 br_alabel_better_compatibility" style=""><span style=""><i style="background-color: #5300c4; border-color: #5300c4;" class="template-span-before "></i><i style="background-color: #5300c4; border-color: #5300c4;" class="template-i "></i><i style="background-color: #5300c4; border-color: #5300c4;" class="template-i-before "></i><i style="background-color: #5300c4; border-color: #5300c4;" class="template-i-after "></i><b style="text-align: center;z-index: 100;" class="br-labels-css br-labels-css-1"><span class='b_span_before'>ð</span><span class='b_span_text'>-60%</span></b></span></div></div></div></div></div><h2 class="woocommerce-loop-product__title"><a class="woocommerce-LoopProduct-link woocommerce-loop-product__link" href="https://diamant-strass-dmc.com/perles-broderie/stylo-lumineux-loupe-tetes-broderie-diamant/" target="_self">Stylo lumineux avec loupe et têtes</a></h2> 5367 <span class="price"><span class="aelia_product_price" data-product_id="34761"><span class="from">à partir de : </span><span class="woocommerce-Price-amount amount"><bdi><span class="woocommerce-Price-currencySymbol" translate="no">$</span>6.64</bdi></span></span></span> 5368<div class="ct-woo-card-actions" data-add-to-cart="auto-hide" data-alignment="equal"> <span id="woocommerce_loop_add_to_cart_link_describedby_34761" class="screen-reader-text"> 5369 Ce produit a plusieurs variations. Les options peuvent être choisies sur la page du produit </span> 5370</div></li> 5371<li class="product type-product post-43074 status-publish instock product_cat-accessoires product_cat-promo has-post-thumbnail sale taxable shipping-taxable purchasable product-type-variable has-default-attributes thumbs-bottom"> 5372 <figure > 5373 5374 <a class="ct-media-container" href="https://diamant-strass-dmc.com/perles-broderie/regle-alignement-broderie-diamant/" aria-label="Règle d'alignement pour diamond painting"><picture><source srcset="https://diamant-strass-dmc.com/wp-content/uploads/2022/08/regle-alignement-diamond-painting-300x300.avif 300w,https://diamant-strass-dmc.com/wp-content/uploads/2022/08/regle-alignement-diamond-painting-150x150.webp 150w,https://diamant-strass-dmc.com/wp-content/uploads/2022/08/regle-alignement-diamond-painting-768x768.avif 768w,https://diamant-strass-dmc.com/wp-content/uploads/2022/08/regle-alignement-diamond-painting-416x416.avif 416w,https://diamant-strass-dmc.com/wp-content/uploads/2022/08/regle-alignement-diamond-painting-1536x1536.avif 1536w,https://diamant-strass-dmc.com/wp-content/uploads/2022/08/regle-alignement-diamond-painting-2048x2048.avif 2048w,https://diamant-strass-dmc.com/wp-content/uploads/2022/08/regle-alignement-diamond-painting-324x324.avif 324w,https://diamant-strass-dmc.com/wp-content/uploads/2022/08/regle-alignement-diamond-painting-100x100.webp 100w,https://diamant-strass-dmc.com/wp-content/uploads/2022/08/regle-alignement-diamond-painting-50x50.webp 50w,https://diamant-strass-dmc.com/wp-content/uploads/2022/08/regle-alignement-diamond-painting-600x600.avif 600w" sizes="auto, (max-width: 300px) 100v
5374w, 300px" type="image/avif"><source srcset="https://diamant-strass-dmc.com/wp-content/uploads/2022/08/regle-alignement-diamond-painting-300x300.webp 300w,https://diamant-strass-dmc.com/wp-content/uploads/2022/08/regle-alignement-diamond-painting-150x150.webp 150w,https://diamant-strass-dmc.com/wp-content/uploads/2022/08/regle-alignement-diamond-painting-768x768.webp 768w,https://diamant-strass-dmc.com/wp-content/uploads/2022/08/regle-alignement-diamond-painting-416x416.webp 416w,https://diamant-strass-dmc.com/wp-content/uploads/2022/08/regle-alignement-diamond-painting-1536x1536.webp 1536w,https://diamant-strass-dmc.com/wp-content/uploads/2022/08/regle-alignement-diamond-painting-2048x2048.webp 2048w,https://diamant-strass-dmc.com/wp-content/uploads/2022/08/regle-alignement-diamond-painting-324x324.webp 324w,https://diamant-strass-dmc.com/wp-content/uploads/2022/08/regle-alignement-diamond-painting-100x100.webp 100w,https://diamant-strass-dmc.com/wp-content/uploads/2022/08/regle-alignement-diamond-painting-50x50.webp 50w,https://diamant-strass-dmc.com/wp-content/uploads/2022/08/regle-alignement-diamond-painting-600x600.webp 600w" sizes="auto, (max-width: 300px) 100vw, 300px" type="image/webp"><img src="https://diamant-strass-dmc.com/wp-content/uploads/2022/08/regle-alignement-diamond-painting-300x300.jpg" height="300" width="300" srcset="https://diamant-strass-dmc.com/wp-content/uploads/2022/08/regle-alignement-diamond-painting-300x300.jpg 300w, https://diamant-strass-dmc.com/wp-content/uploads/2022/08/regle-alignement-diamond-painting-150x150.jpg 150w, https://diamant-strass-dmc.com/wp-content/uploads/2022/08/regle-alignement-diamond-painting-768x768.jpg 768w, https://diamant-strass-dmc.com/wp-content/uploads/2022/08/regle-alignement-diamond-painting-416x416.jpg 416w, https://diamant-strass-dmc.com/wp-content/uploads/2022/08/regle-alignement-diamond-painting-1536x1536.jpg 1536w, https://diamant-strass-dmc.com/wp-content/uploads/2022/08/regle-alignement-diamond-painting-2048x2048.jpg 2048w, https://diamant-strass-dmc.com/wp-content/uploads/2022/08/regle-alignement-diamond-painting-324x324.jpg 324w, https://diamant-strass-dmc.com/wp-content/uploads/2022/08/regle-alignement-diamond-painting-100x100.jpg 100w, https://diamant-strass-dmc.com/wp-content/uploads/2022/08/regle-alignement-diamond-painting-50x50.jpg 50w, https://diamant-strass-dmc.com/wp-content/uploads/2022/08/regle-alignement-diamond-painting-600x600.jpg 600w" sizes="auto, (max-width: 300px) 100vw, 300px" class=" wp-post-image sp-no-webp" alt="règle d'alignement diamond painting" loading="lazy" decoding="async" itemprop="image" style="aspect-ratio: 1/1;" title="regle-alignement-diamond-painting" data-xoowscfly="fly" > </picture></a></figure><div class="berocket_better_labels berocket_better_labels_image"><div class="berocket_better_labels_position berocket_better_labels_position_left"><div class="berocket_better_labels_line berocket_better_labels_line_1"><div class="berocket_better_labels_inline berocket_better_labels_inline_1"><div class="br_alabel br_alabel_type_sale_p br_alabel_template_type_css berocket_alabel_id_115461 br_alabel_better_compatibility" style=""><span style=""><i style="background-color: #5300c4; border-color: #5300c4;" class="template-span-before "></i><i style="background-color: #5300c4; border-color: #5300c4;" class="template-i "></i><i style="background-color: #5300c4; border-color: #5300c4;" class="template-i-before "></i><i style="background-color: #5300c4; border-color: #5300c4;" class="template-i-after "></i><b style="text-align: center;z-index: 100;" class="br-labels-css br-labels-css-1"><span class='b_span_before'>ð</span><span class='b_span_text'>-48%</span></b></span></div></div></div></div></div><h2 class="woocommerce-loop-product__title"><a class="woocommerce-LoopProduct-link woocommerce-loop-product__link" href="https://diamant-strass-dmc.com/perles-broderie/regle-alignement-broderie-diamant/" target="_self">Règle d’alignement pour diamond painting</a></h2> 5375 <span class="price"><span class="aelia_product_price" data-product_id="43074"><span class="from">à partir de : </span><span class="woocommerce-Price-amount amount"><bdi><span class="woocommerce-Price-currencySymbol" translate="no">$</span>7.77</bdi></span></span></span> 5376<div class="ct-woo-card-actions" data-add-to-cart="auto-hide" data-alignment="equal"> <span id="woocommerce_loop_add_to_cart_link_describedby_43074" class="screen-reader-text"> 5377 Ce produit a plusieurs variations. Les options peuvent être choisies sur la page du produit </span> 5378</div></li> 5379<li class="product type-product post-45354 status-publish instock product_cat-accessoires product_cat-promo has-post-thumbnail sale taxable shipping-taxable purchasable product-type-variable has-default-attributes thumbs-bottom"> 5380 <figure > 5381 5382 <a class="ct-media-container" href="https://diamant-strass-dmc.com/perles-broderie/feuilles-antiadhesives-couverture-toile/" aria-label="Feuilles antiadhésives de couverture de toile"><picture><source srcset="https://diamant-strass-dmc.com/wp-content/uploads/2022/09/10-feuilles-a6-diamond-painting-300x300.webp 300w,https://diamant-strass-dmc.com/wp-content/uploads/2022/09/10-feuilles-a6-diamond-painting-1024x1024.webp 1024w,https://diamant-strass-dmc.com/wp-content/uploads/2022/09/10-feuilles-a6-diamond-painting-150x150.webp 150w,https://diamant-strass-dmc.com/wp-content/uploads/2022/09/10-feuilles-a6-diamond-painting-768x768.webp 768w,https://diamant-strass-dmc.com/wp-content/uploads/2022/09/10-feuilles-a6-diamond-painting-324x324.webp 324w,https://diamant-strass-dmc.com/wp-content/uploads/2022/09/10-feuilles-a6-diamond-painting-416x416.webp 416w,https://diamant-strass-dmc.com/wp-content/uploads/2022/09/10-feuilles-a6-diamond-painting-100x100.webp 100w,https://diamant-strass-dmc.com/wp-content/uploads/2022/09/10-feuilles-a6-diamond-painting-50x50.webp 50w,https://diamant-strass-dmc.com/wp-content/uploads/2022/09/10-feuilles-a6-diamond-painting-600x600.webp 600w,https://diamant-strass-dmc.com/wp-content/uploads/2022/09/10-feuilles-a6-diamond-painting.webp 1200w" sizes="auto, (max-width: 300px) 100v
5382w, 300px" type="image/webp"><img src="https://diamant-strass-dmc.com/wp-content/uploads/2022/09/10-feuilles-a6-diamond-painting-300x300.webp" height="300" width="300" srcset="https://diamant-strass-dmc.com/wp-content/uploads/2022/09/10-feuilles-a6-diamond-painting-300x300.webp 300w, https://diamant-strass-dmc.com/wp-content/uploads/2022/09/10-feuilles-a6-diamond-painting-1024x1024.webp 1024w, https://diamant-strass-dmc.com/wp-content/uploads/2022/09/10-feuilles-a6-diamond-painting-150x150.webp 150w, https://diamant-strass-dmc.com/wp-content/uploads/2022/09/10-feuilles-a6-diamond-painting-768x768.webp 768w, https://diamant-strass-dmc.com/wp-content/uploads/2022/09/10-feuilles-a6-diamond-painting-324x324.webp 324w, https://diamant-strass-dmc.com/wp-content/uploads/2022/09/10-feuilles-a6-diamond-painting-416x416.webp 416w, https://diamant-strass-dmc.com/wp-content/uploads/2022/09/10-feuilles-a6-diamond-painting-100x100.webp 100w, https://diamant-strass-dmc.com/wp-content/uploads/2022/09/10-feuilles-a6-diamond-painting-50x50.webp 50w, https://diamant-strass-dmc.com/wp-content/uploads/2022/09/10-feuilles-a6-diamond-painting-600x600.webp 600w, https://diamant-strass-dmc.com/wp-content/uploads/2022/09/10-feuilles-a6-diamond-painting.webp 1200w" sizes="auto, (max-width: 300px) 100vw, 300px" class=" wp-post-image sp-no-webp" alt="Feuilles antiadhésives de couverture de toile" loading="lazy" decoding="async" itemprop="image" style="aspect-ratio: 1/1;" title="10-feuilles-a6-diamond-painting" data-xoowscfly="fly" > </picture></a></figure><div class="berocket_better_labels berocket_better_labels_image"><div class="berocket_better_labels_position berocket_better_labels_position_left"><div class="berocket_better_labels_line berocket_better_labels_line_1"><div class="berocket_better_labels_inline berocket_better_labels_inline_1"><div class="br_alabel br_alabel_type_sale_p br_alabel_template_type_css berocket_alabel_id_115461 br_alabel_better_compatibility" style=""><span style=""><i style="background-color: #5300c4; border-color: #5300c4;" class="template-span-before "></i><i style="background-color: #5300c4; border-color: #5300c4;" class="template-i "></i><i style="background-color: #5300c4; border-color: #5300c4;" class="template-i-before "></i><i style="background-color: #5300c4; border-color: #5300c4;" class="template-i-after "></i><b style="text-align: center;z-index: 100;" class="br-labels-css br-labels-css-1"><span class='b_span_before'>ð</span><span class='b_span_text'>-30%</span></b></span></div></div></div></div></div><h2 class="woocommerce-loop-product__title"><a class="woocommerce-LoopProduct-link woocommerce-loop-product__link" href="https://diamant-strass-dmc.com/perles-broderie/feuilles-antiadhesives-couverture-toile/" target="_self">Feuilles antiadhésives de couverture de toile</a></h2> 5383 <span class="price"><span class="aelia_product_price" data-product_id="45354"><span class="from">à partir de : </span><span class="woocommerce-Price-amount amount"><bdi><span class="woocommerce-Price-currencySymbol" translate="no">$</span>2.14</bdi></span></span></span> 5384<div class="ct-woo-card-actions" data-add-to-cart="auto-hide" data-alignment="equal"> <span id="woocommerce_loop_add_to_cart_link_describedby_45354" class="screen-reader-text"> 5385 Ce produit a plusieurs variations. Les options peuvent être choisies sur la page du produit </span> 5386</div></li> 5387<li class="product type-product post-34497 status-publish last instock product_cat-accessoires product_cat-promo has-post-thumbnail sale taxable shipping-taxable purchasable product-type-variable has-default-attributes"> 5388 <figure > 5389 5390 <a class="ct-media-container" href="https://diamant-strass-dmc.com/perles-broderie/carres-colle-broderie-diamant/" aria-label="Carrés de colle pour diamond painting"><picture><source srcset="https://diamant-strass-dmc.com/wp-content/uploads/2024/09/20colle-diamond-painting-300x300.avif 300w,https://diamant-strass-dmc.com/wp-content/uploads/2024/09/20colle-diamond-painting-150x150.webp 150w,https://diamant-strass-dmc.com/wp-content/uploads/2024/09/20colle-diamond-painting-768x768.avif 768w,https://diamant-strass-dmc.com/wp-content/uploads/2024/09/20colle-diamond-painting-416x416.avif 416w,https://diamant-strass-dmc.com/wp-content/uploads/2024/09/20colle-diamond-painting.avif 800w,https://diamant-strass-dmc.com/wp-content/uploads/2024/09/20colle-diamond-painting-324x324.avif 324w,https://diamant-strass-dmc.com/wp-content/uploads/2024/09/20colle-diamond-painting-100x100.webp 100w,https://diamant-strass-dmc.com/wp-content/uploads/2024/09/20colle-diamond-painting-50x50.webp 50w,https://diamant-strass-dmc.com/wp-content/uploads/2024/09/20colle-diamond-painting-600x600.avif 600w" sizes="auto, (max-width: 300px) 100v
5390w, 300px" type="image/avif"><source srcset="https://diamant-strass-dmc.com/wp-content/uploads/2024/09/20colle-diamond-painting-300x300.webp 300w,https://diamant-strass-dmc.com/wp-content/uploads/2024/09/20colle-diamond-painting-150x150.webp 150w,https://diamant-strass-dmc.com/wp-content/uploads/2024/09/20colle-diamond-painting-768x768.webp 768w,https://diamant-strass-dmc.com/wp-content/uploads/2024/09/20colle-diamond-painting-416x416.webp 416w,https://diamant-strass-dmc.com/wp-content/uploads/2024/09/20colle-diamond-painting.webp 800w,https://diamant-strass-dmc.com/wp-content/uploads/2024/09/20colle-diamond-painting-324x324.webp 324w,https://diamant-strass-dmc.com/wp-content/uploads/2024/09/20colle-diamond-painting-100x100.webp 100w,https://diamant-strass-dmc.com/wp-content/uploads/2024/09/20colle-diamond-painting-50x50.webp 50w,https://diamant-strass-dmc.com/wp-content/uploads/2024/09/20colle-diamond-painting-600x600.webp 600w" sizes="auto, (max-width: 300px) 100vw, 300px" type="image/webp"><img src="https://diamant-strass-dmc.com/wp-content/uploads/2024/09/20colle-diamond-painting-300x300.jpg" height="300" width="300" srcset="https://diamant-strass-dmc.com/wp-content/uploads/2024/09/20colle-diamond-painting-300x300.jpg 300w, https://diamant-strass-dmc.com/wp-content/uploads/2024/09/20colle-diamond-painting-150x150.jpg 150w, https://diamant-strass-dmc.com/wp-content/uploads/2024/09/20colle-diamond-painting-768x768.jpg 768w, https://diamant-strass-dmc.com/wp-content/uploads/2024/09/20colle-diamond-painting-416x416.jpg 416w, https://diamant-strass-dmc.com/wp-content/uploads/2024/09/20colle-diamond-painting.jpg 800w, https://diamant-strass-dmc.com/wp-content/uploads/2024/09/20colle-diamond-painting-324x324.jpg 324w, https://diamant-strass-dmc.com/wp-content/uploads/2024/09/20colle-diamond-painting-100x100.jpg 100w, https://diamant-strass-dmc.com/wp-content/uploads/2024/09/20colle-diamond-painting-50x50.jpg 50w, https://diamant-strass-dmc.com/wp-content/uploads/2024/09/20colle-diamond-painting-600x600.jpg 600w" sizes="auto, (max-width: 300px) 100vw, 300px" class=" wp-post-image sp-no-webp" alt="20 carrés colle diamond painting" loading="lazy" decoding="async" itemprop="image" style="aspect-ratio: 1/1;" title="20colle-diamond-painting" data-xoowscfly="fly" > </picture></a></figure><div class="berocket_better_labels berocket_better_labels_image"><div class="berocket_better_labels_position berocket_better_labels_position_left"><div class="berocket_better_labels_line berocket_better_labels_line_1"><div class="berocket_better_labels_inline berocket_better_labels_inline_1"><div class="br_alabel br_alabel_type_sale_p br_alabel_template_type_css berocket_alabel_id_115461 br_alabel_better_compatibility" style=""><span style=""><i style="background-color: #5300c4; border-color: #5300c4;" class="template-span-before "></i><i style="background-color: #5300c4; border-color: #5300c4;" class="template-i "></i><i style="background-color: #5300c4; border-color: #5300c4;" class="template-i-before "></i><i style="background-color: #5300c4; border-color: #5300c4;" class="template-i-after "></i><b style="text-align: center;z-index: 100;" class="br-labels-css br-labels-css-1"><span class='b_span_before'>ð</span><span class='b_span_text'>-46%</span></b></span></div></div></div></div></div><h2 class="woocommerce-loop-product__title"><a class="woocommerce-LoopProduct-link woocommerce-loop-product__link" href="https://diamant-strass-dmc.com/perles-broderie/carres-colle-broderie-diamant/" target="_self">Carrés de colle pour diamond painting</a></h2> 5391 <span class="price"><span class="aelia_product_price" data-product_id="34497"><span class="from">à partir de : </span><span class="woocommerce-Price-amount amount"><bdi><span class="woocommerce-Price-currencySymbol" translate="no">$</span>1.35</bdi></span></span></span> 5392<div class="ct-woo-card-actions" data-add-to-cart="auto-hide" data-alignment="equal"> <span id="woocommerce_loop_add_to_cart_link_describedby_34497" class="screen-reader-text"> 5393 Ce produit a plusieurs variations. Les options peuvent être choisies sur la page du produit </span> 5394</div></li> 5395<li class="product type-product post-35862 status-publish first instock product_cat-accessoires product_cat-promo has-post-thumbnail sale taxable shipping-taxable purchasable product-type-variable has-default-attributes thumbs-bottom"> 5396 <figure > 5397 5398 <a class="ct-media-container" href="https://diamant-strass-dmc.com/perles-broderie/sachets-zip-perles-diamants-surplus/" aria-label="Sachets zip épais pour perles en surplus"><picture><source srcset="https://diamant-strass-dmc.com/wp-content/uploads/2022/08/sachets-zip-diamond-painting-1-300x300.avif 300w,https://diamant-strass-dmc.com/wp-content/uploads/2022/08/sachets-zip-diamond-painting-1-416x416.avif 416w,https://diamant-strass-dmc.com/wp-content/uploads/2022/08/sachets-zip-diamond-painting-1-150x150.webp 150w,https://diamant-strass-dmc.com/wp-content/uploads/2022/08/sachets-zip-diamond-painting-1-768x768.avif 768w,https://diamant-strass-dmc.com/wp-content/uploads/2022/08/sachets-zip-diamond-painting-1-600x600.avif 600w,https://diamant-strass-dmc.com/wp-content/uploads/2022/08/sachets-zip-diamond-painting-1-100x100.webp 100w,https://diamant-strass-dmc.com/wp-content/uploads/2022/08/sachets-zip-diamond-painting-1-50x50.webp 50w,https://diamant-strass-dmc.com/wp-content/uploads/2022/08/sachets-zip-diamond-painting-1.avif 800w" sizes="auto, (max-width: 300px) 100v
5398w, 300px" type="image/avif"><source srcset="https://diamant-strass-dmc.com/wp-content/uploads/2022/08/sachets-zip-diamond-painting-1-300x300.webp 300w,https://diamant-strass-dmc.com/wp-content/uploads/2022/08/sachets-zip-diamond-painting-1-416x416.webp 416w,https://diamant-strass-dmc.com/wp-content/uploads/2022/08/sachets-zip-diamond-painting-1-150x150.webp 150w,https://diamant-strass-dmc.com/wp-content/uploads/2022/08/sachets-zip-diamond-painting-1-768x768.webp 768w,https://diamant-strass-dmc.com/wp-content/uploads/2022/08/sachets-zip-diamond-painting-1-600x600.webp 600w,https://diamant-strass-dmc.com/wp-content/uploads/2022/08/sachets-zip-diamond-painting-1-100x100.webp 100w,https://diamant-strass-dmc.com/wp-content/uploads/2022/08/sachets-zip-diamond-painting-1-50x50.webp 50w,https://diamant-strass-dmc.com/wp-content/uploads/2022/08/sachets-zip-diamond-painting-1.webp 800w" sizes="auto, (max-width: 300px) 100vw, 300px" type="image/webp"><img src="https://diamant-strass-dmc.com/wp-content/uploads/2022/08/sachets-zip-diamond-painting-1-300x300.jpg" height="300" width="300" srcset="https://diamant-strass-dmc.com/wp-content/uploads/2022/08/sachets-zip-diamond-painting-1-300x300.jpg 300w, https://diamant-strass-dmc.com/wp-content/uploads/2022/08/sachets-zip-diamond-painting-1-416x416.jpg 416w, https://diamant-strass-dmc.com/wp-content/uploads/2022/08/sachets-zip-diamond-painting-1-150x150.jpg 150w, https://diamant-strass-dmc.com/wp-content/uploads/2022/08/sachets-zip-diamond-painting-1-768x768.jpg 768w, https://diamant-strass-dmc.com/wp-content/uploads/2022/08/sachets-zip-diamond-painting-1-600x600.jpg 600w, https://diamant-strass-dmc.com/wp-content/uploads/2022/08/sachets-zip-diamond-painting-1-100x100.jpg 100w, https://diamant-strass-dmc.com/wp-content/uploads/2022/08/sachets-zip-diamond-painting-1-50x50.jpg 50w, https://diamant-strass-dmc.com/wp-content/uploads/2022/08/sachets-zip-diamond-painting-1.jpg 800w" sizes="auto, (max-width: 300px) 100vw, 300px" class=" wp-post-image sp-no-webp" alt="Sachets zip diamond painting" loading="lazy" decoding="async" itemprop="image" style="aspect-ratio: 1/1;" title="sachets-zip-diamond-painting" data-xoowscfly="fly" > </picture></a></figure><div class="berocket_better_labels berocket_better_labels_image"><div class="berocket_better_labels_position berocket_better_labels_position_left"><div class="berocket_better_labels_line berocket_better_labels_line_1"><div class="berocket_better_labels_inline berocket_better_labels_inline_1"><div class="br_alabel br_alabel_type_sale_p br_alabel_template_type_css berocket_alabel_id_115461 br_alabel_better_compatibility" style=""><span style=""><i style="background-color: #5300c4; border-color: #5300c4;" class="template-span-before "></i><i style="background-color: #5300c4; border-color: #5300c4;" class="template-i "></i><i style="background-color: #5300c4; border-color: #5300c4;" class="template-i-before "></i><i style="background-color: #5300c4; border-color: #5300c4;" class="template-i-after "></i><b style="text-align: center;z-index: 100;" class="br-labels-css br-labels-css-1"><span class='b_span_before'>ð</span><span class='b_span_text'>-47%</span></b></span></div></div></div></div></div><h2 class="woocommerce-loop-product__title"><a class="woocommerce-LoopProduct-link woocommerce-loop-product__link" href="https://diamant-strass-dmc.com/perles-broderie/sachets-zip-perles-diamants-surplus/" target="_self">Sachets zip épais pour perles en surplus</a></h2> 5399 <span class="price"><span class="aelia_product_price" data-product_id="35862"><span class="from">à partir de : </span><span class="woocommerce-Price-amount amount"><bdi><span class="woocommerce-Price-currencySymbol" translate="no">$</span>3.26</bdi></span></span></span> 5400<div class="ct-woo-card-actions" data-add-to-cart="auto-hide" data-alignment="equal"> <span id="woocommerce_loop_add_to_cart_link_describedby_35862" class="screen-reader-text"> 5401 Ce produit a plusieurs variations. Les options peuvent être choisies sur la page du produit </span> 5402</div></li> 5403<li class="product type-product post-148017 status-publish outofstock product_cat-accessoires product_cat-promo has-post-thumbnail sale taxable shipping-taxable purchasable product-type-variable has-default-attributes thumbs-bottom"> 5404 <figure ><span class="out-of-stock-badge" data-shape="type-2">ÃPUISÃ</span><a class="ct-media-container" href="https://diamant-strass-dmc.com/perles-broderie/pinces-epiler-diamond-painting/" aria-label="Pince à épiler pour diamond painting"><picture><source srcset="https://diamant-strass-dmc.com/wp-content/uploads/2026/03/pinces-a-epiler-300x300.avif 300w,https://diamant-strass-dmc.com/wp-content/uploads/2026/03/pinces-a-epiler-416x416.avif 416w,https://diamant-strass-dmc.com/wp-content/uploads/2026/03/pinces-a-epiler-150x150.webp 150w,https://diamant-strass-dmc.com/wp-content/uploads/2026/03/pinces-a-epiler-600x600.avif 600w,https://diamant-strass-dmc.com/wp-content/uploads/2026/03/pinces-a-epiler-100x100.webp 100w,https://diamant-strass-dmc.com/wp-content/uploads/2026/03/pinces-a-epiler-50x50.webp 50w,https://diamant-strass-dmc.com/wp-content/uploads/2026/03/pinces-a-epiler.avif 676w" sizes="auto, (max-width: 300px) 100v
5404w, 300px" type="image/avif"><source srcset="https://diamant-strass-dmc.com/wp-content/uploads/2026/03/pinces-a-epiler-300x300.webp 300w,https://diamant-strass-dmc.com/wp-content/uploads/2026/03/pinces-a-epiler-416x416.webp 416w,https://diamant-strass-dmc.com/wp-content/uploads/2026/03/pinces-a-epiler-150x150.webp 150w,https://diamant-strass-dmc.com/wp-content/uploads/2026/03/pinces-a-epiler-600x600.webp 600w,https://diamant-strass-dmc.com/wp-content/uploads/2026/03/pinces-a-epiler-100x100.webp 100w,https://diamant-strass-dmc.com/wp-content/uploads/2026/03/pinces-a-epiler-50x50.webp 50w,https://diamant-strass-dmc.com/wp-content/uploads/2026/03/pinces-a-epiler.webp 676w" sizes="auto, (max-width: 300px) 100vw, 300px" type="image/webp"><img src="https://diamant-strass-dmc.com/wp-content/uploads/2026/03/pinces-a-epiler-300x300.jpg" height="300" width="300" srcset="https://diamant-strass-dmc.com/wp-content/uploads/2026/03/pinces-a-epiler-300x300.jpg 300w, https://diamant-strass-dmc.com/wp-content/uploads/2026/03/pinces-a-epiler-416x416.jpg 416w, https://diamant-strass-dmc.com/wp-content/uploads/2026/03/pinces-a-epiler-150x150.jpg 150w, https://diamant-strass-dmc.com/wp-content/uploads/2026/03/pinces-a-epiler-600x600.jpg 600w, https://diamant-strass-dmc.com/wp-content/uploads/2026/03/pinces-a-epiler-100x100.jpg 100w, https://diamant-strass-dmc.com/wp-content/uploads/2026/03/pinces-a-epiler-50x50.jpg 50w, https://diamant-strass-dmc.com/wp-content/uploads/2026/03/pinces-a-epiler.jpg 676w" sizes="auto, (max-width: 300px) 100vw, 300px" class=" wp-post-image sp-no-webp" alt="pinces à épiler pour perles de diamond painting" loading="lazy" decoding="async" itemprop="image" style="aspect-ratio: 1/1;" title="pinces-a-epiler" data-xoowscfly="fly" > </picture></a></figure><div class="berocket_better_labels berocket_better_labels_image"><div class="berocket_better_labels_position berocket_better_labels_position_left"><div class="berocket_better_labels_line berocket_better_labels_line_1"><div class="berocket_better_labels_inline berocket_better_labels_inline_1"><div class="br_alabel br_alabel_type_sale_p br_alabel_template_type_css berocket_alabel_id_115461 br_alabel_better_compatibility" style=""><span style=""><i style="background-color: #5300c4; border-color: #5300c4;" class="template-span-before "></i><i style="background-color: #5300c4; border-color: #5300c4;" class="template-i "></i><i style="background-color: #5300c4; border-color: #5300c4;" class="template-i-before "></i><i style="background-color: #5300c4; border-color: #5300c4;" class="template-i-after "></i><b style="text-align: center;z-index: 100;" class="br-labels-css br-labels-css-1"><span class='b_span_before'>ð</span><span class='b_span_text'>-34%</span></b></span></div></div></div></div></div><h2 class="woocommerce-loop-product__title"><a class="woocommerce-LoopProduct-link woocommerce-loop-product__link" href="https://diamant-strass-dmc.com/perles-broderie/pinces-epiler-diamond-painting/" target="_self">Pince à épiler pour diamond painting</a></h2> 5405 <span class="price"><span class="aelia_product_price" data-product_id="148017"><span class="sale-price"><del aria-hidden="true"><span class="woocommerce-Price-amount amount"><bdi><span class="woocommerce-Price-currencySymbol" translate="no">$</span>1.68</bdi></span></del> <span class="screen-reader-text">Le prix initial était : $1.68.</span><ins aria-hidden="true"><span class="woocommerce-Price-amount amount"><bdi><span class="woocommerce-Price-currencySymbol" translate="no">$</span>1.11</bdi></span></ins><span class="screen-reader-text">Le prix actuel est : $1.11.</span></span></span></span> 5406<div class="ct-woo-card-actions" data-add-to-cart="auto-hide" data-alignment="equal"> <span id="woocommerce_loop_add_to_cart_link_describedby_148017" class="screen-reader-text"> 5407 Ce produit a plusieurs variations. Les options peuvent être choisies sur la page du produit </span> 5408</div></li> 5409<li class="product type-product post-34557 status-publish instock product_cat-accessoires product_cat-promo has-post-thumbnail sale taxable shipping-taxable purchasable product-type-variable has-default-attributes"> 5410 <figure > 5411 5412 <a class="ct-media-container" href="https://diamant-strass-dmc.com/perles-broderie/etiquettes-broderie-diamant/" aria-label="Ãtiquettes pour diamond painting"><picture><source srcset="https://diamant-strass-dmc.com/wp-content/uploads/2022/07/etiquettes-rondes-rectangulaires-autocollantes-broderie-diamant-1-300x300.webp 300w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/etiquettes-rondes-rectangulaires-autocollantes-broderie-diamant-1-150x150.webp 150w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/etiquettes-rondes-rectangulaires-autocollantes-broderie-diamant-1-768x768.avif 768w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/etiquettes-rondes-rectangulaires-autocollantes-broderie-diamant-1-324x324.avif 324w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/etiquettes-rondes-rectangulaires-autocollantes-broderie-diamant-1-416x416.avif 416w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/etiquettes-rondes-rectangulaires-autocollantes-broderie-diamant-1-100x100.webp 100w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/etiquettes-rondes-rectangulaires-autocollantes-broderie-diamant-1-50x50.webp 50w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/etiquettes-rondes-rectangulaires-autocollantes-broderie-diamant-1-600x600.avif 600w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/etiquettes-rondes-rectangulaires-autocollantes-broderie-diamant-1.avif 800w" sizes="auto, (max-width: 300px) 100v
5412w, 300px" type="image/avif"><source srcset="https://diamant-strass-dmc.com/wp-content/uploads/2022/07/etiquettes-rondes-rectangulaires-autocollantes-broderie-diamant-1-300x300.webp 300w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/etiquettes-rondes-rectangulaires-autocollantes-broderie-diamant-1-150x150.webp 150w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/etiquettes-rondes-rectangulaires-autocollantes-broderie-diamant-1-768x768.webp 768w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/etiquettes-rondes-rectangulaires-autocollantes-broderie-diamant-1-324x324.webp 324w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/etiquettes-rondes-rectangulaires-autocollantes-broderie-diamant-1-416x416.webp 416w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/etiquettes-rondes-rectangulaires-autocollantes-broderie-diamant-1-100x100.webp 100w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/etiquettes-rondes-rectangulaires-autocollantes-broderie-diamant-1-50x50.webp 50w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/etiquettes-rondes-rectangulaires-autocollantes-broderie-diamant-1-600x600.webp 600w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/etiquettes-rondes-rectangulaires-autocollantes-broderie-diamant-1.webp 800w" sizes="auto, (max-width: 300px) 100vw, 300px" type="image/webp"><img src="https://diamant-strass-dmc.com/wp-content/uploads/2022/07/etiquettes-rondes-rectangulaires-autocollantes-broderie-diamant-1-300x300.jpg" height="300" width="300" srcset="https://diamant-strass-dmc.com/wp-content/uploads/2022/07/etiquettes-rondes-rectangulaires-autocollantes-broderie-diamant-1-300x300.jpg 300w, https://diamant-strass-dmc.com/wp-content/uploads/2022/07/etiquettes-rondes-rectangulaires-autocollantes-broderie-diamant-1-150x150.jpg 150w, https://diamant-strass-dmc.com/wp-content/uploads/2022/07/etiquettes-rondes-rectangulaires-autocollantes-broderie-diamant-1-768x768.jpg 768w, https://diamant-strass-dmc.com/wp-content/uploads/2022/07/etiquettes-rondes-rectangulaires-autocollantes-broderie-diamant-1-324x324.jpg 324w, https://diamant-strass-dmc.com/wp-content/uploads/2022/07/etiquettes-rondes-rectangulaires-autocollantes-broderie-diamant-1-416x416.jpg 416w, https://diamant-strass-dmc.com/wp-content/uploads/2022/07/etiquettes-rondes-rectangulaires-autocollantes-broderie-diamant-1-100x100.jpg 100w, https://diamant-strass-dmc.com/wp-content/uploads/2022/07/etiquettes-rondes-rectangulaires-autocollantes-broderie-diamant-1-50x50.jpg 50w, https://diamant-strass-dmc.com/wp-content/uploads/2022/07/etiquettes-rondes-rectangulaires-autocollantes-broderie-diamant-1-600x600.jpg 600w, https://diamant-strass-dmc.com/wp-content/uploads/2022/07/etiquettes-rondes-rectangulaires-autocollantes-broderie-diamant-1.jpg 800w" sizes="auto, (max-width: 300px) 100vw, 300px" class=" wp-post-image sp-no-webp" alt="Ãtiquettes pour diamond painting" loading="lazy" decoding="async" itemprop="image" style="aspect-ratio: 1/1;" title="etiquettes-rondes-rectangulaires-autocollantes-broderie-diamant" data-xoowscfly="fly" > </picture></a></figure><div class="berocket_better_labels berocket_better_labels_image"><div class="berocket_better_labels_position berocket_better_labels_position_left"><div class="berocket_better_labels_line berocket_better_labels_line_1"><div class="berocket_better_labels_inline berocket_better_labels_inline_1"><div class="br_alabel br_alabel_type_sale_p br_alabel_template_type_css berocket_alabel_id_115461 br_alabel_better_compatibility" style=""><span style=""><i style="background-color: #5300c4; border-color: #5300c4;" class="template-span-before "></i><i style="background-color: #5300c4; border-color: #5300c4;" class="template-i "></i><i style="background-color: #5300c4; border-color: #5300c4;" class="template-i-before "></i><i style="background-color: #5300c4; border-color: #5300c4;" class="template-i-after "></i><b style="text-align: center;z-index: 100;" class="br-labels-css br-labels-css-1"><span class='b_span_before'>ð</span><span class='b_span_text'>-53%</span></b></span></div></div></div></div></div><h2 class="woocommerce-loop-product__title"><a class="woocommerce-LoopProduct-link woocommerce-loop-product__link" href="https://diamant-strass-dmc.com/perles-broderie/etiquettes-broderie-diamant/" target="_self">Ãtiquettes pour diamond painting</a></h2> 5413 <span class="price"><span class="aelia_product_price" data-product_id="34557"><span class="from">à partir de : </span><span class="woocommerce-Price-amount amount"><bdi><span class="woocommerce-Price-currencySymbol" translate="no">$</span>4.39</bdi></span></span></span> 5414<div class="ct-woo-card-actions" data-add-to-cart="auto-hide" data-alignment="equal"> <span id="woocommerce_loop_add_to_cart_link_describedby_34557" class="screen-reader-text"> 5415 Ce produit a plusieurs variations. Les options peuvent être choisies sur la page du produit </span> 5416</div></li> 5417<li class="product type-product post-44558 status-publish last instock product_cat-accessoires product_cat-promo has-post-thumbnail sale taxable shipping-taxable purchasable product-type-variable has-default-attributes thumbs-bottom"> 5418 <figure > 5419 5420 <a class="ct-media-container" href="https://diamant-strass-dmc.com/perles-broderie/stylo-unique-diamond-painting-broderie-diamant/" aria-label="Stylo avec mini-rouleau pour diamond painting (+ têtes)"><picture><source srcset="https://diamant-strass-dmc.com/wp-content/uploads/2022/09/Stylo-unique_bleu-tete-rouleau-300x300.avif 300w,https://diamant-strass-dmc.com/wp-content/uploads/2022/09/Stylo-unique_bleu-tete-rouleau-416x416.avif 416w,https://diamant-strass-dmc.com/wp-content/uploads/2022/09/Stylo-unique_bleu-tete-rouleau-150x150.webp 150w,https://diamant-strass-dmc.com/wp-content/uploads/2022/09/Stylo-unique_bleu-tete-rouleau-768x768.avif 768w,https://diamant-strass-dmc.com/wp-content/uploads/2022/09/Stylo-unique_bleu-tete-rouleau-600x600.avif 600w,https://diamant-strass-dmc.com/wp-content/uploads/2022/09/Stylo-unique_bleu-tete-rouleau-100x100.webp 100w,https://diamant-strass-dmc.com/wp-content/uploads/2022/09/Stylo-unique_bleu-tete-rouleau-50x50.webp 50w,https://diamant-strass-dmc.com/wp-content/uploads/2022/09/Stylo-unique_bleu-tete-rouleau.avif 960w" sizes="auto, (max-width: 300px) 100v
5420w, 300px" type="image/avif"><source srcset="https://diamant-strass-dmc.com/wp-content/uploads/2022/09/Stylo-unique_bleu-tete-rouleau-300x300.webp 300w,https://diamant-strass-dmc.com/wp-content/uploads/2022/09/Stylo-unique_bleu-tete-rouleau-416x416.webp 416w,https://diamant-strass-dmc.com/wp-content/uploads/2022/09/Stylo-unique_bleu-tete-rouleau-150x150.webp 150w,https://diamant-strass-dmc.com/wp-content/uploads/2022/09/Stylo-unique_bleu-tete-rouleau-768x768.webp 768w,https://diamant-strass-dmc.com/wp-content/uploads/2022/09/Stylo-unique_bleu-tete-rouleau-600x600.webp 600w,https://diamant-strass-dmc.com/wp-content/uploads/2022/09/Stylo-unique_bleu-tete-rouleau-100x100.webp 100w,https://diamant-strass-dmc.com/wp-content/uploads/2022/09/Stylo-unique_bleu-tete-rouleau-50x50.webp 50w,https://diamant-strass-dmc.com/wp-content/uploads/2022/09/Stylo-unique_bleu-tete-rouleau.webp 960w" sizes="auto, (max-width: 300px) 100vw, 300px" type="image/webp"><img src="https://diamant-strass-dmc.com/wp-content/uploads/2022/09/Stylo-unique_bleu-tete-rouleau-300x300.jpg" height="300" width="300" srcset="https://diamant-strass-dmc.com/wp-content/uploads/2022/09/Stylo-unique_bleu-tete-rouleau-300x300.jpg 300w, https://diamant-strass-dmc.com/wp-content/uploads/2022/09/Stylo-unique_bleu-tete-rouleau-416x416.jpg 416w, https://diamant-strass-dmc.com/wp-content/uploads/2022/09/Stylo-unique_bleu-tete-rouleau-150x150.jpg 150w, https://diamant-strass-dmc.com/wp-content/uploads/2022/09/Stylo-unique_bleu-tete-rouleau-768x768.jpg 768w, https://diamant-strass-dmc.com/wp-content/uploads/2022/09/Stylo-unique_bleu-tete-rouleau-600x600.jpg 600w, https://diamant-strass-dmc.com/wp-content/uploads/2022/09/Stylo-unique_bleu-tete-rouleau-100x100.jpg 100w, https://diamant-strass-dmc.com/wp-content/uploads/2022/09/Stylo-unique_bleu-tete-rouleau-50x50.jpg 50w, https://diamant-strass-dmc.com/wp-content/uploads/2022/09/Stylo-unique_bleu-tete-rouleau.jpg 960w" sizes="auto, (max-width: 300px) 100vw, 300px" class=" wp-post-image sp-no-webp" alt="stylo unique bleu avec tête et tête rouleau" loading="lazy" decoding="async" itemprop="image" style="aspect-ratio: 1/1;" title="Stylo-unique_bleu-tete-rouleau" data-xoowscfly="fly" > </picture></a></figure><div class="berocket_better_labels berocket_better_labels_image"><div class="berocket_better_labels_position berocket_better_labels_position_left"><div class="berocket_better_labels_line berocket_better_labels_line_1"><div class="berocket_better_labels_inline berocket_better_labels_inline_1"><div class="br_alabel br_alabel_type_sale_p br_alabel_template_type_css berocket_alabel_id_115461 br_alabel_better_compatibility" style=""><span style=""><i style="background-color: #5300c4; border-color: #5300c4;" class="template-span-before "></i><i style="background-color: #5300c4; border-color: #5300c4;" class="template-i "></i><i style="background-color: #5300c4; border-color: #5300c4;" class="template-i-before "></i><i style="background-color: #5300c4; border-color: #5300c4;" class="template-i-after "></i><b style="text-align: center;z-index: 100;" class="br-labels-css br-labels-css-1"><span class='b_span_before'>ð</span><span class='b_span_text'>-30%</span></b></span></div></div></div></div></div><h2 class="woocommerce-loop-product__title"><a class="woocommerce-LoopProduct-link woocommerce-loop-product__link" href="https://diamant-strass-dmc.com/perles-broderie/stylo-unique-diamond-painting-broderie-diamant/" target="_self">Stylo avec mini-rouleau pour diamond painting (+ têtes)</a></h2> 5421 <span class="price"><span class="aelia_product_price" data-product_id="44558"><span class="sale-price"><del aria-hidden="true"><span class="woocommerce-Price-amount amount"><bdi><span class="woocommerce-Price-currencySymbol" translate="no">$</span>11.14</bdi></span></del> <span class="screen-reader-text">Le prix initial était : $11.14.</span><ins aria-hidden="true"><span class="woocommerce-Price-amount amount"><bdi><span class="woocommerce-Price-currencySymbol" translate="no">$</span>7.77</bdi></span></ins><span class="screen-reader-text">Le prix actuel est : $7.77.</span></span></span></span> 5422<div class="ct-woo-card-actions" data-add-to-cart="auto-hide" data-alignment="equal"> <span id="woocommerce_loop_add_to_cart_link_describedby_44558" class="screen-reader-text"> 5423 Ce produit a plusieurs variations. Les options peuvent être choisies sur la page du produit </span> 5424</div></li> 5425</ul> 5426</div><div class="bloc-bouton-accessoires"><a href="/couleur/accessoires/" class="button" style="padding: 0.8em 1.8em; text-decoration: none;">Voir tous les accessoires</a></div></div></div></div> 5427 5428 5429 5430 5431 <section class="related products is-width-constrained ct-hidden-sm ct-hidden-md"> 5432 5433 <h2 class="ct-module-title">Produits similaires</h2> 5434 <ul class="products columns-4" data-products="type-1"> 5435 5436 5437 <li class="product type-product post-156617 status-publish first instock product_cat-accessoires has-post-thumbnail sale taxable shipping-taxable purchasable product-type-variable has-default-attributes thumbs-bottom"> 5438 <figure > 5439 5440 <a class="ct-media-container" href="https://diamant-strass-dmc.com/perles-broderie/mini-entonnoirs-diamond-painting/" aria-label="Mini-entonnoirs pour diamond painting"><picture><source srcset="https://diamant-strass-dmc.com/wp-content/uploads/2026/09/mini-entonnoirs-rose-bleu-300x300.webp 300w,https://diamant-strass-dmc.com/wp-content/uploads/2026/09/mini-entonnoirs-rose-bleu-416x416.avif 416w,https://diamant-strass-dmc.com/wp-content/uploads/2026/09/mini-entonnoirs-rose-bleu-150x150.webp 150w,https://diamant-strass-dmc.com/wp-content/uploads/2026/09/mini-entonnoirs-rose-bleu-768x768.avif 768w,https://diamant-strass-dmc.com/wp-content/uploads/2026/09/mini-entonnoirs-rose-bleu-600x600.avif 600w,https://diamant-strass-dmc.com/wp-content/uploads/2026/09/mini-entonnoirs-rose-bleu-100x100.webp 100w,https://diamant-strass-dmc.com/wp-content/uploads/2026/09/mini-entonnoirs-rose-bleu-50x50.webp 50w,https://diamant-strass-dmc.com/wp-content/uploads/2026/09/mini-entonnoirs-rose-bleu.avif 800w" sizes="auto, (max-width: 300px) 100v
5440w, 300px" type="image/avif"><source srcset="https://diamant-strass-dmc.com/wp-content/uploads/2026/09/mini-entonnoirs-rose-bleu-300x300.webp 300w,https://diamant-strass-dmc.com/wp-content/uploads/2026/09/mini-entonnoirs-rose-bleu-416x416.webp 416w,https://diamant-strass-dmc.com/wp-content/uploads/2026/09/mini-entonnoirs-rose-bleu-150x150.webp 150w,https://diamant-strass-dmc.com/wp-content/uploads/2026/09/mini-entonnoirs-rose-bleu-768x768.webp 768w,https://diamant-strass-dmc.com/wp-content/uploads/2026/09/mini-entonnoirs-rose-bleu-600x600.webp 600w,https://diamant-strass-dmc.com/wp-content/uploads/2026/09/mini-entonnoirs-rose-bleu-100x100.webp 100w,https://diamant-strass-dmc.com/wp-content/uploads/2026/09/mini-entonnoirs-rose-bleu-50x50.webp 50w,https://diamant-strass-dmc.com/wp-content/uploads/2026/09/mini-entonnoirs-rose-bleu.webp 800w" sizes="auto, (max-width: 300px) 100vw, 300px" type="image/webp"><img src="https://diamant-strass-dmc.com/wp-content/uploads/2026/09/mini-entonnoirs-rose-bleu-300x300.jpg" height="300" width="300" srcset="https://diamant-strass-dmc.com/wp-content/uploads/2026/09/mini-entonnoirs-rose-bleu-300x300.jpg 300w, https://diamant-strass-dmc.com/wp-content/uploads/2026/09/mini-entonnoirs-rose-bleu-416x416.jpg 416w, https://diamant-strass-dmc.com/wp-content/uploads/2026/09/mini-entonnoirs-rose-bleu-150x150.jpg 150w, https://diamant-strass-dmc.com/wp-content/uploads/2026/09/mini-entonnoirs-rose-bleu-768x768.jpg 768w, https://diamant-strass-dmc.com/wp-content/uploads/2026/09/mini-entonnoirs-rose-bleu-600x600.jpg 600w, https://diamant-strass-dmc.com/wp-content/uploads/2026/09/mini-entonnoirs-rose-bleu-100x100.jpg 100w, https://diamant-strass-dmc.com/wp-content/uploads/2026/09/mini-entonnoirs-rose-bleu-50x50.jpg 50w, https://diamant-strass-dmc.com/wp-content/uploads/2026/09/mini-entonnoirs-rose-bleu.jpg 800w" sizes="auto, (max-width: 300px) 100vw, 300px" class=" wp-post-image sp-no-webp" alt="mini-entonnoirs rose bleu" loading="lazy" decoding="async" itemprop="image" style="aspect-ratio: 1/1;" title="mini-entonnoirs-rose-bleu" data-xoowscfly="fly" > </picture></a></figure><h2 class="woocommerce-loop-product__title"><a class="woocommerce-LoopProduct-link woocommerce-loop-product__link" href="https://diamant-strass-dmc.com/perles-broderie/mini-entonnoirs-diamond-painting/" target="_self">Mini-entonnoirs pour diamond painting</a></h2> 5441 <span class="price"><span class="aelia_product_price" data-product_id="156617"><span class="from">à partir de : </span><span class="woocommerce-Price-amount amount"><bdi><span class="woocommerce-Price-currencySymbol" translate="no">$</span>1.69</bdi></span></span></span> 5442<div class="ct-woo-card-actions" data-add-to-cart="auto-hide" data-alignment="equal"> <span id="woocommerce_loop_add_to_cart_link_describedby_156617" class="screen-reader-text"> 5443 Ce produit a plusieurs variations. Les options peuvent être choisies sur la page du produit </span> 5444</div></li> 5445 5446 5447 <li class="product type-product post-77821 status-publish outofstock product_cat-accessoires has-post-thumbnail sale taxable shipping-taxable purchasable product-type-variable has-default-attributes thumbs-bottom"> 5448 <figure ><span class="out-of-stock-badge" data-shape="type-2">ÃPUISÃ</span><a class="ct-media-container" href="https://diamant-strass-dmc.com/perles-broderie/plateau-diamond-painting-bec-verseur/" aria-label="Plateau bec verseur pour diamond painting"><picture><source srcset="https://diamant-strass-dmc.com/wp-content/uploads/2024/09/2-plateaux-300x300.webp 300w,https://diamant-strass-dmc.com/wp-content/uploads/2024/09/2-plateaux-150x150.webp 150w,https://diamant-strass-dmc.com/wp-content/uploads/2024/09/2-plateaux.avif 640w,https://diamant-strass-dmc.com/wp-content/uploads/2024/09/2-plateaux-416x416.avif 416w,https://diamant-strass-dmc.com/wp-content/uploads/2024/09/2-plateaux-324x324.webp 324w,https://diamant-strass-dmc.com/wp-content/uploads/2024/09/2-plateaux-100x100.webp 100w,https://diamant-strass-dmc.com/wp-content/uploads/2024/09/2-plateaux-50x50.webp 50w,https://diamant-strass-dmc.com/wp-content/uploads/2024/09/2-plateaux-600x600.avif 600w" sizes="auto, (max-width: 300px) 100v
5448w, 300px" type="image/avif"><source srcset="https://diamant-strass-dmc.com/wp-content/uploads/2024/09/2-plateaux-300x300.webp 300w,https://diamant-strass-dmc.com/wp-content/uploads/2024/09/2-plateaux-150x150.webp 150w,https://diamant-strass-dmc.com/wp-content/uploads/2024/09/2-plateaux.webp 640w,https://diamant-strass-dmc.com/wp-content/uploads/2024/09/2-plateaux-416x416.webp 416w,https://diamant-strass-dmc.com/wp-content/uploads/2024/09/2-plateaux-324x324.webp 324w,https://diamant-strass-dmc.com/wp-content/uploads/2024/09/2-plateaux-100x100.webp 100w,https://diamant-strass-dmc.com/wp-content/uploads/2024/09/2-plateaux-50x50.webp 50w,https://diamant-strass-dmc.com/wp-content/uploads/2024/09/2-plateaux-600x600.webp 600w" sizes="auto, (max-width: 300px) 100vw, 300px" type="image/webp"><img src="https://diamant-strass-dmc.com/wp-content/uploads/2024/09/2-plateaux-300x300.jpg" height="300" width="300" srcset="https://diamant-strass-dmc.com/wp-content/uploads/2024/09/2-plateaux-300x300.jpg 300w, https://diamant-strass-dmc.com/wp-content/uploads/2024/09/2-plateaux-150x150.jpg 150w, https://diamant-strass-dmc.com/wp-content/uploads/2024/09/2-plateaux.jpg 640w, https://diamant-strass-dmc.com/wp-content/uploads/2024/09/2-plateaux-416x416.jpg 416w, https://diamant-strass-dmc.com/wp-content/uploads/2024/09/2-plateaux-324x324.jpg 324w, https://diamant-strass-dmc.com/wp-content/uploads/2024/09/2-plateaux-100x100.jpg 100w, https://diamant-strass-dmc.com/wp-content/uploads/2024/09/2-plateaux-50x50.jpg 50w, https://diamant-strass-dmc.com/wp-content/uploads/2024/09/2-plateaux-600x600.jpg 600w" sizes="auto, (max-width: 300px) 100vw, 300px" class=" wp-post-image sp-no-webp" alt="Plateau bec verseur pour diamond painting" loading="lazy" decoding="async" itemprop="image" style="aspect-ratio: 1/1;" title="2-plateaux" data-xoowscfly="fly" > </picture></a></figure><div class="berocket_better_labels berocket_better_labels_image"><div class="berocket_better_labels_position berocket_better_labels_position_left"><div class="berocket_better_labels_line berocket_better_labels_line_1"><div class="berocket_better_labels_inline berocket_better_labels_inline_1"><div class="br_alabel br_alabel_type_sale_p br_alabel_template_type_css berocket_alabel_id_115461 br_alabel_better_compatibility" style=""><span style=""><i style="background-color: #5300c4; border-color: #5300c4;" class="template-span-before "></i><i style="background-color: #5300c4; border-color: #5300c4;" class="template-i "></i><i style="background-color: #5300c4; border-color: #5300c4;" class="template-i-before "></i><i style="background-color: #5300c4; border-color: #5300c4;" class="template-i-after "></i><b style="text-align: center;z-index: 100;" class="br-labels-css br-labels-css-1"><span class='b_span_before'>ð</span><span class='b_span_text'>-36%</span></b></span></div></div></div></div></div><h2 class="woocommerce-loop-product__title"><a class="woocommerce-LoopProduct-link woocommerce-loop-product__link" href="https://diamant-strass-dmc.com/perles-broderie/plateau-diamond-painting-bec-verseur/" target="_self">Plateau bec verseur pour diamond painting</a></h2> 5449 <span class="price"><span class="aelia_product_price" data-product_id="77821"><span class="from">à partir de : </span><span class="woocommerce-Price-amount amount"><bdi><span class="woocommerce-Price-currencySymbol" translate="no">$</span>1.11</bdi></span></span></span> 5450<div class="ct-woo-card-actions" data-add-to-cart="auto-hide" data-alignment="equal"> <span id="woocommerce_loop_add_to_cart_link_describedby_77821" class="screen-reader-text"> 5451 Ce produit a plusieurs variations. Les options peuvent être choisies sur la page du produit </span> 5452</div></li> 5453 5454 5455 <li class="product type-product post-43074 status-publish instock product_cat-accessoires product_cat-promo has-post-thumbnail sale taxable shipping-taxable purchasable product-type-variable has-default-attributes thumbs-bottom"> 5456 <figure > 5457 5458 <a class="ct-media-container" href="https://diamant-strass-dmc.com/perles-broderie/regle-alignement-broderie-diamant/" aria-label="Règle d'alignement pour diamond painting"><picture><source srcset="https://diamant-strass-dmc.com/wp-content/uploads/2022/08/regle-alignement-diamond-painting-300x300.avif 300w,https://diamant-strass-dmc.com/wp-content/uploads/2022/08/regle-alignement-diamond-painting-150x150.webp 150w,https://diamant-strass-dmc.com/wp-content/uploads/2022/08/regle-alignement-diamond-painting-768x768.avif 768w,https://diamant-strass-dmc.com/wp-content/uploads/2022/08/regle-alignement-diamond-painting-416x416.avif 416w,https://diamant-strass-dmc.com/wp-content/uploads/2022/08/regle-alignement-diamond-painting-1536x1536.avif 1536w,https://diamant-strass-dmc.com/wp-content/uploads/2022/08/regle-alignement-diamond-painting-2048x2048.avif 2048w,https://diamant-strass-dmc.com/wp-content/uploads/2022/08/regle-alignement-diamond-painting-324x324.avif 324w,https://diamant-strass-dmc.com/wp-content/uploads/2022/08/regle-alignement-diamond-painting-100x100.webp 100w,https://diamant-strass-dmc.com/wp-content/uploads/2022/08/regle-alignement-diamond-painting-50x50.webp 50w,https://diamant-strass-dmc.com/wp-content/uploads/2022/08/regle-alignement-diamond-painting-600x600.avif 600w" sizes="auto, (max-width: 300px) 100v
5458w, 300px" type="image/avif"><source srcset="https://diamant-strass-dmc.com/wp-content/uploads/2022/08/regle-alignement-diamond-painting-300x300.webp 300w,https://diamant-strass-dmc.com/wp-content/uploads/2022/08/regle-alignement-diamond-painting-150x150.webp 150w,https://diamant-strass-dmc.com/wp-content/uploads/2022/08/regle-alignement-diamond-painting-768x768.webp 768w,https://diamant-strass-dmc.com/wp-content/uploads/2022/08/regle-alignement-diamond-painting-416x416.webp 416w,https://diamant-strass-dmc.com/wp-content/uploads/2022/08/regle-alignement-diamond-painting-1536x1536.webp 1536w,https://diamant-strass-dmc.com/wp-content/uploads/2022/08/regle-alignement-diamond-painting-2048x2048.webp 2048w,https://diamant-strass-dmc.com/wp-content/uploads/2022/08/regle-alignement-diamond-painting-324x324.webp 324w,https://diamant-strass-dmc.com/wp-content/uploads/2022/08/regle-alignement-diamond-painting-100x100.webp 100w,https://diamant-strass-dmc.com/wp-content/uploads/2022/08/regle-alignement-diamond-painting-50x50.webp 50w,https://diamant-strass-dmc.com/wp-content/uploads/2022/08/regle-alignement-diamond-painting-600x600.webp 600w" sizes="auto, (max-width: 300px) 100vw, 300px" type="image/webp"><img src="https://diamant-strass-dmc.com/wp-content/uploads/2022/08/regle-alignement-diamond-painting-300x300.jpg" height="300" width="300" srcset="https://diamant-strass-dmc.com/wp-content/uploads/2022/08/regle-alignement-diamond-painting-300x300.jpg 300w, https://diamant-strass-dmc.com/wp-content/uploads/2022/08/regle-alignement-diamond-painting-150x150.jpg 150w, https://diamant-strass-dmc.com/wp-content/uploads/2022/08/regle-alignement-diamond-painting-768x768.jpg 768w, https://diamant-strass-dmc.com/wp-content/uploads/2022/08/regle-alignement-diamond-painting-416x416.jpg 416w, https://diamant-strass-dmc.com/wp-content/uploads/2022/08/regle-alignement-diamond-painting-1536x1536.jpg 1536w, https://diamant-strass-dmc.com/wp-content/uploads/2022/08/regle-alignement-diamond-painting-2048x2048.jpg 2048w, https://diamant-strass-dmc.com/wp-content/uploads/2022/08/regle-alignement-diamond-painting-324x324.jpg 324w, https://diamant-strass-dmc.com/wp-content/uploads/2022/08/regle-alignement-diamond-painting-100x100.jpg 100w, https://diamant-strass-dmc.com/wp-content/uploads/2022/08/regle-alignement-diamond-painting-50x50.jpg 50w, https://diamant-strass-dmc.com/wp-content/uploads/2022/08/regle-alignement-diamond-painting-600x600.jpg 600w" sizes="auto, (max-width: 300px) 100vw, 300px" class=" wp-post-image sp-no-webp" alt="règle d'alignement diamond painting" loading="lazy" decoding="async" itemprop="image" style="aspect-ratio: 1/1;" title="regle-alignement-diamond-painting" data-xoowscfly="fly" > </picture></a></figure><div class="berocket_better_labels berocket_better_labels_image"><div class="berocket_better_labels_position berocket_better_labels_position_left"><div class="berocket_better_labels_line berocket_better_labels_line_1"><div class="berocket_better_labels_inline berocket_better_labels_inline_1"><div class="br_alabel br_alabel_type_sale_p br_alabel_template_type_css berocket_alabel_id_115461 br_alabel_better_compatibility" style=""><span style=""><i style="background-color: #5300c4; border-color: #5300c4;" class="template-span-before "></i><i style="background-color: #5300c4; border-color: #5300c4;" class="template-i "></i><i style="background-color: #5300c4; border-color: #5300c4;" class="template-i-before "></i><i style="background-color: #5300c4; border-color: #5300c4;" class="template-i-after "></i><b style="text-align: center;z-index: 100;" class="br-labels-css br-labels-css-1"><span class='b_span_before'>ð</span><span class='b_span_text'>-48%</span></b></span></div></div></div></div></div><h2 class="woocommerce-loop-product__title"><a class="woocommerce-LoopProduct-link woocommerce-loop-product__link" href="https://diamant-strass-dmc.com/perles-broderie/regle-alignement-broderie-diamant/" target="_self">Règle d’alignement pour diamond painting</a></h2> 5459 <span class="price"><span class="aelia_product_price" data-product_id="43074"><span class="from">à partir de : </span><span class="woocommerce-Price-amount amount"><bdi><span class="woocommerce-Price-currencySymbol" translate="no">$</span>7.77</bdi></span></span></span> 5460<div class="ct-woo-card-actions" data-add-to-cart="auto-hide" data-alignment="equal"> <span id="woocommerce_loop_add_to_cart_link_describedby_43074" class="screen-reader-text"> 5461 Ce produit a plusieurs variations. Les options peuvent être choisies sur la page du produit </span> 5462</div></li> 5463 5464 5465 <li class="product type-product post-44479 status-publish last instock product_cat-accessoires has-post-thumbnail sale taxable shipping-taxable purchasable product-type-simple"> 5466 <figure > 5467 5468 <a class="ct-media-container" href="https://diamant-strass-dmc.com/perles-broderie/spatule-correctrice-pour-broderie-diamant/" aria-label="Spatule correctrice pour broderie diamant"><picture><source srcset="https://diamant-strass-dmc.com/wp-content/uploads/2022/09/spatule-correctrice-diamond-painting-broderie-diamant-300x300.webp 300w,https://diamant-strass-dmc.com/wp-content/uploads/2022/09/spatule-correctrice-diamond-painting-broderie-diamant-150x150.webp 150w,https://diamant-strass-dmc.com/wp-content/uploads/2022/09/spatule-correctrice-diamond-painting-broderie-diamant-324x324.webp 324w,https://diamant-strass-dmc.com/wp-content/uploads/2022/09/spatule-correctrice-diamond-painting-broderie-diamant-416x416.webp 416w,https://diamant-strass-dmc.com/wp-content/uploads/2022/09/spatule-correctrice-diamond-painting-broderie-diamant-100x100.webp 100w,https://diamant-strass-dmc.com/wp-content/uploads/2022/09/spatule-correctrice-diamond-painting-broderie-diamant-50x50.webp 50w,https://diamant-strass-dmc.com/wp-content/uploads/2022/09/spatule-correctrice-diamond-painting-broderie-diamant-600x600.avif 600w,https://diamant-strass-dmc.com/wp-content/uploads/2022/09/spatule-correctrice-diamond-painting-broderie-diamant.avif 607w" sizes="auto, (max-width: 300px) 100v
5468w, 300px" type="image/avif"><source srcset="https://diamant-strass-dmc.com/wp-content/uploads/2022/09/spatule-correctrice-diamond-painting-broderie-diamant-300x300.webp 300w,https://diamant-strass-dmc.com/wp-content/uploads/2022/09/spatule-correctrice-diamond-painting-broderie-diamant-150x150.webp 150w,https://diamant-strass-dmc.com/wp-content/uploads/2022/09/spatule-correctrice-diamond-painting-broderie-diamant-324x324.webp 324w,https://diamant-strass-dmc.com/wp-content/uploads/2022/09/spatule-correctrice-diamond-painting-broderie-diamant-416x416.webp 416w,https://diamant-strass-dmc.com/wp-content/uploads/2022/09/spatule-correctrice-diamond-painting-broderie-diamant-100x100.webp 100w,https://diamant-strass-dmc.com/wp-content/uploads/2022/09/spatule-correctrice-diamond-painting-broderie-diamant-50x50.webp 50w,https://diamant-strass-dmc.com/wp-content/uploads/2022/09/spatule-correctrice-diamond-painting-broderie-diamant-600x600.webp 600w,https://diamant-strass-dmc.com/wp-content/uploads/2022/09/spatule-correctrice-diamond-painting-broderie-diamant.webp 607w" sizes="auto, (max-width: 300px) 100vw, 300px" type="image/webp"><img src="https://diamant-strass-dmc.com/wp-content/uploads/2022/09/spatule-correctrice-diamond-painting-broderie-diamant-300x300.jpg" height="300" width="300" srcset="https://diamant-strass-dmc.com/wp-content/uploads/2022/09/spatule-correctrice-diamond-painting-broderie-diamant-300x300.jpg 300w, https://diamant-strass-dmc.com/wp-content/uploads/2022/09/spatule-correctrice-diamond-painting-broderie-diamant-150x150.jpg 150w, https://diamant-strass-dmc.com/wp-content/uploads/2022/09/spatule-correctrice-diamond-painting-broderie-diamant-324x324.jpg 324w, https://diamant-strass-dmc.com/wp-content/uploads/2022/09/spatule-correctrice-diamond-painting-broderie-diamant-416x416.jpg 416w, https://diamant-strass-dmc.com/wp-content/uploads/2022/09/spatule-correctrice-diamond-painting-broderie-diamant-100x100.jpg 100w, https://diamant-strass-dmc.com/wp-content/uploads/2022/09/spatule-correctrice-diamond-painting-broderie-diamant-50x50.jpg 50w, https://diamant-strass-dmc.com/wp-content/uploads/2022/09/spatule-correctrice-diamond-painting-broderie-diamant-600x600.jpg 600w, https://diamant-strass-dmc.com/wp-content/uploads/2022/09/spatule-correctrice-diamond-painting-broderie-diamant.jpg 607w" sizes="auto, (max-width: 300px) 100vw, 300px" class=" wp-post-image sp-no-webp" alt="Spatule correctrice, correcteur pour diamond painting broderie diamant" loading="lazy" decoding="async" itemprop="image" style="aspect-ratio: 1/1;" title="spatule-correctrice-diamond-painting-broderie-diamant" data-xoowscfly="fly" > </picture></a></figure><div class="berocket_better_labels berocket_better_labels_image"><div class="berocket_better_labels_position berocket_better_labels_position_left"><div class="berocket_better_labels_line berocket_better_labels_line_1"><div class="berocket_better_labels_inline berocket_better_labels_inline_1"><div class="br_alabel br_alabel_type_sale_p br_alabel_template_type_css berocket_alabel_id_115461 br_alabel_better_compatibility" style=""><span style=""><i style="background-color: #5300c4; border-color: #5300c4;" class="template-span-before "></i><i style="background-color: #5300c4; border-color: #5300c4;" class="template-i "></i><i style="background-color: #5300c4; border-color: #5300c4;" class="template-i-before "></i><i style="background-color: #5300c4; border-color: #5300c4;" class="template-i-after "></i><b style="text-align: center;z-index: 100;" class="br-labels-css br-labels-css-1"><span class='b_span_before'>ð</span><span class='b_span_text'>-26%</span></b></span></div></div></div></div></div><h2 class="woocommerce-loop-product__title"><a class="woocommerce-LoopProduct-link woocommerce-loop-product__link" href="https://diamant-strass-dmc.com/perles-broderie/spatule-correctrice-pour-broderie-diamant/" target="_self">Spatule correctrice pour broderie diamant</a></h2> 5469 <span class="price"><span class="aelia_product_price" data-product_id="44479"><span class="sale-price"><del aria-hidden="true"><span class="woocommerce-Price-amount amount"><bdi><span class="woocommerce-Price-currencySymbol" translate="no">$</span>4.39</bdi></span></del> <span class="screen-reader-text">Le prix initial était : $4.39.</span><ins aria-hidden="true"><span class="woocommerce-Price-amount amount"><bdi><span class="woocommerce-Price-currencySymbol" translate="no">$</span>3.26</bdi></span></ins><span class="screen-reader-text">Le prix actuel est : $3.26.</span></span></span></span> 5470<div class="ct-woo-card-actions" data-add-to-cart="auto-hide" data-alignment="equal"> <span id="woocommerce_loop_add_to_cart_link_describedby_44479" class="screen-reader-text"> 5471 </span> 5472</div></li> 5473 5474 5475 <li class="product type-product post-148533 status-publish first instock product_cat-accessoires has-post-thumbnail sale taxable shipping-taxable purchasable product-type-variable has-default-attributes thumbs-bottom"> 5476 <figure > 5477 5478 <a class="ct-media-container" href="https://diamant-strass-dmc.com/perles-broderie/protege-doigts-diamond-painting/" aria-label="Protège-doigts pour diamond painting"><picture><source srcset="https://diamant-strass-dmc.com/wp-content/uploads/2026/04/protege-doigts-diamond-painting-300x300.avif 300w,https://diamant-strass-dmc.com/wp-content/uploads/2026/04/protege-doigts-diamond-painting-416x416.avif 416w,https://diamant-strass-dmc.com/wp-content/uploads/2026/04/protege-doigts-diamond-painting-150x150.webp 150w,https://diamant-strass-dmc.com/wp-content/uploads/2026/04/protege-doigts-diamond-painting-600x600.avif 600w,https://diamant-strass-dmc.com/wp-content/uploads/2026/04/protege-doigts-diamond-painting-100x100.webp 100w,https://diamant-strass-dmc.com/wp-content/uploads/2026/04/protege-doigts-diamond-painting-50x50.webp 50w,https://diamant-strass-dmc.com/wp-content/uploads/2026/04/protege-doigts-diamond-painting.avif 724w" sizes="auto, (max-width: 300px) 100v
5478w, 300px" type="image/avif"><source srcset="https://diamant-strass-dmc.com/wp-content/uploads/2026/04/protege-doigts-diamond-painting-300x300.webp 300w,https://diamant-strass-dmc.com/wp-content/uploads/2026/04/protege-doigts-diamond-painting-416x416.webp 416w,https://diamant-strass-dmc.com/wp-content/uploads/2026/04/protege-doigts-diamond-painting-150x150.webp 150w,https://diamant-strass-dmc.com/wp-content/uploads/2026/04/protege-doigts-diamond-painting-600x600.webp 600w,https://diamant-strass-dmc.com/wp-content/uploads/2026/04/protege-doigts-diamond-painting-100x100.webp 100w,https://diamant-strass-dmc.com/wp-content/uploads/2026/04/protege-doigts-diamond-painting-50x50.webp 50w,https://diamant-strass-dmc.com/wp-content/uploads/2026/04/protege-doigts-diamond-painting.webp 724w" sizes="auto, (max-width: 300px) 100vw, 300px" type="image/webp"><img src="https://diamant-strass-dmc.com/wp-content/uploads/2026/04/protege-doigts-diamond-painting-300x300.jpg" height="300" width="300" srcset="https://diamant-strass-dmc.com/wp-content/uploads/2026/04/protege-doigts-diamond-painting-300x300.jpg 300w, https://diamant-strass-dmc.com/wp-content/uploads/2026/04/protege-doigts-diamond-painting-416x416.jpg 416w, https://diamant-strass-dmc.com/wp-content/uploads/2026/04/protege-doigts-diamond-painting-150x150.jpg 150w, https://diamant-strass-dmc.com/wp-content/uploads/2026/04/protege-doigts-diamond-painting-600x600.jpg 600w, https://diamant-strass-dmc.com/wp-content/uploads/2026/04/protege-doigts-diamond-painting-100x100.jpg 100w, https://diamant-strass-dmc.com/wp-content/uploads/2026/04/protege-doigts-diamond-painting-50x50.jpg 50w, https://diamant-strass-dmc.com/wp-content/uploads/2026/04/protege-doigts-diamond-painting.jpg 724w" sizes="auto, (max-width: 300px) 100vw, 300px" class=" wp-post-image sp-no-webp" alt="Protège doigts diamond painting" loading="lazy" decoding="async" itemprop="image" style="aspect-ratio: 1/1;" title="protege-doigts-diamond-painting" data-xoowscfly="fly" > </picture></a></figure><h2 class="woocommerce-loop-product__title"><a class="woocommerce-LoopProduct-link woocommerce-loop-product__link" href="https://diamant-strass-dmc.com/perles-broderie/protege-doigts-diamond-painting/" target="_self">Protège-doigts pour diamond painting</a></h2> 5479 <span class="price"><span class="aelia_product_price" data-product_id="148533"><span class="sale-price"><del aria-hidden="true"><span class="woocommerce-Price-amount amount"><bdi><span class="woocommerce-Price-currencySymbol" translate="no">$</span>7.77</bdi></span></del> <span class="screen-reader-text">Le prix initial était : $7.77.</span><ins aria-hidden="true"><span class="woocommerce-Price-amount amount"><bdi><span class="woocommerce-Price-currencySymbol" translate="no">$</span>5.52</bdi></span></ins><span class="screen-reader-text">Le prix actuel est : $5.52.</span></span></span></span> 5480<div class="ct-woo-card-actions" data-add-to-cart="auto-hide" data-alignment="equal"> <span id="woocommerce_loop_add_to_cart_link_describedby_148533" class="screen-reader-text"> 5481 Ce produit a plusieurs variations. Les options peuvent être choisies sur la page du produit </span> 5482</div></li> 5483 5484 5485 <li class="product type-product post-44558 status-publish instock product_cat-accessoires product_cat-promo has-post-thumbnail sale taxable shipping-taxable purchasable product-type-variable has-default-attributes thumbs-bottom"> 5486 <figure > 5487 5488 <a class="ct-media-container" href="https://diamant-strass-dmc.com/perles-broderie/stylo-unique-diamond-painting-broderie-diamant/" aria-label="Stylo avec mini-rouleau pour diamond painting (+ têtes)"><picture><source srcset="https://diamant-strass-dmc.com/wp-content/uploads/2022/09/Stylo-unique_bleu-tete-rouleau-300x300.avif 300w,https://diamant-strass-dmc.com/wp-content/uploads/2022/09/Stylo-unique_bleu-tete-rouleau-416x416.avif 416w,https://diamant-strass-dmc.com/wp-content/uploads/2022/09/Stylo-unique_bleu-tete-rouleau-150x150.webp 150w,https://diamant-strass-dmc.com/wp-content/uploads/2022/09/Stylo-unique_bleu-tete-rouleau-768x768.avif 768w,https://diamant-strass-dmc.com/wp-content/uploads/2022/09/Stylo-unique_bleu-tete-rouleau-600x600.avif 600w,https://diamant-strass-dmc.com/wp-content/uploads/2022/09/Stylo-unique_bleu-tete-rouleau-100x100.webp 100w,https://diamant-strass-dmc.com/wp-content/uploads/2022/09/Stylo-unique_bleu-tete-rouleau-50x50.webp 50w,https://diamant-strass-dmc.com/wp-content/uploads/2022/09/Stylo-unique_bleu-tete-rouleau.avif 960w" sizes="auto, (max-width: 300px) 100v
5488w, 300px" type="image/avif"><source srcset="https://diamant-strass-dmc.com/wp-content/uploads/2022/09/Stylo-unique_bleu-tete-rouleau-300x300.webp 300w,https://diamant-strass-dmc.com/wp-content/uploads/2022/09/Stylo-unique_bleu-tete-rouleau-416x416.webp 416w,https://diamant-strass-dmc.com/wp-content/uploads/2022/09/Stylo-unique_bleu-tete-rouleau-150x150.webp 150w,https://diamant-strass-dmc.com/wp-content/uploads/2022/09/Stylo-unique_bleu-tete-rouleau-768x768.webp 768w,https://diamant-strass-dmc.com/wp-content/uploads/2022/09/Stylo-unique_bleu-tete-rouleau-600x600.webp 600w,https://diamant-strass-dmc.com/wp-content/uploads/2022/09/Stylo-unique_bleu-tete-rouleau-100x100.webp 100w,https://diamant-strass-dmc.com/wp-content/uploads/2022/09/Stylo-unique_bleu-tete-rouleau-50x50.webp 50w,https://diamant-strass-dmc.com/wp-content/uploads/2022/09/Stylo-unique_bleu-tete-rouleau.webp 960w" sizes="auto, (max-width: 300px) 100vw, 300px" type="image/webp"><img src="https://diamant-strass-dmc.com/wp-content/uploads/2022/09/Stylo-unique_bleu-tete-rouleau-300x300.jpg" height="300" width="300" srcset="https://diamant-strass-dmc.com/wp-content/uploads/2022/09/Stylo-unique_bleu-tete-rouleau-300x300.jpg 300w, https://diamant-strass-dmc.com/wp-content/uploads/2022/09/Stylo-unique_bleu-tete-rouleau-416x416.jpg 416w, https://diamant-strass-dmc.com/wp-content/uploads/2022/09/Stylo-unique_bleu-tete-rouleau-150x150.jpg 150w, https://diamant-strass-dmc.com/wp-content/uploads/2022/09/Stylo-unique_bleu-tete-rouleau-768x768.jpg 768w, https://diamant-strass-dmc.com/wp-content/uploads/2022/09/Stylo-unique_bleu-tete-rouleau-600x600.jpg 600w, https://diamant-strass-dmc.com/wp-content/uploads/2022/09/Stylo-unique_bleu-tete-rouleau-100x100.jpg 100w, https://diamant-strass-dmc.com/wp-content/uploads/2022/09/Stylo-unique_bleu-tete-rouleau-50x50.jpg 50w, https://diamant-strass-dmc.com/wp-content/uploads/2022/09/Stylo-unique_bleu-tete-rouleau.jpg 960w" sizes="auto, (max-width: 300px) 100vw, 300px" class=" wp-post-image sp-no-webp" alt="stylo unique bleu avec tête et tête rouleau" loading="lazy" decoding="async" itemprop="image" style="aspect-ratio: 1/1;" title="Stylo-unique_bleu-tete-rouleau" data-xoowscfly="fly" > </picture></a></figure><div class="berocket_better_labels berocket_better_labels_image"><div class="berocket_better_labels_position berocket_better_labels_position_left"><div class="berocket_better_labels_line berocket_better_labels_line_1"><div class="berocket_better_labels_inline berocket_better_labels_inline_1"><div class="br_alabel br_alabel_type_sale_p br_alabel_template_type_css berocket_alabel_id_115461 br_alabel_better_compatibility" style=""><span style=""><i style="background-color: #5300c4; border-color: #5300c4;" class="template-span-before "></i><i style="background-color: #5300c4; border-color: #5300c4;" class="template-i "></i><i style="background-color: #5300c4; border-color: #5300c4;" class="template-i-before "></i><i style="background-color: #5300c4; border-color: #5300c4;" class="template-i-after "></i><b style="text-align: center;z-index: 100;" class="br-labels-css br-labels-css-1"><span class='b_span_before'>ð</span><span class='b_span_text'>-30%</span></b></span></div></div></div></div></div><h2 class="woocommerce-loop-product__title"><a class="woocommerce-LoopProduct-link woocommerce-loop-product__link" href="https://diamant-strass-dmc.com/perles-broderie/stylo-unique-diamond-painting-broderie-diamant/" target="_self">Stylo avec mini-rouleau pour diamond painting (+ têtes)</a></h2> 5489 <span class="price"><span class="aelia_product_price" data-product_id="44558"><span class="sale-price"><del aria-hidden="true"><span class="woocommerce-Price-amount amount"><bdi><span class="woocommerce-Price-currencySymbol" translate="no">$</span>11.14</bdi></span></del> <span class="screen-reader-text">Le prix initial était : $11.14.</span><ins aria-hidden="true"><span class="woocommerce-Price-amount amount"><bdi><span class="woocommerce-Price-currencySymbol" translate="no">$</span>7.77</bdi></span></ins><span class="screen-reader-text">Le prix actuel est : $7.77.</span></span></span></span> 5490<div class="ct-woo-card-actions" data-add-to-cart="auto-hide" data-alignment="equal"> <span id="woocommerce_loop_add_to_cart_link_describedby_44558" class="screen-reader-text"> 5491 Ce produit a plusieurs variations. Les options peuvent être choisies sur la page du produit </span> 5492</div></li> 5493 5494 5495 <li class="product type-product post-71086 status-publish instock product_cat-accessoires has-post-thumbnail sale taxable shipping-taxable purchasable product-type-simple thumbs-bottom"> 5496 <figure > 5497 5498 <a class="ct-media-container" href="https://diamant-strass-dmc.com/perles-broderie/livre-catalogue-nuancier-dmc-diamond-painting/" aria-label="Catalogue des couleurs du diamond painting (avec cases autocollantes)"><picture><source srcset="https://diamant-strass-dmc.com/wp-content/uploads/2024/03/livre-catalogue-nuancier-dmc-coller-300x300.avif 300w,https://diamant-strass-dmc.com/wp-content/uploads/2024/03/livre-catalogue-nuancier-dmc-coller-150x150.webp 150w,https://diamant-strass-dmc.com/wp-content/uploads/2024/03/livre-catalogue-nuancier-dmc-coller-768x768.avif 768w,https://diamant-strass-dmc.com/wp-content/uploads/2024/03/livre-catalogue-nuancier-dmc-coller-416x416.avif 416w,https://diamant-strass-dmc.com/wp-content/uploads/2024/03/livre-catalogue-nuancier-dmc-coller.avif 985w,https://diamant-strass-dmc.com/wp-content/uploads/2024/03/livre-catalogue-nuancier-dmc-coller-324x324.avif 324w,https://diamant-strass-dmc.com/wp-content/uploads/2024/03/livre-catalogue-nuancier-dmc-coller-100x100.webp 100w,https://diamant-strass-dmc.com/wp-content/uploads/2024/03/livre-catalogue-nuancier-dmc-coller-600x600.avif 600w,https://diamant-strass-dmc.com/wp-content/uploads/2024/03/livre-catalogue-nuancier-dmc-coller-50x50.webp 50w" sizes="auto, (max-width: 300px) 100v
5498w, 300px" type="image/avif"><source srcset="https://diamant-strass-dmc.com/wp-content/uploads/2024/03/livre-catalogue-nuancier-dmc-coller-300x300.webp 300w,https://diamant-strass-dmc.com/wp-content/uploads/2024/03/livre-catalogue-nuancier-dmc-coller-150x150.webp 150w,https://diamant-strass-dmc.com/wp-content/uploads/2024/03/livre-catalogue-nuancier-dmc-coller-768x768.webp 768w,https://diamant-strass-dmc.com/wp-content/uploads/2024/03/livre-catalogue-nuancier-dmc-coller-416x416.webp 416w,https://diamant-strass-dmc.com/wp-content/uploads/2024/03/livre-catalogue-nuancier-dmc-coller.webp 985w,https://diamant-strass-dmc.com/wp-content/uploads/2024/03/livre-catalogue-nuancier-dmc-coller-324x324.webp 324w,https://diamant-strass-dmc.com/wp-content/uploads/2024/03/livre-catalogue-nuancier-dmc-coller-100x100.webp 100w,https://diamant-strass-dmc.com/wp-content/uploads/2024/03/livre-catalogue-nuancier-dmc-coller-600x600.webp 600w,https://diamant-strass-dmc.com/wp-content/uploads/2024/03/livre-catalogue-nuancier-dmc-coller-50x50.webp 50w" sizes="auto, (max-width: 300px) 100vw, 300px" type="image/webp"><img src="https://diamant-strass-dmc.com/wp-content/uploads/2024/03/livre-catalogue-nuancier-dmc-coller-300x300.jpg" height="300" width="300" srcset="https://diamant-strass-dmc.com/wp-content/uploads/2024/03/livre-catalogue-nuancier-dmc-coller-300x300.jpg 300w, https://diamant-strass-dmc.com/wp-content/uploads/2024/03/livre-catalogue-nuancier-dmc-coller-150x150.jpg 150w, https://diamant-strass-dmc.com/wp-content/uploads/2024/03/livre-catalogue-nuancier-dmc-coller-768x768.jpg 768w, https://diamant-strass-dmc.com/wp-content/uploads/2024/03/livre-catalogue-nuancier-dmc-coller-416x416.jpg 416w, https://diamant-strass-dmc.com/wp-content/uploads/2024/03/livre-catalogue-nuancier-dmc-coller.jpg 985w, https://diamant-strass-dmc.com/wp-content/uploads/2024/03/livre-catalogue-nuancier-dmc-coller-324x324.jpg 324w, https://diamant-strass-dmc.com/wp-content/uploads/2024/03/livre-catalogue-nuancier-dmc-coller-100x100.jpg 100w, https://diamant-strass-dmc.com/wp-content/uploads/2024/03/livre-catalogue-nuancier-dmc-coller-600x600.jpg 600w, https://diamant-strass-dmc.com/wp-content/uploads/2024/03/livre-catalogue-nuancier-dmc-coller-50x50.jpg 50w" sizes="auto, (max-width: 300px) 100vw, 300px" class=" wp-post-image sp-no-webp" alt="catalogue nuancier dmc livre diamond painting" loading="lazy" decoding="async" itemprop="image" style="aspect-ratio: 1/1;" title="livre-catalogue-nuancier-dmc-coller" data-xoowscfly="fly" > </picture></a></figure><div class="berocket_better_labels berocket_better_labels_image"><div class="berocket_better_labels_position berocket_better_labels_position_left"><div class="berocket_better_labels_line berocket_better_labels_line_1"><div class="berocket_better_labels_inline berocket_better_labels_inline_1"><div class="br_alabel br_alabel_type_sale_p br_alabel_template_type_css berocket_alabel_id_115461 br_alabel_better_compatibility" style=""><span style=""><i style="background-color: #5300c4; border-color: #5300c4;" class="template-span-before "></i><i style="background-color: #5300c4; border-color: #5300c4;" class="template-i "></i><i style="background-color: #5300c4; border-color: #5300c4;" class="template-i-before "></i><i style="background-color: #5300c4; border-color: #5300c4;" class="template-i-after "></i><b style="text-align: center;z-index: 100;" class="br-labels-css br-labels-css-1"><span class='b_span_before'>ð</span><span class='b_span_text'>-15%</span></b></span></div></div></div></div></div><h2 class="woocommerce-loop-product__title"><a class="woocommerce-LoopProduct-link woocommerce-loop-product__link" href="https://diamant-strass-dmc.com/perles-broderie/livre-catalogue-nuancier-dmc-diamond-painting/" target="_self">Catalogue des couleurs du diamond painting (avec cases autocollantes)</a></h2> 5499 <span class="price"><span class="aelia_product_price" data-product_id="71086"><span class="sale-price"><del aria-hidden="true"><span class="woocommerce-Price-amount amount"><bdi><span class="woocommerce-Price-currencySymbol" translate="no">$</span>22.40</bdi></span></del> <span class="screen-reader-text">Le prix initial était : $22.40.</span><ins aria-hidden="true"><span class="woocommerce-Price-amount amount"><bdi><span class="woocommerce-Price-currencySymbol" translate="no">$</span>19.02</bdi></span></ins><span class="screen-reader-text">Le prix actuel est : $19.02.</span></span></span></span> 5500<div class="ct-woo-card-actions" data-add-to-cart="auto-hide" data-alignment="equal"> <span id="woocommerce_loop_add_to_cart_link_describedby_71086" class="screen-reader-text"> 5501 </span> 5502</div></li> 5503 5504 5505 <li class="product type-product post-55151 status-publish last instock product_cat-accessoires has-post-thumbnail sale taxable shipping-taxable purchasable product-type-variable has-default-attributes thumbs-bottom"> 5506 <figure > 5507 5508 <a class="ct-media-container" href="https://diamant-strass-dmc.com/perles-broderie/boite-rangement-pilulier-28-compartiments-diamond-painting/" aria-label="Boîte de rangement 28 compartiments pour Diamond Painting"><picture><source srcset="https://diamant-strass-dmc.com/wp-content/uploads/2023/02/pilulier-rangement-diamond-painting-300x300.avif 300w,https://diamant-strass-dmc.com/wp-content/uploads/2023/02/pilulier-rangement-diamond-painting-150x150.webp 150w,https://diamant-strass-dmc.com/wp-content/uploads/2023/02/pilulier-rangement-diamond-painting-768x771.avif 768w,https://diamant-strass-dmc.com/wp-content/uploads/2023/02/pilulier-rangement-diamond-painting-324x325.avif 324w,https://diamant-strass-dmc.com/wp-content/uploads/2023/02/pilulier-rangement-diamond-painting-416x418.avif 416w,https://diamant-strass-dmc.com/wp-content/uploads/2023/02/pilulier-rangement-diamond-painting-100x100.webp 100w,https://diamant-strass-dmc.com/wp-content/uploads/2023/02/pilulier-rangement-diamond-painting-50x50.webp 50w,https://diamant-strass-dmc.com/wp-content/uploads/2023/02/pilulier-rangement-diamond-painting-600x600.avif 600w,https://diamant-strass-dmc.com/wp-content/uploads/2023/02/pilulier-rangement-diamond-painting.avif 1008w" sizes="auto, (max-width: 300px) 100v
5508w, 300px" type="image/avif"><source srcset="https://diamant-strass-dmc.com/wp-content/uploads/2023/02/pilulier-rangement-diamond-painting-300x300.webp 300w,https://diamant-strass-dmc.com/wp-content/uploads/2023/02/pilulier-rangement-diamond-painting-150x150.webp 150w,https://diamant-strass-dmc.com/wp-content/uploads/2023/02/pilulier-rangement-diamond-painting-768x771.webp 768w,https://diamant-strass-dmc.com/wp-content/uploads/2023/02/pilulier-rangement-diamond-painting-324x325.webp 324w,https://diamant-strass-dmc.com/wp-content/uploads/2023/02/pilulier-rangement-diamond-painting-416x418.webp 416w,https://diamant-strass-dmc.com/wp-content/uploads/2023/02/pilulier-rangement-diamond-painting-100x100.webp 100w,https://diamant-strass-dmc.com/wp-content/uploads/2023/02/pilulier-rangement-diamond-painting-50x50.webp 50w,https://diamant-strass-dmc.com/wp-content/uploads/2023/02/pilulier-rangement-diamond-painting-600x600.webp 600w,https://diamant-strass-dmc.com/wp-content/uploads/2023/02/pilulier-rangement-diamond-painting.webp 1008w" sizes="auto, (max-width: 300px) 100vw, 300px" type="image/webp"><img src="https://diamant-strass-dmc.com/wp-content/uploads/2023/02/pilulier-rangement-diamond-painting-300x300.jpg" height="300" width="300" srcset="https://diamant-strass-dmc.com/wp-content/uploads/2023/02/pilulier-rangement-diamond-painting-300x300.jpg 300w, https://diamant-strass-dmc.com/wp-content/uploads/2023/02/pilulier-rangement-diamond-painting-150x150.jpg 150w, https://diamant-strass-dmc.com/wp-content/uploads/2023/02/pilulier-rangement-diamond-painting-768x771.jpg 768w, https://diamant-strass-dmc.com/wp-content/uploads/2023/02/pilulier-rangement-diamond-painting-324x325.jpg 324w, https://diamant-strass-dmc.com/wp-content/uploads/2023/02/pilulier-rangement-diamond-painting-416x418.jpg 416w, https://diamant-strass-dmc.com/wp-content/uploads/2023/02/pilulier-rangement-diamond-painting-100x100.jpg 100w, https://diamant-strass-dmc.com/wp-content/uploads/2023/02/pilulier-rangement-diamond-painting-50x50.jpg 50w, https://diamant-strass-dmc.com/wp-content/uploads/2023/02/pilulier-rangement-diamond-painting-600x600.jpg 600w, https://diamant-strass-dmc.com/wp-content/uploads/2023/02/pilulier-rangement-diamond-painting.jpg 1008w" sizes="auto, (max-width: 300px) 100vw, 300px" class=" wp-post-image sp-no-webp" alt="Boîte rangement diamond painting, style pilulier, 28 compartiments" loading="lazy" decoding="async" itemprop="image" style="aspect-ratio: 252/253;" title="pilulier-rangement-diamond-painting" data-xoowscfly="fly" > </picture></a></figure><div class="berocket_better_labels berocket_better_labels_image"><div class="berocket_better_labels_position berocket_better_labels_position_left"><div class="berocket_better_labels_line berocket_better_labels_line_1"><div class="berocket_better_labels_inline berocket_better_labels_inline_1"><div class="br_alabel br_alabel_type_sale_p br_alabel_template_type_css berocket_alabel_id_115461 br_alabel_better_compatibility" style=""><span style=""><i style="background-color: #5300c4; border-color: #5300c4;" class="template-span-before "></i><i style="background-color: #5300c4; border-color: #5300c4;" class="template-i "></i><i style="background-color: #5300c4; border-color: #5300c4;" class="template-i-before "></i><i style="background-color: #5300c4; border-color: #5300c4;" class="template-i-after "></i><b style="text-align: center;z-index: 100;" class="br-labels-css br-labels-css-1"><span class='b_span_before'>ð</span><span class='b_span_text'>-39%</span></b></span></div></div></div></div></div><h2 class="woocommerce-loop-product__title"><a class="woocommerce-LoopProduct-link woocommerce-loop-product__link" href="https://diamant-strass-dmc.com/perles-broderie/boite-rangement-pilulier-28-compartiments-diamond-painting/" target="_self">Boîte de rangement 28 compartiments pour Diamond Painting</a></h2> 5509 <span class="price"><span class="aelia_product_price" data-product_id="55151"><span class="from">à partir de : </span><span class="woocommerce-Price-amount amount"><bdi><span class="woocommerce-Price-currencySymbol" translate="no">$</span>1.35</bdi></span></span></span> 5510<div class="ct-woo-card-actions" data-add-to-cart="auto-hide" data-alignment="equal"> <span id="woocommerce_loop_add_to_cart_link_describedby_55151" class="screen-reader-text"> 5511 Ce produit a plusieurs variations. Les options peuvent être choisies sur la page du produit </span> 5512</div></li> 5513 5514 5515 <li class="product type-product post-47531 status-publish first instock product_cat-accessoires has-post-thumbnail taxable shipping-taxable purchasable product-type-variable has-default-attributes thumbs-bottom"> 5516 <figure ><a class="ct-media-container" href="https://diamant-strass-dmc.com/perles-broderie/pot-colle-pastilles-rondes-broderie-diamant/" aria-label="Pot de colle + 5 pastilles pour broderie diamant"><picture><source srcset="https://diamant-strass-dmc.com/wp-content/uploads/2024/11/pot-colle-diamond-painting-300x300.avif 300w,https://diamant-strass-dmc.com/wp-content/uploads/2024/11/pot-colle-diamond-painting-150x150.webp 150w,https://diamant-strass-dmc.com/wp-content/uploads/2024/11/pot-colle-diamond-painting-768x768.avif 768w,https://diamant-strass-dmc.com/wp-content/uploads/2024/11/pot-colle-diamond-painting-416x416.avif 416w,https://diamant-strass-dmc.com/wp-content/uploads/2024/11/pot-colle-diamond-painting.avif 1200w,https://diamant-strass-dmc.com/wp-content/uploads/2024/11/pot-colle-diamond-painting-324x324.avif 324w,https://diamant-strass-dmc.com/wp-content/uploads/2024/11/pot-colle-diamond-painting-100x100.webp 100w,https://diamant-strass-dmc.com/wp-content/uploads/2024/11/pot-colle-diamond-painting-50x50.webp 50w,https://diamant-strass-dmc.com/wp-content/uploads/2024/11/pot-colle-diamond-painting-600x600.avif 600w" sizes="auto, (max-width: 300px) 100v
5516w, 300px" type="image/avif"><source srcset="https://diamant-strass-dmc.com/wp-content/uploads/2024/11/pot-colle-diamond-painting-300x300.webp 300w,https://diamant-strass-dmc.com/wp-content/uploads/2024/11/pot-colle-diamond-painting-150x150.webp 150w,https://diamant-strass-dmc.com/wp-content/uploads/2024/11/pot-colle-diamond-painting-768x768.webp 768w,https://diamant-strass-dmc.com/wp-content/uploads/2024/11/pot-colle-diamond-painting-416x416.webp 416w,https://diamant-strass-dmc.com/wp-content/uploads/2024/11/pot-colle-diamond-painting.webp 1200w,https://diamant-strass-dmc.com/wp-content/uploads/2024/11/pot-colle-diamond-painting-324x324.webp 324w,https://diamant-strass-dmc.com/wp-content/uploads/2024/11/pot-colle-diamond-painting-100x100.webp 100w,https://diamant-strass-dmc.com/wp-content/uploads/2024/11/pot-colle-diamond-painting-50x50.webp 50w,https://diamant-strass-dmc.com/wp-content/uploads/2024/11/pot-colle-diamond-painting-600x600.webp 600w" sizes="auto, (max-width: 300px) 100vw, 300px" type="image/webp"><img src="https://diamant-strass-dmc.com/wp-content/uploads/2024/11/pot-colle-diamond-painting-300x300.jpg" height="300" width="300" srcset="https://diamant-strass-dmc.com/wp-content/uploads/2024/11/pot-colle-diamond-painting-300x300.jpg 300w, https://diamant-strass-dmc.com/wp-content/uploads/2024/11/pot-colle-diamond-painting-150x150.jpg 150w, https://diamant-strass-dmc.com/wp-content/uploads/2024/11/pot-colle-diamond-painting-768x768.jpg 768w, https://diamant-strass-dmc.com/wp-content/uploads/2024/11/pot-colle-diamond-painting-416x416.jpg 416w, https://diamant-strass-dmc.com/wp-content/uploads/2024/11/pot-colle-diamond-painting.jpg 1200w, https://diamant-strass-dmc.com/wp-content/uploads/2024/11/pot-colle-diamond-painting-324x324.jpg 324w, https://diamant-strass-dmc.com/wp-content/uploads/2024/11/pot-colle-diamond-painting-100x100.jpg 100w, https://diamant-strass-dmc.com/wp-content/uploads/2024/11/pot-colle-diamond-painting-50x50.jpg 50w, https://diamant-strass-dmc.com/wp-content/uploads/2024/11/pot-colle-diamond-painting-600x600.jpg 600w" sizes="auto, (max-width: 300px) 100vw, 300px" class=" wp-post-image sp-no-webp" alt="Pot de colle diamond painting" loading="lazy" decoding="async" itemprop="image" style="aspect-ratio: 1/1;" title="pot-colle-diamond-painting" data-xoowscfly="fly" > </picture></a></figure><h2 class="woocommerce-loop-product__title"><a class="woocommerce-LoopProduct-link woocommerce-loop-product__link" href="https://diamant-strass-dmc.com/perles-broderie/pot-colle-pastilles-rondes-broderie-diamant/" target="_self">Pot de colle + 5 pastilles pour broderie diamant</a></h2> 5517 <span class="price"><span class="aelia_product_price" data-product_id="47531"><span class="woocommerce-Price-amount amount"><bdi><span class="woocommerce-Price-currencySymbol" translate="no">$</span>4.39</bdi></span></span></span> 5518<div class="ct-woo-card-actions" data-add-to-cart="auto-hide" data-alignment="equal"> <span id="woocommerce_loop_add_to_cart_link_describedby_47531" class="screen-reader-text"> 5519 Ce produit a plusieurs variations. Les options peuvent être choisies sur la page du produit </span> 5520</div></li> 5521 5522 5523 <li class="product type-product post-34676 status-publish instock product_cat-accessoires has-post-thumbnail sale taxable shipping-taxable purchasable product-type-simple thumbs-bottom"> 5524 <figure > 5525 5526 <a class="ct-media-container" href="https://diamant-strass-dmc.com/perles-broderie/stylo-standard-broderie-diamant/" aria-label="Kit de 2 stylos pour diamond painting avec têtes et grips"><picture><source srcset="https://diamant-strass-dmc.com/wp-content/uploads/2022/07/stylo-standard-diamond-painting-300x300.avif 300w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/stylo-standard-diamond-painting-150x150.webp 150w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/stylo-standard-diamond-painting-768x768.avif 768w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/stylo-standard-diamond-painting-416x416.avif 416w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/stylo-standard-diamond-painting-1536x1536.avif 1536w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/stylo-standard-diamond-painting-2048x2048.avif 2048w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/stylo-standard-diamond-painting-324x324.avif 324w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/stylo-standard-diamond-painting-100x100.webp 100w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/stylo-standard-diamond-painting-50x50.webp 50w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/stylo-standard-diamond-painting-600x600.avif 600w" sizes="auto, (max-width: 300px) 100v
5526w, 300px" type="image/avif"><source srcset="https://diamant-strass-dmc.com/wp-content/uploads/2022/07/stylo-standard-diamond-painting-300x300.webp 300w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/stylo-standard-diamond-painting-150x150.webp 150w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/stylo-standard-diamond-painting-768x768.webp 768w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/stylo-standard-diamond-painting-416x416.webp 416w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/stylo-standard-diamond-painting-1536x1536.webp 1536w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/stylo-standard-diamond-painting-2048x2048.webp 2048w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/stylo-standard-diamond-painting-324x324.webp 324w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/stylo-standard-diamond-painting-100x100.webp 100w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/stylo-standard-diamond-painting-50x50.webp 50w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/stylo-standard-diamond-painting-600x600.webp 600w" sizes="auto, (max-width: 300px) 100vw, 300px" type="image/webp"><img src="https://diamant-strass-dmc.com/wp-content/uploads/2022/07/stylo-standard-diamond-painting-300x300.jpg" height="300" width="300" srcset="https://diamant-strass-dmc.com/wp-content/uploads/2022/07/stylo-standard-diamond-painting-300x300.jpg 300w, https://diamant-strass-dmc.com/wp-content/uploads/2022/07/stylo-standard-diamond-painting-150x150.jpg 150w, https://diamant-strass-dmc.com/wp-content/uploads/2022/07/stylo-standard-diamond-painting-768x768.jpg 768w, https://diamant-strass-dmc.com/wp-content/uploads/2022/07/stylo-standard-diamond-painting-416x416.jpg 416w, https://diamant-strass-dmc.com/wp-content/uploads/2022/07/stylo-standard-diamond-painting-1536x1536.jpg 1536w, https://diamant-strass-dmc.com/wp-content/uploads/2022/07/stylo-standard-diamond-painting-2048x2048.jpg 2048w, https://diamant-strass-dmc.com/wp-content/uploads/2022/07/stylo-standard-diamond-painting-324x324.jpg 324w, https://diamant-strass-dmc.com/wp-content/uploads/2022/07/stylo-standard-diamond-painting-100x100.jpg 100w, https://diamant-strass-dmc.com/wp-content/uploads/2022/07/stylo-standard-diamond-painting-50x50.jpg 50w, https://diamant-strass-dmc.com/wp-content/uploads/2022/07/stylo-standard-diamond-painting-600x600.jpg 600w" sizes="auto, (max-width: 300px) 100vw, 300px" class=" wp-post-image sp-no-webp" alt="Stylos diamond painting" loading="lazy" decoding="async" itemprop="image" style="aspect-ratio: 1/1;" title="stylo-standard-diamond-painting" data-xoowscfly="fly" > </picture></a></figure><div class="berocket_better_labels berocket_better_labels_image"><div class="berocket_better_labels_position berocket_better_labels_position_left"><div class="berocket_better_labels_line berocket_better_labels_line_1"><div class="berocket_better_labels_inline berocket_better_labels_inline_1"><div class="br_alabel br_alabel_type_sale_p br_alabel_template_type_css berocket_alabel_id_115461 br_alabel_better_compatibility" style=""><span style=""><i style="background-color: #5300c4; border-color: #5300c4;" class="template-span-before "></i><i style="background-color: #5300c4; border-color: #5300c4;" class="template-i "></i><i style="background-color: #5300c4; border-color: #5300c4;" class="template-i-before "></i><i style="background-color: #5300c4; border-color: #5300c4;" class="template-i-after "></i><b style="text-align: center;z-index: 100;" class="br-labels-css br-labels-css-1"><span class='b_span_before'>ð</span><span class='b_span_text'>-65%</span></b></span></div></div></div></div></div><h2 class="woocommerce-loop-product__title"><a class="woocommerce-LoopProduct-link woocommerce-loop-product__link" href="https://diamant-strass-dmc.com/perles-broderie/stylo-standard-broderie-diamant/" target="_self">Kit de 2 stylos pour diamond painting avec têtes et grips</a></h2> 5527 <span class="price"><span class="aelia_product_price" data-product_id="34676"><span class="sale-price"><del aria-hidden="true"><span class="woocommerce-Price-amount amount"><bdi><span class="woocommerce-Price-currencySymbol" translate="no">$</span>3.15</bdi></span></del> <span class="screen-reader-text">Le prix initial était : $3.15.</span><ins aria-hidden="true"><span class="woocommerce-Price-amount amount"><bdi><span class="woocommerce-Price-currencySymbol" translate="no">$</span>1.11</bdi></span></ins><span class="screen-reader-text">Le prix actuel est : $1.11.</span></span></span></span> 5528<div class="ct-woo-card-actions" data-add-to-cart="auto-hide" data-alignment="equal"> <span id="woocommerce_loop_add_to_cart_link_describedby_34676" class="screen-reader-text"> 5529 </span> 5530</div></li> 5531 5532 5533 <li class="product type-product post-34557 status-publish instock product_cat-accessoires product_cat-promo has-post-thumbnail sale taxable shipping-taxable purchasable product-type-variable has-default-attributes"> 5534 <figure > 5535 5536 <a class="ct-media-container" href="https://diamant-strass-dmc.com/perles-broderie/etiquettes-broderie-diamant/" aria-label="Ãtiquettes pour diamond painting"><picture><source srcset="https://diamant-strass-dmc.com/wp-content/uploads/2022/07/etiquettes-rondes-rectangulaires-autocollantes-broderie-diamant-1-300x300.webp 300w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/etiquettes-rondes-rectangulaires-autocollantes-broderie-diamant-1-150x150.webp 150w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/etiquettes-rondes-rectangulaires-autocollantes-broderie-diamant-1-768x768.avif 768w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/etiquettes-rondes-rectangulaires-autocollantes-broderie-diamant-1-324x324.avif 324w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/etiquettes-rondes-rectangulaires-autocollantes-broderie-diamant-1-416x416.avif 416w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/etiquettes-rondes-rectangulaires-autocollantes-broderie-diamant-1-100x100.webp 100w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/etiquettes-rondes-rectangulaires-autocollantes-broderie-diamant-1-50x50.webp 50w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/etiquettes-rondes-rectangulaires-autocollantes-broderie-diamant-1-600x600.avif 600w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/etiquettes-rondes-rectangulaires-autocollantes-broderie-diamant-1.avif 800w" sizes="auto, (max-width: 300px) 100v
5536w, 300px" type="image/avif"><source srcset="https://diamant-strass-dmc.com/wp-content/uploads/2022/07/etiquettes-rondes-rectangulaires-autocollantes-broderie-diamant-1-300x300.webp 300w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/etiquettes-rondes-rectangulaires-autocollantes-broderie-diamant-1-150x150.webp 150w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/etiquettes-rondes-rectangulaires-autocollantes-broderie-diamant-1-768x768.webp 768w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/etiquettes-rondes-rectangulaires-autocollantes-broderie-diamant-1-324x324.webp 324w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/etiquettes-rondes-rectangulaires-autocollantes-broderie-diamant-1-416x416.webp 416w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/etiquettes-rondes-rectangulaires-autocollantes-broderie-diamant-1-100x100.webp 100w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/etiquettes-rondes-rectangulaires-autocollantes-broderie-diamant-1-50x50.webp 50w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/etiquettes-rondes-rectangulaires-autocollantes-broderie-diamant-1-600x600.webp 600w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/etiquettes-rondes-rectangulaires-autocollantes-broderie-diamant-1.webp 800w" sizes="auto, (max-width: 300px) 100vw, 300px" type="image/webp"><img src="https://diamant-strass-dmc.com/wp-content/uploads/2022/07/etiquettes-rondes-rectangulaires-autocollantes-broderie-diamant-1-300x300.jpg" height="300" width="300" srcset="https://diamant-strass-dmc.com/wp-content/uploads/2022/07/etiquettes-rondes-rectangulaires-autocollantes-broderie-diamant-1-300x300.jpg 300w, https://diamant-strass-dmc.com/wp-content/uploads/2022/07/etiquettes-rondes-rectangulaires-autocollantes-broderie-diamant-1-150x150.jpg 150w, https://diamant-strass-dmc.com/wp-content/uploads/2022/07/etiquettes-rondes-rectangulaires-autocollantes-broderie-diamant-1-768x768.jpg 768w, https://diamant-strass-dmc.com/wp-content/uploads/2022/07/etiquettes-rondes-rectangulaires-autocollantes-broderie-diamant-1-324x324.jpg 324w, https://diamant-strass-dmc.com/wp-content/uploads/2022/07/etiquettes-rondes-rectangulaires-autocollantes-broderie-diamant-1-416x416.jpg 416w, https://diamant-strass-dmc.com/wp-content/uploads/2022/07/etiquettes-rondes-rectangulaires-autocollantes-broderie-diamant-1-100x100.jpg 100w, https://diamant-strass-dmc.com/wp-content/uploads/2022/07/etiquettes-rondes-rectangulaires-autocollantes-broderie-diamant-1-50x50.jpg 50w, https://diamant-strass-dmc.com/wp-content/uploads/2022/07/etiquettes-rondes-rectangulaires-autocollantes-broderie-diamant-1-600x600.jpg 600w, https://diamant-strass-dmc.com/wp-content/uploads/2022/07/etiquettes-rondes-rectangulaires-autocollantes-broderie-diamant-1.jpg 800w" sizes="auto, (max-width: 300px) 100vw, 300px" class=" wp-post-image sp-no-webp" alt="Ãtiquettes pour diamond painting" loading="lazy" decoding="async" itemprop="image" style="aspect-ratio: 1/1;" title="etiquettes-rondes-rectangulaires-autocollantes-broderie-diamant" data-xoowscfly="fly" > </picture></a></figure><div class="berocket_better_labels berocket_better_labels_image"><div class="berocket_better_labels_position berocket_better_labels_position_left"><div class="berocket_better_labels_line berocket_better_labels_line_1"><div class="berocket_better_labels_inline berocket_better_labels_inline_1"><div class="br_alabel br_alabel_type_sale_p br_alabel_template_type_css berocket_alabel_id_115461 br_alabel_better_compatibility" style=""><span style=""><i style="background-color: #5300c4; border-color: #5300c4;" class="template-span-before "></i><i style="background-color: #5300c4; border-color: #5300c4;" class="template-i "></i><i style="background-color: #5300c4; border-color: #5300c4;" class="template-i-before "></i><i style="background-color: #5300c4; border-color: #5300c4;" class="template-i-after "></i><b style="text-align: center;z-index: 100;" class="br-labels-css br-labels-css-1"><span class='b_span_before'>ð</span><span class='b_span_text'>-53%</span></b></span></div></div></div></div></div><h2 class="woocommerce-loop-product__title"><a class="woocommerce-LoopProduct-link woocommerce-loop-product__link" href="https://diamant-strass-dmc.com/perles-broderie/etiquettes-broderie-diamant/" target="_self">Ãtiquettes pour diamond painting</a></h2> 5537 <span class="price"><span class="aelia_product_price" data-product_id="34557"><span class="from">à partir de : </span><span class="woocommerce-Price-amount amount"><bdi><span class="woocommerce-Price-currencySymbol" translate="no">$</span>4.39</bdi></span></span></span> 5538<div class="ct-woo-card-actions" data-add-to-cart="auto-hide" data-alignment="equal"> <span id="woocommerce_loop_add_to_cart_link_describedby_34557" class="screen-reader-text"> 5539 Ce produit a plusieurs variations. Les options peuvent être choisies sur la page du produit </span> 5540</div></li> 5541 5542 5543 <li class="product type-product post-35862 status-publish last instock product_cat-accessoires product_cat-promo has-post-thumbnail sale taxable shipping-taxable purchasable product-type-variable has-default-attributes thumbs-bottom"> 5544 <figure > 5545 5546 <a class="ct-media-container" href="https://diamant-strass-dmc.com/perles-broderie/sachets-zip-perles-diamants-surplus/" aria-label="Sachets zip épais pour perles en surplus"><picture><source srcset="https://diamant-strass-dmc.com/wp-content/uploads/2022/08/sachets-zip-diamond-painting-1-300x300.avif 300w,https://diamant-strass-dmc.com/wp-content/uploads/2022/08/sachets-zip-diamond-painting-1-416x416.avif 416w,https://diamant-strass-dmc.com/wp-content/uploads/2022/08/sachets-zip-diamond-painting-1-150x150.webp 150w,https://diamant-strass-dmc.com/wp-content/uploads/2022/08/sachets-zip-diamond-painting-1-768x768.avif 768w,https://diamant-strass-dmc.com/wp-content/uploads/2022/08/sachets-zip-diamond-painting-1-600x600.avif 600w,https://diamant-strass-dmc.com/wp-content/uploads/2022/08/sachets-zip-diamond-painting-1-100x100.webp 100w,https://diamant-strass-dmc.com/wp-content/uploads/2022/08/sachets-zip-diamond-painting-1-50x50.webp 50w,https://diamant-strass-dmc.com/wp-content/uploads/2022/08/sachets-zip-diamond-painting-1.avif 800w" sizes="auto, (max-width: 300px) 100v
5546w, 300px" type="image/avif"><source srcset="https://diamant-strass-dmc.com/wp-content/uploads/2022/08/sachets-zip-diamond-painting-1-300x300.webp 300w,https://diamant-strass-dmc.com/wp-content/uploads/2022/08/sachets-zip-diamond-painting-1-416x416.webp 416w,https://diamant-strass-dmc.com/wp-content/uploads/2022/08/sachets-zip-diamond-painting-1-150x150.webp 150w,https://diamant-strass-dmc.com/wp-content/uploads/2022/08/sachets-zip-diamond-painting-1-768x768.webp 768w,https://diamant-strass-dmc.com/wp-content/uploads/2022/08/sachets-zip-diamond-painting-1-600x600.webp 600w,https://diamant-strass-dmc.com/wp-content/uploads/2022/08/sachets-zip-diamond-painting-1-100x100.webp 100w,https://diamant-strass-dmc.com/wp-content/uploads/2022/08/sachets-zip-diamond-painting-1-50x50.webp 50w,https://diamant-strass-dmc.com/wp-content/uploads/2022/08/sachets-zip-diamond-painting-1.webp 800w" sizes="auto, (max-width: 300px) 100vw, 300px" type="image/webp"><img src="https://diamant-strass-dmc.com/wp-content/uploads/2022/08/sachets-zip-diamond-painting-1-300x300.jpg" height="300" width="300" srcset="https://diamant-strass-dmc.com/wp-content/uploads/2022/08/sachets-zip-diamond-painting-1-300x300.jpg 300w, https://diamant-strass-dmc.com/wp-content/uploads/2022/08/sachets-zip-diamond-painting-1-416x416.jpg 416w, https://diamant-strass-dmc.com/wp-content/uploads/2022/08/sachets-zip-diamond-painting-1-150x150.jpg 150w, https://diamant-strass-dmc.com/wp-content/uploads/2022/08/sachets-zip-diamond-painting-1-768x768.jpg 768w, https://diamant-strass-dmc.com/wp-content/uploads/2022/08/sachets-zip-diamond-painting-1-600x600.jpg 600w, https://diamant-strass-dmc.com/wp-content/uploads/2022/08/sachets-zip-diamond-painting-1-100x100.jpg 100w, https://diamant-strass-dmc.com/wp-content/uploads/2022/08/sachets-zip-diamond-painting-1-50x50.jpg 50w, https://diamant-strass-dmc.com/wp-content/uploads/2022/08/sachets-zip-diamond-painting-1.jpg 800w" sizes="auto, (max-width: 300px) 100vw, 300px" class=" wp-post-image sp-no-webp" alt="Sachets zip diamond painting" loading="lazy" decoding="async" itemprop="image" style="aspect-ratio: 1/1;" title="sachets-zip-diamond-painting" data-xoowscfly="fly" > </picture></a></figure><div class="berocket_better_labels berocket_better_labels_image"><div class="berocket_better_labels_position berocket_better_labels_position_left"><div class="berocket_better_labels_line berocket_better_labels_line_1"><div class="berocket_better_labels_inline berocket_better_labels_inline_1"><div class="br_alabel br_alabel_type_sale_p br_alabel_template_type_css berocket_alabel_id_115461 br_alabel_better_compatibility" style=""><span style=""><i style="background-color: #5300c4; border-color: #5300c4;" class="template-span-before "></i><i style="background-color: #5300c4; border-color: #5300c4;" class="template-i "></i><i style="background-color: #5300c4; border-color: #5300c4;" class="template-i-before "></i><i style="background-color: #5300c4; border-color: #5300c4;" class="template-i-after "></i><b style="text-align: center;z-index: 100;" class="br-labels-css br-labels-css-1"><span class='b_span_before'>ð</span><span class='b_span_text'>-47%</span></b></span></div></div></div></div></div><h2 class="woocommerce-loop-product__title"><a class="woocommerce-LoopProduct-link woocommerce-loop-product__link" href="https://diamant-strass-dmc.com/perles-broderie/sachets-zip-perles-diamants-surplus/" target="_self">Sachets zip épais pour perles en surplus</a></h2> 5547 <span class="price"><span class="aelia_product_price" data-product_id="35862"><span class="from">à partir de : </span><span class="woocommerce-Price-amount amount"><bdi><span class="woocommerce-Price-currencySymbol" translate="no">$</span>3.26</bdi></span></span></span> 5548<div class="ct-woo-card-actions" data-add-to-cart="auto-hide" data-alignment="equal"> <span id="woocommerce_loop_add_to_cart_link_describedby_35862" class="screen-reader-text"> 5549 Ce produit a plusieurs variations. Les options peuvent être choisies sur la page du produit </span> 5550</div></li> 5551 5552 5553 <li class="product type-product post-150520 status-publish first instock product_cat-accessoires has-post-thumbnail sale taxable shipping-taxable purchasable product-type-simple thumbs-bottom"> 5554 <figure > 5555 5556 <a class="ct-media-container" href="https://diamant-strass-dmc.com/perles-broderie/entonnoir-perles-diamond-painting/" aria-label="Entonnoir rétractable pour perles de diamond painting"><picture><source srcset="https://diamant-strass-dmc.com/wp-content/uploads/2026/05/entonnoir-bleu-300x285.avif 300w,https://diamant-strass-dmc.com/wp-content/uploads/2026/05/entonnoir-bleu-416x395.avif 416w,https://diamant-strass-dmc.com/wp-content/uploads/2026/05/entonnoir-bleu.avif 597w" sizes="auto, (max-width: 300px) 100v
5556w, 300px" type="image/avif"><source srcset="https://diamant-strass-dmc.com/wp-content/uploads/2026/05/entonnoir-bleu-300x285.webp 300w,https://diamant-strass-dmc.com/wp-content/uploads/2026/05/entonnoir-bleu-416x395.webp 416w,https://diamant-strass-dmc.com/wp-content/uploads/2026/05/entonnoir-bleu.webp 597w" sizes="auto, (max-width: 300px) 100vw, 300px" type="image/webp"><img src="https://diamant-strass-dmc.com/wp-content/uploads/2026/05/entonnoir-bleu-300x285.jpg" height="285" width="300" srcset="https://diamant-strass-dmc.com/wp-content/uploads/2026/05/entonnoir-bleu-300x285.jpg 300w, https://diamant-strass-dmc.com/wp-content/uploads/2026/05/entonnoir-bleu-416x395.jpg 416w, https://diamant-strass-dmc.com/wp-content/uploads/2026/05/entonnoir-bleu.jpg 597w" sizes="auto, (max-width: 300px) 100vw, 300px" class=" wp-post-image sp-no-webp" alt="entonnoir bleu" loading="lazy" decoding="async" itemprop="image" style="aspect-ratio: 199/189;" title="entonnoir -bleu" data-xoowscfly="fly" > </picture></a></figure><h2 class="woocommerce-loop-product__title"><a class="woocommerce-LoopProduct-link woocommerce-loop-product__link" href="https://diamant-strass-dmc.com/perles-broderie/entonnoir-perles-diamond-painting/" target="_self">Entonnoir rétractable pour perles de diamond painting</a></h2> 5557 <span class="price"><span class="aelia_product_price" data-product_id="150520"><span class="sale-price"><del aria-hidden="true"><span class="woocommerce-Price-amount amount"><bdi><span class="woocommerce-Price-currencySymbol" translate="no">$</span>5.07</bdi></span></del> <span class="screen-reader-text">Le prix initial était : $5.07.</span><ins aria-hidden="true"><span class="woocommerce-Price-amount amount"><bdi><span class="woocommerce-Price-currencySymbol" translate="no">$</span>3.83</bdi></span></ins><span class="screen-reader-text">Le prix actuel est : $3.83.</span></span></span></span> 5558<div class="ct-woo-card-actions" data-add-to-cart="auto-hide" data-alignment="equal"> <span id="woocommerce_loop_add_to_cart_link_describedby_150520" class="screen-reader-text"> 5559 </span> 5560</div></li> 5561 5562 5563 <li class="product type-product post-148017 status-publish outofstock product_cat-accessoires product_cat-promo has-post-thumbnail sale taxable shipping-taxable purchasable product-type-variable has-default-attributes thumbs-bottom"> 5564 <figure ><span class="out-of-stock-badge" data-shape="type-2">ÃPUISÃ</span><a class="ct-media-container" href="https://diamant-strass-dmc.com/perles-broderie/pinces-epiler-diamond-painting/" aria-label="Pince à épiler pour diamond painting"><picture><source srcset="https://diamant-strass-dmc.com/wp-content/uploads/2026/03/pinces-a-epiler-300x300.avif 300w,https://diamant-strass-dmc.com/wp-content/uploads/2026/03/pinces-a-epiler-416x416.avif 416w,https://diamant-strass-dmc.com/wp-content/uploads/2026/03/pinces-a-epiler-150x150.webp 150w,https://diamant-strass-dmc.com/wp-content/uploads/2026/03/pinces-a-epiler-600x600.avif 600w,https://diamant-strass-dmc.com/wp-content/uploads/2026/03/pinces-a-epiler-100x100.webp 100w,https://diamant-strass-dmc.com/wp-content/uploads/2026/03/pinces-a-epiler-50x50.webp 50w,https://diamant-strass-dmc.com/wp-content/uploads/2026/03/pinces-a-epiler.avif 676w" sizes="auto, (max-width: 300px) 100vw, 300px" type="image/avif"><source srcset="https://diamant-strass-dmc.com/wp-content/uploads/2026/03/pinces-a-epiler-300x300.webp 300w,https://diamant-strass-dmc.com/wp-content/uploads/2026/03/pinces-a-epiler-416x416.webp 416w,https://diamant-strass-dmc.com/wp-content/uploads/2026/03/pinces-a-epiler-150x150.webp 150w,https://diamant-strass-dmc.com/wp-content/uploads/2026/03/pinces-a-epiler-600x600.webp 600w,https://diamant-strass-dmc.com/wp-content/uploads/2026/03/pinces-a-epiler-100x100.webp 100w,https://diamant-strass-dmc.com/wp-content/uploads/2026/03/pinces-a-epiler-50x50.webp 50w,https://diamant-strass-dmc.com/wp-content/uploads/2026/03/pinces-a-epiler.webp 676w" sizes="auto, (max-width: 300px) 100vw, 300px" type="image/webp"><img src="https://diamant-strass-dmc.com/wp-content/uploads/2026/03/pinces-a-epiler-300x300.jpg" height="300" width="300" srcset="https://diamant-strass-dmc.com/wp-content/uploads/2026/03/pinces-a-epiler-300x300.jpg 300w, https://diamant-strass-dmc.com/wp-content/uploads/2026/03/pinces-a-epiler-416x416.jpg 416w, https://diamant-strass-dmc.com/wp-content/uploads/2026/03/pinces-a-epiler-150x150.jpg 150w, https://diamant-strass-dmc.com/wp-content/uploads/2026/03/pinces-a-epiler-600x600.jpg 600w, https://diamant-strass-dmc.com/wp-content/uploads/2026/03/pinces-a-epiler-100x100.jpg 100w, https://diamant-strass-dmc.com/wp-content/uploads/2026/03/pinces-a-epiler-50x50.jpg 50w, https://diamant-strass-dmc.com/wp-content/uploads/2026/03/pinces-a-epiler.jpg 676w" sizes="auto, (max-width: 300px) 100v
5564w, 300px" class=" wp-post-image sp-no-webp" alt="pinces à épiler pour perles de diamond painting" loading="lazy" decoding="async" itemprop="image" style="aspect-ratio: 1/1;" title="pinces-a-epiler" data-xoowscfly="fly" > </picture></a></figure><div class="berocket_better_labels berocket_better_labels_image"><div class="berocket_better_labels_position berocket_better_labels_position_left"><div class="berocket_better_labels_line berocket_better_labels_line_1"><div class="berocket_better_labels_inline berocket_better_labels_inline_1"><div class="br_alabel br_alabel_type_sale_p br_alabel_template_type_css berocket_alabel_id_115461 br_alabel_better_compatibility" style=""><span style=""><i style="background-color: #5300c4; border-color: #5300c4;" class="template-span-before "></i><i style="background-color: #5300c4; border-color: #5300c4;" class="template-i "></i><i style="background-color: #5300c4; border-color: #5300c4;" class="template-i-before "></i><i style="background-color: #5300c4; border-color: #5300c4;" class="template-i-after "></i><b style="text-align: center;z-index: 100;" class="br-labels-css br-labels-css-1"><span class='b_span_before'>ð</span><span class='b_span_text'>-34%</span></b></span></div></div></div></div></div><h2 class="woocommerce-loop-product__title"><a class="woocommerce-LoopProduct-link woocommerce-loop-product__link" href="https://diamant-strass-dmc.com/perles-broderie/pinces-epiler-diamond-painting/" target="_self">Pince à épiler pour diamond painting</a></h2> 5565 <span class="price"><span class="aelia_product_price" data-product_id="148017"><span class="sale-price"><del aria-hidden="true"><span class="woocommerce-Price-amount amount"><bdi><span class="woocommerce-Price-currencySymbol" translate="no">$</span>1.68</bdi></span></del> <span class="screen-reader-text">Le prix initial était : $1.68.</span><ins aria-hidden="true"><span class="woocommerce-Price-amount amount"><bdi><span class="woocommerce-Price-currencySymbol" translate="no">$</span>1.11</bdi></span></ins><span class="screen-reader-text">Le prix actuel est : $1.11.</span></span></span></span> 5566<div class="ct-woo-card-actions" data-add-to-cart="auto-hide" data-alignment="equal"> <span id="woocommerce_loop_add_to_cart_link_describedby_148017" class="screen-reader-text"> 5567 Ce produit a plusieurs variations. Les options peuvent être choisies sur la page du produit </span> 5568</div></li> 5569 5570 5571 <li class="product type-product post-151444 status-publish instock product_cat-accessoires has-post-thumbnail sale taxable shipping-taxable purchasable product-type-variable has-default-attributes thumbs-bottom"> 5572 <figure > 5573 5574 <a class="ct-media-container" href="https://diamant-strass-dmc.com/perles-broderie/compartiment-rangee-boite-perles-diamond-painting/" aria-label="Compartiments pour perles de diamond painting"><picture><source srcset="https://diamant-strass-dmc.com/wp-content/uploads/2026/06/compartiments-7-300x300.avif 300w,https://diamant-strass-dmc.com/wp-content/uploads/2026/06/compartiments-7-416x416.avif 416w,https://diamant-strass-dmc.com/wp-content/uploads/2026/06/compartiments-7-150x150.webp 150w,https://diamant-strass-dmc.com/wp-content/uploads/2026/06/compartiments-7-100x100.webp 100w,https://diamant-strass-dmc.com/wp-content/uploads/2026/06/compartiments-7-50x50.webp 50w,https://diamant-strass-dmc.com/wp-content/uploads/2026/06/compartiments-7.avif 426w" sizes="auto, (max-width: 300px) 100vw, 300px" type="image/avif"><source srcset="https://diamant-strass-dmc.com/wp-content/uploads/2026/06/compartiments-7-300x300.webp 300w,https://diamant-strass-dmc.com/wp-content/uploads/2026/06/compartiments-7-416x416.webp 416w,https://diamant-strass-dmc.com/wp-content/uploads/2026/06/compartiments-7-150x150.webp 150w,https://diamant-strass-dmc.com/wp-content/uploads/2026/06/compartiments-7-100x100.webp 100w,https://diamant-strass-dmc.com/wp-content/uploads/2026/06/compartiments-7-50x50.webp 50w,https://diamant-strass-dmc.com/wp-content/uploads/2026/06/compartiments-7.webp 426w" sizes="auto, (max-width: 300px) 100vw, 300px" type="image/webp"><img src="https://diamant-strass-dmc.com/wp-content/uploads/2026/06/compartiments-7-300x300.jpg" height="300" width="300" srcset="https://diamant-strass-dmc.com/wp-content/uploads/2026/06/compartiments-7-300x300.jpg 300w, https://diamant-strass-dmc.com/wp-content/uploads/2026/06/compartiments-7-416x416.jpg 416w, https://diamant-strass-dmc.com/wp-content/uploads/2026/06/compartiments-7-150x150.jpg 150w, https://diamant-strass-dmc.com/wp-content/uploads/2026/06/compartiments-7-100x100.jpg 100w, https://diamant-strass-dmc.com/wp-content/uploads/2026/06/compartiments-7-50x50.jpg 50w, https://diamant-strass-dmc.com/wp-content/uploads/2026/06/compartiments-7.jpg 426w" sizes="auto, (max-width: 300px) 100v
5574w, 300px" class=" wp-post-image sp-no-webp" alt="rangées de compartiments pour boite de diamond painting" loading="lazy" decoding="async" itemprop="image" style="aspect-ratio: 1/1;" title="compartiments-7" data-xoowscfly="fly" > </picture></a></figure><div class="berocket_better_labels berocket_better_labels_image"><div class="berocket_better_labels_position berocket_better_labels_position_left"><div class="berocket_better_labels_line berocket_better_labels_line_1"><div class="berocket_better_labels_inline berocket_better_labels_inline_1"><div class="br_alabel br_alabel_type_sale_p br_alabel_template_type_css berocket_alabel_id_115461 br_alabel_better_compatibility" style=""><span style=""><i style="background-color: #5300c4; border-color: #5300c4;" class="template-span-before "></i><i style="background-color: #5300c4; border-color: #5300c4;" class="template-i "></i><i style="background-color: #5300c4; border-color: #5300c4;" class="template-i-before "></i><i style="background-color: #5300c4; border-color: #5300c4;" class="template-i-after "></i><b style="text-align: center;z-index: 100;" class="br-labels-css br-labels-css-1"><span class='b_span_before'>ð</span><span class='b_span_text'>-30%</span></b></span></div></div></div></div></div><h2 class="woocommerce-loop-product__title"><a class="woocommerce-LoopProduct-link woocommerce-loop-product__link" href="https://diamant-strass-dmc.com/perles-broderie/compartiment-rangee-boite-perles-diamond-painting/" target="_self">Compartiments pour perles de diamond painting</a></h2> 5575 <span class="price"><span class="aelia_product_price" data-product_id="151444"><span class="from">à partir de : </span><span class="woocommerce-Price-amount amount"><bdi><span class="woocommerce-Price-currencySymbol" translate="no">$</span>1.35</bdi></span></span></span> 5576<div class="ct-woo-card-actions" data-add-to-cart="auto-hide" data-alignment="equal"> <span id="woocommerce_loop_add_to_cart_link_describedby_151444" class="screen-reader-text"> 5577 Ce produit a plusieurs variations. Les options peuvent être choisies sur la page du produit </span> 5578</div></li> 5579 5580 5581 <li class="product type-product post-151786 status-publish last instock product_cat-accessoires has-post-thumbnail sale taxable shipping-taxable purchasable product-type-variable has-default-attributes thumbs-bottom"> 5582 <figure > 5583 5584 <a class="ct-media-container" href="https://diamant-strass-dmc.com/perles-broderie/mini-boites-rangement-perles-diamond-painting/" aria-label="Boîtes "tic tac" pour perles de diamond painting"><picture><source srcset="https://diamant-strass-dmc.com/wp-content/uploads/2026/06/petites-boites-rangement-300x300.webp 300w,https://diamant-strass-dmc.com/wp-content/uploads/2026/06/petites-boites-rangement-416x416.avif 416w,https://diamant-strass-dmc.com/wp-content/uploads/2026/06/petites-boites-rangement-150x150.webp 150w,https://diamant-strass-dmc.com/wp-content/uploads/2026/06/petites-boites-rangement-600x600.avif 600w,https://diamant-strass-dmc.com/wp-content/uploads/2026/06/petites-boites-rangement-100x100.webp 100w,https://diamant-strass-dmc.com/wp-content/uploads/2026/06/petites-boites-rangement-50x50.webp 50w,https://diamant-strass-dmc.com/wp-content/uploads/2026/06/petites-boites-rangement.avif 615w" sizes="auto, (max-width: 300px) 100vw, 300px" type="image/avif"><source srcset="https://diamant-strass-dmc.com/wp-content/uploads/2026/06/petites-boites-rangement-300x300.webp 300w,https://diamant-strass-dmc.com/wp-content/uploads/2026/06/petites-boites-rangement-416x416.webp 416w,https://diamant-strass-dmc.com/wp-content/uploads/2026/06/petites-boites-rangement-150x150.webp 150w,https://diamant-strass-dmc.com/wp-content/uploads/2026/06/petites-boites-rangement-600x600.webp 600w,https://diamant-strass-dmc.com/wp-content/uploads/2026/06/petites-boites-rangement-100x100.webp 100w,https://diamant-strass-dmc.com/wp-content/uploads/2026/06/petites-boites-rangement-50x50.webp 50w,https://diamant-strass-dmc.com/wp-content/uploads/2026/06/petites-boites-rangement.webp 615w" sizes="auto, (max-width: 300px) 100v
5584w, 300px" type="image/webp"><img src="https://diamant-strass-dmc.com/wp-content/uploads/2026/06/petites-boites-rangement-300x300.jpg" height="300" width="300" srcset="https://diamant-strass-dmc.com/wp-content/uploads/2026/06/petites-boites-rangement-300x300.jpg 300w, https://diamant-strass-dmc.com/wp-content/uploads/2026/06/petites-boites-rangement-416x416.jpg 416w, https://diamant-strass-dmc.com/wp-content/uploads/2026/06/petites-boites-rangement-150x150.jpg 150w, https://diamant-strass-dmc.com/wp-content/uploads/2026/06/petites-boites-rangement-600x600.jpg 600w, https://diamant-strass-dmc.com/wp-content/uploads/2026/06/petites-boites-rangement-100x100.jpg 100w, https://diamant-strass-dmc.com/wp-content/uploads/2026/06/petites-boites-rangement-50x50.jpg 50w, https://diamant-strass-dmc.com/wp-content/uploads/2026/06/petites-boites-rangement.jpg 615w" sizes="auto, (max-width: 300px) 100vw, 300px" class=" wp-post-image sp-no-webp" alt="petites boites rangement" loading="lazy" decoding="async" itemprop="image" style="aspect-ratio: 1/1;" title="petites-boites-rangement" data-xoowscfly="fly" > </picture></a></figure><div class="berocket_better_labels berocket_better_labels_image"><div class="berocket_better_labels_position berocket_better_labels_position_left"><div class="berocket_better_labels_line berocket_better_labels_line_1"><div class="berocket_better_labels_inline berocket_better_labels_inline_1"><div class="br_alabel br_alabel_type_sale_p br_alabel_template_type_css berocket_alabel_id_115461 br_alabel_better_compatibility" style=""><span style=""><i style="background-color: #5300c4; border-color: #5300c4;" class="template-span-before "></i><i style="background-color: #5300c4; border-color: #5300c4;" class="template-i "></i><i style="background-color: #5300c4; border-color: #5300c4;" class="template-i-before "></i><i style="background-color: #5300c4; border-color: #5300c4;" class="template-i-after "></i><b style="text-align: center;z-index: 100;" class="br-labels-css br-labels-css-1"><span class='b_span_before'>ð</span><span class='b_span_text'>-23%</span></b></span></div></div></div></div></div><h2 class="woocommerce-loop-product__title"><a class="woocommerce-LoopProduct-link woocommerce-loop-product__link" href="https://diamant-strass-dmc.com/perles-broderie/mini-boites-rangement-perles-diamond-painting/" target="_self">Boîtes « tic tac » pour perles de diamond painting</a></h2> 5585 <span class="price"><span class="aelia_product_price" data-product_id="151786"><span class="from">à partir de : </span><span class="woocommerce-Price-amount amount"><bdi><span class="woocommerce-Price-currencySymbol" translate="no">$</span>3.49</bdi></span></span></span> 5586<div class="ct-woo-card-actions" data-add-to-cart="auto-hide" data-alignment="equal"> <span id="woocommerce_loop_add_to_cart_link_describedby_151786" class="screen-reader-text"> 5587 Ce produit a plusieurs variations. Les options peuvent être choisies sur la page du produit </span> 5588</div></li> 5589 5590 5591 <li class="product type-product post-44332 status-publish first instock product_cat-accessoires has-post-thumbnail sale taxable shipping-taxable purchasable product-type-simple thumbs-bottom"> 5592 <figure > 5593 5594 <a class="ct-media-container" href="https://diamant-strass-dmc.com/perles-broderie/roulette-broderie-diamant-diamond-painting/" aria-label="3 roulettes + rouleau adhésif"><picture><source srcset="https://diamant-strass-dmc.com/wp-content/uploads/2022/09/roulette-diamond-painting-broderie-diamant-300x300.avif 300w,https://diamant-strass-dmc.com/wp-content/uploads/2022/09/roulette-diamond-painting-broderie-diamant-150x150.avif 150w,https://diamant-strass-dmc.com/wp-content/uploads/2022/09/roulette-diamond-painting-broderie-diamant-768x768.avif 768w,https://diamant-strass-dmc.com/wp-content/uploads/2022/09/roulette-diamond-painting-broderie-diamant-324x324.avif 324w,https://diamant-strass-dmc.com/wp-content/uploads/2022/09/roulette-diamond-painting-broderie-diamant-416x416.avif 416w,https://diamant-strass-dmc.com/wp-content/uploads/2022/09/roulette-diamond-painting-broderie-diamant-100x100.avif 100w,https://diamant-strass-dmc.com/wp-content/uploads/2022/09/roulette-diamond-painting-broderie-diamant-50x50.avif 50w,https://diamant-strass-dmc.com/wp-content/uploads/2022/09/roulette-diamond-painting-broderie-diamant-600x600.avif 600w,https://diamant-strass-dmc.com/wp-content/uploads/2022/09/roulette-diamond-painting-broderie-diamant.avif 800w" sizes="auto, (max-width: 300px) 100v
5594w, 300px" type="image/avif"><source srcset="https://diamant-strass-dmc.com/wp-content/uploads/2022/09/roulette-diamond-painting-broderie-diamant-300x300.webp 300w,https://diamant-strass-dmc.com/wp-content/uploads/2022/09/roulette-diamond-painting-broderie-diamant-150x150.webp 150w,https://diamant-strass-dmc.com/wp-content/uploads/2022/09/roulette-diamond-painting-broderie-diamant-768x768.webp 768w,https://diamant-strass-dmc.com/wp-content/uploads/2022/09/roulette-diamond-painting-broderie-diamant-324x324.webp 324w,https://diamant-strass-dmc.com/wp-content/uploads/2022/09/roulette-diamond-painting-broderie-diamant-416x416.webp 416w,https://diamant-strass-dmc.com/wp-content/uploads/2022/09/roulette-diamond-painting-broderie-diamant-100x100.webp 100w,https://diamant-strass-dmc.com/wp-content/uploads/2022/09/roulette-diamond-painting-broderie-diamant-50x50.webp 50w,https://diamant-strass-dmc.com/wp-content/uploads/2022/09/roulette-diamond-painting-broderie-diamant-600x600.webp 600w,https://diamant-strass-dmc.com/wp-content/uploads/2022/09/roulette-diamond-painting-broderie-diamant.webp 800w" sizes="auto, (max-width: 300px) 100vw, 300px" type="image/webp"><img src="https://diamant-strass-dmc.com/wp-content/uploads/2022/09/roulette-diamond-painting-broderie-diamant-300x300.webp" height="300" width="300" srcset="https://diamant-strass-dmc.com/wp-content/uploads/2022/09/roulette-diamond-painting-broderie-diamant-300x300.webp 300w, https://diamant-strass-dmc.com/wp-content/uploads/2022/09/roulette-diamond-painting-broderie-diamant-150x150.webp 150w, https://diamant-strass-dmc.com/wp-content/uploads/2022/09/roulette-diamond-painting-broderie-diamant-768x768.webp 768w, https://diamant-strass-dmc.com/wp-content/uploads/2022/09/roulette-diamond-painting-broderie-diamant-324x324.webp 324w, https://diamant-strass-dmc.com/wp-content/uploads/2022/09/roulette-diamond-painting-broderie-diamant-416x416.webp 416w, https://diamant-strass-dmc.com/wp-content/uploads/2022/09/roulette-diamond-painting-broderie-diamant-100x100.webp 100w, https://diamant-strass-dmc.com/wp-content/uploads/2022/09/roulette-diamond-painting-broderie-diamant-50x50.webp 50w, https://diamant-strass-dmc.com/wp-content/uploads/2022/09/roulette-diamond-painting-broderie-diamant-600x600.webp 600w, https://diamant-strass-dmc.com/wp-content/uploads/2022/09/roulette-diamond-painting-broderie-diamant.webp 800w" sizes="auto, (max-width: 300px) 100vw, 300px" class=" wp-post-image sp-no-webp" alt="Roulette broderie diamant diamond painting" loading="lazy" decoding="async" itemprop="image" style="aspect-ratio: 1/1;" title="roulette-diamond-painting-broderie-diamant" data-xoowscfly="fly" > </picture></a></figure><div class="berocket_better_labels berocket_better_labels_image"><div class="berocket_better_labels_position berocket_better_labels_position_left"><div class="berocket_better_labels_line berocket_better_labels_line_1"><div class="berocket_better_labels_inline berocket_better_labels_inline_1"><div class="br_alabel br_alabel_type_sale_p br_alabel_template_type_css berocket_alabel_id_115461 br_alabel_better_compatibility" style=""><span style=""><i style="background-color: #5300c4; border-color: #5300c4;" class="template-span-before "></i><i style="background-color: #5300c4; border-color: #5300c4;" class="template-i "></i><i style="background-color: #5300c4; border-color: #5300c4;" class="template-i-before "></i><i style="background-color: #5300c4; border-color: #5300c4;" class="template-i-after "></i><b style="text-align: center;z-index: 100;" class="br-labels-css br-labels-css-1"><span class='b_span_before'>ð</span><span class='b_span_text'>-40%</span></b></span></div></div></div></div></div><h2 class="woocommerce-loop-product__title"><a class="woocommerce-LoopProduct-link woocommerce-loop-product__link" href="https://diamant-strass-dmc.com/perles-broderie/roulette-broderie-diamant-diamond-painting/" target="_self">3 roulettes + rouleau adhésif</a></h2> 5595 <span class="price"><span class="aelia_product_price" data-product_id="44332"><span class="sale-price"><del aria-hidden="true"><span class="woocommerce-Price-amount amount"><bdi><span class="woocommerce-Price-currencySymbol" translate="no">$</span>11.14</bdi></span></del> <span class="screen-reader-text">Le prix initial était : $11.14.</span><ins aria-hidden="true"><span class="woocommerce-Price-amount amount"><bdi><span class="woocommerce-Price-currencySymbol" translate="no">$</span>6.64</bdi></span></ins><span class="screen-reader-text">Le prix actuel est : $6.64.</span></span></span></span> 5596<div class="ct-woo-card-actions" data-add-to-cart="auto-hide" data-alignment="equal"> <span id="woocommerce_loop_add_to_cart_link_describedby_44332" class="screen-reader-text"> 5597 </span> 5598</div></li> 5599 5600 5601 <li class="product type-product post-34808 status-publish instock product_cat-accessoires has-post-thumbnail sale taxable shipping-taxable purchasable product-type-variable has-default-attributes"> 5602 <figure > 5603 5604 <a class="ct-media-container" href="https://diamant-strass-dmc.com/perles-broderie/tete-stylo-broderie-diamant/" aria-label="Têtes de stylo de diamond painting"><picture><source srcset="https://diamant-strass-dmc.com/wp-content/uploads/2022/07/tetes2-300x300.avif 300w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/tetes2-150x150.webp 150w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/tetes2-768x768.avif 768w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/tetes2-416x416.avif 416w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/tetes2.avif 800w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/tetes2-324x324.avif 324w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/tetes2-100x100.webp 100w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/tetes2-600x600.avif 600w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/tetes2-50x50.webp 50w" sizes="auto, (max-width: 300px) 100v
5604w, 300px" type="image/avif"><source srcset="https://diamant-strass-dmc.com/wp-content/uploads/2022/07/tetes2-300x300.webp 300w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/tetes2-150x150.webp 150w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/tetes2-768x768.webp 768w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/tetes2-416x416.webp 416w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/tetes2.webp 800w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/tetes2-324x324.webp 324w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/tetes2-100x100.webp 100w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/tetes2-600x600.webp 600w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/tetes2-50x50.webp 50w" sizes="auto, (max-width: 300px) 100vw, 300px" type="image/webp"><img src="https://diamant-strass-dmc.com/wp-content/uploads/2022/07/tetes2-300x300.jpg" height="300" width="300" srcset="https://diamant-strass-dmc.com/wp-content/uploads/2022/07/tetes2-300x300.jpg 300w, https://diamant-strass-dmc.com/wp-content/uploads/2022/07/tetes2-150x150.jpg 150w, https://diamant-strass-dmc.com/wp-content/uploads/2022/07/tetes2-768x768.jpg 768w, https://diamant-strass-dmc.com/wp-content/uploads/2022/07/tetes2-416x416.jpg 416w, https://diamant-strass-dmc.com/wp-content/uploads/2022/07/tetes2.jpg 800w, https://diamant-strass-dmc.com/wp-content/uploads/2022/07/tetes2-324x324.jpg 324w, https://diamant-strass-dmc.com/wp-content/uploads/2022/07/tetes2-100x100.jpg 100w, https://diamant-strass-dmc.com/wp-content/uploads/2022/07/tetes2-600x600.jpg 600w, https://diamant-strass-dmc.com/wp-content/uploads/2022/07/tetes2-50x50.jpg 50w" sizes="auto, (max-width: 300px) 100vw, 300px" class=" wp-post-image sp-no-webp" alt="tête correctrice" loading="lazy" decoding="async" itemprop="image" style="aspect-ratio: 1/1;" title="tetes2" data-xoowscfly="fly" > </picture></a></figure><h2 class="woocommerce-loop-product__title"><a class="woocommerce-LoopProduct-link woocommerce-loop-product__link" href="https://diamant-strass-dmc.com/perles-broderie/tete-stylo-broderie-diamant/" target="_self">Têtes de stylo de diamond painting</a></h2> 5605 <span class="price"><span class="aelia_product_price" data-product_id="34808"><span class="from">à partir de : </span><span class="woocommerce-Price-amount amount"><bdi><span class="woocommerce-Price-currencySymbol" translate="no">$</span>0.55</bdi></span></span></span> 5606<div class="ct-woo-card-actions" data-add-to-cart="auto-hide" data-alignment="equal"> <span id="woocommerce_loop_add_to_cart_link_describedby_34808" class="screen-reader-text"> 5607 Ce produit a plusieurs variations. Les options peuvent être choisies sur la page du produit </span> 5608</div></li> 5609 5610 5611 <li class="product type-product post-34761 status-publish instock product_cat-accessoires product_cat-promo has-post-thumbnail sale taxable shipping-taxable purchasable product-type-variable has-default-attributes thumbs-bottom"> 5612 <figure > 5613 5614 <a class="ct-media-container" href="https://diamant-strass-dmc.com/perles-broderie/stylo-lumineux-loupe-tetes-broderie-diamant/" aria-label="Stylo lumineux avec loupe et têtes"><picture><source srcset="https://diamant-strass-dmc.com/wp-content/uploads/2022/07/stylo-lumineux-loupe-diamond-painting-300x300.avif 300w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/stylo-lumineux-loupe-diamond-painting-150x150.webp 150w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/stylo-lumineux-loupe-diamond-painting-768x768.avif 768w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/stylo-lumineux-loupe-diamond-painting-416x416.avif 416w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/stylo-lumineux-loupe-diamond-painting.avif 800w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/stylo-lumineux-loupe-diamond-painting-324x324.avif 324w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/stylo-lumineux-loupe-diamond-painting-100x100.webp 100w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/stylo-lumineux-loupe-diamond-painting-600x600.avif 600w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/stylo-lumineux-loupe-diamond-painting-50x50.webp 50w" sizes="auto, (max-width: 300px) 100v
5614w, 300px" type="image/avif"><source srcset="https://diamant-strass-dmc.com/wp-content/uploads/2022/07/stylo-lumineux-loupe-diamond-painting-300x300.webp 300w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/stylo-lumineux-loupe-diamond-painting-150x150.webp 150w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/stylo-lumineux-loupe-diamond-painting-768x768.webp 768w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/stylo-lumineux-loupe-diamond-painting-416x416.webp 416w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/stylo-lumineux-loupe-diamond-painting.webp 800w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/stylo-lumineux-loupe-diamond-painting-324x324.webp 324w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/stylo-lumineux-loupe-diamond-painting-100x100.webp 100w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/stylo-lumineux-loupe-diamond-painting-600x600.webp 600w,https://diamant-strass-dmc.com/wp-content/uploads/2022/07/stylo-lumineux-loupe-diamond-painting-50x50.webp 50w" sizes="auto, (max-width: 300px) 100vw, 300px" type="image/webp"><img src="https://diamant-strass-dmc.com/wp-content/uploads/2022/07/stylo-lumineux-loupe-diamond-painting-300x300.jpg" height="300" width="300" srcset="https://diamant-strass-dmc.com/wp-content/uploads/2022/07/stylo-lumineux-loupe-diamond-painting-300x300.jpg 300w, https://diamant-strass-dmc.com/wp-content/uploads/2022/07/stylo-lumineux-loupe-diamond-painting-150x150.jpg 150w, https://diamant-strass-dmc.com/wp-content/uploads/2022/07/stylo-lumineux-loupe-diamond-painting-768x768.jpg 768w, https://diamant-strass-dmc.com/wp-content/uploads/2022/07/stylo-lumineux-loupe-diamond-painting-416x416.jpg 416w, https://diamant-strass-dmc.com/wp-content/uploads/2022/07/stylo-lumineux-loupe-diamond-painting.jpg 800w, https://diamant-strass-dmc.com/wp-content/uploads/2022/07/stylo-lumineux-loupe-diamond-painting-324x324.jpg 324w, https://diamant-strass-dmc.com/wp-content/uploads/2022/07/stylo-lumineux-loupe-diamond-painting-100x100.jpg 100w, https://diamant-strass-dmc.com/wp-content/uploads/2022/07/stylo-lumineux-loupe-diamond-painting-600x600.jpg 600w, https://diamant-strass-dmc.com/wp-content/uploads/2022/07/stylo-lumineux-loupe-diamond-painting-50x50.jpg 50w" sizes="auto, (max-width: 300px) 100vw, 300px" class=" wp-post-image sp-no-webp" alt="stylo lumineux loupe diamond painting" loading="lazy" decoding="async" itemprop="image" style="aspect-ratio: 1/1;" title="stylo-lumineux-loupe-diamond-painting" data-xoowscfly="fly" > </picture></a></figure><div class="berocket_better_labels berocket_better_labels_image"><div class="berocket_better_labels_position berocket_better_labels_position_left"><div class="berocket_better_labels_line berocket_better_labels_line_1"><div class="berocket_better_labels_inline berocket_better_labels_inline_1"><div class="br_alabel br_alabel_type_sale_p br_alabel_template_type_css berocket_alabel_id_115461 br_alabel_better_compatibility" style=""><span style=""><i style="background-color: #5300c4; border-color: #5300c4;" class="template-span-before "></i><i style="background-color: #5300c4; border-color: #5300c4;" class="template-i "></i><i style="background-color: #5300c4; border-color: #5300c4;" class="template-i-before "></i><i style="background-color: #5300c4; border-color: #5300c4;" class="template-i-after "></i><b style="text-align: center;z-index: 100;" class="br-labels-css br-labels-css-1"><span class='b_span_before'>ð</span><span class='b_span_text'>-60%</span></b></span></div></div></div></div></div><h2 class="woocommerce-loop-product__title"><a class="woocommerce-LoopProduct-link woocommerce-loop-product__link" href="https://diamant-strass-dmc.com/perles-broderie/stylo-lumineux-loupe-tetes-broderie-diamant/" target="_self">Stylo lumineux avec loupe et têtes</a></h2> 5615 <span class="price"><span class="aelia_product_price" data-product_id="34761"><span class="from">à partir de : </span><span class="woocommerce-Price-amount amount"><bdi><span class="woocommerce-Price-currencySymbol" translate="no">$</span>6.64</bdi></span></span></span> 5616<div class="ct-woo-card-actions" data-add-to-cart="auto-hide" data-alignment="equal"> <span id="woocommerce_loop_add_to_cart_link_describedby_34761" class="screen-reader-text"> 5617 Ce produit a plusieurs variations. Les options peuvent être choisies sur la page du produit </span> 5618</div></li> 5619 5620 5621 <li class="product type-product post-54903 status-publish last instock product_cat-accessoires has-post-thumbnail sale taxable shipping-taxable purchasable product-type-variable has-default-attributes"> 5622 <figure > 5623 5624 <a class="ct-media-container" href="https://diamant-strass-dmc.com/perles-broderie/tete-stylo-metal-argent-or-diamond-painting/" aria-label="Têtes de stylo en métal (acier) couleur argent ou or"><picture><source srcset="https://diamant-strass-dmc.com/wp-content/uploads/2023/02/tete-stylet-metal-diamond-painting-300x300.avif 300w,https://diamant-strass-dmc.com/wp-content/uploads/2023/02/tete-stylet-metal-diamond-painting-150x150.webp 150w,https://diamant-strass-dmc.com/wp-content/uploads/2023/02/tete-stylet-metal-diamond-painting-768x768.avif 768w,https://diamant-strass-dmc.com/wp-content/uploads/2023/02/tete-stylet-metal-diamond-painting-324x324.avif 324w,https://diamant-strass-dmc.com/wp-content/uploads/2023/02/tete-stylet-metal-diamond-painting-416x416.avif 416w,https://diamant-strass-dmc.com/wp-content/uploads/2023/02/tete-stylet-metal-diamond-painting-100x100.webp 100w,https://diamant-strass-dmc.com/wp-content/uploads/2023/02/tete-stylet-metal-diamond-painting-50x50.webp 50w,https://diamant-strass-dmc.com/wp-content/uploads/2023/02/tete-stylet-metal-diamond-painting-600x600.avif 600w,https://diamant-strass-dmc.com/wp-content/uploads/2023/02/tete-stylet-metal-diamond-painting.avif 800w" sizes="auto, (max-width: 300px) 100v
5624w, 300px" type="image/avif"><source srcset="https://diamant-strass-dmc.com/wp-content/uploads/2023/02/tete-stylet-metal-diamond-painting-300x300.webp 300w,https://diamant-strass-dmc.com/wp-content/uploads/2023/02/tete-stylet-metal-diamond-painting-150x150.webp 150w,https://diamant-strass-dmc.com/wp-content/uploads/2023/02/tete-stylet-metal-diamond-painting-768x768.webp 768w,https://diamant-strass-dmc.com/wp-content/uploads/2023/02/tete-stylet-metal-diamond-painting-324x324.webp 324w,https://diamant-strass-dmc.com/wp-content/uploads/2023/02/tete-stylet-metal-diamond-painting-416x416.webp 416w,https://diamant-strass-dmc.com/wp-content/uploads/2023/02/tete-stylet-metal-diamond-painting-100x100.webp 100w,https://diamant-strass-dmc.com/wp-content/uploads/2023/02/tete-stylet-metal-diamond-painting-50x50.webp 50w,https://diamant-strass-dmc.com/wp-content/uploads/2023/02/tete-stylet-metal-diamond-painting-600x600.webp 600w,https://diamant-strass-dmc.com/wp-content/uploads/2023/02/tete-stylet-metal-diamond-painting.webp 800w" sizes="auto, (max-width: 300px) 100vw, 300px" type="image/webp"><img src="https://diamant-strass-dmc.com/wp-content/uploads/2023/02/tete-stylet-metal-diamond-painting-300x300.jpg" height="300" width="300" srcset="https://diamant-strass-dmc.com/wp-content/uploads/2023/02/tete-stylet-metal-diamond-painting-300x300.jpg 300w, https://diamant-strass-dmc.com/wp-content/uploads/2023/02/tete-stylet-metal-diamond-painting-150x150.jpg 150w, https://diamant-strass-dmc.com/wp-content/uploads/2023/02/tete-stylet-metal-diamond-painting-768x768.jpg 768w, https://diamant-strass-dmc.com/wp-content/uploads/2023/02/tete-stylet-metal-diamond-painting-324x324.jpg 324w, https://diamant-strass-dmc.com/wp-content/uploads/2023/02/tete-stylet-metal-diamond-painting-416x416.jpg 416w, https://diamant-strass-dmc.com/wp-content/uploads/2023/02/tete-stylet-metal-diamond-painting-100x100.jpg 100w, https://diamant-strass-dmc.com/wp-content/uploads/2023/02/tete-stylet-metal-diamond-painting-50x50.jpg 50w, https://diamant-strass-dmc.com/wp-content/uploads/2023/02/tete-stylet-metal-diamond-painting-600x600.jpg 600w, https://diamant-strass-dmc.com/wp-content/uploads/2023/02/tete-stylet-metal-diamond-painting.jpg 800w" sizes="auto, (max-width: 300px) 100vw, 300px" class=" wp-post-image sp-no-webp" alt="Têtes metal stylo stylet embout diamond painting" loading="lazy" decoding="async" itemprop="image" style="aspect-ratio: 1/1;" title="tete-stylet-metal-diamond-painting" data-xoowscfly="fly" > </picture></a></figure><div class="berocket_better_labels berocket_better_labels_image"><div class="berocket_better_labels_position berocket_better_labels_position_left"><div class="berocket_better_labels_line berocket_better_labels_line_1"><div class="berocket_better_labels_inline berocket_better_labels_inline_1"><div class="br_alabel br_alabel_type_sale_p br_alabel_template_type_css berocket_alabel_id_115461 br_alabel_better_compatibility" style=""><span style=""><i style="background-color: #5300c4; border-color: #5300c4;" class="template-span-before "></i><i style="background-color: #5300c4; border-color: #5300c4;" class="template-i "></i><i style="background-color: #5300c4; border-color: #5300c4;" class="template-i-before "></i><i style="background-color: #5300c4; border-color: #5300c4;" class="template-i-after "></i><b style="text-align: center;z-index: 100;" class="br-labels-css br-labels-css-1"><span class='b_span_before'>ð</span><span class='b_span_text'>-65%</span></b></span></div></div></div></div></div><h2 class="woocommerce-loop-product__title"><a class="woocommerce-LoopProduct-link woocommerce-loop-product__link" href="https://diamant-strass-dmc.com/perles-broderie/tete-stylo-metal-argent-or-diamond-painting/" target="_self">Têtes de stylo en métal (acier) couleur argent ou or</a></h2> 5625 <span class="price"><span class="aelia_product_price" data-product_id="54903"><span class="sale-price"><del aria-hidden="true"><span class="woocommerce-Price-amount amount"><bdi><span class="woocommerce-Price-currencySymbol" translate="no">$</span>22.40</bdi></span></del> <span class="screen-reader-text">Le prix initial était : $22.40.</span><ins aria-hidden="true"><span class="woocommerce-Price-amount amount"><bdi><span class="woocommerce-Price-currencySymbol" translate="no">$</span>7.77</bdi></span></ins><span class="screen-reader-text">Le prix actuel est : $7.77.</span></span></span></span> 5626<div class="ct-woo-card-actions" data-add-to-cart="auto-hide" data-alignment="equal"> <span id="woocommerce_loop_add_to_cart_link_describedby_54903" class="screen-reader-text"> 5627 Ce produit a plusieurs variations. Les options peuvent être choisies sur la page du produit </span> 5628</div></li> 5629 5630 5631 </ul> 5632 5633 </section> 5634 </article></div> 5635 5636 </main> 5637 5638 <footer id="footer" class="ct-footer" data-id="type-1" itemscope="" itemtype="https://schema.org/WPFooter"><div data-row="bottom"><div class="ct-container"><div data-column="menu"> 5639<nav 5640 id="footer-menu" 5641 class="footer-menu-inline menu-container " 5642 data-id="menu" itemscope="" itemtype="https://schema.org/SiteNavigationElement" aria-label="footerok"> 5643 5644 <ul id="menu-footerok" class="menu"><li id="menu-item-26356" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-26356"><a href="https://diamant-strass-dmc.com/mentions-legales/" class="ct-menu-link">Mentions légales</a></li> 5645<li id="menu-item-26355" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-26355"><a href="https://diamant-strass-dmc.com/cgv/" class="ct-menu-link">Conditions générales de vente</a></li> 5646<li id="menu-item-62685" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-62685"><a href="https://diamant-strass-dmc.com/livraison-retour-echange/" class="ct-menu-link">Livraison, retours et échanges</a></li> 5647<li id="menu-item-26491" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-privacy-policy menu-item-26491"><a rel="privacy-policy" href="https://diamant-strass-dmc.com/politique-confidentialite/" class="ct-menu-link">Politique de confidentialité</a></li> 5648<li id="menu-item-26517" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-26517"><a href="https://diamant-strass-dmc.com/contact/" class="ct-menu-link">Nous contacter</a></li> 5649</ul></nav> 5650</div></div></div></footer></div> 5651 5652<style>.br_alabel .br_tooltip{display:none;} 5653 .br_alabel.berocket_alabel_id_65501 > span { 5654 color: white; display: flex; display: -webkit-box; 5655display: -ms-flexbox; position: relative; right: 0;text-align: center; 5656 } 5657 .br_alabel.berocket_alabel_id_65501 > span i.template-i-before { 5658 display: block;height: 0;position: absolute;width: 0; 5659 } 5660 .br_alabel.berocket_alabel_id_65501 > span i.template-i { 5661 background-color: transparent;display: block;line-height: 30px;position: absolute;z-index: 99; 5662 } 5663 .br_alabel.berocket_alabel_id_65501 > span i.template-i-after { 5664 display: block;height: 0;position: absolute;width: 0; 5665 } 5666 .br_alabel.berocket_alabel_id_65501 > span i.template-span-before { 5667 display: block;height: 0;position: absolute;width: 0; 5668 }div.br_alabel.berocket_alabel_id_65501{top:-10px;left:-10px;z-index:500;}div.br_alabel.berocket_alabel_id_65501 > span{height: 30px;width: 110px;background-color:#376d0c;color:#ffffff;border-radius:3px;line-height:1.2em;font-size:18px;font-family: 'Alata';padding-left: 0px; padding-right: 0px; padding-top: 0px; padding-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; margin-bottom: 0px; } 5669 .br_alabel.berocket_alabel_id_65673 > span { 5670 color: white; display: flex; display: -webkit-box; 5671display: -ms-flexbox; position: relative; right: 0;text-align: center; 5672 } 5673 .br_alabel.berocket_alabel_id_65673 > span i.template-i-before { 5674 display: block;height: 0;position: absolute;width: 0; 5675 } 5676 .br_alabel.berocket_alabel_id_65673 > span i.template-i { 5677 background-color: transparent;display: block;line-height: 30px;position: absolute;z-index: 99; 5678 } 5679 .br_alabel.berocket_alabel_id_65673 > span i.template-i-after { 5680 display: block;height: 0;position: absolute;width: 0; 5681 } 5682 .br_alabel.berocket_alabel_id_65673 > span i.template-span-before { 5683 display: block;height: 0;position: absolute;width: 0; 5684 }div.br_alabel.berocket_alabel_id_65673{top:-10px;left:-10px;z-index:500;}div.br_alabel.berocket_alabel_id_65673 > span{height: 30px;width: 110px;background-color:#376d0c;color:#ffffff;border-radius:3px;line-height:1.2em;font-size:18px;font-family: 'Alata';padding-left: 0px; padding-right: 0px; padding-top: 0px; padding-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; margin-bottom: 0px; } 5685 .br_alabel.berocket_alabel_id_65689 > span { 5686 color: white; display: flex; display: -webkit-box; 5687display: -ms-flexbox; position: relative; right: 0;text-align: center; 5688 } 5689 .br_alabel.berocket_alabel_id_65689 > span i.template-i-before { 5690 display: block;height: 0;position: absolute;width: 0; 5691 } 5692 .br_alabel.berocket_alabel_id_65689 > span i.template-i { 5693 background-color: transparent;display: block;line-height: 30px;position: absolute;z-index: 99; 5694 } 5695 .br_alabel.berocket_alabel_id_65689 > span i.template-i-after { 5696 display: block;height: 0;position: absolute;width: 0; 5697 } 5698 .br_alabel.berocket_alabel_id_65689 > span i.template-span-before { 5699 display: block;height: 0;position: absolute;width: 0; 5700 }div.br_alabel.berocket_alabel_id_65689{top:-10px;left:-10px;z-index:500;}div.br_alabel.berocket_alabel_id_65689 > span{height: 30px;width: 110px;background-color:#376d0c;color:#ffffff;border-radius:3px;line-height:1.2em;font-size:18px;font-family: 'Alata';padding-left: 0px; padding-right: 0px; padding-top: 0px; padding-bottom: 0px; margin-left: -0px; margin-right: 0px; margin-top: 0px; margin-bottom: 0px; } 5701 .br_alabel.berocket_alabel_id_65704 > span { 5702 color: white; display: flex; display: -webkit-box; 5703display: -ms-flexbox; position: relative; right: 0;text-align: center; 5704 } 5705 .br_alabel.berocket_alabel_id_65704 > span i.template-i-before { 5706 display: block;height: 0;position: absolute;width: 0; 5707 } 5708 .br_alabel.berocket_alabel_id_65704 > span i.template-i { 5709 background-color: transparent;display: block;line-height: 30px;position: absolute;z-index: 99; 5710 } 5711 .br_alabel.berocket_alabel_id_65704 > span i.template-i-after { 5712 display: block;height: 0;position: absolute;width: 0; 5713 } 5714 .br_alabel.berocket_alabel_id_65704 > span i.template-span-before { 5715 display: block;height: 0;position: absolute;width: 0; 5716 }div.br_alabel.berocket_alabel_id_65704{top:-10px;left:-10px;z-index:500;}div.br_alabel.berocket_alabel_id_65704 > span{height: 30px;width: 110px;background-color:#376d0c;color:#ffffff;border-radius:3px;line-height:1.2em;font-size:18px;font-family: 'Alata';padding-left: 0px; padding-right: 0px; padding-top: 0px; padding-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; margin-bottom: 0px; } 5717 .br_alabel.berocket_alabel_id_65718 > span { 5718 color: white; display: flex; display: -webkit-box; 5719display: -ms-flexbox; position: relative; right: 0;text-align: center; 5720 } 5721 .br_alabel.berocket_alabel_id_65718 > span i.template-i-before { 5722 display: block;height: 0;position: absolute;width: 0; 5723 } 5724 .br_alabel.berocket_alabel_id_65718 > span i.template-i { 5725 background-color: transparent;display: block;line-height: 30px;position: absolute;z-index: 99; 5726 } 5727 .br_alabel.berocket_alabel_id_65718 > span i.template-i-after { 5728 display: block;height: 0;position: absolute;width: 0; 5729 } 5730 .br_alabel.berocket_alabel_id_65718 > span i.template-span-before { 5731 display: block;height: 0;position: absolute;width: 0; 5732 }div.br_alabel.berocket_alabel_id_65718{top:-10px;left:-10px;z-index:500;}div.br_alabel.berocket_alabel_id_65718 > span{height: 30px;width: 110px;background-color:#376d0c;color:#ffffff;border-radius:3px;line-height:1.2em;font-size:18px;font-family: 'Alata';padding-left: 0px; padding-right: 0px; padding-top: 0px; padding-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; margin-bottom: 0px; } 5733 .br_alabel.berocket_alabel_id_34056 > span { 5734 color: white;display: flex;position: relative;right: 0;text-align: center; 5735 } 5736 .br_alabel.berocket_alabel_id_34056 > span b { 5737 text-align: center;z-index: 100; 5738 } 5739 .br_alabel.berocket_alabel_id_34056 > span i.template-i-before { 5740 display: block;height: 0;position: absolute;width: 0; 5741 } 5742 .br_alabel.berocket_alabel_id_34056 > span i.template-i { 5743 background-color: transparent;display: block;line-height: 30px;position: absolute;z-index: 99; 5744 } 5745 .br_alabel.berocket_alabel_id_34056 > span i.template-i-after { 5746 display: block;height: 0;position: absolute;width: 0; 5747 } 5748 .br_alabel.berocket_alabel_id_34056 > span i.template-span-before { 5749 display: block;height: 0;position: absolute;width: 0; 5750 }div.br_alabel.berocket_alabel_id_34056{top:-10px;right:-10px;z-index:500;}div.br_alabel.berocket_alabel_id_34056 > span{height: 50px;width: 130px;background-color:#5e6464;color:#ffffff;border-radius:3px;line-height:1.2em;font-size:14px;padding-left: 0px; padding-right: 0px; padding-top: 0px; padding-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; margin-bottom: 0px; } 5751 .br_alabel.berocket_alabel_id_65734 > span { 5752 color: white; display: flex; display: -webkit-box; 5753display: -ms-flexbox; position: relative; right: 0;text-align: center; 5754 } 5755 .br_alabel.berocket_alabel_id_65734 > span i.template-i-before { 5756 display: block;height: 0;position: absolute;width: 0; 5757 } 5758 .br_alabel.berocket_alabel_id_65734 > span i.template-i { 5759 background-color: transparent;display: block;line-height: 30px;position: absolute;z-index: 99; 5760 } 5761 .br_alabel.berocket_alabel_id_65734 > span i.template-i-after { 5762 display: block;height: 0;position: absolute;width: 0; 5763 } 5764 .br_alabel.berocket_alabel_id_65734 > span i.template-span-before { 5765 display: block;height: 0;position: absolute;width: 0; 5766 }div.br_alabel.berocket_alabel_id_65734{top:-10px;left:-10px;z-index:500;}div.br_alabel.berocket_alabel_id_65734 > span{height: 30px;width: 110px;background-color:#376d0c;color:#ffffff;border-radius:3px;line-height:1.2em;font-size:18px;font-family: 'Alata';padding-left: 0px; padding-right: 0px; padding-top: 0px; padding-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; margin-bottom: 0px; } 5767 .br_alabel.berocket_alabel_id_34057 > span { 5768 color: white;display: flex;position: relative;right: 0;text-align: center; 5769 } 5770 .br_alabel.berocket_alabel_id_34057 > span b { 5771 text-align: center;z-index: 100; 5772 } 5773 .br_alabel.berocket_alabel_id_34057 > span i.template-i-before { 5774 display: block;
5774height: 0;position: absolute;width: 0; 5775 } 5776 .br_alabel.berocket_alabel_id_34057 > span i.template-i { 5777 background-color: transparent;display: block;line-height: 30px;position: absolute;z-index: 99; 5778 } 5779 .br_alabel.berocket_alabel_id_34057 > span i.template-i-after { 5780 display: block;height: 0;position: absolute;width: 0; 5781 } 5782 .br_alabel.berocket_alabel_id_34057 > span i.template-span-before { 5783 display: block;height: 0;position: absolute;width: 0; 5784 }div.br_alabel.berocket_alabel_id_34057{top:-10px;right:-10px;z-index:500;}div.br_alabel.berocket_alabel_id_34057 > span{height: 50px;width: 50px;background-color:#5e6464;color:#ffffff;border-radius:50%;line-height:1.2em;font-size:14px;padding-left: 0px; padding-right: 0px; padding-top: 0px; padding-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; margin-bottom: 0px; } 5785 .br_alabel.berocket_alabel_id_69225 > span { 5786 color: white; display: flex; display: -webkit-box; 5787display: -ms-flexbox; position: relative; right: 0;text-align: center; 5788 } 5789 .br_alabel.berocket_alabel_id_69225 > span i.template-i-before { 5790 display: block;height: 0;position: absolute;width: 0; 5791 } 5792 .br_alabel.berocket_alabel_id_69225 > span i.template-i { 5793 background-color: transparent;display: block;line-height: 30px;position: absolute;z-index: 99; 5794 } 5795 .br_alabel.berocket_alabel_id_69225 > span i.template-i-after { 5796 display: block;height: 0;position: absolute;width: 0; 5797 } 5798 .br_alabel.berocket_alabel_id_69225 > span i.template-span-before { 5799 display: block;height: 0;position: absolute;width: 0; 5800 }div.br_alabel.berocket_alabel_id_69225{top:-10px;left:-10px;z-index:500;}div.br_alabel.berocket_alabel_id_69225 > span{height: 35px;width: 77px;background-color:#6d44f2;color:#ffffff;border-radius:3px;line-height:1.2em;font-size:14px;padding-left: 0px; padding-right: 0px; padding-top: 0px; padding-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; margin-bottom: 0px; } 5801 .br_alabel.berocket_alabel_id_34059 > span { 5802 color: white;display: flex;position: relative;right: 0;text-align: center; 5803 } 5804 .br_alabel.berocket_alabel_id_34059 > span b { 5805 text-align: center;z-index: 100; 5806 } 5807 .br_alabel.berocket_alabel_id_34059 > span i.template-i-before { 5808 display: block;height: 0;position: absolute;width: 0; 5809 } 5810 .br_alabel.berocket_alabel_id_34059 > span i.template-i { 5811 background-color: transparent;display: block;line-height: 30px;position: absolute;z-index: 99; 5812 } 5813 .br_alabel.berocket_alabel_id_34059 > span i.template-i-after { 5814 display: block;height: 0;position: absolute;width: 0; 5815 } 5816 .br_alabel.berocket_alabel_id_34059 > span i.template-span-before { 5817 display: block;height: 0;position: absolute;width: 0; 5818 }div.br_alabel.berocket_alabel_id_34059{top:-10px;right:-10px;z-index:500;}div.br_alabel.berocket_alabel_id_34059 > span{height: 50px;width: 50px;background-color:#5e6464;color:#ffffff;line-height:1.2em;font-size:14px;padding-left: 0px; padding-right: 0px; padding-top: 0px; padding-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; margin-bottom: 0px; } 5819 .br_alabel.berocket_alabel_id_73120 > span { 5820 color: white;display: flex;position: relative;right: 0;text-align: center; 5821 } 5822 .br_alabel.berocket_alabel_id_73120 > span b { 5823 text-align: center;z-index: 100; 5824 } 5825 .br_alabel.berocket_alabel_id_73120 > span i.template-i-before { 5826 display: block;height: 0;position: absolute;width: 0; 5827 } 5828 .br_alabel.berocket_alabel_id_73120 > span i.template-i { 5829 background-color: transparent;display: block;line-height: 30px;position: absolute;z-index: 99; 5830 } 5831 .br_alabel.berocket_alabel_id_73120 > span i.template-i-after { 5832 display: block;height: 0;position: absolute;width: 0; 5833 } 5834 .br_alabel.berocket_alabel_id_73120 > span i.template-span-before { 5835 display: block;height: 0;position: absolute;width: 0; 5836 }div.br_alabel.berocket_alabel_id_73120{top:-10px;left:-10px;z-index:500;}div.br_alabel.berocket_alabel_id_73120 > span{height: 50px;width: 110px;background-color:#f23c0f;color:#ffffff;line-height:1.2em;font-size:16px;font-family: 'Alata';padding-left: 0px; padding-right: 0px; padding-top: 0px; padding-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; margin-bottom: 0px; } 5837 .br_alabel.berocket_alabel_id_34159 > span { 5838 color: white;display: flex;position: relative;right: 0;text-align: center; 5839 } 5840 .br_alabel.berocket_alabel_id_34159 > span b { 5841 text-align: center;z-index: 100; 5842 } 5843 .br_alabel.berocket_alabel_id_34159 > span i.template-i-before { 5844 display: block;height: 0;position: absolute;width: 0; 5845 } 5846 .br_alabel.berocket_alabel_id_34159 > span i.template-i { 5847 background-color: transparent;display: block;line-height: 30px;position: absolute;z-index: 99; 5848 } 5849 .br_alabel.berocket_alabel_id_34159 > span i.template-i-after { 5850 display: block;height: 0;position: absolute;width: 0; 5851 } 5852 .br_alabel.berocket_alabel_id_34159 > span i.template-span-before { 5853 display: block;height: 0;position: absolute;width: 0; 5854 }div.br_alabel.berocket_alabel_id_34159{top:-10px;left:-10px;z-index:500;}div.br_alabel.berocket_alabel_id_34159 > span{height: 50px;width: 77px;background-color:#000000;color:#ffffff;border-radius:3px;line-height:1.2em;font-size:14px;padding-left: 0px; padding-right: 0px; padding-top: 0px; padding-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; margin-bottom: 0px; } 5855 .br_alabel.berocket_alabel_id_115461 > span { 5856 color: white;display: flex;position: relative;right: 0;text-align: center; 5857 } 5858 .br_alabel.berocket_alabel_id_115461 > span b { 5859 text-align: center;z-index: 100; 5860 } 5861 .br_alabel.berocket_alabel_id_115461 > span i.template-i-before { 5862 display: block;height: 0;position: absolute;width: 0; 5863 } 5864 .br_alabel.berocket_alabel_id_115461 > span i.template-i { 5865 background-color: transparent;display: block;line-height: 30px;position: absolute;z-index: 99; 5866 } 5867 .br_alabel.berocket_alabel_id_115461 > span i.template-i-after { 5868 display: block;height: 0;position: absolute;width: 0; 5869 } 5870 .br_alabel.berocket_alabel_id_115461 > span i.template-span-before { 5871 display: block;height: 0;position: absolute;width: 0; 5872 }div.br_alabel.berocket_alabel_id_115461{top:-10px;left:-10px;z-index:500;}div.br_alabel.berocket_alabel_id_115461 > span{height: 36px;width: 110px;background-color:#5300c4;color:#ffffff;border-radius:3px;line-height:1em;font-size:24px;padding-left: 0px; padding-right: 0px; padding-top: 0px; padding-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; margin-bottom: 0px; } 5873 .br_alabel.berocket_alabel_id_65431 > span { 5874 color: white;display: flex;position: relative;right: 0;text-align: center; 5875 } 5876 .br_alabel.berocket_alabel_id_65431 > span b { 5877 text-align: center;z-index: 100; 5878 } 5879 .br_alabel.berocket_alabel_id_65431 > span i.template-i-before { 5880 display: block;height: 0;position: absolute;width: 0; 5881 } 5882 .br_alabel.berocket_alabel_id_65431 > span i.template-i { 5883 background-color: transparent;display: block;line-height: 30px;position: absolute;z-index: 99; 5884 } 5885 .br_alabel.berocket_alabel_id_65431 > span i.template-i-after { 5886 display: block;height: 0;position: absolute;width: 0; 5887 } 5888 .br_alabel.berocket_alabel_id_65431 > span i.template-span-before { 5889 display: block;height: 0;position: absolute;width: 0; 5890 }div.br_alabel.berocket_alabel_id_65431{top:-10px;left:-10px;z-index:500;}div.br_alabel.berocket_alabel_id_65431 > span{height: 30px;width: 110px;background-color:#012d47;color:#ffffff;line-height:1.2em;font-size:18px;font-family: 'Alata';padding-left: 0px; padding-right: 0px; padding-top: 0px; padding-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; margin-bottom: 0px; } 5891 .br_alabel.berocket_alabel_id_65464 > span { 5892 color: white;display: flex;position: relative;right: 0;text-align: center; 5893 } 5894 .br_alabel.berocket_alabel_id_65464 > span b { 5895 text-align: center;z-index: 100; 5896 } 5897 .br_alabel.berocket_alabel_id_65464 > span i.template-i-before { 5898 display: block;height: 0;position: absolute;width: 0; 5899 } 5900 .br_alabel.berocket_alabel_id_65464 > span i.template-i { 5901 background-color: transparent;display: block;line-height: 30px;position: absolute;z-index: 99; 5902 } 5903 .br_alabel.berocket_alabel_id_65464 > span i.template-i-after { 5904 display: block;height: 0;position: absolute;width: 0; 5905 } 5906 .br_alabel.berocket_alabel_id_65464 > span i.template-span-before { 5907 display: block;height: 0;position: absolute;width: 0; 5908 }div.br_alabel.berocket_alabel_id_65464{top:-10px;left:-10px;z-index:500;}div.br_alabel.berocket_alabel_id_65464 > span{height: 30px;width: 110px;background-color:#376d0c;color:#ffffff;line-height:1.2em;font-size:18px;font-family: 'Alata';padding-left: 0px; padding-right: 0px; padding-top: 0px; padding-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; margin-bottom: 0px; }</style>
5908<script type="text/javascript"> 5909 (function($) { 5910 $(document).on('ajaxSend', function(elm, xhr, settings) { 5911 // Si settings.data n'est pas une chaîne, on lui injecte un indexOf sécurisé 5912 // uniquement pour la durée de cette transaction. 5913 if (settings && settings.data && typeof settings.data !== 'string') { 5914 try { 5915 settings.data.indexOf = function() { return -1; }; 5916 } catch(e) { 5917 // Si l'objet est scellé, on ne fait rien pour éviter le 403 5918 } 5919 } 5920 }); 5921 })(jQuery); 5922 </script>
5922 5923
5923<script type="speculationrules"> 5924{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/*"},{"not":{"href_matches":["/wp-*.php","/wp-admin/*","/wp-content/uploads/*","/wp-content/*","/wp-content/plugins/*","/wp-content/themes/blocksy/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]} 5925</script>
5925 5926 <style> 5927 /* Phrase clonée pour lâonglet "à partir dâune image" */ 5928 .jdmc-ai-styles-examples-edit { 5929 margin: 4px 0 8px; 5930 font-size: 13px; 5931 font-weight: 600; 5932 color: #333; 5933 } 5934 5935 /* Traduction du label du bouton fichier (override du ::before FR) */ 5936 input[type="file"].jdmc-ai-upload::before, 5937 input[type="file"].jdmc-ai-direct-upload::before { 5938 content: "ð Choisir une photo / image"; 5939 } 5940 </style> 5941 5942
5942<script> 5943 (function($){ 5944 $(function(){ 5945 5946 var lang = window.jdmcAiLang || "fr"; 5947 var t = {"direct_title":"J\u2019ai d\u00e9j\u00e0 ma photo ou image","direct_text":"Si vous avez d\u00e9j\u00e0 une image \u00e0 reproduire telle quelle, importez-la simplement ici.","forme_title":"Forme des diamants","dimensions_title":"Dimensions de la toile","dimensions_title_ia":"Dimensions de la toile","formats_square":"Formats carr\u00e9s","formats_portrait":"Formats portrait","formats_landscape":"Formats paysage","formats_square_ia":"Formats carr\u00e9s (IA)","formats_portrait_ia":"Formats portrait (IA)","formats_landscape_ia":"Formats paysage (IA)","ai_title":"Je cr\u00e9e ou retouche mon image avec l\u2019IA","ai_subtitle":"Choisissez si vous partez d\u2019un texte ou d\u2019une image, puis s\u00e9lectionnez un style.","tab_prompt":"\u00c0 partir d\u2019un texte","tab_edit":"\u00c0 partir d\u2019une image","prompt_title":"Je d\u00e9cris l'image que je souhaite cr\u00e9er","prompt_placeholder":"Ex : Un chat blanc sur un coussin bleu","edit_optional":"(Facultatif) Faire une retouche \/ modification","edit_title":"Je demande une retouche \/ modification","edit_placeholder":"Ex : Supprime l\u2019arbre et \u00e9claircit le ciel","style_transform_title":"Je transforme le style de mon image","style_main_title":"Je choisis le style de mon image","style_examples":"Exemples avec \"chien et chat dans un panier\" :","style_none":"Ne pas modifier","style_realistic":"Photo r\u00e9aliste","style_galaxy":"Fluo","style_fairytale":"F\u00e9erique","style_manga":"Manga","style_watercolor":"Aquarelle","style_cartoon":"Dessin anim\u00e9","style_abstract":"Abstrait","recap_main_title":"\u2714 Je valide mon diamond painting","recap_forme_label":"Forme des diamants :","recap_taille_label":"Taille du diamond painting :","recap_style_label":"Style d\u2019image :","recap_image_label":"Image :","edit_upload_title":"Je choisis la photo \/ image \u00e0 retoucher","edit_image_title_dp":"Photo \/ image \u00e0 transformer en DP","upload_in_progress":"T\u00e9l\u00e9versement de votre image en cours...","upload_store_success":"Image import\u00e9e avec succ\u00e8s. Elle sera utilis\u00e9e comme base pour la retouche IA.","crop_cancel":"Annuler","crop_apply":"Valider le recadrage","crop_in_progress":"Recadrage en cours\u2026","btn_add_to_cart":"Ajouter au panier","btn_crop":"\u2702\ufe0f Recadrer l\u2019image","remove_image":"\ud83d\uddd1\ufe0f Supprimer cette image","separator_or":"\u2014 OU \u2014","help_formats":"Formats accept\u00e9s : JPG ou PNG (max ~64 Mo).","select_choose":"Choisir\u2026","btn_generate":"G\u00e9n\u00e9rer l\u2019image avec l\u2019IA","file_button":"\ud83d\udcc1 Choisir une photo \/ image","generated_images_title":"Mes images g\u00e9n\u00e9r\u00e9es :","generated_preview_title":"Aper\u00e7u de l\u2019image g\u00e9n\u00e9r\u00e9e :"} || {}; 5948 5949 // ========================== 5950 // 1) Messages d'erreur/succès par langue 5951 // ========================== 5952 var msgByLang = { 5953 "fr": { 5954 select_size: "Veuillez sélectionner la dimension de la toile ci-dessus", 5955 generating: "Génération en cours, cela peut prendre un peu de temps...", 5956 prompt_required: "Merci de décrire un minimum votre image.", 5957 prompt_empty: "Le prompt est vide après traitement. Merci de le compléter.", 5958 edit_no_image: "Merci de choisir une photo à transformer.", 5959 edit_prompt_empty: "Le prompt est vide après traitement. Merci de sélectionner un style ou dâajouter quelques mots.", 5960 upload_wrong_type: "Merci de sélectionner un fichier image (JPG ou PNG).", 5961 upload_too_big: "Fichier trop volumineux (max ~64 Mo).", 5962 upload_too_big_compress: "Fichier trop volumineux (max ~64 Mo). Merci de le compresser un peu.", 5963 upload_in_progress: "Téléversement de votre image en cours...", 5964 upload_store_error: "Erreur lors de lâenregistrement de votre image.", 5965 upload_store_incomplete: "Réponse incomplète lors de lâenregistrement de lâimage.", 5966 upload_network_error: "Erreur réseau lors de lâenvoi de votre image.", 5967 upload_process_error: "Erreur lors du traitement de lâimage.", 5968 upload_cannot_read: "Impossible de lire cette image.", 5969 upload_read_error: "Erreur de lecture du fichier.", 5970 upload_success_direct: "Image importée avec succès. Elle sera utilisée pour votre diamond painting.", 5971 upload_success_edit: "Image importée avec succès. Elle sera utilisée comme base pour la retouche IA.", 5972 ai_success: "Image générée avec succès. Vous pouvez maintenant ajouter le produit au panier.", 5973 error_prefix: "Erreur : ", 5974 ajax_error_prefix: "Erreur AJAX" 5975 }, 5976 "en": { 5977 select_size: "Please select the canvas size above.", 5978 generating: "Generating the image, this may take a little while...", 5979 prompt_required: "Please briefly describe the image you want.", 5980 prompt_empty: "The prompt is empty after processing. Please add a bit more detail.", 5981 edit_no_image: "Please choose a photo to transform.", 5982 edit_prompt_empty: "The prompt is empty after processing. Please select a style or add a few words.", 5983 upload_wrong_type: "Please select an image file (JPG or PNG).", 5984 upload_too_big: "File too large (max ~64 MB).",
5985 upload_too_big_compress: "File too large (max ~64 MB). Please compress it a bit.", 5986 upload_in_progress: "Uploading your image...", 5987 upload_store_error: "Error while saving your image.", 5988 upload_store_incomplete: "Incomplete response while saving your image.", 5989 upload_network_error: "Network error while sending your image.", 5990 upload_process_error: "Error while processing the image.", 5991 upload_cannot_read: "Unable to read this image.", 5992 upload_read_error: "File read error.", 5993 upload_success_direct: "Image uploaded successfully. It will be used for your diamond painting.", 5994 upload_success_edit: "Image uploaded successfully. It will be used as the base for the AI edit.", 5995 ai_success: "Image generated successfully. You can now add the product to the cart.", 5996 error_prefix: "Error: ", 5997 ajax_error_prefix: "AJAX error", 5998 crop_title: "Crop image", 5999 crop_cancel: "Cancel", 6000 crop_apply: "Apply crop", 6001 crop_in_progress: "Cropping in progressâ¦" 6002 }, 6003 "es": { 6004 select_size: "Selecciona el tamaño del lienzo más arriba.", 6005 generating: "Generando la imagen, esto puede tardar un poco...", 6006 prompt_required: "Por favor describe un mÃnimo la imagen que deseas.", 6007 prompt_empty: "El prompt queda vacÃo después del procesamiento. Añade un poco más de detalle.", 6008 edit_no_image: "Selecciona una foto que quieras transformar.", 6009 edit_prompt_empty: "El prompt queda vacÃo después del procesamiento. Elige un estilo o añade algunas palabras.", 6010 upload_wrong_type: "Selecciona un archivo de imagen (JPG o PNG).", 6011 upload_too_big: "Archivo demasiado grande (máx. ~64 MB).", 6012 upload_too_big_compress: "Archivo demasiado grande (máx. ~64 MB). Por favor, comprÃmelo un poco.", 6013 upload_in_progress: "Subiendo tu imagen...", 6014 upload_store_error: "Error al guardar tu imagen.", 6015 upload_store_incomplete: "Respuesta incompleta al guardar la imagen.", 6016 upload_network_error: "Error de red al enviar tu imagen.", 6017 upload_process_error: "Error al procesar la imagen.", 6018 upload_cannot_read: "No se puede leer esta imagen.", 6019 upload_read_error: "Error al leer el archivo.", 6020 upload_success_direct: "Imagen subida correctamente. Se utilizará para tu diamond painting.", 6021 upload_success_edit: "Imagen subida correctamente. Se utilizará como base para la edición con IA.", 6022 ai_success: "Imagen generada correctamente. Ahora puedes añadir el producto al carrito.", 6023 error_prefix: "Error: ", 6024 ajax_error_prefix: "Error AJAX" 6025 }, 6026 "de": { 6027 select_size: "Bitte wähle oben die LeinwandgröÃe aus.", 6028 generating: "Bild wird generiert, das kann einen Moment dauern...", 6029 prompt_required: "Bitte beschreibe kurz das gewünschte Bild.", 6030 prompt_empty: "Die Eingabe ist nach der Verarbeitung leer. Bitte ergänze noch ein paar Details.", 6031 edit_no_image: "Bitte wähle ein Foto, das bearbeitet werden soll.", 6032 edit_prompt_empty: "Die Eingabe ist nach der Verarbeitung leer. Bitte wähle einen Stil oder füge ein paar Worte hinzu.", 6033 upload_wrong_type: "Bitte wähle eine Bilddatei (JPG oder PNG).", 6034 upload_too_big: "Datei zu groà (max. ~64 MB).", 6035 upload_too_big_compress: "Datei zu groà (max. ~64 MB). Bitte komprimiere sie etwas.", 6036 upload_in_progress: "Dein Bild wird hochgeladen...", 6037 upload_store_error: "Fehler beim Speichern deines Bildes.", 6038 upload_store_incomplete: "Unvollständige Antwort beim Speichern des Bildes.", 6039 upload_network_error: "Netzwerkfehler beim Senden deines Bildes.", 6040 upload_process_error: "Fehler bei der Verarbeitung des Bildes.",
6041 upload_cannot_read: "Dieses Bild kann nicht gelesen werden.", 6042 upload_read_error: "Fehler beim Lesen der Datei.", 6043 upload_success_direct: "Bild erfolgreich hochgeladen. Es wird für dein Diamond Painting verwendet.", 6044 upload_success_edit: "Bild erfolgreich hochgeladen. Es wird als Basis für die KI-Bearbeitung verwendet.", 6045 ai_success: "Bild erfolgreich generiert. Du kannst das Produkt jetzt in den Warenkorb legen.", 6046 error_prefix: "Fehler: ", 6047 ajax_error_prefix: "AJAX-Fehler" 6048 }, 6049 "it": { 6050 select_size: "Seleziona la dimensione della tela qui sopra.", 6051 generating: "Generazione dellâimmagine in corso, potrebbe volerci un momento...", 6052 prompt_required: "Per favore descrivi brevemente lâimmagine che desideri.", 6053 prompt_empty: "Il prompt risulta vuoto dopo lâelaborazione. Aggiungi qualche dettaglio in più.", 6054 edit_no_image: "Seleziona una foto da trasformare.", 6055 edit_prompt_empty: "Il prompt risulta vuoto dopo lâelaborazione. Seleziona uno stile o aggiungi qualche parola.", 6056 upload_wrong_type: "Seleziona un file immagine (JPG o PNG).", 6057 upload_too_big: "File troppo grande (max ~64 MB).", 6058 upload_too_big_compress: "File troppo grande (max ~64 MB). Per favore comprimilo un poâ.", 6059 upload_in_progress: "Caricamento dellâimmagine in corso...", 6060 upload_store_error: "Errore durante il salvataggio dellâimmagine.", 6061 upload_store_incomplete: "Risposta incompleta durante il salvataggio dellâimmagine.", 6062 upload_network_error: "Errore di rete durante lâinvio dellâimmagine.", 6063 upload_process_error: "Errore durante lâelaborazione dellâimmagine.", 6064 upload_cannot_read: "Impossibile leggere questa immagine.", 6065 upload_read_error: "Errore di lettura del file.", 6066 upload_success_direct: "Immagine caricata con successo. Verrà utilizzata per il tuo diamond painting.", 6067 upload_success_edit: "Immagine caricata con successo. Verrà utilizzata come base per la modifica con IA.", 6068 ai_success: "Immagine generata con successo. Ora puoi aggiungere il prodotto al carrello.", 6069 error_prefix: "Errore: ", 6070 ajax_error_prefix: "Errore AJAX" 6071 }, 6072 "nl": { 6073 select_size: "Kies hierboven de grootte van het canvas.", 6074 generating: "Beeld wordt gegenereerd, dit kan even duren...", 6075 prompt_required: "Beschrijf kort welke afbeelding je wilt.", 6076 prompt_empty: "De prompt is na verwerking leeg. Voeg wat extra details toe.", 6077 edit_no_image: "Kies een foto die je wilt transformeren.", 6078 edit_prompt_empty: "De prompt is na verwerking leeg. Kies een stijl of voeg enkele woorden toe.", 6079 upload_wrong_type: "Kies een afbeeldingsbestand (JPG of PNG).", 6080 upload_too_big: "Bestand te groot (max. ~64 MB).", 6081 upload_too_big_compress: "Bestand te groot (max. ~64 MB). Comprimeer het bestand een beetje.", 6082 upload_in_progress: "Je afbeelding wordt geüpload...", 6083 upload_store_error: "Fout bij het opslaan van je afbeelding.", 6084 upload_store_incomplete: "Onvolledig antwoord bij het opslaan van de afbeelding.", 6085 upload_network_error: "Netwerkfout bij het versturen van je afbeelding.", 6086 upload_process_error: "Fout bij het verwerken van de afbeelding.", 6087 upload_cannot_read: "Deze afbeelding kan niet worden gelezen.", 6088 upload_read_error: "Fout bij het lezen van het bestand.", 6089 upload_success_direct: "Afbeelding succesvol geüpload. Deze wordt gebruikt voor je diamond painting.", 6090 upload_success_edit: "Afbeelding succesvol geüpload. Deze wordt gebruikt als basis voor de AI-bewerking.", 6091 ai_success: "Afbeelding succesvol gegenereerd. Je kunt het product nu aan de winkelwagen toevoegen.", 6092 error_prefix: "Fout: ", 6093 ajax_error_prefix: "AJAX-fout" 6094 }, 6095 "pt-pt": { 6096 select_size: "Selecione o tamanho da tela acima.", 6097 generating: "A gerar a imagem, isto pode demorar um pouco...", 6098 prompt_required: "Descreva, pelo menos brevemente, a imagem que pretende.", 6099 prompt_empty: "O prompt fica vazio após o processamento. Adicione mais alguns detalhes.", 6100 edit_no_image: "Escolha uma foto para transformar.", 6101 edit_prompt_empty: "O prompt fica vazio após o processamento. Selecione um estilo ou adicione algumas palavras.", 6102 upload_wrong_type: "Selecione um ficheiro de imagem (JPG ou PNG).", 6103 upload_too_big: "Ficheiro demasiado grande (máx. ~64 MB).",
6104 upload_too_big_compress: "Ficheiro demasiado grande (máx. ~64 MB). Por favor, comprima-o um pouco.", 6105 upload_in_progress: "A enviar a sua imagem...", 6106 upload_store_error: "Erro ao guardar a sua imagem.", 6107 upload_store_incomplete: "Resposta incompleta ao guardar a imagem.", 6108 upload_network_error: "Erro de rede ao enviar a sua imagem.", 6109 upload_process_error: "Erro ao processar a imagem.", 6110 upload_cannot_read: "Não foi possÃvel ler esta imagem.", 6111 upload_read_error: "Erro ao ler o ficheiro.", 6112 upload_success_direct: "Imagem enviada com sucesso. Será utilizada para o seu diamond painting.", 6113 upload_success_edit: "Imagem enviada com sucesso. Será utilizada como base para a edição com IA.", 6114 ai_success: "Imagem gerada com sucesso. Já pode adicionar o produto ao carrinho.", 6115 error_prefix: "Erro: ", 6116 ajax_error_prefix: "Erro AJAX" 6117 }, 6118 "sv": { 6119 select_size: "Välj dukstorlek här ovan.", 6120 generating: "Bild genereras, detta kan ta en liten stund...", 6121 prompt_required: "Beskriv kort vilken bild du vill ha.", 6122 prompt_empty: "Prompten är tom efter bearbetning. Lägg till lite mer detaljer.", 6123 edit_no_image: "Välj ett foto att omvandla.", 6124 edit_prompt_empty: "Prompten är tom efter bearbetning. Välj en stil eller skriv nÃ¥gra ord.", 6125 upload_wrong_type: "Välj en bildfil (JPG eller PNG).", 6126 upload_too_big: "Filen är för stor (max ~64 MB).", 6127 upload_too_big_compress: "Filen är för stor (max ~64 MB). Komprimera den gärna lite.", 6128 upload_in_progress: "Din bild laddas upp...", 6129 upload_store_error: "Fel vid sparande av din bild.", 6130 upload_store_incomplete: "Ofullständigt svar när bilden skulle sparas.", 6131 upload_network_error: "Nätverksfel när din bild skickades.", 6132 upload_process_error: "Fel vid bearbetning av bilden.", 6133 upload_cannot_read: "Det gÃ¥r inte att läsa den här bilden.", 6134 upload_read_error: "Fel vid läsning av filen.", 6135 upload_success_direct: "Bilden har laddats upp. Den kommer att användas för din diamond painting.", 6136 upload_success_edit: "Bilden har laddats upp. Den kommer att användas som underlag för AI-redigeringen.", 6137 ai_success: "Bilden har genererats. Du kan nu lägga produkten i varukorgen.", 6138 error_prefix: "Fel: ", 6139 ajax_error_prefix: "AJAX-fel" 6140 }, 6141 "bg": { 6142 select_size: "ÐолÑ, избеÑеÑе ÑÐ°Ð·Ð¼ÐµÑ Ð½Ð° плаÑноÑо по-гоÑе.", 6143 generating: "ÐзобÑажениеÑо Ñе генеÑиÑа, Ñова може да оÑнеме малко вÑеме...", 6144 prompt_required: "ÐолÑ, опиÑеÑе накÑаÑко желаноÑо изобÑажение.", 6145 prompt_empty: "ÐодадениÑÑ ÑекÑÑ Ðµ пÑазен Ñлед обÑабоÑка. ÐобавеÑе оÑе малко деÑайли.", 6146 edit_no_image: "ÐолÑ, избеÑеÑе Ñнимка за пÑеобÑазÑване.", 6147 edit_prompt_empty: "ÐодадениÑÑ ÑекÑÑ Ðµ пÑазен Ñлед обÑабоÑка. ÐзбеÑеÑе ÑÑил или добавеÑе нÑколко дÑми.", 6148 upload_wrong_type: "ÐолÑ, избеÑеÑе Ñайл Ñ Ð¸Ð·Ð¾Ð±Ñажение (JPG или PNG).", 6149 upload_too_big: "ФайлÑÑ Ðµ ÑвÑÑде голÑм (макÑ. ~64 MB).", 6150 upload_too_big_compress: "ФайлÑÑ Ðµ ÑвÑÑде голÑм (макÑ. ~64 MB). ÐолÑ, компÑеÑиÑайÑе го леко.", 6151 upload_in_progress: "ÐаÑеÑо изобÑажение Ñе каÑва...", 6152 upload_store_error: "ÐÑеÑка пÑи запазване на изобÑажениеÑо.", 6153 upload_store_incomplete: "ÐепÑлен оÑÐ³Ð¾Ð²Ð¾Ñ Ð¿Ñи запазване на изобÑажениеÑо.", 6154 upload_network_error: "ÐÑежова гÑеÑка пÑи изпÑаÑане на изобÑажениеÑо.", 6155 upload_process_error: "ÐÑеÑка пÑи обÑабоÑкаÑа на изобÑажениеÑо.", 6156 upload_cannot_read: "Това изобÑажение не може да бÑде пÑоÑеÑено.", 6157 upload_read_error: "ÐÑеÑка пÑи ÑеÑене на Ñайла.", 6158 upload_success_direct: "ÐзобÑажениеÑо беÑе каÑено ÑÑпеÑно. То Ñе бÑде използвано за ваÑеÑо diamond painting плаÑно.", 6159 upload_success_edit: "ÐзобÑажениеÑо беÑе каÑено ÑÑпеÑно. То Ñе бÑде използвано каÑо база за AI ÑедакÑиÑÑа.", 6160 ai_success: "ÐзобÑажениеÑо беÑе ÑÑпеÑно генеÑиÑано. Сега можеÑе да добавиÑе пÑодÑкÑа в колиÑкаÑа.", 6161 error_prefix: "ÐÑеÑка: ", 6162 ajax_error_prefix: "AJAX гÑеÑка" 6163 }, 6164 "da": { 6165 select_size: "Vælg lærredsstørrelse ovenfor.", 6166 generating: "Billedet genereres, dette kan tage et øjeblik...", 6167 prompt_required: "Beskriv kort det billede, du ønsker.", 6168 prompt_empty: "Prompten er tom efter behandling. Tilføj gerne lidt flere detaljer.", 6169 edit_no_image: "Vælg et foto, der skal transformeres.", 6170 edit_prompt_empty: "Prompten er tom efter behandling. Vælg en stil eller tilføj et par ord.", 6171 upload_wrong_type: "Vælg en billedfil (JPG eller PNG).", 6172 upload_too_big: "Filen er for stor (maks. ~64 MB).",
6173 upload_too_big_compress: "Filen er for stor (maks. ~64 MB). Komprimer den venligst lidt.", 6174 upload_in_progress: "Dit billede uploades...", 6175 upload_store_error: "Fejl under lagring af dit billede.", 6176 upload_store_incomplete: "Ufuldstændigt svar under lagring af billedet.", 6177 upload_network_error: "Netværksfejl under afsendelse af dit billede.", 6178 upload_process_error: "Fejl under behandling af billedet.", 6179 upload_cannot_read: "Dette billede kan ikke læses.", 6180 upload_read_error: "Fejl ved læsning af filen.", 6181 upload_success_direct: "Billedet er uploadet. Det vil blive brugt til dit diamond painting.", 6182 upload_success_edit: "Billedet er uploadet. Det vil blive brugt som grundlag for AI-redigeringen.", 6183 ai_success: "Billedet er genereret. Du kan nu lægge produktet i kurven.", 6184 error_prefix: "Fejl: ", 6185 ajax_error_prefix: "AJAX-fejl" 6186 }, 6187 "el": { 6188 select_size: "ΠαÏÎ±ÎºÎ±Î»Ï ÎµÏιλÎξÏε Ïο μÎÎ³ÎµÎ¸Î¿Ï ÏÎ¿Ï ÎºÎ±Î¼Î²Î¬ ÏαÏαÏάνÏ.", 6189 generating: "ΠεικÏνα Î´Î·Î¼Î¹Î¿Ï ÏγείÏαι, Î±Ï ÏÏ Î¼ÏοÏεί να ÏάÏει λίγο ÏÏÏνο...", 6190 prompt_required: "ΠεÏιγÏάÏÏε ÏÏνÏομα Ïην εικÏνα ÏÎ¿Ï Î¸ÎλεÏε.", 6191 prompt_empty: "Το κείμενο (prompt) είναι ÎºÎµÎ½Ï Î¼ÎµÏά Ïην εÏεξεÏγαÏία. Î ÏοÏθÎÏÏε Î»Î¯Î³ÎµÏ ÏεÏιÏÏÏÏεÏÎµÏ Î»ÎµÏÏομÎÏειεÏ.", 6192 edit_no_image: "ÎÏιλÎξÏε μια ÏÏÏογÏαÏία για μεÏαÏÏοÏή.", 6193 edit_prompt_empty: "Το κείμενο (prompt) είναι ÎºÎµÎ½Ï Î¼ÎµÏά Ïην εÏεξεÏγαÏία. ÎÏιλÎξÏε Îνα ÏÏÏ Î» ή ÏÏοÏθÎÏÏε μεÏικÎÏ Î»ÎξειÏ.", 6194 upload_wrong_type: "ÎÏιλÎξÏε Îνα αÏÏείο εικÏÎ½Î±Ï (JPG ή PNG).", 6195 upload_too_big: "Το αÏÏείο είναι ÏÎ¿Î»Ï Î¼ÎµÎ³Î¬Î»Î¿ (μÎγ. ~64 MB).", 6196 upload_too_big_compress: "Το αÏÏείο είναι ÏÎ¿Î»Ï Î¼ÎµÎ³Î¬Î»Î¿ (μÎγ. ~64 MB). ΠαÏÎ±ÎºÎ±Î»Ï ÏÏ Î¼ÏιÎÏÏε Ïο λίγο.", 6197 upload_in_progress: "ΠεικÏνα ÏÎ±Ï Î±Î½ÎµÎ²Î±Î¯Î½ÎµÎ¹...", 6198 upload_store_error: "ΣÏάλμα καÏά Ïην αÏÎ¿Î¸Î®ÎºÎµÏ Ïη ÏÎ·Ï ÎµÎ¹ÎºÏναÏ.", 6199 upload_store_incomplete: "ÎλλιÏÎ®Ï Î±ÏάνÏηÏη καÏά Ïην αÏÎ¿Î¸Î®ÎºÎµÏ Ïη ÏÎ·Ï ÎµÎ¹ÎºÏναÏ.", 6200 upload_network_error: "ΣÏάλμα δικÏÏÎ¿Ï ÎºÎ±Ïά Ïην αÏοÏÏολή ÏÎ·Ï ÎµÎ¹ÎºÏναÏ.", 6201 upload_process_error: "ΣÏάλμα καÏά Ïην εÏεξεÏγαÏία ÏÎ·Ï ÎµÎ¹ÎºÏναÏ.", 6202 upload_cannot_read: "Îεν είναι Î´Ï Î½Î±Ïή η ανάγνÏÏη Î±Ï ÏÎ®Ï ÏÎ·Ï ÎµÎ¹ÎºÏναÏ.", 6203 upload_read_error: "ΣÏάλμα καÏά Ïην ανάγνÏÏη ÏÎ¿Ï Î±ÏÏÎµÎ¯Î¿Ï .", 6204 upload_success_direct: "ΠεικÏνα ανÎβηκε με εÏιÏÏ Ïία. Îα ÏÏηÏιμοÏοιηθεί για Ïο diamond painting ÏαÏ.", 6205 upload_success_edit: "ΠεικÏνα ανÎβηκε με εÏιÏÏ Ïία. Îα ÏÏηÏιμοÏοιηθεί ÏÏ Î²Î¬Ïη για Ïην εÏεξεÏγαÏία με ΤÎ.", 6206 ai_success: "ΠεικÏνα Î´Î·Î¼Î¹Î¿Ï Ïγήθηκε με εÏιÏÏ Ïία. ÎÏοÏείÏε ÏÏÏα να ÏÏοÏθÎÏεÏε Ïο ÏÏοÏÏν ÏÏο καλάθι.", 6207 error_prefix: "ΣÏάλμα: ", 6208 ajax_error_prefix: "ΣÏάλμα AJAX" 6209 }, 6210 "hu": { 6211 select_size: "Kérjük, válassz vászonméretet fentebb.", 6212 generating: "A kép generálása folyamatban van, ez eltarthat egy kis ideig...", 6213 prompt_required: "Kérjük, röviden Ãrd le, milyen képet szeretnél.", 6214 prompt_empty: "A prompt az átalakÃtás után üres. Adj hozzá még néhány részletet.", 6215 edit_no_image: "Válassz egy fotót az átalakÃtáshoz.", 6216 edit_prompt_empty: "A prompt az átalakÃtás után üres. Válassz stÃlust vagy Ãrj néhány szót.", 6217 upload_wrong_type: "Kérjük, válassz egy képfájlt (JPG vagy PNG).", 6218 upload_too_big: "A fájl túl nagy (max. ~64 MB).",
6219 upload_too_big_compress: "A fájl túl nagy (max. ~64 MB). Kérjük, tömörÃtsd egy kicsit.", 6220 upload_in_progress: "A képed feltöltése folyamatban...", 6221 upload_store_error: "Hiba történt a kép mentése közben.", 6222 upload_store_incomplete: "Hiányos válasz a kép mentésekor.", 6223 upload_network_error: "Hálózati hiba a kép küldése közben.", 6224 upload_process_error: "Hiba a kép feldolgozása közben.", 6225 upload_cannot_read: "Ez a kép nem olvasható.", 6226 upload_read_error: "Hiba a fájl olvasása közben.", 6227 upload_success_direct: "A kép sikeresen feltöltve. Felhasználjuk a diamond paintinghez.", 6228 upload_success_edit: "A kép sikeresen feltöltve. Alapként fogjuk használni az MI-szerkesztéshez.", 6229 ai_success: "A kép sikeresen generálva. Most már a kosárhoz adhatod a terméket.", 6230 error_prefix: "Hiba: ", 6231 ajax_error_prefix: "AJAX hiba" 6232 }, 6233 "no": { 6234 select_size: "Velg lerretsstørrelse ovenfor.", 6235 generating: "Bildet genereres, dette kan ta litt tid...", 6236 prompt_required: "Beskriv kort hvilket bilde du ønsker.", 6237 prompt_empty: "Prompten er tom etter behandling. Legg til litt mer detaljer.", 6238 edit_no_image: "Velg et bilde du vil forandre.", 6239 edit_prompt_empty: "Prompten er tom etter behandling. Velg en stil eller skriv noen fÃ¥ ord.", 6240 upload_wrong_type: "Velg en bildefil (JPG eller PNG).", 6241 upload_too_big: "Filen er for stor (maks. ~64 MB).", 6242 upload_too_big_compress: "Filen er for stor (maks. ~64 MB). Komprimer den gjerne litt.", 6243 upload_in_progress: "Bildet ditt lastes opp...", 6244 upload_store_error: "Feil ved lagring av bildet ditt.", 6245 upload_store_incomplete: "Ufullstendig svar ved lagring av bildet.", 6246 upload_network_error: "Nettverksfeil ved sending av bildet ditt.", 6247 upload_process_error: "Feil ved behandling av bildet.", 6248 upload_cannot_read: "Det er ikke mulig Ã¥ lese dette bildet.", 6249 upload_read_error: "Feil ved lesing av filen.", 6250 upload_success_direct: "Bildet er lastet opp. Det vil bli brukt til diamond painting-bildet ditt.", 6251 upload_success_edit: "Bildet er lastet opp. Det vil bli brukt som utgangspunkt for KI-redigeringen.", 6252 ai_success: "Bildet er generert. Du kan nÃ¥ legge produktet i handlekurven.",
6253 error_prefix: "Feil: ", 6254 ajax_error_prefix: "AJAX-feil" 6255 }, 6256 "pl": { 6257 select_size: "Wybierz powyżej rozmiar pÅótna.", 6258 generating: "Trwa generowanie obrazu, to może chwilÄ potrwaÄ...", 6259 prompt_required: "Krótko opisz obraz, który chcesz otrzymaÄ.", 6260 prompt_empty: "Po przetworzeniu prompt jest pusty. Dodaj trochÄ wiÄcej szczegóÅów.", 6261 edit_no_image: "Wybierz zdjÄcie do przeksztaÅcenia.", 6262 edit_prompt_empty: "Po przetworzeniu prompt jest pusty. Wybierz styl lub dodaj kilka sÅów.", 6263 upload_wrong_type: "Wybierz plik graficzny (JPG lub PNG).", 6264 upload_too_big: "Plik jest zbyt duży (maks. ~64 MB).", 6265 upload_too_big_compress: "Plik jest zbyt duży (maks. ~64 MB). Skompresuj go proszÄ.", 6266 upload_in_progress: "Twoje zdjÄcie jest przesyÅane...", 6267 upload_store_error: "BÅÄ d podczas zapisywania obrazu.", 6268 upload_store_incomplete: "Niekompletna odpowiedź podczas zapisywania obrazu.", 6269 upload_network_error: "BÅÄ d sieci podczas wysyÅania obrazu.", 6270 upload_process_error: "BÅÄ d podczas przetwarzania obrazu.", 6271 upload_cannot_read: "Nie można odczytaÄ tego obrazu.", 6272 upload_read_error: "BÅÄ d podczas odczytu pliku.", 6273 upload_success_direct: "Obraz zostaÅ pomyÅlnie przesÅany. Zostanie użyty do Twojego diamond painting.", 6274 upload_success_edit: "Obraz zostaÅ pomyÅlnie przesÅany. Zostanie użyty jako podstawa do edycji AI.", 6275 ai_success: "Obraz zostaÅ wygenerowany. Możesz teraz dodaÄ produkt do koszyka.", 6276 error_prefix: "BÅÄ d: ", 6277 ajax_error_prefix: "BÅÄ d AJAX" 6278 }, 6279 "ro": { 6280 select_size: "SelecteazÄ dimensiunea pânzei de mai sus.", 6281 generating: "Imaginea este generatÄ, acest proces poate dura puÈin...", 6282 prompt_required: "Te rugÄm sÄ descrii pe scurt imaginea doritÄ.", 6283 prompt_empty: "Promptul este gol dupÄ procesare. AdaugÄ câteva detalii în plus.", 6284 edit_no_image: "Alege o fotografie pe care vrei sÄ o transformi.", 6285 edit_prompt_empty: "Promptul este gol dupÄ procesare. SelecteazÄ un stil sau adaugÄ câteva cuvinte.", 6286 upload_wrong_type: "SelecteazÄ un fiÈier de imagine (JPG sau PNG).", 6287 upload_too_big: "FiÈier prea mare (max. ~64 MB).", 6288 upload_too_big_compress: "FiÈier prea mare (max. ~64 MB). Te rugÄm sÄ Ã®l comprimi puÈin.", 6289 upload_in_progress: "Imaginea ta este încÄrcatÄ...", 6290 upload_store_error: "Eroare la salvarea imaginii.", 6291 upload_store_incomplete: "RÄspuns incomplet la salvarea imaginii.", 6292 upload_network_error: "Eroare de reÈea la trimiterea imaginii.", 6293 upload_process_error: "Eroare la procesarea imaginii.", 6294 upload_cannot_read: "AceastÄ imagine nu poate fi cititÄ.", 6295 upload_read_error: "Eroare la citirea fiÈierului.", 6296 upload_success_direct: "Imaginea a fost încÄrcatÄ cu succes. Va fi folositÄ pentru diamond painting-ul tÄu.", 6297 upload_success_edit: "Imaginea a fost încÄrcatÄ cu succes. Va fi folositÄ ca bazÄ pentru editarea cu AI.", 6298 ai_success: "Imaginea a fost generatÄ cu succes. Acum poÈi adÄuga produsul în coÈ.", 6299 error_prefix: "Eroare: ", 6300 ajax_error_prefix: "Eroare AJAX" 6301 } 6302 }; 6303 6304 var m = msgByLang[lang] || msgByLang["en"] || {}; 6305 6306 $('html').addClass('jdmc-lang-' + lang); 6307 6308 // ========================== 6309 // 2) Traduction des libellés statiques (comme avant) 6310 // ========================== 6311 $('.jdmc-ai-wrapper').each(function(){ 6312 var $w = $(this); 6313 6314 if (t.direct_title) { 6315 $w.find('.jdmc-ai-direct-title').text(t.direct_title); 6316 } 6317 if (t.direct_text) { 6318 $w.find('.jdmc-ai-direct-text').text(t.direct_text); 6319 } 6320 6321 if (t.forme_title) { 6322 $w.find('.jdmc-ai-forme-wrapper-direct .jdmc-ai-forme-title').text(t.forme_title); 6323 $w.find('.jdmc-ai-forme-wrapper-ia .jdmc-ai-forme-title').text(t.forme_title); 6324 } 6325 6326 if (t.dimensions_title) { 6327 $w.find('.jdmc-ai-dimensions-wrapper-direct .jdmc-ai-dimensions-title').text(t.dimensions_title); 6328 } 6329 if (t.dimensions_title_ia) { 6330 $w.find('.jdmc-ai-dimensions-wrapper-ia .jdmc-ai-dimensions-title').text(t.dimensions_title_ia); 6331 } 6332 6333 var $zonesDirect = $w.find('.jdmc-ai-size-zones-direct .jdmc-ai-size-zone-title'); 6334 if ($zonesDirect.length >= 3) { 6335 if (t.formats_square) $($zonesDirect.get(0)).text(t.formats_square); 6336 if (t.formats_portrait) $($zonesDirect.get(1)).text(t.formats_portrait); 6337 if (t.formats_landscape)$($zonesDirect.get(2)).text(t.formats_landscape); 6338 } 6339
6340 var $zonesIa = $w.find('.jdmc-ai-size-zones-ia .jdmc-ai-size-zone-title'); 6341 if ($zonesIa.length >= 3) { 6342 if (t.formats_square_ia) $($zonesIa.get(0)).text(t.formats_square_ia); 6343 if (t.formats_portrait_ia) $($zonesIa.get(1)).text(t.formats_portrait_ia); 6344 if (t.formats_landscape_ia)$($zonesIa.get(2)).text(t.formats_landscape_ia); 6345 } 6346 6347 if (t.ai_title) { 6348 $w.find('.jdmc-ai-ai-block .jdmc-ai-title').first().text(t.ai_title); 6349 } 6350 if (t.ai_subtitle) { 6351 $w.find('.jdmc-ai-subtitle').text(t.ai_subtitle); 6352 } 6353 6354 if (t.tab_prompt) { 6355 $w.find('.jdmc-ai-tab[data-mode="prompt"]').text(t.tab_prompt); 6356 } 6357 if (t.tab_edit) { 6358 $w.find('.jdmc-ai-tab[data-mode="edit"]').text(t.tab_edit); 6359 } 6360 6361 if (t.prompt_title) { 6362 $w.find('.jdmc-ai-prompt-title').text(t.prompt_title); 6363 } 6364 if (t.prompt_placeholder) { 6365 $w.find('#jdmc-ai-prompt').attr('placeholder', t.prompt_placeholder); 6366 } 6367 6368 if (t.edit_optional) { 6369 $w.find('.jdmc-ai-label-edit-facultatif').text(t.edit_optional); 6370 } 6371 if (t.edit_title) { 6372 $w.find('.jdmc-ai-edit-title').text(t.edit_title); 6373 } 6374 if (t.edit_placeholder) { 6375 $w.find('#jdmc-ai-edit-prompt').attr('placeholder', t.edit_placeholder); 6376 } 6377 6378 if (t.style_transform_title) { 6379 $w.find('.jdmc-ai-style-transform-title').text(t.style_transform_title); 6380 } 6381 if (t.style_main_title) { 6382 $w.find('.jdmc-ai-styles-main-title').text(t.style_main_title); 6383 } 6384 if (t.style_examples) { 6385 $w.find('.jdmc-ai-styles-examples').text(t.style_examples); 6386 } 6387 6388 if (t.style_none) { 6389 $w.find('.jdmc-style-option[data-style-key="none"] .jdmc-style-label').text(t.style_none); 6390 } 6391 if (t.style_realistic) { 6392 $w.find('.jdmc-style-option[data-style-key="realistic"] .jdmc-style-label').text(t.style_realistic); 6393 } 6394 if (t.style_galaxy) { 6395 $w.find('.jdmc-style-option[data-style-key="galaxy"] .jdmc-style-label').text(t.style_galaxy); 6396 } 6397 if (t.style_fairytale) { 6398 $w.find('.jdmc-style-option[data-style-key="fairytale"] .jdmc-style-label').text(t.style_fairytale); 6399 } 6400 if (t.style_manga) { 6401 $w.find('.jdmc-style-option[data-style-key="manga"] .jdmc-style-label').text(t.style_manga); 6402 } 6403 if (t.style_watercolor) { 6404 $w.find('.jdmc-style-option[data-style-key="watercolor"] .jdmc-style-label').text(t.style_watercolor); 6405 } 6406 if (t.style_cartoon) { 6407 $w.find('.jdmc-style-option[data-style-key="cartoon"] .jdmc-style-label').text(t.style_cartoon); 6408 } 6409 if (t.style_abstract) { 6410 $w.find('.jdmc-style-option[data-style-key="abstract"] .jdmc-style-label').text(t.style_abstract); 6411 } 6412 6413 if (t.recap_main_title) { 6414 $w.find('.jdmc-ai-main-title.jdmc-ai-section-title-step3').text(t.recap_main_title); 6415 } 6416 if (t.recap_forme_label) { 6417 $w.find('.jdmc-ai-recap-forme .jdmc-ai-recap-label').text(t.recap_forme_label); 6418 } 6419 if (t.recap_taille_label) { 6420 $w.find('.jdmc-ai-recap-taille .jdmc-ai-recap-label').text(t.recap_taille_label); 6421 } 6422 if (t.recap_style_label) {
6423 $w.find('.jdmc-ai-recap-style .jdmc-ai-recap-label').text(t.recap_style_label); 6424 } 6425 if (t.recap_image_label) { 6426 $w.find('.jdmc-ai-recap-image .jdmc-ai-recap-label').text(t.recap_image_label); 6427 } 6428 6429 if (t.remove_image) { 6430 $w.find('.jdmc-ai-remove-image').text(t.remove_image); 6431 } 6432 6433 if (t.separator_or) { 6434 $w.find('.jdmc-ai-separator span').text(t.separator_or); 6435 } 6436 6437 if (t.help_formats) { 6438 $w.find('.jdmc-ai-help').text(t.help_formats); 6439 } 6440 6441 if (t.select_choose) { 6442 $w.find('select.jdmc-ai-taille-select option[value=""]').each(function(){ 6443 $(this).text(t.select_choose); 6444 }); 6445 } 6446 6447 if (t.btn_generate) { 6448 $w.find('.jdmc-ai-generate-btn').text(t.btn_generate); 6449 } 6450 6451 // DUPLICATION DE LA PHRASE D'EXEMPLE POUR LâONGLET "IMAGE" 6452 var $exampleLine = $w.find('.jdmc-ai-styles-examples').first(); 6453 if ($exampleLine.length && !$w.data('jdmcExamplesCloned')) { 6454 $w.data('jdmcExamplesCloned', true); 6455 6456 var $clone = $exampleLine.clone() 6457 .addClass('jdmc-ai-styles-examples-edit'); 6458 6459 var $stylesGrid = $w.find('.jdmc-ai-styles-grid').first(); 6460 if ($stylesGrid.length) { 6461 $clone.insertBefore($stylesGrid); 6462 } 6463 6464 var $tabs = $w.find('.jdmc-ai-tab'); 6465 6466 function refreshExampleVisibility() { 6467 var $active = $tabs.filter('.jdmc-ai-tab-active').first(); 6468 var mode = $active.data('mode'); 6469 if (mode === 'edit') { 6470 $clone.show(); 6471 } else { 6472 $clone.hide(); 6473 } 6474 } 6475 6476 $tabs.on('click.jdmcExamples', function(){ 6477 setTimeout(refreshExampleVisibility, 0); 6478 }); 6479 6480 refreshExampleVisibility(); 6481 } 6482 6483 }); 6484 6485 // ========================== 6486 // 3) Traduction dynamique des messages d'erreur/succès + bouton IA 6487 // ========================== 6488 var selectorsToTranslate = '' 6489 + '.jdmc-ai-status, ' 6490 + '.jdmc-ai-global-status, ' 6491 + '.jdmc-ai-generate-btn, ' 6492 + '.jdmc-ai-edit-image-title, ' 6493 + '.jdmc-crop-header, ' 6494 + '.jdmc-crop-header span, ' 6495 + '.jdmc-crop-progress-text, ' 6496 + '.jdmc-crop-cancel, ' 6497 + '.jdmc-crop-apply, ' 6498 + '.single_add_to_cart_button'; 6499 6500 // Map des phrases FR -> version traduite pour la langue courante 6501 var msgMap = { 6502 "Veuillez sélectionner la dimension de la toile ci-dessus": m.select_size || "Veuillez sélectionner la dimension de la toile ci-dessus", 6503 "Merci de décrire un minimum votre image.": m.prompt_required || "Merci de décrire un minimum votre image.", 6504 "Le prompt est vide après traitement. Merci de le compléter.": m.prompt_empty || "Le prompt est vide après traitement. Merci de le compléter.", 6505 "Merci de choisir une photo à transformer.": m.edit_no_image || "Merci de choisir une photo à transformer.", 6506 "Le prompt est vide après traitement. Merci de sélectionner un style ou dâajouter quelques mots.": m.edit_prompt_empty || "Le prompt est vide après traitement. Merci de sélectionner un style ou dâajouter quelques mots.", 6507 6508 "Merci de sélectionner un fichier image (JPG ou PNG).": m.upload_wrong_type || "Merci de sélectionner un fichier image (JPG ou PNG).", 6509 "Fichier trop volumineux (max ~64 Mo).": m.upload_too_big || "Fichier trop volumineux (max ~64 Mo).", 6510 "Fichier trop volumineux (max ~64 Mo). Merci de le compresser un peu.": m.upload_too_big_c
6510ompress || "Fichier trop volumineux (max ~64 Mo). Merci de le compresser un peu.", 6511 "Téléversement de votre image en cours...": m.upload_in_progress || "Téléversement de votre image en cours...", 6512 "Téléversement de votre image en coursâ¦": m.upload_in_progress || "Téléversement de votre image en coursâ¦", 6513 "Erreur lors de lâenregistrement de votre image.": m.upload_store_error || "Erreur lors de lâenregistrement de votre image.", 6514 "Réponse incomplète lors de lâenregistrement de lâimage.": m.upload_store_incomplete || "Réponse incomplète lors de lâenregistrement de lâimage.", 6515 "Erreur réseau lors de lâenvoi de votre image.": m.upload_network_error || "Erreur réseau lors de lâenvoi de votre image.", 6516 "Erreur lors du traitement de lâimage.": m.upload_process_error || "Erreur lors du traitement de lâimage.", 6517 "Impossible de lire cette image.": m.upload_cannot_read || "Impossible de lire cette image.", 6518 "Erreur de lecture du fichier.": m.upload_read_error || "Erreur de lecture du fichier.", 6519 "Image importée avec succès. Elle sera utilisée pour votre diamond painting.": m.upload_success_direct || "Image importée avec succès. Elle sera utilisée pour votre diamond painting.", 6520 "Image importée avec succès. Elle sera utilisée comme base pour la retouche IA.": m.upload_success_edit || t.upload_store_success || "Image importée avec succès. Elle sera utilisée comme base pour la retouche IA.", 6521 6522 "Génération en cours, cela peut prendre un peu de temps...": m.generating || "Génération en cours, cela peut prendre un peu de temps...", 6523 "Image générée avec succès. Vous pouvez maintenant ajouter le produit au panier.": m.ai_success || "Image générée avec succès. Vous pouvez maintenant ajouter le produit au panier.", 6524 6525 // Bouton IA (le JS frontend le remet en FR, on le retraduit ici) 6526 "Générer l'image avec l'IA": t.btn_generate || "Générer l'image avec l'IA", 6527 6528 // Nouveau : recap / upload / crop / ajout panier 6529 "â Je valide mon diamond painting": t.recap_main_title || "â Je valide mon diamond painting", 6530 "Je valide mon diamond painting": t.recap_main_title || "Je valide mon diamond painting", 6531 "Je choisis la photo / image à retoucher": t.edit_upload_title || "Je choisis la photo / image à retoucher", 6532 "Recadrage en coursâ¦": t.crop_in_progress || "Recadrage en coursâ¦", 6533 "Annuler": t.crop_cancel || "Annuler", 6534 "Valider le recadrage": t.crop_apply || "Valider le recadrage", 6535 "Ajouter au panier": t.btn_add_to_cart || "Ajouter au panier", 6536 "âï¸ Recadrer lâimage": t.btn_crop || "âï¸ Recadrer lâimage", 6537 "Photo / image à transformer en DP": t.edit_image_title_dp || "Photo / image à transformer en DP", 6538 "Recadrer lâimage": t.crop_title || "Recadrer lâimage", 6539 "Mes images générées :": m.generated_images_title || t.generated_images_title || "Mes images générées :", 6540 "Aperçu de lâimage générée :": m.generated_preview_title || t.generated_preview_title || "Aperçu de lâimage générée :", 6541 }; 6542 6543 function translateElement($el) { 6544 if (!$el || !$el.length) return; 6545 if ($el.children().length > 0) return; // on ne touche quâaux "feuilles" 6546 6547 var txt = $.trim($el.text()); 6548 if (!txt) return; 6549 6550 var original = txt; 6551 6552 // 1) Préfixe "Erreur : ..." 6553 var baseErr = "Erreur : "; 6554 if (txt.indexOf(baseErr) === 0 && m.error_prefix) { 6555 txt = m.error_prefix + txt.substring(baseErr.length); 6556 } 6557 6558 // 2) Préfixe "Erreur AJAX..." 6559 if (txt.indexOf("Erreur AJAX") === 0 && m.ajax_error_prefix) { 6560 var after = txt.substring("Erreur AJAX".length); 6561 txt = m.ajax_error_prefix + after; 6562 } 6563 6564 // 3) Mapping exact 6565 if (msgMap[txt] && msgMap[txt] !== txt) { 6566 txt = msgMap[txt]; 6567 } 6568 6569 // 4) Règles "floues" pour certains textes chiants 6570 6571 // â Je valide mon DP (avec ou sans symbole) 6572 if (original.indexOf("Je valide mon diamond painting") !== -1 && t.recap_main_title) { 6573 txt = t.recap_main_title; 6574 } 6575 6576 // Photo / image à transformer en DP 6577 if (original.indexOf("transformer en DP") !== -1 && t.edit_image_title_dp) { 6578 txt = t.edit_image_title_dp; 6579 } 6580 6581 // Bouton âï¸ Recadrer lâimage 6582 if (original.indexOf("Recadrer l") !== -1 && t.btn_crop) { 6583 txt = t.btn_crop; 6584 } 6585 6586 // Téléversement de votre image en cours (⦠ou ...) 6587 if (original.indexOf("Téléversement de votre image en cours") !== -1 && m.upload_in_progress) { 6588 txt = m.upload_in_progress; 6589 } 6590 6591 // Image importée avec succès. Elle sera utilisée comme base pour la retouche IA. 6592 if ( 6593 original.indexOf("Image importée avec succès") !== -1 && 6594 original.indexOf("retouche IA") !== -1 && 6595 (m.upload_success_edit || m.upload_store_success) 6596 ) { 6597 txt = m.upload_success_edit || m.upload_store_success; 6598 } 6599 6600 if (txt !== original) { 6601 $el.text(txt); 6602 } 6603 } 6604 6605 // Traduit tout le bloc IA + les éléments ciblés (dont la lightbox de reca
6605drage) 6606 function translateAllAiTexts() { 6607 // 1) Tout ce qui est dans le bloc IA principal 6608 $('.jdmc-ai-wrapper').each(function(){ 6609 $(this).find('*').each(function(){ 6610 var $node = $(this); 6611 6612 // On évite les champs de formulaire (on ne veut pas écraser les values) 6613 if ($node.is('input,textarea,select,option')) { 6614 return; 6615 } 6616 6617 translateElement($node); 6618 }); 6619 }); 6620 6621 // 2) Et on force aussi les éléments ciblés, même s'ils sont en dehors du wrapper 6622 $(selectorsToTranslate).each(function(){ 6623 translateElement($(this)); 6624 }); 6625 } 6626 6627 // Passage initial : on traduit tout une première fois 6628 translateAllAiTexts(); 6629 6630 // Observer les changements de texte (erreurs/succès, recadrage, upload, etc.) 6631 if (window.MutationObserver) { 6632 var observer = new MutationObserver(function(mutations){ 6633 // Au moindre changement dans le DOM, on repasse un coup sur tout le bloc IA + lightbox 6634 translateAllAiTexts(); 6635 }); 6636 6637 observer.observe(document.body, { 6638 childList: true, 6639 subtree: true, 6640 characterData: true 6641 }); 6642 } 6643 }); 6644 })(jQuery); 6645 </script>
6645 6646
6646<script> 6647 (function() { 6648 if (typeof fbq === 'function') { 6649 fbq('track', 'ViewContent', { 6650 content_ids: ['72384'], 6651 content_type: 'product', 6652 currency: 'EUR' 6653 }); 6654 } 6655 })(); 6656 </script>
6656 6657
6657<script> 6658 (function() { 6659 if (typeof fbq !== 'function') { 6660 return; 6661 } 6662 6663 // Fallback non-AJAX : URL ?add-to-cart=xxx 6664 try { 6665 var params = new URLSearchParams(window.location.search); 6666 if (params.has('add-to-cart')) { 6667 var atcId = params.get('add-to-cart'); 6668 if (atcId) { 6669 fbq('track', 'AddToCart', { 6670 content_ids: [String(atcId)], 6671 content_type: 'product', 6672 currency: 'EUR' 6673 }); 6674 } 6675 } 6676 } catch (e) { 6677 // vieux navigateurs : on ignore 6678 } 6679 6680 // Gestion AJAX WooCommerce (xoo mini-panier, etc.) 6681 if (typeof jQuery === 'undefined') { 6682 return; 6683 } 6684 6685 jQuery(function($) { 6686 var lastButton = null; 6687 6688 // On mémorise le bouton au moment de l'ajout 6689 $(document.body).on('adding_to_cart', function(event, button, data) { 6690 lastButton = button || null; 6691 }); 6692 6693 // Quand WooCommerce confirme l'ajout 6694 $(document.body).on('added_to_cart', function(event, fragments, cart_hash, $button) { 6695 var btn = $button || lastButton; 6696 if (!btn) return; 6697 6698 var $btn = $(btn); 6699 6700 var productId = 6701 $btn.data('product_id') || 6702 $btn.attr('data-product_id') || 6703 null; 6704 6705 if (!productId) { 6706 return; 6707 } 6708 6709 fbq('track', 'AddToCart', { 6710 content_ids: [String(productId)], 6711 content_type: 'product', 6712 currency: 'EUR' 6713 }); 6714 }); 6715 }); 6716 })(); 6717 </script>
6717 6718
6718<script> 6719 document.addEventListener('DOMContentLoaded', function() { 6720 document.querySelectorAll('.ct-sub-menu-parent > a').forEach(function(link) { 6721 link.addEventListener('click', function(e) { 6722 e.preventDefault(); 6723 e.stopImmediatePropagation(); // Bloque aussi les autres handlers éventuels 6724 const toggle = link.parentElement.querySelector('.ct-toggle-dropdown-mobile'); 6725 if (toggle) { 6726 toggle.click(); 6727 } 6728 }, true); // Use capture phase to intercept before Blocksy 6729 }); 6730 }); 6731 </script>
6731 6732
6732<script> 6733 (function($){ 6734 let updateTimeout; 6735 6736 function hideWooNotices() { 6737 $('.woocommerce-message, .woocommerce-info, .woocommerce-error').hide(); 6738 } 6739 6740 $('body').on('input', 'input.qty', function(){ 6741 clearTimeout(updateTimeout); 6742 6743 updateTimeout = setTimeout(function(){ 6744 $('[name="update_cart"]').trigger('click'); 6745 hideWooNotices(); 6746 }, 800); // délai 800ms : adapte si besoin 6747 }); 6748 6749 $(document).on('updated_wc_div', function(){ 6750 hideWooNotices(); 6751 }); 6752 6753 })(jQuery); 6754 </script>
6754 6755
6755<script> 6756 document.addEventListener('DOMContentLoaded', function () { 6757 const searchBtn = document.querySelector('button.ct-header-search[data-toggle-panel="#search-modal"]'); 6758 if (!searchBtn) return; 6759 6760 // Récupère la valeur de la variable CSS pour la lightbox 6761 const labelText = getComputedStyle(document.documentElement).getPropertyValue('--jdmc-search-label').replace(/"/g, '').trim() || 'Rechercher'; 6762 6763 function updateSearchModal() { 6764 const modal = document.querySelector('#search-modal'); 6765 if (!modal) return false; 6766 6767 const title = modal.querySelector('.ct-panel-title'); 6768 if (title) title.textContent = labelText; 6769 6770 const input = modal.querySelector('input[type="search"]'); 6771 if (input) { 6772 input.setAttribute('placeholder', labelText); 6773 input.setAttribute('aria-label', labelText); 6774 input.setAttribute('title', labelText); 6775 } 6776 return true; 6777 } 6778 6779 // Met à jour la lightbox dynamiquement lors du clic 6780 searchBtn.addEventListener('click', () => { 6781 let tries = 0; 6782 const interval = setInterval(() => { 6783 if (updateSearchModal() || tries++ > 20) { 6784 clearInterval(interval); 6785 } 6786 }, 100); 6787 }); 6788 }); 6789 </script>
6789 6790
6790<script> 6791 document.addEventListener('DOMContentLoaded', function () { 6792 const langAttr = (document.documentElement.lang || 'fr').toLowerCase(); 6793 6794 const translations = { 6795 fr:{placeholder:'Code DMC (ex. : 310)',error:'Merci dâentrer uniquement des chiffres'}, 6796 nl:{placeholder:'DMC-code (bv. 310)',error:'Voer alleen cijfers in'}, 6797 en:{placeholder:'DMC code (e.g. 310)',error:'Please enter digits only'}, 6798 de:{placeholder:'DMC-Code (z. B. 310)',error:'Bitte nur Zahlen eingeben'}, 6799 it:{placeholder:'Codice DMC (es. 310)',error:'Inserisci solo numeri'}, 6800 'pt-pt':{placeholder:'Código DMC (ex.: 310)',error:'Introduza apenas números'}, 6801 es:{placeholder:'Código DMC (ej.: 310)',error:'Introduce solo cifras'}, 6802 bg:{placeholder:'Ðод DMC (напÑ. 310)',error:'ÐолÑ, вÑведеÑе Ñамо ÑиÑÑи'}, 6803 da:{placeholder:'DMC-kode (fx 310)',error:'Indtast kun tal'}, 6804 el:{placeholder:'ÎÏδικÏÏ DMC (Ï.Ï. 310)',error:'ΠαÏÎ±ÎºÎ±Î»Ï ÎµÎ¹ÏάγεÏε μÏνο αÏιθμοÏÏ'}, 6805 hu:{placeholder:'DMC kód (pl. 310)',error:'Kérjük, csak számokat Ãrjon be'}, 6806 no:{placeholder:'DMC-kode (f.eks. 310)',error:'Vennligst skriv kun inn tall'}, 6807 pl:{placeholder:'Kod DMC (np. 310)',error:'Wprowadź tylko cyfry'}, 6808 ro:{placeholder:'Cod DMC (ex. 310)',error:'VÄ rugÄm sÄ introduceÈi doar cifre'}, 6809 sv:{placeholder:'DMC-kod (t.ex. 310)',error:'Ange endast siffror'} 6810 }; 6811 6812 // Alias -> canonique 6813 const alias = { 6814 'pt':'pt-pt', 6815 'pt-pt':'pt-pt', 6816 'pt-br':'pt-pt', // si jamais 6817 'no':'no', 'nb':'no', 'nb-no':'no', 'nn':'no', 'nn-no':'no', 6818 'sv-se':'sv', 'da-dk':'da', 'de-de':'de', 'en-gb':'en', 'en-us':'en', 'fr-fr':'fr', 'it-it':'it', 'es-es':'es', 'pl-pl':'pl', 'ro-ro':'ro', 'hu-hu':'hu', 'bg-bg':'bg', 'el-gr':'el' 6819 }; 6820 6821 const parts = langAttr.split('-'); 6822 const primary = parts[0]; 6823 const norm = 6824 alias[langAttr] || 6825 alias[primary] || 6826 (translations[langAttr] ? langAttr : null) || 6827 (translations[primary] ? primary : null) || 6828 'en'; 6829 6830 const dict = translations[norm] || {placeholder:'Enter the DMC code (e.g. 310)', error:'Please enter digits only'}; 6831 6832 function initPlaceholderWatcher(){ 6833 const input = document.querySelector('.ct-search-form input.modal-field'); 6834 if (!input) return; 6835 6836 // Applique toujours notre placeholder 6837 input.placeholder = dict.placeholder; 6838 6839 // Forcer clavier numérique 6840 input.setAttribute('inputmode','numeric'); 6841 input.setAttribute('pattern','\\d*'); 6842 input.setAttribute('type','text'); // évite les bizarreries de type="number" 6843 6844// Zone dâerreur 6845 let errorDiv = document.querySelector('.dmc-error-message'); 6846 if (!errorDiv) { 6847 errorDiv = document.createElement('div'); 6848 errorDiv.className = 'dmc-error-message'; 6849 errorDiv.style.color = 'red'; 6850 errorDiv.style.fontSize = '12px'; 6851 errorDiv.style.marginTop = '5px'; 6852 input.insertAdjacentElement('afterend', errorDiv); 6853 } 6854 6855 // Validation chiffres uniquement et limite à 4 caractères 6856 input.addEventListener('input', function () { 6857 // Supprime tout ce qui n'est pas un chiffre 6858 this.value = this.value.replace(/[^0-9]/g, ''); 6859 6860 // Limite la saisie à 4 chiffres 6861 if (this.value.length > 4) { 6862 this.value = this.value.slice(0, 4); 6863 } 6864 6865 // Affichage du message d'erreur si caractères invalides tentés 6866 if (/[^0-9]/.test(this.value)) { 6867 errorDiv.textContent = dict.error; 6868 } else { 6869 errorDiv.textContent = ''; 6870 } 6871 }); 6872 } 6873 6874 const observer = new MutationObserver(initPlaceholderWatcher); 6875 observer.observe(document.body, { childList:true, subtree:true }); 6876 6877 initPlaceholderWatcher(); 6878 }); 6879 </script>
6879 6880
6880<script> 6881 (function() { 6882 6883 // --- 0) NE RIEN FAIRE sur la page diamond painting personnalisé --- 6884 // On détecte la présence du bloc custom JDMC via son wrapper .jdmc-ai-wrapper 6885 // (présent sur toutes les langues, car généré par le MU-plugin frontend) 6886 if (document.querySelector('.jdmc-ai-wrapper')) { 6887 // On sort immédiatement : Xoo garde son comportement normal 6888 // -> pastille cachée à 0, visible à partir de 1 article 6889 return; 6890 } 6891 6892 var JDMC_XOO_BREAKPOINT = 1025; // ⥠1025px = desktop 6893 6894 function jdmcApplyXooBasketMode() { 6895 var el = document.querySelector('.xoo-wsc-basket'); 6896 if (!el) return; 6897 6898 var shouldShow = window.innerWidth >= JDMC_XOO_BREAKPOINT; 6899 var targetDisplay = shouldShow ? 'flex' : 'none'; 6900 6901 // On ne touche que si nécessaire 6902 var currentDisplay = el.style.getPropertyValue('display'); 6903 if (currentDisplay !== targetDisplay) { 6904 el.style.setProperty('display', targetDisplay, 'important'); 6905 } 6906 } 6907 6908 function jdmcInitXooBasketWatcher() { 6909 // 1ère application 6910 jdmcApplyXooBasketMode(); 6911 6912 // Re-applique au resize (rotation, redimensionnement) 6913 window.addEventListener('resize', jdmcApplyXooBasketMode); 6914 6915 // Observer spécifique sur la pastille (style / class modifiés par le plugin) 6916 var el = document.querySelector('.xoo-wsc-basket'); 6917 if (el) { 6918 var basketObserver = new MutationObserver(function() { 6919 jdmcApplyXooBasketMode(); 6920 }); 6921 basketObserver.observe(el, { 6922 attributes: true, 6923 attributeFilter: ['style', 'class'] 6924 }); 6925 } 6926 6927 // Filet de sécurité : toutes les X ms, on reforce au cas où 6928 setInterval(jdmcApplyXooBasketMode, 150); 6929 } 6930 6931 // Observer global pour détecter l'apparition de .xoo-wsc-basket (injection tardive) 6932 document.addEventListener('DOMContentLoaded', function() { 6933 // Si déjà là , on initialise direct 6934 if (document.querySelector('.xoo-wsc-basket')) { 6935 jdmcInitXooBasketWatcher(); 6936 return; 6937 } 6938 6939 // Sinon, on surveille le DOM jusqu'à ce qu'elle apparaisse 6940 var docObserver = new MutationObserver(function(mutations, observer) { 6941 if (document.querySelector('.xoo-wsc-basket')) { 6942 jdmcInitXooBasketWatcher(); 6943 observer.disconnect(); 6944 } 6945 }); 6946 6947 docObserver.observe(document.documentElement, { 6948 childList: true, 6949 subtree: true 6950 }); 6951 }); 6952 6953 })(); 6954 </script>
6954 6955
6955<script> 6956 (function($){ 6957 6958 function jdmcFixDpVariationImage() { 6959 // Cibler UNIQUEMENT les images de la variation "Image personnalisée" 6960 $('dd.variation-Imagepersonnalise img[src*="-150x150."]').each(function(){ 6961 var $img = $(this); 6962 6963 if ($img.is(':hidden')) { 6964 return; 6965 } 6966 6967 var src = $img.attr('src') || ''; 6968 var newSrc = src.replace(/-150x150(\.(jpe?g|png|gif|webp))/i, '$1'); 6969 6970 if (newSrc !== src) { 6971 $img.attr('src', newSrc); 6972 } 6973 6974 // On enlève width/height figés UNIQUEMENT sur cette image 6975 $img.removeAttr('width').removeAttr('height'); 6976 }); 6977 } 6978 6979 $(document).ready(function(){ 6980 6981 // 1) Correction immédiate au chargement 6982 jdmcFixDpVariationImage(); 6983 6984 // 2) Sur les changements de DOM (mini-panier, updates AJAX) 6985 if (window.MutationObserver) { 6986 var observer = new MutationObserver(function(mutations){ 6987 var needFix = false; 6988 6989 mutations.forEach(function(m){ 6990 if (!m.addedNodes || !m.addedNodes.length) return; 6991 6992 m.addedNodes.forEach(function(node){ 6993 if (node.nodeType !== 1) return; 6994 6995 // On ne sâintéresse quâaux variations "Image personnalisée" 6996 if (node.tagName === 'IMG') { 6997 var s = node.getAttribute('src') || ''; 6998 if ( 6999 s.indexOf('-150x150.') !== -1 && 7000 $(node).closest('dd.variation-Imagepersonnalise').length 7001 ) { 7002 needFix = true; 7003 } 7004 } else if ( 7005 node.querySelector && 7006 node.querySelector('dd.variation-Imagepersonnalise img[src*="-150x150."]') 7007 ) { 7008 needFix = true; 7009 } 7010 }); 7011 }); 7012 7013 if (needFix) { 7014 jdmcFixDpVariationImage(); 7015 } 7016 }); 7017 7018 observer.observe(document.body, { 7019 childList: true, 7020 subtree: true 7021 }); 7022 } 7023 }); 7024 7025 // 3) Quand WooCommerce / XOO met à jour des fragments (mini-panier, panier, checkout) 7026 $(document).on( 7027 'xoo_wsc_cart_updated updated_wc_div updated_cart_totals updated_checkout wc_fragments_refreshed wc_fragments_loaded', 7028 function(){ 7029 jdmcFixDpVariationImage(); 7030 } 7031 ); 7032 7033 })(jQuery); 7034 </script>
7034 7035 <style> 7036 /* Masquage de la mini banner */ 7037 .jdmc-mini-banner-scope { display:none !important; } 7038 </style> 7039 7040
7040<script> 7041 document.addEventListener('DOMContentLoaded', function () { 7042 7043 /* --- 1. Mise à jour du dégradé (Violet/Rose) --- */ 7044 document.querySelectorAll('.bf-banner').forEach(function (banner) { 7045 banner.style.background = "linear-gradient(90deg, #170048, #170048, #D100B7, #170048)"; 7046 banner.style.backgroundSize = "300% 300%"; 7047 }); 7048 7049 /* --- 2. Remplacement du texte Black Friday --- */ 7050 document.querySelectorAll('.bf-banner .bf-label span').forEach(function (span) { 7051 if (!span || !span.textContent) return; 7052 7053 let txt = span.textContent.trim().toLowerCase(); 7054 if (txt === 'black friday') { 7055 span.textContent = ""; 7056 } 7057 }); 7058 7059 /* --- 3. Suppression des emojis --- */ 7060 document.querySelectorAll('.bf-banner .bf-label span').forEach(function (span) { 7061 if (!span || !span.textContent) return; 7062 7063 let original = span.textContent.trim(); 7064 if (original === "ð¤ð¥") { 7065 span.textContent = ""; 7066 } 7067 }); 7068 7069 }); 7070 </script>
7070 7071 <div id="mobile-footer-bar"> 7072 <a href="/mon-compte/" aria-label="Mon compte"><span>ð¤</span></a> 7073 7074 7075<div class="xoo-wsc-sc-cont"> 7076 <div class="xoo-wsc-cart-trigger"> 7077 7078 <span class="xoo-wsc-sc-subt"> 7079 <span class="woocommerce-Price-amount amount"><bdi><span class="woocommerce-Price-currencySymbol" translate="no">$</span>0.00</bdi></span> </span> 7080 7081 7082 <div class="xoo-wsc-sc-bkcont"> 7083 7084 7085 <span class="xoo-wsc-sc-bki xoo-wsc-icon-basket1"></span> 7086 7087 7088 <span class="xoo-wsc-sc-count">0</span> 7089 7090 </div> 7091 7092 7093 </div> 7094</div> <a href="#" id="open-mobile-search" aria-label="Rechercher"><span>ð</span></a> 7095
7095<script> 7096 document.addEventListener('DOMContentLoaded', function () { 7097 const btn = document.getElementById('open-mobile-search'); 7098 if (btn) { 7099 btn.addEventListener('click', function(e){ 7100 e.preventDefault(); 7101 const realSearchButton = document.querySelector('.ct-header-search'); 7102 if (realSearchButton) { realSearchButton.click(); } 7103 }); 7104 } 7105 }); 7106 </script>
7106 7107 </div> 7108
7108<script>(function(w,d,t,r,u){var f,n,i;w[u]=w[u]||[],f=function(){var o={ti:"343223542", enableAutoSpaTracking: true};o.q=w[u],w[u]=new UET(o),w[u].push("pageLoad")},n=d.createElement(t),n.src=r,n.async=1,n.onload=n.onreadystatechange=function(){var s=this.readyState;s&&s!=="loaded"&&s!=="complete"||(f(),n.onload=n.onreadystatechange=null)},i=d.getElementsByTagName(t)[0],i.parentNode.insertBefore(n,i)})(window,document,"script","//bat.bing.com/bat.js","uetq");</script>
7108 7109 <span id="wts1848382"></span> 7110
7110<script> 7111 window.addEventListener('load', function() { 7112 var wts = document.createElement('script'); 7113 wts.async = true; 7114 wts.src = 'https://app.ardalio.com/wts7.js'; 7115 document.head.appendChild(wts); 7116 wts.onload = function(){ 7117 if(typeof wtsl7 === 'function') { 7118 wtsl7(1848382, 4); 7119 } 7120 }; 7121 }); 7122 </script>
7122 7123 <noscript><img src="https://app.ardalio.com/7/4/1848382.png"></noscript> 7124
7124<script> 7125 document.addEventListener('DOMContentLoaded', function () { 7126 const labels = document.querySelectorAll('.berocket_better_labels_image'); 7127 7128 labels.forEach(function (el) { 7129 el.style.display = 'block'; 7130 el.style.visibility = 'visible'; 7131 el.style.opacity = '1'; 7132 }); 7133 7134 // On surveille en continu si BeRocket remet display:none 7135 const observer = new MutationObserver(() => { 7136 const currentLabels = document.querySelectorAll('.berocket_better_labels_image'); 7137 currentLabels.forEach(function (el) { 7138 if (el.style.display === "none") { 7139 el.style.display = "block"; 7140 } 7141 }); 7142 }); 7143 7144 labels.forEach(el => observer.observe(el, { attributes: true, attributeFilter: ['style'] })); 7145 }); 7146 </script>
7146 7147
7147<script type="application/ld+json">{"@context":"https://schema.org/","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"item":{"name":"Accueil","@id":"https://diamant-strass-dmc.com/"}},{"@type":"ListItem","position":2,"item":{"name":"Accessoires pour Diamond Painting","@id":"https://diamant-strass-dmc.com/couleur/accessoires/"}},{"@type":"ListItem","position":3,"item":{"name":"Mon diamond painting personnalis\u00e9","@id":"https://diamant-strass-dmc.com/perles-broderie/custom-diamond-painting-personnalise-photo/"}}]}</script>
7147
7147<script type="text/javascript"> 7148 document.addEventListener('DOMContentLoaded', function() { 7149 var targets = document.querySelectorAll('.product-description, .product_title, .variations, .woo-selected-variation-item-name, .variable-item-span'); 7150 if (targets.length === 0) return; 7151 7152 var currentLang = "fr"; 7153 7154 function appliquerCorrectionsMulti() { 7155 var dynamicTargets = document.querySelectorAll('.product-description, .product_title, .variations, .woo-selected-variation-item-name, .variable-item-span'); 7156 7157 dynamicTargets.forEach(function(targetNode) { 7158 if (targetNode.childNodes.length > 0 && targetNode.classList.contains('variations')) { 7159 return; 7160 } 7161 7162 var html = targetNode.innerHTML; 7163 if (window.dsObserver) window.dsObserver.disconnect(); 7164 7165 // Nettoyage palette global 7166 html = html.replace(/ð¨(?:.*?)(?:<br\s*\/?>|\r?\n|$)/gu, ''); 7167 7168 // Corrections JS pour le français 7169 if (currentLang === 'fr') { 7170 if (!html.match(/n°\s*[0-9a-zA-Z]+\s*\(perles de couleur\s*"[^"]+"\)/iu)) { 7171 var numMatch = html.match(/n°\s*([0-9a-zA-Z]+)/iu); 7172 var couleurMatch = html.match(/n°\s*([0-9a-zA-Z]+)\s*\(?([^\d<()"]+)/iu); 7173 7174 if (numMatch && couleurMatch) { 7175 var num = numMatch[1]; 7176 var couleur = couleurMatch[2].replace(/[()]/g, '').trim(); 7177 couleur = couleur.trim().replace(/(?<=[a-zà -öø-ÿ])(?=[A-ZÃ-ÃÃ-Ã])/g, ' '); 7178 7179 if (couleur === '' || couleur.toLowerCase() === 'carre' || couleur.toLowerCase() === 'rond' || couleur.toLowerCase() === 'carre_x' || couleur.toLowerCase() === 'rond_x' || couleur.match(/^\d+$/)) { 7180 html = 'n° ' + num; 7181 } else { 7182 html = 'n° ' + num + ' (perles de couleur "' + couleur + '")'; 7183 } 7184 } 7185 } else { 7186 html = html.replace(/(perles de couleur\s*")([^"]+)(")/iu, function(m, p1, p2, p3) { 7187 var couleurNettoye = p2.replace(/[()]/g, '').trim(); 7188 return p1 + couleurNettoye + p3; 7189 }); 7190 html = html.replace(/(n°\s*[0-9a-zA-Z]+\s*\(perles de couleur\s*"[^"]+"\)).*/iu, '$1'); 7191 } 7192 html = html.replace(/\"\)\)\s*$/gi, '")'); 7193 } 7194 else if (currentLang === 'en') { 7195 html = html.replace(/Drills\s+DMC\s+n°(?:\s| )*(\d+)/gi, 'DMC drills no. $1'); 7196 html = html.replace(/(?:n°|nr\.?|no\.?)\s*(\d+)/gi, 'no. $1'); 7197 } 7198 else if (currentLang === 'da') { 7199 html = html.replace(/(?:Diamanter|Drills)\s+DMC\s+(?:n°|no\.?|nr\.?)(\s| )*(\d+)/gi, 'DMC perler (diamanter) nr. $1'); 7200 html = html.replace(/DMC\s+(?:Diamanter|Drills|Perler)\s+(?:n°|no\.?|nr\.?)(\s| )*(\d+)/gi, 'DMC perler (diamanter) nr. $1'); 7201 html = html.replace(/(?:n°|no\.?|nr\.?)\s*(\d+)/gi, 'nr. $1'); 7202 } 7203 else if (currentLang === 'sv') { 7204 html = html.replace(/(?:Diamanter|Drills)\s+DMC\s+(?:n°|no\.?|nr\.?|no-)?(?:\s| )*(\d+)/gi, 'DMC diamanter (pärlor) nr. $1'); 7205 html = html.replace(/DMC\s+(?:Diamanter|Drills)\s+(?:n°|no\.?|nr\.?|no-)?(?:\s| )*(\d+)/gi, 'DMC diamanter (pärlor) nr. $1'); 7206 html = html.replace(/(?:n°|no\.?|nr\.?|no-)\s*(\d+)/gi, 'nr. $1'); 7207 html = html.replace(/Form\s+av\s+diamanter/gi, 'Diamantform'); 7208 7209 var texteNettoye = targetNode.textContent.trim(); 7210 if (texteNettoye === 'Square' || texteNettoye === ': Square' || texteNettoye === 'Fyrkant' || texteNettoye === ': Fyrkant' || texteNettoye === 'Fyrkantig' || texteNettoye === ': Fyrkantig') { 7211 html = html.replace(/Square|Fyrkant(?:ig)?/gi, 'Fyrkantiga'); 7212 } 7213 if (texteNettoye === 'Runda' || texteNettoye === ': Runda' || texteNettoye === 'Round' || texteNettoye === ': Round') { 7214 html = html.replace(/Round|Runda/gi, 'Runda'); 7215 } 7216 } 7217 else if (currentLang === 'no') { 7218 html = html.replace(/(?:Diamanter|Drills)\s+DMC\s+(?:n°|no\.?|nr\.?|no-)?(?:\s|
7218)*(\d+)/gi, 'DMC diamanter (perler) nr. $1'); 7219 html = html.replace(/DMC\s+(?:Diamanter|Drills)\s+(?:n°|no\.?|nr\.?|no-)?(?:\s| )*(\d+)/gi, 'DMC diamanter (perler) nr. $1'); 7220 html = html.replace(/(?:n°|no\.?|nr\.?|no-)\s*(\d+)/gi, 'nr. $1'); 7221 html = html.replace(/Form\s+av\s+diamanter/gi, 'Diamantform'); 7222 7223 var texteNettoye = targetNode.textContent.trim(); 7224 if (texteNettoye === 'Square' || texteNettoye === ': Square' || texteNettoye === 'Firkantet' || texteNettoye === ': Firkantet') { 7225 html = html.replace(/Square|Firkantet/gi, 'Firkantede'); 7226 } 7227 if (texteNettoye === 'Runde' || texteNettoye === ': Runde' || texteNettoye === 'Round' || texteNettoye === ': Round') { 7228 html = html.replace(/Round|Runde/gi, 'Runde'); 7229 } 7230 } 7231 else if (currentLang === 'es') { 7232 html = html.replace(/Diamantes\s+DMC\s+n°(?:\s| )*(\d+)/gi, 'DMC diamantes (cuentas) n° $1'); 7233 html = html.replace(/DMC\s+Diamantes\s+n°(?:\s| )*(\d+)/gi, 'DMC diamantes (cuentas) n° $1'); 7234 } 7235 else if (currentLang === 'pt' || currentLang === 'pt-pt') { 7236 html = html.replace(/Diamantes\s+DMC\s+n°(?:\s| )*(\d+)/gi, 'DMC diamantes (contas) n° $1'); 7237 html = html.replace(/DMC\s+Diamantes\s+n°(?:\s| )*(\d+)/gi, 'DMC diamantes (contas) n° $1'); 7238 } 7239 else if (currentLang === 'it') { 7240 html = html.replace(/Diamanti\s+DMC\s+n°(?:\s| )*(\d+)/gi, 'DMC diamantini (perline) n° $1'); 7241 html = html.replace(/DMC\s+Diamanti\s+n°(?:\s| )*(\d+)/gi, 'DMC diamantini (perline) n° $1'); 7242 } 7243 else if (currentLang === 'de') { 7244 html = html.replace(/(?:Steine|Diamanten)\s+DMC\s+(?:n°|no\.?|nr\.?|no-)?(?:\s| )*(\d+)/gi, 'DMC Steine (Perlen) Nr. $1'); 7245 html = html.replace(/DMC\s+(?:Steine|Diamanten)\s+(?:n°|no\.?|nr\.?|no-)?(?:\s| )*(\d+)/gi, 'DMC Steine (Perlen) Nr. $1'); 7246 html = html.replace(/(?:n°|no\.?|nr\.?|no-)\s*(\d+)/gi, 'Nr. $1'); 7247 html = html.replace(/Form\s+der\s+Steine/gi, 'Steinform'); 7248 } 7249 else if (currentLang === 'ro') { 7250 html = html.replace(/(?:Diamante|Diamonds)\s+DMC\s+(?:n°|no\.?|nr\.?|no-)?(?:\s| )*(\d+)/gi, 'DMC diamante (mÄrgelele) nr. $1'); 7251 html = html.replace(/DMC\s+(?:Diamante|Diamonds)\s+(?:n°|no\.?|nr\.?|no-)?(?:\s| )*(\d+)/gi, 'DMC diamante (mÄrgelele) nr. $1'); 7252 html = html.replace(/(?:n°|no\.?|nr\.?|no-)\s*(\d+)/gi, 'nr. $1'); 7253 } 7254 else if (currentLang === 'el') { 7255 html = html.replace(/(?:ÎιαμάνÏια|Drills)\s+DMC\s+(?:n°|no\.?|nr\.?|αÏ\.?)(?:\s| )*(\d+)/gi, 'DMC διαμάνÏια (ÏάνÏÏεÏ) αÏ. $1'); 7256 html = html.replace(/DMC\s+(?:ÎιαμάνÏια|Drills)\s+(?:n°|no\.?|nr\.?|αÏ\.?)(?:\s| )*(\d+)/gi, 'DMC διαμάνÏια (ÏάνÏÏεÏ) αÏ. $1'); 7257 html = html.replace(/(?:n°|no\.?|nr\.?|αÏ\.?)\s*(\d+)/gi, 'αÏ. $1'); 7258 html = html.replace(/ΣÏήμα\s+διαμανÏιÏν/gi, 'ΣÏήμα διαμανÏιÏν'); 7259 7260 var texteNettoye = targetNode.textContent.trim(); 7261 if (texteNettoye === 'Square' || texteNettoye === ': Square' || texteNettoye === 'ΠλαÏεία' || texteNettoye === 'ΤεÏÏάγÏνα') { 7262 html = html.replace(/Square|ΠλαÏεία|ΤεÏÏάγÏνα/gi, 'ΤεÏÏάγÏνα'); 7263 } 7264 if (texteNettoye === 'ΣÏÏÎ¿Î³Î³Ï Î»Î®' || texteNettoye === ': ΣÏÏÎ¿Î³Î³Ï Î»Î®' || texteNettoye === 'ΣÏÏÎ¿Î³Î³Ï Î»Î¬' || texteNettoye === 'Round') { 7265 html = html.replace(/Round|ΣÏÏÎ¿Î³Î³Ï Î»Î®|ΣÏÏÎ¿Î³Î³Ï Î»Î¬/gi, 'ΣÏÏÎ¿Î³Î³Ï Î»Î¬'); 7266 } 7267 } 7268 else if (currentLang === 'pl') { 7269 html = html.replace(/Diamenty\s+DMC\s+nr(?:\s|
7269)*(\d+)/gi, 'DMC diamenty (koraliki) nr $1'); 7270 html = html.replace(/DMC\s+Diamenty\s+nr(?:\s| )*(\d+)/gi, 'DMC diamenty (koraliki) nr $1'); 7271 html = html.replace(/(?:n°|no\.?|nr\.?)\s*(\d+)/gi, 'nr $1'); 7272 } 7273 else if (currentLang === 'nl') { 7274 html = html.replace(/Steentjes\s+DMC\s+nr\.(?:\s| )*(\d+)/gi, 'DMC steentjes (diamantjes) nr. $1'); 7275 html = html.replace(/DMC\s+Steentjes\s+nr\.(?:\s| )*(\d+)/gi, 'DMC steentjes (diamantjes) nr. $1'); 7276 html = html.replace(/(?:n°|no\.?|nr\.?)\s*(\d+)/gi, 'nr. $1'); 7277 } 7278 else if (currentLang === 'bg') { 7279 html = html.replace(/(?:ÐиаманÑи|Drills)\s+DMC\s+(?:n°|no\.?|nr\.?|â)(?:\s| )*(\d+)/gi, 'DMC диаманÑи (мÑниÑÑа) â $1'); 7280 html = html.replace(/DMC\s+(?:ÐиаманÑи|Drills)\s+(?:n°|no\.?|nr\.?|â)(?:\s| )*(\d+)/gi, 'DMC диаманÑи (мÑниÑÑа) â $1'); 7281 html = html.replace(/(?:n°|no\.?|nr\.?|â)\s*(\d+)/gi, 'â $1'); 7282 html = html.replace(/ФоÑма\s+на\s+диаманÑиÑе/gi, 'ФоÑма на диаманÑиÑе'); 7283 7284 var texteNettoye = targetNode.textContent.trim(); 7285 if (texteNettoye === 'Square' || texteNettoye === ': Square' || texteNettoye === 'ÐлоÑад' || texteNettoye === 'ÐвадÑаÑни') { 7286 html = html.replace(/Square|ÐлоÑад|ÐвадÑаÑни/gi, 'ÐвадÑаÑни'); 7287 } 7288 if (texteNettoye === 'KÑÑг' || texteNettoye === ': ÐÑÑг' || texteNettoye === 'ÐÑÑгли' || texteNettoye === 'Round') { 7289 html = html.replace(/Round|KÑÑг|ÐÑÑгли/gi, 'ÐÑÑгли'); 7290 } 7291 } 7292 else if (currentLang === 'hu') { 7293 html = html.replace(/(?:Gyémánt|Gyémántok|Drills)\s+DMC\s+(?:n°|no\.?|nr\.?|sz\.?)(?:\s| )*(\d+)/gi, 'DMC gyémántok (kövek) sz. $1'); 7294 html = html.replace(/DMC\s+(?:Gyémánt|Gyémántok|Drills)\s+(?:n°|no\.?|nr\.?|sz\.?)(?:\s| )*(\d+)/gi, 'DMC gyémántok (kövek) sz. $1'); 7295 html = html.replace(/(?:n°|no\.?|nr\.?|sz\.?)\s*(\d+)/gi, 'sz. $1'); 7296 html = html.replace(/A\s+gyémántok\s+alakja/gi, 'Gyémánt alakja'); 7297 7298 var texteNettoye = targetNode.textContent.trim(); 7299 if (texteNettoye === 'Square' || texteNettoye === ': Square' || texteNettoye === 'Négyzet' || texteNettoye === ': Négyzet') { 7300 html = html.replace(/Square|Négyzet/gi, 'Négyzet alakú'); 7301 } 7302 if (texteNettoye === 'Kerek' || texteNettoye === ': Kerek' || texteNettoye === 'Round' || texteNettoye === ': Round') { 7303 html = html.replace(/Round|Kerek/gi, 'Kerek'); 7304 } 7305 } 7306 7307 if (targetNode.innerHTML !== html) { 7308 targetNode.innerHTML = html; 7309 } 7310 }); 7311 7312 var variationsForm = document.querySelector('.variations'); 7313 if (variationsForm) { 7314 window.dsObserver.observe(variationsForm, { childList: true, subtree: true, characterData: true }); 7315 } 7316 var descNode = document.querySelector('.product-description'); 7317 if (descNode) { 7318 window.dsObserver.observe(descNode, { childList: true, subtree: true, characterData: true }); 7319 } 7320 } 7321 7322 window.dsObserver = new MutationObserver(function(mutations) { 7323 appliquerCorrectionsMulti(); 7324 }); 7325 7326 appliquerCorrectionsMulti(); 7327 }); 7328 </script>
7328 7329
7329<script type="text/javascript"> 7330 document.addEventListener('DOMContentLoaded', function() { 7331 var targetNode = document.querySelector('.product-description, .woocommerce-product-details__short-description'); 7332 if (!targetNode) return; 7333 7334 var currentLang = "fr"; 7335 var observer; 7336 7337 function corrigerDescription() { 7338 var html = targetNode.innerHTML; 7339 var needsModification = html.includes('ð¨') || html.includes('Kleur:'); 7340 7341 if (currentLang === 'nl' && !needsModification) { 7342 if (/Hoge(\s|<[^>]+>| )+kwaliteit/giu.test(html) || 7343 /(Kleur|Color)(\s|<[^>]+>| )+(familie|family)/giu.test(html) || 7344 /Standaardmaat/giu.test(html)) { 7345 needsModification = true; 7346 } 7347 } 7348 7349 if (needsModification) { 7350 if (observer) observer.disconnect(); 7351 7352 // 1. Nettoyage Palette (Uniquement dans la description) 7353 html = html.replace(/ð¨(?:.*?)(?:<br\s*\/?>|\r?\n|$)/gu, ''); 7354 7355 // 2. Nettoyage ligne couleur "Kleur:" spécifique (Uniquement dans la description) 7356 html = html.replace(/Kleur:\s*[^<]*<br\s*\/?>/giu, ''); 7357 7358 // 3. Emojis et termes NL 7359 if (currentLang === 'nl') { 7360 html = html.replace(/Hoge(\s|<[^>]+>| )+kwaliteit/giu, 'â Hoge kwaliteit'); 7361 html = html.replace(/(Kleur|Color)(\s|<[^>]+>| )+(familie|family)/giu, 'ð Kleur Familie'); 7362 html = html.replace(/Standaardmaat/giu, 'â Standaardmaat'); 7363 } 7364 7365 targetNode.innerHTML = html; 7366 7367 if (observer) observer.observe(targetNode, { childList: true, subtree: true, characterData: true }); 7368 } 7369 } 7370 7371 observer = new MutationObserver(corrigerDescription); 7372 observer.observe(targetNode, { childList: true, subtree: true, characterData: true }); 7373 corrigerDescription(); 7374 }); 7375 </script>
7375 7376
7376<script> 7377 (function () { 7378 var c = document.body.className; 7379 c = c.replace(/woocommerce-no-js/, 'woocommerce-js'); 7380 document.body.className = c; 7381 })(); 7382 </script>
7382 7383
7383<script type="text/template" id="tmpl-variation-template"> 7384 <div class="woocommerce-variation-description">{{{ data.variation.variation_description }}}</div> 7385 <div class="woocommerce-variation-price">{{{ data.variation.price_html }}}</div> 7386 <div class="woocommerce-variation-availability">{{{ data.variation.availability_html }}}</div> 7387</script>
vendor: 1 bytes, line 7387
7387
7388<script type="text/template" id="tmpl-unavailable-variation-template"> 7389 <p role="alert">Désolé, ce produit nâest pas disponible. Veuillez choisir une combinaison différente.</p> 7390</script>
vendor: 1 bytes, line 7390
7390
7391<script id="wc-aelia-foundation-classes-frontend-js" src="https://diamant-strass-dmc.com/wp-content/plugins/wc-aelia-foundation-classes/src/js/frontend/frontend.js"></script>
vendor: 1 bytes, line 7391
7391
7392<script id="wc-aelia-currency-switcher-js-extra"> 7393var wc_aelia_currency_switcher_params = {"current_exchange_rate_from_base":"1.1257","selected_currency":"USD"}; 7394//# sourceURL=wc-aelia-currency-switcher-js-extra 7395</script>
vendor: 1 bytes, line 7395
7395
7396<script id="wc-aelia-currency-switcher-js" src="https://diamant-strass-dmc.com/wp-content/plugins/woocommerce-aelia-currencyswitcher/src/js/frontend/common/build/index.js?ver=5.3.9.260811"></script>
vendor: 1 bytes, line 7396
7396
7397<script id="woocommerce-cache-handler-frontend-js-extra"> 7398var woocommerce_cache_handler_params = {"ajax_action":"woocommerce_cache_handler_ajax","ajax_url":"/wp-admin/admin-ajax.php","home_url":"https://diamant-strass-dmc.com","wp_nonce":"1bccdc73e0","currencies":{"ARS":{"symbol":"AR$"},"AUD":{"symbol":"AU$"},"BGN":{"symbol":"\u043b\u0432."},"BOB":{"symbol":"Bs."},"BRL":{"symbol":"R$"},"CAD":{"symbol":"CA$"},"CHF":{"symbol":"CHF"},"CLP":{"symbol":"CL$"},"COP":{"symbol":"COL$"},"CRC":{"symbol":"\u20a1"},"CUP":{"symbol":"CUP$"},"CZK":{"symbol":"K\u010d"},"DKK":{"symbol":"kr."},"EGP":{"symbol":"\u062c.\u0645"},"EUR":{"symbol":"\u20ac"},"GBP":{"symbol":"\u00a3"},"GYD":{"symbol":"G$"},"HUF":{"symbol":"Ft"},"IMP":{"symbol":"\u00a3"},"MDL":{"symbol":"lei"},"MXN":{"symbol":"MX$"},"NOK":{"symbol":"kr"},"NZD":{"symbol":"NZ$"},"PEN":{"symbol":"S/"},"PHP":{"symbol":"\u20b1"},"PLN":{"symbol":"z\u0142"},"PYG":{"symbol":"\u20b2"},"RON":{"symbol":"lei"},"SEK":{"symbol":"kr"},"SRD":{"symbol":"SR$"},"USD":{"symbol":"$"},"UYU":{"symbol":"UY$"},"XAF":{"symbol":"F CFA"},"XOF":{"symbol":"F CFA"},"XPF":{"symbol":"XPF"},"BYN":{"symbol":"\u0440\u0443\u0431."},"VES":{"symbol":"Bs."}}}; 7399//# sourceURL=woocommerce-cache-handler-frontend-js-extra 7400</script>
vendor: 1 bytes, line 7400
7400
7401<script id="woocommerce-cache-handler-frontend-js" src="https://diamant-strass-dmc.com/wp-content/plugins/woocommerce-cache-handler/src/js/frontend/frontend.js"></script>
vendor: 1 bytes, line 7401
7401
7402<script id="woocommerce-cache-handler-frontend-ajax-loader-js" src="https://diamant-strass-dmc.com/wp-content/plugins/woocommerce-cache-handler/src/js/frontend/frontend-ajax-loader.js"></script>
vendor: 1 bytes, line 7402
7402
7403<script id="underscore-js" src="https://diamant-strass-dmc.com/wp-includes/js/underscore.min.js?ver=1.13.8"></script>
vendor: 1 bytes, line 7403
7403
7404<script id="wp-util-js-extra"> 7405var _wpUtilSettings = {"ajax":{"url":"/wp-admin/admin-ajax.php"}}; 7406//# sourceURL=wp-util-js-extra 7407</script>
vendor: 1 bytes, line 7407
7407
7408<script id="wp-util-js" src="https://diamant-strass-dmc.com/wp-includes/js/wp-util.min.js?ver=7.0.4"></script>
vendor: 1 bytes, line 7408
7408
7409<script id="wp-api-request-js-extra"> 7410var wpApiSettings = {"root":"https://diamant-strass-dmc.com/wp-json/","nonce":"5dfa70ec7e","versionString":"wp/v2/"}; 7411//# sourceURL=wp-api-request-js-extra 7412</script>
vendor: 1 bytes, line 7412
7412
7413<script id="wp-api-request-js" src="https://diamant-strass-dmc.com/wp-includes/js/api-request.min.js?ver=7.0.4"></script>
vendor: 1 bytes, line 7413
7413
7414<script id="wp-hooks-js" src="https://diamant-strass-dmc.com/wp-includes/js/dist/hooks.min.js?ver=7496969728ca0f95732d"></script>
vendor: 1 bytes, line 7414
7414
7415<script id="wp-i18n-js" src="https://diamant-strass-dmc.com/wp-includes/js/dist/i18n.min.js?ver=781d11515ad3d91786ec"></script>
vendor: 1 bytes, line 7415
7415
7416<script id="wp-i18n-js-after"> 7417wp.i18n.setLocaleData( { 'text direction\u0004ltr': [ 'ltr' ] } ); 7418//# sourceURL=wp-i18n-js-after 7419</script>
vendor: 1 bytes, line 7419
7419
7420<script id="wp-url-js" src="https://diamant-strass-dmc.com/wp-includes/js/dist/url.min.js?ver=bb0f766c3d2efe497871"></script>
vendor: 1 bytes, line 7420
7420
7421<script id="wp-api-fetch-js-translations"> 7422( function( domain, translations ) { 7423 var localeData = translations.locale_data[ domain ] || translations.locale_data.messages; 7424 localeData[""].domain = domain; 7425 wp.i18n.setLocaleData( localeData, domain ); 7426} )( "default", {"translation-revision-date":"2026-08-07 02:36:21+0000","generator":"WPML String Translation 3.3.2","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n != 1;","lang":"fr_FR"},"You are probably offline.":["Vous \u00eates probablement hors ligne."],"Media upload failed. If this is a photo or a large image, please scale it down and try again.":["Le t\u00e9l\u00e9versement du m\u00e9dia a \u00e9chou\u00e9. S\u2019il s\u2019agit d\u2019une photo ou d\u2019une grande image, veuillez la redimensionner puis r\u00e9essayer."],"The response is not a valid JSON response.":["La r\u00e9ponse n\u2019est pas une r\u00e9ponse JSON valide."],"An unknown error occurred.":["Une erreur inconnue s\u2019est produite."],"Could not get a valid response from the server.":["Impossible d\u2019obtenir du serveur une r\u00e9ponse valide."],"Unable to connect. Please check your Internet connection.":["Impossible de se connecter. Veuillez v\u00e9rifier votre connexion Internet."]}}} ); 7427//# sourceURL=wp-api-fetch-js-translations 7428</script>
vendor: 1 bytes, line 7428
7428
7429<script id="wp-api-fetch-js" src="https://diamant-strass-dmc.com/wp-includes/js/dist/api-fetch.min.js?ver=d7efe4dc1468d36c39b8"></script>
vendor: 1 bytes, line 7429
7429
7430<script id="wp-api-fetch-js-after"> 7431wp.apiFetch.use( wp.apiFetch.createRootURLMiddleware( "https://diamant-strass-dmc.com/wp-json/" ) ); 7432wp.apiFetch.nonceMiddleware = wp.apiFetch.createNonceMiddleware( "5dfa70ec7e" ); 7433wp.apiFetch.use( wp.apiFetch.nonceMiddleware ); 7434wp.apiFetch.use( wp.apiFetch.mediaUploadMiddleware ); 7435wp.apiFetch.nonceEndpoint = "https://diamant-strass-dmc.com/wp-admin/admin-ajax.php?action=rest-nonce"; 7436//# sourceURL=wp-api-fetch-js-after 7437</script>
vendor: 1 bytes, line 7437
7437
7438<script id="wp-polyfill-js" src="https://diamant-strass-dmc.com/wp-includes/js/dist/vendor/wp-polyfill.min.js?ver=3.15.0"></script>
vendor: 1 bytes, line 7438
7438
7439<script id="woo-variation-swatches-js-extra"> 7440var woo_variation_swatches_options = {"show_variation_label":"1","clear_on_reselect":"","variation_label_separator":":","is_mobile":"","show_variation_stock":"","stock_label_threshold":"5","cart_redirect_after_add":"no","enable_ajax_add_to_cart":"no","cart_url":"https://diamant-strass-dmc.com/panier/","is_cart":""}; 7441//# sourceURL=woo-variation-swatches-js-extra 7442</script>
vendor: 1 bytes, line 7442
7442
7443<script id="woo-variation-swatches-js" src="https://diamant-strass-dmc.com/wp-content/plugins/woo-variation-swatches/assets/js/frontend.min.js?ver=2.3.0"></script>
vendor: 1 bytes, line 7443
7443
7444<script id="ct-scripts-js-extra"> 7445var ct_localizations = {"ajax_url":"https://diamant-strass-dmc.com/wp-admin/admin-ajax.php","public_url":"https://diamant-strass-dmc.com/wp-content/themes/blocksy/static/bundle/","rest_url":"https://diamant-strass-dmc.com/wp-json/","search_url":"https://diamant-strass-dmc.com/search/QUERY_STRING/","show_more_text":"Afficher plus","more_text":"Plus","search_live_results":"R\u00e9sultats de recherche","search_live_no_results":"Aucun r\u00e9sultat","search_live_no_result":"Aucun r\u00e9sultat","search_live_one_result":"Vous avez %s r\u00e9sultat. Veuillez appuyer sur Tab pour le s\u00e9lectionner.","search_live_many_results":"Vous avez %s r\u00e9sultats. Veuillez appuyer sur Tab pour en s\u00e9lectionner un.","search_live_stock_status_texts":{"instock":"En stock","outofstock":"En rupture de stock"},"clipboard_copied":"Copi\u00e9\u00a0!","clipboard_failed":"\u00c9chec de la copie","expand_submenu":"D\u00e9plier le menu d\u00e9roulant","collapse_submenu":"Replier le menu d\u00e9roulant","dynamic_js_chunks":[],"dynamic_styles":{"lazy_load":"https://diamant-strass-dmc.com/wp-content/themes/blocksy/static/bundle/non-critical-styles.min.css?ver=2.1.40","search_lazy":"https://diamant-strass-dmc.com/wp-content/themes/blocksy/static/bundle/non-critical-search-styles.min.css?ver=2.1.40","back_to_top":"https://diamant-strass-dmc.com/wp-content/themes/blocksy/static/bundle/back-to-top.min.css?ver=2.1.40"},"dynamic_styles_selectors":[{"selector":".ct-header-cart, #woo-cart-panel","url":"https://diamant-strass-dmc.com/wp-content/themes/blocksy/static/bundle/cart-header-element-lazy.min.css?ver=2.1.40"},{"selector":".flexy","url":"https://diamant-strass-dmc.com/wp-content/themes/blocksy/static/bundle/flexy.min.css?ver=2.1.40"},{"selector":".ct-pagination","url":"https://diamant-strass-dmc.com/wp-content/themes/blocksy/static/bundle/pagination.min.css?ver=2.1.40"}],"lang":"fr"}; 7446//# sourceURL=ct-scripts-js-extra 7447</script>
vendor: 1 bytes, line 7447
7447
7448<script id="ct-scripts-js" src="https://diamant-strass-dmc.com/wp-content/themes/blocksy/static/bundle/main.js?ver=2.1.40"></script>
vendor: 1 bytes, line 7448
7448
7449<script id="cart-widget-js-extra"> 7450var actions = {"current_language":"fr","force_reset":"0"}; 7451//# sourceURL=cart-widget-js-extra 7452</script>
vendor: 1 bytes, line 7452
7452
7453<script data-wp-strategy="defer" defer id="cart-widget-js" src="https://diamant-strass-dmc.com/wp-content/plugins/woocommerce-multilingual/res/js/cart_widget.min.js?ver=5.5.7"></script>
vendor: 1 bytes, line 7453
7453
7454<script id="xoo-wsc-main-js-js-extra"> 7455var xoo_wsc_params = {"adminurl":"https://diamant-strass-dmc.com/wp-admin/admin-ajax.php","wc_ajax_url":"/?wc-ajax=%%endpoint%%","qtyUpdateDelay":"500","notificationTime":"5000","html":{"successNotice":"\u003Cul class=\"xoo-wsc-notices\"\u003E\u003Cli class=\"xoo-wsc-notice-success\"\u003E\u003Cspan class=\"xoo-wsc-icon-check_circle\"\u003E\u003C/span\u003E%s%\u003C/li\u003E\u003C/ul\u003E","errorNotice":"\u003Cul class=\"xoo-wsc-notices\"\u003E\u003Cli class=\"xoo-wsc-notice-error\"\u003E\u003Cspan class=\"xoo-wsc-icon-cross\"\u003E\u003C/span\u003E%s%\u003C/li\u003E\u003C/ul\u003E"},"strings":{"maxQtyError":"Only %s% in stock","stepQtyError":"Quantity can only be purchased in multiple of %s%","calculateCheckout":"Please use checkout form to calculate shipping","couponEmpty":"Please enter promo code"},"nonces":{"update_shipping_method_nonce":"9b1c2cc6d6"},"isCheckout":"","isCart":"","sliderAutoClose":"1","shippingEnabled":"1","couponsEnabled":"","autoOpenCart":"yes","addedToCart":"","ajaxAddToCart":"yes","skipAjaxForData":[],"showBasket":"hide_empty","flyToCart":"no","flyToCartTime":"1500","productFlyClass":"","refreshCart":"no","fetchDelay":"200","triggerClass":"","drawerWait":"500","spSlide":{"enable":"yes","auto":true,"pause":"5000","item":1,"speed":1400,"loop":true,"pauseOnHover":true},"cardAnimate":{"enable":"yes","type":"slideUp","event":"back_hover","duration":"0.5"},"bar":{"singleCelebration":"RealisticLook","fullCelebration":"SchoolPride"},"productLayout":"rows","saveForLaterNeedsLogin":"","fetchCart":"cart_open","menuCartHideOnEmpty":[""],"shortcodeEls":{"subtotal":".xoo-wsc-sc-subt","count":".xoo-wsc-sc-count","icon":".xoo-wsc-sc-bki"}}; 7456//# sourceURL=xoo-wsc-main-js-js-extra 7457</script>
vendor: 1 bytes, line 7457
7457
7458<script data-wp-strategy="defer" defer id="xoo-wsc-main-js-js" src="https://diamant-strass-dmc.com/wp-content/plugins/woocommerce-side-cart-premium/assets/js/xoo-wsc-main.js?ver=4.9.1"></script>
vendor: 1 bytes, line 7458
7458
7459<script id="wc-add-to-cart-variation-js-extra"> 7460var wc_add_to_cart_variation_params = {"wc_ajax_url":"/?wc-ajax=%%endpoint%%","i18n_no_matching_variations_text":"D\u00e9sol\u00e9, aucun produit ne r\u00e9pond \u00e0 vos crit\u00e8res. Veuillez choisir une combinaison diff\u00e9rente.","i18n_make_a_selection_text":"Veuillez s\u00e9lectionner des options du produit avant de l\u2019ajouter \u00e0 votre panier.","i18n_unavailable_text":"D\u00e9sol\u00e9, ce produit n\u2019est pas disponible. Veuillez choisir une combinaison diff\u00e9rente.","i18n_reset_alert_text":"Votre s\u00e9lection a \u00e9t\u00e9 r\u00e9initialis\u00e9e. Veuillez s\u00e9lectionner des options du produit avant de l\u2019ajouter \u00e0 votre panier.","woo_variation_swatches_ajax_variation_threshold_min":"0","woo_variation_swatches_ajax_variation_threshold_max":"100","woo_variation_swatches_total_children":"46"}; 7461//# sourceURL=wc-add-to-cart-variation-js-extra 7462</script>
vendor: 1 bytes, line 7462
7462
7463<script data-wp-strategy="defer" defer id="wc-add-to-cart-variation-js" src="https://diamant-strass-dmc.com/wp-content/plugins/woocommerce/assets/js/frontend/add-to-cart-variation.min.js?ver=11.0.1"></script>
7463 7464 <!-- Meta Pixel Code (JDMC MU-plugin) --> 7465
7465<script>
vendor: 450 bytes, lines 7465-7475
7465 7466 !function(f,b,e,v,n,t,s) 7467 {if(f.fbq)return;n=f.fbq=function(){n.callMethod? 7468 n.callMethod.apply(n,arguments):n.queue.push(arguments)}; 7469 if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0'; 7470 n.queue=[];t=b.createElement(e);t.async=!0; 7471 t.src=v;s=b.getElementsByTagName(e)[0]; 7472 s.parentNode.insertBefore(t,s)}(window, document,'script', 7473 'https://connect.facebook.net/en_US/fbevents.js'); 7474 7475 fbq('init', '
74751893316194727350
vendor: 33 bytes, lines 7475-7477
7475', {"country":"FR"}); 7476 7477
7477if (typeof fbq === 'function') { 7478 fbq('track', 'PageView'); 7479 } 7480 </script>
7480 7481 <noscript> 7482 <img height="1" width="1" style="display:none" 7483 src="https://www.facebook.com/tr?id=1893316194727350&ev=PageView&noscript=1" 7484 alt="" /> 7485 </noscript> 7486 <!-- End Meta Pixel Code --> 7487
7487<script> 7488 (function($){ 7489 $(function(){ 7490 var $wrapper = $('.jdmc-ai-wrapper'); 7491 if (!$wrapper.length) return; 7492 7493 var ajaxUrl = "https:\/\/diamant-strass-dmc.com\/wp-admin\/admin-ajax.php"; 7494 7495 /** 7496 * Trouve le select "Dimensions de la toile" ACTIF pour le contexte donné. 7497 * - context = "direct" => .jdmc-ai-size-zones-direct .jdmc-ai-taille-select-direct 7498 * - context = "ia" => .jdmc-ai-size-zones-ia .jdmc-ai-taille-select-ia 7499 * 7500 * On essaie d'abord celui dont lâoption sélectionnée contient "cm" (vraie dimension), 7501 * sinon on prend le premier du groupe. 7502 */ 7503 function jdmcDpFindActiveSizeSelect(context) { 7504 var selector = (context === 'direct') 7505 ? '.jdmc-ai-size-zones-direct .jdmc-ai-taille-select-direct' 7506 : '.jdmc-ai-size-zones-ia .jdmc-ai-taille-select-ia'; 7507 7508 var $all = $wrapper.find(selector); 7509 if (!$all.length) return $(); 7510 7511 var $chosen = $(); 7512 7513 $all.each(function(){ 7514 var $s = $(this); 7515 var txt = $s.find('option:selected').text() || ''; 7516 var norm = txt.toLowerCase(); 7517 if (norm.indexOf('cm') !== -1) { 7518 $chosen = $s; 7519 return false; // break 7520 } 7521 }); 7522 7523 if ($chosen.length) { 7524 return $chosen; 7525 } 7526 7527 return $all.first(); 7528 } 7529 7530 /** 7531 * Largeur en cm utilisée pour le preview. 7532 * Priorité au champ "Dimensions de la toile" actif. 7533 */ 7534 function jdmcDpGetWidthCm(context) { 7535 var widthCm = 30; 7536 var $sel = jdmcDpFindActiveSizeSelect(context); 7537 7538 if ($sel && $sel.length) { 7539 var txt = $sel.find('option:selected').text() || $sel.val() || ''; 7540 txt = String(txt).replace(',', '.'); 7541 var m = txt.match(/(\d+(?:\.\d+)?)/); 7542 if (m) { 7543 var v = parseFloat(m[1]); 7544 if (!isNaN(v) && v > 0) { 7545 return v; 7546 } 7547 } 7548 } 7549 7550 // Fallback : n'importe quel select visible du formulaire avec "cm" 7551 $wrapper.closest('form').find('select:visible option:selected').each(function(){ 7552 var txt = $(this).text() || ''; 7553 if (txt.toLowerCase().indexOf('cm') === -1) return; 7554 7555 txt = String(txt).replace(',', '.'); 7556 var m = txt.match(/(\d+(?:\.\d+)?)/); 7557 if (m) { 7558 var v = parseFloat(m[1]); 7559 if (!isNaN(v) && v > 0) { 7560 widthCm = v; 7561 return false; // break 7562 } 7563 } 7564 }); 7565 7566 return widthCm; 7567 } 7568 7569 /** 7570 * Label de dimensions (ex : "30 x 40 cm"). 7571 */ 7572 function jdmcDpGetDimLabel(context) { 7573 var $sel = jdmcDpFindActiveSizeSelect(context); 7574 if ($sel && $sel.length) { 7575 var txt = $sel.find('option:selected').text() || $sel.val() || ''; 7576 txt = $.trim(String(txt)); 7577 if (txt.length) return txt; 7578 } 7579 return ''; 7580 } 7581 7582 /** 7583 * Clone interactif du champ "Dimensions de la toile" dans la zone de preview. 7584 * 7585 * - Clone le champ du groupe actif (Carré / Portrait / Paysage) pour ce contexte. 7586 * - On enlève name / id / data-attribute_* pour ne pas perturber WooCommerce. 7587 * - Changer le clone => met à jour lâoriginal + déclenche .trigger('change'). 7588 * - Changer lâoriginal => répercute la valeur dans le clone. 7589 */
7590 function jdmcDpSyncSizeSelect(context, $box) { 7591 if (!$box || !$box.length) return; 7592 7593 var $container = $box.find('.jdmc-dp-size-select'); 7594 if (!$container.length) return; 7595 7596 var $orig = jdmcDpFindActiveSizeSelect(context); 7597 7598 $container.empty(); 7599 7600 if (!$orig || !$orig.length) { 7601 return; 7602 } 7603 7604 var $clone = $orig.clone(false); 7605 7606 // On enlève les attributs sensibles 7607 $clone.removeAttr('id'); 7608 $clone.removeAttr('name'); 7609 7610 if ($clone[0] && $clone[0].attributes) { 7611 $.each($clone[0].attributes, function(i, attr){ 7612 if (!attr || !attr.name) return; 7613 if (attr.name.indexOf('data-attribute_') === 0) { 7614 $clone.removeAttr(attr.name); 7615 } 7616 }); 7617 } 7618 7619 $clone.addClass('jdmc-dp-size-select-clone-' + context); 7620 $container.append($clone); 7621 7622 var syncing = false; 7623 7624 // Clone -> Original 7625 $clone.on('change', function() { 7626 if (syncing) return; 7627 syncing = true; 7628 var val = $clone.val(); 7629 $orig.val(val).trigger('change'); 7630 syncing = false; 7631 }); 7632 7633 // Original -> Clone 7634 $orig.off('jdmc_dp_sync_' + context).on('jdmc_dp_sync_' + context, function() { 7635 if (syncing) return; 7636 syncing = true; 7637 $clone.val($orig.val()); 7638 syncing = false; 7639 }); 7640 7641 // Premier alignement 7642 $orig.trigger('jdmc_dp_sync_' + context); 7643 } 7644 7645 function jdmcDpEnsureBox(context) { 7646 var cls = (context === 'direct') ? 'jdmc-dp-pixel-preview-direct' : 'jdmc-dp-pixel-preview-ia'; 7647 var $box = $wrapper.find('.' + cls).first(); 7648 7649 var lang = window.jdmcAiLang || 'fr'; 7650 var simTextMap = { 7651 "fr": "Simulation d'une zone du DP selon la taille de toile sélectionnée :", 7652 "en": "Simulation of a section of the diamond painting based on its size:", 7653 "es": "Simulación de una zona del diamond painting según sus dimensiones:", 7654 "de": "Simulation eines Bereichs des Diamond Paintings entsprechend seinen MaÃen:", 7655 "it": "Simulazione di una zona del diamond painting in base alle sue dimensioni:", 7656 "nl": "Simulatie van een deel van de diamond painting volgens de gekozen afmetingen:", 7657 "pt-pt": "Simulação de uma zona do diamond painting de acordo com as suas dimensões:", 7658 "sv": "Simulering av en del av diamond painting utifrÃ¥n dess mÃ¥tt:", 7659 "bg": "СимÑлаÑÐ¸Ñ Ð½Ð° зона Ð¾Ñ Ð´Ð¸Ð°Ð¼Ð°Ð½Ñен гоблен ÑпоÑед избÑаниÑе ÑазмеÑи:", 7660 "da": "Simulation af et omrÃ¥de af diamond painting efter de valgte mÃ¥l:", 7661 "el": "Î ÏοÏομοίÏÏη ÏμήμαÏÎ¿Ï ÏÎ¿Ï diamond painting ÏÏμÏÏνα με ÏÎ¹Ï Î´Î¹Î±ÏÏάÏειÏ:", 7662 "hu": "A diamond painting egy részének szimulációja a választott méretek alapján:", 7663 "no": "Simulering av en del av diamond painting basert pÃ¥ valgte mÃ¥l:", 7664 "pl": "Symulacja fragmentu diamond painting zgodnie z wybranymi wymiarami:", 7665 "ro": "Simulare a unei zone din diamond painting în funcÈie de dimensiuni:" 7666 }; 7667 var simText = simTextMap[lang] || simTextMap["en"]; 7668 7669 if (!$box.length) { 7670 $box = $( 7671 '<div class="jdmc-dp-pixel-preview '+cls+'" style="margin-top:10px;">' + 7672 '<p class="jdmc-ai-label"></p>' + 7673 '<div class="jdmc-dp-size-select" style="margin:4px 0;"></div>' + 7674 '<img style="width:100%;max-width:400px; height:auto; display:block;" />' + 7675 '<div class="jdmc-dp-meta" style="font-size:12px; color:#666; margin-top:4px;"></div>' + 7676 '</div>' 7677 ); 7678 7679 $box.find('.jdmc-ai-label').text(simText); 7680 7681 if (context === 'direct') { 7682 var $after = $wrapper.find('.jdmc-ai-photo-wrapper-direct').last(); 7683 if ($after.length) { 7684 $after.after($box); 7685 } else { 7686 $wrapper.append($box); 7687 } 7688 } else { 7689 var $afterIa = $wrapper.find('.jdmc-ai-preview').first(); 7690 if ($afterIa.length) { 7691 $afterIa.after($box); 7692 } else { 7693 $wrapper.append($box); 7694 } 7695 } 7696 } 7697 7698 return $box; 7699 } 7700
7701 function jdmcDpTriggerPreview(context, src) { 7702 if (!src) return; 7703 if (!ajaxUrl) return; 7704 if (String(src).indexOf('blob:') === 0) return; 7705 7706 var widthCm = jdmcDpGetWidthCm(context); 7707 var dimLabel = jdmcDpGetDimLabel(context); 7708 console.log('[JDMC DP Preview] context=', context, 'src=', src, 'widthCm=', widthCm, 'dimLabel=', dimLabel); 7709 7710 var data = { 7711 action: 'jdmc_dp_preview', 7712 src: src, 7713 width_cm: widthCm 7714 }; 7715 if (dimLabel) { 7716 data.dim_label = dimLabel; 7717 } 7718 7719 $.get(ajaxUrl, data).done(function(resp){ 7720 if (!resp || !resp.success || !resp.data || !resp.data.preview_url) return; 7721 7722 var $box = jdmcDpEnsureBox(context); 7723 // â ï¸ on NE reconstruit PAS le select ici pour éviter les fermetures inopinées 7724 // jdmcDpSyncSizeSelect(context, $box); 7725 7726 $box.find('img').attr('src', resp.data.preview_url); 7727 7728 // 1 perle = 0,25 cm 7729 var beadsW = Math.max(8, Math.round(widthCm / 0.25)); 7730 7731 var lang = window.jdmcAiLang || 'fr'; 7732 var tplMap = { 7733 "fr": "Largeur utilisée pour lâaperçu : %s cm (~%s perles de large)", 7734 "en": "Width used for the preview: %s cm (~%s beads wide)", 7735 "es": "Anchura utilizada para la previsualización: %s cm (~%s cuentas de ancho)", 7736 "de": "Verwendete Breite für die Vorschau: %s cm (~%s Steinchen breit)", 7737 "it": "Larghezza utilizzata per lâanteprima: %s cm (~%s perline di larghezza)", 7738 "nl": "Gebruikte breddte voor de preview: %s cm (~%s steentjes breed)", 7739 "pt-pt": "Largura utilizada para a pré-visualização: %s cm (~%s pedrinhas de largura)", 7740 "sv": "Bredd som används i förhandsvisningen: %s cm (~%s pärlor pÃ¥ bredden)", 7741 "bg": "Ðзползвана ÑиÑина за визÑализаÑиÑÑа: %s cm (~%s мÑниÑÑа по ÑиÑина)", 7742 "da": "Bredde brugt til forhÃ¥ndsvisning: %s cm (~%s diamanter i bredden)", 7743 "el": "ΠλάÏÎ¿Ï ÏÎ¿Ï ÏÏηÏιμοÏοιείÏαι ÏÏην ÏÏοεÏιÏκÏÏηÏη: %s cm (~%s διαμανÏάκια Ïε ÏλάÏοÏ)", 7744 "hu": "Az elÅnézethez használt szélesség: %s cm (~%s gyöngy szélesen)", 7745 "no": "Bredde brukt i forhÃ¥ndsvisningen: %s cm (~%s diamanter i bredden)", 7746 "pl": "SzerokoÅÄ użyta w podglÄ dzie: %s cm (~%s koralików na szerokoÅÄ)", 7747 "ro": "LÄÈime folositÄ pentru previzualizare: %s cm (~%s mÄrgele pe lÄÈime)" 7748 }; 7749 var tpl = tplMap[lang] || tplMap["en"]; 7750 7751 var text = tpl.replace('%s', widthCm).replace('%s', beadsW); 7752 $box.find('.jdmc-dp-meta').text(text); 7753 7754 $box.show(); 7755 }); 7756 } 7757 7758 function getDirectSrc() { 7759 var $img = $wrapper.find('.jdmc-ai-direct-thumb:visible'); 7760 var s = $img.attr('src'); 7761 return s && s.length > 4 ? s : null; 7762 } 7763 7764 function getIaSrc() { 7765 var $img = $wrapper.find('.jdmc-ai-preview img:visible'); 7766 var s = $img.attr('src'); 7767 return s && s.length > 4 ? s : null; 7768 } 7769 7770 // Observer : quand l'image DIRECT change, on relance la preview + on resynchronise le clone 7771 var directObserver = new MutationObserver(function(){ 7772 var s = getDirectSrc(); 7773 if (s) { 7774 jdmcDpTriggerPreview('direct', s); 7775 var $box = jdmcDpEnsureBox('direct'); 7776 jdmcDpSyncSizeSelect('direct', $box); 7777 } 7778 }); 7779 7780 // Observer : quand l'image IA change, idem 7781 var iaObserver = new MutationObserver(function(){ 7782 var s = getIaSrc(); 7783 if (s) { 7784 jdmcDpTriggerPreview('ia', s); 7785 var $box = jdmcDpEnsureBox('ia'); 7786 jdmcDpSyncSizeSelect('ia', $box); 7787 } 7788 }); 7789 7790 var directNode = $wrapper.find('.jdmc-ai-direct-thumb').get(0); 7791 if (directNode) { 7792 directObserver.observe(directNode, { attributes: true, attributeFilter: ['src'] }); 7793 } 7794 var iaNode = $wrapper.find('.jdmc-ai-preview img').get(0); 7795 if (iaNode) { 7796 iaObserver.observe(iaNode, { attributes: true, attributeFilter: ['src'] }); 7797 } 7798 7799 // Changement de taille DIRECT (en haut) 7800 $wrapper.on('change', '.jdmc-ai-size-zones-direct .jdmc-ai-taille-select-direct', function(){ 7801 var src = getDirectSrc(); 7802 if (!src) { 7803 return; // pas d'image, pas de box 7804 } 7805
7806 jdmcDpTriggerPreview('direct', src); 7807 var $box = jdmcDpEnsureBox('direct'); 7808 jdmcDpSyncSizeSelect('direct', $box); 7809}); 7810 7811 7812 // Changement de taille IA (en haut) 7813 $wrapper.on('change', '.jdmc-ai-size-zones-ia .jdmc-ai-taille-select-ia', function(){ 7814 var src = getIaSrc(); 7815 if (!src) { 7816 return; // pas d'image IA visible => on ne montre pas la zone de simulation 7817 } 7818 7819 jdmcDpTriggerPreview('ia', src); 7820 var $box = jdmcDpEnsureBox('ia'); 7821 jdmcDpSyncSizeSelect('ia', $box); 7822}); 7823 7824 7825 // Reset de lâaperçu DP quand une image est supprimée côté frontend 7826 $wrapper.on('jdmc_dp_clear_preview', function(e, origin) { 7827 var contexts = []; 7828 7829 if (origin === 'direct') { 7830 contexts = ['direct']; 7831 } else if (origin === 'ai' || origin === 'edit') { 7832 contexts = ['ia']; 7833 } else { 7834 contexts = ['direct', 'ia']; 7835 } 7836 7837 for (var i = 0; i < contexts.length; i++) { 7838 var ctx = contexts[i]; 7839 var cls = (ctx === 'direct') ? 'jdmc-dp-pixel-preview-direct' : 'jdmc-dp-pixel-preview-ia'; 7840 var $box = $wrapper.find('.' + cls); 7841 if (!$box.length) continue; 7842 7843 $box.find('img').attr('src', ''); 7844 $box.find('.jdmc-dp-meta').text(''); 7845 $box.hide(); 7846 } 7847 }); 7848 7849 // Fallback : changement de taille via d'autres selects du formulaire 7850 $wrapper.closest('form').on('change', 'select', function(){ 7851 var srcD = getDirectSrc(); 7852 if (srcD) { 7853 jdmcDpTriggerPreview('direct', srcD); 7854 var $boxD = jdmcDpEnsureBox('direct'); 7855 jdmcDpSyncSizeSelect('direct', $boxD); 7856 } 7857 7858 var srcI = getIaSrc(); 7859 if (srcI) { 7860 jdmcDpTriggerPreview('ia', srcI); 7861 var $boxI = jdmcDpEnsureBox('ia'); 7862 jdmcDpSyncSizeSelect('ia', $boxI); 7863 } 7864 }); 7865 }); 7866 })(jQuery); 7867 </script>
7867 7868
7868<script> 7869 document.addEventListener("DOMContentLoaded", function () { 7870 const container = document.querySelector('.pi-edd-wrapper.edd-static'); 7871 if (!container) return; 7872 7873 const observer = new MutationObserver(function (mutations, obs) { 7874 for (let mutation of mutations) { 7875 for (let node of mutation.addedNodes) { 7876 if ( 7877 node.nodeType === 1 && 7878 node.classList.contains('pi-edd-wrapper') && 7879 !node.classList.contains('edd-static') 7880 ) { 7881 obs.disconnect(); // Stoppe l'observer 7882 7883 // Transfert du contenu dans le conteneur statique 7884 container.innerHTML = node.innerHTML; 7885 7886 // Supprime le bloc original injecté par le plugin 7887 node.remove(); 7888 } 7889 } 7890 } 7891 }); 7892 7893 observer.observe(document.body, { 7894 childList: true, 7895 subtree: true 7896 }); 7897 }); 7898 </script>
7898 7899
7899<script> 7900 (function($) { 7901 $(function() { 7902 var $form = $('form.variations_form'); 7903 7904 if (!$form.length) { 7905 return; 7906 } 7907 7908 function getLabelWrapper() { 7909 // On recherche l'élément dynamiquement à chaque appel pour éviter les nÅuds détachés du DOM 7910 return $('.berocket_better_labels_image').filter(':visible').first().length 7911 ? $('.berocket_better_labels_image').filter(':visible').first() 7912 : $('.berocket_better_labels_image').first(); 7913 } 7914 7915 function showLabel() { 7916 var $wrapper = getLabelWrapper(); 7917 if (!$wrapper.length) return; 7918 7919 $wrapper.css({ 7920 opacity: 1, 7921 visibility: 'visible' 7922 }); 7923 7924 var $text = $wrapper.find('.b_span_text').first(); 7925 if ($text.length) { 7926 $text.css('opacity', 1); 7927 } 7928 } 7929 7930 function hideLabel() { 7931 var $wrapper = getLabelWrapper(); 7932 if (!$wrapper.length) return; 7933 7934 $wrapper.css({ 7935 opacity: 0, 7936 visibility: 'hidden' 7937 }); 7938 7939 var $text = $wrapper.find('.b_span_text').first(); 7940 if ($text.length) { 7941 $text.css('opacity', 0); 7942 } 7943 } 7944 7945 function updateLabel(variation) { 7946 var $wrapper = getLabelWrapper(); 7947 if (!$wrapper.length) return; 7948 7949 var $text = $wrapper.find('.b_span_text').first(); 7950 if (!$text.length) return; 7951 7952 if (!variation || !variation.is_in_stock) { 7953 hideLabel(); 7954 return; 7955 } 7956 7957 var reg = parseFloat(variation.display_regular_price || variation.display_price); 7958 var sale = parseFloat(variation.display_price); 7959 7960 if (!reg || !sale || sale >= reg) { 7961 hideLabel(); 7962 return; 7963 } 7964 7965 var percent = Math.round((reg - sale) / reg * 100); 7966 7967 if (!percent || percent <= 0) { 7968 hideLabel(); 7969 return; 7970 } 7971 7972 $text.text('-' + percent + '%'); 7973 showLabel(); 7974 } 7975 7976 function findCurrentVariation() { 7977 var variations = $form.data('product_variations'); 7978 if (!variations || !variations.length) return null; 7979 7980 var currentAttrs = {}; 7981 $form.find('select[name^="attribute_"]').each(function() { 7982 var val = $(this).val(); 7983 if (val) { 7984 currentAttrs[$(this).attr('name')] = val; 7985 } 7986 }); 7987 7988 if ($.isEmptyObject(currentAttrs)) return null; 7989 7990 var found = null; 7991 $.each(variations, function(i, v) { 7992 var match = true; 7993 $.each(v.attributes, function(name, value) { 7994 if (value && currentAttrs[name] && currentAttrs[name] !== value) { 7995 match = false; 7996 return false; 7997 } 7998 }); 7999 if (match) { 8000 found = v; 8001 return false; 8002 } 8003 }); 8004 8005 return found; 8006 } 8007 8008 // Ãvénement principal et le plus fiable de WooCommerce 8009 $form.on('show_variation', function(event, variation) { 8010 updateLabel(variation); 8011 }); 8012 8013 $form.on('woocommerce_variation_has_changed', function() { 8014 setTimeout(function() { 8015 var variation = findCurrentVariation(); 8016 updateLabel(variation); 8017 }, 50); 8018 }); 8019 8020 $form.on('reset_data', function() { 8021 hideLabel(); 8022 }); 8023 8024 // Init au chargement 8025 setTimeout(function() { 8026 var variation = findCurrentVariation(); 8027 if (variation) { 8028 updateLabel(variation); 8029 } else { 8030 hideLabel(); 8031 } 8032 }, 100); 8033 }); 8034 })(jQuery); 8035 </script>
8035 8036
8036<script> 8037 document.addEventListener('DOMContentLoaded', function () { 8038 const piEdd = document.querySelector('.pi-edd'); 8039 if (piEdd && !piEdd.parentElement.classList.contains('pi-edd-wrapper')) { 8040 const wrapper = document.createElement('div'); 8041 wrapper.className = 'pi-edd-wrapper loading-placeholder'; 8042 piEdd.parentNode.insertBefore(wrapper, piEdd); 8043 wrapper.appendChild(piEdd); 8044 } 8045 }); 8046 </script>
8046 8047
8047<script> 8048(function(){ 8049 function log(msg){ 8050 var url='/?jslog=' + encodeURIComponent(msg); 8051 if (navigator.sendBeacon) { navigator.sendBeacon(url); } else { (new Image()).src = url; } 8052 } 8053 function watchUrl(u){ return /wc-ajax=|admin-ajax\.php|\/wp-json\/|\/wc\/store/i.test(u); } 8054 8055 var _f = window.fetch; 8056 if (_f) window.fetch = function(input, init){ 8057 var url = (typeof input==='string') ? input : (input.url||''); 8058 var m = (init && init.method) || 'GET'; 8059 var t0 = Date.now(); 8060 return _f(input, init).then(function(res){ 8061 if (watchUrl(url)) { 8062 var dt = Date.now()-t0; 8063 if (!res.ok) { 8064 var cr = (res.headers && res.headers.get) ? (res.headers.get('cf-ray')||'') : ''; 8065 var cs = (res.headers && res.headers.get) ? (res.headers.get('cf-cache-status')||'') : ''; 8066 log('AJAX_ERR '+m+' '+url+' status='+res.status+' t='+dt+'ms cf-ray='+cr+' cf-cache='+cs+' ua='+navigator.userAgent); 8067 } 8068 } 8069 return res; 8070 }).catch(function(e){ 8071 if (watchUrl(url)) log('AJAX_THROW '+m+' '+url+' err='+(e && e.message)); 8072 throw e; 8073 }); 8074 }; 8075 8076 var XO = XMLHttpRequest.prototype.open, XS = XMLHttpRequest.prototype.send; 8077 XMLHttpRequest.prototype.open = function(m,u){ this._m=m; this._u=u; XO.apply(this, arguments); }; 8078 XMLHttpRequest.prototype.send = function(){ 8079 var self=this, t0=Date.now(); 8080 this.addEventListener('loadend', function(){ 8081 if (watchUrl(self._u)) { 8082 var dt=Date.now()-t0, s=self.status||0; 8083 if (!(s>=200 && s<300)) { 8084 try{ 8085 var cr=self.getResponseHeader('cf-ray')||''; 8086 var cs=self.getResponseHeader('cf-cache-status')||''; 8087 log('XHR_ERR '+(self._m||'?')+' '+(self._u||'?')+' status='+s+' t='+dt+'ms cf-ray='+cr+' cf-cache='+cs); 8088 }catch(_){} 8089 } 8090 } 8091 }); 8092 XS.apply(this, arguments); 8093 }; 8094 8095 document.addEventListener('DOMContentLoaded', function(){ 8096 try{ 8097 if (window.jQuery) jQuery(document.body).on('added_to_cart', function(){ 8098 localStorage.setItem('zzz_cart_touched','1'); 8099 localStorage.setItem('zzz_cart_last', String(Date.now())); 8100 }); 8101 }catch(_){} 8102 }); 8103 8104 var wentCheckout = /\/checkout(\/|$|\?)/.test(location.pathname + location.search); 8105 window.addEventListener('beforeunload', function(){ 8106 try{ 8107 var touched = localStorage.getItem('zzz_cart_touched') === '1'; 8108 if (touched && !wentCheckout) { 8109 var hasItemsCookie = document.cookie.indexOf('woocommerce_items_in_cart=') !== -1; 8110 log('EXIT_WITH_CART url='+location.href+' cookie_items='+hasItemsCookie); 8111 } 8112 }catch(_){} 8113 }); 8114})(); 8115</script>
8115 8116
8116<script> 8117 (function() { 8118 'use strict'; 8119 var parentSelector = '.menu-item.wpml-ls-current-language.menu-item-has-children'; 8120 8121 function toggleSubmenu(link, forceClose) { 8122 var isExpanded = link.getAttribute('aria-expanded') === 'true'; 8123 if (forceClose || isExpanded) { 8124 link.setAttribute('aria-expanded', 'false'); 8125 } else { 8126 link.setAttribute('aria-expanded', 'true'); 8127 } 8128 } 8129 8130 function handleKeydown(e) { 8131 var key = e.key || e.keyCode; 8132 if (key === 'Enter' || key === ' ' || key === 13 || key === 32) { 8133 e.preventDefault(); 8134 toggleSubmenu(this); 8135 } else if (key === 'Escape' || key === 'Esc' || key === 27) { 8136 if (this.getAttribute('aria-expanded') === 'true') { 8137 e.preventDefault(); 8138 toggleSubmenu(this, true); 8139 } 8140 } 8141 } 8142 8143 function handleBlur(e) { 8144 var link = this; 8145 var parent = link.closest(parentSelector); 8146 if (!parent) return; 8147 8148 setTimeout(function() { 8149 if (!parent.contains(document.activeElement)) { 8150 toggleSubmenu(link, true); 8151 } 8152 }, 100); 8153 } 8154 8155 function init() { 8156 var parents = document.querySelectorAll(parentSelector); 8157 for (var i = 0; i < parents.length; i++) { 8158 var link = parents[i].querySelector('a[aria-expanded]'); 8159 if (link) { 8160 link.addEventListener('keydown', handleKeydown); 8161 link.addEventListener('blur', handleBlur); 8162 } 8163 } 8164 } 8165 8166 if (document.readyState === 'loading') { 8167 document.addEventListener('DOMContentLoaded', init); 8168 } else { 8169 init(); 8170 } 8171 })(); 8172 </script>
8172 8173
8173<script type="text/javascript"> 8174 (function($) { 8175 $(document).ready(function() { 8176 // On intercepte la réponse AJAX d'Aelia avant qu'elle ne soit traitée par leur script original 8177 $(document).ajaxSuccess(function(event, xhr, settings) { 8178 // On vérifie si c'est l'appel de mise à jour des prix Aelia 8179 if (settings.data && settings.data.indexOf('action=aelia_cs_get_products_prices') !== -1) { 8180 try { 8181 var response = JSON.parse(xhr.responseText); 8182 if (response && response.product_prices_html) { 8183 8184 var prices = Object.entries(response.product_prices_html); 8185 var index = 0; 8186 8187 // Fonction pour injecter les prix par petits paquets (Time-slicing) 8188 function injectPrices() { 8189 var chunk = prices.slice(index, index + 5); // On traite 5 prix à la fois 8190 8191 $.each(chunk, function(i, data) { 8192 var product_id = data[0]; 8193 var price_html = data[1]; 8194 // On cible les conteneurs de prix standards de Woo 8195 $('.aelia_cs_product_price[data-product_id="' + product_id + '"]').html(price_html); 8196 $('.product-id-' + product_id + ' .price').html(price_html); 8197 }); 8198 8199 index += 5; 8200 if (index < prices.length) { 8201 // On laisse 10ms de repos au processeur pour gérer les clics utilisateur 8202 setTimeout(injectPrices, 10); 8203 } 8204 } 8205 8206 // On lance l'injection progressive 8207 injectPrices(); 8208 } 8209 } catch (e) { 8210 console.error("Erreur optimisation Aelia:", e); 8211 } 8212 } 8213 }); 8214 }); 8215 })(jQuery); 8216 </script>
8216 8217
8217<script> 8218 (function() { 8219 const config = { 8220 'de': { slug: '/de/', text: 'Zurück zur Schnellbestellseite' }, 8221 'nl': { slug: '/nl/', text: 'Terug naar de snelbestelpagina' }, 8222 'es': { slug: '/es/', text: 'Volver a la page de pedido rápido' }, 8223 'it': { slug: '/it/', text: 'Torna alla pagina di ordine rapido' }, 8224 'fr': { slug: '/', text: 'Revenir sur la page de commande rapide' } 8225 }; 8226 8227 const masterPaths = [ 8228 '/perles-broderie/sachet-de-perles-pour-diamond-painting-200-diamants/', 8229 '/de/perles-broderie/diamantenbeutel-fuer-diamond-painting-200-diamanten/', 8230 '/nl/perles-broderie/sachet-de-perles-pour-diamond-painting-200-diamants/', 8231 '/es/perles-broderie/sachet-de-perles-pour-diamond-painting-200-diamants/', 8232 '/it/perles-broderie/sachet-de-perles-pour-diamond-painting-200-diamants/' 8233 ]; 8234 8235 const currentUrl = window.location.href; 8236 const isMasterPage = masterPaths.some(path => currentUrl.includes(path)); 8237 8238 if (isMasterPage) { 8239 sessionStorage.setItem('express_checkout_url', currentUrl); 8240 sessionStorage.removeItem('express_banner_closed'); 8241 const styleMaster = document.createElement('style'); 8242 styleMaster.innerHTML = '#ulcmp-bar { display: none !important; }'; 8243 document.head.appendChild(styleMaster); 8244 return; 8245 } 8246 8247 const savedUrl = sessionStorage.getItem('express_checkout_url'); 8248 const isClosed = sessionStorage.getItem('express_banner_closed'); 8249 8250 if (savedUrl && !isClosed) { 8251 let translation = config['fr'].text; 8252 for (let lang in config) { 8253 if (lang !== 'fr' && savedUrl.includes(config[lang].slug)) { 8254 translation = config[lang].text; 8255 break; 8256 } 8257 } 8258 8259 const style = document.createElement('style'); 8260 style.id = 'express-banner-styles'; 8261 style.innerHTML = ` 8262 #ulcmp-bar { display: none !important; } 8263 8264 .footer-menu-inline.has-banner { 8265 padding-bottom: 120px !important; 8266 } 8267 8268 #express-return-banner { 8269 position: fixed; bottom: 0; left: 0; width: 100%; height: 40px; 8270 background-color: #6319FF;
8270 color: white; z-index: 999998; 8271 box-shadow: 0 -5px 20px rgba(0,0,0,0.4); 8272 font-weight: bold; font-size: 15px; display: flex; 8273 align-items: center; justify-content: center; 8274 transition: background-color 0.2s ease-in-out; 8275 font-family: sans-serif; 8276 } 8277 8278 #express-return-banner:hover { 8279 background-color:#3D00DF; 8280 } 8281 8282 #express-return-banner a { 8283 text-decoration: none; color: white; display: flex; 8284 align-items: center; justify-content: center; 8285 width: 100%; height: 100%; 8286 text-transform: uppercase; letter-spacing: 0.5px; 8287 } 8288 8289 #close-express-banner { 8290 position: absolute; right: 8px; top: 50%; 8291 transform: translateY(-50%); 8292 cursor: pointer; 8293 width: 28px; height: 28px; 8294 display: flex; align-items: center; justify-content: center; 8295 font-size: 22px; line-height: 1; 8296 8297 /* Couleur sombre par défaut */ 8298 background-color: #9E008A; 8299 border: 1px solid rgba(255,255,255,0.4); 8300 border-radius: 4px; 8301 color: white; 8302 8303 transition: all 0.2s ease; 8304 z-index: 999999; 8305 } 8306 8307 #close-express-banner:hover { 8308 /* Couleur vive au survol */ 8309 background-color: #D100B7; 8310 border-color: #ffffff; 8311 transform: translateY(-50%) scale(1.05); 8312 } 8313 8314 .xoo-wsc-container, .xoo-wsc-modal { z-index: 9999999 !important; } 8315 8316 @media (max-width: 1024px) { 8317 #express-return-banner { bottom: 70px !important; } 8318 .footer-menu-inline.has-banner { 8319 padding-bottom: 180px !important; 8320 } 8321 } 8322 8323 @media (max-width: 600px) { 8324 #express-return-banner { font-size:11px; } 8325 #express-return-banner a { padding-right: 40px; padding-left: 10px; } 8326 } 8327 `; 8328 document.head.appendChild(style); 8329 8330 const footer = document.querySelector('.footer-menu-inline'); 8331 if(footer) footer.classList.add('has-banner'); 8332 8333 const banner = document.createElement('div'); 8334 banner.id = 'express-return-banner'; 8335 banner.innerHTML = ` 8336 <a href="${savedUrl}">${translation}</a> 8337 <div id="close-express-banner" title="Fermer">×</div> 8338 `; 8339 8340 document.body.appendChild(banner); 8341 8342 document.getElementById('close-express-banner').addEventListener('click', function(e) { 8343 e.preventDefault(); 8344 e.stopPropagation(); 8345 banner.style.display = 'none'; 8346 if(footer) footer.classList.remove('has-banner'); 8347 sessionStorage.setItem('express_banner_closed', 'true'); 8348 }); 8349 } 8350 })(); 8351 </script>
8351 8352
8353<script>(function(){function c(){var b=a.contentDocument||(a.contentWindow&&a.contentWindow.document);if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'a450af9dc86911a3',t:'MTc5MTA4MDIwMQ=='};var a=document.createElement('script');a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script>
8353<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"4530a49e972d46a38bbe131a0f5e8343","spa":2}' crossorigin="anonymous"></script>
8353 8354</body> 8355</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.