{"id":982,"date":"2026-07-29T09:59:25","date_gmt":"2026-07-29T09:59:25","guid":{"rendered":"https:\/\/www.cleanmycar69.com\/?page_id=982"},"modified":"2026-09-10T17:34:49","modified_gmt":"2026-09-10T17:34:49","slug":"prendre-un-rdv","status":"publish","type":"page","link":"https:\/\/www.cleanmycar69.com\/index.php\/prendre-un-rdv\/","title":{"rendered":"Prendre un RDV"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"982\" class=\"elementor elementor-982\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-14a72d3 e-con-full e-flex e-con e-parent\" data-id=\"14a72d3\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-9e3d95d elementor-widget__width-inherit elementor-widget elementor-widget-html\" data-id=\"9e3d95d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div class=\"cmc-booking-page\">\n\n    <!-- HERO -->\n\n    <section class=\"cmc-booking-hero\">\n\n        <div class=\"cmc-booking-hero-bg\"><\/div>\n        <div class=\"cmc-booking-hero-overlay\"><\/div>\n        <div class=\"cmc-booking-hero-glow cmc-booking-hero-glow-left\"><\/div>\n        <div class=\"cmc-booking-hero-glow cmc-booking-hero-glow-right\"><\/div>\n\n        <div class=\"cmc-booking-container\">\n\n            <div class=\"cmc-booking-hero-content\">\n\n                <span class=\"cmc-booking-badge\">\n                    R\u00e9servation en ligne\n                <\/span>\n\n                <h1>\n                    Prenez rendez-vous\n                    <strong>en quelques clics.<\/strong>\n                <\/h1>\n\n                <p>\n                    Choisissez votre prestation, personnalisez votre nettoyage\n                    et s\u00e9lectionnez directement le cr\u00e9neau qui vous convient.\n                <\/p>\n\n                <a href=\"#cmc-booking-form\" class=\"cmc-booking-start\">\n                    Commencer ma r\u00e9servation\n                    <span>\u2193<\/span>\n                <\/a>\n\n            <\/div>\n\n            <div class=\"cmc-booking-hero-benefits\">\n\n                <div class=\"cmc-booking-benefit\">\n                    <span>\u2713<\/span>\n                    <div>\n                        <strong>R\u00e9servation rapide<\/strong>\n                        <small>Disponible 24 h \/ 24<\/small>\n                    <\/div>\n                <\/div>\n\n                <div class=\"cmc-booking-benefit\">\n                    <span>\u2713<\/span>\n                    <div>\n                        <strong>Cr\u00e9neaux en temps r\u00e9el<\/strong>\n                        <small>Aucune double r\u00e9servation<\/small>\n                    <\/div>\n                <\/div>\n\n                <div class=\"cmc-booking-benefit\">\n                    <span>\u2713<\/span>\n                    <div>\n                        <strong>Confirmation imm\u00e9diate<\/strong>\n                        <small>Re\u00e7ue directement par e-mail<\/small>\n                    <\/div>\n                <\/div>\n\n            <\/div>\n\n        <\/div>\n\n    <\/section>\n\n\n    <!-- ESPACE DE R\u00c9SERVATION -->\n\n    <section id=\"cmc-booking-form\" class=\"cmc-booking-main\">\n\n        <div class=\"cmc-booking-container\">\n\n            <!-- BARRE DE PROGRESSION -->\n\n            <div class=\"cmc-booking-progress\">\n\n                <div class=\"cmc-booking-progress-line\">\n                    <span id=\"cmc-progress-fill\"><\/span>\n                <\/div>\n\n                <button\n                    type=\"button\"\n                    class=\"cmc-booking-step-indicator active\"\n                    data-step=\"1\"\n                >\n                    <span>1<\/span>\n                    <small>Prestation<\/small>\n                <\/button>\n\n                <button\n                    type=\"button\"\n                    class=\"cmc-booking-step-indicator\"\n                    data-step=\"2\"\n                >\n                    <span>2<\/span>\n                    <small>Options<\/small>\n                <\/button>\n\n                <button\n                    type=\"button\"\n                    class=\"cmc-booking-step-indicator\"\n                    data-step=\"3\"\n                >\n                    <span>3<\/span>\n                    <small>Date<\/small>\n                <\/button>\n\n                <button\n                    type=\"button\"\n                    class=\"cmc-booking-step-indicator\"\n                    data-step=\"4\"\n                >\n                    <span>4<\/span>\n                    <small>Informations<\/small>\n                <\/button>\n\n                <button\n                    type=\"button\"\n                    class=\"cmc-booking-step-indicator\"\n                    data-step=\"5\"\n                >\n                    <span>5<\/span>\n                    <small>Confirmation<\/small>\n                <\/button>\n\n            <\/div>\n\n\n            <!-- CONTENU DE LA R\u00c9SERVATION -->\n\n            <div class=\"cmc-booking-layout\">\n\n                <main class=\"cmc-booking-content\">\n\n                    <section\n                        class=\"cmc-booking-step active\"\n                        data-booking-step=\"1\"\n                    >\n\n                        <div class=\"cmc-booking-section-title\">\n\n                            <span>\n                                \u00c9tape 1\n                            <\/span>\n\n                            <h2>\n                                Choisissez votre prestation.\n                            <\/h2>\n\n                            <p>\n                                S\u00e9lectionnez le type de nettoyage correspondant\n                                \u00e0 vos besoins.\n                            <\/p>\n\n                        <\/div>\n\n                        <!-- Les cartes des prestations arrivent \u00e0 l\u2019\u00e9tape suivante -->\n\n                        <div id=\"cmc-services-list\">\n<div class=\"cmc-services-grid\">\n\n<!-- LAVAGE INTERIEUR CLASSIQUE -->\n\n<article\n    class=\"cmc-service-card\"\n    data-service=\"Lavage int\u00e9rieur classique\"\n    data-duration=\"1 heure\"\n>\n\n    <div\n        class=\"cmc-service-image\"\n        style=\"background-image:url('http:\/\/www.cleanmycar69.com\/wp-content\/uploads\/2026\/07\/car-cleaning-and-detailing-concept-dry-wash-2022-11-09-03-10-49-utc.webp');\"\n    ><\/div>\n\n    <div class=\"cmc-service-overlay\"><\/div>\n\n    <div class=\"cmc-service-content\">\n\n        <span class=\"cmc-service-number\">\n            01\n        <\/span>\n\n        <h3>\n            Lavage int\u00e9rieur classique\n        <\/h3>\n\n        <p>\n            Nettoyage rapide et efficace de l\u2019habitacle : aspiration,\n            d\u00e9poussi\u00e9rage, plastiques, vitres et finitions.\n        <\/p>\n\n        <div class=\"cmc-service-footer\">\n            <span class=\"cmc-service-duration-label\">Dur\u00e9e estim\u00e9e<\/span>\n            <strong class=\"cmc-service-duration-value\">1 heure<\/strong>\n        <\/div>\n\n    <\/div>\n\n<\/article>\n\n\n<!-- LAVAGE EXTERIEUR CLASSIQUE -->\n\n<article\n    class=\"cmc-service-card\"\n    data-service=\"Lavage ext\u00e9rieur classique\"\n    data-duration=\"45 min\"\n>\n\n    <div\n        class=\"cmc-service-image\"\n        style=\"background-image:url('http:\/\/www.cleanmycar69.com\/wp-content\/uploads\/2025\/12\/nik-phP5Qa0CauQ-unsplash.jpg');\"\n    ><\/div>\n\n    <div class=\"cmc-service-overlay\"><\/div>\n\n    <div class=\"cmc-service-content\">\n\n        <span class=\"cmc-service-number\">\n            02\n        <\/span>\n\n        <h3>\n            Lavage ext\u00e9rieur classique\n        <\/h3>\n\n        <p>\n            Pr\u00e9lavage, lavage manuel, jantes, pneus, vitres\n            ext\u00e9rieures, s\u00e9chage et finition.\n        <\/p>\n\n        <div class=\"cmc-service-footer\">\n            <span class=\"cmc-service-duration-label\">Dur\u00e9e estim\u00e9e<\/span>\n            <strong class=\"cmc-service-duration-value\">45 min<\/strong>\n        <\/div>\n\n    <\/div>\n\n<\/article>\n\n\n<!-- EXPRESS -->\n\n<article\n    class=\"cmc-service-card\"\n    data-service=\"Pack Express\"\n    data-duration=\"1 h 45\"\n>\n\n    <div\n        class=\"cmc-service-image\"\n        style=\"background-image:url('http:\/\/www.cleanmycar69.com\/wp-content\/uploads\/2025\/12\/willian-cittadin-DtrI63-Z46I-unsplash.jpg');\"\n    ><\/div>\n\n    <div class=\"cmc-service-overlay\"><\/div>\n\n    <div class=\"cmc-service-content\">\n\n        <span class=\"cmc-service-number\">\n            03\n        <\/span>\n\n        <h3>\n            Pack Express\n        <\/h3>\n\n        <p>\n            Rafra\u00eechissement rapide de votre v\u00e9hicule avec les\n            prestations essentielles.\n        <\/p>\n\n        <div class=\"cmc-service-footer\">\n            <span class=\"cmc-service-duration-label\">Dur\u00e9e estim\u00e9e<\/span>\n            <strong class=\"cmc-service-duration-value\">1 h 45<\/strong>\n        <\/div>\n\n    <\/div>\n\n<\/article>\n\n\n<!-- INTERIEUR -->\n\n<article\n    class=\"cmc-service-card\"\n    data-service=\"Pack Int\u00e9rieur\"\n    data-duration=\"2 heures\"\n>\n\n    <div\n        class=\"cmc-service-image\"\n        style=\"background-image:url('http:\/\/www.cleanmycar69.com\/wp-content\/uploads\/2026\/07\/car-cleaning-and-detailing-concept-dry-wash-2022-11-09-03-10-49-utc.webp');\"\n    ><\/div>\n\n    <div class=\"cmc-service-overlay\"><\/div>\n\n    <div class=\"cmc-service-content\">\n\n        <span class=\"cmc-service-number\">\n            04\n        <\/span>\n\n        <h3>\n            Pack Int\u00e9rieur\n        <\/h3>\n\n        <p>\n            Nettoyage complet de l'habitacle avec finitions premium.\n        <\/p>\n\n        <div class=\"cmc-service-footer\">\n            <span class=\"cmc-service-duration-label\">Dur\u00e9e estim\u00e9e<\/span>\n            <strong class=\"cmc-service-duration-value\">2 heures<\/strong>\n        <\/div>\n\n    <\/div>\n\n<\/article>\n\n\n<!-- COMPLET -->\n\n<article\n    class=\"cmc-service-card\"\n    data-service=\"Pack Complet\"\n    data-duration=\"3 heures\"\n>\n\n    <div\n        class=\"cmc-service-image\"\n        style=\"background-image:url('http:\/\/www.cleanmycar69.com\/wp-content\/uploads\/2025\/12\/nik-phP5Qa0CauQ-unsplash.jpg');\"\n    ><\/div>\n\n    <div class=\"cmc-service-overlay\"><\/div>\n\n    <div class=\"cmc-service-content\">\n\n        <span class=\"cmc-service-number\">\n            05\n        <\/span>\n\n        <h3>\n            Pack Complet\n        <\/h3>\n\n        <p>\n            La prestation la plus compl\u00e8te pour retrouver un v\u00e9hicule\n            comme neuf.\n        <\/p>\n\n        <div class=\"cmc-service-footer\">\n            <span class=\"cmc-service-duration-label\">Dur\u00e9e estim\u00e9e<\/span>\n            <strong class=\"cmc-service-duration-value\">3 heures<\/strong>\n        <\/div>\n\n    <\/div>\n\n<\/article>\n\n<\/div>\n\n<div class=\"cmc-booking-actions\">\n    <button type=\"button\" id=\"cmc-next-step\" class=\"cmc-next-button\">\n        Continuer <span>\u2192<\/span>\n    <\/button>\n<\/div>\n\n<\/div>\n\n                    <\/section>\n\n                \n                    <section class=\"cmc-booking-step\" data-booking-step=\"2\">\n\n                        <div class=\"cmc-booking-section-title\">\n                            <span>\u00c9tape 2<\/span>\n                            <h2>Personnalisez votre prestation.<\/h2>\n                            <p>\n                                Ajoutez uniquement les options dont votre v\u00e9hicule\n                                a r\u00e9ellement besoin.\n                            <\/p>\n                        <\/div>\n\n                        <div class=\"cmc-options-grid\">\n\n                            <button type=\"button\" class=\"cmc-option-card\" data-option=\"Poils d\u2019animaux\" data-duration=\"20\">\n                                <span class=\"cmc-option-check\">\u2713<\/span>\n                                <span class=\"cmc-option-icon\">\ud83d\udc36<\/span>\n                                <strong>Poils d\u2019animaux<\/strong>\n                                <small>\u00c9limination compl\u00e8te des poils incrust\u00e9s.<\/small>\n                                <em>+ 20 min estim\u00e9es<\/em>\n                            <\/button>\n\n                            <button type=\"button\" class=\"cmc-option-card\" data-option=\"SUV \/ 4x4\" data-duration=\"20\">\n                                <span class=\"cmc-option-check\">\u2713<\/span>\n                                <span class=\"cmc-option-icon\">\ud83d\ude99<\/span>\n                                <strong>SUV \/ 4x4<\/strong>\n                                <small>Temps suppl\u00e9mentaire li\u00e9 au gabarit du v\u00e9hicule.<\/small>\n                                <em>+ 20 min estim\u00e9es<\/em>\n                            <\/button>\n\n                            <button type=\"button\" class=\"cmc-option-card\" data-option=\"Nettoyage moteur\" data-duration=\"30\">\n                                <span class=\"cmc-option-check\">\u2713<\/span>\n                                <span class=\"cmc-option-icon\">\u2699\ufe0f<\/span>\n                                <strong>Nettoyage moteur<\/strong>\n                                <small>Compartiment moteur nettoy\u00e9 avec soin.<\/small>\n                                <em>+ 30 min estim\u00e9es<\/em>\n                            <\/button>\n\n                            <button type=\"button\" class=\"cmc-option-card\" data-option=\"Traitement cuir\" data-duration=\"30\">\n                                <span class=\"cmc-option-check\">\u2713<\/span>\n                                <span class=\"cmc-option-icon\">\ud83e\ude91<\/span>\n                                <strong>Traitement cuir<\/strong>\n                                <small>Nettoyage, soin et protection des surfaces en cuir.<\/small>\n                                <em>+ 30 min estim\u00e9es<\/em>\n                            <\/button>\n\n                            <button type=\"button\" class=\"cmc-option-card\" data-option=\"Traitement hydrophobe\" data-duration=\"20\">\n                                <span class=\"cmc-option-check\">\u2713<\/span>\n                                <span class=\"cmc-option-icon\">\ud83d\udca7<\/span>\n                                <strong>Hydrophobe<\/strong>\n                                <small>Protection d\u00e9perlante pour faciliter l\u2019entretien.<\/small>\n                                <em>+ 20 min estim\u00e9es<\/em>\n                            <\/button>\n\n                            <button type=\"button\" class=\"cmc-option-card\" data-option=\"Traitement ozone\" data-duration=\"45\">\n                                <span class=\"cmc-option-check\">\u2713<\/span>\n                                <span class=\"cmc-option-icon\">\u2728<\/span>\n                                <strong>Traitement ozone<\/strong>\n                                <small>Neutralisation durable des mauvaises odeurs.<\/small>\n                                <em>+ 45 min estim\u00e9es<\/em>\n                            <\/button>\n\n                        <\/div>\n\n                        <div class=\"cmc-booking-actions cmc-booking-actions-split\">\n                            <button type=\"button\" id=\"cmc-prev-step-2\" class=\"cmc-back-button\">\n                                <span>\u2190<\/span> Retour\n                            <\/button>\n\n                            <button type=\"button\" id=\"cmc-next-step-2\" class=\"cmc-next-button show\">\n                                Choisir une date <span>\u2192<\/span>\n                            <\/button>\n                        <\/div>\n\n                    <\/section>\n\n<section class=\"cmc-booking-step\" data-booking-step=\"3\">\n\n    <div class=\"cmc-booking-section-title\">\n\n        <span>\u00c9tape 3<\/span>\n\n        <h2>Choisissez votre cr\u00e9neau.<\/h2>\n\n        <p>\n            S\u00e9lectionnez une date puis un horaire disponible.\n        <\/p>\n\n    <\/div>\n\n    <div class=\"cmc-calendar-wrapper\">\n\n        <div class=\"cmc-calendar\">\n\n            <div class=\"cmc-calendar-header\">\n\n                <button\n                    type=\"button\"\n                    id=\"cmc-prev-month\"\n                    class=\"cmc-calendar-arrow\">\n\n                    \u2190\n\n                <\/button>\n\n                <h3 id=\"cmc-current-month\">\n                    Juillet 2026\n                <\/h3>\n\n                <button\n                    type=\"button\"\n                    id=\"cmc-next-month\"\n                    class=\"cmc-calendar-arrow\">\n\n                    \u2192\n\n                <\/button>\n\n            <\/div>\n\n            <div class=\"cmc-calendar-weekdays\">\n\n                <span>Lun<\/span>\n                <span>Mar<\/span>\n                <span>Mer<\/span>\n                <span>Jeu<\/span>\n                <span>Ven<\/span>\n                <span>Sam<\/span>\n                <span>Dim<\/span>\n\n            <\/div>\n\n            <div\n                id=\"cmc-calendar-days\"\n                class=\"cmc-calendar-days\">\n\n            <\/div>\n\n        <\/div>\n\n        <div class=\"cmc-times\">\n\n            <h3>Cr\u00e9neaux disponibles<\/h3>\n\n            <div\n                id=\"cmc-times-grid\"\n                class=\"cmc-times-grid\">\n\n                <p class=\"cmc-no-date\">\n\n                    Choisissez une date.\n\n                <\/p>\n\n            <\/div>\n\n        <\/div>\n\n    <\/div>\n\n    <div class=\"cmc-booking-actions cmc-booking-actions-split\">\n\n        <button\n            type=\"button\"\n            id=\"cmc-prev-step-3\"\n            class=\"cmc-back-button\">\n\n            <span>\u2190<\/span>\n\n            Retour\n\n        <\/button>\n\n        <button\n            type=\"button\"\n            id=\"cmc-next-step-3\"\n            class=\"cmc-next-button\">\n\n            Continuer\n\n            <span>\u2192<\/span>\n\n        <\/button>\n\n    <\/div>\n\n<\/section>\n\n\n<section class=\"cmc-booking-step\" data-booking-step=\"4\">\n\n    <div class=\"cmc-booking-section-title\">\n        <span>\u00c9tape 4<\/span>\n        <h2>Parlez-nous de votre v\u00e9hicule.<\/h2>\n        <p>\n            Renseignez vos coordonn\u00e9es et les informations utiles afin de pr\u00e9parer\n            votre intervention dans les meilleures conditions.\n        <\/p>\n    <\/div>\n\n    <form id=\"cmc-customer-form\" class=\"cmc-customer-form\" novalidate>\n\n        <div class=\"cmc-form-panel\">\n\n            <div class=\"cmc-form-panel-heading\">\n                <span>01<\/span>\n                <div>\n                    <h3>Vos coordonn\u00e9es<\/h3>\n                    <p>Les informations n\u00e9cessaires pour confirmer votre rendez-vous.<\/p>\n                <\/div>\n            <\/div>\n\n            <div class=\"cmc-form-grid cmc-form-grid-2\">\n\n                <div class=\"cmc-field\">\n                    <label for=\"cmc-firstname\">Pr\u00e9nom <em>*<\/em><\/label>\n                    <input id=\"cmc-firstname\" name=\"firstname\" type=\"text\" autocomplete=\"given-name\" placeholder=\"Votre pr\u00e9nom\" required>\n                    <small class=\"cmc-field-error\"><\/small>\n                <\/div>\n\n                <div class=\"cmc-field\">\n                    <label for=\"cmc-lastname\">Nom <em>*<\/em><\/label>\n                    <input id=\"cmc-lastname\" name=\"lastname\" type=\"text\" autocomplete=\"family-name\" placeholder=\"Votre nom\" required>\n                    <small class=\"cmc-field-error\"><\/small>\n                <\/div>\n\n                <div class=\"cmc-field\">\n                    <label for=\"cmc-phone\">T\u00e9l\u00e9phone <em>*<\/em><\/label>\n                    <input id=\"cmc-phone\" name=\"phone\" type=\"tel\" autocomplete=\"tel\" inputmode=\"tel\" placeholder=\"06 12 34 56 78\" required>\n                    <small class=\"cmc-field-error\"><\/small>\n                <\/div>\n\n                <div class=\"cmc-field\">\n                    <label for=\"cmc-email\">Adresse e-mail <em>*<\/em><\/label>\n                    <input id=\"cmc-email\" name=\"email\" type=\"email\" autocomplete=\"email\" placeholder=\"vous@exemple.fr\" required>\n                    <small class=\"cmc-field-error\"><\/small>\n                <\/div>\n\n            <\/div>\n\n        <\/div>\n\n        <div class=\"cmc-form-panel\">\n\n            <div class=\"cmc-form-panel-heading\">\n                <span>02<\/span>\n                <div>\n                    <h3>Votre v\u00e9hicule<\/h3>\n                    <p>Ces pr\u00e9cisions nous permettent d\u2019anticiper le mat\u00e9riel n\u00e9cessaire.<\/p>\n                <\/div>\n            <\/div>\n\n            <div class=\"cmc-form-grid cmc-form-grid-3\">\n\n                <div class=\"cmc-field\">\n                    <label for=\"cmc-registration\">Immatriculation <em>*<\/em><\/label>\n                    <input id=\"cmc-registration\" name=\"registration\" type=\"text\" autocomplete=\"off\" placeholder=\"AB-123-CD\" maxlength=\"12\" required>\n                    <small class=\"cmc-field-error\"><\/small>\n                <\/div>\n\n                <div class=\"cmc-field\">\n                    <label for=\"cmc-brand\">Marque <em>*<\/em><\/label>\n                    <input id=\"cmc-brand\" name=\"brand\" type=\"text\" autocomplete=\"off\" placeholder=\"Ex. Audi\" required>\n                    <small class=\"cmc-field-error\"><\/small>\n                <\/div>\n\n                <div class=\"cmc-field\">\n                    <label for=\"cmc-model\">Mod\u00e8le <em>*<\/em><\/label>\n                    <input id=\"cmc-model\" name=\"model\" type=\"text\" autocomplete=\"off\" placeholder=\"Ex. A3\" required>\n                    <small class=\"cmc-field-error\"><\/small>\n                <\/div>\n\n                <div class=\"cmc-field cmc-field-full\">\n                    <label for=\"cmc-comments\">Informations compl\u00e9mentaires<\/label>\n                    <textarea id=\"cmc-comments\" name=\"comments\" rows=\"5\" maxlength=\"600\" placeholder=\"\u00c9tat du v\u00e9hicule, acc\u00e8s, taches particuli\u00e8res, demandes sp\u00e9cifiques\u2026\"><\/textarea>\n                    <div class=\"cmc-field-meta\">\n                        <span>Facultatif<\/span>\n                        <span id=\"cmc-comments-count\">0 \/ 600<\/span>\n                    <\/div>\n                    <small class=\"cmc-field-error\"><\/small>\n                <\/div>\n\n            <\/div>\n\n        <\/div>\n\n        <label class=\"cmc-consent\">\n            <input id=\"cmc-consent\" name=\"consent\" type=\"checkbox\" required>\n            <span class=\"cmc-consent-box\">\u2713<\/span>\n            <span>\n                J\u2019accepte que mes informations soient utilis\u00e9es uniquement dans le cadre\n                de cette demande de r\u00e9servation. <em>*<\/em>\n            <\/span>\n        <\/label>\n\n        <div id=\"cmc-form-global-error\" class=\"cmc-form-global-error\" role=\"alert\"><\/div>\n\n        <div class=\"cmc-booking-actions cmc-booking-actions-split\">\n\n            <button type=\"button\" id=\"cmc-prev-step-4\" class=\"cmc-back-button\">\n                <span>\u2190<\/span>\n                Retour\n            <\/button>\n\n            <button type=\"submit\" id=\"cmc-next-step-4\" class=\"cmc-next-button show\">\n                V\u00e9rifier ma r\u00e9servation\n                <span>\u2192<\/span>\n            <\/button>\n\n        <\/div>\n\n    <\/form>\n\n<\/section>\n\n\n<section class=\"cmc-booking-step\" data-booking-step=\"5\">\n\n    <div class=\"cmc-confirmation-hero\">\n        <div class=\"cmc-confirmation-icon\">\n            <span>\u2713<\/span>\n        <\/div>\n\n        <span class=\"cmc-confirmation-kicker\">Derni\u00e8re v\u00e9rification<\/span>\n\n        <h2>Tout est pr\u00eat.<\/h2>\n\n        <p>\n            V\u00e9rifiez une derni\u00e8re fois les informations ci-dessous avant de confirmer\n            votre demande de r\u00e9servation.\n        <\/p>\n    <\/div>\n\n    <div class=\"cmc-confirmation-grid\">\n\n        <article class=\"cmc-confirmation-card cmc-confirmation-card-main\">\n\n            <div class=\"cmc-confirmation-card-heading\">\n                <div>\n                    <span>Votre rendez-vous<\/span>\n                    <h3>R\u00e9sum\u00e9 de la prestation<\/h3>\n                <\/div>\n\n                <button type=\"button\" class=\"cmc-confirmation-edit\" data-edit-step=\"3\">\n                    Modifier\n                <\/button>\n            <\/div>\n\n            <div class=\"cmc-confirmation-appointment\">\n\n                <div class=\"cmc-confirmation-date-block\">\n                    <span id=\"cmc-final-day\">\u2014<\/span>\n                    <strong id=\"cmc-final-day-number\">\u2014<\/strong>\n                    <small id=\"cmc-final-month\">\u2014<\/small>\n                <\/div>\n\n                <div class=\"cmc-confirmation-appointment-details\">\n                    <span id=\"cmc-final-service\">\u2014<\/span>\n                    <strong id=\"cmc-final-date\">\u2014<\/strong>\n\n                    <div class=\"cmc-confirmation-tags\">\n                        <span id=\"cmc-final-time\">\u2014<\/span>\n                        <span id=\"cmc-final-duration\">\u2014<\/span>\n                    <\/div>\n                <\/div>\n\n            <\/div>\n\n            <div class=\"cmc-confirmation-options\">\n                <span>Options s\u00e9lectionn\u00e9es<\/span>\n                <strong id=\"cmc-final-options\">Aucune<\/strong>\n            <\/div>\n\n        <\/article>\n\n        <article class=\"cmc-confirmation-card\">\n\n            <div class=\"cmc-confirmation-card-heading\">\n                <div>\n                    <span>Client<\/span>\n                    <h3>Vos coordonn\u00e9es<\/h3>\n                <\/div>\n\n                <button type=\"button\" class=\"cmc-confirmation-edit\" data-edit-step=\"4\">\n                    Modifier\n                <\/button>\n            <\/div>\n\n            <div class=\"cmc-confirmation-list\">\n\n                <div>\n                    <span>Nom<\/span>\n                    <strong id=\"cmc-final-customer\">\u2014<\/strong>\n                <\/div>\n\n                <div>\n                    <span>T\u00e9l\u00e9phone<\/span>\n                    <strong id=\"cmc-final-phone\">\u2014<\/strong>\n                <\/div>\n\n                <div>\n                    <span>E-mail<\/span>\n                    <strong id=\"cmc-final-email\">\u2014<\/strong>\n                <\/div>\n\n            <\/div>\n\n        <\/article>\n\n        <article class=\"cmc-confirmation-card\">\n\n            <div class=\"cmc-confirmation-card-heading\">\n                <div>\n                    <span>V\u00e9hicule<\/span>\n                    <h3>D\u00e9tails du v\u00e9hicule<\/h3>\n                <\/div>\n\n                <button type=\"button\" class=\"cmc-confirmation-edit\" data-edit-step=\"4\">\n                    Modifier\n                <\/button>\n            <\/div>\n\n            <div class=\"cmc-confirmation-vehicle\">\n                <span id=\"cmc-final-registration\">\u2014<\/span>\n                <strong id=\"cmc-final-vehicle\">\u2014<\/strong>\n                <p id=\"cmc-final-comments\">Aucune information compl\u00e9mentaire.<\/p>\n            <\/div>\n\n        <\/article>\n\n    <\/div>\n\n    <div class=\"cmc-confirmation-notice\">\n        <span>i<\/span>\n        <p>\n            Votre demande sera enregistr\u00e9e apr\u00e8s confirmation. Le tarif d\u00e9finitif\n            vous sera communiqu\u00e9 avant l\u2019intervention.\n        <\/p>\n    <\/div>\n\n    <div class=\"cmc-booking-actions cmc-booking-actions-split\">\n\n        <button type=\"button\" id=\"cmc-prev-step-5\" class=\"cmc-back-button\">\n            <span>\u2190<\/span>\n            Retour\n        <\/button>\n\n        <button type=\"button\" id=\"cmc-confirm-booking\" class=\"cmc-confirm-button\">\n            <span class=\"cmc-confirm-button-text\">Confirmer ma r\u00e9servation<\/span>\n            <span class=\"cmc-confirm-button-arrow\">\u2192<\/span>\n            <span class=\"cmc-confirm-button-loader\"><\/span>\n        <\/button>\n\n    <\/div>\n\n    <div id=\"cmc-confirmation-success\" class=\"cmc-confirmation-success\" aria-live=\"polite\">\n        <div class=\"cmc-confirmation-success-icon\">\u2713<\/div>\n        <div>\n            <strong>Votre demande a bien \u00e9t\u00e9 envoy\u00e9e.<\/strong>\n            <p>Nous vous recontacterons rapidement afin de confirmer le cr\u00e9neau souhait\u00e9.<\/p>\n        <\/div>\n    <\/div>\n\n<\/section>\n\n                <\/main>\n                \n                <!-- R\u00c9CAPITULATIF FIXE -->\n\n                <aside class=\"cmc-booking-summary\">\n\n                    <span class=\"cmc-summary-kicker\">\n                        Votre r\u00e9servation\n                    <\/span>\n\n                    <h3>\n                        R\u00e9capitulatif\n                    <\/h3>\n\n                    <div class=\"cmc-summary-empty\" id=\"cmc-summary-empty\">\n\n                        <span>01<\/span>\n\n                        <p>\n                            S\u00e9lectionnez une prestation pour commencer votre\n                            r\u00e9servation.\n                        <\/p>\n\n                    <\/div>\n\n                    <div class=\"cmc-summary-details\" id=\"cmc-summary-details\">\n\n                        <div class=\"cmc-summary-row\">\n                            <span>Prestation<\/span>\n                            <strong id=\"cmc-summary-service\">\u2014<\/strong>\n                        <\/div>\n\n                        <div class=\"cmc-summary-row\">\n                            <span>Options<\/span>\n                            <strong id=\"cmc-summary-options\">Aucune<\/strong>\n                        <\/div>\n\n                        <div class=\"cmc-summary-row\">\n                            <span>Date<\/span>\n                            <strong id=\"cmc-summary-date\">\u2014<\/strong>\n                        <\/div>\n\n                        <div class=\"cmc-summary-row\">\n                            <span>Heure<\/span>\n                            <strong id=\"cmc-summary-time\">\u2014<\/strong>\n                        <\/div>\n\n                        <div class=\"cmc-summary-row\">\n                            <span>Dur\u00e9e estim\u00e9e<\/span>\n                            <strong id=\"cmc-summary-duration\">\u2014<\/strong>\n                        <\/div>\n\n                        <div class=\"cmc-summary-note\">\n                            <span>Information<\/span>\n                            <p>Le tarif sera confirm\u00e9 avant l\u2019intervention.<\/p>\n                        <\/div>\n\n                    <\/div>\n\n                <\/aside>\n\n            <\/div>\n\n        <\/div>\n\n    <\/section>\n\n<\/div>\n\n\n<style>\n\n:root{\n    --cmc-gold:#d8b45a;\n    --cmc-gold-light:#f3d98b;\n    --cmc-black:#050505;\n    --cmc-dark:#090909;\n    --cmc-border:rgba(255,255,255,.09);\n}\n\nhtml{\n    scroll-behavior:smooth;\n}\n\nbody{\n    padding-top:120px;\n}\n\n.cmc-booking-page,\n.cmc-booking-page *{\n    box-sizing:border-box;\n}\n\n.cmc-booking-page{\n    position:relative;\n    overflow:hidden;\n    background:\n        radial-gradient(\n            circle at 8% 22%,\n            rgba(216,180,90,.08),\n            transparent 25%\n        ),\n        radial-gradient(\n            circle at 92% 78%,\n            rgba(216,180,90,.07),\n            transparent 25%\n        ),\n        linear-gradient(\n            180deg,\n            #000,\n            #080808 55%,\n            #020202\n        );\n    color:#fff;\n}\n\n.cmc-booking-container{\n    width:min(1240px,92%);\n    margin:0 auto;\n}\n\n\n\/* =========================================================\n   HERO\n========================================================= *\/\n\n.cmc-booking-hero{\n    position:relative;\n    min-height:680px;\n    display:flex;\n    align-items:center;\n    padding:150px 0 105px;\n    overflow:hidden;\n}\n\n.cmc-booking-hero-bg{\n    position:absolute;\n    inset:0;\n    background:\n        url(\"URL_IMAGE_HERO_RESERVATION\")\n        center center \/ cover no-repeat;\n    filter:\n        brightness(.35)\n        saturate(.85);\n    transform:scale(1.05);\n}\n\n.cmc-booking-hero-overlay{\n    position:absolute;\n    inset:0;\n    background:\n        linear-gradient(\n            90deg,\n            rgba(0,0,0,.94) 0%,\n            rgba(0,0,0,.72) 45%,\n            rgba(0,0,0,.32) 100%\n        ),\n        linear-gradient(\n            180deg,\n            rgba(0,0,0,.15),\n            rgba(0,0,0,.82)\n        );\n}\n\n.cmc-booking-hero-glow{\n    position:absolute;\n    border-radius:50%;\n    filter:blur(120px);\n    pointer-events:none;\n}\n\n.cmc-booking-hero-glow-left{\n    width:550px;\n    height:550px;\n    left:-250px;\n    top:-130px;\n    background:rgba(216,180,90,.15);\n}\n\n.cmc-booking-hero-glow-right{\n    width:450px;\n    height:450px;\n    right:-180px;\n    bottom:-170px;\n    background:rgba(216,180,90,.1);\n}\n\n.cmc-booking-hero .cmc-booking-container{\n    position:relative;\n    z-index:3;\n}\n\n.cmc-booking-hero-content{\n    width:min(760px,100%);\n}\n\n.cmc-booking-badge{\n    display:inline-flex;\n    align-items:center;\n    justify-content:center;\n    margin-bottom:25px;\n    padding:10px 17px;\n    border:1px solid rgba(216,180,90,.35);\n    border-radius:999px;\n    background:rgba(216,180,90,.08);\n    color:var(--cmc-gold-light);\n    font-size:11px;\n    font-weight:850;\n    letter-spacing:1.7px;\n    text-transform:uppercase;\n    backdrop-filter:blur(10px);\n}\n\n.cmc-booking-hero h1{\n    margin:0 0 25px;\n    font-size:clamp(48px,6vw,82px);\n    font-weight:900;\n    line-height:1.02;\n    letter-spacing:-2px;\n}\n\n.cmc-booking-hero h1 strong{\n    display:block;\n    background:\n        linear-gradient(\n            110deg,\n            #8f6c22,\n            #d8b45a 45%,\n            #f3d98b\n        );\n    -webkit-background-clip:text;\n    background-clip:text;\n    color:transparent;\n}\n\n.cmc-booking-hero-content > p{\n    max-width:670px;\n    margin:0 0 38px;\n    color:#c4c4c4;\n    font-size:18px;\n    line-height:1.8;\n}\n\n.cmc-booking-start{\n    display:inline-flex;\n    align-items:center;\n    justify-content:center;\n    gap:13px;\n    min-height:56px;\n    padding:0 25px;\n    border:1px solid rgba(243,217,139,.45);\n    border-radius:15px;\n    background:\n        linear-gradient(\n            110deg,\n            #8f6c22,\n            #d8b45a 48%,\n            #f3d98b\n        );\n    color:#070707 !important;\n    font-size:12px;\n    font-weight:900;\n    letter-spacing:.6px;\n    text-decoration:none !important;\n    text-transform:uppercase;\n    box-shadow:\n        0 18px 45px rgba(216,180,90,.18);\n    transition:\n        transform .3s ease,\n        box-shadow .3s ease;\n}\n\n.cmc-booking-start:hover{\n    transform:translateY(-4px);\n    box-shadow:\n        0 25px 55px rgba(216,180,90,.27);\n}\n\n.cmc-booking-start span{\n    font-size:18px;\n}\n\n.cmc-booking-hero-benefits{\n    display:grid;\n    grid-template-columns:repeat(3,minmax(0,1fr));\n    gap:15px;\n    margin-top:70px;\n}\n\n.cmc-booking-benefit{\n    display:flex;\n    align-items:center;\n    gap:15px;\n    min-height:85px;\n    padding:18px;\n    border:1px solid rgba(255,255,255,.08);\n    border-radius:18px;\n    background:rgba(255,255,255,.035);\n    box-shadow:\n        inset 0 1px 0 rgba(255,255,255,.045);\n    backdrop-filter:blur(15px);\n}\n\n.cmc-booking-benefit > span{\n    display:flex;\n    align-items:center;\n    justify-content:center;\n    flex:0 0 auto;\n    width:38px;\n    height:38px;\n    border:1px solid rgba(216,180,90,.35);\n    border-radius:12px;\n    background:rgba(216,180,90,.09);\n    color:var(--cmc-gold-light);\n    font-size:15px;\n    font-weight:900;\n}\n\n.cmc-booking-benefit strong{\n    display:block;\n    margin-bottom:4px;\n    color:#fff;\n    font-size:13px;\n    font-weight:800;\n}\n\n.cmc-booking-benefit small{\n    display:block;\n    color:#888;\n    font-size:10px;\n    line-height:1.4;\n}\n\n\n\/* =========================================================\n   ZONE DE R\u00c9SERVATION\n========================================================= *\/\n\n.cmc-booking-main{\n    position:relative;\n    padding:115px 0 140px;\n}\n\n.cmc-booking-progress{\n    position:relative;\n    display:grid;\n    grid-template-columns:repeat(5,1fr);\n    gap:10px;\n    margin-bottom:75px;\n}\n\n.cmc-booking-progress-line{\n    position:absolute;\n    top:22px;\n    left:10%;\n    right:10%;\n    height:2px;\n    overflow:hidden;\n    background:rgba(255,255,255,.09);\n}\n\n.cmc-booking-progress-line span{\n    display:block;\n    width:0;\n    height:100%;\n    background:\n        linear-gradient(\n            90deg,\n            #8f6c22,\n            #d8b45a,\n            #f3d98b\n        );\n    transition:width .5s ease;\n}\n\n.cmc-booking-step-indicator{\n    position:relative;\n    z-index:2;\n    display:flex;\n    flex-direction:column;\n    align-items:center;\n    gap:10px;\n    padding:0;\n    border:0;\n    background:none;\n    color:#666;\n    cursor:default;\n}\n\n.cmc-booking-step-indicator > span{\n    display:flex;\n    align-items:center;\n    justify-content:center;\n    width:46px;\n    height:46px;\n    border:1px solid rgba(255,255,255,.1);\n    border-radius:15px;\n    background:#0a0a0a;\n    color:#777;\n    font-size:12px;\n    font-weight:900;\n    transition:\n        background .3s ease,\n        border-color .3s ease,\n        color .3s ease,\n        box-shadow .3s ease;\n}\n\n.cmc-booking-step-indicator small{\n    font-size:10px;\n    font-weight:800;\n    letter-spacing:.8px;\n    text-transform:uppercase;\n}\n\n.cmc-booking-step-indicator.active > span{\n    border-color:rgba(216,180,90,.52);\n    background:rgba(216,180,90,.1);\n    color:var(--cmc-gold-light);\n    box-shadow:\n        0 0 25px rgba(216,180,90,.11);\n}\n\n.cmc-booking-step-indicator.active small{\n    color:var(--cmc-gold-light);\n}\n\n.cmc-booking-layout{\n    display:grid;\n    grid-template-columns:minmax(0,1fr) 320px;\n    align-items:start;\n    gap:35px;\n}\n\n.cmc-booking-content{\n    min-width:0;\n}\n\n.cmc-booking-step{\n    display:none;\n}\n\n.cmc-booking-step.active{\n    display:block;\n}\n\n.cmc-booking-section-title{\n    margin-bottom:42px;\n}\n\n.cmc-booking-section-title > span{\n    display:block;\n    margin-bottom:13px;\n    color:var(--cmc-gold);\n    font-size:10px;\n    font-weight:900;\n    letter-spacing:2px;\n    text-transform:uppercase;\n}\n\n.cmc-booking-section-title h2{\n    margin:0 0 16px;\n    color:#fff;\n    font-size:clamp(33px,4vw,54px);\n    font-weight:900;\n    line-height:1.08;\n}\n\n.cmc-booking-section-title p{\n    margin:0;\n    color:#999;\n    font-size:15px;\n    line-height:1.75;\n}\n\n\n\/* =========================================================\n   R\u00c9CAPITULATIF\n========================================================= *\/\n\n.cmc-booking-summary{\n    position:sticky;\n    top:145px;\n    padding:30px 27px;\n    overflow:hidden;\n    border:1px solid rgba(216,180,90,.18);\n    border-radius:24px;\n    background:\n        radial-gradient(\n            circle at 100% 0%,\n            rgba(216,180,90,.11),\n            transparent 37%\n        ),\n        linear-gradient(\n            145deg,\n            rgba(255,255,255,.055),\n            rgba(255,255,255,.018)\n        );\n    box-shadow:\n        0 30px 75px rgba(0,0,0,.38),\n        inset 0 1px 0 rgba(255,255,255,.05);\n    backdrop-filter:blur(18px);\n}\n\n.cmc-summary-kicker{\n    display:block;\n    margin-bottom:8px;\n    color:var(--cmc-gold);\n    font-size:9px;\n    font-weight:900;\n    letter-spacing:1.8px;\n    text-transform:uppercase;\n}\n\n.cmc-booking-summary h3{\n    margin:0 0 28px;\n    color:#fff;\n    font-size:27px;\n    font-weight:900;\n}\n\n.cmc-summary-empty{\n    padding:24px 0 8px;\n    text-align:center;\n}\n\n.cmc-summary-empty > span{\n    display:flex;\n    align-items:center;\n    justify-content:center;\n    width:55px;\n    height:55px;\n    margin:0 auto 17px;\n    border:1px solid rgba(216,180,90,.25);\n    border-radius:17px;\n    background:rgba(216,180,90,.07);\n    color:var(--cmc-gold-light);\n    font-size:12px;\n    font-weight:900;\n}\n\n.cmc-summary-empty p{\n    margin:0;\n    color:#888;\n    font-size:12px;\n    line-height:1.7;\n}\n\n.cmc-summary-details{\n    display:none;\n}\n\n.cmc-summary-row{\n    display:flex;\n    justify-content:space-between;\n    gap:15px;\n    padding:16px 0;\n    border-bottom:1px solid rgba(255,255,255,.07);\n}\n\n.cmc-summary-row span{\n    color:#777;\n    font-size:11px;\n}\n\n.cmc-summary-row strong{\n    max-width:60%;\n    color:#fff;\n    font-size:11px;\n    font-weight:800;\n    text-align:right;\n}\n\n.cmc-summary-total{\n    display:flex;\n    align-items:flex-end;\n    justify-content:space-between;\n    gap:18px;\n    padding-top:25px;\n}\n\n.cmc-summary-total span{\n    color:#aaa;\n    font-size:11px;\n    font-weight:700;\n}\n\n.cmc-summary-total strong{\n    color:var(--cmc-gold-light);\n    font-size:29px;\n    font-weight:900;\n}\n\n\n\/* =========================================================\n   RESPONSIVE\n========================================================= *\/\n\n@media(max-width:1000px){\n\n    .cmc-booking-layout{\n        grid-template-columns:1fr;\n    }\n\n    .cmc-booking-summary{\n        position:relative;\n        top:auto;\n    }\n\n}\n\n@media(max-width:800px){\n\n    body{\n        padding-top:90px;\n    }\n\n    .cmc-booking-hero{\n        min-height:auto;\n        padding:110px 0 80px;\n    }\n\n    .cmc-booking-hero-benefits{\n        grid-template-columns:1fr;\n        margin-top:50px;\n    }\n\n    .cmc-booking-progress{\n        grid-template-columns:repeat(5,minmax(0,1fr));\n        gap:4px;\n        margin-bottom:55px;\n    }\n\n    .cmc-booking-step-indicator small{\n        display:none;\n    }\n\n    .cmc-booking-progress-line{\n        left:9%;\n        right:9%;\n    }\n\n}\n\n@media(max-width:600px){\n\n    .cmc-booking-hero h1{\n        font-size:45px;\n        letter-spacing:-1.3px;\n    }\n\n    .cmc-booking-hero-content > p{\n        font-size:15px;\n    }\n\n    .cmc-booking-start{\n        width:100%;\n        padding:0 18px;\n    }\n\n    .cmc-booking-main{\n        padding:85px 0 100px;\n    }\n\n    .cmc-booking-step-indicator > span{\n        width:39px;\n        height:39px;\n        border-radius:12px;\n    }\n\n    .cmc-booking-progress-line{\n        top:19px;\n    }\n\n    .cmc-booking-summary{\n        padding:25px 21px;\n        border-radius:20px;\n    }\n\n}\n\n\n\/* =========================================================\n   CARTES DES PRESTATIONS\n========================================================= *\/\n\n.cmc-services-grid{\n    display:grid;\n    grid-template-columns:repeat(3,minmax(0,1fr));\n    gap:20px;\n    width:100%;\n}\n\n.cmc-service-card{\n    position:relative;\n    min-width:0;\n    height:500px;\n    overflow:hidden;\n    border:1px solid rgba(255,255,255,.09);\n    border-radius:25px;\n    background:#090909;\n    cursor:pointer;\n    isolation:isolate;\n    transition:transform .35s ease,border-color .35s ease,box-shadow .35s ease;\n}\n\n.cmc-service-card:hover{\n    transform:translateY(-7px);\n    border-color:rgba(216,180,90,.42);\n}\n\n.cmc-service-card.active{\n    border-color:var(--cmc-gold);\n    box-shadow:0 24px 55px rgba(0,0,0,.45),0 0 35px rgba(216,180,90,.16);\n}\n\n.cmc-service-image{\n    position:absolute;\n    inset:0;\n    z-index:1;\n    background-position:center;\n    background-size:cover;\n    background-repeat:no-repeat;\n    transform:scale(1.01);\n    transition:transform .65s ease;\n}\n\n.cmc-service-card:hover .cmc-service-image{\n    transform:scale(1.075);\n}\n\n.cmc-service-overlay{\n    position:absolute;\n    inset:0;\n    z-index:2;\n    background:linear-gradient(180deg,rgba(0,0,0,.08) 0%,rgba(0,0,0,.22) 32%,rgba(0,0,0,.93) 73%,#050505 100%);\n}\n\n.cmc-service-content{\n    position:absolute;\n    left:0;\n    right:0;\n    bottom:0;\n    z-index:5;\n    width:100%;\n    padding:28px 25px 25px;\n}\n\n.cmc-service-number{\n    display:inline-flex;\n    align-items:center;\n    justify-content:center;\n    width:48px;\n    height:48px;\n    margin-bottom:18px;\n    border:1px solid rgba(216,180,90,.38);\n    border-radius:14px;\n    background:rgba(216,180,90,.12);\n    color:var(--cmc-gold-light);\n    font-size:12px;\n    font-weight:900;\n    line-height:1;\n}\n\n.cmc-service-content h3{\n    margin:0 0 12px;\n    color:#fff;\n    font-size:clamp(22px,2vw,29px);\n    font-weight:900;\n    line-height:1.1;\n    word-break:normal;\n    overflow-wrap:normal;\n    hyphens:none;\n}\n\n.cmc-service-content p{\n    min-height:72px;\n    margin:0 0 22px;\n    color:#b8b8b8;\n    font-size:13px;\n    line-height:1.7;\n    word-break:normal;\n    overflow-wrap:normal;\n    hyphens:none;\n}\n\n.cmc-service-footer{\n    display:flex;\n    align-items:flex-end;\n    justify-content:space-between;\n    gap:12px;\n    padding-top:18px;\n    border-top:1px solid rgba(255,255,255,.09);\n}\n\n.cmc-service-footer strong{\n    color:var(--cmc-gold-light);\n    font-size:17px;\n    font-weight:900;\n    line-height:1.25;\n}\n\n.cmc-service-footer span{\n    flex:0 0 auto;\n    color:#929292;\n    font-size:9px;\n    font-weight:800;\n    letter-spacing:.8px;\n    line-height:1.2;\n    text-align:right;\n    text-transform:uppercase;\n    white-space:nowrap;\n}\n\n.cmc-booking-actions{\n    display:flex;\n    justify-content:flex-end;\n    width:100%;\n    margin-top:38px;\n}\n\n.cmc-next-button{\n    display:inline-flex;\n    align-items:center;\n    justify-content:center;\n    gap:13px;\n    min-height:58px;\n    padding:0 32px;\n    border:1px solid rgba(243,217,139,.42);\n    border-radius:16px;\n    background:linear-gradient(115deg,#8f6c22,#d8b45a 52%,#f3d98b);\n    color:#050505;\n    font-size:12px;\n    font-weight:900;\n    letter-spacing:.8px;\n    text-transform:uppercase;\n    cursor:pointer;\n    opacity:0;\n    pointer-events:none;\n    transform:translateY(14px);\n    box-shadow:0 20px 42px rgba(216,180,90,.18);\n    transition:opacity .3s ease,transform .3s ease,box-shadow .3s ease;\n}\n\n.cmc-next-button.show{\n    opacity:1;\n    pointer-events:auto;\n    transform:translateY(0);\n}\n\n.cmc-next-button.show:hover{\n    transform:translateY(-4px);\n    box-shadow:0 26px 52px rgba(216,180,90,.28);\n}\n\n.cmc-next-button span{\n    font-size:19px;\n}\n\n@media(max-width:1180px){\n    .cmc-booking-layout{\n        grid-template-columns:1fr;\n    }\n\n    .cmc-booking-summary{\n        position:relative;\n        top:auto;\n    }\n}\n\n@media(max-width:900px){\n    .cmc-services-grid{\n        grid-template-columns:1fr;\n    }\n\n    .cmc-service-card{\n        height:480px;\n    }\n\n    .cmc-service-content p{\n        min-height:0;\n    }\n}\n\n@media(max-width:600px){\n    .cmc-service-card{\n        height:450px;\n        border-radius:21px;\n    }\n\n    .cmc-service-content{\n        padding:24px 21px 22px;\n    }\n\n    .cmc-service-footer{\n        align-items:flex-start;\n        flex-direction:column;\n    }\n\n    .cmc-service-footer span{\n        text-align:left;\n    }\n\n    .cmc-booking-actions,\n    .cmc-next-button{\n        width:100%;\n    }\n}\n\n\n\/* =========================================================\n   AFFICHAGE SANS PRIX\n========================================================= *\/\n\n.cmc-service-footer{\n    align-items:flex-start;\n    flex-direction:column;\n    gap:6px;\n}\n\n.cmc-service-duration-label{\n    color:#7f7f7f;\n    font-size:9px;\n    font-weight:800;\n    letter-spacing:1px;\n    text-transform:uppercase;\n}\n\n.cmc-service-duration-value{\n    color:var(--cmc-gold-light);\n    font-size:17px;\n    font-weight:900;\n}\n\n.cmc-summary-note{\n    margin-top:23px;\n    padding:17px;\n    border:1px solid rgba(216,180,90,.17);\n    border-radius:16px;\n    background:rgba(216,180,90,.055);\n}\n\n.cmc-summary-note span{\n    display:block;\n    margin-bottom:7px;\n    color:var(--cmc-gold);\n    font-size:9px;\n    font-weight:900;\n    letter-spacing:1.4px;\n    text-transform:uppercase;\n}\n\n.cmc-summary-note p{\n    margin:0;\n    color:#aaa;\n    font-size:11px;\n    line-height:1.65;\n}\n\n\/* =========================================================\n   \u00c9TAPE 2 \u2014 OPTIONS\n========================================================= *\/\n\n.cmc-options-grid{\n    display:grid;\n    grid-template-columns:repeat(3,minmax(0,1fr));\n    gap:18px;\n    width:100%;\n}\n\n.cmc-option-card{\n    position:relative;\n    display:flex;\n    flex-direction:column;\n    align-items:flex-start;\n    min-width:0;\n    min-height:235px;\n    padding:27px 24px 23px;\n    border:1px solid rgba(255,255,255,.09);\n    border-radius:21px;\n    background:radial-gradient(circle at 100% 0%,rgba(216,180,90,.055),transparent 38%),#0a0a0a;\n    color:#fff;\n    text-align:left;\n    cursor:pointer;\n    transition:transform .3s ease,border-color .3s ease,background .3s ease,box-shadow .3s ease;\n}\n\n.cmc-option-card:hover{\n    transform:translateY(-5px);\n    border-color:rgba(216,180,90,.42);\n}\n\n.cmc-option-card.active{\n    border-color:var(--cmc-gold);\n    background:radial-gradient(circle at 100% 0%,rgba(216,180,90,.17),transparent 43%),linear-gradient(145deg,rgba(216,180,90,.08),rgba(255,255,255,.018));\n    box-shadow:0 18px 38px rgba(0,0,0,.35);\n}\n\n.cmc-option-check{\n    position:absolute;\n    top:18px;\n    right:18px;\n    display:flex;\n    align-items:center;\n    justify-content:center;\n    width:29px;\n    height:29px;\n    border:1px solid rgba(255,255,255,.1);\n    border-radius:9px;\n    background:#101010;\n    color:transparent;\n    font-size:11px;\n    font-weight:900;\n    transition:.3s ease;\n}\n\n.cmc-option-card.active .cmc-option-check{\n    border-color:rgba(216,180,90,.48);\n    background:rgba(216,180,90,.13);\n    color:var(--cmc-gold-light);\n}\n\n.cmc-option-icon{\n    display:flex;\n    align-items:center;\n    justify-content:center;\n    width:49px;\n    height:49px;\n    margin-bottom:19px;\n    border:1px solid rgba(216,180,90,.2);\n    border-radius:14px;\n    background:rgba(216,180,90,.07);\n    font-size:22px;\n}\n\n.cmc-option-card strong{\n    display:block;\n    margin-bottom:10px;\n    color:#fff;\n    font-size:19px;\n    font-weight:900;\n    line-height:1.2;\n}\n\n.cmc-option-card small{\n    display:block;\n    flex:1;\n    margin-bottom:18px;\n    color:#929292;\n    font-size:12px;\n    line-height:1.65;\n}\n\n.cmc-option-card em{\n    display:block;\n    color:var(--cmc-gold-light);\n    font-size:9px;\n    font-style:normal;\n    font-weight:850;\n    letter-spacing:.8px;\n    text-transform:uppercase;\n}\n\n.cmc-booking-actions-split{\n    justify-content:space-between;\n    gap:15px;\n}\n\n.cmc-back-button{\n    display:inline-flex;\n    align-items:center;\n    justify-content:center;\n    gap:12px;\n    min-height:58px;\n    padding:0 27px;\n    border:1px solid rgba(255,255,255,.11);\n    border-radius:16px;\n    background:rgba(255,255,255,.035);\n    color:#fff;\n    font-size:11px;\n    font-weight:900;\n    letter-spacing:.8px;\n    text-transform:uppercase;\n    cursor:pointer;\n    transition:transform .3s ease,border-color .3s ease,background .3s ease;\n}\n\n.cmc-back-button:hover{\n    transform:translateY(-3px);\n    border-color:rgba(216,180,90,.34);\n    background:rgba(216,180,90,.055);\n}\n\n.cmc-back-button span{\n    color:var(--cmc-gold-light);\n    font-size:18px;\n}\n\n@media(max-width:900px){\n    .cmc-options-grid{grid-template-columns:repeat(2,minmax(0,1fr));}\n}\n\n@media(max-width:600px){\n    .cmc-options-grid{grid-template-columns:1fr;}\n    .cmc-option-card{min-height:215px;}\n    .cmc-booking-actions-split{flex-direction:column-reverse;}\n    .cmc-booking-actions-split .cmc-back-button,\n    .cmc-booking-actions-split .cmc-next-button{width:100%;}\n}\n\n\/* =========================================================\n   ETAPE 3 \u2014 CALENDRIER\n========================================================= *\/\n\n.cmc-calendar-wrapper{\ndisplay:grid;\ngrid-template-columns:1.25fr .75fr;\ngap:28px;\nalign-items:start;\n}\n\n.cmc-calendar,\n.cmc-times{\n\nbackground:#090909;\n\nborder:1px solid rgba(255,255,255,.08);\n\nborder-radius:24px;\n\npadding:28px;\n\n}\n\n.cmc-calendar-header{\n\ndisplay:flex;\n\njustify-content:space-between;\n\nalign-items:center;\n\nmargin-bottom:28px;\n\n}\n\n.cmc-calendar-header h3{\n\nmargin:0;\n\nfont-size:28px;\n\nfont-weight:900;\n\ncolor:#fff;\n\n}\n\n.cmc-calendar-arrow{\n\nwidth:46px;\n\nheight:46px;\n\nborder:none;\n\nborder-radius:14px;\n\nbackground:#111;\n\ncolor:#fff;\n\ncursor:pointer;\n\ntransition:.3s;\n\n}\n\n.cmc-calendar-arrow:hover{\n\nbackground:var(--cmc-gold);\n\ncolor:#000;\n\n}\n\n.cmc-calendar-weekdays{\n\ndisplay:grid;\n\ngrid-template-columns:repeat(7,1fr);\n\nmargin-bottom:16px;\n\n}\n\n.cmc-calendar-weekdays span{\n\ntext-align:center;\n\nfont-size:11px;\n\nfont-weight:800;\n\ncolor:#888;\n\ntext-transform:uppercase;\n\nletter-spacing:.8px;\n\n}\n\n.cmc-calendar-days{\n\ndisplay:grid;\n\ngrid-template-columns:repeat(7,1fr);\n\ngap:10px;\n\n}\n\n.cmc-day{\n\nappearance:none;\ncolor:#fff;\nfont-family:inherit;\n\naspect-ratio:1;\n\ndisplay:flex;\n\nalign-items:center;\n\njustify-content:center;\n\nborder-radius:14px;\n\nbackground:#111;\n\nborder:1px solid rgba(255,255,255,.06);\n\nfont-weight:700;\n\ncursor:pointer;\n\ntransition:.25s;\n\n}\n\n.cmc-day:hover{\n\nbackground:rgba(216,180,90,.18);\n\nborder-color:var(--cmc-gold);\n\n}\n\n.cmc-day.selected{\n\nbackground:var(--cmc-gold);\n\ncolor:#000;\n\nfont-weight:900;\n\n}\n\n.cmc-day.disabled{\n\nopacity:.25;\n\npointer-events:none;\n\n}\n\n.cmc-times h3{\n\nmargin:0 0 22px;\n\nfont-size:24px;\n\nfont-weight:900;\n\n}\n\n.cmc-times-grid{\n\ndisplay:grid;\n\ngrid-template-columns:repeat(2,1fr);\n\ngap:14px;\n\n}\n\n.cmc-time{\n\nappearance:none;\ncolor:#fff;\nfont-family:inherit;\n\nheight:56px;\n\ndisplay:flex;\n\nalign-items:center;\n\njustify-content:center;\n\nborder-radius:14px;\n\nbackground:#111;\n\nborder:1px solid rgba(255,255,255,.06);\n\ncursor:pointer;\n\ntransition:.25s;\n\nfont-weight:800;\n\n}\n\n.cmc-time:hover{\n\nbackground:rgba(216,180,90,.18);\n\nborder-color:var(--cmc-gold);\n\n}\n\n.cmc-time.selected{\n\nbackground:var(--cmc-gold);\n\ncolor:#000;\n\n}\n\n.cmc-no-date{\n\ngrid-column:1\/-1;\n\ntext-align:center;\n\ncolor:#777;\n\npadding:30px 0;\n\n}\n\n@media(max-width:950px){\n    .cmc-calendar-wrapper{\n        grid-template-columns:1fr;\n    }\n}\n\n@media(max-width:600px){\n    .cmc-calendar,\n    .cmc-times{\n        padding:20px;\n        border-radius:20px;\n    }\n\n    .cmc-calendar-header h3{\n        font-size:21px;\n    }\n\n    .cmc-calendar-arrow{\n        width:41px;\n        height:41px;\n        border-radius:12px;\n    }\n\n    .cmc-calendar-days{\n        gap:6px;\n    }\n\n    .cmc-day{\n        min-height:39px;\n        border-radius:11px;\n        font-size:12px;\n    }\n\n    .cmc-times-grid{\n        grid-template-columns:1fr;\n    }\n}\n\n\n\n\/* =========================================================\n   CORRECTION \u00c9TAPE 3 \u2014 ANTI-SUPERPOSITION\n   S\u00e9curise les largeurs internes du calendrier et emp\u00eache\n   les cr\u00e9neaux de passer sous le r\u00e9capitulatif sticky.\n========================================================= *\/\n\n.cmc-booking-layout,\n.cmc-booking-content,\n.cmc-booking-step,\n.cmc-calendar-wrapper,\n.cmc-calendar,\n.cmc-times,\n.cmc-calendar-days,\n.cmc-times-grid{\n    min-width:0;\n}\n\n.cmc-calendar-wrapper{\n    width:100%;\n    grid-template-columns:minmax(0,1.25fr) minmax(220px,.75fr);\n}\n\n.cmc-calendar,\n.cmc-times{\n    width:100%;\n    max-width:100%;\n    overflow:hidden;\n}\n\n.cmc-calendar-weekdays,\n.cmc-calendar-days{\n    grid-template-columns:repeat(7,minmax(0,1fr));\n}\n\n.cmc-times-grid{\n    grid-template-columns:repeat(2,minmax(0,1fr));\n}\n\n.cmc-time,\n.cmc-day{\n    min-width:0;\n}\n\n\/* Lorsque la zone centrale devient trop \u00e9troite, les cr\u00e9neaux\n   passent sous le calendrier sans d\u00e9placer le r\u00e9capitulatif. *\/\n@media (max-width:1320px){\n    .cmc-calendar-wrapper{\n        grid-template-columns:1fr;\n    }\n\n    .cmc-times-grid{\n        grid-template-columns:repeat(3,minmax(0,1fr));\n    }\n}\n\n@media (max-width:600px){\n    .cmc-times-grid{\n        grid-template-columns:1fr;\n    }\n}\n\n\n\n\/* =========================================================\n   \u00c9TAPE 4 \u2014 INFORMATIONS CLIENT\n========================================================= *\/\n\n.cmc-customer-form{\n    display:grid;\n    gap:22px;\n}\n\n.cmc-form-panel{\n    padding:30px;\n    border:1px solid rgba(255,255,255,.08);\n    border-radius:24px;\n    background:\n        radial-gradient(circle at 100% 0%,rgba(216,180,90,.07),transparent 32%),\n        linear-gradient(145deg,rgba(255,255,255,.04),rgba(255,255,255,.018));\n    box-shadow:inset 0 1px 0 rgba(255,255,255,.035);\n}\n\n.cmc-form-panel-heading{\n    display:flex;\n    align-items:flex-start;\n    gap:16px;\n    margin-bottom:28px;\n}\n\n.cmc-form-panel-heading > span{\n    display:flex;\n    align-items:center;\n    justify-content:center;\n    flex:0 0 auto;\n    width:45px;\n    height:45px;\n    border:1px solid rgba(216,180,90,.26);\n    border-radius:14px;\n    background:rgba(216,180,90,.075);\n    color:var(--cmc-gold-light);\n    font-size:11px;\n    font-weight:900;\n}\n\n.cmc-form-panel-heading h3{\n    margin:1px 0 6px;\n    color:#fff;\n    font-size:21px;\n    font-weight:900;\n}\n\n.cmc-form-panel-heading p{\n    margin:0;\n    color:#858585;\n    font-size:12px;\n    line-height:1.6;\n}\n\n.cmc-form-grid{\n    display:grid;\n    gap:18px;\n}\n\n.cmc-form-grid-2{\n    grid-template-columns:repeat(2,minmax(0,1fr));\n}\n\n.cmc-form-grid-3{\n    grid-template-columns:repeat(3,minmax(0,1fr));\n}\n\n.cmc-field{\n    min-width:0;\n}\n\n.cmc-field-full{\n    grid-column:1\/-1;\n}\n\n.cmc-field label{\n    display:block;\n    margin-bottom:9px;\n    color:#bcbcbc;\n    font-size:10px;\n    font-weight:850;\n    letter-spacing:.7px;\n    text-transform:uppercase;\n}\n\n.cmc-field label em,\n.cmc-consent em{\n    color:var(--cmc-gold-light);\n    font-style:normal;\n}\n\n.cmc-field input,\n.cmc-field textarea{\n    width:100%;\n    outline:none;\n    border:1px solid rgba(255,255,255,.09);\n    border-radius:15px;\n    background:#0b0b0b;\n    color:#fff;\n    font:inherit;\n    font-size:14px;\n    box-shadow:inset 0 1px 0 rgba(255,255,255,.025);\n    transition:border-color .25s ease,background .25s ease,box-shadow .25s ease;\n}\n\n.cmc-field input{\n    height:56px;\n    padding:0 17px;\n}\n\n.cmc-field textarea{\n    min-height:135px;\n    padding:16px 17px;\n    resize:vertical;\n    line-height:1.65;\n}\n\n.cmc-field input::placeholder,\n.cmc-field textarea::placeholder{\n    color:#555;\n}\n\n.cmc-field input:focus,\n.cmc-field textarea:focus{\n    border-color:rgba(216,180,90,.62);\n    background:#0d0d0d;\n    box-shadow:0 0 0 4px rgba(216,180,90,.07);\n}\n\n.cmc-field.has-error input,\n.cmc-field.has-error textarea{\n    border-color:rgba(255,104,104,.72);\n    box-shadow:0 0 0 4px rgba(255,104,104,.055);\n}\n\n.cmc-field-error{\n    display:block;\n    min-height:16px;\n    margin-top:7px;\n    color:#ff8c8c;\n    font-size:10px;\n    line-height:1.4;\n}\n\n.cmc-field-meta{\n    display:flex;\n    justify-content:space-between;\n    gap:12px;\n    margin-top:8px;\n    color:#666;\n    font-size:9px;\n    font-weight:750;\n    letter-spacing:.55px;\n    text-transform:uppercase;\n}\n\n.cmc-consent{\n    position:relative;\n    display:flex;\n    align-items:flex-start;\n    gap:13px;\n    padding:18px 19px;\n    border:1px solid rgba(255,255,255,.08);\n    border-radius:17px;\n    background:rgba(255,255,255,.025);\n    color:#999;\n    font-size:11px;\n    line-height:1.65;\n    cursor:pointer;\n}\n\n.cmc-consent input{\n    position:absolute;\n    opacity:0;\n    pointer-events:none;\n}\n\n.cmc-consent-box{\n    display:flex;\n    align-items:center;\n    justify-content:center;\n    flex:0 0 auto;\n    width:25px;\n    height:25px;\n    margin-top:1px;\n    border:1px solid rgba(255,255,255,.13);\n    border-radius:8px;\n    background:#0c0c0c;\n    color:transparent;\n    font-size:10px;\n    font-weight:900;\n    transition:.25s ease;\n}\n\n.cmc-consent input:checked + .cmc-consent-box{\n    border-color:rgba(216,180,90,.58);\n    background:rgba(216,180,90,.14);\n    color:var(--cmc-gold-light);\n}\n\n.cmc-consent.has-error{\n    border-color:rgba(255,104,104,.55);\n}\n\n.cmc-form-global-error{\n    display:none;\n    padding:15px 17px;\n    border:1px solid rgba(255,104,104,.3);\n    border-radius:14px;\n    background:rgba(255,104,104,.055);\n    color:#ff9c9c;\n    font-size:11px;\n    line-height:1.55;\n}\n\n.cmc-form-global-error.show{\n    display:block;\n}\n\n@media(max-width:850px){\n    .cmc-form-grid-3{\n        grid-template-columns:repeat(2,minmax(0,1fr));\n    }\n}\n\n@media(max-width:600px){\n    .cmc-form-panel{\n        padding:22px 18px;\n        border-radius:20px;\n    }\n\n    .cmc-form-grid-2,\n    .cmc-form-grid-3{\n        grid-template-columns:1fr;\n    }\n\n    .cmc-form-panel-heading{\n        gap:13px;\n    }\n\n    .cmc-form-panel-heading h3{\n        font-size:19px;\n    }\n}\n\n\n\n\/* =========================================================\n   \u00c9TAPE 5 \u2014 CONFIRMATION\n========================================================= *\/\n\n.cmc-confirmation-hero{\n    position:relative;\n    margin-bottom:34px;\n    padding:42px 34px;\n    overflow:hidden;\n    border:1px solid rgba(216,180,90,.14);\n    border-radius:27px;\n    background:\n        radial-gradient(circle at 12% 0%,rgba(216,180,90,.16),transparent 34%),\n        linear-gradient(145deg,rgba(255,255,255,.05),rgba(255,255,255,.015));\n    text-align:center;\n}\n\n.cmc-confirmation-icon{\n    display:flex;\n    align-items:center;\n    justify-content:center;\n    width:68px;\n    height:68px;\n    margin:0 auto 21px;\n    border:1px solid rgba(216,180,90,.42);\n    border-radius:22px;\n    background:rgba(216,180,90,.1);\n    box-shadow:0 0 35px rgba(216,180,90,.13);\n}\n\n.cmc-confirmation-icon span{\n    color:var(--cmc-gold-light);\n    font-size:24px;\n    font-weight:900;\n}\n\n.cmc-confirmation-kicker{\n    display:block;\n    margin-bottom:10px;\n    color:var(--cmc-gold);\n    font-size:9px;\n    font-weight:900;\n    letter-spacing:1.8px;\n    text-transform:uppercase;\n}\n\n.cmc-confirmation-hero h2{\n    margin:0 0 13px;\n    color:#fff;\n    font-size:clamp(35px,4vw,52px);\n    font-weight:900;\n    line-height:1.05;\n}\n\n.cmc-confirmation-hero p{\n    width:min(610px,100%);\n    margin:0 auto;\n    color:#999;\n    font-size:13px;\n    line-height:1.75;\n}\n\n.cmc-confirmation-grid{\n    display:grid;\n    grid-template-columns:repeat(2,minmax(0,1fr));\n    gap:20px;\n}\n\n.cmc-confirmation-card{\n    min-width:0;\n    padding:27px;\n    border:1px solid rgba(255,255,255,.08);\n    border-radius:22px;\n    background:\n        radial-gradient(circle at 100% 0%,rgba(216,180,90,.055),transparent 33%),\n        #090909;\n    box-shadow:inset 0 1px 0 rgba(255,255,255,.03);\n}\n\n.cmc-confirmation-card-main{\n    grid-column:1\/-1;\n}\n\n.cmc-confirmation-card-heading{\n    display:flex;\n    align-items:flex-start;\n    justify-content:space-between;\n    gap:20px;\n    margin-bottom:24px;\n}\n\n.cmc-confirmation-card-heading > div > span{\n    display:block;\n    margin-bottom:6px;\n    color:var(--cmc-gold);\n    font-size:9px;\n    font-weight:900;\n    letter-spacing:1.35px;\n    text-transform:uppercase;\n}\n\n.cmc-confirmation-card-heading h3{\n    margin:0;\n    color:#fff;\n    font-size:20px;\n    font-weight:900;\n}\n\n.cmc-confirmation-edit{\n    flex:0 0 auto;\n    padding:8px 12px;\n    border:1px solid rgba(216,180,90,.2);\n    border-radius:10px;\n    background:rgba(216,180,90,.055);\n    color:var(--cmc-gold-light);\n    font-size:9px;\n    font-weight:900;\n    letter-spacing:.7px;\n    text-transform:uppercase;\n    cursor:pointer;\n    transition:.25s ease;\n}\n\n.cmc-confirmation-edit:hover{\n    border-color:rgba(216,180,90,.5);\n    background:rgba(216,180,90,.11);\n    transform:translateY(-2px);\n}\n\n.cmc-confirmation-appointment{\n    display:flex;\n    align-items:center;\n    gap:24px;\n    padding:24px;\n    border:1px solid rgba(255,255,255,.07);\n    border-radius:19px;\n    background:rgba(255,255,255,.022);\n}\n\n.cmc-confirmation-date-block{\n    display:flex;\n    flex-direction:column;\n    align-items:center;\n    justify-content:center;\n    flex:0 0 94px;\n    min-height:105px;\n    border:1px solid rgba(216,180,90,.28);\n    border-radius:18px;\n    background:rgba(216,180,90,.075);\n}\n\n.cmc-confirmation-date-block span,\n.cmc-confirmation-date-block small{\n    color:#9e864d;\n    font-size:9px;\n    font-weight:900;\n    letter-spacing:1px;\n    text-transform:uppercase;\n}\n\n.cmc-confirmation-date-block strong{\n    margin:4px 0;\n    color:var(--cmc-gold-light);\n    font-size:35px;\n    font-weight:900;\n    line-height:1;\n}\n\n.cmc-confirmation-appointment-details{\n    min-width:0;\n}\n\n.cmc-confirmation-appointment-details > span{\n    display:block;\n    margin-bottom:7px;\n    color:var(--cmc-gold-light);\n    font-size:11px;\n    font-weight:850;\n    letter-spacing:.5px;\n    text-transform:uppercase;\n}\n\n.cmc-confirmation-appointment-details > strong{\n    display:block;\n    color:#fff;\n    font-size:22px;\n    font-weight:900;\n    line-height:1.3;\n}\n\n.cmc-confirmation-tags{\n    display:flex;\n    flex-wrap:wrap;\n    gap:9px;\n    margin-top:15px;\n}\n\n.cmc-confirmation-tags span{\n    display:inline-flex;\n    align-items:center;\n    min-height:31px;\n    padding:0 12px;\n    border:1px solid rgba(255,255,255,.08);\n    border-radius:999px;\n    background:#0d0d0d;\n    color:#aaa;\n    font-size:10px;\n    font-weight:800;\n}\n\n.cmc-confirmation-options{\n    display:flex;\n    justify-content:space-between;\n    gap:24px;\n    margin-top:19px;\n    padding-top:19px;\n    border-top:1px solid rgba(255,255,255,.065);\n}\n\n.cmc-confirmation-options span{\n    color:#777;\n    font-size:11px;\n}\n\n.cmc-confirmation-options strong{\n    max-width:68%;\n    color:#fff;\n    font-size:11px;\n    font-weight:800;\n    text-align:right;\n}\n\n.cmc-confirmation-list{\n    display:grid;\n    gap:0;\n}\n\n.cmc-confirmation-list > div{\n    display:flex;\n    justify-content:space-between;\n    gap:18px;\n    padding:14px 0;\n    border-bottom:1px solid rgba(255,255,255,.06);\n}\n\n.cmc-confirmation-list > div:last-child{\n    border-bottom:0;\n}\n\n.cmc-confirmation-list span{\n    color:#737373;\n    font-size:10px;\n}\n\n.cmc-confirmation-list strong{\n    max-width:68%;\n    color:#fff;\n    font-size:11px;\n    font-weight:800;\n    overflow-wrap:anywhere;\n    text-align:right;\n}\n\n.cmc-confirmation-vehicle > span{\n    display:inline-flex;\n    margin-bottom:14px;\n    padding:9px 13px;\n    border:1px solid rgba(216,180,90,.25);\n    border-radius:10px;\n    background:rgba(216,180,90,.065);\n    color:var(--cmc-gold-light);\n    font-size:11px;\n    font-weight:900;\n    letter-spacing:1px;\n}\n\n.cmc-confirmation-vehicle > strong{\n    display:block;\n    margin-bottom:13px;\n    color:#fff;\n    font-size:21px;\n    font-weight:900;\n}\n\n.cmc-confirmation-vehicle p{\n    margin:0;\n    color:#838383;\n    font-size:11px;\n    line-height:1.7;\n    white-space:pre-line;\n}\n\n.cmc-confirmation-notice{\n    display:flex;\n    align-items:flex-start;\n    gap:13px;\n    margin-top:20px;\n    padding:18px;\n    border:1px solid rgba(216,180,90,.15);\n    border-radius:17px;\n    background:rgba(216,180,90,.045);\n}\n\n.cmc-confirmation-notice > span{\n    display:flex;\n    align-items:center;\n    justify-content:center;\n    flex:0 0 auto;\n    width:25px;\n    height:25px;\n    border:1px solid rgba(216,180,90,.25);\n    border-radius:8px;\n    color:var(--cmc-gold-light);\n    font-size:11px;\n    font-weight:900;\n}\n\n.cmc-confirmation-notice p{\n    margin:1px 0 0;\n    color:#969696;\n    font-size:11px;\n    line-height:1.65;\n}\n\n.cmc-confirm-button{\n    position:relative;\n    display:inline-flex;\n    align-items:center;\n    justify-content:center;\n    gap:14px;\n    min-height:60px;\n    padding:0 31px;\n    overflow:hidden;\n    border:1px solid rgba(243,217,139,.48);\n    border-radius:16px;\n    background:linear-gradient(115deg,#8f6c22,#d8b45a 52%,#f3d98b);\n    color:#050505;\n    font-size:11px;\n    font-weight:900;\n    letter-spacing:.75px;\n    text-transform:uppercase;\n    cursor:pointer;\n    box-shadow:0 20px 45px rgba(216,180,90,.2);\n    transition:transform .3s ease,box-shadow .3s ease,opacity .3s ease;\n}\n\n.cmc-confirm-button:hover{\n    transform:translateY(-4px);\n    box-shadow:0 27px 57px rgba(216,180,90,.29);\n}\n\n.cmc-confirm-button-arrow{\n    font-size:19px;\n}\n\n.cmc-confirm-button-loader{\n    display:none;\n    width:19px;\n    height:19px;\n    border:2px solid rgba(0,0,0,.28);\n    border-top-color:#050505;\n    border-radius:50%;\n    animation:cmc-confirm-spin .75s linear infinite;\n}\n\n.cmc-confirm-button.loading .cmc-confirm-button-text,\n.cmc-confirm-button.loading .cmc-confirm-button-arrow{\n    display:none;\n}\n\n.cmc-confirm-button.loading .cmc-confirm-button-loader{\n    display:block;\n}\n\n.cmc-confirm-button:disabled{\n    cursor:default;\n    opacity:.65;\n    transform:none;\n}\n\n@keyframes cmc-confirm-spin{\n    to{transform:rotate(360deg);}\n}\n\n.cmc-confirmation-success{\n    display:none;\n    align-items:center;\n    gap:15px;\n    margin-top:23px;\n    padding:20px;\n    border:1px solid rgba(216,180,90,.27);\n    border-radius:18px;\n    background:rgba(216,180,90,.065);\n}\n\n.cmc-confirmation-success.show{\n    display:flex;\n    animation:cmc-confirm-success .45s ease both;\n}\n\n.cmc-confirmation-success-icon{\n    display:flex;\n    align-items:center;\n    justify-content:center;\n    flex:0 0 auto;\n    width:42px;\n    height:42px;\n    border:1px solid rgba(216,180,90,.38);\n    border-radius:13px;\n    color:var(--cmc-gold-light);\n    font-size:16px;\n    font-weight:900;\n}\n\n.cmc-confirmation-success strong{\n    display:block;\n    margin-bottom:4px;\n    color:#fff;\n    font-size:13px;\n    font-weight:900;\n}\n\n.cmc-confirmation-success p{\n    margin:0;\n    color:#969696;\n    font-size:10px;\n    line-height:1.55;\n}\n\n@keyframes cmc-confirm-success{\n    from{opacity:0;transform:translateY(10px);}\n    to{opacity:1;transform:translateY(0);}\n}\n\n@media(max-width:750px){\n    .cmc-confirmation-grid{\n        grid-template-columns:1fr;\n    }\n\n    .cmc-confirmation-card-main{\n        grid-column:auto;\n    }\n\n    .cmc-confirmation-appointment{\n        align-items:flex-start;\n    }\n}\n\n@media(max-width:600px){\n    .cmc-confirmation-hero{\n        padding:34px 21px;\n        border-radius:22px;\n    }\n\n    .cmc-confirmation-card{\n        padding:22px 18px;\n        border-radius:20px;\n    }\n\n    .cmc-confirmation-appointment{\n        flex-direction:column;\n        padding:19px;\n    }\n\n    .cmc-confirmation-date-block{\n        flex-basis:auto;\n        width:100%;\n        min-height:87px;\n    }\n\n    .cmc-confirmation-options{\n        flex-direction:column;\n        gap:8px;\n    }\n\n    .cmc-confirmation-options strong{\n        max-width:none;\n        text-align:left;\n    }\n\n    .cmc-confirm-button{\n        width:100%;\n    }\n}\n\n<style>\n\/* =========================================================\n   CLEANMYCAR69 \u2014 BLOCAGE TOTAL DU BLEU WORDPRESS \/ ELEMENTOR\n========================================================= *\/\n\n\/* Suppression du flash bleu mobile *\/\nhtml body .cmc-booking-page,\nhtml body .cmc-booking-page * {\n    -webkit-tap-highlight-color: transparent !important;\n}\n\n\/* =========================================================\n   INDICATEURS DES \u00c9TAPES\n   Ils sont visuels uniquement : aucun survol, aucun clic\n========================================================= *\/\n\nhtml body .cmc-booking-page button.cmc-booking-step-indicator,\nhtml body .cmc-booking-page button.cmc-booking-step-indicator:hover,\nhtml body .cmc-booking-page button.cmc-booking-step-indicator:focus,\nhtml body .cmc-booking-page button.cmc-booking-step-indicator:focus-visible,\nhtml body .cmc-booking-page button.cmc-booking-step-indicator:active {\n    padding: 0 !important;\n\n    border: 0 !important;\n    outline: 0 !important;\n\n    background: transparent !important;\n    background-color: transparent !important;\n    background-image: none !important;\n\n    color: #666666 !important;\n\n    box-shadow: none !important;\n    text-shadow: none !important;\n\n    cursor: default !important;\n    pointer-events: none !important;\n\n    transform: none !important;\n    filter: none !important;\n\n    -webkit-appearance: none !important;\n    appearance: none !important;\n}\n\n\/* Carr\u00e9 contenant le chiffre *\/\nhtml body .cmc-booking-page button.cmc-booking-step-indicator > span,\nhtml body .cmc-booking-page button.cmc-booking-step-indicator:hover > span,\nhtml body .cmc-booking-page button.cmc-booking-step-indicator:focus > span,\nhtml body .cmc-booking-page button.cmc-booking-step-indicator:active > span {\n    border: 1px solid rgba(255,255,255,.10) !important;\n\n    background: #0a0a0a !important;\n    background-color: #0a0a0a !important;\n    background-image: none !important;\n\n    color: #777777 !important;\n\n    box-shadow: none !important;\n}\n\n\/* \u00c9tape actuellement active *\/\nhtml body .cmc-booking-page button.cmc-booking-step-indicator.active > span,\nhtml body .cmc-booking-page button.cmc-booking-step-indicator.active:hover > span,\nhtml body .cmc-booking-page button.cmc-booking-step-indicator.active:focus > span,\nhtml body .cmc-booking-page button.cmc-booking-step-indicator.active:active > span {\n    border-color: rgba(216,180,90,.52) !important;\n\n    background: rgba(216,180,90,.10) !important;\n    background-color: rgba(216,180,90,.10) !important;\n    background-image: none !important;\n\n    color: #f3d98b !important;\n\n    box-shadow: 0 0 25px rgba(216,180,90,.11) !important;\n}\n\nhtml body .cmc-booking-page button.cmc-booking-step-indicator.active small {\n    color: #f3d98b !important;\n}\n\n\/* =========================================================\n   BOUTONS DOR\u00c9S\n========================================================= *\/\n\nhtml body .cmc-booking-page button.cmc-next-button,\nhtml body .cmc-booking-page button.cmc-next-button:hover,\nhtml body .cmc-booking-page button.cmc-next-button:focus,\nhtml body .cmc-booking-page button.cmc-next-button:focus-visible,\nhtml body .cmc-booking-page button.cmc-next-button:active,\n\nhtml body .cmc-booking-page button.cmc-confirm-button,\nhtml body .cmc-booking-page button.cmc-confirm-button:hover,\nhtml body .cmc-booking-page button.cmc-confirm-button:focus,\nhtml body .cmc-booking-page button.cmc-confirm-button:focus-visible,\nhtml body .cmc-booking-page button.cmc-confirm-button:active {\n    border: 1px solid rgba(243,217,139,.48) !important;\n    outline: none !important;\n\n    background:\n        linear-gradient(\n            115deg,\n            #8f6c22 0%,\n            #d8b45a 52%,\n            #f3d98b 100%\n        ) !important;\n\n    background-color: #d8b45a !important;\n    color: #050505 !important;\n\n    text-decoration: none !important;\n    filter: none !important;\n\n    -webkit-appearance: none !important;\n    appearance: none !important;\n}\n\n\/* =========================================================\n   BOUTONS RETOUR\n========================================================= *\/\n\nhtml body .cmc-booking-page button.cmc-back-button,\nhtml body .cmc-booking-page button.cmc-back-button:focus,\nhtml body .cmc-booking-page button.cmc-back-button:focus-visible,\nhtml body .cmc-booking-page button.cmc-back-button:active {\n    border: 1px solid rgba(255,255,255,.11) !important;\n    outline: none !important;\n\n    background: rgba(255,255,255,.035) !important;\n    background-color: rgba(255,255,255,.035) !important;\n    background-image: none !important;\n\n    color: #ffffff !important;\n\n    box-shadow: none !important;\n    filter: none !important;\n}\n\nhtml body .cmc-booking-page button.cmc-back-button:hover {\n    border-color: rgba(216,180,90,.34) !important;\n\n    background: rgba(216,180,90,.055) !important;\n    background-color: rgba(216,180,90,.055) !important;\n    background-image: none !important;\n\n    color: #ffffff !important;\n}\n\n\/* Nettoyage Firefox *\/\nhtml body .cmc-booking-page button::-moz-focus-inner {\n    border: 0 !important;\n}\n<\/style>\n\n<\/style>\n\n\n\n<script>\ndocument.addEventListener(\"DOMContentLoaded\",function(){\n\n    const serviceCards=document.querySelectorAll(\".cmc-service-card\");\n    const optionCards=document.querySelectorAll(\".cmc-option-card\");\n    const nextStep1=document.getElementById(\"cmc-next-step\");\n    const nextStep2=document.getElementById(\"cmc-next-step-2\");\n    const prevStep2=document.getElementById(\"cmc-prev-step-2\");\n    const summaryEmpty=document.getElementById(\"cmc-summary-empty\");\n    const summaryDetails=document.getElementById(\"cmc-summary-details\");\n    const summaryService=document.getElementById(\"cmc-summary-service\");\n    const summaryOptions=document.getElementById(\"cmc-summary-options\");\n    const summaryDuration=document.getElementById(\"cmc-summary-duration\");\n    const progressFill=document.getElementById(\"cmc-progress-fill\");\n\n    let selectedServiceMinutes=0;\n\n    function showStep(stepNumber){\n        document.querySelectorAll(\".cmc-booking-step\").forEach(function(step){\n            step.classList.remove(\"active\");\n        });\n\n        const target=document.querySelector('[data-booking-step=\"'+stepNumber+'\"]');\n        if(target){target.classList.add(\"active\");}\n\n        document.querySelectorAll(\".cmc-booking-step-indicator\").forEach(function(indicator){\n            indicator.classList.toggle(\"active\",Number(indicator.dataset.step)===stepNumber);\n        });\n\n        progressFill.style.width=((stepNumber-1)*25)+\"%\";\n\n        document.getElementById(\"cmc-booking-form\").scrollIntoView({\n            behavior:\"smooth\",\n            block:\"start\"\n        });\n    }\n\nfunction durationToMinutes(durationText){\n\n    const text=(durationText || \"\")\n        .toLowerCase()\n        .trim();\n\n    let total=0;\n\n    const hourMatch=text.match(\/(\\d+)\\s*(?:h|heure|heures)\/);\n    const minuteMatch=text.match(\/(\\d+)\\s*(?:min|minute|minutes)\/);\n\n    if(hourMatch){\n        total+=Number(hourMatch[1])*60;\n    }\n\n    if(minuteMatch){\n        total+=Number(minuteMatch[1]);\n    }else if(hourMatch){\n        const minutesAfterHour=text.match(\n            \/\\d+\\s*(?:h|heure|heures)\\s*(\\d{1,2})\/\n        );\n\n        if(minutesAfterHour){\n            total+=Number(minutesAfterHour[1]);\n        }\n    }\n\n    return total;\n}\n\n    function formatDuration(minutes){\n        const hours=Math.floor(minutes\/60);\n        const mins=minutes%60;\n        if(hours && mins){return hours+\" h \"+mins;}\n        if(hours){return hours+\" h\";}\n        return mins+\" min\";\n    }\n\n    function updateDuration(){\n        let total=selectedServiceMinutes;\n\n        document.querySelectorAll(\".cmc-option-card.active\").forEach(function(card){\n            total+=Number(card.dataset.duration || 0);\n        });\n\n        summaryDuration.textContent=total ? formatDuration(total) : \"\u2014\";\n    }\n\n    serviceCards.forEach(function(card){\n        card.setAttribute(\"tabindex\",\"0\");\n        card.setAttribute(\"role\",\"button\");\n        card.setAttribute(\"aria-pressed\",\"false\");\n\n        function selectService(){\n            serviceCards.forEach(function(item){\n                item.classList.remove(\"active\");\n                item.setAttribute(\"aria-pressed\",\"false\");\n            });\n\n            card.classList.add(\"active\");\n            card.setAttribute(\"aria-pressed\",\"true\");\n\n            summaryService.textContent=card.dataset.service || \"\u2014\";\n            selectedServiceMinutes=durationToMinutes(card.dataset.duration || \"\");\n            updateDuration();\n\n            summaryEmpty.style.display=\"none\";\n            summaryDetails.style.display=\"block\";\n            nextStep1.classList.add(\"show\");\n        }\n\n        card.addEventListener(\"click\",selectService);\n        card.addEventListener(\"keydown\",function(event){\n            if(event.key===\"Enter\" || event.key===\" \"){\n                event.preventDefault();\n                selectService();\n            }\n        });\n    });\n\n    optionCards.forEach(function(card){\n        card.addEventListener(\"click\",function(){\n            card.classList.toggle(\"active\");\n\n            const selected=[];\n            document.querySelectorAll(\".cmc-option-card.active\").forEach(function(item){\n                selected.push(item.dataset.option);\n            });\n\n            summaryOptions.textContent=selected.length ? selected.join(\", \") : \"Aucune\";\n            updateDuration();\n        });\n    });\n\n    nextStep1.addEventListener(\"click\",function(){showStep(2);});\n    prevStep2.addEventListener(\"click\",function(){showStep(1);});\n\n    \/* =========================================================\n       \u00c9TAPE 3 \u2014 CALENDRIER ET CR\u00c9NEAUX\n    ========================================================= *\/\n\n    const currentMonth=document.getElementById(\"cmc-current-month\");\n    const calendarDays=document.getElementById(\"cmc-calendar-days\");\n    const timesGrid=document.getElementById(\"cmc-times-grid\");\n    const prevMonthButton=document.getElementById(\"cmc-prev-month\");\n    const nextMonthButton=document.getElementById(\"cmc-next-month\");\n    const prevStep3=document.getElementById(\"cmc-prev-step-3\");\n    const nextStep3=document.getElementById(\"cmc-next-step-3\");\n    const summaryDate=document.getElementById(\"cmc-summary-date\");\n    const summaryTime=document.getElementById(\"cmc-summary-time\");\n\n    const monthNames=[\n        \"Janvier\",\"F\u00e9vrier\",\"Mars\",\"Avril\",\"Mai\",\"Juin\",\n        \"Juillet\",\"Ao\u00fbt\",\"Septembre\",\"Octobre\",\"Novembre\",\"D\u00e9cembre\"\n    ];\n\n    const weekdayNames=[\n        \"dimanche\",\"lundi\",\"mardi\",\"mercredi\",\n        \"jeudi\",\"vendredi\",\"samedi\"\n    ];\n\n    const availableTimes=[\"09:00\",\"10:30\",\"13:30\",\"15:00\",\"16:30\"];\n\n    const today=new Date();\n    today.setHours(0,0,0,0);\n\n    let displayedDate=new Date(today.getFullYear(),today.getMonth(),1);\n    let selectedDate=null;\n    let selectedTime=\"\";\n\n    function formatSelectedDate(date){\n        return weekdayNames[date.getDay()]+\" \"+date.getDate()+\" \"+monthNames[date.getMonth()].toLowerCase()+\" \"+date.getFullYear();\n    }\n\n    function resetSelectedTime(){\n        selectedTime=\"\";\n        summaryTime.textContent=\"\u2014\";\n        nextStep3.classList.remove(\"show\");\n    }\n\n    function showTimes(date){\n        selectedDate=new Date(date.getFullYear(),date.getMonth(),date.getDate());\n        summaryDate.textContent=formatSelectedDate(selectedDate);\n        resetSelectedTime();\n        timesGrid.innerHTML=\"\";\n\n        availableTimes.forEach(function(time){\n            const button=document.createElement(\"button\");\n            button.type=\"button\";\n            button.className=\"cmc-time\";\n            button.textContent=time.replace(\":\",\"h\");\n            button.setAttribute(\"aria-pressed\",\"false\");\n\n            button.addEventListener(\"click\",function(){\n                document.querySelectorAll(\".cmc-time\").forEach(function(item){\n                    item.classList.remove(\"selected\");\n                    item.setAttribute(\"aria-pressed\",\"false\");\n                });\n\n                button.classList.add(\"selected\");\n                button.setAttribute(\"aria-pressed\",\"true\");\n                selectedTime=time;\n                summaryTime.textContent=time.replace(\":\",\"h\");\n                nextStep3.classList.add(\"show\");\n            });\n\n            timesGrid.appendChild(button);\n        });\n    }\n\n    function generateCalendar(){\n        calendarDays.innerHTML=\"\";\n\n        const year=displayedDate.getFullYear();\n        const month=displayedDate.getMonth();\n        const firstDay=new Date(year,month,1);\n        const lastDay=new Date(year,month+1,0);\n        const firstWeekday=(firstDay.getDay()+6)%7;\n\n        currentMonth.textContent=monthNames[month]+\" \"+year;\n\n        for(let index=0;index<firstWeekday;index++){\n            const empty=document.createElement(\"span\");\n            empty.setAttribute(\"aria-hidden\",\"true\");\n            calendarDays.appendChild(empty);\n        }\n\n        for(let day=1;day<=lastDay.getDate();day++){\n            const date=new Date(year,month,day);\n            const button=document.createElement(\"button\");\n            button.type=\"button\";\n            button.className=\"cmc-day\";\n            button.textContent=day;\n            button.setAttribute(\"aria-label\",formatSelectedDate(date));\n\n            if(date<today){\n                button.classList.add(\"disabled\");\n                button.disabled=true;\n            }else{\n                button.addEventListener(\"click\",function(){\n                    document.querySelectorAll(\".cmc-day\").forEach(function(item){\n                        item.classList.remove(\"selected\");\n                    });\n\n                    button.classList.add(\"selected\");\n                    showTimes(date);\n                });\n            }\n\n            if(\n                selectedDate &&\n                selectedDate.getFullYear()===year &&\n                selectedDate.getMonth()===month &&\n                selectedDate.getDate()===day\n            ){\n                button.classList.add(\"selected\");\n            }\n\n            calendarDays.appendChild(button);\n        }\n\n        const currentMonthStart=new Date(today.getFullYear(),today.getMonth(),1);\n        prevMonthButton.disabled=displayedDate<=currentMonthStart;\n        prevMonthButton.style.opacity=prevMonthButton.disabled ? \".3\" : \"1\";\n        prevMonthButton.style.pointerEvents=prevMonthButton.disabled ? \"none\" : \"auto\";\n    }\n\n    nextStep1.addEventListener(\"click\",function(){showStep(2);});\n    prevStep2.addEventListener(\"click\",function(){showStep(1);});\n\n    nextStep2.addEventListener(\"click\",function(){\n        showStep(3);\n        generateCalendar();\n    });\n\n    prevStep3.addEventListener(\"click\",function(){\n        showStep(2);\n    });\n\n    prevMonthButton.addEventListener(\"click\",function(){\n        displayedDate.setMonth(displayedDate.getMonth()-1);\n        generateCalendar();\n    });\n\n    nextMonthButton.addEventListener(\"click\",function(){\n        displayedDate.setMonth(displayedDate.getMonth()+1);\n        generateCalendar();\n    });\n\n    nextStep3.addEventListener(\"click\",function(){\n        if(!selectedDate || !selectedTime){return;}\n        showStep(4);\n    });\n\n    \/* =========================================================\n       \u00c9TAPE 4 \u2014 INFORMATIONS CLIENT ET VALIDATION\n    ========================================================= *\/\n\n    const customerForm=document.getElementById(\"cmc-customer-form\");\n    const prevStep4=document.getElementById(\"cmc-prev-step-4\");\n    const comments=document.getElementById(\"cmc-comments\");\n    const commentsCount=document.getElementById(\"cmc-comments-count\");\n    const consent=document.getElementById(\"cmc-consent\");\n    const globalFormError=document.getElementById(\"cmc-form-global-error\");\n\n    const customerFields=[\n        {\n            id:\"cmc-firstname\",\n            message:\"Veuillez renseigner votre pr\u00e9nom.\",\n            validate:function(value){return value.trim().length>=2;}\n        },\n        {\n            id:\"cmc-lastname\",\n            message:\"Veuillez renseigner votre nom.\",\n            validate:function(value){return value.trim().length>=2;}\n        },\n        {\n            id:\"cmc-phone\",\n            message:\"Veuillez saisir un num\u00e9ro de t\u00e9l\u00e9phone valide.\",\n            validate:function(value){\n                const cleaned=value.replace(\/[^\\d+]\/g,\"\");\n                return \/^(?:\\+33|0)[1-9]\\d{8}$\/.test(cleaned);\n            }\n        },\n        {\n            id:\"cmc-email\",\n            message:\"Veuillez saisir une adresse e-mail valide.\",\n            validate:function(value){\n                return \/^[^\\s@]+@[^\\s@]+\\.[^\\s@]{2,}$\/.test(value.trim());\n            }\n        },\n        {\n            id:\"cmc-registration\",\n            message:\"Veuillez renseigner l\u2019immatriculation du v\u00e9hicule.\",\n            validate:function(value){return value.trim().length>=4;}\n        },\n        {\n            id:\"cmc-brand\",\n            message:\"Veuillez renseigner la marque du v\u00e9hicule.\",\n            validate:function(value){return value.trim().length>=2;}\n        },\n        {\n            id:\"cmc-model\",\n            message:\"Veuillez renseigner le mod\u00e8le du v\u00e9hicule.\",\n            validate:function(value){return value.trim().length>=1;}\n        }\n    ];\n\n    function setFieldState(input,isValid,message){\n        const field=input.closest(\".cmc-field\");\n        const error=field ? field.querySelector(\".cmc-field-error\") : null;\n\n        if(field){\n            field.classList.toggle(\"has-error\",!isValid);\n        }\n\n        input.setAttribute(\"aria-invalid\",String(!isValid));\n\n        if(error){\n            error.textContent=isValid ? \"\" : message;\n        }\n    }\n\n    function validateCustomerField(config){\n        const input=document.getElementById(config.id);\n        const isValid=config.validate(input.value);\n        setFieldState(input,isValid,config.message);\n        return isValid;\n    }\n\n    customerFields.forEach(function(config){\n        const input=document.getElementById(config.id);\n\n        input.addEventListener(\"blur\",function(){\n            validateCustomerField(config);\n        });\n\n        input.addEventListener(\"input\",function(){\n            if(input.closest(\".cmc-field\").classList.contains(\"has-error\")){\n                validateCustomerField(config);\n            }\n        });\n    });\n\n    document.getElementById(\"cmc-registration\").addEventListener(\"input\",function(){\n        this.value=this.value.toUpperCase();\n    });\n\n    comments.addEventListener(\"input\",function(){\n        commentsCount.textContent=comments.value.length+\" \/ 600\";\n    });\n\n    consent.addEventListener(\"change\",function(){\n        consent.closest(\".cmc-consent\").classList.toggle(\"has-error\",!consent.checked);\n    });\n\n    prevStep4.addEventListener(\"click\",function(){\n        showStep(3);\n    });\n\n    customerForm.addEventListener(\"submit\",function(event){\n        event.preventDefault();\n\n        let isFormValid=true;\n        let firstInvalidField=null;\n\n        customerFields.forEach(function(config){\n            const isValid=validateCustomerField(config);\n\n            if(!isValid){\n                isFormValid=false;\n\n                if(!firstInvalidField){\n                    firstInvalidField=document.getElementById(config.id);\n                }\n            }\n        });\n\n        const consentLabel=consent.closest(\".cmc-consent\");\n        consentLabel.classList.toggle(\"has-error\",!consent.checked);\n\n        if(!consent.checked){\n            isFormValid=false;\n\n            if(!firstInvalidField){\n                firstInvalidField=consent;\n            }\n        }\n\n        globalFormError.classList.toggle(\"show\",!isFormValid);\n        globalFormError.textContent=isFormValid\n            ? \"\"\n            : \"Certaines informations sont manquantes ou incorrectes. V\u00e9rifiez les champs indiqu\u00e9s.\";\n\n        if(!isFormValid){\n            const target=firstInvalidField.closest(\".cmc-field\") || firstInvalidField.closest(\".cmc-consent\");\n            target.scrollIntoView({behavior:\"smooth\",block:\"center\"});\n\n            if(firstInvalidField!==consent){\n                firstInvalidField.focus({preventScroll:true});\n            }\n\n            return;\n        }\n\n        populateConfirmation();\n        showStep(5);\n    });\n\n    \/* =========================================================\n       \u00c9TAPE 5 \u2014 R\u00c9CAPITULATIF FINAL\n    ========================================================= *\/\n\n    const prevStep5=document.getElementById(\"cmc-prev-step-5\");\n    const confirmBooking=document.getElementById(\"cmc-confirm-booking\");\n    const confirmationSuccess=document.getElementById(\"cmc-confirmation-success\");\n\n    function capitalizeFirst(value){\n        return value ? value.charAt(0).toUpperCase()+value.slice(1) : \"\u2014\";\n    }\n\n    function populateConfirmation(){\n        const service=summaryService.textContent || \"\u2014\";\n        const options=summaryOptions.textContent || \"Aucune\";\n        const duration=summaryDuration.textContent || \"\u2014\";\n\n        document.getElementById(\"cmc-final-service\").textContent=service;\n        document.getElementById(\"cmc-final-options\").textContent=options;\n        document.getElementById(\"cmc-final-duration\").textContent=\"Dur\u00e9e : \"+duration;\n        document.getElementById(\"cmc-final-time\").textContent=selectedTime\n            ? selectedTime.replace(\":\",\"h\")\n            : \"\u2014\";\n\n        if(selectedDate){\n            document.getElementById(\"cmc-final-day\").textContent=\n                weekdayNames[selectedDate.getDay()].slice(0,3);\n            document.getElementById(\"cmc-final-day-number\").textContent=\n                selectedDate.getDate();\n            document.getElementById(\"cmc-final-month\").textContent=\n                monthNames[selectedDate.getMonth()].slice(0,3);\n            document.getElementById(\"cmc-final-date\").textContent=\n                capitalizeFirst(formatSelectedDate(selectedDate));\n        }\n\n        const firstname=document.getElementById(\"cmc-firstname\").value.trim();\n        const lastname=document.getElementById(\"cmc-lastname\").value.trim();\n        const phone=document.getElementById(\"cmc-phone\").value.trim();\n        const email=document.getElementById(\"cmc-email\").value.trim();\n        const registration=document.getElementById(\"cmc-registration\").value.trim();\n        const brand=document.getElementById(\"cmc-brand\").value.trim();\n        const model=document.getElementById(\"cmc-model\").value.trim();\n        const commentValue=comments.value.trim();\n\n        document.getElementById(\"cmc-final-customer\").textContent=\n            firstname+\" \"+lastname;\n        document.getElementById(\"cmc-final-phone\").textContent=phone;\n        document.getElementById(\"cmc-final-email\").textContent=email;\n        document.getElementById(\"cmc-final-registration\").textContent=registration;\n        document.getElementById(\"cmc-final-vehicle\").textContent=\n            brand+\" \"+model;\n        document.getElementById(\"cmc-final-comments\").textContent=\n            commentValue || \"Aucune information compl\u00e9mentaire.\";\n    }\n\n    document.querySelectorAll(\".cmc-confirmation-edit\").forEach(function(button){\n        button.addEventListener(\"click\",function(){\n            showStep(Number(button.dataset.editStep));\n        });\n    });\n\n    prevStep5.addEventListener(\"click\",function(){\n        showStep(4);\n    });\n\n    confirmBooking.addEventListener(\"click\",async function(){\n        if(confirmBooking.classList.contains(\"loading\")){return;}\n\n        confirmBooking.classList.add(\"loading\");\n        confirmBooking.disabled=true;\n        confirmationSuccess.classList.remove(\"show\");\n\n        const selectedOptions=[];\n        document.querySelectorAll(\".cmc-option-card.active\").forEach(function(card){\n            selectedOptions.push(card.dataset.option || \"\");\n        });\n\n        const formData=new FormData();\n\n        formData.append(\"_subject\",\"Nouvelle demande de rendez-vous CleanMyCar69\");\n        formData.append(\"_template\",\"table\");\n        formData.append(\"_captcha\",\"false\");\n\n        formData.append(\"Prestation\",summaryService.textContent.trim());\n        formData.append(\n            \"Options\",\n            selectedOptions.length ? selectedOptions.join(\", \") : \"Aucune\"\n        );\n        formData.append(\"Date\",summaryDate.textContent.trim());\n        formData.append(\"Heure\",summaryTime.textContent.trim());\n        formData.append(\"Dur\u00e9e estim\u00e9e\",summaryDuration.textContent.trim());\n\n        formData.append(\n            \"Pr\u00e9nom\",\n            document.getElementById(\"cmc-firstname\").value.trim()\n        );\n        formData.append(\n            \"Nom\",\n            document.getElementById(\"cmc-lastname\").value.trim()\n        );\n        formData.append(\n            \"T\u00e9l\u00e9phone\",\n            document.getElementById(\"cmc-phone\").value.trim()\n        );\n        formData.append(\n            \"E-mail\",\n            document.getElementById(\"cmc-email\").value.trim()\n        );\n        formData.append(\n            \"Immatriculation\",\n            document.getElementById(\"cmc-registration\").value.trim()\n        );\n        formData.append(\n            \"Marque\",\n            document.getElementById(\"cmc-brand\").value.trim()\n        );\n        formData.append(\n            \"Mod\u00e8le\",\n            document.getElementById(\"cmc-model\").value.trim()\n        );\n        formData.append(\n            \"Informations compl\u00e9mentaires\",\n            document.getElementById(\"cmc-comments\").value.trim() || \"Aucune\"\n        );\n\n        try{\n            const response=await fetch(\n                \"https:\/\/formsubmit.co\/ajax\/cleanmycar69400@gmail.com\",\n                {\n                    method:\"POST\",\n                    body:formData,\n                    headers:{\n                        Accept:\"application\/json\"\n                    }\n                }\n            );\n\n            const result=await response.json();\n\n            if(!response.ok || result.success===\"false\" || result.success===false){\n                throw new Error(\n                    result.message ||\n                    \"La demande n\u2019a pas pu \u00eatre envoy\u00e9e.\"\n                );\n            }\n\n            confirmationSuccess.classList.add(\"show\");\n\n            confirmBooking.querySelector(\n                \".cmc-confirm-button-text\"\n            ).textContent=\"Demande envoy\u00e9e\";\n\n            confirmBooking.querySelector(\n                \".cmc-confirm-button-arrow\"\n            ).textContent=\"\u2713\";\n\n            confirmationSuccess.scrollIntoView({\n                behavior:\"smooth\",\n                block:\"center\"\n            });\n\n        }catch(error){\n            console.error(\"Erreur formulaire de rendez-vous :\",error);\n\n            alert(\n                \"La demande n\u2019a pas pu \u00eatre envoy\u00e9e. \" +\n                \"Veuillez r\u00e9essayer ou nous contacter directement.\"\n            );\n\n            confirmBooking.disabled=false;\n\n        }finally{\n            confirmBooking.classList.remove(\"loading\");\n        }\n    });\n\n    generateCalendar();\n});\n<\/script>\n\n\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":"<p>R\u00e9servation en ligne Prenez rendez-vous en quelques clics. Choisissez votre prestation, personnalisez votre nettoyage et s\u00e9lectionnez directement le cr\u00e9neau qui vous convient. Commencer ma r\u00e9servation \u2193 \u2713 R\u00e9servation rapide Disponible 24 h \/ 24 \u2713 Cr\u00e9neaux en temps r\u00e9el Aucune double r\u00e9servation \u2713 Confirmation imm\u00e9diate Re\u00e7ue directement par e-mail 1 Prestation 2 Options 3 Date&hellip;&nbsp;<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"page-templates\/template-pagebuilder-full-width.php","meta":{"neve_meta_sidebar":"","neve_meta_container":"","neve_meta_enable_content_width":"","neve_meta_content_width":0,"neve_meta_title_alignment":"","neve_meta_author_avatar":"","neve_post_elements_order":"","neve_meta_disable_header":"","neve_meta_disable_footer":"","neve_meta_disable_title":"","footnotes":""},"class_list":["post-982","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.cleanmycar69.com\/index.php\/wp-json\/wp\/v2\/pages\/982","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.cleanmycar69.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.cleanmycar69.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.cleanmycar69.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.cleanmycar69.com\/index.php\/wp-json\/wp\/v2\/comments?post=982"}],"version-history":[{"count":65,"href":"https:\/\/www.cleanmycar69.com\/index.php\/wp-json\/wp\/v2\/pages\/982\/revisions"}],"predecessor-version":[{"id":1110,"href":"https:\/\/www.cleanmycar69.com\/index.php\/wp-json\/wp\/v2\/pages\/982\/revisions\/1110"}],"wp:attachment":[{"href":"https:\/\/www.cleanmycar69.com\/index.php\/wp-json\/wp\/v2\/media?parent=982"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}