1<!doctype html> 2 3<html lang="fr" dir="ltr"> 4 <head> 5 <meta charset="utf-8"> 6 <meta name="viewport" content="width=device-width, initial-scale=1.0, height=device-height, minimum-scale=1.0, maximum-scale=5.0"><title>Votre panier</title><link rel="canonical" href="https://fr.melvita.com/cart"><link rel="shortcut icon" href="//fr.melvita.com/cdn/shop/files/Favicon_Melvita_2.jpg?v=1787671610&width=96"> 7 <link rel="apple-touch-icon" href="//fr.melvita.com/cdn/shop/files/Favicon_Melvita_2.jpg?v=1787671610&width=180"><link rel="preload" href="//fr.melvita.com/cdn/shop/t/4/assets/FreightNeoPro-Medium.woff2?v=114485382750243139801786368499" as="font" type="font/woff2" crossorigin> 8 <link rel="preload" href="//fr.melvita.com/cdn/shop/t/4/assets/FreightNeoPro-Book.woff2?v=111729217730457420941786368499" as="font" type="font/woff2" crossorigin><link rel="preload" href="//fr.melvita.com/cdn/fonts/manrope/manrope_n4.cd2363f838fb1ef03bdb07c829c7c992d417dd64.woff2" as="font" type="font/woff2" crossorigin><meta property="og:type" content="website"> 9 <meta property="og:title" content="Votre panier"><meta property="og:image" content="http://fr.melvita.com/cdn/shop/files/Logo_2_34eea43b-1181-4a27-9ef8-bb81be04fb94.png?v=1786019411&width=2048"> 10 <meta property="og:image:secure_url" content="https://fr.melvita.com/cdn/shop/files/Logo_2_34eea43b-1181-4a27-9ef8-bb81be04fb94.png?v=1786019411&width=2048"> 11 <meta property="og:image:width" content="441"> 12 <meta property="og:image:height" content="100"><meta property="og:url" content="https://fr.melvita.com/cart"> 13<meta property="og:site_name" content="Melvita"><meta name="twitter:card" content="summary"><meta name="twitter:title" content="Votre panier"> 14 <meta name="twitter:description" content="Votre panier"><meta name="twitter:image" content="https://fr.melvita.com/cdn/shop/files/Logo_2_34eea43b-1181-4a27-9ef8-bb81be04fb94.png?crop=center&height=1200&v=1786019411&width=1200"> 15 <meta name="twitter:image:alt" content="">
15<script type="application/ld+json"> 16 { 17 "@context": "https://schema.org", 18 "@type": "BreadcrumbList", 19 "itemListElement": [{ 20 "@type": "ListItem", 21 "position": 1, 22 "name": "Accueil", 23 "item": "https://fr.melvita.com" 24 }] 25 } 26</script>
26<style>@font-face { 27 font-family: Manrope; 28 font-weight: 700; 29 font-style: normal; 30 font-display: fallback; 31 src: url("//fr.melvita.com/cdn/fonts/manrope/manrope_n7.f3a06f9634c15008fe4637ba89fefcc8a1b93fbd.woff2") format("woff2"), 32 url("//fr.melvita.com/cdn/fonts/manrope/manrope_n7.6dba97311355640bc9b07a590354f08bc8fcc79f.woff") format("woff"); 33} 34@font-face { 35 font-family: Manrope; 36 font-weight: 400; 37 font-style: normal; 38 font-display: fallback; 39 src: url("//fr.melvita.com/cdn/fonts/manrope/manrope_n4.cd2363f838fb1ef03bdb07c829c7c992d417dd64.woff2") format("woff2"), 40 url("//fr.melvita.com/cdn/fonts/manrope/manrope_n4.08b75e0e22a3f7267f64ccf115e9fb6d79fc1ce7.woff") format("woff"); 41} 42@font-face { 43 font-family: Manrope; 44 font-weight: 500; 45 font-style: normal; 46 font-display: fallback; 47 src: url("//fr.melvita.com/cdn/fonts/manrope/manrope_n5.8eac14e2b642faa6ca8f5a46c1b0b1ed4a42eee7.woff2") format("woff2"), 48 url("//fr.melvita.com/cdn/fonts/manrope/manrope_n5.ed324e5197c333656fb16f9a7e7ba4fa1168607c.woff") format("woff"); 49} 50@font-face { 51 font-family: Manrope; 52 font-weight: 700; 53 font-style: normal; 54 font-display: fallback; 55 src: url("//fr.melvita.com/cdn/fonts/manrope/manrope_n7.f3a06f9634c15008fe4637ba89fefcc8a1b93fbd.woff2") format("woff2"), 56 url("//fr.melvita.com/cdn/fonts/manrope/manrope_n7.6dba97311355640bc9b07a590354f08bc8fcc79f.woff") format("woff"); 57} 58@font-face { 59 font-family: Archivo; 60 font-weight: 700; 61 font-style: normal; 62 font-display: fallback; 63 src: url("//fr.melvita.com/cdn/fonts/archivo/archivo_n7.651b020b3543640c100112be6f1c1b8e816c7f13.woff2") format("woff2"), 64 url("//fr.melvita.com/cdn/fonts/archivo/archivo_n7.7e9106d320e6594976a7dcb57957f3e712e83c96.woff") format("woff"); 65} 66@font-face { 67 font-family: 'FreightNeo Pro'; 68 src: url('//fr.melvita.com/cdn/shop/t/4/assets/FreightNeoPro-Book.woff2?v=111729217730457420941786368499') format('woff2'); 69 font-weight: 400; 70 font-style: normal; 71 font-display: fallback; 72 } 73 74 @font-face { 75 font-family: 'FreightNeo Pro'; 76 src: url('//fr.melvita.com/cdn/shop/t/4/assets/FreightNeoPro-Medium.woff2?v=114485382750243139801786368499') format('woff2'); 77 font-weight: 500; 78 font-style: normal; 79 font-display: fallback; 80 } 81 82 :root { 83 /* Container */ 84 --container-max-width: 100%; 85 --container-gutter: 1.5rem; 86 87 /* Spacing (Figma: margin-sections 64px mobile / 104px desktop) */ 88 --section-vertical-spacing: 4rem; 89 --section-stack-row-gap: 2rem; 90 91 /* Form settings */ 92 --form-gap: 1rem; /* Gap between fieldset and submit button */ 93 --fieldset-gap: 0.5rem; /* Gap between each form input within a fieldset */ 94 --form-control-gap: 0.5rem; /* Gap between input and label (ignored for floating label) */ 95 --checkbox-control-gap: 0.75rem; /* Horizontal gap between checkbox and its associated label */ 96 --input-padding-block: 0.65rem; /* Vertical padding for input, textarea and native select */ 97 --input-padding-inline: 1rem; /* Horizontal padding for input, textarea and native select */ 98 --checkbox-size: 0.875rem; /* Size (width and height) for checkbox */ 99 100 /* Product listing gaps */ 101 --product-list-column-gap: 0.75rem; 102 --product-list-padding-inline: clamp(0px, var(--product-list-column-gap) , min(1.75rem, var(--product-list-column-gap)));--product-list-row-gap: 2.25rem;/* Other sizes */ 103 --header-group-height: calc(var(--announcement-bar-height, 0px) + var(--countdown-condensed-height, 0px) + var(--header-height, 0px)); 104 --sticky-area-height: calc(var(--announcement-bar-is-sticky, 0) * var(--announcement-bar-height, 0px) + var(--header-is-sticky, 0) * var(--header-height, 0px)); 105 --sticky-offset: calc(var(--announcement-bar-is-sticky, 0) * var(--announcement-bar-height, 0px) + var(--header-is-sticky, 0) * var(--header-is-visible, 1) * var(--header-height, 0px)); 106 107 /* RTL support */ 108 --transform-logical-flip: 1; 109 --transform-origin-start: left; 110 --transform-origin-end: right; 111 112 /** 113 * --------------------------------------------------------------------- 114 * TYPOGRAPHY 115 * --------------------------------------------------------------------- 116 */ 117 118 /* Font properties */ 119 --subheading-font-family: Manrope, sans-serif;
120 --subheading-font-weight: 700; 121 --subheading-font-style: normal; 122 --subheading-font-size: 0.625rem; 123 --subheading-text-transform: none; 124 --subheading-letter-spacing: 0.0em; 125 --heading-font-family: 'FreightNeo Pro', Georgia, serif; 126 --heading-font-weight: 400; 127 --heading-font-style: normal; 128 --heading-text-transform: uppercase; 129 --heading-letter-spacing: -0.02em; 130 --heading-line-height: 1; 131 --heading-italic-font-family: Helvetica, Arial, sans-serif; 132 --heading-italic-font-weight: 400; 133 --heading-italic-font-size-multiplier: 0%; 134 --text-font-family: Manrope, sans-serif; 135 --text-font-weight: 400; 136 --text-font-style: normal; 137 --text-transform: normal; 138 --text-letter-spacing: 0.0em; 139 --text-line-height: 1.4; 140 --text-font-medium-weight: 500; 141 --text-font-bold-weight: 700;--button-font: normal 700 var(--button-font-size) / normal Archivo, sans-serif; 142 --button-text-transform: none; 143 --button-letter-spacing: 0.0em; 144 145 /* Font sizes */--text-heading-size-factor: 1; 146 --text-display-xl: max(0.75rem, clamp(3rem, 1.5916rem + 6.0094vw, 7rem) * var(--text-heading-size-factor)); 147 --text-display-l: max(0.75rem, clamp(2.8125rem, 1.6901rem + 4.7887vw, 6rem) * var(--text-heading-size-factor)); 148 --text-display-m: max(0.75rem, clamp(2.75rem, 2.0458rem + 3.0047vw, 4.75rem) * var(--text-heading-size-factor)); 149 --text-h1: max(0.75rem, clamp(2.5rem, 1.9718rem + 2.2535vw, 4rem) * var(--text-heading-size-factor)); 150 --text-h2: max(0.75rem, 2rem * var(--text-heading-size-factor)); 151 --text-h3: max(0.75rem, clamp(1.5rem, 1.3239rem + 0.7512vw, 2rem) * var(--text-heading-size-factor)); 152 --text-h4: max(0.75rem, clamp(1.25rem, 1.162rem + 0.3756vw, 1.5rem) * var(--text-heading-size-factor)); 153 --text-h5: max(0.75rem, clamp(1.125rem, 1.081rem + 0.1878vw, 1.25rem) * var(--text-heading-size-factor)); 154 --text-h6: max(0.75rem, clamp(1rem, 0.956rem + 0.1878vw, 1.125rem) * var(--text-heading-size-factor)); 155 --text-h7: max(0.75rem, clamp(0.875rem, 0.831rem + 0.1878vw, 1rem) * var(--text-heading-size-factor)); 156 --text-xs: 0.625rem; 157 --text-sm: 0.75rem; 158 --text-base: 0.875rem; 159 --text-lg: 1.0625rem; 160 --button-font-size: 0.875rem; 161 162 /* Rounded variables (used for border radius) */ 163 --rounded-full: 9999px;--section-media-radius: 8px; 164 --subheading-border-radius: 0.0rem; 165 --button-border-radius: 0.5rem; 166 --input-border-radius: 0.5rem; 167 168 /* Packshot variables (global background behind product images, overridable per product) */ 169 --packshot-background: #f0f1f2; 170 171 /* Product card variables */ 172 --product-card-row-count: 2; 173 174 /** 175 * --------------------------------------------------------------------- 176 * OTHER 177 * --------------------------------------------------------------------- 178 */ 179 180 --icon-stroke-width: 1px; 181 --quotation-mark-svg: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" focusable="false" width="62" fill="none" viewBox="0 0 62 57"><path fill="%23000" d="M.79 31.904 11.924.816h12.296l-8.12 31.088h7.888V56.96H.79V31.904Zm37.351 0L49.277.816h12.064l-8.12 31.088h7.888V56.96H38.141V31.904Z" /></svg>'); 182 } 183 184 [dir="rtl"]:root { 185 /* RTL support */ 186 --transform-logical-flip: -1; 187 --transform-origin-start: right; 188 --transform-origin-end: left; 189 } 190 191 @media screen and (min-width: 700px) { 192 :root { 193 --text-xs: 0.75rem; 194 --text-sm: 0.875rem; 195 --text-base: 1.0rem; 196 --text-lg: 1.1875rem; 197 --subheading-font-size: 0.75rem; 198 --text-h2: max(0.75rem, 2.5rem * var(--text-heading-size-factor)); 199 200 /* Spacing */ 201 --container-gutter: 2rem; 202 203 /* Form settings */ 204 --form-gap: 1.25rem; /* Gap between fieldset and submit button */ 205 --fieldset-gap: 0.75rem; /* Gap between each form input within a fieldset */ 206 --input-padding-block: 0.75rem; /* Vertical padding for input, textarea and native select */ 207 208 /* Font sizes */ 209 --button-font-size: 0.875rem; 210 211 /* Product listing gaps */--product-list-column-gap: 3rem; 212 --product-list-row-gap: 4rem;} 213 } 214 215 @media screen and (min-width: 1000px) { 216 :root { 217 /* Spacing settings */ 218 --section-vertical-spacing: 5rem; 219 --section-stack-row-gap: 3rem; 220 } 221 } 222 223 @media screen and (min-width: 1399px) { 224 :root { 225 /* Spacing settings */ 226 --section-vertical-spacing: 6.5rem; 227 --container-gutter: 4rem; 228 } 229 } 230 231 /** 232 * --------------------------------------------------------------------- 233 * COLORS 234 * --------------------------------------------------------------------- 235 */ 236 237 :root {--page-overlay: 0 0 0 / 0.4; 238 --dialog-backdrop-blur: 12px; 239 240 /* Status colors */ 241 --success-background: 237 237 234; 242 --success-text: 102 106 83; 243 --warning-background: 253 241 224; 244 --warning-text: 237 138 0; 245 --error-background: 254 232 232; 246 --error-text: 250 63 63; 247 248 /* Product colors */ 249 --on-sale-text: 250 63 63; 250 --on-sale-badge-background: 250 63 63; 251 --on-sale-badge-text: 255 255 255; 252 --sold-out-badge-background: 17 13 14; 253 --sold-out-badge-text: 255 255 255; 254 --custom-badge-background: 255 255 255; 255 --custom-badge-text: 0 0 0; 256 --star-color: 0 0 0; 257 258 /* Default scheme */ 259 --default-color-scheme-background: 255 255 255; 260 --default-color-scheme-background-gradient: ; 261 --default-color-scheme-text-color: 17 13 14; 262 }.color-scheme--scheme-1 { 263 --accent: 107 0 0; 264 --background: 240 241 242; 265 --background-gradient: ; 266 --background-secondary: 255 255 255;--background-secondary-text-color: 17 13 14; 267 --has-transparent-background: 0; 268 --has-filled-background: 1; 269 --text-color: 17 13 14;--border-color: 218 218 219;
269/* Subheading colors */--subheading-background: 0 0 0 / 0.0; 270 --subheading-border: none; 271 --subheading-text-color: 17 13 14; 272 --subheading-has-padding: 0; 273 274 /* Heading highlight */ 275 --heading-highlight-accent-color: 107 0 0; 276 --heading-highlight-text-color: 255 255 255; 277 278 /* Button colors */ 279 --button-background-primary: 107 0 0; 280 --button-text-primary: 255 255 255;--button-dark: var(--button-background-primary); 281 --button-light: var(--button-text-primary);--button-outline-hover-text: var(--button-text-primary); 282 283 /* Form inputs */ 284 --input-background: 255 255 255; 285 --input-text-color: 17 13 14; 286 --input-text-transform: none; 287 }.shopify-section:has(> .color-scheme--scheme-1) + .shopify-section:has(> .color-scheme--scheme-1) { 288 --section-has-same-background-as-previous-section: 1; 289 }.color-scheme--scheme-2 { 290 --accent: 107 0 0; 291 --background: 255 255 255; 292 --background-gradient: ; 293 --background-secondary: 240 241 242;--background-secondary-text-color: 17 13 14; 294 --has-transparent-background: 0; 295 --has-filled-background: 1; 296 --text-color: 17 13 14;--border-color: 231 231 231;/* Subheading colors */--subheading-background: 0 0 0 / 0.0; 297 --subheading-border: none; 298 --subheading-text-color: 17 13 14; 299 --subheading-has-padding: 0; 300 301 /* Heading highlight */ 302 --heading-highlight-accent-color: 107 0 0; 303 --heading-highlight-text-color: 255 255 255; 304 305 /* Button colors */ 306 --button-background-primary: 107 0 0; 307 --button-text-primary: 255 255 255;--button-dark: var(--button-background-primary); 308 --button-light: var(--button-text-primary);--button-outline-hover-text: var(--button-text-primary); 309 310 /* Form inputs */ 311 --input-background: 255 255 255; 312 --input-text-color: 17 13 14; 313 --input-text-transform: none; 314 }.shopify-section:has(> .color-scheme--scheme-2) + .shopify-section:has(> .color-scheme--scheme-2) { 315 --section-has-same-background-as-previous-section: 1; 316 }.shopify-section:has(> .color-scheme--scheme-2) + .shopify-section:has(> .color-scheme--scheme-d51ac0b0-d414-4d17-9757-9f01d7f9c456) { 317 --section-has-same-background-as-previous-section: 1; 318 }.color-scheme--scheme-3 { 319 --accent: 255 255 255; 320 --background: 0 0 0 / 0; 321 --background-gradient: ; 322 --background-secondary: 240 241 242;--background-secondary-text-color: 17 13 14; 323 --has-transparent-background: 1; 324 --has-filled-background: 0; 325 --text-color: 255 255 255;--border-color: 255 255 255 / 0.6;/* Subheading colors */--subheading-background: 0 0 0 / 0.0; 326 --subheading-border: none; 327 --subheading-text-color: 255 255 255; 328 --subheading-has-padding: 0; 329 330 /* Heading highlight */ 331 --heading-highlight-accent-color: 255 255 255; 332 --heading-highlight-text-color: 107 0 0; 333 334 /* Button colors */ 335 --button-background-primary: 255 255 255; 336 --button-text-primary: 107 0 0;--button-dark: var(--button-text-primary); 337 --button-light: var(--button-background-primary);--button-outline-hover-text: var(--button-text-primary); 338 339 /* Form inputs */ 340 --input-background: 255 255 255; 341 --input-text-color: 17 13 14; 342 --input-text-transform: none; 343 }.shopify-section:has(> .color-scheme--scheme-3) + .shopify-section:has(> .color-scheme--scheme-3) { 344 --section-has-same-background-as-previous-section: 1; 345 }.shopify-section:has(> .color-scheme--scheme-3) + .shopify-section:has(> .color-scheme--scheme-12) { 346 --section-has-same-background-as-previous-section: 1; 347 }.color-scheme--scheme-4 { 348 --accent: 255 255 255; 349 --background: 17 13 14; 350 --background-gradient: ; 351 --background-secondary: 240 241 242;--background-secondary-text-color: 17 13 14; 352 --has-transparent-background: 0; 353 --has-filled-background: 1; 354 --text-color: 255 255 255;--border-color: 41 37 38;/* Subheading colors */--subheading-background: 0 0 0 / 0.0; 355 --subheading-border: none; 356 --subheading-text-color: 255 255 255; 357 --subheading-has-padding: 0; 358 359 /* Heading highlight */ 360 --heading-highlight-accent-color: 255 255 255; 361 --heading-highlight-text-color: 17 13 14; 362 363 /* Button colors */ 364 --button-background-primary: 255 255 255; 365 --button-text-primary: 107 0 0;--button-dark: var(--button-text-primary); 366 --button-light: var(--button-background-primary);--button-outline-hover-text: var(--button-text-primary); 367 368 /* Form inputs */ 369 --input-background: 17 13 14; 370 --input-text-color: 255 255 255; 371 --input-text-transform: none; 372 }.shopify-section:has(> .color-scheme--scheme-4) + .shopify-section:has(> .color-scheme--scheme-4) { 373 --section-has-same-background-as-previous-section: 1; 374 }.color-scheme--scheme-5 { 375 --accent: 255 255 255; 376 --background: 107 0 0; 377 --background-gradient: ; 378 --background-secondary: 255 255 255;--background-secondary-text-color: 17 13 14; 379 --has-transparent-background: 0; 380 --has-filled-background: 1; 381 --text-color: 255 255 255;--border-color: 122 26 26;/* Subheading colors */--subheading-background: 0 0 0 / 0.0; 382 --subheading-border: none; 383 --subheading-text-color: 255 255 255; 384 --subheading-has-padding: 0; 385 386 /* Heading highlight */ 387 --heading-highlight-accent-color: 255 255 255; 388 --heading-highlight-text-color: 107 0 0; 389 390 /* Button colors */ 391 --button-background-primary: 255 255 255; 392 --button-text-primary: 107 0 0;--button-dark: var(--button-text-primary); 393 --button-light: var(--button-background-primary);--button-outline-hover-text: var(--button-text-primary); 394 395 /* Form inputs */ 396 --input-background: 255 255 255; 397 --input-text-color: 107 0 0; 398 --input-text-transform: none; 399 }.shopify-section:has(> .color-scheme--scheme-5) + .shopify-section:has(> .color-scheme--scheme-5) { 400 --section-has-same-background-as-previous-section: 1; 401 }.color-scheme--scheme-6 { 402 --accent: 255 255 255; 403 --background: 142 167 64; 404 --background-gradient: ; 405 --background-secondary: 255 255 255;--background-secondary-text-color: 17 13 14; 406 --has-transparent-background: 0; 407 --has-filled-background: 1; 408 --text-color: 17 13 14;--border-color: 130 152 59;/* Subheading colors */--subheading-background: 0 0 0 / 0.0; 409 --subheading-border: none; 410 --subheading-text-color: 17 13 14; 411 --subheading-has-padding: 0; 412 413 /* Heading highlight */ 414 --heading-highlight-accent-color: 17 13 14; 415 --heading-highlight-text-color: 255 255 255; 416 417 /* Button colors */ 418 --button-background-primary: 255 255 255; 419 --button-text-primary: 107 0 0;--button-dark: var(--button-text-primary); 420 --button-light: var(--button-background-primary);--button-outline-hover-text: var(--button-text-primary); 421 422 /* Form inputs */ 423 --input-background: 255 255 255; 424 --input-text-color: 17 13 14; 425 --input-text-transform: none; 426 }.shopify-section:has(> .color-scheme--scheme-6) + .shopify-section:has(> .color-scheme--scheme-6) { 427 --section-has-same-background-as-previous-section: 1; 428 }.color-scheme--scheme-7 { 429 --accent: 255 255 255; 430 --background: 51 0 6; 431 --background-gradient: ; 432 --background-secondary: 255 255 255;--background-secondary-text-color: 17 13 14; 433 --has-transparent-background: 0; 434 --has-filled-background: 1; 435 --text-color: 242 145 157;--border-color: 70 15 21;/* Subheading colors */--subheading-background: 0 0 0 / 0.0; 436 --subheading-border: none; 437 --subheading-text-color: 242 145 157; 438 --subheading-has-padding: 0; 439 440 /* Heading highlight */ 441 --heading-highlight-accent-color: 242 145 157; 442 --heading-highlight-text-color: 51 0 6; 443 444 /* Button colors */ 445 --button-background-primary: 255 255 255; 446 --button-text-primary: 107 0 0;--button-dark: var(--button-text-primary); 447 --button-light: var(--button-background-primary);--button-outline-hover-text: var(--button-text-primary); 448 449 /* Form inputs */ 450 --input-background: 255 255 255; 451 --input-text-color: 51 0 6; 452 --input-text-transform: none; 453 }.shopify-section:has(> .color-scheme--scheme-7) + .shopify-section:has(> .color-scheme--scheme-7) { 454 --section-has-same-background-as-previous-section: 1; 455 }.shopify-section:has(> .color-scheme--scheme-7) + .shopify-section:has(> .color-scheme--scheme-11) { 456 --section-has-same-background-as-previous-section: 1; 457 }.color-scheme--scheme-8 { 458 --accent: 107 0 0; 459 --background: 242 145 157; 460 --background-gradient: ; 461 --background-secondary: 255 255 255;--background-secondary-text-color: 17 13 14; 462 --has-transparent-background: 0; 463 --has-filled-background: 1; 464 --text-color: 107 0 0;--border-color: 229 131 141;/* Subheading colors */--subheading-background: 0 0 0 / 0.0; 465 --subheading-border: none; 466 --subheading-text-color: 107 0 0; 467 --subheading-has-padding: 0; 468 469 /* Heading highlight */ 470 --heading-highlight-accent-color: 107 0 0; 471 --heading-highlight-text-color: 255 255 255; 472 473 /* Button colors */ 474 --button-background-primary: 107 0 0; 475 --button-text-primary: 255 255 255;--button-dark: var(--button-background-primary); 476 --button-light: var(--button-text-primary);--button-outline-hover-text: var(--button-text-primary); 477 478 /* Form inputs */ 479 --input-background: 255 255 255; 480 --input-text-color: 107 0 0; 481 --input-text-transform: none; 482 }.shopify-section:has(> .color-scheme--scheme-8) + .shopify-section:has(> .color-scheme--scheme-8) { 483 --section-has-same-background-as-previous-section: 1; 484 }.color-scheme--scheme-9 { 485 --accent: 107 0 0; 486 --background: 255 204 210; 487 --background-gradient: ; 488 --background-secondary: 255 255 255;--background-secondary-text-color: 17 13 14; 489 --has-transparent-background: 0; 490 --has-filled-background: 1; 491 --text-color: 107 0 0;--border-color: 240 184 189;/* Subheading colors */--subheading-background: 0 0 0 / 0.0; 492 --subheading-border: none; 493 --subheading-text-color: 107 0 0; 494 --subheading-has-padding: 0; 495 496 /* Heading highlight */ 497 --heading-highlight-accent-color: 107 0 0; 498 --heading-highlight-text-color: 255 255 255; 499 500 /* Button colors */ 501 --button-background-primary: 107 0 0; 502 --button-text-primary: 255 255 255;--button-dark: var(--button-background-primary); 503 --button-light: var(--button-text-primary);--button-outline-hover-text: var(--button-text-primary); 504 505 /* Form inputs */ 506 --input-background: 255 255 255; 507 --input-text-color: 107 0 0; 508 --input-text-transform: none; 509 }.shopify-section:has(> .color-scheme--scheme-9) + .shopify-section:has(> .color-scheme--scheme-9) { 510 --section-has-same-background-as-previous-section: 1; 511 }.color-scheme--scheme-10 { 512 --accent: 107 0 0; 513 --background: 233 242 171; 514 --background-gradient: ; 515 --background-secondary: 255 255 255;--background-secondary-text-color: 17 13 14; 516 --has-transparent-background: 0; 517 --has-filled-background: 1; 518 --text-color: 17 13 14;--border-color: 211 219 155;/* Subheading colors */--subheading-background: 0 0 0 / 0.0; 519 --subheading-border: none; 520 --subheading-text-color: 17 13 14; 521 --subheading-has-padding: 0; 522 523 /* Heading highlight */ 524 --heading-highlight-accent-color: 107 0 0; 525 --heading-highlight-text-color: 255 255 255; 526 527 /* Button colors */ 528 --button-background-primary: 107 0 0; 529 --button-text-primary: 255 255 255;--button-dark: var(--button-background-primary); 530 --button-light: var(--button-text-primary);--button-outline-hover-text: var(--button-text-primary); 531 532 /* Form inputs */ 533 --input-background: 255 255 255; 534 --input-text-color: 17 13 14; 535 --input-text-transform: none; 536 }.shopify-section:has(> .color-scheme--scheme-10) + .shopify-section:has(> .color-scheme--scheme-10) { 537 --section-has-same-background-as-previous-section: 1; 538 }.color-scheme--scheme-11 { 539 --accent: 255 255 255; 540 --background: 51 0 6; 541 --background-gradient: ; 542 --background-secondary: 255 255 255;--background-secondary-text-color: 17 13 14; 543 --has-transparent-background: 0; 544 --has-filled-background: 1; 545 --text-color: 255 255 255;--border-color: 71 26 31;/* Subheading colors */--subheading-background: 0 0 0 / 0.0; 546 --subheading-border: none; 547 --subheading-text-color: 255 255 255; 548 --subheading-has-padding: 0; 549 550 /* Heading highlight */ 551 --heading-highlight-accent-color: 242 145 157; 552 --heading-highlight-text-color: 51 0 6; 553 554 /* Button colors */ 555 --button-background-primary: 255 255 255; 556 --button-text-primary: 107 0 0;--button-dark: var(--button-text-primary); 557 --button-light: var(--button-background-primary);--button-outline-hover-text: var(--button-text-primary); 558 559 /* Form inputs */ 560 --input-background: 255 255 255; 561 --input-text-color: 51 0 6; 562 --input-text-transform: none; 563 }.shopify-section:has(> .color-scheme--scheme-11) + .shopify-section:has(> .color-scheme--scheme-7) { 564 --section-has-same-background-as-previous-section: 1; 565 }.shopify-section:has(> .color-scheme--scheme-11) + .shopify-section:has(> .color-scheme--scheme-11) { 566 --section-has-same-background-as-previous-section: 1; 567 }.color-scheme--scheme-12 { 568 --accent: 107 0 0; 569 --background: 0 0 0 / 0; 570 --background-gradient: ; 571 --background-secondary: 255 255 255;--background-secondary-text-color: 17 13 14; 572 --has-transparent-background: 1; 573 --has-filled-background: 0; 574 --text-color: 107 0 0;--border-color: 107 0 0 / 0.6;/* Subheading colors */--subheading-background: 0 0 0 / 0.0; 575 --subheading-border: none; 576 --subheading-text-color: 107 0 0; 577 --subheading-has-padding: 0; 578 579 /* Heading highlight */ 580 --heading-highlight-accent-color: 107 0 0; 581 --heading-highlight-text-color: 255 255 255; 582 583 /* Button colors */ 584 --button-background-primary: 107 0 0; 585 --button-text-primary: 255 255 255;--button-dark: var(--button-background-primary); 586 --button-light: var(--button-text-primary);--button-outline-hover-text: var(--button-text-primary); 587 588 /* Form inputs */ 589 --input-background: 255 255 255; 590 --input-text-color: 17 13 14; 591 --input-text-transform: none; 592 }.shopify-section:has(> .color-scheme--scheme-12) + .shopify-section:has(> .color-scheme--scheme-3) { 593 --section-has-same-background-as-previous-section: 1; 594 }.shopify-section:has(> .color-scheme--scheme-12) + .shopify-section:has(> .color-scheme--scheme-12) { 595 --section-has-same-background-as-previous-section: 1; 596 }.color-scheme--scheme-d51ac0b0-d414-4d17-9757-9f01d7f9c456 { 597 --accent: 107 0 0; 598 --background: 255 255 255; 599 --background-gradient: ; 600 --background-secondary: 255 255 255;--background-secondary-text-color: 17 13 14; 601 --has-transparent-background: 0; 602 --has-filled-background: 1; 603 --text-color: 77 77 77;--border-color: 237 237 237;/* Subheading colors */--subheading-background: 0 0 0 / 0.0; 604 --subheading-border: none; 605 --subheading-text-color: 17 13 14; 606 --subheading-has-padding: 0; 607 608 /* Heading highlight */ 609 --heading-highlight-accent-color: 107 0 0; 610 --heading-highlight-text-color: 255 255 255; 611 612 /* Button colors */ 613 --button-background-primary: 107 0 0; 614 --button-text-primary: 255 255 255;--button-dark: var(--button-background-primary); 615 --button-light: var(--button-text-primary);--button-outline-hover-text: var(--button-text-primary); 616 617 /* Form inputs */ 618 --input-background: 255 255 255; 619 --input-text-color: 17 13 14; 620 --input-text-transform: none; 621 }.shopify-section:has(> .color-scheme--scheme-d51ac0b0-d414-4d17-9757-9f01d7f9c456) + .shopify-section:has(> .color-sch
621eme--scheme-2) { 622 --section-has-same-background-as-previous-section: 1; 623 }.shopify-section:has(> .color-scheme--scheme-d51ac0b0-d414-4d17-9757-9f01d7f9c456) + .shopify-section:has(> .color-scheme--scheme-d51ac0b0-d414-4d17-9757-9f01d7f9c456) { 624 --section-has-same-background-as-previous-section: 1; 625 }@view-transition { 626 navigation: auto; 627 }</style>
628<script> 629 // This allows to expose several variables to the global scope, to be used in scripts 630 window.themeVariables = { 631 settings: { 632 pageType: "cart", 633 moneyFormat: "{{amount_with_comma_separator}} â¬", 634 moneyWithCurrencyFormat: "â¬{{amount_with_comma_separator}} EUR", 635 currencyCodeEnabled: false, 636 cartType: "drawer", 637 showHeadingEffectAnimation: true, 638 staggerProducts: true 639 }, 640 641 strings: { 642 addedToCart: "{{product_title}} a été ajouté au panier", 643 closeGallery: "Fermer la galerie", 644 zoomGallery: "Zoomer sur l\u0026#39;image", 645 errorGallery: "L\u0026#39;image ne peut pas etre chargée", 646 shippingEstimatorNoResults: "Nous ne livrons pas à votre adresse.", 647 shippingEstimatorOneResult: "Il y a un résultat pour votre adresse :", 648 shippingEstimatorMultipleResults: "Il y a plusieurs résultats pour votre adresse :", 649 shippingEstimatorError: "Impossible d\u0026#39;estimer les frais de livraison :", 650 next: "Suivant", 651 previous: "Précédent" 652 }, 653 654 mediaQueries: { 655 'sm': 'screen and (min-width: 700px)', 656 'md': 'screen and (min-width: 1000px)', 657 'lg': 'screen and (min-width: 1150px)', 658 'xl': 'screen and (min-width: 1400px)', 659 '2xl': 'screen and (min-width: 1600px)', 660 'sm-max': 'screen and (max-width: 699px)', 661 'md-max': 'screen and (max-width: 999px)', 662 'lg-max': 'screen and (max-width: 1149px)', 663 'xl-max': 'screen and (max-width: 1399px)', 664 '2xl-max': 'screen and (max-width: 1599px)', 665 'motion-safe': '(prefers-reduced-motion: no-preference)', 666 'motion-reduce': '(prefers-reduced-motion: reduce)', 667 'supports-hover': 'screen and (pointer: fine)', 668 'supports-touch': 'screen and (pointer: coarse)' 669 } 670 };</script>
670<script async crossorigin fetchpriority="high" src="/cdn/shopifycloud/importmap-polyfill/es-modules-shim.2.4.0.js"></script>
vendor: 1 bytes, line 670
670
671<script type="importmap">{ 672 "imports": { 673 "vendor": "//fr.melvita.com/cdn/shop/t/4/assets/vendor.min.js?v=115152861726854754811781165056", 674 "theme": "//fr.melvita.com/cdn/shop/t/4/assets/theme.js?v=33174130759666119641788273087", 675 "photoswipe": "//fr.melvita.com/cdn/shop/t/4/assets/photoswipe.min.js?v=13374349288281597431781165053" 676 } 677 } 678 </script>
678<script src="//fr.melvita.com/cdn/shop/t/4/assets/ax-cart-return.js?v=108670334683347548871787909367" data-cart-page="true"></script>
678 679 680
680<script type="module" src="//fr.melvita.com/cdn/shop/t/4/assets/vendor.min.js?v=115152861726854754811781165056"></script>
680 681
681<script type="module" src="//fr.melvita.com/cdn/shop/t/4/assets/theme.js?v=33174130759666119641788273087"></script>
681 682 683
683<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
683<meta name="google-site-verification" content="UNnDNVrq-HoV3nuK60R8Z0CYN3jANLrmhoXJqgtWlYs"> 684<meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/107173183826/digital_wallets/dialog"> 685<meta id="in-context-paypal-metadata" data-shop-id="107173183826" data-venmo-supported="false" data-environment="production" data-locale="fr_FR" data-paypal-v4="true" data-currency="EUR"> 686<link rel="ucp" href="/.well-known/ucp" version="2026-08-25">
686<script async="async" src="/checkouts/internal/preloads.js?locale=fr-FR&default_configuration_id=8405188946"></script>
686 687<link rel="preconnect" href="https://shop.app" crossorigin="anonymous">
688<script async="async" src="https://shop.app/checkouts/internal/preloads.js?locale=fr-FR&default_configuration_id=8405188946&shop_id=107173183826" crossorigin="anonymous"></script>
vendor: 1 bytes, line 688
688
689<script id="apple-pay-shop-capabilities" type="application/json">{"shopId":107173183826,"countryCode":"FR","currencyCode":"EUR","merchantCapabilities":["supports3DS"],"merchantId":"gid:\/\/shopify\/Shop\/107173183826","merchantName":"Melvita","requiredBillingContactFields":["postalAddress","email","phone"],"requiredShippingContactFields":["postalAddress","email","phone"],"shippingType":"shipping","supportedNetworks":["visa","masterCard","amex","maestro"],"total":{"type":"pending","label":"Melvita","amount":"1.00"},"shopifyPaymentsEnabled":true,"supportsSubscriptions":true}</script>
vendor: 1 bytes, line 689
689
690<script id="shopify-features" type="application/json">{"accessToken":"175bb8ecbf2f11fe23eb9a6df696cf5e","betas":["rich-media-storefront-analytics"],"domain":"fr.melvita.com","predictiveSearch":true,"shopId":107173183826,"locale":"fr"}</script>
vendor: 1 bytes, line 690
690
691<script>var Shopify = Shopify || {}; 692Shopify.shop = "melvita2026.myshopify.com"; 693Shopify.locale = "fr"; 694Shopify.currency = {"active":"EUR","rate":"1.0"}; 695Shopify.country = "FR"; 696Shopify.theme = {"name":"[PROD] Melvita - Axome","id":202104996178,"schema_name":"Axome - Melvita","schema_version":"1.0.0","theme_store_id":null,"role":"main"}; 697Shopify.theme.handle = "null"; 698Shopify.theme.style = {"id":null,"handle":null}; 699Shopify.cdnHost = "fr.melvita.com/cdn"; 700Shopify.routes = Shopify.routes || {}; 701Shopify.routes.root = "/"; 702Shopify.shopJsCdnBaseUrl = "https://cdn.shopify.com/shopifycloud/shop-js"; 703Shopify.SignInWithShop = Shopify.SignInWithShop || {}; 704Shopify.SignInWithShop.User = Shopify.SignInWithShop.User || {}; 705Shopify.SignInWithShop.User.recognized = false;</script>
vendor: 1 bytes, line 705
705
706<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
vendor: 1 bytes, line 706
706
707<script>!function(o){function n(){var o=[];function n(){o.push(Array.prototype.slice.apply(arguments))}return n.q=o,n}var t=o.Shopify=o.Shopify||{};t.loadFeatures=n(),t.autoloadFeatures=n()}(window);</script>
vendor: 1 bytes, line 707
707
708<script> 709 window.ShopifyPay = window.ShopifyPay || {}; 710 window.ShopifyPay.apiHost = "shop.app\/pay"; 711 window.ShopifyPay.redirectState = null; 712</script>
vendor: 1 bytes, line 712
712
713<script> 714 window.Shopify = window.Shopify || {}; 715 window.Shopify.SignInWithShop = window.Shopify.SignInWithShop || {}; 716 window.Shopify.SignInWithShop.assetMetrics = { sampleRate: 0.25 }; 717 window.Shopify.SignInWithShop.eligible = true; 718</script>
vendor: 1 bytes, line 718
718
719<script id="shop-js-analytics" type="application/json">{"pageType":"cart"}</script>
vendor: 1 bytes, line 719
719
720<script defer="defer" async type="module" src="https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.fr.esm.js"></script>
vendor: 1 bytes, line 720
720
721<script type="module"> 722 await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.fr.esm.js"); 723 724 window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true}); 725 726</script>
vendor: 1 bytes, line 726
726
727<script> 728 window.Shopify = window.Shopify || {}; 729 if (!window.Shopify.featureAssets) window.Shopify.featureAssets = {}; 730 window.Shopify.featureAssets['shop-js'] = {"avatar":["modules/v2/loader.avatar.fr.esm.js"],"checkout-modal":["modules/v2/loader.checkout-modal.fr.esm.js"],"init-customer-accounts-sign-up":["modules/v2/loader.init-customer-accounts-sign-up.fr.esm.js"],"init-customer-accounts":["modules/v2/loader.init-customer-accounts.fr.esm.js"],"init-fed-cm":["modules/v2/loader.init-fed-cm.fr.esm.js"],"init-shop-cart-sync":["modules/v2/loader.init-shop-cart-sync.fr.esm.js"],"init-shop-email-lookup-coordinator":["modules/v2/loader.init-shop-email-lookup-coordinator.fr.esm.js"],"init-shop-for-new-customer-accounts":["modules/v2/loader.init-shop-for-new-customer-accounts.fr.esm.js"],"init-shop-user-recognition":["modules/v2/loader.init-shop-user-recognition.fr.esm.js"],"init-windoid":["modules/v2/loader.init-windoid.fr.esm.js"],"lead-capture":["modules/v2/loader.lead-capture.fr.esm.js"],"listener":["modules/v2/loader.listener.fr.esm.js"],"pay-button":["modules/v2/loader.pay-button.fr.esm.js"],"payment-terms":["modules/v2/loader.payment-terms.fr.esm.js"],"shop-button":["modules/v2/loader.shop-button.fr.esm.js"],"shop-cart-sync":["modules/v2/loader.shop-cart-sync.fr.esm.js"],"shop-cash-offers":["modules/v2/loader.shop-cash-offers.fr.esm.js"],"shop-follow-button":["modules/v2/loader.shop-follow-button.fr.esm.js"],"shop-login-button":["modules/v2/loader.shop-login-button.fr.esm.js"],"shop-login":["modules/v2/loader.shop-login.fr.esm.js"],"shop-toast-manager":["modules/v2/loader.shop-toast-manager.fr.esm.js"],"shop-user-recognition":["modules/v2/loader.shop-user-recognition.fr.esm.js"]}; 731</script>
vendor: 1 bytes, line 731
731
732<script>(function() { 733 var isLoaded = false; 734 function asyncLoad() { 735 if (isLoaded) return; 736 isLoaded = true; 737 var urls = ["https:\/\/redirectify.app\/script_tags\/tracking.js?shop=melvita2026.myshopify.com"]; 738 for (var i = 0; i < urls.length; i++) { 739 var s = document.createElement('script'); 740 s.type = 'text/javascript'; 741 s.async = true; 742 s.src = urls[i]; 743 var x = document.getElementsByTagName('script')[0]; 744 x.parentNode.insertBefore(s, x); 745 } 746 }; 747 if(window.attachEvent) { 748 window.attachEvent('onload', asyncLoad); 749 } else { 750 window.addEventListener('load', asyncLoad, false); 751 } 752})();</script>
vendor: 1 bytes, line 752
752
753<script id="__st">var __st={"a":107173183826,"offset":7200,"reqid":"3001d3e8-f815-4e5f-9008-631dc6281aba-1791063549","pageurl":"fr.melvita.com\/cart","u":"cfa5bc716288","p":"cart"};</script>
vendor: 1 bytes, line 753
753
754<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
vendor: 1 bytes, line 754
754
755<script id="captcha-bootstrap">!function(){'use strict';const t='contact',e='account',n='new_comment',o=[[t,t],['blogs',n],['comments',n],[t,'customer']],c=[[e,'customer_login'],[e,'guest_login'],[e,'recover_customer_password'],[e,'create_customer']],r=t=>t.map((([t,e])=>`form[action*='/${t}']:not([data-nocaptcha='true']) input[name='form_type'][value='${e}']`)).join(','),a=t=>()=>t?[...document.querySelectorAll(t)].map((t=>t.form)):[];function s(){const t=[...o],e=r(t);return a(e)}const i='password',u='form_key',d=['recaptcha-v3-token','g-recaptcha-response','h-captcha-response',i],f=()=>{try{return window.sessionStorage}catch{return}},m='__shopify_v',_=t=>t.elements[u];function p(t,e,n=!1){try{const o=window.sessionStorage,c=JSON.parse(o.getItem(e)),{data:r}=function(t){const{data:e,action:n}=t;return t[m]||n?{data:e,action:n}:{data:t,action:n}}(c);for(const[e,n]of Object.entries(r))t.elements[e]&&(t.elements[e].value=n);n&&o.removeItem(e)}catch(o){console.error('form repopulation failed',{error:o})}}const l='form_type',E='cptcha';function T(t){t.dataset[E]=!0}const w=window,h=w.document,L='Shopify',v='ce_forms',y='captcha';let A=!1;((t,e)=>{const n=(g='f06e6c50-85a8-45c8-87d0-21a2b65856fe',I='https://cdn.shopify.com/shopifycloud/storefront-forms-hcaptcha/ce_storefront_forms_captcha_hcaptcha.v1.5.3.iife.js',D={infoText:'Protégé par hCaptcha',privacyText:'Confidentialité',termsText:'Conditions'},(t,e,n)=>{const o=w[L][v],c=o.bindForm;if(c)return c(t,g,e,D).then(n);var r;o.q.push([[t,g,e,D],n]),r=I,A||(h.body.append(Object.assign(h.createElement('script'),{id:'captcha-provider',async:!0,src:r})),A=!0)});var g,I,D;w[L]=w[L]||{},w[L][v]=w[L][v]||{},w[L][v].q=[],w[L][y]=w[L][y]||{},w[L][y].protect=function(t,e){n(t,void 0,e),T(t)},Object.freeze(w[L][y]),function(t,e,n,w,h,L){const[v,y,A,g]=function(t,e,n){const i=e?o:[],u=t?c:[],d=[...i,...u],f=r(d),m=r(i),_=r(d.filter((([t,e])=>n.includes(e))));return[a(f),a(m),a(_),s()]}(w,h,L),I=t=>{const e=t.target;return e instanceof HTMLFormElement?e:e&&e.form},D=t=>v().includes(t);t.addEventListener('submit',(t=>{const e=I(t);if(!e)return;const n=D(e)&&!e.dataset.hcaptchaBound&&!e.dataset.recaptchaBound,o=_(e),c=g().includes(e)&&(!o||!o.value);(n||c)&&t.preventDefault(),c&&!n&&(function(t){try{if(!f())return;!function(t){const e=f();if(!e)return;const n=_(t);if(!n)return;const o=n.value;o&&e.removeItem(o)}(t);const e=Array.from(Array(32),(()=>Math.random().toString(36)[2])).join('');!function(t,e){_(t)||t.append(Object.assign(document.createElement('input'),{type:'hidden',name:u})),t.elements[u].value=e}(t,e),function(t,e){const n=f();if(!n)return;const o=[...t.querySelectorAll(`input[type='${i}']`)].map((({name:t})=>t)),c=[...d,...o],r={};for(const[a,s]of new FormData(t).entries())c.includes(a)||(r[a]=s);n.setItem(e,JSON.stringify({[m]:1,action:t.action,data:r}))}(t,e)}catch(e){console.error('failed to persist form',e)}}(e),e.submit())}));const S=(t,e)=>{t&&!t.dataset[E]&&(n(t,e.some((e=>e===t))),T(t))};for(const o of['focusin','change'])t.addEventListener(o,(t=>{const e=I(t);D(e)&&S(e,y())}));const B=e.get('form_key'),M=e.get(l),P=B&&M;t.addEventListener('DOMContentLoaded',(()=>{const t=y();if(P)for(const e of t)e.elements[l].value===M&&p(e,B);[...new Set([...A(),...v().filter((t=>'true'===t.dataset.shopifyCaptcha))])].forEach((e=>S(e,t)))}))}(h,new URLSearchParams(w.location.search),n,t,e,['guest_login'])})(!0,!0)}();</script>
vendor: 1 bytes, line 755
755
756<script integrity="sha256-JjoPp5ZfB1sSAs5SQaol1x1GgvveM+BgmRzyDexInEQ=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//fr.melvita.com/cdn/shopifycloud/storefront/assets/storefront/load_feature-1bd60354.js" crossorigin="anonymous"></script>
vendor: 1 bytes, line 756
756
757<script>(function () {var userAgent = navigator.userAgent;var platform = navigator.platform;var maxTouchPoints = navigator.maxTouchPoints || 0;var isIOS = /iPad|iPhone|iPod/.test(platform) || (platform === 'MacIntel' && maxTouchPoints > 1);var isMacSafari = platform.indexOf('Mac') === 0 && /Safari/.test(userAgent) && !/Chrome|Chromium|CriOS|FxiOS|Edg|OPR|Android/.test(userAgent);var isAppleSafari = isIOS || isMacSafari;if (isAppleSafari) {fetch('/sf_private_access_tokens' + location.search).catch(function () {});}function browserMajorVersion(pattern) {var match = userAgent.match(pattern);return match ? parseInt(match[1], 10) : null;}function shouldLoadAutosizesPolyfill() {if (!window.PerformanceObserver?.supportedEntryTypes?.includes('paint')) {return false;}var chromeVersion = browserMajorVersion(/Chrome\/(\d+)/);if (chromeVersion !== null) {return chromeVersion < 126;}var firefoxVersion = browserMajorVersion(/Firefox\/(\d+)/);if (firefoxVersion !== null) {return firefoxVersion < 150;}var safariVersion = isAppleSafari ? browserMajorVersion(/Version\/(\d+).*Safari\//) : null;if (safariVersion !== null) {return safariVersion < 27;}return true;}if (shouldLoadAutosizesPolyfill()) {var autosizesScript = document.createElement('script');autosizesScript.async = true;autosizesScript.crossOrigin = 'anonymous';autosizesScript.src = "//fr.melvita.com/cdn/shopifycloud/storefront/assets/storefront/autosizes-84416378.js";(document.head || document.documentElement).appendChild(autosizesScript);}window.ShopifyAnalytics = window.ShopifyAnalytics || {};window.ShopifyAnalytics.performance = window.ShopifyAnalytics.performance || {};(function () {var LONG_FRAME_THRESHOLD = 50;var longAnimationFrames = [];var activeRafId = null;function collectLongFrames() {var previousTime = null;function rafMonitor(now) {if (activeRafId === null) {return;}var delta = now - previousTime;if (delta > LONG_FRAME_THRESHOLD) {longAnimationFrames.push({startTime: previousTime,endTime: now,});}previousTime = now;activeRafId = requestAnimationFrame(rafMonitor);}previousTime = performance.now();activeRafId = requestAnimationFrame(rafMonitor);}if (!window.PerformanceObserver?.supportedEntryTypes?.includes('long-animation-frame')) {collectLongFrames();var timeoutId = setTimeout(function () {cancelAnimationFrame(activeRafId);}, 10000);window.ShopifyAnalytics.performance.getLongAnimationFrames = function (stopCollection) {if (stopCollection === undefined) {stopCollection = false;}if (stopCollection) {clearTimeout(timeoutId);cancelAnimationFrame(activeRafId);}return longAnimationFrames;};}})();})();</script>
757<script crossorigin="anonymous" defer="defer" src="//fr.melvita.com/cdn/shopifycloud/storefront/assets/shopify_pay/storefront-616277c7.js?v=20250812"></script>
vendor: 1 bytes, line 757
757
758<script id="shopify-origin-trials" async="async" integrity="sha256-qJbe/jEZBHtr5W/BlA2cKAz3vkXu6vJQyLjgvgCC86g=" src="//cdn.shopify.com/shopifycloud/storefront/assets/storefront/origin_trials-318ab40a.js" crossorigin="anonymous" onload="window.__shopifyOriginTrialsDone = true" onerror="window.__shopifyOriginTrialsDone = true"></script>
vendor: 1 bytes, line 758
758
759<script> 760 window.Shopify = window.Shopify || {}; 761 window.Shopify.MCP = window.Shopify.MCP || {}; 762 window.Shopify.MCP.enabled = true; 763 window.Shopify.MCP.shop = "melvita2026.myshopify.com"; 764 window.Shopify.MCP.mcpEndpoint = "https:\/\/fr.melvita.com\/api\/mcp"; 765 window.Shopify.MCP.tools = [{"name":"search_shop_policies_and_faqs","description":"Used to get facts about the stores policies, products, or services.\nSome examples of questions you can ask are:\n - What is your return policy?\n - What is your shipping policy?\n - What is your phone number?\n - What are your hours of operation?\"\n","inputSchema":{"$schema":"https:\/\/json-schema.org\/draft\/2020-12\/schema","type":"object","properties":{"query":{"type":"string","description":"A natural language query."},"context":{"type":"string","description":"Additional information about the request such as user demographics, mood, location, or other relevant details that could help in tailoring the response appropriately."}},"required":["query"]}}]; 766</script>
vendor: 1 bytes, line 766
766
767<script>(()=>{var d="shopify:webmcp_adapter_loaded",n=Symbol.for("shopify.webmcp_adapter_loading");function s(c,a,{win:r=window,doc:o=document}={}){function p(){try{return r.localStorage.getItem(d)==="true"}catch{return!1}}function l(){try{r.localStorage.setItem(d,"true")}catch{}}function u(){return typeof(o.modelContext||r.navigator?.modelContext)?.registerTool=="function"}function f(){if(r[n]||!u())return;let t=o.head||o.getElementsByTagName("head")[0];if(!t)return;let e=o.createElement("script");e.type="module",e.crossOrigin="anonymous",a&&(e.integrity=a),e.src=c,e.addEventListener("load",l,{once:!0}),e.addEventListener("error",()=>{r[n]=!1},{once:!0}),t.appendChild(e),r[n]=!0}function _(t){let e=o.getElementById("shopify-origin-trials");if(!e||r.__shopifyOriginTrialsDone){t();return}e.addEventListener("load",t,{once:!0}),e.addEventListener("error",t,{once:!0})}function i(){_(()=>r.setTimeout(f,0))}function m(){o.addEventListener("DOMContentLoaded",i,{once:!0})}p()?i():m()}s("\/\/fr.melvita.com\/cdn\/shopifycloud\/storefront\/assets\/storefront\/webmcp-c6b62ece.js","sha256-ke4DDuBjdvea3vxLWxHc9E9nq8zihuG4IfYEGbb77ys=");})(); 768</script>
vendor: 1 bytes, line 768
768
769<script data-source-attribution="shopify.dynamic_checkout.dynamic.init">var Shopify=Shopify||{};Shopify.PaymentButton=Shopify.PaymentButton||{isStorefrontPortableWallets:!0,init:function(){window.Shopify.PaymentButton.init=function(){};var t=document.createElement("script");t.src="https://fr.melvita.com/cdn/shopifycloud/portable-wallets/latest/portable-wallets.fr.js",t.type="module",document.head.appendChild(t)}}; 770</script>
vendor: 1 bytes, line 770
770
771<script data-source-attribution="shopify.dynamic_checkout.buyer_consent"> 772 function portableWalletsHideBuyerConsent(e){var t=document.getElementById("shopify-buyer-consent"),n=document.getElementById("shopify-subscription-policy-button");t&&n&&(t.classList.add("hidden"),t.setAttribute("aria-hidden","true"),n.removeEventListener("click",e))}function portableWalletsShowBuyerConsent(e){var t=document.getElementById("shopify-buyer-consent"),n=document.getElementById("shopify-subscription-policy-button");t&&n&&(t.classList.remove("hidden"),t.removeAttribute("aria-hidden"),n.addEventListener("click",e))}window.Shopify?.PaymentButton&&(window.Shopify.PaymentButton.hideBuyerConsent=portableWalletsHideBuyerConsent,window.Shopify.PaymentButton.showBuyerConsent=portableWalletsShowBuyerConsent); 773</script>
vendor: 1 bytes, line 773
773
774<script data-source-attribution="shopify.dynamic_checkout.cart.bootstrap">document.addEventListener("DOMContentLoaded",(function(){function t(){return document.querySelector("shopify-accelerated-checkout-cart, shopify-accelerated-checkout")}if(t())Shopify.PaymentButton.init();else{new MutationObserver((function(e,n){t()&&(Shopify.PaymentButton.init(),n.disconnect())})).observe(document.body,{childList:!0,subtree:!0})}})); 775</script>
775 776<link id="shopify-accelerated-checkout-styles" rel="stylesheet" media="screen" href="https://fr.melvita.com/cdn/shopifycloud/portable-wallets/latest/accelerated-checkout-backwards-compat.css" crossorigin="anonymous"> 777<style id="shopify-accelerated-checkout-cart"> 778 #shopify-buyer-consent { 779 margin-top: 1em; 780 display: inline-block; 781 width: 100%; 782} 783 784#shopify-buyer-consent.hidden { 785 display: none; 786} 787 788#shopify-subscription-policy-button { 789 background: none; 790 border: none; 791 padding: 0; 792 text-decoration: underline; 793 font-size: inherit; 794 cursor: pointer; 795} 796 797#shopify-subscription-policy-button::before { 798 box-shadow: none; 799} 800 801 </style> 802
803<script id="shopify-cfh-end">window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
803 804 805 806 807<!-- Début de la mention OneTrust de consentement aux cookies pour le domaine fr.melvita.com -->
807<script src="https://cdn.cookielaw.org/scripttemplates/otSDKStub.js" type="text/javascript" charset="UTF-8" data-domain-script="2f186e1c-05ac-4625-975b-7963117343ff"></script>
vendor: 1 bytes, line 807
807
808<script type="text/javascript"> 809 (function () { 810 // Correspondance groupes OneTrust â signaux de consentement Shopify. 811 var GROUP_MAP = { 812 analytics: ['C0002'], 813 preferences: ['C0003'], 814 marketing: ['C0004', 'C0005'], 815 sale_of_data: ['C0004'] 816 }; 817 818 var apiReady = false; 819 var pending = null; 820 var lastSent = ''; 821 822 function log() { 823 if (!window.OT_SHOPIFY_DEBUG || !window.console) return; 824 console.log.apply(console, ['[OneTrustâShopify]'].concat([].slice.call(arguments))); 825 } 826 827 function activeGroups() { 828 var raw = window.OnetrustActiveGroups || window.OptanonActiveGroups || ''; 829 return String(raw).split(',').filter(Boolean); 830 } 831 832 // Ne rien pousser avant un choix explicite : sans appel, Shopify considère 833 // qu'aucune décision n'a été prise et applique son comportement par défaut. 834 function decisionMade() { 835 try { 836 if (window.OneTrust && typeof window.OneTrust.IsAlertBoxClosed === 'function') { 837 return window.OneTrust.IsAlertBoxClosed(); 838 } 839 } catch (e) {} 840 return document.cookie.indexOf('OptanonAlertBoxClosed=') !== -1; 841 } 842 843 function buildConsent() { 844 var groups = activeGroups(); 845 var consent = {}; 846 847 Object.keys(GROUP_MAP).forEach(function (signal) { 848 consent[signal] = GROUP_MAP[signal].some(function (group) { 849 return groups.indexOf(group) !== -1; 850 }); 851 }); 852 853 return consent; 854 } 855 856 function flush() { 857 if (!apiReady || !pending) return; 858 859 var fingerprint = JSON.stringify(pending); 860 if (fingerprint === lastSent) return; 861 862 var payload = pending; 863 864 try { 865 window.Shopify.customerPrivacy.setTrackingConsent(payload, function (result) { 866 if (result && result.error) { 867 log('setTrackingConsent en erreur', result.error); 868 return; 869 } 870 871 lastSent = fingerprint; 872 log('consentement appliqué', payload); 873 document.dispatchEvent(new CustomEvent('onetrust:consent-applied', { detail: payload })); 874 }); 875 } catch (e) { 876 log('setTrackingConsent a échoué', e); 877 } 878 } 879 880 function sync() { 881 if (!decisionMade()) { 882 log('aucune décision utilisateur pour le moment'); 883 return; 884 } 885 886 pending = buildConsent(); 887 flush(); 888 } 889 890 // OptanonWrapper : appelé par OneTrust à l'init de la bannière puis à chaque 891 // enregistrement. OneTrustGroupsUpdated couvre les changements ultérieurs 892 // (centre de préférences, lien « Cookies » du footer). 893 window.OptanonWrapper = function () { 894 sync(); 895 }; 896 897 window.addEventListener('OneTrustGroupsUpdated', sync); 898 899 // Shopify.loadFeatures est injecté par content_for_header : on tolère un retard. 900 function loadApi(attempt) { 901 if (window.Shopify && typeof window.Shopify.loadFeatures === 'function') { 902 window.Shopify.loadFeatures([{ name: 'consent-tracking-api', version: '0.1' }], function (error) { 903 if (error) { 904 log('chargement de consent-tracking-api impossible', error); 905 return; 906 } 907 908 apiReady = true; 909 log('API Customer Privacy prête'); 910 flush(); 911 }); 912 return; 913 } 914 915 if (attempt < 50) { 916 setTimeout(function () { loadApi(attempt + 1); }, 100); 917 return; 918 } 919 920 log('window.Shopify.loadFeatures introuvable'); 921 } 922 923 loadApi(0); 924 925 // OneTrust injecte des h2/h3/h4 qui polluent la hiérarchie de titres de la page. 926 function demoteHeadings(root) { 927 root.querySelectorAll('h1, h2, h3, h4, h5, h6').forEach(function (heading) { 928 var div = document.createElement('div'); 929 for (var i = 0; i < heading.attributes.length; i++) { 930 div.setAttribute(heading.attributes[i].name, heading.attributes[i].value); 931 } 932 div.className = heading.className; 933 div.innerHTML = heading.innerHTML; 934 heading.parentNode.replaceChild(div, heading); 935 }); 936 } 937 938 new MutationObserver(function () { 939 ['onetrust-consent-sdk', 'onetrust-pc-sdk', 'ot-sdk-cookie-policy'].forEach(function (id) { 940 var root = document.getElementById(id); 941 if (root) demoteHeadings(root); 942 }); 943 }).observe(document.documentElement, { childList: true, subtree: true }); 944 })(); 945</script>
945 946<!-- Fin de la mention OneTrust de consentement aux cookies pour le domaine fr.melvita.com --> 947 948<link href="//fr.melvita.com/cdn/shop/t/4/assets/theme.css?v=158163033534490993411789656534" rel="stylesheet" type="text/css" media="all" /><link href="//fr.melvita.com/cdn/shop/t/4/assets/ax-typography.css?v=182365509266313969341787908793" rel="stylesheet" type="text/css" media="all" /><link href="//fr.melvita.com/cdn/shop/t/4/assets/ax-badges.css?v=33586028472518224671788863846" rel="stylesheet" type="text/css" media="all" /><link href="//fr.melvita.com/cdn/shop/t/4/assets/ax-product-variations.css?v=46475551306836448481787911533" rel="stylesheet" type="text/css" media="all" /><link href="//fr.melvita.com/cdn/shop/t/4/assets/ax-carousel-arrows.css?v=116941441801558068081787908792" rel="stylesheet" type="text/css" media="all" /><link href="//fr.melvita.com/cdn/shop/t/4/assets/ax-collection-toolbar.css?v=183180576473984108121788183088" rel="stylesheet" type="text/css" media="all" /><!-- BEGIN app block: shopify://apps/klaviyo-email-marketing-sms/blocks/klaviyo-onsite-embed/2632fe16-c075-4321-a88b-50b567f42507 --> 949 950 951 952 953 954 955 956 957 958 959 960 961
961<script async src="https://static.klaviyo.com/onsite/js/VVuEpA/klaviyo.js?company_id=VVuEpA"></script>
961 962
962<script>!function(){if(!window.klaviyo){window._klOnsite=window._klOnsite||[];try{window.klaviyo=new Proxy({},{get:function(n,i){return"push"===i?function(){var n;(n=window._klOnsite).push.apply(n,arguments)}:function(){for(var n=arguments.length,o=new Array(n),w=0;w<n;w++)o[w]=arguments[w];var t="function"==typeof o[o.length-1]?o.pop():void 0,e=new Promise((function(n){window._klOnsite.push([i].concat(o,[function(i){t&&t(i),n(i)}]))}));return e}}})}catch(n){window.klaviyo=window.klaviyo||[],window.klaviyo.push=function(){var n;(n=window._klOnsite).push.apply(n,arguments)}}}}();</script>
962 963 964 965 966 967 968 969
969<script> 970 window.klaviyoReviewsProductDesignMode = false 971 </script>
971 972 973 974 975 976 977 978 979 980 981<!-- END app block --><!-- BEGIN app block: shopify://apps/tradedoubler-affiliate/blocks/app-embed/5336782f-9a78-4117-be6f-8cc073d67e6c --><!-- BEGIN app snippet: datablock -->
981<script>var tdappconf={o:1767477,p:null,h:'null'};</script>
981<!-- END app snippet --> 982<!-- END app block --><!-- BEGIN app block: shopify://apps/iadvize-ai-shopping-assistant/blocks/iadvize-tag/97672039-3647-476c-9ad9-4f6daaa2d3e4 --><!-- START IADVIZE LIVECHAT --> 983
984<script> 985 986function loadIAdvize() { 987 if (window.__idzLoaded) return; 988 window.__idzLoaded = true; 989 990 function fromShopifyToIAdvizePageType(shopifyPageType) { 991 if (!shopifyPageType) { 992 return 'OTHER_PAGE'; 993 } 994 995 switch (shopifyPageType.toLowerCase()) { 996 case 'index': 997 case 'home': 998 return 'HOME_PAGE'; 999 case 'collection': 1000 return 'CATEGORY_PAGE'; 1001 case 'product': 1002 return 'PRODUCT_DETAIL_PAGE'; 1003 case 'cart': 1004 return 'CART_PAGE'; 1005 case 'checkout': 1006 return 'CHECKOUT_PAGE'; 1007 case 'account': 1008 return 'ACCOUNT_PAGE'; 1009 case 'search': 1010 return 'SEARCH_PAGE'; 1011 case 'signup': 1012 return 'SIGNUP_PAGE'; 1013 case 'page': 1014 return 'CONTENT_PAGE'; 1015 case 'info': 1016 return 'INFO_PAGE'; 1017 default: 1018 return 'OTHER_PAGE'; 1019 } 1020 } 1021 1022 window.iAdvizeInterface = window.iAdvizeInterface || []; 1023 window.iAdvizeInterface.config = { 1024 sid: 9464 1025 }; 1026 1027 // Implement Add-to-Cart callback for iAdvize 1028 window.iAdvizeInterface.push(function(iAdvize) { 1029 const iadvizePageType = fromShopifyToIAdvizePageType(ShopifyAnalytics.meta.page.pageType); 1030 const productId = null ; 1031 const customData = {}; 1032 1033 if (iadvizePageType === 'PRODUCT_DETAIL_PAGE') { 1034 customData.page_type = 'product'; 1035 } 1036 1037 if (iadvizePageType) { 1038 customData.iadvize_page_type = iadvizePageType; 1039 } 1040 1041 if (productId) { 1042 customData.product_id = productId; 1043 } 1044 1045 if (Object.keys(customData).length > 0) { 1046 iAdvize.set('customData', customData); 1047 } 1048 1049 // Listen for navigation events and update variant 1050 iAdvize.on('tag:eventsChange', function(events) { 1051 try { 1052 if (Array.isArray(events)) { 1053 events.forEach(function(event) { 1054 if (event.type === 'data-pipeline' && event.event === 'visitor.navigate') { 1055 // Visitor navigated, update variant 1056 setTimeout(function() { 1057 const form = document.querySelector('form[id*="product"], [data-product-form]'); 1058 const variantInput = form?.querySelector('input[name="id"][type="hidden"]'); 1059 const currentVariant = variantInput?.value; 1060 1061 if (currentVariant) { 1062 const existingCustomData = iAdvize.get('customData') || {}; 1063 iAdvize.set('customData', { 1064 ...existingCustomData, 1065 product_id: currentVariant, 1066 iadvize_page_type: 'PRODUCT_DETAIL_PAGE' 1067 }); 1068 } 1069 }, 100); 1070 } 1071 }); 1072 } 1073 } catch (e) { 1074 // Ignore errors 1075 } 1076 }); 1077 1078 // register product id watcher, to react to variant changes 1079 (function initVariantObserver(){ 1080 try { 1081 if (window.__idzVariantObserverStarted) return; // avoid duplicates 1082 window.__idzVariantObserverStarted = true; 1083 1084 let lastVariantId = null; 1085 const getVariantId = function() { 1086 try { 1087 const variantParam = document.location.search.replace('?', '').split('&').map((param) => param.split('=')).find(([key, value]) => { 1088 return (key === 'variant' && value) 1089 }); 1090 1091 return (variantParam && variantParam[1]) || null; 1092 } catch (e) { 1093 return null; 1094 } 1095 }; 1096 1097 const onChange = function(newId) { 1098 // Update iAdvize custom data with the new product/variant id 1099 iAdvize.set('customData', { product_id: newId }); 1100 }; 1101 1102 setInterval(function(){ 1103 const current = getVariantId(); 1104 if (current !== lastVariantId && current != null) { 1105 lastVariantId = current; 1106 onChange(current); 1107 } 1108 }, 250); 1109 1110 // Trigger immediately if value already present 1111 const initial = getVariantId(); 1112 if (initial != null) {
1113 lastVariantId = initial; 1114 onChange(initial); 1115 } 1116 1117 } catch (e) { 1118 // fail-safe: do nothing if observer setup fails 1119 } 1120 })(); 1121 1122 1123 // Register the callback for Add-to-Cart events 1124 iAdvize.labs().onAddToCart((itemId) => { 1125 return new Promise((resolve, reject) => { 1126 // From here, the loading state is automatically enabled 1127 1128 // Use Shopify's Ajax API to add the item to cart 1129 fetch('/cart/add.js', { 1130 method: 'POST', 1131 headers: { 1132 'Content-Type': 'application/json', 1133 }, 1134 body: JSON.stringify({ 1135 id: itemId, 1136 quantity: 1 1137 }) 1138 }) 1139 .then(response => { 1140 if (response.ok) { 1141 return response.json(); 1142 } 1143 throw new Error('Network response was not ok'); 1144 }) 1145 .then(data => { 1146 // Successfully added to cart 1147 resolve(true); 1148 }) 1149 .catch(error => { 1150 console.error('Error adding product to cart:', error); 1151 resolve(false); 1152 }); 1153 }); 1154 }); 1155 }); 1156 const script = document.createElement("script"); 1157 1158 script.src = "//halc.iadvize.com/iadvize.js"; 1159 1160 (function() { 1161 if (document.body) { 1162 document.body.append(script); 1163 return; 1164 } 1165 const deadline = Date.now() + 10000; 1166 const intervalId = setInterval(function() { 1167 if (document.body) { 1168 clearInterval(intervalId); 1169 document.body.append(script); 1170 } else if (Date.now() >= deadline) { 1171 clearInterval(intervalId); 1172 } 1173 }, 250); 1174 })(); 1175 } 1176 1177 (function() { 1178 const region = 'FR'; 1179 const consentMode = 'always'; 1180 const hasConsentApi = !!(window.Shopify && window.Shopify.loadFeatures); 1181 const POLL_INTERVAL_MS = 250; 1182 const POLL_MAX_MS = 10000; 1183 1184 function checkConsent() { 1185 const cp = window.Shopify && window.Shopify.customerPrivacy; 1186 return cp && cp.preferencesProcessingAllowed() && cp.analyticsProcessingAllowed(); 1187 } 1188 1189 let pollIntervalId = null; 1190 function stopPolling() { 1191 if (pollIntervalId !== null) { 1192 clearInterval(pollIntervalId); 1193 pollIntervalId = null; 1194 } 1195 } 1196 1197 function grantAndLoad() { 1198 stopPolling(); 1199 document.removeEventListener('visitorConsentCollected', onConsentCollected); 1200 loadIAdvize(); 1201 } 1202 1203 // Registered upfront â catches CMP events even if loadFeatures callback fires 1204 // late or not at all (known Shopify issue on some shops). 1205 function onConsentCollected(event) { 1206 if (event.detail.analyticsAllowed && event.detail.preferencesAllowed) { 1207 grantAndLoad(); 1208 } 1209 } 1210 document.addEventListener('visitorConsentCollected', onConsentCollected); 1211 1212 // 'never': embed stays inert. iAdvize is loaded outside Shopify (CMP / tag 1213 // manager), which is the source of truth. Do nothing. 1214 if (consentMode === 'never') { 1215 stopPolling(); 1216 document.removeEventListener('visitorConsentCollected', onConsentCollected); 1217 return; 1218 } 1219 1220 // 'always': load immediately, never gate on Shopify consent. 1221 if (consentMode === 'always') { 1222 grantAndLoad(); 1223 return; 1224 } 1225 1226 // 'auto' (legacy default): US loads immediately; fail-open when the consent 1227 // API is unavailable. Other regions fall through to the consent-required path. 1228 if (consentMode === 'auto' && (region === 'US' || !hasConsentApi)) { 1229 grantAndLoad(); 1230 return; 1231 } 1232 1233 // 'sync', or non-US 'auto': require Shopify consent. Load now if already 1234 // granted, otherwise rely on the upfront listener + poll + loadFeatures 1235 // fallback below. 'sync' is fail-closed: if consent is never granted (or the 1236 // API is absent) the tag does not fire â clients whose CMP doesn't sync with 1237 // Shopify should use 'always' or 'never' instead. 1238 if (checkConsent()) { 1239 grantAndLoad(); 1240 return; 1241 } 1242 1243 // Without Shopify's consent API there is nothing to poll or load. We reach 1244 // here only in 'sync' mode (non-US 'auto' with no API loaded immediately 1245 // above), so stay fail-closed: the tag does not fire. The upfront listener 1246 // remains registered in case the CMP populates consent later. 1247 if (!hasConsentApi) { 1248 return; 1249 } 1250 1251 // Poll customerPrivacy for late population (some CMPs write async without 1252 // firing visitorConsentCollected, and Shopify.loadFeatures callback may 1253 // never fire on affected shops). Listener stay active past deadline. 1254 const deadline = Date.now() + POLL_MAX_MS; 1255 pollIntervalId = setInterval(function() { 1256 if (checkConsent()) { 1257 grantAndLoad(); 1258 return; 1259 } 1260 if (Date.now() >= deadline) { 1261 stopPolling(); 1262 } 1263 }, POLL_INTERVAL_MS); 1264 1265 window.Shopify.loadFeatures( 1266 [{ name: 'consent-tracking-api', version: '0.1' }], 1267 function(error) { 1268 if (error) { 1269 // Fail open for legacy 'auto' (preserve prior behavior); stay 1270 // fail-closed for 'sync'. 1271 if (consentMode === 'auto') { 1272 grantAndLoad(); 1273 } 1274 } else if (checkConsent()) { 1275 grantAndLoad(); 1276 } 1277 } 1278 ); 1279 })(); 1280</script>
1280 1281 1282<!-- END IADVIZE LIVECHAT --> 1283 1284 1285<!-- END app block --><!-- BEGIN app block: shopify://apps/regios-discounts/blocks/regios_discounts_embed/dc1514bb-4830-4102-bffa-e8b300bac5bd --> 1286
1287<script id="regios-dopp-config" type="application/json"> 1288{ 1289 "discountConfigs": {"1898210165074":"null","1898227859794":"null","1898289201490":"null","1905427972434":"null","1906147262802":"null","1906154668370":"null","1906156372306":"null","1906156601682":"null","1906158928210":"null","1906159747410":"null","1906160238930":"null","1906160828754":"null","1906161451346":"null","1906644123986":"null","1910377906514":"null","1910573629778":"null","1911809573202":"null","1912379277650":"null","1918336434514":"null","1918341546322":"null","1918341710162":"null","1918342005074":"null","1918343610706":"null","1918345019730":"null","1918358421842":"null","1918845419858":"null","1918846566738":"null","1919076139346":"null","1919127355730":"null","1920344883538":"null","1920345178450":"null","1920345538898":"null","1920345702738":"null","1920345768274":"null","1920345833810":"null","1920346030418":"null","1920346259794":"null","1920346521938":"null","1920346816850":"null","1920347210066":"null","1920347472210":"null","1920347668818":"null","1920347865426":"null","1920810352978":"null"}, 1290 "calculateDiscountBasedOnQuantity": false, 1291 "countryCode": "FR", 1292 "currencyCode": "EUR", 1293 "currencySymbol": "â¬", 1294 1295 "customer": null, 1296 1297 "customerMetafieldsToCheck": "", 1298 1299 "moneyFormat": "0,00 â¬", 1300 "moneyFormatString": "{{amount_with_comma_separator}} â¬", 1301 1302 "themeType": "auto_detect", 1303 "badgeTemplate": "[discount_percentage] OFF", 1304 "badgeCss": "", 1305 "descriptionTemplate": "[discount_message]", 1306 "descriptionCss": "", 1307 "priceOnSaleClass": "", 1308 "delay": 0, 1309 "logLevel": "error", 1310 "regularPriceTemplate": "[regular_price]", 1311 "salePriceTemplate": "[sale_price]", 1312 "regiosDiscountsAppProxyUrl": "\/apps\/regios-discounts", 1313 "useAppProxyForManualCodeStrikethrough": false, 1314 "cart": { 1315 "attributes": {}, 1316 "discountCodes": [], 1317 "items": [ 1318 1319 ] 1320 }, 1321 "featureFlags": "", 1322 "designMode": false, 1323 1324 "marketId": 116017496402, 1325 1326 1327 "doppV3Fallbacks": { 1328 1329 "product": null, 1330 1331 "keep-this-last": "" 1332 } 1333 1334} 1335</script>
1335 1336
1337<script id="regios-dopp-script"> 1338 var configScript = document.getElementById('regios-dopp-config'); 1339 1340 if (!configScript) { 1341 throw new Error('[Regios Discounts] Critical error: Configuration script not found.'); 1342 } 1343 1344 var config = JSON.parse(configScript.textContent); 1345 window.RegiosDOPP = Object.assign(window.RegiosDOPP || {}, config); 1346</script>
1346 1347 1348 1349<!-- END app block --><!-- BEGIN app block: shopify://apps/regios-discounts/blocks/regios_add_to_cart_embed/dc1514bb-4830-4102-bffa-e8b300bac5bd -->
1349<script> 1350 window.RegiosDOPP_AddToCart = window.RegiosDOPP_AddToCart || { 1351 reloadInUnsupportedThemes: true, 1352 maxRetries: null, 1353 reAddAfterManualRemoval: false, 1354 }; 1355</script>
1355 1356 1357 1358 1359<!-- END app block --><!-- BEGIN app block: shopify://apps/ab-tasty/blocks/abtasty-tag/50439cd8-89e0-4240-838a-2948c07c763d --> 1360 1361
1361<script 1362 type="text/javascript" 1363 src="https://try.abtasty.com/5be224b640656bd60a8a6fe441325bc0.js" 1364 async 1365 ></script>
1365 1366 1367
1367<script type="text/javascript"> 1368 // This waits for all the external ressources (including ABTasty tag) to load before executing the callback function. 1369 window.addEventListener('load', function () { 1370 if(!window.ABTasty) { 1371 // AB Tasty tag is not loaded so exit. 1372 return 1373 } 1374 1375 if (window.ABTasty.eventState?.['consentValid']?.status === 'complete') { 1376 updateShopifyDataForWebPixel(); 1377 } else { 1378 window.addEventListener('abtasty_consentValid', () => { 1379 updateShopifyDataForWebPixel(); 1380 }); 1381 } 1382 1383 1384 async function waitForVisitorId(maxRetries = 5, delayMs = 500) { 1385 for (let i = 0; i < maxRetries; i++) { 1386 const visitorId = ABTasty.api.v1.getValue('visitorId') 1387 if (visitorId) { 1388 return visitorId; 1389 } 1390 await new Promise(resolve => setTimeout(resolve, delayMs)); 1391 } 1392 return null; 1393 } 1394 1395 1396 async function updateShopifyDataForWebPixel() { 1397 const STORAGE_KEY = 'ABTastyShopify'; 1398 const consentReady = ABTasty.consentReady; 1399 const shouldHandleSubdomain = "false" === "true"; 1400 1401 if(!consentReady) { 1402 if(shouldHandleSubdomain) { 1403 await cookieStore.delete(STORAGE_KEY); 1404 } 1405 return localStorage.removeItem(STORAGE_KEY); 1406 } 1407 1408 const visitorId = await waitForVisitorId(5, 500); 1409 1410 if (!visitorId) { 1411 console.error('[AB Tasty] Unable to get AB Tasty visitorID after 5 retry'); 1412 return; 1413 } 1414 1415 const ABTastyData = { 1416 identifier: "5be224b640656bd60a8a6fe441325bc0", 1417 campaigns: ABTasty.getCampaignHistory(), 1418 visitorId: visitorId, 1419 accountId: ABTasty.getAccountSettings().id, 1420 consent: ABTasty.consentReady, 1421 }; 1422 1423 if (shouldHandleSubdomain) { 1424 await cookieStore.set({ 1425 name: STORAGE_KEY, 1426 value: JSON.stringify(ABTastyData), 1427 expires: Date.now() + 1 * 24 * 60 * 60 * 1000, // 1 day 1428 domain: window.location.hostname, 1429 }); 1430 } 1431 localStorage.setItem(STORAGE_KEY, JSON.stringify(ABTastyData)); 1432 } 1433 }); 1434 </script>
1434 1435 1436 1437 1438 1439 1440<!-- END app block --><!-- BEGIN app block: shopify://apps/addingwell/blocks/aw-gtm/c8ed21e7-0ac8-4249-8c91-cbdde850b5b8 -->
1440<script 1441 type="module" 1442> 1443 setTimeout(async function () { 1444 const keySessionStorage = 'aw_settings'; 1445 let __AW__settings = JSON.parse(sessionStorage.getItem(keySessionStorage)); 1446 if(!__AW__settings) { 1447 const awSettings = await fetch( 1448 "/apps/addingwell-proxy", 1449 { 1450 method: "GET", 1451 redirect: "follow", 1452 headers: {'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*'} 1453 } 1454 ); 1455 if (awSettings.ok) { 1456 __AW__settings = await awSettings.json(); 1457 sessionStorage.setItem(keySessionStorage, JSON.stringify(__AW__settings)); 1458 } else { 1459 console.error('Addingwell - Loading proxy error', awSettings.status); 1460 return; 1461 } 1462 } 1463 1464 if(__AW__settings.insertGtmTag && __AW__settings.gtmId) { 1465 let __AW__gtmUrl = 'https://www.googletagmanager.com/gtm.js'; 1466 let __AW__isAddingwellCdn = false; 1467 if(__AW__settings.insertGtmUrl && __AW__settings.gtmUrl) { 1468 __AW__gtmUrl = __AW__settings.gtmUrl; 1469 __AW__isAddingwellCdn = __AW__settings.isAddingwellCdn; 1470 } 1471 1472 (function(w,d,s,l,i){ 1473 w[l]=w[l]||[];w[l].push({'gtm.start':new Date().getTime(),event:'gtm.js'}); 1474 var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:''; 1475 j.async=true; 1476 j.src=`${__AW__gtmUrl}?${__AW__isAddingwellCdn ? 'awl' : 'id'}=`+(__AW__isAddingwellCdn ? i.replace(/^GTM-/, '') : i)+dl;f.parentNode.insertBefore(j,f); 1477 })(window,document,'script',`${__AW__settings.dataLayerVariableName}`,`${__AW__settings.gtmId}`); 1478 } 1479 1480 const __AW__getEventNameWithSuffix = (eventName) => { 1481 return eventName + (__AW__settings.dataLayerEventSuffix ? "_" + __AW__settings.dataLayerEventSuffix : ""); 1482 } 1483 1484 function __AW__waitForShopifyYCookie(maxAttempts, intervalMs) { 1485 return new Promise(function(resolve) { 1486 let attempts = 0; 1487 maxAttempts = maxAttempts || 5; 1488 intervalMs = intervalMs || 200; 1489 function check() { 1490 const match = document.cookie.match(/(?:^|;\s*)_shopify_y=([^;]*)/); 1491 if (match) { 1492 resolve(match[1]); 1493 } else if (attempts < maxAttempts) { 1494 attempts++; 1495 setTimeout(check, intervalMs); 1496 } else { 1497 console.warn('[AW] _shopify_y cookie not found after consent'); 1498 resolve(null); 1499 } 1500 } 1501 check(); 1502 }); 1503 } 1504 1505 const __AW__CONSENT_KEY = 'aw_consent_state'; 1506 1507 function __AW__getConsentState() { 1508 try { 1509 if (window.Shopify?.customerPrivacy?.currentVisitorConsent) { 1510 return JSON.stringify(window.Shopify.customerPrivacy.currentVisitorConsent()); 1511 } 1512 } catch(e) {} 1513 return null; 1514 } 1515 1516 function __AW__isEmptyConsent(stateStr) { 1517 try { 1518 return Object.values(JSON.parse(stateStr)).every(v => v === ''); 1519 } catch(e) {} 1520 return true; 1521 } 1522 1523 let __AW__prevConsentState = __AW__getConsentState() ?? localStorage.getItem(__AW__CONSENT_KEY); 1524 1525 document.addEventListener('visitorConsentCollected', async function(event) { 1526 const currentConsentState = __AW__getConsentState(); 1527 1528 if (currentConsentState !== null && currentConsentState === __AW__prevConsentState) { 1529 return; 1530 } 1531 1532 __AW__prevConsentState = currentConsentState; 1533 1534 if (currentConsentState !== null) { 1535 if (__AW__isEmptyConsent(currentConsentState)) { 1536 localStorage.removeItem(__AW__CONSENT_KEY); 1537 } else { 1538 localStorage.setItem(__AW__CONSENT_KEY, currentConsentState); 1539 } 1540 } 1541 1542 window.Shopify.analytics.publish('addingwell:shopify_update_consent', {visitorConsentCollected: true}); 1543 1544 const shopifyY = await __AW__waitForShopifyYCookie(); 1545 if (!shopifyY) return; 1546 1547 window[__AW__settings.dataLayerVariableName] = window[__AW__settings.dataLayerVariableName] || []; 1548 window[__AW__settings.dataLayerVariableName].push({ 1549 event: __AW__getEventNameWithSuffix('shopify_consent_updated'), 1550 }); 1551 }); 1552 1553 if(__AW__settings.enableDataLayer) { 1554 const MAX_ITEMS_BATCH = 10; 1555 const sendBatchEvents = (items, eventName, eventObject) => { 1556 let batch = []; 1557 for(let i = 0; i < items.length; i++) { 1558 batch.push(items[i]); 1559 if(batch.length === MAX_ITEMS_BATCH || i === items.length - 1) { 1560 const eventClone = { 1561 ...eventObject, 1562 ecommerce: { 1563 ...eventObject.ecommerce, 1564 items: [...batch] 1565 } 1566 }; 1567 window[__AW__settings.dataLayerVariableName].push({ ecommerce: null }); 1568 window[__AW__settings.dataLayerVariableName].push({ 1569 ...{'event': __AW__getEventNameWithSuffix(eventName)}, 1570 ...eventClone 1571 }); 1572 1573 batch = []; 1574 } 1575 } 1576 } 1577 1578 function __AW__filterNullOrEmpty(obj) { 1579 let filteredObj = {}; 1580 1581 for (let key in obj) { 1582 if (obj.hasOwnProperty(key)) { 1583 let value = obj[key]; 1584 1585 // If value is an object (and not null), recursively filter sub-elements 1586 if (typeof value === "object" && value !== null && value !== undefined) { 1587 let filteredSubObject = __AW__filterNullOrEmpty(value); 1588 1589 // Add the filtered sub-object only if it's not empty 1590 if (Object.keys(filteredSubObject).length > 0) { 1591 filteredObj[key] = filteredSubObject; 1592 } 1593 } else { 1594 // Add the value only if it's neither null nor an empty string 1595 if (value !== null && value !== "" && value !== undefined) { 1596 filteredObj[key] = value; 1597 } 1598 } 1599 } 1600 } 1601 return filteredObj; 1602 } 1603 1604 function getPageType(value) { 1605 const pageTypeMapping = { 1606 404: '404', 1607 article: 'article', 1608 blog: 'blog', 1609 cart: 'cart', 1610 collection: 'collection', 1611 gift_card: 'gift_card', 1612 index: 'homepage', 1613 product: 'product', 1614 search: 'searchresults', 1615 'customers/login': 'login', 1616 'customers/register': 'sign_up' 1617 }; 1618 return pageTypeMapping[value] || 'other'; 1619 } 1620 let __AW__cartReady = false;
1621 const cartRegex = /\/cart\/(add|change|update)(\.js|\.json)?(\?.*)?$/; 1622 const pendingCartEventName = "aw_pending_cart_event"; 1623 let awCartQueue = Promise.resolve(); 1624 1625 function pushDataLayerEvents() { 1626 initCart(); 1627 window[__AW__settings.dataLayerVariableName] = window[__AW__settings.dataLayerVariableName] || []; // init data layer if doesn't already exist 1628 const templateName = "cart"; 1629 1630 const getFormattedPrice = (priceInCents) => priceInCents/100; 1631 /********************** 1632 * DATALAYER SECTIONS 1633 ***********************/ 1634 /** 1635 * DATALAYER: User Data 1636 * Build user_data properties. 1637 */ 1638 let newCustomer = true; 1639 window.__AW__CommonData = { 1640 user_data: { 1641 new_customer: newCustomer, 1642 } 1643 }; 1644 1645 1646 1647 window.__AW__CommonData.country = "FR" 1648 window.__AW__CommonData.market = "fr" 1649 window.__AW__CommonData.marketId = 116017496402 1650 1651 1652 window.__AW__CommonData.language = "fr-FR"; 1653 1654 window.__AW__CommonData = __AW__filterNullOrEmpty(window.__AW__CommonData); 1655 1656 // Ajout du hash SHA256 des champs sensibles de user_data (version robuste) 1657 async function sha256(str) { 1658 if (!str) return undefined; 1659 if (!(window.crypto && window.crypto.subtle)) { 1660 console.error('Crypto.subtle non supporté, hash impossible pour :', str); 1661 return undefined; 1662 } 1663 try { 1664 const buf = await window.crypto.subtle.digest('SHA-256', new TextEncoder().encode(str)); 1665 return Array.from(new Uint8Array(buf)).map(x => x.toString(16).padStart(2, '0')).join(''); 1666 } catch (e) { 1667 console.error('Erreur lors du hash SHA256 pour', str, e); 1668 return undefined; 1669 } 1670 } 1671 async function getUserDataHash(user_data) { 1672 const hashObj = {}; 1673 if (!user_data) return hashObj; 1674 try { 1675 if (user_data.email_address) hashObj.email_address = await sha256(user_data.email_address); 1676 if (user_data.phone_number) hashObj.phone_number = await sha256(user_data.phone_number); 1677 if (user_data.address && typeof user_data.address === 'object') { 1678 hashObj.address = {}; 1679 if (user_data.address.first_name) hashObj.address.first_name = await sha256(user_data.address.first_name); 1680 if (user_data.address.last_name) hashObj.address.last_name = await sha256(user_data.address.last_name); 1681 if (user_data.address.street) hashObj.address.street = await sha256(user_data.address.street); 1682 if (user_data.address.city) hashObj.address.city = await sha256(user_data.address.city); 1683 if (user_data.address.region) hashObj.address.region = await sha256(user_data.address.region); 1684 if (user_data.address.postal_code) hashObj.address.postal_code = await sha256(user_data.address.postal_code); 1685 if (user_data.address.country) hashObj.address.country = await sha256(user_data.address.country); 1686 } 1687 } catch (e) { 1688 console.error('Erreur lors du hash user_data_hashed', e); 1689 } 1690 return __AW__filterNullOrEmpty(hashObj); 1691 } 1692 (async function() { 1693 if (window.__AW__CommonData && window.__AW__CommonData.user_data) { 1694 window.__AW__CommonData.user_data_hashed = await getUserDataHash(window.__AW__CommonData.user_data); 1695 } 1696 })(); 1697 1698 window.__AW__CommonData["page_type"] = getPageType(templateName); 1699 window.__AW__CommonData["theme"] = window?.Shopify?.theme; 1700 window[__AW__settings.dataLayerVariableName].push(window.__AW__CommonData); 1701 1702 window[__AW__settings.dataLayerVariableName].push({"event": __AW__getEventNameWithSuffix("page_view")}); 1703 1704 /** DATALAYER: select_item handoff */ 1705 const pendingSelectItemName = "aw_pending_select_item"; 1706 1707 const __AW__pushSelectItem = (payload) => { 1708 window[__AW__settings.dataLayerVariableName].push({ ecommerce: null }); 1709 window[__AW__settings.dataLayerVariableName].push(payload); 1710 }; 1711 1712 const __AW__flushPendingSelectItem = () => { 1713 let pending = null; 1714 try { 1715 pending = sessionStorage.getItem(pendingSelectItemName); 1716 sessionStorage.removeItem(pendingSelectItemName); 1717 } catch (e) { 1718 return; 1719 } 1720 if (!pending) return; 1721 try { 1722 __AW__pushSelectItem(JSON.parse(pending)); 1723 } catch (e) { 1724 console.warn('[AW] pending select_item error', e); 1725 } 1726 }; 1727 1728 __AW__flushPendingSelectItem(); 1729 1730 1731 /** 1732 * DATALAYER: 404 Pages 1733 * Fire on 404 Pages */ 1734 1735 1736 1737 /** 1738 * DATALAYER: Blog Articles 1739 * Fire on Blog Article Pages */ 1740 1741 1742 1743 1744 1745 1746 /** DATALAYER: Product List Page (Collections, Category) 1747 * Fire on all product listing pages. */ 1748 1749 const __AW__transformNumberToString = (value) => { 1750 if (value !== null && value !== undefined && typeof value === 'number') { 1751 return value.toString(); 1752 } 1753 /** By Default return the current value */ 1754 return value; 1755 }; 1756 1757 let discountPrice = 0.00; 1758 1759 1760 /** DATALAYER: Product Page 1761 * Fire on all Product View pages. */ 1762 1763 1764 /** DATALAYER: Cart View 1765 * Fire anytime a user views their cart (non-dynamic) */ 1766 1767 const awEcommerceCart = { 1768 ecommerce: { 1769 currency: "EUR", 1770 value: getFormattedPrice(0), 1771 items:[ 1772 1773 ], 1774 } 1775 }; 1776 window[__AW__settings.dataLayerVariableName].push({ ecommerce: null }); 1777 window[__AW__settings.dataLayerVariableName].push({ 1778 ...{'event': __AW__getEventNameWithSuffix('view_cart')}, 1779 ...awEcommerceCart 1780 }); 1781 1782 1783 let drawerCartAlreadyOpened = false;
1784 let pendingViewCartTimeout = null; 1785 1786 let stateObserver = null; 1787 let domObserver = null; 1788 1789 function initCart() { 1790 fetch(`${window.Shopify?.routes?.root || "/"}cart.js?adw=1&init=1`, { 1791 credentials: 'same-origin', 1792 headers: { 'Accept': 'application/json' } 1793 }).then(r => r.ok ? r.json() : null) 1794 .then(freshCart => { 1795 if (freshCart) { 1796 window.__AW__slaveShopifyCart = freshCart; 1797 } else { 1798 window.__AW__slaveShopifyCart = { items: [] }; 1799 } 1800 __AW__cartReady = true; 1801 }) 1802 .catch(e => { 1803 console.warn('[AW] Cart hydration failed', e); 1804 window.__AW__slaveShopifyCart = { items: [] }; 1805 __AW__cartReady = true; 1806 }) 1807 .finally(() => { 1808 // A snapshot left by a non-AJAX add to cart (form submit + reload) can only be synced once the cart is ready 1809 if (sessionStorage.getItem(pendingCartEventName)) { 1810 scheduleCartSync(); 1811 } 1812 }); 1813 } 1814 1815 function fireViewCartOncePerOpen() { 1816 if (pendingViewCartTimeout) return; 1817 1818 drawerCartAlreadyOpened = true; 1819 1820 pendingViewCartTimeout = setTimeout(() => { 1821 pendingViewCartTimeout = null; 1822 if (!__AW__cartReady) return; 1823 const ecommerceDataLayer = { 1824 ecommerce: { 1825 currency: window.__AW__slaveShopifyCart.currency, 1826 value: window.__AW__slaveShopifyCart.total_price / 100, 1827 items: window.__AW__slaveShopifyCart.items.map(item => { 1828 const price = (item.discounted_price ?? item.price) / 100; 1829 const discount = (item.price - (item.discounted_price ?? 0)) / 100; 1830 1831 let coupon = ""; 1832 if (Array.isArray(item?.discounts)) { 1833 coupon = item.discounts 1834 .filter(d => typeof d?.title === "string") 1835 .map(d => d.title) 1836 .join(", "); 1837 } 1838 1839 return { 1840 item_id: __AW__transformNumberToString(item.product_id), 1841 item_variant: item.variant_title, 1842 item_variant_title: item.variant_title, 1843 item_variant_id: __AW__transformNumberToString(item.variant_id), 1844 item_product_id: __AW__transformNumberToString(item.product_id), 1845 item_product_title: item.product_title, 1846 item_name: item.product_title, 1847 price, 1848 discount, 1849 item_brand: item.vendor, 1850 item_category: item.product_type, 1851 item_list_name: item.collection || "", 1852 item_list_id: "", 1853 quantity: item.quantity, 1854 sku: __AW__transformNumberToString(item.sku), 1855 coupon, 1856 url: item.url, 1857 selling_plan_id : item?.selling_plan_allocation?.selling_plan?.id, 1858 selling_plan_name : item?.selling_plan_allocation?.selling_plan?.name 1859 1860 }; 1861 }) 1862 } 1863 }; 1864 1865 window[__AW__settings.dataLayerVariableName].push({ ecommerce: null }); 1866 window[__AW__settings.dataLayerVariableName].push({ 1867 event: __AW__getEventNameWithSuffix("view_cart"), 1868 ...ecommerceDataLayer 1869 }); 1870 }, 1000); 1871 } 1872 1873 function resetOnClose() { 1874 drawerCartAlreadyOpened = false; 1875 if (pendingViewCartTimeout) { 1876 clearTimeout(pendingViewCartTimeout); 1877 pendingViewCartTimeout = null; 1878 } 1879 } 1880 1881 function getTargets() { 1882 const cartDrawer = document.querySelector("cart-drawer"); 1883 const dialog = 1884 document.querySelector("cart-drawer dialog") || 1885 document.querySelector("cart-drawer-component dialog") || 1886 document.querySelector("cart-drawer-component dialog[ref='dialog']"); 1887 1888 return { cartDrawer, dialog }; 1889 } 1890 1891 function isCartOpen({ cartDrawer, dialog }) { 1892 const openByDialog = !!dialog && (dialog.open || dialog.hasAttribute("open")); 1893 const openByClass = !!cartDrawer && cartDrawer.classList.contains("active"); 1894 const openByAttr = !!cartDrawer && cartDrawer.hasAttribute("open"); 1895 return openByDialog || openByClass || openByAttr; 1896 } 1897 1898 function attachStateObserver() { 1899 const { cartDrawer, dialog } = getTargets(); 1900 1901 if (stateObserver) stateObserver.disconnect(); 1902 1903 stateObserver = new MutationObserver(() => { 1904 const openNow = isCartOpen(getTargets()); 1905 1906 if (openNow) { 1907 if (!drawerCartAlreadyOpened) fireViewCartOncePerOpen(); 1908 } else { 1909 resetOnClose(); 1910 } 1911 }); 1912 1913 if (cartDrawer) { 1914 stateObserver.observe(cartDrawer, { 1915 attributes: true, 1916 attributeFilter: ["class", "open"] 1917 }); 1918 } 1919 1920 if (dialog) { 1921 stateObserver.observe(dialog, { 1922 attributes: true, 1923 attributeFilter: ["open"] 1924 }); 1925 } 1926 1927 const openNow = isCartOpen(getTargets()); 1928 if (openNow) { 1929 if (!drawerCartAlreadyOpened) fireViewCartOncePerOpen(); 1930 } else { 1931 resetOnClose(); 1932 } 1933 } 1934 1935 function observeCartDrawerOpen() { 1936 attachStateObserver(); 1937 1938 if (domObserver) domObserver.disconnect(); 1939 1940 domObserver = new MutationObserver(() => { 1941 attachStateObserver(); 1942 }); 1943 1944 domObserver.observe(document.documentElement, { 1945 childList: true, 1946 subtree: true 1947 }); 1948 } 1949 1950 observeCartDrawerOpen(); 1951 1952 1953 /** DATALAYER: Search Results */ 1954 var searchPage = new RegExp("search", "g"); 1955 if(document.location.pathname.match(searchPage)){ 1956 var __AW__items = []; 1957 1958 1959 const awEcommerceSearch = { 1960 search_term: null, 1961 results_count: null, 1962 ecommerce: { 1963 currency: "EUR", 1964 items : [] 1965 } 1966 }; 1967 sendBatchEvents(__AW__items, "search", awEcommerceSearch); 1968 } 1969 1970 1971 document.addEventListener('click', async function(e) { 1972 const btn = e.target.closest('[href*="/cart/add"], [action*="/cart/add"], button[name="add"]'); 1973 if (!btn || !__AW__cartReady) return; 1974 snapshotCart(); 1975 }, true); 1976 1977 patchFetch(); 1978 patchXhr(); 1979 1980 function snapshotCart() { 1981 try { 1982 sessionStorage.setItem( 1983 pendingCartEventName, 1984 JSON.stringify(window.__AW__slaveShopifyCart ?? { items: [] }) 1985 ); 1986 } catch (e) { 1987 console.warn('[AW] snapshot error', e); 1988 } 1989 } 1990 1991 function patchXhr() { 1992 const nativeSend = typeof XMLHttpRequest === 'function' ? XMLHttpRequest.prototype?.send : null; 1993 if (typeof nativeSend !== 'function' || nativeSend.__AW__patched) return; 1994 1995 XMLHttpRequest.prototype.send = function(body) { 1996 this.addEventListener('load', () => { 1997 try { 1998 const abs = this.responseURL || ''; 1999 const u = new URL(abs, location.origin); 2000 const mt = u.pathname + (u.search || ''); 2001 if (this.status === 200 && cartRegex.test(mt)) { 2002 scheduleCartSync(); 2003 } 2004 } catch (e) { 2005 console.error('[AW] XHR handler error', e); 2006 } 2007 }); 2008 return nativeSend.apply(this, arguments); 2009 }; 2010 2011 XMLHttpRequest.prototype.send.__AW__patched = true; 2012 } 2013 2014 function patchFetch() { 2015 const previousFetch = window.fetch; 2016 if (typeof previousFetch !== 'function' || previousFetch.__AW__patched) return; 2017 2018 window.fetch = async function (...args) { 2019 const resource = args[0]; 2020 try { 2021 2022 const url = resource instanceof Request ? resource.url : resource instanceof URL ? resource.href : String(resource); 2023 if (cartRegex.test(url)) { 2024 const response = await previousFetch.apply(this, args); 2025 if (response.ok) { 2026 scheduleCartSync(); 2027 } else { 2028 console.warn(`Fetch for ${url} failed with status: ${response.status}`); 2029 } 2030 return response; 2031 } 2032 } catch (error) { 2033 console.error('[AW] Fetch Wrapper Error:', error); 2034 } 2035 2036 return previousFetch.apply(this, args); 2037 }; 2038 2039 window.fetch.__AW__patched = true; 2040 } 2041 2042 function scheduleCartSync() { 2043 if (!__AW__cartReady) return; 2044 awCartQueue = awCartQueue 2045 .then(() => { 2046 if (!sessionStorage.getItem(pendingCartEventName)) snapshotCart(); 2047 return runCartSyncOnce(); 2048 }).catch(e => { 2049 console.error('[AW] scheduleCartSync error', e); 2050 }); 2051 } 2052 2053 async function runCartSyncOnce() { 2054 try { 2055 const response = await fetch(`${window.Shopify.routes.root || "/"}cart.js?adw=1`, { 2056 credentials: 'same-origin', 2057 headers: { 'Accept': 'application/json' } 2058 }); 2059 if (!response.ok) throw new Error('HTTP ' + response.status); 2060 const newCart = await response.json(); 2061 await compareCartData(newCart); 2062 } catch (error) { 2063 console.error('[AW] Error fetching /cart.js (singleton):', error); 2064 } 2065 } 2066 2067 function compareCartData(newCartData) { 2068 return new Promise((resolve) => { 2069 setTimeout(() => { 2070 try { 2071 const oldCartData = sessionStorage.getItem(pendingCartEventName) ? JSON.parse(sessionStorage.getItem(pendingCartEventName)) : {items: []}; 2072 newCartData = newCartData || {items: []}; 2073 const cartItemKey = item => `${item.variant_id ?? item.id}:${item.selling_plan_allocation?.selling_plan?.id ?? ''}`; 2074 const oldItems = new Map(oldCartData.items.map(item => [cartItemKey(item), item])); 2075 const newItems = new Map(newCartData.items.map(item => [cartItemKey(item), item])); 2076
2077 newItems.forEach((newItem, key) => { 2078 const oldItem = oldItems.get(key); 2079 const eventName = "add_to_cart"; 2080 if (!oldItem) { 2081 handleCartDataLayer(eventName, newItem.quantity, newItem); 2082 } else if (newItem.quantity > oldItem.quantity) { 2083 handleCartDataLayer(eventName, newItem.quantity - oldItem.quantity, newItem); 2084 } 2085 }); 2086 2087 oldItems.forEach((oldItem, key) => { 2088 const newItem = newItems.get(key); 2089 const eventName = "remove_from_cart"; 2090 if (!newItem) { 2091 handleCartDataLayer(eventName, oldItem.quantity, oldItem); 2092 } else if (oldItem.quantity > newItem.quantity) { 2093 handleCartDataLayer(eventName, oldItem.quantity - newItem.quantity, newItem); 2094 } 2095 }); 2096 2097 sessionStorage.removeItem(pendingCartEventName); 2098 window.__AW__slaveShopifyCart = newCartData; 2099 } catch(e) { 2100 console.error('[AW] compareCartData error', e); 2101 sessionStorage.removeItem(pendingCartEventName); 2102 } finally { 2103 resolve(); 2104 } 2105 }, 500); 2106 }); 2107 } 2108 2109 function handleCartDataLayer(eventName, quantity, item) { 2110 const price = (item.discounted_price ?? item.price) / 100; 2111 const discount = (item.price - (item.discounted_price ?? 0)) / 100; 2112 const totalValue = price * quantity; 2113 let coupon = ""; 2114 if(Array.isArray(item?.discounts)) { 2115 coupon = item.discounts 2116 .filter(discount => typeof discount?.title === 'string') 2117 .map(discount => discount.title) 2118 .join(', '); 2119 } 2120 2121 const ecommerceCart = { 2122 ecommerce: { 2123 currency: "EUR", 2124 value: totalValue, 2125 items: [{ 2126 item_id: __AW__transformNumberToString(item.product_id), 2127 item_variant: item.variant_title || "Default Variant", 2128 item_variant_id: __AW__transformNumberToString(item.variant_id), 2129 item_variant_title: item.variant_title || "Default Variant", 2130 item_name: item.product_title, 2131 item_product_id: __AW__transformNumberToString(item.product_id), 2132 item_product_title: item.product_title, 2133 sku: __AW__transformNumberToString(item.sku), 2134 discount: discount, 2135 price: price, 2136 item_brand: item.vendor, 2137 item_category: item.product_type, 2138 quantity: quantity, 2139 coupon: coupon, 2140 url: item?.url, 2141 selling_plan_id : item?.selling_plan_allocation?.selling_plan?.id, 2142 selling_plan_name : item?.selling_plan_allocation?.selling_plan?.name 2143 }] 2144 } 2145 }; 2146 2147 window[__AW__settings.dataLayerVariableName].push({ ecommerce: null }); 2148 window[__AW__settings.dataLayerVariableName].push({ 2149 ...{ 'event': __AW__getEventNameWithSuffix(eventName) }, 2150 ...ecommerceCart 2151 }); 2152 2153 } 2154 } 2155 2156 if (document.readyState === 'loading') { 2157 // document still loading... 2158 document.addEventListener('DOMContentLoaded', () => { 2159 pushDataLayerEvents(); 2160 }); 2161 } else { 2162 // already loaded, chocs away! 2163 pushDataLayerEvents(); 2164 } 2165 } 2166 }, 0); 2167</script>
2167 2168 2169 2170<!-- END app block --><!-- BEGIN app block: shopify://apps/yotpo-product-reviews/blocks/settings/eb7dfd7d-db44-4334-bc49-c893b51b36cf --> 2171 2172 2173
2173<script type="text/javascript" src="https://cdn-widgetsrepository.yotpo.com/v1/loader/gLTEH61CavIahnKMBUMow8H10Up5GsgD5uocpXc1?languageCode=fr" async></script>
2173 2174 2175 2176 2177 2178<!-- END app block -->
2178<script src="https://cdn.shopify.com/extensions/019aea34-75f8-7342-949f-278781ecad92/tradedoubler-affiliate-6/assets/library-loader.js" type="text/javascript" defer="defer"></script>
vendor: 1 bytes, line 2178
2178
2179<script src="https://cdn.shopify.com/extensions/01a0fc09-fc82-7b7d-a2d5-0cf4cae65dc9/regios-automatic-discounts-1516/assets/regios_discounts_embed.js" type="text/javascript" defer="defer"></script>
vendor: 1 bytes, line 2179
2179
2180<script src="https://cdn.shopify.com/extensions/01a0fc09-fc82-7b7d-a2d5-0cf4cae65dc9/regios-automatic-discounts-1516/assets/regios_add_to_cart_embed.js" type="text/javascript" defer="defer"></script>
2180 2181<link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
2182<script>(function(){if ("sendBeacon" in navigator && "performance" in window) {try {var session_token_from_headers = performance.getEntriesByType('navigation')[0].serverTiming.find(x => x.name == '_s').description;} catch {var session_token_from_headers = undefined;}var session_cookie_matches = document.cookie.match(/_shopify_s=([^;]*)/);var session_token_from_cookie = session_cookie_matches && session_cookie_matches.length === 2 ? session_cookie_matches[1] : "";var session_token = session_token_from_headers || session_token_from_cookie || "";function handle_abandonment_event(e) {var entries = performance.getEntries().filter(function(entry) {return /monorail-edge.shopifysvc.com/.test(entry.name);});if (!window.abandonment_tracked && entries.length === 0) {window.abandonment_tracked = true;var currentMs = Date.now();var navigation_start = performance.timing.navigationStart;var payload = {shop_id: 107173183826,url: window.location.href,navigation_start,duration: currentMs - navigation_start,session_token,page_type: "cart"};window.navigator.sendBeacon("https://monorail-edge.shopifysvc.com/v1/produce", JSON.stringify({schema_id: "online_store_buyer_site_abandonment/1.1",payload: payload,metadata: {event_created_at_ms: currentMs,event_sent_at_ms: currentMs}}));}}window.addEventListener('pagehide', handle_abandonment_event);}}());</script>
vendor: 1 bytes, line 2182
2182
2183<script> 2184 window.__TREKKIE_SHIM_QUEUE = window.__TREKKIE_SHIM_QUEUE || []; 2185</script>
vendor: 1 bytes, line 2185
2185
2186<script>(function(){var wpmLoader=function(){"use strict";var e=/Googlebot|Storebot-Google|bingbot|Baiduspider|YandexBot|DuckDuckBot|Slurp|facebookexternalhit|Twitterbot|LinkedInBot|Applebot|AdsBot-Google|Mediapartners-Google|APIs-Google|PetalBot|SemrushBot|AhrefsBot|MJ12bot|DotBot|Acunetix|PerplexityBot|Perplexity-User/i,t=/bytedance/i;function i(){try{var e=document.cookie;if(!e||"string"!=typeof e)return;for(var t=0,i=e.split(";");t<i.length;t++){var n=i[t],r=n.indexOf("=");if(-1!==r){var o=n.slice(0,r).trim();if(o){var a=void 0;try{a=decodeURIComponent(o)}catch(e){a=o}if("_shopify_s"===a){var d=n.slice(r+1).trim();try{return decodeURIComponent(d)}catch(e){return d}}}}}return}catch(e){return}}function n(e){try{"undefined"!=typeof console&&"function"==typeof console.warn&&console.warn(e)}catch(e){}}function r(e,t){return"string"==typeof e&&e.length>0&&e.length<=t?e:void 0}function o(e){var t;switch(null==(t=null==e?void 0:e.navigation)?void 0:t.type){case 0:return"navigate";case 1:return"reload";case 2:return"back_forward";default:return}}function a(){var e,t,i;try{var n=null==(i=null==(t=null==(e=self.ShopifyAnalytics)?void 0:e.lib)?void 0:t.trekkie)?void 0:i.state;return"awaiting-consent"===n||"initialized"===n?n:void 0}catch(e){return}}return function(d,s,u,l){var c=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};try{var p=c.trekkieShim;!0!==p&&"true"!==p||null!=window.__TREKKIE_SHIM_QUEUE||(window.__TREKKIE_SHIM_QUEUE=[])}catch(e){}var f,v,h,y,g=(v=(f={modern:/Edge?\/(1{2}[4-9]|1[2-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Firefox\/(1{2}[4-9]|1[2-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Chrom(ium|e)\/(9{2}|\d{3,})\.\d+(\.\d+|)|(Maci|X1{2}).+ Version\/(15\.\d+|(1[6-9]|[2-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(9{2}|\d{3,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(15[._]\d+|(1[6-9]|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Android:?[ /-](14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Android.+Firefox\/(15\d|1[6-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|SamsungBrowser\/([2-9]\d|\d{3,})\.\d+/,legacy:/Edge?\/(1[6-9]|[2-9]\d|\d{3,})\.\d+(\.\d+|)|Firefox\/(5[4-9]|[6-9]\d|\d{3,})\.\d+(\.\d+|)|Chrom(ium|e)\/(5[1-9]|[6-9]\d|\d{3,})\.\d+(\.\d+|)([\d.]+$|.*Safari\/(?![\d.]+ Edge\/[\d.]+$))|(Maci|X1{2}).+ Version\/(10\.\d+|(1[1-9]|[2-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(3[89]|[4-9]\d|\d{3,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(10[._]\d+|(1[1-9]|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Android:?[ /-](14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Mobile Safari.+OPR\/([89]\d|\d{3,})\.\d+\.\d+|Android.+Firefox\/(15\d|1[6-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+(UC? ?Browser|UCWEB|U3)[ /]?(15\.([5-9]|\d{2,})|(1[6-9]|[2-9]\d|\d{3,})\.\d+)\.\d+|SamsungBrowser\/(5\.\d+|([6-9]|\d{2,})\.\d+)|Android.+MQ{2}Browser\/(14(\.(9|\d{2,})|)|(1[5-9]|[2-9]\d|\d{3,})(\.\d+|))(\.\d+|)|K[Aa][Ii]OS\/(3\.\d+|([4-9]|\d{2,})\.\d+)(\.\d+|)/}).modern,h=f.legacy,(y=navigator.userAgent).match(e)?"bot":y.match(v)?"modern":y.match(h)?"legacy":y.match(t)?"bot":"unknown"),m=function(e){var t,i,n=r(e,128);try{var a=window.performance,d=null==(t=null==a?void 0:a.getEntriesByType)?void 0:t.call(a,"navigation")[0];if(!d)return{requestId:n,navigationType:o(a)};var s="type"in d?r(d.type,64):void 0,u="serverTiming"in d&&Array.isArray(d.serverTiming)?d.serverTiming:[];return{requestId:null!=n?n:r(null==(i=u.find(function(e){return"requestID"===e.name}))?void 0:i.description,128),navigationType:s}}catch(e){return{requestId:n}}}(c.requestId),w=function(e){var t=e.version,r=e.browserTarget,o=e.surface,a=e.shopId,d=e.monorailEndpoint,s=window.location.href;return{emit:function(e){var u=e.status,l=e.errorMsg,c=e.failureReason,p=e.useKeepaliveFallback,f=void 0!==p&&p,v=e.navigationType,h=e.pagehidePersisted,y=e.requestId,g=e.trekkieState;if(d){var m,w;try{var b=(new Date).getTime();m=JSON.stringify({metadata:{event_sent_at_ms:b},events:[{schema_id:"web_pixels_manager_load/3.3",payload:{version:t,bundle_target:r,page_url:s,status:u,surface:o,error_msg:l,failure_reason:c,navigation_type:v,pagehide_persisted:h,request_id:y,trekkie_state:g,shop_id:a,visit_token:i()},metadata:{event_created_at_ms:b}}]})}catch(e){return}try{if("function"==typeof window.navigator.sendBeacon&&-1===(w=window.navigator.userAgent).indexOf("iPhone; CPU iPhone OS 12_")&&-1===w.indexOf("iPad; CPU OS 12_")&&-1===w.indexOf("iPod touch; CPU iPhone OS 12_")&&window.navigator.sendBeacon.bind(window.navigator)(d,m))return}catch(e){}if(f)try{"function"==typeof window.fetch&&window.fetch(d,{method:"POST",headers:{"Content-Type":"text/plain"},body:m,keepalive:!0}
2186).catch(function(){})}catch(e){}else try{var _=new XMLHttpRequest;_.open("POST",d,!0),_.setRequestHeader("Content-Type","text/plain"),_.send(m)}catch(e){n("[Web Pixels Manager] Got an unhandled error while logging to Monorail.")}}else n("[Web Pixels Manager] No Monorail endpoint provided, skipping logging.")}}}({version:u,browserTarget:g,surface:d.surface,shopId:d.shopId,monorailEndpoint:d.monorailEndpoint});if(Boolean(null==(_=null==(b=window.Shopify)?void 0:b.analytics)?void 0:_.replayQueue))w.emit({status:"setup-skipped",errorMsg:"replay queue already initialized."});else{var b,_;w.emit({status:"setup-started"}),window.Shopify=window.Shopify||{};var S=window.Shopify;S.analytics=S.analytics||{};var P=S.analytics;P.replayQueue=[],P.publish=function(e,t,i){return P.replayQueue.push([e,t,i]),!0};try{self.performance.mark("wpm:start")}catch(e){}var k,C="modern"===g?"modern":"legacy",E=(null!=l?l:{modern:"",legacy:""})[C],I=[(k={baseUrl:s,hashVersion:u,buildTarget:C}).baseUrl,"/wpm","/b",k.hashVersion,"modern"===k.buildTarget?"m":"l",".js"].join(""),O=!1,T=!1;try{c.browserTarget=g,function(){O=!0;try{window.addEventListener("pagehide",M)}catch(e){O=!1}}(),R(function(){try{R(x)}catch(e){D(e)}}),w.emit({status:"loading",requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()})}catch(e){D(e)}}function U(){var e;if(q(),!function(){var e,t;return Boolean(null==(t=null==(e=window.Shopify)?void 0:e.analytics)?void 0:t.initialized)}()){var t,i,n;try{if("function"!=typeof(null==(e=window.webPixelsManager)?void 0:e.init))return void A();if(!(null!==(n=i=t=window.webPixelsManager.init(d))&&"function"!=typeof n&&Object(n)===n&&"publish"in i&&"function"==typeof i.publish&&"publishCustomEvent"in i&&"function"==typeof i.publishCustomEvent&&"visitor"in i&&"function"==typeof i.visitor))return void A()}catch(e){return void A(e)}var r=window.Shopify.analytics;r.replayQueue.forEach(function(e){var i=e[0],n=e[1],r=e[2];t.publishCustomEvent(i,n,r)}),r.replayQueue=[],r.publish=t.publishCustomEvent,r.visitor=t.visitor,r.initialized=!0}}function A(e){B("manager_api_unavailable",void 0===e?void 0:Q(e))}function x(){B("script_load_failed","".concat(I," has failed to load"))}function B(e,t){T||(T=!0,q(),w.emit({status:"failed",errorMsg:t,failureReason:e,requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()}))}function M(e){O&&(q(),w.emit({status:"pagehide-while-loading",useKeepaliveFallback:!0,pagehidePersisted:e.persisted,requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()}))}function q(){O=!1;try{window.removeEventListener("pagehide",M)}catch(e){}}function R(e){var t;!function(e){var t=e.src,i=e.async,n=void 0===i||i,r=e.onload,o=e.onerror,a=e.sri,d=e.scriptDataAttributes,s=void 0===d?{}:d,u=document.createElement("script"),l=document.querySelector("head"),c=document.querySelector("body");if(u.async=n,u.src=t,a&&(u.integrity=a,u.crossOrigin="anonymous"),s)for(var p in s)if(Object.prototype.hasOwnProperty.call(s,p))try{u.dataset[p]=String(s[p])}catch(e){}if(r&&u.addEventListener("load",r),o&&u.addEventListener("error",o),l)l.appendChild(u);else{if(!c)throw new Error("Did not find a head or body element to append the script");c.appendChild(u)}}({src:I,async:!0,onload:U,onerror:e,sri:(t=E,"string"==typeof t&&/^sha384-[A-Za-z0-9+/=]+$/.test(t)?E:""),scriptDataAttributes:c})}function D(e){B("script_append_failed",Q(e))}function Q(e){return e instanceof Error?e.message:"Unknown error"}}}();wpmLoader({shopId: 107173183826,storefrontBaseUrl: "https://fr.melvita.com",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",monorailEndpoint: "https://fr.melvita.com/.well-known/shopify/monorail/unstable/produce_batch",surface: "storefront-renderer",enabledBetaFlags: ["4c64608a","16072cab","8450a54b","7ee89bf1"],webPixelsConfigList: [{"id":"5854495058","configuration":"{\"organization\":\"1767477\",\"programId\":\"null\",\"eventId\":\"339413\",\"newCustomerEventId\":\"339703\",\"includeTax\":\"false\",\"productGroups\":\"[]\",\"host\":\"null\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"75d4fc2bd30ae0beeb35aa8060f656b1","type":"APP","apiClientId":186380156929,"privacyPurposes":[],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_personal_data"],"dataSharingControls":["share_all_events"]}
2186,"dataSharingState":"unrestricted"},{"id":"5821694290","configuration":"{\"cart_viewed\":\"true\",\"checkout_address_info_submitted\":\"true\",\"checkout_completed\":\"true\",\"checkout_contact_info_submitted\":\"true\",\"checkout_shipping_info_submitted\":\"true\",\"checkout_started\":\"true\",\"collection_viewed\":\"true\",\"page_viewed\":\"true\",\"payment_info_submitted\":\"true\",\"product_added_to_cart\":\"true\",\"product_removed_from_cart\":\"true\",\"product_viewed\":\"true\",\"search_submitted\":\"true\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"4b912d4db8d67578541bfae8b70a40a9","type":"APP","apiClientId":100317265921,"privacyPurposes":["ANALYTICS"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":[],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"5821661522","configuration":"{\"joinDomain\":\"melvita\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"aba44f25bef6b6f9c5cce3989ad88990","type":"APP","apiClientId":111364603905,"privacyPurposes":["ANALYTICS"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":[],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"5761958226","configuration":"{\"config\":\"{\\\"google_tag_ids\\\":[\\\"G-E3KFRWX15F\\\",\\\"GT-W6VNBNKS\\\"],\\\"target_country\\\":\\\"ZZ\\\",\\\"gtag_events\\\":[{\\\"type\\\":\\\"search\\\",\\\"action_label\\\":\\\"G-E3KFRWX15F\\\"},{\\\"type\\\":\\\"begin_checkout\\\",\\\"action_label\\\":\\\"G-E3KFRWX15F\\\"},{\\\"type\\\":\\\"remove_from_cart\\\",\\\"action_label\\\":\\\"G-E3KFRWX15F\\\"},{\\\"type\\\":\\\"view_item\\\",\\\"action_label\\\":[\\\"G-E3KFRWX15F\\\",\\\"MC-2N5E5MQZ09\\\"]},{\\\"type\\\":\\\"purchase\\\",\\\"action_label\\\":[\\\"G-E3KFRWX15F\\\",\\\"MC-2N5E5MQZ09\\\"]},{\\\"type\\\":\\\"add_shipping_info\\\",\\\"action_label\\\":\\\"G-E3KFRWX15F\\\"},{\\\"type\\\":\\\"page_view\\\",\\\"action_label\\\":[\\\"G-E3KFRWX15F\\\",\\\"MC-2N5E5MQZ09\\\"]},{\\\"type\\\":\\\"view_item_list\\\",\\\"action_label\\\":\\\"G-E3KFRWX15F\\\"},{\\\"type\\\":\\\"add_payment_info\\\",\\\"action_label\\\":\\\"G-E3KFRWX15F\\\"},{\\\"type\\\":\\\"add_to_cart\\\",\\\"action_label\\\":\\\"G-E3KFRWX15F\\\"},{\\\"type\\\":\\\"view_cart\\\",\\\"action_label\\\":\\\"G-E3KFRWX15F\\\"}],\\\"enable_monitoring_mode\\\":false}\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"a3321ca85cf5aaf6b57585fcd8d67b3a","type":"APP","apiClientId":1780363,"privacyPurposes":[],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]},{"id":"5741314386","configuration":"{\"pixel_id\":\"2201243340146442\",\"pixel_type\":\"facebook_pixel\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"96420dbe9ea96c426a1b7f364f977719","type":"APP","apiClientId":2329312,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]},{"id":"5554143570","configuration":"{\"projectId\":\"9464\", \"platform\": \"ha\", \"transactionEndpoint\": \"https:\/\/api.iadvize.com\/engagement\/short-conversions?platform=ha\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"02fbb4bc7ea3748896c6dc59ec131b8a","type":"APP","apiClientId":86693281793,"privacyPurposes":[],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":[],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"5134877010","configuration":"{\"accountID\":\"VVuEpA\",\"webPixelConfig\":\"eyJlbmFibGVBZGRlZFRvQ2FydEV2ZW50cyI6IHRydWV9\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"c63c5b72c8d77be5f2d27d14c081da38","type":"APP","apiClientId":123074,"privacyPurposes":["ANALYTICS","MARKETING"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]},{"id":"351895890","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":[],"name":"Pixel Addingwell"},{"id":"355369298","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"10","type":"CUSTOM","privacyPurposes":[],"name":"Affilae - Purchase"},{"id":"366477650","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":[],"name":"Kolsquare"},{"id":"shopify-app-pixel","configuration":"{}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"0530","apiClientId":"shopify-pixel","type":"APP","privacyPurposes":["ANALYTICS","MARKETING"]},{"id":"shopify-custom-pixel","eventPayloadVersion":"v1","runtimeContext":"LAX","scriptVersion":"0530","apiClientId":"shopify-pixel","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING"]}],isMerchantRequest: false,initData: {"shop":{"name":"Melvita","paymentSettings":{"currencyCode":"EUR"},"myshopifyDomain":"melvita2026.myshopify.com","countryCode":"FR","storefrontUrl":"https:\/\/fr.melvita.com"},"customer":null,"cart":null,"checkout":null,"productVariants":[],"products":[{"id":"
218610926775075154","handle":"eau-extraordinaire-source-de-roses","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"53940039090514","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]}],"purchasingCompany":null},},"https://fr.melvita.com/cdn","5982071ew7ea472e3p69b68784m2150dfea",{"modern":"","legacy":""},{"trekkieShim":true,"agentContext":true,"apiClientId":"580111","facebookCapiEnabled":"true","themeId":"202104996178","themePublished":"true","eventMetadataId":"dc157971-8ef9-4d17-98c4-f533471f21c7","pageType":"cart","shopId":"107173183826","storefrontBaseUrl":"https:\/\/fr.melvita.com","extensionBaseUrl":"https:\/\/extensions.shopifycdn.com\/cdn\/shopifycloud\/web-pixels-manager","surface":"storefront-renderer","enabledBetaFlags":"[\"4c64608a\", \"16072cab\", \"8450a54b\", \"7ee89bf1\"]","isMerchantRequest":"false","hashVersion":"5982071ew7ea472e3p69b68784m2150dfea","publish":"custom","events":"[[\"page_viewed\",{}]]"});})();</script>
2186<script> 2187 window.ShopifyAnalytics = window.ShopifyAnalytics || {}; 2188 window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {}; 2189 window.ShopifyAnalytics.meta.currency = 'EUR'; 2190 var meta = {"page":{"pageType":"cart","requestId":"3001d3e8-f815-4e5f-9008-631dc6281aba-1791063549"}}; 2191 for (var attr in meta) { 2192 window.ShopifyAnalytics.meta[attr] = meta[attr]; 2193 } 2194</script>
vendor: 1 bytes, line 2194
2194
2195<script class="analytics"> 2196 (function () { 2197 var customDocumentWrite = function(content) { 2198 var jquery = null; 2199 2200 if (window.jQuery) { 2201 jquery = window.jQuery; 2202 } else if (window.Checkout && window.Checkout.$) { 2203 jquery = window.Checkout.$; 2204 } 2205 2206 if (jquery) { 2207 jquery('body').append(content); 2208 } 2209 }; 2210 2211 var hasLoggedConversion = function(token) { 2212 if (token) { 2213 return document.cookie.indexOf('loggedConversion=' + token) !== -1; 2214 } 2215 return false; 2216 } 2217 2218 var setCookieIfConversion = function(token) { 2219 if (token) { 2220 var twoMonthsFromNow = new Date(Date.now()); 2221 twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2); 2222 2223 document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow; 2224 } 2225 } 2226 2227 var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || []; 2228 window.ShopifyAnalytics.lib.trekkie = window.trekkie; 2229 if (trekkie.integrations) { 2230 return; 2231 } 2232 trekkie.methods = [ 2233 'identify', 2234 'page', 2235 'ready', 2236 'track', 2237 'trackForm', 2238 'trackLink' 2239 ]; 2240 trekkie.factory = function(method) { 2241 return function() { 2242 var args = Array.prototype.slice.call(arguments); 2243 args.unshift(method); 2244 trekkie.push(args); 2245 if (method == 'track' || method == 'page') { 2246 var pageUrl; 2247 try { 2248 pageUrl = window.location.href; 2249 } catch (e) {} 2250 var pageReferrer; 2251 try { 2252 pageReferrer = document.referrer; 2253 } catch (e) {} 2254 try { 2255 if (window.__TREKKIE_SHIM_QUEUE == null) { 2256 window.__TREKKIE_SHIM_QUEUE = []; 2257 } 2258 window.__TREKKIE_SHIM_QUEUE.push({ 2259 from: 'trekkie-stub', 2260 method: method, 2261 args: args.slice(1), 2262 pageContext: { 2263 url: pageUrl, 2264 referrer: pageReferrer 2265 } 2266 }); 2267 } catch (e) { 2268 // no-op 2269 } 2270 } 2271 return trekkie; 2272 }; 2273 }; 2274 for (var i = 0; i < trekkie.methods.length; i++) { 2275 var key = trekkie.methods[i]; 2276 trekkie[key] = trekkie.factory(key); 2277 } 2278 trekkie.load = function(config) { 2279 trekkie.config = config || {}; 2280 trekkie.config.initialDocumentCookie = document.cookie; 2281 var first = document.getElementsByTagName('script')[0]; 2282var script = document.createElement('script'); 2283script.type = 'text/javascript'; 2284script.onerror = function(e) { 2285 var scriptFallback = document.createElement('script'); 2286 scriptFallback.type = 'text/javascript'; 2287 scriptFallback.onerror = function(error) { 2288 var Monorail = { 2289 produce: function produce(monorailDomain, schemaId, payload) { 2290 var currentMs = new Date().getTime(); 2291 var event = { 2292 schema_id: schemaId, 2293 payload: payload, 2294 metadata: { 2295 event_created_at_ms: currentMs, 2296 event_sent_at_ms: currentMs 2297 } 2298 }; 2299 return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event)); 2300 }, 2301 sendRequest: function sendRequest(endpointUrl, payload) { 2302 // Try the sendBeacon API 2303 if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) { 2304 var blobData = new window.Blob([payload], { 2305 type: 'text/plain' 2306 }); 2307 2308 if (window.navigator.sendBeacon(endpointUrl, blobData)) { 2309 return true; 2310 } // sendBeacon was not successful 2311 2312 } // XHR beacon 2313 2314 var xhr = new XMLHttpRequest(); 2315 2316 try { 2317 xhr.open('POST', endpointUrl); 2318 xhr.setRequestHeader('Content-Type', 'text/plain'); 2319 xhr.send(payload); 2320 } catch (e) { 2321 console.log(e); 2322 } 2323 2324 return false; 2325 }, 2326 isIos12: function isIos12() { 2327 return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1; 2328 } 2329 }; 2330 Monorail.produce('monorail-edge.shopifysvc.com', 2331 'trekkie_storefront_load_errors/1.1', 2332 {shop_id: 107173183826, 2333 theme_id: 202104996178, 2334 app_name: "storefront", 2335 context_url: window.location.href, 2336 source_url: "//fr.melvita.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js"}); 2337 2338 }; 2339 scriptFallback.async = true; 2340 scriptFallback.src = '//fr.melvita.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js'; 2341 first.parentNode.insertBefore(scriptFallback, first); 2342}; 2343script.async = true; 2344script.src = '//fr.melvita.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js'; 2345first.parentNode.insertBefore(script, first); 2346 2347 }; 2348 trekkie.load( 2349 {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":107173183826,"isMerchantRequest":null,"themeId":202104996178,"themeCityHash":"9498158764090115809","contentLanguage":"fr","currency":"EUR","eventMetadataId":"dc157971-8ef9-4d17-98c4-f533471f21c7"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain","enabledBetaFlags":["764d78cb","8450a54b","7ee89bf1","4c64608a"]},"Session Attribution":{},"S2S":{"facebookCapiEnabled":true,"source":"trekkie-storefront-renderer","apiClientId":580111}} 2350 ); 2351 2352 var loaded = false;
2353 trekkie.ready(function() { 2354 if (loaded) return; 2355 loaded = true; 2356 2357 window.ShopifyAnalytics.lib = window.trekkie; 2358 2359 var originalDocumentWrite = document.write; 2360 document.write = customDocumentWrite; 2361 try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {}; 2362 document.write = originalDocumentWrite; 2363 2364 var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/) 2365 var token = match? match[1]: undefined; 2366 if (!hasLoggedConversion(token)) { 2367 setCookieIfConversion(token); 2368 2369 } 2370 }); 2371 2372 window.ShopifyAnalytics.lib.page(null,{"pageType":"cart","requestId":"3001d3e8-f815-4e5f-9008-631dc6281aba-1791063549","shopifyEmitted":true}); 2373 2374 var eventsListenerScript = document.createElement('script'); 2375 eventsListenerScript.async = true; 2376 eventsListenerScript.src = "//fr.melvita.com/cdn/shopifycloud/storefront/assets/shop_events_listener-4e26a9ce.js"; 2377 document.getElementsByTagName('head')[0].appendChild(eventsListenerScript); 2378})();</script>
vendor: 1 bytes, line 2378
2378
2379<script 2380 defer 2381 src="https://fr.melvita.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-3.9.4.min.js" 2382 data-application="storefront-renderer" 2383 data-shop-id="107173183826" 2384 data-render-region="gcp-us-west1" 2385 data-page-type="cart" 2386 data-theme-instance-id="202104996178" 2387 data-theme-name="Axome - Melvita" 2388 data-theme-version="1.0.0" 2389 data-monorail-region="shop_domain" 2390 data-resource-timing-sampling-rate="10" 2391 data-shs="true" 2392 data-shs-beacon="true" 2393 data-shs-export-with-fetch="true" 2394 data-shs-logs-sample-rate="1" 2395 data-shs-beacon-endpoint="https://fr.melvita.com/api/collect" 2396></script>
vendor: 1 bytes, line 2396
2396
2397<script src="https://cdn.shopify.com/storefront/web-components/account.js" type="module" crossorigin fetchpriority="low" async></script>
2397<script id="shopify-customer-account-data" type="application/json">{"customer":null,"shop":{"id":"107173183826","customerAccountTranslations":[{"key":"account_menu.signed_out_state.sheet_title","value":"Se connecter ou créer un compte"},{"key":"account_menu.signed_out_state.section_divider","value":"Autres moyens de connexion"},{"key":"account_menu.signed_out_state.alternate_divider","value":"OU"},{"key":"account_menu.signed_out_state.email_field_label","value":"E-mail"},{"key":"account_menu.signed_out_state.orders_button","value":"Commandes"},{"key":"account_menu.signed_out_state.profile_button","value":"Profil"},{"key":"account_menu.signed_out_state.shop_login_button","value":"Se connecter avec Shop"},{"key":"account_menu.signed_out_state.continue_with_google","value":"Continuer avec Google"},{"key":"account_menu.signed_out_state.continue_with_facebook","value":"Continuer avec Facebook"},{"key":"account_menu.signed_out_state.marketing_consent_label","value":"Envoyez-moi des nouvelles et des offres par e-mail"},{"key":"account_menu.signed_in_state.greeting_with_name","value":"Bonjour, {{first_name}}"},{"key":"account_menu.signed_in_state.greeting_without_name","value":"Compte"},{"key":"account_menu.signed_in_state.orders_button","value":"Commandes"},{"key":"account_menu.signed_in_state.profile_button","value":"Profil"},{"key":"account_menu.location_picker.sheet_title","value":"Emplacements"},{"key":"account_menu.location_picker.search_field_placeholder","value":"Rechercher"},{"key":"account_menu.aria_labels.close_menu","value":"Fermer le menu"},{"key":"account_menu.aria_labels.back_to_main_menu","value":"Retour au menu principal depuis {{title}}"},{"key":"account_menu.aria_labels.open_submenu","value":"{{title}}, ouvre le sous-menu"},{"key":"account_menu.aria_labels.loading_menu","value":"Chargement du menu"},{"key":"account_menu.aria_labels.account","value":"Compte"},{"key":"account_menu.aria_labels.sign_in_with_email","value":"Se connecter avec e-mail"},{"key":"account_menu.aria_labels.sign_in","value":"Se connecter"}],"socialLoginProviders":[{"handle":"Shop"}],"legacyCustomerAccounts":false,"signInLinksVisible":true,"b2bEnabled":false,"marketingConsentSigninEnabled":true,"marketingConsentPreselected":false},"visitor":{"country":"FR","language":"fr"}}</script>
2397 2398<meta name="shopify-y" content="a99cb99e-14da-424e-b586-f51e04eaba52" data-expiration="1822621149000"><meta name="shopify-s" content="43d528ac-22b3-4542-b71b-db8dc11e5ad1" data-expiration="1791065349000"><meta name="new-cookie-storage-activated" content="t"> 2399</head> 2400 2401 2402 2403 <body class="features--zoom-image "><template id="drawer-default-template"> 2404 <div part="base"> 2405 <div part="overlay"></div> 2406 2407 <div part="content"> 2408 <header part="header"> 2409 <dialog-close-button style="display: contents"> 2410 <button type="button" part="close-button"> 2411 <span class="sr-only" part="sr-only">Fermer</span><svg aria-hidden="true" focusable="false" width="10" class="icon icon-close" part="icon" fill="none" viewBox="0 0 10 10"> 2412 <path stroke="currentColor" d="m1 1 8 8m0-8L1 9" /> 2413 </svg></button> 2414 </dialog-close-button> 2415 2416 <slot name="header"></slot> 2417 </header> 2418 2419 <div part="body"> 2420 <slot></slot> 2421 </div> 2422 2423 <footer part="footer"> 2424 <slot name="footer"></slot> 2425 </footer> 2426 </div> 2427 </div> 2428</template><template id="drawer-popover-default-template"> 2429 <div part="base"> 2430 <div part="overlay"></div> 2431 2432 <div part="content"> 2433 <header part="header"> 2434 <dialog-close-button style="display: contents"> 2435 <button type="button" part="close-button"> 2436 <span class="sr-only" part="sr-only">Fermer</span><svg aria-hidden="true" focusable="false" width="10" class="icon icon-close" part="icon" fill="none" viewBox="0 0 10 10"> 2437 <path stroke="currentColor" d="m1 1 8 8m0-8L1 9" /> 2438 </svg></button> 2439 </dialog-close-button> 2440 2441 <slot name="header"></slot> 2442 </header> 2443 2444 <div part="body"> 2445 <slot></slot> 2446 </div> 2447 </div> 2448 </div> 2449</template><template id="modal-default-template"> 2450 <div part="base"> 2451 <div part="overlay"></div> 2452 2453 <div part="content"> 2454 <slot name="image"></slot> 2455 2456 <div part="body"> 2457 <dialog-close-button style="display: contents"> 2458 <button type="button" part="close-button"> 2459 <span class="sr-only" part="sr-only">Fermer</span><svg aria-hidden="true" focusable="false" width="10" class="icon icon-close" part="icon" fill="none" viewBox="0 0 10 10"> 2460 <path stroke="currentColor" d="m1 1 8 8m0-8L1 9" /> 2461 </svg></button> 2462 </dialog-close-button> 2463 2464 <slot></slot> 2465 </div> 2466 </div> 2467 </div> 2468</template><template id="popover-default-template"> 2469 <div part="base"> 2470 <div part="overlay"></div> 2471 2472 <div part="content"> 2473 <header part="header"> 2474 <slot name="header"></slot> 2475 2476 <dialog-close-button style="display: contents"> 2477 <button type="button" part="close-button"> 2478 <span class="sr-only" part="sr-only">Fermer</span><svg aria-hidden="true" focusable="false" width="10" class="icon icon-close" part="icon" fill="none" viewBox="0 0 10 10"> 2479 <path stroke="currentColor" d="m1 1 8 8m0-8L1 9" /> 2480 </svg></button> 2481 </dialog-close-button> 2482 </header> 2483 2484 <div part="body"> 2485 <slot></slot> 2486 </div> 2487 </div> 2488 </div> 2489</template><template id="simple-popover-default-template"> 2490 <div part="base"> 2491 <div part="overlay"></div> 2492 2493 <div part="content"> 2494 <dialog-close-button style="display: contents"> 2495 <button type="button" part="close-button overlaid-close-button"> 2496 <span class="sr-only" part="sr-only">Fermer</span><svg aria-hidden="true" focusable="false" width="10" class="icon icon-close" part="icon" fill="none" viewBox="0 0 10 10"> 2497 <path stroke="currentColor" d="m1 1 8 8m0-8L1 9" /> 2498 </svg></button> 2499 </dialog-close-button> 2500 2501 <div part="body"> 2502 <slot></slot> 2503 </div> 2504 </div> 2505 </div> 2506</template><template id="video-media-default-template"> 2507 <slot></slot> 2508 2509 <div part="play-button"><svg aria-hidden="true" focusable="false" width="12" class="icon icon-play-triangle" part="icon" fill="none" viewBox="0 0 12 17"> 2510 <path fill="#ffffff" d="M1.783 15.889A1 1 0 0 1 .2 15.076V1.148A1 1 0 0 1 1.783.335l9.71 6.964a1 1 0 0 1 0 1.626l-9.71 6.964Z"/> 2511 </svg></div> 2512</template><loading-bar class="loading-bar" aria-hidden="true"></loading-bar> 2513 2514 <a href="#main" allow-hash-change class="skip-to-content sr-only">Passer au contenu</a>
2514<div class="sr-only" role="status" aria-live="polite" aria-atomic="true"> 2515 <span id="status-announcement"></span> 2516 </div> 2517 2518 <div class="sr-only" role="alert" aria-live="assertive" aria-atomic="true"> 2519 <span id="error-announcement"></span> 2520 </div> 2521 2522 <span id="header-scroll-tracker" style="position: absolute; width: 1px; height: 1px; top: 200px; left: 0;"></span><!-- BEGIN sections: header-group --> 2523<aside id="shopify-section-sections--30543191376210__announcement-bar" class="shopify-section shopify-section-group-header-group shopify-section--announcement-bar"><style> 2524 :root { 2525 --announcement-bar-is-sticky: 0; 2526 }</style> 2527 2528 <div class="color-scheme color-scheme--scheme-5"> 2529 <height-observer variable="announcement-bar"><announcement-bar id="carousel-sections--30543191376210__announcement-bar" allow-swipe cell-selector=".announcement-bar__message-list > *" autoplay="5" class="announcement-bar"><carousel-prev-button aria-controls="carousel-sections--30543191376210__announcement-bar"> 2530 <button type="button" class="tap-area"> 2531 <span class="sr-only">Précédent</span> 2532 <svg xmlns="http://www.w3.org/2000/svg" width="13" height="11" viewB
2532ox="0 0 11 8" fill="none"> 2533 <path d="M3.82703 6.59355L0.707031 3.47355L3.82703 0.353546" stroke="currentColor" stroke-miterlimit="10"/> 2534 <path d="M0.707031 3.4736H10.707" stroke="currentColor" stroke-miterlimit="10"/> 2535 </svg> 2536 </button> 2537 </carousel-prev-button><div class="announcement-bar__message-list"><div class="is-selected prose prose-justify-center" > 2538 <p class="text-xs">Faites-vous plaisir : -20% sur tout le site* | Code FRENCHDAYS</p> 2539 </div><div class=" prose prose-justify-center" > 2540 <p class="text-xs">Livraison offerte dès 49⬠d'achat</p> 2541 </div><div class=" prose prose-justify-center" > 2542 <p class="text-xs">Votre mini duo Nectar Sublime offert dès 50⬠d'achat | Code SUBLIME26 </p> 2543 </div></div><carousel-next-button aria-controls="carousel-sections--30543191376210__announcement-bar"> 2544 <button type="button" class="tap-area"> 2545 <span class="sr-only">Suivant</span> 2546 <svg xmlns="http://www.w3.org/2000/svg" width="13" height="11" viewB
2546ox="0 0 11 8" fill="none"> 2547 <path d="M7.17297 6.59355L10.293 3.47355L7.17297 0.353546" stroke="currentColor" stroke-miterlimit="10"/> 2548 <path d="M10.293 3.4736H0.292969" stroke="currentColor" stroke-miterlimit="10"/> 2549 </svg> 2550 </button> 2551 </carousel-next-button></announcement-bar> 2552 </height-observer> 2553 </div> 2554 2555
2555<script> 2556 document.documentElement.style.setProperty('--announcement-bar-height', `${Math.round(document.getElementById('shopify-section-sections--30543191376210__announcement-bar').clientHeight)}px`); 2557 </script>
2557 2558</aside><header id="shopify-section-sections--30543191376210__header" class="shopify-section shopify-section-group-header-group shopify-section--header"><style> 2559 :root { 2560 --header-is-sticky: 1; 2561 --header-is-visible: 1; 2562 } 2563 2564 #shopify-section-sections--30543191376210__header {--header-grid: "primary-nav logo secondary-nav" "search search search" / minmax(0, 1fr) auto minmax(0, 1fr);--header-transparent-header-text-color: 255 255 255; 2565 --header-non-transparent-text-color: 17 13 14; 2566 } 2567 2568 @media screen and (min-width: 1000px) { 2569 #shopify-section-sections--30543191376210__header {--header-grid: "logo primary-nav secondary-nav" / auto minmax(0, 1fr) auto;} 2570 }#shopify-section-sections--30543191376210__header { 2571 position: sticky; 2572 top: 0; 2573 } 2574 2575 .shopify-section--announcement-bar ~ #shopify-section-sections--30543191376210__header { 2576 top: calc(var(--announcement-bar-is-sticky, 0) * var(--announcement-bar-height, 0px)); 2577 }#shopify-section-sections--30543191376210__header { 2578 --header-logo-width: 95px; 2579 } 2580 2581 @media screen and (min-width: 700px) { 2582 #shopify-section-sections--30543191376210__header { 2583 --header-logo-width: 110px; 2584 } 2585 }#shopify-section-sections--30543191376210__header .header { 2586 --highlight-link-background: #f0f1f2; 2587 --highlight-link-text-color: #110d0e; 2588 --highlight-link-background-hover: #6b0000; 2589 --highlight-link-text-color-hover: #ffffff; 2590 } 2591 2592 :root:has(.shopify-section:first-child [allow-transparent-header]):not(:has(.shopify-section--header ~ .shopify-section-group-header-group)) #shopify-section-sections--30543191376210__header .header:not(.is-solid, :has([open])) { 2593 --highlight-link-background: #6b0000; 2594 --highlight-link-text-color: #ffffff; 2595 --highlight-link-background-hover: #f0f1f2; 2596 --highlight-link-text-color-hover: #110d0e; 2597 }.header__primary-nav > ul > li > :is(a, span, button) { 2598 font: var(--button-font); 2599 letter-spacing: var(--button-letter-spacing); 2600 text-transform: var(--button-text-transform); 2601 }.header__dropdown-menu :is(span, button) { 2602 display: grid; 2603 grid-auto-flow: column; 2604 justify-content: space-between; 2605 align-items: center; 2606 padding: .4rem 1.75rem; 2607 text-align: start; 2608 } 2609 2610 .header__dropdown-menu:has(.header__dropdown-menu) :is(span, button) { 2611 grid-template-columns: minmax(0, 1fr) 1.5rem; 2612 } 2613 2614 .header__dropdown-menu .header__dropdown-menu :is(span, button) { 2615 grid-template-columns: auto; 2616 } 2617 2618 .header__dropdown-menu :is(span, button):where(:hover, :has(~ [open])) .icon-chevron-right { 2619 transform: translateX(4px); 2620 }.menu-link-static { 2621 cursor: default; 2622 } 2623 2624 .menu-link-static:is(.link, .link-reversed):hover { 2625 background-size: 0 1px; 2626 } 2627 2628 .menu-link-static.link-faded:hover { 2629 color: rgb(var(--text-color) / .6); 2630 } 2631 2632 .menu-link-static.link-faded-reverse:hover { 2633 color: rgb(var(--text-color)); 2634 } 2635 2636 .menu-link-static.header__nav-highlight:hover { 2637 background-color: var(--highlight-link-background); 2638 color: var(--highlight-link-text-color); 2639 } 2640 2641 .header__nav-highlight { 2642 background-color: var(--highlight-link-background); 2643 color: var(--highlight-link-text-color); 2644 border-radius: 4px; 2645 padding: .25rem .5rem; 2646 margin-block: -.375rem; 2647 transition: background-color .2s ease-in-out, color .2s ease-in-out; 2648 } 2649 2650 .header__nav-highlight:hover { 2651 background-color: var(--highlight-link-background-hover); 2652 color: var(--highlight-link-text-color-hover); 2653 } 2654 2655 .menu-drawer__link-highlight { 2656 background-color: #6b0000; 2657 color: #ffffff; 2658 border-radius: 6px; 2659 padding: .375rem .75rem; 2660 display: inline-block; 2661 }.header__search-field { 2662 align-items: center; 2663 justify-content: space-between; 2664 gap: 1.5rem; 2665 min-width: 14rem; 2666 font-size: var(--text-sm); 2667 font-weight: 400; 2668 border: 1px solid rgb(var(--text-color) / .2); 2669 border-radius: 8px; 2670 padding: .625rem 1rem; 2671 transition: border-color .2s ease-in-out; 2672 display: flex; 2673 } 2674 2675 @media screen and (min-width: 1200px) { 2676 .header__search-field { 2677 min-width: 16.375rem; 2678 } 2679 } 2680 2681 .header__search-field:hover { 2682 border-color: rgb(var(--text-color) / .5); 2683 } 2684 2685 .header__search-bar { 2686 grid-area: search; 2687 margin-block-start: .75rem; 2688 }@media screen and (min-width: 1000px) { 2689 .header__search-bar { 2690 display: none; 2691 } 2692 } 2693</style> 2694 2695<height-observer variable="header"> 2696 <x-header class="header color-scheme color-scheme--scheme-2" ><a href="/" class="header__logo"><span class="sr-only">Melvita</span><img src="//fr.melvita.com/cdn/shop/files/logo-melvita-dark.svg?v=1788265829&width=112" alt="Melvita" srcset="//fr.melvita.com/cdn/shop/files/logo-melvita-dark.svg?v=1788265829&width=112 112w, //fr.melvita.com/cdn/shop/files/logo-melvita-dark.svg?v=1788265829&width=112 112w" width="112" height="26" sizes="110px" class="header__logo-image"><img src="//fr.melvita.com/cdn/shop/files/Logo.png?v=1781171577&width=112" alt="" srcset="//fr.melvita.com/cdn/shop/files/Logo.png?v=1781171577&width=112 112w, //fr.melvita.com/cdn/shop/files/Logo.png?v=1781171577&width=112 112w" width="112" height="26" sizes="110px" class="header__logo-image header__logo-image--transparent"></a><nav class="header__primary-nav " aria-label="Navigation principale"> 2697 <button type="button" aria-controls="menu-drawer" class="tap-area md:hidden">
2698 <span class="sr-only">Menu</span> 2699 2700 <div class="h-stack gap-3" aria-hidden="true"> 2701 <svg aria-hidden="true" focusable="false" width="16" height="13" viewBox="0 0 16 13" fill="none" xmlns="http://www.w3.org/2000/svg"> 2702 <path d="M16 0.5H0" stroke="currentColor" stroke-linejoin="round"/> 2703 <path d="M12 6.5H0" stroke="currentColor" stroke-linejoin="round"/> 2704 <path d="M16 12.5H0" stroke="currentColor" stroke-linejoin="round"/> 2705 </svg> 2706 2707 <span class="subheading md-max:hidden">Menu</span> 2708 </div> 2709 </button><a href="/pages/nos-boutiques" class="header__store-locator-link tap-area md:hidden"> 2710 <span class="sr-only">Trouver un magasin</span> 2711 <svg aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none"> 2712 <path d="M13.6179 4.45024C11.0709 1.84992 6.94854 1.84992 4.40932 4.45024C1.86226 7.05057 1.86226 11.2591 4.40932 13.8514L9.01754 18.5L13.6258 13.8514C16.1728 11.2511 16.1728 7.04257 13.6258 4.45024H13.6179Z" stroke="currentColor" stroke-linecap="round"/> 2713 <circle cx="9.01855" cy="8" r="1.5" stroke="currentColor"/> 2714 </svg> 2715 </a><ul class="contents unstyled-list md-max:hidden"> 2716 2717 <li><a href="/collections/tous-les-produits" class="block text-sm bold" aria-expanded="false" aria-controls="header-menu-dropdown-1" data-open-on-hover>Produits</a><header-mega-menu id="header-menu-dropdown-1" class="mega-menu justify-between mega-menu--categories color-scheme color-scheme--scheme-2" style="--mega-menu-columns: 4; --mega-menu-category-count: 3;" ><div class="mega-menu__aside v-stack"> 2718 <ul class="mega-menu__linklist mega-menu__linklist--aside unstyled-list"><li><a href="/collections/french-days" class="mega-menu__title link-reversed" >French Days</a></li><li><a href="/collections/best-sellers" class="mega-menu__title link-reversed" >Best-sellers</a></li><li><a href="/collections/cadeaux" class="mega-menu__title link-reversed" >Cadeaux</a></li></ul> 2719 </div><div class="mega-menu__navigation"><div class="mega-menu__column v-stack gap-4"><span class="mega-menu__title link-reversed menu-link-static">Soins visage</span><ul class="mega-menu__linklist unstyled-list"><li><a href="/collections/serum-visage" class="link-reversed" >Essence et sérum visage</a></li><li><a href="/collections/creme-visage" class="link-reversed" >Crème visage </a></li><li><a href="/collections/nettoyant-demaquillant" class="link-reversed" >Nettoyant et démaquillant </a></li><li><a href="/collections/exfoliant-visage" class="link-reversed" >Exfoliant et masque visage </a></li><li><a href="/collections/soin-contour-des-yeux" class="link-reversed" >Soin contour des yeux </a></li><li><a href="/collections/eaux-florales" class="link-reversed" >Eau florale</a></li><li><a href="/collections/huile-visage" class="link-reversed" >Huile visage </a></li><li><a href="/collections/bb-creme" class="link-reversed" >BB crème</a></li><li><a href="/collections/baume-a-levres" class="link-reversed" >Baume à lèvres </a></li><li><a href="/collections/tous-les-soins-visage" class="link-reversed" >Tous les soins visage </a></li></ul> 2720 </div><div class="mega-menu__column v-stack gap-4"><span class="mega-menu__title link-reversed menu-link-static">Soins corps </span><ul class="mega-menu__linklist unstyled-list"><li><a href="/collections/serum-corps" class="link-reversed" >Sérum corps</a></li><li><a href="/collections/huile-corps" class="link-reversed" >Huile corps</a></li><li><a href="/collections/creme-corps" class="link-reversed" >Crème corps</a></li><li><a href="/collections/gel-douche-savon" class="link-reversed" >Gel douche et savon</a></li><li><a href="/collections/gommage-corps" class="link-reversed" >Gommage corps</a></li><li><a href="/collections/hygiene" class="link-reversed" >Hygiène quotidienne</a></li><li><a href="/collections/creme-mains" class="link-reversed" >Crème mains</a></li><li><a href="/collections/soin-cheveux" class="link-reversed" >Soin cheveux</a></li><li><a href="/collections/tous-les-soins-corps" class="link-reversed" >Tous les soins corps</a></li></ul> 2721 </div><div class="mega-menu__column v-stack gap-4"><span class="mega-menu__title link-reversed menu-link-static">Préoccupations</span><ul class="mega-menu__linklist unstyled-list"><li><a href="/collections/soin-visage-hydratant" class="link-reversed" >Manque d'hydratation</a></li><li><a href="/collections/soin-visage-eclat" class="link-reversed" >Manque d'éclat</a></li><li><a href="/collections/soin-rides-et-ridules" class="link-reversed" >Rides et ridules</a></li><li><a href="/collections/peau-seche-inconfortable" class="link-reversed" >Peau sèche et inconfortable</a></li><li><a href="/collections/soin-visage-fermete" class="link-reversed" >Manque de fermeté</a></li><li><a href="/collections/soin-visage-taches" class="link-reversed" >Taches pigmentaires</a></li><li><a href="/collections/soin-visage-rougeurs" class="link-reversed" >Peau sensible et rougeurs</a></li><li><a href="/collections/soin-visage-imperfections" class="link-reversed" >Peau à imperfections</a></li></ul> 2722 </div></div>
2722<script src="//fr.melvita.com/cdn/shop/t/4/assets/ax-menu-promo.js?v=174421363216936711411789037182" defer="defer"></script>
2722<style> 2723 #promo-block-list-mega_menu_qQWnVzmega-menu { 2724 --menu-promo-block-column-gap: 12px; 2725 --menu-promo-blocks-count: 1; 2726 } 2727 </style> 2728 2729 <div id="promo-block-list-mega_menu_qQWnVzmega-menu" class="menu-promo menu-promo--without-spacing"> 2730 <scroll-carousel id="promo-block-list-mega_menu_qQWnVzmega-menu-carousel" class="menu-promo__carousel scroll-area" allow-drag> 2731 2732 2733 2734 2735 2736 2737 <a href="/products/eau-extraordinaire-source-de-roses" class="menu-promo__item @container/content-box group"><div class="content-box overflow-hidden h-full" style="--text-color: 255 255 255; color: rgb(var(--text-color));--border-color: var(--text-color) / 0.15;"><div class="content-box__background-media with-overlay"><img src="//fr.melvita.com/cdn/shop/files/TEX-SDR-EAU_EXTRA_1200x1200_1ceaa359-0990-4cc2-8ffb-c00a2bfabf53.png?v=1787301174&width=1200" alt="" srcset="//fr.melvita.com/cdn/shop/files/TEX-SDR-EAU_EXTRA_1200x1200_1ceaa359-0990-4cc2-8ffb-c00a2bfabf53.png?v=1787301174&width=420 420w, //fr.melvita.com/cdn/shop/files/TEX-SDR-EAU_EXTRA_1200x1200_1ceaa359-0990-4cc2-8ffb-c00a2bfabf53.png?v=1787301174&width=840 840w" width="1200" height="1200" loading="lazy" sizes="420px" class="zoom-image group-hover:zoom"></div><div class="place-self-end-start text-start"><div class="v-stack text-start gap-1"><p class="subheading">Lâefficacité par le plaisir</p> 2738 2739</div></div></div></a></scroll-carousel> 2740 </div></header-mega-menu> 2741</li> 2742 2743 <li><a href="/pages/marque" class="block text-sm bold" aria-expanded="false" aria-controls="header-menu-dropdown-2" data-open-on-hover>Marque </a><header-mega-menu id="header-menu-dropdown-2" class="mega-menu justify-between color-scheme color-scheme--scheme-2" >
2743<script src="//fr.melvita.com/cdn/shop/t/4/assets/ax-menu-promo.js?v=174421363216936711411789037182" defer="defer"></script>
2743<style> 2744 #promo-block-list-mega_menu_N3Ed7Cmega-menu { 2745 --menu-promo-block-column-gap: 12px; 2746 --menu-promo-blocks-count: 3; 2747 } 2748 </style> 2749 2750 <div id="promo-block-list-mega_menu_N3Ed7Cmega-menu" class="menu-promo menu-promo--without-spacing"> 2751 <scroll-carousel id="promo-block-list-mega_menu_N3Ed7Cmega-menu-carousel" class="menu-promo__carousel scroll-area" allow-drag> 2752 2753 <a href="/pages/notre-histoire" class="menu-promo__item @container/content-box group"><div class="content-box overflow-hidden h-full" style="--text-color: 255 255 255; color: rgb(var(--text-color));--border-color: var(--text-color) / 0.15;"><div class="content-box__background-media with-overlay"><img src="//fr.melvita.com/cdn/shop/files/VISUEL-HISTOIRE-MENU.jpg?v=1787925243&width=840" alt="" srcset="//fr.melvita.com/cdn/shop/files/VISUEL-HISTOIRE-MENU.jpg?v=1787925243&width=420 420w, //fr.melvita.com/cdn/shop/files/VISUEL-HISTOIRE-MENU.jpg?v=1787925243&width=840 840w" width="840" height="680" loading="lazy" sizes="420px" class="zoom-image group-hover:zoom"></div><div class="place-self-end-start text-start"><div class="v-stack text-start gap-1"><p class="subheading">NOTRE HISTOIRE</p> 2754 2755</div></div></div></a> 2756 2757 <a href="/pages/notre-expertise" class="menu-promo__item @container/content-box group"><div class="content-box overflow-hidden h-full" style="--text-color: 255 255 255; color: rgb(var(--text-color));--border-color: var(--text-color) / 0.15;"><div class="content-box__background-media with-overlay"><img src="//fr.melvita.com/cdn/shop/files/TEX-HAIRCARE-SERUM_840x680_21c44065-4b15-4e12-b18f-4c6e6f3daead.jpg?v=1788189419&width=840" alt="" srcset="//fr.melvita.com/cdn/shop/files/TEX-HAIRCARE-SERUM_840x680_21c44065-4b15-4e12-b18f-4c6e6f3daead.jpg?v=1788189419&width=420 420w, //fr.melvita.com/cdn/shop/files/TEX-HAIRCARE-SERUM_840x680_21c44065-4b15-4e12-b18f-4c6e6f3daead.jpg?v=1788189419&width=840 840w" width="840" height="680" loading="lazy" sizes="420px" class="zoom-image group-hover:zoom"></div><div class="place-self-end-start text-start"><div class="v-stack text-start gap-1"><p class="subheading">NOTRE EXPERTISE</p> 2758 2759</div></div></div></a> 2760 2761 <a href="/pages/nos-engagements" class="menu-promo__item @container/content-box group"><div class="content-box overflow-hidden h-full" style="--text-color: 255 255 255; color: rgb(var(--text-color));--border-color: var(--text-color) / 0.15;"><div class="content-box__background-media with-overlay"><img src="//fr.melvita.com/cdn/shop/files/VISUEL-ENGAGEMENT.jpg?v=1787925182&width=840" alt="" srcset="//fr.melvita.com/cdn/shop/files/VISUEL-ENGAGEMENT.jpg?v=1787925182&width=420 420w, //fr.melvita.com/cdn/shop/files/VISUEL-ENGAGEMENT.jpg?v=1787925182&width=840 840w" width="840" height="680" loading="lazy" sizes="420px" class="zoom-image group-hover:zoom"></div><div class="place-self-end-start text-start"><div class="v-stack text-start gap-1"><p class="subheading">NOS ENGAGEMENTS</p> 2762 2763</div></div></div></a> 2764 2765 2766</scroll-carousel> 2767 </div></header-mega-menu> 2768</li></ul></nav><nav class="header__secondary-nav" aria-label="Navigation secondaire"> 2769 <ul class="contents unstyled-list"><li class="header__news-link" hidden> 2770 <news-modal-button class="contents"> 2771 <button class="tap-area" aria-controls="news-modal" aria-expanded="false"> 2772 <span class="sr-only">Modale des actualités</span><svg aria-hidden="true" focusable="false" width="16" fill="none" class="icon icon-bell" style="--icon-mobile-max-width: 16px; --icon-max-width: 20px" part="icon" viewBox="0 0 16 16"> 2773 <path stroke-width="1" stroke="currentColor" d="M3.333 7v3.333L2 12.5h12l-1.333-2.167V7A4.665 4.665 0 0 0 4.7 3.7 4.667 4.667 0 0 0 3.333 7ZM6.5 15.5h3" /> 2774 </svg></button> 2775 </news-modal-button> 2776 </li> 2777 2778 <li class="header__search-link md-max:hidden"> 2779 <a href="/search" class="header__search-field" aria-controls="search-drawer"> 2780 <span>Que recherchez-vous ?</span><svg aria-hidden="true" focusable="false" width="24" fill="none" class="icon icon-search" part="icon" viewB
2780ox="0 0 16 16"> 2781 <path stroke-width="1" stroke="currentColor" d="M1.333 7.333a6 6 0 1 0 12 0 6 6 0 0 0-12 0ZM11.575 11.576l3.09 3.09" /> 2782 </svg></a> 2783 </li><li class="md-max:hidden"> 2784 <hr class="header__secondary-nav-separator" /> 2785 </li><li class="header__store-locator-link md-max:hidden"> 2786 <a href="/pages/nos-boutiques" class="block tap-area"> 2787 <span class="sr-only">Trouver un magasin</span> 2788 <svg aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none"> 2789 <path d="M13.6179 4.45024C11.0709 1.84992 6.94854 1.84992 4.40932 4.45024C1.86226 7.05057 1.86226 11.2591 4.40932 13.8514L9.01754 18.5L13.6258 13.8514C16.1728 11.2511 16.1728 7.04257 13.6258 4.45024H13.6179Z" stroke="currentColor" stroke-linecap="round"/> 2790 <circle cx="9.01855" cy="8" r="1.5" stroke="currentColor"/> 2791 </svg> 2792 </a> 2793 </li><li class="header__account-link"> 2794 <shopify-store store-domain="https://fr.melvita.com" country="FR" language="fr"></shopify-store> 2795<shopify-account menu="customer-account-main-menu"> 2796 <div slot="signed-out-avatar" class="tap-area"> 2797 <span class="sr-only">Connexion</span> 2798 <svg aria-hidden="true" focusable="false" width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> 2799 <circle cx="10" cy="5.94336" r="1.5" stroke="currentColor"/> 2800 <path d="M3.88672 16.0566C3.88672 12.6827 6.62136 9.94336 10 9.94336C13.3786 9.94336 16.1133 12.678 16.1133 16.0566" stroke="currentColor" stroke-linejoin="round"/> 2801 </svg> 2802 </div> 2803 </shopify-account> 2804 </li><li class="header__cart-link relative"> 2805 <a href="/cart" class="block tap-area" data-no-instant> 2806 <span class="sr-only">Panier</span> 2807 <svg aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" width="14" height="15" viewBox="0 0 14 15" fill="none"> 2808 <path d="M10.2196 3.16578V5.31865C10.2196 7.11693 8.75689 8.57962 6.95861 8.57962C5.16033 8.57962 3.69764 7.11693 3.69764 5.31865V3.16578M0.5 0.5H13.4236V14.5H0.5V0.5Z" stroke="currentColor"/> 2809 </svg> 2810 </a> 2811 2812 <cart-count class="header__active-dot"hidden> 2813 <span class="sr-only">0 article</span> 2814 </cart-count> 2815 </li></ul> 2816 </nav><a href="/search" class="header__search-field header__search-bar md:hidden" aria-controls="search-drawer"> 2817 <span>Que recherchez-vous ?</span><svg aria-hidden="true" focusable="false" width="24" fill="none" class="icon icon-search" part="icon" viewBox="0 0 16 16"> 2818 <path stroke-width="1" stroke="currentColor" d="M1.333 7.333a6 6 0 1 0 12 0 6 6 0 0 0-12 0ZM11.575 11.576l3.09 3.09" /> 2819 </svg></a><link href="//fr.melvita.com/cdn/shop/t/4/assets/ax-menu-drawer.css?v=20666038638637104561787828863" rel="stylesheet" type="text/css" media="all" /> 2820 2821<header-menu-drawer id="menu-drawer" class="menu-drawer color-scheme color-scheme--scheme-2"> 2822 <template> 2823 <div part="overlay"></div> 2824 2825 <div part="content"> 2826 <slot></slot> 2827 </div> 2828 </template><header-menu-drawer-panel id="menu-drawer-panel-main" data-main-panel class="menu-drawer__panel"> 2829 <div class="menu-drawer__panel-body"> 2830 <div class="menu-drawer__sections"><div class="menu-drawer__cards scroll-area"><a href="/collections/french-days" class="menu-drawer__card content-box" ><div class="content-box__background-media with-overlay"><img src="//fr.melvita.com/cdn/shop/files/OFFRES_1200x1200_4aeb87f3-932c-40b2-8a49-fb8d87e4fbc5.png?v=1787854405&width=1200" alt="" srcset="//fr.melvita.com/cdn/shop/files/OFFRES_1200x1200_4aeb87f3-932c-40b2-8a49-fb8d87e4fbc5.png?v=1787854405&width=142 142w, //fr.melvita.com/cdn/shop/files/OFFRES_1200x1200_4aeb87f3-932c-40b2-8a49-fb8d87e4fbc5.png?v=1787854405&width=284 284w, //fr.melvita.com/cdn/shop/files/OFFRES_1200x1200_4aeb87f3-932c-40b2-8a49-fb8d87e4fbc5.png?v=1787854405&width=426 426w" width="1200" height="1200" loading="lazy" sizes="142px"></div><span class="menu-drawer__card-title h5">French Days</span></a><a href="/collections/best-sellers" class="menu-drawer__card content-box" ><div class="content-box__background-media with-overlay"><img src="//fr.melvita.com/cdn/shop/files/Large-2026_SDR_-_GLOW_GEL_CREAM_-_2IN1_MASK_-_GLOW_GEL_CREAM.jpg?v=1787300178&width=1200" alt="" srcset="//fr.melvita.com/cdn/shop/files/Large-2026_SDR_-_GLOW_GEL_CREAM_-_2IN1_MASK_-_GLOW_GEL_CREAM.jpg?v=1787300178&width=142 142w, //fr.melvita.com/cdn/shop/files/Large-2026_SDR_-_GLOW_GEL_CREAM_-_2IN1_MASK_-_GLOW_GEL_CREAM.jpg?v=1787300178&width=284 284w, //fr.melvita.com/cdn/shop/files/Large-2026_SDR_-_GLOW_GEL_CREAM_-_2IN1_MASK_-_GLOW_GEL_CREAM.jpg?v=1787300178&width=426 426w" width="1200" height="1200" loading="lazy" sizes="142px"></div><span class="menu-drawer__card-title h5">Best-sellers</span></a><a href="/collections/cadeaux" class="menu-drawer__card content-box" ><div class="content-box__background-media with-overlay"><img src="//fr.melvita.com/cdn/shop/files/ING-ROSE2_1200x1200_c4171a2c-3cf0-4fb9-9891-29a87c77d7f1.png?v=1787300780&width=1200" alt="" srcset="//fr.melvita.com/cdn/shop/files/ING-ROSE2_1200x1200_c4171a2c-3cf0-4fb9-9891-29a87c77d7f1.png?v=1787300780&width=142 142w, //fr.melvita.com/cdn/shop/files/ING-ROSE2_1200x1200_c4171a2c-3cf0-4fb9-9891-29a87c77d7f1.png?v=1787300780&width=284 284w, //fr.melvita.com/cdn/shop/files/ING-ROSE2_1200x1200_c4171a2c-3cf0-4fb9-9891-29a87c77d7f1.png?v=1787300780&width=426 426w" width="1200" height="1200" loading="lazy" sizes="142px"></div><span class="menu-drawer__card-title h5">Cadeaux</span></a></div><ul class="menu-drawer__nav faded-linklist unstyled-list"><li><button type="button" class="menu-drawer__link" data-panel-toggle aria-controls="menu-drawer-panel-primary-1"><span>Soins visage</span><svg aria-hidden="true" focusable="false" width="10" class="menu-drawer__link-chevron icon icon-chevron-right" part="icon" viewB
2830ox="0 0 9 10"> 2831 <path fill="none" stroke="currentColor" stroke-width="1.5" d="m2.5 9 4-4-4-4"/> 2832 </svg></button></li><li><button type="button" class="menu-drawer__link" data-panel-toggle aria-controls="menu-drawer-panel-primary-2"><span>Soins corps</span><svg aria-hidden="true" focusable="false" width="10" class="menu-drawer__link-chevron icon icon-chevron-right" part="icon" viewBox="0 0 9 10"> 2833 <path fill="none" stroke="currentColor" stroke-width="1.5" d="m2.5 9 4-4-4-4"/> 2834 </svg></button></li><li><button type="button" class="menu-drawer__link" data-panel-toggle aria-controls="menu-drawer-panel-primary-3"><span>Préoccupations</span><svg aria-hidden="true" focusable="false" width="10" class="menu-drawer__link-chevron icon icon-chevron-right" part="icon" viewBox="0 0 9 10"> 2835 <path fill="none" stroke="currentColor" stroke-width="1.5" d="m2.5 9 4-4-4-4"/> 2836 </svg></button></li><li><button type="button" class="menu-drawer__link" data-panel-toggle aria-controls="menu-drawer-panel-primary-4"><span>Marque </span><svg aria-hidden="true" focusable="false" width="10" class="menu-drawer__link-chevron icon icon-chevron-right" part="icon" viewBox="0 0 9 10"> 2837 <path fill="none" stroke="currentColor" stroke-width="1.5" d="m2.5 9 4-4-4-4"/> 2838 </svg></button></li></ul><a href="/products/eau-extraordinaire-source-de-roses" class="menu-drawer__push content-box"><div class="content-box__background-media with-overlay"><img src="//fr.melvita.com/cdn/shop/files/TEXT-SDR-EAU-EXTRA_981x558_9107dab0-51a9-4c3b-a17a-ff352015bb2c.png?v=1787316353&width=837" alt="" srcset="//fr.melvita.com/cdn/shop/files/TEXT-SDR-EAU-EXTRA_981x558_9107dab0-51a9-4c3b-a17a-ff352015bb2c.png?v=1787316353&width=400 400w, //fr.melvita.com/cdn/shop/files/TEXT-SDR-EAU-EXTRA_981x558_9107dab0-51a9-4c3b-a17a-ff352015bb2c.png?v=1787316353&width=600 600w, //fr.melvita.com/cdn/shop/files/TEXT-SDR-EAU-EXTRA_981x558_9107dab0-51a9-4c3b-a17a-ff352015bb2c.png?v=1787316353&width=800 800w" width="837" height="558" loading="lazy" sizes="(max-width: 480px) 100vw, 432px"></div><span class="menu-drawer__push-heading h2">Un soin pour hydrater</span></a></div> 2839 </div></header-menu-drawer-panel><header-menu-drawer-panel id="menu-drawer-panel-primary-1" class="menu-drawer__panel color-scheme color-scheme--scheme-2"> 2840 <div class="menu-drawer__panel-body"> 2841 <div class="menu-drawer__sections menu-drawer__sections--panel"> 2842 <button type="button" class="menu-drawer__back" data-panel-toggle aria-controls="menu-drawer-panel-main">Retour</button> 2843 2844 <div class="menu-drawer__sections"><ul class="menu-drawer__nav unstyled-list"><li><a href="/collections/serum-visage" class="menu-drawer__panel-link link-reversed" >Essence et sérum visage</a></li><li><a href="/collections/creme-visage" class="menu-drawer__panel-link link-reversed" >Crème visage</a></li><li><a href="/collections/nettoyant-demaquillant" class="menu-drawer__panel-link link-reversed" >Nettoyant et démaquillant</a></li><li><a href="/collections/exfoliant-visage" class="menu-drawer__panel-link link-reversed" >Exfoliant et masque visage</a></li><li><a href="/collections/soin-contour-des-yeux" class="menu-drawer__panel-link link-reversed" >Soin contour des yeux</a></li><li><a href="/collections/eaux-florales" class="menu-drawer__panel-link link-reversed" >Eau florale</a></li><li><a href="/collections/huile-visage" class="menu-drawer__panel-link link-reversed" >Huile visage</a></li><li><a href="/collections/bb-creme" class="menu-drawer__panel-link link-reversed" >BB crème</a></li><li><a href="/collections/baume-a-levres" class="menu-drawer__panel-link link-reversed" >Baume à lèvres</a></li><li><a href="/collections/tous-les-soins-visage" class="menu-drawer__panel-link link-reversed" >Tous les soins visage</a></li></ul></div> 2845 </div> 2846 </div> 2847</header-menu-drawer-panel> 2848<header-menu-drawer-panel id="menu-drawer-panel-primary-2" class="menu-drawer__panel color-scheme color-scheme--scheme-2"> 2849 <div class="menu-drawer__panel-body"> 2850 <div class="menu-drawer__sections menu-drawer__sections--panel"> 2851 <button type="button" class="menu-drawer__back" data-panel-toggle aria-controls="menu-drawer-panel-main">Retour</button> 2852 2853 <div class="menu-drawer__sections"><ul class="menu-drawer__nav unstyled-list"><li><a href="/collections/serum-corps" class="menu-drawer__panel-link link-reversed" >Sérum corps</a></li><li><a href="/collections/huile-corps" class="menu-drawer__panel-link link-reversed" >Huile corps</a></li><li><a href="/collections/creme-corps" class="menu-drawer__panel-link link-reversed" >Crème corps</a></li><li><a href="/collections/gel-douche-savon" class="menu-drawer__panel-link link-reversed" >Gel douche et savon</a></li><li><a href="/collections/gommage-corps" class="menu-drawer__panel-link link-reversed" >Gommage corps</a></li><li><a href="/collections/hygiene" class="menu-drawer__panel-link link-reversed" >Hygiène quotidienne</a></li><li><a href="/collections/creme-mains" class="menu-drawer__panel-link link-reversed" >Crème mains</a></li><li><a href="/collections/soin-cheveux" class="menu-drawer__panel-link link-reversed" >Soin cheveux</a></li><li><a href="/collections/tous-les-soins-corps" class="menu-drawer__panel-link link-reversed" >Tous les soins corps</a></li></ul></div> 2854 </div> 2855 </div> 2856</header-menu-drawer-panel> 2857<header-menu-drawer-panel id="menu-drawer-panel-primary-3" class="menu-drawer__panel color-scheme color-scheme--scheme-2"> 2858 <div class="menu-drawer__panel-body"> 2859 <div class="menu-drawer__sections menu-drawer__sections--panel"> 2860 <button type="button" class="menu-drawer__back" data-panel-toggle aria-controls="menu-drawer-panel-main">Retour</button> 2861 2862 <div class="menu-drawer__sections"><ul class="menu-drawer__nav unstyled-list"><li><a href="/collections/soin-visage-hydratant" class="menu-drawer__panel-link link-reversed" >Manque d'hydratation</a></li><li><a href="/collections/soin-visage-eclat" class="menu-drawer__panel-link link-reversed" >Manque d'éclat</a></li><li><a href="/collections/soin-rides-et-ridules" class="menu-drawer__panel-link link-reversed" >Rides et ridules</a></li><li><a href="/collections/peau-seche-inconfortable" class="menu-drawer__panel-link link-reversed" >Peau sèche et inconfortable</a></li><li><a href="/collections/soin-visage-fermete" class="menu-drawer__panel-link link-reversed" >Manque de fermeté</a></li><li><a href="/collections/soin-visage-taches" class="menu-drawer__panel-link link-reversed" >Tâches pigmentaires</a></li><li><a href="/collections/soin-visage-rougeurs" class="menu-drawer__panel-link link-reversed" >Peau sensible et rougeurs</a></li><li><a href="/collections/soin-visage-imperfections" class="menu-drawer__panel-link link-reversed" >Peau à imperfections</a></li></ul></div> 2863 </div> 2864 </div> 2865</header-menu-drawer-panel> 2866<header-menu-drawer-panel id="menu-drawer-panel-primary-4" class="menu-drawer__panel color-scheme color-scheme--scheme-2"> 2867 <div class="menu-drawer__panel-body"> 2868 <div class="menu-drawer__sections menu-drawer__sections--panel"> 2869 <button type="button" class="menu-drawer__back" data-panel-toggle aria-controls="menu-drawer-panel-main">Retour</button> 2870 2871 <div class="menu-drawer__sections">
2871<script src="//fr.melvita.com/cdn/shop/t/4/assets/ax-menu-promo.js?v=174421363216936711411789037182" defer="defer"></script>
2871<style> 2872 #promo-block-list-mega_menu_N3Ed7Cmenu-drawer-panel-primary-4 { 2873 --menu-promo-block-column-gap: 12px; 2874 --menu-promo-blocks-count: 3; 2875 } 2876 </style> 2877 2878 <div id="promo-block-list-mega_menu_N3Ed7Cmenu-drawer-panel-primary-4" class="menu-promo menu-promo--without-spacing"> 2879 <scroll-carousel id="promo-block-list-mega_menu_N3Ed7Cmenu-drawer-panel-primary-4-carousel" class="menu-promo__carousel scroll-area" allow-drag> 2880 2881 <a href="/pages/notre-histoire" class="menu-promo__item @container/content-box group"><div class="content-box overflow-hidden h-full" style="--text-color: 255 255 255; color: rgb(var(--text-color));--border-color: var(--text-color) / 0.15;"><div class="content-box__background-media with-overlay"><img src="//fr.melvita.com/cdn/shop/files/VISUEL-HISTOIRE-MENU.jpg?v=1787925243&width=840" alt="" srcset="//fr.melvita.com/cdn/shop/files/VISUEL-HISTOIRE-MENU.jpg?v=1787925243&width=420 420w, //fr.melvita.com/cdn/shop/files/VISUEL-HISTOIRE-MENU.jpg?v=1787925243&width=840 840w" width="840" height="680" loading="lazy" sizes="420px" class="zoom-image group-hover:zoom"></div><div class="place-self-end-start text-start"><div class="v-stack text-start gap-1"><p class="subheading">NOTRE HISTOIRE</p> 2882 2883</div></div></div></a> 2884 2885 <a href="/pages/notre-expertise" class="menu-promo__item @container/content-box group"><div class="content-box overflow-hidden h-full" style="--text-color: 255 255 255; color: rgb(var(--text-color));--border-color: var(--text-color) / 0.15;"><div class="content-box__background-media with-overlay"><img src="//fr.melvita.com/cdn/shop/files/TEX-HAIRCARE-SERUM_840x680_21c44065-4b15-4e12-b18f-4c6e6f3daead.jpg?v=1788189419&width=840" alt="" srcset="//fr.melvita.com/cdn/shop/files/TEX-HAIRCARE-SERUM_840x680_21c44065-4b15-4e12-b18f-4c6e6f3daead.jpg?v=1788189419&width=420 420w, //fr.melvita.com/cdn/shop/files/TEX-HAIRCARE-SERUM_840x680_21c44065-4b15-4e12-b18f-4c6e6f3daead.jpg?v=1788189419&width=840 840w" width="840" height="680" loading="lazy" sizes="420px" class="zoom-image group-hover:zoom"></div><div class="place-self-end-start text-start"><div class="v-stack text-start gap-1"><p class="subheading">NOTRE EXPERTISE</p> 2886 2887</div></div></div></a> 2888 2889 <a href="/pages/nos-engagements" class="menu-promo__item @container/content-box group"><div class="content-box overflow-hidden h-full" style="--text-color: 255 255 255; color: rgb(var(--text-color));--border-color: var(--text-color) / 0.15;"><div class="content-box__background-media with-overlay"><img src="//fr.melvita.com/cdn/shop/files/VISUEL-ENGAGEMENT.jpg?v=1787925182&width=840" alt="" srcset="//fr.melvita.com/cdn/shop/files/VISUEL-ENGAGEMENT.jpg?v=1787925182&width=420 420w, //fr.melvita.com/cdn/shop/files/VISUEL-ENGAGEMENT.jpg?v=1787925182&width=840 840w" width="840" height="680" loading="lazy" sizes="420px" class="zoom-image group-hover:zoom"></div><div class="place-self-end-start text-start"><div class="v-stack text-start gap-1"><p class="subheading">NOS ENGAGEMENTS</p> 2890 2891</div></div></div></a> 2892 2893 2894</scroll-carousel> 2895 </div></div> 2896 </div> 2897 </div> 2898</header-menu-drawer-panel> 2899</header-menu-drawer> 2900</x-header> 2901</height-observer> 2902
2903<script> 2904 document.documentElement.style.setProperty('--header-height', `${Math.round(document.getElementById('shopify-section-sections--30543191376210__header').clientHeight)}px`); 2905</script>
2905 2906 2907</header> 2908<!-- END sections: header-group --><!-- BEGIN sections: overlay-group --> 2909<section id="shopify-section-sections--30543191408978__cart-drawer" class="shopify-section shopify-section-group-overlay-group shopify-section--cart-drawer"> 2910</section><section id="shopify-section-sections--30543191408978__search-drawer" class="shopify-section shopify-section-group-overlay-group shopify-section--search-drawer"><link href="//fr.melvita.com/cdn/shop/t/4/assets/ax-search.css?v=9963105301847081791787240104" rel="stylesheet" type="text/css" media="all" />
2911<script src="//fr.melvita.com/cdn/shop/t/4/assets/ax-search.js?v=35820209326577726131786011914" defer></script>
2911 2912 2913<x-drawer id="search-drawer" class="drawer drawer--search color-scheme color-scheme--scheme-1" handle-editor-events> 2914 <div slot="header"> 2915 <form action="/search" id="predictive-search-form" method="GET" aria-owns="predictive-search" class="ax-search__form" role="search"><svg aria-hidden="true" focusable="false" width="20" fill="none" class="icon icon-search" part="icon" viewBox="0 0 16 16"> 2916 <path stroke-width="1" stroke="currentColor" d="M1.333 7.333a6 6 0 1 0 12 0 6 6 0 0 0-12 0ZM11.575 11.576l3.09 3.09" /> 2917 </svg><label for="search-drawer-input" class="sr-only">Recherche...</label> 2918 <input id="search-drawer-input" type="search" class="ax-search__input" name="q" placeholder="Recherche..." autocomplete="off" autocorrect="off" spellcheck="false"> 2919 2920 <button type="reset" class="ax-search__clear"> 2921 <span class="sr-only">Effacer</span><svg aria-hidden="true" focusable="false" width="14" class="icon icon-remove-bin" part="icon" viewBox="0 0 16 17"> 2922 <path stroke="currentColor" fill="none" d="M2 4.5h12M3.5 4.5h9v10h-9v-10ZM6.5 7v5M9.5 7v5M5.5 4.5a2.5 2.5 0 1 1 5 0" /> 2923 </svg></button> 2924 </form> 2925 </div> 2926 2927 <predictive-search id="predictive-search"> 2928 <div slot="placeholder"><div class="ax-search ax-search--placeholder ax-search--no-aside"></div> 2929 </div><div slot="skeleton" aria-hidden="true"> 2930 <div class="ax-search ax-search--skeleton"> 2931 <div class="ax-search__aside"><div class="ax-search__group"> 2932 <span class="ax-skeleton ax-skeleton--title"></span> 2933 <div class="ax-search__links"><span class="ax-skeleton ax-skeleton--aside-line" style="--ax-skeleton-w: 70%"></span><span class="ax-skeleton ax-skeleton--aside-line" style="--ax-skeleton-w: 85%"></span><span class="ax-skeleton ax-skeleton--aside-line" style="--ax-skeleton-w: 55%"></span><span class="ax-skeleton ax-skeleton--aside-line" style="--ax-skeleton-w: 70%"></span><span class="ax-skeleton ax-skeleton--aside-line" style="--ax-skeleton-w: 85%"></span><span class="ax-skeleton ax-skeleton--aside-line" style="--ax-skeleton-w: 55%"></span></div> 2934 </div><div class="ax-search__group"> 2935 <span class="ax-skeleton ax-skeleton--title"></span> 2936 <div class="ax-search__links"><span class="ax-skeleton ax-skeleton--aside-line" style="--ax-skeleton-w: 70%"></span><span class="ax-skeleton ax-skeleton--aside-line" style="--ax-skeleton-w: 85%"></span><span class="ax-skeleton ax-skeleton--aside-line" style="--ax-skeleton-w: 55%"></span><span class="ax-skeleton ax-skeleton--aside-line" style="--ax-skeleton-w: 70%"></span></div> 2937 </div><div class="ax-search__group"> 2938 <span class="ax-skeleton ax-skeleton--title"></span> 2939 <div class="ax-search__links"><span class="ax-skeleton ax-skeleton--aside-line" style="--ax-skeleton-w: 70%"></span><span class="ax-skeleton ax-skeleton--aside-line" style="--ax-skeleton-w: 85%"></span></div> 2940 </div></div> 2941 2942 <div class="ax-search__main"> 2943 <span class="ax-skeleton ax-skeleton--title"></span> 2944 <div class="ax-search__grid ax-search__grid--skeleton"><div class="ax-skeleton-card"> 2945 <span class="ax-skeleton ax-skeleton--media aspect-portrait_crop"></span> 2946 <span class="ax-skeleton ax-skeleton--card-title" style="--ax-skeleton-w: 70%"></span> 2947 <span class="ax-skeleton ax-skeleton--card-sub" style="--ax-skeleton-w: 90%"></span> 2948 <span class="ax-skeleton ax-skeleton--card-sub" style="--ax-skeleton-w: 55%"></span> 2949 <span class="ax-skeleton ax-skeleton--card-price" style="--ax-skeleton-w: 30%"></span> 2950 </div><div class="ax-skeleton-card"> 2951 <span class="ax-skeleton ax-skeleton--media aspect-portrait_crop"></span> 2952 <span class="ax-skeleton ax-skeleton--card-title" style="--ax-skeleton-w: 70%"></span> 2953 <span class="ax-skeleton ax-skeleton--card-sub" style="--ax-skeleton-w: 90%"></span> 2954 <span class="ax-skeleton ax-skeleton--card-sub" style="--ax-skeleton-w: 55%"></span>
2955 <span class="ax-skeleton ax-skeleton--card-price" style="--ax-skeleton-w: 30%"></span> 2956 </div><div class="ax-skeleton-card"> 2957 <span class="ax-skeleton ax-skeleton--media aspect-portrait_crop"></span> 2958 <span class="ax-skeleton ax-skeleton--card-title" style="--ax-skeleton-w: 70%"></span> 2959 <span class="ax-skeleton ax-skeleton--card-sub" style="--ax-skeleton-w: 90%"></span> 2960 <span class="ax-skeleton ax-skeleton--card-sub" style="--ax-skeleton-w: 55%"></span> 2961 <span class="ax-skeleton ax-skeleton--card-price" style="--ax-skeleton-w: 30%"></span> 2962 </div><div class="ax-skeleton-card"> 2963 <span class="ax-skeleton ax-skeleton--media aspect-portrait_crop"></span> 2964 <span class="ax-skeleton ax-skeleton--card-title" style="--ax-skeleton-w: 70%"></span> 2965 <span class="ax-skeleton ax-skeleton--card-sub" style="--ax-skeleton-w: 90%"></span> 2966 <span class="ax-skeleton ax-skeleton--card-sub" style="--ax-skeleton-w: 55%"></span> 2967 <span class="ax-skeleton ax-skeleton--card-price" style="--ax-skeleton-w: 30%"></span> 2968 </div><div class="ax-skeleton-card"> 2969 <span class="ax-skeleton ax-skeleton--media aspect-portrait_crop"></span> 2970 <span class="ax-skeleton ax-skeleton--card-title" style="--ax-skeleton-w: 70%"></span> 2971 <span class="ax-skeleton ax-skeleton--card-sub" style="--ax-skeleton-w: 90%"></span> 2972 <span class="ax-skeleton ax-skeleton--card-sub" style="--ax-skeleton-w: 55%"></span> 2973 <span class="ax-skeleton ax-skeleton--card-price" style="--ax-skeleton-w: 30%"></span> 2974 </div><div class="ax-skeleton-card"> 2975 <span class="ax-skeleton ax-skeleton--media aspect-portrait_crop"></span> 2976 <span class="ax-skeleton ax-skeleton--card-title" style="--ax-skeleton-w: 70%"></span> 2977 <span class="ax-skeleton ax-skeleton--card-sub" style="--ax-skeleton-w: 90%"></span> 2978 <span class="ax-skeleton ax-skeleton--card-sub" style="--ax-skeleton-w: 55%"></span> 2979 <span class="ax-skeleton ax-skeleton--card-price" style="--ax-skeleton-w: 30%"></span> 2980 </div><div class="ax-skeleton-card"> 2981 <span class="ax-skeleton ax-skeleton--media aspect-portrait_crop"></span> 2982 <span class="ax-skeleton ax-skeleton--card-title" style="--ax-skeleton-w: 70%"></span> 2983 <span class="ax-skeleton ax-skeleton--card-sub" style="--ax-skeleton-w: 90%"></span> 2984 <span class="ax-skeleton ax-skeleton--card-sub" style="--ax-skeleton-w: 55%"></span> 2985 <span class="ax-skeleton ax-skeleton--card-price" style="--ax-skeleton-w: 30%"></span> 2986 </div><div class="ax-skeleton-card"> 2987 <span class="ax-skeleton ax-skeleton--media aspect-portrait_crop"></span> 2988 <span class="ax-skeleton ax-skeleton--card-title" style="--ax-skeleton-w: 70%"></span> 2989 <span class="ax-skeleton ax-skeleton--card-sub" style="--ax-skeleton-w: 90%"></span> 2990 <span class="ax-skeleton ax-skeleton--card-sub" style="--ax-skeleton-w: 55%"></span> 2991 <span class="ax-skeleton ax-skeleton--card-price" style="--ax-skeleton-w: 30%"></span> 2992 </div></div> 2993 <span class="ax-skeleton ax-skeleton--view-all"></span> 2994 </div> 2995 </div> 2996 </div> 2997 2998 <div slot="results" class="contents"><!-- FILL IN JS --></div> 2999 </predictive-search> 3000</x-drawer> 3001 3002</section> 3003<!-- END sections: overlay-group --><main id="main" class="anchor "> 3004 <section id="shopify-section-template--30543204778322__main" class="shopify-section shopify-section--main-cart"><div class="color-scheme color-scheme--scheme-1"> 3005 <div class="section-spacing"> 3006 <div class="container"> 3007 <div class="max-w-2xl mx-auto"><div class="empty-state"> 3008 <div class="prose prose-justify-center"> 3009 <h1 class="h3">Panier</h1> 3010 <p>Votre panier est vide</p> 3011<a class="button" href="/collections/best-sellers" ><button-content class="button__content" >Explorer nos produits</button-content></a></div> 3012 </div></div> 3013 </div> 3014 </div> 3015</div> 3016 3017 3018</section> 3019 </main><!-- BEGIN sections: footer-group --> 3020<section id="shopify-section-sections--30543190688082__trust_icons_dhwgem" class="shopify-section shopify-section-group-footer-group shopify-section--trust-icons"><style> 3021 #shopify-section-sections--30543190688082__trust_icons_dhwgem { 3022 --trust-icons-item-count: 4; 3023 } 3024 </style>
3024<script src="//fr.melvita.com/cdn/shop/t/4/assets/ax-product-slider.js?v=135989042043708014381787222692" defer></script>
3024<div class="color-scheme color-scheme--scheme-2"><ax-autoplay-carousel class="trust-icons trust-icons--slider" autoplay="4000"> 3025 <scroll-carousel id="trust-icons-sections--30543190688082__trust_icons_dhwgem" class="trust-icons__carousel scroll-area snap-x" allow-drag><div class="trust-icons__item snap-center" role="group" aria-label="Elément 1 de 4" > 3026 <div class="prose prose-justify-center prose--compact"><p class="h7">PAIEMENT SÃCURISÃ</p><p class="text-subdued">Transactions 100% protégées</p></div> 3027 </div><div class="trust-icons__item snap-center" role="group" aria-label="Elément 2 de 4" > 3028 <div class="prose prose-justify-center prose--compact"><p class="h7">FORMULES CERTIFIÃES BIOLOGIQUES</p><p class="text-subdued">Des actifs d'origine naturelle</p></div> 3029 </div><div class="trust-icons__item snap-center" role="group" aria-label="Elément 3 de 4" > 3030 <div class="prose prose-justify-center prose--compact"><p class="h7">LIVRAISON RAPIDE</p><p class="text-subdued">Offerte dès 49⬠d'achat</p></div> 3031 </div><div class="trust-icons__item snap-center" role="group" aria-label="Elément 4 de 4" > 3032 <div class="prose prose-justify-center prose--compact"><p class="h7">RETOURS FACILES</p><p class="text-subdued">Sous 14 jours</p></div> 3033 </div></scroll-carousel> 3034 3035 <progress-bar track-scroll-target="trust-icons-sections--30543190688082__trust_icons_dhwgem" class="progress-bar progress-bar--limit-width sm:hidden"></progress-bar> 3036 </ax-autoplay-carousel></div> 3037</section><section id="shopify-section-sections--30543190688082__newsletter" class="shopify-section shopify-section-group-footer-group shopify-section--newsletter"><style> 3038 #shopify-section-sections--30543190688082__newsletter .newsletter-band { 3039 display: grid; 3040 gap: 1.5rem; 3041 } 3042 3043 #shopify-section-sections--30543190688082__newsletter .newsletter-band__description { 3044 max-width: 28rem; 3045 } 3046 3047 /* Email field and submit button on a single row, but kept separate (gap + rounded corners) */ 3048 #shopify-section-sections--30543190688082__newsletter .newsletter-band .input-with-connected-submit { 3049 flex-direction: row; 3050 align-items: stretch; 3051 gap: .75rem; 3052 } 3053 3054 #shopify-section-sections--30543190688082__newsletter .newsletter-band .input-with-connected-submit .form-control { 3055 flex-grow: 1; 3056 } 3057 3058 #shopify-section-sections--30543190688082__newsletter .newsletter-band .input-with-connected-submit .input { 3059 --input-padding-block: .5rem; 3060 min-height: 100%; 3061 border-inline-end-width: 1px; 3062 border-radius: var(--input-border-radius); 3063 background-color: transparent; 3064 } 3065 3066 #shopify-section-sections--30543190688082__newsletter .newsletter-band .input-with-connected-submit .button { 3067 --button-padding-block: .5rem; 3068 border-radius: var(--button-border-radius); 3069 font-weight: 700; 3070 } 3071 3072 /* Placeholder ("Votre mail") in solid black instead of the default subdued tone */ 3073 #shopify-section-sections--30543190688082__newsletter .newsletter-band .floating-label { 3074 color: rgb(var(--input-text-color, var(--text-color))); 3075 font-size: 14px; 3076 } 3077 3078 /* The theme lowercases every heading; the mockup keeps the original casing */ 3079 #shopify-section-sections--30543190688082__newsletter .newsletter-band__heading :where(h1, h2, h3, h4, h5, h6) { 3080 font-weight: 400; 3081 text-transform: none; 3082 line-height: 110%; 3083 } 3084 3085 #shopify-section-sections--30543190688082__newsletter .newsletter-band__heading * { 3086 margin: 0; 3087 } 3088 3089 /* Two-tone heading: light first words, bold highlighted part */ 3090 #shopify-section-sections--30543190688082__newsletter .newsletter-band__heading :where(h1, h2, h3, h4, h5, h6) strong { 3091 font-weight: 800; 3092 } 3093 3094 @media screen and (min-width: 1000px) { 3095 #shopify-section-sections--30543190688082__newsletter .newsletter-band { 3096 grid-template-columns: minmax(0, auto) minmax(0, 1fr) minmax(0, auto); 3097 align-items: center; 3098 gap: clamp(2.5rem, 5vw, 6rem); 3099 } 3100 3101 #shopify-section-sections--30543190688082__newsletter .newsletter-band__heading { 3102 max-width: 21rem; 3103 } 3104 3105 #shopify-section-sections--30543190688082__newsletter .newsletter-band__form { 3106 width: 22rem; 3107 } 3108 } 3109</style> 3110 3111<div class="color-scheme color-scheme--scheme-1"><div class="container section-spacing"> 3112 <div class="newsletter-band"> 3113 <div class="newsletter-band__heading prose"><h2 class="h3" >Inscrivez-vous <br/>à NOTRE NEWSLETTER !</h2></div><div class="newsletter-band__description text-sm text-subdued">Profitez de -15 % sur votre prochaine commande et découvrez en avant-première nos nouveautés, nos offres exclusives et nos conseils pour prendre soin de votre peau.</div><div class="newsletter-band__form"><form method="post" action="/contact#newsletter-form-sections--30543190688082__newsletter" id="newsletter-form-sections--30543190688082__newsletter" accept-charset="UTF-8" class="form"><input type="hidden" name="form_type" value="customer" /><input type="hidden" name="utf8" value="â" /><input type="hidden" name="contact[tags]" value="newsletter"><div class="input-with-connected-submit"><div class="form-control" ><input id="input--sections--30543190688082__newsletter--contactemail" class="input " type="email" dir="ltr" name="contact[email]" 3114 3115 3116 3117 3118 placeholder=" " 3119 autocomplete="email" 3120 3121 enterkeyhint="send" 3122 required 3123 3124 3125 3126><label for="input--sections--30543190688082__newsletter--contactemail" class="floating-label ">Votre mail</label></div> 3127<button type="submit" class="button" ><button-content class="button__content" >Envoyer</button-content></button></div></form></div> 3128 </div> 3129 </div></div> 3130 3131 3132</section><footer id="shopify-section-sections--30543190688082__footer" class="shopify-section shopify-section-group-footer-group shopify-section--footer"><div class="footer color-scheme color-scheme--scheme-11"> 3133 <div class="container">
3133<div class="footer__content"><div class="footer__block-list"><div class="footer__block footer__block--links footer__block--accordion-links" ><div class="v-stack gap-4.5 sm-max:hidden"><p class="footer__menu-title"><strong>Besoin d'aide ?</strong></p><ul class="v-stack gap-2.5 unstyled-list" role="list"><li><span class="footer__menu-link">Nous contacter</span><ul class="footer__submenu v-stack gap-2.5 unstyled-list" role="list"><li><a href="tel:0475370948" class="footer__menu-link link-reversed link-tap-area">04 75 37 09 48 </a></li><li><a href="mailto:[email protected]" class="footer__menu-link link-reversed link-tap-area">[email protected]</a></li></ul></li><li><a href="/pages/programme-de-fidelite" class="footer__menu-link link-reversed link-tap-area">Programme de fidélité</a></li><li><a href="/pages/programme-de-parrainage" class="footer__menu-link link-reversed link-tap-area">Programme de parrainage</a></li> 3134 </ul></div><accordion-disclosure class="accordion sm:hidden" > 3135 <details class="accordion__disclosure" > 3136 <summary class="accordion__summary "><span><strong>Besoin d'aide ?</strong></span><svg ria-hidden="true" focusable="false" width="11" class="icon icon-accordion-small-arrow" part="icon" width="11" height="6" viewBox="0 0 11 6" fill="none"> 3137 <path d="M10.5133 0.367188L5.42631 5.06284L0.339355 0.367188" stroke="currentColor" stroke-linejoin="round"/> 3138 </svg></summary> 3139 3140 <div class="accordion__content "><ul class="v-stack gap-2.5 unstyled-list" role="list"><li><span class="footer__menu-link">Nous contacter</span><ul class="footer__submenu v-stack gap-2.5 unstyled-list" role="list"><li>
3140<a href="tel:0475370948" class="footer__menu-link link-reversed link-tap-area">04 75 37 09 48 </a></li><li><a href="mailto:[email protected]" class="footer__menu-link link-reversed link-tap-area">[email protected]</a></li></ul></li><li><a href="/pages/programme-de-fidelite" class="footer__menu-link link-reversed link-tap-area">Programme de fidélité</a></li><li><a href="/pages/programme-de-parrainage" class="footer__menu-link link-reversed link-tap-area">Programme de parrainage</a></li> 3141 </ul></div> 3142 </details> 3143</accordion-disclosure> 3144</div><div class="footer__block footer__block--links footer__block--accordion-links" ><div class="v-stack gap-4.5 sm-max:hidden"><p class="footer__menu-title"><strong>Nous trouver</strong></p><ul class="v-stack gap-2.5 unstyled-list" role="list"><li><a href="/pages/nos-boutiques" class="footer__menu-link link-reversed link-tap-area">Nos points de vente</a></li><li><a href="/pages/notre-usine" class="footer__menu-link link-reversed link-tap-area">Lagorce : boutique et visite de l'usine</a></li><li><a href="/pages/notre-boutique-et-institut" class="footer__menu-link link-reversed link-tap-area">Aubenas : boutique et institut</a></li> 3145 </ul></div><accordion-disclosure class="accordion sm:hidden" > 3146 <details class="accordion__disclosure" > 3147 <summary class="accordion__summary "><span><strong>Nous trouver</strong></span><svg ria-hidden="true" focusable="false" width="11" class="icon icon-accordion-small-arrow" part="icon" width="11" height="6" viewBox="0 0 11 6" fill="none"> 3148 <path d="M10.5133 0.367188L5.42631 5.06284L0.339355 0.367188" stroke="currentColor" stroke-linejoin="round"/> 3149 </svg></summary> 3150 3151 <div class="accordion__content "><ul class="v-stack gap-2.5 unstyled-list" role="list"><li><a href="/pages/nos-boutiques" class="footer__menu-link link-reversed link-tap-area">Nos points de vente</a></li><li><a href="/pages/notre-usine" class="footer__menu-link link-reversed link-tap-area">Lagorce : boutique et visite de l'usine</a></li><li><a href="/pages/notre-boutique-et-institut" class="footer__menu-link link-reversed link-tap-area">Aubenas : boutique et institut</a></li> 3152 </ul></div> 3153 </details> 3154</accordion-disclosure> 3155</div><div class="footer__block footer__block--links footer__block--accordion-links" ><div class="v-stack gap-4.5 sm-max:hidden"><p class="footer__menu-title"><strong>Melvita</strong></p><ul class="v-stack gap-2.5 unstyled-list" role="list"><li><a href="/pages/notre-histoire" class="footer__menu-link link-reversed link-tap-area">Notre histoire </a></li><li><a href="/pages/notre-expertise" class="footer__menu-link link-reversed link-tap-area">Notre expertise </a></li><li><a href="/pages/nos-engagements" class="footer__menu-link link-reversed link-tap-area">Nos engagements </a></li><li><a href="/pages/gammes" class="footer__menu-link link-reversed link-tap-area">Nos gammes </a></li><li><a href="/blogs/articles" class="footer__menu-link link-reversed link-tap-area">Nos articles beauté </a></li><li><a href="/pages/offres" class="footer__menu-link link-reversed link-tap-area">Nos offres saisonnières </a></li><li><a href="/collections/tous-les-produits" class="footer__menu-link link-reversed link-tap-area">Tous nos produits </a></li> 3156 </ul></div><accordion-disclosure class="accordion sm:hidden" > 3157 <details class="accordion__disclosure" > 3158 <summary class="accordion__summary "><span><strong>Melvita</strong></span><svg ria-hidden="true" focusable="false" width="11" class="icon icon-accordion-small-arrow" part="icon" width="11" height="6" viewBox="0 0 11 6" fill="none"> 3159 <path d="M10.5133 0.367188L5.42631 5.06284L0.339355 0.367188" stroke="currentColor" stroke-linejoin="round"/> 3160 </svg></summary> 3161 3162 <div class="accordion__content "><ul class="v-stack gap-2.5 unstyled-list" role="list"><li><a href="/pages/notre-histoire" class="footer__menu-link link-reversed link-tap-area">Notre histoire </a></li><li><a href="/pages/notre-expertise" class="footer__menu-link link-reversed link-tap-area">Notre expertise </a></li><li><a href="/pages/nos-engagements" class="footer__menu-link link-reversed link-tap-area">Nos engagements </a></li><li><a href="/pages/gammes" class="footer__menu-link link-reversed link-tap-area">Nos gammes </a></li><li><a href="/blogs/articles" class="footer__menu-link link-reversed link-tap-area">Nos articles beauté </a></li><li><a href="/pages/offres" class="footer__menu-link link-reversed link-tap-area">Nos offres saisonnières </a></li><li><a href="/collections/tous-les-produits" class="footer__menu-link link-reversed link-tap-area">Tous nos produits </a></li> 3163 </ul></div> 3164 </details> 3165</accordion-disclosure> 3166</div><div class="footer__block footer__block--image " ><img src="//fr.melvita.com/cdn/shop/files/Bcorp_Entreprise_Certifiee_White.png?v=1786367857&width=225" alt="Entreprise B Certifiée" srcset="//fr.melvita.com/cdn/shop/files/Bcorp_Entreprise_Certifiee_White.png?v=1786367857&width=60 60w, //fr.melvita.com/cdn/shop/files/Bcorp_Entreprise_Certifiee_White.png?v=1786367857&width=120 120w" width="225" height="343" sizes="60px" style="--image-max-width: 60px; --image-mobile-max-width: 34px" class="constrained-image"></div></div></div><div class="footer__logo-bar" ><div class="footer__big-logo footer__big-logo--static"><img src="//fr.melvita.com/cdn/shop/files/logo-melvita-white.svg?v=1788265829&width=600" alt="" srcset="//fr.melvita.com/cdn/shop/files/logo-melvita-white.svg?v=1788265829&width=200 200w, //fr.melvita.com/cdn/shop/files/logo-melvita-white.svg?v=1788265829&width=400 400w, //fr.melvita.com/cdn/shop/files/logo-melvita-white.svg?v=1788265829&width=600 600w" width="600" height="136" loading="lazy" style="--image-mobile-max-width: 70vw; --image-max-width: 32vw;" class="constrained-image"></div><ul class="social-media unstyled-list" role="list"><li class="social-media__item branding-colors--facebook"> 3167 <a href="https://www.facebook.com/MelvitaFR/" class="tap-area" target="_blank" rel="noopener" aria-label="Nous suivre sur Facebook"><svg aria-hidden="true" focusable="false" width="24" class="icon icon-facebook-outline" viewBox="0 0 24 24" fill="none"> 3168 <path transform="translate(6 1.5)" d="M11.5 0.5H8.5C7.17392 0.5 5.90215 1.02678 4.96447 1.96447C4.02678 2.90215 3.5 4.17392 3.5 5.5V8.5H0.5V12.5H3.5V20.5
3168H7.5V12.5H10.5L11.5 8.5H7.5V5.5C7.5 5.23478 7.60536 4.98043 7.79289 4.79289C7.98043 4.60536 8.23478 4.5 8.5 4.5H11.5V0.5Z" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"/> 3169 </svg></a> 3170 </li><li class="social-media__item branding-colors--instagram"> 3171 <a href="https://www.instagram.com/melvitaofficial/" class="tap-area" target="_blank" rel="noopener" aria-label="Nous suivre sur Instagram"><svg aria-hidden="true" focusable="false" width="24" class="icon icon-instagram-outline" viewBox="0 0 24 24" fill="none"> 3172 <path d="M17 2H7C4.23858 2 2 4.23858 2 7V17C2 19.7614 4.23858 22 7 22H17C19.7614 22 22 19.7614 22 17V7C22 4.23858 19.7614 2 17 2Z" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"/> 3173 <path d="M15.9997 11.3703C16.1231 12.2025 15.981 13.0525 15.5935 13.7993C15.206 14.5461 14.5929 15.1517 13.8413 15.53C13.0898 15.9082 12.2382 16.0399 11.4075 15.9062C10.5768 15.7726 9.80947 15.3804 9.21455 14.7855C8.61962 14.1905 8.22744 13.4232 8.09377 12.5925C7.96011 11.7619 8.09177 10.9102 8.47003 10.1587C8.84829 9.40716 9.45389 8.79404 10.2007 8.40654C10.9475 8.01904 11.7975 7.87689 12.6297 8.0003C13.4786 8.12619 14.2646 8.52176 14.8714 9.12861C15.4782 9.73545 15.8738 10.5214 15.9997 11.3703Z" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"/> 3174 <path d="M17.5 6.5H17.51" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"/> 3175 </svg></a> 3176 </li><li class="social-media__item branding-colors--youtube"> 3177 <a href="https://www.youtube.com/user/MelvitaFR" class="tap-area" target="_blank" rel="noopener" aria-label="Nous suivre sur YouTube"><svg aria-hidden="true" focusable="false" width="24" class="icon icon-youtube-outline" viewBox="0 0 24 24" fill="none"> 3178 <path d="M22.5401 6.42C22.4213 5.94541 22.1794 5.51057 21.8387 5.15941C21.4981 4.80824 21.0708 4.55318 20.6001 4.42C18.8801 4 12.0001 4 12.0001 4C12.0001 4 5.12008 4 3.40008 4.46C2.92933 4.59318 2.50206 4.84824 2.16143 5.19941C1.8208 5.55057 1.57887 5.98541 1.46008 6.46C1.1453 8.20556 0.991319 9.97631 1.00008 11.75C0.988863 13.537 1.14285 15.3213 1.46008 17.08C1.59104 17.5398 1.83839 17.9581 2.17823 18.2945C2.51806 18.6308 2.9389 18.8738 3.40008 19C5.12008 19.46 12.0001 19.46 12.0001 19.46C12.0001 19.46 18.8801 19.46 20.6001 19C21.0708 18.8668 21.4981 18.6118 21.8387 18.2606C22.1794 17.9094 22.4213 17.4746 22.5401 17C22.8524 15.2676 23.0064 13.5103 23.0001 11.75C23.0113 9.96295 22.8573 8.1787 22.5401 6.42Z" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"/> 3179 <path d="M9.75 15.0205L15.5 11.7505L9.75 8.48047V15.0205Z" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"/> 3180 </svg></a> 3181 </li></ul></div><div class="footer__aside"><ul class="footer__legal-links unstyled-list" role="list"><li><a href="/pages/donnees-personnelles" class="footer__legal-link link-reversed link-tap-area">Données personnelles</a></li><li><a href="/pages/conditions-generales-de-vente" class="footer__legal-link link-reversed link-tap-area">Conditions générales de vente </a></li><li><a href="/pages/charte-cookie" class="footer__legal-link link-reversed link-tap-area">Charte cookies </a></li><li><a 3182 href="#cookie" 3183 class="footer__legal-link link-reversed link-tap-area" 3184 onclick="if(window.OneTrust){event.preventDefault();OneTrust.ToggleInfoDisplay()}" 3185 >Gestion des cookies </a></li><li><a href="/pages/mentions-legales" class="footer__legal-link link-reversed link-tap-area">Mentions légales </a></li><li><a href="/pages/conditions-generales-programme-de-fidelite" class="footer__legal-link link-reversed link-tap-area">Conditions générales - Programme de fidélité</a></li></ul></div></div> 3186</div> 3187 3188</footer> 3189<!-- END sections: footer-group --><x-toast class="toast"> 3190 3191 </x-toast> 3192 3193
3193<script> 3194 if (window) {const urlParams = new URLSearchParams(window?.location?.search); 3195 const sales_token = urlParams.get('ts'); 3196 if (sales_token) {window.localStorage.setItem('kolsquare', JSON.stringify({ sales_token }));}} 3197 </script>
3197 3198
3198<script src="https://cdn.shopify.com/storefront/standard-actions.js" type="module" data-source-attribution="shopify.standard_actions"></script>
3198 3199</body> 3200</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.