Outiref

Code source de l'URL : https://www.espaceplaisir.fr/

<!doctype html>
<html lang="fr">
<head >
    <meta charset="utf-8"/>
<meta name="title" content="Espace Plaisir : Loveshop &amp; jouets intimes en ligne"/>
<meta name="description" content="espaceplaisir sélectionne des jouets intimes conçus avec des matériaux sûrs pour le corps. Livraison discrète et expérience de confiance, en ligne et en boutique."/>
<meta name="keywords" content="sextoys, espace plaisir, gode, sex toys, sexshop, boutique sexy, vibromasseur, espace-plaisir, sex-toys, jeux coquins, rabbit, sextoy, espaceplaisir, love shop, loveshop, plug anal, canard vibrant, sex shop, boules de geisha, loveshop, sexshop"/>
<meta name="robots" content="INDEX,FOLLOW"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Espace Plaisir : Loveshop &amp; jouets intimes en ligne</title>
<link  rel="stylesheet" type="text/css"  media="all" href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/css/styles.min.css" />
<link  rel="stylesheet" type="text/css"  media="screen and (min-width: 640px)" href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/css/desktop.min.css" />
<link rel="preload" as="font" crossorigin="anonymous" href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/fonts/DM_Serif.woff2" />
<link rel="preload" as="font" crossorigin="anonymous" href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/fonts/Averta-Light.woff2" />
<link rel="preload" as="font" crossorigin="anonymous" href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/fonts/Averta-Regular.woff2" />
<link rel="preload" as="font" crossorigin="anonymous" href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/fonts/Averta-Bold.woff2" />
<link  rel="icon" type="image/x-icon" href="https://www.espaceplaisir.fr/media/favicon/default/favicon_1.png" />
<link  rel="shortcut icon" type="image/x-icon" href="https://www.espaceplaisir.fr/media/favicon/default/favicon_1.png" />
<!--START Digioh Low Impact Javascript-->
<script async type='text/javascript' src='https://www.lightboxcdn.com/vendor/c99905d1-00e5-46e4-90e5-1ca3f7973189/lightbox_speed.js'></script>
<!--END Digioh Low Impact Javascript-->

<style>
.catalog-product-view #gallery .main-img .slide-wrapper {
    overscroll-behavior: auto !important;
    touch-action: auto !important;
}
</style>

<style>
     .submenu-items .icon {
         display: none;
     }
</style>

<style>
.navigation [\@click\.prevent="chatMenuHandler()"] {display:none;}
</style>

<style>
@keyframes ticker {
 0% {
 transform: translateX(var(--ticker-start));
 }
 2% {
 transform: translateX(var(--ticker-start));
 }
 100% {
 transform: translateX(var(--ticker-end));
 }
}
</style>

<style>
/*
[x-init="countData()"] .text-sm.text-grey-light {display:none}
.product-info > .mt-6.mb-2.font-bold,
.product-info > [x-data="stockStores()"]{
 display: none;
}
*/
#category-view-container .category-image ~ .category-view-title {
 position: absolute;
 top: 0;
 left: 50%;
 transform: translateX(-50%);
}
#category-view-container .category-image img {
 min-height: 140px;
}
</style> 

<style>
.categorypath-1189-bdsm .category-view .p-slider:first-child,
.categorypath-991-bien-etre .category-view .p-slider:first-child,
.categorypath-1267-aphrodisiaques .category-view .p-slider:first-child {
display: none;
}
</style>
<link rel='canonical' src_type='url' href='https://www.espaceplaisir.fr/'>            
<!-- OneTrust Cookies Consent Notice start for espaceplaisir.fr -->
<script src="https://cdn.cookielaw.org/scripttemplates/otSDKStub.js" data-language="fr" type="text/javascript" charset="UTF-8" data-domain-script="0191dba0-607e-7247-b726-546c3b9223b2" ></script>
<script type="text/javascript">
function OptanonWrapper() { }
</script>
<!-- OneTrust Cookies Consent Notice end for espaceplaisir.fr -->    <script type="application/ld+json">{"@context":"https:\/\/schema.org","@type":"BreadcrumbList","itemListElement":{"@type":"ListItem","position":1,"item":{"@id":"https:\/\/www.espaceplaisir.fr\/","name":"Espace Plaisir : Loveshop & jouets intimes en ligne"}}}</script>
    <script type="application/ld+json">{"@context":"https:\/\/schema.org","@type":"WebSite","url":"https:\/\/www.espaceplaisir.fr\/","name":"Espace Plaisir","publisher":{"@id":"https:\/\/www.espaceplaisir.fr\/#organization"},"potentialAction":{"@type":"SearchAction","target":"https:\/\/www.espaceplaisir.fr\/catalogsearch\/result\/?q={search_term_string}","query":"required","query-input":"required name=search_term_string"}}</script>
    <script type="application/ld+json">{"@context":"https:\/\/schema.org","@type":"Organization","id":"https:\/\/www.espaceplaisir.fr\/#organization","legalName":"Belisoft","name":"espaceplaisir","alternateName":["Espace Plaisir","EspacePlaisir","Espace Plaisir Loveshop"],"brand":{"@type":"Brand","name":"espaceplaisir"},"foundingDate":"2010","description":"Espace Plaisir est un loveshop en ligne sp\u00e9cialis\u00e9 dans les sextoys, la lingerie et les accessoires intimes. La marque propose une s\u00e9lection de produits d\u00e9di\u00e9s au plaisir, \u00e0 la d\u00e9couverte et au bien-\u00eatre intime, avec une approche inclusive et discr\u00e8te.","url":"https:\/\/www.espaceplaisir.fr\/","logo":"https:\/\/www.espaceplaisir.fr\/static\/version1779257511\/frontend\/Interactiv4\/espaceplaisir-hyva\/fr_FR\/images\/logo.svg","telephone":"+33 (0)4 69 96 16 96","sameAs":["https:\/\/www.instagram.com\/espaceplaisir\/","https:\/\/www.facebook.com\/espaceplaisir\/","https:\/\/x.com\/espaceplaisir\/","https:\/\/fr.linkedin.com\/company\/belisoft","https:\/\/www.tiktok.com\/@espaceplaisir"],"address":{"@type":"PostalAddress","addressCountry":null,"addressRegion":null,"addressLocality":null,"postalCode":null,"streetAddress":null},"contactPoint":[{"@type":"ContactPoint","telephone":"+33 (0)4 69 96 16 96","contactType":"customer service","areaServed":"FR","availableLanguage":["French"]}]}</script>
<script>
    const insertGtmTag = () => {
        (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
                new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
            j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
            'https://www.googletagmanager.com/gtm.js?id=GTM-NLSKWL6S';f.parentNode.insertBefore(j,f);
        })(window,document,'script','dataLayer','GTM\u002DNLSKWL6S');
    };
            insertGtmTag();
    </script>

    
    <script data-skip-footer-move src="//www.espaceplaisir.fr/personalization/se/js/2/a-ff3fb5ff/p/espaceplaisir.fr/entry.js"></script>

    <script>
        (() => {
            const firstHeadElement = document.head.children[0];
            const tagScript = document.createElement('script');

            tagScript.type = 'text/javascript';
            tagScript.innerHTML = 'var monetateT = new Date().getTime();';

            firstHeadElement.parentNode.insertBefore(tagScript, firstHeadElement);
        })()
    </script>
<noscript>
    <img height="1"
         width="1"
         src="//upx.provenpixel.com/mage.js.php?noscript=1&shop=">
</noscript>
<script type="text/x-magento-init">
{
    "*": {
        "Sourceknowledge_ShoppingAds/js/pixel-code": {
            "query": "shop=espaceplaisir.fr&event=view&ver=Community-2.4.6-p13"
        }
    }
}
</script>
<script>
    var BASE_URL = 'https://www.espaceplaisir.fr/';
    var THEME_PATH = 'https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR';
    var COOKIE_CONFIG = {
        "expires": null,
        "path": "\u002F",
        "domain": ".www.espaceplaisir.fr",
        "secure": true,
        "lifetime": "2592000",
        "cookie_restriction_enabled": false    };
    var CURRENT_STORE_CODE = 'espace_plaisir_fo';
    var CURRENT_WEBSITE_ID = '1';

    window.hyva = window.hyva || {}

    window.cookie_consent_groups = window.cookie_consent_groups || {}
    window.cookie_consent_groups['necessary'] = true;

    window.cookie_consent_config = window.cookie_consent_config || {};
    window.cookie_consent_config['necessary'] = [].concat(
        window.cookie_consent_config['necessary'] || [],
        [
            'user_allowed_save_cookie',
            'form_key',
            'mage-messages',
            'private_content_version',
            'mage-cache-sessid',
            'last_visited_store',
            'section_data_ids'
        ]
    );
</script>
<script>
    'use strict';
    (function( hyva, undefined ) {

        function lifetimeToExpires(options, defaults) {

            const lifetime = options.lifetime || defaults.lifetime;

            if (lifetime) {
                const date = new Date;
                date.setTime(date.getTime() + lifetime * 1000);
                return date;
            }

            return null;
        }

        function generateRandomString() {

            const allowedCharacters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ',
                length = 16;

            let formKey = '',
                charactersLength = allowedCharacters.length;

            for (let i = 0; i < length; i++) {
                formKey += allowedCharacters[Math.round(Math.random() * (charactersLength - 1))]
            }

            return formKey;
        }

        const sessionCookieMarker = {noLifetime: true}

        const cookieTempStorage = {};

        const internalCookie = {
            get(name) {
                const v = document.cookie.match('(^|;) ?' + name + '=([^;]*)(;|$)');
                return v ? v[2] : null;
            },
            set(name, value, days, skipSetDomain) {
                let expires,
                    path,
                    domain,
                    secure,
                    samesite;

                const defaultCookieConfig = {
                    expires: null,
                    path: '/',
                    domain: null,
                    secure: false,
                    lifetime: null,
                    samesite: 'lax'
                };

                const cookieConfig = window.COOKIE_CONFIG || {};

                expires = days && days !== sessionCookieMarker
                    ? lifetimeToExpires({lifetime: 24 * 60 * 60 * days, expires: null}, defaultCookieConfig)
                    : lifetimeToExpires(window.COOKIE_CONFIG, defaultCookieConfig) || defaultCookieConfig.expires;

                path = cookieConfig.path || defaultCookieConfig.path;
                domain = !skipSetDomain && (cookieConfig.domain || defaultCookieConfig.domain);
                secure = cookieConfig.secure || defaultCookieConfig.secure;
                samesite = cookieConfig.samesite || defaultCookieConfig.samesite;

                document.cookie = name + "=" + encodeURIComponent(value) +
                    (expires && days !== sessionCookieMarker ? '; expires=' + expires.toGMTString() : '') +
                    (path ? '; path=' + path : '') +
                    (domain ? '; domain=' + domain : '') +
                    (secure ? '; secure' : '') +
                    (samesite ? '; samesite=' + samesite : 'lax');
            },
            isWebsiteAllowedToSaveCookie() {
                const allowedCookies = this.get('user_allowed_save_cookie');
                if (allowedCookies) {
                    const allowedWebsites = JSON.parse(unescape(allowedCookies));

                    return allowedWebsites[CURRENT_WEBSITE_ID] === 1;
                }
                return false;
            },
            getGroupByCookieName(name) {
                const cookieConsentConfig = window.cookie_consent_config || {};
                let group = null;
                for (let prop in cookieConsentConfig) {
                    if (!cookieConsentConfig.hasOwnProperty(prop)) continue;
                    if (cookieConsentConfig[prop].includes(name)) {
                        group = prop;
                        break;
                    }
                }
                return group;
            },
            isCookieAllowed(name) {
                const cookieGroup = this.getGroupByCookieName(name);
                return cookieGroup
                    ? window.cookie_consent_groups[cookieGroup]
                    : this.isWebsiteAllowedToSaveCookie();
            },
            saveTempStorageCookies() {
                for (const [name, data] of Object.entries(cookieTempStorage)) {
                    if (this.isCookieAllowed(name)) {
                        this.set(name, data['value'], data['days'], data['skipSetDomain']);
                        delete cookieTempStorage[name];
                    }
                }
            }
        };

        hyva.getCookie = (name) => {
            const cookieConfig = window.COOKIE_CONFIG || {};

            if (cookieConfig.cookie_restriction_enabled && ! internalCookie.isCookieAllowed(name)) {
                return cookieTempStorage[name] ? cookieTempStorage[name]['value'] : null;
            }

            return internalCookie.get(name);
        }

        hyva.setCookie = (name, value, days, skipSetDomain) => {
            const cookieConfig = window.COOKIE_CONFIG || {};

            if (cookieConfig.cookie_restriction_enabled && ! internalCookie.isCookieAllowed(name)) {
                cookieTempStorage[name] = {value, days, skipSetDomain};
                return;
            }
            return internalCookie.set(name, value, days, skipSetDomain);
        }


        hyva.setSessionCookie = (name, value, skipSetDomain) => {
            return hyva.setCookie(name, value, sessionCookieMarker, skipSetDomain)
        }

        hyva.getBrowserStorage = () => {
            const browserStorage = window.localStorage || window.sessionStorage;
            if (!browserStorage) {
                console.warn('Browser Storage is unavailable');
                return false;
            }
            try {
                browserStorage.setItem('storage_test', '1');
                browserStorage.removeItem('storage_test');
            } catch (error) {
                console.warn('Browser Storage is not accessible', error);
                return false;
            }
            return browserStorage;
        }

        hyva.postForm = (postParams) => {
            const form = document.createElement("form");

            let data = postParams.data;

            if (! postParams.skipUenc && ! data.uenc) {
                data.uenc = btoa(window.location.href);
            }
            form.method = "POST";
            form.action = postParams.action;

            Object.keys(postParams.data).map(key => {
                const field = document.createElement("input");
                field.type = 'hidden'
                field.value = postParams.data[key];
                field.name = key;
                form.appendChild(field);
            });

            const form_key = document.createElement("input");
            form_key.type = 'hidden';
            form_key.value = hyva.getFormKey();
            form_key.name="form_key";
            form.appendChild(form_key);

            document.body.appendChild(form);

            form.submit();
        }

        hyva.getFormKey = function () {
            let formKey = hyva.getCookie('form_key');

            if (!formKey) {
                formKey = generateRandomString();
                hyva.setCookie('form_key', formKey);
            }

            return formKey;
        }

        hyva.formatPrice = (value, showSign, options = {}) => {
            const groupSeparator = options.groupSeparator;
            const decimalSeparator = options.decimalSeparator
            delete options.groupSeparator;
            delete options.decimalSeparator;
            const formatter = new Intl.NumberFormat(
                'fr\u002DFR',
                Object.assign({
                    style: 'currency',
                    currency: 'EUR',
                    signDisplay: showSign ? 'always' : 'auto'
                }, options)
            );
            return (typeof Intl.NumberFormat.prototype.formatToParts === 'function') ?
                formatter.formatToParts(value).map(({type, value}) => {
                    switch (type) {
                        case 'currency':
                            return '\u20AC' || value;
                        case 'minusSign':
                            return '- ';
                        case 'plusSign':
                            return '+ ';
                        case 'group':
                            return groupSeparator !== undefined ? groupSeparator : value;
                        case 'decimal':
                            return decimalSeparator !== undefined ? decimalSeparator : value;
                        default :
                            return value;
                    }
                }).reduce((string, part) => string + part) :
                formatter.format(value);
        }

        const formatStr = function (str, nStart) {
            const args = Array.from(arguments).slice(2);

            return str.replace(/(%+)([0-9]+)/g, (m, p, n) => {
                const idx = parseInt(n) - nStart;

                if (args[idx] === null || args[idx] === void 0) {
                    return m;
                }
                return p.length % 2
                    ? p.slice(0, -1).replace('%%', '%') + args[idx]
                    : p.replace('%%', '%') + n;
            })
        }

        hyva.str = function (string) {
            const args = Array.from(arguments);
            args.splice(1, 0, 1);

            return formatStr.apply(undefined, args);
        }

        hyva.strf = function () {
            const args = Array.from(arguments);
            args.splice(1, 0, 0);

            return formatStr.apply(undefined, args);
        }

        /**
         * Take a html string as `content` parameter and
         * extract an element from the DOM to replace in
         * the current page under the same selector,
         * defined by `targetSelector`
         */
        hyva.replaceDomElement = (targetSelector, content) => {
            // Parse the content and extract the DOM node using the `targetSelector`
            const parser = new DOMParser();
            const doc = parser.parseFromString(content, 'text/html');
            const contentNode = doc.querySelector(targetSelector);

            // Bail if content or target can't be found
            if (!contentNode || !document.querySelector(targetSelector)) {
                return;
            }

                        hyva.activateScripts(contentNode);
            
            // Replace the old DOM node with the new content
            document.querySelector(targetSelector).replaceWith(contentNode);

            // Reload customerSectionData and display cookie-messages if present
            window.dispatchEvent(new CustomEvent("reload-customer-section-data"));
            hyva.initMessages();
        }

        hyva.removeScripts = (contentNode) => {
            const scripts = contentNode.getElementsByTagName('script');
            for (let i = 0; i < scripts.length; i++) {
                scripts[i].parentNode.removeChild(scripts[i]);
            }
            const templates = contentNode.getElementsByTagName('template');
            for (let i = 0; i < templates.length; i++) {
                const container = document.createElement('div');
                container.innerHTML = templates[i].innerHTML;
                hyva.removeScripts(container);
                templates[i].innerHTML = container.innerHTML;
            }
        }

        hyva.activateScripts = (contentNode) => {
            // Create new array from HTMLCollection to avoid mutation of collection while manipulating the DOM.
            const scripts = Array.from(contentNode.getElementsByTagName('script'));

            // Iterate over all script tags to duplicate+inject each into the head
            for (const original of scripts) {
                const script = document.createElement('script');
                original.type && (script.type = original.type);
                script.innerHTML = original.innerHTML;

                // Remove the original (non-executing) script from the contentNode
                original.parentNode.removeChild(original)

                // Add script to head
                document.head.appendChild(script);
            }

            return contentNode;
        }

        const replace = {['+']: '-', ['/']: '_', ['=']: ','};
        hyva.getUenc = () => btoa(window.location.href).replace(/[+/=]/g, match => replace[match]);

        let currentTrap;

        const focusableElements = (rootElement) => {
            const selector = 'button, [href], input, select, textarea, details, [tabindex]:not([tabindex="-1"]';
            return Array.from(rootElement.querySelectorAll(selector))
                .filter(el => {
                    return el.style.display !== 'none'
                        && !el.disabled
                        && el.tabIndex !== -1
                        && (el.offsetWidth || el.offsetHeight || el.getClientRects().length)
                })
        }

        const focusTrap = (e) => {
            const isTabPressed = e.key === 'Tab' || e.keyCode === 9;
            if (!isTabPressed) return;

            const focusable = focusableElements(currentTrap)
            const firstFocusableElement = focusable[0]
            const lastFocusableElement = focusable[focusable.length - 1]

            e.shiftKey
                ? document.activeElement === firstFocusableElement && (lastFocusableElement.focus(), e.preventDefault())
                : document.activeElement === lastFocusableElement && (firstFocusableElement.focus(), e.preventDefault())
        };

        hyva.releaseFocus = (rootElement) => {
            if (currentTrap && (!rootElement || rootElement === currentTrap)) {
                currentTrap.removeEventListener('keydown', focusTrap)
                currentTrap = null
            }
        }
        hyva.trapFocus = (rootElement) => {
            if (!rootElement) return;
            hyva.releaseFocus()
            currentTrap = rootElement
            rootElement.addEventListener('keydown', focusTrap)
            const firstElement = focusableElements(rootElement)[0]
            firstElement && firstElement.focus()
        }

        hyva.safeParseNumber = (rawValue) => {
            const number = rawValue ? parseFloat(rawValue) : null;

            return Array.isArray(number) || isNaN(number) ? rawValue : number;
        }

        const toCamelCase = s => s.split('_').map(word => word.charAt(0).toUpperCase() + word.slice(1)).join('');
        hyva.createBooleanObject = (name, value = false, additionalMethods = {}) => {

            const camelCase = toCamelCase(name);
            const key = '__hyva_bool_' + name

            return new Proxy(Object.assign(
                additionalMethods,
                {
                    [key]: !!value,
                    [name]() {return !!this[key]},
                    ['!' + name]() {return !this[key]}, // @deprecated This does not work with non-CSP Alpine
                    ['not' + camelCase]() {return !this[key]},
                    ['toggle' + camelCase]() {this[key] = !this[key]},
                    [`set${camelCase}True`]() {this[key] = true},
                    [`set${camelCase}False`]() {this[key] = false},
                }
            ), {
                set(target, prop, value) {
                    return prop === name
                        ? (target[key] = !!value)
                        : Reflect.set(...arguments);
                }
            })
        }

                hyva.alpineInitialized = (fn) => window.addEventListener('alpine:initialized', fn, {once: true})
        window.addEventListener('alpine:init', () => Alpine.data('{}', () => ({})), {once: true});
                window.addEventListener('user-allowed-save-cookie', () => internalCookie.saveTempStorageCookies())

    }( window.hyva = window.hyva || {} ));
</script>
<script>
    if (!window.IntersectionObserver) {
        window.IntersectionObserver = function (callback) {
            this.observe = el => el && callback(this.takeRecords());
            this.takeRecords = () => [{isIntersecting: true, intersectionRatio: 1}];
            this.disconnect = () => {};
            this.unobserve = () => {};
        }
    }
</script>
            <meta property="og:type" content="website" />
                <meta property="og:title"
              content="Espace Plaisir : Loveshop & jouets intimes en ligne" />
                    <meta property="og:description"
              content="espaceplaisir sélectionne des jouets intimes conçus avec des matériaux sûrs pour le corps. Livraison discrète et expérience de confiance, en ligne et en boutique." />
                <meta property="og:url" content="https://www.espaceplaisir.fr/" />
            <meta name="twitter:card" content="summary" />
    
    
    <script>window.algoliaConfig = {"instant":{"enabled":true,"selector":".columns","isAddToCartEnabled":true,"addToCartParams":{"action":"https:\/\/www.espaceplaisir.fr\/checkout\/cart\/add\/","formKey":"Hg2gJKPNrvxgcmJD","redirectUrlParam":"uenc"},"infiniteScrollEnabled":false,"urlTrackedParameters":["query","attribute:*","index","page"],"isSearchBoxEnabled":false,"isVisualMerchEnabled":true,"categorySeparator":" \/\/\/ ","categoryPageIdAttribute":"categoryPageId","isCategoryNavigationEnabled":false,"hidePagination":false},"autocomplete":{"enabled":true,"selector":".algolia-search-input","sections":[{"name":"pages","label":"Pages","hitsPerPage":"2"}],"nbOfProductsSuggestions":30,"nbOfCategoriesSuggestions":2,"nbOfQueriesSuggestions":2,"isDebugEnabled":false,"isNavigatorEnabled":true,"debounceMilliseconds":300,"minimumCharacters":0},"landingPage":{"query":"","configuration":"[]"},"recommend":{"enabledFBT":false,"enabledRelated":false,"enabledFBTInCart":false,"enabledRelatedInCart":false,"enabledLookingSimilar":0,"limitFBTProducts":6,"limitRelatedProducts":6,"limitTrendingItems":6,"limitLookingSimilar":6,"enabledTrendItems":0,"trendItemFacetName":null,"trendItemFacetValue":null,"isTrendItemsEnabledInPDP":0,"isTrendItemsEnabledInCartPage":0,"isAddToCartEnabledInFBT":false,"isAddToCartEnabledInRelatedProduct":false,"isAddToCartEnabledInTrendsItem":false,"isAddToCartEnabledInLookingSimilar":false,"FBTTitle":"Frequently bought together","relatedProductsTitle":"Related products","trendingItemsTitle":"Trending items","addToCartParams":{"action":"https:\/\/www.espaceplaisir.fr\/checkout\/cart\/add\/","formKey":"Hg2gJKPNrvxgcmJD","redirectUrlParam":"uenc"},"isLookingSimilarEnabledInPDP":0,"isLookingSimilarEnabledInCartPage":0,"lookingSimilarTitle":"Looking Similar"},"extensionVersion":"3.14.2","applicationId":"KNMCAIJP4K","indexName":"belisoft_pro_espace_plaisir_fo","apiKey":"YjdkYzBhNWM5MDdlMzdmZjhkYTg1Mzk2MTAyZGU4MmE2MzEwMWYyYTdkYjAyYTEwNjRhZWYwNGYxMzJjNzNjMnRhZ0ZpbHRlcnM9JnZhbGlkVW50aWw9MTc3OTgxNjE0Mw==","attributeFilter":[],"facets":[{"attribute":"lingerie_type","type":"disjunctive","label":"Type de lingerie","searchable":"3","create_rule":"2"},{"attribute":"sextoy_type","type":"disjunctive","label":"Type sextoy","searchable":"3","create_rule":"2"},{"attribute":"manufacturer","type":"disjunctive","label":"Marque","searchable":"1","create_rule":"2"},{"attribute":"couleur","type":"disjunctive","label":"Couleur","searchable":"1","create_rule":"2"},{"attribute":"taille","type":"disjunctive","label":"Taille","searchable":"1","create_rule":"2"},{"attribute":"price","type":"slider","label":"Prix","searchable":"2","create_rule":"2"},{"attribute":"materiau","type":"disjunctive","label":"Mat\u00e9riau","searchable":"1","create_rule":"2"},{"attribute":"parfum_2","type":"disjunctive","label":"Parfum","searchable":"1","create_rule":"2"},{"attribute":"longueur_2","type":"disjunctive","label":"Longueur","searchable":"3","create_rule":"2"},{"attribute":"diametre_2","type":"disjunctive","label":"Diam\u00e8tre","searchable":"3","create_rule":"2"},{"attribute":"energie_2","type":"disjunctive","label":"\u00c9nergie","searchable":"3","create_rule":"2"},{"attribute":"fonctionnalites","type":"disjunctive","label":"Fonctionnalit\u00e9s","searchable":"1","create_rule":"2"},{"attribute":"fleshlight_girls","type":"disjunctive","label":"Actrice","searchable":"1","create_rule":"2"},{"attribute":"ouverture_masturbateur","type":"disjunctive","label":"Ouverture masturbateur","searchable":"1","create_rule":"2"},{"attribute":"waterproof_2","type":"disjunctive","label":"Waterproof","searchable":"3","create_rule":"2"},{"attribute":"fastening","type":"disjunctive","label":"Type de fermeture","searchable":"1","create_rule":"2"},{"attribute":"type","type":"disjunctive","label":"Type","searchable":"1","create_rule":"2"},{"attribute":"taille_preservatif","type":"disjunctive","label":"Taille pr\u00e9servatif","searchable":"3","create_rule":"2"},{"attribute":"contenance_2","type":"disjunctive","label":"Contenance","searchable":"3","create_rule":"2"},{"attribute":"tissu","type":"disjunctive","label":"Tissu","searchable":"1","create_rule":"2"},{"attribute":"deguisement","type":"disjunctive","label":"D\u00e9guisement","searchable":"1","create_rule":"2"},{"attribute":"opacite_2","type":"disjunctive","label":"Opacit\u00e9","searchable":"1","create_rule":"2"}],"areCategoriesInFacets":false,"hitsPerPage":30,"sortingIndices":[{"attribute":"price","sort":"asc","sortLabel":"Prix croissant","virtualReplica":"0","name":"belisoft_pro_espace_plaisir_fo_products_price_default_asc","ranking":["asc(price.EUR.default)","typo","geo","words","filters","proximity","attribute","exact","custom"],"label":"Prix croissant"},{"attribute":"price","sort":"desc","sortLabel":"Prix d\u00e9croissant","virtualReplica":"0","name":"belisoft_pro_espace_plaisir_fo_products_price_default_desc","ranking":["desc(price.EUR.default)","typo","geo","words","filters","proximity","attribute","exact","custom"],"label":"Prix d\u00e9croissant"},{"attribute":"created_at","sort":"desc","sortLabel":"Nouveaut\u00e9","virtualReplica":"0","name":"belisoft_pro_espace_plaisir_fo_products_created_at_desc","ranking":["desc(created_at)","typo","geo","words","filters","proximity","attribute","exact","custom"],"label":"Nouveaut\u00e9"},{"attribute":"rating_summary","sort":"desc","sortLabel":"Meilleures notes","virtualReplica":"0","name":"belisoft_pro_espace_plaisir_fo_products_rating_summary_desc","ranking":["desc(rating_summary)","typo","geo","words","filters","proximity","attribute","exact","custom"],"label":"Meilleures notes"},{"attribute":"special_price_percent","sort":"desc","sortLabel":"Meilleures remises","virtualReplica":"0","name":"belisoft_pro_espace_plaisir_fo_products_special_price_percent_desc","ranking":["desc(special_price_percent)","typo","geo","words","filters","proximity","attribute","exact","custom"],"label":"Meilleures remises"},{"attribute":"bq_28_ga4_view_to_purchase_ratio_bucket","sort":"desc","sortLabel":"Hors promotions","virtualReplica":"0","name":"belisoft_pro_espace_plaisir_fo_products_bq_28_ga4_view_to_purchase_ratio_bucket_desc","ranking":["desc(bq_28_ga4_view_to_purchase_ratio_bucket)","typo","geo","words","filters","proximity","attribute","exact","custom"],"label":"Hors promotions"}],"isSearchPage":false,"isCategoryPage":false,"isLandingPage":false,"removeBranding":false,"productId":null,"priceKey":".EUR.default","priceGroup":null,"origFormatedVar":"price.EUR.default_original_formated","tierFormatedVar":"price.EUR.default_tier_formated","currencyCode":"EUR","currencySymbol":"\u20ac","priceFormat":{"pattern":"%s\u00a0\u20ac","precision":2,"requiredPrecision":2,"decimalSymbol":",","groupSymbol":"\u202f","groupLength":3,"integerRequired":false},"maxValuesPerFacet":20,"autofocus":true,"resultPageUrl":"https:\/\/www.espaceplaisir.fr\/catalogsearch\/result\/","request":{"query":"","refinementKey":"","refinementValue":"","categoryId":"","landingPageId":"","path":"","level":"","parentCategory":"","childCategories":[],"url":"https:\/\/www.espaceplaisir.fr\/"},"showCatsNotIncludedInNavigation":true,"showSuggestionsOnNoResultsPage":true,"baseUrl":"https:\/\/www.espaceplaisir.fr","popularQueries":["gode","plug","masturbateur","gode ceinture","plug anal","gaine","vibromasseur","gode realiste","gode ventouse","cockring"],"useAdaptiveImage":true,"urls":{"logo":"https:\/\/www.espaceplaisir.fr\/static\/version1779257511\/frontend\/Interactiv4\/espaceplaisir-hyva\/fr_FR\/Algolia_AlgoliaSearch\/js\/images\/algolia-logo-blue.svg"},"cookieConfiguration":{"customerTokenCookie":"_ALGOLIA_MAGENTO_AUTH","consentCookieName":"_ALGOLIA","cookieAllowButtonSelector":"#onetrust-accept-btn-handler","cookieRestrictionModeEnabled":false,"cookieDuration":"15552000000"},"ccAnalytics":{"enabled":true,"ISSelector":".ais-Hits-item a.result, .ais-InfiniteHits-item a.result","conversionAnalyticsMode":"all","addToCartSelector":".action.primary.tocart","orderedProductIds":[]},"isPersonalizationEnabled":true,"personalization":{"enabled":true,"viewedEvents":{"viewProduct":{"eventName":"Viewed Product","enabled":true,"method":"viewedObjectIDs"}},"clickedEvents":{"productClicked":{"eventName":"Product Clicked","enabled":true,"selector":".ais-Hits-item a.result, .ais-InfiniteHits-item a.result","method":"clickedObjectIDs"},"productRecommended":{"eventName":"Recommended Product Clicked","enabled":true,"selector":".products-upsell .product-item","method":"clickedObjectIDs"}},"filterClicked":{"eventName":"Filter Clicked","enabled":true,"method":"clickedFilters"}},"analytics":{"enabled":false,"delay":"3000","triggerOnUiInteraction":"1","pushInitialSearch":"0"},"now":1779667200,"queue":{"isEnabled":true,"nbOfJobsToRun":15,"retryLimit":3,"nbOfElementsPerIndexingJob":300},"isPreventBackendRenderingEnabled":false,"translations":{"to":"\u00e0","or":"ou","go":"Passer","popularQueries":"You can try one of the popular search queries","seeAll":"Voir tous les produits","allDepartments":"All departments","seeIn":"See products in","orIn":"or in","noProducts":"No products found","noResults":"Aucun r\u00e9sultat","refine":"Refine","selectedFilters":"Selected Filters","clearAll":"Effacer les filtres","previousPage":"Page pr\u00e9c\u00e9dente","nextPage":"Page suivante","searchFor":"Search for products","relevance":"Pertinence","categories":"Cat\u00e9gories","products":"Produits","suggestions":"Suggestions","searchBy":"Search by","searchForFacetValuesPlaceholder":"Vibro, masturbateur, plug","showMore":"Voir plus","searchTitle":"Search results for","placeholder":"Que cherchez-vous ?","addToCart":"Ajouter au panier","tryAnother":"Try another search term","noMatches":"Aucune correspondance","popularSearches":"Recherches populaires","searchAgain":"Search again","showLess":"Voir moins","seeAllAis":"Valider","brands":"Brands","display":"Afficher","resentSearches":"Recherches r\u00e9centes"},"showMoreButton":["manufacturer","parfum","parfum_2"]};</script><div x-data="initIterable" @private-content-loaded.window="initialize($event.detail.data.customer)"></div>
    <script>
            function initIterable () {
                return {
                    cookie_storage_days: "31",
                    email_param: "src_email",
                    listOfExtraParams: ['utm_domain', 'utm_medium', 'utm_source', 'utm_term'],
                    extraParams: {},
                    customerData: null,

                    initialize (customerData) {
                        this.customerData = customerData;
                        this.updateExtraParams();
                        this.initIterable();
                    },


                                        updateExtraParams () {
                        const urlParams = new URLSearchParams(window.location.search);

                        this.listOfExtraParams.forEach(p => {
                            const param = urlParams.get(p);

                            if (param) {
                                this.extraParams[p] = param;
                            }
                        })
                    },

                                        initIterable () {
                        this.customerData.isLoggedIn ? this.userHandler() :  this.guestHandler();
                        this.sessionCookiesHandler();
                    },

                                        sessionCookiesHandler () {
                        if (!hyva.getCookie('cookie_id')) {
                            this.updateAll();
                        } else if (!hyva.getCookie('session_id')) {
                            this.updateSessionId();

                            this.updateIterableRequest();
                        } else if (Object.keys(this.extraParams).length) {
                            this.updateIterableRequest();
                        }
                    },

                                        updateIterableRequest () {
                        const data = new FormData;
                        const payload = {
                            cookie_id: hyva.getCookie('cookie_id'),
                            session_id: hyva.getCookie('session_id'),
                            ...this.extraParams
                        }

                        if (hyva.getCookie('email_data')) {
                            payload.email = decodeURIComponent(hyva.getCookie('email_data'));
                        }

                        Object.entries(payload).forEach(([p, v]) => data.append(p, v));

                                                navigator.sendBeacon(`${window.BASE_URL}rest/V1/iterable/email`, data)
                    },

                    guestHandler () {
                        const urlParams = new URLSearchParams(window.location.search);
                        const emailParam = urlParams.get(this.email_param);

                        this.updateEmailCookie(emailParam);

                        document.addEventListener('emailUpdated', (e) => {
                            this.updateEmailCookie(e.detail?.detail?.email, e.detail?.detail?.forceRequest);
                        });
                    },

                    userHandler () {
                        this.updateEmailCookie(this.customerData.email);
                    },

                                        updateEmailCookie (v, forceRequest = false) {
                        const email = decodeURIComponent(hyva.getCookie('email_data'));

                        if (v && v !== email) {
                            hyva.setCookie('email_data', v, parseInt(this.cookie_storage_days));

                            if (!email && forceRequest) {
                                this.updateIterableRequest();
                            }
                            if (email) {
                                this.sessionCookiesHandler();
                                this.updateIterableRequest();
                            }
                        }
                    },

                    updateAll () {
                        this.updateCookieID();
                        this.updateSessionId();
                        this.updateIterableRequest();
                    },

                    updateCookieID () {
                        hyva.setCookie('cookie_id', this.generateUUID(), parseInt(this.cookie_storage_days));
                    },

                    updateSessionId (v) {
                        const sessionId = v || this.generateUUID();

                        hyva.setCookie('session_id', sessionId, { path: '/' });
                        window.sessionStorage.setItem('session_id', sessionId);
                    },

                    generateUUID () {
                        return window.crypto.randomUUID();
                    }
                }
            }
    </script>
</head>
<body id="html-body" class="has-header-alternative has-disclaimer-mobile has-disclaimer-desktop cms-home cms-index-index page-layout-1column">

<div
        class="ambanners ambanner-10"
    data-position="10"
    data-bannerid=""
    data-role="amasty-banner-container"
>
    </div>
    <!-- Google Tag Manager (noscript) -->
    <noscript>
        <iframe src="https://www.googletagmanager.com/ns.html?id=GTM-NLSKWL6S"
                height="0" width="0" style="display:none;visibility:hidden"></iframe>
    </noscript>
    <!-- End Google Tag Manager (noscript) -->
<script>
    (function (hyva) {
        hyva.yield = async () => {
            if (globalThis.scheduler?.yield) {
                await scheduler.yield();
            } else {
                await new Promise(resolve => setTimeout(resolve, 0));
            }
        }
    }(window.hyva = window.hyva || {}))
</script>
<input name="form_key" type="hidden" value="Hg2gJKPNrvxgcmJD" /><script>
    document.body.addEventListener('touchstart', () => {})
</script><script>
    (function (hyva) {
        const i4WaitForLCP = new Promise((resolve) => {
            if ('PerformanceObserver' in window && PerformanceObserver.supportedEntryTypes.includes('largest-contentful-paint')) {
                const observer = new PerformanceObserver(() => {
                    resolve();
                    observer.disconnect();
                });

                observer.observe({ type: 'largest-contentful-paint', buffered: true });
            } else {
                setTimeout(resolve, 500);
            }
        });

        hyva.lazyLoadScript = async (cb) => {
                        await i4WaitForLCP;
                        cb();
        }
    }(window.hyva = window.hyva || {}))
</script>
<style>
    :root {
            --black: #101820;
        --white: #fff;
        --optimo: #FF5C6E;
        --optimo-darker: #B72E56;
            --grey-medium: #3A2E31;
        --grey-dark: var(--black);
        --grey-light: #9C9494;
        --grey-ultra-light: #E1DBDA;
        --grey-1: #F7F7F7;
            --danger: #C41D2B;
        --warning: #D88735;
        --info: #4E79DB;
        --success: #9AD343;
            --primary: var(--black);
        --secondary: var(--optimo);
        --pink: #FF5C6E;
        --pink-dark: #B72E56;
        --pink-darker: #AA5D73;
        --pink-light: #EDBABF;
        --orange: #FF825A;
        --orange-darker: #B73B2D;
        --blue: #E1EFFF;
        --blue-dark: #27439D;
        --yellow: #F2BF5D;
        --yellow-light: #FFCC66;
        --yelow-darker: #FF9500;
        --red: #ef3f4c;
        --green: #5F9721;
            --bg-1: #FFF5EF;
        --bg-2: var(--white);
            --review-stars: #FFD11E;
            --client-font: Averta, serif;
        --client-font-heading: DMSerif, sans-serif;
            --font-weight-title: 500;
        --font-weight-normal: 400;
        --font-weight-light: 300;
            --page-gap: 20px;
        --page-max-width: 1318px;
            --b-spacing: 72px;
        --b-spacing-m: 48px;
            --logo: 153px;
        --logo-d: 233px;
            --cart-radius: 4px;
        --button-radius: 64px;
        --input-radius: 24px;
        --form-radius: 60px
    }

    @media screen and (min-width: 1200px) {
        :root {
            --logo-d: 325px;
        }
    }
</style>
<div class="page-wrapper min-h-lvh flex flex-col"><header class="page-header header header--alternative sticky top-0 w-full bg-2 z-50 transition-all duration-500"><script>
    function initHeader () {
        return {
            sticky: false,
            isHidden: false,
            scrollY: 0,
            header: null,
            init () {
                this.header = this.$root.closest('header');
                hyva.lazyLoadScript(this.onScroll.bind(this));
            },
            updateUi () {
                this.header.classList.toggle('lg:!top-0', this.scrollY < 40 || !this.$refs.disDeskTxt);
                this.header.classList.toggle('disclaimer-hidden', this.scrollY > 40 && !!this.$refs.disDeskTxt);
                this.header.style.top = this.getTop();
            },
            onScroll () {
                this.sticky = window.scrollY >= this.$root.offsetHeight;
                this.isHidden = window.scrollY >= this.scrollY;
                this.scrollY = window.scrollY;

                this.updateUi();
            },
            getTop() {
                let top = 0;

                if (this.isHidden) {
                    top = `-${this.$root.offsetHeight}px`;
                } else if (this.sticky) {
                    top = `-${this.$refs.disclaimer?.offsetHeight || 0}px`;
                }

                return top;
            }
        }
    }
</script>
<div
    class="header"
    x-data="initHeader()"
    @scroll.document="onScroll"
>
    <div class="relative bg-2 z-30">
            <script>
            function disclaimer() {
                return {
                    options: {
                        speed: 50                    },
                    cycle: 0,

                    init () {
                        new ResizeObserver(this.updateConfig.bind(this)).observe(this.$refs.disclaimerWrapper);

                        this.$refs.disclaimerWrapper.addEventListener(
                            'animationiteration',
                            this.onCycleEnd.bind(this),
                            { once: true }
                        );

                        this.$refs.disclaimerWrapper.style.willChange = 'transform';
                    },

                    onCycleEnd () {
                                                this.cycle = 1;
                        this.updateConfig();
                    },

                    updateConfig () {
                        const wrapper = this.$refs.disclaimerWrapper;
                        const scrollWidth = wrapper.scrollWidth;
                        const offsetWidth = this.$refs.disclaimer.offsetWidth;
                                                const start = this.cycle ? offsetWidth : 0;
                                                const end = this.cycle ? scrollWidth : scrollWidth + offsetWidth;
                                                const speed = scrollWidth / this.options.speed;

                        if (this.cycle) {
                            wrapper.style.animation = 'none';
                            wrapper.offsetHeight;
                            wrapper.style.animation = '';
                        }

                        wrapper.style.setProperty('--ticker-start', `${start}px`);
                        wrapper.style.setProperty('--ticker-end', `-${end}px`);
                        wrapper.style.setProperty('--ticker-speed', `${speed}s`);

                        this.$root.classList.add('is-animated');

                    }
                }
            }
        </script>
        <div class="disclaimer-container disclaimer flex items-center duration-500 opacity-1 text-xs md:text-sm !h-8 lg:!h-10 h-10"
         style="--text-color-mobile:#ffffff;                --text-color-desktop:#ffffff;                --bg-color-mobile:#C6376B;                --bg-color-desktop:#C6376B;"
                    x-data="disclaimer()"
            >
        <div class="container overflow-hidden" x-ref="disclaimer">
            <div class="disclaimer-wrapper w-fit flex justify-center items-center mx-auto" x-ref="disclaimerWrapper">
                                    <p class="m-auto truncate text-center hidden lg:block"
                       x-ref="disDeskTxt">
                        <div class="items-center hidden lg:flex" style="font-size:1rem">   <span style="width:315px">Choisi par des <strong>millions de Français : 4,3/5</strong>   </span>   <span style="width:110px">     <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 200 50">       <svg viewbox="0 0 187 35" width="187" x="6.5" y="-7.5" preserveaspectratio="xMidYMax">         <g transform="translate(0 0)">           <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 100 100" width="35">             <rect x="0" y="0" width="100" height="100" fill="#C7DEFF" />             <mask id="Mask1">               <rect x="0" y="0" width="100" height="100" fill="white" />             </mask>             <rect x="0" y="0" width="100" height="100" fill="#006FF5" mask="url(#Mask1)" />           </svg>           <svg xmlns="http://www.w3.org/2000/svg" width="24" x="5.5" viewbox="0 0 101 92">             <path fill="white" d="m53.604 2.602 9.077 27.235c.444 1.33 1.705 2.218 3.142 2.218h30.875c3.201 0 4.533 3.993 1.94 5.825L73.65 55.555a3.189 3.189 0 0 0-1.203 3.595l9.544 28.613c.993 2.965-2.489 5.428-5.082 3.596L52.225 73.883a3.828 3.828 0 0 0-4.439 0L23.091 91.37c-2.582 1.833-6.063-.63-5.082-3.595l9.544-28.613c.444-1.33-.047-2.779-1.203-3.596L1.374 37.87c-2.582-1.833-1.261-5.826 1.94-5.826h30.874c1.426 0 2.699-.898 3.143-2.218L46.408 2.59c1.145-3.455 6.04-3.455 7.196.012Z" />           </svg>         </g>         <g transform="translate(38 0)">           <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 100 100" width="35">             <rect x="0" y="0" width="100" height="100" fill="#C7DEFF" />             <mask id="Mask2">               <rect x="0" y="0" width="100" height="100" fill="white" />             </mask>             <rect x="0" y="0" width="100" height="100" fill="#006FF5" mask="url(#Mask2)" />           </svg>           <svg xmlns="http://www.w3.org/2000/svg" width="24" x="5.5" viewbox="0 0 101 92">             <path fill="white" d="m53.604 2.602 9.077 27.235c.444 1.33 1.705 2.218 3.142 2.218h30.875c3.201 0 4.533 3.993 1.94 5.825L73.65 55.555a3.189 3.189 0 0 0-1.203 3.595l9.544 28.613c.993 2.965-2.489 5.428-5.082 3.596L52.225 73.883a3.828 3.828 0 0 0-4.439 0L23.091 91.37c-2.582 1.833-6.063-.63-5.082-3.595l9.544-28.613c.444-1.33-.047-2.779-1.203-3.596L1.374 37.87c-2.582-1.833-1.261-5.826 1.94-5.826h30.874c1.426 0 2.699-.898 3.143-2.218L46.408 2.59c1.145-3.455 6.04-3.455 7.196.012Z" />           </svg>         </g>         <g transform="translate(76 0)">           <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 100 100" width="35">             <rect x="0" y="0" width="100" height="100" fill="#C7DEFF" />             <mask id="Mask3">               <rect x="0" y="0" width="100" height="100" fill="white" />             </mask>             <rect x="0" y="0" width="100" height="100" fill="#006FF5" mask="url(#Mask3)" />           </svg>           <svg xmlns="http://www.w3.org/2000/svg" width="24" x="5.5" viewbox="0 0 101 92">             <path fill="white" d="m53.604 2.602 9.077 27.235c.444 1.33 1.705 2.218 3.142 2.218h30.875c3.201 0 4.533 3.993 1.94 5.825L73.65 55.555a3.189 3.189 0 0 0-1.203 3.595l9.544 28.613c.993 2.965-2.489 5.428-5.082 3.596L52.225 73.883a3.828 3.828 0 0 0-4.439 0L23.091 91.37c-2.582 1.833-6.063-.63-5.082-3.595l9.544-28.613c.444-1.33-.047-2.779-1.203-3.596L1.374 37.87c-2.582-1.833-1.261-5.826 1.94-5.826h30.874c1.426 0 2.699-.898 3.143-2.218L46.408 2.59c1.145-3.455 6.04-3.455 7.196.012Z" />           </svg>         </g>         <g transform="translate(114 0)">           <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 100 100" width="35">             <rect x="0" y="0" width="100" height="100" fill="#C7DEFF" />             <mask id="Mask4">               <rect x="0" y="0" width="100" height="100" fill="white" />             </mask>             <rect x="0" y="0" width="100" height="100" fill="#006FF5" mask="url(#Mask4)" />           </svg>           <svg xmlns="http://www.w3.org/2000/svg" width="24" x="5.5" viewbox="0 0 101 92">             <path fill="white" d="m53.604 2.602 9.077 27.235c.444 1.33 1.705 2.218 3.142 2.218h30.875c3.201 0 4.533 3.993 1.94 5.825L73.65 55.555a3.189 3.189 0 0 0-1.203 3.595l9.544 28.613c.993 2.965-2.489 5.428-5.082 3.596L52.225 73.883a3.828 3.828 0 0 0-4.439 0L23.091 91.37c-2.582 1.833-6.063-.63-5.082-3.595l9.544-28.613c.444-1.33-.047-2.779-1.203-3.596L1.374 37.87c-2.582-1.833-1.261-5.826 1.94-5.826h30.874c1.426 0 2.699-.898 3.143-2.218L46.408 2.59c1.145-3.455 6.04-3.455 7.196.012Z" />           </svg>         </g>         <g transform="translate(152 0)">           <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 100 100" width="35">             <rect x="0" y="0" width="100" height="100" fill="#C7DEFF" />             <mask id="Mask5">               <rect x="0" y="0" width="33" height="100" fill="white" />             </mask>             <rect x="0" y="0" width="100" height="100" fill="#006FF5" mask="url(#Mask5)" />           </svg>           <svg xmlns="http://www.w3.org/2000/svg" width="24" x="5.5" viewbox="0 0 101 92">             <path fill="white" d="m53.604 2.602 9.077 27.235c.444 1.33 1.705 2.218 3.142 2.218h30.875c3.201 0 4.533 3.993 1.94 5.825L73.65 55.555a3.189 3.189 0 0 0-1.203 3.595l9.544 28.613c.993 2.965-2.489 5.428-5.082 3.596L52.225 73.883a3.828 3.828 0 0 0-4.439 0L23.091 91.37c-2.582 1.833-6.063-.63-5.082-3.595l9.544-28.613c.444-1.33-.047-2.779-1.203-3.596L1.374 37.87c-2.582-1.833-1.261-5.826 1.94-5.826h30.874c1.426 0 2.699-.898 3.143-2.218L46.408 2.59c1.145-3.455 6.04-3.455 7.196.012Z" />           </svg>         </g>       </svg>     </svg>   </span>   <span style="width:400px"></span>   <span style="width:800px">Livraison <strong>gratuite</strong> dès 59 € </span>   <span style="width:180px">Livraison <strong>100% discrète</strong>   </span> </div>                    </p>
                                                    <p class="m-auto truncate text-center lg:hidden">
                        <div class="flex items-center lg:hidden">   <span style="width:235px">Choisi par des <strong>millions de Français : 4,3/5</strong>   </span>   <span style="width:110px">     <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 200 50">       <svg viewbox="0 0 187 35" width="187" x="6.5" y="-7.5" preserveaspectratio="xMidYMax">         <g transform="translate(0 0)">           <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 100 100" width="35">             <rect x="0" y="0" width="100" height="100" fill="#C7DEFF" />             <mask id="Mask1Mobile">               <rect x="0" y="0" width="100" height="100" fill="white" />             </mask>             <rect x="0" y="0" width="100" height="100" fill="#006FF5" mask="url(#Mask1Mobile)" />           </svg>           <svg xmlns="http://www.w3.org/2000/svg" width="24" x="5.5" viewbox="0 0 101 92">             <path fill="white" d="m53.604 2.602 9.077 27.235c.444 1.33 1.705 2.218 3.142 2.218h30.875c3.201 0 4.533 3.993 1.94 5.825L73.65 55.555a3.189 3.189 0 0 0-1.203 3.595l9.544 28.613c.993 2.965-2.489 5.428-5.082 3.596L52.225 73.883a3.828 3.828 0 0 0-4.439 0L23.091 91.37c-2.582 1.833-6.063-.63-5.082-3.595l9.544-28.613c.444-1.33-.047-2.779-1.203-3.596L1.374 37.87c-2.582-1.833-1.261-5.826 1.94-5.826h30.874c1.426 0 2.699-.898 3.143-2.218L46.408 2.59c1.145-3.455 6.04-3.455 7.196.012Z" />           </svg>         </g>         <g transform="translate(38 0)">           <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 100 100" width="35">             <rect x="0" y="0" width="100" height="100" fill="#C7DEFF" />             <mask id="Mask2Mobile">               <rect x="0" y="0" width="100" height="100" fill="white" />             </mask>             <rect x="0" y="0" width="100" height="100" fill="#006FF5" mask="url(#Mask2Mobile)" />           </svg>           <svg xmlns="http://www.w3.org/2000/svg" width="24" x="5.5" viewbox="0 0 101 92">             <path fill="white" d="m53.604 2.602 9.077 27.235c.444 1.33 1.705 2.218 3.142 2.218h30.875c3.201 0 4.533 3.993 1.94 5.825L73.65 55.555a3.189 3.189 0 0 0-1.203 3.595l9.544 28.613c.993 2.965-2.489 5.428-5.082 3.596L52.225 73.883a3.828 3.828 0 0 0-4.439 0L23.091 91.37c-2.582 1.833-6.063-.63-5.082-3.595l9.544-28.613c.444-1.33-.047-2.779-1.203-3.596L1.374 37.87c-2.582-1.833-1.261-5.826 1.94-5.826h30.874c1.426 0 2.699-.898 3.143-2.218L46.408 2.59c1.145-3.455 6.04-3.455 7.196.012Z" />           </svg>         </g>         <g transform="translate(76 0)">           <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 100 100" width="35">             <rect x="0" y="0" width="100" height="100" fill="#C7DEFF" />             <mask id="Mask3Mobile">               <rect x="0" y="0" width="100" height="100" fill="white" />             </mask>             <rect x="0" y="0" width="100" height="100" fill="#006FF5" mask="url(#Mask3Mobile)" />           </svg>           <svg xmlns="http://www.w3.org/2000/svg" width="24" x="5.5" viewbox="0 0 101 92">             <path fill="white" d="m53.604 2.602 9.077 27.235c.444 1.33 1.705 2.218 3.142 2.218h30.875c3.201 0 4.533 3.993 1.94 5.825L73.65 55.555a3.189 3.189 0 0 0-1.203 3.595l9.544 28.613c.993 2.965-2.489 5.428-5.082 3.596L52.225 73.883a3.828 3.828 0 0 0-4.439 0L23.091 91.37c-2.582 1.833-6.063-.63-5.082-3.595l9.544-28.613c.444-1.33-.047-2.779-1.203-3.596L1.374 37.87c-2.582-1.833-1.261-5.826 1.94-5.826h30.874c1.426 0 2.699-.898 3.143-2.218L46.408 2.59c1.145-3.455 6.04-3.455 7.196.012Z" />           </svg>         </g>         <g transform="translate(114 0)">           <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 100 100" width="35">             <rect x="0" y="0" width="100" height="100" fill="#C7DEFF" />             <mask id="Mask4Mobile">               <rect x="0" y="0" width="100" height="100" fill="white" />             </mask>             <rect x="0" y="0" width="100" height="100" fill="#006FF5" mask="url(#Mask4Mobile)" />           </svg>           <svg xmlns="http://www.w3.org/2000/svg" width="24" x="5.5" viewbox="0 0 101 92">             <path fill="white" d="m53.604 2.602 9.077 27.235c.444 1.33 1.705 2.218 3.142 2.218h30.875c3.201 0 4.533 3.993 1.94 5.825L73.65 55.555a3.189 3.189 0 0 0-1.203 3.595l9.544 28.613c.993 2.965-2.489 5.428-5.082 3.596L52.225 73.883a3.828 3.828 0 0 0-4.439 0L23.091 91.37c-2.582 1.833-6.063-.63-5.082-3.595l9.544-28.613c.444-1.33-.047-2.779-1.203-3.596L1.374 37.87c-2.582-1.833-1.261-5.826 1.94-5.826h30.874c1.426 0 2.699-.898 3.143-2.218L46.408 2.59c1.145-3.455 6.04-3.455 7.196.012Z" />           </svg>         </g>         <g transform="translate(152 0)">           <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 100 100" width="35">             <rect x="0" y="0" width="100" height="100" fill="#C7DEFF" />             <mask id="Mask5Mobile">               <rect x="0" y="0" width="33" height="100" fill="white" />             </mask>             <rect x="0" y="0" width="100" height="100" fill="#006FF5" mask="url(#Mask5Mobile)" />           </svg>           <svg xmlns="http://www.w3.org/2000/svg" width="24" x="5.5" viewbox="0 0 101 92">             <path fill="white" d="m53.604 2.602 9.077 27.235c.444 1.33 1.705 2.218 3.142 2.218h30.875c3.201 0 4.533 3.993 1.94 5.825L73.65 55.555a3.189 3.189 0 0 0-1.203 3.595l9.544 28.613c.993 2.965-2.489 5.428-5.082 3.596L52.225 73.883a3.828 3.828 0 0 0-4.439 0L23.091 91.37c-2.582 1.833-6.063-.63-5.082-3.595l9.544-28.613c.444-1.33-.047-2.779-1.203-3.596L1.374 37.87c-2.582-1.833-1.261-5.826 1.94-5.826h30.874c1.426 0 2.699-.898 3.143-2.218L46.408 2.59c1.145-3.455 6.04-3.455 7.196.012Z" />           </svg>         </g>       </svg>     </svg>   </span>   <span style="width:400px"></span>   <span style="width:800px">Livraison <strong>gratuite</strong> dès 59 € </span>   <span style="width:180px">Livraison <strong>100% discrète</strong>   </span> </div>                    </p>
                                                                    <span x-ref="anchor"></span>
                            </div>
        </div>
    </div>
<div class="container flex items-center lg:justify-between lg:gap-2 pb-2 px-2 sm:px-5 pt-3.5 lg:py-0 flex-wrap lg:flex-nowrap"><div
    class="m-menu lg:hidden relative"
>
    <button type="button" class="!mr-2.5 sm:!mr-6" @click="$dispatch('toggle-menu')"
            aria-label="Open&#x20;menu"
            aria-haspopup="menu"
    >
        <svg class="size-6">
            <use href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/i4-sprite.svg#ico-menu"></use>
        </svg>
    </button>
</div>
<div class="flex min-h-[54px] lg:min-h-[72px] items-center">
<!--
IMPORTANT !

You will probably have a merge conflict with the obfuscation ticket,
In the obfuscation ticket, you have a version with a "<a>" tag and an other one
with "<button>" tag, can you replace the "<img>" by the "<picture>" written in
this current ticket in each case ("if obfuscation" and "else") please ?
-->

<a
    class="logo"
    href="https://www.espaceplaisir.fr/"
    title=""
    aria-label="Go&#x20;to&#x20;Home&#x20;page"
>
    <picture>
                    <source media="(width <= 1024px)" srcset="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/logo_mobile.svg">
                            <source media="(width >= 1200px)" srcset="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/logo_desktop.svg">
                <img
            class="w-logo lg:w-logo-d"
            src="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/logo.svg"
            title=""
            alt=""
            width="0"
            height="0"
        />
    </picture>
    <strong class="hidden">
            </strong>
</a>
</div>
<div
    x-data="{     closeSearch () {                if (typeof algoliaAutocomplete !== 'undefined') {                    algoliaAutocomplete.setQuery('');                    algoliaAutocomplete.setIsOpen(false);                }     }    }" @click="$el.classList.add('active')"
    @click.outside="closeSearch"
    class="search-form__wrapper lg:w-[547px] lg:ml-0 w-full flex align-center order-last lg:order-none print:hidden relative pt-2 lg:py-5 transition-all"
>
    <div
        class="w-full print:hidden"
        data-search-btn
>
        <div class="search-form lg:top-0 lg:relative mx-auto text-black left-0 z-10 flex">
            <div class="mini-search flex relative w-full">
                <div class="mini-search__field text-base cursor-pointer flex items-center min-h-0 w-full                            pl-4 pr-1.5 py-3 lg:py-2 transition appearance-none border-grey-dark rounded-input                            border h-10 placeholder:text-black"
                >
                    Vibro,&#x20;masturbateur,&#x20;plug                </div>
                <button class="mini-search__icon inline-block no-underline hover:text-black absolute top-1 right-1.5">
                <span class="sr-only label">
                    Chercher                </span>
                    <svg class="icon-search p-1 rounded-btn size-8"
                         aria-hidden="true">
                        <use href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/i4-sprite.svg#ico-search"></use>
                    </svg>
                </button>
            </div>
        </div>
    </div>
    <div class="w-full absolute">
        <div id="algolia-autocomplete-container"></div>
    </div>
</div>
<div class="header-links-container flex justify-end gap-2 sm:gap-4 lg:gap-6 grow lg:grow-0"><a tabindex="0" role="button" aria-label="Notifications" href="#" class="wisp flex justify-center items-center">
    <svg class="size-6"
        aria-hidden="true">
        <use href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/i4-sprite.svg#ico-bell"></use>
    </svg>
</a>
<div class="items-center justify-center lg:flex">
    <a href="https&#x3A;&#x2F;&#x2F;www.espaceplaisir.fr&#x2F;storelocator"
       class="flex flex-col items-center relative header-link catalog" >
        <svg class="size-6 mr-1"
            aria-hidden="true">
            <use href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/i4-sprite.svg#ico-store"></use>
        </svg>
    </a>
</div>


<div
    x-data="{ open: false }"
    class="hidden relative whitespace-nowrap text-sm items-center px-2 lg:px-4 lg:justify-center lg:flex           header-link my-account"
    @mouseenter="open = true"
    @mouseleave="open = false"
>
    <a
        href="https&#x3A;&#x2F;&#x2F;www.espaceplaisir.fr&#x2F;customer&#x2F;account&#x2F;login&#x2F;"
        class="flex flex-col items-center"
        :class="{'text-pink': open}"
        @click.outside="open=false"
        :aria-expanded="open ? 'true' : 'false'"
        aria-label="Compte"
        aria-haspopup="true"
        @keydown.window.escape="open=false"
    >
        <svg class="size-6"
             aria-hidden="true">
            <use href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/i4-sprite.svg#ico-customer"></use>
        </svg>

        <div
            class="h-1 transition-all absolute -bottom-3.5 rounded-btn"
            :class="{'bg-pink w-full': open,'w-0': !open}"
        ></div>
    </a>
    <template x-if="open" data-customer-links>
        <div class="pt-4 absolute top-full rounded-cart-radius right-0 z-20 overflow-auto lg:w-56 w-full">
            <nav class="capitalize px-4 shadow-box1 bg-2">
    </nav>        </div>
    </template>
</div>

            <a class="header-customer-link flex items-center lg:border-b border-grey-ultra-light lg:pl-2 py-3 login-link"
        onclick="hyva?.setCookie('login_redirect',window.location.href,1)"
        href="https://www.espaceplaisir.fr/customer/account/login/">
                <svg class="mr-2 size-4 icon-customer"
                aria-hidden="true">
                <use href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/i4-sprite.svg#ico-customer"></use>
            </svg>
            <span class="text-block">
                Se connecter            </span>
            </a>
    
    <script>
        function initGuestWishlist() {
            return {
                allowGuestWishlist: 1,
                cookieName: "guest_wishlist_cookie",
                cookieValue: "guest_wishlist_cookie",
                showIconWishlist: null,

                isGuestWishlistAllowed(detail) {
                    this.showIconWishlist =
                        !detail?.data?.customer?.isLoggedIn &&
                        this.allowGuestWishlist &&
                        (!this.cookieName || !this.cookieValue || hyva.getCookie(this.cookieName) === this.cookieValue);
                }
            }
        }
    </script>
    <div class="hidden items-center justify-center"
         x-data="initGuestWishlist()"
         @private-content-loaded.window.once="isGuestWishlistAllowed($event.detail)"
         :class="{ '!flex': showIconWishlist }"
    >
        <a class="flex flex-col items-center relative header-link wishlist" href="https://www.espaceplaisir.fr/guest-wishlist/guest_index/">
            <svg class="h-6 w-6 mr-1">
                <use href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/i4-sprite.svg#ico-wishlist"></use>
            </svg>
            <template x-if="$store?.private?.wishlistCount">
                <div class="flex items-center justify-center absolute -right-3 lg:-right-1 -top-2.5 py-1 rounded-full bg-optimo w-5 h-5">
                    <span class="text-xxs font-semibold text-black" x-text="$store?.private?.wishlistCount"></span>
                </div>
            </template>
            <span class="hidden lg:block text-xs whitespace-nowrap header-label">Mes Favoris</span>
        </a>
    </div>
<div class="flex items-center">
    <a         class="relative flex flex-col items-center pl-2 lg:pl-4 header-link cart"
        href="https://www.espaceplaisir.fr/checkout/cart/"
        x-data="{loading: false,count: 0}"
        @private-content-loaded.window="count = $event.detail.data.cart?.summary_count"
        @cart-loading.window="loading = $event.detail.data"
    >

        <svg class="size-6"
             aria-hidden="true">
            <use href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/i4-sprite.svg#ico-cart"></use>
        </svg>
        <template x-if="count || loading">
            <div
                class="counter-container transition-all flex items-center justify-center absolute -right-3 lg:-right-1.5 -top-2.5 py-1 rounded-full bg-optimo w-5 h-5">
                <span class="text-xxs font-semibold text-black counter-container__number" x-text="count"></span>
                <template x-if="loading">
                    <img
                        class="absolute bg-2"
                        src="https&#x3A;&#x2F;&#x2F;www.espaceplaisir.fr&#x2F;static&#x2F;version1779257511&#x2F;frontend&#x2F;Interactiv4&#x2F;espaceplaisir-hyva&#x2F;fr_FR&#x2F;images&#x2F;loader.gif"
                        alt="loading cart"
                    />
                </template>
            </div>
        </template>
    </a>
</div>

</div></div>
<nav
    class="navigation t-nav__container hidden lg:flex bg-white  uppercase items-start container"
    data-top-nav
 data-action="navigation"
>
    <ul class="navigation__list lg:mb-px lg:py-2 flex flex-col uppercase flex-wrap text-sm lg:text-xs xl:text-sm  font-semibold lg:items-center lg:gap-2 xl:gap-4 w-full lg:flex-row">
        <li class="!border-t-0 !pt-0.5 !pb-0">
            <button class="relative w-full pb-3 lg:pb-0 lg:w-48 xl:min-w-60 items-center uppercase group font-semibold flex gap-2 lg:text-optimo separator__line">
                <div @click="$dispatch('toggle-menu')"
                    class="lg:hidden flex w-full menu-wrapper-btn">
                    <span class="block w-full text-left">Tous vos produits</span>
                </div>
                <div @click="$dispatch('toggle-menu')"
                     class="hidden lg:flex items-center gap-2 menu-wrapper-btn">
                    <svg height="28" width="28"
                        class="block menu-wrapper-btn__icon">
                        <use href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/i4-sprite.svg#ico-menu"></use>
                    </svg>
                    <span class="lg:mx-1 menu-wrapper-btn__text">Tous vos produits</span>
                </div>
            </button>
        </li>

        <style>.cmsb2-absolute {
position: absolute
}
.cmsb2--bottom-1 {
bottom: -0.25rem
}
.cmsb2-bottom-0 {
bottom: 0px
}
.cmsb2-flex {
display: flex
}
.cmsb2-hidden {
display: none
}
.cmsb2-h-0\.5 {
height: 0.125rem
}
.cmsb2-h-4 {
height: 1rem
}
.cmsb2-w-0 {
width: 0px
}
.cmsb2-w-4 {
width: 1rem
}
.cmsb2-items-center {
align-items: center
}
.cmsb2-gap-2 {
gap: 0.5rem
}
.cmsb2-transition-all {
transition-property: all;
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
transition-duration: 150ms
}
.cmsb2-after\:\!pr-0::after {
content: var(--tw-content);
padding-right: 0px !important
}
.cmsb2-group:hover .group-hover\:w-full {
width: 100%
}
@media (min-width: 1024px) {
.cmsb2-lg\:block {
display: block
}
.cmsb2-lg\:h-7 {
height: 1.75rem
}
.cmsb2-lg\:w-7 {
width: 1.75rem
}
}</style>
<li class="cmsb2-group" style="font-weight:700;background-color:#c6376b;color:#FFFFFF;border-radius:4px;padding:4px 8px;">
<a href="https://www.espaceplaisir.fr/marques/womanizer" style="background-color: #c6376b;">Womanizer</a>
</li>
<li class="cmsb2-group">
    <a href="https://www.espaceplaisir.fr/1103-promotions">Promotions</a>
</li>
<li class="cmsb2-group">
    <a href="https://www.espaceplaisir.fr/939-sextoys">Sextoys</a>
</li>
<li class="cmsb2-group">
    <a href="https://www.espaceplaisir.fr/1056-lingerie-sexy-femme">Lingerie</a>
</li>
<li class="cmsb2-group">
    <a href="https://www.espaceplaisir.fr/1189-bdsm">BDSM</a>
</li>
<li class="cmsb2-group">
    <a href="https://www.espaceplaisir.fr/991-bien-etre">Bien-être</a>
</li>
<li class="cmsb2-group">
    <a href="https://www.espaceplaisir.fr/1267-aphrodisiaques">Aphrodisiaques</a>
</li>
<li class="cmsb2-group">
    <a href="https://www.espaceplaisir.fr/1349-jeux-et-librairie">Jeux</a>
</li>
<li class="cmsb2-group">
    <a href="https://www.espaceplaisir.fr/marques">Marques</a>
</li>
<li class="cmsb2-group">
    <a href="https://www.espaceplaisir.fr/conseils">Conseils</a>
</li>

<!--
 // Elements according to the design
<li class="separator__line cmsb2-after:!pr-0 cmsb2-group">
 <a href="https://www.espaceplaisir.fr/#">idées cadeaux</a>
<i class="cmsb2-hidden cmsb2-absolute cmsb2--bottom-1 cmsb2-lg:block cmsb2-h-0.5 cmsb2-w-0 cmsb2-transition-all group-hover:w-full bg-optimo-darker"></i>
</li>
<li class="cmsb2-flex cmsb2-gap-2 text-optimo cmsb2-items-center cmsb2-group">
 <svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 28 28" class="cmsb2-w-4 cmsb2-h-4 cmsb2-lg:h-7 cmsb2-lg:w-7 text-optimo" role="img"><path d="M14.1318 6.5306c.035-.0816.0234-.07.105-.2215.1049-.2099.2215-.4197.3847-.6296.5827-.8394 1.457-1.4806 2.4012-1.772 1.0956-.3382 1.9699-.1516 2.5993.0815.7461.3265.5712.513-.2214.5014-.5712.0233-1.3288.1748-2.1098.4896-.5129.2099-.9908.5247-1.3755.9327-.1865.2099-.3613.4314-.5012.6879-.07.1632-.1282.1982-.2215.478-.0699.2914-.1981.4663-.2331.8627-.2331 1.7605-.5712 1.6672-.746 1.8071-.1632.07-.408.0466-.4897 0-.3496-.1282-.5944-.7695-.641-1.2591-.0466-.3265-.1283-.5596-.1865-.8511-.0583-.2915-.1399-.5363-.2564-.7228-.1167-.2332-.2681-.4314-.408-.6296-.3148-.3964-.7111-.7228-1.1424-.9677-.8742-.5013-1.9583-.5946-2.9957-.3497-2.0748.3847-3.427 2.6465-3.0423 4.885.2331 2.2967 1.6435 4.4302 3.2172 6.4355 1.6202 1.9936 3.4736 3.9056 5.4086 5.806.4313.4313.2331.2331.2798.2915.0465-.0467-.1399.1398.2913-.2681.6062-.5714 1.1774-1.1659 1.7601-1.7489 1.1541-1.1775 2.2614-2.4017 3.2989-3.6607l.4312-.548c1.4804-1.9704 2.8909-4.1971 3.1473-6.4822.1399-1.2825.0233-2.3085-.2798-3.1595-.1865-.4897-.2681-.7695-.1282-.8395.1166-.0583.4779.0816.9092.618.6061.7228 1.259 2.0868 1.0841 3.6957-.0234.3498-.07.6879-.1516 1.0027-.5828 2.6582-2.1098 4.8383-3.6368 6.8319l-.0466.07c-.408.5246-.8393 1.0143-1.2706 1.5157-.6177.6878-1.1074 1.2357-1.6086 1.7487-.4779.5013-.9675.9909-1.457 1.4807l-.746.7228-.3963.3847c-.2449.2099-.478.513-.7344.6412-.4896.2566-1.0841.0467-1.5153-.513l-.816-.8277-1.4338-1.4923c-1.8883-2.0169-3.7533-4.0805-5.2687-6.5056-.8975-1.4456-1.6435-3.0777-1.83-4.8616-.0933-.8627-.105-1.807.1748-2.7048.2564-.8977.7344-1.7255 1.3871-2.4017.6411-.6645 1.492-1.1658 2.4012-1.3873.8626-.2215 1.8068-.2682 2.716-.0816.9092.1982 1.7601.6528 2.4362 1.294.3381.3149.6178.688.8743 1.0843.0699.0933.1049.1982.1631.3031l.0583.1166.0583.1633.0466.1165c.0467.1283.0817.1982.0817.1982s.0698-.1049.1747-.373v.0116Z"/><title>menu/ico-heart</title></svg>

 <a href="https://www.espaceplaisir.fr/#">coffret saint-valentin</a>
<i class="cmsb2-hidden cmsb2-absolute cmsb2-bottom-0 cmsb2-lg:block cmsb2-h-0.5 cmsb2-w-0 cmsb2-transition-all group-hover:w-full bg-optimo-darker"></i>
</li>
<li class="cmsb2-flex cmsb2-gap-2 cmsb2-items-center cmsb2-group">
 <svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 20 24" class="cmsb2-w-4 cmsb2-h-4 cmsb2-lg:w-7 cmsb2-lg:h-7" role="img"><path d="M7.1153 5.3218c-.5014.9688-1.0612 1.926-1.7492 2.813-.3498.4436-.723.8755-1.1312 1.284-.2099.1985-.4431.3852-.6647.5836-.3265.2452-.2798.1985-.3148.2218-.0234 0-.0583.0234-.0817.035l.0583.0584.035.035.2682.2451c.21.2101.4315.4086.6298.6187a18.8062 18.8062 0 0 1 2.1923 2.7197c.3149.4902.618.9921.898 1.4941l.3498.712.07.1751c.035.0817.0466.2101.105.2801l.1399-.2451.2682-.4903.618-1.0972c.2566-.4435.5248-.8871.793-1.3306.5598-.8871 1.1895-1.7859 1.9942-2.5563.4781-.4319.9795-.6303 1.411-.712.5131-.1051.5481.1867.2332.5486-.2215.2684-.4431.6653-.8046 1.0388-.9213 1.0505-1.6909 2.2995-2.414 3.6535-.3848.7471-.6064 1.1322-1.3177 2.6613-.14.3619-.3265.502-.4898.7704-.1516.1168-.3148.2335-.4198.2918-.0117.0234-.1166.0234-.1633 0-.035-.0233-.07-.0583-.105-.0817l-.2215-.1867-.2216-.1868-.1166-.0934-.1283-.2451c-.1282-.3035-.2565-.607-.3964-.9104-.1167-.3035-.3032-.677-.3732-.7704-.1633-.3269-.3615-.642-.5598-.9572-.4081-.642-.863-1.2839-1.3877-1.8909-.5247-.6187-1.0962-1.214-1.7142-1.7859l-.2333-.2101-.1166-.1051c-.0583-.0583-.1632-.14-.2449-.1984l-.513-.4085-.4432-.4202c-.0816-.1284-.14-.2685-.1633-.3852 0-.0584-.0233-.0934-.0233-.1635 0-.0933.0117-.14.07-.1984.1866-.2334.3265-.4786.5597-.7237.1866-.105.3965-.21.5714-.3268l.3849-.2802c.1516-.1283.3032-.2801.4664-.4318a9.4192 9.4192 0 0 0 .9213-1.074c.5598-.712 1.0495-1.494 1.481-2.3227.2216-.4086.4315-.8288.618-1.2607l.2216-.4902.2683-.677.5247-1.3307c.0933-.3151.21-.3618.3149-.4552.1866-.1751.3032-.2101.4315-.2568l.1516-.035c.1516 0 .1865.0117.2215.0233.0817.0234.21.0817.3615.1751.0817.0584.175.1634.2566.2451.0816.07.1632.3269.2449.4903.1749.712.3965 1.3073.6064 1.9026l.3848 1.0622c.2799.782.3265 1.4824.3848 2.0427.0817.6653-.2798.8404-.8396.2801-.3848-.3968-.898-.9571-1.2478-1.7275-.07-.1634-.1516-.3385-.2215-.502l-.0583-.14-.0117-.035L7.71 4.061s-.0234-.0233-.035 0v.0934c-.0933.2101-.175.4086-.2566.5837-.105.21-.1982.4085-.2915.607l-.0117-.0234ZM17.0391 4.5157c.0817-.1634-.2215.3736-.4548.6654-.1166.1634-.2565.3268-.3965.4785l-.2099.2218h-.0349c-.07.0467-.0817.035 0 .1518.2682.2918.5247.5953.7463.922l.1632.2452c.035.0584.14.2218.1167.1868l.0466.105.0467.14.0233.0818.035-.035.1632-.2451.2682-.4436c.2216-.3502.4782-.7237.8397-1.0272.2099-.175.4781-.21.688-.1984.2566 0 .2915.2334.2216.4202-.0467.14-.0817.3268-.2099.4669-.1866.2218-.3499.4669-.5131.7354-.175.3035-.2566.4435-.5598 1.0505-.1283.2685-.2566.5486-.3965.7937-.1399.2101-.3032.3152-.4081.3852-.0584.0234-.1167.0934-.1866.0467l-.1633-.0817s-.1516-.1167-.2216-.175l-.1282-.1051-.1283-.2218a6.5378 6.5378 0 0 0-.3499-.7004c-.0583-.105-.1282-.245-.1982-.3268l-.1166-.1634c-.1633-.2101-.3499-.4319-.5481-.6303l-.1516-.1518-.2099-.1984c-.1166-.105-.2332-.2101-.3615-.3035-.14-.105-.2682-.1984-.3382-.3151-.1399-.2452-.1983-.3736-.1399-.572.0466-.0934 0-.1517.1166-.2685.1166-.105.1982-.2217.3265-.3268.0933-.07.1982-.1517.3032-.2334l.1633-.1168.0583-.07a3.1673 3.1673 0 0 0 .2215-.2918 4.9492 4.9492 0 0 0 .2916-.3969c.0933-.14.1632-.2218.3615-.6536.1749-.3269.3148-.7237.4664-1.0856l.1166-.2801c.0467-.07.0933-.0934.1283-.14.0933-.1052.1633-.1402.2449-.1752.0467-.0233.0816-.035.105-.0467.0816-.035.1399-.035.1982-.0467.1166 0 .1166.0234.2099.0467.14.0817.4198.1401.5831.712.0466.1751.0933.3619.1399.5136.105.3269.1633.6304.1983.8755.035.2685-.0233.3502-.0467.4902-.0699.3035-.3381.4552-.653.2685-.2682-.2218-.3848-.0817-.4082-.0934h-.0116c-.0233-.0233-.035 0-.035.0817l-.0117.035ZM15.3134 16.8661l-.0816.1518-.1982.3268c-.14.2218-.2799.4319-.4432.642a5.0862 5.0862 0 0 1-.5248.6186c-.0932.0934-.1865.1985-.3031.2919-.035.035-.035.0233-.0467.0233-.0117.0117-.1049.0233-.0583.0467.035.0467-.0233-.0117.1866.2101.3615.3735.688.7821.9795 1.2139.1516.2101.2799.4319.4082.6654l.0583.1517.0583.1751s0 .0934.035.07l.035-.0583.2216-.3502.3964-.6653c.2799-.4436.5948-.9105 1.0379-1.284.2566-.2218.5598-.2802.8163-.2802.3032 0 .3382.2335.2333.4553-.0817.1634-.14.3852-.3032.5719-.2333.2685-.4432.5837-.6414.9105l-.2916.5019-.3148.5953c-.3032.5836-.6414 1.4824-.9913 1.6225-.0699.0467-.1516.0934-.2099.1284-.1282 0-.1516-.0701-.2332-.0934-.07-.035-.1399-.0584-.2449-.1984-.0933-.1168-.2099-.1868-.3032-.3619-.1399-.2801-.2682-.6186-.4315-.8988-.1982-.3385-.2449-.3968-.3615-.5602-.2099-.2802-.4314-.572-.688-.8405a6.3693 6.3693 0 0 0-.3965-.3968c-.1399-.1401-.4781-.4202-.8046-.677-.3266-.2802-.3849-.5486-.3849-.7588l.1167-.3268c.0699-.1167.2798-.2684.4081-.3968a1.986 1.986 0 0 0 .4431-.3035c.1633-.1518.1516-.1401.2216-.2218.105-.1167.2216-.2568.3265-.4085.2566-.3269.4898-.6887.7114-1.0856.2216-.4202.4081-.8521.5947-1.3423l.1283-.3619c.0466-.105.105-.1751.1516-.2568.0466-.07.105-.1867.1516-.2217l.1516-.0934c.0583-.0467.105-.0584.1516-.0817.105-.0467.1749-.0584.2332-.0701.1516 0 .1283.0117.2333.0467.1399.0817.4548.1167.653.7704.0933.3619.1866.677.2915.9688.3266.8988.1983 1.1089.1633 1.4474-.0466.3619-.3498.5369-.6997.2918a2.374 2.374 0 0 1-.4081-.3268c-.1283-.1167-.14-.0233-.175-.0584h-.0116s-.035 0-.035.0817h-.0117Z"/><title>menu/ico-magic</title></svg>

 <a href="#">Lingerie Rouge</a>
<i class="cmsb2-hidden cmsb2-absolute cmsb2-bottom-0 cmsb2-lg:block cmsb2-h-0.5 cmsb2-w-0 cmsb2-transition-all group-hover:w-full bg-optimo-darker"></i>
</li>
-->    </ul>
</nav>

<div x-data="initMenu()"
     @toggle-menu.window="toggleMenu()"
     class="navigation"
     data-menu
 @zendeskloaded.window="() => zendeskChatResolver()"
     @private-content-loaded.window="isCustomerLoggedIn = !!$event.detail.data?.customer?.isLoggedIn"
>
    <div class="navigation__list">
        <div x-cloak
 class="t-nav w-full max-w-[367px] left-0 fixed bg-grey-1 h-dvh z-[51] top-0 flex flex-col"
             :class="{                't-nav__opened': menuActive             }"
             x-show="menuActive"
             x-transition:enter="transform transition ease-in-out duration-300"
             x-transition:enter-start="-translate-x-full"
             x-transition:enter-end="translate-x-0"
             x-transition:leave="transform transition ease-in-out duration-300"
             x-transition:leave-start="translate-x-0"
             x-transition:leave-end="-translate-x-full"
        >
            <div class="relative h-14">
                <div class="menu-title flex justify-between">
                    <div class="flex items-center">
                        <template x-if="activeCategories.length > 0">
                            <div class="cursor-pointer py-4 pl-4 pr-9" @click.prevent="goBack()">
                                <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewbox="0 0 7 13" fill="none" class="block size-4" aria-hidden="true">
<path fill-rule="evenodd" clip-rule="evenodd" d="M6.823 12.621C7.0575 12.3865 7.0575 12.007 6.823 11.7725L1.449 6.3985L6.823 1.0245C7.057 0.79 7.057 0.41 6.823 0.1755C6.5885 -0.0585 6.2085 -0.0585 5.974 0.1755L0.175503 5.974C0.0585033 6.091 -0.000496922 6.245 3.15229e-06 6.3985C3.15412e-06 6.552 0.0585033 6.7055 0.175503 6.823L5.974 12.621C6.2085 12.8555 6.5885 12.8555 6.823 12.621Z" fill="#101820"/>
</svg>
                            </div>
                        </template>
                        <span class="font-client-font text-base font-bold normal-case menu-title__text py-4"
                              :class="{'pl-4': activeCategories.length === 0}"
                              x-ref="headingCategory"
                        >
                        <span class="line-clamp-1"
                              x-html="activeCategory ? activeCategory : 'Menu'"
                        ></span>
                    </span>
                    </div>
                    <button @click="toggleMenu()" aria-label="Close panel" class="transition duration-150 ease-in-out pr-4">
                        <svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewbox="0 0 12 12" fill="none" class="cursor-pointer size-3 text-black" aria-hidden="true">
<path d="M7.27522 6.00056L11.7369 1.53887C12.0892 1.18659 12.0892 0.616487 11.7369 0.264209C11.3846 -0.0880696 10.8145 -0.0880696 10.4623 0.264209L6.00056 4.7259L1.53962 0.264209C1.18734 -0.0873185 0.616487 -0.0873185 0.264209 0.264209C-0.0873185 0.616487 -0.0873185 1.18734 0.264209 1.53962L4.7259 6.00131L0.264209 10.4623C-0.0880696 10.8145 -0.0880696 11.3846 0.264209 11.7369C0.616487 12.0892 1.18659 12.0892 1.53887 11.7369L6.00056 7.27522L10.4623 11.7369C10.8145 12.0892 11.3846 12.0892 11.7369 11.7369C12.0892 11.3846 12.0892 10.8145 11.7369 10.4623L7.27522 6.00056Z" fill="currentColor"/>
</svg>
                    </button>
                </div>
            </div>

            <div class="relative grow overflow-auto flex flex-col menu-categories-wrapper">
                <ul class="menu-categories">
                    <li  class="level0 nav-1 category-item parent-1-levels first level-top parent" style="--color:#e5b1a7;"><a href="https://www.espaceplaisir.fr/939-sextoys"  class="level-top" ><img class="icon"  src="/media/.renditions/wysiwyg/Pictos_menu/icon_sextoy.png" alt="icon" width="45" height="60" loading="lazy"><span>Sextoys</span></a><ul class="level0 submenu"><div class="submenu-inner"><div class="submenu-container"><div class="submenu-link"><a class="btn-link btn-link-arrow-right" href="https://www.espaceplaisir.fr/939-sextoys"><img class="icon" src="/media/.renditions/wysiwyg/Pictos_menu/icon_sextoy.png" alt="icon" width="45" height="60" loading="lazy"><span>Tout l'univers Sextoys</span></a></div><ul class="submenu-items" data-title="Sextoys"><li  class="level1 nav-1-1 category-item parent-1-levels first parent"><a href="https://www.espaceplaisir.fr/972-vibromasseur" ><span>Vibromasseur</span></a><ul class="level1 submenu"><div class="submenu-inner"><div class="submenu-container"><div class="submenu-link"><a class="btn-link btn-link-arrow-right" href="https://www.espaceplaisir.fr/972-vibromasseur"><span>Tout l'univers Vibromasseur</span></a></div><ul class="submenu-items" data-title="Vibromasseur"><li  class="level2 nav-1-1-1 category-item parent-1-levels first"><a href="https://www.espaceplaisir.fr/1003-vibromasseur-classique" ><span>Vibromasseur classique</span></a></li><li  class="level2 nav-1-1-2 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1080-vibromasseur-point-g" ><span>Vibromasseur point G</span></a></li><li  class="level2 nav-1-1-3 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1552-vibromasseur-realiste" ><span>Vibromasseur réaliste</span></a></li><li  class="level2 nav-1-1-4 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1109-vibromasseur-rabbit" ><span>Vibromasseur rabbit</span></a></li><li  class="level2 nav-1-1-5 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1025-vibromasseur-wand" ><span>Vibromasseur wand</span></a></li><li  class="level2 nav-1-1-6 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1729-vibromasseur-va-et-vient" ><span>Sextoy va-et-vient</span></a></li><li  class="level2 nav-1-1-7 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1660-vibromasseur-double-penetration" ><span>Vibromasseur double pénétration</span></a></li><li  class="level2 nav-1-1-8 category-item parent-1-levels last"><a href="https://www.espaceplaisir.fr/1810-vibromasseur-chauffant" ><span>Vibromasseur chauffant</span></a></li></ul></div></div></ul></li><li  class="level1 nav-1-2 category-item parent-1-levels parent"><a href="https://www.espaceplaisir.fr/989-stimulateur-clitoridien" ><span>Stimulateur clitoridien</span></a><ul class="level1 submenu"><div class="submenu-inner"><div class="submenu-container"><div class="submenu-link"><a class="btn-link btn-link-arrow-right" href="https://www.espaceplaisir.fr/989-stimulateur-clitoridien"><span>Tout l'univers Stimulateur clitoridien</span></a></div><ul class="submenu-items" data-title="Stimulateur clitoridien"><li  class="level2 nav-1-2-1 category-item parent-1-levels first"><a href="https://www.espaceplaisir.fr/1645-aspirateur-clitoridien" ><img class="icon"  src="/media/catalog/category/Womanizer_Starlet_3.png" alt="icon" width="45" height="60" loading="lazy"><span>Aspirateur clitoridien</span></a></li><li  class="level2 nav-1-2-2 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/990-plaisir-100-clitoris" ><img class="icon"  src="/media/catalog/category/Womanizer_Enhance.png" alt="icon" width="45" height="60" loading="lazy"><span>Plaisir 100% clitoris</span></a></li><li  class="level2 nav-1-2-3 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1042-stimulateur-bullet" ><img class="icon"  src="/media/catalog/category/Stimulateur_bullet.png" alt="icon" width="45" height="60" loading="lazy"><span>Stimulateur bullet</span></a></li><li  class="level2 nav-1-2-4 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1113-doigt-vibrant" ><img class="icon"  src="/media/catalog/category/Doigt_vibrant.png" alt="icon" width="45" height="60" loading="lazy"><span>Doigt vibrant</span></a></li><li  class="level2 nav-1-2-5 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1160-double-stimulation" ><img class="icon"  src="/media/catalog/category/Womanizer_Blend.png" alt="icon" width="45" height="60" loading="lazy"><span>Double stimulation</span></a></li><li  class="level2 nav-1-2-6 category-item parent-1-levels last"><a href="https://www.espaceplaisir.fr/1910-culotte-et-string-vibrant" ><img class="icon"  src="/media/catalog/category/Culotte_vibrante.png" alt="icon" width="45" height="60" loading="lazy"><span>Culotte et string vibrant</span></a></li></ul></div></div></ul></li><li  class="level1 nav-1-3 category-item parent-1-levels parent"><a href="https://www.espaceplaisir.fr/1192-masturbateur" ><span>Masturbateur</span></a><ul class="level1 submenu"><div class="submenu-inner"><div class="submenu-container"><div class="submenu-link"><a class="btn-link btn-link-arrow-right" href="https://www.espaceplaisir.fr/1192-masturbateur"><span>Tout l'univers Masturbateur</span></a></div><ul class="submenu-items" data-title="Masturbateur"><li  class="level2 nav-1-3-1 category-item parent-1-levels first"><a href="https://www.espaceplaisir.fr/1193-masturbateur-realiste" ><img class="icon"  src="/media/catalog/category/Capture_d_e_cran_2026-01-13_a_14.28.55.png" alt="icon" width="45" height="60" loading="lazy"><span>Masturbateur réaliste</span></a></li><li  class="level2 nav-1-3-2 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1205-masturbateur-vibrant" ><img class="icon"  src="/media/catalog/category/Masturbateur_vibrant.png" alt="icon" width="45" height="60" loading="lazy"><span>Masturbateur vibrant</span></a></li><li  class="level2 nav-1-3-3 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1826-masturbateur-automatique" ><img class="icon"  src="/media/catalog/category/Arcwave_Pow.png" alt="icon" width="45" height="60" loading="lazy"><span>Masturbateur automatique</span></a></li><li  class="level2 nav-1-3-4 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1555-masturbateur-classique" ><img class="icon"  src="/media/catalog/category/Masturbateur_classique.png" alt="icon" width="45" height="60" loading="lazy"><span>Masturbateur classique</span></a></li><li  class="level2 nav-1-3-5 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1666-simulateur-de-fellation" ><img class="icon"  src="/media/catalog/category/Stimulateur_de_fellation.png" alt="icon" width="45" height="60" loading="lazy"><span>Simulateur de fellation</span></a></li><li  class="level2 nav-1-3-6 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1860-masturbateur-egg" ><img class="icon"  src="/media/catalog/category/Masturbateur_egg.png" alt="icon" width="45" height="60" loading="lazy"><span>Masturbateur egg</span></a></li><li  class="level2 nav-1-3-7 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1655-masturbateur-fessier-et-buste" ><img class="icon"  src="/media/catalog/category/Capture_d_e_cran_2026-01-13_a_14.32.09.png" alt="icon" width="45" height="60" loading="lazy"><span>Masturbateur fessier et buste</span></a></li><li  class="level2 nav-1-3-8 category-item parent-1-levels last"><a href="https://www.espaceplaisir.fr/1196-vaginette" ><img class="icon"  src="/media/catalog/category/Vaginette.png" alt="icon" width="45" height="60" loading="lazy"><span>Vaginette</span></a></li></ul></div></div></ul></li><li  class="level1 nav-1-4 category-item parent-1-levels parent"><a href="https://www.espaceplaisir.fr/941-gode-et-godemichet" ><span>Gode et godemichet</span></a><ul class="level1 submenu"><div class="submenu-inner"><div class="submenu-container"><div class="submenu-link"><a class="btn-link btn-link-arrow-right" href="https://www.espaceplaisir.fr/941-gode-et-godemichet"><span>Tout l'univers Gode et godemichet</span></a></div><ul class="submenu-items" data-title="Gode et godemichet"><li  class="level2 nav-1-4-1 category-item parent-1-levels first"><a href="https://www.espaceplaisir.fr/976-gode-realiste" ><img class="icon"  src="/media/catalog/category/Gode_r_aliste.png" alt="icon" width="45" height="60" loading="lazy"><span>Gode réaliste</span></a></li><li  class="level2 nav-1-4-2 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/942-dildo" ><img class="icon"  src="/media/catalog/category/Dildo.png" alt="icon" width="45" height="60" loading="lazy"><span>Dildo</span></a></li><li  class="level2 nav-1-4-3 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/977-double-dong" ><img class="icon"  src="/media/catalog/category/Double_Dong.png" alt="icon" width="45" height="60" loading="lazy"><span>Double dong</span></a></li><li  class="level2 nav-1-4-4 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1465-gode-xxl" ><img class="icon"  src="/media/catalog/category/Gode_XXL.png" alt="icon" width="45" height="60" loading="lazy"><span>Gode XXL</span></a></li><li  class="level2 nav-1-4-5 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1054-godemichet-ventouse" ><img class="icon"  src="/media/catalog/category/Gode_ventouse.png" alt="icon" width="45" height="60" loading="lazy"><span>Gode ventouse</span></a></li><li  class="level2 nav-1-4-6 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/974-sextoy-fantasy" ><img class="icon"  src="/media/catalog/category/Gode_fantasy.png" alt="icon" width="45" height="60" loading="lazy"><span>Sextoy fantasy</span></a></li><li  class="level2 nav-1-4-7 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/3118-dildo-point-g-et-point-p" ><img class="icon"  src="/media/catalog/category/Dildo_point_g_et_point_p.png" alt="icon" width="45" height="60" loading="lazy"><span>Dildo point G et point P</span></a></li><li  class="level2 nav-1-4-8 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1657-sextoy-ejaculateur" ><img class="icon"  src="/media/catalog/category/Sextoy_jaculateur.png" alt="icon" width="45" height="60" loading="lazy"><span>Sextoy éjaculateur</span></a></li><li  class="level2 nav-1-4-9 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1167-moulage-de-penis-et-gode-personnalise" ><img class="icon"  src="/media/catalog/category/Kit_moulage_p_nis.png" alt="icon" width="45" height="60" loading="lazy"><span>Kit moulage de pénis</span></a></li><li  class="level2 nav-1-4-10 category-item parent-1-levels last"><a href="https://www.espaceplaisir.fr/1662-gode-gonflable" ><img class="icon"  src="/media/catalog/category/Gode_gonflable.png" alt="icon" width="45" height="60" loading="lazy"><span>Gode gonflable</span></a></li></ul></div></div></ul></li><li  class="level1 nav-1-5 category-item parent-1-levels parent"><a href="https://www.espaceplaisir.fr/1004-plug-anal-gode-anal-et-chapelet-anal" ><span>Plug anal, gode anal et chapelet anal</span></a><ul class="level1 submenu"><div class="submenu-inner"><div class="submenu-container"><div class="submenu-link"><a class="btn-link btn-link-arrow-right" href="https://www.espaceplaisir.fr/1004-plug-anal-gode-anal-et-chapelet-anal"><span>Tout l'univers Plug anal, gode anal et chapelet anal</span></a></div><ul class="submenu-items" data-title="Plug anal, gode anal et chapelet anal"><li  class="level2 nav-1-5-1 category-item parent-1-levels first"><a href="https://www.espaceplaisir.fr/1005-plugs-s-m" ><img class="icon"  src="/media/catalog/category/Plug_s.png" alt="icon" width="45" height="60" loading="lazy"><span>Plugs S - M</span></a></li><li  class="level2 nav-1-5-2 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1172-plugs-l-xl" ><img class="icon"  src="/media/catalog/category/Plug_L.png" alt="icon" width="45" height="60" loading="lazy"><span>Plugs L - XL</span></a></li><li  class="level2 nav-1-5-3 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1084-plug-vibrant" ><img class="icon"  src="/media/catalog/category/Plug_vibrant.png" alt="icon" width="45" height="60" loading="lazy"><span>Plug vibrant</span></a></li><li  class="level2 nav-1-5-4 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1240-chapelet-anal" ><img class="icon"  src="/media/catalog/category/Chapelet_anal.png" alt="icon" width="45" height="60" loading="lazy"><span>Chapelet anal</span></a></li><li  class="level2 nav-1-5-5 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1236-bijoux-anal" ><img class="icon"  src="/media/catalog/category/Plug_bijou.png" alt="icon" width="45" height="60" loading="lazy"><span>Plug anal bijou</span></a></li><li  class="level2 nav-1-5-6 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1244-stimulateur-prostatique" ><img class="icon"  src="/media/catalog/category/Stimulateur_prostatique.png" alt="icon" width="45" height="60" loading="lazy"><span>Stimulateur prostatique</span></a></li><li  class="level2 nav-1-5-7 category-item parent-1-levels last"><a href="https://www.espaceplaisir.fr/1700-plug-anal-queue" ><img class="icon"  src="/media/catalog/category/Plug_anal_queue.png" alt="icon" width="45" height="60" loading="lazy"><span>Plug anal queue</span></a></li></ul></div></div></ul></li><li  class="level1 nav-1-6 category-item parent-1-levels parent"><a href="https://www.espaceplaisir.fr/1105-gode-ceinture" ><span>Gode ceinture</span></a><ul class="level1 submenu"><div class="submenu-inner"><div class="submenu-container"><div class="submenu-link"><a class="btn-link btn-link-arrow-right" href="https://www.espaceplaisir.fr/1105-gode-ceinture"><span>Tout l'univers Gode ceinture</span></a></div><ul class="submenu-items" data-title="Gode ceinture"><li  class="level2 nav-1-6-1 category-item parent-1-levels first"><a href="https://www.espaceplaisir.fr/1607-gode-ceinture-avec-harnais" ><img class="icon"  src="/media/catalog/category/Gode_ceinture_avec_harnais.png" alt="icon" width="45" height="60" loading="lazy"><span>Gode ceinture avec harnais</span></a></li><li  class="level2 nav-1-6-2 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1106-gode-ceinture-sans-harnais" ><img class="icon"  src="/media/catalog/category/Gode_ceinture_sans_harnais.png" alt="icon" width="45" height="60" loading="lazy"><span>Gode ceinture sans harnais</span></a></li><li  class="level2 nav-1-6-3 category-item parent-1-levels last"><a href="https://www.espaceplaisir.fr/1748-gode-ceinture-creux" ><img class="icon"  src="/media/catalog/category/Gode_ceinture_creux.png" alt="icon" width="45" height="60" loading="lazy"><span>Gode ceinture creux</span></a></li></ul></div></div></ul></li><li  class="level1 nav-1-7 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1055-sextoy-pour-le-couple" ><span>Sextoy pour le couple</span></a></li><li  class="level1 nav-1-8 category-item parent-1-levels parent"><a href="https://www.espaceplaisir.fr/1215-anneau-vibrant-et-cockring" ><span>Anneau vibrant et cockring</span></a><ul class="level1 submenu"><div class="submenu-inner"><div class="submenu-container"><div class="submenu-link"><a class="btn-link btn-link-arrow-right" href="https://www.espaceplaisir.fr/1215-anneau-vibrant-et-cockring"><span>Tout l'univers Anneau vibrant et cockring</span></a></div><ul class="submenu-items" data-title="Anneau vibrant et cockring"><li  class="level2 nav-1-8-1 category-item parent-1-levels first"><a href="https://www.espaceplaisir.fr/1216-anneau-vibrant" ><img class="icon"  src="/media/catalog/category/Anneau_vibrant.png" alt="icon" width="45" height="60" loading="lazy"><span>Anneau vibrant</span></a></li><li  class="level2 nav-1-8-2 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1230-cockring" ><img class="icon"  src="/media/catalog/category/Cockring.png" alt="icon" width="45" height="60" loading="lazy"><span>Cockring</span></a></li><li  class="level2 nav-1-8-3 category-item parent-1-levels last"><a href="https://www.espaceplaisir.fr/1250-double-cockring" ><img class="icon"  src="/media/catalog/category/Double_cockring.png" alt="icon" width="45" height="60" loading="lazy"><span>Double cockring</span></a></li></ul></div></div></ul></li><li  class="level1 nav-1-9 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1696-coffrets-espaceplaisir" ><span>Coffrets espaceplaisir</span></a></li><li  class="level1 nav-1-10 category-item parent-1-levels parent"><a href="https://www.espaceplaisir.fr/1909-oeufs-vibrants-et-boules-de-geisha" ><span>Oeuf vibrant et boules de geisha</span></a><ul class="level1 submenu"><div class="submenu-inner"><div class="submenu-container"><div class="submenu-link"><a class="btn-link btn-link-arrow-right" href="https://www.espaceplaisir.fr/1909-oeufs-vibrants-et-boules-de-geisha"><span>Tout l'univers Oeuf vibrant et boules de geisha</span></a></div><ul class="submenu-items" data-title="Oeuf vibrant et boules de geisha"><li  class="level2 nav-1-10-1 category-item parent-1-levels first"><a href="https://www.espaceplaisir.fr/1911-oeuf-vibrant" ><img class="icon"  src="/media/catalog/category/Oeuf_vibrant.png" alt="icon" width="45" height="60" loading="lazy"><span>Oeuf vibrant</span></a></li><li  class="level2 nav-1-10-2 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1912-boules-de-geisha" ><img class="icon"  src="/media/catalog/category/Boules_de_geisha.png" alt="icon" width="45" height="60" loading="lazy"><span>Boules de geisha</span></a></li><li  class="level2 nav-1-10-3 category-item parent-1-levels last"><a href="https://www.espaceplaisir.fr/1757-reeducation-du-perinee" ><img class="icon"  src="/media/catalog/category/R_ducation_du_p_rin_e.png" alt="icon" width="45" height="60" loading="lazy"><span>Rééducation du périnée</span></a></li></ul></div></div></ul></li><li  class="level1 nav-1-11 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1599-sextoy-connecte" ><span>Sextoy connecté</span></a></li><li  class="level1 nav-1-12 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1179-coffrets-sextoys" ><span>Coffrets sextoys</span></a></li><li  class="level1 nav-1-13 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1225-manchon-et-gaine-a-penis" ><span>Manchon et gaine à pénis</span></a></li><li  class="level1 nav-1-14 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1251-pompe-a-penis-et-extenseur-de-penis" ><span>Pompe à pénis et extenseur de pénis</span></a></li><li  class="level1 nav-1-15 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1440-piles-et-accessoires" ><span>Piles et accessoires</span></a></li><li  class="level1 nav-1-16 category-item parent-1-levels parent"><a href="https://www.espaceplaisir.fr/952-1er-achat-de-sextoy" ><span>1er achat de sextoy</span></a><ul class="level1 submenu"><div class="submenu-inner"><div class="submenu-container"><div class="submenu-link"><a class="btn-link btn-link-arrow-right" href="https://www.espaceplaisir.fr/952-1er-achat-de-sextoy"><span>Tout l'univers 1er achat de sextoy</span></a></div><ul class="submenu-items" data-title="1er achat de sextoy"><li  class="level2 nav-1-16-1 category-item parent-1-levels first"><a href="https://www.espaceplaisir.fr/1002-premier-sextoy-femme" ><img class="icon"  src="/media/catalog/category/Romp_Spin.png" alt="icon" width="45" height="60" loading="lazy"><span>Premier sextoy femme</span></a></li><li  class="level2 nav-1-16-2 category-item parent-1-levels last"><a href="https://www.espaceplaisir.fr/1235-premier-sextoy-homme" ><img class="icon"  src="/media/catalog/category/Anneau_vibrant_Romp_Juke.png" alt="icon" width="45" height="60" loading="lazy"><span>Premier sextoy homme</span></a></li></ul></div></div></ul></li><li  class="level1 nav-1-17 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/980-sextoy-lgbt-friendly" ><span>Sextoy LGBT friendly</span></a></li><li  class="level1 nav-1-18 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1185-poupee-gonflable" ><span>Poupée gonflable</span></a></li><li  class="level1 nav-1-19 category-item parent-1-levels last"><a href="https://www.espaceplaisir.fr/1933-poupee-ultra-realiste" ><span>Poupée sexuelle réaliste</span></a></li></ul></div></div></ul></li><li  class="level0 nav-2 category-item parent-1-levels level-top parent" style="--color:#d77e58;"><a href="https://www.espaceplaisir.fr/1056-lingerie-sexy-femme"  class="level-top" ><img class="icon"  src="/media/.renditions/wysiwyg/Pictos_menu/icon_lingerie.png" alt="icon" width="45" height="60" loading="lazy"><span>Lingerie sexy</span></a><ul class="level0 submenu"><div class="submenu-inner"><div class="submenu-container"><div class="submenu-link"><a class="btn-link btn-link-arrow-right" href="https://www.espaceplaisir.fr/1056-lingerie-sexy-femme"><img class="icon" src="/media/.renditions/wysiwyg/Pictos_menu/icon_lingerie.png" alt="icon" width="45" height="60" loading="lazy"><span>Tout l'univers Lingerie sexy</span></a></div><ul class="submenu-items" data-title="Lingerie sexy"><li  class="level1 nav-2-1 category-item parent-1-levels first"><a href="https://www.espaceplaisir.fr/1093-bas-collant-legging" ><span>Bas, collant, legging</span></a></li><li  class="level1 nav-2-2 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1506-body-et-harnais" ><span>Body et harnais</span></a></li><li  class="level1 nav-2-3 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1502-bustier-guepiere-et-corset" ><span>Bustier, guêpière et corset</span></a></li><li  class="level1 nav-2-4 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1508-combinaison-sexy" ><span>Combinaison sexy</span></a></li><li  class="level1 nav-2-5 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1099-cuir-latex-et-vinyle" ><span>Cuir, latex et vinyle</span></a></li><li  class="level1 nav-2-6 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1470-deguisement-sexy-femme" ><span>Déguisement sexy femme</span></a></li><li  class="level1 nav-2-7 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1519-ensemble-sexy" ><span>Ensemble sexy</span></a></li><li  class="level1 nav-2-8 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1424-lingerie-gourmande" ><span>Lingerie gourmande</span></a></li><li  class="level1 nav-2-9 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1541-lingerie-ouverte" ><span>Lingerie ouverte</span></a></li><li  class="level1 nav-2-10 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1509-lingerie-sexy-grande-taille" ><span>Lingerie sexy grande taille</span></a></li><li  class="level1 nav-2-11 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1504-maillot-de-bain-sexy-femme" ><span>Maillot de bain sexy femme</span></a></li><li  class="level1 nav-2-12 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1468-nuisette-sexy" ><span>Nuisette sexy</span></a></li><li  class="level1 nav-2-13 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1097-robe-sexy-et-tenue-sexy" ><span>Robe sexy et tenue sexy</span></a></li><li  class="level1 nav-2-14 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1380-special-mariage" ><img class="icon"  src="/media/catalog/category/special_mariage.jpg" alt="icon" width="45" height="60" loading="lazy"><span>Spécial mariage</span></a></li><li  class="level1 nav-2-15 category-item parent-1-levels parent"><a href="https://www.espaceplaisir.fr/1374-accessoire-sexy" ><span>Accessoire sexy</span></a><ul class="level1 submenu"><div class="submenu-inner"><div class="submenu-container"><div class="submenu-link"><a class="btn-link btn-link-arrow-right" href="https://www.espaceplaisir.fr/1374-accessoire-sexy"><span>Tout l'univers Accessoire sexy</span></a></div><ul class="submenu-items" data-title="Accessoire sexy"><li  class="level2 nav-2-15-1 category-item parent-1-levels first"><a href="https://www.espaceplaisir.fr/1376-caches-tetons" ><span>Caches-tétons</span></a></li><li  class="level2 nav-2-15-2 category-item parent-1-levels last"><a href="https://www.espaceplaisir.fr/1731-mitaines" ><img class="icon"  src="/media/catalog/category/gants_et_mitaines_1.jpg" alt="icon" width="45" height="60" loading="lazy"><span>Gants et mitaines</span></a></li></ul></div></div></ul></li><li  class="level1 nav-2-16 category-item parent-1-levels last parent"><a href="https://www.espaceplaisir.fr/1499-lingerie-sexy-homme" ><span>Lingerie sexy homme</span></a><ul class="level1 submenu"><div class="submenu-inner"><div class="submenu-container"><div class="submenu-link"><a class="btn-link btn-link-arrow-right" href="https://www.espaceplaisir.fr/1499-lingerie-sexy-homme"><span>Tout l'univers Lingerie sexy homme</span></a></div><ul class="submenu-items" data-title="Lingerie sexy homme"><li  class="level2 nav-2-16-1 category-item parent-1-levels first"><a href="https://www.espaceplaisir.fr/1611-string-et-slip" ><img class="icon"  src="/media/catalog/category/string_et_slip.jpg" alt="icon" width="45" height="60" loading="lazy"><span>String et slip</span></a></li><li  class="level2 nav-2-16-2 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1500-boxer-et-short" ><img class="icon"  src="/media/catalog/category/boxer_et_short.jpg" alt="icon" width="45" height="60" loading="lazy"><span>Boxer et short</span></a></li><li  class="level2 nav-2-16-3 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1613-jockstrap" ><img class="icon"  src="/media/catalog/category/jockstrap.jpg" alt="icon" width="45" height="60" loading="lazy"><span>JockStrap</span></a></li><li  class="level2 nav-2-16-4 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1769-body-et-harnais-homme" ><img class="icon"  src="/media/catalog/category/body_et_harnais.jpg" alt="icon" width="45" height="60" loading="lazy"><span>Body et harnais homme</span></a></li><li  class="level2 nav-2-16-5 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1771-tenue-sexy-homme" ><img class="icon"  src="/media/catalog/category/tenue_sexy_homme.jpg" alt="icon" width="45" height="60" loading="lazy"><span>Tenue sexy homme</span></a></li><li  class="level2 nav-2-16-6 category-item parent-1-levels last"><a href="https://www.espaceplaisir.fr/1514-deguisement-sexy-homme" ><img class="icon"  src="/media/catalog/category/d_guisement_sexy_homme.jpg" alt="icon" width="45" height="60" loading="lazy"><span>Déguisement sexy homme</span></a></li></ul></div></div></ul></li></ul></div></div></ul></li><li  class="level0 nav-3 category-item parent-1-levels level-top parent" style="--color:#a5d2ec;"><a href="https://www.espaceplaisir.fr/991-bien-etre"  class="level-top" ><img class="icon"  src="/media/.renditions/wysiwyg/Pictos_menu/icon_bienEtre.png" alt="icon" width="45" height="60" loading="lazy"><span>Bien-être</span></a><ul class="level0 submenu"><div class="submenu-inner"><div class="submenu-container"><div class="submenu-link"><a class="btn-link btn-link-arrow-right" href="https://www.espaceplaisir.fr/991-bien-etre"><img class="icon" src="/media/.renditions/wysiwyg/Pictos_menu/icon_bienEtre.png" alt="icon" width="45" height="60" loading="lazy"><span>Tout l'univers Bien-être</span></a></div><ul class="submenu-items" data-title="Bien-être"><li  class="level1 nav-3-1 category-item parent-1-levels first"><a href="https://www.espaceplaisir.fr/1478-coffrets-bien-etre" ><span>Coffrets bien-être</span></a></li><li  class="level1 nav-3-2 category-item parent-1-levels parent"><a href="https://www.espaceplaisir.fr/1914-lubrifiant-et-gel-lubrifiant" ><span>Lubrifiant et gel lubrifiant</span></a><ul class="level1 submenu"><div class="submenu-inner"><div class="submenu-container"><div class="submenu-link"><a class="btn-link btn-link-arrow-right" href="https://www.espaceplaisir.fr/1914-lubrifiant-et-gel-lubrifiant"><span>Tout l'univers Lubrifiant et gel lubrifiant</span></a></div><ul class="submenu-items" data-title="Lubrifiant et gel lubrifiant"><li  class="level2 nav-3-2-1 category-item parent-1-levels first"><a href="https://www.espaceplaisir.fr/1916-lubrifiants-a-base-eau" ><span>Lubrifiant à base d&#039;eau</span></a></li><li  class="level2 nav-3-2-2 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1915-lubrifiants-base-silicone" ><img class="icon"  src="/media/catalog/category/lubrifiant_silicone.jpg" alt="icon" width="45" height="60" loading="lazy"><span>Lubrifiant à base de silicone</span></a></li><li  class="level2 nav-3-2-3 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1921-lubrifiants-bio" ><img class="icon"  src="/media/catalog/category/lubrifiant_nature.jpg" alt="icon" width="45" height="60" loading="lazy"><span>Lubrifiant bio et gel lubrifiant naturel</span></a></li><li  class="level2 nav-3-2-4 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1920-lubrifiants-anal" ><img class="icon"  src="/media/catalog/category/lubrifiant_anal.jpg" alt="icon" width="45" height="60" loading="lazy"><span>Lubrifiant anal et gel anal </span></a></li><li  class="level2 nav-3-2-5 category-item parent-1-levels last"><a href="https://www.espaceplaisir.fr/1917-lubrifiant-comestible-gourmand" ><img class="icon"  src="/media/catalog/category/lubrifiant_comestible.jpg" alt="icon" width="45" height="60" loading="lazy"><span>Lubrifiant comestible</span></a></li></ul></div></div></ul></li><li  class="level1 nav-3-3 category-item parent-1-levels parent"><a href="https://www.espaceplaisir.fr/992-massage" ><span>Massage</span></a><ul class="level1 submenu"><div class="submenu-inner"><div class="submenu-container"><div class="submenu-link"><a class="btn-link btn-link-arrow-right" href="https://www.espaceplaisir.fr/992-massage"><span>Tout l'univers Massage</span></a></div><ul class="submenu-items" data-title="Massage"><li  class="level2 nav-3-3-1 category-item parent-1-levels first"><a href="https://www.espaceplaisir.fr/994-huile-de-massage-pour-couple" ><span>Huile de massage</span></a></li><li  class="level2 nav-3-3-2 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1303-bougie-de-massage" ><img class="icon"  src="/media/catalog/category/bougie_de_massage.jpg" alt="icon" width="45" height="60" loading="lazy"><span>Bougie de massage</span></a></li><li  class="level2 nav-3-3-3 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1108-accessoire-de-detente" ><img class="icon"  src="/media/catalog/category/accessoire_de_massage.jpg" alt="icon" width="45" height="60" loading="lazy"><span>Accessoire de massage</span></a></li><li  class="level2 nav-3-3-4 category-item parent-1-levels last"><a href="https://www.espaceplaisir.fr/1337-massage-nuru" ><img class="icon"  src="/media/catalog/category/massage_nuru.jpg" alt="icon" width="45" height="60" loading="lazy"><span>Massage Nuru</span></a></li></ul></div></div></ul></li><li  class="level1 nav-3-4 category-item parent-1-levels parent"><a href="https://www.espaceplaisir.fr/1274-plaisir-et-hygiene" ><span>Plaisir et hygiène</span></a><ul class="level1 submenu"><div class="submenu-inner"><div class="submenu-container"><div class="submenu-link"><a class="btn-link btn-link-arrow-right" href="https://www.espaceplaisir.fr/1274-plaisir-et-hygiene"><span>Tout l'univers Plaisir et hygiène</span></a></div><ul class="submenu-items" data-title="Plaisir et hygiène"><li  class="level2 nav-3-4-1 category-item parent-1-levels first"><a href="https://www.espaceplaisir.fr/1439-nettoyant-et-lingette-pour-sextoy" ><img class="icon"  src="/media/catalog/category/nettoyant_sextoy.jpg" alt="icon" width="45" height="60" loading="lazy"><span>Nettoyant et lingette pour sextoy</span></a></li><li  class="level2 nav-3-4-2 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1275-poire-a-lavement-anal" ><span>Poire à lavement anal</span></a></li><li  class="level2 nav-3-4-3 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1336-bain-et-douche" ><img class="icon"  src="/media/catalog/category/sel_de_bain.jpg" alt="icon" width="45" height="60" loading="lazy"><span>Bain et douche</span></a></li><li  class="level2 nav-3-4-4 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1325-tampon-hygienique" ><img class="icon"  src="/media/catalog/category/tampons.jpg" alt="icon" width="45" height="60" loading="lazy"><span>Tampon hygiénique</span></a></li><li  class="level2 nav-3-4-5 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1809-coupe-menstruelle" ><img class="icon"  src="/media/catalog/category/cup.jpg" alt="icon" width="45" height="60" loading="lazy"><span>Coupe menstruelle</span></a></li><li  class="level2 nav-3-4-6 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1719-hygiene-intime-et-toilette-intime" ><img class="icon"  src="/media/catalog/category/hygiene_intime.jpg" alt="icon" width="45" height="60" loading="lazy"><span>Hygiène intime et toilette intime</span></a></li><li  class="level2 nav-3-4-7 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1675-rasoir-maillot" ><img class="icon"  src="/media/catalog/category/rasoir_intime.jpg" alt="icon" width="45" height="60" loading="lazy"><span>Rasoir maillot</span></a></li><li  class="level2 nav-3-4-8 category-item parent-1-levels last"><a href="https://www.espaceplaisir.fr/1849-boule-de-bain-surprise" ><img class="icon"  src="/media/catalog/category/boule_de_bian.jpg" alt="icon" width="45" height="60" loading="lazy"><span>Boule de bain surprise</span></a></li></ul></div></div></ul></li><li  class="level1 nav-3-5 category-item parent-1-levels parent"><a href="https://www.espaceplaisir.fr/1444-preservatif" ><span>Préservatif</span></a><ul class="level1 submenu"><div class="submenu-inner"><div class="submenu-container"><div class="submenu-link"><a class="btn-link btn-link-arrow-right" href="https://www.espaceplaisir.fr/1444-preservatif"><span>Tout l'univers Préservatif</span></a></div><ul class="submenu-items" data-title="Préservatif"><li  class="level2 nav-3-5-1 category-item parent-1-levels first last"><a href="https://www.espaceplaisir.fr/1445-preservatif-sans-latex" ><img class="icon"  src="/media/catalog/category/preservatif_sans_latex.jpg" alt="icon" width="45" height="60" loading="lazy"><span>Préservatif sans latex</span></a></li></ul></div></div></ul></li><li  class="level1 nav-3-6 category-item parent-1-levels parent"><a href="https://www.espaceplaisir.fr/1265-cosmetique-erotique" ><span>Cosmétique érotique</span></a><ul class="level1 submenu"><div class="submenu-inner"><div class="submenu-container"><div class="submenu-link"><a class="btn-link btn-link-arrow-right" href="https://www.espaceplaisir.fr/1265-cosmetique-erotique"><span>Tout l'univers Cosmétique érotique</span></a></div><ul class="submenu-items" data-title="Cosmétique érotique"><li  class="level2 nav-3-6-1 category-item parent-1-levels first"><a href="https://www.espaceplaisir.fr/1364-poudre-parfumee-pour-le-corps" ><img class="icon"  src="/media/catalog/category/poudre_corps.jpg" alt="icon" width="45" height="60" loading="lazy"><span>Poudre parfumée pour le corps</span></a></li><li  class="level2 nav-3-6-2 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1266-gloss" ><span>Gloss</span></a></li><li  class="level2 nav-3-6-3 category-item parent-1-levels last"><a href="https://www.espaceplaisir.fr/1930-sels-de-bain" ><img class="icon"  src="/media/catalog/category/sel_de_bain_v2.jpg" alt="icon" width="45" height="60" loading="lazy"><span>Sels de bain </span></a></li></ul></div></div></ul></li><li  class="level1 nav-3-7 category-item parent-1-levels last"><a href="https://www.espaceplaisir.fr/1913-appareil-de-massage" ><span>Appareil de massage</span></a></li></ul></div></div></ul></li><li  class="level0 nav-4 category-item parent-1-levels level-top parent" style="--color:#ba99c6;"><a href="https://www.espaceplaisir.fr/1189-bdsm"  class="level-top" ><img class="icon"  src="/media/.renditions/wysiwyg/Pictos_menu/icon_bdsm.png" alt="icon" width="45" height="60" loading="lazy"><span>BDSM</span></a><ul class="level0 submenu"><div class="submenu-inner"><div class="submenu-container"><div class="submenu-link"><a class="btn-link btn-link-arrow-right" href="https://www.espaceplaisir.fr/1189-bdsm"><img class="icon" src="/media/.renditions/wysiwyg/Pictos_menu/icon_bdsm.png" alt="icon" width="45" height="60" loading="lazy"><span>Tout l'univers BDSM</span></a></div><ul class="submenu-items" data-title="BDSM"><li  class="level1 nav-4-1 category-item parent-1-levels first"><a href="https://www.espaceplaisir.fr/1477-coffret-bdsm" ><span>Coffrets BDSM</span></a></li><li  class="level1 nav-4-2 category-item parent-1-levels parent"><a href="https://www.espaceplaisir.fr/1365-menotte-bdsm-et-lien-bdsm" ><span>Menottes et attaches BDSM</span></a><ul class="level1 submenu"><div class="submenu-inner"><div class="submenu-container"><div class="submenu-link"><a class="btn-link btn-link-arrow-right" href="https://www.espaceplaisir.fr/1365-menotte-bdsm-et-lien-bdsm"><span>Tout l'univers Menottes et attaches BDSM</span></a></div><ul class="submenu-items" data-title="Menottes et attaches BDSM"><li  class="level2 nav-4-2-1 category-item parent-1-levels first"><a href="https://www.espaceplaisir.fr/1414-kit-d-attaches-bdsm" ><img class="icon"  src="/media/catalog/category/Kit_attaches_BDSM.png" alt="icon" width="45" height="60" loading="lazy"><span>Kit d&#039;attaches BDSM</span></a></li><li  class="level2 nav-4-2-2 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1391-menotte-sexy-bdsm" ><img class="icon"  src="/media/catalog/category/Menottes_BDSM.png" alt="icon" width="45" height="60" loading="lazy"><span>Menottes BDSM</span></a></li><li  class="level2 nav-4-2-3 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1368-lien-bdsm" ><img class="icon"  src="/media/catalog/category/Attaches_poignet_et_cheville.png" alt="icon" width="45" height="60" loading="lazy"><span>Attaches poignets et chevilles</span></a></li><li  class="level2 nav-4-2-4 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/3109-attaches-de-lit-bdsm" ><span>Attaches de lit BDSM</span></a></li><li  class="level2 nav-4-2-5 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1924-corde-shibari" ><img class="icon"  src="/media/catalog/category/Corde_shibari.png" alt="icon" width="45" height="60" loading="lazy"><span>Corde shibari et bondage tape</span></a></li><li  class="level2 nav-4-2-6 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1498-collier-bdsm" ><img class="icon"  src="/media/catalog/category/Collier_et_laisse_BDSM.png" alt="icon" width="45" height="60" loading="lazy"><span>Collier et laisse BDSM</span></a></li><li  class="level2 nav-4-2-7 category-item parent-1-levels last"><a href="https://www.espaceplaisir.fr/1797-barre-d-ecartement" ><img class="icon"  src="/media/catalog/category/Barre_d_cartement_BDSM.png" alt="icon" width="45" height="60" loading="lazy"><span>Barre d&#039;écartement</span></a></li></ul></div></div></ul></li><li  class="level1 nav-4-3 category-item parent-1-levels parent"><a href="https://www.espaceplaisir.fr/1416-pince-a-teton-et-pince-a-clitoris" ><span>Pinces et pompes BDSM</span></a><ul class="level1 submenu"><div class="submenu-inner"><div class="submenu-container"><div class="submenu-link"><a class="btn-link btn-link-arrow-right" href="https://www.espaceplaisir.fr/1416-pince-a-teton-et-pince-a-clitoris"><span>Tout l'univers Pinces et pompes BDSM</span></a></div><ul class="submenu-items" data-title="Pinces et pompes BDSM"><li  class="level2 nav-4-3-1 category-item parent-1-levels first"><a href="https://www.espaceplaisir.fr/3110-pince-a-clitoris" ><img class="icon"  src="/media/catalog/category/Pince_clitoris.png" alt="icon" width="45" height="60" loading="lazy"><span>Pince à clitoris</span></a></li><li  class="level2 nav-4-3-2 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1794-pompe-a-vagin-et-pompe-a-clitoris" ><img class="icon"  src="/media/catalog/category/Pompe_vulve_et_clitoris.png" alt="icon" width="45" height="60" loading="lazy"><span>Pompe vulve et clitoris</span></a></li><li  class="level2 nav-4-3-3 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/3111-pinces-a-tetons" ><img class="icon"  src="/media/catalog/category/Pinces_t_tons.png" alt="icon" width="45" height="60" loading="lazy"><span>Pinces à tétons</span></a></li><li  class="level2 nav-4-3-4 category-item parent-1-levels last"><a href="https://www.espaceplaisir.fr/1738-pompe-a-tetons-et-pompe-a-seins" ><span>Pompes à tétons</span></a></li></ul></div></div></ul></li><li  class="level1 nav-4-4 category-item parent-1-levels parent"><a href="https://www.espaceplaisir.fr/1407-cravache-martinet-et-fouet-bdsm" ><span>Accessoires fessée et plumeau</span></a><ul class="level1 submenu"><div class="submenu-inner"><div class="submenu-container"><div class="submenu-link"><a class="btn-link btn-link-arrow-right" href="https://www.espaceplaisir.fr/1407-cravache-martinet-et-fouet-bdsm"><span>Tout l'univers Accessoires fessée et plumeau</span></a></div><ul class="submenu-items" data-title="Accessoires fessée et plumeau"><li  class="level2 nav-4-4-1 category-item parent-1-levels first"><a href="https://www.espaceplaisir.fr/1408-cravache-bdsm" ><span>Cravache BDSM</span></a></li><li  class="level2 nav-4-4-2 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1413-martinet-bdsm" ><span>Martinet BDSM</span></a></li><li  class="level2 nav-4-4-3 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1799-paddle-bdsm" ><span>Paddle BDSM</span></a></li><li  class="level2 nav-4-4-4 category-item parent-1-levels last"><a href="https://www.espaceplaisir.fr/1377-plumeau-erotique" ><span>Plumeau érotique</span></a></li></ul></div></div></ul></li><li  class="level1 nav-4-5 category-item parent-1-levels parent"><a href="https://www.espaceplaisir.fr/1366-masque-et-cagoule-bdsm" ><span>Masque et bâillon BDSM</span></a><ul class="level1 submenu"><div class="submenu-inner"><div class="submenu-container"><div class="submenu-link"><a class="btn-link btn-link-arrow-right" href="https://www.espaceplaisir.fr/1366-masque-et-cagoule-bdsm"><span>Tout l'univers Masque et bâillon BDSM</span></a></div><ul class="submenu-items" data-title="Masque et bâillon BDSM"><li  class="level2 nav-4-5-1 category-item parent-1-levels first"><a href="https://www.espaceplaisir.fr/1390-masque-sm" ><span>Masque et bandeau BDSM</span></a></li><li  class="level2 nav-4-5-2 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1730-baillon-boule" ><span>Bâillon-boule</span></a></li><li  class="level2 nav-4-5-3 category-item parent-1-levels last"><a href="https://www.espaceplaisir.fr/1694-cagoule-sm" ><span>Cagoule BDSM</span></a></li></ul></div></div></ul></li><li  class="level1 nav-4-6 category-item parent-1-levels parent"><a href="https://www.espaceplaisir.fr/3115-fetichisme" ><span>Fétichisme</span></a><ul class="level1 submenu"><div class="submenu-inner"><div class="submenu-container"><div class="submenu-link"><a class="btn-link btn-link-arrow-right" href="https://www.espaceplaisir.fr/3115-fetichisme"><span>Tout l'univers Fétichisme</span></a></div><ul class="submenu-items" data-title="Fétichisme"><li  class="level2 nav-4-6-1 category-item parent-1-levels first"><a href="https://www.espaceplaisir.fr/1830-bougie-bdsm" ><span>Bougie BDSM</span></a></li><li  class="level2 nav-4-6-2 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1793-roulette-de-wartenberg-bdsm" ><span>Roulette de Wartenberg</span></a></li><li  class="level2 nav-4-6-3 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1669-cage-de-chastete-et-ceinture-de-chastete" ><span>Cage de chasteté et ceinture de chasteté</span></a></li><li  class="level2 nav-4-6-4 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1676-ballstretchers" ><span>Ballstretcher et plug urètre</span></a></li><li  class="level2 nav-4-6-5 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1922-electro-sex" ><span>E-stimulation et roleplay médical</span></a></li><li  class="level2 nav-4-6-6 category-item parent-1-levels last"><a href="https://www.espaceplaisir.fr/1466-fisting" ><img class="icon"  src="/media/catalog/category/fisting.jpg" alt="icon" width="45" height="60" loading="lazy"><span>Fisting</span></a></li></ul></div></div></ul></li><li  class="level1 nav-4-7 category-item parent-1-levels last parent"><a href="https://www.espaceplaisir.fr/3116-balancoire-sexuelle-et-sex-machine" ><span>Balançoire sexuelle et sex machine</span></a><ul class="level1 submenu"><div class="submenu-inner"><div class="submenu-container"><div class="submenu-link"><a class="btn-link btn-link-arrow-right" href="https://www.espaceplaisir.fr/3116-balancoire-sexuelle-et-sex-machine"><span>Tout l'univers Balançoire sexuelle et sex machine</span></a></div><ul class="submenu-items" data-title="Balançoire sexuelle et sex machine"><li  class="level2 nav-4-7-1 category-item parent-1-levels first"><a href="https://www.espaceplaisir.fr/1772-balancoire-sexuelle" ><span>Balançoire sexuelle</span></a></li><li  class="level2 nav-4-7-2 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1761-sex-machine" ><img class="icon"  src="/media/catalog/category/Sex_machine.png" alt="icon" width="45" height="60" loading="lazy"><span>Sex machine</span></a></li><li  class="level2 nav-4-7-3 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1795-coussin-erotique" ><img class="icon"  src="/media/catalog/category/Coussin_de_position.png" alt="icon" width="45" height="60" loading="lazy"><span>Coussin de position et sangles</span></a></li><li  class="level2 nav-4-7-4 category-item parent-1-levels last"><a href="https://www.espaceplaisir.fr/1680-equipement-bdsm" ><img class="icon"  src="/media/catalog/category/Equipement_BDSM.png" alt="icon" width="45" height="60" loading="lazy"><span>Équipement BDSM</span></a></li></ul></div></div></ul></li></ul></div></div></ul></li><li  class="level0 nav-5 category-item parent-1-levels level-top parent" style="--color:#afd1b4;"><a href="https://www.espaceplaisir.fr/1267-aphrodisiaques"  class="level-top" ><img class="icon"  src="/media/.renditions/wysiwyg/Pictos_menu/icon_aphro.png" alt="icon" width="45" height="60" loading="lazy"><span>Aphrodisiaques</span></a><ul class="level0 submenu"><div class="submenu-inner"><div class="submenu-container"><div class="submenu-link"><a class="btn-link btn-link-arrow-right" href="https://www.espaceplaisir.fr/1267-aphrodisiaques"><img class="icon" src="/media/.renditions/wysiwyg/Pictos_menu/icon_aphro.png" alt="icon" width="45" height="60" loading="lazy"><span>Tout l'univers Aphrodisiaques</span></a></div><ul class="submenu-items" data-title="Aphrodisiaques"><li  class="level1 nav-5-1 category-item parent-1-levels first"><a href="https://www.espaceplaisir.fr/1697-coffrets-aphrodisiaques" ><img class="icon"  src="/media/catalog/category/coffrets_aphro.jpg" alt="icon" width="45" height="60" loading="lazy"><span>Coffrets aphrodisiaques</span></a></li><li  class="level1 nav-5-2 category-item parent-1-levels parent"><a href="https://www.espaceplaisir.fr/1313-aphrodisiaque-pour-homme" ><span>Aphrodisiaque pour homme</span></a><ul class="level1 submenu"><div class="submenu-inner"><div class="submenu-container"><div class="submenu-link"><a class="btn-link btn-link-arrow-right" href="https://www.espaceplaisir.fr/1313-aphrodisiaque-pour-homme"><span>Tout l'univers Aphrodisiaque pour homme</span></a></div><ul class="submenu-items" data-title="Aphrodisiaque pour homme"><li  class="level2 nav-5-2-1 category-item parent-1-levels first"><a href="https://www.espaceplaisir.fr/1318-augmenter-la-vigueur" ><span>Augmenter la vigueur</span></a></li><li  class="level2 nav-5-2-2 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1495-retarder-l-ejaculation" ><span>Retarder l&#039;éjaculation</span></a></li><li  class="level2 nav-5-2-3 category-item parent-1-levels last"><a href="https://www.espaceplaisir.fr/1314-developper-le-penis" ><span>Développer le pénis</span></a></li></ul></div></div></ul></li><li  class="level1 nav-5-3 category-item parent-1-levels parent"><a href="https://www.espaceplaisir.fr/1268-aphrodisiaque-mixte" ><span>Aphrodisiaque mixte</span></a><ul class="level1 submenu"><div class="submenu-inner"><div class="submenu-container"><div class="submenu-link"><a class="btn-link btn-link-arrow-right" href="https://www.espaceplaisir.fr/1268-aphrodisiaque-mixte"><span>Tout l'univers Aphrodisiaque mixte</span></a></div><ul class="submenu-items" data-title="Aphrodisiaque mixte"><li  class="level2 nav-5-3-1 category-item parent-1-levels first"><a href="https://www.espaceplaisir.fr/1269-stimuler-le-desir-et-la-libido" ><span>Stimuler le désir et la libido</span></a></li><li  class="level2 nav-5-3-2 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1664-plaisir-anal" ><span>Plaisir anal</span></a></li><li  class="level2 nav-5-3-3 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1347-plaisir-oral" ><span>Plaisir oral</span></a></li><li  class="level2 nav-5-3-4 category-item parent-1-levels last"><a href="https://www.espaceplaisir.fr/1786-pheromones" ><span>Phéromones</span></a></li></ul></div></div></ul></li><li  class="level1 nav-5-4 category-item parent-1-levels last parent"><a href="https://www.espaceplaisir.fr/1319-aphrodisiaque-pour-femme" ><span>Aphrodisiaque pour femme</span></a><ul class="level1 submenu"><div class="submenu-inner"><div class="submenu-container"><div class="submenu-link"><a class="btn-link btn-link-arrow-right" href="https://www.espaceplaisir.fr/1319-aphrodisiaque-pour-femme"><span>Tout l'univers Aphrodisiaque pour femme</span></a></div><ul class="submenu-items" data-title="Aphrodisiaque pour femme"><li  class="level2 nav-5-4-1 category-item parent-1-levels first"><a href="https://www.espaceplaisir.fr/1807-booster-la-libido" ><span>Booster la libido</span></a></li><li  class="level2 nav-5-4-2 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1320-stimuler-le-point-g-et-le-clitoris" ><span>Stimuler le point G et le clitoris</span></a></li><li  class="level2 nav-5-4-3 category-item parent-1-levels last"><a href="https://www.espaceplaisir.fr/1546-developper-la-poitrine" ><span>Développer la poitrine</span></a></li></ul></div></div></ul></li></ul></div></div></ul></li><li  class="level0 nav-6 category-item parent-1-levels last level-top parent" style="--color:#f2bf5d;"><a href="https://www.espaceplaisir.fr/1349-jeux-et-librairie"  class="level-top" ><img class="icon"  src="/media/.renditions/wysiwyg/Pictos_menu/icon_jeux.png" alt="icon" width="45" height="60" loading="lazy"><span>Jeux et librairie</span></a><ul class="level0 submenu"><div class="submenu-inner"><div class="submenu-container"><div class="submenu-link"><a class="btn-link btn-link-arrow-right" href="https://www.espaceplaisir.fr/1349-jeux-et-librairie"><img class="icon" src="/media/.renditions/wysiwyg/Pictos_menu/icon_jeux.png" alt="icon" width="45" height="60" loading="lazy"><span>Tout l'univers Jeux et librairie</span></a></div><ul class="submenu-items" data-title="Jeux et librairie"><li  class="level1 nav-6-1 category-item parent-1-levels first"><a href="https://www.espaceplaisir.fr/1383-coffrets-jeux-et-librairie" ><span>Coffrets jeux et librairie</span></a></li><li  class="level1 nav-6-2 category-item parent-1-levels parent"><a href="https://www.espaceplaisir.fr/1384-jeu-coquin" ><span>Jeu coquin</span></a><ul class="level1 submenu"><div class="submenu-inner"><div class="submenu-container"><div class="submenu-link"><a class="btn-link btn-link-arrow-right" href="https://www.espaceplaisir.fr/1384-jeu-coquin"><span>Tout l'univers Jeu coquin</span></a></div><ul class="submenu-items" data-title="Jeu coquin"><li  class="level2 nav-6-2-1 category-item parent-1-levels first"><a href="https://www.espaceplaisir.fr/1435-jeu-de-plateau-erotique" ><img class="icon"  src="/media/catalog/category/jeux_de_plateau.jpg" alt="icon" width="45" height="60" loading="lazy"><span>Jeu de plateau érotique</span></a></li><li  class="level2 nav-6-2-2 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1385-des-coquins" ><img class="icon"  src="/media/catalog/category/d_s_coquins.jpg" alt="icon" width="45" height="60" loading="lazy"><span>Dés coquins</span></a></li><li  class="level2 nav-6-2-3 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1434-jeu-de-cartes-erotique" ><span>Jeu de cartes érotique</span></a></li><li  class="level2 nav-6-2-4 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1918-carte-a-gratter-erotique" ><img class="icon"  src="/media/catalog/category/cartes_gratter_v2_1.jpg" alt="icon" width="45" height="60" loading="lazy"><span>Carte à gratter érotique</span></a></li><li  class="level2 nav-6-2-5 category-item parent-1-levels last"><a href="https://www.espaceplaisir.fr/1688-coffret-de-jeux-coquin" ><img class="icon"  src="/media/catalog/category/coffret_jeux_coquins.jpg" alt="icon" width="45" height="60" loading="lazy"><span>Coffret de jeux coquin</span></a></li></ul></div></div></ul></li><li  class="level1 nav-6-3 category-item parent-1-levels parent"><a href="https://www.espaceplaisir.fr/1350-accessoire-coquin" ><span>Accessoire coquin</span></a><ul class="level1 submenu"><div class="submenu-inner"><div class="submenu-container"><div class="submenu-link"><a class="btn-link btn-link-arrow-right" href="https://www.espaceplaisir.fr/1350-accessoire-coquin"><span>Tout l'univers Accessoire coquin</span></a></div><ul class="submenu-items" data-title="Accessoire coquin"><li  class="level2 nav-6-3-1 category-item parent-1-levels first"><a href="https://www.espaceplaisir.fr/1418-pour-les-amoureux" ><img class="icon"  src="/media/catalog/category/pour_les_amoureux.jpg" alt="icon" width="45" height="60" loading="lazy"><span>Pour les amoureux</span></a></li><li  class="level2 nav-6-3-2 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1351-peinture-corporelle-gourmande" ><img class="icon"  src="/media/catalog/category/peinture_corporelle.jpg" alt="icon" width="45" height="60" loading="lazy"><span>Peinture corporelle gourmande</span></a></li><li  class="level2 nav-6-3-3 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1420-bonbon-sexy-a-croquer" ><span>Bonbon sexy à croquer</span></a></li><li  class="level2 nav-6-3-4 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1842-pochette-surprise" ><img class="icon"  src="/media/catalog/category/pochette_surprise.jpg" alt="icon" width="45" height="60" loading="lazy"><span>Pochette surprise</span></a></li><li  class="level2 nav-6-3-5 category-item parent-1-levels last"><a href="https://www.espaceplaisir.fr/1379-cadeaux-evjf-evg" ><img class="icon"  src="/media/catalog/category/cadeau_EVJF.jpg" alt="icon" width="45" height="60" loading="lazy"><span>Cadeaux EVJF et EVG</span></a></li></ul></div></div></ul></li><li  class="level1 nav-6-4 category-item parent-1-levels last parent"><a href="https://www.espaceplaisir.fr/1398-librairie-erotique" ><span>Librairie érotique</span></a><ul class="level1 submenu"><div class="submenu-inner"><div class="submenu-container"><div class="submenu-link"><a class="btn-link btn-link-arrow-right" href="https://www.espaceplaisir.fr/1398-librairie-erotique"><span>Tout l'univers Librairie érotique</span></a></div><ul class="submenu-items" data-title="Librairie érotique"><li  class="level2 nav-6-4-1 category-item parent-1-levels first"><a href="https://www.espaceplaisir.fr/1399-livre-et-guide-erotique" ><span>Livre et guide érotique</span></a></li><li  class="level2 nav-6-4-2 category-item parent-1-levels"><a href="https://www.espaceplaisir.fr/1739-osez" ><img class="icon"  src="/media/catalog/category/osez....jpg" alt="icon" width="45" height="60" loading="lazy"><span>Osez...</span></a></li><li  class="level2 nav-6-4-3 category-item parent-1-levels last"><a href="https://www.espaceplaisir.fr/1428-coupon-erotique" ><img class="icon"  src="/media/catalog/category/coupon_rotique.jpg" alt="icon" width="45" height="60" loading="lazy"><span>Coupon érotique</span></a></li></ul></div></div></ul></li></ul></div></div></ul></li>                </ul>
                <div class="grow bg-white">
                    <div class="py-[26px] px-4 flex flex-col gap-6 bg-grey-1">
                        <style>.cmsb364-flex {
display: flex
}
.cmsb364-size-10 {
width: 2.5rem;
height: 2.5rem
}
.cmsb364-items-center {
align-items: center
}
.cmsb364-justify-center {
justify-content: center
}
.cmsb364-gap-2 {
gap: 0.5rem
}</style>
<div>
    <a style="color:#1d3766;"
       class="text-sm text-optimo cmsb364-flex cmsb364-items-center cmsb364-gap-2"
       href="https://www.espaceplaisir.fr/949-top-des-ventes">
        <i class="cmsb364-size-10 cmsb364-flex cmsb364-justify-center cmsb364-items-center">
            <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 17.01 17.01" width="2.5rem" height="3.33rem" class="calc-top-ventes">
                <style>
                    .calc-top-ventes .cls-1 { fill:#1d3766; }
                    .calc-top-ventes .cls-2 { fill:#fff; }
                </style>
                <circle class="cls-1" cx="8.5" cy="8.5" r="8.5"/>
                <g>
                    <path class="cls-2" d="M8.5,12.08h0s-1.22,3.13-1.22,3.13c-.06.16-.2.26-.37.28-.01,0-.03,0-.04,0-.15,0-.29-.08-.38-.21l-.95-1.58-1.76.5c-.16.04-.33,0-.44-.13-.11-.12-.14-.3-.08-.45l1.24-3.2c.22.22.46.41.71.59.69.5,1.5.84,2.38.98.3.05.59.08.9.08Z"/>
                    <path class="cls-2" d="M13.66,14.08c-.11.12-.28.17-.45.13l-1.76-.5-.95,1.58c-.08.13-.22.21-.38.21,0,0-.02,0-.03,0-.17-.01-.31-.12-.37-.28l-1.22-3.12h0c.31,0,.61-.04.9-.09.88-.14,1.69-.48,2.38-.98.25-.18.48-.38.7-.59l1.25,3.2c.06.15.03.33-.08.45Z"/>
                    <path class="cls-2" d="M8.5,1.52c-2.66,0-4.81,2.17-4.81,4.85s2.15,4.85,4.81,4.85,4.81-2.17,4.81-4.85S11.16,1.52,8.5,1.52ZM10.79,5.87l-.9.89.21,1.25c.02.13-.03.25-.14.33-.06.04-.13.07-.19.07-.06,0-.11-.01-.16-.04l-1.11-.59-1.11.59c-.11.06-.25.05-.35-.03-.1-.07-.16-.2-.14-.33l.21-1.25-.9-.89c-.09-.09-.12-.22-.08-.34.04-.12.14-.21.27-.23l1.24-.18.55-1.14c.11-.23.49-.23.6,0l.55,1.14,1.24.18c.13.02.23.1.27.23.04.12,0,.25-.08.34Z"/>
                </g>
            </svg>
        </i>
        Top des ventes
    </a>
</div>

<div>
    <a style="color:#eb5c5f;"
       class="text-sm text-optimo cmsb364-flex cmsb364-items-center cmsb364-gap-2"
       href="https://www.espaceplaisir.fr/1103-promotions">
        <i class="cmsb364-size-10 cmsb364-flex cmsb364-justify-center cmsb364-items-center">
            <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 15 20" width="2.5rem" height="3.33rem" class="calc-soldes">
                <style>
                    .calc-soldes .cls-1 { fill:#eb5c5f; }
                    .calc-soldes .cls-2 { fill:#fff; }
                </style>
                <circle class="cls-1" cx="7.5" cy="10" r="7.5"/>
                <path class="cls-2" d="M2.938,8.064c0-1.132.838-2.054,2.086-2.054,1.142,0,2.086.828,2.086,2.054,0,1.142-.838,2.075-2.086,2.075-1.153,0-2.086-.828-2.086-2.075ZM6.386,8.075c0-.828-.597-1.384-1.362-1.384-.807,0-1.341.618-1.341,1.384,0,.838.597,1.393,1.341,1.393.828,0,1.362-.618,1.362-1.393ZM5.726,13.409l3.259-7.451.692.294-3.259,7.451-.692-.294ZM8.241,11.523c0-1.132.838-2.054,2.086-2.054,1.153,0,2.096.817,2.096,2.054,0,1.142-.838,2.064-2.096,2.064-1.143,0-2.086-.828-2.086-2.064ZM11.699,11.533c0-.828-.608-1.383-1.362-1.383-.817,0-1.362.618-1.362,1.383,0,.828.608,1.394,1.362,1.394.817,0,1.362-.618,1.362-1.394Z"/>
            </svg>
        </i>
        Promotions
    </a>
</div>

<div>
    <a class="text-sm text-optimo cmsb364-flex cmsb364-items-center cmsb364-gap-2"
       href="https://www.espaceplaisir.fr/marques/womanizer">
        <i class="cmsb364-size-10 cmsb364-flex cmsb364-justify-center cmsb364-items-center">
            <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 15 20" width="2.5rem" height="3.33rem" class="calc-womanizer">
                <style>
                    .calc-womanizer .cls-1 { fill:#fff; }
                    .calc-womanizer .cls-2 { fill:#eb5c5f; }
                </style>
                <circle class="cls-2" cx="7.5" cy="10" r="7.5"/>
                <path class="cls-1" d="M7.5,3.897c-3.365,0-6.103,2.738-6.103,6.103s2.738,6.103,6.103,6.103,6.103-2.738,6.103-6.103-2.738-6.103-6.103-6.103M7.5,4.196c3.201,0,5.804,2.604,5.804,5.804s-2.604,5.804-5.804,5.804S1.696,13.201,1.696,10s2.604-5.804,5.804-5.804"/>
                <path class="cls-1" d="M8.089,9.68c-.01,1.001-.232,2.033-.589,2.655-.357-.611-.568-1.647-.58-2.657,0-.615-.04-1.886.577-1.886s.592,1.331.591,1.888M9.909,7.613c.242.55.425,1.317.425,2.222,0,1.741-.646,3.183-1.651,3.183-.374,0-.69-.173-.945-.475.661-.731,1.074-1.885,1.077-2.847h0s0-.003,0-.005c0,0,0-.002,0-.003h0c-.002-1.279-.502-2.15-1.316-2.15s-1.312.844-1.312,2.15h0s0,0,0,0c0,0,0,0,0,.001h0c0,.964.413,2.123,1.075,2.855-.254.3-.615.473-.943.473-.939,0-1.635-1.444-1.635-3.202,0-.899.166-1.658.404-2.203h-.675c-.298.573-.46,1.326-.46,2.212,0,2.095.983,3.444,2.363,3.444.436,0,.837-.188,1.184-.491.347.303.747.491,1.182.491,1.362,0,2.37-1.349,2.37-3.434,0-.889-.164-1.646-.466-2.222h-.674Z"/>
            </svg>
        </i>
        Womanizer
    </a>
</div>

<div>
    <a style="color:#1d3766;" 
       class="text-sm text-optimo cmsb364-flex cmsb364-items-center cmsb364-gap-2"
       href="https://www.espaceplaisir.fr/conseils">
        <i class="cmsb364-size-10 cmsb364-flex cmsb364-justify-center cmsb364-items-center">
            <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 15 20" width="2.5rem" height="3.33rem" class="calc-conseils">
                <style>
                    .calc-conseils .cls-1 { fill:#fff; }
                    .calc-conseils .cls-2 { fill:#1d3766; }
                </style>
                <circle class="cls-2" cx="7.51" cy="10" r="7.5"/>
                <path class="cls-1" d="M5.8,7.23c.13.03.28,0,.42,0h.04l.52-.03c.71-.07,1.32.04,1.93-.03.05,0,.09-.07.12-.12.04-.07.05-.15.01-.23t-.07-.05c-.09-.02-.18-.03-.27-.02-.04,0-.09,0-.13,0-.34-.02-.68-.05-1.02-.07l-.84-.06s-.07,0-.12,0h-.1s0,0,0,0c-.13.01-.25.02-.38.04-.01,0-.03,0-.05,0-.07,0-.18.08-.23.16-.06.11-.07.15-.02.26.05.09.12.13.19.15Z"/>
                <path class="cls-1" d="M5.67,8.66c.05.09.05.12.13.14.13.03.26.04.4.04h.04l.51-.04c.71-.07,1.36-.06,1.97-.13.05,0,.06-.02.09-.07.03-.07.03-.1.01-.14-.03-.06-.04-.06-.1-.08-.09-.02-.18-.03-.27-.02-.04,0-.09,0-.13,0-.34-.02-.68-.05-1.02-.07l-.84-.06s-.07,0-.12,0h-.1s0,0,0,0c-.13.01-.25.02-.38.04-.01,0-.03,0-.05,0-.07,0-.1.05-.13.13-.04.12-.03.14,0,.27Z"/>
                <path class="cls-1" d="M5.62,10.25c.05.09.11.07.18.09.13.03.26.04.4.04h.04l.66-.02c.71-.07,1.05-.07,1.66-.14.05,0,.2-.02.23-.07.04-.07.05-.09,0-.16-.03-.06-.04-.06-.09-.07-.09-.02-.18-.03-.27-.02-.04,0-.09,0-.13,0-.34-.02-.68-.05-1.02-.07l-.84-.06s-.07,0-.12,0h-.1s0,0,0,0c-.13.01-.25.02-.38.04-.01,0-.03,0-.05,0-.07,0-.13.1-.18.18-.06.11-.05.15,0,.26Z"/>
                <path class="cls-1" d="M12.52,11.38c-.01-.06-.03-.12-.04-.18-.02-.06-.05-.12-.08-.18-.08-.16-.2-.31-.35-.42-.15-.12-.33-.19-.51-.23-.16-.02-.32-.02-.47,0-.07.01-.13.03-.19.05l-.1.03c-.09.03-.12.06-.19.13,0,0-.05.04-.05.05-.03-.09-.04-.54-.03-.9.04-1.08.04-2.19.04-3.26v-1.35c.02-.14,0-.27-.06-.4-.06-.1-.15-.18-.26-.23-.12-.05-.24-.07-.37-.06h-.28s-.82,0-.82,0h-1.64c-.73,0-1.47.06-2.18.07h-.27c-.16-.01-.33,0-.48.05-.14.05-.26.16-.32.3-.03.07-.05.14-.06.22,0,.08,0,.17,0,.25,0,.36,0,.72.01,1.07.02,1.39-.07,2.68-.05,4.01.02,1.33.14,2.71.16,4,0,.17,0,.34,0,.5,0,.07,0,.13,0,.2,0,.06.02.12.04.18.04.11.13.2.24.25.12.04.24.06.36.04h.28c.16,0,.32,0,.48,0,.63,0,1.26-.02,1.88-.03.33,0,.67-.05.99-.12.35-.07.34-.11.02-.19-.33-.09-.67-.14-1.01-.15-.74-.03-1.45-.1-2.18-.1h-.42s-.06,0-.07-.03c0-.03-.01-.05,0-.08.1-2.57-.17-5.7-.14-8.45v-.86s.01-.41.01-.41c0-.01,0-.03.01-.04l1.79-.07,3.64.02s.06.5.03,1.07v.03c.01,1.04.02,2.08.04,3.1,0,.12,0,.25,0,.38,0,.34-.01.85.05,1.19,0,.05,0,.05,0,.04-.07-.04-.28-.24-.35-.28-.07-.03-.15-.06-.23-.08-.08-.02-.16-.03-.24-.03-.08,0-.16,0-.23.01-.07,0-.15.02-.22.05-.07.02-.13.04-.2.07l-.2.1c-.08.05-.15.11-.2.18-.05.07-.09.14-.13.22-.01.04-.03.08-.04.13-.05,0-.1,0-.15,0-.03,0-.07,0-.1,0-.26-.02-.52-.04-.78-.05l-.65-.04s-.06,0-.09,0h-.08s0,0,0,0c-.1.01-.19.02-.29.03-.01,0-.02,0-.04,0-.06,0-.1.08-.14.14-.05.09-.05.2,0,.29.04.07.08.16.14.17.1.02.2.03.31.03h.03l.39.02c.5-.05.96-.09,1.39-.14,0,.14,0,.27.03.41.02.12.05.22.08.34.03.11.07.21.11.31.16.39.35.76.58,1.11.1.14.23.26.37.34.16.1.27.03.26-.14,0-.17-.06-.25-.13-.41-.14-.31-.44-.68-.55-.98l-.05-.11-.04-.11c-.03-.07-.05-.15-.06-.22-.06-.23-.02-.63.09-.89,0-.02.02-.05.03-.07,0-.02.02-.03.03-.05,0-.02.01-.01.03-.03l.02-.02s.07-.06.08-.06h.02s.09-.05.13-.06c.06-.01.1-.01.14-.01.04.01.24-.01.28,0,.08.03.16.08.22.14l.06.07.02.02s.02.03.03.04l.06.09c.09.13.16.24.21.4.17.36.28.48.41.86l.04-.09.02-.04.09-.25.02-.04.06-.15.2-.35c.06-.16.12-.27.2-.42,0-.02.02-.03.03-.05l.02-.03s.02-.02.02-.03c.01-.02.03-.03.05-.05,0,0,.01-.01.02-.02,0,0,0,0,0,0,0,0,0,0,.01,0h0s.01,0,.01,0h.03s.05-.02.05-.02c.03,0,.06,0,.09-.02.03,0,.05,0,.08,0,.02,0,.04,0,.06,0,.04.01.1.02.13.04.03.03.1.07.12.1,0,.03.01.05.02.08,0,0,0,.01,0,.02l.02.07c.01.06,0,.29,0,.35-.02.15-.07.58-.12.72-.04.13-.08.26-.13.38-.04.11-.09.21-.14.32h0c-.2.44-.51.75-.78,1.13-.03.05-.07.1-.1.15-.13.2-.25.26-.3.5-.07.26.06.4.31.31.25-.08.47-.22.65-.41.36-.41.67-.86.92-1.35.02-.04.05-.09.07-.14.18-.33.31-.68.41-1.05.05-.2.08-.41.07-.62,0-.06,0-.11,0-.17,0-.06-.01-.11-.02-.17Z"/>
            </svg>
        </i>
        Conseils
    </a>
</div>                    </div>
                    <div class="customer-links bg-white py-4 flex flex-col items-start">
                        <template x-if="isCustomerLoggedIn">
                            <div class="w-full pt-2">
                                <div class="flex flex-col gap-1 pb-6 border-b border-grey-1 w-full px-4 text-sm">
                                    <a class="flex items-center gap-2 py-2" href="https://www.espaceplaisir.fr/customer/account/">
                                        <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 22 24" fill="currentColor" class="size-[18px]" width="24" height="24" role="img"><path d="M21.645 23.305a14.154 14.154 0 0 0-.215-1.371 51.486 51.486 0 0 0-.608-2.5c-.674-2.443-2.248-4.14-4.679-5.045-.456-.17-.94-.281-1.407-.388-.177-.04-.358-.083-.535-.126l.221-.166c.241-.18.49-.365.742-.548.514-.373.864-.763 1.067-1.194.33-.7.752-1.623 1.096-2.57.41-1.124.28-2.296.113-3.401-.09-.597-.348-1.139-.595-1.663l-.098-.207a3.597 3.597 0 0 0-.489-.772c-.283-.337-.586-.665-.878-.983l-.346-.378c-.582-.64-1.33-1-2.049-1.315-.115-.051-.256-.043-.382-.032-.138.013-.307.085-.324.362-.015.273.096.474.33.593.088.045.178.085.267.126.184.08.371.166.523.288.448.358.964.778 1.403 1.247.603.649.998 1.254 1.237 1.91.185.506.264 1.04.34 1.553.095.625.165 1.446-.106 2.237a23.929 23.929 0 0 1-.761 1.915c-.104.239-.26.488-.488.787-.397.516-.956.857-1.495 1.188l-.181.11c-.226.141-.47.246-.7.306-.194.05-.399.083-.595.115-.185.03-.377.06-.563.106-.759.186-1.426.192-2.038.017-1.045-.296-2.133-.659-2.934-1.518a1.434 1.434 0 0 0-.224-.19c-.747-.507-1.273-1.29-1.612-2.392-.331-1.084-.418-1.97-.273-2.792.251-1.418.673-2.403 1.37-3.198.739-.84 1.67-1.472 2.845-1.928.909-.354 1.802-.356 2.557-.311.107.006.292-.043.352-.147.058-.1.017-.29-.056-.38a1.074 1.074 0 0 0-.407-.324 5.931 5.931 0 0 0-.85-.258C9.728-.05 9.216-.015 8.606.175c-1.185.368-2.09.808-2.842 1.38-1.63 1.238-2.54 2.953-2.783 5.243-.1.942.126 1.861.343 2.748l.05.203c.119.493.373.925.616 1.346.064.108.125.217.187.328.312.56.698 1.004 1.18 1.358.13.096.257.211.379.344a4.22 4.22 0 0 0 1.346.972l.149.073a14.219 14.219 0 0 0-1.64.505c-1.853.7-3.196 1.891-3.996 3.54C1.19 19.05.9 19.97.647 20.78a6.141 6.141 0 0 0-.29 2.16c.006.134.032.335.12.523.074.16.176.25.285.25.075 0 .184-.041.28-.238a3.19 3.19 0 0 0 .266-.81c.207-1.185.441-2.073.757-2.879.723-1.844 1.866-3.096 3.495-3.827 1.3-.585 2.344-.851 3.38-.862.083 0 .164 0 .247.004.13.005.265.009.397 0 .211-.015.424-.038.631-.057.252-.026.512-.053.768-.068 1.207-.073 2.198-.035 3.115.121.866.145 1.783.341 2.612.774 1.393.73 2.382 1.849 2.937 3.329.251.67.42 1.4.516 2.233.064.56.143 1.125.217 1.652.026.177.064.367.122.576.055.202.205.328.384.32.053-.002.113.002.172.008.052.005.107.011.16.011.135 0 .267-.034.357-.19.09-.158.08-.377.066-.494l.004-.011Z"/><path d="M8.816 9.171c-.17-.12-.344-.22-.512-.296-.094-.043-.245-.056-.326 0-.064.045-.105.145-.12.298-.006.06.024.13.092.216.518.66 1.154 1.051 1.891 1.155.18.026.36.039.542.039.749 0 1.514-.22 2.327-.665.343-.188.64-.461.933-.856l.07-.095-.118.01c-.03.002-.056.004-.077.004a.441.441 0 0 0-.1.013c-.233.064-.463.13-.696.196-.405.116-.825.235-1.239.346-1.045.28-1.917.16-2.67-.365h.003Z"/><title>ico-customer</title></svg>
                                        Compte                                    </a>
                                    <a class="flex items-center gap-2 py-2" href="https://www.espaceplaisir.fr/sales/order/history/">
                                        <svg xmlns="http://www.w3.org/2000/svg" id="Calque_2" fill="currentColor" viewbox="0 0 15 20" class="size-[18px]" width="24" height="24" role="img"><g id="BUSINESS"><g id="Finance_Payment"><g id="icon_cart"><path d="m4.48,3.1c.07-.93.58-1.82,1.36-2.39C6.61.14,7.64-.11,8.6.04c1.17.16,2.19.93,2.65,1.93.25.48.31,1.08.29,1.55l-.02,1.4v.73c0,.49,0,1-.04,1.5-.02.29-.13.5-.21.68-.1.21-.26.2-.36-.04-.07-.17-.16-.4-.17-.67-.02-.84-.05-1.7-.07-2.56-.01-.43-.03-.86-.04-1.3-.02-.38-.14-.75-.34-1.08-.41-.66-1.17-1.11-1.99-1.15-.82-.05-1.66.31-2.14.96-.25.3-.4.66-.46,1.03-.02.09-.02.19-.03.28v.35s-.02.71-.02.71v.2c0,.72,0,1.47-.05,2.2-.03.41-.18.74-.31,1-.15.31-.39.29-.52-.06-.1-.25-.23-.59-.25-.99,0-.09,0-.18,0-.26-.02-.69-.03-1.39-.05-2.09v-.57c0-.27-.01-.44.01-.7Z"/><path d="m.23,17.58c.27-2,.51-4.02.74-6.04l.77-6.05.14-1.13c.05-.43.31-.7.7-.75.19-.02.43,0,.61,0h.34s1.35.01,1.35.01l2.71.02,5.61.04c.19,0,.33.05.46.13.15.11.2.24.26.4.05.18.05.36.08.54l.04.34.17,1.3.26,1.91c.17,1.29.36,2.62.49,3.92.08.75.03,1.33,0,1.81-.05.57-.24.55-.44-.06-.14-.43-.33-1.02-.43-1.72-.19-1.28-.38-2.58-.59-3.94-.1-.68-.2-1.38-.31-2.1-.05-.36-.11-.73-.16-1.1l-.05-.3c0-.08-.08-.08-.14-.07-1.52.02-3.18.04-4.94.07-.91.01-1.84.02-2.8.03-.48,0-.96.01-1.45.02-.23,0-.57,0-.52,0-.04,0-.07.02-.06.07-.13,1.2-.27,2.53-.43,3.94-.17,1.49-.33,3.08-.48,4.68l-.38,3.12-.21,1.56-.03.23v.02s0,.02.01.02h.02s.23,0,.23,0h.58s.51,0,.51,0c1.83,0,3.74,0,5.58.06,1.05.04,1.87.23,2.54.38.79.19.74.48-.15.65-.63.12-1.5.29-2.51.3-.22,0-.44,0-.65,0-1.75.02-3.54.04-5.32.06H.88c-.19,0-.35-.06-.47-.13-.09-.05-.19-.14-.27-.25-.07-.11-.09-.16-.12-.29-.05-.1,0-.26,0-.4.01-.14.04-.28.06-.42.05-.32.09-.62.13-.92Z"/></g></g></g><title>ico-bag</title></svg>
                                        Mes commandes                                    </a>
                                    <a class="flex items-center gap-2 py-2" href="https://www.espaceplaisir.fr/wishlist/">
                                        <svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewbox="0 0 16 16" class="size-[18px]" width="24" height="24" role="img"><path d="M8.075 3.732c.02-.047.014-.04.06-.127.06-.12.127-.24.22-.36.333-.48.833-.846 1.372-1.012a2.228 2.228 0 0 1 1.486.046c.426.187.326.294-.127.287-.326.013-.76.1-1.206.28-.293.12-.566.3-.786.533-.106.12-.206.246-.286.393-.04.093-.073.113-.127.273-.04.166-.113.266-.133.493-.133 1.006-.326.953-.426 1.033a.398.398 0 0 1-.28 0c-.2-.074-.34-.44-.366-.72-.027-.187-.073-.32-.107-.486a1.248 1.248 0 0 0-.146-.413c-.067-.134-.153-.247-.233-.36a2.256 2.256 0 0 0-.653-.553c-.5-.287-1.12-.34-1.712-.2-1.186.22-1.958 1.512-1.738 2.791.133 1.313.939 2.532 1.838 3.678.926 1.14 1.985 2.232 3.09 3.318.247.246.134.133.16.166.027-.027-.08.08.167-.153.346-.326.673-.666 1.006-1a32.789 32.789 0 0 0 1.885-2.091l.246-.313c.846-1.126 1.652-2.399 1.799-3.704.08-.733.013-1.32-.16-1.806-.107-.28-.153-.44-.073-.48.066-.033.273.047.52.354.345.413.719 1.192.618 2.111-.013.2-.04.393-.086.573-.333 1.52-1.206 2.765-2.078 3.904l-.027.04c-.233.3-.48.58-.726.866-.353.393-.633.707-.92 1-.272.286-.552.566-.832.846l-.426.413-.226.22c-.14.12-.274.293-.42.366-.28.147-.62.027-.866-.293l-.466-.473-.82-.853c-1.079-1.152-2.144-2.332-3.01-3.717-.513-.826-.94-1.759-1.046-2.778-.053-.493-.06-1.033.1-1.546.146-.513.42-.986.793-1.372.366-.38.852-.667 1.372-.793a3.48 3.48 0 0 1 1.552-.047 2.949 2.949 0 0 1 1.891 1.36c.04.053.06.113.094.173l.033.066.033.093.027.067c.026.073.046.113.046.113s.04-.06.1-.213v.007Z"/><title>ico-wishlist</title></svg>
                                        Mes favoris                                    </a>
                                </div>
                                <a class="flex items-center gap-2 py-2 px-4 my-4" href="https://www.espaceplaisir.fr/customer/account/logout/">
                                    <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24" fill="currentColor" class="size-3 m-2.5" width="24" height="24" role="img"><path d="m8.473 7.26 4.53 4.611c1.8 1.87 3.61 3.741 5.41 5.612l.71.73c.48.49.97 1 1.41 1.54.25.31.35.64.44.9.1.31-.08.43-.39.26-.22-.12-.51-.27-.78-.54-3.29-3.29-6.91-6.661-10.86-10.412L6.173 7.16l-.2-.2c-.72-.7-1.46-1.43-2.14-2.181-.38-.42-.56-.88-.71-1.25-.17-.44.07-.64.54-.43.34.15.8.35 1.21.73.09.08.18.16.26.24.7.66 1.41 1.32 2.12 1.99l.02.02.54.53.65.65h.01Z"/><path d="m7.243 15.583 4.6-4.542 5.59-5.441.73-.71c.49-.48 1-.98 1.54-1.421.32-.25.63-.36.91-.44.04-.01.08-.02.11-.02.05 0 .11-.02.14 0 .07.02.08.06.07.1-.04.11.02.17-.08.33-.12.21-.27.51-.53.77-3.27 3.311-6.64 6.942-10.38 10.904l-2.79 2.78-.2.2c-.7.72-1.42 1.46-2.18 2.141-.43.39-.88.56-1.26.71-.44.17-.64-.06-.43-.54.15-.34.35-.8.73-1.21.08-.09.16-.18.24-.26l1.98-2.131.02-.02.53-.55c.25-.26.45-.46.64-.66l.02.01Z"/><title>ico-close</title></svg>
                                    Déconnexion                                </a>
                            </div>
                        </template>
                        <template x-if="!isCustomerLoggedIn">
                            <div class="w-full pt-2">
                                <div class="flex items-center pb-6 border-b border-grey-1 w-full px-5 py-1 text-sm">
                                    <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 22 24" fill="currentColor" class="mr-2.5 size-[18px] icon-customer" width="18" height="18" aria-hidden="true"><path d="M21.645 23.305a14.154 14.154 0 0 0-.215-1.371 51.486 51.486 0 0 0-.608-2.5c-.674-2.443-2.248-4.14-4.679-5.045-.456-.17-.94-.281-1.407-.388-.177-.04-.358-.083-.535-.126l.221-.166c.241-.18.49-.365.742-.548.514-.373.864-.763 1.067-1.194.33-.7.752-1.623 1.096-2.57.41-1.124.28-2.296.113-3.401-.09-.597-.348-1.139-.595-1.663l-.098-.207a3.597 3.597 0 0 0-.489-.772c-.283-.337-.586-.665-.878-.983l-.346-.378c-.582-.64-1.33-1-2.049-1.315-.115-.051-.256-.043-.382-.032-.138.013-.307.085-.324.362-.015.273.096.474.33.593.088.045.178.085.267.126.184.08.371.166.523.288.448.358.964.778 1.403 1.247.603.649.998 1.254 1.237 1.91.185.506.264 1.04.34 1.553.095.625.165 1.446-.106 2.237a23.929 23.929 0 0 1-.761 1.915c-.104.239-.26.488-.488.787-.397.516-.956.857-1.495 1.188l-.181.11c-.226.141-.47.246-.7.306-.194.05-.399.083-.595.115-.185.03-.377.06-.563.106-.759.186-1.426.192-2.038.017-1.045-.296-2.133-.659-2.934-1.518a1.434 1.434 0 0 0-.224-.19c-.747-.507-1.273-1.29-1.612-2.392-.331-1.084-.418-1.97-.273-2.792.251-1.418.673-2.403 1.37-3.198.739-.84 1.67-1.472 2.845-1.928.909-.354 1.802-.356 2.557-.311.107.006.292-.043.352-.147.058-.1.017-.29-.056-.38a1.074 1.074 0 0 0-.407-.324 5.931 5.931 0 0 0-.85-.258C9.728-.05 9.216-.015 8.606.175c-1.185.368-2.09.808-2.842 1.38-1.63 1.238-2.54 2.953-2.783 5.243-.1.942.126 1.861.343 2.748l.05.203c.119.493.373.925.616 1.346.064.108.125.217.187.328.312.56.698 1.004 1.18 1.358.13.096.257.211.379.344a4.22 4.22 0 0 0 1.346.972l.149.073a14.219 14.219 0 0 0-1.64.505c-1.853.7-3.196 1.891-3.996 3.54C1.19 19.05.9 19.97.647 20.78a6.141 6.141 0 0 0-.29 2.16c.006.134.032.335.12.523.074.16.176.25.285.25.075 0 .184-.041.28-.238a3.19 3.19 0 0 0 .266-.81c.207-1.185.441-2.073.757-2.879.723-1.844 1.866-3.096 3.495-3.827 1.3-.585 2.344-.851 3.38-.862.083 0 .164 0 .247.004.13.005.265.009.397 0 .211-.015.424-.038.631-.057.252-.026.512-.053.768-.068 1.207-.073 2.198-.035 3.115.121.866.145 1.783.341 2.612.774 1.393.73 2.382 1.849 2.937 3.329.251.67.42 1.4.516 2.233.064.56.143 1.125.217 1.652.026.177.064.367.122.576.055.202.205.328.384.32.053-.002.113.002.172.008.052.005.107.011.16.011.135 0 .267-.034.357-.19.09-.158.08-.377.066-.494l.004-.011Z"/><path d="M8.816 9.171c-.17-.12-.344-.22-.512-.296-.094-.043-.245-.056-.326 0-.064.045-.105.145-.12.298-.006.06.024.13.092.216.518.66 1.154 1.051 1.891 1.155.18.026.36.039.542.039.749 0 1.514-.22 2.327-.665.343-.188.64-.461.933-.856l.07-.095-.118.01c-.03.002-.056.004-.077.004a.441.441 0 0 0-.1.013c-.233.064-.463.13-.696.196-.405.116-.825.235-1.239.346-1.045.28-1.917.16-2.67-.365h.003Z"/></svg>
                                    <a onclick="hyva?.setCookie('login_redirect',window.location.href,1)"
                                       href="https://www.espaceplaisir.fr/customer/account/index/"
                                    >
                                        Se connecter                                    </a>
                                    <span class="mx-1">|</span>
                                    <a href="https://www.espaceplaisir.fr/customer/account/create/"
                                    >
                                        Créer un compte                                    </a>
                                </div>

                                <div class="flex items-center py-6 px-4 text-sm" :class="{'pointer-events-none': blockChatButton}" @click.prevent="chatMenuHandler()">
                                    <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewbox="0 0 20 16" fill="none" class="mr-2.5 size-6 icon-customer" aria-hidden="true">
    <g clip-path="url(#clip0_12951_4540)">
        <path d="M13.8952 7.98552C14.3441 7.96558 14.9726 7.64658 14.9426 6.9986C14.9227 6.44035 14.4638 6.01169 13.9052 6.02165C13.3765 6.02165 12.9775 6.47025 12.9775 7.04845C12.9775 7.33754 13.0873 7.58676 13.2668 7.7662C13.4264 7.91574 13.6259 7.99549 13.8454 7.99549H13.8952V7.98552Z" fill="currentColor"/>
        <path d="M14.9227 6.93901C14.8927 6.41066 14.384 5.982 13.8553 6.03184C13.187 6.05178 12.8279 6.86923 13.0873 7.44742C13.1172 7.52717 13.1571 7.59695 13.2169 7.65676C13.3167 7.78636 13.4663 7.88605 13.6259 7.93589C13.7157 7.9658 13.7855 7.97577 13.8553 7.97577C13.9252 7.97577 13.9252 7.98574 13.8454 7.98574C13.7855 7.98574 13.7057 7.98574 13.6159 7.95583C13.0174 7.78636 12.808 6.98885 13.1272 6.45053C13.4264 5.8524 14.384 5.8225 14.783 6.41066C14.9725 6.67982 15.0424 7.0387 14.9127 7.3577L14.8828 7.42748C14.7631 7.65676 14.5436 7.82623 14.3142 7.91595C14.1845 7.9658 14.0648 7.98574 13.975 7.98574C13.8653 7.98574 13.8753 7.98574 13.995 7.9658C14.0748 7.94586 14.1845 7.91595 14.3142 7.86611C14.3441 7.85614 14.3641 7.84617 14.394 7.82623C14.6035 7.72655 14.783 7.55708 14.8728 7.33776C14.8927 7.27795 14.9127 7.21813 14.9227 7.15832C14.9326 7.07857 14.9326 7.00879 14.9227 6.93901Z" fill="currentColor"/>
        <path d="M5.98506 7.98555H6.00501C6.52372 7.98555 6.95264 7.55689 6.96262 7.0086C6.96262 6.74941 6.88282 6.50019 6.72322 6.32075C6.54367 6.12138 6.29429 6.01172 6.00501 6.01172H5.98506C5.43644 6.01172 5.01748 6.42044 5.00751 6.96873C5.00751 7.22792 5.09728 7.47714 5.26686 7.66655C5.44641 7.86592 5.71574 7.98555 5.99504 7.98555H5.98506Z" fill="currentColor"/>
        <path d="M6.92268 6.87897C6.90273 6.34065 6.3541 5.9419 5.82542 6.04159C5.5162 6.08146 5.22692 6.28084 5.09725 6.56994C4.96757 6.84906 4.97754 7.19797 5.12717 7.4771C5.16707 7.54688 5.21695 7.61666 5.2768 7.67648C5.38652 7.7961 5.54612 7.88582 5.70572 7.93567C5.7955 7.96557 5.86532 7.97554 5.93515 7.98551C5.96508 7.98551 5.97505 7.98551 5.98503 7.98551C5.98503 7.98551 5.9551 7.98551 5.92518 7.98551C5.86532 7.98551 5.78552 7.98551 5.69575 7.94564C5.10722 7.80607 4.78802 7.03847 5.10722 6.48022C5.3965 5.90202 6.34413 5.7824 6.78303 6.35062C6.98253 6.61978 7.03241 6.97866 6.93266 7.29766L6.91271 7.36744C6.82293 7.6067 6.6334 7.80607 6.40398 7.91573C6.2743 7.97554 6.1546 7.98551 6.06483 7.98551C5.9551 7.98551 5.96508 7.97554 6.08478 7.96557C6.16458 7.95561 6.28428 7.9257 6.40398 7.86589C6.4339 7.85592 6.45385 7.83598 6.48378 7.82601C6.68328 7.70638 6.83291 7.50701 6.90273 7.28769C6.92268 7.21791 6.93266 7.1581 6.94263 7.09828C6.94263 7.00856 6.94263 6.94875 6.94263 6.87897H6.92268Z" fill="currentColor"/>
        <path d="M9.93519 7.99609C10.2743 7.98612 10.5736 7.85653 10.7531 7.65715C10.9028 7.48768 10.9726 7.27833 10.9526 7.03908C10.9526 6.75995 10.8629 6.50076 10.6933 6.32132C10.5237 6.13192 10.2843 6.03223 10.025 6.03223C9.47634 6.03223 9.01748 6.50076 9.00751 7.05902C9.00751 7.32818 9.10726 7.5774 9.29678 7.75684C9.46636 7.91634 9.67584 8.00606 9.89529 8.00606H9.93519V7.99609Z" fill="currentColor"/>
        <path d="M10.9227 6.95883C10.9227 6.43048 10.4339 5.96195 9.89524 6.05167C9.25684 6.12145 8.81794 6.88905 9.11719 7.46724C9.15709 7.53702 9.19699 7.60681 9.24687 7.67659C9.35659 7.80618 9.49624 7.90587 9.65584 7.94575C9.74562 7.97565 9.81544 7.98562 9.87529 7.98562C9.88527 7.98562 9.90522 7.98562 9.92517 7.98562C9.92517 7.98562 9.89524 7.98562 9.86532 7.98562C9.80547 7.98562 9.72567 7.98562 9.63589 7.95572C9.04736 7.79621 8.77804 6.99871 9.14711 6.47036C9.31669 6.21117 9.60597 6.01179 9.93514 5.99185C10.2643 5.96195 10.6134 6.12145 10.793 6.41054C10.9626 6.68967 11.0025 7.04855 10.9227 7.36755L10.9027 7.43734C10.813 7.67659 10.5835 7.84606 10.3441 7.92581C10.2045 7.97565 10.0947 7.98562 10.005 7.98562C9.89524 7.98562 9.90522 7.98562 10.0249 7.96568C10.1047 7.95572 10.2244 7.92581 10.3441 7.88593C10.374 7.87596 10.394 7.866 10.4239 7.85603C10.6334 7.76631 10.8129 7.58687 10.8828 7.36755C10.9027 7.29777 10.9127 7.23796 10.9127 7.17815C10.9127 7.09839 10.9127 7.01864 10.9127 6.95883H10.9227Z" fill="currentColor"/>
        <path d="M3.08239 3.4497C2.06493 4.28708 1.5163 5.50328 1.66593 6.77929C1.70583 7.4173 1.93525 8.0553 2.22453 8.65344C2.37416 8.9525 2.54373 9.25157 2.75321 9.53069C2.85296 9.67026 2.94274 9.81979 3.06244 9.94939L3.47141 10.4279C3.57116 10.5276 3.63102 10.6472 3.68089 10.7668C3.71082 10.8964 3.71082 11.026 3.72079 11.1656C3.72079 11.4248 3.70084 11.5145 3.69087 11.6939C3.66094 12.003 3.61107 12.312 3.54124 12.6111C3.47141 12.9101 3.39161 13.2092 3.29186 13.4983C3.22204 13.7076 3.25196 13.6179 3.23201 13.6578L3.21206 13.7076C3.21206 13.7076 3.16219 13.7874 3.13226 13.8273C3.08239 13.917 3.20209 13.8671 3.23201 13.8472C3.28189 13.8273 3.34174 13.7974 3.40159 13.7675L3.58114 13.6478L3.82054 13.4784C3.98014 13.3587 4.12977 13.2391 4.27939 13.1095C4.42902 12.9799 4.5587 12.8503 4.68837 12.7108C4.74822 12.641 4.81805 12.5712 4.86792 12.5014L4.94772 12.3918C5.00757 12.322 5.05745 12.2323 5.10732 12.1525C5.25695 12.0129 5.34673 11.8235 5.54623 11.7637C5.72578 11.674 5.94523 11.7637 6.15471 11.7637C6.26443 11.7637 6.35421 11.7837 6.47391 11.8136L6.64348 11.8435L6.99261 11.9033C7.45146 11.983 7.92029 12.0428 8.38912 12.1027C9.32678 12.2023 10.2644 12.2422 11.1921 12.2023C13.0375 12.1226 14.8929 11.7039 16.3592 10.727C16.9078 10.3382 17.4066 9.88957 17.8255 9.39113C18.6535 8.37431 19.1123 7.04845 18.9427 5.78241C18.853 5.06465 18.7133 4.5064 18.5238 4.04783C18.2545 3.53942 18.424 3.36995 18.9826 3.88833C19.3617 4.25717 19.8006 4.89518 19.9303 5.74253C20.1597 7.20795 19.6909 8.73319 18.7632 9.91948C17.8355 11.0958 16.5587 12.0628 15.0525 12.6111C13.5662 13.1793 11.9402 13.3886 10.3043 13.4086C9.48638 13.4185 8.65845 13.3687 7.82054 13.279C7.40159 13.2291 6.98264 13.1793 6.56368 13.1095L6.15471 13.0397C6.15471 13.0397 6.07491 13.0597 6.06493 13.0995L6.04498 13.1294L5.93525 13.279C5.86543 13.3787 5.77565 13.4784 5.69585 13.578C5.52628 13.7675 5.33675 13.9569 5.14722 14.1363C4.94772 14.3157 4.73825 14.4852 4.5188 14.6447L4.16967 14.8939C3.97017 15.0335 3.76069 15.1531 3.55121 15.2727C3.14224 15.512 2.70333 15.7413 2.31431 15.8908C1.89535 16.0703 1.6759 15.9805 1.48638 15.9407C1.41655 15.9407 1.22703 15.831 1.13725 15.6914C1.05745 15.5818 1.08737 15.5618 1.05745 15.4921C1.04747 15.3924 0.997599 15.3425 1.00757 15.1731V14.9238C1.0375 14.8341 1.12727 14.6846 1.17715 14.565C1.49635 14.1064 1.70583 13.6279 1.86543 13.1893C1.94523 12.95 2.00508 12.7108 2.06493 12.4516C2.11481 12.1924 2.16468 11.9232 2.18463 11.6441C2.19461 11.5145 2.20458 11.355 2.20458 11.2653C2.20458 11.2553 2.20458 11.2453 2.19461 11.2354C2.22453 11.2752 2.15471 11.1955 2.09486 11.1257L1.92528 10.9263C1.80558 10.7967 1.68588 10.6572 1.58613 10.4977C1.36668 10.1886 1.12727 9.8796 0.947723 9.51076C0.538746 8.81294 0.229519 7.97555 0.099843 7.08833C-0.139559 5.55312 0.42902 3.85842 1.56618 2.72197C2.68338 1.58552 4.16967 0.947517 5.62603 0.588638C5.8355 0.528825 6.04498 0.469012 6.25446 0.439105C8.46892 -0.0194616 10.8629 -0.129119 13.1173 0.279604C14.4041 0.518856 15.3218 0.977423 16.02 1.39611C16.848 1.93443 16.5986 2.14378 15.6111 1.96434C14.8829 1.85468 13.8954 1.76496 12.7482 1.6254C12.4988 1.59549 12.2495 1.57555 12.0101 1.54565C10.035 1.38615 7.96019 1.54565 6.03501 2.05406L5.97515 2.074C5.4764 2.18365 5.01755 2.37306 4.54872 2.5525C4.23949 2.70203 3.97017 2.8416 3.72079 2.99113C3.50134 3.1606 3.26194 3.2902 3.07241 3.45967L3.08239 3.4497Z" fill="currentColor"/>
    </g>
    <defs>
        <clippath id="clip0_12951_4540">
            <rect width="20" height="16" fill="white"/>
        </clippath>
    </defs>
</svg>
                                    <span>Besoin d&#039;aide ?</span>
                                </div>
                            </div>
                        </template>
                    </div>
                </div>
            </div>
        </div>
    </div>

    <div x-show="menuActive"
         x-cloak
 class="fixed h-screen inset-0 bg-black opacity-30 z-50 top-0"
         @click.prevent="toggleMenu()"
         x-transition:enter="ease-out duration-200"
         x-transition:enter-start="opacity-0"
         x-transition:enter-end="opacity-100"
         x-transition:leave="ease-in duration-200"
         x-transition:leave-start="opacity-100"
         x-transition:leave-end="opacity-0"></div>
</div>
</div>                

<script>
    function initCartDrawer() {
        return {
            open: false,
            cart: null,
            cartData: null,
            itemsCount: 0,
            errorMessage: null,
            isWatching: false,
            isAuto: false,
            checkoutStatus: null,

            async toggleCartWindow () {
                await hyva.yield();
                this.cartHandler(this.cart || this.cartData);

                this.$nextTick(async () => {
                    this.open = true;
                    document.body.classList.add('overflow-hidden');

                    await hyva.yield();

                    this.viewCartEvent();
                    this.isAuto = false;
                })
            },

            openMinicart() {
                let oldSummary = 0;
                if (!this.isWatching) {
                    this.$watch('cart', async (cart) => {
                        if (cart.summary_count > oldSummary) {
                            this.$dispatch('toggle-cart', {});
                            this.isAuto = true;
                        } else {
                            await hyva.yield();
                            this.viewCartEvent();
                        }
                        oldSummary = cart.summary_count;
                    })

                    this.$watch('cartData', async (cartData) => {
                        if (cartData.summary_count > oldSummary) {
                            this.$dispatch('toggle-cart', {});
                            this.isAuto = true;
                        } else {
                            await hyva.yield();
                            this.viewCartEvent();
                        }
                        oldSummary = cartData.summary_count;
                    })

                    this.isWatching = true;
                }
            },

            async updateData({ cart = {summary_count: 0} }) {
                await hyva.yield();

                if (this.cart) {
                    this.cartHandler(cart);
                } else {
                    this.cartData = cart;
                }

                this.$dispatch('loading-page', false);
            },
            cartHandler (cart) {
                if (cart) {
                    const maxItems = 10;
                    this.cart = cart;
                    this.itemsCount = cart?.summary_count || 0;
                    this.cartItems = cart.items?.map(item => ({...item, oldQty: item.qty}));

                    if (maxItems) {
                        this.cartItems = this.cartItems?.slice(0, maxItems);
                    }
                }
            },
            cartItems: [],
            getItemCountTitle() {
                const label = this.itemsCount === 1 ? 'Produit': 'Produits';

                return `${this.itemsCount} ${label}`;
            },
            getMiniCartTitle() {
                return this.itemsCount == 0 ? 'Votre panier est vide' : 'Mon panier';
            },

            async deleteItemFromCart(itemId) {
                this.$dispatch('loading-page', true);

                await hyva.yield();

                fetch(`${BASE_URL}checkout/sidebar/removeItem/`, {
                    "headers": {
                        "content-type": "application/x-www-form-urlencoded; charset=UTF-8",
                    },
                    "body": `form_key=${hyva.getFormKey()}&item_id=${itemId}`,
                    "method": "POST",
                    "mode": "cors",
                    "credentials": "include"
                }).then(response => {
                    if (response.redirected) {
                        window.location.href = response.url;
                    } else if (response.ok) {
                        return response.json();
                    } else {
                        window.dispatchMessages && window.dispatchMessages([{
                            type: 'warning',
                            text: 'Could\u0020not\u0020remove\u0020item\u0020from\u0020quote.'
                        }]);
                    }
                }).then(async result => {
                    await hyva.yield();

                    window.dispatchMessages([{
                        type: result.success ? 'success' : 'error',
                        text: result.success
                            ? 'Vous\u0020avez\u0020supprim\u00E9\u0020l\u0027\u00E9l\u00E9ment.'
                            : result.error_message
                    }])

                    this.viewCartEvent();

                    window.dispatchEvent(new CustomEvent('reload-customer-section-data'));
                });
            },
            closeCart() {
                this.open = false;
                document.body.classList.remove('overflow-hidden');
            },
            showMinicartErrorMessage(response) {
                this.errorMessage = response.error_message;

                setTimeout(() =>{
                    this.errorMessage = null;
                }, 5000)
            },
            viewCartEvent() {
                this.$dispatch('i4-view-cart', {cartData: this.cart || this.cartData, isOpen: this.open, isAuto: this.isAuto});
            }
        }
    }
</script>

<section id="add-to-cart-drawer"
         x-data="initCartDrawer()"
         @private-content-loaded.window="updateData($event.detail.data)"
         @toggle-cart.window="toggleCartWindow"
         @keydown.window.escape="open=false"
         @i4-cart-update.window="openMinicart"
>
    <template x-if="cart">
        <div role="dialog"
             aria-labelledby="cart-drawer-title"
             aria-modal="true"
             :aria-hidden="!open"
             @click.outside="open=false"
             class="fixed inset-y-0 right-0 z-30 flex max-w-full">
            <div class="backdrop"
                 x-show="open"
                 x-transition:enter="ease-in-out duration-500"
                 x-transition:enter-start="opacity-0"
                 x-transition:enter-end="opacity-100"
                 x-transition:leave="ease-in-out duration-500"
                 x-transition:leave-start="opacity-100"
                 x-transition:leave-end="opacity-0"
                 role="button"
                 @click="closeCart()"
                 aria-label="Close&#x20;minicart"
            ></div>
            <div class="relative w-screen shadow-box1 lg:max-w-[410px] overflow-auto bg-white mt-24 lg:mt-0 rounded-t-lg md:rounded-t-none overflow-hidden"
                 x-show="open"
                 x-transition:enter="transform transition ease-in-out duration-500 sm:duration-700"
                 x-transition:enter-start="translate-y-full sm:translate-y-0 md:translate-x-full"
                 x-transition:enter-end="translate-y-0 sm:translate-y-0 md:translate-x-0"
                 x-transition:leave="transform transition ease-in-out duration-500 sm:duration-700"
                 x-transition:leave-start="translate-y-0 sm:translate-y-0 md:translate-x-0"
                 x-transition:leave-end="translate-y-full sm:translate-y-0 md:translate-x-full"
                 role="region"
                 :tabindex="open ? 0 : -1"
                 aria-label="Panier"
            >
                <div class="absolute top-0 right-2 flex p-2 mt-2">
                    <button @click="closeCart()" class="p-2">
                        <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24" fill="currentColor" width="25" height="25" aria-hidden="true"><path d="m8.473 7.26 4.53 4.611c1.8 1.87 3.61 3.741 5.41 5.612l.71.73c.48.49.97 1 1.41 1.54.25.31.35.64.44.9.1.31-.08.43-.39.26-.22-.12-.51-.27-.78-.54-3.29-3.29-6.91-6.661-10.86-10.412L6.173 7.16l-.2-.2c-.72-.7-1.46-1.43-2.14-2.181-.38-.42-.56-.88-.71-1.25-.17-.44.07-.64.54-.43.34.15.8.35 1.21.73.09.08.18.16.26.24.7.66 1.41 1.32 2.12 1.99l.02.02.54.53.65.65h.01Z"/><path d="m7.243 15.583 4.6-4.542 5.59-5.441.73-.71c.49-.48 1-.98 1.54-1.421.32-.25.63-.36.91-.44.04-.01.08-.02.11-.02.05 0 .11-.02.14 0 .07.02.08.06.07.1-.04.11.02.17-.08.33-.12.21-.27.51-.53.77-3.27 3.311-6.64 6.942-10.38 10.904l-2.79 2.78-.2.2c-.7.72-1.42 1.46-2.18 2.141-.43.39-.88.56-1.26.71-.44.17-.64-.06-.43-.54.15-.34.35-.8.73-1.21.08-.09.16-.18.24-.26l1.98-2.131.02-.02.53-.55c.25-.26.45-.46.64-.66l.02.01Z"/></svg>
                    </button>
                </div>
                <div class="h-full bg-white flex flex-col"
                     :class="{ 'md:h-screen': !cart?.summary_count }">
                    <div class="m-5 lg:p-6 mb-0 border-b border-grey-light">
                        <header class="mb-2">
                            <h2 id="cart-drawer-title" class="text-xl mb-6 flex items-center gap-1">
                                <i class="bg-success size-7 rounded-full flex justify-center items-center">
                                    <svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewbox="0 0 13 10" class="size-4" width="15" height="15" role="img"><path d="M4.4947 7.7682c.2682.2623.5423.519.8164.758.0933.0816.0817.0758.0817.0758l.0116.0116s.0059 0 .0117-.0058c0 0-.0058.0117.0758-.0816.4899-.5481.9623-1.137 1.4347-1.7201C8.0638 5.395 9.1835 3.9606 10.2974 2.532l.4257-.5656c.2858-.379.5832-.7814.8981-1.1487.1808-.21.3791-.3324.5366-.4315.1924-.1166.2916-.035.2157.1924-.0524.1633-.1283.3848-.2799.6006A3838.0007 3838.0007 0 0 1 9.131 5.29c-.519.7055-1.0556 1.4228-1.598 2.1575-.2799.3615-.5598.7347-.8455 1.102-.1517.1866-.2975.3732-.4491.5598-.0467.0525-.2391.2915-.414.4081-.175.1225-.3675.2041-.5658.105l-.2857-.14c-.0933-.035-.1983-.1399-.2566-.1865l-.2741-.2391-.519-.484L2.92 7.5991l-.14-.14c-.5074-.4956-1.0323-1.0087-1.5046-1.5452-.2683-.3032-.3966-.6122-.5016-.8571-.1225-.2974.035-.4082.3558-.2391.2332.1166.5423.2799.828.554.0642.0583.1226.1166.1809.1749.4899.4606.9856.933 1.4813 1.4052l.0175.0175.3849.3674c.1808.1749.3207.309.4665.4431l.0059-.0116Z"/><title>ico-check</title></svg>
                                </i>
                                Ajouté au panier!                            </h2>
                            <div class="cart-total text-center flex justify-center">
                                <p class="flex items-baseline relative mb-0 font-bold text-sm">
                                    Sous-total du panier                                    <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 25 24" fill="currentColor" width="24" height="24" aria-hidden="true"><mask id="a" width="16" height="20" x="4" y="2" maskunits="userSpaceOnUse" style="mask-type:luminance"><path fill="#fff" d="M19.85 2h-15v20h15V2Z"/></mask><g mask="url(#a)"><path d="M9.33 5.1c.07-.93.58-1.82 1.36-2.39.77-.57 1.8-.82 2.76-.67 1.17.16 2.19.93 2.65 1.93.25.48.31 1.08.29 1.55l-.02 1.4v.73c0 .49 0 1-.04 1.5-.02.29-.13.5-.21.68-.1.21-.26.2-.36-.04-.07-.17-.16-.4-.17-.67-.02-.84-.05-1.7-.07-2.56-.01-.43-.03-.86-.04-1.3-.02-.38-.14-.75-.34-1.08-.41-.66-1.17-1.11-1.99-1.15-.82-.05-1.66.31-2.14.96-.25.3-.4.66-.46 1.03-.02.09-.02.19-.03.28v.35l-.02.71v.2c0 .72 0 1.47-.05 2.2-.03.41-.18.74-.31 1-.15.31-.39.29-.52-.06-.1-.25-.23-.59-.25-.99v-.26c-.02-.69-.03-1.39-.05-2.09v-.57c0-.27-.01-.44.01-.7v.01Z"/><path d="M5.08 19.58c.27-2 .51-4.02.74-6.04l.77-6.05.14-1.13c.05-.43.31-.7.7-.75.19-.02.43 0 .61 0h.34l1.35.01 2.71.02 5.61.04c.19 0 .33.05.46.13.15.11.2.24.26.4.05.18.05.36.08.54l.04.34.17 1.3.26 1.91c.17 1.29.36 2.62.49 3.92.08.75.03 1.33 0 1.81-.05.57-.24.55-.44-.06-.14-.43-.33-1.02-.43-1.72-.19-1.28-.38-2.58-.59-3.94-.1-.68-.2-1.38-.31-2.1-.05-.36-.11-.73-.16-1.1l-.05-.3c0-.08-.08-.08-.14-.07-1.52.02-3.18.04-4.94.07l-2.8.03c-.48 0-.96.01-1.45.02h-.52c-.04 0-.07.02-.06.07-.13 1.2-.27 2.53-.43 3.94-.17 1.49-.33 3.08-.48 4.68l-.38 3.12-.21 1.56-.03.23v.02s0 .02.01.02H7.74c1.83 0 3.74 0 5.58.06 1.05.04 1.87.23 2.54.38.79.19.74.48-.15.65-.63.12-1.5.29-2.51.3h-.65l-5.32.06h-1.5c-.19 0-.35-.06-.47-.13a.894.894 0 0 1-.27-.25.744.744 0 0 1-.12-.29c-.05-.1 0-.26 0-.4.01-.14.04-.28.06-.42.05-.32.09-.62.13-.92l.02.04Z"/></g></svg>
                                    <template x-if="itemsCount">
                                        <div class="counter-container transition-all flex items-center justify-center absolute -right-3 -top-2.5 py-1 rounded-full bg-optimo size-5">
                                            <span class="text-xxs font-semibold text-black counter-container__number" x-text="itemsCount"></span>
                                        </div>
                                    </template>
                                </p>
                            </div>
                            <div class="text-center">
                                <p class="font-bold mb-0 text-xl" x-html="cart.subtotal"></p>
                            </div>
                        </header>
                    </div>

                    <template x-if="errorMessage">
                        <div class="shadow-box1 flex p-4 border rounded-lg bg-white mx-8 my-3 text-sm                                        items-center border-danger">
                            <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 20 20" class="mr-4 shrink-0" width="24" height="24" role="img"><path fill="#C41D2B" stroke="#C41D2B" stroke-width=".5" d="m5.3033 6.1906.7572-.7572 8.5364 8.5358-.7571.7571-8.5365-8.5357ZM.25 10C.25 4.5666 4.5666.25 10 .25s9.75 4.3166 9.75 9.75-4.3166 9.75-9.75 9.75S.25 15.4334.25 10Zm.9286 0c0 4.8524 3.969 8.8214 8.8214 8.8214 4.8524 0 8.8214-3.969 8.8214-8.8214 0-4.8524-3.969-8.8214-8.8214-8.8214-4.8524 0-8.8214 3.969-8.8214 8.8214Z"/><title>ico-error</title></svg>
                            <span x-html="errorMessage"></span>
                            <a href="#" class="ml-auto" title="close" @click.prevent="errorMessage = null">
                                <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24" fill="currentColor" class="size-6 ml-2 shrink-0" width="24" height="24" role="img"><path d="m8.473 7.26 4.53 4.611c1.8 1.87 3.61 3.741 5.41 5.612l.71.73c.48.49.97 1 1.41 1.54.25.31.35.64.44.9.1.31-.08.43-.39.26-.22-.12-.51-.27-.78-.54-3.29-3.29-6.91-6.661-10.86-10.412L6.173 7.16l-.2-.2c-.72-.7-1.46-1.43-2.14-2.181-.38-.42-.56-.88-.71-1.25-.17-.44.07-.64.54-.43.34.15.8.35 1.21.73.09.08.18.16.26.24.7.66 1.41 1.32 2.12 1.99l.02.02.54.53.65.65h.01Z"/><path d="m7.243 15.583 4.6-4.542 5.59-5.441.73-.71c.49-.48 1-.98 1.54-1.421.32-.25.63-.36.91-.44.04-.01.08-.02.11-.02.05 0 .11-.02.14 0 .07.02.08.06.07.1-.04.11.02.17-.08.33-.12.21-.27.51-.53.77-3.27 3.311-6.64 6.942-10.38 10.904l-2.79 2.78-.2.2c-.7.72-1.42 1.46-2.18 2.141-.43.39-.88.56-1.26.71-.44.17-.64-.06-.43-.54.15-.34.35-.8.73-1.21.08-.09.16-.18.24-.26l1.98-2.131.02-.02.53-.55c.25-.26.45-.46.64-.66l.02.01Z"/><title>ico-close</title></svg>
                            </a>
                        </div>
                    </template>
                    <template x-if="cart?.summary_count">
                        <div class="minicart-items flex flex-col min-h-24 px-5 pr-0 lg:px-6 lg:pr-0">
                            <div class="pt-6 pb-5 text-base font-bold">
    <span x-text="cart.cross_sell && cart.cross_sell.title"></span>
</div>
<template x-if="!!cart.cross_sell?.items">
    <div x-data="crosselDataMinicart()"
         class="relative grid bg-white overflow-y-auto border-container max-h-full"
         @private-content-loaded.window="updateData($event.detail.data)"
    >
        <template x-for="item, index in cart.cross_sell.items">
            <form x-data
 x-i4-ajax-cart
 :action="getFormAction() + item.id"
                  :data-id="item.id"
                  method="post"
                  class="item flex items-start py-4 pr-5 lg:pr-6 gap-4"
            >
                <input name="form_key" type="hidden" :value="hyva.getFormKey()" />
                <input type="hidden" name="product" :value="item.id" />
                <a :href="item.url"
                   class="min-w-20"
                   :aria-label="hyva.strf('Product\u0020\u0022\u00250\u0022', item.name)"
                >
                    <img :src="item.image"
                         width="88"
                         height="88"
                         loading="lazy"
                         :alt="item.name"
                    />
                </a>
                <div class="item__info w-full">
                    <div class="item__name -mt-1">
                        <a :href="item.url"
                           class="item-bold text-sm font-bold hover:text-optimo-darker"
                           :aria-label="hyva.strf('Product\u0020\u0022\u00250\u0022', item.name)">
                            <span class="line-clamp-1" x-html="item.name"></span>
                        </a>
                    </div>
                    <template x-if="item?.review">
                        <div class="item__reviews r-stars mt-1">
                            <div class="r-stars__box">
                                <i class="r-stars__empty"></i>
                                <i class="r-stars__full"
                                   :style="{ width: item.review.averageScore + '%' }"
                                ></i>
                            </div>
                            <span class="text-sm leading-none"
                                  x-text="'(' + item.review.totalReviews + ')'"
                            ></span>
                        </div>
                    </template>
                    <div class="item__actions flex justify-between items-center mt-1">
                        <template x-if="!!item?.special_price">
                            <div class="flex !flex-col price-including-tax">
                                <span class="minicart-price old-price line-through text-grey-light" x-text="item.price"></span>
                                <span class="minicart-price special-price !py-1 !px-2 text-danger !font-bold" x-text="item.special_price"></span>
                            </div>
                        </template>
                        <template x-if="!item?.special_price">
                            <span class="rounded-lg price-crossel-cart font-bold py-1 px-2"
                                  x-html="item.price">
                            </span>
                        </template>
                        <template x-if="!!getShippingCartItem(item.id)?.qty">
                            <div x-data="{ qty: getShippingCartItem(item.id).qty }"
                                 @private-content-loaded.window="qty = getShippingCartItem(item.id).qty"
                                 class="relative">
                                <span class="absolute top-1/2 -translate-y-1/2 left-4 cursor-pointer"
                                      @click="--qty; $nextTick(() => $refs.qty.dispatchEvent(new Event('input')))"
                                      :class="{'pointer-events-none': qty === 0}"
                                >-</span>
                                <input class="text-center border-optimo min-h-10 max-w-20 px-5"
                                       x-ref="qty"
                                       x-model="qty"
                                       type="number"
                                       name="qty"
                                       :value="qty"
                                       min="0"
                                       x-on:input.debounce.500="if ($el.value) updateCartItem(getShippingCartItem(item.id).item_id, qty)" />

                                <span class="absolute top-1/2 -translate-y-1/2 right-4 cursor-pointer"
                                      @click="qty++; $nextTick(() => $refs.qty.dispatchEvent(new Event('input')))"
                                >+</span>
                            </div>
                        </template>
                        <button x-ref="submit"
                                x-show="!getShippingCartItem(item.id)?.qty"
                                x-cloak
 class="btn btn-primary text-sm truncate px-4 py-3 min-w-auto w-auto transition-all block add-to-cart"
                                aria-label="Ajouter&#x20;au&#x20;panier"
                        >
                                <span class="flex gap-2 justify-center items-center">
                                    <svg xmlns="http://www.w3.org/2000/svg" id="Calque_2" fill="currentColor" viewbox="0 0 18 18" width="17" height="17" aria-hidden="true"><g id="SYSTEM"><g id="Editor"><g id="icon_add"><path d="m13.19,10.49l-4.61-.19c-1.85-.08-3.7-.16-5.55-.24-.24,0-.48,0-.72,0-.49,0-.99,0-1.49-.08-.28-.05-.5-.31-.67-.52-.21-.25-.2-.64.04-.87.17-.16.4-.39.67-.41,3.34-.24,6.86-.46,10.75-.68l2.81.1h.2c.72,0,1.46,0,2.18.12.41.07.73.45.99.76.31.37.29.95-.06,1.28-.25.24-.58.57-.98.6-.09,0-.17.01-.26.02-.68.04-1.38.07-2.07.12h-.57c-.26,0-.46,0-.66,0Z"/><path d="m10.49,4.81l-.19,4.61c-.08,1.85-.16,3.7-.24,5.55,0,.24,0,.48,0,.72,0,.49,0,.99-.08,1.49-.05.28-.31.5-.52.67-.25.21-.64.2-.87-.04-.16-.17-.39-.4-.41-.67-.24-3.34-.46-6.86-.68-10.75l.1-2.81v-.2c0-.72,0-1.46.12-2.18.07-.41.45-.73.76-.99.37-.31.95-.29,1.28.06.24.25.57.58.6.98,0,.09.01.17.02.26.04.68.07,1.38.12,2.07v.57c0,.26,0,.46,0,.66Z"/></g></g></g></svg>
                                    <svg xmlns="http://www.w3.org/2000/svg" id="Calque_2" fill="currentColor" viewbox="0 0 15 20" width="18" height="19" aria-hidden="true"><g id="BUSINESS"><g id="Finance_Payment"><g id="icon_cart"><path d="m4.48,3.1c.07-.93.58-1.82,1.36-2.39C6.61.14,7.64-.11,8.6.04c1.17.16,2.19.93,2.65,1.93.25.48.31,1.08.29,1.55l-.02,1.4v.73c0,.49,0,1-.04,1.5-.02.29-.13.5-.21.68-.1.21-.26.2-.36-.04-.07-.17-.16-.4-.17-.67-.02-.84-.05-1.7-.07-2.56-.01-.43-.03-.86-.04-1.3-.02-.38-.14-.75-.34-1.08-.41-.66-1.17-1.11-1.99-1.15-.82-.05-1.66.31-2.14.96-.25.3-.4.66-.46,1.03-.02.09-.02.19-.03.28v.35s-.02.71-.02.71v.2c0,.72,0,1.47-.05,2.2-.03.41-.18.74-.31,1-.15.31-.39.29-.52-.06-.1-.25-.23-.59-.25-.99,0-.09,0-.18,0-.26-.02-.69-.03-1.39-.05-2.09v-.57c0-.27-.01-.44.01-.7Z"/><path d="m.23,17.58c.27-2,.51-4.02.74-6.04l.77-6.05.14-1.13c.05-.43.31-.7.7-.75.19-.02.43,0,.61,0h.34s1.35.01,1.35.01l2.71.02,5.61.04c.19,0,.33.05.46.13.15.11.2.24.26.4.05.18.05.36.08.54l.04.34.17,1.3.26,1.91c.17,1.29.36,2.62.49,3.92.08.75.03,1.33,0,1.81-.05.57-.24.55-.44-.06-.14-.43-.33-1.02-.43-1.72-.19-1.28-.38-2.58-.59-3.94-.1-.68-.2-1.38-.31-2.1-.05-.36-.11-.73-.16-1.1l-.05-.3c0-.08-.08-.08-.14-.07-1.52.02-3.18.04-4.94.07-.91.01-1.84.02-2.8.03-.48,0-.96.01-1.45.02-.23,0-.57,0-.52,0-.04,0-.07.02-.06.07-.13,1.2-.27,2.53-.43,3.94-.17,1.49-.33,3.08-.48,4.68l-.38,3.12-.21,1.56-.03.23v.02s0,.02.01.02h.02s.23,0,.23,0h.58s.51,0,.51,0c1.83,0,3.74,0,5.58.06,1.05.04,1.87.23,2.54.38.79.19.74.48-.15.65-.63.12-1.5.29-2.51.3-.22,0-.44,0-.65,0-1.75.02-3.54.04-5.32.06H.88c-.19,0-.35-.06-.47-.13-.09-.05-.19-.14-.27-.25-.07-.11-.09-.16-.12-.29-.05-.1,0-.26,0-.4.01-.14.04-.28.06-.42.05-.32.09-.62.13-.92Z"/></g></g></g></svg>
                                </span>
                        </button>
                    </div>
                </div>
            </form>
        </template>
    </div>
</template>



<script>
    function crosselDataMinicart() {
        return {
            loading: false,
            ...initSliderComponent({pageSize: 1}),

            getFormAction() {
                return `${window.BASE_URL}checkout/cart/add/uenc/${hyva.getUenc()}/product/`;
            },

            addPagination () {
                this.$root.appendChild(document.querySelector('[data-slider-nav]').cloneNode(true));
            },

            observeChanges() {
                const observer = new MutationObserver(() => {
                    this.addPagination();
                    this.calcPageSize(1);
                });

                observer.observe(this.$refs.sliderCrossel, { childList: true, subtree: true });
            },

            getShippingCartItem(id) {
                return this.cart.items.filter(({product_id}) => product_id === id)[0]
            },

            updateCartItem(itemId, itemQty) {
                this.$dispatch('loading-page', true);

                fetch(`${BASE_URL}checkout/sidebar/updateItemQty/`, {
                    "headers": {
                        "content-type": "application/x-www-form-urlencoded; charset=UTF-8",
                    },
                    "body": `form_key=${hyva.getFormKey()}&item_id=${itemId}&item_qty=${itemQty}`,
                    "method": "POST",
                    "mode": "cors",
                    "credentials": "include"
                }).then(response => {
                    if (response.redirected) {
                        window.location.href = response.url;
                    } else if (response.ok) {
                        return response.json();
                    } else {
                        window.dispatchMessages && window.dispatchMessages([{
                            type: 'warning',
                            text: 'Quantit\u00E9\u0020d\u0027articles\u0020demand\u00E9e\u0020non\u0020valide.'
                        }]);
                    }
                }).then((response) => {
                    if (!response) return;
                    if (!response.success) {
                        this.showMinicartErrorMessage(response);
                    }

                    window.dispatchEvent(new CustomEvent('reload-customer-section-data'));
                });
            },
        }
    }
</script>
                        </div>
                    </template>
                    <template x-if="cart?.summary_count">
                        <div class="relative grid gap-3 pt-6 mt-auto mb-6 mx-5 border-t border-grey-light">
                            <div class="w-full">
                                <a href="https://www.espaceplaisir.fr/checkout/cart/"
                                   class="minicart-redirect-to-cart btn btn-primary">
                                    Voir le panier                                </a>
                            </div>
                            
<div x-data
 x-html="cart?.extra_actions"
></div>
                        </div>
                    </template>
                </div>
            </div>
        </div>
    </template>
</section>
                </div>
<div class="absolute z-20 h-0 w-full mt-4"><div data-placeholder="messages"></div>
<script>
    function initMessages() {
        "use strict";
        return {
            messages: window.mageMessages || [],
            removeMessage(i) {
                this.messages.splice(i, 1);
            },
            addMessages(messages = [], hideAfter = 3000) {
                messages.filter(m => m).map((msg) => {
                    this.messages.push(msg);

                    if (hideAfter) {
                        setTimeout(this.removeMessage.bind(this, this.messages.length -1), hideAfter);
                    }
                });
            },
            eventListeners: {
                ['@messages-loaded.window'](e) {
                    this.addMessages(e.detail?.messages, e.detail.hideAfter)
                },
                ['@private-content-loaded.window'](e) {
                    this.addMessages(e.detail?.data?.messages?.messages);
                },
                ['@clear-messages.window']() {
                    this.messages = [];
                }
            },

            getClasses (t) {
                return {
                    success: 'border-success',
                    error: 'border-danger'
                }[t] || 'border-warning';
            }
        }
    }
</script>
<section
    class="messages-container container mx-auto"
    x-data="initMessages()"
    x-bind="eventListeners"
    aria-live="assertive"
    role="alert"
>
    <template x-if="!!messages.length">
        <div class="container mx-auto flex flex-col gap-2">
            <template x-for="(msg, i) in messages" :key="i">
                <div
                    class="message-content [&_a]:underline w-full shadow-box1 flex gap-4 mx-auto p-4 rounded-lg border bg-white text-sm max-w-screen-sm"
                    :class="getClasses(msg.type)"
                >
                    <template x-if="msg.type === 'success'">
                        <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 20 20" width="20" height="20" role="img"><path fill="#000" fill-rule="evenodd" d="M11.7807 19.83c2.33-.42 4.49-1.71 6-3.57l-.01-.01c.39-.49.74-1.01 1.11-1.72l.36-.77.29-.8.02-.07c.61-2.09.6-4.36-.11-6.38-.0577-.1732-.131-.3515-.2049-.5313a23.167 23.167 0 0 1-.0851-.2088c-.5-1.13-1.25-1.9-1.82-2.37-.82-.66-1.06-.44-.63.33.35.66.69 1.48 1.09 2.49.73 1.78.87 3.8401.41 5.6801-.04.17-.08.34-.13.51-.76 2.37-2.57 4.35-4.81 5.31-2.31 1.04-5.02.94-7.2-.16-2.21-1.07-3.85-3.13-4.49-5.44-.66-2.31-.34-4.85.82-6.87 1.15-2.03 3.09-3.55 5.26-4.16.35-.11.67-.21.97-.29.29-.1.56-.17.79-.22.65-.16.71-.37.09-.48-.52-.09-1.18-.17-2.01.02-1.45.32-2.85 1.04-3.96 2.02-.54.49-1.06 1.02-1.49 1.62-1.72 2.25-2.41 5.27-1.85 8.08.54 2.82 2.34 5.34 4.78 6.78 2.03 1.19 4.49 1.65 6.81 1.21Zm1.77-13.34c.35-.21.6-.05.67 0h-.01c.07.05.29.26.16.65-.04.13-.11.33-.25.53l-4 5.4099c-.12.14-.24.28-.38.37-.18.13-.35.18-.5.18-.13 0-.24-.04-.33-.08l-.19-.1c-.0716-.0179-.1593-.0918-.2199-.143l-.0201-.017-.58-.53-.78-.77c-.35-.34-.71-.7-1.04-1.07-.23-.26-.34-.52-.42-.71-.17-.4.04-.64.11-.7.09-.09.35-.26.76-.04a8.871 8.871 0 0 0 .0163.0088c.1528.0813.4122.2194.6437.4412l1.72 1.64c.045.045.09.0875.135.13.045.0425.09.085.135.13.25-.29.49-.58.72-.87.77-.96 1.53-1.93 2.28-2.9l.29-.38c.23-.31.42-.56.62-.8.1633-.1825.3266-.2912.4456-.3704a3.5995 3.5995 0 0 0 .0144-.0096Z" clip-rule="evenodd"/><title>ico-success</title></svg>
                    </template>

                    <template x-if="msg.type === 'error'">
                        <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 20 20" width="20" height="20" role="img"><path fill="#C41D2B" stroke="#C41D2B" stroke-width=".5" d="m5.3033 6.1906.7572-.7572 8.5364 8.5358-.7571.7571-8.5365-8.5357ZM.25 10C.25 4.5666 4.5666.25 10 .25s9.75 4.3166 9.75 9.75-4.3166 9.75-9.75 9.75S.25 15.4334.25 10Zm.9286 0c0 4.8524 3.969 8.8214 8.8214 8.8214 4.8524 0 8.8214-3.969 8.8214-8.8214 0-4.8524-3.969-8.8214-8.8214-8.8214-4.8524 0-8.8214 3.969-8.8214 8.8214Z"/><title>ico-error</title></svg>
                    </template>

                    <template x-if="msg.type === 'warning' || msg.type === 'info' || msg.type === 'notice'">
                        <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" width="20" height="20" role="img"><path fill="#000" fill-rule="evenodd" d="M22.0008 20.31c-.03.08-.12.21-.18.25l-.35.06-.7.13-.7.13h-.45l-1.8.07-3.61.05c-2.41 0-4.81-.03-7.21-.1l-4.23-.18-.53-.21c-.0932-.0186-.1343-.0807-.188-.162l-.012-.018c-.0515-.0589-.0326-.1179-.011-.1848a.6787.6787 0 0 0 .021-.0752l.33-1.11.08-.28.09-.19.17-.36.34-.73c.46-.97.95-1.93 1.45-2.88 1-1.9 2.07-3.77 3.2-5.61l1.14-1.84c.4-.61.8-1.23 1.2-1.86l.63-.92 1-1.13c.08-.13.18-.18.34-.15.1137.0228.1642.0627.2254.1112h.0001c.0196.0155.0403.0318.0645.0488.18.13.33.41.44.64.1908.3603.2617.546.3293.7226a5.811 5.811 0 0 0 .0907.2274c.23.59.03.66-.46.12l-.0002-.0003c-.0899-.0999-.1799-.1998-.2798-.3097-.0616-.0678-.1043-.1052-.1444-.1404a1.5136 1.5136 0 0 1-.0756-.0696l-.17-.17s-.07-.05-.11-.02c-.028.021-.0462.0568-.0649.0934a.7632.7632 0 0 1-.0251.0466c-.165.255-.33.5075-.495.76-.165.2525-.33.505-.495.76-.4.64-.8 1.28-1.21 1.93-.8 1.31-1.58 2.65-2.35 4.03-.76 1.39-1.51 2.82-2.24 4.31-.36.75-.72 1.51-1.07 2.29-.13.29-.26.59-.39.89l-.08.2s.08.02.11.02c.83.02 1.7.04 2.6.06l.1189.0012c1.0033.0096 2.0434.0196 3.1111.0388 2.22 0 4.56-.02 6.94-.09l3.72-.1c.0511 0 .0635 0 .0647-.0036.0004-.0012-.0004-.0028-.0014-.0048a.025.025 0 0 1-.0033-.0116l-.04-.09-.21-.47-.84-1.89-.25-.53c-.89-1.9-1.85-3.86-2.85-5.7-.5255-.968-.864-1.783-1.1487-2.4686l-.0713-.1714c-.38-.84-.09-.97.67-.21.53.54 1.25 1.31 1.86 2.34.0434.0734.0867.1478.13.2223.0867.1488.1734.2977.26.4377 1.02 1.78 1.94 3.65 2.82 5.51l.03.06.67 1.46c.16.35.29.64.42.95.0314.1233.0634.2459.0952.3676.0996.3817.1966.7536.2648 1.1024h.02Zm-10.95-6.13c.02.17.03.34.04.5099v.0001l.02.24v.1c.0182.1818.1933.314.3227.4117l.0373.0283c.22.16.58.17.82.03l.0142-.0087c.1772-.1082.3871-.2363.4358-.4213.07-.27.07-.53.07-.82l.05-1.1v-.01c-.11-1.37-.22-2.65-.35-3.92-.0099-.1381-.1463-.2373-.2556-.3168L12.2508 8.9c-.09-.06-.2-.09-.32-.09-.11 0-.21.03-.3.08-.12.07-.27.17-.31.31-.04.18-.04.36-.04.54V10.03l-.02.41c-.03.54-.06 1.08-.1 1.62l-.1 1.68V14.2l-.01-.02Zm.01 3.35c0-.4585.4272-.8475.9351-.85.4974.0024.8649.3517.8649.84.01.2-.05.38-.19.52-.17.17-.44.27-.75.28-.22.02-.43-.06-.59-.2-.17-.16-.27-.37-.27-.59Zm.9351-.85h.0049-.01.0051Z" clip-rule="evenodd"/><title>ico-warning</title></svg>
                    </template>

                    <span x-html="msg.text"></span>
                    <button type="button"
                            class="ml-auto"
                            @click.prevent="removeMessage(i)"
                            aria-label="Close message"
                    >
                        <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" width="18" height="18" aria-hidden="true">
  <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"/>
</svg>
                    </button>
                </div>
            </template>
        </div>
    </template>
</section>
</div>    <script>
        (function() {
            const extractGoogleAnalyticsUserIdFromCookie =  () => {
                const gaCookie = hyva.getCookie('_ga');
                if (!gaCookie) return undefined;
                const userIdParts = gaCookie.split('.').slice(-2);

                return  userIdParts.length === 2 ? userIdParts.join('-') : undefined;
            };

            window.algoliaConfig = {
                ...{"instant":{"enabled":true,"selector":".columns","isAddToCartEnabled":true,"addToCartParams":{"action":"https:\/\/www.espaceplaisir.fr\/checkout\/cart\/add\/","formKey":"Hg2gJKPNrvxgcmJD","redirectUrlParam":"uenc"},"infiniteScrollEnabled":false,"urlTrackedParameters":["query","attribute:*","index","page"],"isSearchBoxEnabled":false,"isVisualMerchEnabled":true,"categorySeparator":" \/\/\/ ","categoryPageIdAttribute":"categoryPageId","isCategoryNavigationEnabled":false,"hidePagination":false},"autocomplete":{"enabled":true,"selector":".algolia-search-input","sections":[{"name":"pages","label":"Pages","hitsPerPage":"2"}],"nbOfProductsSuggestions":30,"nbOfCategoriesSuggestions":2,"nbOfQueriesSuggestions":2,"isDebugEnabled":false,"isNavigatorEnabled":true,"debounceMilliseconds":300,"minimumCharacters":0},"landingPage":{"query":"","configuration":"[]"},"recommend":{"enabledFBT":false,"enabledRelated":false,"enabledFBTInCart":false,"enabledRelatedInCart":false,"enabledLookingSimilar":0,"limitFBTProducts":6,"limitRelatedProducts":6,"limitTrendingItems":6,"limitLookingSimilar":6,"enabledTrendItems":0,"trendItemFacetName":null,"trendItemFacetValue":null,"isTrendItemsEnabledInPDP":0,"isTrendItemsEnabledInCartPage":0,"isAddToCartEnabledInFBT":false,"isAddToCartEnabledInRelatedProduct":false,"isAddToCartEnabledInTrendsItem":false,"isAddToCartEnabledInLookingSimilar":false,"FBTTitle":"Frequently bought together","relatedProductsTitle":"Related products","trendingItemsTitle":"Trending items","addToCartParams":{"action":"https:\/\/www.espaceplaisir.fr\/checkout\/cart\/add\/","formKey":"Hg2gJKPNrvxgcmJD","redirectUrlParam":"uenc"},"isLookingSimilarEnabledInPDP":0,"isLookingSimilarEnabledInCartPage":0,"lookingSimilarTitle":"Looking Similar"},"extensionVersion":"3.14.2","applicationId":"KNMCAIJP4K","indexName":"belisoft_pro_espace_plaisir_fo","apiKey":"YjdkYzBhNWM5MDdlMzdmZjhkYTg1Mzk2MTAyZGU4MmE2MzEwMWYyYTdkYjAyYTEwNjRhZWYwNGYxMzJjNzNjMnRhZ0ZpbHRlcnM9JnZhbGlkVW50aWw9MTc3OTgxNjE0Mw==","attributeFilter":[],"facets":[{"attribute":"lingerie_type","type":"disjunctive","label":"Type de lingerie","searchable":"3","create_rule":"2"},{"attribute":"sextoy_type","type":"disjunctive","label":"Type sextoy","searchable":"3","create_rule":"2"},{"attribute":"manufacturer","type":"disjunctive","label":"Marque","searchable":"1","create_rule":"2"},{"attribute":"couleur","type":"disjunctive","label":"Couleur","searchable":"1","create_rule":"2"},{"attribute":"taille","type":"disjunctive","label":"Taille","searchable":"1","create_rule":"2"},{"attribute":"price","type":"slider","label":"Prix","searchable":"2","create_rule":"2"},{"attribute":"materiau","type":"disjunctive","label":"Mat\u00e9riau","searchable":"1","create_rule":"2"},{"attribute":"parfum_2","type":"disjunctive","label":"Parfum","searchable":"1","create_rule":"2"},{"attribute":"longueur_2","type":"disjunctive","label":"Longueur","searchable":"3","create_rule":"2"},{"attribute":"diametre_2","type":"disjunctive","label":"Diam\u00e8tre","searchable":"3","create_rule":"2"},{"attribute":"energie_2","type":"disjunctive","label":"\u00c9nergie","searchable":"3","create_rule":"2"},{"attribute":"fonctionnalites","type":"disjunctive","label":"Fonctionnalit\u00e9s","searchable":"1","create_rule":"2"},{"attribute":"fleshlight_girls","type":"disjunctive","label":"Actrice","searchable":"1","create_rule":"2"},{"attribute":"ouverture_masturbateur","type":"disjunctive","label":"Ouverture masturbateur","searchable":"1","create_rule":"2"},{"attribute":"waterproof_2","type":"disjunctive","label":"Waterproof","searchable":"3","create_rule":"2"},{"attribute":"fastening","type":"disjunctive","label":"Type de fermeture","searchable":"1","create_rule":"2"},{"attribute":"type","type":"disjunctive","label":"Type","searchable":"1","create_rule":"2"},{"attribute":"taille_preservatif","type":"disjunctive","label":"Taille pr\u00e9servatif","searchable":"3","create_rule":"2"},{"attribute":"contenance_2","type":"disjunctive","label":"Contenance","searchable":"3","create_rule":"2"},{"attribute":"tissu","type":"disjunctive","label":"Tissu","searchable":"1","create_rule":"2"},{"attribute":"deguisement","type":"disjunctive","label":"D\u00e9guisement","searchable":"1","create_rule":"2"},{"attribute":"opacite_2","type":"disjunctive","label":"Opacit\u00e9","searchable":"1","create_rule":"2"}],"areCategoriesInFacets":false,"hitsPerPage":30,"sortingIndices":[{"attribute":"price","sort":"asc","sortLabel":"Prix croissant","virtualReplica":"0","name":"belisoft_pro_espace_plaisir_fo_products_price_default_asc","ranking":["asc(price.EUR.default)","typo","geo","words","filters","proximity","attribute","exact","custom"],"label":"Prix croissant"},{"attribute":"price","sort":"desc","sortLabel":"Prix d\u00e9croissant","virtualReplica":"0","name":"belisoft_pro_espace_plaisir_fo_products_price_default_desc","ranking":["desc(price.EUR.default)","typo","geo","words","filters","proximity","attribute","exact","custom"],"label":"Prix d\u00e9croissant"},{"attribute":"created_at","sort":"desc","sortLabel":"Nouveaut\u00e9","virtualReplica":"0","name":"belisoft_pro_espace_plaisir_fo_products_created_at_desc","ranking":["desc(created_at)","typo","geo","words","filters","proximity","attribute","exact","custom"],"label":"Nouveaut\u00e9"},{"attribute":"rating_summary","sort":"desc","sortLabel":"Meilleures notes","virtualReplica":"0","name":"belisoft_pro_espace_plaisir_fo_products_rating_summary_desc","ranking":["desc(rating_summary)","typo","geo","words","filters","proximity","attribute","exact","custom"],"label":"Meilleures notes"},{"attribute":"special_price_percent","sort":"desc","sortLabel":"Meilleures remises","virtualReplica":"0","name":"belisoft_pro_espace_plaisir_fo_products_special_price_percent_desc","ranking":["desc(special_price_percent)","typo","geo","words","filters","proximity","attribute","exact","custom"],"label":"Meilleures remises"},{"attribute":"bq_28_ga4_view_to_purchase_ratio_bucket","sort":"desc","sortLabel":"Hors promotions","virtualReplica":"0","name":"belisoft_pro_espace_plaisir_fo_products_bq_28_ga4_view_to_purchase_ratio_bucket_desc","ranking":["desc(bq_28_ga4_view_to_purchase_ratio_bucket)","typo","geo","words","filters","proximity","attribute","exact","custom"],"label":"Hors promotions"}],"isSearchPage":false,"isCategoryPage":false,"isLandingPage":false,"removeBranding":false,"productId":null,"priceKey":".EUR.default","priceGroup":null,"origFormatedVar":"price.EUR.default_original_formated","tierFormatedVar":"price.EUR.default_tier_formated","currencyCode":"EUR","currencySymbol":"\u20ac","priceFormat":{"pattern":"%s\u00a0\u20ac","precision":2,"requiredPrecision":2,"decimalSymbol":",","groupSymbol":"\u202f","groupLength":3,"integerRequired":false},"maxValuesPerFacet":20,"autofocus":true,"resultPageUrl":"https:\/\/www.espaceplaisir.fr\/catalogsearch\/result\/","request":{"query":"","refinementKey":"","refinementValue":"","categoryId":"","landingPageId":"","path":"","level":"","parentCategory":"","childCategories":[],"url":"https:\/\/www.espaceplaisir.fr\/"},"showCatsNotIncludedInNavigation":true,"showSuggestionsOnNoResultsPage":true,"baseUrl":"https:\/\/www.espaceplaisir.fr","popularQueries":["gode","plug","masturbateur","gode ceinture","plug anal","gaine","vibromasseur","gode realiste","gode ventouse","cockring"],"useAdaptiveImage":true,"urls":{"logo":"https:\/\/www.espaceplaisir.fr\/static\/version1779257511\/frontend\/Interactiv4\/espaceplaisir-hyva\/fr_FR\/Algolia_AlgoliaSearch\/js\/images\/algolia-logo-blue.svg"},"cookieConfiguration":{"customerTokenCookie":"_ALGOLIA_MAGENTO_AUTH","consentCookieName":"_ALGOLIA","cookieAllowButtonSelector":"#onetrust-accept-btn-handler","cookieRestrictionModeEnabled":false,"cookieDuration":"15552000000"},"ccAnalytics":{"enabled":true,"ISSelector":".ais-Hits-item a.result, .ais-InfiniteHits-item a.result","conversionAnalyticsMode":"all","addToCartSelector":".action.primary.tocart","orderedProductIds":[]},"isPersonalizationEnabled":true,"personalization":{"enabled":true,"viewedEvents":{"viewProduct":{"eventName":"Viewed Product","enabled":true,"method":"viewedObjectIDs"}},"clickedEvents":{"productClicked":{"eventName":"Product Clicked","enabled":true,"selector":".ais-Hits-item a.result, .ais-InfiniteHits-item a.result","method":"clickedObjectIDs"},"productRecommended":{"eventName":"Recommended Product Clicked","enabled":true,"selector":".products-upsell .product-item","method":"clickedObjectIDs"}},"filterClicked":{"eventName":"Filter Clicked","enabled":true,"method":"clickedFilters"}},"analytics":{"enabled":false,"delay":"3000","triggerOnUiInteraction":"1","pushInitialSearch":"0"},"now":1779667200,"queue":{"isEnabled":true,"nbOfJobsToRun":15,"retryLimit":3,"nbOfElementsPerIndexingJob":300},"isPreventBackendRenderingEnabled":false,"translations":{"to":"\u00e0","or":"ou","go":"Passer","popularQueries":"You can try one of the popular search queries","seeAll":"Voir tous les produits","allDepartments":"All departments","seeIn":"See products in","orIn":"or in","noProducts":"No products found","noResults":"Aucun r\u00e9sultat","refine":"Refine","selectedFilters":"Selected Filters","clearAll":"Effacer les filtres","previousPage":"Page pr\u00e9c\u00e9dente","nextPage":"Page suivante","searchFor":"Search for products","relevance":"Pertinence","categories":"Cat\u00e9gories","products":"Produits","suggestions":"Suggestions","searchBy":"Search by","searchForFacetValuesPlaceholder":"Vibro, masturbateur, plug","showMore":"Voir plus","searchTitle":"Search results for","placeholder":"Que cherchez-vous ?","addToCart":"Ajouter au panier","tryAnother":"Try another search term","noMatches":"Aucune correspondance","popularSearches":"Recherches populaires","searchAgain":"Search again","showLess":"Voir moins","seeAllAis":"Valider","brands":"Brands","display":"Afficher","resentSearches":"Recherches r\u00e9centes"},"showMoreButton":["manufacturer","parfum","parfum_2"]},
                ...{
                    resultURL:'https\u003A\u002F\u002Fwww.espaceplaisir.fr\u002Fcatalogsearch\u002Fresult\u002F',
                    placeholder: 'Vibro,\u0020masturbateur,\u0020plug'
                },
                userToken: extractGoogleAnalyticsUserIdFromCookie()
            }

            const instantsearchScripts = ["https:\/\/www.espaceplaisir.fr\/static\/version1779257511\/frontend\/Interactiv4\/espaceplaisir-hyva\/fr_FR\/Interactiv4_AlgoliaHyva\/js\/internals\/algoliaBundle.min.js","https:\/\/www.espaceplaisir.fr\/static\/version1779257511\/frontend\/Interactiv4\/espaceplaisir-hyva\/fr_FR\/Interactiv4_AlgoliaHyva\/js\/common.min.js","https:\/\/www.espaceplaisir.fr\/static\/version1779257511\/frontend\/Interactiv4\/espaceplaisir-hyva\/fr_FR\/Interactiv4_AlgoliaHyva\/js\/instantsearch.min.js"];

            const autocompleteScripts = ["https:\/\/www.espaceplaisir.fr\/static\/version1779257511\/frontend\/Interactiv4\/espaceplaisir-hyva\/fr_FR\/Interactiv4_AlgoliaHyva\/js\/internals\/autocomplete-js.min.js","https:\/\/www.espaceplaisir.fr\/static\/version1779257511\/frontend\/Interactiv4\/espaceplaisir-hyva\/fr_FR\/Interactiv4_AlgoliaHyva\/js\/internals\/algoliasearch.min.js","https:\/\/www.espaceplaisir.fr\/static\/version1779257511\/frontend\/Interactiv4\/espaceplaisir-hyva\/fr_FR\/Interactiv4_AlgoliaHyva\/js\/internals\/algoliasearch-query-suggestion-plugin.min.js","https:\/\/www.espaceplaisir.fr\/static\/version1779257511\/frontend\/Interactiv4\/espaceplaisir-hyva\/fr_FR\/Interactiv4_AlgoliaHyva\/js\/internals\/autocomplete-plugin-recent-searches.min.js","https:\/\/www.espaceplaisir.fr\/static\/version1779257511\/frontend\/Interactiv4\/espaceplaisir-hyva\/fr_FR\/Interactiv4_AlgoliaHyva\/js\/internals\/autocomplete-plugin-redirect-url.min.js"];

            async function loadScript (url) {
                let script = document.createElement('script')
                script.setAttribute('type', 'text/javascript')
                script.setAttribute('src', url)
                const promise = new Promise((resolve) => script.addEventListener('load', resolve));
                document.head.append(script)

                await hyva.yield();

                return promise
            }

            async function loadScripts(scripts) {
                await hyva.yield();
                return Promise.all(scripts.map(loadScript))
            }

            let autocompleteInitialized = false

            async function initAlgoliaAutoComplete() {
                if (autocompleteInitialized) {
                    return
                }

                autocompleteInitialized = true

                await loadScripts(autocompleteScripts);
                await loadScript('https\u003A\u002F\u002Fwww.espaceplaisir.fr\u002Fstatic\u002Fversion1779257511\u002Ffrontend\u002FInteractiv4\u002Fespaceplaisir\u002Dhyva\u002Ffr_FR\u002FInteractiv4_AlgoliaHyva\u002Fjs\u002FautocompleteConfig.min.js');
                await loadScript('https\u003A\u002F\u002Fwww.espaceplaisir.fr\u002Fstatic\u002Fversion1779257511\u002Ffrontend\u002FInteractiv4\u002Fespaceplaisir\u002Dhyva\u002Ffr_FR\u002FAlgolia_AlgoliaSearch\u002Fjs\u002Finternals\u002Fsearch\u002Dinsights.min.js');
                await loadScript('https\u003A\u002F\u002Fwww.espaceplaisir.fr\u002Fstatic\u002Fversion1779257511\u002Ffrontend\u002FInteractiv4\u002Fespaceplaisir\u002Dhyva\u002Ffr_FR\u002FInteractiv4_AlgoliaHyva\u002Fjs\u002Fanalytics\u002Finsights.min.js');
            }
            function initInstantSearch() {
                loadScripts(instantsearchScripts).then(async () => {
                    algoliaCommon();
                    initAlgoliaInstantSearch();
                    await loadScript('https\u003A\u002F\u002Fwww.espaceplaisir.fr\u002Fstatic\u002Fversion1779257511\u002Ffrontend\u002FInteractiv4\u002Fespaceplaisir\u002Dhyva\u002Ffr_FR\u002FAlgolia_AlgoliaSearch\u002Fjs\u002Finternals\u002Fsearch\u002Dinsights.min.js');
                    await loadScript('https\u003A\u002F\u002Fwww.espaceplaisir.fr\u002Fstatic\u002Fversion1779257511\u002Ffrontend\u002FInteractiv4\u002Fespaceplaisir\u002Dhyva\u002Ffr_FR\u002FInteractiv4_AlgoliaHyva\u002Fjs\u002Fanalytics\u002Finsights.min.js');
                })
            }

            const handleSearchPage = () => {
                const isSearchPage = document.body.classList.contains('catalogsearch-result-index');

                if (isSearchPage) {
                    algoliaConfig.request.query = new URLSearchParams(location.search).get('q') || '';
                }
            }

            if (algoliaConfig.instant.enabled && algoliaConfig.isSearchPage) {
                handleSearchPage();
                initInstantSearch();
            }

            if (algoliaConfig.ccAnalytics.enabled) {
                window.addEventListener('i4-cart-add-before', async (e) => {
                    if (hyva.getCookie('_ALGOLIA')) return;

                    e.detail.cb = () => {
                        initAlgolia();
                    };
                })
            }

            const initAlgolia = (preventFocus = false) => {
                setTimeout(async () => {
                    await initAlgoliaAutoComplete()

                    // autocomplete library autoFocus configuration param doesn't work
                    preventFocus && document.querySelector('#algolia-autocomplete-container input').focus();
                });
            };

            const isIOS = () => {
                const ua = navigator.userAgent;
                return /iPhone|iPad|iPod/.test(ua) || (navigator.platform === "MacIntel" && navigator.maxTouchPoints > 1);
            }

            if (algoliaConfig.autocomplete.enabled) {
                if (isIOS()) {
                    initAlgolia();
                } else {
                    document.querySelectorAll('[data-search-btn]').forEach(el => {
                        el.addEventListener('click', () => {
                            initAlgolia(true)
                        })
                    })
                }
            }
        }())
    </script>
    </header><div class="top-container"><div class="widget block block-static-block">
    <a href="https://www.espaceplaisir.fr/1103-promotions" class="promobar-top text-center py-1.5 px-4 text-sm font-bold block" style="background-color: rgb(200, 217, 251);color: rgb(16, 24, 32);">
  <span>
    Profitez de <u>promotions</u> jusqu'à -50% !
  </span>
</a>
<style>
 @media (min-width: 1024px) {
    .page-header + .block,
    .top-container {
        display: flex;
        flex-direction: column;
    }

    .page-header + .block .breadcrumbs,
    .top-container .breadcrumbs {
        order: 1;
    }
}
</style>
</div>
</div><main id="maincontent" class="page-main"><div id="contentarea" tabindex="-1"></div>
<div class="columns"><div class="column main"><script>
    window.checkoutConfig = {"storeCode":"espace_plaisir_fo","payment":{"adyen":{"clientKey":"live_YQVYO6466RBFRFNTI4FC4HV7MMCKPKKW","checkoutEnvironment":"live","locale":"fr_FR"}},"checkoutAgreements":{"isEnabled":true,"agreements":[{"content":"\u003Ch1\u003EConditions G\u00e9n\u00e9rales de Vente\u003C\/h1\u003E\r\n\r\n\u003Ch2 style=\"text-align: left;\"\u003EArticle 1 - Champ d\u2019application\u003C\/h2\u003E\r\n\u003Cp\u003ELes pr\u00e9sentes conditions g\u00e9n\u00e9rales de vente s'appliquent \u00e0 toutes commandes pass\u00e9es sur le site internet\u00a0\u003Cstrong\u003Ehttps:\/\/www.espaceplaisir.fr\u003C\/strong\u003E ou par t\u00e9l\u00e9phone.\u003C\/p\u003E\r\n\u003Cp\u003E\u003Cbr\u003ELe site internet\u00a0\u003Cstrong\u003Eespaceplaisir.fr\u003C\/strong\u003E est exclusivement et dans son int\u00e9gralit\u00e9 r\u00e9dig\u00e9 en fran\u00e7ais, il est \u00e9dit\u00e9 par la soci\u00e9t\u00e9 BELISOFT SAS, Soci\u00e9t\u00e9 par Actions Simplifi\u00e9e dont le si\u00e8ge social est situ\u00e9 1767, avenue de l'Hippodrome - 69140 Rillieux-la-Pape, immatricul\u00e9e au registre du commerce et des soci\u00e9t\u00e9s de Lyon sous le num\u00e9ro RCS LYON 528 953 276 (N\u00b0 de TVA intracommunautaire : FR77528953276).\u003C\/p\u003E\r\n\r\n\u003Ch2 style=\"text-align: left;\"\u003EArticle 2 -\u00a0Prix\u003C\/h2\u003E\r\n\u003Cp\u003ELes prix de nos produits sont indiqu\u00e9s en Euros TTC (toutes taxes comprises) hors participation aux frais de livraison. Toutes les commandes pass\u00e9es sur notre site sont payables en Euros. Les prix peuvent \u00eatre modifi\u00e9s \u00e0 tout moment. Les produits qui seront factur\u00e9s le seront sur la base des tarifs en vigueur au moment de l'enregistrement de la commande, sous r\u00e9serve de disponibilit\u00e9 \u00e0 ce moment-l\u00e0.\u003C\/p\u003E\r\n\u003Cp\u003ELe co\u00fbt des produits et services \u00e9trangers sont sujets \u00e0 des fluctuations. Tous les prix annonc\u00e9s sont susceptibles de varier en fonction des devises ou des frais de douane.\u003C\/p\u003E\r\n\r\n\u003Ch2 style=\"text-align: left;\"\u003EArticle 3 - Commande\u003C\/h2\u003E\r\n\u003Cp id=\"HJKNOYB\"\u003EApr\u00e8s avoir cliqu\u00e9 sur le bouton \u00ab Commander \u00bb, en bas de son panier, le client est redirig\u00e9 vers le choix de livraison, par la suite il peut v\u00e9rifier ces informations et les modifier au moyen du lien \u00ab Modifier \u00bb dans l'encart de son adresse ou ajouter une autre adresse avec le bouton \u00ab Nouvelle adresse \u00bb. Puis il peut s\u00e9lectionner la m\u00e9thode de livraison qui lui convient le mieux. En cliquant sur \"Enregistrer et continuer\", il peut choisir le mode de paiement.\u003C\/p\u003E\r\n\u003Cp\u003EApr\u00e8s avoir choisi son mode de paiement, le client devra prendre connaissance et accepter les conditions g\u00e9n\u00e9rales de ventes avant de pouvoir valider son choix.\u00a0 En validant son paiement, il acc\u00e8dera \u00e0 une page de r\u00e9sum\u00e9 de la commande. Il peut toujours modifier ses informations \u00e0 ce stade-ci. En cliquant sur \u00ab Passer la commande \u00bb, le contrat sera alors form\u00e9 au moment o\u00f9 la commande est valid\u00e9e, conform\u00e9ment aux termes du Code civil. Le client acc\u00e8de alors \u00e0 la page de confirmation de commande. Le client re\u00e7oit un courriel accusant r\u00e9ception de sa commande. Seuls les produits \u00e9num\u00e9r\u00e9s dans le courriel de confirmation envoy\u00e9 au moment de l'exp\u00e9dition seront inclus dans le contrat.\u003C\/p\u003E\r\n\u003Cp\u003ELe client peut passer commande sur le site internet\u00a0\u003Cstrong\u003Eespaceplaisir.fr\u003C\/strong\u003E ou par t\u00e9l\u00e9phone au 04 69 96 16 96 de 9h \u00e0 19h du lundi au vendredi. Au moment de sa commande, il sera inform\u00e9 de la disponibilit\u00e9 des produits. En outre, il peut arriver que certains produits soient indisponibles apr\u00e8s la commande. Si les produits s\u2019av\u00e8rent indisponibles de fa\u00e7on temporaire (rupture de stock, etc.), il en sera inform\u00e9 par e-mail et il sera invit\u00e9 \u00e0 modifier ou annuler sa commande. Si tous les produits de sa commande sont indisponibles d\u00e9finitivement, nous le tiendrons inform\u00e9 par e-mail.\u003C\/p\u003E\r\n\u003Cp\u003ELorsqu\u2019il passe sa commande, le client devra accepter les pr\u00e9sentes conditions g\u00e9n\u00e9rales de vente en cliquant sur la case pr\u00e9vue \u00e0 cet effet pour pouvoir valider sa commande. Le client d\u00e9clare et garantit qu\u2019il est habilit\u00e9 \u00e0 r\u00e9gler avec la carte de paiement fournie pour le paiement et que le prix de la commande est couvert par les fonds disponibles.\u003Cbr\u003EEn commandant, vous confirmez que toutes les informations que vous nous fournissez sont exactes, vous certifiez que vous \u00eates autoris\u00e9 \u00e0 utiliser la carte de cr\u00e9dit ou de d\u00e9bit utilis\u00e9e afin de passer commande et que vous disposez des fonds suffisants pour couvrir le prix des biens command\u00e9s.\u003C\/p\u003E\r\n\r\n\u003Ch2 style=\"text-align: left;\"\u003EArticle 4 - Paiement\u003C\/h2\u003E\r\n\u003Cp\u003ELe prix de la commande est exigible imm\u00e9diatement \u00e0 la date de passation de la commande. Nous acceptons les r\u00e8glements par carte bancaire (CB, Visa ou Mastercard), ch\u00e8que bancaire, virement bancaire, PayPal ou paiement en 3 fois sans frais par CB, Visa ou Mastercard.\u003C\/p\u003E\r\n\u003Cp\u003ELe paiement par carte bancaire en ligne utilise le protocole de s\u00e9curit\u00e9 SSL (Secure Socket Layer). Sont accept\u00e9es les cartes bleues Visa et Mastercard. Certaines commandes r\u00e9gl\u00e9es par carte bancaire peuvent faire l'objet de v\u00e9rifications suppl\u00e9mentaires et ce apr\u00e8s le d\u00e9bit de son paiement. Le client recevra alors un e-mail lui demandant des pi\u00e8ces justificatives (carte d\u2019identit\u00e9 et CB dont les informations auront \u00e9t\u00e9 pr\u00e9alablement cach\u00e9es partiellement) afin de valider l'envoi de sa commande.\u003C\/p\u003E\r\n\u003Cp\u003ELe paiement par ch\u00e8que bancaire est possible pour des ch\u00e8ques en Euros dont la banque est domicili\u00e9e en France. La commande sera valid\u00e9e \u00e0 la date de l'encaissement dudit ch\u00e8que. Nous nous r\u00e9servons le droit d\u2019attendre jusqu\u2019\u00e0 10 jours \u00e0 partir de la date de l\u2019encaissement du ch\u00e8que (d\u00e9lai maximum pour le retour d\u2019un ch\u00e8que impay\u00e9) avant d\u2019exp\u00e9dier la commande. Le ch\u00e8que devra \u00eatre \u00e9tabli \u00e0 l\u2019ordre de BELISOFT SAS et envoy\u00e9 \u00e0 l\u2019adresse ci-dessous :\u003C\/p\u003E\r\n\u003Cul class=\"address\"\u003E\r\n\u003Cli\u003EBELISOFT SAS\u003C\/li\u003E\r\n\u003Cli\u003E1767 avenue de l'Hippodrome\u003C\/li\u003E\r\n\u003Cli\u003E69140 Rillieux la Pape\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\u003Cp\u003ELes modalit\u00e9s de paiement par virement bancaire et PayPal seront communiqu\u00e9es par notre Service Client si le client a choisi l\u2019un de ces deux modes de paiement.\u003C\/p\u003E\r\n\r\n\u003Ch2\u003EArticle 5 - Livraison\u003C\/h2\u003E\r\n\u003Cp\u003EToutes nos livraisons se font dans un colis ferm\u00e9 ne laissant appara\u00eetre aucune mention du site\u00a0\u003Cstrong\u003Eespaceplaisir\u003C\/strong\u003E. Les produits sont livr\u00e9s \u00e0 l\u2019adresse indiqu\u00e9e par le client durant sa commande. Les frais de livraison seront indiqu\u00e9s au client avant tout r\u00e8glement. Les colis sont exp\u00e9di\u00e9s du lundi au vendredi inclus, hors week-end et jours f\u00e9ri\u00e9s. Le d\u00e9lai de livraison n\u2019inclut pas le temps de pr\u00e9paration de la commande, qui est en moyenne de 24h. Le d\u00e9lai de livraison ne constitue pas pour autant un d\u00e9lai exact et notre responsabilit\u00e9 ne saurait \u00eatre engag\u00e9e en cas de rupture de stock chez un fournisseur ou de retard dans la livraison. Notamment en cas de retard pris par le transporteur, pour quelques raisons que ce soit, notre responsabilit\u00e9 ne pourra \u00eatre engag\u00e9e. Le client a le devoir de v\u00e9rifier l\u2019\u00e9tat de l\u2019emballage et la conformit\u00e9 des produits qu\u2019il re\u00e7oit \u00e0 la suite de sa commande.\u003C\/p\u003E\r\n\u003Cp\u003EVeuillez vous r\u00e9f\u00e9rer \u00e0 la rubrique \u00ab Livraisons \u00bb dans la page\u00a0\u003Ca tabindex=\"0\" href=\"https:\/\/aide.espaceplaisir.fr\/hc\/fr\"\u003EAide\u003C\/a\u003E, qui fait partie des conditions d'utilisation de ce site.\u00a0\u003Cstrong\u003Eespaceplaisir.fr\u003C\/strong\u003E\u00a0propose plusieurs modes de livraison pour en savoir plus\u00a0\u003Ca tabindex=\"0\" href=\"https:\/\/aide.espaceplaisir.fr\/hc\/fr\/categories\/4417063463570-Livraisons\" rel=\"nofollow\"\u003Ecliquez ici\u003C\/a\u003E.\u003C\/p\u003E\r\n\u003Cp\u003E\u003Cstrong\u003Eespaceplaisir.fr\u003C\/strong\u003E\u00a0s\u2019engage \u00e0 respecter au maximum la date d\u2019exp\u00e9dition qui vous est donn\u00e9e \u00e0 titre indicatif sur la fiche du ou des produits que vous commandez. Lors de la commande avec plusieurs articles, le d\u00e9lai de livraison \u00e0 prendre en compte est celui le plus long. Si je commande un canard exp\u00e9di\u00e9 sous 24h et un jeu exp\u00e9di\u00e9 sous 2 \u00e0 5 jours alors la totalit\u00e9 de ma commande sera exp\u00e9di\u00e9e sous 2 \u00e0 5 jours au minimum.\u003C\/p\u003E\r\n\u003Cp\u003ELes commandes effectu\u00e9es en express (Chronopost ou Chrono Relais) doivent \u00eatre effectu\u00e9es avant 16h avec des produits portant la mention \u00ab En stock, exp\u00e9dition aujourd'hui \u00bb, pour esp\u00e9rer une r\u00e9ception le lendemain.\u003C\/p\u003E\r\n\u003Cp\u003ELes commandes peuvent \u00eatre livr\u00e9es par Colissimo suivi, Colis Priv\u00e9, Chronopost ou par Mondial Relay. Lorsque le colis sera achemin\u00e9 au domicile du client, en cas d'absence de ce dernier, un avis de passage sera laiss\u00e9 par le facteur ou le livreur et le colis restera \u00e0 la disposition du client pendant un d\u00e9lai de quinze jours \u00e0 l'adresse indiqu\u00e9e sur l'avis de passage. Pass\u00e9 ce d\u00e9lai, le colis nous sera retourn\u00e9.\u003C\/p\u003E\r\n\u003Cp\u003ELe client doit s\u2019assurer que l\u2019adresse de livraison indiqu\u00e9e est suffisante pour un acheminement sans incident par le service en charge de l\u2019exp\u00e9dition.\u003Cbr\u003EToutes les commandes renvoy\u00e9es par La Poste pour cas de NPAI (N'habite Pas \u00e0 l'Adresse Indiqu\u00e9e) ou d\u2019adresses erron\u00e9es seront disponibles sous 15 jours \u00e0 la soci\u00e9t\u00e9 BELISOFT SAS. Si le client d\u00e9sire que le colis lui soit renvoy\u00e9, il devra prendre \u00e0 sa charge les frais de port.\u003C\/p\u003E\r\n\r\n\u003Ch2\u003EArticle 6 - Service client\u00e8le\u003C\/h2\u003E\r\n\u003Cp\u003EPour un suivi pr\u00e9cis de votre commande, notre service client est disponible \u00e0 l\u2019adresse e-mail suivante : serviceclients@espaceplaisir.fr ou par t\u00e9l\u00e9phone au +33 (0)4.69.96.16.96 (prix d\u2019un appel local).\u003C\/p\u003E\r\n\r\n\u003Ch2\u003EArticle 7 - Satisfait\u00b7e ou rembours\u00e9\u00b7e\u003C\/h2\u003E\r\n\u003Cp\u003EConform\u00e9ment \u00e0 la l\u00e9gislation en vigueur, le client dispose d'un d\u00e9lai de 15 jours (\u00e0 compter de la date de r\u00e9ception du colis) pour demander l'\u00e9change ou le remboursement de sa commande. Nous nous engageons \u00e0 cela \u00e0 conditions que l\u2019article nous soit retourn\u00e9 dans son emballage d\u2019origine et accompagn\u00e9 de sa facture \u00e0 l'adresse suivante :\u003C\/p\u003E\r\n\u003Cul\u003E\r\n\u003Cli\u003EBELISOFT logistics\u003C\/li\u003E\r\n\u003Cli\u003E1767 avenue de l'Hippodrome\u003C\/li\u003E\r\n\u003Cli\u003E69140 Rillieux la Pape\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\u003Cp\u003ECe droit de r\u00e9traction est valable uniquement pour un produit non utilis\u00e9, renvoy\u00e9 emball\u00e9 dans son emballage d'origine avec tous ses accessoires, non manipul\u00e9 ou mis en charge. Plus particuli\u00e8rement, les produits sextoys ne doivent en aucun cas avoir \u00e9t\u00e9 utilis\u00e9s et si l'emballage dispose d'un scell\u00e9, celui-ci doit \u00eatre encore vierge.\u003C\/p\u003E\r\n\u003Cp\u003ESelon la loi en vigueur le droit de r\u00e9tractation exclut tous biens que vous avez ouverts et non retournables pour des raisons d'hygi\u00e8ne : sous-v\u00eatements, cosm\u00e9tiques, sextoys, etc.\u003Cbr\u003ELa soci\u00e9t\u00e9 BELISOFT SAS se r\u00e9serve le droit de refuser le retour d\u2019un produit en cas d\u2019insatisfaction pour des raisons d\u2019hygi\u00e8ne quant au produit retourn\u00e9.\u003C\/p\u003E\r\n\u003Cp\u003ELes produits Lingerie ne doivent pas avoir \u00e9t\u00e9 port\u00e9s (toutefois nous tol\u00e9rons qu'ils puissent avoir \u00e9t\u00e9 essay\u00e9s hormis les sous-v\u00eatements) et doivent \u00eatre retourn\u00e9s pli\u00e9s. Les produits Bien-\u00eatre et Aphrodisiaques ne doivent pas \u00eatre ouverts. Les frais d'envoi et de retour sont alors \u00e0 la charge du client et seul le prix du ou des produits lui sera rembours\u00e9.\u003C\/p\u003E\r\n\u003Cp\u003ESi vous souhaitez retourner la totalit\u00e9 de votre commande en respectant les conditions de retour \u00e9num\u00e9r\u00e9es dans les CGV, vous devez nous faire parvenir une lettre recommand\u00e9e avec accus\u00e9 de r\u00e9ception \u00e0 l'adresse BELISOFT SAS 1767 avenue de l'Hippodrome 69140 Rillieux la pape, avec le formulaire de r\u00e9tractation\u00a0\u003Ca tabindex=\"0\" href=\"{{store url ='\/pub\/media\/pdf\/FORMULAIRE_DE_RETRACTATION.pdf'}}\" target=\"_blank\" rel=\"nofollow noopener\"\u003Edisponible ici\u003C\/a\u003E ainsi que la facture, dans un colis suffisamment prot\u00e9g\u00e9 pour b\u00e9n\u00e9ficier d\u2019un remboursement total. Si l\u2019une des conditions n\u2019est pas respect\u00e9e, le remboursement total ne pourra \u00eatre effectu\u00e9.\u003C\/p\u003E\r\n\u003Cp\u003ELe retour du produit doit imp\u00e9rativement se faire par le biais du service Colissimo suivi de La Poste, nous ne saurions \u00eatre tenus pour responsable de la perte ou de la d\u00e9gradation du colis que vous nous retournez. Pour les produits d\u00e9fectueux toute r\u00e9clamation pour un produit manquant ou endommag\u00e9 dans le colis doit \u00eatre faite par mail dans les 48h suivant la r\u00e9ception du colis. Aucune r\u00e9clamation faite apr\u00e8s ce d\u00e9lai ne sera accept\u00e9e.\u003C\/p\u003E\r\n\u003Cp\u003ELe client devra prendre contact avec notre Service Client pour r\u00e9cup\u00e9rer une \u00e9tiquette de retour pr\u00e9pay\u00e9e permettant de prendre les frais de retour \u00e0 notre charge. Dans le cas d\u2019un remboursement, nous garantissons qu'il est effectu\u00e9 par ch\u00e8que ou directement sur la carte bancaire qui a servi \u00e0 l\u2019achat dans un d\u00e9lai maximum de 14 jours suivant la date de traitement de son retour.\u003C\/p\u003E\r\n\u003Cp\u003ESi vous avez souscrit au Pack S\u00e9r\u00e9nit\u00e9, vous b\u00e9n\u00e9ficiez de 2 retours Premium gratuits (selon les m\u00eames r\u00e8gles qu\u2019un retour standard \u00e0 la diff\u00e9rence que nous vous fournissons un bon de retour pr\u00e9pay\u00e9), de 100 jours de r\u00e9tractation (\u00e0 compter de la date de r\u00e9ception du colis), d\u2019un SMS qui vous indique l\u2019exp\u00e9dition de votre commande et du traitement prioritaire de votre commande.\u003C\/p\u003E\r\n\u003Cp\u003ESi vous avez souscrit au Pack S\u00e9r\u00e9nit\u00e9 sans formuler votre opposition expresse lors de votre commande en d\u00e9cochant la case dans la page du panier, vous pouvez obtenir le remboursement de cette option payante sur simple demande \u00e0 notre Service Client qui traitera votre remboursement dans les plus brefs d\u00e9lais (article L121-17 alin\u00e9a 2 du Code de la consommation).\u003Cbr\u003ELes retours sont trait\u00e9s dans un d\u00e9lai maximum de 3 semaines \u00e0 compter de la r\u00e9ception du colis dans nos entrep\u00f4ts.\u003C\/p\u003E\r\n\u003Cp\u003ELes produits d\u00e9fectueux doivent nous \u00eatre retourn\u00e9s dans l\u2019\u00e9tat dans lequel vous les avez re\u00e7us avec l\u2019ensemble des \u00e9l\u00e9ments : accessoires, emballages, notice, etc. Les dispositions de cet article ne vous emp\u00eachent pas de b\u00e9n\u00e9ficier du droit de r\u00e9tractation. En cas de retour ne remplissant pas ces conditions (r\u00e9tractation sur un produit endommag\u00e9 ou incomplet, renvoi en garantie pour un produit qui fonctionne, etc.), le produit sera renvoy\u00e9 en l'\u00e9tat au client, sous r\u00e9serve d'un paiement des frais r\u00e9els de renvoi, ainsi que des frais engag\u00e9s pour le retour dans nos locaux s'ils avaient \u00e9t\u00e9 pris en charge par la soci\u00e9t\u00e9 BELISOFT.\u003C\/p\u003E\r\n\u003Cp\u003ELes garanties contractuelles ne couvrent pas : le remplacement des consommables (batteries, ampoules, fusibles, antennes, casques de baladeurs, microphones, usure de t\u00eates de lecture ou d\u2019enregistrement, etc.), l\u2019utilisation anormale ou non conforme des produits. Nous vous invitons \u00e0 cet \u00e9gard \u00e0 consulter attentivement la notice d\u2019emploi fournie avec les produits, les pannes li\u00e9es aux accessoires (c\u00e2bles d\u2019alimentation, etc.), les d\u00e9fauts et leurs cons\u00e9quences d\u00fbs \u00e0 l\u2019intervention d\u2019un r\u00e9parateur non agr\u00e9\u00e9, les d\u00e9fauts et leurs cons\u00e9quences li\u00e9s \u00e0 l\u2019utilisation non conforme \u00e0 l\u2019usage pour lequel le produit est destin\u00e9 (utilisation professionnelle, collective, etc.), les d\u00e9fauts et leurs cons\u00e9quences li\u00e9s \u00e0 toute cause ext\u00e9rieure.\u003C\/p\u003E\r\n\r\n\u003Ch2\u003EArticle 8 -\u00a0Garanties\u003C\/h2\u003E\r\n\u003Ch3\u003E8.1 Garantie commerciale\u003C\/h3\u003E\r\n\u003Cp\u003ELes produits vendus sont couverts par une garantie commerciale visant \u00e0 garantir leur conformit\u00e9 et assurant le remboursement du prix d'achat, le remplacement ou la r\u00e9paration des biens. Elle ne couvre pas les d\u00e9fauts occasionn\u00e9s du fait d'une utilisation anormale ou fautive ou r\u00e9sultant d'une cause \u00e9trang\u00e8re aux qualit\u00e9s intrins\u00e8ques des produits.\u003C\/p\u003E\r\n\u003Cp\u003ELes informations concernant les \u00e9ventuelles garanties commerciales relatives aux produits et services propos\u00e9s \u00e0 la vente (notamment le contenu de la garantie, les modalit\u00e9s de sa mise en \u0153uvre, son prix, sa dur\u00e9e, son \u00e9tendue territoriale ainsi que le nom et l\u2019adresse du garant selon les produits, services et marques concern\u00e9es) sont port\u00e9es \u00e0 la connaissance du client le cas \u00e9ch\u00e9ant sur la fiche de chaque produit et service dans l\u2019espace de vente en ligne.\u003C\/p\u003E\r\n\u003Ch3\u003E8.2 Garantie l\u00e9gale\u003C\/h3\u003E\r\n\u003Cp\u003ETous les produits propos\u00e9s par\u00a0\u003Cstrong\u003Eespaceplaisir\u003C\/strong\u003E\u00a0sont soumis \u00e0 l\u2019application des garanties l\u00e9gales de conformit\u00e9 (articles L211-4 \u00e0 L211-14 du Code de la consommation) et de vices cach\u00e9s (articles 1641 \u00e0 1649 du Code civil). Pour la mise en \u0153uvre d\u2019une des garanties, le client devra contacter\u00a0\u003Cstrong\u003Eespaceplaisir\u003C\/strong\u003E\u00a0par e-mail \u00e0 l\u2019adresse serviceclients@espaceplaisir.fr ou par courrier recommand\u00e9 avec avis de r\u00e9ception \u00e0 l\u2019adresse : BELISOFT 1767 avenue de l'Hippodrome 69140 Rillieux-la-Pape.\u003C\/p\u003E\r\n\u003Cp\u003EIl est rappel\u00e9 que dans le cadre de la garantie l\u00e9gale de conformit\u00e9, le consommateur :\u003C\/p\u003E\r\n\u003Cul\u003E\r\n\u003Cli\u003Eb\u00e9n\u00e9ficie d\u2019un d\u00e9lai de deux ans \u00e0 compter de la d\u00e9livrance du bien pour agir vis-\u00e0-vis de son vendeur ;\u003C\/li\u003E\r\n\u003Cli\u003Epeut choisir entre la r\u00e9paration ou le remplacement du bien, sous r\u00e9serve des conditions de co\u00fbt pr\u00e9vues par l\u2019article L211-9 du code de la consommation ;\u003C\/li\u003E\r\n\u003Cli\u003Eest dispens\u00e9 de rapporter la preuve de l\u2019existence du d\u00e9faut de conformit\u00e9 du bien durant les six mois suivant la d\u00e9livrance du bien.\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\u003Cp\u003ECe d\u00e9lai est port\u00e9 \u00e0 24 mois \u00e0 compter du 18 mars 2016, sauf pour les biens d\u2019occasion. La garantie l\u00e9gale de conformit\u00e9 s\u2019applique ind\u00e9pendamment de la garantie commerciale pouvant \u00e9ventuellement couvrir votre bien. Il est rappel\u00e9 que le consommateur peut d\u00e9cider de mettre en \u0153uvre la garantie contre les d\u00e9fauts cach\u00e9s de la chose vendue au sens de l\u2019article 1641 du Code civil et que dans cette hypoth\u00e8se, il peut choisir entre la r\u00e9solution de la vente ou une r\u00e9duction du prix de vente conform\u00e9ment \u00e0 l\u2019article 1644 du Code civil.\u003C\/p\u003E\r\n\r\n\u003Ch2\u003EArticle 9 -\u00a0Parrainage\u003C\/h2\u003E\r\n\u003Cp\u003EPour pouvoir pr\u00e9tendre \u00e0 parrainer ses proches, la marraine ou le parrain doit poss\u00e9der un compte sur\u00a0\u003Cstrong\u003Eespaceplaisir\u003C\/strong\u003E. Les filleuls ne doivent pas faire l'objet d'une demande de parrainage en cours. Ils ne doivent pas poss\u00e9der de compte sur\u00a0\u003Cstrong\u003Eespaceplaisir.fr\u003C\/strong\u003E. La marraine ou le parrain recevra un bon d'achat de 5 \u20ac si le filleul a command\u00e9 suite \u00e0 son inscription. Les bons d'achat sont personnels, r\u00e9serv\u00e9s aux marraines ou parrains et disponibles apr\u00e8s r\u00e9ception de l'email qui confirmera la validation du parrainage. Les bons ne sont pas cessibles ni utilisables partiellement, et n'entra\u00eeneront aucune contrepartie mon\u00e9taire sous quelque forme que ce soit, et n'excluent pas la participation aux frais de livraison de la commande. Ils sont utilisables sur tout le site et m\u00eame sur les produits en promotion. L'offre de bienvenue des filleuls est constitu\u00e9e d\u2019un bon d\u2019achat de 5 \u20ac.\u003C\/p\u003E\r\n\r\n\u003Ch2\u003EArticle 10 - Responsabilit\u00e9\u003C\/h2\u003E\r\n\u003Cp\u003ELes produits propos\u00e9s sur le site\u00a0\u003Cstrong\u003Eespaceplaisir.fr\u003C\/strong\u003E sont conformes \u00e0 la l\u00e9gislation fran\u00e7aise en vigueur et aux normes applicables en France. Tous nos produits attestent des normes NF ou CE. Le client trouvera avec la plupart des produits livr\u00e9s une notice d\u2019utilisation. Nous ne saurions en aucun cas \u00eatre tenus responsables du mauvais usage des produits en vente sur le site, notamment l\u2019utilisation pour un usage autre que celui pr\u00e9vu par le fabricant du produit, ou le non-respect des consignes de stockage et de s\u00e9curit\u00e9 du produit. Les photographies, textes, graphismes, informations et caract\u00e9ristiques reproduits et illustrant les produits pr\u00e9sent\u00e9s ne sont pas contractuels. En cons\u00e9quence, notre responsabilit\u00e9 ne saurait \u00eatre engag\u00e9e en cas d'erreur ou d'omission dans l'une de ces photographies, textes, graphismes, informations ou caract\u00e9ristiques des produits ou en cas de modification des caract\u00e9ristiques des produits par les fabricants. Il est possible pour toute question sur les produits ou notre offre de contacter notre Service Client. Nous nous d\u00e9gageons de toute responsabilit\u00e9 quant au contenu des sites sur lesquels des liens hypertextes peuvent renvoyer \u00e0 partir de notre propre site. BELISOFT SAS ne saurait \u00eatre tenue pour responsable de l'inex\u00e9cution du contrat conclu en cas de rupture de stock ou d\u2019indisponibilit\u00e9 du produit, de perturbation, de gr\u00e8ve totale ou partielle notamment des services postaux, des moyens de transport ou de communications, inondation, incendie et tout autre cas de force majeure.\u003C\/p\u003E\r\n\u003Cp\u003ENous ne pourrons \u00eatre tenus responsables de toute perte ou dommage caus\u00e9 par une attaque par d\u00e9ni de service, de type DDOS (\u00ab Distributed Denial Of Service attack \u00bb), virus ou autre mat\u00e9riel technologiquement nuisible, qui serait susceptible d'infecter votre \u00e9quipement informatique, vos programmes informatiques, donn\u00e9es ou autres mat\u00e9riels, et qui serait d\u00fb \u00e0 l'utilisation du pr\u00e9sent site internet ou au t\u00e9l\u00e9chargement de tout \u00e9l\u00e9ment accessible sur ce site internet ou sur un site li\u00e9.\u003C\/p\u003E\r\n\r\n\u003Ch2\u003EArticle 11 - Propri\u00e9t\u00e9 intellectuelle\u003C\/h2\u003E\r\n\u003Cp\u003ETous les textes, commentaires, ouvrages, illustrations et images reproduits sur le site\u00a0\u003Cstrong\u003Eespaceplaisir.fr\u003C\/strong\u003E\u00a0sont r\u00e9serv\u00e9s au titre du droit d'auteur ainsi qu'au titre de la propri\u00e9t\u00e9 intellectuelle et pour le monde entier. \u00c0 ce titre et conform\u00e9ment aux dispositions du Code de la Propri\u00e9t\u00e9 intellectuelle, seule est autoris\u00e9e l'utilisation pour un usage priv\u00e9 sous r\u00e9serve de dispositions diff\u00e9rentes, voire plus restrictives, du Code de la Propri\u00e9t\u00e9 intellectuelle. Toute autre utilisation est constitutive de contrefa\u00e7on et sanctionn\u00e9e au titre de la Propri\u00e9t\u00e9 intellectuelle sauf autorisation pr\u00e9alable de BELISOFT SAS. Toute reproduction totale ou partielle du site\u00a0\u003Cstrong\u003Eespaceplaisir.fr\u003C\/strong\u003E\u00a0est strictement interdite.\u003C\/p\u003E\r\n\r\n\u003Ch2\u003EArticle 12 - R\u00e9serve de propri\u00e9t\u00e9\u003C\/h2\u003E\r\n\u003Cp\u003ELes marchandises qui vous seront livr\u00e9es et factur\u00e9es resteront la propri\u00e9t\u00e9 de la soci\u00e9t\u00e9 BELISOFT SAS jusqu\u2019au paiement int\u00e9gral de leur prix. Le d\u00e9faut de paiement int\u00e9gral de la somme pourra entra\u00eener la revendication des marchandises par BELISOFT SAS, la restitution \u00e9tant imm\u00e9diate et les marchandises livr\u00e9es \u00e0 vos frais, risques et p\u00e9rils. Durant la p\u00e9riode s\u2019\u00e9coulant de la livraison au transfert de propri\u00e9t\u00e9, les risques de perte, vol ou destruction, ainsi que les dommages que vous pourriez occasionner restent \u00e0 votre charge.\u003C\/p\u003E\r\n\r\n\u003Ch2\u003EArticle 13 -\u00a0M\u00e9diation\u003C\/h2\u003E\r\n\u003Cp\u003ESelon les articles L611-1 et suivants du Code de la consommation, le client a le droit de recourir gratuitement (sauf \u00e9ventuels frais d\u2019avocat et d\u2019expertise) \u00e0 un m\u00e9diateur de la consommation en vue de la r\u00e9solution amiable d\u2019un litige l\u2019opposant \u00e0\u00a0\u003Cstrong\u003Eespaceplaisir\u003C\/strong\u003E.\u003C\/p\u003E\r\n\u003Cp\u003E\u003Cstrong\u003Eespaceplaisir\u003C\/strong\u003E\u00a0adh\u00e8re au Service du M\u00e9diateur du CM2C (Centre de m\u00e9diation de la consommation de conciliateurs de justice) dont les coordonn\u00e9es sont les suivantes : 14 Rue Saint-Jean 75017 Paris \u003Ca tabindex=\"0\" href=\"https:\/\/www.cm2c.net\/\" target=\"_blank\" rel=\"noopener nofollow\"\u003Ehttps:\/\/www.cm2c.net\/\u003C\/a\u003E. Apr\u00e8s d\u00e9marche pr\u00e9alable \u00e9crite des consommateurs vis-\u00e0-vis d\u2019\u003Cstrong\u003Eespaceplaisir\u003C\/strong\u003E, le Service du M\u00e9diateur peut \u00eatre saisi pour tout litige de consommation dont le r\u00e8glement n\u2019aurait pas abouti. Pour conna\u00eetre les modalit\u00e9s de saisine du M\u00e9diateur, \u003Ca tabindex=\"0\" href=\"https:\/\/www.cm2c.net\/comment-nous-saisir.php\" target=\"_blank\" rel=\"noopener\"\u003Ecliquez ici\u003C\/a\u003E.\u003C\/p\u003E\r\n\u003Cp\u003EDepuis le 15 f\u00e9vrier 2016, la plateforme en ligne de r\u00e8glement amiable des litiges de la Commission europ\u00e9enne est ouverte au public. Tout consommateur qui rencontre un litige avec une entreprise situ\u00e9e sur le territoire de l\u2019Union a la possibilit\u00e9 de d\u00e9poser une demande de m\u00e9diation par le biais de cette plateforme europ\u00e9enne. Vous pouvez consulter \u00e9galement le site internet de la Commission europ\u00e9enne d\u00e9di\u00e9 \u00e0 la m\u00e9diation de la consommation :\u00a0\u003Ca tabindex=\"0\" href=\"https:\/\/ec.europa.eu\/info\/live-work-travel-eu\/consumers\/resolve-your-consumer-complaint_fr\" target=\"_blank\" rel=\"nofollow noopener\"\u003Ehttps:\/\/ec.europa.eu\/info\/live-work-travel-eu\/consumers\/resolve-your-consumer-complaint_fr\u003C\/a\u003E.\u003C\/p\u003E\r\n\r\n\u003Ch2\u003EArticle 14 - Donn\u00e9es personnelles\u003C\/h2\u003E\r\n\u003Cp\u003ELes r\u00e8gles concernant le\u00a0\u003Cstrong\u003Etraitement des donn\u00e9es personnelles\u003C\/strong\u003E\u00a0sur le site espaceplaisir.fr sont d\u00e9taill\u00e9es dans la\u00a0\u003Ca tabindex=\"0\" href=\"{{store url ='content\/12-politique-de-gestion-des-donnees-personnelles-et-cookies'}\"\u003EPolitique de protection des donn\u00e9es personnelles et cookies\u003C\/a\u003E.\u003C\/p\u003E\r\n\r\n\u003Ch2\u003EArticle 15 - Droit applicable aux litiges\u003C\/h2\u003E\r\n\u003Cp\u003EToutes les clauses figurant dans les pr\u00e9sentes conditions g\u00e9n\u00e9rales de vente, ainsi que toutes les op\u00e9rations d'achat et de vente qui y sont vis\u00e9es, seront soumises au droit fran\u00e7ais. Tout r\u00e8glement de litige peut se faire aupr\u00e8s de notre Service Client et \u00e0 d\u00e9faut d\u2019un r\u00e8glement \u00e0 l\u2019amiable, seul le Tribunal de commerce de Lyon sera comp\u00e9tent quelle que soit la raison du litige, tribunal du si\u00e8ge social de BELISOFT SAS o\u00f9 est form\u00e9 le contrat entre les parties.\u003C\/p\u003E\r\n\r\n\u003Ch2\u003EArticle 16 - Acceptation du client\u003C\/h2\u003E\r\n\u003Cp\u003ELes pr\u00e9sentes conditions g\u00e9n\u00e9rales de vente ainsi que les tarifs sont express\u00e9ment accept\u00e9es par l'auteur de la commande, qui d\u00e9clare et reconna\u00eet en avoir une parfaite connaissance, la confirmation de la commande entra\u00eenant l\u2019acceptation des pr\u00e9sentes conditions g\u00e9n\u00e9rales de vente. Les pr\u00e9sentes conditions sont modifiables \u00e0 tout moment sans pr\u00e9avis. L\u2019invalidit\u00e9 d\u2019une ou plusieurs des clauses des pr\u00e9sentes conditions g\u00e9n\u00e9rales d\u2019utilisation n\u2019entra\u00eenera pas la nullit\u00e9 de celles-ci.\u003C\/p\u003E\r\n\r\n\u003Ch2\u003EArticle 17 -\u00a0Protection des mineurs\u003C\/h2\u003E\r\n\u003Cp\u003ENous sommes conscients que le contenu d'\u003Cstrong\u003Eespaceplaisir\u003C\/strong\u003E\u00a0peut choquer, nous avons donc pris certains engagements concernant vos enfants mineurs :\u003C\/p\u003E\r\n\u003Cul\u003E\r\n\u003Cli\u003EAucun contenu choquant dans les fiches de nos produits\u003C\/li\u003E\r\n\u003Cli\u003EPas de photos de mod\u00e8les nus\u003C\/li\u003E\r\n\u003Cli\u003ER\u00e9daction des descriptions sans vulgarit\u00e9\u003C\/li\u003E\r\n\u003Cli\u003EAucun contenu pornographique\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\u003Cp\u003EVotre responsabilit\u00e9 de parents est de surveiller les sites consult\u00e9s par vos enfants.\u003C\/p\u003E\r\n\u003Cp\u003EN\u00e9anmoins, pour que vos enfants puissent acc\u00e9der \u00e0 Internet en toute tranquillit\u00e9, vous pouvez installer un logiciel de contr\u00f4le et de filtrage parental pour limiter l'acc\u00e8s \u00e0 vos enfants \u00e0 certains sites ou contenus.\u003C\/p\u003E\r\n\u003Cp\u003EPour plus d'informations vous pouvez consulter\u00a0\u003Ca tabindex=\"0\" href=\"http:\/\/www.protection-mineurs.com\/\" target=\"_blank\" rel=\"nofollow noopener\"\u003Ewww.protection-mineurs.com\u003C\/a\u003E.\u003C\/p\u003E\r\n\u003Cp\u003EToute personne consultant le site\u00a0\u003Cstrong\u003Eespaceplaisir\u003C\/strong\u003E\u00a0d\u00e9clare \u00eatre un public averti et majeur ayant plus de 18 ans ou avec l\u2019autorisation l\u00e9gale de ses parents ou de son tuteur l\u00e9gal.\u003Cbr\u003EL\u2019article 1305 du Code civil donne la possibilit\u00e9 aux parents d\u2019annuler une commande pass\u00e9e par un individu mineur en contactant notre service client.\u003C\/p\u003E\r\n\u003Cp\u003ELa marque\u00a0\u003Cstrong\u003Eespaceplaisir\u003C\/strong\u003E ne peut \u00eatre tenue responsable dans le cas o\u00f9 l\u2019individu mineur a confirm\u00e9 ses informations (date de naissance) et a en tout \u00e9tat de cause rempli de fausses informations pour acheter des produits destin\u00e9s aux adultes en changeant sa valeur de naissance.\u003C\/p\u003E\r\n\u003Cp\u003ELa loi concernant l'article 227-24 du code p\u00e9nal ne peut \u00eatre applicable car la seule photographie d'un nu ne saurait, sous r\u00e9serve de l'appr\u00e9ciation souveraine des magistrats, constituer en soi l'infraction pr\u00e9vue \u00e0 l'article 227-24 du code p\u00e9nal.\u003C\/p\u003E","checkboxText":"J&#039;ai lu et j&#039;accepte les conditions g\u00e9n\u00e9rales de vente.","mode":"1","agreementId":"1","contentHeight":null}]}};    window.customerData = window.checkoutConfig.customerData;
    window.isCustomerLoggedIn = window.checkoutConfig.isCustomerLoggedIn;
    window.adyenData = {"external-platform-name":"Magento","external-platform-version":"2.4.6-p13","external-platform-edition":"Community","merchant-application-name":"adyen-magento2","merchant-application-version":"9.16.1"};
</script>

<div x-data="collectMonetateOnCartUpdate()"
     @i4-cart-update.window="updateMonetateData"
     @private-content-loaded.window="cartHandler"
     @toggle-cart.window="updateMonetateDataOnMinicartAction">
</div>
<script>
    function collectMonetateOnCartUpdate() {
        return {
            cart: {},
            oldSummary: 0,
            isMinicartOpened: false,
            isMinicartStatePushed: false,
            updateMonetateData () {
                let collectedData = [];

                if (this.cart.summary_count && this.cart.summary_count !== this.oldSummary) {
                    window.monetateQ = window.monetateQ || [];

                    if (this.cart.items.length) {
                        collectedData = this.cart.items.map(({product_id, product_sku, qty, item_price_incl_discount}) => {
                            return {
                                "productId": product_id,
                                "sku": product_sku.replace(/\s+/g, '_'),
                                "quantity": qty,
                                "unitPrice": parseFloat(item_price_incl_discount),
                                "currency": 'EUR'
                            };
                        })
                    }

                    window.monetateQ.push([
                        "setPageType",
                        "cart"
                    ]);

                    window.monetateQ.push([
                        "addCartRows", collectedData
                    ]);

                    window.monetateQ.push([
                        "trackData",
                        {
                            "nonPageView": true
                        }
                    ]);

                    this.oldSummary = this.cart.summary_count;
                }
            },

            cartHandler (e) {
                this.cart = e.detail.data.cart;
                if (!this.isMinicartOpened) return;
                this.updateMonetateData();
            },

            updateMonetateDataOnMinicartAction () {
                this.isMinicartOpened = true;
                if (!this.isMinicartStatePushed) {
                    this.updateMonetateData();
                    this.isMinicartStatePushed = true;
                }
            }
        }
    }
</script>

<div
        class="ambanners ambanner-11"
    data-position="11"
    data-bannerid=""
    data-role="amasty-banner-container"
>
    </div>

<script>
    (() => {
        window.monetateQ = window.monetateQ || [];
        window.monetateQ.push(["setPageType", "main"]);
        window.monetateQ.push(["trackData"]);
    })()
</script>
<style>.cmsp72-mb-0 {
margin-bottom: 0px
}
.cmsp72-mb-8 {
margin-bottom: 2rem
}
.cmsp72-mt-6 {
margin-top: 1.5rem
}
.cmsp72-block {
display: block
}
.cmsp72-inline {
display: inline
}
.cmsp72-flex-grow {
flex-grow: 1
}
.cmsp72-items-center {
align-items: center
}
.cmsp72-border {
border-width: 1px
}
.cmsp72-font-normal {
font-weight: 400
}</style>
<style>#html-body [data-pb-style=VCJN9TG]{justify-content:flex-start;display:flex;flex-direction:column;margin-bottom:32px}#html-body [data-pb-style=HD6PP3V],#html-body [data-pb-style=PEM03DN],#html-body [data-pb-style=VCJN9TG]{background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll}#html-body [data-pb-style=PEM03DN]{justify-content:flex-start;display:flex;flex-direction:column;margin-bottom:16px}#html-body [data-pb-style=HD6PP3V]{align-self:stretch}#html-body [data-pb-style=KTF0SFG]{display:flex;width:100%}#html-body [data-pb-style=MTRSF6W],#html-body [data-pb-style=XEPJWLN]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:50%;align-self:stretch}#html-body [data-pb-style=TV96GHT]{text-align:center;margin-bottom:32px}#html-body [data-pb-style=EJWSEFC]{margin-bottom:32px}#html-body [data-pb-style=JW5HHU7],#html-body [data-pb-style=QYYX9CV]{background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll}#html-body [data-pb-style=QYYX9CV]{justify-content:flex-start;display:flex;flex-direction:column;margin-bottom:16px}#html-body [data-pb-style=JW5HHU7]{align-self:stretch}#html-body [data-pb-style=MG2FOUB]{display:flex;width:100%}#html-body [data-pb-style=BAN2YY6],#html-body [data-pb-style=SQSP4I0]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:50%;align-self:stretch}#html-body [data-pb-style=V1GAXCW]{text-align:center;margin-bottom:32px}#html-body [data-pb-style=FQI6M91],#html-body [data-pb-style=V8GFXM3]{background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll}#html-body [data-pb-style=FQI6M91]{justify-content:flex-start;display:flex;flex-direction:column;margin-bottom:32px}#html-body [data-pb-style=V8GFXM3]{text-align:center;align-self:stretch}#html-body [data-pb-style=RKY6EXI]{display:flex;width:100%}#html-body [data-pb-style=J980QG5]{justify-content:center;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;text-align:left;border-style:none;width:100%;align-self:stretch}#html-body [data-pb-style=VNILVCU]{text-align:left}#html-body [data-pb-style=LOD4LYR]{margin-top:0;margin-bottom:32px}#html-body [data-pb-style=OA1K6KA]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll}#html-body [data-pb-style=S9R9RXK]{margin-bottom:40px}#html-body [data-pb-style=LDJINIX],#html-body [data-pb-style=RU9A5WC]{background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll}#html-body [data-pb-style=RU9A5WC]{justify-content:flex-start;display:flex;flex-direction:column;margin-bottom:32px}#html-body [data-pb-style=LDJINIX]{align-self:stretch}#html-body [data-pb-style=IBK6JE3]{display:flex;width:100%}#html-body [data-pb-style=Y3XIWSW]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:50%;align-self:stretch}#html-body [data-pb-style=S5JIAKD]{text-align:left}#html-body [data-pb-style=QEBCSP9]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:50%;align-self:stretch}#html-body [data-pb-style=D9J76T1]{display:none}#html-body [data-pb-style=UJ13WCR]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll}#html-body [data-pb-style=RO5EGXH]{margin-bottom:40px}#html-body [data-pb-style=S1ISUC4]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll}#html-body [data-pb-style=T0R7WWU]{margin-bottom:32px}#html-body [data-pb-style=LLSBDJD]{justify-content:center;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;text-align:center}#html-body [data-pb-style=HDTOGOS]{display:none}#html-body [data-pb-style=ESK62CJ],#html-body [data-pb-style=RGYTN9T]{background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll}#html-body [data-pb-style=ESK62CJ]{justify-content:flex-start;display:flex;flex-direction:column}#html-body [data-pb-style=RGYTN9T]{text-align:center;margin-bottom:0;align-self:stretch}#html-body [data-pb-style=CNVILS8]{display:flex;width:100%}#html-body [data-pb-style=FWL2QVF]{justify-content:center;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;text-align:left;border-style:none;width:50%;align-self:stretch}#html-body [data-pb-style=JXAHQ8O]{text-align:left}#html-body [data-pb-style=SUI5PR5]{justify-content:center;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;text-align:right;border-style:none;width:50%;align-self:stretch}#html-body [data-pb-style=D82E8NE]{display:inline-block}#html-body [data-pb-style=V2202XW]{text-align:center;border-color:#000}#html-body [data-pb-style=MX02896]{margin-bottom:32px}#html-body [data-pb-style=OV1DUJL]{display:none}#html-body [data-pb-style=N5UBJY5],#html-body [data-pb-style=Q2MPMXX]{background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll}#html-body [data-pb-style=N5UBJY5]{justify-content:flex-start;display:flex;flex-direction:column}#html-body [data-pb-style=Q2MPMXX]{text-align:center;margin-bottom:0;align-self:stretch}#html-body [data-pb-style=UYG15AR]{display:flex;width:100%}#html-body [data-pb-style=S56MDNB]{justify-content:center;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;text-align:left;border-style:none;width:50%;align-self:stretch}#html-body [data-pb-style=PJYBEPJ]{text-align:left}#html-body [data-pb-style=L2WK001]{justify-content:center;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;text-align:right;border-style:none;width:50%;align-self:stretch}#html-body [data-pb-style=K1LENQR]{display:inline-block}#html-body [data-pb-style=ADVQ8QL]{text-align:center;border-color:#000}#html-body [data-pb-style=QFLN0WR]{margin-bottom:32px}#html-body [data-pb-style=QU7D31F]{display:none}#html-body [data-pb-style=CWD8JIO],#html-body [data-pb-style=VE3X899]{background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll}#html-body [data-pb-style=VE3X899]{justify-content:flex-start;display:flex;flex-direction:column;margin-bottom:64px}#html-body [data-pb-style=CWD8JIO]{text-align:center;margin-bottom:0;align-self:stretch}#html-body [data-pb-style=C78T6VA]{display:flex;width:100%}#html-body [data-pb-style=SQARGK0]{justify-content:center;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;text-align:left;border-style:none;width:50%;align-self:stretch}#html-body [data-pb-style=R4YDO2I]{text-align:left}#html-body [data-pb-style=BPT37UA]{justify-content:center;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;text-align:right;border-style:none;width:50%;align-self:stretch}#html-body [data-pb-style=M2VI4TC]{display:inline-block}#html-body [data-pb-style=JH33Y2Y]{text-align:center;border-color:#000}#html-body [data-pb-style=WY4P3A0]{margin-bottom:64px}@media only screen and (max-width: 768px) { #html-body [data-pb-style=FWL2QVF],#html-body [data-pb-style=J980QG5],#html-body [data-pb-style=L2WK001],#html-body [data-pb-style=S56MDNB],#html-body [data-pb-style=SUI5PR5]{justify-content:flex-start;display:flex;flex-direction:column;align-self:stretch}#html-body [data-pb-style=VE3X899]{display:flex;flex-direction:column;margin-bottom:32px}#html-body [data-pb-style=BPT37UA],#html-body [data-pb-style=SQARGK0]{justify-content:flex-start;display:flex;flex-direction:column;align-self:stretch} }</style><div data-content-type="row" data-appearance="contained" data-element="main"><div data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-background-lazy-load="false" data-element="inner" data-pb-style="VCJN9TG"><div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true">    <script>
        'use strict';

        function initSliderManagerComponent () {
            return {
                activeSlide: 0, /** Check current banner */
                itemCount: 0, /** Number of banners */
                mouseDownPosition: 0,
                setIntervalScroll: null,
                active: false,

                /**
                 * Return parent element of module slider
                 *
                 * @returns {Element}
                 */
                getSlider () {
                    return this.$refs.slider;
                },

                /**
                 * Function for automatic next scroll
                 */
                automaticScroll () {
                    this.setIntervalScroll = setInterval(this.scrollNext.bind(this), 10000);
                },

                /**
                 * Restart time of automaticScroll
                 */
                clearAutomaticScroll () {
                    clearInterval(this.setIntervalScroll);
                },

                /**
                 * Set itemCount with the number of banners
                 */
                calcPageSize () {
                    this.itemCount = this.getSlider()?.childElementCount ?? 0;
                },

                /**
                 * Function for move between banners
                 *
                 * @param {int} idx
                 */
                scrollTo (idx) {
                    this.active = true;
                    this.activeSlide = idx;
                },

                /**
                 * Scroll to previous banner
                 */
                scrollPrevious () {
                    if (this.activeSlide !== 0) {
                        this.scrollTo(this.activeSlide - 1);
                    } else {
                        this.scrollTo(this.itemCount - 1);
                    }
                },

                /**
                 * Scroll to next banner
                 */
                scrollNext () {
                    if (this.activeSlide < (this.itemCount - 1)) {
                        this.scrollTo(this.activeSlide + 1);
                    } else {
                        this.scrollTo(0);
                    }
                },

                /**
                 * Check the mouse position when at click
                 */
                mouseScrollDown (e) {
                    this.mouseDownPosition = this.getPageX(e);
                },

                /**
                 * Get Page x
                 *
                 * @param e
                 * @returns {*}
                 */
                getPageX (e) {
                    return e.pageX || e.touches[0]?.pageX || e.changedTouches[0]?.pageX;
                },

                /**
                 * Check the mouse after click for scroll next/previous
                 */
                mouseScrollUp (e) {
                    if (this.mouseDownPosition < this.getPageX(e)) this.scrollPrevious();
                    if (this.mouseDownPosition > this.getPageX(e)) this.scrollNext();
                    this.mouseDownPosition = 0;
                },

                /**
                 * Initial function for start component
                 */
                callInitFunctions () {
                    this.calcPageSize();
                    hyva.lazyLoadScript(() => this.automaticScroll());
                }
            }
        }
    </script>
<section class="slider-manager group relative overflow-hidden w-full" x-data="initSliderManagerComponent()" x-init="callInitFunctions()">
    <div x-ref="slider" class="snap relative flex flex-nowrap w-full overflow-auto transition-all" @mousedown="mouseScrollDown($event)" @mouseup="mouseScrollUp($event)" @mouseover="clearAutomaticScroll()" @mouseout="automaticScroll()" @touchstart.passive="mouseScrollDown($event); clearAutomaticScroll()" @touchend="mouseScrollUp($event); automaticScroll()">
                                        <div class="slider-manager__item overflow-hidden w-full                right-0 transition-opacity duration-500 item--1                relative left-0 opacity-100" :class="{                    'relative opacity-100 left-0': activeSlide === 0,                    'absolute opacity-0 left-[-10000px]': activeSlide !== 0                }">
            
    <i class="inset-0 absolute pointer-events-none" data-ga4-promo="{&quot;promotion_id&quot;:&quot;79&quot;,&quot;promotion_name&quot;:&quot;Calendrier de l&#039;avent&quot;,&quot;creative_name&quot;:&quot;calendrier_de_lavent&quot;,&quot;creative_slot&quot;:&quot;homepage_slider_-1&quot;}" data-ga4-wrap=".item--1"></i>
            <picture>
                                    <source srcset="https://www.espaceplaisir.fr/media/interactiv4/slidermanager/banner/resp_home_slider_720x1000_wmz_general.jpg" media="(max-width: 1023px)">
                                                    <source srcset="https://www.espaceplaisir.fr/media/interactiv4/slidermanager/banner/home_slider_1920x600_wmz_general.jpg">
                    <img width="1920" height="550" class="w-full max-h-[550px] min-h-[320px] object-cover" src="https://www.espaceplaisir.fr/media/interactiv4/slidermanager/banner/home_slider_1920x600_wmz_general.jpg" alt="" loading="lazy">
                            </source></source></picture>
                            <a href="https://www.espaceplaisir.fr/marques/womanizer" class="absolute z-30 inset-0"></a>
                                </div>
                                        <div class="slider-manager__item overflow-hidden w-full                right-0 transition-opacity duration-500 item--1                absolute opacity-0 left-[-10000px]" :class="{                    'relative opacity-100 left-0': activeSlide === 1,                    'absolute opacity-0 left-[-10000px]': activeSlide !== 1                }">
            
    <i class="inset-0 absolute pointer-events-none" data-ga4-promo="{&quot;promotion_id&quot;:&quot;79&quot;,&quot;promotion_name&quot;:&quot;Calendrier de l&#039;avent&quot;,&quot;creative_name&quot;:&quot;calendrier_de_lavent&quot;,&quot;creative_slot&quot;:&quot;homepage_slider_-1&quot;}" data-ga4-wrap=".item--1"></i>
            <picture>
                                    <source srcset="https://www.espaceplaisir.fr/media/interactiv4/slidermanager/banner/0526_PACK-PLP_V3_resp_home_slider_720x1000.jpg" media="(max-width: 1023px)">
                                                    <source srcset="https://www.espaceplaisir.fr/media/interactiv4/slidermanager/banner/0526_PACK-PLP_V3_home_slider_1920x600.jpg">
                    <img width="1920" height="550" class="w-full max-h-[550px] min-h-[320px] object-cover" src="https://www.espaceplaisir.fr/media/interactiv4/slidermanager/banner/0526_PACK-PLP_V3_home_slider_1920x600.jpg" alt="" loading="lazy">
                            </source></source></picture>
                            <a href="https://www.espaceplaisir.fr/marques/womanizer" class="absolute z-30 inset-0"></a>
                                </div>
            </div>
    <template x-if="itemCount > 1">
        <div class="slider-manager__nav">
            <div class="slider-manager__arrow hidden lg:block absolute top-2/4 opacity-0 transition-all z-30 left-0 group-hover:left-8 group-hover:opacity-100">
                <button aria-label="Précédent" tabindex="-1" class="flex items-center justify-center bg-white text-grey w-8 h-8 outline-none focus:outline-none                 flex-none rounded-lg hover:bg-optimo hover:text-white transition-all" @click="scrollPrevious">
                    <svg class="w-2.5 h-4 slider-nav" aria-hidden="true">
                        <use href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/i4-sprite.svg#ico-left"></use>
                    </svg>
                </button>
            </div>
            <div class="slider-manager__arrow hidden lg:block absolute top-2/4 opacity-0 transition-all z-30 right-0 group-hover:right-8 group-hover:opacity-100">
                <button aria-label="Suivant" tabindex="-1" class="flex items-center justify-center bg-white text-grey w-8 h-8 outline-none focus:outline-none                 flex-none rounded-lg hover:bg-optimo hover:text-white transition-all" @click="scrollNext">
                    <svg class="w-2.5 h-4 slider-nav" aria-hidden="true">
                        <use href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/i4-sprite.svg#ico-right"></use>
                    </svg>
                </button>
            </div>
            <nav class="absolute bottom-3 z-30 text-center flex flex-wrap w-full justify-center">
                                    <span class="slider-manager__step size-2 m-1 border border-black rounded-full cursor-pointer hover:bg-optimo" :class="{                        'active bg-white pointer-events-none': activeSlide === 0,                        'bg-black slider-dots': activeSlide !== 0                    }" @click="scrollTo(0)">
                </span>
                                    <span class="slider-manager__step size-2 m-1 border border-black rounded-full cursor-pointer hover:bg-optimo" :class="{                        'active bg-white pointer-events-none': activeSlide === 1,                        'bg-black slider-dots': activeSlide !== 1                    }" @click="scrollTo(1)">
                </span>
                            </nav>
        </div>
    </template>
</section>
</div></div></div><div data-content-type="row" data-appearance="contained" data-element="main"><div data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-background-lazy-load="false" data-element="inner" data-pb-style="PEM03DN"><div class="pagebuilder-column-group" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="12" data-background-lazy-load="" data-element="main" data-pb-style="HD6PP3V"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="KTF0SFG"><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-background-lazy-load="" data-element="main" data-pb-style="MTRSF6W"><div data-content-type="text" data-appearance="default" data-element="main"><h2><span class="TextRun SCXP253071498 BCX0" lang="FR-FR" xml:lang="FR-FR" data-usefontface="false" data-contrast="none"><span class="NormalTextRun SCXP253071498 BCX0"><span data-teams="true">Nos cat&eacute;gories les plus pl&eacute;biscit&eacute;es</span></span></span></h2></div></div><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-background-lazy-load="" data-element="main" data-pb-style="XEPJWLN"></div></div></div></div></div><div data-content-type="block" data-appearance="default" data-element="main" data-pb-style="TV96GHT"><div class="widget block block-static-block">
    <style>.cmsb370-absolute {
position: absolute
}
.cmsb370-relative {
position: relative
}
.cmsb370-transform {
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))
}</style>
<style>#html-body [data-pb-style=BVWLWFY],#html-body [data-pb-style=D5VX16L]{background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll}#html-body [data-pb-style=D5VX16L]{justify-content:flex-start;display:flex;flex-direction:column}#html-body [data-pb-style=BVWLWFY]{align-self:stretch}#html-body [data-pb-style=MOP392Q]{display:flex;width:100%}#html-body [data-pb-style=BP7BXWA]{justify-content:center;display:flex;flex-direction:column;background-color:#fff5ef;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;border-radius:4px;min-height:65px;width:calc(16.6667% - 2px);margin-top:2px;margin-right:2px;margin-bottom:2px;padding-left:8px;align-self:stretch}#html-body [data-pb-style=XQQBN98]{padding-left:8px}#html-body [data-pb-style=FPQILWO],#html-body [data-pb-style=KUKUX39],#html-body [data-pb-style=P7RGE35],#html-body [data-pb-style=T762OST],#html-body [data-pb-style=XQQBN98]{justify-content:center;display:flex;flex-direction:column;background-color:#fff5ef;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;border-radius:4px;min-height:65px;width:calc(16.6667% - 4px);margin:2px;align-self:stretch}#html-body [data-pb-style=FPQILWO],#html-body [data-pb-style=KUKUX39],#html-body [data-pb-style=T762OST]{padding:0 0 0 8px}#html-body [data-pb-style=P7RGE35]{padding-left:8px}#html-body [data-pb-style=G958PCQ]{border-style:none}#html-body [data-pb-style=EBSXBA3]{max-width:100%;height:auto}#html-body [data-pb-style=H4NPWO5]{border-style:none}#html-body [data-pb-style=JEA9EO1]{max-width:100%;height:auto}#html-body [data-pb-style=MMAKKCD]{border-style:none}#html-body [data-pb-style=YKXMCFE]{max-width:100%;height:auto}#html-body [data-pb-style=WDEV34D]{border-style:none}#html-body [data-pb-style=WVM0AHU]{max-width:100%;height:auto}#html-body [data-pb-style=RCQ3JM3]{border-style:none}#html-body [data-pb-style=LYYWNRW]{max-width:100%;height:auto}#html-body [data-pb-style=MOLIS9E]{border-style:none}#html-body [data-pb-style=E0DGU2S]{max-width:100%;height:auto}@media only screen and (max-width: 768px) { #html-body [data-pb-style=FPQILWO],#html-body [data-pb-style=KUKUX39],#html-body [data-pb-style=P7RGE35],#html-body [data-pb-style=T762OST],#html-body [data-pb-style=XQQBN98]{justify-content:flex-start;display:flex;flex-direction:column;align-self:stretch}#html-body [data-pb-style=G958PCQ],#html-body [data-pb-style=H4NPWO5],#html-body [data-pb-style=MMAKKCD],#html-body [data-pb-style=MOLIS9E],#html-body [data-pb-style=RCQ3JM3],#html-body [data-pb-style=WDEV34D]{border-style:none} }</style><div data-content-type="row" data-appearance="contained" data-element="main"><div data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-background-lazy-load="" data-element="inner" data-pb-style="D5VX16L"><div class="pagebuilder-column-group grid-cat-universe categories-grid-block-tpl" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="12" data-background-lazy-load="true" data-element="main" data-pb-style="BVWLWFY"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="MOP392Q"><div class="pagebuilder-column grid-cat-universe-card cat-1" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-background-lazy-load="true" data-element="main" data-pb-style="BP7BXWA"><figure data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="G958PCQ"><a href="https://www.espaceplaisir.fr/989-stimulateur-clitoridien" target="" data-link-type="category" title="" data-element="link"><picture><source media="(min-width: 768px)" srcset="https://www.espaceplaisir.fr/media/wysiwyg/cat_sextoys_1.png"><source src="https://www.espaceplaisir.fr/media/wysiwyg/cat_sextoys_1.png" alt="" title="" loading="lazy" data-use-native-image-dimensions="true" width="" height="" data-element="mobile_image" srcset="https://www.espaceplaisir.fr/media/wysiwyg/cat_sextoys_1.png" media="(max-width: 767px)"><img width="420" height="172" src="https://www.espaceplaisir.fr/media/wysiwyg/cat_sextoys_1.png" alt="" title="" loading="lazy" data-element="desktop_image" data-pb-style="EBSXBA3"></source></source></picture></a></figure><div class="txt-cat-universe" data-content-type="text" data-appearance="default" data-element="main"><p style="position: absolute; margin-bottom: 0;"><strong><span style="font-size: 16px;">Sextoys</span></strong></p></div><div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true"><a href="https://www.espaceplaisir.fr/939-sextoys" style="position:absolute;width:100%;height:100%;bottom:0;left:0"></a></div></div><div class="pagebuilder-column grid-cat-universe-card cat-2" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-background-lazy-load="true" data-element="main" data-pb-style="XQQBN98"><figure data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="H4NPWO5"><picture><source media="(min-width: 768px)" srcset="https://www.espaceplaisir.fr/media/wysiwyg/cat_godes.png"><source src="https://www.espaceplaisir.fr/media/wysiwyg/cat_godes.png" alt="" title="" loading="lazy" data-use-native-image-dimensions="true" width="" height="" data-element="mobile_image" srcset="https://www.espaceplaisir.fr/media/wysiwyg/cat_godes.png" media="(max-width: 767px)"><img width="420" height="172" src="https://www.espaceplaisir.fr/media/wysiwyg/cat_godes.png" alt="" title="" loading="lazy" data-element="desktop_image" data-pb-style="JEA9EO1"></source></source></picture></figure><div class="txt-cat-universe" data-content-type="text" data-appearance="default" data-element="main"><p style="position: absolute; margin-bottom: 0;"><strong><span style="font-size: 16px;">Godes</span></strong></p></div><div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true"><a href="https://www.espaceplaisir.fr/941-gode-et-godemichet" style="position:absolute;width:100%;height:100%;bottom:0;left:0"></a></div></div><div class="pagebuilder-column grid-cat-universe-card cat-1" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-background-lazy-load="true" data-element="main" data-pb-style="KUKUX39"><figure data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="MMAKKCD"><picture><source media="(min-width: 768px)" srcset="https://www.espaceplaisir.fr/media/wysiwyg/cat_masturbateurs_1_.png"><source src="https://www.espaceplaisir.fr/media/wysiwyg/cat_masturbateurs_1_.png" alt="" title="" loading="lazy" data-use-native-image-dimensions="true" width="" height="" data-element="mobile_image" srcset="https://www.espaceplaisir.fr/media/wysiwyg/cat_masturbateurs_1_.png" media="(max-width: 767px)"><img width="420" height="172" src="https://www.espaceplaisir.fr/media/wysiwyg/cat_masturbateurs_1_.png" alt="" title="" loading="lazy" data-element="desktop_image" data-pb-style="YKXMCFE"></source></source></picture></figure><div class="txt-cat-universe" data-content-type="text" data-appearance="default" data-element="main"><p style="position: absolute; margin-bottom: 0;"><strong><span style="font-size: 16px;">Masturbateurs</span></strong></p></div><div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true"><a href="https://www.espaceplaisir.fr/1192-masturbateur" style="position:absolute;width:100%;height:100%;bottom:0;left:0"></a></div></div><div class="pagebuilder-column grid-cat-universe-card cat-2" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-background-lazy-load="true" data-element="main" data-pb-style="T762OST"><figure data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="WDEV34D"><picture><source media="(min-width: 768px)" srcset="https://www.espaceplaisir.fr/media/wysiwyg/cat_lingerie.png"><source src="https://www.espaceplaisir.fr/media/wysiwyg/cat_lingerie.png" alt="" title="" loading="lazy" data-use-native-image-dimensions="true" width="" height="" data-element="mobile_image" srcset="https://www.espaceplaisir.fr/media/wysiwyg/cat_lingerie.png" media="(max-width: 767px)"><img width="420" height="172" src="https://www.espaceplaisir.fr/media/wysiwyg/cat_lingerie.png" alt="" title="" loading="lazy" data-element="desktop_image" data-pb-style="WVM0AHU"></source></source></picture></figure><div class="txt-cat-universe" data-content-type="text" data-appearance="default" data-element="main"><p style="position: absolute; margin-bottom: 0;"><strong><span style="font-size: 16px;">Lingerie</span></strong></p></div><div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true"><a href="https://www.espaceplaisir.fr/1056-lingerie-sexy-femme" style="position:absolute;width:100%;height:100%;bottom:0;left:0"></a></div></div><div class="pagebuilder-column grid-cat-universe-card cat-1" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-background-lazy-load="true" data-element="main" data-pb-style="FPQILWO"><figure data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="RCQ3JM3"><picture><source media="(min-width: 768px)" srcset="https://www.espaceplaisir.fr/media/wysiwyg/cat_vibromasseurs_1_.png"><source src="https://www.espaceplaisir.fr/media/wysiwyg/cat_vibromasseurs_1_.png" alt="" title="" loading="lazy" data-use-native-image-dimensions="true" width="" height="" data-element="mobile_image" srcset="https://www.espaceplaisir.fr/media/wysiwyg/cat_vibromasseurs_1_.png" media="(max-width: 767px)"><img width="420" height="172" src="https://www.espaceplaisir.fr/media/wysiwyg/cat_vibromasseurs_1_.png" alt="" title="" loading="lazy" data-element="desktop_image" data-pb-style="LYYWNRW"></source></source></picture></figure><div class="txt-cat-universe" data-content-type="text" data-appearance="default" data-element="main"><p style="position: absolute; margin-bottom: 0;"><strong><span style="font-size: 16px;">Vibromasseurs</span></strong></p></div><div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true"><a href="https://www.espaceplaisir.fr/972-vibromasseur" style="position:absolute;width:100%;height:100%;bottom:0;left:0"></a></div></div><div class="pagebuilder-column grid-cat-universe-card cat-2" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-background-lazy-load="true" data-element="main" data-pb-style="P7RGE35"><figure data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="MOLIS9E"><picture><source media="(min-width: 768px)" srcset="https://www.espaceplaisir.fr/media/wysiwyg/cat_promo.png"><source src="https://www.espaceplaisir.fr/media/wysiwyg/cat_promo.png" alt="" title="" loading="lazy" data-use-native-image-dimensions="true" width="" height="" data-element="mobile_image" srcset="https://www.espaceplaisir.fr/media/wysiwyg/cat_promo.png" media="(max-width: 767px)"><img width="420" height="172" src="https://www.espaceplaisir.fr/media/wysiwyg/cat_promo.png" alt="" title="" loading="lazy" data-element="desktop_image" data-pb-style="E0DGU2S"></source></source></picture></figure><div class="txt-cat-universe" data-content-type="text" data-appearance="default" data-element="main"><p style="position: absolute; margin-bottom: 0;"><strong><span style="font-size: 16px;">Promotions</span></strong></p></div><div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true"><a href="https://www.espaceplaisir.fr/1103-promotions" style="position:absolute;width:100%;height:100%;bottom:0;left:0"></a></div></div></div></div></div></div><div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true"><style>
#html-body .categories-grid-block-tpl .txt-cat-universe {
 position : absolute;
 height: 100%;
 width: calc(70%);
}
#html-body .categories-grid-block-tpl .txt-cat-universe p {
 position:absolute;
 transform: translateY(-50%);
 top : 50%;
}
#html-body .categories-grid-block-tpl .grid-cat-universe-card {
 position: relative;
}

@media only screen and (max-width: 1024px) {
 #html-body .categories-grid-block-tpl .pagebuilder-column-line{
 display:grid;
 grid-template-columns: 1fr 1fr;
}
 #html-body .categories-grid-block-tpl .grid-cat-universe-card{
 width:calc(100% - 4px);
 }
 #html-body .categories-grid-block-tpl .cat-1 {
 grid-column: 1 / 2;
 }
 #html-body .categories-grid-block-tpl .cat-2 {
 grid-column: 2 / 2;
 }
}
</style></div></div>
</div><div data-content-type="block" data-appearance="default" data-element="main" data-pb-style="EJWSEFC"><div class="widget block block-static-block">
    <style>.cmsb217-absolute {
position: absolute
}
.cmsb217-relative {
position: relative
}
.cmsb217-bottom-\[10px\] {
bottom: 10px
}
.cmsb217-bottom-\[60px\] {
bottom: 60px
}
.cmsb217-left-0 {
left: 0px
}
.cmsb217-right-0 {
right: 0px
}
.cmsb217-\!m-0 {
margin: 0px !important
}
.cmsb217-m-auto {
margin: auto
}
.cmsb217-inline {
display: inline
}
.cmsb217-break-words {
overflow-wrap: break-word
}
.cmsb217-border {
border-width: 1px
}
.cmsb217-text-\[14px\] {
font-size: 14px
}
.cmsb217-text-\[\#ffffff\] {
color: #ffffff
}
@media (min-width: 1024px) {
.cmsb217-lg\:text-\[24px\] {
font-size: 24px
}
}</style>
<style>#html-body [data-pb-style=EOJVPFH],#html-body [data-pb-style=I48SMRC]{background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll}#html-body [data-pb-style=I48SMRC]{justify-content:flex-start;display:flex;flex-direction:column;padding-left:0;padding-right:0}#html-body [data-pb-style=EOJVPFH]{margin-top:2px;align-self:stretch}#html-body [data-pb-style=JBOOK7G]{display:flex;width:100%}#html-body [data-pb-style=GK7TDJ7]{justify-content:center;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;text-align:center;border-style:none;width:calc(25% - 4px);margin:2px;align-self:stretch}#html-body [data-pb-style=QMVLV5L]{border-style:none}#html-body [data-pb-style=NQGFMDY]{max-width:100%;height:auto}#html-body [data-pb-style=VY357MV]{display:none;padding-left:8px;padding-right:8px}#html-body [data-pb-style=O4M2XOI]{padding:0}#html-body [data-pb-style=NYRDXK6]{display:inline-block}#html-body [data-pb-style=ETJDK1R]{text-align:center;border-color:#fff;border-width:1px}#html-body [data-pb-style=O40OXES]{justify-content:center;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;text-align:center;border-style:none;width:calc(25% - 4px);margin:2px;align-self:stretch}#html-body [data-pb-style=NC1J8SW]{border-style:none}#html-body [data-pb-style=B6M9TRW]{max-width:100%;height:auto}#html-body [data-pb-style=HEL9KWK]{display:none;padding-left:8px;padding-right:8px}#html-body [data-pb-style=R2A4RRE]{padding:0}#html-body [data-pb-style=LFSR50R]{display:inline-block}#html-body [data-pb-style=X742TP1]{text-align:center;border-color:#fff;border-width:1px}#html-body [data-pb-style=QU7FESB]{justify-content:center;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;text-align:center;border-style:none;width:calc(25% - 4px);margin:2px;align-self:stretch}#html-body [data-pb-style=E78RJ3Q]{border-style:none}#html-body [data-pb-style=GE4JWQT]{max-width:100%;height:auto}#html-body [data-pb-style=Q28E4P6]{display:none;padding-left:8px;padding-right:8px}#html-body [data-pb-style=TAGI5UV]{padding:0}#html-body [data-pb-style=NTCT1M7]{display:inline-block}#html-body [data-pb-style=LA8E219]{text-align:center;border-color:#fff;border-width:1px}#html-body [data-pb-style=K34E7DJ]{justify-content:center;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;text-align:center;border-style:none;width:calc(25% - 4px);margin:2px;align-self:stretch}#html-body [data-pb-style=JHOSM8L]{border-style:none}#html-body [data-pb-style=PNS36YM]{max-width:100%;height:auto}#html-body [data-pb-style=XY6AJE2]{display:none;padding-left:8px;padding-right:8px}#html-body [data-pb-style=C2FNV84]{padding:0}#html-body [data-pb-style=QHMPJRF]{display:inline-block}#html-body [data-pb-style=P7JIA36]{text-align:center;border-color:#fff;border-width:1px}@media only screen and (max-width: 768px) { #html-body [data-pb-style=GK7TDJ7]{justify-content:flex-start;display:flex;flex-direction:column;align-self:stretch}#html-body [data-pb-style=QMVLV5L]{border-style:none}#html-body [data-pb-style=O40OXES]{justify-content:flex-start;display:flex;flex-direction:column;align-self:stretch}#html-body [data-pb-style=NC1J8SW]{border-style:none}#html-body [data-pb-style=QU7FESB]{justify-content:flex-start;display:flex;flex-direction:column;align-self:stretch}#html-body [data-pb-style=E78RJ3Q]{border-style:none}#html-body [data-pb-style=K34E7DJ]{justify-content:flex-start;display:flex;flex-direction:column;align-self:stretch}#html-body [data-pb-style=JHOSM8L]{border-style:none} }</style><div data-content-type="row" data-appearance="contained" data-element="main"><div data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-background-lazy-load="false" data-element="inner" data-pb-style="I48SMRC"><div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true"><style>
.block-universe-4-cards [data-content-type="row"]{
padding:0;
}
.universe-module-4 .pagebuilder-column-line {
gap:0;
}
.ghost-reverse-1 .btn-secondary {
background: transparent;
}
.ghost-reverse-1 .btn-secondary:hover {
background: rgba(0, 0, 0, 0.2);
border: 1px solid #000000;
opacity: 1;
}
.ghost-reverse-1 .btn-secondary:hover span {
opacity:1;
color:#ffffff;
}
.ghost-reverse-1 .btn-secondary span {
color:#ffffff;
}
</style></div><div class="pagebuilder-column-group c-landing__promo-block universe-module-4" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="12" data-background-lazy-load="false" data-element="main" data-pb-style="EOJVPFH"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="JBOOK7G"><div class="pagebuilder-column cmsb217-relative" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-background-lazy-load="false" data-element="main" data-pb-style="GK7TDJ7"><figure data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="QMVLV5L"><a href="https://www.espaceplaisir.fr/womanizer-premium-2.html" target="" data-link-type="default" title="" data-element="link"><picture><source media="(min-width: 768px)" srcset="https://www.espaceplaisir.fr/media/wysiwyg/ban_quart_home_wmz_premium2_V4.jpg"><source src="https://www.espaceplaisir.fr/media/wysiwyg/ban_quart_home_wmz_premium2_V4.jpg" alt="" title="" loading="lazy" data-use-native-image-dimensions="false" width="182" height="369" fetchpriority="auto" data-element="mobile_image" srcset="https://www.espaceplaisir.fr/media/wysiwyg/ban_quart_home_wmz_premium2_V4.jpg" media="(max-width: 767px)"><img src="https://www.espaceplaisir.fr/media/wysiwyg/ban_quart_home_wmz_premium2_V4.jpg" alt="" title="" loading="lazy" data-use-native-image-dimensions="false" width="182" height="369" fetchpriority="auto" data-element="desktop_image" data-pb-style="NQGFMDY"></source></source></picture></a></figure><div class="cmsb217-absolute cmsb217-m-auto cmsb217-left-0 cmsb217-right-0 text-blacktext-[14px] cmsb217-lg:text-[24px] cmsb217-bottom-[60px]" data-content-type="text" data-appearance="default" data-element="main" data-pb-style="VY357MV"><p><span style="color: rgb(255, 255, 255);"><strong>Nos top sextoys en promotion ! </strong></span></p></div><div data-content-type="buttons" data-appearance="inline" data-same-width="false" data-element="main" data-pb-style="O4M2XOI" class="cmsb217-absolute cmsb217-bottom-[10px] cmsb217-m-auto cmsb217-left-0 cmsb217-right-0"><div class="cmsb217-!m-0 ghost-reverse-1 cmsb217-text-[#ffffff]" data-content-type="button-item" data-appearance="default" data-element="main" data-pb-style="NYRDXK6"><a class="pagebuilder-button-secondary btn btn-secondary" href="https://www.espaceplaisir.fr/womanizer-premium-2.html" target="" data-link-type="default" data-element="link" data-pb-style="ETJDK1R"><span data-element="link_text">Je fonce</span></a></div></div></div><div class="pagebuilder-column cmsb217-relative" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-background-lazy-load="false" data-element="main" data-pb-style="O40OXES"><figure data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="NC1J8SW"><a href="https://www.espaceplaisir.fr/toy-finder-womanizer" target="" data-link-type="default" title="" data-element="link"><picture><source media="(min-width: 768px)" srcset="https://www.espaceplaisir.fr/media/wysiwyg/0426_TOYFINDER-BANQUART.jpg"><source src="https://www.espaceplaisir.fr/media/wysiwyg/0426_TOYFINDER-BANQUART.jpg" alt="" title="" loading="lazy" data-use-native-image-dimensions="" width="182" height="369" fetchpriority="auto" data-element="mobile_image" srcset="https://www.espaceplaisir.fr/media/wysiwyg/0426_TOYFINDER-BANQUART.jpg" media="(max-width: 767px)"><img src="https://www.espaceplaisir.fr/media/wysiwyg/0426_TOYFINDER-BANQUART.jpg" alt="" title="" loading="lazy" data-use-native-image-dimensions="" width="182" height="369" fetchpriority="auto" data-element="desktop_image" data-pb-style="B6M9TRW"></source></source></picture></a></figure><div class="cmsb217-absolute cmsb217-break-words cmsb217-m-auto cmsb217-left-0 cmsb217-right-0 text-black cmsb217-text-[14px] cmsb217-lg:text-[24px] cmsb217-bottom-[60px]" data-content-type="text" data-appearance="default" data-element="main" data-pb-style="HEL9KWK"><p style="text-align: center;"><span style="color: rgb(255, 255, 255);"><strong id="UP12WG4"><strong>Nos r&eacute;ductions inoubliables !</strong></strong></span></p></div><div data-content-type="buttons" data-appearance="inline" data-same-width="false" data-element="main" data-pb-style="R2A4RRE" class="cmsb217-absolute cmsb217-bottom-[10px] cmsb217-m-auto cmsb217-left-0 cmsb217-right-0"><div class="cmsb217-!m-0 ghost-reverse-1 cmsb217-text-[#ffffff]" data-content-type="button-item" data-appearance="default" data-element="main" data-pb-style="LFSR50R"><a class="pagebuilder-button-secondary btn btn-secondary" href="https://www.espaceplaisir.fr/toy-finder-womanizer" target="" data-link-type="default" data-element="link" data-pb-style="X742TP1"><span data-element="link_text">Je fonce</span></a></div></div></div><div class="pagebuilder-column cmsb217-relative" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-background-lazy-load="false" data-element="main" data-pb-style="QU7FESB"><figure data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="E78RJ3Q"><a href="https://www.espaceplaisir.fr/womanizer-starlet-3.html" target="" data-link-type="default" title="" data-element="link"><picture><source media="(min-width: 768px)" srcset="https://www.espaceplaisir.fr/media/wysiwyg/0526_banQuart_STARLET3_2_.jpg"><source src="https://www.espaceplaisir.fr/media/wysiwyg/0526_banQuart_STARLET3_2_.jpg" alt="" title="" loading="lazy" data-use-native-image-dimensions="" width="182" height="369" fetchpriority="auto" data-element="mobile_image" srcset="https://www.espaceplaisir.fr/media/wysiwyg/0526_banQuart_STARLET3_2_.jpg" media="(max-width: 767px)"><img src="https://www.espaceplaisir.fr/media/wysiwyg/0526_banQuart_STARLET3_2_.jpg" alt="" title="" loading="lazy" data-use-native-image-dimensions="" width="182" height="369" fetchpriority="auto" data-element="desktop_image" data-pb-style="GE4JWQT"></source></source></picture></a></figure><div class="cmsb217-absolute cmsb217-m-auto cmsb217-left-0 cmsb217-right-0 text-blakc cmsb217-text-[14px] cmsb217-lg:text-[24px] cmsb217-bottom-[60px]" data-content-type="text" data-appearance="default" data-element="main" data-pb-style="Q28E4P6"><p id="ENO3MHD" style="text-align: center;"><span style="color: rgb(255, 255, 255);"><strong>Nos articles BDSM en remise !</strong></span></p></div><div data-content-type="buttons" data-appearance="inline" data-same-width="false" data-element="main" data-pb-style="TAGI5UV" class="cmsb217-absolute cmsb217-bottom-[10px] cmsb217-m-auto cmsb217-left-0 cmsb217-right-0"><div class="cmsb217-!m-0 ghost-reverse-1 cmsb217-text-[#ffffff]" data-content-type="button-item" data-appearance="default" data-element="main" data-pb-style="NTCT1M7"><a class="pagebuilder-button-secondary btn btn-secondary" href="https://www.espaceplaisir.fr/womanizer-starlet-3.html" target="" data-link-type="default" data-element="link" data-pb-style="LA8E219"><span data-element="link_text">Je profite</span></a></div></div></div><div class="pagebuilder-column cmsb217-relative" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-background-lazy-load="false" data-element="main" data-pb-style="K34E7DJ"><figure data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="JHOSM8L"><a href="https://www.espaceplaisir.fr/womanizer-next-duo.html" target="" data-link-type="default" title="" data-element="link"><picture><source media="(min-width: 768px)" srcset="https://www.espaceplaisir.fr/media/wysiwyg/ban_quart_home_wmz_part1_V3.jpg"><source src="https://www.espaceplaisir.fr/media/wysiwyg/ban_quart_home_wmz_part1_V3.jpg" alt="" title="" loading="lazy" data-use-native-image-dimensions="" width="182" height="369" fetchpriority="auto" data-element="mobile_image" srcset="https://www.espaceplaisir.fr/media/wysiwyg/ban_quart_home_wmz_part1_V3.jpg" media="(max-width: 767px)"><img src="https://www.espaceplaisir.fr/media/wysiwyg/ban_quart_home_wmz_part1_V3.jpg" alt="" title="" loading="lazy" data-use-native-image-dimensions="" width="182" height="369" fetchpriority="auto" data-element="desktop_image" data-pb-style="PNS36YM"></source></source></picture></a></figure><div class="cmsb217-absolute cmsb217-m-auto cmsb217-left-0 cmsb217-right-0 text-black cmsb217-text-[14px] cmsb217-lg:text-[24px] cmsb217-bottom-[60px]" data-content-type="text" data-appearance="default" data-element="main" data-pb-style="XY6AJE2"><p style="text-align: center;"><span style="color: rgb(255, 255, 255);"><strong>Le 7&egrave;me ciel en couple.. avec We-vibe</strong></span></p></div><div data-content-type="buttons" data-appearance="inline" data-same-width="false" data-element="main" data-pb-style="C2FNV84" class="cmsb217-absolute cmsb217-bottom-[10px] cmsb217-m-auto cmsb217-left-0 cmsb217-right-0"><div class="cmsb217-!m-0 ghost-reverse-1 cmsb217-text-[#ffffff]" data-content-type="button-item" data-appearance="default" data-element="main" data-pb-style="QHMPJRF"><a class="pagebuilder-button-secondary btn btn-secondary" href="https://www.espaceplaisir.fr/womanizer-next-duo.html" target="" data-link-type="default" data-element="link" data-pb-style="P7JIA36"><span data-element="link_text">Je d&eacute;couvre</span></a></div></div></div></div></div></div></div></div>
</div><div data-content-type="row" data-appearance="contained" data-element="main"><div data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-background-lazy-load="false" data-element="inner" data-pb-style="QYYX9CV"><div class="pagebuilder-column-group" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="12" data-background-lazy-load="" data-element="main" data-pb-style="JW5HHU7"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="MG2FOUB"><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-background-lazy-load="" data-element="main" data-pb-style="SQSP4I0"><div data-content-type="text" data-appearance="default" data-element="main"><h2><span class="TextRun SCXP253071498 BCX0" lang="FR-FR" xml:lang="FR-FR" data-usefontface="false" data-contrast="none"><span class="NormalTextRun SCXP253071498 BCX0"><span data-teams="true">Les incontournables de Womanizer</span></span></span></h2></div></div><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-background-lazy-load="" data-element="main" data-pb-style="BAN2YY6"></div></div></div></div></div><div data-content-type="block" data-appearance="default" data-element="main" data-pb-style="V1GAXCW"><div class="widget block block-static-block">
    <style>.cmsb387-absolute {
position: absolute
}
.cmsb387-relative {
position: relative
}
.cmsb387-transform {
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))
}</style>
<style>#html-body [data-pb-style=BYBEE3F],#html-body [data-pb-style=MPDQTMB]{background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll}#html-body [data-pb-style=BYBEE3F]{justify-content:flex-start;display:flex;flex-direction:column;margin-bottom:15px}#html-body [data-pb-style=MPDQTMB]{align-self:stretch}#html-body [data-pb-style=MA1VLC3]{display:flex;width:100%}#html-body [data-pb-style=I088R7C]{justify-content:center;display:flex;flex-direction:column;background-color:#c8d9fb;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;border-radius:4px;min-height:65px;width:calc(16.6667% - 4px);margin:2px;padding:0 0 0 8px;align-self:stretch}#html-body [data-pb-style=MGGX10J]{border-style:none}#html-body [data-pb-style=YPGLK48]{max-width:100%;height:auto}#html-body [data-pb-style=MCI5YYC]{justify-content:center;display:flex;flex-direction:column;background-color:#c8d9fb;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;border-radius:4px;min-height:65px;width:calc(16.6667% - 4px);margin:2px;padding:0 0 0 8px;align-self:stretch}#html-body [data-pb-style=DEPWV5X]{border-style:none}#html-body [data-pb-style=M4AJ0DB]{max-width:100%;height:auto}#html-body [data-pb-style=LMMAIWO]{text-align:left}#html-body [data-pb-style=E9TO6K5]{justify-content:center;display:flex;flex-direction:column;background-color:#c8d9fb;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;border-radius:4px;min-height:65px;width:calc(16.6667% - 4px);margin:2px;padding-left:8px;align-self:stretch}#html-body [data-pb-style=DH93TJ7]{border-style:none}#html-body [data-pb-style=UXQODCJ]{max-width:100%;height:auto}#html-body [data-pb-style=PT7BLS9]{text-align:left}#html-body [data-pb-style=NBOG9VX]{justify-content:center;display:flex;flex-direction:column;background-color:#c8d9fb;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;border-radius:4px;min-height:65px;width:calc(16.6667% - 2px);margin-top:2px;margin-right:2px;margin-bottom:2px;padding-left:8px;align-self:stretch}#html-body [data-pb-style=EC6D53G]{border-style:none}#html-body [data-pb-style=VAFS3FC]{max-width:100%;height:auto}#html-body [data-pb-style=PU6B32N]{justify-content:center;display:flex;flex-direction:column;background-color:#c8d9fb;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;border-radius:4px;min-height:65px;width:calc(16.6667% - 4px);margin:2px;padding:0 0 0 8px;align-self:stretch}#html-body [data-pb-style=BLI5BA5]{border-style:none}#html-body [data-pb-style=MI6UJOH]{max-width:100%;height:auto}#html-body [data-pb-style=X56HLG6]{justify-content:center;display:flex;flex-direction:column;background-color:#c8d9fb;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;border-radius:4px;min-height:65px;width:calc(16.6667% - 4px);margin:2px;padding-left:8px;align-self:stretch}#html-body [data-pb-style=UANVYJS]{border-style:none}#html-body [data-pb-style=IOKFPNH]{max-width:100%;height:auto}@media only screen and (max-width: 768px) { #html-body [data-pb-style=I088R7C]{justify-content:flex-start;display:flex;flex-direction:column;align-self:stretch}#html-body [data-pb-style=MGGX10J]{border-style:none}#html-body [data-pb-style=MCI5YYC]{justify-content:flex-start;display:flex;flex-direction:column;align-self:stretch}#html-body [data-pb-style=DEPWV5X]{border-style:none}#html-body [data-pb-style=E9TO6K5]{justify-content:flex-start;display:flex;flex-direction:column;align-self:stretch}#html-body [data-pb-style=DH93TJ7],#html-body [data-pb-style=EC6D53G]{border-style:none}#html-body [data-pb-style=PU6B32N]{justify-content:flex-start;display:flex;flex-direction:column;align-self:stretch}#html-body [data-pb-style=BLI5BA5]{border-style:none}#html-body [data-pb-style=X56HLG6]{justify-content:flex-start;display:flex;flex-direction:column;align-self:stretch}#html-body [data-pb-style=UANVYJS]{border-style:none} }</style><div data-content-type="row" data-appearance="contained" data-element="main"><div data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-background-lazy-load="false" data-element="inner" data-pb-style="BYBEE3F"><div class="pagebuilder-column-group grid-cat-universe categories-grid-block-tpl" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="12" data-background-lazy-load="true" data-element="main" data-pb-style="MPDQTMB"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="MA1VLC3"><div class="pagebuilder-column grid-cat-universe-card cat-1" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-background-lazy-load="true" data-element="main" data-pb-style="I088R7C"><figure data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="MGGX10J"><a href="https://www.espaceplaisir.fr/3831-womanizer-vibromasseur" target="" data-link-type="category" title="" data-element="link"><picture><source media="(min-width: 768px)" srcset="https://www.espaceplaisir.fr/media/wysiwyg/0426_OG_1_.png"><source src="https://www.espaceplaisir.fr/media/wysiwyg/0426_OG_1_.png" alt="" title="" loading="lazy" data-use-native-image-dimensions="true" width="" height="" fetchpriority="auto" data-element="mobile_image" srcset="https://www.espaceplaisir.fr/media/wysiwyg/0426_OG_1_.png" media="(max-width: 767px)"><img width="420" height="172" src="https://www.espaceplaisir.fr/media/wysiwyg/0426_OG_1_.png" alt="" title="" loading="lazy" fetchpriority="auto" data-element="desktop_image" data-pb-style="YPGLK48"></source></source></picture></a></figure><div class="txt-cat-universe" data-content-type="text" data-appearance="default" data-element="main"><p style="position: absolute; margin-bottom: 0;"><strong><span style="font-size: 16px;">Vibromasseurs</span></strong></p></div><div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true"><a href="https://www.espaceplaisir.fr/3831-womanizer-vibromasseur" style="position:absolute;width:100%;height:100%;bottom:0;left:0"></a></div></div><div class="pagebuilder-column grid-cat-universe-card cat-2" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-background-lazy-load="true" data-element="main" data-pb-style="MCI5YYC"><figure data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="DEPWV5X"><a href="https://www.espaceplaisir.fr/3827-womanizer-technologie-pleasure-air" target="" data-link-type="category" title="" data-element="link"><picture><source media="(min-width: 768px)" srcset="https://www.espaceplaisir.fr/media/wysiwyg/0426_ENHANCE_1_.png"><source src="https://www.espaceplaisir.fr/media/wysiwyg/0426_ENHANCE_1_.png" alt="" title="" loading="lazy" data-use-native-image-dimensions="true" width="" height="" fetchpriority="auto" data-element="mobile_image" srcset="https://www.espaceplaisir.fr/media/wysiwyg/0426_ENHANCE_1_.png" media="(max-width: 767px)"><img width="420" height="172" src="https://www.espaceplaisir.fr/media/wysiwyg/0426_ENHANCE_1_.png" alt="" title="" loading="lazy" fetchpriority="auto" data-element="desktop_image" data-pb-style="M4AJ0DB"></source></source></picture></a></figure><div class="txt-cat-universe" data-content-type="text" data-appearance="default" data-element="main" data-pb-style="LMMAIWO"><p style="position: absolute; margin-bottom: 0;"><strong><span style="font-size: 16px;">Aspirateurs clitoridiens</span></strong></p></div><div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true"><a href="https://www.espaceplaisir.fr/3827-womanizer-technologie-pleasure-air" style="position:absolute;width:100%;height:100%;bottom:0;left:0"></a></div></div><div class="pagebuilder-column grid-cat-universe-card cat-1" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-background-lazy-load="true" data-element="main" data-pb-style="E9TO6K5"><figure data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="DH93TJ7"><a href="https://www.espaceplaisir.fr/3828-womanizer-double-stimulation" target="" data-link-type="category" title="" data-element="link"><picture><source media="(min-width: 768px)" srcset="https://www.espaceplaisir.fr/media/wysiwyg/0426_BLEND_1_.png"><source src="https://www.espaceplaisir.fr/media/wysiwyg/0426_BLEND_1_.png" alt="" title="" loading="lazy" data-use-native-image-dimensions="true" width="" height="" fetchpriority="auto" data-element="mobile_image" srcset="https://www.espaceplaisir.fr/media/wysiwyg/0426_BLEND_1_.png" media="(max-width: 767px)"><img width="420" height="172" src="https://www.espaceplaisir.fr/media/wysiwyg/0426_BLEND_1_.png" alt="" title="" loading="lazy" fetchpriority="auto" data-element="desktop_image" data-pb-style="UXQODCJ"></source></source></picture></a></figure><div class="txt-cat-universe" data-content-type="text" data-appearance="default" data-element="main" data-pb-style="PT7BLS9"><p style="position: absolute; margin-bottom: 0;"><strong><span style="font-size: 16px;">Double stimulation</span></strong></p></div><div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true"><a href="https://www.espaceplaisir.fr/3828-womanizer-double-stimulation" style="position:absolute;width:100%;height:100%;bottom:0;left:0"></a></div></div><div class="pagebuilder-column grid-cat-universe-card cat-2" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-background-lazy-load="true" data-element="main" data-pb-style="NBOG9VX"><figure data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="EC6D53G"><a href="https://www.espaceplaisir.fr/3832-womanizer-voyage" target="" data-link-type="category" title="" data-element="link"><picture><source media="(min-width: 768px)" srcset="https://www.espaceplaisir.fr/media/wysiwyg/0426_LIB2_1_.png"><source src="https://www.espaceplaisir.fr/media/wysiwyg/0426_LIB2_1_.png" alt="" title="" loading="lazy" data-use-native-image-dimensions="true" width="" height="" fetchpriority="auto" data-element="mobile_image" srcset="https://www.espaceplaisir.fr/media/wysiwyg/0426_LIB2_1_.png" media="(max-width: 767px)"><img width="420" height="172" src="https://www.espaceplaisir.fr/media/wysiwyg/0426_LIB2_1_.png" alt="" title="" loading="lazy" fetchpriority="auto" data-element="desktop_image" data-pb-style="VAFS3FC"></source></source></picture></a></figure><div class="txt-cat-universe" data-content-type="text" data-appearance="default" data-element="main"><p style="position: absolute; margin-bottom: 0;"><strong><span style="font-size: 16px;">Voyage</span></strong></p></div><div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true"><a href="https://www.espaceplaisir.fr/3832-womanizer-voyage" style="position:absolute;width:100%;height:100%;bottom:0;left:0"></a></div></div><div class="pagebuilder-column grid-cat-universe-card cat-1" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-background-lazy-load="true" data-element="main" data-pb-style="PU6B32N"><figure data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="BLI5BA5"><a href="https://www.espaceplaisir.fr/3829-womanizer-nouveautes" target="" data-link-type="category" title="" data-element="link"><picture><source media="(min-width: 768px)" srcset="https://www.espaceplaisir.fr/media/wysiwyg/0426_PRO_1_.png"><source src="https://www.espaceplaisir.fr/media/wysiwyg/0426_PRO_1_.png" alt="" title="" loading="lazy" data-use-native-image-dimensions="true" width="" height="" fetchpriority="auto" data-element="mobile_image" srcset="https://www.espaceplaisir.fr/media/wysiwyg/0426_PRO_1_.png" media="(max-width: 767px)"><img width="420" height="172" src="https://www.espaceplaisir.fr/media/wysiwyg/0426_PRO_1_.png" alt="" title="" loading="lazy" fetchpriority="auto" data-element="desktop_image" data-pb-style="MI6UJOH"></source></source></picture></a></figure><div class="txt-cat-universe" data-content-type="text" data-appearance="default" data-element="main"><p style="position: absolute; margin-bottom: 0;"><strong><span style="font-size: 16px;">Nouveaut&eacute;s</span></strong></p></div><div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true"><a href="https://www.espaceplaisir.fr/3829-womanizer-nouveautes" style="position:absolute;width:100%;height:100%;bottom:0;left:0"></a></div></div><div class="pagebuilder-column grid-cat-universe-card cat-2" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-background-lazy-load="true" data-element="main" data-pb-style="X56HLG6"><figure data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="UANVYJS"><a href="https://www.espaceplaisir.fr/3830-womanizer-petits-prix" target="" data-link-type="category" title="" data-element="link"><picture><source media="(min-width: 768px)" srcset="https://www.espaceplaisir.fr/media/wysiwyg/cat_pour_le_plaisir_1_.png"><source src="https://www.espaceplaisir.fr/media/wysiwyg/cat_pour_le_plaisir_1_.png" alt="" title="" loading="lazy" data-use-native-image-dimensions="true" width="" height="" fetchpriority="auto" data-element="mobile_image" srcset="https://www.espaceplaisir.fr/media/wysiwyg/cat_pour_le_plaisir_1_.png" media="(max-width: 767px)"><img width="2876" height="1246" src="https://www.espaceplaisir.fr/media/wysiwyg/cat_pour_le_plaisir_1_.png" alt="" title="" loading="lazy" fetchpriority="auto" data-element="desktop_image" data-pb-style="IOKFPNH"></source></source></picture></a></figure><div class="txt-cat-universe" data-content-type="text" data-appearance="default" data-element="main"><p style="position: absolute; margin-bottom: 0;"><strong><span style="font-size: 16px;">Vu dans le <br>film</span></strong></p></div><div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true"><a href="https://www.espaceplaisir.fr/womanizer-premium-2.html" style="position:absolute;width:100%;height:100%;bottom:0;left:0"></a></div></div></div></div></div></div><div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true"><style>
#html-body .categories-grid-block-tpl .txt-cat-universe {
 position : absolute;
 height: 100%;
 width: calc(70%);
}
#html-body .categories-grid-block-tpl .txt-cat-universe p {
 position:absolute;
 transform: translateY(-50%);
 top : 50%;
}
#html-body .categories-grid-block-tpl .grid-cat-universe-card {
 position: relative;
}

@media only screen and (max-width: 1024px) {
 #html-body .categories-grid-block-tpl .pagebuilder-column-line{
 display:grid;
 grid-template-columns: 1fr 1fr;
}
 #html-body .categories-grid-block-tpl .grid-cat-universe-card{
 width:calc(100% - 4px);
 }
 #html-body .categories-grid-block-tpl .cat-1 {
 grid-column: 1 / 2;
 }
 #html-body .categories-grid-block-tpl .cat-2 {
 grid-column: 2 / 2;
 }
}
</style></div></div>
</div><div data-content-type="row" data-appearance="contained" data-element="main"><div data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-background-lazy-load="false" data-element="inner" data-pb-style="FQI6M91"><div class="pagebuilder-column-group c-landing__promo-block universe-module-4 title-2-columns" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="12" data-background-lazy-load="false" data-element="main" data-pb-style="V8GFXM3"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="RKY6EXI"><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-background-lazy-load="false" data-element="main" data-pb-style="J980QG5"><h2 data-content-type="heading" data-appearance="default" data-element="main" data-pb-style="VNILVCU">Les marques les plus appr&eacute;ci&eacute;es</h2></div></div></div><div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true"><style>
.title-2-columns .pagebuilder-column {
 flex-basis: 46%;
 flex-grow: 1;
margin-bottom:0;
}
.title-2-columns.c-landing__promo-block [data-content-type=buttons]{
padding-left:0;
padding-right:0;
}

.title-2-columns .pagebuilder-column-line {
gap:0;
}

.title-2-columns.ghost-reverse [data-content-type=buttons] [data-content-type=button-item] {
margin-right:0;
}

.title-2-columns .ghost-reverse .btn-secondary {
background: transparent;
}
.title-2-columns .ghost-reverse .btn-secondary:hover {
background: rgba(0, 0, 0, 0.2);
border: 1px solid #000000;
opacity: 1;
}
.title-2-columns .ghost-reverse .btn-secondary:hover span {
opacity:1;
color:#000000;
}
.title-2-columns .ghost-reverse .btn-secondary span {
color:#000000;
}
</style></div><div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true"><!-- <div class="amslider-header-container cmsp72-mb-8 cmsp72-mt-6">
 <div class="cmsp72-mt-6">
 <p class="cmsp72-mb-0 h1 cmsp72-font-normal">Nos marques</p>
 </div>
</div> -->
<div class="widget block block-static-block">
    <style>.cmsb35-absolute {
position: absolute
}
.cmsb35-relative {
position: relative
}
.cmsb35-inset-x-0 {
left: 0px;
right: 0px
}
.cmsb35-inset-y-0 {
top: 0px;
bottom: 0px
}
.cmsb35-bottom-0 {
bottom: 0px
}
.cmsb35-z-10 {
z-index: 10
}
.cmsb35-m-auto {
margin: auto
}
.cmsb35-flex {
display: flex
}
.cmsb35-size-full {
width: 100%;
height: 100%
}
.cmsb35-w-\[calc\(50\%-8px\)\] {
width: calc(50% - 8px)
}
.cmsb35-w-full {
width: 100%
}
.cmsb35-shrink-0 {
flex-shrink: 0
}
.cmsb35-flex-nowrap {
flex-wrap: nowrap
}
.cmsb35-gap-4 {
gap: 1rem
}
.cmsb35-overflow-auto {
overflow: auto
}
.cmsb35-rounded {
border-radius: 0.25rem
}
.cmsb35-p-5 {
padding: 1.25rem
}
.cmsb35-pb-6 {
padding-bottom: 1.5rem
}
.cmsb35-text-center {
text-align: center
}
.cmsb35-font-bold {
font-weight: 700
}
.cmsb35-transition-all {
transition-property: all;
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
transition-duration: 150ms
}
@media (min-width: 1024px) {
.cmsb35-lg\:w-\[calc\(100\%\/4-90px\/4\)\] {
width: calc(100% / 4 - 90px / 4)
}
.cmsb35-lg\:max-w-none {
max-width: none
}
.cmsb35-lg\:gap-7 {
gap: 1.75rem
}
}</style>
<section class="page-brands__sliders custom-slider cmsb35-relative cmsb35-pb-6" x-data="initSliderComponent()" x-defer="intersect">
    <div class="p-slider" x-init="$nextTick(() => calcPageSize())" @resize.window.debounce="calcPageSize">
        <div class="w-[calc(100% + 16px)]">
            <div data-slider class="cmsb35-relative cmsb35-flex cmsb35-flex-nowrap cmsb35-overflow-auto cmsb35-transition-all snap cmsb35-gap-4 cmsb35-lg:gap-7" @scroll.debounce="calcActive">
                <div class="p-slider__item cmsb35-flex cmsb35-shrink-0 cmsb35-w-[calc(50%-8px)] cmsb35-lg:max-w-none cmsb35-lg:w-[calc(100%/4-90px/4)] cmsb35-relative">
                    <a href="https://www.espaceplaisir.fr/marques/womanizer" class="cmsb35-absolute cmsb35-inset-x-0 cmsb35-inset-y-0 cmsb35-size-full cmsb35-z-10"></a>
                    <img loading="lazy" src="https://www.espaceplaisir.fr/media/wysiwyg/amasty/Marques/ban_marque_womanizer-2.jpg" alt="Womanizer" class="cmsb35-w-full cmsb35-rounded">
                    <div class="cmsb35-absolute cmsb35-bottom-0 cmsb35-p-5 cmsb35-inset-x-0 cmsb35-text-center">
                        <img loading="lazy" src="https://www.espaceplaisir.fr/media/wysiwyg/amasty/Marques/logo_womanizer.png" alt="Womanizer" class="cmsb35-m-auto">
                        <span class="text-white cmsb35-font-bold">Je découvre</span>
                    </div>
                </div>
                <div class="p-slider__item cmsb35-flex cmsb35-shrink-0 cmsb35-w-[calc(50%-8px)] cmsb35-lg:max-w-none cmsb35-lg:w-[calc(100%/4-90px/4)] cmsb35-relative">
                    <a href="https://www.espaceplaisir.fr/marques/fleshlight" class="cmsb35-absolute cmsb35-inset-x-0 cmsb35-inset-y-0 cmsb35-size-full cmsb35-z-10"></a>
                    <img loading="lazy" src="https://www.espaceplaisir.fr/media/wysiwyg/amasty/Marques/ban_marque_fleshlight-2.jpg" alt="Fleshlight" class="cmsb35-w-full cmsb35-rounded">
                    <div class="cmsb35-absolute cmsb35-bottom-0 cmsb35-p-5 cmsb35-inset-x-0 cmsb35-text-center">
                        <img loading="lazy" src="https://www.espaceplaisir.fr/media/wysiwyg/amasty/Marques/logo_fleshlight.png" alt="Fleshlight" class="cmsb35-m-auto">
                        <span class="text-white cmsb35-font-bold">Je découvre</span>
                    </div>
                </div>
                <div class="p-slider__item cmsb35-flex cmsb35-shrink-0 cmsb35-w-[calc(50%-8px)] cmsb35-lg:max-w-none cmsb35-lg:w-[calc(100%/4-90px/4)] cmsb35-relative">
                    <a href="https://www.espaceplaisir.fr/marques/lovense" class="cmsb35-absolute cmsb35-inset-x-0 cmsb35-inset-y-0 cmsb35-size-full cmsb35-z-10"></a>
                    <img loading="lazy" src="https://www.espaceplaisir.fr/media/wysiwyg/amasty/Marques/ban_marque_lovense-2.jpg" alt="Lovense" class="cmsb35-w-full cmsb35-rounded">
                    <div class="cmsb35-absolute cmsb35-bottom-0 cmsb35-p-5 cmsb35-inset-x-0 cmsb35-text-center">
                        <img loading="lazy" src="https://www.espaceplaisir.fr/media/wysiwyg/amasty/Marques/logo_lovense.png" alt="Lovense" class="cmsb35-m-auto">
                        <span class="text-white cmsb35-font-bold">Je découvre</span>
                    </div>
                </div>
                <div class="p-slider__item cmsb35-flex cmsb35-shrink-0 cmsb35-w-[calc(50%-8px)] cmsb35-lg:max-w-none cmsb35-lg:w-[calc(100%/4-90px/4)] cmsb35-relative">
                    <a href="https://www.espaceplaisir.fr/marques/lelo" class="cmsb35-absolute cmsb35-inset-x-0 cmsb35-inset-y-0 cmsb35-size-full cmsb35-z-10"></a>
                    <img loading="lazy" src="https://www.espaceplaisir.fr/media/wysiwyg/amasty/Marques/ban_marque_lelo-2.jpg" alt="Lelo" class="cmsb35-w-full cmsb35-rounded">
                    <div class="cmsb35-absolute cmsb35-bottom-0 cmsb35-p-5 cmsb35-inset-x-0 cmsb35-text-center">
                        <img loading="lazy" src="https://www.espaceplaisir.fr/media/wysiwyg/amasty/Marques/logo_lelo.png" alt="Lelo" class="cmsb35-m-auto">
                        <span class="text-white cmsb35-font-bold">Je découvre</span>
                    </div>
                </div>
                <div class="p-slider__item cmsb35-flex cmsb35-shrink-0 cmsb35-w-[calc(50%-8px)] cmsb35-lg:max-w-none cmsb35-lg:w-[calc(100%/4-90px/4)] cmsb35-relative">
                    <a href="https://www.espaceplaisir.fr/marques/durex" class="cmsb35-absolute cmsb35-inset-x-0 cmsb35-inset-y-0 cmsb35-size-full cmsb35-z-10"></a>
                    <img loading="lazy" src="https://www.espaceplaisir.fr/media/wysiwyg/amasty/Marques/ban_marque_durex.jpg" alt="Durex" class="cmsb35-w-full cmsb35-rounded">
                    <div class="cmsb35-absolute cmsb35-bottom-0 cmsb35-p-5 cmsb35-inset-x-0 cmsb35-text-center">
                        <img loading="lazy" src="https://www.espaceplaisir.fr/media/wysiwyg/amasty/Marques/logo_durex.png" alt="Durex" class="cmsb35-m-auto">
                        <span class="text-white cmsb35-font-bold">Je découvre</span>
                    </div>
                </div>
                <div class="p-slider__item cmsb35-flex cmsb35-shrink-0 cmsb35-w-[calc(50%-8px)] cmsb35-lg:max-w-none cmsb35-lg:w-[calc(100%/4-90px/4)] cmsb35-relative">
                    <a href="https://www.espaceplaisir.fr/marques/tenga" class="cmsb35-absolute cmsb35-inset-x-0 cmsb35-inset-y-0 cmsb35-size-full cmsb35-z-10"></a>
                    <img loading="lazy" src="https://www.espaceplaisir.fr/media/wysiwyg/amasty/Marques/ban_marque_tenga-2.jpg" alt="Tenga" class="cmsb35-w-full cmsb35-rounded">
                    <div class="cmsb35-absolute cmsb35-bottom-0 cmsb35-p-5 cmsb35-inset-x-0 cmsb35-text-center">
                        <img loading="lazy" src="https://www.espaceplaisir.fr/media/wysiwyg/amasty/Marques/logo_tenga.png" alt="Tenga" class="cmsb35-m-auto">
                        <span class="text-white cmsb35-font-bold">Je découvre</span>
                    </div>
                </div>
                <div class="p-slider__item cmsb35-flex cmsb35-shrink-0 cmsb35-w-[calc(50%-8px)] cmsb35-lg:max-w-none cmsb35-lg:w-[calc(100%/4-90px/4)] cmsb35-relative">
                    <a href="https://www.espaceplaisir.fr/marques/we_vibe" class="cmsb35-absolute cmsb35-inset-x-0 cmsb35-inset-y-0 cmsb35-size-full cmsb35-z-10"></a>
                    <img loading="lazy" src="https://www.espaceplaisir.fr/media/wysiwyg/amasty/Marques/ban_marque_we_vibe-3.jpg" alt="We Vibe" class="cmsb35-w-full cmsb35-rounded">
                    <div class="cmsb35-absolute cmsb35-bottom-0 cmsb35-p-5 cmsb35-inset-x-0 cmsb35-text-center">
                        <img loading="lazy" src="https://www.espaceplaisir.fr/media/wysiwyg/amasty/Marques/logo_we_vibe.png" alt="We Vibe" class="cmsb35-m-auto">
                        <span class="text-white cmsb35-font-bold">Je découvre</span>
                    </div>
                </div>
                <div class="p-slider__item cmsb35-flex cmsb35-shrink-0 cmsb35-w-[calc(50%-8px)] cmsb35-lg:max-w-none cmsb35-lg:w-[calc(100%/4-90px/4)] cmsb35-relative">
                    <a href="https://www.espaceplaisir.fr/marques/svakom" class="cmsb35-absolute cmsb35-inset-x-0 cmsb35-inset-y-0 cmsb35-size-full cmsb35-z-10"></a>
                    <img loading="lazy" src="https://www.espaceplaisir.fr/media/wysiwyg/amasty/Marques/ban_marque_svakom-2.jpg" alt="Svakom" class="cmsb35-w-full cmsb35-rounded">
                    <div class="cmsb35-absolute cmsb35-bottom-0 cmsb35-p-5 cmsb35-inset-x-0 cmsb35-text-center">
                        <img loading="lazy" src="https://www.espaceplaisir.fr/media/wysiwyg/amasty/Marques/logo_svakom.png" alt="Svakom" class="cmsb35-m-auto">
                        <span class="text-white cmsb35-font-bold">Je découvre</span>
                    </div>
                </div>
            </div>
        </div>
    </div>
</section>
</div>
</div></div></div><div data-content-type="block" data-appearance="default" data-element="main" data-pb-style="LOD4LYR"><div class="widget block block-static-block">
    <style>.cmsb201-max-w-\[24px\] {
max-width: 24px
}
.cmsb201-items-center {
align-items: center
}</style>
<style>#html-body [data-pb-style=GKFIH5E],#html-body [data-pb-style=U9CACAY]{background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;margin-top:0}#html-body [data-pb-style=GKFIH5E]{justify-content:flex-start;display:flex;flex-direction:column}#html-body [data-pb-style=U9CACAY]{text-align:center;align-self:stretch}#html-body [data-pb-style=N3WI105]{display:flex;width:100%}#html-body [data-pb-style=XOFK84P]{justify-content:center;display:flex;flex-direction:column;background-color:#c6376b;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;text-align:center;border-radius:4px;width:calc(25% - 24px);margin:2px 12px;padding:8px 12px;align-self:stretch}#html-body [data-pb-style=D6X23GT]{border-style:none}#html-body [data-pb-style=ODOY8PR]{max-width:100%;height:auto}#html-body [data-pb-style=VNW9KDF]{justify-content:center;display:flex;flex-direction:column;background-color:#c6376b;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;text-align:center;border-radius:4px;width:calc(25% - 24px);margin:2px 12px;padding:8px 12px;align-self:stretch}#html-body [data-pb-style=O1UM92A]{border-style:none}#html-body [data-pb-style=P72AK88]{max-width:100%;height:auto}#html-body [data-pb-style=OMSRKKG]{text-align:center}#html-body [data-pb-style=X2TPUO8]{justify-content:center;display:flex;flex-direction:column;background-color:#c6376b;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;border-radius:4px;width:calc(25% - 24px);margin:2px 12px;padding:8px 12px;align-self:stretch}#html-body [data-pb-style=Y1MEJ9L]{border-style:none}#html-body [data-pb-style=N86H8Q5]{max-width:100%;height:auto}#html-body [data-pb-style=MWN0INN]{justify-content:center;display:flex;flex-direction:column;background-color:#c6376b;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;text-align:center;border-radius:4px;width:calc(25% - 24px);margin:2px 12px;padding:8px 12px;align-self:stretch}#html-body [data-pb-style=AWI1XCL]{border-style:none}#html-body [data-pb-style=B2JW28J]{max-width:100%;height:auto}@media only screen and (max-width: 768px) { #html-body [data-pb-style=GKFIH5E]{display:flex;flex-direction:column;margin-top:32px}#html-body [data-pb-style=D6X23GT],#html-body [data-pb-style=O1UM92A]{border-style:none}#html-body [data-pb-style=X2TPUO8]{display:flex;flex-direction:column;text-align:center;align-self:stretch}#html-body [data-pb-style=AWI1XCL],#html-body [data-pb-style=Y1MEJ9L]{border-style:none} }</style><div data-content-type="row" data-appearance="contained" data-element="main"><div data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-background-lazy-load="false" data-element="inner" data-pb-style="GKFIH5E"><div class="pagebuilder-column-group" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="12" data-background-lazy-load="false" data-element="main" data-pb-style="U9CACAY"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="N3WI105"><div class="pagebuilder-column reinsurance-column cmsb201-items-center" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-background-lazy-load="false" data-element="main" data-pb-style="XOFK84P"><figure class="cmsb201-max-w-[24px]" data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="D6X23GT"><picture><source media="(min-width: 768px)" srcset="https://www.espaceplaisir.fr/media/.renditions/wysiwyg/emojis/fusee.png"><source src="https://www.espaceplaisir.fr/media/.renditions/wysiwyg/emojis/fusee.png" alt="" title="" loading="lazy" data-use-native-image-dimensions="false" width="24" height="24" data-element="mobile_image" srcset="https://www.espaceplaisir.fr/media/.renditions/wysiwyg/emojis/fusee.png" media="(max-width: 767px)"><img src="https://www.espaceplaisir.fr/media/.renditions/wysiwyg/emojis/fusee.png" alt="" title="" loading="lazy" data-use-native-image-dimensions="false" width="24" height="24" data-element="desktop_image" data-pb-style="ODOY8PR"></source></source></picture></figure><div data-content-type="text" data-appearance="default" data-element="main"><p style="margin: 0px; text-align: center;"><span style="font-size: 16px; color: rgb(255, 255, 255);">Livraison gratuite d&egrave;s 59&euro;</span></p></div></div><div class="pagebuilder-column reinsurance-column cmsb201-items-center" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-background-lazy-load="false" data-element="main" data-pb-style="VNW9KDF"><figure class="cmsb201-max-w-[24px]" data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="O1UM92A"><picture><source media="(min-width: 768px)" srcset="https://www.espaceplaisir.fr/media/.renditions/wysiwyg/emojis/package.png"><source src="https://www.espaceplaisir.fr/media/.renditions/wysiwyg/emojis/package.png" alt="" title="" loading="lazy" data-use-native-image-dimensions="false" width="24" height="24" data-element="mobile_image" srcset="https://www.espaceplaisir.fr/media/.renditions/wysiwyg/emojis/package.png" media="(max-width: 767px)"><img src="https://www.espaceplaisir.fr/media/.renditions/wysiwyg/emojis/package.png" alt="" title="" loading="lazy" data-use-native-image-dimensions="false" width="24" height="24" data-element="desktop_image" data-pb-style="P72AK88"></source></source></picture></figure><div data-content-type="text" data-appearance="default" data-element="main" data-pb-style="OMSRKKG"><p style="margin: 0px; text-align: center;"><span style="font-size: 16px; color: rgb(255, 255, 255);">Livraison 100% discr&egrave;te</span></p></div></div><div class="pagebuilder-column reinsurance-column cmsb201-items-center" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-background-lazy-load="false" data-element="main" data-pb-style="X2TPUO8"><figure class="cmsb201-max-w-[24px]" data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="Y1MEJ9L"><picture><source media="(min-width: 768px)" srcset="https://www.espaceplaisir.fr/media/.renditions/wysiwyg/emojis/carte.png"><source src="https://www.espaceplaisir.fr/media/.renditions/wysiwyg/emojis/carte.png" alt="" title="" loading="lazy" data-use-native-image-dimensions="false" width="24" height="24" data-element="mobile_image" srcset="https://www.espaceplaisir.fr/media/.renditions/wysiwyg/emojis/carte.png" media="(max-width: 767px)"><img src="https://www.espaceplaisir.fr/media/.renditions/wysiwyg/emojis/carte.png" alt="" title="" loading="lazy" data-use-native-image-dimensions="false" width="24" height="24" data-element="desktop_image" data-pb-style="N86H8Q5"></source></source></picture></figure><div data-content-type="text" data-appearance="default" data-element="main"><p style="margin: 0px; text-align: center;"><span style="font-size: 16px; color: rgb(255, 255, 255);">Paiement 3x sans frais</span></p></div></div><div class="pagebuilder-column reinsurance-column cmsb201-items-center" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-background-lazy-load="false" data-element="main" data-pb-style="MWN0INN"><figure class="cmsb201-max-w-[24px]" data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="AWI1XCL"><picture><source media="(min-width: 768px)" srcset="https://www.espaceplaisir.fr/media/.renditions/wysiwyg/emojis/heart.png"><source src="https://www.espaceplaisir.fr/media/.renditions/wysiwyg/emojis/heart.png" alt="" title="" loading="lazy" data-use-native-image-dimensions="false" width="24" height="24" data-element="mobile_image" srcset="https://www.espaceplaisir.fr/media/.renditions/wysiwyg/emojis/heart.png" media="(max-width: 767px)"><img src="https://www.espaceplaisir.fr/media/.renditions/wysiwyg/emojis/heart.png" alt="" title="" loading="lazy" data-use-native-image-dimensions="false" width="24" height="24" data-element="desktop_image" data-pb-style="B2JW28J"></source></source></picture></figure><div data-content-type="text" data-appearance="default" data-element="main"><p style="margin: 0;"><span style="font-size: 16px; color: rgb(255, 255, 255);">Satisfait&middot;e ou rembours&eacute;&middot;e</span></p></div></div></div></div><div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true"><style>
#html-body .pagebuilder-column.reinsurance-column {
flex-direction:row;
gap: 8px;
}

</style></div></div></div></div>
</div><div data-content-type="row" data-appearance="contained" data-element="main"><div data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-background-lazy-load="" data-element="inner" data-pb-style="OA1K6KA"><div data-content-type="html" data-appearance="default" data-element="main" data-pb-style="S9R9RXK" data-decoded="true"><section class="slider-manager group relative overflow-hidden w-full">
    <div x-ref="slider" class="snap relative flex flex-nowrap w-full overflow-auto transition-all">
                                        <div class="slider-manager__item overflow-hidden w-full                right-0 transition-opacity duration-500 item--1                relative left-0 opacity-100" :class="{                    'relative opacity-100 left-0': activeSlide === 0,                    'absolute opacity-0 left-[-10000px]': activeSlide !== 0                }">
            
    <i class="inset-0 absolute pointer-events-none" data-ga4-promo="{&amp;quot;promotion_id&amp;quot;:null,&amp;quot;promotion_name&amp;quot;:null,&amp;quot;creative_name&amp;quot;:null,&amp;quot;creative_slot&amp;quot;:null}" data-ga4-wrap=".item--1"></i>
            <picture>
                                    <source srcset="https://www.espaceplaisir.fr/media/interactiv4/slidermanager/banner/0426_MEA-PROMO_resp_home_promo_720x1000.jpg" media="(max-width: 1023px)">
                                                    <source srcset="https://www.espaceplaisir.fr/media/interactiv4/slidermanager/banner/0426_MEA-PROMO_home_promo_1278x352.jpg">
                    <img width="1920" height="550" class="w-full max-h-[550px] min-h-[320px] object-cover" src="https://www.espaceplaisir.fr/media/interactiv4/slidermanager/banner/0426_MEA-PROMO_home_promo_1278x352.jpg" alt="" loading="lazy">
                            </source></source></picture>
                            <a href="https://www.espaceplaisir.fr/1103-promotions" class="absolute z-30 inset-0"></a>
                                </div>
            </div>
    <template x-if="itemCount &gt; 1">
        <div class="slider-manager__nav">
            <div class="slider-manager__arrow hidden lg:block absolute top-2/4 opacity-0 transition-all z-30 left-0 group-hover:left-8 group-hover:opacity-100">
                <button aria-label="Pr&eacute;c&eacute;dent" tabindex="-1" class="flex items-center justify-center bg-white text-grey w-8 h-8 outline-none focus:outline-none                 flex-none rounded-lg hover:bg-optimo hover:text-white transition-all" @click="scrollPrevious">
                    <svg class="w-2.5 h-4 slider-nav" aria-hidden="true">
                        <use href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/i4-sprite.svg#ico-left"></use>
                    </svg>
                </button>
            </div>
            <div class="slider-manager__arrow hidden lg:block absolute top-2/4 opacity-0 transition-all z-30 right-0 group-hover:right-8 group-hover:opacity-100">
                <button aria-label="Suivant" tabindex="-1" class="flex items-center justify-center bg-white text-grey w-8 h-8 outline-none focus:outline-none                 flex-none rounded-lg hover:bg-optimo hover:text-white transition-all" @click="scrollNext">
                    <svg class="w-2.5 h-4 slider-nav" aria-hidden="true">
                        <use href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/i4-sprite.svg#ico-right"></use>
                    </svg>
                </button>
            </div>
            <nav class="absolute bottom-3 z-30 text-center flex flex-wrap w-full justify-center">
                                    <span class="slider-manager__step size-2 m-1 border border-black rounded-full cursor-pointer hover:bg-optimo" :class="{                        'active bg-white pointer-events-none': activeSlide === 0,                        'bg-black slider-dots': activeSlide !== 0                    }" @click="scrollTo(0)">
                </span>
                            </nav>
        </div>
    </template>
</section>
</div></div></div><div data-content-type="row" data-appearance="contained" data-element="main"><div data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-background-lazy-load="false" data-element="inner" data-pb-style="RU9A5WC"><div class="pagebuilder-column-group" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="12" data-background-lazy-load="" data-element="main" data-pb-style="LDJINIX"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="IBK6JE3"><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-background-lazy-load="" data-element="main" data-pb-style="Y3XIWSW"><h2 data-content-type="heading" data-appearance="default" data-element="main" data-pb-style="S5JIAKD">Best-sellers &agrave; ne pas manquer</h2></div><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-background-lazy-load="" data-element="main" data-pb-style="QEBCSP9"></div></div></div><div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true"><style>
.title-2-columns .pagebuilder-column {
 flex-basis: 46%;
 flex-grow: 1;
margin-bottom:0;
}
.title-2-columns.c-landing__promo-block [data-content-type=buttons]{
padding-left:0;
padding-right:0;
}

.title-2-columns .pagebuilder-column-line {
gap:0;
}

.title-2-columns.ghost-reverse [data-content-type=buttons] [data-content-type=button-item] {
margin-right:0;
}

.title-2-columns .ghost-reverse .btn-secondary {
background: transparent;
}
.title-2-columns .ghost-reverse .btn-secondary:hover {
background: rgba(0, 0, 0, 0.2);
border: 1px solid #000000;
opacity: 1;
}
.title-2-columns .ghost-reverse .btn-secondary:hover span {
opacity:1;
color:#000000;
}
.title-2-columns .ghost-reverse .btn-secondary span {
color:#000000;
}
</style></div><div data-content-type="products" data-appearance="carousel" data-autoplay="false" data-autoplay-speed="4000" data-infinite-loop="true" data-show-arrows="true" data-show-dots="true" data-carousel-mode="default" data-ga4-title="hp-top-sellers" data-center-padding="90px" data-element="main">
<div x-data x-init="() =&gt; {            const products = {&quot;28735&quot;:{&quot;item_name&quot;:&quot;Womanizer Premium 2 stimulateur clitoridien&quot;,&quot;item_id&quot;:&quot;CONF-19257&quot;,&quot;price&quot;:139,&quot;item_url&quot;:&quot;https:\/\/www.espaceplaisir.fr\/womanizer-premium-2.html&quot;,&quot;item_list_name&quot;:&quot;widgets&quot;,&quot;index&quot;:1,&quot;quantity&quot;:1,&quot;item_category&quot;:&quot;Sextoys&quot;,&quot;item_category2&quot;:&quot;Stimulateur clitoridien&quot;,&quot;item_brand&quot;:&quot;Womanizer&quot;,&quot;item_reviews&quot;:&quot;1020&quot;,&quot;item_rating&quot;:&quot;4.52&quot;,&quot;price_type&quot;:&quot;discounted price&quot;,&quot;item_sale_indicator&quot;:&quot;on_sale&quot;,&quot;discount&quot;:40,&quot;price_before_discount&quot;:179,&quot;item_stock&quot;:&quot;in stock&quot;},&quot;48224&quot;:{&quot;item_name&quot;:&quot;Coffret sextoys Womanizer et We-Vibe Lust &amp; Luxury&quot;,&quot;item_id&quot;:&quot;WZXY1SG9&quot;,&quot;price&quot;:239,&quot;item_url&quot;:&quot;https:\/\/www.espaceplaisir.fr\/womanizer-next-we-vibe-sync-o-lust-luxury-collection-box.html&quot;,&quot;item_list_name&quot;:&quot;widgets&quot;,&quot;index&quot;:2,&quot;quantity&quot;:1,&quot;item_category&quot;:&quot;Sextoys&quot;,&quot;item_category2&quot;:&quot;Coffrets sextoys&quot;,&quot;item_brand&quot;:&quot;Womanizer&quot;,&quot;item_ean&quot;:&quot;4251460631570&quot;,&quot;item_reviews&quot;:&quot;5&quot;,&quot;item_rating&quot;:&quot;4.4&quot;,&quot;price_type&quot;:&quot;discounted price&quot;,&quot;item_sale_indicator&quot;:&quot;on_sale&quot;,&quot;discount&quot;:139,&quot;price_before_discount&quot;:378,&quot;item_stock&quot;:&quot;in stock&quot;},&quot;47695&quot;:{&quot;item_name&quot;:&quot;Lovense Lush 4 oeuf vibrant connect\u00e9&quot;,&quot;item_id&quot;:&quot;6972677430456&quot;,&quot;price&quot;:129,&quot;item_url&quot;:&quot;https:\/\/www.espaceplaisir.fr\/lovense-lush-4.html&quot;,&quot;item_list_name&quot;:&quot;widgets&quot;,&quot;index&quot;:3,&quot;quantity&quot;:1,&quot;item_category&quot;:&quot;Sextoys&quot;,&quot;item_category2&quot;:&quot;Oeuf vibrant et boules de geisha&quot;,&quot;item_category3&quot;:&quot;Oeuf vibrant&quot;,&quot;item_brand&quot;:&quot;Lovense&quot;,&quot;item_ean&quot;:&quot;6972677430456&quot;,&quot;item_reviews&quot;:&quot;1185&quot;,&quot;item_rating&quot;:&quot;4.4&quot;,&quot;price_type&quot;:&quot;discounted price&quot;,&quot;item_sale_indicator&quot;:&quot;on_sale&quot;,&quot;discount&quot;:10,&quot;price_before_discount&quot;:139,&quot;item_stock&quot;:&quot;in stock&quot;},&quot;48383&quot;:{&quot;item_name&quot;:&quot;Masturbateur vibrant Arcwave Zing&quot;,&quot;item_id&quot;:&quot;AWSM1SG9&quot;,&quot;price&quot;:111.2,&quot;item_url&quot;:&quot;https:\/\/www.espaceplaisir.fr\/arcwave-zing.html&quot;,&quot;item_list_name&quot;:&quot;widgets&quot;,&quot;index&quot;:4,&quot;quantity&quot;:1,&quot;item_category&quot;:&quot;Sextoys&quot;,&quot;item_category2&quot;:&quot;Masturbateur&quot;,&quot;item_category3&quot;:&quot;Masturbateur vibrant&quot;,&quot;item_brand&quot;:&quot;Arcwave&quot;,&quot;item_ean&quot;:&quot;4251460612944&quot;,&quot;item_reviews&quot;:&quot;38&quot;,&quot;item_rating&quot;:&quot;4.29&quot;,&quot;price_type&quot;:&quot;discounted price&quot;,&quot;item_sale_indicator&quot;:&quot;on_sale&quot;,&quot;discount&quot;:27.8,&quot;price_before_discount&quot;:139,&quot;item_stock&quot;:&quot;in stock&quot;},&quot;47699&quot;:{&quot;item_name&quot;:&quot;Masturbateur connect\u00e9 Sam Neo 2&quot;,&quot;item_id&quot;:&quot;S08P&quot;,&quot;price&quot;:118.32,&quot;item_url&quot;:&quot;https:\/\/www.espaceplaisir.fr\/svakom-sam-neo-2.html&quot;,&quot;item_list_name&quot;:&quot;widgets&quot;,&quot;index&quot;:5,&quot;quantity&quot;:1,&quot;item_category&quot;:&quot;Sextoys&quot;,&quot;item_category2&quot;:&quot;Masturbateur&quot;,&quot;item_brand&quot;:&quot;Svakom&quot;,&quot;item_ean&quot;:&quot;6959633104514&quot;,&quot;item_reviews&quot;:&quot;2&quot;,&quot;item_rating&quot;:&quot;4&quot;,&quot;price_type&quot;:&quot;discounted price&quot;,&quot;item_sale_indicator&quot;:&quot;on_sale&quot;,&quot;discount&quot;:29.6,&quot;price_before_discount&quot;:147.9,&quot;item_stock&quot;:&quot;in stock&quot;},&quot;16889&quot;:{&quot;item_name&quot;:&quot;Masturbateur connect\u00e9 Lovense Max 2&quot;,&quot;item_id&quot;:&quot;728360599612&quot;,&quot;price&quot;:119,&quot;item_url&quot;:&quot;https:\/\/www.espaceplaisir.fr\/lovense-max-2.html&quot;,&quot;item_list_name&quot;:&quot;widgets&quot;,&quot;index&quot;:6,&quot;quantity&quot;:1,&quot;item_category&quot;:&quot;Sextoys&quot;,&quot;item_category2&quot;:&quot;Masturbateur&quot;,&quot;item_brand&quot;:&quot;Lovense&quot;,&quot;item_ean&quot;:&quot;728360599612&quot;,&quot;item_reviews&quot;:&quot;127&quot;,&quot;item_rating&quot;:&quot;4.43&quot;,&quot;price_type&quot;:&quot;full price&quot;,&quot;item_sale_indicator&quot;:&quot;off_sale&quot;,&quot;price_before_discount&quot;:119,&quot;item_stock&quot;:&quot;in stock&quot;},&quot;32656&quot;:{&quot;item_name&quot;:&quot;Stimulateur clitoridien Womanizer Pro40 \u00e9dition Lovehoney&quot;,&quot;item_id&quot;:&quot;74431&quot;,&quot;price&quot;:99,&quot;item_url&quot;:&quot;https:\/\/www.espaceplaisir.fr\/womanizer-x-lovehoney-pro40-rechargeable-clitoral-stimulator.html&quot;,&quot;item_list_name&quot;:&quot;widgets&quot;,&quot;index&quot;:7,&quot;quantity&quot;:1,&quot;item_category&quot;:&quot;Sextoys&quot;,&quot;item_category2&quot;:&quot;Stimulateur clitoridien&quot;,&quot;item_brand&quot;:&quot;Womanizer&quot;,&quot;item_ean&quot;:&quot;5060680310085&quot;,&quot;item_reviews&quot;:&quot;2259&quot;,&quot;item_rating&quot;:&quot;4.49&quot;,&quot;price_type&quot;:&quot;discounted price&quot;,&quot;item_sale_indicator&quot;:&quot;on_sale&quot;,&quot;discount&quot;:30,&quot;price_before_discount&quot;:129,&quot;item_stock&quot;:&quot;in stock&quot;},&quot;28729&quot;:{&quot;item_name&quot;:&quot;Womanizer Starlet 3 stimulateur clitoridien&quot;,&quot;item_id&quot;:&quot;CONF-19255&quot;,&quot;price&quot;:58.65,&quot;item_url&quot;:&quot;https:\/\/www.espaceplaisir.fr\/womanizer-starlet-3.html&quot;,&quot;item_list_name&quot;:&quot;widgets&quot;,&quot;index&quot;:8,&quot;quantity&quot;:1,&quot;item_category&quot;:&quot;Sextoys&quot;,&quot;item_category2&quot;:&quot;Stimulateur clitoridien&quot;,&quot;item_brand&quot;:&quot;Womanizer&quot;,&quot;item_reviews&quot;:&quot;512&quot;,&quot;item_rating&quot;:&quot;4.88&quot;,&quot;price_type&quot;:&quot;discounted price&quot;,&quot;item_sale_indicator&quot;:&quot;on_sale&quot;,&quot;discount&quot;:10.35,&quot;price_before_discount&quot;:69,&quot;item_stock&quot;:&quot;in stock&quot;},&quot;33350&quot;:{&quot;item_name&quot;:&quot;Sex machine F-Machine Pro 4&quot;,&quot;item_id&quot;:&quot;670234&quot;,&quot;price&quot;:749,&quot;item_url&quot;:&quot;https:\/\/www.espaceplaisir.fr\/f-machine-pro-4-fuck-machine.html&quot;,&quot;item_list_name&quot;:&quot;widgets&quot;,&quot;index&quot;:9,&quot;quantity&quot;:1,&quot;item_category&quot;:&quot;BDSM&quot;,&quot;item_category2&quot;:&quot;Balan\u00e7oire sexuelle et sex machine&quot;,&quot;item_category3&quot;:&quot;Sex machine&quot;,&quot;item_brand&quot;:&quot;F-Machine&quot;,&quot;item_ean&quot;:&quot;696952117905&quot;,&quot;item_reviews&quot;:&quot;7&quot;,&quot;item_rating&quot;:&quot;5&quot;,&quot;price_type&quot;:&quot;full price&quot;,&quot;item_sale_indicator&quot;:&quot;off_sale&quot;,&quot;price_before_discount&quot;:749,&quot;item_stock&quot;:&quot;in stock&quot;},&quot;32657&quot;:{&quot;item_name&quot;:&quot;Masturbateur vibrant et chauffant Blowmotion&quot;,&quot;item_id&quot;:&quot;80097&quot;,&quot;price&quot;:63.92,&quot;item_url&quot;:&quot;https:\/\/www.espaceplaisir.fr\/blowmotion-warming-vibrating-male-masturbator.html&quot;,&quot;item_list_name&quot;:&quot;widgets&quot;,&quot;index&quot;:10,&quot;quantity&quot;:1,&quot;item_category&quot;:&quot;Sextoys&quot;,&quot;item_category2&quot;:&quot;Masturbateur&quot;,&quot;item_brand&quot;:&quot;Blowmotion&quot;,&quot;item_ean&quot;:&quot;5060462639236&quot;,&quot;item_reviews&quot;:&quot;721&quot;,&quot;item_rating&quot;:&quot;3.83&quot;,&quot;price_type&quot;:&quot;discounted price&quot;,&quot;item_sale_indicator&quot;:&quot;on_sale&quot;,&quot;discount&quot;:16,&quot;price_before_discount&quot;:79.9,&quot;item_stock&quot;:&quot;in stock&quot;},&quot;34460&quot;:{&quot;item_name&quot;:&quot;Womanizer Premium 1 stimulateur clitoridien&quot;,&quot;item_id&quot;:&quot;CONF-23103&quot;,&quot;price&quot;:129,&quot;item_url&quot;:&quot;https:\/\/www.espaceplaisir.fr\/womanizer-premium-1.html&quot;,&quot;item_list_name&quot;:&quot;widgets&quot;,&quot;index&quot;:11,&quot;quantity&quot;:1,&quot;item_category&quot;:&quot;Sextoys&quot;,&quot;item_category2&quot;:&quot;Stimulateur clitoridien&quot;,&quot;item_brand&quot;:&quot;Womanizer&quot;,&quot;item_reviews&quot;:&quot;1020&quot;,&quot;item_rating&quot;:&quot;4.52&quot;,&quot;price_type&quot;:&quot;discounted price&quot;,&quot;item_sale_indicator&quot;:&quot;on_sale&quot;,&quot;discount&quot;:50,&quot;price_before_discount&quot;:179,&quot;item_stock&quot;:&quot;in stock&quot;},&quot;32659&quot;:{&quot;item_name&quot;:&quot;Stimulateur point G et clitoris Indulge&quot;,&quot;item_id&quot;:&quot;84888&quot;,&quot;price&quot;:59.42,&quot;item_url&quot;:&quot;https:\/\/www.espaceplaisir.fr\/lovehoney-indulge-g-spot-and-clitoral-suction-stimulator.html&quot;,&quot;item_list_name&quot;:&quot;widgets&quot;,&quot;index&quot;:12,&quot;quantity&quot;:1,&quot;item_category&quot;:&quot;Sextoys&quot;,&quot;item_category2&quot;:&quot;Stimulateur clitoridien&quot;,&quot;item_brand&quot;:&quot;Lovehoney&quot;,&quot;item_ean&quot;:&quot;5060926403168&quot;,&quot;item_reviews&quot;:&quot;1201&quot;,&quot;item_rating&quot;:&quot;4.23&quot;,&quot;price_type&quot;:&quot;discounted price&quot;,&quot;item_sale_indicator&quot;:&quot;on_sale&quot;,&quot;discount&quot;:10.5,&quot;price_before_discount&quot;:69.9,&quot;item_stock&quot;:&quot;in stock&quot;},&quot;45993&quot;:{&quot;item_name&quot;:&quot;Oeuf vibrant connect\u00e9 We-Vibe Jive Lite&quot;,&quot;item_id&quot;:&quot;SNJV3SG4&quot;,&quot;price&quot;:84.15,&quot;item_url&quot;:&quot;https:\/\/www.espaceplaisir.fr\/we-vibe-jive-lite.html&quot;,&quot;item_list_name&quot;:&quot;widgets&quot;,&quot;index&quot;:13,&quot;quantity&quot;:1,&quot;item_category&quot;:&quot;Sextoys&quot;,&quot;item_category2&quot;:&quot;Oeuf vibrant et boules de geisha&quot;,&quot;item_category3&quot;:&quot;Oeuf vibrant&quot;,&quot;item_brand&quot;:&quot;We-Vibe&quot;,&quot;item_ean&quot;:&quot;4251460624688&quot;,&quot;item_reviews&quot;:&quot;226&quot;,&quot;item_rating&quot;:&quot;4.19&quot;,&quot;price_type&quot;:&quot;discounted price&quot;,&quot;item_sale_indicator&quot;:&quot;on_sale&quot;,&quot;discount&quot;:14.85,&quot;price_before_discount&quot;:99,&quot;item_stock&quot;:&quot;in stock&quot;}};            const node = $el.nextElementSibling;            const ga4Title = node &amp;&amp; node.closest('[data-ga4-title]');            if (ga4Title &amp;&amp; ga4Title.dataset.ga4Title) {               for (const product in products) {                   products[product].item_list_id = products[product].item_list_id || ga4Title.dataset.ga4Title;               }            }            updateGa4Products({node, products: JSON.stringify(products) }).init();        }"></div>
    
    <section class="p-slider relative mt-6 mb-11" x-data="initSliderComponent()" x-defer="intersect">
        <div x-init="$nextTick(() =&gt; calcPageSize())" @resize.window.debounce="calcPageSize">
            <div class="w-[calc(100% + 16px)] -ml-2">
                <div data-slider data-p-slides class="relative flex flex-nowrap overflow-auto transition-all snap lg:gap-2" @scroll.debounce="calcActive">
                                            <div class="p-slider__item rounded-xs p-2.5 flex shrink-0 w-[calc(100%/1.5)] bg-white md:max-w-[25%] js_slide lg:max-w-none lg:w-[calc(100%/5-30px/5)]">
                            
    <form x-data="initPriceBox()" @update-prices-28735="updatePrice($event.detail);" @update-gallery-28735="$refs.gallery &amp;&amp; ($refs.gallery.src = $event.detail)" x-i4-ajax-cart action="https://www.espaceplaisir.fr/checkout/cart/add/uenc/aHR0cHM6Ly93d3cuZXNwYWNlcGxhaXNpci5mci85Mzktc2V4dG95cw~~/product/28735/" method="post" data-id="28735" data-sku="CONF-19257" data-type="configurable" class="product-item relative w-full flex flex-col group gap-2.5 lg:gap-6">
        <input name="form_key" type="hidden" value="tmSw4Q5FUk9VineT">        <input type="hidden" name="product" value="28735">

        
        <a class="product__link relative hover:text-black" href="https://www.espaceplaisir.fr/womanizer-premium-2.html">
            <img class="w-full object-contain text-transparent" x-ref="gallery" src="https://www.espaceplaisir.fr/media/catalog/product/i/m/imgproduit_wmz_premium2.jpg?quality=80&amp;fit=bounds&amp;height=480&amp;width=480" loading="lazy" width="480" height="480" alt="" title="">
            
                                <div class="label-container absolute inset-0 grid grid-flow-col grid-cols-3 grid-rows-3">
        
            <div class="relative group/item" style="width:72px; height:72px; margin: 0 0 0 -8px; font-size: 14px; color: #000000;grid-area:3/3">
        <div class="whitespace-nowrap absolute left-1/2 top-1/2 -translate-y-1/2 -translate-x-1/2">
            </div>
            <img class="w-full h-full" src="https://www.espaceplaisir.fr/media/amasty/amlabel/0526_macaron_bundlePLP_V3_1.png" loading="lazy" title="Womanizer Mini Offert Macaron " alt="Womanizer Mini Offert Macaron ">
    
    
            </div>
        </div>
                    </a>
        <div class="relative text-center flex flex-col text-sm items-center h-full product-info-block product-info-block__container">
            <div class="text-sm text-center line-clamp-1 leading-6 mb-2 min-h-6 product-info-block">
                Womanizer            </div>
            <p class="product__name text-sm font-bold mb-2 min-h-8 leading-5 font-Averta">
                <a class="product__link text-center line-clamp-2 font-bold product-info-block" href="https://www.espaceplaisir.fr/womanizer-premium-2.html">
                    Womanizer Premium 2 stimulateur clitoridien                </a>
            </p>
            <div class="review min-h-5 w-full flex flex-col items-center">
                
<div class="r-stars">
    <div class="r-stars__box">
        <i class="r-stars__empty"></i>
        <i class="r-stars__full" style="width:90%"></i>
    </div>
    <span class="text-sm leading-none">(1020)</span>
</div>
            </div>
            <div class="text-grey-dark">
                <div class="price-box price-final_price" data-role="priceBox" data-product-id="28736" data-price-box="product-id-28736">

<div class="special-price-container special-price-exist           simple-product">
    <span class="special-price">
        
<span class="price-container            price-final_price tax weee">
            <span class="price-label">
            Prix sp&eacute;cial        </span>
        <span id="product-price-28736" data-price-amount="139" data-price-type="finalPrice" class="price-wrapper text-sm">
        <span class="price">139,00&nbsp;&euro;</span>    </span>
                <meta content="139">
        <meta content="EUR">
    </span>
    </span>
    <span class="final-price-box">
        
<span class="price-container            price-final_price tax weee">
            <span class="price-label">
            Prix normal        </span>
        <span id="old-price-28736" data-price-amount="179" data-price-type="oldPrice" class="price-wrapper text-sm">
        <span class="price">179,00&nbsp;&euro;</span>    </span>
                <meta content="179">
        <meta content="EUR">
    </span>
    </span>
</div>

</div>            </div>
            <div class="w-full min-h-[2rem] lg:block mt-auto">
                                    <div class="mb-4 lg:mb-5 block">
                            <script>
        function initConfigurableSwatchOptions_28735() {
            return {
                ...initConfigurableOptions('28735', {"attributes":{"275":{"id":"275","code":"couleur","label":"Couleur","options":[{"id":"53","label":"Noir","products":["28736"]},{"id":"45","label":"Bleu","products":["28739"]},{"id":"70","label":"Rose","products":["28740"]},{"id":"65","label":"Blanc","products":["28738"]},{"id":"77","label":"Bordeaux","products":["28737"]}],"position":"0"}},"template":"<%- data.price %>\u00a0\u20ac","currencyFormat":"%s\u00a0\u20ac","optionPrices":{"28736":{"baseOldPrice":{"amount":149.16666566667},"oldPrice":{"amount":179},"basePrice":{"amount":115.83333233333},"finalPrice":{"amount":139},"tierPrices":[],"msrpPrice":{"amount":0}},"28739":{"baseOldPrice":{"amount":149.16666566667},"oldPrice":{"amount":179},"basePrice":{"amount":115.83333233333},"finalPrice":{"amount":139},"tierPrices":[],"msrpPrice":{"amount":0}},"28740":{"baseOldPrice":{"amount":149.16666566667},"oldPrice":{"amount":179},"basePrice":{"amount":115.83333233333},"finalPrice":{"amount":139},"tierPrices":[],"msrpPrice":{"amount":0}},"28738":{"baseOldPrice":{"amount":149.16666566667},"oldPrice":{"amount":179},"basePrice":{"amount":115.83333233333},"finalPrice":{"amount":139},"tierPrices":[],"msrpPrice":{"amount":0}},"28737":{"baseOldPrice":{"amount":149.16666566667},"oldPrice":{"amount":179},"basePrice":{"amount":115.83333233333},"finalPrice":{"amount":139},"tierPrices":[],"msrpPrice":{"amount":0}}},"priceFormat":{"pattern":"%s\u00a0\u20ac","precision":2,"requiredPrecision":2,"decimalSymbol":",","groupSymbol":"\u202f","groupLength":3,"integerRequired":false},"prices":{"baseOldPrice":{"amount":149.16666566667},"oldPrice":{"amount":179},"basePrice":{"amount":115.83333233333},"finalPrice":{"amount":139}},"productId":"28735","chooseText":"Choisissez une option...","images":[],"index":{"28736":{"275":"53"},"28739":{"275":"45"},"28740":{"275":"70"},"28738":{"275":"65"},"28737":{"275":"77"}},"salable":[],"canDisplayShowOutOfStockStatus":false,"preSelectedGallery":[],"channel":"website","salesChannelCode":"espace_plaisir_fo","sku":{"28736":"WZ212SG9","28739":"WZ212SG5","28740":"WZ212SG7","28738":"WZ212SG8","28737":"WZ212SGB"},"label_reload":"https:\/\/www.espaceplaisir.fr\/amasty_label\/ajax\/label\/","label_category":".product-image-container, .product-item-photo, .cdz-product-top","label_product":".fotorama__stage, #amasty-main-container","original_product_id":"28735","defaultValues":{"275":"53"}}),
                ...initSwatchOptions({"275":{"53":{"type":2,"value":"https:\/\/www.espaceplaisir.fr\/media\/catalog\/product\/i\/m\/imgproduit_wmz_premium2.jpg?quality=80&fit=bounds&height=100&width=100","thumb":"https:\/\/www.espaceplaisir.fr\/media\/catalog\/product\/i\/m\/imgproduit_wmz_premium2.jpg?quality=80&fit=bounds&height=90&width=110","label":"Noir"},"45":{"type":2,"value":"https:\/\/www.espaceplaisir.fr\/media\/catalog\/product\/8\/4\/84383_a46996_blue_000.jpg?quality=80&fit=bounds&height=100&width=100","thumb":"https:\/\/www.espaceplaisir.fr\/media\/catalog\/product\/8\/4\/84383_a46996_blue_000.jpg?quality=80&fit=bounds&height=90&width=110","label":"Bleu"},"70":{"type":2,"value":"https:\/\/www.espaceplaisir.fr\/media\/catalog\/product\/8\/4\/84385_a46996_pink_000_1.jpg?quality=80&fit=bounds&height=100&width=100","thumb":"https:\/\/www.espaceplaisir.fr\/media\/catalog\/product\/8\/4\/84385_a46996_pink_000_1.jpg?quality=80&fit=bounds&height=90&width=110","label":"Rose"},"65":{"type":2,"value":"https:\/\/www.espaceplaisir.fr\/media\/catalog\/product\/8\/4\/84386_a46996_grey_000.jpg?quality=80&fit=bounds&height=100&width=100","thumb":"https:\/\/www.espaceplaisir.fr\/media\/catalog\/product\/8\/4\/84386_a46996_grey_000.jpg?quality=80&fit=bounds&height=90&width=110","label":"Blanc"},"77":{"type":2,"value":"https:\/\/www.espaceplaisir.fr\/media\/catalog\/product\/w\/m\/wmz_premium_2_bordeaux_plp.jpg?quality=80&fit=bounds&height=100&width=100","thumb":"https:\/\/www.espaceplaisir.fr\/media\/catalog\/product\/w\/m\/wmz_premium_2_bordeaux_plp.jpg?quality=80&fit=bounds&height=90&width=110","label":"Bordeaux"},"additional_data":"{\"swatch_input_type\":\"visual\",\"update_product_preview_image\":\"1\",\"use_product_image_for_swatch\":\"1\"}"}}),
                mediaCallback: "https\u003A\u002F\u002Fwww.espaceplaisir.fr\u002Fswatches\u002Fajax\u002Fmedia\u002F",
                changeOption(optionId, value, skipUpdateGallery) {
                    this.selectedValues[optionId] = value;
                    this.findSimpleIndex();
                    this.findAllowedAttributeOptions();
                    this.updatePrices();
                    !skipUpdateGallery && this.updateGallery();

                    const detail = {
                        productId: this.productId,
                        optionId: optionId,
                        value: value,
                        productIndex: this.productIndex,
                        selectedValues: this.selectedValues,
                        candidates: this.findProductIdsForPartialSelection(this.selectedValues),
                        variationSku: this.optionConfig.sku[this.productIndex]
                    };

                    this.$root.dispatchEvent(new CustomEvent('configurable-selection-changed', { detail, bubbles: true }));
                    this.$root.dispatchEvent(new CustomEvent(`configurable-selection-changed-${this.productId}`, { detail, bubbles: true }));
                },
                updateGallery() {
                    if (!this.productIndex) {
                        return;
                    }

                    fetch(`${this.mediaCallback}?product_id=${this.productIndex}&isAjax=true`, {
                            method: 'GET',
                            headers: {
                                'Content-Type': 'application/json',
                                'X-Requested-With': 'XMLHttpRequest'
                            }
                        }
                    ).then(response => {
                            return response.json()
                        }
                    ).then(data => {
                        if (data.errors) {
                            // non critical failure only console logged
                            console.warn(data.errors);
                        } else {
                            const image = data && data.medium;

                            image && this.$root.dispatchEvent(
                                new CustomEvent(
                                    "update-gallery-28735",
                                    {detail: image, bubbles: true}
                                )
                            );
                        }
                    }).catch(error => {
                        console.warn(error)
                    });
                },
                preselectQuerystringItems() {
                    // pre-select option like ?size=167
                    const urlQueryParams = new URLSearchParams(window.location.search.replace('?', ''));
                    Object.values(this.optionConfig.attributes).map(attribute => {
                        // Don't update images on load, since PLPs already set the main image to the selected options
                        const skipUpdateGallery = true;
                        urlQueryParams.get(attribute.code) &&
                        this.changeOption(attribute.id, urlQueryParams.get(attribute.code), skipUpdateGallery);
                    });
                }
            };
        }

    </script>

    <div x-data="initConfigurableSwatchOptions_28735()" x-init="findAllowedAttributeOptions();" x-intersect="showSwatches = true" @private-content-loaded.window="onGetCartData($event.detail.data)" class="relative">
        <div>
                            
                                <div class="swatch-attribute-options swatch-attribute mb-1  couleur">
                    <template x-if="showSwatches">
                        <div class="flex flex-wrap justify-center gap-1" role="radiogroup" x-data="{countOfOptions: Object.keys(optionConfig.attributes[275].options).length}">
                            <label class="sr-only" for="attributecouleur">
                                Couleur                            </label>
                            <template x-for="(item, index) in optionConfig.attributes[275].options" :key="item.id">
                                
<div :class="{    'opacity-0 absolute size-0 -z-1' : index &gt;= numberToShow,    'opacity-40 out-of-stock-swatch' : checkStatusOfItem(275, item.id)}">
    <template x-if="optionIsEnabled(275, item.id) &amp;&amp; optionIsActive(275, item.id)">
        <label @click="swatchImgListener(275, item.id)" :for="'attribute-option-28735-'+item.id" class="swatch-option flex justify-center relative border-2 border-transparent mb-0 font-normal" :data-sku="optionConfig.sku[productIndex]" :class="{                'size-8 rounded-btn border' : !isTextSwatch(275, item.id),                [getTypeSwatches(275, item.id)]: true,                '!border-pink text-pink selected active': selectedValues[275] === item.id &amp;&amp; !isTextSwatch(275, item.id),                'hover:border-optimo-darker': !isTextSwatch(275, item.id)            }" :style="getSwatchBackgroundStyle('275',item.id)" @mouseenter.self="activeTooltipItem = {                    attribute: '275',                    item: item.id                }; tooltipPositionElement = $event.target;" @mouseleave.self="activeTooltipItem = false;">
            <input :id="'attribute-option-28735-'+item.id" :value="item.id" name="super_attribute[275]" type="radio" class="-z-1 absolute opacity-0 h-0" @change="changeOption(275, $event.target.value)" x-model="selectedValues[275]" :required="getAllowedAttributeOptions(275)                .filter(option =&gt; selectedValues[option]).length === 0" :aria-label="getSwatchText(275, item.id)" aria-describedby="attribute-label-28735-275">
            <div x-html="getSwatchText(275, item.id)" class="swatch-option__text flex items-center justify-center min-w-10 h-5 border border-grey                        rounded py-0 px-2 whitespace-nowrap text-black hover:border-optimo-darker" :class="{                 'sr-only' : !isTextSwatch(275, item.id),                 'border-optimo border-1 selected text-pink': updateConfigurableOptions(selectedValues[275] === item.id)                 }"></div>
        </label>
    </template>

    <template x-if="optionIsEnabled(275, item.id) &amp;&amp; !optionIsActive(275, item.id)">
        <div class="swatch-option relative swatch-option border-2 border-transparent" :class="{                'size-4 rounded-btn': !isTextSwatch(275, item.id),                [getTypeSwatches(275, item.id)]: true,                'hidden': index &gt;= numberToShow,                'opacity-50 select-none border-container-darker': !isTextSwatch(275, item.id)            }" :style="getSwatchBackgroundStyle('275',item.id)">
            <div x-html="getSwatchText(275, item.id)" class="swatch-option__text whitespace-nowrap" :class="{                    'sr-only' : !isTextSwatch(275, item.id),                    'swatch-option__text flex items-center justify-center border rounded min-w-10 h-5 text-sm border-grey-light line-through' : isTextSwatch(275, item.id)                 }"></div>
            <svg class="absolute inset-0 w-full h-full text-grey-light bg-white bg-opacity-25">
                <line x1="0" y1="100%" x2="100%" y2="0" class="stroke-current stroke-1"></line>
            </svg>
        </div>
    </template>
</div>
                            </template>
                            <template x-if="numberToShow &lt; countOfOptions">
                                <a href="https://www.espaceplaisir.fr/womanizer-premium-2.html" title="Plus" class="flex items-center w-6 h-6 rounded-full bg-grey-lighter">
                                    <svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewbox="0 0 24 24" class="size-4 ml-2 bg-1 rounded-big" width="16" height="16" aria-hidden="true"><path d="m16.1836 12.9933-4.608-.1266-5.5476-.16h-.7197c-.4898 0-.9896 0-1.4894-.0534-.2799-.0333-.4998-.2066-.6697-.3466-.2099-.1667-.2-.4267.04-.58.17-.1067.3998-.26.6697-.2734 3.3386-.16 6.8571-.3066 10.7454-.4533l2.8088.0667h.1999c.7197 0 1.4594 0 2.1791.08.4098.0466.7297.3.9896.5066.3099.2467.2899.6334-.06.8534-.2499.16-.5797.38-.9796.4-.0899 0-.1699.0066-.2599.0133-.6797.0267-1.3794.0467-2.0691.08h-1.2295v-.0067Z"></path><path d="m12.9933 7.8163-.1266 4.6081-.16 5.5476v.7197c0 .4898 0 .9896-.0534 1.4894-.0333.2799-.2066.4998-.3466.6697-.1667.2099-.4267.1999-.58-.04-.1067-.1699-.26-.3998-.2734-.6697-.16-3.3386-.3066-6.8571-.4533-10.7454l.0667-2.8088v-.2c0-.7196 0-1.4593.08-2.179.0466-.4098.3-.7297.5066-.9896.2467-.3098.6334-.2899.8534.06.16.2499.38.5797.4.9796 0 .09.0066.1699.0133.2599.0267.6797.0467 1.3794.08 2.069V7.8164h-.0067Z"></path></svg>
                                </a>
                            </template>
                        </div>
                    </template>
                </div>
                    </div>
                    <template x-if="isTooltipVisible()">
    <div @resize.window="activeTooltipItem = false">
        <div class="absolute shadow-box2" :style="getTooltipPosition()">
            <div x-ref="content" class="absolute top-0 left-0 z-10 min-w-20 p-2 -mt-6 text-sm leading-tight text-black                    transform -translate-x-1/3 -translate-y-full bg-white border border-grey-light text-center">
                <template x-if="isVisualSwatch(activeTooltipItem.attribute, activeTooltipItem.item)">
                    <div class="inline-block" :style="getTooltipImageStyle(activeTooltipItem.attribute, activeTooltipItem.item)"></div>
                </template>
                <span class="mx-2 text-lg font-semibold whitespace-nowrap" x-html="getTooltipLabel()"></span>
            </div>
        </div>
        <div class="absolute flex pointer-events-none" :style="getTooltipArrowPosition()">
            <svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" viewbox="0 0 256 256" width="16" height="16" aria-hidden="true">
  <path fill="#999" d="M254.307 69.55a9.806 9.806 0 0 0-2.88-6.956c-3.84-3.84-10.069-3.84-13.907 0l-109.663 109.66-109.66-109.66c-3.842-3.84-10.069-3.84-13.91 0-3.839 3.842-3.839 10.069 0 13.91l116.615 116.615c3.838 3.841 10.068 3.841 13.907 0L251.424 76.504a9.797 9.797 0 0 0 2.883-6.955z"></path>
</svg>
        </div>
    </div>
</template>
            </div>
                    </div>
                                    <div class="product__actions flex gap-2">
                    <button x-ref="submit" class="btn btn-tertiary text-sm px-1 truncate w-full min-w-auto transition-all block" aria-label="Ajouter au panier Womanizer Premium 2 stimulateur clitoridien">
                <span class="text-addtocart hidden lg:block">
                    Ajouter au panier                </span>
                <span class="icons-addtocart flex gap-2 justify-center items-center lg:hidden">
                    <svg xmlns="http://www.w3.org/2000/svg" id="Calque_2" fill="currentColor" viewbox="0 0 18 18" width="17" height="17" aria-hidden="true"><g id="SYSTEM_2"><g id="Editor_2"><g id="icon_add_2"><path d="m13.19,10.49l-4.61-.19c-1.85-.08-3.7-.16-5.55-.24-.24,0-.48,0-.72,0-.49,0-.99,0-1.49-.08-.28-.05-.5-.31-.67-.52-.21-.25-.2-.64.04-.87.17-.16.4-.39.67-.41,3.34-.24,6.86-.46,10.75-.68l2.81.1h.2c.72,0,1.46,0,2.18.12.41.07.73.45.99.76.31.37.29.95-.06,1.28-.25.24-.58.57-.98.6-.09,0-.17.01-.26.02-.68.04-1.38.07-2.07.12h-.57c-.26,0-.46,0-.66,0Z"></path><path d="m10.49,4.81l-.19,4.61c-.08,1.85-.16,3.7-.24,5.55,0,.24,0,.48,0,.72,0,.49,0,.99-.08,1.49-.05.28-.31.5-.52.67-.25.21-.64.2-.87-.04-.16-.17-.39-.4-.41-.67-.24-3.34-.46-6.86-.68-10.75l.1-2.81v-.2c0-.72,0-1.46.12-2.18.07-.41.45-.73.76-.99.37-.31.95-.29,1.28.06.24.25.57.58.6.98,0,.09.01.17.02.26.04.68.07,1.38.12,2.07v.57c0,.26,0,.46,0,.66Z"></path></g></g></g></svg>
                    <svg xmlns="http://www.w3.org/2000/svg" id="Calque_2" fill="currentColor" viewbox="0 0 15 20" width="18" height="19" aria-hidden="true"><g id="BUSINESS_2"><g id="Finance_Payment_2"><g id="icon_cart_2"><path d="m4.48,3.1c.07-.93.58-1.82,1.36-2.39C6.61.14,7.64-.11,8.6.04c1.17.16,2.19.93,2.65,1.93.25.48.31,1.08.29,1.55l-.02,1.4v.73c0,.49,0,1-.04,1.5-.02.29-.13.5-.21.68-.1.21-.26.2-.36-.04-.07-.17-.16-.4-.17-.67-.02-.84-.05-1.7-.07-2.56-.01-.43-.03-.86-.04-1.3-.02-.38-.14-.75-.34-1.08-.41-.66-1.17-1.11-1.99-1.15-.82-.05-1.66.31-2.14.96-.25.3-.4.66-.46,1.03-.02.09-.02.19-.03.28v.35s-.02.71-.02.71v.2c0,.72,0,1.47-.05,2.2-.03.41-.18.74-.31,1-.15.31-.39.29-.52-.06-.1-.25-.23-.59-.25-.99,0-.09,0-.18,0-.26-.02-.69-.03-1.39-.05-2.09v-.57c0-.27-.01-.44.01-.7Z"></path><path d="m.23,17.58c.27-2,.51-4.02.74-6.04l.77-6.05.14-1.13c.05-.43.31-.7.7-.75.19-.02.43,0,.61,0h.34s1.35.01,1.35.01l2.71.02,5.61.04c.19,0,.33.05.46.13.15.11.2.24.26.4.05.18.05.36.08.54l.04.34.17,1.3.26,1.91c.17,1.29.36,2.62.49,3.92.08.75.03,1.33,0,1.81-.05.57-.24.55-.44-.06-.14-.43-.33-1.02-.43-1.72-.19-1.28-.38-2.58-.59-3.94-.1-.68-.2-1.38-.31-2.1-.05-.36-.11-.73-.16-1.1l-.05-.3c0-.08-.08-.08-.14-.07-1.52.02-3.18.04-4.94.07-.91.01-1.84.02-2.8.03-.48,0-.96.01-1.45.02-.23,0-.57,0-.52,0-.04,0-.07.02-.06.07-.13,1.2-.27,2.53-.43,3.94-.17,1.49-.33,3.08-.48,4.68l-.38,3.12-.21,1.56-.03.23v.02s0,.02.01.02h.02s.23,0,.23,0h.58s.51,0,.51,0c1.83,0,3.74,0,5.58.06,1.05.04,1.87.23,2.54.38.79.19.74.48-.15.65-.63.12-1.5.29-2.51.3-.22,0-.44,0-.65,0-1.75.02-3.54.04-5.32.06H.88c-.19,0-.35-.06-.47-.13-.09-.05-.19-.14-.27-.25-.07-.11-.09-.16-.12-.29-.05-.1,0-.26,0-.4.01-.14.04-.28.06-.42.05-.32.09-.62.13-.92Z"></path></g></g></g></svg>
                </span>
            </button>
                <div>
            
    <button x-data="initWishlist()" x-on:click.prevent="toggleWishlist" aria-label="Ajouter &agrave; la liste de souhaits" type="button" class="wishlist-btn text-black p-3 hover:bg-pink-dark rounded-btn" :class="isInWishlist() ? '!bg-pink-dark lg:!bg-pink-light' : 'bg-pink-light'" x-on:class="{ 'pointer-events-none': loading }">
        <span x-cloak x-show="!isInWishlist()">
            <svg class="size-6 text-optimo-darker" :class="{ '!hidden': loading }" aria-hidden="true">
                <use href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/i4-sprite.svg#ico-wishlist"></use>
            </svg>
        </span>
        <span x-cloak x-show="isInWishlist()">
            <svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewbox="0 0 24 24" class="size-6 text-optimo-darker" width="24" height="24" aria-hidden="true" :class="{ '!hidden': loading }"><path fill="#FF5C6E" d="M12.113 5.598c.03-.07.02-.06.09-.19.09-.18.19-.36.33-.54.5-.72 1.249-1.269 2.058-1.519.939-.29 1.688-.13 2.228.07.64.28.49.44-.19.43-.49.02-1.139.15-1.808.42-.44.18-.85.45-1.18.799-.16.18-.309.37-.429.59-.06.14-.11.17-.19.41-.06.25-.17.4-.2.739-.2 1.509-.49 1.429-.639 1.549-.14.06-.35.04-.42 0-.3-.11-.51-.66-.55-1.08-.04-.28-.11-.48-.159-.729-.05-.25-.12-.46-.22-.62-.1-.2-.23-.37-.35-.54-.27-.339-.609-.619-.979-.829-.749-.43-1.678-.51-2.567-.3C5.159 4.589 4 6.528 4.33 8.447c.2 1.968 1.409 3.797 2.757 5.516 1.39 1.709 2.978 3.348 4.636 4.977.37.37.2.2.24.25.04-.04-.12.12.25-.23.52-.49 1.01-1 1.509-1.5a49.169 49.169 0 0 0 2.827-3.137l.37-.47c1.269-1.689 2.478-3.598 2.697-5.556.12-1.1.02-1.979-.24-2.708-.16-.42-.23-.66-.11-.72.1-.05.41.07.78.53.52.62 1.08 1.789.93 3.168-.02.3-.06.59-.13.859-.5 2.278-1.809 4.147-3.118 5.856l-.04.06c-.35.45-.72.87-1.089 1.3-.53.589-.95 1.058-1.379 1.498-.41.43-.829.85-1.249 1.27l-.639.619-.34.33c-.21.18-.41.44-.63.55-.419.219-.928.04-1.298-.44l-.7-.71-1.228-1.28c-1.619-1.728-3.218-3.497-4.516-5.575-.77-1.24-1.41-2.639-1.569-4.167-.08-.74-.09-1.55.15-2.319.22-.77.63-1.479 1.189-2.058.55-.57 1.279-1 2.058-1.19a5.22 5.22 0 0 1 2.328-.07c.78.17 1.509.56 2.088 1.11.29.27.53.59.75.929.06.08.09.17.14.26l.05.1.05.14.04.1c.04.11.07.17.07.17s.06-.09.149-.32v.01Z"></path><path fill="#FF5C6E" stroke="#FF5C6E" d="M16 3.502c-2.4 0-3.667 3-4 4.5-.5-2.167-2.4-6-6-4-4.5 2.5-1.5 7.5 0 9.5 1.2 1.6 4.5 5.333 6 7 1.666-1.834 5.5-6.3 7.5-9.5 2.5-4-.5-7.5-3.5-7.5Z"></path></svg>
        </span>
        <span x-cloak x-show="loading">
            <svg class="animate-spin text-optimo-darker size-6" aria-hidden="true">
                <use href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/i4-sprite.svg#ico-loader"></use>
            </svg>
        </span>
        <span class="hidden">
            Mes Favoris        </span>
    </button>
        </div>
    </div>

            </div>
                                </div>
    </form>

                        </div>
                                            <div class="p-slider__item rounded-xs p-2.5 flex shrink-0 w-[calc(100%/1.5)] bg-white md:max-w-[25%] js_slide lg:max-w-none lg:w-[calc(100%/5-30px/5)]">
                            
    <form x-data="{}" x-i4-ajax-cart action="https://www.espaceplaisir.fr/checkout/cart/add/uenc/aHR0cHM6Ly93d3cuZXNwYWNlcGxhaXNpci5mci8_Z2FkX2NhbXBhaWduaWQ9MjI5OTE4NjI0NzgmZ2FkX3NvdXJjZT0x/product/48224/" method="post" data-id="48224" data-sku="WZXY1SG9" data-type="simple" class="product-item relative w-full flex flex-col group gap-2.5 lg:gap-6">
        <input name="form_key" type="hidden" value="fsxyRUOcfsyIBu2o">        <input type="hidden" name="product" value="48224">

        
        <a class="product__link relative hover:text-black" href="https://www.espaceplaisir.fr/womanizer-next-we-vibe-sync-o-lust-luxury-collection-box.html">
            <img class="w-full object-contain text-transparent" x-ref="gallery" src="https://www.espaceplaisir.fr/media/catalog/product/8/7/87186_a49175_black_000.jpg?quality=80&amp;fit=bounds&amp;height=480&amp;width=480" loading="lazy" width="480" height="480" alt="Coffret sextoys Womanizer et We-Vibe Lust &amp; Luxury" title="Coffret sextoys Womanizer et We-Vibe Lust &amp; Luxury">
                    <div class="group/item special-label text-right flex justify-end items-start absolute right-3 top-3">
        <div class="whitespace-nowrap w-max px-1 py-2 label-block rounded-lg text-sm">
            - 37%
        </div>
    </div>

                                <div class="label-container absolute inset-0 grid grid-flow-col grid-cols-3 grid-rows-3">
        
            <div class="relative group/item" style="width:72px; height:72px; margin: 0 0 0 -8px; font-size: 14px; color: #000000;grid-area:3/3">
        <div class="whitespace-nowrap absolute left-1/2 top-1/2 -translate-y-1/2 -translate-x-1/2">
            </div>
            <img class="w-full h-full" src="https://www.espaceplaisir.fr/media/amasty/amlabel/0526_macaron_bundlePLP_V3_1.png" loading="lazy" title="Womanizer Mini Offert Macaron " alt="Womanizer Mini Offert Macaron ">
    
    
            </div>
        </div>
                    </a>
        <div class="relative text-center flex flex-col text-sm items-center h-full product-info-block product-info-block__container">
            <div class="text-sm text-center line-clamp-1 leading-6 mb-2 min-h-6 product-info-block">
                Womanizer            </div>
            <p class="product__name text-sm font-bold mb-2 min-h-8 leading-5 font-Averta">
                <a class="product__link text-center line-clamp-2 font-bold product-info-block" href="https://www.espaceplaisir.fr/womanizer-next-we-vibe-sync-o-lust-luxury-collection-box.html">
                    Coffret sextoys Womanizer et We-Vibe Lust &amp; Luxury                </a>
            </p>
            <div class="review min-h-5 w-full flex flex-col items-center">
                
<div class="r-stars">
    <div class="r-stars__box">
        <i class="r-stars__empty"></i>
        <i class="r-stars__full" style="width:88%"></i>
    </div>
    <span class="text-sm leading-none">(5)</span>
</div>
            </div>
            <div class="text-grey-dark">
                <div class="price-box price-final_price" data-role="priceBox" data-product-id="48224" data-price-box="product-id-48224">

<div class="special-price-container special-price-exist           simple-product">
    <span class="special-price">
        
<span class="price-container            price-final_price tax weee">
            <span class="price-label">
            Prix sp&eacute;cial        </span>
        <span id="product-price-48224" data-price-amount="239" data-price-type="finalPrice" class="price-wrapper">
        <span class="price">239,00&nbsp;&euro;</span>    </span>
                <meta content="239">
        <meta content="EUR">
    </span>
    </span>
    <span class="final-price-box">
        
<span class="price-container            price-final_price tax weee">
            <span class="price-label">
            Prix normal        </span>
        <span id="old-price-48224" data-price-amount="378" data-price-type="oldPrice" class="price-wrapper">
        <span class="price">378,00&nbsp;&euro;</span>    </span>
                <meta content="378">
        <meta content="EUR">
    </span>
    </span>
</div>

</div>            </div>
            <div class="w-full min-h-[2rem] lg:block mt-auto">
                                    <div class="mb-4 lg:mb-5 block">
                                            </div>
                                    <div class="product__actions flex gap-2">
                    <button x-ref="submit" class="btn btn-tertiary text-sm px-1 truncate w-full min-w-auto transition-all block" aria-label="Ajouter au panier Coffret sextoys Womanizer et We-Vibe Lust &amp; Luxury">
                <span class="text-addtocart hidden lg:block">
                    Ajouter au panier                </span>
                <span class="icons-addtocart flex gap-2 justify-center items-center lg:hidden">
                    <svg xmlns="http://www.w3.org/2000/svg" id="Calque_2" fill="currentColor" viewbox="0 0 18 18" width="17" height="17" aria-hidden="true"><g id="SYSTEM_2"><g id="Editor_2"><g id="icon_add_2"><path d="m13.19,10.49l-4.61-.19c-1.85-.08-3.7-.16-5.55-.24-.24,0-.48,0-.72,0-.49,0-.99,0-1.49-.08-.28-.05-.5-.31-.67-.52-.21-.25-.2-.64.04-.87.17-.16.4-.39.67-.41,3.34-.24,6.86-.46,10.75-.68l2.81.1h.2c.72,0,1.46,0,2.18.12.41.07.73.45.99.76.31.37.29.95-.06,1.28-.25.24-.58.57-.98.6-.09,0-.17.01-.26.02-.68.04-1.38.07-2.07.12h-.57c-.26,0-.46,0-.66,0Z"></path><path d="m10.49,4.81l-.19,4.61c-.08,1.85-.16,3.7-.24,5.55,0,.24,0,.48,0,.72,0,.49,0,.99-.08,1.49-.05.28-.31.5-.52.67-.25.21-.64.2-.87-.04-.16-.17-.39-.4-.41-.67-.24-3.34-.46-6.86-.68-10.75l.1-2.81v-.2c0-.72,0-1.46.12-2.18.07-.41.45-.73.76-.99.37-.31.95-.29,1.28.06.24.25.57.58.6.98,0,.09.01.17.02.26.04.68.07,1.38.12,2.07v.57c0,.26,0,.46,0,.66Z"></path></g></g></g></svg>
                    <svg xmlns="http://www.w3.org/2000/svg" id="Calque_2" fill="currentColor" viewbox="0 0 15 20" width="18" height="19" aria-hidden="true"><g id="BUSINESS_2"><g id="Finance_Payment_2"><g id="icon_cart_2"><path d="m4.48,3.1c.07-.93.58-1.82,1.36-2.39C6.61.14,7.64-.11,8.6.04c1.17.16,2.19.93,2.65,1.93.25.48.31,1.08.29,1.55l-.02,1.4v.73c0,.49,0,1-.04,1.5-.02.29-.13.5-.21.68-.1.21-.26.2-.36-.04-.07-.17-.16-.4-.17-.67-.02-.84-.05-1.7-.07-2.56-.01-.43-.03-.86-.04-1.3-.02-.38-.14-.75-.34-1.08-.41-.66-1.17-1.11-1.99-1.15-.82-.05-1.66.31-2.14.96-.25.3-.4.66-.46,1.03-.02.09-.02.19-.03.28v.35s-.02.71-.02.71v.2c0,.72,0,1.47-.05,2.2-.03.41-.18.74-.31,1-.15.31-.39.29-.52-.06-.1-.25-.23-.59-.25-.99,0-.09,0-.18,0-.26-.02-.69-.03-1.39-.05-2.09v-.57c0-.27-.01-.44.01-.7Z"></path><path d="m.23,17.58c.27-2,.51-4.02.74-6.04l.77-6.05.14-1.13c.05-.43.31-.7.7-.75.19-.02.43,0,.61,0h.34s1.35.01,1.35.01l2.71.02,5.61.04c.19,0,.33.05.46.13.15.11.2.24.26.4.05.18.05.36.08.54l.04.34.17,1.3.26,1.91c.17,1.29.36,2.62.49,3.92.08.75.03,1.33,0,1.81-.05.57-.24.55-.44-.06-.14-.43-.33-1.02-.43-1.72-.19-1.28-.38-2.58-.59-3.94-.1-.68-.2-1.38-.31-2.1-.05-.36-.11-.73-.16-1.1l-.05-.3c0-.08-.08-.08-.14-.07-1.52.02-3.18.04-4.94.07-.91.01-1.84.02-2.8.03-.48,0-.96.01-1.45.02-.23,0-.57,0-.52,0-.04,0-.07.02-.06.07-.13,1.2-.27,2.53-.43,3.94-.17,1.49-.33,3.08-.48,4.68l-.38,3.12-.21,1.56-.03.23v.02s0,.02.01.02h.02s.23,0,.23,0h.58s.51,0,.51,0c1.83,0,3.74,0,5.58.06,1.05.04,1.87.23,2.54.38.79.19.74.48-.15.65-.63.12-1.5.29-2.51.3-.22,0-.44,0-.65,0-1.75.02-3.54.04-5.32.06H.88c-.19,0-.35-.06-.47-.13-.09-.05-.19-.14-.27-.25-.07-.11-.09-.16-.12-.29-.05-.1,0-.26,0-.4.01-.14.04-.28.06-.42.05-.32.09-.62.13-.92Z"></path></g></g></g></svg>
                </span>
            </button>
                <div>
            
    <button x-data="initWishlist()" x-on:click.prevent="toggleWishlist" aria-label="Ajouter &agrave; la liste de souhaits" type="button" class="wishlist-btn text-black p-3 hover:bg-pink-dark rounded-btn" :class="isInWishlist() ? '!bg-pink-dark lg:!bg-pink-light' : 'bg-pink-light'" x-on:class="{ 'pointer-events-none': loading }">
        <span x-cloak x-show="!isInWishlist()">
            <svg class="size-6 text-optimo-darker" :class="{ '!hidden': loading }" aria-hidden="true">
                <use href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/i4-sprite.svg#ico-wishlist"></use>
            </svg>
        </span>
        <span x-cloak x-show="isInWishlist()">
            <svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewbox="0 0 24 24" class="size-6 text-optimo-darker" width="24" height="24" aria-hidden="true" :class="{ '!hidden': loading }"><path fill="#FF5C6E" d="M12.113 5.598c.03-.07.02-.06.09-.19.09-.18.19-.36.33-.54.5-.72 1.249-1.269 2.058-1.519.939-.29 1.688-.13 2.228.07.64.28.49.44-.19.43-.49.02-1.139.15-1.808.42-.44.18-.85.45-1.18.799-.16.18-.309.37-.429.59-.06.14-.11.17-.19.41-.06.25-.17.4-.2.739-.2 1.509-.49 1.429-.639 1.549-.14.06-.35.04-.42 0-.3-.11-.51-.66-.55-1.08-.04-.28-.11-.48-.159-.729-.05-.25-.12-.46-.22-.62-.1-.2-.23-.37-.35-.54-.27-.339-.609-.619-.979-.829-.749-.43-1.678-.51-2.567-.3C5.159 4.589 4 6.528 4.33 8.447c.2 1.968 1.409 3.797 2.757 5.516 1.39 1.709 2.978 3.348 4.636 4.977.37.37.2.2.24.25.04-.04-.12.12.25-.23.52-.49 1.01-1 1.509-1.5a49.169 49.169 0 0 0 2.827-3.137l.37-.47c1.269-1.689 2.478-3.598 2.697-5.556.12-1.1.02-1.979-.24-2.708-.16-.42-.23-.66-.11-.72.1-.05.41.07.78.53.52.62 1.08 1.789.93 3.168-.02.3-.06.59-.13.859-.5 2.278-1.809 4.147-3.118 5.856l-.04.06c-.35.45-.72.87-1.089 1.3-.53.589-.95 1.058-1.379 1.498-.41.43-.829.85-1.249 1.27l-.639.619-.34.33c-.21.18-.41.44-.63.55-.419.219-.928.04-1.298-.44l-.7-.71-1.228-1.28c-1.619-1.728-3.218-3.497-4.516-5.575-.77-1.24-1.41-2.639-1.569-4.167-.08-.74-.09-1.55.15-2.319.22-.77.63-1.479 1.189-2.058.55-.57 1.279-1 2.058-1.19a5.22 5.22 0 0 1 2.328-.07c.78.17 1.509.56 2.088 1.11.29.27.53.59.75.929.06.08.09.17.14.26l.05.1.05.14.04.1c.04.11.07.17.07.17s.06-.09.149-.32v.01Z"></path><path fill="#FF5C6E" stroke="#FF5C6E" d="M16 3.502c-2.4 0-3.667 3-4 4.5-.5-2.167-2.4-6-6-4-4.5 2.5-1.5 7.5 0 9.5 1.2 1.6 4.5 5.333 6 7 1.666-1.834 5.5-6.3 7.5-9.5 2.5-4-.5-7.5-3.5-7.5Z"></path></svg>
        </span>
        <span x-cloak x-show="loading">
            <svg class="animate-spin text-optimo-darker size-6" aria-hidden="true">
                <use href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/i4-sprite.svg#ico-loader"></use>
            </svg>
        </span>
        <span class="hidden">
            Mes Favoris        </span>
    </button>
        </div>
    </div>

            </div>
                                </div>
    </form>

                        </div>
                                            <div class="p-slider__item rounded-xs p-2.5 flex shrink-0 w-[calc(100%/1.5)] bg-white md:max-w-[25%] js_slide lg:max-w-none lg:w-[calc(100%/5-30px/5)]">
                            
    <form x-data="{}" x-i4-ajax-cart action="https://www.espaceplaisir.fr/checkout/cart/add/uenc/aHR0cHM6Ly93d3cuZXNwYWNlcGxhaXNpci5mci8_cmVmPUVFQzAzMDg0XzE3NjA1QTY0LTIzQkQtNEY4Ni04RTUyLUM0ODI0NTY1QjFBMCZrd2t1bml2PVA0QUQ0QjU2MDAwRjEwMC1jY3A0YWQ0YjU2MDAwZjFiMQ~~/product/47695/" method="post" data-id="47695" data-sku="6972677430456" data-type="simple" class="product-item relative w-full flex flex-col group gap-2.5 lg:gap-6">
        <input name="form_key" type="hidden" value="M1LcNDp71p7UNjkK">        <input type="hidden" name="product" value="47695">

        
        <a class="product__link relative hover:text-black" href="https://www.espaceplaisir.fr/lovense-lush-4.html">
            <img class="w-full object-contain text-transparent" x-ref="gallery" src="https://www.espaceplaisir.fr/media/catalog/product/8/7/87626_a49593_pink_000.jpg?quality=80&amp;fit=bounds&amp;height=480&amp;width=480" loading="lazy" width="480" height="480" alt="Lovense Lush 4 oeuf vibrant connect&eacute;" title="Lovense Lush 4 oeuf vibrant connect&eacute;">
                    <div class="group/item special-label text-right flex justify-end items-start absolute right-3 top-3">
        <div class="whitespace-nowrap w-max px-1 py-2 label-block rounded-lg text-sm">
            - 7%
        </div>
    </div>

                                <div class="label-container absolute inset-0 grid grid-flow-col grid-cols-3 grid-rows-3">
        
            <div class="relative group/item" style="border:2px solid #1d3766; background-color:#1d3766;padding-left:4px;padding-right:4px;padding-top:2px; padding-bottom:2px;text-align:center;font-weight:bold; border-radius:4px; width:fit-content;height:fit-content; font-size: 14px; color: #ffffff;grid-area:1/1">
        <div class="whitespace-nowrap">
        Top vente    </div>
    
    
            </div>
        </div>
                    </a>
        <div class="relative text-center flex flex-col text-sm items-center h-full product-info-block product-info-block__container">
            <div class="text-sm text-center line-clamp-1 leading-6 mb-2 min-h-6 product-info-block">
                Lovense            </div>
            <p class="product__name text-sm font-bold mb-2 min-h-8 leading-5 font-Averta">
                <a class="product__link text-center line-clamp-2 font-bold product-info-block" href="https://www.espaceplaisir.fr/lovense-lush-4.html">
                    Lovense Lush 4 oeuf vibrant connect&eacute;                </a>
            </p>
            <div class="review min-h-5 w-full flex flex-col items-center">
                
<div class="r-stars">
    <div class="r-stars__box">
        <i class="r-stars__empty"></i>
        <i class="r-stars__full" style="width:88%"></i>
    </div>
    <span class="text-sm leading-none">(1185)</span>
</div>
            </div>
            <div class="text-grey-dark">
                <div class="price-box price-final_price" data-role="priceBox" data-product-id="47695" data-price-box="product-id-47695">

<div class="special-price-container special-price-exist           simple-product">
    <span class="special-price">
        
<span class="price-container            price-final_price tax weee">
            <span class="price-label">
            Prix sp&eacute;cial        </span>
        <span id="product-price-47695" data-price-amount="129" data-price-type="finalPrice" class="price-wrapper">
        <span class="price">129,00&nbsp;&euro;</span>    </span>
                <meta content="129">
        <meta content="EUR">
    </span>
    </span>
    <span class="final-price-box">
        
<span class="price-container            price-final_price tax weee">
            <span class="price-label">
            Prix normal        </span>
        <span id="old-price-47695" data-price-amount="139" data-price-type="oldPrice" class="price-wrapper">
        <span class="price">139,00&nbsp;&euro;</span>    </span>
                <meta content="139">
        <meta content="EUR">
    </span>
    </span>
</div>

</div>            </div>
            <div class="w-full min-h-[2rem] lg:block mt-auto">
                                    <div class="mb-4 lg:mb-5 block">
                                            </div>
                                    <div class="product__actions flex gap-2">
                    <button x-ref="submit" class="btn btn-tertiary text-sm px-1 truncate w-full min-w-auto transition-all block" aria-label="Ajouter au panier Lovense Lush 4 oeuf vibrant connect&eacute;">
                <span class="text-addtocart hidden lg:block">
                    Ajouter au panier                </span>
                <span class="icons-addtocart flex gap-2 justify-center items-center lg:hidden">
                    <svg xmlns="http://www.w3.org/2000/svg" id="Calque_2" fill="currentColor" viewbox="0 0 18 18" width="17" height="17" aria-hidden="true"><g id="SYSTEM_2"><g id="Editor_2"><g id="icon_add_2"><path d="m13.19,10.49l-4.61-.19c-1.85-.08-3.7-.16-5.55-.24-.24,0-.48,0-.72,0-.49,0-.99,0-1.49-.08-.28-.05-.5-.31-.67-.52-.21-.25-.2-.64.04-.87.17-.16.4-.39.67-.41,3.34-.24,6.86-.46,10.75-.68l2.81.1h.2c.72,0,1.46,0,2.18.12.41.07.73.45.99.76.31.37.29.95-.06,1.28-.25.24-.58.57-.98.6-.09,0-.17.01-.26.02-.68.04-1.38.07-2.07.12h-.57c-.26,0-.46,0-.66,0Z"></path><path d="m10.49,4.81l-.19,4.61c-.08,1.85-.16,3.7-.24,5.55,0,.24,0,.48,0,.72,0,.49,0,.99-.08,1.49-.05.28-.31.5-.52.67-.25.21-.64.2-.87-.04-.16-.17-.39-.4-.41-.67-.24-3.34-.46-6.86-.68-10.75l.1-2.81v-.2c0-.72,0-1.46.12-2.18.07-.41.45-.73.76-.99.37-.31.95-.29,1.28.06.24.25.57.58.6.98,0,.09.01.17.02.26.04.68.07,1.38.12,2.07v.57c0,.26,0,.46,0,.66Z"></path></g></g></g></svg>
                    <svg xmlns="http://www.w3.org/2000/svg" id="Calque_2" fill="currentColor" viewbox="0 0 15 20" width="18" height="19" aria-hidden="true"><g id="BUSINESS_2"><g id="Finance_Payment_2"><g id="icon_cart_2"><path d="m4.48,3.1c.07-.93.58-1.82,1.36-2.39C6.61.14,7.64-.11,8.6.04c1.17.16,2.19.93,2.65,1.93.25.48.31,1.08.29,1.55l-.02,1.4v.73c0,.49,0,1-.04,1.5-.02.29-.13.5-.21.68-.1.21-.26.2-.36-.04-.07-.17-.16-.4-.17-.67-.02-.84-.05-1.7-.07-2.56-.01-.43-.03-.86-.04-1.3-.02-.38-.14-.75-.34-1.08-.41-.66-1.17-1.11-1.99-1.15-.82-.05-1.66.31-2.14.96-.25.3-.4.66-.46,1.03-.02.09-.02.19-.03.28v.35s-.02.71-.02.71v.2c0,.72,0,1.47-.05,2.2-.03.41-.18.74-.31,1-.15.31-.39.29-.52-.06-.1-.25-.23-.59-.25-.99,0-.09,0-.18,0-.26-.02-.69-.03-1.39-.05-2.09v-.57c0-.27-.01-.44.01-.7Z"></path><path d="m.23,17.58c.27-2,.51-4.02.74-6.04l.77-6.05.14-1.13c.05-.43.31-.7.7-.75.19-.02.43,0,.61,0h.34s1.35.01,1.35.01l2.71.02,5.61.04c.19,0,.33.05.46.13.15.11.2.24.26.4.05.18.05.36.08.54l.04.34.17,1.3.26,1.91c.17,1.29.36,2.62.49,3.92.08.75.03,1.33,0,1.81-.05.57-.24.55-.44-.06-.14-.43-.33-1.02-.43-1.72-.19-1.28-.38-2.58-.59-3.94-.1-.68-.2-1.38-.31-2.1-.05-.36-.11-.73-.16-1.1l-.05-.3c0-.08-.08-.08-.14-.07-1.52.02-3.18.04-4.94.07-.91.01-1.84.02-2.8.03-.48,0-.96.01-1.45.02-.23,0-.57,0-.52,0-.04,0-.07.02-.06.07-.13,1.2-.27,2.53-.43,3.94-.17,1.49-.33,3.08-.48,4.68l-.38,3.12-.21,1.56-.03.23v.02s0,.02.01.02h.02s.23,0,.23,0h.58s.51,0,.51,0c1.83,0,3.74,0,5.58.06,1.05.04,1.87.23,2.54.38.79.19.74.48-.15.65-.63.12-1.5.29-2.51.3-.22,0-.44,0-.65,0-1.75.02-3.54.04-5.32.06H.88c-.19,0-.35-.06-.47-.13-.09-.05-.19-.14-.27-.25-.07-.11-.09-.16-.12-.29-.05-.1,0-.26,0-.4.01-.14.04-.28.06-.42.05-.32.09-.62.13-.92Z"></path></g></g></g></svg>
                </span>
            </button>
                <div>
            
    <button x-data="initWishlist()" x-on:click.prevent="toggleWishlist" aria-label="Ajouter &agrave; la liste de souhaits" type="button" class="wishlist-btn text-black p-3 hover:bg-pink-dark rounded-btn" :class="isInWishlist() ? '!bg-pink-dark lg:!bg-pink-light' : 'bg-pink-light'" x-on:class="{ 'pointer-events-none': loading }">
        <span x-cloak x-show="!isInWishlist()">
            <svg class="size-6 text-optimo-darker" :class="{ '!hidden': loading }" aria-hidden="true">
                <use href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/i4-sprite.svg#ico-wishlist"></use>
            </svg>
        </span>
        <span x-cloak x-show="isInWishlist()">
            <svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewbox="0 0 24 24" class="size-6 text-optimo-darker" width="24" height="24" aria-hidden="true" :class="{ '!hidden': loading }"><path fill="#FF5C6E" d="M12.113 5.598c.03-.07.02-.06.09-.19.09-.18.19-.36.33-.54.5-.72 1.249-1.269 2.058-1.519.939-.29 1.688-.13 2.228.07.64.28.49.44-.19.43-.49.02-1.139.15-1.808.42-.44.18-.85.45-1.18.799-.16.18-.309.37-.429.59-.06.14-.11.17-.19.41-.06.25-.17.4-.2.739-.2 1.509-.49 1.429-.639 1.549-.14.06-.35.04-.42 0-.3-.11-.51-.66-.55-1.08-.04-.28-.11-.48-.159-.729-.05-.25-.12-.46-.22-.62-.1-.2-.23-.37-.35-.54-.27-.339-.609-.619-.979-.829-.749-.43-1.678-.51-2.567-.3C5.159 4.589 4 6.528 4.33 8.447c.2 1.968 1.409 3.797 2.757 5.516 1.39 1.709 2.978 3.348 4.636 4.977.37.37.2.2.24.25.04-.04-.12.12.25-.23.52-.49 1.01-1 1.509-1.5a49.169 49.169 0 0 0 2.827-3.137l.37-.47c1.269-1.689 2.478-3.598 2.697-5.556.12-1.1.02-1.979-.24-2.708-.16-.42-.23-.66-.11-.72.1-.05.41.07.78.53.52.62 1.08 1.789.93 3.168-.02.3-.06.59-.13.859-.5 2.278-1.809 4.147-3.118 5.856l-.04.06c-.35.45-.72.87-1.089 1.3-.53.589-.95 1.058-1.379 1.498-.41.43-.829.85-1.249 1.27l-.639.619-.34.33c-.21.18-.41.44-.63.55-.419.219-.928.04-1.298-.44l-.7-.71-1.228-1.28c-1.619-1.728-3.218-3.497-4.516-5.575-.77-1.24-1.41-2.639-1.569-4.167-.08-.74-.09-1.55.15-2.319.22-.77.63-1.479 1.189-2.058.55-.57 1.279-1 2.058-1.19a5.22 5.22 0 0 1 2.328-.07c.78.17 1.509.56 2.088 1.11.29.27.53.59.75.929.06.08.09.17.14.26l.05.1.05.14.04.1c.04.11.07.17.07.17s.06-.09.149-.32v.01Z"></path><path fill="#FF5C6E" stroke="#FF5C6E" d="M16 3.502c-2.4 0-3.667 3-4 4.5-.5-2.167-2.4-6-6-4-4.5 2.5-1.5 7.5 0 9.5 1.2 1.6 4.5 5.333 6 7 1.666-1.834 5.5-6.3 7.5-9.5 2.5-4-.5-7.5-3.5-7.5Z"></path></svg>
        </span>
        <span x-cloak x-show="loading">
            <svg class="animate-spin text-optimo-darker size-6" aria-hidden="true">
                <use href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/i4-sprite.svg#ico-loader"></use>
            </svg>
        </span>
        <span class="hidden">
            Mes Favoris        </span>
    </button>
        </div>
    </div>

            </div>
                                </div>
    </form>

                        </div>
                                            <div class="p-slider__item rounded-xs p-2.5 flex shrink-0 w-[calc(100%/1.5)] bg-white md:max-w-[25%] js_slide lg:max-w-none lg:w-[calc(100%/5-30px/5)]">
                            
    <form x-data="{}" x-i4-ajax-cart action="https://www.espaceplaisir.fr/checkout/cart/add/uenc/aHR0cHM6Ly93d3cuZXNwYWNlcGxhaXNpci5mci8_Z2FkX2NhbXBhaWduaWQ9MjI5OTE4NjI0NzgmZ2FkX3NvdXJjZT0x/product/48383/" method="post" data-id="48383" data-sku="AWSM1SG9" data-type="simple" class="product-item relative w-full flex flex-col group gap-2.5 lg:gap-6">
        <input name="form_key" type="hidden" value="fsxyRUOcfsyIBu2o">        <input type="hidden" name="product" value="48383">

        
        <a class="product__link relative hover:text-black" href="https://www.espaceplaisir.fr/arcwave-zing.html">
            <img class="w-full object-contain text-transparent" x-ref="gallery" src="https://www.espaceplaisir.fr/media/catalog/product/z/i/zing_product_with-ring_3840x2160.jpg?quality=80&amp;fit=bounds&amp;height=480&amp;width=480" loading="lazy" width="480" height="480" alt="Masturbateur vibrant Arcwave Zing" title="Masturbateur vibrant Arcwave Zing">
                    <div class="group/item special-label text-right flex justify-end items-start absolute right-3 top-3">
        <div class="whitespace-nowrap w-max px-1 py-2 label-block rounded-lg text-sm">
            - 20%
        </div>
    </div>

                                                </a>
        <div class="relative text-center flex flex-col text-sm items-center h-full product-info-block product-info-block__container">
            <div class="text-sm text-center line-clamp-1 leading-6 mb-2 min-h-6 product-info-block">
                Arcwave            </div>
            <p class="product__name text-sm font-bold mb-2 min-h-8 leading-5 font-Averta">
                <a class="product__link text-center line-clamp-2 font-bold product-info-block" href="https://www.espaceplaisir.fr/arcwave-zing.html">
                    Masturbateur vibrant Arcwave Zing                </a>
            </p>
            <div class="review min-h-5 w-full flex flex-col items-center">
                
<div class="r-stars">
    <div class="r-stars__box">
        <i class="r-stars__empty"></i>
        <i class="r-stars__full" style="width:86%"></i>
    </div>
    <span class="text-sm leading-none">(38)</span>
</div>
            </div>
            <div class="text-grey-dark">
                <div class="price-box price-final_price" data-role="priceBox" data-product-id="48383" data-price-box="product-id-48383">

<div class="special-price-container special-price-exist           simple-product">
    <span class="special-price">
        
<span class="price-container            price-final_price tax weee">
            <span class="price-label">
            Prix sp&eacute;cial        </span>
        <span id="product-price-48383" data-price-amount="111.2" data-price-type="finalPrice" class="price-wrapper">
        <span class="price">111,20&nbsp;&euro;</span>    </span>
                <meta content="111.2">
        <meta content="EUR">
    </span>
    </span>
    <span class="final-price-box">
        
<span class="price-container            price-final_price tax weee">
            <span class="price-label">
            Prix normal        </span>
        <span id="old-price-48383" data-price-amount="139" data-price-type="oldPrice" class="price-wrapper">
        <span class="price">139,00&nbsp;&euro;</span>    </span>
                <meta content="139">
        <meta content="EUR">
    </span>
    </span>
</div>

</div>            </div>
            <div class="w-full min-h-[2rem] lg:block mt-auto">
                                    <div class="mb-4 lg:mb-5 block">
                                            </div>
                                    <div class="product__actions flex gap-2">
                    <button x-ref="submit" class="btn btn-tertiary text-sm px-1 truncate w-full min-w-auto transition-all block" aria-label="Ajouter au panier Masturbateur vibrant Arcwave Zing">
                <span class="text-addtocart hidden lg:block">
                    Ajouter au panier                </span>
                <span class="icons-addtocart flex gap-2 justify-center items-center lg:hidden">
                    <svg xmlns="http://www.w3.org/2000/svg" id="Calque_2" fill="currentColor" viewbox="0 0 18 18" width="17" height="17" aria-hidden="true"><g id="SYSTEM_3"><g id="Editor_3"><g id="icon_add_3"><path d="m13.19,10.49l-4.61-.19c-1.85-.08-3.7-.16-5.55-.24-.24,0-.48,0-.72,0-.49,0-.99,0-1.49-.08-.28-.05-.5-.31-.67-.52-.21-.25-.2-.64.04-.87.17-.16.4-.39.67-.41,3.34-.24,6.86-.46,10.75-.68l2.81.1h.2c.72,0,1.46,0,2.18.12.41.07.73.45.99.76.31.37.29.95-.06,1.28-.25.24-.58.57-.98.6-.09,0-.17.01-.26.02-.68.04-1.38.07-2.07.12h-.57c-.26,0-.46,0-.66,0Z"></path><path d="m10.49,4.81l-.19,4.61c-.08,1.85-.16,3.7-.24,5.55,0,.24,0,.48,0,.72,0,.49,0,.99-.08,1.49-.05.28-.31.5-.52.67-.25.21-.64.2-.87-.04-.16-.17-.39-.4-.41-.67-.24-3.34-.46-6.86-.68-10.75l.1-2.81v-.2c0-.72,0-1.46.12-2.18.07-.41.45-.73.76-.99.37-.31.95-.29,1.28.06.24.25.57.58.6.98,0,.09.01.17.02.26.04.68.07,1.38.12,2.07v.57c0,.26,0,.46,0,.66Z"></path></g></g></g></svg>
                    <svg xmlns="http://www.w3.org/2000/svg" id="Calque_2" fill="currentColor" viewbox="0 0 15 20" width="18" height="19" aria-hidden="true"><g id="BUSINESS_3"><g id="Finance_Payment_3"><g id="icon_cart_3"><path d="m4.48,3.1c.07-.93.58-1.82,1.36-2.39C6.61.14,7.64-.11,8.6.04c1.17.16,2.19.93,2.65,1.93.25.48.31,1.08.29,1.55l-.02,1.4v.73c0,.49,0,1-.04,1.5-.02.29-.13.5-.21.68-.1.21-.26.2-.36-.04-.07-.17-.16-.4-.17-.67-.02-.84-.05-1.7-.07-2.56-.01-.43-.03-.86-.04-1.3-.02-.38-.14-.75-.34-1.08-.41-.66-1.17-1.11-1.99-1.15-.82-.05-1.66.31-2.14.96-.25.3-.4.66-.46,1.03-.02.09-.02.19-.03.28v.35s-.02.71-.02.71v.2c0,.72,0,1.47-.05,2.2-.03.41-.18.74-.31,1-.15.31-.39.29-.52-.06-.1-.25-.23-.59-.25-.99,0-.09,0-.18,0-.26-.02-.69-.03-1.39-.05-2.09v-.57c0-.27-.01-.44.01-.7Z"></path><path d="m.23,17.58c.27-2,.51-4.02.74-6.04l.77-6.05.14-1.13c.05-.43.31-.7.7-.75.19-.02.43,0,.61,0h.34s1.35.01,1.35.01l2.71.02,5.61.04c.19,0,.33.05.46.13.15.11.2.24.26.4.05.18.05.36.08.54l.04.34.17,1.3.26,1.91c.17,1.29.36,2.62.49,3.92.08.75.03,1.33,0,1.81-.05.57-.24.55-.44-.06-.14-.43-.33-1.02-.43-1.72-.19-1.28-.38-2.58-.59-3.94-.1-.68-.2-1.38-.31-2.1-.05-.36-.11-.73-.16-1.1l-.05-.3c0-.08-.08-.08-.14-.07-1.52.02-3.18.04-4.94.07-.91.01-1.84.02-2.8.03-.48,0-.96.01-1.45.02-.23,0-.57,0-.52,0-.04,0-.07.02-.06.07-.13,1.2-.27,2.53-.43,3.94-.17,1.49-.33,3.08-.48,4.68l-.38,3.12-.21,1.56-.03.23v.02s0,.02.01.02h.02s.23,0,.23,0h.58s.51,0,.51,0c1.83,0,3.74,0,5.58.06,1.05.04,1.87.23,2.54.38.79.19.74.48-.15.65-.63.12-1.5.29-2.51.3-.22,0-.44,0-.65,0-1.75.02-3.54.04-5.32.06H.88c-.19,0-.35-.06-.47-.13-.09-.05-.19-.14-.27-.25-.07-.11-.09-.16-.12-.29-.05-.1,0-.26,0-.4.01-.14.04-.28.06-.42.05-.32.09-.62.13-.92Z"></path></g></g></g></svg>
                </span>
            </button>
                <div>
            
    <button x-data="initWishlist()" x-on:click.prevent="toggleWishlist" aria-label="Ajouter &agrave; la liste de souhaits" type="button" class="wishlist-btn text-black p-3 hover:bg-pink-dark rounded-btn" :class="isInWishlist() ? '!bg-pink-dark lg:!bg-pink-light' : 'bg-pink-light'" x-on:class="{ 'pointer-events-none': loading }">
        <span x-cloak x-show="!isInWishlist()">
            <svg class="size-6 text-optimo-darker" :class="{ '!hidden': loading }" aria-hidden="true">
                <use href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/i4-sprite.svg#ico-wishlist"></use>
            </svg>
        </span>
        <span x-cloak x-show="isInWishlist()">
            <svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewbox="0 0 24 24" class="size-6 text-optimo-darker" width="24" height="24" aria-hidden="true" :class="{ '!hidden': loading }"><path fill="#FF5C6E" d="M12.113 5.598c.03-.07.02-.06.09-.19.09-.18.19-.36.33-.54.5-.72 1.249-1.269 2.058-1.519.939-.29 1.688-.13 2.228.07.64.28.49.44-.19.43-.49.02-1.139.15-1.808.42-.44.18-.85.45-1.18.799-.16.18-.309.37-.429.59-.06.14-.11.17-.19.41-.06.25-.17.4-.2.739-.2 1.509-.49 1.429-.639 1.549-.14.06-.35.04-.42 0-.3-.11-.51-.66-.55-1.08-.04-.28-.11-.48-.159-.729-.05-.25-.12-.46-.22-.62-.1-.2-.23-.37-.35-.54-.27-.339-.609-.619-.979-.829-.749-.43-1.678-.51-2.567-.3C5.159 4.589 4 6.528 4.33 8.447c.2 1.968 1.409 3.797 2.757 5.516 1.39 1.709 2.978 3.348 4.636 4.977.37.37.2.2.24.25.04-.04-.12.12.25-.23.52-.49 1.01-1 1.509-1.5a49.169 49.169 0 0 0 2.827-3.137l.37-.47c1.269-1.689 2.478-3.598 2.697-5.556.12-1.1.02-1.979-.24-2.708-.16-.42-.23-.66-.11-.72.1-.05.41.07.78.53.52.62 1.08 1.789.93 3.168-.02.3-.06.59-.13.859-.5 2.278-1.809 4.147-3.118 5.856l-.04.06c-.35.45-.72.87-1.089 1.3-.53.589-.95 1.058-1.379 1.498-.41.43-.829.85-1.249 1.27l-.639.619-.34.33c-.21.18-.41.44-.63.55-.419.219-.928.04-1.298-.44l-.7-.71-1.228-1.28c-1.619-1.728-3.218-3.497-4.516-5.575-.77-1.24-1.41-2.639-1.569-4.167-.08-.74-.09-1.55.15-2.319.22-.77.63-1.479 1.189-2.058.55-.57 1.279-1 2.058-1.19a5.22 5.22 0 0 1 2.328-.07c.78.17 1.509.56 2.088 1.11.29.27.53.59.75.929.06.08.09.17.14.26l.05.1.05.14.04.1c.04.11.07.17.07.17s.06-.09.149-.32v.01Z"></path><path fill="#FF5C6E" stroke="#FF5C6E" d="M16 3.502c-2.4 0-3.667 3-4 4.5-.5-2.167-2.4-6-6-4-4.5 2.5-1.5 7.5 0 9.5 1.2 1.6 4.5 5.333 6 7 1.666-1.834 5.5-6.3 7.5-9.5 2.5-4-.5-7.5-3.5-7.5Z"></path></svg>
        </span>
        <span x-cloak x-show="loading">
            <svg class="animate-spin text-optimo-darker size-6" aria-hidden="true">
                <use href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/i4-sprite.svg#ico-loader"></use>
            </svg>
        </span>
        <span class="hidden">
            Mes Favoris        </span>
    </button>
        </div>
    </div>

            </div>
                                </div>
    </form>

                        </div>
                                            <div class="p-slider__item rounded-xs p-2.5 flex shrink-0 w-[calc(100%/1.5)] bg-white md:max-w-[25%] js_slide lg:max-w-none lg:w-[calc(100%/5-30px/5)]">
                            
    <form x-data="{}" x-i4-ajax-cart action="https://www.espaceplaisir.fr/checkout/cart/add/uenc/aHR0cHM6Ly93d3cuZXNwYWNlcGxhaXNpci5mci8~/product/47699/" method="post" data-id="47699" data-sku="S08P" data-type="simple" class="product-item relative w-full flex flex-col group gap-2.5 lg:gap-6">
        <input name="form_key" type="hidden" value="rgh0Y4hMyX8wMkwL">        <input type="hidden" name="product" value="47699">

        
        <a class="product__link relative hover:text-black" href="https://www.espaceplaisir.fr/svakom-sam-neo-2.html">
            <img class="w-full object-contain text-transparent" x-ref="gallery" src="https://www.espaceplaisir.fr/media/catalog/product/s/v/svakom-sam-neo-2-interactive-sucking-vibrating-masturbator-1.jpg?quality=80&amp;fit=bounds&amp;height=480&amp;width=480" loading="lazy" width="480" height="480" alt="Masturbateur connect&eacute; Sam Neo 2" title="Masturbateur connect&eacute; Sam Neo 2">
                    <div class="group/item special-label text-right flex justify-end items-start absolute right-3 top-3">
        <div class="whitespace-nowrap w-max px-1 py-2 label-block rounded-lg text-sm">
            - 20%
        </div>
    </div>

                                                </a>
        <div class="relative text-center flex flex-col text-sm items-center h-full product-info-block product-info-block__container">
            <div class="text-sm text-center line-clamp-1 leading-6 mb-2 min-h-6 product-info-block">
                Svakom            </div>
            <p class="product__name text-sm font-bold mb-2 min-h-8 leading-5 font-Averta">
                <a class="product__link text-center line-clamp-2 font-bold product-info-block" href="https://www.espaceplaisir.fr/svakom-sam-neo-2.html">
                    Masturbateur connect&eacute; Sam Neo 2                </a>
            </p>
            <div class="review min-h-5 w-full flex flex-col items-center">
                
<div class="r-stars">
    <div class="r-stars__box">
        <i class="r-stars__empty"></i>
        <i class="r-stars__full" style="width:80%"></i>
    </div>
    <span class="text-sm leading-none">(2)</span>
</div>
            </div>
            <div class="text-grey-dark">
                <div class="price-box price-final_price" data-role="priceBox" data-product-id="47699" data-price-box="product-id-47699">

<div class="special-price-container special-price-exist           simple-product">
    <span class="special-price">
        
<span class="price-container            price-final_price tax weee">
            <span class="price-label">
            Prix sp&eacute;cial        </span>
        <span id="product-price-47699" data-price-amount="118.32" data-price-type="finalPrice" class="price-wrapper">
        <span class="price">118,32&nbsp;&euro;</span>    </span>
                <meta content="118.32">
        <meta content="EUR">
    </span>
    </span>
    <span class="final-price-box">
        
<span class="price-container            price-final_price tax weee">
            <span class="price-label">
            Prix normal        </span>
        <span id="old-price-47699" data-price-amount="147.9" data-price-type="oldPrice" class="price-wrapper">
        <span class="price">147,90&nbsp;&euro;</span>    </span>
                <meta content="147.9">
        <meta content="EUR">
    </span>
    </span>
</div>

</div>            </div>
            <div class="w-full min-h-[2rem] lg:block mt-auto">
                                    <div class="mb-4 lg:mb-5 block">
                                            </div>
                                    <div class="product__actions flex gap-2">
                    <button x-ref="submit" class="btn btn-tertiary text-sm px-1 truncate w-full min-w-auto transition-all block" aria-label="Ajouter au panier Masturbateur connect&eacute; Sam Neo 2">
                <span class="text-addtocart hidden lg:block">
                    Ajouter au panier                </span>
                <span class="icons-addtocart flex gap-2 justify-center items-center lg:hidden">
                    <svg xmlns="http://www.w3.org/2000/svg" id="Calque_2" fill="currentColor" viewbox="0 0 18 18" width="17" height="17" aria-hidden="true"><g id="SYSTEM_2"><g id="Editor_2"><g id="icon_add_2"><path d="m13.19,10.49l-4.61-.19c-1.85-.08-3.7-.16-5.55-.24-.24,0-.48,0-.72,0-.49,0-.99,0-1.49-.08-.28-.05-.5-.31-.67-.52-.21-.25-.2-.64.04-.87.17-.16.4-.39.67-.41,3.34-.24,6.86-.46,10.75-.68l2.81.1h.2c.72,0,1.46,0,2.18.12.41.07.73.45.99.76.31.37.29.95-.06,1.28-.25.24-.58.57-.98.6-.09,0-.17.01-.26.02-.68.04-1.38.07-2.07.12h-.57c-.26,0-.46,0-.66,0Z"></path><path d="m10.49,4.81l-.19,4.61c-.08,1.85-.16,3.7-.24,5.55,0,.24,0,.48,0,.72,0,.49,0,.99-.08,1.49-.05.28-.31.5-.52.67-.25.21-.64.2-.87-.04-.16-.17-.39-.4-.41-.67-.24-3.34-.46-6.86-.68-10.75l.1-2.81v-.2c0-.72,0-1.46.12-2.18.07-.41.45-.73.76-.99.37-.31.95-.29,1.28.06.24.25.57.58.6.98,0,.09.01.17.02.26.04.68.07,1.38.12,2.07v.57c0,.26,0,.46,0,.66Z"></path></g></g></g></svg>
                    <svg xmlns="http://www.w3.org/2000/svg" id="Calque_2" fill="currentColor" viewbox="0 0 15 20" width="18" height="19" aria-hidden="true"><g id="BUSINESS_2"><g id="Finance_Payment_2"><g id="icon_cart_2"><path d="m4.48,3.1c.07-.93.58-1.82,1.36-2.39C6.61.14,7.64-.11,8.6.04c1.17.16,2.19.93,2.65,1.93.25.48.31,1.08.29,1.55l-.02,1.4v.73c0,.49,0,1-.04,1.5-.02.29-.13.5-.21.68-.1.21-.26.2-.36-.04-.07-.17-.16-.4-.17-.67-.02-.84-.05-1.7-.07-2.56-.01-.43-.03-.86-.04-1.3-.02-.38-.14-.75-.34-1.08-.41-.66-1.17-1.11-1.99-1.15-.82-.05-1.66.31-2.14.96-.25.3-.4.66-.46,1.03-.02.09-.02.19-.03.28v.35s-.02.71-.02.71v.2c0,.72,0,1.47-.05,2.2-.03.41-.18.74-.31,1-.15.31-.39.29-.52-.06-.1-.25-.23-.59-.25-.99,0-.09,0-.18,0-.26-.02-.69-.03-1.39-.05-2.09v-.57c0-.27-.01-.44.01-.7Z"></path><path d="m.23,17.58c.27-2,.51-4.02.74-6.04l.77-6.05.14-1.13c.05-.43.31-.7.7-.75.19-.02.43,0,.61,0h.34s1.35.01,1.35.01l2.71.02,5.61.04c.19,0,.33.05.46.13.15.11.2.24.26.4.05.18.05.36.08.54l.04.34.17,1.3.26,1.91c.17,1.29.36,2.62.49,3.92.08.75.03,1.33,0,1.81-.05.57-.24.55-.44-.06-.14-.43-.33-1.02-.43-1.72-.19-1.28-.38-2.58-.59-3.94-.1-.68-.2-1.38-.31-2.1-.05-.36-.11-.73-.16-1.1l-.05-.3c0-.08-.08-.08-.14-.07-1.52.02-3.18.04-4.94.07-.91.01-1.84.02-2.8.03-.48,0-.96.01-1.45.02-.23,0-.57,0-.52,0-.04,0-.07.02-.06.07-.13,1.2-.27,2.53-.43,3.94-.17,1.49-.33,3.08-.48,4.68l-.38,3.12-.21,1.56-.03.23v.02s0,.02.01.02h.02s.23,0,.23,0h.58s.51,0,.51,0c1.83,0,3.74,0,5.58.06,1.05.04,1.87.23,2.54.38.79.19.74.48-.15.65-.63.12-1.5.29-2.51.3-.22,0-.44,0-.65,0-1.75.02-3.54.04-5.32.06H.88c-.19,0-.35-.06-.47-.13-.09-.05-.19-.14-.27-.25-.07-.11-.09-.16-.12-.29-.05-.1,0-.26,0-.4.01-.14.04-.28.06-.42.05-.32.09-.62.13-.92Z"></path></g></g></g></svg>
                </span>
            </button>
                <div>
            
    <button x-data="initWishlist()" x-on:click.prevent="toggleWishlist" aria-label="Ajouter &agrave; la liste de souhaits" type="button" class="wishlist-btn text-black p-3 hover:bg-pink-dark rounded-btn" :class="isInWishlist() ? '!bg-pink-dark lg:!bg-pink-light' : 'bg-pink-light'" x-on:class="{ 'pointer-events-none': loading }">
        <span x-cloak x-show="!isInWishlist()">
            <svg class="size-6 text-optimo-darker" :class="{ '!hidden': loading }" aria-hidden="true">
                <use href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/i4-sprite.svg#ico-wishlist"></use>
            </svg>
        </span>
        <span x-cloak x-show="isInWishlist()">
            <svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewbox="0 0 24 24" class="size-6 text-optimo-darker" width="24" height="24" aria-hidden="true" :class="{ '!hidden': loading }"><path fill="#FF5C6E" d="M12.113 5.598c.03-.07.02-.06.09-.19.09-.18.19-.36.33-.54.5-.72 1.249-1.269 2.058-1.519.939-.29 1.688-.13 2.228.07.64.28.49.44-.19.43-.49.02-1.139.15-1.808.42-.44.18-.85.45-1.18.799-.16.18-.309.37-.429.59-.06.14-.11.17-.19.41-.06.25-.17.4-.2.739-.2 1.509-.49 1.429-.639 1.549-.14.06-.35.04-.42 0-.3-.11-.51-.66-.55-1.08-.04-.28-.11-.48-.159-.729-.05-.25-.12-.46-.22-.62-.1-.2-.23-.37-.35-.54-.27-.339-.609-.619-.979-.829-.749-.43-1.678-.51-2.567-.3C5.159 4.589 4 6.528 4.33 8.447c.2 1.968 1.409 3.797 2.757 5.516 1.39 1.709 2.978 3.348 4.636 4.977.37.37.2.2.24.25.04-.04-.12.12.25-.23.52-.49 1.01-1 1.509-1.5a49.169 49.169 0 0 0 2.827-3.137l.37-.47c1.269-1.689 2.478-3.598 2.697-5.556.12-1.1.02-1.979-.24-2.708-.16-.42-.23-.66-.11-.72.1-.05.41.07.78.53.52.62 1.08 1.789.93 3.168-.02.3-.06.59-.13.859-.5 2.278-1.809 4.147-3.118 5.856l-.04.06c-.35.45-.72.87-1.089 1.3-.53.589-.95 1.058-1.379 1.498-.41.43-.829.85-1.249 1.27l-.639.619-.34.33c-.21.18-.41.44-.63.55-.419.219-.928.04-1.298-.44l-.7-.71-1.228-1.28c-1.619-1.728-3.218-3.497-4.516-5.575-.77-1.24-1.41-2.639-1.569-4.167-.08-.74-.09-1.55.15-2.319.22-.77.63-1.479 1.189-2.058.55-.57 1.279-1 2.058-1.19a5.22 5.22 0 0 1 2.328-.07c.78.17 1.509.56 2.088 1.11.29.27.53.59.75.929.06.08.09.17.14.26l.05.1.05.14.04.1c.04.11.07.17.07.17s.06-.09.149-.32v.01Z"></path><path fill="#FF5C6E" stroke="#FF5C6E" d="M16 3.502c-2.4 0-3.667 3-4 4.5-.5-2.167-2.4-6-6-4-4.5 2.5-1.5 7.5 0 9.5 1.2 1.6 4.5 5.333 6 7 1.666-1.834 5.5-6.3 7.5-9.5 2.5-4-.5-7.5-3.5-7.5Z"></path></svg>
        </span>
        <span x-cloak x-show="loading">
            <svg class="animate-spin text-optimo-darker size-6" aria-hidden="true">
                <use href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/i4-sprite.svg#ico-loader"></use>
            </svg>
        </span>
        <span class="hidden">
            Mes Favoris        </span>
    </button>
        </div>
    </div>

            </div>
                                </div>
    </form>

                        </div>
                                            <div class="p-slider__item rounded-xs p-2.5 flex shrink-0 w-[calc(100%/1.5)] bg-white md:max-w-[25%] js_slide lg:max-w-none lg:w-[calc(100%/5-30px/5)]">
                            
    <form x-data="{}" x-i4-ajax-cart action="https://www.espaceplaisir.fr/checkout/cart/add/uenc/aHR0cHM6Ly93d3cuZXNwYWNlcGxhaXNpci5mci8~/product/16889/" method="post" data-id="16889" data-sku="728360599612" data-type="simple" class="product-item relative w-full flex flex-col group gap-2.5 lg:gap-6">
        <input name="form_key" type="hidden" value="rgh0Y4hMyX8wMkwL">        <input type="hidden" name="product" value="16889">

        
        <a class="product__link relative hover:text-black" href="https://www.espaceplaisir.fr/lovense-max-2.html">
            <img class="w-full object-contain text-transparent" x-ref="gallery" src="https://www.espaceplaisir.fr/media/catalog/product/8/0/80155-022.jpg?quality=80&amp;fit=bounds&amp;height=480&amp;width=480" loading="lazy" width="480" height="480" alt="Masturbateur connect&eacute; Lovense Max 2" title="Masturbateur connect&eacute; Lovense Max 2">
            
                                <div class="label-container absolute inset-0 grid grid-flow-col grid-cols-3 grid-rows-3">
        
            <div class="relative group/item" style="border:2px solid #1d3766; background-color:#1d3766;padding-left:4px;padding-right:4px;padding-top:2px; padding-bottom:2px;text-align:center;font-weight:bold; border-radius:4px; width:fit-content;height:fit-content; font-size: 14px; color: #ffffff;grid-area:1/1">
        <div class="whitespace-nowrap">
        Top vente    </div>
    
    
            </div>
        </div>
                    </a>
        <div class="relative text-center flex flex-col text-sm items-center h-full product-info-block product-info-block__container">
            <div class="text-sm text-center line-clamp-1 leading-6 mb-2 min-h-6 product-info-block">
                Lovense            </div>
            <p class="product__name text-sm font-bold mb-2 min-h-8 leading-5 font-Averta">
                <a class="product__link text-center line-clamp-2 font-bold product-info-block" href="https://www.espaceplaisir.fr/lovense-max-2.html">
                    Masturbateur connect&eacute; Lovense Max 2                </a>
            </p>
            <div class="review min-h-5 w-full flex flex-col items-center">
                
<div class="r-stars">
    <div class="r-stars__box">
        <i class="r-stars__empty"></i>
        <i class="r-stars__full" style="width:88%"></i>
    </div>
    <span class="text-sm leading-none">(127)</span>
</div>
            </div>
            <div class="text-grey-dark">
                <div class="price-box price-final_price" data-role="priceBox" data-product-id="16889" data-price-box="product-id-16889">

<div class="normal-final-price           simple-product">
    <span class="special-price">
        
<span class="price-container            price-final_price tax weee">
            <span class="price-label">
            Prix sp&eacute;cial        </span>
        <span id="product-price-16889" data-price-amount="119" data-price-type="finalPrice" class="price-wrapper">
        <span class="price">119,00&nbsp;&euro;</span>    </span>
                <meta content="119">
        <meta content="EUR">
    </span>
    </span>
    <span class="final-price-box">
        
<span class="price-container            price-final_price tax weee">
            <span class="price-label">
            Prix normal        </span>
        <span id="old-price-16889" data-price-amount="119" data-price-type="oldPrice" class="price-wrapper">
        <span class="price">119,00&nbsp;&euro;</span>    </span>
                <meta content="119">
        <meta content="EUR">
    </span>
    </span>
</div>

</div>            </div>
            <div class="w-full min-h-[2rem] lg:block mt-auto">
                                    <div class="mb-4 lg:mb-5 block">
                                            </div>
                                    <div class="product__actions flex gap-2">
                    <button x-ref="submit" class="btn btn-tertiary text-sm px-1 truncate w-full min-w-auto transition-all block" aria-label="Ajouter au panier Masturbateur connect&eacute; Lovense Max 2">
                <span class="text-addtocart hidden lg:block">
                    Ajouter au panier                </span>
                <span class="icons-addtocart flex gap-2 justify-center items-center lg:hidden">
                    <svg xmlns="http://www.w3.org/2000/svg" id="Calque_2" fill="currentColor" viewbox="0 0 18 18" width="17" height="17" aria-hidden="true"><g id="SYSTEM_3"><g id="Editor_3"><g id="icon_add_3"><path d="m13.19,10.49l-4.61-.19c-1.85-.08-3.7-.16-5.55-.24-.24,0-.48,0-.72,0-.49,0-.99,0-1.49-.08-.28-.05-.5-.31-.67-.52-.21-.25-.2-.64.04-.87.17-.16.4-.39.67-.41,3.34-.24,6.86-.46,10.75-.68l2.81.1h.2c.72,0,1.46,0,2.18.12.41.07.73.45.99.76.31.37.29.95-.06,1.28-.25.24-.58.57-.98.6-.09,0-.17.01-.26.02-.68.04-1.38.07-2.07.12h-.57c-.26,0-.46,0-.66,0Z"></path><path d="m10.49,4.81l-.19,4.61c-.08,1.85-.16,3.7-.24,5.55,0,.24,0,.48,0,.72,0,.49,0,.99-.08,1.49-.05.28-.31.5-.52.67-.25.21-.64.2-.87-.04-.16-.17-.39-.4-.41-.67-.24-3.34-.46-6.86-.68-10.75l.1-2.81v-.2c0-.72,0-1.46.12-2.18.07-.41.45-.73.76-.99.37-.31.95-.29,1.28.06.24.25.57.58.6.98,0,.09.01.17.02.26.04.68.07,1.38.12,2.07v.57c0,.26,0,.46,0,.66Z"></path></g></g></g></svg>
                    <svg xmlns="http://www.w3.org/2000/svg" id="Calque_2" fill="currentColor" viewbox="0 0 15 20" width="18" height="19" aria-hidden="true"><g id="BUSINESS_3"><g id="Finance_Payment_3"><g id="icon_cart_3"><path d="m4.48,3.1c.07-.93.58-1.82,1.36-2.39C6.61.14,7.64-.11,8.6.04c1.17.16,2.19.93,2.65,1.93.25.48.31,1.08.29,1.55l-.02,1.4v.73c0,.49,0,1-.04,1.5-.02.29-.13.5-.21.68-.1.21-.26.2-.36-.04-.07-.17-.16-.4-.17-.67-.02-.84-.05-1.7-.07-2.56-.01-.43-.03-.86-.04-1.3-.02-.38-.14-.75-.34-1.08-.41-.66-1.17-1.11-1.99-1.15-.82-.05-1.66.31-2.14.96-.25.3-.4.66-.46,1.03-.02.09-.02.19-.03.28v.35s-.02.71-.02.71v.2c0,.72,0,1.47-.05,2.2-.03.41-.18.74-.31,1-.15.31-.39.29-.52-.06-.1-.25-.23-.59-.25-.99,0-.09,0-.18,0-.26-.02-.69-.03-1.39-.05-2.09v-.57c0-.27-.01-.44.01-.7Z"></path><path d="m.23,17.58c.27-2,.51-4.02.74-6.04l.77-6.05.14-1.13c.05-.43.31-.7.7-.75.19-.02.43,0,.61,0h.34s1.35.01,1.35.01l2.71.02,5.61.04c.19,0,.33.05.46.13.15.11.2.24.26.4.05.18.05.36.08.54l.04.34.17,1.3.26,1.91c.17,1.29.36,2.62.49,3.92.08.75.03,1.33,0,1.81-.05.57-.24.55-.44-.06-.14-.43-.33-1.02-.43-1.72-.19-1.28-.38-2.58-.59-3.94-.1-.68-.2-1.38-.31-2.1-.05-.36-.11-.73-.16-1.1l-.05-.3c0-.08-.08-.08-.14-.07-1.52.02-3.18.04-4.94.07-.91.01-1.84.02-2.8.03-.48,0-.96.01-1.45.02-.23,0-.57,0-.52,0-.04,0-.07.02-.06.07-.13,1.2-.27,2.53-.43,3.94-.17,1.49-.33,3.08-.48,4.68l-.38,3.12-.21,1.56-.03.23v.02s0,.02.01.02h.02s.23,0,.23,0h.58s.51,0,.51,0c1.83,0,3.74,0,5.58.06,1.05.04,1.87.23,2.54.38.79.19.74.48-.15.65-.63.12-1.5.29-2.51.3-.22,0-.44,0-.65,0-1.75.02-3.54.04-5.32.06H.88c-.19,0-.35-.06-.47-.13-.09-.05-.19-.14-.27-.25-.07-.11-.09-.16-.12-.29-.05-.1,0-.26,0-.4.01-.14.04-.28.06-.42.05-.32.09-.62.13-.92Z"></path></g></g></g></svg>
                </span>
            </button>
                <div>
            
    <button x-data="initWishlist()" x-on:click.prevent="toggleWishlist" aria-label="Ajouter &agrave; la liste de souhaits" type="button" class="wishlist-btn text-black p-3 hover:bg-pink-dark rounded-btn" :class="isInWishlist() ? '!bg-pink-dark lg:!bg-pink-light' : 'bg-pink-light'" x-on:class="{ 'pointer-events-none': loading }">
        <span x-cloak x-show="!isInWishlist()">
            <svg class="size-6 text-optimo-darker" :class="{ '!hidden': loading }" aria-hidden="true">
                <use href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/i4-sprite.svg#ico-wishlist"></use>
            </svg>
        </span>
        <span x-cloak x-show="isInWishlist()">
            <svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewbox="0 0 24 24" class="size-6 text-optimo-darker" width="24" height="24" aria-hidden="true" :class="{ '!hidden': loading }"><path fill="#FF5C6E" d="M12.113 5.598c.03-.07.02-.06.09-.19.09-.18.19-.36.33-.54.5-.72 1.249-1.269 2.058-1.519.939-.29 1.688-.13 2.228.07.64.28.49.44-.19.43-.49.02-1.139.15-1.808.42-.44.18-.85.45-1.18.799-.16.18-.309.37-.429.59-.06.14-.11.17-.19.41-.06.25-.17.4-.2.739-.2 1.509-.49 1.429-.639 1.549-.14.06-.35.04-.42 0-.3-.11-.51-.66-.55-1.08-.04-.28-.11-.48-.159-.729-.05-.25-.12-.46-.22-.62-.1-.2-.23-.37-.35-.54-.27-.339-.609-.619-.979-.829-.749-.43-1.678-.51-2.567-.3C5.159 4.589 4 6.528 4.33 8.447c.2 1.968 1.409 3.797 2.757 5.516 1.39 1.709 2.978 3.348 4.636 4.977.37.37.2.2.24.25.04-.04-.12.12.25-.23.52-.49 1.01-1 1.509-1.5a49.169 49.169 0 0 0 2.827-3.137l.37-.47c1.269-1.689 2.478-3.598 2.697-5.556.12-1.1.02-1.979-.24-2.708-.16-.42-.23-.66-.11-.72.1-.05.41.07.78.53.52.62 1.08 1.789.93 3.168-.02.3-.06.59-.13.859-.5 2.278-1.809 4.147-3.118 5.856l-.04.06c-.35.45-.72.87-1.089 1.3-.53.589-.95 1.058-1.379 1.498-.41.43-.829.85-1.249 1.27l-.639.619-.34.33c-.21.18-.41.44-.63.55-.419.219-.928.04-1.298-.44l-.7-.71-1.228-1.28c-1.619-1.728-3.218-3.497-4.516-5.575-.77-1.24-1.41-2.639-1.569-4.167-.08-.74-.09-1.55.15-2.319.22-.77.63-1.479 1.189-2.058.55-.57 1.279-1 2.058-1.19a5.22 5.22 0 0 1 2.328-.07c.78.17 1.509.56 2.088 1.11.29.27.53.59.75.929.06.08.09.17.14.26l.05.1.05.14.04.1c.04.11.07.17.07.17s.06-.09.149-.32v.01Z"></path><path fill="#FF5C6E" stroke="#FF5C6E" d="M16 3.502c-2.4 0-3.667 3-4 4.5-.5-2.167-2.4-6-6-4-4.5 2.5-1.5 7.5 0 9.5 1.2 1.6 4.5 5.333 6 7 1.666-1.834 5.5-6.3 7.5-9.5 2.5-4-.5-7.5-3.5-7.5Z"></path></svg>
        </span>
        <span x-cloak x-show="loading">
            <svg class="animate-spin text-optimo-darker size-6" aria-hidden="true">
                <use href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/i4-sprite.svg#ico-loader"></use>
            </svg>
        </span>
        <span class="hidden">
            Mes Favoris        </span>
    </button>
        </div>
    </div>

            </div>
                                </div>
    </form>

                        </div>
                                            <div class="p-slider__item rounded-xs p-2.5 flex shrink-0 w-[calc(100%/1.5)] bg-white md:max-w-[25%] js_slide lg:max-w-none lg:w-[calc(100%/5-30px/5)]">
                            
    <form x-data="{}" x-i4-ajax-cart action="https://www.espaceplaisir.fr/checkout/cart/add/uenc/aHR0cHM6Ly93d3cuZXNwYWNlcGxhaXNpci5mci8~/product/32656/" method="post" data-id="32656" data-sku="74431" data-type="simple" class="product-item relative w-full flex flex-col group gap-2.5 lg:gap-6">
        <input name="form_key" type="hidden" value="9eL2rVtwBZOcNZP5">        <input type="hidden" name="product" value="32656">

        
        <a class="product__link relative hover:text-black" href="https://www.espaceplaisir.fr/womanizer-x-lovehoney-pro40-rechargeable-clitoral-stimulator.html">
            <img class="w-full object-contain text-transparent" x-ref="gallery" src="https://www.espaceplaisir.fr/media/catalog/product/7/4/74431_a36927_black_000.jpg?quality=80&amp;fit=bounds&amp;height=480&amp;width=480" loading="lazy" width="480" height="480" alt="Stimulateur clitoridien Womanizer Pro40 &eacute;dition Lovehoney" title="Stimulateur clitoridien Womanizer Pro40 &eacute;dition Lovehoney">
                    <div class="group/item special-label text-right flex justify-end items-start absolute right-3 top-3">
        <div class="whitespace-nowrap w-max px-1 py-2 label-block rounded-lg text-sm">
            - 23%
        </div>
    </div>

                                <div class="label-container absolute inset-0 grid grid-flow-col grid-cols-3 grid-rows-3">
        
            <div class="relative group/item" style="width:72px; height:72px; margin: 0 0 0 -8px; font-size: 14px; color: #000000;grid-area:3/3">
        <div class="whitespace-nowrap absolute left-1/2 top-1/2 -translate-y-1/2 -translate-x-1/2">
            </div>
            <img class="w-full h-full" src="https://www.espaceplaisir.fr/media/amasty/amlabel/0526_macaron_bundlePLP_V3_1.png" loading="lazy" title="Womanizer Mini Offert Macaron " alt="Womanizer Mini Offert Macaron ">
    
    
            </div>
        </div>
                    </a>
        <div class="relative text-center flex flex-col text-sm items-center h-full product-info-block product-info-block__container">
            <div class="text-sm text-center line-clamp-1 leading-6 mb-2 min-h-6 product-info-block">
                Womanizer            </div>
            <p class="product__name text-sm font-bold mb-2 min-h-8 leading-5 font-Averta">
                <a class="product__link text-center line-clamp-2 font-bold product-info-block" href="https://www.espaceplaisir.fr/womanizer-x-lovehoney-pro40-rechargeable-clitoral-stimulator.html">
                    Stimulateur clitoridien Womanizer Pro40 &eacute;dition Lovehoney                </a>
            </p>
            <div class="review min-h-5 w-full flex flex-col items-center">
                
<div class="r-stars">
    <div class="r-stars__box">
        <i class="r-stars__empty"></i>
        <i class="r-stars__full" style="width:90%"></i>
    </div>
    <span class="text-sm leading-none">(2259)</span>
</div>
            </div>
            <div class="text-grey-dark">
                <div class="price-box price-final_price" data-role="priceBox" data-product-id="32656" data-price-box="product-id-32656">

<div class="special-price-container special-price-exist           simple-product">
    <span class="special-price">
        
<span class="price-container            price-final_price tax weee">
            <span class="price-label">
            Prix sp&eacute;cial        </span>
        <span id="product-price-32656" data-price-amount="99" data-price-type="finalPrice" class="price-wrapper">
        <span class="price">99,00&nbsp;&euro;</span>    </span>
                <meta content="99">
        <meta content="EUR">
    </span>
    </span>
    <span class="final-price-box">
        
<span class="price-container            price-final_price tax weee">
            <span class="price-label">
            Prix normal        </span>
        <span id="old-price-32656" data-price-amount="129" data-price-type="oldPrice" class="price-wrapper">
        <span class="price">129,00&nbsp;&euro;</span>    </span>
                <meta content="129">
        <meta content="EUR">
    </span>
    </span>
</div>

</div>            </div>
            <div class="w-full min-h-[2rem] lg:block mt-auto">
                                    <div class="mb-4 lg:mb-5 block">
                                            </div>
                                    <div class="product__actions flex gap-2">
                    <button x-ref="submit" class="btn btn-tertiary text-sm px-1 truncate w-full min-w-auto transition-all block" aria-label="Ajouter au panier Stimulateur clitoridien Womanizer Pro40 &eacute;dition Lovehoney">
                <span class="text-addtocart hidden lg:block">
                    Ajouter au panier                </span>
                <span class="icons-addtocart flex gap-2 justify-center items-center lg:hidden">
                    <svg xmlns="http://www.w3.org/2000/svg" id="Calque_2" fill="currentColor" viewbox="0 0 18 18" width="17" height="17" aria-hidden="true"><g id="SYSTEM_2"><g id="Editor_2"><g id="icon_add_2"><path d="m13.19,10.49l-4.61-.19c-1.85-.08-3.7-.16-5.55-.24-.24,0-.48,0-.72,0-.49,0-.99,0-1.49-.08-.28-.05-.5-.31-.67-.52-.21-.25-.2-.64.04-.87.17-.16.4-.39.67-.41,3.34-.24,6.86-.46,10.75-.68l2.81.1h.2c.72,0,1.46,0,2.18.12.41.07.73.45.99.76.31.37.29.95-.06,1.28-.25.24-.58.57-.98.6-.09,0-.17.01-.26.02-.68.04-1.38.07-2.07.12h-.57c-.26,0-.46,0-.66,0Z"></path><path d="m10.49,4.81l-.19,4.61c-.08,1.85-.16,3.7-.24,5.55,0,.24,0,.48,0,.72,0,.49,0,.99-.08,1.49-.05.28-.31.5-.52.67-.25.21-.64.2-.87-.04-.16-.17-.39-.4-.41-.67-.24-3.34-.46-6.86-.68-10.75l.1-2.81v-.2c0-.72,0-1.46.12-2.18.07-.41.45-.73.76-.99.37-.31.95-.29,1.28.06.24.25.57.58.6.98,0,.09.01.17.02.26.04.68.07,1.38.12,2.07v.57c0,.26,0,.46,0,.66Z"></path></g></g></g></svg>
                    <svg xmlns="http://www.w3.org/2000/svg" id="Calque_2" fill="currentColor" viewbox="0 0 15 20" width="18" height="19" aria-hidden="true"><g id="BUSINESS_2"><g id="Finance_Payment_2"><g id="icon_cart_2"><path d="m4.48,3.1c.07-.93.58-1.82,1.36-2.39C6.61.14,7.64-.11,8.6.04c1.17.16,2.19.93,2.65,1.93.25.48.31,1.08.29,1.55l-.02,1.4v.73c0,.49,0,1-.04,1.5-.02.29-.13.5-.21.68-.1.21-.26.2-.36-.04-.07-.17-.16-.4-.17-.67-.02-.84-.05-1.7-.07-2.56-.01-.43-.03-.86-.04-1.3-.02-.38-.14-.75-.34-1.08-.41-.66-1.17-1.11-1.99-1.15-.82-.05-1.66.31-2.14.96-.25.3-.4.66-.46,1.03-.02.09-.02.19-.03.28v.35s-.02.71-.02.71v.2c0,.72,0,1.47-.05,2.2-.03.41-.18.74-.31,1-.15.31-.39.29-.52-.06-.1-.25-.23-.59-.25-.99,0-.09,0-.18,0-.26-.02-.69-.03-1.39-.05-2.09v-.57c0-.27-.01-.44.01-.7Z"></path><path d="m.23,17.58c.27-2,.51-4.02.74-6.04l.77-6.05.14-1.13c.05-.43.31-.7.7-.75.19-.02.43,0,.61,0h.34s1.35.01,1.35.01l2.71.02,5.61.04c.19,0,.33.05.46.13.15.11.2.24.26.4.05.18.05.36.08.54l.04.34.17,1.3.26,1.91c.17,1.29.36,2.62.49,3.92.08.75.03,1.33,0,1.81-.05.57-.24.55-.44-.06-.14-.43-.33-1.02-.43-1.72-.19-1.28-.38-2.58-.59-3.94-.1-.68-.2-1.38-.31-2.1-.05-.36-.11-.73-.16-1.1l-.05-.3c0-.08-.08-.08-.14-.07-1.52.02-3.18.04-4.94.07-.91.01-1.84.02-2.8.03-.48,0-.96.01-1.45.02-.23,0-.57,0-.52,0-.04,0-.07.02-.06.07-.13,1.2-.27,2.53-.43,3.94-.17,1.49-.33,3.08-.48,4.68l-.38,3.12-.21,1.56-.03.23v.02s0,.02.01.02h.02s.23,0,.23,0h.58s.51,0,.51,0c1.83,0,3.74,0,5.58.06,1.05.04,1.87.23,2.54.38.79.19.74.48-.15.65-.63.12-1.5.29-2.51.3-.22,0-.44,0-.65,0-1.75.02-3.54.04-5.32.06H.88c-.19,0-.35-.06-.47-.13-.09-.05-.19-.14-.27-.25-.07-.11-.09-.16-.12-.29-.05-.1,0-.26,0-.4.01-.14.04-.28.06-.42.05-.32.09-.62.13-.92Z"></path></g></g></g></svg>
                </span>
            </button>
                <div>
            
    <button x-data="initWishlist()" x-on:click.prevent="toggleWishlist" aria-label="Ajouter &agrave; la liste de souhaits" type="button" class="wishlist-btn text-black p-3 hover:bg-pink-dark rounded-btn" :class="isInWishlist() ? '!bg-pink-dark lg:!bg-pink-light' : 'bg-pink-light'" x-on:class="{ 'pointer-events-none': loading }">
        <span x-cloak x-show="!isInWishlist()">
            <svg class="size-6 text-optimo-darker" :class="{ '!hidden': loading }" aria-hidden="true">
                <use href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/i4-sprite.svg#ico-wishlist"></use>
            </svg>
        </span>
        <span x-cloak x-show="isInWishlist()">
            <svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewbox="0 0 24 24" class="size-6 text-optimo-darker" width="24" height="24" aria-hidden="true" :class="{ '!hidden': loading }"><path fill="#FF5C6E" d="M12.113 5.598c.03-.07.02-.06.09-.19.09-.18.19-.36.33-.54.5-.72 1.249-1.269 2.058-1.519.939-.29 1.688-.13 2.228.07.64.28.49.44-.19.43-.49.02-1.139.15-1.808.42-.44.18-.85.45-1.18.799-.16.18-.309.37-.429.59-.06.14-.11.17-.19.41-.06.25-.17.4-.2.739-.2 1.509-.49 1.429-.639 1.549-.14.06-.35.04-.42 0-.3-.11-.51-.66-.55-1.08-.04-.28-.11-.48-.159-.729-.05-.25-.12-.46-.22-.62-.1-.2-.23-.37-.35-.54-.27-.339-.609-.619-.979-.829-.749-.43-1.678-.51-2.567-.3C5.159 4.589 4 6.528 4.33 8.447c.2 1.968 1.409 3.797 2.757 5.516 1.39 1.709 2.978 3.348 4.636 4.977.37.37.2.2.24.25.04-.04-.12.12.25-.23.52-.49 1.01-1 1.509-1.5a49.169 49.169 0 0 0 2.827-3.137l.37-.47c1.269-1.689 2.478-3.598 2.697-5.556.12-1.1.02-1.979-.24-2.708-.16-.42-.23-.66-.11-.72.1-.05.41.07.78.53.52.62 1.08 1.789.93 3.168-.02.3-.06.59-.13.859-.5 2.278-1.809 4.147-3.118 5.856l-.04.06c-.35.45-.72.87-1.089 1.3-.53.589-.95 1.058-1.379 1.498-.41.43-.829.85-1.249 1.27l-.639.619-.34.33c-.21.18-.41.44-.63.55-.419.219-.928.04-1.298-.44l-.7-.71-1.228-1.28c-1.619-1.728-3.218-3.497-4.516-5.575-.77-1.24-1.41-2.639-1.569-4.167-.08-.74-.09-1.55.15-2.319.22-.77.63-1.479 1.189-2.058.55-.57 1.279-1 2.058-1.19a5.22 5.22 0 0 1 2.328-.07c.78.17 1.509.56 2.088 1.11.29.27.53.59.75.929.06.08.09.17.14.26l.05.1.05.14.04.1c.04.11.07.17.07.17s.06-.09.149-.32v.01Z"></path><path fill="#FF5C6E" stroke="#FF5C6E" d="M16 3.502c-2.4 0-3.667 3-4 4.5-.5-2.167-2.4-6-6-4-4.5 2.5-1.5 7.5 0 9.5 1.2 1.6 4.5 5.333 6 7 1.666-1.834 5.5-6.3 7.5-9.5 2.5-4-.5-7.5-3.5-7.5Z"></path></svg>
        </span>
        <span x-cloak x-show="loading">
            <svg class="animate-spin text-optimo-darker size-6" aria-hidden="true">
                <use href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/i4-sprite.svg#ico-loader"></use>
            </svg>
        </span>
        <span class="hidden">
            Mes Favoris        </span>
    </button>
        </div>
    </div>

            </div>
                                </div>
    </form>

                        </div>
                                            <div class="p-slider__item rounded-xs p-2.5 flex shrink-0 w-[calc(100%/1.5)] bg-white md:max-w-[25%] js_slide lg:max-w-none lg:w-[calc(100%/5-30px/5)]">
                            
    <form x-data="initPriceBox()" @update-prices-28729="updatePrice($event.detail);" @update-gallery-28729="$refs.gallery &amp;&amp; ($refs.gallery.src = $event.detail)" x-i4-ajax-cart action="https://www.espaceplaisir.fr/checkout/cart/add/uenc/aHR0cHM6Ly93d3cuZXNwYWNlcGxhaXNpci5mci8~/product/28729/" method="post" data-id="28729" data-sku="CONF-19255" data-type="configurable" class="product-item relative w-full flex flex-col group gap-2.5 lg:gap-6">
        <input name="form_key" type="hidden" value="9eL2rVtwBZOcNZP5">        <input type="hidden" name="product" value="28729">

        
        <a class="product__link relative hover:text-black" href="https://www.espaceplaisir.fr/womanizer-starlet-3.html">
            <img class="w-full object-contain text-transparent" x-ref="gallery" src="https://www.espaceplaisir.fr/media/catalog/product/8/4/84392_a47003_green_005.jpg?quality=80&amp;fit=bounds&amp;height=480&amp;width=480" loading="lazy" width="480" height="480" alt="" title="">
            
                                <div class="label-container absolute inset-0 grid grid-flow-col grid-cols-3 grid-rows-3">
        
            <div class="relative group/item" style="border:2px solid #1d3766; background-color:#1d3766;padding-left:4px;padding-right:4px;padding-top:2px; padding-bottom:2px;text-align:center;font-weight:bold; border-radius:4px; width:fit-content;height:fit-content; font-size: 14px; color: #ffffff;grid-area:1/1">
        <div class="whitespace-nowrap">
        Top vente    </div>
    
    
            </div>
        </div>
                    </a>
        <div class="relative text-center flex flex-col text-sm items-center h-full product-info-block product-info-block__container">
            <div class="text-sm text-center line-clamp-1 leading-6 mb-2 min-h-6 product-info-block">
                Womanizer            </div>
            <p class="product__name text-sm font-bold mb-2 min-h-8 leading-5 font-Averta">
                <a class="product__link text-center line-clamp-2 font-bold product-info-block" href="https://www.espaceplaisir.fr/womanizer-starlet-3.html">
                    Womanizer Starlet 3 stimulateur clitoridien                </a>
            </p>
            <div class="review min-h-5 w-full flex flex-col items-center">
                
<div class="r-stars">
    <div class="r-stars__box">
        <i class="r-stars__empty"></i>
        <i class="r-stars__full" style="width:98%"></i>
    </div>
    <span class="text-sm leading-none">(512)</span>
</div>
            </div>
            <div class="text-grey-dark">
                <div class="price-box price-final_price" data-role="priceBox" data-product-id="28730" data-price-box="product-id-28730">

<div class="special-price-container special-price-exist           simple-product">
    <span class="special-price">
        
<span class="price-container            price-final_price tax weee">
            <span class="price-label">
            Prix sp&eacute;cial        </span>
        <span id="product-price-28730" data-price-amount="58.65" data-price-type="finalPrice" class="price-wrapper">
        <span class="price">58,65&nbsp;&euro;</span>    </span>
                <meta content="58.65">
        <meta content="EUR">
    </span>
    </span>
    <span class="final-price-box">
        
<span class="price-container            price-final_price tax weee">
            <span class="price-label">
            Prix normal        </span>
        <span id="old-price-28730" data-price-amount="69" data-price-type="oldPrice" class="price-wrapper">
        <span class="price">69,00&nbsp;&euro;</span>    </span>
                <meta content="69">
        <meta content="EUR">
    </span>
    </span>
</div>

</div>            </div>
            <div class="w-full min-h-[2rem] lg:block mt-auto">
                                    <div class="mb-4 lg:mb-5 block">
                            <script>
        function initConfigurableSwatchOptions_28729() {
            return {
                ...initConfigurableOptions('28729', {"attributes":{"275":{"id":"275","code":"couleur","label":"Couleur","options":[{"id":"61","label":"Gris","products":["28734"]},{"id":"70","label":"Rose","products":["28732"]},{"id":"66","label":"Violet","products":["28733"]},{"id":"52","label":"Turquoise","products":["28730"]},{"id":"47","label":"Magenta","products":["28731"]}],"position":"0"}},"template":"<%- data.price %>\u00a0\u20ac","currencyFormat":"%s\u00a0\u20ac","optionPrices":{"28734":{"baseOldPrice":{"amount":57.499999},"oldPrice":{"amount":69},"basePrice":{"amount":48.874999},"finalPrice":{"amount":58.65},"tierPrices":[],"msrpPrice":{"amount":0}},"28732":{"baseOldPrice":{"amount":57.499999},"oldPrice":{"amount":69},"basePrice":{"amount":48.874999},"finalPrice":{"amount":58.65},"tierPrices":[],"msrpPrice":{"amount":0}},"28733":{"baseOldPrice":{"amount":57.499999},"oldPrice":{"amount":69},"basePrice":{"amount":48.874999},"finalPrice":{"amount":58.65},"tierPrices":[],"msrpPrice":{"amount":0}},"28730":{"baseOldPrice":{"amount":57.499999},"oldPrice":{"amount":69},"basePrice":{"amount":48.874999},"finalPrice":{"amount":58.65},"tierPrices":[],"msrpPrice":{"amount":0}},"28731":{"baseOldPrice":{"amount":57.499999},"oldPrice":{"amount":69},"basePrice":{"amount":48.874999},"finalPrice":{"amount":58.65},"tierPrices":[],"msrpPrice":{"amount":0}}},"priceFormat":{"pattern":"%s\u00a0\u20ac","precision":2,"requiredPrecision":2,"decimalSymbol":",","groupSymbol":"\u202f","groupLength":3,"integerRequired":false},"prices":{"baseOldPrice":{"amount":57.499999},"oldPrice":{"amount":69},"basePrice":{"amount":48.874999},"finalPrice":{"amount":58.65}},"productId":"28729","chooseText":"Choisissez une option...","images":[],"index":{"28734":{"275":"61"},"28732":{"275":"70"},"28733":{"275":"66"},"28730":{"275":"52"},"28731":{"275":"47"}},"salable":[],"canDisplayShowOutOfStockStatus":false,"channel":"website","salesChannelCode":"espace_plaisir_fo","sku":{"28734":"WZ231SG6","28732":"WZ231SGD","28733":"WZ231SG5","28730":"WZ231SG8","28731":"WZ231SG4"},"label_reload":"https:\/\/www.espaceplaisir.fr\/amasty_label\/ajax\/label\/","label_category":".product-image-container, .product-item-photo, .cdz-product-top","label_product":".fotorama__stage, #amasty-main-container","original_product_id":"28729","defaultValues":{"275":"52"}}),
                ...initSwatchOptions({"275":{"61":{"type":2,"value":"https:\/\/www.espaceplaisir.fr\/media\/catalog\/product\/8\/4\/84391_a47003_grey_000.jpg?quality=80&fit=bounds&height=100&width=100","thumb":"https:\/\/www.espaceplaisir.fr\/media\/catalog\/product\/8\/4\/84391_a47003_grey_000.jpg?quality=80&fit=bounds&height=90&width=110","label":"Gris"},"70":{"type":2,"value":"https:\/\/www.espaceplaisir.fr\/media\/catalog\/product\/8\/4\/84397_a47003_pink_000.jpg?quality=80&fit=bounds&height=100&width=100","thumb":"https:\/\/www.espaceplaisir.fr\/media\/catalog\/product\/8\/4\/84397_a47003_pink_000.jpg?quality=80&fit=bounds&height=90&width=110","label":"Rose"},"66":{"type":2,"value":"https:\/\/www.espaceplaisir.fr\/media\/catalog\/product\/8\/4\/84390_a47003_blue_000.jpg?quality=80&fit=bounds&height=100&width=100","thumb":"https:\/\/www.espaceplaisir.fr\/media\/catalog\/product\/8\/4\/84390_a47003_blue_000.jpg?quality=80&fit=bounds&height=90&width=110","label":"Violet"},"52":{"type":2,"value":"https:\/\/www.espaceplaisir.fr\/media\/catalog\/product\/8\/4\/84392_a47003_green_005.jpg?quality=80&fit=bounds&height=100&width=100","thumb":"https:\/\/www.espaceplaisir.fr\/media\/catalog\/product\/8\/4\/84392_a47003_green_005.jpg?quality=80&fit=bounds&height=90&width=110","label":"Turquoise"},"47":{"type":2,"value":"https:\/\/www.espaceplaisir.fr\/media\/catalog\/product\/8\/4\/84389_a47003_purple_000.jpg?quality=80&fit=bounds&height=100&width=100","thumb":"https:\/\/www.espaceplaisir.fr\/media\/catalog\/product\/8\/4\/84389_a47003_purple_000.jpg?quality=80&fit=bounds&height=90&width=110","label":"Magenta"},"additional_data":"{\"swatch_input_type\":\"visual\",\"update_product_preview_image\":\"1\",\"use_product_image_for_swatch\":\"1\"}"}}),
                mediaCallback: "https\u003A\u002F\u002Fwww.espaceplaisir.fr\u002Fswatches\u002Fajax\u002Fmedia\u002F",
                changeOption(optionId, value, skipUpdateGallery) {
                    this.selectedValues[optionId] = value;
                    this.findSimpleIndex();
                    this.findAllowedAttributeOptions();
                    this.updatePrices();
                    !skipUpdateGallery && this.updateGallery();

                    const detail = {
                        productId: this.productId,
                        optionId: optionId,
                        value: value,
                        productIndex: this.productIndex,
                        selectedValues: this.selectedValues,
                        candidates: this.findProductIdsForPartialSelection(this.selectedValues),
                        variationSku: this.optionConfig.sku[this.productIndex]
                    };

                    this.$root.dispatchEvent(new CustomEvent('configurable-selection-changed', { detail, bubbles: true }));
                    this.$root.dispatchEvent(new CustomEvent(`configurable-selection-changed-${this.productId}`, { detail, bubbles: true }));
                },
                updateGallery() {
                    if (!this.productIndex) {
                        return;
                    }

                    fetch(`${this.mediaCallback}?product_id=${this.productIndex}&isAjax=true`, {
                            method: 'GET',
                            headers: {
                                'Content-Type': 'application/json',
                                'X-Requested-With': 'XMLHttpRequest'
                            }
                        }
                    ).then(response => {
                            return response.json()
                        }
                    ).then(data => {
                        if (data.errors) {
                            // non critical failure only console logged
                            console.warn(data.errors);
                        } else {
                            const image = data && data.medium;

                            image && this.$root.dispatchEvent(
                                new CustomEvent(
                                    "update-gallery-28729",
                                    {detail: image, bubbles: true}
                                )
                            );
                        }
                    }).catch(error => {
                        console.warn(error)
                    });
                },
                preselectQuerystringItems() {
                    // pre-select option like ?size=167
                    const urlQueryParams = new URLSearchParams(window.location.search.replace('?', ''));
                    Object.values(this.optionConfig.attributes).map(attribute => {
                        // Don't update images on load, since PLPs already set the main image to the selected options
                        const skipUpdateGallery = true;
                        urlQueryParams.get(attribute.code) &&
                        this.changeOption(attribute.id, urlQueryParams.get(attribute.code), skipUpdateGallery);
                    });
                }
            };
        }

    </script>

    <div x-data="initConfigurableSwatchOptions_28729()" x-init="findAllowedAttributeOptions();" x-intersect="showSwatches = true" @private-content-loaded.window="onGetCartData($event.detail.data)" class="relative">
        <div>
                            
                                <div class="swatch-attribute-options swatch-attribute mb-1  couleur">
                    <template x-if="showSwatches">
                        <div class="flex flex-wrap justify-center gap-1" role="radiogroup" x-data="{countOfOptions: Object.keys(optionConfig.attributes[275].options).length}">
                            <label class="sr-only" for="attributecouleur">
                                Couleur                            </label>
                            <template x-for="(item, index) in optionConfig.attributes[275].options" :key="item.id">
                                
<div :class="{    'opacity-0 absolute size-0 -z-1' : index &gt;= numberToShow,    'opacity-40 out-of-stock-swatch' : checkStatusOfItem(275, item.id)}">
    <template x-if="optionIsEnabled(275, item.id) &amp;&amp; optionIsActive(275, item.id)">
        <label @click="swatchImgListener(275, item.id)" :for="'attribute-option-28729-'+item.id" class="swatch-option flex justify-center relative border-2 border-transparent mb-0 font-normal" :data-sku="optionConfig.sku[productIndex]" :class="{                'size-8 rounded-btn border' : !isTextSwatch(275, item.id),                [getTypeSwatches(275, item.id)]: true,                '!border-pink text-pink selected active': selectedValues[275] === item.id &amp;&amp; !isTextSwatch(275, item.id),                'hover:border-optimo-darker': !isTextSwatch(275, item.id)            }" :style="getSwatchBackgroundStyle('275',item.id)" @mouseenter.self="activeTooltipItem = {                    attribute: '275',                    item: item.id                }; tooltipPositionElement = $event.target;" @mouseleave.self="activeTooltipItem = false;">
            <input :id="'attribute-option-28729-'+item.id" :value="item.id" name="super_attribute[275]" type="radio" class="-z-1 absolute opacity-0 h-0" @change="changeOption(275, $event.target.value)" x-model="selectedValues[275]" :required="getAllowedAttributeOptions(275)                .filter(option =&gt; selectedValues[option]).length === 0" :aria-label="getSwatchText(275, item.id)" aria-describedby="attribute-label-28729-275">
            <div x-html="getSwatchText(275, item.id)" class="swatch-option__text flex items-center justify-center min-w-10 h-5 border border-grey                        rounded py-0 px-2 whitespace-nowrap text-black hover:border-optimo-darker" :class="{                 'sr-only' : !isTextSwatch(275, item.id),                 'border-optimo border-1 selected text-pink': updateConfigurableOptions(selectedValues[275] === item.id)                 }"></div>
        </label>
    </template>

    <template x-if="optionIsEnabled(275, item.id) &amp;&amp; !optionIsActive(275, item.id)">
        <div class="swatch-option relative swatch-option border-2 border-transparent" :class="{                'size-4 rounded-btn': !isTextSwatch(275, item.id),                [getTypeSwatches(275, item.id)]: true,                'hidden': index &gt;= numberToShow,                'opacity-50 select-none border-container-darker': !isTextSwatch(275, item.id)            }" :style="getSwatchBackgroundStyle('275',item.id)">
            <div x-html="getSwatchText(275, item.id)" class="swatch-option__text whitespace-nowrap" :class="{                    'sr-only' : !isTextSwatch(275, item.id),                    'swatch-option__text flex items-center justify-center border rounded min-w-10 h-5 text-sm border-grey-light line-through' : isTextSwatch(275, item.id)                 }"></div>
            <svg class="absolute inset-0 w-full h-full text-grey-light bg-white bg-opacity-25">
                <line x1="0" y1="100%" x2="100%" y2="0" class="stroke-current stroke-1"></line>
            </svg>
        </div>
    </template>
</div>
                            </template>
                            <template x-if="numberToShow &lt; countOfOptions">
                                <a href="https://www.espaceplaisir.fr/womanizer-starlet-3.html" title="Plus" class="flex items-center w-6 h-6 rounded-full bg-grey-lighter">
                                    <svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewbox="0 0 24 24" class="size-4 ml-2 bg-1 rounded-big" width="16" height="16" aria-hidden="true"><path d="m16.1836 12.9933-4.608-.1266-5.5476-.16h-.7197c-.4898 0-.9896 0-1.4894-.0534-.2799-.0333-.4998-.2066-.6697-.3466-.2099-.1667-.2-.4267.04-.58.17-.1067.3998-.26.6697-.2734 3.3386-.16 6.8571-.3066 10.7454-.4533l2.8088.0667h.1999c.7197 0 1.4594 0 2.1791.08.4098.0466.7297.3.9896.5066.3099.2467.2899.6334-.06.8534-.2499.16-.5797.38-.9796.4-.0899 0-.1699.0066-.2599.0133-.6797.0267-1.3794.0467-2.0691.08h-1.2295v-.0067Z"></path><path d="m12.9933 7.8163-.1266 4.6081-.16 5.5476v.7197c0 .4898 0 .9896-.0534 1.4894-.0333.2799-.2066.4998-.3466.6697-.1667.2099-.4267.1999-.58-.04-.1067-.1699-.26-.3998-.2734-.6697-.16-3.3386-.3066-6.8571-.4533-10.7454l.0667-2.8088v-.2c0-.7196 0-1.4593.08-2.179.0466-.4098.3-.7297.5066-.9896.2467-.3098.6334-.2899.8534.06.16.2499.38.5797.4.9796 0 .09.0066.1699.0133.2599.0267.6797.0467 1.3794.08 2.069V7.8164h-.0067Z"></path></svg>
                                </a>
                            </template>
                        </div>
                    </template>
                </div>
                    </div>
                    <template x-if="isTooltipVisible()">
    <div @resize.window="activeTooltipItem = false">
        <div class="absolute shadow-box2" :style="getTooltipPosition()">
            <div x-ref="content" class="absolute top-0 left-0 z-10 min-w-20 p-2 -mt-6 text-sm leading-tight text-black                    transform -translate-x-1/3 -translate-y-full bg-white border border-grey-light text-center">
                <template x-if="isVisualSwatch(activeTooltipItem.attribute, activeTooltipItem.item)">
                    <div class="inline-block" :style="getTooltipImageStyle(activeTooltipItem.attribute, activeTooltipItem.item)"></div>
                </template>
                <span class="mx-2 text-lg font-semibold whitespace-nowrap" x-html="getTooltipLabel()"></span>
            </div>
        </div>
        <div class="absolute flex pointer-events-none" :style="getTooltipArrowPosition()">
            <svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" viewbox="0 0 256 256" width="16" height="16" aria-hidden="true">
  <path fill="#999" d="M254.307 69.55a9.806 9.806 0 0 0-2.88-6.956c-3.84-3.84-10.069-3.84-13.907 0l-109.663 109.66-109.66-109.66c-3.842-3.84-10.069-3.84-13.91 0-3.839 3.842-3.839 10.069 0 13.91l116.615 116.615c3.838 3.841 10.068 3.841 13.907 0L251.424 76.504a9.797 9.797 0 0 0 2.883-6.955z"></path>
</svg>
        </div>
    </div>
</template>
            </div>
                    </div>
                                    <div class="product__actions flex gap-2">
                    <button x-ref="submit" class="btn btn-tertiary text-sm px-1 truncate w-full min-w-auto transition-all block" aria-label="Ajouter au panier Womanizer Starlet 3 stimulateur clitoridien">
                <span class="text-addtocart hidden lg:block">
                    Ajouter au panier                </span>
                <span class="icons-addtocart flex gap-2 justify-center items-center lg:hidden">
                    <svg xmlns="http://www.w3.org/2000/svg" id="Calque_2" fill="currentColor" viewbox="0 0 18 18" width="17" height="17" aria-hidden="true"><g id="SYSTEM_3"><g id="Editor_3"><g id="icon_add_3"><path d="m13.19,10.49l-4.61-.19c-1.85-.08-3.7-.16-5.55-.24-.24,0-.48,0-.72,0-.49,0-.99,0-1.49-.08-.28-.05-.5-.31-.67-.52-.21-.25-.2-.64.04-.87.17-.16.4-.39.67-.41,3.34-.24,6.86-.46,10.75-.68l2.81.1h.2c.72,0,1.46,0,2.18.12.41.07.73.45.99.76.31.37.29.95-.06,1.28-.25.24-.58.57-.98.6-.09,0-.17.01-.26.02-.68.04-1.38.07-2.07.12h-.57c-.26,0-.46,0-.66,0Z"></path><path d="m10.49,4.81l-.19,4.61c-.08,1.85-.16,3.7-.24,5.55,0,.24,0,.48,0,.72,0,.49,0,.99-.08,1.49-.05.28-.31.5-.52.67-.25.21-.64.2-.87-.04-.16-.17-.39-.4-.41-.67-.24-3.34-.46-6.86-.68-10.75l.1-2.81v-.2c0-.72,0-1.46.12-2.18.07-.41.45-.73.76-.99.37-.31.95-.29,1.28.06.24.25.57.58.6.98,0,.09.01.17.02.26.04.68.07,1.38.12,2.07v.57c0,.26,0,.46,0,.66Z"></path></g></g></g></svg>
                    <svg xmlns="http://www.w3.org/2000/svg" id="Calque_2" fill="currentColor" viewbox="0 0 15 20" width="18" height="19" aria-hidden="true"><g id="BUSINESS_3"><g id="Finance_Payment_3"><g id="icon_cart_3"><path d="m4.48,3.1c.07-.93.58-1.82,1.36-2.39C6.61.14,7.64-.11,8.6.04c1.17.16,2.19.93,2.65,1.93.25.48.31,1.08.29,1.55l-.02,1.4v.73c0,.49,0,1-.04,1.5-.02.29-.13.5-.21.68-.1.21-.26.2-.36-.04-.07-.17-.16-.4-.17-.67-.02-.84-.05-1.7-.07-2.56-.01-.43-.03-.86-.04-1.3-.02-.38-.14-.75-.34-1.08-.41-.66-1.17-1.11-1.99-1.15-.82-.05-1.66.31-2.14.96-.25.3-.4.66-.46,1.03-.02.09-.02.19-.03.28v.35s-.02.71-.02.71v.2c0,.72,0,1.47-.05,2.2-.03.41-.18.74-.31,1-.15.31-.39.29-.52-.06-.1-.25-.23-.59-.25-.99,0-.09,0-.18,0-.26-.02-.69-.03-1.39-.05-2.09v-.57c0-.27-.01-.44.01-.7Z"></path><path d="m.23,17.58c.27-2,.51-4.02.74-6.04l.77-6.05.14-1.13c.05-.43.31-.7.7-.75.19-.02.43,0,.61,0h.34s1.35.01,1.35.01l2.71.02,5.61.04c.19,0,.33.05.46.13.15.11.2.24.26.4.05.18.05.36.08.54l.04.34.17,1.3.26,1.91c.17,1.29.36,2.62.49,3.92.08.75.03,1.33,0,1.81-.05.57-.24.55-.44-.06-.14-.43-.33-1.02-.43-1.72-.19-1.28-.38-2.58-.59-3.94-.1-.68-.2-1.38-.31-2.1-.05-.36-.11-.73-.16-1.1l-.05-.3c0-.08-.08-.08-.14-.07-1.52.02-3.18.04-4.94.07-.91.01-1.84.02-2.8.03-.48,0-.96.01-1.45.02-.23,0-.57,0-.52,0-.04,0-.07.02-.06.07-.13,1.2-.27,2.53-.43,3.94-.17,1.49-.33,3.08-.48,4.68l-.38,3.12-.21,1.56-.03.23v.02s0,.02.01.02h.02s.23,0,.23,0h.58s.51,0,.51,0c1.83,0,3.74,0,5.58.06,1.05.04,1.87.23,2.54.38.79.19.74.48-.15.65-.63.12-1.5.29-2.51.3-.22,0-.44,0-.65,0-1.75.02-3.54.04-5.32.06H.88c-.19,0-.35-.06-.47-.13-.09-.05-.19-.14-.27-.25-.07-.11-.09-.16-.12-.29-.05-.1,0-.26,0-.4.01-.14.04-.28.06-.42.05-.32.09-.62.13-.92Z"></path></g></g></g></svg>
                </span>
            </button>
                <div>
            
    <button x-data="initWishlist()" x-on:click.prevent="toggleWishlist" aria-label="Ajouter &agrave; la liste de souhaits" type="button" class="wishlist-btn text-black p-3 hover:bg-pink-dark rounded-btn" :class="isInWishlist() ? '!bg-pink-dark lg:!bg-pink-light' : 'bg-pink-light'" x-on:class="{ 'pointer-events-none': loading }">
        <span x-cloak x-show="!isInWishlist()">
            <svg class="size-6 text-optimo-darker" :class="{ '!hidden': loading }" aria-hidden="true">
                <use href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/i4-sprite.svg#ico-wishlist"></use>
            </svg>
        </span>
        <span x-cloak x-show="isInWishlist()">
            <svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewbox="0 0 24 24" class="size-6 text-optimo-darker" width="24" height="24" aria-hidden="true" :class="{ '!hidden': loading }"><path fill="#FF5C6E" d="M12.113 5.598c.03-.07.02-.06.09-.19.09-.18.19-.36.33-.54.5-.72 1.249-1.269 2.058-1.519.939-.29 1.688-.13 2.228.07.64.28.49.44-.19.43-.49.02-1.139.15-1.808.42-.44.18-.85.45-1.18.799-.16.18-.309.37-.429.59-.06.14-.11.17-.19.41-.06.25-.17.4-.2.739-.2 1.509-.49 1.429-.639 1.549-.14.06-.35.04-.42 0-.3-.11-.51-.66-.55-1.08-.04-.28-.11-.48-.159-.729-.05-.25-.12-.46-.22-.62-.1-.2-.23-.37-.35-.54-.27-.339-.609-.619-.979-.829-.749-.43-1.678-.51-2.567-.3C5.159 4.589 4 6.528 4.33 8.447c.2 1.968 1.409 3.797 2.757 5.516 1.39 1.709 2.978 3.348 4.636 4.977.37.37.2.2.24.25.04-.04-.12.12.25-.23.52-.49 1.01-1 1.509-1.5a49.169 49.169 0 0 0 2.827-3.137l.37-.47c1.269-1.689 2.478-3.598 2.697-5.556.12-1.1.02-1.979-.24-2.708-.16-.42-.23-.66-.11-.72.1-.05.41.07.78.53.52.62 1.08 1.789.93 3.168-.02.3-.06.59-.13.859-.5 2.278-1.809 4.147-3.118 5.856l-.04.06c-.35.45-.72.87-1.089 1.3-.53.589-.95 1.058-1.379 1.498-.41.43-.829.85-1.249 1.27l-.639.619-.34.33c-.21.18-.41.44-.63.55-.419.219-.928.04-1.298-.44l-.7-.71-1.228-1.28c-1.619-1.728-3.218-3.497-4.516-5.575-.77-1.24-1.41-2.639-1.569-4.167-.08-.74-.09-1.55.15-2.319.22-.77.63-1.479 1.189-2.058.55-.57 1.279-1 2.058-1.19a5.22 5.22 0 0 1 2.328-.07c.78.17 1.509.56 2.088 1.11.29.27.53.59.75.929.06.08.09.17.14.26l.05.1.05.14.04.1c.04.11.07.17.07.17s.06-.09.149-.32v.01Z"></path><path fill="#FF5C6E" stroke="#FF5C6E" d="M16 3.502c-2.4 0-3.667 3-4 4.5-.5-2.167-2.4-6-6-4-4.5 2.5-1.5 7.5 0 9.5 1.2 1.6 4.5 5.333 6 7 1.666-1.834 5.5-6.3 7.5-9.5 2.5-4-.5-7.5-3.5-7.5Z"></path></svg>
        </span>
        <span x-cloak x-show="loading">
            <svg class="animate-spin text-optimo-darker size-6" aria-hidden="true">
                <use href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/i4-sprite.svg#ico-loader"></use>
            </svg>
        </span>
        <span class="hidden">
            Mes Favoris        </span>
    </button>
        </div>
    </div>

            </div>
                                </div>
    </form>

                        </div>
                                            <div class="p-slider__item rounded-xs p-2.5 flex shrink-0 w-[calc(100%/1.5)] bg-white md:max-w-[25%] js_slide lg:max-w-none lg:w-[calc(100%/5-30px/5)]">
                            
    <form x-data="{}" x-i4-ajax-cart action="https://www.espaceplaisir.fr/checkout/cart/add/uenc/aHR0cHM6Ly93d3cuZXNwYWNlcGxhaXNpci5mci8~/product/33350/" method="post" data-id="33350" data-sku="670234" data-type="simple" class="product-item relative w-full flex flex-col group gap-2.5 lg:gap-6">
        <input name="form_key" type="hidden" value="rgh0Y4hMyX8wMkwL">        <input type="hidden" name="product" value="33350">

        
        <a class="product__link relative hover:text-black" href="https://www.espaceplaisir.fr/f-machine-pro-4-fuck-machine.html">
            <img class="w-full object-contain text-transparent" x-ref="gallery" src="https://www.espaceplaisir.fr/media/catalog/product/2/2/22365-134125-thickbox.jpg?quality=80&amp;fit=bounds&amp;height=480&amp;width=480" loading="lazy" width="480" height="480" alt="Sex machine F-Machine Pro 4" title="Sex machine F-Machine Pro 4">
            
                                <div class="label-container absolute inset-0 grid grid-flow-col grid-cols-3 grid-rows-3">
        
            <div class="relative group/item" style="border:2px solid #1d3766; background-color:#1d3766;padding-left:4px;padding-right:4px;padding-top:2px; padding-bottom:2px;text-align:center;font-weight:bold; border-radius:4px; width:fit-content;height:fit-content; font-size: 14px; color: #ffffff;grid-area:1/1">
        <div class="whitespace-nowrap">
        Top vente    </div>
    
    
            </div>
        </div>
                    </a>
        <div class="relative text-center flex flex-col text-sm items-center h-full product-info-block product-info-block__container">
            <div class="text-sm text-center line-clamp-1 leading-6 mb-2 min-h-6 product-info-block">
                F-Machine            </div>
            <p class="product__name text-sm font-bold mb-2 min-h-8 leading-5 font-Averta">
                <a class="product__link text-center line-clamp-2 font-bold product-info-block" href="https://www.espaceplaisir.fr/f-machine-pro-4-fuck-machine.html">
                    Sex machine F-Machine Pro 4                </a>
            </p>
            <div class="review min-h-5 w-full flex flex-col items-center">
                
<div class="r-stars">
    <div class="r-stars__box">
        <i class="r-stars__empty"></i>
        <i class="r-stars__full" style="width:100%"></i>
    </div>
    <span class="text-sm leading-none">(7)</span>
</div>
            </div>
            <div class="text-grey-dark">
                <div class="price-box price-final_price" data-role="priceBox" data-product-id="33350" data-price-box="product-id-33350">

<div class="normal-final-price           simple-product">
    <span class="special-price">
        
<span class="price-container            price-final_price tax weee">
            <span class="price-label">
            Prix sp&eacute;cial        </span>
        <span id="product-price-33350" data-price-amount="749" data-price-type="finalPrice" class="price-wrapper">
        <span class="price">749,00&nbsp;&euro;</span>    </span>
                <meta content="749">
        <meta content="EUR">
    </span>
    </span>
    <span class="final-price-box">
        
<span class="price-container            price-final_price tax weee">
            <span class="price-label">
            Prix normal        </span>
        <span id="old-price-33350" data-price-amount="749" data-price-type="oldPrice" class="price-wrapper">
        <span class="price">749,00&nbsp;&euro;</span>    </span>
                <meta content="749">
        <meta content="EUR">
    </span>
    </span>
</div>

</div>            </div>
            <div class="w-full min-h-[2rem] lg:block mt-auto">
                                    <div class="mb-4 lg:mb-5 block">
                                            </div>
                                    <div class="product__actions flex gap-2">
                    <button x-ref="submit" class="btn btn-tertiary text-sm px-1 truncate w-full min-w-auto transition-all block" aria-label="Ajouter au panier Sex machine F-Machine Pro 4">
                <span class="text-addtocart hidden lg:block">
                    Ajouter au panier                </span>
                <span class="icons-addtocart flex gap-2 justify-center items-center lg:hidden">
                    <svg xmlns="http://www.w3.org/2000/svg" id="Calque_2" fill="currentColor" viewbox="0 0 18 18" width="17" height="17" aria-hidden="true"><g id="SYSTEM_6"><g id="Editor_6"><g id="icon_add_6"><path d="m13.19,10.49l-4.61-.19c-1.85-.08-3.7-.16-5.55-.24-.24,0-.48,0-.72,0-.49,0-.99,0-1.49-.08-.28-.05-.5-.31-.67-.52-.21-.25-.2-.64.04-.87.17-.16.4-.39.67-.41,3.34-.24,6.86-.46,10.75-.68l2.81.1h.2c.72,0,1.46,0,2.18.12.41.07.73.45.99.76.31.37.29.95-.06,1.28-.25.24-.58.57-.98.6-.09,0-.17.01-.26.02-.68.04-1.38.07-2.07.12h-.57c-.26,0-.46,0-.66,0Z"></path><path d="m10.49,4.81l-.19,4.61c-.08,1.85-.16,3.7-.24,5.55,0,.24,0,.48,0,.72,0,.49,0,.99-.08,1.49-.05.28-.31.5-.52.67-.25.21-.64.2-.87-.04-.16-.17-.39-.4-.41-.67-.24-3.34-.46-6.86-.68-10.75l.1-2.81v-.2c0-.72,0-1.46.12-2.18.07-.41.45-.73.76-.99.37-.31.95-.29,1.28.06.24.25.57.58.6.98,0,.09.01.17.02.26.04.68.07,1.38.12,2.07v.57c0,.26,0,.46,0,.66Z"></path></g></g></g></svg>
                    <svg xmlns="http://www.w3.org/2000/svg" id="Calque_2" fill="currentColor" viewbox="0 0 15 20" width="18" height="19" aria-hidden="true"><g id="BUSINESS_6"><g id="Finance_Payment_6"><g id="icon_cart_6"><path d="m4.48,3.1c.07-.93.58-1.82,1.36-2.39C6.61.14,7.64-.11,8.6.04c1.17.16,2.19.93,2.65,1.93.25.48.31,1.08.29,1.55l-.02,1.4v.73c0,.49,0,1-.04,1.5-.02.29-.13.5-.21.68-.1.21-.26.2-.36-.04-.07-.17-.16-.4-.17-.67-.02-.84-.05-1.7-.07-2.56-.01-.43-.03-.86-.04-1.3-.02-.38-.14-.75-.34-1.08-.41-.66-1.17-1.11-1.99-1.15-.82-.05-1.66.31-2.14.96-.25.3-.4.66-.46,1.03-.02.09-.02.19-.03.28v.35s-.02.71-.02.71v.2c0,.72,0,1.47-.05,2.2-.03.41-.18.74-.31,1-.15.31-.39.29-.52-.06-.1-.25-.23-.59-.25-.99,0-.09,0-.18,0-.26-.02-.69-.03-1.39-.05-2.09v-.57c0-.27-.01-.44.01-.7Z"></path><path d="m.23,17.58c.27-2,.51-4.02.74-6.04l.77-6.05.14-1.13c.05-.43.31-.7.7-.75.19-.02.43,0,.61,0h.34s1.35.01,1.35.01l2.71.02,5.61.04c.19,0,.33.05.46.13.15.11.2.24.26.4.05.18.05.36.08.54l.04.34.17,1.3.26,1.91c.17,1.29.36,2.62.49,3.92.08.75.03,1.33,0,1.81-.05.57-.24.55-.44-.06-.14-.43-.33-1.02-.43-1.72-.19-1.28-.38-2.58-.59-3.94-.1-.68-.2-1.38-.31-2.1-.05-.36-.11-.73-.16-1.1l-.05-.3c0-.08-.08-.08-.14-.07-1.52.02-3.18.04-4.94.07-.91.01-1.84.02-2.8.03-.48,0-.96.01-1.45.02-.23,0-.57,0-.52,0-.04,0-.07.02-.06.07-.13,1.2-.27,2.53-.43,3.94-.17,1.49-.33,3.08-.48,4.68l-.38,3.12-.21,1.56-.03.23v.02s0,.02.01.02h.02s.23,0,.23,0h.58s.51,0,.51,0c1.83,0,3.74,0,5.58.06,1.05.04,1.87.23,2.54.38.79.19.74.48-.15.65-.63.12-1.5.29-2.51.3-.22,0-.44,0-.65,0-1.75.02-3.54.04-5.32.06H.88c-.19,0-.35-.06-.47-.13-.09-.05-.19-.14-.27-.25-.07-.11-.09-.16-.12-.29-.05-.1,0-.26,0-.4.01-.14.04-.28.06-.42.05-.32.09-.62.13-.92Z"></path></g></g></g></svg>
                </span>
            </button>
                <div>
            
    <button x-data="initWishlist()" x-on:click.prevent="toggleWishlist" aria-label="Ajouter &agrave; la liste de souhaits" type="button" class="wishlist-btn text-black p-3 hover:bg-pink-dark rounded-btn" :class="isInWishlist() ? '!bg-pink-dark lg:!bg-pink-light' : 'bg-pink-light'" x-on:class="{ 'pointer-events-none': loading }">
        <span x-cloak x-show="!isInWishlist()">
            <svg class="size-6 text-optimo-darker" :class="{ '!hidden': loading }" aria-hidden="true">
                <use href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/i4-sprite.svg#ico-wishlist"></use>
            </svg>
        </span>
        <span x-cloak x-show="isInWishlist()">
            <svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewbox="0 0 24 24" class="size-6 text-optimo-darker" width="24" height="24" aria-hidden="true" :class="{ '!hidden': loading }"><path fill="#FF5C6E" d="M12.113 5.598c.03-.07.02-.06.09-.19.09-.18.19-.36.33-.54.5-.72 1.249-1.269 2.058-1.519.939-.29 1.688-.13 2.228.07.64.28.49.44-.19.43-.49.02-1.139.15-1.808.42-.44.18-.85.45-1.18.799-.16.18-.309.37-.429.59-.06.14-.11.17-.19.41-.06.25-.17.4-.2.739-.2 1.509-.49 1.429-.639 1.549-.14.06-.35.04-.42 0-.3-.11-.51-.66-.55-1.08-.04-.28-.11-.48-.159-.729-.05-.25-.12-.46-.22-.62-.1-.2-.23-.37-.35-.54-.27-.339-.609-.619-.979-.829-.749-.43-1.678-.51-2.567-.3C5.159 4.589 4 6.528 4.33 8.447c.2 1.968 1.409 3.797 2.757 5.516 1.39 1.709 2.978 3.348 4.636 4.977.37.37.2.2.24.25.04-.04-.12.12.25-.23.52-.49 1.01-1 1.509-1.5a49.169 49.169 0 0 0 2.827-3.137l.37-.47c1.269-1.689 2.478-3.598 2.697-5.556.12-1.1.02-1.979-.24-2.708-.16-.42-.23-.66-.11-.72.1-.05.41.07.78.53.52.62 1.08 1.789.93 3.168-.02.3-.06.59-.13.859-.5 2.278-1.809 4.147-3.118 5.856l-.04.06c-.35.45-.72.87-1.089 1.3-.53.589-.95 1.058-1.379 1.498-.41.43-.829.85-1.249 1.27l-.639.619-.34.33c-.21.18-.41.44-.63.55-.419.219-.928.04-1.298-.44l-.7-.71-1.228-1.28c-1.619-1.728-3.218-3.497-4.516-5.575-.77-1.24-1.41-2.639-1.569-4.167-.08-.74-.09-1.55.15-2.319.22-.77.63-1.479 1.189-2.058.55-.57 1.279-1 2.058-1.19a5.22 5.22 0 0 1 2.328-.07c.78.17 1.509.56 2.088 1.11.29.27.53.59.75.929.06.08.09.17.14.26l.05.1.05.14.04.1c.04.11.07.17.07.17s.06-.09.149-.32v.01Z"></path><path fill="#FF5C6E" stroke="#FF5C6E" d="M16 3.502c-2.4 0-3.667 3-4 4.5-.5-2.167-2.4-6-6-4-4.5 2.5-1.5 7.5 0 9.5 1.2 1.6 4.5 5.333 6 7 1.666-1.834 5.5-6.3 7.5-9.5 2.5-4-.5-7.5-3.5-7.5Z"></path></svg>
        </span>
        <span x-cloak x-show="loading">
            <svg class="animate-spin text-optimo-darker size-6" aria-hidden="true">
                <use href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/i4-sprite.svg#ico-loader"></use>
            </svg>
        </span>
        <span class="hidden">
            Mes Favoris        </span>
    </button>
        </div>
    </div>

            </div>
                                </div>
    </form>

                        </div>
                                            <div class="p-slider__item rounded-xs p-2.5 flex shrink-0 w-[calc(100%/1.5)] bg-white md:max-w-[25%] js_slide lg:max-w-none lg:w-[calc(100%/5-30px/5)]">
                            
    <form x-data="{}" x-i4-ajax-cart action="https://www.espaceplaisir.fr/checkout/cart/add/uenc/aHR0cHM6Ly93d3cuZXNwYWNlcGxhaXNpci5mci8_bmV3c2xldHRlcj0mdXNlcl9paWQ9MTVlOTNhMjhhY2JmNzJhYzVmZDMxMzVlMTY1OTQ0MzUzODQwMDI3MWU5NWIwZDJlZmMxOTllZWQ0ZTg3Yzk1Mw~~/product/32657/" method="post" data-id="32657" data-sku="80097" data-type="simple" class="product-item relative w-full flex flex-col group gap-2.5 lg:gap-6">
        <input name="form_key" type="hidden" value="WT9TM0h2aXTn6DSs">        <input type="hidden" name="product" value="32657">

        
        <a class="product__link relative hover:text-black" href="https://www.espaceplaisir.fr/blowmotion-warming-vibrating-male-masturbator.html">
            <img class="w-full object-contain text-transparent" x-ref="gallery" src="https://www.espaceplaisir.fr/media/catalog/product/8/0/80097_a44459_black_000.jpg?quality=80&amp;fit=bounds&amp;height=480&amp;width=480" loading="lazy" width="480" height="480" alt="Masturbateur vibrant et chauffant Blowmotion" title="Masturbateur vibrant et chauffant Blowmotion">
                    <div class="group/item special-label text-right flex justify-end items-start absolute right-3 top-3">
        <div class="whitespace-nowrap w-max px-1 py-2 label-block rounded-lg text-sm">
            - 20%
        </div>
    </div>

                                                </a>
        <div class="relative text-center flex flex-col text-sm items-center h-full product-info-block product-info-block__container">
            <div class="text-sm text-center line-clamp-1 leading-6 mb-2 min-h-6 product-info-block">
                Blowmotion            </div>
            <p class="product__name text-sm font-bold mb-2 min-h-8 leading-5 font-Averta">
                <a class="product__link text-center line-clamp-2 font-bold product-info-block" href="https://www.espaceplaisir.fr/blowmotion-warming-vibrating-male-masturbator.html">
                    Masturbateur vibrant et chauffant Blowmotion                </a>
            </p>
            <div class="review min-h-5 w-full flex flex-col items-center">
                
<div class="r-stars">
    <div class="r-stars__box">
        <i class="r-stars__empty"></i>
        <i class="r-stars__full" style="width:76%"></i>
    </div>
    <span class="text-sm leading-none">(721)</span>
</div>
            </div>
            <div class="text-grey-dark">
                <div class="price-box price-final_price" data-role="priceBox" data-product-id="32657" data-price-box="product-id-32657">

<div class="special-price-container special-price-exist           simple-product">
    <span class="special-price">
        
<span class="price-container            price-final_price tax weee">
            <span class="price-label">
            Prix sp&eacute;cial        </span>
        <span id="product-price-32657" data-price-amount="63.92" data-price-type="finalPrice" class="price-wrapper">
        <span class="price">63,92&nbsp;&euro;</span>    </span>
                <meta content="63.92">
        <meta content="EUR">
    </span>
    </span>
    <span class="final-price-box">
        
<span class="price-container            price-final_price tax weee">
            <span class="price-label">
            Prix normal        </span>
        <span id="old-price-32657" data-price-amount="79.9" data-price-type="oldPrice" class="price-wrapper">
        <span class="price">79,90&nbsp;&euro;</span>    </span>
                <meta content="79.9">
        <meta content="EUR">
    </span>
    </span>
</div>

</div>            </div>
            <div class="w-full min-h-[2rem] lg:block mt-auto">
                                    <div class="mb-4 lg:mb-5 block">
                                            </div>
                                    <div class="product__actions flex gap-2">
                    <button x-ref="submit" class="btn btn-tertiary text-sm px-1 truncate w-full min-w-auto transition-all block" aria-label="Ajouter au panier Masturbateur vibrant et chauffant Blowmotion">
                <span class="text-addtocart hidden lg:block">
                    Ajouter au panier                </span>
                <span class="icons-addtocart flex gap-2 justify-center items-center lg:hidden">
                    <svg xmlns="http://www.w3.org/2000/svg" id="Calque_2" fill="currentColor" viewbox="0 0 18 18" width="17" height="17" aria-hidden="true"><g id="SYSTEM_2"><g id="Editor_2"><g id="icon_add_2"><path d="m13.19,10.49l-4.61-.19c-1.85-.08-3.7-.16-5.55-.24-.24,0-.48,0-.72,0-.49,0-.99,0-1.49-.08-.28-.05-.5-.31-.67-.52-.21-.25-.2-.64.04-.87.17-.16.4-.39.67-.41,3.34-.24,6.86-.46,10.75-.68l2.81.1h.2c.72,0,1.46,0,2.18.12.41.07.73.45.99.76.31.37.29.95-.06,1.28-.25.24-.58.57-.98.6-.09,0-.17.01-.26.02-.68.04-1.38.07-2.07.12h-.57c-.26,0-.46,0-.66,0Z"></path><path d="m10.49,4.81l-.19,4.61c-.08,1.85-.16,3.7-.24,5.55,0,.24,0,.48,0,.72,0,.49,0,.99-.08,1.49-.05.28-.31.5-.52.67-.25.21-.64.2-.87-.04-.16-.17-.39-.4-.41-.67-.24-3.34-.46-6.86-.68-10.75l.1-2.81v-.2c0-.72,0-1.46.12-2.18.07-.41.45-.73.76-.99.37-.31.95-.29,1.28.06.24.25.57.58.6.98,0,.09.01.17.02.26.04.68.07,1.38.12,2.07v.57c0,.26,0,.46,0,.66Z"></path></g></g></g></svg>
                    <svg xmlns="http://www.w3.org/2000/svg" id="Calque_2" fill="currentColor" viewbox="0 0 15 20" width="18" height="19" aria-hidden="true"><g id="BUSINESS_2"><g id="Finance_Payment_2"><g id="icon_cart_2"><path d="m4.48,3.1c.07-.93.58-1.82,1.36-2.39C6.61.14,7.64-.11,8.6.04c1.17.16,2.19.93,2.65,1.93.25.48.31,1.08.29,1.55l-.02,1.4v.73c0,.49,0,1-.04,1.5-.02.29-.13.5-.21.68-.1.21-.26.2-.36-.04-.07-.17-.16-.4-.17-.67-.02-.84-.05-1.7-.07-2.56-.01-.43-.03-.86-.04-1.3-.02-.38-.14-.75-.34-1.08-.41-.66-1.17-1.11-1.99-1.15-.82-.05-1.66.31-2.14.96-.25.3-.4.66-.46,1.03-.02.09-.02.19-.03.28v.35s-.02.71-.02.71v.2c0,.72,0,1.47-.05,2.2-.03.41-.18.74-.31,1-.15.31-.39.29-.52-.06-.1-.25-.23-.59-.25-.99,0-.09,0-.18,0-.26-.02-.69-.03-1.39-.05-2.09v-.57c0-.27-.01-.44.01-.7Z"></path><path d="m.23,17.58c.27-2,.51-4.02.74-6.04l.77-6.05.14-1.13c.05-.43.31-.7.7-.75.19-.02.43,0,.61,0h.34s1.35.01,1.35.01l2.71.02,5.61.04c.19,0,.33.05.46.13.15.11.2.24.26.4.05.18.05.36.08.54l.04.34.17,1.3.26,1.91c.17,1.29.36,2.62.49,3.92.08.75.03,1.33,0,1.81-.05.57-.24.55-.44-.06-.14-.43-.33-1.02-.43-1.72-.19-1.28-.38-2.58-.59-3.94-.1-.68-.2-1.38-.31-2.1-.05-.36-.11-.73-.16-1.1l-.05-.3c0-.08-.08-.08-.14-.07-1.52.02-3.18.04-4.94.07-.91.01-1.84.02-2.8.03-.48,0-.96.01-1.45.02-.23,0-.57,0-.52,0-.04,0-.07.02-.06.07-.13,1.2-.27,2.53-.43,3.94-.17,1.49-.33,3.08-.48,4.68l-.38,3.12-.21,1.56-.03.23v.02s0,.02.01.02h.02s.23,0,.23,0h.58s.51,0,.51,0c1.83,0,3.74,0,5.58.06,1.05.04,1.87.23,2.54.38.79.19.74.48-.15.65-.63.12-1.5.29-2.51.3-.22,0-.44,0-.65,0-1.75.02-3.54.04-5.32.06H.88c-.19,0-.35-.06-.47-.13-.09-.05-.19-.14-.27-.25-.07-.11-.09-.16-.12-.29-.05-.1,0-.26,0-.4.01-.14.04-.28.06-.42.05-.32.09-.62.13-.92Z"></path></g></g></g></svg>
                </span>
            </button>
                <div>
            
    <button x-data="initWishlist()" x-on:click.prevent="toggleWishlist" aria-label="Ajouter &agrave; la liste de souhaits" type="button" class="wishlist-btn text-black p-3 hover:bg-pink-dark rounded-btn" :class="isInWishlist() ? '!bg-pink-dark lg:!bg-pink-light' : 'bg-pink-light'" x-on:class="{ 'pointer-events-none': loading }">
        <span x-cloak x-show="!isInWishlist()">
            <svg class="size-6 text-optimo-darker" :class="{ '!hidden': loading }" aria-hidden="true">
                <use href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/i4-sprite.svg#ico-wishlist"></use>
            </svg>
        </span>
        <span x-cloak x-show="isInWishlist()">
            <svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewbox="0 0 24 24" class="size-6 text-optimo-darker" width="24" height="24" aria-hidden="true" :class="{ '!hidden': loading }"><path fill="#FF5C6E" d="M12.113 5.598c.03-.07.02-.06.09-.19.09-.18.19-.36.33-.54.5-.72 1.249-1.269 2.058-1.519.939-.29 1.688-.13 2.228.07.64.28.49.44-.19.43-.49.02-1.139.15-1.808.42-.44.18-.85.45-1.18.799-.16.18-.309.37-.429.59-.06.14-.11.17-.19.41-.06.25-.17.4-.2.739-.2 1.509-.49 1.429-.639 1.549-.14.06-.35.04-.42 0-.3-.11-.51-.66-.55-1.08-.04-.28-.11-.48-.159-.729-.05-.25-.12-.46-.22-.62-.1-.2-.23-.37-.35-.54-.27-.339-.609-.619-.979-.829-.749-.43-1.678-.51-2.567-.3C5.159 4.589 4 6.528 4.33 8.447c.2 1.968 1.409 3.797 2.757 5.516 1.39 1.709 2.978 3.348 4.636 4.977.37.37.2.2.24.25.04-.04-.12.12.25-.23.52-.49 1.01-1 1.509-1.5a49.169 49.169 0 0 0 2.827-3.137l.37-.47c1.269-1.689 2.478-3.598 2.697-5.556.12-1.1.02-1.979-.24-2.708-.16-.42-.23-.66-.11-.72.1-.05.41.07.78.53.52.62 1.08 1.789.93 3.168-.02.3-.06.59-.13.859-.5 2.278-1.809 4.147-3.118 5.856l-.04.06c-.35.45-.72.87-1.089 1.3-.53.589-.95 1.058-1.379 1.498-.41.43-.829.85-1.249 1.27l-.639.619-.34.33c-.21.18-.41.44-.63.55-.419.219-.928.04-1.298-.44l-.7-.71-1.228-1.28c-1.619-1.728-3.218-3.497-4.516-5.575-.77-1.24-1.41-2.639-1.569-4.167-.08-.74-.09-1.55.15-2.319.22-.77.63-1.479 1.189-2.058.55-.57 1.279-1 2.058-1.19a5.22 5.22 0 0 1 2.328-.07c.78.17 1.509.56 2.088 1.11.29.27.53.59.75.929.06.08.09.17.14.26l.05.1.05.14.04.1c.04.11.07.17.07.17s.06-.09.149-.32v.01Z"></path><path fill="#FF5C6E" stroke="#FF5C6E" d="M16 3.502c-2.4 0-3.667 3-4 4.5-.5-2.167-2.4-6-6-4-4.5 2.5-1.5 7.5 0 9.5 1.2 1.6 4.5 5.333 6 7 1.666-1.834 5.5-6.3 7.5-9.5 2.5-4-.5-7.5-3.5-7.5Z"></path></svg>
        </span>
        <span x-cloak x-show="loading">
            <svg class="animate-spin text-optimo-darker size-6" aria-hidden="true">
                <use href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/i4-sprite.svg#ico-loader"></use>
            </svg>
        </span>
        <span class="hidden">
            Mes Favoris        </span>
    </button>
        </div>
    </div>

            </div>
                                </div>
    </form>

                        </div>
                                            <div class="p-slider__item rounded-xs p-2.5 flex shrink-0 w-[calc(100%/1.5)] bg-white md:max-w-[25%] js_slide lg:max-w-none lg:w-[calc(100%/5-30px/5)]">
                            
    <form x-data="initPriceBox()" @update-prices-34460="updatePrice($event.detail);" @update-gallery-34460="$refs.gallery &amp;&amp; ($refs.gallery.src = $event.detail)" x-i4-ajax-cart action="https://www.espaceplaisir.fr/checkout/cart/add/uenc/aHR0cHM6Ly93d3cuZXNwYWNlcGxhaXNpci5mci8_cmVmPUVFQzAzMDg0XzE5N0IxQzA2LUFGNzUtNDBDRC1BQjkyLUQ3QjRFNTlDRjk2QSZrd2t1bml2PVA0QUQ0QjU2MDAwRjEwMC1jY3A0YWQ0YjU2MDAwZjFiMQ~~/product/34460/" method="post" data-id="34460" data-sku="CONF-23103" data-type="configurable" class="product-item relative w-full flex flex-col group gap-2.5 lg:gap-6">
        <input name="form_key" type="hidden" value="8yNxmtfnPOYer9vi">        <input type="hidden" name="product" value="34460">

        
        <a class="product__link relative hover:text-black" href="https://www.espaceplaisir.fr/womanizer-premium-1.html">
            <img class="w-full object-contain text-transparent" x-ref="gallery" src="https://www.espaceplaisir.fr/media/catalog/product/w/o/womanizer-premium-1-bleu-1.jpg?quality=80&amp;fit=bounds&amp;height=480&amp;width=480" loading="lazy" width="480" height="480" alt="" title="">
            
                                <div class="label-container absolute inset-0 grid grid-flow-col grid-cols-3 grid-rows-3">
        
            <div class="relative group/item" style="width:72px; height:72px; margin: 0 0 0 -8px; font-size: 14px; color: #000000;grid-area:3/3">
        <div class="whitespace-nowrap absolute left-1/2 top-1/2 -translate-y-1/2 -translate-x-1/2">
            </div>
            <img class="w-full h-full" src="https://www.espaceplaisir.fr/media/amasty/amlabel/0526_macaron_bundlePLP_V3_1.png" loading="lazy" title="Womanizer Mini Offert Macaron " alt="Womanizer Mini Offert Macaron ">
    
    
            </div>
        </div>
                    </a>
        <div class="relative text-center flex flex-col text-sm items-center h-full product-info-block product-info-block__container">
            <div class="text-sm text-center line-clamp-1 leading-6 mb-2 min-h-6 product-info-block">
                Womanizer            </div>
            <p class="product__name text-sm font-bold mb-2 min-h-8 leading-5 font-Averta">
                <a class="product__link text-center line-clamp-2 font-bold product-info-block" href="https://www.espaceplaisir.fr/womanizer-premium-1.html">
                    Womanizer Premium 1 stimulateur clitoridien                </a>
            </p>
            <div class="review min-h-5 w-full flex flex-col items-center">
                
<div class="r-stars">
    <div class="r-stars__box">
        <i class="r-stars__empty"></i>
        <i class="r-stars__full" style="width:90%"></i>
    </div>
    <span class="text-sm leading-none">(1020)</span>
</div>
            </div>
            <div class="text-grey-dark">
                <div class="price-box price-final_price" data-role="priceBox" data-product-id="34462" data-price-box="product-id-34462">

<div class="special-price-container special-price-exist           simple-product">
    <span class="special-price">
        
<span class="price-container            price-final_price tax weee">
            <span class="price-label">
            Prix sp&eacute;cial        </span>
        <span id="product-price-34462" data-price-amount="129" data-price-type="finalPrice" class="price-wrapper">
        <span class="price">129,00&nbsp;&euro;</span>    </span>
                <meta content="129">
        <meta content="EUR">
    </span>
    </span>
    <span class="final-price-box">
        
<span class="price-container            price-final_price tax weee">
            <span class="price-label">
            Prix normal        </span>
        <span id="old-price-34462" data-price-amount="179" data-price-type="oldPrice" class="price-wrapper">
        <span class="price">179,00&nbsp;&euro;</span>    </span>
                <meta content="179">
        <meta content="EUR">
    </span>
    </span>
</div>

</div>            </div>
            <div class="w-full min-h-[2rem] lg:block mt-auto">
                                    <div class="mb-4 lg:mb-5 block">
                            <script>
        function initConfigurableSwatchOptions_34460() {
            return {
                ...initConfigurableOptions('34460', {"attributes":{"275":{"id":"275","code":"couleur","label":"Couleur","options":[{"id":"53","label":"Noir","products":[]},{"id":"45","label":"Bleu","products":["34462"]}],"position":"0"}},"template":"<%- data.price %>\u00a0\u20ac","currencyFormat":"%s\u00a0\u20ac","optionPrices":{"34462":{"baseOldPrice":{"amount":149.16666566667},"oldPrice":{"amount":179},"basePrice":{"amount":107.499999},"finalPrice":{"amount":129},"tierPrices":[],"msrpPrice":{"amount":0}}},"priceFormat":{"pattern":"%s\u00a0\u20ac","precision":2,"requiredPrecision":2,"decimalSymbol":",","groupSymbol":"\u202f","groupLength":3,"integerRequired":false},"prices":{"baseOldPrice":{"amount":149.16666566667},"oldPrice":{"amount":179},"basePrice":{"amount":107.499999},"finalPrice":{"amount":129}},"productId":"34460","chooseText":"Choisissez une option...","images":[],"index":{"34462":{"275":"45"}},"salable":[],"canDisplayShowOutOfStockStatus":false,"preSelectedGallery":[],"channel":"website","salesChannelCode":"espace_plaisir_fo","sku":{"34462":"WZ092SG5"},"label_reload":"https:\/\/www.espaceplaisir.fr\/amasty_label\/ajax\/label\/","label_category":".product-image-container, .product-item-photo, .cdz-product-top","label_product":".fotorama__stage, #amasty-main-container","original_product_id":"34460","defaultValues":{"275":"45"}}),
                ...initSwatchOptions({"275":{"45":{"type":2,"value":"https:\/\/www.espaceplaisir.fr\/media\/catalog\/product\/w\/o\/womanizer-premium-1-bleu-1.jpg?quality=80&fit=bounds&height=100&width=100","thumb":"https:\/\/www.espaceplaisir.fr\/media\/catalog\/product\/w\/o\/womanizer-premium-1-bleu-1.jpg?quality=80&fit=bounds&height=90&width=110","label":"Bleu"},"additional_data":"{\"swatch_input_type\":\"visual\",\"update_product_preview_image\":\"1\",\"use_product_image_for_swatch\":\"1\"}"}}),
                mediaCallback: "https\u003A\u002F\u002Fwww.espaceplaisir.fr\u002Fswatches\u002Fajax\u002Fmedia\u002F",
                changeOption(optionId, value, skipUpdateGallery) {
                    this.selectedValues[optionId] = value;
                    this.findSimpleIndex();
                    this.findAllowedAttributeOptions();
                    this.updatePrices();
                    !skipUpdateGallery && this.updateGallery();

                    const detail = {
                        productId: this.productId,
                        optionId: optionId,
                        value: value,
                        productIndex: this.productIndex,
                        selectedValues: this.selectedValues,
                        candidates: this.findProductIdsForPartialSelection(this.selectedValues),
                        variationSku: this.optionConfig.sku[this.productIndex]
                    };

                    this.$root.dispatchEvent(new CustomEvent('configurable-selection-changed', { detail, bubbles: true }));
                    this.$root.dispatchEvent(new CustomEvent(`configurable-selection-changed-${this.productId}`, { detail, bubbles: true }));
                },
                updateGallery() {
                    if (!this.productIndex) {
                        return;
                    }

                    fetch(`${this.mediaCallback}?product_id=${this.productIndex}&isAjax=true`, {
                            method: 'GET',
                            headers: {
                                'Content-Type': 'application/json',
                                'X-Requested-With': 'XMLHttpRequest'
                            }
                        }
                    ).then(response => {
                            return response.json()
                        }
                    ).then(data => {
                        if (data.errors) {
                            // non critical failure only console logged
                            console.warn(data.errors);
                        } else {
                            const image = data && data.medium;

                            image && this.$root.dispatchEvent(
                                new CustomEvent(
                                    "update-gallery-34460",
                                    {detail: image, bubbles: true}
                                )
                            );
                        }
                    }).catch(error => {
                        console.warn(error)
                    });
                },
                preselectQuerystringItems() {
                    // pre-select option like ?size=167
                    const urlQueryParams = new URLSearchParams(window.location.search.replace('?', ''));
                    Object.values(this.optionConfig.attributes).map(attribute => {
                        // Don't update images on load, since PLPs already set the main image to the selected options
                        const skipUpdateGallery = true;
                        urlQueryParams.get(attribute.code) &&
                        this.changeOption(attribute.id, urlQueryParams.get(attribute.code), skipUpdateGallery);
                    });
                }
            };
        }

    </script>

    <div x-data="initConfigurableSwatchOptions_34460()" x-init="findAllowedAttributeOptions();" x-intersect="showSwatches = true" @private-content-loaded.window="onGetCartData($event.detail.data)" class="relative">
        <div>
                            
                                <div class="swatch-attribute-options swatch-attribute mb-1  couleur">
                    <template x-if="showSwatches">
                        <div class="flex flex-wrap justify-center gap-1" role="radiogroup" x-data="{countOfOptions: Object.keys(optionConfig.attributes[275].options).length}">
                            <label class="sr-only" for="attributecouleur">
                                Couleur                            </label>
                            <template x-for="(item, index) in optionConfig.attributes[275].options" :key="item.id">
                                
<div :class="{    'opacity-0 absolute size-0 -z-1' : index &gt;= numberToShow,    'opacity-40 out-of-stock-swatch' : checkStatusOfItem(275, item.id)}">
    <template x-if="optionIsEnabled(275, item.id) &amp;&amp; optionIsActive(275, item.id)">
        <label @click="swatchImgListener(275, item.id)" :for="'attribute-option-34460-'+item.id" class="swatch-option flex justify-center relative border-2 border-transparent mb-0 font-normal" :data-sku="optionConfig.sku[productIndex]" :class="{                'size-8 rounded-btn border' : !isTextSwatch(275, item.id),                [getTypeSwatches(275, item.id)]: true,                '!border-pink text-pink selected active': selectedValues[275] === item.id &amp;&amp; !isTextSwatch(275, item.id),                'hover:border-optimo-darker': !isTextSwatch(275, item.id)            }" :style="getSwatchBackgroundStyle('275',item.id)" @mouseenter.self="activeTooltipItem = {                    attribute: '275',                    item: item.id                }; tooltipPositionElement = $event.target;" @mouseleave.self="activeTooltipItem = false;">
            <input :id="'attribute-option-34460-'+item.id" :value="item.id" name="super_attribute[275]" type="radio" class="-z-1 absolute opacity-0 h-0" @change="changeOption(275, $event.target.value)" x-model="selectedValues[275]" :required="getAllowedAttributeOptions(275)                .filter(option =&gt; selectedValues[option]).length === 0" :aria-label="getSwatchText(275, item.id)" aria-describedby="attribute-label-34460-275">
            <div x-html="getSwatchText(275, item.id)" class="swatch-option__text flex items-center justify-center min-w-10 h-5 border border-grey                        rounded py-0 px-2 whitespace-nowrap text-black hover:border-optimo-darker" :class="{                 'sr-only' : !isTextSwatch(275, item.id),                 'border-optimo border-1 selected text-pink': updateConfigurableOptions(selectedValues[275] === item.id)                 }"></div>
        </label>
    </template>

    <template x-if="optionIsEnabled(275, item.id) &amp;&amp; !optionIsActive(275, item.id)">
        <div class="swatch-option relative swatch-option border-2 border-transparent" :class="{                'size-4 rounded-btn': !isTextSwatch(275, item.id),                [getTypeSwatches(275, item.id)]: true,                'hidden': index &gt;= numberToShow,                'opacity-50 select-none border-container-darker': !isTextSwatch(275, item.id)            }" :style="getSwatchBackgroundStyle('275',item.id)">
            <div x-html="getSwatchText(275, item.id)" class="swatch-option__text whitespace-nowrap" :class="{                    'sr-only' : !isTextSwatch(275, item.id),                    'swatch-option__text flex items-center justify-center border rounded min-w-10 h-5 text-sm border-grey-light line-through' : isTextSwatch(275, item.id)                 }"></div>
            <svg class="absolute inset-0 w-full h-full text-grey-light bg-white bg-opacity-25">
                <line x1="0" y1="100%" x2="100%" y2="0" class="stroke-current stroke-1"></line>
            </svg>
        </div>
    </template>
</div>
                            </template>
                            <template x-if="numberToShow &lt; countOfOptions">
                                <a href="https://www.espaceplaisir.fr/womanizer-premium-1.html" title="Plus" class="flex items-center w-6 h-6 rounded-full bg-grey-lighter">
                                    <svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewbox="0 0 24 24" class="size-4 ml-2 bg-1 rounded-big" width="16" height="16" aria-hidden="true"><path d="m16.1836 12.9933-4.608-.1266-5.5476-.16h-.7197c-.4898 0-.9896 0-1.4894-.0534-.2799-.0333-.4998-.2066-.6697-.3466-.2099-.1667-.2-.4267.04-.58.17-.1067.3998-.26.6697-.2734 3.3386-.16 6.8571-.3066 10.7454-.4533l2.8088.0667h.1999c.7197 0 1.4594 0 2.1791.08.4098.0466.7297.3.9896.5066.3099.2467.2899.6334-.06.8534-.2499.16-.5797.38-.9796.4-.0899 0-.1699.0066-.2599.0133-.6797.0267-1.3794.0467-2.0691.08h-1.2295v-.0067Z"></path><path d="m12.9933 7.8163-.1266 4.6081-.16 5.5476v.7197c0 .4898 0 .9896-.0534 1.4894-.0333.2799-.2066.4998-.3466.6697-.1667.2099-.4267.1999-.58-.04-.1067-.1699-.26-.3998-.2734-.6697-.16-3.3386-.3066-6.8571-.4533-10.7454l.0667-2.8088v-.2c0-.7196 0-1.4593.08-2.179.0466-.4098.3-.7297.5066-.9896.2467-.3098.6334-.2899.8534.06.16.2499.38.5797.4.9796 0 .09.0066.1699.0133.2599.0267.6797.0467 1.3794.08 2.069V7.8164h-.0067Z"></path></svg>
                                </a>
                            </template>
                        </div>
                    </template>
                </div>
                    </div>
                    <template x-if="isTooltipVisible()">
    <div @resize.window="activeTooltipItem = false">
        <div class="absolute shadow-box2" :style="getTooltipPosition()">
            <div x-ref="content" class="absolute top-0 left-0 z-10 min-w-20 p-2 -mt-6 text-sm leading-tight text-black                    transform -translate-x-1/3 -translate-y-full bg-white border border-grey-light text-center">
                <template x-if="isVisualSwatch(activeTooltipItem.attribute, activeTooltipItem.item)">
                    <div class="inline-block" :style="getTooltipImageStyle(activeTooltipItem.attribute, activeTooltipItem.item)"></div>
                </template>
                <span class="mx-2 text-lg font-semibold whitespace-nowrap" x-html="getTooltipLabel()"></span>
            </div>
        </div>
        <div class="absolute flex pointer-events-none" :style="getTooltipArrowPosition()">
            <svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" viewbox="0 0 256 256" width="16" height="16" aria-hidden="true">
  <path fill="#999" d="M254.307 69.55a9.806 9.806 0 0 0-2.88-6.956c-3.84-3.84-10.069-3.84-13.907 0l-109.663 109.66-109.66-109.66c-3.842-3.84-10.069-3.84-13.91 0-3.839 3.842-3.839 10.069 0 13.91l116.615 116.615c3.838 3.841 10.068 3.841 13.907 0L251.424 76.504a9.797 9.797 0 0 0 2.883-6.955z"></path>
</svg>
        </div>
    </div>
</template>
            </div>
                    </div>
                                    <div class="product__actions flex gap-2">
                    <button x-ref="submit" class="btn btn-tertiary text-sm px-1 truncate w-full min-w-auto transition-all block" aria-label="Ajouter au panier Womanizer Premium 1 stimulateur clitoridien">
                <span class="text-addtocart hidden lg:block">
                    Ajouter au panier                </span>
                <span class="icons-addtocart flex gap-2 justify-center items-center lg:hidden">
                    <svg xmlns="http://www.w3.org/2000/svg" id="Calque_2" fill="currentColor" viewbox="0 0 18 18" width="17" height="17" aria-hidden="true"><g id="SYSTEM_2"><g id="Editor_2"><g id="icon_add_2"><path d="m13.19,10.49l-4.61-.19c-1.85-.08-3.7-.16-5.55-.24-.24,0-.48,0-.72,0-.49,0-.99,0-1.49-.08-.28-.05-.5-.31-.67-.52-.21-.25-.2-.64.04-.87.17-.16.4-.39.67-.41,3.34-.24,6.86-.46,10.75-.68l2.81.1h.2c.72,0,1.46,0,2.18.12.41.07.73.45.99.76.31.37.29.95-.06,1.28-.25.24-.58.57-.98.6-.09,0-.17.01-.26.02-.68.04-1.38.07-2.07.12h-.57c-.26,0-.46,0-.66,0Z"></path><path d="m10.49,4.81l-.19,4.61c-.08,1.85-.16,3.7-.24,5.55,0,.24,0,.48,0,.72,0,.49,0,.99-.08,1.49-.05.28-.31.5-.52.67-.25.21-.64.2-.87-.04-.16-.17-.39-.4-.41-.67-.24-3.34-.46-6.86-.68-10.75l.1-2.81v-.2c0-.72,0-1.46.12-2.18.07-.41.45-.73.76-.99.37-.31.95-.29,1.28.06.24.25.57.58.6.98,0,.09.01.17.02.26.04.68.07,1.38.12,2.07v.57c0,.26,0,.46,0,.66Z"></path></g></g></g></svg>
                    <svg xmlns="http://www.w3.org/2000/svg" id="Calque_2" fill="currentColor" viewbox="0 0 15 20" width="18" height="19" aria-hidden="true"><g id="BUSINESS_2"><g id="Finance_Payment_2"><g id="icon_cart_2"><path d="m4.48,3.1c.07-.93.58-1.82,1.36-2.39C6.61.14,7.64-.11,8.6.04c1.17.16,2.19.93,2.65,1.93.25.48.31,1.08.29,1.55l-.02,1.4v.73c0,.49,0,1-.04,1.5-.02.29-.13.5-.21.68-.1.21-.26.2-.36-.04-.07-.17-.16-.4-.17-.67-.02-.84-.05-1.7-.07-2.56-.01-.43-.03-.86-.04-1.3-.02-.38-.14-.75-.34-1.08-.41-.66-1.17-1.11-1.99-1.15-.82-.05-1.66.31-2.14.96-.25.3-.4.66-.46,1.03-.02.09-.02.19-.03.28v.35s-.02.71-.02.71v.2c0,.72,0,1.47-.05,2.2-.03.41-.18.74-.31,1-.15.31-.39.29-.52-.06-.1-.25-.23-.59-.25-.99,0-.09,0-.18,0-.26-.02-.69-.03-1.39-.05-2.09v-.57c0-.27-.01-.44.01-.7Z"></path><path d="m.23,17.58c.27-2,.51-4.02.74-6.04l.77-6.05.14-1.13c.05-.43.31-.7.7-.75.19-.02.43,0,.61,0h.34s1.35.01,1.35.01l2.71.02,5.61.04c.19,0,.33.05.46.13.15.11.2.24.26.4.05.18.05.36.08.54l.04.34.17,1.3.26,1.91c.17,1.29.36,2.62.49,3.92.08.75.03,1.33,0,1.81-.05.57-.24.55-.44-.06-.14-.43-.33-1.02-.43-1.72-.19-1.28-.38-2.58-.59-3.94-.1-.68-.2-1.38-.31-2.1-.05-.36-.11-.73-.16-1.1l-.05-.3c0-.08-.08-.08-.14-.07-1.52.02-3.18.04-4.94.07-.91.01-1.84.02-2.8.03-.48,0-.96.01-1.45.02-.23,0-.57,0-.52,0-.04,0-.07.02-.06.07-.13,1.2-.27,2.53-.43,3.94-.17,1.49-.33,3.08-.48,4.68l-.38,3.12-.21,1.56-.03.23v.02s0,.02.01.02h.02s.23,0,.23,0h.58s.51,0,.51,0c1.83,0,3.74,0,5.58.06,1.05.04,1.87.23,2.54.38.79.19.74.48-.15.65-.63.12-1.5.29-2.51.3-.22,0-.44,0-.65,0-1.75.02-3.54.04-5.32.06H.88c-.19,0-.35-.06-.47-.13-.09-.05-.19-.14-.27-.25-.07-.11-.09-.16-.12-.29-.05-.1,0-.26,0-.4.01-.14.04-.28.06-.42.05-.32.09-.62.13-.92Z"></path></g></g></g></svg>
                </span>
            </button>
                <div>
            
    <button x-data="initWishlist()" x-on:click.prevent="toggleWishlist" aria-label="Ajouter &agrave; la liste de souhaits" type="button" class="wishlist-btn text-black p-3 hover:bg-pink-dark rounded-btn" :class="isInWishlist() ? '!bg-pink-dark lg:!bg-pink-light' : 'bg-pink-light'" x-on:class="{ 'pointer-events-none': loading }">
        <span x-cloak x-show="!isInWishlist()">
            <svg class="size-6 text-optimo-darker" :class="{ '!hidden': loading }" aria-hidden="true">
                <use href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/i4-sprite.svg#ico-wishlist"></use>
            </svg>
        </span>
        <span x-cloak x-show="isInWishlist()">
            <svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewbox="0 0 24 24" class="size-6 text-optimo-darker" width="24" height="24" aria-hidden="true" :class="{ '!hidden': loading }"><path fill="#FF5C6E" d="M12.113 5.598c.03-.07.02-.06.09-.19.09-.18.19-.36.33-.54.5-.72 1.249-1.269 2.058-1.519.939-.29 1.688-.13 2.228.07.64.28.49.44-.19.43-.49.02-1.139.15-1.808.42-.44.18-.85.45-1.18.799-.16.18-.309.37-.429.59-.06.14-.11.17-.19.41-.06.25-.17.4-.2.739-.2 1.509-.49 1.429-.639 1.549-.14.06-.35.04-.42 0-.3-.11-.51-.66-.55-1.08-.04-.28-.11-.48-.159-.729-.05-.25-.12-.46-.22-.62-.1-.2-.23-.37-.35-.54-.27-.339-.609-.619-.979-.829-.749-.43-1.678-.51-2.567-.3C5.159 4.589 4 6.528 4.33 8.447c.2 1.968 1.409 3.797 2.757 5.516 1.39 1.709 2.978 3.348 4.636 4.977.37.37.2.2.24.25.04-.04-.12.12.25-.23.52-.49 1.01-1 1.509-1.5a49.169 49.169 0 0 0 2.827-3.137l.37-.47c1.269-1.689 2.478-3.598 2.697-5.556.12-1.1.02-1.979-.24-2.708-.16-.42-.23-.66-.11-.72.1-.05.41.07.78.53.52.62 1.08 1.789.93 3.168-.02.3-.06.59-.13.859-.5 2.278-1.809 4.147-3.118 5.856l-.04.06c-.35.45-.72.87-1.089 1.3-.53.589-.95 1.058-1.379 1.498-.41.43-.829.85-1.249 1.27l-.639.619-.34.33c-.21.18-.41.44-.63.55-.419.219-.928.04-1.298-.44l-.7-.71-1.228-1.28c-1.619-1.728-3.218-3.497-4.516-5.575-.77-1.24-1.41-2.639-1.569-4.167-.08-.74-.09-1.55.15-2.319.22-.77.63-1.479 1.189-2.058.55-.57 1.279-1 2.058-1.19a5.22 5.22 0 0 1 2.328-.07c.78.17 1.509.56 2.088 1.11.29.27.53.59.75.929.06.08.09.17.14.26l.05.1.05.14.04.1c.04.11.07.17.07.17s.06-.09.149-.32v.01Z"></path><path fill="#FF5C6E" stroke="#FF5C6E" d="M16 3.502c-2.4 0-3.667 3-4 4.5-.5-2.167-2.4-6-6-4-4.5 2.5-1.5 7.5 0 9.5 1.2 1.6 4.5 5.333 6 7 1.666-1.834 5.5-6.3 7.5-9.5 2.5-4-.5-7.5-3.5-7.5Z"></path></svg>
        </span>
        <span x-cloak x-show="loading">
            <svg class="animate-spin text-optimo-darker size-6" aria-hidden="true">
                <use href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/i4-sprite.svg#ico-loader"></use>
            </svg>
        </span>
        <span class="hidden">
            Mes Favoris        </span>
    </button>
        </div>
    </div>

            </div>
                                </div>
    </form>

                        </div>
                                            <div class="p-slider__item rounded-xs p-2.5 flex shrink-0 w-[calc(100%/1.5)] bg-white md:max-w-[25%] js_slide lg:max-w-none lg:w-[calc(100%/5-30px/5)]">
                            
    <form x-data="{}" x-i4-ajax-cart action="https://www.espaceplaisir.fr/checkout/cart/add/uenc/aHR0cHM6Ly93d3cuZXNwYWNlcGxhaXNpci5mci8~/product/32659/" method="post" data-id="32659" data-sku="84888" data-type="simple" class="product-item relative w-full flex flex-col group gap-2.5 lg:gap-6">
        <input name="form_key" type="hidden" value="FFysHhHxEz4qEEgW">        <input type="hidden" name="product" value="32659">

        
        <a class="product__link relative hover:text-black" href="https://www.espaceplaisir.fr/lovehoney-indulge-g-spot-and-clitoral-suction-stimulator.html">
            <img class="w-full object-contain text-transparent" x-ref="gallery" src="https://www.espaceplaisir.fr/media/catalog/product/2/1/21869-130790-thickbox.jpg?quality=80&amp;fit=bounds&amp;height=480&amp;width=480" loading="lazy" width="480" height="480" alt="Stimulateur point G et clitoris Indulge" title="Stimulateur point G et clitoris Indulge">
                    <div class="group/item special-label text-right flex justify-end items-start absolute right-3 top-3">
        <div class="whitespace-nowrap w-max px-1 py-2 label-block rounded-lg text-sm">
            - 15%
        </div>
    </div>

                                <div class="label-container absolute inset-0 grid grid-flow-col grid-cols-3 grid-rows-3">
        
            <div class="relative group/item" style="border:2px solid #1d3766; background-color:#1d3766;padding-left:4px;padding-right:4px;padding-top:2px; padding-bottom:2px;text-align:center;font-weight:bold; border-radius:4px; width:fit-content;height:fit-content; font-size: 14px; color: #ffffff;grid-area:1/1">
        <div class="whitespace-nowrap">
        Top vente    </div>
    
    
            </div>
        </div>
                    </a>
        <div class="relative text-center flex flex-col text-sm items-center h-full product-info-block product-info-block__container">
            <div class="text-sm text-center line-clamp-1 leading-6 mb-2 min-h-6 product-info-block">
                Lovehoney            </div>
            <p class="product__name text-sm font-bold mb-2 min-h-8 leading-5 font-Averta">
                <a class="product__link text-center line-clamp-2 font-bold product-info-block" href="https://www.espaceplaisir.fr/lovehoney-indulge-g-spot-and-clitoral-suction-stimulator.html">
                    Stimulateur point G et clitoris Indulge                </a>
            </p>
            <div class="review min-h-5 w-full flex flex-col items-center">
                
<div class="r-stars">
    <div class="r-stars__box">
        <i class="r-stars__empty"></i>
        <i class="r-stars__full" style="width:84%"></i>
    </div>
    <span class="text-sm leading-none">(1201)</span>
</div>
            </div>
            <div class="text-grey-dark">
                <div class="price-box price-final_price" data-role="priceBox" data-product-id="32659" data-price-box="product-id-32659">

<div class="special-price-container special-price-exist           simple-product">
    <span class="special-price">
        
<span class="price-container            price-final_price tax weee">
            <span class="price-label">
            Prix sp&eacute;cial        </span>
        <span id="product-price-32659" data-price-amount="59.42" data-price-type="finalPrice" class="price-wrapper">
        <span class="price">59,42&nbsp;&euro;</span>    </span>
                <meta content="59.42">
        <meta content="EUR">
    </span>
    </span>
    <span class="final-price-box">
        
<span class="price-container            price-final_price tax weee">
            <span class="price-label">
            Prix normal        </span>
        <span id="old-price-32659" data-price-amount="69.9" data-price-type="oldPrice" class="price-wrapper">
        <span class="price">69,90&nbsp;&euro;</span>    </span>
                <meta content="69.9">
        <meta content="EUR">
    </span>
    </span>
</div>

</div>            </div>
            <div class="w-full min-h-[2rem] lg:block mt-auto">
                                    <div class="mb-4 lg:mb-5 block">
                                            </div>
                                    <div class="product__actions flex gap-2">
                    <button x-ref="submit" class="btn btn-tertiary text-sm px-1 truncate w-full min-w-auto transition-all block" aria-label="Ajouter au panier Stimulateur point G et clitoris Indulge">
                <span class="text-addtocart hidden lg:block">
                    Ajouter au panier                </span>
                <span class="icons-addtocart flex gap-2 justify-center items-center lg:hidden">
                    <svg xmlns="http://www.w3.org/2000/svg" id="Calque_2" fill="currentColor" viewbox="0 0 18 18" width="17" height="17" aria-hidden="true"><g id="SYSTEM_2"><g id="Editor_2"><g id="icon_add_2"><path d="m13.19,10.49l-4.61-.19c-1.85-.08-3.7-.16-5.55-.24-.24,0-.48,0-.72,0-.49,0-.99,0-1.49-.08-.28-.05-.5-.31-.67-.52-.21-.25-.2-.64.04-.87.17-.16.4-.39.67-.41,3.34-.24,6.86-.46,10.75-.68l2.81.1h.2c.72,0,1.46,0,2.18.12.41.07.73.45.99.76.31.37.29.95-.06,1.28-.25.24-.58.57-.98.6-.09,0-.17.01-.26.02-.68.04-1.38.07-2.07.12h-.57c-.26,0-.46,0-.66,0Z"></path><path d="m10.49,4.81l-.19,4.61c-.08,1.85-.16,3.7-.24,5.55,0,.24,0,.48,0,.72,0,.49,0,.99-.08,1.49-.05.28-.31.5-.52.67-.25.21-.64.2-.87-.04-.16-.17-.39-.4-.41-.67-.24-3.34-.46-6.86-.68-10.75l.1-2.81v-.2c0-.72,0-1.46.12-2.18.07-.41.45-.73.76-.99.37-.31.95-.29,1.28.06.24.25.57.58.6.98,0,.09.01.17.02.26.04.68.07,1.38.12,2.07v.57c0,.26,0,.46,0,.66Z"></path></g></g></g></svg>
                    <svg xmlns="http://www.w3.org/2000/svg" id="Calque_2" fill="currentColor" viewbox="0 0 15 20" width="18" height="19" aria-hidden="true"><g id="BUSINESS_2"><g id="Finance_Payment_2"><g id="icon_cart_2"><path d="m4.48,3.1c.07-.93.58-1.82,1.36-2.39C6.61.14,7.64-.11,8.6.04c1.17.16,2.19.93,2.65,1.93.25.48.31,1.08.29,1.55l-.02,1.4v.73c0,.49,0,1-.04,1.5-.02.29-.13.5-.21.68-.1.21-.26.2-.36-.04-.07-.17-.16-.4-.17-.67-.02-.84-.05-1.7-.07-2.56-.01-.43-.03-.86-.04-1.3-.02-.38-.14-.75-.34-1.08-.41-.66-1.17-1.11-1.99-1.15-.82-.05-1.66.31-2.14.96-.25.3-.4.66-.46,1.03-.02.09-.02.19-.03.28v.35s-.02.71-.02.71v.2c0,.72,0,1.47-.05,2.2-.03.41-.18.74-.31,1-.15.31-.39.29-.52-.06-.1-.25-.23-.59-.25-.99,0-.09,0-.18,0-.26-.02-.69-.03-1.39-.05-2.09v-.57c0-.27-.01-.44.01-.7Z"></path><path d="m.23,17.58c.27-2,.51-4.02.74-6.04l.77-6.05.14-1.13c.05-.43.31-.7.7-.75.19-.02.43,0,.61,0h.34s1.35.01,1.35.01l2.71.02,5.61.04c.19,0,.33.05.46.13.15.11.2.24.26.4.05.18.05.36.08.54l.04.34.17,1.3.26,1.91c.17,1.29.36,2.62.49,3.92.08.75.03,1.33,0,1.81-.05.57-.24.55-.44-.06-.14-.43-.33-1.02-.43-1.72-.19-1.28-.38-2.58-.59-3.94-.1-.68-.2-1.38-.31-2.1-.05-.36-.11-.73-.16-1.1l-.05-.3c0-.08-.08-.08-.14-.07-1.52.02-3.18.04-4.94.07-.91.01-1.84.02-2.8.03-.48,0-.96.01-1.45.02-.23,0-.57,0-.52,0-.04,0-.07.02-.06.07-.13,1.2-.27,2.53-.43,3.94-.17,1.49-.33,3.08-.48,4.68l-.38,3.12-.21,1.56-.03.23v.02s0,.02.01.02h.02s.23,0,.23,0h.58s.51,0,.51,0c1.83,0,3.74,0,5.58.06,1.05.04,1.87.23,2.54.38.79.19.74.48-.15.65-.63.12-1.5.29-2.51.3-.22,0-.44,0-.65,0-1.75.02-3.54.04-5.32.06H.88c-.19,0-.35-.06-.47-.13-.09-.05-.19-.14-.27-.25-.07-.11-.09-.16-.12-.29-.05-.1,0-.26,0-.4.01-.14.04-.28.06-.42.05-.32.09-.62.13-.92Z"></path></g></g></g></svg>
                </span>
            </button>
                <div>
            
    <button x-data="initWishlist()" x-on:click.prevent="toggleWishlist" aria-label="Ajouter &agrave; la liste de souhaits" type="button" class="wishlist-btn text-black p-3 hover:bg-pink-dark rounded-btn" :class="isInWishlist() ? '!bg-pink-dark lg:!bg-pink-light' : 'bg-pink-light'" x-on:class="{ 'pointer-events-none': loading }">
        <span x-cloak x-show="!isInWishlist()">
            <svg class="size-6 text-optimo-darker" :class="{ '!hidden': loading }" aria-hidden="true">
                <use href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/i4-sprite.svg#ico-wishlist"></use>
            </svg>
        </span>
        <span x-cloak x-show="isInWishlist()">
            <svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewbox="0 0 24 24" class="size-6 text-optimo-darker" width="24" height="24" aria-hidden="true" :class="{ '!hidden': loading }"><path fill="#FF5C6E" d="M12.113 5.598c.03-.07.02-.06.09-.19.09-.18.19-.36.33-.54.5-.72 1.249-1.269 2.058-1.519.939-.29 1.688-.13 2.228.07.64.28.49.44-.19.43-.49.02-1.139.15-1.808.42-.44.18-.85.45-1.18.799-.16.18-.309.37-.429.59-.06.14-.11.17-.19.41-.06.25-.17.4-.2.739-.2 1.509-.49 1.429-.639 1.549-.14.06-.35.04-.42 0-.3-.11-.51-.66-.55-1.08-.04-.28-.11-.48-.159-.729-.05-.25-.12-.46-.22-.62-.1-.2-.23-.37-.35-.54-.27-.339-.609-.619-.979-.829-.749-.43-1.678-.51-2.567-.3C5.159 4.589 4 6.528 4.33 8.447c.2 1.968 1.409 3.797 2.757 5.516 1.39 1.709 2.978 3.348 4.636 4.977.37.37.2.2.24.25.04-.04-.12.12.25-.23.52-.49 1.01-1 1.509-1.5a49.169 49.169 0 0 0 2.827-3.137l.37-.47c1.269-1.689 2.478-3.598 2.697-5.556.12-1.1.02-1.979-.24-2.708-.16-.42-.23-.66-.11-.72.1-.05.41.07.78.53.52.62 1.08 1.789.93 3.168-.02.3-.06.59-.13.859-.5 2.278-1.809 4.147-3.118 5.856l-.04.06c-.35.45-.72.87-1.089 1.3-.53.589-.95 1.058-1.379 1.498-.41.43-.829.85-1.249 1.27l-.639.619-.34.33c-.21.18-.41.44-.63.55-.419.219-.928.04-1.298-.44l-.7-.71-1.228-1.28c-1.619-1.728-3.218-3.497-4.516-5.575-.77-1.24-1.41-2.639-1.569-4.167-.08-.74-.09-1.55.15-2.319.22-.77.63-1.479 1.189-2.058.55-.57 1.279-1 2.058-1.19a5.22 5.22 0 0 1 2.328-.07c.78.17 1.509.56 2.088 1.11.29.27.53.59.75.929.06.08.09.17.14.26l.05.1.05.14.04.1c.04.11.07.17.07.17s.06-.09.149-.32v.01Z"></path><path fill="#FF5C6E" stroke="#FF5C6E" d="M16 3.502c-2.4 0-3.667 3-4 4.5-.5-2.167-2.4-6-6-4-4.5 2.5-1.5 7.5 0 9.5 1.2 1.6 4.5 5.333 6 7 1.666-1.834 5.5-6.3 7.5-9.5 2.5-4-.5-7.5-3.5-7.5Z"></path></svg>
        </span>
        <span x-cloak x-show="loading">
            <svg class="animate-spin text-optimo-darker size-6" aria-hidden="true">
                <use href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/i4-sprite.svg#ico-loader"></use>
            </svg>
        </span>
        <span class="hidden">
            Mes Favoris        </span>
    </button>
        </div>
    </div>

            </div>
                                </div>
    </form>

                        </div>
                                            <div class="p-slider__item rounded-xs p-2.5 flex shrink-0 w-[calc(100%/1.5)] bg-white md:max-w-[25%] js_slide lg:max-w-none lg:w-[calc(100%/5-30px/5)]">
                            
    <form x-data="{}" x-i4-ajax-cart action="https://www.espaceplaisir.fr/checkout/cart/add/uenc/aHR0cHM6Ly93d3cuZXNwYWNlcGxhaXNpci5mci8~/product/45993/" method="post" data-id="45993" data-sku="SNJV3SG4" data-type="simple" class="product-item relative w-full flex flex-col group gap-2.5 lg:gap-6">
        <input name="form_key" type="hidden" value="rgh0Y4hMyX8wMkwL">        <input type="hidden" name="product" value="45993">

        
        <a class="product__link relative hover:text-black" href="https://www.espaceplaisir.fr/we-vibe-jive-lite.html">
            <img class="w-full object-contain text-transparent" x-ref="gallery" src="https://www.espaceplaisir.fr/media/catalog/product/8/6/86814_a48866_purple_000.jpg?quality=80&amp;fit=bounds&amp;height=480&amp;width=480" loading="lazy" width="480" height="480" alt="Oeuf vibrant connect&eacute; We-Vibe Jive Lite" title="Oeuf vibrant connect&eacute; We-Vibe Jive Lite">
                    <div class="group/item special-label text-right flex justify-end items-start absolute right-3 top-3">
        <div class="whitespace-nowrap w-max px-1 py-2 label-block rounded-lg text-sm">
            - 15%
        </div>
    </div>

                                <div class="label-container absolute inset-0 grid grid-flow-col grid-cols-3 grid-rows-3">
        
            <div class="relative group/item" style="width:72px; height:72px; margin: 0 0 0 -8px; font-size: 14px; color: #000000;grid-area:3/3">
        <div class="whitespace-nowrap absolute left-1/2 top-1/2 -translate-y-1/2 -translate-x-1/2">
            </div>
            <img class="w-full h-full" src="https://www.espaceplaisir.fr/media/amasty/amlabel/0526_macaron_bundlePLP_V3_1.png" loading="lazy" title="Womanizer Mini Offert Macaron " alt="Womanizer Mini Offert Macaron ">
    
    
            </div>
        </div>
                    </a>
        <div class="relative text-center flex flex-col text-sm items-center h-full product-info-block product-info-block__container">
            <div class="text-sm text-center line-clamp-1 leading-6 mb-2 min-h-6 product-info-block">
                We-Vibe            </div>
            <p class="product__name text-sm font-bold mb-2 min-h-8 leading-5 font-Averta">
                <a class="product__link text-center line-clamp-2 font-bold product-info-block" href="https://www.espaceplaisir.fr/we-vibe-jive-lite.html">
                    Oeuf vibrant connect&eacute; We-Vibe Jive Lite                </a>
            </p>
            <div class="review min-h-5 w-full flex flex-col items-center">
                
<div class="r-stars">
    <div class="r-stars__box">
        <i class="r-stars__empty"></i>
        <i class="r-stars__full" style="width:84%"></i>
    </div>
    <span class="text-sm leading-none">(226)</span>
</div>
            </div>
            <div class="text-grey-dark">
                <div class="price-box price-final_price" data-role="priceBox" data-product-id="45993" data-price-box="product-id-45993">

<div class="special-price-container special-price-exist           simple-product">
    <span class="special-price">
        
<span class="price-container            price-final_price tax weee">
            <span class="price-label">
            Prix sp&eacute;cial        </span>
        <span id="product-price-45993" data-price-amount="84.15" data-price-type="finalPrice" class="price-wrapper">
        <span class="price">84,15&nbsp;&euro;</span>    </span>
                <meta content="84.15">
        <meta content="EUR">
    </span>
    </span>
    <span class="final-price-box">
        
<span class="price-container            price-final_price tax weee">
            <span class="price-label">
            Prix normal        </span>
        <span id="old-price-45993" data-price-amount="99" data-price-type="oldPrice" class="price-wrapper">
        <span class="price">99,00&nbsp;&euro;</span>    </span>
                <meta content="99">
        <meta content="EUR">
    </span>
    </span>
</div>

</div>            </div>
            <div class="w-full min-h-[2rem] lg:block mt-auto">
                                    <div class="mb-4 lg:mb-5 block">
                                            </div>
                                    <div class="product__actions flex gap-2">
                    <button x-ref="submit" class="btn btn-tertiary text-sm px-1 truncate w-full min-w-auto transition-all block" aria-label="Ajouter au panier Oeuf vibrant connect&eacute; We-Vibe Jive Lite">
                <span class="text-addtocart hidden lg:block">
                    Ajouter au panier                </span>
                <span class="icons-addtocart flex gap-2 justify-center items-center lg:hidden">
                    <svg xmlns="http://www.w3.org/2000/svg" id="Calque_2" fill="currentColor" viewbox="0 0 18 18" width="17" height="17" aria-hidden="true"><g id="SYSTEM_7"><g id="Editor_7"><g id="icon_add_7"><path d="m13.19,10.49l-4.61-.19c-1.85-.08-3.7-.16-5.55-.24-.24,0-.48,0-.72,0-.49,0-.99,0-1.49-.08-.28-.05-.5-.31-.67-.52-.21-.25-.2-.64.04-.87.17-.16.4-.39.67-.41,3.34-.24,6.86-.46,10.75-.68l2.81.1h.2c.72,0,1.46,0,2.18.12.41.07.73.45.99.76.31.37.29.95-.06,1.28-.25.24-.58.57-.98.6-.09,0-.17.01-.26.02-.68.04-1.38.07-2.07.12h-.57c-.26,0-.46,0-.66,0Z"></path><path d="m10.49,4.81l-.19,4.61c-.08,1.85-.16,3.7-.24,5.55,0,.24,0,.48,0,.72,0,.49,0,.99-.08,1.49-.05.28-.31.5-.52.67-.25.21-.64.2-.87-.04-.16-.17-.39-.4-.41-.67-.24-3.34-.46-6.86-.68-10.75l.1-2.81v-.2c0-.72,0-1.46.12-2.18.07-.41.45-.73.76-.99.37-.31.95-.29,1.28.06.24.25.57.58.6.98,0,.09.01.17.02.26.04.68.07,1.38.12,2.07v.57c0,.26,0,.46,0,.66Z"></path></g></g></g></svg>
                    <svg xmlns="http://www.w3.org/2000/svg" id="Calque_2" fill="currentColor" viewbox="0 0 15 20" width="18" height="19" aria-hidden="true"><g id="BUSINESS_7"><g id="Finance_Payment_7"><g id="icon_cart_7"><path d="m4.48,3.1c.07-.93.58-1.82,1.36-2.39C6.61.14,7.64-.11,8.6.04c1.17.16,2.19.93,2.65,1.93.25.48.31,1.08.29,1.55l-.02,1.4v.73c0,.49,0,1-.04,1.5-.02.29-.13.5-.21.68-.1.21-.26.2-.36-.04-.07-.17-.16-.4-.17-.67-.02-.84-.05-1.7-.07-2.56-.01-.43-.03-.86-.04-1.3-.02-.38-.14-.75-.34-1.08-.41-.66-1.17-1.11-1.99-1.15-.82-.05-1.66.31-2.14.96-.25.3-.4.66-.46,1.03-.02.09-.02.19-.03.28v.35s-.02.71-.02.71v.2c0,.72,0,1.47-.05,2.2-.03.41-.18.74-.31,1-.15.31-.39.29-.52-.06-.1-.25-.23-.59-.25-.99,0-.09,0-.18,0-.26-.02-.69-.03-1.39-.05-2.09v-.57c0-.27-.01-.44.01-.7Z"></path><path d="m.23,17.58c.27-2,.51-4.02.74-6.04l.77-6.05.14-1.13c.05-.43.31-.7.7-.75.19-.02.43,0,.61,0h.34s1.35.01,1.35.01l2.71.02,5.61.04c.19,0,.33.05.46.13.15.11.2.24.26.4.05.18.05.36.08.54l.04.34.17,1.3.26,1.91c.17,1.29.36,2.62.49,3.92.08.75.03,1.33,0,1.81-.05.57-.24.55-.44-.06-.14-.43-.33-1.02-.43-1.72-.19-1.28-.38-2.58-.59-3.94-.1-.68-.2-1.38-.31-2.1-.05-.36-.11-.73-.16-1.1l-.05-.3c0-.08-.08-.08-.14-.07-1.52.02-3.18.04-4.94.07-.91.01-1.84.02-2.8.03-.48,0-.96.01-1.45.02-.23,0-.57,0-.52,0-.04,0-.07.02-.06.07-.13,1.2-.27,2.53-.43,3.94-.17,1.49-.33,3.08-.48,4.68l-.38,3.12-.21,1.56-.03.23v.02s0,.02.01.02h.02s.23,0,.23,0h.58s.51,0,.51,0c1.83,0,3.74,0,5.58.06,1.05.04,1.87.23,2.54.38.79.19.74.48-.15.65-.63.12-1.5.29-2.51.3-.22,0-.44,0-.65,0-1.75.02-3.54.04-5.32.06H.88c-.19,0-.35-.06-.47-.13-.09-.05-.19-.14-.27-.25-.07-.11-.09-.16-.12-.29-.05-.1,0-.26,0-.4.01-.14.04-.28.06-.42.05-.32.09-.62.13-.92Z"></path></g></g></g></svg>
                </span>
            </button>
                <div>
            
    <button x-data="initWishlist()" x-on:click.prevent="toggleWishlist" aria-label="Ajouter &agrave; la liste de souhaits" type="button" class="wishlist-btn text-black p-3 hover:bg-pink-dark rounded-btn" :class="isInWishlist() ? '!bg-pink-dark lg:!bg-pink-light' : 'bg-pink-light'" x-on:class="{ 'pointer-events-none': loading }">
        <span x-cloak x-show="!isInWishlist()">
            <svg class="size-6 text-optimo-darker" :class="{ '!hidden': loading }" aria-hidden="true">
                <use href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/i4-sprite.svg#ico-wishlist"></use>
            </svg>
        </span>
        <span x-cloak x-show="isInWishlist()">
            <svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewbox="0 0 24 24" class="size-6 text-optimo-darker" width="24" height="24" aria-hidden="true" :class="{ '!hidden': loading }"><path fill="#FF5C6E" d="M12.113 5.598c.03-.07.02-.06.09-.19.09-.18.19-.36.33-.54.5-.72 1.249-1.269 2.058-1.519.939-.29 1.688-.13 2.228.07.64.28.49.44-.19.43-.49.02-1.139.15-1.808.42-.44.18-.85.45-1.18.799-.16.18-.309.37-.429.59-.06.14-.11.17-.19.41-.06.25-.17.4-.2.739-.2 1.509-.49 1.429-.639 1.549-.14.06-.35.04-.42 0-.3-.11-.51-.66-.55-1.08-.04-.28-.11-.48-.159-.729-.05-.25-.12-.46-.22-.62-.1-.2-.23-.37-.35-.54-.27-.339-.609-.619-.979-.829-.749-.43-1.678-.51-2.567-.3C5.159 4.589 4 6.528 4.33 8.447c.2 1.968 1.409 3.797 2.757 5.516 1.39 1.709 2.978 3.348 4.636 4.977.37.37.2.2.24.25.04-.04-.12.12.25-.23.52-.49 1.01-1 1.509-1.5a49.169 49.169 0 0 0 2.827-3.137l.37-.47c1.269-1.689 2.478-3.598 2.697-5.556.12-1.1.02-1.979-.24-2.708-.16-.42-.23-.66-.11-.72.1-.05.41.07.78.53.52.62 1.08 1.789.93 3.168-.02.3-.06.59-.13.859-.5 2.278-1.809 4.147-3.118 5.856l-.04.06c-.35.45-.72.87-1.089 1.3-.53.589-.95 1.058-1.379 1.498-.41.43-.829.85-1.249 1.27l-.639.619-.34.33c-.21.18-.41.44-.63.55-.419.219-.928.04-1.298-.44l-.7-.71-1.228-1.28c-1.619-1.728-3.218-3.497-4.516-5.575-.77-1.24-1.41-2.639-1.569-4.167-.08-.74-.09-1.55.15-2.319.22-.77.63-1.479 1.189-2.058.55-.57 1.279-1 2.058-1.19a5.22 5.22 0 0 1 2.328-.07c.78.17 1.509.56 2.088 1.11.29.27.53.59.75.929.06.08.09.17.14.26l.05.1.05.14.04.1c.04.11.07.17.07.17s.06-.09.149-.32v.01Z"></path><path fill="#FF5C6E" stroke="#FF5C6E" d="M16 3.502c-2.4 0-3.667 3-4 4.5-.5-2.167-2.4-6-6-4-4.5 2.5-1.5 7.5 0 9.5 1.2 1.6 4.5 5.333 6 7 1.666-1.834 5.5-6.3 7.5-9.5 2.5-4-.5-7.5-3.5-7.5Z"></path></svg>
        </span>
        <span x-cloak x-show="loading">
            <svg class="animate-spin text-optimo-darker size-6" aria-hidden="true">
                <use href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/i4-sprite.svg#ico-loader"></use>
            </svg>
        </span>
        <span class="hidden">
            Mes Favoris        </span>
    </button>
        </div>
    </div>

            </div>
                                </div>
    </form>

                        </div>
                                    </div>
            </div>
        </div>
    </section>
</div></div></div><div data-content-type="block" data-appearance="default" data-element="main" data-pb-style="D9J76T1"><div class="widget block block-static-block">
    <style>.cmsb209-absolute {
position: absolute
}
.cmsb209-relative {
position: relative
}
.cmsb209-bottom-\[10px\] {
bottom: 10px
}
.cmsb209-bottom-\[60px\] {
bottom: 60px
}
.cmsb209-left-0 {
left: 0px
}
.cmsb209-right-0 {
right: 0px
}
.cmsb209-\!m-0 {
margin: 0px !important
}
.cmsb209-m-auto {
margin: auto
}
.cmsb209-inline {
display: inline
}
.cmsb209-break-words {
overflow-wrap: break-word
}
.cmsb209-border {
border-width: 1px
}
.cmsb209-text-\[14px\] {
font-size: 14px
}
@media (min-width: 1024px) {
.cmsb209-lg\:text-\[24px\] {
font-size: 24px
}
}</style>
<style>#html-body [data-pb-style=P2GU2SI],#html-body [data-pb-style=P4E0I7L]{background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll}#html-body [data-pb-style=P2GU2SI]{justify-content:flex-start;display:flex;flex-direction:column;margin-bottom:32px;padding-left:0;padding-right:0}#html-body [data-pb-style=P4E0I7L]{margin-top:2px;margin-bottom:0;align-self:stretch}#html-body [data-pb-style=JP9X7WI]{display:flex;width:100%}#html-body [data-pb-style=BGTICJ4]{justify-content:center;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;text-align:center;border-style:none;width:calc(25% - 4px);margin:2px;align-self:stretch}#html-body [data-pb-style=T380UTD]{border-style:none}#html-body [data-pb-style=LSUA3R3]{border-radius:4px;max-width:100%;height:auto}#html-body [data-pb-style=A2C8KF0]{display:none;padding-left:8px;padding-right:8px}#html-body [data-pb-style=HJOOTGA]{padding:0}#html-body [data-pb-style=L92BTI5]{display:inline-block}#html-body [data-pb-style=WA7GHLA]{text-align:center;border-color:#fff;border-width:1px}#html-body [data-pb-style=KC7A0MH]{justify-content:center;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;text-align:center;border-style:none;width:calc(25% - 4px);margin:2px;align-self:stretch}#html-body [data-pb-style=W9LQN3H]{border-style:none}#html-body [data-pb-style=STCEWUQ]{border-radius:4px;max-width:100%;height:auto}#html-body [data-pb-style=YHXMSEH]{display:none;padding-left:8px;padding-right:8px}#html-body [data-pb-style=AL4CO30]{padding:0}#html-body [data-pb-style=ANXCH5S]{display:inline-block}#html-body [data-pb-style=RKKRMJR]{text-align:center;border-color:#fff;border-width:1px}#html-body [data-pb-style=VVDT0TO]{justify-content:center;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;text-align:center;border-style:none;width:calc(25% - 4px);margin:2px;align-self:stretch}#html-body [data-pb-style=YYOWI8Y]{border-style:none}#html-body [data-pb-style=HQKVRIT]{border-radius:4px;max-width:100%;height:auto}#html-body [data-pb-style=QK1JQ3Y]{display:none;padding-left:8px;padding-right:8px}#html-body [data-pb-style=ECGDTT3]{padding:0}#html-body [data-pb-style=O1366EC]{display:inline-block}#html-body [data-pb-style=AJE406R]{text-align:center;border-color:#fff;border-width:1px}#html-body [data-pb-style=OXKG55T]{justify-content:center;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;text-align:center;border-style:none;width:calc(25% - 4px);margin:2px;align-self:stretch}#html-body [data-pb-style=DLHJ627]{border-style:none}#html-body [data-pb-style=RS2661V]{border-radius:4px;max-width:100%;height:auto}#html-body [data-pb-style=Q3CCS0I]{display:none;padding-left:8px;padding-right:8px}#html-body [data-pb-style=H60FMFA]{padding:0}#html-body [data-pb-style=LTVK20P]{display:inline-block}#html-body [data-pb-style=MWLELTC]{text-align:center;border-color:#fff;border-width:1px}@media only screen and (max-width: 768px) { #html-body [data-pb-style=BGTICJ4]{justify-content:flex-start;display:flex;flex-direction:column;align-self:stretch}#html-body [data-pb-style=T380UTD]{border-style:none}#html-body [data-pb-style=KC7A0MH]{justify-content:flex-start;display:flex;flex-direction:column;align-self:stretch}#html-body [data-pb-style=W9LQN3H]{border-style:none}#html-body [data-pb-style=VVDT0TO]{justify-content:flex-start;display:flex;flex-direction:column;align-self:stretch}#html-body [data-pb-style=YYOWI8Y]{border-style:none}#html-body [data-pb-style=OXKG55T]{justify-content:flex-start;display:flex;flex-direction:column;align-self:stretch}#html-body [data-pb-style=DLHJ627]{border-style:none} }</style><div data-content-type="row" data-appearance="contained" data-element="main"><div data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-background-lazy-load="false" data-element="inner" data-pb-style="P2GU2SI"><div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true"><style>
.block-universe-4-cards [data-content-type="row"]{
padding:0;
}
.universe-module-4 .pagebuilder-column-line {
gap:0;
}
.ghost-reverse .btn-secondary {
background: transparent;
}
.ghost-reverse .btn-secondary:hover {
background: rgba(255, 255, 255, 0.2);
border: 1px solid #ffffff;
opacity: 1;
}
.ghost-reverse .btn-secondary:hover span {
opacity:1;
color:#ffffff;
}
.ghost-reverse .btn-secondary span {
color:#ffffff;
}
</style></div><div class="pagebuilder-column-group c-landing__promo-block universe-module-4" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="12" data-background-lazy-load="false" data-element="main" data-pb-style="P4E0I7L"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="JP9X7WI"><div class="pagebuilder-column cmsb209-relative" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-background-lazy-load="false" data-element="main" data-pb-style="BGTICJ4"><figure data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="T380UTD"><a href="https://www.espaceplaisir.fr/1055-sextoy-pour-le-couple" target="" data-link-type="default" title="" data-element="link"><picture><source media="(min-width: 768px)" srcset="https://www.espaceplaisir.fr/media/wysiwyg/0426_ban_quart_home_COUPLE.jpg"><source src="https://www.espaceplaisir.fr/media/wysiwyg/0426_ban_quart_home_COUPLE.jpg" alt="" title="" loading="lazy" data-use-native-image-dimensions="" width="" height="" fetchpriority="auto" data-element="mobile_image" srcset="https://www.espaceplaisir.fr/media/wysiwyg/0426_ban_quart_home_COUPLE.jpg" media="(max-width: 767px)"><img src="https://www.espaceplaisir.fr/media/wysiwyg/0426_ban_quart_home_COUPLE.jpg" alt="" title="" loading="lazy" data-use-native-image-dimensions="" width="" height="" fetchpriority="auto" data-element="desktop_image" data-pb-style="LSUA3R3"></source></source></picture></a></figure><div class="cmsb209-absolute cmsb209-m-auto cmsb209-left-0 cmsb209-right-0 text-white cmsb209-text-[14px] cmsb209-lg:text-[24px] cmsb209-bottom-[60px]" data-content-type="text" data-appearance="default" data-element="main" data-pb-style="A2C8KF0"><p style="text-align: center;"><strong>Jusqu'&agrave; -73% sur nos calendriers...&nbsp;</strong></p></div><div data-content-type="buttons" data-appearance="inline" data-same-width="false" data-element="main" data-pb-style="HJOOTGA" class="cmsb209-absolute cmsb209-bottom-[10px] cmsb209-m-auto cmsb209-left-0 cmsb209-right-0"><div class="cmsb209-!m-0 ghost-reverse" data-content-type="button-item" data-appearance="default" data-element="main" data-pb-style="L92BTI5"><a class="pagebuilder-button-secondary btn btn-secondary" href="https://www.espaceplaisir.fr/1055-sextoy-pour-le-couple" target="" data-link-type="default" data-element="link" data-pb-style="WA7GHLA"><span data-element="link_text">Je d&eacute;couvre</span></a></div></div></div><div class="pagebuilder-column cmsb209-relative" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-background-lazy-load="false" data-element="main" data-pb-style="KC7A0MH"><figure data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="W9LQN3H"><a href="https://www.espaceplaisir.fr/1192-masturbateur" target="" data-link-type="default" title="" data-element="link"><picture><source media="(min-width: 768px)" srcset="https://www.espaceplaisir.fr/media/wysiwyg/0426_ban_quart_home_MAST.jpg"><source src="https://www.espaceplaisir.fr/media/wysiwyg/0426_ban_quart_home_MAST.jpg" alt="" title="" loading="lazy" data-use-native-image-dimensions="false" width="" height="" fetchpriority="auto" data-element="mobile_image" srcset="https://www.espaceplaisir.fr/media/wysiwyg/0426_ban_quart_home_MAST.jpg" media="(max-width: 767px)"><img src="https://www.espaceplaisir.fr/media/wysiwyg/0426_ban_quart_home_MAST.jpg" alt="" title="" loading="lazy" data-use-native-image-dimensions="false" width="" height="" fetchpriority="auto" data-element="desktop_image" data-pb-style="STCEWUQ"></source></source></picture></a></figure><div class="cmsb209-absolute cmsb209-break-words cmsb209-m-auto cmsb209-left-0 cmsb209-right-0 text-white cmsb209-text-[14px] cmsb209-lg:text-[24px] cmsb209-bottom-[60px]" data-content-type="text" data-appearance="default" data-element="main" data-pb-style="YHXMSEH"><p style="text-align: center;"><strong>La lingerie &agrave; petit prix !</strong></p></div><div data-content-type="buttons" data-appearance="inline" data-same-width="false" data-element="main" data-pb-style="AL4CO30" class="cmsb209-absolute cmsb209-bottom-[10px] cmsb209-m-auto cmsb209-left-0 cmsb209-right-0"><div class="cmsb209-!m-0 ghost-reverse" data-content-type="button-item" data-appearance="default" data-element="main" data-pb-style="ANXCH5S"><a class="pagebuilder-button-secondary btn btn-secondary" href="https://www.espaceplaisir.fr/1192-masturbateur" target="" data-link-type="default" data-element="link" data-pb-style="RKKRMJR"><span data-element="link_text">Je d&eacute;couvre</span></a></div></div></div><div class="pagebuilder-column cmsb209-relative" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-background-lazy-load="false" data-element="main" data-pb-style="VVDT0TO"><figure data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="YYOWI8Y"><a href="https://www.espaceplaisir.fr/1215-anneau-vibrant-et-cockring" target="" data-link-type="default" title="" data-element="link"><picture><source media="(min-width: 768px)" srcset="https://www.espaceplaisir.fr/media/wysiwyg/0426_ban_quart_home_ANNEAUX.jpg"><source src="https://www.espaceplaisir.fr/media/wysiwyg/0426_ban_quart_home_ANNEAUX.jpg" alt="" title="" loading="lazy" data-use-native-image-dimensions="" width="" height="" fetchpriority="auto" data-element="mobile_image" srcset="https://www.espaceplaisir.fr/media/wysiwyg/0426_ban_quart_home_ANNEAUX.jpg" media="(max-width: 767px)"><img src="https://www.espaceplaisir.fr/media/wysiwyg/0426_ban_quart_home_ANNEAUX.jpg" alt="" title="" loading="lazy" data-use-native-image-dimensions="" width="" height="" fetchpriority="auto" data-element="desktop_image" data-pb-style="HQKVRIT"></source></source></picture></a></figure><div class="cmsb209-absolute cmsb209-m-auto cmsb209-left-0 cmsb209-right-0 text-white cmsb209-text-[14px] cmsb209-lg:text-[24px] cmsb209-bottom-[60px]" data-content-type="text" data-appearance="default" data-element="main" data-pb-style="QK1JQ3Y"><p style="text-align: center;"><strong>Profitez des Black Deals aussi en lingerie !</strong></p></div><div data-content-type="buttons" data-appearance="inline" data-same-width="false" data-element="main" data-pb-style="ECGDTT3" class="cmsb209-absolute cmsb209-bottom-[10px] cmsb209-m-auto cmsb209-left-0 cmsb209-right-0"><div class="cmsb209-!m-0 ghost-reverse" data-content-type="button-item" data-appearance="default" data-element="main" data-pb-style="O1366EC"><a class="pagebuilder-button-secondary btn btn-secondary" href="https://www.espaceplaisir.fr/1215-anneau-vibrant-et-cockring" target="" data-link-type="default" data-element="link" data-pb-style="AJE406R"><span data-element="link_text">Je fonce</span></a></div></div></div><div class="pagebuilder-column cmsb209-relative" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-background-lazy-load="false" data-element="main" data-pb-style="OXKG55T"><figure data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="DLHJ627"><a href="https://www.espaceplaisir.fr/1004-plug-anal-gode-anal-et-chapelet-anal" target="" data-link-type="default" title="" data-element="link"><picture><source media="(min-width: 768px)" srcset="https://www.espaceplaisir.fr/media/wysiwyg/0426_ban_quart_home_PLUG.jpg"><source src="https://www.espaceplaisir.fr/media/wysiwyg/0426_ban_quart_home_PLUG.jpg" alt="" title="" loading="lazy" data-use-native-image-dimensions="" width="" height="" fetchpriority="auto" data-element="mobile_image" srcset="https://www.espaceplaisir.fr/media/wysiwyg/0426_ban_quart_home_PLUG.jpg" media="(max-width: 767px)"><img src="https://www.espaceplaisir.fr/media/wysiwyg/0426_ban_quart_home_PLUG.jpg" alt="" title="" loading="lazy" data-use-native-image-dimensions="" width="" height="" fetchpriority="auto" data-element="desktop_image" data-pb-style="RS2661V"></source></source></picture></a></figure><div class="cmsb209-absolute cmsb209-m-auto cmsb209-left-0 cmsb209-right-0 text-white cmsb209-text-[14px] cmsb209-lg:text-[24px] cmsb209-bottom-[60px]" data-content-type="text" data-appearance="default" data-element="main" data-pb-style="Q3CCS0I"><p style="text-align: center;"><strong>Le bien-&ecirc;tre &agrave; port&eacute;e de main !</strong></p></div><div data-content-type="buttons" data-appearance="inline" data-same-width="false" data-element="main" data-pb-style="H60FMFA" class="cmsb209-absolute cmsb209-bottom-[10px] cmsb209-m-auto cmsb209-left-0 cmsb209-right-0"><div class="cmsb209-!m-0 ghost-reverse" data-content-type="button-item" data-appearance="default" data-element="main" data-pb-style="LTVK20P"><a class="pagebuilder-button-secondary btn btn-secondary" href="https://www.espaceplaisir.fr/1004-plug-anal-gode-anal-et-chapelet-anal" target="" data-link-type="default" data-element="link" data-pb-style="MWLELTC"><span data-element="link_text">J'&eacute;conomise</span></a></div></div></div></div></div></div></div></div>
</div><div data-content-type="row" data-appearance="contained" data-element="main"><div data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-background-lazy-load="" data-element="inner" data-pb-style="UJ13WCR"><div data-content-type="html" data-appearance="default" data-element="main" data-pb-style="RO5EGXH" data-decoded="true"><section class="slider-manager group relative overflow-hidden w-full">
    <div x-ref="slider" class="snap relative flex flex-nowrap w-full overflow-auto transition-all">
                                        <div class="slider-manager__item overflow-hidden w-full                right-0 transition-opacity duration-500 item--1                relative left-0 opacity-100" :class="{                    'relative opacity-100 left-0': activeSlide === 0,                    'absolute opacity-0 left-[-10000px]': activeSlide !== 0                }">
            
    <i class="inset-0 absolute pointer-events-none" data-ga4-promo="{&amp;quot;promotion_id&amp;quot;:null,&amp;quot;promotion_name&amp;quot;:null,&amp;quot;creative_name&amp;quot;:null,&amp;quot;creative_slot&amp;quot;:null}" data-ga4-wrap=".item--1"></i>
            <picture>
                                    <source srcset="https://www.espaceplaisir.fr/media/interactiv4/slidermanager/banner/0526_promo_ROMP-RADIANCE_RESP.jpg" media="(max-width: 1023px)">
                                                    <source srcset="https://www.espaceplaisir.fr/media/interactiv4/slidermanager/banner/0526_promo_ROMP-RADIANCE.jpg">
                    <img width="1920" height="550" class="w-full max-h-[550px] min-h-[320px] object-cover" src="https://www.espaceplaisir.fr/media/interactiv4/slidermanager/banner/https://www.espaceplaisir.fr/lovehoney-x-romp-rose-radiance-kit.html0526_promo_ROMP-RADIANCE.jpg" alt="" loading="lazy">
                            </source></source></picture>
                            <a href="https://www.espaceplaisir.fr/lovehoney-x-romp-rose-radiance-kit.html" class="absolute z-30 inset-0"></a>
                                </div>
            </div>
    <template x-if="itemCount &gt; 1">
        <div class="slider-manager__nav">
            <div class="slider-manager__arrow hidden lg:block absolute top-2/4 opacity-0 transition-all z-30 left-0 group-hover:left-8 group-hover:opacity-100">
                <button aria-label="Pr&eacute;c&eacute;dent" tabindex="-1" class="flex items-center justify-center bg-white text-grey w-8 h-8 outline-none focus:outline-none                 flex-none rounded-lg hover:bg-optimo hover:text-white transition-all" @click="scrollPrevious">
                    <svg class="w-2.5 h-4 slider-nav" aria-hidden="true">
                        <use href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/i4-sprite.svg#ico-left"></use>
                    </svg>
                </button>
            </div>
            <div class="slider-manager__arrow hidden lg:block absolute top-2/4 opacity-0 transition-all z-30 right-0 group-hover:right-8 group-hover:opacity-100">
                <button aria-label="Suivant" tabindex="-1" class="flex items-center justify-center bg-white text-grey w-8 h-8 outline-none focus:outline-none                 flex-none rounded-lg hover:bg-optimo hover:text-white transition-all" @click="scrollNext">
                    <svg class="w-2.5 h-4 slider-nav" aria-hidden="true">
                        <use href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/i4-sprite.svg#ico-right"></use>
                    </svg>
                </button>
            </div>
            <nav class="absolute bottom-3 z-30 text-center flex flex-wrap w-full justify-center">
                                    <span class="slider-manager__step size-2 m-1 border border-black rounded-full cursor-pointer hover:bg-optimo" :class="{                        'active bg-white pointer-events-none': activeSlide === 0,                        'bg-black slider-dots': activeSlide !== 0                    }" @click="scrollTo(0)">
                </span>
                            </nav>
        </div>
    </template>
</section>
</div></div></div><div data-content-type="row" data-appearance="contained" data-element="main"><div data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-background-lazy-load="" data-element="inner" data-pb-style="S1ISUC4"><div data-content-type="block" data-appearance="default" data-element="main"><div class="widget block block-static-block">
    <div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true"><div class="ep-av">
  <div class="skeepers_carousel_container" data-slides-count="4"></div>
</div>

<style>
.ep-av{max-width:1100px;margin:0 auto}
.ep-av .skeepers_carousel_container{overflow:hidden;border-radius:16px}
.ep-av .skeepers_carousel_container [class*="pagination"]{display:none!important}
</style>

<script defer charset="utf-8" src="//widgets.rr.skeepers.io/carousel/6e0422fa-fb9d-02d4-c90a-ef5154b705e0/ee21930d-c681-43f8-9928-4df062d9ebd2.js"></script></div></div>
</div></div></div><div data-content-type="block" data-appearance="default" data-element="main" data-pb-style="T0R7WWU"><div class="widget block block-static-block">
    <style>.cmsb111-relative {
position: relative
}
.cmsb111-inline {
display: inline
}
.cmsb111-max-w-\[140px\] {
max-width: 140px
}
.cmsb111-items-center {
align-items: center
}</style>
<style>#html-body [data-pb-style=PLR55JN]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;margin-bottom:64px}#html-body [data-pb-style=SX4CLN3]{text-align:left;margin-bottom:14px}#html-body [data-pb-style=D5PSXM5]{background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;align-self:stretch}#html-body [data-pb-style=KRF0JOP]{display:flex;width:100%}#html-body [data-pb-style=KRR6ICY]{justify-content:center;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;text-align:center;border-style:none;width:20%;margin:2px 12px;padding:12px 8px;align-self:center}#html-body [data-pb-style=SJOSR48]{text-align:center;margin-bottom:12px;border-style:none}#html-body [data-pb-style=TCIBNQD]{max-width:100%;height:auto}#html-body [data-pb-style=TGQ1DIW]{justify-content:center;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;text-align:center;border-style:none;width:20%;margin:2px 12px;padding:12px 8px;align-self:center}#html-body [data-pb-style=K27MLW6]{text-align:center;margin-bottom:12px;border-style:none}#html-body [data-pb-style=Y1S2MNJ]{max-width:100%;height:auto}#html-body [data-pb-style=LBBCPSD]{justify-content:center;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;text-align:center;border-style:none;width:20%;margin:2px 12px;padding:12px 8px;align-self:center}#html-body [data-pb-style=CXL0HPR]{text-align:center;margin-bottom:12px;border-style:none}#html-body [data-pb-style=H66YF37]{max-width:100%;height:auto}#html-body [data-pb-style=C9A6MUW]{justify-content:center;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;text-align:center;border-style:none;width:20%;margin:2px 12px;padding:12px 8px;align-self:center}#html-body [data-pb-style=MES8NK7]{text-align:center;margin-bottom:12px;border-style:none}#html-body [data-pb-style=FLPVX2G]{max-width:100%;height:auto}#html-body [data-pb-style=RNHR53M]{justify-content:center;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;text-align:center;border-style:none;width:20%;margin:2px 12px;padding:12px 8px;align-self:center}#html-body [data-pb-style=FXTKC04]{text-align:center;margin-bottom:12px;border-style:none}#html-body [data-pb-style=E1URHL5]{max-width:100%;height:auto}#html-body [data-pb-style=Y2QKW38]{text-align:center}#html-body [data-pb-style=DQ8OE28]{display:inline-block}#html-body [data-pb-style=PFCWHHC]{text-align:center}@media only screen and (max-width: 768px) { #html-body [data-pb-style=PLR55JN]{display:flex;flex-direction:column;margin-bottom:32px}#html-body [data-pb-style=KRR6ICY]{justify-content:flex-start;display:flex;flex-direction:column;margin:2px;align-self:center}#html-body [data-pb-style=SJOSR48]{border-style:none}#html-body [data-pb-style=TGQ1DIW]{justify-content:flex-start;display:flex;flex-direction:column;margin:2px;align-self:center}#html-body [data-pb-style=K27MLW6]{border-style:none}#html-body [data-pb-style=LBBCPSD]{justify-content:flex-start;display:flex;flex-direction:column;margin:2px;align-self:center}#html-body [data-pb-style=CXL0HPR]{border-style:none}#html-body [data-pb-style=C9A6MUW]{justify-content:flex-start;display:flex;flex-direction:column;margin:2px;align-self:center}#html-body [data-pb-style=MES8NK7]{border-style:none}#html-body [data-pb-style=RNHR53M]{justify-content:flex-start;display:flex;flex-direction:column;margin:2px;align-self:center}#html-body [data-pb-style=FXTKC04]{border-style:none} }</style><div data-content-type="row" data-appearance="contained" data-element="main"><div data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-background-lazy-load="false" data-element="inner" data-pb-style="PLR55JN"><h2 data-content-type="heading" data-appearance="default" data-element="main" data-pb-style="SX4CLN3">&Ecirc;tre conseill&eacute;&bull;e&bull;s en boutique</h2><div class="pagebuilder-column-group c-landing__promo-block universe-module-4" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="15" data-background-lazy-load="false" data-element="main" data-pb-style="D5PSXM5"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="KRF0JOP"><div class="pagebuilder-column cmsb111-items-center cmsb111-relative" data-content-type="column" data-appearance="align-center" data-background-images="{}" data-background-lazy-load="false" data-element="main" data-pb-style="KRR6ICY"><figure class="cmsb111-max-w-[140px]" data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="SJOSR48"><a href="https://www.espaceplaisir.fr/sexshop_lyon_loveshop" target="" data-link-type="default" title="" data-element="link"><picture><source media="(min-width: 768px)" srcset="https://www.espaceplaisir.fr/media/wysiwyg/img_boutiques_lyon_1_2.png"><source src="https://www.espaceplaisir.fr/media/wysiwyg/img_boutiques_lyon_1_2.png" alt="Illustration boutique lyon terreaux" title="" loading="lazy" data-use-native-image-dimensions="false" width="108" height="108" data-element="mobile_image" srcset="https://www.espaceplaisir.fr/media/wysiwyg/img_boutiques_lyon_1_2.png" media="(max-width: 767px)"><img src="https://www.espaceplaisir.fr/media/wysiwyg/img_boutiques_lyon_1_2.png" alt="Illustration boutique lyon terreaux" title="" loading="lazy" data-use-native-image-dimensions="false" width="108" height="108" data-element="desktop_image" data-pb-style="TCIBNQD"></source></source></picture></a></figure><div data-content-type="text" data-appearance="default" data-element="main"><p style="text-align: center; margin-bottom: 4px;"><strong><span style="font-size: 16px;">Lyon - Terreaux</span></strong></p>
<p style="text-align: center; margin-bottom: 0px;"><span style="font-size: 14px;">16 rue Constantine</span></p>
<p style="text-align: center; margin-bottom: 0px;"><strong><span style="font-size: 14px;">69001 Lyon</span></strong></p></div><div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true"><a href="https://www.espaceplaisir.fr/sexshop_lyon_loveshop" title="boutique lyon terreaux" style="width:100%;height:100%; position:absolute;top:0;left:0;"></a></div></div><div class="pagebuilder-column cmsb111-items-center cmsb111-relative" data-content-type="column" data-appearance="align-center" data-background-images="{}" data-background-lazy-load="false" data-element="main" data-pb-style="TGQ1DIW"><figure class="cmsb111-max-w-[140px]" data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="K27MLW6"><a href="https://www.espaceplaisir.fr/sexshop_lyon_2_loveshop" target="" data-link-type="default" title="" data-element="link"><picture><source media="(min-width: 768px)" srcset="https://www.espaceplaisir.fr/media/wysiwyg/img_boutiques_lyon_2_1.png"><source src="https://www.espaceplaisir.fr/media/wysiwyg/img_boutiques_lyon_2_1.png" alt="Illustration boutique lyon cordeliers" title="" loading="lazy" data-use-native-image-dimensions="false" width="108" height="108" data-element="mobile_image" srcset="https://www.espaceplaisir.fr/media/wysiwyg/img_boutiques_lyon_2_1.png" media="(max-width: 767px)"><img src="https://www.espaceplaisir.fr/media/wysiwyg/img_boutiques_lyon_2_1.png" alt="Illustration boutique lyon cordeliers" title="" loading="lazy" data-use-native-image-dimensions="false" width="108" height="108" data-element="desktop_image" data-pb-style="Y1S2MNJ"></source></source></picture></a></figure><div data-content-type="text" data-appearance="default" data-element="main"><p style="text-align: center; margin-bottom: 4px;"><strong><span style="font-size: 16px;">Lyon - Cordeliers<br></span></strong></p>
<p style="text-align: center; margin-bottom: 0px;"><span style="font-size: 16px;"><span style="font-size: 14px;">15 rue Tupin</span></span></p>
<p style="text-align: center; margin-bottom: 0px;"><strong><span style="font-size: 14px;">69002 Lyon</span></strong></p></div><div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true"><a href="https://www.espaceplaisir.fr/sexshop_lyon_2_loveshop" title="boutique lyon cordeliers" style="width:100%;height:100%; position:absolute;top:0;left:0;"></a></div></div><div class="pagebuilder-column cmsb111-items-center cmsb111-relative" data-content-type="column" data-appearance="align-center" data-background-images="{}" data-background-lazy-load="false" data-element="main" data-pb-style="LBBCPSD"><figure class="cmsb111-max-w-[140px]" data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="CXL0HPR"><a href="https://www.espaceplaisir.fr/sexshop_bordeaux_loveshop" target="" data-link-type="default" title="" data-element="link"><picture><source media="(min-width: 768px)" srcset="https://www.espaceplaisir.fr/media/wysiwyg/img_boutique_bordeaux.png"><source src="https://www.espaceplaisir.fr/media/wysiwyg/img_boutique_bordeaux.png" alt="Illustration boutique bordeaux" title="" loading="lazy" data-use-native-image-dimensions="false" width="108" height="108" data-element="mobile_image" srcset="https://www.espaceplaisir.fr/media/wysiwyg/img_boutique_bordeaux.png" media="(max-width: 767px)"><img src="https://www.espaceplaisir.fr/media/wysiwyg/img_boutique_bordeaux.png" alt="Illustration boutique bordeaux" title="" loading="lazy" data-use-native-image-dimensions="false" width="108" height="108" data-element="desktop_image" data-pb-style="H66YF37"></source></source></picture></a></figure><div data-content-type="text" data-appearance="default" data-element="main"><p style="text-align: center; margin-bottom: 4px;"><span style="font-size: 16px;"><strong>Bordeaux</strong></span></p>
<p style="text-align: center; margin-bottom: 0px;"><span style="font-size: 14px;">94 cours d'Alsace-et-Lorraine</span></p>
<p style="text-align: center; margin-bottom: 0px;"><strong><span style="font-size: 14px;">33000 Bordeaux</span></strong></p></div><div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true"><a href="https://www.espaceplaisir.fr/sexshop_bordeaux_loveshop" title="boutique bordeaux saint-catherine" style="width:100%;height:100%; position:absolute;top:0;left:0;"></a></div></div><div class="pagebuilder-column cmsb111-items-center cmsb111-relative" data-content-type="column" data-appearance="align-center" data-background-images="{}" data-background-lazy-load="false" data-element="main" data-pb-style="C9A6MUW"><figure class="cmsb111-max-w-[140px]" data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="MES8NK7"><a href="https://www.espaceplaisir.fr/sexshop_lille_loveshop" target="" data-link-type="default" title="" data-element="link"><picture><source media="(min-width: 768px)" srcset="https://www.espaceplaisir.fr/media/wysiwyg/img_boutiques_lille.png"><source src="https://www.espaceplaisir.fr/media/wysiwyg/img_boutiques_lille.png" alt="Illustration boutique Lille Rihour" title="" loading="lazy" data-use-native-image-dimensions="false" width="108" height="108" data-element="mobile_image" srcset="https://www.espaceplaisir.fr/media/wysiwyg/img_boutiques_lille.png" media="(max-width: 767px)"><img src="https://www.espaceplaisir.fr/media/wysiwyg/img_boutiques_lille.png" alt="Illustration boutique Lille Rihour" title="" loading="lazy" data-use-native-image-dimensions="false" width="108" height="108" data-element="desktop_image" data-pb-style="FLPVX2G"></source></source></picture></a></figure><div data-content-type="text" data-appearance="default" data-element="main"><p style="text-align: center; margin-bottom: 4px;"><strong><span style="font-size: 16px;">Lille</span></strong></p>
<p style="text-align: center; margin-bottom: 0px;"><span style="font-size: 14px;">4 rue du Sec Arembault</span></p>
<p style="text-align: center; margin-bottom: 0px;"><strong><span style="font-size: 14px;">59800 Lille</span></strong></p></div><div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true"><a href="https://www.espaceplaisir.fr/sexshop_lille_loveshop" title="boutique lille rihour" style="width:100%;height:100%; position:absolute;top:0;left:0;"></a></div></div><div class="pagebuilder-column cmsb111-items-center cmsb111-relative" data-content-type="column" data-appearance="align-center" data-background-images="{}" data-background-lazy-load="false" data-element="main" data-pb-style="RNHR53M"><figure class="cmsb111-max-w-[140px]" data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="FXTKC04"><a href="https://www.espaceplaisir.fr/loveshop_toulouse" target="" data-link-type="default" title="" data-element="link"><picture><source media="(min-width: 768px)" srcset="https://www.espaceplaisir.fr/media/wysiwyg/img_boutique_toulouse.png"><source src="https://www.espaceplaisir.fr/media/wysiwyg/img_boutique_toulouse.png" alt="Illustration boutique Toulouse Capitole" title="" loading="lazy" data-use-native-image-dimensions="false" width="108" height="108" data-element="mobile_image" srcset="https://www.espaceplaisir.fr/media/wysiwyg/img_boutique_toulouse.png" media="(max-width: 767px)"><img src="https://www.espaceplaisir.fr/media/wysiwyg/img_boutique_toulouse.png" alt="Illustration boutique Toulouse Capitole" title="" loading="lazy" data-use-native-image-dimensions="false" width="108" height="108" data-element="desktop_image" data-pb-style="E1URHL5"></source></source></picture></a></figure><div data-content-type="text" data-appearance="default" data-element="main"><p style="text-align: center; margin-bottom: 4px;"><strong><span style="font-size: 16px;">Toulouse</span></strong></p>
<p style="text-align: center; margin-bottom: 0px;"><span style="font-size: 14px;">19 rue du Fourbastard</span></p>
<p style="text-align: center; margin-bottom: 0px;"><strong><span style="font-size: 14px;">31000 Toulouse</span></strong></p></div><div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true"><a href="https://www.espaceplaisir.fr/loveshop_toulouse" title="boutique toulouse capitole" style="width:100%;height:100%; position:absolute;top:0;left:0;"></a></div></div></div></div><div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true"><style>
.block-universe-4-cards [data-content-type="row"]{
padding:0;
}
.universe-module-4 .pagebuilder-column-line {
gap:0;
}

</style></div><div data-content-type="buttons" data-appearance="inline" data-same-width="false" data-element="main" data-pb-style="Y2QKW38"><div data-content-type="button-item" data-appearance="default" data-element="main" data-pb-style="DQ8OE28"><a class="pagebuilder-button-secondary btn btn-secondary" href="https://www.espaceplaisir.fr/loveshop" target="" data-link-type="default" data-element="link" data-pb-style="PFCWHHC"><span data-element="link_text">Trouver ma boutique</span></a></div></div></div></div></div>
</div><div data-content-type="row" data-appearance="contained" data-element="main"><div class="cmsp72-items-center" data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-background-lazy-load="false" data-element="inner" data-pb-style="LLSBDJD"></div></div><div data-content-type="row" data-appearance="contained" data-element="main" data-pb-style="HDTOGOS"><div data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-background-lazy-load="" data-element="inner" data-pb-style="ESK62CJ"><div class="pagebuilder-column-group c-landing__promo-block universe-module-4 title-2-columns" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="12" data-background-lazy-load="false" data-element="main" data-pb-style="RGYTN9T"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="CNVILS8"><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-background-lazy-load="false" data-element="main" data-pb-style="FWL2QVF"><h2 data-content-type="heading" data-appearance="default" data-element="main" data-pb-style="JXAHQ8O">Top des Ventes</h2></div><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-background-lazy-load="false" data-element="main" data-pb-style="SUI5PR5"><div data-content-type="buttons" data-appearance="inline" data-same-width="false" data-element="main"><div class="ghost-reverse" data-content-type="button-item" data-appearance="default" data-element="main" data-pb-style="D82E8NE"><a class="pagebuilder-button-secondary btn btn-secondary" href="https://www.espaceplaisir.fr/953-top-des-ventes-sextoys" target="" data-link-type="category" data-element="link" data-pb-style="V2202XW"><span data-element="link_text">Voir tout</span></a></div></div></div></div></div><div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true"><style>
.title-2-columns .pagebuilder-column {
 flex-basis: 46%;
 flex-grow: 1;
margin-bottom:0;
}
.title-2-columns.c-landing__promo-block [data-content-type=buttons]{
padding-left:0;
padding-right:0;
}

.title-2-columns .pagebuilder-column-line {
gap:0;
}

.title-2-columns.ghost-reverse [data-content-type=buttons] [data-content-type=button-item] {
margin-right:0;
}

.title-2-columns .ghost-reverse .btn-secondary {
background: transparent;
}
.title-2-columns .ghost-reverse .btn-secondary:hover {
background: rgba(0, 0, 0, 0.2);
border: 1px solid #000000;
opacity: 1;
}
.title-2-columns .ghost-reverse .btn-secondary:hover span {
opacity:1;
color:#000000;
}
.title-2-columns .ghost-reverse .btn-secondary span {
color:#000000;
}
</style></div><div data-content-type="products" data-appearance="carousel" data-autoplay="false" data-autoplay-speed="4000" data-infinite-loop="true" data-show-arrows="true" data-show-dots="true" data-carousel-mode="default" data-ga4-title="hp-top-sellers" data-center-padding="90px" data-element="main" data-pb-style="MX02896">
<div x-data x-init="() =&gt; {            const products = {&quot;48633&quot;:{&quot;item_name&quot;:&quot;Stimulateur clitoridien Passion Pod&quot;,&quot;item_id&quot;:&quot;87712&quot;,&quot;price&quot;:47.9,&quot;item_url&quot;:&quot;https:\/\/www.espaceplaisir.fr\/lovehoney-passion-pod-clitoral-suction-stimulator.html&quot;,&quot;item_list_name&quot;:&quot;widgets&quot;,&quot;index&quot;:1,&quot;quantity&quot;:1,&quot;item_category&quot;:&quot;Sextoys&quot;,&quot;item_category2&quot;:&quot;Stimulateur clitoridien&quot;,&quot;item_category3&quot;:&quot;Plaisir 100% clitoris&quot;,&quot;item_brand&quot;:&quot;Lovehoney&quot;,&quot;item_ean&quot;:&quot;5061018993260&quot;,&quot;price_type&quot;:&quot;full price&quot;,&quot;item_sale_indicator&quot;:&quot;off_sale&quot;,&quot;price_before_discount&quot;:47.9,&quot;item_stock&quot;:&quot;in stock&quot;},&quot;46997&quot;:{&quot;item_name&quot;:&quot;Womanizer Vibe stimulateur clitoridien&quot;,&quot;item_id&quot;:&quot;CONF-24222&quot;,&quot;price&quot;:109.65,&quot;item_url&quot;:&quot;https:\/\/www.espaceplaisir.fr\/womanizer-vibe.html&quot;,&quot;item_list_name&quot;:&quot;widgets&quot;,&quot;index&quot;:2,&quot;quantity&quot;:1,&quot;item_category&quot;:&quot;Sextoys&quot;,&quot;item_category2&quot;:&quot;Stimulateur clitoridien&quot;,&quot;item_brand&quot;:&quot;Womanizer&quot;,&quot;item_reviews&quot;:&quot;76&quot;,&quot;item_rating&quot;:&quot;3.82&quot;,&quot;price_type&quot;:&quot;discounted price&quot;,&quot;item_sale_indicator&quot;:&quot;on_sale&quot;,&quot;discount&quot;:19.35,&quot;price_before_discount&quot;:129,&quot;item_stock&quot;:&quot;in stock&quot;},&quot;32659&quot;:{&quot;item_name&quot;:&quot;Stimulateur point G et clitoris Indulge&quot;,&quot;item_id&quot;:&quot;84888&quot;,&quot;price&quot;:59.42,&quot;item_url&quot;:&quot;https:\/\/www.espaceplaisir.fr\/lovehoney-indulge-g-spot-and-clitoral-suction-stimulator.html&quot;,&quot;item_list_name&quot;:&quot;widgets&quot;,&quot;index&quot;:3,&quot;quantity&quot;:1,&quot;item_category&quot;:&quot;Sextoys&quot;,&quot;item_category2&quot;:&quot;Stimulateur clitoridien&quot;,&quot;item_brand&quot;:&quot;Lovehoney&quot;,&quot;item_ean&quot;:&quot;5060926403168&quot;,&quot;item_reviews&quot;:&quot;1201&quot;,&quot;item_rating&quot;:&quot;4.23&quot;,&quot;price_type&quot;:&quot;discounted price&quot;,&quot;item_sale_indicator&quot;:&quot;on_sale&quot;,&quot;discount&quot;:10.5,&quot;price_before_discount&quot;:69.9,&quot;item_stock&quot;:&quot;in stock&quot;},&quot;32660&quot;:{&quot;item_name&quot;:&quot;Stimulateur clitoridien Rose rouge&quot;,&quot;item_id&quot;:&quot;84894&quot;,&quot;price&quot;:49.9,&quot;item_url&quot;:&quot;https:\/\/www.espaceplaisir.fr\/lovehoney-rose-clitoral-suction-stimulator.html&quot;,&quot;item_list_name&quot;:&quot;widgets&quot;,&quot;index&quot;:4,&quot;quantity&quot;:1,&quot;item_category&quot;:&quot;Sextoys&quot;,&quot;item_category2&quot;:&quot;Stimulateur clitoridien&quot;,&quot;item_brand&quot;:&quot;Lovehoney&quot;,&quot;item_ean&quot;:&quot;5060926403175&quot;,&quot;item_reviews&quot;:&quot;1674&quot;,&quot;item_rating&quot;:&quot;4.01&quot;,&quot;price_type&quot;:&quot;full price&quot;,&quot;item_sale_indicator&quot;:&quot;off_sale&quot;,&quot;price_before_discount&quot;:49.9,&quot;item_stock&quot;:&quot;in stock&quot;},&quot;47695&quot;:{&quot;item_name&quot;:&quot;Lovense Lush 4 oeuf vibrant connect\u00e9&quot;,&quot;item_id&quot;:&quot;6972677430456&quot;,&quot;price&quot;:129,&quot;item_url&quot;:&quot;https:\/\/www.espaceplaisir.fr\/lovense-lush-4.html&quot;,&quot;item_list_name&quot;:&quot;widgets&quot;,&quot;index&quot;:5,&quot;quantity&quot;:1,&quot;item_category&quot;:&quot;Sextoys&quot;,&quot;item_category2&quot;:&quot;Oeuf vibrant et boules de geisha&quot;,&quot;item_category3&quot;:&quot;Oeuf vibrant&quot;,&quot;item_brand&quot;:&quot;Lovense&quot;,&quot;item_ean&quot;:&quot;6972677430456&quot;,&quot;item_reviews&quot;:&quot;1185&quot;,&quot;item_rating&quot;:&quot;4.4&quot;,&quot;price_type&quot;:&quot;discounted price&quot;,&quot;item_sale_indicator&quot;:&quot;on_sale&quot;,&quot;discount&quot;:10,&quot;price_before_discount&quot;:139,&quot;item_stock&quot;:&quot;in stock&quot;},&quot;33537&quot;:{&quot;item_name&quot;:&quot;Stimulateur pour couple We-Vibe Sync Lite&quot;,&quot;item_id&quot;:&quot;CONF-22444&quot;,&quot;price&quot;:75.65,&quot;item_url&quot;:&quot;https:\/\/www.espaceplaisir.fr\/we-vibe-sync-lite.html&quot;,&quot;item_list_name&quot;:&quot;widgets&quot;,&quot;index&quot;:6,&quot;quantity&quot;:1,&quot;item_category&quot;:&quot;Sextoys&quot;,&quot;item_category2&quot;:&quot;Stimulateur clitoridien&quot;,&quot;item_brand&quot;:&quot;We-Vibe&quot;,&quot;item_reviews&quot;:&quot;124&quot;,&quot;item_rating&quot;:&quot;3.89&quot;,&quot;price_type&quot;:&quot;discounted price&quot;,&quot;item_sale_indicator&quot;:&quot;on_sale&quot;,&quot;discount&quot;:13.35,&quot;price_before_discount&quot;:89,&quot;item_stock&quot;:&quot;in stock&quot;}};            const node = $el.nextElementSibling;            const ga4Title = node &amp;&amp; node.closest('[data-ga4-title]');            if (ga4Title &amp;&amp; ga4Title.dataset.ga4Title) {               for (const product in products) {                   products[product].item_list_id = products[product].item_list_id || ga4Title.dataset.ga4Title;               }            }            updateGa4Products({node, products: JSON.stringify(products) }).init();        }"></div>
    
    <section class="p-slider relative mt-6 mb-11" x-data="initSliderComponent()" x-defer="intersect">
        <div x-init="$nextTick(() =&gt; calcPageSize())" @resize.window.debounce="calcPageSize">
            <div class="w-[calc(100% + 16px)] -ml-2">
                <div data-slider data-p-slides class="relative flex flex-nowrap overflow-auto transition-all snap lg:gap-2" @scroll.debounce="calcActive">
                                            <div class="p-slider__item rounded-xs p-2.5 flex shrink-0 w-[calc(100%/1.5)] bg-white md:max-w-[25%] js_slide lg:max-w-none lg:w-[calc(100%/5-30px/5)]">
                            
    <form x-data="{}" x-i4-ajax-cart action="https://www.espaceplaisir.fr/checkout/cart/add/uenc/aHR0cHM6Ly93d3cuZXNwYWNlcGxhaXNpci5mci8_cD0y/product/48633/" method="post" data-id="48633" data-sku="87712" data-type="simple" class="product-item relative w-full flex flex-col group gap-2.5 lg:gap-6">
        <input name="form_key" type="hidden" value="coesOXdkCCAL8faf">        <input type="hidden" name="product" value="48633">

        
        <a class="product__link relative hover:text-black" href="https://www.espaceplaisir.fr/lovehoney-passion-pod-clitoral-suction-stimulator.html">
            <img class="w-full object-contain text-transparent" x-ref="gallery" src="https://www.espaceplaisir.fr/media/catalog/product/8/7/87712_a49661_pink_000.jpg?quality=80&amp;fit=bounds&amp;height=480&amp;width=480" loading="lazy" width="480" height="480" alt="Stimulateur clitoridien Passion Pod" title="Stimulateur clitoridien Passion Pod">
            
                                                </a>
        <div class="relative text-center flex flex-col text-sm items-center h-full product-info-block product-info-block__container">
            <div class="text-sm text-center line-clamp-1 leading-6 mb-2 min-h-6 product-info-block">
                Lovehoney            </div>
            <p class="product__name text-sm font-bold mb-2 min-h-8 leading-5 font-Averta">
                <a class="product__link text-center line-clamp-2 font-bold product-info-block" href="https://www.espaceplaisir.fr/lovehoney-passion-pod-clitoral-suction-stimulator.html">
                    Stimulateur clitoridien Passion Pod                </a>
            </p>
            <div class="review min-h-5 w-full flex flex-col items-center">
                
<div class="r-stars">
    <div class="r-stars__box">
        <i class="r-stars__empty"></i>
        <i class="r-stars__full" style="width:0%"></i>
    </div>
    <span class="text-sm leading-none">(0)</span>
</div>
            </div>
            <div class="text-grey-dark">
                <div class="price-box price-final_price" data-role="priceBox" data-product-id="48633" data-price-box="product-id-48633">

<div class="normal-final-price           simple-product">
    <span class="special-price">
        
<span class="price-container            price-final_price tax weee">
            <span class="price-label">
            Prix sp&eacute;cial        </span>
        <span id="product-price-48633" data-price-amount="47.9" data-price-type="finalPrice" class="price-wrapper">
        <span class="price">47,90&nbsp;&euro;</span>    </span>
                <meta content="47.9">
        <meta content="EUR">
    </span>
    </span>
    <span class="final-price-box">
        
<span class="price-container            price-final_price tax weee">
            <span class="price-label">
            Prix normal        </span>
        <span id="old-price-48633" data-price-amount="47.9" data-price-type="oldPrice" class="price-wrapper">
        <span class="price">47,90&nbsp;&euro;</span>    </span>
                <meta content="47.9">
        <meta content="EUR">
    </span>
    </span>
</div>

</div>            </div>
            <div class="w-full min-h-[2rem] lg:block mt-auto">
                                    <div class="mb-4 lg:mb-5 block">
                                            </div>
                                    <div class="product__actions flex gap-2">
                    <button x-ref="submit" class="btn btn-tertiary text-sm px-1 truncate w-full min-w-auto transition-all block" aria-label="Ajouter au panier Stimulateur clitoridien Passion Pod">
                <span class="text-addtocart hidden lg:block">
                    Ajouter au panier                </span>
                <span class="icons-addtocart flex gap-2 justify-center items-center lg:hidden">
                    <svg xmlns="http://www.w3.org/2000/svg" id="Calque_2" fill="currentColor" viewbox="0 0 18 18" width="17" height="17" aria-hidden="true"><g id="SYSTEM_2"><g id="Editor_2"><g id="icon_add_2"><path d="m13.19,10.49l-4.61-.19c-1.85-.08-3.7-.16-5.55-.24-.24,0-.48,0-.72,0-.49,0-.99,0-1.49-.08-.28-.05-.5-.31-.67-.52-.21-.25-.2-.64.04-.87.17-.16.4-.39.67-.41,3.34-.24,6.86-.46,10.75-.68l2.81.1h.2c.72,0,1.46,0,2.18.12.41.07.73.45.99.76.31.37.29.95-.06,1.28-.25.24-.58.57-.98.6-.09,0-.17.01-.26.02-.68.04-1.38.07-2.07.12h-.57c-.26,0-.46,0-.66,0Z"></path><path d="m10.49,4.81l-.19,4.61c-.08,1.85-.16,3.7-.24,5.55,0,.24,0,.48,0,.72,0,.49,0,.99-.08,1.49-.05.28-.31.5-.52.67-.25.21-.64.2-.87-.04-.16-.17-.39-.4-.41-.67-.24-3.34-.46-6.86-.68-10.75l.1-2.81v-.2c0-.72,0-1.46.12-2.18.07-.41.45-.73.76-.99.37-.31.95-.29,1.28.06.24.25.57.58.6.98,0,.09.01.17.02.26.04.68.07,1.38.12,2.07v.57c0,.26,0,.46,0,.66Z"></path></g></g></g></svg>
                    <svg xmlns="http://www.w3.org/2000/svg" id="Calque_2" fill="currentColor" viewbox="0 0 15 20" width="18" height="19" aria-hidden="true"><g id="BUSINESS_2"><g id="Finance_Payment_2"><g id="icon_cart_2"><path d="m4.48,3.1c.07-.93.58-1.82,1.36-2.39C6.61.14,7.64-.11,8.6.04c1.17.16,2.19.93,2.65,1.93.25.48.31,1.08.29,1.55l-.02,1.4v.73c0,.49,0,1-.04,1.5-.02.29-.13.5-.21.68-.1.21-.26.2-.36-.04-.07-.17-.16-.4-.17-.67-.02-.84-.05-1.7-.07-2.56-.01-.43-.03-.86-.04-1.3-.02-.38-.14-.75-.34-1.08-.41-.66-1.17-1.11-1.99-1.15-.82-.05-1.66.31-2.14.96-.25.3-.4.66-.46,1.03-.02.09-.02.19-.03.28v.35s-.02.71-.02.71v.2c0,.72,0,1.47-.05,2.2-.03.41-.18.74-.31,1-.15.31-.39.29-.52-.06-.1-.25-.23-.59-.25-.99,0-.09,0-.18,0-.26-.02-.69-.03-1.39-.05-2.09v-.57c0-.27-.01-.44.01-.7Z"></path><path d="m.23,17.58c.27-2,.51-4.02.74-6.04l.77-6.05.14-1.13c.05-.43.31-.7.7-.75.19-.02.43,0,.61,0h.34s1.35.01,1.35.01l2.71.02,5.61.04c.19,0,.33.05.46.13.15.11.2.24.26.4.05.18.05.36.08.54l.04.34.17,1.3.26,1.91c.17,1.29.36,2.62.49,3.92.08.75.03,1.33,0,1.81-.05.57-.24.55-.44-.06-.14-.43-.33-1.02-.43-1.72-.19-1.28-.38-2.58-.59-3.94-.1-.68-.2-1.38-.31-2.1-.05-.36-.11-.73-.16-1.1l-.05-.3c0-.08-.08-.08-.14-.07-1.52.02-3.18.04-4.94.07-.91.01-1.84.02-2.8.03-.48,0-.96.01-1.45.02-.23,0-.57,0-.52,0-.04,0-.07.02-.06.07-.13,1.2-.27,2.53-.43,3.94-.17,1.49-.33,3.08-.48,4.68l-.38,3.12-.21,1.56-.03.23v.02s0,.02.01.02h.02s.23,0,.23,0h.58s.51,0,.51,0c1.83,0,3.74,0,5.58.06,1.05.04,1.87.23,2.54.38.79.19.74.48-.15.65-.63.12-1.5.29-2.51.3-.22,0-.44,0-.65,0-1.75.02-3.54.04-5.32.06H.88c-.19,0-.35-.06-.47-.13-.09-.05-.19-.14-.27-.25-.07-.11-.09-.16-.12-.29-.05-.1,0-.26,0-.4.01-.14.04-.28.06-.42.05-.32.09-.62.13-.92Z"></path></g></g></g></svg>
                </span>
            </button>
                <div>
            
    <button x-data="initWishlist()" x-on:click.prevent="toggleWishlist" aria-label="Ajouter &agrave; la liste de souhaits" type="button" class="wishlist-btn text-black p-3 hover:bg-pink-dark rounded-btn" :class="isInWishlist() ? '!bg-pink-dark lg:!bg-pink-light' : 'bg-pink-light'" x-on:class="{ 'pointer-events-none': loading }">
        <span x-cloak x-show="!isInWishlist()">
            <svg class="size-6 text-optimo-darker" :class="{ '!hidden': loading }" aria-hidden="true">
                <use href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/i4-sprite.svg#ico-wishlist"></use>
            </svg>
        </span>
        <span x-cloak x-show="isInWishlist()">
            <svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewbox="0 0 24 24" class="size-6 text-optimo-darker" width="24" height="24" aria-hidden="true" :class="{ '!hidden': loading }"><path fill="#FF5C6E" d="M12.113 5.598c.03-.07.02-.06.09-.19.09-.18.19-.36.33-.54.5-.72 1.249-1.269 2.058-1.519.939-.29 1.688-.13 2.228.07.64.28.49.44-.19.43-.49.02-1.139.15-1.808.42-.44.18-.85.45-1.18.799-.16.18-.309.37-.429.59-.06.14-.11.17-.19.41-.06.25-.17.4-.2.739-.2 1.509-.49 1.429-.639 1.549-.14.06-.35.04-.42 0-.3-.11-.51-.66-.55-1.08-.04-.28-.11-.48-.159-.729-.05-.25-.12-.46-.22-.62-.1-.2-.23-.37-.35-.54-.27-.339-.609-.619-.979-.829-.749-.43-1.678-.51-2.567-.3C5.159 4.589 4 6.528 4.33 8.447c.2 1.968 1.409 3.797 2.757 5.516 1.39 1.709 2.978 3.348 4.636 4.977.37.37.2.2.24.25.04-.04-.12.12.25-.23.52-.49 1.01-1 1.509-1.5a49.169 49.169 0 0 0 2.827-3.137l.37-.47c1.269-1.689 2.478-3.598 2.697-5.556.12-1.1.02-1.979-.24-2.708-.16-.42-.23-.66-.11-.72.1-.05.41.07.78.53.52.62 1.08 1.789.93 3.168-.02.3-.06.59-.13.859-.5 2.278-1.809 4.147-3.118 5.856l-.04.06c-.35.45-.72.87-1.089 1.3-.53.589-.95 1.058-1.379 1.498-.41.43-.829.85-1.249 1.27l-.639.619-.34.33c-.21.18-.41.44-.63.55-.419.219-.928.04-1.298-.44l-.7-.71-1.228-1.28c-1.619-1.728-3.218-3.497-4.516-5.575-.77-1.24-1.41-2.639-1.569-4.167-.08-.74-.09-1.55.15-2.319.22-.77.63-1.479 1.189-2.058.55-.57 1.279-1 2.058-1.19a5.22 5.22 0 0 1 2.328-.07c.78.17 1.509.56 2.088 1.11.29.27.53.59.75.929.06.08.09.17.14.26l.05.1.05.14.04.1c.04.11.07.17.07.17s.06-.09.149-.32v.01Z"></path><path fill="#FF5C6E" stroke="#FF5C6E" d="M16 3.502c-2.4 0-3.667 3-4 4.5-.5-2.167-2.4-6-6-4-4.5 2.5-1.5 7.5 0 9.5 1.2 1.6 4.5 5.333 6 7 1.666-1.834 5.5-6.3 7.5-9.5 2.5-4-.5-7.5-3.5-7.5Z"></path></svg>
        </span>
        <span x-cloak x-show="loading">
            <svg class="animate-spin text-optimo-darker size-6" aria-hidden="true">
                <use href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/i4-sprite.svg#ico-loader"></use>
            </svg>
        </span>
        <span class="hidden">
            Mes Favoris        </span>
    </button>
        </div>
    </div>

            </div>
                                </div>
    </form>

                        </div>
                                            <div class="p-slider__item rounded-xs p-2.5 flex shrink-0 w-[calc(100%/1.5)] bg-white md:max-w-[25%] js_slide lg:max-w-none lg:w-[calc(100%/5-30px/5)]">
                            
    <form x-data="initPriceBox()" @update-prices-46997="updatePrice($event.detail);" @update-gallery-46997="$refs.gallery &amp;&amp; ($refs.gallery.src = $event.detail)" x-i4-ajax-cart action="https://www.espaceplaisir.fr/checkout/cart/add/uenc/aHR0cHM6Ly93d3cuZXNwYWNlcGxhaXNpci5mci8_cmVmPUVFQzAzMDg0XzZCQzAzRUQwLTNCQzItNDYzOS05RDRFLUFEOEQ2QzIxN0ZFOSZrd2t1bml2PVA0QUQ0QjU2MDAwRjEwMC1jY3A0YWQ0YjU2MDAwZjFiMQ~~/product/46997/" method="post" data-id="46997" data-sku="CONF-24222" data-type="configurable" class="product-item relative w-full flex flex-col group gap-2.5 lg:gap-6">
        <input name="form_key" type="hidden" value="8yNxmtfnPOYer9vi">        <input type="hidden" name="product" value="46997">

        
        <a class="product__link relative hover:text-black" href="https://www.espaceplaisir.fr/womanizer-vibe.html">
            <img class="w-full object-contain text-transparent" x-ref="gallery" src="https://www.espaceplaisir.fr/media/catalog/product/w/m/wmz-vibe-08.jpg?quality=80&amp;fit=bounds&amp;height=480&amp;width=480" loading="lazy" width="480" height="480" alt="" title="">
            
                                <div class="label-container absolute inset-0 grid grid-flow-col grid-cols-3 grid-rows-3">
        
            <div class="relative group/item" style="width:72px; height:72px; margin: 0 0 0 -8px; font-size: 14px; color: #000000;grid-area:3/3">
        <div class="whitespace-nowrap absolute left-1/2 top-1/2 -translate-y-1/2 -translate-x-1/2">
            </div>
            <img class="w-full h-full" src="https://www.espaceplaisir.fr/media/amasty/amlabel/0526_macaron_bundlePLP_V3_1.png" loading="lazy" title="Womanizer Mini Offert Macaron " alt="Womanizer Mini Offert Macaron ">
    
    
            </div>
        </div>
                    </a>
        <div class="relative text-center flex flex-col text-sm items-center h-full product-info-block product-info-block__container">
            <div class="text-sm text-center line-clamp-1 leading-6 mb-2 min-h-6 product-info-block">
                Womanizer            </div>
            <p class="product__name text-sm font-bold mb-2 min-h-8 leading-5 font-Averta">
                <a class="product__link text-center line-clamp-2 font-bold product-info-block" href="https://www.espaceplaisir.fr/womanizer-vibe.html">
                    Womanizer Vibe stimulateur clitoridien                </a>
            </p>
            <div class="review min-h-5 w-full flex flex-col items-center">
                
<div class="r-stars">
    <div class="r-stars__box">
        <i class="r-stars__empty"></i>
        <i class="r-stars__full" style="width:76%"></i>
    </div>
    <span class="text-sm leading-none">(76)</span>
</div>
            </div>
            <div class="text-grey-dark">
                <div class="price-box price-final_price" data-role="priceBox" data-product-id="46998" data-price-box="product-id-46998">

<div class="special-price-container special-price-exist           simple-product">
    <span class="special-price">
        
<span class="price-container            price-final_price tax weee">
            <span class="price-label">
            Prix sp&eacute;cial        </span>
        <span id="product-price-46998" data-price-amount="109.65" data-price-type="finalPrice" class="price-wrapper">
        <span class="price">109,65&nbsp;&euro;</span>    </span>
                <meta content="109.65">
        <meta content="EUR">
    </span>
    </span>
    <span class="final-price-box">
        
<span class="price-container            price-final_price tax weee">
            <span class="price-label">
            Prix normal        </span>
        <span id="old-price-46998" data-price-amount="129" data-price-type="oldPrice" class="price-wrapper">
        <span class="price">129,00&nbsp;&euro;</span>    </span>
                <meta content="129">
        <meta content="EUR">
    </span>
    </span>
</div>

</div>            </div>
            <div class="w-full min-h-[2rem] lg:block mt-auto">
                                    <div class="mb-4 lg:mb-5 block">
                            <script>
        function initConfigurableSwatchOptions_46997() {
            return {
                ...initConfigurableOptions('46997', {"attributes":{"275":{"id":"275","code":"couleur","label":"Couleur","options":[{"id":"45","label":"Bleu","products":["47000"]},{"id":"40","label":"Vert","products":["46998"]},{"id":"70","label":"Rose","products":["46999"]}],"position":"0"}},"template":"<%- data.price %>\u00a0\u20ac","currencyFormat":"%s\u00a0\u20ac","optionPrices":{"47000":{"baseOldPrice":{"amount":107.499999},"oldPrice":{"amount":129},"basePrice":{"amount":91.374999},"finalPrice":{"amount":109.65},"tierPrices":[],"msrpPrice":{"amount":0}},"46998":{"baseOldPrice":{"amount":107.499999},"oldPrice":{"amount":129},"basePrice":{"amount":91.374999},"finalPrice":{"amount":109.65},"tierPrices":[],"msrpPrice":{"amount":0}},"46999":{"baseOldPrice":{"amount":107.499999},"oldPrice":{"amount":129},"basePrice":{"amount":91.374999},"finalPrice":{"amount":109.65},"tierPrices":[],"msrpPrice":{"amount":0}}},"priceFormat":{"pattern":"%s\u00a0\u20ac","precision":2,"requiredPrecision":2,"decimalSymbol":",","groupSymbol":"\u202f","groupLength":3,"integerRequired":false},"prices":{"baseOldPrice":{"amount":107.499999},"oldPrice":{"amount":129},"basePrice":{"amount":91.374999},"finalPrice":{"amount":109.65}},"productId":"46997","chooseText":"Choisissez une option...","images":[],"index":{"47000":{"275":"45"},"46998":{"275":"40"},"46999":{"275":"70"}},"salable":[],"canDisplayShowOutOfStockStatus":false,"channel":"website","salesChannelCode":"espace_plaisir_fo","sku":{"47000":"WZFS1SG6","46998":"WZFS1SG5","46999":"WZFS1SG3"},"label_reload":"https:\/\/www.espaceplaisir.fr\/amasty_label\/ajax\/label\/","label_category":".product-image-container, .product-item-photo, .cdz-product-top","label_product":".fotorama__stage, #amasty-main-container","original_product_id":"46997","defaultValues":{"275":"40"}}),
                ...initSwatchOptions({"275":{"45":{"type":2,"value":"https:\/\/www.espaceplaisir.fr\/media\/catalog\/product\/w\/m\/wmz-vibe-14.jpg?quality=80&fit=bounds&height=100&width=100","thumb":"https:\/\/www.espaceplaisir.fr\/media\/catalog\/product\/w\/m\/wmz-vibe-14.jpg?quality=80&fit=bounds&height=90&width=110","label":"Bleu"},"40":{"type":2,"value":"https:\/\/www.espaceplaisir.fr\/media\/catalog\/product\/w\/m\/wmz-vibe-08.jpg?quality=80&fit=bounds&height=100&width=100","thumb":"https:\/\/www.espaceplaisir.fr\/media\/catalog\/product\/w\/m\/wmz-vibe-08.jpg?quality=80&fit=bounds&height=90&width=110","label":"Vert"},"70":{"type":2,"value":"https:\/\/www.espaceplaisir.fr\/media\/catalog\/product\/w\/m\/wmz-vibe-02.jpg?quality=80&fit=bounds&height=100&width=100","thumb":"https:\/\/www.espaceplaisir.fr\/media\/catalog\/product\/w\/m\/wmz-vibe-02.jpg?quality=80&fit=bounds&height=90&width=110","label":"Rose"},"additional_data":"{\"swatch_input_type\":\"visual\",\"update_product_preview_image\":\"1\",\"use_product_image_for_swatch\":\"1\"}"}}),
                mediaCallback: "https\u003A\u002F\u002Fwww.espaceplaisir.fr\u002Fswatches\u002Fajax\u002Fmedia\u002F",
                changeOption(optionId, value, skipUpdateGallery) {
                    this.selectedValues[optionId] = value;
                    this.findSimpleIndex();
                    this.findAllowedAttributeOptions();
                    this.updatePrices();
                    !skipUpdateGallery && this.updateGallery();

                    const detail = {
                        productId: this.productId,
                        optionId: optionId,
                        value: value,
                        productIndex: this.productIndex,
                        selectedValues: this.selectedValues,
                        candidates: this.findProductIdsForPartialSelection(this.selectedValues),
                        variationSku: this.optionConfig.sku[this.productIndex]
                    };

                    this.$root.dispatchEvent(new CustomEvent('configurable-selection-changed', { detail, bubbles: true }));
                    this.$root.dispatchEvent(new CustomEvent(`configurable-selection-changed-${this.productId}`, { detail, bubbles: true }));
                },
                updateGallery() {
                    if (!this.productIndex) {
                        return;
                    }

                    fetch(`${this.mediaCallback}?product_id=${this.productIndex}&isAjax=true`, {
                            method: 'GET',
                            headers: {
                                'Content-Type': 'application/json',
                                'X-Requested-With': 'XMLHttpRequest'
                            }
                        }
                    ).then(response => {
                            return response.json()
                        }
                    ).then(data => {
                        if (data.errors) {
                            // non critical failure only console logged
                            console.warn(data.errors);
                        } else {
                            const image = data && data.medium;

                            image && this.$root.dispatchEvent(
                                new CustomEvent(
                                    "update-gallery-46997",
                                    {detail: image, bubbles: true}
                                )
                            );
                        }
                    }).catch(error => {
                        console.warn(error)
                    });
                },
                preselectQuerystringItems() {
                    // pre-select option like ?size=167
                    const urlQueryParams = new URLSearchParams(window.location.search.replace('?', ''));
                    Object.values(this.optionConfig.attributes).map(attribute => {
                        // Don't update images on load, since PLPs already set the main image to the selected options
                        const skipUpdateGallery = true;
                        urlQueryParams.get(attribute.code) &&
                        this.changeOption(attribute.id, urlQueryParams.get(attribute.code), skipUpdateGallery);
                    });
                }
            };
        }

    </script>

    <div x-data="initConfigurableSwatchOptions_46997()" x-init="findAllowedAttributeOptions();" x-intersect="showSwatches = true" @private-content-loaded.window="onGetCartData($event.detail.data)" class="relative">
        <div>
                            
                                <div class="swatch-attribute-options swatch-attribute mb-1  couleur">
                    <template x-if="showSwatches">
                        <div class="flex flex-wrap justify-center gap-1" role="radiogroup" x-data="{countOfOptions: Object.keys(optionConfig.attributes[275].options).length}">
                            <label class="sr-only" for="attributecouleur">
                                Couleur                            </label>
                            <template x-for="(item, index) in optionConfig.attributes[275].options" :key="item.id">
                                
<div :class="{    'opacity-0 absolute size-0 -z-1' : index &gt;= numberToShow,    'opacity-40 out-of-stock-swatch' : checkStatusOfItem(275, item.id)}">
    <template x-if="optionIsEnabled(275, item.id) &amp;&amp; optionIsActive(275, item.id)">
        <label @click="swatchImgListener(275, item.id)" :for="'attribute-option-46997-'+item.id" class="swatch-option flex justify-center relative border-2 border-transparent mb-0 font-normal" :data-sku="optionConfig.sku[productIndex]" :class="{                'size-8 rounded-btn border' : !isTextSwatch(275, item.id),                [getTypeSwatches(275, item.id)]: true,                '!border-pink text-pink selected active': selectedValues[275] === item.id &amp;&amp; !isTextSwatch(275, item.id),                'hover:border-optimo-darker': !isTextSwatch(275, item.id)            }" :style="getSwatchBackgroundStyle('275',item.id)" @mouseenter.self="activeTooltipItem = {                    attribute: '275',                    item: item.id                }; tooltipPositionElement = $event.target;" @mouseleave.self="activeTooltipItem = false;">
            <input :id="'attribute-option-46997-'+item.id" :value="item.id" name="super_attribute[275]" type="radio" class="-z-1 absolute opacity-0 h-0" @change="changeOption(275, $event.target.value)" x-model="selectedValues[275]" :required="getAllowedAttributeOptions(275)                .filter(option =&gt; selectedValues[option]).length === 0" :aria-label="getSwatchText(275, item.id)" aria-describedby="attribute-label-46997-275">
            <div x-html="getSwatchText(275, item.id)" class="swatch-option__text flex items-center justify-center min-w-10 h-5 border border-grey                        rounded py-0 px-2 whitespace-nowrap text-black hover:border-optimo-darker" :class="{                 'sr-only' : !isTextSwatch(275, item.id),                 'border-optimo border-1 selected text-pink': updateConfigurableOptions(selectedValues[275] === item.id)                 }"></div>
        </label>
    </template>

    <template x-if="optionIsEnabled(275, item.id) &amp;&amp; !optionIsActive(275, item.id)">
        <div class="swatch-option relative swatch-option border-2 border-transparent" :class="{                'size-4 rounded-btn': !isTextSwatch(275, item.id),                [getTypeSwatches(275, item.id)]: true,                'hidden': index &gt;= numberToShow,                'opacity-50 select-none border-container-darker': !isTextSwatch(275, item.id)            }" :style="getSwatchBackgroundStyle('275',item.id)">
            <div x-html="getSwatchText(275, item.id)" class="swatch-option__text whitespace-nowrap" :class="{                    'sr-only' : !isTextSwatch(275, item.id),                    'swatch-option__text flex items-center justify-center border rounded min-w-10 h-5 text-sm border-grey-light line-through' : isTextSwatch(275, item.id)                 }"></div>
            <svg class="absolute inset-0 w-full h-full text-grey-light bg-white bg-opacity-25">
                <line x1="0" y1="100%" x2="100%" y2="0" class="stroke-current stroke-1"></line>
            </svg>
        </div>
    </template>
</div>
                            </template>
                            <template x-if="numberToShow &lt; countOfOptions">
                                <a href="https://www.espaceplaisir.fr/womanizer-vibe.html" title="Plus" class="flex items-center w-6 h-6 rounded-full bg-grey-lighter">
                                    <svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewbox="0 0 24 24" class="size-4 ml-2 bg-1 rounded-big" width="16" height="16" aria-hidden="true"><path d="m16.1836 12.9933-4.608-.1266-5.5476-.16h-.7197c-.4898 0-.9896 0-1.4894-.0534-.2799-.0333-.4998-.2066-.6697-.3466-.2099-.1667-.2-.4267.04-.58.17-.1067.3998-.26.6697-.2734 3.3386-.16 6.8571-.3066 10.7454-.4533l2.8088.0667h.1999c.7197 0 1.4594 0 2.1791.08.4098.0466.7297.3.9896.5066.3099.2467.2899.6334-.06.8534-.2499.16-.5797.38-.9796.4-.0899 0-.1699.0066-.2599.0133-.6797.0267-1.3794.0467-2.0691.08h-1.2295v-.0067Z"></path><path d="m12.9933 7.8163-.1266 4.6081-.16 5.5476v.7197c0 .4898 0 .9896-.0534 1.4894-.0333.2799-.2066.4998-.3466.6697-.1667.2099-.4267.1999-.58-.04-.1067-.1699-.26-.3998-.2734-.6697-.16-3.3386-.3066-6.8571-.4533-10.7454l.0667-2.8088v-.2c0-.7196 0-1.4593.08-2.179.0466-.4098.3-.7297.5066-.9896.2467-.3098.6334-.2899.8534.06.16.2499.38.5797.4.9796 0 .09.0066.1699.0133.2599.0267.6797.0467 1.3794.08 2.069V7.8164h-.0067Z"></path></svg>
                                </a>
                            </template>
                        </div>
                    </template>
                </div>
                    </div>
                    <template x-if="isTooltipVisible()">
    <div @resize.window="activeTooltipItem = false">
        <div class="absolute shadow-box2" :style="getTooltipPosition()">
            <div x-ref="content" class="absolute top-0 left-0 z-10 min-w-20 p-2 -mt-6 text-sm leading-tight text-black                    transform -translate-x-1/3 -translate-y-full bg-white border border-grey-light text-center">
                <template x-if="isVisualSwatch(activeTooltipItem.attribute, activeTooltipItem.item)">
                    <div class="inline-block" :style="getTooltipImageStyle(activeTooltipItem.attribute, activeTooltipItem.item)"></div>
                </template>
                <span class="mx-2 text-lg font-semibold whitespace-nowrap" x-html="getTooltipLabel()"></span>
            </div>
        </div>
        <div class="absolute flex pointer-events-none" :style="getTooltipArrowPosition()">
            <svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" viewbox="0 0 256 256" width="16" height="16" aria-hidden="true">
  <path fill="#999" d="M254.307 69.55a9.806 9.806 0 0 0-2.88-6.956c-3.84-3.84-10.069-3.84-13.907 0l-109.663 109.66-109.66-109.66c-3.842-3.84-10.069-3.84-13.91 0-3.839 3.842-3.839 10.069 0 13.91l116.615 116.615c3.838 3.841 10.068 3.841 13.907 0L251.424 76.504a9.797 9.797 0 0 0 2.883-6.955z"></path>
</svg>
        </div>
    </div>
</template>
            </div>
                    </div>
                                    <div class="product__actions flex gap-2">
                    <button x-ref="submit" class="btn btn-tertiary text-sm px-1 truncate w-full min-w-auto transition-all block" aria-label="Ajouter au panier Womanizer Vibe stimulateur clitoridien">
                <span class="text-addtocart hidden lg:block">
                    Ajouter au panier                </span>
                <span class="icons-addtocart flex gap-2 justify-center items-center lg:hidden">
                    <svg xmlns="http://www.w3.org/2000/svg" id="Calque_2" fill="currentColor" viewbox="0 0 18 18" width="17" height="17" aria-hidden="true"><g id="SYSTEM_2"><g id="Editor_2"><g id="icon_add_2"><path d="m13.19,10.49l-4.61-.19c-1.85-.08-3.7-.16-5.55-.24-.24,0-.48,0-.72,0-.49,0-.99,0-1.49-.08-.28-.05-.5-.31-.67-.52-.21-.25-.2-.64.04-.87.17-.16.4-.39.67-.41,3.34-.24,6.86-.46,10.75-.68l2.81.1h.2c.72,0,1.46,0,2.18.12.41.07.73.45.99.76.31.37.29.95-.06,1.28-.25.24-.58.57-.98.6-.09,0-.17.01-.26.02-.68.04-1.38.07-2.07.12h-.57c-.26,0-.46,0-.66,0Z"></path><path d="m10.49,4.81l-.19,4.61c-.08,1.85-.16,3.7-.24,5.55,0,.24,0,.48,0,.72,0,.49,0,.99-.08,1.49-.05.28-.31.5-.52.67-.25.21-.64.2-.87-.04-.16-.17-.39-.4-.41-.67-.24-3.34-.46-6.86-.68-10.75l.1-2.81v-.2c0-.72,0-1.46.12-2.18.07-.41.45-.73.76-.99.37-.31.95-.29,1.28.06.24.25.57.58.6.98,0,.09.01.17.02.26.04.68.07,1.38.12,2.07v.57c0,.26,0,.46,0,.66Z"></path></g></g></g></svg>
                    <svg xmlns="http://www.w3.org/2000/svg" id="Calque_2" fill="currentColor" viewbox="0 0 15 20" width="18" height="19" aria-hidden="true"><g id="BUSINESS_2"><g id="Finance_Payment_2"><g id="icon_cart_2"><path d="m4.48,3.1c.07-.93.58-1.82,1.36-2.39C6.61.14,7.64-.11,8.6.04c1.17.16,2.19.93,2.65,1.93.25.48.31,1.08.29,1.55l-.02,1.4v.73c0,.49,0,1-.04,1.5-.02.29-.13.5-.21.68-.1.21-.26.2-.36-.04-.07-.17-.16-.4-.17-.67-.02-.84-.05-1.7-.07-2.56-.01-.43-.03-.86-.04-1.3-.02-.38-.14-.75-.34-1.08-.41-.66-1.17-1.11-1.99-1.15-.82-.05-1.66.31-2.14.96-.25.3-.4.66-.46,1.03-.02.09-.02.19-.03.28v.35s-.02.71-.02.71v.2c0,.72,0,1.47-.05,2.2-.03.41-.18.74-.31,1-.15.31-.39.29-.52-.06-.1-.25-.23-.59-.25-.99,0-.09,0-.18,0-.26-.02-.69-.03-1.39-.05-2.09v-.57c0-.27-.01-.44.01-.7Z"></path><path d="m.23,17.58c.27-2,.51-4.02.74-6.04l.77-6.05.14-1.13c.05-.43.31-.7.7-.75.19-.02.43,0,.61,0h.34s1.35.01,1.35.01l2.71.02,5.61.04c.19,0,.33.05.46.13.15.11.2.24.26.4.05.18.05.36.08.54l.04.34.17,1.3.26,1.91c.17,1.29.36,2.62.49,3.92.08.75.03,1.33,0,1.81-.05.57-.24.55-.44-.06-.14-.43-.33-1.02-.43-1.72-.19-1.28-.38-2.58-.59-3.94-.1-.68-.2-1.38-.31-2.1-.05-.36-.11-.73-.16-1.1l-.05-.3c0-.08-.08-.08-.14-.07-1.52.02-3.18.04-4.94.07-.91.01-1.84.02-2.8.03-.48,0-.96.01-1.45.02-.23,0-.57,0-.52,0-.04,0-.07.02-.06.07-.13,1.2-.27,2.53-.43,3.94-.17,1.49-.33,3.08-.48,4.68l-.38,3.12-.21,1.56-.03.23v.02s0,.02.01.02h.02s.23,0,.23,0h.58s.51,0,.51,0c1.83,0,3.74,0,5.58.06,1.05.04,1.87.23,2.54.38.79.19.74.48-.15.65-.63.12-1.5.29-2.51.3-.22,0-.44,0-.65,0-1.75.02-3.54.04-5.32.06H.88c-.19,0-.35-.06-.47-.13-.09-.05-.19-.14-.27-.25-.07-.11-.09-.16-.12-.29-.05-.1,0-.26,0-.4.01-.14.04-.28.06-.42.05-.32.09-.62.13-.92Z"></path></g></g></g></svg>
                </span>
            </button>
                <div>
            
    <button x-data="initWishlist()" x-on:click.prevent="toggleWishlist" aria-label="Ajouter &agrave; la liste de souhaits" type="button" class="wishlist-btn text-black p-3 hover:bg-pink-dark rounded-btn" :class="isInWishlist() ? '!bg-pink-dark lg:!bg-pink-light' : 'bg-pink-light'" x-on:class="{ 'pointer-events-none': loading }">
        <span x-cloak x-show="!isInWishlist()">
            <svg class="size-6 text-optimo-darker" :class="{ '!hidden': loading }" aria-hidden="true">
                <use href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/i4-sprite.svg#ico-wishlist"></use>
            </svg>
        </span>
        <span x-cloak x-show="isInWishlist()">
            <svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewbox="0 0 24 24" class="size-6 text-optimo-darker" width="24" height="24" aria-hidden="true" :class="{ '!hidden': loading }"><path fill="#FF5C6E" d="M12.113 5.598c.03-.07.02-.06.09-.19.09-.18.19-.36.33-.54.5-.72 1.249-1.269 2.058-1.519.939-.29 1.688-.13 2.228.07.64.28.49.44-.19.43-.49.02-1.139.15-1.808.42-.44.18-.85.45-1.18.799-.16.18-.309.37-.429.59-.06.14-.11.17-.19.41-.06.25-.17.4-.2.739-.2 1.509-.49 1.429-.639 1.549-.14.06-.35.04-.42 0-.3-.11-.51-.66-.55-1.08-.04-.28-.11-.48-.159-.729-.05-.25-.12-.46-.22-.62-.1-.2-.23-.37-.35-.54-.27-.339-.609-.619-.979-.829-.749-.43-1.678-.51-2.567-.3C5.159 4.589 4 6.528 4.33 8.447c.2 1.968 1.409 3.797 2.757 5.516 1.39 1.709 2.978 3.348 4.636 4.977.37.37.2.2.24.25.04-.04-.12.12.25-.23.52-.49 1.01-1 1.509-1.5a49.169 49.169 0 0 0 2.827-3.137l.37-.47c1.269-1.689 2.478-3.598 2.697-5.556.12-1.1.02-1.979-.24-2.708-.16-.42-.23-.66-.11-.72.1-.05.41.07.78.53.52.62 1.08 1.789.93 3.168-.02.3-.06.59-.13.859-.5 2.278-1.809 4.147-3.118 5.856l-.04.06c-.35.45-.72.87-1.089 1.3-.53.589-.95 1.058-1.379 1.498-.41.43-.829.85-1.249 1.27l-.639.619-.34.33c-.21.18-.41.44-.63.55-.419.219-.928.04-1.298-.44l-.7-.71-1.228-1.28c-1.619-1.728-3.218-3.497-4.516-5.575-.77-1.24-1.41-2.639-1.569-4.167-.08-.74-.09-1.55.15-2.319.22-.77.63-1.479 1.189-2.058.55-.57 1.279-1 2.058-1.19a5.22 5.22 0 0 1 2.328-.07c.78.17 1.509.56 2.088 1.11.29.27.53.59.75.929.06.08.09.17.14.26l.05.1.05.14.04.1c.04.11.07.17.07.17s.06-.09.149-.32v.01Z"></path><path fill="#FF5C6E" stroke="#FF5C6E" d="M16 3.502c-2.4 0-3.667 3-4 4.5-.5-2.167-2.4-6-6-4-4.5 2.5-1.5 7.5 0 9.5 1.2 1.6 4.5 5.333 6 7 1.666-1.834 5.5-6.3 7.5-9.5 2.5-4-.5-7.5-3.5-7.5Z"></path></svg>
        </span>
        <span x-cloak x-show="loading">
            <svg class="animate-spin text-optimo-darker size-6" aria-hidden="true">
                <use href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/i4-sprite.svg#ico-loader"></use>
            </svg>
        </span>
        <span class="hidden">
            Mes Favoris        </span>
    </button>
        </div>
    </div>

            </div>
                                </div>
    </form>

                        </div>
                                            <div class="p-slider__item rounded-xs p-2.5 flex shrink-0 w-[calc(100%/1.5)] bg-white md:max-w-[25%] js_slide lg:max-w-none lg:w-[calc(100%/5-30px/5)]">
                            
    <form x-data="{}" x-i4-ajax-cart action="https://www.espaceplaisir.fr/checkout/cart/add/uenc/aHR0cHM6Ly93d3cuZXNwYWNlcGxhaXNpci5mci8~/product/32659/" method="post" data-id="32659" data-sku="84888" data-type="simple" class="product-item relative w-full flex flex-col group gap-2.5 lg:gap-6">
        <input name="form_key" type="hidden" value="FFysHhHxEz4qEEgW">        <input type="hidden" name="product" value="32659">

        
        <a class="product__link relative hover:text-black" href="https://www.espaceplaisir.fr/lovehoney-indulge-g-spot-and-clitoral-suction-stimulator.html">
            <img class="w-full object-contain text-transparent" x-ref="gallery" src="https://www.espaceplaisir.fr/media/catalog/product/2/1/21869-130790-thickbox.jpg?quality=80&amp;fit=bounds&amp;height=480&amp;width=480" loading="lazy" width="480" height="480" alt="Stimulateur point G et clitoris Indulge" title="Stimulateur point G et clitoris Indulge">
                    <div class="group/item special-label text-right flex justify-end items-start absolute right-3 top-3">
        <div class="whitespace-nowrap w-max px-1 py-2 label-block rounded-lg text-sm">
            - 15%
        </div>
    </div>

                                <div class="label-container absolute inset-0 grid grid-flow-col grid-cols-3 grid-rows-3">
        
            <div class="relative group/item" style="border:2px solid #1d3766; background-color:#1d3766;padding-left:4px;padding-right:4px;padding-top:2px; padding-bottom:2px;text-align:center;font-weight:bold; border-radius:4px; width:fit-content;height:fit-content; font-size: 14px; color: #ffffff;grid-area:1/1">
        <div class="whitespace-nowrap">
        Top vente    </div>
    
    
            </div>
        </div>
                    </a>
        <div class="relative text-center flex flex-col text-sm items-center h-full product-info-block product-info-block__container">
            <div class="text-sm text-center line-clamp-1 leading-6 mb-2 min-h-6 product-info-block">
                Lovehoney            </div>
            <p class="product__name text-sm font-bold mb-2 min-h-8 leading-5 font-Averta">
                <a class="product__link text-center line-clamp-2 font-bold product-info-block" href="https://www.espaceplaisir.fr/lovehoney-indulge-g-spot-and-clitoral-suction-stimulator.html">
                    Stimulateur point G et clitoris Indulge                </a>
            </p>
            <div class="review min-h-5 w-full flex flex-col items-center">
                
<div class="r-stars">
    <div class="r-stars__box">
        <i class="r-stars__empty"></i>
        <i class="r-stars__full" style="width:84%"></i>
    </div>
    <span class="text-sm leading-none">(1201)</span>
</div>
            </div>
            <div class="text-grey-dark">
                <div class="price-box price-final_price" data-role="priceBox" data-product-id="32659" data-price-box="product-id-32659">

<div class="special-price-container special-price-exist           simple-product">
    <span class="special-price">
        
<span class="price-container            price-final_price tax weee">
            <span class="price-label">
            Prix sp&eacute;cial        </span>
        <span id="product-price-32659" data-price-amount="59.42" data-price-type="finalPrice" class="price-wrapper">
        <span class="price">59,42&nbsp;&euro;</span>    </span>
                <meta content="59.42">
        <meta content="EUR">
    </span>
    </span>
    <span class="final-price-box">
        
<span class="price-container            price-final_price tax weee">
            <span class="price-label">
            Prix normal        </span>
        <span id="old-price-32659" data-price-amount="69.9" data-price-type="oldPrice" class="price-wrapper">
        <span class="price">69,90&nbsp;&euro;</span>    </span>
                <meta content="69.9">
        <meta content="EUR">
    </span>
    </span>
</div>

</div>            </div>
            <div class="w-full min-h-[2rem] lg:block mt-auto">
                                    <div class="mb-4 lg:mb-5 block">
                                            </div>
                                    <div class="product__actions flex gap-2">
                    <button x-ref="submit" class="btn btn-tertiary text-sm px-1 truncate w-full min-w-auto transition-all block" aria-label="Ajouter au panier Stimulateur point G et clitoris Indulge">
                <span class="text-addtocart hidden lg:block">
                    Ajouter au panier                </span>
                <span class="icons-addtocart flex gap-2 justify-center items-center lg:hidden">
                    <svg xmlns="http://www.w3.org/2000/svg" id="Calque_2" fill="currentColor" viewbox="0 0 18 18" width="17" height="17" aria-hidden="true"><g id="SYSTEM_2"><g id="Editor_2"><g id="icon_add_2"><path d="m13.19,10.49l-4.61-.19c-1.85-.08-3.7-.16-5.55-.24-.24,0-.48,0-.72,0-.49,0-.99,0-1.49-.08-.28-.05-.5-.31-.67-.52-.21-.25-.2-.64.04-.87.17-.16.4-.39.67-.41,3.34-.24,6.86-.46,10.75-.68l2.81.1h.2c.72,0,1.46,0,2.18.12.41.07.73.45.99.76.31.37.29.95-.06,1.28-.25.24-.58.57-.98.6-.09,0-.17.01-.26.02-.68.04-1.38.07-2.07.12h-.57c-.26,0-.46,0-.66,0Z"></path><path d="m10.49,4.81l-.19,4.61c-.08,1.85-.16,3.7-.24,5.55,0,.24,0,.48,0,.72,0,.49,0,.99-.08,1.49-.05.28-.31.5-.52.67-.25.21-.64.2-.87-.04-.16-.17-.39-.4-.41-.67-.24-3.34-.46-6.86-.68-10.75l.1-2.81v-.2c0-.72,0-1.46.12-2.18.07-.41.45-.73.76-.99.37-.31.95-.29,1.28.06.24.25.57.58.6.98,0,.09.01.17.02.26.04.68.07,1.38.12,2.07v.57c0,.26,0,.46,0,.66Z"></path></g></g></g></svg>
                    <svg xmlns="http://www.w3.org/2000/svg" id="Calque_2" fill="currentColor" viewbox="0 0 15 20" width="18" height="19" aria-hidden="true"><g id="BUSINESS_2"><g id="Finance_Payment_2"><g id="icon_cart_2"><path d="m4.48,3.1c.07-.93.58-1.82,1.36-2.39C6.61.14,7.64-.11,8.6.04c1.17.16,2.19.93,2.65,1.93.25.48.31,1.08.29,1.55l-.02,1.4v.73c0,.49,0,1-.04,1.5-.02.29-.13.5-.21.68-.1.21-.26.2-.36-.04-.07-.17-.16-.4-.17-.67-.02-.84-.05-1.7-.07-2.56-.01-.43-.03-.86-.04-1.3-.02-.38-.14-.75-.34-1.08-.41-.66-1.17-1.11-1.99-1.15-.82-.05-1.66.31-2.14.96-.25.3-.4.66-.46,1.03-.02.09-.02.19-.03.28v.35s-.02.71-.02.71v.2c0,.72,0,1.47-.05,2.2-.03.41-.18.74-.31,1-.15.31-.39.29-.52-.06-.1-.25-.23-.59-.25-.99,0-.09,0-.18,0-.26-.02-.69-.03-1.39-.05-2.09v-.57c0-.27-.01-.44.01-.7Z"></path><path d="m.23,17.58c.27-2,.51-4.02.74-6.04l.77-6.05.14-1.13c.05-.43.31-.7.7-.75.19-.02.43,0,.61,0h.34s1.35.01,1.35.01l2.71.02,5.61.04c.19,0,.33.05.46.13.15.11.2.24.26.4.05.18.05.36.08.54l.04.34.17,1.3.26,1.91c.17,1.29.36,2.62.49,3.92.08.75.03,1.33,0,1.81-.05.57-.24.55-.44-.06-.14-.43-.33-1.02-.43-1.72-.19-1.28-.38-2.58-.59-3.94-.1-.68-.2-1.38-.31-2.1-.05-.36-.11-.73-.16-1.1l-.05-.3c0-.08-.08-.08-.14-.07-1.52.02-3.18.04-4.94.07-.91.01-1.84.02-2.8.03-.48,0-.96.01-1.45.02-.23,0-.57,0-.52,0-.04,0-.07.02-.06.07-.13,1.2-.27,2.53-.43,3.94-.17,1.49-.33,3.08-.48,4.68l-.38,3.12-.21,1.56-.03.23v.02s0,.02.01.02h.02s.23,0,.23,0h.58s.51,0,.51,0c1.83,0,3.74,0,5.58.06,1.05.04,1.87.23,2.54.38.79.19.74.48-.15.65-.63.12-1.5.29-2.51.3-.22,0-.44,0-.65,0-1.75.02-3.54.04-5.32.06H.88c-.19,0-.35-.06-.47-.13-.09-.05-.19-.14-.27-.25-.07-.11-.09-.16-.12-.29-.05-.1,0-.26,0-.4.01-.14.04-.28.06-.42.05-.32.09-.62.13-.92Z"></path></g></g></g></svg>
                </span>
            </button>
                <div>
            
    <button x-data="initWishlist()" x-on:click.prevent="toggleWishlist" aria-label="Ajouter &agrave; la liste de souhaits" type="button" class="wishlist-btn text-black p-3 hover:bg-pink-dark rounded-btn" :class="isInWishlist() ? '!bg-pink-dark lg:!bg-pink-light' : 'bg-pink-light'" x-on:class="{ 'pointer-events-none': loading }">
        <span x-cloak x-show="!isInWishlist()">
            <svg class="size-6 text-optimo-darker" :class="{ '!hidden': loading }" aria-hidden="true">
                <use href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/i4-sprite.svg#ico-wishlist"></use>
            </svg>
        </span>
        <span x-cloak x-show="isInWishlist()">
            <svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewbox="0 0 24 24" class="size-6 text-optimo-darker" width="24" height="24" aria-hidden="true" :class="{ '!hidden': loading }"><path fill="#FF5C6E" d="M12.113 5.598c.03-.07.02-.06.09-.19.09-.18.19-.36.33-.54.5-.72 1.249-1.269 2.058-1.519.939-.29 1.688-.13 2.228.07.64.28.49.44-.19.43-.49.02-1.139.15-1.808.42-.44.18-.85.45-1.18.799-.16.18-.309.37-.429.59-.06.14-.11.17-.19.41-.06.25-.17.4-.2.739-.2 1.509-.49 1.429-.639 1.549-.14.06-.35.04-.42 0-.3-.11-.51-.66-.55-1.08-.04-.28-.11-.48-.159-.729-.05-.25-.12-.46-.22-.62-.1-.2-.23-.37-.35-.54-.27-.339-.609-.619-.979-.829-.749-.43-1.678-.51-2.567-.3C5.159 4.589 4 6.528 4.33 8.447c.2 1.968 1.409 3.797 2.757 5.516 1.39 1.709 2.978 3.348 4.636 4.977.37.37.2.2.24.25.04-.04-.12.12.25-.23.52-.49 1.01-1 1.509-1.5a49.169 49.169 0 0 0 2.827-3.137l.37-.47c1.269-1.689 2.478-3.598 2.697-5.556.12-1.1.02-1.979-.24-2.708-.16-.42-.23-.66-.11-.72.1-.05.41.07.78.53.52.62 1.08 1.789.93 3.168-.02.3-.06.59-.13.859-.5 2.278-1.809 4.147-3.118 5.856l-.04.06c-.35.45-.72.87-1.089 1.3-.53.589-.95 1.058-1.379 1.498-.41.43-.829.85-1.249 1.27l-.639.619-.34.33c-.21.18-.41.44-.63.55-.419.219-.928.04-1.298-.44l-.7-.71-1.228-1.28c-1.619-1.728-3.218-3.497-4.516-5.575-.77-1.24-1.41-2.639-1.569-4.167-.08-.74-.09-1.55.15-2.319.22-.77.63-1.479 1.189-2.058.55-.57 1.279-1 2.058-1.19a5.22 5.22 0 0 1 2.328-.07c.78.17 1.509.56 2.088 1.11.29.27.53.59.75.929.06.08.09.17.14.26l.05.1.05.14.04.1c.04.11.07.17.07.17s.06-.09.149-.32v.01Z"></path><path fill="#FF5C6E" stroke="#FF5C6E" d="M16 3.502c-2.4 0-3.667 3-4 4.5-.5-2.167-2.4-6-6-4-4.5 2.5-1.5 7.5 0 9.5 1.2 1.6 4.5 5.333 6 7 1.666-1.834 5.5-6.3 7.5-9.5 2.5-4-.5-7.5-3.5-7.5Z"></path></svg>
        </span>
        <span x-cloak x-show="loading">
            <svg class="animate-spin text-optimo-darker size-6" aria-hidden="true">
                <use href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/i4-sprite.svg#ico-loader"></use>
            </svg>
        </span>
        <span class="hidden">
            Mes Favoris        </span>
    </button>
        </div>
    </div>

            </div>
                                </div>
    </form>

                        </div>
                                            <div class="p-slider__item rounded-xs p-2.5 flex shrink-0 w-[calc(100%/1.5)] bg-white md:max-w-[25%] js_slide lg:max-w-none lg:w-[calc(100%/5-30px/5)]">
                            
    <form x-data="{}" x-i4-ajax-cart action="https://www.espaceplaisir.fr/checkout/cart/add/uenc/aHR0cHM6Ly93d3cuZXNwYWNlcGxhaXNpci5mci8~/product/32660/" method="post" data-id="32660" data-sku="84894" data-type="simple" class="product-item relative w-full flex flex-col group gap-2.5 lg:gap-6">
        <input name="form_key" type="hidden" value="rgh0Y4hMyX8wMkwL">        <input type="hidden" name="product" value="32660">

        
        <a class="product__link relative hover:text-black" href="https://www.espaceplaisir.fr/lovehoney-rose-clitoral-suction-stimulator.html">
            <img class="w-full object-contain text-transparent" x-ref="gallery" src="https://www.espaceplaisir.fr/media/catalog/product/2/1/21870-130796-thickbox.jpg?quality=80&amp;fit=bounds&amp;height=480&amp;width=480" loading="lazy" width="480" height="480" alt="Stimulateur clitoridien Rose rouge" title="Stimulateur clitoridien Rose rouge">
            
                                                </a>
        <div class="relative text-center flex flex-col text-sm items-center h-full product-info-block product-info-block__container">
            <div class="text-sm text-center line-clamp-1 leading-6 mb-2 min-h-6 product-info-block">
                Lovehoney            </div>
            <p class="product__name text-sm font-bold mb-2 min-h-8 leading-5 font-Averta">
                <a class="product__link text-center line-clamp-2 font-bold product-info-block" href="https://www.espaceplaisir.fr/lovehoney-rose-clitoral-suction-stimulator.html">
                    Stimulateur clitoridien Rose rouge                </a>
            </p>
            <div class="review min-h-5 w-full flex flex-col items-center">
                
<div class="r-stars">
    <div class="r-stars__box">
        <i class="r-stars__empty"></i>
        <i class="r-stars__full" style="width:80%"></i>
    </div>
    <span class="text-sm leading-none">(1674)</span>
</div>
            </div>
            <div class="text-grey-dark">
                <div class="price-box price-final_price" data-role="priceBox" data-product-id="32660" data-price-box="product-id-32660">

<div class="normal-final-price           simple-product">
    <span class="special-price">
        
<span class="price-container            price-final_price tax weee">
            <span class="price-label">
            Prix sp&eacute;cial        </span>
        <span id="product-price-32660" data-price-amount="49.9" data-price-type="finalPrice" class="price-wrapper">
        <span class="price">49,90&nbsp;&euro;</span>    </span>
                <meta content="49.9">
        <meta content="EUR">
    </span>
    </span>
    <span class="final-price-box">
        
<span class="price-container            price-final_price tax weee">
            <span class="price-label">
            Prix normal        </span>
        <span id="old-price-32660" data-price-amount="49.9" data-price-type="oldPrice" class="price-wrapper">
        <span class="price">49,90&nbsp;&euro;</span>    </span>
                <meta content="49.9">
        <meta content="EUR">
    </span>
    </span>
</div>

</div>            </div>
            <div class="w-full min-h-[2rem] lg:block mt-auto">
                                    <div class="mb-4 lg:mb-5 block">
                                            </div>
                                    <div class="product__actions flex gap-2">
                    <button x-ref="submit" class="btn btn-tertiary text-sm px-1 truncate w-full min-w-auto transition-all block" aria-label="Ajouter au panier Stimulateur clitoridien Rose rouge">
                <span class="text-addtocart hidden lg:block">
                    Ajouter au panier                </span>
                <span class="icons-addtocart flex gap-2 justify-center items-center lg:hidden">
                    <svg xmlns="http://www.w3.org/2000/svg" id="Calque_2" fill="currentColor" viewbox="0 0 18 18" width="17" height="17" aria-hidden="true"><g id="SYSTEM_8"><g id="Editor_8"><g id="icon_add_8"><path d="m13.19,10.49l-4.61-.19c-1.85-.08-3.7-.16-5.55-.24-.24,0-.48,0-.72,0-.49,0-.99,0-1.49-.08-.28-.05-.5-.31-.67-.52-.21-.25-.2-.64.04-.87.17-.16.4-.39.67-.41,3.34-.24,6.86-.46,10.75-.68l2.81.1h.2c.72,0,1.46,0,2.18.12.41.07.73.45.99.76.31.37.29.95-.06,1.28-.25.24-.58.57-.98.6-.09,0-.17.01-.26.02-.68.04-1.38.07-2.07.12h-.57c-.26,0-.46,0-.66,0Z"></path><path d="m10.49,4.81l-.19,4.61c-.08,1.85-.16,3.7-.24,5.55,0,.24,0,.48,0,.72,0,.49,0,.99-.08,1.49-.05.28-.31.5-.52.67-.25.21-.64.2-.87-.04-.16-.17-.39-.4-.41-.67-.24-3.34-.46-6.86-.68-10.75l.1-2.81v-.2c0-.72,0-1.46.12-2.18.07-.41.45-.73.76-.99.37-.31.95-.29,1.28.06.24.25.57.58.6.98,0,.09.01.17.02.26.04.68.07,1.38.12,2.07v.57c0,.26,0,.46,0,.66Z"></path></g></g></g></svg>
                    <svg xmlns="http://www.w3.org/2000/svg" id="Calque_2" fill="currentColor" viewbox="0 0 15 20" width="18" height="19" aria-hidden="true"><g id="BUSINESS_8"><g id="Finance_Payment_8"><g id="icon_cart_8"><path d="m4.48,3.1c.07-.93.58-1.82,1.36-2.39C6.61.14,7.64-.11,8.6.04c1.17.16,2.19.93,2.65,1.93.25.48.31,1.08.29,1.55l-.02,1.4v.73c0,.49,0,1-.04,1.5-.02.29-.13.5-.21.68-.1.21-.26.2-.36-.04-.07-.17-.16-.4-.17-.67-.02-.84-.05-1.7-.07-2.56-.01-.43-.03-.86-.04-1.3-.02-.38-.14-.75-.34-1.08-.41-.66-1.17-1.11-1.99-1.15-.82-.05-1.66.31-2.14.96-.25.3-.4.66-.46,1.03-.02.09-.02.19-.03.28v.35s-.02.71-.02.71v.2c0,.72,0,1.47-.05,2.2-.03.41-.18.74-.31,1-.15.31-.39.29-.52-.06-.1-.25-.23-.59-.25-.99,0-.09,0-.18,0-.26-.02-.69-.03-1.39-.05-2.09v-.57c0-.27-.01-.44.01-.7Z"></path><path d="m.23,17.58c.27-2,.51-4.02.74-6.04l.77-6.05.14-1.13c.05-.43.31-.7.7-.75.19-.02.43,0,.61,0h.34s1.35.01,1.35.01l2.71.02,5.61.04c.19,0,.33.05.46.13.15.11.2.24.26.4.05.18.05.36.08.54l.04.34.17,1.3.26,1.91c.17,1.29.36,2.62.49,3.92.08.75.03,1.33,0,1.81-.05.57-.24.55-.44-.06-.14-.43-.33-1.02-.43-1.72-.19-1.28-.38-2.58-.59-3.94-.1-.68-.2-1.38-.31-2.1-.05-.36-.11-.73-.16-1.1l-.05-.3c0-.08-.08-.08-.14-.07-1.52.02-3.18.04-4.94.07-.91.01-1.84.02-2.8.03-.48,0-.96.01-1.45.02-.23,0-.57,0-.52,0-.04,0-.07.02-.06.07-.13,1.2-.27,2.53-.43,3.94-.17,1.49-.33,3.08-.48,4.68l-.38,3.12-.21,1.56-.03.23v.02s0,.02.01.02h.02s.23,0,.23,0h.58s.51,0,.51,0c1.83,0,3.74,0,5.58.06,1.05.04,1.87.23,2.54.38.79.19.74.48-.15.65-.63.12-1.5.29-2.51.3-.22,0-.44,0-.65,0-1.75.02-3.54.04-5.32.06H.88c-.19,0-.35-.06-.47-.13-.09-.05-.19-.14-.27-.25-.07-.11-.09-.16-.12-.29-.05-.1,0-.26,0-.4.01-.14.04-.28.06-.42.05-.32.09-.62.13-.92Z"></path></g></g></g></svg>
                </span>
            </button>
                <div>
            
    <button x-data="initWishlist()" x-on:click.prevent="toggleWishlist" aria-label="Ajouter &agrave; la liste de souhaits" type="button" class="wishlist-btn text-black p-3 hover:bg-pink-dark rounded-btn" :class="isInWishlist() ? '!bg-pink-dark lg:!bg-pink-light' : 'bg-pink-light'" x-on:class="{ 'pointer-events-none': loading }">
        <span x-cloak x-show="!isInWishlist()">
            <svg class="size-6 text-optimo-darker" :class="{ '!hidden': loading }" aria-hidden="true">
                <use href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/i4-sprite.svg#ico-wishlist"></use>
            </svg>
        </span>
        <span x-cloak x-show="isInWishlist()">
            <svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewbox="0 0 24 24" class="size-6 text-optimo-darker" width="24" height="24" aria-hidden="true" :class="{ '!hidden': loading }"><path fill="#FF5C6E" d="M12.113 5.598c.03-.07.02-.06.09-.19.09-.18.19-.36.33-.54.5-.72 1.249-1.269 2.058-1.519.939-.29 1.688-.13 2.228.07.64.28.49.44-.19.43-.49.02-1.139.15-1.808.42-.44.18-.85.45-1.18.799-.16.18-.309.37-.429.59-.06.14-.11.17-.19.41-.06.25-.17.4-.2.739-.2 1.509-.49 1.429-.639 1.549-.14.06-.35.04-.42 0-.3-.11-.51-.66-.55-1.08-.04-.28-.11-.48-.159-.729-.05-.25-.12-.46-.22-.62-.1-.2-.23-.37-.35-.54-.27-.339-.609-.619-.979-.829-.749-.43-1.678-.51-2.567-.3C5.159 4.589 4 6.528 4.33 8.447c.2 1.968 1.409 3.797 2.757 5.516 1.39 1.709 2.978 3.348 4.636 4.977.37.37.2.2.24.25.04-.04-.12.12.25-.23.52-.49 1.01-1 1.509-1.5a49.169 49.169 0 0 0 2.827-3.137l.37-.47c1.269-1.689 2.478-3.598 2.697-5.556.12-1.1.02-1.979-.24-2.708-.16-.42-.23-.66-.11-.72.1-.05.41.07.78.53.52.62 1.08 1.789.93 3.168-.02.3-.06.59-.13.859-.5 2.278-1.809 4.147-3.118 5.856l-.04.06c-.35.45-.72.87-1.089 1.3-.53.589-.95 1.058-1.379 1.498-.41.43-.829.85-1.249 1.27l-.639.619-.34.33c-.21.18-.41.44-.63.55-.419.219-.928.04-1.298-.44l-.7-.71-1.228-1.28c-1.619-1.728-3.218-3.497-4.516-5.575-.77-1.24-1.41-2.639-1.569-4.167-.08-.74-.09-1.55.15-2.319.22-.77.63-1.479 1.189-2.058.55-.57 1.279-1 2.058-1.19a5.22 5.22 0 0 1 2.328-.07c.78.17 1.509.56 2.088 1.11.29.27.53.59.75.929.06.08.09.17.14.26l.05.1.05.14.04.1c.04.11.07.17.07.17s.06-.09.149-.32v.01Z"></path><path fill="#FF5C6E" stroke="#FF5C6E" d="M16 3.502c-2.4 0-3.667 3-4 4.5-.5-2.167-2.4-6-6-4-4.5 2.5-1.5 7.5 0 9.5 1.2 1.6 4.5 5.333 6 7 1.666-1.834 5.5-6.3 7.5-9.5 2.5-4-.5-7.5-3.5-7.5Z"></path></svg>
        </span>
        <span x-cloak x-show="loading">
            <svg class="animate-spin text-optimo-darker size-6" aria-hidden="true">
                <use href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/i4-sprite.svg#ico-loader"></use>
            </svg>
        </span>
        <span class="hidden">
            Mes Favoris        </span>
    </button>
        </div>
    </div>

            </div>
                                </div>
    </form>

                        </div>
                                            <div class="p-slider__item rounded-xs p-2.5 flex shrink-0 w-[calc(100%/1.5)] bg-white md:max-w-[25%] js_slide lg:max-w-none lg:w-[calc(100%/5-30px/5)]">
                            
    <form x-data="{}" x-i4-ajax-cart action="https://www.espaceplaisir.fr/checkout/cart/add/uenc/aHR0cHM6Ly93d3cuZXNwYWNlcGxhaXNpci5mci8_cmVmPUVFQzAzMDg0XzE3NjA1QTY0LTIzQkQtNEY4Ni04RTUyLUM0ODI0NTY1QjFBMCZrd2t1bml2PVA0QUQ0QjU2MDAwRjEwMC1jY3A0YWQ0YjU2MDAwZjFiMQ~~/product/47695/" method="post" data-id="47695" data-sku="6972677430456" data-type="simple" class="product-item relative w-full flex flex-col group gap-2.5 lg:gap-6">
        <input name="form_key" type="hidden" value="M1LcNDp71p7UNjkK">        <input type="hidden" name="product" value="47695">

        
        <a class="product__link relative hover:text-black" href="https://www.espaceplaisir.fr/lovense-lush-4.html">
            <img class="w-full object-contain text-transparent" x-ref="gallery" src="https://www.espaceplaisir.fr/media/catalog/product/8/7/87626_a49593_pink_000.jpg?quality=80&amp;fit=bounds&amp;height=480&amp;width=480" loading="lazy" width="480" height="480" alt="Lovense Lush 4 oeuf vibrant connect&eacute;" title="Lovense Lush 4 oeuf vibrant connect&eacute;">
                    <div class="group/item special-label text-right flex justify-end items-start absolute right-3 top-3">
        <div class="whitespace-nowrap w-max px-1 py-2 label-block rounded-lg text-sm">
            - 7%
        </div>
    </div>

                                <div class="label-container absolute inset-0 grid grid-flow-col grid-cols-3 grid-rows-3">
        
            <div class="relative group/item" style="border:2px solid #1d3766; background-color:#1d3766;padding-left:4px;padding-right:4px;padding-top:2px; padding-bottom:2px;text-align:center;font-weight:bold; border-radius:4px; width:fit-content;height:fit-content; font-size: 14px; color: #ffffff;grid-area:1/1">
        <div class="whitespace-nowrap">
        Top vente    </div>
    
    
            </div>
        </div>
                    </a>
        <div class="relative text-center flex flex-col text-sm items-center h-full product-info-block product-info-block__container">
            <div class="text-sm text-center line-clamp-1 leading-6 mb-2 min-h-6 product-info-block">
                Lovense            </div>
            <p class="product__name text-sm font-bold mb-2 min-h-8 leading-5 font-Averta">
                <a class="product__link text-center line-clamp-2 font-bold product-info-block" href="https://www.espaceplaisir.fr/lovense-lush-4.html">
                    Lovense Lush 4 oeuf vibrant connect&eacute;                </a>
            </p>
            <div class="review min-h-5 w-full flex flex-col items-center">
                
<div class="r-stars">
    <div class="r-stars__box">
        <i class="r-stars__empty"></i>
        <i class="r-stars__full" style="width:88%"></i>
    </div>
    <span class="text-sm leading-none">(1185)</span>
</div>
            </div>
            <div class="text-grey-dark">
                <div class="price-box price-final_price" data-role="priceBox" data-product-id="47695" data-price-box="product-id-47695">

<div class="special-price-container special-price-exist           simple-product">
    <span class="special-price">
        
<span class="price-container            price-final_price tax weee">
            <span class="price-label">
            Prix sp&eacute;cial        </span>
        <span id="product-price-47695" data-price-amount="129" data-price-type="finalPrice" class="price-wrapper">
        <span class="price">129,00&nbsp;&euro;</span>    </span>
                <meta content="129">
        <meta content="EUR">
    </span>
    </span>
    <span class="final-price-box">
        
<span class="price-container            price-final_price tax weee">
            <span class="price-label">
            Prix normal        </span>
        <span id="old-price-47695" data-price-amount="139" data-price-type="oldPrice" class="price-wrapper">
        <span class="price">139,00&nbsp;&euro;</span>    </span>
                <meta content="139">
        <meta content="EUR">
    </span>
    </span>
</div>

</div>            </div>
            <div class="w-full min-h-[2rem] lg:block mt-auto">
                                    <div class="mb-4 lg:mb-5 block">
                                            </div>
                                    <div class="product__actions flex gap-2">
                    <button x-ref="submit" class="btn btn-tertiary text-sm px-1 truncate w-full min-w-auto transition-all block" aria-label="Ajouter au panier Lovense Lush 4 oeuf vibrant connect&eacute;">
                <span class="text-addtocart hidden lg:block">
                    Ajouter au panier                </span>
                <span class="icons-addtocart flex gap-2 justify-center items-center lg:hidden">
                    <svg xmlns="http://www.w3.org/2000/svg" id="Calque_2" fill="currentColor" viewbox="0 0 18 18" width="17" height="17" aria-hidden="true"><g id="SYSTEM_2"><g id="Editor_2"><g id="icon_add_2"><path d="m13.19,10.49l-4.61-.19c-1.85-.08-3.7-.16-5.55-.24-.24,0-.48,0-.72,0-.49,0-.99,0-1.49-.08-.28-.05-.5-.31-.67-.52-.21-.25-.2-.64.04-.87.17-.16.4-.39.67-.41,3.34-.24,6.86-.46,10.75-.68l2.81.1h.2c.72,0,1.46,0,2.18.12.41.07.73.45.99.76.31.37.29.95-.06,1.28-.25.24-.58.57-.98.6-.09,0-.17.01-.26.02-.68.04-1.38.07-2.07.12h-.57c-.26,0-.46,0-.66,0Z"></path><path d="m10.49,4.81l-.19,4.61c-.08,1.85-.16,3.7-.24,5.55,0,.24,0,.48,0,.72,0,.49,0,.99-.08,1.49-.05.28-.31.5-.52.67-.25.21-.64.2-.87-.04-.16-.17-.39-.4-.41-.67-.24-3.34-.46-6.86-.68-10.75l.1-2.81v-.2c0-.72,0-1.46.12-2.18.07-.41.45-.73.76-.99.37-.31.95-.29,1.28.06.24.25.57.58.6.98,0,.09.01.17.02.26.04.68.07,1.38.12,2.07v.57c0,.26,0,.46,0,.66Z"></path></g></g></g></svg>
                    <svg xmlns="http://www.w3.org/2000/svg" id="Calque_2" fill="currentColor" viewbox="0 0 15 20" width="18" height="19" aria-hidden="true"><g id="BUSINESS_2"><g id="Finance_Payment_2"><g id="icon_cart_2"><path d="m4.48,3.1c.07-.93.58-1.82,1.36-2.39C6.61.14,7.64-.11,8.6.04c1.17.16,2.19.93,2.65,1.93.25.48.31,1.08.29,1.55l-.02,1.4v.73c0,.49,0,1-.04,1.5-.02.29-.13.5-.21.68-.1.21-.26.2-.36-.04-.07-.17-.16-.4-.17-.67-.02-.84-.05-1.7-.07-2.56-.01-.43-.03-.86-.04-1.3-.02-.38-.14-.75-.34-1.08-.41-.66-1.17-1.11-1.99-1.15-.82-.05-1.66.31-2.14.96-.25.3-.4.66-.46,1.03-.02.09-.02.19-.03.28v.35s-.02.71-.02.71v.2c0,.72,0,1.47-.05,2.2-.03.41-.18.74-.31,1-.15.31-.39.29-.52-.06-.1-.25-.23-.59-.25-.99,0-.09,0-.18,0-.26-.02-.69-.03-1.39-.05-2.09v-.57c0-.27-.01-.44.01-.7Z"></path><path d="m.23,17.58c.27-2,.51-4.02.74-6.04l.77-6.05.14-1.13c.05-.43.31-.7.7-.75.19-.02.43,0,.61,0h.34s1.35.01,1.35.01l2.71.02,5.61.04c.19,0,.33.05.46.13.15.11.2.24.26.4.05.18.05.36.08.54l.04.34.17,1.3.26,1.91c.17,1.29.36,2.62.49,3.92.08.75.03,1.33,0,1.81-.05.57-.24.55-.44-.06-.14-.43-.33-1.02-.43-1.72-.19-1.28-.38-2.58-.59-3.94-.1-.68-.2-1.38-.31-2.1-.05-.36-.11-.73-.16-1.1l-.05-.3c0-.08-.08-.08-.14-.07-1.52.02-3.18.04-4.94.07-.91.01-1.84.02-2.8.03-.48,0-.96.01-1.45.02-.23,0-.57,0-.52,0-.04,0-.07.02-.06.07-.13,1.2-.27,2.53-.43,3.94-.17,1.49-.33,3.08-.48,4.68l-.38,3.12-.21,1.56-.03.23v.02s0,.02.01.02h.02s.23,0,.23,0h.58s.51,0,.51,0c1.83,0,3.74,0,5.58.06,1.05.04,1.87.23,2.54.38.79.19.74.48-.15.65-.63.12-1.5.29-2.51.3-.22,0-.44,0-.65,0-1.75.02-3.54.04-5.32.06H.88c-.19,0-.35-.06-.47-.13-.09-.05-.19-.14-.27-.25-.07-.11-.09-.16-.12-.29-.05-.1,0-.26,0-.4.01-.14.04-.28.06-.42.05-.32.09-.62.13-.92Z"></path></g></g></g></svg>
                </span>
            </button>
                <div>
            
    <button x-data="initWishlist()" x-on:click.prevent="toggleWishlist" aria-label="Ajouter &agrave; la liste de souhaits" type="button" class="wishlist-btn text-black p-3 hover:bg-pink-dark rounded-btn" :class="isInWishlist() ? '!bg-pink-dark lg:!bg-pink-light' : 'bg-pink-light'" x-on:class="{ 'pointer-events-none': loading }">
        <span x-cloak x-show="!isInWishlist()">
            <svg class="size-6 text-optimo-darker" :class="{ '!hidden': loading }" aria-hidden="true">
                <use href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/i4-sprite.svg#ico-wishlist"></use>
            </svg>
        </span>
        <span x-cloak x-show="isInWishlist()">
            <svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewbox="0 0 24 24" class="size-6 text-optimo-darker" width="24" height="24" aria-hidden="true" :class="{ '!hidden': loading }"><path fill="#FF5C6E" d="M12.113 5.598c.03-.07.02-.06.09-.19.09-.18.19-.36.33-.54.5-.72 1.249-1.269 2.058-1.519.939-.29 1.688-.13 2.228.07.64.28.49.44-.19.43-.49.02-1.139.15-1.808.42-.44.18-.85.45-1.18.799-.16.18-.309.37-.429.59-.06.14-.11.17-.19.41-.06.25-.17.4-.2.739-.2 1.509-.49 1.429-.639 1.549-.14.06-.35.04-.42 0-.3-.11-.51-.66-.55-1.08-.04-.28-.11-.48-.159-.729-.05-.25-.12-.46-.22-.62-.1-.2-.23-.37-.35-.54-.27-.339-.609-.619-.979-.829-.749-.43-1.678-.51-2.567-.3C5.159 4.589 4 6.528 4.33 8.447c.2 1.968 1.409 3.797 2.757 5.516 1.39 1.709 2.978 3.348 4.636 4.977.37.37.2.2.24.25.04-.04-.12.12.25-.23.52-.49 1.01-1 1.509-1.5a49.169 49.169 0 0 0 2.827-3.137l.37-.47c1.269-1.689 2.478-3.598 2.697-5.556.12-1.1.02-1.979-.24-2.708-.16-.42-.23-.66-.11-.72.1-.05.41.07.78.53.52.62 1.08 1.789.93 3.168-.02.3-.06.59-.13.859-.5 2.278-1.809 4.147-3.118 5.856l-.04.06c-.35.45-.72.87-1.089 1.3-.53.589-.95 1.058-1.379 1.498-.41.43-.829.85-1.249 1.27l-.639.619-.34.33c-.21.18-.41.44-.63.55-.419.219-.928.04-1.298-.44l-.7-.71-1.228-1.28c-1.619-1.728-3.218-3.497-4.516-5.575-.77-1.24-1.41-2.639-1.569-4.167-.08-.74-.09-1.55.15-2.319.22-.77.63-1.479 1.189-2.058.55-.57 1.279-1 2.058-1.19a5.22 5.22 0 0 1 2.328-.07c.78.17 1.509.56 2.088 1.11.29.27.53.59.75.929.06.08.09.17.14.26l.05.1.05.14.04.1c.04.11.07.17.07.17s.06-.09.149-.32v.01Z"></path><path fill="#FF5C6E" stroke="#FF5C6E" d="M16 3.502c-2.4 0-3.667 3-4 4.5-.5-2.167-2.4-6-6-4-4.5 2.5-1.5 7.5 0 9.5 1.2 1.6 4.5 5.333 6 7 1.666-1.834 5.5-6.3 7.5-9.5 2.5-4-.5-7.5-3.5-7.5Z"></path></svg>
        </span>
        <span x-cloak x-show="loading">
            <svg class="animate-spin text-optimo-darker size-6" aria-hidden="true">
                <use href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/i4-sprite.svg#ico-loader"></use>
            </svg>
        </span>
        <span class="hidden">
            Mes Favoris        </span>
    </button>
        </div>
    </div>

            </div>
                                </div>
    </form>

                        </div>
                                            <div class="p-slider__item rounded-xs p-2.5 flex shrink-0 w-[calc(100%/1.5)] bg-white md:max-w-[25%] js_slide lg:max-w-none lg:w-[calc(100%/5-30px/5)]">
                            
    <form x-data="initPriceBox()" @update-prices-33537="updatePrice($event.detail);" @update-gallery-33537="$refs.gallery &amp;&amp; ($refs.gallery.src = $event.detail)" x-i4-ajax-cart action="https://www.espaceplaisir.fr/checkout/cart/add/uenc/aHR0cHM6Ly93d3cuZXNwYWNlcGxhaXNpci5mci8~/product/33537/" method="post" data-id="33537" data-sku="CONF-22444" data-type="configurable" class="product-item relative w-full flex flex-col group gap-2.5 lg:gap-6">
        <input name="form_key" type="hidden" value="F7WWtly5wOQcKdnb">        <input type="hidden" name="product" value="33537">

        
        <a class="product__link relative hover:text-black" href="https://www.espaceplaisir.fr/we-vibe-sync-lite.html">
            <img class="w-full object-contain text-transparent" x-ref="gallery" src="https://www.espaceplaisir.fr/media/catalog/product/8/5/85853_a48105_pink_000_1.jpg?quality=80&amp;fit=bounds&amp;height=480&amp;width=480" loading="lazy" width="480" height="480" alt="" title="">
            
                                <div class="label-container absolute inset-0 grid grid-flow-col grid-cols-3 grid-rows-3">
        
            <div class="relative group/item" style="width:72px; height:72px; margin: 0 0 0 -8px; font-size: 14px; color: #000000;grid-area:3/3">
        <div class="whitespace-nowrap absolute left-1/2 top-1/2 -translate-y-1/2 -translate-x-1/2">
            </div>
            <img class="w-full h-full" src="https://www.espaceplaisir.fr/media/amasty/amlabel/0526_macaron_bundlePLP_V3_1.png" loading="lazy" title="Womanizer Mini Offert Macaron " alt="Womanizer Mini Offert Macaron ">
    
    
            </div>
        </div>
                    </a>
        <div class="relative text-center flex flex-col text-sm items-center h-full product-info-block product-info-block__container">
            <div class="text-sm text-center line-clamp-1 leading-6 mb-2 min-h-6 product-info-block">
                We-Vibe            </div>
            <p class="product__name text-sm font-bold mb-2 min-h-8 leading-5 font-Averta">
                <a class="product__link text-center line-clamp-2 font-bold product-info-block" href="https://www.espaceplaisir.fr/we-vibe-sync-lite.html">
                    Stimulateur pour couple We-Vibe Sync Lite                </a>
            </p>
            <div class="review min-h-5 w-full flex flex-col items-center">
                
<div class="r-stars">
    <div class="r-stars__box">
        <i class="r-stars__empty"></i>
        <i class="r-stars__full" style="width:78%"></i>
    </div>
    <span class="text-sm leading-none">(124)</span>
</div>
            </div>
            <div class="text-grey-dark">
                <div class="price-box price-final_price" data-role="priceBox" data-product-id="33539" data-price-box="product-id-33539">

<div class="special-price-container special-price-exist           simple-product">
    <span class="special-price">
        
<span class="price-container            price-final_price tax weee">
            <span class="price-label">
            Prix sp&eacute;cial        </span>
        <span id="product-price-33539" data-price-amount="75.65" data-price-type="finalPrice" class="price-wrapper">
        <span class="price">75,65&nbsp;&euro;</span>    </span>
                <meta content="75.65">
        <meta content="EUR">
    </span>
    </span>
    <span class="final-price-box">
        
<span class="price-container            price-final_price tax weee">
            <span class="price-label">
            Prix normal        </span>
        <span id="old-price-33539" data-price-amount="89" data-price-type="oldPrice" class="price-wrapper">
        <span class="price">89,00&nbsp;&euro;</span>    </span>
                <meta content="89">
        <meta content="EUR">
    </span>
    </span>
</div>

</div>            </div>
            <div class="w-full min-h-[2rem] lg:block mt-auto">
                                    <div class="mb-4 lg:mb-5 block">
                            <script>
        function initConfigurableSwatchOptions_33537() {
            return {
                ...initConfigurableOptions('33537', {"attributes":{"275":{"id":"275","code":"couleur","label":"Couleur","options":[{"id":"45","label":"Bleu","products":[]},{"id":"70","label":"Rose","products":["33539"]}],"position":"0"}},"template":"<%- data.price %>\u00a0\u20ac","currencyFormat":"%s\u00a0\u20ac","optionPrices":{"33539":{"baseOldPrice":{"amount":74.166665666667},"oldPrice":{"amount":89},"basePrice":{"amount":63.041665666667},"finalPrice":{"amount":75.65},"tierPrices":[],"msrpPrice":{"amount":0}}},"priceFormat":{"pattern":"%s\u00a0\u20ac","precision":2,"requiredPrecision":2,"decimalSymbol":",","groupSymbol":"\u202f","groupLength":3,"integerRequired":false},"prices":{"baseOldPrice":{"amount":74.166665666667},"oldPrice":{"amount":89},"basePrice":{"amount":63.041665666667},"finalPrice":{"amount":75.65}},"productId":"33537","chooseText":"Choisissez une option...","images":[],"index":{"33539":{"275":"70"}},"salable":[],"canDisplayShowOutOfStockStatus":false,"preSelectedGallery":[],"channel":"website","salesChannelCode":"espace_plaisir_fo","sku":{"33539":"SNSY4SG3"},"label_reload":"https:\/\/www.espaceplaisir.fr\/amasty_label\/ajax\/label\/","label_category":".product-image-container, .product-item-photo, .cdz-product-top","label_product":".fotorama__stage, #amasty-main-container","original_product_id":"33537","defaultValues":{"275":"70"}}),
                ...initSwatchOptions({"275":{"70":{"type":2,"value":"https:\/\/www.espaceplaisir.fr\/media\/catalog\/product\/8\/5\/85853_a48105_pink_000_1.jpg?quality=80&fit=bounds&height=100&width=100","thumb":"https:\/\/www.espaceplaisir.fr\/media\/catalog\/product\/8\/5\/85853_a48105_pink_000_1.jpg?quality=80&fit=bounds&height=90&width=110","label":"Rose"},"additional_data":"{\"swatch_input_type\":\"visual\",\"update_product_preview_image\":\"1\",\"use_product_image_for_swatch\":\"1\"}"}}),
                mediaCallback: "https\u003A\u002F\u002Fwww.espaceplaisir.fr\u002Fswatches\u002Fajax\u002Fmedia\u002F",
                changeOption(optionId, value, skipUpdateGallery) {
                    this.selectedValues[optionId] = value;
                    this.findSimpleIndex();
                    this.findAllowedAttributeOptions();
                    this.updatePrices();
                    !skipUpdateGallery && this.updateGallery();

                    const detail = {
                        productId: this.productId,
                        optionId: optionId,
                        value: value,
                        productIndex: this.productIndex,
                        selectedValues: this.selectedValues,
                        candidates: this.findProductIdsForPartialSelection(this.selectedValues),
                        variationSku: this.optionConfig.sku[this.productIndex]
                    };

                    this.$root.dispatchEvent(new CustomEvent('configurable-selection-changed', { detail, bubbles: true }));
                    this.$root.dispatchEvent(new CustomEvent(`configurable-selection-changed-${this.productId}`, { detail, bubbles: true }));
                },
                updateGallery() {
                    if (!this.productIndex) {
                        return;
                    }

                    fetch(`${this.mediaCallback}?product_id=${this.productIndex}&isAjax=true`, {
                            method: 'GET',
                            headers: {
                                'Content-Type': 'application/json',
                                'X-Requested-With': 'XMLHttpRequest'
                            }
                        }
                    ).then(response => {
                            return response.json()
                        }
                    ).then(data => {
                        if (data.errors) {
                            // non critical failure only console logged
                            console.warn(data.errors);
                        } else {
                            const image = data && data.medium;

                            image && this.$root.dispatchEvent(
                                new CustomEvent(
                                    "update-gallery-33537",
                                    {detail: image, bubbles: true}
                                )
                            );
                        }
                    }).catch(error => {
                        console.warn(error)
                    });
                },
                preselectQuerystringItems() {
                    // pre-select option like ?size=167
                    const urlQueryParams = new URLSearchParams(window.location.search.replace('?', ''));
                    Object.values(this.optionConfig.attributes).map(attribute => {
                        // Don't update images on load, since PLPs already set the main image to the selected options
                        const skipUpdateGallery = true;
                        urlQueryParams.get(attribute.code) &&
                        this.changeOption(attribute.id, urlQueryParams.get(attribute.code), skipUpdateGallery);
                    });
                }
            };
        }

    </script>

    <div x-data="initConfigurableSwatchOptions_33537()" x-init="findAllowedAttributeOptions();" x-intersect="showSwatches = true" @private-content-loaded.window="onGetCartData($event.detail.data)" class="relative">
        <div>
                            
                                <div class="swatch-attribute-options swatch-attribute mb-1  couleur">
                    <template x-if="showSwatches">
                        <div class="flex flex-wrap justify-center gap-1" role="radiogroup" x-data="{countOfOptions: Object.keys(optionConfig.attributes[275].options).length}">
                            <label class="sr-only" for="attributecouleur">
                                Couleur                            </label>
                            <template x-for="(item, index) in optionConfig.attributes[275].options" :key="item.id">
                                
<div :class="{    'opacity-0 absolute size-0 -z-1' : index &gt;= numberToShow,    'opacity-40 out-of-stock-swatch' : checkStatusOfItem(275, item.id)}">
    <template x-if="optionIsEnabled(275, item.id) &amp;&amp; optionIsActive(275, item.id)">
        <label @click="swatchImgListener(275, item.id)" :for="'attribute-option-33537-'+item.id" class="swatch-option flex justify-center relative border-2 border-transparent mb-0 font-normal" :data-sku="optionConfig.sku[productIndex]" :class="{                'size-8 rounded-btn border' : !isTextSwatch(275, item.id),                [getTypeSwatches(275, item.id)]: true,                '!border-pink text-pink selected active': selectedValues[275] === item.id &amp;&amp; !isTextSwatch(275, item.id),                'hover:border-optimo-darker': !isTextSwatch(275, item.id)            }" :style="getSwatchBackgroundStyle('275',item.id)" @mouseenter.self="activeTooltipItem = {                    attribute: '275',                    item: item.id                }; tooltipPositionElement = $event.target;" @mouseleave.self="activeTooltipItem = false;">
            <input :id="'attribute-option-33537-'+item.id" :value="item.id" name="super_attribute[275]" type="radio" class="-z-1 absolute opacity-0 h-0" @change="changeOption(275, $event.target.value)" x-model="selectedValues[275]" :required="getAllowedAttributeOptions(275)                .filter(option =&gt; selectedValues[option]).length === 0" :aria-label="getSwatchText(275, item.id)" aria-describedby="attribute-label-33537-275">
            <div x-html="getSwatchText(275, item.id)" class="swatch-option__text flex items-center justify-center min-w-10 h-5 border border-grey                        rounded py-0 px-2 whitespace-nowrap text-black hover:border-optimo-darker" :class="{                 'sr-only' : !isTextSwatch(275, item.id),                 'border-optimo border-1 selected text-pink': updateConfigurableOptions(selectedValues[275] === item.id)                 }"></div>
        </label>
    </template>

    <template x-if="optionIsEnabled(275, item.id) &amp;&amp; !optionIsActive(275, item.id)">
        <div class="swatch-option relative swatch-option border-2 border-transparent" :class="{                'size-4 rounded-btn': !isTextSwatch(275, item.id),                [getTypeSwatches(275, item.id)]: true,                'hidden': index &gt;= numberToShow,                'opacity-50 select-none border-container-darker': !isTextSwatch(275, item.id)            }" :style="getSwatchBackgroundStyle('275',item.id)">
            <div x-html="getSwatchText(275, item.id)" class="swatch-option__text whitespace-nowrap" :class="{                    'sr-only' : !isTextSwatch(275, item.id),                    'swatch-option__text flex items-center justify-center border rounded min-w-10 h-5 text-sm border-grey-light line-through' : isTextSwatch(275, item.id)                 }"></div>
            <svg class="absolute inset-0 w-full h-full text-grey-light bg-white bg-opacity-25">
                <line x1="0" y1="100%" x2="100%" y2="0" class="stroke-current stroke-1"></line>
            </svg>
        </div>
    </template>
</div>
                            </template>
                            <template x-if="numberToShow &lt; countOfOptions">
                                <a href="https://www.espaceplaisir.fr/we-vibe-sync-lite.html" title="Plus" class="flex items-center w-6 h-6 rounded-full bg-grey-lighter">
                                    <svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewbox="0 0 24 24" class="size-4 ml-2 bg-1 rounded-big" width="16" height="16" aria-hidden="true"><path d="m16.1836 12.9933-4.608-.1266-5.5476-.16h-.7197c-.4898 0-.9896 0-1.4894-.0534-.2799-.0333-.4998-.2066-.6697-.3466-.2099-.1667-.2-.4267.04-.58.17-.1067.3998-.26.6697-.2734 3.3386-.16 6.8571-.3066 10.7454-.4533l2.8088.0667h.1999c.7197 0 1.4594 0 2.1791.08.4098.0466.7297.3.9896.5066.3099.2467.2899.6334-.06.8534-.2499.16-.5797.38-.9796.4-.0899 0-.1699.0066-.2599.0133-.6797.0267-1.3794.0467-2.0691.08h-1.2295v-.0067Z"></path><path d="m12.9933 7.8163-.1266 4.6081-.16 5.5476v.7197c0 .4898 0 .9896-.0534 1.4894-.0333.2799-.2066.4998-.3466.6697-.1667.2099-.4267.1999-.58-.04-.1067-.1699-.26-.3998-.2734-.6697-.16-3.3386-.3066-6.8571-.4533-10.7454l.0667-2.8088v-.2c0-.7196 0-1.4593.08-2.179.0466-.4098.3-.7297.5066-.9896.2467-.3098.6334-.2899.8534.06.16.2499.38.5797.4.9796 0 .09.0066.1699.0133.2599.0267.6797.0467 1.3794.08 2.069V7.8164h-.0067Z"></path></svg>
                                </a>
                            </template>
                        </div>
                    </template>
                </div>
                    </div>
                    <template x-if="isTooltipVisible()">
    <div @resize.window="activeTooltipItem = false">
        <div class="absolute shadow-box2" :style="getTooltipPosition()">
            <div x-ref="content" class="absolute top-0 left-0 z-10 min-w-20 p-2 -mt-6 text-sm leading-tight text-black                    transform -translate-x-1/3 -translate-y-full bg-white border border-grey-light text-center">
                <template x-if="isVisualSwatch(activeTooltipItem.attribute, activeTooltipItem.item)">
                    <div class="inline-block" :style="getTooltipImageStyle(activeTooltipItem.attribute, activeTooltipItem.item)"></div>
                </template>
                <span class="mx-2 text-lg font-semibold whitespace-nowrap" x-html="getTooltipLabel()"></span>
            </div>
        </div>
        <div class="absolute flex pointer-events-none" :style="getTooltipArrowPosition()">
            <svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" viewbox="0 0 256 256" width="16" height="16" aria-hidden="true">
  <path fill="#999" d="M254.307 69.55a9.806 9.806 0 0 0-2.88-6.956c-3.84-3.84-10.069-3.84-13.907 0l-109.663 109.66-109.66-109.66c-3.842-3.84-10.069-3.84-13.91 0-3.839 3.842-3.839 10.069 0 13.91l116.615 116.615c3.838 3.841 10.068 3.841 13.907 0L251.424 76.504a9.797 9.797 0 0 0 2.883-6.955z"></path>
</svg>
        </div>
    </div>
</template>
            </div>
                    </div>
                                    <div class="product__actions flex gap-2">
                    <button x-ref="submit" class="btn btn-tertiary text-sm px-1 truncate w-full min-w-auto transition-all block" aria-label="Ajouter au panier Stimulateur pour couple We-Vibe Sync Lite">
                <span class="text-addtocart hidden lg:block">
                    Ajouter au panier                </span>
                <span class="icons-addtocart flex gap-2 justify-center items-center lg:hidden">
                    <svg xmlns="http://www.w3.org/2000/svg" id="Calque_2" fill="currentColor" viewbox="0 0 18 18" width="17" height="17" aria-hidden="true"><g id="SYSTEM_3"><g id="Editor_3"><g id="icon_add_3"><path d="m13.19,10.49l-4.61-.19c-1.85-.08-3.7-.16-5.55-.24-.24,0-.48,0-.72,0-.49,0-.99,0-1.49-.08-.28-.05-.5-.31-.67-.52-.21-.25-.2-.64.04-.87.17-.16.4-.39.67-.41,3.34-.24,6.86-.46,10.75-.68l2.81.1h.2c.72,0,1.46,0,2.18.12.41.07.73.45.99.76.31.37.29.95-.06,1.28-.25.24-.58.57-.98.6-.09,0-.17.01-.26.02-.68.04-1.38.07-2.07.12h-.57c-.26,0-.46,0-.66,0Z"></path><path d="m10.49,4.81l-.19,4.61c-.08,1.85-.16,3.7-.24,5.55,0,.24,0,.48,0,.72,0,.49,0,.99-.08,1.49-.05.28-.31.5-.52.67-.25.21-.64.2-.87-.04-.16-.17-.39-.4-.41-.67-.24-3.34-.46-6.86-.68-10.75l.1-2.81v-.2c0-.72,0-1.46.12-2.18.07-.41.45-.73.76-.99.37-.31.95-.29,1.28.06.24.25.57.58.6.98,0,.09.01.17.02.26.04.68.07,1.38.12,2.07v.57c0,.26,0,.46,0,.66Z"></path></g></g></g></svg>
                    <svg xmlns="http://www.w3.org/2000/svg" id="Calque_2" fill="currentColor" viewbox="0 0 15 20" width="18" height="19" aria-hidden="true"><g id="BUSINESS_3"><g id="Finance_Payment_3"><g id="icon_cart_3"><path d="m4.48,3.1c.07-.93.58-1.82,1.36-2.39C6.61.14,7.64-.11,8.6.04c1.17.16,2.19.93,2.65,1.93.25.48.31,1.08.29,1.55l-.02,1.4v.73c0,.49,0,1-.04,1.5-.02.29-.13.5-.21.68-.1.21-.26.2-.36-.04-.07-.17-.16-.4-.17-.67-.02-.84-.05-1.7-.07-2.56-.01-.43-.03-.86-.04-1.3-.02-.38-.14-.75-.34-1.08-.41-.66-1.17-1.11-1.99-1.15-.82-.05-1.66.31-2.14.96-.25.3-.4.66-.46,1.03-.02.09-.02.19-.03.28v.35s-.02.71-.02.71v.2c0,.72,0,1.47-.05,2.2-.03.41-.18.74-.31,1-.15.31-.39.29-.52-.06-.1-.25-.23-.59-.25-.99,0-.09,0-.18,0-.26-.02-.69-.03-1.39-.05-2.09v-.57c0-.27-.01-.44.01-.7Z"></path><path d="m.23,17.58c.27-2,.51-4.02.74-6.04l.77-6.05.14-1.13c.05-.43.31-.7.7-.75.19-.02.43,0,.61,0h.34s1.35.01,1.35.01l2.71.02,5.61.04c.19,0,.33.05.46.13.15.11.2.24.26.4.05.18.05.36.08.54l.04.34.17,1.3.26,1.91c.17,1.29.36,2.62.49,3.92.08.75.03,1.33,0,1.81-.05.57-.24.55-.44-.06-.14-.43-.33-1.02-.43-1.72-.19-1.28-.38-2.58-.59-3.94-.1-.68-.2-1.38-.31-2.1-.05-.36-.11-.73-.16-1.1l-.05-.3c0-.08-.08-.08-.14-.07-1.52.02-3.18.04-4.94.07-.91.01-1.84.02-2.8.03-.48,0-.96.01-1.45.02-.23,0-.57,0-.52,0-.04,0-.07.02-.06.07-.13,1.2-.27,2.53-.43,3.94-.17,1.49-.33,3.08-.48,4.68l-.38,3.12-.21,1.56-.03.23v.02s0,.02.01.02h.02s.23,0,.23,0h.58s.51,0,.51,0c1.83,0,3.74,0,5.58.06,1.05.04,1.87.23,2.54.38.79.19.74.48-.15.65-.63.12-1.5.29-2.51.3-.22,0-.44,0-.65,0-1.75.02-3.54.04-5.32.06H.88c-.19,0-.35-.06-.47-.13-.09-.05-.19-.14-.27-.25-.07-.11-.09-.16-.12-.29-.05-.1,0-.26,0-.4.01-.14.04-.28.06-.42.05-.32.09-.62.13-.92Z"></path></g></g></g></svg>
                </span>
            </button>
                <div>
            
    <button x-data="initWishlist()" x-on:click.prevent="toggleWishlist" aria-label="Ajouter &agrave; la liste de souhaits" type="button" class="wishlist-btn text-black p-3 hover:bg-pink-dark rounded-btn" :class="isInWishlist() ? '!bg-pink-dark lg:!bg-pink-light' : 'bg-pink-light'" x-on:class="{ 'pointer-events-none': loading }">
        <span x-cloak x-show="!isInWishlist()">
            <svg class="size-6 text-optimo-darker" :class="{ '!hidden': loading }" aria-hidden="true">
                <use href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/i4-sprite.svg#ico-wishlist"></use>
            </svg>
        </span>
        <span x-cloak x-show="isInWishlist()">
            <svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewbox="0 0 24 24" class="size-6 text-optimo-darker" width="24" height="24" aria-hidden="true" :class="{ '!hidden': loading }"><path fill="#FF5C6E" d="M12.113 5.598c.03-.07.02-.06.09-.19.09-.18.19-.36.33-.54.5-.72 1.249-1.269 2.058-1.519.939-.29 1.688-.13 2.228.07.64.28.49.44-.19.43-.49.02-1.139.15-1.808.42-.44.18-.85.45-1.18.799-.16.18-.309.37-.429.59-.06.14-.11.17-.19.41-.06.25-.17.4-.2.739-.2 1.509-.49 1.429-.639 1.549-.14.06-.35.04-.42 0-.3-.11-.51-.66-.55-1.08-.04-.28-.11-.48-.159-.729-.05-.25-.12-.46-.22-.62-.1-.2-.23-.37-.35-.54-.27-.339-.609-.619-.979-.829-.749-.43-1.678-.51-2.567-.3C5.159 4.589 4 6.528 4.33 8.447c.2 1.968 1.409 3.797 2.757 5.516 1.39 1.709 2.978 3.348 4.636 4.977.37.37.2.2.24.25.04-.04-.12.12.25-.23.52-.49 1.01-1 1.509-1.5a49.169 49.169 0 0 0 2.827-3.137l.37-.47c1.269-1.689 2.478-3.598 2.697-5.556.12-1.1.02-1.979-.24-2.708-.16-.42-.23-.66-.11-.72.1-.05.41.07.78.53.52.62 1.08 1.789.93 3.168-.02.3-.06.59-.13.859-.5 2.278-1.809 4.147-3.118 5.856l-.04.06c-.35.45-.72.87-1.089 1.3-.53.589-.95 1.058-1.379 1.498-.41.43-.829.85-1.249 1.27l-.639.619-.34.33c-.21.18-.41.44-.63.55-.419.219-.928.04-1.298-.44l-.7-.71-1.228-1.28c-1.619-1.728-3.218-3.497-4.516-5.575-.77-1.24-1.41-2.639-1.569-4.167-.08-.74-.09-1.55.15-2.319.22-.77.63-1.479 1.189-2.058.55-.57 1.279-1 2.058-1.19a5.22 5.22 0 0 1 2.328-.07c.78.17 1.509.56 2.088 1.11.29.27.53.59.75.929.06.08.09.17.14.26l.05.1.05.14.04.1c.04.11.07.17.07.17s.06-.09.149-.32v.01Z"></path><path fill="#FF5C6E" stroke="#FF5C6E" d="M16 3.502c-2.4 0-3.667 3-4 4.5-.5-2.167-2.4-6-6-4-4.5 2.5-1.5 7.5 0 9.5 1.2 1.6 4.5 5.333 6 7 1.666-1.834 5.5-6.3 7.5-9.5 2.5-4-.5-7.5-3.5-7.5Z"></path></svg>
        </span>
        <span x-cloak x-show="loading">
            <svg class="animate-spin text-optimo-darker size-6" aria-hidden="true">
                <use href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/i4-sprite.svg#ico-loader"></use>
            </svg>
        </span>
        <span class="hidden">
            Mes Favoris        </span>
    </button>
        </div>
    </div>

            </div>
                                </div>
    </form>

                        </div>
                                    </div>
            </div>
        </div>
    </section>
</div></div></div><div data-content-type="row" data-appearance="contained" data-element="main" data-pb-style="OV1DUJL"><div data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-background-lazy-load="" data-element="inner" data-pb-style="N5UBJY5"><div class="pagebuilder-column-group c-landing__promo-block universe-module-4 title-2-columns" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="12" data-background-lazy-load="false" data-element="main" data-pb-style="Q2MPMXX"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="UYG15AR"><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-background-lazy-load="false" data-element="main" data-pb-style="S56MDNB"><h2 data-content-type="heading" data-appearance="default" data-element="main" data-pb-style="PJYBEPJ">Nouveaut&eacute;s</h2></div><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-background-lazy-load="false" data-element="main" data-pb-style="L2WK001"><div data-content-type="buttons" data-appearance="inline" data-same-width="false" data-element="main"><div class="ghost-reverse" data-content-type="button-item" data-appearance="default" data-element="main" data-pb-style="K1LENQR"><a class="pagebuilder-button-secondary btn btn-secondary" href="https://www.espaceplaisir.fr/nouveautes" target="" data-link-type="default" data-element="link" data-pb-style="ADVQ8QL"><span data-element="link_text">Voir tout</span></a></div></div></div></div></div><div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true"><style>
.title-2-columns .pagebuilder-column {
 flex-basis: 46%;
 flex-grow: 1;
margin-bottom:0;
}
.title-2-columns.c-landing__promo-block [data-content-type=buttons]{
padding-left:0;
padding-right:0;
}

.title-2-columns .pagebuilder-column-line {
gap:0;
}

.title-2-columns.ghost-reverse [data-content-type=buttons] [data-content-type=button-item] {
margin-right:0;
}

.title-2-columns .ghost-reverse .btn-secondary {
background: transparent;
}
.title-2-columns .ghost-reverse .btn-secondary:hover {
background: rgba(0, 0, 0, 0.2);
border: 1px solid #000000;
opacity: 1;
}
.title-2-columns .ghost-reverse .btn-secondary:hover span {
opacity:1;
color:#000000;
}
.title-2-columns .ghost-reverse .btn-secondary span {
color:#000000;
}
</style></div><div data-content-type="products" data-appearance="carousel" data-autoplay="false" data-autoplay-speed="4000" data-infinite-loop="true" data-show-arrows="true" data-show-dots="true" data-carousel-mode="default" data-ga4-title="hp-new-products" data-center-padding="90px" data-element="main" data-pb-style="QFLN0WR">
<div x-data x-init="() =&gt; {            const products = {&quot;48798&quot;:{&quot;item_name&quot;:&quot;Womanizer Pro\u200b stimulateur clitoridien&quot;,&quot;item_id&quot;:&quot;CONF-LH-50140&quot;,&quot;price&quot;:69,&quot;item_url&quot;:&quot;https:\/\/www.espaceplaisir.fr\/womanizer-pro-rechargeable-clitoral-suction-stimulator.html&quot;,&quot;item_list_name&quot;:&quot;widgets&quot;,&quot;index&quot;:1,&quot;quantity&quot;:1,&quot;item_category&quot;:&quot;Sextoys&quot;,&quot;item_category2&quot;:&quot;1er achat de sextoy&quot;,&quot;item_category3&quot;:&quot;Premier sextoy femme&quot;,&quot;item_brand&quot;:&quot;Womanizer&quot;,&quot;item_reviews&quot;:&quot;10&quot;,&quot;item_rating&quot;:&quot;3.7&quot;,&quot;price_type&quot;:&quot;full price&quot;,&quot;item_sale_indicator&quot;:&quot;off_sale&quot;,&quot;price_before_discount&quot;:69,&quot;item_stock&quot;:&quot;in stock&quot;},&quot;48557&quot;:{&quot;item_name&quot;:&quot;Womanizer Next Duo 3D stimulateur clitoris et point G&quot;,&quot;item_id&quot;:&quot;CONF-DUO10C&quot;,&quot;price&quot;:219,&quot;item_url&quot;:&quot;https:\/\/www.espaceplaisir.fr\/womanizer-next-duo.html&quot;,&quot;item_list_name&quot;:&quot;widgets&quot;,&quot;index&quot;:2,&quot;quantity&quot;:1,&quot;item_category&quot;:&quot;Sextoys&quot;,&quot;item_category2&quot;:&quot;Stimulateur clitoridien&quot;,&quot;item_category3&quot;:&quot;Double stimulation&quot;,&quot;item_brand&quot;:&quot;Womanizer&quot;,&quot;item_reviews&quot;:&quot;55&quot;,&quot;item_rating&quot;:&quot;4.42&quot;,&quot;price_type&quot;:&quot;full price&quot;,&quot;item_sale_indicator&quot;:&quot;off_sale&quot;,&quot;price_before_discount&quot;:219,&quot;item_stock&quot;:&quot;in stock&quot;},&quot;48519&quot;:{&quot;item_name&quot;:&quot;Stimulateur pour couple connect\u00e9 We-Vibe Chorus Pro&quot;,&quot;item_id&quot;:&quot;CONF-WVI-SCP2A&quot;,&quot;price&quot;:209,&quot;item_url&quot;:&quot;https:\/\/www.espaceplaisir.fr\/we-vibe-chorus-pro.html&quot;,&quot;item_list_name&quot;:&quot;widgets&quot;,&quot;index&quot;:3,&quot;quantity&quot;:1,&quot;item_category&quot;:&quot;Sextoys&quot;,&quot;item_category2&quot;:&quot;Stimulateur clitoridien&quot;,&quot;item_category3&quot;:&quot;Double stimulation&quot;,&quot;item_brand&quot;:&quot;We-Vibe&quot;,&quot;item_reviews&quot;:&quot;46&quot;,&quot;item_rating&quot;:&quot;4.3&quot;,&quot;price_type&quot;:&quot;full price&quot;,&quot;item_sale_indicator&quot;:&quot;off_sale&quot;,&quot;price_before_discount&quot;:209,&quot;item_stock&quot;:&quot;in stock&quot;},&quot;48456&quot;:{&quot;item_name&quot;:&quot;Stimulateur chaud-froid We-Vibe Temp&quot;,&quot;item_id&quot;:&quot;CONF-48456&quot;,&quot;price&quot;:99,&quot;item_url&quot;:&quot;https:\/\/www.espaceplaisir.fr\/we-vibe-temp.html&quot;,&quot;item_list_name&quot;:&quot;widgets&quot;,&quot;index&quot;:4,&quot;quantity&quot;:1,&quot;item_category&quot;:&quot;Sextoys&quot;,&quot;item_category2&quot;:&quot;Stimulateur clitoridien&quot;,&quot;item_category3&quot;:&quot;Plaisir 100% clitoris&quot;,&quot;item_brand&quot;:&quot;We-Vibe&quot;,&quot;item_reviews&quot;:&quot;38&quot;,&quot;item_rating&quot;:&quot;4.47&quot;,&quot;price_type&quot;:&quot;full price&quot;,&quot;item_sale_indicator&quot;:&quot;off_sale&quot;,&quot;price_before_discount&quot;:99,&quot;item_stock&quot;:&quot;in stock&quot;},&quot;48379&quot;:{&quot;item_name&quot;:&quot;Womanizer Peach Toy stimulateur clitoridien&quot;,&quot;item_id&quot;:&quot;WZPC1SGA&quot;,&quot;price&quot;:49.9,&quot;item_url&quot;:&quot;https:\/\/www.espaceplaisir.fr\/womanizer-besties-peach-toy.html&quot;,&quot;item_list_name&quot;:&quot;widgets&quot;,&quot;index&quot;:5,&quot;quantity&quot;:1,&quot;item_category&quot;:&quot;Sextoys&quot;,&quot;item_category2&quot;:&quot;Stimulateur clitoridien&quot;,&quot;item_category3&quot;:&quot;Plaisir 100% clitoris&quot;,&quot;item_brand&quot;:&quot;Womanizer&quot;,&quot;item_ean&quot;:&quot;4251460633383&quot;,&quot;item_reviews&quot;:&quot;48&quot;,&quot;item_rating&quot;:&quot;4.48&quot;,&quot;price_type&quot;:&quot;full price&quot;,&quot;item_sale_indicator&quot;:&quot;off_sale&quot;,&quot;price_before_discount&quot;:49.9,&quot;item_stock&quot;:&quot;in stock&quot;},&quot;48389&quot;:{&quot;item_name&quot;:&quot;Stimulateur clitoridien ROMP Spin&quot;,&quot;item_id&quot;:&quot;RPPA1SGZ&quot;,&quot;price&quot;:42.42,&quot;item_url&quot;:&quot;https:\/\/www.espaceplaisir.fr\/romp-spin.html&quot;,&quot;item_list_name&quot;:&quot;widgets&quot;,&quot;index&quot;:6,&quot;quantity&quot;:1,&quot;item_category&quot;:&quot;Sextoys&quot;,&quot;item_category2&quot;:&quot;Stimulateur clitoridien&quot;,&quot;item_category3&quot;:&quot;Plaisir 100% clitoris&quot;,&quot;item_brand&quot;:&quot;ROMP by Womanizer&quot;,&quot;item_ean&quot;:&quot;4251460633147&quot;,&quot;item_reviews&quot;:&quot;12&quot;,&quot;item_rating&quot;:&quot;4.17&quot;,&quot;price_type&quot;:&quot;discounted price&quot;,&quot;item_sale_indicator&quot;:&quot;on_sale&quot;,&quot;discount&quot;:7.5,&quot;price_before_discount&quot;:49.9,&quot;item_stock&quot;:&quot;in stock&quot;},&quot;48417&quot;:{&quot;item_name&quot;:&quot;Vibromasseur wand double LELO Switch&quot;,&quot;item_id&quot;:&quot;CONF-48417&quot;,&quot;price&quot;:199,&quot;item_url&quot;:&quot;https:\/\/www.espaceplaisir.fr\/lelo-switch.html&quot;,&quot;item_list_name&quot;:&quot;widgets&quot;,&quot;index&quot;:7,&quot;quantity&quot;:1,&quot;item_category&quot;:&quot;Sextoys&quot;,&quot;item_category2&quot;:&quot;Vibromasseur&quot;,&quot;item_category3&quot;:&quot;Vibromasseur classique&quot;,&quot;item_brand&quot;:&quot;LELO&quot;,&quot;item_reviews&quot;:&quot;1&quot;,&quot;item_rating&quot;:&quot;5&quot;,&quot;price_type&quot;:&quot;full price&quot;,&quot;item_sale_indicator&quot;:&quot;off_sale&quot;,&quot;price_before_discount&quot;:199,&quot;item_stock&quot;:&quot;in stock&quot;},&quot;48231&quot;:{&quot;item_name&quot;:&quot;Stimulateur clitoridien connect\u00e9 We-Vibe Melt 2&quot;,&quot;item_id&quot;:&quot;CONF-48231&quot;,&quot;price&quot;:126.65,&quot;item_url&quot;:&quot;https:\/\/www.espaceplaisir.fr\/we-vibe-melt-2.html&quot;,&quot;item_list_name&quot;:&quot;widgets&quot;,&quot;index&quot;:8,&quot;quantity&quot;:1,&quot;item_category&quot;:&quot;Sextoys&quot;,&quot;item_category2&quot;:&quot;Stimulateur clitoridien&quot;,&quot;item_brand&quot;:&quot;We-Vibe&quot;,&quot;item_reviews&quot;:&quot;256&quot;,&quot;item_rating&quot;:&quot;4.56&quot;,&quot;price_type&quot;:&quot;discounted price&quot;,&quot;item_sale_indicator&quot;:&quot;on_sale&quot;,&quot;discount&quot;:22.35,&quot;price_before_discount&quot;:149,&quot;item_stock&quot;:&quot;in stock&quot;}};            const node = $el.nextElementSibling;            const ga4Title = node &amp;&amp; node.closest('[data-ga4-title]');            if (ga4Title &amp;&amp; ga4Title.dataset.ga4Title) {               for (const product in products) {                   products[product].item_list_id = products[product].item_list_id || ga4Title.dataset.ga4Title;               }            }            updateGa4Products({node, products: JSON.stringify(products) }).init();        }"></div>
    
    <section class="p-slider relative mt-6 mb-11" x-data="initSliderComponent()" x-defer="intersect">
        <div x-init="$nextTick(() =&gt; calcPageSize())" @resize.window.debounce="calcPageSize">
            <div class="w-[calc(100% + 16px)] -ml-2">
                <div data-slider data-p-slides class="relative flex flex-nowrap overflow-auto transition-all snap lg:gap-2" @scroll.debounce="calcActive">
                                            <div class="p-slider__item rounded-xs p-2.5 flex shrink-0 w-[calc(100%/1.5)] bg-white md:max-w-[25%] js_slide lg:max-w-none lg:w-[calc(100%/5-30px/5)]">
                            
    <form x-data="initPriceBox()" @update-prices-48798="updatePrice($event.detail);" @update-gallery-48798="$refs.gallery &amp;&amp; ($refs.gallery.src = $event.detail)" x-i4-ajax-cart action="https://www.espaceplaisir.fr/checkout/cart/add/uenc/aHR0cHM6Ly93d3cuZXNwYWNlcGxhaXNpci5mci8~/product/48798/" method="post" data-id="48798" data-sku="CONF-LH-50140" data-type="configurable" class="product-item relative w-full flex flex-col group gap-2.5 lg:gap-6">
        <input name="form_key" type="hidden" value="3aL3XfaOaI06l5Zj">        <input type="hidden" name="product" value="48798">

        
        <a class="product__link relative hover:text-black" href="https://www.espaceplaisir.fr/womanizer-pro-rechargeable-clitoral-suction-stimulator.html">
            <img class="w-full object-contain text-transparent" x-ref="gallery" src="https://www.espaceplaisir.fr/media/catalog/product/w/o/womanizer-pro-stimulateur-clitoridien-1.jpg?quality=80&amp;fit=bounds&amp;height=480&amp;width=480" loading="lazy" width="480" height="480" alt="" title="">
            
                                <div class="label-container absolute inset-0 grid grid-flow-col grid-cols-3 grid-rows-3">
        
            <div class="relative group/item" style="border:2px solid #1d3766; background-color:#1d3766;padding-left:4px;padding-right:4px;padding-top:2px; padding-bottom:2px;text-align:center;font-weight:bold; border-radius:4px; width:fit-content;height:fit-content; font-size: 14px; color: #ffffff;grid-area:1/1">
        <div class="whitespace-nowrap">
        Top vente    </div>
    
    
            </div>
        </div>
                    </a>
        <div class="relative text-center flex flex-col text-sm items-center h-full product-info-block product-info-block__container">
            <div class="text-sm text-center line-clamp-1 leading-6 mb-2 min-h-6 product-info-block">
                Womanizer            </div>
            <p class="product__name text-sm font-bold mb-2 min-h-8 leading-5 font-Averta">
                <a class="product__link text-center line-clamp-2 font-bold product-info-block" href="https://www.espaceplaisir.fr/womanizer-pro-rechargeable-clitoral-suction-stimulator.html">
                    Womanizer Pro&#8203; stimulateur clitoridien                </a>
            </p>
            <div class="review min-h-5 w-full flex flex-col items-center">
                
<div class="r-stars">
    <div class="r-stars__box">
        <i class="r-stars__empty"></i>
        <i class="r-stars__full" style="width:74%"></i>
    </div>
    <span class="text-sm leading-none">(10)</span>
</div>
            </div>
            <div class="text-grey-dark">
                <div class="price-box price-final_price" data-role="priceBox" data-product-id="48520" data-price-box="product-id-48520">

<div class="normal-final-price           simple-product">
    <span class="special-price">
        
<span class="price-container            price-final_price tax weee">
            <span class="price-label">
            Prix sp&eacute;cial        </span>
        <span id="product-price-48520" data-price-amount="69" data-price-type="finalPrice" class="price-wrapper">
        <span class="price">69,00&nbsp;&euro;</span>    </span>
                <meta content="69">
        <meta content="EUR">
    </span>
    </span>
    <span class="final-price-box">
        
<span class="price-container            price-final_price tax weee">
            <span class="price-label">
            Prix normal        </span>
        <span id="old-price-48520" data-price-amount="69" data-price-type="oldPrice" class="price-wrapper">
        <span class="price">69,00&nbsp;&euro;</span>    </span>
                <meta content="69">
        <meta content="EUR">
    </span>
    </span>
</div>

</div>            </div>
            <div class="w-full min-h-[2rem] lg:block mt-auto">
                                    <div class="mb-4 lg:mb-5 block">
                            <script>
        function initConfigurableSwatchOptions_48798() {
            return {
                ...initConfigurableOptions('48798', {"attributes":{"275":{"id":"275","code":"couleur","label":"Couleur","options":[{"id":"40","label":"Vert","products":["48796"]},{"id":"61","label":"Gris","products":["48797"]},{"id":"70","label":"Rose","products":["48795"]},{"id":"66","label":"Violet","products":["48520"]},{"id":"75","label":"Rouge","products":["48794"]}],"position":"0"}},"template":"<%- data.price %>\u00a0\u20ac","currencyFormat":"%s\u00a0\u20ac","optionPrices":{"48796":{"baseOldPrice":{"amount":57.499999},"oldPrice":{"amount":69},"basePrice":{"amount":57.499999},"finalPrice":{"amount":69},"tierPrices":[],"msrpPrice":{"amount":0}},"48797":{"baseOldPrice":{"amount":57.499999},"oldPrice":{"amount":69},"basePrice":{"amount":57.499999},"finalPrice":{"amount":69},"tierPrices":[],"msrpPrice":{"amount":0}},"48795":{"baseOldPrice":{"amount":57.499999},"oldPrice":{"amount":69},"basePrice":{"amount":57.499999},"finalPrice":{"amount":69},"tierPrices":[],"msrpPrice":{"amount":0}},"48520":{"baseOldPrice":{"amount":57.499999},"oldPrice":{"amount":69},"basePrice":{"amount":57.499999},"finalPrice":{"amount":69},"tierPrices":[],"msrpPrice":{"amount":0}},"48794":{"baseOldPrice":{"amount":57.499999},"oldPrice":{"amount":69},"basePrice":{"amount":57.499999},"finalPrice":{"amount":69},"tierPrices":[],"msrpPrice":{"amount":0}}},"priceFormat":{"pattern":"%s\u00a0\u20ac","precision":2,"requiredPrecision":2,"decimalSymbol":",","groupSymbol":"\u202f","groupLength":3,"integerRequired":false},"prices":{"baseOldPrice":{"amount":57.499999},"oldPrice":{"amount":69},"basePrice":{"amount":57.499999},"finalPrice":{"amount":69}},"productId":"48798","chooseText":"Choisissez une option...","images":{"48798":[{"thumb":"https:\/\/www.espaceplaisir.fr\/media\/catalog\/product\/w\/o\/womanizer-pro-stimulateur-clitoridien-1_1.jpg?quality=80&fit=bounds&height=90&width=90","img":"https:\/\/www.espaceplaisir.fr\/media\/catalog\/product\/w\/o\/womanizer-pro-stimulateur-clitoridien-1_1.jpg?quality=80&fit=bounds&height=1333&width=1000","full":"https:\/\/www.espaceplaisir.fr\/media\/catalog\/product\/w\/o\/womanizer-pro-stimulateur-clitoridien-1_1.jpg?quality=80&fit=bounds&height=&width=","caption":"","position":"0","isMain":true,"type":"image","videoUrl":null}]},"index":{"48796":{"275":"40"},"48797":{"275":"61"},"48795":{"275":"70"},"48520":{"275":"66"},"48794":{"275":"75"}},"salable":[],"canDisplayShowOutOfStockStatus":false,"preSelectedGallery":[],"channel":"website","salesChannelCode":"espace_plaisir_fo","sku":{"48796":"WZPO1SG2","48797":"WZPO1SG3","48795":"WZPO1SG4","48520":"WZPO1SGZ","48794":"WZPO1SG5"},"label_reload":"https:\/\/www.espaceplaisir.fr\/amasty_label\/ajax\/label\/","label_category":".product-image-container, .product-item-photo, .cdz-product-top","label_product":".fotorama__stage, #amasty-main-container","original_product_id":"48798","defaultValues":{"275":"66"}}),
                ...initSwatchOptions({"275":{"40":{"type":2,"value":"https:\/\/www.espaceplaisir.fr\/media\/catalog\/product\/w\/m\/wmz_proce_sage_product_perspective.jpg?quality=80&fit=bounds&height=100&width=100","thumb":"https:\/\/www.espaceplaisir.fr\/media\/catalog\/product\/w\/m\/wmz_proce_sage_product_perspective.jpg?quality=80&fit=bounds&height=90&width=110","label":"Vert"},"61":{"type":2,"value":"https:\/\/www.espaceplaisir.fr\/media\/catalog\/product\/w\/m\/wmz_proce_grey_product_perspective.jpg?quality=80&fit=bounds&height=100&width=100","thumb":"https:\/\/www.espaceplaisir.fr\/media\/catalog\/product\/w\/m\/wmz_proce_grey_product_perspective.jpg?quality=80&fit=bounds&height=90&width=110","label":"Gris"},"70":{"type":2,"value":"https:\/\/www.espaceplaisir.fr\/media\/catalog\/product\/w\/m\/wmz_proce_vibrant-pink_product_perspective.jpg?quality=80&fit=bounds&height=100&width=100","thumb":"https:\/\/www.espaceplaisir.fr\/media\/catalog\/product\/w\/m\/wmz_proce_vibrant-pink_product_perspective.jpg?quality=80&fit=bounds&height=90&width=110","label":"Rose"},"66":{"type":2,"value":"https:\/\/www.espaceplaisir.fr\/media\/catalog\/product\/w\/o\/womanizer-pro-stimulateur-clitoridien-2.jpg?quality=80&fit=bounds&height=100&width=100","thumb":"https:\/\/www.espaceplaisir.fr\/media\/catalog\/product\/w\/o\/womanizer-pro-stimulateur-clitoridien-2.jpg?quality=80&fit=bounds&height=90&width=110","label":"Violet"},"75":{"type":2,"value":"https:\/\/www.espaceplaisir.fr\/media\/catalog\/product\/w\/m\/wmz_proce_bordeau-red_product_perspective.jpg?quality=80&fit=bounds&height=100&width=100","thumb":"https:\/\/www.espaceplaisir.fr\/media\/catalog\/product\/w\/m\/wmz_proce_bordeau-red_product_perspective.jpg?quality=80&fit=bounds&height=90&width=110","label":"Rouge"},"additional_data":"{\"swatch_input_type\":\"visual\",\"update_product_preview_image\":\"1\",\"use_product_image_for_swatch\":\"1\"}"}}),
                mediaCallback: "https\u003A\u002F\u002Fwww.espaceplaisir.fr\u002Fswatches\u002Fajax\u002Fmedia\u002F",
                changeOption(optionId, value, skipUpdateGallery) {
                    this.selectedValues[optionId] = value;
                    this.findSimpleIndex();
                    this.findAllowedAttributeOptions();
                    this.updatePrices();
                    !skipUpdateGallery && this.updateGallery();

                    const detail = {
                        productId: this.productId,
                        optionId: optionId,
                        value: value,
                        productIndex: this.productIndex,
                        selectedValues: this.selectedValues,
                        candidates: this.findProductIdsForPartialSelection(this.selectedValues),
                        variationSku: this.optionConfig.sku[this.productIndex]
                    };

                    this.$root.dispatchEvent(new CustomEvent('configurable-selection-changed', { detail, bubbles: true }));
                    this.$root.dispatchEvent(new CustomEvent(`configurable-selection-changed-${this.productId}`, { detail, bubbles: true }));
                },
                updateGallery() {
                    if (!this.productIndex) {
                        return;
                    }

                    fetch(`${this.mediaCallback}?product_id=${this.productIndex}&isAjax=true`, {
                            method: 'GET',
                            headers: {
                                'Content-Type': 'application/json',
                                'X-Requested-With': 'XMLHttpRequest'
                            }
                        }
                    ).then(response => {
                            return response.json()
                        }
                    ).then(data => {
                        if (data.errors) {
                            // non critical failure only console logged
                            console.warn(data.errors);
                        } else {
                            const image = data && data.medium;

                            image && this.$root.dispatchEvent(
                                new CustomEvent(
                                    "update-gallery-48798",
                                    {detail: image, bubbles: true}
                                )
                            );
                        }
                    }).catch(error => {
                        console.warn(error)
                    });
                },
                preselectQuerystringItems() {
                    // pre-select option like ?size=167
                    const urlQueryParams = new URLSearchParams(window.location.search.replace('?', ''));
                    Object.values(this.optionConfig.attributes).map(attribute => {
                        // Don't update images on load, since PLPs already set the main image to the selected options
                        const skipUpdateGallery = true;
                        urlQueryParams.get(attribute.code) &&
                        this.changeOption(attribute.id, urlQueryParams.get(attribute.code), skipUpdateGallery);
                    });
                }
            };
        }

    </script>

    <div x-data="initConfigurableSwatchOptions_48798()" x-init="findAllowedAttributeOptions();" x-intersect="showSwatches = true" @private-content-loaded.window="onGetCartData($event.detail.data)" class="relative">
        <div>
                            
                                <div class="swatch-attribute-options swatch-attribute mb-1  couleur">
                    <template x-if="showSwatches">
                        <div class="flex flex-wrap justify-center gap-1" role="radiogroup" x-data="{countOfOptions: Object.keys(optionConfig.attributes[275].options).length}">
                            <label class="sr-only" for="attributecouleur">
                                Couleur                            </label>
                            <template x-for="(item, index) in optionConfig.attributes[275].options" :key="item.id">
                                
<div :class="{    'opacity-0 absolute size-0 -z-1' : index &gt;= numberToShow,    'opacity-40 out-of-stock-swatch' : checkStatusOfItem(275, item.id)}">
    <template x-if="optionIsEnabled(275, item.id) &amp;&amp; optionIsActive(275, item.id)">
        <label @click="swatchImgListener(275, item.id)" :for="'attribute-option-48798-'+item.id" class="swatch-option flex justify-center relative border-2 border-transparent mb-0 font-normal" :data-sku="optionConfig.sku[productIndex]" :class="{                'size-8 rounded-btn border' : !isTextSwatch(275, item.id),                [getTypeSwatches(275, item.id)]: true,                '!border-pink text-pink selected active': selectedValues[275] === item.id &amp;&amp; !isTextSwatch(275, item.id),                'hover:border-optimo-darker': !isTextSwatch(275, item.id)            }" :style="getSwatchBackgroundStyle('275',item.id)" @mouseenter.self="activeTooltipItem = {                    attribute: '275',                    item: item.id                }; tooltipPositionElement = $event.target;" @mouseleave.self="activeTooltipItem = false;">
            <input :id="'attribute-option-48798-'+item.id" :value="item.id" name="super_attribute[275]" type="radio" class="-z-1 absolute opacity-0 h-0" @change="changeOption(275, $event.target.value)" x-model="selectedValues[275]" :required="getAllowedAttributeOptions(275)                .filter(option =&gt; selectedValues[option]).length === 0" :aria-label="getSwatchText(275, item.id)" aria-describedby="attribute-label-48798-275">
            <div x-html="getSwatchText(275, item.id)" class="swatch-option__text flex items-center justify-center min-w-10 h-5 border border-grey                        rounded py-0 px-2 whitespace-nowrap text-black hover:border-optimo-darker" :class="{                 'sr-only' : !isTextSwatch(275, item.id),                 'border-optimo border-1 selected text-pink': updateConfigurableOptions(selectedValues[275] === item.id)                 }"></div>
        </label>
    </template>

    <template x-if="optionIsEnabled(275, item.id) &amp;&amp; !optionIsActive(275, item.id)">
        <div class="swatch-option relative swatch-option border-2 border-transparent" :class="{                'size-4 rounded-btn': !isTextSwatch(275, item.id),                [getTypeSwatches(275, item.id)]: true,                'hidden': index &gt;= numberToShow,                'opacity-50 select-none border-container-darker': !isTextSwatch(275, item.id)            }" :style="getSwatchBackgroundStyle('275',item.id)">
            <div x-html="getSwatchText(275, item.id)" class="swatch-option__text whitespace-nowrap" :class="{                    'sr-only' : !isTextSwatch(275, item.id),                    'swatch-option__text flex items-center justify-center border rounded min-w-10 h-5 text-sm border-grey-light line-through' : isTextSwatch(275, item.id)                 }"></div>
            <svg class="absolute inset-0 w-full h-full text-grey-light bg-white bg-opacity-25">
                <line x1="0" y1="100%" x2="100%" y2="0" class="stroke-current stroke-1"></line>
            </svg>
        </div>
    </template>
</div>
                            </template>
                            <template x-if="numberToShow &lt; countOfOptions">
                                <a href="https://www.espaceplaisir.fr/womanizer-pro-rechargeable-clitoral-suction-stimulator.html" title="Plus" class="flex items-center w-6 h-6 rounded-full bg-grey-lighter">
                                    <svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewbox="0 0 24 24" class="size-4 ml-2 bg-1 rounded-big" width="16" height="16" aria-hidden="true"><path d="m16.1836 12.9933-4.608-.1266-5.5476-.16h-.7197c-.4898 0-.9896 0-1.4894-.0534-.2799-.0333-.4998-.2066-.6697-.3466-.2099-.1667-.2-.4267.04-.58.17-.1067.3998-.26.6697-.2734 3.3386-.16 6.8571-.3066 10.7454-.4533l2.8088.0667h.1999c.7197 0 1.4594 0 2.1791.08.4098.0466.7297.3.9896.5066.3099.2467.2899.6334-.06.8534-.2499.16-.5797.38-.9796.4-.0899 0-.1699.0066-.2599.0133-.6797.0267-1.3794.0467-2.0691.08h-1.2295v-.0067Z"></path><path d="m12.9933 7.8163-.1266 4.6081-.16 5.5476v.7197c0 .4898 0 .9896-.0534 1.4894-.0333.2799-.2066.4998-.3466.6697-.1667.2099-.4267.1999-.58-.04-.1067-.1699-.26-.3998-.2734-.6697-.16-3.3386-.3066-6.8571-.4533-10.7454l.0667-2.8088v-.2c0-.7196 0-1.4593.08-2.179.0466-.4098.3-.7297.5066-.9896.2467-.3098.6334-.2899.8534.06.16.2499.38.5797.4.9796 0 .09.0066.1699.0133.2599.0267.6797.0467 1.3794.08 2.069V7.8164h-.0067Z"></path></svg>
                                </a>
                            </template>
                        </div>
                    </template>
                </div>
                    </div>
                    <template x-if="isTooltipVisible()">
    <div @resize.window="activeTooltipItem = false">
        <div class="absolute shadow-box2" :style="getTooltipPosition()">
            <div x-ref="content" class="absolute top-0 left-0 z-10 min-w-20 p-2 -mt-6 text-sm leading-tight text-black                    transform -translate-x-1/3 -translate-y-full bg-white border border-grey-light text-center">
                <template x-if="isVisualSwatch(activeTooltipItem.attribute, activeTooltipItem.item)">
                    <div class="inline-block" :style="getTooltipImageStyle(activeTooltipItem.attribute, activeTooltipItem.item)"></div>
                </template>
                <span class="mx-2 text-lg font-semibold whitespace-nowrap" x-html="getTooltipLabel()"></span>
            </div>
        </div>
        <div class="absolute flex pointer-events-none" :style="getTooltipArrowPosition()">
            <svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" viewbox="0 0 256 256" width="16" height="16" aria-hidden="true">
  <path fill="#999" d="M254.307 69.55a9.806 9.806 0 0 0-2.88-6.956c-3.84-3.84-10.069-3.84-13.907 0l-109.663 109.66-109.66-109.66c-3.842-3.84-10.069-3.84-13.91 0-3.839 3.842-3.839 10.069 0 13.91l116.615 116.615c3.838 3.841 10.068 3.841 13.907 0L251.424 76.504a9.797 9.797 0 0 0 2.883-6.955z"></path>
</svg>
        </div>
    </div>
</template>
            </div>
                    </div>
                                    <div class="product__actions flex gap-2">
                    <button x-ref="submit" class="btn btn-tertiary text-sm px-1 truncate w-full min-w-auto transition-all block" aria-label="Ajouter au panier Womanizer Pro&#8203; stimulateur clitoridien">
                <span class="text-addtocart hidden lg:block">
                    Ajouter au panier                </span>
                <span class="icons-addtocart flex gap-2 justify-center items-center lg:hidden">
                    <svg xmlns="http://www.w3.org/2000/svg" id="Calque_2" fill="currentColor" viewbox="0 0 18 18" width="17" height="17" aria-hidden="true"><g id="SYSTEM_3"><g id="Editor_3"><g id="icon_add_3"><path d="m13.19,10.49l-4.61-.19c-1.85-.08-3.7-.16-5.55-.24-.24,0-.48,0-.72,0-.49,0-.99,0-1.49-.08-.28-.05-.5-.31-.67-.52-.21-.25-.2-.64.04-.87.17-.16.4-.39.67-.41,3.34-.24,6.86-.46,10.75-.68l2.81.1h.2c.72,0,1.46,0,2.18.12.41.07.73.45.99.76.31.37.29.95-.06,1.28-.25.24-.58.57-.98.6-.09,0-.17.01-.26.02-.68.04-1.38.07-2.07.12h-.57c-.26,0-.46,0-.66,0Z"></path><path d="m10.49,4.81l-.19,4.61c-.08,1.85-.16,3.7-.24,5.55,0,.24,0,.48,0,.72,0,.49,0,.99-.08,1.49-.05.28-.31.5-.52.67-.25.21-.64.2-.87-.04-.16-.17-.39-.4-.41-.67-.24-3.34-.46-6.86-.68-10.75l.1-2.81v-.2c0-.72,0-1.46.12-2.18.07-.41.45-.73.76-.99.37-.31.95-.29,1.28.06.24.25.57.58.6.98,0,.09.01.17.02.26.04.68.07,1.38.12,2.07v.57c0,.26,0,.46,0,.66Z"></path></g></g></g></svg>
                    <svg xmlns="http://www.w3.org/2000/svg" id="Calque_2" fill="currentColor" viewbox="0 0 15 20" width="18" height="19" aria-hidden="true"><g id="BUSINESS_3"><g id="Finance_Payment_3"><g id="icon_cart_3"><path d="m4.48,3.1c.07-.93.58-1.82,1.36-2.39C6.61.14,7.64-.11,8.6.04c1.17.16,2.19.93,2.65,1.93.25.48.31,1.08.29,1.55l-.02,1.4v.73c0,.49,0,1-.04,1.5-.02.29-.13.5-.21.68-.1.21-.26.2-.36-.04-.07-.17-.16-.4-.17-.67-.02-.84-.05-1.7-.07-2.56-.01-.43-.03-.86-.04-1.3-.02-.38-.14-.75-.34-1.08-.41-.66-1.17-1.11-1.99-1.15-.82-.05-1.66.31-2.14.96-.25.3-.4.66-.46,1.03-.02.09-.02.19-.03.28v.35s-.02.71-.02.71v.2c0,.72,0,1.47-.05,2.2-.03.41-.18.74-.31,1-.15.31-.39.29-.52-.06-.1-.25-.23-.59-.25-.99,0-.09,0-.18,0-.26-.02-.69-.03-1.39-.05-2.09v-.57c0-.27-.01-.44.01-.7Z"></path><path d="m.23,17.58c.27-2,.51-4.02.74-6.04l.77-6.05.14-1.13c.05-.43.31-.7.7-.75.19-.02.43,0,.61,0h.34s1.35.01,1.35.01l2.71.02,5.61.04c.19,0,.33.05.46.13.15.11.2.24.26.4.05.18.05.36.08.54l.04.34.17,1.3.26,1.91c.17,1.29.36,2.62.49,3.92.08.75.03,1.33,0,1.81-.05.57-.24.55-.44-.06-.14-.43-.33-1.02-.43-1.72-.19-1.28-.38-2.58-.59-3.94-.1-.68-.2-1.38-.31-2.1-.05-.36-.11-.73-.16-1.1l-.05-.3c0-.08-.08-.08-.14-.07-1.52.02-3.18.04-4.94.07-.91.01-1.84.02-2.8.03-.48,0-.96.01-1.45.02-.23,0-.57,0-.52,0-.04,0-.07.02-.06.07-.13,1.2-.27,2.53-.43,3.94-.17,1.49-.33,3.08-.48,4.68l-.38,3.12-.21,1.56-.03.23v.02s0,.02.01.02h.02s.23,0,.23,0h.58s.51,0,.51,0c1.83,0,3.74,0,5.58.06,1.05.04,1.87.23,2.54.38.79.19.74.48-.15.65-.63.12-1.5.29-2.51.3-.22,0-.44,0-.65,0-1.75.02-3.54.04-5.32.06H.88c-.19,0-.35-.06-.47-.13-.09-.05-.19-.14-.27-.25-.07-.11-.09-.16-.12-.29-.05-.1,0-.26,0-.4.01-.14.04-.28.06-.42.05-.32.09-.62.13-.92Z"></path></g></g></g></svg>
                </span>
            </button>
                <div>
            
    <button x-data="initWishlist()" x-on:click.prevent="toggleWishlist" aria-label="Ajouter &agrave; la liste de souhaits" type="button" class="wishlist-btn text-black p-3 hover:bg-pink-dark rounded-btn" :class="isInWishlist() ? '!bg-pink-dark lg:!bg-pink-light' : 'bg-pink-light'" x-on:class="{ 'pointer-events-none': loading }">
        <span x-cloak x-show="!isInWishlist()">
            <svg class="size-6 text-optimo-darker" :class="{ '!hidden': loading }" aria-hidden="true">
                <use href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/i4-sprite.svg#ico-wishlist"></use>
            </svg>
        </span>
        <span x-cloak x-show="isInWishlist()">
            <svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewbox="0 0 24 24" class="size-6 text-optimo-darker" width="24" height="24" aria-hidden="true" :class="{ '!hidden': loading }"><path fill="#FF5C6E" d="M12.113 5.598c.03-.07.02-.06.09-.19.09-.18.19-.36.33-.54.5-.72 1.249-1.269 2.058-1.519.939-.29 1.688-.13 2.228.07.64.28.49.44-.19.43-.49.02-1.139.15-1.808.42-.44.18-.85.45-1.18.799-.16.18-.309.37-.429.59-.06.14-.11.17-.19.41-.06.25-.17.4-.2.739-.2 1.509-.49 1.429-.639 1.549-.14.06-.35.04-.42 0-.3-.11-.51-.66-.55-1.08-.04-.28-.11-.48-.159-.729-.05-.25-.12-.46-.22-.62-.1-.2-.23-.37-.35-.54-.27-.339-.609-.619-.979-.829-.749-.43-1.678-.51-2.567-.3C5.159 4.589 4 6.528 4.33 8.447c.2 1.968 1.409 3.797 2.757 5.516 1.39 1.709 2.978 3.348 4.636 4.977.37.37.2.2.24.25.04-.04-.12.12.25-.23.52-.49 1.01-1 1.509-1.5a49.169 49.169 0 0 0 2.827-3.137l.37-.47c1.269-1.689 2.478-3.598 2.697-5.556.12-1.1.02-1.979-.24-2.708-.16-.42-.23-.66-.11-.72.1-.05.41.07.78.53.52.62 1.08 1.789.93 3.168-.02.3-.06.59-.13.859-.5 2.278-1.809 4.147-3.118 5.856l-.04.06c-.35.45-.72.87-1.089 1.3-.53.589-.95 1.058-1.379 1.498-.41.43-.829.85-1.249 1.27l-.639.619-.34.33c-.21.18-.41.44-.63.55-.419.219-.928.04-1.298-.44l-.7-.71-1.228-1.28c-1.619-1.728-3.218-3.497-4.516-5.575-.77-1.24-1.41-2.639-1.569-4.167-.08-.74-.09-1.55.15-2.319.22-.77.63-1.479 1.189-2.058.55-.57 1.279-1 2.058-1.19a5.22 5.22 0 0 1 2.328-.07c.78.17 1.509.56 2.088 1.11.29.27.53.59.75.929.06.08.09.17.14.26l.05.1.05.14.04.1c.04.11.07.17.07.17s.06-.09.149-.32v.01Z"></path><path fill="#FF5C6E" stroke="#FF5C6E" d="M16 3.502c-2.4 0-3.667 3-4 4.5-.5-2.167-2.4-6-6-4-4.5 2.5-1.5 7.5 0 9.5 1.2 1.6 4.5 5.333 6 7 1.666-1.834 5.5-6.3 7.5-9.5 2.5-4-.5-7.5-3.5-7.5Z"></path></svg>
        </span>
        <span x-cloak x-show="loading">
            <svg class="animate-spin text-optimo-darker size-6" aria-hidden="true">
                <use href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/i4-sprite.svg#ico-loader"></use>
            </svg>
        </span>
        <span class="hidden">
            Mes Favoris        </span>
    </button>
        </div>
    </div>

            </div>
                                </div>
    </form>

                        </div>
                                            <div class="p-slider__item rounded-xs p-2.5 flex shrink-0 w-[calc(100%/1.5)] bg-white md:max-w-[25%] js_slide lg:max-w-none lg:w-[calc(100%/5-30px/5)]">
                            
    <form x-data="initPriceBox()" @update-prices-48557="updatePrice($event.detail);" @update-gallery-48557="$refs.gallery &amp;&amp; ($refs.gallery.src = $event.detail)" x-i4-ajax-cart action="https://www.espaceplaisir.fr/checkout/cart/add/uenc/aHR0cHM6Ly93d3cuZXNwYWNlcGxhaXNpci5mci8~/product/48557/" method="post" data-id="48557" data-sku="CONF-DUO10C" data-type="configurable" class="product-item relative w-full flex flex-col group gap-2.5 lg:gap-6">
        <input name="form_key" type="hidden" value="azHwE4QrOPEZRBOn">        <input type="hidden" name="product" value="48557">

        
        <a class="product__link relative hover:text-black" href="https://www.espaceplaisir.fr/womanizer-next-duo.html">
            <img class="w-full object-contain text-transparent" x-ref="gallery" src="https://www.espaceplaisir.fr/media/catalog/product/w/o/womanizer-next-duo-pink-1.jpg?quality=80&amp;fit=bounds&amp;height=480&amp;width=480" loading="lazy" width="480" height="480" alt="" title="">
            
                                <div class="label-container absolute inset-0 grid grid-flow-col grid-cols-3 grid-rows-3">
        
            <div class="relative group/item" style="width:72px; height:72px; margin: 0 0 0 -8px; font-size: 14px; color: #000000;grid-area:3/3">
        <div class="whitespace-nowrap absolute left-1/2 top-1/2 -translate-y-1/2 -translate-x-1/2">
            </div>
            <img class="w-full h-full" src="https://www.espaceplaisir.fr/media/amasty/amlabel/0526_macaron_bundlePLP_V3_1.png" loading="lazy" title="Womanizer Mini Offert Macaron " alt="Womanizer Mini Offert Macaron ">
    
    
            </div>
        </div>
                    </a>
        <div class="relative text-center flex flex-col text-sm items-center h-full product-info-block product-info-block__container">
            <div class="text-sm text-center line-clamp-1 leading-6 mb-2 min-h-6 product-info-block">
                Womanizer            </div>
            <p class="product__name text-sm font-bold mb-2 min-h-8 leading-5 font-Averta">
                <a class="product__link text-center line-clamp-2 font-bold product-info-block" href="https://www.espaceplaisir.fr/womanizer-next-duo.html">
                    Womanizer Next Duo 3D stimulateur clitoris et point G                </a>
            </p>
            <div class="review min-h-5 w-full flex flex-col items-center">
                
<div class="r-stars">
    <div class="r-stars__box">
        <i class="r-stars__empty"></i>
        <i class="r-stars__full" style="width:88%"></i>
    </div>
    <span class="text-sm leading-none">(55)</span>
</div>
            </div>
            <div class="text-grey-dark">
                <div class="price-box price-final_price" data-role="priceBox" data-product-id="48554" data-price-box="product-id-48554">

<div class="normal-final-price           simple-product">
    <span class="special-price">
        
<span class="price-container            price-final_price tax weee">
            <span class="price-label">
            Prix sp&eacute;cial        </span>
        <span id="product-price-48554" data-price-amount="219" data-price-type="finalPrice" class="price-wrapper">
        <span class="price">219,00&nbsp;&euro;</span>    </span>
                <meta content="219">
        <meta content="EUR">
    </span>
    </span>
    <span class="final-price-box">
        
<span class="price-container            price-final_price tax weee">
            <span class="price-label">
            Prix normal        </span>
        <span id="old-price-48554" data-price-amount="219" data-price-type="oldPrice" class="price-wrapper">
        <span class="price">219,00&nbsp;&euro;</span>    </span>
                <meta content="219">
        <meta content="EUR">
    </span>
    </span>
</div>

</div>            </div>
            <div class="w-full min-h-[2rem] lg:block mt-auto">
                                    <div class="mb-4 lg:mb-5 block">
                            <script>
        function initConfigurableSwatchOptions_48557() {
            return {
                ...initConfigurableOptions('48557', {"attributes":{"275":{"id":"275","code":"couleur","label":"Couleur","options":[{"id":"53","label":"Noir","products":["48556"]},{"id":"70","label":"Rose","products":["48554"]},{"id":"66","label":"Violet","products":["48555"]}],"position":"0"}},"template":"<%- data.price %>\u00a0\u20ac","currencyFormat":"%s\u00a0\u20ac","optionPrices":{"48556":{"baseOldPrice":{"amount":182.499999},"oldPrice":{"amount":219},"basePrice":{"amount":182.499999},"finalPrice":{"amount":219},"tierPrices":[],"msrpPrice":{"amount":0}},"48554":{"baseOldPrice":{"amount":182.499999},"oldPrice":{"amount":219},"basePrice":{"amount":182.499999},"finalPrice":{"amount":219},"tierPrices":[],"msrpPrice":{"amount":0}},"48555":{"baseOldPrice":{"amount":182.499999},"oldPrice":{"amount":219},"basePrice":{"amount":182.499999},"finalPrice":{"amount":219},"tierPrices":[],"msrpPrice":{"amount":0}}},"priceFormat":{"pattern":"%s\u00a0\u20ac","precision":2,"requiredPrecision":2,"decimalSymbol":",","groupSymbol":"\u202f","groupLength":3,"integerRequired":false},"prices":{"baseOldPrice":{"amount":182.499999},"oldPrice":{"amount":219},"basePrice":{"amount":182.499999},"finalPrice":{"amount":219}},"productId":"48557","chooseText":"Choisissez une option...","images":[],"index":{"48556":{"275":"53"},"48554":{"275":"70"},"48555":{"275":"66"}},"salable":[],"canDisplayShowOutOfStockStatus":false,"preSelectedGallery":[],"channel":"website","salesChannelCode":"espace_plaisir_fo","sku":{"48556":"WZ142SGZ","48554":"WZ142SG3","48555":"WZ142SGD"},"label_reload":"https:\/\/www.espaceplaisir.fr\/amasty_label\/ajax\/label\/","label_category":".product-image-container, .product-item-photo, .cdz-product-top","label_product":".fotorama__stage, #amasty-main-container","original_product_id":"48557","defaultValues":{"275":"70"}}),
                ...initSwatchOptions({"275":{"53":{"type":2,"value":"https:\/\/www.espaceplaisir.fr\/media\/catalog\/product\/8\/7\/87034-00.jpg?quality=80&fit=bounds&height=100&width=100","thumb":"https:\/\/www.espaceplaisir.fr\/media\/catalog\/product\/8\/7\/87034-00.jpg?quality=80&fit=bounds&height=90&width=110","label":"Noir"},"70":{"type":2,"value":"https:\/\/www.espaceplaisir.fr\/media\/catalog\/product\/w\/o\/womanizer-next-duo-pink-1.jpg?quality=80&fit=bounds&height=100&width=100","thumb":"https:\/\/www.espaceplaisir.fr\/media\/catalog\/product\/w\/o\/womanizer-next-duo-pink-1.jpg?quality=80&fit=bounds&height=90&width=110","label":"Rose"},"66":{"type":2,"value":"https:\/\/www.espaceplaisir.fr\/media\/catalog\/product\/w\/o\/womanizer-next-duo-purple-1.jpg?quality=80&fit=bounds&height=100&width=100","thumb":"https:\/\/www.espaceplaisir.fr\/media\/catalog\/product\/w\/o\/womanizer-next-duo-purple-1.jpg?quality=80&fit=bounds&height=90&width=110","label":"Violet"},"additional_data":"{\"swatch_input_type\":\"visual\",\"update_product_preview_image\":\"1\",\"use_product_image_for_swatch\":\"1\"}"}}),
                mediaCallback: "https\u003A\u002F\u002Fwww.espaceplaisir.fr\u002Fswatches\u002Fajax\u002Fmedia\u002F",
                changeOption(optionId, value, skipUpdateGallery) {
                    this.selectedValues[optionId] = value;
                    this.findSimpleIndex();
                    this.findAllowedAttributeOptions();
                    this.updatePrices();
                    !skipUpdateGallery && this.updateGallery();

                    const detail = {
                        productId: this.productId,
                        optionId: optionId,
                        value: value,
                        productIndex: this.productIndex,
                        selectedValues: this.selectedValues,
                        candidates: this.findProductIdsForPartialSelection(this.selectedValues),
                        variationSku: this.optionConfig.sku[this.productIndex]
                    };

                    this.$root.dispatchEvent(new CustomEvent('configurable-selection-changed', { detail, bubbles: true }));
                    this.$root.dispatchEvent(new CustomEvent(`configurable-selection-changed-${this.productId}`, { detail, bubbles: true }));
                },
                updateGallery() {
                    if (!this.productIndex) {
                        return;
                    }

                    fetch(`${this.mediaCallback}?product_id=${this.productIndex}&isAjax=true`, {
                            method: 'GET',
                            headers: {
                                'Content-Type': 'application/json',
                                'X-Requested-With': 'XMLHttpRequest'
                            }
                        }
                    ).then(response => {
                            return response.json()
                        }
                    ).then(data => {
                        if (data.errors) {
                            // non critical failure only console logged
                            console.warn(data.errors);
                        } else {
                            const image = data && data.medium;

                            image && this.$root.dispatchEvent(
                                new CustomEvent(
                                    "update-gallery-48557",
                                    {detail: image, bubbles: true}
                                )
                            );
                        }
                    }).catch(error => {
                        console.warn(error)
                    });
                },
                preselectQuerystringItems() {
                    // pre-select option like ?size=167
                    const urlQueryParams = new URLSearchParams(window.location.search.replace('?', ''));
                    Object.values(this.optionConfig.attributes).map(attribute => {
                        // Don't update images on load, since PLPs already set the main image to the selected options
                        const skipUpdateGallery = true;
                        urlQueryParams.get(attribute.code) &&
                        this.changeOption(attribute.id, urlQueryParams.get(attribute.code), skipUpdateGallery);
                    });
                }
            };
        }

    </script>

    <div x-data="initConfigurableSwatchOptions_48557()" x-init="findAllowedAttributeOptions();" x-intersect="showSwatches = true" @private-content-loaded.window="onGetCartData($event.detail.data)" class="relative">
        <div>
                            
                                <div class="swatch-attribute-options swatch-attribute mb-1  couleur">
                    <template x-if="showSwatches">
                        <div class="flex flex-wrap justify-center gap-1" role="radiogroup" x-data="{countOfOptions: Object.keys(optionConfig.attributes[275].options).length}">
                            <label class="sr-only" for="attributecouleur">
                                Couleur                            </label>
                            <template x-for="(item, index) in optionConfig.attributes[275].options" :key="item.id">
                                
<div :class="{    'opacity-0 absolute size-0 -z-1' : index &gt;= numberToShow,    'opacity-40 out-of-stock-swatch' : checkStatusOfItem(275, item.id)}">
    <template x-if="optionIsEnabled(275, item.id) &amp;&amp; optionIsActive(275, item.id)">
        <label @click="swatchImgListener(275, item.id)" :for="'attribute-option-48557-'+item.id" class="swatch-option flex justify-center relative border-2 border-transparent mb-0 font-normal" :data-sku="optionConfig.sku[productIndex]" :class="{                'size-8 rounded-btn border' : !isTextSwatch(275, item.id),                [getTypeSwatches(275, item.id)]: true,                '!border-pink text-pink selected active': selectedValues[275] === item.id &amp;&amp; !isTextSwatch(275, item.id),                'hover:border-optimo-darker': !isTextSwatch(275, item.id)            }" :style="getSwatchBackgroundStyle('275',item.id)" @mouseenter.self="activeTooltipItem = {                    attribute: '275',                    item: item.id                }; tooltipPositionElement = $event.target;" @mouseleave.self="activeTooltipItem = false;">
            <input :id="'attribute-option-48557-'+item.id" :value="item.id" name="super_attribute[275]" type="radio" class="-z-1 absolute opacity-0 h-0" @change="changeOption(275, $event.target.value)" x-model="selectedValues[275]" :required="getAllowedAttributeOptions(275)                .filter(option =&gt; selectedValues[option]).length === 0" :aria-label="getSwatchText(275, item.id)" aria-describedby="attribute-label-48557-275">
            <div x-html="getSwatchText(275, item.id)" class="swatch-option__text flex items-center justify-center min-w-10 h-5 border border-grey                        rounded py-0 px-2 whitespace-nowrap text-black hover:border-optimo-darker" :class="{                 'sr-only' : !isTextSwatch(275, item.id),                 'border-optimo border-1 selected text-pink': updateConfigurableOptions(selectedValues[275] === item.id)                 }"></div>
        </label>
    </template>

    <template x-if="optionIsEnabled(275, item.id) &amp;&amp; !optionIsActive(275, item.id)">
        <div class="swatch-option relative swatch-option border-2 border-transparent" :class="{                'size-4 rounded-btn': !isTextSwatch(275, item.id),                [getTypeSwatches(275, item.id)]: true,                'hidden': index &gt;= numberToShow,                'opacity-50 select-none border-container-darker': !isTextSwatch(275, item.id)            }" :style="getSwatchBackgroundStyle('275',item.id)">
            <div x-html="getSwatchText(275, item.id)" class="swatch-option__text whitespace-nowrap" :class="{                    'sr-only' : !isTextSwatch(275, item.id),                    'swatch-option__text flex items-center justify-center border rounded min-w-10 h-5 text-sm border-grey-light line-through' : isTextSwatch(275, item.id)                 }"></div>
            <svg class="absolute inset-0 w-full h-full text-grey-light bg-white bg-opacity-25">
                <line x1="0" y1="100%" x2="100%" y2="0" class="stroke-current stroke-1"></line>
            </svg>
        </div>
    </template>
</div>
                            </template>
                            <template x-if="numberToShow &lt; countOfOptions">
                                <a href="https://www.espaceplaisir.fr/womanizer-next-duo.html" title="Plus" class="flex items-center w-6 h-6 rounded-full bg-grey-lighter">
                                    <svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewbox="0 0 24 24" class="size-4 ml-2 bg-1 rounded-big" width="16" height="16" aria-hidden="true"><path d="m16.1836 12.9933-4.608-.1266-5.5476-.16h-.7197c-.4898 0-.9896 0-1.4894-.0534-.2799-.0333-.4998-.2066-.6697-.3466-.2099-.1667-.2-.4267.04-.58.17-.1067.3998-.26.6697-.2734 3.3386-.16 6.8571-.3066 10.7454-.4533l2.8088.0667h.1999c.7197 0 1.4594 0 2.1791.08.4098.0466.7297.3.9896.5066.3099.2467.2899.6334-.06.8534-.2499.16-.5797.38-.9796.4-.0899 0-.1699.0066-.2599.0133-.6797.0267-1.3794.0467-2.0691.08h-1.2295v-.0067Z"></path><path d="m12.9933 7.8163-.1266 4.6081-.16 5.5476v.7197c0 .4898 0 .9896-.0534 1.4894-.0333.2799-.2066.4998-.3466.6697-.1667.2099-.4267.1999-.58-.04-.1067-.1699-.26-.3998-.2734-.6697-.16-3.3386-.3066-6.8571-.4533-10.7454l.0667-2.8088v-.2c0-.7196 0-1.4593.08-2.179.0466-.4098.3-.7297.5066-.9896.2467-.3098.6334-.2899.8534.06.16.2499.38.5797.4.9796 0 .09.0066.1699.0133.2599.0267.6797.0467 1.3794.08 2.069V7.8164h-.0067Z"></path></svg>
                                </a>
                            </template>
                        </div>
                    </template>
                </div>
                    </div>
                    <template x-if="isTooltipVisible()">
    <div @resize.window="activeTooltipItem = false">
        <div class="absolute shadow-box2" :style="getTooltipPosition()">
            <div x-ref="content" class="absolute top-0 left-0 z-10 min-w-20 p-2 -mt-6 text-sm leading-tight text-black                    transform -translate-x-1/3 -translate-y-full bg-white border border-grey-light text-center">
                <template x-if="isVisualSwatch(activeTooltipItem.attribute, activeTooltipItem.item)">
                    <div class="inline-block" :style="getTooltipImageStyle(activeTooltipItem.attribute, activeTooltipItem.item)"></div>
                </template>
                <span class="mx-2 text-lg font-semibold whitespace-nowrap" x-html="getTooltipLabel()"></span>
            </div>
        </div>
        <div class="absolute flex pointer-events-none" :style="getTooltipArrowPosition()">
            <svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" viewbox="0 0 256 256" width="16" height="16" aria-hidden="true">
  <path fill="#999" d="M254.307 69.55a9.806 9.806 0 0 0-2.88-6.956c-3.84-3.84-10.069-3.84-13.907 0l-109.663 109.66-109.66-109.66c-3.842-3.84-10.069-3.84-13.91 0-3.839 3.842-3.839 10.069 0 13.91l116.615 116.615c3.838 3.841 10.068 3.841 13.907 0L251.424 76.504a9.797 9.797 0 0 0 2.883-6.955z"></path>
</svg>
        </div>
    </div>
</template>
            </div>
                    </div>
                                    <div class="product__actions flex gap-2">
                    <button x-ref="submit" class="btn btn-tertiary text-sm px-1 truncate w-full min-w-auto transition-all block" aria-label="Ajouter au panier Womanizer Next Duo 3D stimulateur clitoris et point G">
                <span class="text-addtocart hidden lg:block">
                    Ajouter au panier                </span>
                <span class="icons-addtocart flex gap-2 justify-center items-center lg:hidden">
                    <svg xmlns="http://www.w3.org/2000/svg" id="Calque_2" fill="currentColor" viewbox="0 0 18 18" width="17" height="17" aria-hidden="true"><g id="SYSTEM_2"><g id="Editor_2"><g id="icon_add_2"><path d="m13.19,10.49l-4.61-.19c-1.85-.08-3.7-.16-5.55-.24-.24,0-.48,0-.72,0-.49,0-.99,0-1.49-.08-.28-.05-.5-.31-.67-.52-.21-.25-.2-.64.04-.87.17-.16.4-.39.67-.41,3.34-.24,6.86-.46,10.75-.68l2.81.1h.2c.72,0,1.46,0,2.18.12.41.07.73.45.99.76.31.37.29.95-.06,1.28-.25.24-.58.57-.98.6-.09,0-.17.01-.26.02-.68.04-1.38.07-2.07.12h-.57c-.26,0-.46,0-.66,0Z"></path><path d="m10.49,4.81l-.19,4.61c-.08,1.85-.16,3.7-.24,5.55,0,.24,0,.48,0,.72,0,.49,0,.99-.08,1.49-.05.28-.31.5-.52.67-.25.21-.64.2-.87-.04-.16-.17-.39-.4-.41-.67-.24-3.34-.46-6.86-.68-10.75l.1-2.81v-.2c0-.72,0-1.46.12-2.18.07-.41.45-.73.76-.99.37-.31.95-.29,1.28.06.24.25.57.58.6.98,0,.09.01.17.02.26.04.68.07,1.38.12,2.07v.57c0,.26,0,.46,0,.66Z"></path></g></g></g></svg>
                    <svg xmlns="http://www.w3.org/2000/svg" id="Calque_2" fill="currentColor" viewbox="0 0 15 20" width="18" height="19" aria-hidden="true"><g id="BUSINESS_2"><g id="Finance_Payment_2"><g id="icon_cart_2"><path d="m4.48,3.1c.07-.93.58-1.82,1.36-2.39C6.61.14,7.64-.11,8.6.04c1.17.16,2.19.93,2.65,1.93.25.48.31,1.08.29,1.55l-.02,1.4v.73c0,.49,0,1-.04,1.5-.02.29-.13.5-.21.68-.1.21-.26.2-.36-.04-.07-.17-.16-.4-.17-.67-.02-.84-.05-1.7-.07-2.56-.01-.43-.03-.86-.04-1.3-.02-.38-.14-.75-.34-1.08-.41-.66-1.17-1.11-1.99-1.15-.82-.05-1.66.31-2.14.96-.25.3-.4.66-.46,1.03-.02.09-.02.19-.03.28v.35s-.02.71-.02.71v.2c0,.72,0,1.47-.05,2.2-.03.41-.18.74-.31,1-.15.31-.39.29-.52-.06-.1-.25-.23-.59-.25-.99,0-.09,0-.18,0-.26-.02-.69-.03-1.39-.05-2.09v-.57c0-.27-.01-.44.01-.7Z"></path><path d="m.23,17.58c.27-2,.51-4.02.74-6.04l.77-6.05.14-1.13c.05-.43.31-.7.7-.75.19-.02.43,0,.61,0h.34s1.35.01,1.35.01l2.71.02,5.61.04c.19,0,.33.05.46.13.15.11.2.24.26.4.05.18.05.36.08.54l.04.34.17,1.3.26,1.91c.17,1.29.36,2.62.49,3.92.08.75.03,1.33,0,1.81-.05.57-.24.55-.44-.06-.14-.43-.33-1.02-.43-1.72-.19-1.28-.38-2.58-.59-3.94-.1-.68-.2-1.38-.31-2.1-.05-.36-.11-.73-.16-1.1l-.05-.3c0-.08-.08-.08-.14-.07-1.52.02-3.18.04-4.94.07-.91.01-1.84.02-2.8.03-.48,0-.96.01-1.45.02-.23,0-.57,0-.52,0-.04,0-.07.02-.06.07-.13,1.2-.27,2.53-.43,3.94-.17,1.49-.33,3.08-.48,4.68l-.38,3.12-.21,1.56-.03.23v.02s0,.02.01.02h.02s.23,0,.23,0h.58s.51,0,.51,0c1.83,0,3.74,0,5.58.06,1.05.04,1.87.23,2.54.38.79.19.74.48-.15.65-.63.12-1.5.29-2.51.3-.22,0-.44,0-.65,0-1.75.02-3.54.04-5.32.06H.88c-.19,0-.35-.06-.47-.13-.09-.05-.19-.14-.27-.25-.07-.11-.09-.16-.12-.29-.05-.1,0-.26,0-.4.01-.14.04-.28.06-.42.05-.32.09-.62.13-.92Z"></path></g></g></g></svg>
                </span>
            </button>
                <div>
            
    <button x-data="initWishlist()" x-on:click.prevent="toggleWishlist" aria-label="Ajouter &agrave; la liste de souhaits" type="button" class="wishlist-btn text-black p-3 hover:bg-pink-dark rounded-btn" :class="isInWishlist() ? '!bg-pink-dark lg:!bg-pink-light' : 'bg-pink-light'" x-on:class="{ 'pointer-events-none': loading }">
        <span x-cloak x-show="!isInWishlist()">
            <svg class="size-6 text-optimo-darker" :class="{ '!hidden': loading }" aria-hidden="true">
                <use href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/i4-sprite.svg#ico-wishlist"></use>
            </svg>
        </span>
        <span x-cloak x-show="isInWishlist()">
            <svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewbox="0 0 24 24" class="size-6 text-optimo-darker" width="24" height="24" aria-hidden="true" :class="{ '!hidden': loading }"><path fill="#FF5C6E" d="M12.113 5.598c.03-.07.02-.06.09-.19.09-.18.19-.36.33-.54.5-.72 1.249-1.269 2.058-1.519.939-.29 1.688-.13 2.228.07.64.28.49.44-.19.43-.49.02-1.139.15-1.808.42-.44.18-.85.45-1.18.799-.16.18-.309.37-.429.59-.06.14-.11.17-.19.41-.06.25-.17.4-.2.739-.2 1.509-.49 1.429-.639 1.549-.14.06-.35.04-.42 0-.3-.11-.51-.66-.55-1.08-.04-.28-.11-.48-.159-.729-.05-.25-.12-.46-.22-.62-.1-.2-.23-.37-.35-.54-.27-.339-.609-.619-.979-.829-.749-.43-1.678-.51-2.567-.3C5.159 4.589 4 6.528 4.33 8.447c.2 1.968 1.409 3.797 2.757 5.516 1.39 1.709 2.978 3.348 4.636 4.977.37.37.2.2.24.25.04-.04-.12.12.25-.23.52-.49 1.01-1 1.509-1.5a49.169 49.169 0 0 0 2.827-3.137l.37-.47c1.269-1.689 2.478-3.598 2.697-5.556.12-1.1.02-1.979-.24-2.708-.16-.42-.23-.66-.11-.72.1-.05.41.07.78.53.52.62 1.08 1.789.93 3.168-.02.3-.06.59-.13.859-.5 2.278-1.809 4.147-3.118 5.856l-.04.06c-.35.45-.72.87-1.089 1.3-.53.589-.95 1.058-1.379 1.498-.41.43-.829.85-1.249 1.27l-.639.619-.34.33c-.21.18-.41.44-.63.55-.419.219-.928.04-1.298-.44l-.7-.71-1.228-1.28c-1.619-1.728-3.218-3.497-4.516-5.575-.77-1.24-1.41-2.639-1.569-4.167-.08-.74-.09-1.55.15-2.319.22-.77.63-1.479 1.189-2.058.55-.57 1.279-1 2.058-1.19a5.22 5.22 0 0 1 2.328-.07c.78.17 1.509.56 2.088 1.11.29.27.53.59.75.929.06.08.09.17.14.26l.05.1.05.14.04.1c.04.11.07.17.07.17s.06-.09.149-.32v.01Z"></path><path fill="#FF5C6E" stroke="#FF5C6E" d="M16 3.502c-2.4 0-3.667 3-4 4.5-.5-2.167-2.4-6-6-4-4.5 2.5-1.5 7.5 0 9.5 1.2 1.6 4.5 5.333 6 7 1.666-1.834 5.5-6.3 7.5-9.5 2.5-4-.5-7.5-3.5-7.5Z"></path></svg>
        </span>
        <span x-cloak x-show="loading">
            <svg class="animate-spin text-optimo-darker size-6" aria-hidden="true">
                <use href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/i4-sprite.svg#ico-loader"></use>
            </svg>
        </span>
        <span class="hidden">
            Mes Favoris        </span>
    </button>
        </div>
    </div>

            </div>
                                </div>
    </form>

                        </div>
                                            <div class="p-slider__item rounded-xs p-2.5 flex shrink-0 w-[calc(100%/1.5)] bg-white md:max-w-[25%] js_slide lg:max-w-none lg:w-[calc(100%/5-30px/5)]">
                            
    <form x-data="initPriceBox()" @update-prices-48519="updatePrice($event.detail);" @update-gallery-48519="$refs.gallery &amp;&amp; ($refs.gallery.src = $event.detail)" x-i4-ajax-cart action="https://www.espaceplaisir.fr/checkout/cart/add/uenc/aHR0cHM6Ly93d3cuZXNwYWNlcGxhaXNpci5mci8_Z2FkX2NhbXBhaWduaWQ9MjI5OTE4NjI0NzgmZ2FkX3NvdXJjZT0x/product/48519/" method="post" data-id="48519" data-sku="CONF-WVI-SCP2A" data-type="configurable" class="product-item relative w-full flex flex-col group gap-2.5 lg:gap-6">
        <input name="form_key" type="hidden" value="fsxyRUOcfsyIBu2o">        <input type="hidden" name="product" value="48519">

        
        <a class="product__link relative hover:text-black" href="https://www.espaceplaisir.fr/we-vibe-chorus-pro.html">
            <img class="w-full object-contain text-transparent" x-ref="gallery" src="https://www.espaceplaisir.fr/media/catalog/product/w/e/we-vibe-chorus-pro-satin-black-1.jpg?quality=80&amp;fit=bounds&amp;height=480&amp;width=480" loading="lazy" width="480" height="480" alt="" title="">
            
                                <div class="label-container absolute inset-0 grid grid-flow-col grid-cols-3 grid-rows-3">
        
            <div class="relative group/item" style="width:72px; height:72px; margin: 0 0 0 -8px; font-size: 14px; color: #000000;grid-area:3/3">
        <div class="whitespace-nowrap absolute left-1/2 top-1/2 -translate-y-1/2 -translate-x-1/2">
            </div>
            <img class="w-full h-full" src="https://www.espaceplaisir.fr/media/amasty/amlabel/0526_macaron_bundlePLP_V3_1.png" loading="lazy" title="Womanizer Mini Offert Macaron " alt="Womanizer Mini Offert Macaron ">
    
    
            </div>
        </div>
                    </a>
        <div class="relative text-center flex flex-col text-sm items-center h-full product-info-block product-info-block__container">
            <div class="text-sm text-center line-clamp-1 leading-6 mb-2 min-h-6 product-info-block">
                We-Vibe            </div>
            <p class="product__name text-sm font-bold mb-2 min-h-8 leading-5 font-Averta">
                <a class="product__link text-center line-clamp-2 font-bold product-info-block" href="https://www.espaceplaisir.fr/we-vibe-chorus-pro.html">
                    Stimulateur pour couple connect&eacute; We-Vibe Chorus Pro                </a>
            </p>
            <div class="review min-h-5 w-full flex flex-col items-center">
                
<div class="r-stars">
    <div class="r-stars__box">
        <i class="r-stars__empty"></i>
        <i class="r-stars__full" style="width:86%"></i>
    </div>
    <span class="text-sm leading-none">(46)</span>
</div>
            </div>
            <div class="text-grey-dark">
                <div class="price-box price-final_price" data-role="priceBox" data-product-id="48516" data-price-box="product-id-48516">

<div class="normal-final-price           simple-product">
    <span class="special-price">
        
<span class="price-container            price-final_price tax weee">
            <span class="price-label">
            Prix sp&eacute;cial        </span>
        <span id="product-price-48516" data-price-amount="209" data-price-type="finalPrice" class="price-wrapper">
        <span class="price">209,00&nbsp;&euro;</span>    </span>
                <meta content="209">
        <meta content="EUR">
    </span>
    </span>
    <span class="final-price-box">
        
<span class="price-container            price-final_price tax weee">
            <span class="price-label">
            Prix normal        </span>
        <span id="old-price-48516" data-price-amount="209" data-price-type="oldPrice" class="price-wrapper">
        <span class="price">209,00&nbsp;&euro;</span>    </span>
                <meta content="209">
        <meta content="EUR">
    </span>
    </span>
</div>

</div>            </div>
            <div class="w-full min-h-[2rem] lg:block mt-auto">
                                    <div class="mb-4 lg:mb-5 block">
                            <script>
        function initConfigurableSwatchOptions_48519() {
            return {
                ...initConfigurableOptions('48519', {"attributes":{"275":{"id":"275","code":"couleur","label":"Couleur","options":[{"id":"53","label":"Noir","products":["48516"]},{"id":"70","label":"Rose","products":["48518"]},{"id":"66","label":"Violet","products":["48517"]}],"position":"0"}},"template":"<%- data.price %>\u00a0\u20ac","currencyFormat":"%s\u00a0\u20ac","optionPrices":{"48516":{"baseOldPrice":{"amount":174.16666566667},"oldPrice":{"amount":209},"basePrice":{"amount":174.16666566667},"finalPrice":{"amount":209},"tierPrices":[],"msrpPrice":{"amount":0}},"48518":{"baseOldPrice":{"amount":174.16666566667},"oldPrice":{"amount":209},"basePrice":{"amount":174.16666566667},"finalPrice":{"amount":209},"tierPrices":[],"msrpPrice":{"amount":0}},"48517":{"baseOldPrice":{"amount":174.16666566667},"oldPrice":{"amount":209},"basePrice":{"amount":174.16666566667},"finalPrice":{"amount":209},"tierPrices":[],"msrpPrice":{"amount":0}}},"priceFormat":{"pattern":"%s\u00a0\u20ac","precision":2,"requiredPrecision":2,"decimalSymbol":",","groupSymbol":"\u202f","groupLength":3,"integerRequired":false},"prices":{"baseOldPrice":{"amount":174.16666566667},"oldPrice":{"amount":209},"basePrice":{"amount":174.16666566667},"finalPrice":{"amount":209}},"productId":"48519","chooseText":"Choisissez une option...","images":[],"index":{"48516":{"275":"53"},"48518":{"275":"70"},"48517":{"275":"66"}},"salable":[],"canDisplayShowOutOfStockStatus":false,"preSelectedGallery":[],"channel":"website","salesChannelCode":"espace_plaisir_fo","sku":{"48516":"SNSP1SG9","48518":"SNSP1SG3","48517":"SNSP1SG5"},"label_reload":"https:\/\/www.espaceplaisir.fr\/amasty_label\/ajax\/label\/","label_category":".product-image-container, .product-item-photo, .cdz-product-top","label_product":".fotorama__stage, #amasty-main-container","original_product_id":"48519","defaultValues":{"275":"53"}}),
                ...initSwatchOptions({"275":{"53":{"type":2,"value":"https:\/\/www.espaceplaisir.fr\/media\/catalog\/product\/w\/e\/we-vibe-chorus-pro-satin-black-1.jpg?quality=80&fit=bounds&height=100&width=100","thumb":"https:\/\/www.espaceplaisir.fr\/media\/catalog\/product\/w\/e\/we-vibe-chorus-pro-satin-black-1.jpg?quality=80&fit=bounds&height=90&width=110","label":"Noir"},"70":{"type":2,"value":"https:\/\/www.espaceplaisir.fr\/media\/catalog\/product\/w\/e\/we-vibe-chorus-pro-electric-pink-1.jpg?quality=80&fit=bounds&height=100&width=100","thumb":"https:\/\/www.espaceplaisir.fr\/media\/catalog\/product\/w\/e\/we-vibe-chorus-pro-electric-pink-1.jpg?quality=80&fit=bounds&height=90&width=110","label":"Rose"},"66":{"type":2,"value":"https:\/\/www.espaceplaisir.fr\/media\/catalog\/product\/w\/e\/we-vibe-chorus-pro-vibrant-future-dusk-1.jpg?quality=80&fit=bounds&height=100&width=100","thumb":"https:\/\/www.espaceplaisir.fr\/media\/catalog\/product\/w\/e\/we-vibe-chorus-pro-vibrant-future-dusk-1.jpg?quality=80&fit=bounds&height=90&width=110","label":"Violet"},"additional_data":"{\"swatch_input_type\":\"visual\",\"update_product_preview_image\":\"1\",\"use_product_image_for_swatch\":\"1\"}"}}),
                mediaCallback: "https\u003A\u002F\u002Fwww.espaceplaisir.fr\u002Fswatches\u002Fajax\u002Fmedia\u002F",
                changeOption(optionId, value, skipUpdateGallery) {
                    this.selectedValues[optionId] = value;
                    this.findSimpleIndex();
                    this.findAllowedAttributeOptions();
                    this.updatePrices();
                    !skipUpdateGallery && this.updateGallery();

                    const detail = {
                        productId: this.productId,
                        optionId: optionId,
                        value: value,
                        productIndex: this.productIndex,
                        selectedValues: this.selectedValues,
                        candidates: this.findProductIdsForPartialSelection(this.selectedValues),
                        variationSku: this.optionConfig.sku[this.productIndex]
                    };

                    this.$root.dispatchEvent(new CustomEvent('configurable-selection-changed', { detail, bubbles: true }));
                    this.$root.dispatchEvent(new CustomEvent(`configurable-selection-changed-${this.productId}`, { detail, bubbles: true }));
                },
                updateGallery() {
                    if (!this.productIndex) {
                        return;
                    }

                    fetch(`${this.mediaCallback}?product_id=${this.productIndex}&isAjax=true`, {
                            method: 'GET',
                            headers: {
                                'Content-Type': 'application/json',
                                'X-Requested-With': 'XMLHttpRequest'
                            }
                        }
                    ).then(response => {
                            return response.json()
                        }
                    ).then(data => {
                        if (data.errors) {
                            // non critical failure only console logged
                            console.warn(data.errors);
                        } else {
                            const image = data && data.medium;

                            image && this.$root.dispatchEvent(
                                new CustomEvent(
                                    "update-gallery-48519",
                                    {detail: image, bubbles: true}
                                )
                            );
                        }
                    }).catch(error => {
                        console.warn(error)
                    });
                },
                preselectQuerystringItems() {
                    // pre-select option like ?size=167
                    const urlQueryParams = new URLSearchParams(window.location.search.replace('?', ''));
                    Object.values(this.optionConfig.attributes).map(attribute => {
                        // Don't update images on load, since PLPs already set the main image to the selected options
                        const skipUpdateGallery = true;
                        urlQueryParams.get(attribute.code) &&
                        this.changeOption(attribute.id, urlQueryParams.get(attribute.code), skipUpdateGallery);
                    });
                }
            };
        }

    </script>

    <div x-data="initConfigurableSwatchOptions_48519()" x-init="findAllowedAttributeOptions();" x-intersect="showSwatches = true" @private-content-loaded.window="onGetCartData($event.detail.data)" class="relative">
        <div>
                            
                                <div class="swatch-attribute-options swatch-attribute mb-1  couleur">
                    <template x-if="showSwatches">
                        <div class="flex flex-wrap justify-center gap-1" role="radiogroup" x-data="{countOfOptions: Object.keys(optionConfig.attributes[275].options).length}">
                            <label class="sr-only" for="attributecouleur">
                                Couleur                            </label>
                            <template x-for="(item, index) in optionConfig.attributes[275].options" :key="item.id">
                                
<div :class="{    'opacity-0 absolute size-0 -z-1' : index &gt;= numberToShow,    'opacity-40 out-of-stock-swatch' : checkStatusOfItem(275, item.id)}">
    <template x-if="optionIsEnabled(275, item.id) &amp;&amp; optionIsActive(275, item.id)">
        <label @click="swatchImgListener(275, item.id)" :for="'attribute-option-48519-'+item.id" class="swatch-option flex justify-center relative border-2 border-transparent mb-0 font-normal" :data-sku="optionConfig.sku[productIndex]" :class="{                'size-8 rounded-btn border' : !isTextSwatch(275, item.id),                [getTypeSwatches(275, item.id)]: true,                '!border-pink text-pink selected active': selectedValues[275] === item.id &amp;&amp; !isTextSwatch(275, item.id),                'hover:border-optimo-darker': !isTextSwatch(275, item.id)            }" :style="getSwatchBackgroundStyle('275',item.id)" @mouseenter.self="activeTooltipItem = {                    attribute: '275',                    item: item.id                }; tooltipPositionElement = $event.target;" @mouseleave.self="activeTooltipItem = false;">
            <input :id="'attribute-option-48519-'+item.id" :value="item.id" name="super_attribute[275]" type="radio" class="-z-1 absolute opacity-0 h-0" @change="changeOption(275, $event.target.value)" x-model="selectedValues[275]" :required="getAllowedAttributeOptions(275)                .filter(option =&gt; selectedValues[option]).length === 0" :aria-label="getSwatchText(275, item.id)" aria-describedby="attribute-label-48519-275">
            <div x-html="getSwatchText(275, item.id)" class="swatch-option__text flex items-center justify-center min-w-10 h-5 border border-grey                        rounded py-0 px-2 whitespace-nowrap text-black hover:border-optimo-darker" :class="{                 'sr-only' : !isTextSwatch(275, item.id),                 'border-optimo border-1 selected text-pink': updateConfigurableOptions(selectedValues[275] === item.id)                 }"></div>
        </label>
    </template>

    <template x-if="optionIsEnabled(275, item.id) &amp;&amp; !optionIsActive(275, item.id)">
        <div class="swatch-option relative swatch-option border-2 border-transparent" :class="{                'size-4 rounded-btn': !isTextSwatch(275, item.id),                [getTypeSwatches(275, item.id)]: true,                'hidden': index &gt;= numberToShow,                'opacity-50 select-none border-container-darker': !isTextSwatch(275, item.id)            }" :style="getSwatchBackgroundStyle('275',item.id)">
            <div x-html="getSwatchText(275, item.id)" class="swatch-option__text whitespace-nowrap" :class="{                    'sr-only' : !isTextSwatch(275, item.id),                    'swatch-option__text flex items-center justify-center border rounded min-w-10 h-5 text-sm border-grey-light line-through' : isTextSwatch(275, item.id)                 }"></div>
            <svg class="absolute inset-0 w-full h-full text-grey-light bg-white bg-opacity-25">
                <line x1="0" y1="100%" x2="100%" y2="0" class="stroke-current stroke-1"></line>
            </svg>
        </div>
    </template>
</div>
                            </template>
                            <template x-if="numberToShow &lt; countOfOptions">
                                <a href="https://www.espaceplaisir.fr/we-vibe-chorus-pro.html" title="Plus" class="flex items-center w-6 h-6 rounded-full bg-grey-lighter">
                                    <svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewbox="0 0 24 24" class="size-4 ml-2 bg-1 rounded-big" width="16" height="16" aria-hidden="true"><path d="m16.1836 12.9933-4.608-.1266-5.5476-.16h-.7197c-.4898 0-.9896 0-1.4894-.0534-.2799-.0333-.4998-.2066-.6697-.3466-.2099-.1667-.2-.4267.04-.58.17-.1067.3998-.26.6697-.2734 3.3386-.16 6.8571-.3066 10.7454-.4533l2.8088.0667h.1999c.7197 0 1.4594 0 2.1791.08.4098.0466.7297.3.9896.5066.3099.2467.2899.6334-.06.8534-.2499.16-.5797.38-.9796.4-.0899 0-.1699.0066-.2599.0133-.6797.0267-1.3794.0467-2.0691.08h-1.2295v-.0067Z"></path><path d="m12.9933 7.8163-.1266 4.6081-.16 5.5476v.7197c0 .4898 0 .9896-.0534 1.4894-.0333.2799-.2066.4998-.3466.6697-.1667.2099-.4267.1999-.58-.04-.1067-.1699-.26-.3998-.2734-.6697-.16-3.3386-.3066-6.8571-.4533-10.7454l.0667-2.8088v-.2c0-.7196 0-1.4593.08-2.179.0466-.4098.3-.7297.5066-.9896.2467-.3098.6334-.2899.8534.06.16.2499.38.5797.4.9796 0 .09.0066.1699.0133.2599.0267.6797.0467 1.3794.08 2.069V7.8164h-.0067Z"></path></svg>
                                </a>
                            </template>
                        </div>
                    </template>
                </div>
                    </div>
                    <template x-if="isTooltipVisible()">
    <div @resize.window="activeTooltipItem = false">
        <div class="absolute shadow-box2" :style="getTooltipPosition()">
            <div x-ref="content" class="absolute top-0 left-0 z-10 min-w-20 p-2 -mt-6 text-sm leading-tight text-black                    transform -translate-x-1/3 -translate-y-full bg-white border border-grey-light text-center">
                <template x-if="isVisualSwatch(activeTooltipItem.attribute, activeTooltipItem.item)">
                    <div class="inline-block" :style="getTooltipImageStyle(activeTooltipItem.attribute, activeTooltipItem.item)"></div>
                </template>
                <span class="mx-2 text-lg font-semibold whitespace-nowrap" x-html="getTooltipLabel()"></span>
            </div>
        </div>
        <div class="absolute flex pointer-events-none" :style="getTooltipArrowPosition()">
            <svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" viewbox="0 0 256 256" width="16" height="16" aria-hidden="true">
  <path fill="#999" d="M254.307 69.55a9.806 9.806 0 0 0-2.88-6.956c-3.84-3.84-10.069-3.84-13.907 0l-109.663 109.66-109.66-109.66c-3.842-3.84-10.069-3.84-13.91 0-3.839 3.842-3.839 10.069 0 13.91l116.615 116.615c3.838 3.841 10.068 3.841 13.907 0L251.424 76.504a9.797 9.797 0 0 0 2.883-6.955z"></path>
</svg>
        </div>
    </div>
</template>
            </div>
                    </div>
                                    <div class="product__actions flex gap-2">
                    <button x-ref="submit" class="btn btn-tertiary text-sm px-1 truncate w-full min-w-auto transition-all block" aria-label="Ajouter au panier Stimulateur pour couple connect&eacute; We-Vibe Chorus Pro">
                <span class="text-addtocart hidden lg:block">
                    Ajouter au panier                </span>
                <span class="icons-addtocart flex gap-2 justify-center items-center lg:hidden">
                    <svg xmlns="http://www.w3.org/2000/svg" id="Calque_2" fill="currentColor" viewbox="0 0 18 18" width="17" height="17" aria-hidden="true"><g id="SYSTEM_9"><g id="Editor_9"><g id="icon_add_9"><path d="m13.19,10.49l-4.61-.19c-1.85-.08-3.7-.16-5.55-.24-.24,0-.48,0-.72,0-.49,0-.99,0-1.49-.08-.28-.05-.5-.31-.67-.52-.21-.25-.2-.64.04-.87.17-.16.4-.39.67-.41,3.34-.24,6.86-.46,10.75-.68l2.81.1h.2c.72,0,1.46,0,2.18.12.41.07.73.45.99.76.31.37.29.95-.06,1.28-.25.24-.58.57-.98.6-.09,0-.17.01-.26.02-.68.04-1.38.07-2.07.12h-.57c-.26,0-.46,0-.66,0Z"></path><path d="m10.49,4.81l-.19,4.61c-.08,1.85-.16,3.7-.24,5.55,0,.24,0,.48,0,.72,0,.49,0,.99-.08,1.49-.05.28-.31.5-.52.67-.25.21-.64.2-.87-.04-.16-.17-.39-.4-.41-.67-.24-3.34-.46-6.86-.68-10.75l.1-2.81v-.2c0-.72,0-1.46.12-2.18.07-.41.45-.73.76-.99.37-.31.95-.29,1.28.06.24.25.57.58.6.98,0,.09.01.17.02.26.04.68.07,1.38.12,2.07v.57c0,.26,0,.46,0,.66Z"></path></g></g></g></svg>
                    <svg xmlns="http://www.w3.org/2000/svg" id="Calque_2" fill="currentColor" viewbox="0 0 15 20" width="18" height="19" aria-hidden="true"><g id="BUSINESS_9"><g id="Finance_Payment_9"><g id="icon_cart_9"><path d="m4.48,3.1c.07-.93.58-1.82,1.36-2.39C6.61.14,7.64-.11,8.6.04c1.17.16,2.19.93,2.65,1.93.25.48.31,1.08.29,1.55l-.02,1.4v.73c0,.49,0,1-.04,1.5-.02.29-.13.5-.21.68-.1.21-.26.2-.36-.04-.07-.17-.16-.4-.17-.67-.02-.84-.05-1.7-.07-2.56-.01-.43-.03-.86-.04-1.3-.02-.38-.14-.75-.34-1.08-.41-.66-1.17-1.11-1.99-1.15-.82-.05-1.66.31-2.14.96-.25.3-.4.66-.46,1.03-.02.09-.02.19-.03.28v.35s-.02.71-.02.71v.2c0,.72,0,1.47-.05,2.2-.03.41-.18.74-.31,1-.15.31-.39.29-.52-.06-.1-.25-.23-.59-.25-.99,0-.09,0-.18,0-.26-.02-.69-.03-1.39-.05-2.09v-.57c0-.27-.01-.44.01-.7Z"></path><path d="m.23,17.58c.27-2,.51-4.02.74-6.04l.77-6.05.14-1.13c.05-.43.31-.7.7-.75.19-.02.43,0,.61,0h.34s1.35.01,1.35.01l2.71.02,5.61.04c.19,0,.33.05.46.13.15.11.2.24.26.4.05.18.05.36.08.54l.04.34.17,1.3.26,1.91c.17,1.29.36,2.62.49,3.92.08.75.03,1.33,0,1.81-.05.57-.24.55-.44-.06-.14-.43-.33-1.02-.43-1.72-.19-1.28-.38-2.58-.59-3.94-.1-.68-.2-1.38-.31-2.1-.05-.36-.11-.73-.16-1.1l-.05-.3c0-.08-.08-.08-.14-.07-1.52.02-3.18.04-4.94.07-.91.01-1.84.02-2.8.03-.48,0-.96.01-1.45.02-.23,0-.57,0-.52,0-.04,0-.07.02-.06.07-.13,1.2-.27,2.53-.43,3.94-.17,1.49-.33,3.08-.48,4.68l-.38,3.12-.21,1.56-.03.23v.02s0,.02.01.02h.02s.23,0,.23,0h.58s.51,0,.51,0c1.83,0,3.74,0,5.58.06,1.05.04,1.87.23,2.54.38.79.19.74.48-.15.65-.63.12-1.5.29-2.51.3-.22,0-.44,0-.65,0-1.75.02-3.54.04-5.32.06H.88c-.19,0-.35-.06-.47-.13-.09-.05-.19-.14-.27-.25-.07-.11-.09-.16-.12-.29-.05-.1,0-.26,0-.4.01-.14.04-.28.06-.42.05-.32.09-.62.13-.92Z"></path></g></g></g></svg>
                </span>
            </button>
                <div>
            
    <button x-data="initWishlist()" x-on:click.prevent="toggleWishlist" aria-label="Ajouter &agrave; la liste de souhaits" type="button" class="wishlist-btn text-black p-3 hover:bg-pink-dark rounded-btn" :class="isInWishlist() ? '!bg-pink-dark lg:!bg-pink-light' : 'bg-pink-light'" x-on:class="{ 'pointer-events-none': loading }">
        <span x-cloak x-show="!isInWishlist()">
            <svg class="size-6 text-optimo-darker" :class="{ '!hidden': loading }" aria-hidden="true">
                <use href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/i4-sprite.svg#ico-wishlist"></use>
            </svg>
        </span>
        <span x-cloak x-show="isInWishlist()">
            <svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewbox="0 0 24 24" class="size-6 text-optimo-darker" width="24" height="24" aria-hidden="true" :class="{ '!hidden': loading }"><path fill="#FF5C6E" d="M12.113 5.598c.03-.07.02-.06.09-.19.09-.18.19-.36.33-.54.5-.72 1.249-1.269 2.058-1.519.939-.29 1.688-.13 2.228.07.64.28.49.44-.19.43-.49.02-1.139.15-1.808.42-.44.18-.85.45-1.18.799-.16.18-.309.37-.429.59-.06.14-.11.17-.19.41-.06.25-.17.4-.2.739-.2 1.509-.49 1.429-.639 1.549-.14.06-.35.04-.42 0-.3-.11-.51-.66-.55-1.08-.04-.28-.11-.48-.159-.729-.05-.25-.12-.46-.22-.62-.1-.2-.23-.37-.35-.54-.27-.339-.609-.619-.979-.829-.749-.43-1.678-.51-2.567-.3C5.159 4.589 4 6.528 4.33 8.447c.2 1.968 1.409 3.797 2.757 5.516 1.39 1.709 2.978 3.348 4.636 4.977.37.37.2.2.24.25.04-.04-.12.12.25-.23.52-.49 1.01-1 1.509-1.5a49.169 49.169 0 0 0 2.827-3.137l.37-.47c1.269-1.689 2.478-3.598 2.697-5.556.12-1.1.02-1.979-.24-2.708-.16-.42-.23-.66-.11-.72.1-.05.41.07.78.53.52.62 1.08 1.789.93 3.168-.02.3-.06.59-.13.859-.5 2.278-1.809 4.147-3.118 5.856l-.04.06c-.35.45-.72.87-1.089 1.3-.53.589-.95 1.058-1.379 1.498-.41.43-.829.85-1.249 1.27l-.639.619-.34.33c-.21.18-.41.44-.63.55-.419.219-.928.04-1.298-.44l-.7-.71-1.228-1.28c-1.619-1.728-3.218-3.497-4.516-5.575-.77-1.24-1.41-2.639-1.569-4.167-.08-.74-.09-1.55.15-2.319.22-.77.63-1.479 1.189-2.058.55-.57 1.279-1 2.058-1.19a5.22 5.22 0 0 1 2.328-.07c.78.17 1.509.56 2.088 1.11.29.27.53.59.75.929.06.08.09.17.14.26l.05.1.05.14.04.1c.04.11.07.17.07.17s.06-.09.149-.32v.01Z"></path><path fill="#FF5C6E" stroke="#FF5C6E" d="M16 3.502c-2.4 0-3.667 3-4 4.5-.5-2.167-2.4-6-6-4-4.5 2.5-1.5 7.5 0 9.5 1.2 1.6 4.5 5.333 6 7 1.666-1.834 5.5-6.3 7.5-9.5 2.5-4-.5-7.5-3.5-7.5Z"></path></svg>
        </span>
        <span x-cloak x-show="loading">
            <svg class="animate-spin text-optimo-darker size-6" aria-hidden="true">
                <use href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/i4-sprite.svg#ico-loader"></use>
            </svg>
        </span>
        <span class="hidden">
            Mes Favoris        </span>
    </button>
        </div>
    </div>

            </div>
                                </div>
    </form>

                        </div>
                                            <div class="p-slider__item rounded-xs p-2.5 flex shrink-0 w-[calc(100%/1.5)] bg-white md:max-w-[25%] js_slide lg:max-w-none lg:w-[calc(100%/5-30px/5)]">
                            
    <form x-data="initPriceBox()" @update-prices-48456="updatePrice($event.detail);" @update-gallery-48456="$refs.gallery &amp;&amp; ($refs.gallery.src = $event.detail)" x-i4-ajax-cart action="https://www.espaceplaisir.fr/checkout/cart/add/uenc/aHR0cHM6Ly93d3cuZXNwYWNlcGxhaXNpci5mci8~/product/48456/" method="post" data-id="48456" data-sku="CONF-48456" data-type="configurable" class="product-item relative w-full flex flex-col group gap-2.5 lg:gap-6">
        <input name="form_key" type="hidden" value="EybImqf0XA2KAfGn">        <input type="hidden" name="product" value="48456">

        
        <a class="product__link relative hover:text-black" href="https://www.espaceplaisir.fr/we-vibe-temp.html">
            <img class="w-full object-contain text-transparent" x-ref="gallery" src="https://www.espaceplaisir.fr/media/catalog/product/w/v/wvi_temp_tangerine_product_1.jpg?quality=80&amp;fit=bounds&amp;height=480&amp;width=480" loading="lazy" width="480" height="480" alt="" title="">
            
                                <div class="label-container absolute inset-0 grid grid-flow-col grid-cols-3 grid-rows-3">
        
            <div class="relative group/item" style="width:72px; height:72px; margin: 0 0 0 -8px; font-size: 14px; color: #000000;grid-area:3/3">
        <div class="whitespace-nowrap absolute left-1/2 top-1/2 -translate-y-1/2 -translate-x-1/2">
            </div>
            <img class="w-full h-full" src="https://www.espaceplaisir.fr/media/amasty/amlabel/0526_macaron_bundlePLP_V3_1.png" loading="lazy" title="Womanizer Mini Offert Macaron " alt="Womanizer Mini Offert Macaron ">
    
    
            </div>
        </div>
                    </a>
        <div class="relative text-center flex flex-col text-sm items-center h-full product-info-block product-info-block__container">
            <div class="text-sm text-center line-clamp-1 leading-6 mb-2 min-h-6 product-info-block">
                We-Vibe            </div>
            <p class="product__name text-sm font-bold mb-2 min-h-8 leading-5 font-Averta">
                <a class="product__link text-center line-clamp-2 font-bold product-info-block" href="https://www.espaceplaisir.fr/we-vibe-temp.html">
                    Stimulateur chaud-froid We-Vibe Temp                </a>
            </p>
            <div class="review min-h-5 w-full flex flex-col items-center">
                
<div class="r-stars">
    <div class="r-stars__box">
        <i class="r-stars__empty"></i>
        <i class="r-stars__full" style="width:90%"></i>
    </div>
    <span class="text-sm leading-none">(38)</span>
</div>
            </div>
            <div class="text-grey-dark">
                <div class="price-box price-final_price" data-role="priceBox" data-product-id="48453" data-price-box="product-id-48453">

<div class="normal-final-price           simple-product">
    <span class="special-price">
        
<span class="price-container            price-final_price tax weee">
            <span class="price-label">
            Prix sp&eacute;cial        </span>
        <span id="product-price-48453" data-price-amount="99" data-price-type="finalPrice" class="price-wrapper">
        <span class="price">99,00&nbsp;&euro;</span>    </span>
                <meta content="99">
        <meta content="EUR">
    </span>
    </span>
    <span class="final-price-box">
        
<span class="price-container            price-final_price tax weee">
            <span class="price-label">
            Prix normal        </span>
        <span id="old-price-48453" data-price-amount="99" data-price-type="oldPrice" class="price-wrapper">
        <span class="price">99,00&nbsp;&euro;</span>    </span>
                <meta content="99">
        <meta content="EUR">
    </span>
    </span>
</div>

</div>            </div>
            <div class="w-full min-h-[2rem] lg:block mt-auto">
                                    <div class="mb-4 lg:mb-5 block">
                            <script>
        function initConfigurableSwatchOptions_48456() {
            return {
                ...initConfigurableOptions('48456', {"attributes":{"275":{"id":"275","code":"couleur","label":"Couleur","options":[{"id":"45","label":"Bleu","products":["48454"]},{"id":"58","label":"Orange","products":["48453"]}],"position":"0"}},"template":"<%- data.price %>\u00a0\u20ac","currencyFormat":"%s\u00a0\u20ac","optionPrices":{"48454":{"baseOldPrice":{"amount":82.499999},"oldPrice":{"amount":99},"basePrice":{"amount":82.499999},"finalPrice":{"amount":99},"tierPrices":[],"msrpPrice":{"amount":0}},"48453":{"baseOldPrice":{"amount":82.499999},"oldPrice":{"amount":99},"basePrice":{"amount":82.499999},"finalPrice":{"amount":99},"tierPrices":[],"msrpPrice":{"amount":0}}},"priceFormat":{"pattern":"%s\u00a0\u20ac","precision":2,"requiredPrecision":2,"decimalSymbol":",","groupSymbol":"\u202f","groupLength":3,"integerRequired":false},"prices":{"baseOldPrice":{"amount":82.499999},"oldPrice":{"amount":99},"basePrice":{"amount":82.499999},"finalPrice":{"amount":99}},"productId":"48456","chooseText":"Choisissez une option...","images":[],"index":{"48454":{"275":"45"},"48453":{"275":"58"}},"salable":[],"canDisplayShowOutOfStockStatus":false,"preSelectedGallery":[],"channel":"website","salesChannelCode":"espace_plaisir_fo","sku":{"48454":"SNHS1SGE","48453":"SNHS1SGA"},"label_reload":"https:\/\/www.espaceplaisir.fr\/amasty_label\/ajax\/label\/","label_category":".product-image-container, .product-item-photo, .cdz-product-top","label_product":".fotorama__stage, #amasty-main-container","original_product_id":"48456","defaultValues":{"275":"58"}}),
                ...initSwatchOptions({"275":{"45":{"type":2,"value":"https:\/\/www.espaceplaisir.fr\/media\/catalog\/product\/w\/v\/wvi_temp_blue_product_1.jpg?quality=80&fit=bounds&height=100&width=100","thumb":"https:\/\/www.espaceplaisir.fr\/media\/catalog\/product\/w\/v\/wvi_temp_blue_product_1.jpg?quality=80&fit=bounds&height=90&width=110","label":"Bleu"},"58":{"type":2,"value":"https:\/\/www.espaceplaisir.fr\/media\/catalog\/product\/w\/v\/wvi_temp_tangerine_product_1.jpg?quality=80&fit=bounds&height=100&width=100","thumb":"https:\/\/www.espaceplaisir.fr\/media\/catalog\/product\/w\/v\/wvi_temp_tangerine_product_1.jpg?quality=80&fit=bounds&height=90&width=110","label":"Orange"},"additional_data":"{\"swatch_input_type\":\"visual\",\"update_product_preview_image\":\"1\",\"use_product_image_for_swatch\":\"1\"}"}}),
                mediaCallback: "https\u003A\u002F\u002Fwww.espaceplaisir.fr\u002Fswatches\u002Fajax\u002Fmedia\u002F",
                changeOption(optionId, value, skipUpdateGallery) {
                    this.selectedValues[optionId] = value;
                    this.findSimpleIndex();
                    this.findAllowedAttributeOptions();
                    this.updatePrices();
                    !skipUpdateGallery && this.updateGallery();

                    const detail = {
                        productId: this.productId,
                        optionId: optionId,
                        value: value,
                        productIndex: this.productIndex,
                        selectedValues: this.selectedValues,
                        candidates: this.findProductIdsForPartialSelection(this.selectedValues),
                        variationSku: this.optionConfig.sku[this.productIndex]
                    };

                    this.$root.dispatchEvent(new CustomEvent('configurable-selection-changed', { detail, bubbles: true }));
                    this.$root.dispatchEvent(new CustomEvent(`configurable-selection-changed-${this.productId}`, { detail, bubbles: true }));
                },
                updateGallery() {
                    if (!this.productIndex) {
                        return;
                    }

                    fetch(`${this.mediaCallback}?product_id=${this.productIndex}&isAjax=true`, {
                            method: 'GET',
                            headers: {
                                'Content-Type': 'application/json',
                                'X-Requested-With': 'XMLHttpRequest'
                            }
                        }
                    ).then(response => {
                            return response.json()
                        }
                    ).then(data => {
                        if (data.errors) {
                            // non critical failure only console logged
                            console.warn(data.errors);
                        } else {
                            const image = data && data.medium;

                            image && this.$root.dispatchEvent(
                                new CustomEvent(
                                    "update-gallery-48456",
                                    {detail: image, bubbles: true}
                                )
                            );
                        }
                    }).catch(error => {
                        console.warn(error)
                    });
                },
                preselectQuerystringItems() {
                    // pre-select option like ?size=167
                    const urlQueryParams = new URLSearchParams(window.location.search.replace('?', ''));
                    Object.values(this.optionConfig.attributes).map(attribute => {
                        // Don't update images on load, since PLPs already set the main image to the selected options
                        const skipUpdateGallery = true;
                        urlQueryParams.get(attribute.code) &&
                        this.changeOption(attribute.id, urlQueryParams.get(attribute.code), skipUpdateGallery);
                    });
                }
            };
        }

    </script>

    <div x-data="initConfigurableSwatchOptions_48456()" x-init="findAllowedAttributeOptions();" x-intersect="showSwatches = true" @private-content-loaded.window="onGetCartData($event.detail.data)" class="relative">
        <div>
                            
                                <div class="swatch-attribute-options swatch-attribute mb-1  couleur">
                    <template x-if="showSwatches">
                        <div class="flex flex-wrap justify-center gap-1" role="radiogroup" x-data="{countOfOptions: Object.keys(optionConfig.attributes[275].options).length}">
                            <label class="sr-only" for="attributecouleur">
                                Couleur                            </label>
                            <template x-for="(item, index) in optionConfig.attributes[275].options" :key="item.id">
                                
<div :class="{    'opacity-0 absolute size-0 -z-1' : index &gt;= numberToShow,    'opacity-40 out-of-stock-swatch' : checkStatusOfItem(275, item.id)}">
    <template x-if="optionIsEnabled(275, item.id) &amp;&amp; optionIsActive(275, item.id)">
        <label @click="swatchImgListener(275, item.id)" :for="'attribute-option-48456-'+item.id" class="swatch-option flex justify-center relative border-2 border-transparent mb-0 font-normal" :data-sku="optionConfig.sku[productIndex]" :class="{                'size-8 rounded-btn border' : !isTextSwatch(275, item.id),                [getTypeSwatches(275, item.id)]: true,                '!border-pink text-pink selected active': selectedValues[275] === item.id &amp;&amp; !isTextSwatch(275, item.id),                'hover:border-optimo-darker': !isTextSwatch(275, item.id)            }" :style="getSwatchBackgroundStyle('275',item.id)" @mouseenter.self="activeTooltipItem = {                    attribute: '275',                    item: item.id                }; tooltipPositionElement = $event.target;" @mouseleave.self="activeTooltipItem = false;">
            <input :id="'attribute-option-48456-'+item.id" :value="item.id" name="super_attribute[275]" type="radio" class="-z-1 absolute opacity-0 h-0" @change="changeOption(275, $event.target.value)" x-model="selectedValues[275]" :required="getAllowedAttributeOptions(275)                .filter(option =&gt; selectedValues[option]).length === 0" :aria-label="getSwatchText(275, item.id)" aria-describedby="attribute-label-48456-275">
            <div x-html="getSwatchText(275, item.id)" class="swatch-option__text flex items-center justify-center min-w-10 h-5 border border-grey                        rounded py-0 px-2 whitespace-nowrap text-black hover:border-optimo-darker" :class="{                 'sr-only' : !isTextSwatch(275, item.id),                 'border-optimo border-1 selected text-pink': updateConfigurableOptions(selectedValues[275] === item.id)                 }"></div>
        </label>
    </template>

    <template x-if="optionIsEnabled(275, item.id) &amp;&amp; !optionIsActive(275, item.id)">
        <div class="swatch-option relative swatch-option border-2 border-transparent" :class="{                'size-4 rounded-btn': !isTextSwatch(275, item.id),                [getTypeSwatches(275, item.id)]: true,                'hidden': index &gt;= numberToShow,                'opacity-50 select-none border-container-darker': !isTextSwatch(275, item.id)            }" :style="getSwatchBackgroundStyle('275',item.id)">
            <div x-html="getSwatchText(275, item.id)" class="swatch-option__text whitespace-nowrap" :class="{                    'sr-only' : !isTextSwatch(275, item.id),                    'swatch-option__text flex items-center justify-center border rounded min-w-10 h-5 text-sm border-grey-light line-through' : isTextSwatch(275, item.id)                 }"></div>
            <svg class="absolute inset-0 w-full h-full text-grey-light bg-white bg-opacity-25">
                <line x1="0" y1="100%" x2="100%" y2="0" class="stroke-current stroke-1"></line>
            </svg>
        </div>
    </template>
</div>
                            </template>
                            <template x-if="numberToShow &lt; countOfOptions">
                                <a href="https://www.espaceplaisir.fr/we-vibe-temp.html" title="Plus" class="flex items-center w-6 h-6 rounded-full bg-grey-lighter">
                                    <svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewbox="0 0 24 24" class="size-4 ml-2 bg-1 rounded-big" width="16" height="16" aria-hidden="true"><path d="m16.1836 12.9933-4.608-.1266-5.5476-.16h-.7197c-.4898 0-.9896 0-1.4894-.0534-.2799-.0333-.4998-.2066-.6697-.3466-.2099-.1667-.2-.4267.04-.58.17-.1067.3998-.26.6697-.2734 3.3386-.16 6.8571-.3066 10.7454-.4533l2.8088.0667h.1999c.7197 0 1.4594 0 2.1791.08.4098.0466.7297.3.9896.5066.3099.2467.2899.6334-.06.8534-.2499.16-.5797.38-.9796.4-.0899 0-.1699.0066-.2599.0133-.6797.0267-1.3794.0467-2.0691.08h-1.2295v-.0067Z"></path><path d="m12.9933 7.8163-.1266 4.6081-.16 5.5476v.7197c0 .4898 0 .9896-.0534 1.4894-.0333.2799-.2066.4998-.3466.6697-.1667.2099-.4267.1999-.58-.04-.1067-.1699-.26-.3998-.2734-.6697-.16-3.3386-.3066-6.8571-.4533-10.7454l.0667-2.8088v-.2c0-.7196 0-1.4593.08-2.179.0466-.4098.3-.7297.5066-.9896.2467-.3098.6334-.2899.8534.06.16.2499.38.5797.4.9796 0 .09.0066.1699.0133.2599.0267.6797.0467 1.3794.08 2.069V7.8164h-.0067Z"></path></svg>
                                </a>
                            </template>
                        </div>
                    </template>
                </div>
                    </div>
                    <template x-if="isTooltipVisible()">
    <div @resize.window="activeTooltipItem = false">
        <div class="absolute shadow-box2" :style="getTooltipPosition()">
            <div x-ref="content" class="absolute top-0 left-0 z-10 min-w-20 p-2 -mt-6 text-sm leading-tight text-black                    transform -translate-x-1/3 -translate-y-full bg-white border border-grey-light text-center">
                <template x-if="isVisualSwatch(activeTooltipItem.attribute, activeTooltipItem.item)">
                    <div class="inline-block" :style="getTooltipImageStyle(activeTooltipItem.attribute, activeTooltipItem.item)"></div>
                </template>
                <span class="mx-2 text-lg font-semibold whitespace-nowrap" x-html="getTooltipLabel()"></span>
            </div>
        </div>
        <div class="absolute flex pointer-events-none" :style="getTooltipArrowPosition()">
            <svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" viewbox="0 0 256 256" width="16" height="16" aria-hidden="true">
  <path fill="#999" d="M254.307 69.55a9.806 9.806 0 0 0-2.88-6.956c-3.84-3.84-10.069-3.84-13.907 0l-109.663 109.66-109.66-109.66c-3.842-3.84-10.069-3.84-13.91 0-3.839 3.842-3.839 10.069 0 13.91l116.615 116.615c3.838 3.841 10.068 3.841 13.907 0L251.424 76.504a9.797 9.797 0 0 0 2.883-6.955z"></path>
</svg>
        </div>
    </div>
</template>
            </div>
                    </div>
                                    <div class="product__actions flex gap-2">
                    <button x-ref="submit" class="btn btn-tertiary text-sm px-1 truncate w-full min-w-auto transition-all block" aria-label="Ajouter au panier Stimulateur chaud-froid We-Vibe Temp">
                <span class="text-addtocart hidden lg:block">
                    Ajouter au panier                </span>
                <span class="icons-addtocart flex gap-2 justify-center items-center lg:hidden">
                    <svg xmlns="http://www.w3.org/2000/svg" id="Calque_2" fill="currentColor" viewbox="0 0 18 18" width="17" height="17" aria-hidden="true"><g id="SYSTEM_2"><g id="Editor_2"><g id="icon_add_2"><path d="m13.19,10.49l-4.61-.19c-1.85-.08-3.7-.16-5.55-.24-.24,0-.48,0-.72,0-.49,0-.99,0-1.49-.08-.28-.05-.5-.31-.67-.52-.21-.25-.2-.64.04-.87.17-.16.4-.39.67-.41,3.34-.24,6.86-.46,10.75-.68l2.81.1h.2c.72,0,1.46,0,2.18.12.41.07.73.45.99.76.31.37.29.95-.06,1.28-.25.24-.58.57-.98.6-.09,0-.17.01-.26.02-.68.04-1.38.07-2.07.12h-.57c-.26,0-.46,0-.66,0Z"></path><path d="m10.49,4.81l-.19,4.61c-.08,1.85-.16,3.7-.24,5.55,0,.24,0,.48,0,.72,0,.49,0,.99-.08,1.49-.05.28-.31.5-.52.67-.25.21-.64.2-.87-.04-.16-.17-.39-.4-.41-.67-.24-3.34-.46-6.86-.68-10.75l.1-2.81v-.2c0-.72,0-1.46.12-2.18.07-.41.45-.73.76-.99.37-.31.95-.29,1.28.06.24.25.57.58.6.98,0,.09.01.17.02.26.04.68.07,1.38.12,2.07v.57c0,.26,0,.46,0,.66Z"></path></g></g></g></svg>
                    <svg xmlns="http://www.w3.org/2000/svg" id="Calque_2" fill="currentColor" viewbox="0 0 15 20" width="18" height="19" aria-hidden="true"><g id="BUSINESS_2"><g id="Finance_Payment_2"><g id="icon_cart_2"><path d="m4.48,3.1c.07-.93.58-1.82,1.36-2.39C6.61.14,7.64-.11,8.6.04c1.17.16,2.19.93,2.65,1.93.25.48.31,1.08.29,1.55l-.02,1.4v.73c0,.49,0,1-.04,1.5-.02.29-.13.5-.21.68-.1.21-.26.2-.36-.04-.07-.17-.16-.4-.17-.67-.02-.84-.05-1.7-.07-2.56-.01-.43-.03-.86-.04-1.3-.02-.38-.14-.75-.34-1.08-.41-.66-1.17-1.11-1.99-1.15-.82-.05-1.66.31-2.14.96-.25.3-.4.66-.46,1.03-.02.09-.02.19-.03.28v.35s-.02.71-.02.71v.2c0,.72,0,1.47-.05,2.2-.03.41-.18.74-.31,1-.15.31-.39.29-.52-.06-.1-.25-.23-.59-.25-.99,0-.09,0-.18,0-.26-.02-.69-.03-1.39-.05-2.09v-.57c0-.27-.01-.44.01-.7Z"></path><path d="m.23,17.58c.27-2,.51-4.02.74-6.04l.77-6.05.14-1.13c.05-.43.31-.7.7-.75.19-.02.43,0,.61,0h.34s1.35.01,1.35.01l2.71.02,5.61.04c.19,0,.33.05.46.13.15.11.2.24.26.4.05.18.05.36.08.54l.04.34.17,1.3.26,1.91c.17,1.29.36,2.62.49,3.92.08.75.03,1.33,0,1.81-.05.57-.24.55-.44-.06-.14-.43-.33-1.02-.43-1.72-.19-1.28-.38-2.58-.59-3.94-.1-.68-.2-1.38-.31-2.1-.05-.36-.11-.73-.16-1.1l-.05-.3c0-.08-.08-.08-.14-.07-1.52.02-3.18.04-4.94.07-.91.01-1.84.02-2.8.03-.48,0-.96.01-1.45.02-.23,0-.57,0-.52,0-.04,0-.07.02-.06.07-.13,1.2-.27,2.53-.43,3.94-.17,1.49-.33,3.08-.48,4.68l-.38,3.12-.21,1.56-.03.23v.02s0,.02.01.02h.02s.23,0,.23,0h.58s.51,0,.51,0c1.83,0,3.74,0,5.58.06,1.05.04,1.87.23,2.54.38.79.19.74.48-.15.65-.63.12-1.5.29-2.51.3-.22,0-.44,0-.65,0-1.75.02-3.54.04-5.32.06H.88c-.19,0-.35-.06-.47-.13-.09-.05-.19-.14-.27-.25-.07-.11-.09-.16-.12-.29-.05-.1,0-.26,0-.4.01-.14.04-.28.06-.42.05-.32.09-.62.13-.92Z"></path></g></g></g></svg>
                </span>
            </button>
                <div>
            
    <button x-data="initWishlist()" x-on:click.prevent="toggleWishlist" aria-label="Ajouter &agrave; la liste de souhaits" type="button" class="wishlist-btn text-black p-3 hover:bg-pink-dark rounded-btn" :class="isInWishlist() ? '!bg-pink-dark lg:!bg-pink-light' : 'bg-pink-light'" x-on:class="{ 'pointer-events-none': loading }">
        <span x-cloak x-show="!isInWishlist()">
            <svg class="size-6 text-optimo-darker" :class="{ '!hidden': loading }" aria-hidden="true">
                <use href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/i4-sprite.svg#ico-wishlist"></use>
            </svg>
        </span>
        <span x-cloak x-show="isInWishlist()">
            <svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewbox="0 0 24 24" class="size-6 text-optimo-darker" width="24" height="24" aria-hidden="true" :class="{ '!hidden': loading }"><path fill="#FF5C6E" d="M12.113 5.598c.03-.07.02-.06.09-.19.09-.18.19-.36.33-.54.5-.72 1.249-1.269 2.058-1.519.939-.29 1.688-.13 2.228.07.64.28.49.44-.19.43-.49.02-1.139.15-1.808.42-.44.18-.85.45-1.18.799-.16.18-.309.37-.429.59-.06.14-.11.17-.19.41-.06.25-.17.4-.2.739-.2 1.509-.49 1.429-.639 1.549-.14.06-.35.04-.42 0-.3-.11-.51-.66-.55-1.08-.04-.28-.11-.48-.159-.729-.05-.25-.12-.46-.22-.62-.1-.2-.23-.37-.35-.54-.27-.339-.609-.619-.979-.829-.749-.43-1.678-.51-2.567-.3C5.159 4.589 4 6.528 4.33 8.447c.2 1.968 1.409 3.797 2.757 5.516 1.39 1.709 2.978 3.348 4.636 4.977.37.37.2.2.24.25.04-.04-.12.12.25-.23.52-.49 1.01-1 1.509-1.5a49.169 49.169 0 0 0 2.827-3.137l.37-.47c1.269-1.689 2.478-3.598 2.697-5.556.12-1.1.02-1.979-.24-2.708-.16-.42-.23-.66-.11-.72.1-.05.41.07.78.53.52.62 1.08 1.789.93 3.168-.02.3-.06.59-.13.859-.5 2.278-1.809 4.147-3.118 5.856l-.04.06c-.35.45-.72.87-1.089 1.3-.53.589-.95 1.058-1.379 1.498-.41.43-.829.85-1.249 1.27l-.639.619-.34.33c-.21.18-.41.44-.63.55-.419.219-.928.04-1.298-.44l-.7-.71-1.228-1.28c-1.619-1.728-3.218-3.497-4.516-5.575-.77-1.24-1.41-2.639-1.569-4.167-.08-.74-.09-1.55.15-2.319.22-.77.63-1.479 1.189-2.058.55-.57 1.279-1 2.058-1.19a5.22 5.22 0 0 1 2.328-.07c.78.17 1.509.56 2.088 1.11.29.27.53.59.75.929.06.08.09.17.14.26l.05.1.05.14.04.1c.04.11.07.17.07.17s.06-.09.149-.32v.01Z"></path><path fill="#FF5C6E" stroke="#FF5C6E" d="M16 3.502c-2.4 0-3.667 3-4 4.5-.5-2.167-2.4-6-6-4-4.5 2.5-1.5 7.5 0 9.5 1.2 1.6 4.5 5.333 6 7 1.666-1.834 5.5-6.3 7.5-9.5 2.5-4-.5-7.5-3.5-7.5Z"></path></svg>
        </span>
        <span x-cloak x-show="loading">
            <svg class="animate-spin text-optimo-darker size-6" aria-hidden="true">
                <use href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/i4-sprite.svg#ico-loader"></use>
            </svg>
        </span>
        <span class="hidden">
            Mes Favoris        </span>
    </button>
        </div>
    </div>

            </div>
                                </div>
    </form>

                        </div>
                                            <div class="p-slider__item rounded-xs p-2.5 flex shrink-0 w-[calc(100%/1.5)] bg-white md:max-w-[25%] js_slide lg:max-w-none lg:w-[calc(100%/5-30px/5)]">
                            
    <form x-data="{}" x-i4-ajax-cart action="https://www.espaceplaisir.fr/checkout/cart/add/uenc/aHR0cHM6Ly93d3cuZXNwYWNlcGxhaXNpci5mci8_a3drdW5pdj1QNEFENEI1N0M4MDUxMDAtY2NwNGFkNGI1N2M4MDUxYjEtWWpsaU0yTmpNakF0TkRneU1pMDBNekprTFdKa01qVXRaRE16T0dNM09HUm1OR1Zq/product/48379/" method="post" data-id="48379" data-sku="WZPC1SGA" data-type="simple" class="product-item relative w-full flex flex-col group gap-2.5 lg:gap-6">
        <input name="form_key" type="hidden" value="ndcnFYmyeLL4364H">        <input type="hidden" name="product" value="48379">

        
        <a class="product__link relative hover:text-black" href="https://www.espaceplaisir.fr/womanizer-besties-peach-toy.html">
            <img class="w-full object-contain text-transparent" x-ref="gallery" src="https://www.espaceplaisir.fr/media/catalog/product/8/7/87184---back-suction.jpg?quality=80&amp;fit=bounds&amp;height=480&amp;width=480" loading="lazy" width="480" height="480" alt="Womanizer Peach Toy stimulateur clitoridien" title="Womanizer Peach Toy stimulateur clitoridien">
            
                                <div class="label-container absolute inset-0 grid grid-flow-col grid-cols-3 grid-rows-3">
        
            <div class="relative group/item" style="border:2px solid #571dae; background-color:#571dae;padding-left:4px;padding-right:4px;padding-top:2px; padding-bottom:2px;text-align:center;font-weight:bold; border-radius:4px; width:fit-content;height:fit-content; font-size: 14px; color: #ffffff;grid-area:1/1">
        <div class="whitespace-nowrap">
        Mieux not&eacute;    </div>
    
    
            </div>
        </div>
                    </a>
        <div class="relative text-center flex flex-col text-sm items-center h-full product-info-block product-info-block__container">
            <div class="text-sm text-center line-clamp-1 leading-6 mb-2 min-h-6 product-info-block">
                Womanizer            </div>
            <p class="product__name text-sm font-bold mb-2 min-h-8 leading-5 font-Averta">
                <a class="product__link text-center line-clamp-2 font-bold product-info-block" href="https://www.espaceplaisir.fr/womanizer-besties-peach-toy.html">
                    Womanizer Peach Toy stimulateur clitoridien                </a>
            </p>
            <div class="review min-h-5 w-full flex flex-col items-center">
                
<div class="r-stars">
    <div class="r-stars__box">
        <i class="r-stars__empty"></i>
        <i class="r-stars__full" style="width:90%"></i>
    </div>
    <span class="text-sm leading-none">(48)</span>
</div>
            </div>
            <div class="text-grey-dark">
                <div class="price-box price-final_price" data-role="priceBox" data-product-id="48379" data-price-box="product-id-48379">

<div class="normal-final-price           simple-product">
    <span class="special-price">
        
<span class="price-container            price-final_price tax weee">
            <span class="price-label">
            Prix sp&eacute;cial        </span>
        <span id="product-price-48379" data-price-amount="49.9" data-price-type="finalPrice" class="price-wrapper">
        <span class="price">49,90&nbsp;&euro;</span>    </span>
                <meta content="49.9">
        <meta content="EUR">
    </span>
    </span>
    <span class="final-price-box">
        
<span class="price-container            price-final_price tax weee">
            <span class="price-label">
            Prix normal        </span>
        <span id="old-price-48379" data-price-amount="49.9" data-price-type="oldPrice" class="price-wrapper">
        <span class="price">49,90&nbsp;&euro;</span>    </span>
                <meta content="49.9">
        <meta content="EUR">
    </span>
    </span>
</div>

</div>            </div>
            <div class="w-full min-h-[2rem] lg:block mt-auto">
                                    <div class="mb-4 lg:mb-5 block">
                                            </div>
                                    <div class="product__actions flex gap-2">
                    <button x-ref="submit" class="btn btn-tertiary text-sm px-1 truncate w-full min-w-auto transition-all block" aria-label="Ajouter au panier Womanizer Peach Toy stimulateur clitoridien">
                <span class="text-addtocart hidden lg:block">
                    Ajouter au panier                </span>
                <span class="icons-addtocart flex gap-2 justify-center items-center lg:hidden">
                    <svg xmlns="http://www.w3.org/2000/svg" id="Calque_2" fill="currentColor" viewbox="0 0 18 18" width="17" height="17" aria-hidden="true"><g id="SYSTEM_4"><g id="Editor_4"><g id="icon_add_4"><path d="m13.19,10.49l-4.61-.19c-1.85-.08-3.7-.16-5.55-.24-.24,0-.48,0-.72,0-.49,0-.99,0-1.49-.08-.28-.05-.5-.31-.67-.52-.21-.25-.2-.64.04-.87.17-.16.4-.39.67-.41,3.34-.24,6.86-.46,10.75-.68l2.81.1h.2c.72,0,1.46,0,2.18.12.41.07.73.45.99.76.31.37.29.95-.06,1.28-.25.24-.58.57-.98.6-.09,0-.17.01-.26.02-.68.04-1.38.07-2.07.12h-.57c-.26,0-.46,0-.66,0Z"></path><path d="m10.49,4.81l-.19,4.61c-.08,1.85-.16,3.7-.24,5.55,0,.24,0,.48,0,.72,0,.49,0,.99-.08,1.49-.05.28-.31.5-.52.67-.25.21-.64.2-.87-.04-.16-.17-.39-.4-.41-.67-.24-3.34-.46-6.86-.68-10.75l.1-2.81v-.2c0-.72,0-1.46.12-2.18.07-.41.45-.73.76-.99.37-.31.95-.29,1.28.06.24.25.57.58.6.98,0,.09.01.17.02.26.04.68.07,1.38.12,2.07v.57c0,.26,0,.46,0,.66Z"></path></g></g></g></svg>
                    <svg xmlns="http://www.w3.org/2000/svg" id="Calque_2" fill="currentColor" viewbox="0 0 15 20" width="18" height="19" aria-hidden="true"><g id="BUSINESS_4"><g id="Finance_Payment_4"><g id="icon_cart_4"><path d="m4.48,3.1c.07-.93.58-1.82,1.36-2.39C6.61.14,7.64-.11,8.6.04c1.17.16,2.19.93,2.65,1.93.25.48.31,1.08.29,1.55l-.02,1.4v.73c0,.49,0,1-.04,1.5-.02.29-.13.5-.21.68-.1.21-.26.2-.36-.04-.07-.17-.16-.4-.17-.67-.02-.84-.05-1.7-.07-2.56-.01-.43-.03-.86-.04-1.3-.02-.38-.14-.75-.34-1.08-.41-.66-1.17-1.11-1.99-1.15-.82-.05-1.66.31-2.14.96-.25.3-.4.66-.46,1.03-.02.09-.02.19-.03.28v.35s-.02.71-.02.71v.2c0,.72,0,1.47-.05,2.2-.03.41-.18.74-.31,1-.15.31-.39.29-.52-.06-.1-.25-.23-.59-.25-.99,0-.09,0-.18,0-.26-.02-.69-.03-1.39-.05-2.09v-.57c0-.27-.01-.44.01-.7Z"></path><path d="m.23,17.58c.27-2,.51-4.02.74-6.04l.77-6.05.14-1.13c.05-.43.31-.7.7-.75.19-.02.43,0,.61,0h.34s1.35.01,1.35.01l2.71.02,5.61.04c.19,0,.33.05.46.13.15.11.2.24.26.4.05.18.05.36.08.54l.04.34.17,1.3.26,1.91c.17,1.29.36,2.62.49,3.92.08.75.03,1.33,0,1.81-.05.57-.24.55-.44-.06-.14-.43-.33-1.02-.43-1.72-.19-1.28-.38-2.58-.59-3.94-.1-.68-.2-1.38-.31-2.1-.05-.36-.11-.73-.16-1.1l-.05-.3c0-.08-.08-.08-.14-.07-1.52.02-3.18.04-4.94.07-.91.01-1.84.02-2.8.03-.48,0-.96.01-1.45.02-.23,0-.57,0-.52,0-.04,0-.07.02-.06.07-.13,1.2-.27,2.53-.43,3.94-.17,1.49-.33,3.08-.48,4.68l-.38,3.12-.21,1.56-.03.23v.02s0,.02.01.02h.02s.23,0,.23,0h.58s.51,0,.51,0c1.83,0,3.74,0,5.58.06,1.05.04,1.87.23,2.54.38.79.19.74.48-.15.65-.63.12-1.5.29-2.51.3-.22,0-.44,0-.65,0-1.75.02-3.54.04-5.32.06H.88c-.19,0-.35-.06-.47-.13-.09-.05-.19-.14-.27-.25-.07-.11-.09-.16-.12-.29-.05-.1,0-.26,0-.4.01-.14.04-.28.06-.42.05-.32.09-.62.13-.92Z"></path></g></g></g></svg>
                </span>
            </button>
                <div>
            
    <button x-data="initWishlist()" x-on:click.prevent="toggleWishlist" aria-label="Ajouter &agrave; la liste de souhaits" type="button" class="wishlist-btn text-black p-3 hover:bg-pink-dark rounded-btn" :class="isInWishlist() ? '!bg-pink-dark lg:!bg-pink-light' : 'bg-pink-light'" x-on:class="{ 'pointer-events-none': loading }">
        <span x-cloak x-show="!isInWishlist()">
            <svg class="size-6 text-optimo-darker" :class="{ '!hidden': loading }" aria-hidden="true">
                <use href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/i4-sprite.svg#ico-wishlist"></use>
            </svg>
        </span>
        <span x-cloak x-show="isInWishlist()">
            <svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewbox="0 0 24 24" class="size-6 text-optimo-darker" width="24" height="24" aria-hidden="true" :class="{ '!hidden': loading }"><path fill="#FF5C6E" d="M12.113 5.598c.03-.07.02-.06.09-.19.09-.18.19-.36.33-.54.5-.72 1.249-1.269 2.058-1.519.939-.29 1.688-.13 2.228.07.64.28.49.44-.19.43-.49.02-1.139.15-1.808.42-.44.18-.85.45-1.18.799-.16.18-.309.37-.429.59-.06.14-.11.17-.19.41-.06.25-.17.4-.2.739-.2 1.509-.49 1.429-.639 1.549-.14.06-.35.04-.42 0-.3-.11-.51-.66-.55-1.08-.04-.28-.11-.48-.159-.729-.05-.25-.12-.46-.22-.62-.1-.2-.23-.37-.35-.54-.27-.339-.609-.619-.979-.829-.749-.43-1.678-.51-2.567-.3C5.159 4.589 4 6.528 4.33 8.447c.2 1.968 1.409 3.797 2.757 5.516 1.39 1.709 2.978 3.348 4.636 4.977.37.37.2.2.24.25.04-.04-.12.12.25-.23.52-.49 1.01-1 1.509-1.5a49.169 49.169 0 0 0 2.827-3.137l.37-.47c1.269-1.689 2.478-3.598 2.697-5.556.12-1.1.02-1.979-.24-2.708-.16-.42-.23-.66-.11-.72.1-.05.41.07.78.53.52.62 1.08 1.789.93 3.168-.02.3-.06.59-.13.859-.5 2.278-1.809 4.147-3.118 5.856l-.04.06c-.35.45-.72.87-1.089 1.3-.53.589-.95 1.058-1.379 1.498-.41.43-.829.85-1.249 1.27l-.639.619-.34.33c-.21.18-.41.44-.63.55-.419.219-.928.04-1.298-.44l-.7-.71-1.228-1.28c-1.619-1.728-3.218-3.497-4.516-5.575-.77-1.24-1.41-2.639-1.569-4.167-.08-.74-.09-1.55.15-2.319.22-.77.63-1.479 1.189-2.058.55-.57 1.279-1 2.058-1.19a5.22 5.22 0 0 1 2.328-.07c.78.17 1.509.56 2.088 1.11.29.27.53.59.75.929.06.08.09.17.14.26l.05.1.05.14.04.1c.04.11.07.17.07.17s.06-.09.149-.32v.01Z"></path><path fill="#FF5C6E" stroke="#FF5C6E" d="M16 3.502c-2.4 0-3.667 3-4 4.5-.5-2.167-2.4-6-6-4-4.5 2.5-1.5 7.5 0 9.5 1.2 1.6 4.5 5.333 6 7 1.666-1.834 5.5-6.3 7.5-9.5 2.5-4-.5-7.5-3.5-7.5Z"></path></svg>
        </span>
        <span x-cloak x-show="loading">
            <svg class="animate-spin text-optimo-darker size-6" aria-hidden="true">
                <use href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/i4-sprite.svg#ico-loader"></use>
            </svg>
        </span>
        <span class="hidden">
            Mes Favoris        </span>
    </button>
        </div>
    </div>

            </div>
                                </div>
    </form>

                        </div>
                                            <div class="p-slider__item rounded-xs p-2.5 flex shrink-0 w-[calc(100%/1.5)] bg-white md:max-w-[25%] js_slide lg:max-w-none lg:w-[calc(100%/5-30px/5)]">
                            
    <form x-data="{}" x-i4-ajax-cart action="https://www.espaceplaisir.fr/checkout/cart/add/uenc/aHR0cHM6Ly93d3cuZXNwYWNlcGxhaXNpci5mci8~/product/48389/" method="post" data-id="48389" data-sku="RPPA1SGZ" data-type="simple" class="product-item relative w-full flex flex-col group gap-2.5 lg:gap-6">
        <input name="form_key" type="hidden" value="9eL2rVtwBZOcNZP5">        <input type="hidden" name="product" value="48389">

        
        <a class="product__link relative hover:text-black" href="https://www.espaceplaisir.fr/romp-spin.html">
            <img class="w-full object-contain text-transparent" x-ref="gallery" src="https://www.espaceplaisir.fr/media/catalog/product/_/r/_romp-spin-87136-default-1.jpg?quality=80&amp;fit=bounds&amp;height=480&amp;width=480" loading="lazy" width="480" height="480" alt="Stimulateur clitoridien ROMP Spin" title="Stimulateur clitoridien ROMP Spin">
                    <div class="group/item special-label text-right flex justify-end items-start absolute right-3 top-3">
        <div class="whitespace-nowrap w-max px-1 py-2 label-block rounded-lg text-sm">
            - 15%
        </div>
    </div>

                                <div class="label-container absolute inset-0 grid grid-flow-col grid-cols-3 grid-rows-3">
        
            <div class="relative group/item" style="border:2px solid #571dae; background-color:#571dae;padding-left:4px;padding-right:4px;padding-top:2px; padding-bottom:2px;text-align:center;font-weight:bold; border-radius:4px; width:fit-content;height:fit-content; font-size: 14px; color: #ffffff;grid-area:1/1">
        <div class="whitespace-nowrap">
        Mieux not&eacute;    </div>
    
    
            </div>
        </div>
                    </a>
        <div class="relative text-center flex flex-col text-sm items-center h-full product-info-block product-info-block__container">
            <div class="text-sm text-center line-clamp-1 leading-6 mb-2 min-h-6 product-info-block">
                ROMP by Womanizer            </div>
            <p class="product__name text-sm font-bold mb-2 min-h-8 leading-5 font-Averta">
                <a class="product__link text-center line-clamp-2 font-bold product-info-block" href="https://www.espaceplaisir.fr/romp-spin.html">
                    Stimulateur clitoridien ROMP Spin                </a>
            </p>
            <div class="review min-h-5 w-full flex flex-col items-center">
                
<div class="r-stars">
    <div class="r-stars__box">
        <i class="r-stars__empty"></i>
        <i class="r-stars__full" style="width:84%"></i>
    </div>
    <span class="text-sm leading-none">(12)</span>
</div>
            </div>
            <div class="text-grey-dark">
                <div class="price-box price-final_price" data-role="priceBox" data-product-id="48389" data-price-box="product-id-48389">

<div class="special-price-container special-price-exist           simple-product">
    <span class="special-price">
        
<span class="price-container            price-final_price tax weee">
            <span class="price-label">
            Prix sp&eacute;cial        </span>
        <span id="product-price-48389" data-price-amount="42.42" data-price-type="finalPrice" class="price-wrapper">
        <span class="price">42,42&nbsp;&euro;</span>    </span>
                <meta content="42.42">
        <meta content="EUR">
    </span>
    </span>
    <span class="final-price-box">
        
<span class="price-container            price-final_price tax weee">
            <span class="price-label">
            Prix normal        </span>
        <span id="old-price-48389" data-price-amount="49.9" data-price-type="oldPrice" class="price-wrapper">
        <span class="price">49,90&nbsp;&euro;</span>    </span>
                <meta content="49.9">
        <meta content="EUR">
    </span>
    </span>
</div>

</div>            </div>
            <div class="w-full min-h-[2rem] lg:block mt-auto">
                                    <div class="mb-4 lg:mb-5 block">
                                            </div>
                                    <div class="product__actions flex gap-2">
                    <button x-ref="submit" class="btn btn-tertiary text-sm px-1 truncate w-full min-w-auto transition-all block" aria-label="Ajouter au panier Stimulateur clitoridien ROMP Spin">
                <span class="text-addtocart hidden lg:block">
                    Ajouter au panier                </span>
                <span class="icons-addtocart flex gap-2 justify-center items-center lg:hidden">
                    <svg xmlns="http://www.w3.org/2000/svg" id="Calque_2" fill="currentColor" viewbox="0 0 18 18" width="17" height="17" aria-hidden="true"><g id="SYSTEM_4"><g id="Editor_4"><g id="icon_add_4"><path d="m13.19,10.49l-4.61-.19c-1.85-.08-3.7-.16-5.55-.24-.24,0-.48,0-.72,0-.49,0-.99,0-1.49-.08-.28-.05-.5-.31-.67-.52-.21-.25-.2-.64.04-.87.17-.16.4-.39.67-.41,3.34-.24,6.86-.46,10.75-.68l2.81.1h.2c.72,0,1.46,0,2.18.12.41.07.73.45.99.76.31.37.29.95-.06,1.28-.25.24-.58.57-.98.6-.09,0-.17.01-.26.02-.68.04-1.38.07-2.07.12h-.57c-.26,0-.46,0-.66,0Z"></path><path d="m10.49,4.81l-.19,4.61c-.08,1.85-.16,3.7-.24,5.55,0,.24,0,.48,0,.72,0,.49,0,.99-.08,1.49-.05.28-.31.5-.52.67-.25.21-.64.2-.87-.04-.16-.17-.39-.4-.41-.67-.24-3.34-.46-6.86-.68-10.75l.1-2.81v-.2c0-.72,0-1.46.12-2.18.07-.41.45-.73.76-.99.37-.31.95-.29,1.28.06.24.25.57.58.6.98,0,.09.01.17.02.26.04.68.07,1.38.12,2.07v.57c0,.26,0,.46,0,.66Z"></path></g></g></g></svg>
                    <svg xmlns="http://www.w3.org/2000/svg" id="Calque_2" fill="currentColor" viewbox="0 0 15 20" width="18" height="19" aria-hidden="true"><g id="BUSINESS_4"><g id="Finance_Payment_4"><g id="icon_cart_4"><path d="m4.48,3.1c.07-.93.58-1.82,1.36-2.39C6.61.14,7.64-.11,8.6.04c1.17.16,2.19.93,2.65,1.93.25.48.31,1.08.29,1.55l-.02,1.4v.73c0,.49,0,1-.04,1.5-.02.29-.13.5-.21.68-.1.21-.26.2-.36-.04-.07-.17-.16-.4-.17-.67-.02-.84-.05-1.7-.07-2.56-.01-.43-.03-.86-.04-1.3-.02-.38-.14-.75-.34-1.08-.41-.66-1.17-1.11-1.99-1.15-.82-.05-1.66.31-2.14.96-.25.3-.4.66-.46,1.03-.02.09-.02.19-.03.28v.35s-.02.71-.02.71v.2c0,.72,0,1.47-.05,2.2-.03.41-.18.74-.31,1-.15.31-.39.29-.52-.06-.1-.25-.23-.59-.25-.99,0-.09,0-.18,0-.26-.02-.69-.03-1.39-.05-2.09v-.57c0-.27-.01-.44.01-.7Z"></path><path d="m.23,17.58c.27-2,.51-4.02.74-6.04l.77-6.05.14-1.13c.05-.43.31-.7.7-.75.19-.02.43,0,.61,0h.34s1.35.01,1.35.01l2.71.02,5.61.04c.19,0,.33.05.46.13.15.11.2.24.26.4.05.18.05.36.08.54l.04.34.17,1.3.26,1.91c.17,1.29.36,2.62.49,3.92.08.75.03,1.33,0,1.81-.05.57-.24.55-.44-.06-.14-.43-.33-1.02-.43-1.72-.19-1.28-.38-2.58-.59-3.94-.1-.68-.2-1.38-.31-2.1-.05-.36-.11-.73-.16-1.1l-.05-.3c0-.08-.08-.08-.14-.07-1.52.02-3.18.04-4.94.07-.91.01-1.84.02-2.8.03-.48,0-.96.01-1.45.02-.23,0-.57,0-.52,0-.04,0-.07.02-.06.07-.13,1.2-.27,2.53-.43,3.94-.17,1.49-.33,3.08-.48,4.68l-.38,3.12-.21,1.56-.03.23v.02s0,.02.01.02h.02s.23,0,.23,0h.58s.51,0,.51,0c1.83,0,3.74,0,5.58.06,1.05.04,1.87.23,2.54.38.79.19.74.48-.15.65-.63.12-1.5.29-2.51.3-.22,0-.44,0-.65,0-1.75.02-3.54.04-5.32.06H.88c-.19,0-.35-.06-.47-.13-.09-.05-.19-.14-.27-.25-.07-.11-.09-.16-.12-.29-.05-.1,0-.26,0-.4.01-.14.04-.28.06-.42.05-.32.09-.62.13-.92Z"></path></g></g></g></svg>
                </span>
            </button>
                <div>
            
    <button x-data="initWishlist()" x-on:click.prevent="toggleWishlist" aria-label="Ajouter &agrave; la liste de souhaits" type="button" class="wishlist-btn text-black p-3 hover:bg-pink-dark rounded-btn" :class="isInWishlist() ? '!bg-pink-dark lg:!bg-pink-light' : 'bg-pink-light'" x-on:class="{ 'pointer-events-none': loading }">
        <span x-cloak x-show="!isInWishlist()">
            <svg class="size-6 text-optimo-darker" :class="{ '!hidden': loading }" aria-hidden="true">
                <use href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/i4-sprite.svg#ico-wishlist"></use>
            </svg>
        </span>
        <span x-cloak x-show="isInWishlist()">
            <svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewbox="0 0 24 24" class="size-6 text-optimo-darker" width="24" height="24" aria-hidden="true" :class="{ '!hidden': loading }"><path fill="#FF5C6E" d="M12.113 5.598c.03-.07.02-.06.09-.19.09-.18.19-.36.33-.54.5-.72 1.249-1.269 2.058-1.519.939-.29 1.688-.13 2.228.07.64.28.49.44-.19.43-.49.02-1.139.15-1.808.42-.44.18-.85.45-1.18.799-.16.18-.309.37-.429.59-.06.14-.11.17-.19.41-.06.25-.17.4-.2.739-.2 1.509-.49 1.429-.639 1.549-.14.06-.35.04-.42 0-.3-.11-.51-.66-.55-1.08-.04-.28-.11-.48-.159-.729-.05-.25-.12-.46-.22-.62-.1-.2-.23-.37-.35-.54-.27-.339-.609-.619-.979-.829-.749-.43-1.678-.51-2.567-.3C5.159 4.589 4 6.528 4.33 8.447c.2 1.968 1.409 3.797 2.757 5.516 1.39 1.709 2.978 3.348 4.636 4.977.37.37.2.2.24.25.04-.04-.12.12.25-.23.52-.49 1.01-1 1.509-1.5a49.169 49.169 0 0 0 2.827-3.137l.37-.47c1.269-1.689 2.478-3.598 2.697-5.556.12-1.1.02-1.979-.24-2.708-.16-.42-.23-.66-.11-.72.1-.05.41.07.78.53.52.62 1.08 1.789.93 3.168-.02.3-.06.59-.13.859-.5 2.278-1.809 4.147-3.118 5.856l-.04.06c-.35.45-.72.87-1.089 1.3-.53.589-.95 1.058-1.379 1.498-.41.43-.829.85-1.249 1.27l-.639.619-.34.33c-.21.18-.41.44-.63.55-.419.219-.928.04-1.298-.44l-.7-.71-1.228-1.28c-1.619-1.728-3.218-3.497-4.516-5.575-.77-1.24-1.41-2.639-1.569-4.167-.08-.74-.09-1.55.15-2.319.22-.77.63-1.479 1.189-2.058.55-.57 1.279-1 2.058-1.19a5.22 5.22 0 0 1 2.328-.07c.78.17 1.509.56 2.088 1.11.29.27.53.59.75.929.06.08.09.17.14.26l.05.1.05.14.04.1c.04.11.07.17.07.17s.06-.09.149-.32v.01Z"></path><path fill="#FF5C6E" stroke="#FF5C6E" d="M16 3.502c-2.4 0-3.667 3-4 4.5-.5-2.167-2.4-6-6-4-4.5 2.5-1.5 7.5 0 9.5 1.2 1.6 4.5 5.333 6 7 1.666-1.834 5.5-6.3 7.5-9.5 2.5-4-.5-7.5-3.5-7.5Z"></path></svg>
        </span>
        <span x-cloak x-show="loading">
            <svg class="animate-spin text-optimo-darker size-6" aria-hidden="true">
                <use href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/i4-sprite.svg#ico-loader"></use>
            </svg>
        </span>
        <span class="hidden">
            Mes Favoris        </span>
    </button>
        </div>
    </div>

            </div>
                                </div>
    </form>

                        </div>
                                            <div class="p-slider__item rounded-xs p-2.5 flex shrink-0 w-[calc(100%/1.5)] bg-white md:max-w-[25%] js_slide lg:max-w-none lg:w-[calc(100%/5-30px/5)]">
                            
    <form x-data="initPriceBox()" @update-prices-48417="updatePrice($event.detail);" @update-gallery-48417="$refs.gallery &amp;&amp; ($refs.gallery.src = $event.detail)" x-i4-ajax-cart action="https://www.espaceplaisir.fr/checkout/cart/add/uenc/aHR0cHM6Ly93d3cuZXNwYWNlcGxhaXNpci5mci8~/product/48417/" method="post" data-id="48417" data-sku="CONF-48417" data-type="configurable" class="product-item relative w-full flex flex-col group gap-2.5 lg:gap-6">
        <input name="form_key" type="hidden" value="3aL3XfaOaI06l5Zj">        <input type="hidden" name="product" value="48417">

        
        <a class="product__link relative hover:text-black" href="https://www.espaceplaisir.fr/lelo-switch.html">
            <img class="w-full object-contain text-transparent" x-ref="gallery" src="https://www.espaceplaisir.fr/media/catalog/product/l/e/lelo-switch-rose-1.jpg?quality=80&amp;fit=bounds&amp;height=480&amp;width=480" loading="lazy" width="480" height="480" alt="" title="">
            
                                                </a>
        <div class="relative text-center flex flex-col text-sm items-center h-full product-info-block product-info-block__container">
            <div class="text-sm text-center line-clamp-1 leading-6 mb-2 min-h-6 product-info-block">
                LELO            </div>
            <p class="product__name text-sm font-bold mb-2 min-h-8 leading-5 font-Averta">
                <a class="product__link text-center line-clamp-2 font-bold product-info-block" href="https://www.espaceplaisir.fr/lelo-switch.html">
                    Vibromasseur wand double LELO Switch                </a>
            </p>
            <div class="review min-h-5 w-full flex flex-col items-center">
                
<div class="r-stars">
    <div class="r-stars__box">
        <i class="r-stars__empty"></i>
        <i class="r-stars__full" style="width:100%"></i>
    </div>
    <span class="text-sm leading-none">(1)</span>
</div>
            </div>
            <div class="text-grey-dark">
                <div class="price-box price-final_price" data-role="priceBox" data-product-id="48415" data-price-box="product-id-48415">

<div class="normal-final-price           simple-product">
    <span class="special-price">
        
<span class="price-container            price-final_price tax weee">
            <span class="price-label">
            Prix sp&eacute;cial        </span>
        <span id="product-price-48415" data-price-amount="199" data-price-type="finalPrice" class="price-wrapper">
        <span class="price">199,00&nbsp;&euro;</span>    </span>
                <meta content="199">
        <meta content="EUR">
    </span>
    </span>
    <span class="final-price-box">
        
<span class="price-container            price-final_price tax weee">
            <span class="price-label">
            Prix normal        </span>
        <span id="old-price-48415" data-price-amount="199" data-price-type="oldPrice" class="price-wrapper">
        <span class="price">199,00&nbsp;&euro;</span>    </span>
                <meta content="199">
        <meta content="EUR">
    </span>
    </span>
</div>

</div>            </div>
            <div class="w-full min-h-[2rem] lg:block mt-auto">
                                    <div class="mb-4 lg:mb-5 block">
                            <script>
        function initConfigurableSwatchOptions_48417() {
            return {
                ...initConfigurableOptions('48417', {"attributes":{"275":{"id":"275","code":"couleur","label":"Couleur","options":[{"id":"70","label":"Rose","products":["48415"]},{"id":"66","label":"Violet","products":["48416"]}],"position":"0"}},"template":"<%- data.price %>\u00a0\u20ac","currencyFormat":"%s\u00a0\u20ac","optionPrices":{"48416":{"baseOldPrice":{"amount":165.83333233333},"oldPrice":{"amount":199},"basePrice":{"amount":165.83333233333},"finalPrice":{"amount":199},"tierPrices":[],"msrpPrice":{"amount":0}},"48415":{"baseOldPrice":{"amount":165.83333233333},"oldPrice":{"amount":199},"basePrice":{"amount":165.83333233333},"finalPrice":{"amount":199},"tierPrices":[],"msrpPrice":{"amount":0}}},"priceFormat":{"pattern":"%s\u00a0\u20ac","precision":2,"requiredPrecision":2,"decimalSymbol":",","groupSymbol":"\u202f","groupLength":3,"integerRequired":false},"prices":{"baseOldPrice":{"amount":165.83333233333},"oldPrice":{"amount":199},"basePrice":{"amount":165.83333233333},"finalPrice":{"amount":199}},"productId":"48417","chooseText":"Choisissez une option...","images":[],"index":{"48416":{"275":"66"},"48415":{"275":"70"}},"salable":[],"canDisplayShowOutOfStockStatus":false,"channel":"website","salesChannelCode":"espace_plaisir_fo","sku":{"48416":"LELO-A0278","48415":"LELO-A0261"},"label_reload":"https:\/\/www.espaceplaisir.fr\/amasty_label\/ajax\/label\/","label_category":".product-image-container, .product-item-photo, .cdz-product-top","label_product":".fotorama__stage, #amasty-main-container","original_product_id":"48417","defaultValues":{"275":"70"}}),
                ...initSwatchOptions({"275":{"70":{"type":2,"value":"https:\/\/www.espaceplaisir.fr\/media\/catalog\/product\/l\/e\/lelo-switch-rose-1.jpg?quality=80&fit=bounds&height=100&width=100","thumb":"https:\/\/www.espaceplaisir.fr\/media\/catalog\/product\/l\/e\/lelo-switch-rose-1.jpg?quality=80&fit=bounds&height=90&width=110","label":"Rose"},"66":{"type":2,"value":"https:\/\/www.espaceplaisir.fr\/media\/catalog\/product\/8\/8\/88078_a49972_purple_000.jpg?quality=80&fit=bounds&height=100&width=100","thumb":"https:\/\/www.espaceplaisir.fr\/media\/catalog\/product\/8\/8\/88078_a49972_purple_000.jpg?quality=80&fit=bounds&height=90&width=110","label":"Violet"},"additional_data":"{\"swatch_input_type\":\"visual\",\"update_product_preview_image\":\"1\",\"use_product_image_for_swatch\":\"1\"}"}}),
                mediaCallback: "https\u003A\u002F\u002Fwww.espaceplaisir.fr\u002Fswatches\u002Fajax\u002Fmedia\u002F",
                changeOption(optionId, value, skipUpdateGallery) {
                    this.selectedValues[optionId] = value;
                    this.findSimpleIndex();
                    this.findAllowedAttributeOptions();
                    this.updatePrices();
                    !skipUpdateGallery && this.updateGallery();

                    const detail = {
                        productId: this.productId,
                        optionId: optionId,
                        value: value,
                        productIndex: this.productIndex,
                        selectedValues: this.selectedValues,
                        candidates: this.findProductIdsForPartialSelection(this.selectedValues),
                        variationSku: this.optionConfig.sku[this.productIndex]
                    };

                    this.$root.dispatchEvent(new CustomEvent('configurable-selection-changed', { detail, bubbles: true }));
                    this.$root.dispatchEvent(new CustomEvent(`configurable-selection-changed-${this.productId}`, { detail, bubbles: true }));
                },
                updateGallery() {
                    if (!this.productIndex) {
                        return;
                    }

                    fetch(`${this.mediaCallback}?product_id=${this.productIndex}&isAjax=true`, {
                            method: 'GET',
                            headers: {
                                'Content-Type': 'application/json',
                                'X-Requested-With': 'XMLHttpRequest'
                            }
                        }
                    ).then(response => {
                            return response.json()
                        }
                    ).then(data => {
                        if (data.errors) {
                            // non critical failure only console logged
                            console.warn(data.errors);
                        } else {
                            const image = data && data.medium;

                            image && this.$root.dispatchEvent(
                                new CustomEvent(
                                    "update-gallery-48417",
                                    {detail: image, bubbles: true}
                                )
                            );
                        }
                    }).catch(error => {
                        console.warn(error)
                    });
                },
                preselectQuerystringItems() {
                    // pre-select option like ?size=167
                    const urlQueryParams = new URLSearchParams(window.location.search.replace('?', ''));
                    Object.values(this.optionConfig.attributes).map(attribute => {
                        // Don't update images on load, since PLPs already set the main image to the selected options
                        const skipUpdateGallery = true;
                        urlQueryParams.get(attribute.code) &&
                        this.changeOption(attribute.id, urlQueryParams.get(attribute.code), skipUpdateGallery);
                    });
                }
            };
        }

    </script>

    <div x-data="initConfigurableSwatchOptions_48417()" x-init="findAllowedAttributeOptions();" x-intersect="showSwatches = true" @private-content-loaded.window="onGetCartData($event.detail.data)" class="relative">
        <div>
                            
                                <div class="swatch-attribute-options swatch-attribute mb-1  couleur">
                    <template x-if="showSwatches">
                        <div class="flex flex-wrap justify-center gap-1" role="radiogroup" x-data="{countOfOptions: Object.keys(optionConfig.attributes[275].options).length}">
                            <label class="sr-only" for="attributecouleur">
                                Couleur                            </label>
                            <template x-for="(item, index) in optionConfig.attributes[275].options" :key="item.id">
                                
<div :class="{    'opacity-0 absolute size-0 -z-1' : index &gt;= numberToShow,    'opacity-40 out-of-stock-swatch' : checkStatusOfItem(275, item.id)}">
    <template x-if="optionIsEnabled(275, item.id) &amp;&amp; optionIsActive(275, item.id)">
        <label @click="swatchImgListener(275, item.id)" :for="'attribute-option-48417-'+item.id" class="swatch-option flex justify-center relative border-2 border-transparent mb-0 font-normal" :data-sku="optionConfig.sku[productIndex]" :class="{                'size-8 rounded-btn border' : !isTextSwatch(275, item.id),                [getTypeSwatches(275, item.id)]: true,                '!border-pink text-pink selected active': selectedValues[275] === item.id &amp;&amp; !isTextSwatch(275, item.id),                'hover:border-optimo-darker': !isTextSwatch(275, item.id)            }" :style="getSwatchBackgroundStyle('275',item.id)" @mouseenter.self="activeTooltipItem = {                    attribute: '275',                    item: item.id                }; tooltipPositionElement = $event.target;" @mouseleave.self="activeTooltipItem = false;">
            <input :id="'attribute-option-48417-'+item.id" :value="item.id" name="super_attribute[275]" type="radio" class="-z-1 absolute opacity-0 h-0" @change="changeOption(275, $event.target.value)" x-model="selectedValues[275]" :required="getAllowedAttributeOptions(275)                .filter(option =&gt; selectedValues[option]).length === 0" :aria-label="getSwatchText(275, item.id)" aria-describedby="attribute-label-48417-275">
            <div x-html="getSwatchText(275, item.id)" class="swatch-option__text flex items-center justify-center min-w-10 h-5 border border-grey                        rounded py-0 px-2 whitespace-nowrap text-black hover:border-optimo-darker" :class="{                 'sr-only' : !isTextSwatch(275, item.id),                 'border-optimo border-1 selected text-pink': updateConfigurableOptions(selectedValues[275] === item.id)                 }"></div>
        </label>
    </template>

    <template x-if="optionIsEnabled(275, item.id) &amp;&amp; !optionIsActive(275, item.id)">
        <div class="swatch-option relative swatch-option border-2 border-transparent" :class="{                'size-4 rounded-btn': !isTextSwatch(275, item.id),                [getTypeSwatches(275, item.id)]: true,                'hidden': index &gt;= numberToShow,                'opacity-50 select-none border-container-darker': !isTextSwatch(275, item.id)            }" :style="getSwatchBackgroundStyle('275',item.id)">
            <div x-html="getSwatchText(275, item.id)" class="swatch-option__text whitespace-nowrap" :class="{                    'sr-only' : !isTextSwatch(275, item.id),                    'swatch-option__text flex items-center justify-center border rounded min-w-10 h-5 text-sm border-grey-light line-through' : isTextSwatch(275, item.id)                 }"></div>
            <svg class="absolute inset-0 w-full h-full text-grey-light bg-white bg-opacity-25">
                <line x1="0" y1="100%" x2="100%" y2="0" class="stroke-current stroke-1"></line>
            </svg>
        </div>
    </template>
</div>
                            </template>
                            <template x-if="numberToShow &lt; countOfOptions">
                                <a href="https://www.espaceplaisir.fr/lelo-switch.html" title="Plus" class="flex items-center w-6 h-6 rounded-full bg-grey-lighter">
                                    <svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewbox="0 0 24 24" class="size-4 ml-2 bg-1 rounded-big" width="16" height="16" aria-hidden="true"><path d="m16.1836 12.9933-4.608-.1266-5.5476-.16h-.7197c-.4898 0-.9896 0-1.4894-.0534-.2799-.0333-.4998-.2066-.6697-.3466-.2099-.1667-.2-.4267.04-.58.17-.1067.3998-.26.6697-.2734 3.3386-.16 6.8571-.3066 10.7454-.4533l2.8088.0667h.1999c.7197 0 1.4594 0 2.1791.08.4098.0466.7297.3.9896.5066.3099.2467.2899.6334-.06.8534-.2499.16-.5797.38-.9796.4-.0899 0-.1699.0066-.2599.0133-.6797.0267-1.3794.0467-2.0691.08h-1.2295v-.0067Z"></path><path d="m12.9933 7.8163-.1266 4.6081-.16 5.5476v.7197c0 .4898 0 .9896-.0534 1.4894-.0333.2799-.2066.4998-.3466.6697-.1667.2099-.4267.1999-.58-.04-.1067-.1699-.26-.3998-.2734-.6697-.16-3.3386-.3066-6.8571-.4533-10.7454l.0667-2.8088v-.2c0-.7196 0-1.4593.08-2.179.0466-.4098.3-.7297.5066-.9896.2467-.3098.6334-.2899.8534.06.16.2499.38.5797.4.9796 0 .09.0066.1699.0133.2599.0267.6797.0467 1.3794.08 2.069V7.8164h-.0067Z"></path></svg>
                                </a>
                            </template>
                        </div>
                    </template>
                </div>
                    </div>
                    <template x-if="isTooltipVisible()">
    <div @resize.window="activeTooltipItem = false">
        <div class="absolute shadow-box2" :style="getTooltipPosition()">
            <div x-ref="content" class="absolute top-0 left-0 z-10 min-w-20 p-2 -mt-6 text-sm leading-tight text-black                    transform -translate-x-1/3 -translate-y-full bg-white border border-grey-light text-center">
                <template x-if="isVisualSwatch(activeTooltipItem.attribute, activeTooltipItem.item)">
                    <div class="inline-block" :style="getTooltipImageStyle(activeTooltipItem.attribute, activeTooltipItem.item)"></div>
                </template>
                <span class="mx-2 text-lg font-semibold whitespace-nowrap" x-html="getTooltipLabel()"></span>
            </div>
        </div>
        <div class="absolute flex pointer-events-none" :style="getTooltipArrowPosition()">
            <svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" viewbox="0 0 256 256" width="16" height="16" aria-hidden="true">
  <path fill="#999" d="M254.307 69.55a9.806 9.806 0 0 0-2.88-6.956c-3.84-3.84-10.069-3.84-13.907 0l-109.663 109.66-109.66-109.66c-3.842-3.84-10.069-3.84-13.91 0-3.839 3.842-3.839 10.069 0 13.91l116.615 116.615c3.838 3.841 10.068 3.841 13.907 0L251.424 76.504a9.797 9.797 0 0 0 2.883-6.955z"></path>
</svg>
        </div>
    </div>
</template>
            </div>
                    </div>
                                    <div class="product__actions flex gap-2">
                    <button x-ref="submit" class="btn btn-tertiary text-sm px-1 truncate w-full min-w-auto transition-all block" aria-label="Ajouter au panier Vibromasseur wand double LELO Switch">
                <span class="text-addtocart hidden lg:block">
                    Ajouter au panier                </span>
                <span class="icons-addtocart flex gap-2 justify-center items-center lg:hidden">
                    <svg xmlns="http://www.w3.org/2000/svg" id="Calque_2" fill="currentColor" viewbox="0 0 18 18" width="17" height="17" aria-hidden="true"><g id="SYSTEM_4"><g id="Editor_4"><g id="icon_add_4"><path d="m13.19,10.49l-4.61-.19c-1.85-.08-3.7-.16-5.55-.24-.24,0-.48,0-.72,0-.49,0-.99,0-1.49-.08-.28-.05-.5-.31-.67-.52-.21-.25-.2-.64.04-.87.17-.16.4-.39.67-.41,3.34-.24,6.86-.46,10.75-.68l2.81.1h.2c.72,0,1.46,0,2.18.12.41.07.73.45.99.76.31.37.29.95-.06,1.28-.25.24-.58.57-.98.6-.09,0-.17.01-.26.02-.68.04-1.38.07-2.07.12h-.57c-.26,0-.46,0-.66,0Z"></path><path d="m10.49,4.81l-.19,4.61c-.08,1.85-.16,3.7-.24,5.55,0,.24,0,.48,0,.72,0,.49,0,.99-.08,1.49-.05.28-.31.5-.52.67-.25.21-.64.2-.87-.04-.16-.17-.39-.4-.41-.67-.24-3.34-.46-6.86-.68-10.75l.1-2.81v-.2c0-.72,0-1.46.12-2.18.07-.41.45-.73.76-.99.37-.31.95-.29,1.28.06.24.25.57.58.6.98,0,.09.01.17.02.26.04.68.07,1.38.12,2.07v.57c0,.26,0,.46,0,.66Z"></path></g></g></g></svg>
                    <svg xmlns="http://www.w3.org/2000/svg" id="Calque_2" fill="currentColor" viewbox="0 0 15 20" width="18" height="19" aria-hidden="true"><g id="BUSINESS_4"><g id="Finance_Payment_4"><g id="icon_cart_4"><path d="m4.48,3.1c.07-.93.58-1.82,1.36-2.39C6.61.14,7.64-.11,8.6.04c1.17.16,2.19.93,2.65,1.93.25.48.31,1.08.29,1.55l-.02,1.4v.73c0,.49,0,1-.04,1.5-.02.29-.13.5-.21.68-.1.21-.26.2-.36-.04-.07-.17-.16-.4-.17-.67-.02-.84-.05-1.7-.07-2.56-.01-.43-.03-.86-.04-1.3-.02-.38-.14-.75-.34-1.08-.41-.66-1.17-1.11-1.99-1.15-.82-.05-1.66.31-2.14.96-.25.3-.4.66-.46,1.03-.02.09-.02.19-.03.28v.35s-.02.71-.02.71v.2c0,.72,0,1.47-.05,2.2-.03.41-.18.74-.31,1-.15.31-.39.29-.52-.06-.1-.25-.23-.59-.25-.99,0-.09,0-.18,0-.26-.02-.69-.03-1.39-.05-2.09v-.57c0-.27-.01-.44.01-.7Z"></path><path d="m.23,17.58c.27-2,.51-4.02.74-6.04l.77-6.05.14-1.13c.05-.43.31-.7.7-.75.19-.02.43,0,.61,0h.34s1.35.01,1.35.01l2.71.02,5.61.04c.19,0,.33.05.46.13.15.11.2.24.26.4.05.18.05.36.08.54l.04.34.17,1.3.26,1.91c.17,1.29.36,2.62.49,3.92.08.75.03,1.33,0,1.81-.05.57-.24.55-.44-.06-.14-.43-.33-1.02-.43-1.72-.19-1.28-.38-2.58-.59-3.94-.1-.68-.2-1.38-.31-2.1-.05-.36-.11-.73-.16-1.1l-.05-.3c0-.08-.08-.08-.14-.07-1.52.02-3.18.04-4.94.07-.91.01-1.84.02-2.8.03-.48,0-.96.01-1.45.02-.23,0-.57,0-.52,0-.04,0-.07.02-.06.07-.13,1.2-.27,2.53-.43,3.94-.17,1.49-.33,3.08-.48,4.68l-.38,3.12-.21,1.56-.03.23v.02s0,.02.01.02h.02s.23,0,.23,0h.58s.51,0,.51,0c1.83,0,3.74,0,5.58.06,1.05.04,1.87.23,2.54.38.79.19.74.48-.15.65-.63.12-1.5.29-2.51.3-.22,0-.44,0-.65,0-1.75.02-3.54.04-5.32.06H.88c-.19,0-.35-.06-.47-.13-.09-.05-.19-.14-.27-.25-.07-.11-.09-.16-.12-.29-.05-.1,0-.26,0-.4.01-.14.04-.28.06-.42.05-.32.09-.62.13-.92Z"></path></g></g></g></svg>
                </span>
            </button>
                <div>
            
    <button x-data="initWishlist()" x-on:click.prevent="toggleWishlist" aria-label="Ajouter &agrave; la liste de souhaits" type="button" class="wishlist-btn text-black p-3 hover:bg-pink-dark rounded-btn" :class="isInWishlist() ? '!bg-pink-dark lg:!bg-pink-light' : 'bg-pink-light'" x-on:class="{ 'pointer-events-none': loading }">
        <span x-cloak x-show="!isInWishlist()">
            <svg class="size-6 text-optimo-darker" :class="{ '!hidden': loading }" aria-hidden="true">
                <use href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/i4-sprite.svg#ico-wishlist"></use>
            </svg>
        </span>
        <span x-cloak x-show="isInWishlist()">
            <svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewbox="0 0 24 24" class="size-6 text-optimo-darker" width="24" height="24" aria-hidden="true" :class="{ '!hidden': loading }"><path fill="#FF5C6E" d="M12.113 5.598c.03-.07.02-.06.09-.19.09-.18.19-.36.33-.54.5-.72 1.249-1.269 2.058-1.519.939-.29 1.688-.13 2.228.07.64.28.49.44-.19.43-.49.02-1.139.15-1.808.42-.44.18-.85.45-1.18.799-.16.18-.309.37-.429.59-.06.14-.11.17-.19.41-.06.25-.17.4-.2.739-.2 1.509-.49 1.429-.639 1.549-.14.06-.35.04-.42 0-.3-.11-.51-.66-.55-1.08-.04-.28-.11-.48-.159-.729-.05-.25-.12-.46-.22-.62-.1-.2-.23-.37-.35-.54-.27-.339-.609-.619-.979-.829-.749-.43-1.678-.51-2.567-.3C5.159 4.589 4 6.528 4.33 8.447c.2 1.968 1.409 3.797 2.757 5.516 1.39 1.709 2.978 3.348 4.636 4.977.37.37.2.2.24.25.04-.04-.12.12.25-.23.52-.49 1.01-1 1.509-1.5a49.169 49.169 0 0 0 2.827-3.137l.37-.47c1.269-1.689 2.478-3.598 2.697-5.556.12-1.1.02-1.979-.24-2.708-.16-.42-.23-.66-.11-.72.1-.05.41.07.78.53.52.62 1.08 1.789.93 3.168-.02.3-.06.59-.13.859-.5 2.278-1.809 4.147-3.118 5.856l-.04.06c-.35.45-.72.87-1.089 1.3-.53.589-.95 1.058-1.379 1.498-.41.43-.829.85-1.249 1.27l-.639.619-.34.33c-.21.18-.41.44-.63.55-.419.219-.928.04-1.298-.44l-.7-.71-1.228-1.28c-1.619-1.728-3.218-3.497-4.516-5.575-.77-1.24-1.41-2.639-1.569-4.167-.08-.74-.09-1.55.15-2.319.22-.77.63-1.479 1.189-2.058.55-.57 1.279-1 2.058-1.19a5.22 5.22 0 0 1 2.328-.07c.78.17 1.509.56 2.088 1.11.29.27.53.59.75.929.06.08.09.17.14.26l.05.1.05.14.04.1c.04.11.07.17.07.17s.06-.09.149-.32v.01Z"></path><path fill="#FF5C6E" stroke="#FF5C6E" d="M16 3.502c-2.4 0-3.667 3-4 4.5-.5-2.167-2.4-6-6-4-4.5 2.5-1.5 7.5 0 9.5 1.2 1.6 4.5 5.333 6 7 1.666-1.834 5.5-6.3 7.5-9.5 2.5-4-.5-7.5-3.5-7.5Z"></path></svg>
        </span>
        <span x-cloak x-show="loading">
            <svg class="animate-spin text-optimo-darker size-6" aria-hidden="true">
                <use href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/i4-sprite.svg#ico-loader"></use>
            </svg>
        </span>
        <span class="hidden">
            Mes Favoris        </span>
    </button>
        </div>
    </div>

            </div>
                                </div>
    </form>

                        </div>
                                            <div class="p-slider__item rounded-xs p-2.5 flex shrink-0 w-[calc(100%/1.5)] bg-white md:max-w-[25%] js_slide lg:max-w-none lg:w-[calc(100%/5-30px/5)]">
                            
    <form x-data="initPriceBox()" @update-prices-48231="updatePrice($event.detail);" @update-gallery-48231="$refs.gallery &amp;&amp; ($refs.gallery.src = $event.detail)" x-i4-ajax-cart action="https://www.espaceplaisir.fr/checkout/cart/add/uenc/aHR0cHM6Ly93d3cuZXNwYWNlcGxhaXNpci5mci8_Z2FkX2NhbXBhaWduaWQ9MjI5OTE4NjI0NzgmZ2FkX3NvdXJjZT0x/product/48231/" method="post" data-id="48231" data-sku="CONF-48231" data-type="configurable" class="product-item relative w-full flex flex-col group gap-2.5 lg:gap-6">
        <input name="form_key" type="hidden" value="fsxyRUOcfsyIBu2o">        <input type="hidden" name="product" value="48231">

        
        <a class="product__link relative hover:text-black" href="https://www.espaceplaisir.fr/we-vibe-melt-2.html">
            <img class="w-full object-contain text-transparent" x-ref="gallery" src="https://www.espaceplaisir.fr/media/catalog/product/w/v/wvi_melt2_purple_galleryimage_1a.jpg?quality=80&amp;fit=bounds&amp;height=480&amp;width=480" loading="lazy" width="480" height="480" alt="" title="">
            
                                <div class="label-container absolute inset-0 grid grid-flow-col grid-cols-3 grid-rows-3">
        
            <div class="relative group/item" style="width:72px; height:72px; margin: 0 0 0 -8px; font-size: 14px; color: #000000;grid-area:3/3">
        <div class="whitespace-nowrap absolute left-1/2 top-1/2 -translate-y-1/2 -translate-x-1/2">
            </div>
            <img class="w-full h-full" src="https://www.espaceplaisir.fr/media/amasty/amlabel/0526_macaron_bundlePLP_V3_1.png" loading="lazy" title="Womanizer Mini Offert Macaron " alt="Womanizer Mini Offert Macaron ">
    
    
            </div>
        </div>
                    </a>
        <div class="relative text-center flex flex-col text-sm items-center h-full product-info-block product-info-block__container">
            <div class="text-sm text-center line-clamp-1 leading-6 mb-2 min-h-6 product-info-block">
                We-Vibe            </div>
            <p class="product__name text-sm font-bold mb-2 min-h-8 leading-5 font-Averta">
                <a class="product__link text-center line-clamp-2 font-bold product-info-block" href="https://www.espaceplaisir.fr/we-vibe-melt-2.html">
                    Stimulateur clitoridien connect&eacute; We-Vibe Melt 2                </a>
            </p>
            <div class="review min-h-5 w-full flex flex-col items-center">
                
<div class="r-stars">
    <div class="r-stars__box">
        <i class="r-stars__empty"></i>
        <i class="r-stars__full" style="width:92%"></i>
    </div>
    <span class="text-sm leading-none">(256)</span>
</div>
            </div>
            <div class="text-grey-dark">
                <div class="price-box price-final_price" data-role="priceBox" data-product-id="48229" data-price-box="product-id-48229">

<div class="special-price-container special-price-exist           simple-product">
    <span class="special-price">
        
<span class="price-container            price-final_price tax weee">
            <span class="price-label">
            Prix sp&eacute;cial        </span>
        <span id="product-price-48229" data-price-amount="126.65" data-price-type="finalPrice" class="price-wrapper">
        <span class="price">126,65&nbsp;&euro;</span>    </span>
                <meta content="126.65">
        <meta content="EUR">
    </span>
    </span>
    <span class="final-price-box">
        
<span class="price-container            price-final_price tax weee">
            <span class="price-label">
            Prix normal        </span>
        <span id="old-price-48229" data-price-amount="149" data-price-type="oldPrice" class="price-wrapper">
        <span class="price">149,00&nbsp;&euro;</span>    </span>
                <meta content="149">
        <meta content="EUR">
    </span>
    </span>
</div>

</div>            </div>
            <div class="w-full min-h-[2rem] lg:block mt-auto">
                                    <div class="mb-4 lg:mb-5 block">
                            <script>
        function initConfigurableSwatchOptions_48231() {
            return {
                ...initConfigurableOptions('48231', {"attributes":{"275":{"id":"275","code":"couleur","label":"Couleur","options":[{"id":"40","label":"Vert","products":["48230"]},{"id":"66","label":"Violet","products":["48229"]}],"position":"0"}},"template":"<%- data.price %>\u00a0\u20ac","currencyFormat":"%s\u00a0\u20ac","optionPrices":{"48230":{"baseOldPrice":{"amount":124.16666566667},"oldPrice":{"amount":149},"basePrice":{"amount":105.54166566667},"finalPrice":{"amount":126.65},"tierPrices":[],"msrpPrice":{"amount":0}},"48229":{"baseOldPrice":{"amount":124.16666566667},"oldPrice":{"amount":149},"basePrice":{"amount":105.54166566667},"finalPrice":{"amount":126.65},"tierPrices":[],"msrpPrice":{"amount":0}}},"priceFormat":{"pattern":"%s\u00a0\u20ac","precision":2,"requiredPrecision":2,"decimalSymbol":",","groupSymbol":"\u202f","groupLength":3,"integerRequired":false},"prices":{"baseOldPrice":{"amount":124.16666566667},"oldPrice":{"amount":149},"basePrice":{"amount":105.54166566667},"finalPrice":{"amount":126.65}},"productId":"48231","chooseText":"Choisissez une option...","images":[],"index":{"48230":{"275":"40"},"48229":{"275":"66"}},"salable":[],"canDisplayShowOutOfStockStatus":false,"preSelectedGallery":[],"channel":"website","salesChannelCode":"espace_plaisir_fo","sku":{"48230":"SNEL2SGZ","48229":"SNEL2SG4"},"label_reload":"https:\/\/www.espaceplaisir.fr\/amasty_label\/ajax\/label\/","label_category":".product-image-container, .product-item-photo, .cdz-product-top","label_product":".fotorama__stage, #amasty-main-container","original_product_id":"48231","defaultValues":{"275":"66"}}),
                ...initSwatchOptions({"275":{"40":{"type":2,"value":"https:\/\/www.espaceplaisir.fr\/media\/catalog\/product\/w\/v\/wvi_melt2_sage_galleryimage_1a.jpg?quality=80&fit=bounds&height=100&width=100","thumb":"https:\/\/www.espaceplaisir.fr\/media\/catalog\/product\/w\/v\/wvi_melt2_sage_galleryimage_1a.jpg?quality=80&fit=bounds&height=90&width=110","label":"Vert"},"66":{"type":2,"value":"https:\/\/www.espaceplaisir.fr\/media\/catalog\/product\/w\/v\/wvi_melt2_purple_galleryimage_1a.jpg?quality=80&fit=bounds&height=100&width=100","thumb":"https:\/\/www.espaceplaisir.fr\/media\/catalog\/product\/w\/v\/wvi_melt2_purple_galleryimage_1a.jpg?quality=80&fit=bounds&height=90&width=110","label":"Violet"},"additional_data":"{\"swatch_input_type\":\"visual\",\"update_product_preview_image\":\"1\",\"use_product_image_for_swatch\":\"1\"}"}}),
                mediaCallback: "https\u003A\u002F\u002Fwww.espaceplaisir.fr\u002Fswatches\u002Fajax\u002Fmedia\u002F",
                changeOption(optionId, value, skipUpdateGallery) {
                    this.selectedValues[optionId] = value;
                    this.findSimpleIndex();
                    this.findAllowedAttributeOptions();
                    this.updatePrices();
                    !skipUpdateGallery && this.updateGallery();

                    const detail = {
                        productId: this.productId,
                        optionId: optionId,
                        value: value,
                        productIndex: this.productIndex,
                        selectedValues: this.selectedValues,
                        candidates: this.findProductIdsForPartialSelection(this.selectedValues),
                        variationSku: this.optionConfig.sku[this.productIndex]
                    };

                    this.$root.dispatchEvent(new CustomEvent('configurable-selection-changed', { detail, bubbles: true }));
                    this.$root.dispatchEvent(new CustomEvent(`configurable-selection-changed-${this.productId}`, { detail, bubbles: true }));
                },
                updateGallery() {
                    if (!this.productIndex) {
                        return;
                    }

                    fetch(`${this.mediaCallback}?product_id=${this.productIndex}&isAjax=true`, {
                            method: 'GET',
                            headers: {
                                'Content-Type': 'application/json',
                                'X-Requested-With': 'XMLHttpRequest'
                            }
                        }
                    ).then(response => {
                            return response.json()
                        }
                    ).then(data => {
                        if (data.errors) {
                            // non critical failure only console logged
                            console.warn(data.errors);
                        } else {
                            const image = data && data.medium;

                            image && this.$root.dispatchEvent(
                                new CustomEvent(
                                    "update-gallery-48231",
                                    {detail: image, bubbles: true}
                                )
                            );
                        }
                    }).catch(error => {
                        console.warn(error)
                    });
                },
                preselectQuerystringItems() {
                    // pre-select option like ?size=167
                    const urlQueryParams = new URLSearchParams(window.location.search.replace('?', ''));
                    Object.values(this.optionConfig.attributes).map(attribute => {
                        // Don't update images on load, since PLPs already set the main image to the selected options
                        const skipUpdateGallery = true;
                        urlQueryParams.get(attribute.code) &&
                        this.changeOption(attribute.id, urlQueryParams.get(attribute.code), skipUpdateGallery);
                    });
                }
            };
        }

    </script>

    <div x-data="initConfigurableSwatchOptions_48231()" x-init="findAllowedAttributeOptions();" x-intersect="showSwatches = true" @private-content-loaded.window="onGetCartData($event.detail.data)" class="relative">
        <div>
                            
                                <div class="swatch-attribute-options swatch-attribute mb-1  couleur">
                    <template x-if="showSwatches">
                        <div class="flex flex-wrap justify-center gap-1" role="radiogroup" x-data="{countOfOptions: Object.keys(optionConfig.attributes[275].options).length}">
                            <label class="sr-only" for="attributecouleur">
                                Couleur                            </label>
                            <template x-for="(item, index) in optionConfig.attributes[275].options" :key="item.id">
                                
<div :class="{    'opacity-0 absolute size-0 -z-1' : index &gt;= numberToShow,    'opacity-40 out-of-stock-swatch' : checkStatusOfItem(275, item.id)}">
    <template x-if="optionIsEnabled(275, item.id) &amp;&amp; optionIsActive(275, item.id)">
        <label @click="swatchImgListener(275, item.id)" :for="'attribute-option-48231-'+item.id" class="swatch-option flex justify-center relative border-2 border-transparent mb-0 font-normal" :data-sku="optionConfig.sku[productIndex]" :class="{                'size-8 rounded-btn border' : !isTextSwatch(275, item.id),                [getTypeSwatches(275, item.id)]: true,                '!border-pink text-pink selected active': selectedValues[275] === item.id &amp;&amp; !isTextSwatch(275, item.id),                'hover:border-optimo-darker': !isTextSwatch(275, item.id)            }" :style="getSwatchBackgroundStyle('275',item.id)" @mouseenter.self="activeTooltipItem = {                    attribute: '275',                    item: item.id                }; tooltipPositionElement = $event.target;" @mouseleave.self="activeTooltipItem = false;">
            <input :id="'attribute-option-48231-'+item.id" :value="item.id" name="super_attribute[275]" type="radio" class="-z-1 absolute opacity-0 h-0" @change="changeOption(275, $event.target.value)" x-model="selectedValues[275]" :required="getAllowedAttributeOptions(275)                .filter(option =&gt; selectedValues[option]).length === 0" :aria-label="getSwatchText(275, item.id)" aria-describedby="attribute-label-48231-275">
            <div x-html="getSwatchText(275, item.id)" class="swatch-option__text flex items-center justify-center min-w-10 h-5 border border-grey                        rounded py-0 px-2 whitespace-nowrap text-black hover:border-optimo-darker" :class="{                 'sr-only' : !isTextSwatch(275, item.id),                 'border-optimo border-1 selected text-pink': updateConfigurableOptions(selectedValues[275] === item.id)                 }"></div>
        </label>
    </template>

    <template x-if="optionIsEnabled(275, item.id) &amp;&amp; !optionIsActive(275, item.id)">
        <div class="swatch-option relative swatch-option border-2 border-transparent" :class="{                'size-4 rounded-btn': !isTextSwatch(275, item.id),                [getTypeSwatches(275, item.id)]: true,                'hidden': index &gt;= numberToShow,                'opacity-50 select-none border-container-darker': !isTextSwatch(275, item.id)            }" :style="getSwatchBackgroundStyle('275',item.id)">
            <div x-html="getSwatchText(275, item.id)" class="swatch-option__text whitespace-nowrap" :class="{                    'sr-only' : !isTextSwatch(275, item.id),                    'swatch-option__text flex items-center justify-center border rounded min-w-10 h-5 text-sm border-grey-light line-through' : isTextSwatch(275, item.id)                 }"></div>
            <svg class="absolute inset-0 w-full h-full text-grey-light bg-white bg-opacity-25">
                <line x1="0" y1="100%" x2="100%" y2="0" class="stroke-current stroke-1"></line>
            </svg>
        </div>
    </template>
</div>
                            </template>
                            <template x-if="numberToShow &lt; countOfOptions">
                                <a href="https://www.espaceplaisir.fr/we-vibe-melt-2.html" title="Plus" class="flex items-center w-6 h-6 rounded-full bg-grey-lighter">
                                    <svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewbox="0 0 24 24" class="size-4 ml-2 bg-1 rounded-big" width="16" height="16" aria-hidden="true"><path d="m16.1836 12.9933-4.608-.1266-5.5476-.16h-.7197c-.4898 0-.9896 0-1.4894-.0534-.2799-.0333-.4998-.2066-.6697-.3466-.2099-.1667-.2-.4267.04-.58.17-.1067.3998-.26.6697-.2734 3.3386-.16 6.8571-.3066 10.7454-.4533l2.8088.0667h.1999c.7197 0 1.4594 0 2.1791.08.4098.0466.7297.3.9896.5066.3099.2467.2899.6334-.06.8534-.2499.16-.5797.38-.9796.4-.0899 0-.1699.0066-.2599.0133-.6797.0267-1.3794.0467-2.0691.08h-1.2295v-.0067Z"></path><path d="m12.9933 7.8163-.1266 4.6081-.16 5.5476v.7197c0 .4898 0 .9896-.0534 1.4894-.0333.2799-.2066.4998-.3466.6697-.1667.2099-.4267.1999-.58-.04-.1067-.1699-.26-.3998-.2734-.6697-.16-3.3386-.3066-6.8571-.4533-10.7454l.0667-2.8088v-.2c0-.7196 0-1.4593.08-2.179.0466-.4098.3-.7297.5066-.9896.2467-.3098.6334-.2899.8534.06.16.2499.38.5797.4.9796 0 .09.0066.1699.0133.2599.0267.6797.0467 1.3794.08 2.069V7.8164h-.0067Z"></path></svg>
                                </a>
                            </template>
                        </div>
                    </template>
                </div>
                    </div>
                    <template x-if="isTooltipVisible()">
    <div @resize.window="activeTooltipItem = false">
        <div class="absolute shadow-box2" :style="getTooltipPosition()">
            <div x-ref="content" class="absolute top-0 left-0 z-10 min-w-20 p-2 -mt-6 text-sm leading-tight text-black                    transform -translate-x-1/3 -translate-y-full bg-white border border-grey-light text-center">
                <template x-if="isVisualSwatch(activeTooltipItem.attribute, activeTooltipItem.item)">
                    <div class="inline-block" :style="getTooltipImageStyle(activeTooltipItem.attribute, activeTooltipItem.item)"></div>
                </template>
                <span class="mx-2 text-lg font-semibold whitespace-nowrap" x-html="getTooltipLabel()"></span>
            </div>
        </div>
        <div class="absolute flex pointer-events-none" :style="getTooltipArrowPosition()">
            <svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" viewbox="0 0 256 256" width="16" height="16" aria-hidden="true">
  <path fill="#999" d="M254.307 69.55a9.806 9.806 0 0 0-2.88-6.956c-3.84-3.84-10.069-3.84-13.907 0l-109.663 109.66-109.66-109.66c-3.842-3.84-10.069-3.84-13.91 0-3.839 3.842-3.839 10.069 0 13.91l116.615 116.615c3.838 3.841 10.068 3.841 13.907 0L251.424 76.504a9.797 9.797 0 0 0 2.883-6.955z"></path>
</svg>
        </div>
    </div>
</template>
            </div>
                    </div>
                                    <div class="product__actions flex gap-2">
                    <button x-ref="submit" class="btn btn-tertiary text-sm px-1 truncate w-full min-w-auto transition-all block" aria-label="Ajouter au panier Stimulateur clitoridien connect&eacute; We-Vibe Melt 2">
                <span class="text-addtocart hidden lg:block">
                    Ajouter au panier                </span>
                <span class="icons-addtocart flex gap-2 justify-center items-center lg:hidden">
                    <svg xmlns="http://www.w3.org/2000/svg" id="Calque_2" fill="currentColor" viewbox="0 0 18 18" width="17" height="17" aria-hidden="true"><g id="SYSTEM_11"><g id="Editor_11"><g id="icon_add_11"><path d="m13.19,10.49l-4.61-.19c-1.85-.08-3.7-.16-5.55-.24-.24,0-.48,0-.72,0-.49,0-.99,0-1.49-.08-.28-.05-.5-.31-.67-.52-.21-.25-.2-.64.04-.87.17-.16.4-.39.67-.41,3.34-.24,6.86-.46,10.75-.68l2.81.1h.2c.72,0,1.46,0,2.18.12.41.07.73.45.99.76.31.37.29.95-.06,1.28-.25.24-.58.57-.98.6-.09,0-.17.01-.26.02-.68.04-1.38.07-2.07.12h-.57c-.26,0-.46,0-.66,0Z"></path><path d="m10.49,4.81l-.19,4.61c-.08,1.85-.16,3.7-.24,5.55,0,.24,0,.48,0,.72,0,.49,0,.99-.08,1.49-.05.28-.31.5-.52.67-.25.21-.64.2-.87-.04-.16-.17-.39-.4-.41-.67-.24-3.34-.46-6.86-.68-10.75l.1-2.81v-.2c0-.72,0-1.46.12-2.18.07-.41.45-.73.76-.99.37-.31.95-.29,1.28.06.24.25.57.58.6.98,0,.09.01.17.02.26.04.68.07,1.38.12,2.07v.57c0,.26,0,.46,0,.66Z"></path></g></g></g></svg>
                    <svg xmlns="http://www.w3.org/2000/svg" id="Calque_2" fill="currentColor" viewbox="0 0 15 20" width="18" height="19" aria-hidden="true"><g id="BUSINESS_11"><g id="Finance_Payment_11"><g id="icon_cart_11"><path d="m4.48,3.1c.07-.93.58-1.82,1.36-2.39C6.61.14,7.64-.11,8.6.04c1.17.16,2.19.93,2.65,1.93.25.48.31,1.08.29,1.55l-.02,1.4v.73c0,.49,0,1-.04,1.5-.02.29-.13.5-.21.68-.1.21-.26.2-.36-.04-.07-.17-.16-.4-.17-.67-.02-.84-.05-1.7-.07-2.56-.01-.43-.03-.86-.04-1.3-.02-.38-.14-.75-.34-1.08-.41-.66-1.17-1.11-1.99-1.15-.82-.05-1.66.31-2.14.96-.25.3-.4.66-.46,1.03-.02.09-.02.19-.03.28v.35s-.02.71-.02.71v.2c0,.72,0,1.47-.05,2.2-.03.41-.18.74-.31,1-.15.31-.39.29-.52-.06-.1-.25-.23-.59-.25-.99,0-.09,0-.18,0-.26-.02-.69-.03-1.39-.05-2.09v-.57c0-.27-.01-.44.01-.7Z"></path><path d="m.23,17.58c.27-2,.51-4.02.74-6.04l.77-6.05.14-1.13c.05-.43.31-.7.7-.75.19-.02.43,0,.61,0h.34s1.35.01,1.35.01l2.71.02,5.61.04c.19,0,.33.05.46.13.15.11.2.24.26.4.05.18.05.36.08.54l.04.34.17,1.3.26,1.91c.17,1.29.36,2.62.49,3.92.08.75.03,1.33,0,1.81-.05.57-.24.55-.44-.06-.14-.43-.33-1.02-.43-1.72-.19-1.28-.38-2.58-.59-3.94-.1-.68-.2-1.38-.31-2.1-.05-.36-.11-.73-.16-1.1l-.05-.3c0-.08-.08-.08-.14-.07-1.52.02-3.18.04-4.94.07-.91.01-1.84.02-2.8.03-.48,0-.96.01-1.45.02-.23,0-.57,0-.52,0-.04,0-.07.02-.06.07-.13,1.2-.27,2.53-.43,3.94-.17,1.49-.33,3.08-.48,4.68l-.38,3.12-.21,1.56-.03.23v.02s0,.02.01.02h.02s.23,0,.23,0h.58s.51,0,.51,0c1.83,0,3.74,0,5.58.06,1.05.04,1.87.23,2.54.38.79.19.74.48-.15.65-.63.12-1.5.29-2.51.3-.22,0-.44,0-.65,0-1.75.02-3.54.04-5.32.06H.88c-.19,0-.35-.06-.47-.13-.09-.05-.19-.14-.27-.25-.07-.11-.09-.16-.12-.29-.05-.1,0-.26,0-.4.01-.14.04-.28.06-.42.05-.32.09-.62.13-.92Z"></path></g></g></g></svg>
                </span>
            </button>
                <div>
            
    <button x-data="initWishlist()" x-on:click.prevent="toggleWishlist" aria-label="Ajouter &agrave; la liste de souhaits" type="button" class="wishlist-btn text-black p-3 hover:bg-pink-dark rounded-btn" :class="isInWishlist() ? '!bg-pink-dark lg:!bg-pink-light' : 'bg-pink-light'" x-on:class="{ 'pointer-events-none': loading }">
        <span x-cloak x-show="!isInWishlist()">
            <svg class="size-6 text-optimo-darker" :class="{ '!hidden': loading }" aria-hidden="true">
                <use href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/i4-sprite.svg#ico-wishlist"></use>
            </svg>
        </span>
        <span x-cloak x-show="isInWishlist()">
            <svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewbox="0 0 24 24" class="size-6 text-optimo-darker" width="24" height="24" aria-hidden="true" :class="{ '!hidden': loading }"><path fill="#FF5C6E" d="M12.113 5.598c.03-.07.02-.06.09-.19.09-.18.19-.36.33-.54.5-.72 1.249-1.269 2.058-1.519.939-.29 1.688-.13 2.228.07.64.28.49.44-.19.43-.49.02-1.139.15-1.808.42-.44.18-.85.45-1.18.799-.16.18-.309.37-.429.59-.06.14-.11.17-.19.41-.06.25-.17.4-.2.739-.2 1.509-.49 1.429-.639 1.549-.14.06-.35.04-.42 0-.3-.11-.51-.66-.55-1.08-.04-.28-.11-.48-.159-.729-.05-.25-.12-.46-.22-.62-.1-.2-.23-.37-.35-.54-.27-.339-.609-.619-.979-.829-.749-.43-1.678-.51-2.567-.3C5.159 4.589 4 6.528 4.33 8.447c.2 1.968 1.409 3.797 2.757 5.516 1.39 1.709 2.978 3.348 4.636 4.977.37.37.2.2.24.25.04-.04-.12.12.25-.23.52-.49 1.01-1 1.509-1.5a49.169 49.169 0 0 0 2.827-3.137l.37-.47c1.269-1.689 2.478-3.598 2.697-5.556.12-1.1.02-1.979-.24-2.708-.16-.42-.23-.66-.11-.72.1-.05.41.07.78.53.52.62 1.08 1.789.93 3.168-.02.3-.06.59-.13.859-.5 2.278-1.809 4.147-3.118 5.856l-.04.06c-.35.45-.72.87-1.089 1.3-.53.589-.95 1.058-1.379 1.498-.41.43-.829.85-1.249 1.27l-.639.619-.34.33c-.21.18-.41.44-.63.55-.419.219-.928.04-1.298-.44l-.7-.71-1.228-1.28c-1.619-1.728-3.218-3.497-4.516-5.575-.77-1.24-1.41-2.639-1.569-4.167-.08-.74-.09-1.55.15-2.319.22-.77.63-1.479 1.189-2.058.55-.57 1.279-1 2.058-1.19a5.22 5.22 0 0 1 2.328-.07c.78.17 1.509.56 2.088 1.11.29.27.53.59.75.929.06.08.09.17.14.26l.05.1.05.14.04.1c.04.11.07.17.07.17s.06-.09.149-.32v.01Z"></path><path fill="#FF5C6E" stroke="#FF5C6E" d="M16 3.502c-2.4 0-3.667 3-4 4.5-.5-2.167-2.4-6-6-4-4.5 2.5-1.5 7.5 0 9.5 1.2 1.6 4.5 5.333 6 7 1.666-1.834 5.5-6.3 7.5-9.5 2.5-4-.5-7.5-3.5-7.5Z"></path></svg>
        </span>
        <span x-cloak x-show="loading">
            <svg class="animate-spin text-optimo-darker size-6" aria-hidden="true">
                <use href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/i4-sprite.svg#ico-loader"></use>
            </svg>
        </span>
        <span class="hidden">
            Mes Favoris        </span>
    </button>
        </div>
    </div>

            </div>
                                </div>
    </form>

                        </div>
                                    </div>
            </div>
        </div>
    </section>
</div></div></div><div data-content-type="row" data-appearance="contained" data-element="main" data-pb-style="QU7D31F"><div data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-background-lazy-load="false" data-element="inner" data-pb-style="VE3X899"><div class="pagebuilder-column-group c-landing__promo-block universe-module-4 title-2-columns" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="12" data-background-lazy-load="false" data-element="main" data-pb-style="CWD8JIO"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="C78T6VA"><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-background-lazy-load="false" data-element="main" data-pb-style="SQARGK0"><h2 data-content-type="heading" data-appearance="default" data-element="main" data-pb-style="R4YDO2I">Nos cat&eacute;gories phares</h2></div><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-background-lazy-load="false" data-element="main" data-pb-style="BPT37UA"><div data-content-type="buttons" data-appearance="inline" data-same-width="false" data-element="main"><div class="ghost-reverse" data-content-type="button-item" data-appearance="default" data-element="main" data-pb-style="M2VI4TC"><a class="pagebuilder-button-secondary btn btn-secondary" href="https://www.espaceplaisir.fr/939-sextoys" target="" data-link-type="category" data-element="link" data-pb-style="JH33Y2Y"><span data-element="link_text">Voir tout</span></a></div></div></div></div></div><div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true"><style>
.title-2-columns .pagebuilder-column {
 flex-basis: 46%;
 flex-grow: 1;
margin-bottom:0;
}
.title-2-columns.c-landing__promo-block [data-content-type=buttons]{
padding-left:0;
padding-right:0;
}

.title-2-columns .pagebuilder-column-line {
gap:0;
}

.title-2-columns.ghost-reverse [data-content-type=buttons] [data-content-type=button-item] {
margin-right:0;
}

.title-2-columns .ghost-reverse .btn-secondary {
background: transparent;
}
.title-2-columns .ghost-reverse .btn-secondary:hover {
background: rgba(0, 0, 0, 0.2);
border: 1px solid #000000;
opacity: 1;
}
.title-2-columns .ghost-reverse .btn-secondary:hover span {
opacity:1;
color:#000000;
}
.title-2-columns .ghost-reverse .btn-secondary span {
color:#000000;
}
</style></div><div data-content-type="block" data-appearance="default" data-element="main"><div class="widget block block-static-block">
    <style>.cmsb194-absolute {
position: absolute
}
.cmsb194-relative {
position: relative
}
.cmsb194-transform {
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))
}</style>
<style>#html-body [data-pb-style=TQA18MH]{background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;align-self:stretch}#html-body [data-pb-style=J9GLIYA]{display:flex;width:100%}#html-body [data-pb-style=LNI1D3N],#html-body [data-pb-style=O8B0SDE]{padding-left:8px}#html-body [data-pb-style=BCJ4RC9],#html-body [data-pb-style=LNI1D3N],#html-body [data-pb-style=O8B0SDE],#html-body [data-pb-style=OXJFBRN]{justify-content:center;display:flex;flex-direction:column;background-color:#fff5ef;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;border-radius:4px;min-height:65px;width:calc(25% - 4px);margin:2px;align-self:stretch}#html-body [data-pb-style=OXJFBRN]{padding:0 0 0 8px}#html-body [data-pb-style=BCJ4RC9]{padding-left:8px}#html-body [data-pb-style=GY8EA8O]{border-style:none}#html-body [data-pb-style=H8WI57H],#html-body [data-pb-style=U6QAWOY]{border-radius:4px;max-width:100%;height:auto}#html-body [data-pb-style=DDFMCX8]{border-style:none}#html-body [data-pb-style=K2FMROI],#html-body [data-pb-style=K4K7B6N]{border-radius:4px;max-width:100%;height:auto}#html-body [data-pb-style=K9LWGKQ]{border-style:none}#html-body [data-pb-style=IO46ST7],#html-body [data-pb-style=LD31S8S]{border-radius:4px;max-width:100%;height:auto}#html-body [data-pb-style=Q0SF3MH]{border-style:none}#html-body [data-pb-style=RKDM4SR],#html-body [data-pb-style=WYFIMXB]{border-radius:4px;max-width:100%;height:auto}@media only screen and (max-width: 768px) { #html-body [data-pb-style=BCJ4RC9],#html-body [data-pb-style=LNI1D3N],#html-body [data-pb-style=OXJFBRN]{justify-content:flex-start;display:flex;flex-direction:column;align-self:stretch}#html-body [data-pb-style=DDFMCX8],#html-body [data-pb-style=GY8EA8O],#html-body [data-pb-style=K9LWGKQ],#html-body [data-pb-style=Q0SF3MH]{border-style:none} }</style><div class="pagebuilder-column-group grid-cat-universe categories-grid-block-tpl" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="12" data-background-lazy-load="true" data-element="main" data-pb-style="TQA18MH"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="J9GLIYA"><div class="pagebuilder-column grid-cat-universe-card cat-1" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-background-lazy-load="true" data-element="main" data-pb-style="O8B0SDE"><figure data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="GY8EA8O"><a href="https://www.espaceplaisir.fr/989-stimulateur-clitoridien" target="" data-link-type="category" title="" data-element="link"><img width="420" height="172" class="pagebuilder-mobile-hidden" src="https://www.espaceplaisir.fr/media/wysiwyg/_01_stimulateur_clitoridien_2.png" alt="" title="" loading="lazy" data-element="desktop_image" data-pb-style="H8WI57H"><img width="420" height="172" class="pagebuilder-mobile-only" src="https://www.espaceplaisir.fr/media/wysiwyg/_01_stimulateur_clitoridien_2.png" alt="" title="" loading="lazy" data-element="mobile_image" data-pb-style="U6QAWOY"></a></figure><div class="txt-cat-universe" data-content-type="text" data-appearance="default" data-element="main"><p style="position: absolute; margin-bottom: 0;"><strong><span style="font-size: 16px;">Stimulateurs clitoridiens</span></strong></p></div><div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true"><a href="https://www.espaceplaisir.fr/989-stimulateur-clitoridien" style="position:absolute;width:100%;height:100%;bottom:0;left:0"></a></div></div><div class="pagebuilder-column grid-cat-universe-card cat-2" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-background-lazy-load="true" data-element="main" data-pb-style="LNI1D3N"><figure data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="DDFMCX8"><img width="420" height="172" class="pagebuilder-mobile-hidden" src="https://www.espaceplaisir.fr/media/wysiwyg/_02_masturbateur_2.png" alt="" title="" loading="lazy" data-element="desktop_image" data-pb-style="K4K7B6N"><img width="420" height="172" class="pagebuilder-mobile-only" src="https://www.espaceplaisir.fr/media/wysiwyg/_02_masturbateur_2.png" alt="" title="" loading="lazy" data-element="mobile_image" data-pb-style="K2FMROI"></figure><div class="txt-cat-universe" data-content-type="text" data-appearance="default" data-element="main"><p style="position: absolute; margin-bottom: 0;"><strong><span style="font-size: 16px;">Masturbateurs</span></strong></p></div><div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true"><a href="https://www.espaceplaisir.fr/1192-masturbateur" style="position:absolute;width:100%;height:100%;bottom:0;left:0"></a></div></div><div class="pagebuilder-column grid-cat-universe-card cat-1" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-background-lazy-load="true" data-element="main" data-pb-style="OXJFBRN"><figure data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="K9LWGKQ"><img width="420" height="172" class="pagebuilder-mobile-hidden" src="https://www.espaceplaisir.fr/media/wysiwyg/_03_oeuf_vibrant_2.png" alt="" title="" loading="lazy" data-element="desktop_image" data-pb-style="IO46ST7"><img width="420" height="172" class="pagebuilder-mobile-only" src="https://www.espaceplaisir.fr/media/wysiwyg/_03_oeuf_vibrant_2.png" alt="" title="" loading="lazy" data-element="mobile_image" data-pb-style="LD31S8S"></figure><div class="txt-cat-universe" data-content-type="text" data-appearance="default" data-element="main"><p style="position: absolute; margin-bottom: 0;"><strong><span style="font-size: 16px;">&OElig;ufs vibrants</span></strong></p></div><div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true"><a href="https://www.espaceplaisir.fr/1911-oeuf-vibrant" style="position:absolute;width:100%;height:100%;bottom:0;left:0"></a></div></div><div class="pagebuilder-column grid-cat-universe-card cat-2" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-background-lazy-load="true" data-element="main" data-pb-style="BCJ4RC9"><figure data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="Q0SF3MH"><img width="420" height="172" class="pagebuilder-mobile-hidden" src="https://www.espaceplaisir.fr/media/wysiwyg/_04_gode_2.png" alt="" title="" loading="lazy" data-element="desktop_image" data-pb-style="RKDM4SR"><img width="420" height="172" class="pagebuilder-mobile-only" src="https://www.espaceplaisir.fr/media/wysiwyg/_04_gode_2.png" alt="" title="" loading="lazy" data-element="mobile_image" data-pb-style="WYFIMXB"></figure><div class="txt-cat-universe" data-content-type="text" data-appearance="default" data-element="main"><p style="position: absolute; margin-bottom: 0;"><strong><span style="font-size: 16px;">Godes et godemichets</span></strong></p></div><div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true"><a href="https://www.espaceplaisir.fr/941-gode-et-godemichet" style="position:absolute;width:100%;height:100%;bottom:0;left:0"></a></div></div></div></div><div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true"><style>
#html-body .categories-grid-block-tpl .txt-cat-universe {
 position : absolute;
 height: 100%;
 width: calc(70%);
}
#html-body .categories-grid-block-tpl .txt-cat-universe p {
 position:absolute;
 transform: translateY(-50%);
 top : 50%;
}
#html-body .categories-grid-block-tpl .grid-cat-universe-card {
 position: relative;
}

@media only screen and (max-width: 1024px) {
 #html-body .categories-grid-block-tpl .pagebuilder-column-line{
 display:grid;
 grid-template-columns: 1fr 1fr;
}
 #html-body .categories-grid-block-tpl .grid-cat-universe-card{
 width:calc(100% - 4px);
 }
 #html-body .categories-grid-block-tpl .cat-1 {
 grid-column: 1 / 2;
 }
 #html-body .categories-grid-block-tpl .cat-2 {
 grid-column: 2 / 2;
 }
}
</style></div></div>
</div></div></div><div data-content-type="block" data-appearance="default" data-element="main" data-pb-style="WY4P3A0"><div class="widget block block-static-block">
    <style>.cmsb202-items-center {
align-items: center
}</style>
<style>#html-body [data-pb-style=EX2W932]{justify-content:center;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;text-align:center;border-color:#ff5c6e;border-width:1px;border-radius:4px;padding:12px 24px}#html-body [data-pb-style=ADYGIC4]{text-align:left;margin-bottom:12px}#html-body [data-pb-style=DO6O7D2]{text-align:center;margin-bottom:24px}#html-body [data-pb-style=BH9OS35]{background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;margin-top:12px;align-self:stretch}#html-body [data-pb-style=A7WRKEL]{display:flex;width:100%}#html-body [data-pb-style=IFUS4F4]{justify-content:flex-start;display:flex;flex-direction:column;background-color:#fff5ef;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;text-align:left;border-radius:4px;width:calc(33.3333% - 32px);margin:0 16px 12px;padding:24px;align-self:stretch}#html-body [data-pb-style=VIEFKSU]{text-align:center;margin-bottom:16px}#html-body [data-pb-style=SNWECVQ]{justify-content:flex-start;display:flex;flex-direction:column;background-color:#fff5ef;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;text-align:left;border-radius:4px;width:calc(33.3333% - 32px);margin-left:16px;margin-right:16px;margin-bottom:12px;padding:24px;align-self:stretch}#html-body [data-pb-style=QETMV42]{text-align:center;margin-bottom:16px}#html-body [data-pb-style=OKNTD0I],#html-body [data-pb-style=VKGPU1D]{text-align:left;border-radius:4px;margin-bottom:12px;padding:4px 12px}#html-body [data-pb-style=OKNTD0I]{justify-content:flex-start;display:flex;flex-direction:column;background-color:#fff5ef;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:calc(33.3333% - 32px);margin-left:16px;margin-right:16px;padding:24px;align-self:stretch}#html-body [data-pb-style=YUL2JQW]{text-align:center;margin-bottom:16px}@media only screen and (max-width: 768px) { #html-body [data-pb-style=EX2W932]{justify-content:flex-start;display:flex;flex-direction:column;text-align:left;padding:12px}#html-body [data-pb-style=IFUS4F4],#html-body [data-pb-style=SNWECVQ]{display:flex;flex-direction:column;margin-bottom:12px;padding:12px;align-self:stretch}#html-body [data-pb-style=OKNTD0I]{display:flex;flex-direction:column;padding:12px;align-self:stretch} }</style><div data-content-type="row" data-appearance="contained" data-element="main"><div class="cmsb202-items-center" data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-background-lazy-load="false" data-element="inner" data-pb-style="EX2W932"><div class="hp-baseline" data-content-type="text" data-appearance="default" data-element="main" data-pb-style="ADYGIC4"><h1 style="text-align: center;"><span style="color: rgb(235, 92, 95);"><strong>espaceplaisir - loveshop d&eacute;di&eacute; au bien-&ecirc;tre intime</strong></span></h1>
<p class="tagline" style="text-align: center;"><strong>Tout le plaisir est pour vous.</strong></p></div><div data-content-type="text" data-appearance="default" data-element="main" data-pb-style="DO6O7D2"><p style="font-size: 14px; margin-bottom: 0;"><span style="font-size: 12pt;">Depuis 2010, espaceplaisir accompagne celles et ceux qui souhaitent explorer leur bien-&ecirc;tre personnel avec confiance et s&eacute;r&eacute;nit&eacute;.</span></p></div><div class="pagebuilder-column-group ep-description-desktop" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="12" data-background-lazy-load="false" data-element="main" data-pb-style="BH9OS35"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="A7WRKEL"><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-background-lazy-load="false" data-element="main" data-pb-style="IFUS4F4"><div data-content-type="text" data-appearance="default" data-element="main" data-pb-style="VIEFKSU"><h2 style="text-align: center;"><strong><span style="color: rgb(235, 92, 95);">Notre mission</span></strong></h2></div><div data-content-type="text" data-appearance="default" data-element="main"><p data-start="774" data-end="1088">Rendre le bien-&ecirc;tre intime plus accessible et plus simple. Chez espaceplaisir, nous accompagnons chaque personne dans la d&eacute;couverte de ses envies, sans pression ni jugement.&nbsp;</p></div></div><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-background-lazy-load="false" data-element="main" data-pb-style="SNWECVQ"><div data-content-type="text" data-appearance="default" data-element="main" data-pb-style="QETMV42"><h2 style="text-align: center;"><span style="color: rgb(235, 92, 95);"><strong>Nos engagements</strong></span></h2></div><div data-content-type="text" data-appearance="default" data-element="main" data-pb-style="VKGPU1D"><strong>Qualit&eacute; &amp; s&eacute;curit&eacute;</strong><br>
<p>Des produits s&eacute;lectionn&eacute;s avec soin, con&ccedil;us &agrave; partir de mat&eacute;riaux s&ucirc;rs, body-safe et respectueux du corps.</p>
<strong>Information claire</strong><br>
<p>Des fiches d&eacute;taill&eacute;es et transparentes pour comprendre les mat&eacute;riaux, les usages et choisir en toute confiance.</p>
<strong>Discr&eacute;tion totale</strong><br>
<p>Emballages neutres, facturation confidentielle et respect absolu de la vie priv&eacute;e.</p>
</div></div><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-background-lazy-load="false" data-element="main" data-pb-style="OKNTD0I"><div data-content-type="text" data-appearance="default" data-element="main" data-pb-style="YUL2JQW"><h2 id="QLHYYNM" style="text-align: center;"><strong><span style="color: rgb(235, 92, 95);">Notre approche</span></strong></h2></div><div data-content-type="text" data-appearance="default" data-element="main"><p>Nous parlons de ces sujets avec simplicit&eacute; et respect. Loin des clich&eacute;s ou des injonctions, espaceplaisir privil&eacute;gie le conseil, la p&eacute;dagogie et l&rsquo;&eacute;coute afin que chacun puisse avancer &agrave; son rythme, selon ses questions et son parcours.</p></div></div></div></div></div></div></div>
</div>
</div></div></main>
<script>
    (() => {
        let googleApiKey = 'AIzaSyD1p9akwit2VoO13DDjWoFIghuW2JmfDeM',
            googleMapsPromise;

        window.i4LoadGoogleApis = () => {
            if (!googleApiKey.length) throw new Error('ERROR: Google maps API key is not set');

            if (!googleMapsPromise) {
                googleMapsPromise = new Promise((resolve, reject) => {
                    window.google_maps_loaded = () => resolve(window.google.maps);

                    const script = document.createElement('script');
                    script.src = `https://maps.googleapis.com/maps/api/js?key=${googleApiKey}&loading=async&callback=google_maps_loaded&libraries=places,geometry`;
                    script.onerror = () => reject(new Error('ERROR: Google maps API could not be loaded'));

                    document.head.appendChild(script);
                });
            }
            return googleMapsPromise;
        };
    })();
</script>

<footer class="footer bg-white mt-auto"><div class="footer__top"><section
    class="newsletter relative py-8 md:px-5 z-1 bg-blue"
    id="newsletter"
    x-data
>
    <div class="container flex flex-col md:flex-row gap-10 items-center justify-center">
        <img width="262" height="206" loading="lazy" src="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/img_ep_newsletter_footer.png"/>
        <div class="md:max-w-[492px]">
            <div class="text-center lg:text-left newsletter__title font-DMSerif mb-6 leading-9 h1 font-normal">
                Abonnez-vous à la newsletter et profitez de -15 % !            </div>
            <div class="newsletter__content flex">
                <form class="newsletter__subscribe w-full flex flex-col flex-nowrap items-stretch md:flex-row md:flex-wrap max-w-md"
                      action="https://www.espaceplaisir.fr/newsletter/subscriber/new/"
                      method="post"
                      id="newsletter-validate-detail"
                      aria-label="S&#x27;abonner&#x20;&#xE0;&#x20;la&#x20;newsletter"
                >
                    <input name="form_key" type="hidden" value="Hg2gJKPNrvxgcmJD" />                    <div class="newsletter__subscribe--input mb-4 grow flex">
                        <input
                            x-ref="newsletterEmail"
                            name="email"
                            type="email"
                            id="newsletter"
                            required
 class="w-full max-w-80"
                            placeholder="Votre adresse email"
                        />
                        <button
                            class="action btn btn-primary w-auto min-w-max px-6 ml-2"
                            title="Envoyer"
                            type="submit"
                            @click="$dispatch('emailUpdated', { detail: { email: $refs.newsletterEmail.value } })"
                        >
                            Envoyer                        </button>
                    </div>

                    <div class="newsletter__subscribe--terms w-full">
                        <input
                            type="checkbox"
                            required
 name="custom-terms"
                            title="Terms and contitions"
                            id="newsletter-field"
                            class="c-check__input min-h-auto"
                        >
                        <label
                            for="newsletter-field"
                            class="c-check__label lg:pl-2">
                            J'accepte la                            <span
                                                    x-data="hyva.cmsModal(23)"
                            class="underline"
                            @click.prevent="fetchCMS"
                                            >
                        Politique de Confidentialité                    </span>
                        </label>
                    </div>
                </form>
            </div>
        </div>
    </div>
</section>
</div><div class="footer__middle bg-1 relative pt-8 pb-3 text-black"><div class="footer__middle-wrapper container"><div class="footer__middle--left"><style>.cmsb1-mb-0 {
margin-bottom: 0px
}
.cmsb1-block {
display: block
}
.cmsb1-flex {
display: flex
}
.cmsb1-transform {
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))
}
.cmsb1-flex-col {
flex-direction: column
}
.cmsb1-flex-nowrap {
flex-wrap: nowrap
}
.cmsb1-items-center {
align-items: center
}
.cmsb1-justify-between {
justify-content: space-between
}
.cmsb1-gap-1 {
gap: 0.25rem
}
.cmsb1-border {
border-width: 1px
}
.cmsb1-border-b {
border-bottom-width: 1px
}
.cmsb1-border-grey-ultra-light {
border-color: var(--grey-ultra-light)
}
.cmsb1-py-4 {
padding-top: 1rem;
padding-bottom: 1rem
}
.cmsb1-pb-6 {
padding-bottom: 1.5rem
}
.cmsb1-font-normal {
font-weight: 400
}
.cmsb1-leading-tight {
line-height: 1.25
}
.cmsb1-transition {
transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
transition-duration: 150ms
}
@media (min-width: 1024px) {
.cmsb1-lg\:\!flex {
display: flex !important
}
.cmsb1-lg\:flex {
display: flex
}
.cmsb1-lg\:flex-wrap {
flex-wrap: wrap
}
.cmsb1-lg\:border-0 {
border-width: 0px
}
.cmsb1-lg\:p-0 {
padding: 0px
}
.cmsb1-lg\:pb-5 {
padding-bottom: 1.25rem
}
.cmsb1-lg\:pt-0 {
padding-top: 0px
}
}</style>
<div x-data="{ active: null }" class="footer-links cmsb1-lg:flex cmsb1-flex-nowrap cmsb1-justify-between cmsb1-lg:pb-5">
    <div 
        :class="{ 'active' : active === 1 }"
        class="footer-links__item cmsb1-border-b cmsb1-border-grey-ultra-light cmsb1-lg:border-0"
    >
        <p
            @click="active === 1 ? active = null : active = 1"
            class="text-base font-DMSerif cmsb1-font-normal cmsb1-mb-0 cmsb1-py-4 cmsb1-flex cmsb1-justify-between cmsb1-items-center cmsb1-lg:pt-0"
        >espaceplaisir</p>
        <div
            x-show="active === 1"
            class="cmsb1-flex cmsb1-flex-col text-sm cmsb1-gap-1 cmsb1-lg:!flex cmsb1-lg:flex-wrap lg-max:mb-6 cmsb1-pb-6 cmsb1-lg:p-0 cmsb1-leading-tight"
        >
               <a href="https://www.espaceplaisir.fr/content/6-qui-sommes-nous/"
           >
        Qui sommes-nous ?    </a>
 
              <a href="https://www.espaceplaisir.fr/content/30-notre-manifesto/"
           >
        Notre manifesto    </a>
 
              <a href="https://blog.espaceplaisir.fr/"
           >
        Blog    </a>
 
             <a href="https://www.espaceplaisir.fr/conseils/"
           >
        Conseils    </a>
 
             <a href="https://www.espaceplaisir.fr/avis-clients/"
           >
        Avis clients    </a>
 
             <a href="https://www.espaceplaisir.fr/presse-etude-ifop-gen-z-injonctions/"
           >
        Espace presse    </a>
 
              <a href="https://www.espaceplaisir.fr/observatoire-gen-z-normes-sexuelles/"
           >
        Notre observatoire    </a>
 
        </div>
    </div>
    
    <div
        :class="{ 'active' : active === 2 }"
        class="footer-links__item cmsb1-border-b cmsb1-border-grey-ultra-light cmsb1-lg:border-0"
    >
        <p
            @click="active === 2 ? active = null : active = 2"
            class="text-base font-DMSerif cmsb1-font-normal cmsb1-mb-0 cmsb1-py-4 cmsb1-flex cmsb1-justify-between cmsb1-items-center cmsb1-lg:pt-0"
        >Besoin d'aide ?</p>
        <div  x-show="active === 2"
            class="cmsb1-flex cmsb1-flex-col text-sm cmsb1-gap-1 cmsb1-lg:!flex cmsb1-lg:flex-wrap  lg-max:mb-6 cmsb1-pb-6 cmsb1-lg:p-0 cmsb1-leading-tight"  >
           
              <a href="https://www.espaceplaisir.fr/sales/guest/form/"
           >
        Suivre ma commande    </a>
 

              <a href="https://www.espaceplaisir.fr/customer/account/login/"
           >
        Retourner un produit    </a>
 

              <a href="https://aide.espaceplaisir.fr/hc/fr"
           >
        Une question ?    </a>
 

              <a href="https://love.espaceplaisir.fr/media/pdf/french-agec-product-sheet_june_2025.pdf"
                  target="_blank"
           >
        Loi AGEC    </a>
 

              <a href="tel:0469961696"
           >
        04 69 96 16 96    </a>
  

        </div>
    </div>
    
    <div
        :class="{ 'active' : active === 3 }"
        class="footer-links__item cmsb1-border-b cmsb1-border-grey-ultra-light cmsb1-lg:border-0"
    >
        <p
            @click="active === 3 ? active = null : active = 3"
            class="text-base font-DMSerif cmsb1-font-normal cmsb1-mb-0 cmsb1-py-4 cmsb1-flex cmsb1-justify-between cmsb1-items-center cmsb1-lg:pt-0"
        >Nos services</p>
        <div
            x-show="active === 3"
            class="cmsb1-flex cmsb1-flex-col text-sm cmsb1-gap-1 cmsb1-lg:!flex cmsb1-lg:flex-wrap  lg-max:mb-6 cmsb1-pb-6 cmsb1-lg:p-0 cmsb1-leading-tight"
        >
                <a href="https://aide.espaceplaisir.fr/hc/fr/articles/13387025397138-Quel-est-le-prix-de-la-livraison"
           >
        Modes de livraison    </a>
 

              <a href="https://aide.espaceplaisir.fr/hc/fr/categories/4417063464850-Paiements"
           >
        Paiement sécurisé    </a>
 

              <a href="https://aide.espaceplaisir.fr/hc/fr/articles/13362562971410-Qu-est-ce-que-le-Pack-Sérénité"
           >
        Pack Sérénité    </a>
 

              <a href="https://www.espaceplaisir.fr/content/29-codes-promos/"
           >
        Codes de réduction    </a>
 

              <a href="https://www.espaceplaisir.fr/etudiant/"
           >
        Réductions étudiant·es    </a>
 

              <a href="https://www.espaceplaisir.fr/devenir-affilie_2022.html/"
           >
        Devenir affilié·e    </a>
 

<!-- OneTrust Cookies Settings button start -->
<button id="ot-sdk-btn" class="ot-sdk-show-settings">Configurazione dei cookie</button>
<style>
                    #ot-sdk-btn.ot-sdk-show-settings {
                        color: rgb(30, 30, 30);
                        border: none;
                        padding: 0;
                        font-size: 14px;
                        line-height: 17.5px;
                        transition: none;
                        background-color: transparent;
                        text-align: left;
                    }
                    #ot-sdk-btn.ot-sdk-show-settings:hover {
                        background-color: transparent;
                        transition: transform .25s ease, color .25s ease;
                        color: #B72E56 !important;
                    }
                </style>
<!-- OneTrust Cookies Settings button end -->
        </div>
    </div>
    
    <div
        :class="{ 'active' : active === 4 }"
        class="footer-links__item cmsb1-border-b cmsb1-border-grey-ultra-light cmsb1-lg:border-0"
    >
        <p
            @click="active === 4 ? active = null : active = 4"
            class="text-base font-DMSerif cmsb1-font-normal cmsb1-mb-0 cmsb1-py-4 cmsb1-flex cmsb1-justify-between cmsb1-items-center cmsb1-lg:pt-0"
        >La boutique</p>
        <div
            x-show="active === 4"
            class="cmsb1-flex cmsb1-flex-col text-sm cmsb1-gap-1 cmsb1-lg:!flex cmsb1-lg:flex-wrap  lg-max:mb-6 cmsb1-pb-6 cmsb1-lg:p-0 cmsb1-leading-tight"
        >
            
    

              <a href="https://www.espaceplaisir.fr/939-sextoys/"
           >
        Sextoys    </a>
 

              <a href="https://www.espaceplaisir.fr/1056-lingerie-sexy-femme/"
           >
        Lingerie    </a>
 

              <a href="https://www.espaceplaisir.fr/991-bien-etre/"
           >
        Bien-être    </a>
 

              <a href="https://www.espaceplaisir.fr/1267-aphrodisiaques/"
           >
        Aphrodisiaques    </a>
 

              <a href="https://www.espaceplaisir.fr/1189-bdsm/"
           >
        BDSM    </a>
 

              <a href="https://www.espaceplaisir.fr/1349-jeux-et-librairie/"
           >
        Jeux et librairie    </a>
 

              <a href="https://www.espaceplaisir.fr/nouveautes/"
           >
        Nouveautés    </a>
 

              <a href="https://www.espaceplaisir.fr/1087-idee-cadeaux-coquins-notre-selection/"
           >
        Idées cadeaux    </a>
 

              <a href="https://www.espaceplaisir.fr/marques/"
           >
        400 marques    </a>
 
        </div>
    </div>
</div></div><div class="middle__right">    <div class="social-links text-center mt-10 pt-3 lg:pt-0 lg:mt-0 lg:text-left">
        <div class="pb-4 text-lg hidden lg:block font-normal font-DMSerif">Suivez-nous</div>
        <ul class="flex justify-center lg:justify-start flex-wrap gap-4 lg:gap-2">
                                            <li>
                                    <span
                        x-data="{ href: atob('aHR0cHM6Ly9mYWNlYm9vay5jb20vZXNwYWNlcGxhaXNpci8&#x3D;') }"
                        x-on:click="window.open(href, '_blank')"
                        x-on:keydown.enter="window.open(href, '_blank')"
                        class="obflink cursor-pointer p-2 lg:p-1 rounded-btn bg-pink !text-black hover:bg-pink-dark inline-block"
                        aria-label="Facebook"
                        role="link"
                        tabindex="0">
                        <i class="relative flex">
                            <svg class="size-6 lg:size-4" aria-hidden="true">
                                <use href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/i4-sprite.svg#ico-social-facebook"></use>
                            </svg>
                        </i>
                    </span>
                                </li>
                                            <li>
                                    <span
                        x-data="{ href: atob('aHR0cHM6Ly93d3cuaW5zdGFncmFtLmNvbS9lc3BhY2VwbGFpc2lyLw&#x3D;&#x3D;') }"
                        x-on:click="window.open(href, '_blank')"
                        x-on:keydown.enter="window.open(href, '_blank')"
                        class="obflink cursor-pointer p-2 lg:p-1 rounded-btn bg-pink !text-black hover:bg-pink-dark inline-block"
                        aria-label="Instagram"
                        role="link"
                        tabindex="0">
                        <i class="relative flex">
                            <svg class="size-6 lg:size-4" aria-hidden="true">
                                <use href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/i4-sprite.svg#ico-social-instagram"></use>
                            </svg>
                        </i>
                    </span>
                                </li>
                                            <li>
                                    <span
                        x-data="{ href: atob('aHR0cHM6Ly94LmNvbS9lc3BhY2VwbGFpc2lyLw&#x3D;&#x3D;') }"
                        x-on:click="window.open(href, '_blank')"
                        x-on:keydown.enter="window.open(href, '_blank')"
                        class="obflink cursor-pointer p-2 lg:p-1 rounded-btn bg-pink !text-black hover:bg-pink-dark inline-block"
                        aria-label="Twitter"
                        role="link"
                        tabindex="0">
                        <i class="relative flex">
                            <svg class="size-6 lg:size-4" aria-hidden="true">
                                <use href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/i4-sprite.svg#ico-social-twitter"></use>
                            </svg>
                        </i>
                    </span>
                                </li>
                                            <li>
                                    <span
                        x-data="{ href: atob('aHR0cHM6Ly93d3cudGlrdG9rLmNvbS9AZXNwYWNlcGxhaXNpcg&#x3D;&#x3D;') }"
                        x-on:click="window.open(href, '_blank')"
                        x-on:keydown.enter="window.open(href, '_blank')"
                        class="obflink cursor-pointer p-2 lg:p-1 rounded-btn bg-pink !text-black hover:bg-pink-dark inline-block"
                        aria-label="Tiktok"
                        role="link"
                        tabindex="0">
                        <i class="relative flex">
                            <svg class="size-6 lg:size-4" aria-hidden="true">
                                <use href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/i4-sprite.svg#ico-social-tiktok"></use>
                            </svg>
                        </i>
                    </span>
                                </li>
                                            <li>
                                    <span
                        x-data="{ href: atob('aHR0cHM6Ly92aW1lby5jb20vZXNwYWNlcGxhaXNpci8&#x3D;') }"
                        x-on:click="window.open(href, '_blank')"
                        x-on:keydown.enter="window.open(href, '_blank')"
                        class="obflink cursor-pointer p-2 lg:p-1 rounded-btn bg-pink !text-black hover:bg-pink-dark inline-block"
                        aria-label="Vimeo"
                        role="link"
                        tabindex="0">
                        <i class="relative flex">
                            <svg class="size-6 lg:size-4" aria-hidden="true">
                                <use href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/i4-sprite.svg#ico-social-vimeo"></use>
                            </svg>
                        </i>
                    </span>
                                </li>
                    </ul>
    </div>

<ul class="mt-8 mb-2 lg:mb-0 lg:mt-6 flex justify-center lg:justify-start">
    <li class="transition group">
            <a
            class="group-hover:text-optimo-darker"
            href="https&#x3A;&#x2F;&#x2F;www.espaceplaisir.fr&#x2F;storelocator"
            alt="Trouver une boutique"
        >
            <i>
                <svg class="size-4 mr-2 inline-block"
                     aria-hidden="true">
                    <use
                        href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/i4-sprite.svg#ico-location"
                    >
                    </use>
                </svg>
            </i>
            <span class="store-locator underline text-xs lg:text-base"
                >Trouver une boutique            </span>
        </a>
        </li>
</ul>
</div></div><div class="footer-bottom-delivery py-6 lg:pb-4 lg:pt-0"><div class="secure-payment container flex flex-col lg:flex-row flex-wrap items-center justify-evenly lg:justify-between gap-10 text-xs">
    <div class="avis-review min-h-20">
        <div x-data="loadCarouselAvisBasge" x-init="addScript" x-defer="intersect" id="2b3adc8f-19f1-420f-b755-ec433f722800"></div>

<script>
function loadCarouselAvisBasge() {
            return {
                srcRaiting: null,
                
                addScript () {
                    const script = document.createElement('script');
                    script.async = true;
                    script.charset = 'utf-8';
                    script.src = "//widgets.rr.skeepers.io/generated/6e0422fa-fb9d-02d4-c90a-ef5154b705e0/2b3adc8f-19f1-420f-b755-ec433f722800.js";
                    document.head.appendChild(script);
                }
            }
        }
</script>    </div>
    <div class="flex flex-col lg:flex-row gap-2 justify-center items-center lg:gap-6">
        <p class="mb-0 secure-heading">Paiement sécurisé</p>
        <div class="flex flex-col items-center md:flex-row gap-2">
            <div class="flex flex-row gap-2">
                <span class="py-2 lg:py-1 px-4 lg:px-2 border rounded-xs border-grey-light bg-white">
                    <svg width="44" height="16">
                        <use href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/i4-sprite.svg#ico-secure-visa"></use>
                    </svg>
                </span>
                <span class="py-2 lg:py-1 px-4 lg:px-2 border rounded-xs border-grey-light bg-white">
                    <svg width="44" height="16">
                        <use href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/i4-sprite.svg#ico-secure-mastercard"></use>
                    </svg>
                </span>
                <span class="py-2 lg:py-1 px-4 lg:px-2 border rounded-xs border-grey-light bg-white">
                    <svg width="44" height="16">
                        <use href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/i4-sprite.svg#ico-secure-adyen"></use>
                    </svg>
                </span>
            </div>
            <div class="flex flex-row gap-2">
                <span class="py-2 lg:py-1 px-4 lg:px-2 border rounded-xs border-grey-light bg-white">
                    <svg width="44" height="16">
                        <use href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/i4-sprite.svg#ico-secure-paypal"></use>
                    </svg>
                </span>
                <span class="py-2 lg:py-1 px-4 lg:px-2 border rounded-xs border-grey-light bg-white">
                    <svg width="44" height="16">
                        <use href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/i4-sprite.svg#ico-secure-alma"></use>
                    </svg>
                </span>
                <span class="applepay py-2 lg:py-1 px-4 lg:px-2 border rounded-xs border-grey-light bg-white">
                    <svg width="44" height="16">
                        <use href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/i4-sprite.svg#ico-secure-apple"></use>
                    </svg>
                </span>
            </div>
            <div class="flex flex-row gap-2">
                <span class="gpay py-2 lg:py-1 px-4 lg:px-2 border rounded-xs border-grey-light bg-white">
                    <svg width="44" height="16">
                        <use href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/i4-sprite.svg#ico-secure-gpay"></use>
                    </svg>
                </span>
            </div>
        </div>
    </div>
</div>
</div><div class="widget block block-static-block">
    <script>
    (() => {
        function fixSVGSprites () {
            try {
                if (!/Chrome/.test(navigator.userAgent)) return;

                const uses = document.querySelectorAll('svg use');
                const hrefs = [];

                uses.forEach(use => {
                    const hrefAttr = use.hasAttribute('href') ? 'href' : 'xlink:href';
                    const href = use.getAttribute(hrefAttr);
                    if (href) {
                        hrefs.push({use, hrefAttr, href});
                        use.setAttribute(hrefAttr, '');
                    }
                });

                requestAnimationFrame(() => hrefs.forEach(({use, hrefAttr, href}) => use.setAttribute(hrefAttr, href)));
            } catch (e) {}
        }
        if (document.readyState === 'loading') {
            document.addEventListener('DOMContentLoaded', fixSVGSprites);
        } else {
            fixSVGSprites();
        }
    })();
</script></div>
<script>
    'use strict';

    function amBrandsPopup() {
        let cached = false;

        const displayError = (error) => {
            console.error(error);
            typeof window.dispatchMessages !== "undefined" && window.dispatchMessages(
                [{
                    type: "error",
                    text: "Une\u0020erreur\u0020s\u0027est\u0020produite.\u0020Merci\u0020d\u0027essayer\u0020ult\u00E9rieurement."
                }], 10000
            );
        };

        let letters = [
            "A","B","C","D",
            "E","F","G","H","I","J","K","L","M",
            "N","O","P","Q","R","S","T","U","V","W","X","Y","Z","#"
        ];

        return {
            hoverPanelActiveId: null,
            selectedLetter: null,
            items: [],
            letters: [],
            showCount: null,
            showFilter: null,
            showImages: true,
            showSearch: null,
            loading: false,
            label: 'Marques',
            isPopupEnabled: false,
            isTopMenuItemEnabled: false,
            cache: false,
            isMobile: false,

            initErrorMessages(errors) {
                const messages = [];
                for (let error in Object.keys(errors)) {
                    messages.push({type: 'error', text: errors[error].message});
                }
                typeof window.dispatchMessages !== "undefined" && window.dispatchMessages(messages, 10000);
            },

            chooseLetter(letter) {
                this.selectedLetter = this.selectedLetter === letter ? null : letter;
            },

            getQuery() {
                return "query BrandsPopupQuery { ambrandlist(\n                    showCount: true\n                    displayZero: true\n                  ) {\n                    all_letters,\n                    items {\n                      alt\n                      brandId\n                      cnt\n                      image\n                      img\n                      label\n                      letter\n                      url\n                    }\n                  }\n                  storeConfig {\n                    amshopby_brand_general_brands_brands_popup,\n                    amshopby_brand_general_menu_item_label,\n                    amshopby_brand_general_brands_page,\n                    amshopby_brand_general_topmenu_enabled,\n                    amshopby_brand_general_brands_popup_config {\n                      show_images,\n                      display_zero,\n                      filter_display_all,\n                      image_width,\n                      image_height,\n                      show_filter,\n                      show_count\n                    }\n                  } }"            },

            /**
             * Retrieve media url for given path
             *
             * @param path
             * @returns {string}
             */
            getMediaUrl(path) {
                let stringToRemove = 'index.php/';
                let baseUrl = BASE_URL.replace(stringToRemove, '');
                return path.includes(baseUrl) ? path : baseUrl + path;
            },

            getBrandUrl(url){
                return BASE_URL + url;
            },

            popupInit() {
                this.loading = true;

                if (cached) {
                    this.loading = false;
                    return;
                }

                const req = this.sendRequest();
                req.then(result => {
                    if (result && result.errors) {
                        this.initErrorMessages(result.errors);
                        return;
                    }

                    const data = result.data?.ambrandlist;
                    const mapper = this.settingsMapper(result)
                    for (let config in mapper) {
                        this[config] = mapper[config];
                    }

                    if (!this.filterDisplayAll) {
                        letters = data.all_letters.split(',');
                    }

                    const items = data.items.map(brand => {
                        if (brand.img) {
                            brand.image = brand.img;
                            return brand;
                        } else {
                            return brand;
                        }
                    });

                    this.letters = letters.map(letter => ({
                        letter: letter,
                        brands: this.getLetterItems(items, letter),
                    }));

                    this.items = this.letters.filter(row => row.brands && row.brands.length > 0);

                    cached = true;
                }).catch(displayError).finally(() => {
                    this.loading = false;
                });

                this.getIsMobile();
            },

            /**
             * Get brands by letter
             *
             * @param result
             * @returns {{imageWidth: *, isTopMenuItemEnabled: *, showCount: *, displayAll: *, showFilter: *, showImages: *, isPopupEnabled: *, label: *, imageHeight: *, filterDisplayAll: *, brandsPage: *}}
             */
            settingsMapper(result) {
                const config = result.data.storeConfig?.amshopby_brand_general_brands_popup_config;
                return {
                    showImages: config.show_images,
                    showCount: config.show_count,
                    showFilter: config.show_filter,
                    imageWidth: config.image_width,
                    imageHeight: config.image_height,
                    filterDisplayAll: config.filter_display_all,
                    displayAll: config.display_zero,
                    isPopupEnabled: result.data.storeConfig?.amshopby_brand_general_brands_brands_popup,
                    label: result.data.storeConfig?.amshopby_brand_general_menu_item_label,
                    isTopMenuItemEnabled: result.data.storeConfig?.amshopby_brand_general_topmenu_enabled,
                    brandsPage: result.data.storeConfig?.amshopby_brand_general_brands_page,
                }
            },

            /**
             * Send request to graphql
             *
             * @returns {Promise<any>}
             */
            sendRequest() {
                return fetch('https://www.espaceplaisir.fr/graphql', {
                    method: 'POST',
                    headers: {
                        'Content-Type': 'application/json',
                        'Store': 'espace_plaisir_fo'
                    },
                    credentials: 'include',
                    body: JSON.stringify({query: this.getQuery(), variables: {}})
                }).then(
                    response => response.json()
                );
            },

            /**
             * Get brands by letter
             *
             * @param items
             * @param letter
             * @returns {*}
             */
            getLetterItems(items, letter) {
                return items.filter(row => row.letter === letter);
            },

            convertHtml(text) {
                let textField = document.createElement("textarea");
                textField.innerHTML = text;
                return textField.value;
            },

            getIsMobile() {
                this.isMobile = window.matchMedia('(max-width: 767px)').matches;
            }
        }
    }
</script>
</div><div class="footer__bottom container text-black text-xs"><div class="footer__bottom-wrapper text-xs py-5 gap-4"><style>.cmsb48-mb-3 {
margin-bottom: 0.75rem
}
.cmsb48-block {
display: block
}
.cmsb48-flex {
display: flex
}
.cmsb48-w-full {
width: 100%
}
.cmsb48-cursor-pointer {
cursor: pointer
}
.cmsb48-flex-col {
flex-direction: column
}
.cmsb48-items-center {
align-items: center
}
.cmsb48-justify-center {
justify-content: center
}
.cmsb48-gap-4 {
gap: 1rem
}
.cmsb48-border-b {
border-bottom-width: 1px
}
.cmsb48-border-grey-light {
border-color: var(--grey-light)
}
.cmsb48-pb-3 {
padding-bottom: 0.75rem
}
@media (min-width: 768px) {
.cmsb48-md\:flex-row {
flex-direction: row
}
}</style>
<style>#html-body [data-pb-style=OGXCIGG],#html-body [data-pb-style=RG6COJY]{background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll}#html-body [data-pb-style=RG6COJY]{justify-content:flex-start;display:flex;flex-direction:column}#html-body [data-pb-style=OGXCIGG]{align-self:stretch}#html-body [data-pb-style=PPFHMGI]{display:flex;width:100%}#html-body [data-pb-style=OC7QD84]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:100%;align-self:stretch}</style><div data-content-type="row" data-appearance="contained" data-element="main"><div data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-element="inner" data-pb-style="RG6COJY"><div class="pagebuilder-column-group" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="12" data-element="main" data-pb-style="OGXCIGG"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="PPFHMGI"><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="OC7QD84"><div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true"><nav>
  <ol class="cmsb48-flex cmsb48-flex-col cmsb48-md:flex-row cmsb48-gap-4 cmsb48-pb-3 cmsb48-mb-3 text-sm text-black cmsb48-w-full cmsb48-justify-center cmsb48-items-center cmsb48-border-b cmsb48-border-grey-light">
    <li class="cmsb48-cursor-pointer">
              <a href="https://www.espaceplaisir.fr/content/8-mentions-legales/">
        Mentions légales    </a>

    </li>
    <li class="cmsb48-cursor-pointer">
              <a href="https://www.espaceplaisir.fr/content/9-conditions-generales-de-vente/">
        Conditions générales de vente    </a>

    </li>
    <li class="cmsb48-cursor-pointer">
              <a href="https://www.espaceplaisir.fr/content/12-politique-de-gestion-des-donnees-personnelles-et-cookies/">
        Protection des données personnelles et cookies    </a>

    </li>
  </ol>
</nav></div></div></div></div></div></div><style>.cmsb150-flex {
display: flex
}
.cmsb150-items-center {
align-items: center
}
.cmsb150-justify-center {
justify-content: center
}
.cmsb150-border-t {
border-top-width: 1px
}
.cmsb150-pt-4 {
padding-top: 1rem
}
.cmsb150-text-center {
text-align: center
}
@media (min-width: 1024px) {
.cmsb150-lg\:justify-start {
justify-content: flex-start
}
.cmsb150-lg\:border-0 {
border-width: 0px
}
.cmsb150-lg\:pt-0 {
padding-top: 0px
}
}</style>
<div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true"><div class="copyright cmsb150-pt-4 cmsb150-flex cmsb150-justify-center cmsb150-items-center cmsb150-border-t border-white cmsb150-text-center cmsb150-lg:border-0 cmsb150-lg:pt-0 cmsb150-lg:justify-start">
  © 2026 ESPACEPLAISIR
</div></div></div></div></footer>
<script>
    function amBannerInjectorResolver () {
        const injectors = Object.values({"products.among.injector":{"position":14,"name":"amBannerAmongCategoryInjector"},"products.belowcart.injector":{"position":15,"name":"amBannerBelowCartInjector"}});

        return {
            amBannerAmongCategoryInjector: function (sectionId, injectorParams) {
                const container = document.querySelector('[data-role="amasty-banner-container"][data-position="' + sectionId + '"]');

                Object.keys(injectorParams.banners).map((id) => {
                    const params = injectorParams.banners[id];
                    const element = container.querySelector('[data-banner-id="' + id + '"]');
                    insertBannerAmongCategoryByConfig({
                        containerSelector: injectorParams.containerSelector,
                        itemSelector: injectorParams.itemSelector,
                        afterProductRow: params.afterProductRow,
                        afterProductNum: params.afterProductNum,
                        span: params.width
                    }, element);
                });

                function insertBannerAmongCategoryByConfig (injectorConfig, element) {
                    const options = {
                        injectorConfig: {},
                        container: null,
                        after: null,
                        wrapper: null,
                        initialized: false,
                        gridSizes: ['sm', 'xl'],
                        bannerWidthClass: 'col-span',
                        ...injectorConfig
                    }

                    insertBanner(element);

                    function insertBanner(element) {
                        const initialized = setOptions();

                        if (!initialized) {
                            return;
                        }

                        element.classList.add('ambanners-injected-banner');
                        const wrapper = options.wrapper.cloneNode(true);

                        wrapper.classList.remove('card', 'card-interactive');
                        addStylesForDifferentSizes(wrapper);

                        insertWrapper(wrapper);
                        wrapper.append(element);
                    }

                    function setOptions () {
                        const initialized = document.querySelector(options.containerSelector) !== null;

                        if (!initialized) {
                            console.warn(
                                'Failed to initialize banner: Can\'t find an element with selector "' + options.containerSelector + '"'
                            );

                            return;
                        }

                        options.container = document.querySelector(options.containerSelector);

                        setLineToInject();
                        setWrapper();

                        return true;
                    }

                    function setLineToInject() {
                        if (options.afterProductNum === -1) {
                            setFirstLineToInject();
                        } else {
                            setLineByPositionToInject();
                        }
                    }

                    function setWrapper() {
                        if (options.after) {
                            options.wrapper = options.after.cloneNode();
                        }
                    }

                    function setFirstLineToInject() {
                        options.after = document.querySelector(options.itemSelector);
                    }

                    function setLineByPositionToInject() {
                        // calc banner insert offset
                        const offset = calculateOffsetBasedOnPreviousBanners();

                        options.after = document.querySelectorAll(options.itemSelector)[options.afterProductNum - offset];
                    }

                    function calculateOffsetBasedOnPreviousBanners () {
                        return [...document.querySelectorAll(`${options.itemSelector}`)]
                            ?.reduce((accumulator, amInjectedBannerWrapper) => {
                                const widthAttributeValue = Number(amInjectedBannerWrapper?.getAttribute('am-banner-span'))

                                if (widthAttributeValue > 1) {
                                    accumulator += (widthAttributeValue - 1);
                                }

                                return accumulator;
                            }, 0);
                    }

                    function insertWrapper(insert) {
                        if (options.after) {
                            insertWrapperAfterFoundProduct(insert);
                        } else if (options.container) {
                            insertWrapperInProductListContainer(insert);
                        }
                    }

                    function insertWrapperAfterFoundProduct(insert) {
                        if (options.afterProductNum === -1) {
                            options.after.parentNode.insertBefore(insert, options.after);
                        } else {
                            options.after.parentNode.insertBefore(insert, options.after.nextSibling);
                        }
                    }

                    function insertWrapperInProductListContainer(insert) {
                        if (parseInt(options.afterProductRow) > 1) {
                            options.container.innerHTML += insert.innerHTML;
                        } else {
                            options.container.innerHTML = insert.innerHTML + options.container.innerHTML;
                        }
                    }

                    function addStylesForDifferentSizes (wrapper) {
                        options.gridSizes?.forEach((size, index) => {
                            const widthValue = options.span > index + 1 ? index + 2 : options.span;
                            wrapper?.classList.add(`${size}:${options.bannerWidthClass}-${widthValue}`);
                            wrapper?.setAttribute('am-banner-span', widthValue);
                        });
                    }
                }
            },

            amBannerBelowCartInjector: function (sectionId) {
                const belowProductAddToCartBanner = document.querySelector('.ambanners.ambanner-' + sectionId);
                belowProductAddToCartBanner.style.display = 'block';
                document.querySelectorAll('.product-item')?.forEach(product => {
                    product?.append(belowProductAddToCartBanner.cloneNode(true));
                });
                belowProductAddToCartBanner.style.display = 'none';
            },

            resolve: function (position, injectorParams) {
                const injector = injectors.find((injector) => {
                    return injector.position === Number(position);
                });

                return this[injector?.name]?.(position, injectorParams);
            }
        }
    }
</script>
<script>
    window.GA4_PAGE_TYPE = 'Homepage';
</script><script>
    window.addEventListener("beforeunload", () => {
        localStorage.setItem('i4-referrer', location.href);
    });
</script>


    <script>window.forterSiteId = 'f8d66b578cc7';</script>
    <script src="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/Forter_Forter/js/forter-init.min.js"
            id="f8d66b578cc7"
            defer></script>

<script type="text/javascript" id="f8d66b578cc7">

document.addEventListener('ftr:tokenReady', function(event) {
    try {
        var date = new Date();
        date.setTime(date.getTime() + (30 * 24 * 60 * 60 * 1000));
        document.cookie = "wowtech_forter_token=" + event.detail + "; path=/; expires=" + date.toUTCString() + "; domain=" + window.location.hostname;
    } catch (err) {
        console.log(err.message);
    }
});

document.addEventListener('ftr:customerWebIdReady', (event, webId) => {
    const visualWebIdSplit =  webId.replace(/(.{3})/g, "$1 ").trim();
    const element = document.querySelector('.forter_webId');

    if (visualWebIdSplit && element) {
        element.querySelector('.forter_code').innerHtml = visualWebIdSplit;
        element.style.display = 'block';
    } else {
        console.log('Forter: Invalid Web Id');
    }
})

</script>
<script>
    'use strict';

    (() => {
        const questions = document.querySelectorAll('[data-element="question"]');

        questions.forEach((item, index) => {
            const answer = item.parentElement.querySelector('[data-element="answer"]');
            answer.style.display = 'none';
            answer.setAttribute('data-index', `${index}`);
            item.setAttribute('data-index', `${index}`);

            item.addEventListener('click', () => {
                const itemAnswer = item.parentElement.querySelector('[data-element="answer"]');

                questions.forEach(question => {
                    if (question.getAttribute('data-index') !== item.getAttribute('data-index')) {
                        question.classList.remove('active');
                        question.parentElement.querySelector('[data-element="answer"]').style.display = 'none';
                    }
                })

                itemAnswer.style.display = itemAnswer.style.display === 'block' ? 'none' : 'block';
                item.classList.toggle('active');
            });
        });
    })();
</script>
<script>
    (() => {
        function src_default(Alpine) {
            Alpine.directive("intersect", Alpine.skipDuringClone((el, { value, expression, modifiers }, { evaluateLater, cleanup }) => {
                let evaluate = evaluateLater(expression);
                let options = {
                    rootMargin: getRootMargin(modifiers),
                    threshold: getThreshold(modifiers)
                };
                let observer = new IntersectionObserver((entries) => {
                    entries.forEach((entry) => {
                        if (entry.isIntersecting === (value === "leave"))
                            return;
                        evaluate();
                        modifiers.includes("once") && observer.disconnect();
                    });
                }, options);
                observer.observe(el);
                cleanup(() => {
                    observer.disconnect();
                });
            }));
        }
        function getThreshold(modifiers) {
            if (modifiers.includes("full"))
                return 0.99;
            if (modifiers.includes("half"))
                return 0.5;
            if (!modifiers.includes("threshold"))
                return 0;
            let threshold = modifiers[modifiers.indexOf("threshold") + 1];
            if (threshold === "100")
                return 1;
            if (threshold === "0")
                return 0;
            return Number(`.${threshold}`);
        }
        function getLengthValue(rawValue) {
            let match = rawValue.match(/^(-?[0-9]+)(px|%)?$/);
            return match ? match[1] + (match[2] || "px") : void 0;
        }
        function getRootMargin(modifiers) {
            const key = "margin";
            const fallback = "0px 0px 0px 0px";
            const index = modifiers.indexOf(key);
            if (index === -1)
                return fallback;
            let values = [];
            for (let i = 1; i < 5; i++) {
                values.push(getLengthValue(modifiers[index + i] || ""));
            }
            values = values.filter((v) => v !== void 0);
            return values.length ? values.join(" ").trim() : fallback;
        }

        document.addEventListener("alpine:init", () => {
            window.Alpine.plugin(src_default);
        });
    })();
</script>
<script>
    for (const [selector, deferUntil] of Object.entries({".product-slider section[x-data]":"intersect","#filters-content [x-data]":"intersect","#review_form":"intersect","section[x-data^=initRecentlyViewedProductsComponent]":"intersect","div[x-data^=initBundleOptions]":"intersect","#notice-cookie-block":"intersect"})) {
        document.querySelectorAll(selector).forEach(el => el.setAttribute('x-defer', `${deferUntil}`));
    }
</script>
<script>
    (function () {
        "use strict";

        const hasAlpine = new Promise(resolve => {
            window.addEventListener('alpine:initialized', resolve, {once: true, passive: true});
        });

        const hasInteract = new Promise(resolve => {
            (events => {
                const onInteract = () => {
                    resolve();
                    events.forEach(type => window.removeEventListener(type, onInteract));
                }
                events.forEach(type => window.addEventListener(type, onInteract, {once: true, passive: true}))
            })(['touchstart', 'mouseover', 'wheel', 'scroll', 'keydown'])
        });

        const onIntersect = (el) => {
            return new Promise(resolve => {
                const observer = new IntersectionObserver(entries => {
                    for (const entry of entries) {
                        if (entry.isIntersecting) {
                            observer.disconnect()
                            resolve();
                        }
                    }
                }, {});
                observer.observe(el);
            });
        }

        function runComponent(el) {
            hasAlpine.then(() => {
                el.removeAttribute('x-ignore');
                queueMicrotask(() => Alpine.initTree(el));
            });
        }

        function initDeferredComponents() {
            document.querySelectorAll('[x-data][x-defer]').forEach(el => {
                el.setAttribute('x-ignore', '');
                const deferUntil = (el.getAttribute('x-defer') || '').trim();
                switch (deferUntil) {
                    case 'interact':
                        hasInteract.then(() => runComponent(el));
                        break;
                    case 'intersect':
                        onIntersect(el).then(() => runComponent(el))
                        break;
                    case 'idle':
                        window.requestIdleCallback
                            ? window.requestIdleCallback(() => runComponent(el), {timeout: 4000})
                            : setTimeout(() => runComponent(el), 4000);
                        break;
                    case 'eager':
                        runComponent(el);
                        break;
                    default:
                        if (deferUntil.startsWith('event:') && deferUntil.length > 6) {
                            window.addEventListener(deferUntil.substring(6), () => runComponent(el), {once: true, passive: true});
                        }
                }
            });
        }

        window.addEventListener('alpine:init', initDeferredComponents, {once: true, passive: true});
    })()
</script>
<script>
// x-teleport implementation
(_ => {
    document.addEventListener('DOMContentLoaded', event => {
        // x-teleport available only for template
        if (!Alpine.version.startsWith('2')) {
            return;
        }

        const teleportDirective = (el, expression) => {
            let target = document.querySelector(expression)
            let clone = el.content.cloneNode(true).firstElementChild;

            target.appendChild(clone);
            setTimeout(() => {
                target.querySelectorAll('[x-data]')
                    .forEach(el => Alpine.initializeComponent(el));
            }, 0)
        };

        document.querySelectorAll('template').forEach(el => {
            if (!el.hasAttribute('x-teleport')) {
                return;
            }

            teleportDirective(el, el.getAttribute('x-teleport'));
        });

        document.querySelectorAll('[x-data]').forEach(el => {
            if (el.hasAttribute('x-init')) {
                return;
            }

            setTimeout(() => {
                Alpine.initializeComponent(el);
            }, 0);
        });
    });
})()
</script>

<script type="module"
        src="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/Hyva_Theme/js/alpine3.min.js"
        defer
 crossorigin
></script>
<script>
    'use strict';
    function dispatchMessages(messages, hideAfter) {
        const messagesEvent = new CustomEvent("messages-loaded", {
            detail: {
                messages: messages,
                hideAfter: hideAfter
            }
        });
        window.dispatchEvent(messagesEvent);
    }

    if (typeof hyva === 'undefined' || (!hyva.getBrowserStorage || !hyva.getCookie || !hyva.setCookie)) {
        console.warn("Hyvä helpers are not loaded yet. Make sure they are included before this script");
    }

    (function( hyva, undefined ) {

        hyva.initFormKey = () => {
            const inputSelector = 'input[name="form_key"]',
                formKey = hyva.getFormKey();

            Array.from(document.querySelectorAll(inputSelector)).map(function (input) {
                input.value = formKey
            });
        }

        hyva.initMessages = () => {
            try {
                const messages = hyva.getCookie('mage-messages');
                window.mageMessages = messages ? JSON.parse(decodeURIComponent(messages).replace(/\+/g, ' ')) : [];

                dispatchMessages(window.mageMessages);

                                // empty `mage-messages` cookie
                const skipSetDomain = true;
                hyva.setCookie('mage-messages','', -1, skipSetDomain);

            } catch (error) {
                console.warn('Error parsing Cookie Messages:', error);
            }
        }

        window.addEventListener('DOMContentLoaded', hyva.initFormKey);
        hyva.alpineInitialized(hyva.initMessages)

    }( window.hyva = window.hyva || {} ));
</script>
<script>
    'use strict';
    {
        const private_content_key = 'mage-cache-storage';
        const private_content_expire_key = 'mage-cache-timeout';
        const private_content_version_key = 'private_content_version';
        const section_data_ids_key = 'section_data_ids';
        const mage_cache_session_id_key = 'mage-cache-sessid';
        const last_visited_store_key = 'last_visited_store';

        const ttl = 2592000;

        if (typeof hyva === 'undefined' || (!hyva.getBrowserStorage || !hyva.getCookie || !hyva.setCookie)) {
            console.warn("Hyvä helpers are not loaded yet. Make sure they are included before this script");
        }

        function loadSectionData () {
            const browserStorage = hyva.getBrowserStorage();
            if (!browserStorage) {
                typeof window.dispatchMessages !== "undefined" && window.dispatchMessages(
                    [{
                        type: "warning",
                        text: "Please enable LocalStorage in your browser."
                    }]
                );
                return;
            }
            try {
                let isInvalid = false;

                if (hyva.getCookie(last_visited_store_key) !== CURRENT_STORE_CODE) {
                    isInvalid = true;
                }
                hyva.setCookie(last_visited_store_key, CURRENT_STORE_CODE, false, false);

                if (!hyva.getCookie(mage_cache_session_id_key)) {
                    isInvalid = true;
                    browserStorage.removeItem(private_content_key);
                    const skipSetDomain = true;
                    const days = false;
                    hyva.setCookie(mage_cache_session_id_key, true, days, skipSetDomain)
                }

                const cookieVersion = hyva.getCookie(private_content_version_key);
                const storageVersion = browserStorage.getItem(private_content_version_key);

                if (cookieVersion && !storageVersion || cookieVersion !== storageVersion) {
                    isInvalid = true;
                }

                const privateContentExpires = browserStorage.getItem(private_content_expire_key);
                if (privateContentExpires && new Date(privateContentExpires) < new Date()) {
                    browserStorage.removeItem(private_content_key);
                }

                if (isInvalid && cookieVersion) {
                    fetchPrivateContent([]);
                } else if (cookieVersion && storageVersion && cookieVersion === storageVersion) {
                    const privateContent = JSON.parse(browserStorage.getItem(private_content_key));
                    if (
                        privateContent &&
                        privateContentExpires &&
                        privateContent.cart &&
                        privateContent.customer
                    ) {
                        dispatchPrivateContent(privateContent);
                    } else {
                        fetchPrivateContent([]);
                    }
                } else {
                    if (document.getElementById('default-section-data')) {
                        const privateContent = JSON.parse(document.getElementById('default-section-data').innerText.trim());
                        dispatchPrivateContent(privateContent);
                    } else {
                        dispatchPrivateContent({});
                    }
                }

            } catch (error) {
                console.warn('Error retrieving Private Content:', error);
            }
        }

                window.addEventListener('alpine:initialized', () => {
            loadSectionData = Alpine.debounce(loadSectionData, 1000);
            loadSectionData();
            window.addEventListener('reload-customer-section-data', loadSectionData);
        })
        window.processSectionDataBeforeDispatch = window.processSectionDataBeforeDispatch || (data => data);

        function dispatchPrivateContent(data) {

            const privateContentEvent = new CustomEvent("private-content-loaded", {
                detail: {
                    data: window.processSectionDataBeforeDispatch(data)
                }
            });
            window.dispatchEvent(privateContentEvent);
        }

        function fetchPrivateContent(sections) {
            fetch(`${BASE_URL}customer/section/load/?sections=${encodeURIComponent(sections.join(','))}`, {
                method: 'GET',
                headers: {
                    'Content-Type': 'application/json',
                    'X-Requested-With': 'XMLHttpRequest'
                }
            })
                .then(response => response.ok && response.json())
                .then(
                    data => {
                        if (data) {
                            try {
                                const browserStorage = hyva.getBrowserStorage();

                                // merge new data preserving non-invalidated sections
                                const oldSectionData = JSON.parse(browserStorage.getItem(private_content_key) || '{}') || {};

                                if ((! data.cart || ! data.cart.cartId) && oldSectionData['checkout-data']) {
                                    delete oldSectionData['checkout-data'];
                                }
                                const newSectionData = Object.assign(oldSectionData, data);

                                dispatchPrivateContent(newSectionData);

                                // don't persist messages, they've been dispatched already
                                if (newSectionData.messages && newSectionData.messages.messages ) {
                                    newSectionData.messages.messages = [];
                                }

                                browserStorage.setItem(private_content_key, JSON.stringify(newSectionData));

                                const expiresAt = new Date(Date.now() + (ttl * 1000)).toISOString();
                                browserStorage.setItem(private_content_expire_key, expiresAt);

                                const newCookieVersion = hyva.getCookie(private_content_version_key);
                                browserStorage.setItem(private_content_version_key, newCookieVersion);

                                // We don't need the section_data_ids in Hyvä, but we store them for compatibility
                                // with Luma Fallback. Otherwise, not all sections are loaded in Luma Checkout
                                hyva.setCookie(
                                    section_data_ids_key,
                                    JSON.stringify(
                                        Object.keys(data).reduce((sectionDataIds, sectionKey) => {
                                            sectionDataIds[sectionKey] = data[sectionKey]['data_id'];
                                            return sectionDataIds;
                                        }, {})
                                    ),
                                    false,
                                    true
                                );
                            } catch (error) {
                                console.warn("Couldn't store privateContent", error);
                            }
                        }
                    }
                );
        }
    }
</script>
<script>
    (() => {
        document.addEventListener('submit', event => event.target.action = event.target.action.replace('%25uenc%25', hyva.getUenc()));
    })()
</script>
<script>
    (events => {
        const dispatchUserInteractionEvent = () => {
            events.forEach(type => window.removeEventListener(type, dispatchUserInteractionEvent))
            window.dispatchEvent(new Event('init-external-scripts'))
        };
        events.forEach(type => window.addEventListener(type, dispatchUserInteractionEvent, {once: true, passive: true}))
    })(['touchstart', 'mousemove', 'wheel', 'scroll', 'keydown'])
</script>
<script>
    // Overridden for exception handling
    function initPriceBox() {
        return {
            updatePrice(priceData) {
                const regularPriceLabel = this.$root.querySelector('.normal-price .price-label');
                const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price');                const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price');
                // Ensure regularPriceLabel exists before accessing classList
                if (regularPriceLabel) {
                    if (priceData.finalPrice.amount < priceData.oldPrice.amount) {
                        regularPriceLabel.classList.add('hidden');
                    } else {
                        regularPriceLabel.classList.remove('hidden');
                    }
                }

                // Ensure regularPriceElement exists before setting innerText
                if (regularPriceElement) {
                    regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount);
                }

                // Ensure basePriceElement exists before setting innerText
                if (basePriceElement) {
                    basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount);
                }
            }
        }
    }
</script>
<script>
    'use strict';

    (function () {
        const modals = [];
        const excludedFromFocusTrapping = new Set();

        function trapFocusInNextModalWithOverlay() {
            for (let idx = modals.length -1; idx >= 0; idx--) {
                const nextOnStack = modals[idx];
                const nextDialogElement = nextOnStack.instance.$refs[nextOnStack.name];
                if (! isOverlayDisabled(nextDialogElement)) {
                    hyva.trapFocus(nextDialogElement);
                    break;
                }
            }
        }

        function focusables(dialogElement) {
            const selector = 'button, [href], input, textarea, select, details, [tabindex]:not([tabindex="-1"])';
            return Array.from(dialogElement.querySelectorAll(selector))
                .filter(el => !el.hasAttribute('disabled'));
        }

        function firstVisible(elements) {
            const a = Array.from(elements);
            for (let i = 0; i < a.length; i++) {
                if (a[i].offsetWidth || a[i].offsetHeight || a[i].getClientRects().length) return a[i];
            }
            return null;
        }

        function isInViewport(element) {
            const rect = element && element.getBoundingClientRect();
            return rect &&
                rect.top >= 0 &&
                rect.left >= 0 &&
                rect.right <= window.innerWidth &&
                rect.bottom <= window.innerHeight;
        }

        function setFocusAfterTransition(dialogElement, duration) {
                        const nested = Array.from(dialogElement.querySelectorAll('[role="dialog"]'));
            const candidates = Array.from(dialogElement.querySelectorAll('[x-focus-first]'));
            next: for (let candidate of candidates) {
                for (let child of nested) {
                    if (child.contains(candidate)) continue next;
                }
                setTimeout(() => candidate.focus(), 50);
                break;
            }
            window.setTimeout(() => {
                const focusElement = firstVisible(dialogElement.querySelectorAll('[x-focus-first]')) ||
                    focusables(dialogElement)[0] ||
                    null;
                focusElement && isInViewport(focusElement) && focusElement.focus();
            }, Math.max(1, duration));
        }

        function determineTrigger($refs, dialog, trigger) {
                        if (typeof trigger === 'undefined' && typeof dialog === 'object' && dialog.target instanceof HTMLElement) {
                return dialog.target;
            }
                        if (typeof dialog === 'string' && typeof trigger === 'object' && trigger.target instanceof HTMLElement) {
                return trigger.target;
            }
                        if (typeof trigger === 'string') {
                try {
                    return $refs[trigger] || document.querySelector(trigger)
                } catch (e) {}
            }
                        if (trigger instanceof Element) {
                return trigger;
            }

                        return null;
        }

        function isOverlayDisabled(dialog) {
            return dialog && dialog.hasAttribute('x-no-overlay')
        }

        function areRemainingModalsWithoutOverlay(modals)
        {
            const overflowDisabled = modals.map(modal => modal.instance.$refs[modal.name]).filter(isOverlayDisabled);

            return overflowDisabled.length === modals.length;
        }

        window.hyva.modal = function(options = {}) {
                        if (this.$el && this.$el.dataset && this.$el.dataset.options) {
                try {
                    options = Object.assign(options, JSON.parse(this.$el.dataset.options || '{}'));
                } catch (e) {
                    throw new Error('Cannot read the dialog options from the data-options attribute: not valid JSON');
                }
            }

            const config = Object.assign({
                dialog: 'dialog',                 duration: 300,                 transitionEnter: 'transition ease-out duration-300',
                transitionEnterStart: 'opacity-0',
                transitionEnterEnd: 'opacity-100',
                transitionLeave: 'transition ease-in duration-300',
                transitionLeaveStart: 'opacity-100',
                transitionLeaveEnd: 'opacity-0',
            }, options);
            let lastHide = 0;

            return {
                opened: {},
                show(dialog, trigger) {
                    const focusTargetAfterHide = determineTrigger(this.$refs, dialog, trigger);
                    const name = typeof dialog === 'string' ? dialog : config.dialog;
                    const dialogElement = this.$refs[name];
                    if (! dialogElement) {
                                                return;
                    }
                    const useOverlay = ! dialogElement.hasAttribute('x-no-overlay');

                    dialogElement.scrollTop = 0;

                                        if (this.opened[name]) {
                        return;
                    }

                    if (focusTargetAfterHide) {
                        focusTargetAfterHide.setAttribute('aria-expanded', 'true');
                    }

                    this.opened[name] = true;
                    useOverlay && this.$nextTick(() => hyva.trapFocus(dialogElement));
                    setFocusAfterTransition(dialogElement, config.duration);

                    const frame = {name, instance: this, focusTarget: focusTargetAfterHide, time: Date.now()};

                    modals.push(frame);
                    if (useOverlay) {
                        document.body.classList.add('overflow-hidden');
                    }
                    return new Promise(resolve => frame.resolve = resolve);
                },
                cancel() {
                    this.hide(false);
                },
                ok() {
                    this.hide(true);
                },
                hide(value) {
                                        if (Date.now() - lastHide < config.duration) {
                        return;
                    }
                    lastHide = Date.now();

                    const modal = modals.pop() || {};
                    if (! modal.instance) {
                        return;
                    }

                    const name = modal.name;
                    this.opened[name] = false;
                    hyva.releaseFocus(modal.instance.$refs[modal.name])
                    trapFocusInNextModalWithOverlay();

                    const nextFocusAfterHide = modal.focusTarget;
                    nextFocusAfterHide && setTimeout(() => {
                        nextFocusAfterHide.setAttribute('aria-expanded', 'false');
                        nextFocusAfterHide.focus()
                    }, config.duration);

                    if (modals.length === 0 || areRemainingModalsWithoutOverlay(modals)) {
                        document.body.classList.remove('overflow-hidden');
                    }

                    modal.resolve(value);
                },
                overlay(dialog) {
                    dialog = this.$el.dataset.dialogRefName || dialog;
                    const name = typeof dialog === 'string' ? dialog : config.dialog;
                    return {
                        ['x-show']() {
                            return this.opened[name]
                        },
                        ['x-transition:enter']: config.transitionEnter,
                        ['x-transition:enter-start']: config.transitionEnterStart,
                        ['x-transition:enter-end']: config.transitionEnterEnd,
                        ['x-transition:leave']: config.transitionLeave,
                        ['x-transition:leave-start']: config.transitionLeaveStart,
                        ['x-transition:leave-end']: config.transitionLeaveEnd,
                        ['@hyva-modal-show.window'](event) {
                            event.detail && event.detail.dialog === name && this.show(name, event.detail.focusAfterHide)
                        }
                    };
                },
                showDialogOnInit() {
                    const parent = this.$el.closest('[data-dialog-ref-name]');
                    if (parent && parent.dataset.dialogRefName) {
                        this.$dispatch('hyva-modal-show', {dialog: parent.dataset.dialogRefName})
                    }
                }
            };
        }

        window.hyva.modal.peek = () => modals.length > 0 && modals[modals.length -1]

        window.hyva.modal.pop = function () {
            if (modals.length > 0) {
                const modal = modals[modals.length -1];
                modal.instance.hide();
            }
        }

        window.hyva.modal.excludeSelectorsFromFocusTrap = function (selectors) {
            typeof selectors === 'string' || selectors instanceof String
                ? excludedFromFocusTrapping.add(selectors)
                : selectors.map(selector => excludedFromFocusTrapping.add(selector));
        }

        window.hyva.modal.eventListeners = {
            keydown: event => {
                if (event.key === 'Escape') {
                    window.hyva.modal.pop();
                }
            },
                        click: event => {
                if (modals.length > 0) {
                    const modal = modals[modals.length -1];
                    const dialog = modal.instance.$refs[modal.name];
                    if (modal.time + 50 < Date.now() && // if last click processing is more than 50ms ago
                        ! isOverlayDisabled(dialog) && // if dialog has overlay
                        ! dialog.contains(event.target)) { // if click is outside of dialog
                        modal.instance.hide();
                    }
                }
            }
        };

        document.addEventListener('keydown', window.hyva.modal.eventListeners.keydown);

        document.addEventListener('click', window.hyva.modal.eventListeners.click);
    })();
    window.addEventListener('alpine:init', () => {
        Alpine.data('hyvaModal', window.hyva.modal);
    }, {once: true});
</script>
<script>
    'use strict';

    (function () {
        window.hyva.cmsModal = function (id) {
            return {
                createModal (content, title) {
                    return `
            <div x-data="{
            closeModal: function () {
                this.hide();
                this.$nextTick(() => $root.closest('.cms-modal')?.remove())
            },
            ...hyva.modal()
            }" x-init="show">
                <div x-cloak x-bind="overlay()" @click="closeModal" class="fixed inset-0 flex items-center justify-center text-left bg-black bg-opacity-50 z-50">
                    <div x-ref="dialog" role="dialog" aria-labelledby="the-label" class="bg-white w-11/12 md:w-6/12 h-3/4 flex flex-col">
                        <div class="modal-title p-5 text-lg md:text-2xl font-semibold relative">
                            <span class="title block text-center">${ title }</span>
                            <div class="close absolute top-0 right-0 p-1.5 cursor-pointer hover:text-optimo" @click="closeModal" data-action="close">
                                <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" width="24" height="24" aria-hidden="true"><path d="m8.473 7.26 4.53 4.611c1.8 1.87 3.61 3.741 5.41 5.612l.71.73c.48.49.97 1 1.41 1.54.25.31.35.64.44.9.1.31-.08.43-.39.26-.22-.12-.51-.27-.78-.54-3.29-3.29-6.91-6.661-10.86-10.412L6.173 7.16l-.2-.2c-.72-.7-1.46-1.43-2.14-2.181-.38-.42-.56-.88-.71-1.25-.17-.44.07-.64.54-.43.34.15.8.35 1.21.73.09.08.18.16.26.24.7.66 1.41 1.32 2.12 1.99l.02.02.54.53.65.65h.01Z"/><path d="m7.243 15.583 4.6-4.542 5.59-5.441.73-.71c.49-.48 1-.98 1.54-1.421.32-.25.63-.36.91-.44.04-.01.08-.02.11-.02.05 0 .11-.02.14 0 .07.02.08.06.07.1-.04.11.02.17-.08.33-.12.21-.27.51-.53.77-3.27 3.311-6.64 6.942-10.38 10.904l-2.79 2.78-.2.2c-.7.72-1.42 1.46-2.18 2.141-.43.39-.88.56-1.26.71-.44.17-.64-.06-.43-.54.15-.34.35-.8.73-1.21.08-.09.16-.18.24-.26l1.98-2.131.02-.02.53-.55c.25-.26.45-.46.64-.66l.02.01Z"/></svg>
                            </div>
                        </div>
                        <div class="content px-5 overflow-y-auto overflow-x-hidden h-auto flex-auto">${ content }</div>
                        <div class="actions toolbar p-3">
                            <button @click="closeModal" data-action="close" type="button" class="btn btn-primary mx-auto w-full md:w-64">
                                Fermer                            </button>
                        </div>
                    </div>
                </div>
            </div>
        `
                },
                appendModal (content, title) {
                    const modal = document.createElement('div');

                    modal.classList.add('cms-modal')
                    modal.innerHTML = this.createModal(content, title);

                    document.body.append(modal)
                },
                async fetchCMS () {
                    try {
                        const response = await fetch(`${ window.location.origin }/rest/V1/contentpopupajax/loadpage/${ id }`);
                        const cms = await response.json();
                        const { content, title } = cms[0];

                        this.appendModal(content, title);
                    } catch (e) {
                        this.appendModal(
                            "Sorry, an error has occurred when retrieving the information. Try again later.",
                            "Une erreur s&#039;est produite."
                        )
                    }
                }
            }
        }
    })();
</script>
<script>
    function initConfigurableOptions(productId, optionConfig) {

        function findPathParam(key) {
                        const baseUrl = (BASE_URL.substr(0, 2) === '//' ? 'http:' : '') + BASE_URL;
            const baseUrlParts = (new URL(baseUrl)).pathname.replace(/\/$/, '').split('/');
            const pathParts = window.location.pathname.split('/').slice(baseUrlParts.length + 3);
            for (let i = 0; i < pathParts.length; i += 2) {
                if (pathParts[i] === key && pathParts.length > i) {
                    return pathParts[i + 1];
                }
            }
        }

        return {
            optionConfig,
            productId,
            itemId: (new URLSearchParams(window.location.search)).get('id') || findPathParam('id'),
            allowedAttributeOptions: [],
            selectedValues: [],
            init() {
                const hashOptions = this.getHashOptionParams();

                if (hashOptions) {
                    hashOptions.forEach(([optionId, value]) => {
                        this.changeOption(optionId, value);
                    });
                } else {
                    if (this.optionConfig.defaultValues) {
                        for (const [optionId, value] of Object.entries(this.optionConfig.defaultValues)) {
                            this.selectedValues[optionId] = value;

                            this.getOptionSku(optionId, value);
                        }
                        this.findSimpleIndex();
                        this.updatePrices();
                    }
                }

                this.findAllowedAttributeOptions();
            },
            getHashOptionParams () {
                const hash = window.location.hash.substring(1);
                let options= hash.split('&').map(v => v.split('='));
                let valid = true;


                options = hash.split('&').map(v => v.split('='));

                options.forEach(([option, val]) => {
                    try {
                        if (!this.optionConfig.attributes[option].options.find(({id}) => id === val)) {
                            valid = false;
                        }
                    } catch (e) {
                        valid = false;
                    }
                });

                return valid ? options : null;
            },
            findSimpleIndex() {
                                this.productIndex = this.calculateSimpleIndexForPartialSelection(this.selectedValues);
            },
            calculateSimpleIndexForPartialSelection(selectedValues) {
                if (selectedValues.length === 0) return 0;
                let productIndexIds = Object.keys(this.optionConfig.index);
                Object.keys(this.optionConfig.attributes).forEach((attribute) => {
                                        const productsWithAttributeMatch = selectedValues[attribute]
                        ? productIndexIds.filter((productIndex) => {
                            return this.optionConfig.index[productIndex][attribute] === this.selectedValues[attribute]
                        })
                        : [];

                                        productIndexIds = productsWithAttributeMatch.length ? productsWithAttributeMatch : productIndexIds
                })
                return productIndexIds[0];
            },
            calculateSimpleIndexForFullSelection(selectedValues) {
                const productIndexes = this.optionConfig.index;
                return Object.keys(productIndexes).find(productIndex => {
                    const productCandidateOptions = productIndexes[productIndex];

                    for (const productOption in productCandidateOptions) {
                        if (
                            ! selectedValues[productOption] ||
                            selectedValues[productOption] !== productCandidateOptions[productOption]
                        ) {
                            return false;
                        }
                    }
                    return productIndex;
                });
            },
            productIndex: 0,
            findAllowedAttributeOptions() {
                                this.allowedAttributeOptions = this.calculateAllowedAttributeOptions(this.selectedValues);
            },
            calculateAllowedAttributeOptions(selectedValues) {
                const allAttributes = this.optionConfig.attributes;
                const allAttributesSorted = Object.values(allAttributes).sort((a,b) => {
                    return a.position - b.position
                });
                const productIndexes = this.optionConfig.index;
                let previousOption = false;
                let availableIndexes = Object.keys(productIndexes);

                const newAllowedAttributeOptions = [];

                allAttributesSorted.forEach(attribute => {
                    if (previousOption && selectedValues[previousOption]) {
                        availableIndexes = availableIndexes.filter(availableIndex => {
                            return productIndexes[availableIndex][previousOption] ===
                                selectedValues[previousOption]
                        })
                    }
                    newAllowedAttributeOptions[attribute.id] =
                        allAttributes[attribute.id].options.filter(option => {
                            return !!option.products.find(product => {
                                return availableIndexes.includes(product);
                            })
                        });
                    previousOption = attribute.id;
                });
                return newAllowedAttributeOptions;
            },
            findAttributeByOptionId(optionId) {
                for (const attributeId in this.optionConfig.attributes) {
                    const attributeOptions = this.optionConfig.attributes[attributeId].options || [];
                    if (attributeOptions.find(option => option.id === optionId)) {
                        return attributeId;
                    }
                }
            },
            getAllowedAttributeOptions(attributeId) {
                return this.allowedAttributeOptions[attributeId] || []
            },
            getProductIdsForOption(option) {
                const attributeId = this.findAttributeByOptionId(option.id);
                const allOptions = this.optionConfig.attributes[attributeId];
                const opt = (allOptions && allOptions.options || []).find(o => o.id === option.id);
                return opt && opt.products
                    ? opt.products
                    : [];
            },
            findProductIdsForPartialSelection(optionSelection) {
                const candidateProducts = Object.values(optionSelection).reduce((candidates, optionId) => {
                    const newCandidates = this.getProductIdsForOption({id: optionId});
                    return candidates === null
                        ? newCandidates
                        : candidates.filter(productId => newCandidates.includes(productId));
                }, null);
                return candidateProducts || [];
            },
            findCheapestProductForPartialSelection(optionSelection) {
                const candidateProducts = this.findProductIdsForPartialSelection(optionSelection);
                return candidateProducts.reduce((cheapest, simpleIdx) => {
                    // in the first iteration we start with simpleIdx as the currently cheapest product
                    if (! this.optionConfig.optionPrices[cheapest]) return simpleIdx;
                    const knownCheapestPrice = this.optionConfig.optionPrices[cheapest].finalPrice.amount;
                    return knownCheapestPrice > this.optionConfig.optionPrices[simpleIdx].finalPrice.amount
                        ? simpleIdx
                        : cheapest;
                }, 0)
            },
            findProductIdToUseForOptionPrice(option) {
                // try to find a product for a complete selection
                const attributeId = this.findAttributeByOptionId(option.id);
                const optionSelection = Object.assign({}, this.selectedValues, {[attributeId]: option.id});
                const matchingSimpleIndex = this.calculateSimpleIndexForFullSelection(optionSelection);
                // if there is no complete selection, use the cheapest product for the option
                return matchingSimpleIndex || this.findCheapestProductForPartialSelection(optionSelection);
            },
            getAttributeOptionLabel(option) {
                const optionProduct = this.findProductIdToUseForOptionPrice(option);
                if ((! optionProduct) || (optionProduct === this.productIndex)) {
                    return option.label;
                }

                const currentPrice = this.getOptionPriceAdjustmentBasePrice();

                if (this.optionConfig.optionPrices[optionProduct]) {
                    const optionPrice = this.optionConfig.optionPrices[optionProduct].finalPrice.amount;
                    if (optionPrice !== currentPrice){
                        return option.label + ' ' + hyva.formatPrice(optionPrice - currentPrice, true);
                    }
                }
                return option.label;
            },
            getOptionPriceAdjustmentBasePrice() {
                if (this.optionConfig.optionPrices[this.productIndex]) {
                    return this.optionConfig.optionPrices[this.productIndex].finalPrice.amount
                }
                const cheapestForSelection = this.findCheapestProductForPartialSelection(this.selectedValues);
                return this.optionConfig.optionPrices[cheapestForSelection]
                    ? this.optionConfig.optionPrices[cheapestForSelection].finalPrice.amount
                    : this.optionConfig.prices.finalPrice.amount; // default price if no option selection
            },
            changeOption(optionId, value) {
                if (value === '') {
                    // create new array so the length property is reset if no option is selected (avoiding delete)
                    this.selectedValues = this.selectedValues.reduce((newSelection, val, opt) => {
                        if (opt !== optionId) {
                            newSelection[opt] = val;
                        }
                        return newSelection;
                    }, []);
                } else {
                    this.selectedValues[optionId] = value;
                }
                this.findSimpleIndex();
                this.findAllowedAttributeOptions();
                this.updatePrices();
                this.updateGallery();

                const detail = {
                    productId: this.productId,
                    optionId: optionId,
                    value: value,
                    productIndex: this.productIndex,
                    selectedValues: this.selectedValues,
                    candidates: this.findProductIdsForPartialSelection(this.selectedValues),
                    variationSku: this.optionConfig.sku[this.productIndex],
                    optionConfig: this.optionConfig
                };

                window.dispatchEvent(new CustomEvent('configurable-selection-changed', { detail }));
                window.dispatchEvent(new CustomEvent(`configurable-selection-changed-${this.productId}`, { detail }));
            },
            calculateIsMinimalPrice() {
                return (
                    this.selectedValues.filter(value => !!value).length <
                        Object.keys(this.optionConfig.attributes).length
                );
            },
            updatePrices() {
                const value = this.productIndex ?
                    this.optionConfig.optionPrices[this.productIndex] :
                    this.optionConfig.prices;

                this.$root.dispatchEvent(new CustomEvent(
                    "update-prices-" + this.productId,
                    {
                        bubbles: true,
                        detail: Object.assign(
                            value,
                            { isMinimalPrice: this.calculateIsMinimalPrice() }
                        )
                    }
                ));
            },

                        updateGallery() {
                const dispatchGallery = (detail) =>
                    window.dispatchEvent(new CustomEvent('update-gallery', { detail }));

                let images = this.optionConfig.images?.[this.productIndex];

                if (this.productIndex && images) {
                    dispatchGallery(this.sortImagesByPosition(images));
                } else {
                    const mainProduct = this.optionConfig.original_product_id;
                    images = this.optionConfig.images?.[mainProduct];

                    if (images) {
                        dispatchGallery(this.sortImagesByPosition(images));
                    } else {
                        const mainImage = Object.values(this.optionConfig.images || {})
                            .flat()
                            .find(({ isMain }) => isMain);

                        if (mainImage) dispatchGallery([mainImage]);
                    }
                }
            },
            sortImagesByPosition(images) {
                return images.sort((x, y) => {
                    return x.position === y.position ? 0 : (parseInt(x.position) > parseInt(y.position) ? 1 : -1)
                });
            },
            onGetCartData(data) {
                this.preselectCartItems(data);
                this.preselectQuerystringItems();
                this.preselectLocationHashItems();
            },
            preselectCartItems(data) {
                // pre-select options based on cart data for current (quote) itemId
                const cart = data && data.cart;
                if (cart && cart.items) {
                    const cartItem = cart.items.find((item) => {
                        return (
                            item.item_id === this.itemId
                            && item.product_id === this.productId
                        )
                    });
                    if (cartItem && cartItem.options && cartItem.options.length) {
                        cartItem.options.map(option => {
                            this.changeOption(option.option_id, option.option_value);
                        })
                    }
                }
            },
            preselectQuerystringItems() {
                // pre-select option like ?size=167
                const urlQueryParams = new URLSearchParams(window.location.search.replace('?',''));
                Object.values(this.optionConfig.attributes).map(attribute => {
                    urlQueryParams.get(attribute.code) &&
                    this.changeOption(attribute.id, urlQueryParams.get(attribute.code));
                });
            },
            preselectLocationHashItems() {
                // pre-select option like #144=167
                const urlHashParams = new URLSearchParams(window.location.hash.replace('#',''));
                Object.values(this.optionConfig.attributes).map(attribute => {
                    urlHashParams.get(attribute.id) &&
                    this.changeOption(attribute.id, urlHashParams.get(attribute.id));
                });
            }
        }
    }

</script>
<script>
    function initSwatchOptions(swatchConfig, options = {}) {
        return {
            swatchConfig,
            getAttributeSwatchData(attributeId) {
                const swatchConfig = Object.assign({}, this.swatchConfig[attributeId]);

                swatchConfig['details'] = JSON.parse(swatchConfig['additional_data']);

                return swatchConfig;
            },
            getAllAttributeOptions(attributeId) {
                return (
                    this.optionConfig.attributes[attributeId] &&
                    this.optionConfig.attributes[attributeId].options
                ) || []
            },
            optionIsActive(attributeId, optionId) {
                // return true if a product with this option is in stock
                return !!this.getAllowedAttributeOptions(attributeId).find(
                    option => option.id === optionId
                )
            },
            optionIsEnabled(attributeId, optionId) {
                // return true if a product with this option is enabled
                for (const productId in this.optionConfig.index) {
                    if (this.optionConfig.index[productId][attributeId] === optionId) {
                        return true;
                    }
                }
                return false;
            },
            mapSwatchTypeNumberToTypeCode(t) {
                return {
                    0: 'text',
                    1: 'color',
                    2: 'image',
                    3: 'empty'
                }[t] || 'text';
            },
            checkStatusOfItem(productConfig, itemId) {
                if (!this.optionConfig.salable?.length) return;
                return !this.optionConfig.salable[productConfig][itemId];
            },

            toggleAddToCart(productConfig, itemId) {
                if (!this.optionConfig.salable?.length) return;
                const item = !this.optionConfig.salable[productConfig][itemId];
                window.dispatchEvent(new CustomEvent('product-stock-status', { detail: { item } }));
            },

            triggerUpdateItemSku() {
                window.dispatchEvent(new CustomEvent(`configurable-selection-changed-${this.productId}`, { detail: { variationSku : this.optionConfig.sku[this.productIndex]} }));
            },

            updateConfigurableOptions(condition) {
                this.triggerUpdateItemSku();

               return condition;
            },

            swatchImgListener(attributeId, itemId) {
                this.getTypeOfFirstOption(attributeId);
                this.getOptionSku(attributeId, itemId);
                this.toggleAddToCart(attributeId, itemId);
            },

            getOptionSku(attributeId, itemId) {
                const attributeOptions = this.optionConfig?.attributes?.[attributeId]?.options;
                const selectedOption = attributeOptions.find(opt => opt.id === itemId);
                const productKey = selectedOption?.products?.[0];
                const item = productKey ? this.optionConfig.sku[productKey] : undefined;

                window.dispatchEvent(new CustomEvent('product-stock-data', {
                    detail: { item }
                }));
            },

            getTypeOfFirstOption(attributeId) {
                let itemSwatch;

                for (const id in this.swatchConfig[attributeId]) {
                    const { type } = this.swatchConfig[attributeId][id];

                    this.getOptionSku(attributeId, id);

                    return itemSwatch =  type && this.mapSwatchTypeNumberToTypeCode(type);
                }

                return itemSwatch;
            },

            getVisualSwatchType(attId, optionId) {
                // If a type configuration is present for the given option id, use it
                const config = this.swatchConfig[attId] || {};

                return config[optionId]?.type ?
                    this.mapSwatchTypeNumberToTypeCode(config[optionId].type) :
                    this.getTypeOfFirstOption(optionId);
                // Otherwise - if no config is present for the target option - use the type of the first option
                // with a type property from the attribute, thus assuming its the same type as the target option.
                // (This edge case condition can occur on single swatch products if some options are not salable)
            },
            getSwatchType(attributeId, optionId) {
                // Deserialize the attribute details the first time they are used
                if (this.swatchConfig[attributeId] && !this.swatchConfig[attributeId].details) {
                    this.swatchConfig[attributeId] = this.getAttributeSwatchData(attributeId);
                }
                const type = this.swatchConfig[attributeId]?.details?.swatch_input_type || 'empty';
                return type === 'visual' ? this.getVisualSwatchType(attributeId, optionId) : type;
            },
            isTextSwatch(attributeId, optionId) {
                return this.getSwatchType(attributeId, optionId) === 'text';
            },
            isVisualSwatch(attributeId, optionId) {
                const type = this.getSwatchType(attributeId, optionId);

                return ['image', 'color'].includes(type);
            },
            getTypeSwatches(attributeId, optionId) {
                return 'type-' + this.getSwatchType(attributeId, optionId);
            },
            getSwatchBackgroundStyle(attributeId, optionId) {
                const config = this.getSwatchConfig(attributeId, optionId);
                const type = this.getSwatchType(attributeId, optionId);

                if (type === "color") {
                    return 'background-color:' + config.value;
                } else if (type === "image") {
                    return "background: url('" + config.value + "') no-repeat center/cover";
                } else {
                    return '';
                }
            },
            getSwatchText(attributeId, optionId) {
                const config = this.getSwatchConfig(attributeId, optionId);
                return config.label || config.value || this.getOptionLabelFromOptionConfig(attributeId, optionId);
            },
            getOptionLabelFromOptionConfig(attributeId, optionId) {
                // Fallback if no value is present in swatchConfig data
                // Reference issue https://gitlab.hyva.io/hyva-themes/magento2-default-theme/-/issues/190
                const option = this.getAllAttributeOptions(attributeId).filter(option => option.id === optionId);
                return option && option[0] && option[0].label ||'';
            },
            getSwatchConfig(attributeId, optionId) {
                return this.swatchConfig[attributeId] && this.swatchConfig[attributeId][optionId]
                    ? this.swatchConfig[attributeId][optionId]
                    : false;
            },
            activeTooltipItem: false,
            tooltipPositionElement: false,
            isTooltipVisible() {
                return this.activeTooltipItem &&
                    this.getSwatchConfig(
                        this.activeTooltipItem.attribute,
                        this.activeTooltipItem.item
                    );
            },
            getTooltipImageStyle(attributeId, optionId) {
                const { value, thumb } = this.getSwatchConfig(attributeId, optionId);
                const type = this.getSwatchType(attributeId, optionId);

                if (type === "color") {
                    return `background-color: ${value}; width: 110px; height: 90px;`;
                } else if (type === "image") {
                    return `background: url('${thumb}') center center no-repeat; width: 110px; height: 90px; background-size: contain`;
                } else {
                    return 'display:none';
                }
            },
            getTooltipPosition() {
                if (this.tooltipPositionElement) {
                    const { left } = this.tooltipPositionElement.getBoundingClientRect();
                    const minGap = (this.$refs.content.offsetWidth / 2) + 8;
                    const maxRight = left + this.$refs.content.offsetWidth + 8;
                    let offsetLeft = this.tooltipPositionElement.offsetLeft

                    if (left < minGap) { // align left screen
                        offsetLeft += minGap - left;
                    }

                    if (maxRight > window.innerWidth) { // align right screen
                        offsetLeft -= maxRight - window.innerWidth
                    }

                    return `top: ${this.tooltipPositionElement.offsetTop + 8 }px; left: ${offsetLeft}px;`;
                } else {
                    return ''
                }
            },
            getTooltipArrowPosition () {
                let top = this.tooltipPositionElement.offsetTop - 16;
                let left = this.tooltipPositionElement.offsetLeft + (this.tooltipPositionElement.offsetWidth / 2) - 8;

                return this.tooltipPositionElement ? `top: ${top}px; left: ${left}px;`: '';
            },
            getTooltipLabel() {
                return this.getSwatchConfig(this.activeTooltipItem.attribute, this.activeTooltipItem.item).label
            },
            showSwatches: false,
            numberToShow: 3,
            snowMoreOptions(count) {
                this.numberToShow = count;
            },
            ...options
        }
    }
</script>

<script>
    function initPriceBox () {
        return {
            updatePrice ({ finalPrice, oldPrice }) {
                const finalPriceEl = this.$root.querySelector('.price-box .final-price-box');
                const specialPrice = this.$root.querySelector('.price-box .special-price');
                const priceBox = this.$root.querySelector('.price-box');
                const isRegularPrice = finalPrice.amount === oldPrice.amount;
                const priceBoxNormal = this.$root.querySelector('.price-box .normal-final-price');
                const priceBoxSpecial = this.$root.querySelector('.price-box .special-price-container');

                priceBox && priceBox.classList.toggle('special-price', !isRegularPrice);
                priceBoxNormal?.classList.toggle('special-price-exist', !isRegularPrice);
                priceBoxSpecial?.classList.toggle('special-price-exist', !isRegularPrice);

                if (specialPrice) {
                    specialPrice.querySelector('.price').innerText = hyva.formatPrice(finalPrice.amount);
                }

                if (finalPriceEl) {
                    finalPriceEl.querySelector('.price').innerText = hyva.formatPrice(oldPrice.amount);
                }
            }
        }
    }
</script>
<script>
    'use strict';

    (() => {
        const equalizeButtonWidths = (buttons) => {
            const buttonList = buttons.querySelectorAll('[data-element="link"], [data-element="empty_link"]');
            let buttonMinWidth = 0;

            buttonList.forEach(button => {
                button.style.minWidth = `${buttonMinWidth}px`;

                const buttonWidth = button.offsetWidth;

                if (buttonWidth > buttonMinWidth) {
                    buttonMinWidth = buttonWidth;
                }
            });

            buttonList.forEach(button => {
                button.style.minWidth = `${buttonMinWidth}px`;
            });
        };

        window.addEventListener('DOMContentLoaded', () => {
            document.querySelectorAll('[data-content-type="buttons"][data-same-width="true"]').forEach(buttons => {
                equalizeButtonWidths(buttons);
            });
        });
    })();
</script>
<script>
    'use strict';

    (() => {
        const initCarousels = (elements) => {
            if (!Glider) {
                return;
            }

            const initProductCarousel = (carousel) => {
                const gliderElement = carousel.querySelector('[data-role="glider-content"]');

                if (!gliderElement) {
                    return;
                }

                const gliderDots = carousel.querySelector('.glider-dots');
                const gliderPrev = carousel.querySelector('.glider-prev');
                const gliderNext = carousel.querySelector('.glider-next');

                const glider = new Glider(gliderElement, {
                    slidesToShow: 2,
                    slidesToScroll: 2,
                    scrollLock: true,
                    draggable: true,
                    dragVelocity: 2.5,
                    dots: gliderDots,
                    arrows: {
                        prev: gliderPrev,
                        next: gliderNext,
                    },
                    responsive: [
                        {
                            breakpoint: 768,
                            settings: {
                                slidesToShow: 3,
                                slidesToScroll: 3,
                            }
                        },
                        {
                            breakpoint: 1024,
                            settings: {
                                slidesToShow: 4,
                                slidesToScroll: 4,
                            }
                        },
                    ],
                });

                carousel.classList.remove('overflow-x-scroll');
                gliderPrev.classList.remove('hidden');
                gliderNext.classList.remove('hidden');

                if (carousel.dataset.autoplay !== 'false') {
                    gliderAutoplay(
                        glider,
                        carousel.dataset.autoplaySpeed,
                        carousel.dataset.infiniteLoop
                    );
                }
            };

            const initSliderCarousel = (slider) => {
                slider.innerHTML = `<div data-role="glider-content">${slider.innerHTML}</div>`;
                slider.classList.add('glider-contain');

                slider.insertAdjacentHTML(
                    'beforeend',
                    '\u000A\u003Cdiv\u0020class\u003D\u0022carousel\u002Dnav\u0022\u003E\u000A\u0020\u0020\u0020\u0020\u003Cbutton\u000A\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020aria\u002Dlabel\u003D\u0022Pr\u00E9c\u00E9dent\u0022\u000A\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020class\u003D\u0022glider\u002Dprev\u0020flex\u0020absolute\u0020\u002Dleft\u002D4\u0020bottom\u002D2\u002F4\u0020rounded\u002Dlg\u0020bg\u002Dwhite\u0020w\u002D8\u0020h\u002D8\u000A\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020focus\u003Aoutline\u002Dnone\u0020items\u002Dcenter\u0020justify\u002Dcenter\u0020hover\u003Abg\u002Doptimo\u0020hover\u003Atext\u002Dwhite\u0020transition\u002Dcolors\u0022\u003E\u000A\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u003Csvg\u0020xmlns\u003D\u0022http\u003A\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\u0022\u0020fill\u003D\u0022none\u0022\u0020viewBox\u003D\u00220\u00200\u002033\u002032\u0022\u0020width\u003D\u002210\u0022\u0020height\u003D\u002216\u0022\u0020aria\u002Dhidden\u003D\u0022true\u0022\u003E\u003Cpath\u0020fill\u003D\u0022\u0023101820\u0022\u0020d\u003D\u0022M17.0851\u002011.5332c\u002D.8429.8856\u002D1.6857\u00201.7711\u002D2.5073\u00202.6566\u002D.4054.4481\u002D.8215.8962\u002D1.1949\u00201.3443l\u002D.2774.3308c\u002D.1067.1493\u002D.064.0746\u002D.096.1173\u002D.0214.0427\u002D.0214.032.032.128\u00201.6964\u00202.2086\u00203.7555\u00204.4277\u00205.7079\u00206.6042l.7895.8429c.5335.5655\u00201.0883\u00201.1523\u00201.5897\u00201.7497.2881.3521.3841.6935.4695.9816.096.3414\u002D.1281.4801\u002D.5121.2987\u002D.2774\u002D.128\u002D.6402\u002D.2987\u002D.9496\u002D.6081\u002D1.8991\u002D1.8884\u002D3.8408\u002D3.8302\u002D5.8253\u002D5.9\u002D.4908\u002D.5228\u002D.9922\u002D1.0456\u002D1.4937\u002D1.5791l\u002D.7468\u002D.8322\u002D.3734\u002D.4374c\u002D.1174\u002D.1387\u002D.2347\u002D.2881\u002D.4588\u002D.6081\u002D.0747\u002D.2988\u002D.3414\u002D.5975\u002D.1387\u002D.8962.064\u002D.1494.0854\u002D.3095.1814\u002D.4588l.2454\u002D.3521c.2347\u002D.3201.4694\u002D.6295.7148\u002D.9282.4801\u002D.5974.9816\u002D1.1842\u00201.4937\u002D1.771l3.1047\u002D3.2648.224\u002D.2347c.7789\u002D.8322\u00201.6004\u002D1.6964\u00202.4646\u002D2.486.5014\u002D.4267\u00201.0562\u002D.6507\u00201.5043\u002D.8214.5441\u002D.2134.8215.0426.6188.576\u002D.1387.3842\u002D.3414.8963\u002D.7682\u00201.3657\u002D.096.1067\u002D.1813.2027\u002D.2667.2988\u002D.7255.8108\u002D1.4723\u00201.6323\u002D2.2084\u00202.4432l\u002D.0214.0213\u002D.5868.6295c\u002D.2774.2988\u002D.4908.5335\u002D.7148.7575v.032Z\u0022\u002F\u003E\u003C\u002Fsvg\u003E\u000A\u0020\u0020\u0020\u0020\u003C\u002Fbutton\u003E\u000A\u0020\u0020\u0020\u0020\u003Cdiv\u0020role\u003D\u0022tablist\u0022\u0020class\u003D\u0022glider\u002Ddots\u0020flex\u0020flex\u002Dwrap\u0020m\u002D2\u0020justify\u002Dcenter\u0020p\u002D0\u0020focus\u003Aoutline\u002Dnone\u0022\u003E\u003C\u002Fdiv\u003E\u000A\u0020\u0020\u0020\u0020\u003Cbutton\u000A\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020aria\u002Dlabel\u003D\u0022Suivant\u0022\u000A\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020class\u003D\u0022glider\u002Dnext\u0020\u0020flex\u0020absolute\u0020\u002Dright\u002D4\u0020bottom\u002D2\u002F4\u0020rounded\u002Dlg\u0020bg\u002Dwhite\u0020w\u002D8\u0020h\u002D8\u000A\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020focus\u003Aoutline\u002Dnone\u0020items\u002Dcenter\u0020justify\u002Dcenter\u0020hover\u003Abg\u002Doptimo\u0020hover\u003Atext\u002Dwhite\u0020transition\u002Dcolors\u0022\u003E\u000A\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u003Csvg\u0020xmlns\u003D\u0022http\u003A\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\u0022\u0020fill\u003D\u0022none\u0022\u0020viewBox\u003D\u00220\u00200\u002033\u002032\u0022\u0020width\u003D\u002210\u0022\u0020height\u003D\u002216\u0022\u0020aria\u002Dhidden\u003D\u0022true\u0022\u003E\u003Cpath\u0020fill\u003D\u0022\u0023101820\u0022\u0020d\u003D\u0022M15.4565\u002011.5332c.8429.8856\u00201.6858\u00201.7711\u00202.5073\u00202.6566.4054.4481.8215.8962\u00201.1949\u00201.3443l.2774.3308c.1067.1493.064.0746.0961.1173.0213.0427.0213.032\u002D.0321.128\u002D1.6963\u00202.2086\u002D3.7555\u00204.4277\u002D5.7079\u00206.6042l\u002D.7895.8429c\u002D.5335.5655\u002D1.0883\u00201.1523\u002D1.5897\u00201.7497\u002D.2881.3521\u002D.3841.6935\u002D.4694.9816\u002D.0961.3414.128.4801.5121.2987.2774\u002D.128.6401\u002D.2987.9495\u002D.6081\u00201.8991\u002D1.8884\u00203.8409\u002D3.8302\u00205.8253\u002D5.9.4908\u002D.5228.9922\u002D1.0456\u00201.4937\u002D1.5791l.7468\u002D.8322.3735\u002D.4374c.1173\u002D.1387.2347\u002D.2881.4587\u002D.6081.0747\u002D.2988.3414\u002D.5975.1387\u002D.8962\u002D.064\u002D.1494\u002D.0853\u002D.3095\u002D.1813\u002D.4588l\u002D.2454\u002D.3521c\u002D.2348\u002D.3201\u002D.4695\u002D.6295\u002D.7149\u002D.9282\u002D.4801\u002D.5974\u002D.9815\u002D1.1842\u002D1.4936\u002D1.771l\u002D3.1048\u002D3.2648\u002D.224\u002D.2347c\u002D.7789\u002D.8322\u002D1.6003\u002D1.6964\u002D2.4645\u002D2.486\u002D.5015\u002D.4267\u002D1.0563\u002D.6507\u002D1.5044\u002D.8214\u002D.5441\u002D.2134\u002D.8215.0426\u002D.6188.576.1387.3842.3414.8963.7682\u00201.3657.096.1067.1814.2027.2667.2988.7255.8108\u00201.4724\u00201.6323\u00202.2085\u00202.4432l.0213.0213.5868.6295c.2774.2988.4908.5335.7148.7575v.032Z\u0022\u002F\u003E\u003C\u002Fsvg\u003E\u000A\u0020\u0020\u0020\u0020\u003C\u002Fbutton\u003E\u000A\u003C\u002Fdiv\u003E\u000A'
                );

                const gliderElement = slider.querySelector('[data-role="glider-content"]');
                const gliderDots = slider.querySelector('.glider-dots');
                const gliderPrev = slider.querySelector('.glider-prev');
                const gliderNext = slider.querySelector('.glider-next');

                const glider = new Glider(gliderElement, {
                    slidesToShow: 1,
                    slidesToScroll: 1,
                    scrollLock: true,
                    scrollLockDelay: 250,
                    draggable: true,
                    dragVelocity: 2.5,
                    dots: gliderDots,
                    arrows: {
                        prev: gliderPrev,
                        next: gliderNext,
                    },
                });

                slider.classList.add('glider-initialized');
                if (slider.dataset.showArrows === 'true') {
                    gliderPrev.classList.remove('hidden');
                    gliderNext.classList.remove('hidden');
                }

                if (slider.dataset.autoplay !== 'false') {
                    gliderAutoplay(
                        glider,
                        slider.dataset.autoplaySpeed,
                        slider.dataset.infiniteLoop
                    );
                }
            };

            const gliderAutoplay = (glider, milliseconds, loop) => {
                const pagesCount = glider.track.childElementCount;
                let slideTimeout = null;
                let nextIndex = 1;
                let paused = false;

                const slide = () => {
                    slideTimeout = setTimeout(
                        () => {
                            if (loop && nextIndex >= pagesCount) {
                                nextIndex = 0;
                            }
                            glider.scrollItem(nextIndex);
                        },
                        parseInt(milliseconds)
                    );
                };

                glider.ele.addEventListener('glider-animated', () => {
                    nextIndex = glider.slide + glider.opt.slidesToScroll;
                    window.clearInterval(slideTimeout);
                    if (!paused && (loop || nextIndex < pagesCount)) {
                        slide();
                    }
                });

                const pause = () => {
                    if (!paused) {
                        clearInterval(slideTimeout);
                        paused = true;
                    }
                };

                const unpause = () => {
                    if (paused) {
                        slide();
                        paused = false;
                    }
                };

                glider.ele.parentElement.addEventListener('mouseover', pause, {passive: true});
                glider.ele.parentElement.addEventListener('touchstart', pause, {passive: true});
                glider.ele.parentElement.addEventListener('mouseout', unpause, {passive: true});
                glider.ele.parentElement.addEventListener('touchend', unpause, {passive: true});

                slide();
            };

            elements.forEach(element => {
                if (element.dataset.contentType === 'products') {
                    initProductCarousel(element);
                }
                if (element.dataset.contentType === 'slider') {
                    initSliderCarousel(element);
                }
            });
        };

        window.addEventListener('DOMContentLoaded', () => {
            let sliderElement = 0;

            const carouselElements = document.querySelectorAll(
                `[data-content-type="products"][data-appearance="carousel"],
                [data-content-type="slider"]`
            );

            carouselElements.forEach(element => {
                sliderElement = element.classList.contains('pagebuilder-slider');
            });

            if (!!sliderElement > 0) {
                const script = document.createElement('script');
                script.type = 'text/javascript';

                script.addEventListener('load', () => {
                    initCarousels(carouselElements);
                });

                script.src = 'https\u003A\u002F\u002Fwww.espaceplaisir.fr\u002Fstatic\u002Fversion1779257511\u002Ffrontend\u002FInteractiv4\u002Fespaceplaisir\u002Dhyva\u002Ffr_FR\u002FMagento_PageBuilder\u002Fjs\u002Fglider.min.js';
                document.head.appendChild(script);
            }
        });
    })();
</script>
<script>
    'use strict';

    (() => {
        const initMaps = (elements) => {
            const renderMap = (element) => {
                const dataLocations = element.dataset.locations;

                // Hide map if no locations set
                if (!dataLocations || dataLocations === '[]') {
                    element.classList.add('hidden');
                    return;
                }

                const map = new google.maps.Map(
                    element,
                    getMapOptions(
                        element.dataset.showControls !== 'true',
                        element.dataset.showControls === 'true'
                    )
                );
                const locations = JSON.parse(dataLocations);
                const latitudeLongitudeBounds = new google.maps.LatLngBounds();
                const bounds = [];

                locations.forEach(location => {
                    const position = {
                        lat: parseFloat(location.position.latitude),
                        lng: parseFloat(location.position.longitude),
                    };
                    bounds.push(position);

                    const infowindow = new google.maps.InfoWindow({
                        content: getInfoWindowContent(location),
                    });
                    const marker = new google.maps.Marker({
                        position: position,
                        map,
                        title: location.location_name,
                    });

                    marker.addListener('click', () => {
                        infowindow.open(map, marker);
                    });
                });

                // Set bounds if multiple locations
                if (bounds.length > 1) {
                    bounds.forEach(function (bound) {
                        latitudeLongitudeBounds.extend(bound);
                    });
                    map.fitBounds(latitudeLongitudeBounds);
                }

                // Center if single location
                if (bounds.length === 1) {
                    map.setCenter(bounds[0]);
                }
            };

            const getMapOptions = (disableDefaultUI, mapTypeControl) => {
                const style = '';
                return {
                    zoom: 8,
                    scrollwheel: false,
                    disableDoubleClickZoom: false,
                    mapTypeControlOptions: {
                        style: google.maps.MapTypeControlStyle.DEFAULT,
                    },
                    styles: style ? JSON.parse(style) : [],
                    disableDefaultUI: disableDefaultUI,
                    mapTypeControl: mapTypeControl,
                };
            };

            const getInfoWindowContent = (location) => {
                const title = location.location_name ?
                    `<h3 class="text-2xl font-medium text-gray-900 title-font">${location.location_name}</h3>` : '';
                const comment = location.comment ? `<p class="px-1 pt-3 text-primary">${location.comment}</p>` : '';
                const phone = location.phone ? `<p class="px-1 pt-3 text-primary">Phone: ${location.phone}</p>` : '';
                const street = location.address ? `${location.address}<br/>` : '';
                const city = location.city ? `${location.city}<br/>` : '';
                const state = location.state ? `${location.state}<br/>` : '';
                const zipCode = location.zipcode ? `${location.zipcode}<br/>` : '';
                const country = location.country ? location.country : '';

                return `<div>
                            ${title}
                            ${comment}
                            ${phone}
                            <p class="px-1 pt-3 text-primary">
                                ${street}
                                ${city}
                                ${state}
                                ${zipCode}
                                ${country}
                            </p>
                        </div>`;
            };

            const hideAllMaps = () => {
                document.querySelectorAll('[data-content-type="map"]').forEach(element => {
                    element.classList.add('hidden');
                });
            };

            window.gm_authFailure = () => {
                hideAllMaps();
            };

            if (typeof google.maps === 'undefined') {
                hideAllMaps();
                return;
            }

            elements.forEach(element => {
                if (element.dataset.contentType === 'map') {
                    renderMap(element);
                }
            });
        };

        window.addEventListener('DOMContentLoaded', () => {
            const mapElements = document.querySelectorAll('[data-content-type="map"]');

            if (mapElements.length > 0) {
                const script = document.createElement('script');
                script.type = 'text/javascript';

                script.addEventListener('load', () => {
                    initMaps(mapElements);
                });

                script.src = 'https\u003A\u002F\u002Fmaps.googleapis.com\u002Fmaps\u002Fapi\u002Fjs\u003Fv\u003D3\u0026key\u003D';
                document.head.appendChild(script);
            }
        });
    })();
</script>
<script>
    'use strict';

    (() => {
        const initParallaxImage = (element) => {
            if (!window.jarallax) {
                return;
            }

            element.classList.add('jarallax');
            element.dataset.jarallax = '';
            const parallaxSpeed = parseFloat(element.dataset.parallaxSpeed) || 0.5;
            const elementStyle = window.getComputedStyle(element);

            window.jarallax(element, {
                imgPosition: elementStyle.backgroundPosition || '50% 50%',
                imgRepeat: elementStyle.backgroundRepeat || 'no-repeat',
                imgSize: elementStyle.backgroundSize || 'cover',
                speed: parallaxSpeed,
            });
        };

        const initVideoBackground = (element) => {
            if (!window.jarallax) {
                return;
            }

            let slider = null;

            if (element.classList.contains('pagebuilder-slide-wrapper')) {
                const viewportElement = document.createElement('div');
                slider = element.closest('[data-content-type=slider]');
                viewportElement.classList.add('jarallax-viewport-element');
                element.dataset.elementInViewport = '.jarallax-viewport-element';
                element.appendChild(viewportElement);
            }

            element.classList.add('jarallax');
            element.dataset.jarallax = '';
            const parallaxSpeed = parseFloat(element.dataset.parallaxSpeed) || 0.5;

            window.jarallax(element, {
                imgSrc: element.dataset.videoFallbackSrc,
                speed: parallaxSpeed,
                videoLoop: element.dataset.videoLoop,
                videoPlayOnlyVisible: element.dataset.videoPlayOnlyVisible,
                videoLazyLoading: element.dataset.videoLazyLoad,
                disableVideo: false,
                elementInViewport: element.dataset.elementInViewport &&
                    element.querySelector(element.dataset.elementInViewport),
            });

            if (slider) {
                if (slider.dataset.afterChangeIsSet) {
                    return;
                }

                slider.addEventListener('glider-loaded', () => {
                    slider.querySelectorAll('.jarallax').forEach(videoSlide => {
                        videoSlide.jarallax && videoSlide.jarallax.onScroll();
                    });
                });

                slider.addEventListener('glider-animated', () => {
                    slider.querySelectorAll('.jarallax').forEach(videoSlide => {
                        videoSlide.jarallax && videoSlide.jarallax.onScroll();
                    });
                });

                slider.dataset.afterChangeIsSet = true;
            }
        };

        window.addEventListener('DOMContentLoaded', () => {
            const parallaxImageElements = document.querySelectorAll(
                `[data-content-type="row"][data-background-type="image"][data-enable-parallax="1"],
                [data-content-type="row"] > [data-background-type="image"][data-enable-parallax="1"]`
            );

            const videoBackgroundsElements = document.querySelectorAll(
                `[data-content-type="row"][data-background-type="video"][data-enable-parallax="1"],
                [data-content-type="row"] > [data-background-type="video"][data-enable-parallax="1"],
                [data-content-type="banner"] [data-background-type="video"],
                [data-content-type="slide"] [data-background-type="video"]`
            );

            if (parallaxImageElements.length > 0 || videoBackgroundsElements.length > 0) {
                const jarallaxScript = document.createElement('script');
                jarallaxScript.type = 'text/javascript';

                jarallaxScript.addEventListener('load', () => {
                    parallaxImageElements.forEach(row => {
                        initParallaxImage(row);
                    });

                    const jarallaxVideoScript = document.createElement('script');
                    jarallaxVideoScript.type = 'text/javascript';

                    jarallaxVideoScript.addEventListener('load', () => {
                        videoBackgroundsElements.forEach(element => {
                            initVideoBackground(element);
                        });
                    });

                    jarallaxVideoScript.src = 'https\u003A\u002F\u002Fwww.espaceplaisir.fr\u002Fstatic\u002Fversion1779257511\u002Ffrontend\u002FInteractiv4\u002Fespaceplaisir\u002Dhyva\u002Ffr_FR\u002FMagento_PageBuilder\u002Fjs\u002Fjarallax\u002Dvideo.min.js';
                    document.head.appendChild(jarallaxVideoScript);
                });

                jarallaxScript.src = 'https\u003A\u002F\u002Fwww.espaceplaisir.fr\u002Fstatic\u002Fversion1779257511\u002Ffrontend\u002FInteractiv4\u002Fespaceplaisir\u002Dhyva\u002Ffr_FR\u002FMagento_PageBuilder\u002Fjs\u002Fjarallax.min.js';
                document.head.appendChild(jarallaxScript);
            }
        });
    })();
</script>
<script>
    'use strict';

    (() => {
        const applyShowOnHover = (element) => {
            const showOverlayOnHover = (element) => {
                const overlay = element.querySelector('.pagebuilder-overlay');
                const color = overlay.dataset.overlayColor;

                element.addEventListener('mouseover', () => {
                    overlay.style.backgroundColor = color;
                });
                element.addEventListener('mouseout', () => {
                    overlay.style.backgroundColor = 'transparent';
                });
            };

            const showButtonOnHover = (element) => {
                const button = element.querySelector('.pagebuilder-banner-button');

                element.addEventListener('mouseover', () => {
                    button.style.opacity = '1';
                    button.style.visibility = 'visible';
                });
                element.addEventListener('mouseout', () => {
                    button.style.opacity = '0';
                    button.style.visibility = 'hidden';
                });
            };

            if (element.dataset.showOverlay === 'hover') {
                showOverlayOnHover(element);
            }
            if (element.dataset.showButton === 'hover') {
                showButtonOnHover(element);
            }
        };

        window.addEventListener('DOMContentLoaded', () => {
            document.querySelectorAll('[data-content-type="banner"],[data-content-type="slider"]').forEach(element => {
                applyShowOnHover(element);
            });
        });
    })();
</script>
<script>
    'use strict';

    (() => {
        document.querySelectorAll('[data-content-type="tab-item"]').forEach(tabItem => {
            tabItem.setAttribute('x-show', `tab === '${tabItem.id}'`);
        });

        document.querySelectorAll('[data-content-type="tabs"]').forEach(tab => {
            const defaultActiveTab = parseInt(tab.dataset.activeTab) || 0;

            tab.querySelectorAll('.tab-header').forEach((tabHeader, index) => {
                const tabLink = tabHeader.querySelector('a');
                const tabId = tabLink.getAttribute('href').replace('#', '');

                tabHeader.setAttribute(':class', `{ 'active': tab === '${tabId}' }`);
                tabLink.setAttribute('x-on:click.prevent', `tab = '${tabId}'`);

                if (index === defaultActiveTab) {
                    tab.setAttribute('x-data', `{ tab: '${tabId}' }`);
                }
            });
        });
    })();
</script>

<div
    x-data="baseGa4()"
    x-init="$dispatch('ga4-initialized')"
    @ga4-event.window="pushDataLayer($event.detail)"
    @private-content-loaded.window="privateContent = $event.detail.data"
>
    
<script>
    const ga4Products = new WeakMap();
    const ga4Wrappers = [];

    window.addEventListener('updateGa4Products', e => {
        const { node, products, isAjax = true  } = e.detail;
        updateGa4Products({ node, products, isAjax }).init();
    });

    function getGa4Products () {
        return {
            items: (wrap) => ga4Products.get(wrap) || ga4Products.get(document) || [],
            wrappers: ga4Wrappers
        };
    }

    function updateGa4Products ({ products, isAjax, el, node }) {
        return {
            init () {
                const wrap = node || document.querySelector(el) || document
                const items = Object.values(JSON.parse(products));

                ga4Products.set(wrap, [...getGa4Products().items(wrap), ...items]);
                ga4Wrappers.push(wrap);

                if (isAjax) {
                    /**
                     * Trigger ga4Products to add intersection listener
                     */
                    window.dispatchEvent(new CustomEvent("ga4Products", { detail: { wrap } }));
                }
            }
        }
    }
</script>

<div
    x-data="defaultGa4()"
    @private-content-loaded.window.once="initGa4"
    @ga4-products.window="(e) => viewItemListHandler(e.detail.wrap)"
>
</div>
<script>
    let pageType = null;
            pageType = 'home';
    
    function defaultGa4 () {
        const observableProductList = new Set();
        return {
            isCartSyncDisabled: +'',
            toCartForm: '[x-i4-ajax-cart] [x-ref="submit"]',
            toWishListButton: '.action.towishlist',
            productSelector: '.product, .product-item',
            productLinkSelector: 'a.product__link',
            debounceTiming: 1000,
            intersectOptions: {
                rootMargin: '0px',
                threshold: 0.2
            },
            ga4Products: Alpine.reactive([]),

            viewPageHandler () {
                const userData = this.customerData('customer').userData;

                if (userData) {
                    this.$dispatch('ga4-page-view-event', userData);
                    this.sessionID = userData.session_id;

                    this.pushDataLayer({
                        ...userData,
                        page_type: pageType
                    }, true);
                }
            },
                                    async initGa4 () {
                                this.viewPageHandler();

                this.$watch('ga4Products', Alpine.debounce(async () => {
                    if (this.ga4Products.length) {
                        const pList = this.ga4ProductSorter(this.ga4Products)
                            .map(items => this.pushDataLayer( { ecommerce: { items }, event: 'view_item_list' }));
                        await Promise.all(pList)

                        this.ga4Products = [];
                    }
                }, this.debounceTiming))

                document.addEventListener('mousedown', (e) => {
                    this.targetHandler(e, this.productLinkSelector, this.selectHandler.bind(this));
                    this.targetHandler(
                        e,
                        `${this.toCartForm},${this.toWishListButton}`,
                        this.addProductToStorageHandler.bind(this)
                    );
                });

                this.viewItemListHandler();
                window.addEventListener('ga4Products', (e) => this.viewItemListHandler(e.detail.wrap))
                window.addEventListener('i4-add_to_cart', (e) => this.syncAddToCartProductStorage(e));

                if (!this.isCartSyncDisabled) {
                    this.syncProductStorage();
                }
            },

            ga4ProductSorter (items) {
                return Object.values(items.reduce((acc, curr) => {
                    const { item_list_id } = curr;

                    acc[item_list_id] = acc[item_list_id] || [];
                    acc[item_list_id].push(curr);

                    return acc;
                }, {})).map(item => item.sort((a, b) => a.index - b.index));
            },

            addProductToStorageHandler (e) {
                const product = e.target.closest(this.productSelector);
                const currentProductData = product && this.getGa4Products(product)[0];

                if (currentProductData) {
                    this.setProductToStorage(currentProductData);
                }
            },

            async selectHandler (e) {
                const product = e.target.closest(this.productSelector);
                const currentProductData = product ? this.getGa4Products(product)[0] : null;

                if (product && currentProductData) {
                    this.pushDataLayer( { ecommerce: { items: [currentProductData] }, event: 'select_item' });

                    this.setProductToStorage(currentProductData);
                }
            },

            targetHandler (e, query, cb) {
                const el = e.target;
                const target = el.classList.contains(query) ? el : el.closest(query);

                target && cb(e, target);
            },

            getGa4Products (el) {
                const { wrappers, items } = getGa4Products();
                const href = el.querySelector(this.productLinkSelector).href;
                const wrap = wrappers.find((wrapper) => wrapper.contains(el))

                return items(wrap).filter(({ item_url }) => href.includes(item_url));
            },

            viewItemListHandler (wrapper = document) {
                const observer = new IntersectionObserver((entries, observer) => {
                    entries.forEach(entry => {
                        if (entry.isIntersecting) {
                            this.ga4Products.push(...this.getGa4Products(entry.target))
                            observableProductList.delete(entry.target);
                            observer.unobserve(entry.target);
                        }
                    });
                }, this.intersectOptions);

                wrapper.querySelectorAll(this.productSelector).forEach(el => {
                    if (!observableProductList.has(el)) {
                        observableProductList.add(el);
                        observer.observe(el);
                    }
                });
            },
        }
    }
</script>

<div
    x-data="ga4Section()"
    @private-content-loaded.window="ga4SectionHandler($event.detail.data)"
>
</div>
<script>
    function ga4Section () {
        return {
                        exceptions: Object.values({"add_payment_info":"add_payment_info","login":"login","add_to_cart":"add_to_cart","account_creation":"account_creation"}),
            ga4SectionHandler (data) {
                const datalayer = data?.['i4-ga4']?.datalayer;

                if (datalayer) {
                    datalayer.forEach(async layer => await this.sendGa4Layer(layer));

                    const mageStorage = JSON.parse(window.localStorage.getItem('mage-cache-storage'));

                    delete mageStorage?.['i4-ga4'];
                    delete data?.['i4-ga4'];

                    window.localStorage.setItem('mage-cache-storage', JSON.stringify(mageStorage))
                }
            },
            async sendGa4Layer (layer) {
                const items = layer.ecommerce?.items;

                if (items) {
                    this.updateStorage(items);
                    layer.ecommerce.items = this.addAdditionalProductData(items);
                }

                if (this.exceptions.includes(layer.event)) {
                                        this.$dispatch(`i4-${layer.event}`, layer);
                } else {
                    await this.pushDataLayer(layer);
                }
            }
        }
    }
</script>
<script>
    (function(name,definition){if(typeof module!='undefined'&&module.exports)module.exports=definition()
    else if(typeof define=='function'&&define.amd)define(definition)
    else this[name]=definition()})('Diacritics',function(){var output={map:{}};var reference=[{'base':' ','letters':'\u00A0'},{'base':'A','letters':'\u0041\u24B6\uFF21\u00C0\u00C1\u00C2\u1EA6\u1EA4\u1EAA\u1EA8\u00C3\u0100\u0102\u1EB0\u1EAE\u1EB4\u1EB2\u0226\u01E0\u00C4\u01DE\u1EA2\u00C5\u01FA\u01CD\u0200\u0202\u1EA0\u1EAC\u1EB6\u1E00\u0104\u023A\u2C6F'},{'base':'AA','letters':'\uA732'},{'base':'AE','letters':'\u00C6\u01FC\u01E2'},{'base':'AO','letters':'\uA734'},{'base':'AU','letters':'\uA736'},{'base':'AV','letters':'\uA738\uA73A'},{'base':'AY','letters':'\uA73C'},{'base':'B','letters':'\u0042\u24B7\uFF22\u1E02\u1E04\u1E06\u0243\u0182\u0181'},{'base':'C','letters':'\u0043\u24B8\uFF23\u0106\u0108\u010A\u010C\u00C7\u1E08\u0187\u023B\uA73E'},{'base':'D','letters':'\u0044\u24B9\uFF24\u1E0A\u010E\u1E0C\u1E10\u1E12\u1E0E\u0110\u018B\u018A\u0189\uA779'},{'base':'DZ','letters':'\u01F1\u01C4'},{'base':'Dz','letters':'\u01F2\u01C5'},{'base':'E','letters':'\u0045\u24BA\uFF25\u00C8\u00C9\u00CA\u1EC0\u1EBE\u1EC4\u1EC2\u1EBC\u0112\u1E14\u1E16\u0114\u0116\u00CB\u1EBA\u011A\u0204\u0206\u1EB8\u1EC6\u0228\u1E1C\u0118\u1E18\u1E1A\u0190\u018E'},{'base':'F','letters':'\u0046\u24BB\uFF26\u1E1E\u0191\uA77B'},{'base':'G','letters':'\u0047\u24BC\uFF27\u01F4\u011C\u1E20\u011E\u0120\u01E6\u0122\u01E4\u0193\uA7A0\uA77D\uA77E'},{'base':'H','letters':'\u0048\u24BD\uFF28\u0124\u1E22\u1E26\u021E\u1E24\u1E28\u1E2A\u0126\u2C67\u2C75\uA78D'},{'base':'I','letters':'\u0049\u24BE\uFF29\u00CC\u00CD\u00CE\u0128\u012A\u012C\u0130\u00CF\u1E2E\u1EC8\u01CF\u0208\u020A\u1ECA\u012E\u1E2C\u0197'},{'base':'J','letters':'\u004A\u24BF\uFF2A\u0134\u0248'},{'base':'K','letters':'\u004B\u24C0\uFF2B\u1E30\u01E8\u1E32\u0136\u1E34\u0198\u2C69\uA740\uA742\uA744\uA7A2'},{'base':'L','letters':'\u004C\u24C1\uFF2C\u013F\u0139\u013D\u1E36\u1E38\u013B\u1E3C\u1E3A\u0141\u023D\u2C62\u2C60\uA748\uA746\uA780'},{'base':'LJ','letters':'\u01C7'},{'base':'Lj','letters':'\u01C8'},{'base':'M','letters':'\u004D\u24C2\uFF2D\u1E3E\u1E40\u1E42\u2C6E\u019C'},{'base':'N','letters':'\u004E\u24C3\uFF2E\u01F8\u0143\u00D1\u1E44\u0147\u1E46\u0145\u1E4A\u1E48\u0220\u019D\uA790\uA7A4'},{'base':'NJ','letters':'\u01CA'},{'base':'Nj','letters':'\u01CB'},{'base':'O','letters':'\u004F\u24C4\uFF2F\u00D2\u00D3\u00D4\u1ED2\u1ED0\u1ED6\u1ED4\u00D5\u1E4C\u022C\u1E4E\u014C\u1E50\u1E52\u014E\u022E\u0230\u00D6\u022A\u1ECE\u0150\u01D1\u020C\u020E\u01A0\u1EDC\u1EDA\u1EE0\u1EDE\u1EE2\u1ECC\u1ED8\u01EA\u01EC\u00D8\u01FE\u0186\u019F\uA74A\uA74C'},{'base':'OI','letters':'\u01A2'},{'base':'OO','letters':'\uA74E'},{'base':'OU','letters':'\u0222'},{'base':'P','letters':'\u0050\u24C5\uFF30\u1E54\u1E56\u01A4\u2C63\uA750\uA752\uA754'},{'base':'Q','letters':'\u0051\u24C6\uFF31\uA756\uA758\u024A'},{'base':'R','letters':'\u0052\u24C7\uFF32\u0154\u1E58\u0158\u0210\u0212\u1E5A\u1E5C\u0156\u1E5E\u024C\u2C64\uA75A\uA7A6\uA782'},{'base':'S','letters':'\u0053\u24C8\uFF33\u1E9E\u015A\u1E64\u015C\u1E60\u0160\u1E66\u1E62\u1E68\u0218\u015E\u2C7E\uA7A8\uA784'},{'base':'T','letters':'\u0054\u24C9\uFF34\u1E6A\u0164\u1E6C\u021A\u0162\u1E70\u1E6E\u0166\u01AC\u01AE\u023E\uA786'},{'base':'Th','letters':'\u00DE'},{'base':'TZ','letters':'\uA728'},{'base':'U','letters':'\u0055\u24CA\uFF35\u00D9\u00DA\u00DB\u0168\u1E78\u016A\u1E7A\u016C\u00DC\u01DB\u01D7\u01D5\u01D9\u1EE6\u016E\u0170\u01D3\u0214\u0216\u01AF\u1EEA\u1EE8\u1EEE\u1EEC\u1EF0\u1EE4\u1E72\u0172\u1E76\u1E74\u0244'},{'base':'V','letters':'\u0056\u24CB\uFF36\u1E7C\u1E7E\u01B2\uA75E\u0245'},{'base':'VY','letters':'\uA760'},{'base':'W','letters':'\u0057\u24CC\uFF37\u1E80\u1E82\u0174\u1E86\u1E84\u1E88\u2C72'},{'base':'X','letters':'\u0058\u24CD\uFF38\u1E8A\u1E8C'},{'base':'Y','letters':'\u0059\u24CE\uFF39\u1EF2\u00DD\u0176\u1EF8\u0232\u1E8E\u0178\u1EF6\u1EF4\u01B3\u024E\u1EFE'},{'base':'Z','letters':'\u005A\u24CF\uFF3A\u0179\u1E90\u017B\u017D\u1E92\u1E94\u01B5\u0224\u2C7F\u2C6B\uA762'},{'base':'a','letters':'\u0061\u24D0\uFF41\u1E9A\u00E0\u00E1\u00E2\u1EA7\u1EA5\u1EAB\u1EA9\u00E3\u0101\u0103\u1EB1\u1EAF\u1EB5\u1EB3\u0227\u01E1\u00E4\u01DF\u1EA3\u00E5\u01FB\u01CE\u0201\u0203\u1EA1\u1EAD\u1EB7\u1E01\u0105\u2C65\u0250\u0251'},{'base':'aa','letters':'\uA733'},{'base':'ae','letters':'\u00E6\u01FD\u01E3'},{'base':'ao','letters':'\uA735'},{'base':'au','letters':'\uA737'},{'base':'av','letters':'\uA739\uA73B'},{'base':'ay','letters':'\uA73D'},{'base':'b','letters':'\u0062\u24D1\uFF42\u1E03\u1E05\u1E07\u0180\u0183\u0253'},{'base':'c','letters':'\u0063\u24D2\uFF43\u0107\u0109\u010B\u010D\u00E7\u1E09\u0188\u023C\uA73F\u2184'},{'base':'d','letters':'\u0064\u24D3\uFF44\u1E0B\u010F\u1E0D\u1E11\u1E13\u1E0F\u0111\u018C\u0256\u0257\uA77A'},{'base':'dz','letters':'\u01F3\u01C6'},{'base':'e','letters':'\u0065\u24D4\uFF45\u00E8\u00E9\u00EA\u1EC1\u1EBF\u1EC5\u1EC3\u1EBD\u0113\u1E15\u1E17\u0115\u0117\u00EB\u1EBB\u011B\u0205\u0207\u1EB9\u1EC7\u0229\u1E1D\u0119\u1E19\u1E1B\u0247\u025B\u01DD'},{'base':'f','letters':'\u0066\u24D5\uFF46\u1E1F\u0192\uA77C'},{'base':'ff','letters':'\uFB00'},{'base':'fi','letters':'\uFB01'},{'base':'fl','letters':'\uFB02'},{'base':'ffi','letters':'\uFB03'},{'base':'ffl','letters':'\uFB04'},{'base':'g','letters':'\u0067\u24D6\uFF47\u01F5\u011D\u1E21\u011F\u0121\u01E7\u0123\u01E5\u0260\uA7A1\u1D79\uA77F'},{'base':'h','letters':'\u0068\u24D7\uFF48\u0125\u1E23\u1E27\u021F\u1E25\u1E29\u1E2B\u1E96\u0127\u2C68\u2C76\u0265'},{'base':'hv','letters':'\u0195'},{'base':'i','letters':'\u0069\u24D8\uFF49\u00EC\u00ED\u00EE\u0129\u012B\u012D\u00EF\u1E2F\u1EC9\u01D0\u0209\u020B\u1ECB\u012F\u1E2D\u0268\u0131'},{'base':'j','letters':'\u006A\u24D9\uFF4A\u0135\u01F0\u0249'},{'base':'k','letters':'\u006B\u24DA\uFF4B\u1E31\u01E9\u1E33\u0137\u1E35\u0199\u2C6A\uA741\uA743\uA745\uA7A3'},{'base':'l','letters':'\u006C\u24DB\uFF4C\u0140\u013A\u013E\u1E37\u1E39\u013C\u1E3D\u1E3B\u017F\u0142\u019A\u026B\u2C61\uA749\uA781\uA747'},{'base':'lj','letters':'\u01C9'},{'base':'m','letters':'\u006D\u24DC\uFF4D\u1E3F\u1E41\u1E43\u0271\u026F'},{'base':'n','letters':'\x6E\xF1\u006E\u24DD\uFF4E\u01F9\u0144\u00F1\u1E45\u0148\u1E47\u0146\u1E4B\u1E49\u019E\u0272\u0149\uA791\uA7A5\u043B\u0509'},{'base':'nj','letters':'\u01CC'},{'base':'o','letters':'\u07C0\u006F\u24DE\uFF4F\u00F2\u00F3\u00F4\u1ED3\u1ED1\u1ED7\u1ED5\u00F5\u1E4D\u022D\u1E4F\u014D\u1E51\u1E53\u014F\u022F\u0231\u00F6\u022B\u1ECF\u0151\u01D2\u020D\u020F\u01A1\u1EDD\u1EDB\u1EE1\u1EDF\u1EE3\u1ECD\u1ED9\u01EB\u01ED\u00F8\u01FF\u0254\uA74B\uA74D\u0275'},{'base':'oe','letters':'\u0152\u0153'},{'base':'oi','letters':'\u01A3'},{'base':'ou','letters':'\u0223'},{'base':'oo','letters':'\uA74F'},{'base':'p','letters':'\u0070\u24DF\uFF50\u1E55\u1E57\u01A5\u1D7D\uA751\uA753\uA755'},{'base':'q','letters':'\u0071\u24E0\uFF51\u024B\uA757\uA759'},{'base':'r','letters':'\u0072\u24E1\uFF52\u0155\u1E59\u0159\u0211\u0213\u1E5B\u1E5D\u0157\u1E5F\u024D\u027D\uA75B\uA7A7\uA783'},{'base':'s','letters':'\u0073\u24E2\uFF53\u00DF\u015B\u1E65\u015D\u1E61\u0161\u1E67\u1E63\u1E69\u0219\u015F\u023F\uA7A9\uA785\u1E9B'},{'base':'ss','letters':'\xDF'},{'base':'t','letters':'\u0074\u24E3\uFF54\u1E6B\u1E97\u0165\u1E6D\u021B\u0163\u1E71\u1E6F\u0167\u01AD\u0288\u2C66\uA787'},{'base':'th','letters':'\u00FE'},{'base':'tz','letters':'\uA729'},{'base':'u','letters':'\u0075\u24E4\uFF55\u00F9\u00FA\u00FB\u0169\u1E79\u016B\u1E7B\u016D\u00FC\u01DC\u01D8\u01D6\u01DA\u1EE7\u016F\u0171\u01D4\u0215\u0217\u01B0\u1EEB\u1EE9\u1EEF\u1EED\u1EF1\u1EE5\u1E73\u0173\u1E77\u1E75\u0289'},{'base':'v','letters':'\u0076\u24E5\uFF56\u1E7D\u1E7F\u028B\uA75F\u028C'},{'base':'vy','letters':'\uA761'},{'base':'w','letters':'\u0077\u24E6\uFF57\u1E81\u1E83\u0175\u1E87\u1E85\u1E98\u1E89\u2C73'},{'base':'x','letters':'\u0078\u24E7\uFF58\u1E8B\u1E8D'},{'base':'y','letters':'\u0079\u24E8\uFF59\u1EF3\u00FD\u0177\u1EF9\u0233\u1E8F\u00FF\u1EF7\u1E99\u1EF5\u01B4\u024F\u1EFF'},{'base':'z','letters':'\u007A\u24E9\uFF5A\u017A\u1E91\u017C\u017E\u1E93\u1E95\u01B6\u0225\u0240\u2C6C\uA763'}];for(var i=0,refLength=reference.length;i<refLength;i++){var letters=reference[i].letters.split("");for(var j=0,letLength=letters.length;j<letLength;j++){output.map[letters[j]]=reference[i].base;}}
        output.clean=function(input){if(!input||!input.length||input.length<1){return"";}
            var string="";var letters=input.split("");var index=0;var length=letters.length;var letter;for(;index<length;index++){letter=letters[index];string+=letter in output.map?output.map[letter]:letter;}
            return string;};return output;});
</script><div x-data="initGa4ViewItemList()" @algolia-view-item-list.window.debounce.1000ms="viewItemListHandler"></div>
<script>
    function initGa4ViewItemList () {
        return {
            queryID: {
                search: ''
            },
            viewItemListHandler ({ detail:{ hits = [], listId = 'search_results', queryID, searchTerm, wrapper} }) {
                if (this.queryID[listId] !== queryID) {
                    this.queryID[listId] = queryID;

                    if (!hits || !hits.length) return;

                    const products = hits.map((product, i) => {
                        return {
                            'index': product.__position || ++i,
                            'item_list_id': searchTerm.length ? searchTerm : document.querySelector('h1').innerText ,
                            'item_list_name': searchTerm.length ? 'search' : 'category',
                            'item_name': product.name,
                            'item_id': Array.isArray(product.sku) ? product.sku[0]: product.sku,
                            'price': this.getProductPrice(product),
                            'quantity': 1,
                            'item_url': product.__queryID ? product.urlForInsights : product.url,
                            'discount': this.getProductDiscount(product),
                            'item_brand': product.item_brand ?? null,
                            ...(product.ga4_variables || {}),
                            ...(product['Categories'] || {})
                        }
                    });

                    this.$dispatch('updateGa4Products', { products: JSON.stringify(products), node: document.querySelector(wrapper) });
                }
            },
            getProductDiscount (product) {
              return product.default_option_discount || product.discount;
            },
            getProductPrice (product) {
                return product.default_option_price || this.getRegularProductPrice(product);
            },
            getRegularProductPrice (product) {
                let price = product.price[algoliaConfig.currencyCode];
                price = +(price.default_formated || price.default_original_formated).match(/\d+(?:\.\d+)?/g).join('.');

                return price;
            }
        }
    }
</script>
<div
    x-data="initGa4SignUp()"
    @private-content-loaded.window="userData($event.detail.data)"
></div>
<script>
    function initGa4SignUp () {
        return {
            signUpEventResolver: '',
            waitForSignUpEvent: '',

            init () {
                this.waitForSignUpEvent = new Promise((resolve) => this.signUpEventResolver = resolve);

                window.addEventListener('i4-account_creation', ( { detail }) => {
                    this.addSignUpVariables(detail);
                })
            },

            addSignUpVariables (detail) {
                this.waitForSignUpEvent
                    .then(account_id => {
                        detail.account_id = account_id;
                    });

                detail.login = {
                    login_place: window.GA4_PAGE_TYPE
                }

                this.pushDataLayer(detail)
            },

            userData ({customer}) {
                if (!customer?.userData?.visitor?.visitor_id) return;
                this.signUpEventResolver(customer.userData.visitor.visitor_id);
            }
        }
    }
</script>

<div x-data="ga4GeneralVariables"
     @ga4-event-push.window="addGeneralVariables($event.detail)"
     @private-content-loaded.window="userData"
></div>

<script>
    function ga4GeneralVariables () {
        return {
            customerIsLoggedIn: false,
            languages: {
                'de':'German',
                'en':'English',
                'fr':'French'
            },
            visitor_id: '',
            visit_id: '',
            customerFirstOrder: false,

            addGeneralVariables (detail) {
                detail.event_timestamp = Math.floor(Date.now() / 1000);
                detail.event_timing = Date.now() - performance.timing.responseEnd;
                detail.visitor = {
                    visitor_tracking_id: (hyva.getCookie('_ga') || '').substring(6) || undefined,
                    visitor_login_state: this.customerIsLoggedIn ? "Logged in" : "Logged out",
                    visitor_lifetime_value: 0,
                    visitor_existing_customer: this.customerIsLoggedIn ? "Yes" : "No",
                    visitor_id: this.visitor_id,
                    visit_id: this.visit_id,
                    visitor_first_order: this.customerFirstOrder
                }
                detail.store = {
                    store_language: this.languages[document.querySelector('html').getAttribute('lang')]
                }
                detail.page_type = window.GA4_PAGE_TYPE;

                detail.ecommerce?.items?.forEach(({item_list_id, item_list_name}, i) => {
                    if (item_list_id !== item_list_name) {
                        detail.ecommerce.items[i].item_list_name = item_list_id;
                        detail.ecommerce.items[i].item_list_id = item_list_name;
                    }
                });
            },

            userData ({detail}) {
                this.customerIsLoggedIn = detail.data.customer.isLoggedIn;
                this.visitor_id = detail.data.customer?.userData?.visitor?.visitor_id;
                this.visit_id = detail.data.customer?.userData?.visitor?.visit_id;
                this.customerFirstOrder = detail.data.customer?.userData?.visitor?.visitor_first_order;
            }
        }
    }
</script>

<div x-data="ga4ViewCartHandle"
     @i4-view-cart.window="fetchViewCartEvent($event.detail)"
></div>

<script>
    function ga4ViewCartHandle () {
        return {
            fetchViewCartEvent ({cartData, isOpen, isAuto}) {
                if (!cartData?.items?.length || !isOpen) return;

                fetch(`${BASE_URL}rest/${CURRENT_STORE_CODE}/V1/amga4/minicart/list`, {
                    method: 'POST',
                    cache: 'no-cache'
                })
                    .then(response => response.json())
                    .then(result => {
                        if (JSON.parse(result)?.ecommerce?.items?.length) {
                            this.pushViewCartEvent(JSON.parse(result), isAuto)
                        }
                    });
            },

            pushViewCartEvent (data, cartOpen) {
                data.cart.cart_type = 'overlay';
                data.cart.cart_opening = cartOpen ? "auto" : "manual";

                this.pushDataLayer(data);
            }
        }
    }
</script>
<div
    x-data="initGa4Login()"
    @login-submit.window="loginHandler"
    @register-submit.window="registerHandler"
    @i4-login.window="loginSectionHandler"
    @private-content-loaded.window="userData($event.detail.data)"
></div>
<script>
    function initGa4Login () {
        return {
            loginEventResolver: '',
            waitForLoginEvent: '',

            init () {
                this.waitForLoginEvent = new Promise((resolve) => this.loginEventResolver = resolve)
            },
            loginHandler ({ detail }) {
                if (!detail) {
                    this.pushDataLayer({ event: 'login_failed', error: 'Invalid form.' });
                }
            },
            registerHandler ({ detail }) {
                if (!detail) {
                    this.pushDataLayer({ event: 'sign_up_failed', error: 'Invalid form.' });
                }
            },
            loginSectionHandler ({ detail:layer }) {
                layer.url = localStorage.getItem('i4-referrer') || 'direct';
                layer.login = {
                    login_place: window.GA4_PAGE_TYPE,
                    login_method: "email",
                    login_method_position: "1"
                }

                this.waitForLoginEvent
                    .then(email => {
                        layer.email = email;
                        this.pushDataLayer(layer);
                    });
            },
            userData ({customer}) {
                if (!customer?.userData?.user?.email) return;

                this.loginEventResolver(customer.userData.user.email);
            }
        }
    }
</script>

    <div x-data="initGa4Promo()"></div>
    <script>
        function initGa4Promo () {
            const isTriggerOnce = +'1';

            return {
                init () {
                    const promoList = document.querySelectorAll('[data-ga4-promo]');

                    promoList.forEach(el => {
                        try {
                            const ga4data = JSON.parse(el.dataset.ga4Promo);

                            this.intersectionHandler(el, ga4data);
                            this.selectHandler(el, ga4data);
                        } catch (e) {
                            console.warn(`ga4 promo failed for ${el}: ${e}`)
                        }
                    })
                },
                                intersectionHandler(el, ga4data) {
                    const observer = new IntersectionObserver((entries) => {
                        entries.forEach((entry) => {
                            if (entry.isIntersecting) {
                                this.sendEvent(ga4data, 'view_promotion');

                                if (isTriggerOnce) {
                                    observer.unobserve(el)
                                }
                            }
                        })
                    }, { root: null, rootMargin: "0px", threshold: 0.1, });

                    observer.observe(el);
                },
                                selectHandler (el, ga4data) {
                    let links = el.href ? [el]: el.querySelectorAll('a');

                    if (el.dataset.ga4Wrap) {
                        links = el.closest(el.dataset.ga4Wrap)?.querySelectorAll('a') || [];
                    }

                    links.forEach(link => link.addEventListener('click', (e) => {
                        this.sendEvent(ga4data, 'select_promotion');

                        this.setExtraPromoFields({
                            origin: e.currentTarget.href,
                            extraData: ga4data
                        })
                    }))
                },
                                sendEvent (ga4data, event) {
                    this.pushDataLayer({
                        event,
                        ecommerce: {
                            items: [ga4data]
                        }
                    })
                },
            }
        }
    </script>
    <script>
        function baseGa4 () {
            let viewPageResolver;
            const waitForPageViewEvent = new Promise((resolve) => viewPageResolver = resolve);

            return {
                privateContent: {},
                STORAGE_KEY: 'ga4_products',
                STORAGE_ACTIVE_PRODUCT: 'ga4_active_product',
                STORAGE_EXTRA_KEY: 'ga4_extra_data',
                defaultAdditionalData: {
                    index: 0,
                    item_list_id: undefined,
                    item_list_name: undefined
                },
                arrayExceptions: JSON.parse('\u007B\u0022child_item_id\u0022\u003A\u00221\u0022,\u0022item_id\u0022\u003A\u00221\u0022,\u0022ecommerce\u0022\u003A\u00221\u0022,\u0022visitor_id\u0022\u003A\u00221\u0022\u007D'),
                reorderItemIndex: 0,
                sessionID: null,
                customerData (type, cb) {
                    return cb ? Alpine.effect(() => {
                        this.privateContent[type] && cb(this.privateContent[type]);
                    }) : this.privateContent[type];
                },
                push (layer) {
                    if (layer.ecommerce) {
                        window.dataLayer.push({ ecommerce: null });

                                                if (layer.ecommerce?.items.find(({ item_id }) => item_id)) {
                            layer.ecommerce.items = this.addAdditionalProductData(layer.ecommerce.items)
                        }
                    }

                    this.normalizeLayer(layer);

                    if (this.sessionID) {
                        layer.session_id = this.sessionID;
                    }

                    this.$dispatch('ga4-event-push', layer);

                                        if (!layer.deffered) {
                        window.dataLayer?.push(layer);
                    }
                },
                                normalizeLayer (obj) {
                    Object.entries(obj).forEach(([key, value]) => {
                        if (this.isObject(value)) {
                            this.normalizeLayer(value);
                        } else if (!+this.arrayExceptions[key]) {
                            if (value === '' || value === null) {
                                obj[key] = undefined;
                            } else if (typeof value == 'string') {
                                obj[key] = this.diacritic(value).trim();
                            }
                        }
                    });
                },
                isObject(value) {
                    return typeof value === 'object' && value !== null;
                },
                                diacritic (str) {
                    return typeof Diacritics !== 'undefined' ? Diacritics.clean(str) : str;
                },
                                pushDataLayer (layer, isViewPageEvent) {
                    if (isViewPageEvent) {
                        this.push(layer);
                        viewPageResolver();
                    } else {
                        waitForPageViewEvent.then(() => this.push(layer));
                    }

                    return waitForPageViewEvent;
                },
                                addAdditionalProductData (items) {
                    const extraFields = this.getExtraPromoFields();

                    return items.map(({ item_url, parent_item_id, ...itemData }) => {
                        const { parent_item_id: id, ...dataFromStorage } = this.getProductsFromStorage()[itemData.item_id] || {};

                        const data = {
                            ...this.defaultAdditionalData,
                            ...itemData,
                            ...extraFields,
                            ...(dataFromStorage || {}),
                            item_variant: itemData['item_variant']
                        }

                        Object.entries(data).forEach(([key, value]) => {
                            if (value === null) {
                                data[key] = undefined;
                            }
                        })

                        return data
                    })
                },
                                setProductToStorage (product, type) {
                    const products = this.getProductsFromStorage(type);

                    const {
                        index,
                        item_list_id,
                        item_list_name,
                        parent_item_id
                    } = { ...this.defaultAdditionalData, ...product };

                    products[product.item_id] = {
                        index,
                        item_list_id,
                        item_list_name,
                        parent_item_id,
                        ...(products[product.item_id] || {}),
                        ...this.getExtraPromoFields()
                    };

                    window.localStorage.setItem(this.STORAGE_ACTIVE_PRODUCT, product.item_id);
                    window.localStorage.setItem(this.STORAGE_KEY, JSON.stringify(products));
                },
                updateStorage (itemsData) {
                    let products = this.getProductsFromStorage();

                    itemsData.forEach(({ item_id, parent_item_id }) => {
                        if (products[item_id]) {
                            products[item_id] = {
                                ...products[item_id],
                                parent_item_id
                            }
                        }
                    });

                    window.localStorage.setItem(this.STORAGE_KEY, JSON.stringify(products));
                },
                                setExtraPromoFields (extraFields) {
                    window.localStorage.setItem(this.STORAGE_EXTRA_KEY, JSON.stringify(extraFields));
                },
                                getExtraPromoFields () {
                    const ga4 = window.localStorage.getItem(this.STORAGE_EXTRA_KEY);

                    if (ga4) {
                        const { origin, extraData } = JSON.parse(ga4);

                        if (!window.location.href.includes(origin)) {
                            window.localStorage.removeItem(this.STORAGE_EXTRA_KEY);
                        } else {
                            return extraData
                        }
                    }

                    return {};
                },
                                syncProductStorage () {
                    const activeProduct = window.localStorage.getItem(this.STORAGE_ACTIVE_PRODUCT);
                    const cartItems = this.customerData('cart')?.items || [];
                    const productsFromStorage = this.getProductsFromStorage();
                    let products = Object.entries(productsFromStorage);

                    products = products.filter(([item_id, { parent_item_id }]) => cartItems.find(({ product_sku, product_type }) => {
                        return product_sku === item_id || product_sku === parent_item_id;
                    }) || activeProduct === item_id);

                    // if active product is in cart, we can remove it from storage key, since it will be not removed anymore within filter
                    if (cartItems.find(({ product_sku: sku }) => sku === activeProduct)) {
                        window.localStorage.setItem(this.STORAGE_ACTIVE_PRODUCT, '');
                    }

                    window.localStorage.setItem(this.STORAGE_KEY, JSON.stringify(Object.fromEntries(products)));
                },
                                getProductsFromStorage () {
                    return JSON.parse(window.localStorage.getItem(this.STORAGE_KEY)) || {}
                },

                syncAddToCartProductStorage (e) {
                    const productsFromStorage = this.getProductsFromStorage();
                    let products = Object.entries(productsFromStorage);
                    let productFromResponse = e.detail.ecommerce.items
                        .map(({item_id: id, item_list_name, item_list_id}, key) => {
                            return [id, {
                                index: ++this.reorderItemIndex,
                                item_list_name,
                                item_list_id
                            }]
                        })

                    const uniqueElements = productFromResponse.filter(item2 => {
                        const elementToCheck = item2[0];
                        return !products.some(subArray => subArray.includes(elementToCheck));
                    });

                    products = [...products, ...uniqueElements]

                    window.localStorage.setItem(this.STORAGE_KEY, JSON.stringify(Object.fromEntries(products)));
                    this.pushDataLayer(e.detail);
                }
            }
        }
    </script>
</div>

<script>
    function initMenu () {
        let zendeskChatResolver;
        const zendeskChatPromise = new Promise((resolve) => zendeskChatResolver = resolve);

        return {
            activeCategory: "",
            activeCategories: [],
            menuActive: false,
            isMenuOpened: false,
            blockChatButton: false,
            isCustomerLoggedIn: false,

            toggleMenu() {
                if (!this.isMenuOpened) this.addListeners();

                this.menuActive = !this.menuActive;

                this.$nextTick(() => document.body.classList.toggle('menu-opened', this.menuActive));
                this.isMenuOpened = !this.isMenuOpened;
            },

            goBack() {
                if (this.activeCategories.length === 0) return;

                const lastCategory = this.activeCategories.pop();

                lastCategory.ul.classList.remove('active-menu');
                lastCategory.item.classList.remove('opened-item');

                const prevCategory = this.activeCategories[this.activeCategories.length - 1];
                this.activeCategory = prevCategory?.link.innerText || '';
            },

            addListeners() {
                this.$root.querySelectorAll('.category-item.parent').forEach(item => {
                    const cb = Alpine.throttle((e) => {
                        e.stopPropagation();
                        const el = e.target;
                        const active = el.classList.contains('category-item') ? el : el.closest('.category-item');
                        
                        if (!active.classList.contains('parent')
                            || el.classList.contains('submenu-link')
                            || el.parentElement.classList.contains('submenu-link')
                        ) return;
                        e.preventDefault();

                        const currentCategory = {
                            ul: active.closest('ul'),
                            link: active.querySelector('a'),
                            container: active.closest('ul').closest('.submenu-container'),
                            item: active
                        };

                        this.activeCategories.push(currentCategory);

                        currentCategory.ul.classList.add('active-menu');
                        currentCategory.item.classList.add('opened-item');

                        this.activeCategory = currentCategory.link.innerText;
                    }, 500);

                    item.addEventListener('click', cb);
                });
            },

            async chatMenuHandler() {
                this.blockChatButton = true;
                await zendeskChatPromise;
                this.toggleMenu();
                window.zE && zE('messenger', 'open');
                this.blockChatButton = false;
            }
        }
    }
</script>

<div x-data="urlParamsHandler()"></div>

<script>
    function urlParamsHandler() {
        return {
            async init() {
                const params = new URLSearchParams(window.location.search);

                const results = await Promise.all([
                    this.handlePromoProducts(params),
                    this.handleAutoCoupon(params),
                ]);

                params.delete('promo-add-products');
                params.delete('coupon-code');
                history.replaceState(null, '', window.location.pathname + (params.toString() ? `?${params}` : ''));

                if (results.some(Boolean)) {
                    hyva.setCookie('mage-cache-sessid', '', -1, true);
                    this.$dispatch('reload-customer-section-data');
                    this.$dispatch('i4-cart-update');
                }
            },

            async handlePromoProducts(params) {
                const promoIds = params.get('promo-add-products');
                if (!promoIds) return false;

                this.$dispatch('loading-page', true);

                const formData = new FormData();
                formData.append('form_key', hyva.getFormKey());
                formData.append('products', JSON.stringify(promoIds.split(',')));

                const result = await fetch(`${BASE_URL}promourl/cart/promoproductspost`, { method: 'POST', body: formData })
                    .then(r => r.json())
                    .catch(() => ({ success: false, message: '' }))
                    .finally(() => this.$dispatch('loading-page', false));

                window.dispatchMessages([{ type: result.success ? 'success' : 'error', text: result.message }]);

                return result.success;
            },

            handleAutoCoupon(params) {
                if (!params.get('coupon-code')) return false;

                const couponCode = hyva.getCookie('sk_discount_coupon_url_code');

                return !!couponCode;
            }
        };
    }
</script><div class="widget block block-static-block">
    <script x-data="checkoutSpeculationRules()" @private-content-loaded.window="handleCartUpdate($event.detail.data)">
    function checkoutSpeculationRules () {
        return {
            summaryCount: -1,
            total: 0,
            init () {
                if (this.isCartPage()) {
                    this.prerenderCheckout()
                }
            },
            handleCartUpdate({ cart = { summary_count: 0 } }) {
                const isCartEmpty = this.isCartEmpty(cart);
                const isCartDataChanged = this.isCartDataChanged(cart)

                this.updateCartData(cart);

                if (isCartEmpty || !isCartDataChanged) return;

                this.prerenderCartPage();
                this.prerenderCheckout();
            },

            isCartEmpty(cart) {
                return this.summaryCount === -1 || !cart.summary_count;
            },

            updateCartData(cart) {
                this.summaryCount = cart.summary_count;
                this.total = +cart.baseGrandTotal;
            },

            isCartDataChanged(cart) {
                return cart.summary_count !== this.summaryCount || this.total !== +cart.baseGrandTotal;
            },
            prerenderCheckout() {
                if (!this.isCartPage()) return;

                if (this.isSpeculationSupported()) {
                    this.createSpeculationScript({
                        "eagerness": "immediate",
                        "prerender": [{ "source": "list", "urls": ["/checkout/"] }]
                    });
                }
            },
            prerenderCartPage() {
                if (this.isCheckoutPage()) return;

                if (this.isSpeculationSupported()) {
                    this.createSpeculationScript({
                        "prerender": [{ "source": "list", "urls": ["/checkout/cart/"] }]
                    });
                }
            },
            isCartPage() {
                return window.location.pathname.includes('checkout/cart');
            },
            isCheckoutPage() {
                return window.location.pathname.includes('checkout');
            },

            isSpeculationSupported() {
                return HTMLScriptElement.supports && HTMLScriptElement.supports('speculationrules');
            },
            async createSpeculationScript(data) {
                const id = 'checkout-spec-rules';
                const specScript = document.createElement('script');

                document.getElementById(id)?.remove();

                await Promise.resolve();

                specScript.type = 'speculationrules';
                specScript.id = id
                specScript.textContent = JSON.stringify(data);
                document.body.append(specScript);
            }
        }
    }
</script>
</div>

<script>
    function aisHitGallery() {
        return {
            gallery: [],
            activeImage: 0,
            startX: 0,
            init() {
                this.gallery = [...this.$el.querySelectorAll('img.ais-Hits-item__image')].map(el => el.src);
                this.$el.addEventListener('touchstart', this.handleTouchStart.bind(this), { passive: true });
                this.$el.addEventListener('touchend', this.handleTouchEnd.bind(this), { passive: true });
                this.$watch('activeImage', () => {
                    this.$el.querySelector('img.ais-Hits-item__image.active')?.classList?.remove('active');
                    this.$el.querySelector(`img.ais-Hits-item__image:nth-child(${this.activeImage + 1})`)?.classList?.add('active');
                });
            },
            handleTouchStart(e) {
                this.startX = e.touches[0].clientX;
            },
            handleTouchEnd(e) {
                const diffX = this.startX - e.changedTouches[0].clientX;

                if (Math.abs(diffX) > 30) {
                    diffX > 0 ? this.goNext() : this.goPrev();
                }
            },
            goNext() {
                this.activeImage = (this.activeImage + 1) % this.gallery.length;
            },
            goPrev() {
                this.activeImage = (this.activeImage - 1 + this.gallery.length) % this.gallery.length;
            },
            isActive(uri) {
                return this.activeImage === this.gallery.indexOf(uri);
            }
        };
    }
</script>

<script>
    function aisHitSlider() {
        return {
            active: 0,
            itemCount: 0,
            scrollDistance: false,

            init() {
                const slider = this.getSlider();
                return this.itemCount = slider ? slider.children.length : 0;
            },

            getSlider() {
                return document.querySelector('[data-autocomplete-source-id="products"] .slider-container');
            },

            getVisibleItems() {
                const slider = this.getSlider();
                if (!slider) return 0;

                const slideWidth = slider.children[0].offsetWidth;
                return Math.floor(slider.clientWidth / slideWidth);
            },

            scrollPrevious() {
                const slider = this.getSlider();
                if (!slider) return;

                const visibleItems = this.getVisibleItems();
                this.scrollDistance = Math.min(visibleItems, this.active);

                if (this.scrollDistance > 0) {
                    this.scrollTo(this.active - this.scrollDistance);
                }
            },

            scrollNext() {
                const slider = this.getSlider();
                if (!slider) return;

                const visibleItems = this.getVisibleItems();
                const remainingItems = this.itemCount - this.active - visibleItems;

                this.scrollDistance = Math.min(visibleItems, remainingItems);

                if ( this.scrollDistance  > 0) {
                    this.scrollTo(this.active +  this.scrollDistance);
                    this.scrollDistance = this.itemCount - this.active - visibleItems;
                }
            },

            scrollTo(idx) {
                const slider = this.getSlider();
                if (!slider) return;

                const slideWidth = slider.children[0].offsetWidth;
                slider.scrollLeft = slideWidth * idx;

                this.active = idx;
            }
        };
    }
</script>
<script>
    const autoCompleteHit = ({ item, components, html }) => {
        const price = item.price[algoliaConfig.currencyCode].default_formated;
        const oldPrice = item.price[algoliaConfig.currencyCode].default_original_formated || '';
        let special;

        if (oldPrice) {
            const p = item.price[algoliaConfig.currencyCode].default;

            const priceMatch = oldPrice.match(/[\d\s,.]+/);
            if (priceMatch) {
                const cleanPrice = priceMatch[0]
                    .replace(/\s/g, '')
                    .replace(/,(\d{1,2})$/, '.$1');

                const old = parseFloat(cleanPrice);

                if (old && old > 0) {
                    special = (((old - p) / old) * 100).toFixed();
                }
            }
        }

        item.userToken = window.algoliaConfig.userToken;
        item.media_gallery = item.media_gallery || [item.image_url];
        item.isGallery = item.media_gallery.length > 1;

        return html`<a
            href="${ item.url }"
            class="product__link h-full flex flex-col gap-1 lg:gap-2 relative hover:text-black ${item.in_stock ? '' : html`out-of-stock`}"
            data-queryId="${ item.__autocomplete_queryID }"
            data-objectid="${ item.objectID }"
            data-index="${ item.__autocomplete_indexName }"
        >

            ${item.in_stock ? '' : html`<div class="out-stock__label absolute block z-1 top-1 left-1 uppercase font-semibold text-sm">
                Hors stock            </div>`}

            <div class="flex product__content flex-col">
                <div class="ais-Hits-item__gallery lg:w-full" x-data=${item.isGallery ? 'aisHitGallery' : undefined}>
                    ${item.media_gallery.map((item, idx) => {
            return (html`<img
                class="ais-Hits-item__image w-full w-full lg:max-w-none ${!idx ? 'active' : ''}"
                loading="lazy"
                src="${item}"
                width="375"
                height="500"
                fetchpriority="low"
            />`)
                    })}
                    ${item.isGallery ? html`<div x-show="'${item.media_gallery}'.split(',').length > 1" class="ais-Hits-item__arrows z-10">
                        <button x-on:click.stop.prevent="goPrev" class="ais-Hits-item__arrows--prev"/>
                        <button x-on:click.stop.prevent="goNext" class="ais-Hits-item__arrows--next"/>
                    </div>`: ''}
                     ${+special ? html`<span class="aa-price__percent">- ${special}%</span>`: ''}
                    ${item.label ? html`<div class="hidden lg:grid label-container absolute inset-0 grid grid-flow-col grid-cols-3 grid-rows-3 z-1" dangerouslySetInnerHTML=${{ __html: item.label }}/>` : ''}
                </div>
                <div class="aa-item__content text-center">
                    <span class="line-clamp-1">${ item.manufacturer }</div>
                    <div class="aa-item__name highlight line-clamp-1 text-sm/[17px] font-bold">
                        ${ components.Highlight({ hit: item, attribute: 'name', tagName: 'span' }) }
                    </div>
                    <div class="ais-Hits-item__stars r-stars justify-center">
                        <div class="r-stars__box">
                            <i class="r-stars__empty"></i>
                            <i class="r-stars__full" style="width:${ ((item.review?.rating > 5 ? 5 : item.review?.rating ?? 0) / 5) * 100 }%"></i>
                        </div>
                        <span class="text-sm leading-none">(${item.review?.count || 0 })</span>
                    </div>
                </div>
            </div>
            <div class="aa-p-actions flex flex-col items-center justify-between mt-auto gap-3">
                <div class="aa-price${ oldPrice ? ' aa-price--special flex-col' : '' }">
                    <span class="aa-price__old">${ oldPrice }</span>
                    <span class="aa-price__default">${ price }</span>
                </div>
                 <form
                  x-data
                  x-i4-ajax-cart
                  x-on:click.stop
                  class="flex group gap-5 items-baseline lg:w-full"
                  data-role="tocart-form"
                  action="${algoliaConfig.instant.addToCartParams.action}product/${item.objectID}/"
                  method="post"
                  data-id="${ item.objectID }"
                  data-sku="${ item.sku }"
                 >
                     <input type="hidden" name="queryID" value="${ item.__autocomplete_queryID }"/>
                     <input type="hidden" name="aaUserToken" value="${ item.userToken }" />
                     <input type="hidden" name="product" value="${ item.objectID }"/>
                     <input type="hidden" name="uenc" value="${ hyva.getUenc() }"/>
                     <input name="form_key" type="hidden" value="${ hyva.getFormKey() }"/>
                     ${item.preselected ? html`
                            ${Object.entries(item.preselected).map(([key, value]) => html`
                                <input type="hidden" name="super_attribute[${key}]" value="${value}" />
                            `)}` : ''}
                     <div class="product__actions flex items-center justify-center gap-2 w-full">
    <button
        x-ref="submit"
        class="product__actions__submit btn btn-tertiary px-4 truncate w-full min-w-auto transition-all block"
        aria-label="Ajouter&#x20;au&#x20;panier"
    >
        <span class="icons-btn short-cart-icons flex gap-2 justify-center items-center">
            <svg xmlns="http://www.w3.org/2000/svg" id="Calque_2" fill="currentColor" viewBox="0 0 18 18" width="17" height="17" aria-hidden="true"><g id="SYSTEM_2"><g id="Editor_2"><g id="icon_add_2"><path d="m13.19,10.49l-4.61-.19c-1.85-.08-3.7-.16-5.55-.24-.24,0-.48,0-.72,0-.49,0-.99,0-1.49-.08-.28-.05-.5-.31-.67-.52-.21-.25-.2-.64.04-.87.17-.16.4-.39.67-.41,3.34-.24,6.86-.46,10.75-.68l2.81.1h.2c.72,0,1.46,0,2.18.12.41.07.73.45.99.76.31.37.29.95-.06,1.28-.25.24-.58.57-.98.6-.09,0-.17.01-.26.02-.68.04-1.38.07-2.07.12h-.57c-.26,0-.46,0-.66,0Z"/><path d="m10.49,4.81l-.19,4.61c-.08,1.85-.16,3.7-.24,5.55,0,.24,0,.48,0,.72,0,.49,0,.99-.08,1.49-.05.28-.31.5-.52.67-.25.21-.64.2-.87-.04-.16-.17-.39-.4-.41-.67-.24-3.34-.46-6.86-.68-10.75l.1-2.81v-.2c0-.72,0-1.46.12-2.18.07-.41.45-.73.76-.99.37-.31.95-.29,1.28.06.24.25.57.58.6.98,0,.09.01.17.02.26.04.68.07,1.38.12,2.07v.57c0,.26,0,.46,0,.66Z"/></g></g></g></svg>

            <svg xmlns="http://www.w3.org/2000/svg" id="Calque_2" fill="currentColor" viewBox="0 0 15 20" width="18" height="19" aria-hidden="true"><g id="BUSINESS_2"><g id="Finance_Payment_2"><g id="icon_cart_2"><path d="m4.48,3.1c.07-.93.58-1.82,1.36-2.39C6.61.14,7.64-.11,8.6.04c1.17.16,2.19.93,2.65,1.93.25.48.31,1.08.29,1.55l-.02,1.4v.73c0,.49,0,1-.04,1.5-.02.29-.13.5-.21.68-.1.21-.26.2-.36-.04-.07-.17-.16-.4-.17-.67-.02-.84-.05-1.7-.07-2.56-.01-.43-.03-.86-.04-1.3-.02-.38-.14-.75-.34-1.08-.41-.66-1.17-1.11-1.99-1.15-.82-.05-1.66.31-2.14.96-.25.3-.4.66-.46,1.03-.02.09-.02.19-.03.28v.35s-.02.71-.02.71v.2c0,.72,0,1.47-.05,2.2-.03.41-.18.74-.31,1-.15.31-.39.29-.52-.06-.1-.25-.23-.59-.25-.99,0-.09,0-.18,0-.26-.02-.69-.03-1.39-.05-2.09v-.57c0-.27-.01-.44.01-.7Z"/><path d="m.23,17.58c.27-2,.51-4.02.74-6.04l.77-6.05.14-1.13c.05-.43.31-.7.7-.75.19-.02.43,0,.61,0h.34s1.35.01,1.35.01l2.71.02,5.61.04c.19,0,.33.05.46.13.15.11.2.24.26.4.05.18.05.36.08.54l.04.34.17,1.3.26,1.91c.17,1.29.36,2.62.49,3.92.08.75.03,1.33,0,1.81-.05.57-.24.55-.44-.06-.14-.43-.33-1.02-.43-1.72-.19-1.28-.38-2.58-.59-3.94-.1-.68-.2-1.38-.31-2.1-.05-.36-.11-.73-.16-1.1l-.05-.3c0-.08-.08-.08-.14-.07-1.52.02-3.18.04-4.94.07-.91.01-1.84.02-2.8.03-.48,0-.96.01-1.45.02-.23,0-.57,0-.52,0-.04,0-.07.02-.06.07-.13,1.2-.27,2.53-.43,3.94-.17,1.49-.33,3.08-.48,4.68l-.38,3.12-.21,1.56-.03.23v.02s0,.02.01.02h.02s.23,0,.23,0h.58s.51,0,.51,0c1.83,0,3.74,0,5.58.06,1.05.04,1.87.23,2.54.38.79.19.74.48-.15.65-.63.12-1.5.29-2.51.3-.22,0-.44,0-.65,0-1.75.02-3.54.04-5.32.06H.88c-.19,0-.35-.06-.47-.13-.09-.05-.19-.14-.27-.25-.07-.11-.09-.16-.12-.29-.05-.1,0-.26,0-.4.01-.14.04-.28.06-.42.05-.32.09-.62.13-.92Z"/></g></g></g></svg>
        </span>
    </button>
</div>
                 </form>
            </div>
        </a>`
    }
</script>

<div x-data @ga4-event-push.window="async () => await hyva.yield()"></div>
<script x-data="i4Helpers()" @private-content-loaded.window="privateContentHandler">
        document.addEventListener('alpine:init', () => {
        Alpine.store('private', {
            isLogged: false,
            wishlist: {},
            cartState: {},
            cart: {},

            getCartItemById (itemId) {
                return Object.values(this.cartState).find(({ item_id }) => item_id === itemId)
            },
            deleteItemFromCart (itemId) {
                const item = this.getCartItemById(itemId);

                return fetch(`${ BASE_URL }checkout/sidebar/removeItem/`, {
                    "headers": {
                        "content-type": "application/x-www-form-urlencoded; charset=UTF-8",
                    },
                    "body": `form_key=${ hyva.getFormKey() }&item_id=${ itemId }`,
                    "method": "POST",
                    "mode": "cors",
                    "credentials": "include"
                }).then(response => {
                    if (response.redirected) {
                        window.location.href = response.url;
                    } else if (response.ok) {
                        return response.json();
                    } else {
                        window.dispatchEvent(new CustomEvent('cart-error', {
                            detail: {
                                error: 'Produit non supprimé en raison d\'une erreur technique',
                                item
                            }
                        }));
                    }
                }).then(({ success, error_message: msg }) => {
                    if (success === false) {
                        window.dispatchEvent(new CustomEvent('cart-error', {
                            detail: {
                                error: msg || 'Produit non supprimé en raison d\'une erreur technique',
                                item
                            }
                        }));
                    }

                    window.dispatchEvent(new CustomEvent('reload-customer-section-data'));
                }).catch(() => {
                    window.dispatchEvent(new CustomEvent('cart-error', {
                        detail: {
                            error: 'Produit non supprimé en raison d\'une erreur technique',
                            item
                        }
                    }));
                });
            }
        })
    });
    function i4Helpers () {
        return {
            privateContentHandler (e) {
                const store = this.$store.private;
                const data = e.detail.data;
                let items;
                const cartItems = data?.cart?.items || [];

                store.isLogged = !!data?.customer?.fullname;
                items = store.isLogged
                    ? (data.wishlist?.items || [])
                    : (data.guest_wishlist?.items || [])

                store.cartState = cartItems.reduce((cart, {
                    qty, product_sku, item_id, product_image, product_name, product_id, product_type
                }) => {
                    return {
                        ...cart,
                        [product_id]: {
                            qty,
                            item_id,
                            product_id,
                            product_sku,
                            product_name,
                            product_type,
                            product_image: {
                                src: product_image.src
                            }
                        }
                    }
                }, {});

                store.cart = data?.cart;

                try {
                                                store.wishlist = items
                            .map(({ product_sku, delete_item_params }) => ({ [product_sku]: delete_item_params }))
                            .reduce((a, v) => ({ ...a, ...v }), {});
                        store.wishlistCount = items.length;
                } catch (e) {
                    console.error(e.message);
                }
            }
        }
    }
</script>
<script>
    document.addEventListener('DOMContentLoaded', () => {
        if ('IntersectionObserver' in window) {
            let lazyBackgroundObserver = new IntersectionObserver((entries) => {
                entries.forEach(function(entry) {
                    if (entry.isIntersecting) {
                        const bg = entry.target.dataset.bg;
                        const desktop = entry.target.dataset.bgDesktop;

                        if (desktop) {
                            const apply = () => {
                                entry.target.style.background = window.innerWidth > 1023 ? desktop : bg;
                            }

                            const query = window.matchMedia("(max-width: 1023px)")
                            apply(query) // Call listener function at run time
                            query.addEventListener('change', apply)
                        } else {
                            entry.target.style.background = bg;
                        }

                        lazyBackgroundObserver.unobserve(entry.target);
                    }
                });
            });

            document.querySelectorAll("[data-bg]").forEach((bg) => lazyBackgroundObserver.observe(bg));
        }
    });
</script>
<script>
    'use strict';

    function initSliderComponent (options = {}) {
        return {
            active: 0,
            itemCount: 0,
            pageSize: 4,
            paginationPerPage: true,
            showDots: true,
            virtualPagination: [],
            autoplayTimeout: null,
            carouselBlock: null,
            ...options,
            init () {
                this.carouselBlock = this.$root.closest('[data-element="main"][data-autoplay="true"]');
                this.addPagination();
                this.calcPageSize();

                if(this.carouselBlock && this.carouselBlock.autoplay !== 'false') {
                    this.setEventListener();
                    this.startAutoplay()
                }
            },

            stopAutoplay() {
                if (this.autoplayTimeout) {
                    clearTimeout(this.autoplayTimeout);
                    this.autoplayTimeout = null;
                }
            },

            setEventListener () {
                this.carouselBlock.addEventListener('mouseover', () => this.stopAutoplay());
                this.carouselBlock.addEventListener('touchstart', () => this.stopAutoplay());
                this.carouselBlock.addEventListener('mouseout', () => this.startAutoplay());
                this.carouselBlock.addEventListener('touchend', () => this.startAutoplay());
            },

            startAutoplay() {
                this.autoplayTimeout = setInterval(
                    () => {
                        this.scrollNext()
                    },
                    parseInt(this.carouselBlock.dataset.autoplaySpeed)
                );
            },

            addPagination () {
                this.$root.appendChild(document.querySelector('[data-slider-nav]').cloneNode(true));
            },

            getSlider () {
                return this.$root.querySelector('[data-slider]');
            },

            calcVirtualPagination () {
                const total = [...Array(this.itemCount).keys()];
                                let page = 0;

                this.virtualPagination = [];

                while (total.length) {
                    if (this.paginationPerPage) {
                        this.virtualPagination[page] = [...total.splice(0, this.pageSize)];
                    } else {
                        this.virtualPagination[page] = [...total.splice(0, page === 0 ? this.pageSize : 1 )];
                    }

                    page++;
                }
            },

            calcPageSize (defaultPageSize = 4) {
                const slider = this.getSlider();
                defaultPageSize = Number.isInteger(defaultPageSize) ? defaultPageSize : 4;

                if (slider && slider.lastElementChild) {
                    // will help not to take into account the <template> tag when calculating the number of children
                    this.itemCount = Array.from(slider.children).filter((child) => child.tagName !== 'TEMPLATE').length;

                    this.pageSize = Math.round(slider.clientWidth / slider.lastElementChild.clientWidth) || defaultPageSize;
                    this.calcVirtualPagination();
                    this.calcActive();
                }
            },

            calcActive () {
                const slider = this.getSlider();

                if (slider) {
                    if (!slider.scrollLeft) { // first
                        this.active = 0;
                    } else if (this.paginationPerPage && (slider.scrollWidth - slider.clientWidth) === slider.scrollLeft) { // last
                        this.active = this.virtualPagination.length -1;
                    } else {
                                                const calculatedActiveSlide = slider.scrollLeft / (slider.scrollWidth / this.itemCount);

                        if (this.paginationPerPage) {
                            const active = Math.floor(calculatedActiveSlide) + (this.pageSize - 1);
                            this.active = this.virtualPagination.findIndex(p => p.includes(active));
                        } else  {
                            this.active =  Math.round(calculatedActiveSlide);
                        }
                    }

                    const itemWidth = slider.clientWidth;
                    this.currentIndex = Math.round(slider.scrollLeft / itemWidth);
                }
            },

            scrollPrevious () {
                const slider = this.getSlider();
                const isFirst = !slider.scrollLeft;

                this.scrollTo(isFirst ? slider.scrollWidth : this.active - 1);
            },

            scrollNext () {
                const slider = this.getSlider();
                const isLast = (slider.scrollWidth - slider.clientWidth) === slider.scrollLeft;

                this.scrollTo(isLast ? 0 : this.active + 1);
            },

            scrollTo (idx) {
                const slider = this.getSlider();

                if (slider) {
                    const slideWidth = slider.scrollWidth / this.itemCount;

                    if (this.paginationPerPage) {
                        const page = this.virtualPagination.slice(0, idx).flat().length;
                        slider.scrollLeft = Math.floor(slideWidth) * page;
                        this.active = page;
                    } else {
                        slider.scrollLeft = Math.floor(slideWidth) * idx;
                        this.activeSlide = idx;
                    }
                }
            }
        }
    }
</script>

<template data-slider-nav x-if="itemCount > pageSize">
    <div class="slider__nav">
        <div class="p-slider__pagination flex flex-wrap w-full justify-center absolute" :class="{'hidden': !showDots}">
            <template x-for="(_, p) in virtualPagination" :key="p">
                <span
                        class="shrink-0 block size-2 m-1 border border-black rounded-full cursor-pointer"
                        :class="{                        'bg-white active': active === p,                        'bg-black no-active': active !== p                    }"
                        @click="scrollTo(p)">
                </span>
            </template>
        </div>
        <template x-if="active">
            <button
                    aria-label="Précédent"
                    tabindex="-1"
                    class="p-slider__arrow hidden lg:flex absolute right-[calc(100%-16px)] bottom-2/4 rounded-lg bg-white w-8 h-8                focus:outline-none items-center justify-center hover:bg-optimo hover:text-white transition-all z-20 previous"
                    @click="scrollPrevious">
                <svg class="w-2.5 h-4"
                     aria-hidden="true">
                    <use href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/i4-sprite.svg#ico-left"></use>
                </svg>
            </button>
        </template>
        <template x-if="active < virtualPagination.length - 1">
            <button
                    aria-label="Suivant"
                    tabindex="-1"
                    class="p-slider__arrow hidden lg:flex absolute left-[calc(100%-24px)] bottom-2/4 rounded-lg bg-white w-8 h-8                focus:outline-none items-center justify-center hover:bg-optimo hover:text-white transition-all z-20 next"
                    @click="scrollNext">
                <svg class="w-2.5 h-4"
                     aria-hidden="true">
                    <use href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/i4-sprite.svg#ico-right"></use>
                </svg>
            </button>
        </template>
    </div>
</template>
<script>
    function initSidebar () {
        return {
            activeSidebar: false,

            toggleSidebar (state = !this.activeSidebar) {
                this.activeSidebar = state;

                this.lockPageScroll();
            },

            lockPageScroll () {
                document.body.classList.toggle('overflow-hidden', this.activeSidebar);
            },

            eventListeners () {
                return {
                    ['x-transition:enter']: 'transform transition duration-700',
                    ['x-transition:enter-start']: '-translate-x-full',
                    ['x-transition:leave']: 'transform transition duration-700',
                    ['x-transition:leave-end']: '-translate-x-full'
                }
            }
        }
    }
</script>
<script>
    document.addEventListener("alpine:init", () => {
        const handler = async e => {
            const form = e.currentTarget;
            const $root = Alpine.$data(form);
            const submitInner = $root.$refs?.submit?.innerHTML;

            e.preventDefault();

            toggleLoading($root);

                        const detail = { cb: async () => {} };

            window.dispatchEvent(new CustomEvent('i4-cart-add-before', { detail }));

            await detail.cb();
                        fetch(form.action, {
                method: 'POST',
                body: new URLSearchParams(new FormData(form)),
                headers: {
                    'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8',
                    'X-Requested-With': 'XMLHttpRequest'
                }
            }).then((r) => {
                if (r.ok) {
                    if (r.redirected && r.url) {
                        window.location.href = r.url
                    } else {
                        return r.json();
                    }
                } else {
                    form.submit();
                }
            }).then(({ backUrl, redirected, url }) => {
                if (backUrl || redirected) {
                    window.location.href = backUrl || url
                } else {
                    $root.$dispatch('reload-customer-section-data');
                    $root.$dispatch('i4-cart-update');
                }
            }).catch(() => {
                window.dispatchMessages([{
                    text: 'Impossible d&#039;ajouter l’article au panier pour le moment.',
                    type: 'error',
                }]);
            }).finally(() => toggleLoading($root, false, submitInner));
        };

        const toggleLoading = ($root, active = true, inner = 'Ajouter...') => {
            if (!$root) return;

            $root.$refs.submit.disabled = active;
            $root.$refs.submit.innerHTML = inner;
                        setTimeout(() => $root.$dispatch('cart-loading', { data: active }), 500);
        }

        window.addEventListener('i4-ajax-cart', (e) => handler(e.detail));
        Alpine.directive('i4-ajax-cart', (form) => form.addEventListener('submit', handler));
    });
</script>
<div class="flex flex-row justify-center items-center w-full h-full fixed            select-none z-100 bg-grey-light/30 top-0 bg-black/20"
     x-data="{active: false}"
     x-cloak
 x-show="active"
     @loading-page.window="(e) =>active = e.detail"
     x-transition:enter="ease-out duration-300"
     x-transition:enter-start="opacity-0"
     x-transition:enter-end="opacity-100"
     x-transition:leave="ease-in duration-300"
     x-transition:leave-start="opacity-100"
     x-transition:leave-end="opacity-0">
    <img class="max-w-32 w-full"
         loading="lazy"
         src="https&#x3A;&#x2F;&#x2F;www.espaceplaisir.fr&#x2F;static&#x2F;version1779257511&#x2F;frontend&#x2F;Interactiv4&#x2F;espaceplaisir-hyva&#x2F;fr_FR&#x2F;images&#x2F;loader.gif"
         alt="overlay"/>
</div>

<script>
    function i4AjaxNavigation () {
        const ajaxHandler = (uri) => {
            window.dispatchEvent(new CustomEvent("loading-page", { detail: true }));

            return fetch(uri, {
                headers: {
                    'X-Requested-With': 'XMLHttpRequest'
                }
            }).then((response) => {
                return response.text()
            }).then(content => {
                hyva.replaceDomElement('#maincontent', content);
                window.dispatchEvent(new CustomEvent("loading-page", { detail: false }));
            }).finally(() => document.dispatchEvent(new CustomEvent('i4-ajax-nav-end')))
        };

        window.onpopstate = (e) => {
            if (e.state) {
                ajaxHandler(e.state.url)
            }
        };

        return {
            ajaxHandler,

            updateHistory (url) {
                window.history.pushState({url}, '', url);
            },

            ajaxUpdateWithFallback(url, fallbackCB) {
                                fallbackCB?.(url)
                            },

            async clickLinkHandler (e, cb) {
                            }
        }
    }
</script>
<script>
    function initCompareOnProductList() {
        return {
            addToCompare(productId) {
                const formKey = hyva.getFormKey();
                const postUrl = BASE_URL + 'catalog/product_compare/add/';

                fetch(postUrl, {
                    "headers": {
                        "content-type": "application/x-www-form-urlencoded; charset=UTF-8",
                    },
                    "body": "form_key=" + formKey + "&product=" + productId + "&uenc=" + hyva.getUenc(),
                    "method": "POST",
                    "mode": "cors",
                    "credentials": "include"
                }).then(function (response) {
                    if (response.redirected) {
                        window.location.href = response.url;
                    }
                }).catch(function (error) {
                    typeof window.dispatchMessages !== "undefined" && window.dispatchMessages(
                        [{
                            type: "error",
                            text: error
                        }]
                    );
                });
            }
        };
    }
</script>
    <div
        class="wish-modal"
        x-data="{        ...hyva.modal(),        params: {}        }"
        @wish-modal-toggle.window="(e) => {            params = e.detail.params || {};            e.detail.active ? show('outer', $event) : hide('outer', $event);        }"
    >
        <div
            x-bind="overlay('outer')"
            x-cloak
 class="fixed inset-0 flex items-center justify-center bg-black bg-opacity-50 z-100"
        >
            <div
                x-ref="outer"
                role="dialog"
                aria-labelledby="outer-label"
                class="max-h-screen overflow-auto bg-white shadow-box1 p-4"
            >
                <div class="mb-4 relative">
                    <div class="text-center text-xl md:text-2xl font-semibold">
                        Ajouter à la liste de souhaits                    </div>
                    <button @click="hide('outer', $event)" class="absolute top-0 right-0">
                        <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24" fill="currentColor" width="24" height="24" aria-hidden="true"><path d="m8.473 7.26 4.53 4.611c1.8 1.87 3.61 3.741 5.41 5.612l.71.73c.48.49.97 1 1.41 1.54.25.31.35.64.44.9.1.31-.08.43-.39.26-.22-.12-.51-.27-.78-.54-3.29-3.29-6.91-6.661-10.86-10.412L6.173 7.16l-.2-.2c-.72-.7-1.46-1.43-2.14-2.181-.38-.42-.56-.88-.71-1.25-.17-.44.07-.64.54-.43.34.15.8.35 1.21.73.09.08.18.16.26.24.7.66 1.41 1.32 2.12 1.99l.02.02.54.53.65.65h.01Z"/><path d="m7.243 15.583 4.6-4.542 5.59-5.441.73-.71c.49-.48 1-.98 1.54-1.421.32-.25.63-.36.91-.44.04-.01.08-.02.11-.02.05 0 .11-.02.14 0 .07.02.08.06.07.1-.04.11.02.17-.08.33-.12.21-.27.51-.53.77-3.27 3.311-6.64 6.942-10.38 10.904l-2.79 2.78-.2.2c-.7.72-1.42 1.46-2.18 2.141-.43.39-.88.56-1.26.71-.44.17-.64-.06-.43-.54.15-.34.35-.8.73-1.21.08-.09.16-.18.24-.26l1.98-2.131.02-.02.53-.55c.25-.26.45-.46.64-.66l.02.01Z"/></svg>
                    </button>
                </div>
                <form
                    action="https://www.espaceplaisir.fr/wishlist/index/add/"
                    method="POST"
                >
                    <template x-for="(value, name) in params">
                        <input :name="name" :value="value" type="hidden"/>
                    </template>
                    <div class="mb-4">Veuillez vous connecter avec votre compte pour ajouter des produits à la liste de souhaits.</div>
                    <div class="flex gap-4 justify-center">
                        <button
                            @click.prevent="hide('outer', $event)"
                            class="btn btn-secondary min-w-auto"
                            type="button"
                        >
                            Annuler                        </button>
                        <button class="btn btn-primary min-w-auto" type="submit">
                            Allez vous connecter                        </button>
                    </div>
                </form>
            </div>
        </div>
    </div>
    <script>
        function initWishlist () {
            return {
                product: {},
                productSku: null,
                loading: false,
                allowGuestWishlist: 1,
                cookieName: "guest_wishlist_cookie",
                cookieValue: "guest_wishlist_cookie",

                init () {
                    this.product = this.$el.closest('[data-id]')?.dataset || {};
                    this.productSku = this.product.sku;
                    window.addEventListener(`configurable-selection-changed-${this.product.id}`, (e) => {
                        this.productSku = e.detail.variationSku;
                    })

                    if (document.querySelector('body').classList.contains('page-product-configurable')) {
                        const option = document.querySelector('.product-info .swatch-option.active');
                        this.productSku = option.dataset.sku || this.product.sku;
                    }
                },

                toggleWishlist () {
                    if (this.$store.private.isLogged){
                        this.userHandler()
                    } else {
                        this.guestHandler();
                    }
                },

                guestHandler () {
                    if(this.cookieName && this.cookieValue) {
                        if (this.allowGuestWishlist) {
                            this.allowGuestWishlist = hyva.getCookie(this.cookieName) === this.cookieValue;
                        }
                    }

                    if (!this.allowGuestWishlist) {
                        this.$dispatch('wish-modal-toggle', {active: true, params: this.getPostParams() });
                    } else {
                        this.guestHandlerCustom();
                    }
                },

                async guestHandlerCustom () {
                    this.loading = true;
                    try {
                        const response = await fetch(this.getGuestURL(), {
                            "headers": {
                                "content-type": "application/x-www-form-urlencoded; charset=UTF-8",
                                'X-Requested-With': 'XMLHttpRequest'
                            },
                            "body": `${new URLSearchParams(this.getPostParams())}`,
                            "method": "POST",
                            "mode": "cors",
                            "credentials": "include"
                        });

                        const contentType = response.headers.get("content-type");
                        if (contentType?.includes("text/html")) {
                            return window.location.reload();
                        }

                        const data = await this.responseJsonHandler(response);
                        this.responseHandler(data);
                    } catch(error) {
                        console.warn(error);
                        this.errorhandler();
                    }

                    window.addEventListener('private-content-loaded', event => {
                        this.loading = false;
                    }, { once: true});
                },

                async userHandler () {
                    this.loading = true;
                    try {
                        const response = await fetch(this.getURL(), {
                            "headers": {
                                "content-type": "application/x-www-form-urlencoded; charset=UTF-8",
                                'X-Requested-With': 'XMLHttpRequest'
                            },
                            "body": `${new URLSearchParams(this.getPostParams())}`,
                            "method": "POST",
                            "mode": "cors",
                            "credentials": "include"
                        });
                        const data = await this.responseJsonHandler(response);
                        this.responseHandler(data);
                    } catch(error) {
                        console.warn(error);
                        this.errorhandler();
                    }

                    window.addEventListener('private-content-loaded', event => {
                        this.loading = false;
                    }, { once: true});
                },
                getPostParams () {
                    let params = {
                        id: this.product.id,
                        product: this.product.id,
                        qty: this.getQty(),
                        form_key: hyva.getFormKey()
                    };

                    if (this.isInWishlist()) {
                        try {
                            params.item = JSON.parse(this.$store.private.wishlist[this.productSku]).data.item
                        } catch (e) {}
                    }

                    return this[`${this.product.type}Params`]?.(params) || params;
                },
                getQty () {
                                        const toCart = this.$el.closest('.product-addtocart');

                    return toCart?.querySelector('.qty-field [name="qty"]')?.value || 1;
                },
                                configurableParams (params) {
                    const form = this.$el.closest('form') || document.querySelector('#product_addtocart_form');

                    if (!form && !this.$store.private.isLogged) {
                        this.$dispatch('wish-modal-toggle', {active: true});

                        return;
                    }

                    const swatchParams = Object.fromEntries(new FormData(form));

                    return { ...swatchParams, ...params };
                },
                                bundleParams (params) {
                    /**
                     * Adapt if needed
                     */
                    return params;
                },
                                groupedParams (params) {
                    /**
                     * Adapt if needed
                     */
                    return params;
                },
                responseJsonHandler (response) {
                    if (response.ok) {
                        return response.json();
                    } else {
                        this.errorhandler();
                        return [];
                    }
                },
                responseHandler (data) {
                    if (data) {
                        window.dispatchEvent(new CustomEvent("reload-customer-section-data"));
                    }
                },
                isInWishlist () {
                    return this.$store.private.wishlist[this.productSku];
                },
                errorhandler (text = "Une erreur s&#039;est produite. Merci d&#039;essayer ultérieurement.") {
                    window.dispatchMessages([{ type: 'warning', text }]);
                },
                getURL () {
                    return this.isInWishlist() ? 'https://www.espaceplaisir.fr/theme/product_wishlist/remove/': 'https://www.espaceplaisir.fr/theme/product_wishlist/add/';
                },

                getGuestURL () {
                    return this.isInWishlist() ? 'https://www.espaceplaisir.fr/guest-wishlist/guest/remove/' : 'https://www.espaceplaisir.fr/guest-wishlist/guest/add/';
                }
            }
        }
    </script>

<div x-data="scrollTopButton()"
     @scroll.window.debounce="onScroll()"
     class="transition opacity-0"
     x-ref="goTopButton"
     x-effect="document.body.classList.toggle('--to-top-active', visible)">
    <!-- The button itself -->
    <button @click="scrollToTop()"
            class="go-to-top fixed bottom-28 right-5 w-16 h-16 z-30 bg-pink-light rounded-big">
        <svg class="size-[18px] mx-auto"
             aria-hidden="true">
            <use href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/i4-sprite.svg#ico-arrow-up"></use>
        </svg>
    </button>
</div>

<script>
    function scrollTopButton() {
        return {
            visible: false,
            onScroll() {
                this.visible = window.scrollY > 200;
                this.$refs.goTopButton.style.opacity = this.visible ? 1 : 0;
            },
            scrollToTop() {
                window.scrollTo({ top: 0, behavior: 'smooth' });
            }
        }
    }
</script>

<!-- Wrapping template -->
<script type="text/template" id="instant_wrapper_template">
    {{#findAutocomplete}}
    <div id="algolia-autocomplete-container"></div>
    {{/findAutocomplete}}

    <div
        x-data="initInstantSearch()"
        @ais-results.window="aisResultsHandler"
        :class="{'ais-list-mode': isListMode}"
        id="algolia_instant_selector"
        class="algolia-instant-selector-results bg-white  with-facets"
    >
        <div
            class="ais-wrap flex flex-col gap-8 lg:gap-y-6 lg:grid flex-wrap"
            :class="{'ais-is-empty': !nbHits}"
        >
            <div
                x-cloak
                class="fixed inset-0 flex items-center justify-center bg-black z-50 transition-all"
                :class="{
                    'opacity-100 bg-opacity-20': isFiltersOpen,
                    'pointer-events-none opacity-0 bg-opacity-0': !isFiltersOpen,
                }"
                @click="toggleFiltersModal"
            >
            </div>
            <div
                id="algolia-left-container"
                x-defer="intersect"
                @click.outside="closeFilters"
                class="flex flex-col z-100 fixed inset-y-0 w-full -right-[340px] ais-sidebar
                     transition-all duration-500 bg-white max-w-[340px] lg:max-w-[389px] lg:-right-[389px]"
                :class="{
                    '!right-0 active': isFiltersOpen
                }"
            >
                <div class="flex items-center justify-between p-4 bg-1 filter-container">
                        <span class="filter-heading flex gap-2 items-center text-xl">
                               <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 17 18" fill="none" class="size-6" width="24" height="24" aria-hidden="true">
    <path d="M14.9997 3.5381C14.8663 3.4741 14.7063 3.39588 14.4863 3.37455C14.1663 3.35321 13.833 3.35321 13.513 3.35321L8.79301 3.36744C7.47967 3.36744 6.41301 3.36032 5.43967 3.33188L4.54634 3.31766C4.11301 3.31766 3.65301 3.31766 3.03967 3.31055H2.85301C2.85301 3.31055 2.83301 3.31055 2.82634 3.31055C2.52634 3.31055 2.27301 3.40299 2.09967 3.46699C1.87967 3.5381 1.83301 3.65899 1.83301 3.7301C1.83301 3.7941 1.84634 3.90788 2.01967 4.00744C2.21301 4.1141 2.44634 4.24921 2.76634 4.28477C3.32634 4.34877 3.89301 4.36299 4.37301 4.37721H4.51967C5.26634 4.40566 5.94634 4.41988 6.59301 4.42699C8.07301 4.38432 9.47301 4.32032 10.8263 4.24921C12.093 4.18521 13.2863 4.12832 14.4597 4.09988C14.6663 4.09988 14.8397 4.02166 14.973 3.97188C15.133 3.90788 15.1663 3.80832 15.1663 3.75855C15.1663 3.70877 15.153 3.61632 14.9997 3.5381Z" fill="#101820"/>
    <path d="M13.5138 8.65854C13.5138 8.65854 13.4672 8.61587 13.4338 8.59454C13.3672 8.55187 13.2872 8.52343 13.2072 8.50921C12.9472 8.47365 12.6872 8.47365 12.4338 8.46654L9.03384 8.33143L6.54051 8.24609H6.20051H5.89384L4.77384 8.31009L4.63384 8.32432C4.40718 8.34565 4.22051 8.46654 4.06051 8.58032C3.94718 8.66565 3.88051 8.77232 3.88718 8.89321C3.88718 8.99987 3.94718 9.10654 4.05384 9.17765L4.07384 9.19187C4.21384 9.29143 4.39384 9.41232 4.62718 9.42654C5.01384 9.45498 5.40718 9.44787 5.80051 9.44787H5.90718L7.42051 9.48343L13.1938 9.32698C13.2672 9.32698 13.3405 9.30565 13.4272 9.27009L13.4805 9.24876C13.4805 9.24876 13.5205 9.23454 13.5605 9.20609C13.6405 9.14209 13.6738 9.03543 13.6605 8.90032C13.6338 8.77943 13.5938 8.72965 13.5538 8.70121L13.5272 8.67276L13.5138 8.65854Z" fill="#101820"/>
    <path d="M11.2463 13.5799C11.0996 13.5657 10.9596 13.5728 10.8196 13.5799L10.5663 13.5941C10.0263 13.5941 9.45959 13.5799 8.87959 13.5514L7.47959 13.4732L7.09959 13.459H6.39292C6.23959 13.4732 6.11292 13.5941 6.03292 13.6723C5.89292 13.8074 5.87959 14.0492 5.99959 14.227C6.08625 14.3479 6.19292 14.5043 6.34625 14.547C6.57292 14.611 6.79959 14.6181 7.03292 14.6323L7.95959 14.6892C9.25959 14.6181 10.3063 14.5185 11.2463 14.3834C11.3596 14.3692 11.4329 14.2697 11.4996 14.1914C11.5996 14.0705 11.5996 13.8928 11.4996 13.7719C11.4396 13.7008 11.3596 13.6012 11.2396 13.587L11.2463 13.5799Z" fill="#101820"/>
</svg>

                               Filtrer                        </span>
                    <div class="close-icon absolute right-4 cursor-pointer hover:text-optimo-darker transition-colors"
                         @click="toggleFiltersModal">
                        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" class="size-6" width="24" height="24" aria-hidden="true"><path d="m8.473 7.26 4.53 4.611c1.8 1.87 3.61 3.741 5.41 5.612l.71.73c.48.49.97 1 1.41 1.54.25.31.35.64.44.9.1.31-.08.43-.39.26-.22-.12-.51-.27-.78-.54-3.29-3.29-6.91-6.661-10.86-10.412L6.173 7.16l-.2-.2c-.72-.7-1.46-1.43-2.14-2.181-.38-.42-.56-.88-.71-1.25-.17-.44.07-.64.54-.43.34.15.8.35 1.21.73.09.08.18.16.26.24.7.66 1.41 1.32 2.12 1.99l.02.02.54.53.65.65h.01Z"/><path d="m7.243 15.583 4.6-4.542 5.59-5.441.73-.71c.49-.48 1-.98 1.54-1.421.32-.25.63-.36.91-.44.04-.01.08-.02.11-.02.05 0 .11-.02.14 0 .07.02.08.06.07.1-.04.11.02.17-.08.33-.12.21-.27.51-.53.77-3.27 3.311-6.64 6.942-10.38 10.904l-2.79 2.78-.2.2c-.7.72-1.42 1.46-2.18 2.141-.43.39-.88.56-1.26.71-.44.17-.64-.06-.43-.54.15-.34.35-.8.73-1.21.08-.09.16-.18.24-.26l1.98-2.131.02-.02.53-.55c.25-.26.45-.46.64-.66l.02.01Z"/></svg>
                    </div>
                </div>
                <div
                    class="ais-facets px-8 flex flex-col py-4 overflow-auto h-full max-h-full flex-1"
                    id="instant-search-facets-container"
                    x-defer="intersect"
                >
                    <div class="hidden" id="current-refinements"></div>
                </div>
                <div class="flex flex-col border-t border-t-pink-light rounded-t p-4 bg-white -mt-4 z-1 clear-filters__container">
                    <button
                        type="button"
                        class="btn btn-primary w-full see-all-btn"
                        @click="toggleFiltersModal"
                    >
                            <span class="ais-search-btn">
                                <span x-html="algoliaConfig.translations.seeAllAis"></span>
                            </span>
                    </button>
                    <div class="text-optimo text-center underline" id="clear-refinements"></div>
                </div>
            </div>
            <div class="ais-toolbar">
                <h1 class="ais-title hidden"
                    x-data="{
                          q: new URLSearchParams(window.location.search).get('q') || ''
                        }"
                    x-text="`Search result of: &#34;${q}&#34;`">
                </h1>
                <div class="flex justify-between">
                    <div class="hidden gap-3 h-fit">
                        <div
                            class="flex items-center cursor-pointer border border-pink-darker rounded-full p-[11px] transition-colors hover:bg-pink-light"
                            :class="!isListMode ? 'bg-pink-light !border-pink-light': ''"
                            @click="isListMode = false"
                        >
                            <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" class="size-6" aria-hidden="true"><path fill="#101820" fill-rule="evenodd" d="M10.57 7.84c-.02-.78-.12-.79-.12-.79l-.08-.58-.01-.507-.02-1.023c0-.1909-.0091-.3818-.0186-.5814L10.32 4.33v-.02c0-.07 0-.14-.09-.12h-.09a36.4651 36.4651 0 0 1-.3673.008c-.238.0044-.4832.0089-.7327.022-.3041.0163-.6141.0296-.93.0432-.2658.0115-.5358.023-.81.0368-.49.03-1.19.03-1.74.03-.65 0-.85.05-.85.05s.02 1.75.02 2.74c.01.6.01 1.21.01 1.83 0 0 .02.06.03.46.01.41.1.67.1.67l.49.02 1.06.02c.88.02 1.59.15 2.19.27.07.02.13.03.19.04.75.14.73.43-.1.65-.59.15-1.4.35-2.37.38-.1063 0-.2126.0051-.3175.0102-.1025.0049-.2037.0098-.3025.0098H3.74l-.23-.18c-.0284-.0355-.0467-.0761-.0657-.1181-.0078-.0171-.0156-.0345-.0243-.0519a.3111.3111 0 0 1-.025-.05.3111.3111 0 0 0-.025-.05c-.01-.015-.0175-.03-.025-.045s-.015-.03-.025-.045c-.005-.0099-.0102-.0198-.0155-.0298-.0266-.0506-.0545-.1034-.0545-.1702l-.02-.38-.05-.92-.1-1.58v-.05l-.06-1.14c-.0216-.3315-.0173-.6214-.0132-.896A20.949 20.949 0 0 0 3.01 5.46v-.17H3l.19-1.59c.06-.46.27-.64.75-.7.1238 0 .25.0049.3775.0099.13.005.2612.0101.3925.0101l.48.02c.9.03 1.79.03 2.69 0l1.38-.03h1.19c.0495.0025.0991.0043.1485.0062.15.0056.2986.0112.4415.0338.26.06.47.17.54.35.09.16.09.4.09.62v1.07l-.02 1.73s0 .06-.05 1.1c-.03.6-.17 1.05-.29 1.42-.14.44-.37.4-.5-.1-.1-.35-.23-.84-.24-1.4Zm1.97 1.37-.06-1.15v-.01c-.02-.54.08-4.35.08-4.35 0-.07.02-.14.04-.2.07-.19.17-.34.34-.4.0632-.0395.1451-.0603.231-.082.0228-.0058.0459-.0117.069-.018h.39l1.14.04c.57.02 1.15.02 1.72.02l1.74-.03h1.39c.26 0 .52.02.76.05.44.09.64.33.63.77v.93l-.02 1.42s-.02.23-.08.47c-.03.57-.16 1.01-.28 1.38-.01.01-.02.03-.02.05-.14.44-.37.4-.5-.1-.01-.02-.02-.05-.02-.07a12.6781 12.6781 0 0 0-.0138-.055c-.088-.3504-.1962-.7816-.1962-1.285-.03-1.59-.15-2.28-.15-2.28l-.02-.09c0-.01-.03-.01-.05-.01h-.04a46.913 46.913 0 0 0-.3437.011c-.2701.0093-.5533.019-.8463.019-.3041.0163-.6141.0296-.93.0432-.2658.0115-.5358.023-.81.0368-.61.03-1.24.03-1.88.03h-.72v.05c.01.68.02 1.42.02 2.21 0 .1957-.0008.3156-.0022.3796L14.08 6.24s.0208 1.0678.0278.7496L14.19 9.21l.02.42.02.42v.03h.04l.56.03.0294.0007c.4206.0098.8506.0198 1.2806.0393.22.005.4375.0125.655.02.2175.0075.435.015.655.02.91.03 1.64.18 2.24.31a.5848.5848 0 0 1 .0511.0133c.029.0085.0569.0167.0889.0167.75.15.74.44-.11.65-.6.15-1.42.34-2.39.34h-.62c-.85 0-1.63 0-2.56-.02h-.34c-.3 0-.61 0-.8-.11-.1137-.0663-.1645-.1685-.2205-.281l-.0095-.019c-.01-.01-.02-.03-.02-.04-.01-.03-.03-.07-.05-.1l-.0079-.0158c-.0472-.0939-.0916-.1821-.0821-.3242l-.08-1.35v-.05Zm-1.97 8.02c-.02-.8-.12-.81-.12-.81l-.08-.56-.0075-.3878c-.0075-.3884-.015-.7769-.0225-1.1822 0-.21-.01-.42-.02-.63v-.03c0-.08 0-.15-.09-.13h-.09c-.35 0-.72.01-1.1.03-.3041.0163-.6141.0296-.93.0432-.2658.0115-.5358.0231-.81.0368-.49.03-1.19.03-1.74.03-.65-.01-.85.05-.85.05s.02 1.8.02 2.83c.01.61.01 1.24.01 1.88 0 0 .02.06.03.47.01.43.1.69.1.69l.49.02 1.06.02c.88.02 1.59.16 2.19.28.07.02.13.03.19.04.75.14.73.45-.1.67-.59.16-1.4.35-2.37.39-.1063 0-.2126.0051-.3175.0102C5.91 20.9951 5.8087 21 5.71 21H3.74l-.23-.19c-.0267-.04-.0444-.08-.0622-.12-.009-.02-.0178-.04-.0278-.06a.3111.3111 0 0 1-.025-.05.3111.3111 0 0 0-.025-.05c-.01-.015-.0175-.03-.025-.045s-.015-.03-.025-.045c-.005-.0099-.0102-.0198-.0155-.0298-.0266-.0506-.0545-.1034-.0545-.1702l-.02-.39-.05-.95-.1-1.63v-.05l-.06-1.18c-.0216-.3461-.0173-.6454-.0131-.9279.0015-.1093.0031-.2161.0031-.3221v-.18H3l.2-1.63c.06-.47.27-.66.74-.72.1238 0 .25.0049.3775.0098.13.0051.2612.0102.3925.0102l.48.02c.9.03 1.79.03 2.69 0l1.38-.04h1.19c.2 0 .4.01.59.04.26.06.47.17.54.36.09.17.09.41.09.64v1.1l-.02 1.79s0 .06-.05 1.13c-.03.61-.17 1.08-.29 1.46-.14.45-.37.42-.5-.1-.1-.37-.23-.87-.24-1.45Zm1.97 1.42-.06-1.19v-.01c-.02-.56.08-4.49.08-4.49 0-.08.02-.15.04-.21.07-.2.17-.35.34-.41.0632-.0395.1451-.0603.231-.0821a3.3511 3.3511 0 0 0 .069-.0179h.39l1.14.04c.57.02 1.15.02 1.72.02l1.74-.04h1.39c.26 0 .52.01.76.05.44.09.64.34.63.8v.96l-.02 1.46s-.02.24-.08.49c-.03.59-.16 1.04-.28 1.42-.01.02-.02.04-.02.06-.14.45-.37.42-.5-.1-.0021-.0063-.0042-.0121-.0062-.0177-.0075-.0211-.0138-.0386-.0138-.0623a5.6069 5.6069 0 0 0-.0108-.0442c-.0885-.3629-.1992-.8171-.1992-1.3358-.03-1.64-.15-2.35-.15-2.35l-.02-.09c0-.02-.03-.02-.05-.02h-.04c-.1119.003-.2265.007-.3437.011-.2701.0093-.5533.019-.8463.019-.3041.0163-.6141.0296-.93.0432-.2658.0115-.5358.0231-.81.0368-.61.03-1.24.03-1.88.03h-.72v.05c.01.7.02 1.47.02 2.28 0 .2021-.0008.3261-.0022.3924L14.08 15.57s.0208 1.1031.0278.7724L14.19 18.63l.02.44.02.44v.04h.04l.56.03.0293.0007c.4207.0098.8507.0197 1.2807.0393.22.005.4375.0125.655.02.2175.0075.435.015.655.02.9003.0297 1.6243.1866 2.2207.3158l.0193.0042a.5848.5848 0 0 1 .0511.0133c.029.0085.0569.0167.0889.0167.75.15.74.46-.11.67-.6.15-1.42.35-2.39.35h-.62c-.85 0-1.63 0-2.56-.02h-.34l-.0749-.0024c-.2758-.0084-.5509-.0168-.7251-.1176-.1133-.0755-.1642-.1778-.22-.29l-.01-.02c-.01-.01-.02-.03-.02-.04-.01-.03-.03-.07-.05-.1-.05-.1-.1-.2-.09-.35l-.08-1.39v-.05Z" clip-rule="evenodd"/></svg>

                        </div>
                        <div
                            class="flex items-center cursor-pointer border border-pink-darker rounded-full p-[11px] transition-colors hover:bg-pink-light"
                            :class="isListMode ? 'bg-pink-light !border-pink-light': ''"
                            @click="isListMode = true"
                        >
                            <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" class="size-6" aria-hidden="true"><path fill="#101820" fill-rule="evenodd" d="M10.45 12.05s.1.01.12.79c.01.56.14 1.05.24 1.4.13.5.36.54.5.1.12-.37.26-.82.29-1.42.05-1.04.05-1.1.05-1.1l.02-1.73V9.02c0-.22 0-.46-.09-.62-.07-.18-.28-.29-.54-.35-.19-.03-.39-.03-.59-.04H9.26l-1.38.03c-.9.03-1.79.03-2.69 0l-.48-.02c-.26 0-.52-.02-.77-.02-.48.06-.69.24-.75.7L3 10.29h.01v.17c0 .37-.02.75.01 1.21l.06 1.14v.05l.1 1.58.05.92.02.38c0 .08.04.14.07.2.02.03.03.06.05.09.02.03.03.07.05.1.03.06.05.12.09.17l.23.18h1.97c.2 0 .41-.02.62-.02.97-.03 1.78-.23 2.37-.38.83-.22.85-.51.1-.65-.06-.01-.12-.02-.19-.04-.6-.12-1.31-.25-2.19-.27l-1.06-.02-.49-.02s-.09-.26-.1-.67c-.01-.4-.03-.46-.03-.46 0-.62 0-1.23-.01-1.83 0-.99-.02-2.74-.02-2.74s.2-.05.85-.05c.55 0 1.25 0 1.74-.03.6-.03 1.18-.05 1.74-.08.38-.02.75-.02 1.1-.03h.09c.09-.02.09.05.09.12v.02c.01.21.02.41.02.61.01.52.02 1.02.03 1.53m2.11 1.59.06 1.15v.05l.08 1.35c-.01.15.04.24.09.34.02.03.04.07.05.1 0 .01.01.03.02.04.06.12.11.23.23.3.19.11.5.11.8.11h.34c.93.02 1.71.02 2.56.02h.62c.97 0 1.79-.19 2.39-.34.85-.21.86-.5.11-.65-.05 0-.09-.02-.14-.03-.6-.13-1.33-.28-2.24-.31-.44-.01-.87-.03-1.31-.04-.44-.02-.88-.03-1.31-.04l-.56-.03h-.04v-.03l-.02-.42-.02-.42-.11-2.97s.03 1.54.03.37c0-.79-.01-1.53-.02-2.21v-.05h.72c.64 0 1.27 0 1.88-.03.6-.03 1.18-.05 1.74-.08.42 0 .82-.02 1.19-.03h.04c.02 0 .05 0 .05.01l.02.09s.12.69.15 2.29c0 .53.12.98.21 1.34 0 .02.01.05.02.07.13.5.36.54.5.1 0-.02.01-.04.02-.05.12-.37.25-.81.28-1.38.06-.24.08-.47.08-.47l.02-1.42v-.93c.01-.44-.19-.68-.63-.77-.24-.03-.5-.05-.76-.05h-1.39l-1.74.03c-.57 0-1.15 0-1.72-.02l-1.14-.04h-.39c-.11.03-.22.05-.3.1-.17.06-.27.21-.34.4-.02.06-.04.13-.04.2 0 0-.1 3.81-.08 4.36v-.01Z" clip-rule="evenodd"/></svg>
                        </div>
                    </div>
                    <div class="hidden lg:flex items-center ml-1" id="algolia-stats"></div>
                    <div class="flex w-full gap-4 justify-end items-center text-sm lg:ml-auto lg:w-auto text-base filter-container">
                        <div id="algolia-sorts" class="w-full lg:w-auto"></div>
                        <div
                            class="flex items-center gap-2 w-full transition-all lg:w-auto lg:min-w-[210px] filter-btn"
                        >
                            <button type="button" class="btn btn-primary w-full min-w-auto" @click.stop="toggleFiltersModal">
                                <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 17 18" fill="none" class="size-6 mr-2" width="24" height="24" aria-hidden="true">
    <path d="M14.9997 3.5381C14.8663 3.4741 14.7063 3.39588 14.4863 3.37455C14.1663 3.35321 13.833 3.35321 13.513 3.35321L8.79301 3.36744C7.47967 3.36744 6.41301 3.36032 5.43967 3.33188L4.54634 3.31766C4.11301 3.31766 3.65301 3.31766 3.03967 3.31055H2.85301C2.85301 3.31055 2.83301 3.31055 2.82634 3.31055C2.52634 3.31055 2.27301 3.40299 2.09967 3.46699C1.87967 3.5381 1.83301 3.65899 1.83301 3.7301C1.83301 3.7941 1.84634 3.90788 2.01967 4.00744C2.21301 4.1141 2.44634 4.24921 2.76634 4.28477C3.32634 4.34877 3.89301 4.36299 4.37301 4.37721H4.51967C5.26634 4.40566 5.94634 4.41988 6.59301 4.42699C8.07301 4.38432 9.47301 4.32032 10.8263 4.24921C12.093 4.18521 13.2863 4.12832 14.4597 4.09988C14.6663 4.09988 14.8397 4.02166 14.973 3.97188C15.133 3.90788 15.1663 3.80832 15.1663 3.75855C15.1663 3.70877 15.153 3.61632 14.9997 3.5381Z" fill="#101820"/>
    <path d="M13.5138 8.65854C13.5138 8.65854 13.4672 8.61587 13.4338 8.59454C13.3672 8.55187 13.2872 8.52343 13.2072 8.50921C12.9472 8.47365 12.6872 8.47365 12.4338 8.46654L9.03384 8.33143L6.54051 8.24609H6.20051H5.89384L4.77384 8.31009L4.63384 8.32432C4.40718 8.34565 4.22051 8.46654 4.06051 8.58032C3.94718 8.66565 3.88051 8.77232 3.88718 8.89321C3.88718 8.99987 3.94718 9.10654 4.05384 9.17765L4.07384 9.19187C4.21384 9.29143 4.39384 9.41232 4.62718 9.42654C5.01384 9.45498 5.40718 9.44787 5.80051 9.44787H5.90718L7.42051 9.48343L13.1938 9.32698C13.2672 9.32698 13.3405 9.30565 13.4272 9.27009L13.4805 9.24876C13.4805 9.24876 13.5205 9.23454 13.5605 9.20609C13.6405 9.14209 13.6738 9.03543 13.6605 8.90032C13.6338 8.77943 13.5938 8.72965 13.5538 8.70121L13.5272 8.67276L13.5138 8.65854Z" fill="#101820"/>
    <path d="M11.2463 13.5799C11.0996 13.5657 10.9596 13.5728 10.8196 13.5799L10.5663 13.5941C10.0263 13.5941 9.45959 13.5799 8.87959 13.5514L7.47959 13.4732L7.09959 13.459H6.39292C6.23959 13.4732 6.11292 13.5941 6.03292 13.6723C5.89292 13.8074 5.87959 14.0492 5.99959 14.227C6.08625 14.3479 6.19292 14.5043 6.34625 14.547C6.57292 14.611 6.79959 14.6181 7.03292 14.6323L7.95959 14.6892C9.25959 14.6181 10.3063 14.5185 11.2463 14.3834C11.3596 14.3692 11.4329 14.2697 11.4996 14.1914C11.5996 14.0705 11.5996 13.8928 11.4996 13.7719C11.4396 13.7008 11.3596 13.6012 11.2396 13.587L11.2463 13.5799Z" fill="#101820"/>
</svg>
                                <span>Filtrer</span>
                            </button>
                        </div>
                    </div>
                </div>
            </div>
            <div class="ais-content" id="algolia-right-container" x-data="initWishlist()">
                <div>
                    {{#second_bar}}
                    <div id="instant-search-bar"></div>
                    {{/second_bar}}
                </div>
                <div itemscope itemtype="http://schema.org/ItemList">
                    <div id="algolia-banner"></div>
                    <div id="instant-empty-results-container"></div>
                    <div id="instant-search-results-container"></div>
                </div>
                <div class="flex justify-center items-center relative overflow-hidden">
                    <div id="instant-search-pagination-container" class="w-full"></div>
                    <div class="hidden lg:flex items-center gap-2 absolute right-0" id="hits-per-page"></div>
                </div>
            </div>
        </div>
    </div>
</script>
<script>
    function initInstantSearch () {
        return {
            isListMode: false,
            isFiltersOpen: false,
            isOrderOpen: false,
            sortOptions: [],
            currentSort: undefined,
            selectedStore: '',
            nbHits: 0,

            aisResultsHandler (data) {
                this.nbHits = data.detail.nbHits;
                this.$root._x_runEffects();

                this.sortHandler(data.detail);

                const wrapper = document.querySelector('.algolia-instant-results-wrapper');

                wrapper.classList.remove('h-screen', 'opacity-0');
            },

            sortHandler ({ index }) {
                const sorter = this.getSortEl();

                /**
                 * First load, set value and return.
                 */
                if (!this.currentSort) {
                    this.currentSort = index;

                    return;
                }

                if (this.currentSort !== sorter?.value) {
                    window.dispatchEvent(new CustomEvent('sort-item-list', { detail: sorter?.value }));
                    this.currentSort = sorter?.value;
                }
            },

            lockScroll (state) {
                document.body.classList.toggle('overflow-hidden', state);
                document.body.classList.toggle('lg:overflow-auto', state);
            },

            syncSortOptions () {
                const field = this.getSortEl();

                this.selectedSortIndex = field.selectedIndex;

                this.sortOptions =  [...field.options].map(item => {
                    return {
                        label: item.innerHTML,
                        value: item.value
                    }
                });

                this.selectedStore = this.sortOptions[field.selectedIndex].value;

                field.addEventListener('change', () => this.selectedSortIndex = field.selectedIndex)
            },

            closeFilters () {
                this.isFiltersOpen = false;

                this.lockScroll(false);
            },

            toggleFiltersModal () {
                this.isFiltersOpen = !this.isFiltersOpen;

                this.lockScroll(this.isFiltersOpen);
            },

            toggleOrderModal () {
                this.isOrderOpen = !this.isOrderOpen;

                this.syncSortOptions();
                this.lockScroll(this.isOrderOpen);
            },

            getSortEl () {
                return  document.querySelector('.ais-SortBy-select');
            },

            selectSortOrder () {
                const field = this.getSortEl();

                field.selectedIndex = this.sortOptions.findIndex(({value}) => value === this.selectedStore);
                field.dispatchEvent(new Event('change'));
            }
        }
    }
</script>
<script type="text/template" id="instant-hit-template">
    <div
        class="pb-4 h-full{{^in_stock}} cursor-pointer{{/in_stock}} relative"
        itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"
        x-defer="intersect"
        {{^in_stock}}@click="location.href = '{{url}}'"{{/in_stock}}
    >
    <meta itemprop="position" content="{{__position}}" />
        <div
            class="h-full{{^in_stock}} product__link out-stock{{/in_stock}}"
            {{#__queryID}} href="{{url}}" {{/__queryID}}
            itemprop="item"
            itemscope
            itemtype="http://schema.org/Product"
        >
            <meta itemprop="url"
                  {{^__queryID}} content="{{url}}" {{/__queryID}}
            {{#__queryID}} content="{{urlForInsights}}" {{/__queryID}}
            />
            {{^in_stock}}
                <div class="absolute inset-0 z-10 bg-white/[.5]">
                    <div class="out-stock__label inline-block m-1 uppercase font-semibold text-sm">
                        Hors stock                    </div>
                </div>
            {{/in_stock}}
            <div class="ais-Hits-item__content flex flex-col h-full hover:text-black lg:gap-6">
            <a
                {{^__queryID}} href="{{url}}" {{/__queryID}}
                data-objectid="{{objectID}}"
                data-index="{{__indexName}}"
                data-position="{{__position}}"
                data-queryid="{{__queryID}}"
                {{#__queryID}} href="{{urlForInsights}}" {{/__queryID}}
                class="product__link flex justify-center items-center relative hover:text-black"
            >
                <div class="label-container absolute inset-0 grid grid-flow-col grid-cols-3 grid-rows-3 z-1 pointer-events-none">
                    {{{ label }}}
                </div>
                <div
                    {{#isGallery}}
                    x-data="aisHitGallery"
                    {{/isGallery}}
                    class="ais-Hits-item__gallery w-full"
                >
                    {{#media_gallery}}
                    <img
                        itemprop="image"
                        class="ais-Hits-item__image w-full {{#isFirst}}active{{/isFirst}}"
                        src="{{url}}"
                        {{#isGallery}}
                        :class="isActive('{{.}}') ? 'active': ''"
                        {{/isGallery}}
                        alt="{{../name}}"
                        width="375"
                        height="500"
                        loading="lazy"
                        fetchpriority="low"
                    />
                    {{/media_gallery}}
                    {{#specialPrice}}
                    <span class="aa-price__percent m-3">- {{{specialPrice}}}%</span>
                    {{/specialPrice}}
                    {{#isGallery}}
                        <div class="ais-Hits-item__arrows">
                            <button @click.stop.prevent="goPrev" class="ais-Hits-item__arrows--prev"/>
                            <button @click.stop.prevent="goNext" class="ais-Hits-item__arrows--next"/>
                        </div>
                    {{/isGallery}}
                </div>
            </a>
            <div class="flex flex-col text-sm text-center items-center gap-2 h-full">
                <span class="min-h-6">
                    {{#manufacturer}}<span class="line-clamp-1 leading-6">{{{manufacturer}}}</span>{{/manufacturer}}
                </span>
                <a
                    {{^__queryID}} href="{{url}}" {{/__queryID}}
                {{#__queryID}} href="{{urlForInsights}}" {{/__queryID}}
                data-objectid="{{objectID}}"
                data-index="{{__indexName}}"
                data-position="{{__position}}"
                data-queryid="{{__queryID}}"
                class="product__link text-center line-clamp-2 font-bold min-h-[42px]"
                >
                <meta itemprop="name" content="{{name}}" />
                {{{ name }}}
                </a>
                <div class="ais-Hits-item__stars r-stars">
                    <div class="r-stars__box">
                        <i class="r-stars__empty"></i>
                        <i class="r-stars__full" style="width: {{rating_summary}}%"></i>
                    </div>
                    <span class="text-sm leading-none">({{rating_count}})</span>
                </div>
                <div class="ais-Hits-item__box">
                    {{^price.EUR.default_max}}
                    <div itemprop="offers" itemscope itemtype="http://schema.org/Offer" class="is-Hits-item__price mb-4">
                        <meta itemprop="price" content="{{price.EUR.default}}" />
                        {{/price.EUR.default_max}}
                        {{#price.EUR.default_max}}
                        <div
                        itemprop="offers"
                        itemscope
                        itemtype="http://schema.org/AggregateOffer"
                        class="mb-6"
                    >
                        <meta itemprop="lowPrice" content="{{price.EUR.default}}" />
                        <meta itemprop="highPrice" content="{{price.EUR.default_max}}" />
                        {{/price.EUR.default_max}}
                        <meta itemprop="priceCurrency" content="EUR" />
                        <div class="aa-price {{#price.EUR.default_original_formated}} aa-price--special{{/price.EUR.default_original_formated}}">
                            {{#price.EUR.default_original_formated}}
                            <span class="aa-price__old">
                            {{price.EUR.default_original_formated}}
                            </span>
                            {{/price.EUR.default_original_formated}}
                            <span class="aa-price__default">
                            {{price.EUR.default_formated}}
                            </span>
                        </div>
                    </div>
                    </div>
                    <div class="ais-Hits-item__cart w-full mt-auto" @click.stop>
                        <form
                            x-data
                            x-i4-ajax-cart.event.click
                            class="w-full flex group gap-5 items-baseline"
                            data-role="tocart-form"
                            action="{{ addToCart.action }}"
                            method="post"
                            data-id="{{objectID}}"
                            data-sku="{{sku}}"
                        >
                            <input type="hidden" name="queryID" value="{{__queryID}}">
                            <input type="hidden" name="aaUserToken" value="{{userToken}}">
                            <input type="hidden" name="product" value="{{objectID}}">
                            <input type="hidden" name="uenc" value="{{ addToCart.uenc }}">
                            <input name="form_key" type="hidden" value="{{ addToCart.formKey }}">

                            {{#preselectedArray}}
                            <input type="hidden" name="super_attribute[{{key}}]" value="{{value}}">
                            {{/preselectedArray}}

                            <div class="product__actions flex items-center justify-center gap-2 w-full">
    <button
        x-ref="submit"
        class="product__actions__submit btn btn-tertiary px-4 truncate w-full min-w-auto transition-all block"
        aria-label="Ajouter&#x20;au&#x20;panier"
    >
        <span class="product__actions__label">
            Ajouter&#x20;au&#x20;panier        </span>
            </button>
    <div class="product__actions__wish">
        
    <button
        x-data="initWishlist()"
        x-on:click.prevent="toggleWishlist"
        aria-label="Ajouter&#x20;&#xE0;&#x20;la&#x20;liste&#x20;de&#x20;souhaits"
        type="button"
        class="wishlist-btn text-black p-3 bg-pink-light
                            border border-pink-light rounded-btn hover:bg-white transition-colors"
        :class="isInWishlist() ? '!bg-pink-dark lg:!bg-pink-light' : 'bg-pink-light'"
        x-on:class="{ 'pointer-events-none': loading }"
    >
        <span x-cloak x-show="!isInWishlist()">
            <svg class="size-6 text-optimo-darker"
                 :class="{ '!hidden': loading }"
                 aria-hidden="true">
                <use href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/i4-sprite.svg#ico-wishlist"></use>
            </svg>
        </span>
        <span x-cloak x-show="isInWishlist()">
            <svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24" class="size-6 text-optimo-darker" width="24" height="24" aria-hidden="true" :class="{ '!hidden': loading }"><path fill="#FF5C6E" d="M12.113 5.598c.03-.07.02-.06.09-.19.09-.18.19-.36.33-.54.5-.72 1.249-1.269 2.058-1.519.939-.29 1.688-.13 2.228.07.64.28.49.44-.19.43-.49.02-1.139.15-1.808.42-.44.18-.85.45-1.18.799-.16.18-.309.37-.429.59-.06.14-.11.17-.19.41-.06.25-.17.4-.2.739-.2 1.509-.49 1.429-.639 1.549-.14.06-.35.04-.42 0-.3-.11-.51-.66-.55-1.08-.04-.28-.11-.48-.159-.729-.05-.25-.12-.46-.22-.62-.1-.2-.23-.37-.35-.54-.27-.339-.609-.619-.979-.829-.749-.43-1.678-.51-2.567-.3C5.159 4.589 4 6.528 4.33 8.447c.2 1.968 1.409 3.797 2.757 5.516 1.39 1.709 2.978 3.348 4.636 4.977.37.37.2.2.24.25.04-.04-.12.12.25-.23.52-.49 1.01-1 1.509-1.5a49.169 49.169 0 0 0 2.827-3.137l.37-.47c1.269-1.689 2.478-3.598 2.697-5.556.12-1.1.02-1.979-.24-2.708-.16-.42-.23-.66-.11-.72.1-.05.41.07.78.53.52.62 1.08 1.789.93 3.168-.02.3-.06.59-.13.859-.5 2.278-1.809 4.147-3.118 5.856l-.04.06c-.35.45-.72.87-1.089 1.3-.53.589-.95 1.058-1.379 1.498-.41.43-.829.85-1.249 1.27l-.639.619-.34.33c-.21.18-.41.44-.63.55-.419.219-.928.04-1.298-.44l-.7-.71-1.228-1.28c-1.619-1.728-3.218-3.497-4.516-5.575-.77-1.24-1.41-2.639-1.569-4.167-.08-.74-.09-1.55.15-2.319.22-.77.63-1.479 1.189-2.058.55-.57 1.279-1 2.058-1.19a5.22 5.22 0 0 1 2.328-.07c.78.17 1.509.56 2.088 1.11.29.27.53.59.75.929.06.08.09.17.14.26l.05.1.05.14.04.1c.04.11.07.17.07.17s.06-.09.149-.32v.01Z"/><path fill="#FF5C6E" stroke="#FF5C6E" d="M16 3.502c-2.4 0-3.667 3-4 4.5-.5-2.167-2.4-6-6-4-4.5 2.5-1.5 7.5 0 9.5 1.2 1.6 4.5 5.333 6 7 1.666-1.834 5.5-6.3 7.5-9.5 2.5-4-.5-7.5-3.5-7.5Z"/></svg>
        </span>
        <span x-cloak x-show="loading">
            <svg class="animate-spin text-optimo-darker size-6"
                 aria-hidden="true">
                <use href="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/i4-sprite.svg#ico-loader"></use>
            </svg>
        </span>
        <span class="hidden">
            Mes&#x20;Favoris        </span>
    </button>
    </div>
</div>
                        </form>
                    </div>
                </div>
            </div>
        </div>
</script>
<script type="text/template" id="instant-stats-template">
    <div class="font-bold">
        {{#hasOneResult}}<strong>1</strong>
        <span>produit</span>
        {{/hasOneResult}}
        {{#hasManyResults}}
        <span hidden itemprop="numberOfItems">{{nbHits}}</span>
        <span
            x-data="{
              x1: ({{page}} * {{hitsPerPage}}) + 1,
              x2: ({{page}} + 1) * {{hitsPerPage}},
              x3: {{nbHits}}
            }"
            x-text="`Articles %1 à %2 sur %3`
            .replace('%1', x1)
            .replace('%2', x2 > x3 ? x3: x2)
            .replace('%3', x3);
            "
        ></span>
        {{/hasManyResults}}
    </div>
</script>
<script type="text/template" id="refinements-lists-item-template">
    <div class="ml-1">
        <input class="c-check__input {{cssClasses.checkbox}}" {{#isRefined}}checked{{/isRefined}} type="checkbox" value="{{value}}" />
        <label class="{{cssClasses.label}} {{#isRefined}}checked{{/isRefined}} flex flex-wrap items-center c-check__label mb-2.5">
            <span>{{value}} <span class="{{cssClasses.count}} text-neutral-50">({{count}})</span></span>
        </label>
    </div>
</script>
<script type="text/template" id="refinements-lists-item-template-swatch">
    <label class="flex items-center gap-2" data-color>
        <span class="ais-color__circle relative flex items-center justify-center size-6 rounded-full border border-grey-light {{#inverseColors}}inversed{{/inverseColors}}" style="background: {{color}}"></span>
        <span class="text-sm font-normal color-label">{{{label}}}</span>
        <input class="absolute size-0 -z-1 opacity-0" {{#isRefined}}checked{{/isRefined}} type="checkbox" value="{{value}}" />
    </label>
</script>
<script type="text/template" id="current-refinements-template">
    <div class="cross-wrapper">
        <span class="clear-cross clear-refinement"></span>
    </div>
    <div class="current-refinement-wrapper">
        {{#label}}
        <span class="current-refinement-label">{{label}}{{^operator}}:{{/operator}}</span>
        {{/label}}
        {{#operator}}
        {{{displayOperator}}}
        {{/operator}}
        {{#exclude}}-{{/exclude}}
        <span class="current-refinement-name">{{name}}</span>
    </div>
</script><script type="text/template" id="algolia-price-sync-template">
    <div x-data="syncWithRangeField()" class="flex items-center w-full gap-2 py-4 px-3">
        <label class="flex w-full flex-col gap-2 font-normal text-sm">
            Minimum            <div class="flex min-h-[44px] border rounded-3xl px-4 cursor-text">
                <div class="flex gap-1 items-center relative">
                    <span x-text="range.minNow" class="z-1 text-base bg-white"></span>
                    <input
                        class="border-0 absolute text-base left-px p-0 min-h-[42px]"
                        x-model.number="range.minNow"
                        type="number"
                        @input.debounce="handleChange"
                        :min="range.min"
                        :max="range.maxNow"
                        class="min-h-[40px]"
                    />
                    <span x-text="currency" class="z-1"></span>
                </div>
            </div>
        </label>
        <span class="flex items-center w-1.5 h-5 mt-5">-</span>
        <label class="flex w-full flex-col gap-2 font-normal text-sm">
            Maximum            <div class="flex min-h-[44px] w-full border rounded-3xl px-4 cursor-text">
                <div class="flex gap-1 items-center relative">
                    <span x-text="range.maxNow" class="z-1 text-base bg-white"></span>
                    <input
                        class="border-0 absolute left-px text-base p-0 min-h-[42px]"
                        x-model.number="range.maxNow"
                        type="number"
                        @input.debounce="handleChange"
                        :min="range.minNow" :max="range.max"
                        class="min-h-[40px]"
                    />
                    <span x-text="currency" class="z-1"></span>
                </div>
            </div>
        </label>
    </div>
</script>

<script>
    function syncWithRangeField() {
        return {
            currency: hyva.formatPrice(1, false).slice(-1),
            range: {
                min: 0,
                max: 0,
                minNow: 0,
                maxNow: 0
            },
            init() {
                const panel = this.$el.closest('.ais-Panel').querySelector('.ais-Panel-body');

                if (panel) {
                    const observer = new MutationObserver(() => {
                        const min = panel.querySelector('.rheostat-handle-lower');
                        const max = panel.querySelector('.rheostat-handle-upper');

                        if (min && max) {
                            this.range.min = min.getAttribute('aria-valuemin');
                            this.range.max = max.getAttribute('aria-valuemax');
                            this.range.minNow = min.getAttribute('aria-valuenow');
                            this.range.maxNow = max.getAttribute('aria-valuenow');
                        }
                    });

                    observer.observe(panel, {
                        childList: true,
                        subtree: true,
                        attributes: true
                    });
                }
            },

            handleChange () {
                window.priceRangeRefine([this.range.minNow, this.range.maxNow]);
            }
        };
    }
</script>
<script type="text/template" id="no-results-template">
    <div class="aa-no-result flex flex-col items-center gap-4 pb-6 lg:flex-row max-w-[953px] w-full lg:justify-between mx-auto">
        <div class="aa-no-result__content flex flex-col items-center gap-4 lg:max-w-[304px]">
            <h2 class="aa-no-result__title text-center text-2xl lg:text-3xl font-normal text-black">Désolé </h2>
            <h3 class="aa-no-result__subtitle mb-6 text-optimo text-lg lg:text-2xl font-normal">Nous n'avons pas trouvé ce que vous cherchiez</h3>
        </div>
        <img
            width="459"
            height="416"
            class="aa-no-result__image"
            src="https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/images/no-results.png"
        />
    </div>
</script><div x-cloak x-data="{...initAmBanners()}" x-init="initBanners()">
    <div class="flex flex-row justify-center items-center w-full h-full fixed select-none"
     style="left: 50%;top: 50%;transform: translateX(-50%) translateY(-50%);background: rgba(255,255,255,0.7);"
     x-show="isLoading"
     x-transition:enter="ease-out duration-200"
     x-transition:enter-start="opacity-0"
     x-transition:enter-end="opacity-100"
     x-transition:leave="ease-in duration-200"
     x-transition:leave-start="opacity-100"
     x-transition:leave-end="opacity-0">
    <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 180 180" fill="currentColor" class="text-primary" width="57" height="57" role="img">
    <path fill-rule="evenodd" clip-rule="evenodd" d="M120.562 50.0805C120.673 50.2161 120.809 50.3147 120.932 50.4257C121.056 50.5366 121.191 50.6353 121.302 50.7709C121.561 50.9805 121.795 51.1777 122.03 51.375C122.264 51.5722 122.498 51.7695 122.757 51.9791C124.816 53.6805 126.567 55.7024 128.293 58.2174C128.404 58.3531 128.527 58.5133 128.662 58.6859C128.786 58.8585 128.909 59.0188 129.032 59.1544C129.193 59.438 129.377 59.7092 129.575 59.9805C129.772 60.2517 129.957 60.5229 130.117 60.8065L131.979 64.1722C132.238 64.8257 132.546 65.3928 132.854 65.9476C133.076 66.3298 133.273 66.6996 133.471 67.0695C133.668 67.4394 133.865 67.8092 134.087 68.1914C135.061 70.0161 136.121 71.9024 137.194 73.7887C139.117 77.0558 141.632 80.1627 144.665 83.0476C146.256 84.4777 147.23 86.3024 148.105 88.0777C148.364 88.6078 148.61 89.1257 148.845 89.6435C149.079 90.1613 149.325 90.6791 149.584 91.2092C149.683 91.2585 149.72 91.4188 149.757 91.5668C149.794 91.3942 149.806 91.2092 149.819 91.0243C149.819 90.8394 149.843 90.6544 149.88 90.4818C149.905 90.0627 149.93 89.6681 149.967 89.2736C150.028 88.5216 150.077 87.7942 150.09 87.0544L150.225 84.8476C150.435 81.4202 150.053 77.8942 149.005 73.9983C148.993 73.801 148.943 73.6161 148.894 73.4311C148.845 73.2462 148.795 73.0613 148.783 72.864L148.499 71.8161C147.895 69.5599 146.736 67.6243 145.38 65.5777L144.936 64.8133C142.631 61.3243 139.906 58.3654 136.762 55.0243C133.483 51.4859 130.647 48.6996 127.947 46.1229C125.568 43.8668 123.299 42.301 120.76 41.2161C120.538 41.1544 120.304 41.0805 120.057 41.0065C119.81 40.9325 119.576 40.8585 119.354 40.7969C119.182 40.7599 119.034 40.6983 118.873 40.6489C118.713 40.5996 118.565 40.5257 118.393 40.501C117.431 40.1928 116.605 39.2065 116.186 37.9613C115.865 36.7654 115.939 35.5325 116.531 34.7311C117.234 33.7448 118.294 33.2147 119.823 33.2024C122.486 33.2024 125.038 34.0531 127.935 35.8531C131.399 37.9859 134.334 40.8092 136.836 43.275L138.784 45.1613C139.277 45.6298 139.734 46.0983 140.202 46.5544C140.671 47.0106 141.127 47.4668 141.62 47.9476C147.957 54.7777 151.927 60.6215 154.257 66.9216C156.624 73.3695 157.684 78.7942 157.314 84.0339C157.277 85.9572 156.92 87.9668 156.587 89.8654C156.525 90.1983 156.464 90.5435 156.414 90.864C156.217 91.6407 156.082 92.3188 155.983 93.1572C155.81 94.3284 155.588 95.5983 155.33 96.7079C155.293 97.0037 155.231 97.2503 155.182 97.5092C155.132 97.7681 155.083 98.0147 155.034 98.3106L154.984 98.4092C154.972 98.6558 154.96 98.9024 154.849 99.0873L154.282 100.283C154.072 100.715 153.875 101.159 153.665 101.602C153.221 102.576 152.753 103.587 152.149 104.635C151.816 105.202 151.397 105.72 150.928 106.09C150.867 106.201 150.793 106.263 150.719 106.312C150.669 106.349 150.632 106.374 150.608 106.411C150.139 106.78 149.461 106.633 149.079 106.411C148.98 106.312 148.882 106.226 148.783 106.152C148.573 105.967 148.376 105.806 148.191 105.523C146.588 103.464 145.38 101.615 144.443 99.938C144.308 100.616 143.925 101.282 143.593 101.861C142.988 102.897 142.495 104.08 141.904 105.449C141.793 105.72 141.669 105.991 141.558 106.263C140.523 108.716 139.093 111.182 137.034 113.672L135.221 115.928C133.15 118.419 131.03 120.996 128.995 123.622C124.187 129.971 118.479 135.691 112.117 140.771C111.082 141.696 109.947 142.559 108.813 143.422C107.913 144.149 107.001 144.876 106.064 145.616C104.535 146.837 102.982 148.07 101.465 149.327C99.6035 150.794 97.7295 152.496 96.0035 154.172L94.6474 155.417C94.1172 155.898 93.5871 156.379 93.0569 156.86C89.0624 160.509 85.0186 164.183 80.4446 167.253L77.9789 168.88L75.5131 170.508C75.3035 170.643 75.1309 170.791 74.946 170.939C74.7611 171.087 74.5884 171.235 74.3789 171.371C74.1446 171.556 73.9227 171.716 73.7131 171.876C73.4912 172.037 73.2816 172.197 73.0474 172.382L72.6898 172.554C72.4432 172.702 72.1843 172.863 71.9254 173.023C71.1857 173.479 70.4213 173.948 69.6323 174.342C63.9487 177.153 59.0789 178.78 54.4432 179.779C52.298 180.198 50.1528 179.964 48.1926 178.965C45.9857 177.942 43.7419 176.783 41.2145 175.452L40.8323 175.23C37.972 173.578 36.0117 171.05 34.2364 168.634C31.783 165.194 30.1432 161.446 29.3542 157.316C29.3049 156.971 29.2309 156.638 29.1693 156.317C29.1076 155.997 29.0337 155.676 28.9843 155.319C28.4789 153.124 28.0227 150.831 27.8131 148.55C27.5295 145.086 27.5419 141.548 27.6035 138.157L27.6282 137.664C27.6282 136.542 27.6405 135.396 27.6528 134.249V134.224V134.212C27.6652 131.512 27.6775 128.763 27.7391 126.05C27.7515 124.583 27.7761 123.104 27.8008 121.6C27.8624 116.915 27.9364 112.094 27.8748 107.36C27.8748 103.304 27.7268 99.1613 27.5912 95.1051C27.5665 94.3407 27.5419 93.5763 27.5172 92.8243C27.3939 89.964 27.2706 87.1037 27.246 84.2928C27.135 80.2983 27.0487 76.0572 27.6405 71.964C28.2076 67.464 29.6624 62.9763 31.9309 57.9462L32.4364 56.8489C32.9049 55.912 33.3611 54.975 33.8172 54.0257C34.2734 53.0763 34.7172 52.1394 35.198 51.2024C36.5912 48.5763 38.3665 45.9257 40.5364 43.4969C40.2528 43.3366 40.0063 43.312 39.7597 43.2996L39.0816 43.164C38.4528 43.127 37.7378 42.9421 37.0597 42.7695C36.9364 42.7325 36.8131 42.7079 36.7021 42.6832C36.172 42.4983 35.4693 41.9681 35.3583 41.2777C35.0871 39.9832 34.8405 38.4421 35.7528 37.0736C35.8638 36.8887 36.0241 36.5928 36.3323 36.5188C36.8871 36.2106 37.4172 35.7421 37.935 35.2859C37.9843 35.2366 38.0213 35.1996 38.0706 35.1503C38.6131 34.6325 39.2049 34.0407 39.9939 33.6832C43.7542 31.7969 47.009 29.8736 50.0295 27.938C51.2624 27.1243 52.6309 26.5202 53.9378 26.0024C54.1104 25.9161 54.283 25.8544 54.4432 25.7805C54.6035 25.7188 54.7761 25.6572 54.9487 25.5585L56.1446 25.238C58.2158 24.2763 60.3857 23.3763 62.5063 22.5626C67.6967 20.6147 72.3816 19.5174 77.0295 19.1476C77.498 19.0983 77.9912 19.0736 78.4843 19.0366C78.9775 18.9996 79.4706 18.975 79.9391 18.9257C80.2474 18.901 80.5556 18.8763 80.8638 18.8394C81.9364 18.7407 83.083 18.6298 84.1926 18.5928C86.8063 18.4572 89.1734 19.1846 91.3926 19.9613C94.2898 20.8736 98.198 22.2421 101.835 23.8325C103.179 24.3503 104.461 25.2257 105.645 26.027C105.941 26.1996 106.199 26.3846 106.446 26.5572C106.668 26.7174 106.89 26.8654 107.112 27.001L107.223 26.8161C108.517 23.2531 110.576 20.1215 112.142 17.8531C114.423 14.5243 116.999 11.7257 119.021 9.51881L119.256 9.27223C119.995 8.43388 120.92 8.58182 121.302 8.80374L121.783 9.07497C121.906 9.13662 122.042 9.19826 122.165 9.2599C123.805 10.0859 125.457 10.912 126.48 12.7983C127.01 13.8585 127.047 14.8942 126.283 15.9914C125.469 17.175 124.483 18.001 123.509 18.827C123.349 18.9873 123.176 19.1352 122.991 19.2832C122.806 19.4311 122.634 19.5791 122.473 19.7394C119.243 22.6983 116.975 25.312 115.372 28.0736C114.497 29.59 113.708 31.1681 113.017 32.8078C112.869 33.1654 112.709 33.5106 112.536 33.8558C112.364 34.201 112.204 34.5462 112.056 34.9037L111.895 35.1873C111.673 35.5695 111.451 35.9517 111.39 36.2846C111.106 36.9996 110.601 37.8626 109.134 37.7763C108.924 37.727 108.727 37.7517 108.542 37.764C108.431 37.764 108.332 37.7763 108.246 37.764C107.605 37.764 107.112 37.7394 106.434 37.6037C105.558 37.3572 104.745 37.012 104.005 36.3215C103.684 36.1366 103.475 35.927 103.228 35.6805C103.179 35.6311 103.13 35.5818 103.068 35.5202C102.747 35.2613 102.439 35.0024 102.143 34.7558C101.379 34.1147 100.639 33.4859 99.8254 33.0174C98.0131 31.9695 96.0282 31.464 94.0802 31.0942C91.7008 30.601 89.0501 30.3544 85.8693 30.1572C83.7611 30.0832 81.6282 30.2435 78.8912 30.8229L76.9926 31.2544C75.9076 31.4887 74.8104 31.7229 73.7131 31.9448C70.2857 32.6599 66.846 33.3873 63.4802 34.2257C60.0775 35.0517 56.6624 36.3709 52.7172 38.1585L56.3912 38.3805C59.4241 38.6147 62.6172 38.7996 65.7117 38.9352C67.7706 39.1079 69.9405 39.0955 72.098 39.0709C72.8378 39.1202 73.4789 39.1078 74.12 39.0955L75.5008 39.1325C77.8186 39.1942 80.2597 39.1818 82.6638 39.1572C83.3665 39.1572 84.0569 39.1572 84.7474 39.1448C88.3474 39.0709 91.7624 39.5147 94.9309 39.9585C96.2008 40.1805 96.9898 41.0188 97.52 41.8325C97.7049 42.0421 97.6679 42.3626 97.6309 42.5969C97.6309 42.6585 97.6186 42.7202 97.6063 42.7695L97.409 43.5462C97.0761 45.8887 96.6446 48.1695 96.2008 50.4626C95.572 54.4079 95.7693 58.464 96.0775 62.3106C96.4843 67.7476 98.3337 73.1229 101.81 79.1887C102.279 80.027 102.784 80.8531 103.29 81.6914C103.795 82.5174 104.301 83.3558 104.769 84.1942L105.521 85.5133C105.916 84.601 106.323 83.6887 106.754 82.9243L107.691 81.3092L108.345 80.1627C110.391 76.4024 112.228 72.1243 113.893 67.2544C115.668 62.1996 117.184 57.6133 118.393 52.8544C118.442 52.7558 118.553 52.5709 118.516 52.4229C118.516 52.3736 118.516 52.3243 118.516 52.275C118.516 52.0407 118.528 51.7325 118.664 51.4983C118.75 51.2024 118.898 51.0051 119.034 50.8202C119.095 50.7339 119.157 50.6476 119.219 50.5489L119.44 50.1668" fill="#EDBABF" fill-opacity="0.5"/>
    <path fill-rule="evenodd" clip-rule="evenodd" d="M139.875 94.082L139.352 95.1804C139.159 95.5767 138.977 95.9843 138.784 96.392C138.375 97.2865 137.943 98.2151 137.387 99.1776C137.08 99.6985 136.693 100.174 136.262 100.514C136.205 100.616 136.137 100.672 136.068 100.718C136.023 100.752 135.989 100.774 135.966 100.808C135.534 101.148 134.909 101.012 134.557 100.808C134.466 100.718 134.375 100.638 134.284 100.57C134.091 100.401 133.909 100.253 133.739 99.9929C132.262 98.1019 131.148 96.4033 130.284 94.8633C130.16 95.4861 129.807 96.0976 129.5 96.6298C128.944 97.581 128.489 98.668 127.944 99.925C127.841 100.174 127.728 100.423 127.625 100.672C126.671 102.926 125.353 105.19 123.455 107.478L121.785 109.55C119.876 111.837 117.921 114.204 116.046 116.616C111.615 122.448 106.353 127.702 100.49 132.367C99.5355 133.217 98.49 134.009 97.4446 134.802C96.6151 135.47 95.7742 136.138 94.9106 136.817C93.5015 137.938 92.0698 139.071 90.6721 140.226C88.9562 141.573 87.229 143.136 85.6381 144.676L84.3882 145.82C83.8996 146.261 83.4109 146.703 82.9223 147.145C79.2406 150.496 75.5135 153.871 71.2977 156.69L69.025 158.185L66.7524 159.68C66.5592 159.804 66.4001 159.94 66.2297 160.076C66.0592 160.212 65.9001 160.348 65.7069 160.473C65.491 160.642 65.2865 160.79 65.0933 160.937C64.8888 161.084 64.6956 161.231 64.4797 161.401L64.1502 161.56C63.9229 161.696 63.6843 161.843 63.4457 161.99C62.7639 162.409 62.0593 162.839 61.3321 163.202C56.0936 165.783 51.6051 167.278 47.3325 168.195C45.3553 168.58 43.3781 168.365 41.5713 167.448C39.5373 166.508 37.4692 165.444 35.1397 164.221L34.7875 164.017C32.1512 162.499 30.3444 160.178 28.7081 157.959C26.4468 154.799 24.9355 151.357 24.2082 147.564C24.1628 147.247 24.0946 146.941 24.0378 146.646C23.981 146.352 23.9128 146.058 23.8673 145.729C23.4014 143.714 22.981 141.607 22.7878 139.512C22.5265 136.331 22.5378 133.081 22.5946 129.967L22.6174 129.514C22.6174 128.483 22.6287 127.43 22.6401 126.377V126.354V126.343C22.6515 123.863 22.6628 121.338 22.7196 118.847C22.731 117.499 22.7537 116.14 22.7765 114.759C22.8333 110.456 22.9015 106.028 22.8446 101.68C22.8446 97.9546 22.7083 94.1499 22.5833 90.4244C22.5606 89.7223 22.5378 89.0203 22.5151 88.3295C22.4015 85.7024 22.2878 83.0754 22.2651 80.4936C22.1628 76.8247 22.0833 72.9294 22.6287 69.1699C23.1514 65.0368 24.4923 60.915 26.5832 56.2949L27.0491 55.2871C27.4809 54.4265 27.9013 53.5659 28.3217 52.694C28.7422 51.8221 29.1513 50.9615 29.5944 50.1009C30.8785 47.6889 32.5148 45.2543 34.5147 43.0236C34.2534 42.8764 34.0261 42.8537 33.7988 42.8424L33.1739 42.7178C32.5943 42.6839 31.9353 42.514 31.3103 42.3555C31.1967 42.3215 31.083 42.2989 30.9808 42.2762C30.4921 42.1064 29.8444 41.6194 29.7422 40.9853C29.4922 39.7963 29.2649 38.3809 30.1058 37.1239C30.208 36.9541 30.3558 36.6823 30.6399 36.6144C31.1512 36.3313 31.6398 35.901 32.1171 35.482C32.1625 35.4367 32.1966 35.4027 32.2421 35.3574C32.7421 34.8819 33.2875 34.3383 34.0147 34.0099C37.4806 32.2774 40.4805 30.5109 43.2645 28.7331C44.4008 27.9857 45.6621 27.4309 46.8666 26.9553C47.0257 26.876 47.1848 26.8194 47.3325 26.7515C47.4802 26.6948 47.6393 26.6382 47.7984 26.5476L48.9007 26.2532C50.8097 25.37 52.8096 24.5434 54.7641 23.796C59.548 22.0069 63.8661 20.999 68.1501 20.6593C68.5819 20.614 69.0364 20.5914 69.4909 20.5574C69.9455 20.5235 70.4 20.5008 70.8318 20.4555C71.1159 20.4329 71.4 20.4102 71.684 20.3762C72.6726 20.2857 73.7294 20.1837 74.7521 20.1498C77.1611 20.0252 79.3429 20.6933 81.3883 21.4067C84.0587 22.2446 87.6608 23.5016 91.013 24.9623C92.2516 25.4379 93.4334 26.2419 94.5242 26.9779C94.797 27.1365 95.0356 27.3063 95.2629 27.4649C95.4674 27.6121 95.6719 27.7479 95.8765 27.8725L95.9787 27.7027C97.1719 24.4301 99.0696 21.5539 100.513 19.4704C102.615 16.413 104.99 13.8425 106.853 11.8156L107.069 11.5891C107.751 10.8191 108.603 10.955 108.956 11.1588L109.399 11.4079C109.512 11.4645 109.637 11.5211 109.751 11.5778C111.262 12.3364 112.785 13.0951 113.728 14.8277C114.217 15.8015 114.251 16.7527 113.546 17.7605C112.796 18.8476 111.887 19.6062 110.99 20.3649C110.842 20.5121 110.683 20.648 110.512 20.7839C110.342 20.9198 110.183 21.0557 110.035 21.2029C107.058 23.9206 104.967 26.3212 103.49 28.8577C102.683 30.2505 101.956 31.6999 101.319 33.206C101.183 33.5343 101.035 33.8514 100.876 34.1685C100.717 34.4855 100.57 34.8026 100.433 35.131L100.285 35.3914C100.081 35.7425 99.8764 36.0935 99.8195 36.3992C99.5582 37.056 99.0923 37.8487 97.7401 37.7694C97.5469 37.7241 97.3651 37.7467 97.1946 37.7581C97.0923 37.7581 97.0014 37.7694 96.9219 37.7581C96.331 37.7581 95.8765 37.7354 95.2515 37.6109C94.4447 37.3844 93.6947 37.0673 93.0129 36.4332C92.7175 36.2633 92.5243 36.0708 92.297 35.8444C92.2516 35.7991 92.2061 35.7538 92.1493 35.6972C91.8539 35.4594 91.5698 35.2216 91.2971 34.9951C90.5925 34.4063 89.9107 33.8288 89.1608 33.3985C87.4904 32.4359 85.6609 31.9717 83.8655 31.632C81.6724 31.179 79.2293 30.9525 76.2975 30.7714C74.3544 30.7034 72.3886 30.8506 69.8659 31.3828L68.116 31.7792C67.116 31.9943 66.1047 32.2095 65.0933 32.4133C61.9343 33.0701 58.764 33.7382 55.6618 34.5082C52.5255 35.2669 49.3779 36.4785 45.7417 38.1204L49.1279 38.3242C51.9233 38.5394 54.8664 38.7093 57.7186 38.8338C59.6162 38.9923 61.6162 38.981 63.6047 38.9584C64.2865 39.0037 64.8774 38.9923 65.4683 38.981L66.741 39.015C68.8773 39.0716 71.1272 39.0603 73.3431 39.0376C73.9908 39.0376 74.6271 39.0376 75.2635 39.0263C78.5815 38.9584 81.7292 39.366 84.6495 39.7737C85.82 39.9775 86.5472 40.7475 87.0358 41.4949C87.2063 41.6874 87.1722 41.9818 87.1381 42.1969C87.1381 42.2536 87.1267 42.3102 87.1154 42.3555L86.9336 43.0689C86.6268 45.2204 86.229 47.3152 85.82 49.4214C85.2404 53.045 85.4222 56.7705 85.7063 60.3035C86.0813 65.2972 87.7858 70.2343 90.9903 75.8056C91.4221 76.5756 91.888 77.3343 92.3539 78.1043C92.8197 78.863 93.2856 79.633 93.7174 80.403L94.4106 81.6146C94.7742 80.7766 95.1492 79.9387 95.5469 79.2366L96.4105 77.7532L97.0128 76.7001C98.8991 73.2464 100.592 69.3171 102.126 64.8443C103.763 60.2016 105.16 55.9892 106.274 51.6182C106.319 51.5276 106.422 51.3578 106.388 51.2219C106.388 51.1766 106.388 51.1313 106.388 51.086C106.388 50.8709 106.399 50.5878 106.524 50.3726C106.603 50.1009 106.74 49.9197 106.865 49.7498C106.922 49.6706 106.978 49.5913 107.035 49.5007L107.24 49.1497L107.649 48.4476L108.251 49.0251C108.353 49.1497 108.478 49.2403 108.592 49.3422C108.706 49.4441 108.831 49.5347 108.933 49.6592C109.172 49.8517 109.387 50.0329 109.603 50.2141C109.819 50.3953 110.035 50.5764 110.274 50.769C112.171 52.3316 113.785 54.1887 115.376 56.4987C115.478 56.6233 115.592 56.7705 115.717 56.929C115.83 57.0876 115.944 57.2348 116.058 57.3593C116.205 57.6198 116.376 57.8689 116.558 58.118C116.739 58.3671 116.91 58.6162 117.058 58.8767L118.773 61.9681C119.012 62.5682 119.296 63.0891 119.58 63.5987C119.785 63.9497 119.967 64.2894 120.148 64.6291C120.33 64.9688 120.512 65.3085 120.717 65.6596C121.614 67.3355 122.592 69.068 123.58 70.8005C125.353 73.8013 127.671 76.6548 130.466 79.3046C131.932 80.6181 132.83 82.294 133.637 83.9246C133.875 84.4115 134.103 84.8871 134.318 85.3627C134.534 85.8383 134.762 86.3139 135 86.8008C135.091 86.8461 135.125 86.9933 135.159 87.1292C135.193 86.9707 135.205 86.8008 135.216 86.631C135.216 86.4611 135.239 86.2913 135.273 86.1327C135.296 85.7477 135.318 85.3854 135.353 85.023C135.409 84.3323 135.455 83.6642 135.466 82.9848L135.591 80.9578C135.784 77.8099 135.432 74.5713 134.466 70.993C134.455 70.8118 134.409 70.642 134.364 70.4721C134.318 70.3023 134.273 70.1324 134.262 69.9512L134 68.9887C133.443 66.9165 132.375 65.1387 131.125 63.2589L130.716 62.5569C128.591 59.3523 126.08 56.6346 123.182 53.5659C120.16 50.316 117.546 47.7569 115.058 45.3902C112.865 43.318 110.774 41.8799 108.433 40.8834C108.228 40.8268 108.012 40.7588 107.785 40.6909C107.558 40.623 107.342 40.555 107.137 40.4984C106.978 40.4644 106.842 40.4078 106.694 40.3625C106.547 40.3172 106.41 40.2493 106.251 40.2266C105.365 39.9435 104.603 39.0376 104.217 37.8939C103.922 36.7956 103.99 35.6632 104.535 34.9272C105.183 34.0213 106.16 33.5343 107.569 33.523C110.024 33.523 112.376 34.3043 115.046 35.9576C118.239 37.9166 120.944 40.5097 123.251 42.7744L125.046 44.507C125.501 44.9373 125.921 45.3676 126.353 45.7865C126.785 46.2055 127.205 46.6245 127.66 47.0661C133.5 53.3394 137.159 58.7068 139.307 64.4932C141.489 70.4155 142.466 75.3979 142.125 80.2105C142.091 81.977 141.761 83.8227 141.455 85.5666C141.398 85.8723 141.341 86.1894 141.296 86.4838C141.114 87.1972 140.989 87.82 140.898 88.59C140.739 89.6657 140.534 90.8321 140.296 91.8512C140.261 92.123 140.205 92.3494 140.159 92.5872C140.114 92.825 140.068 93.0515 140.023 93.3233L139.977 93.4139C139.966 93.6403 139.955 93.8668 139.852 94.0367L139.875 94.082ZM95.6265 89.6431C95.206 90.0734 94.7856 90.4924 94.3424 90.9453C93.8083 91.4549 93.0811 91.5002 92.4788 90.9226C92.2516 90.6962 91.9789 90.4697 91.7061 90.2432C91.263 89.8696 90.8084 89.4732 90.4107 89.0429C90.1039 88.7712 89.9335 88.5107 89.7517 88.2276C89.7062 88.1597 89.6608 88.0804 89.6039 88.0012C89.5471 87.9106 89.4562 87.7973 89.3767 87.6954C89.2971 87.5935 89.2062 87.4803 89.1494 87.3897C86.2745 83.868 84.0246 79.8934 82.036 75.2507C80.9338 72.5217 79.9451 69.9739 79.3883 67.3128C78.8543 64.799 78.4225 62.3304 78.1497 59.9638C78.0247 58.9673 77.9907 58.0161 78.0134 56.9743L77.9907 56.612C78.0361 56.227 78.0475 55.8533 78.0588 55.4909C78.0588 55.1172 78.0816 54.7436 78.127 54.3699L78.2407 53.1582C78.1838 52.66 78.2066 52.2071 78.2861 51.6635C78.3202 50.3953 78.4338 49.1836 78.6043 47.8814L78.6838 47.3492L77.4566 47.4511C75.7748 47.5304 74.1726 47.6663 72.5817 47.7908L72.2181 47.8135C71.4909 47.8588 70.7636 47.9041 69.9909 47.8135C68.9228 47.5983 67.9114 47.5757 66.8546 47.553C66.6615 47.553 66.4797 47.553 66.2865 47.5417L66.1501 47.5757C63.9229 47.5757 61.4457 47.4285 58.7299 47.2699C56.4686 47.1341 54.1278 46.9529 51.9119 46.7264L50.9233 46.6245C50.1052 46.6245 49.2529 46.4773 48.0825 46.2735C47.3212 46.1829 46.5825 46.2282 45.878 46.6358C44.7076 47.2473 43.7985 48.006 43.1508 48.9119C42.2531 50.2594 41.31 51.6975 40.4805 53.3168L40.3327 53.5772C39.3555 55.4683 38.3783 57.348 37.5828 59.3296C37.026 60.7111 36.5374 62.1719 36.0488 63.6213C35.8329 64.2668 35.617 64.9009 35.4011 65.5237C35.0943 66.2257 34.8784 66.9052 34.6511 67.6412C34.6056 67.7771 34.5716 67.913 34.5261 68.0489C32.9921 72.5217 32.2648 76.9945 32.4012 81.3881C32.5034 84.2417 32.833 87.1066 33.1511 89.9715L33.3216 91.704C33.367 92.1343 33.4239 92.5759 33.492 93.0289C33.5602 93.4705 33.617 93.9234 33.6625 94.3537C34.0716 97.2752 34.3897 100.367 34.2534 103.435C34.2307 103.775 34.2307 104.092 34.2193 104.409C34.2193 104.726 34.2079 105.043 34.1852 105.383L33.9807 107.942C33.9125 109.358 33.8216 110.796 33.7193 112.222C33.617 113.649 33.5261 115.076 33.4579 116.503C33.4807 116.865 33.4579 117.092 33.4011 117.409C33.4125 117.59 33.4011 117.782 33.367 117.975C33.3443 118.167 33.3216 118.36 33.333 118.541C33.333 119.356 33.2989 120.16 33.2761 120.953C33.2534 121.757 33.2193 122.55 33.2193 123.365C33.1739 124.044 33.1739 124.712 33.1625 125.369C33.1625 126.037 33.1511 126.705 33.1057 127.374C33.1398 128.325 33.083 129.231 33.0261 130.125C33.0148 130.567 32.9921 131.008 32.9693 131.461C32.9125 132.764 32.8671 134.1 32.8784 135.413C32.9239 135.844 32.9466 136.297 32.9807 136.75C33.0148 137.202 33.0375 137.655 33.083 138.086C33.2193 138.867 33.2648 139.592 33.2648 140.396C33.4466 144.925 34.0602 148.311 35.242 151.323C36.6624 154.935 39.151 157.302 42.6395 158.729C44.2303 159.408 45.628 159.635 46.9121 159.431C49.1961 159.114 51.5597 158.264 54.2868 156.804C57.7072 154.924 61.0707 152.557 64.7752 149.206C68.1273 146.239 71.4681 143.498 74.8317 141.132C75.0476 140.962 75.2862 140.815 75.5135 140.656C75.7521 140.498 75.9907 140.339 76.1953 140.181C77.1384 139.558 78.1384 138.856 79.0474 138.086C82.286 135.527 86.0586 132.447 89.6835 129.412C90.0471 129.095 90.4221 128.789 90.8084 128.483C91.1948 128.177 91.5698 127.872 91.9334 127.555L92.2857 127.26C94.1947 125.698 96.2401 124.022 97.9673 122.176L102.319 117.692C103.456 116.401 104.615 115.212 105.808 113.989C106.047 113.74 106.285 113.491 106.535 113.242C107.069 112.732 107.512 112.166 108.001 111.52C108.047 111.464 108.103 111.396 108.149 111.328C108.547 110.818 108.99 110.252 109.467 109.799C109.785 109.459 110.137 109.108 110.478 108.757C110.831 108.406 111.183 108.055 111.49 107.716C112.546 106.697 113.603 105.677 114.49 104.545C115.558 103.299 116.455 101.952 117.353 100.604C117.705 99.9929 118.012 99.472 118.455 98.9058C120.83 95.6106 122.921 91.8059 125.012 87.1858C125.262 86.7442 125.239 86.3819 124.91 85.9629C124.682 85.6572 124.455 85.3288 124.239 85.0004C124.023 84.672 123.807 84.3436 123.569 84.0379L122.069 81.7731C119.398 77.9118 117.171 74.2882 115.387 70.7099C114.217 68.23 112.626 65.8634 111.103 63.5873C110.853 63.2137 110.603 62.8286 110.353 62.455C110.296 62.3644 110.206 62.2511 110.126 62.1492C110.046 62.0473 109.956 61.9341 109.899 61.8435L109.717 62.5569C109.444 63.3269 109.206 64.0969 108.967 64.8669C108.728 65.6369 108.49 66.3956 108.217 67.1769C106.683 71.6498 104.865 76.2019 102.74 80.4596C101.308 83.132 99.9559 85.2608 98.3196 86.8801C98.0582 87.1405 97.8196 87.3783 97.5923 87.6275C97.3651 87.8766 97.1264 88.1144 96.8651 88.3748C96.4333 88.8278 96.0128 89.2467 95.581 89.677L95.6265 89.6431ZM45.4917 69.7248C46.7303 67.9922 48.5825 67.4261 49.7756 67.1769C51.2415 66.8599 52.5937 67.7544 52.8778 69.0793C53.5482 71.5592 52.9119 74.458 51.3551 76.9493C50.2529 78.6478 48.1507 79.6556 46.2871 80.4483C46.1962 80.5049 46.0939 80.5389 45.9803 80.5615C45.878 80.5842 45.7757 80.6181 45.6735 80.6747C44.9349 80.9465 44.2531 80.9012 43.7304 80.6068C43.2872 80.3577 42.9577 79.9274 42.719 79.3272C42.2418 78.1269 42.2418 76.7228 42.5599 75.1601C43.094 73.0199 44.3326 71.2874 45.4689 69.7248H45.4917ZM59.1049 134.406C59.2185 134.009 59.2412 133.556 59.0822 133.228L58.9685 132.809L58.0367 130.182C57.7186 129.525 57.1504 129.095 56.48 128.823C55.7641 128.642 55.0368 128.687 54.4687 129.061C53.3323 129.808 52.1506 130.635 51.571 132.05C50.8665 133.862 50.3665 135.549 49.9006 137.146C49.4915 138.652 49.7984 140.35 50.7074 141.8C50.9574 142.174 51.2529 142.468 51.6051 142.672C51.7756 142.774 51.9574 142.876 52.0937 142.842C52.6278 142.921 53.1846 142.774 53.7528 142.4C54.7982 141.607 55.7527 140.758 56.5481 139.58L57.514 137.916C58.1163 136.863 58.6049 135.628 59.0822 134.394L59.1049 134.406ZM75.0817 61.232C75.9339 63.5873 75.7975 65.8407 74.6839 67.7658C74.5817 67.9356 74.434 68.2074 74.2408 68.332C74.1385 68.5018 74.0476 68.683 73.9567 68.8642C73.7749 69.2265 73.5931 69.5889 73.3317 69.9059C72.3886 71.344 70.9682 72.1593 69.6159 72.8954C68.9568 73.2124 68.366 73.2238 67.8432 72.9294C67.5819 72.7821 67.366 72.5444 67.116 72.1593C66.2751 70.9817 65.9456 69.7361 66.0592 68.5244C66.4228 65.4671 67.616 63.0098 69.8091 61.2433C70.6159 60.6545 71.5477 60.2582 72.2863 59.9864C72.8885 59.7486 73.4794 59.7373 74.0021 60.043C74.4908 60.2129 74.8317 60.6319 75.0589 61.232H75.0817ZM70.4 96.1655C70.1386 95.203 69.8205 94.5462 69.15 94.2858C68.5364 93.9347 67.7183 93.9234 66.7865 94.3197C65.2524 94.9539 63.9684 95.9617 62.832 97.513L62.7866 97.6036L62.7411 97.6942C62.6389 97.8641 62.5707 98.0339 62.5025 98.2038C62.4343 98.3736 62.3661 98.5322 62.2639 98.7133L62.173 98.9398C61.8775 99.6305 61.5593 100.378 61.3548 101.103C60.798 102.88 60.8776 104.556 61.8207 106.153C61.8548 106.21 61.8889 106.255 61.923 106.312C62.1502 106.663 62.4116 107.07 62.7866 107.297C62.8775 107.342 63.0479 107.444 63.1843 107.41C63.9002 107.591 64.5593 107.263 65.0706 106.98C67.0478 105.791 68.5023 104.296 69.525 102.314C70.65 100.163 70.9 98.3283 70.3886 96.1768L70.4 96.1655ZM47.6166 111.124C47.5371 111.396 47.4575 111.668 47.3552 111.928C47.3098 112.019 47.2643 112.109 47.2189 112.2C47.1393 112.381 47.0598 112.573 46.9007 112.709C46.9007 112.709 46.1507 113.796 45.9121 114.012C45.3439 114.385 44.7303 114.85 44.1053 115.302C43.7304 115.552 43.3667 115.574 43.0486 115.506C42.9122 115.54 42.7304 115.438 42.6508 115.393C42.3895 115.246 42.1736 115.008 42.0145 114.68C40.8668 112.619 40.5259 110.796 40.9123 108.916C41.2304 107.353 41.6395 105.836 42.0827 104.466C42.6849 102.824 43.9235 101.68 46.1053 100.955C46.7075 100.718 47.253 100.797 47.6848 101.046C48.2075 101.352 48.5029 101.861 48.7302 102.461C49.2984 104.307 49.2529 105.791 48.8097 107.172C48.6961 107.546 48.5825 107.953 48.4575 108.372C48.2984 108.927 48.1393 109.505 47.9461 110.06C47.7984 110.422 47.6961 110.784 47.5939 111.124H47.6166Z" fill="#FF5C6E"/>
<title>loader</title></svg>
    <div class="ml-10 text-primary text-xl">
        Chargement...    </div>
</div>
</div>
<script>
    'use strict';

    function initAmBanners() {
        return {
            options: {
                sections: [],
                content: [],
                banners: [],
                injectorSectionId: null,
                injectorParams: {}
            },
            isLoading: true,
            injectorResolver: {},

            initBanners: function () {
                this.options = {"sections":{"7":[7]},"content":{"7":"\n<div data-banner-id=\"7\">\n    <img style =\"margin-top: 1.5rem;\" <img src=\"https:\/\/www.espaceplaisir.fr\/media\/.renditions\/wysiwyg\/amasty\/ban_Alma_2.png\" alt=\"\" \/>    <\/div>\n"},"injectorParams":{"containerSelector":".products-grid .product-items:not(.amasty-banner-items)","itemSelector":".products-grid .product-items:not(.amasty-banner-items) .product-item","banners":[],"is_seo_friendly":[7]},"banners":[],"injectorSectionId":14};
                this.injectorResolver = amBannerInjectorResolver?.();

                this.insertBanners();
                this.isLoading = false;
            },

            insertBanners: function () {
                document.querySelectorAll('[data-role="amasty-banner-container"]').forEach((container) => {
                    const sectionId = container.getAttribute('data-position');

                    if (sectionId) {
                        this.loadBannerBySection(sectionId, container);
                    } else {
                        this.loadBannerByBannerId(container);
                    }
                });
            },

            getBanners: function (bannerId) {
                if (this.options.banners.indexOf(bannerId) === -1) {
                    return [];
                }
                const insertedBanner = this.banners.find((element) => {
                    return element === bannerId;
                });

                return content[insertedBanner];
            },

            getSectionBanners: function (section) {
                if (!(section in this.options.sections)) {
                    return [];
                }

                return this.options.sections[section].map((id) => {
                    return this.options.content[id];
                });
            },

            loadBannerBySection: function (sectionId, container) {
                container.innerHTML = this.getSectionBanners(sectionId).join('');
                this.injectorResolver?.resolve(sectionId, this.options.injectorParams);
                this.updateSection(`[data-role="amasty-banner-container"][data-position="${sectionId}"]`, container);
            },

            loadBannerByBannerId: function (container) {
                const bannerId = container.getAttribute('data-bannerid');
                container.innerHTML = (this.getBanners(bannerId));
                this.updateSection(`[data-role="amasty-banner-container"][data-bannerid="${bannerId}"]`, container);
            },

            updateSection: function(containerSelector, container) {
                hyva.replaceDomElement(
                    containerSelector,
                    container.outerHTML
                );
            }
        }
    }
</script>

<script>
    (function() {
        'use strict';

        const monetateData = {};

        const SELECTORS = {
            widget: '[data-monetate-widget]',
            loader: '.loader',
            content: '.content',
            productForm: 'form.product-item',
            reqToken: '[data-monetate-req-token]'
        };

        window.renderMonetateWidget = (id, products, actionId) => {
            monetateData[id] = {
                products,
                actionId
            };

            observeElements(id);
        }

        const observeElements = (widgetId) => {
            const widget = document.querySelector(`[data-monetate-widget="${widgetId}"]`);
            widget.classList.remove('hidden');
            const observer = new IntersectionObserver((entries) => {
                entries.forEach(entry => {
                    if (entry.isIntersecting) {
                        renderProducts(entry.target);
                        observer.unobserve(entry.target);
                    }
                });
            }, {
                threshold: 0.1,
                rootMargin: '50px 0px'
            });

            observer.observe(widget)
        }

        const renderProducts = async (element) => {
            const loader = element.querySelector(SELECTORS.loader);
            const content = element.querySelector(SELECTORS.content);
            const widgetId = element.dataset.monetateWidget;

            if (!monetateData[widgetId]?.products?.length) {
                errorHandler(element, 'No products provided for widget', widgetId);
                return;
            }

            const productIds = monetateData[widgetId].products.map(({itemGroupId}) => itemGroupId);

            try {
                const data = await fetchProducts(productIds);

                replaceProducts(data, widgetId, content);
                sendImpressions(content);

                if (loader) loader.classList.add('hidden');

                refreshYotpoWidgets();
            } catch (error) {
                errorHandler(element, `${error}`, widgetId);
            }
        }

        const fetchProducts = async (productIds) => {
            const response = await fetch(`${window.BASE_URL}monetate/ajax/products?monetate_data=${productIds.join(",")}`, {
                method: 'GET',
                headers: {
                    'Content-Type': 'application/x-www-form-urlencoded',
                    'X-Requested-With': 'XMLHttpRequest',
                    'Cache-Control': 'no-cache'
                }
            });

            return response.json();
        }

        const replaceProducts = (data, widgetId, element) => {
            const parser = new DOMParser();
            const doc = parser.parseFromString(data.html, 'text/html');
            const contentNode = doc.querySelector('body');

            hyva.activateScripts(contentNode);

            const productForms = contentNode.getElementsByTagName('form');
            const widgetProducts = monetateData[widgetId].products;

            if (!Array.from(productForms).length) {
                throw new Error('No products provided from magento for widget');
            }

            Array.from(productForms).forEach(item => {
                if (!item.classList.contains('product-item')) return;

                item.querySelector("input[name=form_key]").value = hyva.getFormKey();

                const productId = item.dataset.id;
                const product = widgetProducts.find(({itemGroupId}) => itemGroupId === productId);

                if (product) {
                    item.setAttribute('data-monetate-product-id', productId);
                    item.setAttribute('data-monetate-req-token', product.recToken);
                }
            });

            element.innerHTML = contentNode.innerHTML;
        };

        const sendImpressions = (element) => {
            const recTokens = Array.from(element.querySelectorAll(SELECTORS.reqToken))
                .map(item => item.dataset.monetateReqToken)
                .filter(Boolean);

            if (recTokens.length) {
                window.monetateQ.push(['reportRecImpressions', recTokens]);
            }
        }

        const refreshYotpoWidgets = () => {
            window.yotpo && yotpo.initWidgets()
        }

        document.addEventListener('click', (e) => {
            const req = e.target.closest('[data-monetate-req-token]');
            if (!req) return;

            window.monetateQ.push(['reportRecClicks', [req.dataset.monetateReqToken]]);
        }, { passive: true });

        const errorHandler = (elem, message, id) => {
            console.warn(`[MONETATE] ${message} ${id}`);
            elem.classList.add('hidden');
        };
    })();
</script>
<script type="text/json" id="default-section-data">
    {"messages":[],"customer":{"userData":{"user":{"id":0,"logged":false},"environment":"production","domain":"www.espaceplaisir.fr","session_id":"730fde37d1eac633485b19339bd2a3b1","event":"page_view"}},"compare-products":[],"last-ordered-items":[],"cart":[],"directory-data":[],"captcha":[],"instant-purchase":[],"loggedAsCustomer":[],"persistent":[],"review":[],"wishlist":{"items":[]},"adyen-express-pdp":[],"alma_section":[],"ammessages":[],"hyva_checkout":[],"guest_wishlist":[],"i4-ga4":[],"recently_viewed_product":[],"recently_compared_product":[],"product_data_storage":[],"paypal-billing-agreement":[]}</script>

<script>
    (() => {
        window.loadAdyenPaymentButtonsScript = (url) => {
            return  new Promise((resolve, reject) => {
                let script = document.createElement('script');
                script.setAttribute('type', 'text/javascript');
                script.setAttribute('src', url);
                document.head.append(script);
                script.onload = () => resolve()
            });
        };
    })();
</script><script>
    function initAdyenGooglePay()
    {
        return {
            cart: undefined,
            isLoggedIn: undefined,
            countries: null,
            fetchingCountries: false,
            maskedId: null,
            shippingMethods: {},
            googlePayToken: null,
            googlePayAllowed: null,
            googlePayComponent: null,
            config: {
                actionSuccess: "",
                storeCode: "",
                countryCode: "",
                currency: "",
                merchantAccount: "",
                format: "",
                locale: "",
                originkey: "",
                checkoutenv: "",
                isProductView: false,
            },
            isIOSMobile: /iPhone|iPad|iPod/i.test(navigator.userAgent) && window.innerWidth <= 768,

            // get cart data via Hyva private-content-loaded
            getCartData(data) {
                if (data.cart) {
                    this.cart = data.cart;
                }

                if (data.customer.firstname) {
                    this.isLoggedIn = true;
                }
            },

            // pre init to load nessary adyen script and config info
            preInit: function() {
                button = this.$root;
                const {isLogged, cart} = this.$store.private;

                this.cart = cart;
                this.isLoggedIn = isLogged;

                if (this.isIOSMobile) document.body.classList.add('ios-mobile');

                this.config.actionSuccess = button.getAttribute('data-actionSuccess');
                this.config.storeCode = button.getAttribute('data-storeCode');
                this.config.countryCode = button.getAttribute('data-countryCode');
                this.config.currency = button.getAttribute('data-currency');
                this.config.merchantAccount = button.getAttribute('data-merchantAccount');
                this.config.format = button.getAttribute('data-format');
                this.config.locale = button.getAttribute('data-locale');
                this.config.originkey = button.getAttribute('data-originkey');
                this.config.checkoutenv = button.getAttribute('data-checkoutenv');

                window.loadAdyenPaymentButtonsScript("https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/Adyen_Payment/js/adyen.min.js")
                    .then(() => {
                        this.initialiseExpressButton();
                    })
                    .catch(error => {
                        console.log('ERROR: Unable to load Adyen Payment js', error)
                    });
            },

            async initialiseExpressButton () {
                this.getCountries();

                let googlePaymentMethod = await this.getPaymentMethod('googlepay');

                if (!googlePaymentMethod) {
                    window.addEventListener(
                        'private-content-loaded',
                        Alpine.debounce(() => this.reloadGooglePayButton(this.$root), 500)
                    );
                } else {
                    if (!this.isConfigSet(googlePaymentMethod, ['gatewayMerchantId', 'merchantId'])) {
                        console.log('Required configuration for Google Pay is missing.');
                        return;
                    }

                    this.initialiseGooglePayComponent(googlePaymentMethod, this.$root);
                }
            },

            async reloadGooglePayButton (element) {
                const googlePaymentMethod = await this.getPaymentMethod('googlepay');

                this.unmountGooglePay();

                if (!this.isConfigSet(googlePaymentMethod, ['gatewayMerchantId', 'merchantId'])) {
                    return;
                }

                this.initialiseGooglePayComponent(googlePaymentMethod, element);
            },

            async initialiseGooglePayComponent (googlePaymentMethod, element) {
                const checkoutComponent = await new AdyenCheckout({
                    locale: this.config.locale,
                    originKey: this.config.originkey,
                    environment: this.config.checkoutenv,
                    risk: {
                        enabled: false
                    }
                });

                const googlePayConfig = this.getGooglePayConfig(googlePaymentMethod, element);

                this.googlePayComponent = checkoutComponent.create(googlePaymentMethod, googlePayConfig);

                this.googlePayComponent
                    .isAvailable()
                    .then(function () {
                        this.googlePayComponent.mount(element);
                    }.bind(this))
                    .catch(function (error) {
                        console.log('Google pay is unavailable.', error);
                    }.bind(this));
            },

            unmountGooglePay: function () {
                if (this.googlePayComponent) {
                    this.googlePayComponent.unmount();
                }
            },

            getGooglePayConfig (googlePaymentMethod, element) {
                const googlePayStyles = this.getGooglePayStyles();
                const pdpForm = this.getPdpForm(element);
                let currency;

                if (!this.config.isProductView) {
                    const adyenMethods = this.cart.adyen_payment_methods;
                    const paymentMethodExtraDetails = adyenMethods.paymentMethodsExtraDetails[googlePaymentMethod.type];
                    currency = paymentMethodExtraDetails.configuration.amount.currency;
                }

                return {
                    showPayButton: true,
                    countryCode: this.config.countryCode,
                    environment: this.config.checkoutenv.toUpperCase(),
                    showButton: true,
                    emailRequired: true,
                    shippingAddressRequired: true,
                    shippingOptionRequired: true,
                    shippingAddressParameters: {
                        phoneNumberRequired: true
                    },
                    billingAddressRequired: true,
                    billingAddressParameters: {
                        format: 'FULL',
                        phoneNumberRequired: true
                    },
                    callbackIntents: ['SHIPPING_ADDRESS', 'SHIPPING_OPTION'],
                    transactionInfo: {
                        totalPriceStatus: 'ESTIMATED',
                        totalPrice: this.formatAmount(this.getCartSubtotal()),
                        currencyCode: currency
                    },
                    paymentDataCallbacks: {
                    onPaymentDataChanged: this.onPaymentDataChanged.bind(this)
                    },
                    allowedPaymentMethods: ['CARD'],
                    phoneNumberRequired: true,
                    configuration: {
                        gatewayMerchantId: googlePaymentMethod.configuration.gatewayMerchantId,
                        merchantId: googlePaymentMethod.configuration.merchantId,
                        merchantName: this.config.merchantAccount
                    },
                    onAuthorized: this.startPlaceOrder.bind(this),
                    onClick: function (resolve) {resolve()},
                    onSubmit: function () {},
                    onError: function () {},
                    ...googlePayStyles
                };
            },

            setShippingInformation (paymentData) {
                const shippingMethod = this.shippingMethods.find(function (method) {
                        return method.method_code === paymentData.shippingOptionData.id;
                    });

                const [firstname, ...lastname] = paymentData.shippingAddress.name.split(' ');

                let payload = {
                    'addressInformation': {
                        'shipping_address': {
                            ...this.mapAddress(paymentData.shippingAddress),
                            'same_as_billing': 0,
                            'customer_address_id': 0,
                            'save_in_address_book': 0
                        },
                        'billing_address': {
                            ...this.mapAddress(paymentData.paymentMethodData.info.billingAddress),
                            'same_as_billing': 0,
                            'customer_address_id': 0,
                            'save_in_address_book': 0
                        },
                        'shipping_method_code': shippingMethod.method_code,
                        'shipping_carrier_code': shippingMethod.carrier_code,
                        'extension_attributes': this.getExtensionAttributes(paymentData)
                    }
                };

                return payload;
            },

            mapAddress: function (address) {
                const [firstname, ...lastname] = address.name.split(' ');

                return {
                    'telephone': typeof address.phoneNumber !== 'undefined' ? address.phoneNumber : '',
                    'firstname': firstname,
                    'lastname': lastname.length ? lastname.join(' ') : '',
                    'street': [
                        address.address1,
                        address.address2
                    ],
                    'city': address.locality,
                    'region': address.administrativeArea,
                    'region_id': this.getRegionId(
                        address.countryCode.toUpperCase(),
                        address.administrativeArea
                    ),
                    'region_code': null,
                    'country_id': address.countryCode.toUpperCase(),
                    'postcode': address.postalCode
                };
            },

            onPaymentDataChanged (data) {
                return new Promise((resolve, reject) => {
                    const payload = {
                        address: {
                            country_id: data.shippingAddress.countryCode,
                            postcode: data.shippingAddress.postalCode,
                            street: [''],
                            extension_attributes: {
                                express_payment: true
                            }
                        }
                    };

                    //getShippingMethods
                    fetch(
                        this.getApiUrl('estimate-shipping-methods'),
                        {
                            method: 'POST',
                            body: JSON.stringify(payload),
                            headers: {
                                'Content-Type': 'application/json',
                                'X-Requested-With': 'XMLHttpRequest'
                            },
                        }
                    ).then(function (response) {
                        return response.json();
                    }).then(function (response) {
                        // Stop if no shipping methods.
                        if (response.length === 0) {
                            reject(hyva.str('There are no shipping methods available for you right now. Please try again or use an alternative payment method.'));
                            return;
                        }

                        this.shippingMethods = response;
                        const selectedShipping = data.shippingOptionData.id === 'shipping_option_unselected'
                            ? response[0]
                            : response.find(({ method_code: id }) => id === data.shippingOptionData.id);
                        const regionId = this.getRegionId(data.shippingAddress.countryCode, data.shippingAddress.locality);
                        // Create payload to get totals
                        const totalsPayload = {
                            'addressInformation': {
                                'address': {
                                    'countryId': data.shippingAddress.countryCode,
                                    'region': data.shippingAddress.locality,
                                    'regionId': regionId,
                                    'postcode': data.shippingAddress.postalCode
                                },
                                'shipping_method_code': selectedShipping.method_code,
                                'shipping_carrier_code': selectedShipping.carrier_code
                            }
                        };

                        //setTotalsInfo
                        fetch(
                            this.getApiUrl('totals-information'),
                            {
                                method: 'POST',
                                body: JSON.stringify(totalsPayload),
                                headers: {
                                    'Content-Type': 'application/json',
                                    'X-Requested-With': 'XMLHttpRequest'
                                },
                            }
                        ).then(function (totals) {
                            return totals.json();
                        }).then(function (totals) {
                            const shippingMethods = response.map((shippingMethod) => {
                                const label = shippingMethod.price_incl_tax
                                    ? hyva.formatPrice(shippingMethod.price_incl_tax) + ' - ' + shippingMethod.method_title
                                    : shippingMethod.method_title;

                                return {
                                    id: shippingMethod.method_code,
                                    label: label,
                                    description: shippingMethod.carrier_title
                                };
                            });

                            const paymentDataRequestUpdate = {
                                newShippingOptionParameters: {
                                    defaultSelectedOptionId: selectedShipping.method_code,
                                    shippingOptions: shippingMethods
                                },
                                newTransactionInfo: {
                                    displayItems: [
                                        {
                                            label: 'Shipping',
                                            type: 'LINE_ITEM',
                                            price: totals.shipping_incl_tax.toString(),
                                            status: 'FINAL'
                                        }
                                    ],
                                    currencyCode: totals.quote_currency_code,
                                    totalPriceStatus: 'FINAL',
                                    totalPrice: totals.grand_total.toString(),
                                    totalPriceLabel: 'Total',
                                    countryCode: this.config.countryCode
                                }
                            };

                            resolve(paymentDataRequestUpdate);
                        }.bind(this)).catch(error => {
                                console.error('Adyen GooglePay: Unable to get totals', error);
                                reject(hyva.str('We\'re unable to fetch the cart totals for you. Please try an alternative payment method.'));
                        });
                    }.bind(this));
                });
            },

            startPlaceOrder (paymentData) {
                let self = this;
                window.dispatchEvent(new CustomEvent('loading-page', { detail: true }));

                fetch(
                    this.getApiUrl('shipping-information'),
                    {
                        method: 'POST',
                        body: JSON.stringify(this.setShippingInformation(paymentData)),
                        headers: {
                            'Content-Type': 'application/json',
                            'X-Requested-With': 'XMLHttpRequest'
                        },
                    }
                ).then(function () {
                    const stateData = this.googlePayComponent.data;

                    const pageTypes = {
                        'catalog-product-view': 'PDP',
                        'checkout-cart-index': 'Cart'
                    };

                    const sourcePage = Object.keys(pageTypes).map(id => document.body.classList.contains(id) ? pageTypes[id] : '').filter(Boolean)[0] || 'miniCart';

                    const payload = {
                        email: paymentData.email,
                        billingAddress: this.mapAddress(paymentData.paymentMethodData.info.billingAddress),
                        paymentMethod: {
                            method: 'adyen_googlepay',
                            additional_data: {
                                brand_code: self.googlePayComponent.props.type,
                                stateData: JSON.stringify(stateData)
                            },
                            extension_attributes: this.getExtensionAttributes(paymentData)
                        }
                    };

                    if (!payload.paymentMethod.extension_attributes.agreement_ids) {
                        payload.paymentMethod.extension_attributes.agreement_ids = ["1"];
                    }

                    fetch(
                        this.getApiUrl('payment-information') + '?source_page=' + sourcePage,
                        {
                            method: 'POST',
                            body: JSON.stringify(payload),
                            headers: {
                                'Content-Type': 'application/json',
                                'X-Requested-With': 'XMLHttpRequest'
                            },
                        }
                    ).then(function (response) {
                        if (!response.ok) {
                            window.dispatchMessages([
                                {
                                    type: 'error',
                                    text: 'Adyen GooglePay Unable to take payment'
                                }
                            ], 2000);

                            window.dispatchEvent(new CustomEvent('loading-page', { detail: false }));
                            return;
                        }
                        document.location = this.config.actionSuccess;
                        window.dispatchEvent(new CustomEvent('loading-page', { detail: true }));
                    }.bind(this)).catch(function (response) {
                        console.error('Adyen GooglePay Unable to take payment', response);
                    });
                }.bind(this));
            },

            getCountries() {
                if (!this.countries) {
                    fetch(
                        BASE_URL + 'rest/V1/directory/countries',
                        {
                            method: 'GET',
                        }
                    ).then(function (response) {
                        return response.json();
                    }).then(function (response) {
                        this.countries = this.processCountries(response);
                    }.bind(this));
                }
            },

            processCountries(countires) {
                const countryDirectory = {};

                countires.forEach(function (country) {
                    countryDirectory[country.two_letter_abbreviation] = {};

                    if (typeof country.available_regions !== 'undefined') {
                        country.available_regions.forEach(function (region) {
                            const regionName = region.name.toLowerCase().replace(/[^A-Z0-9]/ig, '');

                            countryDirectory[country.two_letter_abbreviation][regionName] = region.id;
                        });
                    }
                });

                return countryDirectory;
            },

            /**
             * Get the API URL based on whether the customer is logged in or not.
             *
             * @param {String} uri
             * @return {String}
             */
            getApiUrl(uri) {
                const baseUrl = BASE_URL + 'rest/' + this.config.storeCode + '/V1/';
                const maskedId = this.isProductView
                    ? this.maskedId
                    : this.getMaskedIdFromCart();

                return this.isLoggedIn
                    ? baseUrl + 'carts/mine/' + uri
                    : baseUrl + 'guest-carts/' + maskedId + '/' + uri;
            },

            getMaskedIdFromCart() {
                return this.cart.guest_masked_id
                    ? this.cart.guest_masked_id
                    : null;
            },

            /**
             * Get the region ID given a country code and region name combination.
             *
             * @param {String} countryCode
             * @param {String} regionName
             * @return {String|Number}
             */
            getRegionId(countryCode, regionName)
            {
                if (typeof regionName !== 'string') {
                    return null;
                }

                regionName = regionName.toLowerCase().replace(/[^A-Z0-9]/ig, '');

                if (typeof this.countries[countryCode] !== 'undefined'
                    && typeof this.countries[countryCode][regionName] !== 'undefined'
                ) {
                    return this.countries[countryCode][regionName];
                }

                return 0;
            },

            isConfigSet(paymentMethod, configurations = []) {
                if (!paymentMethod || typeof paymentMethod.configuration === 'undefined') {
                    return false;
                }

                const configurationKeys = Object.keys(paymentMethod.configuration);

                return configurations.every(function (configuration) {
                    return configurationKeys.includes(configuration);
                });
            },

            getPdpForm(element) {
                return element.closest('#product_addtocart_form');
            },

            getPaymentMethod(paymentType) {
                function findPaymentMethod(paymentMethods, type) {
                    let found = paymentMethods.find(function (paymentMethod) {
                        return paymentMethod.type === type;
                    });

                    if (!found && 'googlepay' === type) {
                        found = paymentMethods.find(function (paymentMethod) {
                            return paymentMethod.type === 'paywithgoogle';
                        });
                    }

                    return found;
                }

                if (this.cart
                    && this.cart.adyen_payment_methods
                    && this.cart.adyen_payment_methods.paymentMethodsResponse?.paymentMethods
                ) {
                    const paymentMethods = this.cart.adyen_payment_methods.paymentMethodsResponse.paymentMethods;

                        if (!paymentMethods) {
                            return null;
                        }

                        const foundMethods = findPaymentMethod(paymentMethods, paymentType);

                        if (!!foundMethods) {
                            foundMethods.configuration = this.convertKeysToCamelCase(foundMethods.configuration);

                            return foundMethods;
                        }
                }

                return null;
            },

            convertKeysToCamelCase (originalObject) {
                const convertedObject = {};
                const toCamel = (s) => {
                    return s.replace(/([-_][a-z])/ig, ($1) => {
                        return $1.toUpperCase()
                            .replace('-', '')
                            .replace('_', '');
                    });
                };

                Object.keys(originalObject).forEach((key) => {
                    convertedObject[toCamel(key)] = originalObject[key];
                });

                return convertedObject;
            },

            getCartSubtotal() {
                return parseFloat(this.cart.subtotalAmount);
            },

            getExtensionAttributes() {
                // Default empty attributes so that they can be overridden in themes.
                return {};
            },

            getGooglePayStyles() {
                // Default styles that can be overridden by themes.
                return {
                    buttonColor: 'black',
                    buttonType: 'long'
                };
            },

            formatAmount (amount) {
                return String(Number(amount).toFixed(this.config.format));
            },
        }
    }
</script>
<script>
    function initAdyenApplePay()
    {
        return {
            cart: undefined,
            isLoggedIn: undefined,
            countries: null,
            fetchingCountries: false,
            maskedId: null,
            applePayComponent: null,
            config: {
                actionSuccess: "",
                storeCode: "",
                countryCode: "",
                currency: "",
                merchantAccount: "",
                format: "",
                locale: "",
                originkey: "",
                checkoutenv: "",
                isProductView: false,
            },

            // get cart data via Hyva private-content-loaded
            getData(data) {
                if (data.cart) {
                    this.cart = data.cart;
                }

                if (data.customer.firstname) {
                    this.isLoggedIn = true;
                }
            },

            // pre init to load nessary adyen script and config info
            preInit: function() {
                button = this.$root
                const {isLogged, cart} = this.$store.private;

                this.cart = cart;
                this.isLoggedIn = isLogged;

                this.config.actionSuccess = button.getAttribute('data-actionSuccess');
                this.config.storeCode = button.getAttribute('data-storeCode');
                this.config.countryCode = button.getAttribute('data-countryCode');
                this.config.currency = button.getAttribute('data-currency');
                this.config.merchantAccount = button.getAttribute('data-merchantAccount');
                this.config.format = button.getAttribute('data-format');
                this.config.locale = button.getAttribute('data-locale');
                this.config.originkey = button.getAttribute('data-originkey');
                this.config.checkoutenv = button.getAttribute('data-checkoutenv');


                window.loadAdyenPaymentButtonsScript("https://www.espaceplaisir.fr/static/version1779257511/frontend/Interactiv4/espaceplaisir-hyva/fr_FR/Adyen_Payment/js/adyen.min.js")
                    .then(() => {
                        this.initialiseExpressButton();
                    })
                    .catch(error => {
                        console.log('ERROR: Unable to load Adyen Payment js', error)
                    });
            },

            async initialiseExpressButton () {
                this.getCountries();

                let applePaymentMethod = await this.getPaymentMethod('applepay');

                if (!applePaymentMethod) {
                    window.addEventListener(
                        'private-content-loaded',
                        Alpine.debounce(() => this.reloadApplePayButton(this.$root), 500)
                    );
                } else {
                    if (!this.isConfigSet(applePaymentMethod, ['merchantId', 'merchantName'])) {
                        console.log('Required configuration for Apple Pay is missing.');
                        return;
                    }

                    this.initialiseApplePayComponent(applePaymentMethod, this.$root);
                }
            },

            async reloadApplePayButton (element) {
                const applePaymentMethod = await this.getPaymentMethod('applepay');

                this.unmountApplePay();

                if (!this.isConfigSet(applePaymentMethod, ['merchantId', 'merchantName'])) {
                    return;
                }

                this.initialiseApplePayComponent(applePaymentMethod, this.$root);
            },

            async initialiseApplePayComponent (applePaymentMethod, element) {
                const adyenCheckoutComponent = await new AdyenCheckout({
                    locale: this.config.locale,
                    originKey: this.config.originkey,
                    environment: this.config.checkoutenv,
                    risk: {
                        enabled: false
                    },
                    clientKey: window.checkoutConfig.payment.adyen.clientKey,
                    analytics: {
                        enabled: false // To not send analytics data to Adyen. (this resolve checkoutAttemptId issue)
                    }
                });

                const applePayConfiguration = this.getApplePayConfiguration(applePaymentMethod, element);

                this.applePayComponent = adyenCheckoutComponent.create( 'applepay', applePayConfiguration);

                this.applePayComponent
                    .isAvailable()
                    .then(() => {
                        this.applePayComponent.mount(element);
                    }).catch(error => {
                        console.log('Apple pay is unavailable.', error);
                    });
            },

            unmountApplePay () {
                if (this.applePayComponent) {
                    this.applePayComponent.unmount();
                }
            },

            getApplePayConfiguration (applePaymentMethod, element) {
                const applePayStyles = this.getApplePayStyles();
                const countryCode = this.config.countryCode === 'UK' ? 'GB' : this.config.countryCode;
                const pdpForm = this.getPdpForm(element);
                let currency;

                if (!this.config.isProductView) {
                    const adyenMethods = this.cart.adyen_payment_methods;
                    const paymentMethodExtraDetails = adyenMethods.paymentMethodsExtraDetails[applePaymentMethod.type];
                    currency = paymentMethodExtraDetails.configuration.amount.currency;
                }

                return {
                    countryCode: countryCode,
                    currencyCode: currency,
                    totalPriceLabel: hyva.str('Grand Total'),
                    configuration: {
                        domainName: window.location.hostname,
                        merchantId: applePaymentMethod.configuration.merchantId,
                        merchantName: applePaymentMethod.configuration.merchantName
                    },
                    amount: {
                        value: this.formatAmount(this.getCartSubtotal() * 100),
                        currency: currency
                    },
                    supportedNetworks: this.getSupportedNetworks(),
                    merchantCapabilities: ['supports3DS'],
                    requiredShippingContactFields: ['postalAddress', 'name', 'email', 'phone'],
                    requiredBillingContactFields: ['postalAddress', 'name'],
                    shippingMethods: [],
                    onAuthorized: this.startPlaceOrder.bind(this),
                    onShippingContactSelected: this.onShippingContactSelect.bind(this),
                    onShippingMethodSelected: this.onShippingMethodSelect.bind(this),
                    onClick: function (resolve) {resolve()},
                    onSubmit: function () {},
                    onError: function () {},
                    ...applePayStyles
                };
            },

            onShippingContactSelect (resolve, reject, event, session) {
                let self = this;

                // Get the address.
                let address = event.shippingContact,

                // Create a payload.
                payload = {
                    address: {
                        city: address.locality,
                        region: address.administrativeArea,
                        country_id: address.countryCode.toUpperCase(),
                        postcode: address.postalCode,
                        save_in_address_book: 0,
                        extension_attributes: {
                            express_payment: true
                        }
                    }
                };

                self.shippingAddress = payload.address;

                //getShippingMethods
                fetch(
                    this.getApiUrl('estimate-shipping-methods'),
                    {
                        method: 'POST',
                        body: JSON.stringify(payload),
                        headers: {
                            'Content-Type': 'application/json',
                            'X-Requested-With': 'XMLHttpRequest'
                        },
                    }
                ).then(function (responseShipping) {
                    return responseShipping.json();
                }).then(function (result) {
                    // Stop if no shipping methods.
                    if (result.length === 0) {
                        reject(hyva.str('There are no shipping methods available for you right now. Please try again or use an alternative payment method.'));
                    }

                    let shippingMethods = [];
                    self.shippingMethods = {};

                    // Format shipping methods array.
                    for (let i = 0; i < result.length; i++) {
                        if (typeof result[i].method_code !== 'string') {
                            continue;
                        }

                        let method = {
                            identifier: result[i].method_code,
                            label: result[i].method_title,
                            detail: result[i].carrier_title ? result[i].carrier_title : '',
                            amount: parseFloat(result[i].amount).toFixed(2)
                        };

                        // Add method object to array.
                        shippingMethods.push(method);

                        self.shippingMethods[result[i].method_code] = result[i];

                        if (!self.shippingMethod) {
                            self.shippingMethod = result[i].method_code;
                        }
                    }

                    // Create payload to get totals
                    let totalsPayload = {
                        'addressInformation': {
                            'address': {
                                'countryId': self.shippingAddress.country_id,
                                'region': self.shippingAddress.region,
                                'regionId': this.getRegionId(self.shippingAddress.country_id, self.shippingAddress.region),
                                'postcode': self.shippingAddress.postcode
                            },
                            'shipping_method_code': self.shippingMethods[shippingMethods[0].identifier].method_code,
                            'shipping_carrier_code': self.shippingMethods[shippingMethods[0].identifier].carrier_code
                        }
                    };

                    //setTotalsInfo
                    fetch(
                        this.getApiUrl('totals-information'),
                        {
                            method: 'POST',
                            body: JSON.stringify(totalsPayload),
                            headers: {
                                'Content-Type': 'application/json',
                                'X-Requested-With': 'XMLHttpRequest'
                            },
                        }
                    ).then(function (response) {
                        return response.json();
                    }).then(function (response) {
                        let applePayShippingContactUpdate = {
                                newTotal: {
                                    label: hyva.str('Grand Total'),
                                    amount: response.grand_total.toString()
                                },
                                newLineItems: [
                                    {
                                        type: 'final',
                                        label: hyva.str('Subtotal'),
                                        amount: response.subtotal.toString()
                                    },
                                    {
                                        type: 'final',
                                        label: hyva.str('Shipping'),
                                        amount: shippingMethods[0].amount.toString()
                                    }
                                ],
                                newShippingMethods: shippingMethods,
                            };

                        resolve(applePayShippingContactUpdate);
                        // Pass shipping methods back
                    }.bind(this)).catch(error => {
                            console.error('Adyen ApplePay: Unable to get totals', error);
                            reject(hyva.str('We\'re unable to fetch the cart totals for you. Please try an alternative payment method.'));
                    });
                }.bind(this)).catch(reject);
            },

            onShippingMethodSelect (resolve, reject, event) {
                let self = this;

                let shippingMethod = event.shippingMethod;
                let payload = {
                    'addressInformation': {
                        'address': {
                            'countryId': self.shippingAddress.country_id,
                            'region': self.shippingAddress.region,
                            'regionId': this.getRegionId(self.shippingAddress.country_id, self.shippingAddress.region),
                            'postcode': self.shippingAddress.postcode
                        },
                        'shipping_method_code': self.shippingMethods[shippingMethod.identifier].method_code,
                        'shipping_carrier_code': self.shippingMethods[shippingMethod.identifier].carrier_code
                    }
                };

                //setTotalsInfo
                fetch(
                    this.getApiUrl('totals-information'),
                    {
                        method: 'POST',
                        body: JSON.stringify(payload),
                        headers: {
                            'Content-Type': 'application/json',
                            'X-Requested-With': 'XMLHttpRequest'
                        },
                    }
                ).then(function (response) {
                    return response.json();
                }).then(function (response) {
                    let applePayShippingMethodUpdate = {
                        'newTotal': {
                                type: 'final',
                                label: hyva.str('Grand Total'),
                                amount: response.grand_total.toString()
                            },
                        'newLineItems': [
                            {
                                type: 'final',
                                label: hyva.str('Subtotal'),
                                amount: response.subtotal.toString()
                            },
                            {
                                type: 'final',
                                label: hyva.str('Shipping'),
                                amount: shippingMethod.amount.toString()
                            }
                        ],
                    };

                    self.shippingMethod = shippingMethod.identifier;

                    resolve(applePayShippingMethodUpdate);
                }.bind(this)).catch(error => {
                    console.error('Adyen ApplePay: Unable to get totals', error);
                    reject(hyva.str('We\'re unable to fetch the cart totals for you. Please try an alternative payment method.'));
                });
            },

            startPlaceOrder (resolve, reject, event) {
                let self = this;
                let shippingContact = event.payment.shippingContact;
                let billingContact = event.payment.billingContact;
                let payload = {
                        'addressInformation': {
                            'shipping_address': {
                                'email': shippingContact.emailAddress,
                                'telephone': shippingContact.phoneNumber,
                                'firstname': shippingContact.givenName,
                                'lastname': shippingContact.familyName,
                                'street': shippingContact.addressLines,
                                'city': shippingContact.locality,
                                'region': shippingContact.administrativeArea,
                                'region_id': this.getRegionId(
                                    shippingContact.countryCode.toUpperCase(),
                                    shippingContact.administrativeArea
                                ),
                                'region_code': null,
                                'country_id': shippingContact.countryCode.toUpperCase(),
                                'postcode': shippingContact.postalCode,
                                'same_as_billing': 0,
                                'customer_address_id': 0,
                                'save_in_address_book': 0
                            },
                            'billing_address': {
                                'email': shippingContact.emailAddress,
                                'telephone': shippingContact.phoneNumber,
                                'firstname': billingContact.givenName,
                                'lastname': billingContact.familyName,
                                'street': billingContact.addressLines,
                                'city': billingContact.locality,
                                'region': billingContact.administrativeArea,
                                'region_id': this.getRegionId(
                                    billingContact.countryCode.toUpperCase(),
                                    billingContact.administrativeArea
                                    ),
                                'region_code': null,
                                'country_id': billingContact.countryCode.toUpperCase(),
                                'postcode': billingContact.postalCode,
                                'same_as_billing': 0,
                                'customer_address_id': 0,
                                'save_in_address_book': 0
                            },
                            'shipping_method_code': self.shippingMethods
                                ? self.shippingMethods[self.shippingMethod].method_code
                                : '',
                            'shipping_carrier_code': self.shippingMethods
                                ? self.shippingMethods[self.shippingMethod].carrier_code
                                : '',
                            'extension_attributes': this.getExtensionAttributes(event.payment),
                        }
                    };

                window.dispatchEvent(new CustomEvent('loading-page', { detail: true }));

                // set addresses (setShippingInformation)
                fetch(
                    this.getApiUrl('shipping-information'),
                    {
                        method: 'POST',
                        body: JSON.stringify(payload),
                        headers: {
                            'Content-Type': 'application/json',
                            'X-Requested-With': 'XMLHttpRequest'
                        },
                    }
                ).then(function () {
                    // Submit payment information
                    const stateData = {
                        'paymentMethod': {
                            'type': 'applepay',
                            'applePayToken': btoa(JSON.stringify(event.payment.token.paymentData))
                        }
                    };

                    const pageTypes = {
                        'catalog-product-view': 'PDP',
                        'checkout-cart-index': 'Cart'
                    };

                    const sourcePage = Object.keys(pageTypes).map(id => document.body.classList.contains(id) ? pageTypes[id] : '').filter(Boolean)[0] || 'miniCart';

                    const postData = {
                        email: shippingContact.emailAddress,
                        paymentMethod: {
                            method: 'adyen_applepay',
                            additional_data: {
                                brand_code: 'applepay',
                                stateData: JSON.stringify(stateData)
                            },
                            extension_attributes: {
                                'agreement_ids': ["1"],
                            }
                        },
                    };

                    //createPayment
                    fetch(
                        this.getApiUrl('payment-information') + '?source_page=' + sourcePage,
                        {
                            method: 'POST',
                            body: JSON.stringify(postData),
                            headers: {
                                'Content-Type': 'application/json',
                                'X-Requested-With': 'XMLHttpRequest'
                            },
                        }
                    ).then(function (response) {
                        document.location = this.config.actionSuccess;
                        resolve(window.ApplePaySession.STATUS_SUCCESS);
                        window.dispatchEvent(new CustomEvent('loading-page', { detail: false }));
                    }.bind(this)).catch(error => {
                        reject(window.ApplePaySession.STATUS_FAILURE);
                        console.error('Adyen ApplePay Unable to take payment', error);
                    });
                }.bind(this)).catch(error => {
                    console.error('Adyen ApplePay Unable to set shipping information', error);
                    reject(window.ApplePaySession.STATUS_INVALID_BILLING_POSTAL_ADDRESS);
                });
            },

            getCountries() {
                if (!this.countries) {
                    fetch(
                        BASE_URL + 'rest/V1/directory/countries',
                        {
                            method: 'GET',
                        }
                    ).then(function (response) {
                        return response.json();
                    }).then(function (response) {
                        this.countries = this.processCountries(response);
                    }.bind(this));
                }
            },

            processCountries(countires) {
                const countryDirectory = {};

                countires.forEach(function (country) {
                    countryDirectory[country.two_letter_abbreviation] = {};
                    if (typeof country.available_regions !== 'undefined') {
                        country.available_regions.forEach(function (region) {
                            const regionName = region.name.toLowerCase().replace(/[^A-Z0-9]/ig, '');

                            countryDirectory[country.two_letter_abbreviation][regionName] = region.id;
                        });
                    }
                });

                return countryDirectory;
            },

            setExpressMethods(paymentMethods) {
                if (paymentMethods.adyen_payment_methods) {
                    const methods = {
                        payment_methods: {
                            paymentMethodsExtraDetails: paymentMethods.adyen_payment_methods.extra_details,
                            paymentMethodsResponse: paymentMethods.adyen_payment_methods.methods_response
                        }
                    };

                    customerData.getInitCustomerData().then(function () {
                        customerData.set('adyen-express-pdp', methods);
                    });
                }

                if (paymentMethods.masked_quote_id) {
                    this.maskedId = paymentMethods.masked_quote_id;
                }
            },

            /**
             * Get the API URL based on whether the customer is logged in or not.
             *
             * @param {String} uri
             * @return {String}
             */
            getApiUrl(uri) {
                const baseUrl = BASE_URL + 'rest/' + this.config.storeCode + '/V1/';
                const maskedId = this.isProductView
                    ? this.maskedId
                    : this.getMaskedIdFromCart();

                return this.isLoggedIn
                    ? baseUrl + 'carts/mine/' + uri
                    : baseUrl + 'guest-carts/' + maskedId + '/' + uri;
            },

            getMaskedIdFromCart()
            {
                return this.cart.guest_masked_id
                    ? this.cart.guest_masked_id
                    : null;
            },

            /**
             * Get the region ID given a country code and region name combination.
             *
             * @param {String} countryCode
             * @param {String} regionName
             * @return {String|Number}
             */
            getRegionId(countryCode, regionName)
            {
                if (typeof regionName !== 'string') {
                    return null;
                }

                regionName = regionName.toLowerCase().replace(/[^A-Z0-9]/ig, '');

                if (typeof this.countries[countryCode] !== 'undefined'
                    && typeof this.countries[countryCode][regionName] !== 'undefined'
                ) {
                    return this.countries[countryCode][regionName];
                }

                return 0;
            },

            isConfigSet(paymentMethod, configurations = []) {
                if (!paymentMethod || typeof paymentMethod.configuration === 'undefined') {
                    return false;
                }

                const configurationKeys = Object.keys(paymentMethod.configuration);

                return configurations.every(function (configuration) {
                    return configurationKeys.includes(configuration);
                });
            },

            getSupportedNetworks() {
                // Provide in helper so themes can override.
                return [
                    'visa',
                    'masterCard',
                    'amex',
                    'discover',
                    'maestro',
                    'vPay',
                    'jcb',
                    'elo'
                ];
            },

            getPdpForm(element) {
                return element.closest('#product_addtocart_form');
            },

            getPaymentMethod(paymentType) {
                function findPaymentMethod(paymentMethods, type) {
                    let found = paymentMethods.find(function (paymentMethod) {
                        return paymentMethod.type === type;
                    });

                    if (!found && 'googlepay' === type) {
                        found = paymentMethods.find(function (paymentMethod) {
                            return paymentMethod.type === 'paywithgoogle';
                        });
                    }

                    return found;
                }

                if (this.cart
                    && this.cart.adyen_payment_methods
                    && this.cart.adyen_payment_methods.paymentMethodsResponse?.paymentMethods) {
                    const paymentMethods = this.cart.adyen_payment_methods.paymentMethodsResponse.paymentMethods;

                        if (!paymentMethods) {
                            return null;
                        }

                        const foundMethods = findPaymentMethod(paymentMethods, paymentType);

                        if (!!foundMethods) {
                            foundMethods.configuration = this.convertKeysToCamelCase(foundMethods.configuration);
                            return foundMethods;
                        }
                }

                return null;
            },

            convertKeysToCamelCase (originalObject) {
                const convertedObject = {};
                const toCamel = (s) => {
                    return s.replace(/([-_][a-z])/ig, ($1) => {
                        return $1.toUpperCase()
                            .replace('-', '')
                            .replace('_', '');
                    });
                };

                Object.keys(originalObject).forEach((key) => {
                    convertedObject[toCamel(key)] = originalObject[key];
                });

                return convertedObject;
            },

            getCartSubtotal() {
                return parseFloat(this.cart.subtotalAmount);
            },

            getExtensionAttributes() {
                // Default empty attributes so that they can be overridden in themes.
                return {};
            },

            getApplePayStyles() {
                // Default styles that can be overridden by themes.
                return {
                    buttonType: 'plain',
                    buttonColor: 'black'
                };
            },

            formatAmount (amount) {
                return String(Number(amount).toFixed(this.config.format));
            },
        }
    }
</script>
<div x-data="dataAmMessage()"
        x-bind="eventListeners"
        x-spread="eventListeners"
        x-init="initAmMessage()"></div>
<script>
    function dataAmMessage() {
        return {
            initAmMessage(){},
            eventListeners: {
                ['@private-content-loaded.window'](event) {
                    const detail = event.detail.data,
                        body = document.getElementById('html-body');

                    const classList = body.classList.value;
                    if (classList.indexOf('checkout-') === -1
                        && detail.ammessages.messages?.notice) {
                        dispatchMessages([
                            {
                                type: detail.ammessages.messages?.notice.type,
                                text: detail.ammessages.messages?.notice.text
                            }
                        ]);
                    }
                }
            }
        }
    }
</script>
</div></body>
</html>