{"id":9385,"date":"2025-05-05T09:59:05","date_gmt":"2025-05-05T07:59:05","guid":{"rendered":"https:\/\/sp.creativconflans.com\/?page_id=9385"},"modified":"2025-06-04T02:37:23","modified_gmt":"2025-06-04T00:37:23","slug":"carte","status":"publish","type":"page","link":"https:\/\/www.sejourprive.com\/en\/carte\/","title":{"rendered":"MAP"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"9385\" class=\"elementor elementor-9385\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4138d56 e-con-full e-flex tm-col-stretched-none tm-bg-color-over-image e-con e-parent\" data-id=\"4138d56\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-90dd9a0 e-con-full e-flex tm-col-stretched-none tm-bg-color-over-image e-con e-parent\" data-id=\"90dd9a0\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1a12d71 elementor-widget elementor-widget-shortcode\" data-id=\"1a12d71\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">        <div class=\"wp-maps-search-container\">\n                        \n            <form id=\"wp-maps-search-form\" class=\"sp-style-search sp-search-grid\">\n\n                <!-- Destination (masqu\u00e9e si on est sur une page de localisation) -->\n                                <div class=\"search-field destination-field search-form-field has-icon\">\n                    <label for=\"search-destination\" class=\"field-label\">DESTINATION<\/label>\n                    <select id=\"search-destination\" name=\"destination\" class=\"search-select destination-selector\">\n                        <option value=\"\">Choisir une destination<\/option>\n                                                    <option value=\"city-ajaccio\" \n                                    data-url=\"https:\/\/www.sejourprive.com\/en\/location\/ajaccio\/\"\n                                    data-type=\"city\"\n                                    data-parent=\"148\"\n                                    class=\"city-option\"\n                                    >\n                                Ajaccio                            <\/option>\n                                                    <option value=\"city-alpes-francaises\" \n                                    data-url=\"https:\/\/www.sejourprive.com\/en\/location\/alpes-francaises\/\"\n                                    data-type=\"city\"\n                                    data-parent=\"90\"\n                                    class=\"city-option\"\n                                    >\n                                Alpes Fran\u00e7aises                            <\/option>\n                                                    <option value=\"city-amalfi\" \n                                    data-url=\"https:\/\/www.sejourprive.com\/en\/location\/amalfi\/\"\n                                    data-type=\"city\"\n                                    data-parent=\"86\"\n                                    class=\"city-option\"\n                                    >\n                                Amalfi                            <\/option>\n                                                    <option value=\"city-antiparos\" \n                                    data-url=\"https:\/\/www.sejourprive.com\/en\/location\/antiparos\/\"\n                                    data-type=\"city\"\n                                    data-parent=\"111\"\n                                    class=\"city-option\"\n                                    >\n                                Antiparos                            <\/option>\n                                                    <option value=\"city-athenes-riviera\" \n                                    data-url=\"https:\/\/www.sejourprive.com\/en\/location\/athenes-riviera\/\"\n                                    data-type=\"city\"\n                                    data-parent=\"111\"\n                                    class=\"city-option\"\n                                    >\n                                Ath\u00e8nes Riviera                            <\/option>\n                                                    <option value=\"city-bonifacio\" \n                                    data-url=\"https:\/\/www.sejourprive.com\/en\/location\/bonifacio\/\"\n                                    data-type=\"city\"\n                                    data-parent=\"148\"\n                                    class=\"city-option\"\n                                    >\n                                Bonifacio                            <\/option>\n                                                    <option value=\"city-calvi\" \n                                    data-url=\"https:\/\/www.sejourprive.com\/en\/location\/calvi\/\"\n                                    data-type=\"city\"\n                                    data-parent=\"148\"\n                                    class=\"city-option\"\n                                    >\n                                Calvi                            <\/option>\n                                                    <option value=\"city-cap-ferret\" \n                                    data-url=\"https:\/\/www.sejourprive.com\/en\/location\/cap-ferret\/\"\n                                    data-type=\"city\"\n                                    data-parent=\"90\"\n                                    class=\"city-option\"\n                                    >\n                                Cap Ferret &amp; the Arcachon bay, Southwest                            <\/option>\n                                                    <option value=\"city-caraibes\" \n                                    data-url=\"https:\/\/www.sejourprive.com\/en\/location\/caraibes\/\"\n                                    data-type=\"city\"\n                                    data-parent=\"0\"\n                                    class=\"city-option\"\n                                    >\n                                Caraibes                            <\/option>\n                                                    <option value=\"city-come\" \n                                    data-url=\"https:\/\/www.sejourprive.com\/en\/location\/come\/\"\n                                    data-type=\"city\"\n                                    data-parent=\"86\"\n                                    class=\"city-option\"\n                                    >\n                                C\u00f4me                            <\/option>\n                                                    <option value=\"city-comporta-melides\" \n                                    data-url=\"https:\/\/www.sejourprive.com\/en\/location\/comporta-melides\/\"\n                                    data-type=\"city\"\n                                    data-parent=\"83\"\n                                    class=\"city-option\"\n                                    >\n                                Comporta &amp; Melides                            <\/option>\n                                                    <option value=\"city-corfu\" \n                                    data-url=\"https:\/\/www.sejourprive.com\/en\/location\/corfu\/\"\n                                    data-type=\"city\"\n                                    data-parent=\"111\"\n                                    class=\"city-option\"\n                                    >\n                                Corfu                            <\/option>\n                                                    <option value=\"city-corse\" \n                                    data-url=\"https:\/\/www.sejourprive.com\/en\/location\/corse\/\"\n                                    data-type=\"city\"\n                                    data-parent=\"90\"\n                                    class=\"city-option\"\n                                    >\n                                Corse                            <\/option>\n                                                    <option value=\"city-crete\" \n                                    data-url=\"https:\/\/www.sejourprive.com\/en\/location\/crete\/\"\n                                    data-type=\"city\"\n                                    data-parent=\"111\"\n                                    class=\"city-option\"\n                                    >\n                                Cr\u00e8te                            <\/option>\n                                                    <option value=\"city-croatie\" \n                                    data-url=\"https:\/\/www.sejourprive.com\/en\/location\/croatie\/\"\n                                    data-type=\"city\"\n                                    data-parent=\"0\"\n                                    class=\"city-option\"\n                                    >\n                                Croatie                            <\/option>\n                                                    <option value=\"city-espagne\" \n                                    data-url=\"https:\/\/www.sejourprive.com\/en\/location\/espagne\/\"\n                                    data-type=\"city\"\n                                    data-parent=\"0\"\n                                    class=\"city-option\"\n                                    >\n                                Espagne                            <\/option>\n                                                    <option value=\"city-figari\" \n                                    data-url=\"https:\/\/www.sejourprive.com\/en\/location\/figari\/\"\n                                    data-type=\"city\"\n                                    data-parent=\"148\"\n                                    class=\"city-option\"\n                                    >\n                                Figari                            <\/option>\n                                                    <option value=\"city-florence\" \n                                    data-url=\"https:\/\/www.sejourprive.com\/en\/location\/florence\/\"\n                                    data-type=\"city\"\n                                    data-parent=\"86\"\n                                    class=\"city-option\"\n                                    >\n                                Florence                            <\/option>\n                                                    <option value=\"city-france\" \n                                    data-url=\"https:\/\/www.sejourprive.com\/en\/location\/france\/\"\n                                    data-type=\"city\"\n                                    data-parent=\"0\"\n                                    class=\"city-option\"\n                                    >\n                                France                            <\/option>\n                                                    <option value=\"city-geneve\" \n                                    data-url=\"https:\/\/www.sejourprive.com\/en\/location\/geneve\/\"\n                                    data-type=\"city\"\n                                    data-parent=\"103\"\n                                    class=\"city-option\"\n                                    >\n                                Gen\u00e8ve                            <\/option>\n                                                    <option value=\"city-grece\" \n                                    data-url=\"https:\/\/www.sejourprive.com\/en\/location\/grece\/\"\n                                    data-type=\"city\"\n                                    data-parent=\"0\"\n                                    class=\"city-option\"\n                                    >\n                                Gr\u00e8ce                            <\/option>\n                                                    <option value=\"city-ibiza\" \n                                    data-url=\"https:\/\/www.sejourprive.com\/en\/location\/ibiza\/\"\n                                    data-type=\"city\"\n                                    data-parent=\"127\"\n                                    class=\"city-option\"\n                                    >\n                                Ibiza                            <\/option>\n                                                    <option value=\"city-ile-rousse\" \n                                    data-url=\"https:\/\/www.sejourprive.com\/en\/location\/ile-rousse\/\"\n                                    data-type=\"city\"\n                                    data-parent=\"148\"\n                                    class=\"city-option\"\n                                    >\n                                Ile Rousse                            <\/option>\n                                                    <option value=\"city-italie\" \n                                    data-url=\"https:\/\/www.sejourprive.com\/en\/location\/italie\/\"\n                                    data-type=\"city\"\n                                    data-parent=\"0\"\n                                    class=\"city-option\"\n                                    >\n                                Italie                            <\/option>\n                                                    <option value=\"city-kefalonia\" \n                                    data-url=\"https:\/\/www.sejourprive.com\/en\/location\/kefalonia\/\"\n                                    data-type=\"city\"\n                                    data-parent=\"111\"\n                                    class=\"city-option\"\n                                    >\n                                Kefalonia                            <\/option>\n                                                    <option value=\"city-lac-de-garde\" \n                                    data-url=\"https:\/\/www.sejourprive.com\/en\/location\/lac-de-garde\/\"\n                                    data-type=\"city\"\n                                    data-parent=\"86\"\n                                    class=\"city-option\"\n                                    >\n                                Lac de Garde                            <\/option>\n                                                    <option value=\"city-mykonos\" \n                                    data-url=\"https:\/\/www.sejourprive.com\/en\/location\/mykonos\/\"\n                                    data-type=\"city\"\n                                    data-parent=\"111\"\n                                    class=\"city-option\"\n                                    >\n                                Mykonos                            <\/option>\n                                                    <option value=\"city-paris\" \n                                    data-url=\"https:\/\/www.sejourprive.com\/en\/location\/paris\/\"\n                                    data-type=\"city\"\n                                    data-parent=\"90\"\n                                    class=\"city-option\"\n                                    >\n                                Paris                            <\/option>\n                                                    <option value=\"city-paros\" \n                                    data-url=\"https:\/\/www.sejourprive.com\/en\/location\/paros\/\"\n                                    data-type=\"city\"\n                                    data-parent=\"111\"\n                                    class=\"city-option\"\n                                    >\n                                Paros                            <\/option>\n                                                    <option value=\"city-porto-heli\" \n                                    data-url=\"https:\/\/www.sejourprive.com\/en\/location\/porto-heli\/\"\n                                    data-type=\"city\"\n                                    data-parent=\"111\"\n                                    class=\"city-option\"\n                                    >\n                                Porto Heli                            <\/option>\n                                                    <option value=\"city-porto-vecchio\" \n                                    data-url=\"https:\/\/www.sejourprive.com\/en\/location\/porto-vecchio\/\"\n                                    data-type=\"city\"\n                                    data-parent=\"148\"\n                                    class=\"city-option\"\n                                    >\n                                Porto Vecchio                            <\/option>\n                                                    <option value=\"city-portofino\" \n                                    data-url=\"https:\/\/www.sejourprive.com\/en\/location\/portofino\/\"\n                                    data-type=\"city\"\n                                    data-parent=\"86\"\n                                    class=\"city-option\"\n                                    >\n                                Portofino                            <\/option>\n                                                    <option value=\"city-portugal\" \n                                    data-url=\"https:\/\/www.sejourprive.com\/en\/location\/portugal\/\"\n                                    data-type=\"city\"\n                                    data-parent=\"0\"\n                                    class=\"city-option\"\n                                    >\n                                Portugal                            <\/option>\n                                                    <option value=\"city-pouilles\" \n                                    data-url=\"https:\/\/www.sejourprive.com\/en\/location\/pouilles\/\"\n                                    data-type=\"city\"\n                                    data-parent=\"86\"\n                                    class=\"city-option\"\n                                    >\n                                Pouilles                            <\/option>\n                                                    <option value=\"city-provence\" \n                                    data-url=\"https:\/\/www.sejourprive.com\/en\/location\/provence\/\"\n                                    data-type=\"city\"\n                                    data-parent=\"90\"\n                                    class=\"city-option\"\n                                    >\n                                Provence                            <\/option>\n                                                    <option value=\"city-saint-barthelemy\" \n                                    data-url=\"https:\/\/www.sejourprive.com\/en\/location\/saint-barthelemy\/\"\n                                    data-type=\"city\"\n                                    data-parent=\"170\"\n                                    class=\"city-option\"\n                                    >\n                                Saint-Barthelemy                            <\/option>\n                                                    <option value=\"city-saint-tropez-et-alentours\" \n                                    data-url=\"https:\/\/www.sejourprive.com\/en\/location\/saint-tropez-et-alentours\/\"\n                                    data-type=\"city\"\n                                    data-parent=\"90\"\n                                    class=\"city-option\"\n                                    >\n                                Saint-Tropez et alentours                            <\/option>\n                                                    <option value=\"city-sardaigne\" \n                                    data-url=\"https:\/\/www.sejourprive.com\/en\/location\/sardaigne\/\"\n                                    data-type=\"city\"\n                                    data-parent=\"86\"\n                                    class=\"city-option\"\n                                    >\n                                Sardaigne                            <\/option>\n                                                    <option value=\"city-sicile\" \n                                    data-url=\"https:\/\/www.sejourprive.com\/en\/location\/sicile\/\"\n                                    data-type=\"city\"\n                                    data-parent=\"86\"\n                                    class=\"city-option\"\n                                    >\n                                Sicile                            <\/option>\n                                                    <option value=\"city-suisse\" \n                                    data-url=\"https:\/\/www.sejourprive.com\/en\/location\/suisse\/\"\n                                    data-type=\"city\"\n                                    data-parent=\"0\"\n                                    class=\"city-option\"\n                                    >\n                                Suisse                            <\/option>\n                                                    <option value=\"city-toscane\" \n                                    data-url=\"https:\/\/www.sejourprive.com\/en\/location\/toscane\/\"\n                                    data-type=\"city\"\n                                    data-parent=\"86\"\n                                    class=\"city-option\"\n                                    >\n                                Toscane                            <\/option>\n                                                    <option value=\"city-verbier\" \n                                    data-url=\"https:\/\/www.sejourprive.com\/en\/location\/verbier\/\"\n                                    data-type=\"city\"\n                                    data-parent=\"103\"\n                                    class=\"city-option\"\n                                    >\n                                Verbier                            <\/option>\n                                                    <option value=\"city-zermatt\" \n                                    data-url=\"https:\/\/www.sejourprive.com\/en\/location\/zermatt\/\"\n                                    data-type=\"city\"\n                                    data-parent=\"103\"\n                                    class=\"city-option\"\n                                    >\n                                Zermatt                            <\/option>\n                                            <\/select>\n                <\/div>\n                                \n                <!-- Dates avec Flatpickr -->\n                <div class=\"search-form-field dates-field has-icon\">\n                    <label for=\"search-dates\" class=\"field-label\">Choisissez vos dates<\/label>\n                    <div class=\"date-input-group\">\n                        <div class=\"flatpickr-wrapper\">\n                            <input type=\"text\" id=\"search-dates\" class=\"search-date-range\" placeholder=\"S\u00e9lectionnez vos dates\" readonly>\n                            <input type=\"hidden\" id=\"search-checkin\" name=\"checkin\" value=\"\">\n                            <input type=\"hidden\" id=\"search-checkout\" name=\"checkout\" value=\"\">\n                        <\/div>\n                    <\/div>\n                <\/div>\n\n                <!-- Type de bien -->\n                <div class=\"search-form-field property-type-field has-icon\">\n                    <label for=\"search-property-type-select\" class=\"field-label\">TYPE DE BIEN<\/label>\n                    <div class=\"property-type-selector\">\n                        <select id=\"search-property-type-select\" class=\"property-type-dropdown\">\n                            <option value=\"\">Tous les types<\/option>\n                                                            <option value=\"Appartement\" >\n                                    Appartement                                <\/option>\n                                                            <option value=\"Chalet\" >\n                                    Chalet                                <\/option>\n                                                            <option value=\"Maison\" >\n                                    Maison                                <\/option>\n                                                            <option value=\"Villa\" >\n                                    Villa                                <\/option>\n                                                    <\/select>\n                        <input type=\"hidden\" id=\"search-property-type\" name=\"property_type\" value=\"\">\n                    <\/div>\n                <\/div>\n                \n                <!-- Voyageurs et chambres (avec limites dynamiques) -->\n                <div class=\"search-form-field guests-field has-icon\">\n                    <label for=\"search-adults\" class=\"field-label\">VOYAGEURS<\/label>\n                    <div class=\"guests-selector\">\n                        <div class=\"guest-input\">\n                            <span>Adultes<\/span>\n                            <div class=\"counter\">\n                                <button type=\"button\" class=\"counter-btn minus\" data-target=\"adults\">-<\/button>\n                                <input type=\"number\" id=\"search-adults\" name=\"adults\" \n                                    value=\"2\" \n                                    min=\"1\" \n                                    max=\"40\" \n                                    readonly>\n                                <button type=\"button\" class=\"counter-btn plus\" data-target=\"adults\">+<\/button>\n                            <\/div>\n                        <\/div>\n                        \n                        <div class=\"guest-input\">\n                            <span>Chambres<\/span>\n                            <div class=\"counter\">\n                                <button type=\"button\" class=\"counter-btn minus\" data-target=\"bedrooms\">-<\/button>\n                                <input type=\"number\" id=\"search-bedrooms\" name=\"bedrooms\" \n                                    value=\"0\" \n                                    min=\"0\" \n                                    max=\"20\" \n                                    readonly>\n                                <button type=\"button\" class=\"counter-btn plus\" data-target=\"bedrooms\">+<\/button>\n                            <\/div>\n                        <\/div>\n                    <\/div>\n                <\/div>\n                \n                <!-- Prix (avec ranges dynamiques) -->\n                <div class=\"search-form-field price-field has-icon\">\n                    <label for=\"search-price-min\" class=\"field-label\">BUDGET \/ NUIT<\/label>\n                    <div class=\"price-selector\">\n                        <div class=\"price-range\">\n                            <input type=\"range\" id=\"search-price-min\" name=\"price_min\" \n                                min=\"165\" \n                                max=\"44821\" \n                                value=\"165\" \n                                class=\"price-slider\">\n                            <input type=\"range\" id=\"search-price-max\" name=\"price_max\" \n                                min=\"165\" \n                                max=\"44821\" \n                                value=\"44821\" \n                                class=\"price-slider\">\n                        <\/div>\n                        <div class=\"price-display\">\n                            <span id=\"price-min-display\">165\u20ac<\/span>\n                            <span class=\"price-separator\">-<\/span>\n                            <span id=\"price-max-display\">44821\u20ac<\/span>\n                        <\/div>\n                    <\/div>\n                <\/div>\n                \n                <!-- Boutons de recherche -->\n                <div class=\"search-form-field search-buttons-field\">\n                    <div class=\"search-buttons-group\">\n                        <button type=\"button\" id=\"reset-search-form\" class=\"reset-search-btn\">\n                            R\u00e9initialiser                        <\/button>\n                        <button type=\"submit\" id=\"search-submit-btn\" class=\"search-submit-btn\">\n                            Rechercher                        <\/button>\n                    <\/div>\n                <\/div>\n            <\/form>\n        <\/div>\n\n        <!-- CSS mis \u00e0 jour -->\n        <style>\n            .flatpickr-day.selected, .flatpickr-day.startRange, .flatpickr-day.selected, .flatpickr-day.endRange {\n    background-color: #a17d44 !important;\n}\n\n\/* Style pour les dates r\u00e9serv\u00e9es (barr\u00e9es) *\/\n.flatpickr-day.flatpickr-disabled,\n.flatpickr-day.flatpickr-disabled:hover {\n    color: #ccc;\n    background-color: #f8f8f8;\n    border-color: #e6e6e6;\n    cursor: not-allowed;\n    position: relative;\n}\n\n\/* Ligne barrant les dates r\u00e9serv\u00e9es *\/\n\/*\n.flatpickr-day.flatpickr-disabled:after {\n    content: '';\n    position: absolute;\n    top: 50%;\n    left: 10%;\n    right: 10%;\n    height: 2px;\n    background-color: #ff5252;\n    transform: rotate(0deg);\n    z-index: 1;\n}\n*\/\n\/* Ajouter un fond l\u00e9g\u00e8rement rouge pour indiquer l'indisponibilit\u00e9 *\/\n.flatpickr-day.flatpickr-disabled {\n    background-color: rgba(255, 82, 82, 0.1);\n    border-color: #e6e6e6;\n}\n\n\/* Style pour la l\u00e9gende \"R\u00e9serv\u00e9\" *\/\n.legend-color.reserved {\n    background-color: rgba(255, 82, 82, 0.1);\n    position: relative;\n    border: 1px solid #e6e6e6;\n}\n\n.legend-color.reserved:after {\n    content: '';\n    position: absolute;\n    top: 50%;\n    left: 15%;\n    right: 15%;\n    height: 1px;\n    background-color: #ff5252;\n    transform: rotate(0deg);\n}\n            .no-availability-notice {\n            background: #fff3cd;\n            border: 1px solid #ffeaa7;\n            border-radius: 6px;\n            padding: 15px;\n            margin-top: 10px;\n        }\n\n        .no-availability-notice p {\n            margin: 5px 0;\n            color: #856404;\n        }\n\n        .location-filters-info small {\n            color: #666;\n            font-style: italic;\n        }\n        .location-filters-info {\n            background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%);\n            border-left: 4px solid #b08d57;\n            padding: 20px;\n            margin-bottom: 25px;\n            border-radius: 8px;\n        }\n        \n        .location-filters-info h3 {\n            margin: 0 0 10px 0;\n            color: #333;\n            font-size: 20px;\n            font-weight: 600;\n        }\n        \n        .location-filters-info p {\n            margin: 5px 0;\n            color: #666;\n        }\n        \n        .location-filters-info small {\n            color: #888;\n            font-size: 13px;\n        }\n        \n        \/* Styles existants... *\/\n        .wp-maps-search-container {\n            max-width: 100%;\n            margin: 0 auto;\n            background-color: #fff;\n            border-radius: 16px;\n            padding: 0;\n        }\n        \n        .sp-search-grid {\n            display: grid;\n            grid-template-columns: repeat(4, 1fr);\n            gap: 30px;\n            align-items: start;\n            padding: 0 10px;\n        }\n        \n        \/* Ajustement pour les pages d'archive (sans s\u00e9lecteur de destination) *\/\n        .sp-search-grid.location-archive {\n            grid-template-columns: repeat(4, 1fr);\n        }\n        \n        @media (max-width: 768px) {\n            .sp-search-grid {\n                grid-template-columns: 1fr;\n            }\n        }\n        \n        \/* Autres styles existants... *\/\n        .search-form-field {\n            min-width: 0;\n            width: 100%;\n            margin: 0;\n        }\n        \n        .field-label {\n            font-size: 12px;\n            font-weight: 600;\n            text-transform: uppercase;\n            margin-bottom: 10px;\n            display: block;\n        }\n        \n        .destination-selector, .property-type-dropdown, .search-date-range {\n            width: 100%;\n            padding: 14px 18px;\n            border: 1px solid #d0d0d0;\n            border-radius: 8px;\n            font-size: 15px;\n            background-color: #fff;\n            height: 60px;\n            box-shadow: none; \n        }\n        \n        .search-buttons-group {\n            display: flex;\n            gap: 8px;\n            justify-content: start;\n        }\n        \n        .reset-search-btn, .search-submit-btn {\n            padding: 14px 28px;\n            border-radius: 30px;\n            font-size: 16px;\n            font-weight: 600;\n            cursor: pointer;\n            transition: all 0.3s ease;\n        }\n        \n        .reset-search-btn {\n            background: white;\n            color: #666;\n            border: 1px solid #d0d0d0;\n        }\n        \n        .search-submit-btn {\n            background-color: #b08d57;\n            color: white;\n            border: none;\n        }\n        <\/style>\n\n        <script>\n        jQuery(document).ready(function($) {\n            console.log('Initialisation du formulaire avec filtres dynamiques');\n            \n            \/\/ Donn\u00e9es de localisation pour JavaScript\n            var locationFilters = {\"price_min\":165,\"price_max\":44821,\"property_types\":[\"Appartement\",\"Chalet\",\"Maison\",\"Villa\"],\"max_voyageurs\":40,\"max_chambres\":20,\"max_salles_bain\":20,\"product_count\":1103,\"available_count\":1103};\n            var isLocationArchive = false;\n            \n            console.log('Filtres de localisation:', locationFilters);\n            console.log('Page d\\'archive de localisation:', isLocationArchive);\n            \n            \/\/ Si on est sur une page d'archive, ajouter une classe au formulaire\n            if (isLocationArchive) {\n                $('#wp-maps-search-form').addClass('location-archive');\n            }\n            \n            \/\/ Fonction pour mettre \u00e0 jour les param\u00e8tres d'URL\n            function updateUrlParams(key, value) {\n                const url = new URL(window.location);\n                if (value) {\n                    url.searchParams.set(key, value);\n                } else {\n                    url.searchParams.delete(key);\n                }\n                window.history.replaceState({}, '', url);\n            }\n            \n            \/\/ Fonction pour d\u00e9clencher la recherche AJAX\n            function triggerAjaxSearch() {\n                console.log('D\u00e9clenchement de la recherche AJAX');\n                \n                const formData = {\n                    action: 'wp_maps_search',\n                    checkin: $('#search-checkin').val(),\n                    checkout: $('#search-checkout').val(),\n                    adults: $('#search-adults').val(),\n                    bedrooms: $('#search-bedrooms').val(),\n                    price_min: $('#search-price-min').val(),\n                    price_max: $('#search-price-max').val(),\n                    property_type: $('#search-property-type').val(),\n                    location: $('#search-destination').val().replace('city-', ''),\n                    nonce: '1939ac34e5'\n                };\n                \n                console.log('Donn\u00e9es du formulaire:', formData);\n                \n                $('.wp-maps-locations-map-container').addClass('loading');\n                \n                $.ajax({\n                    url: 'https:\/\/www.sejourprive.com\/wp-admin\/admin-ajax.php',\n                    type: 'POST',\n                    data: formData,\n                    success: function(response) {\n                        console.log('R\u00e9ponse AJAX re\u00e7ue:', response);\n                        \n                        $('.wp-maps-locations-map-container').removeClass('loading');\n                        \n                        if (response && response.success) {\n                            let properties = [];\n                            \n                            if (response.data && Array.isArray(response.data)) {\n                                properties = response.data;\n                            } else if (response.properties && Array.isArray(response.properties)) {\n                                properties = response.properties;\n                            } else if (response.data && response.data.properties && Array.isArray(response.data.properties)) {\n                                properties = response.data.properties;\n                            }\n                            \n                            console.log('Propri\u00e9t\u00e9s trouv\u00e9es:', properties.length);\n                            \n                            if (typeof updateMapWithResults === 'function') {\n                                updateMapWithResults(properties);\n                            } else {\n                                console.warn('La fonction updateMapWithResults n\\'est pas disponible');\n                            }\n                        } else {\n                            console.warn('R\u00e9ponse AJAX sans succ\u00e8s:', response);\n                            if (typeof updateMapWithResults === 'function') {\n                                updateMapWithResults([]);\n                            }\n                        }\n                    },\n                    error: function(xhr, status, error) {\n                        console.error('Erreur AJAX:', error);\n                        $('.wp-maps-locations-map-container').removeClass('loading');\n                        if (typeof updateMapWithResults === 'function') {\n                            updateMapWithResults([]);\n                        }\n                    }\n                });\n            }\n            \n            \/\/ Rendre ces fonctions globales\n            window.updateUrlParams = updateUrlParams;\n            window.triggerAjaxSearch = triggerAjaxSearch;\n            \n            \/\/ === GESTIONNAIRES D'\u00c9V\u00c9NEMENTS ===\n            \n            \/\/ Gestion des compteurs avec limites dynamiques\n            $('.counter-btn').on('click', function(e) {\n                e.preventDefault();\n                const target = $(this).data('target');\n                const input = $('#search-' + target);\n                const isPlus = $(this).hasClass('plus');\n                const maxValue = parseInt(input.attr('max')) || 10;\n                const minValue = parseInt(input.attr('min')) || 0;\n\n                let currentValue = parseInt(input.val());\n                if (isNaN(currentValue)) {\n                    currentValue = (target === 'bedrooms') ? 0 : 1;\n                }\n\n                if (isPlus && currentValue < maxValue) {\n                    currentValue++;\n                } else if (!isPlus && currentValue > minValue) {\n                    currentValue--;\n                }\n\n                input.val(currentValue);\n                updateUrlParams(target, currentValue);\n                setTimeout(triggerAjaxSearch, 100);\n            });\n            \n            \/\/ Bouton r\u00e9initialiser (avec respect des limites de localisation)\n            $('#reset-search-form').on('click', function() {\n                console.log('R\u00e9initialisation du formulaire');\n                $(this).addClass('resetting');\n                \n                \/\/ R\u00e9initialiser aux valeurs par d\u00e9faut de la localisation\n                $('#search-adults').val('2');\n                $('#search-bedrooms').val('0');\n                $('#search-property-type-select').val('');\n                $('#search-property-type').val('');\n                \n                \/\/ R\u00e9initialiser les prix aux valeurs de la localisation\n                $('#search-price-min').val(locationFilters.price_min);\n                $('#search-price-max').val(locationFilters.price_max);\n                $('#price-min-display').text(locationFilters.price_min + '\u20ac');\n                $('#price-max-display').text(locationFilters.price_max + '\u20ac');\n                \n                \/\/ R\u00e9initialiser Flatpickr\n                if (typeof flatpickr !== 'undefined') {\n                    const dateInput = document.querySelector('#search-dates');\n                    if (dateInput && dateInput._flatpickr) {\n                        dateInput._flatpickr.clear();\n                    }\n                }\n                \n                \/\/ R\u00e9initialiser l'URL (garder la localisation si on est sur une page d'archive)\n                let resetUrl = window.location.origin + window.location.pathname;\n                window.history.replaceState({}, '', resetUrl);\n                \n                setTimeout(function() {\n                    triggerAjaxSearch();\n                }, 100);\n            });\n            \n            \/\/ Autres gestionnaires d'\u00e9v\u00e9nements (soumission, changements, etc.)\n            $('#wp-maps-search-form').on('submit', function(e) {\n                e.preventDefault();\n                console.log('Soumission du formulaire');\n                triggerAjaxSearch();\n            });\n            \n            \/\/ Changement de type de propri\u00e9t\u00e9\n            $('#search-property-type-select').on('change', function() {\n                const selectedType = this.value;\n                $('#search-property-type').val(selectedType);\n                updateUrlParams('property_type', selectedType);\n                setTimeout(triggerAjaxSearch, 100);\n            });\n            \n            \/\/ Gestion des prix\n            const priceMinSlider = $('#search-price-min');\n            const priceMaxSlider = $('#search-price-max');\n            const priceMinDisplay = $('#price-min-display');\n            const priceMaxDisplay = $('#price-max-display');\n            \n            function updatePriceDisplay() {\n                const minVal = parseInt(priceMinSlider.val());\n                const maxVal = parseInt(priceMaxSlider.val());\n                \n                if (minVal >= maxVal) {\n                    priceMinSlider.val(maxVal - 10);\n                }\n                \n                priceMinDisplay.text(minVal + '\u20ac');\n                priceMaxDisplay.text(maxVal + '\u20ac');\n            }\n            \n            priceMinSlider.on('input', updatePriceDisplay);\n            priceMaxSlider.on('input', updatePriceDisplay);\n            \n            priceMinSlider.on('change', function() {\n                updateUrlParams('price_min', this.value);\n                setTimeout(triggerAjaxSearch, 100);\n            });\n            \n            priceMaxSlider.on('change', function() {\n                updateUrlParams('price_max', this.value);\n                setTimeout(triggerAjaxSearch, 100);\n            });\n            \n            console.log('Formulaire avec filtres dynamiques initialis\u00e9 avec succ\u00e8s');\n        });\n        <\/script>\n        \n        <!-- Script Flatpickr (inchang\u00e9) -->\n        <script>\n            document.addEventListener('DOMContentLoaded', function() {\n                const dateInput = document.getElementById('search-dates');\n                const checkinInput = document.getElementById('search-checkin');\n                const checkoutInput = document.getElementById('search-checkout');\n\n                if (typeof flatpickr !== 'undefined' && dateInput) {\n                    \n                    \/\/ D\u00e9terminer le nombre de mois selon la largeur de l'\u00e9cran\n                    const getMonthsToShow = () => window.innerWidth > 992 ? 2 : 1;\n\n                    \/\/ Configuration de base pour \u00e9viter la r\u00e9p\u00e9tition et les erreurs de navigation\n                    const getFlatpickrConfig = (months) => ({\n                        mode: 'range',\n                        dateFormat: 'd-m-Y',\n                        minDate: 'today',\n                        locale: 'fr',\n                        showMonths: months,\n                        static: months > 1, \/\/ On n'active 'static' que sur desktop pour \u00e9viter les bugs mobiles\n                        monthSelectorType: 'static', \/\/ Plus stable pour \u00e9viter les sauts d'ann\u00e9e visuels\n                        animate: false, \/\/ D\u00e9sactiver l'animation aide \u00e0 pr\u00e9venir les erreurs de rendu sur mobile\n                        allowInput: true,\n                        onChange: function(selectedDates, dateStr, instance) {\n                            if (selectedDates.length === 2) {\n                                const startDate = instance.formatDate(selectedDates[0], 'd-m-Y');\n                                const endDate = instance.formatDate(selectedDates[1], 'd-m-Y');\n                                \n                                if (checkinInput) checkinInput.value = startDate;\n                                if (checkoutInput) checkoutInput.value = endDate;\n                                \n                                if (typeof window.updateUrlParams === 'function') {\n                                    window.updateUrlParams('checkin', startDate);\n                                    window.updateUrlParams('checkout', endDate);\n                                }\n                                \n                                if (typeof window.triggerAjaxSearch === 'function') {\n                                    setTimeout(window.triggerAjaxSearch, 200);\n                                }\n                            } else {\n                                if (checkoutInput) checkoutInput.value = '';\n                            }\n                        }\n                    });\n\n                    let dateRangePicker = flatpickr(dateInput, getFlatpickrConfig(getMonthsToShow()));\n\n                    \/\/ Gestion propre du redimensionnement\n                    let resizeTimer;\n                    window.addEventListener('resize', () => {\n                        clearTimeout(resizeTimer);\n                        resizeTimer = setTimeout(() => {\n                            const currentMonths = dateRangePicker.config.showMonths;\n                            const newMonths = getMonthsToShow();\n                            \n                            if (currentMonths !== newMonths) {\n                                const selectedDates = dateRangePicker.selectedDates;\n                                dateRangePicker.destroy();\n                                dateRangePicker = flatpickr(dateInput, {\n                                    ...getFlatpickrConfig(newMonths),\n                                    defaultDate: selectedDates\n                                });\n                            }\n                        }, 250);\n                    });\n                    \n                    \/\/ Initialisation des valeurs si pr\u00e9sentes dans les champs cach\u00e9s\n                    const initialCheckin = checkinInput ? checkinInput.value : '';\n                    const initialCheckout = checkoutInput ? checkoutInput.value : '';\n                    \n                    if (initialCheckin && initialCheckout) {\n                        dateRangePicker.setDate([initialCheckin, initialCheckout], false);\n                        dateInput.value = `${initialCheckin} - ${initialCheckout}`;\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<\/div>\n\t\t<div class=\"elementor-element elementor-element-db60a9b e-con-full e-flex tm-col-stretched-none tm-bg-color-over-image e-con e-parent\" data-id=\"db60a9b\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-05ca784 e-con-full e-flex tm-col-stretched-none tm-bg-color-over-image e-con e-child\" data-id=\"05ca784\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-0b2ce99 elementor-widget elementor-widget-shortcode\" data-id=\"0b2ce99\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\"><div id=\"wp-maps-locations-map-6a78d391da1d4\" class=\"wp-maps-locations-map-container\" style=\"height: 80vh; width: 100%;\" data-zoom-controls=\"true\" data-location=\"\"><\/div><script type=\"text\/javascript\">\n        jQuery(document).ready(function($) {\n            console.log(\"Initialisation de la carte: wp-maps-locations-map-6a78d391da1d4\");\n            console.log(\"Localisation: \");\n            \n            \/\/ V\u00e9rifier si les donn\u00e9es sont disponibles\n            if (typeof wp_maps_locations_params !== \"undefined\") {\n                console.log(\"Nombre de propri\u00e9t\u00e9s disponibles: \" + wp_maps_locations_params.properties.length);\n            } else {\n                console.error(\"Les donn\u00e9es wp_maps_locations_params ne sont pas disponibles\");\n            }\n            \n            \/\/ Attendre que la fonction d'initialisation soit disponible\n            var checkInitMap = setInterval(function() {\n                if (typeof initWpMapsLocations === \"function\") {\n                    console.log(\"Fonction initWpMapsLocations trouv\u00e9e, initialisation de la carte\");\n                    clearInterval(checkInitMap);\n                    initWpMapsLocations(\"wp-maps-locations-map-6a78d391da1d4\", \"\");\n                } else {\n                    console.log(\"En attente de la fonction initWpMapsLocations...\");\n                }\n            }, 100);\n        });\n        <\/script> <\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"","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-9385","page","type-page","status-publish","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>S\u00e9jour Priv\u00e9 - CARTE<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.sejourprive.com\/en\/carte\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"S\u00e9jour Priv\u00e9 - CARTE\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.sejourprive.com\/en\/carte\/\" \/>\n<meta property=\"og:site_name\" content=\"S\u00e9jour Priv\u00e9\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-04T00:37:23+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.sejourprive.com\/wp-content\/uploads\/2025\/09\/SEJOUR-PRIVE_SliderHome2.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1920\" \/>\n\t<meta property=\"og:image:height\" content=\"1280\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.sejourprive.com\/carte\/\",\"url\":\"https:\/\/www.sejourprive.com\/carte\/\",\"name\":\"S\u00e9jour Priv\u00e9 - CARTE\",\"isPartOf\":{\"@id\":\"https:\/\/www.sejourprive.com\/#website\"},\"datePublished\":\"2025-05-05T07:59:05+00:00\",\"dateModified\":\"2025-06-04T00:37:23+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.sejourprive.com\/carte\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.sejourprive.com\/carte\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.sejourprive.com\/carte\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/www.sejourprive.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"CARTE\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.sejourprive.com\/#website\",\"url\":\"https:\/\/www.sejourprive.com\/\",\"name\":\"S\u00e9jour Priv\u00e9\",\"description\":\"Nous imaginons pour vous des s\u00e9jours d\u2019exception.\",\"publisher\":{\"@id\":\"https:\/\/www.sejourprive.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.sejourprive.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.sejourprive.com\/#organization\",\"name\":\"S\u00e9jour Priv\u00e9\",\"url\":\"https:\/\/www.sejourprive.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\/\/www.sejourprive.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.sejourprive.com\/wp-content\/uploads\/2026\/02\/SP-Apple-touch-144-couleur-1-2.png\",\"contentUrl\":\"https:\/\/www.sejourprive.com\/wp-content\/uploads\/2026\/02\/SP-Apple-touch-144-couleur-1-2.png\",\"width\":145,\"height\":145,\"caption\":\"S\u00e9jour Priv\u00e9\"},\"image\":{\"@id\":\"https:\/\/www.sejourprive.com\/#\/schema\/logo\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"S\u00e9jour Priv\u00e9 - CARTE","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.sejourprive.com\/en\/carte\/","og_locale":"en_GB","og_type":"article","og_title":"S\u00e9jour Priv\u00e9 - CARTE","og_url":"https:\/\/www.sejourprive.com\/en\/carte\/","og_site_name":"S\u00e9jour Priv\u00e9","article_modified_time":"2025-06-04T00:37:23+00:00","og_image":[{"width":1920,"height":1280,"url":"https:\/\/www.sejourprive.com\/wp-content\/uploads\/2025\/09\/SEJOUR-PRIVE_SliderHome2.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_misc":{"Estimated reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.sejourprive.com\/carte\/","url":"https:\/\/www.sejourprive.com\/carte\/","name":"S\u00e9jour Priv\u00e9 - CARTE","isPartOf":{"@id":"https:\/\/www.sejourprive.com\/#website"},"datePublished":"2025-05-05T07:59:05+00:00","dateModified":"2025-06-04T00:37:23+00:00","breadcrumb":{"@id":"https:\/\/www.sejourprive.com\/carte\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.sejourprive.com\/carte\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.sejourprive.com\/carte\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.sejourprive.com\/"},{"@type":"ListItem","position":2,"name":"CARTE"}]},{"@type":"WebSite","@id":"https:\/\/www.sejourprive.com\/#website","url":"https:\/\/www.sejourprive.com\/","name":"Private Stay","description":"We design exceptional holidays for you.","publisher":{"@id":"https:\/\/www.sejourprive.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.sejourprive.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":"Organization","@id":"https:\/\/www.sejourprive.com\/#organization","name":"Private Stay","url":"https:\/\/www.sejourprive.com\/","logo":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/www.sejourprive.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.sejourprive.com\/wp-content\/uploads\/2026\/02\/SP-Apple-touch-144-couleur-1-2.png","contentUrl":"https:\/\/www.sejourprive.com\/wp-content\/uploads\/2026\/02\/SP-Apple-touch-144-couleur-1-2.png","width":145,"height":145,"caption":"S\u00e9jour Priv\u00e9"},"image":{"@id":"https:\/\/www.sejourprive.com\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/www.sejourprive.com\/en\/wp-json\/wp\/v2\/pages\/9385","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.sejourprive.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.sejourprive.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.sejourprive.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sejourprive.com\/en\/wp-json\/wp\/v2\/comments?post=9385"}],"version-history":[{"count":0,"href":"https:\/\/www.sejourprive.com\/en\/wp-json\/wp\/v2\/pages\/9385\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.sejourprive.com\/en\/wp-json\/wp\/v2\/media?parent=9385"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}