Outiref
<!doctype html>
<html lang="fr">
<head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# product: http://ogp.me/ns/product#">
    <meta charset="utf-8"/>
<meta name="title" content="Rideau Majorelle en velours : élégance florale chic"/>
<meta name="description" content=" Créez une ambiance très chic avec un rideau Majorelle en velours, pensé pour sublimer vos fenêtres grâce à un tombé élégant, floral et raffiné."/>
<meta name="keywords" content="RIDEAU MAJORELLE SUR VELOURS"/>
<meta name="robots" content="INDEX,FOLLOW"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<meta name="p:domain_verify" content="aa513b099452a422663e385ef0b121b1"/>
<title>Rideau Majorelle en velours : élégance florale chic</title>
        <link rel="stylesheet" type="text/css" media="all" href="https://cdn3.mesrideaux.fr/version1783511887/frontend/MesRideaux/hyva-child/fr_FR/css/styles.css" />
<link rel="stylesheet" type="text/css" media="all" href="https://cdn3.mesrideaux.fr/version1783511887/frontend/MesRideaux/hyva-child/fr_FR/css/product.css" />
<link rel="stylesheet" type="text/css" media="all" href="https://cdn3.mesrideaux.fr/version1783511887/frontend/MesRideaux/hyva-child/fr_FR/css/jquery.nice-number.css" />
<link rel="stylesheet" type="text/css">
<script type="text/javascript" async="async" src="https://cdn3.mesrideaux.fr/version1783511887/frontend/MesRideaux/hyva-child/fr_FR/Dbm_Axeptio/js/checkbox.min.js"></script>
<script type="text/javascript" src="https://cdn3.mesrideaux.fr/version1783511887/frontend/MesRideaux/hyva-child/fr_FR/Mesrideaux_Ga4Datalayer/js/ga4-datalayer.min.js"></script>
<script type="text/javascript" src="https://cdn3.mesrideaux.fr/version1783511887/frontend/MesRideaux/hyva-child/fr_FR/Mesrideaux_Ga4Datalayer/js/catalog-tracking.min.js"></script>
<script type="text/javascript" src="https://cdn3.mesrideaux.fr/version1783511887/frontend/MesRideaux/hyva-child/fr_FR/Mesrideaux_Ga4Datalayer/js/promotion-tracking.min.js"></script>
<script type="text/javascript" src="https://cdn3.mesrideaux.fr/version1783511887/frontend/MesRideaux/hyva-child/fr_FR/js/jquery.min.js"></script>
<script type="text/javascript" src="https://cdn3.mesrideaux.fr/version1783511887/frontend/MesRideaux/hyva-child/fr_FR/js/slick.min.js"></script>
<script type="text/javascript" src="https://cdn3.mesrideaux.fr/version1783511887/frontend/MesRideaux/hyva-child/fr_FR/Emipro_CosuiteID/js/customoption.min.js"></script>
<script type="text/javascript" src="https://cdn3.mesrideaux.fr/version1783511887/frontend/MesRideaux/hyva-child/fr_FR/Mesrideaux_Ga4Datalayer/js/wishlist-tracking.min.js"></script>
<script type="text/javascript" src="https://cdn3.mesrideaux.fr/version1783511887/frontend/MesRideaux/hyva-child/fr_FR/Mesrideaux_Ga4Datalayer/js/catalog-variant-item.min.js"></script>
<script type="text/javascript" src="https://cdn3.mesrideaux.fr/version1783511887/frontend/MesRideaux/hyva-child/fr_FR/Estarter_AjaxCart/js/jquery.magnific-popup.min.js"></script>
<script type="text/javascript" src="https://cdn3.mesrideaux.fr/version1783511887/frontend/MesRideaux/hyva-child/fr_FR/Estarter_AjaxCart/js/ajaxAddToCart.min.js"></script>
<script type="text/javascript" src="https://cdn3.mesrideaux.fr/version1783511887/frontend/MesRideaux/hyva-child/fr_FR/js/magento-ui-modal-shim.min.js"></script>
<script type="text/javascript" src="https://cdn3.mesrideaux.fr/version1783511887/frontend/MesRideaux/hyva-child/fr_FR/Magento_Catalog/js/catalog-add-to-cart.min.js"></script>
<script type="text/javascript" src="https://cdn3.mesrideaux.fr/version1783511887/frontend/MesRideaux/hyva-child/fr_FR/Magento_Catalog/js/validate-product.min.js"></script>
<script type="text/javascript" src="https://cdn3.mesrideaux.fr/version1783511887/frontend/MesRideaux/hyva-child/fr_FR/Magento_Catalog/js/price-options.min.js"></script>
<script type="text/javascript" src="https://cdn3.mesrideaux.fr/version1783511887/frontend/MesRideaux/hyva-child/fr_FR/Magento_Catalog/js/magento-init-bridge.min.js"></script>
<script type="text/javascript" src="https://cdn3.mesrideaux.fr/version1783511887/frontend/MesRideaux/hyva-child/fr_FR/js/product-view.min.js"></script>
<script type="text/javascript" src="https://cdn3.mesrideaux.fr/version1783511887/frontend/MesRideaux/hyva-child/fr_FR/js/jquery.nice-number.min.js"></script>
<script type="text/javascript" src="https://cdn3.mesrideaux.fr/version1783511887/frontend/MesRideaux/hyva-child/fr_FR/js/product.min.js"></script>
<script type="text/javascript" defer="defer" src="//t4.my-probance.one/webtrax/rsc/mesrideaux.js"></script>
<script type="text/javascript" defer="defer" src="https://cdn3.mesrideaux.fr/version1783511887/frontend/MesRideaux/hyva-child/fr_FR/Doofinder_Feed/js/df_add_to_cart_hyva.min.js"></script>
<link rel="canonical" href="https://www.mesrideaux.fr/rideau-majorelle-sur-velours.html" />
<link rel="icon" type="image/x-icon" href="https://cdn4.mesrideaux.fr/favicon/default/favicon.svg" />
<link rel="shortcut icon" type="image/x-icon" href="https://cdn4.mesrideaux.fr/favicon/default/favicon.svg" />
    <script>
    window.dataLayer = window.dataLayer || [];
</script>
<script>
sessionStorage.setItem('referrer', sessionStorage.getItem('referrer') || document.referrer);
    var referrer = sessionStorage.getItem('referrer');
    window.dataLayer = window.dataLayer || [];
    dataLayer.push({
        'Referrer': referrer,
    });
    window._axcb = window._axcb || [];
    window._axcb.push(function (sdk) {
        sdk.on('cookies:complete', function (choices) {
            sessionStorage.removeItem('referrer');
        });
    });
</script><!-- Google Tag Manager -->
<script>
    window.dataLayer = window.dataLayer || [];
    window.gtag = window.gtag || function () {
        window.dataLayer.push(arguments);
    };
</script>
<!-- GTM loader disabled: Cloudflare Google Tag Gateway serves /metrics/
<script>
    (function (w, d, s, l, i) {
        w[l] = w[l] || [];
        w[l].push({'gtm.start': new Date().getTime(), event: 'gtm.js'});
        var f = d.getElementsByTagName(s)[0],
            j = d.createElement(s),
            dl = l !== 'dataLayer' ? '&l=' + l : '';
        j.async = true;
        j.src = 'https://www.googletagmanager.com/gtm.js?id=' + i + dl;
        f.parentNode.insertBefore(j, f);
    })(window, document, 'script', 'dataLayer', '');
</script>
-->
<!-- End Google Tag Manager -->
<script>
    var BASE_URL = 'https://www.mesrideaux.fr/';
    var THEME_PATH = 'https://cdn3.mesrideaux.fr/version1783511887/frontend/MesRideaux/hyva-child/fr_FR';
    var COOKIE_CONFIG = {
        "expires": null,
        "path": "\u002F",
        "domain": ".mesrideaux.fr",
        "secure": true,
        "lifetime": "3600",
        "cookie_restriction_enabled": false    };
    var CURRENT_STORE_CODE = 'default';
    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'
        ]
    );
    //# sourceURL=hyva-variables.js
</script>
<script>
    (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 || {} ));
    //# sourceURL=hyva.js
</script>
<script type="speculationrules">
{
    "tag": "Hyva Theme",
    "prefetch": [{
        "source": "document",
        "where": {
            "and": [
                { "href_matches": "/*" },
                { "not": {
                    "href_matches": ["/customer/*","/search/*","/sales/*","/wishlist/*","/checkout/*","/paypal/*","/newsletter/*","/stores/store/redirect/*"]                }},
                { "not": {
                    "selector_matches": [".no-preload", ".do-not-prerender", "[download]", "[rel~=nofollow]", "[target]"]
                }}
            ]
        },
        "eagerness": "moderate"
    }]
}
</script>

<script>
    const viewTransitionToGalleryPageStorage = 'view-transition-to-gallery-page-type';
    const setTransitionNameBetweenGallery = async (url, promise) => {
        if (window.matchMedia('(prefers-reduced-motion)').matches) return;

        const productGallery = document.getElementById('gallery-main');
        const productListItem = document.querySelector(`.product-item-photo[href="${url}"]`);
        const targetElement = productListItem || productGallery;

        if (targetElement) {
            targetElement.style.viewTransitionName = 'view-transition-to-gallery';

            await promise;
            targetElement.style.viewTransitionName = '';
        }
    };

    const getViewTransitionToGalleryPageIsProduct = () => {
        return document.body.classList.contains('catalog-product-view') ? 'product-page' : 'other'
    }

    window.addEventListener('pageswap', async (e) => {
        if (!e.viewTransition) return;
        const pageType = getViewTransitionToGalleryPageIsProduct();
        const target = new URL(e.activation.entry.url);

        sessionStorage.setItem(viewTransitionToGalleryPageStorage, pageType);
        setTransitionNameBetweenGallery(target.href, e.viewTransition.finished);
    });

    window.addEventListener('pagereveal', async (e) => {
        if (!e.viewTransition || (window.navigation && !window.navigation.activation.from)) return;
        const previousPageType = sessionStorage.getItem(viewTransitionToGalleryPageStorage);
        const pageType = getViewTransitionToGalleryPageIsProduct();
        sessionStorage.removeItem(viewTransitionToGalleryPageStorage);

        if (previousPageType === pageType) return;
        const target = new URL(window.navigation.activation.from.url);
        setTransitionNameBetweenGallery(target.href, e.viewTransition.ready);
    });
</script>

<meta property="og:type" content="product" />
<meta property="og:title"
      content="RIDEAU&#x20;MAJORELLE&#x20;SUR&#x20;VELOURS" />
<meta property="og:image"
      content="https://cdn4.mesrideaux.fr/catalog/product/cache/6517c62f5899ad6aa0ba23ceb3eeff97/r/i/rideau-majorelle-rose-fond-creme-sur-velours-vue-large_2.webp" />
<meta property="og:description"
      content="Apportez&#x20;du&#x20;relief,&#x20;de&#x20;la&#x20;couleur&#x20;et&#x20;une&#x20;vraie&#x20;pr&#xE9;sence&#x20;d&#xE9;corative&#x20;&#xE0;&#x20;votre&#x20;int&#xE9;rieur&#x20;avec&#x20;le&#x20;rideau&#x20;Majorelle&#x20;en&#x20;velours.&#x20;Confectionn&#xE9;&#x20;sur&#x20;mesure,&#x20;ce&#x20;rideau&#x20;transforme&#x20;vos&#x20;fen&#xEA;tres&#x20;en&#x20;&#xE9;l&#xE9;ment&#x20;central&#x20;pour&#x20;votre&#x20;pi&#xE8;ce&#x20;tout&#x20;en&#x20;habillant&#x20;votre&#x20;espace&#x20;avec&#x20;&#xE9;l&#xE9;gance.&#x20;Son&#x20;motif&#x20;floral&#x20;g&#xE9;n&#xE9;reux,&#x20;inspir&#xE9;&#x20;d&#x2019;un&#x20;jardin&#x20;vibrant&#x20;et&#x20;lumineux,&#x20;cr&#xE9;e&#x20;une&#x20;atmosph&#xE8;re&#x20;raffin&#xE9;e,&#x20;chaleureuse&#x20;et&#x20;pleine&#x20;de&#x20;caract&#xE8;re.&#x20;Dans&#x20;votre&#x20;salon,&#x20;votre&#x20;chambre&#x20;ou&#x20;votre&#x20;espace&#x20;de&#x20;r&#xE9;ception,&#x20;il&#x20;attire&#x20;le&#x20;regard&#x20;sans&#x20;jamais&#x20;perdre&#x20;en&#x20;sophistication.&#x0D;&#x0A;&#xA0;" />
<meta property="og:url" content="https://www.mesrideaux.fr/rideau-majorelle-sur-velours.html" />
    <meta property="product:price:amount" content="374"/>
    <meta property="product:price:currency"
      content="EUR"/>
<meta property="product:availability" content="in&#x20;stock"/>

<link rel="preload" href="https://cdn4.mesrideaux.fr/catalog/product/cache/207e23213cf636ccdef205098cf3c8a3/r/i/rideau-majorelle-rose-fond-creme-sur-velours-vue-large_2.webp" as="image">
<script>
    (function () {
        let amSwiperProcessed = false;

        window.addEventListener('load-amswiper', () => {
            if (amSwiperProcessed) {
                window?.Swiper && window.dispatchEvent(new CustomEvent('amswiper-loaded', {}));
                return;
            }

            const script = document.createElement('script');
            script.src = 'https://cdn3.mesrideaux.fr/version1783511887/frontend/MesRideaux/hyva-child/fr_FR/Amasty_LibSwiperJs/js/vendor/swiper/swiper.min.js';
            script.async = true;
            document.body.appendChild(script);

            amSwiperProcessed = true;

            script.onload = () => {
                window.dispatchEvent(new CustomEvent('amswiper-loaded', {}));
            }

            const stylesHref = 'https://cdn3.mesrideaux.fr/version1783511887/frontend/MesRideaux/hyva-child/fr_FR/Amasty_LibSwiperJs/vendor/swiper/swiper.min.css';

            if (document.querySelector(`link[href="${stylesHref}"]`)) {
                return;
            }

            const styles = document.createElement('link');
            styles.rel = 'stylesheet';
            styles.type = 'text/css';
            styles.href = stylesHref;

            document.head.appendChild(styles);
        });
    }());
</script>
<script nonce="czN4Zjl2MDhuejNia2g4Y2xiMDU4Y2ttejRuams3eTM=">
    var dfPageType = "product";
    var dfProductId = "35439";
    var dfCategoryName = "Cr\u00e9ateurs > Thevenon";
</script>
    <script nonce="czN4Zjl2MDhuejNia2g4Y2xiMDU4Y2ttejRuams3eTM=">
        (function(w, k) {w[k] = window[k] ||
        function () { (window[k].q = window[k].q || []).push(arguments) }})(window, "doofinderApp")

        doofinderApp("config", "language", "fr")
        doofinderApp("config", "currency", "EUR")
        doofinderApp("config", "priceName", "EUR")
    </script>
<script src="https://eu1-config.doofinder.com/2.x/5d359ac0-164d-4242-a2c0-4393cf13f41a.js" async></script></head>
<body id="html-body" class="page-product-configurable catalog-product-view product-rideau-majorelle-sur-velours page-layout-1column page-layout-product-full-width">
<input name="form_key" type="hidden" value="fjQIJcI8gxUDUYBO" />
    <noscript>
        <section
            class="message global noscript border-b-2 border-blue-500 bg-blue-50 shadow-none m-0 px-0 rounded-none font-normal"
            aria-labelledby="messageGlobalNoScriptMessage"
        >
            <div class="container text-center">
                <p id="messageGlobalNoScriptMessage">
                    <strong>Javascript est désactivé dans votre navigateur.</strong>
                    <span>
                        Pour une expérience optimale sur notre site, veuillez autoriser Javascript sur votre navigateur.                    </span>
                </p>
            </div>
        </section>
    </noscript>


<script>
    document.body.addEventListener('touchstart', () => {}, {passive: true})
</script>
<div class="page-wrapper"><header class="page-header"><a class="action skip sr-only focus:not-sr-only focus:absolute focus:z-40 focus:bg-white   contentarea"
   href="#contentarea">
    <span>
        Aller au contenu    </span>
</a>
<script>
    function initHeader() {
        return {
            searchOpen: false,
            cart: {},
            isCartOpen: false,
            getData(data) {
                this.cart = data.cart ?? {};
            },
            summaryCount() {
                return this.cart.summary_count || 0;
            },
            cartAriaLabel() {
                return 'Toggle\u0020minicart, ' +
                    (this.isCartEmpty() ? 'Votre\u0020panier\u0020est\u0020vide' : (
                        Math.abs(this.summaryCount()) > 1 ?
                            hyva.str('\u00251\u0020articles', this.summaryCount()) :
                            hyva.str('\u00251\u0020item', this.summaryCount())
                    ))
            },
            isCartEmpty() {
                return !this.cart.summary_count;
            },
            toggleCart() {
                this.isCartOpen = this.$event.detail?.isOpen ?? true;
                this.$dispatch('toggle-cart', { isOpen: this.isCartOpen })
            },
            toggleSearch() {
                this.searchOpen = !this.searchOpen;
                this.$dispatch('search-open');
            },
            searchClose() {
                this.searchOpen = false;
                this.$refs.searchButton.focus();
            },
            searchEscape() {
                this.searchClose();
            },
            initBannerBelowHeader() {
                if (typeof jQuery === 'undefined' || typeof jQuery.fn.slick === 'undefined') {
                    return;
                }

                const el = this.$refs.bannerBelowHeaderItems;

                if (!el || jQuery(el).hasClass('slick-initialized')) {
                    return;
                }

                jQuery(el).slick({
                    slidesToShow: 1,
                    slidesToScroll: 1,
                    arrows: false,
                    dots: false,
                    autoplay: true,
                    autoplaySpeed: 2000,
                    infinite: true,
                    adaptiveHeight: true,
                    vertical: window.innerWidth >= 768,

                    // Handle window resizing to switch vertical/horizontal mode
                    responsive: [
                        {
                            breakpoint: 768,
                            settings: {
                                vertical: false,
                                verticalSwiping: false,
                                cssEase: 'linear',
                                speed: 11500,
                                autoplay: true,
                                autoplaySpeed: 0,
                                slidesToShow: 1,
                                slidesToScroll: 1,
                                arrows: false,
                                dots: false,
                                infinite: true,
                                // Make it act like a marquee (continuous scroll)
                                variableWidth: true,
                                centerMode: false,
                                swipe: false,
                                touchMove: false,
                            }
                        },
                        {
                            breakpoint: 9999, // essentially for all above
                            settings: {
                                vertical: true,
                                verticalSwiping: true,
                            }
                        }
                    ]
                });
            }
        }
    }
    // Ajoute la classe 'fixe-header' au scroll selon la version (desktop/mobile)
    function handleHeaderFixedOnScroll() {
        const header = document.getElementById('header');
        if (!header) return;

        const container = header.querySelector(':scope > .container');
        const DESKTOP_BREAKPOINT = 1024;
        // Marge anti-rebond iOS Safari : évite le basculement rapide fixe/non-fixe
        const SCROLL_HYSTERESIS = 10;
        const MOBILE_MIN_SCROLL = 10;

        let isFixed = false;
        let rafId = null;
        let scrollThreshold = 0;
        let headerBottomThreshold = 0;

        function cacheScrollThresholds() {
            const rect = header.getBoundingClientRect();
            headerBottomThreshold = rect.bottom + window.scrollY;

            if (container) {
                const containerRect = container.getBoundingClientRect();
                scrollThreshold = containerRect.top + window.scrollY;
            }
        }

        function setFixedHeader(fixed) {
            if (fixed === isFixed) return;

            isFixed = fixed;
            header.classList.toggle('fixe-header', fixed);

            if (container) {
                header.style.setProperty(
                    '--header-fixed-spacer',
                    fixed ? container.offsetHeight + 'px' : '0px'
                );
            }
        }

        function updateFixedHeader() {
            const isDesktop = window.innerWidth >= DESKTOP_BREAKPOINT;
            const scrollY = Math.max(0, window.scrollY);

            if (isDesktop) {
                const shouldFix = scrollY >= headerBottomThreshold;
                const shouldUnfix = scrollY < headerBottomThreshold - SCROLL_HYSTERESIS;
                setFixedHeader(isFixed ? !shouldUnfix : shouldFix);
                return;
            }

            if (!container) return;

            if (!isFixed) {
                setFixedHeader(scrollY > MOBILE_MIN_SCROLL && scrollY >= scrollThreshold);
            } else {
                setFixedHeader(scrollY > MOBILE_MIN_SCROLL && scrollY >= scrollThreshold - SCROLL_HYSTERESIS);
            }
        }

        function scheduleUpdate() {
            if (rafId !== null) return;
            rafId = requestAnimationFrame(() => {
                rafId = null;
                updateFixedHeader();
            });
        }

        function handleResize() {
            const wasFixed = isFixed;
            if (wasFixed) {
                setFixedHeader(false);
            }
            cacheScrollThresholds();
            if (wasFixed) {
                updateFixedHeader();
            }
        }

        cacheScrollThresholds();
        updateFixedHeader();

        window.addEventListener('scroll', scheduleUpdate, { passive: true });
        window.addEventListener('resize', handleResize, { passive: true });
    }

    if (typeof window !== "undefined") {
        window.addEventListener('DOMContentLoaded', handleHeaderFixedOnScroll, { once: true });
    }

    window.addEventListener('alpine:init', () => {
        Alpine.data('initHeader', initHeader);
    }, { once: true })
</script>

<div id="header"
     class="header-2 relative z-30 w-full border-b shadow bg-white border-gray-100"
     x-data="initHeader()"
     @private-content-loaded.window="getData(event.detail.data)"
>

    
        <div class="bannerBelowHeader" x-init="initBannerBelowHeader()">
            <div class="bannerBelowHeader__items overflow-hidden" x-ref="bannerBelowHeaderItems">
                                    <div class="bannerBelowHeader__item">
                        Chaque création est fabriquée sur commande.                    </div>
                                                    <div class="bannerBelowHeader__item">
                        En raison des fermetures estivales de nos ateliers, les délais de confection seront allongés pour les commandes passées en juillet et en août.
Merci pour votre compréhension.                    </div>
                            </div>
        </div>
    
    <div class="container flex flex-wrap lg:flex-nowrap items-center justify-between w-full px-6 py-0 mx-auto mt-0">
        <!--Logo-->
        <div class="sm:order-1 lg:order-0 w-full pb-2 sm:w-auto sm:pb-0 logo-container">
            <a
    class="flex items-center justify-center text-xl font-medium"
    href="https://www.mesrideaux.fr/"
    aria-label="Go&#x20;to&#x20;Home&#x20;page"
>
    <img
        src="https://cdn4.mesrideaux.fr/logo/default/mesrideaux_logo_1.svg"
        alt="Logo&#x20;MesRideaux"
        width="189"        height="64"        loading="eager"
    >
    </a>

        </div>

        <!--Main Navigation-->
        <script>
        // Procédure JS simple
        function initMobileMenu() {
            const closeMenuButton = document.querySelector(".close-menu-mobile");
            const toggleMenuButton = document.querySelector('#header .container  .menu-mobile >  [type="button"]');
            const mobileMenu = document.querySelector('#header .container  .menu-mobile >  #mobile-snowdog-menu');

            toggleMenuButton.addEventListener("click", function() {
                if (mobileMenu.classList.contains("active")) {
                    // toggleMenuButton.setAttribute("aria-expanded", "false");
                    mobileMenu.classList.remove("active");
                    document.body.classList.remove("fixed-to-scroll");
                } else {
                    // toggleMenuButton.setAttribute("aria-expanded", "true");
                    mobileMenu.classList.add("active");
                    document.body.classList.add("fixed-to-scroll");
                }
            });

            closeMenuButton.addEventListener("click", function() {
                mobileMenu.classList.remove("active");
                document.body.classList.remove("fixed-to-scroll");
                mobileMenu.querySelectorAll('.submenu.active').forEach(sub => {
                    sub.classList.remove('active');
                });
            });

            // Ajoute un événement pour ouvrir les sous-menus quand on clique sur .menu-arrow dans le menu mobile
            mobileMenu.querySelectorAll('.menu-arrow').forEach(arrow => {
                arrow.addEventListener('click', function(e) {
                    e.preventDefault();
                    
                    const submenu = this.parentElement.querySelector(':scope > .submenu');
                    if (submenu) {
                        // Remove 'active' class from all submenu elements that currently have it
                        mobileMenu.querySelectorAll('.submenu.active').forEach(sub => {
                            // sub.classList.remove('active');
                        });
                        
                        submenu.classList.add('active');
                    }
                });
            });

        // Ajoute un événement pour fermer les sous-menus quand on clique sur "retour" (menu-back-button)
        mobileMenu.querySelectorAll('.menu-back-button').forEach(backButton => {
            backButton.addEventListener('click', function(e) {
            
                e.preventDefault();
                // Le bouton retour est dans le li.menu-back-item juste avant le ul.submenu
                // On vise le parent du bouton (li), puis l'ul.submenu qui suit
                const submenu = this.closest('.submenu');
             
                if (submenu && submenu.classList.contains('active')) {
                    submenu.classList.remove('active');
                }
            });
        });

       


        }

        // Appelée une seule fois quand Alpine est initialisé
        window.addEventListener('alpine:init', () => {
            initMobileMenu();
        }, { once: true });
    </script>

<div x-data="{ open: false }" class="lg:hidden menu-mobile">
    <button
        type="button"
        class="btn bg-transparent border-transparent p-2"
        @click="open = !open"
        :aria-expanded="open"
        aria-controls="mobile-snowdog-menu"
        aria-label="Toggle&#x20;menu"
    >
        <span class="sr-only">Toggle menu</span>
        <span class="block w-6 h-0.5 bg-current mb-1"></span>
        <span class="block w-6 h-0.5 bg-current mb-1"></span>
        <span class="block w-6 h-0.5 bg-current"></span>
    </button>

    <div
        id="mobile-snowdog-menu"
        x-show="open"
        
        x-cloak
 class="absolute inset-x-0 top-full z-20 bg-white border-t border-slate-200 shadow-md"
    >
        <nav aria-label="Mobile&#x20;Main&#x20;Menu">
            <ul class="py-2">
            <ul class="py-2"><li class="level0 parent first level-top">

<a
    href="https://www.mesrideaux.fr/rideaux.html"
    class="main-menu__link"
     data-menu="menu-1">
    Rideaux</a>
<span class="menu-arrow">

                            
                                
                            
                            
                            
                            </span><ul class="level1 submenu"><li class="menu-back-item"><button type="button" class="menu-back-button">
                        
                        Retour
                        
                        </button></li><li class="level1 column-simple&#x20;w-25 first"><a
    href="https://www.mesrideaux.fr/rideau-taffetas-moire.html"
    class="snowdog-menu-link column-simple&#x20;w-25 product-menu submenu-with-image w-full text-center"
            data-menu="menu-84"
    >

  
        <img src="https://cdn4.mesrideaux.fr/snowdog_menu/images/300x300/r/i/rideau-thevenon-taffetas-moire-beige-gros-plan_2.webp"
            alt="Rideau&#x20;Taffetas&#x20;Moir&#xE9; alt1"
            loading="lazy"
            width="300"
            height="300"
            class="mx-auto"
        />
  

    <span class="product-menu-title">Rideau Taffetas Moiré</span>
</a>
</li><li class="level1 column-simple&#x20;w-25"><a
    href="https://www.mesrideaux.fr/rideau-kimono-flowers.html"
    class="snowdog-menu-link column-simple&#x20;w-25 product-menu submenu-with-image w-full text-center"
            data-menu="menu-339"
    >

  
        <img src="https://cdn4.mesrideaux.fr/snowdog_menu/images/300x300/r/i/rideau-kimono-flowers-fond-rouge-gros-plan_1.webp"
            alt="Rideau&#x20;Kimono&#x20;Flowers alt1"
            loading="lazy"
            width="300"
            height="300"
            class="mx-auto"
        />
  

    <span class="product-menu-title">Rideau Kimono Flowers</span>
</a>
</li><li class="level1 column-simple&#x20;w-25"><a
    href="https://www.mesrideaux.fr/rideau-velours-texture-studio.html"
    class="snowdog-menu-link column-simple&#x20;w-25 product-menu submenu-with-image w-full text-center"
            data-menu="menu-350"
    >

  
        <img src="https://cdn4.mesrideaux.fr/snowdog_menu/images/300x300/r/i/rideau-velours-texture-studio-blanc-casse-gros-plan_2.webp"
            alt="Rideau&#x20;Velours&#x20;Texture&#x20;Studio alt1"
            loading="lazy"
            width="300"
            height="300"
            class="mx-auto"
        />
  

    <span class="product-menu-title">Rideau Velours Texture Studio</span>
</a>
</li><li class="level1 column-simple&#x20;w-25 last"><a
    href="https://www.mesrideaux.fr/tissu-scopello.html"
    class="snowdog-menu-link column-simple&#x20;w-25 product-menu submenu-with-image w-full text-center"
            data-menu="menu-351"
    >

  
        <img src="https://cdn4.mesrideaux.fr/snowdog_menu/images/300x300/r/i/rideau-scopello-granito-photo-tissu_4.webp"
            alt="Rideau&#x20;Scopello alt1"
            loading="lazy"
            width="300"
            height="300"
            class="mx-auto"
        />
  

    <span class="product-menu-title">Rideau Scopello</span>
</a>
</li></ul></li><li class="level0 parent level-top">
    <a
        href="/stores-bateaux.html"
        data-menu="menu-2" class="main-menu__link"    >
        Stores    </a>
<span class="menu-arrow">

                            
                                
                            
                            
                            
                            </span><ul class="level1 submenu"><li class="menu-back-item"><button type="button" class="menu-back-button">
                        
                        Retour
                        
                        </button></li><li class="level1 column-simple&#x20;w-25&#x20; first"><a
    href="https://www.mesrideaux.fr/store-bateau-amara-aquaclean-32637.html"
    class="snowdog-menu-link column-simple&#x20;w-25&#x20; product-menu submenu-with-image w-full text-center"
            data-menu="menu-342"
    >

  
        <img src="https://cdn4.mesrideaux.fr/snowdog_menu/images/300x300/s/t/store-bateau-casal-amara-aquaclean-argent-gros-plan_3.webp"
            alt="STORE&#x20;BATEAU&#x20;AMARA&#x20;AQUACLEAN alt1"
            loading="lazy"
            width="300"
            height="300"
            class="mx-auto"
        />
  

    <span class="product-menu-title">STORE BATEAU AMARA AQUACLEAN</span>
</a>
</li><li class="level1 column-simple&#x20;w-25"><a
    href="https://www.mesrideaux.fr/store-bateau-suzie.html"
    class="snowdog-menu-link column-simple&#x20;w-25 product-menu submenu-with-image w-full text-center"
            data-menu="menu-343"
    >

  
        <img src="https://cdn4.mesrideaux.fr/snowdog_menu/images/300x300/s/t/store-bateau-thevenon-suzie-vert-fond-vanille-gros-plan_1.webp"
            alt="Store&#x20;bateau&#x20;Suzie alt1"
            loading="lazy"
            width="300"
            height="300"
            class="mx-auto"
        />
  

    <span class="product-menu-title">Store bateau Suzie</span>
</a>
</li><li class="level1 column-simple&#x20;w-25"><a
    href="https://www.mesrideaux.fr/store-bateau-samani.html"
    class="snowdog-menu-link column-simple&#x20;w-25 product-menu submenu-with-image w-full text-center"
            data-menu="menu-352"
    >

  
        <img src="https://cdn4.mesrideaux.fr/snowdog_menu/images/300x300/s/t/store-bateau-gaston-y-daniela-samani-beige-et-bleu-gros-plan_1.webp"
            alt=" alt1"
            loading="lazy"
            width="300"
            height="300"
            class="mx-auto"
        />
  

    <span class="product-menu-title">Store bateau Samani</span>
</a>
</li><li class="level1 column-simple&#x20;w-25 last"><a
    href="https://www.mesrideaux.fr/store-bateau-scopello.html"
    class="snowdog-menu-link column-simple&#x20;w-25 product-menu submenu-with-image w-full text-center"
            data-menu="menu-353"
    >

  
        <img src="https://cdn4.mesrideaux.fr/snowdog_menu/images/300x300/s/t/store-bateau-luciano-marcato-scopello-navy-gros-plan_1.webp"
            alt="Store&#x20;bateau&#x20;Scopello alt1"
            loading="lazy"
            width="300"
            height="300"
            class="mx-auto"
        />
  

    <span class="product-menu-title">Store bateau Scopello</span>
</a>
</li></ul></li><li class="level0 parent level-top">
    <a
        href="/coussins.html"
        data-menu="menu-234" class="main-menu__link"    >
        Coussins    </a>
<span class="menu-arrow">

                            
                                
                            
                            
                            
                            </span><ul class="level1 submenu"><li class="menu-back-item"><button type="button" class="menu-back-button">
                        
                        Retour
                        
                        </button></li><li class="level1 column-simple&#x20;w-25 first"><a
    href="https://www.mesrideaux.fr/coussin-osier.html"
    class="snowdog-menu-link column-simple&#x20;w-25 product-menu submenu-with-image w-full text-center"
            data-menu="menu-344"
    >

  
        <img src="https://cdn4.mesrideaux.fr/snowdog_menu/images/300x300/c/o/coussin-lelievre-osier-pavot-gros-plan_1.webp"
            alt="Coussin&#x20;Osier alt1"
            loading="lazy"
            width="300"
            height="300"
            class="mx-auto"
        />
  

    <span class="product-menu-title">Coussin Osier</span>
</a>
</li><li class="level1 column-simple&#x20;w-25"><a
    href="https://www.mesrideaux.fr/coussin-sake.html"
    class="snowdog-menu-link column-simple&#x20;w-25 product-menu submenu-with-image w-full text-center"
            data-menu="menu-345"
    >

  
        <img src="https://cdn4.mesrideaux.fr/snowdog_menu/images/300x300/c/o/coussin-sake-taupe-gros-plan_1.webp"
            alt="Coussin&#x20;Sake alt1"
            loading="lazy"
            width="300"
            height="300"
            class="mx-auto"
        />
  

    <span class="product-menu-title">Coussin Sake</span>
</a>
</li><li class="level1 column-simple&#x20;w-25"><a
    href="https://www.mesrideaux.fr/coussin-poissons-coffre.html"
    class="snowdog-menu-link column-simple&#x20;w-25 product-menu submenu-with-image w-full text-center"
            data-menu="menu-354"
    >

  
        <img src="https://cdn4.mesrideaux.fr/snowdog_menu/images/300x300/c/o/coussin-thevenon-poissons-coffre-fond-marine-sur-lin-gros-plan_1.webp"
            alt="COUSSIN&#x20;POISSONS&#x20;COFFRE alt1"
            loading="lazy"
            width="300"
            height="300"
            class="mx-auto"
        />
  

    <span class="product-menu-title">COUSSIN POISSONS COFFRE</span>
</a>
</li><li class="level1 column-simple&#x20;w-25 last"><a
    href="https://www.mesrideaux.fr/coussin-french-ikat.html"
    class="snowdog-menu-link column-simple&#x20;w-25 product-menu submenu-with-image w-full text-center"
            data-menu="menu-355"
    >

  
        <img src="https://cdn4.mesrideaux.fr/snowdog_menu/images/300x300/c/o/coussin-thevenon-french-ikat-indigo-outdoor-gros-plan_1.webp"
            alt="COUSSIN&#x20;FRENCH&#x20;IKAT alt1"
            loading="lazy"
            width="300"
            height="300"
            class="mx-auto"
        />
  

    <span class="product-menu-title">COUSSIN FRENCH IKAT</span>
</a>
</li></ul></li><li class="level0 parent level-top">
    <a
        href="/coussins-banquette.html"
        data-menu="menu-233" class="main-menu__link"    >
        Banquettes    </a>
<span class="menu-arrow">

                            
                                
                            
                            
                            
                            </span><ul class="level1 submenu"><li class="menu-back-item"><button type="button" class="menu-back-button">
                        
                        Retour
                        
                        </button></li><li class="level1 column-simple&#x20;submenu-with-image&#x20;w-25&#x20;&#x20;product-menu first"><a
    href="https://www.mesrideaux.fr/banquette-together-cool-clean.html"
    class="snowdog-menu-link column-simple&#x20;submenu-with-image&#x20;w-25&#x20;&#x20;product-menu product-menu submenu-with-image w-full text-center"
            data-menu="menu-346"
    >

  
        <img src="https://cdn4.mesrideaux.fr/snowdog_menu/images/300x300/b/a/banquette-thevenon-together-cool-clean-biscuit-gros-plan_1.webp"
            alt="BANQUETTE&#x20;TOGETHER&#x20;COOL&#x20;CLEAN alt1"
            loading="lazy"
            width="300"
            height="300"
            class="mx-auto"
        />
  

    <span class="product-menu-title">BANQUETTE TOGETHER COOL CLEAN</span>
</a>
</li><li class="level1 column-simple&#x20;submenu-with-image&#x20;w-25&#x20;&#x20;product-menu"><a
    href="https://www.mesrideaux.fr/banquette-lempicka.html"
    class="snowdog-menu-link column-simple&#x20;submenu-with-image&#x20;w-25&#x20;&#x20;product-menu product-menu submenu-with-image w-full text-center"
            data-menu="menu-347"
    >

  
        <img src="https://cdn4.mesrideaux.fr/snowdog_menu/images/300x300/b/a/banquette-casal-lempicka-jour-imperial-gros-plan.webp"
            alt="Coussin&#x20;Sake alt1"
            loading="lazy"
            width="300"
            height="300"
            class="mx-auto"
        />
  

    <span class="product-menu-title">Banquette Lempicka</span>
</a>
</li><li class="level1 column-simple&#x20;w-25"><a
    href="https://www.mesrideaux.fr/banquette-amara-aquaclean.html"
    class="snowdog-menu-link column-simple&#x20;w-25 product-menu submenu-with-image w-full text-center"
            data-menu="menu-356"
    >

  
        <img src="https://cdn4.mesrideaux.fr/snowdog_menu/images/300x300/b/a/banquette-casal-amara-aquaclean-canard-gros-plan_1.webp"
            alt="BANQUETTE&#x20;AMARA&#x20;AQUACLEAN alt1"
            loading="lazy"
            width="300"
            height="300"
            class="mx-auto"
        />
  

    <span class="product-menu-title">BANQUETTE AMARA AQUACLEAN</span>
</a>
</li><li class="level1 column-simple&#x20;w-25 last"><a
    href="https://www.mesrideaux.fr/banquette-blues-jacquard-bronze"
    class="snowdog-menu-link column-simple&#x20;w-25 product-menu submenu-with-image w-full text-center"
            data-menu="menu-357"
    >

  
        <img src="https://cdn4.mesrideaux.fr/snowdog_menu/images/300x300/b/a/banquette-thevenon-blues-jacquard-bronze-gros-plan.webp"
            alt="BANQUETTE&#x20;BLUES&#x20;JACQUARD&#x20;BRONZE alt1"
            loading="lazy"
            width="300"
            height="300"
            class="mx-auto"
        />
  

    <span class="product-menu-title">BANQUETTE BLUES JACQUARD BRONZE</span>
</a>
</li></ul></li><li class="level0 parent level-top">

<a
    href="https://www.mesrideaux.fr/tissus.html"
    class="main-menu__link"
     data-menu="menu-8">
    Tissus</a>
<span class="menu-arrow">

                            
                                
                            
                            
                            
                            </span><ul class="level1 submenu"><li class="menu-back-item"><button type="button" class="menu-back-button">
                        
                        Retour
                        
                        </button></li><li class="level1 column-simple&#x20;submenu-with-image&#x20;w-25&#x20;&#x20;product-menu first"><a
    href="https://www.mesrideaux.fr/tissu-muse.html"
    class="snowdog-menu-link column-simple&#x20;submenu-with-image&#x20;w-25&#x20;&#x20;product-menu product-menu submenu-with-image w-full text-center"
            data-menu="menu-348"
    >

  
        <img src="https://cdn4.mesrideaux.fr/snowdog_menu/images/300x300/s/t/store-bateau-thevenon-muse-fond-bleu-jean-photo-tissu_1.webp"
            alt="Tissu&#x20;Muse alt1"
            loading="lazy"
            width="300"
            height="300"
            class="mx-auto"
        />
  

    <span class="product-menu-title">Tissu Muse</span>
</a>
</li><li class="level1 column-simple&#x20;submenu-with-image&#x20;w-25&#x20;&#x20;product-menu"><a
    href="https://www.mesrideaux.fr/tissu-timeline.html"
    class="snowdog-menu-link column-simple&#x20;submenu-with-image&#x20;w-25&#x20;&#x20;product-menu product-menu submenu-with-image w-full text-center"
            data-menu="menu-349"
    >

  
        <img src="https://cdn4.mesrideaux.fr/snowdog_menu/images/300x300/s/t/store-bateau-thevenon-timeline-fond-abricot-photo-tissu.webp"
            alt="TISSU&#x20;AU&#x20;METRE&#x20;HANA&#x20;BOIS&#x20;DE&#x20;ROSE alt1"
            loading="lazy"
            width="300"
            height="300"
            class="mx-auto"
        />
  

    <span class="product-menu-title">TISSU TIMELINE</span>
</a>
</li><li class="level1 column-simple&#x20;w-25"><a
    href="https://www.mesrideaux.fr/tissu-sake.html"
    class="snowdog-menu-link column-simple&#x20;w-25 product-menu submenu-with-image w-full text-center"
            data-menu="menu-358"
    >

  
        <img src="https://cdn4.mesrideaux.fr/snowdog_menu/images/300x300/b/a/banquette-casal-sake-ambre-photo-tissu_2.webp"
            alt="Tissu&#x20;Sake alt1"
            loading="lazy"
            width="300"
            height="300"
            class="mx-auto"
        />
  

    <span class="product-menu-title">Tissu Sake</span>
</a>
</li><li class="level1 column-simple&#x20;w-25 last"><a
    href="https://www.mesrideaux.fr/tissu-sillage.html"
    class="snowdog-menu-link column-simple&#x20;w-25 product-menu submenu-with-image w-full text-center"
            data-menu="menu-359"
    >

  
        <img src="https://cdn4.mesrideaux.fr/snowdog_menu/images/300x300/c/o/coussin-casal-sillage-eau-claire-photo-tissu_3.webp"
            alt="Tissu&#x20;Sillage alt1"
            loading="lazy"
            width="300"
            height="300"
            class="mx-auto"
        />
  

    <span class="product-menu-title">Tissu Sillage</span>
</a>
</li></ul></li><li class="level0 parent last level-top">
    <a
        href="/blog/"
        data-menu="menu-10" class="main-menu__link" target="_blank" rel="noopener"    >
        Blog    </a>
<span class="menu-arrow">

                            
                                
                            
                            
                            
                            </span><ul class="level1 submenu"><li class="menu-back-item"><button type="button" class="menu-back-button">
                        
                        Retour
                        
                        </button></li><li class="level1 blog-menu first last"><style>#html-body [data-pb-style=W2L5VRG]{background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;align-self:stretch}#html-body [data-pb-style=JI2ELJW]{display:flex;width:100%}#html-body [data-pb-style=JSPTWRL]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:75%;align-self:stretch}#html-body [data-pb-style=XMNY19H]{display:inline-block}#html-body [data-pb-style=REMAYEC]{text-align:center}#html-body [data-pb-style=C6GHF61]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:25%;align-self:stretch}#html-body [data-pb-style=DFUABM1]{border-style:none}#html-body [data-pb-style=KIQKOH9],#html-body [data-pb-style=XD2AIPT]{max-width:100%;height:auto}@media only screen and (max-width: 767px) { #html-body [data-pb-style=DFUABM1]{border-style:none} }</style><div class="pagebuilder-column-group container" 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="W2L5VRG"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="JI2ELJW"><div class="pagebuilder-column menu-blog-left" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-background-lazy-load="false" data-element="main" data-pb-style="JSPTWRL"><div data-content-type="text" data-appearance="default" data-element="main"><p>D&eacute;couvrez les derni&egrave;res tendances et les meilleures astuces d&eacute;co ! Pour en savoir plus, rendez-vous sur notre blog <strong data-start="115" data-end="132">MesRideaux.fr</strong>.<br data-start="133" data-end="136"></p></div><div data-content-type="buttons" data-appearance="inline" data-same-width="false" data-element="main"><div data-content-type="button-item" data-appearance="default" data-element="main" data-pb-style="XMNY19H"><a class="pagebuilder-button-primary" href="/blog/" target="_blank" data-link-type="default" data-element="link" data-pb-style="REMAYEC"><span data-element="link_text">Explorez d&egrave;s maintenant !</span></a></div></div><div data-content-type="text" data-appearance="default" data-element="main"><p>&nbsp;</p>
<p>Vous avez des questions ou souhaitez &eacute;changer des id&eacute;es d&eacute;co ? Retrouvez-nous sur <a title="trouvez-nous sur instagram" href="https://www.instagram.com/mesrideaux/" target="_blank" rel="noopener">Instagram</a> pour des inspirations quotidiennes et des conseils personnalis&eacute;s !</p>
<p>Contactez-nous directement sur <a href="/cdn-cgi/l/email-protection#0b6864657f6a687f4b666e7879626f6e6a7e73256d79" target="_blank" rel="noopener"><span class="__cf_email__" data-cfemail="4b2824253f2a283f0b262e3839222f2e2a3e33652d39">[email&#160;protected]</span></a>&nbsp;et laissez-vous inspirer.</p></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="C6GHF61"><figure data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="DFUABM1"><img width="1536" height="1024" class="pagebuilder-mobile-hidden" src="https://cdn4.mesrideaux.fr/wysiwyg/blog.png" alt="Blog mesrideaux" title="" loading="lazy" data-element="desktop_image" data-pb-style="XD2AIPT"><img width="1536" height="1024" class="pagebuilder-mobile-only" src="https://cdn4.mesrideaux.fr/wysiwyg/blog.png" alt="Blog mesrideaux" title="" loading="lazy" data-element="mobile_image" data-pb-style="KIQKOH9"></figure></div></div></div></li></ul></li></ul>            </ul>
            <button
            type="button"
            class="absolute close-menu-mobile"
            
            
            >
                <span class="sr-only">Close menu</span>
                <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" stroke="currentColor" stroke-width="2"
                    stroke-linecap="round" stroke-linejoin="round" class="feather feather-x">
                    <line x1="18" y1="6" x2="6" y2="18"/>
                    <line x1="6" y1="6" x2="18" y2="18"/>
                </svg>
            </button>
        </nav>

        
    </div>
        
    
   
</div>

        <div class="hidden lg:flex items-center gap-2 md:gap-1 order-1 lg:order-0 md:-mr-1 search-header-container justify-center">
            <button
                        id="menu-search-icon"
                        class="btn bg-transparent border-transparent p-1 justify-between"
                        
                        @click.prevent="toggleSearch"
                        aria-label="Toggle&#x20;search&#x20;form"
                        aria-haspopup="true"
                        :aria-expanded="searchOpen"
                        x-ref="searchButton"
                        
                    >
                        <span class="menu-search-text">RECHERCHER ...</span>
                        <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" viewbox="0 0 24 24" aria-hidden="true"><path d="m21 21-4.34-4.34"/><circle cx="11" cy="11" r="8"/></svg>
                    </button>
        </div>

        <div class="flex items-center gap-2 md:gap-1 order-1 lg:order-0 md:-mr-1 right-header-container justify-end">
                                                    <div class="avis-verif-header">
                <a href="https://www.avis-verifies.com/avis-clients/mesrideaux.fr" target="_blank">

                    <img src="https://cdn3.mesrideaux.fr/version1783511887/frontend/MesRideaux/hyva-child/fr_FR/icons/avis-verifies.png" alt="Avis Verifies" >
                
                
                    <div class="avis-verif-header__content flex items-start justify-center">
                        <div class="o-stars">
                            <!-- Utiliser la largeur de .c-content pour le rendu de la note (ratio / 5 à exprimer en %)-->
                            <div class="c-content lazyload" data-loaded="true"></div>
                            <div class="c-bkg lazyload" data-loaded="true"></div>
                        </div>
                        <strong>4.8/5</strong>
                    </div>
                </a>
            </div>

            <button
                id="menu-search-icon-mobile"
                class="btn bg-transparent border-transparent p-1 lg:hidden"
                @click.prevent="toggleSearch"
                aria-label="Toggle&#x20;search&#x20;form"
                aria-haspopup="true"
                :aria-expanded="searchOpen"
                x-ref="searchButton"
            >
                <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" viewbox="0 0 24 24" aria-hidden="true"><path d="m21 21-4.34-4.34"/><circle cx="11" cy="11" r="8"/></svg>
            </button>

            

            
            <!-- BLOCK header.customer -->
<div
    class="relative inline-block customer-menu-icon customer-menu-icon"
    x-data="initCustomerMenu"
    x-bind="eventListeners"
>
    <button
        type="button"
        id="customer-menu"
        class="btn bg-transparent border-transparent p-1"
        @click="toggleOpen"
        :aria-expanded="open"
        aria-label="Mon&#x20;compte"
        aria-haspopup="true"
    >
        <img
            src="https://cdn3.mesrideaux.fr/version1783511887/frontend/MesRideaux/hyva-child/fr_FR/icons/user.svg"
            alt=""
            aria-hidden="true"
            width="16"
            height="16"
        />
    </button>
    <nav
        class="z-10 absolute right-0 w-40 sm:w-48 mt-2 lg:mt-3 -me-4 py-2 px-1 rounded-md shadow-lg bg-white overflow-auto"
        aria-labelledby="customer-menu"
        x-show="open"
        x-transition
 x-cloak
>
        <div x-show="!isLoggedIn" x-cloak>
            
<a id="customer.header.sign.in.link"
   class="block px-4 py-2 lg:px-5 lg:py-2 hover:bg-gray-100"
   onclick="hyva.setCookie && hyva.setCookie(       'login_redirect',       window.location.href,       1   )"
   href="/connexion"
   title="Se&#x20;connecter"
>
    Se connecter</a>


    <a id="customer.header.register.link"
       class="block px-4 py-2 lg:px-5 lg:py-2 hover:bg-gray-100"
       href="/creer-un-compte"
       title="Cr&#xE9;er&#x20;un&#x20;compte"
    >
        Créer un compte    </a>

        </div>
        <div x-show="isLoggedIn" x-cloak>
            
    <a id="customer.header.dashboard.link"
       class="block px-4 py-2 lg:px-5 lg:py-2 hover:bg-gray-100"
       href="https://www.mesrideaux.fr/customer/account/"
       title="Mon&#x20;compte"
    >
        Mon compte    </a>

<span id="customer.header.sign.out.delimiter"
      class="delimiter block border-b border-container w-full my-2"
></span>

    <a id="customer.header.sign.out.link"
       class="block px-4 py-2 lg:px-5 lg:py-2 hover:bg-gray-100"
       href="https://www.mesrideaux.fr/customer/account/logout/"
       title="D&#xE9;connexion"
    >
        Déconnexion    </a>
        </div>
    </nav>
</div>
<script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script><script>
    function initCustomerMenu() {
        return {
            isLoggedIn: false,
            ...hyva.createBooleanObject('open', false, {
                eventListeners: {
                    ['@pageshow.window'](event) {
                        if (event.persisted) {
                            this.setOpenFalse()
                        }
                    },
                    ['@keyup.escape']() {
                        this.setOpenFalse()
                    },
                    ['@click.outside']() {
                        this.setOpenFalse()
                    },
                    ['@private-content-loaded.window'](event) {
                        const data = event.detail.data;
                        this.isLoggedIn = !!(data.customer && data.customer.firstname);
                    }
                }
            })
        }
    }
    window.addEventListener('alpine:init', () => Alpine.data('initCustomerMenu', initCustomerMenu), {once: true})
</script>
<!-- /BLOCK header.customer -->
            
                            <div class="customer-menu-icon">
                <button
                            id="menu-cart-icon"
                type="button"
                class="relative btn bg-transparent border-transparent p-1"
                x-ref="cartButton"
                :aria-label="cartAriaLabel"
                                    @click="toggleCart"
                    :aria-expanded="isCartOpen"
                    aria-haspopup="dialog"
                            >
                <img
                    src="https://cdn3.mesrideaux.fr/version1783511887/frontend/MesRideaux/hyva-child/fr_FR/icons/cart.svg"
                    alt=""
                    aria-hidden="true"
                    width="20"
                    height="20"
                    
                   
                />
                <span
                    x-text="summaryCount"
                    x-show="summaryCount"
                    x-cloak
 class="absolute -top-1.5 -right-1.5 px-2 py-1 rounded-full bg-primary text-on-primary text-xs                        font-semibold leading-none text-center uppercase tabular-nums"
                    aria-hidden="true"
                ></span>
                            </button>
            </div>
                    </div>
    </div>

    <div
        id="search-content"
        class="absolute z-10 w-full border-t shadow-sm bg-white border-gray-100"
        x-cloak
 x-show="searchOpen"
        @click.outside="searchClose"
        @keydown.escape="searchEscape"
    >
        <script>
    'use strict';

    function initMiniSearch() {
        return {
            minSearchLength: 3,
                        suggestions: [],
            suggest() {
                const search = this.$refs.searchInput;
                if (search.value.length >= this.minSearchLength) {
                    search.setCustomValidity('');
                    search.reportValidity();
                    this.fetchSuggestions(search.value);
                } else {
                    this.suggestions = [];
                }
            },
            fetchSuggestions(term) {
                fetch(
                    window.BASE_URL + 'search/ajax/suggest?' + new URLSearchParams({q: term}),
                    {
                        headers: {
                            'X-Requested-With': 'XMLHttpRequest'
                        }
                    }
                )
                .then(response => response.json())
                .then(result => this.suggestions = result);
            },
                        search(term) {
                const search = this.$refs.searchInput;
                term = term || search.value;
                if (term.length < this.minSearchLength) {
                    search.setCustomValidity('Longueur\u0020minimale\u0020de\u0020requ\u00EAte\u0020recherche\u00203');
                    search.reportValidity();
                } else {
                    search.setCustomValidity('');
                    search.value = term;
                    this.$refs.form.submit();
                }
            },
            focusElement(element) {
                if (element && element.nodeName === "DIV") {
                    element.focus();
                    return true;
                } else {
                    return false;
                }
            }
        }
    }
</script>
<div class="container py-2 mx-auto text-black" x-data="initMiniSearch()">
    <search title="Magasin" role="search">
        <form
            id="search_mini_form"
            class="form minisearch flex"
            action="https://www.mesrideaux.fr/catalogsearch/result/"
            method="get"
            @submit.prevent="search()"
            x-ref="form"
        >
            <label class="sr-only" for="search">
                Chercher            </label>
            <input
                id="search"
                x-ref="searchInput"
                type="search"
                autocomplete="off"
                name="q"
                value=""
                placeholder="Rechercher&#x20;dans&#x20;tout&#x20;le&#x20;magasin..."
                maxlength="128"
                class="form-input w-full rounded-e-none"
                @search-open.window.debounce.10="$el.focus(); $el.select()"
                                    @focus.once="suggest"
                    @input.debounce.300="suggest"
                    @keydown.arrow-down.prevent="focusElement($root.querySelector('[tabindex]'))"
                            >
            <button
                type="submit"
                class="btn btn-primary p-2.5 rounded-s-none shrink-0 outline-offset-0"
                title="Chercher"
                aria-label="Chercher"
            >
                <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" viewbox="0 0 24 24" aria-hidden="true"><path d="m21 21-4.34-4.34"/><circle cx="11" cy="11" r="8"/></svg>
            </button>
        </form>
    </search>
            <template x-if="suggestions.length > 0">
            <nav
                aria-label="Search&#x20;Suggestions"
                class="flex flex-col mt-1 text-grey-800 gap-1"
            >
                <template x-for="suggestion in suggestions">
                    <button
                        type="button"
                        class="flex justify-between p-2 bg-white even:bg-gray-50 border border-gray-300 hover:bg-gray-100"
                        @click="search(suggestion.title)"
                        @keydown.enter="search(suggestion.title)"
                        @keydown.arrow-up.prevent="focusElement($event.target.previousElementSibling) || $refs.searchInput.focus()"
                        @keydown.arrow-down.prevent="focusElement($event.target.nextElementSibling)"
                    >
                        <span x-text="suggestion.title"></span>
                        <span x-text="suggestion.num_results"></span>
                    </button>
                </template>
            </nav>
        </template>
    </div>
    </div>

    

    
    <script>
        // Procédure JS simple
        function initDesktopMenu() {
            const menuItems = document.querySelectorAll(".menu-desktop nav > ul > li");

            function closeAll() {
                document.querySelectorAll(".menu-desktop .submenu").forEach(sub => {
                    sub.classList.remove("active");
                });
            }

            menuItems.forEach(item => {
                const submenu = item.querySelector(".menu-desktop .submenu");

                if (submenu) {
                    item.addEventListener("mouseenter", () => {
                    closeAll();
                    submenu.classList.add("active");
                    });

                    item.addEventListener("mouseleave", () => {
                    submenu.classList.remove("active");
                    });
                }
            });
        }

        // Appelée une seule fois quand Alpine est initialisé
        window.addEventListener('alpine:init', () => {
            initDesktopMenu();
        }, { once: true });
    </script>


<div class="hidden lg:flex z-20 navigation lg:px-0 menu-desktop h-full items-center">
    <nav
        class="w-full h-full"
        aria-label="Main&#x20;menu"
    >
        <ul class="flex items-center flex-wrap py-0 h-full justify-center no-wrap">
            <li class="level0 parent first level-top">

<a
    href="https://www.mesrideaux.fr/rideaux.html"
    class="main-menu__link"
     data-menu="menu-1">
    Rideaux</a>
<ul class="level0 submenu"><li class="level1 column-simple&#x20;w-25 first"><a
    href="https://www.mesrideaux.fr/rideau-taffetas-moire.html"
    class="snowdog-menu-link column-simple&#x20;w-25 product-menu submenu-with-image w-full text-center"
            data-menu="menu-84"
    >

  
        <img src="https://cdn4.mesrideaux.fr/snowdog_menu/images/300x300/r/i/rideau-thevenon-taffetas-moire-beige-gros-plan_2.webp"
            alt="Rideau&#x20;Taffetas&#x20;Moir&#xE9; alt1"
            loading="lazy"
            width="300"
            height="300"
            class="mx-auto"
        />
  

    <span class="product-menu-title">Rideau Taffetas Moiré</span>
</a>
</li><li class="level1 column-simple&#x20;w-25"><a
    href="https://www.mesrideaux.fr/rideau-kimono-flowers.html"
    class="snowdog-menu-link column-simple&#x20;w-25 product-menu submenu-with-image w-full text-center"
            data-menu="menu-339"
    >

  
        <img src="https://cdn4.mesrideaux.fr/snowdog_menu/images/300x300/r/i/rideau-kimono-flowers-fond-rouge-gros-plan_1.webp"
            alt="Rideau&#x20;Kimono&#x20;Flowers alt1"
            loading="lazy"
            width="300"
            height="300"
            class="mx-auto"
        />
  

    <span class="product-menu-title">Rideau Kimono Flowers</span>
</a>
</li><li class="level1 column-simple&#x20;w-25"><a
    href="https://www.mesrideaux.fr/rideau-velours-texture-studio.html"
    class="snowdog-menu-link column-simple&#x20;w-25 product-menu submenu-with-image w-full text-center"
            data-menu="menu-350"
    >

  
        <img src="https://cdn4.mesrideaux.fr/snowdog_menu/images/300x300/r/i/rideau-velours-texture-studio-blanc-casse-gros-plan_2.webp"
            alt="Rideau&#x20;Velours&#x20;Texture&#x20;Studio alt1"
            loading="lazy"
            width="300"
            height="300"
            class="mx-auto"
        />
  

    <span class="product-menu-title">Rideau Velours Texture Studio</span>
</a>
</li><li class="level1 column-simple&#x20;w-25 last"><a
    href="https://www.mesrideaux.fr/tissu-scopello.html"
    class="snowdog-menu-link column-simple&#x20;w-25 product-menu submenu-with-image w-full text-center"
            data-menu="menu-351"
    >

  
        <img src="https://cdn4.mesrideaux.fr/snowdog_menu/images/300x300/r/i/rideau-scopello-granito-photo-tissu_4.webp"
            alt="Rideau&#x20;Scopello alt1"
            loading="lazy"
            width="300"
            height="300"
            class="mx-auto"
        />
  

    <span class="product-menu-title">Rideau Scopello</span>
</a>
</li></ul></li><li class="level0 parent level-top">
    <a
        href="/stores-bateaux.html"
        data-menu="menu-2" class="main-menu__link"    >
        Stores    </a>
<ul class="level0 submenu"><li class="level1 column-simple&#x20;w-25&#x20; first"><a
    href="https://www.mesrideaux.fr/store-bateau-amara-aquaclean-32637.html"
    class="snowdog-menu-link column-simple&#x20;w-25&#x20; product-menu submenu-with-image w-full text-center"
            data-menu="menu-342"
    >

  
        <img src="https://cdn4.mesrideaux.fr/snowdog_menu/images/300x300/s/t/store-bateau-casal-amara-aquaclean-argent-gros-plan_3.webp"
            alt="STORE&#x20;BATEAU&#x20;AMARA&#x20;AQUACLEAN alt1"
            loading="lazy"
            width="300"
            height="300"
            class="mx-auto"
        />
  

    <span class="product-menu-title">STORE BATEAU AMARA AQUACLEAN</span>
</a>
</li><li class="level1 column-simple&#x20;w-25"><a
    href="https://www.mesrideaux.fr/store-bateau-suzie.html"
    class="snowdog-menu-link column-simple&#x20;w-25 product-menu submenu-with-image w-full text-center"
            data-menu="menu-343"
    >

  
        <img src="https://cdn4.mesrideaux.fr/snowdog_menu/images/300x300/s/t/store-bateau-thevenon-suzie-vert-fond-vanille-gros-plan_1.webp"
            alt="Store&#x20;bateau&#x20;Suzie alt1"
            loading="lazy"
            width="300"
            height="300"
            class="mx-auto"
        />
  

    <span class="product-menu-title">Store bateau Suzie</span>
</a>
</li><li class="level1 column-simple&#x20;w-25"><a
    href="https://www.mesrideaux.fr/store-bateau-samani.html"
    class="snowdog-menu-link column-simple&#x20;w-25 product-menu submenu-with-image w-full text-center"
            data-menu="menu-352"
    >

  
        <img src="https://cdn4.mesrideaux.fr/snowdog_menu/images/300x300/s/t/store-bateau-gaston-y-daniela-samani-beige-et-bleu-gros-plan_1.webp"
            alt=" alt1"
            loading="lazy"
            width="300"
            height="300"
            class="mx-auto"
        />
  

    <span class="product-menu-title">Store bateau Samani</span>
</a>
</li><li class="level1 column-simple&#x20;w-25 last"><a
    href="https://www.mesrideaux.fr/store-bateau-scopello.html"
    class="snowdog-menu-link column-simple&#x20;w-25 product-menu submenu-with-image w-full text-center"
            data-menu="menu-353"
    >

  
        <img src="https://cdn4.mesrideaux.fr/snowdog_menu/images/300x300/s/t/store-bateau-luciano-marcato-scopello-navy-gros-plan_1.webp"
            alt="Store&#x20;bateau&#x20;Scopello alt1"
            loading="lazy"
            width="300"
            height="300"
            class="mx-auto"
        />
  

    <span class="product-menu-title">Store bateau Scopello</span>
</a>
</li></ul></li><li class="level0 parent level-top">
    <a
        href="/coussins.html"
        data-menu="menu-234" class="main-menu__link"    >
        Coussins    </a>
<ul class="level0 submenu"><li class="level1 column-simple&#x20;w-25 first"><a
    href="https://www.mesrideaux.fr/coussin-osier.html"
    class="snowdog-menu-link column-simple&#x20;w-25 product-menu submenu-with-image w-full text-center"
            data-menu="menu-344"
    >

  
        <img src="https://cdn4.mesrideaux.fr/snowdog_menu/images/300x300/c/o/coussin-lelievre-osier-pavot-gros-plan_1.webp"
            alt="Coussin&#x20;Osier alt1"
            loading="lazy"
            width="300"
            height="300"
            class="mx-auto"
        />
  

    <span class="product-menu-title">Coussin Osier</span>
</a>
</li><li class="level1 column-simple&#x20;w-25"><a
    href="https://www.mesrideaux.fr/coussin-sake.html"
    class="snowdog-menu-link column-simple&#x20;w-25 product-menu submenu-with-image w-full text-center"
            data-menu="menu-345"
    >

  
        <img src="https://cdn4.mesrideaux.fr/snowdog_menu/images/300x300/c/o/coussin-sake-taupe-gros-plan_1.webp"
            alt="Coussin&#x20;Sake alt1"
            loading="lazy"
            width="300"
            height="300"
            class="mx-auto"
        />
  

    <span class="product-menu-title">Coussin Sake</span>
</a>
</li><li class="level1 column-simple&#x20;w-25"><a
    href="https://www.mesrideaux.fr/coussin-poissons-coffre.html"
    class="snowdog-menu-link column-simple&#x20;w-25 product-menu submenu-with-image w-full text-center"
            data-menu="menu-354"
    >

  
        <img src="https://cdn4.mesrideaux.fr/snowdog_menu/images/300x300/c/o/coussin-thevenon-poissons-coffre-fond-marine-sur-lin-gros-plan_1.webp"
            alt="COUSSIN&#x20;POISSONS&#x20;COFFRE alt1"
            loading="lazy"
            width="300"
            height="300"
            class="mx-auto"
        />
  

    <span class="product-menu-title">COUSSIN POISSONS COFFRE</span>
</a>
</li><li class="level1 column-simple&#x20;w-25 last"><a
    href="https://www.mesrideaux.fr/coussin-french-ikat.html"
    class="snowdog-menu-link column-simple&#x20;w-25 product-menu submenu-with-image w-full text-center"
            data-menu="menu-355"
    >

  
        <img src="https://cdn4.mesrideaux.fr/snowdog_menu/images/300x300/c/o/coussin-thevenon-french-ikat-indigo-outdoor-gros-plan_1.webp"
            alt="COUSSIN&#x20;FRENCH&#x20;IKAT alt1"
            loading="lazy"
            width="300"
            height="300"
            class="mx-auto"
        />
  

    <span class="product-menu-title">COUSSIN FRENCH IKAT</span>
</a>
</li></ul></li><li class="level0 parent level-top">
    <a
        href="/coussins-banquette.html"
        data-menu="menu-233" class="main-menu__link"    >
        Banquettes    </a>
<ul class="level0 submenu"><li class="level1 column-simple&#x20;submenu-with-image&#x20;w-25&#x20;&#x20;product-menu first"><a
    href="https://www.mesrideaux.fr/banquette-together-cool-clean.html"
    class="snowdog-menu-link column-simple&#x20;submenu-with-image&#x20;w-25&#x20;&#x20;product-menu product-menu submenu-with-image w-full text-center"
            data-menu="menu-346"
    >

  
        <img src="https://cdn4.mesrideaux.fr/snowdog_menu/images/300x300/b/a/banquette-thevenon-together-cool-clean-biscuit-gros-plan_1.webp"
            alt="BANQUETTE&#x20;TOGETHER&#x20;COOL&#x20;CLEAN alt1"
            loading="lazy"
            width="300"
            height="300"
            class="mx-auto"
        />
  

    <span class="product-menu-title">BANQUETTE TOGETHER COOL CLEAN</span>
</a>
</li><li class="level1 column-simple&#x20;submenu-with-image&#x20;w-25&#x20;&#x20;product-menu"><a
    href="https://www.mesrideaux.fr/banquette-lempicka.html"
    class="snowdog-menu-link column-simple&#x20;submenu-with-image&#x20;w-25&#x20;&#x20;product-menu product-menu submenu-with-image w-full text-center"
            data-menu="menu-347"
    >

  
        <img src="https://cdn4.mesrideaux.fr/snowdog_menu/images/300x300/b/a/banquette-casal-lempicka-jour-imperial-gros-plan.webp"
            alt="Coussin&#x20;Sake alt1"
            loading="lazy"
            width="300"
            height="300"
            class="mx-auto"
        />
  

    <span class="product-menu-title">Banquette Lempicka</span>
</a>
</li><li class="level1 column-simple&#x20;w-25"><a
    href="https://www.mesrideaux.fr/banquette-amara-aquaclean.html"
    class="snowdog-menu-link column-simple&#x20;w-25 product-menu submenu-with-image w-full text-center"
            data-menu="menu-356"
    >

  
        <img src="https://cdn4.mesrideaux.fr/snowdog_menu/images/300x300/b/a/banquette-casal-amara-aquaclean-canard-gros-plan_1.webp"
            alt="BANQUETTE&#x20;AMARA&#x20;AQUACLEAN alt1"
            loading="lazy"
            width="300"
            height="300"
            class="mx-auto"
        />
  

    <span class="product-menu-title">BANQUETTE AMARA AQUACLEAN</span>
</a>
</li><li class="level1 column-simple&#x20;w-25 last"><a
    href="https://www.mesrideaux.fr/banquette-blues-jacquard-bronze"
    class="snowdog-menu-link column-simple&#x20;w-25 product-menu submenu-with-image w-full text-center"
            data-menu="menu-357"
    >

  
        <img src="https://cdn4.mesrideaux.fr/snowdog_menu/images/300x300/b/a/banquette-thevenon-blues-jacquard-bronze-gros-plan.webp"
            alt="BANQUETTE&#x20;BLUES&#x20;JACQUARD&#x20;BRONZE alt1"
            loading="lazy"
            width="300"
            height="300"
            class="mx-auto"
        />
  

    <span class="product-menu-title">BANQUETTE BLUES JACQUARD BRONZE</span>
</a>
</li></ul></li><li class="level0 parent level-top">

<a
    href="https://www.mesrideaux.fr/tissus.html"
    class="main-menu__link"
     data-menu="menu-8">
    Tissus</a>
<ul class="level0 submenu"><li class="level1 column-simple&#x20;submenu-with-image&#x20;w-25&#x20;&#x20;product-menu first"><a
    href="https://www.mesrideaux.fr/tissu-muse.html"
    class="snowdog-menu-link column-simple&#x20;submenu-with-image&#x20;w-25&#x20;&#x20;product-menu product-menu submenu-with-image w-full text-center"
            data-menu="menu-348"
    >

  
        <img src="https://cdn4.mesrideaux.fr/snowdog_menu/images/300x300/s/t/store-bateau-thevenon-muse-fond-bleu-jean-photo-tissu_1.webp"
            alt="Tissu&#x20;Muse alt1"
            loading="lazy"
            width="300"
            height="300"
            class="mx-auto"
        />
  

    <span class="product-menu-title">Tissu Muse</span>
</a>
</li><li class="level1 column-simple&#x20;submenu-with-image&#x20;w-25&#x20;&#x20;product-menu"><a
    href="https://www.mesrideaux.fr/tissu-timeline.html"
    class="snowdog-menu-link column-simple&#x20;submenu-with-image&#x20;w-25&#x20;&#x20;product-menu product-menu submenu-with-image w-full text-center"
            data-menu="menu-349"
    >

  
        <img src="https://cdn4.mesrideaux.fr/snowdog_menu/images/300x300/s/t/store-bateau-thevenon-timeline-fond-abricot-photo-tissu.webp"
            alt="TISSU&#x20;AU&#x20;METRE&#x20;HANA&#x20;BOIS&#x20;DE&#x20;ROSE alt1"
            loading="lazy"
            width="300"
            height="300"
            class="mx-auto"
        />
  

    <span class="product-menu-title">TISSU TIMELINE</span>
</a>
</li><li class="level1 column-simple&#x20;w-25"><a
    href="https://www.mesrideaux.fr/tissu-sake.html"
    class="snowdog-menu-link column-simple&#x20;w-25 product-menu submenu-with-image w-full text-center"
            data-menu="menu-358"
    >

  
        <img src="https://cdn4.mesrideaux.fr/snowdog_menu/images/300x300/b/a/banquette-casal-sake-ambre-photo-tissu_2.webp"
            alt="Tissu&#x20;Sake alt1"
            loading="lazy"
            width="300"
            height="300"
            class="mx-auto"
        />
  

    <span class="product-menu-title">Tissu Sake</span>
</a>
</li><li class="level1 column-simple&#x20;w-25 last"><a
    href="https://www.mesrideaux.fr/tissu-sillage.html"
    class="snowdog-menu-link column-simple&#x20;w-25 product-menu submenu-with-image w-full text-center"
            data-menu="menu-359"
    >

  
        <img src="https://cdn4.mesrideaux.fr/snowdog_menu/images/300x300/c/o/coussin-casal-sillage-eau-claire-photo-tissu_3.webp"
            alt="Tissu&#x20;Sillage alt1"
            loading="lazy"
            width="300"
            height="300"
            class="mx-auto"
        />
  

    <span class="product-menu-title">Tissu Sillage</span>
</a>
</li></ul></li><li class="level0 parent last level-top">
    <a
        href="/blog/"
        data-menu="menu-10" class="main-menu__link" target="_blank" rel="noopener"    >
        Blog    </a>
<ul class="level0 submenu"><li class="level1 blog-menu first last"><style>#html-body [data-pb-style=W2L5VRG]{background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;align-self:stretch}#html-body [data-pb-style=JI2ELJW]{display:flex;width:100%}#html-body [data-pb-style=JSPTWRL]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:75%;align-self:stretch}#html-body [data-pb-style=XMNY19H]{display:inline-block}#html-body [data-pb-style=REMAYEC]{text-align:center}#html-body [data-pb-style=C6GHF61]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:25%;align-self:stretch}#html-body [data-pb-style=DFUABM1]{border-style:none}#html-body [data-pb-style=KIQKOH9],#html-body [data-pb-style=XD2AIPT]{max-width:100%;height:auto}@media only screen and (max-width: 767px) { #html-body [data-pb-style=DFUABM1]{border-style:none} }</style><div class="pagebuilder-column-group container" 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="W2L5VRG"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="JI2ELJW"><div class="pagebuilder-column menu-blog-left" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-background-lazy-load="false" data-element="main" data-pb-style="JSPTWRL"><div data-content-type="text" data-appearance="default" data-element="main"><p>D&eacute;couvrez les derni&egrave;res tendances et les meilleures astuces d&eacute;co ! Pour en savoir plus, rendez-vous sur notre blog <strong data-start="115" data-end="132">MesRideaux.fr</strong>.<br data-start="133" data-end="136"></p></div><div data-content-type="buttons" data-appearance="inline" data-same-width="false" data-element="main"><div data-content-type="button-item" data-appearance="default" data-element="main" data-pb-style="XMNY19H"><a class="pagebuilder-button-primary" href="/blog/" target="_blank" data-link-type="default" data-element="link" data-pb-style="REMAYEC"><span data-element="link_text">Explorez d&egrave;s maintenant !</span></a></div></div><div data-content-type="text" data-appearance="default" data-element="main"><p>&nbsp;</p>
<p>Vous avez des questions ou souhaitez &eacute;changer des id&eacute;es d&eacute;co ? Retrouvez-nous sur <a title="trouvez-nous sur instagram" href="https://www.instagram.com/mesrideaux/" target="_blank" rel="noopener">Instagram</a> pour des inspirations quotidiennes et des conseils personnalis&eacute;s !</p>
<p>Contactez-nous directement sur <a href="/cdn-cgi/l/email-protection#97f4f8f9e3f6f4e3d7faf2e4e5fef3f2f6e2efb9f1e5" target="_blank" rel="noopener"><span class="__cf_email__" data-cfemail="accfc3c2d8cdcfd8ecc1c9dfdec5c8c9cdd9d482cade">[email&#160;protected]</span></a>&nbsp;et laissez-vous inspirer.</p></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="C6GHF61"><figure data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="DFUABM1"><img width="1536" height="1024" class="pagebuilder-mobile-hidden" src="https://cdn4.mesrideaux.fr/wysiwyg/blog.png" alt="Blog mesrideaux" title="" loading="lazy" data-element="desktop_image" data-pb-style="XD2AIPT"><img width="1536" height="1024" class="pagebuilder-mobile-only" src="https://cdn4.mesrideaux.fr/wysiwyg/blog.png" alt="Blog mesrideaux" title="" loading="lazy" data-element="mobile_image" data-pb-style="KIQKOH9"></figure></div></div></div></li></ul></li>        </ul>
    </nav>
</div>

    

    <!--Cart Drawer-->
    
<script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script><script>
    function initCartDrawer() {
        return {
            open: false,
            isLoading: false,
            cart: {},
            maxItemsToDisplay: 10,
            itemsCount: 0,
            showSku: false,
            autocompleteNumber: 100,
            init() {
                if (document.prerendering) {
                    document.addEventListener("prerenderingchange", () => {
                        window.dispatchEvent(
                            new CustomEvent('reload-customer-section-data')
                        );
                    }, { once: true });
                }
            },
            showDetails(item) {
                return item && item.options && item.options.length || this.showSku;
            },
            isDesktopViewport() {
                return window.innerWidth >= 768;
            },
            initItemDetailsShown(item) {
                if (item.detailsShown === undefined) {
                    item.detailsShown = this.isDesktopViewport();
                }
            },
            cartIsEmpty() {
                return this.itemsCount === 0
            },
            getData(data) {
                if (!data) {
                    data = this.$event?.detail?.data;
                }

                if (data?.cart) {
                    this.cart = data.cart;
                    this.itemsCount = data.cart.items && data.cart.items.length || 0;
                    this.setCartItems();
                }
                this.isLoading = false;
            },
            initCartDrawerSuggestions(host) {
                if (!host) {
                    return;
                }
                this.$nextTick(() => {
                    if (typeof jQuery === 'undefined' || typeof jQuery.fn?.slick !== 'function') {
                        return;
                    }
                    const $list = jQuery(host).find('.cart-drawer-ventes-add-suggestions .product-suggestions__list');
                    if (!$list.length) {
                        return;
                    }
                    if ($list.hasClass('slick-initialized')) {
                        $list.slick('setPosition');
                        return;
                    }
                    $list.slick({
                        slidesToShow: 2,
                        slidesToScroll: 1,
                        dots: false,
                        arrows: true,
                        infinite: false,
                        nextArrow: '<button class="btn btn-secondary p-2 slick-arrow-next" aria-label="Next Slide" data-next=""><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" viewBox="0 0 24 24" class="rtl:-rotate-180" aria-hidden="true"><path d="M5 12h14M12 5l7 7-7 7"></path></svg></button>',
                        prevArrow: '<button class="btn btn-secondary p-2 slick-arrow-prev" aria-label="Previous Slide" data-prev=""><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" viewBox="0 0 24 24" class="rtl:-rotate-180" aria-hidden="true"><path d="m12 19-7-7 7-7M19 12H5"></path></svg></button>',
                        responsive: [
                            {
                                breakpoint: 768,
                                settings: {
                                    slidesToShow: 1,
                                    arrows: false,
                                    dots: true
                                }
                            }
                        ]
                    });
                });
            },
            refreshCartDrawerSuggestions() {
                const host = this.$refs.cartDrawerSuggestionsHost;
                if (host && this.cart.ventes_add_suggestions_html) {
                    this.initCartDrawerSuggestions(host);
                }
            },
            cartItems: [],
            getItemCountTitle() {
                return hyva.strf('\u00250\u0020of\u0020\u00251\u0020products\u0020in\u0020cart\u0020displayed', this.maxItemsToDisplay, this.itemsCount)
            },
            shouldShowItemCount() {
                return this.maxItemsToDisplay && this.maxItemsToDisplay < this.itemsCount;
            },
            setCartItems() {
                const isDesktop = this.isDesktopViewport();
                let items = this.cart.items && [...this.cart.items].sort((a, b) => b.item_id - a.item_id) || [];

                if (this.maxItemsToDisplay > 0) {
                    items = items.slice(0, parseInt(this.maxItemsToDisplay, 10));
                }

                this.cartItems = items.map((item) => ({
                    ...item,
                    detailsShown: item.detailsShown !== undefined ? item.detailsShown : isDesktop,
                }));
            },
            updateItemQty(event) {
                const form = event.target;
                this.isLoading = true;
                hyvaAjaxFormMinicart({ form, redirect: false }, () => {
                    this.isLoading = false;
                });
            },
            deleteItemFromCart() {
                const itemId = this.item.item_id;
                const formKey = hyva.getFormKey();
                this.isLoading = true;

                hyvaAjaxFormMinicart({
                    url: BASE_URL + 'checkout/sidebar/removeItem/',
                    body: 'form_key=' + formKey + '&item_id=' + itemId,
                    message: 'Vous\u0020avez\u0020supprim\u00E9\u0020l\u0027\u00E9l\u00E9ment.'
                }, () => {
                    this.isLoading = false
                });
            },
            toggleCartDrawer(event) {
                const wasOpen = this.open;
                this.open = event.detail?.isOpen ?? !this.open;
                if (this.open && !wasOpen) {
                    this.refreshCartDrawerSuggestions();
                }
            },
            openCartDrawer() {
                this.open = true;
                this.refreshCartDrawerSuggestions();
            },
            closeCartDrawer() {
                this.open = false;
            },
            getSectionDataExtraActions() {
                if (!this.cart.extra_actions) {
                    return '';
                }

                const contentNode = document.createElement('div');
                contentNode.innerHTML = this.cart.extra_actions;

                hyva.activateScripts(contentNode);

                return contentNode.innerHTML;
            },
            productIsVisibleInSite() {
                return this.item.product_has_url && this.item.is_visible_in_site_visibility
            },
            productIsNotVisibleInSite() {
                return !this.productIsVisibleInSite()
            },
            productIsNotGroupedAndVisibleInSite() {
                return this.item.product_type !== 'grouped' && this.item.is_visible_in_site_visibility
            },
            productAriaLabel() {
                return hyva.strf(this.$el.dataset.ariaLabel, this.item.product_name)
            },
            proceedToCheckout() {
                this.closeCartDrawer()

                this.$dispatch(
                    'toggle-authentication',
                    {
                        url: 'https://www.mesrideaux.fr/checkout/'
                    }
                )
            },
            setItemMessage(itemId, message) {
                const items = this.cartItems;
                items.forEach((item) => {
                    if (item.item_id === itemId) {
                        item.message = message;
                    }
                });
            },
            cartListeners: {
                ['@private-content-loaded.window'](event) {
                    this.getData(event.detail.data);
                },
                ['@toggle-cart.window'](event) {
                    this.toggleCartDrawer(event);
                },
                ['@minicart-error-message.window'](event) {
                    if (!event.detail) return;
                    const { itemId, message } = event.detail;
                    this.setItemMessage(itemId, message);
                },
                ["@pageshow.window"](event) {
                    if (event.persisted) {
                        this.open = false;
                        window.dispatchEvent(new CustomEvent("reload-customer-section-data"));
                    }
                }
            }
        }
    }

    window.addEventListener('alpine:init', () => {
        Alpine.data('initCartDrawer', initCartDrawer);
    }, { once: true })

    async function hyvaAjaxFormMinicart(
        {
            form = null,
            url = '',
            body = '',
            redirect = 'default',
            message = '',
        } = {},
        callback = () => {}
    ) {
        const formData = body ? body : (form ? new FormData(form) : '');
        const postUrl = url ? url : (form ? form.action : '');
        if (!formData || !postUrl) {
            console.warn('You must provide the form or formData and postUrl!');
            return;
        }

        const formUenc = hyva.getUenc();
        const itemId = body ? new URLSearchParams(body).get('item_id') : formData.get('item_id');
        let bodyUrl = new URLSearchParams(formData);
        bodyUrl.append('uenc', formUenc);

        try {
            const response = await fetch(postUrl, {
                method: 'POST',
                body: bodyUrl.toString(),
                mode: 'cors',
                credentials: 'include',
                headers: {
                    'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8',
                    'X-Requested-With': 'XMLHttpRequest'
                }
            });

            if (!response.ok) {
                return form.submit();
            }

            if (redirect === 'default' && response.redirected) {
                return window.location.href = response.url;
            } else if (redirect !== 'default' && redirect !== false) {
                return window.location.href = redirect;
            }

            const responseBody = await response.json();

            if (!responseBody.success) {
                throw responseBody.error_message;
            }

            window.dispatchEvent(new CustomEvent('reload-customer-section-data'));
        } catch (error) {
            window.dispatchEvent(new CustomEvent('minicart-error-message', { detail: { itemId, message: error } }));
        } finally {
            callback();
        }
    }
</script>

<dialog
    id="cart-drawer"
    aria-labelledby="cart-drawer-title"
    class="w-[480px] w-full  h-full max-h-full me-0 open:flex flex-col transition ease-out duration-300 motion-reduce:duration-0 rounded-e-none p-4"
    x-data="initCartDrawer"
    x-bind="cartListeners"
    x-show="open"
    x-htmldialog="closeCartDrawer"
    closeby="any"
    x-transition:enter="transition ease-in-out duration-500"
    x-transition:enter-start="translate-x-full"
    x-transition:enter-end="translate-x-0"
    x-transition:leave="transition ease-in-out duration-300"
    x-transition:leave-start="translate-x-0"
    x-transition:leave-end="translate-x-full"
>
    
    <div class="flex gap-2 justify-between">
        <p id="cart-drawer-title" class="text-2xl">
            Mon panier            <span
                class="items-total text-xs"
                x-show="shouldShowItemCount"
                x-text="getItemCountTitle"
            ></span>
        </p>
        <button
            type="button"
            class="btn bg-transparent border-transparent p-2 pt-0 items-start"
            @click="closeCartDrawer"
            aria-label="Close&#x20;minicart"
        >
            <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" viewbox="0 0 24 24" aria-hidden="true"><path d="M18 6 6 18M6 6l12 12"/></svg>
        </button>
    </div>

    
    <template x-if="cartIsEmpty">
        <div class="grow grid place-items-center">
            <div class="text-center">
                <svg xmlns="http://www.w3.org/2000/svg" width="120" height="120" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" viewbox="0 0 24 24" class="inline-block text-fg/30 max-w-full h-auto cart-drawer-empty-icon" aria-hidden="true"><path d="m15 11-1 9M19 11l-4-7M2 11h20M3.5 11l1.6 7.4a2 2 0 0 0 2 1.6h9.8a2 2 0 0 0 2-1.6l1.7-7.4M4.5 15.5h15M5 11l4-7M9 11l1 9"/></svg>
                <p class="mt-10 text-xl">
                    <strong>Votre panier est vide</strong>
                </p>
            </div>
        </div>
    </template>

    <template x-if="itemsCount">
        <div class="grow items-list-cart-drawer min-h-0 flex flex-col overflow-y-auto overscroll-y-contain mask-overflow mask-dir-y">
            <ul class="flex-1 flex flex-col">
                
                <template x-for="item in cartItems" :key="item.item_id">
                    
                    <li class="flex flex-wrap gap-4 md:gap-6 items-start py-4 px-1">
                        <div class="flex  gap-4">
                            <template x-if="productIsVisibleInSite">
                                <a
                                    class="block shrink-0 max-w-[25%]"
                                    :href="item.product_url"
                                    data-aria-label="Product&#x20;&quot;&#x25;0&quot;"
                                    :title="item.product_name"
                                >
                                    <img
                                        class="radius-img"
                                        :src="item.product_image.src"
                                        :width="item.product_image.width"
                                        :height="item.product_image.height"
                                        loading="lazy"
                                        :alt="item.product_name"
                                    >
                                </a>
                            </template>
                            <template x-if="productIsNotVisibleInSite">
                                <div class="block shrink-0 max-w-[25%]">
                                    <img
                                        class="radius-img"
                                        :src="item.product_image.src"
                                        :width="item.product_image.width"
                                        :height="item.product_image.height"
                                        loading="lazy"
                                        :alt="item.product_name"
                                    />
                                </div>
                            </template>
                            <div class="grow space-y-4">
                                <div class="flex gap-1 justify-between items-start flex-wrap">
                                    <p class="item-cart-drawer-title w-full">
                                        <span x-html="item.qty"></span> x <strong x-html="item.product_name"></strong>
                                    </p>
                                    <span class="price-box w-full" x-html="item.product_price"></span>
                                </div>
                                
                            </div>

                        </div>
                        
                        <!-- Afficher détail (mobile only) Alpine toggle, always open on desktop -->
                        <div
                            class="w-full"
                            x-init="initItemDetailsShown(item)"
                            @resize.window="if (isDesktopViewport()) { item.detailsShown = true }"
                        >
                            <template x-if="showDetails(item)">
                                <div>
                                    <!-- Only visible on mobile < 768px -->
                                    <button
                                        type="button"
                                        class="btn btn-primary px-3 py-1 mb-2 block md:hidden"
                                        @click="item.detailsShown = !item.detailsShown"
                                        x-text="item.detailsShown ? 'Masquer la configuration' : 'Afficher la configuration'"
                                        :aria-expanded="item.detailsShown ? 'true' : 'false'"
                                    ></button>
                                    <div
                                        x-show="item.detailsShown"
                                        x-transition
 class="w-full"
                                    >
                                        <dl class="table text-sm w-full">
                                            <template x-if="showSku">
                                                <div class="table-row">
                                                    <dt class="table-cell config-label font-normal min-w-16 pe-2 pb-2">
                                                        Réf                                                    </dt>
                                                    <dd class="table-cell font-bold pb-2" x-html="item.product_sku"></dd>
                                                </div>
                                            </template>
                                            <template x-for="option in item.options">
                                                <div class="table-row">
                                                    <dt
                                                        class="table-cell config-label font-normal min-w-16 pe-2 pb-2"
                                                        x-text="option.label"
                                                    ></dt>
                                                    <dd class="table-cell font-bold pb-2" x-html="option.value"></dd>
                                                </div>
                                            </template>
                                        </dl>
                                    </div>
                                </div>
                            </template>
                        </div>
                
                        <div class="flex flex-wrap gap-2 justify-end items-center w-full">
                            <div class="inline-flex flex-wrap items-center gap-1">
                                <a
                                    :href="item.configure_url"
                                    x-show="productIsNotGroupedAndVisibleInSite"
                                    class="btn p-2"
                                    data-aria-label="Edit&#x20;product&#x20;&quot;&#x25;0&quot;"
                                    :aria-label="productAriaLabel"
                                >
                                    <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" viewbox="0 0 24 24" aria-hidden="true"><path d="M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497zM15 5l4 4"/></svg>
                                </a>
                                <button
                                    type="button"
                                    class="btn p-2"
                                    @click="deleteItemFromCart"
                                    data-aria-label="Remove&#x20;product&#x20;&quot;&#x25;0&quot;&#x20;from&#x20;cart"
                                    :aria-label="productAriaLabel"
                                >
                                    <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" viewbox="0 0 24 24" aria-hidden="true"><path d="M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6M3 6h18M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"/></svg>
                                </button>
                            </div>
                            <template x-if="item.message">
                                <div class="message error" x-text="item.message"></div>
                            </template>
                        </div>
                    </li>
                </template>
            </ul>
            <div
    x-ref="cartDrawerSuggestionsHost"
    class="cart-drawer-ventes-add-suggestions-host shrink-0"
    x-show="itemsCount && cart.ventes_add_suggestions_html"
    x-html="cart.ventes_add_suggestions_html"
    x-effect="cart.ventes_add_suggestions_html && initCartDrawerSuggestions($el)"
></div>
        </div>
    </template>

    
    <template x-if="itemsCount">
        <div class="pt-4">
            
            <dl class="flex gap-2 justify-between items-center text-sm font-bold">
                <dt>Sous-total</dt>
                <dd x-html="cart.subtotal"></dd>
            </dl>

            <div class="flex flex-col gap-y-4 mt-8">
                <a
                    @click.prevent.stop="proceedToCheckout"
                    href="https://www.mesrideaux.fr/checkout/"
                    class="btn btn-primary"
                >
                    Commander                </a>
                <a
                    href="https://www.mesrideaux.fr/checkout/cart/"
                    class="btn btn-secondary"
                >
                    Afficher et modifier le panier                </a>
                <div x-html="getSectionDataExtraActions"></div>
                            </div>
        </div>
    </template>

    <template x-if="cartIsEmpty">
        <div class="flex flex-col">
            <button
                type="button"
                @click="closeCartDrawer"
                class="btn btn-primary"
            >Continuez vos achats</button>
        </div>
    </template>

    <div
    class="z-50 fixed inset-0 flex justify-center items-center bg-white/70 select-none"
    x-show="isLoading"
    x-cloak
 x-transition.opacity.duration.200ms
>
    <div class="flex items-center">
        <svg xmlns="http://www.w3.org/2000/svg" width="54" height="54" viewbox="0 0 24 24" stroke="currentColor" fill="none" stroke-width="2" stroke-linecap="round" class="animate-spin" aria-hidden="true">
    <circle style="opacity: .3;" cx="12" cy="12" r="10"/>
    <path fill="none" stroke-width="2" d="M12,2 a10,10 0 0,1 10,10"/>
</svg>
        <div class="ml-10 text-xl">
            Chargement...        </div>
    </div>
</div>
</dialog>

    <!--Authentication Pop-Up-->
    <!-- BLOCK authentication-popup --><script>
    function initAuthentication() {
        return {
            open: false,
            close() {
                this.open = false;
            },
            forceAuthentication: false,
            checkoutUrl: 'https://www.mesrideaux.fr/checkout/index/',
            errors: 0,
            hasCaptchaToken: 0,
            displayErrorMessage: false,
            errorMessages: [],
            setErrorMessages(message) {
                this.errorMessages = [message];
                this.displayErrorMessage = true;
            },
            submitForm() {
                // Do not rename $form, the variable is expected to be declared in the recaptcha output
                const $form = document.querySelector('#login-form');
                
                if (this.errors === 0) {
                    this.dispatchLoginRequest($form);
                }
            },
            onPrivateContentLoaded() {
                const data = this.$event.detail.data;
                const isLoggedIn = data.customer && data.customer.firstname;
                if (data.cart && !isLoggedIn) {
                    this.forceAuthentication = !data.cart.isGuestCheckoutAllowed;
                }
            },
            redirectIfAuthenticated() {
                const event = this.$event;
                this.open = this.forceAuthentication;

                if (event.detail && event.detail.url) {
                    this.checkoutUrl = event.detail.url;
                }
                if (!this.forceAuthentication) {
                    window.location.href = this.checkoutUrl;
                }
            },
            resetErrors() {
                this.errors = 0;
            },
            dispatchLoginRequest(form) {
                this.isLoading = true;
                const username = this.$refs['customer-email'].value;
                const password = this.$refs['customer-password'].value;
                const formKey = hyva.getFormKey();
                const bodyFields = {
                    'username': username,
                    'password': password,
                    'formKey': formKey
                };
                                const fieldName = '';
                const recaptchaField = fieldName && form[fieldName];
                if (recaptchaField) {
                    bodyFields[fieldName] = recaptchaField.value;
                }
                fetch('https://www.mesrideaux.fr/customer/ajax/login/', {
                        method: 'POST',
                        headers: {
                            'Content-Type': 'application/json',
                            'X-Requested-With': 'XMLHttpRequest'
                        },
                        body: JSON.stringify(bodyFields)
                    }
                ).then(response => {
                        return response.json()
                    }
                ).then(data => {
                    this.isLoading = false;
                    if (data.errors) {
                        this.setErrorMessages(data.message);
                        this.errors = 1;
                        this.hasCaptchaToken = 0;
                    } else {
                        window.location.href = this.checkoutUrl;
                    }
                });
            },
            eventListeners: {
                ['@private-content-loaded.window']() {
                    this.onPrivateContentLoaded();
                },
                ['@toggle-authentication.window']() {
                    this.redirectIfAuthenticated();
                },
                ['@pageshow.window'](event) {
                    if (event.persisted) {
                        this.close();
                    };
                }
            }
        }
    }

    window.addEventListener('alpine:init', () => Alpine.data('initAuthentication', initAuthentication), {once: true})
</script>

<dialog
    id="authentication-popup"
    aria-labelledby="authentication-popup-title"
    class="open:flex flex-col transition ease-out duration-300 motion-reduce:duration-0 p-0"
    x-data="initAuthentication"
    x-bind="eventListeners"
    x-show="open"
    x-htmldialog="close"
    closeby="any"
    x-transition
>
    <div class="pt-8 px-8">
        <div class="flex gap-2 justify-between items-center">
            <p id="authentication-popup-title" class="text-xl">
                <strong>Connexion client</strong>
            </p>
            <button
                type="button"
                class="btn bg-transparent border-transparent p-2"
                @click="close"
                aria-label="Fermer&#x20;le&#x20;panneau"
            >
                <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" viewbox="0 0 24 24" aria-hidden="true"><path d="M18 6 6 18M6 6l12 12"/></svg>
            </button>
        </div>

        <div class="message error" x-show="errors" x-cloak>
            <template x-for="(message, index) in errorMessages" :key="index">
                <div>
                    <template x-if="message">
                        <span x-html="message"></span>
                    </template>
                </div>
            </template>
        </div>
    </div>

    <div class="block-customer-login p-8">
        <p id="authenticate-customer-login" class="text-lg mb-2">
            <strong>Commandez en utilisant votre compte</strong>
        </p>

        <form
            id="login-form"
            class="form form-login"
            method="post"
            @submit.prevent="submitForm"
        >
                        <input name="context" type="hidden" value="checkout">

            <div class="flex flex-col gap-4">
                <div class="field email required">
                    <label for="form-login-username">
                        <span>Adresse mail</span>
                    </label>
                    <div class="control">
                        <input
                            id="form-login-username"
                            name="username"
                            type="email"
                            class="form-input w-full"
                            required
 autocomplete="off"
                            x-ref="customer-email"
                            @change="resetErrors"
                        >
                    </div>
                </div>
                <div class="field password required">
                    <label for="form-login-password">
                        <span>Mot de passe</span>
                    </label>
                    <div class="control">
                        <input
                            id="form-login-password"
                            name="password"
                            type="password"
                            class="form-input w-full"
                            required
 autocomplete="off"
                            x-ref="customer-password"
                            @change="resetErrors"
                        >
                    </div>
                </div>
            </div>

            <div class="actions-toolbar">
                <button
                    type="submit"
                                        class="btn btn-primary"
                >
                    Se connecter                </button>
                <a
                    href="https://www.mesrideaux.fr/customer/account/forgotpassword/"
                    class="underline hover:no-underline"
                >
                    Mot de passe oublié ?                </a>
            </div>
        </form>
            </div>
    <div class="block-new-customer p-8 border-t border-gray-300">
        <p id="authenticate-new-customer" class="text-lg mb-2">
            <strong>Commander en tant que nouveau client</strong>
        </p>

        <div class="block-content">
            <p class="mb-1">
                Créer un compte a de nombreux avantages :            </p>
            <ul class="list-disc pl-5">
                <li> Voir la commande et suivre l&#039;expédition</li>
                <li> Suivre l&#039;historique des commandes</li>
                <li> Commander plus rapidement</li>
            </ul>
            <div class="actions-toolbar mt-6 mb-2">
                <a href="https://www.mesrideaux.fr/customer/account/create/"
                    class="inline-flex btn btn-primary">
                    Créer un compte                </a>
            </div>
        </div>
    </div>
</dialog>
<!-- /BLOCK authentication-popup -->    
</div>

</header><div class="top-container">
<nav class="breadcrumbs shadow-sm hidden&#x20;lg&#x3A;block" aria-label="Breadcrumb">
    <div class="container">
        <ol class="items list-reset py-4 rounded flex flex-wrap text-grey text-sm">
                            <li class="item flex home">
                                                    <a
                        href="https://www.mesrideaux.fr/"
                                                    aria-label="Aller&#x20;&#xE0;&#x20;la&#x20;page&#x20;d&#x27;accueil"
                                            >Accueil</a>
                                </li>
                                            <li class="item flex category20">
                                    <span aria-hidden="true" class="separator text-fg-secondary px-2">/</span>
                                                    <a
                        href="https://www.mesrideaux.fr/rideaux.html"
                                            >Rideaux</a>
                                </li>
                                            <li class="item flex product">
                                    <span aria-hidden="true" class="separator text-fg-secondary px-2">/</span>
                                                    <a
                        href="https://www.mesrideaux.fr/rideau-majorelle-sur-velours.html"
                        class="text-fg-secondary"
                        aria-current="page"
                    >RIDEAU MAJORELLE SUR VELOURS</a>
                                </li>
                                    </ol>
    </div>
</nav>

    <script type="application/ld+json">
        { "@context": "https://schema.org", "@type": "BreadcrumbList", "itemListElement": [{"@type":"ListItem","position":1,"item":{"@id":"https:\/\/www.mesrideaux.fr\/","name":"Accueil"}},{"@type":"ListItem","position":2,"item":{"@id":"https:\/\/www.mesrideaux.fr\/rideaux.html","name":"Rideaux"}},{"@type":"ListItem","position":3,"item":{"@id":"https:\/\/www.mesrideaux.fr\/rideau-majorelle-sur-velours.html","name":"RIDEAU MAJORELLE SUR VELOURS"}}] }
    </script>
</div><main id="maincontent" class="page-main"><div id="contentarea" tabindex="-1"></div>
<div class="page messages"><script>
        function initMessages() {
        "use strict";
        return {
            messages: window.mageMessages || [],
            isEmpty() {
                return this.messages.reduce(
                    function (isEmpty, message) {
                        return isEmpty && message === undefined
                    }, true
                )
            },
            hasMessages() {
                return !this.isEmpty();
            },
            hasMessage() {
                return !!this.message;
            },
            removeMessage() {
                this.messages[this.index] = undefined;
            },
            addMessages(messages, hideAfter) {
                messages.map((message) => {
                    if (!message.text || !message.text.trim()) return;
                    this.messages = this.messages.concat(message);
                    if (hideAfter === undefined && message.type === 'success' && window.defaultSuccessMessageTimeout) {
                        hideAfter = window.defaultSuccessMessageTimeout;
                    }
                    if (hideAfter) {
                        this.setHideTimeOut(this.messages.length -1, hideAfter);
                    }
                });
            },
            setHideTimeOut(messageIndex, hideAfter) {
                setTimeout((messageIndex) => {
                    this.messages[messageIndex] = undefined;
                }, hideAfter, messageIndex);
            },
            eventListeners: {
                ['@messages-loaded.window'](event) {
                    this.addMessages(event.detail.messages, event.detail.hideAfter)
                },
                ['@private-content-loaded.window'](event) {
                    const data = event.detail.data;
                    if (
                        data.messages &&
                        data.messages.messages &&
                        data.messages.messages.length
                    ) {
                        this.addMessages(data.messages.messages);
                    }
                },
                ['@clear-messages.window']() {
                    this.messages = [];
                },
                ['@pageshow.window'](event) {
                    if (event.persisted) {
                        this.messages = [];
                    };
                }
            },
            getMessageUiId() {
                return 'message-' + this.message.type;
            }
        }
    }

    window.addEventListener('alpine:init', () => Alpine.data('initMessages', initMessages), {once: true})
</script>
<section id="messages"
         x-data="initMessages"
         x-bind="eventListeners"
         role="alert"
>
    <template x-if="hasMessages">
        <div class="w-full">
            <div class="messages container mx-auto py-3">
                <template x-for="(message, index) in messages" :key="index">
                    <div>
                        <template x-if="hasMessage">
                            <div class="message"
                                 :class="message.type"
                                 :ui-id="getMessageUiId"
                            >
                                <span x-html="message.text"></span>
                                <button
                                    type="button"
                                    class="text-gray-600 hover:text-black"
                                    aria-label="Close message"
                                    @click.prevent="removeMessage"
                                >
                                    <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="stroke-current" 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>
            </div>
        </div>
    </template>
</section>
</div>    <div class="container&#x20;flex&#x20;flex-col&#x20;md&#x3A;flex-row&#x20;flex-wrap">
        <h1            class="page-title text-3xl&#x20;font-semibold&#x20;mb-8&#x20;text-center&#x20;md&#x3A;sr-only"
            itemprop=name            data-ui-id="page-title-wrapper"
        >
            RIDEAU MAJORELLE SUR VELOURS        </h1>
            </div>
<div class="columns"><div class="column main"><div class="product-info-main"><div class="container">
<section
    class="columns-infos"
    aria-label="Info&#x20;produit"
>

        
<div
    id="gallery"
    x-data="initGallery()"
    x-bind="eventListeners" 
>
    <div
        :class="{            'gallery-fullscreen w-full h-full min-h-0 fixed inset-0 bg-white z-50 flex flex-col mb-0': fullscreen,            'mb-6': !fullscreen        }"
        class="product-gallery"
        :role="fullscreen ? 'dialog' : false"
        :aria-modal="fullscreen"
        :aria-label="fullscreen ? 'Gallery\u0020modal\u0020fullscreen' : false"
    >
        <div
            class="relative w-full"
            :class="fullscreen ? 'flex-1 min-h-0 self-stretch flex flex-col' : 'self-center'"
             @touchstart.passive="handleTouchStart"
             @touchmove.passive="handleTouchMove"
             x-transition:enter="ease-out duration-500"
             x-transition:enter-start="opacity-0"
             x-transition:enter-end="opacity-100"
        >
            <div
                id="gallery-main"
                class="relative"
                :class="{ 'flex-1 min-h-0': fullscreen }"
                aria-live="polite"
                aria-atomic="true"
            >
                                <img
                    alt="RIDEAU&#x20;MAJORELLE&#x20;SUR&#x20;VELOURS"
                    title="RIDEAU&#x20;MAJORELLE&#x20;SUR&#x20;VELOURS"
                    class="object-contain object-center w-full h-auto"
                    :class="fullscreen ? 'invisible max-h-[75vh]' : 'invisible'"
                    src="https://cdn4.mesrideaux.fr/catalog/product/cache/207e23213cf636ccdef205098cf3c8a3/r/i/rideau-majorelle-rose-fond-creme-sur-velours-vue-large_2.webp"
                    width="700"
                    height="700"
                    itemprop="image"
                >
                <template x-for="(image, index) in images" :key="index">
                    <img
                        :alt="image.caption || 'RIDEAU\u0020MAJORELLE\u0020SUR\u0020VELOURS'"
                        :title="image.caption || 'RIDEAU\u0020MAJORELLE\u0020SUR\u0020VELOURS'"
                        class="absolute inset-0 object-contain object-center w-full m-auto"
                        :class="{ 'max-h-[75vh]': fullscreen }"
                        width="700"
                        height="700"
                        :loading="active !== index ? 'lazy' : 'eager'"
                        :src="fullscreen ? image.full : image.img"
                        x-transition.opacity.duration.500ms
 x-show="active === index"
                    >
                </template>
                <button
                    type="button"
                    class="absolute inset-0 w-full outline-offset-2"
                    aria-label="Click&#x20;to&#x20;view&#x20;image&#x20;in&#x20;fullscreen"
                    x-ref="galleryFullscreenBtn"
                    x-show="!fullscreen && images[active].type !== 'video'"
                    x-cloak
 @click="openFullscreen()"
                    @keydown.enter="openFullscreen()"
                ></button>
                <button
                    type="button"
                    class="group absolute inset-0 outline-offset-2 grid place-items-center"
                    aria-label="Play&#x20;video"
                    x-show="images[active].type === 'video' && !activeVideoType"
                    x-cloak
 @click="activateVideo()"
                    @keydown.enter="activateVideo()"
                >
                    <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 20 20" fill="currentColor" class="stroke-white/75 fill-black/20 transition ease-in group-hover:scale-110 md:w-24 md:h-24" width="44" height="44" aria-hidden="true">
  <path fill-rule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zM9.555 7.168A1 1 0 008 8v4a1 1 0 001.555.832l3-2a1 1 0 000-1.664l-3-2z" clip-rule="evenodd"/>
</svg>
                </button>
                <div class="absolute inset-0 hidden w-full h-full bg-white nonmobile"
                     :class="{ 'hidden': activeVideoType !== 'youtube' }"
                     x-transition.opacity.duration.500ms
 x-show="images[active].type === 'video' && activeVideoType === 'youtube'"
                >
                    <div id="youtube-player" class="w-full h-full"></div>
                </div>
                <div class="absolute inset-0 hidden w-full h-full bg-white"
                     :class="{ 'hidden': activeVideoType !== 'vimeo' }"
                     x-transition.opacity.duration.500ms
 x-show="images[active].type === 'video' && activeVideoType === 'vimeo'"
                >
                    <div id="vimeo-player" class="w-full h-full"></div>
                </div>
            </div>
        </div>

        <div @resize.window.debounce="calcPageSize(); $nextTick(() => calcActive())">
            <div
                id="thumbs"
                class="flex items-center gap-4"
                :class="{ 'fixed justify-center bottom-0 left-0 right-0': fullscreen, 'mx-6' : fullscreen && !isSlider}"
                
                x-show="images.length > 1"
                x-cloak
>
                <button
                    type="button"
                    aria-label="Pr&#xE9;c&#xE9;dent"
                    tabindex="-1"
                    class="p-2.5 flex items-center justify-center self-stretch text-black outline-none focus:outline-none flex-none"
                    :class="{ 'opacity-25 pointer-events-none' : isSliderStart, 'hidden' : !isSlider }"
                    @click="scrollPrevious"
                ><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" width="24" height="24" aria-hidden="true">
  <path stroke-linecap="round" stroke-linejoin="round" d="M15 19l-7-7 7-7"/>
</svg>
</button>
                <div class="js_thumbs_slides thumbs-wrapper relative flex flex-nowrap w-full min-w-0 overflow-auto js_slides snap"
                     x-ref="jsThumbSlides"
                     @scroll.debounce="calcPageSize(); calcActive(); calcScrollStartEnd()"
                >
                    <template x-for="(image, index) in images" :key="index">
                        <div class="js_thumbs_slide flex shrink-0 mb-2 mr-2 lg:mr-4 last:mr-0">
                            <button
                                type="button"
                                @click.prevent="setActive(index);"
                                class="relative block  hover:border-primary focus:border-primary"
                                :class="{'border-primary': active === index}"
                            >
                                <span class="sr-only">
                                    View larger image                                </span>
                                <img
                                    :src="image.thumb"
                                    :alt="image.caption || 'RIDEAU\u0020MAJORELLE\u0020SUR\u0020VELOURS\u0020thumbnail'"
                                    :title="image.caption || 'RIDEAU\u0020MAJORELLE\u0020SUR\u0020VELOURS\u0020thumbnail'"
                                    width="90"
                                    height="90"
                                >
                                <span
                                    class="absolute inset-0 grid place-items-center"
                                    x-show="image.type === 'video'"
                                >
                                    <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="stroke-white/75 fill-black/20" width="44" height="44" aria-hidden="true">
  <path stroke-linecap="round" stroke-linejoin="round" d="M15 10l4.553-2.276A1 1 0 0121 8.618v6.764a1 1 0 01-1.447.894L15 14M5 18h8a2 2 0 002-2V8a2 2 0 00-2-2H5a2 2 0 00-2 2v8a2 2 0 002 2z"/>
</svg>
                                </span>
                            </button>
                        </div>
                    </template>
                </div>
                <button
                    type="button"
                    x-show="images.length > 1"
                    x-cloak
 aria-label="Suivant"
                    tabindex="-1"
                    class="p-2.5 flex items-center justify-center self-stretch text-black outline-none focus:outline-none flex-none"
                    :class="{ 'opacity-25 pointer-events-none' : isSliderEnd, 'hidden' : !isSlider }"
                    @click="scrollNext"
                ><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" width="24" height="24" aria-hidden="true">
  <path stroke-linecap="round" stroke-linejoin="round" d="M9 5l7 7-7 7"/>
</svg>
</button>
            </div>
        </div>
        <div class="absolute top-0 right-0 pt-4 pr-4">
            <button @click="closeFullScreen()"
                    type="button"
                    class="hidden text-gray-500 p-3 hover:text-gray-600 focus:text-gray-600                        transition ease-in-out duration-150"
                    :class="{ 'hidden': !fullscreen, 'block': fullscreen }"
                    aria-label="Close&#x20;fullscreen"
            >
                <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" width="24" height="24" aria-hidden="true">
  <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"/>
</svg>
            </button>
        </div>
    </div>
    
                    <div class="mb-4 flex flex-wrap gap-2 items-center">
            <div class="" title="Commande&#x20;&#xE9;chantillon">
                <button
                    type="submit"
                    form="product_addtocart_form"
                    name="sampleorder"
                    title="Commande&#x20;&#xE9;chantillon"
                    class="flex justify-between btn btn-underline"
                    id="product-sample-button"
                    value="sampleorder"
                    x-on:click="$dispatch('hyva-sample-order', { price: '' })"
                >
                                        <svg width="32" height="32" viewbox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
                        <rect width="32" height="32" fill="url(#pattern0_2001_1435)"/>
                        <defs>
                        <pattern id="pattern0_2001_1435" patterncontentunits="objectBoundingBox" width="1" height="1">
                        <use xlink:href="#image0_2001_1435" transform="scale(0.03125)"/>
                        </pattern>
                        <image id="image0_2001_1435" width="32" height="32" preserveaspectratio="none" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAAuQAAALkB4qdB6AAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAALsSURBVFiFxdZLiFdVHAfwz0ks84VoJpovdKIMbEZGDFwEoeSqQgUFSaJ2Bu0KWvTY9HAxQbXISApBGMMHCG1a1MJFGBriQlGIwEeSRtCAaZOjXhf3XOZ4597//16d9MBvcc75/X7f7znn9zghyzL3czxQXgghhPtCIITwegjhCEZCCJdCCIMhhCX3gkTAt8gqZBhbsiwzHoJp6MXCZM2WEuhP+Ku09t5dAk/FAP5NfP6MHjicLK6JBhPwNm4mezvuEHwBjtfc8Hb4I05OVRhvwJXEYH1L8FWJ/1Su443iCX6Ni/9gdoWTlTEWMlzC5Ibgm0tXXsgQ1qUx8HmyeRAPVzj7LNFZ0AD8/dLzFfIblpV0PYrzidIRzC0pfZjsL+0APAl7at77EB4ZYxMNV+Biovw71sVgXIkzyd67NeBzYmRXgX+DByvtukTrUI3DXXgose3FuQq9G3ir43OVTjFFfVFK5STmR5sXcblC5zJe6BovNdf5FL7CD/gCn2AkOv4e06Pem/GUZfCzeLpRtrTI6efl1WwCJuJreQpfKIEfxpymfkORCk1HCGEWDsTpc/KGdgqPYxCvxRt8IuociDHSE+d78QwWofkNRKJPGi1ce5L1Q3gnmX+a3MgMfJnMJ0njrAX4WvydOLqGHdiJjVFnnrxoTW/stwZsWWT9YwQZMBqEqVxAf7TpT+LhBBa3JmA0DavKaFl+wbxotwFXS/t/YnVjAngMx0pO6grRPklTQp/by3khw3i5KwEsd3s6dSrFA+TZU7q9uThaQ/iDKpsiA2fLC0eh3K0Z9XcI1MnY3+HWqjpt63a8vEu2BHxcQ+JoxeFafUiGMLNh2r6C/ypInEdfSqDNl+zVpvkd7Z819oNbHPalgkDTT+lgG/CERA9OV5C4IS/bNpU2qr7lH9VFcUMSM+RddSQB/w6zCoXdNUEzjK13ClxDZIWkW6ab2+QpeF3++x3EkvECr5Mx7TiEELLy4v84Wv8HxnvcAgz17yw0qX/7AAAAAElFTkSuQmCC"/>
                        </defs>
                    </svg>
                    <span class="lg:block">
                        Commander un échantillon                    </span>
                </button>
            </div>
        </div>
    
   

</div>

<script>
    function initGallery () {
        let touchXDown, touchYDown;

        return {
            "active": 0,
            "videoData": {},
            "activeVideoType": false,
            "autoplayVideo": false,
            "loopVideo": false,
            "relatedVideos": false,
            "vimeoPlayer": null,
            "fullscreen": false,
            "isSlider": false,
            "initialImages": [{"thumb":"https:\/\/cdn4.mesrideaux.fr\/catalog\/product\/cache\/3380650127d143eec657262365bd2ea0\/r\/i\/rideau-majorelle-rose-fond-creme-sur-velours-vue-large_2.webp","img":"https:\/\/cdn4.mesrideaux.fr\/catalog\/product\/cache\/207e23213cf636ccdef205098cf3c8a3\/r\/i\/rideau-majorelle-rose-fond-creme-sur-velours-vue-large_2.webp","full":"https:\/\/cdn4.mesrideaux.fr\/catalog\/product\/cache\/74c1057f7991b4edb2bc7bdaa94de933\/r\/i\/rideau-majorelle-rose-fond-creme-sur-velours-vue-large_2.webp","caption":"RIDEAU MAJORELLE SUR VELOURS","position":"0","isMain":true,"type":"image","videoUrl":null},{"thumb":"https:\/\/cdn4.mesrideaux.fr\/catalog\/product\/cache\/3380650127d143eec657262365bd2ea0\/r\/i\/rideau-majorelle-rose-fond-creme-sur-velours-gros-plan_2.webp","img":"https:\/\/cdn4.mesrideaux.fr\/catalog\/product\/cache\/207e23213cf636ccdef205098cf3c8a3\/r\/i\/rideau-majorelle-rose-fond-creme-sur-velours-gros-plan_2.webp","full":"https:\/\/cdn4.mesrideaux.fr\/catalog\/product\/cache\/74c1057f7991b4edb2bc7bdaa94de933\/r\/i\/rideau-majorelle-rose-fond-creme-sur-velours-gros-plan_2.webp","caption":"RIDEAU MAJORELLE SUR VELOURS","position":"1","isMain":false,"type":"image","videoUrl":null},{"thumb":"https:\/\/cdn4.mesrideaux.fr\/catalog\/product\/cache\/3380650127d143eec657262365bd2ea0\/r\/i\/rideau-majorelle-rose-fond-creme-sur-velours-photo-tissu_2.webp","img":"https:\/\/cdn4.mesrideaux.fr\/catalog\/product\/cache\/207e23213cf636ccdef205098cf3c8a3\/r\/i\/rideau-majorelle-rose-fond-creme-sur-velours-photo-tissu_2.webp","full":"https:\/\/cdn4.mesrideaux.fr\/catalog\/product\/cache\/74c1057f7991b4edb2bc7bdaa94de933\/r\/i\/rideau-majorelle-rose-fond-creme-sur-velours-photo-tissu_2.webp","caption":"RIDEAU MAJORELLE SUR VELOURS","position":"2","isMain":false,"type":"image","videoUrl":null}],
            "images": [{"thumb":"https:\/\/cdn4.mesrideaux.fr\/catalog\/product\/cache\/3380650127d143eec657262365bd2ea0\/r\/i\/rideau-majorelle-rose-fond-creme-sur-velours-vue-large_2.webp","img":"https:\/\/cdn4.mesrideaux.fr\/catalog\/product\/cache\/207e23213cf636ccdef205098cf3c8a3\/r\/i\/rideau-majorelle-rose-fond-creme-sur-velours-vue-large_2.webp","full":"https:\/\/cdn4.mesrideaux.fr\/catalog\/product\/cache\/74c1057f7991b4edb2bc7bdaa94de933\/r\/i\/rideau-majorelle-rose-fond-creme-sur-velours-vue-large_2.webp","caption":"RIDEAU MAJORELLE SUR VELOURS","position":"0","isMain":true,"type":"image","videoUrl":null},{"thumb":"https:\/\/cdn4.mesrideaux.fr\/catalog\/product\/cache\/3380650127d143eec657262365bd2ea0\/r\/i\/rideau-majorelle-rose-fond-creme-sur-velours-gros-plan_2.webp","img":"https:\/\/cdn4.mesrideaux.fr\/catalog\/product\/cache\/207e23213cf636ccdef205098cf3c8a3\/r\/i\/rideau-majorelle-rose-fond-creme-sur-velours-gros-plan_2.webp","full":"https:\/\/cdn4.mesrideaux.fr\/catalog\/product\/cache\/74c1057f7991b4edb2bc7bdaa94de933\/r\/i\/rideau-majorelle-rose-fond-creme-sur-velours-gros-plan_2.webp","caption":"RIDEAU MAJORELLE SUR VELOURS","position":"1","isMain":false,"type":"image","videoUrl":null},{"thumb":"https:\/\/cdn4.mesrideaux.fr\/catalog\/product\/cache\/3380650127d143eec657262365bd2ea0\/r\/i\/rideau-majorelle-rose-fond-creme-sur-velours-photo-tissu_2.webp","img":"https:\/\/cdn4.mesrideaux.fr\/catalog\/product\/cache\/207e23213cf636ccdef205098cf3c8a3\/r\/i\/rideau-majorelle-rose-fond-creme-sur-velours-photo-tissu_2.webp","full":"https:\/\/cdn4.mesrideaux.fr\/catalog\/product\/cache\/74c1057f7991b4edb2bc7bdaa94de933\/r\/i\/rideau-majorelle-rose-fond-creme-sur-velours-photo-tissu_2.webp","caption":"RIDEAU MAJORELLE SUR VELOURS","position":"2","isMain":false,"type":"image","videoUrl":null}],
            "appendOnReceiveImages": false,
            "activeSlide": 0,
            "isSliderStart": true,
            "isSliderEnd": false,
            "itemCount": 0,
            "pageSize": 4,
            "pageFillers": 0,
            "focusTrapListener": null,
            init() {
                this.initActive();
                this.$nextTick(() => {
                    this.calcPageSize();
                    this.calcScrollStartEnd();
                });

                this.$watch('fullscreen', open => {
                    this.$nextTick(() => {
                        this.scrollLock(open);

                        window.requestAnimationFrame(() => {
                            this.calcPageSize()
                        });
                    });
                })
            },
            receiveImages(images) {
                if (this.appendOnReceiveImages) {
                    const initialUrls = this.initialImages.map(image => image.full);
                    const newImages = images.filter(image => ! initialUrls.includes(image.full));
                    this.images = [].concat(this.initialImages, newImages);
                    this.setActive(newImages.length ? this.initialImages.length : 0);
                } else {
                    this.images = images;
                    // Cosuite / options image (emiproOptionImage) is appended last; without this,
                    // configurable products keep active=0 (appendOnReceiveImages is false for them)
                    // so the option appears in thumbs but not as the main slide.
                    let optionImageIndex = -1;
                    let i;
                    for (i = 0; i < images.length; i++) {
                        if (images[i] && images[i].emiproOptionImage) {
                            optionImageIndex = i;
                        }
                    }
                    if (optionImageIndex !== -1) {
                        this.setActive(optionImageIndex);
                    } else {
                        this.setActive(0);
                    }
                }

                this.$nextTick(() => {
                    this.scrollTo(this.active);
                });

                this.itemCount = this.images.length;
            },
            resetGallery() {
                this.images = this.initialImages;
                this.itemCount = this.images.length;
                this.initActive();
                this.$nextTick(() => {
                    this.scrollTo(this.active);
                });
            },
            initActive() {
                let active = this.images.findIndex(function(image) {
                    return image.isMain === true
                });
                if (active === -1) {
                    active = 0;
                }
                this.setActive(active);
            },
            setActive(index) {
                this.active = index;
                this.activeVideoType = false;
                if (window.youtubePlayer) {
                    window.youtubePlayer.stopVideo();
                }
                if (this.vimeoPlayer) {
                    this.vimeoPlayer.contentWindow.postMessage(JSON.stringify({"method": "pause"}), "*");
                }
                if (this.images[index].type === 'video' && this.autoplayVideo) {
                    this.activateVideo();
                }
            },
            activateVideo() {
                const videoData = this.getVideoData();

                if (!videoData) { return }

                this.activeVideoType = videoData.type;

                if (videoData.type === "youtube") {
                    if (!window.youtubePlayer) {
                        this.initYoutubeAPI(videoData);
                    } else {
                        window.youtubePlayer.loadVideoById(videoData.id);
                    }

                } else if (videoData.type === "vimeo") {
                    this.initVimeoVideo(videoData);
                }
            },
            getVideoData() {
                const videoUrl = this.images[this.active] && this.images[this.active].videoUrl;

                if (!videoUrl) { return }

                let id,
                    type,
                    youtubeRegex,
                    vimeoRegex,
                    useYoutubeNoCookie = false;

                if (videoUrl.match(/youtube\.com|youtu\.be|youtube-nocookie.com/)) {
                    id = videoUrl.replace(/^\/(embed\/|v\/)?/, '').replace(/\/.*/, '');
                    type = 'youtube';

                    youtubeRegex = /^.*(?:(?:youtu\.be\/|v\/|vi\/|u\/\w\/|embed\/)|(?:(?:watch)?\?v(?:i)?=|\&v(?:i)?=))([^#\&\?]*).*/;
                    id = videoUrl.match(youtubeRegex)[1];

                    if (videoUrl.match(/youtube-nocookie.com/)) {
                        useYoutubeNoCookie = true;
                    }
                } else if (videoUrl.match(/vimeo\.com/)) {
                    type = 'vimeo';
                    vimeoRegex = new RegExp(['https?:\\/\\/(?:www\\.|player\\.)?vimeo.com\\/(?:channels\\/(?:\\w+\\/)',
                        '?|groups\\/([^\\/]*)\\/videos\\/|album\\/(\\d+)\\/video\\/|video\\/|)(\\d+)(?:$|\\/|\\?)'
                    ].join(''));
                    id = videoUrl.match(vimeoRegex)[3];
                }

                return id ? {
                    id: id, type: type, useYoutubeNoCookie: useYoutubeNoCookie
                } : false;
            },
            initYoutubeAPI(videoData) {
                if (document.getElementById('loadYoutubeAPI')) {
                    return;
                }
                const params = {
                    "autoplay": true
                };
                const loadYoutubeAPI = document.createElement('script');
                loadYoutubeAPI.src = 'https://www.youtube.com/iframe_api';
                loadYoutubeAPI.id = 'loadYoutubeAPI';
                const firstScriptTag = document.getElementsByTagName('script')[0];
                firstScriptTag.parentNode.insertBefore(loadYoutubeAPI, firstScriptTag);

                const host = (videoData.useYoutubeNoCookie) ?
                    'https://www.youtube-nocookie.com' :
                    'https://www.youtube.com';

                if (!this.relatedVideos) {
                    params.rel = 0;
                }
                const fireYoutubeAPI = document.createElement('script');
                fireYoutubeAPI.innerHTML = `function onYouTubeIframeAPIReady() {
                    window.youtubePlayer = new YT.Player('youtube-player', {
                        host: '${host}',
                        videoId: '${videoData.id}',
                        playerVars: ${JSON.stringify(params)},
                    });
                }`;
                firstScriptTag.parentNode.insertBefore(fireYoutubeAPI, firstScriptTag);
            },
            initVimeoVideo(videoData) {
                let additionalParams = '&autoplay=1';
                let src = '';

                const timestamp = new Date().getTime();
                const vimeoContainer = document.getElementById("vimeo-player");
                const videoId = videoData.id;

                if (!vimeoContainer || !videoId) return;

                if (this.loopVideo) {
                    additionalParams += '&loop=1';
                }
                src = 'https://player.vimeo.com/video/' +
                    videoId + '?api=1&player_id=vimeo' +
                    videoId +
                    timestamp +
                    additionalParams;
                vimeoContainer.innerHTML =
                    `<iframe id="${'vimeo' + videoId + timestamp}"
                        src="${src}"
                        width="640" height="360"
                        webkitallowfullscreen
                        mozallowfullscreen
                        allowfullscreen
                        referrerPolicy="origin"
                        allow="autoplay"
                        class="object-center w-full h-full object-fit"
                     ></iframe>`;

                this.vimeoPlayer = vimeoContainer.childNodes[0];
            },
            getSlider() {
                return this.$refs.jsThumbSlides;
            },
            calcPageSize() {
                const slider = this.getSlider();
                if (slider) {
                    const slideEl = slider.querySelector('.js_thumbs_slide');
                    if (!slideEl) return;

                    const isVertical = slider.scrollHeight > slider.scrollWidth;
                    const styles = window.getComputedStyle(slideEl);
                    const margin = parseInt(isVertical ? styles.marginBottom : styles.marginRight);
                    const itemSize = isVertical ? slideEl.clientHeight : slideEl.clientWidth;
                    const viewportSize = isVertical ? slider.clientHeight : slider.clientWidth;

                    this.itemCount = slider.querySelectorAll('.js_thumbs_slide').length;
                    this.pageSize = Math.max(1, Math.round(viewportSize / (itemSize + margin)));
                    this.pageFillers = (
                        this.pageSize * Math.ceil(this.itemCount / this.pageSize)
                    ) - this.itemCount;

                    this.isSlider = this.itemCount > this.pageSize;
                }
            },
            calcScrollStartEnd() {
                const slider = this.getSlider();
                if (slider) {
                    const isVertical = slider.scrollHeight > slider.scrollWidth;
                    if (isVertical) {
                        this.isSliderStart = slider.scrollTop === 0;
                        this.isSliderEnd = Math.ceil(slider.scrollTop + slider.offsetHeight) >= slider.scrollHeight;
                    } else {
                        this.isSliderStart = slider.scrollLeft === 0;
                        this.isSliderEnd = Math.ceil(slider.scrollLeft + slider.offsetWidth) >= slider.scrollWidth;
                    }
                }
            },
            calcActive() {
                const slider = this.getSlider();
                if (slider) {
                    const isVertical = slider.scrollHeight > slider.scrollWidth;
                    const sliderItems = this.itemCount + this.pageFillers;
                    const trackSize = isVertical ? slider.scrollHeight : slider.scrollWidth;
                    const position = isVertical ? slider.scrollTop : slider.scrollLeft;
                    const calculatedActiveSlide = position / (trackSize / sliderItems);
                    this.activeSlide = Math.round(calculatedActiveSlide / this.pageSize) * this.pageSize;
                }
            },
            scrollPrevious() {
                this.scrollTo(this.activeSlide - this.pageSize);
            },
            scrollNext() {
                this.scrollTo(this.activeSlide + this.pageSize);
            },
            scrollTo(idx) {
                const slider = this.getSlider();
                if (slider) {
                    const isVertical = slider.scrollHeight > slider.scrollWidth;
                    const trackSize = isVertical ? slider.scrollHeight : slider.scrollWidth;
                    const slideSize = trackSize / (this.itemCount + this.pageFillers);
                    if (isVertical) {
                        slider.scrollTop = Math.floor(slideSize) * idx;
                    } else {
                        slider.scrollLeft = Math.floor(slideSize) * idx;
                    }
                    this.activeSlide = idx;
                }
            },
            setActiveAndScrollTo(index) {
                this.setActive(index)
                if (this.isSlider) {
                    this.scrollTo(index);
                }
            },
            eventListeners: {
                ['@keydown.window.escape']() {
                    if (!this.fullscreen) return;
                    this.closeFullScreen()
                },
                ['@update-gallery.window'](event) {
                    this.receiveImages(event.detail);
                },
                ['@reset-gallery.window'](event) {
                    this.resetGallery();
                },
                ['@keyup.arrow-right.window']() {
                    if (!this.fullscreen) return;
                    this.nextItem();
                },
                ['@keyup.arrow-left.window']() {
                    if (!this.fullscreen) return;
                    this.previousItem();
                },
            },
            scrollLock(use = true) {
                document.body.style.overflow = use ? "hidden" : "";
            },
            openFullscreen() {
                this.fullscreen = true;

                hyva.trapFocus(this.$root);
            },
            closeFullScreen() {
                const setFocusTo = this.$refs.galleryFullscreenBtn;
                this.fullscreen = false;
                hyva.releaseFocus(this.$root);
                this.$nextTick(() => {
                    this.calcPageSize();
                    setFocusTo && setFocusTo.focus()
                });
            },
            handleTouchStart(event) {
                if (
                    this.images.length <= 1 ||
                    event.touches.length > 1 ||
                    (window.visualViewport && window.visualViewport.scale > 1.01)
                ) return;
                const firstTouch = event.touches[0];

                touchXDown = firstTouch.clientX;
                touchYDown = firstTouch.clientY;
            },
            handleTouchMove(event) {
                if (
                    this.images.length <= 1 ||
                    event.touches.length > 1 ||
                    (window.visualViewport && window.visualViewport.scale > 1.01) ||
                    !touchXDown ||
                    !touchYDown
                ) return;

                const xDiff = touchXDown - event.touches[0].clientX;
                const yDiff = touchYDown - event.touches[0].clientY;

                if (Math.abs(xDiff) > Math.abs(yDiff)) {
                    const newIndex = xDiff > 0 ?  this.getNextIndex() : this.getPreviousIndex();
                    this.setActiveAndScrollTo(newIndex)
                }
                touchXDown = touchYDown = null;
            },
            getPreviousIndex() {
                return this.active > 0 ? this.active - 1 : this.itemCount - 1;
            },
            getNextIndex() {
                return this.active + 1 === this.itemCount ? 0 : this.active + 1;
            },
            previousItem() {
                if (this.active === 0) return;
                this.setActiveAndScrollTo(this.active - 1);
            },
            nextItem() {
                if ((this.active + 1) === this.itemCount) return;
                this.setActiveAndScrollTo(this.active + 1);
            },
        }
     }
</script>

        <div class="card mb-0">
        <div class="hidden&#x20;mb-6&#x20;md&#x3A;block">
        <div            class="page-title text-3xl&#x20;font-bold&#x20;mb-6"
            aria-hidden=true            data-ui-id="page-title-wrapper"
        >
            RIDEAU MAJORELLE SUR VELOURS        </div>
            </div>

    <!-- <div class="my-2 flex"> -->
            <!-- </div> -->

            <!--<div class="mb-4 leading-relaxed product-description prose">--><!--</div>-->
    
    <!-- <div class="flex flex-col sm:flex-row justify-between my-4">
        <div class="inline-flex flex-wrap items-center gap-x-6">
                                </div>
            </div> -->

    <!-- <dl id="product-details">
                                    <div class="flex border-t border-gray-300 py-2 last:mb-6 last:border-b attribute-">
                    <dt class="w-1/2 text-left text-gray-700 product-detail-label">
                                            </dt>
                    <dd class="w-1/2 ml-2 text-left text-gray-900 product-detail-value">
                                            </dd>
                </div>
                        </dl> -->

        <form method="post"
          action="https://www.mesrideaux.fr/checkout/cart/add/uenc/aHR0cHM6Ly93d3cubWVzcmlkZWF1eC5mci9yaWRlYXUtbWFqb3JlbGxlLXN1ci12ZWxvdXJzLmh0bWw_Y29sb3Jpcz0xMTYw/product/35439/"
          class="mb-0"
          id="product_addtocart_form"
                        enctype="multipart/form-data"
                                                                      data-sku="2503908-thevenon-rideau-1"
                            >
        <input type="hidden" name="product" value="35439">
        <input type="hidden" name="selected_configurable_option" value="">
        <input type="hidden" name="related_product" id="related-products-field" value="">
        <input type="hidden" name="item"  value="35439">
        <input name="form_key" type="hidden" value="fjQIJcI8gxUDUYBO" />            <script>
        function initConfigurableSwatchOptions_35439() {
            const configurableOptionsComponent = initConfigurableOptions(
                '35439',
                {"attributes":{"221":{"id":"221","code":"colorie","label":"Coloris","options":[{"id":"1160","label":"Camel fond bleu roi sur velours","products":["26228"]},{"id":"1161","label":"Jaune fond canard sur velours","products":["26229"]},{"id":"1165","label":"Rose fond creme sur velours","products":["26227"]}],"position":"0"}},"template":"<%- data.price %>\u00a0\u20ac","currencyFormat":"%s\u00a0\u20ac","optionPrices":{"26227":{"baseOldPrice":{"amount":13.43},"oldPrice":{"amount":16.116001},"basePrice":{"amount":34.2465},"finalPrice":{"amount":41.100001},"tierPrices":[],"msrpPrice":{"amount":0}},"26228":{"baseOldPrice":{"amount":13.43},"oldPrice":{"amount":16.116001},"basePrice":{"amount":34.2465},"finalPrice":{"amount":41.100001},"tierPrices":[],"msrpPrice":{"amount":0}},"26229":{"baseOldPrice":{"amount":13.43},"oldPrice":{"amount":16.116001},"basePrice":{"amount":34.2465},"finalPrice":{"amount":41.100001},"tierPrices":[],"msrpPrice":{"amount":0}}},"priceFormat":{"pattern":"%s\u00a0\u20ac","precision":2,"requiredPrecision":2,"decimalSymbol":",","groupSymbol":"\u202f","groupLength":3,"integerRequired":false},"prices":{"baseOldPrice":{"amount":13.43},"oldPrice":{"amount":16.116001},"basePrice":{"amount":34.2465},"finalPrice":{"amount":41.100001}},"productId":"35439","chooseText":"Choisissez une option...","images":{"26227":[{"thumb":"https:\/\/cdn4.mesrideaux.fr\/catalog\/product\/cache\/3380650127d143eec657262365bd2ea0\/r\/i\/rideau-majorelle-rose-fond-creme-sur-velours-vue-large.webp","img":"https:\/\/cdn4.mesrideaux.fr\/catalog\/product\/cache\/207e23213cf636ccdef205098cf3c8a3\/r\/i\/rideau-majorelle-rose-fond-creme-sur-velours-vue-large.webp","full":"https:\/\/cdn4.mesrideaux.fr\/catalog\/product\/cache\/74c1057f7991b4edb2bc7bdaa94de933\/r\/i\/rideau-majorelle-rose-fond-creme-sur-velours-vue-large.webp","caption":null,"position":"2","isMain":true,"type":"image","videoUrl":null},{"thumb":"https:\/\/cdn4.mesrideaux.fr\/catalog\/product\/cache\/3380650127d143eec657262365bd2ea0\/r\/i\/rideau-majorelle-rose-fond-creme-sur-velours-gros-plan.webp","img":"https:\/\/cdn4.mesrideaux.fr\/catalog\/product\/cache\/207e23213cf636ccdef205098cf3c8a3\/r\/i\/rideau-majorelle-rose-fond-creme-sur-velours-gros-plan.webp","full":"https:\/\/cdn4.mesrideaux.fr\/catalog\/product\/cache\/74c1057f7991b4edb2bc7bdaa94de933\/r\/i\/rideau-majorelle-rose-fond-creme-sur-velours-gros-plan.webp","caption":null,"position":"3","isMain":false,"type":"image","videoUrl":null},{"thumb":"https:\/\/cdn4.mesrideaux.fr\/catalog\/product\/cache\/3380650127d143eec657262365bd2ea0\/r\/i\/rideau-majorelle-rose-fond-creme-sur-velours-photo-tissu.webp","img":"https:\/\/cdn4.mesrideaux.fr\/catalog\/product\/cache\/207e23213cf636ccdef205098cf3c8a3\/r\/i\/rideau-majorelle-rose-fond-creme-sur-velours-photo-tissu.webp","full":"https:\/\/cdn4.mesrideaux.fr\/catalog\/product\/cache\/74c1057f7991b4edb2bc7bdaa94de933\/r\/i\/rideau-majorelle-rose-fond-creme-sur-velours-photo-tissu.webp","caption":null,"position":"4","isMain":false,"type":"image","videoUrl":null}],"26228":[{"thumb":"https:\/\/cdn4.mesrideaux.fr\/catalog\/product\/cache\/3380650127d143eec657262365bd2ea0\/r\/i\/rideau-majorelle-camel-fond-bleu-roi-sur-velours-vue-large.webp","img":"https:\/\/cdn4.mesrideaux.fr\/catalog\/product\/cache\/207e23213cf636ccdef205098cf3c8a3\/r\/i\/rideau-majorelle-camel-fond-bleu-roi-sur-velours-vue-large.webp","full":"https:\/\/cdn4.mesrideaux.fr\/catalog\/product\/cache\/74c1057f7991b4edb2bc7bdaa94de933\/r\/i\/rideau-majorelle-camel-fond-bleu-roi-sur-velours-vue-large.webp","caption":null,"position":"1","isMain":true,"type":"image","videoUrl":null},{"thumb":"https:\/\/cdn4.mesrideaux.fr\/catalog\/product\/cache\/3380650127d143eec657262365bd2ea0\/r\/i\/rideau-majorelle-camel-fond-bleu-roi-sur-velours-gros-plan.webp","img":"https:\/\/cdn4.mesrideaux.fr\/catalog\/product\/cache\/207e23213cf636ccdef205098cf3c8a3\/r\/i\/rideau-majorelle-camel-fond-bleu-roi-sur-velours-gros-plan.webp","full":"https:\/\/cdn4.mesrideaux.fr\/catalog\/product\/cache\/74c1057f7991b4edb2bc7bdaa94de933\/r\/i\/rideau-majorelle-camel-fond-bleu-roi-sur-velours-gros-plan.webp","caption":null,"position":"2","isMain":false,"type":"image","videoUrl":null},{"thumb":"https:\/\/cdn4.mesrideaux.fr\/catalog\/product\/cache\/3380650127d143eec657262365bd2ea0\/r\/i\/rideau-majorelle-camel-fond-bleu-roi-sur-velours-photo-tissu.webp","img":"https:\/\/cdn4.mesrideaux.fr\/catalog\/product\/cache\/207e23213cf636ccdef205098cf3c8a3\/r\/i\/rideau-majorelle-camel-fond-bleu-roi-sur-velours-photo-tissu.webp","full":"https:\/\/cdn4.mesrideaux.fr\/catalog\/product\/cache\/74c1057f7991b4edb2bc7bdaa94de933\/r\/i\/rideau-majorelle-camel-fond-bleu-roi-sur-velours-photo-tissu.webp","caption":null,"position":"3","isMain":false,"type":"image","videoUrl":null}],"26229":[{"thumb":"https:\/\/cdn4.mesrideaux.fr\/catalog\/product\/cache\/3380650127d143eec657262365bd2ea0\/r\/i\/rideau-majorelle-jaune-fond-canard-sur-velours-vue-large.webp","img":"https:\/\/cdn4.mesrideaux.fr\/catalog\/product\/cache\/207e23213cf636ccdef205098cf3c8a3\/r\/i\/rideau-majorelle-jaune-fond-canard-sur-velours-vue-large.webp","full":"https:\/\/cdn4.mesrideaux.fr\/catalog\/product\/cache\/74c1057f7991b4edb2bc7bdaa94de933\/r\/i\/rideau-majorelle-jaune-fond-canard-sur-velours-vue-large.webp","caption":null,"position":"2","isMain":true,"type":"image","videoUrl":null},{"thumb":"https:\/\/cdn4.mesrideaux.fr\/catalog\/product\/cache\/3380650127d143eec657262365bd2ea0\/r\/i\/rideau-majorelle-jaune-fond-canard-sur-velours-gros-plan.webp","img":"https:\/\/cdn4.mesrideaux.fr\/catalog\/product\/cache\/207e23213cf636ccdef205098cf3c8a3\/r\/i\/rideau-majorelle-jaune-fond-canard-sur-velours-gros-plan.webp","full":"https:\/\/cdn4.mesrideaux.fr\/catalog\/product\/cache\/74c1057f7991b4edb2bc7bdaa94de933\/r\/i\/rideau-majorelle-jaune-fond-canard-sur-velours-gros-plan.webp","caption":null,"position":"3","isMain":false,"type":"image","videoUrl":null},{"thumb":"https:\/\/cdn4.mesrideaux.fr\/catalog\/product\/cache\/3380650127d143eec657262365bd2ea0\/r\/i\/rideau-majorelle-jaune-fond-canard-sur-velours-photo-tissu.webp","img":"https:\/\/cdn4.mesrideaux.fr\/catalog\/product\/cache\/207e23213cf636ccdef205098cf3c8a3\/r\/i\/rideau-majorelle-jaune-fond-canard-sur-velours-photo-tissu.webp","full":"https:\/\/cdn4.mesrideaux.fr\/catalog\/product\/cache\/74c1057f7991b4edb2bc7bdaa94de933\/r\/i\/rideau-majorelle-jaune-fond-canard-sur-velours-photo-tissu.webp","caption":null,"position":"4","isMain":false,"type":"image","videoUrl":null}]},"index":{"26227":{"221":"1165"},"26228":{"221":"1160"},"26229":{"221":"1161"}},"salable":[],"canDisplayShowOutOfStockStatus":false,"channel":"website","salesChannelCode":"base","sku":{"26227":"2503908-thevenon-rideau","26228":"2503909-thevenon-rideau","26229":"2503911-thevenon-rideau"},"offerSample":{"26227":"1","26228":"1","26229":"1"},"offerSampleCost":{"26227":"0","26228":"0","26229":"0"}}            );
            const swatchOptionsComponent = initSwatchOptions(
                {"221":{"1160":{"type":"1","value":"#567eb1","label":"Camel fond bleu roi sur velours"},"1161":{"type":"1","value":"#3e6177","label":"Jaune fond canard sur velours"},"1165":{"type":"1","value":"#f2e9e0","label":"Rose fond creme sur velours"},"additional_data":"{\"swatch_input_type\":\"visual\",\"update_product_preview_image\":\"0\",\"use_product_image_for_swatch\":\"0\"}"}}            );

            return Object.assign(
                configurableOptionsComponent,
                swatchOptionsComponent,
                {
                    getColorisOptionFromUrlParam(paramName) {
                        try {
                            const params = new URLSearchParams(window.location.search || '');
                            const value = params.get(paramName);
                            if (!value || !/^\d+$/.test(value)) {
                                return null;
                            }
                            // Les IDs d'options sont stockés en string dans optionConfig ;
                            // on conserve donc le type string pour les comparaisons strictes.
                            return value;
                        } catch (e) {
                            return null;
                        }
                    },
                    getColorisAttributeId() {
                        const attributes = this.optionConfig?.attributes || {};
                        const entries = Object.entries(attributes);
                        if (!entries.length) {
                            return null;
                        }

                        const found = entries.find(([, attributeData]) => {
                            const code = String(attributeData?.code || attributeData?.attribute_code || '').toLowerCase();
                            const label = String(attributeData?.label || '').toLowerCase();
                            return code === 'colorie'
                                || code === 'coloris'
                                || code === 'couleur'
                                || label.indexOf('coloris') !== -1
                                || label.indexOf('couleur') !== -1;
                        });

                        return found ? found[0] : null;
                    },
                    applyColorisOption(attributeId, optionId) {
                        if (!optionId) {
                            return false;
                        }

                        if (!this.optionIsEnabled(attributeId, optionId) || !this.optionIsActive(attributeId, optionId)) {
                            return false;
                        }

                        this.changeOption(attributeId, optionId);
                        return true;
                    },
                    applyColorisFromUrl() {
                        const attributeId = this.getColorisAttributeId();
                        if (!attributeId) {
                            return false;
                        }

                        const currentColoris = this.getColorisOptionFromUrlParam('current_coloris');
                        if (this.applyColorisOption(attributeId, currentColoris)) {
                            return true;
                        }

                        const suggestionColoris = this.getColorisOptionFromUrlParam('coloris');
                        return this.applyColorisOption(attributeId, suggestionColoris);
                    },
                    hasAttributeSelectionInUrl() {
                        try {
                            const params = new URLSearchParams(window.location.search || '');
                            if (params.has('coloris') || params.has('current_coloris')) {
                                return true;
                            }

                            const attributes = this.optionConfig?.attributes || {};

                            return Object.entries(attributes).some(([attributeId, attributeData]) => {
                                const code = String(attributeData?.code || attributeData?.attribute_code || '');
                                return params.has(attributeId)
                                    || params.has(`super_attribute[${attributeId}]`)
                                    || (code && params.has(code));
                            });
                        } catch (e) {
                            return false;
                        }
                    },
                    autoSelectFirstColorSwatch() {
                        if (this.hasAttributeSelectionInUrl()) {
                            return;
                        }

                        const attributeIds = Object.keys(this.optionConfig?.attributes || {});
                        if (!attributeIds.length) {
                            return;
                        }

                        const firstAttributeId = attributeIds[0];

                        if (this.selectedValues && this.selectedValues[firstAttributeId]) {
                            return;
                        }

                        const firstAttribute = this.optionConfig.attributes[firstAttributeId];
                        if (!firstAttribute || !Array.isArray(firstAttribute.options)) {
                            return;
                        }

                        const firstActiveOption = firstAttribute.options.find((option) =>
                            this.optionIsEnabled(firstAttributeId, option.id) &&
                            this.optionIsActive(firstAttributeId, option.id)
                        );

                        if (!firstActiveOption) {
                            return;
                        }

                        this.changeOption(firstAttributeId, firstActiveOption.id);
                    },
                    applyDefaultColorSelection() {
                        if (!this.applyColorisFromUrl()) {
                            this.autoSelectFirstColorSwatch();
                        }
                    }
                }
            );
        }
    </script>

    <div x-data="initConfigurableSwatchOptions_35439()"
         x-init="$nextTick(() => applyDefaultColorSelection())"
         @private-content-loaded.window="onGetCartData($event.detail.data)"
         class="relative mb-6"
         x-defer="intersect"
    >
        
        <div>
                                                                                <div class="swatch-attribute                            colorie">
                        <div class="flex flex-wrap flex-col sm:flex-row items-center py-4 sm:py-1 w-full border-gray-300">
                            <label
                                class="w-full  text-left label product-option-label"
                                id="attribute-label-35439-221"
                                aria-hidden="true"
                            >
                                <span class="label-text">Coloris :</span>
                                <span
                                    class="ml-2"
                                    x-text="getSwatchText(221, selectedValues[221])"
                                ></span>
                            </label>
                            <div class="w-full  text-left product-option-values">
                                <div
                                     class="flex items-center -mx-1 space-x-4 swatch-attribute-options mt-2"
                                     role="radiogroup"
                                     aria-label="Coloris"
                                >
                                    <template
                                        x-for="(item, index) in optionConfig.attributes[221].options"
                                        :key="item.id"
                                    >
                                        
<div x-id="['attribute-option-35439-'+item.id]">
    <template x-if="optionIsEnabled(221, item.id) && optionIsActive(221, item.id)">
        <label
            :for="$id('attribute-option-35439-'+item.id)"
            class="swatch-option relative cursor-pointer select-none bg-container-lighter product-option-value-label tete"
            :class="{                'border-container-lighter ring ring-primary/50':                    (selectedValues[221] === item.id),                'border-container-darker':                    (selectedValues[221] !== item.id),                '' : !isTextSwatch(221, item.id),                'border-container-lighter ring ring-primary/75' : focusedLabel === item.id            }"
            :style="getSwatchBackgroundStyle('221', item.id)                + (                    selectedValues[221] === item.id                    ? (                        getSwatchType(221, item.id) === 'color'                            ? (                                getSwatchConfig(221, item.id) && getSwatchConfig(221, item.id).value                                    ? '; outline-color:' + getSwatchConfig(221, item.id).value + '; outline-width: 1px;outline-offset: 1px;outline-style: solid;'                                    : '; outline-color: black; outline-width: 1px;outline-offset: 1px;outline-style: solid;'                            )                            : '; outline-color: black; outline-width: 1px;outline-offset: 1px;outline-style: solid;'                    )                    : ''                )"
           
                            @mouseenter.self="if (window.innerWidth >= 768) {                    activeTooltipItem = {                        attribute: '221',                        item: item.id,                        index                    };                    tooltipPositionElement = $event.target;                }"
                @mouseleave.self="if (window.innerWidth >= 768) activeTooltipItem = false"
                    >
            <input
                :id="$id('attribute-option-35439-'+item.id)"
                :value="item.id"
                name="super_attribute[221]"
                type="radio"
                class="inline-block absolute p-0 border-0 focus:border-0 focus:ring-0 product-option-value-input"
                style="z-index:-1"
                x-on:focus="focusLabel(item.id)"
                x-on:blur="blurLabel()"
                x-on:change="changeOption(221, $event.target.value); dispatchConfigurableSelectionChanged()"
                x-data="{ attributeId: 221, productId: 35439 }"
                x-on:click="clearOptionIfActive(attributeId, item.id)                                    checkSampleProduct($event.target, attributeId, productId);                "
                x-model="selectedValues[221]"
                :required="getAllowedAttributeOptions(221).filter(                    attributeOption => selectedValues[attributeOption]                ).length === 0"
                :aria-label="getSwatchText(221, item.id)"
                aria-describedby="attribute-label-35439-221"
            >
            <template x-if="isTextSwatch(221, item.id)">
                <div
                    x-html="getSwatchText(221, item.id)"
                    class="pointer-events-none select-none whitespace-nowrap"
                    aria-hidden="true"
                ></div>
            </template>
        </label>
    </template>

    <template x-if="optionIsEnabled(221, item.id) && !optionIsActive(221, item.id)">
        <div
            class="relative border-2 shadow-sm opacity-50 cursor-pointer select-none border-container-darker swatch-option bg-container-lighter"
            :class="{                'w-6 h-6' : !isTextSwatch(221, item.id),            }"
            :style="getSwatchBackgroundStyle('221',item.id)"
        >
            <div x-html="getSwatchText(221, item.id)"
                 class="whitespace-nowrap"
                 :class="{ 'sr-only' : !isTextSwatch(221, item.id) }"
            ></div>
            <svg class="absolute inset-0 w-full h-full text-gray-500 bg-white/25">
                <line x1="0" y1="100%" x2="100%" y2="0" class="stroke-current stroke-1"></line>
            </svg>
        </div>
    </template>
</div>
                                    </template>
                                </div>
                            </div>
                        </div>
                    </div>
                                    </div>
                <template x-if="isTooltipVisible()">
    <div class="absolute pointer-events-none select-none"
         :style="getTooltipPosition()"
    >
        <div 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/2 -translate-y-full bg-white rounded-lg shadow-lg text-center"
                :class="{'-translate-x-5' : isFirstItemCol()}"
        >
        <template x-if="isVisualSwatch(activeTooltipItem.attribute, activeTooltipItem.item)">
            <div class="inline-block border shadow-sm border-gray-300"
                    :style="getTooltipImageStyle(activeTooltipItem.attribute, activeTooltipItem.item)"
            ></div>
        </template>
            <span class="mx-2 text-lg font-semibold whitespace-nowrap subtitle"
                    x-html="getTooltipLabel()"
            ></span>
        </div>
        <div class="absolute z-10 w-3 h-3 bg-white origin-top-left rotate-45 translate-x-4 -translate-y-8 shadow-xl" aria-hidden="true"></div>
    </div>
</template>
    </div>

<div class="product-options-wrapper" id="product-options-wrapper">
    <div class="configurateur-step-title">Personnalisez votre produit&nbsp;:</div>
    <div class="fieldset" tabindex="0">
        

    <script type="text/x-magento-init">
    {
        "#product_addtocart_form": {
            "Magento_Catalog/js/validate-product": {
                "radioCheckboxClosest": ".nested",
                "ignore": ".ignore",
                "bindSubmit": true
            },
            "priceOptions": {
                "optionConfig": {"580329":{"prices":{"oldPrice":{"amount":0,"adjustments":[]},"basePrice":{"amount":0},"finalPrice":{"amount":0}},"type":"fixed","name":"Largeur de tringle"},"580333":{"prices":{"oldPrice":{"amount":0,"adjustments":[]},"basePrice":{"amount":0},"finalPrice":{"amount":0}},"type":"fixed","name":"Hauteur du dessus de la tringle au sol"},"580332":{"1499081":{"prices":{"oldPrice":{"amount":0,"adjustments":[]},"basePrice":{"amount":0},"finalPrice":{"amount":0}},"type":"fixed","name":"1 paire"},"1499082":{"prices":{"oldPrice":{"amount":0,"adjustments":[]},"basePrice":{"amount":0},"finalPrice":{"amount":0}},"type":"fixed","name":"1 grand rideau"}},"580331":{"1499075":{"prices":{"oldPrice":{"amount":25.200001,"adjustments":[]},"basePrice":{"amount":21},"finalPrice":{"amount":25.200001}},"type":"fixed","name":"Ruflette"},"1499076":{"prices":{"oldPrice":{"amount":26.400001,"adjustments":[]},"basePrice":{"amount":22},"finalPrice":{"amount":26.400001}},"type":"fixed","name":"Plis simples"},"1499077":{"prices":{"oldPrice":{"amount":31.200001,"adjustments":[]},"basePrice":{"amount":26},"finalPrice":{"amount":31.200001}},"type":"fixed","name":"Plis doubles"},"1499078":{"prices":{"oldPrice":{"amount":31.200001,"adjustments":[]},"basePrice":{"amount":26},"finalPrice":{"amount":31.200001}},"type":"fixed","name":"Plis plats"},"1499079":{"prices":{"oldPrice":{"amount":34.800001,"adjustments":[]},"basePrice":{"amount":29},"finalPrice":{"amount":34.800001}},"type":"fixed","name":"Oeillets"},"1499080":{"prices":{"oldPrice":{"amount":30.000001,"adjustments":[]},"basePrice":{"amount":25},"finalPrice":{"amount":30.000001}},"type":"fixed","name":"Wave"}},"580330":{"1499069":{"prices":{"oldPrice":{"amount":0,"adjustments":[]},"basePrice":{"amount":0},"finalPrice":{"amount":0}},"type":"fixed","name":"Aucune"},"1499070":{"prices":{"oldPrice":{"amount":24.000001,"adjustments":[]},"basePrice":{"amount":20},"finalPrice":{"amount":24.000001}},"type":"fixed","name":"Classique blanche"},"1499071":{"prices":{"oldPrice":{"amount":24.000001,"adjustments":[]},"basePrice":{"amount":20},"finalPrice":{"amount":24.000001}},"type":"fixed","name":"Classique \u00e9crue"},"1499072":{"prices":{"oldPrice":{"amount":43.200001,"adjustments":[]},"basePrice":{"amount":36},"finalPrice":{"amount":43.200001}},"type":"fixed","name":"Molletonn\u00e9e \u00e9crue"},"1499073":{"prices":{"oldPrice":{"amount":31.200001,"adjustments":[]},"basePrice":{"amount":26},"finalPrice":{"amount":31.200001}},"type":"fixed","name":"Occultante blanche"},"1499074":{"prices":{"oldPrice":{"amount":78.000001,"adjustments":[]},"basePrice":{"amount":65},"finalPrice":{"amount":78.000001}},"type":"fixed","name":"Thermique & Phonique"}},"580335":{"1499085":{"prices":{"oldPrice":{"amount":0,"adjustments":[]},"basePrice":{"amount":0},"finalPrice":{"amount":0}},"type":"fixed","name":"Canon de fusil"},"1499086":{"prices":{"oldPrice":{"amount":0,"adjustments":[]},"basePrice":{"amount":0},"finalPrice":{"amount":0}},"type":"fixed","name":"Nickel mat"},"1499087":{"prices":{"oldPrice":{"amount":0,"adjustments":[]},"basePrice":{"amount":0},"finalPrice":{"amount":0}},"type":"fixed","name":"Nickel brillant"},"1499088":{"prices":{"oldPrice":{"amount":0,"adjustments":[]},"basePrice":{"amount":0},"finalPrice":{"amount":0}},"type":"fixed","name":"Laiton brillant"},"1499089":{"prices":{"oldPrice":{"amount":0,"adjustments":[]},"basePrice":{"amount":0},"finalPrice":{"amount":0}},"type":"fixed","name":"Cuivre"},"1499090":{"prices":{"oldPrice":{"amount":0,"adjustments":[]},"basePrice":{"amount":0},"finalPrice":{"amount":0}},"type":"fixed","name":"Bronze"},"1499091":{"prices":{"oldPrice":{"amount":0,"adjustments":[]},"basePrice":{"amount":0},"finalPrice":{"amount":0}},"type":"fixed","name":"Noir mat"},"1499092":{"prices":{"oldPrice":{"amount":0,"adjustments":[]},"basePrice":{"amount":0},"finalPrice":{"amount":0}},"type":"fixed","name":"Blanc"}},"580334":{"1499083":{"prices":{"oldPrice":{"amount":0,"adjustments":[]},"basePrice":{"amount":0},"finalPrice":{"amount":0}},"type":"fixed","name":"Au sol"},"1499084":{"prices":{"oldPrice":{"amount":0,"adjustments":[]},"basePrice":{"amount":0},"finalPrice":{"amount":0}},"type":"fixed","name":"Cassant (3cm seront ajout\u00e9s \u00e0 votre hauteur renseign\u00e9e)"}}},
                "controlContainer": ".field",
                "priceHolderSelector": "[data-product-id='35439'][data-role=priceBox]"
            }
        }
    }
    </script>
                <a href="javascript:void(0);"
            class="take-measures openModel" data-id="takeMeasures">Comment prendre vos mesures ?</a>
        <div id="takeMeasures" style="display: none;">
            <div class="take-measures-content-1">
                <h2>COMMENT PRENDRE MES MESURES</h2>
<p>&nbsp;</p>
<p><img src="https://cdn4.mesrideaux.fr/wysiwyg/Croquis_Rideaux.jpg" alt="prise de mesure rideaux" width="322" height="400"></p>
<h3>Largeur : minimum 50 cm - maximum 700 cm<br>Hauteur : minimum&nbsp;50&nbsp;cm - maximum 700 cm</h3>            </div>
            <div class="take-measures-content-video">
                <style>#html-body [data-pb-style=I8BFPGD]{background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;align-self:stretch}#html-body [data-pb-style=WR0MBWI]{display:flex;width:100%}#html-body [data-pb-style=GGA15NR],#html-body [data-pb-style=IQD00HG],#html-body [data-pb-style=YLP520U]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:33.3333%;align-self:stretch}</style><div class="pagebuilder-column-group videos-grid videos-grid-prises-de-mesures" 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="I8BFPGD"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="WR0MBWI"><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="GGA15NR"><div data-content-type="video" data-appearance="default" data-element="main"><div class="pagebuilder-video-inner" data-element="inner"><div class="pagebuilder-video-wrapper" data-element="wrapper"><div class="pagebuilder-video-container"><iframe frameborder="0" allowfullscreen="" src="https://www.youtube.com/embed/QQ6qPV-LntM" data-element="video"></iframe></div></div></div></div><div data-content-type="text" data-appearance="default" data-element="main"><p>Comment mesurer des rideaux ?</p></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="YLP520U"><div data-content-type="video" data-appearance="default" data-element="main"><div class="pagebuilder-video-inner" data-element="inner"><div class="pagebuilder-video-wrapper" data-element="wrapper"><div class="pagebuilder-video-container"><iframe frameborder="0" allowfullscreen="" src="https://www.youtube.com/embed/89IcPs9MlWs" data-element="video"></iframe></div></div></div></div><div data-content-type="text" data-appearance="default" data-element="main"><p>Comment prendre les mesures pour vos stores bateaux ?</p></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="IQD00HG"><div data-content-type="video" data-appearance="default" data-element="main"><div class="pagebuilder-video-inner" data-element="inner"><div class="pagebuilder-video-wrapper" data-element="wrapper"><div class="pagebuilder-video-container"><iframe frameborder="0" allowfullscreen="" src="https://www.youtube.com/embed/UKTxpQN8ufY" data-element="video"></iframe></div></div></div></div><div data-content-type="text" data-appearance="default" data-element="main"><p>Comment prendre les mesures pour votre store enrouleur ?</p></div></div></div></div>       
            </div>
            
        </div>
        <div id="configurateur" class="set_storerideaux">
                    <div class="step pdp-dropdown mb-4" id="step_1">
                <button
                    type="button"
                    class="step-title pdp-dropdown__toggle w-full flex items-center justify-between gap-2 py-2 text-left"
                    aria-expanded="false"
                >
                    <span class="pdp-dropdown__label">Étape 1 : J’indique mes dimensions</span>
               
                    <span class="pdp-dropdown__caret" aria-hidden="true"></span>
                </button>
                <div class="pdp-dropdown__panel" aria-hidden="true">
                    <div class="pdp-dropdown__inner">
                <div class="step-wrapper">
                    
                                            <div class="field choice" id="field-deja-tringle-info">
                            <input
                                type="checkbox"
                                class="checkbox product-custom-option"
                                name="deja_tringle"
                                id="deja_tringle"
                                value="1"
                            />
                            <label class="label" for="deja_tringle">
                                J'ai déjà une tringle                            </label>
                        </div>
                    
                                                                                                <!--
    @ Karan Emipro
    custom option dependant for Select option
-->
<!-- custom options depends -->
<script type="text/javascript">
function jsHidetext(optionId){
    require(['jquery'], function ($) {
        if(document.getElementById('options_'+optionId+'_text')){
            if(!$('#options_'+optionId+'_text').hasClass('dependsText')){
                document.getElementById('options_'+optionId+'_text').parentElement.parentElement.style.display = 'none';
            }
        }
    });
}
</script>
<!-- custom options depends -->


<div class="field  required" id="field-rideau-largeur">
    <label class="label" for="options_580329_text">
            Largeur de tringle                            </label>
    <div class="control">
                                            <input type="text"
                   id="options_580329_text"
                   placeholder="max 700cm"
                   class="input-text product-custom-option"
                                      data-validate="{&quot;required&quot;:true,&quot;integer&quot;:true,&quot;range-french&quot;:[&quot;50&quot;,&quot;700&quot;],&quot;validate-min-french&quot;:0}"
                                      name="options[580329]"
                   data-sku="rideau-largeur"
                   data-selector="options[580329]"
                   data-msg-range="La valeur n’est pas dans la plage spécifiée."
                   data-msg-minlength="Numéro invalide"
                   data-msg-validate-number="Numéro invalide."
                   data-default-digitsrange="50-700"
                   data-default-isrequired="1"
                   value=""/>
            </div>
    </div>

<!--
    @ Karan Emipro
    custom option dependant for thumb option
-->
<!-- custom options depends -->
<!-- custom options depends -->
                                                                                                                        <!--
    @ Karan Emipro
    custom option dependant for Select option
-->
<!-- custom options depends -->
<script type="text/javascript">
function jsHidetext(optionId){
    require(['jquery'], function ($) {
        if(document.getElementById('options_'+optionId+'_text')){
            if(!$('#options_'+optionId+'_text').hasClass('dependsText')){
                document.getElementById('options_'+optionId+'_text').parentElement.parentElement.style.display = 'none';
            }
        }
    });
}
</script>
<!-- custom options depends -->


<div class="field  required" id="field-rideau-hauteur">
    <label class="label" for="options_580333_text">
            Hauteur du dessus de la tringle au sol                            </label>
    <div class="control">
                                            <input type="text"
                   id="options_580333_text"
                   placeholder="max 700cm"
                   class="input-text product-custom-option"
                                      data-validate="{&quot;required&quot;:true,&quot;integer&quot;:true,&quot;range-french&quot;:[&quot;50&quot;,&quot;700&quot;],&quot;validate-min-french&quot;:0}"
                                      name="options[580333]"
                   data-sku="rideau-hauteur"
                   data-selector="options[580333]"
                   data-msg-range="La valeur n’est pas dans la plage spécifiée."
                   data-msg-minlength="Numéro invalide"
                   data-msg-validate-number="Numéro invalide."
                   data-default-digitsrange="50-700"
                   data-default-isrequired="1"
                   value=""/>
            </div>
    </div>

<!--
    @ Karan Emipro
    custom option dependant for thumb option
-->
<!-- custom options depends -->
<!-- custom options depends -->
                                                                                                                                                                                                                                                                                                                                                                                                
                    <span
                        class="btn-validconfig btn btn-primary"
                        data-step="1"
                    >
                        <span class="ok">OK</span>
                        <span class="valid">Valider</span>
                    </span>
                </div>
                    </div>
                </div>
            </div>
                    <div class="step pdp-dropdown mb-4" id="step_50">
                <button
                    type="button"
                    class="step-title pdp-dropdown__toggle w-full flex items-center justify-between gap-2 py-2 text-left"
                    aria-expanded="false"
                >
                    <span class="pdp-dropdown__label">Étape 2 : Je choisis le nombre de rideaux par fenêtre</span>
               
                    <span class="pdp-dropdown__caret" aria-hidden="true"></span>
                </button>
                <div class="pdp-dropdown__panel" aria-hidden="true">
                    <div class="pdp-dropdown__inner">
                <div class="step-wrapper">
                    
                    
                                                                                                                                                                                                                                        
<div id="nombre-de-rideaux-(par-fenêtre)" class="field required">
        <label class="label" for="select_580332" style="display: block;line-height: 1.3;">
        <span  style="display: inline-block; overflow: hidden; text-overflow: ellipsis; font-weight: 600;" class="ept_emioptlable">Nombre de rideaux (par fenêtre)</span>
    </label>
            <div class="control">
        <span ></span>
        <div class="options-list nested" 
            id="options-580332-list"><div class="field choice admin__field admin__field-option required"><input data-sku="2" style="display: inline-block; vertical-align: middle;height: 100%; margin-left: 8px; box-shadow:none;" type="radio" class="rideau-nombre radio admin__control-radio option04  required product-custom-option" name="options[580332]" id="options_580332_2" value="1499081"  data-value="" data-selector="options[580332]" price="0" lastchange="" onclick="changeRadioChek('580332','radio')" /><label class="label admin__field-label"
                        for="options_580332_2">1 paire<span class="option-final-price" data-option-key="580332_1499081"></span></label></div><div class="field choice admin__field admin__field-option required"><input data-sku="1" style="display: inline-block; vertical-align: middle;height: 100%; margin-left: 8px; box-shadow:none;" type="radio" class="rideau-nombre radio admin__control-radio option04  required product-custom-option" name="options[580332]" id="options_580332_3" value="1499082"  data-value="" data-selector="options[580332]" price="0" lastchange="" onclick="changeRadioChek('580332','radio')" /><label class="label admin__field-label"
                        for="options_580332_3">1 grand rideau<span class="option-final-price" data-option-key="580332_1499082"></span></label></div></div>
        <!-- custom options depends -->
                <!-- custom options depends -->

                    
                <!-- custom options depends -->
                                <input id="options_580332" type="radio" style="display:none;" price="" value="" name="options[580332]">

                                <!-- custom options depends -->

                <span id="options-580332-container"></span>
                        </div>
</div>
<script>
    (function () {
        var payload = {
            defaultOption: [{"optionDefaultValue":"0","optiontype":"radio","optionLable":"580332","optionPrice":0,"optionValue":"1499081"},{"optionDefaultValue":"0","optiontype":"radio","optionLable":"580332","optionPrice":0,"optionValue":"1499082"}],
            OptionId: 0        };

        window.__emiproCustomOptionDefaultQueue = window.__emiproCustomOptionDefaultQueue || [];
        window.__emiproCustomOptionDefaultQueue.push(payload);

        if (window.__emiproCustomOptionDefaultRunnerBound) {
            return;
        }
        window.__emiproCustomOptionDefaultRunnerBound = true;

        function applyDefaultOptions() {
            var queue = window.__emiproCustomOptionDefaultQueue || [];
            var i, j, data, item, listNode, listInputs, input, selectNode, selectOption;

            for (i = 0; i < queue.length; i++) {
                data = queue[i] && queue[i].defaultOption ? queue[i].defaultOption : [];
                for (j = 0; j < data.length; j++) {
                    item = data[j];
                    if (!item || String(item.optionDefaultValue) !== '1') {
                        continue;
                    }

                    if (item.optiontype === 'radio'
                        || item.optiontype === 'checkbox'
                        || item.optiontype === 'thumb_gallery'
                        || item.optiontype === 'thumb_gallery_popup'
                        || item.optiontype === 'thumb_gallery_multi'
                    ) {
                        listNode = document.getElementById('options-' + item.optionLable + '-list');
                        if (!listNode) {
                            continue;
                        }
                        listInputs = listNode.querySelectorAll('input[value="' + item.optionValue + '"]');
                        if (!listInputs.length) {
                            continue;
                        }
                        input = listInputs[0];
                        input.checked = true;
                        input.dispatchEvent(new Event('click', { bubbles: true }));
                        input.dispatchEvent(new Event('change', { bubbles: true }));
                    } else if (item.optiontype === 'drop_down' || item.optiontype === 'multiple') {
                        selectNode = document.getElementById('select_' + item.optionLable);
                        if (!selectNode) {
                            continue;
                        }
                        selectOption = selectNode.querySelector('option[value="' + item.optionValue + '"]');
                        if (!selectOption) {
                            continue;
                        }
                        selectOption.selected = true;
                        selectNode.dispatchEvent(new Event('change', { bubbles: true }));
                    }
                }
            }
        }

        if (document.readyState === 'loading') {
            document.addEventListener('DOMContentLoaded', function () {
                setTimeout(applyDefaultOptions, 0);
            });
        } else {
            setTimeout(applyDefaultOptions, 0);
        }
    })();
</script>
<div style="display:none"><div class="custom-div-to-show-popup"></div></div><script type="text/javascript">
    var mediaurl = "https://www.mesrideaux.fr/";
    var baseImageChange = "";
    var enabled_tooltip = "0";
    var enabled_cmi = "1";
    var flag = 0;
</script>

<!-- custom options depends -->
<script type="text/javascript">
function jsHide(optionId){
    require(['jquery'], function ($) {
        if (document.getElementById('options-'+optionId+'-list')) {
            var getActiveClass = $('#options-'+optionId+'-list').children().hasClass('selectDepend');
            if(!getActiveClass){
                document.getElementById('options-'+optionId+'-list').parentElement.parentElement.style.display = 'none';
            }
        }

        if(document.getElementById('select_'+optionId)){
            if(!$('#select_'+optionId).attr('multiple')){
                var getSelectedOptionValue = $('#select_'+optionId+' :selected').val();
                if(!getSelectedOptionValue){
                    document.getElementById('select_'+optionId).parentElement.parentElement.style.display = 'none';
                    document.getElementById('select_'+optionId).disabled = true;
                }
            }else{
                var getSelectedOption = $('#select_'+optionId+' :selected').length;
                if(getSelectedOption<1){
                    document.getElementById('select_'+optionId).parentElement.parentElement.style.display = 'none';
                    document.getElementById('select_'+optionId).disabled = true;
                }
            }
        }
    });
}
</script>
<!-- custom options depends -->
                                                                                                                                                                                                                                                                                                                            
                    <span
                        class="btn-validconfig btn btn-primary"
                        data-step="50"
                    >
                        <span class="ok">OK</span>
                        <span class="valid">Valider</span>
                    </span>
                </div>
                    </div>
                </div>
            </div>
                    <div class="step pdp-dropdown mb-4" id="step_2">
                <button
                    type="button"
                    class="step-title pdp-dropdown__toggle w-full flex items-center justify-between gap-2 py-2 text-left"
                    aria-expanded="false"
                >
                    <span class="pdp-dropdown__label">Étape 3 : Je sélectionne ma tête de rideaux</span>
               
                    <span class="pdp-dropdown__caret" aria-hidden="true"></span>
                </button>
                <div class="pdp-dropdown__panel" aria-hidden="true">
                    <div class="pdp-dropdown__inner">
                <div class="step-wrapper">
                                                                        <a href="javascript:void(0);" class="take-measures openModel" data-id="infoTeterideau">Infos</a>
                            <div id="infoTeterideau" style="display: none;">
                                <table style="width: 865px;" border="0" cellspacing="0" cellpadding="0" align="left">
<tbody>
<tr>
<td style="width: 227.578px;" width="225px"><img src="https://cdn4.mesrideaux.fr/wysiwyg/ruflette-infos.webp" alt="Ruflettes" width="226" height="82"></td>
<td style="width: 634.422px;" width="630px">
<p><strong>Ruflette</strong><br>Avec cette finition, à vous de créer les plis que vous souhaitez, selon l'ampleur et l'espacement désirés. Cousu sur toute la largeur du tissu selon les dimensions transmises, le galon fronceur (ruflette) permettra d'adapter votre rideau à différentes mesures de tringles.</p>
<p>Coefficient d’ampleur entre 1,5 et 2 ; il est optimisé en fonction de vos mesures et de la laize du tissu choisi.</p>
</td>
</tr>
<tr>
<td style="width: 227.578px;"><img src="https://cdn4.mesrideaux.fr/wysiwyg/1pli.jpg" alt="Plis simples" width="225" height="81"></td>
<td style="width: 634.422px;">
<p><strong>Plis simples<br></strong>Répartis à intervalles réguliers les plis simples structurent le rideau et lui donnent une ondulation restreinte pour que les grands dessins se déploient en restant lisibles. Au dos, des crochets montés sur glissière (agrafes en plastique Microflex©) permettent d'ajuster facilement la hauteur du rideau.</p>
<p>Coefficient d’ampleur entre 1,5 et 1,8 ; il est optimisé en fonction de vos mesures et de la laize du tissu choisi.</p>
</td>
</tr>
<tr>
<td style="width: 227.578px;"><img src="https://cdn4.mesrideaux.fr/wysiwyg/2plis_1.jpg" alt="Plis doubles" width="225" height="81"></td>
<td style="width: 634.422px;">
<p><strong>&nbsp; Plis doubles<br></strong>&nbsp; Appelés également "plis flamands", pincés et réguliers, ils forment un pli creux et donnent de l'ampleur à vos rideaux.<br>&nbsp; Au dos, découvrez notre système de crochets montés sur glissière (agrafes en plastique Microflex©)&nbsp;qui vous&nbsp; &nbsp; &nbsp; &nbsp;permettra d'ajuster facilement la hauteur de votre rideau.</p>
<p>&nbsp; Coefficient d’ampleur entre 1,8 et 2,3 ; il est optimisé en fonction de vos mesures et de la laize du tissu choisi</p>
</td>
</tr>
<tr>
<td style="width: 227.578px;"><img src="https://cdn4.mesrideaux.fr/wysiwyg/plisplats-infos.webp" alt="plis plats" width="225" height="81"></td>
<td style="width: 634.422px;">
<p><strong>Plis plats<br></strong>Une finition très nette pour un tombé rectiligne et moderne.<br>Au dos, découvrez notre système de crochets montés sur glissière (agrafes en plastique Microflex©)&nbsp;qui vous permettra d'ajuster facilement la hauteur de votre rideau.</p>
<p>Coefficient d’ampleur entre 2 et 2,2 ; il est optimisé en fonction de vos mesures et de la laize du tissu choisi</p>
</td>
</tr>
<tr>
<td style="width: 227.578px;"><img src="https://cdn4.mesrideaux.fr/wysiwyg/oeillets-infos.webp" alt="Oeillets" width="225" height="81"></td>
<td style="width: 634.422px;">
<p><strong>Oeillets<br></strong>A la fois moderne et sobre, la finition oeillets est un grand classique de confection. Vous ferez votre choix entre 7 coloris d'anneaux de 40mm de diamètre (intérieur). N'hésitez cependant pas à nous contacter si vos mesures impliquent des anneaux plus petits ou plus larges.</p>
<p>Coefficient d’ampleur entre 1,6 et 2 ; il est optimisé en fonction de vos mesures et de la laize du tissu choisi</p>
</td>
</tr>
<tr>
<td style="width: 227.578px;"><img src="https://cdn4.mesrideaux.fr/wysiwyg/wave.webp" alt="Wave" width="225" height="81"></td>
<td style="width: 634.422px;">
<p><strong>Wave<br></strong>Les rideaux Wave se distinguent par leurs ondulations régulières et élégantes, créant un tombé fluide et contemporain. Grâce à un système de glisseurs espacés de manière uniforme, le tissu forme des vagues harmonieuses qui restent identiques, même lorsque le rideau est ouvert ou fermé. Cette finition apporte une esthétique épurée, moderne et raffinée, idéale pour valoriser les grandes baies vitrées et offrir une décoration intérieure à la fois sobre et sophistiquée.</p>
<p>coefficient d'ampleur entre 1.8 et 2 : il est optimisé en fonction de vos mesures et de la laize du tissu choisi</p>
</td>
</tr>
</tbody>
</table>                            </div>
                                            
                    
                                                                                                                                                                                                                                                                                                            
<div id="tête-de-rideaux" class="field required">
            <div class="control">
        <span class="hide" id="emispanlable_580331"></span>
        <div class="options-list nested" style=""
            id="options-580331-list"><div class="field choice admin__field admin__field-option required"><input data-sku="ruflette" data-price="+&nbsp;25,20 €&nbsp;"
                    style="visibility: hidden;height: 35px; width: 35px;"
                    onclick='                    activeinputdiv(this,"emispanlable_580331","Ruflette",21,"media/customoptions/r/u/ruflette_2.jpg","+&nbsp;25,20 €&nbsp;","thumb_gallery",580331,"img","https://www.mesrideaux.fr/media/customoptions/r/u/ruflette.jpg","")' type="radio" class="rideau-tete radio admin__control-radio option01  required product-custom-option" name="options[580331]" id="options_580331_2" value="1499075"  data-value="" data-selector="options[580331]" price="21" lastchange=""><label class="label admin__field-label"
                        for="options_580331_2"><div class="option-wrapper-img"><img class="lazyload" src="https://www.mesrideaux.fr/media/customoptions/r/u/ruflette.jpg" data-src="https://www.mesrideaux.fr/media/customoptions/r/u/ruflette.jpg" alt="Ruflette" height="70" width="200" loading="lazy"></div><span>Ruflette</span><span class="option-final-price" data-option-key="580331_1499075"></span></label></div><div class="field choice admin__field admin__field-option required"><input data-sku="plis-simple" data-price="+&nbsp;26,40 €&nbsp;"
                    style="visibility: hidden;height: 35px; width: 35px;"
                    onclick='                    activeinputdiv(this,"emispanlable_580331","Plis&nbsp;simples",22,"media/customoptions/t/_/t_te_1_pli.jpg","+&nbsp;26,40 €&nbsp;","thumb_gallery",580331,"img","https://www.mesrideaux.fr/media/customoptions/1/p/1pli.jpg","")' type="radio" class="rideau-tete radio admin__control-radio option01  required product-custom-option" name="options[580331]" id="options_580331_3" value="1499076"  data-value="" data-selector="options[580331]" price="22" lastchange=""><label class="label admin__field-label"
                        for="options_580331_3"><div class="option-wrapper-img"><img class="lazyload" src="https://www.mesrideaux.fr/media/customoptions/1/p/1pli.jpg" data-src="https://www.mesrideaux.fr/media/customoptions/1/p/1pli.jpg" alt="Plis simples" height="70" width="200" loading="lazy"></div><span>Plis simples</span><span class="option-final-price" data-option-key="580331_1499076"></span></label></div><div class="field choice admin__field admin__field-option required"><input data-sku="plis-doubles" data-price="+&nbsp;31,20 €&nbsp;"
                    style="visibility: hidden;height: 35px; width: 35px;"
                    onclick='                    activeinputdiv(this,"emispanlable_580331","Plis&nbsp;doubles",26,"media/customoptions/d/e/de_tail_rideaux_2_plis_15927673717_o.jpg","+&nbsp;31,20 €&nbsp;","thumb_gallery",580331,"img","https://www.mesrideaux.fr/media/customoptions/2/p/2plis.jpg","")' type="radio" class="rideau-tete radio admin__control-radio option01  required product-custom-option" name="options[580331]" id="options_580331_4" value="1499077"  data-value="" data-selector="options[580331]" price="26" lastchange=""><label class="label admin__field-label"
                        for="options_580331_4"><div class="option-wrapper-img"><img class="lazyload" src="https://www.mesrideaux.fr/media/customoptions/2/p/2plis.jpg" data-src="https://www.mesrideaux.fr/media/customoptions/2/p/2plis.jpg" alt="Plis doubles" height="70" width="200" loading="lazy"></div><span>Plis doubles</span><span class="option-final-price" data-option-key="580331_1499077"></span></label></div><div class="field choice admin__field admin__field-option required"><input data-sku="plis-plats" data-price="+&nbsp;31,20 €&nbsp;"
                    style="visibility: hidden;height: 35px; width: 35px;"
                    onclick='                    activeinputdiv(this,"emispanlable_580331","Plis&nbsp;plats",26,"media/customoptions/s/l/slider_plisplats_2.jpg","+&nbsp;31,20 €&nbsp;","thumb_gallery",580331,"img","https://www.mesrideaux.fr/media/customoptions/p/l/plisplats_3.jpg","")' type="radio" class="rideau-tete radio admin__control-radio option01  required product-custom-option" name="options[580331]" id="options_580331_5" value="1499078"  data-value="" data-selector="options[580331]" price="26" lastchange=""><label class="label admin__field-label"
                        for="options_580331_5"><div class="option-wrapper-img"><img class="lazyload" src="https://www.mesrideaux.fr/media/customoptions/p/l/plisplats_3.jpg" data-src="https://www.mesrideaux.fr/media/customoptions/p/l/plisplats_3.jpg" alt="Plis plats" height="70" width="200" loading="lazy"></div><span>Plis plats</span><span class="option-final-price" data-option-key="580331_1499078"></span></label></div><div class="field choice admin__field admin__field-option required"><input data-sku="oeillets" data-price="+&nbsp;34,80 €&nbsp;"
                    style="visibility: hidden;height: 35px; width: 35px;"
                    onclick='                    activeinputdiv(this,"emispanlable_580331","Oeillets",29,"media/customoptions/t/e/tete_oeillets_1.jpg","+&nbsp;34,80 €&nbsp;","thumb_gallery",580331,"img","https://www.mesrideaux.fr/media/customoptions/o/e/oeillets_4.jpg","")' type="radio" class="rideau-tete radio admin__control-radio option01  required product-custom-option" name="options[580331]" id="options_580331_6" value="1499079"  data-value="" data-selector="options[580331]" price="29" lastchange="580335"><label class="label admin__field-label"
                        for="options_580331_6"><div class="option-wrapper-img"><img class="lazyload" src="https://www.mesrideaux.fr/media/customoptions/o/e/oeillets_4.jpg" data-src="https://www.mesrideaux.fr/media/customoptions/o/e/oeillets_4.jpg" alt="Oeillets" height="70" width="200" loading="lazy"></div><span>Oeillets</span><span class="option-final-price" data-option-key="580331_1499079"></span></label></div><div class="field choice admin__field admin__field-option required"><input data-sku="wave" data-price="+&nbsp;30,00 €&nbsp;"
                    style="visibility: hidden;height: 35px; width: 35px;"
                    onclick='                    activeinputdiv(this,"emispanlable_580331","Wave",25,"media/customoptions/w/a/wave-large-2.webp","+&nbsp;30,00 €&nbsp;","thumb_gallery",580331,"img","https://www.mesrideaux.fr/media/customoptions/w/a/wave.webp","")' type="radio" class="rideau-tete radio admin__control-radio option01  required product-custom-option" name="options[580331]" id="options_580331_7" value="1499080"  data-value="" data-selector="options[580331]" price="25" lastchange=""><label class="label admin__field-label"
                        for="options_580331_7"><div class="option-wrapper-img"><img class="lazyload" src="https://www.mesrideaux.fr/media/customoptions/w/a/wave.webp" data-src="https://www.mesrideaux.fr/media/customoptions/w/a/wave.webp" alt="Wave" height="70" width="200" loading="lazy"></div><span>Wave</span><span class="option-final-price" data-option-key="580331_1499080"></span></label></div></div>
        <!-- custom options depends -->
                    <input id="options_580331" type="radio" style="display:none;" price="" value="" name="options[580331]">
                <!-- custom options depends -->

                                </div>
</div>
<script>
    (function () {
        var payload = {
            defaultOption: [{"optionDefaultValue":"0","optiontype":"thumb_gallery","optionLable":"580331","optionPrice":21,"optionValue":"1499075"},{"optionDefaultValue":"0","optiontype":"thumb_gallery","optionLable":"580331","optionPrice":22,"optionValue":"1499076"},{"optionDefaultValue":"0","optiontype":"thumb_gallery","optionLable":"580331","optionPrice":26,"optionValue":"1499077"},{"optionDefaultValue":"0","optiontype":"thumb_gallery","optionLable":"580331","optionPrice":26,"optionValue":"1499078"},{"optionDefaultValue":"0","optiontype":"thumb_gallery","optionLable":"580331","optionPrice":29,"optionValue":"1499079"},{"optionDefaultValue":"0","optiontype":"thumb_gallery","optionLable":"580331","optionPrice":25,"optionValue":"1499080"}],
            OptionId: 0        };

        window.__emiproCustomOptionDefaultQueue = window.__emiproCustomOptionDefaultQueue || [];
        window.__emiproCustomOptionDefaultQueue.push(payload);

        if (window.__emiproCustomOptionDefaultRunnerBound) {
            return;
        }
        window.__emiproCustomOptionDefaultRunnerBound = true;

        function applyDefaultOptions() {
            var queue = window.__emiproCustomOptionDefaultQueue || [];
            var i, j, data, item, listNode, listInputs, input, selectNode, selectOption;

            for (i = 0; i < queue.length; i++) {
                data = queue[i] && queue[i].defaultOption ? queue[i].defaultOption : [];
                for (j = 0; j < data.length; j++) {
                    item = data[j];
                    if (!item || String(item.optionDefaultValue) !== '1') {
                        continue;
                    }

                    if (item.optiontype === 'radio'
                        || item.optiontype === 'checkbox'
                        || item.optiontype === 'thumb_gallery'
                        || item.optiontype === 'thumb_gallery_popup'
                        || item.optiontype === 'thumb_gallery_multi'
                    ) {
                        listNode = document.getElementById('options-' + item.optionLable + '-list');
                        if (!listNode) {
                            continue;
                        }
                        listInputs = listNode.querySelectorAll('input[value="' + item.optionValue + '"]');
                        if (!listInputs.length) {
                            continue;
                        }
                        input = listInputs[0];
                        input.checked = true;
                        input.dispatchEvent(new Event('click', { bubbles: true }));
                        input.dispatchEvent(new Event('change', { bubbles: true }));
                    } else if (item.optiontype === 'drop_down' || item.optiontype === 'multiple') {
                        selectNode = document.getElementById('select_' + item.optionLable);
                        if (!selectNode) {
                            continue;
                        }
                        selectOption = selectNode.querySelector('option[value="' + item.optionValue + '"]');
                        if (!selectOption) {
                            continue;
                        }
                        selectOption.selected = true;
                        selectNode.dispatchEvent(new Event('change', { bubbles: true }));
                    }
                }
            }
        }

        if (document.readyState === 'loading') {
            document.addEventListener('DOMContentLoaded', function () {
                setTimeout(applyDefaultOptions, 0);
            });
        } else {
            setTimeout(applyDefaultOptions, 0);
        }
    })();
</script>
<div style="display:none"><div class="custom-div-to-show-popup"></div></div><script type="text/javascript">
    var mediaurl = "https://www.mesrideaux.fr/";
    var baseImageChange = "";
    var enabled_tooltip = "0";
    var enabled_cmi = "1";
    var flag = 0;
</script>

<!-- custom options depends -->
<script type="text/javascript">
function jsHide(optionId){
    require(['jquery'], function ($) {
        if (document.getElementById('options-'+optionId+'-list')) {
            var getActiveClass = $('#options-'+optionId+'-list').children().hasClass('selectDepend');
            if(!getActiveClass){
                document.getElementById('options-'+optionId+'-list').parentElement.parentElement.style.display = 'none';
            }
        }

        if(document.getElementById('select_'+optionId)){
            if(!$('#select_'+optionId).attr('multiple')){
                var getSelectedOptionValue = $('#select_'+optionId+' :selected').val();
                if(!getSelectedOptionValue){
                    document.getElementById('select_'+optionId).parentElement.parentElement.style.display = 'none';
                    document.getElementById('select_'+optionId).disabled = true;
                }
            }else{
                var getSelectedOption = $('#select_'+optionId+' :selected').length;
                if(getSelectedOption<1){
                    document.getElementById('select_'+optionId).parentElement.parentElement.style.display = 'none';
                    document.getElementById('select_'+optionId).disabled = true;
                }
            }
        }
    });
}
</script>
<!-- custom options depends -->
                                                                                                                                                                                            
<div id="finition-oeillets" class="field">
        <label class="label" for="select_580335" style="display: block;line-height: 1.3;">
        <span id="emioptlable_580335" data-value="Finition oeillets" data-value-old="Finition oeillets" style="display: inline-block; overflow: hidden; text-overflow: ellipsis; font-weight: 600;" class="ept_emioptlable">Finition oeillets</span>
    </label>
            <div class="control">
        <span class="hide" id="emispanlable_580335"></span>
        <div class="options-list nested" style=""
            id="options-580335-list"><div class="field choice admin__field admin__field-option" style="display:none;"><input type="radio" id="none_options_580335" class="radio admin__control-radio option01 product-custom-option" data-value="" name="options[580335]" data-selector="options[580335]" value="" checked="checked" /><label class="label admin__field-label" for="options_580335"><span>Aucun</span></label></div><div class="field choice admin__field admin__field-option"><input data-sku="finition2" data-price=""
                    style="visibility: hidden;height: 35px; width: 35px;"
                    onclick='                    activeinputdiv(this,"emispanlable_580335","Canon&nbsp;de&nbsp;fusil",0,"media/customoptions/c/a/canon_de_fusil_3.jpg","","thumb_gallery",580335,"img","https://cdn4.mesrideaux.fr/customoptions/c/a/canon_de_fusil_3.jpg","")' type="radio" class="rideau-finitions-tete radio admin__control-radio option01  product-custom-option" name="options[580335]" id="options_580335_2" value="1499085"  data-value="" data-selector="options[580335]" price="0" lastchange=""><label class="label admin__field-label"
                        for="options_580335_2"><div class="option-wrapper-img"><img class="lazyload" src="https://cdn4.mesrideaux.fr/customoptions/c/a/canon_de_fusil_3.jpg" data-src="https://cdn4.mesrideaux.fr/customoptions/c/a/canon_de_fusil_3.jpg" alt="Canon de fusil" height="70" width="200" loading="lazy"></div><span>Canon de fusil</span><span class="option-final-price" data-option-key="580335_1499085"></span></label></div><div class="field choice admin__field admin__field-option"><input data-sku="finition1" data-price=""
                    style="visibility: hidden;height: 35px; width: 35px;"
                    onclick='                    activeinputdiv(this,"emispanlable_580335","Nickel&nbsp;mat",0,"media/customoptions/n/i/nickel_mat_2.jpg","","thumb_gallery",580335,"img","https://cdn4.mesrideaux.fr/customoptions/n/i/nickel_mat_2.jpg","")' type="radio" class="rideau-finitions-tete radio admin__control-radio option01  product-custom-option" name="options[580335]" id="options_580335_3" value="1499086"  data-value="" data-selector="options[580335]" price="0" lastchange=""><label class="label admin__field-label"
                        for="options_580335_3"><div class="option-wrapper-img"><img class="lazyload" src="https://cdn4.mesrideaux.fr/customoptions/n/i/nickel_mat_2.jpg" data-src="https://cdn4.mesrideaux.fr/customoptions/n/i/nickel_mat_2.jpg" alt="Nickel mat" height="70" width="200" loading="lazy"></div><span>Nickel mat</span><span class="option-final-price" data-option-key="580335_1499086"></span></label></div><div class="field choice admin__field admin__field-option"><input data-sku="finition5" data-price=""
                    style="visibility: hidden;height: 35px; width: 35px;"
                    onclick='                    activeinputdiv(this,"emispanlable_580335","Nickel&nbsp;brillant",0,"media/customoptions/n/i/nickel_brillant_9.jpg","","thumb_gallery",580335,"img","https://cdn4.mesrideaux.fr/customoptions/n/i/nickel_brillant_9.jpg","")' type="radio" class="rideau-finitions-tete radio admin__control-radio option01  product-custom-option" name="options[580335]" id="options_580335_4" value="1499087"  data-value="" data-selector="options[580335]" price="0" lastchange=""><label class="label admin__field-label"
                        for="options_580335_4"><div class="option-wrapper-img"><img class="lazyload" src="https://cdn4.mesrideaux.fr/customoptions/n/i/nickel_brillant_9.jpg" data-src="https://cdn4.mesrideaux.fr/customoptions/n/i/nickel_brillant_9.jpg" alt="Nickel brillant" height="70" width="200" loading="lazy"></div><span>Nickel brillant</span><span class="option-final-price" data-option-key="580335_1499087"></span></label></div><div class="field choice admin__field admin__field-option"><input data-sku="finition7" data-price=""
                    style="visibility: hidden;height: 35px; width: 35px;"
                    onclick='                    activeinputdiv(this,"emispanlable_580335","Laiton&nbsp;brillant",0,"media/customoptions/l/a/laiton_mat.jpg","","thumb_gallery",580335,"img","https://cdn4.mesrideaux.fr/customoptions/l/a/laiton_mat.jpg","")' type="radio" class="rideau-finitions-tete radio admin__control-radio option01  product-custom-option" name="options[580335]" id="options_580335_5" value="1499088"  data-value="" data-selector="options[580335]" price="0" lastchange=""><label class="label admin__field-label"
                        for="options_580335_5"><div class="option-wrapper-img"><img class="lazyload" src="https://cdn4.mesrideaux.fr/customoptions/l/a/laiton_mat.jpg" data-src="https://cdn4.mesrideaux.fr/customoptions/l/a/laiton_mat.jpg" alt="Laiton brillant" height="70" width="200" loading="lazy"></div><span>Laiton brillant</span><span class="option-final-price" data-option-key="580335_1499088"></span></label></div><div class="field choice admin__field admin__field-option"><input data-sku="finition3" data-price=""
                    style="visibility: hidden;height: 35px; width: 35px;"
                    onclick='                    activeinputdiv(this,"emispanlable_580335","Cuivre",0,"media/customoptions/c/u/cuivre_2.jpg","","thumb_gallery",580335,"img","https://cdn4.mesrideaux.fr/customoptions/c/u/cuivre_2.jpg","")' type="radio" class="rideau-finitions-tete radio admin__control-radio option01  product-custom-option" name="options[580335]" id="options_580335_6" value="1499089"  data-value="" data-selector="options[580335]" price="0" lastchange=""><label class="label admin__field-label"
                        for="options_580335_6"><div class="option-wrapper-img"><img class="lazyload" src="https://cdn4.mesrideaux.fr/customoptions/c/u/cuivre_2.jpg" data-src="https://cdn4.mesrideaux.fr/customoptions/c/u/cuivre_2.jpg" alt="Cuivre" height="70" width="200" loading="lazy"></div><span>Cuivre</span><span class="option-final-price" data-option-key="580335_1499089"></span></label></div><div class="field choice admin__field admin__field-option"><input data-sku="finition4" data-price=""
                    style="visibility: hidden;height: 35px; width: 35px;"
                    onclick='                    activeinputdiv(this,"emispanlable_580335","Bronze",0,"media/customoptions/b/r/bronze_3.jpg","","thumb_gallery",580335,"img","https://cdn4.mesrideaux.fr/customoptions/b/r/bronze_3.jpg","")' type="radio" class="rideau-finitions-tete radio admin__control-radio option01  product-custom-option" name="options[580335]" id="options_580335_7" value="1499090"  data-value="" data-selector="options[580335]" price="0" lastchange=""><label class="label admin__field-label"
                        for="options_580335_7"><div class="option-wrapper-img"><img class="lazyload" src="https://cdn4.mesrideaux.fr/customoptions/b/r/bronze_3.jpg" data-src="https://cdn4.mesrideaux.fr/customoptions/b/r/bronze_3.jpg" alt="Bronze" height="70" width="200" loading="lazy"></div><span>Bronze</span><span class="option-final-price" data-option-key="580335_1499090"></span></label></div><div class="field choice admin__field admin__field-option"><input data-sku="finition6" data-price=""
                    style="visibility: hidden;height: 35px; width: 35px;"
                    onclick='                    activeinputdiv(this,"emispanlable_580335","Noir&nbsp;mat",0,"media/customoptions/n/o/noir_mat.jpg","","thumb_gallery",580335,"img","https://cdn4.mesrideaux.fr/customoptions/n/o/noir_mat.jpg","")' type="radio" class="rideau-finitions-tete radio admin__control-radio option01  product-custom-option" name="options[580335]" id="options_580335_8" value="1499091"  data-value="" data-selector="options[580335]" price="0" lastchange=""><label class="label admin__field-label"
                        for="options_580335_8"><div class="option-wrapper-img"><img class="lazyload" src="https://cdn4.mesrideaux.fr/customoptions/n/o/noir_mat.jpg" data-src="https://cdn4.mesrideaux.fr/customoptions/n/o/noir_mat.jpg" alt="Noir mat" height="70" width="200" loading="lazy"></div><span>Noir mat</span><span class="option-final-price" data-option-key="580335_1499091"></span></label></div><div class="field choice admin__field admin__field-option"><input data-sku="finition8" data-price=""
                    style="visibility: hidden;height: 35px; width: 35px;"
                    onclick='                    activeinputdiv(this,"emispanlable_580335","Blanc",0,"media/customoptions/o/e/oeillets_blanc_2.jpg","","thumb_gallery",580335,"img","https://cdn4.mesrideaux.fr/customoptions/o/e/oeillets_blanc_2.jpg","")' type="radio" class="rideau-finitions-tete radio admin__control-radio option01  product-custom-option" name="options[580335]" id="options_580335_9" value="1499092"  data-value="" data-selector="options[580335]" price="0" lastchange=""><label class="label admin__field-label"
                        for="options_580335_9"><div class="option-wrapper-img"><img class="lazyload" src="https://cdn4.mesrideaux.fr/customoptions/o/e/oeillets_blanc_2.jpg" data-src="https://cdn4.mesrideaux.fr/customoptions/o/e/oeillets_blanc_2.jpg" alt="Blanc" height="70" width="200" loading="lazy"></div><span>Blanc</span><span class="option-final-price" data-option-key="580335_1499092"></span></label></div></div>
        <!-- custom options depends -->
                    <input id="options_580335" type="radio" style="display:none;" price="" value="" name="options[580335]">
                <!-- custom options depends -->

            </div>
</div>
<script>
    (function () {
        var payload = {
            defaultOption: [{"optionDefaultValue":"0","optiontype":"thumb_gallery","optionLable":"580335","optionPrice":0,"optionValue":"1499085"},{"optionDefaultValue":"0","optiontype":"thumb_gallery","optionLable":"580335","optionPrice":0,"optionValue":"1499086"},{"optionDefaultValue":"0","optiontype":"thumb_gallery","optionLable":"580335","optionPrice":0,"optionValue":"1499087"},{"optionDefaultValue":"0","optiontype":"thumb_gallery","optionLable":"580335","optionPrice":0,"optionValue":"1499088"},{"optionDefaultValue":"0","optiontype":"thumb_gallery","optionLable":"580335","optionPrice":0,"optionValue":"1499089"},{"optionDefaultValue":"0","optiontype":"thumb_gallery","optionLable":"580335","optionPrice":0,"optionValue":"1499090"},{"optionDefaultValue":"0","optiontype":"thumb_gallery","optionLable":"580335","optionPrice":0,"optionValue":"1499091"},{"optionDefaultValue":"0","optiontype":"thumb_gallery","optionLable":"580335","optionPrice":0,"optionValue":"1499092"}],
            OptionId: 0        };

        window.__emiproCustomOptionDefaultQueue = window.__emiproCustomOptionDefaultQueue || [];
        window.__emiproCustomOptionDefaultQueue.push(payload);

        if (window.__emiproCustomOptionDefaultRunnerBound) {
            return;
        }
        window.__emiproCustomOptionDefaultRunnerBound = true;

        function applyDefaultOptions() {
            var queue = window.__emiproCustomOptionDefaultQueue || [];
            var i, j, data, item, listNode, listInputs, input, selectNode, selectOption;

            for (i = 0; i < queue.length; i++) {
                data = queue[i] && queue[i].defaultOption ? queue[i].defaultOption : [];
                for (j = 0; j < data.length; j++) {
                    item = data[j];
                    if (!item || String(item.optionDefaultValue) !== '1') {
                        continue;
                    }

                    if (item.optiontype === 'radio'
                        || item.optiontype === 'checkbox'
                        || item.optiontype === 'thumb_gallery'
                        || item.optiontype === 'thumb_gallery_popup'
                        || item.optiontype === 'thumb_gallery_multi'
                    ) {
                        listNode = document.getElementById('options-' + item.optionLable + '-list');
                        if (!listNode) {
                            continue;
                        }
                        listInputs = listNode.querySelectorAll('input[value="' + item.optionValue + '"]');
                        if (!listInputs.length) {
                            continue;
                        }
                        input = listInputs[0];
                        input.checked = true;
                        input.dispatchEvent(new Event('click', { bubbles: true }));
                        input.dispatchEvent(new Event('change', { bubbles: true }));
                    } else if (item.optiontype === 'drop_down' || item.optiontype === 'multiple') {
                        selectNode = document.getElementById('select_' + item.optionLable);
                        if (!selectNode) {
                            continue;
                        }
                        selectOption = selectNode.querySelector('option[value="' + item.optionValue + '"]');
                        if (!selectOption) {
                            continue;
                        }
                        selectOption.selected = true;
                        selectNode.dispatchEvent(new Event('change', { bubbles: true }));
                    }
                }
            }
        }

        if (document.readyState === 'loading') {
            document.addEventListener('DOMContentLoaded', function () {
                setTimeout(applyDefaultOptions, 0);
            });
        } else {
            setTimeout(applyDefaultOptions, 0);
        }
    })();
</script>
<div style="display:none"><div class="custom-div-to-show-popup"></div></div><script type="text/javascript">
    var mediaurl = "https://www.mesrideaux.fr/";
    var baseImageChange = "";
    var enabled_tooltip = "0";
    var enabled_cmi = "1";
    var flag = 0;
</script>

<!-- custom options depends -->
<script type="text/javascript"> jsHide(580335); </script><script type="text/javascript">
function jsHide(optionId){
    require(['jquery'], function ($) {
        if (document.getElementById('options-'+optionId+'-list')) {
            var getActiveClass = $('#options-'+optionId+'-list').children().hasClass('selectDepend');
            if(!getActiveClass){
                document.getElementById('options-'+optionId+'-list').parentElement.parentElement.style.display = 'none';
            }
        }

        if(document.getElementById('select_'+optionId)){
            if(!$('#select_'+optionId).attr('multiple')){
                var getSelectedOptionValue = $('#select_'+optionId+' :selected').val();
                if(!getSelectedOptionValue){
                    document.getElementById('select_'+optionId).parentElement.parentElement.style.display = 'none';
                    document.getElementById('select_'+optionId).disabled = true;
                }
            }else{
                var getSelectedOption = $('#select_'+optionId+' :selected').length;
                if(getSelectedOption<1){
                    document.getElementById('select_'+optionId).parentElement.parentElement.style.display = 'none';
                    document.getElementById('select_'+optionId).disabled = true;
                }
            }
        }
    });
}
</script>
<!-- custom options depends -->
                                                                                                                
                    <span
                        class="btn-validconfig btn btn-primary"
                        data-step="2"
                    >
                        <span class="ok">OK</span>
                        <span class="valid">Valider</span>
                    </span>
                </div>
                    </div>
                </div>
            </div>
                    <div class="step pdp-dropdown mb-4" id="step_3">
                <button
                    type="button"
                    class="step-title pdp-dropdown__toggle w-full flex items-center justify-between gap-2 py-2 text-left"
                    aria-expanded="false"
                >
                    <span class="pdp-dropdown__label">Étape 4 : Je sélectionne ma doublure</span>
               
                    <span class="pdp-dropdown__caret" aria-hidden="true"></span>
                </button>
                <div class="pdp-dropdown__panel" aria-hidden="true">
                    <div class="pdp-dropdown__inner">
                <div class="step-wrapper">
                    
                    
                                                                                                                                                                                                                                                                                                                                                                                
<div id="doublure" class="field required">
            <div class="control">
        <span ></span>
        <div class="options-list nested" 
            id="options-580330-list"><div class="field choice admin__field admin__field-option required"><input data-sku="non" style="display: inline-block; vertical-align: middle;height: 100%; margin-left: 8px; box-shadow:none;" type="radio" class="rideau-doublure radio admin__control-radio option04  required product-custom-option" name="options[580330]" id="options_580330_2" value="1499069"  data-value="" data-selector="options[580330]" price="0" lastchange="" onclick="changeRadioChek('580330','radio')" /><label class="label admin__field-label"
                        for="options_580330_2">Aucune<span class="option-final-price" data-option-key="580330_1499069"></span></label></div><div class="field choice admin__field admin__field-option required"><input data-sku="classique-blanche" style="display: inline-block; vertical-align: middle;height: 100%; margin-left: 8px; box-shadow:none;" type="radio" class="rideau-doublure radio admin__control-radio option04  required product-custom-option" name="options[580330]" id="options_580330_3" value="1499070"  data-value="" data-selector="options[580330]" price="20" lastchange="" onclick="changeRadioChek('580330','radio')" /><label class="label admin__field-label"
                        for="options_580330_3">Classique blanche<span class="option-final-price" data-option-key="580330_1499070"></span></label></div><div class="field choice admin__field admin__field-option required"><input data-sku="classique-ecrue" style="display: inline-block; vertical-align: middle;height: 100%; margin-left: 8px; box-shadow:none;" type="radio" class="rideau-doublure radio admin__control-radio option04  required product-custom-option" name="options[580330]" id="options_580330_4" value="1499071"  data-value="" data-selector="options[580330]" price="20" lastchange="" onclick="changeRadioChek('580330','radio')" /><label class="label admin__field-label"
                        for="options_580330_4">Classique écrue<span class="option-final-price" data-option-key="580330_1499071"></span></label></div><div class="field choice admin__field admin__field-option required"><input data-sku="molletonnée" style="display: inline-block; vertical-align: middle;height: 100%; margin-left: 8px; box-shadow:none;" type="radio" class="rideau-doublure radio admin__control-radio option04  required product-custom-option" name="options[580330]" id="options_580330_5" value="1499072"  data-value="" data-selector="options[580330]" price="36" lastchange="" onclick="changeRadioChek('580330','radio')" /><label class="label admin__field-label"
                        for="options_580330_5">Molletonnée écrue<span class="option-final-price" data-option-key="580330_1499072"></span></label></div><div class="field choice admin__field admin__field-option required"><input data-sku="occultante" style="display: inline-block; vertical-align: middle;height: 100%; margin-left: 8px; box-shadow:none;" type="radio" class="rideau-doublure radio admin__control-radio option04  required product-custom-option" name="options[580330]" id="options_580330_6" value="1499073"  data-value="" data-selector="options[580330]" price="26" lastchange="" onclick="changeRadioChek('580330','radio')" /><label class="label admin__field-label"
                        for="options_580330_6">Occultante blanche<span class="option-final-price" data-option-key="580330_1499073"></span></label></div><div class="field choice admin__field admin__field-option required"><input data-sku="thermique-phonique" style="display: inline-block; vertical-align: middle;height: 100%; margin-left: 8px; box-shadow:none;" type="radio" class="rideau-doublure radio admin__control-radio option04  required product-custom-option" name="options[580330]" id="options_580330_7" value="1499074"  data-value="" data-selector="options[580330]" price="65" lastchange="" onclick="changeRadioChek('580330','radio')" /><label class="label admin__field-label"
                        for="options_580330_7">Thermique & Phonique<span class="option-final-price" data-option-key="580330_1499074"></span></label></div></div>
        <!-- custom options depends -->
                <!-- custom options depends -->

                    
                <!-- custom options depends -->
                                <input id="options_580330" type="radio" style="display:none;" price="" value="" name="options[580330]">

                                <!-- custom options depends -->

                <span id="options-580330-container"></span>
                        </div>
</div>
<script>
    (function () {
        var payload = {
            defaultOption: [{"optionDefaultValue":"0","optiontype":"radio","optionLable":"580330","optionPrice":0,"optionValue":"1499069"},{"optionDefaultValue":"0","optiontype":"radio","optionLable":"580330","optionPrice":20,"optionValue":"1499070"},{"optionDefaultValue":"0","optiontype":"radio","optionLable":"580330","optionPrice":20,"optionValue":"1499071"},{"optionDefaultValue":"0","optiontype":"radio","optionLable":"580330","optionPrice":36,"optionValue":"1499072"},{"optionDefaultValue":"0","optiontype":"radio","optionLable":"580330","optionPrice":26,"optionValue":"1499073"},{"optionDefaultValue":"0","optiontype":"radio","optionLable":"580330","optionPrice":65,"optionValue":"1499074"}],
            OptionId: 0        };

        window.__emiproCustomOptionDefaultQueue = window.__emiproCustomOptionDefaultQueue || [];
        window.__emiproCustomOptionDefaultQueue.push(payload);

        if (window.__emiproCustomOptionDefaultRunnerBound) {
            return;
        }
        window.__emiproCustomOptionDefaultRunnerBound = true;

        function applyDefaultOptions() {
            var queue = window.__emiproCustomOptionDefaultQueue || [];
            var i, j, data, item, listNode, listInputs, input, selectNode, selectOption;

            for (i = 0; i < queue.length; i++) {
                data = queue[i] && queue[i].defaultOption ? queue[i].defaultOption : [];
                for (j = 0; j < data.length; j++) {
                    item = data[j];
                    if (!item || String(item.optionDefaultValue) !== '1') {
                        continue;
                    }

                    if (item.optiontype === 'radio'
                        || item.optiontype === 'checkbox'
                        || item.optiontype === 'thumb_gallery'
                        || item.optiontype === 'thumb_gallery_popup'
                        || item.optiontype === 'thumb_gallery_multi'
                    ) {
                        listNode = document.getElementById('options-' + item.optionLable + '-list');
                        if (!listNode) {
                            continue;
                        }
                        listInputs = listNode.querySelectorAll('input[value="' + item.optionValue + '"]');
                        if (!listInputs.length) {
                            continue;
                        }
                        input = listInputs[0];
                        input.checked = true;
                        input.dispatchEvent(new Event('click', { bubbles: true }));
                        input.dispatchEvent(new Event('change', { bubbles: true }));
                    } else if (item.optiontype === 'drop_down' || item.optiontype === 'multiple') {
                        selectNode = document.getElementById('select_' + item.optionLable);
                        if (!selectNode) {
                            continue;
                        }
                        selectOption = selectNode.querySelector('option[value="' + item.optionValue + '"]');
                        if (!selectOption) {
                            continue;
                        }
                        selectOption.selected = true;
                        selectNode.dispatchEvent(new Event('change', { bubbles: true }));
                    }
                }
            }
        }

        if (document.readyState === 'loading') {
            document.addEventListener('DOMContentLoaded', function () {
                setTimeout(applyDefaultOptions, 0);
            });
        } else {
            setTimeout(applyDefaultOptions, 0);
        }
    })();
</script>
<div style="display:none"><div class="custom-div-to-show-popup"></div></div><script type="text/javascript">
    var mediaurl = "https://www.mesrideaux.fr/";
    var baseImageChange = "";
    var enabled_tooltip = "0";
    var enabled_cmi = "1";
    var flag = 0;
</script>

<!-- custom options depends -->
<script type="text/javascript">
function jsHide(optionId){
    require(['jquery'], function ($) {
        if (document.getElementById('options-'+optionId+'-list')) {
            var getActiveClass = $('#options-'+optionId+'-list').children().hasClass('selectDepend');
            if(!getActiveClass){
                document.getElementById('options-'+optionId+'-list').parentElement.parentElement.style.display = 'none';
            }
        }

        if(document.getElementById('select_'+optionId)){
            if(!$('#select_'+optionId).attr('multiple')){
                var getSelectedOptionValue = $('#select_'+optionId+' :selected').val();
                if(!getSelectedOptionValue){
                    document.getElementById('select_'+optionId).parentElement.parentElement.style.display = 'none';
                    document.getElementById('select_'+optionId).disabled = true;
                }
            }else{
                var getSelectedOption = $('#select_'+optionId+' :selected').length;
                if(getSelectedOption<1){
                    document.getElementById('select_'+optionId).parentElement.parentElement.style.display = 'none';
                    document.getElementById('select_'+optionId).disabled = true;
                }
            }
        }
    });
}
</script>
<!-- custom options depends -->
                                                                                                                                                                                    
                    <span
                        class="btn-validconfig btn btn-primary"
                        data-step="3"
                    >
                        <span class="ok">OK</span>
                        <span class="valid">Valider</span>
                    </span>
                </div>
                    </div>
                </div>
            </div>
                    <div class="step pdp-dropdown mb-4" id="step_4">
                <button
                    type="button"
                    class="step-title pdp-dropdown__toggle w-full flex items-center justify-between gap-2 py-2 text-left"
                    aria-expanded="false"
                >
                    <span class="pdp-dropdown__label">Étape 5 : Je sélectionne mon tombant</span>
               
                    <span class="pdp-dropdown__caret" aria-hidden="true"></span>
                </button>
                <div class="pdp-dropdown__panel" aria-hidden="true">
                    <div class="pdp-dropdown__inner">
                <div class="step-wrapper">
                                                                
                    
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
<div id="tombant" class="field required">
            <div class="control">
        <span class="hide" id="emispanlable_580334"></span>
        <div class="options-list nested" style=""
            id="options-580334-list"><div class="field choice admin__field admin__field-option required"><input data-sku="ausol" data-price=""
                    style="visibility: hidden;height: 35px; width: 35px;"
                    onclick='                    activeinputdiv(this,"emispanlable_580334","Au&nbsp;sol",0,"media/customoptions/t/o/tombant_ausol.jpg","","thumb_gallery",580334,"img","https://cdn4.mesrideaux.fr/customoptions/t/o/tombant_ausol_1.jpg","")' type="radio" class="rideau-tombant radio admin__control-radio option01  required product-custom-option" name="options[580334]" id="options_580334_2" value="1499083"  data-value="" data-selector="options[580334]" price="0" lastchange=""><label class="label admin__field-label"
                        for="options_580334_2"><div class="option-wrapper-img"><img class="lazyload" src="https://cdn4.mesrideaux.fr/customoptions/t/o/tombant_ausol_1.jpg" data-src="https://cdn4.mesrideaux.fr/customoptions/t/o/tombant_ausol_1.jpg" alt="Au sol" height="70" width="200" loading="lazy"></div><span>Au sol</span><span class="option-final-price" data-option-key="580334_1499083"></span></label></div><div class="field choice admin__field admin__field-option required"><input data-sku="cassant" data-price=""
                    style="visibility: hidden;height: 35px; width: 35px;"
                    onclick='                    activeinputdiv(this,"emispanlable_580334","Cassant&nbsp;(3cm&nbsp;seront&nbsp;ajoutés&nbsp;à&nbsp;votre&nbsp;hauteur&nbsp;renseignée)",0,"media/customoptions/t/o/tombant_5cm_1.jpg","","thumb_gallery",580334,"img","https://cdn4.mesrideaux.fr/customoptions/t/o/tombant_5cm_2.jpg","")' type="radio" class="rideau-tombant radio admin__control-radio option01  required product-custom-option" name="options[580334]" id="options_580334_3" value="1499084"  data-value="" data-selector="options[580334]" price="0" lastchange=""><label class="label admin__field-label"
                        for="options_580334_3"><div class="option-wrapper-img"><img class="lazyload" src="https://cdn4.mesrideaux.fr/customoptions/t/o/tombant_5cm_2.jpg" data-src="https://cdn4.mesrideaux.fr/customoptions/t/o/tombant_5cm_2.jpg" alt="Cassant (3cm seront ajoutés à votre hauteur renseignée)" height="70" width="200" loading="lazy"></div><span>Cassant (3cm seront ajoutés à votre hauteur renseignée)</span><span class="option-final-price" data-option-key="580334_1499084"></span></label></div></div>
        <!-- custom options depends -->
                    <input id="options_580334" type="radio" style="display:none;" price="" value="" name="options[580334]">
                <!-- custom options depends -->

                                </div>
</div>
<script>
    (function () {
        var payload = {
            defaultOption: [{"optionDefaultValue":"0","optiontype":"thumb_gallery","optionLable":"580334","optionPrice":0,"optionValue":"1499083"},{"optionDefaultValue":"0","optiontype":"thumb_gallery","optionLable":"580334","optionPrice":0,"optionValue":"1499084"}],
            OptionId: 0        };

        window.__emiproCustomOptionDefaultQueue = window.__emiproCustomOptionDefaultQueue || [];
        window.__emiproCustomOptionDefaultQueue.push(payload);

        if (window.__emiproCustomOptionDefaultRunnerBound) {
            return;
        }
        window.__emiproCustomOptionDefaultRunnerBound = true;

        function applyDefaultOptions() {
            var queue = window.__emiproCustomOptionDefaultQueue || [];
            var i, j, data, item, listNode, listInputs, input, selectNode, selectOption;

            for (i = 0; i < queue.length; i++) {
                data = queue[i] && queue[i].defaultOption ? queue[i].defaultOption : [];
                for (j = 0; j < data.length; j++) {
                    item = data[j];
                    if (!item || String(item.optionDefaultValue) !== '1') {
                        continue;
                    }

                    if (item.optiontype === 'radio'
                        || item.optiontype === 'checkbox'
                        || item.optiontype === 'thumb_gallery'
                        || item.optiontype === 'thumb_gallery_popup'
                        || item.optiontype === 'thumb_gallery_multi'
                    ) {
                        listNode = document.getElementById('options-' + item.optionLable + '-list');
                        if (!listNode) {
                            continue;
                        }
                        listInputs = listNode.querySelectorAll('input[value="' + item.optionValue + '"]');
                        if (!listInputs.length) {
                            continue;
                        }
                        input = listInputs[0];
                        input.checked = true;
                        input.dispatchEvent(new Event('click', { bubbles: true }));
                        input.dispatchEvent(new Event('change', { bubbles: true }));
                    } else if (item.optiontype === 'drop_down' || item.optiontype === 'multiple') {
                        selectNode = document.getElementById('select_' + item.optionLable);
                        if (!selectNode) {
                            continue;
                        }
                        selectOption = selectNode.querySelector('option[value="' + item.optionValue + '"]');
                        if (!selectOption) {
                            continue;
                        }
                        selectOption.selected = true;
                        selectNode.dispatchEvent(new Event('change', { bubbles: true }));
                    }
                }
            }
        }

        if (document.readyState === 'loading') {
            document.addEventListener('DOMContentLoaded', function () {
                setTimeout(applyDefaultOptions, 0);
            });
        } else {
            setTimeout(applyDefaultOptions, 0);
        }
    })();
</script>
<div style="display:none"><div class="custom-div-to-show-popup"></div></div><script type="text/javascript">
    var mediaurl = "https://www.mesrideaux.fr/";
    var baseImageChange = "";
    var enabled_tooltip = "0";
    var enabled_cmi = "1";
    var flag = 0;
</script>

<!-- custom options depends -->
<script type="text/javascript">
function jsHide(optionId){
    require(['jquery'], function ($) {
        if (document.getElementById('options-'+optionId+'-list')) {
            var getActiveClass = $('#options-'+optionId+'-list').children().hasClass('selectDepend');
            if(!getActiveClass){
                document.getElementById('options-'+optionId+'-list').parentElement.parentElement.style.display = 'none';
            }
        }

        if(document.getElementById('select_'+optionId)){
            if(!$('#select_'+optionId).attr('multiple')){
                var getSelectedOptionValue = $('#select_'+optionId+' :selected').val();
                if(!getSelectedOptionValue){
                    document.getElementById('select_'+optionId).parentElement.parentElement.style.display = 'none';
                    document.getElementById('select_'+optionId).disabled = true;
                }
            }else{
                var getSelectedOption = $('#select_'+optionId+' :selected').length;
                if(getSelectedOption<1){
                    document.getElementById('select_'+optionId).parentElement.parentElement.style.display = 'none';
                    document.getElementById('select_'+optionId).disabled = true;
                }
            }
        }
    });
}
</script>
<!-- custom options depends -->
                                            
                    <span
                        class="btn-validconfig btn btn-primary reloadprice"
                        data-step="4"
                    >
                        <span class="ok">OK</span>
                        <span class="valid">Valider</span>
                    </span>
                </div>
                    </div>
                </div>
            </div>
        
        <div class="stepper-recap">
            <span class="stepper-recap-title">
                Veuillez valider toutes les étapes de la personnalisation            </span>

            <ul>
                                <li data-scrolltarget="#step_1" class="step_1">1</li>
                                <li data-scrolltarget="#step_50" class="step_50">2</li>
                                <li data-scrolltarget="#step_2" class="step_2">3</li>
                                <li data-scrolltarget="#step_3" class="step_3">4</li>
                                <li data-scrolltarget="#step_4" class="step_4">5</li>
                            </ul>
        </div>
    </div>

    <script>
        require(
            [
                'jquery',
                'Magento_Ui/js/modal/modal'
            ],
            function ($, modal) {

                var options = {
                    type: 'popup',
                    responsive: true,
                    innerScroll: true,
                    buttons: []
                };

                function findByIdInDomAndShadow(id, root) {
                    var searchRoot = root || document;
                    if (!searchRoot) {
                        return null;
                    }

                    if (searchRoot.getElementById) {
                        var directMatch = searchRoot.getElementById(id);
                        if (directMatch) {
                            return directMatch;
                        }
                    }

                    var elements = searchRoot.querySelectorAll ? searchRoot.querySelectorAll('*') : [];
                    for (var i = 0; i < elements.length; i++) {
                        if (elements[i].shadowRoot) {
                            var inShadow = findByIdInDomAndShadow(id, elements[i].shadowRoot);
                            if (inShadow) {
                                return inShadow;
                            }
                        }
                    }

                    return null;
                }

                function initModalById(id) {
                    var element = findByIdInDomAndShadow(id);
                    if (element) {
                        modal(options, $(element));
                    }
                }

                function findInEventPath(event, selector) {
                    var path = event && event.originalEvent && event.originalEvent.composedPath
                        ? event.originalEvent.composedPath()
                        : [];

                    for (var i = 0; i < path.length; i++) {
                        if (path[i] && path[i].matches && path[i].matches(selector)) {
                            return path[i];
                        }
                    }

                    if (event && event.target && event.target.closest) {
                        return event.target.closest(selector);
                    }

                    return null;
                }

                initModalById('takeMeasures');
                initModalById('infoTombant');
                initModalById('infoTeterideau');

                $(document).on("click", function (event) {
                    var trigger = null;
                    var path = event.originalEvent && event.originalEvent.composedPath
                        ? event.originalEvent.composedPath()
                        : [];

                    for (var i = 0; i < path.length; i++) {
                        if (path[i] && path[i].classList && path[i].classList.contains('openModel')) {
                            trigger = path[i];
                            break;
                        }
                    }

                    if (!trigger && event.target && event.target.closest) {
                        trigger = event.target.closest('.openModel');
                    }

                    if (!trigger) {
                        return;
                    }

                    var modalId = trigger.getAttribute('data-id');
                    var modalElement = findByIdInDomAndShadow(modalId);

                    if (!modalElement) {
                        return;
                    }

                    $(modalElement).modal('openModal');
                    $(modalElement).show();
                });

                $('#configurateur .step').first().addClass('--active');
                if (window.mrSyncConfiguratorStepDropdownsFromDom) {
                    window.mrSyncConfiguratorStepDropdownsFromDom();
                }
                // $("body").on('click', '.step-title', function (e, state) {
                //     if (!$(this).next('.step-wrapper').is(":visible")) {
                //         $(this).parent().addClass("--active");
                //     }else {
                //         $(this).parent().removeClass("--active");
                //     }
                // });

                // select ept_emioptlable & addclass
                var $nbrrideaux = $('.rideau-nombre.option04').parent().parent().parent().parent();
                $nbrrideaux.addClass('nbr-rideaux-wrapper');

                $(document).on('click', 'a[href^="#"]', function(e) {
                    var id = $(this).attr('href');
                    var $id = $(id);
                    if ($id.length === 0) {
                        return;
                    }
                    e.preventDefault();
                    var pos = $id.offset().top;
                    $('body, html').animate({scrollTop: pos});
                });

                // Get the modal
                var modal = $("#finition-oeillets");

                // Get the button that opens the modal
                var btn = $('[data-sku="oeillets"]').next();

                // Get the <span> element that closes the modal
                var span = document.getElementsByClassName("close")[0];

                modal.find('.control').append('<span class="close">&times;</span>');

                // When the user clicks the button, open the modal
                btn.on('click', function() {
                    modal.show();
                });

                // When the user clicks on <span> (x), close the modal
                modal.find('.close').on('click', function() {
                    modal.hide();
                    console.log('____',$('.modals-overlay'));
                    $('.modals-overlay').remove();
                });

                // close modal on click outside at anywhere
                $(document).on('click', function (e) {
                    var closeButton = findInEventPath(e, '.action-close');
                    var clickedInsideModalContent = findInEventPath(e, '.modal-inner-wrap');
                    var clickedOverlay = findInEventPath(e, '.modals-overlay');
                    var clickedPopupBackdrop = findInEventPath(e, '.modal-popup._show');
                    var openedPopup = document.querySelector('.modal-popup._show');

                    if (!openedPopup) {
                        return;
                    }

                    if (closeButton) {
                        $(openedPopup).modal('closeModal');
                        $('.modals-overlay').remove();
                        return;
                    }

                    // Close on outside click (overlay/backdrop), including Shadow DOM events.
                    if (!clickedInsideModalContent && (clickedOverlay || clickedPopupBackdrop)) {
                        $(openedPopup).modal('closeModal');
                        $('.modals-overlay').remove();
                    }
                });

                $(document).on('change', '#finition-oeillets input[type="radio"]', function(){
                    modal.hide();
                });
            }
        );
    </script>

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

            <script type="text/x-magento-init">
        {
            "#product_addtocart_form": {
                "Magento_Catalog/js/validate-product": {
                    "bindSubmit": true
                }
            }
        }
        </script>
    
    <div class="flex flex-col sm:flex-row items-end my-4 mt-0 stepper-recap-price flex-wrap">

        
<div role="group" aria-label="Prix">
    <div class="price-box price-final_price" data-role="priceBox" data-product-id="35439" data-price-box="product-id-35439">                                    <span class="price-from-label"><small>Prix à partir de&nbsp;:&nbsp;</small></span>
            <span class="initial"
                itemprop="offers" itemscope itemtype="https://schema.org/Offer">
                <span class="price">374 €</span>                                    <meta itemprop="price" content="374">
                    <meta itemprop="priceCurrency" content="EUR">
                                TTC            </span>
                            <span></span>
    <script>
    require(
        [
            'jquery',
        ],
        function ($) {
            setTimeout(function () {
                $(".step.--active .btn-validconfig").click(function (e) {
                    e.preventDefault();
                    setTimeout(function () {
                        $('.price-from-label').hide();
                    }, 500);
                });
            }, 1000);
        }
    );
</script>
</div></div>

        <div class="flex mt-4 ml-auto sm:mt-0 product-cta-add-to-cart-container">
                                            
<div
    x-data="{isSampleValue: 0, samplePriceValue: '0'}"
    @hyva-sample-order.window="isSampleValue = 1; samplePriceValue = $event.detail.price"
>
    <input type="hidden" name="sample-price" form="product_addtocart_form" :value="samplePriceValue">
    <input type="hidden" name="isSample" id="isSample" form="product_addtocart_form" :value="isSampleValue">

    <button type="submit" form="product_addtocart_form" class="cursor-pointer btn btn-secondary" title="Ajouter&#x20;au&#x20;panier">
                <span class="lg:block">Ajouter au panier        </span>
    </button>
</div>
                    </div>

    </div>

    
    <div class="flex mt-4 justify-end mb-4">
    <script>
    function initWishlist_6a4eea588eef5() {
        return {
            isLoading: false,
            addToWishlist(productId) {
                if (this.isLoading) {
                    return;
                }

                this.isLoading = true;

                const postParams =                 {
                    action: BASE_URL + "wishlist/index/add/",
                    data: {
                        product: productId,
                        uenc: hyva.getUenc()
                    }
                }
                
                postParams.data['form_key'] = hyva.getFormKey();
                postParams.data['qty'] = document.getElementById(`qty[${productId}]`)
                    ? document.getElementById(`qty[${productId}]`).value || 1
                    : 1;

                let postData = Object.keys(postParams.data).map(key => {
                    return `${key}=${postParams.data[key]}`;
                }).join('&');

                Array.from(document.querySelectorAll(
                    '[name^=options], [name^=super_attribute], [name^=bundle_option], [name^=super_group], [name^=links]')
                ).map(input => {
                    if (input.type === "select-multiple") {
                        Array.from(input.selectedOptions).forEach(option => {
                            postData += `&${input.name}=${option.value}`
                        })
                    } else {
                        if(!(['radio', 'checkbox', 'select'].includes(input.type) && !input.checked)) {
                            postData += `&${input.name}=${input.value}`
                        }
                    }
                });

                fetch(postParams.action, {
                    "headers": {
                        "content-type": "application/x-www-form-urlencoded; charset=UTF-8",
                    },
                    "body": postData,
                    "method": "POST",
                    "mode": "cors",
                    "credentials": "include"
                }).then((response) => {
                    if (response.redirected) {
                        window.location.href = response.url;
                    } else if (response.ok) {
                        return response.json();
                    } else {
                        typeof window.dispatchMessages !== "undefined" && window.dispatchMessages(
                            [{
                                type: "warning",
                                text: "Could not add item to wishlist."
                            }], 5000
                        );
                    }
                }).then((response) => {
                    if (!response) {
                        return;
                    }
                    typeof window.dispatchMessages !== "undefined" && window.dispatchMessages(
                        [{
                            type: (response.success) ? "success" : "error",
                            text: (response.success)
                                ? "Produit a été ajouté à votre liste d&#039;achats."
                                : response.error_message
                        }], 5000
                    );
                    const reloadCustomerDataEvent = new CustomEvent("reload-customer-section-data");
                    window.dispatchEvent(reloadCustomerDataEvent);
                }).catch((error) => {
                    typeof window.dispatchMessages !== "undefined" && window.dispatchMessages(
                        [{
                            type: "error",
                            text: error
                        }], 5000
                    );
                }).finally(() => {
                    this.isLoading = false;
                });
            }
        }
    }
</script>

<button x-data="initWishlist_6a4eea588eef5()"
        @click.prevent="addToWishlist(35439)"
        :disabled="isLoading"
        :aria-busy="isLoading"
        title="Ajouter&#x20;&#xE0;&#x20;la&#x20;liste&#x20;d&#x27;achats"
        aria-label="Ajouter&#x20;&#xE0;&#x20;la&#x20;liste&#x20;d&#x27;achats"
        id="add-to-wishlist"
        class="btn p-2 rounded-full ml-4 relative inline-flex items-center justify-center w-9 h-9"
        data-addto="wishlist"
>
    <span x-show="!isLoading" x-cloak aria-hidden="true">
        <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" viewbox="0 0 24 24" aria-hidden="true"><path d="M2 9.5a5.5 5.5 0 0 1 9.591-3.676.56.56 0 0 0 .818 0A5.49 5.49 0 0 1 22 9.5c0 2.29-1.5 4-3 5.5l-5.492 5.313a2 2 0 0 1-3 .019L5 15c-1.5-1.5-3-3.2-3-5.5"/></svg>
    </span>
    <span x-show="isLoading" x-cloak class="inline-flex items-center justify-center" aria-hidden="true">
        <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" viewbox="0 0 24 24" class="animate-spin" aria-hidden="true"><path d="M21 12a9 9 0 1 1-6.219-8.56"/></svg>
    </span>
    <span class="sr-only" x-text="isLoading ? 'Chargement...' : ''"></span>
</button>
    </div>

    
    </div>

            <div 
        x-data="{ expanded: false }"
        class="mb-4 product-description prose relative"
    >
        <div 
           
            class="transition-all duration-300  product-description-text"
        >
            Apportez du relief, de la couleur et une vraie présence décorative à votre intérieur avec le rideau Majorelle en velours. Confectionné sur mesure, ce rideau transforme vos fenêtres en élément central pour votre pièce tout en habillant votre espace avec élégance. Son motif floral généreux, inspiré d’un jardin vibrant et lumineux, crée une atmosphère raffinée, chaleureuse et pleine de caractère. Dans votre salon, votre chambre ou votre espace de réception, il attire le regard sans jamais perdre en sophistication.            
        </div>
        <button
            type="button"
            class="bg-white px-2 py-1 mt-2 text-sm font-medium underline toggle-short-description mx-auto"
            
           
            >Lire la suite</button>

        
    </div>

    <script>
        document.addEventListener('DOMContentLoaded', function() {
            const toggleShortDescription = document.querySelector('.toggle-short-description');
            const productDescriptionText = document.querySelector('.product-description-text');
            let expanded = false;
            const collapsedHeight = '45px';

            // Helper to apply/collapse only if viewport < 768px
            function applyShortDescBehavior() {
                if (window.innerWidth < 768) {
                    productDescriptionText.style.transition = 'height 0.3s';
                    if (!expanded) {
                        productDescriptionText.style.height = collapsedHeight;
                        toggleShortDescription.textContent = 'Lire la suite';
                    } else {
                        // Ensure expanded height correct on resize
                        productDescriptionText.style.height = productDescriptionText.scrollHeight + 'px';
                        toggleShortDescription.textContent = 'Réduire';
                    }
                    toggleShortDescription.style.display = '';
                } else {
                    // Remove inline height for desktop and hide button
                    productDescriptionText.style.height = '';
                    toggleShortDescription.style.display = 'none';
                }
            }

            // Initial setup
            applyShortDescBehavior();

            toggleShortDescription.addEventListener('click', function() {
                if (window.innerWidth >= 768) return; // Don't react on desktop
                if (!expanded) {
                    productDescriptionText.style.height = productDescriptionText.scrollHeight + 'px';
                    toggleShortDescription.textContent = 'Réduire';
                } else {
                    productDescriptionText.style.height = collapsedHeight;
                    toggleShortDescription.textContent = 'Lire la suite';
                }
                expanded = !expanded;
            });

            window.addEventListener('resize', function() {
                applyShortDescBehavior();
            });
        });
    </script>
    
        
        <div class="product-additional-info">
    <div class="pdp-dropdown mb-4">
        <button
            type="button"
            class="pdp-dropdown__toggle w-full flex items-center justify-between gap-2 py-2 text-left"
            aria-expanded="false"
        >
            <span class="pdp-dropdown__label">Descriptions</span>
            <span class="pdp-dropdown__caret" aria-hidden="true"></span>
        </button>
        <div class="pdp-dropdown__panel" aria-hidden="true">
            <div class="pdp-dropdown__inner">
                <div class="leading-relaxed product-description prose">
                    <h2 dir="ltr"><strong>Un tissu en velours au motif floral signé Thevenon</strong></h2>
<p dir="ltr">Le rideau Majorelle en velours met à l’honneur un tissu d’éditeur au dessin expressif, édité par la Maison Thevenon. Son décor évoque des branches jaillissantes, des couleurs lumineuses et une composition végétale dynamique. Sur support velours, le motif gagne en profondeur. La matière capte la lumière, intensifie les nuances et apporte une sensation enveloppante à la décoration.</p>
<p dir="ltr">Ce tissu Majorelle convient parfaitement aux intérieurs qui recherchent une touche artistique, florale et contemporaine. Grâce à sa laize de 140 cm et à son poids de 300 g/m², il permet de réaliser des rideaux décoratifs avec un beau tombé. Son style floral imprimé s’intègre aussi bien dans une ambiance classique revisitée que dans un décor plus audacieux.</p>
<h2 dir="ltr"><strong>Une confection sur mesure au service du beau tombé</strong></h2>
<p dir="ltr">Ce rideau est confectionné selon vos dimensions afin de s’adapter précisément à vos fenêtres, à votre hauteur sous plafond et à l’effet recherché. Le sur-mesure permet d’obtenir un rendu harmonieux avec des proportions justes et une finition soignée.</p>
<p dir="ltr">Notre savoir-faire de confection valorise la richesse du velours et le mouvement du motif. Selon vos préférences, vous pouvez choisir différentes finitions pour créer un rideau élégant, pratique et parfaitement adapté à votre intérieur (tombé ample, rendu plus structuré ou esprit décoratif affirmé).</p>
<h2 dir="ltr"><strong>Mettre en valeur votre rideau Majorelle en velours</strong></h2>
<p dir="ltr">Pour un effet généreux, privilégiez une ampleur suffisante afin de révéler toute la beauté du dessin. Dans votre pièce lumineuse, le velours du tissu Majorelle apporte du relief et adoucit l’ambiance. Dans une décoration plus sobre, il devient une pièce forte, capable de réveiller l’ensemble avec élégance.</p>
<p dir="ltr">Associez ce rideau sur mesure à des teintes naturelles, profondes ou poudrées selon le coloris choisi. Le rideau Majorelle en velours est idéal pour créer une décoration intérieure expressive, raffinée et personnalisée.</p>
<p> </p>                </div>
            </div>
        </div>
    </div>

    <div class="pdp-dropdown mb-4">
        <button
            type="button"
            class="pdp-dropdown__toggle w-full flex items-center justify-between gap-2 py-2 text-left"
            aria-expanded="false"
        >
            <span class="pdp-dropdown__label">Caractéristiques</span>
            <span class="pdp-dropdown__caret" aria-hidden="true"></span>
        </button>
        <div class="pdp-dropdown__panel" aria-hidden="true">
            <div class="pdp-dropdown__inner">
                <div class="table-wrapper max-w-prose overflow-x-auto" id="product-attributes-gallery">
                    <table class="additional-attributes w-full">
                                                    <tr class="border-b border-gray-300 last:border-b-0">
                                <th class="col label w-1/2 py-2 text-left text-fg-secondary font-normal product-attribute-label"
                                    scope="row">Réf.</th>
                                <td class="col data w-1/2 py-2 pl-2 text-left product-attribute-value"
                                    data-th="R&#xE9;f."
                                >                                        2503908-thevenon                                    </td>
                            </tr>
                                                    <tr class="border-b border-gray-300 last:border-b-0">
                                <th class="col label w-1/2 py-2 text-left text-fg-secondary font-normal product-attribute-label"
                                    scope="row">Éditeur</th>
                                <td class="col data w-1/2 py-2 pl-2 text-left product-attribute-value"
                                    data-th="&#xC9;diteur"
                                >                                        Thevenon                                    </td>
                            </tr>
                                                    <tr class="border-b border-gray-300 last:border-b-0">
                                <th class="col label w-1/2 py-2 text-left text-fg-secondary font-normal product-attribute-label"
                                    scope="row">Laize / Largeur</th>
                                <td class="col data w-1/2 py-2 pl-2 text-left product-attribute-value"
                                    data-th="Laize&#x20;&#x2F;&#x20;Largeur"
                                >                                        140 cm                                    </td>
                            </tr>
                                                    <tr class="border-b border-gray-300 last:border-b-0">
                                <th class="col label w-1/2 py-2 text-left text-fg-secondary font-normal product-attribute-label"
                                    scope="row">Information</th>
                                <td class="col data w-1/2 py-2 pl-2 text-left product-attribute-value"
                                    data-th="Information"
                                >                                        100% Polyester                                    </td>
                            </tr>
                                                    <tr class="border-b border-gray-300 last:border-b-0">
                                <th class="col label w-1/2 py-2 text-left text-fg-secondary font-normal product-attribute-label"
                                    scope="row">Raccord vertical</th>
                                <td class="col data w-1/2 py-2 pl-2 text-left product-attribute-value"
                                    data-th="Raccord&#x20;vertical"
                                >                                        64 cm                                    </td>
                            </tr>
                                                    <tr class="border-b border-gray-300 last:border-b-0">
                                <th class="col label w-1/2 py-2 text-left text-fg-secondary font-normal product-attribute-label"
                                    scope="row">Raccord horizontal</th>
                                <td class="col data w-1/2 py-2 pl-2 text-left product-attribute-value"
                                    data-th="Raccord&#x20;horizontal"
                                >                                        133.5 cm                                    </td>
                            </tr>
                                                    <tr class="border-b border-gray-300 last:border-b-0">
                                <th class="col label w-1/2 py-2 text-left text-fg-secondary font-normal product-attribute-label"
                                    scope="row">Conseil</th>
                                <td class="col data w-1/2 py-2 pl-2 text-left product-attribute-value"
                                    data-th="Conseil"
                                >                                        Prévoir un rétrécissement de 2 à 5% au premier lavage                                    </td>
                            </tr>
                                                    <tr class="border-b border-gray-300 last:border-b-0">
                                <th class="col label w-1/2 py-2 text-left text-fg-secondary font-normal product-attribute-label"
                                    scope="row">Informations techniques</th>
                                <td class="col data w-1/2 py-2 pl-2 text-left product-attribute-value"
                                    data-th="Informations&#x20;techniques"
                                >                                        <div class="flex flex-wrap gap-2 fiche-technique-items"><div class="flex items-center gap-2 w-full" data-fiche-technique-id="371"><img src="https://cdn3.mesrideaux.fr/version1783511887/frontend/MesRideaux/hyva-child/fr_FR/icons/caracteristiques/371.png" alt="Lavage programme modéré 30°C" width="48" height="48">Lavage programme modéré 30°C</div><div class="flex items-center gap-2 w-full" data-fiche-technique-id="375"><img src="https://cdn3.mesrideaux.fr/version1783511887/frontend/MesRideaux/hyva-child/fr_FR/icons/caracteristiques/375.png" alt="Ne pas sécher à la machine" width="48" height="48">Ne pas sécher à la machine</div><div class="flex items-center gap-2 w-full" data-fiche-technique-id="379"><img src="https://cdn3.mesrideaux.fr/version1783511887/frontend/MesRideaux/hyva-child/fr_FR/icons/caracteristiques/379.png" alt="Repassage à température faible" width="48" height="48">Repassage à température faible</div><div class="flex items-center gap-2 w-full" data-fiche-technique-id="382"><img src="https://cdn3.mesrideaux.fr/version1783511887/frontend/MesRideaux/hyva-child/fr_FR/icons/caracteristiques/382.png" alt="Blanchiment exclu" width="48" height="48">Blanchiment exclu</div><div class="flex items-center gap-2 w-full" data-fiche-technique-id="385"><img src="https://cdn3.mesrideaux.fr/version1783511887/frontend/MesRideaux/hyva-child/fr_FR/icons/caracteristiques/385.png" alt="Nettoyage à sec processus de ménagement" width="48" height="48">Nettoyage à sec processus de ménagement</div></div>                                    </td>
                            </tr>
                                            </table>
                </div>
            </div>
        </div>
    </div>
</div></section>

<div class="product-options-bottom">
    </div>


<section
    id="mesrideaux-product-cross-sell"
    class="snap-slider product-slider my-8"
    aria-label="Vous&#x20;aimeriez&#x20;aussi&#x20;..."
    x-data
 x-snap-slider.group-pager
 x-defer="intersect"
>
    <a
        href="#mesrideaux-product-cross-sell-slider-end"
        class="sr-only focus:not-sr-only focus:absolute focus:z-30 focus:bg-white"
    >Press to skip carousel</a>

    <div class="flex gap-2 justify-center items-center w-full text-center mb-4">
        <h2 class="text-2xl font-medium">Vous aimeriez aussi ...</h2>
        <div class="flex gap-2 hidden">
            <button
                type="button"
                class="btn btn-secondary p-2 invisible"
                aria-label="Previous&#x20;Slide"
                data-prev
 disabled
><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" viewbox="0 0 24 24" class="rtl:-rotate-180" aria-hidden="true"><path d="m12 19-7-7 7-7M19 12H5"/></svg>
</button>
            <button
                type="button"
                class="btn btn-secondary p-2 invisible"
                aria-label="Next&#x20;Slide"
                data-next
 disabled
><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" viewbox="0 0 24 24" class="rtl:-rotate-180" aria-hidden="true"><path d="M5 12h14M12 5l7 7-7 7"/></svg>
</button>
        </div>
    </div>

    <div class="snap-track&#x20;md&#x3A;&#x5B;--snap-cols&#x3A;2&#x5D;&#x20;lg&#x3A;&#x5B;--snap-cols&#x3A;3&#x5D;&#x20;xl&#x3A;&#x5B;--snap-cols&#x3A;4&#x5D;" data-track tabindex="0" aria-live="polite">
                    <div
                id="mesrideaux-product-cross-sell-16762"
                class="flex flex-col"
                role="tabpanel"
            >
                                <article class="product-block product-block--list flex flex-col   item product product-item col-lg-4 col-md-4 col-sm-4 col-xs-12">
                                                            <div class="product-item-info flex flex-col flex-1" data-container="product-grid">
                        <a href="https://www.mesrideaux.fr/rideaux/rideau-kiowa-rainbow-1533824715" data-plp-product-url>
                            <div class="product-block__first">
                                <div class="product-block__images overflow-hidden">
                                                                                                                <!--<span class="best lazyload">-->  <!--</span>-->
                                                                        <img src="https://cdn4.mesrideaux.fr/catalog/product/cache/eddd32ef720e909fecec8d69051e6d0d/r/i/rideau-kiowa-rainbow-vue-large.webp"
                                         alt="RIDEAU KIOWA RAINBOW"
                                         class="img-responsive product-image-photo lazyload"
                                         height="216" width="216" loading="lazy" decoding="async" fetchpriority="low"
                                         />
                                    <div class="product-block__see icon-search">
                                        <svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewbox="0 0 32 32" style="" fill="white">
                                            <path d="M28.664 32l-10.146-10.148 0.697-0.697 9.449 9.449 1.939-1.938-9.452-9.454 0.697-0.697 10.149 10.151-3.332 3.334zM12.085 24.203c-3.342-0.003-6.366-1.365-8.549-3.563l-0.001-0.001c-4.714-4.714-4.714-12.387 0-17.102s12.388-4.715 17.102 0v0c4.714 4.714 4.714 12.387 0 17.102-0.444 0.445-0.922 0.856-1.43 1.228l-0.034 0.024c-1.961 1.443-4.423 2.31-7.088 2.312h-0zM12.085 0.987c-0.005 0-0.012 0-0.018 0-3.060 0-5.83 1.241-7.834 3.247l-0 0c-4.33 4.331-4.33 11.374 0 15.708 3.884 3.884 9.923 4.368 14.361 1.152 0.499-0.365 0.938-0.742 1.347-1.151v0c4.33-4.332 4.33-11.378 0-15.709v0c-2.005-2.006-4.775-3.248-7.835-3.248-0.007 0-0.014 0-0.021 0h0.001z"></path>
                                        </svg>
                                    </div>
                                                                        <span class="product-block__alt-img lazyload e" data-hover-bg="https://cdn4.mesrideaux.fr/catalog/product/cache/eddd32ef720e909fecec8d69051e6d0d/r/i/rideau-kiowa-rainbow-gros-plan.webp"></span>
                                </div>
                            </div>
                        </a>

                                                <div data-role="add-to-links" class="actions-secondary">
                                                    </div>

                        <div class="product-block__content product details product-item-details flex flex-col flex-1">
                            <a href="https://www.mesrideaux.fr/rideaux/rideau-kiowa-rainbow-1533824715" class="product-block__link flex flex-col flex-1" data-plp-product-url>
                                <p class="product-block__title flex-1">
                                    Rideau kiowa rainbow                                </p>
                           
                           
                                <p class="product-block__subtitle">Romo</p>                            </a>
                                                                                    <div class="product-block__price">
                                    <div class="product-block__price__first flex justify-between">
                                        <span class="product-block__price__label">À partir de :</span>
                                        <span class="product-block__price__value">                                                <div class="price-box price-final_price italic" data-role="priceBox" data-product-id="16762">
                                                    <span class="price-container price-final_price tax weee">
                                                        <span data-price-amount="1800.0000"
                                                              data-price-type="finalPrice"
                                                              class="price-wrapper">1 800 €                                                        </span>
                                                    </span>
                                                                                                            <span>TTC</span>
                                                                                                                                                                <!--<div class="product-block__price__last text-right">-->
                                                            <span class="product-block__price__unit">
                                                                                                                            </span>
                                                        <!--</div>-->
                                                                                                    </div>
                                                                                </span>
                                    </div>
                                    
                                </div>
                        </div>
                    </div>
                    <div class="product-block__cta">
                        <a href="https://www.mesrideaux.fr/rideaux/rideau-kiowa-rainbow-1533824715" class="btn btn-primary" data-plp-product-url>
                            <span class="classic-button width-60-button">Personnaliser</span>
                        </a>
                    </div>
                </article>
            </div>
                    <div
                id="mesrideaux-product-cross-sell-32040"
                class="flex flex-col"
                role="tabpanel"
            >
                                <article class="product-block product-block--list flex flex-col   item product product-item col-lg-4 col-md-4 col-sm-4 col-xs-12">
                                                            <div class="product-item-info flex flex-col flex-1" data-container="product-grid">
                        <a href="https://www.mesrideaux.fr/rideau-mimosa.html?coloris=705" data-plp-product-url>
                            <div class="product-block__first">
                                <div class="product-block__images overflow-hidden">
                                                                            <span class="new lazyload">Nouveau</span>
                                                                                                                <!--<span class="best lazyload">-->  <!--</span>-->
                                                                        <img src="https://cdn4.mesrideaux.fr/catalog/product/cache/eddd32ef720e909fecec8d69051e6d0d/r/i/rideau-mimosa-santorin-vue-large_1_1.webp"
                                         alt="Rideau Mimosa"
                                         class="img-responsive product-image-photo lazyload"
                                         height="216" width="216" loading="lazy" decoding="async" fetchpriority="low"
                                         />
                                    <div class="product-block__see icon-search">
                                        <svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewbox="0 0 32 32" style="" fill="white">
                                            <path d="M28.664 32l-10.146-10.148 0.697-0.697 9.449 9.449 1.939-1.938-9.452-9.454 0.697-0.697 10.149 10.151-3.332 3.334zM12.085 24.203c-3.342-0.003-6.366-1.365-8.549-3.563l-0.001-0.001c-4.714-4.714-4.714-12.387 0-17.102s12.388-4.715 17.102 0v0c4.714 4.714 4.714 12.387 0 17.102-0.444 0.445-0.922 0.856-1.43 1.228l-0.034 0.024c-1.961 1.443-4.423 2.31-7.088 2.312h-0zM12.085 0.987c-0.005 0-0.012 0-0.018 0-3.060 0-5.83 1.241-7.834 3.247l-0 0c-4.33 4.331-4.33 11.374 0 15.708 3.884 3.884 9.923 4.368 14.361 1.152 0.499-0.365 0.938-0.742 1.347-1.151v0c4.33-4.332 4.33-11.378 0-15.709v0c-2.005-2.006-4.775-3.248-7.835-3.248-0.007 0-0.014 0-0.021 0h0.001z"></path>
                                        </svg>
                                    </div>
                                                                        <span class="product-block__alt-img lazyload e" data-hover-bg="https://cdn4.mesrideaux.fr/catalog/product/cache/eddd32ef720e909fecec8d69051e6d0d/r/i/rideau-mimosa-santorin-gros-plan_1_1.webp"></span>
                                </div>
                            </div>
                        </a>

                                                <div data-role="add-to-links" class="actions-secondary">
                                                    </div>

                        <div class="product-block__content product details product-item-details flex flex-col flex-1">
                            <a href="https://www.mesrideaux.fr/rideau-mimosa.html?coloris=705" class="product-block__link flex flex-col flex-1" data-plp-product-url>
                                <p class="product-block__title flex-1">
                                    Rideau mimosa                                </p>
                           
                           
                                <p class="product-block__subtitle">Lelièvre</p>                            </a>
                                                                                    <div class="product-block__price">
                                    <div class="product-block__price__first flex justify-between">
                                        <span class="product-block__price__label">À partir de :</span>
                                        <span class="product-block__price__value">                                                <div class="price-box price-final_price italic" data-role="priceBox" data-product-id="32040">
                                                    <span class="price-container price-final_price tax weee">
                                                        <span data-price-amount="2008.0000"
                                                              data-price-type="finalPrice"
                                                              class="price-wrapper">2 008 €                                                        </span>
                                                    </span>
                                                                                                            <span>TTC</span>
                                                                                                                                                                <!--<div class="product-block__price__last text-right">-->
                                                            <span class="product-block__price__unit">
                                                                                                                            </span>
                                                        <!--</div>-->
                                                                                                    </div>
                                                                                </span>
                                    </div>
                                    
                                </div>
                        </div>
                    </div>
                    <div class="product-block__cta">
                        <a href="https://www.mesrideaux.fr/rideau-mimosa.html?coloris=705" class="btn btn-primary" data-plp-product-url>
                            <span class="classic-button width-60-button">Personnaliser</span>
                        </a>
                    </div>
                </article>
            </div>
                    <div
                id="mesrideaux-product-cross-sell-32221"
                class="flex flex-col"
                role="tabpanel"
            >
                                <article class="product-block product-block--list flex flex-col   item product product-item col-lg-4 col-md-4 col-sm-4 col-xs-12">
                                                            <div class="product-item-info flex flex-col flex-1" data-container="product-grid">
                        <a href="https://www.mesrideaux.fr/rideau-olea-32221.html?coloris=518" data-plp-product-url>
                            <div class="product-block__first">
                                <div class="product-block__images overflow-hidden">
                                                                                                                <!--<span class="best lazyload">-->  <!--</span>-->
                                                                        <img src="https://cdn4.mesrideaux.fr/catalog/product/cache/eddd32ef720e909fecec8d69051e6d0d/r/i/rideau-olea-or-vue-large_1_1.webp"
                                         alt="Rideau Olea"
                                         class="img-responsive product-image-photo lazyload"
                                         height="216" width="216" loading="lazy" decoding="async" fetchpriority="low"
                                         />
                                    <div class="product-block__see icon-search">
                                        <svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewbox="0 0 32 32" style="" fill="white">
                                            <path d="M28.664 32l-10.146-10.148 0.697-0.697 9.449 9.449 1.939-1.938-9.452-9.454 0.697-0.697 10.149 10.151-3.332 3.334zM12.085 24.203c-3.342-0.003-6.366-1.365-8.549-3.563l-0.001-0.001c-4.714-4.714-4.714-12.387 0-17.102s12.388-4.715 17.102 0v0c4.714 4.714 4.714 12.387 0 17.102-0.444 0.445-0.922 0.856-1.43 1.228l-0.034 0.024c-1.961 1.443-4.423 2.31-7.088 2.312h-0zM12.085 0.987c-0.005 0-0.012 0-0.018 0-3.060 0-5.83 1.241-7.834 3.247l-0 0c-4.33 4.331-4.33 11.374 0 15.708 3.884 3.884 9.923 4.368 14.361 1.152 0.499-0.365 0.938-0.742 1.347-1.151v0c4.33-4.332 4.33-11.378 0-15.709v0c-2.005-2.006-4.775-3.248-7.835-3.248-0.007 0-0.014 0-0.021 0h0.001z"></path>
                                        </svg>
                                    </div>
                                                                        <span class="product-block__alt-img lazyload e" data-hover-bg="https://cdn4.mesrideaux.fr/catalog/product/cache/eddd32ef720e909fecec8d69051e6d0d/r/i/rideau-olea-or-photo-tissu_1.webp"></span>
                                </div>
                            </div>
                        </a>

                                                <div data-role="add-to-links" class="actions-secondary">
                                                    </div>

                        <div class="product-block__content product details product-item-details flex flex-col flex-1">
                            <a href="https://www.mesrideaux.fr/rideau-olea-32221.html?coloris=518" class="product-block__link flex flex-col flex-1" data-plp-product-url>
                                <p class="product-block__title flex-1">
                                    Rideau olea                                </p>
                           
                           
                                <p class="product-block__subtitle">Lelièvre</p>                            </a>
                                                                                    <div class="product-block__price">
                                    <div class="product-block__price__first flex justify-between">
                                        <span class="product-block__price__label">À partir de :</span>
                                        <span class="product-block__price__value">                                                <div class="price-box price-final_price italic" data-role="priceBox" data-product-id="32221">
                                                    <span class="price-container price-final_price tax weee">
                                                        <span data-price-amount="1404.0000"
                                                              data-price-type="finalPrice"
                                                              class="price-wrapper">1 404 €                                                        </span>
                                                    </span>
                                                                                                            <span>TTC</span>
                                                                                                                                                                <!--<div class="product-block__price__last text-right">-->
                                                            <span class="product-block__price__unit">
                                                                                                                            </span>
                                                        <!--</div>-->
                                                                                                    </div>
                                                                                </span>
                                    </div>
                                    
                                </div>
                        </div>
                    </div>
                    <div class="product-block__cta">
                        <a href="https://www.mesrideaux.fr/rideau-olea-32221.html?coloris=518" class="btn btn-primary" data-plp-product-url>
                            <span class="classic-button width-60-button">Personnaliser</span>
                        </a>
                    </div>
                </article>
            </div>
                    <div
                id="mesrideaux-product-cross-sell-35440"
                class="flex flex-col"
                role="tabpanel"
            >
                                <article class="product-block product-block--list flex flex-col   item product product-item col-lg-4 col-md-4 col-sm-4 col-xs-12">
                                                            <div class="product-item-info flex flex-col flex-1" data-container="product-grid">
                        <a href="https://www.mesrideaux.fr/rideau-celine-sur-coton.html?coloris=1007" data-plp-product-url>
                            <div class="product-block__first">
                                <div class="product-block__images overflow-hidden">
                                                                            <span class="new lazyload">Nouveau</span>
                                                                                                                <!--<span class="best lazyload">-->  <!--</span>-->
                                                                        <img src="https://cdn4.mesrideaux.fr/catalog/product/cache/eddd32ef720e909fecec8d69051e6d0d/r/i/rideau-celine-fond-ficelle-vue-large_1_1.webp"
                                         alt="RIDEAU CELINE"
                                         class="img-responsive product-image-photo lazyload"
                                         height="216" width="216" loading="lazy" decoding="async" fetchpriority="low"
                                         />
                                    <div class="product-block__see icon-search">
                                        <svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewbox="0 0 32 32" style="" fill="white">
                                            <path d="M28.664 32l-10.146-10.148 0.697-0.697 9.449 9.449 1.939-1.938-9.452-9.454 0.697-0.697 10.149 10.151-3.332 3.334zM12.085 24.203c-3.342-0.003-6.366-1.365-8.549-3.563l-0.001-0.001c-4.714-4.714-4.714-12.387 0-17.102s12.388-4.715 17.102 0v0c4.714 4.714 4.714 12.387 0 17.102-0.444 0.445-0.922 0.856-1.43 1.228l-0.034 0.024c-1.961 1.443-4.423 2.31-7.088 2.312h-0zM12.085 0.987c-0.005 0-0.012 0-0.018 0-3.060 0-5.83 1.241-7.834 3.247l-0 0c-4.33 4.331-4.33 11.374 0 15.708 3.884 3.884 9.923 4.368 14.361 1.152 0.499-0.365 0.938-0.742 1.347-1.151v0c4.33-4.332 4.33-11.378 0-15.709v0c-2.005-2.006-4.775-3.248-7.835-3.248-0.007 0-0.014 0-0.021 0h0.001z"></path>
                                        </svg>
                                    </div>
                                                                        <span class="product-block__alt-img lazyload e" data-hover-bg="https://cdn4.mesrideaux.fr/catalog/product/cache/eddd32ef720e909fecec8d69051e6d0d/r/i/rideau-celine-fond-ficelle-photo-tissu_1_1.webp"></span>
                                </div>
                            </div>
                        </a>

                                                <div data-role="add-to-links" class="actions-secondary">
                                                    </div>

                        <div class="product-block__content product details product-item-details flex flex-col flex-1">
                            <a href="https://www.mesrideaux.fr/rideau-celine-sur-coton.html?coloris=1007" class="product-block__link flex flex-col flex-1" data-plp-product-url>
                                <p class="product-block__title flex-1">
                                    Rideau celine                                </p>
                           
                           
                                <p class="product-block__subtitle">Thevenon</p>                            </a>
                                                                                    <div class="product-block__price">
                                    <div class="product-block__price__first flex justify-between">
                                        <span class="product-block__price__label">À partir de :</span>
                                        <span class="product-block__price__value">                                                <div class="price-box price-final_price italic" data-role="priceBox" data-product-id="35440">
                                                    <span class="price-container price-final_price tax weee">
                                                        <span data-price-amount="340.0000"
                                                              data-price-type="finalPrice"
                                                              class="price-wrapper">340 €                                                        </span>
                                                    </span>
                                                                                                            <span>TTC</span>
                                                                                                                                                                <!--<div class="product-block__price__last text-right">-->
                                                            <span class="product-block__price__unit">
                                                                                                                            </span>
                                                        <!--</div>-->
                                                                                                    </div>
                                                                                </span>
                                    </div>
                                    
                                </div>
                        </div>
                    </div>
                    <div class="product-block__cta">
                        <a href="https://www.mesrideaux.fr/rideau-celine-sur-coton.html?coloris=1007" class="btn btn-primary" data-plp-product-url>
                            <span class="classic-button width-60-button">Personnaliser</span>
                        </a>
                    </div>
                </article>
            </div>
                    <div
                id="mesrideaux-product-cross-sell-32428"
                class="flex flex-col"
                role="tabpanel"
            >
                                <article class="product-block product-block--list flex flex-col   item product product-item col-lg-4 col-md-4 col-sm-4 col-xs-12">
                                                            <div class="product-item-info flex flex-col flex-1" data-container="product-grid">
                        <a href="https://www.mesrideaux.fr/rideau-kimono-flowers.html?coloris=814" data-plp-product-url>
                            <div class="product-block__first">
                                <div class="product-block__images overflow-hidden">
                                                                            <span class="new lazyload">Nouveau</span>
                                                                                                                <!--<span class="best lazyload">-->  <!--</span>-->
                                                                        <img src="https://cdn4.mesrideaux.fr/catalog/product/cache/eddd32ef720e909fecec8d69051e6d0d/r/i/rideau-kimono-flowers-fond-rouge-vue-large-.webp"
                                         alt="Rideau Kimono Flowers"
                                         class="img-responsive product-image-photo lazyload"
                                         height="216" width="216" loading="lazy" decoding="async" fetchpriority="low"
                                         />
                                    <div class="product-block__see icon-search">
                                        <svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewbox="0 0 32 32" style="" fill="white">
                                            <path d="M28.664 32l-10.146-10.148 0.697-0.697 9.449 9.449 1.939-1.938-9.452-9.454 0.697-0.697 10.149 10.151-3.332 3.334zM12.085 24.203c-3.342-0.003-6.366-1.365-8.549-3.563l-0.001-0.001c-4.714-4.714-4.714-12.387 0-17.102s12.388-4.715 17.102 0v0c4.714 4.714 4.714 12.387 0 17.102-0.444 0.445-0.922 0.856-1.43 1.228l-0.034 0.024c-1.961 1.443-4.423 2.31-7.088 2.312h-0zM12.085 0.987c-0.005 0-0.012 0-0.018 0-3.060 0-5.83 1.241-7.834 3.247l-0 0c-4.33 4.331-4.33 11.374 0 15.708 3.884 3.884 9.923 4.368 14.361 1.152 0.499-0.365 0.938-0.742 1.347-1.151v0c4.33-4.332 4.33-11.378 0-15.709v0c-2.005-2.006-4.775-3.248-7.835-3.248-0.007 0-0.014 0-0.021 0h0.001z"></path>
                                        </svg>
                                    </div>
                                                                        <span class="product-block__alt-img lazyload e" data-hover-bg="https://cdn4.mesrideaux.fr/catalog/product/cache/eddd32ef720e909fecec8d69051e6d0d/r/i/rideau-kimono-flowers-fond-rouge-gros-plan_1.webp"></span>
                                </div>
                            </div>
                        </a>

                                                <div data-role="add-to-links" class="actions-secondary">
                                                    </div>

                        <div class="product-block__content product details product-item-details flex flex-col flex-1">
                            <a href="https://www.mesrideaux.fr/rideau-kimono-flowers.html?coloris=814" class="product-block__link flex flex-col flex-1" data-plp-product-url>
                                <p class="product-block__title flex-1">
                                    Rideau kimono flowers                                </p>
                           
                           
                                <p class="product-block__subtitle">Thevenon</p>                            </a>
                                                                                    <div class="product-block__price">
                                    <div class="product-block__price__first flex justify-between">
                                        <span class="product-block__price__label">À partir de :</span>
                                        <span class="product-block__price__value">                                                <div class="price-box price-final_price italic" data-role="priceBox" data-product-id="32428">
                                                    <span class="price-container price-final_price tax weee">
                                                        <span data-price-amount="340.0000"
                                                              data-price-type="finalPrice"
                                                              class="price-wrapper">340 €                                                        </span>
                                                    </span>
                                                                                                            <span>TTC</span>
                                                                                                                                                                <!--<div class="product-block__price__last text-right">-->
                                                            <span class="product-block__price__unit">
                                                                                                                            </span>
                                                        <!--</div>-->
                                                                                                    </div>
                                                                                </span>
                                    </div>
                                    
                                </div>
                        </div>
                    </div>
                    <div class="product-block__cta">
                        <a href="https://www.mesrideaux.fr/rideau-kimono-flowers.html?coloris=814" class="btn btn-primary" data-plp-product-url>
                            <span class="classic-button width-60-button">Personnaliser</span>
                        </a>
                    </div>
                </article>
            </div>
                    <div
                id="mesrideaux-product-cross-sell-21896"
                class="flex flex-col"
                role="tabpanel"
            >
                                <article class="product-block product-block--list flex flex-col   item product product-item col-lg-4 col-md-4 col-sm-4 col-xs-12">
                                                            <div class="product-item-info flex flex-col flex-1" data-container="product-grid">
                        <a href="https://www.mesrideaux.fr/rideaux/rideau-merlin-heure-bleue" data-plp-product-url>
                            <div class="product-block__first">
                                <div class="product-block__images overflow-hidden">
                                                                                                                <!--<span class="best lazyload">-->  <!--</span>-->
                                                                        <img src="https://cdn4.mesrideaux.fr/catalog/product/cache/eddd32ef720e909fecec8d69051e6d0d/r/i/rideau-merlin-heure-bleue-vue-large.webp"
                                         alt="RIDEAU MERLIN HEURE BLEUE"
                                         class="img-responsive product-image-photo lazyload"
                                         height="216" width="216" loading="lazy" decoding="async" fetchpriority="low"
                                         />
                                    <div class="product-block__see icon-search">
                                        <svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewbox="0 0 32 32" style="" fill="white">
                                            <path d="M28.664 32l-10.146-10.148 0.697-0.697 9.449 9.449 1.939-1.938-9.452-9.454 0.697-0.697 10.149 10.151-3.332 3.334zM12.085 24.203c-3.342-0.003-6.366-1.365-8.549-3.563l-0.001-0.001c-4.714-4.714-4.714-12.387 0-17.102s12.388-4.715 17.102 0v0c4.714 4.714 4.714 12.387 0 17.102-0.444 0.445-0.922 0.856-1.43 1.228l-0.034 0.024c-1.961 1.443-4.423 2.31-7.088 2.312h-0zM12.085 0.987c-0.005 0-0.012 0-0.018 0-3.060 0-5.83 1.241-7.834 3.247l-0 0c-4.33 4.331-4.33 11.374 0 15.708 3.884 3.884 9.923 4.368 14.361 1.152 0.499-0.365 0.938-0.742 1.347-1.151v0c4.33-4.332 4.33-11.378 0-15.709v0c-2.005-2.006-4.775-3.248-7.835-3.248-0.007 0-0.014 0-0.021 0h0.001z"></path>
                                        </svg>
                                    </div>
                                                                        <span class="product-block__alt-img lazyload e" data-hover-bg="https://cdn4.mesrideaux.fr/catalog/product/cache/eddd32ef720e909fecec8d69051e6d0d/r/i/rideau-merlin-heure-bleue-gros-plan.webp"></span>
                                </div>
                            </div>
                        </a>

                                                <div data-role="add-to-links" class="actions-secondary">
                                                    </div>

                        <div class="product-block__content product details product-item-details flex flex-col flex-1">
                            <a href="https://www.mesrideaux.fr/rideaux/rideau-merlin-heure-bleue" class="product-block__link flex flex-col flex-1" data-plp-product-url>
                                <p class="product-block__title flex-1">
                                    Rideau merlin heure bleue                                </p>
                           
                           
                                <p class="product-block__subtitle">Lelièvre</p>                            </a>
                                                                                    <div class="product-block__price">
                                    <div class="product-block__price__first flex justify-between">
                                        <span class="product-block__price__label">À partir de :</span>
                                        <span class="product-block__price__value">                                                <div class="price-box price-final_price italic" data-role="priceBox" data-product-id="21896">
                                                    <span class="price-container price-final_price tax weee">
                                                        <span data-price-amount="1972.0000"
                                                              data-price-type="finalPrice"
                                                              class="price-wrapper">1 972 €                                                        </span>
                                                    </span>
                                                                                                            <span>TTC</span>
                                                                                                                                                                <!--<div class="product-block__price__last text-right">-->
                                                            <span class="product-block__price__unit">
                                                                                                                            </span>
                                                        <!--</div>-->
                                                                                                    </div>
                                                                                </span>
                                    </div>
                                    
                                </div>
                        </div>
                    </div>
                    <div class="product-block__cta">
                        <a href="https://www.mesrideaux.fr/rideaux/rideau-merlin-heure-bleue" class="btn btn-primary" data-plp-product-url>
                            <span class="classic-button width-60-button">Personnaliser</span>
                        </a>
                    </div>
                </article>
            </div>
                    <div
                id="mesrideaux-product-cross-sell-32142"
                class="flex flex-col"
                role="tabpanel"
            >
                                <article class="product-block product-block--list flex flex-col   item product product-item col-lg-4 col-md-4 col-sm-4 col-xs-12">
                                                            <div class="product-item-info flex flex-col flex-1" data-container="product-grid">
                        <a href="https://www.mesrideaux.fr/rideau-elvis-jacquard.html?coloris=1000" data-plp-product-url>
                            <div class="product-block__first">
                                <div class="product-block__images overflow-hidden">
                                                                                                                <!--<span class="best lazyload">-->  <!--</span>-->
                                                                        <img src="https://cdn4.mesrideaux.fr/catalog/product/cache/eddd32ef720e909fecec8d69051e6d0d/r/i/rideau-elvis-jacquard-noir-orange-bleu-vue-large_1.webp"
                                         alt="Rideau Elvis Jacquard"
                                         class="img-responsive product-image-photo lazyload"
                                         height="216" width="216" loading="lazy" decoding="async" fetchpriority="low"
                                         />
                                    <div class="product-block__see icon-search">
                                        <svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewbox="0 0 32 32" style="" fill="white">
                                            <path d="M28.664 32l-10.146-10.148 0.697-0.697 9.449 9.449 1.939-1.938-9.452-9.454 0.697-0.697 10.149 10.151-3.332 3.334zM12.085 24.203c-3.342-0.003-6.366-1.365-8.549-3.563l-0.001-0.001c-4.714-4.714-4.714-12.387 0-17.102s12.388-4.715 17.102 0v0c4.714 4.714 4.714 12.387 0 17.102-0.444 0.445-0.922 0.856-1.43 1.228l-0.034 0.024c-1.961 1.443-4.423 2.31-7.088 2.312h-0zM12.085 0.987c-0.005 0-0.012 0-0.018 0-3.060 0-5.83 1.241-7.834 3.247l-0 0c-4.33 4.331-4.33 11.374 0 15.708 3.884 3.884 9.923 4.368 14.361 1.152 0.499-0.365 0.938-0.742 1.347-1.151v0c4.33-4.332 4.33-11.378 0-15.709v0c-2.005-2.006-4.775-3.248-7.835-3.248-0.007 0-0.014 0-0.021 0h0.001z"></path>
                                        </svg>
                                    </div>
                                                                        <span class="product-block__alt-img lazyload e" data-hover-bg="https://cdn4.mesrideaux.fr/catalog/product/cache/eddd32ef720e909fecec8d69051e6d0d/r/i/rideau-elvis-jacquard-noir-orange-bleu-gros-plan_1.webp"></span>
                                </div>
                            </div>
                        </a>

                                                <div data-role="add-to-links" class="actions-secondary">
                                                    </div>

                        <div class="product-block__content product details product-item-details flex flex-col flex-1">
                            <a href="https://www.mesrideaux.fr/rideau-elvis-jacquard.html?coloris=1000" class="product-block__link flex flex-col flex-1" data-plp-product-url>
                                <p class="product-block__title flex-1">
                                    Rideau elvis jacquard                                </p>
                           
                           
                                <p class="product-block__subtitle">Thevenon</p>                            </a>
                                                                                    <div class="product-block__price">
                                    <div class="product-block__price__first flex justify-between">
                                        <span class="product-block__price__label">À partir de :</span>
                                        <span class="product-block__price__value">                                                <div class="price-box price-final_price italic" data-role="priceBox" data-product-id="32142">
                                                    <span class="price-container price-final_price tax weee">
                                                        <span data-price-amount="532.0000"
                                                              data-price-type="finalPrice"
                                                              class="price-wrapper">532 €                                                        </span>
                                                    </span>
                                                                                                            <span>TTC</span>
                                                                                                                                                                <!--<div class="product-block__price__last text-right">-->
                                                            <span class="product-block__price__unit">
                                                                                                                            </span>
                                                        <!--</div>-->
                                                                                                    </div>
                                                                                </span>
                                    </div>
                                    
                                </div>
                        </div>
                    </div>
                    <div class="product-block__cta">
                        <a href="https://www.mesrideaux.fr/rideau-elvis-jacquard.html?coloris=1000" class="btn btn-primary" data-plp-product-url>
                            <span class="classic-button width-60-button">Personnaliser</span>
                        </a>
                    </div>
                </article>
            </div>
            </div>

    <div class="snap-pager" data-pager>
                    <a
                href="#mesrideaux-product-cross-sell-16762"
                class="snap-marker"
                role="tab"
                x-cloak
>
                <span class="sr-only">
                    View more about RIDEAU KIOWA RAINBOW                </span>
            </a>
                    <a
                href="#mesrideaux-product-cross-sell-32040"
                class="snap-marker"
                role="tab"
                x-cloak
>
                <span class="sr-only">
                    View more about Rideau Mimosa                </span>
            </a>
                    <a
                href="#mesrideaux-product-cross-sell-32221"
                class="snap-marker"
                role="tab"
                x-cloak
>
                <span class="sr-only">
                    View more about Rideau Olea                </span>
            </a>
                    <a
                href="#mesrideaux-product-cross-sell-35440"
                class="snap-marker"
                role="tab"
                x-cloak
>
                <span class="sr-only">
                    View more about RIDEAU CELINE                </span>
            </a>
                    <a
                href="#mesrideaux-product-cross-sell-32428"
                class="snap-marker"
                role="tab"
                x-cloak
>
                <span class="sr-only">
                    View more about Rideau Kimono Flowers                </span>
            </a>
                    <a
                href="#mesrideaux-product-cross-sell-21896"
                class="snap-marker"
                role="tab"
                x-cloak
>
                <span class="sr-only">
                    View more about RIDEAU MERLIN HEURE BLEUE                </span>
            </a>
                    <a
                href="#mesrideaux-product-cross-sell-32142"
                class="snap-marker"
                role="tab"
                x-cloak
>
                <span class="sr-only">
                    View more about Rideau Elvis Jacquard                </span>
            </a>
            </div>

    <span id="mesrideaux-product-cross-sell-slider-end" tabindex="-1"></span>
</section>



<!-- <section aria-label=""> -->
        <!-- </section> -->

</div>    <div id="alma-widget"></div>
    <script type="text/x-magento-init">
        {
            "#alma\u002Dwidget": {
                "Alma_MonthlyPayments/js/view/catalog/badge": {
                    "customDisplay" : {
                        "hasCustomPosition" : false,
                        "customContainerSelector" : "\u0023maincontent",
                        "isPrepend" : true        },
    "containerId" : "alma\u002Dwidget",
                    "productPrice" : 4110,
                    "useQuantityForWidgetPrice": true,
                    "productId": 35439,
                    "merchantId": "merchant_11uc97j6O9dZT6Z4PecWN7RA4vpkJ1IaAT",
                    "activeMode": "LIVE",
                    "locale": "fr",
                    "jsonPlans": [{"installmentsCount":2,"minAmount":5000,"maxAmount":300000,"deferredDays":0,"deferredMonths":0},{"installmentsCount":3,"minAmount":5000,"maxAmount":300000,"deferredDays":0,"deferredMonths":0},{"installmentsCount":4,"minAmount":5000,"maxAmount":300000,"deferredDays":0,"deferredMonths":0}]        }
    }
}
    </script>

</div></div></div></main><footer class="page-footer"><div class="footer content"><style>#html-body [data-pb-style=M1HA2FN],#html-body [data-pb-style=O26AHVQ]{background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll}#html-body [data-pb-style=M1HA2FN]{justify-content:flex-start;display:flex;flex-direction:column}#html-body [data-pb-style=O26AHVQ]{align-self:stretch}#html-body [data-pb-style=Y52369T]{display:flex;width:100%}#html-body [data-pb-style=LTR636G]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:20%;align-self:stretch}#html-body [data-pb-style=ORGW39L]{border-style:none}#html-body [data-pb-style=B19THHK],#html-body [data-pb-style=EXJ44W4]{max-width:100%;height:auto}#html-body [data-pb-style=QL7J452]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:20%;align-self:stretch}#html-body [data-pb-style=RSWEPXA]{border-style:none}#html-body [data-pb-style=PCAVPF1],#html-body [data-pb-style=W5AF6BC]{max-width:100%;height:auto}#html-body [data-pb-style=LWP7OW4]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:20%;align-self:stretch}#html-body [data-pb-style=OW3HGFW]{border-style:none}#html-body [data-pb-style=IAN9EP8],#html-body [data-pb-style=J2LQSG1]{max-width:100%;height:auto}#html-body [data-pb-style=BCKGN1M]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:20%;align-self:stretch}#html-body [data-pb-style=CJYMKTF]{border-style:none}#html-body [data-pb-style=LY5E1E1],#html-body [data-pb-style=WU6V83T]{max-width:100%;height:auto}#html-body [data-pb-style=XAQPWKE]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:20%;align-self:stretch}#html-body [data-pb-style=HGTGEEL]{border-style:none}#html-body [data-pb-style=CR3KM6H],#html-body [data-pb-style=YX61JBX]{max-width:100%;height:auto}@media only screen and (max-width: 767px) { #html-body [data-pb-style=CJYMKTF],#html-body [data-pb-style=HGTGEEL],#html-body [data-pb-style=ORGW39L],#html-body [data-pb-style=OW3HGFW],#html-body [data-pb-style=RSWEPXA]{border-style:none} }</style><div data-content-type="row" data-appearance="contained" data-element="main"><div class="container footer-reassurance" 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="M1HA2FN"><div class="pagebuilder-column-group" 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="O26AHVQ"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="Y52369T"><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="LTR636G"><figure data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="ORGW39L"><img class="pagebuilder-mobile-hidden" src="https://cdn4.mesrideaux.fr/wysiwyg/gift-box.svg" alt="Livraison gratuite" title="" width="" height="" loading="lazy" data-use-native-image-dimensions="true" data-element="desktop_image" data-pb-style="EXJ44W4"><img class="pagebuilder-mobile-only" src="https://cdn4.mesrideaux.fr/wysiwyg/gift-box.svg" alt="Livraison gratuite" title="" width="" height="" loading="lazy" data-use-native-image-dimensions="true" data-element="mobile_image" data-pb-style="B19THHK"></figure><div data-content-type="text" data-appearance="default" data-element="main"><div class="c-title">Livraison gratuite</div>
<p><span class="c-content">&Agrave; partir de 100&euro;TTC, partout en France m&eacute;tropolitaine</span></p></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="QL7J452"><figure data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="RSWEPXA"><img class="pagebuilder-mobile-hidden" src="https://cdn4.mesrideaux.fr/wysiwyg/diamond_1.svg" alt="Qualit&eacute; garantie" title="" width="" height="" loading="lazy" data-use-native-image-dimensions="true" data-element="desktop_image" data-pb-style="PCAVPF1"><img class="pagebuilder-mobile-only" src="https://cdn4.mesrideaux.fr/wysiwyg/diamond_1.svg" alt="Qualit&eacute; garantie" title="" width="" height="" loading="lazy" data-use-native-image-dimensions="true" data-element="mobile_image" data-pb-style="W5AF6BC"></figure><div data-content-type="text" data-appearance="default" data-element="main"><div class="c-title">
<div class="c-title">Qualit&eacute; garantie</div>
<span class="c-content">Tous nos tissus et confections sont garantis 2 ans</span></div></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="LWP7OW4"><figure data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="OW3HGFW"><img class="pagebuilder-mobile-hidden" src="https://cdn4.mesrideaux.fr/wysiwyg/chat-bubble.svg" alt="Conseil" title="" width="" height="" loading="lazy" data-use-native-image-dimensions="true" data-element="desktop_image" data-pb-style="J2LQSG1"><img class="pagebuilder-mobile-only" src="https://cdn4.mesrideaux.fr/wysiwyg/chat-bubble.svg" alt="Conseil" title="" width="" height="" loading="lazy" data-use-native-image-dimensions="true" data-element="mobile_image" data-pb-style="IAN9EP8"></figure><div data-content-type="text" data-appearance="default" data-element="main"><div class="c-title">
<div class="c-title">Nos conseils</div>
<p class="c-content">Une expertise m&eacute;tier approuv&eacute;e au service de nos clients</p>
</div></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="BCKGN1M"><figure data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="CJYMKTF"><img class="pagebuilder-mobile-hidden" src="https://cdn4.mesrideaux.fr/wysiwyg/eiffel-tower.svg" alt="Fabrication fran&ccedil;aise" title="" width="" height="" loading="lazy" data-use-native-image-dimensions="true" data-element="desktop_image" data-pb-style="WU6V83T"><img class="pagebuilder-mobile-only" src="https://cdn4.mesrideaux.fr/wysiwyg/eiffel-tower.svg" alt="Fabrication fran&ccedil;aise" title="" width="" height="" loading="lazy" data-use-native-image-dimensions="true" data-element="mobile_image" data-pb-style="LY5E1E1"></figure><div data-content-type="text" data-appearance="default" data-element="main"><div class="c-title">
<div class="c-title">Fabrication fran&ccedil;aise</div>
<span class="c-content">Pour l'immense majorit&eacute; de nos produits</span></div></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="XAQPWKE"><figure data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="HGTGEEL"><img class="pagebuilder-mobile-hidden" src="https://cdn4.mesrideaux.fr/wysiwyg/echantillon_1.svg" alt="&eacute;chantillons" title="" width="" height="" loading="lazy" data-use-native-image-dimensions="true" data-element="desktop_image" data-pb-style="CR3KM6H"><img class="pagebuilder-mobile-only" src="https://cdn4.mesrideaux.fr/wysiwyg/echantillon_1.svg" alt="&eacute;chantillons" title="" width="" height="" loading="lazy" data-use-native-image-dimensions="true" data-element="mobile_image" data-pb-style="YX61JBX"></figure><div data-content-type="text" data-appearance="default" data-element="main"><div class="c-title">
<div class="c-title">&Eacute;chantillons &agrave; domicile</div>
<span class="c-content">Pour &ecirc;tre s&ucirc;r de votre choix</span></div></div></div></div></div></div></div><!-- Optimus -->
<script type="text/javascript">
    (function () {
        var d = document;
        var g = d.createElement('script');
        var s = d.getElementsByTagName('script')[0];
        g.type = 'text/javascript';
        g.async = true;
        g.defer = true;
        g.src = "https://j01l4h3n.com/optimus-TB9jPsnck.js";
        s.parentNode.insertBefore(g, s);
    })();
</script>
<!-- End Optimus Code -->
<div class="content newsletter-custom text-center py-section">
    <div class="container py-0">
        <h2>RESTONS EN CONTACT !</h2>
    </div>
    <form class="form subscribe amform-form"
          novalidate
 action="https://www.mesrideaux.fr/newsletter/subscriber/new/"
          method="post"
          data-mage-init='{"validation": {"errorClass": "mage-error"}}'
          id="newsletter-validate-detail"
          x-data="newsletterForm()"
          x-on:submit.prevent="submit($event)">
        <input name="form_key" type="hidden" value="fjQIJcI8gxUDUYBO" />        
        <div class="container-newsletter container">
            <div class="field newsletter content flex justify-center items-center">
                <div class="field newsletter custom-container-field-newsletter">
                    <div class="control">
                        <input class="input-text form-control input-lg"
                            name="email"
                            type="email"
                            id="newsletter"
                            placeholder="Entrez votre adresse email"
                            data-validate="{required:true, 'validate-email':true}"
                            x-model="email"
                            x-on:focus="showRgpd = true"
                            />
                    </div>
                </div>
                <div class="actions container-button-newsletter">
                    <button class="classic-button btn btn-primary" type="submit">
                        <span>Je m'inscris</span>
                    </button>
                </div>
            </div>
            <div class="message" x-show="message" x-cloak>
                <span id="loading-message" x-text="message" :class="statusClass"></span>
            </div>

            <div class="field newsletter rgpd" x-show="showRgpd" x-cloak>
                <div class="c-checkbox">
    <label for="newsletter-rgpd-consent">
        <span>En soumettant ce formulaire, j’accepte que les informations saisies soient utilisées pour apporter une réponse par mail ou par téléphone à ma demande</span>
    </label>
    <div class="field newsletter custom-container-field-newsletter">
        <div class="control">
            <input
                id="newsletter-rgpd-consent"
                type="checkbox"
                name="newsletter-rgpd-consent"
                style="margin-top: -47px"
                 required data-validation="required" data-validation-error-msg="Vous devez accepter de recevoir la newsletter" data-validate="{required:true}"            >
        </div>
    </div>
</div>
<script>
   /* (() => {
        const initConsentCheckbox = () => {
            const checkboxArgs = {
                'checkboxElement': document.querySelector('#newsletter-rgpd-consent'),
                'triggerElement': document.querySelector('#newsletter-validate-detail div.container-button-newsletter button'),
                'consentCheckboxID': '63a57a314ad00ca96337d6e2'
            };
            const checkbox = new CheckboxAxeptio(checkboxArgs);
        }

        if (document.readyState === 'complete') {
            initConsentCheckbox();
        } else {
            document.addEventListener("DOMContentLoaded", initConsentCheckbox);
        }
    })();*/
</script>
            </div>

        </div>
    </form>
    <div class="social-media-newsletter">
        <div class="social-media-newsletter__item">
            <a href="https://www.facebook.com/mesRideauxfr-114783795207929/" target="_blank">
            <img src="https://cdn3.mesrideaux.fr/version1783511887/frontend/MesRideaux/hyva-child/fr_FR/icons/facebook.svg" alt="facebook" >
            </a>
        </div>
        <div class="social-media-newsletter__item">
            <a href="https://www.instagram.com/mesrideaux/" target="_blank">
            <img src="https://cdn3.mesrideaux.fr/version1783511887/frontend/MesRideaux/hyva-child/fr_FR/icons/instagram.svg" alt="instagrm" >
            </a>
        </div>
        <div class="social-media-newsletter__item">
            <a href="https://fr.pinterest.com/mesrideauxfr/" target="_blank">
            <img src="https://cdn3.mesrideaux.fr/version1783511887/frontend/MesRideaux/hyva-child/fr_FR/icons/pinterest.svg" alt="pinterest" >
            </a>
        </div>
        
    </div>
</div>
<script>
    document.addEventListener('alpine:init', () => {
        Alpine.data('newsletterForm', () => ({
            showRgpd: false,
            email: '',
            message: '',
            statusClass: '',
            resetForm() {
                setTimeout(() => {
                    this.message = '';
                    this.email = '';
                    this.statusClass = '';
                }, 3000);
            },
            async submit(event) {
                const form = event.target;
                const url = form.action;

                // Validation côté client
                const email = this.email.trim();
                const consentCheckbox = document.querySelector('#newsletter-rgpd-consent');
                const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;

                this.statusClass = 'error';

                if (!email) {
                    this.message = 'Veuillez saisir votre adresse e-mail.';
                    this.resetForm();
                    return;
                }

                if (!emailRegex.test(email)) {
                    this.message = 'Veuillez saisir une adresse e-mail valide.';
                    this.resetForm();
                    return;
                }

                if (consentCheckbox && !consentCheckbox.checked) {
                    this.message = 'Veuillez cocher la case de consentement pour la newsletter.';
                    this.resetForm();
                    return;

                }

                this.statusClass = '';
                this.message = 'Envoi en cours...';

                try {
                    const formKeyInput = form.querySelector('input[name="form_key"]');
                    const formKey = formKeyInput ? formKeyInput.value : '';
                    const body = new URLSearchParams({ email,form_key: formKey }).toString();
                    const response = await fetch(url, {
                        method: 'POST',
                        headers: {
                            'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'
                        },
                        body
                    });

                    const data = await response.json().catch(() => ({}));

                    if (data.status && data.status !== 'ERROR') {
                        this.email = '';
                        this.resetForm();
                    }

                    this.statusClass = data.status === 'ERROR' ? 'error' : 'success';
                    this.message = data.msg || 'Votre demande a été prise en compte.';
                    this.resetForm();
                } catch (e) {
                    this.statusClass = 'error';
                    this.message = e.message || 'Une erreur est survenue.';
                    this.resetForm();
                }
            }
        }));

        });
</script>
<div class="bg-ivory">
    <div class="container">
        <div class="flex flex-wrap gap-y-16">
            
                        
    <nav
        class="footer-menu w-full"
        data-mage-init='{"snowdogMenu": {}}'
    >
        <ul class="footer-menu__list flex flex-wrap lg:gap-x-4 lg:gap-y-2">
                                            <li class="footer-menu__item footer-menu__item--parent w-full md:w-1/2 lg:w-auto lg:flex-1">
                                            <span class="footer-menu__item-toggle">
                            
    <span
        data-menu="menu-88" class="footer-menu__link"        tabindex="0"
    >
        Nos Services    </span>
                        </span>
                        <div class="footer-menu__submenu">
                                    <ul  class="footer-menu__inner-list footer-menu__inner-list--level1" data-menu="menu-88">
                    
            <li  class="footer-menu__inner-item footer-menu__inner-item--all footer-menu__inner-item--level1">
                
    <span
        class="footer-menu__inner-link"        tabindex="0"
    >
        Tout voir    </span>
            </li>
        
                    
            <li  class="footer-menu__inner-item footer-menu__inner-item--level1">
                
    <a
        href="/notre-valeur-ajoutee"
        data-menu="menu-89" class="footer-menu__inner-link"    >
        Notre valeur ajoutée    </a>
                            </li>
                    
            <li  class="footer-menu__inner-item footer-menu__inner-item--level1">
                
<a
    href="https://www.mesrideaux.fr/prendre-des-mesures"
    class="footer-menu__inner-link"
     data-menu="menu-100">
    Prendre des mesures</a>
                            </li>
                    
            <li  class="footer-menu__inner-item footer-menu__inner-item--level1">
                
<a
    href="https://www.mesrideaux.fr/faq"
    class="footer-menu__inner-link"
     data-menu="menu-101">
    FAQ</a>
                            </li>
                    
            <li  class="footer-menu__inner-item footer-menu__inner-item--level1">
                
<a
    href="https://www.mesrideaux.fr/videos"
    class="footer-menu__inner-link"
     data-menu="menu-102">
    Vidéos</a>
                            </li>
                    
            <li  class="footer-menu__inner-item footer-menu__inner-item--level1">
                
<a
    href="https://www.mesrideaux.fr/b2b"
    class="footer-menu__inner-link"
     data-menu="menu-103">
    Service BtoB</a>
                            </li>
            </ul>
                        </div>
                                    </li>
                                            <li class="footer-menu__item footer-menu__item--parent w-full md:w-1/2 lg:w-auto lg:flex-1">
                                            <span class="footer-menu__item-toggle">
                            
    <span
        data-menu="menu-90" class="footer-menu__link"        tabindex="0"
    >
        Nos marques    </span>
                        </span>
                        <div class="footer-menu__submenu">
                                    <ul  class="footer-menu__inner-list footer-menu__inner-list--level1" data-menu="menu-90">
                    
            <li  class="footer-menu__inner-item footer-menu__inner-item--all footer-menu__inner-item--level1">
                
    <span
        class="footer-menu__inner-link"        tabindex="0"
    >
        Tout voir    </span>
            </li>
        
                    
            <li  class="footer-menu__inner-item footer-menu__inner-item--level1">
                

<a
    href="https://www.mesrideaux.fr/createurs/thevenon.html"
    class="footer-menu__inner-link"
     data-menu="menu-104">
    Thevenon</a>
                            </li>
                    
            <li  class="footer-menu__inner-item footer-menu__inner-item--level1">
                

<a
    href="https://www.mesrideaux.fr/createurs/casal.html"
    class="footer-menu__inner-link"
     data-menu="menu-302">
    Casal</a>
                            </li>
                    
            <li  class="footer-menu__inner-item footer-menu__inner-item--level1">
                

<a
    href="https://www.mesrideaux.fr/createurs/luciano-marcato.html"
    class="footer-menu__inner-link"
     data-menu="menu-307">
    Luciano Marcato</a>
                            </li>
                    
            <li  class="footer-menu__inner-item footer-menu__inner-item--level1">
                

<a
    href="https://www.mesrideaux.fr/createurs/pierre-frey.html"
    class="footer-menu__inner-link"
     data-menu="menu-111">
    Pierre Frey</a>
                            </li>
                    
            <li  class="footer-menu__inner-item footer-menu__inner-item--level1">
                

<a
    href="https://www.mesrideaux.fr/createurs/jab.html"
    class="footer-menu__inner-link"
     data-menu="menu-106">
    JAB</a>
                            </li>
                    
            <li  class="footer-menu__inner-item footer-menu__inner-item--level1">
                

<a
    href="https://www.mesrideaux.fr/createurs/lelievre.html"
    class="footer-menu__inner-link"
     data-menu="menu-107">
    Lelièvre</a>
                            </li>
                    
            <li  class="footer-menu__inner-item footer-menu__inner-item--level1">
                

<a
    href="https://www.mesrideaux.fr/createurs/gaston-y-daniela.html"
    class="footer-menu__inner-link"
     data-menu="menu-309">
    Gaston y Daniela</a>
                            </li>
                    
            <li  class="footer-menu__inner-item footer-menu__inner-item--level1">
                

<a
    href="https://www.mesrideaux.fr/createurs/elitis.html"
    class="footer-menu__inner-link"
     data-menu="menu-105">
    Elitis</a>
                            </li>
                    
            <li  class="footer-menu__inner-item footer-menu__inner-item--level1">
                

<a
    href="https://www.mesrideaux.fr/createurs/romo.html"
    class="footer-menu__inner-link"
     data-menu="menu-109">
    Romo</a>
                            </li>
            </ul>
                        </div>
                                    </li>
                                            <li class="footer-menu__item footer-menu__item--parent w-full md:w-1/2 lg:w-auto lg:flex-1">
                                            <span class="footer-menu__item-toggle">
                            
    <span
        data-menu="menu-92" class="footer-menu__link"        tabindex="0"
    >
        Nos Produits    </span>
                        </span>
                        <div class="footer-menu__submenu">
                                    <ul  class="footer-menu__inner-list footer-menu__inner-list--level1" data-menu="menu-92">
                    
            <li  class="footer-menu__inner-item footer-menu__inner-item--all footer-menu__inner-item--level1">
                
    <span
        class="footer-menu__inner-link"        tabindex="0"
    >
        Tout voir    </span>
            </li>
        
                    
            <li  class="footer-menu__inner-item footer-menu__inner-item--level1">
                
<a
    href="https://www.mesrideaux.fr/je-decouvre-sur-mesure"
    class="footer-menu__inner-link"
     data-menu="menu-93">
    Je découvre</a>
                            </li>
                    
            <li  class="footer-menu__inner-item footer-menu__inner-item--level1">
                

<a
    href="https://www.mesrideaux.fr/rideaux.html"
    class="footer-menu__inner-link"
     data-menu="menu-114">
    Nos Rideaux sur mesure</a>
                            </li>
                    
            <li  class="footer-menu__inner-item footer-menu__inner-item--level1">
                

<a
    href="https://www.mesrideaux.fr/stores-bateaux.html"
    class="footer-menu__inner-link"
     data-menu="menu-115">
    Nos Stores Bateau</a>
                            </li>
                    
            <li  class="footer-menu__inner-item footer-menu__inner-item--level1">
                

<a
    href="https://www.mesrideaux.fr/tissus.html"
    class="footer-menu__inner-link"
     data-menu="menu-117">
    Nos Tissus</a>
                            </li>
                    
            <li  class="footer-menu__inner-item footer-menu__inner-item--level1">
                
    <a
        href="/coussins.html"
        data-menu="menu-118" class="footer-menu__inner-link"    >
        Nos Coussins    </a>
                            </li>
            </ul>
                        </div>
                                    </li>
                                            <li class="footer-menu__item footer-menu__item--parent w-full md:w-1/2 lg:w-auto lg:flex-1">
                                            <span class="footer-menu__item-toggle">
                            
    <span
        data-menu="menu-94" class="footer-menu__link"        tabindex="0"
    >
        À propos    </span>
                        </span>
                        <div class="footer-menu__submenu">
                                    <ul  class="footer-menu__inner-list footer-menu__inner-list--level1" data-menu="menu-94">
                    
            <li  class="footer-menu__inner-item footer-menu__inner-item--all footer-menu__inner-item--level1">
                
    <span
        class="footer-menu__inner-link"        tabindex="0"
    >
        Tout voir    </span>
            </li>
        
                    
            <li  class="footer-menu__inner-item footer-menu__inner-item--level1">
                
    <a
        href="/contact"
        data-menu="menu-122" class="footer-menu__inner-link"    >
        Nous contacter    </a>
                            </li>
                    
            <li  class="footer-menu__inner-item footer-menu__inner-item--level1">
                
<a
    href="https://www.mesrideaux.fr/cgv"
    class="footer-menu__inner-link"
     data-menu="menu-123">
    Conditions générales de vente</a>
                            </li>
                    
            <li  class="footer-menu__inner-item footer-menu__inner-item--level1">
                
<a
    href="https://www.mesrideaux.fr/mentions-legales"
    class="footer-menu__inner-link"
     data-menu="menu-124">
    Mentions légales</a>
                            </li>
                    
            <li  class="footer-menu__inner-item footer-menu__inner-item--level1">
                
<a
    href="https://www.mesrideaux.fr/qui-sommes-nous"
    class="footer-menu__inner-link"
     data-menu="menu-126">
    Qui sommes nous !</a>
                            </li>
                    
            <li  class="footer-menu__inner-item footer-menu__inner-item--level1">
                <div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true"><div class="avis-verif-header">
             <a href="https://www.avis-verifies.com/avis-clients/mesrideaux.fr" target="_blank">
                <img src="https://cdn3.mesrideaux.fr/version1783511887/frontend/MesRideaux/hyva-child/fr_FR/icons/avis-verifies.png" alt="Avis Verifies" >
                <div class="avis-verif-header__content flex items-start justify-center">
                    <div class="o-stars">
                        <!-- Utiliser la largeur de .c-content pour le rendu de la note (ratio / 5 à exprimer en %)-->
                        <div class="c-content lazyload" data-loaded="true"></div>
                        <div class="c-bkg lazyload" data-loaded="true"></div>
                    </div>
                    <strong>4.8/5</strong>
                </div>
              </a>
            </div></div>                            </li>
            </ul>
                        </div>
                                    </li>
                                            <li class="footer-menu__item footer-menu__item--parent contact-nos-experts w-full md:w-1/2 lg:w-auto lg:flex-1">
                                            <span class="footer-menu__item-toggle">
                            
    <span
        data-menu="menu-96" class="footer-menu__link"        tabindex="0"
    >
        Contactez nos experts !    </span>
                        </span>
                        <div class="footer-menu__submenu">
                                    <ul  class="footer-menu__inner-list footer-menu__inner-list--level1" data-menu="menu-96">
                    
            <li  class="footer-menu__inner-item footer-menu__inner-item--all footer-menu__inner-item--level1">
                
    <span
        class="footer-menu__inner-link"        tabindex="0"
    >
        Tout voir    </span>
            </li>
        
                    
            <li  class="footer-menu__inner-item footer-menu__inner-item--level1 footer-contact">
                <style>#html-body [data-pb-style=YCVWN71]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll}</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="YCVWN71"><div data-content-type="text" data-appearance="default" data-element="main"><p><a href="tel:014256392">01 42 56 31 92</a></p>
<p>Du Lundi au Jeudi<br>- 10h00 à 13h00<br>- 14h30 à 18h00</p>
<p>Le Vendredi<br>- 10h00 à 13h00<br>- 14h00 à 16h00</p>
<p>(hors jours fériés)</p>
<p>Ou par e-mail à :<br><a href="/cdn-cgi/l/email-protection#73101c1d07121007331e1600211a171612060b5d1501" target="_blank" rel="noopener"><span class="__cf_email__" data-cfemail="1a7975746e7b796e5a777f6968737e7f7b6f62347c68">[email&#160;protected]</span></a></p></div></div></div>                            </li>
            </ul>
                        </div>
                                    </li>
                    </ul>
    </nav>
    <script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script><script>
        document.addEventListener('DOMContentLoaded', function () {
            function closeAllSubmenusExcept(submenuToShow) {
                document.querySelectorAll('.footer-menu__submenu').forEach(function(submenu) {
                    if (submenu !== submenuToShow) {
                        submenu.style.height = '0px';
                        submenu.style.overflow = 'hidden';
                        submenu.setAttribute('data-open', 'false');
                    }
                });
            }

            function setupFooterMenuToggle() {
                var isMobile = window.innerWidth < 768;
                document.querySelectorAll('.footer-menu__item--parent > .footer-menu__item-toggle').forEach(function(toggle) {
                    var submenu = toggle.nextElementSibling;

                    // Prépare la transition CSS lors du premier passage en mobile
                    if (submenu) {
                        submenu.style.transition = 'height 0.3s ease';
                    }

                    if (isMobile) {
                        // Réinitialise le style pour mobile
                        if (submenu) {
                            submenu.style.overflow = 'hidden';
                            if (submenu.getAttribute('data-open') !== 'true') {
                                submenu.style.height = '0px';
                            } else {
                                submenu.style.height = submenu.scrollHeight + 'px';
                            }
                        }
                        // Empêche le double binding
                        if (!toggle._footerMenuToggleHandler) {
                            toggle._footerMenuToggleHandler = function (e) {
                                e.preventDefault();
                                if (submenu) {
                                    if (submenu.getAttribute('data-open') !== 'true') {
                                        // Ferme les autres et ouvre celui-ci
                                        closeAllSubmenusExcept(submenu);
                                        submenu.style.height = submenu.scrollHeight + 'px';
                                        submenu.setAttribute('data-open', 'true');
                                        // Remove 'active' class from all .footer-menu__item-toggle elements
                                        document.querySelectorAll('.footer-menu__item-toggle.active').forEach(function(activeToggle) {
                                            activeToggle.classList.remove('active');
                                        });
                                
                                        toggle.classList.add('active');
                                    } else {
                                        submenu.style.height = '0px';
                                        submenu.setAttribute('data-open', 'false');
                                        toggle.classList.remove('active');
                                    }
                                }
                            };
                            toggle.addEventListener('click', toggle._footerMenuToggleHandler);
                        }
                    } else {
                        // Réinitialise tout en desktop
                        if (submenu) {
                            submenu.style.height = '';
                            submenu.style.overflow = '';
                            submenu.style.transition = '';
                            submenu.setAttribute('data-open', 'true');
                        }
                        // Retire les handlers s'ils existent
                        if (toggle._footerMenuToggleHandler) {
                            toggle.removeEventListener('click', toggle._footerMenuToggleHandler);
                            toggle._footerMenuToggleHandler = null;
                        }
                    }
                });
            }

            setupFooterMenuToggle();

            window.addEventListener('resize', function () {
                setupFooterMenuToggle();
            });
        });
    </script>

                
        </div>
    </div>
    <div class="copyright-container">
        <div class="container py-6 flex items-center sm:flex-row flex-col">
            
            <p class="text-center">
                                Toutes œuvres, dessins et autres marques ici utilisées sont la propriété de leurs auteurs ou sociétés détentrices. L'utilisation de la publication de ces œuvres sur le présent site web est réalisée à des fins d'illustration et de démonstration technique, sans volonté de violation de droit d'auteur.
            </p>
        </div>
    </div>
</div>

<script>




    
</script>

<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: 'Brands',
            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) {
                const baseUrl = BASE_URL.replace('index.php/', '');
                if (path.includes('://')) {
                    return path;
                }

                let productImageUrl = `${baseUrl}${path}`;
                const regexDuplicateDomain = new RegExp(`^(https?:\/\/[^/]+).*\\1`);
                productImageUrl = productImageUrl.replace(regexDuplicateDomain, '$1');

                return productImageUrl.includes('/product/placeholder/')
                    ? productImageUrl.replace(/\/media(?=\/static)/, '')
                    : productImageUrl;
            },

            checkIsMobileResolution() {
                this.isMobile = window.matchMedia('(max-width: 1023px)').matches;
            },

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

            init() {
                this.checkIsMobileResolution();

                                this.$watch('hoverPanelActiveId', (value) => {
                    if (value === 'am-brand') {
                        this.sendRequest();
                    }
                });
                            },

            /**
             * 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>}
             */
            async sendRequest() {
                if (this.isMobile) {
                    return false;
                }

                this.loading = true;

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

                    const response = await fetch('https://www.mesrideaux.fr/graphql', {
                        method: 'POST',
                        headers: {
                            'Content-Type': 'application/json',
                            'Store': 'default'
                        },
                        credentials: 'include',
                        body: JSON.stringify({query: this.getQuery(), variables: {}})
                    });
                    const result = await response.json();

                    if (result?.errors) {
                        this.initErrorMessages(result.errors);
                        return;
                    }

                    const data = result.data?.ambrandlist;
                    const mapper = this.settingsMapper(result);

                    // Update component settings
                    Object.keys(mapper).forEach(config => {
                        this[config] = mapper[config];
                    });

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

                    const items = data.items.map(brand => {
                        brand.image = brand.img
                            ? this.getMediaUrl(brand.img) : (brand.image ? this.getMediaUrl(brand.image) : null);
                        return brand;
                    });

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

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

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

            /**
             * 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;
            }
        }
    }
</script>
</div></footer><script>
    window.axeptioSettings = {
        clientId: '63a5761113e6a0cbbb89b1f4',
        sdk: '//static.axept.io/sdk-slim.js'
        , cookiesVersion: "mesrideaux-fr",
    };

    window.dbmAxeptioSettings = {"cgv":{"type":"contracts","id":"63a57a001c8726954e302b01"},"pdc":{"type":"contracts","id":"63a57a0bd23a56961461ec36"},"contact":{"type":"processings","id":"63a57a304ad00ca96337d6dd"},"newsletter":{"type":"processings","id":"63a57a314ad00ca96337d6e2"}};

    (function (d, s) {
        // Prevent duplicate SDK init (module + GTM or repeated handle render).
        if (window.__dbmAxeptioSdkInjected) {
            return;
        }

        var alreadyPresent = d.querySelector('script[src*="static.axept.io/sdk"]');
        if (alreadyPresent || window._axcb) {
            window.__dbmAxeptioSdkInjected = true;
            return;
        }

        var t = d.getElementsByTagName(s)[0], e = d.createElement(s);
        e.async = true;
        e.src = window.axeptioSettings.sdk;
        window.__dbmAxeptioSdkInjected = true;
        t.parentNode.insertBefore(e, t);
    })(document, 'script');
</script>

<script>
    let SnapSlider = class {
        constructor(el, {
            labelSepparator = 'de',
            autoPager,
            groupPager
        } = {}) {
            this.el = el;
            this.track = this.el.querySelector("[data-track]");
            if (!this.track) {
                console.warn(
                    "No Slider track defined, reverting back to CSS slider.\nPlease create a wrapper for your slides with the attribute data-track",
                    this.el
                );
                return;
            }
            this.initialLoad = true;
            this.slides = [];
            this.inViewObserver;
            this.mutationObserver;
            this.resizeObserver;
            this.pager = this.el.querySelector("[data-pager]");
            this.navBtns = Array.from(
                this.el.querySelectorAll("[data-next], [data-prev]")
            );
            this.slideLabelSepparator = this.el.dataset.slideLabelSepparator || labelSepparator;
            this.useAutoPager = autoPager || this.el.hasAttribute("data-auto-pager") || false;
            this.useGroupPager = groupPager || this.el.hasAttribute("data-group-pager") || false;
            this.sliderLabel = this.el.hasAttribute("aria-label") && this.el.getAttribute("aria-label").toLowerCase().trim().replace(/[^a-z0-9_-]+/g, "-").replace(/^-+|-+$/g, "");
            this.sliderId = this.el.id || this.sliderLabel || "slider";
            this.markerIdName = "data-target-id";
            this.pagerClasses = this.el.dataset.pagerClass || "snap-pager";
            this.markerClasses = this.el.dataset.markerClass || "snap-marker";
            this.init();
        }
        init() {
            this.setupSlides();
            this.setupNav();
            if (this.useAutoPager) {
                this.createPager();
            } else {
                this.setupPager();
            }
            this.setupObservers();
            this.setupMutationObserver();
            this.setupResizeObserver();
            this.el.addEventListener("click", this.eventHandler.bind(this));
            this.el.addEventListener("keydown", this.eventHandler.bind(this));
        }
        destroy() {
            this.inViewObserver?.disconnect();
            this.mutationObserver?.disconnect();
            this.resizeObserver?.disconnect();
            this.el.removeEventListener("click", this.eventHandler.bind(this));
            this.el.removeEventListener("keydown", this.eventHandler.bind(this));
        }
        roundUpIfGreaterThan(number, min = 8) {
            const decimalPart = number - Math.floor(number);
            return decimalPart >= min ? Math.ceil(number) : Math.floor(number);
        }
        getInViewItems() {
            const inViewSlides = this.track.querySelectorAll("[data-in-view]");
            const firstInViewSlide = inViewSlides[0] || null;
            const lastInViewSlide = inViewSlides[inViewSlides.length - 1] || null;
            const isAtStart = firstInViewSlide === this.slides[0];
            const isAtEnd = lastInViewSlide === this.slides[this.slides.length - 1];
            return {
                inViewSlides,
                totalInViewSlides: inViewSlides.length,
                firstInViewSlide,
                lastInViewSlide,
                isAtStart,
                isAtEnd,
                hasNoOverflow: isAtStart && isAtEnd
            };
        }
        groupPagerMarkers() {
            if (this.slides.length === 0 || !this.pager || !this.useGroupPager) return;
            const totalVisibleSlides = this.roundUpIfGreaterThan(
                this.track.offsetWidth / this.slides[0].offsetWidth
            );
            const markers = Array.from(this.pager.querySelectorAll("a, button"));
            markers.forEach((marker, index) => {
                marker.style.display = index % totalVisibleSlides === 0 ? null : "none";
            });
        }
        handleInView(entries) {
            entries.forEach((entry) => {
                const marker = this.pager && (this.pager.querySelector(`[href="#${entry.target.id}"]`) || this.pager.querySelector(
                    `[${this.markerIdName}="${entry.target.id}"]`
                ));
                entry.target.toggleAttribute("data-in-view", entry.isIntersecting);
                entry.target.toggleAttribute("inert", !entry.isIntersecting);
                marker?.setAttribute("aria-current", entry.isIntersecting);
                marker?.setAttribute("tabindex", entry.isIntersecting ? "0" : "-1");
            });
            const {
                isAtStart,
                isAtEnd,
                hasNoOverflow
            } = this.getInViewItems();
            this.navBtns.forEach((btn) => {
                if (btn.hasAttribute("data-next")) {
                    btn.style.visibility = hasNoOverflow ? "hidden" : null;
                    isAtEnd ? btn.setAttribute("disabled", "") : btn.removeAttribute("disabled");
                }
                if (btn.hasAttribute("data-prev")) {
                    btn.style.visibility = hasNoOverflow ? "hidden" : null;
                    isAtStart ? btn.setAttribute("disabled", "") : btn.removeAttribute("disabled");
                }
            });
            if (this.pager) {
                this.pager.style.visibility = hasNoOverflow ? "hidden" : null;
            }
            if (!this.initialLoad) {
                this.el.dispatchEvent(
                    new CustomEvent("slideChange", {
                        detail: this.getInViewItems()
                    })
                );
            } else {
                this.initialLoad = false;
            }
            if (document.activeElement.parentElement.hasAttribute("data-pager")) {
                const activeItems = this.pager.querySelectorAll('[tabindex="0"]');
                if (activeItems.length) {
                    activeItems[0].focus({ preventScroll: true });
                }
            }
        }
        getSlides() {
            if (!this.track) return [];
            return Array.from(this.track.children).filter(
                (child) => child.tagName.toLowerCase() !== "template" && child.tagName.toLowerCase() !== "style" && child.tagName.toLowerCase() !== "script"
            );
        }
        refreshSlides() {
            this.initialLoad = true;
            this.slides = this.getSlides();
            this.setupSlides();
            if (this.useAutoPager) {
                this.createPager();
            } else {
                this.setupPager();
            }
            this.groupPagerMarkers();
            this.setupObservers();
        }
        setupSlides() {
            this.slides = this.getSlides();
            this.slides.forEach((slide, index) => {
                const totalSlides = this.slides.length;
                const currentSlide = index + 1;
                const existingLabel = slide.getAttribute("aria-label") || "";
                const isImage = slide.tagName.toLowerCase() === "img" || slide.tagName.toLowerCase() === "picture";
                const slideLabelTag = isImage ? "alt" : "aria-label";
                const hasAutoLabel = existingLabel.startsWith(
                    `${currentSlide} ${this.slideLabelSepparator} `
                );
                if (!slide.hasAttribute("id")) {
                    slide.setAttribute(
                        "id",
                        `${this.sliderId}-item-${currentSlide}`
                    );
                }
                if (!slide.hasAttribute(slideLabelTag) || slide.getAttribute(slideLabelTag) === "" || hasAutoLabel) {
                    slide.setAttribute(
                        slideLabelTag,
                        `${currentSlide} ${this.slideLabelSepparator} ${totalSlides}`
                    );
                }
                if (slide.tagName.toLowerCase() === "div" && !slide.hasAttribute("role")) {
                    slide.setAttribute("role", "group");
                }
                if (this.pager && !isImage) {
                    slide.setAttribute("role", "tabpanel");
                }
                if (slide.getAttribute("role") === "group") {
                    slide.setAttribute("aria-roledescription", "item");
                }
            });
            if (!this.el.hasAttribute("role") && this.el.tagName !== "SECTION") {
                this.el.setAttribute("role", "region");
            }
            if (!this.el.hasAttribute("aria-roledescription")) {
                this.el.setAttribute("aria-roledescription", "carousel");
            }
            this.track.setAttribute("tabindex", 0);
            this.track.setAttribute("aria-live", "polite");
        }
        setupNav() {
            this.navBtns.forEach((btn) => {
                btn.setAttribute("disabled", "");
                btn.removeAttribute("hidden");
                btn.classList.remove("invisible");
                btn.style.visibility = null;
            });
        }
        createPager() {
            const newPager = document.createElement("nav");
            newPager.setAttribute("data-pager", "");
            newPager.setAttribute("role", "tablist");
            newPager.classList.add(...this.pagerClasses.split(" "));
            this.slides.forEach((slide, index) => {
                const marker = document.createElement("button");
                const slideId = slide.id || `${this.sliderId}-item-${index + 1}`;
                marker.setAttribute(this.markerIdName, slideId);
                marker.classList.add(...this.markerClasses.split(" "));
                this.setupPagerMarker(marker, index);
                newPager.appendChild(marker);
                if (slide.tagName.toLowerCase() !== "img" && slide.tagName.toLowerCase() !== "picture") {
                    slide.removeAttribute("aria-roledescription");
                    slide.setAttribute("role", "tabpanel");
                }
            });
            if (this.pager) {
                this.pager.setAttribute("role", "tablist");
                this.pager.replaceChildren(...newPager.children);
            } else {
                this.track.after(newPager);
                this.pager = this.el.querySelector("[data-pager]");
            }
        }
        setupPager() {
            if (!this.pager) return;
            this.pager.setAttribute("role", "tablist");
            const items = Array.from(this.pager.querySelectorAll("a, button"));
            items.forEach((marker, index) => this.setupPagerMarker(marker, index));
        }
        setupPagerMarker(marker, index) {
            const markerId = marker.getAttribute("href")?.slice(1) || marker.getAttribute(this.markerIdName);
            const slideId = markerId || `${this.sliderId}-item-${index + 1}`;
            if (!markerId) {
                marker.setAttribute(this.markerIdName, slideId);
            }
            marker.setAttribute("role", "tab");
            marker.setAttribute("aria-controls", slideId);
            marker.setAttribute("aria-posinset", index + 1);
            marker.setAttribute("aria-setsize", this.slides.length);
            marker.setAttribute("tabindex", "-1");
            if (!marker.hasAttribute("aria-label")) {
                marker.setAttribute("aria-label", `Slide ${index + 1}`);
            }
        }
        setupObservers() {
            if (this.inViewObserver) {
                this.inViewObserver.disconnect();
            }
            this.inViewObserver = new IntersectionObserver(
                this.handleInView.bind(this), {
                    root: this.track,
                    threshold: 0.8
                }
            );
            this.slides.forEach((slide) => this.inViewObserver.observe(slide));
        }
        setupMutationObserver() {
            this.mutationObserver = new MutationObserver(
                this.refreshSlides.bind(this)
            );
            this.mutationObserver.observe(this.track, {
                childList: true,
                subtree: false
            });
        }
        setupResizeObserver() {
            this.resizeObserver = new ResizeObserver(
                this.groupPagerMarkers.bind(this)
            );
            this.resizeObserver.observe(this.el);
        }
        goToSlideDir(dir = "next") {
            const {
                firstInViewSlide,
                lastInViewSlide
            } = this.getInViewItems();
            const isPrev = dir === "prev";
            let targetSlide = isPrev ? firstInViewSlide?.previousElementSibling : lastInViewSlide?.nextElementSibling;
            if (!targetSlide) return;
            if (targetSlide.tagName.toLowerCase() === "template") {
                targetSlide = isPrev ? targetSlide?.previousElementSibling : targetSlide?.nextElementSibling;
            }
            targetSlide.scrollIntoView({ block: "nearest", inline: isPrev ? "end" : "start" });
        }
        pagerToSlide(event) {
            if (!event.target.closest("[data-pager]")) return;
            const marker = event.target.closest("a, button");
            if (!marker) return;
            event.preventDefault();
            const slideId = marker.getAttribute("href")?.slice(1) || marker.getAttribute(this.markerIdName);
            const targetSlide = this.track.querySelector(`#${slideId}`);
            targetSlide?.scrollIntoView({ block: "nearest", inline: "start" });
        }
        eventHandler(event) {
            const target = event.target.closest(
                "[data-next], [data-prev], [data-pager]"
            );
            if (!target) return;
            if (event.type === "click") {
                if (target.hasAttribute("data-next")) {
                    this.goToSlideDir("next");
                } else if (target.hasAttribute("data-prev")) {
                    this.goToSlideDir("prev");
                } else if (target.closest("[data-pager]")) {
                    this.pagerToSlide(event);
                }
            }
            if (event.type === "keydown" && target.closest("[data-pager]")) {
                if (event.key === "ArrowRight") {
                    this.goToSlideDir("next");
                } else if (event.key === "ArrowLeft") {
                    this.goToSlideDir("prev");
                }
            }
        }
    };

    (() => {
        function alpineSnapSlider(Alpine) {
            Alpine.directive("snap-slider", (el, {
                modifiers
            }, {
                cleanup
            }) => {
                const autoPager = modifiers.includes("auto-pager");
                const groupPager = modifiers.includes("group-pager");
                const slider = new SnapSlider(el, {
                    autoPager,
                    groupPager
                });
                cleanup(() => {
                    slider.destroy();
                });
            });
        }

        document.addEventListener("alpine:init", () => {
            window.Alpine.plugin(alpineSnapSlider);
        });
    })();
    //# sourceURL=alpine-snap-slider.js
</script>
<script>
    (() => {
        // src/dialog.js
        function dialog_default(Alpine) {
            Alpine.directive("htmldialog", fylgjaAlpineDialog);
            function fylgjaAlpineDialog(el, { expression, modifiers }, { evaluateLater, cleanup }) {
            const evaluate = expression.length ? evaluateLater(expression) : () => {};
            const canEvaluate = expression.length > 0;
            const lockPageScroll = modifiers.includes("noscroll");
            const closeBy = el.getAttribute("closeby") || modifierValue(modifiers, "closeby", "closerequest");
            el.style.display = null;
            el.style.length === 0 && el.removeAttribute("style");
            if (el._x_isShown) {
                open();
            }
            const closeBySupported = (() => {
                return "closedBy" in HTMLDialogElement.prototype;
            })();
            function scrollLock(use = true) {
                document.body.style.overflow = use ? "hidden" : "";
            }
            function dialogSubmit(event) {
                if (event.target.getAttribute("method") === "dialog" || event.submitter?.getAttribute("formmethod") === "dialog") {
                event.preventDefault();
                evaluate();
                }
            }
            function escapeDialog(event) {
                if (event.key !== "Escape") return;
                event.preventDefault();
                if (closeBy === "none") return;
                evaluate();
            }
            function handleCloseByEvent(event) {
                if (event.target !== el) return;
                const rect = el.getBoundingClientRect();
                const isInDialog = rect.top <= event.clientY && event.clientY <= rect.top + rect.height && rect.left <= event.clientX && event.clientX <= rect.left + rect.width;
                if (!isInDialog) {
                if (closeBy === "any") {
                    if (closeBySupported) {
                    event.preventDefault();
                    }
                    evaluate();
                }
                }
            }
            function handleCloseEvent() {
                evaluate();
            }
            function open() {
                if (el.hasAttribute("open")) return;
                el.showModal();
                scrollLock(lockPageScroll);
            }
            function close() {
                if (!el.hasAttribute("open")) return;
                el.close();
                scrollLock(false);
            }
            el._x_doShow = () => open();
            el._x_doHide = () => close();
            el.addEventListener("keydown", escapeDialog);
            el.addEventListener("submit", dialogSubmit);
            el.addEventListener("click", handleCloseByEvent);
            el.addEventListener("cancel", handleCloseEvent);
            cleanup(() => {
                el.removeEventListener("keydown", escapeDialog);
                el.removeEventListener("submit", dialogSubmit);
                el.removeEventListener("click", handleCloseByEvent);
                el.removeEventListener("cancel", handleCloseEvent);
                scrollLock(false);
            });
            }
        }
        function modifierValue(modifiers, key, fallback) {
            if (modifiers.indexOf(key) === -1) return fallback;
            const rawValue = modifiers[modifiers.indexOf(key) + 1];
            if (!rawValue) return fallback;
            if (key === "closeby") {
            const allowedValues = ["auto", "none", "closerequest", "any"];
            const options = allowedValues.join(", ");
            if (!allowedValues.includes(rawValue)) {
                console.warn(
                `"${rawValue}" is not one of the allowed values for closeby: ${options}`
                );
                return fallback;
            }
            }
            return rawValue;
        }

        // src/cdn.js
        document.addEventListener("alpine:init", () => {
            window.Alpine.plugin(dialog_default);
        });
    })();
    //# sourceURL=alpine-htmldialog.js
</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);
        });
    })();
    //# sourceURL=alpine-intersect.js
</script>
<script>
    for (const [selector, deferUntil] of Object.entries({".product-slider section[x-data]:not([x-data] [x-data])":"intersect",".product-info [x-data]:not([x-data] [x-data])":"intersect","#filters-content [x-data]:not([x-data] [x-data])":"intersect","#review_form":"intersect","section[x-data^=initRecentlyViewedProductsComponent]":"intersect","div[x-data^=initBundleOptions]":"intersect","#product_addtocart_form [x-data]:not([x-data] [x-data])":"intersect","#notice-cookie-block":"idle"})) {
        document.querySelectorAll(selector).forEach(el => el.setAttribute('x-defer', `${deferUntil}`));
    }
    //# sourceURL=alpine-defer-rules.js
</script>
<script>
    (() => {
        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});
    })();
    //# sourceURL=alpine-defer.js
</script>
<script>
(()=>{function g(n){n.directive("collapse",e),e.inline=(t,{modifiers:i})=>{i.includes("min")&&(t._x_doShow=()=>{},t._x_doHide=()=>{})};function e(t,{modifiers:i}){let r=l(i,"duration",250)/1e3,u=l(i,"min",0),h=!i.includes("min");t._x_isShown||(t.style.height=`${u}px`),!t._x_isShown&&h&&(t.hidden=!0),t._x_isShown||(t.style.overflow="hidden");let c=(d,s)=>{let o=n.setStyles(d,s);return s.height?()=>{}:o},f={transitionProperty:"height",transitionDuration:`${r}s`,transitionTimingFunction:"cubic-bezier(0.4, 0.0, 0.2, 1)"};t._x_transition={in(d=()=>{},s=()=>{}){h&&(t.hidden=!1),h&&(t.style.display=null);let o=t.getBoundingClientRect().height;t.style.height="auto";let a=t.getBoundingClientRect().height;o===a&&(o=u),n.transition(t,n.setStyles,{during:f,start:{height:o+"px"},end:{height:a+"px"}},()=>t._x_isShown=!0,()=>{t.getBoundingClientRect().height==a&&(t.style.overflow=null)})},out(d=()=>{},s=()=>{}){let o=t.getBoundingClientRect().height;n.transition(t,c,{during:f,start:{height:o+"px"},end:{height:u+"px"}},()=>t.style.overflow="hidden",()=>{t._x_isShown=!1,t.style.height==`${u}px`&&h&&(t.style.display="none",t.hidden=!0)})}}}}function l(n,e,t){if(n.indexOf(e)===-1)return t;let i=n[n.indexOf(e)+1];if(!i)return t;if(e==="duration"){let r=i.match(/([0-9]+)ms/);if(r)return r[1]}if(e==="min"){let r=i.match(/([0-9]+)px/);if(r)return r[1]}return i}document.addEventListener("alpine:init",()=>{window.Alpine.plugin(g)});})();
</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://cdn3.mesrideaux.fr/version1783511887/frontend/MesRideaux/hyva-child/fr_FR/Hyva_Theme/js/alpine3.min.js"
        defer
 crossorigin
></script>
<script>
    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 || {} ));
    //# sourceURL=hyva-cookies.js
</script>
<script>
    {
        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 = 3600;

        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);
            }
        }

        hyva.alpineInitialized(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);
                            }
                        }
                    }
                );
        }
    }
    //# sourceURL=hyva-private-content.js
</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']);
    //# sourceURL=hyva-init-external-scripts.js
</script>
<script>
    function initConfigurableOptions(productId, optionConfig) {

        function findPathParam(key) {
                        const baseUrl = (BASE_URL.substring(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() {
                this.buildLookupMap();
                this.findAllowedAttributeOptions();
                this.$nextTick(() => {
                    if (typeof this.optionConfig.defaultValues === 'object') {
                        for (const [attributeId, value] of Object.entries(this.optionConfig.defaultValues)) {
                            this.changeOption(attributeId, value + '');
                        }
                    }
                    this.preselectQuerystringItems();
                    this.preselectLocationHashItems();
                });
            },
            productIndex: 0,
            productIndexForPrice: 0,
            productIndexesMap: null,
            productIndexesKeys: null,
            attributeCount: 0,
            optionIsActive(attributeId, optionId) {
                                return !!this.getAllowedAttributeOptions(attributeId).find(
                    option => option.id === optionId
                )
            },
            optionIsEnabled(attributeId, optionId) {
                                for (const productId in this.optionConfig.index) {
                    if (this.optionConfig.index[productId][attributeId] === optionId) {
                        return true;
                    }
                }
                return false;
            },
            findSimpleIndex() {
                                this.productIndex = this.calculateSimpleIndexForPartialSelection(this.selectedValues);
                this.productIndexForPrice = this.findCheapestProductForPartialSelection(this.selectedValues);
            },
            calculateSimpleIndexForPartialSelection(selectedValues) {
                if (selectedValues.length === 0) return 0;
                return this.findProductIdsForPartialSelection(selectedValues)[0];
            },
            buildLookupMap() {
                                this.productIndexesMap = new Map();
                this.attributeCount = Object.keys(this.optionConfig.attributes).length;
                for (const id in this.optionConfig.index) {
                    const options = this.optionConfig.index[id];
                    if (! this.productIndexesKeys) {
                        this.productIndexesKeys = Object.keys(options).sort();
                    }
                    const key = JSON.stringify(options, this.productIndexesKeys);
                    this.productIndexesMap.set(key, id);
                }
            },
            calculateSimpleIndexForFullSelection(selectedValues) {
                if (! this.isFullSelection(selectedValues)) return false;

                                const attrKeys = this.productIndexesKeys || [];
                const normalised = {};
                for (let i = 0; i < attrKeys.length; i++) {
                    normalised[attrKeys[i]] = selectedValues[attrKeys[i]];
                }
                const queryKey = JSON.stringify(normalised, attrKeys);
                return this.productIndexesMap.get(queryKey);
            },
            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 newAllowedAttributeOptions = [];

                allAttributesSorted.forEach(attribute => {
                    const selectionWithoutAttr = Object.assign({}, this.removeAttrFromSelection(selectedValues, attribute.id));
                    const availableIndexes = this.calculateAvailableProductIndexes(selectionWithoutAttr);
                    newAllowedAttributeOptions[attribute.id] = allAttributes[attribute.id].options.filter(option => {
                        return !!option.products.find(product => {
                            return availableIndexes.includes(product);
                        })
                    });
                });
                return newAllowedAttributeOptions;
            },
            calculateAvailableProductIndexes(selectedOptions) {
                if (Object.keys(selectedOptions).length === 0) {
                                        if (Object.values(this.optionConfig.salable || {}).length) {
                                                return [].concat.apply([], [].concat.apply([], Object.values(this.optionConfig.salable).map(Object.values))).filter((x, i, a) => a.indexOf(x) === i)
                    }
                                        return Object.keys(this.optionConfig.index);
                }

                                const selectedIds = Object.keys(selectedOptions);
                if (Object.values(this.optionConfig.salable || {}).length) {
                                        const selectedOptionIndexes = selectedIds.map(attrId => {
                        const optionValue = selectedOptions[attrId];
                        return this.optionConfig.salable[attrId] && this.optionConfig.salable[attrId][optionValue] || []
                    })
                                        return selectedOptionIndexes.reduce((acc, optionIndexes) => {
                        return acc.filter(index => optionIndexes.includes(index));
                    });
                } else {
                                        const productIndexes = this.optionConfig.index;
                    return Object.keys(productIndexes).filter(index => {
                                                for (const attrId of selectedIds) {
                            if (productIndexes[index][attrId] !== `${selectedOptions[attrId]}`) return false
                        }
                        return true
                    });
                }
            },
            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] || []
            },
            getAllAttributeOptions(attributeId) {
                return (
                    this.optionConfig.attributes[attributeId] &&
                    this.optionConfig.attributes[attributeId].options
                ) || []
            },
            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.productIndexForPrice)) {
                    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.productIndexForPrice]) {
                    return this.optionConfig.optionPrices[this.productIndexForPrice].finalPrice.amount
                }
                return this.optionConfig.prices.finalPrice.amount; // default price if no option selection
            },
            clearOptionIfActive(optionId, value) {
                if (this.selectedValues[optionId] === value) {
                    this.blurLabel()
                    this.changeOption(optionId, '')
                }
            },
            removeAttrFromSelection(selectedValues, attributeId) {
                                attributeId = parseInt(attributeId);
                return selectedValues.reduce((newSelection, val, attr) => {
                    if (attr !== attributeId) {
                        newSelection[attr] = val;
                    }
                    return newSelection;
                }, []);
            },
            changeOption(attributeId, value) {
                if (value === '') {
                    this.selectedValues = this.removeAttrFromSelection(this.selectedValues, attributeId)
                } else if (value && this.getAllowedAttributeOptions(attributeId).find(option => option.id === value)) {
                                        this.selectedValues[attributeId] = value;
                }
                this.findSimpleIndex();
                this.findAllowedAttributeOptions();
                this.updatePrices();
                this.updateGallery();

                const candidates = this.findProductIdsForPartialSelection(this.selectedValues);

                                window.dispatchEvent(
                    new CustomEvent(
                        'configurable-selection-changed',
                        {
                            detail: {
                                productId: this.productId,
                                optionId: attributeId,
                                value: value,
                                productIndex: this.productIndex,
                                selectedValues: this.selectedValues,
                                candidates: candidates,
                                skuCandidates: Object.values(candidates).map(id => this.optionConfig.sku?.[id] ?? null).filter(Boolean),
                            }
                        }
                    )
                );
            },
            calculateIsMinimalPrice() {
                return ! this.isFullSelection(this.selectedValues);
            },
            isFullSelection(selectedValues) {
                return Object.keys(selectedValues).length === this.attributeCount;
            },
            updatePrices() {
                const value = this.optionConfig.optionPrices[this.productIndexForPrice] || this.optionConfig.prices;
                window.dispatchEvent(
                    new CustomEvent(
                        "update-prices-" + this.productId,
                        {
                            detail: Object.assign(
                                value,
                                { isMinimalPrice: this.calculateIsMinimalPrice() }
                            )
                        }
                    )
                );
            },
            updateGallery () {
                if (this.productIndex) {
                    const images = this.optionConfig.images[this.productIndex];
                    images && window.dispatchEvent(new CustomEvent(
                        "update-gallery",
                        { detail: this.sortImagesByPosition(images) }
                    ));
                } else {
                    window.dispatchEvent(new Event("reset-gallery"));
                }
            },
            sortImagesByPosition(images) {
                return images.sort((x, y) => {
                    return x.position === y.position ? 0 : (parseInt(x.position) > parseInt(y.position) ? 1 : -1)
                });
            },
            onGetCartData(data) {
                                if (this.productId === '35439') {
                    this.preselectCartItems(data);
                }
                            },
            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('?',''));
                this.preselectItemsBasedOnLocation(attribute => urlQueryParams.get(attribute.code));
            },
            preselectLocationHashItems() {
                // pre-select option like #144=167
                const urlHashParams = new URLSearchParams(window.location.hash.replace('#',''));
                this.preselectItemsBasedOnLocation(attribute => urlHashParams.get(attribute.id));
            },
            preselectItemsBasedOnLocation(getLocationValue) {
                Object.values(this.optionConfig.attributes).map(attribute => {
                    const v = getLocationValue(attribute);
                    v && this.changeOption(attribute.id, v)
                });
            }
        }
    }
</script>
<script>
    function initSwatchOptions(swatchConfig) {
        return {
            swatchConfig,
            products: [],
            matchedProducts: [],
            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(typeNumber) {
                switch ("" + typeNumber) {
                    case "1":
                        return "color"
                    case "2":
                        return "image"
                    case "3":
                        return "empty"
                    case "0":
                    default:
                        return "text"
                }
            },
            getTypeOfFirstOption(attributeId) {
                for (const optionId in this.swatchConfig[attributeId]) {
                    const option = this.swatchConfig[attributeId][optionId];
                    if (typeof option.type !== 'undefined') {
                        return this.mapSwatchTypeNumberToTypeCode(option.type);
                    }
                }
            },
            getVisualSwatchType(attributeId, targetOptionId) {
                // If a type configuration is present for the given option id, use it
                const config = this.swatchConfig[attributeId];
                if (config[targetOptionId] && typeof config[targetOptionId].type !== 'undefined') {
                    return this.mapSwatchTypeNumberToTypeCode(config[targetOptionId].type);
                }

                // 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)
                return this.getTypeOfFirstOption(attributeId);
            },
            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] &&
                    this.swatchConfig[attributeId].details &&
                    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);
            },
            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: #ffffff url('" + config.value + "') no-repeat center";
                } 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
                    );
            },
            isFirstItemCol() {
                return this.activeTooltipItem.index === 0;
            },
            getTooltipImageStyle(attributeId, optionId) {
                const config = this.getSwatchConfig(attributeId, optionId);
                const type = this.getSwatchType(attributeId, optionId);

                if (type === "color") {
                    return 'background-color:' + config.value + '; width: 110px; height: 90px;';
                } else if (type === "image") {
                    return "background: #ffffff url('" + config.thumb +
                        "') center center no-repeat; width: 110px; height: 90px;";
                } else {
                    return 'display:none';
                }
            },
            getTooltipPosition() {
                return this.tooltipPositionElement ?
                    `top: ${this.tooltipPositionElement.offsetTop}px;` +
                    `left: ${
                        this.tooltipPositionElement.offsetLeft - (
                            this.tooltipPositionElement.closest('.snap') &&
                            this.tooltipPositionElement.closest('.snap').scrollLeft ||
                            0
                        )
                    }px;` : ''
            },
            getTooltipLabel() {
                return this.getSwatchConfig(this.activeTooltipItem.attribute, this.activeTooltipItem.item).label
            },
            focusedLabel: false,
            focusLabel(optionId) {
                this.focusedLabel = optionId;
            },
            blurLabel() {
                this.focusedLabel = false;
            },
            showSwatches: false,
            initShowSwatchesIntersect() {
                if ('IntersectionObserver' in window && !window.scrollY) {
                    let io = new IntersectionObserver(
                        entries => {
                            entries.map(entry => {
                                if (entry.isIntersecting) {
                                    this.showSwatches = true;
                                    io.unobserve(this.$root);
                                }
                            })
                        }
                    );
                    io.observe(this.$root);
                } else {
                    this.showSwatches = true
                }
            },
            checkSampleProduct(target, attrId, productId) {
                this.products[attrId] = target.value;
                const productArray = this.optionConfig.index;
                const sampleProduct = this.optionConfig.offerSample;
                const sampleProductCost = this.optionConfig.offerSampleCost;

                const productKey = Object.keys(this.products)
                    .map(key => `${key}:${this.products[key]}`)
                    .join(',');

                for (let key in productArray) {
                    let product = productArray[key];
                    const productKeyArray = Object.keys(product)
                        .map(attr => `${attr}:${product[attr]}`)
                        .join(',');

                    if (productKeyArray === productKey) {
                        if (sampleProduct[key] == 1) {
                            document.querySelector('#sampleButtonConfigurbale-' + productId).classList.remove('hidden');
                        } else {
                            document.querySelector('#sampleButtonConfigurbale-' + productId).classList.add('hidden');
                        }
                    }
                }

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

    const grecaptchaV2LoadCallbacks = [];

    function executeRecaptchaLoadCallbacks () {
        while (window.grecaptcha && grecaptchaV2LoadCallbacks.length > 0) {
            const callback = grecaptchaV2LoadCallbacks.pop();
            typeof callback === 'string' ? window[callback]() : callback();
        }
    }

    (function() {
        const loadRecaptchaScript = (event) => {

            if (window.grecaptcha || !event.target.form) {
                return;
            }

            const url = 'https://www.google.com/recaptcha/api.js?onload=executeRecaptchaLoadCallbacks';
            const siteKey = '';
            const script = document.createElement('script');
            script.type = 'text/javascript';
            script.src = siteKey ? `${url}&render=${siteKey}` : `${url}&render=explicit`;
            script.async = true;
            document.head.appendChild(script);

            script.addEventListener('load', () => {
                Array.from(document.querySelectorAll('button[data-recaptcha-btn]:disabled')).forEach(btn => btn.removeAttribute('disabled'));
            });
        }

        window.forceLoadRecaptchaScript = (form) => {
            loadRecaptchaScript({target: {form: form || 'dummy'}});
            executeRecaptchaLoadCallbacks();
        };

        document.body.addEventListener('input', loadRecaptchaScript, { once: true });
        document.body.addEventListener('focus', loadRecaptchaScript, { once: true });

    }());

</script>
<template id="popup-template">
  <div class="popin-call-client">
    <div class="modal-content">
        <div>
        <span class="close"> <svg xmlns="http://www.w3.org/2000/svg" width="22" height="21"><g fill="none" fill-rule="evenodd" stroke="#4a3328" stroke-linecap="round" stroke-linejoin="round" stroke-width="3"><path d="m2 1.5 18 18M2 19.5l18-18"/></g></svg> </span>
        <svg xmlns="http://www.w3.org/2000/svg" width="91" height="91" viewbox="0 0 24 24" fill="#1C1F49"><path d="M12 0c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm3.445 17.827c-3.684 1.684-9.401-9.43-5.8-11.308l1.053-.519 1.746 3.409-1.042.513c-1.095.587 1.185 5.04 2.305 4.497l1.032-.505 1.76 3.397-1.054.516z"/></svg>
        <h3> Besoin d’être accompagné dans votre choix ?</h3>
        <h4> Contactez-nous ! Nos conseillers déco sont à votre disposition.</h4>
        <a href="tel:+330142563192" class="contact-number">01 42 56 31 92</a>
      </div>
    </div>
  </div>
</template>
<style>
 
.popin-call-client {
    position: fixed;
    z-index: 10000;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    display: none;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    background-color: rgb(239 231 221 / 69%)
}

.popin-call-client.active {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex
}

.popin-call-client .modal-content {
    background-color: #fefefe;
    padding: 20px 15px;
    max-width: 90%;
    -webkit-box-shadow: none;
    box-shadow: none;
    border-radius: 8px;
}

@media screen and (min-width: 767px) {
    .popin-call-client .modal-content {
        max-width: 70%
    }
}

@media screen and (min-width: 1024px) {
    .popin-call-client .modal-content {
        width: 887px;
        max-width: none;
        padding: 22.5px 30px
    }
}

.popin-call-client .modal-content>div {
    margin-top: 6px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    text-align: center
}

.popin-call-client .modal-content>div svg {
    height: auto;
    margin-bottom: 22px
}

.popin-call-client .modal-content>div h3 {
    font-size: 24px;
    line-height: 32px;
    letter-spacing: 2px;
    font-weight: 400;
    color: #1C1F49;
    margin-bottom: 10px;
    text-transform: uppercase;
    max-width: 80%
}

@media screen and (min-width: 1024px) {
    .popin-call-client .modal-content>div h3 {
        font-size: 30px;
        line-height: 42px;
        max-width: 589px
    }
}

.popin-call-client .modal-content>div h4 {
    font-size: 18px;
    line-height: 22px;
    letter-spacing: 2.4px;
    font-weight: 400;
    color: var(--text-color);
    margin-bottom: 10px;
    max-width: 80%;
    /* font-family: "Nunito", sans-serif */
}

@media screen and (min-width: 1024px) {
    .popin-call-client .modal-content>div h4 {
        line-height: 32px;
        margin-bottom: 25px;
        max-width: 515px
    }
}

.popin-call-client .modal-content>div a {
    font-size: 18px;
    border: var(--color-beige) solid 2px;
    letter-spacing: 3.05px;
    padding: 11px 30px 12px 30px;
    color: var(--text-color);
    margin-bottom: 17px;
    line-height: 42px;
    font-weight: 700;
    /* font-family: "Nunito", sans-serif */
}

@media screen and (min-width: 1024px) {
    .popin-call-client .modal-content>div a {
        font-size: 22px;
        margin-bottom: 27.5px
    }
}

.popin-call-client>div .close {
    opacity: 1;
    width: 100%;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: end;
    -ms-flex-pack: end;
    justify-content: flex-end
}

.popin-call-client>div .close svg {
    -webkit-transform: scale(0.82);
    transform: scale(0.82);
    margin-bottom: 0
}

.popin-call-client .close:hover,
.popin-call-client .close:focus {
    color: black;
    text-decoration: none;
    cursor: pointer
}

</style>
<script>

    // Vérifie si le cookie existe
    function getCookie(name) {
        const cookieArr = document.cookie.split(";");
        for (let i = 0; i < cookieArr.length; i++) {
            const cookiePair = cookieArr[i].split("=");
            if (name == cookiePair[0].trim()) {
            return decodeURIComponent(cookiePair[1]);
            }
        }
        return null;
    }

    // Définit le cookie avec le nom et la valeur spécifiés, ainsi que la durée de vie et le chemin
    function setCookie(name, value, days, path) {
        let expires = "";
        if (days) {
            const date = new Date();
            date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
            expires = "; expires=" + date.toUTCString();
        }
        document.cookie = name + "=" + encodeURIComponent(value) + expires + "; path=" + path;
    }

    if (getCookie("popup") == null) {
        // if (true) {

        setTimeout(function() {
            const popupTemplate = document.getElementById("popup-template");
            if(popupTemplate) {
                const popupContent = popupTemplate.content.cloneNode(true);
                const modal = popupContent.querySelector(".popin-call-client");
                document.body.appendChild(modal);
                modal.style.display = "flex";
                setCookie("popup", "true", 1, "/");
    
                const closeModal = modal.querySelector(".close");
    
                closeModal.onclick = function() {
                    modal.style.display = "none";
                };
    
                modal.onclick = function(event) {
                    if (event.target == modal) {
                        modal.style.display = "none";
                    }
                }   
            }

        }, 40000)
    }

</script>
<script>(function () {
    'use strict';

    var PROBANCE_TOKEN = 'stEBgropGvokUIr';
    var PROBANCE_TRACKER_NAME = 'Prob_Track';
    var PROBANCE_TIMEOUT = 90;
    var PROBANCE_ENDPOINT = '//t4.my-probance.one/webtrax';
    var PROBANCE_QUERY_PARAM = 'idprob';
    var VISITOR_IDENTIFIER_TYPE = 'email';
    var lastTrackedUrl = '';

    function getCustomerData() {
        if (window.customerData) {
            return window.customerData;
        }

        try {
            var rawStorage = localStorage.getItem('mage-cache-storage');
            if (!rawStorage) {
                return null;
            }
            var parsedStorage = JSON.parse(rawStorage);
            return parsedStorage && parsedStorage.customer ? parsedStorage.customer : null;
        } catch (error) {
            return null;
        }
    }

    function getVisitorId() {
        var customer = getCustomerData();
        if (!customer) {
            return '';
        }
        return customer.email || 'non-connected';
    }

    function getBasketId() {
        if (window.checkoutConfig && window.checkoutConfig.quoteData) {
            return String(window.checkoutConfig.quoteData.entity_id || '').trim();
        }
        return '';
    }

    function getCurrentProductName() {
        var productName = document.querySelector('h1.page-title.text-3xl.font-semibold.mb-8.text-center');
        if (!productName) {
            return '';
        }
        var productName = productName.textContent.trim();

        return productName.charAt(0).toUpperCase() + productName.slice(1).toLowerCase();
    }

    function getCurrentProductId() {
        var productInput = document.querySelector('form[action*="/checkout/cart/add"] input[name="product"]');
        if (!productInput) {
            return '';
        }
        return String(productInput.value || '').trim();
    }

    function createProbanceTracker(typeID, myId) {
        var crm = null;
        try {
            crm = new window.PROBANCE_CRMTracker(
                PROBANCE_TOKEN,
                PROBANCE_TRACKER_NAME,
                PROBANCE_TIMEOUT,
                PROBANCE_ENDPOINT,
                PROBANCE_QUERY_PARAM
            );
        } catch (err) {
            return null;
        }

        if (crm === null) {
            return null;
        }

        var probanceTracker = new window.PROBANCE_trackers();
        probanceTracker.setCRM(crm);

        if (myId !== null && myId !== undefined && myId !== '') {
            crm.setCustomer(myId, typeID);
        }

        probanceTracker.doNotTrackOnInit();
        probanceTracker.init();

        return probanceTracker;
    }

    window.ViewedPage = function ViewedPage() {
        if (typeof window.PROBANCE_CRMTracker !== 'function' || typeof window.PROBANCE_trackers !== 'function') {
            return;
        }

        var typeID = VISITOR_IDENTIFIER_TYPE;
        var my_id = getVisitorId();
        var pid = getCurrentProductId();
        var aid = '';
        var pname = getCurrentProductName();
        var url = document.location.href;

        var tracker = createProbanceTracker(typeID, my_id);
        if (!tracker) {
            return;
        }

        if (pid === null || pid === undefined) {
            pid = '';
        }
        if (aid === null || aid === undefined) {
            aid = '';
        }

        tracker.track(url, [['product_id', pid], ['article_id', aid],['product_name', pname], ['action', 'visit']]);
        lastTrackedUrl = url;
    };

    window.Cartin = function Cartin(payload) {
        if (typeof window.PROBANCE_CRMTracker !== 'function' || typeof window.PROBANCE_trackers !== 'function') {
            return;
        }

        var data = payload || {};
     
        var typeID = VISITOR_IDENTIFIER_TYPE;
        var my_id = getVisitorId();

        var pid = String(data.pid || '').trim();
        var aid = String(data.aid || '').trim();
        var bid = String(data.bid || getBasketId() || '').trim();
        var url = document.location.href;
        var pname = getCurrentProductName();
        var tracker = createProbanceTracker(typeID, my_id);
        if (!tracker) {
            return;
        }

        if (pid === null || pid === undefined) {
            pid = '';
        }
        if (aid === null || aid === undefined) {
            aid = '';
        }
        if (bid === null || bid === undefined) {
            bid = '';
        }

        tracker.trackEvent(url, [['product_id', pid], ['article_id', aid], ['basket_id', bid],['product_name', pname], ['action', 'cart']]);
    };

    document.addEventListener('submit', function (event) {
        var form = event.target;
        if (!(form instanceof HTMLFormElement)) {
            return;
        }

        var action = (form.getAttribute('action') || '').toLowerCase();
        if (action.indexOf('/checkout/cart/add') === -1) {
            return;
        }

        var productInput = form.querySelector('input[name="product"]');
        var productId = productInput ? String(productInput.value || '').trim() : '';
        window.Cartin({pid: productId, aid: productId});
    }, true);

    function trackIfUrlChanged() {
        var currentUrl = document.location.href;
        if (currentUrl === lastTrackedUrl) {
            return;
        }
        window.ViewedPage();
    }

    function bindAjaxNavigationTracking() {
        var originalPushState = window.history.pushState;
        var originalReplaceState = window.history.replaceState;

        window.history.pushState = function () {
            var result = originalPushState.apply(this, arguments);
            setTimeout(trackIfUrlChanged, 0);
            return result;
        };

        window.history.replaceState = function () {
            var result = originalReplaceState.apply(this, arguments);
            setTimeout(trackIfUrlChanged, 0);
            return result;
        };

        window.addEventListener('popstate', trackIfUrlChanged);
        window.addEventListener('hashchange', trackIfUrlChanged);
    }

    if (window.jQuery && typeof window.jQuery === 'function') {
        window.jQuery(document).ready(function () {
            window.ViewedPage();
            bindAjaxNavigationTracking();
        });
    } else if (document.readyState === 'loading') {
        document.addEventListener('DOMContentLoaded', function () {
            window.ViewedPage();
            bindAjaxNavigationTracking();
        });
    } else {
        window.ViewedPage();
        bindAjaxNavigationTracking();
    }
})();</script>
<script>
    window.mrGa4CatalogProductConfig = {"item":{"item_id":"2503908-thevenon-rideau-1","item_name":"RIDEAU MAJORELLE SUR VELOURS","affiliation":"mesrideaux.fr","currency":"EUR","price":0,"quantity":1,"item_brand":"MesRideaux","item_category":"Rideaux sur mesure","product_type":"made_to_measure","item_variant":"Multicolor"},"variants":{"26227":{"item_id":"2503908-thevenon-rideau","item_name":"RIDEAU MAJORELLE SUR VELOURS","affiliation":"mesrideaux.fr","currency":"EUR","price":0,"quantity":1,"item_brand":"MesRideaux","item_category":"Rideaux sur mesure","product_type":"made_to_measure","item_variant":"Rose fond creme sur velours"},"26228":{"item_id":"2503909-thevenon-rideau","item_name":"RIDEAU MAJORELLE SUR VELOURS","affiliation":"mesrideaux.fr","currency":"EUR","price":0,"quantity":1,"item_brand":"MesRideaux","item_category":"Rideaux sur mesure","product_type":"made_to_measure","item_variant":"Camel fond bleu roi sur velours"},"26229":{"item_id":"2503911-thevenon-rideau","item_name":"RIDEAU MAJORELLE SUR VELOURS","affiliation":"mesrideaux.fr","currency":"EUR","price":0,"quantity":1,"item_brand":"MesRideaux","item_category":"Rideaux sur mesure","product_type":"made_to_measure","item_variant":"Jaune fond canard sur velours"}},"requiresVariantSelection":true,"ecommerce":{"currency":"EUR","value":0,"items":[{"item_id":"2503908-thevenon-rideau-1","item_name":"RIDEAU MAJORELLE SUR VELOURS","affiliation":"mesrideaux.fr","currency":"EUR","price":0,"quantity":1,"item_brand":"MesRideaux","item_category":"Rideaux sur mesure","product_type":"made_to_measure","item_variant":"Multicolor"}]}};
</script>
<script>
    window.mrGa4ConfiguratorConfig = {"item":{"item_id":"2503908-thevenon-rideau-1","item_name":"RIDEAU MAJORELLE SUR VELOURS","affiliation":"mesrideaux.fr","currency":"EUR","price":0,"quantity":1,"item_brand":"MesRideaux","item_category":"Rideaux sur mesure","product_type":"made_to_measure","item_variant":"Multicolor"},"item_category":"Rideaux sur mesure","variants":{"26227":{"item_id":"2503908-thevenon-rideau","item_name":"RIDEAU MAJORELLE SUR VELOURS","affiliation":"mesrideaux.fr","currency":"EUR","price":0,"quantity":1,"item_brand":"MesRideaux","item_category":"Rideaux sur mesure","product_type":"made_to_measure","item_variant":"Rose fond creme sur velours"},"26228":{"item_id":"2503909-thevenon-rideau","item_name":"RIDEAU MAJORELLE SUR VELOURS","affiliation":"mesrideaux.fr","currency":"EUR","price":0,"quantity":1,"item_brand":"MesRideaux","item_category":"Rideaux sur mesure","product_type":"made_to_measure","item_variant":"Camel fond bleu roi sur velours"},"26229":{"item_id":"2503911-thevenon-rideau","item_name":"RIDEAU MAJORELLE SUR VELOURS","affiliation":"mesrideaux.fr","currency":"EUR","price":0,"quantity":1,"item_brand":"MesRideaux","item_category":"Rideaux sur mesure","product_type":"made_to_measure","item_variant":"Jaune fond canard sur velours"}},"steps":{"1":{"step_name":"dimensions","label":"J’indique mes dimensions"},"50":{"step_name":"nombre_rideaux","label":"Je choisis le nombre de rideaux par fenêtre"},"2":{"step_name":"tete_rideaux","label":"Je sélectionne ma tête de rideaux"},"3":{"step_name":"doublure","label":"Je sélectionne ma doublure"},"4":{"step_name":"tombant","label":"Je sélectionne mon tombant"}}};
</script>
<script>
    window.mrGa4WishlistConfig = {"item":{"item_id":"2503908-thevenon-rideau-1","item_name":"RIDEAU MAJORELLE SUR VELOURS","affiliation":"mesrideaux.fr","currency":"EUR","price":0,"quantity":1,"item_brand":"MesRideaux","item_category":"Rideaux sur mesure","product_type":"made_to_measure","item_variant":"Multicolor"}};
</script>
<script src="https://cdn3.mesrideaux.fr/version1783511887/frontend/MesRideaux/hyva-child/fr_FR/Mesrideaux_Ga4Datalayer/js/configurateur-tracking.min.js"></script>
<script src="https://cdn3.mesrideaux.fr/version1783511887/frontend/MesRideaux/hyva-child/fr_FR/js/configurable-custom-options.min.js"></script>

<script src="https://cdn3.mesrideaux.fr/version1783511887/frontend/MesRideaux/hyva-child/fr_FR/js/configurable-cross-sell.min.js"></script>

<script type="text/json" id="default-section-data">
    {"messages":[],"customer":[],"compare-products":[],"last-ordered-items":[],"cart":[],"directory-data":{"BE":{"name":"Belgique","regions":{"577":{"code":"VAN","name":"Antwerpen"},"578":{"code":"WBR","name":"Brabant wallon"},"579":{"code":"BRU","name":"Brussels-Capital Region"},"580":{"code":"WHT","name":"Hainaut"},"582":{"code":"WLG","name":"Li\u00e8ge"},"581":{"code":"VLI","name":"Limburg"},"583":{"code":"WLX","name":"Luxembourg"},"584":{"code":"WNA","name":"Namur"},"585":{"code":"VOV","name":"Oost-Vlaanderen"},"586":{"code":"VBR","name":"Vlaams-Brabant"},"587":{"code":"VWV","name":"West-Vlaanderen"}}},"FR":{"name":"France","regions":{"182":{"code":"1","name":"Ain"},"183":{"code":"2","name":"Aisne"},"184":{"code":"3","name":"Allier"},"185":{"code":"4","name":"Alpes-de-Haute-Provence"},"187":{"code":"6","name":"Alpes-Maritimes"},"188":{"code":"7","name":"Ard\u00e8che"},"189":{"code":"8","name":"Ardennes"},"190":{"code":"9","name":"Ari\u00e8ge"},"191":{"code":"10","name":"Aube"},"192":{"code":"11","name":"Aude"},"193":{"code":"12","name":"Aveyron"},"249":{"code":"67","name":"Bas-Rhin"},"194":{"code":"13","name":"Bouches-du-Rh\u00f4ne"},"195":{"code":"14","name":"Calvados"},"196":{"code":"15","name":"Cantal"},"197":{"code":"16","name":"Charente"},"198":{"code":"17","name":"Charente-Maritime"},"199":{"code":"18","name":"Cher"},"200":{"code":"19","name":"Corr\u00e8ze"},"201":{"code":"2A","name":"Corse-du-Sud"},"203":{"code":"21","name":"C\u00f4te-d'Or"},"204":{"code":"22","name":"C\u00f4tes-d'Armor"},"205":{"code":"23","name":"Creuse"},"261":{"code":"79","name":"Deux-S\u00e8vres"},"206":{"code":"24","name":"Dordogne"},"207":{"code":"25","name":"Doubs"},"208":{"code":"26","name":"Dr\u00f4me"},"273":{"code":"91","name":"Essonne"},"209":{"code":"27","name":"Eure"},"210":{"code":"28","name":"Eure-et-Loir"},"211":{"code":"29","name":"Finist\u00e8re"},"212":{"code":"30","name":"Gard"},"214":{"code":"32","name":"Gers"},"215":{"code":"33","name":"Gironde"},"250":{"code":"68","name":"Haut-Rhin"},"202":{"code":"2B","name":"Haute-Corse"},"213":{"code":"31","name":"Haute-Garonne"},"225":{"code":"43","name":"Haute-Loire"},"234":{"code":"52","name":"Haute-Marne"},"252":{"code":"70","name":"Haute-Sa\u00f4ne"},"256":{"code":"74","name":"Haute-Savoie"},"269":{"code":"87","name":"Haute-Vienne"},"186":{"code":"5","name":"Hautes-Alpes"},"247":{"code":"65","name":"Hautes-Pyr\u00e9n\u00e9es"},"274":{"code":"92","name":"Hauts-de-Seine"},"216":{"code":"34","name":"H\u00e9rault"},"217":{"code":"35","name":"Ille-et-Vilaine"},"218":{"code":"36","name":"Indre"},"219":{"code":"37","name":"Indre-et-Loire"},"220":{"code":"38","name":"Is\u00e8re"},"221":{"code":"39","name":"Jura"},"222":{"code":"40","name":"Landes"},"223":{"code":"41","name":"Loir-et-Cher"},"224":{"code":"42","name":"Loire"},"226":{"code":"44","name":"Loire-Atlantique"},"227":{"code":"45","name":"Loiret"},"228":{"code":"46","name":"Lot"},"229":{"code":"47","name":"Lot-et-Garonne"},"230":{"code":"48","name":"Loz\u00e8re"},"231":{"code":"49","name":"Maine-et-Loire"},"232":{"code":"50","name":"Manche"},"233":{"code":"51","name":"Marne"},"235":{"code":"53","name":"Mayenne"},"236":{"code":"54","name":"Meurthe-et-Moselle"},"237":{"code":"55","name":"Meuse"},"238":{"code":"56","name":"Morbihan"},"239":{"code":"57","name":"Moselle"},"240":{"code":"58","name":"Ni\u00e8vre"},"241":{"code":"59","name":"Nord"},"242":{"code":"60","name":"Oise"},"243":{"code":"61","name":"Orne"},"257":{"code":"75","name":"Paris"},"244":{"code":"62","name":"Pas-de-Calais"},"245":{"code":"63","name":"Puy-de-D\u00f4me"},"246":{"code":"64","name":"Pyr\u00e9n\u00e9es-Atlantiques"},"248":{"code":"66","name":"Pyr\u00e9n\u00e9es-Orientales"},"251":{"code":"69","name":"Rh\u00f4ne"},"253":{"code":"71","name":"Sa\u00f4ne-et-Loire"},"254":{"code":"72","name":"Sarthe"},"255":{"code":"73","name":"Savoie"},"259":{"code":"77","name":"Seine-et-Marne"},"258":{"code":"76","name":"Seine-Maritime"},"275":{"code":"93","name":"Seine-Saint-Denis"},"262":{"code":"80","name":"Somme"},"263":{"code":"81","name":"Tarn"},"264":{"code":"82","name":"Tarn-et-Garonne"},"272":{"code":"90","name":"Territoire-de-Belfort"},"277":{"code":"95","name":"Val-d'Oise"},"276":{"code":"94","name":"Val-de-Marne"},"265":{"code":"83","name":"Var"},"266":{"code":"84","name":"Vaucluse"},"267":{"code":"85","name":"Vend\u00e9e"},"268":{"code":"86","name":"Vienne"},"270":{"code":"88","name":"Vosges"},"271":{"code":"89","name":"Yonne"},"260":{"code":"78","name":"Yvelines"}}},"LU":{"name":"Luxembourg"},"data_id":1783556696},"captcha":[],"instant-purchase":[],"loggedAsCustomer":[],"persistent":[],"review":[],"payments":[],"wishlist":{"items":[]},"alma_section":[],"hyva_checkout":[],"recently_viewed_product":[],"recently_compared_product":[],"product_data_storage":[],"paypal-billing-agreement":[],"paypal-buyer-country":[],"magepal-gtm-jsdatalayer":[]}</script>
<script>
    (()=> {
        'use strict';
        const amBrandPosition = {
            selectors: {
                brands: '#maincontent > .container .amshopby-option-link',
                productInfoTitleP: '.product-info-main p.title-font'
            },

            amBrandPositionInit() {
                const brands = document.querySelectorAll(this.selectors.brands);
                let target;

                if (!brands.length) {
                     return;
                }

                target = document.querySelector(this.selectors.productInfoTitleP);

                for (let brand of brands) {
                    brand.classList.remove('flex');
                    brand.classList.add('inline-flex');
                    this.moveElement(brand, target);
                }
            },

            moveElement(element, target) {
                const fragment = document.createDocumentFragment();
                fragment.appendChild(element);
                target.append(fragment);
                element.classList.remove('hidden');
            }
        }
        document.addEventListener('DOMContentLoaded', () => {
            amBrandPosition.amBrandPositionInit();
        })
    })()
</script></div><script>(function(){function c(){var b=a.contentDocument||a.contentWindow.document;if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'a18330403ca4d09a',t:'MTc4MzU1NjY5NQ=='};var a=document.createElement('script');a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script></body>
</html>