{"id":286,"date":"2025-12-08T15:45:07","date_gmt":"2025-12-08T14:45:07","guid":{"rendered":"https:\/\/www.grandcafedelaposte.restaurant\/grandcafedelapos\/?page_id=286"},"modified":"2026-03-17T12:30:45","modified_gmt":"2026-03-17T11:30:45","slug":"salon-de-musica","status":"publish","type":"page","link":"https:\/\/www.grandcafedelaposte.restaurant\/es\/salon-musicale\/","title":{"rendered":"Sal\u00f3n Musical"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"286\" class=\"elementor elementor-286\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b64c735 e-flex e-con-boxed e-con e-parent\" data-id=\"b64c735\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-03f46b5 elementor-widget elementor-widget-heading\" data-id=\"03f46b5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">LE SALON - LE C\u0152UR MUSICAL DE GU\u00c9LIZ<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-962e020 elementor-widget elementor-widget-text-editor\" data-id=\"962e020\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">Le Salon est l\u2019espace intime et feutr\u00e9 du Grand Caf\u00e9 de la Poste. Il renoue avec l\u2019atmosph\u00e8re \u00e9l\u00e9gante et vibrante des grands lieux de vie de Marrakech.<\/span><\/p><h5><strong>L\u2019Art de Vivre en Rythme<\/strong><\/h5><p><span style=\"font-weight: 400;\">Le week-end, le Salon s\u2019anime pour vous offrir des d\u00eeners musicaux. La cuisine traditionnelle fran\u00e7aise y est servie en cadence.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-1abd75d e-flex e-con-boxed e-con e-child\" data-id=\"1abd75d\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b82e158 elementor-widget elementor-widget-image\" data-id=\"b82e158\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/www.grandcafedelaposte.restaurant\/wp-content\/uploads\/2025\/12\/GCDLP_Menu_Icons-150x150.png\" class=\"attachment-thumbnail size-thumbnail wp-image-608\" alt=\"\" srcset=\"https:\/\/www.grandcafedelaposte.restaurant\/wp-content\/uploads\/2025\/12\/GCDLP_Menu_Icons-150x150.png 150w, https:\/\/www.grandcafedelaposte.restaurant\/wp-content\/uploads\/2025\/12\/GCDLP_Menu_Icons-300x300.png 300w, https:\/\/www.grandcafedelaposte.restaurant\/wp-content\/uploads\/2025\/12\/elementor\/thumbs\/GCDLP_Menu_Icons-rg06q7szeuihb518wmcxaiv23kjtd21cx0b61guzu0.png 100w, https:\/\/www.grandcafedelaposte.restaurant\/wp-content\/uploads\/2025\/12\/elementor\/thumbs\/GCDLP_Menu_Icons-rg06q7sysx49i4ydp5xc8hfvkwg016fhz40kyrmdtg.png 50w, https:\/\/www.grandcafedelaposte.restaurant\/wp-content\/uploads\/2025\/12\/GCDLP_Menu_Icons.png 500w\" sizes=\"(max-width: 150px) 100vw, 150px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-8719a5c e-flex e-con-boxed e-con e-parent\" data-id=\"8719a5c\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-0cedfde e-con-full e-flex e-con e-child\" data-id=\"0cedfde\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d9bb67a elementor-widget elementor-widget-heading\" data-id=\"d9bb67a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">D\u00eeners Friday Soul<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1590784 elementor-widget elementor-widget-text-editor\" data-id=\"1590784\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">Chaque vendredi, le Salon accueille des artistes Soul. Le Groove accompagne le d\u00eener pour marquer le d\u00e9but du week-end.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-bc7eb45 my-rounded-video elementor-widget elementor-widget-video\" data-id=\"bc7eb45\" data-element_type=\"widget\" data-e-type=\"widget\" id=\"my-video-1\" data-settings=\"{&quot;video_type&quot;:&quot;hosted&quot;,&quot;show_image_overlay&quot;:&quot;yes&quot;,&quot;image_overlay&quot;:{&quot;url&quot;:&quot;https:\\\/\\\/www.grandcafedelaposte.restaurant\\\/wp-content\\\/uploads\\\/2026\\\/01\\\/GCDLP-Diner-Friday-Soul.png&quot;,&quot;id&quot;:3032,&quot;size&quot;:&quot;&quot;,&quot;alt&quot;:&quot;&quot;,&quot;source&quot;:&quot;library&quot;},&quot;controls&quot;:&quot;yes&quot;}\" data-widget_type=\"video.default\">\n\t\t\t\t\t\t\t<div class=\"e-hosted-video elementor-wrapper elementor-open-inline\">\n\t\t\t\t\t<video class=\"elementor-video\" src=\"https:\/\/www.grandcafedelaposte.restaurant\/wp-content\/uploads\/2026\/01\/GCDLP-Diner-Friday-Soul.mp4\" controls=\"\" preload=\"metadata\" controlsList=\"nodownload\" poster=\"https:\/\/www.grandcafedelaposte.restaurant\/wp-content\/uploads\/2026\/01\/GCDLP-Diner-Friday-Soul.png\"><\/video>\n\t\t\t\t\t\t<div class=\"elementor-custom-embed-image-overlay\" style=\"background-image: url(https:\/\/www.grandcafedelaposte.restaurant\/wp-content\/uploads\/2026\/01\/GCDLP-Diner-Friday-Soul.png);\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"elementor-custom-embed-play\" role=\"button\" aria-label=\"Video abspielen\" tabindex=\"0\">\n\t\t\t\t\t\t\t<i aria-hidden=\"true\" class=\"eicon-play\"><\/i>\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-46be0af elementor-widget elementor-widget-shortcode\" data-id=\"46be0af\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">    <style>\n        #openflow-btn-6a047fdbef293 {\n                        background: rgba(255, 255, 255, 0.1) !important;\n            backdrop-filter: blur(10px);\n            -webkit-backdrop-filter: blur(10px);\n            border: 1px solid rgba(255, 255, 255, 0.2) !important;\n            box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1) !important;\n                                    position: relative;\n            overflow: hidden;\n                    }\n                #openflow-btn-6a047fdbef293::before {\n            content: '';\n            position: absolute;\n            top: 0;\n            left: 0;\n            right: 0;\n            height: 50%;\n            background: linear-gradient(180deg, rgba(255, 255, 255, 0.3) 0%, rgba(255, 255, 255, 0) 100%);\n            pointer-events: none;\n            border-radius: 4px 4px 0 0;\n        }\n                #openflow-btn-6a047fdbef293:hover {\n            transform: translateY(-2px);\n            background: #978550 !important;\n                        box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2) !important;\n                    }\n        #openflow-btn-6a047fdbef293:active {\n            background: #978550 !important;\n            backdrop-filter: none !important;\n            -webkit-backdrop-filter: none !important;\n            border: none !important;\n            transform: translateY(0) !important;\n        }\n        #openflow-btn-6a047fdbef293:active::before {\n            display: none !important;\n        }\n        \/* Responsive font-size and padding *\/\n        \/* Mobile (< 768px) *\/\n        @media (max-width: 767px) {\n            #openflow-btn-6a047fdbef293 {\n                font-size: 16px !important;\n                padding: 10px 20px !important;\n            }\n        }\n        \/* Tablet (768px - 1024px) *\/\n        @media (min-width: 768px) and (max-width: 1024px) {\n            #openflow-btn-6a047fdbef293 {\n                font-size: 18px !important;\n                padding: 12px 24px !important;\n            }\n        }\n        \/* Desktop (> 1024px) *\/\n        @media (min-width: 1025px) {\n            #openflow-btn-6a047fdbef293 {\n                font-size: 20px !important;\n                padding: 12px 24px !important;\n            }\n        }\n    <\/style>\n    <div style=\"text-align: center;\">\n        <button\n            id=\"openflow-btn-6a047fdbef293\"\n            class=\"openflow-shortcode-btn\"\n            data-type=\"event\"\n            data-event-id=\"39f99b22-9294-4c54-9327-4e9f8625036b\"\n            data-modal-border-radius=\"4px\"\n            data-modal-max-width=\"500px\"\n            data-modal-max-height=\"70vh\"\n            data-header-bg-color=\"\"\n            data-header-text-color=\"\"\n            style=\"\n                background-color: #fef9ee;\n                color: #212326;\n                border-radius: 4px;\n                                border: 1px solid #978550;\n                                cursor: pointer;\n                font-weight: 600;\n                                transition: all 0.3s ease;\n            \"\n        >\n            R\u00c9SERVEZ VOTRE SOIR\u00c9E SOUL        <\/button>\n    <\/div>\n    <script>\n        (function() {\n            \/\/ Helper function to convert RGB to HEX\n            function rgbToHex(rgb) {\n                var result = rgb.match(\/\\d+\/g);\n                if (!result || result.length < 3) return '#000000';\n                var r = parseInt(result[0]);\n                var g = parseInt(result[1]);\n                var b = parseInt(result[2]);\n                return '#' + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1);\n            }\n\n            var btn = document.getElementById('openflow-btn-6a047fdbef293');\n            var floatingButtons = document.querySelectorAll('.openflow-reservation-btn');\n\n            if (floatingButtons.length > 0) {\n                \/\/ Use existing modal and iframe\n                btn.addEventListener('click', function() {\n                    var btnColor = window.getComputedStyle(btn).backgroundColor;\n                    var modalWrapper = document.querySelector('.openflow-modal-wrapper');\n\n                    \/\/ Get modal styles from button data attributes\n                    var modalBorderRadius = btn.getAttribute('data-modal-border-radius') || '16px';\n                    var modalMaxWidth = btn.getAttribute('data-modal-max-width') || '500px';\n                    var modalMaxHeight = btn.getAttribute('data-modal-max-height') || '800px';\n\n                    \/\/ Apply modal styles\n                    if (modalWrapper) {\n                        modalWrapper.style.borderRadius = modalBorderRadius;\n                        modalWrapper.style.maxWidth = modalMaxWidth;\n                        modalWrapper.style.maxHeight = modalMaxHeight;\n                    }\n\n                    floatingButtons[0].click();\n                });\n            } else {\n                \/\/ No floating buttons, create modal for shortcode\n                if (!document.querySelector('.openflow-reservation-modal')) {\n                    var modalHtml = '<div class=\"openflow-reservation-modal\">' +\n                        '<div class=\"openflow-modal-wrapper\">' +\n                        '<iframe class=\"openflow-reservation-iframe\" title=\"Widget de r\u00e9servation\"><\/iframe>' +\n                        '<\/div><\/div>';\n                    document.body.insertAdjacentHTML('beforeend', modalHtml);\n\n                    var style = document.createElement('style');\n                    style.textContent = '.openflow-reservation-modal{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,0.6);z-index:9999;justify-content:center;align-items:center}.openflow-modal-wrapper{position:relative;width:90%;background:white;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,0.3);transition:all 0.3s ease}.openflow-reservation-iframe{width:100%;height:100%;border:none}';\n                    document.head.appendChild(style);\n                }\n\n                var modal = document.querySelector('.openflow-reservation-modal');\n                var modalWrapper = document.querySelector('.openflow-modal-wrapper');\n                var iframe = document.querySelector('.openflow-reservation-iframe');\n\n                btn.addEventListener('click', function() {\n                    var btnColor = window.getComputedStyle(btn).backgroundColor;\n\n                    \/\/ Get modal styles from button data attributes\n                    var modalBorderRadius = btn.getAttribute('data-modal-border-radius') || '16px';\n                    var modalMaxWidth = btn.getAttribute('data-modal-max-width') || '500px';\n                    var modalMaxHeight = btn.getAttribute('data-modal-max-height') || '800px';\n                    var headerBgColor = btn.getAttribute('data-header-bg-color') || '';\n                    var headerTextColor = btn.getAttribute('data-header-text-color') || '';\n\n                    \/\/ Apply modal styles\n                    modalWrapper.style.borderRadius = modalBorderRadius;\n                    modalWrapper.style.maxWidth = modalMaxWidth;\n                    modalWrapper.style.maxHeight = modalMaxHeight;\n                    modalWrapper.style.height = '85vh';\n\n                    var baseConfig = {\n                        pointOfSaleId: '66c87551e1bc2f3d2a7ae1b7',\n                        widgetUrl: 'https:\/\/widget.openflow.pro'\n                                            };\n\n                    var eventId = btn.getAttribute('data-event-id');\n                    var btnType = btn.getAttribute('data-type');\n\n                    var config = Object.assign({}, baseConfig);\n                    config.modalStyles = {\n                        borderRadius: modalBorderRadius,\n                        maxWidth: modalMaxWidth,\n                        maxHeight: modalMaxHeight\n                    };\n\n                    \/\/ Add theme configuration\n                    config.theme = {\n                        primaryColor: rgbToHex(btnColor),\n                        textColor: '#ffffff'\n                    };\n\n                    \/\/ DEBUG: Log des valeurs r\u00e9cup\u00e9r\u00e9es du bouton (shortcode)\n                    console.log('[WordPress Shortcode] Button attributes:');\n                    console.log('  - data-header-bg-color:', headerBgColor);\n                    console.log('  - data-header-text-color:', headerTextColor);\n\n                    \/\/ Add header customization if provided\n                    if (headerBgColor) {\n                        config.theme.headerBackgroundColor = headerBgColor;\n                        console.log('[WordPress Shortcode] \u2705 headerBackgroundColor SET to:', headerBgColor);\n                    } else {\n                        console.log('[WordPress Shortcode] \u26a0\ufe0f headerBackgroundColor NOT SET (empty value)');\n                    }\n                    if (headerTextColor) {\n                        config.theme.textColor = headerTextColor;\n                    }\n\n                    console.log('[WordPress Shortcode] Final config.theme:', config.theme);\n\n                    var iframeUrl = config.widgetUrl;\n                    if (btnType === 'event' && eventId) {\n                        config.eventId = eventId;\n                        iframeUrl = config.widgetUrl + '\/' + config.pointOfSaleId + '?event=' + eventId;\n                    } else {\n                        iframeUrl = config.widgetUrl + '\/' + config.pointOfSaleId;\n                    }\n\n                    iframe.src = iframeUrl;\n\n                    iframe.onload = function() {\n                        console.log('[WordPress] Sending config to iframe:', config);\n                        iframe.contentWindow.postMessage({\n                            type: 'OPENFLOW_CONFIG_RESPONSE',\n                            config: config\n                        }, '*');\n                        console.log('[WordPress] postMessage sent with config.theme.headerBackgroundColor:', config.theme.headerBackgroundColor);\n                    };\n\n                    modal.style.display = 'flex';\n                    document.body.style.overflow = 'hidden';\n                });\n\n                modal.addEventListener('click', function(e) {\n                    if (e.target === modal) {\n                        modal.style.display = 'none';\n                        document.body.style.overflow = '';\n                    }\n                });\n            }\n        })();\n    <\/script>\n    <\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-aca107d elementor-widget elementor-widget-html\" data-id=\"aca107d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<script>\ndocument.addEventListener('DOMContentLoaded', function() {\n    \/\/ 1. Target the specific videos inside your containers\n    \/\/ We look for the 'video' tag inside the IDs you just created\n    var video1 = document.querySelector('#my-video-1 video');\n    var video2 = document.querySelector('#my-video-2 video');\n\n    \/\/ Helper function to stop the other video\n    function stopOthers(current) {\n        if (current === video1 && video2) { \n            video2.pause(); \n        }\n        if (current === video2 && video1) { \n            video1.pause(); \n        }\n    }\n\n    \/\/ 2. Listen for the 'Play' button on Video 1\n    if (video1) {\n        video1.addEventListener('play', function() {\n            stopOthers(video1);\n        });\n    }\n\n    \/\/ 3. Listen for the 'Play' button on Video 2\n    if (video2) {\n        video2.addEventListener('play', function() {\n            stopOthers(video2);\n        });\n    }\n});\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-21fb5c7 e-con-full e-flex e-con e-child\" data-id=\"21fb5c7\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-72695b9 elementor-widget elementor-widget-heading\" data-id=\"72695b9\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">D\u00eeners Sunday Jazz\n<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0c6d1eb elementor-widget elementor-widget-text-editor\" data-id=\"0c6d1eb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"font-weight: 400;\">Les dimanches Jazz, les musiciens jouent des standards de diff\u00e9rents styles pour accompagner la fin de la semaine<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7d891e0 my-rounded-video elementor-widget elementor-widget-video\" data-id=\"7d891e0\" data-element_type=\"widget\" data-e-type=\"widget\" id=\"my-video-2\" data-settings=\"{&quot;video_type&quot;:&quot;hosted&quot;,&quot;show_image_overlay&quot;:&quot;yes&quot;,&quot;image_overlay&quot;:{&quot;url&quot;:&quot;https:\\\/\\\/www.grandcafedelaposte.restaurant\\\/wp-content\\\/uploads\\\/2026\\\/01\\\/GCDLP_Diner_Sunday_Jazz.png&quot;,&quot;id&quot;:3033,&quot;size&quot;:&quot;&quot;,&quot;alt&quot;:&quot;&quot;,&quot;source&quot;:&quot;library&quot;},&quot;controls&quot;:&quot;yes&quot;}\" data-widget_type=\"video.default\">\n\t\t\t\t\t\t\t<div class=\"e-hosted-video elementor-wrapper elementor-open-inline\">\n\t\t\t\t\t<video class=\"elementor-video\" src=\"https:\/\/www.grandcafedelaposte.restaurant\/wp-content\/uploads\/2025\/12\/GCDLP_Diner_Sunday_Jazz.mp4\" controls=\"\" preload=\"metadata\" controlsList=\"nodownload\" poster=\"https:\/\/www.grandcafedelaposte.restaurant\/wp-content\/uploads\/2026\/01\/GCDLP_Diner_Sunday_Jazz.png\"><\/video>\n\t\t\t\t\t\t<div class=\"elementor-custom-embed-image-overlay\" style=\"background-image: url(https:\/\/www.grandcafedelaposte.restaurant\/wp-content\/uploads\/2026\/01\/GCDLP_Diner_Sunday_Jazz.png);\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"elementor-custom-embed-play\" role=\"button\" aria-label=\"Video abspielen\" tabindex=\"0\">\n\t\t\t\t\t\t\t<i aria-hidden=\"true\" class=\"eicon-play\"><\/i>\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3181fc0 elementor-widget elementor-widget-shortcode\" data-id=\"3181fc0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">    <style>\n        #openflow-btn-6a047fdbefb69 {\n                        background: rgba(255, 255, 255, 0.1) !important;\n            backdrop-filter: blur(10px);\n            -webkit-backdrop-filter: blur(10px);\n            border: 1px solid rgba(255, 255, 255, 0.2) !important;\n            box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1) !important;\n                                    position: relative;\n            overflow: hidden;\n                    }\n                #openflow-btn-6a047fdbefb69::before {\n            content: '';\n            position: absolute;\n            top: 0;\n            left: 0;\n            right: 0;\n            height: 50%;\n            background: linear-gradient(180deg, rgba(255, 255, 255, 0.3) 0%, rgba(255, 255, 255, 0) 100%);\n            pointer-events: none;\n            border-radius: 4px 4px 0 0;\n        }\n                #openflow-btn-6a047fdbefb69:hover {\n            transform: translateY(-2px);\n            background: #978550 !important;\n                        box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2) !important;\n                    }\n        #openflow-btn-6a047fdbefb69:active {\n            background: #978550 !important;\n            backdrop-filter: none !important;\n            -webkit-backdrop-filter: none !important;\n            border: none !important;\n            transform: translateY(0) !important;\n        }\n        #openflow-btn-6a047fdbefb69:active::before {\n            display: none !important;\n        }\n        \/* Responsive font-size and padding *\/\n        \/* Mobile (< 768px) *\/\n        @media (max-width: 767px) {\n            #openflow-btn-6a047fdbefb69 {\n                font-size: 16px !important;\n                padding: 10px 20px !important;\n            }\n        }\n        \/* Tablet (768px - 1024px) *\/\n        @media (min-width: 768px) and (max-width: 1024px) {\n            #openflow-btn-6a047fdbefb69 {\n                font-size: 18px !important;\n                padding: 12px 24px !important;\n            }\n        }\n        \/* Desktop (> 1024px) *\/\n        @media (min-width: 1025px) {\n            #openflow-btn-6a047fdbefb69 {\n                font-size: 20px !important;\n                padding: 12px 24px !important;\n            }\n        }\n    <\/style>\n    <div style=\"text-align: center;\">\n        <button\n            id=\"openflow-btn-6a047fdbefb69\"\n            class=\"openflow-shortcode-btn\"\n            data-type=\"event\"\n            data-event-id=\"773e4bd1-761b-4767-a2c6-7d867b51278f\"\n            data-modal-border-radius=\"4px\"\n            data-modal-max-width=\"500px\"\n            data-modal-max-height=\"70vh\"\n            data-header-bg-color=\"\"\n            data-header-text-color=\"\"\n            style=\"\n                background-color: #fef9ee;\n                color: #212326;\n                border-radius: 4px;\n                                border: 1px solid #978550;\n                                cursor: pointer;\n                font-weight: 600;\n                                transition: all 0.3s ease;\n            \"\n        >\n            R\u00c9SERVEZ VOTRE SOIR\u00c9E JAZZ        <\/button>\n    <\/div>\n    <script>\n        (function() {\n            \/\/ Helper function to convert RGB to HEX\n            function rgbToHex(rgb) {\n                var result = rgb.match(\/\\d+\/g);\n                if (!result || result.length < 3) return '#000000';\n                var r = parseInt(result[0]);\n                var g = parseInt(result[1]);\n                var b = parseInt(result[2]);\n                return '#' + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1);\n            }\n\n            var btn = document.getElementById('openflow-btn-6a047fdbefb69');\n            var floatingButtons = document.querySelectorAll('.openflow-reservation-btn');\n\n            if (floatingButtons.length > 0) {\n                \/\/ Use existing modal and iframe\n                btn.addEventListener('click', function() {\n                    var btnColor = window.getComputedStyle(btn).backgroundColor;\n                    var modalWrapper = document.querySelector('.openflow-modal-wrapper');\n\n                    \/\/ Get modal styles from button data attributes\n                    var modalBorderRadius = btn.getAttribute('data-modal-border-radius') || '16px';\n                    var modalMaxWidth = btn.getAttribute('data-modal-max-width') || '500px';\n                    var modalMaxHeight = btn.getAttribute('data-modal-max-height') || '800px';\n\n                    \/\/ Apply modal styles\n                    if (modalWrapper) {\n                        modalWrapper.style.borderRadius = modalBorderRadius;\n                        modalWrapper.style.maxWidth = modalMaxWidth;\n                        modalWrapper.style.maxHeight = modalMaxHeight;\n                    }\n\n                    floatingButtons[0].click();\n                });\n            } else {\n                \/\/ No floating buttons, create modal for shortcode\n                if (!document.querySelector('.openflow-reservation-modal')) {\n                    var modalHtml = '<div class=\"openflow-reservation-modal\">' +\n                        '<div class=\"openflow-modal-wrapper\">' +\n                        '<iframe class=\"openflow-reservation-iframe\" title=\"Widget de r\u00e9servation\"><\/iframe>' +\n                        '<\/div><\/div>';\n                    document.body.insertAdjacentHTML('beforeend', modalHtml);\n\n                    var style = document.createElement('style');\n                    style.textContent = '.openflow-reservation-modal{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,0.6);z-index:9999;justify-content:center;align-items:center}.openflow-modal-wrapper{position:relative;width:90%;background:white;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,0.3);transition:all 0.3s ease}.openflow-reservation-iframe{width:100%;height:100%;border:none}';\n                    document.head.appendChild(style);\n                }\n\n                var modal = document.querySelector('.openflow-reservation-modal');\n                var modalWrapper = document.querySelector('.openflow-modal-wrapper');\n                var iframe = document.querySelector('.openflow-reservation-iframe');\n\n                btn.addEventListener('click', function() {\n                    var btnColor = window.getComputedStyle(btn).backgroundColor;\n\n                    \/\/ Get modal styles from button data attributes\n                    var modalBorderRadius = btn.getAttribute('data-modal-border-radius') || '16px';\n                    var modalMaxWidth = btn.getAttribute('data-modal-max-width') || '500px';\n                    var modalMaxHeight = btn.getAttribute('data-modal-max-height') || '800px';\n                    var headerBgColor = btn.getAttribute('data-header-bg-color') || '';\n                    var headerTextColor = btn.getAttribute('data-header-text-color') || '';\n\n                    \/\/ Apply modal styles\n                    modalWrapper.style.borderRadius = modalBorderRadius;\n                    modalWrapper.style.maxWidth = modalMaxWidth;\n                    modalWrapper.style.maxHeight = modalMaxHeight;\n                    modalWrapper.style.height = '85vh';\n\n                    var baseConfig = {\n                        pointOfSaleId: '66c87551e1bc2f3d2a7ae1b7',\n                        widgetUrl: 'https:\/\/widget.openflow.pro'\n                                            };\n\n                    var eventId = btn.getAttribute('data-event-id');\n                    var btnType = btn.getAttribute('data-type');\n\n                    var config = Object.assign({}, baseConfig);\n                    config.modalStyles = {\n                        borderRadius: modalBorderRadius,\n                        maxWidth: modalMaxWidth,\n                        maxHeight: modalMaxHeight\n                    };\n\n                    \/\/ Add theme configuration\n                    config.theme = {\n                        primaryColor: rgbToHex(btnColor),\n                        textColor: '#ffffff'\n                    };\n\n                    \/\/ DEBUG: Log des valeurs r\u00e9cup\u00e9r\u00e9es du bouton (shortcode)\n                    console.log('[WordPress Shortcode] Button attributes:');\n                    console.log('  - data-header-bg-color:', headerBgColor);\n                    console.log('  - data-header-text-color:', headerTextColor);\n\n                    \/\/ Add header customization if provided\n                    if (headerBgColor) {\n                        config.theme.headerBackgroundColor = headerBgColor;\n                        console.log('[WordPress Shortcode] \u2705 headerBackgroundColor SET to:', headerBgColor);\n                    } else {\n                        console.log('[WordPress Shortcode] \u26a0\ufe0f headerBackgroundColor NOT SET (empty value)');\n                    }\n                    if (headerTextColor) {\n                        config.theme.textColor = headerTextColor;\n                    }\n\n                    console.log('[WordPress Shortcode] Final config.theme:', config.theme);\n\n                    var iframeUrl = config.widgetUrl;\n                    if (btnType === 'event' && eventId) {\n                        config.eventId = eventId;\n                        iframeUrl = config.widgetUrl + '\/' + config.pointOfSaleId + '?event=' + eventId;\n                    } else {\n                        iframeUrl = config.widgetUrl + '\/' + config.pointOfSaleId;\n                    }\n\n                    iframe.src = iframeUrl;\n\n                    iframe.onload = function() {\n                        console.log('[WordPress] Sending config to iframe:', config);\n                        iframe.contentWindow.postMessage({\n                            type: 'OPENFLOW_CONFIG_RESPONSE',\n                            config: config\n                        }, '*');\n                        console.log('[WordPress] postMessage sent with config.theme.headerBackgroundColor:', config.theme.headerBackgroundColor);\n                    };\n\n                    modal.style.display = 'flex';\n                    document.body.style.overflow = 'hidden';\n                });\n\n                modal.addEventListener('click', function(e) {\n                    if (e.target === modal) {\n                        modal.style.display = 'none';\n                        document.body.style.overflow = '';\n                    }\n                });\n            }\n        })();\n    <\/script>\n    <\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-5b917e8 e-flex e-con-boxed e-con e-parent\" data-id=\"5b917e8\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1ea7f02 elementor-view-stacked subtle-handle elementor-shape-rounded eael_liquid_glass-effect2 eael_liquid_glass_shadow-effect4 elementor-widget elementor-widget-icon\" data-id=\"1ea7f02\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-wrapper\">\n\t\t\t<a class=\"elementor-icon\" href=\"#elementor-action%3Aaction%3Dpopup%3Aopen%26settings%3DeyJpZCI6IjUyOTEiLCJ0b2dnbGUiOmZhbHNlfQ%3D%3D\">\n\t\t\t<i aria-hidden=\"true\" class=\"fas fa-music\"><\/i>\t\t\t<\/a>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>LE SALON &#8211; LE C\u0152UR MUSICAL DE GU\u00c9LIZ Le Salon est l\u2019espace intime et feutr\u00e9 du Grand Caf\u00e9 de la Poste. Il renoue avec l\u2019atmosph\u00e8re \u00e9l\u00e9gante et vibrante des grands lieux de vie de Marrakech. L\u2019Art de Vivre en Rythme Le week-end, le Salon s\u2019anime pour vous offrir des d\u00eeners musicaux. La cuisine traditionnelle fran\u00e7aise [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-286","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.grandcafedelaposte.restaurant\/es\/wp-json\/wp\/v2\/pages\/286","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.grandcafedelaposte.restaurant\/es\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.grandcafedelaposte.restaurant\/es\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.grandcafedelaposte.restaurant\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.grandcafedelaposte.restaurant\/es\/wp-json\/wp\/v2\/comments?post=286"}],"version-history":[{"count":308,"href":"https:\/\/www.grandcafedelaposte.restaurant\/es\/wp-json\/wp\/v2\/pages\/286\/revisions"}],"predecessor-version":[{"id":5311,"href":"https:\/\/www.grandcafedelaposte.restaurant\/es\/wp-json\/wp\/v2\/pages\/286\/revisions\/5311"}],"wp:attachment":[{"href":"https:\/\/www.grandcafedelaposte.restaurant\/es\/wp-json\/wp\/v2\/media?parent=286"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}