1<!doctype html> 2 3<html 4 lang="fr" 5 data-nosto-market="fr" 6 dir="ltr" 7> 8 <head> 9
9<script>const observerCFH=new MutationObserver(e=>{e.forEach(({addedNodes:e})=>{e.forEach(e=>{if(e.nodeType===Node.ELEMENT_NODE&&"SCRIPT"===e.tagName){let{innerHTML:t,className:a,src:n}=e;t.includes("asyncLoad")&&(e.innerHTML=t.replace("if(window.attachEvent)","document.addEventListener('asyncLazyLoad', event => { asyncLoad(); });if(window.attachEvent)").replaceAll(", asyncLoad",", () => {}")),t.includes("PreviewBarInjector")&&(e.innerHTML=t.replace("DOMContentLoaded","asyncLazyLoad")),"analytics"===a&&(e.type="text/lazyload");(n.includes("assets/storefront/features")||n.includes("assets/shopify_pay")||n.includes("connect.facebook.net"))&&(e.setAttribute("data-src",n),e.removeAttribute("src"))}})})});observerCFH.observe(document.documentElement,{childList:!0,subtree:!0});</script>
9 10 11 12 13 14 15 <meta charset="utf-8"> 16 <meta 17 name="viewport" 18 content="width=device-width, initial-scale=1.0, height=device-height, minimum-scale=1.0, maximum-scale=5.0" 19 > 20 21 <title> 22 Calendrier de l'Avent Thé 2026 - Bio 23 </title><meta 24 name="description" 25 content="Le Cabinet de voyance - Calendrier de l'Avent Kusmi Tea : 24 surprises bio incluant thés, infusions et cadeaux exclusifs pour un Noël enchanté." 26 ><link rel="canonical" href="https://www.kusmitea.com/products/calendrier-de-lavent"><link rel="shortcut icon" href="//www.kusmitea.com/cdn/shop/files/favicon.webp?v=1761125267&width=96"> 27 <link rel="apple-touch-icon" href="//www.kusmitea.com/cdn/shop/files/favicon.webp?v=1761125267&width=180"><link rel="preload" href="//www.kusmitea.com/cdn/fonts/barlow/barlow_n5.a193a1990790eba0cc5cca569d23799830e90f07.woff2" as="font" type="font/woff2" crossorigin><link href="//www.kusmitea.com/cdn/shop/files/Sophillia-regular.woff2?v=8865248068167224762" as="font" type="font/woff2" crossorigin="true" rel="preload"> 28<link rel="preload" href="//www.kusmitea.com/cdn/fonts/barlow/barlow_n5.a193a1990790eba0cc5cca569d23799830e90f07.woff2" as="font" type="font/woff2" crossorigin><meta property="og:type" content="product"> 29 <meta property="og:title" content="Calendrier de l'Avent"> 30 <meta property="product:price:amount" content="38,90"> 31 <meta property="product:price:currency" content="EUR"> 32 <meta property="product:availability" content="in stock"><meta property="og:image" content="http://www.kusmitea.com/cdn/shop/files/69ccaa76e308d3684f9a42cf6429ef819d9eca4d_ADVENTCAL26BIO_packshot_b2cweb.png?v=1785157587&width=2048"> 33 <meta property="og:image:secure_url" content="https://www.kusmitea.com/cdn/shop/files/69ccaa76e308d3684f9a42cf6429ef819d9eca4d_ADVENTCAL26BIO_packshot_b2cweb.png?v=1785157587&width=2048"> 34 <meta property="og:image:width" content="1800"> 35 <meta property="og:image:height" content="1800"><meta property="og:description" content="Le Cabinet de voyance - Calendrier de l'Avent Kusmi Tea : 24 surprises bio incluant thés, infusions et cadeaux exclusifs pour un Noël enchanté."><meta property="og:url" content="https://www.kusmitea.com/products/calendrier-de-lavent"> 36<meta property="og:site_name" content="Kusmi Tea"><meta name="twitter:card" content="summary"><meta name="twitter:title" content="Calendrier de l'Avent"> 37 <meta name="twitter:description" content="Le Calendrier de l'Avent Kusmi Tea édition 2026 vous invite à patienter jusqu'à Noël avec 24 surprises gourmandes et enchanteresses ! Poussez les portes du Cabinet de Voyance Kusmi Tea et laissez-vous transporter par ce calendrier imaginé tel un oracle, où chacune des 24 cases révèle un nouveau présage.Une sélection de 20 sachets de thés noirs, verts et blancs bio, dâinfusions sans théine et de recettes bien-être, mais également des cadeaux exclusifs de Noël⦠Deux miniatures en édition limitée, un accessoire et une savoureuse spécialité de thé à tartiner viennent compléter ce précieux assortiment.Présenté dans un coffret illustré en édition limitée, ce Calendrier de l'Avent célèbre l'univers du Cabinet de Voyance à travers un décor raffiné aux détails dorés et aux motifs mystiques. Un bel objet à exposer tout au long de lâannée chez soi en découvrant une multitude de"><meta name="twitter:image" content="https://www.kusmitea.com/cdn/shop/files/69ccaa76e308d3684f9a42cf6429ef819d9eca4d_ADVENTCAL26BIO_packshot_b2cweb.png?crop=center&height=1200&v=1785157587&width=1200"> 38 <meta name="twitter:image:alt" content="">
38<script type="application/ld+json">{"@context":"http:\/\/schema.org\/","@id":"\/products\/calendrier-de-lavent#product","@type":"Product","brand":{"@type":"Brand","name":"Kusmi Tea"},"category":"Thé et infusions","description":"Le Calendrier de l'Avent Kusmi Tea édition 2026 vous invite à patienter jusqu'à Noël avec 24 surprises gourmandes et enchanteresses ! Poussez les portes du Cabinet de Voyance Kusmi Tea et laissez-vous transporter par ce calendrier imaginé tel un oracle, où chacune des 24 cases révèle un nouveau présage.Une sélection de 20 sachets de thés noirs, verts et blancs bio, dâinfusions sans théine et de recettes bien-être, mais également des cadeaux exclusifs de Noël⦠Deux miniatures en édition limitée, un accessoire et une savoureuse spécialité de thé à tartiner viennent compléter ce précieux assortiment.Présenté dans un coffret illustré en édition limitée, ce Calendrier de l'Avent célèbre l'univers du Cabinet de Voyance à travers un décor raffiné aux détail
38s dorés et aux motifs mystiques. Un bel objet à exposer tout au long de lâannée chez soi en découvrant une multitude de mélanges et de douceurs !Contenu du Calendrier de l'Avent:\n\nThés noirs bio (sachets) : Tsarevna, Anastasia, Prince Vladimir, St-Pétersbourg, Sweet Love, Thé du matin n°24\n\nThés verts bio (sachets) : Label Impérial, Vert Gingembre-Citron, Thé Vert à la Menthe, Rituel Défenses Immunitaires, Rituel Ãnergie\n\nThés blancs bio (sachets) : Tropical White, White Anastasia\n\nInfusions bio sans théine : AquaRosa, AquaSummer, Feel Zen, Happy Mind, Verveine Menthe, Rooibos Vanille, Rituel Sommeil\n\n2 miniatures de Noël : Le Dessert (16 g) et Glögg (25 g)\n1 infuseur étoile\n\n1 spécialité de thé à tartiner infusée au thé Le Dessert\n","gtin":"3585810120638","image":"https:\/\/www.kusmitea.com\/cdn\/shop\/files\/69ccaa76e308d3684f9a42cf6429ef819d9eca4d_ADVENTCAL26BIO_packshot_b2cweb.png?v=1785157587\u0026width=1920","name":"Calendrier de l'Avent","offers":{"@id":"\/products\/calendrier-de-lavent?variant=54133287780695#offer","@type":"Offer","availability":"http:\/\/schema.org\/InStock","price":"38.90","priceCurrency":"EUR","url":"https:\/\/www.kusmitea.com\/products\/calendrier-de-lavent?variant=54133287780695"},"sku":"21356A2500","url":"https:\/\/www.kusmitea.com\/products\/calendrier-de-lavent"}</script>
38<script type="application/ld+json"> 39 { 40 "@context": "https://schema.org", 41 "@type": "BreadcrumbList", 42 "itemListElement": [{ 43 "@type": "ListItem", 44 "position": 1, 45 "name": "Accueil", 46 "item": "https://www.kusmitea.com" 47 },{ 48 "@type": "ListItem", 49 "position": 2, 50 "name": "Calendrier de l'Avent", 51 "item": "https://www.kusmitea.com/products/calendrier-de-lavent" 52 }] 53 } 54</script>
54<style> 55 @font-face { 56 font-family: 'Sophillia'; 57 font-weight: 400; 58 font-style: normal; 59 font-display: swap; 60 src: url("//www.kusmitea.com/cdn/shop/files/Sophillia-regular.woff2?v=8865248068167224762") format("woff2"); 61 }@font-face { 62 font-family: Inter; 63 font-weight: 500; 64 font-style: normal; 65 font-display: swap; 66 src: url("//www.kusmitea.com/cdn/fonts/inter/inter_n5.d7101d5e168594dd06f56f290dd759fba5431d97.woff2") format("woff2"), 67 url("//www.kusmitea.com/cdn/fonts/inter/inter_n5.5332a76bbd27da00474c136abb1ca3cbbf259068.woff") format("woff"); 68} 69@font-face { 70 font-family: Inter; 71 font-weight: 500; 72 font-style: italic; 73 font-display: swap; 74 src: url("//www.kusmitea.com/cdn/fonts/inter/inter_i5.4474f48e6ab2b1e01aa2b6d942dd27fa24f2d99f.woff2") format("woff2"), 75 url("//www.kusmitea.com/cdn/fonts/inter/inter_i5.493dbd6ee8e49f4ad722ebb68d92f201af2c2f56.woff") format("woff"); 76} 77@font-face { 78 font-family: Barlow; 79 font-weight: 500; 80 font-style: normal; 81 font-display: swap; 82 src: url("//www.kusmitea.com/cdn/fonts/barlow/barlow_n5.a193a1990790eba0cc5cca569d23799830e90f07.woff2") format("woff2"), 83 url("//www.kusmitea.com/cdn/fonts/barlow/barlow_n5.ae31c82169b1dc0715609b8cc6a610b917808358.woff") format("woff"); 84} 85@font-face { 86 font-family: Barlow; 87 font-weight: 500; 88 font-style: italic; 89 font-display: swap; 90 src: url("//www.kusmitea.com/cdn/fonts/barlow/barlow_i5.714d58286997b65cd479af615cfa9bb0a117a573.woff2") format("woff2"), 91 url("//www.kusmitea.com/cdn/fonts/barlow/barlow_i5.0120f77e6447d3b5df4bbec8ad8c2d029d87fb21.woff") format("woff"); 92} 93@font-face { 94 font-family: Barlow; 95 font-weight: 600; 96 font-style: normal; 97 font-display: swap; 98 src: url("//www.kusmitea.com/cdn/fonts/barlow/barlow_n6.329f582a81f63f125e63c20a5a80ae9477df68e1.woff2") format("woff2"), 99 url("//www.kusmitea.com/cdn/fonts/barlow/barlow_n6.0163402e36247bcb8b02716880d0b39568412e9e.woff") format("woff"); 100} 101@font-face { 102 font-family: Barlow; 103 font-weight: 400; 104 font-style: italic; 105 font-display: swap; 106 src: url("//www.kusmitea.com/cdn/fonts/barlow/barlow_i4.8c59b6445f83f078b3520bad98b24d859431b377.woff2") format("woff2"), 107 url("//www.kusmitea.com/cdn/fonts/barlow/barlow_i4.bf7e6d69237bd02188410034976892368fd014c0.woff") format("woff"); 108} 109@font-face { 110 font-family: Barlow; 111 font-weight: 500; 112 font-style: normal; 113 font-display: swap; 114 src: url("//www.kusmitea.com/cdn/fonts/barlow/barlow_n5.a193a1990790eba0cc5cca569d23799830e90f07.woff2") format("woff2"), 115 url("//www.kusmitea.com/cdn/fonts/barlow/barlow_n5.ae31c82169b1dc0715609b8cc6a610b917808358.woff") format("woff"); 116} 117@font-face { 118 font-family: Barlow; 119 font-weight: 500; 120 font-style: italic; 121 font-display: swap; 122 src: url("//www.kusmitea.com/cdn/fonts/barlow/barlow_i5.714d58286997b65cd479af615cfa9bb0a117a573.woff2") format("woff2"), 123 url("//www.kusmitea.com/cdn/fonts/barlow/barlow_i5.0120f77e6447d3b5df4bbec8ad8c2d029d87fb21.woff") format("woff"); 124} 125@font-face { 126 font-family: Barlow; 127 font-weight: 500; 128 font-style: normal; 129 font-display: swap; 130 src: url("//www.kusmitea.com/cdn/fonts/barlow/barlow_n5.a193a1990790eba0cc5cca569d23799830e90f07.woff2") format("woff2"), 131 url("//www.kusmitea.com/cdn/fonts/barlow/barlow_n5.ae31c82169b1dc0715609b8cc6a610b917808358.woff") format("woff"); 132} 133@font-face { 134 font-family: Barlow; 135 font-weight: 600; 136 font-style: normal; 137 font-display: swap; 138 src: url("//www.kusmitea.com/cdn/fonts/barlow/barlow_n6.329f582a81f63f125e63c20a5a80ae9477df68e1.woff2") format("woff2"), 139 url("//www.kusmitea.com/cdn/fonts/barlow/barlow_n6.0163402e36247bcb8b02716880d0b39568412e9e.woff") format("woff"); 140} 141@font-face { 142 font-family: Barlow; 143 font-weight: 600; 144 font-style: italic; 145 font-display: swap; 146 src: url("//www.kusmitea.com/cdn/fonts/barlow/barlow_i6.5a22bd20fb27bad4d7674cc6e666fb9c77d813bb.woff2") format("woff2"), 147 url("//www.kusmitea.com/cdn/fonts/barlow/barlow_i6.1c8787fcb59f3add01a87f21b38c7ef797e3b3a1.woff") format("woff"); 148} 149:root { 150 /* Colors */ 151 --color-black: #303030; 152 --color-white: #FBFBF6; 153 154 /* Container */ 155 --container-max-width: 100%; 156 --container-gutter: 1.25rem; 157 158 /* Spacing */ 159 --section-vertical-spacing: 2.5rem; 160 --section-stack-row-gap: 2rem; 161 162 /* Form settings */ 163 --form-gap: 1rem; /* Gap between fieldset and submit button */ 164 --fieldset-gap: 0.5rem; /* Gap between each form input within a fieldset */ 165 --form-control-gap: 0.5rem; /* Gap between input and label (ignored for floating label) */ 166 --checkbox-control-gap: 0.75rem; /* Horizontal gap between checkbox and its associated label */ 167 --input-padding-block: 0.65rem; /* Vertical padding for input, textarea and native select */ 168 --input-padding-inline: 1rem; /* Horizontal padding for input, textarea and native select */ 169 --checkbox-size: 0.875rem; /* Size (width and height) for checkbox */ 170 171 /* Product listing gaps */ 172 --product-list-column-gap: 1.5rem; 173 --product-list-padding-inline: 1.25rem; 174 @media screen and (min-width: 700px) { 175 --product-list-padding-inline: 1.75rem; 176 }--product-list-row-gap: 2.25rem;/* Other sizes */ 177 --header-group-height: calc(var(--announcement-bar-height, 0px) + var(--countdown-condensed-height, 0px) + var(--header-height, 0px)); 178 --sticky-area-height: calc(var(--announcement-bar-is-sticky, 0) * var(--announcement-bar-height, 0px) + var(--header-is-sticky, 0) * var(--header-height, 0px)); 179 --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)); 180 181 /* RTL support */ 182 --transform-logical-flip: 1; 183 --transform-origin-start: left;
184 --transform-origin-end: right; 185 186 /** 187 * --------------------------------------------------------------------- 188 * TYPOGRAPHY 189 * --------------------------------------------------------------------- 190 */ 191 192 /* Font properties */ 193 --subheading-font-family: Inter, sans-serif; 194 --subheading-font-weight: 500; 195 --subheading-font-style: normal; 196 --subheading-font-size: 0.8125rem; 197 --subheading-text-transform: none; 198 --subheading-letter-spacing: 0.0em; 199 --heading-font-family: Barlow, sans-serif; 200 --heading-font-weight: 500; 201 --heading-font-style: normal; 202 --heading-text-transform: none; 203 --heading-letter-spacing: 0.0em; 204 --heading-line-height: 1; 205 --h1-font-family: 'Sophillia', sans-serif; 206 --heading-italic-font-family: Barlow, sans-serif; 207 --heading-italic-font-weight: 400; 208 --heading-italic-font-size-multiplier: 0%; 209 --text-font-family: Barlow, sans-serif; 210 --text-font-weight: 500; 211 --text-font-style: normal; 212 --text-transform: normal; 213 --text-letter-spacing: 0.0em; 214 --text-line-height: 1.4; 215 --text-font-medium-weight: 500; 216 --text-font-bold-weight: 600; 217 --button-font: var(--subheading-font-style) var(--subheading-font-weight) var(--button-font-size) / normal var(--subheading-font-family); 218 --button-text-transform: uppercase; 219 --button-letter-spacing: 0.0em; 220 221 /* Font sizes */--text-heading-size-factor: 0.5; 222 --text-display-xl: max(0.75rem, clamp(3.5rem, 1.9223rem + 6.7314vw, 10rem) * var(--text-heading-size-factor)); 223 --text-display-l: max(0.75rem, clamp(3.375rem, 2.1311rem + 5.3074vw, 8.5rem) * var(--text-heading-size-factor)); 224 --text-display-m: max(0.75rem, clamp(3.25rem, 2.3701rem + 3.7540vw, 6.875rem) * var(--text-heading-size-factor)); 225 --text-h1: max(0.75rem, clamp(3rem, 2.4539rem + 2.3301vw, 5.25rem) * var(--text-heading-size-factor)); 226 --text-h1-compact: max(0.75rem, clamp(2.75rem, 2.3556rem + 1.6828vw, 4.375rem) * var(--text-heading-size-factor)); 227 --text-h2: max(0.75rem, clamp(2.5rem, 2.2573rem + 1.0356vw, 3.5rem) * var(--text-heading-size-factor)); 228 --text-h3: max(0.75rem, clamp(2.25rem, 2.1893rem + 0.2589vw, 2.5rem) * var(--text-heading-size-factor)); 229 --text-h4: max(0.75rem, clamp(2rem, 2rem, 2rem) * var(--text-heading-size-factor)); 230 --text-h5: 14px; 231 --text-h6: 12px; 232 --text-h7: 10px; 233 --text-xs: 0.75rem; 234 --text-sm: 0.75rem; 235 --text-base: 0.875rem; 236 --text-lg: 1.0rem; 237 --button-font-size: 0.875rem; 238 239 /* Rounded variables (used for border radius) */ 240 --rounded-full: 9999px; 241 --subheading-border-radius: 0.0rem; 242 --button-border-radius: 1.875rem; 243 --input-border-radius: 1.875rem; 244 245 /* Product card variables */ 246 --product-card-row-count: 2; 247 --product-card-image-background: #F2F0E8; 248 249 /** 250 * --------------------------------------------------------------------- 251 * OTHER 252 * --------------------------------------------------------------------- 253 */ 254 255 --icon-stroke-width: 1px; 256 --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>'); 257 } 258 259 [dir="rtl"]:root { 260 /* RTL support */ 261 --transform-logical-flip: -1; 262 --transform-origin-start: right; 263 --transform-origin-end: left; 264 } 265 266 @media screen and (min-width: 700px) { 267 :root { 268 --text-xs: 0.75rem; 269 --text-sm: 0.875rem; 270 --text-base: 1.0rem; 271 --text-lg: 1.0rem; 272 --subheading-font-size: 0.875rem; 273 274 /* Spacing */ 275 --container-gutter: 2rem; 276 277 /* Form settings */ 278 --form-gap: 1.25rem; /* Gap between fieldset and submit button */ 279 --fieldset-gap: 0.75rem; /* Gap between each form input within a fieldset */ 280 --input-padding-block: 0.75rem; /* Vertical padding for input, textarea and native select */ 281 282 /* Font sizes */ 283 --button-font-size: 0.875rem; 284
285 /* Product listing gaps */--product-list-column-gap: 3rem; 286 --product-list-row-gap: 4rem;} 287 } 288 289 @media screen and (min-width: 1000px) { 290 :root { 291 /* Spacing settings */ 292 --section-vertical-spacing: 3.5rem; 293 --section-stack-row-gap: 3rem; 294 } 295 } 296 297 @media screen and (min-width: 1399px) { 298 :root { 299 /* Spacing settings */ 300 --section-vertical-spacing: 4.5rem; 301 --container-gutter: 3rem; 302 } 303 } 304 305 /** 306 * --------------------------------------------------------------------- 307 * COLORS 308 * --------------------------------------------------------------------- 309 */ 310 311 :root {--page-overlay: 0 0 0 / 0.4; 312 --dialog-backdrop-blur: 12px; 313 314 /* Status colors */ 315 --success-background: 227 240 232; 316 --success-text: 22 131 66; 317 --warning-background: 253 241 224; 318 --warning-text: 237 138 0; 319 --error-background: 251 224 224; 320 --error-text: 224 0 0; 321 322 /* Product colors */ 323 --on-sale-text: 209 58 81; 324 --on-sale-badge-background: 209 58 81; 325 --on-sale-badge-text: 255 255 255; 326 --sold-out-badge-background: 48 48 48; 327 --sold-out-badge-text: 255 255 255; 328 --custom-badge-background: 251 251 246; 329 --custom-badge-text: 0 0 0; 330 --star-color: 48 48 48; 331 }.color-scheme--scheme-1 { 332 --accent: 48 48 48; 333 --background: 251 251 246; 334 --background-gradient: ; 335 --background-secondary: 255 255 255; 336 --has-transparent-background: 0; 337 --has-filled-background: 1; 338 --text-color: 48 48 48;--border-color: 231 231 226;/* Subheading colors */--subheading-background: 0 0 0 / 0.0; 339 --subheading-border: none; 340 --subheading-text-color: 48 48 48; 341 --subheading-has-padding: 0; 342 343 /* Heading highlight */ 344 --heading-highlight-accent-color: 48 48 48; 345 --heading-highlight-text-color: 251 251 246; 346 347 /* Button colors */ 348 --button-background-primary: 48 48 48; 349 --button-text-primary: 251 251 246; 350 351 /* Form inputs */ 352 --input-background: 251 251 246; 353 --input-text-color: 48 48 48; 354 --input-text-transform: none; 355 }.shopify-section:has(> .color-scheme--scheme-1) + .shopify-section:has(> .color-scheme--scheme-1) { 356 --section-has-same-background-as-previous-section: 1; 357 }.shopify-section:has(> .color-scheme--scheme-1) + .shopify-section:has(> .color-scheme--scheme-75062a04-c73a-4d28-98a9-cdc603cf78a8) { 358 --section-has-same-background-as-previous-section: 1; 359 }.shopify-section:has(> .color-scheme--scheme-1) + .shopify-section:has(> .color-scheme--scheme-69a81bc1-53a8-473d-801a-2a5e07071e8f) { 360 --section-has-same-background-as-previous-section: 1; 361 }.color-scheme--scheme-2 { 362 --accent: 48 48 48; 363 --background: 242 240 232; 364 --background-gradient: ; 365 --background-secondary: 255 255 255; 366 --has-transparent-background: 0; 367 --has-filled-background: 1; 368 --text-color: 48 48 48;--border-color: 223 221 214;/* Subheading colors */--subheading-background: 0 0 0 / 0.0; 369 --subheading-border: none; 370 --subheading-text-color: 48 48 48; 371 --subheading-has-padding: 0; 372 373 /* Heading highlight */ 374 --heading-highlight-accent-color: 48 48 48; 375 --heading-highlight-text-color: 251 251 246; 376 377 /* Button colors */ 378 --button-background-primary: 48 48 48; 379 --button-text-primary: 251 251 246; 380 381 /* Form inputs */ 382 --input-background: 251 251 246; 383 --input-text-color: 48 48 48; 384 --input-text-transform: none; 385 }.shopify-section:has(> .color-scheme--scheme-2) + .shopify-section:has(> .color-scheme--scheme-2) { 386 --section-has-same-background-as-previous-section: 1; 387 }.color-scheme--scheme-3 { 388 --accent: 251 251 246; 389 --background: 0 0 0 / 0; 390 --background-gradient: ; 391 --background-secondary: 0 0 0; 392 --has-transparent-background: 1; 393 --has-filled-background: 0; 394 --text-color: 251 251 246;--border-color: 251 251 246 / 0.6;/* Subheading colors */--subheading-background: 0 0 0 / 0.0; 395 --subheading-border: none; 396 --subheading-text-color: 251 251 246; 397 --subheading-has-padding: 0; 398 399 /* Heading highlight */ 400 --heading-highlight-accent-color: 48 48 48; 401 --heading-highlight-text-color: 251 251 246; 402 403 /* Button colors */ 404 --button-background-primary: 251 251 246; 405 --button-text-primary: 48 48 48; 406 407 /* Form inputs */ 408 --input-background: 251 251 246; 409 --input-text-color: 48 48 48; 410 --input-text-transform: none; 411 }.shopify-section:has(> .color-scheme--scheme-3) + .shopify-section:has(> .color-scheme--scheme-3) { 412 --section-has-same-background-as-previous-section: 1; 413 }.color-scheme--scheme-4 { 414 --accent: 251 251 246; 415 --background: 147 23 59; 416 --background-gradient: ; 417 --background-secondary: 0 0 0; 418 --has-transparent-background: 0; 419 --has-filled-background: 1; 420 --text-color: 251 251 246;--border-color: 157 46 78;
420/* Subheading colors */--subheading-background: 0 0 0 / 0.0; 421 --subheading-border: none; 422 --subheading-text-color: 251 251 246; 423 --subheading-has-padding: 0; 424 425 /* Heading highlight */ 426 --heading-highlight-accent-color: 251 251 246; 427 --heading-highlight-text-color: 48 48 48; 428 429 /* Button colors */ 430 --button-background-primary: 251 251 246; 431 --button-text-primary: 48 48 48; 432 433 /* Form inputs */ 434 --input-background: 35 15 15; 435 --input-text-color: 255 255 255; 436 --input-text-transform: none; 437 }.shopify-section:has(> .color-scheme--scheme-4) + .shopify-section:has(> .color-scheme--scheme-4) { 438 --section-has-same-background-as-previous-section: 1; 439 }.color-scheme--scheme-5 { 440 --accent: 48 48 48; 441 --background: 239 233 217; 442 --background-gradient: ; 443 --background-secondary: 0 0 0; 444 --has-transparent-background: 0; 445 --has-filled-background: 1; 446 --text-color: 48 48 48;--border-color: 220 215 200;/* Subheading colors */--subheading-background: 0 0 0 / 0.0; 447 --subheading-border: none; 448 --subheading-text-color: 48 48 48; 449 --subheading-has-padding: 0; 450 451 /* Heading highlight */ 452 --heading-highlight-accent-color: 48 48 48; 453 --heading-highlight-text-color: 251 251 246; 454 455 /* Button colors */ 456 --button-background-primary: 48 48 48; 457 --button-text-primary: 251 251 246; 458 459 /* Form inputs */ 460 --input-background: 251 251 246; 461 --input-text-color: 48 48 48; 462 --input-text-transform: none; 463 }.shopify-section:has(> .color-scheme--scheme-5) + .shopify-section:has(> .color-scheme--scheme-5) { 464 --section-has-same-background-as-previous-section: 1; 465 }.color-scheme--scheme-6 { 466 --accent: 255 255 255; 467 --background: 191 217 210; 468 --background-gradient: ; 469 --background-secondary: 255 255 255; 470 --has-transparent-background: 0; 471 --has-filled-background: 1; 472 --text-color: 48 48 48;--border-color: 177 200 194;/* Subheading colors */--subheading-background: 0 0 0 / 0.0; 473 --subheading-border: none; 474 --subheading-text-color: 255 255 255; 475 --subheading-has-padding: 0; 476 477 /* Heading highlight */ 478 --heading-highlight-accent-color: 48 48 48; 479 --heading-highlight-text-color: 191 217 210; 480 481 /* Button colors */ 482 --button-background-primary: 255 255 255; 483 --button-text-primary: 48 48 48; 484 485 /* Form inputs */ 486 --input-background: 255 255 255; 487 --input-text-color: 48 48 48; 488 --input-text-transform: none; 489 }.shopify-section:has(> .color-scheme--scheme-6) + .shopify-section:has(> .color-scheme--scheme-6) { 490 --section-has-same-background-as-previous-section: 1; 491 }.color-scheme--scheme-7 { 492 --accent: 255 255 255; 493 --background: 1 106 99; 494 --background-gradient: ; 495 --background-secondary: 0 0 0; 496 --has-transparent-background: 0; 497 --has-filled-background: 1; 498 --text-color: 255 255 255;--border-color: 26 121 115;/* Subheading colors */--subheading-background: 0 0 0 / 0.0; 499 --subheading-border: none; 500 --subheading-text-color: 255 255 255; 501 --subheading-has-padding: 0; 502 503 /* Heading highlight */ 504 --heading-highlight-accent-color: 255 255 255; 505 --heading-highlight-text-color: 255 255 255; 506 507 /* Button colors */ 508 --button-background-primary: 255 255 255; 509 --button-text-primary: 48 48 48; 510 511 /* Form inputs */ 512 --input-background: 0 0 0; 513 --input-text-color: 255 255 255; 514 --input-text-transform: none; 515 }.shopify-section:has(> .color-scheme--scheme-7) + .shopify-section:has(> .color-scheme--scheme-7) { 516 --section-has-same-background-as-previous-section: 1; 517 }.color-scheme--scheme-75062a04-c73a-4d28-98a9-cdc603cf78a8 { 518 --accent: 251 251 246; 519 --background: 251 251 246; 520 --background-gradient: ; 521 --background-secondary: 239 233 217; 522 --has-transparent-background: 0; 523 --has-filled-background: 1; 524 --text-color: 251 251 246;--border-color: 251 251 246;/* Subheading colors */--subheading-background: 0 0 0 / 0.0; 525 --subheading-border: none; 526 --subheading-text-color: 48 48 48; 527 --subheading-has-padding: 0; 528 529 /* Heading highlight */ 530 --heading-highlight-accent-color: 48 48 48; 531 --heading-highlight-text-color: 251 251 246; 532 533 /* Button colors */ 534 --button-background-primary: 251 251 246; 535 --button-text-primary: 48 48 48; 536 537 /* Form inputs */ 538 --input-background: 251 251 246; 539 --input-text-color: 48 48 48; 540 --input-text-transform: none; 541 }.shopify-section:has(> .color-scheme--scheme-75062a04-c73a-4d28-98a9-cdc603cf78a8) + .shopify-section:has(> .color-scheme--scheme-1) { 542 --section-has-same-background-as-previous-section: 1; 543 }.shopify-section:has(> .color-scheme--scheme-75062a04-c73a-4d28-98a9-cdc603cf78a8) + .shopify-section:has(> .color-scheme--scheme-75062a04-c73a-4d28-98a9-cdc603cf78a8) { 544 --section-has-same-background-as-previous-section: 1; 545 }.shopify-section:has(> .color-scheme--scheme-75062a04-c73a-4d28-98a9-cdc603cf78a8) + .shopify-section:has(> .color-scheme--scheme-69a81bc1-53a8-473d-801a-2a5e07071e8f) { 546 --section-has-same-background-as-previous-section: 1; 547 }.color-scheme--scheme-d1a7c520-4b04-40b9-bc6a-0b947dfe40e5 { 548 --accent: 48 48 48; 549 --background: 255 255 255; 550 --background-gradient: ; 551 --background-secondary: 255 255 255; 552 --has-transparent-background: 0; 553 --has-filled-background: 1; 554 --text-color: 48 48 48;--border-color: 234 234 234;/* Subheading colors */--subheading-background: 0 0 0 / 0.0; 555 --subheading-border: none; 556 --subheading-text-color: 48 48 48; 557 --subheading-has-padding: 0; 558 559 /* Heading highlight */ 560 --heading-highlight-accent-color: 48 48 48; 561 --heading-highlight-text-color: 255 255 255; 562 563 /* Button colors */ 564 --button-background-primary: 48 48 48; 565 --button-text-primary: 255 255 255; 566 567 /* Form inputs */ 568 --input-background: 255 255 255; 569 --input-text-color: 48 48 48; 570 --input-text-transform: none; 571 }.shopify-section:has(> .color-scheme--scheme-d1a7c520-4b04-40b9-bc6a-0b947dfe40e5) + .shopify-section:has(> .color-scheme--scheme-d1a7c520-4b04-40b9-bc6a-0b947dfe40e5) { 572 --section-has-same-background-as-previous-section: 1; 573 }.color-scheme--scheme-53458236-a512-4f15-9850-b2877e55d92c { 574 --accent: 166 127 65; 575 --background: 166 127 65; 576 --background-gradient: ; 577 --background-secondary: 255 255 255; 578 --has-transparent-background: 0; 579 --has-filled-background: 1; 580 --text-color: 255 255 255;--border-color: 175 140 84;
580/* Subheading colors */--subheading-background: 0 0 0 / 0.0; 581 --subheading-border: none; 582 --subheading-text-color: 166 127 65; 583 --subheading-has-padding: 0; 584 585 /* Heading highlight */ 586 --heading-highlight-accent-color: 166 127 65; 587 --heading-highlight-text-color: 255 255 255; 588 589 /* Button colors */ 590 --button-background-primary: 166 127 65; 591 --button-text-primary: 255 255 255; 592 593 /* Form inputs */ 594 --input-background: 251 251 246; 595 --input-text-color: 166 127 65; 596 --input-text-transform: none; 597 }.shopify-section:has(> .color-scheme--scheme-53458236-a512-4f15-9850-b2877e55d92c) + .shopify-section:has(> .color-scheme--scheme-53458236-a512-4f15-9850-b2877e55d92c) { 598 --section-has-same-background-as-previous-section: 1; 599 }.color-scheme--scheme-69a81bc1-53a8-473d-801a-2a5e07071e8f { 600 --accent: 48 48 48; 601 --background: 251 251 246; 602 --background-gradient: ; 603 --background-secondary: 239 233 217; 604 --has-transparent-background: 0; 605 --has-filled-background: 1; 606 --text-color: 48 48 48;--border-color: 231 231 226;/* Subheading colors */--subheading-background: 0 0 0 / 0.0; 607 --subheading-border: none; 608 --subheading-text-color: 48 48 48; 609 --subheading-has-padding: 0; 610 611 /* Heading highlight */ 612 --heading-highlight-accent-color: 48 48 48; 613 --heading-highlight-text-color: 251 251 246; 614 615 /* Button colors */ 616 --button-background-primary: 48 48 48; 617 --button-text-primary: 251 251 246; 618 619 /* Form inputs */ 620 --input-background: 251 251 246; 621 --input-text-color: 48 48 48; 622 --input-text-transform: none; 623 }.shopify-section:has(> .color-scheme--scheme-69a81bc1-53a8-473d-801a-2a5e07071e8f) + .shopify-section:has(> .color-scheme--scheme-1) { 624 --section-has-same-background-as-previous-section: 1; 625 }.shopify-section:has(> .color-scheme--scheme-69a81bc1-53a8-473d-801a-2a5e07071e8f) + .shopify-section:has(> .color-scheme--scheme-75062a04-c73a-4d28-98a9-cdc603cf78a8) { 626 --section-has-same-background-as-previous-section: 1; 627 }.shopify-section:has(> .color-scheme--scheme-69a81bc1-53a8-473d-801a-2a5e07071e8f) + .shopify-section:has(> .color-scheme--scheme-69a81bc1-53a8-473d-801a-2a5e07071e8f) { 628 --section-has-same-background-as-previous-section: 1; 629 }.color-scheme--scheme-391bae72-7553-4db9-ad4e-9b4487b55785 { 630 --accent: 48 48 48; 631 --background: 246 165 83; 632 --background-gradient: ; 633 --background-secondary: 255 255 255; 634 --has-transparent-background: 0; 635 --has-filled-background: 1; 636 --text-color: 48 48 48;--border-color: 226 153 80;/* Subheading colors */--subheading-background: 0 0 0 / 0.0; 637 --subheading-border: none; 638 --subheading-text-color: 48 48 48; 639 --subheading-has-padding: 0; 640 641 /* Heading highlight */ 642 --heading-highlight-accent-color: 48 48 48; 643 --heading-highlight-text-color: 251 251 246; 644 645 /* Button colors */ 646 --button-background-primary: 48 48 48; 647 --button-text-primary: 251 251 246; 648 649 /* Form inputs */ 650 --input-background: 251 251 246; 651 --input-text-color: 48 48 48; 652 --input-text-transform: none; 653 }.shopify-section:has(> .color-scheme--scheme-391bae72-7553-4db9-ad4e-9b4487b55785) + .shopify-section:has(> .color-scheme--scheme-391bae72-7553-4db9-ad4e-9b4487b55785) { 654 --section-has-same-background-as-previous-section: 1; 655 }.color-scheme--scheme-1e40bd8b-d2ba-4218-92d1-09d242fae5ee { 656 --accent: 48 48 48; 657 --background: 22 131 66; 658 --background-gradient: ; 659 --background-secondary: 255 255 255; 660 --has-transparent-background: 0; 661 --has-filled-background: 1; 662 --text-color: 48 48 48;--border-color: 25 123 64;/* Subheading colors */--subheading-background: 0 0 0 / 0.0; 663 --subheading-border: none; 664 --subheading-text-color: 48 48 48; 665 --subheading-has-padding: 0; 666 667 /* Heading highlight */ 668 --heading-highlight-accent-color: 48 48 48; 669 --heading-highlight-text-color: 251 251 246; 670 671 /* Button colors */ 672 --button-background-primary: 48 48 48; 673 --button-text-primary: 251 251 246; 674 675 /* Form inputs */ 676 --input-background: 251 251 246; 677 --input-text-color: 48 48 48; 678 --input-text-transform: none; 679 }.shopify-section:has(> .color-scheme--scheme-1e40bd8b-d2ba-4218-92d1-09d242fae5ee) + .shopify-section:has(> .color-scheme--scheme-1e40bd8b-d2ba-4218-92d1-09d242fae5ee) { 680 --section-has-same-background-as-previous-section: 1; 681 }</style> 682<style id="hide-apps-cls"> 683 @media screen and (max-width: 999px) { 684 .shopify-section--apps { 685 display: none !important; 686 } 687 } 688 </style> 689
689<script> 690 window.addEventListener('load', function () { 691 var s = document.getElementById('hide-apps-cls'); 692 if (s) s.remove(); 693 }); 694 </script>
694<script> 695 // This allows to expose several variables to the global scope, to be used in scripts 696 window.themeVariables = { 697 settings: { 698 pageType: "product", 699 moneyFormat: "{{amount_with_comma_separator}} â¬", 700 moneyWithCurrencyFormat: "â¬{{amount_with_comma_separator}} EUR", 701 currencyCodeEnabled: false, 702 cartType: "drawer", 703 showHeadingEffectAnimation: true, 704 staggerProducts: true 705 }, 706 707 strings: { 708 addedToCart: "{{product_title}} a été ajouté au panier", 709 closeGallery: "Fermer la galerie", 710 zoomGallery: "Zoomer sur l\u0026#39;image", 711 errorGallery: "L\u0026#39;image ne peut pas etre chargée", 712 shippingEstimatorNoResults: "Translation missing: fr.cart.shipping_estimator.no_results", 713 shippingEstimatorOneResult: "Translation missing: fr.cart.shipping_estimator.one_result", 714 shippingEstimatorMultipleResults: "Translation missing: fr.cart.shipping_estimator.multiple_results", 715 shippingEstimatorError: "Translation missing: fr.cart.shipping_estimator.error", 716 next: "Suivant", 717 previous: "Précédent" 718 }, 719 720 mediaQueries: { 721 'sm': 'screen and (min-width: 700px)', 722 'md': 'screen and (min-width: 1000px)', 723 'lg': 'screen and (min-width: 1150px)', 724 'xl': 'screen and (min-width: 1400px)', 725 '2xl': 'screen and (min-width: 1600px)', 726 'sm-max': 'screen and (max-width: 699px)', 727 'md-max': 'screen and (max-width: 999px)', 728 'lg-max': 'screen and (max-width: 1149px)', 729 'xl-max': 'screen and (max-width: 1399px)', 730 '2xl-max': 'screen and (max-width: 1599px)', 731 'motion-safe': '(prefers-reduced-motion: no-preference)', 732 'motion-reduce': '(prefers-reduced-motion: reduce)', 733 'supports-hover': 'screen and (pointer: fine)', 734 'supports-touch': 'screen and (pointer: coarse)' 735 } 736 };</script>
736<script> 737 window.gift_type = "Cadeau offert"; 738 window.sample_type = "Ãchantillon offert"; 739 </script>
739 740 741
741<script async crossorigin fetchpriority="high" src="/cdn/shopifycloud/importmap-polyfill/es-modules-shim.2.4.0.js"></script>
vendor: 1 bytes, line 741
741
742<script type="importmap">{ 743 "imports": { 744 "vendor": "//www.kusmitea.com/cdn/shop/t/4/assets/vendor.min.js?v=68813708458151729111761121399", 745 "theme": "//www.kusmitea.com/cdn/shop/t/4/assets/theme.js?v=52735390910520026341785772900", 746 "photoswipe": "//www.kusmitea.com/cdn/shop/t/4/assets/photoswipe.min.js?v=13374349288281597431761121396", 747 "date-holidays": "https://cdn.skypack.dev/date-holidays"} 748 } 749 </script>
749 750 751
751<script type="module" src="//www.kusmitea.com/cdn/shop/t/4/assets/vendor.min.js?v=68813708458151729111761121399"></script>
751 752
752<script type="module" src="//www.kusmitea.com/cdn/shop/t/4/assets/theme.js?v=52735390910520026341785772900"></script>
752 753
753<script type="module" src="//www.kusmitea.com/cdn/shop/t/4/assets/card-inline-variants.js?v=57505245591223388441786083609"></script>
753 754 <style> 755 body:not(.orbe-ready) #md-app-embed__modal, 756 body:not(.orbe-ready) #md-app-embed__footer-popup { 757 display: none !important; 758 } 759</style> 760
761<script type="text/javascript"> 762 (function () { 763 var TRIGGER_EVENTS = ['mousemove', 'touchstart']; 764 var triggered = false; 765 var callbacks = []; 766 767 function onFirstInteraction(cb) { 768 if (triggered) { 769 cb(); 770 return; 771 } 772 callbacks.push(cb); 773 } 774 775 function fire() { 776 if (triggered) return; 777 triggered = true; 778 TRIGGER_EVENTS.forEach(function (evt) { 779 window.removeEventListener(evt, fire, { capture: true }); 780 }); 781 var queue = callbacks.slice(); 782 callbacks.length = 0; 783 queue.forEach(function (cb) { 784 try { 785 cb(); 786 } catch (e) { 787 console.error('[defer-app-embeds]', e); 788 } 789 }); 790 } 791 792 TRIGGER_EVENTS.forEach(function (evt) { 793 window.addEventListener(evt, fire, { once: true, passive: true, capture: true }); 794 }); 795 796 onFirstInteraction(function () { 797 (function (e, i, o) { 798 var n = document.createElement('link'); 799 n.rel = 'preconnect'; 800 n.as = 'script'; 801 var t = document.createElement('link'); 802 t.rel = 'dns-prefetch'; 803 t.as = 'script'; 804 var r = document.createElement('script'); 805 r.id = 'spcloader'; 806 r.type = 'text/javascript'; 807 r['async'] = true; 808 r.charset = 'utf-8'; 809 window.didomiConfig = window.didomiConfig || {}; 810 window.didomiConfig.sdkPath = window.didomiConfig.sdkPath || o || 'https://sdk.privacy-center.org/'; 811 var d = window.didomiConfig.sdkPath; 812 var a = d + e + '/loader.js?target_type=notice&target=' + i; 813 if (window.didomiConfig && window.didomiConfig.user) { 814 var c = window.didomiConfig.user; 815 var s = c.country; 816 var f = c.region; 817 if (s) { 818 a = a + '&country=' + s; 819 if (f) a = a + '®ion=' + f; 820 } 821 } 822 n.href = d; 823 t.href = d; 824 r.src = a; 825 var m = document.getElementsByTagName('script')[0]; 826 m.parentNode.insertBefore(n, m); 827 m.parentNode.insertBefore(t, m); 828 m.parentNode.insertBefore(r, m); 829 })('fd103d83-ca90-42b7-b2d2-2fc1f3cbf4ff', 'MccinKBK'); 830 }); 831 832 onFirstInteraction(function () { 833 if (document.body) { 834 document.body.classList.add('orbe-ready'); 835 } else { 836 document.addEventListener('DOMContentLoaded', function () { 837 document.body.classList.add('orbe-ready'); 838 }); 839 } 840 }); 841 })(); 842</script>
842 843
844<script> 845 window.nostoEnabled = true; 846 </script>
846<script> 847 window.nostoSettings = { 848 variant_image_sachet: '//www.kusmitea.com/cdn/shop/files/Frame.svg?v=1761579116&width=80', 849 variant_image_boite: '//www.kusmitea.com/cdn/shop/files/boite.svg?v=1761579116&width=80', 850 variant_image_recharge: '//www.kusmitea.com/cdn/shop/files/icon-nature.svg?v=1761579116&width=80', 851 variant_image_coffret: '//www.kusmitea.com/cdn/shop/files/Group_58.svg?v=1769526709&width=80', 852 variant_image_miniature: '//www.kusmitea.com/cdn/shop/files/miniature_1.svg?v=1773332953&width=80', 853 variant_keywords_sachet: 'sachet, Musselin-Teebeutel, teebeutel, tea bags, bustine, Scatola da 20 bustine, bolsas, teabags', 854 variant_keywords_boite: 'boite, boîte, tin, metalldose, scatole, scatola, tea bags', 855 variant_keywords_recharge: 'recharge, vrac, loose leaf tea, tea sfuso, refill bag, bulk, loose tea', 856 variant_keywords_coffret: 'coffret, gifset, boxes, cofanetto,Geschenke, Geschenkset', 857 variant_keywords_miniature: 'miniature, miniatures, Miniaturboxen, Boîte 20 g, scatole in miniatura, miniature boxe, doos 20 gr', 858 }; 859 </script>
859 860
860<script src="//www.kusmitea.com/cdn/shop/t/4/assets/nosto-dynamic-card.js?v=91414683138508907461777293994" defer></script>
860 861
861<script src="//www.kusmitea.com/cdn/shop/t/4/assets/nosto-react.js?v=87550438049961767911774274305" defer></script>
861<script src="//www.kusmitea.com/cdn/shop/t/4/assets/pixel-analytics.js?v=130933023655279352481776858196" defer></script>
861 862 863
863<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
863<meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/94365778263/digital_wallets/dialog"> 864<meta id="in-context-paypal-metadata" data-shop-id="94365778263" data-venmo-supported="false" data-environment="production" data-locale="fr_FR" data-paypal-v4="true" data-currency="EUR"> 865<link rel="ucp" href="/.well-known/ucp" version="2026-08-25"><link rel="buy" href="/cart/54133287780695:1?ucp/version=2026-08-25&context/payment/0/handler=dev.shopify.shop_pay" payment="dev.shopify.shop_pay com.google.pay dev.shopify.card"><link rel="alternate" hreflang="x-default" href="https://www.kusmitea.com/products/calendrier-de-lavent"> 866<link rel="alternate" hreflang="fr" href="https://www.kusmitea.com/products/calendrier-de-lavent"> 867<link rel="alternate" hreflang="en" href="https://www.kusmitea.com/en/products/advent-calendar"> 868<link rel="alternate" hreflang="it" href="https://www.kusmitea.com/it/products/calendario-dellavvento"> 869<link rel="alternate" hreflang="es" href="https://www.kusmitea.com/es/products/calendario-de-adviento"> 870<link rel="alternate" hreflang="de" href="https://www.kusmitea.com/de/products/adventskalender"> 871<link rel="alternate" hreflang="nl" href="https://www.kusmitea.com/nl/products/adventskalender-bio"> 872<link rel="alternate" type="application/json+oembed" href="https://www.kusmitea.com/products/calendrier-de-lavent.oembed">
873<script async="async" src="/checkouts/internal/preloads.js?locale=fr-FR&configuration_id=8166048087&edited_at=1781106472"></script>
873 874<link rel="preconnect" href="https://shop.app" crossorigin="anonymous">
875<script async="async" src="https://shop.app/checkouts/internal/preloads.js?locale=fr-FR&configuration_id=8166048087&edited_at=1781106472&shop_id=94365778263" crossorigin="anonymous"></script>
vendor: 1 bytes, line 875
875
876<script id="apple-pay-shop-capabilities" type="application/json">{"shopId":94365778263,"countryCode":"FR","currencyCode":"EUR","merchantCapabilities":["supports3DS"],"merchantId":"gid:\/\/shopify\/Shop\/94365778263","merchantName":"Kusmi Tea","requiredBillingContactFields":["postalAddress","email","phone"],"requiredShippingContactFields":["postalAddress","email","phone"],"shippingType":"shipping","supportedNetworks":["visa","masterCard","amex","maestro"],"total":{"type":"pending","label":"Kusmi Tea","amount":"1.00"},"shopifyPaymentsEnabled":true,"supportsSubscriptions":true}</script>
vendor: 1 bytes, line 876
876
877<script id="shopify-features" type="application/json">{"accessToken":"e2c3fb66f9b6b18a1d3c4f611df22428","betas":["rich-media-storefront-analytics"],"domain":"www.kusmitea.com","predictiveSearch":true,"shopId":94365778263,"locale":"fr"}</script>
vendor: 1 bytes, line 877
877
878<script>var Shopify = Shopify || {}; 879Shopify.shop = "kusmi-tea-2025.myshopify.com"; 880Shopify.locale = "fr"; 881Shopify.currency = {"active":"EUR","rate":"1.0"}; 882Shopify.country = "FR"; 883Shopify.theme = {"name":"theme-kusmi-tea\/main","id":188897722711,"schema_name":"Axome - Kusmi Tea","schema_version":"1.0.0","theme_store_id":null,"role":"main"}; 884Shopify.theme.handle = "null"; 885Shopify.theme.style = {"id":null,"handle":null}; 886Shopify.cdnHost = "www.kusmitea.com/cdn"; 887Shopify.routes = Shopify.routes || {}; 888Shopify.routes.root = "/"; 889Shopify.shopJsCdnBaseUrl = "https://cdn.shopify.com/shopifycloud/shop-js"; 890Shopify.SignInWithShop = Shopify.SignInWithShop || {}; 891Shopify.SignInWithShop.User = Shopify.SignInWithShop.User || {}; 892Shopify.SignInWithShop.User.recognized = false;</script>
vendor: 1 bytes, line 892
892
893<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
vendor: 1 bytes, line 893
893
894<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 894
894
895<script> 896 window.ShopifyPay = window.ShopifyPay || {}; 897 window.ShopifyPay.apiHost = "shop.app\/pay"; 898 window.ShopifyPay.redirectState = null; 899</script>
vendor: 1 bytes, line 899
899
900<script> 901 window.Shopify = window.Shopify || {}; 902 window.Shopify.SignInWithShop = window.Shopify.SignInWithShop || {}; 903 window.Shopify.SignInWithShop.assetMetrics = { sampleRate: 0.25 }; 904 window.Shopify.SignInWithShop.eligible = true; 905</script>
vendor: 1 bytes, line 905
905
906<script id="shop-js-analytics" type="application/json">{"pageType":"product"}</script>
vendor: 1 bytes, line 906
906
907<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 907
907
908<script type="module"> 909 await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.fr.esm.js"); 910 911 window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true}); 912 913</script>
vendor: 1 bytes, line 913
913
914<script> 915 window.Shopify = window.Shopify || {}; 916 if (!window.Shopify.featureAssets) window.Shopify.featureAssets = {}; 917 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"]}; 918</script>
vendor: 1 bytes, line 918
918
919<script>(function() { 920 var isLoaded = false; 921 function asyncLoad() { 922 if (isLoaded) return; 923 isLoaded = true; 924 var urls = ["https:\/\/cdn.nfcube.com\/instafeed-4c050dc82e8dcd17b9d82e58e6838232.js?shop=kusmi-tea-2025.myshopify.com","https:\/\/connect.nosto.com\/script\/shopify\/market\/init.js?merchant=shopify-94365778263\u0026shop=kusmi-tea-2025.myshopify.com"]; 925 for (var i = 0; i < urls.length; i++) { 926 var s = document.createElement('script'); 927 s.type = 'text/javascript'; 928 s.async = true; 929 s.src = urls[i]; 930 var x = document.getElementsByTagName('script')[0]; 931 x.parentNode.insertBefore(s, x); 932 } 933 }; 934 if(window.attachEvent) { 935 window.attachEvent('onload', asyncLoad); 936 } else { 937 window.addEventListener('load', asyncLoad, false); 938 } 939})();</script>
vendor: 1 bytes, line 939
939
940<script id="__st">var __st={"a":94365778263,"offset":7200,"reqid":"a65b0f41-c84d-48b4-8fb5-8543f70eb113-1790854721","pageurl":"www.kusmitea.com\/products\/calendrier-de-lavent","u":"405ab33e58bf","p":"product","rtyp":"product","rid":11020345999703};</script>
vendor: 1 bytes, line 940
940
941<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
vendor: 1 bytes, line 941
941
942<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 942
942
943<script integrity="sha256-JjoPp5ZfB1sSAs5SQaol1x1GgvveM+BgmRzyDexInEQ=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//www.kusmitea.com/cdn/shopifycloud/storefront/assets/storefront/load_feature-1bd60354.js" crossorigin="anonymous"></script>
vendor: 1 bytes, line 943
943
944<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 = "//www.kusmitea.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>
944<script crossorigin="anonymous" defer="defer" src="//www.kusmitea.com/cdn/shopifycloud/storefront/assets/shopify_pay/storefront-616277c7.js?v=20250812"></script>
vendor: 1 bytes, line 944
944
945<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 945
945
946<script> 947 window.Shopify = window.Shopify || {}; 948 window.Shopify.MCP = window.Shopify.MCP || {}; 949 window.Shopify.MCP.enabled = true; 950 window.Shopify.MCP.shop = "kusmi-tea-2025.myshopify.com"; 951 window.Shopify.MCP.mcpEndpoint = "https:\/\/www.kusmitea.com\/api\/mcp"; 952 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"]}}]; 953</script>
vendor: 1 bytes, line 953
953
954<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("\/\/www.kusmitea.com\/cdn\/shopifycloud\/storefront\/assets\/storefront\/webmcp-c6b62ece.js","sha256-ke4DDuBjdvea3vxLWxHc9E9nq8zihuG4IfYEGbb77ys=");})(); 955</script>
vendor: 1 bytes, line 955
955
956<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://www.kusmitea.com/cdn/shopifycloud/portable-wallets/latest/portable-wallets.fr.js",t.type="module",document.head.appendChild(t)}}; 957</script>
vendor: 1 bytes, line 957
957
958<script data-source-attribution="shopify.dynamic_checkout.buyer_consent"> 959 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); 960</script>
vendor: 1 bytes, line 960
960
961<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})}})); 962</script>
962 963<link id="shopify-accelerated-checkout-styles" rel="stylesheet" media="screen" href="https://www.kusmitea.com/cdn/shopifycloud/portable-wallets/latest/accelerated-checkout-backwards-compat.css" crossorigin="anonymous"> 964<style id="shopify-accelerated-checkout-cart"> 965 #shopify-buyer-consent { 966 margin-top: 1em; 967 display: inline-block; 968 width: 100%; 969} 970 971#shopify-buyer-consent.hidden { 972 display: none; 973} 974 975#shopify-subscription-policy-button { 976 background: none; 977 border: none; 978 padding: 0; 979 text-decoration: underline; 980 font-size: inherit; 981 cursor: pointer; 982} 983 984#shopify-subscription-policy-button::before { 985 box-shadow: none; 986} 987 988 </style> 989
990<script id="shopify-cfh-end">window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
990 991<link href="//www.kusmitea.com/cdn/shop/t/4/assets/theme.css?v=164630755141658952831790695863" rel="stylesheet" type="text/css" media="all" /><!-- BEGIN app block: shopify://apps/join-stories/blocks/global-script/01ec6b69-ffcd-4917-91ec-8e867f5f7704 --> 992
992<script 993 src='https://kusmi-tea.my.join-stories.com/scripts/global.js' 994 type='text/javascript' async 995 ></script>
995 996 997 998 999<!-- END app block --><!-- BEGIN app block: shopify://apps/regios-discounts/blocks/regios_add_to_cart_embed/dc1514bb-4830-4102-bffa-e8b300bac5bd -->
999<script> 1000 window.RegiosDOPP_AddToCart = window.RegiosDOPP_AddToCart || { 1001 reloadInUnsupportedThemes: true, 1002 maxRetries: null, 1003 reAddAfterManualRemoval: false, 1004 }; 1005</script>
1005 1006 1007 1008 1009<!-- END app block --><!-- BEGIN app block: shopify://apps/nosto/blocks/nosto-script-embed-block/a67c43f0-0fc3-4649-a7dc-65ac499cae31 --><!-- BEGIN app snippet: nosto-shop-id -->
1009<script type="application/json" id="nosto-market-tagging">{"shopId":"94365778263","market":"102924747095","locale":"fr" 1010}</script>
1010 1011<!-- END app snippet -->
1012<script> 1013 (function () { 1014 // Market/locale (when resolved) are baked in server-side above, so no DOM parsing or extra 1015 // network hop is needed to build this URL. The only thing that can't be decided server-side 1016 // is the markets-preview override, which depends on a query param/cookie only visible 1017 // client-side - so this inline check is all that's left before the script tag is created. 1018 // It's inline (not a separate asset file) so the preview check runs synchronously, before the 1019 // nosto.js fetch starts - keeping it a single request with no risk of a duplicate load. 1020 var NOSTO_MARKETS_PREVIEW_PARAM = "nostomarketspreview" 1021 1022 function getCookie(cname) { 1023 var name = cname + "=" 1024 var ca = document.cookie.split(';') 1025 for (var i = 0; i < ca.length; i++) { 1026 var c = ca[i] 1027 while (c.charAt(0) === ' ') { 1028 c = c.substring(1) 1029 } 1030 if (c.indexOf(name) === 0) { 1031 try { 1032 return decodeURIComponent(c.substring(name.length, c.length)) 1033 } catch (err) { 1034 console.warn('Failed to decode cookie value', cname, err) 1035 } 1036 } 1037 } 1038 return "" 1039 } 1040 1041 var storage = { 1042 getItem: function (key) { return sessionStorage && sessionStorage.getItem(key) }, 1043 setItem: function (key, value) { return sessionStorage && sessionStorage.setItem(key, value) }, 1044 removeItem: function (key) { return sessionStorage && sessionStorage.removeItem(key) } 1045 } 1046 1047 function isMarketsPreviewEnabled() { 1048 var urlParams = new URLSearchParams(window.location.search) 1049 var isPreviewEnabled = urlParams.get(NOSTO_MARKETS_PREVIEW_PARAM) === "true" 1050 var isPreviewEnabledFromStorage = storage.getItem(NOSTO_MARKETS_PREVIEW_PARAM) === "true" 1051 1052 if (isPreviewEnabled || isPreviewEnabledFromStorage) { 1053 !isPreviewEnabledFromStorage && storage.setItem(NOSTO_MARKETS_PREVIEW_PARAM, "true") 1054 return true 1055 } 1056 1057 if (getCookie(NOSTO_MARKETS_PREVIEW_PARAM) === "true") { 1058 storage.setItem(NOSTO_MARKETS_PREVIEW_PARAM, "true") 1059 return true 1060 } 1061 1062 storage.removeItem(NOSTO_MARKETS_PREVIEW_PARAM) 1063 return false 1064 } 1065 1066 var src = "\/apps\/proxy\/script\/shopify\/market\/nosto.js?merchant=shopify-94365778263\u0026market=102924747095\u0026locale=fr" 1067 if (isMarketsPreviewEnabled()) { 1068 src += "&preview=true" 1069 } 1070 1071 var SCRIPT_ID = "nosto-market-script" 1072 if (document.getElementById(SCRIPT_ID)) { 1073 return 1074 } 1075 1076 var nostoMarketScript = document.createElement("script") 1077 nostoMarketScript.id = SCRIPT_ID 1078 nostoMarketScript.async = true 1079 nostoMarketScript.src = src 1080 document.head.appendChild(nostoMarketScript) 1081 })() 1082</script>
1082 1083 1084 1085<!-- END app block --><!-- BEGIN app block: shopify://apps/regios-discounts/blocks/regios_discounts_embed/dc1514bb-4830-4102-bffa-e8b300bac5bd --> 1086
1087<script id="regios-dopp-config" type="application/json"> 1088{ 1089 "discountConfigs": {"1826701017431":"null","1831709540695":"{\"config\":{\"message\":\"1 produit offert pour 3 achetés\",\"isEnabled\":true,\"customLogic\":{\"type\":\"ROOT\",\"id\":\"root\",\"entryPoint\":{\"id\":\"wizard-5660\",\"type\":\"BUY_X\",\"requirements\":[{\"quantity\":4,\"productEligibility\":{\"type\":\"SPECIFIC_COLLECTIONS\",\"selectedCollections\":[],\"asListOfIds\":\"671984779607\"}}],\"then\":{\"id\":\"wizard-5660-then-apply-discount\",\"type\":\"APPLY_DISCOUNT\",\"title\":\"Offre 3 achetés = 1 offert\",\"value\":{\"type\":\"GET_Y\",\"customerGets\":{\"type\":\"SPECIFIC_COLLECTIONS\",\"selectedCollections\":[],\"asListOfIds\":\"671984779607\"},\"atDiscountedValue\":{\"type\":\"PERCENTAGE\",\"percentage\":\"100\"},\"quantity\":\"1\"},\"dimensions\":{\"width\":650,\"height\":860},\"position\":{\"x\":642,\"y\":1.1015406162464956}},\"otherwise\":null,\"dimensions\":{\"width\":324,\"height\":464},\"position\":{\"x\":246,\"y\":0}},\"dimensions\":{\"width\":150,\"height\":0},\"position\":{\"x\":0,\"y\":0}},\"customerEligibility\":{\"type\":\"ALL_CUSTOMERS\"},\"productEligibility\":{\"type\":\"ALL_PRODUCTS\"},\"developerOptions\":{\"alwaysThrow\":false},\"minimumPurchaseRequirements\":{\"requirementType\":\"NONE\",\"quantity\":\"0\",\"subtotal\":\"0\",\"appliesTo\":\"ELIGIBLE_LINE_ITEMS\"},\"maximumPurchaseRequirements\":{\"requirementType\":\"NONE\",\"quantity\":\"0\",\"subtotal\":\"0\",\"appliesTo\":\"ELIGIBLE_LINE_ITEMS\"},\"value\":{\"type\":\"PERCENTAGE\",\"percentage\":\"0\"},\"appliesToSellingPlans\":\"ALL_SELLING_PLANS\",\"salePriceHandlingStrategy\":\"APPLY_TO_COMPARE_AT_PRICE\",\"cartLineSortOrder\":\"HIGHEST_PRICED_PRODUCTS\"},\"startDate\":\"2026-01-06T16:46:51Z\",\"endDate\":\"2026-04-10T07:15:10Z\",\"discountClass\":\"PRODUCT\",\"discountClasses\":[\"PRODUCT\"]}","1833455976791":"{\"config\":{\"isEnabled\":true,\"message\":\"Offre automatique : 1 trousse gratuite pour l'achat de 3 produits de la collection Ritual.\",\"customerEligibility\":{\"type\":\"ALL_CUSTOMERS\"},\"productEligibility\":{\"type\":\"ALL_PRODUCTS\"},\"value\":{\"type\":\"PERCENTAGE\",\"percentage\":\"0\"},\"customLogic\":{\"id\":\"\u003croot\u003e\",\"type\":\"ROOT\",\"entryPoint\":{\"id\":\"check-if100\",\"type\":\"CHECK_IF\",\"matchType\":\"AND\",\"then\":{\"id\":\"add-product\",\"type\":\"ADD_TO_CART\",\"variants\":{\"10447852339543\":\"52333321945431\"},\"quantities\":{\"52528298885463\":1},\"discounts\":{},\"title\":\"Trousse offerte\",\"dimensions\":{\"width\":650,\"height\":460},\"position\":{\"x\":864.4788414699582,\"y\":13.928141706288386}},\"otherwise\":null,\"conditions\":[{\"type\":\"PRODUCT_ELIGIBILITY\",\"includeOrExclude\":\"INCLUDE\",\"eligibility\":{\"type\":\"SPECIFIC_COLLECTIONS\",\"selectedCollections\":[],\"asListOfIds\":\"672430326103\"}},{\"type\":\"PURCHASE_REQUIREMENTS\",\"minOrMax\":\"MIN\",\"requirements\":{\"requirementType\":\"QUANTITY\",\"quantity\":\"3\",\"subtotal\":\"0\",\"appliesTo\":\"ELIGIBLE_LINE_ITEMS\"}}],\"position\":{\"x\":347.65,\"y\":30.53496691144801},\"dimensions\":{\"width\":292,\"height\":233},\"tooltips\":{}},\"dimensions\":{\"width\":150,\"height\":0},\"position\":{\"x\":0.9499999999999886,\"y\":0}},\"developerOptions\":{\"alwaysThrow\":false},\"cartLineSortOrder\":\"HIGHEST_PRICED_PRODUCTS\"},\"startDate\":\"2026-01-12T16:26:07Z\",\"endDate\":\"2026-03-20T08:33:13Z\",\"discountClass\":\"AUTO_ADD_TO_CART\",\"discountClasses\":[\"AUTO_ADD_TO_CART\"]}","1833462726999":"null","1833462759767":"null","1833462792535":"null","1833462858071":"null","1840954671447":"null","1841732059479":"null","1853662822743":"{\"config\":{\"isEnabled\":true,\"message\":\"Produit offert pour les nouveaux clients\",\"customerEligibility\":{\"type\":\"ALL_CUSTOMERS\"},\"productEligibility\":{\"type\":\"ALL_PRODUCTS\"},\"value\":{\"type\":\"PERCENTAGE\",\"percentage\":\"0\"},\"customLogic\":{\"id\":\"\u003croot\u003e\",\"type\":\"ROOT\",\"entryPoint\":{\"id\":\"check-if-0\",\"type\":\"CHECK_IF\",\"matchType\":\"AND\",\"then\":{\"id\":\"add-product-offer-0\",\"type\":\"ADD_TO_CART\",\"variants\":{\"10482817171799\":\"52533555724631\"},\"quantities\":{\"52533555724631\":1},\"discounts\":{},\"title\":\"Produit offert ajouté au panier automatiquement\"},\"otherwise\":null,\"conditions\":[{\"type\":\"COMPARE_NUMBER\",\"target\":\"CUSTOMER_NUMBER_OF_ORDERS\",\"to\":0,\"by\":\"EQUALS\",\"useNumberTerms\":false},{\"type\":\"CUSTOMER_ELIGIBILITY\",\"includeOrExclude\":\"INCLUDE\",\"eligibility\":{\"type\":\"LOGGED_IN_CUSTOMERS\"}}
1089,{\"type\":\"MARKET_ELIGIBILITY\",\"includeOrExclude\":\"INCLUDE\",\"eligibility\":{\"type\":\"SPECIFIC_MARKETS\",\"ids\":[\"102924747095\"]}},{\"type\":\"PURCHASE_REQUIREMENTS\",\"minOrMax\":\"MIN\",\"requirements\":{\"requirementType\":\"SUBTOTAL\",\"quantity\":\"0\",\"subtotal\":\"39\",\"appliesTo\":\"ENTIRE_ORDER\",\"disableCurrencyConversion\":false}}]}},\"developerOptions\":{\"alwaysThrow\":false},\"cartLineSortOrder\":\"NONE\"},\"startDate\":\"2026-02-20T09:17:20Z\",\"endDate\":\"2026-03-20T08:33:13Z\",\"discountClass\":\"AUTO_ADD_TO_CART\",\"discountClasses\":[\"AUTO_ADD_TO_CART\"]}","1853705486679":"{\"config\":{\"message\":\"Test Mathilde\",\"isEnabled\":true,\"customLogic\":{\"type\":\"ROOT\",\"id\":\"root\",\"entryPoint\":{\"id\":\"wizard-1949\",\"type\":\"CHECK_IF\",\"matchType\":\"AND\",\"conditions\":[{\"type\":\"PRODUCT_ELIGIBILITY\",\"includeOrExclude\":\"INCLUDE\",\"eligibility\":{\"type\":\"SPECIFIC_PRODUCT_VARIANTS\",\"selectedProductVariants\":[],\"compactFormat\":{\"10447858991447\":\"52333345866071\",\"10447860498775\":\"52333350682967\"}}}],\"then\":{\"id\":\"wizard-1949-then-apply-discount\",\"type\":\"APPLY_DISCOUNT\",\"title\":\"Volume discount\",\"value\":{\"type\":\"VOLUME\",\"appliesTo\":\"INDIVIDUAL_LINE_ITEMS\",\"breaks\":[{\"minimumQuantity\":\"2\",\"discount\":{\"type\":\"PERCENTAGE\",\"percentage\":\"15\"}},{\"minimumQuantity\":\"3\",\"discount\":{\"type\":\"PERCENTAGE\",\"percentage\":\"20\"}},{\"minimumQuantity\":\"5\",\"discount\":{\"type\":\"PERCENTAGE\",\"percentage\":\"25\"}}]},\"dimensions\":{\"width\":606,\"height\":695},\"position\":{\"x\":642,\"y\":0}},\"otherwise\":null,\"dimensions\":{\"width\":292,\"height\":252},\"position\":{\"x\":246,\"y\":0},\"tooltips\":{}},\"dimensions\":{\"width\":150,\"height\":0},\"position\":{\"x\":0,\"y\":0}},\"customerEligibility\":{\"type\":\"ALL_CUSTOMERS\"},\"productEligibility\":{\"type\":\"ALL_PRODUCTS\"},\"developerOptions\":{\"alwaysThrow\":false},\"minimumPurchaseRequirements\":{\"requirementType\":\"NONE\",\"quantity\":\"0\",\"subtotal\":\"0\",\"appliesTo\":\"ELIGIBLE_LINE_ITEMS\"},\"maximumPurchaseRequirements\":{\"requirementType\":\"NONE\",\"quantity\":\"0\",\"subtotal\":\"0\",\"appliesTo\":\"ELIGIBLE_LINE_ITEMS\"},\"value\":{\"type\":\"PERCENTAGE\",\"percentage\":\"0\"},\"appliesToSellingPlans\":\"ALL_SELLING_PLANS\",\"salePriceHandlingStrategy\":\"APPLY_TO_COMPARE_AT_PRICE\",\"cartLineSortOrder\":\"HIGHEST_PRICED_PRODUCTS\"},\"startDate\":\"2026-02-20T13:21:52Z\",\"endDate\":\"2026-02-26T09:26:48Z\",\"discountClass\":\"PRODUCT\",\"discountClasses\":[\"PRODUCT\"]}","1853707288919":"null","1853710729559":"null","1853718856023":"null","1853719282007":"null","1853719347543":"null","1853735600471":"null","1854513086807":"null","1855447859543":"{\"config\":{\"message\":\"Test Mathilde Variant metafield\",\"isEnabled\":true,\"customLogic\":{\"type\":\"ROOT\",\"id\":\"root\",\"entryPoint\":{\"id\":\"wizard-2432\",\"type\":\"CHECK_IF\",\"matchType\":\"AND\",\"conditions\":[{\"type\":\"PRODUCT_ELIGIBILITY\",\"includeOrExclude\":\"INCLUDE\",\"eligibility\":{\"type\":\"PRODUCT_VARIANT_METAFIELD\",\"key\":\"packaging\",\"namespace\":\"custom\",\"value\":\"Recharge vrac 100 g\",\"condition\":\"EQUALS\"}},{\"type\":\"PRODUCT_ELIGIBILITY\",\"includeOrExclude\":\"EXCLUDE\",\"eligibility\":{\"type\":\"SPECIFIC_PRODUCT_VARIANTS\",\"key\":\"packaging\",\"namespace\":\"custom\",\"value\":\"Recharge vrac 100 g\",\"condition\":\"EQUALS\",\"selectedProductVariants\":[],\"compactFormat\":{\"10447862792535\":\"52333355532631\"}}}],\"then\":{\"id\":\"apply-discount804\",\"type\":\"APPLY_DISCOUNT\",\"value\":{\"type\":\"VOLUME\",\"breaks\":[{\"minimumQuantity\":\"2\",\"discount\":{\"type\":\"PERCENTAGE\",\"percentage\":\"15\"},\"compareBy\":\"EQUALS\"},{\"minimumQuantity\":\"3\",\"discount\":{\"type\":\"PERCENTAGE\",\"percentage\":\"20\",\"quantity\":\"\"}},{\"minimumQuantity\":\"5\",\"discount\":{\"type\":\"PERCENTAGE\",\"percentage\":\"25\"}}],\"appliesTo\":\"INDIVIDUAL_LINE_ITEMS\"},\"dimensions\":{\"width\":606,\"height\":695},\"position\":{\"x\":660.3587051612507,\"y\":-23.03251207729477},\"title\":\"Remise vrac\"}
1089,\"otherwise\":null,\"dimensions\":{\"width\":292,\"height\":305},\"position\":{\"x\":246,\"y\":0},\"tooltips\":{}},\"dimensions\":{\"width\":150,\"height\":0},\"position\":{\"x\":0,\"y\":0}},\"customerEligibility\":{\"type\":\"ALL_CUSTOMERS\"},\"productEligibility\":{\"type\":\"ALL_PRODUCTS\"},\"developerOptions\":{\"alwaysThrow\":false},\"minimumPurchaseRequirements\":{\"requirementType\":\"NONE\",\"quantity\":\"0\",\"subtotal\":\"0\",\"appliesTo\":\"ELIGIBLE_LINE_ITEMS\"},\"maximumPurchaseRequirements\":{\"requirementType\":\"NONE\",\"quantity\":\"0\",\"subtotal\":\"0\",\"appliesTo\":\"ELIGIBLE_LINE_ITEMS\"},\"value\":{\"type\":\"PERCENTAGE\",\"percentage\":\"0\"},\"appliesToSellingPlans\":\"ALL_SELLING_PLANS\",\"salePriceHandlingStrategy\":\"SKIP\",\"cartLineSortOrder\":\"NONE\"},\"startDate\":\"2026-02-26T09:10:46Z\",\"endDate\":\"2026-02-26T09:41:39Z\",\"discountClass\":\"PRODUCT\",\"discountClasses\":[\"PRODUCT\"]}","1855454511447":"{\"config\":{\"message\":\"Test Mathilde 10% Coffrets sachets\",\"isEnabled\":true,\"customLogic\":{\"id\":\"\u003croot\u003e\",\"type\":\"ROOT\",\"entryPoint\":{\"id\":\"check-if-0\",\"type\":\"CHECK_IF\",\"matchType\":\"AND\",\"conditions\":[{\"type\":\"PRODUCT_ELIGIBILITY\",\"includeOrExclude\":\"INCLUDE\",\"eligibility\":{\"type\":\"SPECIFIC_COLLECTIONS\",\"selectedProductVariants\":[],\"compactFormat\":{\"10447830384983\":\"52333281640791\"},\"selectedCollections\":[],\"asListOfIds\":\"672540033367\"}}],\"then\":{\"id\":\"apply-discount-0\",\"type\":\"APPLY_DISCOUNT\",\"title\":\"10% off this product only\",\"value\":{\"type\":\"PERCENTAGE\",\"percentage\":\"10\"},\"dimensions\":{\"width\":332,\"height\":340},\"position\":{\"x\":642,\"y\":0}},\"otherwise\":null,\"dimensions\":{\"width\":292,\"height\":232},\"position\":{\"x\":246,\"y\":0},\"tooltips\":{}},\"dimensions\":{\"width\":150,\"height\":0},\"position\":{\"x\":0,\"y\":0}},\"customerEligibility\":{\"type\":\"ALL_CUSTOMERS\"},\"productEligibility\":{\"type\":\"ALL_PRODUCTS\"},\"developerOptions\":{\"alwaysThrow\":false},\"minimumPurchaseRequirements\":{\"requirementType\":\"NONE\",\"quantity\":\"0\",\"subtotal\":\"0\",\"appliesTo\":\"ELIGIBLE_LINE_ITEMS\"},\"maximumPurchaseRequirements\":{\"requirementType\":\"NONE\",\"quantity\":\"0\",\"subtotal\":\"0\",\"appliesTo\":\"ELIGIBLE_LINE_ITEMS\"},\"value\":{\"type\":\"PERCENTAGE\",\"percentage\":\"0\"},\"appliesToSellingPlans\":\"ALL_SELLING_PLANS\",\"salePriceHandlingStrategy\":\"APPLY_TO_COMPARE_AT_PRICE\",\"cartLineSortOrder\":\"HIGHEST_PRICED_PRODUCTS\"},\"startDate\":\"2026-02-26T09:43:08Z\",\"endDate\":\"2026-03-18T18:07:50Z\",\"discountClass\":\"PRODUCT\",\"discountClasses\":[\"PRODUCT\"]}","1855474467159":"null","1855479480663":"null","1855481446743":"{\"config\":{\"message\":\"Test Mathilde -10% collection thés noirs 3 produits\",\"isEnabled\":true,\"customLogic\":{\"type\":\"ROOT\",\"id\":\"root\",\"entryPoint\":{\"id\":\"wizard-572\",\"type\":\"CHECK_IF\",\"matchType\":\"AND\",\"conditions\":[{\"type\":\"PRODUCT_ELIGIBILITY\",\"includeOrExclude\":\"INCLUDE\",\"eligibility\":{\"type\":\"SPECIFIC_COLLECTIONS\",\"selectedCollections\":[],\"asListOfIds\":\"672475906391\"}},{\"type\":\"PRODUCT_ELIGIBILITY\",\"includeOrExclude\":\"INCLUDE\",\"eligibility\":{\"type\":\"PRODUCT_VARIANT_METAFIELD\",\"key\":\"packaging\",\"namespace\":\"custom\",\"value\":\"Boîte 100 g\",\"condition\":\"EQUALS\"}},{\"type\":\"PURCHASE_REQUIREMENTS\",\"minOrMax\":\"MIN\",\"requirements\":{\"requirementType\":\"QUANTITY\",\"quantity\":\"3\",\"subtotal\":\"0\",\"appliesTo\":\"ELIGIBLE_LINE_ITEMS\"}}],\"then\":{\"id\":\"wizard-572-then-apply-discount\",\"type\":\"APPLY_DISCOUNT\",\"title\":\"Variant metafield discount\",\"value\":{\"type\":\"PERCENTAGE\",\"percentage\":\"10\",\"quantity\":\"1\"},\"dimensions\":{\"width\":639,\"height\":528},\"position\":{\"x\":642,\"y\":0}},\"otherwise\":null,\"dimensions\":{\"width\":292,\"height\":338},\"position\":{\"x\":246,\"y\":0},\"tooltips\":{}},\"dimensions\":{\"width\":150,\"height\":0},\"position\":{\"x\":0,\"y\":0}},\"customerEligibility\":{\"type\":\"ALL_CUSTOMERS\"},\"productEligibility\":{\"type\":\"ALL_PRODUCTS\"},\"developerOptions\":{\"alwaysThrow\":false},\"minimumPurchaseRequirements\":{\"requirementType\":\"NONE\",\"quantity\":\"0\",\"subtotal\":\"0\",\"appliesTo\":\"ELIGIBLE_LINE_ITEMS\"},\"maximumPurchaseRequirements\":{\"requirementType\":\"NONE\",\"quantity\":\"0\",\"subtotal\":\"0\",\"appliesTo\":\"ELIGIBLE_LINE_ITEMS\"},\"value\":{\"type\":\"PERCENTAGE\",\"percentage\":\"0\"},\"appliesToSellingPlans\":\"ALL_SELLING_PLANS\",\"salePriceHandlingStrategy\":\"APPLY_TO_COMPARE_AT_PRICE\",\"cartLineSortOrder\":\"LOWEST_PRICED_PRODUCTS\"}
1089,\"startDate\":\"2026-02-26T11:49:46Z\",\"endDate\":\"2026-02-26T12:56:43Z\",\"discountClass\":\"PRODUCT\",\"discountClasses\":[\"PRODUCT\"]}","1855513526615":"{\"config\":{\"isEnabled\":true,\"message\":\"Test Mathilde 20 anastasia 3=4\",\"customerEligibility\":{\"type\":\"ALL_CUSTOMERS\"},\"productEligibility\":{\"type\":\"ALL_PRODUCTS\"},\"value\":{\"type\":\"PERCENTAGE\",\"percentage\":\"0\"},\"customLogic\":{\"id\":\"root\",\"type\":\"ROOT\",\"position\":{\"x\":0,\"y\":0},\"dimensions\":{\"width\":150,\"height\":0},\"entryPoint\":{\"id\":\"wizard-9135\",\"then\":{\"id\":\"wizard-9135-then-auto-add-to-cart\",\"type\":\"ADD_TO_CART\",\"title\":\"Specific products in cart\",\"position\":{\"x\":1106.0739673181208,\"y\":11.813900110395373},\"variants\":{\"10447852372311\":\"52333322207575\"},\"dimensions\":{\"width\":650,\"height\":468}},\"type\":\"BUY_X\",\"basedOn\":\"PRICE\",\"position\":{\"x\":246,\"y\":0},\"otherwise\":null,\"dimensions\":{\"width\":650,\"height\":532},\"requirements\":[{\"quantity\":1000,\"productEligibility\":{\"type\":\"ALL_PRODUCTS\"}}],\"maximumTimesToApply\":1}},\"developerOptions\":{\"alwaysThrow\":false},\"cartLineSortOrder\":\"NONE\"},\"startDate\":\"2026-02-26T14:19:20Z\",\"endDate\":\"2026-04-27T10:25:43Z\",\"discountClass\":\"AUTO_ADD_TO_CART\",\"discountClasses\":[\"AUTO_ADD_TO_CART\"]}","1855520244055":"null","1855524405591":"{\"config\":{\"message\":\"Test Mathilde Vrac + Filtre\",\"isEnabled\":true,\"customLogic\":{\"id\":\"\u003croot\u003e\",\"type\":\"ROOT\",\"position\":{\"x\":0,\"y\":0},\"dimensions\":{\"width\":150,\"height\":0},\"entryPoint\":{\"id\":\"check-if310\",\"type\":\"CHECK_IF\",\"matchType\":\"AND\",\"then\":{\"id\":\"add-to-cart-0\",\"type\":\"ADD_TO_CART\",\"title\":\"Auto add product based on variant metafield\",\"position\":{\"x\":753.1360559182236,\"y\":5.384539576862807},\"variants\":{\"10447825862999\":\"52333259882839\"},\"discounts\":{},\"dimensions\":{\"width\":650,\"height\":468},\"quantities\":{}},\"otherwise\":null,\"conditions\":[{\"type\":\"PRODUCT_ELIGIBILITY\",\"includeOrExclude\":\"INCLUDE\",\"eligibility\":{\"type\":\"SPECIFIC_PRODUCT_VARIANTS\",\"key\":\"packaging_group\",\"namespace\":\"custom\",\"value\":\"Loose tea\",\"condition\":\"ENDS_WITH\",\"selectedProducts\":[],\"selectedProductVariants\":[],\"compactFormat\":{\"10447858991447\":\"52333345866071\"}}},{\"type\":\"PURCHASE_REQUIREMENTS\",\"minOrMax\":\"MIN\",\"requirements\":{\"requirementType\":\"QUANTITY\",\"quantity\":\"3\",\"subtotal\":\"0\",\"appliesTo\":\"INDIVIDUAL_LINE_ITEMS\"}}],\"position\":{\"x\":287.82353574166535,\"y\":0.15659760915460197},\"dimensions\":{\"width\":292,\"height\":285},\"tooltips\":{}}},\"customerEligibility\":{\"type\":\"ALL_CUSTOMERS\"},\"productEligibility\":{\"type\":\"ALL_PRODUCTS\"},\"developerOptions\":{\"alwaysThrow\":false},\"minimumPurchaseRequirements\":{\"requirementType\":\"NONE\",\"quantity\":\"0\",\"subtotal\":\"0\",\"appliesTo\":\"ELIGIBLE_LINE_ITEMS\"},\"maximumPurchaseRequirements\":{\"requirementType\":\"NONE\",\"quantity\":\"0\",\"subtotal\":\"0\",\"appliesTo\":\"ELIGIBLE_LINE_ITEMS\"},\"value\":{\"type\":\"PERCENTAGE\",\"percentage\":\"0\"},\"appliesToSellingPlans\":\"ALL_SELLING_PLANS\",\"salePriceHandlingStrategy\":\"APPLY_TO_COMPARE_AT_PRICE\",\"cartLineSortOrder\":\"HIGHEST_PRICED_PRODUCTS\"},\"startDate\":\"2026-02-26T15:16:53Z\",\"endDate\":null,\"discountClass\":\"PRODUCT\",\"discountClasses\":[\"PRODUCT\"]}","1855529386327":"{\"config\":{\"isEnabled\":true,\"message\":\"Test Mathilde Free gift with X in cart\",\"customerEligibility\":{\"type\":\"ALL_CUSTOMERS\"},\"productEligibility\":{\"type\":\"ALL_PRODUCTS\"},\"value\":{\"type\":\"PERCENTAGE\",\"percentage\":\"0\"},\"customLogic\":{\"id\":\"root\",\"type\":\"ROOT\",\"position\":{\"x\":0,\"y\":0},\"dimensions\":{\"width\":150,\"height\":0},\"entryPoint\":{\"id\":\"check-if286\",\"type\":\"CHECK_IF\",\"matchType\":\"AND\",\"then\":{\"id\":\"wizard-6457\",\"then\":{\"id\":\"wizard-6457-then-auto-add-to-cart\",\"type\":\"ADD_TO_CART\",\"title\":\"Specific products in cart\",\"position\":{\"x\":1200.725352112676,\"y\":-0.9647887323943678},\"variants\":{\"10447825862999\":\"52333259882839\"}
1089,\"dimensions\":{\"width\":650,\"height\":468}},\"type\":\"BUY_X\",\"basedOn\":\"QUANTITY\",\"position\":{\"x\":577.7696792344697,\"y\":-1.8594710060610282},\"otherwise\":null,\"dimensions\":{\"width\":542,\"height\":544},\"requirements\":[{\"quantity\":3,\"productEligibility\":{\"type\":\"SPECIFIC_PRODUCT_VARIANTS\",\"tagsToCheck\":[],\"compactFormat\":{\"10447858991447\":\"52333345866071\"},\"selectedProductVariants\":[]}}],\"maximumTimesToApply\":1},\"otherwise\":null,\"conditions\":[{\"type\":\"CUSTOMER_ELIGIBILITY\",\"includeOrExclude\":\"INCLUDE\",\"eligibility\":{\"type\":\"LOCATION\",\"countryCodes\":[\"FR\"]}}],\"position\":{\"x\":206.44366197183092,\"y\":-2.8943661971831034},\"dimensions\":{\"width\":228,\"height\":212},\"tooltips\":{}}},\"developerOptions\":{\"alwaysThrow\":false},\"cartLineSortOrder\":\"NONE\"},\"startDate\":\"2026-02-26T15:37:36Z\",\"endDate\":\"2026-03-03T13:35:33Z\",\"discountClass\":\"AUTO_ADD_TO_CART\",\"discountClasses\":[\"AUTO_ADD_TO_CART\"]}","1856380305751":"{\"config\":{\"value\":{\"type\":\"PERCENTAGE\",\"percentage\":\"0\"},\"message\":\"Test Mathilde Marché\",\"isEnabled\":true,\"customLogic\":{\"id\":\"root\",\"type\":\"ROOT\",\"position\":{\"x\":0,\"y\":0},\"dimensions\":{\"width\":150,\"height\":0},\"entryPoint\":{\"id\":\"check-if597\",\"then\":{\"id\":\"wizard-9786\",\"then\":{\"id\":\"wizard-9786-then-apply-discount\",\"type\":\"APPLY_DISCOUNT\",\"title\":\"Exclude products\",\"value\":{\"type\":\"PERCENTAGE\",\"percentage\":\"10\"},\"position\":{\"x\":974,\"y\":0},\"dimensions\":{\"width\":332,\"height\":340}},\"type\":\"CHECK_IF\",\"position\":{\"x\":578,\"y\":0},\"tooltips\":{},\"matchType\":\"AND\",\"otherwise\":null,\"conditions\":[{\"type\":\"PRODUCT_ELIGIBILITY\",\"eligibility\":{\"type\":\"SPECIFIC_PRODUCT_VARIANTS\",\"asListOfIds\":\"10447858303319\",\"compactFormat\":{\"10447858303319\":\"52333343670615\"},\"selectedProducts\":[],\"selectedProductVariants\":[]},\"includeOrExclude\":\"INCLUDE\"}],\"dimensions\":{\"width\":277,\"height\":212}},\"type\":\"CHECK_IF\",\"position\":{\"x\":246,\"y\":0},\"tooltips\":{},\"matchType\":\"AND\",\"otherwise\":null,\"conditions\":[{\"type\":\"MARKET_ELIGIBILITY\",\"eligibility\":{\"ids\":[\"103343161687\"],\"type\":\"SPECIFIC_MARKETS\"},\"includeOrExclude\":\"INCLUDE\"}],\"dimensions\":{\"width\":292,\"height\":232}}},\"developerOptions\":{\"alwaysThrow\":false},\"cartLineSortOrder\":\"HIGHEST_PRICED_PRODUCTS\",\"productEligibility\":{\"type\":\"ALL_PRODUCTS\"},\"customerEligibility\":{\"type\":\"ALL_CUSTOMERS\"},\"appliesToSellingPlans\":\"ALL_SELLING_PLANS\",\"salePriceHandlingStrategy\":\"APPLY_TO_COMPARE_AT_PRICE\",\"maximumPurchaseRequirements\":{\"quantity\":\"0\",\"subtotal\":\"0\",\"appliesTo\":\"ELIGIBLE_LINE_ITEMS\",\"requirementType\":\"NONE\"},\"minimumPurchaseRequirements\":{\"quantity\":\"0\",\"subtotal\":\"0\",\"appliesTo\":\"ELIGIBLE_LINE_ITEMS\",\"requirementType\":\"NONE\"}},\"startDate\":\"2026-03-02T09:59:07Z\",\"endDate\":\"2026-03-02T10:04:38Z\",\"discountClass\":\"PRODUCT\",\"discountClasses\":[\"PRODUCT\"]}","1856458490199":"null","1856648872279":"null","1857195540823":"{\"config\":{\"message\":\"Offre vrac multi US\",\"isEnabled\":true,\"customLogic\":{\"id\":\"\u003croot\u003e\",\"type\":\"ROOT\",\"position\":{\"x\":0,\"y\":0},\"dimensions\":{\"width\":150,\"height\":0},\"entryPoint\":{\"id\":\"check-if73\",\"then\":{\"id\":\"check-if999\",\"then\":{\"id\":\"apply-discount173\",\"type\":\"APPLY_DISCOUNT\",\"title\":\"Multi-refill offer\",\"value\":{\"type\":\"VOLUME\",\"breaks\":[{\"discount\":{\"type\":\"PERCENTAGE\",\"percentage\":\"15\"},\"minimumQuantity\":\"2\"},{\"discount\":{\"type\":\"PERCENTAGE\",\"percentage\":\"20\"},\"minimumQuantity\":\"3\"},{\"discount\":{\"type\":\"PERCENTAGE\",\"percentage\":\"25\"},\"minimumQuantity\":\"5\"}],\"appliesTo\":\"ELIGIBLE_LINE_ITEMS\"},\"position\":{\"x\":1229.3381426891756,\"y\":128.65421575966795},\"dimensions\":{\"width\":606,\"height\":695}},\"type\":\"CHECK_IF\",\"position\":{\"x\":578,\"y\":0},\"tooltips\":{},\"matchType\":\"AND\",\"otherwise\":null,\"conditions\":[{\"type\":\"PRODUCT_ELIGIBILITY\",\"eligibility\":{\"type\":\"SPECIFIC_PRODUCT_VARIANTS\",\"compactFormat\":{\"10447852339543\"
1089:\"52333321781591\",\"10447852372311\":\"52333322076503\",\"10447852634455\":\"52333323190615\",\"10447852831063\":\"52333323583831\",\"10447852929367\":\"52333323714903\",\"10447852994903\":\"52333324796247\",\"10447853224279\":\"52333325058391\",\"10447853289815\":\"52333325713751\",\"10447853453655\":\"52333325910359\",\"10447853584727\":\"52333326467415\",\"10447853748567\":\"52333327712599\",\"10447853814103\":\"52333327548759\",\"10447853945175\":\"52333328269655\",\"10447854109015\":\"52333329416535\",\"10447854436695\":\"52333330530647\",\"10447854534999\":\"52333330694487\",\"10447854928215\":\"52333331284311\",\"10447854993751\":\"52333331415383\",\"10447855157591\":\"52333332037975\",\"10447855354199\":\"52333333872983\",\"10447855518039\":\"52333334495575\",\"10447855780183\":\"52333335216471\",\"10447855944023\":\"52333335937367\",\"10447856173399\":\"52333336265047\",\"10447856468311\":\"52333337706839\",\"10447856697687\":\"52333338100055\",\"10447856959831\":\"52333338689879\",\"10447857025367\":\"52333338820951\",\"10447857418583\":\"52333340033367\",\"10447857582423\":\"52333340688727\",\"10447857680727\":\"52333341016407\",\"10447857811799\":\"52333341868375\",\"10447857910103\":\"52333342425431\",\"10447857975639\":\"52333342261591\",\"10447858041175\":\"52333342490967\",\"10447858106711\":\"52333342687575\",\"10447858205015\":\"52333343277399\",\"10447858303319\":\"52333343244631\",\"10447858499927\":\"52333344096599\",\"10447858565463\":\"52333343899991\",\"10447858630999\":\"52333344555351\",\"10447858729303\":\"52333344293207\",\"10447858827607\":\"52333345374551\",\"10447858925911\":\"52333345538391\",\"10447858991447\":\"52333345866071\",\"10447859089751\":\"52333346423127\",\"10447859188055\":\"52333346619735\",\"10447859286359\":\"52333346292055\",\"10447859417431\":\"52333347111255\",\"10447859482967\":\"52333347078487\",\"10447859515735\":\"52333347307863\",\"10447859581271\":\"52333347471703\",\"10447859646807\":\"52333347930455\",\"10447859712343\":\"52333348454743\",\"10447859777879\":\"52333348323671\",\"10447859843415\":\"52333348421975\",\"10447859974487\":\"52333349110103\",\"10447860007255\":\"52333349044567\",\"10447860498775\":\"52333350682967\",\"10447860793687\":\"52333351076183\",\"10447860826455\":\"52333351272791\",\"10447861023063\":\"52333351567703\",\"10447861121367\":\"52333351436631\",\"10447861350743\":\"52333351829847\",\"10447861743959\":\"52333352747351\",\"10447861776727\":\"52333352780119\",\"10447861973335\":\"52333353468247\",\"10447862006103\":\"52333354025303\",\"10447862104407\":\"52333353795927\",\"10447862333783\":\"52333354615127\",\"10447862366551\":\"52333354844503\",\"10447862563159\":\"52333355106647\",\"10447862595927\":\"52333355368791\",\"10447862694231\":\"52333355729239\",\"10447862792535\":\"52333355532631\",\"10447862956375\":\"52333357302103\",\"10447863021911\":\"52333357531479\",\"10447863185751\":\"52333358121303\",\"10447863415127\":\"52333358842199\",\"10447863644503\":\"52333358809431\",\"10447863710039\":\"52333359595863\",\"10447863742807\":\"52333359726935\",\"10544432054615\":\"52723179520343\"},\"selectedProductVariants\":[]},\"includeOrExclude\":\"INCLUDE\"}],\"dimensions\":{\"width\":292,\"height\":1712}},\"type\":\"CHECK_IF\",\"position\":{\"x\":246,\"y\":0},\"tooltips\":{},\"matchType\":\"AND\",\"otherwise\":null,\"conditions\":[{\"type\":\"MARKET_ELIGIBILITY\",\"eligibility\":{\"type\":\"SPECIFIC_MARKETS\",\"ids\":[\"103343194455\"]},\"includeOrExclude\":\"INCLUDE\"}],\"dimensions\":{\"width\":228,\"height\":212}}},\"customerEligibility\":{\"type\":\"ALL_CUSTOMERS\"},\"productEligibility\":{\"type\":\"ALL_PRODUCTS\"},\"developerOptions\":{\"alwaysThrow\":false},\"minimumPurchaseRequirements\":{\"requirementType\":\"NONE\",\"quantity\":\"0\",\"subtotal\":\"0\",\"appliesTo\":\"ELIGIBLE_LINE_ITEMS\"},\"maximumPurchaseRequirements\":{\"requirementType\":\"NONE\",\"quantity\":\"0\",\"subtotal\":\"0\",\"appliesTo\":\"ELIGIBLE_LINE_ITEMS\"},\"value\":{\"type\":\"PERCENTAGE\",\"percentage\":\"0\"},\"appliesToSellingPlans\":\"ALL_SELLING_PLANS\",\"salePriceHandlingStrategy\":\"APPLY_TO_COMPARE_AT_PRICE\",\"cartLineSortOrder\":\"HIGHEST_PRICED_PRODUCTS\"}
1089,\"startDate\":\"2026-03-05T21:53:38Z\",\"endDate\":\"2026-04-01T07:00:00Z\",\"discountClass\":\"PRODUCT\",\"discountClasses\":[\"PRODUCT\"]}","1857278181719":"null","1858253324631":"null","1858253947223":"null","1858367783255":"null","1858532507991":"null","1858804908375":"null","1858807398743":"null","1858808349015":"null","1859328246103":"null","1859330572631":"null","1859342303575":"null","1859375694167":"null","1860902912343":"null","1861473927511":"null","1861619482967":"null","1861652513111":"null","1861658280279":"null","1862217531735":"null","1862217695575":"null","1862217793879":"null","1862218056023":"null","1862218645847":"null","1862233850199":"null","1862256722263":"null","1862312657239":"null","1862522437975":"null","1862811976023":"null","1862813221207":"null","1863011565911":"null","1863432634711":"null","1864881144151":"null","1864884519255":"null","1865034400087":"null","1865037021527":"null","1865082732887":"{\"config\":{\"message\":\"Anim - Flash EU\",\"isEnabled\":true,\"customLogic\":{\"id\":\"root\",\"type\":\"ROOT\",\"entryPoint\":{\"id\":\"check-if32\",\"type\":\"CHECK_IF\",\"matchType\":\"AND\",\"conditions\":[{\"type\":\"PRODUCT_ELIGIBILITY\",\"includeOrExclude\":\"EXCLUDE\",\"eligibility\":{\"type\":\"SPECIFIC_COLLECTIONS\",\"selectedCollections\":[],\"asListOfIds\":\"677345722711\"}},{\"type\":\"PRODUCT_ELIGIBILITY\",\"includeOrExclude\":\"EXCLUDE\",\"eligibility\":{\"type\":\"SPECIFIC_PRODUCTS\",\"selectedProducts\":[],\"asListOfIds\":\"10603251007831,10688920093015,10447828255063,10447827632471,10447852896599,10447833268567,10447836873047\"}}],\"then\":{\"id\":\"wizard-5170\",\"type\":\"CHECK_IF\",\"matchType\":\"AND\",\"conditions\":[{\"type\":\"MARKET_ELIGIBILITY\",\"includeOrExclude\":\"INCLUDE\",\"eligibility\":{\"type\":\"SPECIFIC_MARKETS\",\"ids\":[\"103343161687\",\"102924747095\",\"103343259991\"]}}],\"then\":{\"id\":\"check-if628\",\"type\":\"CHECK_IF\",\"matchType\":\"AND\",\"conditions\":[{\"type\":\"PURCHASE_REQUIREMENTS\",\"minOrMax\":\"MIN\",\"requirements\":{\"requirementType\":\"SUBTOTAL\",\"quantity\":\"80\",\"subtotal\":\"80\",\"appliesTo\":\"ENTIRE_ORDER\",\"disableCurrencyConversion\":false}}],\"then\":{\"id\":\"wizard-5170-then-apply-discount\",\"type\":\"APPLY_DISCOUNT\",\"title\":\"Flash -20%\",\"value\":{\"type\":\"PERCENTAGE\",\"percentage\":\"20\"}},\"otherwise\":null},\"otherwise\":{\"id\":\"check-if568\",\"type\":\"CHECK_IF\",\"matchType\":\"AND\",\"conditions\":[{\"type\":\"MARKET_ELIGIBILITY\",\"includeOrExclude\":\"INCLUDE\",\"eligibility\":{\"type\":\"SPECIFIC_MARKETS\",\"ids\":[\"103343522135\"]}}],\"then\":{\"id\":\"check-if913\",\"type\":\"CHECK_IF\",\"matchType\":\"AND\",\"conditions\":[{\"type\":\"PURCHASE_REQUIREMENTS\",\"minOrMax\":\"MIN\",\"requirements\":{\"requirementType\":\"SUBTOTAL\",\"quantity\":\"0\",\"subtotal\":\"100\",\"appliesTo\":\"ENTIRE_ORDER\",\"disableCurrencyConversion\":true}}],\"then\":{\"id\":\"apply-discount62\",\"type\":\"APPLY_DISCOUNT\",\"title\":\"Flash -20%\",\"value\":{\"type\":\"PERCENTAGE\",\"percentage\":\"20\"}},\"otherwise\":null},\"otherwise\":null}},\"otherwise\":null}},\"customerEligibility\":{\"type\":\"ALL_CUSTOMERS\"},\"productEligibility\":{\"type\":\"ALL_PRODUCTS\"},\"developerOptions\":{\"alwaysThrow\":false},\"minimumPurchaseRequirements\":{\"requirementType\":\"NONE\",\"quantity\":\"0\",\"subtotal\":\"0\",\"appliesTo\":\"ELIGIBLE_LINE_ITEMS\"},\"maximumPurchaseRequirements\":{\"requirementType\":\"NONE\",\"quantity\":\"0\",\"subtotal\":\"0\",\"appliesTo\":\"ELIGIBLE_LINE_ITEMS\"},\"value\":{\"type\":\"PERCENTAGE\",\"percentage\":\"0\"},\"appliesToSellingPlans\":\"ALL_SELLING_PLANS\",\"salePriceHandlingStrategy\":\"APPLY_TO_COMPARE_AT_PRICE\",\"cartLineSortOrder\":\"HIGHEST_PRICED_PRODUCTS\"},\"startDate\":\"2026-10-01T14:00:00Z\",\"endDate\":\"2026-10-05T07:00:00Z\",\"discountClass\":\"PRODUCT\",\"discountClasses\":[\"PRODUCT\"]}","1866251796823":"null","1867584930135":"null","1867587813719":"null","1867588600151":"null","1867589648727":"null","1867591254359":"null","1867591778647":"null","1867626578263":"null","1869742932311":"{\"config\":{\"message\"
1089:\"Anim - Offre vrac multi EU\",\"isEnabled\":true,\"customLogic\":{\"id\":\"root\",\"type\":\"ROOT\",\"entryPoint\":{\"id\":\"check-if73\",\"type\":\"CHECK_IF\",\"matchType\":\"AND\",\"conditions\":[{\"type\":\"MARKET_ELIGIBILITY\",\"includeOrExclude\":\"INCLUDE\",\"eligibility\":{\"type\":\"SPECIFIC_MARKETS\",\"ids\":[\"103343161687\",\"102924747095\",\"103343259991\",\"103343522135\"]}}],\"then\":{\"id\":\"check-if999\",\"type\":\"CHECK_IF\",\"matchType\":\"AND\",\"conditions\":[{\"type\":\"PRODUCT_ELIGIBILITY\",\"includeOrExclude\":\"INCLUDE\",\"eligibility\":{\"type\":\"SPECIFIC_PRODUCT_VARIANTS\",\"selectedProductVariants\":[],\"compactFormat\":{\"10447852339543\":\"52333321781591\",\"10447852372311\":\"52333322076503\",\"10447852634455\":\"52333323190615\",\"10447852831063\":\"52333323583831\",\"10827922014551\":\"53441839792471\",\"10447858827607\":\"52333345374551\",\"10619609350487\":\"53000667267415\",\"10447857811799\":\"52333341868375\",\"10447852929367\":\"52333323714903\",\"10447852994903\":\"52333324796247\",\"10447853224279\":\"52333325058391\",\"10447853289815\":\"52333325713751\",\"10447853453655\":\"52333325910359\",\"10447853584727\":\"52333326467415\",\"10447853748567\":\"52333327712599\",\"10447853814103\":\"52333327548759\",\"10447853945175\":\"52333328269655\",\"10447854109015\":\"52333329416535\",\"10447854436695\":\"52333330530647\",\"10447854534999\":\"52333330694487\",\"10447854928215\":\"52333331284311\",\"10447854993751\":\"52333331415383\",\"10447855157591\":\"52333332037975\",\"10447855354199\":\"52333333872983\",\"10447855518039\":\"52333334495575\",\"10447855780183\":\"52333335216471\",\"10447855944023\":\"52333335937367\",\"10447856173399\":\"52333336265047\",\"10447856468311\":\"52333337706839\",\"10447856697687\":\"52333338100055\",\"10447856959831\":\"52333338689879\",\"10447857025367\":\"52333338820951\",\"10447857418583\":\"52333340033367\",\"10447857582423\":\"52333340688727\",\"10447857680727\":\"52333341016407\",\"10447857910103\":\"52333342425431\",\"10447857975639\":\"52333342261591\",\"10447858041175\":\"52333342490967\",\"10447858106711\":\"52333342687575\",\"10447858205015\":\"52333343277399\",\"10447858303319\":\"52333343244631\",\"10447858499927\":\"52333344096599\",\"10447858565463\":\"52333343899991\",\"10447858630999\":\"52333344555351\",\"10447858729303\":\"52333344293207\",\"10447858925911\":\"52333345538391\",\"10447858991447\":\"52333345866071\",\"10447859089751\":\"52333346423127\",\"10447859188055\":\"52333346619735\",\"10447859286359\":\"52333346292055\",\"10447859417431\":\"52333347111255\",\"10447859482967\":\"52333347078487\",\"10447859515735\":\"52333347307863\",\"10447859581271\":\"52333347471703\",\"10447859646807\":\"52333347930455\",\"10447859712343\":\"52333348454743\",\"10447859777879\":\"52333348323671\",\"10447859843415\":\"52333348421975\",\"10447859974487\":\"52333349110103\",\"10447860007255\":\"52333349044567\",\"10447860498775\":\"52333350682967\",\"10447860793687\":\"52333351076183\",\"10447860826455\":\"52333351272791\",\"10447861023063\":\"52333351567703\",\"10447861121367\":\"52333351436631\",\"10447861350743\":\"52333351829847\",\"10447861743959\":\"52333352747351\",\"10447861776727\":\"52333352780119\",\"10447861973335\":\"52333353468247\",\"10447862006103\":\"52333354025303\",\"10447862104407\":\"52333353795927\",\"10447862333783\":\"52333354615127\",\"10447862366551\":\"52333354844503\",\"10447862563159\":\"52333355106647\",\"10447862595927\":\"52333355368791\",\"10447862694231\":\"52333355729239\",\"10447862792535\":\"52333355532631\",\"10447862956375\":\"52333357302103\",\"10447863021911\":\"52333357531479\",\"10447863185751\":\"52333358121303\",\"10447863415127\":\"52333358842199\",\"10447863644503\":\"52333358809431\",\"10447863710039\":\"52333359595863\",\"10447863742807\":\"52333359726935\",\"10544432054615\":\"52723179520343\"}}}],\"then\":{\"id\":\"apply-discount173\",\"type\":\"APPLY_DISCOUNT\",\"title\":\"Discovery offer\",\"value\":{\"type\":\"VOLUME\",\"breaks\":[{\"minimumQuantity\":\"2\",\"discount\":{\"type\":\"PERCENTAGE\",\"percentage\":\"15\"}},{\"minimumQuantity\":\"3\",\"discount\":{\"type\":\"PERCENTAGE\",\"percentage\":\"20\"}},{\"minimumQuantity\":\"5\",\"discount\":{\"type\":\"PERCENTAGE\",\"percentage\":\"25\"}}],\"appliesTo\":\"ELIGIBLE_LINE_ITEMS\",\"basedOn\":\"QUANTITY\",\"disableCurrencyConversion\":false}},\"otherwise\":null},\"otherwise\":null}},\"customerEligibility\":{\"type\":\"ALL_CUSTOMERS\"},\"productEligibility\":{\"type\":\"ALL_PRODUCTS\"},\"developerOptions\":{\"alwaysThrow\":false},\"minimumPurchaseRequirements\":{\"requirementType\":\"NONE\",\"quantity\":\"0\",\"subtotal\":\"0\",\"appliesTo\":\"ELIGIBLE_LINE_ITEMS\"},\"maximumPurchaseRequirements\":{\"requirementType\":\"NONE\",\"quantity\":\"0\",\"subtotal\":\"0\",\"appliesTo\":\"ELIGIBLE_LINE_ITEMS\"},\"value\":{\"type\":\"PERCENTAGE\",\"percentage\":\"0\"},\"appliesToSellingPlans\":\"ALL_SELLING_PLANS\",\"salePriceHandlingStrategy\":\"APPLY_TO_COMPARE_AT_PRICE\",\"cartLineSortOrder\":\"HIGHEST_PRICED_PRODUCTS\"}
1089,\"startDate\":\"2026-09-14T06:45:00Z\",\"endDate\":\"2026-09-30T07:00:00Z\",\"discountClass\":\"PRODUCT\",\"discountClasses\":[\"PRODUCT\"]}","1870302347607":"null","1870859206999":"null","1871190851927":"null","1871433007447":"null","1875019956567":"null","1875066388823":"null","1875068551511":"null","1875069796695":"null","1875071140183":"null","1875715227991":"null","1875719487831":"{\"config\":{\"isEnabled\":true,\"message\":\"Anim - Offre Surprise US\",\"customerEligibility\":{\"type\":\"ALL_CUSTOMERS\"},\"productEligibility\":{\"type\":\"ALL_PRODUCTS\"},\"value\":{\"type\":\"PERCENTAGE\",\"percentage\":\"0\"},\"customLogic\":{\"id\":\"root\",\"type\":\"ROOT\",\"position\":{\"x\":0,\"y\":0},\"dimensions\":{\"width\":150,\"height\":0},\"entryPoint\":{\"id\":\"check-if-0\",\"then\":{\"id\":\"add-to-cart-0\",\"type\":\"ADD_TO_CART\",\"title\":\"Automatic add to cart for product 21288A1430\",\"position\":{\"x\":642,\"y\":0},\"variants\":{\"10447825568087\":\"52333258178903\"},\"dimensions\":{\"width\":650,\"height\":468},\"quantities\":{\"21288A1430\":1}},\"type\":\"CHECK_IF\",\"position\":{\"x\":246,\"y\":0},\"matchType\":\"AND\",\"otherwise\":null,\"conditions\":[{\"type\":\"PURCHASE_REQUIREMENTS\",\"minOrMax\":\"MIN\",\"requirements\":{\"quantity\":\"0\",\"subtotal\":\"34.05\",\"appliesTo\":\"ELIGIBLE_LINE_ITEMS\",\"requirementType\":\"SUBTOTAL\",\"disableCurrencyConversion\":false}},{\"type\":\"CUSTOMER_ELIGIBILITY\",\"eligibility\":{\"type\":\"LOCATION\",\"countryCodes\":[\"US\"]},\"includeOrExclude\":\"INCLUDE\"}],\"dimensions\":{\"width\":292,\"height\":285},\"tooltips\":{}}},\"developerOptions\":{\"alwaysThrow\":false},\"cartLineSortOrder\":\"NONE\"},\"startDate\":\"2026-05-06T13:46:40Z\",\"endDate\":\"2026-05-11T07:30:00Z\",\"discountClass\":\"AUTO_ADD_TO_CART\",\"discountClasses\":[\"AUTO_ADD_TO_CART\"]}","1881120178519":"{\"config\":{\"isEnabled\":true,\"message\":\"Anim - Memorial day US 100g\",\"customerEligibility\":{\"type\":\"ALL_CUSTOMERS\"},\"productEligibility\":{\"type\":\"ALL_PRODUCTS\"},\"value\":{\"type\":\"PERCENTAGE\",\"percentage\":\"0\"},\"customLogic\":{\"id\":\"root\",\"type\":\"ROOT\",\"position\":{\"x\":0,\"y\":0},\"dimensions\":{\"width\":150,\"height\":0},\"entryPoint\":{\"id\":\"check-if770\",\"type\":\"CHECK_IF\",\"matchType\":\"AND\",\"then\":{\"id\":\"buy-x346\",\"then\":{\"id\":\"wizard-1913-then-auto-add-to-cart\",\"type\":\"ADD_TO_CART\",\"title\":\"Memorial Day Offer\",\"position\":{\"x\":1278.0136518771333,\"y\":2.5197952218430046},\"variants\":{\"10447825862999\":\"52333259882839\"},\"dimensions\":{\"width\":650,\"height\":468}},\"type\":\"BUY_X\",\"position\":{\"x\":578,\"y\":0},\"otherwise\":null,\"dimensions\":{\"width\":584,\"height\":2543},\"requirements\":[{\"quantity\":3,\"productEligibility\":{\"type\":\"SPECIFIC_PRODUCT_VARIANTS\",\"compactFormat\":{\"10447852339543\":\"52333321781591\",\"10447852372311\":\"52333322076503\",\"10447852634455\":\"52333323190615\",\"10447852831063\":\"52333323583831\",\"10447852929367\":\"52333323714903\",\"10447852994903\":\"52333324796247\",\"10447853224279\":\"52333325058391\",\"10447853289815\":\"52333325713751\",\"10447853453655\":\"52333325910359\",\"10447853584727\":\"52333326467415\",\"10447853748567\":\"52333327712599\",\"10447853814103\":\"52333327548759\",\"10447853945175\":\"52333328269655\",\"10447854109015\":\"52333329416535\",\"10447854436695\":\"52333330530647\",\"10447854534999\":\"52333330694487\",\"10447854928215\":\"52333331284311\",\"10447854993751\":\"52333331415383\",\"10447855157591\":\"52333332037975\",\"10447855354199\":\"52333333872983\",\"10447855518039\":\"52333334495575\",\"10447855780183\":\"52333335216471\",\"10447855944023\":\"52333335937367\",\"10447856075095\":\"52333336396119\",\"10447856173399\":\"52333336265047\",\"10447856370007\":\"52333337444695\",\"10447856468311\":\"52333337706839\",\"10447856697687\":\"52333338100055\",\"10447856959831\":\"52333338689879\",\"10447857025367\":\"52333338820951\",\"10447857418583\":\"52333340033367\",\"10447857582423\":\"52333340688727\",\"10447857680727\":\"52333341016407\",\"10447857779031\":\"52333341737303\",\"10447857811799\"
1089:\"52333341868375\",\"10447857910103\":\"52333342425431\",\"10447857975639\":\"52333342261591\",\"10447858041175\":\"52333342490967\",\"10447858106711\":\"52333342687575\",\"10447858205015\":\"52333343277399\",\"10447858303319\":\"52333343244631\",\"10447858499927\":\"52333344096599\",\"10447858565463\":\"52333343899991\",\"10447858630999\":\"52333344555351\",\"10447858729303\":\"52333344293207\",\"10447858827607\":\"52333345374551\",\"10447858925911\":\"52333345538391\",\"10447858991447\":\"52333345866071\",\"10447859089751\":\"52333346423127\",\"10447859188055\":\"52333346619735\",\"10447859286359\":\"52333346292055\",\"10447859417431\":\"52333347111255\",\"10447859482967\":\"52333347078487\",\"10447859515735\":\"52333347307863\",\"10447859581271\":\"52333347471703\",\"10447859646807\":\"52333347930455\",\"10447859712343\":\"52333348454743\",\"10447859777879\":\"52333348323671\",\"10447859843415\":\"52333348421975\",\"10447859974487\":\"52333349110103\",\"10447860007255\":\"52333349044567\",\"10447860498775\":\"52333350682967\",\"10447860793687\":\"52333351076183\",\"10447860826455\":\"52333351272791\",\"10447861023063\":\"52333351567703\",\"10447861121367\":\"52333351436631\",\"10447861350743\":\"52333351829847\",\"10447861743959\":\"52333352747351\",\"10447861776727\":\"52333352780119\",\"10447861907799\":\"52333353173335\",\"10447861973335\":\"52333353468247\",\"10447862006103\":\"52333354025303\",\"10447862104407\":\"52333353795927\",\"10447862366551\":\"52333354844503\",\"10447862563159\":\"52333355106647\",\"10447862595927\":\"52333355368791\",\"10447862694231\":\"52333355729239\",\"10447862792535\":\"52333355532631\",\"10447862956375\":\"52333357302103\",\"10447863021911\":\"52333357531479\",\"10447863185751\":\"52333358121303\",\"10447863415127\":\"52333358842199\",\"10447863644503\":\"52333358809431\",\"10447863710039\":\"52333359595863\",\"10447863742807\":\"52333359726935\",\"10544432054615\":\"52723179520343\",\"10619609350487\":\"53000667267415\"},\"selectedProductVariants\":[]}}],\"maximumTimesToApply\":1},\"otherwise\":null,\"conditions\":[{\"type\":\"CUSTOMER_ELIGIBILITY\",\"includeOrExclude\":\"INCLUDE\",\"eligibility\":{\"type\":\"LOCATION\",\"countryCodes\":[\"US\"]}}],\"position\":{\"x\":246,\"y\":0},\"dimensions\":{\"width\":228,\"height\":212},\"tooltips\":{}}},\"developerOptions\":{\"alwaysThrow\":false},\"cartLineSortOrder\":\"NONE\"},\"startDate\":\"2026-05-21T07:00:00Z\",\"endDate\":\"2026-05-28T07:00:00Z\",\"discountClass\":\"AUTO_ADD_TO_CART\",\"discountClasses\":[\"AUTO_ADD_TO_CART\"]}","1881120276823":"{\"config\":{\"isEnabled\":true,\"message\":\"Anim - Memorial day US\",\"customerEligibility\":{\"type\":\"ALL_CUSTOMERS\"},\"productEligibility\":{\"type\":\"ALL_PRODUCTS\"},\"value\":{\"type\":\"PERCENTAGE\",\"percentage\":\"0\"},\"customLogic\":{\"id\":\"root\",\"type\":\"ROOT\",\"position\":{\"x\":0,\"y\":0},\"dimensions\":{\"width\":150,\"height\":0},\"entryPoint\":{\"id\":\"check-if311\",\"then\":{\"id\":\"wizard-1913-then-auto-add-to-cart\",\"type\":\"ADD_TO_CART\",\"title\":\"Memorial Day Offer\",\"position\":{\"x\":621.8781750594911,\"y\":-1.9944625027041383},\"variants\":{\"10447825862999\":\"52333259882839\"},\"dimensions\":{\"width\":650,\"height\":468}},\"type\":\"CHECK_IF\",\"position\":{\"x\":235.3695210081913,\"y\":-458.7642267131671},\"matchType\":\"AND\",\"otherwise\":null,\"conditions\":[{\"type\":\"PRODUCT_ELIGIBILITY\",\"eligibility\":{\"type\":\"SPECIFIC_PRODUCT_VARIANTS\",\"compactFormat\":{\"10447852372311\":\"52333322273111,52333322305879\",\"10447852634455\":\"52333323354455,52333323387223\",\"10447852831063\":\"52333323911511,52333323944279\",\"10447852929367\":\"52333324435799,52333324468567\",\"10447852994903\":\"52333324992855,52333325025623\",\"10447853224279\":\"52333325484375,52333325517143\",\"10447853289815\":\"52333325844823,52333325877591\",\"10447853453655\":\"52333326369111,52333326401879\",\"10447853584727\":\"52333327450455,52333327483223\",\"10447853748567\":\"52333327778135,52333327810903\",\"10447853945175\":\"52333328925015,52333328957783\",\"10447854109015\":\"52333329547607,52333329580375\",\"10447854436695\":\"52333330628951,52333330661719\",\"10447854797143\":\"52333331349847,52333331382615\",\"10447854928215\":\"52333332726103,52333332758871\",\"10447854993751\":\"52333332201815,52333332234583\",\"10447855157591\":\"52333332988247,52333333021015\",\"10447855354199\"
1089:\"52333334069591,52333334102359\",\"10447855518039\":\"52333334593879,52333334626647\",\"10447855780183\":\"52333335413079,52333335445847\",\"10447855944023\":\"52333335970135,52333336002903\",\"10447856173399\":\"52333336854871,52333336887639\",\"10447856468311\":\"52333337936215,52333337968983\",\"10447856697687\":\"52333338591575,52333338624343\",\"10447856959831\":\"52333339279703,52333339312471\",\"10447857418583\":\"52333340524887,52333340557655\",\"10447857582423\":\"52333341114711,52333341147479\",\"10447857680727\":\"52333341442391,52333341475159\",\"10447857811799\":\"52333341933911,52333341966679\",\"10447857975639\":\"52333342327127,52333342359895\",\"10447858041175\":\"52333342622039,52333342654807\",\"10447858106711\":\"52333343048023,52333343080791\",\"10447858205015\":\"52333343310167,52333343342935\",\"10447858303319\":\"52333343801687,52333343834455\",\"10447858499927\":\"52333344129367,52333344162135\",\"10447858565463\":\"52333344424279,52333344457047\",\"10447858630999\":\"52333344686423,52333344719191\",\"10447858729303\":\"52333345014103,52333345046871\",\"10447858827607\":\"52333345407319,52333345440087\",\"10447858925911\":\"52333345702231,52333345734999\",\"10447858991447\":\"52333345964375,52333345997143\",\"10447859089751\":\"52333346488663,52333346521431\",\"10447859188055\":\"52333346750807,52333346783575\",\"10447859286359\":\"52333346947415,52333346980183\",\"10447859417431\":\"52333347242327,52333347275095\",\"10447859482967\":\"52333347406167,52333347438935\",\"10447859515735\":\"52333347537239,52333347570007\",\"10447859581271\":\"52333347864919,52333347897687\",\"10447859646807\":\"52333348258135,52333348290903\",\"10447859712343\":\"52333348585815,52333348618583\",\"10447859777879\":\"52333348356439,52333348389207\",\"10447859843415\":\"52333348946263,52333348979031\",\"10447859974487\":\"52333349306711,52333349339479\",\"10447860007255\":\"52333349732695,52333349765463\",\"10447860498775\":\"52333350814039,52333350846807\",\"10447860793687\":\"52333351207255,52333351240023\",\"10447860826455\":\"52333351338327,52333351371095\",\"10447861023063\":\"52333351633239,52333351666007\",\"10447861121367\":\"52333351960919,52333351993687\",\"10447861350743\":\"52333352485207,52333352517975\",\"10447861743959\":\"52333352943959,52333352976727\",\"10447861776727\":\"52333353238871,52333353271639\",\"10447861973335\":\"52333353664855,52333353697623\",\"10447862006103\":\"52333354156375,52333354189143\",\"10447862104407\":\"52333354320215,52333354352983\",\"10447862366551\":\"52333354975575,52333355008343\",\"10447862563159\":\"52333355270487,52333355303255\",\"10447862595927\":\"52333355401559,52333355434327\",\"10447862694231\":\"52333355860311,52333355893079\",\"10447862792535\":\"52333355991383,52333356024151\",\"10447862956375\":\"52333357334871,52333357367639\",\"10447863021911\":\"52333357695319,52333357728087\",\"10447863185751\":\"52333358252375,52333358285143\",\"10447863644503\":\"52333359268183,52333359300951\",\"10447863710039\":\"52333359628631,52333359661399\",\"10447863742807\":\"52333359759703,52333359792471\",\"10544432054615\":\"52723181027671,52723181060439\",\"10614250701143\":\"52981540225367,52981542355287\",\"10619609350487\":\"53441839595863,53441839628631\",\"10827922014551\":\"53472634732887,53472634765655\"},\"selectedProductVariants\":[]},\"includeOrExclude\":\"INCLUDE\"},{\"type\":\"CUSTOMER_ELIGIBILITY\",\"eligibility\":{\"type\":\"LOCATION\",\"countryCodes\":[\"US\"]},\"includeOrExclude\":\"INCLUDE\"}],\"dimensions\":{\"width\":292,\"height\":3165}}},\"developerOptions\":{\"alwaysThrow\":false},\"cartLineSortOrder\":\"NONE\"},\"startDate\":\"2026-05-21T07:00:00Z\",\"endDate\":\"2026-05-28T07:00:00Z\",\"discountClass\":\"AUTO_ADD_TO_CART\",\"discountClasses\":[\"AUTO_ADD_TO_CART\"]}","1881503662423":"{\"config\":{\"isEnabled\":true,\"message\":\"Offre Surprise CH\",\"customerEligibility\":{\"type\":\"ALL_CUSTOMERS\"},\"productEligibility\":{\"type\":\"ALL_PRODUCTS\"},\"value\":{\"type\":\"PERCENTAGE\",\"percentage\":\"0\"},\"customLogic\":{\"id\":\"root\",\"type\":\"ROOT\",\"position\":{\"x\":0,\"y\":0}
1089,\"dimensions\":{\"width\":150,\"height\":0},\"entryPoint\":{\"id\":\"check-if-0\",\"then\":{\"id\":\"add-to-cart-0\",\"type\":\"ADD_TO_CART\",\"title\":\"Automatic add to cart for product 21718A1030\",\"position\":{\"x\":759.3159669361214,\"y\":58.76435272045023},\"variants\":{\"10447860007255\":\"52333349568855\"},\"discounts\":{\"52333258178903\":{\"type\":\"PERCENTAGE\",\"percentage\":\"10\"}},\"dimensions\":{\"width\":650,\"height\":468},\"quantities\":{\"21288A1430\":1,\"52333258178903\":1}},\"type\":\"CHECK_IF\",\"position\":{\"x\":246,\"y\":0},\"matchType\":\"AND\",\"otherwise\":null,\"conditions\":[{\"type\":\"PURCHASE_REQUIREMENTS\",\"minOrMax\":\"MIN\",\"requirements\":{\"quantity\":\"0\",\"subtotal\":\"50.00\",\"appliesTo\":\"ELIGIBLE_LINE_ITEMS\",\"requirementType\":\"SUBTOTAL\",\"disableCurrencyConversion\":true}},{\"type\":\"CUSTOMER_ELIGIBILITY\",\"eligibility\":{\"type\":\"LOCATION\",\"countryCodes\":[\"CH\"]},\"includeOrExclude\":\"INCLUDE\"}],\"dimensions\":{\"width\":292,\"height\":305},\"tooltips\":{}}},\"developerOptions\":{\"alwaysThrow\":false},\"cartLineSortOrder\":\"NONE\"},\"startDate\":\"2026-05-27T07:00:00Z\",\"endDate\":\"2026-06-03T07:00:00Z\",\"discountClass\":\"AUTO_ADD_TO_CART\",\"discountClasses\":[\"AUTO_ADD_TO_CART\"]}","1881504055639":"{\"config\":{\"isEnabled\":true,\"message\":\"Offre Surprise INT\",\"customerEligibility\":{\"type\":\"ALL_CUSTOMERS\"},\"productEligibility\":{\"type\":\"ALL_PRODUCTS\"},\"value\":{\"type\":\"PERCENTAGE\",\"percentage\":\"0\"},\"customLogic\":{\"id\":\"root\",\"type\":\"ROOT\",\"position\":{\"x\":0,\"y\":0},\"dimensions\":{\"width\":150,\"height\":0},\"entryPoint\":{\"id\":\"check-if-0\",\"then\":{\"id\":\"add-to-cart-0\",\"type\":\"ADD_TO_CART\",\"title\":\"Automatic add to cart for product 21718A1030\",\"position\":{\"x\":793.2041845721438,\"y\":53.80510135908108},\"variants\":{\"10447860007255\":\"52333349568855\"},\"discounts\":{\"52333258178903\":{\"type\":\"PERCENTAGE\",\"percentage\":\"10\"}},\"dimensions\":{\"width\":650,\"height\":468},\"quantities\":{\"21288A1430\":1,\"52333258178903\":1}},\"type\":\"CHECK_IF\",\"position\":{\"x\":246,\"y\":0},\"matchType\":\"AND\",\"otherwise\":null,\"conditions\":[{\"type\":\"PURCHASE_REQUIREMENTS\",\"minOrMax\":\"MIN\",\"requirements\":{\"quantity\":\"0\",\"subtotal\":\"30.00\",\"appliesTo\":\"ELIGIBLE_LINE_ITEMS\",\"requirementType\":\"SUBTOTAL\",\"disableCurrencyConversion\":false}},{\"type\":\"CUSTOMER_ELIGIBILITY\",\"eligibility\":{\"type\":\"LOCATION\",\"countryCodes\":[\"FR\",\"DE\",\"BE\",\"IT\",\"ES\",\"AT\",\"NL\",\"AD\",\"BG\",\"HR\",\"DK\",\"EE\",\"FI\",\"GR\",\"HU\",\"IE\",\"JE\",\"LU\",\"MT\",\"MQ\",\"MC\",\"ME\",\"NO\",\"MD\",\"RO\",\"UA\",\"GB\",\"RS\",\"SI\",\"SK\",\"SE\",\"BL\",\"LI\",\"GG\",\"LT\",\"LV\"]},\"includeOrExclude\":\"INCLUDE\"}],\"dimensions\":{\"width\":292,\"height\":425}}},\"developerOptions\":{\"alwaysThrow\":false},\"cartLineSortOrder\":\"NONE\"},\"startDate\":\"2026-05-27T07:00:00Z\",\"endDate\":\"2026-06-03T07:00:00Z\",\"discountClass\":\"AUTO_ADD_TO_CART\",\"discountClasses\":[\"AUTO_ADD_TO_CART\"]}","1886729371991":"{\"config\":{\"message\":\"10% sur coffrets - Merci maîtresse\",\"isEnabled\":true,\"customLogic\":{\"id\":\"root\",\"type\":\"ROOT\",\"position\":{\"x\":0,\"y\":0},\"dimensions\":{\"width\":150,\"height\":0},\"entryPoint\":{\"id\":\"check-if-countries\",\"then\":{\"id\":\"apply-discount-0\",\"type\":\"APPLY_DISCOUNT\",\"title\":\"10% off for eligible countries and products\",\"value\":{\"type\":\"FIXED_PRICE\",\"price\":\"21.50\",\"appliesTo\":\"ELIGIBLE_LINE_ITEMS\",\"disableCurrencyConversion\":false,\"onlyApplyDiscountOncePerOrder\":false},\"position\":{\"x\":432.6586370687952,\"y\":234.41393115033503},\"dimensions\":{\"width\":650,\"height\":899}},\"type\":\"CHECK_IF\",\"position\":{\"x\":96.08023153998283,\"y\":244.91843362280036},\"matchType\":\"AND\",\"otherwise\":{\"id\":\"check-if497\",\"then\":{\"id\":\"apply-discount294\",\"type\":\"APPLY_DISCOUNT\",\"title\":\"10% off for eligible countries an products\",\"value\":{\"type\":\"FIXED_PRICE\",\"price\":\"35.90\",\"appliesTo\":\"ELIGIBLE_LINE_ITEMS\",\"disableCurrencyConversion\":false,\"onlyApplyDiscountOncePerOrder\":false},\"position\":{\"x\":904.0802315399828,\"y\":1181.413931150335}
1089,\"dimensions\":{\"width\":650,\"height\":899}},\"type\":\"CHECK_IF\",\"position\":{\"x\":387.2717274525258,\"y\":1273.0237711643067},\"matchType\":\"AND\",\"otherwise\":{\"id\":\"check-if841\",\"then\":{\"id\":\"apply-discount341\",\"type\":\"APPLY_DISCOUNT\",\"title\":\"10% off eligible countries and products\",\"value\":{\"type\":\"FIXED_PRICE\",\"price\":\"26.90\",\"appliesTo\":\"ELIGIBLE_LINE_ITEMS\",\"disableCurrencyConversion\":false,\"onlyApplyDiscountOncePerOrder\":false},\"position\":{\"x\":1290.998231780325,\"y\":2123.850896700727},\"dimensions\":{\"width\":650,\"height\":899}},\"type\":\"CHECK_IF\",\"position\":{\"x\":208.08023153998283,\"y\":2294.4139311503345},\"matchType\":\"AND\",\"otherwise\":{\"id\":\"check-if374\",\"then\":{\"id\":\"apply-discount65\",\"type\":\"APPLY_DISCOUNT\",\"title\":\"10% off eligible countries and products\",\"value\":{\"type\":\"FIXED_PRICE\",\"price\":\"30.90\",\"appliesTo\":\"ELIGIBLE_LINE_ITEMS\",\"disableCurrencyConversion\":false,\"onlyApplyDiscountOncePerOrder\":false},\"position\":{\"x\":1295.624877361033,\"y\":3166.663316584657},\"dimensions\":{\"width\":650,\"height\":899}},\"type\":\"CHECK_IF\",\"position\":{\"x\":763.9062475351379,\"y\":3133.39511523607},\"matchType\":\"AND\",\"otherwise\":{\"id\":\"check-if961\",\"then\":{\"id\":\"apply-discount885\",\"type\":\"APPLY_DISCOUNT\",\"title\":\"10% off eligible countries and products\",\"value\":{\"type\":\"FIXED_PRICE\",\"price\":\"53.90\",\"appliesTo\":\"ELIGIBLE_LINE_ITEMS\",\"onlyApplyDiscountOncePerOrder\":false},\"position\":{\"x\":2063.2140494679365,\"y\":4111.852475141121},\"dimensions\":{\"width\":650,\"height\":899}},\"type\":\"CHECK_IF\",\"position\":{\"x\":829.0101565706727,\"y\":4336.396814139581},\"matchType\":\"AND\",\"otherwise\":null,\"conditions\":[{\"type\":\"PRODUCT_ELIGIBILITY\",\"eligibility\":{\"type\":\"SPECIFIC_PRODUCTS\",\"asListOfIds\":\"10447826256215\",\"selectedProducts\":[]},\"includeOrExclude\":\"INCLUDE\"}],\"dimensions\":{\"width\":269,\"height\":212}},\"conditions\":[{\"type\":\"PRODUCT_ELIGIBILITY\",\"eligibility\":{\"type\":\"SPECIFIC_PRODUCTS\",\"asListOfIds\":\"10608695804247,10608696000855,10608695935319,10608696262999\",\"selectedProducts\":[]},\"includeOrExclude\":\"INCLUDE\"}],\"dimensions\":{\"width\":292,\"height\":312}},\"conditions\":[{\"type\":\"PRODUCT_ELIGIBILITY\",\"eligibility\":{\"type\":\"SPECIFIC_PRODUCTS\",\"asListOfIds\":\"10608696557911,10608695607639,10608696492375,10608696066391\",\"selectedProducts\":[]},\"includeOrExclude\":\"INCLUDE\"}],\"dimensions\":{\"width\":292,\"height\":272}},\"conditions\":[{\"type\":\"PRODUCT_ELIGIBILITY\",\"eligibility\":{\"type\":\"SPECIFIC_PRODUCTS\",\"asListOfIds\":\"10447830384983,10447828844887\",\"selectedProducts\":[]},\"includeOrExclude\":\"INCLUDE\"}],\"dimensions\":{\"width\":292,\"height\":232}},\"conditions\":[{\"type\":\"CUSTOMER_ELIGIBILITY\",\"eligibility\":{\"type\":\"LOCATION\",\"countryCodes\":[\"AT\",\"DE\",\"DK\",\"BE\",\"BG\",\"HR\",\"ES\",\"EE\",\"FI\",\"FR\",\"GR\",\"GG\",\"HU\",\"IE\",\"IS\",\"IT\",\"JE\",\"LV\",\"LI\",\"LT\",\"LU\",\"MT\",\"MQ\",\"MC\",\"ME\",\"NO\",\"NL\",\"PT\",\"MD\",\"RE\",\"RO\",\"GB\",\"BL\",\"RS\",\"SK\",\"SI\",\"SE\",\"CH\",\"UA\",\"AD\"]},\"includeOrExclude\":\"INCLUDE\"},{\"type\":\"PRODUCT_ELIGIBILITY\",\"eligibility\":{\"type\":\"SPECIFIC_PRODUCTS\",\"asListOfIds\":\"10447830155607,10447831597399,10447828681047,10447825502551,10447825797463,10447825928535,10544750625111\",\"selectedProducts\":[]},\"includeOrExclude\":\"INCLUDE\"}],\"dimensions\":{\"width\":292,\"height\":525}}},\"customerEligibility\":{\"type\":\"ALL_CUSTOMERS\"},\"productEligibility\":{\"type\":\"ALL_PRODUCTS\"},\"developerOptions\":{\"alwaysThrow\":false},\"minimumPurchaseRequirements\":{\"requirementType\":\"NONE\",\"quantity\":\"0\",\"subtotal\":\"0\",\"appliesTo\":\"ELIGIBLE_LINE_ITEMS\"},\"maximumPurchaseRequirements\":{\"requirementType\":\"NONE\",\"quantity\":\"0\",\"subtotal\":\"0\",\"appliesTo\":\"ELIGIBLE_LINE_ITEMS\"},\"value\":{\"type\":\"PERCENTAGE\",\"percentage\":\"0\"},\"appliesToSellingPlans\":\"ALL_SELLING_PLANS\",\"salePriceHandlingStrategy\":\"APPLY_TO_COMPARE_AT_PRICE\",\"cartLineSortOrder\":\"HIGHEST_PRICED_PRODUCTS\"}
1089,\"startDate\":\"2026-06-10T07:00:00Z\",\"endDate\":\"2026-06-24T07:00:00Z\",\"discountClass\":\"PRODUCT\",\"discountClasses\":[\"PRODUCT\"]}","1888212189527":"null","1889118093655":"{\"config\":{\"value\":{\"type\":\"PERCENTAGE\",\"percentage\":\"0\"},\"message\":\"Anim - Offre Surprise BBDetox US\",\"isEnabled\":true,\"customLogic\":{\"id\":\"root\",\"type\":\"ROOT\",\"position\":{\"x\":0,\"y\":0},\"dimensions\":{\"width\":150,\"height\":0},\"entryPoint\":{\"id\":\"check-if-0\",\"then\":{\"id\":\"add-to-cart-0\",\"type\":\"ADD_TO_CART\",\"title\":\"Surprise Offer\",\"position\":{\"x\":654.7607508532424,\"y\":0},\"variants\":{\"10898828165463\":\"53660324856151\"},\"dimensions\":{\"width\":650,\"height\":468},\"quantities\":{\"21288A1430\":1}},\"type\":\"CHECK_IF\",\"position\":{\"x\":246,\"y\":0},\"matchType\":\"AND\",\"otherwise\":null,\"conditions\":[{\"type\":\"PURCHASE_REQUIREMENTS\",\"minOrMax\":\"MIN\",\"requirements\":{\"quantity\":\"0\",\"subtotal\":\"80.00\",\"appliesTo\":\"ELIGIBLE_LINE_ITEMS\",\"requirementType\":\"SUBTOTAL\",\"disableCurrencyConversion\":true}},{\"type\":\"CUSTOMER_ELIGIBILITY\",\"eligibility\":{\"type\":\"LOCATION\",\"countryCodes\":[\"US\"]},\"includeOrExclude\":\"INCLUDE\"}],\"dimensions\":{\"width\":292,\"height\":305}}},\"developerOptions\":{\"alwaysThrow\":false},\"cartLineSortOrder\":\"NONE\",\"productEligibility\":{\"type\":\"ALL_PRODUCTS\"},\"customerEligibility\":{\"type\":\"ALL_CUSTOMERS\"}},\"startDate\":\"2026-06-17T07:00:00Z\",\"endDate\":\"2026-06-24T07:00:00Z\",\"discountClass\":\"AUTO_ADD_TO_CART\",\"discountClasses\":[\"AUTO_ADD_TO_CART\"]}","1891852058967":"null","1892312252759":"{\"config\":{\"message\":\"Anim - Soldes + Boost -10%\",\"isEnabled\":true,\"customLogic\":{\"id\":\"root\",\"type\":\"ROOT\",\"position\":{\"x\":0,\"y\":0},\"dimensions\":{\"width\":150,\"height\":0},\"entryPoint\":{\"id\":\"wizard-3939\",\"then\":{\"id\":\"check-if609\",\"type\":\"CHECK_IF\",\"matchType\":\"AND\",\"then\":{\"id\":\"wizard-3939-then-apply-discount\",\"type\":\"APPLY_DISCOUNT\",\"title\":\"EXTRA -10%\",\"value\":{\"type\":\"PERCENTAGE\",\"percentage\":\"10\"},\"position\":{\"x\":988.8805555555555,\"y\":-4.251587301587307},\"dimensions\":{\"width\":332,\"height\":316}},\"otherwise\":{\"id\":\"check-if629\",\"type\":\"CHECK_IF\",\"matchType\":\"AND\",\"then\":{\"id\":\"apply-discount962\",\"type\":\"APPLY_DISCOUNT\",\"value\":{\"type\":\"PERCENTAGE\",\"percentage\":\"10\"},\"dimensions\":{\"width\":332,\"height\":316},\"position\":{\"x\":1442,\"y\":359.7484126984127},\"title\":\"EXTRA -10%\"},\"otherwise\":null,\"conditions\":[{\"type\":\"MARKET_ELIGIBILITY\",\"includeOrExclude\":\"INCLUDE\",\"eligibility\":{\"type\":\"SPECIFIC_MARKETS\",\"ids\":[\"103343522135\"]}},{\"type\":\"PURCHASE_REQUIREMENTS\",\"minOrMax\":\"MIN\",\"requirements\":{\"requirementType\":\"SUBTOTAL\",\"quantity\":\"0\",\"subtotal\":\"100.00\",\"appliesTo\":\"ENTIRE_ORDER\",\"disableCurrencyConversion\":true}}],\"dimensions\":{\"width\":292,\"height\":305},\"position\":{\"x\":1054,\"y\":359.7484126984127},\"tooltips\":{}},\"conditions\":[{\"type\":\"MARKET_ELIGIBILITY\",\"includeOrExclude\":\"INCLUDE\",\"eligibility\":{\"type\":\"SPECIFIC_MARKETS\",\"ids\":[\"103343161687\",\"102924747095\",\"103343259991\",\"103343194455\"]}},{\"type\":\"PURCHASE_REQUIREMENTS\",\"minOrMax\":\"MIN\",\"requirements\":{\"requirementType\":\"SUBTOTAL\",\"quantity\":\"0\",\"subtotal\":\"80.00\",\"appliesTo\":\"ENTIRE_ORDER\",\"disableCurrencyConversion\":true}}],\"position\":{\"x\":654.2993386243385,\"y\":-4.251587301587307},\"dimensions\":{\"width\":292,\"height\":485},\"tooltips\":{}},\"type\":\"CHECK_IF\",\"position\":{\"x\":246,\"y\":0},\"matchType\":\"AND\",\"otherwise\":null,\"conditions\":[{\"type\":\"PRODUCT_ELIGIBILITY\",\"includeOrExclude\":\"EXCLUDE\",\"eligibility\":{\"type\":\"SPECIFIC_PRODUCT_TAGS\",\"tagsToCheck\":[\"Exclu Boost\"]}}],\"dimensions\":{\"width\":292,\"height\":232},\"tooltips\":{}}},\"customerEligibility\":{\"type\":\"ALL_CUSTOMERS\"},\"productEligibility\":{\"type\":\"ALL_PRODUCTS\"},\"developerOptions\":{\"alwaysThrow\":false},\"minimumPurchaseRequirements\":{\"requirementType\":\"NONE\",\"quantity\":\"0\",\"subtotal\":\"0\",\"appliesTo\":\"ELIGIBLE_LINE_ITEMS\"},\"maximumPurchaseRequirements\":{\"requirementType\":\"NONE\",\"quantity\":\"0\",\"subtotal\":\"0\",\"appliesTo\":\"ELIGIBLE_LINE_ITEMS\"},\"value\":{\"type\":\"PERCENTAGE\",\"percentage\":\"0\"},\"appliesToSellingPlans\":\"ALL_SELLING_PLANS\",\"salePriceHandlingStrategy\":\"STACK\",\"cartLineSortOrder\":\"HIGHEST_PRICED_PRODUCTS\"}
1089,\"startDate\":\"2026-07-01T07:00:00Z\",\"endDate\":\"2026-07-06T07:00:00Z\",\"discountClass\":\"PRODUCT\",\"discountClasses\":[\"PRODUCT\"]}","1894352847191":"null","1894356877655":"null","1896105509207":"null","1896336949591":"null","1899103420759":"null","1900413944151":"null","1902114603351":"{\"config\":{\"isEnabled\":true,\"message\":\"Anim - Offre Mémoire US\",\"customerEligibility\":{\"type\":\"ALL_CUSTOMERS\"},\"productEligibility\":{\"type\":\"ALL_PRODUCTS\"},\"value\":{\"type\":\"PERCENTAGE\",\"percentage\":\"0\"},\"customLogic\":{\"id\":\"root\",\"type\":\"ROOT\",\"position\":{\"x\":0,\"y\":0},\"dimensions\":{\"width\":150,\"height\":0},\"entryPoint\":{\"id\":\"check-if-0\",\"then\":{\"id\":\"add-to-cart-0\",\"type\":\"ADD_TO_CART\",\"title\":\"Summer Offer\",\"position\":{\"x\":654.7607508532424,\"y\":0},\"variants\":{\"10447858991447\":\"52333345931607\"},\"dimensions\":{\"width\":650,\"height\":468},\"quantities\":{\"21288A1430\":1}},\"type\":\"CHECK_IF\",\"position\":{\"x\":246,\"y\":0},\"matchType\":\"AND\",\"otherwise\":null,\"conditions\":[{\"type\":\"PURCHASE_REQUIREMENTS\",\"minOrMax\":\"MIN\",\"requirements\":{\"quantity\":\"0\",\"subtotal\":\"80.00\",\"appliesTo\":\"ELIGIBLE_LINE_ITEMS\",\"requirementType\":\"SUBTOTAL\",\"disableCurrencyConversion\":true}},{\"type\":\"CUSTOMER_ELIGIBILITY\",\"eligibility\":{\"type\":\"LOCATION\",\"countryCodes\":[\"US\"]},\"includeOrExclude\":\"INCLUDE\"}],\"dimensions\":{\"width\":292,\"height\":305}}},\"developerOptions\":{\"alwaysThrow\":false},\"cartLineSortOrder\":\"NONE\"},\"startDate\":\"2026-08-26T07:00:00Z\",\"endDate\":\"2026-09-03T07:00:59Z\",\"discountClass\":\"AUTO_ADD_TO_CART\",\"discountClasses\":[\"AUTO_ADD_TO_CART\"]}","1902580007255":"{\"config\":{\"message\":\"Anim - Flash US\",\"isEnabled\":true,\"customLogic\":{\"id\":\"root\",\"type\":\"ROOT\",\"position\":{\"x\":0,\"y\":0},\"dimensions\":{\"width\":150,\"height\":0},\"entryPoint\":{\"id\":\"wizard-7275\",\"then\":{\"id\":\"check-if824\",\"then\":{\"id\":\"wizard-7275-then-apply-discount\",\"type\":\"APPLY_DISCOUNT\",\"title\":\"Flash -20%\",\"value\":{\"type\":\"PERCENTAGE\",\"percentage\":\"20\"},\"position\":{\"x\":974,\"y\":0},\"dimensions\":{\"width\":332,\"height\":340}},\"type\":\"CHECK_IF\",\"position\":{\"x\":642,\"y\":0},\"matchType\":\"AND\",\"otherwise\":null,\"conditions\":[{\"type\":\"PURCHASE_REQUIREMENTS\",\"minOrMax\":\"MIN\",\"requirements\":{\"quantity\":\"0\",\"subtotal\":\"80.00\",\"appliesTo\":\"ENTIRE_ORDER\",\"requirementType\":\"SUBTOTAL\",\"disableCurrencyConversion\":true}}],\"dimensions\":{\"width\":292,\"height\":392},\"tooltips\":{}},\"type\":\"CHECK_IF\",\"position\":{\"x\":246,\"y\":0},\"matchType\":\"AND\",\"otherwise\":null,\"conditions\":[{\"type\":\"PRODUCT_ELIGIBILITY\",\"eligibility\":{\"type\":\"SPECIFIC_COLLECTIONS\",\"asListOfIds\":\"677345722711\",\"selectedCollections\":[]},\"includeOrExclude\":\"EXCLUDE\"},{\"type\":\"CUSTOMER_ELIGIBILITY\",\"eligibility\":{\"type\":\"LOCATION\",\"countryCodes\":[\"US\"]},\"includeOrExclude\":\"INCLUDE\"}],\"dimensions\":{\"width\":292,\"height\":285}}},\"customerEligibility\":{\"type\":\"ALL_CUSTOMERS\"},\"productEligibility\":{\"type\":\"ALL_PRODUCTS\"},\"developerOptions\":{\"alwaysThrow\":false},\"minimumPurchaseRequirements\":{\"requirementType\":\"NONE\",\"quantity\":\"0\",\"subtotal\":\"0\",\"appliesTo\":\"ELIGIBLE_LINE_ITEMS\"},\"maximumPurchaseRequirements\":{\"requirementType\":\"NONE\",\"quantity\":\"0\",\"subtotal\":\"0\",\"appliesTo\":\"ELIGIBLE_LINE_ITEMS\"},\"value\":{\"type\":\"PERCENTAGE\",\"percentage\":\"0\"},\"appliesToSellingPlans\":\"ALL_SELLING_PLANS\",\"salePriceHandlingStrategy\":\"APPLY_TO_COMPARE_AT_PRICE\",\"cartLineSortOrder\":\"HIGHEST_PRICED_PRODUCTS\"},\"startDate\":\"2026-09-03T07:00:00Z\",\"endDate\":\"2026-09-09T07:00:00Z\",\"discountClass\":\"PRODUCT\",\"discountClasses\":[\"PRODUCT\"]}","1908354285911":"{\"config\":{\"message\":\"[AXOME TEST VRAC] Anim - Offre vrac multi EU\",\"isEnabled\":true,\"customLogic\":{\"id\":\"root\",\"type\":\"ROOT\",\"position\":{\"x\":0,\"y\":0}
1089,\"dimensions\":{\"width\":150,\"height\":0},\"entryPoint\":{\"id\":\"check-if73\",\"then\":{\"id\":\"check-if469\",\"then\":{\"id\":\"check-if999\",\"then\":{\"id\":\"apply-discount173\",\"type\":\"APPLY_DISCOUNT\",\"title\":\"Discovery offer\",\"value\":{\"type\":\"VOLUME\",\"breaks\":[{\"discount\":{\"type\":\"PERCENTAGE\",\"percentage\":\"15\"},\"minimumQuantity\":\"2\"},{\"discount\":{\"type\":\"PERCENTAGE\",\"percentage\":\"20\"},\"minimumQuantity\":\"3\"},{\"discount\":{\"type\":\"PERCENTAGE\",\"percentage\":\"25\"},\"minimumQuantity\":\"5\"}],\"appliesTo\":\"ELIGIBLE_LINE_ITEMS\"},\"position\":{\"x\":1502.5203884551518,\"y\":124.12977312628155},\"dimensions\":{\"width\":606,\"height\":695}},\"type\":\"CHECK_IF\",\"position\":{\"x\":1075.9203004311887,\"y\":0},\"matchType\":\"AND\",\"otherwise\":null,\"conditions\":[{\"type\":\"PRODUCT_ELIGIBILITY\",\"eligibility\":{\"type\":\"SPECIFIC_PRODUCT_VARIANTS\",\"compactFormat\":{\"10447852339543\":\"52333321781591\",\"10447852372311\":\"52333322076503\",\"10447852634455\":\"52333323190615\",\"10447852831063\":\"52333323583831\",\"10447852929367\":\"52333323714903\",\"10447852994903\":\"52333324796247\",\"10447853224279\":\"52333325058391\",\"10447853289815\":\"52333325713751\",\"10447853453655\":\"52333325910359\",\"10447853584727\":\"52333326467415\",\"10447853748567\":\"52333327712599\",\"10447853814103\":\"52333327548759\",\"10447853945175\":\"52333328269655\",\"10447854109015\":\"52333329416535\",\"10447854436695\":\"52333330530647\",\"10447854534999\":\"52333330694487\",\"10447854928215\":\"52333331284311\",\"10447854993751\":\"52333331415383\",\"10447855157591\":\"52333332037975\",\"10447855354199\":\"52333333872983\",\"10447855518039\":\"52333334495575\",\"10447855780183\":\"52333335216471\",\"10447855944023\":\"52333335937367\",\"10447856173399\":\"52333336265047\",\"10447856468311\":\"52333337706839\",\"10447856697687\":\"52333338100055\",\"10447856959831\":\"52333338689879\",\"10447857025367\":\"52333338820951\",\"10447857418583\":\"52333340033367\",\"10447857582423\":\"52333340688727\",\"10447857680727\":\"52333341016407\",\"10447857811799\":\"52333341868375\",\"10447857910103\":\"52333342425431\",\"10447857975639\":\"52333342261591\",\"10447858041175\":\"52333342490967\",\"10447858106711\":\"52333342687575\",\"10447858205015\":\"52333343277399\",\"10447858303319\":\"52333343244631\",\"10447858499927\":\"52333344096599\",\"10447858565463\":\"52333343899991\",\"10447858630999\":\"52333344555351\",\"10447858729303\":\"52333344293207\",\"10447858827607\":\"52333345374551\",\"10447858925911\":\"52333345538391\",\"10447858991447\":\"52333345866071\",\"10447859089751\":\"52333346423127\",\"10447859188055\":\"52333346619735\",\"10447859286359\":\"52333346292055\",\"10447859417431\":\"52333347111255\",\"10447859482967\":\"52333347078487\",\"10447859515735\":\"52333347307863\",\"10447859581271\":\"52333347471703\",\"10447859646807\":\"52333347930455\",\"10447859712343\":\"52333348454743\",\"10447859777879\":\"52333348323671\",\"10447859843415\":\"52333348421975\",\"10447859974487\":\"52333349110103\",\"10447860007255\":\"52333349044567\",\"10447860498775\":\"52333350682967\",\"10447860793687\":\"52333351076183\",\"10447860826455\":\"52333351272791\",\"10447861023063\":\"52333351567703\",\"10447861121367\":\"52333351436631\",\"10447861350743\":\"52333351829847\",\"10447861743959\":\"52333352747351\",\"10447861776727\":\"52333352780119\",\"10447861973335\":\"52333353468247\",\"10447862006103\":\"52333354025303\",\"10447862104407\":\"52333353795927\",\"10447862333783\":\"52333354615127\",\"10447862366551\":\"52333354844503\",\"10447862563159\":\"52333355106647\",\"10447862595927\":\"52333355368791\",\"10447862694231\":\"52333355729239\",\"10447862792535\":\"52333355532631\",\"10447862956375\":\"52333357302103\",\"10447863021911\":\"52333357531479\",\"10447863185751\":\"52333358121303\",\"10447863415127\":\"52333358842199\",\"10447863644503\":\"52333358809431\",\"10447863710039\":\"52333359595863\",\"10447863742807\":\"52333359726935\",\"10544432054615\":\"52723179520343\",\"10619609350487\":\"53000667267415\"},\"selectedProductVariants\":[]},\"includeOrExclude\":\"INCLUDE\"}
1089],\"dimensions\":{\"width\":292,\"height\":1672}},\"type\":\"CHECK_IF\",\"position\":{\"x\":743.9203004311887,\"y\":0},\"matchType\":\"AND\",\"otherwise\":null,\"conditions\":[{\"type\":\"CUSTOMER_ELIGIBILITY\",\"eligibility\":{\"type\":\"SPECIFIC_CUSTOMERS\",\"asListOfIds\":\"10373484446039\",\"selectedCustomers\":[]},\"includeOrExclude\":\"INCLUDE\"}],\"dimensions\":{\"width\":292,\"height\":232}},\"type\":\"CHECK_IF\",\"position\":{\"x\":246,\"y\":-0.7681495390332884},\"matchType\":\"AND\",\"otherwise\":null,\"conditions\":[{\"type\":\"MARKET_ELIGIBILITY\",\"eligibility\":{\"ids\":[\"103343161687\",\"102924747095\",\"103343259991\",\"103343522135\"],\"type\":\"SPECIFIC_MARKETS\"},\"includeOrExclude\":\"INCLUDE\"}],\"dimensions\":{\"width\":292,\"height\":252}}},\"customerEligibility\":{\"type\":\"ALL_CUSTOMERS\"},\"productEligibility\":{\"type\":\"ALL_PRODUCTS\"},\"developerOptions\":{\"alwaysThrow\":false},\"minimumPurchaseRequirements\":{\"requirementType\":\"NONE\",\"quantity\":\"0\",\"subtotal\":\"0\",\"appliesTo\":\"ELIGIBLE_LINE_ITEMS\"},\"maximumPurchaseRequirements\":{\"requirementType\":\"NONE\",\"quantity\":\"0\",\"subtotal\":\"0\",\"appliesTo\":\"ELIGIBLE_LINE_ITEMS\"},\"value\":{\"type\":\"PERCENTAGE\",\"percentage\":\"0\"},\"appliesToSellingPlans\":\"ALL_SELLING_PLANS\",\"salePriceHandlingStrategy\":\"APPLY_TO_COMPARE_AT_PRICE\",\"cartLineSortOrder\":\"HIGHEST_PRICED_PRODUCTS\"},\"startDate\":\"2026-05-11T06:45:00Z\",\"endDate\":\"2026-07-23T09:50:15Z\",\"discountClass\":\"PRODUCT\",\"discountClasses\":[\"PRODUCT\"]}","1915775942999":"{\"config\":{\"isEnabled\":true,\"message\":\"Offre Tote Bag EU hors CH\",\"customerEligibility\":{\"type\":\"ALL_CUSTOMERS\"},\"productEligibility\":{\"type\":\"ALL_PRODUCTS\"},\"value\":{\"type\":\"PERCENTAGE\",\"percentage\":\"0\"},\"customLogic\":{\"id\":\"root\",\"type\":\"ROOT\",\"position\":{\"x\":0,\"y\":0},\"dimensions\":{\"width\":150,\"height\":0},\"entryPoint\":{\"id\":\"check-if-0\",\"then\":{\"id\":\"add-to-cart-0\",\"type\":\"ADD_TO_CART\",\"title\":\"Automatic add to cart for product 21718A1030\",\"position\":{\"x\":793.2041845721438,\"y\":53.80510135908108},\"variants\":{\"10447824847191\":\"52333256835415\"},\"discounts\":{\"52333258178903\":{\"type\":\"PERCENTAGE\",\"percentage\":\"10\"}},\"dimensions\":{\"width\":650,\"height\":468},\"quantities\":{\"21288A1430\":1,\"52333258178903\":1}},\"type\":\"CHECK_IF\",\"position\":{\"x\":246,\"y\":0},\"matchType\":\"AND\",\"otherwise\":null,\"conditions\":[{\"type\":\"PURCHASE_REQUIREMENTS\",\"minOrMax\":\"MIN\",\"requirements\":{\"quantity\":\"0\",\"subtotal\":\"55.00\",\"appliesTo\":\"ELIGIBLE_LINE_ITEMS\",\"requirementType\":\"SUBTOTAL\",\"disableCurrencyConversion\":false}},{\"type\":\"CUSTOMER_ELIGIBILITY\",\"eligibility\":{\"type\":\"LOCATION\",\"countryCodes\":[\"FR\",\"DE\",\"BE\",\"IT\",\"ES\",\"AT\",\"NL\",\"AD\",\"BG\",\"HR\",\"DK\",\"EE\",\"FI\",\"GR\",\"HU\",\"IE\",\"JE\",\"LU\",\"MT\",\"MQ\",\"MC\",\"ME\",\"NO\",\"MD\",\"RO\",\"UA\",\"GB\",\"RS\",\"SI\",\"SK\",\"SE\",\"BL\",\"LI\",\"GG\",\"LT\",\"LV\",\"PT\"]},\"includeOrExclude\":\"INCLUDE\"}],\"dimensions\":{\"width\":292,\"height\":425},\"tooltips\":{}}},\"developerOptions\":{\"alwaysThrow\":false},\"cartLineSortOrder\":\"NONE\"},\"startDate\":\"2026-08-05T07:00:00Z\",\"endDate\":\"2026-08-20T13:15:09Z\",\"discountClass\":\"AUTO_ADD_TO_CART\",\"discountClasses\":[\"AUTO_ADD_TO_CART\"]}","1915786789207":"{\"config\":{\"isEnabled\":true,\"message\":\"Offre Tote Bag CH\",\"customerEligibility\":{\"type\":\"ALL_CUSTOMERS\"},\"productEligibility\":{\"type\":\"ALL_PRODUCTS\"},\"value\":{\"type\":\"PERCENTAGE\",\"percentage\":\"0\"},\"customLogic\":{\"id\":\"root\",\"type\":\"ROOT\",\"position\":{\"x\":0,\"y\":0},\"dimensions\":{\"width\":150,\"height\":0},\"entryPoint\":{\"id\":\"check-if-0\",\"then\":{\"id\":\"add-to-cart-0\",\"type\":\"ADD_TO_CART\",\"title\":\"Automatic add to cart for product 21718A1030\",\"position\":{\"x\":759.3159669361214,\"y\":58.76435272045023},\"variants\":{\"10447824847191\":\"52333256835415\"},\"discounts\":{\"52333258178903\":{\"type\":\"PERCENTAGE\",\"percentage\":\"10\"}}
1089,\"dimensions\":{\"width\":650,\"height\":528},\"quantities\":{\"21288A1430\":1,\"52333258178903\":1}},\"type\":\"CHECK_IF\",\"position\":{\"x\":246,\"y\":0},\"matchType\":\"AND\",\"otherwise\":null,\"conditions\":[{\"type\":\"PURCHASE_REQUIREMENTS\",\"minOrMax\":\"MIN\",\"requirements\":{\"quantity\":\"0\",\"subtotal\":\"65.00\",\"appliesTo\":\"ELIGIBLE_LINE_ITEMS\",\"requirementType\":\"SUBTOTAL\",\"disableCurrencyConversion\":true}},{\"type\":\"CUSTOMER_ELIGIBILITY\",\"eligibility\":{\"type\":\"LOCATION\",\"countryCodes\":[\"CH\"]},\"includeOrExclude\":\"INCLUDE\"}],\"dimensions\":{\"width\":292,\"height\":305}}},\"developerOptions\":{\"alwaysThrow\":false},\"cartLineSortOrder\":\"NONE\"},\"startDate\":\"2026-08-05T07:00:00Z\",\"endDate\":\"2026-08-20T13:14:47Z\",\"discountClass\":\"AUTO_ADD_TO_CART\",\"discountClasses\":[\"AUTO_ADD_TO_CART\"]}","1925393514839":"null","1925966266711":"null","1936502849879":"null","1939191628119":"null","1939191693655":"null","1939191726423":"null","1939191857495":"null","1939191923031":"null","1940128039255":"null"}, 1090 "calculateDiscountBasedOnQuantity": false, 1091 "countryCode": "FR", 1092 "currencyCode": "EUR", 1093 "currencySymbol": "â¬", 1094 1095 "customer": null, 1096 1097 "customerMetafieldsToCheck": "", 1098 1099 "moneyFormat": "0,00 â¬", 1100 "moneyFormatString": "{{amount_with_comma_separator}} â¬", 1101 1102 "themeType": "auto_detect", 1103 "badgeTemplate": "[discount_percentage] OFF", 1104 "badgeCss": "", 1105 "descriptionTemplate": "[discount_message]", 1106 "descriptionCss": "", 1107 "priceOnSaleClass": "", 1108 "delay": 0, 1109 "logLevel": "error", 1110 "regularPriceTemplate": "[regular_price]", 1111 "salePriceTemplate": "[sale_price]", 1112 "regiosDiscountsAppProxyUrl": "\/apps\/regios-discounts", 1113 "useAppProxyForManualCodeStrikethrough": false, 1114 "cart": { 1115 "attributes": {}, 1116 "discountCodes": [], 1117 "items": [ 1118 1119 ] 1120 }, 1121 "featureFlags": "", 1122 "designMode": false, 1123 1124 "marketId": 102924747095, 1125 1126 1127 "doppV3Fallbacks": { 1128 1129 1130 "product": { 1131 "collectionIds": [675547185495,672475742551,672536330583,672536265047,672536559959,672541213015,685374013783,664820941143,675531293015,675544564055,672659636567,672659669335,675547349335,672659538263,675544662359,672659505495,672682213719,672475513175,672540033367,672540197207,672541507927,672541606231,672541671767,680712601943,685374079319,672533315927,685373849943,685373915479,672681132375,685373981015,671987466583,688773366103,675547119959,676031234391,672682377559,672475906391,672681951575,672475349335,688773267799,675546366295,678463963479,672681820503], 1132"compareAtPriceInCents": null, 1133"handle": "calendrier-de-lavent", 1134"title": "Calendrier de l'Avent", 1135"productId": 11020345999703, 1136"regularPriceInCents": 3890, 1137"tags": ["Access web","Accessoire","Coffret","Coffret \u0026 Cadeau","Infuseur","Infusion","Miniatures","Sachets","Thé noir","Thé vert","XMAS26"], 1138"url": "\/products\/calendrier-de-lavent", 1139"variantId": 54133287780695, 1140"vendor": "Kusmi Tea", 1141"metafields": [ 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 null 1153], 1154"variants": [ 1155 1156 { 1157 "id": 54133287780695, 1158 "title": "Default Title", 1159 "priceInCents": 3890, 1160 "compareAtPriceInCents": null, 1161 1162 "isOutOfStock": false, 1163 1164 "metafields": [ 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 null 1179 ], 1180 1181 "keep-this-last": "" 1182 } 1183 1184], 1185 1186"keep-this-last": "" 1187 1188 }, 1189 1190 "keep-this-last": "" 1191 } 1192 1193} 1194</script>
1194 1195
1196<script id="regios-dopp-script"> 1197 var configScript = document.getElementById('regios-dopp-config'); 1198 1199 if (!configScript) { 1200 throw new Error('[Regios Discounts] Critical error: Configuration script not found.'); 1201 } 1202 1203 var config = JSON.parse(configScript.textContent); 1204 window.RegiosDOPP = Object.assign(window.RegiosDOPP || {}, config); 1205</script>
1205 1206 1207 1208<!-- END app block --><!-- BEGIN app block: shopify://apps/microsoft-clarity/blocks/clarity_js/31c3d126-8116-4b4a-8ba1-baeda7c4aeea -->
1209<script type="text/javascript"> 1210 (function (c, l, a, r, i, t, y) { 1211 c[a] = c[a] || function () { (c[a].q = c[a].q || []).push(arguments); }; 1212 t = l.createElement(r); t.async = 1; t.src = "https://www.clarity.ms/tag/" + i + "?ref=shopify"; 1213 y = l.getElementsByTagName(r)[0]; y.parentNode.insertBefore(t, y); 1214 1215 c.Shopify.loadFeatures([{ name: "consent-tracking-api", version: "0.1" }], error => { 1216 if (error) { 1217 console.error("Error loading Shopify features:", error); 1218 return; 1219 } 1220 1221 c[a]('consentv2', { 1222 ad_Storage: c.Shopify.customerPrivacy.marketingAllowed() ? "granted" : "denied", 1223 analytics_Storage: c.Shopify.customerPrivacy.analyticsProcessingAllowed() ? "granted" : "denied", 1224 source: 101, 1225 }); 1226 }); 1227 1228 l.addEventListener("visitorConsentCollected", function (e) { 1229 c[a]('consentv2', { 1230 ad_Storage: e.detail.marketingAllowed ? "granted" : "denied", 1231 analytics_Storage: e.detail.analyticsAllowed ? "granted" : "denied", 1232 source: 101, 1233 }); 1234 }); 1235 })(window, document, "clarity", "script", "y7xetyy5wu"); 1236</script>
1236 1237 1238 1239 1240<!-- END app block --><!-- BEGIN app block: shopify://apps/klaviyo-email-marketing-sms/blocks/klaviyo-onsite-embed/2632fe16-c075-4321-a88b-50b567f42507 --> 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253
1253<script async src="https://static.klaviyo.com/onsite/js/WJ9Fzj/klaviyo.js?company_id=WJ9Fzj"></script>
1253 1254
1254<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>
1254 1255 1256 1257
1257<script id="viewed_product"> 1258 if (item == null) { 1259 var _learnq = _learnq || []; 1260 1261 var MetafieldReviews = null 1262 var MetafieldYotpoRating = null 1263 var MetafieldYotpoCount = null 1264 var MetafieldLooxRating = null 1265 var MetafieldLooxCount = null 1266 var okendoProduct = null 1267 var okendoProductReviewCount = null 1268 var okendoProductReviewAverageValue = null 1269 try { 1270 // The following fields are used for Customer Hub recently viewed in order to add reviews. 1271 // This information is not part of __kla_viewed. Instead, it is part of __kla_viewed_reviewed_items 1272 MetafieldReviews = {}; 1273 MetafieldYotpoRating = null 1274 MetafieldYotpoCount = null 1275 MetafieldLooxRating = null 1276 MetafieldLooxCount = null 1277 1278 okendoProduct = null 1279 // If the okendo metafield is not legacy, it will error, which then requires the new json formatted data 1280 if (okendoProduct && 'error' in okendoProduct) { 1281 okendoProduct = null 1282 } 1283 okendoProductReviewCount = okendoProduct ? okendoProduct.reviewCount : null 1284 okendoProductReviewAverageValue = okendoProduct ? okendoProduct.reviewAverageValue : null 1285 } catch (error) { 1286 console.error('Error in Klaviyo onsite reviews tracking:', error); 1287 } 1288 1289 var item = { 1290 Name: "Calendrier de l'Avent", 1291 ProductID: 11020345999703, 1292 Categories: ["Accessoires de Noël pour le thé","Accessoires pour le thé","Accessoires pour le thé entre 30 et 60 â¬","Accessoires pour le thé à moins de 30 â¬","Accessoires pour le thé à plus de 60 â¬","Accessoires à offrir","Amateur de thé","AXO - Vente Privilège","Black Friday","Boutique de Noël","Cadeau entre 30⬠et 60â¬","Cadeau haut de gamme à plus de 60â¬","Cadeaux d'exception de Noël","Cadeaux entre 15⬠et 30â¬","Cadeaux pour la fête des Mères","Cadeaux à moins de 15â¬","Coffrets","Coffrets cadeaux - Coffret de thés et infusions","Coffrets de thé en sachet","Coffrets de thé en vrac","Coffrets infusions et tisanes","Coffrets thés noirs","Coffrets thés verts","Collection test","Débutant","Filtre à thé et infuseur","Fin d'année scolaire","Fête des pères","Infusion et tisane","Nounou","Nouveautés","Sélection cadeaux de Noël","Sélection Coffrets de Noël","Tax Collection - Corse","Thé blanc","Thé noir","Thé vert","Thés \u0026 Infusions","Thés \u0026 Infusions de Noël","Thés de Noël","Tous les produits AXO","Tous les thés"], 1293 ImageURL: "https://www.kusmitea.com/cdn/shop/files/69ccaa76e308d3684f9a42cf6429ef819d9eca4d_ADVENTCAL26BIO_packshot_b2cweb_grande.png?v=1785157587", 1294 URL: "https://www.kusmitea.com/products/calendrier-de-lavent", 1295 Brand: "Kusmi Tea", 1296 Price: "38,90 â¬", 1297 Value: "38,90", 1298 CompareAtPrice: "0,00 â¬" 1299 }; 1300 _learnq.push(['track', 'Viewed Product', item]); 1301 _learnq.push(['trackViewedItem', { 1302 Title: item.Name, 1303 ItemId: item.ProductID, 1304 Categories: item.Categories, 1305 ImageUrl: item.ImageURL, 1306 Url: item.URL, 1307 Metadata: { 1308 Brand: item.Brand, 1309 Price: item.Price, 1310 Value: item.Value, 1311 CompareAtPrice: item.CompareAtPrice 1312 }, 1313 metafields:{ 1314 reviews: MetafieldReviews, 1315 yotpo:{ 1316 rating: MetafieldYotpoRating, 1317 count: MetafieldYotpoCount, 1318 }, 1319 loox:{ 1320 rating: MetafieldLooxRating, 1321 count: MetafieldLooxCount, 1322 }, 1323 okendo: { 1324 rating: okendoProductReviewAverageValue, 1325 count: okendoProductReviewCount, 1326 } 1327 } 1328 }]); 1329 } 1330 </script>
1330 1331 1332 1333 1334 1335 1336
1336<script> 1337 window.klaviyoReviewsProductDesignMode = false 1338 </script>
1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348<!-- END app block --><!-- BEGIN app block: shopify://apps/addingwell/blocks/aw-gtm/c8ed21e7-0ac8-4249-8c91-cbdde850b5b8 -->
1348<script 1349 type="module" 1350> 1351 setTimeout(async function () { 1352 const keySessionStorage = 'aw_settings'; 1353 let __AW__settings = JSON.parse(sessionStorage.getItem(keySessionStorage)); 1354 if(!__AW__settings) { 1355 const awSettings = await fetch( 1356 "/apps/addingwell-proxy", 1357 { 1358 method: "GET", 1359 redirect: "follow", 1360 headers: {'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*'} 1361 } 1362 ); 1363 if (awSettings.ok) { 1364 __AW__settings = await awSettings.json(); 1365 sessionStorage.setItem(keySessionStorage, JSON.stringify(__AW__settings)); 1366 } else { 1367 console.error('Addingwell - Loading proxy error', awSettings.status); 1368 return; 1369 } 1370 } 1371 1372 if(__AW__settings.insertGtmTag && __AW__settings.gtmId) { 1373 let __AW__gtmUrl = 'https://www.googletagmanager.com/gtm.js'; 1374 let __AW__isAddingwellCdn = false; 1375 if(__AW__settings.insertGtmUrl && __AW__settings.gtmUrl) { 1376 __AW__gtmUrl = __AW__settings.gtmUrl; 1377 __AW__isAddingwellCdn = __AW__settings.isAddingwellCdn; 1378 } 1379 1380 (function(w,d,s,l,i){ 1381 w[l]=w[l]||[];w[l].push({'gtm.start':new Date().getTime(),event:'gtm.js'}); 1382 var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:''; 1383 j.async=true; 1384 j.src=`${__AW__gtmUrl}?${__AW__isAddingwellCdn ? 'awl' : 'id'}=`+(__AW__isAddingwellCdn ? i.replace(/^GTM-/, '') : i)+dl;f.parentNode.insertBefore(j,f); 1385 })(window,document,'script',`${__AW__settings.dataLayerVariableName}`,`${__AW__settings.gtmId}`); 1386 } 1387 1388 const __AW__getEventNameWithSuffix = (eventName) => { 1389 return eventName + (__AW__settings.dataLayerEventSuffix ? "_" + __AW__settings.dataLayerEventSuffix : ""); 1390 } 1391 1392 function __AW__waitForShopifyYCookie(maxAttempts, intervalMs) { 1393 return new Promise(function(resolve) { 1394 let attempts = 0; 1395 maxAttempts = maxAttempts || 5; 1396 intervalMs = intervalMs || 200; 1397 function check() { 1398 const match = document.cookie.match(/(?:^|;\s*)_shopify_y=([^;]*)/); 1399 if (match) { 1400 resolve(match[1]); 1401 } else if (attempts < maxAttempts) { 1402 attempts++; 1403 setTimeout(check, intervalMs); 1404 } else { 1405 console.warn('[AW] _shopify_y cookie not found after consent'); 1406 resolve(null); 1407 } 1408 } 1409 check(); 1410 }); 1411 } 1412 1413 const __AW__CONSENT_KEY = 'aw_consent_state'; 1414 1415 function __AW__getConsentState() { 1416 try { 1417 if (window.Shopify?.customerPrivacy?.currentVisitorConsent) { 1418 return JSON.stringify(window.Shopify.customerPrivacy.currentVisitorConsent()); 1419 } 1420 } catch(e) {} 1421 return null; 1422 } 1423 1424 function __AW__isEmptyConsent(stateStr) { 1425 try { 1426 return Object.values(JSON.parse(stateStr)).every(v => v === ''); 1427 } catch(e) {} 1428 return true; 1429 } 1430 1431 let __AW__prevConsentState = __AW__getConsentState() ?? localStorage.getItem(__AW__CONSENT_KEY); 1432 1433 document.addEventListener('visitorConsentCollected', async function(event) { 1434 const currentConsentState = __AW__getConsentState(); 1435 1436 if (currentConsentState !== null && currentConsentState === __AW__prevConsentState) { 1437 return; 1438 } 1439 1440 __AW__prevConsentState = currentConsentState; 1441 1442 if (currentConsentState !== null) { 1443 if (__AW__isEmptyConsent(currentConsentState)) { 1444 localStorage.removeItem(__AW__CONSENT_KEY); 1445 } else { 1446 localStorage.setItem(__AW__CONSENT_KEY, currentConsentState); 1447 } 1448 } 1449 1450 window.Shopify.analytics.publish('addingwell:shopify_update_consent', {visitorConsentCollected: true}); 1451 1452 const shopifyY = await __AW__waitForShopifyYCookie(); 1453 if (!shopifyY) return; 1454 1455 window[__AW__settings.dataLayerVariableName] = window[__AW__settings.dataLayerVariableName] || []; 1456 window[__AW__settings.dataLayerVariableName].push({ 1457 event: __AW__getEventNameWithSuffix('shopify_consent_updated'), 1458 }); 1459 }); 1460 1461 if(__AW__settings.enableDataLayer) { 1462 const MAX_ITEMS_BATCH = 10; 1463 const sendBatchEvents = (items, eventName, eventObject) => { 1464 let batch = []; 1465 for(let i = 0; i < items.length; i++) { 1466 batch.push(items[i]); 1467 if(batch.length === MAX_ITEMS_BATCH || i === items.length - 1) { 1468 const eventClone = { 1469 ...eventObject, 1470 ecommerce: { 1471 ...eventObject.ecommerce, 1472 items: [...batch] 1473 } 1474 }; 1475 window[__AW__settings.dataLayerVariableName].push({ ecommerce: null }); 1476 window[__AW__settings.dataLayerVariableName].push({ 1477 ...{'event': __AW__getEventNameWithSuffix(eventName)}, 1478 ...eventClone 1479 }); 1480 1481 batch = []; 1482 } 1483 } 1484 } 1485 1486 function __AW__filterNullOrEmpty(obj) { 1487 let filteredObj = {}; 1488 1489 for (let key in obj) { 1490 if (obj.hasOwnProperty(key)) { 1491 let value = obj[key]; 1492 1493 // If value is an object (and not null), recursively filter sub-elements 1494 if (typeof value === "object" && value !== null && value !== undefined) { 1495 let filteredSubObject = __AW__filterNullOrEmpty(value); 1496 1497 // Add the filtered sub-object only if it's not empty 1498 if (Object.keys(filteredSubObject).length > 0) { 1499 filteredObj[key] = filteredSubObject; 1500 } 1501 } else { 1502 // Add the value only if it's neither null nor an empty string 1503 if (value !== null && value !== "" && value !== undefined) { 1504 filteredObj[key] = value; 1505 } 1506 } 1507 } 1508 } 1509 return filteredObj; 1510 } 1511 1512 function getPageType(value) { 1513 const pageTypeMapping = { 1514 404: '404', 1515 article: 'article', 1516 blog: 'blog', 1517 cart: 'cart', 1518 collection: 'collection', 1519 gift_card: 'gift_card', 1520 index: 'homepage', 1521 product: 'product', 1522 search: 'searchresults', 1523 'customers/login': 'login', 1524 'customers/register': 'sign_up' 1525 }; 1526 return pageTypeMapping[value] || 'other'; 1527 } 1528 let __AW__cartReady = false;
1529 1530 function pushDataLayerEvents() { 1531 initCart(); 1532 window[__AW__settings.dataLayerVariableName] = window[__AW__settings.dataLayerVariableName] || []; // init data layer if doesn't already exist 1533 const templateName = "product"; 1534 1535 const getFormattedPrice = (priceInCents) => priceInCents/100; 1536 /********************** 1537 * DATALAYER SECTIONS 1538 ***********************/ 1539 /** 1540 * DATALAYER: User Data 1541 * Build user_data properties. 1542 */ 1543 let newCustomer = true; 1544 window.__AW__CommonData = { 1545 user_data: { 1546 new_customer: newCustomer, 1547 } 1548 }; 1549 1550 1551 1552 window.__AW__CommonData.country = "FR" 1553 window.__AW__CommonData.market = "fr" 1554 window.__AW__CommonData.marketId = 102924747095 1555 1556 1557 window.__AW__CommonData.language = "fr-FR"; 1558 1559 window.__AW__CommonData = __AW__filterNullOrEmpty(window.__AW__CommonData); 1560 1561 // Ajout du hash SHA256 des champs sensibles de user_data (version robuste) 1562 async function sha256(str) { 1563 if (!str) return undefined; 1564 if (!(window.crypto && window.crypto.subtle)) { 1565 console.error('Crypto.subtle non supporté, hash impossible pour :', str); 1566 return undefined; 1567 } 1568 try { 1569 const buf = await window.crypto.subtle.digest('SHA-256', new TextEncoder().encode(str)); 1570 return Array.from(new Uint8Array(buf)).map(x => x.toString(16).padStart(2, '0')).join(''); 1571 } catch (e) { 1572 console.error('Erreur lors du hash SHA256 pour', str, e); 1573 return undefined; 1574 } 1575 } 1576 async function getUserDataHash(user_data) { 1577 const hashObj = {}; 1578 if (!user_data) return hashObj; 1579 try { 1580 if (user_data.email_address) hashObj.email_address = await sha256(user_data.email_address); 1581 if (user_data.phone_number) hashObj.phone_number = await sha256(user_data.phone_number); 1582 if (user_data.address && typeof user_data.address === 'object') { 1583 hashObj.address = {}; 1584 if (user_data.address.first_name) hashObj.address.first_name = await sha256(user_data.address.first_name); 1585 if (user_data.address.last_name) hashObj.address.last_name = await sha256(user_data.address.last_name); 1586 if (user_data.address.street) hashObj.address.street = await sha256(user_data.address.street); 1587 if (user_data.address.city) hashObj.address.city = await sha256(user_data.address.city); 1588 if (user_data.address.region) hashObj.address.region = await sha256(user_data.address.region); 1589 if (user_data.address.postal_code) hashObj.address.postal_code = await sha256(user_data.address.postal_code); 1590 if (user_data.address.country) hashObj.address.country = await sha256(user_data.address.country); 1591 } 1592 } catch (e) { 1593 console.error('Erreur lors du hash user_data_hashed', e); 1594 } 1595 return __AW__filterNullOrEmpty(hashObj); 1596 } 1597 (async function() { 1598 if (window.__AW__CommonData && window.__AW__CommonData.user_data) { 1599 window.__AW__CommonData.user_data_hashed = await getUserDataHash(window.__AW__CommonData.user_data); 1600 } 1601 })(); 1602 1603 window.__AW__CommonData["page_type"] = getPageType(templateName); 1604 window.__AW__CommonData["theme"] = window?.Shopify?.theme; 1605 window[__AW__settings.dataLayerVariableName].push(window.__AW__CommonData); 1606 1607 window[__AW__settings.dataLayerVariableName].push({"event": __AW__getEventNameWithSuffix("page_view")}); 1608 1609 /** DATALAYER: select_item handoff */ 1610 const pendingSelectItemName = "aw_pending_select_item"; 1611 1612 const __AW__pushSelectItem = (payload) => { 1613 window[__AW__settings.dataLayerVariableName].push({ ecommerce: null }); 1614 window[__AW__settings.dataLayerVariableName].push(payload); 1615 }; 1616 1617 const __AW__flushPendingSelectItem = () => { 1618 let pending = null; 1619 try { 1620 pending = sessionStorage.getItem(pendingSelectItemName); 1621 sessionStorage.removeItem(pendingSelectItemName); 1622 } catch (e) { 1623 return; 1624 } 1625 if (!pending) return; 1626 try { 1627 __AW__pushSelectItem(JSON.parse(pending)); 1628 } catch (e) { 1629 console.warn('[AW] pending select_item error', e); 1630 } 1631 }; 1632 1633 __AW__flushPendingSelectItem(); 1634 1635 1636 /** 1637 * DATALAYER: 404 Pages 1638 * Fire on 404 Pages */ 1639 1640 1641 1642 /** 1643 * DATALAYER: Blog Articles 1644 * Fire on Blog Article Pages */ 1645 1646 1647 1648 1649 1650 1651 /** DATALAYER: Product List Page (Collections, Category) 1652 * Fire on all product listing pages. */ 1653 1654 const __AW__transformNumberToString = (value) => { 1655 if (value !== null && value !== undefined && typeof value === 'number') { 1656 return value.toString(); 1657 } 1658 /** By Default return the current value */ 1659 return value; 1660 }; 1661 1662 let discountPrice = 0.00; 1663 1664 1665 /** DATALAYER: Product Page 1666 * Fire on all Product View pages. */ 1667 1668 1669 var dl_ecom_quantity = 1; 1670 var dl_ecom_price = getFormattedPrice(3890); 1671 var dl_ecom_value = dl_ecom_quantity * dl_ecom_price; 1672 1673 var __AW__itemVariant = {"id":54133287780695,"title":"Default Title","option1":"Default Title","option2":null,"option3":null,"sku":"21356A2500","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Calendrier de l'Avent","public_title":null,"options":["Default Title"],"price":3890,"weight":108,"compare_at_price":null,"inventory_management":"shopify","barcode":"3585810120638","requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}}; 1674 var __AW__itemVariantQuantity = 7199 1675 1676 1677 discountPrice = 0.00; 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 const awEcommerceProduct = { 1690 ecommerce: { 1691 currency: "EUR", 1692 value: dl_ecom_value, 1693 'items': [{ 1694 'item_id' : __AW__transformNumberToString(11020345999703),
1695 'item_variant' : __AW__itemVariant?.title || null, 1696 'item_variant_title' : __AW__itemVariant?.title || null, 1697 'item_variant_id' : __AW__transformNumberToString(__AW__itemVariant?.id || null), 1698 'item_product_id' : __AW__transformNumberToString(11020345999703), 1699 'item_product_title' : "Calendrier de l'Avent", 1700 'item_name' : "Calendrier de l'Avent", 1701 'sku' : __AW__transformNumberToString(__AW__itemVariant?.sku || null), 1702 'discount' : discountPrice, 1703 'price' : dl_ecom_price, 1704 'item_brand' : "Kusmi Tea", 1705 'item_category' : "SET", 1706 'item_list_id' : null, 1707 'item_list_name' : null, 1708 'quantity' : dl_ecom_quantity, 1709 'inventory_quantity' : __AW__itemVariantQuantity, 1710 'url' : "\/products\/calendrier-de-lavent", 1711 'selling_plan_id' : null, 1712 'selling_plan_name' : null 1713 }] 1714 } 1715 }; 1716 window[__AW__settings.dataLayerVariableName].push({ ecommerce: null }); 1717 window[__AW__settings.dataLayerVariableName].push({ 1718 ...{'event': __AW__getEventNameWithSuffix('view_item')}, 1719 ...awEcommerceProduct 1720 }); 1721 1722 1723 1724 /** DATALAYER: Cart View 1725 * Fire anytime a user views their cart (non-dynamic) */ 1726 1727 1728 let drawerCartAlreadyOpened = false; 1729 let pendingViewCartTimeout = null; 1730 1731 let stateObserver = null; 1732 let domObserver = null; 1733 1734 function initCart() { 1735 fetch(`${window.Shopify?.routes?.root || "/"}cart.js?adw=1&init=1`, { 1736 credentials: 'same-origin', 1737 headers: { 'Accept': 'application/json' } 1738 }).then(r => r.ok ? r.json() : null) 1739 .then(freshCart => { 1740 if (freshCart) { 1741 window.__AW__slaveShopifyCart = freshCart; 1742 } else { 1743 window.__AW__slaveShopifyCart = { items: [] }; 1744 } 1745 __AW__cartReady = true; 1746 }) 1747 .catch(e => { 1748 console.warn('[AW] Cart hydration failed', e); 1749 window.__AW__slaveShopifyCart = { items: [] }; 1750 __AW__cartReady = true; 1751 }); 1752 } 1753 1754 function fireViewCartOncePerOpen() { 1755 if (pendingViewCartTimeout) return; 1756 1757 drawerCartAlreadyOpened = true; 1758 1759 pendingViewCartTimeout = setTimeout(() => { 1760 pendingViewCartTimeout = null; 1761 if (!__AW__cartReady) return; 1762 const ecommerceDataLayer = { 1763 ecommerce: { 1764 currency: window.__AW__slaveShopifyCart.currency, 1765 value: window.__AW__slaveShopifyCart.total_price / 100, 1766 items: window.__AW__slaveShopifyCart.items.map(item => { 1767 const price = (item.discounted_price ?? item.price) / 100; 1768 const discount = (item.price - (item.discounted_price ?? 0)) / 100; 1769 1770 let coupon = ""; 1771 if (Array.isArray(item?.discounts)) { 1772 coupon = item.discounts 1773 .filter(d => typeof d?.title === "string") 1774 .map(d => d.title) 1775 .join(", "); 1776 } 1777 1778 return { 1779 item_id: __AW__transformNumberToString(item.product_id), 1780 item_variant: item.variant_title, 1781 item_variant_title: item.variant_title, 1782 item_variant_id: __AW__transformNumberToString(item.variant_id), 1783 item_product_id: __AW__transformNumberToString(item.product_id), 1784 item_product_title: item.product_title, 1785 item_name: item.product_title, 1786 price, 1787 discount, 1788 item_brand: item.vendor, 1789 item_category: item.product_type, 1790 item_list_name: item.collection || "", 1791 item_list_id: "", 1792 quantity: item.quantity, 1793 sku: __AW__transformNumberToString(item.sku), 1794 coupon, 1795 url: item.url, 1796 selling_plan_id : item?.selling_plan_allocation?.selling_plan?.id, 1797 selling_plan_name : item?.selling_plan_allocation?.selling_plan?.name 1798 1799 }; 1800 }) 1801 } 1802 }; 1803 1804 window[__AW__settings.dataLayerVariableName].push({ ecommerce: null }); 1805 window[__AW__settings.dataLayerVariableName].push({ 1806 event: __AW__getEventNameWithSuffix("view_cart"), 1807 ...ecommerceDataLayer 1808 }); 1809 }, 1000); 1810 } 1811 1812 function resetOnClose() { 1813 drawerCartAlreadyOpened = false;
1814 if (pendingViewCartTimeout) { 1815 clearTimeout(pendingViewCartTimeout); 1816 pendingViewCartTimeout = null; 1817 } 1818 } 1819 1820 function getTargets() { 1821 const cartDrawer = document.querySelector("cart-drawer"); 1822 const dialog = 1823 document.querySelector("cart-drawer dialog") || 1824 document.querySelector("cart-drawer-component dialog") || 1825 document.querySelector("cart-drawer-component dialog[ref='dialog']"); 1826 1827 return { cartDrawer, dialog }; 1828 } 1829 1830 function isCartOpen({ cartDrawer, dialog }) { 1831 const openByDialog = !!dialog && (dialog.open || dialog.hasAttribute("open")); 1832 const openByClass = !!cartDrawer && cartDrawer.classList.contains("active"); 1833 const openByAttr = !!cartDrawer && cartDrawer.hasAttribute("open"); 1834 return openByDialog || openByClass || openByAttr; 1835 } 1836 1837 function attachStateObserver() { 1838 const { cartDrawer, dialog } = getTargets(); 1839 1840 if (stateObserver) stateObserver.disconnect(); 1841 1842 stateObserver = new MutationObserver(() => { 1843 const openNow = isCartOpen(getTargets()); 1844 1845 if (openNow) { 1846 if (!drawerCartAlreadyOpened) fireViewCartOncePerOpen(); 1847 } else { 1848 resetOnClose(); 1849 } 1850 }); 1851 1852 if (cartDrawer) { 1853 stateObserver.observe(cartDrawer, { 1854 attributes: true, 1855 attributeFilter: ["class", "open"] 1856 }); 1857 } 1858 1859 if (dialog) { 1860 stateObserver.observe(dialog, { 1861 attributes: true, 1862 attributeFilter: ["open"] 1863 }); 1864 } 1865 1866 const openNow = isCartOpen(getTargets()); 1867 if (openNow) { 1868 if (!drawerCartAlreadyOpened) fireViewCartOncePerOpen(); 1869 } else { 1870 resetOnClose(); 1871 } 1872 } 1873 1874 function observeCartDrawerOpen() { 1875 attachStateObserver(); 1876 1877 if (domObserver) domObserver.disconnect(); 1878 1879 domObserver = new MutationObserver(() => { 1880 attachStateObserver(); 1881 }); 1882 1883 domObserver.observe(document.documentElement, { 1884 childList: true, 1885 subtree: true 1886 }); 1887 } 1888 1889 observeCartDrawerOpen(); 1890 1891 1892 /** DATALAYER: Search Results */ 1893 var searchPage = new RegExp("search", "g"); 1894 if(document.location.pathname.match(searchPage)){ 1895 var __AW__items = []; 1896 1897 1898 const awEcommerceSearch = { 1899 search_term: null, 1900 results_count: null, 1901 ecommerce: { 1902 currency: "EUR", 1903 items : [] 1904 } 1905 }; 1906 sendBatchEvents(__AW__items, "search", awEcommerceSearch); 1907 } 1908 1909 1910 const cartRegex = /\/cart\/(add|change|update)(\.js|\.json)?(\?.*)?$/; 1911 const pendingCartEventName = "aw_pending_cart_event"; 1912 let awCartQueue = Promise.resolve(); 1913 1914 if(sessionStorage.getItem(pendingCartEventName)) { 1915 scheduleCartSync(); 1916 } 1917 1918 document.addEventListener('click', async function(e) { 1919 const btn = e.target.closest('[href*="/cart/add"], [action*="/cart/add"], button[name="add"]'); 1920 if (!btn || !__AW__cartReady) return; 1921 snapshotCart(); 1922 }, true); 1923 1924 patchFetch(); 1925 patchXhr(); 1926 1927 function snapshotCart() { 1928 try { 1929 sessionStorage.setItem( 1930 pendingCartEventName, 1931 JSON.stringify(window.__AW__slaveShopifyCart ?? { items: [] }) 1932 ); 1933 } catch (e) { 1934 console.warn('[AW] snapshot error', e); 1935 } 1936 } 1937 1938 function patchXhr() { 1939 const nativeSend = typeof XMLHttpRequest === 'function' ? XMLHttpRequest.prototype?.send : null; 1940 if (typeof nativeSend !== 'function' || nativeSend.__AW__patched) return; 1941 1942 XMLHttpRequest.prototype.send = function(body) { 1943 this.addEventListener('load', () => { 1944 try { 1945 const abs = this.responseURL || ''; 1946 const u = new URL(abs, location.origin); 1947 const mt = u.pathname + (u.search || ''); 1948 if (this.status === 200 && cartRegex.test(mt)) { 1949 scheduleCartSync(); 1950 } 1951 } catch (e) { 1952 console.error('[AW] XHR handler error', e); 1953 } 1954 }); 1955 return nativeSend.apply(this, arguments); 1956 }; 1957 1958 XMLHttpRequest.prototype.send.__AW__patched = true; 1959 } 1960 1961 function patchFetch() { 1962 const previousFetch = window.fetch; 1963 if (typeof previousFetch !== 'function' || previousFetch.__AW__patched) return; 1964 1965 window.fetch = async function (...args) { 1966 const resource = args[0]; 1967 try { 1968 1969 const url = resource instanceof Request ? resource.url : resource instanceof URL ? resource.href : String(resource); 1970 if (cartRegex.test(url)) { 1971 const response = await previousFetch.apply(this, args); 1972 if (response.ok) { 1973 scheduleCartSync(); 1974 } else { 1975 console.warn(`Fetch for ${url} failed with status: ${response.status}`); 1976 } 1977 return response; 1978 } 1979 } catch (error) { 1980 console.error('[AW] Fetch Wrapper Error:', error); 1981 } 1982 1983 return previousFetch.apply(this, args); 1984 }; 1985 1986 window.fetch.__AW__patched = true; 1987 } 1988 1989 function scheduleCartSync() { 1990 if (!__AW__cartReady) return; 1991 awCartQueue = awCartQueue 1992 .then(() => { 1993 if (!sessionStorage.getItem(pendingCartEventName)) snapshotCart(); 1994 return runCartSyncOnce(); 1995 }).catch(e => { 1996 console.error('[AW] scheduleCartSync error', e); 1997 }); 1998 } 1999 2000 async function runCartSyncOnce() { 2001 try { 2002 const response = await fetch(`${window.Shopify.routes.root || "/"}cart.js?adw=1`, { 2003 credentials: 'same-origin', 2004 headers: { 'Accept': 'application/json' } 2005 }); 2006 if (!response.ok) throw new Error('HTTP ' + response.status); 2007 const newCart = await response.json(); 2008 await compareCartData(newCart); 2009 } catch (error) { 2010 console.error('[AW] Error fetching /cart.js (singleton):', error); 2011 } 2012 } 2013 2014 function compareCartData(newCartData) { 2015 return new Promise((resolve) => { 2016 setTimeout(() => { 2017 try { 2018 const oldCartData = sessionStorage.getItem(pendingCartEventName) ? JSON.parse(sessionStorage.getItem(pendingCartEventName)) : {items: []}; 2019 newCartData = newCartData || {items: []}; 2020 const cartItemKey = item => `${item.variant_id ?? item.id}:${item.selling_plan_allocation?.selling_plan?.id ?? ''}`; 2021 const oldItems = new Map(oldCartData.items.map(item => [cartItemKey(item), item])); 2022 const newItems = new Map(newCartData.items.map(item => [cartItemKey(item), item])); 2023
2024 newItems.forEach((newItem, key) => { 2025 const oldItem = oldItems.get(key); 2026 const eventName = "add_to_cart"; 2027 if (!oldItem) { 2028 handleCartDataLayer(eventName, newItem.quantity, newItem); 2029 } else if (newItem.quantity > oldItem.quantity) { 2030 handleCartDataLayer(eventName, newItem.quantity - oldItem.quantity, newItem); 2031 } 2032 }); 2033 2034 oldItems.forEach((oldItem, key) => { 2035 const newItem = newItems.get(key); 2036 const eventName = "remove_from_cart"; 2037 if (!newItem) { 2038 handleCartDataLayer(eventName, oldItem.quantity, oldItem); 2039 } else if (oldItem.quantity > newItem.quantity) { 2040 handleCartDataLayer(eventName, oldItem.quantity - newItem.quantity, newItem); 2041 } 2042 }); 2043 2044 sessionStorage.removeItem(pendingCartEventName); 2045 window.__AW__slaveShopifyCart = newCartData; 2046 } catch(e) { 2047 console.error('[AW] compareCartData error', e); 2048 sessionStorage.removeItem(pendingCartEventName); 2049 } finally { 2050 resolve(); 2051 } 2052 }, 500); 2053 }); 2054 } 2055 2056 function handleCartDataLayer(eventName, quantity, item) { 2057 const price = (item.discounted_price ?? item.price) / 100; 2058 const discount = (item.price - (item.discounted_price ?? 0)) / 100; 2059 const totalValue = price * quantity; 2060 let coupon = ""; 2061 if(Array.isArray(item?.discounts)) { 2062 coupon = item.discounts 2063 .filter(discount => typeof discount?.title === 'string') 2064 .map(discount => discount.title) 2065 .join(', '); 2066 } 2067 2068 const ecommerceCart = { 2069 ecommerce: { 2070 currency: "EUR", 2071 value: totalValue, 2072 items: [{ 2073 item_id: __AW__transformNumberToString(item.product_id), 2074 item_variant: item.variant_title || "Default Variant", 2075 item_variant_id: __AW__transformNumberToString(item.variant_id), 2076 item_variant_title: item.variant_title || "Default Variant", 2077 item_name: item.product_title, 2078 item_product_id: __AW__transformNumberToString(item.product_id), 2079 item_product_title: item.product_title, 2080 sku: __AW__transformNumberToString(item.sku), 2081 discount: discount, 2082 price: price, 2083 item_brand: item.vendor, 2084 item_category: item.product_type, 2085 quantity: quantity, 2086 coupon: coupon, 2087 url: item?.url, 2088 selling_plan_id : item?.selling_plan_allocation?.selling_plan?.id, 2089 selling_plan_name : item?.selling_plan_allocation?.selling_plan?.name 2090 }] 2091 } 2092 }; 2093 2094 window[__AW__settings.dataLayerVariableName].push({ ecommerce: null }); 2095 window[__AW__settings.dataLayerVariableName].push({ 2096 ...{ 'event': __AW__getEventNameWithSuffix(eventName) }, 2097 ...ecommerceCart 2098 }); 2099 2100 } 2101 } 2102 2103 if (document.readyState === 'loading') { 2104 // document still loading... 2105 document.addEventListener('DOMContentLoaded', () => { 2106 pushDataLayerEvents(); 2107 }); 2108 } else { 2109 // already loaded, chocs away! 2110 pushDataLayerEvents(); 2111 } 2112 } 2113 }, 0); 2114</script>
2114 2115 2116 2117<!-- END app block -->
2117<script src="https://cdn.shopify.com/extensions/01a0e712-a926-77f8-816c-9f040d57129c/orbe-geolocation-503/assets/orbe.min.js" type="text/javascript" defer="defer"></script>
2117 2118<link href="https://cdn.shopify.com/extensions/01a0e712-a926-77f8-816c-9f040d57129c/orbe-geolocation-503/assets/md-app-modal.min.css" rel="stylesheet" type="text/css" media="all">
2119<script src="https://cdn.shopify.com/extensions/01a0f23f-fb23-7dc5-9e97-52160d5d4ab1/regios-automatic-discounts-1514/assets/regios_add_to_cart_embed.js" type="text/javascript" defer="defer"></script>
2119 2120<link href="https://cdn.shopify.com/extensions/01a0e712-a926-77f8-816c-9f040d57129c/orbe-geolocation-503/assets/md-app-custom-button.min.css" rel="stylesheet" type="text/css" media="all">
2121<script src="https://cdn.shopify.com/extensions/01a0f23f-fb23-7dc5-9e97-52160d5d4ab1/regios-automatic-discounts-1514/assets/regios_discounts_embed.js" type="text/javascript" defer="defer"></script>
2121 2122<link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
2123<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: 94365778263,url: window.location.href,navigation_start,duration: currentMs - navigation_start,session_token,page_type: "product"};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 2123
2123
2124<script> 2125 window.__TREKKIE_SHIM_QUEUE = window.__TREKKIE_SHIM_QUEUE || []; 2126</script>
vendor: 1 bytes, line 2126
2126
2127<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}
2127).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: 94365778263,storefrontBaseUrl: "https://www.kusmitea.com",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",monorailEndpoint: "https://www.kusmitea.com/.well-known/shopify/monorail/unstable/produce_batch",surface: "storefront-renderer",enabledBetaFlags: ["4c64608a","16072cab","8450a54b","7ee89bf1"],webPixelsConfigList: [{"id":"5344788823","configuration":"{\"projectId\":\"y7xetyy5wu\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"d8a2bb2ccbb513dc8e8b6937f4b8033e","type":"APP","apiClientId":240074326017,"privacyPurposes":[],"capabilities":["advanced_dom_events"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_personal_data"],"dataSharingControls":["share_all_events"]}
2127,"dataSharingState":"unrestricted"},{"id":"3995631959","configuration":"{\"joinDomain\":\"kusmi-tea\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"aba44f25bef6b6f9c5cce3989ad88990","type":"APP","apiClientId":111364603905,"privacyPurposes":["ANALYTICS"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":[],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"3819372887","configuration":"{\"accountID\":\"WJ9Fzj\",\"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":"3551035735","configuration":"{\"accountID\":\"shopify-94365778263\", \"endpoint\":\"https:\/\/connect.nosto.com\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"85848493c2a1c7a4bbf22728b6f9f31f","type":"APP","apiClientId":272825,"privacyPurposes":["ANALYTICS","MARKETING"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_email","read_customer_name","read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"299303255","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"21","type":"CUSTOM","privacyPurposes":[],"name":"TrackAnalyse - WebPixel","dataSharingAdjustments":{"protectedCustomerApprovalScopes":[],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"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":"Kusmi Tea","paymentSettings":{"currencyCode":"EUR"},"myshopifyDomain":"kusmi-tea-2025.myshopify.com","countryCode":"FR","storefrontUrl":"https:\/\/www.kusmitea.com"},"customer":null,"cart":null,"checkout":null,"productVariants":[{"price":{"amount":38.9,"currencyCode":"EUR"},"product":{"title":"Calendrier de l'Avent","vendor":"Kusmi Tea","id":"11020345999703","untranslatedTitle":"Calendrier de l'Avent","url":"\/products\/calendrier-de-lavent","type":"SET"},"id":"54133287780695","image":{"src":"\/\/www.kusmitea.com\/cdn\/shop\/files\/69ccaa76e308d3684f9a42cf6429ef819d9eca4d_ADVENTCAL26BIO_packshot_b2cweb.png?v=1785157587"},"sku":"21356A2500","title":"Default Title","untranslatedTitle":"Default Title"}],"products":[{"id":"11020345999703","handle":"calendrier-de-lavent","isCollective":null,"title":"Calendrier de l'Avent","type":"SET","untranslatedTitle":"Calendrier de l'Avent","url":"\/products\/calendrier-de-lavent","vendor":"Kusmi Tea","remoteShopId":null,"variants":[{"id":"54133287780695","image":{"src":"\/\/www.kusmitea.com\/cdn\/shop\/files\/69ccaa76e308d3684f9a42cf6429ef819d9eca4d_ADVENTCAL26BIO_packshot_b2cweb.png?v=1785157587"},"price":{"amount":38.9,"currencyCode":"EUR"},"sku":"21356A2500","title":"Default Title","untranslatedTitle":"Default Title"}]},{"id":"10447860498775","handle":"rituel-sommeil","isCollective":null,"title":"Rituel Sommeil","type":"TEA","untranslatedTitle":"Rituel Sommeil","url":"\/products\/rituel-sommeil","vendor":"Kusmi Tea","remoteShopId":null,"variants":[{"id":"52333350650199","image":{"src":"\/\/www.kusmitea.com\/cdn\/shop\/files\/51e4c4e63f9f9d2676b06bae6e1d275c3cd3c5d7_SOMM100BIO_packshot_b2cweb.png?v=1776433603"},"price":{"amount":24.9,"currencyCode":"EUR"},"sku":"21251A1070","title":"Boîte 100 g","untranslatedTitle":"Boîte 100 g"}]}
2127,{"id":"10447855518039","handle":"rituel-drainant","isCollective":null,"title":"Rituel Drainant","type":"TEA","untranslatedTitle":"Rituel Drainant","url":"\/products\/rituel-drainant","vendor":"Kusmi Tea","remoteShopId":null,"variants":[{"id":"52333334462807","image":{"src":"\/\/www.kusmitea.com\/cdn\/shop\/files\/98fdf4e4f0784bb290bac01738e584631cf15cac_DRAI100BIO_packshot_b2cweb.png?v=1776433494"},"price":{"amount":24.9,"currencyCode":"EUR"},"sku":"21315A1070","title":"Boîte 100 g","untranslatedTitle":"Boîte 100 g"}]},{"id":"10827922014551","handle":"rituel-energie","isCollective":null,"title":"Rituel Energie","type":"TEA","untranslatedTitle":"Rituel Energie","url":"\/products\/rituel-energie","vendor":"Kusmi Tea","remoteShopId":null,"variants":[{"id":"53441839825239","image":{"src":"\/\/www.kusmitea.com\/cdn\/shop\/files\/df4708c91d4208c77314a938857c5a3a2a55c90a_ENER18SBIO_packshot_b2cweb.png?v=1780992246"},"price":{"amount":9.9,"currencyCode":"EUR"},"sku":"21340A1460","title":"18 sachets","untranslatedTitle":"18 sachets"}]},{"id":"10961986814295","handle":"blue-moon","isCollective":null,"title":"Blue Moon","type":"TEA","untranslatedTitle":"Blue Moon","url":"\/products\/blue-moon","vendor":"Kusmi Tea","remoteShopId":null,"variants":[{"id":"53922394472791","image":{"src":"\/\/www.kusmitea.com\/cdn\/shop\/files\/e1184422788182eb8f89d065ac2aa84f3b67f05f_MOON150BIO_packshot_b2cweb.png?v=1782997559"},"price":{"amount":26.9,"currencyCode":"EUR"},"sku":"21362A1070","title":"Default Title","untranslatedTitle":"Default Title"}]},{"id":"11120152936791","handle":"the-vert-a-la-menthe-bio-a-larome-naturel-de-rose","isCollective":null,"title":"Thé vert à la menthe bio à l'arôme naturel de rose","type":"TEA","untranslatedTitle":"Thé vert à la menthe bio à l'arôme naturel de rose","url":"\/products\/the-vert-a-la-menthe-bio-a-larome-naturel-de-rose","vendor":"Kusmi Tea","remoteShopId":null,"variants":[{"id":"54834952700247","image":{"src":"\/\/www.kusmitea.com\/cdn\/shop\/files\/ef2b46e3d6079808cfb46f2317320d8a25193209_OCTROSE26100BIO_packshot_b2cweb.png?v=1790600554"},"price":{"amount":18.5,"currencyCode":"EUR"},"sku":"21350A1070","title":"Default Title","untranslatedTitle":"Default Title"}]},{"id":"10995951599959","handle":"les-nympheas","isCollective":null,"title":"Les Nymphéas","type":"TEA","untranslatedTitle":"Les Nymphéas","url":"\/products\/les-nympheas","vendor":"Kusmi Tea","remoteShopId":null,"variants":[{"id":"54050946285911","image":{"src":"\/\/www.kusmitea.com\/cdn\/shop\/files\/5a6358dfb1dc2e2d0b8d76a9e880f8b387a9984b_NYMP24EBIO_packshot_b2cweb.png?v=1784281151"},"price":{"amount":21.9,"currencyCode":"EUR"},"sku":"21361A1170","title":"Boîte de 24 sachets enveloppés","untranslatedTitle":"Boîte de 24 sachets enveloppés"}]},{"id":"10606184530263","handle":"rituel-defenses-immunitaires-echantillon","isCollective":null,"title":"Rituel Défenses Immunitaires (Ãchantillon)","type":"Echantillon","untranslatedTitle":"Rituel Défenses Immunitaires (Ãchantillon)","url":"\/products\/rituel-defenses-immunitaires-echantillon","vendor":"Kusmi Tea","remoteShopId":null,"variants":[{"id":"52937205121367","image":{"src":"\/\/www.kusmitea.com\/cdn\/shop\/files\/7c51e884cc5a93b1e3d80d4c38b132bc63273395_IMMU1ECHBIO_packshot_b2cweb.png?v=1775027523"},"price":{"amount":0.0,"currencyCode":"EUR"},"sku":"21153AECHD0","title":"Default Title","untranslatedTitle":"Default Title"}]},{"id":"10606184759639","handle":"rituel-minceur-echantillon","isCollective":null,"title":"Rituel Minceur (Ãchantillon)","type":"Echantillon","untranslatedTitle":"Rituel Minceur (Ãchantillon)","url":"\/products\/rituel-minceur-echantillon","vendor":"Kusmi Tea","remoteShopId":null,"variants":[{"id":"52937205678423","image":{"src":"\/\/www.kusmitea.com\/cdn\/shop\/files\/3aeb8f2e5efb1e811383c2ddbec547d56ae0c119_MINC1ECHBIO_packshot_b2cweb.png?v=1775027525"},"price":{"amount":0.0,"currencyCode":"EUR"},"sku":"21254AECHF0","title":"Default Title","untranslatedTitle":"Default Title"}]},{"id":"10606184563031","handle":"rituel-drainant-echantillon","isCollective":null,"title":"Rituel Drainant (Ãchantillon)","type":"Echantillon","untranslatedTitle":"Rituel Drainant (Ãchantillon)","url":"\/products\/rituel-drainant-echantillon","vendor":"Kusmi Tea","remoteShopId":null,"variants":[{"id":"52937205252439","image":{"src":"\/\/www.kusmitea.com\/cdn\/shop\/files\/a449338f1f0a743e81a4ec8a26ee608f72443339_DRAI1ECHBIO_packshot_b2cweb.png?v=1775027520"},"price":{"amount":0.0,"currencyCode":"EUR"},"sku":"21315AECHE0","title":"Default Title","untranslatedTitle":"Default Title"}]}
2127,{"id":"10606184464727","handle":"anastasia-echantillon","isCollective":null,"title":"Anastasia (Ãchantillon)","type":"Echantillon","untranslatedTitle":"Anastasia (Ãchantillon)","url":"\/products\/anastasia-echantillon","vendor":"Kusmi Tea","remoteShopId":null,"variants":[{"id":"52937205088599","image":{"src":"\/\/www.kusmitea.com\/cdn\/shop\/files\/3f702d54257a1e20aabebbdd33c203044fbad286_ANAS1ECHBIO_packshot_b2cweb.png?v=1775027524"},"price":{"amount":0.0,"currencyCode":"EUR"},"sku":"21642AECHA0","title":"Default Title","untranslatedTitle":"Default Title"}]},{"id":"10606184694103","handle":"the-vert-a-la-menthe-echantillon","isCollective":null,"title":"Thé vert à la menthe (Ãchantillon)","type":"Echantillon","untranslatedTitle":"Thé vert à la menthe (Ãchantillon)","url":"\/products\/the-vert-a-la-menthe-echantillon","vendor":"Kusmi Tea","remoteShopId":null,"variants":[{"id":"52937205612887","image":{"src":"\/\/www.kusmitea.com\/cdn\/shop\/files\/5e62d5f04442cf369ed080f0fbd59618c4f2c72e_VMEN1ECHBIO_packshot_b2cweb.png?v=1775027526"},"price":{"amount":0.0,"currencyCode":"EUR"},"sku":"21651AECHI0","title":"Default Title","untranslatedTitle":"Default Title"}]},{"id":"10602040000855","handle":"rituel-memoire-1","isCollective":null,"title":"Rituel Mémoire (Ãchantillon)","type":"Echantillon","untranslatedTitle":"Rituel Mémoire (Ãchantillon)","url":"\/products\/rituel-memoire-1","vendor":"Kusmi Tea","remoteShopId":null,"variants":[{"id":"52925442490711","image":{"src":"\/\/www.kusmitea.com\/cdn\/shop\/files\/9200a27ea2dca684e912f7bda209f6547b54703d_MEMO1ECHBIO_packshot_b2cweb.png?v=1775027518"},"price":{"amount":0.0,"currencyCode":"EUR"},"sku":"21297AECHJ0","title":"Default Title","untranslatedTitle":"Default Title"}]}],"purchasingCompany":null},},"https://www.kusmitea.com/cdn","5982071ew7ea472e3p69b68784m2150dfea",{"modern":"","legacy":""},{"trekkieShim":true,"agentContext":true,"apiClientId":"580111","facebookCapiEnabled":"false","themeId":"188897722711","themePublished":"true","eventMetadataId":"f4357ca1-5662-463f-bdcf-1bf755703a29","pageType":"product","resourceId":"11020345999703","shopId":"94365778263","storefrontBaseUrl":"https:\/\/www.kusmitea.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\",{}],[\"product_viewed\",{\"productVariant\":{\"price\":{\"amount\":38.9,\"currencyCode\":\"EUR\"},\"product\":{\"title\":\"Calendrier de l'Avent\",\"vendor\":\"Kusmi Tea\",\"id\":\"11020345999703\",\"untranslatedTitle\":\"Calendrier de l'Avent\",\"url\":\"\/products\/calendrier-de-lavent\",\"type\":\"SET\"},\"id\":\"54133287780695\",\"image\":{\"src\":\"\/\/www.kusmitea.com\/cdn\/shop\/files\/69ccaa76e308d3684f9a42cf6429ef819d9eca4d_ADVENTCAL26BIO_packshot_b2cweb.png?v=1785157587\"},\"sku\":\"21356A2500\",\"title\":\"Default Title\",\"untranslatedTitle\":\"Default Title\"}}]]"});})();</script>
2127<script> 2128 window.ShopifyAnalytics = window.ShopifyAnalytics || {}; 2129 window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {}; 2130 window.ShopifyAnalytics.meta.currency = 'EUR'; 2131 var meta = {"product":{"id":11020345999703,"gid":"gid:\/\/shopify\/Product\/11020345999703","vendor":"Kusmi Tea","type":"SET","handle":"calendrier-de-lavent","variants":[{"id":54133287780695,"price":3890,"name":"Calendrier de l'Avent","public_title":null,"sku":"21356A2500"}],"remote":false},"page":{"pageType":"product","resourceType":"product","resourceId":11020345999703,"requestId":"a65b0f41-c84d-48b4-8fb5-8543f70eb113-1790854721"}}; 2132 for (var attr in meta) { 2133 window.ShopifyAnalytics.meta[attr] = meta[attr]; 2134 } 2135</script>
vendor: 1 bytes, line 2135
2135
2136<script class="analytics"> 2137 (function () { 2138 var customDocumentWrite = function(content) { 2139 var jquery = null; 2140 2141 if (window.jQuery) { 2142 jquery = window.jQuery; 2143 } else if (window.Checkout && window.Checkout.$) { 2144 jquery = window.Checkout.$; 2145 } 2146 2147 if (jquery) { 2148 jquery('body').append(content); 2149 } 2150 }; 2151 2152 var hasLoggedConversion = function(token) { 2153 if (token) { 2154 return document.cookie.indexOf('loggedConversion=' + token) !== -1; 2155 } 2156 return false; 2157 } 2158 2159 var setCookieIfConversion = function(token) { 2160 if (token) { 2161 var twoMonthsFromNow = new Date(Date.now()); 2162 twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2); 2163 2164 document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow; 2165 } 2166 } 2167 2168 var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || []; 2169 window.ShopifyAnalytics.lib.trekkie = window.trekkie; 2170 if (trekkie.integrations) { 2171 return; 2172 } 2173 trekkie.methods = [ 2174 'identify', 2175 'page', 2176 'ready', 2177 'track', 2178 'trackForm', 2179 'trackLink' 2180 ]; 2181 trekkie.factory = function(method) { 2182 return function() { 2183 var args = Array.prototype.slice.call(arguments); 2184 args.unshift(method); 2185 trekkie.push(args); 2186 if (method == 'track' || method == 'page') { 2187 var pageUrl; 2188 try { 2189 pageUrl = window.location.href; 2190 } catch (e) {} 2191 var pageReferrer; 2192 try { 2193 pageReferrer = document.referrer; 2194 } catch (e) {} 2195 try { 2196 if (window.__TREKKIE_SHIM_QUEUE == null) { 2197 window.__TREKKIE_SHIM_QUEUE = []; 2198 } 2199 window.__TREKKIE_SHIM_QUEUE.push({ 2200 from: 'trekkie-stub', 2201 method: method, 2202 args: args.slice(1), 2203 pageContext: { 2204 url: pageUrl, 2205 referrer: pageReferrer 2206 } 2207 }); 2208 } catch (e) { 2209 // no-op 2210 } 2211 } 2212 return trekkie; 2213 }; 2214 }; 2215 for (var i = 0; i < trekkie.methods.length; i++) { 2216 var key = trekkie.methods[i]; 2217 trekkie[key] = trekkie.factory(key); 2218 } 2219 trekkie.load = function(config) { 2220 trekkie.config = config || {}; 2221 trekkie.config.initialDocumentCookie = document.cookie; 2222 var first = document.getElementsByTagName('script')[0]; 2223var script = document.createElement('script'); 2224script.type = 'text/javascript'; 2225script.onerror = function(e) { 2226 var scriptFallback = document.createElement('script'); 2227 scriptFallback.type = 'text/javascript'; 2228 scriptFallback.onerror = function(error) { 2229 var Monorail = { 2230 produce: function produce(monorailDomain, schemaId, payload) { 2231 var currentMs = new Date().getTime(); 2232 var event = { 2233 schema_id: schemaId, 2234 payload: payload, 2235 metadata: { 2236 event_created_at_ms: currentMs, 2237 event_sent_at_ms: currentMs 2238 } 2239 }; 2240 return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event)); 2241 }, 2242 sendRequest: function sendRequest(endpointUrl, payload) { 2243 // Try the sendBeacon API 2244 if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) { 2245 var blobData = new window.Blob([payload], { 2246 type: 'text/plain' 2247 }); 2248 2249 if (window.navigator.sendBeacon(endpointUrl, blobData)) { 2250 return true; 2251 } // sendBeacon was not successful 2252 2253 } // XHR beacon 2254 2255 var xhr = new XMLHttpRequest(); 2256 2257 try { 2258 xhr.open('POST', endpointUrl); 2259 xhr.setRequestHeader('Content-Type', 'text/plain'); 2260 xhr.send(payload); 2261 } catch (e) { 2262 console.log(e); 2263 } 2264 2265 return false; 2266 }, 2267 isIos12: function isIos12() { 2268 return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1; 2269 } 2270 }; 2271 Monorail.produce('monorail-edge.shopifysvc.com', 2272 'trekkie_storefront_load_errors/1.1', 2273 {shop_id: 94365778263, 2274 theme_id: 188897722711, 2275 app_name: "storefront", 2276 context_url: window.location.href, 2277 source_url: "//www.kusmitea.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js"}); 2278 2279 }; 2280 scriptFallback.async = true; 2281 scriptFallback.src = '//www.kusmitea.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js'; 2282 first.parentNode.insertBefore(scriptFallback, first); 2283}; 2284script.async = true; 2285script.src = '//www.kusmitea.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js'; 2286first.parentNode.insertBefore(script, first); 2287 2288 }; 2289 trekkie.load( 2290 {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":94365778263,"isMerchantRequest":null,"themeId":188897722711,"themeCityHash":"17217068423242679050","contentLanguage":"fr","currency":"EUR","eventMetadataId":"f4357ca1-5662-463f-bdcf-1bf755703a29"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain","enabledBetaFlags":["764d78cb","8450a54b","7ee89bf1","4c64608a"]},"Session Attribution":{},"S2S":{"facebookCapiEnabled":false,"source":"trekkie-storefront-renderer","apiClientId":580111}} 2291 ); 2292 2293 var loaded = false;
2294 trekkie.ready(function() { 2295 if (loaded) return; 2296 loaded = true; 2297 2298 window.ShopifyAnalytics.lib = window.trekkie; 2299 2300 var originalDocumentWrite = document.write; 2301 document.write = customDocumentWrite; 2302 try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {}; 2303 document.write = originalDocumentWrite; 2304 2305 var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/) 2306 var token = match? match[1]: undefined; 2307 if (!hasLoggedConversion(token)) { 2308 setCookieIfConversion(token); 2309 window.ShopifyAnalytics.lib.track("Viewed Product",{"currency":"EUR","variantId":54133287780695,"productId":11020345999703,"productGid":"gid:\/\/shopify\/Product\/11020345999703","name":"Calendrier de l'Avent","price":"38.90","sku":"21356A2500","brand":"Kusmi Tea","variant":null,"category":"SET","nonInteraction":true,"remote":false,"available":true},undefined,undefined,{"shopifyEmitted":true}); 2310 } 2311 }); 2312 2313 window.ShopifyAnalytics.lib.page(null,{"pageType":"product","resourceType":"product","resourceId":11020345999703,"requestId":"a65b0f41-c84d-48b4-8fb5-8543f70eb113-1790854721","shopifyEmitted":true}); 2314 2315 var eventsListenerScript = document.createElement('script'); 2316 eventsListenerScript.async = true; 2317 eventsListenerScript.src = "//www.kusmitea.com/cdn/shopifycloud/storefront/assets/shop_events_listener-4e26a9ce.js"; 2318 document.getElementsByTagName('head')[0].appendChild(eventsListenerScript); 2319})();</script>
vendor: 1 bytes, line 2319
2319
2320<script 2321 defer 2322 src="https://www.kusmitea.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-3.9.4.min.js" 2323 data-application="storefront-renderer" 2324 data-shop-id="94365778263" 2325 data-render-region="gcp-us-west1" 2326 data-page-type="product" 2327 data-theme-instance-id="188897722711" 2328 data-theme-name="Axome - Kusmi Tea" 2329 data-theme-version="1.0.0" 2330 data-monorail-region="shop_domain" 2331 data-resource-timing-sampling-rate="10" 2332 data-shs="true" 2333 data-shs-beacon="true" 2334 data-shs-export-with-fetch="true" 2335 data-shs-logs-sample-rate="1" 2336 data-shs-beacon-endpoint="https://www.kusmitea.com/api/collect" 2337></script>
2337 2338<meta name="shopify-y" content="f47b05ac-7d7f-476c-8cfc-5730788be40e" data-expiration="1822412321000"><meta name="shopify-s" content="dd7fe92e-1cc0-4044-a607-d365c69c311a" data-expiration="1790856521000"><meta name="new-cookie-storage-activated" content="t"> 2339</head> 2340 2341 2342 2343 <body class="features--zoom-image template-product suffix- market-fr market-id-102924747095 regios-dopp-generic-skip">
2343<script> 2344 (function () { 2345 // Prestataires Didomi qui conditionnent chaque catégorie de la Customer Privacy API. 2346 // 2347 // Les identifiants doivent correspondre à ceux de `getUserStatus().vendors.global` : 2348 // préfixe `c:` pour les prestataires propres à la notice, identifiant nu pour les 2349 // prestataires IAB (`google`). Vérifié sur la production le 25/08/2026. 2350 // 2351 // Règle d'agrégation, par catégorie : 2352 // some -- la catégorie est accordée dès qu'UN prestataire de la liste est accepté 2353 // every -- il faut les accepter tous 2354 // 2355 // Ces catégories pilotent l'exécution des Web Pixels Shopify : la mesure d'audience 2356 // Shopify elle-même, Nosto, Klaviyo et JOIN stories (relevé du 26/08/2026 ; Microsoft 2357 // Clarity et TrackAnalyse, eux, ne déclarent aucune exigence et s'exécutent toujours). 2358 // Un booléen gouverne donc plusieurs prestataires à la fois, dont certains ne sont pas 2359 // déclarés dans la notice Didomi : toute agrégation d'une liste de prestataires vers un 2360 // booléen est soit trop stricte, soit trop permissive. Seul un mapping sur les finalités 2361 // Didomi règle ce problème -- voir la doc, §8.4. 2362 // 2363 // `analytics` : `some` sur un unique prestataire, donc sans ambiguïté. Auparavant `every` 2364 // sur trois prestataires -- Google Analytics, Alphalyr et Wizaly -- ce qui transformait un 2365 // consentement partiel en refus total : accepter Google Analytics tout en refusant l'un 2366 // des deux autres valait refus de l'analytics, et la transaction n'arrivait pas dans GA4. 2367 // 2368 // `marketing` : `every` conservé, volontairement trop strict. Passer cette catégorie en 2369 // `some` ferait s'exécuter les quatre Web Pixels marketing dès qu'un seul prestataire est 2370 // accepté, y compris ceux que le visiteur a explicitement refusés. à rouvrir avec le 2371 // mapping par finalités, pas avant. 2372 const VENDOR_CATEGORIES = { 2373 // Aucun pixel d'app ne porte d'identifiant GA4 : seul le pixel personnalisé 2374 // TrackAnalyse peut alimenter GA4, et il ne dépend d'aucune catégorie. Alphalyr reste 2375 // déclaré dans la notice Didomi ; reste à établir qui le déclenche. Wizaly, avec qui la 2376 // collaboration a cessé, est à retirer de la notice. Voir la doc, §3 et §9. 2377 analytics: { rule: 'some', vendors: ['c:googleana-4TXnJigR'] }, 2378 marketing: { 2379 rule: 'every', 2380 vendors: [ 2381 'google', 2382 'c:metaads-eVej9J6w', 2383 'c:bing-ads', 2384 'c:effinity-zUz9Gh4G', 2385 'c:kelkoo-JAZEXHAY', 2386 'c:lengow', 2387 'c:pinterest', 2388 'c:tiktokan-R4hk2Pmz', 2389 ], 2390 }, 2391 }; 2392 2393 // `preferences` et `sale_of_data` n'ont jamais été mappées : les valeurs héritées ([2] et 2394 // [4]) sont des identifiants de prestataires IAB numériques qui ne figurent pas dans la 2395 // notice Kusmi (vérifié le 25/08/2026 : le seul identifiant IAB numérique présent est 2396 // 1126). Ces deux catégories étaient donc systématiquement refusées. 2397 // 2398 // On conserve ce refus tant que le mapping n'a pas été arbitré côté conformité, plutôt 2399 // que d'ouvrir des catégories sans base de consentement. Les finalités Didomi existantes 2400 // (`functional`, `cookies`) permettraient de mapper `preferences` -- voir la doc. 2401 const UNMAPPED_CATEGORIES = { 2402 preferences: false, 2403 sale_of_data: false, 2404 }; 2405 2406 const CONSENT_KEYS = ['analytics', 'marketing', 'preferences', 'sale_of_data']; 2407 2408 const DEFAULT_REFUSAL = { 2409 analytics: false, 2410 marketing: false, 2411 preferences: false, 2412 sale_of_data: false, 2413 }; 2414 2415 function areAllConsentValuesEmpty(currentVisitorConsent) { 2416 if (!currentVisitorConsent) { 2417 return true; 2418 } 2419 2420 // Restreint aux quatre catégories connues : la Customer Privacy API peut exposer 2421 // d'autres clés dont la valeur n'est pas une chaîne vide. 2422 return CONSENT_KEYS.every((key) => { 2423 const value = currentVisitorConsent[key]; 2424 return value === '' || value === undefined || value === null; 2425 }); 2426 } 2427 2428 // Le visiteur relève-t-il d'un régime de consentement PRÃALABLE ? 2429 //
2430 // Là où ce n'est pas le cas -- les Ãtats-Unis notamment, où la politique Shopify est 2431 // consentRequired: false -- aucune action du visiteur n'est requise : `consent.changed` 2432 // ne se déclenche pas, et un refus écrit ici resterait définitif. Shopify bloquerait alors 2433 // sa propre mesure d'audience et tous les pixels, dont GA4, alors que la plateforme 2434 // n'exige rien de tel. 2435 // 2436 // Le critère est bien « consentement préalable requis », et non « une réglementation 2437 // s'applique » : mesuré sur la production le 25/08/2026 en forçant 2438 // didomiConfig.user = { country: 'US', region: 'TX' }, un visiteur américain relève de la 2439 // réglementation `cpra` -- une réglementation s'applique donc bien -- mais 2440 // isConsentRequired() y renvoie false, contre true depuis la France (`gdpr`). 2441 function isPriorConsentRequired() { 2442 try { 2443 // Source recommandée par Didomi (isConsentRequired() est marquée dépréciée dans la 2444 // référence Web SDK, avec pour remplacement indiqué getCurrentUserStatus().regulation). 2445 // 2446 // Attention à la lecture : `cpra` et `ccpa` sont des régimes d'opt-out. Une 2447 // réglementation s'y applique -- mesuré : un visiteur américain relève de `cpra` -- 2448 // mais elle n'exige pas de consentement préalable. Tester `regulation !== 'none'` 2449 // serait donc faux et laisserait le refus s'écrire aux Ãtats-Unis. 2450 // 2451 // Toute réglementation inconnue de cette liste est traitée comme exigeant un 2452 // consentement préalable : si Didomi en ajoute une, le comportement par défaut reste 2453 // le plus prudent, au prix d'une mesure bloquée jusqu'à mise à jour de la liste. 2454 const regulation = Didomi.getCurrentUserStatus?.()?.regulation; 2455 2456 if (typeof regulation === 'string') { 2457 return ['none', 'ccpa', 'cpra'].indexOf(regulation.toLowerCase()) === -1; 2458 } 2459 2460 // Second recours pour les versions du SDK sans getCurrentUserStatus(). 2461 if (typeof Didomi.isConsentRequired === 'function') { 2462 return Didomi.isConsentRequired(); 2463 } 2464 } catch (error) { 2465 console.warn('[didomi-consent] régime de consentement indéterminé', error); 2466 } 2467 2468 // Rien d'exploitable : on retombe sur le comportement conservateur (écriture du refus), 2469 // c'est-à -dire le comportement d'avant ce correctif. 2470 return true; 2471 } 2472 2473 // Limite connue, à traiter avec le mapping par finalités (voir la doc) : sous `cpra`, 2474 // `vendors.global.enabled` ne renseigne pas Google Analytics, alors que 2475 // `purposes.global.enabled` contient bien `analytics_tracking`. Un visiteur américain qui 2476 // interagirait avec la notice repasserait donc par ici et se verrait refuser l'analytics. 2477 function consentByCategory() { 2478 const vendorEnabled = Didomi.getUserStatus()?.vendors?.global?.enabled || []; 2479 const isGranted = ({ rule, vendors }) => 2480 rule === 'every' 2481 ? vendors.every((vendorId) => vendorEnabled.includes(vendorId)) 2482 : vendors.some((vendorId) => vendorEnabled.includes(vendorId)); 2483 2484 return Object.assign({}, UNMAPPED_CATEGORIES, { 2485 analytics: isGranted(VENDOR_CATEGORIES.analytics), 2486 marketing: isGranted(VENDOR_CATEGORIES.marketing), 2487 }); 2488 } 2489 2490 function setDidomiConsent() { 2491 const currentVisitorConsent = window.Shopify.customerPrivacy.currentVisitorConsent(); 2492 2493 if (areAllConsentValuesEmpty(currentVisitorConsent)) { 2494 // Aucun choix exprimé. Si le visiteur ne relève pas d'un régime de consentement 2495 // préalable, ne rien écrire : Shopify appliquera sa politique régionale, déjà correcte 2496 // (mesure autorisée là où le consentement n'est pas requis, consentement exigé en 2497 // Europe). 2498 if (!isPriorConsentRequired()) { 2499 return; 2500 } 2501 2502 window.Shopify.customerPrivacy.setTrackingConsent(DEFAULT_REFUSAL, () => {}); 2503 return; 2504 } 2505 2506 window.Shopify.customerPrivacy.setTrackingConsent(consentByCategory(), () => {}); 2507 } 2508 2509 window.didomiEventListeners = window.didomiEventListeners || []; 2510 window.didomiEventListeners.push({ 2511 event: 'consent.changed', 2512 listener: function () { 2513 setDidomiConsent(); 2514 }, 2515 }); 2516 2517 window.Shopify.loadFeatures( 2518 [ 2519 { 2520 name: 'consent-tracking-api', 2521 version: '0.1', 2522 }, 2523 ], 2524 function (error) { 2525 if (error) { 2526 throw error; 2527 } 2528 2529 window.didomiOnReady = window.didomiOnReady || []; 2530 window.didomiOnReady.push(function () { 2531 setDidomiConsent(); 2532 }); 2533 } 2534 ); 2535 })(); 2536</script>
2536 2537 2538<template id="drawer-default-template"> 2539 <div part="base"> 2540 <div part="overlay"></div> 2541 2542 <div part="content"> 2543 <header part="header"> 2544 <dialog-close-button style="display: contents"> 2545 <button type="button" part="close-button"> 2546 <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"> 2547 <path stroke="currentColor" d="m1 1 8 8m0-8L1 9" /> 2548 </svg></button> 2549 </dialog-close-button> 2550 2551 <slot name="header"></slot> 2552 </header> 2553 2554 <div part="body"> 2555 <slot></slot> 2556 </div> 2557 2558 <footer part="footer"> 2559 <slot name="footer"></slot> 2560 </footer> 2561 </div> 2562 </div> 2563</template><template id="drawer-popover-default-template"> 2564 <div part="base"> 2565 <div part="overlay"></div> 2566 2567 <div part="content"> 2568 <header part="header"> 2569 <dialog-close-button style="display: contents"> 2570 <button type="button" part="close-button"> 2571 <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"> 2572 <path stroke="currentColor" d="m1 1 8 8m0-8L1 9" /> 2573 </svg></button> 2574 </dialog-close-button> 2575 2576 <slot name="header"></slot> 2577 </header> 2578 2579 <div part="body"> 2580 <slot></slot> 2581 </div> 2582 </div> 2583 </div> 2584</template><template id="modal-default-template"> 2585 <div part="base"> 2586 <div part="overlay"></div> 2587 2588 <div part="content"> 2589 <slot name="image"></slot> 2590 2591 <div part="body"> 2592 <dialog-close-button style="display: contents"> 2593 <button type="button" part="close-button"> 2594 <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"> 2595 <path stroke="currentColor" d="m1 1 8 8m0-8L1 9" /> 2596 </svg></button> 2597 </dialog-close-button> 2598 2599 <slot></slot> 2600 </div> 2601 </div> 2602 </div> 2603</template><template id="popover-default-template"> 2604 <div part="base"> 2605 <div part="overlay"></div> 2606 2607 <div part="content"> 2608 <header part="header"> 2609 <slot name="header"></slot> 2610 2611 <dialog-close-button style="display: contents"> 2612 <button type="button" part="close-button"> 2613 <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"> 2614 <path stroke="currentColor" d="m1 1 8 8m0-8L1 9" /> 2615 </svg></button> 2616 </dialog-close-button> 2617 </header> 2618 2619 <div part="body"> 2620 <slot></slot> 2621 </div> 2622 </div> 2623 </div> 2624</template><template id="simple-popover-default-template"> 2625 <div part="base"> 2626 <div part="overlay"></div> 2627 2628 <div part="content"> 2629 <dialog-close-button style="display: contents"> 2630 <button type="button" part="close-button overlaid-close-button"> 2631 <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"> 2632 <path stroke="currentColor" d="m1 1 8 8m0-8L1 9" /> 2633 </svg></button> 2634 </dialog-close-button> 2635 2636 <div part="body"> 2637 <slot></slot> 2638 </div> 2639 </div> 2640 </div> 2641</template><template id="video-media-default-template"> 2642 <slot></slot> 2643 2644 <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"> 2645 <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"/> 2646 </svg></div> 2647</template><loading-bar class="loading-bar" aria-hidden="true"></loading-bar> 2648 2649 <a href="#main" allow-hash-change class="skip-to-content sr-only">Passer au contenu</a> 2650 2651 <span id="header-scroll-tracker" style="position: absolute; width: 1px; height: 1px; top: 200px; left: 0;"></span><!-- BEGIN sections: header-group --> 2652<aside id="shopify-section-sections--26884129784151__announcement-bar" class="shopify-section shopify-section-group-header-group shopify-section--announcement-bar"><style> 2653 :root { 2654 --announcement-bar-is-sticky: 0; 2655 }/* Par défaut, aucun lien du message ne reprend le faux soulignage des liens 2656 "prose" du thème (rendu via background linear-gradient dans theme.css). */ 2657 .announcement-bar .announcement-bar__message-list a { 2658 background: none; 2659 text-decoration: none; 2660 color: inherit; 2661 } 2662 2663 .announcement-bar a.announcement-bar__link { 2664 display: block; 2665 } 2666 2667 /* Le wrapper <a> de repli n'est pas couvert par les resets de marge de .prose 2668 (qui ne ciblent que les enfants directs ou ceux d'un <div>). */ 2669 .announcement-bar .announcement-bar__link > p { 2670 margin-block: 0; 2671 } 2672 2673 /* Soulignage partiel via la syntaxe [[mot]]. */ 2674 .announcement-bar .announcement-bar__underline { 2675 text-decoration: underline; 2676 text-underline-offset: 0.15em; 2677 } 2678 2679 /* Option "Souligner les liens" : réactive un soulignage net sur les <a> du 2680 message (placé APRÃS le reset ci-dessus pour le supplanter). */ 2681 .announcement-bar .announcement-bar__message--underline-links a, 2682 .announcement-bar a.announcement-bar__message--underline-links { 2683 text-decoration: underline; 2684 text-underline-offset: 0.15em; 2685 } 2686 </style> 2687 2688 <div class="color-scheme color-scheme--scheme-2"> 2689 <height-observer variable="announcement-bar"><announcement-bar 2690 id="carousel-sections--26884129784151__announcement-bar" 2691 allow-swipe 2692 cell-selector=".announcement-bar__message-list > *" 2693 2694 autoplay="5" 2695 2696 class="announcement-bar" 2697 ><carousel-prev-button aria-controls="carousel-sections--26884129784151__announcement-bar"> 2698 <button type="button" class="tap-area">
2699 <span class="sr-only">Précédent</span><svg width="11" height="7" viewBox="0 0 11 7" fill="none"> 2700 <path d="M3.82703 6.59547L0.707031 3.47547L3.82703 0.355469" stroke="#303030" stroke-miterlimit="10"/> 2701 <path d="M0.707031 3.47656H10.707" stroke="#303030" stroke-miterlimit="10"/> 2702 </svg></button> 2703 </carousel-prev-button><div class="announcement-bar__message-list"><div 2704 class="is-selected prose prose-justify-center" 2705 2706 ><a href="/collections/nouveautes" class="announcement-bar__link"> 2707 <p class="text-body text-xs"><strong>Calendrier de l'Avent : </strong> 24 surprises mystérieuses !</p> 2708 </a></div><div 2709 class=" prose prose-justify-center" 2710 2711 ><a href="/collections/nouveautes" class="announcement-bar__link"> 2712 <p class="text-body text-xs">Octobre Rose: en<strong> octobre, chaque tasse compte</strong>â ! Soutenez la lutte contre le cancer du sein avec notre thé engagé !â</p> 2713 </a></div><div 2714 class=" prose prose-justify-center" 2715 2716 ><a href="/collections/thes-infusions" class="announcement-bar__link"> 2717 <p class="text-body text-xs">Alma :<strong> Paiement 3x sans frais</strong> dès 60â¬</p> 2718 </a></div><div 2719 class=" prose prose-justify-center" 2720 2721 ><p class="text-body text-xs">Livraison offerte dès 49 ⬠dâachat</p></div></div><carousel-next-button aria-controls="carousel-sections--26884129784151__announcement-bar"> 2722 <button type="button" class="tap-area"> 2723 <span class="sr-only">Suivant</span><svg width="11" height="7" viewBox="0 0 11 7" fill="none"> 2724 <path d="M6.88 0.35375L10 3.47375L6.88 6.59375" stroke="currentColor" stroke-miterlimit="10"/> 2725 <path d="M10 3.47266L-2.98023e-07 3.47266" stroke="currentColor" stroke-miterlimit="10"/> 2726 </svg></button> 2727 </carousel-next-button><div class="announcement-bar__localization hidden md:flex h-stack gap-5" id="shopify-orb-header"></div></announcement-bar> 2728 </height-observer> 2729 </div> 2730 2731
2731<script> 2732 document.documentElement.style.setProperty( 2733 '--announcement-bar-height', 2734 `${Math.round(document.getElementById('shopify-section-sections--26884129784151__announcement-bar').clientHeight)}px` 2735 ); 2736 </script>
2736 2737</aside><header id="shopify-section-sections--26884129784151__header" class="shopify-section shopify-section-group-header-group shopify-section--header"><style> 2738 :root { 2739 --header-is-sticky: 1; 2740 --header-is-visible: 1; 2741 } 2742 2743 #shopify-section-sections--26884129784151__header {--header-grid: "primary-nav logo secondary-nav" / minmax(0, 1fr) auto minmax(0, 1fr);--header-transparent-header-text-color: 22 131 66; 2744 --header-non-transparent-text-color: 48 48 48; 2745 } 2746 2747 @media screen and (min-width: 1000px) { 2748 #shopify-section-sections--26884129784151__header {--header-grid: "logo primary-nav secondary-nav" / auto minmax(0, 1fr) auto;} 2749 }#shopify-section-sections--26884129784151__header { 2750 position: sticky; 2751 top: 0; 2752 } 2753 2754 .shopify-section--announcement-bar ~ #shopify-section-sections--26884129784151__header { 2755 top: calc(var(--announcement-bar-is-sticky, 0) * var(--announcement-bar-height, 0px)); 2756 }#shopify-section-sections--26884129784151__header { 2757 --header-logo-width: 115px; 2758 } 2759 2760 @media screen and (min-width: 700px) { 2761 #shopify-section-sections--26884129784151__header { 2762 --header-logo-width: 115px; 2763 } 2764 }</style> 2765 2766<height-observer variable="header"> 2767 <x-header 2768 class="header color-scheme color-scheme--scheme-1" 2769 2770 hide-on-scroll 2771 2772 > 2773 <a href="/" class="header__logo"><span class="sr-only">Kusmi Tea | Thés et Infusions Bio de qualité</span><img src="//www.kusmitea.com/cdn/shop/files/logo_black.svg?v=1761137956&width=114" alt="Logo kusmi tea" srcset="//www.kusmitea.com/cdn/shop/files/logo_black.svg?v=1761137956&width=114 114w, //www.kusmitea.com/cdn/shop/files/logo_black.svg?v=1761137956&width=114 114w" width="114" height="34" sizes="115px" class="header__logo-image"></a> 2774 2775<nav 2776 class="header__primary-nav " 2777 aria-label="Navigation principale" 2778 > 2779 <button 2780 type="button" 2781 aria-controls="menu-drawer" 2782 class="tap-area md:hidden" 2783 > 2784 <span class="sr-only">Menu</span> 2785 2786 <div class="h-stack gap-3" aria-hidden="true"> 2787 <div class="header__hamburger"> 2788 <span></span> 2789 <span></span> 2790 </div> 2791 2792 <span class="subheading md-max:hidden">Menu</span> 2793 </div> 2794 </button><a 2795 href="/search" 2796 class="header__search-link tap-area md:hidden" 2797 aria-controls="search-drawer" 2798 > 2799 <span class="sr-only">Rechercher</span><svg aria-hidden="true" focusable="false" width="16" fill="none" class="icon icon-search" part="icon" viewBox="0 0 16 16"> 2800 <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" /> 2801 </svg></a><ul class="contents unstyled-list md-max:hidden"> 2802 2803 <li><a 2804 href="/products/calendrier-de-lavent" 2805 class="block link-reversed text-md" 2806 data-text="Calendrier de l'AventNew" 2807 2808 aria-current="page" 2809 2810 2811 2812 style="color: #9132a0;" 2813 2814 >Calendrier de l'Avent<sup style="color: #9132a0;">New</sup></a></li> 2815 2816 <li><a 2817 href="/pages/offre-du-moment" 2818 class="block link-reversed text-md" 2819 data-text="Offres" 2820 2821 2822 2823 style="color: #93173b;" 2824 2825 >Offres</a></li> 2826 2827 <li><a 2828 href="/collections/the-infusion-sante" 2829 class="block link-reversed text-md" 2830 data-text="Bien-être" 2831 2832 2833 aria-expanded="false" aria-controls="header-menu-dropdown-3" 2834 data-open-on-hover 2835 2836 >Bien-être</a><header-mega-menu id="header-menu-dropdown-3" class="mega-menu justify-between color-scheme color-scheme--scheme-1" ><div class="mega-menu__navigation"><div class="v-stack gap-4"> 2837 <a href="#" class="link-faded text-body level-2 text-xs">Gamme Rituel</a><ul class="mega-menu__linklist unstyled-list"><li> 2838 2839<a href="/products/rituel-energie" class="link-reversed text-sm">Rituel Energie 2840<sup>NEW</sup></a></li><li> 2841 2842<a href="/products/rituel-sommeil" class="link-reversed text-sm">Rituel Sommeil 2843</a></li><li> 2844 2845<a href="/products/rituel-drainant" class="link-reversed text-sm">Rituel Drainant 2846</a></li><li> 2847 2848<a href="/products/rituel-minceur" class="link-reversed text-sm">Rituel Minceur 2849</a></li><li> 2850 2851<a href="/products/rituel-defenses-immunitaires" class="link-reversed text-sm">Rituel Défenses Immunitaires 2852</a></li><li> 2853 2854<a href="/products/rituel-memoire" class="link-reversed text-sm">Rituel Mémoire 2855</a></li><li> 2856 2857<a href="/products/coffret-rituel" class="link-reversed text-sm">Coffret Rituel 2858</a></li><li> 2859 2860<a href="/collections/the-infusion-sante" class="link text-sm link-sperate">Voir tout 2861</a></li></ul></div></div><style> 2862 #promo-block-list-mega_menu_iQqGYYmega-menu { 2863 --menu-promo-block-column-gap: 12px; 2864 --menu-promo-blocks-count: 4; 2865 } 2866 </style> 2867 2868 <div id="promo-block-list-mega_menu_iQqGYYmega-menu" class="menu-promo menu-promo--with-spacing floating-control
2868s-container"> 2869 <carousel-prev-button class="floating-controls__control floating-controls__control--offset" aria-controls="promo-block-list-mega_menu_iQqGYYmega-menu-carousel"> 2870 <button disabled class="circle-button circle-button--xl"> 2871 <span class="sr-only">Précédent</span><svg aria-hidden="true" focusable="false" width="14" class="icon icon-big-arrow-left icon--direction-aware" part="icon" viewBox="0 0 36 36"> 2872 <path fill="none" stroke="currentColor" stroke-width="2" d="M35 18H3M19.5 34.5 3 18 19.5 1.5"/> 2873 </svg></button> 2874 </carousel-prev-button> 2875 2876 <scroll-carousel id="promo-block-list-mega_menu_iQqGYYmega-menu-carousel" class="menu-promo__carousel scroll-area"> 2877 2878 <a href="/products/rituel-sommeil" class="menu-promo__item group"><div class="v-stack content-wrapper justify-items-start gap-3"><div class="overflow-hidden image-container"><img lazy-src="//www.kusmitea.com/cdn/shop/files/sommeil_glace.jpg?v=1761298138&width=400" alt="Rituel sommeil" lazy-srcset="//www.kusmitea.com/cdn/shop/files/sommeil_glace.jpg?v=1761298138&width=220 220w" width="400" height="400" loading="lazy" sizes="220px" class="zoom-image group-hover:zoom" style="object-position:48.25% 72.375%;"></div><div class="v-stack text-wrapper text-start gap-1"><p class="text-body text-xs">Rituel sommeil</p> 2879 2880<p class="text-body text-sm">Retrouvez le sommeil</p></div></div></a> 2881 2882 <a href="/products/rituel-drainant" class="menu-promo__item group"><div class="v-stack content-wrapper justify-items-start gap-3"><div class="overflow-hidden image-container"><img lazy-src="//www.kusmitea.com/cdn/shop/files/RITUELDRAINANT_25_LIFESTYLE_DRAI100BIO_DRAI18SBIO_POR_04_1.jpg?v=1760017586&width=500" alt="Rituel drainant" lazy-srcset="//www.kusmitea.com/cdn/shop/files/RITUELDRAINANT_25_LIFESTYLE_DRAI100BIO_DRAI18SBIO_POR_04_1.jpg?v=1760017586&width=220 220w, //www.kusmitea.com/cdn/shop/files/RITUELDRAINANT_25_LIFESTYLE_DRAI100BIO_DRAI18SBIO_POR_04_1.jpg?v=1760017586&width=440 440w" width="500" height="600" loading="lazy" sizes="220px" class="zoom-image group-hover:zoom"></div><div class="v-stack text-wrapper text-start gap-1"><p class="text-body text-xs">Rituel drainant</p> 2883 2884<p class="text-body text-sm">Détoxifiez votre organisme !</p></div></div></a> 2885 2886 <a href="/collections/the-infusion-sante" class="menu-promo__item group"><div class="v-stack content-wrapper justify-items-start gap-3"><div class="overflow-hidden image-container"><img lazy-src="//www.kusmitea.com/cdn/shop/files/lot.png?v=1769079671&width=985" alt="Gamme rituel" lazy-srcset="//www.kusmitea.com/cdn/shop/files/lot.png?v=1769079671&width=220 220w, //www.kusmitea.com/cdn/shop/files/lot.png?v=1769079671&width=440 440w, //www.kusmitea.com/cdn/shop/files/lot.png?v=1769079671&width=660 660w" width="985" height="857" loading="lazy" sizes="220px" class="zoom-image group-hover:zoom"></div><div class="v-stack text-wrapper text-start gap-1"><p class="text-body text-xs">Gamme rituel</p> 2887 2888<p class="text-body text-sm">Agissez pour votre bien-être !</p></div></div></a> 2889 2890 <a href="/products/rituel-energie" class="menu-promo__item group"><div class="v-stack content-wrapper justify-items-start gap-3"><div class="overflow-hidden image-container"><img lazy-src="//www.kusmitea.com/cdn/shop/files/MENU_rituel_energie_ete_2026.webp?v=1784877611&width=610" alt="Rituel énergie" lazy-srcset="//www.kusmitea.com/cdn/shop/files/MENU_rituel_energie_ete_2026.webp?v=1784877611&width=220 220w, //www.kusmitea.com/cdn/shop/files/MENU_rituel_energie_ete_2026.webp?v=1784877611&width=440 440w" width="610" height="767" loading="lazy" sizes="220px" class="zoom-image group-hover:zoom"></div><div class="v-stack text-wrapper text-start gap-1"><p class="text-body text-xs">Rituel énergie</p> 2891 2892<p class="text-body text-sm">Rechargez vos batteries !</p></div></div></a> 2893 2894</scroll-carousel> 2895 2896 <carousel-next-button class="floating-controls__control floating-controls__control--offset" aria-controls="promo-block-list-mega_menu_iQqGYYmega-menu-carousel"> 2897 <button class="circle-button circle-button--xl">
2898 <span class="sr-only">Suivant</span><svg aria-hidden="true" focusable="false" width="14" class="icon icon-big-arrow-right icon--direction-aware" part="icon" viewBox="0 0 36 36"> 2899 <path fill="none" stroke="currentColor" stroke-width="2" d="M1 18h32M16.5 1.5 33 18 16.5 34.5"/> 2900 </svg></button> 2901 </carousel-next-button> 2902 </div></header-mega-menu></li> 2903 2904 <li><a 2905 href="/collections/thes-infusions" 2906 class="block link-reversed text-md" 2907 data-text="Thés & InfusionsBIO" 2908 2909 2910 aria-expanded="false" aria-controls="header-menu-dropdown-4" 2911 data-open-on-hover 2912 2913 >Thés & Infusions<sup>BIO</sup></a><header-mega-menu id="header-menu-dropdown-4" class="mega-menu justify-between color-scheme color-scheme--scheme-1" ><div class="mega-menu__navigation"><div class="v-stack gap-4"> 2914 <a href="#" class="link-faded text-body level-2 text-xs">Notre sélection</a><ul class="mega-menu__linklist unstyled-list"><li> 2915 2916<a href="/collections/nouveautes" class="link-reversed text-sm">Nouveautés 2917</a></li><li> 2918 2919<a href="/collections/best-sellers" class="link-reversed text-sm">Best-sellers 2920</a></li><li> 2921 2922<a href="/collections/thes-detox-bien-etre" class="link-reversed text-sm">Thés détox & bien-être 2923</a></li><li> 2924 2925<a href="/collections/thes-earl-grey" class="link-reversed text-sm">Thés Earl Grey 2926</a></li></ul></div><div class="v-stack gap-4"> 2927 <a href="#" class="link-faded text-body level-2 text-xs">Thés</a><ul class="mega-menu__linklist unstyled-list"><li> 2928 2929<a href="/collections/the-noir" class="link-reversed text-sm">Thé noir 2930</a></li><li> 2931 2932<a href="/collections/the-vert" class="link-reversed text-sm">Thé vert 2933</a></li><li> 2934 2935<a href="/collections/the-blanc" class="link-reversed text-sm">Thé blanc 2936</a></li><li> 2937 2938<a href="/collections/mate" class="link-reversed text-sm">Maté 2939</a></li><li> 2940 2941<a href="/collections/matcha" class="link-reversed text-sm">Matcha & Ube 2942</a></li><li> 2943 2944<a href="/collections/the-infusion-sante" class="link-reversed text-sm">Thé & infusion santé 2945</a></li><li> 2946 2947<a href="/collections/tous-les-thes" class="link text-sm link-sperate">Voir tout 2948</a></li></ul></div><div class="v-stack gap-4"> 2949 <a href="#" class="link-faded text-body level-2 text-xs">Infusions</a><ul class="mega-menu__linklist unstyled-list"><li> 2950 2951<a href="/collections/infusion" class="link-reversed text-sm">Infusion & Tisane 2952</a></li><li> 2953 2954<a href="/collections/rooibos" class="link-reversed text-sm">Rooibos 2955</a></li><li> 2956 2957<a href="/collections/eau-de-fruit" class="link-reversed text-sm">Eau de fruit 2958</a></li><li> 2959 2960<a href="/collections/infusion" class="link text-sm link-sperate">Voir tout 2961</a></li></ul></div><div class="v-stack gap-4"> 2962 <a href="#" class="link-faded text-body level-2 text-xs">Par format</a><ul class="mega-menu__linklist unstyled-list"><li> 2963 2964<a href="/collections/boites" class="link-reversed text-sm">Boites 2965</a></li><li> 2966 2967<a href="/collections/sachets-de-the" class="link-reversed text-sm">Sachets de thé 2968</a></li><li> 2969 2970<a href="/collections/the-en-vrac" class="link-reversed text-sm">Thé en vrac 2971</a></li><li> 2972 2973<a href="/collections/coffrets" class="link-reversed text-sm">Coffrets 2974</a></li><li> 2975 2976<a href="/collections/boites-miniatures" class="link-reversed text-sm">Boites miniatures 2977</a></li></ul></div></div><style> 2978 #promo-block-list-mega_menu_RDBAkgmega-menu { 2979 --menu-promo-block-column-gap: 12px; 2980 --menu-promo-blocks-count: 2; 2981 } 2982 </style> 2983 2984 <div id="promo-block-list-mega_menu_RDBAkgmega-menu" class="menu-promo menu-promo--with-spacing floating-controls-container"> 2985 <carousel-prev-button class="floating-controls__control floating-controls__control--offset" aria-controls="promo-block-list-mega_menu_RDBAkgmega-menu-carousel"> 2986 <button disabled class="circle-button circle-button--xl">
2987 <span class="sr-only">Précédent</span><svg aria-hidden="true" focusable="false" width="14" class="icon icon-big-arrow-left icon--direction-aware" part="icon" viewBox="0 0 36 36"> 2988 <path fill="none" stroke="currentColor" stroke-width="2" d="M35 18H3M19.5 34.5 3 18 19.5 1.5"/> 2989 </svg></button> 2990 </carousel-prev-button> 2991 2992 <scroll-carousel id="promo-block-list-mega_menu_RDBAkgmega-menu-carousel" class="menu-promo__carousel scroll-area"> 2993 2994 <a href="/collections/matcha" class="menu-promo__item group"><div class="v-stack content-wrapper justify-items-start gap-4"><div class="overflow-hidden image-container"><img lazy-src="//www.kusmitea.com/cdn/shop/files/HP_offre_desktop_matcha_premium_2.webp?v=1782894477&width=1537" alt="Nouveau :" lazy-srcset="//www.kusmitea.com/cdn/shop/files/HP_offre_desktop_matcha_premium_2.webp?v=1782894477&width=220 220w, //www.kusmitea.com/cdn/shop/files/HP_offre_desktop_matcha_premium_2.webp?v=1782894477&width=440 440w, //www.kusmitea.com/cdn/shop/files/HP_offre_desktop_matcha_premium_2.webp?v=1782894477&width=660 660w" width="1537" height="1556" loading="lazy" sizes="220px" class="zoom-image group-hover:zoom"></div><div class="v-stack text-wrapper text-start gap-2"><p class="text-body text-xs">Nouveau :</p> 2995 2996<p class="text-body text-sm">Découvrez notre gamme de Matcha & Ube</p></div></div></a> 2997 2998 <a href="/products/blue-moon" class="menu-promo__item group"><div class="v-stack content-wrapper justify-items-start gap-4"><div class="overflow-hidden image-container"><img lazy-src="//www.kusmitea.com/cdn/shop/files/BLUE_MOON_26_CAROLINE_RECEVEUR_MOON150BIO_INSTIT_1.webp?v=1788874331&width=1521" alt="Nouveau : Blue Moon" lazy-srcset="//www.kusmitea.com/cdn/shop/files/BLUE_MOON_26_CAROLINE_RECEVEUR_MOON150BIO_INSTIT_1.webp?v=1788874331&width=220 220w, //www.kusmitea.com/cdn/shop/files/BLUE_MOON_26_CAROLINE_RECEVEUR_MOON150BIO_INSTIT_1.webp?v=1788874331&width=440 440w, //www.kusmitea.com/cdn/shop/files/BLUE_MOON_26_CAROLINE_RECEVEUR_MOON150BIO_INSTIT_1.webp?v=1788874331&width=660 660w" width="1521" height="1521" loading="lazy" sizes="220px" class="zoom-image group-hover:zoom"></div><div class="v-stack text-wrapper text-start gap-2"><p class="text-body text-xs">Nouveau : Blue Moon</p> 2999 3000<p class="text-body text-sm">L'infusion qui invite à ralentir</p></div></div></a> 3001 3002 3003 3004</scroll-carousel> 3005 3006 <carousel-next-button class="floating-controls__control floating-controls__control--offset" aria-controls="promo-block-list-mega_menu_RDBAkgmega-menu-carousel"> 3007 <button class="circle-button circle-button--xl"> 3008 <span class="sr-only">Suivant</span><svg aria-hidden="true" focusable="false" width="14" class="icon icon-big-arrow-right icon--direction-aware" part="icon" viewBox="0 0 36 36"> 3009 <path fill="none" stroke="currentColor" stroke-width="2" d="M1 18h32M16.5 1.5 33 18 16.5 34.5"/> 3010 </svg></button> 3011 </carousel-next-button> 3012 </div></header-mega-menu></li> 3013 3014 <li><a 3015 href="/collections/coffrets-cadeaux" 3016 class="block link-reversed text-md" 3017 data-text="Coffrets & Cadeaux" 3018 3019 3020 aria-expanded="false" aria-controls="header-menu-dropdown-5" 3021 data-open-on-hover 3022 3023 >Coffrets & Cadeaux</a><header-mega-menu id="header-menu-dropdown-5" class="mega-menu justify-between color-scheme color-scheme--scheme-1" ><div class="mega-menu__navigation"><div class="v-stack gap-4"> 3024 <a href="#" class="link-faded text-body level-2 text-xs">Coffrets & cadeaux</a><ul class="mega-menu__linklist unstyled-list"><li> 3025 3026<a href="/collections/coffrets-de-thes-en-sachets" class="link-reversed text-sm">Coffrets de thés en sachets</a></li><li> 3027 3028<a href="/collections/coffrets-de-thes-en-boites" class="link-reversed text-sm">Coffrets de thés en boîtes</a></li><li> 3029 3030<a href="/collections/accessoires-a-offrir" class="link-reversed text-sm">Accessoires à offrir</a></li><li> 3031 3032<a href="/collections/selection-alain-ducasse" class="link-reversed text-sm">Sélection Alain Ducasse</a></li><li> 3033 3034<a href="/collections/la-selection-de-thes-de-lelysee" class="link-reversed text-sm">Sélection thés de l'Ãlysée</a></li><li> 3035 3036<a href="/collections/coffrets-cadeaux" class="link text-sm link-sperate">Voir tout</a></li></ul></div><div class="v-stack gap-4"> 3037 <a href="#" class="link-faded text-body level-2 text-xs">Types de thé</a><ul class="mega-menu__linklist unstyled-list"><li> 3038 3039<a href="/collections/coffrets-infusions-et-tisanes" class="link-reversed text-sm">Infusions & tisanes</a></li><li> 3040 3041<a href="/collections/coffrets-thes-noirs" class="link-reversed text-sm">Thé noir</a></li><li> 3042 3043<a href="/collections/coffrets-thes-verts" class="link-reversed text-sm">Thé vert</a></li><li> 3044 3045<a href="/collections/the-dexception" class="link-reversed text-sm">Thé d'exception</a></li></ul></div><div class="v-stack gap-4"> 3046 <a href="#" class="link-faded text-body level-2 text-xs">Prix</a><ul class="mega-menu__linklist unstyled-list"><li> 3047 3048<a href="/collections/coffrets-cadeaux-moins-de-15" class="link-reversed text-sm">Moins de 15â¬</a></li><li> 3049 3050<a href="/collections/coffrets-cadeaux-de-15-a-30" class="link-reversed text-sm">De 15⬠à 30â¬</a></li><li> 3051 3052<a href="/collections/coffrets-cadeaux-de-30-a-60" class="link-reversed text-sm">De 30⬠à 60â¬</a></li><li> 3053 3054<a href="/collections/coffrets-cadeaux-plus-de-60" class="link-reversed text-sm">Plus de 60â¬</a></li></ul></div><div class="v-stack gap-4"> 3055 <a href="#" class="link-faded text-body level-2 text-xs">Carte cadeaux</a><ul class="mega-menu__linklist unstyled-list"><li> 3056 3057<a href="/products/carte-cadeau" class="link-reversed text-sm">Carte cadeaux</a></li></ul></div></div><style> 3058 #promo-block-list-mega_menu_DJByggmega-menu { 3059 --menu-promo-block-column-gap: 12px; 3060 --menu-promo-blocks-count: 2; 3061 } 3062 </style> 3063 3064 <div id="promo-block-list-mega_menu_DJByggmega-menu" class="menu-promo menu-promo--with-spacing floating-control
3064s-container"> 3065 <carousel-prev-button class="floating-controls__control floating-controls__control--offset" aria-controls="promo-block-list-mega_menu_DJByggmega-menu-carousel"> 3066 <button disabled class="circle-button circle-button--xl"> 3067 <span class="sr-only">Précédent</span><svg aria-hidden="true" focusable="false" width="14" class="icon icon-big-arrow-left icon--direction-aware" part="icon" viewBox="0 0 36 36"> 3068 <path fill="none" stroke="currentColor" stroke-width="2" d="M35 18H3M19.5 34.5 3 18 19.5 1.5"/> 3069 </svg></button> 3070 </carousel-prev-button> 3071 3072 <scroll-carousel id="promo-block-list-mega_menu_DJByggmega-menu-carousel" class="menu-promo__carousel scroll-area"> 3073 3074 <a href="/collections/coffrets-de-thes-en-boites" class="menu-promo__item group"><div class="v-stack content-wrapper justify-items-start gap-3"><div class="overflow-hidden image-container"><img lazy-src="//www.kusmitea.com/cdn/shop/files/Menu_coffret525.webp?v=1776237462&width=346" alt="Nouveau :" lazy-srcset="//www.kusmitea.com/cdn/shop/files/Menu_coffret525.webp?v=1776237462&width=220 220w" width="346" height="388" loading="lazy" sizes="220px" class="zoom-image group-hover:zoom"></div><div class="v-stack text-wrapper text-start gap-1"><p class="text-body text-xs">Nouveau :</p> 3075 3076<p class="text-body text-sm">Coffrets miniatures</p></div></div></a> 3077 3078 <a href="/products/calendrier-de-lavent" class="menu-promo__item group"><div class="v-stack content-wrapper justify-items-start gap-3"><div class="overflow-hidden image-container"><img lazy-src="//www.kusmitea.com/cdn/shop/files/MENU_xmas_calendrier_2026_719153c7-b427-4edf-bb2b-7277eb7c906f.webp?v=1789739945&width=610" alt="Calendrier de l'Avent" lazy-srcset="//www.kusmitea.com/cdn/shop/files/MENU_xmas_calendrier_2026_719153c7-b427-4edf-bb2b-7277eb7c906f.webp?v=1789739945&width=220 220w, //www.kusmitea.com/cdn/shop/files/MENU_xmas_calendrier_2026_719153c7-b427-4edf-bb2b-7277eb7c906f.webp?v=1789739945&width=440 440w" width="610" height="767" loading="lazy" sizes="220px" class="zoom-image group-hover:zoom"></div><div class="v-stack text-wrapper text-start gap-1"><p class="text-body text-xs">Calendrier de l'Avent</p> 3079 3080<p class="text-body text-sm">24 surprises mystérieuses</p></div></div></a> 3081 3082 3083 3084</scroll-carousel> 3085 3086 <carousel-next-button class="floating-controls__control floating-controls__control--offset" aria-controls="promo-block-list-mega_menu_DJByggmega-menu-carousel"> 3087 <button class="circle-button circle-button--xl"> 3088 <span class="sr-only">Suivant</span><svg aria-hidden="true" focusable="false" width="14" class="icon icon-big-arrow-right icon--direction-aware" part="icon" viewBox="0 0 36 36"> 3089 <path fill="none" stroke="currentColor" stroke-width="2" d="M1 18h32M16.5 1.5 33 18 16.5 34.5"/> 3090 </svg></button> 3091 </carousel-next-button> 3092 </div></header-mega-menu></li> 3093 3094 <li><a 3095 href="/collections/accessoires" 3096 class="block link-reversed text-md" 3097 data-text="Accessoires" 3098 3099 3100 aria-expanded="false" aria-controls="header-menu-dropdown-6" 3101 data-open-on-hover 3102 3103 >Accessoires</a><header-mega-menu id="header-menu-dropdown-6" class="mega-menu justify-between color-scheme color-scheme--scheme-1" ><div class="mega-menu__navigation"><div class="v-stack gap-4"> 3104 <a href="#" class="link-faded text-body level-2 text-xs">Déguster le thé</a><ul class="mega-menu__linklist unstyled-list"><li> 3105 3106<a href="/collections/theieres" class="link-reversed text-sm">Théières</a></li><li> 3107 3108<a href="/collections/tasses-et-mugs" class="link-reversed text-sm">Tasses et Mugs</a></li><li> 3109 3110<a href="/collections/accessoires-isothermes" class="link-reversed text-sm">Accessoires isothermes</a></li><li> 3111 3112<a href="/collections/carafes-a-the-glace" class="link-reversed text-sm">Carafes à thé glacé</a></li><li> 3113 3114<a href="/collections/accessoires" class="link text-sm link-sperate">Voir tout</a></li></ul></div><div class="v-stack gap-4"> 3115 <a href="#" class="link-faded text-body level-2 text-xs">Préparer le thé</a><ul class="mega-menu__linklist unstyled-list"><li> 3116 3117<a href="/collections/filtres-a-the-et-infuseurs" class="link-reversed text-sm">Filtres à thé et Infuseurs</a></li><li> 3118 3119<a href="/collections/machines-a-the" class="link-reversed text-sm">Machines à thé</a></li><li> 3120 3121<a href="/collections/bouilloires" class="link-reversed text-sm">Bouilloires</a></li></ul></div><div class="v-stack gap-4"> 3122 <a href="#" class="link-faded text-body level-2 text-xs">Conserver le thé</a><ul class="mega-menu__linklist unstyled-list"><li> 3123 3124<a href="/collections/boites-a-the" class="link-reversed text-sm">Boîtes à thé</a></li></ul></div><div class="v-stack gap-4"> 3125 <a href="#" class="link-faded text-body level-2 text-xs">Prix</a><ul class="mega-menu__linklist unstyled-list"><li> 3126 3127<a href="/collections/accessoires-moins-de-30" class="link-reversed text-sm">Moins de 30â¬</a></li><li> 3128 3129<a href="/collections/accessoires-de-30-a-60" class="link-reversed text-sm">De 30⬠à 60â¬</a></li><li> 3130 3131<a href="/collections/accessoires-plus-de-60" class="link-reversed text-sm">Plus de 60â¬</a></li></ul></div></div><style> 3132 #promo-block-list-mega_menu_mdqRJCmega-menu { 3133 --menu-promo-block-column-gap: 12px; 3134 --menu-promo-blocks-count: 2; 3135 } 3136 </style> 3137 3138 <div id="promo-block-list-mega_menu_mdqRJCmega-menu" class="menu-promo menu-promo--with-spacing floating-control
3138s-container"> 3139 <carousel-prev-button class="floating-controls__control floating-controls__control--offset" aria-controls="promo-block-list-mega_menu_mdqRJCmega-menu-carousel"> 3140 <button disabled class="circle-button circle-button--xl"> 3141 <span class="sr-only">Précédent</span><svg aria-hidden="true" focusable="false" width="14" class="icon icon-big-arrow-left icon--direction-aware" part="icon" viewBox="0 0 36 36"> 3142 <path fill="none" stroke="currentColor" stroke-width="2" d="M35 18H3M19.5 34.5 3 18 19.5 1.5"/> 3143 </svg></button> 3144 </carousel-prev-button> 3145 3146 <scroll-carousel id="promo-block-list-mega_menu_mdqRJCmega-menu-carousel" class="menu-promo__carousel scroll-area"> 3147 3148 <a href="/collections/matcha" class="menu-promo__item group"><div class="v-stack content-wrapper justify-items-start gap-3"><div class="overflow-hidden image-container"><img lazy-src="//www.kusmitea.com/cdn/shop/files/ACCESS_24_MATCHABOLTOTEMNOI_UNI_01_1.png?v=1773417313&width=3277" alt="Gamme Matcha" lazy-srcset="//www.kusmitea.com/cdn/shop/files/ACCESS_24_MATCHABOLTOTEMNOI_UNI_01_1.png?v=1773417313&width=220 220w, //www.kusmitea.com/cdn/shop/files/ACCESS_24_MATCHABOLTOTEMNOI_UNI_01_1.png?v=1773417313&width=440 440w, //www.kusmitea.com/cdn/shop/files/ACCESS_24_MATCHABOLTOTEMNOI_UNI_01_1.png?v=1773417313&width=660 660w" width="3277" height="4096" loading="lazy" sizes="220px" class="zoom-image group-hover:zoom"></div><div class="v-stack text-wrapper text-start gap-1"><p class="text-body text-xs">Gamme Matcha</p> 3149 3150<p class="text-body text-sm">Préparez votre matcha dans les règles de l'art</p></div></div></a> 3151 3152 <a href="/collections/accessoires-isothermes" class="menu-promo__item group"><div class="v-stack content-wrapper justify-items-start gap-3"><div class="overflow-hidden image-container"><img lazy-src="//www.kusmitea.com/cdn/shop/files/HP_offre_desk_kambukka_mai_26.webp?v=1778076191&width=1521" alt="Nouveauté :" lazy-srcset="//www.kusmitea.com/cdn/shop/files/HP_offre_desk_kambukka_mai_26.webp?v=1778076191&width=220 220w, //www.kusmitea.com/cdn/shop/files/HP_offre_desk_kambukka_mai_26.webp?v=1778076191&width=440 440w, //www.kusmitea.com/cdn/shop/files/HP_offre_desk_kambukka_mai_26.webp?v=1778076191&width=660 660w" width="1521" height="1521" loading="lazy" sizes="220px" class="zoom-image group-hover:zoom"></div><div class="v-stack text-wrapper text-start gap-1"><p class="text-body text-xs">Nouveauté :</p> 3153 3154<p class="text-body text-sm">Les nouveaux mugs Kambukka, le plaisir du thé à emporter</p></div></div></a> 3155 3156 3157 3158</scroll-carousel> 3159 3160 <carousel-next-button class="floating-controls__control floating-controls__control--offset" aria-controls="promo-block-list-mega_menu_mdqRJCmega-menu-carousel"> 3161 <button class="circle-button circle-button--xl"> 3162 <span class="sr-only">Suivant</span><svg aria-hidden="true" focusable="false" width="14" class="icon icon-big-arrow-right icon--direction-aware" part="icon" viewBox="0 0 36 36"> 3163 <path fill="none" stroke="currentColor" stroke-width="2" d="M1 18h32M16.5 1.5 33 18 16.5 34.5"/> 3164 </svg></button> 3165 </carousel-next-button> 3166 </div></header-mega-menu></li> 3167 3168 <li><a 3169 href="/pages/la-marque" 3170 class="block link-reversed text-md header__link-with-icon" 3171 data-text="La marque" 3172 3173 3174 aria-expanded="false" aria-controls="header-menu-dropdown-7" 3175 data-open-on-hover 3176 3177 ><img 3178 src="//www.kusmitea.com/cdn/shop/files/ab_certif.webp?v=1761211429&width=44" 3179 alt="La marque" 3180 width="22" 3181 height="15" 3182 class="header__link-icon" 3183 loading="lazy" 3184 >La marque</a><header-mega-menu id="header-menu-dropdown-7" class="mega-menu justify-between color-scheme color-scheme--scheme-1" ><div class="mega-menu__navigation"><div class="v-stack gap-4"> 3185 <a href="#" class="link-faded text-body level-2 text-xs">Kusmi Tea s'engage</a><ul class="mega-menu__linklist unstyled-list"><li> 3186 3187<a href="/pages/la-marque" class="link-reversed text-sm">Qui sommes-nous</a></li><li> 3188 3189<a href="/pages/notre-raison-d-etre" class="link-reversed text-sm">Notre raison d'être</a></li><li> 3190 3191<a href="/pages/nos-engagements" class="link-reversed text-sm">Nos engagements</a></li><li> 3192 3193<a href="/pages/kusmi-tea-est-labellisee-b-corp" class="link-reversed text-sm">B Corp</a></li></ul></div><div class="v-stack gap-4"> 3194 <a href="#" class="link-faded text-body level-2 text-xs">Service client</a><ul class="mega-menu__linklist unstyled-list"><li> 3195 3196<a href="/pages/trouvez-votre-boutique" class="link-reversed text-sm">Nos boutiques</a></li><li> 3197 3198<a href="/pages/click-collect" class="link-reversed text-sm">
3198Click & Collect</a></li><li> 3199 3200<a href="https://kusmitea-ssw4lt8dynr.gorgias.help/fr-FR" class="link-reversed text-sm">Aide et contact</a></li><li> 3201 3202<a href="https://www.linkedin.com/company/kusmi-tea" class="link-reversed text-sm">Nous rejoindre</a></li><li> 3203 3204<a href="/pages/client-professionnel" class="link-reversed text-sm">Clients professionnels</a></li></ul></div></div><style> 3205 #promo-block-list-mega_menu_yrUEUnmega-menu { 3206 --menu-promo-block-column-gap: 12px; 3207 --menu-promo-blocks-count: 2; 3208 } 3209 </style> 3210 3211 <div id="promo-block-list-mega_menu_yrUEUnmega-menu" class="menu-promo menu-promo--with-spacing floating-controls-container"> 3212 <carousel-prev-button class="floating-controls__control floating-controls__control--offset" aria-controls="promo-block-list-mega_menu_yrUEUnmega-menu-carousel"> 3213 <button disabled class="circle-button circle-button--xl"> 3214 <span class="sr-only">Précédent</span><svg aria-hidden="true" focusable="false" width="14" class="icon icon-big-arrow-left icon--direction-aware" part="icon" viewBox="0 0 36 36"> 3215 <path fill="none" stroke="currentColor" stroke-width="2" d="M35 18H3M19.5 34.5 3 18 19.5 1.5"/> 3216 </svg></button> 3217 </carousel-prev-button> 3218 3219 <scroll-carousel id="promo-block-list-mega_menu_yrUEUnmega-menu-carousel" class="menu-promo__carousel scroll-area"> 3220 3221 <a href="/pages/kusmi-tea-est-labellisee-b-corp" class="menu-promo__item group"><div class="v-stack content-wrapper justify-items-start gap-4"><div class="overflow-hidden image-container"><img lazy-src="//www.kusmitea.com/cdn/shop/files/image_promo_3.webp?v=1761139930&width=1698" alt="" lazy-srcset="//www.kusmitea.com/cdn/shop/files/image_promo_3.webp?v=1761139930&width=220 220w, //www.kusmitea.com/cdn/shop/files/image_promo_3.webp?v=1761139930&width=440 440w, //www.kusmitea.com/cdn/shop/files/image_promo_3.webp?v=1761139930&width=660 660w" width="1698" height="1050" loading="lazy" sizes="220px" class="zoom-image group-hover:zoom"></div><div class="v-stack text-wrapper text-start gap-2"> 3222<p class="text-body text-sm">Kusmi Tea est labellisée B Corp !</p></div></div></a> 3223 3224 <a href="/pages/nos-engagements" class="menu-promo__item group"><div class="v-stack content-wrapper justify-items-start gap-4"><div class="overflow-hidden image-container"><img lazy-src="//www.kusmitea.com/cdn/shop/files/express_fedex_image.webp?v=1774524124&width=840" alt="" lazy-srcset="//www.kusmitea.com/cdn/shop/files/express_fedex_image.webp?v=1774524124&width=220 220w, //www.kusmitea.com/cdn/shop/files/express_fedex_image.webp?v=1774524124&width=440 440w, //www.kusmitea.com/cdn/shop/files/express_fedex_image.webp?v=1774524124&width=660 660w" width="840" height="680" loading="lazy" sizes="220px" class="zoom-image group-hover:zoom"></div><div class="v-stack text-wrapper text-start gap-2"> 3225<p class="text-body text-sm">Kusmi tea est bio</p></div></div></a> 3226 3227 3228 3229</scroll-carousel> 3230 3231 <carousel-next-button class="floating-controls__control floating-controls__control--offset" aria-controls="promo-block-list-mega_menu_yrUEUnmega-menu-carousel"> 3232 <button class="circle-button circle-button--xl"> 3233 <span class="sr-only">Suivant</span><svg aria-hidden="true" focusable="false" width="14" class="icon icon-big-arrow-right icon--direction-aware" part="icon" viewBox="0 0 36 36"> 3234 <path fill="none" stroke="currentColor" stroke-width="2" d="M1 18h32M16.5 1.5 33 18 16.5 34.5"/> 3235 </svg></button> 3236 </carousel-next-button> 3237 </div></header-mega-menu></li> 3238 3239 <li><a 3240 href="/blogs/the" 3241 class="block link-reversed text-md" 3242 data-text="Conseils" 3243 3244 3245 3246 >Conseils</a></li></ul></nav><nav class="header__secondary-nav" aria-label="Navigation secondaire"> 3247 <ul class="contents unstyled-list"><li class="header__search-link header__search-link--expanded md-max:hidden"> 3248 <a 3249 href="/search" 3250 class="tap-area" 3251 aria-controls="search-drawer" 3252 aria-label="Rechercher" 3253 >
3254 <span class="header__search-text"> 3255 <span>Rechercher</span><svg aria-hidden="true" focusable="false" width="16" fill="none" class="icon icon-search" part="icon" viewBox="0 0 16 16"> 3256 <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" /> 3257 </svg></span> 3258 </a> 3259 </li><li class="header__news-link md-max:hidden"> 3260 <a href="/pages/trouvez-votre-boutique" class="tap-area"> 3261 <span class="sr-only">Nos points de vente</span> 3262 <svg width="13" height="19" viewBox="0 0 13 19" fill="none" class="icon-location"> 3263 <path d="M6.5 0.5C3.18944 0.5 0.5 3.23319 0.5 6.59762C0.5 11.2505 6.5 18.5 6.5 18.5C6.5 18.5 12.5 11.2571 12.5 6.59762C12.5 3.23319 9.81057 0.5 6.5 0.5ZM6.5 8.75163C5.5523 8.75163 4.78389 7.97072 4.78389 7.00759C4.78389 6.04447 5.5523 5.26356 6.5 5.26356C7.44771 5.26356 8.21612 6.04447 8.21612 7.00759C8.21612 7.97072 7.44771 8.75163 6.5 8.75163Z" stroke="currentColor" stroke-miterlimit="10" stroke-linejoin="round"/> 3264</svg> 3265 </a> 3266 </li><li class="header__account-link"> 3267 3268<a 3269 href="/customer_authentication/login?return_to=%2Fpages%2Finscription-fidelite&locale=fr®ion_country=FR" 3270 class="tap-area" 3271 > 3272 <span class="sr-only">Connexion</span><svg width="40" height="40" viewBox="0 0 40 40" fill="none"> 3273 <path d="M24 16C24 18.2073 22.2073 20 20 20C17.7927 20 16 18.2073 16 16C16 13.7927 17.7927 12 20 12C22.2073 12 24 13.7927 24 16Z" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"/> 3274 <path d="M12 28C12 23.5847 15.5786 20 20 20C24.4214 20 28 23.5786 28 28" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"/> 3275 </svg></a> 3276 3277 </li><li class="header__cart-link relative"> 3278 <a 3279 href="/cart" 3280 class="tap-area" 3281 3282 aria-controls="cart-drawer" 3283 3284 data-no-instant 3285 > 3286 <span class="sr-only">Panier</span><svg aria-hidden="true" focusable="false" width="16" fill="none" class="icon icon-cart" part="icon" viewBox="0 0 16 16"> 3287 <path stroke-width="1" stroke="currentColor" d="m3 14.5-2-7h14l-2 7H3ZM3.333 7.333 6 2M12.667 7.333 10 2" /> 3288 </svg></a> 3289 3290 <cart-count 3291 class="header__active-dot"hidden 3292 3293 > 3294 <span>0</span> 3295 <span class="sr-only">0 produits</span> 3296 </cart-count> 3297 </li></ul> 3298 </nav><header-menu-drawer id="menu-drawer" class="menu-drawer color-scheme color-scheme--scheme-1"> 3299 <template> 3300 <div part="overlay"></div> 3301 3302 <div part="content"> 3303 <slot></slot> 3304 </div> 3305 </template><div class="menu-drawer__header"> 3306 <dialog-close-button style="display: contents"> 3307 <button type="button" class="menu-drawer__close tap-area"> 3308 <span class="sr-only">Fermer le menu</span><svg aria-hidden="true" focusable="false" width="14" class="icon icon-close" part="icon" fill="none" viewBox="0 0 10 10"> 3309 <path stroke="currentColor" d="m1 1 8 8m0-8L1 9" /> 3310 </svg></button> 3311 </dialog-close-button><a href="/" class="menu-drawer__logo"> 3312 <span class="sr-only">Kusmi Tea</span><img src="//www.kusmitea.com/cdn/shop/files/logo_black.svg?v=1761137956&width=114" alt="Logo kusmi tea" srcset="//www.kusmitea.com/cdn/shop/files/logo_black.svg?v=1761137956&width=114 114w, //www.kusmitea.com/cdn/shop/files/logo_black.svg?v=1761137956&width=114 114w" width="114" height="34" sizes="115px"></a></div><header-menu-drawer-panel id="menu-drawer-panel-main" data-main-panel class="menu-drawer__panel"><div class="menu-drawer__search-link"> 3313 <a href="/search" class="tap-area" aria-controls="search-drawer"> 3314 <span>Rechercher</span><svg aria-hidden="true" focusable="false" width="16" fill="none" class="icon icon-search" part="icon" viewBox="0 0 16 16"> 3315 <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" /> 3316 </svg></a> 3317 </div><div class="menu-drawer__panel-body"><ul class="menu-drawer__highlights unstyled-list"><li><a href="/products/calendrier-de-lavent" class="menu-drawer__highlight" ><img src="//www.kusmitea.com/cdn/shop/files/MENU_OFFRE_xmas_calendrier_EU_2026.webp?v=1790697140&width=516" alt="Calendrier de l'Avent" srcset="//www.kusmitea.com/cdn/shop/files/MENU_OFFRE_xmas_calendrier_EU_2026.webp?v=1790697140&width=129 129w, //www.kusmitea.com/cdn/shop/files/MENU_OFFRE_xmas_calendrier_EU_2026.webp?v=1790697140&width=258 258w, //www.kusmitea.com/cdn/shop/files/MENU_OFFRE_xmas_calendrier_EU_2026.webp?v=1790697140&width=387 387w, //www.kusmitea.com/cdn/shop/files/MENU_OFFRE_xmas_calendrier_EU_2026.webp?v=1790697140&width=516 516w" width="516" height="356" loading="lazy" sizes="129px"><span class="menu-drawer__highlight-title">Calendrier de l'Avent</span></a></li><li><a href="/products/the-vert-a-la-menthe-bio-a-larome-naturel-de-rose" class="menu-drawer__highlight" ><img src="//www.kusmitea.com/cdn/shop/files/MENU_OFFRE_octobre_rose_2026.webp?v=1790002887&width=516" alt="Octobre Rose" srcset="//www.kusmitea.com/cdn/shop/files/MENU_OFFRE_octobre_rose_2026.webp?v=1790002887&width=129 129w, //www.kusmitea.com/cdn/shop/files/MENU_OFFRE_octobre_rose_2026.webp?v=1790002887&width=258 258w, //www.kusmitea.com/cdn/shop/files/MENU_OFFRE_octobre_rose_2026.webp?v=1790002887&width=387 387w, //www.kusmitea.com/cdn/shop/files/MENU_OFFRE_octobre_rose_2026.webp?v=1790002887&width=516 516w" width="516" height="356" loading="lazy" sizes="129px"><span class="menu-drawer__highlight-title">Octobre Rose</span></a></li><li><a href="/products/blue-moon" class="menu-drawer__highlight" ><img src="//www.kusmitea.com/cdn/shop/files/MENU_OFFRE_blue_moon_20263.webp?v=1790004172&width=516" alt="Blue Moon" srcset="//www.kusmitea.com/cdn/shop/files/MENU_OFFRE_blue_moon_20263.webp?v=1790004172&width=129 129w, //www.kusmitea.com/cdn/shop/files/MENU_OFFRE_blue_moon_20263.webp?v=1790004172&width=258 258w, //www.kusmitea.com/cdn/shop/files/MENU_OFFRE_blue_moon_20263.webp?v=1790004172&width=387 387w, //www.kusmitea.com/cdn/shop/files/MENU_OFFRE_blue_moon_20263.webp?v=1790004172&width=516 516w" width="516" height="356" loading="lazy" sizes="129px"><span class="menu-drawer__highlight-title">Blue Moon</span></a></li><li><a href="/products/les-nympheas" class="menu-drawer__highlight" ><img src="//www.kusmitea.com/cdn/shop/files/MENU_OFFRE_les_nympheas_2026.webp?v=1790002887&width=516" alt="Les Nympheas" srcset="//www.kusmitea.com/cdn/shop/files/MENU_OFFRE_les_nympheas_2026.webp?v=1790002887&width=129 129w, //www.kusmitea.com/cdn/shop/files/MENU_OFFRE_les_nympheas_2026.webp?v=1790002887&width=258 258w, //www.kusmitea.com/cdn/shop/files/MENU_OFFRE_les_nympheas_2026.webp?v=1790002887&width=387 387w, //www.kusmitea.com/cdn/shop/files/MENU_OFFRE_les_nympheas_2026.webp?v=1790002887&width=516 516w" width="516" height="356" loading="lazy" sizes="129px"><span class="menu-drawer__highlight-title">Les Nympheas</span></a></li></ul><ul class="v-stack gap-3 faded-linklist unstyled-list"><li><a href="/products/calendrier-de-lavent" class="h4 w-full" style="color: #9132a0;">Calendrier de l'Avent<sup style="color: #9132a0;">New</sup></a></li><li><a href="/pages/offre-du-moment" class="h4 w-full" style="color: #93173b;">Offres</a></li><li><button 3318 type="button" 3319 class="h-stack gap-3 sm:gap-5 h4 text-start w-full menu-drawer__parent-item" 3320 data-panel-toggle 3321 aria-controls="menu-drawer-panel-3" 3322 3323 >
3324 <span class="menu-drawer__parent-link"><span>Bien-être</span></span> 3325 3326 <span class="menu-drawer__submenu-toggle" aria-hidden="true"><svg aria-hidden="true" focusable="false" width="9" class="icon icon-chevron-right" part="icon" viewBox="0 0 9 10"> 3327 <path fill="none" stroke="currentColor" stroke-width="1.5" d="m2.5 9 4-4-4-4"/> 3328 </svg></span> 3329 </button></li><li><button 3330 type="button" 3331 class="h-stack gap-3 sm:gap-5 h4 text-start w-full menu-drawer__parent-item" 3332 data-panel-toggle 3333 aria-controls="menu-drawer-panel-4" 3334 3335 > 3336 <span class="menu-drawer__parent-link"><span>Thés & Infusions<sup>BIO</sup></span></span> 3337 3338 <span class="menu-drawer__submenu-toggle" aria-hidden="true"><svg aria-hidden="true" focusable="false" width="9" class="icon icon-chevron-right" part="icon" viewBox="0 0 9 10"> 3339 <path fill="none" stroke="currentColor" stroke-width="1.5" d="m2.5 9 4-4-4-4"/> 3340 </svg></span> 3341 </button></li><li><button 3342 type="button" 3343 class="h-stack gap-3 sm:gap-5 h4 text-start w-full menu-drawer__parent-item" 3344 data-panel-toggle 3345 aria-controls="menu-drawer-panel-5" 3346 3347 > 3348 <span class="menu-drawer__parent-link"><span>Coffrets & Cadeaux</span></span> 3349 3350 <span class="menu-drawer__submenu-toggle" aria-hidden="true"><svg aria-hidden="true" focusable="false" width="9" class="icon icon-chevron-right" part="icon" viewBox="0 0 9 10"> 3351 <path fill="none" stroke="currentColor" stroke-width="1.5" d="m2.5 9 4-4-4-4"/> 3352 </svg></span> 3353 </button></li><li><button 3354 type="button" 3355 class="h-stack gap-3 sm:gap-5 h4 text-start w-full menu-drawer__parent-item" 3356 data-panel-toggle 3357 aria-controls="menu-drawer-panel-6" 3358 3359 > 3360 <span class="menu-drawer__parent-link"><span>Accessoires</span></span> 3361 3362 <span class="menu-drawer__submenu-toggle" aria-hidden="true"><svg aria-hidden="true" focusable="false" width="9" class="icon icon-chevron-right" part="icon" viewBox="0 0 9 10"> 3363 <path fill="none" stroke="currentColor" stroke-width="1.5" d="m2.5 9 4-4-4-4"/> 3364 </svg></span> 3365 </button></li><li class="menu-drawer__group-start"><button 3366 type="button" 3367 class="h-stack gap-3 sm:gap-5 h4 text-start w-full menu-drawer__parent-item" 3368 data-panel-toggle 3369 aria-controls="menu-drawer-panel-7" 3370 3371 > 3372 <span class="menu-drawer__parent-link menu-drawer__link-with-icon"><img src="//www.kusmitea.com/cdn/shop/files/ab_certif.webp?v=1761211429&width=44" alt="" width="22" height="15" class="menu-drawer__link-icon" loading="lazy"><span>La marque</span></span> 3373 3374 <span class="menu-drawer__submenu-toggle" aria-hidden="true"><svg aria-hidden="true" focusable="false" width="9" class="icon icon-chevron-right" part="icon" viewBox="0 0 9 10"> 3375 <path fill="none" stroke="currentColor" stroke-width="1.5" d="m2.5 9 4-4-4-4"/> 3376 </svg></span> 3377 </button></li><li><a href="/blogs/the" class="h4 w-full">Conseils</a></li></ul><hr class="menu-drawer__separator"><ul class="v-stack gap-3 unstyled-list"><li><a 3378 href="/customer_authentication/login?return_to=%2Fpages%2Finscription-fidelite&locale=fr®ion_country=FR" 3379 class="subheading secondary-link text-body link-reversed" 3380 >Mon compte</a></li><li> 3381 <a href="/pages/trouvez-votre-boutique" class="subheading secondary-link text-body link-reversed">Nos boutiques</a> 3382 </li><li> 3383 <a href="https://kusmitea-ssw4lt8dynr.gorgias.help/fr-FR" class="subheading secondary-link text-body link-reversed">Besoin d'aide ?</a> 3384 </li></ul> 3385 3386 <hr class="menu-drawer__separator"></div><div class="menu-drawer__panel-footer"><div class="menu-drawer__footer-item lg:hidden"> 3387 <div class="h-stack" id="shopify-orb-header-mobile"> </div> 3388 </div></div></header-menu-drawer-panel><header-menu-drawer-panel id="menu-drawer-panel-3" class="menu-drawer__panel color-scheme color-scheme--scheme-1"><div class="menu-drawer__breadcrumb"> 3389 <button type="button" class="menu-drawer__breadcrumb-back" data-panel-toggle aria-controls="menu-drawer-panel-main">
3389<svg aria-hidden="true" focusable="false" width="9" class="icon icon-chevron-right icon--direction-aware" part="icon" viewBox="0 0 9 10"> 3390 <path fill="none" stroke="currentColor" stroke-width="1.5" d="m2.5 9 4-4-4-4"/> 3391 </svg><span class="sr-only">Retour</span> 3392 <span class="text-body">Bien-être</span> 3393 </button><a href="/collections/the-infusion-sante" class="menu-drawer__view-all">Voir tout</a></div> 3394 3395 <div class="menu-drawer__panel-body"> 3396 <div class="v-stack gap-8"><div class="v-stack gap-8"><div class="v-stack justify-items-start gap-4 level-2--link"><div class="menu-drawer__group-heading"> 3397 <a href="/" class="subheading text-subdued link-reversed">Gamme Rituel</a></div><ul class="v-stack gap-2.5 unstyled-list level-2"><li><a href="/products/rituel-energie" class="link-reversed">Rituel Energie<sup>NEW</sup></a> 3398 </li><li><a href="/products/rituel-sommeil" class="link-reversed">Rituel Sommeil</a> 3399 </li><li><a href="/products/rituel-drainant" class="link-reversed">Rituel Drainant</a> 3400 </li><li><a href="/products/rituel-minceur" class="link-reversed">Rituel Minceur</a> 3401 </li><li><a href="/products/rituel-defenses-immunitaires" class="link-reversed">Rituel Défenses Immunitaires</a> 3402 </li><li><a href="/products/rituel-memoire" class="link-reversed">Rituel Mémoire</a> 3403 </li><li><a href="/products/coffret-rituel" class="link-reversed">Coffret Rituel</a> 3404 </li></ul></div></div><style> 3405 #promo-block-list-mega_menu_iQqGYYdrawer { 3406 --menu-promo-block-column-gap: 12px; 3407 --menu-promo-blocks-count: 4; 3408 } 3409 </style> 3410 3411 <div id="promo-block-list-mega_menu_iQqGYYdrawer" class="menu-promo menu-promo--with-spacing floating-controls-container"> 3412 <carousel-prev-button class="floating-controls__control floating-controls__control--offset" aria-controls="promo-block-list-mega_menu_iQqGYYdrawer-carousel"> 3413 <button disabled class="circle-button circle-button--xl"> 3414 <span class="sr-only">Précédent</span><svg aria-hidden="true" focusable="false" width="14" class="icon icon-big-arrow-left icon--direction-aware" part="icon" viewBox="0 0 36 36"> 3415 <path fill="none" stroke="currentColor" stroke-width="2" d="M35 18H3M19.5 34.5 3 18 19.5 1.5"/> 3416 </svg></button> 3417 </carousel-prev-button> 3418 3419 <scroll-carousel id="promo-block-list-mega_menu_iQqGYYdrawer-carousel" class="menu-promo__carousel scroll-area"> 3420 3421 <a href="/products/rituel-sommeil" class="menu-promo__item group"><div class="v-stack content-wrapper justify-items-start gap-3"><div class="overflow-hidden image-container"><img lazy-src="//www.kusmitea.com/cdn/shop/files/sommeil_glace.jpg?v=1761298138&width=400" alt="Rituel sommeil" lazy-srcset="//www.kusmitea.com/cdn/shop/files/sommeil_glace.jpg?v=1761298138&width=220 220w" width="400" height="400" loading="lazy" sizes="220px" class="zoom-image group-hover:zoom" style="object-position:48.25% 72.375%;"></div><div class="v-stack text-wrapper text-start gap-1"><p class="text-body text-xs">Rituel sommeil</p> 3422 3423<p class="text-body text-sm">Retrouvez le sommeil</p></div></div></a> 3424 3425 <a href="/products/rituel-drainant" class="menu-promo__item group"><div class="v-stack content-wrapper justify-items-start gap-3"><div class="overflow-hidden image-container"><img lazy-src="//www.kusmitea.com/cdn/shop/files/RITUELDRAINANT_25_LIFESTYLE_DRAI100BIO_DRAI18SBIO_POR_04_1.jpg?v=1760017586&width=500" alt="Rituel drainant" lazy-srcset="//www.kusmitea.com/cdn/shop/files/RITUELDRAINANT_25_LIFESTYLE_DRAI100BIO_DRAI18SBIO_POR_04_1.jpg?v=1760017586&width=220 220w, //www.kusmitea.com/cdn/shop/files/RITUELDRAINANT_25_LIFESTYLE_DRAI100BIO_DRAI18SBIO_POR_04_1.jpg?v=1760017586&width=440 440w" width="500" height="600" loading="lazy" sizes="220px" class="zoom-image group-hover:zoom"></div><div class="v-stack text-wrapper text-start gap-1"><p class="text-body text-xs">Rituel drainant</p> 3426 3427<p class="text-body text-sm">Détoxifiez votre organisme !</p></div></div></a> 3428 3429 <a href="/collections/the-infusion-sante" class="menu-promo__item group"><div class="v-stack content-wrapper justify-items-start gap-3"><div class="overflow-hidden image-container"><img lazy-src="//www.kusmitea.com/cdn/shop/files/lot.png?v=1769079671&width=985" alt="Gamme rituel" lazy-srcset="//www.kusmitea.com/cdn/shop/files/lot.png?v=1769079671&width=220 220w, //www.kusmitea.com/cdn/shop/files/lot.png?v=1769079671&width=440 440w, //www.kusmitea.com/cdn/shop/files/lot.png?v=1769079671&width=660 660w" width="985" height="857" loading="lazy" sizes="220px" class="zoom-image group-hover:zoom"></div><div class="v-stack text-wrapper text-start gap-1"><p class="text-body text-xs">Gamme rituel</p> 3430 3431<p class="text-body text-sm">Agissez pour votre bien-être !</p></div></div></a> 3432 3433 <a href="/products/rituel-energie" class="menu-promo__item group"><div class="v-stack content-wrapper justify-items-start gap-3"><div class="overflow-hidden image-container"><img lazy-src="//www.kusmitea.com/cdn/shop/files/MENU_rituel_energie_ete_2026.webp?v=1784877611&width=610" alt="Rituel énergie" lazy-srcset="//www.kusmitea.com/cdn/shop/files/MENU_rituel_energie_ete_2026.webp?v=1784877611&width=220 220w, //www.kusmitea.com/cdn/shop/files/MENU_rituel_energie_ete_2026.webp?v=1784877611&width=440 440w" width="610" height="767" loading="lazy" sizes="220px" class="zoom-image group-hover:zoom"></div><div class="v-stack text-wrapper text-start gap-1"><p class="text-body text-xs">Rituel énergie</p> 3434 3435<p class="text-body text-sm">Rechargez vos batteries !</p></div></div></a> 3436
3437</scroll-carousel> 3438 3439 <carousel-next-button class="floating-controls__control floating-controls__control--offset" aria-controls="promo-block-list-mega_menu_iQqGYYdrawer-carousel"> 3440 <button class="circle-button circle-button--xl"> 3441 <span class="sr-only">Suivant</span><svg aria-hidden="true" focusable="false" width="14" class="icon icon-big-arrow-right icon--direction-aware" part="icon" viewBox="0 0 36 36"> 3442 <path fill="none" stroke="currentColor" stroke-width="2" d="M1 18h32M16.5 1.5 33 18 16.5 34.5"/> 3443 </svg></button> 3444 </carousel-next-button> 3445 </div></div> 3446 </div> 3447 </header-menu-drawer-panel><header-menu-drawer-panel id="menu-drawer-panel-4" class="menu-drawer__panel color-scheme color-scheme--scheme-1"><div class="menu-drawer__breadcrumb"> 3448 <button type="button" class="menu-drawer__breadcrumb-back" data-panel-toggle aria-controls="menu-drawer-panel-main"><svg aria-hidden="true" focusable="false" width="9" class="icon icon-chevron-right icon--direction-aware" part="icon" viewBox="0 0 9 10"> 3449 <path fill="none" stroke="currentColor" stroke-width="1.5" d="m2.5 9 4-4-4-4"/> 3450 </svg><span class="sr-only">Retour</span> 3451 <span class="text-body">Thés & Infusions</span> 3452 </button><a href="/collections/thes-infusions" class="menu-drawer__view-all">Voir tout</a></div> 3453 3454 <div class="menu-drawer__panel-body"> 3455 <div class="v-stack gap-8"><div class="v-stack gap-8"><div class="v-stack justify-items-start gap-4 level-2--link"><div class="menu-drawer__group-heading"> 3456 <a href="/" class="subheading text-subdued link-reversed">Notre sélection</a></div><ul class="v-stack gap-2.5 unstyled-list level-2"><li><a href="/collections/nouveautes" class="link-reversed">Nouveautés</a> 3457 </li><li><a href="/collections/best-sellers" class="link-reversed">Best-sellers</a> 3458 </li><li><a href="/collections/thes-detox-bien-etre" class="link-reversed">Thés détox & bien-être</a> 3459 </li><li><a href="/collections/thes-earl-grey" class="link-reversed">Thés Earl Grey</a> 3460 </li></ul></div><div class="v-stack justify-items-start gap-4 level-2--link"><div class="menu-drawer__group-heading"> 3461 <a href="/collections/tous-les-thes" class="subheading text-subdued link-reversed">Thés</a><a href="/collections/tous-les-thes" class="menu-drawer__view-all">Voir tout</a></div><ul class="v-stack gap-2.5 unstyled-list level-2"><li><a href="/collections/the-noir" class="link-reversed">Thé noir</a> 3462 </li><li><a href="/collections/the-vert" class="link-reversed">Thé vert</a> 3463 </li><li><a href="/collections/the-blanc" class="link-reversed">Thé blanc</a> 3464 </li><li><a href="/collections/mate" class="link-reversed">Maté</a> 3465 </li><li><a href="/collections/matcha" class="link-reversed">Matcha & Ube</a> 3466 </li><li><a href="/collections/the-infusion-sante" class="link-reversed">Thé & infusion santé</a> 3467 </li></ul></div><div class="v-stack justify-items-start gap-4 level-2--link"><div class="menu-drawer__group-heading"> 3468 <a href="/collections/infusion" class="subheading text-subdued link-reversed">Infusions</a><a href="/collections/infusion" class="menu-drawer__view-all">Voir tout</a></div><ul class="v-stack gap-2.5 unstyled-list level-2"><li><a href="/collections/infusion" class="link-reversed">Infusion & Tisane</a> 3469 </li><li><a href="/collections/rooibos" class="link-reversed">Rooibos</a> 3470 </li><li><a href="/collections/eau-de-fruit" class="link-reversed">Eau de fruit</a> 3471 </li></ul></div><div class="v-stack justify-items-start gap-4 level-2--link"><div class="menu-drawer__group-heading"> 3472 <a href="/" class="subheading text-subdued link-reversed">Par format</a></div><ul class="v-stack gap-2.5 unstyled-list level-2"><li><a href="/collections/boites" class="link-reversed">Boites</a> 3473 </li><li><a href="/collections/sachets-de-the" class="link-reversed">Sachets de thé</a> 3474 </li><li><a href="/collections/the-en-vrac" class="link-reversed">Thé en vrac</a> 3475 </li><li><a href="/collections/coffrets" class="link-reversed">Coffrets</a> 3476 </li><li><a href="/collections/boites-miniatures" class="link-reversed">Boites miniatures</a> 3477 </li></ul></div></div><style> 3478 #promo-block-list-mega_menu_RDBAkgdrawer { 3479 --menu-promo-block-column-gap: 12px; 3480 --menu-promo-blocks-count: 2; 3481 } 3482 </style> 3483 3484 <div id="promo-block-list-mega_menu_RDBAkgdrawer" class="menu-promo menu-promo--with-spacing floating-control
3484s-container"> 3485 <carousel-prev-button class="floating-controls__control floating-controls__control--offset" aria-controls="promo-block-list-mega_menu_RDBAkgdrawer-carousel"> 3486 <button disabled class="circle-button circle-button--xl"> 3487 <span class="sr-only">Précédent</span><svg aria-hidden="true" focusable="false" width="14" class="icon icon-big-arrow-left icon--direction-aware" part="icon" viewBox="0 0 36 36"> 3488 <path fill="none" stroke="currentColor" stroke-width="2" d="M35 18H3M19.5 34.5 3 18 19.5 1.5"/> 3489 </svg></button> 3490 </carousel-prev-button> 3491 3492 <scroll-carousel id="promo-block-list-mega_menu_RDBAkgdrawer-carousel" class="menu-promo__carousel scroll-area"> 3493 3494 <a href="/collections/matcha" class="menu-promo__item group"><div class="v-stack content-wrapper justify-items-start gap-4"><div class="overflow-hidden image-container"><img lazy-src="//www.kusmitea.com/cdn/shop/files/HP_offre_desktop_matcha_premium_2.webp?v=1782894477&width=1537" alt="Nouveau :" lazy-srcset="//www.kusmitea.com/cdn/shop/files/HP_offre_desktop_matcha_premium_2.webp?v=1782894477&width=220 220w, //www.kusmitea.com/cdn/shop/files/HP_offre_desktop_matcha_premium_2.webp?v=1782894477&width=440 440w, //www.kusmitea.com/cdn/shop/files/HP_offre_desktop_matcha_premium_2.webp?v=1782894477&width=660 660w" width="1537" height="1556" loading="lazy" sizes="220px" class="zoom-image group-hover:zoom"></div><div class="v-stack text-wrapper text-start gap-2"><p class="text-body text-xs">Nouveau :</p> 3495 3496<p class="text-body text-sm">Découvrez notre gamme de Matcha & Ube</p></div></div></a> 3497 3498 <a href="/products/blue-moon" class="menu-promo__item group"><div class="v-stack content-wrapper justify-items-start gap-4"><div class="overflow-hidden image-container"><img lazy-src="//www.kusmitea.com/cdn/shop/files/BLUE_MOON_26_CAROLINE_RECEVEUR_MOON150BIO_INSTIT_1.webp?v=1788874331&width=1521" alt="Nouveau : Blue Moon" lazy-srcset="//www.kusmitea.com/cdn/shop/files/BLUE_MOON_26_CAROLINE_RECEVEUR_MOON150BIO_INSTIT_1.webp?v=1788874331&width=220 220w, //www.kusmitea.com/cdn/shop/files/BLUE_MOON_26_CAROLINE_RECEVEUR_MOON150BIO_INSTIT_1.webp?v=1788874331&width=440 440w, //www.kusmitea.com/cdn/shop/files/BLUE_MOON_26_CAROLINE_RECEVEUR_MOON150BIO_INSTIT_1.webp?v=1788874331&width=660 660w" width="1521" height="1521" loading="lazy" sizes="220px" class="zoom-image group-hover:zoom"></div><div class="v-stack text-wrapper text-start gap-2"><p class="text-body text-xs">Nouveau : Blue Moon</p> 3499 3500<p class="text-body text-sm">L'infusion qui invite à ralentir</p></div></div></a> 3501 3502 3503 3504</scroll-carousel> 3505 3506 <carousel-next-button class="floating-controls__control floating-controls__control--offset" aria-controls="promo-block-list-mega_menu_RDBAkgdrawer-carousel"> 3507 <button class="circle-button circle-button--xl"> 3508 <span class="sr-only">Suivant</span><svg aria-hidden="true" focusable="false" width="14" class="icon icon-big-arrow-right icon--direction-aware" part="icon" viewBox="0 0 36 36"> 3509 <path fill="none" stroke="currentColor" stroke-width="2" d="M1 18h32M16.5 1.5 33 18 16.5 34.5"/> 3510 </svg></button> 3511 </carousel-next-button> 3512 </div></div> 3513 </div> 3514 </header-menu-drawer-panel><header-menu-drawer-panel id="menu-drawer-panel-5" class="menu-drawer__panel color-scheme color-scheme--scheme-1"><div class="menu-drawer__breadcrumb"> 3515 <button type="button" class="menu-drawer__breadcrumb-back" data-panel-toggle aria-controls="menu-drawer-panel-main"><svg aria-hidden="true" focusable="false" width="9" class="icon icon-chevron-right icon--direction-aware" part="icon" viewBox="0 0 9 10"> 3516 <path fill="none" stroke="currentColor" stroke-width="1.5" d="m2.5 9 4-4-4-4"/> 3517 </svg><span class="sr-only">Retour</span> 3518 <span class="text-body">Coffrets & Cadeaux</span> 3519 </button><a href="/collections/coffrets-cadeaux" class="menu-drawer__view-all">Voir tout</a></div> 3520 3521 <div class="menu-drawer__panel-body"> 3522 <div class="v-stack gap-8"><div class="v-stack gap-8"><div class="v-stack justify-items-start gap-4 level-2--link"><div class="menu-drawer__group-heading"> 3523 <a href="/" class="subheading text-subdued link-reversed">Coffrets & cadeaux</a></div><ul class="v-stack gap-2.5 unstyled-list level-2"><li><a href="/collections/coffrets-de-thes-en-sachets" class="link-reversed">Coffrets de thés en sachets</a> 3524 </li><li><a href="/collections/coffrets-de-thes-en-boites" class="link-reversed">Coffrets de thés en boîtes</a> 3525 </li><li><a href="/collections/accessoires-a-offrir" class="link-reversed">Accessoires à offrir</a> 3526 </li><li><a href="/collections/selection-alain-ducasse" class="link-reversed">Sélection Alain Ducasse</a> 3527 </li><li><a href="/collections/la-selection-de-thes-de-lelysee" class="link-reversed">Sélection thés de l'Ãlysée</a> 3528 </li></ul></div><div class="v-stack justify-items-start gap-4 level-2--link"><div class="menu-drawer__group-heading"> 3529 <a href="/" class="subheading text-subdued link-reversed">Types de thé</a></div><ul class="v-stack gap-2.5 unstyled-list level-2"><li><a href="/collections/coffrets-infusions-et-tisanes" class="link-reversed">Infusions & tisanes</a> 3530 </li><li><a href="/collections/coffrets-thes-noirs" class="link-reversed">Thé noir</a> 3531 </li><li><a href="/collections/coffrets-thes-verts" class="link-reversed">Thé vert</a> 3532 </li><li><a href="/collections/the-dexception" class="link-reversed">Thé d'exception</a> 3533 </li></ul></div><div class="v-stack justify-items-start gap-4 level-2--link"><div class="menu-drawer__group-heading"> 3534 <a href="/" class="subheading text-subdued link-reversed">Prix</a></div><ul class="v-stack gap-2.5 unstyled-list level-2"><li><a href="/collections/coffrets-cadeaux-moins-de-15" class="link-reversed">Moins de 15â¬</a> 3535 </li><li><a href="/collections/coffrets-cadeaux-de-15-a-30" class="link-reversed">De 15⬠à 30â¬</a> 3536 </li><li><a href="/collections/coffrets-cadeaux-de-30-a-60" class="link-reversed">De 30⬠à 60â¬</a> 3537 </li><li><a href="/collections/coffrets-cadeaux-plus-de-60" class="link-reversed">Plus de 60â¬</a> 3538 </li></ul></div><div class="v-stack justify-items-start gap-4 level-2--link"><div class="menu-drawer__group-heading"> 3539 <a href="/" class="subheading text-subdued link-reversed">Carte cadeaux</a></div><ul class="v-stack gap-2.5 unstyled-list level-2"><li><a href="/products/carte-cadeau" class="link-reversed">Carte cadeaux</a> 3540 </li></ul></div></div><style> 3541 #promo-block-list-mega_menu_DJByggdrawer { 3542 --menu-promo-block-column-gap: 12px; 3543 --menu-promo-blocks-count: 2; 3544 } 3545 </style> 3546 3547 <div id="promo-block-list-mega_menu_DJByggdrawer" class="menu-promo menu-promo--with-spacing floating-control
3547s-container"> 3548 <carousel-prev-button class="floating-controls__control floating-controls__control--offset" aria-controls="promo-block-list-mega_menu_DJByggdrawer-carousel"> 3549 <button disabled class="circle-button circle-button--xl"> 3550 <span class="sr-only">Précédent</span><svg aria-hidden="true" focusable="false" width="14" class="icon icon-big-arrow-left icon--direction-aware" part="icon" viewBox="0 0 36 36"> 3551 <path fill="none" stroke="currentColor" stroke-width="2" d="M35 18H3M19.5 34.5 3 18 19.5 1.5"/> 3552 </svg></button> 3553 </carousel-prev-button> 3554 3555 <scroll-carousel id="promo-block-list-mega_menu_DJByggdrawer-carousel" class="menu-promo__carousel scroll-area"> 3556 3557 <a href="/collections/coffrets-de-thes-en-boites" class="menu-promo__item group"><div class="v-stack content-wrapper justify-items-start gap-3"><div class="overflow-hidden image-container"><img lazy-src="//www.kusmitea.com/cdn/shop/files/Menu_coffret525.webp?v=1776237462&width=346" alt="Nouveau :" lazy-srcset="//www.kusmitea.com/cdn/shop/files/Menu_coffret525.webp?v=1776237462&width=220 220w" width="346" height="388" loading="lazy" sizes="220px" class="zoom-image group-hover:zoom"></div><div class="v-stack text-wrapper text-start gap-1"><p class="text-body text-xs">Nouveau :</p> 3558 3559<p class="text-body text-sm">Coffrets miniatures</p></div></div></a> 3560 3561 <a href="/products/calendrier-de-lavent" class="menu-promo__item group"><div class="v-stack content-wrapper justify-items-start gap-3"><div class="overflow-hidden image-container"><img lazy-src="//www.kusmitea.com/cdn/shop/files/MENU_xmas_calendrier_2026_719153c7-b427-4edf-bb2b-7277eb7c906f.webp?v=1789739945&width=610" alt="Calendrier de l'Avent" lazy-srcset="//www.kusmitea.com/cdn/shop/files/MENU_xmas_calendrier_2026_719153c7-b427-4edf-bb2b-7277eb7c906f.webp?v=1789739945&width=220 220w, //www.kusmitea.com/cdn/shop/files/MENU_xmas_calendrier_2026_719153c7-b427-4edf-bb2b-7277eb7c906f.webp?v=1789739945&width=440 440w" width="610" height="767" loading="lazy" sizes="220px" class="zoom-image group-hover:zoom"></div><div class="v-stack text-wrapper text-start gap-1"><p class="text-body text-xs">Calendrier de l'Avent</p> 3562 3563<p class="text-body text-sm">24 surprises mystérieuses</p></div></div></a> 3564 3565 3566 3567</scroll-carousel> 3568 3569 <carousel-next-button class="floating-controls__control floating-controls__control--offset" aria-controls="promo-block-list-mega_menu_DJByggdrawer-carousel"> 3570 <button class="circle-button circle-button--xl"> 3571 <span class="sr-only">Suivant</span><svg aria-hidden="true" focusable="false" width="14" class="icon icon-big-arrow-right icon--direction-aware" part="icon" viewBox="0 0 36 36"> 3572 <path fill="none" stroke="currentColor" stroke-width="2" d="M1 18h32M16.5 1.5 33 18 16.5 34.5"/> 3573 </svg></button> 3574 </carousel-next-button> 3575 </div></div> 3576 </div> 3577 </header-menu-drawer-panel><header-menu-drawer-panel id="menu-drawer-panel-6" class="menu-drawer__panel color-scheme color-scheme--scheme-1"><div class="menu-drawer__breadcrumb"> 3578 <button type="button" class="menu-drawer__breadcrumb-back" data-panel-toggle aria-controls="menu-drawer-panel-main"><svg aria-hidden="true" focusable="false" width="9" class="icon icon-chevron-right icon--direction-aware" part="icon" viewBox="0 0 9 10"> 3579 <path fill="none" stroke="currentColor" stroke-width="1.5" d="m2.5 9 4-4-4-4"/> 3580 </svg><span class="sr-only">Retour</span> 3581 <span class="text-body">Accessoires</span> 3582 </button><a href="/collections/accessoires" class="menu-drawer__view-all">Voir tout</a></div> 3583 3584 <div class="menu-drawer__panel-body"> 3585 <div class="v-stack gap-8"><div class="v-stack gap-8"><div class="v-stack justify-items-start gap-4 level-2--link"><div class="menu-drawer__group-heading"> 3586 <a href="/" class="subheading text-subdued link-reversed">Déguster le thé</a></div><ul class="v-stack gap-2.5 unstyled-list level-2"><li><a href="/collections/theieres" class="link-reversed">Théières</a> 3587 </li><li><a href="/collections/tasses-et-mugs" class="link-reversed">
3587Tasses et Mugs</a> 3588 </li><li><a href="/collections/accessoires-isothermes" class="link-reversed">Accessoires isothermes</a> 3589 </li><li><a href="/collections/carafes-a-the-glace" class="link-reversed">Carafes à thé glacé</a> 3590 </li></ul></div><div class="v-stack justify-items-start gap-4 level-2--link"><div class="menu-drawer__group-heading"> 3591 <a href="/" class="subheading text-subdued link-reversed">Préparer le thé</a></div><ul class="v-stack gap-2.5 unstyled-list level-2"><li><a href="/collections/filtres-a-the-et-infuseurs" class="link-reversed">Filtres à thé et Infuseurs</a> 3592 </li><li><a href="/collections/machines-a-the" class="link-reversed">Machines à thé</a> 3593 </li><li><a href="/collections/bouilloires" class="link-reversed">Bouilloires</a> 3594 </li></ul></div><div class="v-stack justify-items-start gap-4 level-2--link"><div class="menu-drawer__group-heading"> 3595 <a href="/" class="subheading text-subdued link-reversed">Conserver le thé</a></div><ul class="v-stack gap-2.5 unstyled-list level-2"><li><a href="/collections/boites-a-the" class="link-reversed">Boîtes à thé</a> 3596 </li></ul></div><div class="v-stack justify-items-start gap-4 level-2--link"><div class="menu-drawer__group-heading"> 3597 <a href="/" class="subheading text-subdued link-reversed">Prix</a></div><ul class="v-stack gap-2.5 unstyled-list level-2"><li><a href="/collections/accessoires-moins-de-30" class="link-reversed">Moins de 30â¬</a> 3598 </li><li><a href="/collections/accessoires-de-30-a-60" class="link-reversed">De 30⬠à 60â¬</a> 3599 </li><li><a href="/collections/accessoires-plus-de-60" class="link-reversed">Plus de 60â¬</a> 3600 </li></ul></div></div><style> 3601 #promo-block-list-mega_menu_mdqRJCdrawer { 3602 --menu-promo-block-column-gap: 12px; 3603 --menu-promo-blocks-count: 2; 3604 } 3605 </style> 3606 3607 <div id="promo-block-list-mega_menu_mdqRJCdrawer" class="menu-promo menu-promo--with-spacing floating-controls-container"> 3608 <carousel-prev-button class="floating-controls__control floating-controls__control--offset" aria-controls="promo-block-list-mega_menu_mdqRJCdrawer-carousel"> 3609 <button disabled class="circle-button circle-button--xl"> 3610 <span class="sr-only">Précédent</span><svg aria-hidden="true" focusable="false" width="14" class="icon icon-big-arrow-left icon--direction-aware" part="icon" viewBox="0 0 36 36"> 3611 <path fill="none" stroke="currentColor" stroke-width="2" d="M35 18H3M19.5 34.5 3 18 19.5 1.5"/> 3612 </svg></button> 3613 </carousel-prev-button> 3614 3615 <scroll-carousel id="promo-block-list-mega_menu_mdqRJCdrawer-carousel" class="menu-promo__carousel scroll-area"> 3616 3617 <a href="/collections/matcha" class="menu-promo__item group"><div class="v-stack content-wrapper justify-items-start gap-3"><div class="overflow-hidden image-container"><img lazy-src="//www.kusmitea.com/cdn/shop/files/ACCESS_24_MATCHABOLTOTEMNOI_UNI_01_1.png?v=1773417313&width=3277" alt="Gamme Matcha" lazy-srcset="//www.kusmitea.com/cdn/shop/files/ACCESS_24_MATCHABOLTOTEMNOI_UNI_01_1.png?v=1773417313&width=220 220w, //www.kusmitea.com/cdn/shop/files/ACCESS_24_MATCHABOLTOTEMNOI_UNI_01_1.png?v=1773417313&width=440 440w, //www.kusmitea.com/cdn/shop/files/ACCESS_24_MATCHABOLTOTEMNOI_UNI_01_1.png?v=1773417313&width=660 660w" width="3277" height="4096" loading="lazy" sizes="220px" class="zoom-image group-hover:zoom"></div><div class="v-stack text-wrapper text-start gap-1"><p class="text-body text-xs">Gamme Matcha</p> 3618 3619<p class="text-body text-sm">Préparez votre matcha dans les règles de l'art</p></div></div></a> 3620 3621 <a href="/collections/accessoires-isothermes" class="menu-promo__item group"><div class="v-stack content-wrapper justify-items-start gap-3"><div class="overflow-hidden image-container"><img lazy-src="//www.kusmitea.com/cdn/shop/files/HP_offre_desk_kambukka_mai_26.webp?v=1778076191&width=1521" alt="Nouveauté :" lazy-srcset="//www.kusmitea.com/cdn/shop/files/HP_offre_desk_kambukka_mai_26.webp?v=1778076191&width=220 220w, //www.kusmitea.com/cdn/shop/files/HP_offre_desk_kambukka_mai_26.webp?v=1778076191&width=440 440w, //www.kusmitea.com/cdn/shop/files/HP_offre_desk_kambukka_mai_26.webp?v=1778076191&width=660 660w" width="1521" height="1521" loading="lazy" sizes="220px" class="zoom-image group-hover:zoom"></div><div class="v-stack text-wrapper text-start gap-1"><p class="text-body text-xs">Nouveauté :</p> 3622 3623<p class="text-body text-sm">Les nouveaux mugs Kambukka, le plaisir du thé à emporter</p></div></div></a> 3624 3625 3626
3627</scroll-carousel> 3628 3629 <carousel-next-button class="floating-controls__control floating-controls__control--offset" aria-controls="promo-block-list-mega_menu_mdqRJCdrawer-carousel"> 3630 <button class="circle-button circle-button--xl"> 3631 <span class="sr-only">Suivant</span><svg aria-hidden="true" focusable="false" width="14" class="icon icon-big-arrow-right icon--direction-aware" part="icon" viewBox="0 0 36 36"> 3632 <path fill="none" stroke="currentColor" stroke-width="2" d="M1 18h32M16.5 1.5 33 18 16.5 34.5"/> 3633 </svg></button> 3634 </carousel-next-button> 3635 </div></div> 3636 </div> 3637 </header-menu-drawer-panel><header-menu-drawer-panel id="menu-drawer-panel-7" class="menu-drawer__panel color-scheme color-scheme--scheme-1"><div class="menu-drawer__breadcrumb"> 3638 <button type="button" class="menu-drawer__breadcrumb-back" data-panel-toggle aria-controls="menu-drawer-panel-main"><svg aria-hidden="true" focusable="false" width="9" class="icon icon-chevron-right icon--direction-aware" part="icon" viewBox="0 0 9 10"> 3639 <path fill="none" stroke="currentColor" stroke-width="1.5" d="m2.5 9 4-4-4-4"/> 3640 </svg><span class="sr-only">Retour</span> 3641 <span class="text-body">La marque</span> 3642 </button></div> 3643 3644 <div class="menu-drawer__panel-body"> 3645 <div class="v-stack gap-8"><div class="v-stack gap-8"><div class="v-stack justify-items-start gap-4 level-2--link"><div class="menu-drawer__group-heading"> 3646 <a href="#" class="subheading text-subdued link-reversed">Kusmi Tea s'engage</a></div><ul class="v-stack gap-2.5 unstyled-list level-2"><li><a href="/pages/la-marque" class="link-reversed">Qui sommes-nous</a> 3647 </li><li><a href="/pages/notre-raison-d-etre" class="link-reversed">Notre raison d'être</a> 3648 </li><li><a href="/pages/nos-engagements" class="link-reversed">Nos engagements</a> 3649 </li><li><a href="/pages/kusmi-tea-est-labellisee-b-corp" class="link-reversed">B Corp</a> 3650 </li></ul></div><div class="v-stack justify-items-start gap-4 level-2--link"><div class="menu-drawer__group-heading"> 3651 <a href="#" class="subheading text-subdued link-reversed">Service client</a></div><ul class="v-stack gap-2.5 unstyled-list level-2"><li><a href="/pages/trouvez-votre-boutique" class="link-reversed">Nos boutiques</a> 3652 </li><li><a href="/pages/click-collect" class="link-reversed">Click & Collect</a> 3653 </li><li><a href="https://kusmitea-ssw4lt8dynr.gorgias.help/fr-FR" class="link-reversed">Aide et contact</a> 3654 </li><li><a href="https://www.linkedin.com/company/kusmi-tea" class="link-reversed">Nous rejoindre</a> 3655 </li><li><a href="/pages/client-professionnel" class="link-reversed">Clients professionnels</a> 3656 </li></ul></div></div><style> 3657 #promo-block-list-mega_menu_yrUEUndrawer { 3658 --menu-promo-block-column-gap: 12px; 3659 --menu-promo-blocks-count: 2; 3660 } 3661 </style> 3662 3663 <div id="promo-block-list-mega_menu_yrUEUndrawer" class="menu-promo menu-promo--with-spacing floating-controls-container"> 3664 <carousel-prev-button class="floating-controls__control floating-controls__control--offset" aria-controls="promo-block-list-mega_menu_yrUEUndrawer-carousel"> 3665 <button disabled class="circle-button circle-button--xl"> 3666 <span class="sr-only">Précédent</span><svg aria-hidden="true" focusable="false" width="14" class="icon icon-big-arrow-left icon--direction-aware" part="icon" viewBox="0 0 36 36"> 3667 <path fill="none" stroke="currentColor" stroke-width="2" d="M35 18H3M19.5 34.5 3 18 19.5 1.5"/> 3668 </svg></button> 3669 </carousel-prev-button> 3670 3671 <scroll-carousel id="promo-block-list-mega_menu_yrUEUndrawer-carousel" class="menu-promo__carousel scroll-area"> 3672 3673 <a href="/pages/kusmi-tea-est-labellisee-b-corp" class="menu-promo__item group"><div class="v-stack content-wrapper justify-items-start gap-4"><div class="overflow-hidden image-container"><img lazy-src="//www.kusmitea.com/cdn/shop/files/image_promo_3.webp?v=1761139930&width=1698" alt="" lazy-srcset="//www.kusmitea.com/cdn/shop/files/image_promo_3.webp?v=1761139930&width=220 220w, //www.kusmitea.com/cdn/shop/files/image_promo_3.webp?v=1761139930&width=440 440w, //www.kusmitea.com/cdn/shop/files/image_promo_3.webp?v=1761139930&width=660 660w" width="1698" height="1050" loading="lazy" sizes="220px" class="zoom-image group-hover:zoom"></div><div class="v-stack text-wrapper text-start gap-2"> 3674<p class="text-body text-sm">Kusmi Tea est labellisée B Corp !</p></div></div></a> 3675 3676 <a href="/pages/nos-engagements" class="menu-promo__item group"><div class="v-stack content-wrapper justify-items-start gap-4"><div class="overflow-hidden image-container"><img lazy-src="//www.kusmitea.com/cdn/shop/files/express_fedex_image.webp?v=1774524124&width=840" alt="" lazy-srcset="//www.kusmitea.com/cdn/shop/files/express_fedex_image.webp?v=1774524124&width=220 220w, //www.kusmitea.com/cdn/shop/files/express_fedex_image.webp?v=1774524124&width=440 440w, //www.kusmitea.com/cdn/shop/files/express_fedex_image.webp?v=1774524124&width=660 660w" width="840" height="680" loading="lazy" sizes="220px" class="zoom-image group-hover:zoom"></div><div class="v-stack text-wrapper text-start gap-2"> 3677<p class="text-body text-sm">Kusmi tea est bio</p></div></div></a> 3678 3679 3680
3681</scroll-carousel> 3682 3683 <carousel-next-button class="floating-controls__control floating-controls__control--offset" aria-controls="promo-block-list-mega_menu_yrUEUndrawer-carousel"> 3684 <button class="circle-button circle-button--xl"> 3685 <span class="sr-only">Suivant</span><svg aria-hidden="true" focusable="false" width="14" class="icon icon-big-arrow-right icon--direction-aware" part="icon" viewBox="0 0 36 36"> 3686 <path fill="none" stroke="currentColor" stroke-width="2" d="M1 18h32M16.5 1.5 33 18 16.5 34.5"/> 3687 </svg></button> 3688 </carousel-next-button> 3689 </div></div> 3690 </div> 3691 </header-menu-drawer-panel></header-menu-drawer> 3692</x-header> 3693</height-observer> 3694
3695<script> 3696 document.documentElement.style.setProperty( 3697 '--header-height', 3698 `${Math.round(document.getElementById('shopify-section-sections--26884129784151__header').clientHeight)}px` 3699 ); 3700</script>
3700 3701 3702 3703</header><section id="shopify-section-sections--26884129784151__17715738420f90a322" class="shopify-section shopify-section-group-header-group shopify-section--apps"><div class="color-scheme color-scheme--scheme-1"> 3704 <div class=" "><div id="shopify-block-AUGx1RlAxbVdlenp4R__orbe_geolocation_app_block_custom_button_B4rDet" class="shopify-block shopify-app-block orbe-custom-button-block"> 3705 3706<style data-shopify> 3707 .md-visuallyHidden { 3708 position: absolute !important; 3709 width: 0.1em !important; 3710 height: 0.1em !important; 3711 margin: 0 !important; 3712 padding: 0 !important; 3713 overflow: hidden !important; 3714 -webkit-clip-path: inset(50%) !important; 3715 clip-path: inset(50%) !important; 3716 border: 0 !important; 3717 white-space: nowrap !important; 3718 } 3719 3720 .orbe__custom-selector-AUGx1RlAxbVdlenp4R__orbe_geolocation_app_block_custom_button_B4rDet { 3721 margin-left: 0px !important; 3722 margin-right: 0px !important; 3723 } 3724 3725 button.orbe__span-AUGx1RlAxbVdlenp4R__orbe_geolocation_app_block_custom_button_B4rDet { 3726 color: #000000; 3727 } 3728 3729 3730 .orbe__disclosure-AUGx1RlAxbVdlenp4R__orbe_geolocation_app_block_custom_button_B4rDet { 3731 background-image: url('data:image/svg+xml,<svg width="20" height="20" viewBox="0 0 20 20" fill="%23000000" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M10 14.0002C9.74401 14.0002 9.48801 13.9023 9.29301 13.7073L4.29301 8.70725C3.90201 8.31625 3.90201 7.68425 4.29301 7.29325C4.68401 6.90225 5.31601 6.90225 5.70701 7.29325L10 11.5862L14.293 7.29325C14.684 6.90225 15.316 6.90225 15.707 7.29325C16.098 7.68425 16.098 8.31625 15.707 8.70725L10.707 13.7073C10.512 13.9023 10.256 14.0002 10 14.0002Z" fill="%23000000"/></svg>') !important; 3732 } 3733 3734 3735 3736 .md-orbe-country-selector { 3737 3738 height: 1.5rem; 3739 width: 2rem; 3740 3741 } 3742 3743 .md-orbe-country-selector__circle { 3744 3745 height: 1.5rem !important; 3746 width: 1.5rem !important; 3747 3748 } 3749 3750</style> 3751 3752 3753 <button type="button" class="md-orbe-custom-selector orbe__custom-selector-AUGx1RlAxbVdlenp4R__orbe_geolocation_app_block_custom_button_B4rDet orbe__span-AUGx1RlAxbVdlenp4R__orbe_geolocation_app_block_custom_button_B4rDet my-class another-class md-orbe-custom-selector__mobile-hidden " 3754 onclick="mdAppCustomButtonClick_AUGx1RlAxbVdlenp4R__orbe_geolocation_app_block_custom_button_B4rDet()"> 3755 <span class="md-visuallyHidden"> 3756 Geolocation Button: FR, EUR, ⬠3757 </span> 3758 <span class='md-orbe-country-selector-span orbe__span-AUGx1RlAxbVdlenp4R__orbe_geolocation_app_block_custom_button_B4rDet'>FR</span><div class='md-orbe-country-selector__disclosure orbe__disclosure-AUGx1RlAxbVdlenp4R__orbe_geolocation_app_block_custom_button_B4rDet' aria-hidden='true'> </div> 3759<span class='md-orbe-country-selector-span orbe__span-AUGx1RlAxbVdlenp4R__orbe_geolocation_app_block_custom_button_B4rDet'>EUR</span><span class='md-orbe-country-selector-span orbe__span-AUGx1RlAxbVdlenp4R__orbe_geolocation_app_block_custom_button_B4rDet'>â¬</span><div class='md-orbe-country-selector__disclosure orbe__disclosure-AUGx1RlAxbVdlenp4R__orbe_geolocation_app_block_custom_button_B4rDet' aria-hidden='true'> </div> 3760 </button>
3760<script> 3761 window.lastModalTriggerButton = null; 3762 function mdAppCustomButtonClick_AUGx1RlAxbVdlenp4R__orbe_geolocation_app_block_custom_button_B4rDet() { 3763 window.lastModalTriggerButton = document.activeElement;let _forceShowCloseButton = true; 3764 orbito.openModalWithoutRefresh(_forceShowCloseButton);} 3765 3766 setTimeout(() => { 3767 let orbeButton_position_AUGx1RlAxbVdlenp4R__orbe_geolocation_app_block_custom_button_B4rDet = document.querySelector('#shopify-orb-header'); 3768 let orbeButton_AUGx1RlAxbVdlenp4R__orbe_geolocation_app_block_custom_button_B4rDet = document.querySelector('.orbe__custom-selector-AUGx1RlAxbVdlenp4R__orbe_geolocation_app_block_custom_button_B4rDet'); 3769 if (orbeButton_position_AUGx1RlAxbVdlenp4R__orbe_geolocation_app_block_custom_button_B4rDet != null && orbeButton_AUGx1RlAxbVdlenp4R__orbe_geolocation_app_block_custom_button_B4rDet != null) { 3770 3771 orbeButton_position_AUGx1RlAxbVdlenp4R__orbe_geolocation_app_block_custom_button_B4rDet.appendChild(orbeButton_AUGx1RlAxbVdlenp4R__orbe_geolocation_app_block_custom_button_B4rDet); 3772 3773 } 3774 }, 100); 3775 3776</script>
3776 3777 3778 3779</div><div id="shopify-block-AdDl6Zkp0UkNpbEc4M__orbe_geolocation_app_block_custom_button_KaHLM7" class="shopify-block shopify-app-block orbe-custom-button-block"> 3780 3781<style data-shopify> 3782 .md-visuallyHidden { 3783 position: absolute !important; 3784 width: 0.1em !important; 3785 height: 0.1em !important; 3786 margin: 0 !important; 3787 padding: 0 !important; 3788 overflow: hidden !important; 3789 -webkit-clip-path: inset(50%) !important; 3790 clip-path: inset(50%) !important; 3791 border: 0 !important; 3792 white-space: nowrap !important; 3793 } 3794 3795 .orbe__custom-selector-AdDl6Zkp0UkNpbEc4M__orbe_geolocation_app_block_custom_button_KaHLM7 { 3796 margin-left: 0px !important; 3797 margin-right: 0px !important; 3798 } 3799 3800 button.orbe__span-AdDl6Zkp0UkNpbEc4M__orbe_geolocation_app_block_custom_button_KaHLM7 { 3801 color: #000000; 3802 } 3803 3804 3805 .orbe__disclosure-AdDl6Zkp0UkNpbEc4M__orbe_geolocation_app_block_custom_button_KaHLM7 { 3806 background-image: url('data:image/svg+xml,<svg width="20" height="20" viewBox="0 0 20 20" fill="%23000000" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M10 14.0002C9.74401 14.0002 9.48801 13.9023 9.29301 13.7073L4.29301 8.70725C3.90201 8.31625 3.90201 7.68425 4.29301 7.29325C4.68401 6.90225 5.31601 6.90225 5.70701 7.29325L10 11.5862L14.293 7.29325C14.684 6.90225 15.316 6.90225 15.707 7.29325C16.098 7.68425 16.098 8.31625 15.707 8.70725L10.707 13.7073C10.512 13.9023 10.256 14.0002 10 14.0002Z" fill="%23000000"/></svg>') !important; 3807 } 3808 3809 3810 3811 .md-orbe-country-selector { 3812 3813 height: 1.5rem; 3814 width: 2rem; 3815 3816 } 3817 3818 .md-orbe-country-selector__circle { 3819 3820 height: 1.5rem !important; 3821 width: 1.5rem !important; 3822 3823 } 3824 3825</style> 3826 3827 3828 <button type="button" class="md-orbe-custom-selector orbe__custom-selector-AdDl6Zkp0UkNpbEc4M__orbe_geolocation_app_block_custom_button_KaHLM7 orbe__span-AdDl6Zk
3828p0UkNpbEc4M__orbe_geolocation_app_block_custom_button_KaHLM7 my-class another-class md-orbe-custom-selector__desktop-hidden" 3829 onclick="mdAppCustomButtonClick_AdDl6Zkp0UkNpbEc4M__orbe_geolocation_app_block_custom_button_KaHLM7()"> 3830 <span class="md-visuallyHidden"> 3831 Geolocation Button: FR, EUR, ⬠3832 </span> 3833 <span class='md-orbe-country-selector-span orbe__span-AdDl6Zkp0UkNpbEc4M__orbe_geolocation_app_block_custom_button_KaHLM7'>FR</span><div class='md-orbe-country-selector__disclosure orbe__disclosure-AdDl6Zkp0UkNpbEc4M__orbe_geolocation_app_block_custom_button_KaHLM7' aria-hidden='true'> </div> 3834<span class='md-orbe-country-selector-span orbe__span-AdDl6Zkp0UkNpbEc4M__orbe_geolocation_app_block_custom_button_KaHLM7'>EUR</span><span class='md-orbe-country-selector-span orbe__span-AdDl6Zkp0UkNpbEc4M__orbe_geolocation_app_block_custom_button_KaHLM7'>â¬</span><div class='md-orbe-country-selector__disclosure orbe__disclosure-AdDl6Zkp0UkNpbEc4M__orbe_geolocation_app_block_custom_button_KaHLM7' aria-hidden='true'> </div> 3835 </button>
3835<script> 3836 window.lastModalTriggerButton = null; 3837 function mdAppCustomButtonClick_AdDl6Zkp0UkNpbEc4M__orbe_geolocation_app_block_custom_button_KaHLM7() { 3838 window.lastModalTriggerButton = document.activeElement;let _forceShowCloseButton = true; 3839 orbito.openModalWithoutRefresh(_forceShowCloseButton);} 3840 3841 setTimeout(() => { 3842 let orbeButton_position_AdDl6Zkp0UkNpbEc4M__orbe_geolocation_app_block_custom_button_KaHLM7 = document.querySelector('#shopify-orb-header-mobile'); 3843 let orbeButton_AdDl6Zkp0UkNpbEc4M__orbe_geolocation_app_block_custom_button_KaHLM7 = document.querySelector('.orbe__custom-selector-AdDl6Zkp0UkNpbEc4M__orbe_geolocation_app_block_custom_button_KaHLM7'); 3844 if (orbeButton_position_AdDl6Zkp0UkNpbEc4M__orbe_geolocation_app_block_custom_button_KaHLM7 != null && orbeButton_AdDl6Zkp0UkNpbEc4M__orbe_geolocation_app_block_custom_button_KaHLM7 != null) { 3845 3846 orbeButton_position_AdDl6Zkp0UkNpbEc4M__orbe_geolocation_app_block_custom_button_KaHLM7.appendChild(orbeButton_AdDl6Zkp0UkNpbEc4M__orbe_geolocation_app_block_custom_button_KaHLM7); 3847 3848 } 3849 }, 100); 3850 3851</script>
3851 3852 3853 3854</div></div> 3855 </div> 3856</section> 3857<!-- END sections: header-group --><!-- BEGIN sections: overlay-group --> 3858<section id="shopify-section-sections--26884129816919__cart-drawer" class="shopify-section shopify-section-group-overlay-group shopify-section--cart-drawer"><style> 3859 /* Toujours afficher les boutons de navigation pour Nosto dans le sidecart */ 3860 #shopify-section-sections--26884129816919__cart-drawer .cart-drawer__cross-sell .carousel-prev-button, 3861 #shopify-section-sections--26884129816919__cart-drawer .cart-drawer__cross-sell .carousel-next-button { 3862 display: block !important; 3863 } 3864 </style> 3865 3866 <cart-drawer 3867 id="cart-drawer" 3868 class="drawer drawer--cart color-scheme color-scheme--scheme-1" 3869 aria-label="Mon panier" 3870 handle-editor-events 3871 ><div slot="header"> 3872 <div class="h4 text-center uppercase"> 3873 Mon panier 3874 3875 </div></div><div class="empty-state"> 3876 <div class="prose prose-justify-center"> 3877 <p class="h5">Votre panier est vide</p>�<a class="button" href="/collections/boites" ><button-content class="button__content" rotated-text="Explorer nos produits"> 3878 <span class="button__text-wrapper">Explorer nos produits<span class="button__arrow"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> 3879<path d="M4 12.6667L12.6666 4M12.6666 4V12.32M12.6666 4H4.34667" stroke="#FBFBF6" stroke-linecap="round" stroke-linejoin="round"/> 3880</svg> 3881</span></span></button-content></a></div> 3882 </div> 3883</cart-drawer>
3883<script> 3884 // Gift & Samples Drawer Management 3885 (function() { 3886 // Propriétés cachées pour le code (valeurs fixes en anglais) 3887 const GIFT_HIDDEN_PROPERTY = '_gift'; 3888 const SAMPLE_HIDDEN_PROPERTY = '_sample'; 3889 const CADDY_HIDDEN_PROPERTY = '_caddy'; 3890 const HIDDEN_PROPERTY_VALUE = 'true'; 3891 3892 // Propriété affichée (traduite) 3893 const DISPLAY_TYPE_PROPERTY = '_Type'; 3894 3895 // Sets de variant IDs autorisés pour chaque type d'offre (générés côté Liquid) 3896 const allowedVariants = { 3897 sample: new Set([52937205121367,52937205678423,52937205252439,52937205088599,52937205612887,52925442490711,]), 3898 gift: new Set([]), 3899 purchasable_gift: new Set([]), 3900 caddy: new Set([]) 3901 }; 3902 3903 // Configuration des montants minimums (en centimes) et quantités maximums 3904 const config = { 3905 enableSamples: true, 3906 samplesMinimum: 100.0, 3907 enableGift: false, 3908 enablePurchasableGift: false, 3909 giftMinimum: 5500.0, 3910 purchasableGiftMinimum: 5500.0, 3911 samplesMaxQuantity: 2, 3912 giftMaxQuantity: 1, 3913 purchasableGiftMaxQuantity: 1, 3914 caddyMaxQuantity: 1 3915 }; 3916 3917 // Calculer le total du panier (sans les items offerts) 3918 function calculateCartTotal() { 3919 return fetch('/cart.js') 3920 .then(response => response.json()) 3921 .then(cart => { 3922 let total = 0; 3923 cart.items.forEach(item => { 3924 // Exclure les items offerts du calcul (vérifier les propriétés cachées) 3925 if (item.properties && (item.properties[GIFT_HIDDEN_PROPERTY] || item.properties[SAMPLE_HIDDEN_PROPERTY] || item.properties[CADDY_HIDDEN_PROPERTY])) { 3926 return; 3927 } 3928 if (item.requires_shipping) { 3929 total += item.final_line_price; 3930 } 3931 }); 3932 3933 // Soustraire les réductions 3934 if (cart.cart_level_discount_applications) { 3935 cart.cart_level_discount_applications.forEach(discount => { 3936 total -= discount.total_allocated_amount; 3937 }); 3938 } 3939 3940 return { total, cart }; 3941 }); 3942 } 3943 3944 // Supprimer un item du panier par sa key 3945 function removeFromCart(itemKey) { 3946 return fetch('/cart/update.js', { 3947 method: 'POST', 3948 headers: { 3949 'Content-Type': 'application/json', 3950 'X-Requested-With': 'XMLHttpRequest' 3951 }, 3952 body: JSON.stringify({ 3953 updates: { [itemKey]: 0 } 3954 }) 3955 }).then(response => response.json()); 3956 } 3957 3958 // Trouver la propriété cachée correspondant à un type 3959 function getHiddenProperty(giftType) { 3960 if (giftType === 'gift' || giftType === 'purchasable_gift') return GIFT_HIDDEN_PROPERTY; 3961 if (giftType === 'caddy') return CADDY_HIDDEN_PROPERTY; 3962 return SAMPLE_HIDDEN_PROPERTY; 3963 } 3964 3965 // Trouver un item offert dans le panier 3966 function findFreeItem(cart, giftType) { 3967 const propertyToCheck = getHiddenProperty(giftType); 3968 return cart.items.find(item => { 3969 if (!item.properties || !item.properties[propertyToCheck]) return false; 3970 if (giftType === 'gift' || giftType === 'purchasable_gift') { 3971 return item.properties['_gift_source'] === giftType; 3972 } 3973 return true; 3974 }); 3975 } 3976 3977 // Trouver tous les items offerts d'un type dans le panier 3978 function findAllFreeItems(cart, giftType) { 3979 const propertyToCheck = getHiddenProperty(giftType); 3980 return cart.items.filter(item => { 3981 if (!item.properties || !item.properties[propertyToCheck]) return false; 3982 if (giftType === 'gift' || giftType === 'purchasable_gift') { 3983 return item.properties['_gift_source'] === giftType; 3984 } 3985 return true; 3986 } 3987 ); 3988 } 3989 3990 // Vérifier si un item du panier est éligible à la boîte à thé offerte 3991 function checkCaddyEligibility(cart) { 3992 return cart.items.some(item => { 3993 // Exclure les items offerts 3994 if (item.properties && (item.properties[GIFT_HIDDEN_PROPERTY] || item.properties[SAMPLE_HIDDEN_PROPERTY] || item.properties[CADDY_HIDDEN_PROPERTY])) { 3995 return false;
3996 } 3997 const type = item.product_type; 3998 if (type !== 'Thé' && type !== 'TEA') return false; 3999 const weight = Math.round(item.grams); 4000 if (weight >= 500) return true; 4001 if (weight >= 300) return true; 4002 if (weight >= 100 && item.quantity >= 3) return true; 4003 return false; 4004 }); 4005 } 4006 4007 // Supprimer les items offerts si la feature est désactivée, le montant n'est plus atteint, 4008 // le nombre dépasse le maximum, ou le variant n'est plus dans la source autorisée 4009 function checkAndRemoveFreeItems() { 4010 return calculateCartTotal().then(({ total, cart }) => { 4011 const updates = []; 4012 4013 // Vérifier les échantillons 4014 const sampleItems = findAllFreeItems(cart, 'sample'); 4015 if (sampleItems.length > 0) { 4016 if (!config.enableSamples || total < config.samplesMinimum) { 4017 sampleItems.forEach(item => updates.push(removeFromCart(item.key))); 4018 } else if (sampleItems.length > config.samplesMaxQuantity) { 4019 sampleItems.slice(config.samplesMaxQuantity).forEach(item => updates.push(removeFromCart(item.key))); 4020 } else { 4021 sampleItems.forEach(item => { 4022 if (!allowedVariants.sample.has(item.variant_id)) { 4023 updates.push(removeFromCart(item.key)); 4024 } 4025 }); 4026 } 4027 } 4028 4029 // Vérifier les cadeaux offerts 4030 const giftItems = findAllFreeItems(cart, 'gift'); 4031 if (giftItems.length > 0) { 4032 if (!config.enableGift || total < config.giftMinimum) { 4033 giftItems.forEach(item => updates.push(removeFromCart(item.key))); 4034 } else if (giftItems.length > config.giftMaxQuantity) { 4035 giftItems.slice(config.giftMaxQuantity).forEach(item => updates.push(removeFromCart(item.key))); 4036 } else { 4037 giftItems.forEach(item => { 4038 if (!allowedVariants.gift.has(item.variant_id)) { 4039 updates.push(removeFromCart(item.key)); 4040 } 4041 }); 4042 } 4043 } 4044 4045 // Vérifier les cadeaux achetables offerts 4046 const purchasableGiftItems = findAllFreeItems(cart, 'purchasable_gift'); 4047 if (purchasableGiftItems.length > 0) { 4048 if (!config.enablePurchasableGift || total < config.purchasableGiftMinimum) { 4049 purchasableGiftItems.forEach(item => updates.push(removeFromCart(item.key))); 4050 } else if (purchasableGiftItems.length > config.purchasableGiftMaxQuantity) { 4051 purchasableGiftItems.slice(config.purchasableGiftMaxQuantity).forEach(item => updates.push(removeFromCart(item.key))); 4052 } else { 4053 purchasableGiftItems.forEach(item => { 4054 if (!allowedVariants.purchasable_gift.has(item.variant_id)) { 4055 updates.push(removeFromCart(item.key)); 4056 } 4057 }); 4058 } 4059 } 4060 4061 // Vérifier les boîtes à thé (caddy) 4062 const caddyItems = findAllFreeItems(cart, 'caddy'); 4063 if (caddyItems.length > 0) { 4064 if (!checkCaddyEligibility(cart)) { 4065 caddyItems.forEach(item => updates.push(removeFromCart(item.key))); 4066 } else if (caddyItems.length > config.caddyMaxQuantity) { 4067 caddyItems.slice(config.caddyMaxQuantity).forEach(item => updates.push(removeFromCart(item.key))); 4068 } else { 4069 caddyItems.forEach(item => { 4070 if (!allowedVariants.caddy.has(item.variant_id)) { 4071 updates.push(removeFromCart(item.key)); 4072 } 4073 }); 4074 } 4075 } 4076 4077 if (updates.length > 0) { 4078 return Promise.all(updates).then(() => { 4079 document.documentElement.dispatchEvent(new CustomEvent('cart:refresh', { 4080 bubbles: true 4081 })); 4082 return true; 4083 }); 4084 } 4085 return false; 4086 }).catch(error => { 4087 console.error('Erreur lors de la vérification du panier:', error); 4088 return false; 4089 }); 4090 } 4091 4092 // Ajouter un item offert au panier 4093 function addFreeItemToCart(variantId, giftType) { 4094 const properties = {}; 4095 4096 // Ajouter la propriété cachée (pour le code) 4097 if (giftType === 'gift' || giftType === 'purchasable_gift') {
4098 properties[GIFT_HIDDEN_PROPERTY] = HIDDEN_PROPERTY_VALUE; 4099 properties['_gift_threshold'] = giftType === 'purchasable_gift' ? config.purchasableGiftMinimum : config.giftMinimum; 4100 properties['_gift_source'] = giftType; 4101 properties[DISPLAY_TYPE_PROPERTY] = 'Cadeau offert'; 4102 } else if (giftType === 'caddy') { 4103 properties[CADDY_HIDDEN_PROPERTY] = HIDDEN_PROPERTY_VALUE; 4104 properties[DISPLAY_TYPE_PROPERTY] = 'Boîte à thé offerte'; 4105 } else { 4106 properties[SAMPLE_HIDDEN_PROPERTY] = HIDDEN_PROPERTY_VALUE; 4107 properties['_sample_threshold'] = config.samplesMinimum; 4108 properties[DISPLAY_TYPE_PROPERTY] = 'Ãchantillon offert'; 4109 } 4110 4111 return fetch('/cart/add.js', { 4112 method: 'POST', 4113 headers: { 4114 'Content-Type': 'application/json', 4115 'X-Requested-With': 'XMLHttpRequest' 4116 }, 4117 body: JSON.stringify({ 4118 items: [{ 4119 id: variantId, 4120 quantity: 1, 4121 properties: properties 4122 }] 4123 }) 4124 }).then(response => response.json()); 4125 } 4126 4127 // Ajouter plusieurs items offerts au panier 4128 function addMultipleFreeItemsToCart(variantIds, giftType) { 4129 // Déterminer la limite maximale selon le type 4130 const maxQuantity = giftType === 'gift' ? config.giftMaxQuantity : (giftType === 'purchasable_gift' ? config.purchasableGiftMaxQuantity : (giftType === 'caddy' ? config.caddyMaxQuantity : config.samplesMaxQuantity)); 4131 4132 // Limiter le nombre de produits à ajouter (sécurité supplémentaire) 4133 const limitedVariantIds = variantIds.slice(0, maxQuantity); 4134 4135 if (limitedVariantIds.length < variantIds.length) { 4136 console.warn(`Limitation appliquée : ${variantIds.length} produits demandés, ${limitedVariantIds.length} seront ajoutés`); 4137 } 4138 4139 // Créer les propriétés selon le type 4140 const items = limitedVariantIds.map(variantId => { 4141 const properties = {}; 4142 4143 if (giftType === 'gift' || giftType === 'purchasable_gift') { 4144 properties[GIFT_HIDDEN_PROPERTY] = HIDDEN_PROPERTY_VALUE; 4145 properties['_gift_threshold'] = giftType === 'purchasable_gift' ? config.purchasableGiftMinimum : config.giftMinimum; 4146 properties['_gift_source'] = giftType; 4147 properties[DISPLAY_TYPE_PROPERTY] = 'Cadeau offert'; 4148 } else if (giftType === 'caddy') { 4149 properties[CADDY_HIDDEN_PROPERTY] = HIDDEN_PROPERTY_VALUE; 4150 properties[DISPLAY_TYPE_PROPERTY] = 'Boîte à thé offerte'; 4151 } else { 4152 properties[SAMPLE_HIDDEN_PROPERTY] = HIDDEN_PROPERTY_VALUE; 4153 properties['_sample_threshold'] = config.samplesMinimum; 4154 properties[DISPLAY_TYPE_PROPERTY] = 'Ãchantillon offert'; 4155 } 4156 4157 return { 4158 id: variantId, 4159 quantity: 1, 4160 properties: properties 4161 }; 4162 }); 4163 4164 return fetch('/cart/add.js', { 4165 method: 'POST', 4166 headers: { 4167 'Content-Type': 'application/json', 4168 'X-Requested-With': 'XMLHttpRequest' 4169 }, 4170 body: JSON.stringify({ 4171 items: items 4172 }) 4173 }).then(response => response.json()); 4174 } 4175 4176 // Stocker l'état initial des checkboxes pour chaque drawer 4177 const drawerInitialStates = new Map(); 4178 4179 // Fonction pour sauvegarder l'état initial des checkboxes d'un drawer 4180 function saveDrawerInitialState(drawer) { 4181 if (!drawer) return; 4182 4183 const checkboxes = drawer.querySelectorAll('.gift-drawer__product-checkbox'); 4184 const state = Array.from(checkboxes).map(cb => ({ 4185 id: cb.id, 4186 checked: cb.checked, 4187 disabled: cb.disabled 4188 })); 4189 4190 drawerInitialStates.set(drawer.id, state); 4191 } 4192 4193 // Fonction pour restaurer l'état initial des checkboxes d'un drawer 4194 function restoreDrawerInitialState(drawer) { 4195 if (!drawer) return; 4196 4197 const initialState = drawerInitialStates.get(drawer.id); 4198 if (!initialState) return; 4199 4200 const checkboxes = drawer.querySelectorAll('.gift-drawer__product-checkbox');
4201 checkboxes.forEach(checkbox => { 4202 const savedState = initialState.find(s => s.id === checkbox.id); 4203 if (savedState) { 4204 checkbox.checked = savedState.checked; 4205 // Ne pas restaurer disabled pour les checkboxes cochées 4206 if (savedState.checked) { 4207 checkbox.disabled = false; 4208 } else { 4209 checkbox.disabled = savedState.disabled; 4210 } 4211 4212 // Mettre à jour l'apparence du line-item 4213 const lineItem = checkbox.closest('line-item'); 4214 if (lineItem) { 4215 if (checkbox.disabled) { 4216 lineItem.classList.add('line-item--disabled'); 4217 } else { 4218 lineItem.classList.remove('line-item--disabled'); 4219 } 4220 } 4221 } 4222 }); 4223 4224 // Mettre à jour le bouton Valider et le compteur avec les données du panier 4225 updateCheckboxState(drawer, drawer.cartData); 4226 } 4227 4228 // Fonction pour compter les produits déjà dans le panier d'un type donné 4229 function countExistingItemsInCart(cart, giftType) { 4230 if (!cart || !cart.items) return 0; 4231 4232 const propertyToCheck = getHiddenProperty(giftType); 4233 return cart.items.filter(item => 4234 item.properties && item.properties[propertyToCheck] 4235 ).length; 4236 } 4237 4238 // Fonction pour mettre à jour le compteur et l'état des checkboxes 4239 function updateCheckboxState(drawer, cartData = null) { 4240 if (!drawer) return; 4241 4242 const giftType = drawer.id === 'samples-drawer' ? 'sample' : (drawer.id === 'caddy-drawer' ? 'caddy' : (drawer.id === 'purchasable-gift-drawer' ? 'purchasable_gift' : 'gift')); 4243 const validateButton = drawer.querySelector('.gift-drawer__validate-button'); 4244 const maxQuantity = parseInt(validateButton?.getAttribute('data-max-quantity') || '1'); 4245 const checkboxes = drawer.querySelectorAll('.gift-drawer__product-checkbox'); 4246 const checkedBoxes = drawer.querySelectorAll('.gift-drawer__product-checkbox:checked'); 4247 const countSpan = drawer.querySelector('.gift-drawer__validate-count'); 4248 4249 // Fonction pour mettre à jour après avoir récupéré les données du panier 4250 const updateWithCartData = (cart) => { 4251 // Dans le drawer, on ne compte QUE les produits cochés 4252 // car ils vont REMPLACER tous les produits du panier 4253 const currentCheckedCount = checkedBoxes.length; 4254 4255 // Mettre à jour le compteur 4256 if (countSpan && validateButton) { 4257 if (currentCheckedCount > 0) { 4258 countSpan.textContent = ` (${currentCheckedCount})`; 4259 } else { 4260 countSpan.textContent = ''; 4261 } 4262 } 4263 4264 // Activer/désactiver le bouton Valider 4265 if (validateButton) { 4266 validateButton.disabled = currentCheckedCount === 0; 4267 } 4268 4269 // Gérer l'état des checkboxes 4270 checkboxes.forEach(checkbox => { 4271 if (checkbox.checked) { 4272 // Les checkboxes cochées doivent toujours être actives 4273 checkbox.disabled = false; 4274 checkbox.closest('line-item')?.classList.remove('line-item--disabled'); 4275 } else { 4276 // Les checkboxes non cochées : désactiver si la limite est atteinte 4277 if (currentCheckedCount >= maxQuantity) { 4278 checkbox.disabled = true; 4279 checkbox.closest('line-item')?.classList.add('line-item--disabled'); 4280 } else { 4281 checkbox.disabled = false; 4282 checkbox.closest('line-item')?.classList.remove('line-item--disabled'); 4283 } 4284 } 4285 }); 4286 }; 4287 4288 // Si les données du panier sont fournies, les utiliser directement 4289 if (cartData) { 4290 updateWithCartData(cartData); 4291 } else { 4292 // Sinon, récupérer les données du panier 4293 fetch('/cart.js') 4294 .then(response => response.json()) 4295 .then(cart => updateWithCartData(cart)) 4296 .catch(error => { 4297 console.error('Erreur lors de la récupération du panier:', error); 4298 // En cas d'erreur, utiliser le comportement par défaut sans compter les produits existants 4299 if (countSpan && validateButton) { 4300 const count = checkedBoxes.length; 4301 if (count > 0) { 4302 countSpan.textContent = ` (${count})`; 4303 } else { 4304 countSpan.textContent = ''; 4305 } 4306 } 4307 if (validateButton) { 4308 validateButton.disabled = checkedBoxes.length === 0; 4309 }
4310 checkboxes.forEach(checkbox => { 4311 if (checkbox.checked) { 4312 // Les checkboxes cochées doivent toujours être actives 4313 checkbox.disabled = false; 4314 checkbox.closest('line-item')?.classList.remove('line-item--disabled'); 4315 } else if (checkedBoxes.length >= maxQuantity) { 4316 checkbox.disabled = true; 4317 checkbox.closest('line-item')?.classList.add('line-item--disabled'); 4318 } else { 4319 checkbox.disabled = false; 4320 checkbox.closest('line-item')?.classList.remove('line-item--disabled'); 4321 } 4322 }); 4323 }); 4324 } 4325 } 4326 4327 document.addEventListener('DOMContentLoaded', function() { 4328 // Override de la méthode hide du cart-drawer 4329 customElements.whenDefined('cart-drawer').then(() => { 4330 const cartDrawer = document.querySelector('cart-drawer'); 4331 if (cartDrawer) { 4332 const originalHide = cartDrawer.hide.bind(cartDrawer); 4333 cartDrawer.hide = function() { 4334 const openGiftDrawer = document.querySelector('.gift-drawer.is-open'); 4335 if (!openGiftDrawer) { 4336 return originalHide(); 4337 } 4338 }; 4339 } 4340 }); 4341 4342 // Gérer les clics sur les checkboxes 4343 document.addEventListener('change', function(e) { 4344 const checkbox = e.target.closest('.gift-drawer__product-checkbox'); 4345 if (checkbox) { 4346 const drawer = checkbox.closest('.gift-drawer'); 4347 if (drawer) { 4348 // Si on vient de cocher, vérifier qu'on ne dépasse pas la limite 4349 if (checkbox.checked) { 4350 const validateButton = drawer.querySelector('.gift-drawer__validate-button'); 4351 const maxQuantity = parseInt(validateButton?.getAttribute('data-max-quantity') || '1'); 4352 const checkedBoxes = drawer.querySelectorAll('.gift-drawer__product-checkbox:checked'); 4353 4354 // Si on dépasse la limite, décocher immédiatement 4355 if (checkedBoxes.length > maxQuantity) { 4356 checkbox.checked = false; 4357 e.preventDefault(); 4358 return; 4359 } 4360 } 4361 4362 // Utiliser les données du panier stockées dans le drawer 4363 updateCheckboxState(drawer, drawer.cartData); 4364 } 4365 } 4366 }); 4367 4368 // Gérer les clics sur les line-items pour cocher/décocher la checkbox 4369 document.addEventListener('click', function(e) { 4370 const lineItem = e.target.closest('.gift-drawer__products .line-item'); 4371 if (lineItem) { 4372 const checkbox = lineItem.querySelector('.gift-drawer__product-checkbox'); 4373 if (checkbox && !checkbox.disabled) { 4374 // Ne pas déclencher si on clique directement sur la checkbox, son wrapper, un lien ou un bouton 4375 if (e.target === checkbox || e.target.closest('.line-item__checkbox-wrapper') || e.target.closest('a, button')) { 4376 return; 4377 } 4378 4379 // Si la checkbox est actuellement décochée, vérifier qu'on peut encore cocher 4380 if (!checkbox.checked) { 4381 const drawer = checkbox.closest('.gift-drawer'); 4382 if (drawer) { 4383 const validateButton = drawer.querySelector('.gift-drawer__validate-button'); 4384 const maxQuantity = parseInt(validateButton?.getAttribute('data-max-quantity') || '1'); 4385 const checkedBoxes = drawer.querySelectorAll('.gift-drawer__product-checkbox:checked'); 4386 4387 // Si on a déjà atteint la limite, ne pas permettre de cocher 4388 if (checkedBoxes.length >= maxQuantity) { 4389 return; 4390 } 4391 } 4392 } 4393 4394 e.preventDefault(); 4395 e.stopPropagation(); 4396 checkbox.checked = !checkbox.checked; 4397 checkbox.dispatchEvent(new Event('change', { bubbles: true })); 4398 } 4399 } 4400 }); 4401 4402 // Gérer le bouton Valider pour les sélections multiples 4403 document.addEventListener('click', function(e) { 4404 const validateButton = e.target.closest('.gift-drawer__validate-button'); 4405 if (validateButton && !validateButton.disabled) { 4406 e.preventDefault(); 4407 e.stopPropagation(); 4408 4409 const drawer = validateButton.closest('.gift-drawer'); 4410 const giftType = validateButton.getAttribute('data-gift-type'); 4411 const maxQuantity = parseInt(validateButton.getAttribute('data-max-quantity') || '1'); 4412 4413 if (!drawer || !giftType) return; 4414 4415 let checkedBoxes = drawer.querySelectorAll('.gift-drawer__product-checkbox:checked'); 4416 if (checkedBoxes.length === 0) return; 4417 4418 // Limiter au nombre maximum autorisé (sécurité supplémentaire) 4419 if (checkedBoxes.length > maxQuantity) { 4420 // Prendre seulement les N premiers produits cochés 4421 checkedBoxes = Array.from(checkedBoxes).slice(0, maxQuantity); 4422 } else { 4423 checkedBoxes = Array.from(checkedBoxes); 4424 } 4425 4426 const variantIds = checkedBoxes.map(cb => cb.getAttribute('data-variant-id')); 4427 4428 // Désactiver le bouton pendant l'ajout 4429 validateButton.disabled = true; 4430 validateButton.classList.add('is-loading'); 4431 4432 // Vérifier le total et gérer le remplacement 4433 calculateCartTotal() 4434 .then(({ total, cart }) => { 4435 if (giftType === 'caddy') { 4436 if (!checkCaddyEligibility(cart)) { 4437 validateButton.disabled = false;
4438 validateButton.classList.remove('is-loading'); 4439 alert('Les conditions pour la boîte à thé offerte ne sont pas remplies.'); 4440 return Promise.reject('Conditions caddy non remplies'); 4441 } 4442 } else { 4443 const minimumRequired = giftType === 'gift' ? config.giftMinimum : (giftType === 'purchasable_gift' ? config.purchasableGiftMinimum : config.samplesMinimum); 4444 4445 // Vérifier si le montant minimum est atteint 4446 if (total < minimumRequired) { 4447 validateButton.disabled = false; 4448 validateButton.classList.remove('is-loading'); 4449 alert('Le montant minimum du panier n\'est pas atteint pour cette offre.'); 4450 return Promise.reject('Montant minimum non atteint'); 4451 } 4452 } 4453 4454 // Supprimer tous les produits existants du même type 4455 const existingItems = findAllFreeItems(cart, giftType); 4456 const removePromises = existingItems.map(item => removeFromCart(item.key)); 4457 4458 return Promise.all(removePromises); 4459 }) 4460 .then(() => { 4461 // Ajouter tous les nouveaux items 4462 return addMultipleFreeItemsToCart(variantIds, giftType); 4463 }) 4464 .then(() => { 4465 // Rafraîchir le contenu du panier avec l'event du thème 4466 document.documentElement.dispatchEvent(new CustomEvent('cart:refresh', { 4467 bubbles: true 4468 })); 4469 4470 // Fermer le drawer (sans restaurer l'état initial car on a validé) 4471 drawer.classList.remove('is-open'); 4472 const drawerId = drawer.id; 4473 const overlay = document.getElementById(drawerId + '-overlay'); 4474 if (overlay) { 4475 overlay.classList.remove('is-visible'); 4476 } 4477 4478 // Supprimer l'état sauvegardé car il est maintenant obsolète 4479 drawerInitialStates.delete(drawer.id); 4480 4481 // Vérifier le panier après la validation pour s'assurer de la conformité 4482 // (suppression des produits en trop si quelqu'un a contourné le système) 4483 setTimeout(() => { 4484 checkAndRemoveFreeItems(); 4485 }, 200); 4486 }) 4487 .catch(error => { 4488 if (error !== 'Montant minimum non atteint' && error !== 'Conditions caddy non remplies') { 4489 console.error('Erreur lors de l\'ajout au panier:', error); 4490 validateButton.disabled = false; 4491 validateButton.classList.remove('is-loading'); 4492 alert('Une erreur est survenue lors de l\'ajout au panier.'); 4493 } 4494 }); 4495 return; 4496 } 4497 }); 4498 4499 // Initialiser l'état des checkboxes quand un drawer s'ouvre 4500 document.addEventListener('click', function(e) { 4501 const openButton = e.target.closest('[data-open-drawer]'); 4502 if (openButton) { 4503 setTimeout(() => { 4504 const drawerId = openButton.getAttribute('data-open-drawer'); 4505 const drawer = document.getElementById(drawerId); 4506 if (drawer) { 4507 // Récupérer les données du panier une seule fois 4508 fetch('/cart.js') 4509 .then(response => response.json()) 4510 .then(cart => { 4511 // Stocker les données du panier dans le drawer pour une utilisation ultérieure 4512 drawer.cartData = cart; 4513 4514 // Sauvegarder l'état initial à l'ouverture 4515 saveDrawerInitialState(drawer); 4516 4517 // Mettre à jour l'état des checkboxes avec les données du panier 4518 updateCheckboxState(drawer, cart); 4519 }) 4520 .catch(error => { 4521 console.error('Erreur lors de la récupération du panier:', error); 4522 // En cas d'erreur, continuer sans les données du panier 4523 saveDrawerInitialState(drawer); 4524 updateCheckboxState(drawer); 4525 }); 4526 } 4527 }, 100); 4528 } 4529 }); 4530 4531 // Gérer l'ajout au panier avec properties 4532 document.addEventListener('click', function(e) { 4533 const addButton = e.target.closest('.line-item__add-button'); 4534 if (addButton) { 4535 e.preventDefault(); 4536 e.stopPropagation(); 4537 4538 const variantId = addButton.getAttribute('data-variant-id'); 4539 const giftType = addButton.getAttribute('data-gift-type'); 4540 4541 if (variantId) { 4542 // Désactiver le bouton pendant l'ajout 4543 addButton.disabled = true; 4544 addButton.classList.add('is-loading'); 4545 4546 // Vérifier le total et gérer le remplacement 4547 calculateCartTotal() 4548 .then(({ total, cart }) => { 4549 if (giftType === 'caddy') { 4550 // Pour les boîtes à thé, vérifier l'éligibilité produit (pas de montant minimum) 4551 if (!checkCaddyEligibility(cart)) { 4552 addButton.disabled = false;
4553 addButton.classList.remove('is-loading'); 4554 alert('Les conditions pour la boîte à thé offerte ne sont pas remplies.'); 4555 return Promise.reject('Conditions caddy non remplies'); 4556 } 4557 } else { 4558 const minimumRequired = giftType === 'gift' ? config.giftMinimum : (giftType === 'purchasable_gift' ? config.purchasableGiftMinimum : config.samplesMinimum); 4559 4560 // Vérifier si le montant minimum est atteint 4561 if (total < minimumRequired) { 4562 addButton.disabled = false; 4563 addButton.classList.remove('is-loading'); 4564 alert('Le montant minimum du panier n\'est pas atteint pour cette offre.'); 4565 return Promise.reject('Montant minimum non atteint'); 4566 } 4567 } 4568 4569 // Vérifier s'il existe déjà un item offert du même type 4570 const existingItem = findFreeItem(cart, giftType); 4571 4572 if (existingItem) { 4573 // Supprimer l'ancien avant d'ajouter le nouveau 4574 return removeFromCart(existingItem.key); 4575 } 4576 4577 return Promise.resolve(); 4578 }) 4579 .then(() => { 4580 // Ajouter le nouvel item 4581 return addFreeItemToCart(variantId, giftType); 4582 }) 4583 .then(() => { 4584 // NE PAS fermer le drawer pour permettre de continuer à voir les produits 4585 4586 // Rafraîchir le contenu du panier avec l'event du thème 4587 document.documentElement.dispatchEvent(new CustomEvent('cart:refresh', { 4588 bubbles: true 4589 })); 4590 4591 // Feedback visuel 4592 addButton.classList.remove('is-loading'); 4593 addButton.classList.add('is-added'); 4594 4595 setTimeout(() => { 4596 addButton.disabled = false; 4597 addButton.classList.remove('is-added'); 4598 }, 2000); 4599 }) 4600 .catch(error => { 4601 if (error !== 'Montant minimum non atteint' && error !== 'Conditions caddy non remplies') { 4602 console.error('Erreur lors de l\'ajout au panier:', error); 4603 addButton.disabled = false; 4604 addButton.classList.remove('is-loading'); 4605 alert('Une erreur est survenue lors de l\'ajout au panier.'); 4606 } 4607 }); 4608 } 4609 return; 4610 } 4611 4612 // Ouverture 4613 const openButton = e.target.closest('[data-open-drawer]'); 4614 if (openButton) { 4615 e.preventDefault(); 4616 e.stopPropagation(); 4617 4618 // Fermer tous les autres drawers d'abord 4619 document.querySelectorAll('.gift-drawer.is-open').forEach(drawer => { 4620 drawer.classList.remove('is-open'); 4621 }); 4622 document.querySelectorAll('.gift-drawer-overlay.is-visible').forEach(overlay => { 4623 overlay.classList.remove('is-visible'); 4624 }); 4625 4626 const drawerId = openButton.getAttribute('data-open-drawer'); 4627 const drawer = document.getElementById(drawerId); 4628 const overlay = document.getElementById(drawerId + '-overlay'); 4629 4630 if (drawer) { 4631 drawer.classList.add('is-open'); 4632 if (overlay) { 4633 overlay.classList.add('is-visible'); 4634 } 4635 } 4636 return; 4637 } 4638 4639 // Fermeture 4640 const closeButton = e.target.closest('[data-close-drawer]'); 4641 if (closeButton) { 4642 const giftDrawer = closeButton.closest('.gift-drawer'); 4643 if (giftDrawer) { 4644 // Restaurer l'état initial avant de fermer 4645 restoreDrawerInitialState(giftDrawer); 4646 4647 giftDrawer.classList.remove('is-open'); 4648 const drawerId = giftDrawer.id; 4649 const overlay = document.getElementById(drawerId + '-overlay'); 4650 if (overlay) { 4651 overlay.classList.remove('is-visible'); 4652 } 4653 4654 // Vérifier le panier après la fermeture pour s'assurer de la conformité 4655 setTimeout(() => { 4656 checkAndRemoveFreeItems(); 4657 }, 100); 4658 } 4659 return; 4660 } 4661 4662 // Clic sur l'overlay pour fermer
4663 const overlay = e.target.closest('.gift-drawer-overlay'); 4664 if (overlay && overlay.classList.contains('is-visible')) { 4665 const overlayId = overlay.id; 4666 const drawerId = overlayId.replace('-overlay', ''); 4667 const drawer = document.getElementById(drawerId); 4668 if (drawer) { 4669 // Restaurer l'état initial avant de fermer 4670 restoreDrawerInitialState(drawer); 4671 4672 drawer.classList.remove('is-open'); 4673 } 4674 overlay.classList.remove('is-visible'); 4675 4676 // Vérifier le panier après la fermeture pour s'assurer de la conformité 4677 setTimeout(() => { 4678 checkAndRemoveFreeItems(); 4679 }, 100); 4680 return; 4681 } 4682 }, true); 4683 4684 // Close on Escape key 4685 document.addEventListener('keydown', function(e) { 4686 if (e.key === 'Escape') { 4687 const openDrawers = document.querySelectorAll('.gift-drawer.is-open'); 4688 const openOverlays = document.querySelectorAll('.gift-drawer-overlay.is-visible'); 4689 4690 if (openDrawers.length > 0) { 4691 e.stopPropagation(); 4692 openDrawers.forEach(drawer => { 4693 // Restaurer l'état initial avant de fermer 4694 restoreDrawerInitialState(drawer); 4695 drawer.classList.remove('is-open'); 4696 }); 4697 openOverlays.forEach(overlay => { 4698 overlay.classList.remove('is-visible'); 4699 }); 4700 4701 // Vérifier le panier après la fermeture pour s'assurer de la conformité 4702 setTimeout(() => { 4703 checkAndRemoveFreeItems(); 4704 }, 100); 4705 } 4706 } 4707 }); 4708 4709 // Ãcouter les changements du panier pour vérifier les montants (event du thème) 4710 document.addEventListener('cart:change', function() { 4711 checkAndRemoveFreeItems(); 4712 }); 4713 4714 // Vérifier au chargement 4715 checkAndRemoveFreeItems(); 4716 }); 4717 })(); 4718 4719 // Nosto Recommendations for Cart Drawer 4720 (function() { 4721 class NostoRecommendationsSidecart extends HTMLElement { 4722 // Constants 4723 static TIMEOUTS = { 4724 NOSTO_LOAD: 6000, 4725 CHECK_INTERVAL: 100, 4726 }; 4727 4728 static SECTION_NAMES = { 4729 PRODUCT_CARD: 'ax-card-product', 4730 PRODUCT_CARD_SIDECART: 'ax-card-product-sidecart', 4731 }; 4732 4733 static SELECTORS = { 4734 nostoPlacement: 'nostoPlacement', 4735 nostoContent: '[data-nosto-content]', 4736 recommendationsNosto: '[data-nosto-recommendation]', 4737 productCardWithTracking: '[data-nosto-tracking-url]', 4738 }; 4739 4740 static CSS_SELECTORS = { 4741 scrollCarousel: 'scroll-carousel[data-nosto-content]', 4742 }; 4743 4744 static CSS_CLASSES = { 4745 SKELETON: '.skeleton', 4746 NOSTO_SECTION: '.shopify-section--nosto-recommendations', 4747 PRODUCT_CARD: 'product-card', 4748 PRODUCT_CROSS_SELL: '.product-cross-sell', 4749 }; 4750 4751 constructor() { 4752 super(); 4753 4754 this.nostoPlacement = this.dataset.nostoPlacement; 4755 this.nostoResultId = null; 4756 // Utiliser scroll-carousel au lieu de product-list 4757 this.nostoContent = this.querySelector(NostoRecommendationsSidecart.CSS_SELECTORS.scrollCarousel) || this.querySelector(NostoRecommendationsSidecart.SELECTORS.nostoContent); 4758 // Utiliser la section spécifique pour le sidecart 4759 this.sectionProductName = NostoRecommendationsSidecart.SECTION_NAMES.PRODUCT_CARD_SIDECART; 4760 this.nostoProductsToShow = this.dataset.nostoProductsToShow; 4761 this.background = this.dataset.background || ''; 4762 } 4763 4764 async connectedCallback() { 4765 try { 4766 await this.waitForNosto(); 4767 this.init(); 4768 } catch (error) { 4769 console.error('[NostoSidecart] Erreur lors du chargement de Nosto:', error.message); 4770 this.hideNostoSection(); 4771 } 4772 } 4773 4774 disconnectedCallback() { 4775 // Ne pas supprimer la section lors de la déconnexion 4776 // car cela peut arriver lors de l'ouverture/fermeture du drawer 4777 } 4778 4779 init() { 4780 nostojs((api) => { 4781 api 4782 .createRecommendationRequest({ includeTagging: true }) 4783 .setElements([this.nostoPlacement]) 4784 .load({ skipEvents: true }) 4785 .then((response) => this.handleNostoResponse(response)) 4786 .catch((error) => { 4787 console.error('Erreur lors du chargement des recommandations Nosto:', error); 4788 this.hideNostoSection(); 4789 }); 4790 }); 4791 } 4792 4793 handleNostoResponse(response) { 4794 const recommendations = response.recommendations[this.nostoPlacement]; 4795 4796 if (!recommendations) { 4797 this.hideNostoSection(); 4798 return; 4799 } 4800 4801 this.nostoResultId = recommendations.result_id; 4802 4803 try { 4804 const results = this.parseNostoResults(recommendations.html); 4805 if (results) { 4806 this.constructProductCards(results); 4807 } else { 4808 this.hideNostoSection(); 4809 } 4810 } catch (error) { 4811 console.error('[NostoSidecart] Erreur lors du parsing des résultats Nosto:', error); 4812 this.hideNostoSection(); 4813 } 4814 } 4815 4816 parseNostoResults(html) { 4817 const parser = new DOMParser(); 4818 const document = parser.parseFromString(html, 'text/html'); 4819 const element = document.querySelector(NostoRecommendationsSidecart.SELECTORS.recommendationsNosto); 4820 4821 return element ? JSON.parse(element.textContent) : null; 4822 } 4823 4824 async waitForNosto(timeout = NostoRecommendationsSidecart.TIMEOUTS.NOSTO_LOAD) { 4825 return new Promise((resolve, reject) => { 4826 let timeSpent = 0; 4827 4828 const checkNosto = () => { 4829 if (this.isNostoReady()) { 4830 resolve(); 4831 } else if (timeSpent >= timeout) { 4832 reject(new Error('Nosto load timeout')); 4833 } else { 4834 timeSpent += NostoRecommendationsSidecart.TIMEOUTS.CHECK_INTERVAL; 4835 setTimeout(checkNosto, NostoRecommendationsSidecart.TIMEOUTS.CHECK_INTERVAL); 4836 } 4837 }; 4838 4839 checkNosto(); 4840 }); 4841 } 4842 4843 isNostoReady() {
4844 return typeof window.nostojs === 'function' && window.nostoTemplatesLoaded; 4845 } 4846 4847 hideNostoSection() { 4848 if (this.parentElement) { 4849 this.parentElement.remove(); 4850 } 4851 } 4852 4853 async constructProductCards(results) { 4854 if (!results || !results.products || results.products.length === 0) { 4855 this.hideNostoSection(); 4856 return; 4857 } 4858 4859 try { 4860 const originalProducts = results.products.slice(0, this.nostoProductsToShow); 4861 const productPromises = originalProducts.map((product, index) => this.createProductCard(product, index)); 4862 const productCards = await Promise.all(productPromises); 4863 const validCards = productCards.filter((card) => card !== null); 4864 4865 if (validCards.length === 0) { 4866 this.hideNostoSection(); 4867 return; 4868 } 4869 4870 this.refreshResults(validCards); 4871 } catch (error) { 4872 console.error('[NostoSidecart] Erreur lors de la construction des cartes produits:', error); 4873 this.hideNostoSection(); 4874 } 4875 } 4876 4877 async createProductCard(product, index) { 4878 try { 4879 const productHandle = this.extractProductHandle(product.product_url); 4880 const content = await this.loadContentFromAPI(productHandle); 4881 4882 // Accepter product-card ou product-cross-sell (pour sidecart horizontal) 4883 if (!content || content.trim() === '' || (!content.includes('product-card') && !content.includes('product-cross-sell'))) { 4884 return null; 4885 } 4886 4887 return this.buildProductCardElement(product, content, index); 4888 } catch (error) { 4889 console.error( 4890 `[NostoSidecart] Erreur lors de la création de la carte produit ${product.product_url}:`, 4891 error.message, 4892 ); 4893 return null; 4894 } 4895 } 4896 4897 extractProductHandle(productUrl) { 4898 const queryParamIndex = productUrl.indexOf('?'); 4899 return queryParamIndex !== -1 4900 ? productUrl.substring(productUrl.lastIndexOf('/') + 1, queryParamIndex) 4901 : productUrl.substring(productUrl.lastIndexOf('/') + 1); 4902 } 4903 4904 buildProductCardElement(product, content, index) { 4905 const tempElement = document.createElement('div'); 4906 tempElement.innerHTML = content; 4907 4908 // Chercher product-cross-sell en priorité (pour sidecart horizontal), sinon product-card 4909 const productCard = tempElement.querySelector('.product-cross-sell') 4910 || tempElement.querySelector('product-card'); 4911 4912 if (!productCard) { 4913 return null; 4914 } 4915 4916 this.setupProductTracking(product, productCard); 4917 4918 return this.createProductContainer(productCard, index, product); 4919 } 4920 4921 setupProductTracking(product, productCard) { 4922 const modifiedUrl = this.addLanguageToUrl(product.product_url); 4923 4924 productCard.dataset.nostoTrackingUrl = modifiedUrl; 4925 productCard.dataset.nostoTrackingProductId = product.product_id; 4926 } 4927 4928 createProductContainer(productCard, index, product) { 4929 const placement = this.nostoResultId || this.nostoPlacement; 4930 productCard.dataset.nostoRecommendationSection = 'true'; 4931 productCard.dataset.nostoPlacement = placement; 4932 productCard.dataset.nostoProductId = product.product_id; 4933 4934 return productCard; 4935 } 4936 4937 addLanguageToUrl(url) { 4938 if (Shopify.routes.root === '/') { 4939 return url; 4940 } 4941 4942 const languageCode = Shopify.routes.root.replaceAll('/', ''); 4943 return url.replace(/^(https?:\/\/[^\/]+)(\/.*)$/, `$1/${languageCode}$2`); 4944 } 4945 4946 refreshResults(resultsHTML) { 4947 if (!resultsHTML) return; 4948 4949 // Masquer le skeleton immédiatement avant d'afficher les produits pour éviter le CLS 4950 const skeletonDiv = this.querySelector(NostoRecommendationsSidecart.CSS_CLASSES.SKELETON); 4951 if (skeletonDiv) { 4952 // Masquer complètement et immédiatement sans impact sur le layout 4953 skeletonDiv.style.visibility = 'hidden'; 4954 skeletonDiv.style.height = '0'; 4955 skeletonDiv.style.overflow = 'hidden'; 4956 skeletonDiv.style.margin = '0'; 4957 skeletonDiv.style.padding = '0'; 4958 } 4959 4960 this.clearContent(); 4961 this.appendResults(resultsHTML); 4962 this.setupInteractions(); 4963 4964 // Supprimer le skeleton après que les produits soient affichés 4965 if (skeletonDiv) { 4966 requestAnimationFrame(() => { 4967 requestAnimationFrame(() => { 4968 if (skeletonDiv.parentNode) { 4969 skeletonDiv.remove(); 4970 } 4971 }); 4972 }); 4973 } 4974 } 4975 4976 clearContent() { 4977 if (this.nostoContent) { 4978 this.nostoContent.innerHTML = ''; 4979 } 4980 } 4981 4982 appendResults(resultsHTML) { 4983 if (!this.nostoContent) { 4984 return; 4985 } 4986 4987 resultsHTML.forEach((element) => { 4988 if (element && this.nostoContent) { 4989 this.nostoContent.appendChild(element); 4990 } 4991 }); 4992 4993 document.dispatchEvent(new CustomEvent('wishlist:update', { bubbles: true })); 4994 4995 // Attendre que le drawer soit ouvert et le conteneur visible avant de vérifier la taille 4996 const checkScrollability = () => { 4997 if (!this.nostoContent) { 4998 return; 4999 } 5000 5001 // Vérifier si le conteneur est visible 5002 const rect = this.nostoContent.getBoundingClientRect(); 5003 const isVisible = rect.width > 0 && rect.height > 0; 5004 5005 if (!isVisible && this.nostoContent.scrollWidth === 0) { 5006 // Le conteneur n'est pas encore visible, réessayer plus tard 5007 setTimeout(checkScrollability, 100); 5008 return; 5009 } 5010 5011 // Toujours afficher les boutons (pas de hidden) 5012 const isScrollable = this.nostoContent.scrollWidth > this.nostoContent.clientWidth; 5013 this.nostoContent.classList.toggle('is-scrollable', isScrollable); 5014 }; 5015 5016 // Double requestAnimationFrame pour s'assurer que le DOM est mis à jour 5017 requestAnimationFrame(() => { 5018 requestAnimationFrame(() => { 5019 checkScrollability(); 5020 }); 5021 }); 5022 } 5023 5024 setupInteractions() { 5025 this.setTrackingClick(); 5026 this.setupCarouselButtons(); 5027 } 5028 5029 setupCarouselButtons() { 5030 if (!this.nostoContent) return; 5031 5032 const prevButton = this.querySelector('carousel-prev-button'); 5033 const nextButton = this.querySelector('carousel-next-button'); 5034 5035 if (!prevButton || !nextButton) return; 5036 5037 const prevBtnElement = prevButton.firstElementChild; 5038 const nextBtnElement = nextButton.firstElementChild; 5039 5040 const updateButtonStates = () => { 5041 const scrollLeft = this.nostoContent.scrollLeft; 5042 const maxScroll = this.nostoContent.scrollWidth - this.nostoContent.clientWidth; 5043 const threshold = 10; 5044 5045 if (prevBtnElement) { 5046 prevBtnElement.disabled = scrollLeft < threshold; 5047 } 5048 5049 if (nextBtnElement) { 5050 nextBtnElement.disabled = scrollLeft >= maxScroll - threshold; 5051 } 5052 }; 5053 5054 updateButtonStates(); 5055 5056 this.nostoContent.addEventListener('scroll', updateButtonStates); 5057 this.nostoContent.addEventListener('scrollend', updateButtonStates); 5058 5059 if (prevBtnElement) { 5060 prevBtnElement.addEventListener('click', (e) => { 5061 e.preventDefault(); 5062 const scrollAmount = this.nostoContent.clientWidth * 0.8; 5063 this.nostoContent.scrollBy({ left: -scrollAmount, behavior: 'smooth' }); 5064 }); 5065 } 5066 5067 if (nextBtnElement) { 5068 nextBtnElement.addEventListener('click', (e) => { 5069 e.preventDefault(); 5070 const scrollAmount = this.nostoContent.clientWidth * 0.8; 5071 this.nostoContent.scrollBy({ left: scrollAmount, behavior: 'smooth' }); 5072 }); 5073 } 5074 } 5075 5076 hideSkeleton() { 5077 // Cette méthode n'est plus utilisée, le skeleton est masqué dans refreshResults 5078 const skeletonDiv = this.querySelector(NostoRecommendationsSidecart.CSS_CLASSES.SKELETON); 5079 if (skeletonDiv) { 5080 skeletonDiv.style.display = 'none'; 5081 setTimeout(() => { 5082 if (skeletonDiv.parentNode) { 5083 skeletonDiv.remove(); 5084 } 5085 }, 50); 5086 } 5087 } 5088 5089 setTrackingClick() { 5090 const productCards = this.querySelectorAll( 5091 NostoRecommendationsSidecart.SELECTORS.productCardWithTracking, 5092 ); 5093 5094 productCards.forEach((productCard) => { 5095 const links = productCard.querySelectorAll('a'); 5096 links.forEach((link) => { 5097 link.addEventListener('click', (event) => this.handleTrackingClick(event, productCard)); 5098 }); 5099 }); 5100 } 5101 5102 handleTrackingClick(event, productCard) { 5103 const productId = productCard.dataset.nostoTrackingProductId; 5104 const placement = this.nostoResultId || this.nostoPlacement; 5105 5106 this.performNostoTracking(productId, placement, () => {}); 5107 } 5108 5109 performNostoTracking(productId, placement, callback) { 5110 nostojs((api) => { 5111 api 5112 .createRecommendationRequest() 5113 .setProducts([{ product_id: productId }], placement) 5114 .load() 5115 .then(callback) 5116 .catch((error) => { 5117 console.error('Erreur lors du tracking Nosto:', error); 5118 callback(); 5119 }); 5120 }); 5121 } 5122 5123 async loadContentFromAPI(productHandle) { 5124 try { 5125 const params = new URLSearchParams({ 5126 sections: this.sectionProductName, 5127 }); 5128 5129 if (this.background) { 5130 params.set('background', this.background); 5131 } 5132 5133 const url = `${Shopify.routes.root}products/${productHandle}?${params.toString()}`; 5134 const response = await fetch(url); 5135 5136 if (!response.ok) { 5137 throw new Error(`HTTP error! status: ${response.status}`); 5138 } 5139 5140 const data = await response.json(); 5141 return data[this.sectionProductName]; 5142 } catch (error) { 5143 console.error('[NostoSidecart] Error fetching data from API:', error); 5144 return null; 5145 } 5146 } 5147 } 5148 5149 if (!customElements.get('nosto-recommendations-sidecart')) { 5150 customElements.define('nosto-recommendations-sidecart', NostoRecommendationsSidecart); 5151 } 5152 })(); 5153</script>
5153 5154 5155 5156</section><section id="shopify-section-sections--26884129816919__search-drawer" class="shopify-section shopify-section-group-overlay-group shopify-section--search-drawer"><x-drawer 5157 id="search-drawer" 5158 class="drawer drawer--search color-scheme color-scheme--scheme-1" 5159 handle-editor-events 5160><div slot="header"> 5161 <form 5162 action="/search" 5163 id="predictive-search-form" 5164 method="GET" 5165 aria-owns="predictive-search" 5166 class="h-stack gap-2.5" 5167 role="search" 5168 ><svg aria-hidden="true" focusable="false" width="16" fill="none" class="icon icon-search" part="icon" viewBox="0 0 16 16"> 5169 <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" /> 5170 </svg><label for="search-drawer-input" class="sr-only">Recherche...</label> 5171 <input 5172 id="search-drawer-input" 5173 type="search" 5174 class="search-drawer__input h4" 5175 name="q" 5176 placeholder="Recherche..." 5177 > 5178 </form> 5179 </div><div id="search-drawer-skeleton" class="search-drawer__skeleton" style="display: none;"> 5180 <div class="search-drawer__skeleton-grid"><div class="product-card product-card--skeleton product-card--info-outside snap-start color-scheme color-scheme--scheme-1" ><div class="product-card__figure"><div class="product-card__badges-skeleton place-self-start-end"> 5181 <div class="skeleton-badge skeleton-pulse"></div> 5182 </div><div class="product-card__media product-card__media--skeleton"> 5183 <div class="product-card__image-skeleton skeleton-pulse aspect-square"></div> 5184 </div><div class="product-card__quick-buy--mobile product-card__quick-buy--skeleton sm:hidden"> 5185 <div class="skeleton-quick-buy-button skeleton-pulse"></div> 5186 </div></div><div class="product-card__info product-card__info--flush"> 5187 <div class="v-stack gap-2.5 justify-items-start text-start"> 5188 <div class="v-stack gap-0.5"> 5189 <div class="v-stack gap-2.5"> 5190 <div class="v-stack gap-1"> 5191 <div class="v-stack gap-0.5"><div class="skeleton-title skeleton-pulse"></div><div class="skeleton-subtitle skeleton-pulse"></div> 5192 </div> 5193 </div> 5194 </div><div class="v-stack gap-1"> 5195 <div class="price-and-cart-container"> 5196 <div class="skeleton-price skeleton-pulse"></div><div class="product-card__quick-buy--inline product-card__quick-buy--skeleton"> 5197 <div class="skeleton-quick-buy-button skeleton-pulse"></div> 5198 </div></div> 5199 </div></div> 5200 </div> 5201 </div></div> 5202 5203 5204<div class="product-card product-card--skeleton product-card--info-outside snap-start color-scheme color-scheme--scheme-1" ><div class="product-card__figure"><div class="product-card__badges-skeleton place-self-start-end"> 5205 <div class="skeleton-badge skeleton-pulse"></div> 5206 </div><div class="product-card__media product-card__media--skeleton"> 5207 <div class="product-card__image-skeleton skeleton-pulse aspect-square"></div> 5208 </div><div class="product-card__quick-buy--mobile product-card__quick-buy--skeleton sm:hidden"> 5209 <div class="skeleton-quick-buy-button skeleton-pulse"></div> 5210 </div></div><div class="product-card__info product-card__info--flush"> 5211 <div class="v-stack gap-2.5 justify-items-start text-start"> 5212 <div class="v-stack gap-0.5"> 5213 <div class="v-stack gap-2.5"> 5214 <div class="v-stack gap-1"> 5215 <div class="v-stack gap-0.5"><div class="skeleton-title skeleton-pulse"></div><div class="skeleton-subtitle skeleton-pulse"></div> 5216 </div> 5217 </div> 5218 </div><div class="v-stack gap-1"> 5219 <div class="price-and-cart-container"> 5220 <div class="skeleton-price skeleton-pulse"></div><div class="product-card__quick-buy--inline product-card__quick-buy--skeleton"> 5221 <div class="skeleton-quick-buy-button skeleton-pulse"></div> 5222 </div></div> 5223 </div></div> 5224 </div> 5225 </div></div> 5226 5227 5228<div class="product-card product-card--skeleton product-card--info-outside snap-start color-scheme color-scheme--scheme-1" ><div class="product-card__figure"><div class="product-card__badges-skeleton place-self-start-end"> 5229 <div class="skeleton-badge skeleton-pulse"></div> 5230 </div><div class="product-card__media product-card__media--skeleton">
5231 <div class="product-card__image-skeleton skeleton-pulse aspect-square"></div> 5232 </div><div class="product-card__quick-buy--mobile product-card__quick-buy--skeleton sm:hidden"> 5233 <div class="skeleton-quick-buy-button skeleton-pulse"></div> 5234 </div></div><div class="product-card__info product-card__info--flush"> 5235 <div class="v-stack gap-2.5 justify-items-start text-start"> 5236 <div class="v-stack gap-0.5"> 5237 <div class="v-stack gap-2.5"> 5238 <div class="v-stack gap-1"> 5239 <div class="v-stack gap-0.5"><div class="skeleton-title skeleton-pulse"></div><div class="skeleton-subtitle skeleton-pulse"></div> 5240 </div> 5241 </div> 5242 </div><div class="v-stack gap-1"> 5243 <div class="price-and-cart-container"> 5244 <div class="skeleton-price skeleton-pulse"></div><div class="product-card__quick-buy--inline product-card__quick-buy--skeleton"> 5245 <div class="skeleton-quick-buy-button skeleton-pulse"></div> 5246 </div></div> 5247 </div></div> 5248 </div> 5249 </div></div> 5250 5251 5252<div class="product-card product-card--skeleton product-card--info-outside snap-start color-scheme color-scheme--scheme-1" ><div class="product-card__figure"><div class="product-card__badges-skeleton place-self-start-end"> 5253 <div class="skeleton-badge skeleton-pulse"></div> 5254 </div><div class="product-card__media product-card__media--skeleton"> 5255 <div class="product-card__image-skeleton skeleton-pulse aspect-square"></div> 5256 </div><div class="product-card__quick-buy--mobile product-card__quick-buy--skeleton sm:hidden"> 5257 <div class="skeleton-quick-buy-button skeleton-pulse"></div> 5258 </div></div><div class="product-card__info product-card__info--flush"> 5259 <div class="v-stack gap-2.5 justify-items-start text-start"> 5260 <div class="v-stack gap-0.5"> 5261 <div class="v-stack gap-2.5"> 5262 <div class="v-stack gap-1"> 5263 <div class="v-stack gap-0.5"><div class="skeleton-title skeleton-pulse"></div><div class="skeleton-subtitle skeleton-pulse"></div> 5264 </div> 5265 </div> 5266 </div><div class="v-stack gap-1"> 5267 <div class="price-and-cart-container"> 5268 <div class="skeleton-price skeleton-pulse"></div><div class="product-card__quick-buy--inline product-card__quick-buy--skeleton"> 5269 <div class="skeleton-quick-buy-button skeleton-pulse"></div> 5270 </div></div> 5271 </div></div> 5272 </div> 5273 </div></div> 5274 5275 5276<div class="product-card product-card--skeleton product-card--info-outside snap-start color-scheme color-scheme--scheme-1" ><div class="product-card__figure"><div class="product-card__badges-skeleton place-self-start-end"> 5277 <div class="skeleton-badge skeleton-pulse"></div> 5278 </div><div class="product-card__media product-card__media--skeleton"> 5279 <div class="product-card__image-skeleton skeleton-pulse aspect-square"></div> 5280 </div><div class="product-card__quick-buy--mobile product-card__quick-buy--skeleton sm:hidden"> 5281 <div class="skeleton-quick-buy-button skeleton-pulse"></div> 5282 </div></div><div class="product-card__info product-card__info--flush"> 5283 <div class="v-stack gap-2.5 justify-items-start text-start"> 5284 <div class="v-stack gap-0.5"> 5285 <div class="v-stack gap-2.5"> 5286 <div class="v-stack gap-1"> 5287 <div class="v-stack gap-0.5"><div class="skeleton-title skeleton-pulse"></div><div class="skeleton-subtitle skeleton-pulse"></div> 5288 </div> 5289 </div> 5290 </div><div class="v-stack gap-1"> 5291 <div class="price-and-cart-container"> 5292 <div class="skeleton-price skeleton-pulse"></div><div class="product-card__quick-buy--inline product-card__quick-buy--skeleton"> 5293 <div class="skeleton-quick-buy-button skeleton-pulse"></div> 5294 </div></div> 5295 </div></div> 5296 </div> 5297 </div></div> 5298 5299 5300<div class="product-card product-card--skeleton product-card--info-outside snap-start color-scheme color-scheme--scheme-1" ><div class="product-card__figure"><div class="product-card__badges-skeleton place-self-start-end"> 5301 <div class="skeleton-badge skeleton-pulse"></div> 5302 </div><div class="product-card__media product-card__media--skeleton">
5303 <div class="product-card__image-skeleton skeleton-pulse aspect-square"></div> 5304 </div><div class="product-card__quick-buy--mobile product-card__quick-buy--skeleton sm:hidden"> 5305 <div class="skeleton-quick-buy-button skeleton-pulse"></div> 5306 </div></div><div class="product-card__info product-card__info--flush"> 5307 <div class="v-stack gap-2.5 justify-items-start text-start"> 5308 <div class="v-stack gap-0.5"> 5309 <div class="v-stack gap-2.5"> 5310 <div class="v-stack gap-1"> 5311 <div class="v-stack gap-0.5"><div class="skeleton-title skeleton-pulse"></div><div class="skeleton-subtitle skeleton-pulse"></div> 5312 </div> 5313 </div> 5314 </div><div class="v-stack gap-1"> 5315 <div class="price-and-cart-container"> 5316 <div class="skeleton-price skeleton-pulse"></div><div class="product-card__quick-buy--inline product-card__quick-buy--skeleton"> 5317 <div class="skeleton-quick-buy-button skeleton-pulse"></div> 5318 </div></div> 5319 </div></div> 5320 </div> 5321 </div></div> 5322 5323 5324</div> 5325 </div><div id="search-drawer-results" class="search-drawer__results"></div><div id="search-drawer-spinner" class="search-drawer__spinner" style="display: none;"> 5326 <div class="spinner-icon"></div> 5327 </div> 5328 5329 <nosto-react data-context="search-drawer"></nosto-react></x-drawer>
5329<script> 5330 document.addEventListener('DOMContentLoaded', () => { 5331 let loadTimeout; 5332 5333 // Fonction helper pour trouver les éléments dynamiquement 5334 const getElements = () => { 5335 const drawer = document.getElementById('search-drawer'); 5336 // On cherche n'importe quel conteneur de résultats potentiel 5337 const resultsWrapper = drawer 5338 ? drawer.querySelector('.search-drawer__results-wrapper, .search-drawer__results, #nosto-search-drawer-results') 5339 : null; 5340 5341 return { 5342 spinner: document.getElementById('search-drawer-spinner'), 5343 resultsWrapper: resultsWrapper, 5344 input: document.getElementById('search-drawer-input'), 5345 drawer: drawer, 5346 }; 5347 }; 5348 5349 // Gestionnaire global pour l'input 5350 document.addEventListener('input', (event) => { 5351 if (event.target && event.target.id === 'search-drawer-input') { 5352 const { spinner, resultsWrapper } = getElements(); 5353 const value = event.target.value; 5354 5355 clearTimeout(loadTimeout); 5356 5357 if (value.length > 1) { 5358 if (spinner) { 5359 spinner.style.display = 'flex'; 5360 spinner.setAttribute('aria-hidden', 'false'); 5361 spinner.style.zIndex = '1000'; 5362 } 5363 // Masquer les résultats existants pour montrer que ça charge 5364 if (resultsWrapper) { 5365 resultsWrapper.style.opacity = '0'; 5366 resultsWrapper.style.visibility = 'hidden'; 5367 } 5368 5369 // Fallback : Si Nosto ne répond rien (0 résultats) après 2.5s 5370 // on force l'affichage "Pas de résultat" 5371 loadTimeout = setTimeout(() => { 5372 if (spinner && spinner.style.display !== 'none') { 5373 spinner.style.display = 'none'; 5374 if (resultsWrapper) { 5375 // On vérifie si c'est vide (ou juste le placeholder) 5376 if (resultsWrapper.textContent.trim().length < 50) { 5377 resultsWrapper.innerHTML = 5378 '<div class="nosto-no-results" style="text-align:center; padding: 2rem;">Votre recherche n'a donné aucun résultat</div>'; 5379 } 5380 resultsWrapper.style.opacity = '1'; 5381 resultsWrapper.style.visibility = 'visible'; 5382 } 5383 } 5384 }, 2500); 5385 } else if (value.length === 0) { 5386 if (spinner) spinner.style.display = 'none'; 5387 if (resultsWrapper) { 5388 resultsWrapper.style.opacity = '1'; 5389 resultsWrapper.style.visibility = 'visible'; 5390 } 5391 } 5392 } 5393 }); 5394 5395 // Observer plus robuste sur le drawer lui-même 5396 // car Nosto peut détruire/créer des wrappers 5397 const initObserver = () => { 5398 const { drawer } = getElements(); 5399 if (drawer) { 5400 const observer = new MutationObserver((mutations) => { 5401 const { spinner, resultsWrapper } = getElements(); 5402 5403 // Si on n'a pas de spinner ou qu'il est déjà caché, rien à faire 5404 if (!spinner || spinner.style.display === 'none') return; 5405 5406 // Vérification robuste: est-ce qu'on a du contenu significatif dans un wrapper ? 5407 let hasEffectiveContent = false; 5408 if (resultsWrapper) { 5409 // Check texte length (> 50 pour être sûr d'avoir des produits) 5410 // IMPORTANT: Utiliser textContent et pas innerText car innerText est vide si l'élément est caché (visibility: hidden) 5411 // Cela résout le problème où le spinner restait affiché avec des résultats "invisibles" 5412 if (resultsWrapper.textContent.trim().length > 50) { 5413 hasEffectiveContent = true; 5414 } 5415 } 5416 5417 if (hasEffectiveContent) { 5418 clearTimeout(loadTimeout); // On a du contenu, on annule le fallback 5419 spinner.style.display = 'none'; 5420 if (resultsWrapper) { 5421 resultsWrapper.style.opacity = '1'; 5422 resultsWrapper.style.visibility = 'visible'; 5423 } 5424 } 5425 }); 5426 5427 // Observer tout le drawer 5428 observer.observe(drawer, { 5429 childList: true, 5430 subtree: true, 5431 }); 5432 } else { 5433 setTimeout(initObserver, 500); 5434 } 5435 }; 5436
5437 initObserver(); 5438 }); 5439 </script>
5439<div id="nosto-search-drawer-results"></div> 5440</section> 5441<!-- END sections: overlay-group --><main id="main" class="anchor"><section id="shopify-section-template--26884129882455__main" class="shopify-section shopify-section--main-product"><style>#shopify-section-template--26884129882455__main { 5442 .breadcrumb { 5443 padding: 0.5rem 1.8rem; 5444 } 5445 5446 .product-title { 5447 display: flex; 5448 flex-direction: column; 5449 gap: 0.5rem; 5450 5451 .product-title__subtitle { 5452 font-size: 0.875rem; 5453 } 5454 } 5455 5456 .product-title--review { 5457 display: flex; 5458 align-items: center; 5459 justify-content: space-between; 5460 gap: 1rem; 5461 5462 .skeepers_product__stars { 5463 min-width: fit-content; 5464 align-self: flex-start; 5465 } 5466 } 5467 5468 .skeepers_product__stars .stars__item { 5469 margin-left: 2px; 5470 } 5471 5472 .skeepers_product__stars span { 5473 font-size: 16px !important; 5474 } 5475 5476 @media screen and (min-width: 768px) { 5477 .breadcrumb, 5478 .container-product_infos { 5479 max-width: 90vw; 5480 margin: 0 auto; 5481 } 5482 } 5483 5484 @media screen and (min-width: 1850px) { 5485 .breadcrumb, 5486 .container-product_infos { 5487 max-width: 110rem; 5488 margin: 0 auto; 5489 } 5490 } 5491 }#shopify-section-template--26884129882455__main .product { 5492 padding-block-start: min(1rem, var(--container-gutter)); 5493 }@media screen and (min-width: 768px) { 5494 #shopify-section-template--26884129882455__main { 5495 --product-grid: auto / minmax(0, 0.5fr) minmax(0, 0.5fr); 5496 5497 .container { 5498 --container-gutter-context: 0.5rem; 5499 } 5500 } 5501 } 5502 5503 @media screen and (max-width: 999px) { 5504 #shopify-section-template--26884129882455__main { 5505 .breadcrumb { 5506 display: none; 5507 } 5508 5509 .product { 5510 padding-block-start: 0; 5511 } 5512 5513 .container { 5514 --container-gutter-context: 0.5rem; 5515 } 5516 5517 scroll-carousel img { 5518 border-radius: 8px; 5519 } 5520 5521 safe-sticky.product-info { 5522 padding: 0 0.8rem; 5523 } 5524 5525 .product-zoom-button { 5526 display: none; 5527 } 5528 } 5529 } 5530</style> 5531 5532<div 5533 class="color-scheme color-scheme--scheme-1" 5534 5535> 5536 <nav class="breadcrumb" aria-label="Fil d'Ariane"> 5537 <ol class="breadcrumb__list text-xs unstyled-list"> 5538 <li class="breadcrumb__item"> 5539 <a href="/" class="breadcrumb__link">Kusmi Tea</a> 5540 </li><li class="breadcrumb__item"> 5541 <a href="/collections/coffrets-cadeaux" class="breadcrumb__link">Coffrets cadeaux - Coffret de thés et infusions</a> 5542 </li><li class="breadcrumb__item breadcrumb__item--current"> 5543 <span class="breadcrumb__link breadcrumb__link--current">Calendrier de l'Avent</span> 5544 </li></ol> 5545</nav> 5546 5547 <div class="container container-product_infos"><product-rerender 5548 id="product-info-11020345999703-template--26884129882455__main" 5549 observe-form="product-form-main-11020345999703-template--26884129882455__main" 5550 allow-partial-rerender 5551 > 5552 <div class="product"><style> 5553 @media screen and (max-width: 999px) { 5554 #shopify-section-template--26884129882455__main {--product-gallery-gap: 0rem;} 5555 } 5556 5557 @media screen and (min-width: 1000px) { 5558 #shopify-section-template--26884129882455__main {--product-gallery-gap: 0.5rem;}#shopify-section-template--26884129882455__main .product-gallery__image-list { 5559 display: block; 5560 position: relative; 5561 } 5562 5563 #shopify-section-template--26884129882455__main .product-gallery__image-list > .relative { 5564 width: calc(100% - 75px - 0.5rem); 5565 } 5566 5567 #shopify-section-template--26884129882455__main .product-gallery__image-list{ 5568 /* aspect-ratio: 1 / 1; */ 5569 } 5570 5571 #shopify-section-template--26884129882455__main .product-gallery__carousel { 5572 border-radius: 8px; 5573 overflow: hidden; 5574 } 5575 5576 #shopify-section-template--26884129882455__main .product-gallery__media img, 5577 #shopify-section-template--26884129882455__main .product-gallery__media video, 5578 #shopify-section-template--26884129882455__main .product-gallery__media model-viewer { 5579 border-radius: 8px; 5580 } 5581 5582 #shopify-section-template--26884129882455__main .product-gallery__thumbnail-list { 5583 position: absolute; 5584 top: 0; 5585 right: 0; 5586 height: 100%; 5587 width: 75px; 5588 flex-shrink: 0; 5589 overflow-y: auto; 5590 overflow-x: hidden; 5591 scrollbar-width: none; 5592 } 5593 5594 5595 #shopify-section-template--26884129882455__main .product-gallery__thumbnail-list .scroll-marker-group { 5596 display: flex; 5597 flex-direction: column; 5598 gap: 0.5rem; 5599 } 5600 5601 #shopify-section-template--26884129882455__main .product-gallery__thumbnail-list .scroll-area { 5602 scrollbar-width: none !important; 5603 overflow-y: auto !important; 5604 overflow-x: hidden !important; 5605 } 5606 5607 #shopify-section-template--26884129882455__main .product-gallery__thumbnail-list .scroll-area::-webkit-scrollbar {
5608 display: none !important; 5609 } 5610 5611 #shopify-section-template--26884129882455__main .product-gallery__thumbnail-list .scroll-marker { 5612 width: 75px; 5613 height: 75px; 5614 border-radius: 8px; 5615 overflow: hidden; 5616 } 5617 5618 #shopify-section-template--26884129882455__main .product-gallery__thumbnail-list .scroll-marker img, 5619 #shopify-section-template--26884129882455__main .product-gallery__thumbnail-list .scroll-marker video { 5620 border-radius: 8px; 5621 object-fit: cover; 5622 min-height: 100%; 5623 } 5624 5625 #shopify-section-template--26884129882455__main .product-gallery__badges-container { 5626 max-height: fit-content; 5627 } 5628 5629 #shopify-section-template--26884129882455__main .product-gallery__media { 5630 /* aspect-ratio: 1 / 1; */ 5631 overflow: hidden; 5632 display: flex; 5633 align-items: flex-end; 5634 5635 img, video { 5636 height: auto; 5637 max-height: 100%; 5638 width: 100%; 5639 } 5640 5641 video-media { 5642 display: flex; 5643 align-items: flex-end; 5644 width: 100%; 5645 height: 100%; 5646 5647 video { 5648 object-position: bottom; 5649 } 5650 } 5651 } 5652 5653 #shopify-section-template--26884129882455__main .product-gallery__thumbnail-list .scroll-marker:after { 5654 display: none; 5655 }} 5656</style> 5657 5658<product-gallery 5659 id="product-gallery-product-gallery-carousel-11020345999703-template--26884129882455__main" 5660 class="product-gallery " 5661 form="product-form-main-11020345999703-template--26884129882455__main" 5662 filtered-indexes="[]" 5663 5664 autoplay-media 5665 5666 5667 allow-zoom="2" zoom-color-scheme-id="scheme-2" 5668 5669> 5670 <div class="product-gallery__image-list"><div class="relative product-gallery__badges-container"><div class="product-gallery__badges"><badge-list class="badge-list badge-list--column align-start product-gallery__badges-list"><span 5671 class="badge badge__product badge--custom badge--metaobject badge--new badge--colored " 5672 style="--badge-text-color: #303030; --badge-bg-color: #efede5; background-color: var(--badge-bg-color); color: var(--badge-text-color);" 5673 > 5674 Nouveau 5675 </span></badge-list></div><scroll-carousel 5676 adaptive-height 5677 id="product-gallery-carousel-11020345999703-template--26884129882455__main" 5678 class="product-gallery__carousel scroll-area bleed md:unbleed" 5679 role="region" 5680 ><div 5681 class="product-gallery__media snap-center is-initial " 5682 data-media-type="image" 5683 data-media-id="akeneo-lifestyle" 5684 role="group" 5685 aria-label="Elément 1 de 6" 5686 ><img src="//www.kusmitea.com/cdn/shop/files/d4580b40790c00094baa409e50cca7be9e97c986_ADVENTCAL26BIO_lifestyle_principal_b2cweb_2952932f-0824-411d-8bbc-a0068285760a.png?v=1787123579&width=800" alt="Calendrier de l'Avent" srcset="//www.kusmitea.com/cdn/shop/files/d4580b40790c00094baa409e50cca7be9e97c986_ADVENTCAL26BIO_lifestyle_principal_b2cweb_2952932f-0824-411d-8bbc-a0068285760a.png?v=1787123579&width=200 200w, //www.kusmitea.com/cdn/shop/files/d4580b40790c00094baa409e50cca7be9e97c986_ADVENTCAL26BIO_lifestyle_principal_b2cweb_2952932f-0824-411d-8bbc-a0068285760a.png?v=1787123579&width=400 400w, //www.kusmitea.com/cdn/shop/files/d4580b40790c00094baa409e50cca7be9e97c986_ADVENTCAL26BIO_lifestyle_principal_b2cweb_2952932f-0824-411d-8bbc-a0068285760a.png?v=1787123579&width=600 600w, //www.kusmitea.com/cdn/shop/files/d4580b40790c00094baa409e50cca7be9e97c986_ADVENTCAL26BIO_lifestyle_principal_b2cweb_2952932f-0824-411d-8bbc-a0068285760a.png?v=1787123579&width=800 800w" width="800" height="800" loading="eager" fetchpriority="high" sizes="(max-width: 699px) 100vw, 50vw" class="product-gallery__image"></div><div 5687 class="product-gallery__media snap-center is-initial " 5688 data-media-type="image" 5689 data-media-id="62194814484823" 5690 role="group" 5691 aria-label="Elément 2 de 6" 5692 5693 ><img src="//www.kusmitea.com/cdn/shop/files/69ccaa76e308d3684f9a42cf6429ef819d9eca4d_ADVENTCAL26BIO_packshot_b2cweb.png?v=1785157587&width=1800" alt="Calendrier de l'Avent" srcset="//www.kusmitea.com/cdn/shop/files/69ccaa76e308d3684f9a42cf6429ef819d9eca4d_ADVENTCAL26BIO_packshot_b2cweb.png?v=1785157587&width=200 200w, //www.kusmitea.com/cdn/shop/files/69ccaa76e308d3684f9a42cf6429ef819d9eca4d_ADVENTCAL26BIO_packshot_b2cweb.png?v=1785157587&width=400 400w, //www.kusmitea.com/cdn/shop/files/69ccaa76e308d3684f9a42cf6429ef819d9eca4d_ADVENTCAL26BIO_packshot_b2cweb.png?v=1785157587&width=600 600w, //www.kusmitea.com/cdn/shop/files/69ccaa76e308d3684f9a42cf6429ef819d9eca4d_ADVENTCAL26BIO_packshot_b2cweb.png?v=1785157587&width=800 800w, //www.kusmitea.com/cdn/shop/files/69ccaa76e308d3684f9a42cf6429ef819d9eca4d_ADVENTCAL26BIO_packshot_b2cweb.png?v=1785157587&width=1000 1000w, //www.kusmitea.com/cdn/shop/files/69ccaa76e308d3684f9a42cf6429ef819d9eca4d_ADVENTCAL26BIO_packshot_b2cweb.png?v=1785157587&width=1200 1200w, //www.kusmitea.com/cdn/shop/files/69ccaa76e308d3684f9a42cf6429ef819d9eca4d_ADVENTCAL26BIO_packshot_b2cweb.png?v=1785157587&width=1500 1500w, //www.kusmitea.com/cdn/shop/files/69ccaa76e308d3684f9a42cf6429ef819d9eca4d_ADVENTCAL26BIO_packshot_b2cweb.png?v=1785157587&width=1800 1800w" width="1800" height="1800" loading="eager" fetchpriority="high" sizes="(max-width: 699px) 100vw, 50vw" style=" "></div><div 5694 class="product-gallery__media snap-center " 5695 data-media-type="image" 5696 data-media-id="62668222038359" 5697 role="group" 5698 aria-label="Elément 3 de 6" 5699 5700 ><img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" lazy-src="//www.kusmitea.com/cdn/shop/files/e21980f2e91bcdf3d9f362367f977c187cb85b9d_ADVENTCAL26BIO_lifestyle_secondaires_3_b2cweb.png?v=1787123288&width=1800" alt="Calendrier de l'Avent" lazy-srcset="//www.kusmitea.com/cdn/shop/files/e21980f2e91bcdf3d9f362367f977c187cb85b9d_ADVENTCAL26BIO_lifestyle_secondaires_3_b2cweb.png?v=1787123288&width=200 200w, //www.kusmitea.com/cdn/shop/files/e21980f2e91bcdf3d9f362367f977c187cb85b9d_ADVENTCAL26BIO_lifestyle_secondaires_3_b2cweb.png?v=1787123288&width=400 400w, //www.kusmitea.com/cdn/shop/files/e21980f2e91bcdf3d9f362367f977c187cb85b9d_ADVENTCAL26BIO_lifestyle_secondaires_3_b2cweb.png?v=1787123288&width=600 600w, //www.kusmitea.com/cdn/shop/files/e21980f2e91bcdf3d9f362367f977c187cb85b9d_ADVENTCAL26BIO_lifestyle_secondaires_3_b2cweb.png?v=1787123288&width=800 800w, //www.kusmitea.com/cdn/shop/files/e21980f2e91bcdf3d9f362367f977c187cb85b9d_ADVENTCAL26BIO_lifestyle_secondaires_3_b2cweb.png?v=1787123288&width=1000 1000w, //www.kusmitea.com/cdn/shop/files/e21980f2e91bcdf3d9f362367f977c187cb85b9d_ADVENTCAL26BIO_lifestyle_secondaires_3_b2cweb.png?v=1787123288&width=1200 1200w, //www.kusmitea.com/cdn/shop/files/e21980f2e91bcdf3d9f362367f977c187cb85b9d_ADVENTCAL26BIO_lifestyle_secondaires_3_b2cweb.png?v=1787123288&width=1500 1500w, //www.kusmitea.com/cdn/shop/files/e21980f2e91bcdf3d9f362367f977c187cb85b9d_ADVENTCAL26BIO_lifestyle_secondaires_3_b2cweb.png?v=1787123288&width=1800 1800w" width="1800" height="1800" loading="lazy" sizes="auto, (max-width: 699px) 100vw, 50vw" style=" "></div><div 5701 class="product-gallery__media snap-center " 5702 data-media-type="image" 5703 data-media-id="62806702588247" 5704 role="group" 5705 aria-label="Elément 4 de 6" 5706 5707 ><img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" lazy-src="//www.kusmitea.com/cdn/shop/files/fcc8178cc489ef7f2173080b959835e9011e1b43_ADVENTCAL26BIO_lifestyle_secondaires_1_b2cweb.png?v=1787727709&width=1800" alt="Calendrier de l'Avent" lazy-srcset="//www.kusmitea.com/cdn/shop/files/fcc8178cc489ef7f2173080b959835e9011e1b43_ADVENTCAL26BIO_lifestyle_secondaires_1_b2cweb.png?v=1787727709&width=200 200w, //www.kusmitea.com/cdn/shop/files/fcc8178cc489ef7f2173080b959835e9011e1b43_ADVENTCAL26BIO_lifestyle_secondaires_1_b2cweb.png?v=1787727709&width=400 400w, //www.kusmitea.com/cdn/shop/files/fcc8178cc489ef7f2173080b959835e9011e1b43_ADVENTCAL26BIO_lifestyle_secondaires_1_b2cweb.png?v=1787727709&width=600 600w, //www.kusmitea.com/cdn/shop/files/fcc8178cc489ef7f2173080b959835e9011e1b43_ADVENTCAL26BIO_lifestyle_secondaires_1_b2cweb.png?v=1787727709&width=800 800w, //www.kusmitea.com/cdn/shop/files/fcc8178cc489ef7f2173080b959835e9011e1b43_ADVENTCAL26BIO_lifestyle_secondaires_1_b2cweb.png?v=1787727709&width=1000 1000w, //www.kusmitea.com/cdn/shop/files/fcc8178cc489ef7f2173080b959835e9011e1b43_ADVENTCAL26BIO_lifestyle_secondaires_1_b2cweb.png?v=1787727709&width=1200 1200w, //www.kusmitea.com/cdn/shop/files/fcc8178cc489ef7f2173080b959835e9011e1b43_ADVENTCAL26BIO_lifestyle_secondaires_1_b2cweb.png?v=1787727709&width=1500 1500w, //www.kusmitea.com/cdn/shop/files/fcc8178cc489ef7f2173080b959835e9011e1b43_ADVENTCAL26BIO_lifestyle_secondaires_1_b2cweb.png?v=1787727709&width=1800 1800w" width="1800" height="1800" loading="lazy" sizes="auto, (max-width: 699px) 100vw, 50vw" style=" "></div><div 5708 class="product-gallery__media snap-center " 5709 data-media-type="image" 5710 data-media-id="62806702621015" 5711 role="group" 5712 aria-label="Elément 5 de 6" 5713 5714 ><img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" lazy-src="//www.kusmitea.com/cdn/shop/files/ad92ca4acc5277d14ecd84ed56b9ac91ff31b1eb_ADVENTCAL26BIO_lifestyle_secondaires_2_b2cweb.png?v=1787727710&width=1800" alt="Calendrier de l'Avent" lazy-srcset="//www.kusmitea.com/cdn/shop/files/ad92ca4acc5277d14ecd84ed56b9ac91ff31b1eb_ADVENTCAL26BIO_lifestyle_secondaires_2_b2cweb.png?v=1787727710&width=200 200w, //www.kusmitea.com/cdn/shop/files/ad92ca4acc5277d14ecd84ed56b9ac91ff31b1eb_ADVENTCAL26BIO_lifestyle_secondaires_2_b2cweb.png?v=1787727710&width=400 400w, //www.kusmitea.com/cdn/shop/files/ad92ca4acc5277d14ecd84ed56b9ac91ff31b1eb_ADVENTCAL26BIO_lifestyle_secondaires_2_b2cweb.png?v=1787727710&width=600 600w, //www.kusmitea.com/cdn/shop/files/ad92ca4acc5277d14ecd84ed56b9ac91ff31b1eb_ADVENTCAL26BIO_lifestyle_secondaires_2_b2cweb.png?v=1787727710&width=800 800w, //www.kusmitea.com/cdn/shop/files/ad92ca4acc5277d14ecd84ed56b9ac91ff31b1eb_ADVENTCAL26BIO_lifestyle_secondaires_2_b2cweb.png?v=1787727710&width=1000 1000w, //www.kusmitea.com/cdn/shop/files/ad92ca4acc5277d14ecd84ed56b9ac91ff31b1eb_ADVENTCAL26BIO_lifestyle_secondaires_2_b2cweb.png?v=1787727710&width=1200 1200w, //www.kusmitea.com/cdn/shop/files/ad92ca4acc5277d14ecd84ed56b9ac91ff31b1eb_ADVENTCAL26BIO_lifestyle_secondaires_2_b2cweb.png?v=1787727710&width=1500 1500w, //www.kusmitea.com/cdn/shop/files/ad92ca4acc5277d14ecd84ed56b9ac91ff31b1eb_ADVENTCAL26BIO_lifestyle_secondaires_2_b2cweb.png?v=1787727710&width=1800 1800w" width="1800" height="1800" loading="lazy" sizes="auto, (max-width: 699px) 100vw, 50vw" style=" "></div>
5714</scroll-carousel><custom-cursor 5715 class="product-gallery__cursor custom-cursor" 5716 5717 > 5718 <div class="circle-button circle-button--xl"><svg aria-hidden="true" focusable="false" width="12" class="icon icon-big-arrow-right" part="icon" viewBox="0 0 36 36"> 5719 <path fill="none" stroke="currentColor" stroke-width="2" d="M1 18h32M16.5 1.5 33 18 16.5 34.5"/> 5720 </svg></div> 5721 </custom-cursor><open-lightbox-button 5722 aria-controls="product-gallery-carousel-11020345999703-template--26884129882455__main" 5723 5724 > 5725 <button class="product-zoom-button" aria-label="Zoomer sur l'image"><svg aria-hidden="true" focusable="false" width="16" class="icon icon-zoom-plus" part="icon" viewBox="0 0 15 15"> 5726 <path d="M7 0L7 7H0V8H7V15H8V8L15 8V7L8 7L8 0H7Z" fill="currentColor"/> 5727 </svg></button> 5728 </open-lightbox-button></div><div class=" hidden md:contents"><div class="product-gallery__thumbnail-list"> 5729 <carousel-navigation align-selected aria-controls="product-gallery-carousel-11020345999703-template--26884129882455__main" class="scroll-marker-group scroll-marker-group--thumbnails scroll-area bleed md:unbleed"><button type="button" class="scroll-marker" aria-current="true" aria-label="Elément 1 de 6"><img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" lazy-src="//www.kusmitea.com/cdn/shop/files/d4580b40790c00094baa409e50cca7be9e97c986_ADVENTCAL26BIO_lifestyle_principal_b2cweb_2952932f-0824-411d-8bbc-a0068285760a.png?v=1787123579&width=300" alt="Calendrier de l'Avent" lazy-srcset="//www.kusmitea.com/cdn/shop/files/d4580b40790c00094baa409e50cca7be9e97c986_ADVENTCAL26BIO_lifestyle_principal_b2cweb_2952932f-0824-411d-8bbc-a0068285760a.png?v=1787123579&width=100 100w, //www.kusmitea.com/cdn/shop/files/d4580b40790c00094baa409e50cca7be9e97c986_ADVENTCAL26BIO_lifestyle_principal_b2cweb_2952932f-0824-411d-8bbc-a0068285760a.png?v=1787123579&width=200 200w, //www.kusmitea.com/cdn/shop/files/d4580b40790c00094baa409e50cca7be9e97c986_ADVENTCAL26BIO_lifestyle_principal_b2cweb_2952932f-0824-411d-8bbc-a0068285760a.png?v=1787123579&width=300 300w" width="300" height="300" sizes="100px" class="object-contain"></button><button type="button" class="scroll-marker" aria-current="true" aria-label="Elément 2 de 6"><img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" lazy-src="//www.kusmitea.com/cdn/shop/files/69ccaa76e308d3684f9a42cf6429ef819d9eca4d_ADVENTCAL26BIO_packshot_b2cweb.png?v=1785157587&width=1800" alt="Calendrier de l'Avent" lazy-srcset="//www.kusmitea.com/cdn/shop/files/69ccaa76e308d3684f9a42cf6429ef819d9eca4d_ADVENTCAL26BIO_packshot_b2cweb.png?v=1785157587&width=100 100w, //www.kusmitea.com/cdn/shop/files/69ccaa76e308d3684f9a42cf6429ef819d9eca4d_ADVENTCAL26BIO_packshot_b2cweb.png?v=1785157587&width=200 200w, //www.kusmitea.com/cdn/shop/files/69ccaa76e308d3684f9a42cf6429ef819d9eca4d_ADVENTCAL26BIO_packshot_b2cweb.png?v=1785157587&width=300 300w" width="1800" height="1800" sizes="100px" class="object-contain"> 5730 </button><button type="button" class="scroll-marker" aria-current="false" aria-label="Elément 3 de 6"><img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" lazy-src="//www.kusmitea.com/cdn/shop/files/e21980f2e91bcdf3d9f362367f977c187cb85b9d_ADVENTCAL26BIO_lifestyle_secondaires_3_b2cweb.png?v=1787123288&width=1800" alt="Calendrier de l'Avent" lazy-srcset="//www.kusmitea.com/cdn/shop/files/e21980f2e91bcdf3d9f362367f977c187cb85b9d_ADVENTCAL26BIO_lifestyle_secondaires_3_b2cweb.png?v=1787123288&width=100 100w, //www.kusmitea.com/cdn/shop/files/e21980f2e91bcdf3d9f362367f977c187cb85b9d_ADVENTCAL26BIO_lifestyle_secondaires_3_b2cweb.png?v=1787123288&width=200 200w, //www.kusmitea.com/cdn/shop/files/e21980f2e91bcdf3d9f362367f977c187cb85b9d_ADVENTCAL26BIO_lifestyle_secondaires_3_b2cweb.png?v=1787123288&width=300 300w" width="1800" height="1800" sizes="100px" class="object-contain"> 5731 </button><button type="button" class="scroll-marker" aria-current="false" aria-label="Elément 4 de 6"><img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" lazy-src="//www.kusmitea.com/cdn/shop/files/fcc8178cc489ef7f2173080b959835e9011e1b43_ADVENTCAL26BIO_lifestyle_secondaires_1_b2cweb.png?v=1787727709&width=1800" alt="Calendrier de l'Avent" lazy-srcset="//www.kusmitea.com/cdn/shop/files/fcc8178cc489ef7f2173080b959835e9011e1b43_ADVENTCAL26BIO_lifestyle_secondaires_1_b2cweb.png?v=1787727709&width=100 100w, //www.kusmitea.com/cdn/shop/files/fcc8178cc489ef7f2173080b959835e9011e1b43_ADVENTCAL26BIO_lifestyle_secondaires_1_b2cweb.png?v=1787727709&width=200 200w, //www.kusmitea.com/cdn/shop/files/fcc8178cc489ef7f2173080b959835e9011e1b43_ADVENTCAL26BIO_lifestyle_secondaires_1_b2cweb.png?v=1787727709&width=300 300w" width="1800" height="1800" sizes="100px" class="object-contain"> 5732 </button><button type="button" class="scroll-marker" aria-current="false" aria-label="Elément 5 de 6"><img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" lazy-src="//www.kusmitea.com/cdn/shop/files/ad92ca4acc5277d14ecd84ed56b9ac91ff31b1eb_ADVENTCAL26BIO_lifestyle_secondaires_2_b2cweb.png?v=1787727710&width=1800" alt="Calendrier de l'Avent" lazy-srcset="//www.kusmitea.com/cdn/shop/files/ad92ca4acc5277d14ecd84ed56b9ac91ff31b1eb_ADVENTCAL26BIO_lifestyle_secondaires_2_b2cweb.png?v=1787727710&width=100 100w, //www.kusmitea.com/cdn/shop/files/ad92ca4acc5277d14ecd84ed56b9ac91ff31b1eb_ADVENTCAL26BIO_lifestyle_secondaires_2_b2cweb.png?v=1787727710&width=200 200w, //www.kusmitea.com/cdn/shop/files/ad92ca4acc5277d14ecd84ed56b9ac91ff31b1eb_ADVENTCAL26BIO_lifestyle_secondaires_2_b2cweb.png?v=1787727710&width=300 300w" width="1800" height="1800" sizes="100px" class="object-contain"> 5733 </button>
5733</carousel-navigation> 5734 </div></div><div class="product-gallery__controls-floating contents md:hidden"><carousel-navigation class="scroll-marker-group scroll-marker-group--dots align-self-center" aria-controls="product-gallery-carousel-11020345999703-template--26884129882455__main"><button type="button" class="scroll-marker tap-area tap-area--sm" aria-current="true"> 5735 <span class="sr-only">Aller à l'élément 1</span> 5736 </button><button type="button" class="scroll-marker tap-area tap-area--sm" aria-current="false"> 5737 <span class="sr-only">Aller à l'élément 2</span> 5738 </button><button type="button" class="scroll-marker tap-area tap-area--sm" aria-current="false"> 5739 <span class="sr-only">Aller à l'élément 3</span> 5740 </button><button type="button" class="scroll-marker tap-area tap-area--sm" aria-current="false"> 5741 <span class="sr-only">Aller à l'élément 4</span> 5742 </button><button type="button" class="scroll-marker tap-area tap-area--sm" aria-current="false"> 5743 <span class="sr-only">Aller à l'élément 5</span> 5744 </button></carousel-navigation></div></div>
5744<script> 5745 (function() { 5746 if (!window.IntersectionObserver) return; 5747 5748 function restoreLazy(container) { 5749 var els = container.querySelectorAll('[lazy-src],[lazy-srcset]'); 5750 for (var i = 0; i < els.length; i++) { 5751 var s = els[i].getAttribute('lazy-src'); 5752 var ss = els[i].getAttribute('lazy-srcset'); 5753 if (s) { els[i].src = s; els[i].removeAttribute('lazy-src'); } 5754 if (ss) { els[i].srcset = ss; els[i].removeAttribute('lazy-srcset'); } 5755 } 5756 } 5757 5758 var carousel = document.getElementById('product-gallery-carousel-11020345999703-template--26884129882455__main'); 5759 if (carousel) { 5760 var io = new IntersectionObserver(function(entries) { 5761 for (var i = 0; i < entries.length; i++) { 5762 if (entries[i].isIntersecting) { 5763 restoreLazy(entries[i].target); 5764 io.unobserve(entries[i].target); 5765 } 5766 } 5767 }, { root: carousel, rootMargin: '0px 300% 0px 300%' }); 5768 5769 var medias = carousel.querySelectorAll('.product-gallery__media'); 5770 for (var i = 0; i < medias.length; i++) io.observe(medias[i]); 5771 } 5772 5773 var gallery = document.getElementById('product-gallery-product-gallery-carousel-11020345999703-template--26884129882455__main'); 5774 if (gallery) { 5775 var thumbList = gallery.querySelector('.product-gallery__thumbnail-list'); 5776 if (thumbList) { 5777 var thumbIO = new IntersectionObserver(function(entries) { 5778 if (entries[0].isIntersecting) { restoreLazy(thumbList); thumbIO.disconnect(); } 5779 }, { rootMargin: '300px' }); 5780 thumbIO.observe(thumbList); 5781 } 5782 } 5783 })(); 5784 </script>
5784 5785</product-gallery> 5786<safe-sticky class="product-info text-start"> 5787 <div class="product-info__block-list"> 5788<div 5789 class="product-info__block-item" 5790 data-block-id="title" 5791 data-block-type="title" 5792 5793 5794 5795 5796 ><div class="product-title--review"> 5797 <h1 class="product-title h1">Calendrier de l'Avent 5798 <span class="product-title__subtitle h4"> 5799 24 surprises ❘ Thés et infusions ❘ Bio 5800 </span> 5801 5802 </h1> 5803 5804 <div class="skeepers_product__stars" data-product-id="11020345999703"> </div> 5805 </div> 5806 5807
5807<script> 5808 document.querySelector('.skeepers_product__stars')?.addEventListener('click', (e) => { 5809 const target = document.getElementById('skeepers_product_widget'); 5810 if (target && e.target.closest('a[href*="#skeepers_product_widget"]')) { 5811 target.scrollIntoView({ block: 'start', behavior: 'smooth' }); 5812 } 5813 }); 5814 </script>
5814</div> 5815<div 5816 class="product-info__block-item" 5817 data-block-id="badges_UrBVNQ" 5818 data-block-type="badges" 5819 5820 data-block-allow-rerender 5821 5822 5823 5824 5825 ></div> 5826<div 5827 class="product-info__block-item" 5828 data-block-id="price" 5829 data-block-type="price" 5830 5831 data-block-allow-rerender 5832 5833 5834 5835 5836 ><div class="v-stack gap-2" data-sample-hidden ><price-list class="price-list justify-start"><sale-price class="h6 "> 5837 <span class="sr-only">Prix de vente</span>38,90 â¬</sale-price></price-list> 5838</div></div> 5839<div 5840 class="product-info__block-item" 5841 data-block-id="bundle_products_pC7mFb" 5842 data-block-type="bundle-products" 5843 5844 5845 5846 5847 ></div> 5848<div 5849 class="product-info__block-item" 5850 data-block-id="description_tabs_Fg3jNN" 5851 data-block-type="description-tabs" 5852 5853 5854 5855 5856 > 5857<style> 5858 .product-info__block-item { 5859 .product-tabs { 5860 display: block; 5861 background: #efede5; 5862 padding: 1rem; 5863 border-radius: 8px; 5864 } 5865 5866 .product-tabs__nav { 5867 display: flex; 5868 align-items: stretch; 5869 position: relative; 5870 } 5871 5872 .product-tabs__header { 5873 display: flex; 5874 gap: 1.5rem; 5875 position: relative; 5876 /* Le rail occupe la place laissée par les gouttières des flèches. */ 5877 flex: 1 1 auto; 5878 /* Neutralise le `width: fit-content` global de theme.css : avec des onglets 5879 en `white-space: nowrap`, la largeur minimale devient égale à la largeur 5880 maximale, donc la barre débordait de `.product-tabs` (overflow: hidden) 5881 au lieu de défiler dans son propre conteneur. */ 5882 width: auto; 5883 max-width: 100%; 5884 min-width: 0; 5885 overflow-x: auto; 5886 overflow-y: visible; 5887 overscroll-behavior-x: contain; 5888 -webkit-overflow-scrolling: touch; 5889 scrollbar-width: none; 5890 padding-bottom: 10px; 5891 margin-bottom: -10px; 5892 } 5893 5894 .product-tabs__header::-webkit-scrollbar {
5895 display: none; 5896 } 5897 5898 /* Dégradé sur le bord où il reste des onglets à atteindre */ 5899 .product-tabs__nav.is-scrollable-start .product-tabs__header { 5900 -webkit-mask-image: linear-gradient(to right, transparent 0, #000 2rem); 5901 mask-image: linear-gradient(to right, transparent 0, #000 2rem); 5902 } 5903 5904 .product-tabs__nav.is-scrollable-end .product-tabs__header { 5905 -webkit-mask-image: linear-gradient(to left, transparent 0, #000 2rem); 5906 mask-image: linear-gradient(to left, transparent 0, #000 2rem); 5907 } 5908 5909 .product-tabs__nav.is-scrollable-start.is-scrollable-end .product-tabs__header { 5910 -webkit-mask-image: linear-gradient( 5911 to right, 5912 transparent 0, 5913 #000 2rem, 5914 #000 calc(100% - 2rem), 5915 transparent 100% 5916 ); 5917 mask-image: linear-gradient( 5918 to right, 5919 transparent 0, 5920 #000 2rem, 5921 #000 calc(100% - 2rem), 5922 transparent 100% 5923 ); 5924 } 5925 5926 /* Les flèches occupent leur propre gouttière, en dehors du rail : elles ne 5927 se superposent jamais à un libellé d'onglet. */ 5928 .product-tabs__nav-arrow { 5929 box-sizing: border-box; 5930 flex: 0 0 auto; 5931 z-index: 2; 5932 display: none; 5933 align-items: center; 5934 justify-content: center; 5935 width: 1.75rem; 5936 /* La marge négative du rail annule ses 10px de barre de défilement 5937 masquée : la gouttière fait déjà pile la hauteur de la rangée. */ 5938 padding: 0; 5939 border: none; 5940 background: none; 5941 color: #000000; 5942 cursor: pointer; 5943 opacity: 0.3; 5944 pointer-events: none; 5945 transition: opacity 0.2s ease; 5946 } 5947 5948 /* Les deux flèches apparaissent ensemble dès que le rail déborde : sinon la 5949 gouttière naîtrait au premier défilement et décalerait les onglets. */ 5950 .product-tabs__nav.is-scrollable-start .product-tabs__nav-arrow--prev, 5951 .product-tabs__nav.is-scrollable-end .product-tabs__nav-arrow--next { 5952 opacity: 1; 5953 pointer-events: auto; 5954 } 5955 5956 .product-tabs__nav-arrow .icon { 5957 width: 12px; 5958 height: auto; 5959 } 5960 5961 .product-tabs__nav-arrow--prev .icon { 5962 transform: rotate(180deg); 5963 } 5964 5965 /* Flèches réservées aux pointeurs précis : au doigt, le swipe suffit. */ 5966 @media (hover: hover) and (pointer: fine) { 5967 .product-tabs__nav.is-overflowing .product-tabs__nav-arrow { 5968 display: flex; 5969 } 5970 } 5971 5972 .product-tabs__tab { 5973 flex: 0 0 auto; 5974 padding: 1.25rem 1.5rem; 5975 padding-bottom: 0.75rem; 5976 background: transparent; 5977 border: none; 5978 font-family: var(--text-font-family); 5979 font-size: 14px; 5980 font-weight: var(--text-font-weight); 5981 color: #000000; 5982 cursor: pointer; 5983 position: relative; 5984 transition: all 0.3s ease; 5985 white-space: nowrap; 5986 } 5987 5988 .product-tabs__tab::after { 5989 content: ''; 5990 position: absolute; 5991 bottom: -9px; 5992 left: 0; 5993 width: calc(100% + 1.1rem); 5994 height: 1px; 5995 background-color: #d0d0d0; 5996 transition: background-color 0.3s ease; 5997 } 5998 5999 [data-tab-button='ingredients']::after { 6000 left: -10px; 6001 } 6002 6003 [data-tab-button='infusion']::after { 6004 left: -16px; 6005 } 6006 6007 [data-tab-button='characteristics']::after { 6008 left: -16px; 6009 } 6010 6011 .product-tabs__tab:hover::after { 6012 background-color: #000000; 6013 } 6014 6015 .product-tabs__tab.is-active { 6016 color: #000000; 6017 font-weight: 700; 6018 } 6019 6020 .product-tabs__tab.is-active::after { 6021 background-color: #000000; 6022 } 6023 6024 .product-tabs__content { 6025 position: relative; 6026 overflow: hidden; 6027 } 6028 6029 .product-tabs__panel { 6030 display: none; 6031 padding-top: 1.5rem; 6032 animation: fadeSlideIn 0.4s ease forwards; 6033 } 6034 6035 .product-tabs__panel.is-active { 6036 display: block; 6037 } 6038 6039 @keyframes fadeSlideIn { 6040 from { 6041 opacity: 0; 6042 transform: translateY(10px); 6043 } 6044 to { 6045 opacity: 1; 6046 transform: translateY(0); 6047 } 6048 } 6049 6050 .product-tabs__section { 6051 margin-bottom: 1rem; 6052 } 6053 6054 .product-tabs__section:last-child { 6055 margin-bottom: 0; 6056 } 6057 6058 .product-tabs__panel-content, 6059 .product-tabs__info-grid { 6060 margin-left: 0.2rem; 6061 } 6062 6063 .product-tabs__section .h4 { 6064 font-size: 1rem; 6065 font-weight: 600; 6066 margin-bottom: 1rem; 6067 color: rgb(var(--text-color)); 6068 text-transform: uppercase; 6069 letter-spacing: 0.05em; 6070 } 6071 6072 .product-tabs__section .rte { 6073 font-size: 0.9rem; 6074 line-height: 1.7; 6075 color: rgb(var(--text-color) / 0.85); 6076 } 6077 6078 .product-tabs__list { 6079 list-style: none; 6080 padding: 0; 6081 margin: 0; 6082 display: flex; 6083 flex-wrap: wrap; 6084 gap: 0.75rem; 6085 } 6086 6087 .product-tabs__list-item { 6088 display: flex; 6089 align-items: center; 6090 padding-right: 0.5rem; 6091 background: white; 6092 border-radius: 6px; 6093 font-size: 0.875rem; 6094 line-height: 1.5; 6095 transition: background-color 0.2s ease; 6096 width: fit-content; 6097 } 6098 6099 .product-tabs__list-item-image, 6100 .product-tabs__list-item-image img { 6101 width: 44px; 6102 height: 44px; 6103 margin-right: 0.6rem; 6104 flex-shrink: 0; 6105 object-fit: contain; 6106 } 6107 6108 .product-tabs__info-grid { 6109 gap: 0.3rem; 6110 display: flex; 6111 flex-direction: column; 6112 } 6113 6114 .product-tabs__info-item { 6115 display: flex; 6116 flex-direction: row; 6117 gap: 0.5rem; 6118 align-items: center; 6119 } 6120 6121 .product-tabs__info-label { 6122 font-weight: 600; 6123 font-size: 0.875rem; 6124 } 6125 6126 .product-tabs__info-value { 6127 font-size: 0.875rem; 6128 line-height: 1.6; 6129 } 6130 6131 .product-tabs__certification { 6132 display: flex; 6133 align-items: center; 6134 flex-wrap: wrap; 6135 gap: 1rem; 6136 margin-top: 0.5rem; 6137 } 6138 6139 .product-tabs__certification-icons { 6140 display: flex; 6141 gap: 0.2rem; 6142 } 6143 6144 .product-tabs__certification-icons img { 6145 display: block; 6146 object-fit: contain; 6147 max-height: 30px; 6148 } 6149 6150 .product-tabs__certification-text { 6151 line-height: 1.5; 6152 flex: 1; 6153 min-width: 200px; 6154 } 6155 6156 /* Read More Styles */ 6157 .product-tabs__description-wrapper { 6158 position: relative; 6159 } 6160 6161 .product-tabs__description-content { 6162 overflow: hidden; 6163 font-size: 0.875rem; 6164 transition: max-height 0.4s ease; 6165 } 6166 6167 .product-tabs__description-content ul { 6168 list-style: none; 6169 padding-left: 0; 6170 margin: 0; 6171 } 6172 6173 .product-tabs__description-content ul li { 6174 position: relative; 6175 padding-left: 1.3rem; 6176 margin-bottom: 0.5rem; 6177 } 6178 6179 .product-tabs__description-content ul li::before { 6180 content: ''; 6181 position: absolute; 6182 left: 0; 6183 top: 0.3rem; 6184 width: 12px; 6185 height: 12px; 6186 background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M0.353516 6.26172L4.85352 10.7617L11.3535 0.261719' stroke='%23303030' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); 6187 background-repeat: no-repeat; 6188 background-size: contain; 6189 } 6190 6191 .product-tabs__read-more { 6192 display: inline-flex; 6193 align-items: center; 6194 gap: 0.5rem; 6195 padding: 0.3rem 0; 6196 background: none; 6197 border: none; 6198 font-family: var(--text-font-family); 6199 font-size: 0.875rem; 6200 font-weight: 600; 6201 color: rgb(var(--text-color)); 6202 cursor: pointer; 6203 text-decoration: underline; 6204 text-transform: uppercase; 6205 letter-spacing: 0.05em; 6206 transition: opacity 0.2s ease; 6207 } 6208 6209 .product-tabs__read-more:hover { 6210 opacity: 0.7; 6211 } 6212 6213 .product-tabs__read-more-icon { 6214 transition: transform 0.3s ease; 6215 font-size: 0.75rem; 6216 } 6217 6218 .product-tabs__read-more.is-expanded .product-tabs__read-more-icon { 6219 transform: rotate(180deg); 6220 } 6221 6222 @media (max-width: 768px) { 6223 .product-tabs { 6224 padding: 1.5rem 1rem; 6225 } 6226 6227 .product-tabs__header { 6228 gap: 1.5rem; 6229 } 6230 6231 .product-tabs__tab { 6232 padding: 1rem 1rem; 6233 padding-bottom: 0.5rem; 6234 font-size: 0.9rem; 6235 } 6236 6237 .product-tabs__panel { 6238 padding-top: 1.5rem; 6239 } 6240 6241 .product-tabs__info-grid { 6242 grid-template-columns: 1fr; 6243 } 6244 6245 .product-tabs__list { 6246 gap: 0.5rem; 6247 } 6248 6249 .product-tabs__list-item { 6250 font-size: 0.8rem; 6251 padding: 0.6rem 0.75rem; 6252 } 6253 } 6254 } 6255</style> 6256 6257<product-tabs class="product-tabs" data-product-tabs> 6258 <div class="product-tabs__nav" data-tabs-nav> 6259 <button 6260 type="button" 6261 class="product-tabs__nav-arrow product-tabs__nav-arrow--prev" 6262 data-tabs-scroll="prev" 6263 aria-hidden="true" 6264 tabindex="-1" 6265 >
6265<svg aria-hidden="true" focusable="false" width="9" class="icon icon-chevron-right" part="icon" viewBox="0 0 9 10"> 6266 <path fill="none" stroke="currentColor" stroke-width="1.5" d="m2.5 9 4-4-4-4"/> 6267 </svg></button> 6268 6269 <div class="product-tabs__header" role="tablist" data-tabs-list> 6270 <button 6271 type="button" 6272 class="product-tabs__tab is-active" 6273 id="tab-description-description_tabs_Fg3jNN" 6274 role="tab" 6275 aria-selected="true" 6276 aria-controls="tab-panel-description-description_tabs_Fg3jNN" 6277 data-tab-button="description" 6278 > 6279 Description 6280 </button></div> 6281 6282 <button 6283 type="button" 6284 class="product-tabs__nav-arrow product-tabs__nav-arrow--next" 6285 data-tabs-scroll="next" 6286 aria-hidden="true" 6287 tabindex="-1" 6288 ><svg aria-hidden="true" focusable="false" width="9" class="icon icon-chevron-right" part="icon" viewBox="0 0 9 10"> 6289 <path fill="none" stroke="currentColor" stroke-width="1.5" d="m2.5 9 4-4-4-4"/> 6290 </svg></button> 6291 </div> 6292 6293 <div class="product-tabs__content"><div 6294 class="product-tabs__panel is-active" 6295 role="tabpanel" 6296 id="tab-panel-description-description_tabs_Fg3jNN" 6297 aria-labelledby="tab-description-description_tabs_Fg3jNN" 6298 data-tab-panel="description" 6299 ><div class="product-tabs__description-wrapper"> 6300 <div class="product-tabs__description-content rte"> 6301 <ul><li>24 surprises à découvrir</li><li>Assortiment de thés et infusions variés</li><li>Gourmandise et accessoire</li></ul> 6302 </div> 6303 <a href="#description" class="product-tabs__read-more"> 6304 <span>Voir plus</span> 6305 </a> 6306 </div><div class="product-tabs__certification"><div class="product-tabs__certification-icons"><img 6307 src="//www.kusmitea.com/cdn/shop/files/logoeuropeenpantoneAB_1.png?v=1762966936&width=60" 6308 alt="Certification" 6309 width="44" 6310 height="30" 6311 loading="lazy" 6312 ><img 6313 src="//www.kusmitea.com/cdn/shop/files/AB_HD-847x1024.jpg?v=1773766324&width=60" 6314 alt="Certification" 6315 width="25" 6316 height="30" 6317 loading="lazy" 6318 ></div><div class="product-tabs__certification-text text-sm"> 6319 Tous nos thés sont certifiés bio et fabriqués de façon responsable. 6320 </div></div></div></div> 6321</product-tabs> 6322
6323<script> 6324 (function () { 6325 'use strict'; 6326 6327 if (window.customElements.get('product-tabs')) { 6328 return; 6329 } 6330 6331 // Le filet gris sous le dernier onglet déborde de quelques pixels : on ignore 6332 // cette marge pour ne pas croire à un débordement inexistant. 6333 const EDGE_TOLERANCE = 4; 6334 6335 class ProductTabs extends HTMLElement { 6336 connectedCallback() { 6337 if (this.initialized) { 6338 return; 6339 } 6340 6341 // Le composant peut être mis à niveau avant que ses enfants soient analysés. 6342 if (!this.querySelector('[data-tabs-list]')) { 6343 document.addEventListener('DOMContentLoaded', () => this.connectedCallback(), { once: true }); 6344 return; 6345 } 6346 6347 this.initialized = true; 6348 this.list = this.querySelector('[data-tabs-list]'); 6349 this.nav = this.querySelector('[data-tabs-nav]'); 6350 this.tabs = Array.from(this.querySelectorAll('[data-tab-button]')); 6351 this.panels = Array.from(this.querySelectorAll('[data-tab-panel]')); 6352 6353 if (this.tabs.length === 0) { 6354 return; 6355 } 6356 6357 this.abortController = new AbortController(); 6358 const signal = this.abortController.signal; 6359
6360 this.tabs.forEach((tab) => { 6361 tab.tabIndex = tab.classList.contains('is-active') ? 0 : -1; 6362 tab.addEventListener('click', () => this.activate(tab), { signal }); 6363 }); 6364 6365 this.querySelectorAll('[data-tabs-scroll]').forEach((button) => { 6366 button.addEventListener( 6367 'click', 6368 () => this.scrollByPage(button.getAttribute('data-tabs-scroll') === 'prev' ? -1 : 1), 6369 { signal } 6370 ); 6371 }); 6372 6373 this.list.addEventListener('keydown', (event) => this.onKeydown(event), { signal }); 6374 this.list.addEventListener('wheel', (event) => this.onWheel(event), { signal, passive: false }); 6375 this.list.addEventListener('scroll', () => this.refreshOverflow(), { signal, passive: true }); 6376 6377 if ('ResizeObserver' in window) { 6378 this.resizeObserver = new ResizeObserver(() => this.refreshOverflow()); 6379 this.resizeObserver.observe(this.list); 6380 } 6381 6382 if (document.fonts && document.fonts.ready) { 6383 document.fonts.ready.then(() => this.refreshOverflow()); 6384 } 6385 6386 this.refreshOverflow(); 6387 } 6388 6389 disconnectedCallback() { 6390 if (this.abortController) { 6391 this.abortController.abort(); 6392 } 6393 6394 if (this.resizeObserver) { 6395 this.resizeObserver.disconnect(); 6396 } 6397 6398 this.initialized = false; 6399 } 6400 6401 get maxScroll() { 6402 return Math.max(0, this.list.scrollWidth - this.list.clientWidth); 6403 } 6404 6405 activate(tab) { 6406 const target = tab.getAttribute('data-tab-button'); 6407
6408 this.tabs.forEach((button) => { 6409 const isActive = button === tab; 6410 button.classList.toggle('is-active', isActive); 6411 button.setAttribute('aria-selected', isActive ? 'true' : 'false'); 6412 button.tabIndex = isActive ? 0 : -1; 6413 }); 6414 6415 this.panels.forEach((panel) => panel.classList.remove('is-active')); 6416 6417 const activePanel = this.panels.find((panel) => panel.getAttribute('data-tab-panel') === target); 6418 6419 if (activePanel) { 6420 // Force le reflow pour relancer l'animation 6421 void activePanel.offsetWidth; 6422 activePanel.classList.add('is-active'); 6423 } 6424 6425 this.revealTab(tab); 6426 } 6427 6428 /** 6429 * à la souris, le geste vertical fait défiler la barre horizontalement. 6430 * Une fois le bord atteint, l'événement repart à la page pour ne pas 6431 * bloquer le défilement vertical. 6432 */ 6433 onWheel(event) { 6434 if (event.ctrlKey || Math.abs(event.deltaX) > Math.abs(event.deltaY)) { 6435 return; 6436 } 6437 6438 const max = this.maxScroll; 6439 6440 if (max <= EDGE_TOLERANCE) { 6441 return; 6442 } 6443 6444 let delta = event.deltaY; 6445 6446 if (event.deltaMode === 1) { 6447 delta *= 16; 6448 } else if (event.deltaMode === 2) { 6449 delta *= this.list.clientWidth; 6450 } 6451 6452 const position = Math.min(max, Math.max(0, this.list.scrollLeft + delta)); 6453 6454 if (Math.abs(position - this.list.scrollLeft) < 1) { 6455 return; 6456 } 6457 6458 event.preventDefault(); 6459 this.list.scrollLeft = position; 6460 } 6461 6462 onKeydown(event) { 6463 const index = this.tabs.indexOf(document.activeElement); 6464 6465 if (index === -1) { 6466 return; 6467 } 6468 6469 let next; 6470 6471 switch (event.key) { 6472 case 'ArrowRight': 6473 next = (index + 1) % this.tabs.length; 6474 break; 6475 case 'ArrowLeft': 6476 next = (index - 1 + this.tabs.length) % this.tabs.length; 6477 break; 6478 case 'Home': 6479 next = 0; 6480 break; 6481 case 'End': 6482 next = this.tabs.length - 1; 6483 break; 6484 default: 6485 return; 6486 } 6487 6488 event.preventDefault(); 6489 this.activate(this.tabs[next]); 6490 this.tabs[next].focus({ preventScroll: true }); 6491 } 6492 6493 scrollByPage(direction) { 6494 const amount = Math.max(120, this.list.clientWidth * 0.8); 6495 this.list.scrollBy({ left: amount * direction, behavior: 'smooth' }); 6496 } 6497 6498 revealTab(tab) { 6499 const margin = 24; 6500 const start = tab.offsetLeft; 6501 const end = start + tab.offsetWidth; 6502 const viewStart = this.list.scrollLeft; 6503 const viewEnd = viewStart + this.list.clientWidth; 6504 6505 if (start - margin < viewStart) { 6506 this.list.scrollTo({ left: Math.max(0, start - margin), behavior: 'smooth' }); 6507 } else if (end + margin > viewEnd) { 6508 this.list.scrollTo({ left: end + margin - this.list.clientWidth, behavior: 'smooth' }); 6509 } 6510 } 6511 6512 refreshOverflow() { 6513 if (!this.nav) { 6514 return; 6515 } 6516 6517 const max = this.maxScroll; 6518 const overflows = max > EDGE_TOLERANCE; 6519 const position = this.list.scrollLeft; 6520 6521 this.nav.classList.toggle('is-overflowing', overflows); 6522 this.nav.classList.toggle('is-scrollable-start', overflows && position > EDGE_TOLERANCE); 6523 this.nav.classList.toggle('is-scrollable-end', overflows && position < max - EDGE_TOLERANCE); 6524 } 6525 } 6526 6527 window.customElements.define('product-tabs', ProductTabs); 6528 })(); 6529</script>
6529 6530</div> 6531<div 6532 class="product-info__block-item" 6533 data-block-id="ATGloWW80c1FoWHNJM__biscuits_bundles_biscuits_bundle_form_9HPPrw-1" 6534 data-block-type="@app" 6535 6536 6537 6538 ><div id="shopify-block-ATGloWW80c1FoWHNJM__biscuits_bundles_biscuits_bundle_form_9HPPrw" class="shopify-block shopify-app-block"> 6539 6540 6541 6542 6543 6544 6545 </div></div> 6546<div 6547 class="product-info__block-item" 6548 data-block-id="variant_picker" 6549 data-block-type="variant-picker" 6550 6551 data-block-allow-rerender 6552 6553 6554 6555 6556 ></div> 6557<div 6558 class="product-info__block-item" 6559 data-block-id="delivery_estimate_XBmLL3" 6560 data-block-type="delivery-estimate" 6561 6562 6563 6564 6565 ><delivery-estimate 6566 class="inventory delivery-estimate--success justify-items-start" 6567 data-delivery-days="2" 6568 data-country-code="FR" 6569 data-variant-id="54133287780695" 6570 data-stock-status="in_stock" 6571 data-start-date="2026-10-01" 6572 data-low-threshold="20" 6573 data-estimated-delivery-text="Livraison estimée" 6574 data-out-of-stock-text="Rupture de stock" 6575 data-day-sunday="dimanche" 6576 data-day-monday="lundi" 6577 data-day-tuesday="mardi" 6578 data-day-wednesday="mercredi" 6579 data-day-thursday="jeudi" 6580 data-day-friday="vendredi" 6581 data-day-saturday="samedi"> 6582 <span class="inventory__text delivery-estimate__text-content"><span>Livraison estimée en cours de calcul...</span></span> 6583 </delivery-estimate> 6584 6585 <style> 6586 .delivery-estimate .inventory__text { 6587 color: rgb(0, 0, 0); 6588 font-size: 12px; 6589 } 6590 6591 .delivery-estimate .inventory__text:before { 6592 display: block; 6593 } 6594 6595 .delivery-estimate--success .inventory__text:before { 6596 background-color: #4CAF50 !important; 6597 background: #4CAF50 !important; 6598 } 6599 6600 .delivery-estimate--warning .inventory__text:before { 6601 background-color: #FF9800 !important; 6602 background: #FF9800 !important; 6603 } 6604 6605 .delivery-estimate--error .inventory__text:before { 6606 background-color: #F44336 !important; 6607 background: #F44336 !important; 6608 } 6609 6610 @media screen and (min-width: 700px) { 6611 .delivery-estimate .inventory__text { 6612 font-size: 14px; 6613 } 6614 } 6615 6616 .delivery-estimate__text-content { 6617 transition: opacity 0.3s ease, transform 0.3s ease; 6618 } 6619 6620 .delivery-estimate__text-content.fade-out { 6621 opacity: 0; 6622 transform: translateY(-10px); 6623 } 6624 6625 .delivery-estimate__text-content.fade-in { 6626 opacity: 1; 6627 transform: translateY(0); 6628 } 6629 6630 .delivery-estimate__text-content strong { 6631 font-weight: bold; 6632 } 6633 </style>
6633<script type="module"> 6634 (function() { 6635 // Ne charge le script que si le custom element n'existe pas déjà 6636 if (window.customElements.get('delivery-estimate')) { 6637 return; 6638 } 6639 6640 // Vérifie qu'on est sur une page produit (ou en mode design) 6641 if (!document.querySelector('form[id^="product-form"]') && !Shopify?.designMode) { 6642 return; 6643 } 6644 6645 let holidaysInstance = null; 6646 let holidaysPromise = null; 6647 6648 // Charge la librairie de manière lazy uniquement quand nécessaire 6649 async function loadHolidaysLibrary() { 6650 if (!holidaysPromise) { 6651 holidaysPromise = import("date-holidays"); 6652 } 6653 return holidaysPromise; 6654 } 6655 6656 async function calculateBusinessDays(startDate, businessDays, countryCode) { 6657 const HolidaysModule = await loadHolidaysLibrary(); 6658 const Holidays = HolidaysModule.default; 6659 6660 if (!holidaysInstance || holidaysInstance.country !== countryCode) { 6661 holidaysInstance = new Holidays(countryCode); 6662 } 6663 6664 let currentDate = new Date(startDate); 6665 let daysAdded = 0; 6666 6667 while (daysAdded < businessDays) { 6668 currentDate.setDate(currentDate.getDate() + 1); 6669 const dayOfWeek = currentDate.getDay(); 6670 const isWeekend = dayOfWeek === 0 || dayOfWeek === 6; 6671 const isHoliday = holidaysInstance.isHoliday(currentDate); 6672 6673 if (!isWeekend && !isHoliday) { 6674 daysAdded++; 6675 } 6676 } 6677 6678 return currentDate; 6679 } 6680 6681 function formatDeliveryDate(date, element) { 6682 const days = [ 6683 element.getAttribute('data-day-sunday'), 6684 element.getAttribute('data-day-monday'), 6685 element.getAttribute('data-day-tuesday'), 6686 element.getAttribute('data-day-wednesday'), 6687 element.getAttribute('data-day-thursday'), 6688 element.getAttribute('data-day-friday'), 6689 element.getAttribute('data-day-saturday') 6690 ]; 6691 6692 const dayName = days[date.getDay()]; 6693 const day = String(date.getDate()).padStart(2, '0');
6694 const month = String(date.getMonth() + 1).padStart(2, '0'); 6695 const year = date.getFullYear(); 6696 6697 return `${dayName} ${day}/${month}/${year}`; 6698 } 6699 6700 async function updateDeliveryDate(element) { 6701 const deliveryDays = parseInt(element.getAttribute('data-delivery-days')) || 0; 6702 const countryCode = element.getAttribute('data-country-code') || 'FR'; 6703 const stockStatus = element.getAttribute('data-stock-status'); 6704 const startDate = element.getAttribute('data-start-date'); 6705 6706 if (stockStatus === 'out_of_stock' || !startDate || deliveryDays === 0) { 6707 const outOfStockText = element.getAttribute('data-out-of-stock-text'); 6708 const textElement = element.querySelector('.inventory__text'); 6709 6710 if (textElement && outOfStockText) { 6711 textElement.classList.add('fade-out'); 6712 setTimeout(() => { 6713 textElement.innerHTML = `<span>${outOfStockText}</span>`; 6714 textElement.classList.remove('fade-out'); 6715 textElement.classList.add('fade-in'); 6716 setTimeout(() => { 6717 textElement.classList.remove('fade-in'); 6718 }, 300); 6719 }, 300); 6720 } 6721 6722 element.hidden = false; 6723 return; 6724 } 6725 6726 // Pour le stock faible, on calcule quand même la date (c'est juste la couleur qui change) 6727 6728 try { 6729 const deliveryDate = await calculateBusinessDays(startDate, deliveryDays, countryCode); 6730 const formattedDate = formatDeliveryDate(deliveryDate, element); 6731 const estimatedDeliveryText = element.getAttribute('data-estimated-delivery-text'); 6732 const textElement = element.querySelector('.inventory__text'); 6733 6734 if (textElement) { 6735 // Animation : fade out l'ancien texte 6736 textElement.classList.add('fade-out'); 6737 6738 // Après l'animation, remplacer le texte et fade in 6739 setTimeout(() => { 6740 textElement.innerHTML = `<span>${estimatedDeliveryText} <strong>${formattedDate}</strong></span>`; 6741 textElement.classList.remove('fade-out'); 6742 textElement.classList.add('fade-in'); 6743 6744 // Retirer fade-in après l'animation pour permettre les futures animations 6745 setTimeout(() => { 6746 textElement.classList.remove('fade-in'); 6747 }, 300); 6748 }, 300); 6749 } 6750 6751 element.hidden = false; 6752 } catch (error) { 6753 console.error('Error calculating delivery date:', error); 6754 element.hidden = true; 6755 } 6756 } 6757 6758 async function onVariantChange(event, element) { 6759 const variant = event.detail?.variant; 6760 if (!variant) { 6761 return; 6762 } 6763 6764 const lowThreshold = parseInt(element.getAttribute('data-low-threshold')) || 0; 6765 let stockStatus; 6766 6767 if (variant.available) { 6768 if (variant.inventory_management && variant.inventory_policy === 'deny' && variant.inventory_quantity <= lowThreshold && lowThreshold > 0) { 6769 stockStatus = 'low_stock'; 6770 } else { 6771 stockStatus = 'in_stock'; 6772 } 6773 } else if (variant.incoming && variant.next_incoming_date) { 6774 stockStatus = 'incoming'; 6775 } else { 6776 stockStatus = 'out_of_stock'; 6777 } 6778 6779 const startDate = (stockStatus === 'in_stock' || stockStatus === 'low_stock') 6780 ? new Date().toISOString().split('T')[0] 6781 : (variant.next_incoming_date 6782 ? new Date(variant.next_incoming_date).toISOString().split('T')[0] 6783 : null); 6784 6785 // Mettre à jour la classe de couleur selon le statut 6786 element.classList.remove('delivery-estimate--success', 'delivery-estimate--warning', 'delivery-estimate--error'); 6787 if (stockStatus === 'in_stock') { 6788 element.classList.add('delivery-estimate--success'); 6789 } else if (stockStatus === 'low_stock' || stockStatus === 'incoming') { 6790 element.classList.add('delivery-estimate--warning'); 6791 } else { 6792 element.classList.add('delivery-estimate--error'); 6793 } 6794 6795 element.setAttribute('data-stock-status', stockStatus); 6796 if (startDate) { 6797 element.setAttribute('data-start-date', startDate); 6798 } 6799 element.setAttribute('data-variant-id', variant.id?.toString() || ''); 6800 6801 await updateDeliveryDate(element); 6802 } 6803 6804 class DeliveryEstimate extends HTMLElement { 6805 constructor() { 6806 super(); 6807 this._abortController = null; 6808 } 6809 6810 async connectedCallback() { 6811 this._abortController = new AbortController(); 6812 const form = this.closest('form'); 6813 6814 if (form) { 6815 form.addEventListener('variant:change', (event) => { 6816 onVariantChange(event, this); 6817 }, { signal: this._abortController.signal }); 6818 } 6819 6820 await updateDeliveryDate(this); 6821 } 6822 6823 disconnectedCallback() { 6824 this._abortController?.abort(); 6825 } 6826 } 6827 6828 window.customElements.define('delivery-estimate', DeliveryEstimate); 6829 })(); 6830 </script>
6830</div> 6831<div 6832 class="product-info__block-item" 6833 data-block-id="buy_buttons" 6834 data-block-type="buy-buttons" 6835 6836 data-block-allow-rerender 6837 6838 6839 6840 6841 ><div data-sample-hidden ><product-form class=""><form method="post" action="/cart/add" id="product-form-main-11020345999703-template--26884129882455__main" accept-charset="UTF-8" class="shopify-product-form" enctype="multipart/form-data"><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="â" /><input type="hidden" name="id" value="54133287780695"> 6842 6843 <div class="v-stack gap-4"><div class="v-stack gap-2"> 6844 <buy-buttons 6845 class="buy-buttons " 6846 form="product-form-main-11020345999703-template--26884129882455__main" 6847 > 6848 <div class="v-stack gap-2 buy-buttons__content"><div class="buy-buttons__quantity-selector h-stack gap-2"><quantity-selector class="quantity-selector " ><button type="button" class="quantity-selector__button" disabled> 6849 <span class="sr-only">Diminuer la quantité</span><svg aria-hidden="true" focusable="false" width="8" fill="none" class="icon icon-quantity-minus" part="icon" viewBox="0 0 8 2"> 6850 <path d="M0 1H8" stroke="currentColor" stroke-width="1.5"/> 6851 </svg></button><quantity-input class="contents"> 6852 <input class="quantity-selector__input subheading" type="number" value="1" name="quantity" inputmode="numeric" step="1" min="1" max="7199" form="product-form-main-11020345999703-template--26884129882455__main" aria-label="Changer la quantité"></quantity-input><button type="button" class="quantity-selector__button" > 6853 <span class="sr-only">Augmenter la quantité</span><svg aria-hidden="true" focusable="false" width="8" fill="none" class="icon icon-quantity-plus" part="icon" viewBox="0 0 8 8"> 6854 <path d="M0 4H8" stroke="currentColor" stroke-width="1.5"/> 6855 <path d="M4 0V8" stroke="currentColor" stroke-width="1.5"/> 6856 </svg></button></quantity-selector> 6857 6858�<button type="submit" class="product-atc-button button w-full" ><button-content class="button__content" > 6859 <span class="button__text-wrapper"><span>Ajouter au panier</span><span class="button__price">38,90 â¬</span><span class="button__arrow"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> 6860<path d="M4 12.6667L12.6666 4M12.6666 4V12.32M12.6666 4H4.34667" stroke="#FBFBF6" stroke-linecap="round" stroke-linejoin="round"/> 6861</svg> 6862</span></span></button-content></button> 6863</div></div> 6864 </buy-buttons> 6865 </div> 6866 </div><input type="hidden" name="product-id" value="11020345999703" /><input type="hidden" name="section-id" value="template--26884129882455__main" /></form> 6867<x-modal id="product-form-main-11020345999703-template--26884129882455__main-bis-modal" append-to-body class="modal modal--md color-scheme color-scheme--scheme-2"> 6868 <back-in-stock-form 6869 class="back-in-stock" 6870 data-endpoint="/apps/back-in-stock" 6871 data-market-id="gid://shopify/Market/102924747095" 6872 data-locale="fr" 6873 data-variant-id="gid://shopify/ProductVariant/54133287780695" 6874 data-product-id="gid://shopify/Product/11020345999703" 6875 data-form-id="product-form-main-11020345999703-template--26884129882455__main" auto-open-delay="3" auto-open-utm-sources="meta,facebook,instagram,fb,ig" 6876 > 6877 <form class="back-in-stock__form v-stack gap-6" novalidate> 6878 <div class="back-in-stock__heading prose text-center v-stack gap-2"> 6879 <p class="h4">Ne manquez pas le Calendrier de lâAvent 2026</p> 6880 <p class="text-subdued">Inscrivez-vous pour recevoir une notification par e-mail dès quâil sera disponible</p> 6881 </div> 6882 6883 <div class="back-in-stock__field form-control"> 6884 <input 6885 id="bis-email-product-form-main-11020345999703-template--26884129882455__main" 6886 class="input" 6887 type="email" 6888 name="email" 6889 pattern="[a-zA-Z0-9._%+\-]+@[a-zA-Z0-9.\-]+\.[a-zA-Z]{2,}" 6890 autocomplete="email" 6891 placeholder=" " 6892 required 6893 value="" 6894 > 6895 <label for="bis-email-product-form-main-11020345999703-template--26884129882455__main" class="floating-label">Adresse e-mail</label> 6896 </div> 6897 6898 6899 <div aria-hidden="true" style="position:absolute;
6899left:-9999px;width:1px;height:1px;overflow:hidden;" tabindex="-1"> 6900 <label>Ne pas remplir 6901 <input type="text" name="hp_field" tabindex="-1" autocomplete="off"> 6902 </label> 6903 </div> 6904 6905 6906 <div 6907 class="cf-turnstile back-in-stock__turnstile" 6908 data-sitekey="0x4AAAAAADKgd1uK-GvcUj6H" 6909 data-action="back-in-stock" 6910 data-theme="auto" 6911 data-size="flexible" 6912 data-language="fr" 6913 ></div>�<button type="submit" class="back-in-stock__submit button w-full" ><button-content class="button__content" > 6914 <span class="button__text-wrapper">Sâinscrire<span class="button__arrow"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> 6915<path d="M4 12.6667L12.6666 4M12.6666 4V12.32M12.6666 4H4.34667" stroke="#FBFBF6" stroke-linecap="round" stroke-linejoin="round"/> 6916</svg> 6917</span></span></button-content></button><p class="back-in-stock__feedback text-sm text-center" role="status" hidden></p> 6918 </form> 6919 </back-in-stock-form> 6920</x-modal> 6921
6922<script> 6923 // Charge l'API Turnstile une seule fois pour toute la page en mode EXPLICITE. 6924 // L'auto-scan ne fonctionne pas pour les widgets dans des modales cachées. 6925 if (!document.getElementById('cf-turnstile-api')) { 6926 window.onloadTurnstileCallback = function () { 6927 document.dispatchEvent(new CustomEvent('turnstile:loaded')); 6928 }; 6929 var turnstileScript = document.createElement('script'); 6930 turnstileScript.id = 'cf-turnstile-api'; 6931 turnstileScript.src = 'https://challenges.cloudflare.com/turnstile/v0/api.js?onload=onloadTurnstileCallback&render=explicit'; 6932 turnstileScript.async = true; 6933 turnstileScript.defer = true; 6934 document.head.appendChild(turnstileScript); 6935 } 6936</script>
6936 6937
6938<script> 6939 if (!customElements.get('back-in-stock-form')) { 6940 customElements.define('back-in-stock-form', class extends HTMLElement { 6941 connectedCallback() { 6942 // Init "une seule fois" : refs, handlers, listeners qui suivent l'élément 6943 if (!this._initialized) { 6944 this._initialized = true; 6945 6946 this.form = this.querySelector('form'); 6947 this.feedbackEl = this.querySelector('.back-in-stock__feedback'); 6948 this.submitBtn = this.querySelector('.back-in-stock__submit'); 6949 this.emailInput = this.form.elements.email; 6950 this.honeypot = this.form.elements.hp_field; 6951 this.turnstileEl = this.querySelector('.cf-turnstile'); 6952 this.turnstileWidgetId = null; 6953 6954 this.onSubmit = this.onSubmit.bind(this); 6955 this.onVariantChange = this.onVariantChange.bind(this); 6956 this.renderTurnstile = this.renderTurnstile.bind(this); 6957 this.resetTurnstileWidget = this.resetTurnstileWidget.bind(this); 6958 6959 this.form.addEventListener('submit', this.onSubmit); 6960 document.addEventListener('variant:change', this.onVariantChange); 6961 } 6962 6963 // à chaque (re)connexion (l'élément voyage entre product-form et body 6964 // à chaque ouverture/fermeture de modale via append-to-body), on 6965 // ré-attache les listeners de cycle de vie de la modale parente. 6966 this.attachModalListeners(); 6967 6968 // Après attachModalListeners : scheduleAutoOpen a besoin de _currentModal. 6969 if (!this._autoOpenScheduled) { 6970 this._autoOpenScheduled = true; 6971 this.scheduleAutoOpen(); 6972 } 6973 } 6974 6975 // Ouverture automatique de la modale N secondes après l'arrivée sur la 6976 // page (campagne acquisition). Pilotée par l'attribut auto-open-delay, 6977 // absent en design mode pour ne pas gêner l'éditeur de thème. 6978 scheduleAutoOpen() { 6979 var delay = parseInt(this.getAttribute('auto-open-delay') || 0, 10); 6980 if (!delay) return; 6981 6982 // Le snippet est rendu pour toutes les variantes, y compris disponibles 6983 // (cf. commentaire en tête de fichier) : sans bouton BIS dans la page, 6984 // le produit est achetable et la modale n'aurait aucun sens. 6985 if (!document.querySelector('.back-in-stock-trigger')) return; 6986 6987 // Réservé au trafic de campagne : l'URL d'arrivée doit porter l'un des 6988 // utm_source déclarés. Pas de persistance volontairement â un visiteur 6989 // qui revient par la navigation interne n'est plus sollicité. 6990 if (!this.matchesCampaignSource()) return; 6991 6992 // Une fois par session, et jamais pour un visiteur déjà inscrit. 6993 if (this.readFlag(sessionStorage, 'theme:bis-popup-appeared')) return; 6994 if (this.readFlag(localStorage, 'theme:bis-popup-filled')) return; 6995 6996 // On attend le CMP pour ne pas s'ouvrir par-dessus la bannière Didomi. 6997 this.whenConsentReady(function () { 6998 setTimeout(function () { 6999 // theme.js est un module différé : sur connexion lente, <x-modal> 7000 // peut ne pas encore être upgradé et show() ne pas exister. 7001 customElements.whenDefined('x-modal').then(this.openAutomatically.bind(this)); 7002 }.bind(this), delay * 1000); 7003 }.bind(this)); 7004 } 7005 7006 matchesCampaignSource() { 7007 var allowed = (this.getAttribute('auto-open-utm-sources') || '').trim(); 7008 if (!allowed) return true; // pas de restriction déclarée 7009 7010 var source = ''; 7011 try { 7012 source = (new URLSearchParams(window.location.search).get('utm_source') || '').toLowerCase(); 7013 } catch (_) { 7014 return false; 7015 } 7016 if (!source) return false; 7017 7018 return allowed.toLowerCase().split(',').some(function (candidate) { 7019 return candidate.trim() === source; 7020 }); 7021 } 7022 7023 // Le SDK Didomi n'est chargé qu'à la première interaction du visiteur 7024 // (mousemove / touchstart, cf. snippets/defer-app-embeds.liquid) : 7025 // didomiOnReady peut donc ne jamais se déclencher. Le fallback évite de 7026 // perdre définitivement l'ouverture dans ce cas â sans bannière affichée, 7027 // il n'y a de toute façon rien à recouvrir. 7028 whenConsentReady(callback) { 7029 var done = false;
7030 7031 function run() { 7032 if (done) return; 7033 done = true; 7034 clearTimeout(fallback); 7035 callback(); 7036 } 7037 7038 var fallback = setTimeout(run, 8000); 7039 7040 window.didomiOnReady = window.didomiOnReady || []; 7041 window.didomiOnReady.push(run); 7042 } 7043 7044 openAutomatically() { 7045 var modal = this._currentModal || this.closest('x-modal'); 7046 if (!modal || typeof modal.show !== 'function' || modal.hasAttribute('open')) return; 7047 7048 // Une autre surface (panier, recherche, consentement) a pris la main 7049 // entre-temps : on ne l'écrase pas. 7050 if (document.querySelector('x-modal[open], x-drawer[open]')) return; 7051 7052 this.writeFlag(sessionStorage, 'theme:bis-popup-appeared'); 7053 modal.show(); 7054 } 7055 7056 readFlag(store, key) { 7057 try { 7058 return store.getItem(key) === 'true'; 7059 } catch (_) { 7060 return false; 7061 } 7062 } 7063 7064 writeFlag(store, key) { 7065 try { 7066 store.setItem(key, 'true'); 7067 } catch (_) {} 7068 } 7069 7070 attachModalListeners() { 7071 var modal = this.closest('x-modal'); 7072 if (!modal || this._currentModal === modal) return; 7073 7074 // Si on était attaché à une autre instance, on nettoie 7075 if (this._currentModal && this._modalShowHandler) { 7076 this._currentModal.removeEventListener('dialog:after-show', this._modalShowHandler); 7077 this._currentModal.removeEventListener('dialog:after-hide', this._modalHideHandler); 7078 } 7079 7080 this._currentModal = modal; 7081 this._modalShowHandler = this.renderTurnstile; 7082 this._modalHideHandler = this.resetTurnstileWidget; 7083 7084 modal.addEventListener('dialog:after-show', this._modalShowHandler); 7085 modal.addEventListener('dialog:after-hide', this._modalHideHandler); 7086 } 7087 7088 disconnectedCallback() { 7089 // On reporte le check au prochain microtask : si c'est un simple 7090 // déplacement (modal append-to-body), l'élément sera reconnecté 7091 // dans le même tick et on ne nettoie rien. 7092 queueMicrotask(() => { 7093 if (!this.isConnected) { 7094 document.removeEventListener('variant:change', this.onVariantChange); 7095 if (this._currentModal && this._modalShowHandler) { 7096 this._currentModal.removeEventListener('dialog:after-show', this._modalShowHandler); 7097 this._currentModal.removeEventListener('dialog:after-hide', this._modalHideHandler); 7098 this._currentModal = null; 7099 } 7100 this.resetTurnstileWidget(); 7101 } 7102 }); 7103 } 7104 7105 onVariantChange(event) { 7106 var variant = event && event.detail && event.detail.variant; 7107 if (!variant) return; 7108 7109 var newVariantId = 'gid://shopify/ProductVariant/' + variant.id; 7110 if (this.dataset.variantId === newVariantId) return; 7111 7112 this.dataset.variantId = newVariantId; 7113 7114 if (this.classList.contains('back-in-stock--submitted')) { 7115 this.resetSubmittedState(); 7116 } 7117 this.setFeedback('', null); 7118 7119 if (window.turnstile && this.turnstileWidgetId !== null) { 7120 try { window.turnstile.reset(this.turnstileWidgetId); } catch (_) {} 7121 } 7122 } 7123 7124 renderTurnstile() { 7125 if (this.turnstileWidgetId !== null) return; // déjà rendu, l'utilisateur n'a qu'à revalider 7126 if (!this.turnstileEl) return; 7127 7128 if (!window.turnstile) { 7129 // API pas encore chargée, on retentera après l'event de chargement 7130 document.addEventListener('turnstile:loaded', this.renderTurnstile, { once: true }); 7131 return; 7132 } 7133 7134 var el = this.turnstileEl; 7135 this.turnstileWidgetId = window.turnstile.render(el, { 7136 sitekey: el.dataset.sitekey, 7137 action: el.dataset.action || 'back-in-stock', 7138 theme: el.dataset.theme || 'auto', 7139 size: el.dataset.size || 'flexible', 7140 language: el.dataset.language 7141 }); 7142 } 7143 7144 getTurnstileToken() { 7145 if (window.turnstile && this.turnstileWidgetId !== null) { 7146 return window.turnstile.getResponse(this.turnstileWidgetId) || ''; 7147 } 7148 // Fallback : lire l'input caché injecté par CF si on n'a pas l'id widget 7149 var input = this.form.querySelector('[name="cf-turnstile-response"]'); 7150 return input ? input.value : ''; 7151 } 7152 7153 resetTurnstileWidget() { 7154 // Détruit complètement le widget pour repartir d'un état propre 7155 // à la prochaine ouverture. Sinon un token expiré peut traîner. 7156 if (window.turnstile && this.turnstileWidgetId !== null) { 7157 try { window.turnstile.remove(this.turnstileWidgetId); } catch (_) {} 7158 this.turnstileWidgetId = null; 7159 } 7160 } 7161 7162 showSuccessState() { 7163 var heading = this.querySelector('.back-in-stock__heading'); 7164 if (heading) heading.hidden = true; 7165 7166 var emailField = this.querySelector('.back-in-stock__field'); 7167 if (emailField) emailField.hidden = true; 7168 7169 if (this.turnstileEl) this.turnstileEl.hidden = true; 7170 7171 if (this.submitBtn) this.submitBtn.hidden = true; 7172 7173 this.setFeedback( 7174 "Merci ! Votre inscription a bien été prise en compte.", 7175 'success' 7176); 7177 7178 this.classList.add('back-in-stock--submitted'); 7179 7180 // Un visiteur inscrit ne doit plus voir l'ouverture automatique. 7181 this.writeFlag(localStorage, 'theme:bis-popup-filled'); 7182 } 7183 7184 resetSubmittedState() { 7185 // Restaure l'état initial du formulaire si l'utilisateur revient
7186 // après une inscription réussie (changement de variant par exemple) 7187 var heading = this.querySelector('.back-in-stock__heading'); 7188 if (heading) heading.hidden = false; 7189 7190 var emailField = this.querySelector('.back-in-stock__field'); 7191 if (emailField) emailField.hidden = false; 7192 7193 if (this.turnstileEl) this.turnstileEl.hidden = false; 7194 if (this.submitBtn) this.submitBtn.hidden = false; 7195 7196 this.setFeedback('', null); 7197 this.classList.remove('back-in-stock--submitted'); 7198 } 7199 7200 async onSubmit(event) { 7201 event.preventDefault(); 7202 7203 if (this.honeypot && this.honeypot.value) return; 7204 7205 if (!this.form.reportValidity()) return; 7206 7207 var token = this.getTurnstileToken(); 7208 7209 if (!token) { 7210 this.setFeedback("Veuillez patienter le temps de la vérification anti-robot.", 'error'); 7211 return; 7212 } 7213 7214 var payload = { 7215 event: 'back_in_stock/subscribe', 7216 email: this.emailInput.value.trim(), 7217 market_id: this.dataset.marketId, 7218 variant_id: this.dataset.variantId, 7219 locale: this.dataset.locale, 7220 turnstile_token: token 7221 }; 7222 7223 this.setLoading(true); 7224 this.setFeedback('', null); 7225 7226 try { 7227 var res = await fetch(this.dataset.endpoint, { 7228 method: 'POST', 7229 headers: { 7230 'Content-Type': 'application/json', 7231 'Accept': 'application/json' 7232 }, 7233 body: JSON.stringify(payload) 7234 }); 7235 if (!res.ok) throw new Error('HTTP ' + res.status); 7236 this.showSuccessState(); 7237 } catch (err) { 7238 console.error('[BIS] error:', err); 7239 this.setFeedback("Une erreur est survenue. Veuillez réessayer.", 'error'); 7240 } finally { 7241 // Sur erreur, on reset le widget pour permettre une nouvelle tentative 7242 // Sur succès, le widget est masqué + sera détruit à la prochaine fermeture 7243 if (!this.classList.contains('back-in-stock--submitted')) { 7244 if (window.turnstile && this.turnstileWidgetId !== null) { 7245 try { window.turnstile.reset(this.turnstileWidgetId); } catch (_) {} 7246 } 7247 } 7248 this.setLoading(false); 7249 } 7250 } 7251 7252 setLoading(isLoading) { 7253 this.submitBtn.disabled = isLoading; 7254 } 7255 7256 setFeedback(message, type) { 7257 if (!message) { 7258 this.feedbackEl.hidden = true; 7259 this.feedbackEl.textContent = ''; 7260 this.feedbackEl.classList.remove('is-success', 'is-error'); 7261 return; 7262 } 7263 this.feedbackEl.hidden = false; 7264 this.feedbackEl.innerHTML = message; 7265 this.feedbackEl.classList.toggle('is-success', type === 'success'); 7266 this.feedbackEl.classList.toggle('is-error', type === 'error'); 7267 } 7268 }); 7269 } 7270</script>
7270 7271 7272<style> 7273 .back-in-stock--submitted .back-in-stock__feedback { 7274 font-size: 1rem; 7275 padding: 2rem 1rem; 7276 position: relative; 7277 } 7278 7279 .back-in-stock--submitted .back-in-stock__feedback::before { 7280 content: "â"; 7281 display: block; 7282 font-size: 3rem; 7283 color: var(--color-success, #168342); 7284 margin-bottom: 1rem; 7285 line-height: 1; 7286 } 7287</style></product-form> 7288 7289
7289<script> 7290 (function () { 7291 var form = document.getElementById('product-form-main-11020345999703-template--26884129882455__main'); 7292 if (!form) return; 7293 form.addEventListener('variant:change', function (event) { 7294 var productForm = form.closest('product-form'); 7295 if (!productForm) return; 7296 if (event.detail.variant && event.detail.variant.available) { 7297 productForm.classList.remove('product-form--sold-out'); 7298 } else { 7299 productForm.classList.add('product-form--sold-out'); 7300 } 7301 }); 7302 })(); 7303 </script>
7303</div></div> 7304<div 7305 class="product-info__block-item" 7306 data-block-id="AYTRBSkVveTlEckV3N__join_stories_widget_integration_YBMAzm-1" 7307 data-block-type="@app" 7308 7309 7310 7311 ><div id="shopify-block-AYTRBSkVveTlEckV3N__join_stories_widget_integration_YBMAzm" class="shopify-block shopify-app-block"> 7312 7313 7314 7315 7316 7317 7318 7319 7320 7321 7322 7323 <!-- BEGIN app snippet: placeholder -->
7323<script> 7324 function sendAudienceData(a) { 7325 window.jDataLayer = window.jDataLayer || [], window.jDataLayer.push({ type: 'audience', data: a }); 7326 } 7327</script>
7327 7328<div id="widget-6531" style="display:block;"></div> 7329<style> 7330 #widget-6531 { 7331 margin: 5px 2px; 7332 min-height: ; 7333 width: 100%; 7334 } 7335 @media (min-aspect-ratio: 3/4) { 7336 #widget-6531 { 7337 min-height: ; 7338 } 7339 } 7340 7341</style><!-- END app snippet --> 7342
7342<script src="https://kusmi-tea.my.join-stories.com/widgets/21356A2500/index.js" 7343 data-join-widget-id="widget-6531" data-join-widget-alias="21356A2500" 7344 type="text/javascript" async></script>
7344 7345 <!-- BEGIN app snippet: geo-ssr --> 7346 7347 7348 7349 7350 7351 7352<!-- END app snippet --> 7353 7354 7355</div></div> 7356<div 7357 class="product-info__block-item" 7358 data-block-id="offers_PHVeaY" 7359 data-block-type="offers" 7360 7361 data-block-allow-rerender 7362 7363 7364 7365 7366 ><div class="offers-container" data-offers-wrapper> 7367 <style> 7368 .offer-title-row { 7369 display: flex; 7370 align-items: center; 7371 gap: 6px; 7372 } 7373 7374 .offer-title-row p, 7375 .offer-subheading p { 7376 margin: 0; 7377 } 7378 7379 .offer-subheading { 7380 font-weight: 500; 7381 } 7382 7383 .offer-content p { 7384 margin: 0; 7385 } 7386 7387 .offer-content p + p { 7388 margin-top: 0.5em; 7389 } 7390 7391 .offer-info-wrapper { 7392 position: relative; 7393 display: inline-flex; 7394 align-items: center; 7395 flex-shrink: 0; 7396 } 7397 7398 .offer-info-icon { 7399 display: inline-flex; 7400 align-items: center; 7401 justify-content: center; 7402 width: 16px; 7403 height: 16px; 7404 padding: 0; 7405 border: none; 7406 border-radius: 50%; 7407 background-color: transparent; 7408 cursor: pointer; 7409 transition: background-color 0.2s ease; 7410 flex-shrink: 0; 7411 } 7412 7413 .offer-info-icon svg { 7414 width: 100%; 7415 height: 100%; 7416 opacity: 1; 7417 } 7418 7419 .offer-info-tooltip { 7420 display: none; 7421 position: fixed; 7422 width: max-content; 7423 max-width: 220px; 7424 padding: 10px 12px; 7425 background-color: #1a1a1a; 7426 color: #fff !important; 7427 border-radius: 6px; 7428 font-size: 12px; 7429 font-weight: 400; 7430 line-height: 1.5; 7431 text-align: left; 7432 z-index: 999999; 7433 box-shadow: 0 4px 16px rgba(0, 0, 0, 0.25); 7434 } 7435 7436 .offer-info-tooltip::after { 7437 content: ''; 7438 position: absolute; 7439 top: 100%; 7440 left: 50%; 7441 transform: translateX(-50%); 7442 border: 6px solid transparent; 7443 border-top-color: #1a1a1a; 7444 pointer-events: none; 7445 } 7446 7447 .offer-info-tooltip p { 7448 margin: 0 !important; 7449 color: #fff !important; 7450 font-size: 12px !important; 7451 } 7452 7453 .offer-info-tooltip p + p { 7454 margin-top: 6px !important; 7455 } 7456 7457 /* Show tooltip */ 7458 .offer-info-tooltip.is-active { 7459 display: block; 7460 } 7461 7462 /* When tooltip is below the icon */ 7463 .offer-info-tooltip--below::after { 7464 top: auto; 7465 bottom: 100%; 7466 border-top-color: transparent; 7467 border-bottom-color: #1a1a1a; 7468 } 7469 7470 /* Ensure h-stack also aligns the info icon */ 7471 .h-stack .offer-info-wrapper { 7472 margin-left: 2px; 7473 } 7474 7475 /* Mobile full width for offer-list */ 7476 @media screen and (max-width: 999px) { 7477 .offer-list--mobile-full-width { 7478 width: calc(100% + 1.6rem); 7479 margin-left: -0.8rem; 7480 } 7481 7482 .offer-list--mobile-larger-text .offer-item { 7483 padding: 1rem; 7484 } 7485 7486 .offer-list--mobile-larger-text .h-stack.gap-4 {
7487 gap: 1rem; 7488 } 7489 7490 .offer-list--mobile-larger-text .offer-subheading, 7491 .offer-list--mobile-larger-text .offer-subheading p { 7492 font-size: 0.875rem; 7493 line-height: 120%; 7494 } 7495 7496 .offer-list--mobile-larger-text .offer-content, 7497 .offer-list--mobile-larger-text .offer-content p { 7498 font-size: 0.875rem; 7499 line-height: 120%; 7500 } 7501 } 7502 </style>
7502<script> 7503 document.addEventListener('click', (e) => { 7504 const icon = e.target.closest('.offer-info-icon'); 7505 document.querySelectorAll('.offer-info-tooltip.is-active').forEach((t) => t.classList.remove('is-active')); 7506 if (icon) { 7507 e.stopPropagation(); 7508 const tip = icon.nextElementSibling, 7509 r = icon.getBoundingClientRect(); 7510 tip.classList.add('is-active'); 7511 requestAnimationFrame(() => { 7512 const w = tip.offsetWidth; 7513 tip.style.left = Math.max(10, Math.min(r.left + r.width / 2 - w / 2, innerWidth - w - 10)) + 'px'; 7514 tip.style.top = r.top - tip.offsetHeight - 10 + 'px'; 7515 }); 7516 } 7517 }); 7518 </script>
7518<div 7519 class="offer-carousel offer-carousel--navigation-inline" 7520 style="--background: 242 240 232 ; background-color: rgb(var(--background));--text-color: 0 0 0; color: rgb(var(--text-color));--border-color:206 204 197;" 7521 > 7522 <scroll-carousel id="carousel-offers_PHVeaY" class="offer-carousel__scroller scroll-area"><div class="offer-item text-start justify-items-start" ><div class="h-stack gap-4"><img lazy-src="//www.kusmitea.com/cdn/shop/files/Picto_reassurance_CLICK-AND-COLLECT.png?v=1789462511&width=800" alt="" lazy-srcset="//www.kusmitea.com/cdn/shop/files/Picto_reassurance_CLICK-AND-COLLECT.png?v=1789462511&width=48 48w, //www.kusmitea.com/cdn/shop/files/Picto_reassurance_CLICK-AND-COLLECT.png?v=1789462511&width=96 96w, //www.kusmitea.com/cdn/shop/files/Picto_reassurance_CLICK-AND-COLLECT.png?v=1789462511&width=144 144w" width="800" height="800" loading="lazy" sizes=" 48px" class=" icon " style="--icon-max-width: 48px; --icon-mobile-max-width: 48px"><div class="offer-title-row"><div class="offer-subheading"><p>Disponible en <strong>click and collect</strong></p> 7523</div><div class="offer-info-wrapper"><button type="button" class="offer-info-icon" aria-controls="store-availability-drawer-11020345999703" aria-expanded="false" aria-label="Voir la disponibilité"> 7524 <svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 15 15" fill="none"> 7525 <path d="M7.50195 14.5039C11.369 14.5039 14.5039 11.369 14.5039 7.50195C14.5039 3.63488 11.369 0.5 7.50195 0.5C3.63488 0.5 0.5 3.63488 0.5 7.50195C0.5 11.369 3.63488 14.5039 7.50195 14.5039Z" stroke="#303030" stroke-linecap="round" stroke-linejoin="round"/> 7526 <path d="M7.50195 10.3008V7.5M7.50195 4.69922H7.50896" stroke="#303030" stroke-linecap="round" stroke-linejoin="round"/> 7527 </svg> 7528 </button> 7529 </div></div> 7530 </div></div><div class="offer-item text-start justify-items-start" ><div class="h-stack gap-4"><img lazy-src="//www.kusmitea.com/cdn/shop/files/Picto_reassurance_FIDELITE.png?v=1789462591&width=800" alt="" lazy-srcset="//www.kusmitea.com/cdn/shop/files/Picto_reassurance_FIDELITE.png?v=1789462591&width=48 48w, //www.kusmitea.com/cdn/shop/files/Picto_reassurance_FIDELITE.png?v=1789462591&width=96 96w, //www.kusmitea.com/cdn/shop/files/Picto_reassurance_FIDELITE.png?v=1789462591&width=144 144w" width="800" height="800" loading="lazy" sizes=" 48px" class=" icon " style="--icon-max-width: 48px; --icon-mobile-max-width: 48px"><div class="offer-title-row"><div class="offer-subheading"><p>Rejoignez le KusmiKlub</p> 7531</div><div class="offer-info-wrapper"> 7532 <button type="button" class="offer-info-icon" aria-label="Plus d'informations"> 7533 <svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 15 15" fill="none"> 7534 <path d="M7.50195 14.5039C11.369 14.5039 14.5039 11.369 14.5039 7.50195C14.5039 3.63488 11.369 0.5 7.50195 0.5C3.63488 0.5 0.5 3.63488 0.5 7.50195C0.5 11.369 3.63488 14.5039 7.50195 14.5039Z" stroke="#303030" stroke-linecap="round" stroke-linejoin="round"/> 7535 <path d="M7.50195 10.3008V7.5M7.50195 4.69922H7.50896" stroke="#303030" stroke-linecap="round" stroke-linejoin="round"/> 7536 </svg> 7537 </button> 7538 <div class="offer-info-tooltip"> 7539 <p>Programme de Fidélite Kusmi Tea : à chaque achat, 1 ⬠dépensé = 1 point. Cumulez 70 points et recevez un bon dâachat de 5 â¬.*</p> 7540 </div> 7541 </div></div> 7542 </div></div><div class="offer-item text-start justify-items-start" ><div class="h-stack gap-4"><img lazy-src="//www.kusmitea.com/cdn/shop/files/Picto_reassurance_ALMA.png?v=1789462615&width=800" alt="" lazy-srcset="//www.kusmitea.com/cdn/shop/files/Picto_reassurance_ALMA.png?v=1789462615&width=48 48w, //www.kusmitea.com/cdn/shop/files/Picto_reassurance_ALMA.png?v=1789462615&width=96 96w, //www.kusmitea.com/cdn/shop/files/Picto_reassurance_ALMA.png?v=1789462615&width=144 144w" width="800" height="800" loading="lazy" sizes=" 48px" class=" icon " style="--icon-max-width: 48px; --icon-mobile-max-width: 48px"><div class="offer-title-row"><div class="offer-subheading"><p>Paiement 3x sans frais dès 60â¬</p> 7543</div><div class="offer-info-wrapper"> 7544 <button type="button" class="offer-info-icon" aria-label="Plus d'informations"> 7545 <svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 15 15" fill="none"> 7546 <path d="M7.50195 14.5039C11.369 14.5039 14.5039 11.369 14.5039 7.50195C14.5039 3.63488 11.369 0.5 7.50195 0.5C3.63488 0.5 0.5 3.63488 0.5 7.50195C0.5 11.369 3.63488 14.5039 7.50195 14.5039Z" stroke="#303030" stroke-linecap="round" stroke-linejoin="round"/> 7547 <path d="M7.50195 10.3008V7.5M7.50195 4.69922H7.50896" stroke="#303030" stroke-linecap="round" stroke-linejoin="round"/> 7548 </svg> 7549 </button> 7550 <div class="offer-info-tooltip"> 7551 <p>Système de paiement sécurisé permettant de payer en trois (3) fois sans frais. Pour plus dâinformation, veuillez consulter la Politique de confidentialité et de gestion des données ALMA.</p> 7552 </div> 7553 </div></div> 7554 </div></div>
7554</scroll-carousel><carousel-navigation 7555 class="scroll-marker-group scroll-marker-group--dots scroll-marker-group--dots-sm" 7556 aria-controls="carousel-offers_PHVeaY" 7557 ><button 7558 type="button" 7559 class="scroll-marker tap-area tap-area--sm" 7560 aria-current="true" 7561 > 7562 <span class="sr-only">Aller à l'élément 1</span> 7563 </button><button 7564 type="button" 7565 class="scroll-marker tap-area tap-area--sm" 7566 aria-current="false" 7567 > 7568 <span class="sr-only">Aller à l'élément 2</span> 7569 </button><button 7570 type="button" 7571 class="scroll-marker tap-area tap-area--sm" 7572 aria-current="false" 7573 > 7574 <span class="sr-only">Aller à l'élément 3</span> 7575 </button></carousel-navigation></div><x-drawer 7576 id="store-availability-drawer-11020345999703" 7577 class="drawer drawer--pickup-availability color-scheme color-scheme--scheme-2" 7578 > 7579 <div class="h-stack gap-5" slot="header"><img src="//www.kusmitea.com/cdn/shop/files/69ccaa76e308d3684f9a42cf6429ef819d9eca4d_ADVENTCAL26BIO_packshot_b2cweb.png?v=1785157587&width=1800" alt="Calendrier de l'Avent" srcset="//www.kusmitea.com/cdn/shop/files/69ccaa76e308d3684f9a42cf6429ef819d9eca4d_ADVENTCAL26BIO_packshot_b2cweb.png?v=1785157587&width=72 72w, //www.kusmitea.com/cdn/shop/files/69ccaa76e308d3684f9a42cf6429ef819d9eca4d_ADVENTCAL26BIO_packshot_b2cweb.png?v=1785157587&width=144 144w" width="1800" height="1800" loading="lazy" sizes="72px" class="constrained-image" style="--image-max-width: 72px"><div class="v-stack gap-1"> 7580 <p class="h6">Calendrier de l'Avent</p></div> 7581 </div> 7582 7583 <div class="v-stack gap-6"><div class="v-stack gap-2.5"> 7584 <div class="v-stack gap-2"> 7585 <p class="h6">AIX EN PROVENCE</p> 7586 7587 <div class="h-stack gap-2.5"><svg width="8" height="9" viewBox="0 0 8 9" fill="none"> 7588 <path d="M0.361816 4.25436L3.22545 7.25436L7.36182 0.254364" stroke="currentColor"/> 7589 </svg><span>Récupération disponible, Habituellement prête en 2 à 4 jours</span></div> 7590 </div> 7591 7592 <div class="text-subdued"><p>2 Rue des Bagniers<br>13100 Aix En Provence<br>France</p></div> 7593 </div><hr><div class="v-stack gap-2.5"> 7594 <div class="v-stack gap-2"> 7595 <p class="h6">ANGERS</p> 7596 7597 <div class="h-stack gap-2.5"><svg width="8" height="9" viewBox="0 0 8 9" fill="none"> 7598 <path d="M0.361816 4.25436L3.22545 7.25436L7.36182 0.254364" stroke="currentColor"/> 7599 </svg><span>Récupération disponible, Habituellement prête en 2 à 4 jours</span></div> 7600 </div> 7601 7602 <div class="text-subdued"><p>68 Rue du Mail<br>49100 Angers<br>France</p></div> 7603 </div><hr><div class="v-stack gap-2.5"> 7604 <div class="v-stack gap-2"> 7605 <p class="h6">BAB2</p> 7606 7607 <div class="h-stack gap-2.5"><svg width="8" height="9" viewBox="0 0 8 9" fill="none"> 7608 <path d="M0.361816 4.25436L3.22545 7.25436L7.36182 0.254364" stroke="currentColor"/> 7609 </svg><span>Récupération disponible, Habituellement prête en 2 à 4 jours</span></div> 7610 </div> 7611 7612 <div class="text-subdued"><p>Avenue Jean Léon Laporte<br>64600 Anglet<br>France</p></div> 7613 </div><hr><div class="v-stack gap-2.5"> 7614 <div class="v-stack gap-2"> 7615 <p class="h6">TOULOUSE BLAGNAC</p> 7616 7617 <div class="h-stack gap-2.5"><svg width="8" height="9" viewBox="0 0 8 9" fill="none"> 7618 <path d="M0.361816 4.25436L3.22545 7.25436L7.36182 0.254364" stroke="currentColor"/> 7619 </svg><span>Récupération disponible, Habituellement prête en 2 à 4 jours</span></div> 7620 </div> 7621 7622 <div class="text-subdued"><p>2 Allée Emile Zola<br>31700 Blagnac<br>France</p></div> 7623 </div><hr><div class="v-stack gap-2.5"> 7624 <div class="v-stack gap-2"> 7625 <p class="h6">BORDEAUX DIJEAUX</p> 7626 7627 <div class="h-stack gap-2.5"><svg width="8" height="9" viewBox="0 0 8 9" fill="none"> 7628 <path d="M0.361816 4.25436L3.22545 7.25436L7.36182 0.254364" stroke="currentColor"/> 7629 </svg><span>Récupération disponible, Habituellement prête en 2 à 4 jours</span></div> 7630 </div> 7631 7632 <div class="text-subdued"><p>63 Rue de la Porte Dijeaux<br>33000 Bordeaux<br>France</p></div> 7633 </div><hr><div class="v-stack gap-2.5"> 7634 <div class="v-stack gap-2"> 7635 <p class="h6">BREST</p> 7636 7637 <div class="h-stack gap-2.5"><svg width="8" height="9" viewBox="0 0 8 9" fill="none"> 7638 <path d="M0.361816 4.25436L3.22545 7.25436L7.36182 0.254364" stroke="currentColor"/> 7639 </svg><span>Récupération disponible, Habituellement prête en 2 à 4 jours</span></div> 7640 </div> 7641 7642 <div class="text-subdued"><p>Centre Commercial Le Phare de l'Europe 29 Rue de Gouesnou<br>29200 Brest<br>France</p></div> 7643 </div><hr><div class="v-stack gap-2.5"> 7644 <div class="v-stack gap-2"> 7645 <p class="h6">BORDEAUX BEGLES</p> 7646 7647 <div class="h-stack gap-2.5"><svg width="8" height="9" viewBox="0 0 8 9" fill="none"> 7648 <path d="M0.361816 4.25436L3.22545 7.25436L7.36182 0.254364" stroke="currentColor"/> 7649 </svg><span>Récupération disponible, Habituellement prête en 2 à 4 jours</span></div> 7650 </div> 7651 7652 <div class="text-subdued"><p>1 Rue des Frères Lumière<br>33130 Bègles<br>France</p></div> 7653 </div><hr><div class="v-stack gap-2.5"> 7654 <div class="v-stack gap-2"> 7655 <p class="h6">AVANT CAP</p> 7656 7657 <div class="h-stack gap-2.5"><svg width="8" height="9" viewBox="0 0 8 9" fill="none"> 7658 <path d="M0.361816 4.25436L3.22545 7.25436L7.36182 0.254364" stroke="currentColor"/> 7659 </svg><span>Récupération disponible, Habituellement prête en 2 à 4 jours</span></div> 7660 </div> 7661 7662 <div class="text-subdued"><p>Avenue du Plan de Campagne<br>13480 Cabriès<br>France</p></div> 7663 </div><hr><div class="v-stack gap-2.5"> 7664 <div class="v-stack gap-2"> 7665 <p class="h6">CAEN</p> 7666 7667 <div class="h-stack gap-2.5"><svg width="8" height="9" viewBox="0 0 8 9" fill="none"> 7668 <path d="M0.361816 4.25436L3.22545 7.25436L7.36182 0.254364" stroke="currentColor"/> 7669 </svg><span>Récupération disponible, Habituellement prête en 2 à 4 jours</span></div> 7670 </div> 7671 7672 <div class="text-subdued"><p>25 Rue de Bras<br>14000 Caen<br>
7672France</p></div> 7673 </div><hr><div class="v-stack gap-2.5"> 7674 <div class="v-stack gap-2"> 7675 <p class="h6">CHAMBERY</p> 7676 7677 <div class="h-stack gap-2.5"><svg width="8" height="9" viewBox="0 0 8 9" fill="none"> 7678 <path d="M0.361816 4.25436L3.22545 7.25436L7.36182 0.254364" stroke="currentColor"/> 7679 </svg><span>Récupération disponible, Habituellement prête en 2 à 4 jours</span></div> 7680 </div> 7681 7682 <div class="text-subdued"><p>212 Place Saint-Léger<br>73000 Chambéry<br>France</p></div> 7683 </div><hr><div class="v-stack gap-2.5"> 7684 <div class="v-stack gap-2"> 7685 <p class="h6">CLERMONT FERRAND</p> 7686 7687 <div class="h-stack gap-2.5"><svg width="8" height="9" viewBox="0 0 8 9" fill="none"> 7688 <path d="M0.361816 4.25436L3.22545 7.25436L7.36182 0.254364" stroke="currentColor"/> 7689 </svg><span>Récupération disponible, Habituellement prête en 2 à 4 jours</span></div> 7690 </div> 7691 7692 <div class="text-subdued"><p>Jaude Shopping Center 18 Rue d'Allagnat<br>63000 Clermont-Ferrand<br>France</p></div> 7693 </div><hr><div class="v-stack gap-2.5"> 7694 <div class="v-stack gap-2"> 7695 <p class="h6">LA ROCHELLE</p> 7696 7697 <div class="h-stack gap-2.5"><svg width="8" height="9" viewBox="0 0 8 9" fill="none"> 7698 <path d="M0.361816 4.25436L3.22545 7.25436L7.36182 0.254364" stroke="currentColor"/> 7699 </svg><span>Récupération disponible, Habituellement prête en 2 à 4 jours</span></div> 7700 </div> 7701 7702 <div class="text-subdued"><p>8 Rue du Temple<br>17000 La Rochelle<br>France</p></div> 7703 </div><hr><div class="v-stack gap-2.5"> 7704 <div class="v-stack gap-2"> 7705 <p class="h6">LORIENT</p> 7706 7707 <div class="h-stack gap-2.5"><svg width="8" height="9" viewBox="0 0 8 9" fill="none"> 7708 <path d="M0.361816 4.25436L3.22545 7.25436L7.36182 0.254364" stroke="currentColor"/> 7709 </svg><span>Récupération disponible, Habituellement prête en 2 à 4 jours</span></div> 7710 </div> 7711 7712 <div class="text-subdued"><p>78 Avenue Ambroise Croizat<br>56600 Lanester<br>France</p></div> 7713 </div><hr><div class="v-stack gap-2.5"> 7714 <div class="v-stack gap-2"> 7715 <p class="h6">LE HAVRE COTY</p> 7716 7717 <div class="h-stack gap-2.5"><svg width="8" height="9" viewBox="0 0 8 9" fill="none"> 7718 <path d="M0.361816 4.25436L3.22545 7.25436L7.36182 0.254364" stroke="currentColor"/> 7719 </svg><span>Récupération disponible, Habituellement prête en 2 à 4 jours</span></div> 7720 </div> 7721 7722 <div class="text-subdued"><p>Centre commercial Espace Coty 22 Rue Casimir Périer<br>76600 Le Havre<br>France</p></div> 7723 </div><hr><div class="v-stack gap-2.5"> 7724 <div class="v-stack gap-2"> 7725 <p class="h6">CARRE SENART</p> 7726 7727 <div class="h-stack gap-2.5"><svg width="8" height="9" viewBox="0 0 8 9" fill="none"> 7728 <path d="M0.361816 4.25436L3.22545 7.25436L7.36182 0.254364" stroke="currentColor"/> 7729 </svg><span>Récupération disponible, Habituellement prête en 2 à 4 jours</span></div> 7730 </div> 7731 7732 <div class="text-subdued"><p>3 Allée du Préambule Westfield Carré Sénart<br>77127 Lieusaint<br>France</p></div> 7733 </div><hr><div class="v-stack gap-2.5"> 7734 <div class="v-stack gap-2"> 7735 <p class="h6">LILLE ESQUERMOISE</p> 7736 7737 <div class="h-stack gap-2.5"><svg width="8" height="9" viewBox="0 0 8 9" fill="none"> 7738 <path d="M0.361816 4.25436L3.22545 7.25436L7.36182 0.254364" stroke="currentColor"/> 7739 </svg><span>Récupération disponible, Habituellement prête en 2 à 4 jours</span></div> 7740 </div> 7741 7742 <div class="text-subdued"><p>13 Rue Esquermoise<br>59000 Lille<br>France</p></div> 7743 </div><hr><div class="v-stack gap-2.5"> 7744 <div class="v-stack gap-2"> 7745 <p class="h6">LIMOGES</p> 7746 7747 <div class="h-stack gap-2.5"><svg width="8" height="9" viewBox="0 0 8 9" fill="none"> 7748 <path d="M0.361816 4.25436L3.22545 7.25436L7.36182 0.254364" stroke="currentColor"/> 7749 </svg><span>Récupération disponible, Habituellement prête en 2 à 4 jours</span></div> 7750 </div> 7751 7752 <div class="text-subdued"><p>33 Rue du Clocher<br>87000 Limoges<br>France</p></div> 7753 </div><hr><div class="v-stack gap-2.5"> 7754 <div class="v-stack gap-2"> 7755 <p class="h6">LYON JACOBINS</p> 7756 7757 <div class="h-stack gap-2.5"><svg width="8" height="9" viewBox="0 0 8 9" fill="none"> 7758 <path d="M0.361816 4.25436L3.22545 7.25436L7.36182 0.254364" stroke="currentColor"/> 7759 </svg><span>Récupération disponible, Habituellement prête en 2 à 4 jours</span></div> 7760 </div> 7761 7762 <div class="text-subdued"><p>77 Rue du Président Ãdouard Herriot<br>69002 Lyon<br>France</p></div> 7763 </div><hr><div class="v-stack gap-2.5"> 7764 <div class="v-stack gap-2"> 7765 <p class="h6">LYON PARTDIEU</p> 7766 7767 <div class="h-stack gap-2.5"><svg width="8" height="9" viewBox="0 0 8 9" fill="none"> 7768 <path d="M0.361816 4.25436L3.22545 7.25436L7.36182 0.254364" stroke="currentColor"/> 7769 </svg><span>Récupération disponible, Habituellement prête en 2 à 4 jours</span></div> 7770 </div> 7771 7772 <div class="text-subdued"><p>17 Rue du Docteur Bouchut<br>69003 Lyon<br>France</p></div> 7773 </div><hr><div class="v-stack gap-2.5"> 7774 <div class="v-stack gap-2"> 7775 <p class="h6">MARSEILLE LA VALENTINE</p> 7776 7777 <div class="h-stack gap-2.5"><svg width="8" height="9" viewBox="0 0 8 9" fill="none"> 7778 <path d="M0.361816 4.25436L3.22545 7.25436L7.36182 0.254364" stroke="currentColor"/> 7779 </svg><span>Récupération disponible, Habituellement prête en 2 à 4 jours</span></div> 7780 </div> 7781 7782 <div class="text-subdued"><p>Centre Commercial La Valentine - Route de la Sabli<br>13011 Marseille<br>France</p></div> 7783 </div><hr><div class="v-stack gap-2.5"> 7784 <div class="v-stack gap-2"> 7785 <p class="h6">MARSEILLE TERRASSES</p> 7786 7787 <div class="h-stack gap-2.5"><svg width="8" height="9" viewBox="0 0 8 9" fill="none"> 7788 <path d="M0.361816 4.25436L3.22545 7.25436L7.36182 0.254364" stroke="currentColor"/> 7789 </svg><span>Récupération disponible, Habituellement prête en 2 à 4 jours</span></div> 7790 </div> 7791 7792 <div class="text-subdued"><p>Les Terrasses du Port 9 Quai du Lazaret 2ème étage<br>13002 Marseille<br>France</p></div> 7793 </div><hr><div class="v-stack gap-2.5"> 7794 <div class="v-stack gap-2"> 7795 <p class="h6">METZ</p> 7796 7797 <div class="h-stack gap-2.5"><svg width="8" height="9" viewBox="0 0 8 9" fill="none"> 7798 <path d="M0.361816 4.25436L3.22545 7.25436L7.36182 0.254364" stroke="currentColor"/> 7799 </svg><span>Récupération disponible, Habituellement prête en 2 à 4 jours</span></div> 7800 </div> 7801 7802 <div class="text-subdued"><p>2 Rue des Messageries<br>57000 Metz<br>France</p></div> 7803 </div><hr><div class="v-stack gap-2.5"> 7804 <div class="v-stack gap-2"> 7805 <p class="h6">MONTPELLIER POLYGONE</p> 7806 7807 <div class="h-stack gap-2.5"><svg width="8" height="9" viewBox="0 0 8 9" fill="none"> 7808 <path d="M0.361816 4.25436L3.22545 7.25436L7.36182 0.254364" stroke="currentColor"/> 7809 </svg><span>Récupération disponible, Habituellement prête en 2 à 4 jours</span></div> 7810 </div> 7811 7812 <div class="text-subdued"><p>1, Rue des Pertuisanes CC Polygone<br>34000 Montpellier<br>France</p></div> 7813 </div><hr><div class="v-stack gap-2.5"> 7814 <div class="v-stack gap-2"> 7815 <p class="h6">BORDEAUX MERIGNAC</p> 7816 7817 <div class="h-stack gap-2.5"><svg width="8" height="9" viewBox="0 0 8 9" fill="none"> 7818 <path d="M0.361816 4.25436L3.22545 7.25436L7.36182 0.254364" stroke="currentColor"/> 7819 </svg><span>Récupération disponible, Habituellement prête en 2 à 4 jours</span></div> 7820 </div> 7821 7822 <div class="text-subdued"><p>17 Avenue de la Somme<br>33700 Mérignac<br>France</p></div> 7823 </div><hr><div class="v-stack gap-2.5"> 7824 <div class="v-stack gap-2"> 7825 <p class="h6">NANCY</p> 7826 7827 <div class="h-stack gap-2.5"><svg width="8" height="9" viewBox="0 0 8 9" fill="none"> 7828 <path d="M0.361816 4.25436L3.22545 7.25436L7.36182 0.254364" stroke="currentColor"/> 7829 </svg><span>Récupération disponible, Habituellement prête en 2 à 4 jours</span></div> 7830 </div> 7831 7832 <div class="text-subdued"><p>17 Rue Saint-Jean<br>54000 Nancy<br>France</p></div> 7833 </div><hr><div class="v-stack gap-2.5"> 7834 <div class="v-stack gap-2"> 7835 <p class="h6">NANTES PLACE ROYALE</p> 7836 7837 <div class="h-stack gap-2.5"><svg width="8" height="9" viewBox="0 0 8 9" fill="none"> 7838 <path d="M0.361816 4.25436L3.22545 7.25436L7.36182 0.254364" stroke="currentColor"/> 7839 </svg><span>Récupération disponible, Habituellement prête en 2 à 4 jours</span></div> 7840 </div> 7841 7842 <div class="text-subdued"><p>3 Place Royale<br>44000 Nantes<br>France</p></div> 7843 </div><hr><div class="v-stack gap-2.5"> 7844 <div class="v-stack gap-2"> 7845 <p class="h6">NICE ETOILE</p> 7846 7847 <div class="h-stack gap-2.5"><svg width="8" height="9" viewBox="0 0 8 9" fill="none"> 7848 <path d="M0.361816 4.25436L3.22545 7.25436L7.36182 0.254364" stroke="currentColor"/> 7849 </svg><span>Récupération disponible, Habituellement prête en 2 à 4 jours</span></div> 7850 </div> 7851 7852 <div class="text-subdued"><p>30 Avenue Jean Médecin<br>06000 Nice<br>France</p></div> 7853 </div><hr><div class="v-stack gap-2.5"> 7854 <div class="v-stack gap-2"> 7855 <p class="h6">NIMES</p> 7856 7857 <div class="h-stack gap-2.5"><svg width="8" height="9" viewBox="0 0 8 9" fill="none"> 7858 <path d="M0.361816 4.25436L3.22545 7.25436L7.36182 0.254364" stroke="currentColor"/> 7859 </svg><span>Récupération disponible, Habituellement prête en 2 à 4 jours</span></div> 7860 </div> 7861 7862 <div class="text-subdued"><p>C. Cial Cap Costières 400 Avenue Claude Baillet<br>30900 NIMES<br>France</p></div> 7863 </div><hr><div class="v-stack gap-2.5"> 7864 <div class="v-stack gap-2"> 7865 <p class="h6">NOYELLES</p> 7866 7867 <div class="h-stack gap-2.5"><svg width="8" height="9" viewBox="0 0 8 9" fill="none"> 7868 <path d="M0.361816 4.25436L3.22545 7.25436L7.36182 0.254364" stroke="currentColor"/> 7869 </svg><span>Récupération disponible, Habituellement prête en 2 à 4 jours</span></div> 7870 </div> 7871 7872 <div class="text-subdued"><p>Route Nationale 43<br>62950 Noyelles-Godault<br>France</p></div> 7873 </div><hr><div class="v-stack gap-2.5"> 7874 <div class="v-stack gap-2"> 7875 <p class="h6">ORLEANS</p> 7876 7877 <div class="h-stack gap-2.5"><svg width="8" height="9" viewBox="0 0 8 9" fill="none"> 7878 <path d="M0.361816 4.25436L3.22545 7.25436L7.36182 0.254364" stroke="currentColor"/> 7879 </svg><span>Récupération disponible, Habituellement prête en 2 à 4 jours</span></div> 7880 </div> 7881 7882 <div class="text-subdued"><p>22 Rue de la République<br>45000 Orléans<br>France</p></div> 7883 </div><hr><div class="v-stack gap-2.5"> 7884 <div class="v-stack gap-2"> 7885 <p class="h6">COMPTOIR GRENELLE</p> 7886 7887 <div class="h-stack gap-2.5"><svg width="8" height="9" viewBox="0 0 8 9" fill="none"> 7888 <path d="M0.361816 4.25436L3.22545 7.25436L7.36182 0.254364" stroke="currentColor"/> 7889 </svg><span>Récupération disponible, Habituellement prête en 2 à 4 jours</span></div> 7890 </div> 7891 7892 <div class="text-subdued"><p>68 rue de Grenelle<br>75007 Paris<br>France</p></div> 7893 </div><hr><div class="v-stack gap-2.5"> 7894 <div class="v-stack gap-2"> 7895 <p class="h6">GARE DE L'EST</p> 7896 7897 <div class="h-stack gap-2.5"><svg width="8" height="9" viewBox="0 0 8 9" fill="none"> 7898 <path d="M0.361816 4.25436L3.22545 7.25436L7.36182 0.254364" stroke="currentColor"/> 7899 </svg><span>Récupération disponible, Habituellement prête en 2 à 4 jours</span></div> 7900 </div> 7901 7902 <div class="text-subdued"><p>Gare de l'est<br>75010 Paris<br>France</p></div> 7903 </div><hr><div class="v-stack gap-2.5"> 7904 <div class="v-stack gap-2"> 7905 <p class="h6">GARE MONTPARNASSE</p> 7906 7907 <div class="h-stack gap-2.5"><svg width="8" height="9" viewBox="0 0 8 9" fill="none"> 7908 <path d="M0.361816 4.25436L3.22545 7.25436L7.36182 0.254364" stroke="currentColor"/> 7909 </svg><span>Récupération disponible, Habituellement prête en 2 à 4 jours</span></div> 7910 </div> 7911 7912 <div class="text-subdued"><p>17 Boulevard de Vaugirard<br>
791275015 Paris<br>France</p></div> 7913 </div><hr><div class="v-stack gap-2.5"> 7914 <div class="v-stack gap-2"> 7915 <p class="h6">GARE ST LAZARE</p> 7916 7917 <div class="h-stack gap-2.5"><svg width="8" height="9" viewBox="0 0 8 9" fill="none"> 7918 <path d="M0.361816 4.25436L3.22545 7.25436L7.36182 0.254364" stroke="currentColor"/> 7919 </svg><span>Récupération disponible, Habituellement prête en 2 à 4 jours</span></div> 7920 </div> 7921 7922 <div class="text-subdued"><p>1 Cour de Rome Centre Commercial Gare Saint Lazare<br>75008 Paris<br>France</p></div> 7923 </div><hr><div class="v-stack gap-2.5"> 7924 <div class="v-stack gap-2"> 7925 <p class="h6">OPERA</p> 7926 7927 <div class="h-stack gap-2.5"><svg width="8" height="9" viewBox="0 0 8 9" fill="none"> 7928 <path d="M0.361816 4.25436L3.22545 7.25436L7.36182 0.254364" stroke="currentColor"/> 7929 </svg><span>Récupération disponible, Habituellement prête en 2 à 4 jours</span></div> 7930 </div> 7931 7932 <div class="text-subdued"><p>49 Avenue de l'Opéra<br>75002 Paris<br>France</p></div> 7933 </div><hr><div class="v-stack gap-2.5"> 7934 <div class="v-stack gap-2"> 7935 <p class="h6">ROSIERS</p> 7936 7937 <div class="h-stack gap-2.5"><svg width="8" height="9" viewBox="0 0 8 9" fill="none"> 7938 <path d="M0.361816 4.25436L3.22545 7.25436L7.36182 0.254364" stroke="currentColor"/> 7939 </svg><span>Récupération disponible, Habituellement prête en 2 à 4 jours</span></div> 7940 </div> 7941 7942 <div class="text-subdued"><p>56 Rue des Rosiers<br>75004 Paris<br>France</p></div> 7943 </div><hr><div class="v-stack gap-2.5"> 7944 <div class="v-stack gap-2"> 7945 <p class="h6">
7945TERNES</p> 7946 7947 <div class="h-stack gap-2.5"><svg width="8" height="9" viewBox="0 0 8 9" fill="none"> 7948 <path d="M0.361816 4.25436L3.22545 7.25436L7.36182 0.254364" stroke="currentColor"/> 7949 </svg><span>Récupération disponible, Habituellement prête en 2 à 4 jours</span></div> 7950 </div> 7951 7952 <div class="text-subdued"><p>60 Avenue des Ternes<br>75017 PARIS<br>France</p></div> 7953 </div><hr><div class="v-stack gap-2.5"> 7954 <div class="v-stack gap-2"> 7955 <p class="h6">SAINTE-CROIX</p> 7956 7957 <div class="h-stack gap-2.5"><svg width="8" height="9" viewBox="0 0 8 9" fill="none"> 7958 <path d="M0.361816 4.25436L3.22545 7.25436L7.36182 0.254364" stroke="currentColor"/> 7959 </svg><span>Récupération disponible, Habituellement prête en 2 à 4 jours</span></div> 7960 </div> 7961 7962 <div class="text-subdued"><p>35 rue de sainte croix de la bretonnie<br>75004 PARIS 4<br>France</p></div> 7963 </div><hr><div class="v-stack gap-2.5"> 7964 <div class="v-stack gap-2"> 7965 <p class="h6">PERPIGNAN</p> 7966 7967 <div class="h-stack gap-2.5"><svg width="8" height="9" viewBox="0 0 8 9" fill="none"> 7968 <path d="M0.361816 4.25436L3.22545 7.25436L7.36182 0.254364" stroke="currentColor"/> 7969 </svg><span>Récupération disponible, Habituellement prête en 2 à 4 jours</span></div> 7970 </div> 7971 7972 <div class="text-subdued"><p>3 Rue des Marchands<br>66000 Perpignan<br>France</p></div> 7973 </div><hr><div class="v-stack gap-2.5"> 7974 <div class="v-stack gap-2"> 7975 <p class="h6">POITIERS</p> 7976 7977 <div class="h-stack gap-2.5"><svg width="8" height="9" viewBox="0 0 8 9" fill="none"> 7978 <path d="M0.361816 4.25436L3.22545 7.25436L7.36182 0.254364" stroke="currentColor"/> 7979 </svg><span>Récupération disponible, Habituellement prête en 2 à 4 jours</span></div> 7980 </div> 7981 7982 <div class="text-subdued"><p>44 Rue Gambetta<br>86000 Poitiers<br>France</p></div> 7983 </div><hr><div class="v-stack gap-2.5"> 7984 <div class="v-stack gap-2"> 7985 <p class="h6">CNIT LA DEFENSE</p> 7986 7987 <div class="h-stack gap-2.5"><svg width="8" height="9" viewBox="0 0 8 9" fill="none"> 7988 <path d="M0.361816 4.25436L3.22545 7.25436L7.36182 0.254364" stroke="currentColor"/> 7989 </svg><span>Récupération disponible, Habituellement prête en 2 à 4 jours</span></div> 7990 </div> 7991 7992 <div class="text-subdued"><p>Centre commercial CNIT 2 Place de la Défense<br>92800 PUTEAUX<br>France</p></div> 7993 </div><hr><div class="v-stack gap-2.5"> 7994 <div class="v-stack gap-2"> 7995 <p class="h6">QUIMPER</p> 7996 7997 <div class="h-stack gap-2.5"><svg width="8" height="9" viewBox="0 0 8 9" fill="none"> 7998 <path d="M0.361816 4.25436L3.22545 7.25436L7.36182 0.254364" stroke="currentColor"/> 7999 </svg><span>Récupération disponible, Habituellement prête en 2 à 4 jours</span></div> 8000 </div> 8001 8002 <div class="text-subdued"><p>163 Route de Bénodet C. CIAL LA GALERIE<br>29000 Quimper<br>France</p></div> 8003 </div><hr><div class="v-stack gap-2.5"> 8004 <div class="v-stack gap-2"> 8005 <p class="h6">STRASBOURG CÅUR ALSACE</p> 8006 8007 <div class="h-stack gap-2.5"><svg width="8" height="9" viewBox="0 0 8 9" fill="none"> 8008 <path d="M0.361816 4.25436L3.22545 7.25436L7.36182 0.254364" stroke="currentColor"/> 8009 </svg><span>Récupération disponible, Habituellement prête en 2 à 4 jours</span></div> 8010 </div> 8011 8012 <div class="text-subdued"><p>6 Boulevard des Enseignes Shopping Promenade CÅur Alsace Bâtiment G<br>67116 Reichstett<br>France</p></div> 8013 </div><hr><div class="v-stack gap-2.5"> 8014 <div class="v-stack gap-2"> 8015 <p class="h6">RENNES ALMA</p> 8016 8017 <div class="h-stack gap-2.5"><svg width="8" height="9" viewBox="0 0 8 9" fill="none"> 8018 <path d="M0.361816 4.25436L3.22545 7.25436L7.36182 0.254364" stroke="currentColor"/> 8019 </svg><span>Récupération disponible, Habituellement prête en 2 à 4 jours</span></div> 8020 </div> 8021 8022 <div class="text-subdued"><p>Centre commercial Rennes Alma 5 Rue du Bosphore<br>35200 Rennes<br>France</p></div> 8023 </div><hr><div class="v-stack gap-2.5"> 8024 <div class="v-stack gap-2"> 8025 <p class="h6">ROUEN</p> 8026 8027 <div class="h-stack gap-2.5"><svg width="8" height="9" viewBox="0 0 8 9" fill="none"> 8028 <path d="M0.361816 4.25436L3.22545 7.25436L7.36182 0.254364" stroke="currentColor"/> 8029 </svg><span>Récupération disponible, Habituellement prête en 2 à 4 jours</span></div> 8030 </div> 8031 8032 <div class="text-subdued"><p>27 rue Ganterie<br>76000 Rouen<br>France</p></div> 8033 </div><hr><div class="v-stack gap-2.5"> 8034 <div class="v-stack gap-2"> 8035 <p class="h6">SAINT GERMAIN EN LAYE</p> 8036 8037 <div class="h-stack gap-2.5"><svg width="8" height="9" viewBox="0 0 8 9" fill="none"> 8038 <path d="M0.361816 4.25436L3.22545 7.25436L7.36182 0.254364" stroke="currentColor"/> 8039 </svg><span>Récupération disponible, Habituellement prête en 2 à 4 jours</span></div> 8040 </div> 8041 8042 <div class="text-subdued"><p>16 Rue Collignon<br>78100 Saint Germain en laye<br>France</p></div> 8043 </div><hr><div class="v-stack gap-2.5"> 8044 <div class="v-stack gap-2"> 8045 <p class="h6">NANTES ATLANTIS</p> 8046 8047 <div class="h-stack gap-2.5"><svg width="8" height="9" viewBox="0 0 8 9" fill="none"> 8048 <path d="M0.361816 4.25436L3.22545 7.25436L7.36182 0.254364" stroke="currentColor"/> 8049 </svg><span>Récupération disponible, Habituellement prête en 2 à 4 jours</span></div> 8050 </div> 8051 8052 <div class="text-subdued"><p>Boulevard Salvador Allende ZONE COMMERCIALE ATLANTIS<br>44800 Saint-Herblain<br>France</p></div> 8053 </div><hr><div class="v-stack gap-2.5"> 8054 <div class="v-stack gap-2"> 8055 <p class="h6">NICE CAP 3000</p> 8056 8057 <div class="h-stack gap-2.5"><svg width="8" height="9" viewBox="0 0 8 9" fill="none"> 8058 <path d="M0.361816 4.25436L3.22545 7.25436L7.36182 0.254364" stroke="currentColor"/> 8059 </svg><span>Récupération disponible, Habituellement prête en 2 à 4 jours</span></div> 8060 </div> 8061 8062 <div class="text-subdued"><p>Centre commercial Cap3000 Nice Avenue Eugène Donadeï<br>06700 Saint-Laurent-du-Var<br>France</p></div> 8063 </div><hr><div class="v-stack gap-2.5"> 8064 <div class="v-stack gap-2"> 8065 <p class="h6">VAL D'EUROPE</p> 8066 8067 <div class="h-stack gap-2.5"><svg width="8" height="9" viewBox="0 0 8 9" fill="none"> 8068 <path d="M0.361816 4.25436L3.22545 7.25436L7.36182 0.254364" stroke="currentColor"/> 8069 </svg><span>Récupération disponible, Habituellement prête en 2 à 4 jours</span></div> 8070 </div> 8071 8072 <div class="text-subdued"><p>Centre Commercial Val d'Europe, 14 Cours du Danube<br>77700 Serris<br>France</p></div> 8073 </div><hr><div class="v-stack gap-2.5"> 8074 <div class="v-stack gap-2"> 8075 <p class="h6">STRASBOURG</p> 8076 8077 <div class="h-stack gap-2.5"><svg width="8" height="9" viewBox="0 0 8 9" fill="none"> 8078 <path d="M0.361816 4.25436L3.22545 7.25436L7.36182 0.254364" stroke="currentColor"/> 8079 </svg><span>Récupération disponible, Habituellement prête en 2 à 4 jours</span></div> 8080 </div> 8081 8082 <div class="text-subdued"><p>29 Rue des Hallebardes<br>67000 Strasbourg<br>France</p></div> 8083 </div><hr><div class="v-stack gap-2.5"> 8084 <div class="v-stack gap-2"> 8085 <p class="h6">TOULON GRAND VAR</p> 8086 8087 <div class="h-stack gap-2.5"><svg width="8" height="9" viewBox="0 0 8 9" fill="none"> 8088 <path d="M0.361816 4.25436L3.22545 7.25436L7.36182 0.254364" stroke="currentColor"/> 8089 </svg><span>Récupération disponible, Habituellement prête en 2 à 4 jours</span></div> 8090 </div> 8091 8092 <div class="text-subdued"><p>Ctre Grand Var<br>83160 Toulon<br>France</p></div> 8093 </div><hr><div class="v-stack gap-2.5"> 8094 <div class="v-stack gap-2"> 8095 <p class="h6">TOULOUSE</p> 8096 8097 <div class="h-stack gap-2.5"><svg width="8" height="9" viewBox="0 0 8 9" fill="none"> 8098 <path d="M0.361816 4.25436L3.22545 7.25436L7.36182 0.254364" stroke="currentColor"/> 8099 </svg><span>Récupération disponible, Habituellement prête en 2 à 4 jours</span></div> 8100 </div> 8101 8102 <div class="text-subdued"><p>39 Rue Boulbonne<br>31000 Toulouse<br>France</p></div> 8103 </div><hr><div class="v-stack gap-2.5"> 8104 <div class="v-stack gap-2"> 8105 <p class="h6">AEROVILLE</p> 8106 8107 <div class="h-stack gap-2.5"><svg width="8" height="9" viewBox="0 0 8 9" fill="none"> 8108 <path d="M0.361816 4.25436L3.22545 7.25436L7.36182 0.254364" stroke="currentColor"/> 8109 </svg><span>Récupération disponible, Habituellement prête en 2 à 4 jours</span></div> 8110 </div> 8111 8112 <div class="text-subdued"><p>30 Rue des Buissons Aéroville Commercial Center Paris-Charles De Gaulle<br>95700 Tremblay-en-France<br>France</p></div> 8113 </div><hr><div class="v-stack gap-2.5"> 8114 <div class="v-stack gap-2"> 8115 <p class="h6">VANNES</p> 8116 8117 <div class="h-stack gap-2.5"><svg width="8" height="9" viewBox="0 0 8 9" fill="none"> 8118 <path d="M0.361816 4.25436L3.22545 7.25436L7.36182 0.254364" stroke="currentColor"/> 8119 </svg><span>Récupération disponible, Habituellement prête en 2 à 4 jours</span></div> 8120 </div> 8121 8122 <div class="text-subdued"><p>13 Rue Saint-Vincent<br>56000 Vannes<br>France</p></div> 8123 </div><hr><div class="v-stack gap-2.5"> 8124 <div class="v-stack gap-2"> 8125 <p class="h6">VERSAILLES</p> 8126 8127 <div class="h-stack gap-2.5"><svg width="8" height="9" viewBox="0 0 8 9" fill="none"> 8128 <path d="M0.361816 4.25436L3.22545 7.25436L7.36182 0.254364" stroke="currentColor"/> 8129 </svg><span>Récupération disponible, Habituellement prête en 2 à 4 jours</span></div> 8130 </div> 8131 8132 <div class="text-subdued"><p>5 rue Ducis<br>78000 Versailles<br>France</p></div> 8133 </div><hr><div class="v-stack gap-2.5"> 8134 <div class="v-stack gap-2"> 8135 <p class="h6">VELIZY 2</p> 8136 8137 <div class="h-stack gap-2.5"><svg width="8" height="9" viewBox="0 0 8 9" fill="none"> 8138 <path d="M0.361816 4.25436L3.22545 7.25436L7.36182 0.254364" stroke="currentColor"/> 8139 </svg><span>Récupération disponible, Habituellement prête en 2 à 4 jours</span></div> 8140 </div> 8141 8142 <div class="text-subdued"><p>2 Avenue de l'Europe<br>78140 Vélizy Villacoublay<br>France</p></div> 8143 </div></div> 8144 </x-drawer></div></div> 8145<div 8146 class="product-info__block-item" 8147 data-block-id="offers_aXGqTj" 8148 data-block-type="offers" 8149 8150 data-block-allow-rerender 8151 8152 8153 8154 8155 ><style> 8156 @media screen and (max-width: 999px) { 8157 .product-info__block-item[data-block-type="offers"] { 8158 transform: translateX(-0.75rem); 8159 width: calc(100% + 1.5rem); 8160 } 8161 .product-info__block-item[data-block-type="offers"] .offer-item { 8162 padding: 1rem; 8163 } 8164 .product-info__block-item[data-block-type="offers"] .h-stack { 8165 gap: 1.25rem; 8166 } 8167 .product-info__block-item[data-block-type="offers"] .offer-list .offer-subheading { 8168 font-size: 14px; 8169 } 8170 } 8171 </style><div class="offers-container" data-offers-wrapper style="display: none;"></div></div></div></safe-sticky> 8172</div> 8173 </product-rerender> 8174 </div> 8175</div><product-sticky-add-to-cart 8176 class="product-sticky-add-to-cart color-scheme color-scheme--scheme-2" 8177 main-product-form="product-form-main-11020345999703-template--26884129882455__main" 8178 > 8179 <product-rerender 8180 id="product-sticky-add-to-cart-11020345999703-template--26884129882455__main" 8181 observe-form="product-form-main-11020345999703-template--26884129882455__main" 8182 > 8183 <div class="h-stack gap-6 sm-max:hidden"><img src="//www.kusmitea.com/cdn/shop/files/69ccaa76e308d3684f9a42cf6429ef819d9eca4d_ADVENTCAL26BIO_packshot_b2cweb.png?v=1785157587&width=1800" alt="" srcset="//www.kusmitea.com/cdn/shop/files/69ccaa76e308d3684f9a42cf6429ef819d9eca4d_ADVENTCAL26BIO_packshot_b2cweb.png?v=1785157587&width=70 70w, //www.kusmitea.com/cdn/shop/files/69ccaa76e308d3684f9a42cf6429ef819d9eca4d_ADVENTCAL26BIO_packshot_b2cweb.png?v=1785157587&width=140 140w, //www.kusmitea.com/cdn/shop/files/69ccaa76e308d3684f9a42cf6429ef819d9eca4d_ADVENTCAL26BIO_packshot_b2cweb.png?v=1785157587&width=210 210w, //www.kusmitea.com/cdn/shop/files/69ccaa76e308d3684f9a42cf6429ef819d9eca4d_ADVENTCAL26BIO_packshot_b2cweb.png?v=1785157587&width=280 280w" width="1800" height="1800" loading="lazy" class="constrained-image" style="--image-max-width: 70px"><div class="v-stack gap-0.5">
8184 <span class="subheading">Calendrier de l'Avent</span><price-list class="price-list "><sale-price class="subheading text-subdued"> 8185 <span class="sr-only">Prix de vente</span>38,90 â¬</sale-price></price-list> 8186</div> 8187 </div><quantity-selector class="quantity-selector " ><button type="button" class="quantity-selector__button" disabled> 8188 <span class="sr-only">Diminuer la quantité</span><svg aria-hidden="true" focusable="false" width="8" fill="none" class="icon icon-quantity-minus" part="icon" viewBox="0 0 8 2"> 8189 <path d="M0 1H8" stroke="currentColor" stroke-width="1.5"/> 8190 </svg></button><quantity-input class="contents"> 8191 <input class="quantity-selector__input subheading" type="number" value="1" name="quantity" inputmode="numeric" step="1" min="1" max="7199" aria-label="Changer la quantité"></quantity-input><button type="button" class="quantity-selector__button" > 8192 <span class="sr-only">Augmenter la quantité</span><svg aria-hidden="true" focusable="false" width="8" fill="none" class="icon icon-quantity-plus" part="icon" viewBox="0 0 8 8"> 8193 <path d="M0 4H8" stroke="currentColor" stroke-width="1.5"/> 8194 <path d="M4 0V8" stroke="currentColor" stroke-width="1.5"/> 8195 </svg></button></quantity-selector> 8196�<button type="submit" class="sm-max:hidden button button--outline" style="--button-text-color: var(--button-background-primary);" form="product-form-main-11020345999703-template--26884129882455__main" ><button-content class="button__content" rotated-text="Ajouter au panier"> 8197 <span class="button__text-wrapper">Ajouter au panier<span class="button__arrow"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> 8198<path d="M4 12.6667L12.6666 4M12.6666 4V12.32M12.6666 4H4.34667" stroke="#FBFBF6" stroke-linecap="round" stroke-linejoin="round"/> 8199</svg> 8200</span></span></button-content></button>�<button type="submit" class="sm:hidden button" form="product-form-main-11020345999703-template--26884129882455__main" ><button-content class="button__content" rotated-text="Ajouter au panier"> 8201 <span class="button__text-wrapper">Ajouter au panier<span class="button__arrow"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> 8202<path d="M4 12.6667L12.6666 4M12.6666 4V12.32M12.6666 4H4.34667" stroke="#FBFBF6" stroke-linecap="round" stroke-linejoin="round"/> 8203</svg> 8204</span></span></button-content></button></product-rerender> 8205 </product-sticky-add-to-cart> 8206 8207
8207<script> 8208 (function () { 8209 var formId = 'product-form-main-11020345999703-template--26884129882455__main'; 8210 var mainForm = document.getElementById(formId); 8211 var stickyBar = document.querySelector('product-sticky-add-to-cart[main-product-form="' + formId + '"]'); 8212 if (!mainForm || !stickyBar) return; 8213 8214 var syncing = false; 8215 8216 function getMainQtyInput() { return mainForm.querySelector('[name="quantity"]'); } 8217 function getStickyQtyInput() { return stickyBar.querySelector('[name="quantity"]'); } 8218 8219 // Sticky â Main 8220 stickyBar.addEventListener('change', function (e) { 8221 if (syncing || e.target.name !== 'quantity') return; 8222 var mainQty = getMainQtyInput(); 8223 if (mainQty && mainQty !== e.target) { 8224 syncing = true; 8225 mainQty.value = e.target.value; 8226 mainQty.dispatchEvent(new Event('change', { bubbles: true })); 8227 syncing = false; 8228 } 8229 }); 8230 8231 // Main â Sticky 8232 mainForm.addEventListener('change', function (e) { 8233 if (syncing || e.target.name !== 'quantity') return; 8234 var stickyQty = getStickyQtyInput(); 8235 if (stickyQty && stickyQty !== e.target) { 8236 syncing = true; 8237 stickyQty.value = e.target.value; 8238 stickyQty.dispatchEvent(new Event('change', { bubbles: true })); 8239 syncing = false; 8240 } 8241 }); 8242 })(); 8243 </script>
8243<template id="quick-buy-content"> 8244 <product-rerender id="quick-buy-modal-content" observe-form="product-form-quick-buy-11020345999703-template--26884129882455__main"><div class="quick-buy quick-buy--desktop md-max:hidden"> 8245 <div class="quick-buy-desktop__header"> 8246 <h2 class="quick-buy-desktop__title">Choisissez votre format :</h2> 8247 </div> 8248 8249 <div class="quick-buy-desktop__variants-list"><product-form style="--variant-order: 999"><form method="post" action="/cart/add" id="quick-buy-desktop-variant-form-11020345999703-54133287780695" accept-charset="UTF-8" class="shopify-product-form" enctype="multipart/form-data"><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="â" /><input type="hidden" name="id" value="54133287780695"><button type="submit" class="quick-buy-desktop__variant-item" data-variant-id="54133287780695"><div class="quick-buy-desktop__variant-image"><img src="//www.kusmitea.com/cdn/shop/files/69ccaa76e308d3684f9a42cf6429ef819d9eca4d_ADVENTCAL26BIO_packshot_b2cweb.png?v=1785157587&width=120" alt="Default Title" srcset="//www.kusmitea.com/cdn/shop/files/69ccaa76e308d3684f9a42cf6429ef819d9eca4d_ADVENTCAL26BIO_packshot_b2cweb.png?v=1785157587&width=60 60w" width="60" height="60" loading="lazy"></div><div class="quick-buy-desktop__variant-content"> 8250 <p class="quick-buy-desktop__variant-name">Default Title</p> 8251 <div class="quick-buy-desktop__variant-price"><price-list class="price-list "><sale-price class="regular_price-card"> 8252 <span class="sr-only">Prix de vente</span>38,90 â¬</sale-price></price-list> 8253</div> 8254 </div> 8255 </button><input type="hidden" name="product-id" value="11020345999703" /><input type="hidden" name="section-id" value="template--26884129882455__main" /></form></product-form></div> 8256 </div><div class="quick-buy quick-buy--mobile md:hidden"> 8257 <div class="quick-buy-mobile__header"> 8258 <h2 class="quick-buy-mobile__title">Choisissez votre format :</h2> 8259 </div> 8260 8261 <div class="quick-buy-mobile__variants-list"><product-form style="--variant-order: 999"><form method="post" action="/cart/add" id="quick-buy-mobile-variant-form-11020345999703-54133287780695" accept-charset="UTF-8" class="shopify-product-form" enctype="multipart/form-data"><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="â" /><input type="hidden" name="id" value="54133287780695"><button type="submit" class="quick-buy-mobile__variant-item" data-variant-id="54133287780695"><div class="quick-buy-mobile__variant-image"><img src="//www.kusmitea.com/cdn/shop/files/69ccaa76e308d3684f9a42cf6429ef819d9eca4d_ADVENTCAL26BIO_packshot_b2cweb.png?v=1785157587&width=100" alt="Default Title" srcset="//www.kusmitea.com/cdn/shop/files/69ccaa76e308d3684f9a42cf6429ef819d9eca4d_ADVENTCAL26BIO_packshot_b2cweb.png?v=1785157587&width=60 60w" width="60" height="60" loading="lazy"></div><div class="quick-buy-mobile__variant-content"> 8262 <p class="quick-buy-mobile__variant-name">Default Title</p> 8263 <div class="quick-buy-mobile__variant-price"><price-list class="price-list "><sale-price class="regular_price-card"> 8264 <span class="sr-only">Prix de vente</span>38,90 â¬</sale-price></price-list> 8265</div> 8266 </div> 8267 </button><input type="hidden" name="product-id" value="11020345999703" /><input type="hidden" name="section-id" value="template--26884129882455__main" /></form></product-form></div> 8268 </div> 8269 </product-rerender> 8270</template>
8271<script> 8272 // We save the product ID in local storage to be eventually used for recently viewed section 8273 try { 8274 let recentlyViewedProducts = JSON.parse(localStorage.getItem('theme:recently-viewed-products') || '[]'); 8275 8276 recentlyViewedProducts = recentlyViewedProducts.filter(item => item !== 11020345999703); // Delete product to remove to the start 8277 recentlyViewedProducts.unshift(11020345999703); // Add at the start 8278 8279 localStorage.setItem('theme:recently-viewed-products', JSON.stringify(recentlyViewedProducts)); 8280 } catch (e) { 8281 // Safari in private mode does not allow setting item, we silently fail 8282 } 8283</script>
8283 8284 8285 8286</section><section id="shopify-section-template--26884129882455__product_tabs_with_images_Nwtnnb" class="shopify-section shopify-section--product-tabs-with-images"> 8287 8288<style> 8289 #shopify-section-template--26884129882455__product_tabs_with_images_Nwtnnb { 8290 --product-tabs-grid: auto / minmax(0, 50fr) minmax(0, 50.0fr); 8291 } 8292 8293 /* (1) Autorise les colonnes à rétrécir : évite le débordement et le rognage 8294 du texte par le overflow-x:hidden de .product-tabs__grid (mobile). */ 8295 #shopify-section-template--26884129882455__product_tabs_with_images_Nwtnnb .product-tabs__content, 8296 #shopify-section-template--26884129882455__product_tabs_with_images_Nwtnnb .product-tabs__images { 8297 min-width: 0; 8298 } 8299 8300 @media screen and (min-width: 1000px) { 8301 #shopify-section-template--26884129882455__product_tabs_with_images_Nwtnnb .product-tabs__content { 8302 order: 1; 8303 } 8304 #shopify-section-template--26884129882455__product_tabs_with_images_Nwtnnb .product-tabs__images { 8305 order: 2; 8306 }} 8307 8308 /* RATIO DES VISUELS 8309 theme.css met .product-tabs__images-grid en height:100% et l'image en 8310 object-fit:cover : la boîte s'étire donc sur la hauteur de la colonne la 8311 plus haute, et le ratio final dépend de qui gagne (image vs contenu). 8312 Résultat : un visuel carré écrase la colonne de gauche, qui est courte 8313 à cause du "Lire la suite". 8314 On fixe le ratio en fonction du nombre de visuels â un seul en 2:1, 8315 deux en carré côte à côte, ce qui donne la même hauteur de bloc. */ 8316 #shopify-section-template--26884129882455__product_tabs_with_images_Nwtnnb .product-tabs__images-grid { 8317 height: auto; 8318 align-items: start; 8319 } 8320 #shopify-section-template--26884129882455__product_tabs_with_images_Nwtnnb .product-tabs__images-grid--single .product-tabs__image { 8321 height: auto; 8322 aspect-ratio: 2 / 1; 8323 } 8324 #shopify-section-template--26884129882455__product_tabs_with_images_Nwtnnb .product-tabs__images-grid--double .product-tabs__image { 8325 height: auto; 8326 aspect-ratio: 1 / 1; 8327 } 8328 8329 /* MOBILE : les 2 visuels s'empilent. 8330 theme.css passe la grille en display:flex sous 1000px, ce qui neutralise 8331 son propre grid-template-columns:1fr â les deux visuels restaient donc 8332 côte à côte à ~180px de large. On bascule la direction plutôt que le 8333 display, pour ne pas toucher au reste du comportement flex. */ 8334 @media screen and (max-width: 999px) { 8335 #shopify-section-template--26884129882455__product_tabs_with_images_Nwtnnb .product-tabs__images-grid--double { 8336 flex-direction: column; 8337 } 8338 #shopify-section-template--26884129882455__product_tabs_with_images_Nwtnnb .product-tabs__images-grid--double .product-tabs__image { 8339 flex: 0 0 auto; 8340 } 8341 } 8342 8343 /* Styles pour l'onglet Conseils d'infusion */ 8344 #shopify-section-template--26884129882455__product_tabs_with_images_Nwtnnb .product-tabs__info-grid { 8345 gap: 0.5rem; 8346 display: flex; 8347 flex-direction: column; 8348 } 8349 #shopify-section-template--26884129882455__product_tabs_with_images_Nwtnnb .product-tabs__info-item { 8350 display: flex; 8351 flex-direction: row; 8352 gap: 0.5rem; 8353 align-items: center; 8354 } 8355 #shopify-section-template--26884129882455__product_tabs_with_images_Nwtnnb .product-tabs__info-label { 8356 font-weight: 600; 8357 font-size: 1rem; 8358 } 8359 #shopify-section-template--26884129882455__product_tabs_with_images_Nwtnnb .product-tabs__info-value { 8360 font-size: 0.875rem; 8361 line-height: 1.6; 8362 } 8363 #shopify-section-template--26884129882455__product_tabs_with_images_Nwtnnb .tab-content__description .product-tabs__info-value { 8364 font-size: 1rem; 8365 } 8366 8367 /* (3) ONGLETS : on NE met PLUS overflow:visible (ça désactivait le scroll 8368 natif du thème et le conteneur rognait les onglets). On conserve le scroll 8369 horizontal et on réserve la place du soulignement via padding-bottom : 8370 overflow:hidden ne rogne qu'au bord du padding box, donc le ::after (-8px) 8371 reste visible dans les 10px de padding. */ 8372 #shopify-section-template--26884129882455__product_tabs_with_images_Nwtnnb .product-tabs::part(tab-list) { 8373 overflow-x: auto; 8374 overflow-y: hidden; 8375 padding-bottom: 10px; 8376 } 8377 8378 /* Soulignement sous chaque onglet (offsets alignés sur les gaps du thème : 8379 16px = demi-gap mobile/tablet de 32px, 24px = demi-gap desktop de 48px) */ 8380 #shopify-section-template--26884129882455__product_tabs_with_images_Nwtnnb .product-tabs button[role="tab"] { 8381 position: relative; 8382 } 8383 #shopify-section-template--26884129882455__product_tabs_with_images_Nwtnnb .product-tabs button[role="tab"]:first-child::after { 8384 content: ''; 8385 position: absolute; 8386 bottom: -8px; 8387 left: 0; 8388 width: calc(100% + 16px); 8389 height: 1px; 8390 background-color: #D0D0D0; 8391 } 8392 #shopify-section-template--26884129882455__product_tabs_with_images_Nwtnnb .product-tabs button[role="tab"]:not(:first-child):not(:last-child)::after { 8393 content: ''; 8394 position: absolute; 8395 bottom: -8px; 8396 left: -16px; 8397 width: calc(100% + 32px); 8398 height: 1px; 8399 background-color: #D0D0D0; 8400 } 8401 #shopify-section-template--26884129882455__product_tabs_with_images_Nwtnnb .product-tabs button[role="tab"]:last-child::after { 8402 content: ''; 8403 position: absolute; 8404 bottom: -8px; 8405 left: -16px; 8406 width: calc(100% + 16px); 8407 height: 1px; 8408 background-color: #D0D0D0; 8409 } 8410 @media screen and (min-width: 1000px) { 8411 #shopify-section-template--26884129882455__product_tabs_with_images_Nwtnnb .product-tabs button[role="tab"]:first-child::after { 8412 width: calc(100% + 24px); 8413 } 8414 #shopify-section-template--26884129882455__product_tabs_with_images_Nwtnnb .product-tabs button[role="tab"]:not(:first-child):not(:last-child)::after { 8415 left: -24px; 8416 width: calc(100% + 48px); 8417 } 8418 #shopify-section-template--26884129882455__product_tabs_with_images_Nwtnnb .product-tabs button[role="tab"]:last-child::after { 8419 left: -24px; 8420 width: calc(100% + 24px); 8421 } 8422 } 8423 #shopify-section-template--26884129882455__product_tabs_with_images_Nwtnnb .product-tabs button[role="tab"][aria-selected="true"]::after { 8424 background-color: #000000 !important; 8425 } 8426 8427 #shopify-section-template--26884129882455__product_tabs_with_images_Nwtnnb .tab-content__description { 8428 padding-bottom: 1rem; 8429 } 8430 #shopify-section-template--26884129882455__product_tabs_with_images_Nwtnnb .characteristics-content p, 8431 #shopify-section-template--26884129882455__product_tabs_with_images_Nwtnnb .sources-content p { 8432 margin-block-start: 0.5rem; 8433 } 8434 8435 /* Collapse "Lire la suite" */ 8436 #shopify-section-template--26884129882455__product_tabs_with_images_Nwtnnb .tab-content__description.is-collapsed { 8437 display: block; 8438 max-height: 190px !important; 8439 overflow: hidden !important; 8440 -webkit-line-clamp: unset !important; 8441 -webkit-mask-image: linear-gradient(to bottom, black calc(100% - 50px), transparent 100%); 8442 mask-image: linear-gradient(to bottom, black calc(100% - 50px), transparent 100%); 8443 } 8444 8445 /* Scrollbar custom du contenu */ 8446 #shopify-section-template--26884129882455__product_tabs_with_images_Nwtnnb .tab-content__description::-webkit-scrollbar {
8447 width: 3px; 8448 height: 3px; 8449 } 8450 #shopify-section-template--26884129882455__product_tabs_with_images_Nwtnnb .tab-content__description::-webkit-scrollbar-track { 8451 background: #e1e1e1; 8452 border-radius: 4px; 8453 } 8454 #shopify-section-template--26884129882455__product_tabs_with_images_Nwtnnb .tab-content__description::-webkit-scrollbar-thumb { 8455 background: #000; 8456 border-radius: 4px; 8457 } 8458 #shopify-section-template--26884129882455__product_tabs_with_images_Nwtnnb .tab-content__description::-webkit-scrollbar-thumb:hover { 8459 background: #333; 8460 } 8461 8462 /* Bloc réassurance â rendu à la suite de la description, dans la zone 8463 repliable "Lire plus" (caché par défaut, visible à l'expansion) */ 8464 #shopify-section-template--26884129882455__product_tabs_with_images_Nwtnnb .product-tabs__reassurance { 8465 margin-top: 1.5rem; 8466 padding: 1rem 1.25rem; 8467 border-left: 2px solid #000; 8468 background-color: rgba(0, 0, 0, 0.02); 8469 } 8470 8471 #shopify-section-template--26884129882455__product_tabs_with_images_Nwtnnb .product-tabs__reassurance p { 8472 margin: 0; 8473 font-size: 0.9375rem; 8474 line-height: 1.6; 8475 font-style: italic; 8476 color: #444; 8477 } 8478 8479 #shopify-section-template--26884129882455__product_tabs_with_images_Nwtnnb .product-tabs__reassurance p + p { 8480 margin-top: 0.5rem; 8481 } 8482 8483 /* -------------------------------------------------------------------------- 8484 Navigation de la barre d'onglets quand elle déborde 8485 -------------------------------------------------------------------------- */ 8486 8487 #shopify-section-template--26884129882455__product_tabs_with_images_Nwtnnb .product-tabs__tablist-nav { 8488 position: relative; 8489 } 8490 8491 /* `x-tabs` porte à la fois le rail et les panneaux : impossible de flanquer le 8492 seul rail de deux colonnes sans décaler les panneaux. On creuse donc les 8493 gouttières *dans* le rail, en marge interne, et les flèches s'y posent. */ 8494 #shopify-section-template--26884129882455__product_tabs_with_images_Nwtnnb .product-tabs__tablist-nav.is-overflowing .product-tabs::part(tab-list) { 8495 padding-inline: 2rem; 8496 } 8497 8498 /* Le dégradé efface complètement la gouttière : un onglet qui y défile 8499 disparaît avant d'atteindre la flèche. */ 8500 #shopify-section-template--26884129882455__product_tabs_with_images_Nwtnnb .product-tabs__tablist-nav.is-scrollable-start .product-tabs::part(tab-list) { 8501 -webkit-mask-image: linear-gradient(to right, transparent 0, transparent 2rem, #000 4rem); 8502 mask-image: linear-gradient(to right, transparent 0, transparent 2rem, #000 4rem); 8503 } 8504 8505 #shopify-section-template--26884129882455__product_tabs_with_images_Nwtnnb .product-tabs__tablist-nav.is-scrollable-end .product-tabs::part(tab-list) { 8506 -webkit-mask-image: linear-gradient(to left, transparent 0, transparent 2rem, #000 4rem); 8507 mask-image: linear-gradient(to left, transparent 0, transparent 2rem, #000 4rem); 8508 } 8509 8510 #shopify-section-template--26884129882455__product_tabs_with_images_Nwtnnb .product-tabs__tablist-nav.is-scrollable-start.is-scrollable-end 8511 .product-tabs::part(tab-list) { 8512 -webkit-mask-image: linear-gradient( 8513 to right, 8514 transparent 0, 8515 transparent 2rem, 8516 #000 4rem, 8517 #000 calc(100% - 4rem), 8518 transparent calc(100% - 2rem), 8519 transparent 100% 8520 ); 8521 mask-image: linear-gradient( 8522 to right, 8523 transparent 0, 8524 transparent 2rem, 8525 #000 4rem, 8526 #000 calc(100% - 4rem), 8527 transparent calc(100% - 2rem), 8528 transparent 100% 8529 ); 8530 } 8531 8532 #shopify-section-template--26884129882455__product_tabs_with_images_Nwtnnb .product-tabs__nav-arrow { 8533 position: absolute; 8534 top: 0; 8535 /* Hauteur réelle de la barre d'onglets, mesurée en JS */ 8536 height: var(--tablist-height, 2rem); 8537 z-index: 2; 8538 display: none; 8539 align-items: center; 8540 justify-content: center; 8541 width: 2rem; 8542 padding: 0; 8543 border: none; 8544 background: none; 8545 color: currentColor; 8546 cursor: pointer; 8547 opacity: 0.3; 8548 pointer-events: none; 8549 transition: opacity 0.2s ease; 8550 } 8551 8552 #shopify-section-template--26884129882455__product_tabs_with_images_Nwtnnb .product-tabs__nav-arrow--prev { 8553 left: 0; 8554 } 8555 8556 #shopify-section-template--26884129882455__product_tabs_with_images_Nwtnnb .product-tabs__nav-arrow--next { 8557 right: 0; 8558 } 8559 8560 /* Les deux flèches apparaissent ensemble dès que le rail déborde : sinon la 8561 gouttière naîtrait au premier défilement et décalerait les onglets. */ 8562 #shopify-section-template--26884129882455__product_tabs_with_images_Nwtnnb .product-tabs__tablist-nav.is-scrollable-start .product-tabs__nav-arrow--prev, 8563 #shopify-section-template--26884129882455__product_tabs_with_images_Nwtnnb .product-tabs__tablist-nav.is-scrollable-end .product-tabs__nav-arrow--next { 8564 opacity: 1; 8565 pointer-events: auto; 8566 } 8567 8568 #shopify-section-template--26884129882455__product_tabs_with_images_Nwtnnb .product-tabs__nav-arrow .icon { 8569 width: 12px; 8570 height: auto; 8571 } 8572 8573 #shopify-section-template--26884129882455__product_tabs_with_images_Nwtnnb .product-tabs__nav-arrow--prev .icon { 8574 transform: rotate(180deg); 8575 } 8576 8577 /* Flèches réservées aux pointeurs précis : au doigt, le swipe suffit. */ 8578 @media (hover: hover) and (pointer: fine) { 8579 #shopify-section-template--26884129882455__product_tabs_with_images_Nwtnnb .product-tabs__tablist-nav.is-overflowing .product-tabs__nav-arrow { 8580 display: flex; 8581 } 8582 } 8583</style> 8584 8585<div 8586 8587 id="description" 8588 8589 class="color-scheme color-scheme--scheme-2" 8590> 8591 <div class="container section-spacing"> 8592 <div class="product-tabs__grid gap-2"><div class="product-tabs__content"><div class="product-tabs__tablist-nav" data-tablist-nav> 8593 <button 8594 type="button" 8595 class="product-tabs__nav-arrow product-tabs__nav-arrow--prev" 8596 data-tablist-scroll="prev" 8597 aria-hidden="true" 8598 tabindex="-1" 8599 >
8599<svg aria-hidden="true" focusable="false" width="9" class="icon icon-chevron-right" part="icon" viewBox="0 0 9 10"> 8600 <path fill="none" stroke="currentColor" stroke-width="1.5" d="m2.5 9 4-4-4-4"/> 8601 </svg></button> 8602 8603 <x-tabs class="product-tabs"><button 8604 type="button" 8605 slot="tab" 8606 aria-selected="false" 8607 8608 > 8609 <span class="h3">Description</span> 8610 </button><div slot="tabpanel" class="tab-content" > 8611 <div 8612 class="tab-content__description prose is-collapsed" 8613 id="description-content-description_NnKKXL" 8614 > 8615 <p>Le Calendrier de l'Avent Kusmi Tea édition 2026 vous invite à patienter jusqu'à Noël avec 24 surprises gourmandes et enchanteresses ! Poussez les portes du Cabinet de Voyance Kusmi Tea et laissez-vous transporter par ce calendrier imaginé tel un oracle, où chacune des 24 cases révèle un nouveau présage.</p><p>Une sélection de 20 sachets de thés noirs, verts et blancs bio, dâinfusions sans théine et de recettes bien-être, mais également des cadeaux exclusifs de Noël⦠Deux miniatures en édition limitée, un accessoire et une savoureuse spécialité de thé à tartiner viennent compléter ce précieux assortiment.</p><p>Présenté dans un coffret illustré en édition limitée, ce Calendrier de l'Avent célèbre l'univers du Cabinet de Voyance à travers un décor raffiné aux détails dorés et aux motifs mystiques. Un bel objet à exposer tout au long de lâannée chez soi en découvrant une multitude de mélanges et de douceurs !</p><p>Contenu du Calendrier de l'Avent:</p><ul> 8616<li> 8617<b>Thés noirs bio (sachets)</b> : Tsarevna, Anastasia, Prince Vladimir, St-Pétersbourg, Sweet Love, Thé du matin n°24</li> 8618<li> 8619<b>Thés verts bio (sachets)</b> : Label Impérial, Vert Gingembre-Citron, Thé Vert à la Menthe, Rituel Défenses Immunitaires, Rituel Ãnergie</li> 8620<li> 8621<b>Thés blancs bio (sachets)</b> : Tropical White, White Anastasia</li> 8622<li> 8623<b>Infusions bio sans théine</b> : AquaRosa, AquaSummer, Feel Zen, Happy Mind, Verveine Menthe, Rooibos Vanille, Rituel Sommeil</li> 8624<li> 8625<b>2 miniatures de Noël</b> : Le Dessert (16 g) et Glögg (25 g)</li> 8626<li><b>1 infuseur étoile</b></li> 8627<li> 8628<b>1 spécialité de thé</b> à tartiner infusée au thé Le Dessert</li> 8629</ul> 8630</div><div 8631 class="tab-content__read-more" 8632 id="read-more-btn-description_NnKKXL" 8633 style="display: none;" 8634 onclick="toggleDescriptiondescription_NnKKXL()" 8635 > 8636 <span id="read-more-text-description_NnKKXL">Lire la suite</span> 8637 </div></div>
8637<script> 8638 (function() { 8639 function checkIfTruncateddescription_NnKKXL() { 8640 const content = document.getElementById('description-content-description_NnKKXL'); 8641 const btn = document.getElementById('read-more-btn-description_NnKKXL'); 8642 8643 if (!content || !btn) return; 8644 8645 // Vérifie si le contenu est tronqué (scrollHeight > clientHeight) 8646 if (content.scrollHeight > content.clientHeight) { 8647 btn.style.display = ''; 8648 } else { 8649 btn.style.display = 'none'; 8650 // Si le contenu n'est pas tronqué, on enlève la classe is-collapsed 8651 content.classList.remove('is-collapsed'); 8652 } 8653 } 8654 8655 // Vérifier après le chargement complet (images, fonts, etc.) 8656 if (document.readyState === 'complete') { 8657 checkIfTruncateddescription_NnKKXL(); 8658 } else { 8659 window.addEventListener('load', checkIfTruncateddescription_NnKKXL); 8660 } 8661 8662 // Revérifier après un petit délai pour les polices web 8663 setTimeout(checkIfTruncateddescription_NnKKXL, 100); 8664 })(); 8665 8666 function toggleDescriptiondescription_NnKKXL() { 8667 const content = document.getElementById('description-content-description_NnKKXL'); 8668 const text = document.getElementById('read-more-text-description_NnKKXL'); 8669 8670 if (content.classList.contains('is-collapsed')) { 8671 content.classList.remove('is-collapsed'); 8672 text.textContent = 'Lire moins'; 8673 } else { 8674 content.classList.add('is-collapsed'); 8675 text.textContent = 'Lire la suite'; 8676 } 8677 } 8678 </script>
8678</x-tabs> 8679 8680 <button 8681 type="button" 8682 class="product-tabs__nav-arrow product-tabs__nav-arrow--next" 8683 data-tablist-scroll="next" 8684 aria-hidden="true" 8685 tabindex="-1" 8686 ><svg aria-hidden="true" focusable="false" width="9" class="icon icon-chevron-right" part="icon" viewBox="0 0 9 10"> 8687 <path fill="none" stroke="currentColor" stroke-width="1.5" d="m2.5 9 4-4-4-4"/> 8688 </svg></button> 8689 </div></div><div class="product-tabs__images color-scheme color-scheme--scheme-2"><div class="product-tabs__images-grid gap-2 product-tabs__images-grid--single" ><div class="product-tabs__image"><img src="//www.kusmitea.com/cdn/shop/files/calendrier_et_coffret.webp?v=1790178528&width=1200" alt="" srcset="//www.kusmitea.com/cdn/shop/files/calendrier_et_coffret.webp?v=1790178528&width=352 352w, //www.kusmitea.com/cdn/shop/files/calendrier_et_coffret.webp?v=1790178528&width=832 832w, //www.kusmitea.com/cdn/shop/files/calendrier_et_coffret.webp?v=1790178528&width=1200 1200w" width="1200" height="683" loading="lazy" sizes="(min-width: 1000px) 50vw, 100vw"></div></div></div> 8690 </div> 8691 </div> 8692</div> 8693
8694<script> 8695 (function () { 8696 'use strict'; 8697 8698 var nav = document.querySelector('#shopify-section-template--26884129882455__product_tabs_with_images_Nwtnnb [data-tablist-nav]'); 8699 var host = nav && nav.querySelector('x-tabs.product-tabs'); 8700 8701 if (!host) { 8702 return; 8703 } 8704 8705 // Le filet sous le dernier onglet déborde d'un demi-gap : on mesure donc 8706 // l'étendue réelle des boutons plutôt que scrollWidth, qui l'inclut et 8707 // ferait croire à un débordement permanent. 8708 var EDGE_TOLERANCE = 2; 8709 var list = null; 8710 var buttons = []; 8711 8712 function measure() { 8713 var rect = list.getBoundingClientRect(); 8714 var last = buttons[buttons.length - 1]; 8715 // La gouttière de droite fait partie du défilement : sans elle, le dernier 8716 // onglet s'arrêterait pile sous la flèche au lieu de la dégager. 8717 var gutter = parseFloat(getComputedStyle(list).paddingRight) || 0; 8718 var contentEnd = last ? last.getBoundingClientRect().right - rect.left + list.scrollLeft + gutter : 0; 8719 8720 return { 8721 max: Math.max(0, Math.round(contentEnd - list.clientWidth)), 8722 position: list.scrollLeft 8723 }; 8724 } 8725 8726 function refresh() { 8727 var state = measure(); 8728 var overflows = state.max > EDGE_TOLERANCE; 8729 var padding = parseFloat(getComputedStyle(list).paddingBottom) || 0; 8730 8731 // Les flèches se calent sur la rangée de boutons, au-dessus du filet 8732 nav.style.setProperty('--tablist-height', list.offsetHeight - padding + 'px'); 8733 nav.classList.toggle('is-overflowing', overflows); 8734 nav.classList.toggle('is-scrollable-start', overflows && state.position > EDGE_TOLERANCE); 8735 nav.classList.toggle('is-scrollable-end', overflows && state.position < state.max - EDGE_TOLERANCE); 8736 } 8737 8738 function reveal(button) { 8739 var margin = 24; 8740 var rect = list.getBoundingClientRect(); 8741 var box = button.getBoundingClientRect(); 8742 var start = box.left - rect.left + list.scrollLeft; 8743 var end = start + box.width; 8744 8745 if (start - margin < list.scrollLeft) { 8746 list.scrollTo({ left: Math.max(0, start - margin), behavior: 'smooth' }); 8747 } else if (end + margin > list.scrollLeft + list.clientWidth) { 8748 list.scrollTo({ left: end + margin - list.clientWidth, behavior: 'smooth' }); 8749 } 8750 } 8751 8752 /** 8753 * à la souris, le geste vertical fait défiler la barre horizontalement. 8754 * Une fois le bord atteint, l'événement repart à la page pour ne pas 8755 * bloquer le défilement vertical. 8756 */ 8757 function onWheel(event) { 8758 if (event.ctrlKey || Math.abs(event.deltaX) > Math.abs(event.deltaY)) { 8759 return; 8760 } 8761 8762 var max = measure().max; 8763 8764 if (max <= EDGE_TOLERANCE) { 8765 return; 8766 } 8767 8768 var delta = event.deltaY; 8769 8770 if (event.deltaMode === 1) { 8771 delta *= 16; 8772 } else if (event.deltaMode === 2) { 8773 delta *= list.clientWidth; 8774 } 8775 8776 var position = Math.min(max, Math.max(0, list.scrollLeft + delta)); 8777 8778 if (Math.abs(position - list.scrollLeft) < 1) { 8779 return; 8780 } 8781 8782 event.preventDefault(); 8783 list.scrollLeft = position; 8784 } 8785 8786 function init() { 8787 list = host.shadowRoot && host.shadowRoot.querySelector('slot[name="tab"]'); 8788 buttons = Array.prototype.slice.call(host.querySelectorAll('button[slot="tab"]')); 8789 8790 if (!list || buttons.length === 0) { 8791 return false; 8792 } 8793 8794 list.addEventListener('wheel', onWheel, { passive: false }); 8795 list.addEventListener('scroll', refresh, { passive: true }); 8796 8797 buttons.forEach(function (button) { 8798 button.addEventListener('click', function () { 8799 reveal(button); 8800 }); 8801 }); 8802 8803 nav.querySelectorAll('[data-tablist-scroll]').forEach(function (button) { 8804 button.addEventListener('click', function () { 8805 var amount = Math.max(120, list.clientWidth * 0.8); 8806 var direction = button.getAttribute('data-tablist-scroll') === 'prev' ? -1 : 1; 8807 // On borne sur l'étendue des boutons, sinon le défilement natif va 8808 // jusqu'au filet et laisse un vide à droite. 8809 var position = Math.min(measure().max, Math.max(0, list.scrollLeft + amount * direction)); 8810 8811 list.scrollTo({ left: position, behavior: 'smooth' }); 8812 }); 8813 }); 8814 8815 if ('ResizeObserver' in window) { 8816 new ResizeObserver(refresh).observe(list); 8817 } 8818 8819 if (document.fonts && document.fonts.ready) { 8820 document.fonts.ready.then(refresh); 8821 } 8822 8823 refresh(); 8824 8825 return true; 8826 } 8827 8828 // Le scroller vit dans le shadow DOM de <x-tabs> : il faut attendre 8829 // que le composant du thème soit défini et mis à niveau. 8830 window.customElements.whenDefined('x-tabs').then(function () { 8831 if (!init() && document.readyState !== 'complete') { 8832 window.addEventListener('load', init, { once: true }); 8833 } 8834 }); 8835 })(); 8836</script>
8836 8837 8838 8839</section><section id="shopify-section-template--26884129882455__faq_47KiAc" class="shopify-section shopify-section--faq"> 8840</section><section id="shopify-section-template--26884129882455__nosto_recommendations_F76GXE" class="shopify-section shopify-section--nosto-recommendations"><style> 8841 #shopify-section-template--26884129882455__nosto_recommendations_F76GXE { 8842 --product-list-column-count: 2; 8843 8844 .floating-controls-container:has(.product-list:empty) { 8845 display: none; 8846 } 8847 } 8848 8849 #shopify-section-template--26884129882455__nosto_recommendations_F76GXE .container { 8850 --container-gutter-context: 1.25rem; 8851 } 8852 8853 8854 /* Cacher complètement les boutons carousel disabled */ 8855 #shopify-section-template--26884129882455__nosto_recommendations_F76GXE .floating-controls__control .circle-button[disabled] { 8856 opacity: 0; 8857 visibility: visible; 8858 translate: 0; 8859 scale: 1; 8860 pointer-events: none; 8861 } 8862 8863 /* Toujours afficher les boutons carousel actifs sur mobile */ 8864 @media screen and (pointer: coarse) { 8865 #shopify-section-template--26884129882455__nosto_recommendations_F76GXE .floating-controls-container:has(.is-scrollable) 8866 .floating-controls__control 8867 .circle-button { 8868 opacity: 1; 8869 translate: 0; 8870 } 8871 8872 #shopify-section-template--26884129882455__nosto_recommendations_F76GXE .floating-controls-container:has(.is-scrollable) 8873 .floating-controls__control 8874 .circle-button[disabled] { 8875 opacity: 0; 8876 } 8877 } 8878 8879 /* Afficher les boutons sur desktop au hover */ 8880 @media screen and (min-width: 700px) and (pointer: fine) { 8881 #shopify-section-template--26884129882455__nosto_recommendations_F76GXE .floating-controls-container:has(.is-scrollable):hover 8882 .floating-controls__control 8883 .circle-button { 8884 opacity: 1; 8885 translate: 0; 8886 } 8887 8888 #shopify-section-template--26884129882455__nosto_recommendations_F76GXE .floating-controls-container:has(.is-scrollable):hover 8889 .floating-controls__control 8890 .circle-button[disabled] { 8891 opacity: 0; 8892 } 8893 } 8894 8895 @media screen and (min-width: 700px) { 8896 #shopify-section-template--26884129882455__nosto_recommendations_F76GXE { 8897 --product-list-column-count: 2; 8898 } 8899 8900 #shopify-section-template--26884129882455__nosto_recommendations_F76GXE .container { 8901 --container-gutter-context: 1.75rem; 8902 } 8903 } 8904 8905 @media screen and (min-width: 1000px) { 8906 #shopify-section-template--26884129882455__nosto_recommendations_F76GXE { 8907 --product-list-column-count: 5; 8908 } 8909 } 8910</style> 8911 8912 8913 <div class="color-scheme color-scheme--scheme-1"> 8914 <div class="container section-spacing"> 8915 <div class="v-stack gap-5 sm:gap-8"><div class="prose "> 8916 8917 <p class="h2"><strong>Vous aimerez aussi</strong></p> 8918 </div><nosto-recommendations 8919 data-nosto-placement="productpage-nosto-1" 8920 data-nosto-products-to-show="5" 8921 data-downgrade-headings 8922 > 8923 <div class="w-full floating-controls-container"> 8924 <carousel-prev-button class="floating-controls__control" aria-controls="nosto-product-list-template--26884129882455__nosto_recommendations_F76GXE"> 8925 <button class="circle-button circle-button--xl" disabled> 8926 <span class="sr-only">Précédent</span><svg aria-hidden="true" focusable="false" width="14" class="icon icon-big-arrow-left icon--direction-aware" part="icon" viewBox="0 0 36 36"> 8927 <path fill="none" stroke="currentColor" stroke-width="2" d="M35 18H3M19.5 34.5 3 18 19.5 1.5"/> 8928 </svg></button> 8929 </carousel-prev-button> 8930 8931 <product-list 8932 id="nosto-product-list-template--26884129882455__nosto_recommendations_F76GXE" 8933 class="product-list product-list--padded product-list--carousel scroll-area full-bleed" 8934 data-nosto-content 8935 ></product-list> 8936 8937 <carousel-next-button class="floating-controls__control" aria-controls="nosto-product-list-template--26884129882455__nosto_recommendations_F76GXE"> 8938 <button class="circle-button circle-button--xl"> 8939 <span class="sr-only">Suivant</span><svg aria-hidden="true" focusable="false" width="14" class="icon icon-big-arrow-right icon--direction-aware" part="icon" viewB
8939ox="0 0 36 36"> 8940 <path fill="none" stroke="currentColor" stroke-width="2" d="M1 18h32M16.5 1.5 33 18 16.5 34.5"/> 8941 </svg></button> 8942 </carousel-next-button> 8943 </div><div class="skeleton w-full floating-controls-container"> 8944 <carousel-prev-button class="floating-controls__control"> 8945 <button class="circle-button circle-button--xl" disabled> 8946 <span class="sr-only">Précédent</span><svg aria-hidden="true" focusable="false" width="14" class="icon icon-big-arrow-left icon--direction-aware" part="icon" viewBox="0 0 36 36"> 8947 <path fill="none" stroke="currentColor" stroke-width="2" d="M35 18H3M19.5 34.5 3 18 19.5 1.5"/> 8948 </svg></button> 8949 </carousel-prev-button> 8950 8951 <product-list 8952 class="product-list product-list--padded product-list--carousel scroll-area full-bleed" 8953 ><div class="product-card product-card--skeleton product-card--info-outside snap-start color-scheme color-scheme--scheme-1" ><div class="product-card__figure"><div class="product-card__badges-skeleton place-self-start-end"> 8954 <div class="skeleton-badge skeleton-pulse"></div> 8955 </div><div class="product-card__media product-card__media--skeleton"> 8956 <div class="product-card__image-skeleton skeleton-pulse aspect-square"></div> 8957 </div><div class="product-card__quick-buy--mobile product-card__quick-buy--skeleton sm:hidden"> 8958 <div class="skeleton-quick-buy-button skeleton-pulse"></div> 8959 </div></div><div class="product-card__info product-card__info--flush"> 8960 <div class="v-stack gap-2.5 justify-items-start text-start"> 8961 <div class="v-stack gap-0.5"> 8962 <div class="v-stack gap-2.5"> 8963 <div class="v-stack gap-1"> 8964 <div class="v-stack gap-0.5"><div class="skeleton-title skeleton-pulse"></div><div class="skeleton-subtitle skeleton-pulse"></div> 8965 </div> 8966 </div> 8967 </div><div class="v-stack gap-1"> 8968 <div class="price-and-cart-container"> 8969 <div class="skeleton-price skeleton-pulse"></div><div class="product-card__quick-buy--inline product-card__quick-buy--skeleton"> 8970 <div class="skeleton-quick-buy-button skeleton-pulse"></div> 8971 </div></div> 8972 </div></div> 8973 </div> 8974 </div></div> 8975 8976 8977<div class="product-card product-card--skeleton product-card--info-outside snap-start color-scheme color-scheme--scheme-1" ><div class="product-card__figure"><div class="product-card__badges-skeleton place-self-start-end"> 8978 <div class="skeleton-badge skeleton-pulse"></div> 8979 </div><div class="product-card__media product-card__media--skeleton"> 8980 <div class="product-card__image-skeleton skeleton-pulse aspect-square"></div> 8981 </div><div class="product-card__quick-buy--mobile product-card__quick-buy--skeleton sm:hidden"> 8982 <div class="skeleton-quick-buy-button skeleton-pulse"></div> 8983 </div></div><div class="product-card__info product-card__info--flush"> 8984 <div class="v-stack gap-2.5 justify-items-start text-start"> 8985 <div class="v-stack gap-0.5"> 8986 <div class="v-stack gap-2.5"> 8987 <div class="v-stack gap-1"> 8988 <div class="v-stack gap-0.5"><div class="skeleton-title skeleton-pulse"></div><div class="skeleton-subtitle skeleton-pulse"></div> 8989 </div> 8990 </div> 8991 </div><div class="v-stack gap-1"> 8992 <div class="price-and-cart-container"> 8993 <div class="skeleton-price skeleton-pulse"></div><div class="product-card__quick-buy--inline product-card__quick-buy--skeleton"> 8994 <div class="skeleton-quick-buy-button skeleton-pulse"></div> 8995 </div></div> 8996 </div></div> 8997 </div> 8998 </div></div> 8999 9000 9001<div class="product-card product-card--skeleton product-card--info-outside snap-start color-scheme color-scheme--scheme-1" ><div class="product-card__figure"><div class="product-card__badges-skeleton place-self-start-end"> 9002 <div class="skeleton-badge skeleton-pulse"></div> 9003 </div><div class="product-card__media product-card__media--skeleton">
9004 <div class="product-card__image-skeleton skeleton-pulse aspect-square"></div> 9005 </div><div class="product-card__quick-buy--mobile product-card__quick-buy--skeleton sm:hidden"> 9006 <div class="skeleton-quick-buy-button skeleton-pulse"></div> 9007 </div></div><div class="product-card__info product-card__info--flush"> 9008 <div class="v-stack gap-2.5 justify-items-start text-start"> 9009 <div class="v-stack gap-0.5"> 9010 <div class="v-stack gap-2.5"> 9011 <div class="v-stack gap-1"> 9012 <div class="v-stack gap-0.5"><div class="skeleton-title skeleton-pulse"></div><div class="skeleton-subtitle skeleton-pulse"></div> 9013 </div> 9014 </div> 9015 </div><div class="v-stack gap-1"> 9016 <div class="price-and-cart-container"> 9017 <div class="skeleton-price skeleton-pulse"></div><div class="product-card__quick-buy--inline product-card__quick-buy--skeleton"> 9018 <div class="skeleton-quick-buy-button skeleton-pulse"></div> 9019 </div></div> 9020 </div></div> 9021 </div> 9022 </div></div> 9023 9024 9025<div class="product-card product-card--skeleton product-card--info-outside snap-start color-scheme color-scheme--scheme-1" ><div class="product-card__figure"><div class="product-card__badges-skeleton place-self-start-end"> 9026 <div class="skeleton-badge skeleton-pulse"></div> 9027 </div><div class="product-card__media product-card__media--skeleton"> 9028 <div class="product-card__image-skeleton skeleton-pulse aspect-square"></div> 9029 </div><div class="product-card__quick-buy--mobile product-card__quick-buy--skeleton sm:hidden"> 9030 <div class="skeleton-quick-buy-button skeleton-pulse"></div> 9031 </div></div><div class="product-card__info product-card__info--flush"> 9032 <div class="v-stack gap-2.5 justify-items-start text-start"> 9033 <div class="v-stack gap-0.5"> 9034 <div class="v-stack gap-2.5"> 9035 <div class="v-stack gap-1"> 9036 <div class="v-stack gap-0.5"><div class="skeleton-title skeleton-pulse"></div><div class="skeleton-subtitle skeleton-pulse"></div> 9037 </div> 9038 </div> 9039 </div><div class="v-stack gap-1"> 9040 <div class="price-and-cart-container"> 9041 <div class="skeleton-price skeleton-pulse"></div><div class="product-card__quick-buy--inline product-card__quick-buy--skeleton"> 9042 <div class="skeleton-quick-buy-button skeleton-pulse"></div> 9043 </div></div> 9044 </div></div> 9045 </div> 9046 </div></div> 9047 9048 9049<div class="product-card product-card--skeleton product-card--info-outside snap-start color-scheme color-scheme--scheme-1" ><div class="product-card__figure"><div class="product-card__badges-skeleton place-self-start-end"> 9050 <div class="skeleton-badge skeleton-pulse"></div> 9051 </div><div class="product-card__media product-card__media--skeleton"> 9052 <div class="product-card__image-skeleton skeleton-pulse aspect-square"></div> 9053 </div><div class="product-card__quick-buy--mobile product-card__quick-buy--skeleton sm:hidden"> 9054 <div class="skeleton-quick-buy-button skeleton-pulse"></div> 9055 </div></div><div class="product-card__info product-card__info--flush"> 9056 <div class="v-stack gap-2.5 justify-items-start text-start"> 9057 <div class="v-stack gap-0.5"> 9058 <div class="v-stack gap-2.5"> 9059 <div class="v-stack gap-1"> 9060 <div class="v-stack gap-0.5"><div class="skeleton-title skeleton-pulse"></div><div class="skeleton-subtitle skeleton-pulse"></div> 9061 </div> 9062 </div> 9063 </div><div class="v-stack gap-1"> 9064 <div class="price-and-cart-container"> 9065 <div class="skeleton-price skeleton-pulse"></div><div class="product-card__quick-buy--inline product-card__quick-buy--skeleton"> 9066 <div class="skeleton-quick-buy-button skeleton-pulse"></div> 9067 </div></div> 9068 </div></div> 9069 </div> 9070 </div></div> 9071 9072 9073</product-list> 9074
9075 <carousel-next-button class="floating-controls__control"> 9076 <button class="circle-button circle-button--xl" disabled> 9077 <span class="sr-only">Suivant</span><svg aria-hidden="true" focusable="false" width="14" class="icon icon-big-arrow-right icon--direction-aware" part="icon" viewBox="0 0 36 36"> 9078 <path fill="none" stroke="currentColor" stroke-width="2" d="M1 18h32M16.5 1.5 33 18 16.5 34.5"/> 9079 </svg></button> 9080 </carousel-next-button> 9081 </div> 9082 </nosto-recommendations></div> 9083 </div> 9084 </div> 9085 9086
9087<script> 9088 class NostoRecommendations extends HTMLElement { 9089 // Constants 9090 static TIMEOUTS = { 9091 NOSTO_LOAD: 10000, 9092 CHECK_INTERVAL: 100, 9093 }; 9094 9095 static SECTION_NAMES = { 9096 PRODUCT_CARD: 'ax-card-product', 9097 }; 9098 9099 static SELECTORS = { 9100 nostoPlacement: 'nostoPlacement', 9101 nostoContent: '[data-nosto-content]', 9102 recommendationsNosto: '[data-nosto-recommendation]', 9103 productCardWithTracking: 'product-card[data-nosto-tracking-url]', 9104 }; 9105 9106 static CSS_CLASSES = { 9107 SKELETON: '.skeleton', 9108 NOSTO_SECTION: '.shopify-section--nosto-recommendations', 9109 PRODUCT_CARD: 'product-card', 9110 }; 9111 9112 constructor() { 9113 super(); 9114 9115 this.nostoPlacement = this.dataset.nostoPlacement; 9116 this.nostoResultId = null; // Slot ID from Nosto response 9117 this.nostoContent = this.querySelector(NostoRecommendations.SELECTORS.nostoContent); 9118 this.sectionProductName = NostoRecommendations.SECTION_NAMES.PRODUCT_CARD; 9119 this.nostoProductsToShow = this.dataset.nostoProductsToShow; 9120 this.downgradeHeadings = this.hasAttribute('data-downgrade-headings'); 9121 } 9122 9123 async connectedCallback() { 9124 try { 9125 await this.waitForNosto(); 9126 this.init(); 9127 this.setupNostoClickListener(); 9128 } catch (error) { 9129 this.handleNostoLoadError(error); 9130 } 9131 } 9132 9133 disconnectedCallback() { 9134 this.hideNostoSection(); 9135 this.removeNostoClickListener(); 9136 } 9137 9138 /** 9139 * Handle Nosto loading errors 9140 * @private 9141 */ 9142 handleNostoLoadError(error) { 9143 this.hideNostoSection(); 9144 console.error('Erreur lors du chargement de Nosto:', error.message); 9145 } 9146 9147 init() { 9148 nostojs((api) => { 9149 api 9150 .createRecommendationRequest({ includeTagging: true }) 9151 .setElements([this.nostoPlacement]) 9152 .load({ skipEvents: true }) 9153 .then((response) => this.handleNostoResponse(response)) 9154 .catch((error) => { 9155 console.error('Erreur lors du chargement des recommandations Nosto:', error); 9156 this.hideNostoSection(); 9157 }); 9158 }); 9159 } 9160 9161 /** 9162 * Handle Nosto API response 9163 * @private 9164 */ 9165 handleNostoResponse(response) { 9166 const recommendations = response.recommendations[this.nostoPlacement]; 9167 9168 if (!recommendations) { 9169 this.hideNostoSection(); 9170 return; 9171 } 9172 9173 // Capture slot ID from response 9174 this.nostoResultId = recommendations.result_id; 9175 9176 try { 9177 const results = this.parseNostoResults(recommendations.html); 9178 if (results) { 9179 this.constructProductCards(results); 9180 } 9181 } catch (error) { 9182 console.error('Erreur lors du parsing des résultats Nosto:', error); 9183 this.hideNostoSection(); 9184 } 9185 } 9186 9187 /** 9188 * Parse Nosto HTML results 9189 * @private 9190 */ 9191 parseNostoResults(html) { 9192 const parser = new DOMParser(); 9193 const document = parser.parseFromString(html, 'text/html'); 9194 const element = document.querySelector(NostoRecommendations.SELECTORS.recommendationsNosto); 9195 9196 return element ? JSON.parse(element.textContent) : null; 9197 } 9198 9199 async waitForNosto(timeout = NostoRecommendations.TIMEOUTS.NOSTO_LOAD) { 9200 return new Promise((resolve, reject) => { 9201 let timeSpent = 0; 9202 9203 const checkNosto = () => { 9204 if (this.isNostoReady()) { 9205 resolve(); 9206 } else if (timeSpent >= timeout) { 9207 reject(new Error('Nosto load timeout')); 9208 } else { 9209 timeSpent += NostoRecommendations.TIMEOUTS.CHECK_INTERVAL; 9210 setTimeout(checkNosto, NostoRecommendations.TIMEOUTS.CHECK_INTERVAL); 9211 } 9212 }; 9213 9214 checkNosto(); 9215 }); 9216 } 9217 9218 /** 9219 * Check if Nosto is ready 9220 * @private 9221 */ 9222 isNostoReady() { 9223 return typeof window.nostojs === 'function' && window.nostoTemplatesLoaded; 9224 } 9225 9226 hideNostoSection() { 9227 const nostoSection = this.closest(NostoRecommendations.CSS_CLASSES.NOSTO_SECTION); 9228 if (nostoSection) { 9229 nostoSection.remove(); 9230 } 9231 } 9232 9233 async constructProductCards(results) { 9234 if (!results || !results.products || results.products.length === 0) { 9235 this.hideNostoSection(); 9236 return; 9237 } 9238
9239 try { 9240 // Récupérer les produits valides 9241 const originalProducts = results.products.slice(0, this.nostoProductsToShow); 9242 const productPromises = originalProducts.map((product, index) => this.createProductCard(product, index)); 9243 const productCards = await Promise.all(productPromises); 9244 const validCards = productCards.filter((card) => card !== null); 9245 9246 // Si aucun produit valide n'est trouvé, cacher la section 9247 if (validCards.length === 0) { 9248 this.hideNostoSection(); 9249 return; 9250 } 9251 9252 this.refreshResults(validCards); 9253 } catch (error) { 9254 console.error('Erreur lors de la construction des cartes produits:', error); 9255 this.hideNostoSection(); 9256 } 9257 } 9258 9259 /** 9260 * Create a single product card 9261 * @private 9262 */ 9263 async createProductCard(product, index) { 9264 try { 9265 const productHandle = this.extractProductHandle(product.product_url); 9266 const content = await this.loadContentFromAPI(productHandle); 9267 9268 if (!content || content.trim() === '' || !content.includes('product-card')) { 9269 return null; 9270 } 9271 9272 return this.buildProductCardElement(product, content, index); 9273 } catch (error) { 9274 return null; 9275 } 9276 } 9277 9278 /** 9279 * Extract product handle from URL 9280 * @private 9281 */ 9282 extractProductHandle(productUrl) { 9283 const queryParamIndex = productUrl.indexOf('?'); 9284 return queryParamIndex !== -1 9285 ? productUrl.substring(productUrl.lastIndexOf('/') + 1, queryParamIndex) 9286 : productUrl.substring(productUrl.lastIndexOf('/') + 1); 9287 } 9288 9289 /** 9290 * Build product card DOM element 9291 * @private 9292 */ 9293 buildProductCardElement(product, content, index) { 9294 const tempElement = document.createElement('div'); 9295 tempElement.innerHTML = content; 9296 9297 const productCard = tempElement.querySelector(NostoRecommendations.CSS_CLASSES.PRODUCT_CARD); 9298 9299 if (!productCard) { 9300 return null; 9301 } 9302 9303 // Downgrade h2/h3 to p tags if setting is off 9304 if (this.downgradeHeadings) { 9305 productCard.querySelectorAll('h2, h3').forEach((heading) => { 9306 const p = document.createElement('p'); 9307 p.className = heading.tagName === 'H2' ? 'h2' : heading.className; 9308 p.innerHTML = heading.innerHTML; 9309 if (heading.style.cssText) p.style.cssText = heading.style.cssText; 9310 heading.replaceWith(p); 9311 }); 9312 } 9313 9314 // Setup tracking on product card 9315 this.setupProductTracking(product, productCard); 9316 9317 return this.createProductContainer(productCard, index, product); 9318 } 9319 9320 /** 9321 * Setup product tracking data 9322 * @private 9323 */ 9324 setupProductTracking(product, productCard) { 9325 const modifiedUrl = this.addLanguageToUrl(product.product_url); 9326 9327 // Add Nosto tracking data to product card 9328 productCard.dataset.nostoTrackingUrl = modifiedUrl; 9329 productCard.dataset.nostoTrackingProductId = product.product_id; 9330 } 9331 9332 /** 9333 * Create product container element 9334 * @private 9335 */ 9336 createProductContainer(productCard, index, product) { 9337 // Add Nosto section tracking data for add-to-cart events 9338 const placement = this.nostoResultId || this.nostoPlacement; 9339 productCard.dataset.nostoRecommendationSection = 'true'; 9340 productCard.dataset.nostoPlacement = placement; 9341 productCard.dataset.nostoProductId = product.product_id; 9342 9343 return productCard; 9344 } 9345 9346 addLanguageToUrl(url) { 9347 if (Shopify.routes.root === '/') { 9348 return url; 9349 } 9350 9351 const languageCode = Shopify.routes.root.replaceAll('/', ''); 9352 return url.replace(/^(https?:\/\/[^\/]+)(\/.*)$/, `$1/${languageCode}$2`); 9353 } 9354 9355 refreshResults(resultsHTML) { 9356 if (!resultsHTML) return; 9357 9358 this.clearContent(); 9359 this.appendResults(resultsHTML); 9360 this.setupInteractions(); 9361 this.hideSkeleton(); 9362 } 9363 9364 /** 9365 * Clear existing content 9366 * @private 9367 */ 9368 clearContent() { 9369 if (this.nostoContent) { 9370 this.nostoContent.innerHTML = ''; 9371 } 9372 } 9373 9374 /** 9375 * Append results to content 9376 * @private 9377 */ 9378 appendResults(resultsHTML) { 9379 resultsHTML.forEach((element) => { 9380 if (element && this.nostoContent) { 9381 this.nostoContent.appendChild(element); 9382 } 9383 }); 9384 9385 // Trigger wishlist update to refresh heart icons 9386 document.dispatchEvent(new CustomEvent('wishlist:update', { bubbles: true })); 9387 9388 // Force carousel to update is-scrollable class after content is added 9389 requestAnimationFrame(() => { 9390 requestAnimationFrame(() => { 9391 if (this.nostoContent) { 9392 const isScrollable = this.nostoContent.scrollWidth > this.nostoContent.clientWidth; 9393 this.nostoContent.classList.toggle('is-scrollable', isScrollable); 9394 9395 // Show/hide buttons based on scrollability 9396 const prevButton = this.querySelector('carousel-prev-button'); 9397 const nextButton = this.querySelector('carousel-next-button'); 9398 9399 if (isScrollable) { 9400 if (prevButton) prevButton.removeAttribute('hidden'); 9401 if (nextButton) nextButton.removeAttribute('hidden'); 9402 } else { 9403 if (prevButton) prevButton.setAttribute('hidden', ''); 9404 if (nextButton) nextButton.setAttribute('hidden', ''); 9405 } 9406 } 9407 }); 9408 }); 9409 } 9410 9411 /** 9412 * Setup interactions (tracking) 9413 * @private 9414 */ 9415 setupInteractions() { 9416 this.setTrackingClick(); 9417 this.setupCarouselButtons(); 9418 } 9419 9420 /** 9421 * Setup carousel button states and listeners 9422 * @private 9423 */ 9424 setupCarouselButtons() { 9425 if (!this.nostoContent) return; 9426 9427 const prevButton = this.querySelector('carousel-prev-button'); 9428 const nextButton = this.querySelector('carousel-next-button'); 9429 9430 if (!prevButton || !nextButton) return; 9431 9432 const prevBtnElement = prevButton.firstElementChild; 9433 const nextBtnElement = nextButton.firstElementChild; 9434 9435 // Update button states based on scroll position 9436 const updateButtonStates = () => { 9437 const scrollLeft = this.nostoContent.scrollLeft; 9438 const maxScroll = this.nostoContent.scrollWidth - this.nostoContent.clientWidth; 9439 const threshold = 10; // Small threshold for edge detection 9440 9441 // Prev button: disabled at start 9442 if (prevBtnElement) { 9443 prevBtnElement.disabled = scrollLeft < threshold; 9444 } 9445 9446 // Next button: disabled at end 9447 if (nextBtnElement) { 9448 nextBtnElement.disabled = scrollLeft >= maxScroll - threshold; 9449 } 9450 }; 9451 9452 // Initial state 9453 updateButtonStates(); 9454 9455 // Update on scroll 9456 this.nostoContent.addEventListener('scroll', updateButtonStates); 9457 this.nostoContent.addEventListener('scrollend', updateButtonStates); 9458 9459 // Manual click handlers for buttons 9460 if (prevBtnElement) { 9461 prevBtnElement.addEventListener('click', (e) => { 9462 e.preventDefault(); 9463 const scrollAmount = this.nostoContent.clientWidth * 0.8; 9464 this.nostoContent.scrollBy({ left: -scrollAmount, behavior: 'smooth' }); 9465 }); 9466 } 9467 9468 if (nextBtnElement) { 9469 nextBtnElement.addEventListener('click', (e) => { 9470 e.preventDefault(); 9471 const scrollAmount = this.nostoContent.clientWidth * 0.8; 9472 this.nostoContent.scrollBy({ left: scrollAmount, behavior: 'smooth' }); 9473 }); 9474 } 9475 } 9476 9477 /** 9478 * Hide skeleton loader 9479 * @private 9480 */ 9481 hideSkeleton() { 9482 const skeletonDiv = this.querySelector(NostoRecommendations.CSS_CLASSES.SKELETON); 9483 if (skeletonDiv) skeletonDiv.remove(); 9484 } 9485 9486 setTrackingClick() { 9487 const productCards = this.querySelectorAll(NostoRecommendations.SELECTORS.productCardWithTracking); 9488 9489 productCards.forEach((productCard) => { 9490 // Add click tracking on all links within the product card 9491 const links = productCard.querySelectorAll('a'); 9492 links.forEach((link) => { 9493 link.addEventListener('click', (event) => this.handleTrackingClick(event, productCard)); 9494 }); 9495 }); 9496 } 9497 9498 /** 9499 * Handle tracking click event 9500 * @private 9501 */ 9502 handleTrackingClick(event, productCard) { 9503 const productId = productCard.dataset.nostoTrackingProductId; 9504 9505 // Use result_id if available, fallback to placement 9506 const placement = this.nostoResultId || this.nostoPlacement; 9507 9508 // Track the click with Nosto (non-blocking) 9509 this.performNostoTracking(productId, placement, () => {}); 9510 } 9511 9512 /** 9513 * Perform Nosto tracking and execute callback 9514 * @private 9515 */ 9516 performNostoTracking(productId, placement, callback) { 9517 nostojs((api) => { 9518 api 9519 .createRecommendationRequest() 9520 .setProducts([{ product_id: productId }], placement) 9521 .load() 9522 .then(callback) 9523 .catch((error) => { 9524 console.error('Erreur lors du tracking Nosto:', error); 9525 // Fallback: execute callback anyway 9526 callback(); 9527 }); 9528 }); 9529 } 9530 9531 /** 9532 * Redirect to URL with proper handling of new tab 9533 * @private 9534 */ 9535 redirectToUrl(url, openInNewTab) { 9536 if (openInNewTab) { 9537 window.open(url, '_blank'); 9538 } else { 9539 window.location.href = url; 9540 } 9541 } 9542 9543 async loadContentFromAPI(productHandle) {
9544 try { 9545 const url = `${Shopify.routes.root}products/${productHandle}?sections=${this.sectionProductName}`; 9546 const response = await fetch(url); 9547 9548 if (!response.ok) { 9549 throw new Error(`HTTP error! status: ${response.status}`); 9550 } 9551 9552 const data = await response.json(); 9553 return data[this.sectionProductName]; 9554 } catch (error) { 9555 console.error('Error fetching data from API:', error); 9556 return null; 9557 } 9558 } 9559 9560 /** 9561 * Setup listener for Nosto product clicks from slider-card 9562 * @private 9563 */ 9564 setupNostoClickListener() { 9565 this.nostoClickHandler = (event) => this.handleSliderCardNostoClick(event); 9566 this.addEventListener('nosto-product-click', this.nostoClickHandler); 9567 } 9568 9569 /** 9570 * Remove listener for Nosto product clicks 9571 * @private 9572 */ 9573 removeNostoClickListener() { 9574 if (this.nostoClickHandler) { 9575 this.removeEventListener('nosto-product-click', this.nostoClickHandler); 9576 this.nostoClickHandler = null; 9577 } 9578 } 9579 9580 /** 9581 * Handle Nosto product click from slider-card 9582 * @private 9583 */ 9584 handleSliderCardNostoClick(event) { 9585 event.preventDefault(); 9586 event.stopPropagation(); 9587 9588 const { openInNewTab, element } = event.detail; 9589 const productId = element.dataset.nostoTrackingProductId; 9590 const trackingUrl = element.dataset.nostoTrackingUrl; 9591 9592 // Use result_id if available, fallback to placement 9593 const placement = this.nostoResultId || this.nostoPlacement; 9594 this.performNostoTracking(productId, placement, () => { 9595 this.redirectToUrl(trackingUrl, openInNewTab); 9596 }); 9597 } 9598 } 9599 9600 // Register the custom element 9601 if (!customElements.get('nosto-recommendations')) { 9602 customElements.define('nosto-recommendations', NostoRecommendations); 9603 } 9604</script>
9604 9605 9606 9607</section><section id="shopify-section-template--26884129882455__skeepers_reviews_J8F9AH" class="shopify-section"><div class="color-scheme color-scheme--scheme-2"> 9608 <div class="container section-spacing"> 9609 <div class="skeepers-reviews"><div class="skeepers-reviews__header"> 9610 <span class="h3">Avis clients</span> 9611 </div><div class="skeepers_product__reviews" 9612 data-product-id="11020345999703" 9613 data-locale="fr_FR" 9614 data-price="38.9" 9615 data-currency="EUR" 9616 data-name="Calendrier de l'Avent" 9617 data-url="https://www.kusmitea.com/products/calendrier-de-lavent" 9618 data-image-url="https://www.kusmitea.com/cdn/shop/files/69ccaa76e308d3684f9a42cf6429ef819d9eca4d_ADVENTCAL26BIO_packshot_b2cweb.png?v=1785157587&width=600"> 9619 </div> 9620 9621 </div> 9622 </div> 9623 </div></section><section id="shopify-section-template--26884129882455__1774946376e79df732" class="shopify-section shopify-section--apps"> 9624</section><section id="shopify-section-template--26884129882455__blog_post_slider_JqbWrf" class="shopify-section shopify-section--blog-post-slider"><div class="blog-post-slider section-spacing section-spacing--tight color-scheme color-scheme--scheme-1"> 9625 <div class="container"><div class="blog-post-slider__header"> 9626 <p class="h2">Nos conseils</p> 9627 </div><div class="floating-controls-container"> 9628 <carousel-prev-button class="floating-controls__control" aria-controls="blog-post-slider-template--26884129882455__blog_post_slider_JqbWrf"> 9629 <button disabled class="circle-button circle-button--xl"> 9630 <span class="sr-only">Précédent</span><svg aria-hidden="true" focusable="false" width="14" class="icon icon-big-arrow-left icon--direction-aware" part="icon" viewBox="0 0 36 36"> 9631 <path fill="none" stroke="currentColor" stroke-width="2" d="M35 18H3M19.5 34.5 3 18 19.5 1.5"/> 9632 </svg></button> 9633 </carousel-prev-button> 9634 9635 <scroll-carousel 9636 id="blog-post-slider-template--26884129882455__blog_post_slider_JqbWrf" 9637 class="blog-post-slider__scroller scroll-area bleed" 9638 allow-drag 9639 style="--desktop-items: 4; --mobile-items: 1.2;" 9640 ><a href="/blogs/the/matcha-a-emporter" class="blog-post-slider__item"> 9641 <div class="blog-post-slider__image"><img lazy-src="//www.kusmitea.com/cdn/shop/articles/Blog-matcha-a-emporter_552a2f8c-c11f-4d17-9f7b-de5ff563d983.png?v=1790607312&width=240" alt="Matcha à emporter : retrouvez lâexpérience Kusmi Tea dans nos boutiques" lazy-srcset="//www.kusmitea.com/cdn/shop/articles/Blog-matcha-a-emporter_552a2f8c-c11f-4d17-9f7b-de5ff563d983.png?v=1790607312&width=100 100w, //www.kusmitea.com/cdn/shop/articles/Blog-matcha-a-emporter_552a2f8c-c11f-4d17-9f7b-de5ff563d983.png?v=1790607312&width=120 120w, //www.kusmitea.com/cdn/shop/articles/Blog-matcha-a-emporter_552a2f8c-c11f-4d17-9f7b-de5ff563d983.png?v=1790607312&width=200 200w, //www.kusmitea.com/cdn/shop/articles/Blog-matcha-a-emporter_552a2f8c-c11f-4d17-9f7b-de5ff563d983.png?v=1790607312&width=240 240w" width="240" height="156" loading="lazy" sizes="(min-width: 700px) 240px, 120px"></div> 9642 9643 <div class="blog-post-slider__content"> 9644 <p class="blog-post-slider__title h4">Matcha à emporter : retrouvez lâexpérience Kusmi Tea dans nos boutiques</p> 9645 9646 <div class="blog-post-slider__excerpt text-md">Quelques minutes suffisent pour transformer une pause ordinaire en vrai moment de dégustation. Avec le matcha à emporter, les boutiques... 9647</div> 9648 </div> 9649 </a><a href="/blogs/the/octobre-rose-2026" class="blog-post-slider__item"> 9650 <div class="blog-post-slider__image"><img lazy-src="//www.kusmitea.com/cdn/shop/articles/Blog-octobre-rose-2026_0df7be9d-3355-41bc-94ba-118266355571.png?v=1790610583&width=240" alt="Octobre Rose 2026 : Kusmi Tea sâengage aux côtés de Ruban Rose avec Limistic" lazy-srcset="//www.kusmitea.com/cdn/shop/articles/Blog-octobre-rose-2026_0df7be9d-3355-41bc-94ba-118266355571.png?v=1790610583&width=100 100w, //www.kusmitea.com/cdn/shop/articles/Blog-octobre-rose-2026_0df7be9d-3355-41bc-94ba-118266355571.png?v=1790610583&width=120 120w, //www.kusmitea.com/cdn/shop/articles/Blog-octobre-rose-2026_0df7be9d-3355-41bc-94ba-118266355571.png?v=1790610583&width=200 200w, //www.kusmitea.com/cdn/shop/articles/Blog-octobre-rose-2026_0df7be9d-3355-41bc-94ba-118266355571.png?v=1790610583&width=240 240w" width="240" height="156" loading="lazy" sizes="(min-width: 700px) 240px, 120px"></div> 9651 9652 <div class="blog-post-slider__content"> 9653 <p class="blog-post-slider__title h4">Octobre Rose 2026 : Kusmi Tea sâengage aux côtés de Ruban Rose avec Limistic</p> 9654 9655 <div class="blog-post-slider__excerpt text-md">Chaque année en octobre, le rose s'invite partout, et chez Kusmi Tea aussi. Pour la 12ème année consécutive, notre maison... 9656</div> 9657 </div> 9658 </a><a href="/blogs/the/bienfaits-rooibos-sur-la-sante" class="blog-post-slider__item"> 9659 <div class="blog-post-slider__image"><img lazy-src="//www.kusmitea.com/cdn/shop/articles/Blog-bienfaits-rooibos_fe1a8ebf-62c5-4f5c-a978-9d1c0cc0724b.png?v=1790327923&width=240" alt="bienfait rooibos" lazy-srcset="//www.kusmitea.com/cdn/shop/articles/Blog-bienfaits-rooibos_fe1a8ebf-62c5-4f5c-a978-9d1c0cc0724b.png?v=1790327923&width=100 100w, //www.kusmitea.com/cdn/shop/articles/Blog-bienfaits-rooibos_fe1a8ebf-62c5-4f5c-a978-9d1c0cc0724b.png?v=1790327923&width=120 120w, //www.kusmitea.com/cdn/shop/articles/Blog-bienfaits-rooibos_fe1a8ebf-62c5-4f5c-a978-9d1c0cc0724b.png?v=1790327923&width=200 200w, //www.kusmitea.com/cdn/shop/articles/Blog-bienfaits-rooibos_fe1a8ebf-62c5-4f5c-a978-9d1c0cc0724b.png?v=1790327923&width=240 240w" width="240" height="156" loading="lazy" sizes="(min-width: 700px) 240px, 120px"></div> 9660 9661 <div class="blog-post-slider__content"> 9662 <p class="blog-post-slider__title h4">Les 11 bienfaits du rooibos sur votre santé</p> 9663 9664 <div class="blog-post-slider__excerpt text-md">Bienvenue dans l'univers du rooibos, cette plante native d'Afrique du Sud qui enchante les palais et booste notre santé. Ce... 9665</div> 9666 </div> 9667 </a><a href="/blogs/the/sevrage-cafe" class="blog-post-slider__item"> 9668 <div class="blog-post-slider__image"><img lazy-src="//www.kusmitea.com/cdn/shop/articles/Blog-sevrage-cafe_9f717bc6-4d94-4f72-9349-144192daf55d.png?v=1789984340&width=240" alt="sevrage du café" lazy-srcset="//www.kusmitea.com/cdn/shop/articles/Blog-sevrage-cafe_9f717bc6-4d94-4f72-9349-144192daf55d.png?v=1789984340&width=100 100w, //www.kusmitea.com/cdn/shop/articles/Blog-sevrage-cafe_9f717bc6-4d94-4f72-9349-144192daf55d.png?v=1789984340&width=120 120w, //www.kusmitea.com/cdn/shop/articles/Blog-sevrage-cafe_9f717bc6-4d94-4f72-9349-144192daf55d.png?v=1789984340&width=200 200w, //www.kusmitea.com/cdn/shop/articles/Blog-sevrage-cafe_9f717bc6-4d94-4f72-9349-144192daf55d.png?v=1789984340&width=240 240w" width="240" height="156" loading="lazy" sizes="(min-width: 700px) 240px, 120px"></div> 9669 9670 <div class="blog-post-slider__content"> 9671 <p class="blog-post-slider__title h4">Sevrage du café : comment réduire votre consommation sans frustration ?</p> 9672 9673 <div class="blog-post-slider__excerpt text-md">Le café fait partie du quotidien de millions de personnes. Mais selon la façon dont on en boit, il peut... 9674</div> 9675 </div> 9676 </a><a href="/blogs/the/acheter-du-the-a-paris" class="blog-post-slider__item"> 9677 <div class="blog-post-slider__image"><img lazy-src="//www.kusmitea.com/cdn/shop/articles/Blog-acheter-the-paris_02806af0-08c4-420f-bd06-62d3a96b19ff.png?v=1789720147&width=240" alt="Acheter du thé à Paris : découvrez l'expérience Kusmi Tea" lazy-srcset="//www.kusmitea.com/cdn/shop/articles/Blog-acheter-the-paris_02806af0-08c4-420f-bd06-62d3a96b19ff.png?v=1789720147&width=100 100w, //www.kusmitea.com/cdn/shop/articles/Blog-acheter-the-paris_02806af0-08c4-420f-bd06-62d3a96b19ff.png?v=1789720147&width=120 120w, //www.kusmitea.com/cdn/shop/articles/Blog-acheter-the-paris_02806af0-08c4-420f-bd06-62d3a96b19ff.png?v=1789720147&width=200 200w, //www.kusmitea.com/cdn/shop/articles/Blog-acheter-the-paris_02806af0-08c4-420f-bd06-62d3a96b19ff.png?v=1789720147&width=240 240w" width="240" height="156" loading="lazy" sizes="(min-width: 700px) 240px, 120px"></div> 9678 9679 <div class="blog-post-slider__content"> 9680 <p class="blog-post-slider__title h4">Acheter du thé à Paris : découvrez l'expérience Kusmi Tea</p> 9681 9682 <div class="blog-post-slider__excerpt text-md">à Paris, le thé a une place à part. Pause gourmande, rituel bien-être, cadeau à offrir : les occasions d'en... 9683</div> 9684 </div> 9685 </a><a href="/blogs/the/les-nympheas-collaboration-avec-le-musee-de-lorangerie" class="blog-post-slider__item"> 9686 <div class="blog-post-slider__image"><img lazy-src="//www.kusmitea.com/cdn/shop/articles/Blog-les-nympheas_408e560d-3d7f-4022-afe9-4a74d52a4aa9.png?v=1790062258&width=240" alt="Les nymphéas thé Kusmi Tea" lazy-srcset="//www.kusmitea.com/cdn/shop/articles/Blog-les-nympheas_408e560d-3d7f-4022-afe9-4a74d52a4aa9.png?v=1790062258&width=100 100w, //www.kusmitea.com/cdn/shop/articles/Blog-les-nympheas_408e560d-3d7f-4022-afe9-4a74d52a4aa9.png?v=1790062258&width=120 120w, //www.kusmitea.com/cdn/shop/articles/Blog-les-nympheas_408e560d-3d7f-4022-afe9-4a74d52a4aa9.png?v=1790062258&width=200 200w, //www.kusmitea.com/cdn/shop/articles/Blog-les-nympheas_408e560d-3d7f-4022-afe9-4a74d52a4aa9.png?v=1790062258&width=240 240w" width="240" height="156" loading="lazy" sizes="(min-width: 700px) 240px, 120px"></div> 9687 9688 <div class="blog-post-slider__content"> 9689 <p class="blog-post-slider__title h4">Le Thé des Nymphéas : Kusmi Tea sâassocie au musée de lâOrangerie</p> 9690 9691 <div class="blog-post-slider__excerpt text-md">Kusmi Tea sâunit au musée de lâOrangerie pour donner naissance au Thé des Nymphéas, une création exclusive inspirée de lâunivers... 9692</div> 9693 </div> 9694 </a>
9694</scroll-carousel> 9695 9696 <carousel-next-button class="floating-controls__control" aria-controls="blog-post-slider-template--26884129882455__blog_post_slider_JqbWrf"> 9697 <button class="circle-button circle-button--xl"> 9698 <span class="sr-only">Suivant</span><svg aria-hidden="true" focusable="false" width="14" class="icon icon-big-arrow-right icon--direction-aware" part="icon" viewBox="0 0 36 36"> 9699 <path fill="none" stroke="currentColor" stroke-width="2" d="M1 18h32M16.5 1.5 33 18 16.5 34.5"/> 9700 </svg></button> 9701 </carousel-next-button> 9702 </div><div class="blog-post-slider__footer text-center">�<a class="button" href="/blogs/the" ><button-content class="button__content" rotated-text="Voir le blog"> 9703 <span class="button__text-wrapper">Voir le blog<span class="button__arrow"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> 9704<path d="M4 12.6667L12.6666 4M12.6666 4V12.32M12.6666 4H4.34667" stroke="#FBFBF6" stroke-linecap="round" stroke-linejoin="round"/> 9705</svg> 9706</span></span></button-content></a></div></div> 9707 </div> 9708</section><section id="shopify-section-template--26884129882455__image_grid_slider_wHmnBJ" class="shopify-section shopify-section--image-grid-slider"><style> 9709 #shopify-section-template--26884129882455__image_grid_slider_wHmnBJ { 9710 --image-grid-gap: 8px; 9711 --image-grid-columns: auto / auto-flow calc((100vw - 32px) / 2.3); 9712 } 9713 9714 #shopify-section-template--26884129882455__image_grid_slider_wHmnBJ .section-header { 9715 padding: 0 0.5rem; 9716 } 9717 9718 /* Desktop: Slider ou grille */ 9719 @media screen and (min-width: 700px) { 9720 #shopify-section-template--26884129882455__image_grid_slider_wHmnBJ { 9721 9722 --image-grid-columns: auto / auto-flow calc((100% - (var(--image-grid-gap) * 4)) / 5); 9723 9724 9725 9726 } 9727 9728 #shopify-section-template--26884129882455__image_grid_slider_wHmnBJ .section-header { 9729 padding: 0 1.3rem; 9730 } 9731 9732 #shopify-section-template--26884129882455__image_grid_slider_wHmnBJ .section-stack { 9733 row-gap: 2rem; 9734 } 9735 } 9736 9737 /* Image grid item */ 9738 #shopify-section-template--26884129882455__image_grid_slider_wHmnBJ .image-grid__item { 9739 position: relative; 9740 } 9741 9742 #shopify-section-template--26884129882455__image_grid_slider_wHmnBJ .image-grid-slider__title { 9743 font-weight: 600; 9744 max-width: 30rem; 9745 margin-top: 0.5rem; 9746 } 9747 9748 #shopify-section-template--26884129882455__image_grid_slider_wHmnBJ .image-grid-slider__subheading { 9749 font-weight: 500; 9750 text-transform: uppercase; 9751 font-size: 0.75rem; 9752 } 9753 9754 #shopify-section-template--26884129882455__image_grid_slider_wHmnBJ .image-grid__item:nth-of-type(odd) .image-grid__item-media { 9755 aspect-ratio: 1 / 1; 9756 } 9757 9758 #shopify-section-template--26884129882455__image_grid_slider_wHmnBJ .image-grid__item:nth-of-type(even) .image-grid__item-media { 9759 aspect-ratio: 28 / 31; 9760 } 9761 9762 #shopify-section-template--26884129882455__image_grid_slider_wHmnBJ .image-grid__item:hover .image-grid__item-image { 9763 transform: scale(1.05); 9764 } 9765 9766 #shopify-section-template--26884129882455__image_grid_slider_wHmnBJ .image-grid__item-media { 9767 overflow: hidden; 9768 border-radius: 8px; 9769 position: relative; 9770 } 9771 9772 #shopify-section-template--26884129882455__image_grid_slider_wHmnBJ .image-grid__item-image { 9773 width: 100%; 9774 height: 100%; 9775 object-fit: cover; 9776 transition: transform 0.4s ease; 9777 } 9778 9779 #shopify-section-template--26884129882455__image_grid_slider_wHmnBJ .image-grid__item-content { 9780 position: absolute; 9781 bottom: 0; 9782 left: 0; 9783 padding: 1.5rem; 9784 z-index: 1; 9785 } 9786 9787 #shopify-section-template--26884129882455__image_grid_slider_wHmnBJ .image-grid__item-link { 9788 display: block; 9789 width: 100%; 9790 height: 100%; 9791 } 9792 9793 #shopify-section-template--26884129882455__image_grid_slider_wHmnBJ .image-grid__item-link-text { 9794 display: inline-block; 9795 font-size: 1rem; 9796 font-weight: 500; 9797 text-decoration: none; 9798 color: #ffffff; 9799 transition: background-color 0.2s ease; 9800 } 9801 9802 /* Slider styles */ 9803 #shopify-section-template--26884129882455__image_grid_slider_wHmnBJ .image-grid--slider { 9804 display: grid; 9805 grid: var(--image-grid-columns); 9806 gap: var(--image-grid-gap); 9807 overflow-x: auto; 9808 scroll-snap-type: x mandatory; 9809 -webkit-overflow-scrolling: touch; 9810 scrollbar-width: none; 9811 align-items: center; 9812 } 9813 9814 #shopify-section-template--26884129882455__image_grid_slider_wHmnBJ .image-grid--slider::-webkit-scrollbar {
9815 display: none; 9816 } 9817 9818 #shopify-section-template--26884129882455__image_grid_slider_wHmnBJ .image-grid--slider .image-grid__item { 9819 scroll-snap-align: start; 9820 } 9821 9822 #shopify-section-template--26884129882455__image_grid_slider_wHmnBJ .image-grid--grid { 9823 display: grid; 9824 grid: var(--image-grid-columns); 9825 gap: var(--image-grid-gap); 9826 } 9827 9828 /* Contrôles de navigation */ 9829 #shopify-section-template--26884129882455__image_grid_slider_wHmnBJ .floating-controls-container { 9830 position: relative; 9831 } 9832 9833 #shopify-section-template--26884129882455__image_grid_slider_wHmnBJ .floating-controls__control { 9834 position: absolute; 9835 top: 50%; 9836 transform: translateY(-50%); 9837 z-index: 2; 9838 } 9839 9840 #shopify-section-template--26884129882455__image_grid_slider_wHmnBJ .floating-controls__control--prev { 9841 left: 0; 9842 } 9843 9844 #shopify-section-template--26884129882455__image_grid_slider_wHmnBJ .floating-controls__control--next { 9845 right: 0; 9846 } 9847 9848 @media screen and (max-width: 699px) { 9849 #shopify-section-template--26884129882455__image_grid_slider_wHmnBJ .floating-controls__control { 9850 display: none; 9851 } 9852 } 9853 </style> 9854 9855 <div class="color-scheme color-scheme--scheme-1"> 9856 <div class="container container--very-small section-spacing"> 9857 <div class="section-stack"><div class="section-header text-left"> 9858 <div class="prose prose-justify-left"><p class="h2 image-grid-slider__title text-balance" >Kusmi Tea, quoi de plus naturel</p></div> 9859 </div><div class="floating-controls-container md-max:contents"><product-list 9860 id="image-grid-template--26884129882455__image_grid_slider_wHmnBJ" 9861 class="image-grid image-grid--slider scroll-area bleed" 9862 ><div class="image-grid__item" ><a href="/pages/la-marque" class="image-grid__item-link"><div class="image-grid__item-media"><img lazy-src="//www.kusmitea.com/cdn/shop/files/L_engagement_societal.jpg?v=1770741405&width=800" alt="Du thé bio et Made in Normandie" lazy-srcset="//www.kusmitea.com/cdn/shop/files/L_engagement_societal.jpg?v=1770741405&width=200 200w, //www.kusmitea.com/cdn/shop/files/L_engagement_societal.jpg?v=1770741405&width=300 300w, //www.kusmitea.com/cdn/shop/files/L_engagement_societal.jpg?v=1770741405&width=400 400w, //www.kusmitea.com/cdn/shop/files/L_engagement_societal.jpg?v=1770741405&width=500 500w, //www.kusmitea.com/cdn/shop/files/L_engagement_societal.jpg?v=1770741405&width=600 600w, //www.kusmitea.com/cdn/shop/files/L_engagement_societal.jpg?v=1770741405&width=800 800w" width="800" height="533" loading="lazy" sizes="(max-width: 699px) 85vw, calc(100vw / 5 - var(--image-grid-gap))" class="image-grid__item-image"></div><div class="image-grid__item-content"> 9863 <span class="image-grid__item-link-text">Du thé bio et Made in Normandie</span> 9864 </div></a></div><div class="image-grid__item" ><a href="/pages/kusmi-tea-est-labellisee-b-corp" class="image-grid__item-link"><div class="image-grid__item-media"><img lazy-src="//www.kusmitea.com/cdn/shop/files/BCorp.png?v=1771000373&width=800" alt="Kusmi Tea est labelisée B Corp" lazy-srcset="//www.kusmitea.com/cdn/shop/files/BCorp.png?v=1771000373&width=200 200w, //www.kusmitea.com/cdn/shop/files/BCorp.png?v=1771000373&width=300 300w, //www.kusmitea.com/cdn/shop/files/BCorp.png?v=1771000373&width=400 400w, //www.kusmitea.com/cdn/shop/files/BCorp.png?v=1771000373&width=500 500w, //www.kusmitea.com/cdn/shop/files/BCorp.png?v=1771000373&width=600 600w, //www.kusmitea.com/cdn/shop/files/BCorp.png?v=1771000373&width=800 800w" width="800" height="1000" loading="lazy" sizes="(max-width: 699px) 85vw, calc(100vw / 5 - var(--image-grid-gap))" class="image-grid__item-image"></div><div class="image-grid__item-content"> 9865 <span class="image-grid__item-link-text">Kusmi Tea est labelisée B Corp</span> 9866 </div></a></div><div class="image-grid__item" ><a href="/pages/nos-engagements#image_recyclage_reduction" class="image-grid__item-link"><div class="image-grid__item-media"><img lazy-src="//www.kusmitea.com/cdn/shop/files/Emballages_raisonnes.jpg?v=1770914692&width=800" alt="Recyclage et réduction des déchets" lazy-srcset="//www.kusmitea.com/cdn/shop/files/Emballages_raisonnes.jpg?v=1770914692&width=200 200w, //www.kusmitea.com/cdn/shop/files/Emballages_raisonnes.jpg?v=1770914692&width=300 300w, //www.kusmitea.com/cdn/shop/files/Emballages_raisonnes.jpg?v=1770914692&width=400 400w, //www.kusmitea.com/cdn/shop/files/Emballages_raisonnes.jpg?v=1770914692&width=500 500w, //www.kusmitea.com/cdn/shop/files/Emballages_raisonnes.jpg?v=1770914692&width=600 600w, //www.kusmitea.com/cdn/shop/files/Emballages_raisonnes.jpg?v=1770914692&width=800 800w" width="800" height="1000" loading="lazy" sizes="(max-width: 699px) 85vw, calc(100vw / 5 - var(--image-grid-gap))" class="image-grid__item-image"></div><div class="image-grid__item-content">
9867 <span class="image-grid__item-link-text">Recyclage et réduction des déchets</span> 9868 </div></a></div><div class="image-grid__item" ><a href="/pages/nos-engagements#image_approvisionnement_responsable" class="image-grid__item-link"><div class="image-grid__item-media"><img lazy-src="//www.kusmitea.com/cdn/shop/files/header_1.jpg?v=1770914749&width=800" alt="Approvisionnement responsable" lazy-srcset="//www.kusmitea.com/cdn/shop/files/header_1.jpg?v=1770914749&width=200 200w, //www.kusmitea.com/cdn/shop/files/header_1.jpg?v=1770914749&width=300 300w, //www.kusmitea.com/cdn/shop/files/header_1.jpg?v=1770914749&width=400 400w, //www.kusmitea.com/cdn/shop/files/header_1.jpg?v=1770914749&width=500 500w, //www.kusmitea.com/cdn/shop/files/header_1.jpg?v=1770914749&width=600 600w, //www.kusmitea.com/cdn/shop/files/header_1.jpg?v=1770914749&width=800 800w" width="800" height="533" loading="lazy" sizes="(max-width: 699px) 85vw, calc(100vw / 5 - var(--image-grid-gap))" class="image-grid__item-image"></div><div class="image-grid__item-content"> 9869 <span class="image-grid__item-link-text">Approvisionnement responsable</span> 9870 </div></a></div><div class="image-grid__item" ><a href="/pages/nos-engagements#image_approvisionnement_responsable" class="image-grid__item-link"><div class="image-grid__item-media"><img lazy-src="//www.kusmitea.com/cdn/shop/files/img_bcorp_2.webp?v=1767685625&width=800" alt="Lâhumain au cÅur de nos actions" lazy-srcset="//www.kusmitea.com/cdn/shop/files/img_bcorp_2.webp?v=1767685625&width=200 200w, //www.kusmitea.com/cdn/shop/files/img_bcorp_2.webp?v=1767685625&width=300 300w, //www.kusmitea.com/cdn/shop/files/img_bcorp_2.webp?v=1767685625&width=400 400w, //www.kusmitea.com/cdn/shop/files/img_bcorp_2.webp?v=1767685625&width=500 500w, //www.kusmitea.com/cdn/shop/files/img_bcorp_2.webp?v=1767685625&width=600 600w, //www.kusmitea.com/cdn/shop/files/img_bcorp_2.webp?v=1767685625&width=800 800w" width="800" height="556" loading="lazy" sizes="(max-width: 699px) 85vw, calc(100vw / 5 - var(--image-grid-gap))" class="image-grid__item-image"></div><div class="image-grid__item-content"> 9871 <span class="image-grid__item-link-text">Lâhumain au cÅur de nos actions</span> 9872 </div></a></div></product-list></div><div class="section-footer text-center">�<a class="button" href="/pages/la-marque" ><button-content class="button__content" rotated-text="Découvrir la marque"> 9873 <span class="button__text-wrapper">Découvrir la marque<span class="button__arrow"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> 9874<path d="M4 12.6667L12.6666 4M12.6666 4V12.32M12.6666 4H4.34667" stroke="#FBFBF6" stroke-linecap="round" stroke-linejoin="round"/> 9875</svg> 9876</span></span></button-content></a></div></div> 9877 </div> 9878 </div> 9879</section><section id="shopify-section-template--26884129882455__177494696691db01a7" class="shopify-section shopify-section--apps"> 9880</section> 9881</main><!-- BEGIN sections: footer-group --> 9882<section id="shopify-section-sections--26884129751383__trust-icons" class="shopify-section shopify-section-group-footer-group shopify-section--trust-icons"><style> 9883 #shopify-section-sections--26884129751383__trust-icons { 9884 --trust-icons-item-count: 5; 9885 } 9886 </style> 9887 9888 <div class="color-scheme color-scheme--scheme-2"> 9889 <div class="trust-icons "><scroll-carousel 9890 id="carousel-sections--26884129751383__trust-icons" 9891 class="trust-icons__carousel snap-x scroll-area bleed md:unbleed" 9892 ><div 9893 class="trust-icons__item snap-center " 9894 role="group" 9895 aria-label="Elément 1 de 5" 9896 9897 > 9898 <div class="prose prose-justify-center prose--compact"><img lazy-src="//www.kusmitea.com/cdn/shop/files/rea-delivery.svg?v=1761637758&width=27" alt="" lazy-srcset="//www.kusmitea.com/cdn/shop/files/rea-delivery.svg?v=1761637758&width=24 24w" width="27" height="17" loading="lazy" sizes="(max-width: 699px) 24px, 24px" class="shrink-0 icon " style="--icon-max-width: 24px; --icon-mobile-max-width: 24px"><p class="text-body text-lg">Livraison offerte dès 49â¬</p><p class="text-body text-xs">Recevez vos produits en un temps record.</p></div> 9899 </div><div 9900 class="trust-icons__item snap-center " 9901 role="group" 9902 aria-label="Elément 2 de 5" 9903 9904 > 9905 <div class="prose prose-justify-center prose--compact"><img lazy-src="//www.kusmitea.com/cdn/shop/files/rea-payment.svg?v=1761637761&width=24" alt="" lazy-srcset="//www.kusmitea.com/cdn/shop/files/rea-payment.svg?v=1761637761&width=24 24w" width="24" height="18" loading="lazy" sizes="(max-width: 699px) 24px, 24px" class="shrink-0 icon " style="--icon-max-width: 24px; --icon-mobile-max-width: 24px"><p class="text-body text-lg">Paiement sécurisé</p><p class="text-body text-xs">Vos transactions sont protégées par un cryptage avancé.</p></div> 9906 </div><div 9907 class="trust-icons__item snap-center " 9908 role="group" 9909 aria-label="Elément 3 de 5" 9910 9911 > 9912 <div class="prose prose-justify-center prose--compact"><img lazy-src="//www.kusmitea.com/cdn/shop/files/Vector.svg?v=1763371084&width=25" alt="" lazy-srcset="//www.kusmitea.com/cdn/shop/files/Vector.svg?v=1763371084&width=24 24w" width="25" height="25" loading="lazy" sizes="(max-width: 699px) 24px, 24px" class="shrink-0 icon " style="--icon-max-width: 24px; --icon-mobile-max-width: 24px"><p class="text-body text-lg">Programme de fidélité</p><p class="text-body text-xs">Bénéficiez d'avantages exclusifs.</p></div> 9913 </div><div 9914 class="trust-icons__item snap-center " 9915 role="group" 9916 aria-label="Elément 4 de 5" 9917 9918 > 9919 <div class="prose prose-justify-center prose--compact"><img lazy-src="//www.kusmitea.com/cdn/shop/files/Vector_cc7ee6d6-59a0-44c7-8e45-bab7c5234314.svg?v=1763371157&width=25" alt="" lazy-srcset="//www.kusmitea.com/cdn/shop/files/Vector_cc7ee6d6-59a0-44c7-8e45-bab7c5234314.svg?v=1763371157&width=24 24w" width="25" height="24" loading="lazy" sizes="(max-width: 699px) 20px, 24px" class="shrink-0 icon " style="--icon-max-width: 24px;
9919 --icon-mobile-max-width: 20px"><p class="text-body text-lg">Click & collect</p><p class="text-body text-xs">Commandez en ligne et récupérez vos produits en boutique.</p></div> 9920 </div><div 9921 class="trust-icons__item snap-center " 9922 role="group" 9923 aria-label="Elément 5 de 5" 9924 9925 > 9926 <div class="prose prose-justify-center prose--compact"><img lazy-src="//www.kusmitea.com/cdn/shop/files/Vector_1ec02782-da9d-4358-ac6e-d4bdc3322b0a.svg?v=1763546177&width=21" alt="" width="21" height="25" loading="lazy" sizes="(max-width: 699px) 20px, 24px" class="shrink-0 icon " style="--icon-max-width: 24px; --icon-mobile-max-width: 20px"><p class="text-body text-lg">Ãchantillons offerts</p><p class="text-body text-xs">Profitez de deux échantillons offerts à chaque commande</p></div> 9927 </div></scroll-carousel><carousel-navigation 9928 class="scroll-marker-group scroll-marker-group--lines justify-self-center md:hidden" 9929 aria-controls="carousel-sections--26884129751383__trust-icons" 9930 ><button 9931 class="scroll-marker tap-area tap-area--sm" 9932 aria-current="true" 9933 > 9934 <span class="sr-only">Aller à l'élément 1</span> 9935 </button><button 9936 class="scroll-marker tap-area tap-area--sm" 9937 aria-current="false" 9938 > 9939 <span class="sr-only">Aller à l'élément 2</span> 9940 </button><button 9941 class="scroll-marker tap-area tap-area--sm" 9942 aria-current="false" 9943 > 9944 <span class="sr-only">Aller à l'élément 3</span> 9945 </button><button 9946 class="scroll-marker tap-area tap-area--sm" 9947 aria-current="false" 9948 > 9949 <span class="sr-only">Aller à l'élément 4</span> 9950 </button><button 9951 class="scroll-marker tap-area tap-area--sm" 9952 aria-current="false" 9953 > 9954 <span class="sr-only">Aller à l'élément 5</span> 9955 </button></carousel-navigation></div> 9956 </div> 9957</section><footer id="shopify-section-sections--26884129751383__footer" class="shopify-section shopify-section-group-footer-group shopify-section--footer"><div class="footer color-scheme color-scheme--scheme-1"> 9958 <div class="container"><div class="footer__content"><div class="footer__block-list"><div 9959 class="footer__block footer__block--newsletter " 9960 9961 ><div class="v-stack sm:gap-4.5 gap-2.5"><p class="footer--title">Newsletter</p><div class="v-stack sm:gap-5.5 gap-2.5"><div class="prose text-body text-xs"><p>Inscrivez-vous et profitez de la livraison offerte sur votre 1ère commande</p></div><div 9962 class="v-stack gap-4" 9963 data-gtm-event="subscribe_newsletter_ta" 9964 data-gtm-location="footer" 9965 ><form method="post" action="/contact#newsletter-form-sections--26884129751383__footer" id="newsletter-form-sections--26884129751383__footer" accept-charset="UTF-8" class="form-row"><input type="hidden" name="form_type" value="customer" /><input type="hidden" name="utf8" value="â" /><input type="hidden" name="contact[tags]" value="newsletter"><div class="form-control" ><input 9966 id="input--sections--26884129751383__footer--contactemail" 9967 class="input " 9968 type="email" 9969 9970 dir="ltr" 9971 9972 name="contact[email]" 9973 9974 9975 9976 9977 9978 placeholder=" " 9979 autocomplete="email" 9980 9981 enterkeyhint="send" 9982 required 9983 9984 9985 pattern="[a-zA-Z0-9._%+\-]+@[a-zA-Z0-9.\-]+\.[a-zA-Z]{2,}" 9986 9987 ><label for="input--sections--26884129751383__footer--contactemail" class="floating-label ">Adresse e-mail</label></div>�<button type="submit" class="button" ><button-content class="button__content" rotated-text="S'inscrire"> 9988 <span class="button__text-wrapper">S'inscrire<span class="button__arrow"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> 9989<path d="M4 12.6667L12.6666 4M12.6666 4V12.32M12.6666 4H4.34667" stroke="#FBFBF6" stroke-linecap="round" stroke-linejoin="round"/> 9990</svg> 9991</span></span></button-content></button></form><div class="prose text-subdued text-xs"><p>
9991En cliquant sur « SâINSCRIRE », vous acceptez de recevoir les offres commerciales et actualités de Kusmi Tea par email, conformément à notre <a href="https://kusmi-tea-2025.myshopify.com/pages/politique-de-confidentialite" target="_blank"><span style="text-decoration:underline">Politique de Confidentialité. </span></a>Vous pouvez à tout moment retirer votre consentement ou modifier vos préférences dâabonnement via le lien de désinscription présent dans chaque email.</p></div></div><div class="v-stack gap-4.5"><p class="footer--title">Rejoignez-nous</p><ul class="social-media unstyled-list" role="list"><li class="social-media__item branding-colors--facebook"> 9992 <a href="https://www.facebook.com/KusmiTea.Paris" 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" viewBox="0 0 24 24"> 9993 <path fill="currentColor" fill-rule="evenodd" d="M2 12c0 4.95 3.6 9.05 8.35 9.9l.059-.048-.009-.002V14.8H7.9V12h2.5V9.8c0-2.5 1.6-3.9 3.9-3.9.7 0 1.5.1 2.2.2v2.55h-1.3c-1.2 0-1.5.6-1.5 1.4V12h2.65l-.45 2.8h-2.2v7.05l-.09.016.04.034C18.4 21.05 22 16.95 22 12c0-5.5-4.5-10-10-10S2 6.5 2 12Z" clip-rule="evenodd"/> 9994 </svg></a> 9995 </li><li class="social-media__item branding-colors--instagram"> 9996 <a href="https://www.instagram.com/kusmiteaparis" 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" viewBox="0 0 24 24"> 9997 <path fill-rule="evenodd" clip-rule="evenodd" d="M12 2.4c-2.607 0-2.934.011-3.958.058-1.022.046-1.72.209-2.33.446a4.705 4.705 0 0 0-1.7 1.107 4.706 4.706 0 0 0-1.108 1.7c-.237.611-.4 1.31-.446 2.331C2.41 9.066 2.4 9.392 2.4 12c0 2.607.011 2.934.058 3.958.046 1.022.209 1.72.446 2.33a4.706 4.706 0 0 0 1.107 1.7c.534.535 1.07.863 1.7 1.108.611.237 1.309.4 2.33.446 1.025.047 1.352.058 3.959.058s2.934-.011 3.958-.058c1.022-.046 1.72-.209 2.33-.446a4.706 4.706 0 0 0 1.7-1.107 4.706 4.706 0 0 0 1.108-1.7c.237-.611.4-1.31.446-2.33.047-1.025.058-1.352.058-3.959s-.011-2.934-.058-3.958c-.047-1.022-.209-1.72-.446-2.33a4.706 4.706 0 0 0-1.107-1.7 4.705 4.705 0 0 0-1.7-1.108c-.611-.237-1.31-.4-2.331-.446C14.934 2.41 14.608 2.4 12 2.4Zm0 1.73c2.563 0 2.867.01 3.88.056.935.042 1.443.199 1.782.33.448.174.768.382 1.104.718.336.336.544.656.718 1.104.131.338.287.847.33 1.783.046 1.012.056 1.316.056 3.879 0 2.563-.01 2.867-.056 3.88-.043.935-.199 1.444-.33 1.782a2.974 2.974 0 0 1-.719 1.104 2.974 2.974 0 0 1-1.103.718c-.339.131-.847.288-1.783.33-1.012.046-1.316.056-3.88.056-2.563 0-2.866-.01-3.878-.056-.936-.042-1.445-.199-1.783-.33a2.974 2.974 0 0 1-1.104-.718 2.974 2.974 0 0 1-.718-1.104c-.131-.338-.288-.847-.33-1.783-.047-1.012-.056-1.316-.056-3.879 0-2.563.01-2.867.056-3.88.042-.935.199-1.443.33-1.782.174-.448.382-.768.718-1.104a2.974 2.974 0 0 1 1.104-.718c.338-.131.847-.288 1.783-.33C9.133 4.14 9.437 4.13 12 4.13Zm0 11.07a3.2 3.2 0 1 1 0-6.4 3.2 3.2 0 0 1 0 6.4Zm0-8.13a4.93 4.93 0 1 0 0 9.86 4.93 4.93 0 0 0 0-9.86Zm6.276-.194a1.152 1.152 0 1 1-2.304 0 1.152 1.152 0 0 1 2.304 0Z" fill="currentColor"/> 9998 </svg></a> 9999 </li><li class="social-media__item branding-colors--youtube"> 10000 <a href="https://www.youtube.com/user/KusmiTeaParis" 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" viewBox="0 0 24 24"> 10001 <path fill-rule="evenodd" clip-rule="evenodd" d="M20.44 5.243c.929.244 1.66.963 1.909 1.876.451 1.654.451 5.106.451 5.106s0 3.452-.451 5.106a2.681 2.681 0 0 1-1.91 1.876c-1.684.443-8.439.443-8.439.443s-6.754 0-8.439-.443a2.682 2.682 0 0 1-1.91-1.876c-.45-1.654-.45-5.106-.45-5.106s0-3.452.45-5.106a2.681 2.681 0 0 1 1.91-1.876c1.685-.443 8.44-.443 8.44-.443s6.754 0 8.438.443Zm-5.004 6.982L9.792 15.36V9.091l5.646 3.134Z" fill="currentColor"/> 10002 </svg></a> 10003 </li><li class="social-media__item branding-colors--linkedin"> 10004 <a href="https://www.linkedin.com/company/kusmi-tea" class="tap-area" target="_blank" rel="noopener" aria-label="Nous suivre sur LinkedIn"><svg aria-hidden="true" focusable="false" width="24" class="icon icon-linkedin" viewB
10004ox="0 0 24 24"> 10005 <path fill-rule="evenodd" clip-rule="evenodd" d="M7.349 5.478a1.875 1.875 0 1 0-3.749 0 1.875 1.875 0 1 0 3.749 0ZM7.092 19.2H3.857V8.78h3.235V19.2ZM12.22 8.78H9.121V19.2h3.228v-5.154c0-1.36.257-2.676 1.94-2.676 1.658 0 1.68 1.554 1.68 2.763V19.2H19.2v-5.715c0-2.806-.605-4.963-3.877-4.963-1.573 0-2.629.863-3.06 1.683h-.044V8.78Z" fill="currentColor"/> 10006 </svg></a> 10007 </li></ul></div></div> 10008 </div></div><div 10009 class="footer__block footer__block--links footer__block--accordion-links" 10010 10011 ><div class="v-stack gap-3 sm-max:hidden"><p class="footer--title">Kusmi Tea</p><ul class="v-stack gap-1 unstyled-list" role="list"><li> 10012 <a href="/pages/la-marque" class="link-reversed link-tap-area text-body text-xs">La Marque</a> 10013 </li><li> 10014 <a href="/pages/kusmi-klub" class="link-reversed link-tap-area text-body text-xs">Programme de Fidélité</a> 10015 </li><li> 10016 <a href="/pages/notre-raison-d-etre" class="link-reversed link-tap-area text-body text-xs">Notre raison d'être</a> 10017 </li><li> 10018 <a href="/pages/nos-engagements" class="link-reversed link-tap-area text-body text-xs">Nos engagements</a> 10019 </li><li> 10020 <a href="/pages/kusmi-tea-est-labellisee-b-corp" class="link-reversed link-tap-area text-body text-xs">B Corp</a> 10021 </li><li> 10022 <a href="https://www.linkedin.com/company/kusmi-tea" class="link-reversed link-tap-area text-body text-xs">Nous rejoindre</a> 10023 </li><li> 10024 <a href="https://cdn.shopify.com/s/files/1/0943/6577/8263/files/Qualites_et_Caracteristiques_Environnementales_eb2bb5e3-a965-497b-b8cf-02d033d7c674.pdf?v=1776260306" class="link-reversed link-tap-area text-body text-xs">Fiche QCE</a> 10025 </li><li> 10026 <a href="/pages/consignes-de-tri" class="link-reversed link-tap-area text-body text-xs">Consignes de tri</a> 10027 </li><li> 10028 <a href="/pages/plan-du-site" class="link-reversed link-tap-area text-body text-xs">Plan du site</a> 10029 </li></ul></div><accordion-disclosure class="accordion sm:hidden" > 10030 <details class="accordion__disclosure" > 10031 <summary class="accordion__summary text-body text-base"><span>Kusmi Tea</span><svg aria-hidden="true" focusable="false" width="11" class="icon icon-accordion-small-arrow" part="icon" fill="none" viewBox="0 0 11 7"> 10032 <path stroke="currentColor" stroke-width="1.5" d="M10 1 5.5 5.5 1 1" /> 10033 </svg></summary> 10034 10035 <div class="accordion__content "><ul class="v-stack gap-1 unstyled-list" role="list"><li> 10036 <a href="/pages/la-marque" class="link-reversed link-tap-area text-body text-xs">La Marque</a> 10037 </li><li> 10038 <a href="/pages/kusmi-klub" class="link-reversed link-tap-area text-body text-xs">Programme de Fidélité</a> 10039 </li><li> 10040 <a href="/pages/notre-raison-d-etre" class="link-reversed link-tap-area text-body text-xs">Notre raison d'être</a> 10041 </li><li> 10042 <a href="/pages/nos-engagements" class="link-reversed link-tap-area text-body text-xs">Nos engagements</a> 10043 </li><li> 10044 <a href="/pages/kusmi-tea-est-labellisee-b-corp" class="link-reversed link-tap-area text-body text-xs">B Corp</a> 10045 </li><li> 10046 <a href="https://www.linkedin.com/company/kusmi-tea" class="link-reversed link-tap-area text-body text-xs">Nous rejoindre</a> 10047 </li><li> 10048 <a href="https://cdn.shopify.com/s/files/1/0943/6577/8263/files/Qualites_et_Caracteristiques_Environnementales_eb2bb5e3-a965-497b-b8cf-02d033d7c674.pdf?v=1776260306" class="link-reversed link-tap-area text-body text-xs">Fiche QCE</a> 10049 </li><li> 10050 <a href="/pages/consignes-de-tri" class="link-reversed link-tap-area text-body text-xs">Consignes de tri</a> 10051 </li><li> 10052 <a href="/pages/plan-du-site" class="link-reversed link-tap-area text-body text-xs">Plan du site</a> 10053 </li></ul></div> 10054 </details> 10055</accordion-disclosure> 10056</div><div 10057 class="footer__block footer__block--links footer__block--accordion-links" 10058 10059 ><div class="v-stack gap-3 sm-max:hidden"><p class="footer--title">Professionnels</p><ul class="v-stack gap-1 unstyled-list" role="list"><li> 10060 <a href="/pages/cadeaux-daffaires" class="link-reversed link-tap-area text-body text-xs">Cadeaux dâaffaires</a> 10061 </li><li> 10062 <a href="https://www.orientis-gourmet.com/" class="link-reversed link-tap-area text-body text-xs">Site Professionnel</a> 10063 </li><li> 10064 <a href="/pages/client-professionnel"
10064class="link-reversed link-tap-area text-body text-xs">Devenir Client Professionnel</a> 10065 </li><li> 10066 <a href="https://publisher.effinity.fr/publisher-center/sign/up/1?programId=315031866&lg=fr" class="link-reversed link-tap-area text-body text-xs">Affiliation</a> 10067 </li></ul></div><accordion-disclosure class="accordion sm:hidden" > 10068 <details class="accordion__disclosure" > 10069 <summary class="accordion__summary text-body text-base"><span>Professionnels</span><svg aria-hidden="true" focusable="false" width="11" class="icon icon-accordion-small-arrow" part="icon" fill="none" viewBox="0 0 11 7"> 10070 <path stroke="currentColor" stroke-width="1.5" d="M10 1 5.5 5.5 1 1" /> 10071 </svg></summary> 10072 10073 <div class="accordion__content "><ul class="v-stack gap-1 unstyled-list" role="list"><li> 10074 <a href="/pages/cadeaux-daffaires" class="link-reversed link-tap-area text-body text-xs">Cadeaux dâaffaires</a> 10075 </li><li> 10076 <a href="https://www.orientis-gourmet.com/" class="link-reversed link-tap-area text-body text-xs">Site Professionnel</a> 10077 </li><li> 10078 <a href="/pages/client-professionnel" class="link-reversed link-tap-area text-body text-xs">Devenir Client Professionnel</a> 10079 </li><li> 10080 <a href="https://publisher.effinity.fr/publisher-center/sign/up/1?programId=315031866&lg=fr" class="link-reversed link-tap-area text-body text-xs">Affiliation</a> 10081 </li></ul></div> 10082 </details> 10083</accordion-disclosure> 10084</div><div 10085 class="footer__block footer__block--links footer__block--accordion-links" 10086 10087 ><div class="v-stack gap-3 sm-max:hidden"><p class="footer--title">Aide</p><ul class="v-stack gap-1 unstyled-list" role="list"><li> 10088 <a href="https://kusmitea-ssw4lt8dynr.gorgias.help/fr-FR" class="link-reversed link-tap-area text-body text-xs">Aide et Contact</a> 10089 </li><li> 10090 <a href="/pages/trouvez-votre-boutique" class="link-reversed link-tap-area text-body text-xs">Trouver une boutique</a> 10091 </li><li> 10092 <a href="/pages/livraison" class="link-reversed link-tap-area text-body text-xs">Livraison et retours</a> 10093 </li><li> 10094 <a href="/pages/click-collect" class="link-reversed link-tap-area text-body text-xs">Click & Collect</a> 10095 </li><li> 10096 <a href="/products/carte-cadeau" class="link-reversed link-tap-area text-body text-xs">Cartes Cadeaux</a> 10097 </li><li> 10098 <a href="/pages/offre-du-moment" class="link-reversed link-tap-area text-body text-xs">Offres du moment</a> 10099 </li><li> 10100 <a href="/pages/conditions-des-offres" class="link-reversed link-tap-area text-body text-xs">Conditions des offres</a> 10101 </li><li> 10102 <a href="/pages/politique-de-confidentialite" class="link-reversed link-tap-area text-body text-xs">Politique de confidentialité</a> 10103 </li><li> 10104 <a href="/pages/politique-de-cookies" class="link-reversed link-tap-area text-body text-xs">Politique de cookies </a> 10105 </li><li> 10106 <a href="https://login.datacomplyone.app/moovapps/easysite/workplace/demande-droit?token=VDFKSlJVNVVTVk5IVDFWU1RVVlU%3D&lg=fr" class="link-reversed link-tap-area text-body text-xs">Droits RGPD</a> 10107 </li><li> 10108 <a href="javascript:Didomi.preferences.show()" class="link-reversed link-tap-area text-body text-xs">Gestion des cookies</a> 10109 </li></ul></div><accordion-disclosure class="accordion sm:hidden" > 10110 <details class="accordion__disclosure" > 10111 <summary class="accordion__summary text-body text-base"><span>
10111Aide</span><svg aria-hidden="true" focusable="false" width="11" class="icon icon-accordion-small-arrow" part="icon" fill="none" viewBox="0 0 11 7"> 10112 <path stroke="currentColor" stroke-width="1.5" d="M10 1 5.5 5.5 1 1" /> 10113 </svg></summary> 10114 10115 <div class="accordion__content "><ul class="v-stack gap-1 unstyled-list" role="list"><li> 10116 <a href="https://kusmitea-ssw4lt8dynr.gorgias.help/fr-FR" class="link-reversed link-tap-area text-body text-xs">Aide et Contact</a> 10117 </li><li> 10118 <a href="/pages/trouvez-votre-boutique" class="link-reversed link-tap-area text-body text-xs">Trouver une boutique</a> 10119 </li><li> 10120 <a href="/pages/livraison" class="link-reversed link-tap-area text-body text-xs">Livraison et retours</a> 10121 </li><li> 10122 <a href="/pages/click-collect" class="link-reversed link-tap-area text-body text-xs">Click & Collect</a> 10123 </li><li> 10124 <a href="/products/carte-cadeau" class="link-reversed link-tap-area text-body text-xs">Cartes Cadeaux</a> 10125 </li><li> 10126 <a href="/pages/offre-du-moment" class="link-reversed link-tap-area text-body text-xs">Offres du moment</a> 10127 </li><li> 10128 <a href="/pages/conditions-des-offres" class="link-reversed link-tap-area text-body text-xs">Conditions des offres</a> 10129 </li><li> 10130 <a href="/pages/politique-de-confidentialite" class="link-reversed link-tap-area text-body text-xs">Politique de confidentialité</a> 10131 </li><li> 10132 <a href="/pages/politique-de-cookies" class="link-reversed link-tap-area text-body text-xs">Politique de cookies </a> 10133 </li><li> 10134 <a href="https://login.datacomplyone.app/moovapps/easysite/workplace/demande-droit?token=VDFKSlJVNVVTVk5IVDFWU1RVVlU%3D&lg=fr" class="link-reversed link-tap-area text-body text-xs">Droits RGPD</a> 10135 </li><li> 10136 <a href="javascript:Didomi.preferences.show()" class="link-reversed link-tap-area text-body text-xs">Gestion des cookies</a> 10137 </li></ul></div> 10138 </details> 10139</accordion-disclosure> 10140</div><div 10141 class="footer__block footer__block--certification " 10142 10143 ><div class="v-stack gap-4.5"><div class="v-stack" style="max-width: 126px;"><div class="h-stack wrap" style="gap: 4px;"><img src="//www.kusmitea.com/cdn/shop/files/Certif-b-corporation.png?v=1761642531&width=78" alt="Certification" srcset="//www.kusmitea.com/cdn/shop/files/Certif-b-corporation.png?v=1761642531&width=39 39w, //www.kusmitea.com/cdn/shop/files/Certif-b-corporation.png?v=1761642531&width=78 78w" width="78" height="114" loading="lazy" sizes="39px" style="max-width: 39px; height: auto; object-fit: contain;"><img src="//www.kusmitea.com/cdn/shop/files/ab_certif.webp?v=1761211429&width=78" alt="Certification" srcset="//www.kusmitea.com/cdn/shop/files/ab_certif.webp?v=1761211429&width=39 39w, //www.kusmitea.com/cdn/shop/files/ab_certif.webp?v=1761211429&width=78 78w" width="78" height="52" loading="lazy" sizes="39px" style="max-width: 39px; height: auto; object-fit: contain;"><img src="//www.kusmitea.com/cdn/shop/files/AB_HD-847x1024_cc2e1de4-2367-4415-a239-09686171f16b.jpg?v=1774281385&width=78" alt="Certification" srcset="//www.kusmitea.com/cdn/shop/files/AB_HD-847x1024_cc2e1de4-2367-4415-a239-09686171f16b.jpg?v=1774281385&width=39 39w, //www.kusmitea.com/cdn/shop/files/AB_HD-847x1024_cc2e1de4-2367-4415-a239-09686171f16b.jpg?v=1774281385&width=78 78w" width="78" height="94" loading="lazy" sizes="39px" style="max-width: 39px; height: auto; object-fit: contain;"></div><div class="prose text-body text-xxs"><p class="h6">Certifiée B-Corp & 100% bio</p></div></div></div></div></div></div><hr class="separator full-bleed"> 10144 10145 <div class="footer__aside"><div class="h-stack gap-5 md:justify-start" id="shopify-orb-footer"></div> 10146 10147 <div class="v-stack gap-3 items-center"> 10148 <p class="text-xs text-center copyright"> 10149 2026 - Kusmi Tea By 10150 <a href="https://www.axome.com" target="_blank" rel="noopener nofollow">Axome</a> 10151 </p><ul class="h-stack gap-4 wrap unstyled-list justify-center"><li><svg xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" fill="none" aria-labelledby="pi-american_express"><title id="pi-american_express">American Express</title><rect x=".5" y=".5" width="37" height="23" rx="2.5" stroke="#000" stroke-opacity=".07" fill="none"/><path d="M35 0H3C1.3 0 0 1.3 0 3V21C0 22.7 1.4 24 3 24H35C36.7 24 38 22.7 38 21V3C38 1.3 36.6 0 35 0Z" fill="#0071CE" style="fill:#0071CE;fill:color(display-p3 0.0000 0.4431 0.8078);fill-opacity:1;"/>
10151<path d="M3 0.5H35C36.3348 0.5 37.5 1.58692 37.5 3V21C37.5 22.4239 36.4239 23.5 35 23.5H3C1.66524 23.5 0.5 22.4131 0.5 21V3C0.5 1.57614 1.57614 0.5 3 0.5Z" stroke="black" stroke-opacity="0.07" style="stroke:black;stroke-opacity:0.07;"/><path d="M25.8662 6.33203V3H31L31.8662 5.5332L32.7334 3H37V14.2002H36.7998L34.8672 16.2656L36.7998 18.3594H37V21.2666H33.5996L31.9336 19.3994L30.2002 21.2666H19.4668V12.666H16L20.2666 3H24.4004L25.8662 6.33203ZM20.5996 20.2656H27V18.5322H22.666V17.3994H26.8662V15.666H22.666V14.5322H27V12.7988H20.5996V20.2656ZM30.5332 16.5322L27 20.2656H29.5996L31.8662 17.8662L34.0664 20.2656H36.7324L33.1992 16.4658L36.7324 12.7988H34.1328L31.8662 15.1992L29.7324 12.7988H27L30.5332 16.5322ZM17.666 11.7324H19.9326L20.5332 10.1992H23.999L24.666 11.7324H26.999L23.666 4.19922H20.999L17.666 11.7324ZM33.5996 4.19922L31.9326 8.86621L30.1992 4.19922H27V11.666H29.0664V6.39941L31 11.666H32.7998L34.7324 6.39941V11.666H36.7324V4.13281L33.5996 4.19922ZM23.2656 8.46582H21.2656L22.2656 5.99902L23.2656 8.46582Z" fill="white" style="fill:white;fill-opacity:1;"/></svg> 10152</li><li><svg version="1.1" xmlns="http://www.w3.org/2000/svg" role="img" x="0" y="0" width="38" height="24" viewBox="0 0 165.521 105.965" xml:space="preserve" aria-labelledby="pi-apple_pay"><title id="pi-apple_pay">Apple Pay</title><path fill="#000" d="M150.698 0H14.823c-.566 0-1.133 0-1.698.003-.477.004-.953.009-1.43.022-1.039.028-2.087.09-3.113.274a10.51 10.51 0 0 0-2.958.975 9.932 9.932 0 0 0-4.35 4.35 10.463 10.463 0 0 0-.975 2.96C.113 9.611.052 10.658.024 11.696a70.22 70.22 0 0 0-.022 1.43C0 13.69 0 14.256 0 14.823v76.318c0 .567 0 1.132.002 1.699.003.476.009.953.022 1.43.028 1.036.09 2.084.275 3.11a10.46 10.46 0 0 0 .974 2.96 9.897 9.897 0 0 0 1.83 2.52 9.874 9.874 0 0 0 2.52 1.83c.947.483 1.917.79 2.96.977 1.025.183 2.073.245 3.112.273.477.011.953.017 1.43.02.565.004 1.132.004 1.698.004h135.875c.565 0 1.132 0 1.697-.004.476-.002.952-.009 1.431-.02 1.037-.028 2.085-.09 3.113-.273a10.478 10.478 0 0 0 2.958-.977 9.955 9.955 0 0 0 4.35-4.35c.483-.947.789-1.917.974-2.96.186-1.026.246-2.074.274-3.11.013-.477.02-.954.022-1.43.004-.567.004-1.132.004-1.699V14.824c0-.567 0-1.133-.004-1.699a63.067 63.067 0 0 0-.022-1.429c-.028-1.038-.088-2.085-.274-3.112a10.4 10.4 0 0 0-.974-2.96 9.94 9.94 0 0 0-4.35-4.35A10.52 10.52 0 0 0 156.939.3c-1.028-.185-2.076-.246-3.113-.274a71.417 71.417 0 0 0-1.431-.022C151.83 0 151.263 0 150.698 0z" /><path fill="#FFF" d="M150.698 3.532l1.672.003c.452.003.905.008 1.36.02.793.022 1.719.065 2.583.22.75.135 1.38.34 1.984.648a6.392 6.392 0 0 1 2.804 2.807c.306.6.51 1.226.645 1.983.154.854.197 1.783.218 2.58.013.45.019.9.02 1.36.005.557.005 1.113.005 1.671v76.318c0 .558 0 1.114-.004 1.682-.002.45-.008.9-.02 1.35-.022.796-.065 1.725-.221 2.589a6.855 6.855 0 0 1-.645 1.975 6.397 6.397 0 0 1-2.808 2.807c-.6.306-1.228.511-1.971.645-.881.157-1.847.2-2.574.22-.457.01-.912.017-1.379.019-.555.004-1.113.004-1.669.004H14.801c-.55 0-1.1 0-1.66-.004a74.993 74.993 0 0 1-1.35-.018c-.744-.02-1.71-.064-2.584-.22a6.938 6.938 0 0 1-1.986-.65 6.337 6.337 0 0 1-1.622-1.18 6.355 6.355 0 0 1-1.178-1.623 6.935 6.935 0 0 1-.646-1.985c-.156-.863-.2-1.788-.22-2.578a66.088 66.088 0 0 1-.02-1.355l-.003-1.327V14.474l.002-1.325a66.7 66.7 0 0 1 .02-1.357c.022-.792.065-1.717.222-2.587a6.924 6.924 0 0 1 .646-1.981c.304-.598.7-1.144 1.18-1.623a6.386 6.386 0 0 1 1.624-1.18 6.96 6.96 0 0 1 1.98-.646c.865-.155 1.792-.198 2.586-.22.452-.012.905-.017 1.354-.02l1.677-.003h135.875" /><g><g><path fill="#000" d="M43.508 35.77c1.404-1.755 2.356-4.112 2.105-6.52-2.054.102-4.56 1.355-6.012 3.112-1.303 1.504-2.456 3.959-2.156 6.266 2.306.2 4.61-1.152 6.063-2.858" /><path fill="#000" d="M45.587 39.079c-3.35-.2-6.196 1.9-7.795 1.9-1.6 0-4.049-1.8-6.698-1.751-3.447.05-6.645 2-8.395 5.1-3.598 6.2-.95 15.4 2.55 20.45 1.699 2.5 3.747 5.25 6.445 5.151 2.55-.1 3.549-1.65 6.647-1.65 3.097 0 3.997 1.65 6.696 1.6 2.798-.05 4.548-2.5 6.247-5 1.95-2.85 2.747-5.6 2.797-5.75-.05-.05-5.396-2.101-5.446-8.251-.05-5.15 4.198-7.6 4.398-7.751-2.399-3.548-6.147-3.948-7.447-4.048" /></g><g><path fill="#000" d="M78.973 32.11c7.278 0 12.347 5.017 12.347 12.321 0 7.33-5.173 12.373-12.529 12.373h-8.058V69.62h-5.822V32.11h14.062zm-8.24 19.807h6.68c5.07 0 7.954-2.729 7.954-7.46 0-4.73-2.885-7.434-7.928-7.434h-6.706v14.894z" />
10152<path fill="#000" d="M92.764 61.847c0-4.809 3.665-7.564 10.423-7.98l7.252-.442v-2.08c0-3.04-2.001-4.704-5.562-4.704-2.938 0-5.07 1.507-5.51 3.82h-5.252c.157-4.86 4.731-8.395 10.918-8.395 6.654 0 10.995 3.483 10.995 8.89v18.663h-5.38v-4.497h-.13c-1.534 2.937-4.914 4.782-8.579 4.782-5.406 0-9.175-3.222-9.175-8.057zm17.675-2.417v-2.106l-6.472.416c-3.64.234-5.536 1.585-5.536 3.95 0 2.288 1.975 3.77 5.068 3.77 3.95 0 6.94-2.522 6.94-6.03z" /><path fill="#000" d="M120.975 79.652v-4.496c.364.051 1.247.103 1.715.103 2.573 0 4.029-1.09 4.913-3.899l.52-1.663-9.852-27.293h6.082l6.863 22.146h.13l6.862-22.146h5.927l-10.216 28.67c-2.34 6.577-5.017 8.735-10.683 8.735-.442 0-1.872-.052-2.261-.157z" /></g></g></svg> 10153</li><li><svg xmlns="http://www.w3.org/2000/svg" aria-labelledby="pi-bancontact" role="img" viewBox="0 0 38 24" width="38" height="24"><title id="pi-bancontact">Bancontact</title><path fill="#000" opacity=".07" d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z"/><path fill="#fff" d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32"/><path d="M4.703 3.077h28.594c.139 0 .276.023.405.068.128.045.244.11.343.194a.9.9 0 0 1 .229.29c.053.107.08.223.08.34V20.03a.829.829 0 0 1-.31.631 1.164 1.164 0 0 1-.747.262H4.703a1.23 1.23 0 0 1-.405-.068 1.09 1.09 0 0 1-.343-.194.9.9 0 0 1-.229-.29.773.773 0 0 1-.08-.34V3.97c0-.118.027-.234.08-.342a.899.899 0 0 1 .23-.29c.098-.082.214-.148.342-.193a1.23 1.23 0 0 1 .405-.068Z" fill="#fff"/><path d="M6.38 18.562v-3.077h1.125c.818 0 1.344.259 1.344.795 0 .304-.167.515-.401.638.338.132.536.387.536.734 0 .62-.536.91-1.37.91H6.38Zm.724-1.798h.537c.328 0 .468-.136.468-.387 0-.268-.255-.356-.599-.356h-.406v.743Zm0 1.262h.448c.438 0 .693-.093.693-.383 0-.286-.219-.404-.63-.404h-.51v.787Zm3.284.589c-.713 0-1.073-.295-1.073-.69 0-.436.422-.69 1.047-.695.156.002.31.014.464.035v-.105c0-.269-.183-.396-.531-.396a2.128 2.128 0 0 0-.688.105l-.13-.474a3.01 3.01 0 0 1 .9-.132c.767 0 1.147.343 1.147.936v1.222c-.214.093-.615.194-1.136.194Zm.438-.497v-.47a2.06 2.06 0 0 0-.37-.036c-.24 0-.427.08-.427.286 0 .185.156.281.432.281a.947.947 0 0 0 .365-.061Zm1.204.444v-2.106a3.699 3.699 0 0 1 1.177-.193c.76 0 1.198.316 1.198.9v1.399h-.719v-1.354c0-.303-.167-.444-.484-.444a1.267 1.267 0 0 0-.459.079v1.719h-.713Zm4.886-2.167-.135.479a1.834 1.834 0 0 0-.588-.11c-.422 0-.652.25-.652.664 0 .453.24.685.688.685.2-.004.397-.043.578-.114l.115.488a2.035 2.035 0 0 1-.75.128c-.865 0-1.365-.453-1.365-1.17 0-.712.495-1.182 1.323-1.182.27-.001.538.043.787.132Zm1.553 2.22c-.802 0-1.302-.47-1.302-1.178 0-.704.5-1.174 1.302-1.174.807 0 1.297.47 1.297 1.173 0 .708-.49 1.179-1.297 1.179Zm0-.502c.37 0 .563-.259.563-.677 0-.413-.193-.672-.563-.672-.364 0-.568.26-.568.672 0 .418.204.677.568.677Zm1.713.449v-2.106a3.699 3.699 0 0 1 1.177-.193c.76 0 1.198.316 1.198.9v1.399h-.719v-1.354c0-.303-.166-.444-.484-.444a1.268 1.268 0 0 0-.459.079v1.719h-.713Zm3.996.053c-.62 0-.938-.286-.938-.866v-.95h-.354v-.484h.355v-.488l.718-.03v.518h.578v.484h-.578v.94c0 .256.125.374.36.374.093 0 .185-.008.276-.026l.036.488c-.149.028-.3.041-.453.04Zm1.814 0c-.713 0-1.073-.295-1.073-.69 0-.436.422-.69 1.047-.695.155.002.31.014.464.035v-.105c0-.269-.183-.396-.532-.396a2.128 2.128 0 0 0-.687.105l-.13-.474a3.01 3.01 0 0 1 .9-.132c.766 0 1.146.343 1.146.936v1.222c-.213.093-.614.194-1.135.194Zm.438-.497v-.47a2.06 2.06 0 0 0-.37-.036c-.24 0-.427.08-.427.286 0 .185.156.281.432.281a.946.946 0 0 0 .365-.061Zm3.157-1.723-.136.479a1.834 1.834 0 0 0-.588-.11c-.422 0-.651.25-.651.664 0 .453.24.685.687.685.2-.004.397-.043.578-.114l.115.488a2.035 2.035 0 0 1-.75.128c-.865 0-1.365-.453-1.365-1.17 0-.712.495-1.182 1.323-1.182.27-.001.538.043.787.132Zm1.58 2.22c-.62 0-.938-.286-.938-.866v-.95h-.354v-.484h.354v-.488l.72-.03v.518h.577v.484h-.578v.94c0 .256.125.374.36.374.092 0 .185-.008.276-.026l.036.488c-.149.028-.3.041-.453.04Z" fill="#1E3764"/><path d="M11.394 13.946c3.803 0 5.705-2.14 7.606-4.28H6.38v4.28h5.014Z" fill="url(#pi-bancontact-a)"/><path d="M26.607 5.385c-3.804 0-5.705 2.14-7.607 4.28h12.62v-4.28h-5.013Z" fill="url(#pi-bancontact-b)"/><defs><linearGradient id="pi-bancontact-a" x1="8.933" y1="12.003" x2="17.734" y2="8.13" gradientUnits="userSpaceOnUse"><stop stop-color="#005AB9"/><stop offset="1" stop-color="#1E3764"/></linearGradient><linearGradient id="pi-bancontact-b" x1="19.764" y1="10.037" x2="29.171" y2="6.235" gradientUnits="userSpaceOnUse"><stop stop-color="#FBA900"/><stop offset="1" stop-color="#FFD800"/></linearGradient></defs></svg></li><li><svg xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" aria-labelledby="pi-cartes_bancaires"><title id="pi-cartes_bancaires">Cartes Bancaires</title><path fill="#000" opacity=".07" d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z"/><path fill="url(#pi-cartes_bancaires-bg)" d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32"/><path d="M359.76,172.39L377.69,176.41C391.283,180.103 404.573,185.387 417.56,192.26L436.24,204.32C444.133,210.28 451.377,216.933 457.97,224.28C468.75,236.533 477.46,250.08 484.1,264.92C491.547,282.307 496.263,300.463 498.25,319.39L498.88,325.76C498.884,325.797 498.885,325.833 498.885,325.87C498.885,326.477 498.387,326.978 497.78,326.98L488.04,327.03L463.22,327.01L364.28,327.01L314.43,327.03C314.189,327.03 313.99,327.229 313.99,327.47L313.97,358.76C313.97,359.149 314.291,359.47 314.68,359.47L347.03,359.44L392.51,359.36L455.5,359.39L476.03,359.37L497.93,359.27C497.934,359.27 497.938,359.27 497.942,359.27C498.436,359.27 498.842,359.676 498.842,360.17C498.842,360.19 498.841,360.21 498.84,360.23C497.793,375.25 495.07,389.85 490.67,404.03C481.463,433.73 465.017,458.42 441.33,478.1C434.7,482.97 427.99,488.11 421.1,492.01C414.607,495.677 407.88,499.007 400.92,502C390.773,505.96 380.283,509.25 369.45,511.87C358.57,514.083 347.61,515.697 336.57,516.71C323.27,517.67 310.147,517.68 297.2,516.74C284.933,515.8 273.123,514.087 261.77,511.6L238.33,504.64L222.81,498.06C213.743,493.66 205.42,488.693 197.84,483.16C194.92,481.02 191.367,478.213 187.18,474.74C179.267,467.567 172.037,459.82 165.49,451.5C149.837,429.727 139.937,405.473 135.79,378.74C134.997,373.607 134.313,368.713 133.74,364.06C133.493,359.447 133.287,355.093 133.12,351C130.62,288.62 154.03,229.02 209.21,195.62C221.257,188.393 234.053,182.7 247.6,178.54C266.753,172.68 28
101536.397,169.49 306.53,168.97C310.04,168.99 313.69,168.59 316.97,168.67C332.75,169.1 344.72,169.82 359.76,172.39Z" fill="#fff" transform="matrix(.0373 0 0 .0321 1 1)"/><path d="M543.53,178.39L564.53,178.48L615.29,178.46L626.64,178.39L658.03,178.43L695.21,178.41L715.29,178.46L742.47,178.47C754.77,178.27 765.197,178.96 773.75,180.54C775.25,180.813 778.343,181.547 783.03,182.74C791.683,185.62 799.43,190.06 806.27,196.06C821.137,209.253 829.46,225.9 831.24,246C831.54,249.353 831.53,254.247 831.21,260.68C830.883,262.76 830.52,264.863 830.12,266.99C826.12,288.283 815.17,304.643 797.27,316.07C791.15,319.983 784.14,322.75 776.24,324.37C766.087,326.103 757.34,326.973 750,326.98C729.9,327.007 709.807,327.017 689.72,327.01L640.23,327.03L610.96,327.03L552.22,327.08L529.14,326.99C528.66,326.99 528.42,326.75 528.42,326.27L528.39,210.79L528.46,182.34L528.39,178.97C528.39,178.966 528.39,178.963 528.39,178.959C528.385,178.641 528.647,178.375 528.971,178.37C528.974,178.37 528.977,178.37 528.98,178.37L543.53,178.39Z" fill="#fff" transform="matrix(.0373 0 0 .0321 1 1)"/><path d="M544.02,359.28L600.29,359.41L629.53,359.47L686.76,359.42C710.667,359.473 734.58,359.523 758.5,359.57C761.013,359.57 764.993,359.987 770.44,360.82C794.68,363.74 814.59,379.34 824.72,401.32C830.253,413.787 832.43,426.597 831.25,439.75C828.89,466.217 816.147,486.057 793.02,499.27C777.79,506.54 761.85,507.5 745.02,507.51C735.833,507.517 726.643,507.513 717.45,507.5L680.94,507.51L653.28,507.52L592.8,507.63L585.32,507.53L539.82,507.52L529.54,507.64C528.88,507.58 528.55,507.367 528.55,507C528.557,475.087 528.537,443.147 528.49,411.18L528.47,360.61C528.47,359.71 528.917,359.263 529.81,359.27L544.02,359.28Z" fill="#fff" transform="matrix(.0373 0 0 .0321 1 1)"/><defs><linearGradient id="pi-cartes_bancaires-bg" x1="1" y1="23" x2="37" y2="1" gradientUnits="userSpaceOnUse"><stop stop-color="#003087"/><stop offset=".32" stop-color="#005AA8"/><stop offset=".5" stop-color="#E7DFDC"/><stop offset=".74" stop-color="#C8102E"/><stop offset="1" stop-color="#B00020"/></linearGradient></defs></svg> 10154</li><li><svg xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" aria-labelledby="pi-eps"> <title id="pi-eps">EPS</title> <path d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z" opacity=".07"/> <path d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32" fill="#fff"/> <path fill="#71706f" d="M27.745 12.32h-2.322a.465.465 0 01-.468-.464c0-.258.21-.484.468-.484h3.535V9.628h-3.535c-1.233 0-2.237 1.006-2.237 2.236s1.004 2.237 2.237 2.237h2.29c.259 0 .469.205.469.462 0 .258-.21.448-.468.448h-4.912c-.417.796-.822 1.478-1.645 1.82h6.588c1.213-.018 2.205-1.045 2.205-2.265 0-1.22-.992-2.23-2.205-2.247z"/> <path fill="#71706f" d="M18.845 9.628c-1.968 0-3.571 1.612-3.571 3.594V20.697h1.782V16.83h1.785c1.968 0 3.565-1.634 3.565-3.615 0-1.98-1.593-3.587-3.561-3.587zm0 5.383h-1.79v-1.796c0-1.003.8-1.82 1.79-1.82s1.796.817 1.796 1.82a1.79 1.79 0 01-1.796 1.796z"/> <path fill="#c8036f" d="M9.634 16.83c-1.685 0-3.101-1.2-3.484-2.768 0 0-.111-.519-.111-.86 0-.342.105-.865.105-.865a3.594 3.594 0 013.482-2.73c1.978 0 3.6 1.608 3.6 3.586v.87H7.973c.31.60
101547.938.948 1.662.948h4.724l.006-5.13c0-.764-.625-1.39-1.39-1.39H6.278c-.764 0-1.39.607-1.39 1.371v6.696c0 .765.626 1.41 1.39 1.41h6.696c.686 0 1.259-.493 1.37-1.138h-4.71z"/> <path fill="#c8036f" d="M9.626 11.31c-.72 0-1.348.44-1.66 1.01h3.32c-.312-.57-.939-1.01-1.66-1.01zM12.659 6.314c0-1.635-1.359-2.96-3.034-2.96-1.647 0-2.987 1.282-3.031 2.879v.91c0 .106.086.21.195.21h1.116c.11 0 .205-.104.205-.21v-.83c0-.815.68-1.48 1.516-1.48.837 0 1.516.665 1.516 1.48v.83c0 .106.089.21.198.21h1.116c.109 0 .202-.104.202-.21v-.83z"/> <g> <path fill="#71706f" d="M20.843 19.142l-.16.914c-.082.462-.384.673-.794.673-.347 0-.616-.226-.538-.672l.161-.914h.249l-.161.913c-.05.285.078.447.32.447.249 0 .462-.148.513-.446l.161-.915h.25zm-.977-.285c0 .076.059.112.121.112.079 0 .164-.057.164-.162 0-.074-.05-.112-.114-.112-.08 0-.17.052-.17.162zm.538-.003c0 .079.06.114.126.114.07 0 .161-.056.161-.159 0-.074-.054-.114-.114-.114-.08 0-.173.052-.173.16zM21.445 19.142l-.112.632a.57.57 0 01.423-.199c.278 0 .47.163.47.465 0 .428-.297.686-.678.686-.148 0-.274-.055-.35-.194l-.042.165h-.218l.276-1.554h.23zm-.175 1.066c-.01.183.11.302.282.302a.444.444 0 00.441-.423c.01-.186-.111-.296-.28-.296a.45.45 0 00-.443.417zM22.68 20.242c-.01.151.11.275.311.275.112 0 .26-.044.34-.12l.126.145a.782.782 0 01-.508.188c-.319 0-.505-.19-.505-.482 0-.388.305-.677.695-.677.356 0 .558.216.437.67h-.896zm.708-.19c.018-.19-.094-.267-.28-.267-.168 0-.323.078-.39.267h.67zM24.193 19.597l-.012.146a.414.414 0 01.357-.17c.107 0 .204.039.255.095l-.139.201a.244.244 0 00-.183-.067.346.346 0 00-.352.3l-.106.595h-.23l.195-1.1h.215zM25.905 19.597l.116.87.422-.87h.257l-.578 1.1h-.27l-.11-.725-.178.36-.192.365h-.27l-.194-1.1h.26l.114.87.424-.87h.199zM26.997 20.242c-.01.151.11.275.311.275.112 0 .26-.044.34-.12l.126.145a.782.782 0 01-.508.188c-.319 0-.505-.19-.505-.482 0-.388.305-.677.695-.677.356 0 .558.216.437.67h-.896zm.708-.19c.018-.19-.094-.267-.28-.267-.168 0-.323.078-.39.267h.67zM28.525 19.597l-.194 1.1H28.1l.195-1.1h.23zm-.204-.3c0 .08.059.12.121.12.09 0 .173-.059.173-.168a.113.113 0 00-.117-.117c-.082 0-.177.054-.177.166zM29.55 19.87c-.072-.081-.164-.104-.274-.104-.152 0-.26.052-.26.148 0 .08.088.114.218.126.201.017.459.085.405.37-.038.205-.244.326-.53.326-.18 0-.353-.04-.47-.204l.151-.163c.083.114.229.161.358.164.11 0 .24-.04.26-.144.02-.098-.067-.136-.228-.152-.188-.018-.394-.087-.394-.296 0-.276.298-.372.522-.372.17 0 .295.038.399.148l-.157.152zM30.278 19.597l-.105.592c-.034.189.051.319.244.319.181 0 .336-.15.367-.334l.101-.576h.231l-.195 1.099h-.208l.015-.16a.573.573 0 01-.412.182c-.271 0-.432-.194-.374-.528l.105-.593h.231zM32.13 20.697l.105-.589c.033-.19-.032-.317-.242-.317-.184 0-.339.148-.37.33l-.1.576h-.232l.195-1.1h.21l-.015.16a.583.583 0 01.403-.176c.27 0 .444.187.384.525l-.106.59h-.233zM32.912 20.848c-.016.152.1.213.296.213.17 0 .354-.095.396-.337l.034-.189c-.1.142-.285.197-.421.197-.283 0-.48-.168-.48-.473 0-.434.323-.685.688-.685.155 0 .294.073.343.199l.038-.176h.224l-.193 1.132c-.071.42-.383.55-.668.55-.34 0-.528-.165-.481-.43h.224zm.065-.633c0 .188.123.302.3.302.477 0 .605-.733.128-.733a.42.42 0 00-.428.43z"/></g></svg></li><li><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 38 24" width="38" height="24" role="img" aria-labelledby="pi-spidealwero"><title id="pi-spidealwero">iDEAL Wero</title><path opacity="0.07" d="M35 0H3C1.3 0 0 1.3 0 3V21C0 22.7 1.4 24 3 24H35C36.7 24 38 22.7 38 21V3C38 1.3 36.6 0 35 0Z" fill="black"/><path d="M35 1C36.1 1 37 1.9 37 3V21C37 22.1 36.1 23 35 23H3C1.9 23 1 22.1 1 21V3C1 1.9 1.9 1 3 1H35Z" fill="#FFF48D"/><path d="M3.45001 7.43572V17.0022C3.45001 17.4602 3.82664 17.8347 4.28673 17.8347H10.0301C14.3722 17.8347 16.2539 15.4157 16.2539 12.2063C16.2539 8.99693 14.3715 6.60321 10.0294 6.60321H4.28603C3.82594 6.60321 3.44931 6.97773 3.44931 7.43572H3.45001Z" fill="white"/><path d="M7.29413 8.95133V16.0203H10.385C13.1918 16.0203 14.4087 14.4422 14.4087 12.2112C14.4087 9.98022 13.1911 8.41901 10.385 8.41901H7.82926C7.53259 8.41901 7.29413 8.66027 7.29413 8.95204V8.95133Z" fill="#CC0066"/><path fill-rule="evenodd" clip-rule="evenodd" d="M5.03507 17.073H10.0294C13.539 17.073 15.4754 15.3456 15.4754 12.2105C15.4754 10.4038 14.7685 7.36908 10.0294 7.36908H5.03507C4.59182 7.36908 4.23203 7.72677 4.23203 8.16862V16.2742C4.23203 16.7153 4.59182 17.0737 5.03507 17.0737V17.073ZM4.49924 8.16862C4.49924 7.87335 4.7377 7.63559 5.03437 7.63559H10.0287C11.9609 7.63559 15.2068 8.23104 15.2068 12.2105C15.2068 15.1744 13.3665 16.8065 10.0287 16.8065H5.03507C4.7384 16.8065 4.49994 16.5694 4.49994 16.2735V8.16862H4.49924Z" fill="#232323"/><path fill-rule="evenodd" clip-rule="evenodd" d="M8.81464 11.1831C8.72066 11.1494 8.62247 11.1326 8.51586 11.1326V11.1284H7.8082V12.8355H8.52428C8.65122 12.8355 8.76134 12.8102 8.85602 12.7681C8.95 12.7218 9.02785 12.6629 9.08957 12.5872C9.15129 12.5114 9.19618 12.4188 9.22844 12.3136C9.25719 12.2084 9.27332 12.0948 9.27332 11.9686C9.27332 11.8255 9.25299 11.7035 9.21581 11.5983C9.17514 11.4973 9.12183 11.4089 9.05661 11.3374C8.98717 11.27 8.90932 11.2153 8.81534 11.1817L8.81464 11.1831ZM8.64702 12.4995C8.59371 12.5163 8.54462 12.5248 8.49132 12.5248V12.529H8.16799V11.4524H8.4296C8.51937 11.4524 8.59301 11.465 8.65473 11.4903C8.71645 11.5155 8.76554 11.5576 8.80201 11.6039C8.83849 11.6502 8.86724 11.7133 8.88407 11.7806C8.9002 11.8479 8.90862 11.9279 8.90862 12.0121C8.90862 12.1088 8.896 12.1846 8.87215 12.2519C8.85108 12.3106 8.81921 12.3649 8.77817 12.4118C8.74305 12.4524 8.69779 12.4829 8.64702 12.5002V12.4995Z" fill="white"/><path d="M10.7504 11.1333V11.4489H9.87441V11.815H10.6803V12.1053H9.87441V12.5219H10.7707V12.8376H9.51041V11.1305H10.7504V11.1347V11.1333Z" fill="white"/><path fill-rule="evenodd" clip-rule="evenodd" d="M12.6244 12.8404L12.0023 11.1333H11.6222L10.9958 12.8404H11.3641L11.4952 12.4616H12.1173L12.2443 12.8404H12.6251H12.6244ZM11.8136 11.5534L12.0226 12.1797H11.5934L11.8101 11.5534H11.8143H11.8136Z" fill="white"/><path d="M13.2178 11.1325V12.5247H14.0278V12.8403H12.8538V11.1332H13.2178V11.1325Z" fill="white"/><path d="M5.85774 12.8656C6.30099 12.8656 6.66009 12.5065 6.66009 12.0625C6.66009 11.6186 6.30099 11.2595 5.85774 11.2595C5.41448 11.2595 5.05539 11.6186 5.05539 12.0625C5.05539 12.5065 5.41448 12.8656 5.85774 12.8656ZM6.33536 16.0771C5.71396 16.0771 5.216 15.5406 5.216 14.8813V13.9478C5.216 13.6181 5.46498 13.3474 5.77778 13.3474C6.09059 13.3474 6.33957 13.6139 6.33957 13.9478V16.0771H6.33536Z" fill="#232323"/><path d="M31.45 12.2209C31.45 11.1773 32.1926 10.2264 33.4749 10.2264C34.7572 10.2264 35.5053 11.178 35.5053 12.2209C35.5053 13.2638 34.7627 14.2154 33.4749 14.2154C32.1926 14.2154 31.45 13.2638 31.45 12.2209ZM34.3782 12.2209C34.3782 11.7178 34.0467 11.2537 33.4749 11.2537C32.9032 11.2537 32.5717 11.7186 32.571
101547 12.2209C32.5717 12.7232 32.9086 13.1889 33.4749 13.1889C34.0412 13.1889 34.3782 12.724 34.3782 12.2209ZM30.6615 12.9619C31.0889 12.7185 31.3455 12.2537 31.3455 11.7404C31.3455 10.9784 30.7948 10.3294 29.94 10.3294H28.1452V14.1132H29.2567V13.146H29.4649L30.1006 14.1132H31.4095L30.6615 12.9619ZM29.7161 12.2747H29.2567V11.2046H29.7216C30.0211 11.2046 30.213 11.4479 30.213 11.7396C30.213 12.0314 30.0148 12.2747 29.7161 12.2747ZM23.0713 10.3247L22.4044 12.5797L21.7539 10.3247H20.8686L20.2126 12.5797L19.5511 10.3247H18.378L19.722 14.1015H20.6868L21.3108 12.0454L21.9294 14.1015H22.8997L24.2436 10.3247H23.0705H23.0713ZM25.9261 13.1795H25.9237C25.508 13.1795 25.2163 12.9284 25.0915 12.5961H27.9159C27.9385 12.4713 27.9502 12.3434 27.9502 12.2139C27.9502 11.1734 27.21 10.2241 25.9261 10.2233V11.2482C26.3442 11.249 26.6328 11.5002 26.7568 11.8317H23.9363C23.9137 11.9565 23.902 12.0844 23.902 12.2139C23.902 13.2552 24.643 14.2052 25.923 14.2052H25.9253V13.1795H25.9261Z" fill="#1D1C1C"/><path d="M25.9237 14.2044C25.9674 14.2044 26.0103 14.2029 26.0524 14.2013C26.3122 14.188 26.5485 14.135 26.7591 14.05C26.9697 13.965 27.1546 13.8472 27.3114 13.7052C27.4673 13.5644 27.5983 13.3982 27.699 13.2138C27.7903 13.0469 27.8574 12.8667 27.8995 12.6787H26.7225C26.6983 12.7287 26.6702 12.777 26.6382 12.8215C26.5945 12.8831 26.5431 12.9385 26.4846 12.9861C26.4261 13.0344 26.3605 13.075 26.2888 13.1062C26.217 13.1374 26.1382 13.1592 26.0532 13.1709C26.0119 13.1764 25.969 13.1795 25.9245 13.1795C25.6601 13.1795 25.4456 13.0773 25.2919 12.9174L24.5268 13.6912C24.8668 14.0055 25.3387 14.2036 25.9237 14.2036V14.2044Z" fill="#1D1C1C"/><path d="M25.9237 10.2225C24.838 10.2225 24.1399 10.9058 23.9535 11.7482H25.1266C25.267 11.4581 25.5431 11.2475 25.9237 11.2475C26.2272 11.2475 26.4627 11.3785 26.6164 11.5766L27.3886 10.7958C27.0438 10.4464 26.5477 10.2225 25.9245 10.2225H25.9237Z" fill="#1D1C1C"/><path d="M17.3927 16.431C17.3069 16.431 17.2367 16.3608 17.2367 16.275V8.16296C17.2367 8.07716 17.3069 8.00696 17.3927 8.00696C17.4785 8.00696 17.5487 8.07716 17.5487 8.16296V16.275C17.5487 16.3608 17.4785 16.431 17.3927 16.431Z" fill="#1D1C1C"/></svg></li><li><svg xmlns="http://www.w3.org/2000/svg" role="img" width="38" height="24" viewBox="0 0 38 24" aria-labelledby="pi-klarna" fill="none"><title id="pi-klarna">Klarna</title><rect width="38" height="24" rx="2" fill="#FFA8CD"/><rect x=".5" y=".5" width="37" height="23" rx="1.5" stroke="#000" stroke-opacity=".07"/><path d="M30.62 14.755c-.662 0-1.179-.554-1.179-1.226 0-.673.517-1.226 1.18-1.226.663 0 1.18.553 1.18 1.226 0 .672-.517 1.226-1.18 1.226zm-.33 1.295c.565 0 1.286-.217 1.686-1.068l.04.02c-.176.465-.176.742-.176.81v.11h1.423v-4.786H31.84v.109c0 .069 0 .346.175.81l-.039.02c-.4-.85-1.121-1.068-1.687-1.068-1.355 0-2.31 1.088-2.31 2.522 0 1.433.955 2.521 2.31 2.521zm-4.788-5.043c-.643 0-1.15.228-1.56 1.068l-.039-.02c.175-.464.175-.741.175-.81v-.11h-1.423v4.787h1.462V13.4c0-.662.38-1.078.995-1.078.614 0 .917.356.917 1.068v2.532h1.462v-3.046c0-1.088-.838-1.869-1.989-1.869zm-4.963 1.068l-.039-.02c.176-.464.176-.741.176-.81v-.11h-1.424v4.787h1.463l.01-2.304c0-.673.35-1.078.926-1.078.156 0 .282.02.429.06v-1.464c-.644-.139-1.22.109-1.54.94zm-4.65 2.68c-.664 0-1.18-.554-1.18-1.226 0-.673.516-1.226 1.18-1.226.662 0 1.179.553 1.179 1.226 0 .672-.517 1.226-1.18 1.226zm-.332 1.295c.565 0 1.287-.217 1.687-1.068l.038.02c-.175.465-.175.742-.175.81v.11h1.424v-4.786h-1.424v.109c0 .069 0 .346.175.81l-.038.02c-.4-.85-1.122-1.068-1.687-1.068-1.356 0-2.311 1.088-2.311 2.522 0 1.433.955 2.521 2.31 2.521zm-4.349-.128h1.463V9h-1.463v6.922zM10.136 9H8.644c0 1.236-.751 2.343-1.892 3.134l-.448.317V9h-1.55v6.922h1.55V12.49l2.564 3.43h1.892L8.293 12.64c1.121-.82 1.852-2.096 1.843-3.639z" fill="#0B051D"/></svg></li><li><svg xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" fill="none" aria-labelledby="pi-master"><title id="pi-master">Mastercard</title><rect x=".5" y=".5" width="37" height="23" rx="2.5" stroke="#000" stroke-opacity=".07" fill="none"/><path d="M35 0H3C1.3 0 0 1.3 0 3V21C0 22.7 1.4 24 3 24H35C36.7 24 38 22.7 38 21V3C38 1.3 36.6 0 35 0Z" fill="#1C1C1C" style="fill:#1C1C1C;fill:color(display-p3 0.1098 0.1098 0.1098);fill-opacity:1;"/>
10154<path d="M35 1C36.1 1 37 1.9 37 3V21C37 22.1 36.1 23 35 23H3C1.9 23 1 22.1 1 21V3C1 1.9 1.9 1 3 1H35Z" fill="#232323" style="fill:#232323;fill:color(display-p3 0.1373 0.1373 0.1373);fill-opacity:1;"/><path d="M14.6364 19.2727C18.8538 19.2727 22.2727 15.8538 22.2727 11.6364C22.2727 7.41892 18.8538 4 14.6364 4C10.4189 4 7 7.41892 7 11.6364C7 15.8538 10.4189 19.2727 14.6364 19.2727Z" fill="#EB001B" style="fill:#EB001B;fill:color(display-p3 0.9216 0.0000 0.1059);fill-opacity:1;"/><path d="M23.3637 19.2727C27.5811 19.2727 31 15.8538 31 11.6364C31 7.41892 27.5811 4 23.3637 4C19.1462 4 15.7273 7.41892 15.7273 11.6364C15.7273 15.8538 19.1462 19.2727 23.3637 19.2727Z" fill="#F79E1B" style="fill:#F79E1B;fill:color(display-p3 0.9686 0.6196 0.1059);fill-opacity:1;"/><path d="M22.2727 11.6362C22.2727 9.01797 20.9637 6.72706 19 5.41797C17.0364 6.83615 15.7273 9.12706 15.7273 11.6362C15.7273 14.1452 17.0364 16.5452 19 17.8543C20.9637 16.5452 22.2727 14.2543 22.2727 11.6362Z" fill="#FF5F00" style="fill:#FF5F00;fill:color(display-p3 1.0000 0.3725 0.0000);fill-opacity:1;"/></svg> 10155</li><li><svg viewBox="0 0 38 24" role="img" width="38" height="24" aria-labelledby="pi-mbway" xmlns="http://www.w3.org/2000/svg"><title id="pi-mbway">MB WAY</title><path opacity=".07" d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z"/><path fill="#fff" d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32"/><path d="M2.652 18.267l-.059.459a.38.38 0 00.381.424H17.88c.232 0 .41-.198.383-.424l-.061-.459a.658.658 0 01.579-.72.646.646 0 01.712.579l.057.445c.116.998-.448 1.872-1.456 1.872H2.761c-1.008 0-1.573-.874-1.457-1.872l.058-.445a.646.646 0 01.711-.579.657.657 0 01.579.72" fill="#d81e25"/><path d="M18.225 10.154c0 .608-.215.952-.571 1.374l-.036.043.05.029c.705.43 1.197 1.079 1.234 1.991.055 1.359-1.097 2.482-2.463 2.479h-3.602a.642.642 0 01-.634-.65V8.435c0-.361.283-.652.632-.652l2.974.009c1.297.002 2.416.955 2.416 2.362m-1.793 4.659c.726 0 1.303-.528 1.288-1.223-.016-.712-.663-1.172-1.385-1.174h-1.46a.595.595 0 01-.588-.605c0-.337.264-.606.588-.606h.974c.658-.026 1.165-.424 1.196-1.046.032-.666-.539-1.165-1.238-1.165H13.44l-.008 5.819h3" fill="#100f0d"/><path d="M6.616 13.676l.016.049.018-.049c.168-.46.369-.969.583-1.525.22-.584.439-1.143.658-1.675.221-.541.431-1.024.631-1.444.2-.429.366-.724.493-.886a.97.97 0 01.781-.354h.149c.199 0 .354.053.47.15.107.093.171.2.188.323l.931 7.219a.593.593 0 01-.159.437c-.105.1-.256.149-.453.149-.198 0-.353-.047-.469-.138a.506.506 0 01-.218-.361c-.03-.24-.06-.507-.089-.8-.04-.292-.186-1.552-.226-1.868-.038-.327-.301-2.368-.389-3.109l-.008-.062-.299.625c-.101.215-.21.474-.331.776-.119.3-.241.618-.36.954-.13.325-.707 1.972-.707 1.972-.052.15-.154.451-.245.727a12.48 12.48 0 01-.202.572.82.82 0 01-.744.455.813.813 0 01-.746-.455 10.32 10.32 0 01-.202-.572c-.093-.276-.193-.577-.248-.727 0 0-.577-1.647-.704-1.972a29.247 29.247 0 00-.363-.954c-.12-.302-.229-.561-.328-.776l-.3-.625-.007.062c-.09.741-.35 2.782-.39 3.109-.041.316-.186 1.576-.226 1.868-.03.293-.06.56-.093.8a.502.502 0 01-.215.361c-.116.091-.273.138-.47.138-.197 0-.345-.049-.451-.149-.106-.106-.159-.252-.16-.437l.931-7.219a.529.529 0 01.189-.323.703.703 0 01.467-.15h.151c.325 0 .585.119.781.354.128.162.292.457.492.886.202.42.41.903.632 1.444.219.532.439 1.091.659 1.675.214.556.415 1.065.582 1.525" fill="#100f0d"/><path d="M4.79 3.419h11.322c1.066 0 1.597.8 1.722 1.856l.047.339a.662.662 0 01-.583.725.652.652 0 01-.715-.587l-.046-.323c-.047-.401-.217-.711-.625-.711H4.989c-.407 0-.577.31-.625.711l-.043.323a.653.653 0 11-1.301-.138l.047-.339c.126-1.056.656-1.856 1.723-1.856" fill="#d81e25"/><path d="M25.154 11.027c-.079.302-.159.625-.244.969-.085.343-.17.67-.253.984-.082.313-.161.588-.236.825a3.002 3.002 0 01-.185.486c-.089.154-.243.232-.464.232-.061 0-.141-.013-.241-.039-.098-.025-.18-.096-.248-.21a3.005 3.005 0 01-.185-.511 24.53 24.53 0 01-.235-.873c-.084-.33-.165-.679-.249-1.047a79.928 79.928 0 01-.223-1.026c-.066-.316-.121-.587-.166-.808a13.422 13.422 0 01-.074-.4c-.004-.028-.007-.047-.007-.058v-.033c0-.093.033-.169.106-.228a.42.42 0 01.264-.086c.1 0 .179.022.241.064.06.039.105.113.132.218 0 .01.016.091.045.239.032.148.07.338.116.568.048.232.101.49.158.776.058.285.117.576.182.869.063.293.128.576.191.853.063.275.12.512.176.708a36.527 36.527 0 00.381-1.38c.066-.256.13-.51.19-.767l.17-.712c.053-.221.098-.415.136-.586.039-.171.069-.297.091-.379a.46.46 0 01.157-.248c.079-.06.17-.09.281-.09a.46.46 0 01.299.095.437.437 0 01.
10155148.243c.062.268.127.57.199.903a59.514 59.514 0 00.463 2.011c.084.327.163.617.24.869.055-.197.115-.434.178-.708l.194-.85c.067-.289.129-.578.19-.865l.167-.771a106.486 106.486 0 00.164-.778c.027-.105.072-.179.132-.218a.418.418 0 01.24-.064c.104 0 .193.03.264.086a.28.28 0 01.109.228v.033a6.253 6.253 0 01-.088.458 108.095 108.095 0 01-.392 1.829 49.61 49.61 0 01-.244 1.042c-.08.33-.156.621-.232.872a2.898 2.898 0 01-.185.506.439.439 0 01-.252.218.92.92 0 01-.245.047.663.663 0 01-.099-.01.748.748 0 01-.141-.033.516.516 0 01-.148-.078.362.362 0 01-.117-.144 3.826 3.826 0 01-.178-.52 37.54 37.54 0 01-.458-1.776c-.077-.332-.15-.645-.215-.935" fill="#100f0d"/><path d="M31.315 12.279a40 40 0 00-.33-.984 17.49 17.49 0 00-.411-1.065l-.052-.142a.692.692 0 00-.053.136 16.567 16.567 0 00-.408 1.071c-.1.299-.209.627-.325.984zm-1.835.718a24.52 24.52 0 00-.22.732 5.932 5.932 0 01-.178.553c-.06.16-.181.241-.363.241-.127 0-.219-.032-.278-.096a.347.347 0 01-.086-.243.36.36 0 01.016-.109c.011-.031.045-.144.105-.337.057-.191.132-.431.226-.717.093-.286.197-.599.31-.939a34.26 34.26 0 01.707-1.941c.115-.289.224-.522.322-.696a.382.382 0 01.178-.192.785.785 0 01.303-.049c.123 0 .225.021.309.059a.324.324 0 01.178.198c.078.164.171.386.279.662.106.278.22.578.338.899.118.322.235.651.352.985.115.336.223.648.318.937l.248.738c.068.203.113.335.128.393.01.035.017.071.017.109a.32.32 0 01-.099.243c-.067.064-.163.096-.289.096-.096 0-.164-.022-.213-.064a.404.404 0 01-.11-.177 11.55 11.55 0 01-.196-.553c-.073-.225-.153-.468-.235-.732H29.48" fill="#100f0d"/><path d="M34.12 12.443a.654.654 0 01-.079-.091 5.456 5.456 0 01-.33-.514 9.736 9.736 0 01-.275-.497c-.09-.177-.177-.356-.262-.534a12.458 12.458 0 01-.231-.496c-.071-.155-.13-.289-.178-.4a1.671 1.671 0 01-.112-.298.428.428 0 01-.005-.062c0-.099.034-.182.103-.246a.395.395 0 01.286-.101c.11 0 .187.028.235.083.047.056.082.11.103.165.01.029.038.088.079.181l.152.346c.061.138.13.289.207.453.079.166.156.328.237.488.079.159.158.311.232.458.073.144.145.264.21.359a6.14 6.14 0 00.34-.603c.12-.242.236-.48.347-.716.11-.238.204-.447.286-.627.079-.182.127-.295.144-.339a.666.666 0 01.103-.165c.046-.055.126-.083.235-.083.122 0 .216.034.287.101a.327.327 0 01.101.246c0 .026 0 .048-.002.062-.003.014-.011.035-.02.062l-.096.239a24.658 24.658 0 01-.405.903c-.087.178-.174.355-.265.531-.091.175-.182.344-.274.503-.09.158-.175.295-.252.404a1.237 1.237 0 01-.156.188v1.707c0 .11-.035.199-.105.27a.37.37 0 01-.268.103.37.37 0 01-.268-.103.366.366 0 01-.104-.27v-1.707" fill="#100f0d"/></svg> 10156</li><li><svg viewBox="0 0 38 24" xmlns="http://www.w3.org/2000/svg" width="38" height="24" role="img" aria-labelledby="pi-mobilepay"><title id="pi-mobilepay">MobilePay</title><path fill="#000" opacity=".07" d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z"/><path fill="#fff" d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32"/><path fill-rule="evenodd" clip-rule="evenodd" d="M20.05 15.296s2.53-.771 4.282-.776c2.896-.007 4.857 1.15 4.857 1.15V10.06s-1.97-1.02-4.453-1.09c-2.481-.068-4.687 1.012-4.687 1.012v5.313z" fill="#5A78FF"/><path fill-rule="evenodd" clip-rule="evenodd" d="M17.308 9.19l2.082 4.957V9.396s1.646-.882 3.485-1.13c1.84-.249 4.181.08 4.181.08l-1.133-2.707s-2.461-.159-4.69.794c-2.228.952-3.925 2.756-3.925 2.756z" fill="#5A78FF"/><path d="M21.428 5.676l-.82-1.99a1.818 1.818 0 00-2.37-.996l-5.663 2.334a1.818 1.818 0 00-.98 2.376l5.46 13.247a1.818 1.818 0 002.37.995l5.662-2.334a1.817 1.817 0 00.98-2.376l-.677-1.642s-.462-.027-.676-.033c-.226-.006-.644-.001-.644-.001l.88 2.136a.606.606 0 01-.326.793l-5.663 2.333a.606.606 0 01-.79-.331L12.711 6.94a.606.606 0 01.327-.792L18.7 3.814a.606.606 0 01.79.332l.83 2.011s.383-.187.59-.27c.206-.082.518-.211.518-.211z" fill="#5A78FF"/></svg></li><li><svg viewBox="0 0 38 24" xmlns="http://www.w3.org/2000/svg" width="38" height="24" role="img" aria-labelledby="pi-paypal"><title id="pi-paypal">PayPal</title><path opacity=".07" d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z"/><path fill="#fff" d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32"/><path fill="#003087" d="M23.9 8.3c.2-1 0-1.7-.6-2.3-.6-.7-1.7-1-3.1-1h-4.1c-.3 0-.5.2-.6.5L14 15.6c0 .2.1.4.3.4H17l.4-3.4 1.8-2.2 4.7-2.1z"/><path fill="#3086C8" d="M23.9 8.3l-.2.2c-.5 2.8-2.2 3.8-4.6 3.8H18c-.3 0-.5.2-.6.5l-.6 3.9-.2 1c0 .2.1.4.3.4H19c.3 0 .5-.2.5-.4v-.1l.4-2.4v-.1c0-.2.3-.4.5-.4h.3c2.1 0 3.7-.8 4.1-3.2.2-1 .1-1.8-.4-2.4-.1-.5-.3-.7-.5-.8z"/>
10156<path fill="#012169" d="M23.3 8.1c-.1-.1-.2-.1-.3-.1-.1 0-.2 0-.3-.1-.3-.1-.7-.1-1.1-.1h-3c-.1 0-.2 0-.2.1-.2.1-.3.2-.3.4l-.7 4.4v.1c0-.3.3-.5.6-.5h1.3c2.5 0 4.1-1 4.6-3.8v-.2c-.1-.1-.3-.2-.5-.2h-.1z"/></svg></li><li><svg xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" aria-labelledby="pi-shopify_pay"><title id="pi-shopify_pay">Shop Pay</title><path opacity=".07" d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z" fill="#000"/><path d="M35.889 0C37.05 0 38 .982 38 2.182v19.636c0 1.2-.95 2.182-2.111 2.182H2.11C.95 24 0 23.018 0 21.818V2.182C0 .982.95 0 2.111 0H35.89z" fill="#5A31F4"/><path d="M9.35 11.368c-1.017-.223-1.47-.31-1.47-.705 0-.372.306-.558.92-.558.54 0 .934.238 1.225.704a.079.079 0 00.104.03l1.146-.584a.082.082 0 00.032-.114c-.475-.831-1.353-1.286-2.51-1.286-1.52 0-2.464.755-2.464 1.956 0 1.275 1.15 1.597 2.17 1.82 1.02.222 1.474.31 1.474.705 0 .396-.332.582-.993.582-.612 0-1.065-.282-1.34-.83a.08.08 0 00-.107-.035l-1.143.57a.083.083 0 00-.036.111c.454.92 1.384 1.437 2.627 1.437 1.583 0 2.539-.742 2.539-1.98s-1.155-1.598-2.173-1.82v-.003zM15.49 8.855c-.65 0-1.224.232-1.636.646a.04.04 0 01-.069-.03v-2.64a.08.08 0 00-.08-.081H12.27a.08.08 0 00-.08.082v8.194a.08.08 0 00.08.082h1.433a.08.08 0 00.081-.082v-3.594c0-.695.528-1.227 1.239-1.227.71 0 1.226.521 1.226 1.227v3.594a.08.08 0 00.081.082h1.433a.08.08 0 00.081-.082v-3.594c0-1.51-.981-2.577-2.355-2.577zM20.753 8.62c-.778 0-1.507.24-2.03.588a.082.082 0 00-.027.109l.632 1.088a.08.08 0 00.11.03 2.5 2.5 0 011.318-.366c1.25 0 2.17.891 2.17 2.068 0 1.003-.736 1.745-1.669 1.745-.76 0-1.288-.446-1.288-1.077 0-.361.152-.657.548-.866a.08.08 0 00.032-.113l-.596-1.018a.08.08 0 00-.098-.035c-.799.299-1.359 1.018-1.359 1.984 0 1.46 1.152 2.55 2.76 2.55 1.877 0 3.227-1.313 3.227-3.195 0-2.018-1.57-3.492-3.73-3.492zM28.675 8.843c-.724 0-1.373.27-1.845.746-.026.027-.069.007-.069-.029v-.572a.08.08 0 00-.08-.082h-1.397a.08.08 0 00-.08.082v8.182a.08.08 0 00.08.081h1.433a.08.08 0 00.081-.081v-2.683c0-.036.043-.054.069-.03a2.6 2.6 0 001.808.7c1.682 0 2.993-1.373 2.993-3.157s-1.313-3.157-2.993-3.157zm-.271 4.929c-.956 0-1.681-.768-1.681-1.783s.723-1.783 1.681-1.783c.958 0 1.68.755 1.68 1.783 0 1.027-.713 1.783-1.681 1.783h.001z" fill="#fff"/></svg> 10157</li><li><svg viewBox="0 0 38 24" xmlns="http://www.w3.org/2000/svg" role="img" width="38" height="24" aria-labelledby="pi-twint"><title id="pi-twint">Twint</title><path d="M3 0h32a3 3 0 0 1 3 3v17.97a3 3 0 0 1-3 3H3a3 3 0 0 1-3-3V3a3 3 0 0 1 3-3z" fill="#000"/><path fill="#fff" d="M11.822 14.477a.49.49 0 0 1-.22.383L7.31 17.337a.49.49 0 0 1-.442 0L2.576 14.86a.49.49 0 0 1-.22-.383V9.522a.49.49 0 0 1 .22-.382l4.292-2.478a.49.49 0 0 1 .442 0l4.291 2.478a.49.49 0 0 1 .221.382v4.955zM35.645 9.88H31.8v.913h1.378v3.923h1.088v-3.923h1.379v-.914.001zm-17.452-.001h-3.845v.913h1.379v3.923h1.088v-3.923h1.378v-.914.001zm11.12-.154c-1.209 0-1.882.771-1.882 1.887v3.103h1.075V11.59c0-.486.289-.86.819-.86s.815.444.815.86v3.127h1.075v-3.103c0-1.116-.696-1.887-1.904-1.887h.002v-.002zm-4.061.154h1.08v4.836h-1.08V9.879zm-3.644 1.915l.036.215 1.009 2.706h.44l1.375-4.837h-1.063l-.655 2.541-.039.272-.053-.272-.875-2.54h-.35l-.876 2.54-.053.272-.039-.272-.654-2.54h-1.064l1.375 4.836h.44l1.01-2.706.036-.215"/><path fill="#ff4800" d="M9.324 12.012l-1.118 1.64-.573-.878.662-.988c.123-.177.385-.66.082-1.321a1.377 1.377 0 0 0-1.248-.796 1.377 1.377 0 0 0-1.247.796 1.27 1.27 0 0 0 .076 1.3l.674.995.495.716.75 1.145a.428.428 0 0 0 .334.19c.2 0 .322-.179.338-.201l1.754-2.597h-.979zm-2.202.042s-.293-.444-.483-.754a.556.556 0 0 1-.072-.275c0-.305.25-.556.555-.556s.556.251.556.556a.556.556 0 0 1-.072.275c-.187.31-.479.754-.479.754h-.005z"/><path fill="#007ce2" d="M6.046 13.6l-1.099-1.544s-.293-.446-.483-.756a.553.553 0 0 1-.074-.276c0-.304.25-.553.553-.553h.004a.582.582 0 0 1 .161.022l.389-.71a1.376 1.376 0 0 0-1.793.681 1.27 1.27 0 0 0 .076 1.301l1.92 2.847c.016.025.139.204.343.204a.427.427 0 0 0 .337-.2l.58-.884-.498-.734-.417.602z"/></svg></li><li><svg xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" fill="none" aria-labelledby="pi-visa"><title id="pi-visa">Visa</title><rect x=".5" y=".5" width="37" height="23" rx="2.5" stroke="#000" stroke-opacity=".07" fill="none"/><path d="M35 0H3C1.3 0 0 1.3 0 3V21C0 22.7 1.4 24 3 24H35C36.7 24 38 22.7 38 21V3C38 1.3 36.6 0 35 0Z" fill="#142FBD" style="fill:#142FBD;fill:color(display-p3 0.0784 0.1843 0.7412);fill-opacity:1;"/>
10157<path d="M35 1C36.1 1 37 1.9 37 3V21C37 22.1 36.1 23 35 23H3C1.9 23 1 22.1 1 21V3C1 1.9 1.9 1 3 1H35Z" fill="#1532CB" style="fill:#1532CB;fill:color(display-p3 0.0824 0.1961 0.7961);fill-opacity:1;"/><path d="M29.5944 10.2167H29.2778C28.8556 11.2722 28.5389 11.8 28.2222 13.3833H30.2278C29.9111 11.8 29.9111 11.0611 29.5944 10.2167V10.2167ZM32.6556 16.4444H30.8611C30.7556 16.4444 30.7556 16.4444 30.65 16.3389L30.4389 15.3889L30.3333 15.1778H27.8C27.6944 15.1778 27.5889 15.1778 27.5889 15.3889L27.2722 16.3389C27.2722 16.4444 27.1667 16.4444 27.1667 16.4444H24.95L25.1611 15.9167L28.2222 8.73889C28.2222 8.21111 28.5389 8 29.0667 8H30.65C30.7556 8 30.8611 8 30.8611 8.21111L32.3389 15.0722C32.4444 15.4944 32.55 15.8111 32.55 16.2333C32.6556 16.3389 32.6556 16.3389 32.6556 16.4444V16.4444ZM18.5111 16.1278L18.9333 14.2278C19.0389 14.2278 19.1444 14.3333 19.1444 14.3333C19.8833 14.65 20.6222 14.8611 21.3611 14.7556C21.5722 14.7556 21.8889 14.65 22.1 14.5444C22.6278 14.3333 22.6278 13.8056 22.2056 13.3833C21.9944 13.1722 21.6778 13.0667 21.3611 12.8556C20.9389 12.6444 20.5167 12.4333 20.2 12.1167C18.9333 11.0611 19.3556 9.58333 20.0944 8.84444C20.7278 8.42222 21.0444 8 21.8889 8C23.1556 8 24.5278 8 25.1611 8.21111H25.2667C25.1611 8.84444 25.0556 9.37222 24.8444 10.0056C24.3167 9.79444 23.7889 9.58333 23.2611 9.58333C22.9444 9.58333 22.6278 9.58333 22.3111 9.68889C22.1 9.68889 21.9944 9.79444 21.8889 9.9C21.6778 10.1111 21.6778 10.4278 21.8889 10.6389L22.4167 11.0611C22.8389 11.2722 23.2611 11.4833 23.5778 11.6944C24.1056 12.0111 24.6333 12.5389 24.7389 13.1722C24.95 14.1222 24.6333 14.9667 23.7889 15.6C23.2611 16.0222 23.05 16.2333 22.3111 16.2333C20.8333 16.2333 19.6722 16.3389 18.7222 16.0222C18.6167 16.2333 18.6167 16.2333 18.5111 16.1278V16.1278ZM14.8167 16.4444C14.9222 15.7056 14.9222 15.7056 15.0278 15.3889C15.5556 13.0667 16.0833 10.6389 16.5056 8.31667C16.6111 8.10556 16.6111 8 16.8222 8H18.7222C18.5111 9.26667 18.3 10.2167 17.9833 11.3778C17.6667 12.9611 17.35 14.5444 16.9278 16.1278C16.9278 16.3389 16.8222 16.3389 16.6111 16.3389L14.8167 16.4444ZM5 8.21111C5 8.10556 5.21111 8 5.31667 8H8.90556C9.43333 8 9.85556 8.31667 9.96111 8.84444L10.9111 13.4889C10.9111 13.5944 10.9111 13.5944 11.0167 13.7C11.0167 13.5944 11.1222 13.5944 11.1222 13.5944L13.3389 8.21111C13.2333 8.10556 13.3389 8 13.4444 8H15.6611C15.6611 8.10556 15.6611 8.10556 15.5556 8.21111L12.2833 15.9167C12.1778 16.1278 12.1778
1015716.2333 12.0722 16.3389C11.9667 16.4444 11.7556 16.3389 11.5444 16.3389H9.96111C9.85556 16.3389 9.75 16.3389 9.75 16.1278L8.06111 9.58333C7.85 9.37222 7.53333 9.05556 7.11111 8.95C6.47778 8.63333 5.31667 8.42222 5.10556 8.42222L5 8.21111Z" fill="white" style="fill:white;fill-opacity:1;"/></svg> 10158</li></ul></div><ul class="policies unstyled-list h-stack gap-2 md:justify-end"><li> 10159 <small class="copyright__content text-xs link"> 10160 <a href="/pages/mentions-legales">Mentions légales</a> 10161 </small> 10162 </li><li> 10163 <small class="copyright__content text-xs link"> 10164 <a href="/pages/conditions-generales-vente">CGV</a> 10165 </small> 10166 </li><li> 10167 <small class="copyright__content text-xs link"> 10168 <a href="/pages/conditions-generales-utilisation">CGU</a> 10169 </small> 10170 </li><li> 10171 <small class="copyright__content text-xs link"> 10172 <a href="/pages/accessibilite">Accessibilité</a> 10173 </small> 10174 </li></ul></div> 10175 </div> 10176</div> 10177 10178 10179</footer><section id="shopify-section-sections--26884129751383__apps_iRC7PD" class="shopify-section shopify-section-group-footer-group shopify-section--apps"><div class="color-scheme color-scheme--scheme-1"> 10180 <div class=" "><div id="shopify-block-AdFZMT3JGUFh5bEdRU__orbe_geolocation_app_block_custom_button_LDmmLX" class="shopify-block shopify-app-block orbe-custom-button-block"> 10181 10182<style data-shopify> 10183 .md-visuallyHidden { 10184 position: absolute !important; 10185 width: 0.1em !important; 10186 height: 0.1em !important; 10187 margin: 0 !important; 10188 padding: 0 !important; 10189 overflow: hidden !important; 10190 -webkit-clip-path: inset(50%) !important; 10191 clip-path: inset(50%) !important; 10192 border: 0 !important; 10193 white-space: nowrap !important; 10194 } 10195 10196 .orbe__custom-selector-AdFZMT3JGUFh5bEdRU__orbe_geolocation_app_block_custom_button_LDmmLX { 10197 margin-left: 0px !important; 10198 margin-right: 0px !important; 10199 } 10200 10201 button.orbe__span-AdFZMT3JGUFh5bEdRU__orbe_geolocation_app_block_custom_button_LDmmLX { 10202 color: #000000; 10203 } 10204 10205 10206 .orbe__disclosure-AdFZMT3JGUFh5bEdRU__orbe_geolocation_app_block_custom_button_LDmmLX { 10207 background-image: url('data:image/svg+xml,<svg width="20" height="20" viewBox="0 0 20 20" fill="%23000000" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M10 14.0002C9.74401 14.0002 9.48801 13.9023 9.29301 13.7073L4.29301 8.70725C3.90201 8.31625 3.90201 7.68425 4.29301 7.29325C4.68401 6.90225 5.31601 6.90225 5.70701 7.29325L10 11.5862L14.293 7.29325C14.684 6.90225 15.316 6.90225 15.707 7.29325C16.098 7.68425 16.098 8.31625 15.707 8.70725L10.707 13.7073C10.512 13.9023 10.256 14.0002 10 14.0002Z" fill="%23000000"/></svg>') !important; 10208 } 10209 10210 10211 10212 .md-orbe-country-selector { 10213 10214 height: 1.5rem; 10215 width: 2rem; 10216 10217 } 10218 10219 .md-orbe-country-selector__circle { 10220 10221 height: 1.5rem !important; 10222 width: 1.5rem !important; 10223 10224 } 10225 10226</style> 10227<!-- BEGIN app snippet: load-css-flags --> 10228<style data-orbe-flags="43">.orbe-flags-xx, .orbe-flags__before-xx:before {background-image: url('https://cdn.shopify.com/extensions/01a0e712-a926-77f8-816c-9f040d57129c/orbe-geolocation-503/assets/xx.svg') !important;}.orbe-flags-fr, .orbe-flags__before-fr:before {background-image: url('https://cdn.shopify.com/static/images/flags/fr.svg') !important;}.orbe-flags-de, .orbe-flags__before-de:before {background-image: url('https://cdn.shopify.com/static/images/flags/de.svg') !important;}.orbe-flags-at, .orbe-flags__before-at:before {background-image: url('https://cdn.shopify.com/static/images/flags/at.svg') !important;}.orbe-flags-dk, .orbe-flags__before-dk:before {background-image: url('https://cdn.shopify.com/static/images/flags/dk.svg') !important;}.orbe-flags-it, .orbe-flags__before-it:before {background-image: url('https://cdn.shopify.com/static/images/flags/it.svg') !important;}.orbe-flags-ad, .orbe-flags__before-ad:before {background-image: url('https://cdn.shopify.com/static/images/flags/ad.svg') !important;}.orbe-flags-mc, .orbe-flags__before-mc:before {background-image: url('https://cdn.shopify.com/static/images/flags/mc.svg') !important;}.orbe-flags-be, .orbe-flags__before-be:before {background-image: url('https://cdn.shopify.com/static/images/flags/be.svg') !important;}.orbe-flags-nl, .orbe-flags__before-nl:before {background-image: url('https://cdn.shopify.com/static/images/flags/nl.svg') !important;}.orbe-flags-lu, .orbe-flags__before-lu:before {background-image: url('https://cdn.shopify.com/static/images/flags/lu.svg') !important;}.orbe-flags-es, .orbe-flags__before-es:before {background-image: url('https://cdn.shopify.com/static/images/flags/es.svg') !important;}.orbe-flags-gb, .orbe-flags__before-gb:before {background-image: url('https://cdn.shopify.com/static/images/flags/gb.svg') !important;}.orbe-flags-pt, .orbe-flags__before-pt:before {background-image: url('https://cdn.shopify.com/static/images/flags/pt.svg') !important;}.orbe-flags-gg, .orbe-flags__before-gg:before {background-image: url('https://cdn.shopify.com/static/images/flags/gg.svg') !important;}.orbe-flags-ie, .orbe-flags__before-ie:before {background-image: url('https://cdn.shopify.com/static/images/flags/ie.svg') !important;}.orbe-flags-je, .orbe-flags__before-je:before {background-image: url('https://cdn.shopify.com/static/images/flags/je.svg') !important;}.orbe-flags-ee, .orbe-flags__before-ee:before {background-image: url('https://cdn.shopify.com/static/images/flags/ee.svg') !important;}.orbe-flags-hu, .orbe-flags__before-hu:before {background-image: url('https://cdn.shopify.com/static/images/flags/hu.svg') !important;}.orbe-flags-lv, .orbe-flags__before-lv:before {background-image: url('https://cdn.shopify.com/static/images/flags/lv.svg') !important;}.orbe-flags-li, .orbe-flags__before-li:before {background-image: url('https://cdn.shopify.com/static/images/flags/li.svg') !important;}.orbe-flags-lt, .orbe-flags__before-lt:before {background-image: url('https://cdn.shopify.com/static/images/flags/lt.svg') !important;}.orbe-flags-si, .orbe-flags__before-si:before {background-image: url('https://cdn.shopify.com/static/images/flags/si.svg') !important;}.orbe-flags-sk, .orbe-flags__before-sk:before {background-image: url('https://cdn.shopify.com/static/images/flags/sk.svg') !important;}.orbe-flags-is, .orbe-flags__before-is:before {background-image: url('https://cdn.shopify.com/static/images/flags/is.svg') !important;}.orbe-flags-ua, .orbe-flags__before-ua:before {background-image: url('https://cdn.shopify.com/static/images/flags/ua.svg') !important;}.orbe-flags-bg, .orbe-flags__before-bg:before {background-image: url('https://cdn.shopify.com/static/images/flags/bg.svg') !important;}.orbe-flags-hr, .orbe-flags__before-hr:before {background-image: url('https://cdn.shopify.com/static/images/flags/hr.svg') !important;}.orbe-flags-gr, .orbe-flags__before-gr:before {background-image: url('https://cdn.shopify.com/static/images/flags/gr.svg') !important;}.orbe-flags-mt, .orbe-flags__before-mt:before {background-image: url('https://cdn.shopify.com/static/images/flags/mt.svg') !important;}.orbe-flags-ro, .orbe-flags__before-ro:before {background-image: url('https://cdn.shopify.com/static/images/flags/ro.svg') !important;}.orbe-flags-rs, .orbe-flags__before-rs:before {background-image: url('https://cdn.shopify.com/static/images/flags/rs.svg') !important;}.orbe-flags-me, .orbe-flags__before-me:before {background-image: url('https://cdn.shopify.com/static/images/flags/me.svg') !important;}.orbe-flags-md, .orbe-flags__before-md:before {background-image: url('https://cdn.shopify.com/static/images/flags/md.svg') !important;}.orbe-flags-mq, .orbe-flags__before-mq:before {background-image: url('https://cdn.shopify.com/static/images/flags/mq.svg') !important;}.orbe-flags-re, .orbe-flags__before-re:before {background-image: url('https://cdn.shopify.com/static/images/flags/re.svg') !important;}.orbe-flags-bl, .orbe-flags__before-bl:before {background-image: url('https://cdn.shopify.com/static/images/flags/bl.svg') !important;}.orbe-flags-se, .orbe-flags__before-se:before {background-image: url('https://cdn.shopify.com/static/images/flags/se.svg') !important;}.orbe-flags-fi, .orbe-flags__before-fi:before {background-image: url('https://cdn.shopify.com/static/images/flags/fi.svg') !important;}.orbe-flags-no, .orbe-flags__before-no:before {background-image: url('https://cdn.shopify.com/static/images/flags/no.svg') !important;}.orbe-flags-ch, .orbe-flags__before-ch:before {background-image: url('https://cdn.shopify.com/static/images/flags/ch.svg') !important;}.orbe-flags-us, .orbe-flags__before-us:before {background-image: url('https://cdn.shopify.com/static/images/flags/us.svg') !important;}</style><style data-orbe-flags="circle">.orbe-flags-circle-xx, .orbe-flags-circle__before-xx:before { 10229 background-image: url('https://cdn.shopify.com/extensions/01a0e712-a926-77f8-816c-9f040d57129c/orbe-geolocation-503/assets/xx-1x1.svg') !important; 10230 }.orbe-flags-circle-fr, .orbe-flags-circle__before-fr:before { 10231 background-image: url('https://cdn.shopify.com/extensions/01a0e712-a926-77f8-816c-9f040d57129c/orbe-geolocation-503/assets/fr-1x1.svg') !important; 10232 }.orbe-flags-circle-de, .orbe-flags-circle__before-de:before { 10233 background-image: url('https://cdn.shopify.com/extensions/01a0e712-a926-77f8-816c-9f040d57129c/orbe-geolocation-503/assets/de-1x1.svg') !important; 10234 }.orbe-flags-circle-at, .orbe-flags-circle__before-at:before { 10235 background-image: url('https://cdn.shopify.com/extensions/01a0e712-a926-77f8-816c-9f040d57129c/orbe-geolocation-503/assets/at-1x1.svg') !important; 10236 }.orbe-flags-circle-dk, .orbe-flags-circle__before-dk:before { 10237 background-image: url('https://cdn.shopify.com/extensions/01a0e712-a926-77f8-816c-9f040d57129c/orbe-geolocation-503/assets/dk-1x1.svg') !important; 10238 }.orbe-flags-circle-it, .orbe-flags-circle__before-it:before { 10239 background-image: url('https://cdn.shopify.com/extensions/01a0e712-a926-77f8-816c-9f040d57129c/orbe-geolocation-503/assets/it-1x1.svg') !important; 10240 }.orbe-flags-circle-ad, .orbe-flags-circle__before-ad:before { 10241 background-image: url('https://cdn.shopify.com/extensions/01a0e712-a926-77f8-816c-9f040d57129c/orbe-geolocation-503/assets/ad-1x1.svg') !important; 10242 }.orbe-flags-circle-mc, .orbe-flags-circle__before-mc:before { 10243 background-image: url('https://cdn.shopify.com/extensions/01a0e712-a926-77f8-816c-9f040d57129c/orbe-geolocation-503/assets/mc-1x1.svg') !important; 10244 }.orbe-flags-circle-be, .orbe-flags-circle__before-be:before { 10245 background-image: url('https://cdn.shopify.com/extensions/01a0e712-a926-77f8-816c-9f040d57129c/orbe-geolocation-503/assets/be-1x1.svg') !important; 10246 }.orbe-flags-circle-nl, .orbe-flags-circle__before-nl:before { 10247 background-image: url('https://cdn.shopify.com/extensions/01a0e712-a926-77f8-816c-9f040d57129c/orbe-geolocation-503/assets/nl-1x1.svg') !important; 10248 }.orbe-flags-circle-lu, .orbe-flags-circle__before-lu:before { 10249 background-image: url('https://cdn.shopify.com/extensions/01a0e712-a926-77f8-816c-9f040d57129c/orbe-geolocation-503/assets/lu-1x1.svg') !important; 10250 }.orbe-flags-circle-es, .orbe-flags-circle__before-es:before { 10251 background-image: url('https://cdn.shopify.com/extensions/01a0e712-a926-77f8-816c-9f040d57129c/orbe-geolocation-503/assets/es-1x1.svg') !important; 10252 }.orbe-flags-circle-gb, .orbe-flags-circle__before-gb:before { 10253 background-image: url('https://cdn.shopify.com/extensions/01a0e712-a926-77f8-816c-9f040d57129c/orbe-geolocation-503/assets/gb-1x1.svg') !important; 10254 }.orbe-flags-circle-pt, .orbe-flags-circle__before-pt:before { 10255 background-image: url('https://cdn.shopify.com/extensions/01a0e712-a926-77f8-816c-9f040d57129c/orbe-geolocation-503/assets/pt-1x1.svg') !important; 10256 }.orbe-flags-circle-gg, .orbe-flags-circle__before-gg:before { 10257 background-image: url('https://cdn.shopify.com/extensions/01a0e712-a926-77f8-816c-9f040d57129c/orbe-geolocation-503/assets/gg-1x1.svg') !important; 10258 }.orbe-flags-circle-ie, .orbe-flags-circle__before-ie:before { 10259 background-image: url('https://cdn.shopify.com/extensions/01a0e712-a926-77f8-816c-9f040d57129c/orbe-geolocation-503/assets/ie-1x1.svg') !important; 10260 }.orbe-flags-circle-je, .orbe-flags-circle__before-je:before { 10261 background-image: url('https://cdn.shopify.com/extensions/01a0e712-a926-77f8-816c-9f040d57129c/orbe-geolocation-503/assets/je-1x1.svg') !important; 10262 }.orbe-flags-circle-ee, .orbe-flags-circle__before-ee:before { 10263 background-image: url('https://cdn.shopify.com/extensions/01a0e712-a926-77f8-816c-9f040d57129c/orbe-geolocation-503/assets/ee-1x1.svg') !important; 10264 }.orbe-flags-circle-hu, .orbe-flags-circle__before-hu:before { 10265 background-image: url('https://cdn.shopify.com/extensions/01a0e712-a926-77f8-816c-9f040d57129c/orbe-geolocation-503/assets/hu-1x1.svg') !important; 10266 }.orbe-flags-circle-lv, .orbe-flags-circle__before-lv:before { 10267 background-image: url('https://cdn.shopify.com/extensions/01a0e712-a926-77f8-816c-9f040d57129c/orbe-geolocation-503/assets/lv-1x1.svg') !important; 10268 }.orbe-flags-circle-li, .orbe-flags-circle__before-li:before { 10269 background-image: url('https://cdn.shopify.com/extensions/01a0e712-a926-77f8-816c-9f040d57129c/orbe-geolocation-503/assets/li-1x1.svg') !important; 10270 }.orbe-flags-circle-lt, .orbe-flags-circle__before-lt:before { 10271 background-image: url('https://cdn.shopify.com/extensions/01a0e712-a926-77f8-816c-9f040d57129c/orbe-geolocation-503/assets/lt-1x1.svg') !important; 10272 }.orbe-flags-circle-si, .orbe-flags-circle__before-si:before { 10273 background-image: url('https://cdn.shopify.com/extensions/01a0e712-a926-77f8-816c-9f040d57129c/orbe-geolocation-503/assets/si-1x1.svg') !important; 10274 }.orbe-flags-circle-sk, .orbe-flags-circle__before-sk:before { 10275 background-image: url('https://cdn.shopify.com/extensions/01a0e712-a926-77f8-816c-9f040d57129c/orbe-geolocation-503/assets/sk-1x1.svg') !important; 10276 }.orbe-flags-circle-is, .orbe-flags-circle__before-is:before { 10277 background-image: url('https://cdn.shopify.com/extensions/01a0e712-a926-77f8-816c-9f040d57129c/orbe-geolocation-503/assets/is-1x1.svg') !important; 10278 }.orbe-flags-circle-ua, .orbe-flags-circle__before-ua:before { 10279 background-image: url('https://cdn.shopify.com/extensions/01a0e712-a926-77f8-816c-9f040d57129c/orbe-geolocation-503/assets/ua-1x1.svg') !important; 10280 }.orbe-flags-circle-bg, .orbe-flags-circle__before-bg:before { 10281 background-image: url('https://cdn.shopify.com/extensions/01a0e712-a926-77f8-816c-9f040d57129c/orbe-geolocation-503/assets/bg-1x1.svg') !important; 10282 }.orbe-flags-circle-hr, .orbe-flags-circle__before-hr:before { 10283 background-image: url('https://cdn.shopify.com/extensions/01a0e712-a926-77f8-816c-9f040d57129c/orbe-geolocation-503/assets/hr-1x1.svg') !important; 10284 }.orbe-flags-circle-gr, .orbe-flags-circle__before-gr:before { 10285 background-image: url('https://cdn.shopify.com/extensions/01a0e712-a926-77f8-816c-9f040d57129c/orbe-geolocation-503/assets/gr-1x1.svg') !important; 10286 }.orbe-flags-circle-mt, .orbe-flags-circle__before-mt:before { 10287 background-image: url('https://cdn.shopify.com/extensions/01a0e712-a926-77f8-816c-9f040d57129c/orbe-geolocation-503/assets/mt-1x1.svg') !important; 10288 }.orbe-flags-circle-ro, .orbe-flags-circle__before-ro:before { 10289 background-image: url('https://cdn.shopify.com/extensions/01a0e712-a926-77f8-816c-9f040d57129c/orbe-geolocation-503/assets/ro-1x1.svg') !important; 10290 }.orbe-flags-circle-r
10290s, .orbe-flags-circle__before-rs:before { 10291 background-image: url('https://cdn.shopify.com/extensions/01a0e712-a926-77f8-816c-9f040d57129c/orbe-geolocation-503/assets/rs-1x1.svg') !important; 10292 }.orbe-flags-circle-me, .orbe-flags-circle__before-me:before { 10293 background-image: url('https://cdn.shopify.com/extensions/01a0e712-a926-77f8-816c-9f040d57129c/orbe-geolocation-503/assets/me-1x1.svg') !important; 10294 }.orbe-flags-circle-md, .orbe-flags-circle__before-md:before { 10295 background-image: url('https://cdn.shopify.com/extensions/01a0e712-a926-77f8-816c-9f040d57129c/orbe-geolocation-503/assets/md-1x1.svg') !important; 10296 }.orbe-flags-circle-mq, .orbe-flags-circle__before-mq:before { 10297 background-image: url('https://cdn.shopify.com/extensions/01a0e712-a926-77f8-816c-9f040d57129c/orbe-geolocation-503/assets/mq-1x1.svg') !important; 10298 }.orbe-flags-circle-re, .orbe-flags-circle__before-re:before { 10299 background-image: url('https://cdn.shopify.com/extensions/01a0e712-a926-77f8-816c-9f040d57129c/orbe-geolocation-503/assets/re-1x1.svg') !important; 10300 }.orbe-flags-circle-bl, .orbe-flags-circle__before-bl:before { 10301 background-image: url('https://cdn.shopify.com/extensions/01a0e712-a926-77f8-816c-9f040d57129c/orbe-geolocation-503/assets/bl-1x1.svg') !important; 10302 }.orbe-flags-circle-se, .orbe-flags-circle__before-se:before { 10303 background-image: url('https://cdn.shopify.com/extensions/01a0e712-a926-77f8-816c-9f040d57129c/orbe-geolocation-503/assets/se-1x1.svg') !important; 10304 }.orbe-flags-circle-fi, .orbe-flags-circle__before-fi:before { 10305 background-image: url('https://cdn.shopify.com/extensions/01a0e712-a926-77f8-816c-9f040d57129c/orbe-geolocation-503/assets/fi-1x1.svg') !important; 10306 }.orbe-flags-circle-no, .orbe-flags-circle__before-no:before { 10307 background-image: url('https://cdn.shopify.com/extensions/01a0e712-a926-77f8-816c-9f040d57129c/orbe-geolocation-503/assets/no-1x1.svg') !important; 10308 }.orbe-flags-circle-ch, .orbe-flags-circle__before-ch:before { 10309 background-image: url('https://cdn.shopify.com/extensions/01a0e712-a926-77f8-816c-9f040d57129c/orbe-geolocation-503/assets/ch-1x1.svg') !important; 10310 }.orbe-flags-circle-us, .orbe-flags-circle__before-us:before { 10311 background-image: url('https://cdn.shopify.com/extensions/01a0e712-a926-77f8-816c-9f040d57129c/orbe-geolocation-503/assets/us-1x1.svg') !important; 10312 }</style>
10312<script type="application/json" id="orbe-flag-css-meta">{"codes":",xx,fr,de,at,dk,it,ad,mc,be,nl,lu,es,gb,pt,gg,ie,je,ee,hu,lv,li,lt,si,sk,is,ua,bg,hr,gr,mt,ro,rs,me,md,mq,re,bl,se,fi,no,ch,us","asset43":"https:\/\/cdn.shopify.com\/extensions\/01a0e712-a926-77f8-816c-9f040d57129c\/orbe-geolocation-503\/assets\/xx.svg","assetCircle":"https:\/\/cdn.shopify.com\/extensions\/01a0e712-a926-77f8-816c-9f040d57129c\/orbe-geolocation-503\/assets\/xx-1x1.svg","local43":"xx,xk,ac,af,arab,asean,cefta,cp,dg,ea,eac,es-ct,es-ga,es-pv,ic,pc,sh-ac,sh-hl,sh-ta,ta,un,gb-eng,gb-nir,gb-sct,gb-wls"}</script>
10312<!-- END app snippet --> 10313 10314 10315 <button type="button" class="md-orbe-custom-selector orbe__custom-selector-AdFZMT3JGUFh5bEdRU__orbe_geolocation_app_block_custom_button_LDmmLX orbe__span-AdFZMT3JGUFh5bEdRU__orbe_geolocation_app_block_custom_button_LDmmLX my-class another-class " 10316 onclick="mdAppCustomButtonClick_AdFZMT3JGUFh5bEdRU__orbe_geolocation_app_block_custom_button_LDmmLX()"> 10317 <span class="md-visuallyHidden"> 10318 Geolocation Button: France, français, ⬠10319 </span> 10320 <div class='md-orbe-country-selector orbe-flags-fr' aria-hidden='true'> </div> 10321 10322<span class='md-orbe-country-selector-span orbe__span-AdFZMT3JGUFh5bEdRU__orbe_geolocation_app_block_custom_button_LDmmLX'>France</span><span class='md-orbe-country-selector-span orbe__span-AdFZMT3JGUFh5bEdRU__orbe_geolocation_app_block_custom_button_LDmmLX'>â¬</span> 10323 10324 10325<div class='md-orbe-country-selector__disclosure orbe__disclosure-AdFZMT3JGUFh5bEdRU__orbe_geolocation_app_block_custom_button_LDmmLX' aria-hidden='true'> </div> 10326<span class='md-orbe-country-selector-span orbe__span-AdFZMT3JGUFh5bEdRU__orbe_geolocation_app_block_custom_button_LDmmLX'>français</span> 10327 10328<div class='md-orbe-country-selector__disclosure orbe__disclosure-AdFZMT3JGUFh5bEdRU__orbe_geolocation_app_block_custom_button_LDmmLX' aria-hidden='true'> </div> 10329 </button>
10329<script> 10330 window.lastModalTriggerButton = null; 10331 function mdAppCustomButtonClick_AdFZMT3JGUFh5bEdRU__orbe_geolocation_app_block_custom_button_LDmmLX() { 10332 window.lastModalTriggerButton = document.activeElement;let _forceShowCloseButton = true; 10333 orbito.openModalWithoutRefresh(_forceShowCloseButton);} 10334 10335 setTimeout(() => { 10336 let orbeButton_position_AdFZMT3JGUFh5bEdRU__orbe_geolocation_app_block_custom_button_LDmmLX = document.querySelector('#shopify-orb-footer'); 10337 let orbeButton_AdFZMT3JGUFh5bEdRU__orbe_geolocation_app_block_custom_button_LDmmLX = document.querySelector('.orbe__custom-selector-AdFZMT3JGUFh5bEdRU__orbe_geolocation_app_block_custom_button_LDmmLX'); 10338 if (orbeButton_position_AdFZMT3JGUFh5bEdRU__orbe_geolocation_app_block_custom_button_LDmmLX != null && orbeButton_AdFZMT3JGUFh5bEdRU__orbe_geolocation_app_block_custom_button_LDmmLX != null) { 10339 10340 orbeButton_position_AdFZMT3JGUFh5bEdRU__orbe_geolocation_app_block_custom_button_LDmmLX.appendChild(orbeButton_AdFZMT3JGUFh5bEdRU__orbe_geolocation_app_block_custom_button_LDmmLX); 10341 10342 } 10343 }, 100); 10344 10345</script>
10345 10346 10347 10348</div></div> 10349 </div> 10350</section> 10351<!-- END sections: footer-group -->
10351<script defer charset="utf-8" src="https://widgets.rr.skeepers.io/product/0a60e0d4-c1ee-1964-bd52-08af221004c2/6731446e-da8d-4c79-937b-eaa671366ff5.js"></script>
10351<script> 10352 // Re-hydrate Skeepers stars injected dynamically (product-recommendations, Nosto cross-sells) 10353 (function () { 10354 if (window.__skeepersRehydrateInit) return; 10355 window.__skeepersRehydrateInit = true; 10356 10357 var pending = false; 10358 function rehydrate() { 10359 if (pending || !window.SkeepersProductWidget) return; 10360 var empty = document.querySelector('.skeepers_product__stars[data-product-id]:empty'); 10361 if (!empty) return; 10362 pending = true; 10363 requestAnimationFrame(function () { 10364 pending = false; 10365 try { window.SkeepersProductWidget.generate(); } catch (e) {} 10366 }); 10367 } 10368 10369 var observer = new MutationObserver(rehydrate); 10370 observer.observe(document.body, { childList: true, subtree: true }); 10371 10372 document.addEventListener('DOMContentLoaded', rehydrate); 10373 })(); 10374 </script>
10374<script type="text/javascript" img-lazyload> 10375 if (!window.__hoverImgInit) { 10376 window.__hoverImgInit = true; 10377 document.addEventListener('mouseover', function (e) { 10378 var card = e.target.closest('.product-card__media'); 10379 if (!card) return; 10380 var img = card.querySelector('.product-card__image--secondary'); 10381 if (!img) return; 10382 var hoverSrc = img.getAttribute('data-hover-src'); 10383 var hoverSrcset = img.getAttribute('data-hover-srcset'); 10384 if (hoverSrc) { 10385 img.setAttribute('src', hoverSrc); 10386 img.removeAttribute('data-hover-src'); 10387 } 10388 if (hoverSrcset) { 10389 img.setAttribute('srcset', hoverSrcset); 10390 img.removeAttribute('data-hover-srcset'); 10391 } 10392 }); 10393 } 10394 </script>
10394<script src="https://a.klaviyo.com/media/js/onsite/onsite.js"></script>
vendor: 1 bytes, line 10394
10394
10395<script type="text/javascript"> 10396 var klaviyo = klaviyo || []; 10397 klaviyo.init({ 10398 account: 'WJ9Fzj', 10399 platform: 'shopify', 10400 }); 10401 klaviyo.enable('backinstock', { 10402 modal: { 10403 headline: '{product_name}', 10404 body_content: "Inscrivez-vous pour recevoir une notification dès que ce produit sera de nouveau disponible.", 10405 email_field_label: 'Email', 10406 button_label: "Prévenez-moi de son retour", 10407 subscription_success_label: "L'inscription est faite ! Nous vous préviendrons dès que le produit sera de nouveau disponible.", 10408 close_label: "Fermer", 10409 footer_content: '', 10410 additional_styles: ` 10411 #container { 10412 border-radius: 8px; 10413 } 10414 h1, h2, h3, .modal-title { 10415 text-transform: uppercase; 10416 font-weight: 700; 10417 } 10418 button[type="submit"], .submit-button, .btn { 10419 font-weight: 400; 10420 text-transform: uppercase; 10421 border-radius: 90px; 10422 } 10423 select#variants, input[type="email"] { 10424 border-radius: 90px; 10425 } 10426 `, 10427 drop_background_color: '#fff', 10428 background_color: '#efede5', 10429 text_color: '#000', 10430 button_text_color: '#fff', 10431 button_background_color: '#303030', 10432 close_button_color: '#303030', 10433 error_background_color: '#fcd6d7', 10434 error_text_color: '#e92426', 10435 success_background_color: '#d3efcd', 10436 success_text_color: '#1B9500', 10437 }, 10438 }); 10439</script>
10439 10440<x-toast class="toast"> 10441 10442 </x-toast> 10443
10443<script>let scriptLoaded=!1;function loadJSscripts(){scriptLoaded||(observerCFH.disconnect(),scriptLoaded=!0,Array.from(document.getElementsByTagName("script")).forEach(t=>{let e=t.getAttribute("data-src");if(null!==e&&(t.setAttribute("src",e),delete t.dataset.src),"text/lazyload"===t.getAttribute("type")){let a=document.createElement("script");Array.from(t.attributes).forEach(t=>{a.setAttribute(t.name,t.value)}),a.type="text/javascript",a.innerHTML=t.innerHTML;let r=t.parentNode;r&&r.replaceChild(a,t)}}),Array.from(document.getElementsByTagName("link")).forEach(t=>{let e=t.getAttribute("data-href");null!==e&&(t.setAttribute("href",e),delete t.dataset.href)}),document.dispatchEvent(new CustomEvent("asyncLazyLoad")))}const activityEvents=["mousedown","mousemove","keydown","scroll","touchstart","click","keypress","touchmove"];activityEvents.forEach(t=>{window.addEventListener(t,loadJSscripts,!1)}),window.addEventListener?window.addEventListener("load",()=>{},!1):window.attachEvent?window.attachEvent("onload",()=>{}):window.onload=()=>{};</script>
10443 10444
10444<script>const loadResources=()=>{let e=document.getElementsByTagName("iframe");for(let t of e){let r=t.getAttribute("lazy-src");r&&(t.setAttribute("src",r),t.removeAttribute("lazy-src"))}let s=document.getElementsByTagName("video");for(let a of s){let l=a.getAttribute("lazy-src");l&&(a.setAttribute("src",l),a.removeAttribute("lazy-src"))}let c=document.getElementsByTagName("source");for(let d of c){let u=d.getAttribute("lazy-src"),p=d.getAttribute("lazy-srcset");u&&(d.setAttribute("src",u),d.removeAttribute("lazy-src")),p&&(d.setAttribute("srcset",p),d.removeAttribute("lazy-srcset"))}},elementInViewport=e=>{let t=e.offsetTop,r=e.offsetLeft,s=e.offsetWidth,a=e.offsetHeight;for(;e.offsetParent;)t+=(e=e.offsetParent).offsetTop,r+=e.offsetLeft;return t<window.pageYOffset+window.innerHeight&&r<window.pageXOffset+window.innerWidth&&t+a>window.pageYOffset&&r+s>window.pageXOffset},lazyLoadImage=()=>{let e=document.getElementsByTagName("img");for(let t of e){let r=t.getAttribute("lazy-src"),s=t.getAttribute("lazy-srcset");r&&(t.setAttribute("src",r),t.removeAttribute("lazy-src")),s&&(t.setAttribute("srcset",s),t.removeAttribute("lazy-srcset"))}let a=document.querySelectorAll("[lazy-bg]");for(let l of a){let o=l.getAttribute("lazy-bg");o&&(l.style.backgroundImage=`url(${o})`,l.removeAttribute("lazy-bg"))}},LoadImagesInit=()=>{let e=document.getElementsByTagName("img");for(let t of e)if(elementInViewport(t)){let r=t.getAttribute("lazy-src"),s=t.getAttribute("lazy-srcset");r&&(t.setAttribute("src",r),t.removeAttribute("lazy-src")),s&&(t.setAttribute("srcset",s),t.removeAttribute("lazy-srcset"))}};LoadImagesInit();const eventListeners=["click","scroll","mouseover","keydown","touchmove","touchstart","wheel"];eventListeners.forEach(e=>{document.addEventListener(e,()=>{let e=document.getElementsByTagName("body")[0];e.getAttribute("lazyLoaded")?lazyLoadImage():(loadResources(),lazyLoadImage(),e.setAttribute("lazyLoaded","1"))})});</script>
10444 10445 10446 10447 10448 10449<div id="shopify-block-AYlZha3Y3M1ZCdHA1e__15912215999290715800" class="shopify-block shopify-app-block"> 10450 10451<style data-shopify> 10452 .md-modal__content, .md-btn, .md-modal__formContent__select select, .md-form__select, .md-form__select__country__list-link, .md-form__select__language__list-link, .md-form__select__country__list-link-wrapper span, .md-form__select__language__list-link-wrapper span, .md-modal__bodyContent__text p { 10453 font-size: 14px !important; 10454 } 10455 10456 .md-modal__header__title span, .md-modal__header__title h2 { 10457 font-size: 20px; 10458 } 10459 10460 #md-app-embed__modal .md-modal__header__title span, #md-app-embed__modal .md-modal__header__title h2 { 10461 color: #000000 !important; 10462 line-height: 1.75em; 10463 } 10464 10465 #md-app-embed__modal .md-form__select__search__input, #md-app-embed__modal .md-form__select, #md-app-embed__modal .md-form__select__country__list-link, #md-app-embed__modal .md-form__select__language__list-link, #md-app-embed__modal .md-form__select__country__list-link-wrapper span, #md-app-embed__modal .md-form__select__language__list-link-wrapper span { 10466 color: #000000 !important; 10467 } 10468 10469 #md-app-embed__modal .md-form__select__country__list-link:hover, #md-app-embed__modal .md-form__select__language__list-link:hover { 10470 background: rgba(0, 0, 0, 0.1) !important; 10471 } 10472 10473 #md-app-embed__modal .md-form__select__search__input::placeholder { 10474 color: rgba(0, 0, 0, 0.5) !important; 10475 } 10476 10477 .md-btn__primary { 10478 background: #000000 !important; 10479 color: #ffffff !important; 10480 } 10481 10482 10483 .md-btn__primary:hover { 10484 background-image: linear-gradient(rgba(255, 255, 255, 0.2), rgba(255, 255, 255, 0.2)) !important; 10485 } 10486 10487 .md-btn__primary:active { 10488 background-image: linear-gradient(rgba(255, 255, 255, 0.2), rgba(255, 255, 255, 0.2)) !important; 10489 } 10490 10491 #md-app-embed__modal .md-form__select__search__input, #md-app-embed__modal .md-modal__content, #md-app-embed__modal .md-form__select__country__list, #md-app-embed__modal .md-form__select__language__list { 10492 background-color: #ffffff !important; 10493 color: #000000 !important; 10494 } 10495 10496 #md-app-embed__modal .md-modal__bodyContent p { 10497 color: #000000 !important; 10498 } 10499 10500 #md-app-embed__modal .md-modal__footerPoweredLink { 10501 color: #000000 !important; 10502 } 10503 .md-modal__footerContent { 10504 text-align: right; 10505 } 10506 #md-app-embed__modal .md-modal-closeButton .md-icon__Svg { 10507 fill: #5c5f62 !important; 10508 } 10509 10510 #md-app-embed__modal .orbe-highlight-country__divider { 10511 border-bottom: 1px solid #000000 !important; 10512 } 10513 #md-app-embed__modal .md-form__select { 10514 border-bottom: 1px solid #000000 !important; 10515 } 10516 #md-app-embed__modal .md-form__select__country__list, #md-app-embed__modal .md-form__select__language__list { 10517 border: 1px solid #000000 !important; 10518 } 10519 #md-app-embed__modal .md-form__select[aria-expanded="true"] { 10520 border-bottom: 2px solid #000000 !important; 10521 } 10522 #md-app-embed__modal .md-form__select { 10523 border-radius: unset !important; 10524 } 10525 10526 #md-app-embed__modal .md-form__select { 10527 background-image: url('data:image/svg+xml,<svg width="20" height="20" viewBox="0 0 20 20" fill="%23000000" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M10 14.0002C9.74401 14.0002 9.48801 13.9023 9.29301 13.7073L4.29301 8.70725C3.90201 8.31625 3.90201 7.68425 4.29301 7.29325C4.68401 6.90225 5.31601 6.90225 5.70701 7.29325L10 11.5862L14.293 7.29325C14.684 6.90225 15.316 6.90225 15.707 7.29325C16.098 7.68425 16.098 8.31625 15.707 8.70725L10.707 13.7073C10.512 13.9023 10.256 14.0002 10 14.0002Z" fill="%23000000"/></svg>') !important; 10528 } 10529 #md-app-embed__modal .md-form__select[aria-expanded="true"] { 10530 background-image: url('data:image/svg+xml,<svg width="20" height="20" viewBox="0 0 20 20" fill="%23000000" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M15 13.0002C14.744 13.0002 14.488 12.9023 14.293 12.7073L10 8.41425L5.70701 12.7073C5.31601 13.0982 4.68401 13.0982 4.29301 12.7073C3.90201 12.3163 3.90201 11.6842 4.29301 11.2933L9.29301 6.29325C9.68401 5.90225 10.316 5.90225 10.707 6.29325L15.707 11.2933C16.098 11.6842 16.098 12.3163 15.707 12.7073C15.512 12.9023 15.256 13.0002 15 13.0002Z" fill="%23000000"/></svg>') !important; 10531 } 10532 .md-modal__footerContent { 10533 max-width: 100%; 10534 } 10535 10536 10537 10538 10539 /* Custom CSS */ 10540 10541 10542 .md-modal__footer { 10543 padding: 0.75em 1.5em 1.5em; 10544 } 10545 .md-modal__header__flag { 10546 display: none !important; 10547 } 10548 10549 10550 .md-modal__backdrop { 10551 display: block !important; 10552 } 10553</style> 10554<div class="md-app-embed orbe--hidden" aria-hidden="true" id="md-app-embed__modal" data-nosnippet> 10555 10556 <!--googleoff: all--> 10557 10558 <div class="md-modal__container"> 10559 <div class="md-modal__dialog" role="dialog" aria-modal="true" 10560 aria-labelledby="label-md-modal__dialog" tabindex="-1"> 10561 <div class="md-modal__content notranslate" data-wg-notranslate><form method="post" action="/localization" id="md-modal__form__id" accept-charset="UTF-8" class="" enctype="multipart/form-data"><input type="hidden" name="form_type" value="localization" /><input type="hidden" name="utf8" value="â" /><input type="hidden" name="_method" value="put" /><input type="hidden" name="return_to" value="/products/calendrier-de-lavent" /> 10562 <div class="md-modal__grid"> 10563 <div class="md-modal__grid__1"> 10564 <div class="md-modal__header__flag"> 10565 </div> 10566 <div class="md-modal__header"> 10567 <div class="md-modal__header__title">
10568 <span id="label-md-modal__dialog" 10569 class="md-modal__header__title__span md-modal__header__custom__title" 10570 data-mdAppTitle 10571 role="heading" aria-level="2" tabindex="-1" 10572 > 10573 Welcome to Kusmi Tea ð¿ 10574 </span> 10575 </div> 10576 10577 <button class="md-modal-closeButton md-modal-closeButtonAction" aria-label="Close" type="button"> 10578 <span class="md-icon"> 10579 <span class="md-visuallyHidden"></span> 10580 <svg viewBox="0 0 20 20" class="md-icon__Svg" focusable="false" aria-hidden="true"> 10581 <path d="m11.414 10 6.293-6.293a1 1 0 1 0-1.414-1.414L10 8.586 3.707 2.293a1 1 0 0 0-1.414 1.414L8.586 10l-6.293 6.293a1 1 0 1 0 1.414 1.414L10 11.414l6.293 6.293A.998.998 0 0 0 18 17a.999.999 0 0 0-.293-.707L11.414 10z"></path> 10582 </svg> 10583 </span> 10584 </button> 10585 </div> 10586 <div class="md-modal__body"> 10587 <div class="md-modal__bodyContent" id="md-modal__idBodyContent"> 10588 <p class="md-modal__bodyContent__text" data-mdAppText>Which country would you like to receive your order in?</p> 10589 <div class="md-modal__bodyContent__helperText" data-mdAppHelperText> 10590 <p>Select your country to enjoy a shopping experience tailored to your location, with delivery available in your region.</p> 10591 </div> 10592 </div> 10593 </div> 10594 10595 <!-- Custom HTML --> 10596<div class="md-modal__formContent notranslate" aria-describedby="md-modal__idBodyContent" data-wg-notranslate> 10597 <!-- BEGIN app snippet: country-selector --><div class="md-modal__formContent__select"> 10598 <span class="md-modal__formContent__selectLabel" id="label-md-form__country-code" data-mdAppCountryLabel>Country</span> 10599 <input name="country_code" type="hidden" id="orbe-country-selector-popup-id"> 10600 <button type="button" name="md-form__select__country__button" id="md-form__select__country" role="combobox" 10601 aria-haspopup="listbox" aria-labelledby="label-md-form__country-code" class="md-form__select" 10602 aria-expanded="false" aria-controls="orbeCountryList" data-value="FR"> 10603 <div class="md-form__select__country__list-link-wrapper"><span class="md-form__select__span">France</span></div> 10604 </button> 10605 <ul id="orbeCountryList" role="listbox" 10606 class="md-form__select__country__list " hidden> 10607 <li id="orbe-country-DE" 10608 tabindex="-1" role="option" 10609 data-name="Deutschland / Germany" data-country="DE" style="display: list-item;"> 10610 <span class="md-form__select__country__list-link" data-countryname="Deutschland / Germany" data-primarymarket="false" data-currency="EUR" data-symbol="â¬" data-primary="enabled" data-defaultlocale="fr" data-subfoldersuffix="" data-domainurl="www.kusmitea.com" data-host="www.kusmitea.com" data-country="DE" data-value="DE" 10611 data-locales="fr,en,it,es,de,nl" data-namelocales="Français,English,italiano,español,Deutsch,Nederlands"data-shipping-threshold="" 10612 data-delivery-time="" 10613 data-return-time="" 10614 data-payment="" 10615 data-taxes-included="false" 10616 data-duties-included="false"> 10617 <div class="md-form__select__country__list-link-wrapper">
10618 <span class="md-form__select__span">Deutschland / Germany</span> 10619 </div> 10620 </span> 10621 </li> 10622 <li id="orbe-country-AT" 10623 tabindex="-1" role="option" 10624 data-name="Austria / Ãsterreich" data-country="AT" style="display: list-item;"> 10625 <span class="md-form__select__country__list-link" data-countryname="Austria / Ãsterreich" data-primarymarket="false" data-currency="EUR" data-symbol="â¬" data-primary="enabled" data-defaultlocale="fr" data-subfoldersuffix="" data-domainurl="www.kusmitea.com" data-host="www.kusmitea.com" data-country="AT" data-value="AT" 10626 data-locales="fr,en,it,es,de,nl" data-namelocales="Français,English,italiano,español,Deutsch,Nederlands"data-shipping-threshold="" 10627 data-delivery-time="" 10628 data-return-time="" 10629 data-payment="" 10630 data-taxes-included="false" 10631 data-duties-included="false"> 10632 <div class="md-form__select__country__list-link-wrapper"> 10633 <span class="md-form__select__span">Austria / Ãsterreich</span> 10634 </div> 10635 </span> 10636 </li> 10637 <li id="orbe-country-DK" 10638 tabindex="-1" role="option" 10639 data-name="Danmark" data-country="DK" style="display: list-item;"> 10640 <span class="md-form__select__country__list-link" data-countryname="Danmark" data-primarymarket="false" data-currency="EUR" data-symbol="â¬" data-primary="enabled" data-defaultlocale="fr" data-subfoldersuffix="" data-domainurl="www.kusmitea.com" data-host="www.kusmitea.com" data-country="DK" data-value="DK" 10641 data-locales="fr,en,it,es,de,nl" data-namelocales="Français,English,italiano,español,Deutsch,Nederlands"data-shipping-threshold="" 10642 data-delivery-time="" 10643 data-return-time="" 10644 data-payment="" 10645 data-taxes-included="false" 10646 data-duties-included="false"> 10647 <div class="md-form__select__country__list-link-wrapper"> 10648 <span class="md-form__select__span">Danmark</span> 10649 </div> 10650 </span> 10651 </li> 10652 <li id="orbe-country-FR" 10653 tabindex="-1" role="option" 10654 data-name="France" data-country="FR" style="display: list-item;"> 10655 <span class="md-form__select__country__list-link" aria-current="true" data-countryname="France" data-primarymarket="true" data-currency="EUR" data-symbol="â¬" data-primary="enabled" data-defaultlocale="fr" data-subfoldersuffix="" data-domainurl="www.kusmitea.com" data-host="www.kusmitea.com" data-country="FR" data-value="FR" 10656 data-locales="fr,en,it,es,de,nl" data-namelocales="Français,English,italiano,español,Deutsch,Nederlands"data-shipping-threshold="" 10657 data-delivery-time="" 10658 data-return-time="" 10659 data-payment="" 10660 data-taxes-included="false" 10661 data-duties-included="false"> 10662 <div class="md-form__select__country__list-link-wrapper"> 10663 <span class="md-form__select__span">France</span> 10664 </div> 10665 </span> 10666 </li> 10667 <li id="orbe-country-IT" 10668 tabindex="-1" role="option" 10669 data-name="Italia / Italy" data-country="IT" style="display: list-item;"> 10670 <span class="md-form__select__country__list-link" data-countryname="Italia / Italy" data-primarymarket="false" data-currency="EUR" data-symbol="â¬" data-primary="enabled" data-defaultlocale="fr" data-subfoldersuffix="" data-domainurl="www.kusmitea.com" data-host="www.kusmitea.com" data-country="IT" data-value="IT" 10671 data-locales="fr,en,it,es,de,nl" data-namelocales="Français,English,italiano,español,Deutsch,Nederlands"data-shipping-threshold="" 10672 data-delivery-time="" 10673 data-return-time="" 10674 data-payment="" 10675 data-taxes-included="false" 10676 data-duties-included="false"> 10677 <div class="md-form__select__country__list-link-wrapper">
10678 <span class="md-form__select__span">Italia / Italy</span> 10679 </div> 10680 </span> 10681 </li> 10682 <li id="orbe-country-AD" 10683 tabindex="-1" role="option" 10684 data-name="Andorra" data-country="AD" style="display: list-item;"> 10685 <span class="md-form__select__country__list-link" data-countryname="Andorra" data-primarymarket="false" data-currency="EUR" data-symbol="â¬" data-primary="enabled" data-defaultlocale="fr" data-subfoldersuffix="" data-domainurl="www.kusmitea.com" data-host="www.kusmitea.com" data-country="AD" data-value="AD" 10686 data-locales="fr,en,it,es,de,nl" data-namelocales="Français,English,italiano,español,Deutsch,Nederlands"data-shipping-threshold="" 10687 data-delivery-time="" 10688 data-return-time="" 10689 data-payment="" 10690 data-taxes-included="false" 10691 data-duties-included="false"> 10692 <div class="md-form__select__country__list-link-wrapper"> 10693 <span class="md-form__select__span">Andorra</span> 10694 </div> 10695 </span> 10696 </li> 10697 <li id="orbe-country-MC" 10698 tabindex="-1" role="option" 10699 data-name="Monaco" data-country="MC" style="display: list-item;"> 10700 <span class="md-form__select__country__list-link" data-countryname="Monaco" data-primarymarket="false" data-currency="EUR" data-symbol="â¬" data-primary="enabled" data-defaultlocale="fr" data-subfoldersuffix="" data-domainurl="www.kusmitea.com" data-host="www.kusmitea.com" data-country="MC" data-value="MC" 10701 data-locales="fr,en,it,es,de,nl" data-namelocales="Français,English,italiano,español,Deutsch,Nederlands"data-shipping-threshold="" 10702 data-delivery-time="" 10703 data-return-time="" 10704 data-payment="" 10705 data-taxes-included="false" 10706 data-duties-included="false"> 10707 <div class="md-form__select__country__list-link-wrapper"> 10708 <span class="md-form__select__span">Monaco</span> 10709 </div> 10710 </span> 10711 </li> 10712 <li id="orbe-country-BE" 10713 tabindex="-1" role="option" 10714 data-name="Belgium" data-country="BE" style="display: list-item;"> 10715 <span class="md-form__select__country__list-link" data-countryname="Belgium" data-primarymarket="false" data-currency="EUR" data-symbol="â¬" data-primary="enabled" data-defaultlocale="fr" data-subfoldersuffix="" data-domainurl="www.kusmitea.com" data-host="www.kusmitea.com" data-country="BE" data-value="BE" 10716 data-locales="fr,en,it,es,de,nl" data-namelocales="Français,English,italiano,español,Deutsch,Nederlands"data-shipping-threshold="" 10717 data-delivery-time="" 10718 data-return-time="" 10719 data-payment="" 10720 data-taxes-included="false" 10721 data-duties-included="false"> 10722 <div class="md-form__select__country__list-link-wrapper"> 10723 <span class="md-form__select__span">Belgium</span> 10724 </div> 10725 </span> 10726 </li> 10727 <li id="orbe-country-NL" 10728 tabindex="-1" role="option" 10729 data-name="Nederland / Netherlands" data-country="NL" style="display: list-item;"> 10730 <span class="md-form__select__country__list-link" data-countryname="Nederland / Netherlands" data-primarymarket="false" data-currency="EUR" data-symbol="â¬" data-primary="enabled" data-defaultlocale="fr" data-subfoldersuffix="" data-domainurl="www.kusmitea.com" data-host="www.kusmitea.com" data-country="NL" data-value="NL" 10731 data-locales="fr,en,it,es,de,nl" data-namelocales="Français,English,italiano,español,Deutsch,Nederlands"data-shipping-threshold="" 10732 data-delivery-time="" 10733 data-return-time="" 10734 data-payment="" 10735 data-taxes-included="false" 10736 data-duties-included="false"> 10737 <div class="md-form__select__country__list-link-wrapper">
10738 <span class="md-form__select__span">Nederland / Netherlands</span> 10739 </div> 10740 </span> 10741 </li> 10742 <li id="orbe-country-LU" 10743 tabindex="-1" role="option" 10744 data-name="Luxembourg" data-country="LU" style="display: list-item;"> 10745 <span class="md-form__select__country__list-link" data-countryname="Luxembourg" data-primarymarket="false" data-currency="EUR" data-symbol="â¬" data-primary="enabled" data-defaultlocale="fr" data-subfoldersuffix="" data-domainurl="www.kusmitea.com" data-host="www.kusmitea.com" data-country="LU" data-value="LU" 10746 data-locales="fr,en,it,es,de,nl" data-namelocales="Français,English,italiano,español,Deutsch,Nederlands"data-shipping-threshold="" 10747 data-delivery-time="" 10748 data-return-time="" 10749 data-payment="" 10750 data-taxes-included="false" 10751 data-duties-included="false"> 10752 <div class="md-form__select__country__list-link-wrapper"> 10753 <span class="md-form__select__span">Luxembourg</span> 10754 </div> 10755 </span> 10756 </li> 10757 <li id="orbe-country-ES" 10758 tabindex="-1" role="option" 10759 data-name="España" data-country="ES" style="display: list-item;"> 10760 <span class="md-form__select__country__list-link" data-countryname="España" data-primarymarket="false" data-currency="EUR" data-symbol="â¬" data-primary="enabled" data-defaultlocale="fr" data-subfoldersuffix="" data-domainurl="www.kusmitea.com" data-host="www.kusmitea.com" data-country="ES" data-value="ES" 10761 data-locales="fr,en,it,es,de,nl" data-namelocales="Français,English,italiano,español,Deutsch,Nederlands"data-shipping-threshold="" 10762 data-delivery-time="" 10763 data-return-time="" 10764 data-payment="" 10765 data-taxes-included="false" 10766 data-duties-included="false"> 10767 <div class="md-form__select__country__list-link-wrapper"> 10768 <span class="md-form__select__span">España</span> 10769 </div> 10770 </span> 10771 </li> 10772 <li id="orbe-country-GB" 10773 tabindex="-1" role="option" 10774 data-name="United Kingdom" data-country="GB" style="display: list-item;"> 10775 <span class="md-form__select__country__list-link" data-countryname="United Kingdom" data-primarymarket="false" data-currency="EUR" data-symbol="â¬" data-primary="enabled" data-defaultlocale="fr" data-subfoldersuffix="" data-domainurl="www.kusmitea.com" data-host="www.kusmitea.com" data-country="GB" data-value="GB" 10776 data-locales="fr,en,it,es,de,nl" data-namelocales="Français,English,italiano,español,Deutsch,Nederlands"data-shipping-threshold="" 10777 data-delivery-time="" 10778 data-return-time="" 10779 data-payment="" 10780 data-taxes-included="false" 10781 data-duties-included="false"> 10782 <div class="md-form__select__country__list-link-wrapper"> 10783 <span class="md-form__select__span">United Kingdom</span> 10784 </div> 10785 </span> 10786 </li> 10787 <li id="orbe-country-PT" 10788 tabindex="-1" role="option" 10789 data-name="Portugal" data-country="PT" style="display: list-item;"> 10790 <span class="md-form__select__country__list-link" data-countryname="Portugal" data-primarymarket="false" data-currency="EUR" data-symbol="â¬" data-primary="enabled" data-defaultlocale="fr" data-subfoldersuffix="" data-domainurl="www.kusmitea.com" data-host="www.kusmitea.com" data-country="PT" data-value="PT" 10791 data-locales="fr,en,it,es,de,nl" data-namelocales="Français,English,italiano,español,Deutsch,Nederlands"data-shipping-threshold="" 10792 data-delivery-time="" 10793 data-return-time="" 10794 data-payment="" 10795 data-taxes-included="false" 10796 data-duties-included="false"> 10797 <div class="md-form__select__country__list-link-wrapper">
10798 <span class="md-form__select__span">Portugal</span> 10799 </div> 10800 </span> 10801 </li> 10802 <li id="orbe-country-GG" 10803 tabindex="-1" role="option" 10804 data-name="Guernsey" data-country="GG" style="display: list-item;"> 10805 <span class="md-form__select__country__list-link" data-countryname="Guernsey" data-primarymarket="false" data-currency="EUR" data-symbol="â¬" data-primary="enabled" data-defaultlocale="fr" data-subfoldersuffix="" data-domainurl="www.kusmitea.com" data-host="www.kusmitea.com" data-country="GG" data-value="GG" 10806 data-locales="fr,en,it,es,de,nl" data-namelocales="Français,English,italiano,español,Deutsch,Nederlands"data-shipping-threshold="" 10807 data-delivery-time="" 10808 data-return-time="" 10809 data-payment="" 10810 data-taxes-included="false" 10811 data-duties-included="false"> 10812 <div class="md-form__select__country__list-link-wrapper"> 10813 <span class="md-form__select__span">Guernsey</span> 10814 </div> 10815 </span> 10816 </li> 10817 <li id="orbe-country-IE" 10818 tabindex="-1" role="option" 10819 data-name="Ireland" data-country="IE" style="display: list-item;"> 10820 <span class="md-form__select__country__list-link" data-countryname="Ireland" data-primarymarket="false" data-currency="EUR" data-symbol="â¬" data-primary="enabled" data-defaultlocale="fr" data-subfoldersuffix="" data-domainurl="www.kusmitea.com" data-host="www.kusmitea.com" data-country="IE" data-value="IE" 10821 data-locales="fr,en,it,es,de,nl" data-namelocales="Français,English,italiano,español,Deutsch,Nederlands"data-shipping-threshold="" 10822 data-delivery-time="" 10823 data-return-time="" 10824 data-payment="" 10825 data-taxes-included="false" 10826 data-duties-included="false"> 10827 <div class="md-form__select__country__list-link-wrapper"> 10828 <span class="md-form__select__span">Ireland</span> 10829 </div> 10830 </span> 10831 </li> 10832 <li id="orbe-country-JE" 10833 tabindex="-1" role="option" 10834 data-name="Jersey" data-country="JE" style="display: list-item;"> 10835 <span class="md-form__select__country__list-link" data-countryname="Jersey" data-primarymarket="false" data-currency="EUR" data-symbol="â¬" data-primary="enabled" data-defaultlocale="fr" data-subfoldersuffix="" data-domainurl="www.kusmitea.com" data-host="www.kusmitea.com" data-country="JE" data-value="JE" 10836 data-locales="fr,en,it,es,de,nl" data-namelocales="Français,English,italiano,español,Deutsch,Nederlands"data-shipping-threshold="" 10837 data-delivery-time="" 10838 data-return-time="" 10839 data-payment="" 10840 data-taxes-included="false" 10841 data-duties-included="false"> 10842 <div class="md-form__select__country__list-link-wrapper"> 10843 <span class="md-form__select__span">Jersey</span> 10844 </div> 10845 </span> 10846 </li> 10847 <li id="orbe-country-EE" 10848 tabindex="-1" role="option" 10849 data-name="Eesti / Estonia" data-country="EE" style="display: list-item;"> 10850 <span class="md-form__select__country__list-link" data-countryname="Eesti / Estonia" data-primarymarket="false" data-currency="EUR" data-symbol="â¬" data-primary="enabled" data-defaultlocale="fr" data-subfoldersuffix="" data-domainurl="www.kusmitea.com" data-host="www.kusmitea.com" data-country="EE" data-value="EE" 10851 data-locales="fr,en,it,es,de,nl" data-namelocales="Français,English,italiano,español,Deutsch,Nederlands"data-shipping-threshold="" 10852 data-delivery-time="" 10853 data-return-time="" 10854 data-payment="" 10855 data-taxes-included="false" 10856 data-duties-included="false"> 10857 <div class="md-form__select__country__list-link-wrapper">
10858 <span class="md-form__select__span">Eesti / Estonia</span> 10859 </div> 10860 </span> 10861 </li> 10862 <li id="orbe-country-HU" 10863 tabindex="-1" role="option" 10864 data-name="Hungary" data-country="HU" style="display: list-item;"> 10865 <span class="md-form__select__country__list-link" data-countryname="Hungary" data-primarymarket="false" data-currency="EUR" data-symbol="â¬" data-primary="enabled" data-defaultlocale="fr" data-subfoldersuffix="" data-domainurl="www.kusmitea.com" data-host="www.kusmitea.com" data-country="HU" data-value="HU" 10866 data-locales="fr,en,it,es,de,nl" data-namelocales="Français,English,italiano,español,Deutsch,Nederlands"data-shipping-threshold="" 10867 data-delivery-time="" 10868 data-return-time="" 10869 data-payment="" 10870 data-taxes-included="false" 10871 data-duties-included="false"> 10872 <div class="md-form__select__country__list-link-wrapper"> 10873 <span class="md-form__select__span">Hungary</span> 10874 </div> 10875 </span> 10876 </li> 10877 <li id="orbe-country-LV" 10878 tabindex="-1" role="option" 10879 data-name="Latvija / Latvia" data-country="LV" style="display: list-item;"> 10880 <span class="md-form__select__country__list-link" data-countryname="Latvija / Latvia" data-primarymarket="false" data-currency="EUR" data-symbol="â¬" data-primary="enabled" data-defaultlocale="fr" data-subfoldersuffix="" data-domainurl="www.kusmitea.com" data-host="www.kusmitea.com" data-country="LV" data-value="LV" 10881 data-locales="fr,en,it,es,de,nl" data-namelocales="Français,English,italiano,español,Deutsch,Nederlands"data-shipping-threshold="" 10882 data-delivery-time="" 10883 data-return-time="" 10884 data-payment="" 10885 data-taxes-included="false" 10886 data-duties-included="false"> 10887 <div class="md-form__select__country__list-link-wrapper"> 10888 <span class="md-form__select__span">Latvija / Latvia</span> 10889 </div> 10890 </span> 10891 </li> 10892 <li id="orbe-country-LI" 10893 tabindex="-1" role="option" 10894 data-name="Liechtenstein" data-country="LI" style="display: list-item;"> 10895 <span class="md-form__select__country__list-link" data-countryname="Liechtenstein" data-primarymarket="false" data-currency="EUR" data-symbol="â¬" data-primary="enabled" data-defaultlocale="fr" data-subfoldersuffix="" data-domainurl="www.kusmitea.com" data-host="www.kusmitea.com" data-country="LI" data-value="LI" 10896 data-locales="fr,en,it,es,de,nl" data-namelocales="Français,English,italiano,español,Deutsch,Nederlands"data-shipping-threshold="" 10897 data-delivery-time="" 10898 data-return-time="" 10899 data-payment="" 10900 data-taxes-included="false" 10901 data-duties-included="false"> 10902 <div class="md-form__select__country__list-link-wrapper"> 10903 <span class="md-form__select__span">Liechtenstein</span> 10904 </div> 10905 </span> 10906 </li> 10907 <li id="orbe-country-LT" 10908 tabindex="-1" role="option" 10909 data-name="Lietuva / Lithuania" data-country="LT" style="display: list-item;"> 10910 <span class="md-form__select__country__list-link" data-countryname="Lietuva / Lithuania" data-primarymarket="false" data-currency="EUR" data-symbol="â¬" data-primary="enabled" data-defaultlocale="fr" data-subfoldersuffix="" data-domainurl="www.kusmitea.com" data-host="www.kusmitea.com" data-country="LT" data-value="LT" 10911 data-locales="fr,en,it,es,de,nl" data-namelocales="Français,English,italiano,español,Deutsch,Nederlands"data-shipping-threshold="" 10912 data-delivery-time="" 10913 data-return-time="" 10914 data-payment="" 10915 data-taxes-included="false" 10916 data-duties-included="false"> 10917 <div class="md-form__select__country__list-link-wrapper">
10918 <span class="md-form__select__span">Lietuva / Lithuania</span> 10919 </div> 10920 </span> 10921 </li> 10922 <li id="orbe-country-SI" 10923 tabindex="-1" role="option" 10924 data-name="Slovenija" data-country="SI" style="display: list-item;"> 10925 <span class="md-form__select__country__list-link" data-countryname="Slovenija" data-primarymarket="false" data-currency="EUR" data-symbol="â¬" data-primary="enabled" data-defaultlocale="fr" data-subfoldersuffix="" data-domainurl="www.kusmitea.com" data-host="www.kusmitea.com" data-country="SI" data-value="SI" 10926 data-locales="fr,en,it,es,de,nl" data-namelocales="Français,English,italiano,español,Deutsch,Nederlands"data-shipping-threshold="" 10927 data-delivery-time="" 10928 data-return-time="" 10929 data-payment="" 10930 data-taxes-included="false" 10931 data-duties-included="false"> 10932 <div class="md-form__select__country__list-link-wrapper"> 10933 <span class="md-form__select__span">Slovenija</span> 10934 </div> 10935 </span> 10936 </li> 10937 <li id="orbe-country-SK" 10938 tabindex="-1" role="option" 10939 data-name="Slovensko / Slovakia" data-country="SK" style="display: list-item;"> 10940 <span class="md-form__select__country__list-link" data-countryname="Slovensko / Slovakia" data-primarymarket="false" data-currency="EUR" data-symbol="â¬" data-primary="enabled" data-defaultlocale="fr" data-subfoldersuffix="" data-domainurl="www.kusmitea.com" data-host="www.kusmitea.com" data-country="SK" data-value="SK" 10941 data-locales="fr,en,it,es,de,nl" data-namelocales="Français,English,italiano,español,Deutsch,Nederlands"data-shipping-threshold="" 10942 data-delivery-time="" 10943 data-return-time="" 10944 data-payment="" 10945 data-taxes-included="false" 10946 data-duties-included="false"> 10947 <div class="md-form__select__country__list-link-wrapper"> 10948 <span class="md-form__select__span">Slovensko / Slovakia</span> 10949 </div> 10950 </span> 10951 </li> 10952 <li id="orbe-country-IS" 10953 tabindex="-1" role="option" 10954 data-name="Iceland" data-country="IS" style="display: list-item;"> 10955 <span class="md-form__select__country__list-link" data-countryname="Iceland" data-primarymarket="false" data-currency="EUR" data-symbol="â¬" data-primary="enabled" data-defaultlocale="fr" data-subfoldersuffix="" data-domainurl="www.kusmitea.com" data-host="www.kusmitea.com" data-country="IS" data-value="IS" 10956 data-locales="fr,en,it,es,de,nl" data-namelocales="Français,English,italiano,español,Deutsch,Nederlands"data-shipping-threshold="" 10957 data-delivery-time="" 10958 data-return-time="" 10959 data-payment="" 10960 data-taxes-included="false" 10961 data-duties-included="false"> 10962 <div class="md-form__select__country__list-link-wrapper"> 10963 <span class="md-form__select__span">Iceland</span> 10964 </div> 10965 </span> 10966 </li> 10967 <li id="orbe-country-UA" 10968 tabindex="-1" role="option" 10969 data-name="Ukraine / УкÑаÑна" data-country="UA" style="display: list-item;"> 10970 <span class="md-form__select__country__list-link" data-countryname="Ukraine / УкÑаÑна" data-primarymarket="false" data-currency="EUR" data-symbol="â¬" data-primary="enabled" data-defaultlocale="fr" data-subfoldersuffix="" data-domainurl="www.kusmitea.com" data-host="www.kusmitea.com" data-country="UA" data-value="UA" 10971 data-locales="fr,en,it,es,de,nl" data-namelocales="Français,English,italiano,español,Deutsch,Nederlands"data-shipping-threshold="" 10972 data-delivery-time="" 10973 data-return-time="" 10974 data-payment="" 10975 data-taxes-included="false" 10976 data-duties-included="false"> 10977 <div class="md-form__select__country__list-link-wrapper">
10978 <span class="md-form__select__span">Ukraine / УкÑаÑна</span> 10979 </div> 10980 </span> 10981 </li> 10982 <li id="orbe-country-BG" 10983 tabindex="-1" role="option" 10984 data-name="Bulgaria / ÐÑлгаÑиÑ" data-country="BG" style="display: list-item;"> 10985 <span class="md-form__select__country__list-link" data-countryname="Bulgaria / ÐÑлгаÑиÑ" data-primarymarket="false" data-currency="EUR" data-symbol="â¬" data-primary="enabled" data-defaultlocale="fr" data-subfoldersuffix="" data-domainurl="www.kusmitea.com" data-host="www.kusmitea.com" data-country="BG" data-value="BG" 10986 data-locales="fr,en,it,es,de,nl" data-namelocales="Français,English,italiano,español,Deutsch,Nederlands"data-shipping-threshold="" 10987 data-delivery-time="" 10988 data-return-time="" 10989 data-payment="" 10990 data-taxes-included="false" 10991 data-duties-included="false"> 10992 <div class="md-form__select__country__list-link-wrapper"> 10993 <span class="md-form__select__span">Bulgaria / ÐÑлгаÑиÑ</span> 10994 </div> 10995 </span> 10996 </li> 10997 <li id="orbe-country-HR" 10998 tabindex="-1" role="option" 10999 data-name="Hrvatska / Croatia" data-country="HR" style="display: list-item;"> 11000 <span class="md-form__select__country__list-link" data-countryname="Hrvatska / Croatia" data-primarymarket="false" data-currency="EUR" data-symbol="â¬" data-primary="enabled" data-defaultlocale="fr" data-subfoldersuffix="" data-domainurl="www.kusmitea.com" data-host="www.kusmitea.com" data-country="HR" data-value="HR" 11001 data-locales="fr,en,it,es,de,nl" data-namelocales="Français,English,italiano,español,Deutsch,Nederlands"data-shipping-threshold="" 11002 data-delivery-time="" 11003 data-return-time="" 11004 data-payment="" 11005 data-taxes-included="false" 11006 data-duties-included="false"> 11007 <div class="md-form__select__country__list-link-wrapper"> 11008 <span class="md-form__select__span">Hrvatska / Croatia</span> 11009 </div> 11010 </span> 11011 </li> 11012 <li id="orbe-country-GR" 11013 tabindex="-1" role="option" 11014 data-name="Greece / Îλλαδα" data-country="GR" style="display: list-item;"> 11015 <span class="md-form__select__country__list-link" data-countryname="Greece / Îλλαδα" data-primarymarket="false" data-currency="EUR" data-symbol="â¬" data-primary="enabled" data-defaultlocale="fr" data-subfoldersuffix="" data-domainurl="www.kusmitea.com" data-host="www.kusmitea.com" data-country="GR" data-value="GR" 11016 data-locales="fr,en,it,es,de,nl" data-namelocales="Français,English,italiano,español,Deutsch,Nederlands"data-shipping-threshold="" 11017 data-delivery-time="" 11018 data-return-time="" 11019 data-payment="" 11020 data-taxes-included="false" 11021 data-duties-included="false"> 11022 <div class="md-form__select__country__list-link-wrapper"> 11023 <span class="md-form__select__span">Greece / Îλλαδα</span> 11024 </div> 11025 </span> 11026 </li> 11027 <li id="orbe-country-MT" 11028 tabindex="-1" role="option" 11029 data-name="Malta" data-country="MT" style="display: list-item;"> 11030 <span class="md-form__select__country__list-link" data-countryname="Malta" data-primarymarket="false" data-currency="EUR" data-symbol="â¬" data-primary="enabled" data-defaultlocale="fr" data-subfoldersuffix="" data-domainurl="www.kusmitea.com" data-host="www.kusmitea.com" data-country="MT" data-value="MT" 11031 data-locales="fr,en,it,es,de,nl" data-namelocales="Français,English,italiano,español,Deutsch,Nederlands"data-shipping-threshold="" 11032 data-delivery-time="" 11033 data-return-time="" 11034 data-payment="" 11035 data-taxes-included="false" 11036 data-duties-included="false"> 11037 <div class="md-form__select__country__list-link-wrapper">
11038 <span class="md-form__select__span">Malta</span> 11039 </div> 11040 </span> 11041 </li> 11042 <li id="orbe-country-RO" 11043 tabindex="-1" role="option" 11044 data-name="România" data-country="RO" style="display: list-item;"> 11045 <span class="md-form__select__country__list-link" data-countryname="România" data-primarymarket="false" data-currency="EUR" data-symbol="â¬" data-primary="enabled" data-defaultlocale="fr" data-subfoldersuffix="" data-domainurl="www.kusmitea.com" data-host="www.kusmitea.com" data-country="RO" data-value="RO" 11046 data-locales="fr,en,it,es,de,nl" data-namelocales="Français,English,italiano,español,Deutsch,Nederlands"data-shipping-threshold="" 11047 data-delivery-time="" 11048 data-return-time="" 11049 data-payment="" 11050 data-taxes-included="false" 11051 data-duties-included="false"> 11052 <div class="md-form__select__country__list-link-wrapper"> 11053 <span class="md-form__select__span">România</span> 11054 </div> 11055 </span> 11056 </li> 11057 <li id="orbe-country-RS" 11058 tabindex="-1" role="option" 11059 data-name="Serbia" data-country="RS" style="display: list-item;"> 11060 <span class="md-form__select__country__list-link" data-countryname="Serbia" data-primarymarket="false" data-currency="EUR" data-symbol="â¬" data-primary="enabled" data-defaultlocale="fr" data-subfoldersuffix="" data-domainurl="www.kusmitea.com" data-host="www.kusmitea.com" data-country="RS" data-value="RS" 11061 data-locales="fr,en,it,es,de,nl" data-namelocales="Français,English,italiano,español,Deutsch,Nederlands"data-shipping-threshold="" 11062 data-delivery-time="" 11063 data-return-time="" 11064 data-payment="" 11065 data-taxes-included="false" 11066 data-duties-included="false"> 11067 <div class="md-form__select__country__list-link-wrapper"> 11068 <span class="md-form__select__span">Serbia</span> 11069 </div> 11070 </span> 11071 </li> 11072 <li id="orbe-country-ME" 11073 tabindex="-1" role="option" 11074 data-name="Montenegro" data-country="ME" style="display: list-item;"> 11075 <span class="md-form__select__country__list-link" data-countryname="Montenegro" data-primarymarket="false" data-currency="EUR" data-symbol="â¬" data-primary="enabled" data-defaultlocale="fr" data-subfoldersuffix="" data-domainurl="www.kusmitea.com" data-host="www.kusmitea.com" data-country="ME" data-value="ME" 11076 data-locales="fr,en,it,es,de,nl" data-namelocales="Français,English,italiano,español,Deutsch,Nederlands"data-shipping-threshold="" 11077 data-delivery-time="" 11078 data-return-time="" 11079 data-payment="" 11080 data-taxes-included="false" 11081 data-duties-included="false"> 11082 <div class="md-form__select__country__list-link-wrapper"> 11083 <span class="md-form__select__span">Montenegro</span> 11084 </div> 11085 </span> 11086 </li> 11087 <li id="orbe-country-MD" 11088 tabindex="-1" role="option" 11089 data-name="Moldova" data-country="MD" style="display: list-item;"> 11090 <span class="md-form__select__country__list-link" data-countryname="Moldova" data-primarymarket="false" data-currency="EUR" data-symbol="â¬" data-primary="enabled" data-defaultlocale="fr" data-subfoldersuffix="" data-domainurl="www.kusmitea.com" data-host="www.kusmitea.com" data-country="MD" data-value="MD" 11091 data-locales="fr,en,it,es,de,nl" data-namelocales="Français,English,italiano,español,Deutsch,Nederlands"data-shipping-threshold="" 11092 data-delivery-time="" 11093 data-return-time="" 11094 data-payment="" 11095 data-taxes-included="false" 11096 data-duties-included="false"> 11097 <div class="md-form__select__country__list-link-wrapper">
11098 <span class="md-form__select__span">Moldova</span> 11099 </div> 11100 </span> 11101 </li> 11102 <li id="orbe-country-MQ" 11103 tabindex="-1" role="option" 11104 data-name="Martinique" data-country="MQ" style="display: list-item;"> 11105 <span class="md-form__select__country__list-link" data-countryname="Martinique" data-primarymarket="false" data-currency="EUR" data-symbol="â¬" data-primary="enabled" data-defaultlocale="fr" data-subfoldersuffix="" data-domainurl="www.kusmitea.com" data-host="www.kusmitea.com" data-country="MQ" data-value="MQ" 11106 data-locales="fr,en,it,es,de,nl" data-namelocales="Français,English,italiano,español,Deutsch,Nederlands"data-shipping-threshold="" 11107 data-delivery-time="" 11108 data-return-time="" 11109 data-payment="" 11110 data-taxes-included="false" 11111 data-duties-included="false"> 11112 <div class="md-form__select__country__list-link-wrapper"> 11113 <span class="md-form__select__span">Martinique</span> 11114 </div> 11115 </span> 11116 </li> 11117 <li id="orbe-country-RE" 11118 tabindex="-1" role="option" 11119 data-name="Reunion" data-country="RE" style="display: list-item;"> 11120 <span class="md-form__select__country__list-link" data-countryname="Reunion" data-primarymarket="false" data-currency="EUR" data-symbol="â¬" data-primary="enabled" data-defaultlocale="fr" data-subfoldersuffix="" data-domainurl="www.kusmitea.com" data-host="www.kusmitea.com" data-country="RE" data-value="RE" 11121 data-locales="fr,en,it,es,de,nl" data-namelocales="Français,English,italiano,español,Deutsch,Nederlands"data-shipping-threshold="" 11122 data-delivery-time="" 11123 data-return-time="" 11124 data-payment="" 11125 data-taxes-included="false" 11126 data-duties-included="false"> 11127 <div class="md-form__select__country__list-link-wrapper"> 11128 <span class="md-form__select__span">Reunion</span> 11129 </div> 11130 </span> 11131 </li> 11132 <li id="orbe-country-BL" 11133 tabindex="-1" role="option" 11134 data-name="Saint Barthélemy" data-country="BL" style="display: list-item;"> 11135 <span class="md-form__select__country__list-link" data-countryname="Saint Barthélemy" data-primarymarket="false" data-currency="EUR" data-symbol="â¬" data-primary="enabled" data-defaultlocale="fr" data-subfoldersuffix="" data-domainurl="www.kusmitea.com" data-host="www.kusmitea.com" data-country="BL" data-value="BL" 11136 data-locales="fr,en,it,es,de,nl" data-namelocales="Français,English,italiano,español,Deutsch,Nederlands"data-shipping-threshold="" 11137 data-delivery-time="" 11138 data-return-time="" 11139 data-payment="" 11140 data-taxes-included="false" 11141 data-duties-included="false"> 11142 <div class="md-form__select__country__list-link-wrapper"> 11143 <span class="md-form__select__span">Saint Barthélemy</span> 11144 </div> 11145 </span> 11146 </li> 11147 <li id="orbe-country-SE" 11148 tabindex="-1" role="option" 11149 data-name="Sverige / Sweden" data-country="SE" style="display: list-item;"> 11150 <span class="md-form__select__country__list-link" data-countryname="Sverige / Sweden" data-primarymarket="false" data-currency="EUR" data-symbol="â¬" data-primary="enabled" data-defaultlocale="fr" data-subfoldersuffix="" data-domainurl="www.kusmitea.com" data-host="www.kusmitea.com" data-country="SE" data-value="SE" 11151 data-locales="fr,en,it,es,de,nl" data-namelocales="Français,English,italiano,español,Deutsch,Nederlands"data-shipping-threshold="" 11152 data-delivery-time="" 11153 data-return-time="" 11154 data-payment="" 11155 data-taxes-included="false" 11156 data-duties-included="false"> 11157 <div class="md-form__select__country__list-link-wrapper">
11158 <span class="md-form__select__span">Sverige / Sweden</span> 11159 </div> 11160 </span> 11161 </li> 11162 <li id="orbe-country-FI" 11163 tabindex="-1" role="option" 11164 data-name="Finland" data-country="FI" style="display: list-item;"> 11165 <span class="md-form__select__country__list-link" data-countryname="Finland" data-primarymarket="false" data-currency="EUR" data-symbol="â¬" data-primary="enabled" data-defaultlocale="fr" data-subfoldersuffix="" data-domainurl="www.kusmitea.com" data-host="www.kusmitea.com" data-country="FI" data-value="FI" 11166 data-locales="fr,en,it,es,de,nl" data-namelocales="Français,English,italiano,español,Deutsch,Nederlands"data-shipping-threshold="" 11167 data-delivery-time="" 11168 data-return-time="" 11169 data-payment="" 11170 data-taxes-included="false" 11171 data-duties-included="false"> 11172 <div class="md-form__select__country__list-link-wrapper"> 11173 <span class="md-form__select__span">Finland</span> 11174 </div> 11175 </span> 11176 </li> 11177 <li id="orbe-country-NO" 11178 tabindex="-1" role="option" 11179 data-name="Norway / Norge" data-country="NO" style="display: list-item;"> 11180 <span class="md-form__select__country__list-link" data-countryname="Norway / Norge" data-primarymarket="false" data-currency="EUR" data-symbol="â¬" data-primary="enabled" data-defaultlocale="fr" data-subfoldersuffix="" data-domainurl="www.kusmitea.com" data-host="www.kusmitea.com" data-country="NO" data-value="NO" 11181 data-locales="fr,en,it,es,de,nl" data-namelocales="Français,English,italiano,español,Deutsch,Nederlands"data-shipping-threshold="" 11182 data-delivery-time="" 11183 data-return-time="" 11184 data-payment="" 11185 data-taxes-included="false" 11186 data-duties-included="false"> 11187 <div class="md-form__select__country__list-link-wrapper"> 11188 <span class="md-form__select__span">Norway / Norge</span> 11189 </div> 11190 </span> 11191 </li> 11192 <li id="orbe-country-CH" 11193 tabindex="-1" role="option" 11194 data-name="Switzerland" data-country="CH" style="display: list-item;"> 11195 <span class="md-form__select__country__list-link" data-countryname="Switzerland" data-primarymarket="false" data-currency="CHF" data-symbol="CHF" data-primary="enabled" data-defaultlocale="fr" data-subfoldersuffix="" data-domainurl="www.kusmitea.com" data-host="www.kusmitea.com" data-country="CH" data-value="CH" 11196 data-locales="fr,en,it,es,de,nl" data-namelocales="Français,English,italiano,español,Deutsch,Nederlands"data-shipping-threshold="" 11197 data-delivery-time="" 11198 data-return-time="" 11199 data-payment="" 11200 data-taxes-included="false" 11201 data-duties-included="false"> 11202 <div class="md-form__select__country__list-link-wrapper"> 11203 <span class="md-form__select__span">Switzerland</span> 11204 </div> 11205 </span> 11206 </li> 11207 <li id="orbe-country-US" 11208 tabindex="-1" role="option" 11209 data-name="United States" data-country="US" style="display: list-item;"> 11210 <span class="md-form__select__country__list-link" data-countryname="United States" data-primarymarket="false" data-currency="USD" data-symbol="$" data-primary="enabled" data-defaultlocale="fr" data-subfoldersuffix="" data-domainurl="www.kusmitea.com" data-host="www.kusmitea.com" data-country="US" data-value="US" 11211 data-locales="fr,en,it,es,de,nl" data-namelocales="Français,English,italiano,español,Deutsch,Nederlands"data-shipping-threshold="" 11212 data-delivery-time="" 11213 data-return-time="" 11214 data-payment="" 11215 data-taxes-included="false" 11216 data-duties-included="false"> 11217 <div class="md-form__select__country__list-link-wrapper">
11218 <span class="md-form__select__span">United States</span> 11219 </div> 11220 </span> 11221 </li></ul> 11222</div> 11223<!-- END app snippet --> 11224<!-- BEGIN app snippet: language-selector --><div class="md-modal__formContent__select"> 11225 <span class="md-modal__formContent__selectLabel" id="label-md-form__select__language" data-mdAppLanguageLabel>Language</span> 11226 <input name="language_code" id="orbe-lang-selector-popup-id" type="hidden"> 11227 <button type="button" name="md-form__select__language__button" id="md-form__select__language" class="md-form__select" 11228 aria-expanded="false" aria-controls="orbeLanguageList" role="combobox" aria-haspopup="listbox" 11229 aria-labelledby="label-md-form__select__language" data-value="fr" 11230 11231 > 11232 <div class="md-form__select__language__list-link-wrapper"> 11233 <span class="md-form__select__span">Français</span> 11234 </div> 11235 </button> 11236 <ul id="orbeLanguageList" role="listbox" 11237 class="md-form__select__language__list " hidden><li data-locale="fr" 11238 class="" tabindex="-1" role="option"> 11239 <span class="md-form__select__language__list-link" aria-current="true" data-value="fr"> 11240 <div class="md-form__select__language__list-link-wrapper"> 11241 <span class="md-form__select__span" data-value="fr">Français</span> 11242 </div> 11243 </span> 11244 </li><li data-locale="en" 11245 class="" tabindex="-1" role="option"> 11246 <span class="md-form__select__language__list-link" data-value="en"> 11247 <div class="md-form__select__language__list-link-wrapper"> 11248 <span class="md-form__select__span" data-value="en">English</span> 11249 </div> 11250 </span> 11251 </li><li data-locale="it" 11252 class="" tabindex="-1" role="option"> 11253 <span class="md-form__select__language__list-link" data-value="it"> 11254 <div class="md-form__select__language__list-link-wrapper"> 11255 <span class="md-form__select__span" data-value="it">Italiano</span> 11256 </div> 11257 </span> 11258 </li><li data-locale="es" 11259 class="" tabindex="-1" role="option"> 11260 <span class="md-form__select__language__list-link" data-value="es"> 11261 <div class="md-form__select__language__list-link-wrapper"> 11262 <span class="md-form__select__span" data-value="es">Español</span> 11263 </div> 11264 </span> 11265 </li><li data-locale="de" 11266 class="" tabindex="-1" role="option"> 11267 <span class="md-form__select__language__list-link" data-value="de"> 11268 <div class="md-form__select__language__list-link-wrapper"> 11269 <span class="md-form__select__span" data-value="de">Deutsch</span> 11270 </div> 11271 </span> 11272 </li><li data-locale="nl" 11273 class="" tabindex="-1" role="option"> 11274 <span class="md-form__select__language__list-link" data-value="nl"> 11275 <div class="md-form__select__language__list-link-wrapper"> 11276 <span class="md-form__select__span" data-value="nl">Nederlands</span> 11277 </div> 11278 </span> 11279 </li></ul> 11280</div> 11281<!-- END app snippet --> 11282 </div> 11283 <div class="md-modal__footer "> 11284 <div class="md-modal__footerContent"> 11285 <button type="submit" class="md-btn md-btn__primary" id="md-btn__form__onSubmit" data-mdAppCTAText>Confirm</button> 11286 </div> 11287 11288 </div> 11289 </div> 11290 11291 <div class="md-modal__grid__2"> 11292 11293 </div> 11294 </div> 11295 </form> 11296 </div> 11297 </div> 11298 </div> 11299 11300 <!--googleon: all--> 11301 11302 <div class="md-modal__backdrop"></div> 11303 </div>
11303<script> 11304 11305if (typeof mdApp_hideOnFallback === 'undefined') { 11306 var mdApp_hideOnFallback = false; 11307 } 11308 if (typeof mdApp_showFlagHeaderIcon == 'undefined') {var mdApp_showFlagHeaderIcon = false; 11309 var mdApp_showFlagHeaderIconCircle = false;} 11310 11311 if (typeof mdApp_showFlagSelectorIcon == 'undefined') {var mdApp_showFlagSelectorIcon = false;} 11312 11313 if (typeof mdApp_currencyCodeEnabled === 'undefined') {var mdApp_currencyCodeEnabled = false;} 11314 11315 if (typeof mdApp_backgroundModal == 'undefined') { 11316 var mdApp_backgroundModal = '#ffffff'; 11317 } 11318 11319 if (typeof mdApp_fallbackText === 'undefined') { 11320 var mdApp_fallbackText = `Can't find your country? We don't deliver to this destination yet.`; 11321 } 11322 11323 if (typeof mdApp_disableFallbackPR === 'undefined') { 11324 var mdApp_disableFallbackPR = false; 11325 } 11326 11327 if (typeof mdApp_searchCountrySelectorModal == 'undefined') {var mdApp_searchCountrySelectorModal = false;} 11328 11329 <!-- BEGIN app snippet: js-variables --> 11330 11331 11332if (typeof mdApp_redirectMode == 'undefined') { 11333 var mdApp_redirectMode = false; 11334} 11335if (typeof mdApp_redirectRegionMode == 'undefined') { 11336 var mdApp_redirectRegionMode = false; 11337} 11338if (typeof mdApp_redirectRegionCode === 'undefined') { 11339 var mdApp_redirectRegionCode = ''; 11340} 11341if (typeof mdApp_redirectCountryCode === 'undefined') { 11342 var mdApp_redirectCountryCode = ''; 11343} 11344if (typeof mdApp_redirectCountryName === 'undefined') { 11345 var mdApp_redirectCountryName = ''; 11346} 11347if (typeof mdApp_redirectCountryCurrencyCode === 'undefined') { 11348 var mdApp_redirectCountryCurrencyCode = ''; 11349} 11350if (typeof mdApp_redirectCountryCurrencySymbol === 'undefined') { 11351 var mdApp_redirectCountryCurrencySymbol = ''; 11352} 11353if (typeof mdApp_redirectLocale === 'undefined') { 11354 var mdApp_redirectLocale = ''; 11355} 11356if (typeof mdApp_redirectEndonymName === 'undefined') { 11357 var mdApp_redirectEndonymName = ''; 11358} 11359if (typeof mdApp_redirectUrl === 'undefined') { 11360 var mdApp_redirectUrl = ''; 11361} 11362if (typeof mdApp_forceHideOrbe == 'undefined') { 11363 var mdApp_forceHideOrbe = false; 11364} 11365if (typeof mdApp_currentPlan == 'undefined') { 11366var mdApp_currentPlan = 'premium'; 11367} 11368if (typeof mdApp_forceExternalStoreRedirectMode == 'undefined') { 11369var mdApp_forceExternalStoreRedirectMode = false; 11370} 11371if (typeof mdApp_forceExternalStoreRedirectList == 'undefined') { 11372var mdApp_forceExternalStoreRedirectList = []; 11373} 11374if (typeof mdApp_deferUntilScroll == 'undefined') { 11375var mdApp_deferUntilScroll = false; 11376} 11377 11378if (typeof mdApp_skipRequestAPI == 'undefined') {var mdApp_skipRequestAPI = 'fal
11378se';} 11379 11380if (typeof mdApp_merchantKey === 'undefined') {var mdApp_merchantKey = 'md_key_47065i91133128';} 11381 11382if (typeof mdApp_MAIN_URL === 'undefined') { 11383 11384 var mdApp_MAIN_URL = 'https://www.kusmitea.com'; 11385 11386} 11387 11388if (typeof mdApp_currentCountryCode === 'undefined') { 11389 11390 11391 var mdApp_currentCountryCode = 'FR'; 11392 11393} 11394 11395if (typeof mdApp_currentCountryCodeName === 'undefined') { 11396 var mdApp_currentCountryCodeName = 'France'; 11397} 11398 11399if (typeof mdApp_blockDomain === 'undefined') {var mdApp_blockDomain = '';} 11400 11401if (typeof mdApp_currentPageRelativeUrl === 'undefined') {var mdApp_currentPageRelativeUrl = "\/products\/calendrier-de-lavent"; 11402} 11403 11404if (typeof mdApp_translateTextJSON === 'undefined') {var mdApp_translateTextJSON = "{\"fr\":{\"title\":\"Bienvenue chez Kusmi Tea \\ud83c\\udf3f\",\"helperText\":\"\u003cp\u003eS\\u00e9lectionnez votre pays pour profiter d'une exp\\u00e9rience d'achat adapt\\u00e9e et d'une livraison dans votre r\\u00e9gion.\u003c\\\/p\u003e\",\"text\":\"Dans quel pays souhaitez-vous recevoir votre commande ?\",\"ctaText\":\"Confirmer\",\"countryLabel\":\"\",\"languageLabel\":\"\",\"fallbackText\":\"\",\"fallbackHelperText\":\"\",\"fallbackBodyText\":\"\",\"fallbackCtaText\":\"\"},\"it\":{\"title\":\"Benvenuto da Kusmi Tea \\ud83c\\udf3f\",\"helperText\":\"\u003cp\u003eSeleziona il tuo Paese per usufruire di un'esperienza di acquisto personalizzata e della consegna nella tua area.\u003c\\\/p\u003e\",\"text\":\"In quale Paese desideri ricevere il tuo ordine?\",\"ctaText\":\"Conferma\",\"countryLabel\":\"\",\"languageLabel\":\"\",\"fallbackText\":\"\",\"fallbackHelperText\":\"\",\"fallbackBodyText\":\"\",\"fallbackCtaText\":\"\"},\"es\":{\"title\":\"Bienvenido a Kusmi Tea \\ud83c\\udf3f\",\"helperText\":\"\u003cp\u003eSelecciona tu pa\\u00eds para disfrutar de una experiencia de compra adaptada y de la entrega en tu regi\\u00f3n.\u003c\\\/p\u003e\",\"text\":\"\\u00bfEn qu\\u00e9 pa\\u00eds te gustar\\u00eda recibir tu pedido?\",\"ctaText\":\"Confirmar\",\"countryLabel\":\"\",\"languageLabel\":\"\",\"fallbackText\":\"\",\"fallbackHelperText\":\"\",\"fallbackBodyText\":\"\",\"fallbackCtaText\":\"\"},\"de\":{\"title\":\"Willkommen bei Kusmi Tea \\ud83c\\udf3f\",\"helperText\":\"\u003cp\u003eW\\u00e4hlen Sie Ihr Land aus, um ein auf Ihre Region abgestimmtes Einkaufserlebnis sowie eine Lieferung in Ihre Region zu erhalten.\u003c\\\/p\u003e\",\"text\":\"In welches Land m\\u00f6chten Sie Ihre Bestellung liefern lassen?\",\"ctaText\":\"Best\\u00e4tigen\",\"countryLabel\":\"\",\"languageLabel\":\"\",\"fallbackText\":\"\",\"fallbackHelperText\":\"\",\"fallbackBodyText\":\"\",\"fallbackCtaText\":\"\"},\"nl\":{\"title\":\"Welkom bij Kusmi Tea \\ud83c\\udf3f\",\"helperText\":\"\u003cp\u003eSelecteer uw land om te genieten van een winkelervaring die is afgestemd op uw regio, met levering in uw omgeving.\u003c\\\/p\u003e\",\"text\":\"Naar welk land wilt u uw bestelling laten bezorgen?\",\"ctaText\":\"Bevestigen\",\"countryLabel\":\"\",\"languageLabel\":\"\",\"fallbackText\":\"\",\"fallbackHelperText\":\"\",\"fallbackBodyText\":\"\",\"fallbackCtaText\":\"\"},\"en\":{\"title\":\"Welcome to Kusmi Tea \\ud83c\\udf3f\",\"helperText\":\"\u003cp\u003eSelect your country to enjoy a shopping experience tailored to your location, with delivery available in your region.\u0026nbsp;\u0026nbsp;\u003c\\\/p\u003e\",\"text\":\"Which country would you like to receive your order in?\",\"ctaText\":\"Confirm\",\"countryLabel\":\"\",\"languageLabel\":\"\",\"fallbackText\":\"\",\"fallbackHelperText\":\"\",\"fallbackBodyText\":\"\",\"fallbackCtaText\":\"\"}}";} 11405 11406if (typeof mdApp_translateTextPreviewJSON === 'undefined') {var mdApp_translateTextPreviewJSON = '';} 11407 11408if (typeof mdApp_klaviyoConnect == 'undefined') {var mdApp_klaviyoConnect = false;} 11409 11410if (typeof mdApp_connectifConnect == 'undefined') {var mdApp_connectifConnect = false;} 11411 11412if (typeof mdApp_discountSupport == 'undefined') {var mdApp_discountSupport = true;} 11413 11414if (typeof mdApp_advancedLanguage == 'undefined') {var mdApp_advancedLanguage = { 11415 "option_language_force_default": false, 11416 "option_language_force_showRecommendation": false, 11417 "option_language_force_langRedirect": false 11418 };} 11419 11420if (typeof mdApp_firstVisitSettings == 'undefined') {var mdApp_firstVisitSettings = { 11421 "option_force_showModal_behaviour": true, 11422 11423 "popup_display_order": 1, 11424 11425 "other_popup_classes": null, 11426 "exclude_ip": null 11427 };} 11428 11429if (typeof mdApp_secondVisitSettings == 'undefined') {var mdApp_secondVisitSettings = { 11430 "option_force_redirect_behaviour": false 11431 };} 11432 11433if (typeof mdApp_syncstoresData == 'undefined') {var mdApp_syncstoresData = { 11434 "exclude_paths": "", 11435 "exclude_paths_splited": "", 11436 "redirect_fullpath": false 11437 };} 11438 11439if (typeof mdApp_orbeCustomer === 'undefined') { 11440 11441 var mdApp_orbeCustomer = ''; 11442 11443} 11444 11445if (typeof mdApp_orbeCustomerB2B === 'undefined') { 11446 11447 11448 var mdApp_orbeCustomerB2B = false;
11449 11450} 11451 11452if (typeof mdApp_skipTruncate === 'undefined') { 11453 var mdApp_skipTruncate = false; 11454} 11455 11456if (typeof mdApp_skipReturnToDomainCheck === 'undefined') { 11457 var mdApp_skipReturnToDomainCheck = false; 11458} 11459 11460if (typeof mdApp_cookiesSettings == 'undefined') {var mdApp_cookiesSettings = { 11461 "modal_close_time": 7, 11462 "session_only": false, 11463 "modal_reappear": 60 11464 };} 11465 11466if (typeof mdApp_countryRules == 'undefined') {var mdApp_countryRules = { 11467 "fallbackCountry": "" 11468 };} 11469<!-- END app snippet --> 11470</script>
11470 11471 11472 11473 11474</div><!-- Failed to render app block "18146506648094396618": app block path "shopify://apps/langshop/blocks/sdk/84899e01-2b29-42af-99d6-46d16daa2111" does not exist --><div id="shopify-block-ATEE3ZkFQcUtzdnBXZ__6990797075511561578" class="shopify-block shopify-app-block"><!-- BEGIN app snippet: nosto-tagging --> 11475 11476<div class="nosto_page_type" style="display:none">product</div> 11477 11478 11479 <div class="nosto_market" style="display:none"> 11480 <span class="id">102924747095</span> 11481 <span class="locale">fr</span> 11482 <span class="b2b">false</span> 11483 </div> 11484 11485 11486<div class="nosto_shopify_shop" style="display: none"> 11487 <span class="id">94365778263</span> 11488</div> 11489 11490 11491 11492 11493 <div class="nosto_product" style="display:none"> 11494 <span class="url">https://www.kusmitea.com/products/calendrier-de-lavent</span> 11495 <span class="product_id">11020345999703</span> 11496 <span class="name" translate="no">Calendrier de l'Avent</span> 11497 <span class="price">38,90</span> 11498 <span class="image_url">https:files/69ccaa76e308d3684f9a42cf6429ef819d9eca4d_ADVENTCAL26BIO_packshot_b2cweb.png</span> 11499 <span class="thumb_url">https:files/69ccaa76e308d3684f9a42cf6429ef819d9eca4d_ADVENTCAL26BIO_packshot_b2cweb.png</span> 11500 <span class="price_currency_code">EUR</span> 11501 11502 <span class="availability">InStock</span> 11503 11504 <span class="category" translate="no">SET</span> 11505 11506 <span class="category_id">675547185495</span> 11507 <span class="category" translate="no">Accessoires de Noël pour le thé</span> 11508 11509 <span class="category_id">672475742551</span> 11510 <span class="category" translate="no">Accessoires pour le thé</span> 11511 11512 <span class="category_id">672536330583</span> 11513 <span class="category" translate="no">Accessoires pour le thé entre 30 et 60 â¬</span> 11514 11515 <span class="category_id">672536265047</span> 11516 <span class="category" translate="no">Accessoires pour le thé à moins de 30 â¬</span> 11517 11518 <span class="category_id">672536559959</span> 11519 <span class="category" translate="no">Accessoires pour le thé à plus de 60 â¬</span> 11520 11521 <span class="category_id">672541213015</span> 11522 <span class="category" translate="no">Accessoires à offrir</span> 11523 11524 <span class="category_id">685374013783</span> 11525 <span class="category" translate="no">Amateur de thé</span> 11526 11527 <span class="category_id">664820941143</span> 11528 <span class="category" translate="no">AXO - Vente Privilège</span> 11529 11530 <span class="category_id">675531293015</span> 11531 <span class="category" translate="no">Black Friday</span> 11532 11533 <span class="category_id">675544564055</span> 11534 <span class="category" translate="no">Boutique de Noël</span> 11535 11536 <span class="category_id">672659636567</span> 11537 <span class="category" translate="no">Cadeau entre 30⬠et 60â¬</span> 11538 11539 <span class="category_id">672659669335</span> 11540 <span class="category" translate="no">Cadeau haut de gamme à plus de 60â¬</span> 11541 11542 <span class="category_id">675547349335</span> 11543 <span class="category" translate="no">Cadeaux d'exception de Noël</span> 11544 11545 <span class="category_id">672659538263</span> 11546 <span class="category" translate="no">Cadeaux entre 15⬠et 30â¬</span> 11547 11548 <span class="category_id">675544662359</span> 11549 <span class="category" translate="no">Cadeaux pour la fête des Mères</span> 11550 11551 <span class="category_id">672659505495</span> 11552 <span class="category" translate="no">Cadeaux à moins de 15â¬</span> 11553 11554 <span class="category_id">672682213719</span> 11555 <span class="category" translate="no">Coffrets</span> 11556 11557 <span class="category_id">672475513175</span> 11558 <span class="category" translate="no">Coffrets cadeaux - Coffret de thés et infusions</span> 11559 11560 <span class="category_id">672540033367</span> 11561 <span class="category" translate="no">Coffrets de thé en sachet</span> 11562 11563 <span class="category_id">672540197207</span> 11564 <span class="category" translate="no">Coffrets de thé en vrac</span> 11565
11566 <span class="category_id">672541507927</span> 11567 <span class="category" translate="no">Coffrets infusions et tisanes</span> 11568 11569 <span class="category_id">672541606231</span> 11570 <span class="category" translate="no">Coffrets thés noirs</span> 11571 11572 <span class="category_id">672541671767</span> 11573 <span class="category" translate="no">Coffrets thés verts</span> 11574 11575 <span class="category_id">680712601943</span> 11576 <span class="category" translate="no">Collection test</span> 11577 11578 <span class="category_id">685374079319</span> 11579 <span class="category" translate="no">Débutant</span> 11580 11581 <span class="category_id">672533315927</span> 11582 <span class="category" translate="no">Filtre à thé et infuseur</span> 11583 11584 <span class="category_id">685373849943</span> 11585 <span class="category" translate="no">Fin d'année scolaire</span> 11586 11587 <span class="category_id">685373915479</span> 11588 <span class="category" translate="no">Fête des pères</span> 11589 11590 <span class="category_id">672681132375</span> 11591 <span class="category" translate="no">Infusion et tisane</span> 11592 11593 <span class="category_id">685373981015</span> 11594 <span class="category" translate="no">Nounou</span> 11595 11596 <span class="category_id">671987466583</span> 11597 <span class="category" translate="no">Nouveautés</span> 11598 11599 <span class="category_id">688773366103</span> 11600 <span class="category" translate="no">Sélection cadeaux de Noël</span> 11601 11602 <span class="category_id">675547119959</span> 11603 <span class="category" translate="no">Sélection Coffrets de Noël</span> 11604 11605 <span class="category_id">676031234391</span> 11606 <span class="category" translate="no">Tax Collection - Corse</span> 11607 11608 <span class="category_id">672682377559</span> 11609 <span class="category" translate="no">Thé blanc</span> 11610 11611 <span class="category_id">672475906391</span> 11612 <span class="category" translate="no">Thé noir</span> 11613 11614 <span class="category_id">672681951575</span> 11615 <span class="category" translate="no">Thé vert</span> 11616 11617 <span class="category_id">672475349335</span> 11618 <span class="category" translate="no">Thés & Infusions</span> 11619 11620 <span class="category_id">688773267799</span> 11621 <span class="category" translate="no">Thés & Infusions de Noël</span> 11622 11623 <span class="category_id">675546366295</span> 11624 <span class="category" translate="no">Thés de Noël</span> 11625 11626 <span class="category_id">678463963479</span> 11627 <span class="category" translate="no">Tous les produits AXO</span> 11628 11629 <span class="category_id">672681820503</span> 11630 <span class="category" translate="no">Tous les thés</span> 11631 11632 <span class="description" translate="no">Le Calendrier de l'Avent Kusmi Tea édition 2026 vous invite à patienter jusqu'à Noël avec 24 surprises gourmandes et enchanteresses ! Poussez les portes du Cabinet de Voyance Kusmi Tea et laissez-vous transporter par ce calendrier imaginé tel un oracle, où chacune des 24 cases révèle un nouveau présage.Une sélection de 20 sachets de thés noirs, verts et blancs bio, dâinfusions sans théine et de recettes bien-être, mais également des cadeaux exclusifs de Noël⦠Deux miniatures en édition limitée, un accessoire et une savoureuse spécialité de thé à tartiner viennent compléter ce précieux assortiment.Présenté dans un coffret illustré en édition limitée, ce Calendrier de l'Avent célèbre l'univers du Cabinet de Voyance à travers un décor raffiné aux détails dorés et aux motifs mystiques. Un bel objet à exposer tout au long de lâannée chez soi en découvrant une multitude de mélanges et de douceurs !Contenu du Calendrier de l'Avent: 11633 11634Thés noirs bio (sachets) : Tsarevna, Anastasia, Prince Vladimir, St-Pétersbourg, Sweet Love, Thé du matin n°24 11635 11636Thés verts bio (sachets) : Label Impérial, Vert Gingembre-Citron, Thé Vert à la Menthe, Rituel Défenses Immunitaires, Rituel Ãnergie 11637 11638Thés blancs bio (sachets) : Tropical White, White Anastasia 11639 11640Infusions bio sans théine : AquaRosa, AquaSummer, Feel Zen, Happy Mind, Verveine Menthe, Rooibos Vanille, Rituel Sommeil 11641 116422 miniatures de Noël : Le Dessert (16 g) et Glögg (25 g) 116431 infuseur étoile 11644 116451 spécialité de thé à tartiner infusée au thé Le Dessert 11646</span> 11647 11648 <span class="brand" translate="no">Kusmi Tea</span> 11649
11650 <span class="tag1" translate="no">Access web</span> 11651 11652 <span class="tag1" translate="no">Accessoire</span> 11653 11654 <span class="tag1" translate="no">Coffret</span> 11655 11656 <span class="tag1" translate="no">Coffret & Cadeau</span> 11657 11658 <span class="tag1" translate="no">Infuseur</span> 11659 11660 <span class="tag1" translate="no">Infusion</span> 11661 11662 <span class="tag1" translate="no">Miniatures</span> 11663 11664 <span class="tag1" translate="no">Sachets</span> 11665 11666 <span class="tag1" translate="no">Thé noir</span> 11667 11668 <span class="tag1" translate="no">Thé vert</span> 11669 11670 <span class="tag1" translate="no">XMAS26</span> 11671 11672 11673 <span class="tag2" translate="no">add-to-cart</span> 11674 11675 <span class="tag3" translate="no"></span> 11676 11677 11678 11679 11680 <span class="alternate_image_url">https:files/d4580b40790c00094baa409e50cca7be9e97c986_ADVENTCAL26BIO_lifestyle_principal_b2cweb.png</span> 11681 11682 11683 11684 <span class="alternate_image_url">https:files/e21980f2e91bcdf3d9f362367f977c187cb85b9d_ADVENTCAL26BIO_lifestyle_secondaires_3_b2cweb.png</span> 11685 11686 11687 11688 <span class="alternate_image_url">https:files/fcc8178cc489ef7f2173080b959835e9011e1b43_ADVENTCAL26BIO_lifestyle_secondaires_1_b2cweb.png</span> 11689 11690 11691 11692 <span class="alternate_image_url">https:files/ad92ca4acc5277d14ecd84ed56b9ac91ff31b1eb_ADVENTCAL26BIO_lifestyle_secondaires_2_b2cweb.png</span> 11693 11694 11695 11696 <span class="nosto_sku"> 11697 <span class="id">54133287780695</span> 11698 <span class="name" translate="no">Default Title</span> 11699 <span class="price">38,90</span> 11700 <span class="list_price"></span> 11701 <span class="image_url">https:</span> 11702 <span class="url">https://www.kusmitea.com/products/calendrier-de-lavent?variant=54133287780695</span> 11703 11704 <span class="availability">InStock</span> 11705 11706 <span class="custom_fields"> 11707 11708 11709 <span class="Title">Default Title</span> 11710 11711 11712 </span> 11713 </span> 11714 11715 </div> 11716 11717 11718 11719 11720 11721 11722 11723 <div class="nosto_cart" style="display:none"> 11724 11725 11726 11727 </div> 11728 11729 11730 11731 11732 11733<!-- END app snippet --> 11734 11735 11736</div><div id="shopify-block-AUXN2dmh4bjVQQ0hBY__2046743146925785077" class="shopify-block shopify-app-block"><!-- BEGIN app snippet: nosto-variation --> 11737 11738 11739 11740 11741 <div class="nosto_variation" style="display: none;">EUR</div> 11742 11743 11744 11745 11746 <!-- END app snippet --> 11747 11748 11749</div><div id="shopify-block-AT09ZS1VJd1F0bEErR__9377937747802625048" class="shopify-block shopify-app-block"> 11750 11751 11752 <style> 11753 [data-biscuits-bundle-detected="true"] .biscuits--disabled { 11754 pointer-events: none !important; 11755 opacity: 0.5 !important; 11756 } 11757 [data-biscuits-bundle-detected="true"].biscuits--hidden { 11758 display: none !important; 11759 opacity: 0 !important; 11760 } 11761 11762 </style> 11763 11764
11764<script> 11765 window.BiscuitsBundle = window.BiscuitsBundle || {}; 11766 window.BiscuitsBundle.quickAddRules = { 11767 bundleProductIds: ["52651208311127","10517990932823","52658167644503","10521163399511","52930170290519","10603251007831","53096735277399","10641445192023","53178407256407","10688920093015","53260705956183","10741954052439","53265288954199","10742740123991","53808655532375","10929284284759","53809011032407","10929298473303","53810924945751","10929523360087","53810935431511","10929527783767","54268233089367","11053400293719","54864837968215","11126969729367","11183128772951","55031204315479","11187521290583","55048113848663","11187891241303","55049389703511","11188304871767","55050468786519"], 11768 bundleProductHandles: ["bundle-rituel-18s","bundle-rituel-100g","ensemble-de-preparation-bubble-tea","ensemble-kit-glace","ensemble-de-preparation-bubble-tea-english-breakfast","coffret-matcha-tradition-a-composer","ensemble-de-thes-glaces-a-composer","matcha-sirops","matcha-accessoires","ube-sirops","ube-accessoires","ensemble-glaces-a-emporter","kit-accessoire-bubble-tea","les-revelations-de-noel-kusmi-tea","les-revelations-de-noel-a-infuser","mon-coffret-de-noel-kusmi-tea","mon-coffret-de-noel-a-infuser"], 11769 quickAddDisplayRule: "replace", 11770 quickViewDisplayRules: "hide", 11771 quickAddButtonClasses: "", 11772 quickAddSelector: "", 11773 quickViewSelector: "", 11774 gridItemSelector: "", 11775 productPageFormSelector: "", 11776 linkText: "Voir le produit", 11777 dialogType: "modal", 11778 dialogTemplateName: "", 11779 dialogContentSelector: "", 11780 }; 11781 </script>
11781 11782 11783
11783<script type="application/json" class="biscuits-bundle-app-embed__json"> 11784 {} 11785 </script>
11785 11786 11787 11788
11788<script src="https://cdn.shopify.com/extensions/01a0e6ae-328d-7788-b736-29f83a8f04e4/biscuits-bundles-251/assets/biscuits-app-embed-production.min.js" defer></script>
11788 11789 11790 11791 11792 11793 11794 11795 11796</div>
11796<script src="https://cdn.shopify.com/storefront/standard-actions.js" type="module" data-source-attribution="shopify.standard_actions"></script>
11796 11797</body> 11798</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.