{"id":7,"date":"2026-06-05T12:25:14","date_gmt":"2026-06-05T12:25:14","guid":{"rendered":"https:\/\/betclic.pass.cm\/?page_id=7"},"modified":"2026-06-05T12:39:49","modified_gmt":"2026-06-05T12:39:49","slug":"e-invitation","status":"publish","type":"page","link":"https:\/\/betclic.pass.cm\/","title":{"rendered":"E-invitation"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"7\" class=\"elementor elementor-7\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-9658e7d e-con-full e-flex e-con e-parent\" data-id=\"9658e7d\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-3ef12e0 elementor-widget elementor-widget-template\" data-id=\"3ef12e0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"template.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-template\">\n\t\t\t\t\t<div data-elementor-type=\"page\" data-elementor-id=\"25\" class=\"elementor elementor-25\" data-elementor-post-type=\"elementor_library\">\n\t\t\t\t<div class=\"elementor-element elementor-element-70964705 e-con-full e-flex e-con e-parent\" data-id=\"70964705\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-20a6b9d3 e-con-full e-flex e-con e-child\" data-id=\"20a6b9d3\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-10bcc554 e-con-full e-flex e-con e-child\" data-id=\"10bcc554\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-3d3ffdb7 elementor-widget elementor-widget-image\" data-id=\"3d3ffdb7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"720\" height=\"1280\" src=\"https:\/\/betclic.pass.cm\/wp-content\/uploads\/2026\/06\/WhatsApp-Image-2026-06-05-at-12.09.58.jpeg\" class=\"attachment-full size-full wp-image-17\" alt=\"\" srcset=\"https:\/\/betclic.pass.cm\/wp-content\/uploads\/2026\/06\/WhatsApp-Image-2026-06-05-at-12.09.58.jpeg 720w, https:\/\/betclic.pass.cm\/wp-content\/uploads\/2026\/06\/WhatsApp-Image-2026-06-05-at-12.09.58-169x300.jpeg 169w, https:\/\/betclic.pass.cm\/wp-content\/uploads\/2026\/06\/WhatsApp-Image-2026-06-05-at-12.09.58-576x1024.jpeg 576w\" sizes=\"(max-width: 720px) 100vw, 720px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-1cee3b8b e-con-full e-flex e-con e-child\" data-id=\"1cee3b8b\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-288f23b e-con-full e-flex e-con e-child\" data-id=\"288f23b\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-58125404 elementor-widget elementor-widget-heading\" data-id=\"58125404\" data-element_type=\"widget\" data-e-type=\"widget\" id=\"mon-titre-id2\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">....<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5ee74e56 elementor-widget elementor-widget-heading\" data-id=\"5ee74e56\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h6 class=\"elementor-heading-title elementor-size-default\">Serez-vous au de la partie ?<\/h6>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7ecfa25 elementor-widget elementor-widget-html\" data-id=\"7ecfa25\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- PARTIE 1: G\u00e9n\u00e9ration d'image personnalis\u00e9e -->\n        <!--<div style=\"margin-bottom: 20px;\">-->\n            <!-- Conteneur pour l'image g\u00e9n\u00e9r\u00e9e -->\n        <!--    <div id=\"image-container\" style=\"text-align: center;\">-->\n        <!--        <div id=\"personalized-image\" style=\"position: relative; display: inline-block;\">-->\n                    <!--<img decoding=\"async\" id=\"base-image\" style=\"width: 100%; max-width: 600px; display: block; border-radius: 8px; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);\" src=\"https:\/\/champions.cm\/wp-content\/uploads\/2025\/05\/billet-lr-25.jpeg\" alt=\"Image d'invitation\">-->\n        <!--            <div id=\"guest-name\" style=\"position: absolute; top: 33.5%; left: 0; font-size: 10px; color: #007B1B; font-weight: bold; font-family: 'Heineken', serif; text-align: left; padding-left: 22px;\"><\/div>-->\n        <!--        <\/div>-->\n        <!--    <\/div>-->\n            \n        <!--    <div id=\"image-result\" style=\"padding: 15px; border-radius: 5px; margin: 20px 0; text-align: center; display: none;\"><\/div>-->\n        <!--<\/div>-->\n        \n        <!-- Script pour la partie 1: G\u00e9n\u00e9ration d'image personnalis\u00e9e -->\n        <script>\n            \/\/ Configuration - Code de l'\u00e9v\u00e9nement fixe\n            const EVENT_ID = \"bt6\";\n            const API_BASE_URL = \"https:\/\/e-invite.zen-apps.com\/api\";\n            \n            \/\/ Fonction pour extraire le code invit\u00e9 de l'URL\n            function getGuestCode() {\n                \/\/ R\u00e9cup\u00e9rer la partie query de l'URL (tout ce qui suit le ?)\n                const queryString = window.location.search;\n                \n                \/\/ Si la query commence par '?', on enl\u00e8ve ce caract\u00e8re\n                if (queryString.startsWith('?')) {\n                    \/\/ On retourne tout ce qui suit le '?' comme code invit\u00e9\n                    return queryString.substring(1);\n                }\n                \n                return '';\n            }\n            \n            \/\/ Fonction pour r\u00e9cup\u00e9rer les informations de l'invit\u00e9\n            async function fetchGuestInfo(contactId, eventId) {\n                try {\n                    console.log(`Fetching guest info for contact ${contactId} and event ${eventId}`);\n                    \n                    \/\/ Appel direct \u00e0 l'API sans proxy CORS\n                    const response = await fetch(`${API_BASE_URL}\/check_invitation?event_id=${eventId}&contact_id=${contactId}`, {\n                        headers: {\n                            'Accept': 'application\/json'\n                        }\n                    });\n                    \n                    if (!response.ok) {\n                        throw new Error(`Erreur HTTP: ${response.status}`);\n                    }\n                    \n                    const data = await response.json();\n                    return data;\n                } catch (error) {\n                    console.error(\"Erreur lors de la r\u00e9cup\u00e9ration des informations:\", error);\n                    return {\n                        status: \"error\",\n                        message: \"Nous n'avons pas pu charger vos informations. Veuillez r\u00e9essayer plus tard.\"\n                    };\n                }\n            }\n            \n            \/\/ Fonction pour afficher un message\n            function displayImageMessage(type, message) {\n                const element = document.getElementById('image-result');\n                element.innerHTML = message;\n                \n                \/\/ Style \u00e9l\u00e9gant pour tous les types de messages\n                element.style.backgroundColor = 'transparent';\n                element.style.color = 'white';\n                element.style.textShadow = '1px 1px 3px rgba(0,0,0,0.5)';\n                element.style.fontStyle = 'italic';\n                element.style.fontSize = '14px';\n                \n                \/\/ Afficher l'\u00e9l\u00e9ment\n                element.style.display = 'block';\n            }\n            \n            \/\/ Initialisation\n            document.addEventListener('DOMContentLoaded', async function() {\n                \/\/ R\u00e9cup\u00e9rer le code d'invitation depuis l'URL\n                const contactId = getGuestCode();\n                \n                if (!contactId) {\n                    displayImageMessage('error', 'Votre invitation semble incompl\u00e8te. Veuillez utiliser le lien re\u00e7u dans votre SMS \/ message WhatsApp.');\n                    return;\n                }\n                \n                \/\/ Afficher un message de chargement\n                displayImageMessage('loading', 'R\u00e9cup\u00e9ration des informations de l\\'invit\u00e9...');\n                \n                \/\/ R\u00e9cup\u00e9rer les informations de l'invit\u00e9\n                const result = await fetchGuestInfo(contactId, EVENT_ID);\n                \n                if (result.status === 'success') {\n                    if (result.is_registered) {\n                        \/\/ R\u00e9cup\u00e9rer le nom de la personne tel que re\u00e7u via l'API\n                        const guestName = result.contact.full_name;\n                        \n                        \n                        \/\/ Afficher le nom sur l'image\n                        \/\/ document.getElementById('guest-name').textContent = guestName;\n                        \n                        document.getElementById(\"mon-titre-id2\").innerText = guestName;\n                        document.getElementById(\"mon-titre-id2\").style.color = \"#e6b839\";\n                \n                        \/\/ Masquer le message de r\u00e9sultat au lieu d'afficher un message de bienvenue\n                        document.getElementById('image-result').style.display = 'none';\n                    } else {\n                        \/\/ Afficher un message d'erreur\n                        displayImageMessage('error', result.message || 'Nous ne trouvons pas votre invitation. V\u00e9rifiez que vous utilisez le bon lien.');\n                    }\n                } else {\n                    \/\/ Afficher un message d'erreur\n                    displayImageMessage('error', result.message || 'Un petit probl\u00e8me est survenu. Veuillez r\u00e9essayer plus tard.');\n                }\n            });\n        <\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-2a6b0379 e-con-full e-flex e-con e-child\" data-id=\"2a6b0379\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-fcc4d38 elementor-widget elementor-widget-html\" data-id=\"fcc4d38\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- Partie 2: Gestion des r\u00e9ponses RSVP -->\r\n<!-- Toast flottant pour les messages de r\u00e9ponse -->\r\n<!--<div id=\"toast\" style=\"position: fixed; bottom: 30px; left: 50%; transform: translateX(-50%); background-color: rgba(0, 123, 27, 0.9); color: white; padding: 16px 32px; border-radius: 4px; font-family: 'Heineken', serif; font-size: 16px; z-index: 1000; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3); opacity: 0; transition: opacity 0.3s, transform 0.4s; pointer-events: none; min-width: 300px; text-align: center;\"><\/div>-->\r\n\r\n<!--<div style=\"width: 100%;\">-->\r\n<!--    <div id=\"response-buttons\" style=\"display: flex; justify-content: space-between; align-items: center; width: 100%; overflow-x: hidden;\">-->\r\n<!--        <button id=\"yes\" style=\"flex: 1; height: 42px; padding: 10px 0; margin: 0 5px; border: 1px solid #8EA780; border-radius: 0; cursor: pointer; font-weight: bold; transition: all 0.3s ease; background-color: white; color: #014035; flex-shrink: 0; font-family: 'Heineken', serif;\">Oui<\/button>-->\r\n<!--        <button id=\"maybe\" style=\"flex: 1; height: 42px; padding: 10px 0; margin: 0 5px; border: 1px solid #8EA780; border-radius: 0; cursor: pointer; font-weight: bold; transition: all 0.3s ease; background-color: white; color: #014035; flex-shrink: 0; font-family: 'Heineken', serif;\">Peut-\u00eatre<\/button>-->\r\n<!--        <button id=\"no\" style=\"flex: 1; height: 42px; padding: 10px 0; margin: 0 5px; border: 1px solid #8EA780; border-radius: 0; cursor: pointer; font-weight: bold; transition: all 0.3s ease; background-color: white; color: #014035; flex-shrink: 0; font-family: 'Heineken', serif;\">Non<\/button>-->\r\n<!--    <\/div>-->\r\n<!--    <div id=\"response-text\" style=\"display: none; justify-content: center; align-items: center; width: 100%; text-align: center; color: white; font-weight: bold; text-shadow: 1px 1px 3px rgba(0,0,0,0.5); padding: 10px 0;\"><\/div>-->\r\n    \r\n<!--    <div id=\"response-message\" style=\"padding: 15px; border-radius: 5px; margin: 20px 0; text-align: center; display: none;\"><\/div>-->\r\n<!--<\/div>-->\r\n\r\n<!-- Script pour la partie 2: Gestion des r\u00e9ponses RSVP -->\r\n<!--<script>-->\r\n    \r\n<!--    const RSVP_EVENT_ID = \"h25\";-->\r\n<!--    const RSVP_API_BASE_URL = \"https:\/\/e-invite.zen-apps.com\/api\";-->\r\n    \r\n \r\n<!--    const RESPONSE_MESSAGES = {-->\r\n<!--        \"yes\": \"Merci d'avoir confirm\u00e9 votre pr\u00e9sence !\",-->\r\n<!--        \"no\": \"Nous sommes d\u00e9sol\u00e9s que vous ne puissiez pas venir.\",-->\r\n<!--        \"maybe\": \"Nous esp\u00e9rons que vous pourrez vous joindre \u00e0 nous !\"-->\r\n<!--    };-->\r\n    \r\n   \r\n<!--    function getRsvpGuestCode() {-->\r\n<!--        const queryString = window.location.search;-->\r\n        \r\n<!--        if (queryString.startsWith('?')) {-->\r\n<!--            return queryString.substring(1);-->\r\n<!--        }-->\r\n        \r\n<!--        return '';-->\r\n<!--    }-->\r\n    \r\n  \r\n<!--    async function updateResponseStatus(contactId, status) {-->\r\n<!--        try {-->\r\n<!--            const response = await fetch(`${RSVP_API_BASE_URL}\/update-response-status`, {-->\r\n<!--                method: 'POST',-->\r\n<!--                headers: {-->\r\n<!--                    'Content-Type': 'application\/json',-->\r\n<!--                    'Accept': 'application\/json'-->\r\n<!--                },-->\r\n<!--                body: JSON.stringify({-->\r\n<!--                    event_id: RSVP_EVENT_ID,-->\r\n<!--                    contact_id: contactId,-->\r\n<!--                    status: status-->\r\n<!--                })-->\r\n<!--            });-->\r\n            \r\n<!--            if (!response.ok) {-->\r\n<!--                throw new Error(`Erreur HTTP: ${response.status}`);-->\r\n<!--            }-->\r\n            \r\n<!--            const data = await response.json();-->\r\n<!--            return data;-->\r\n<!--        } catch (error) {-->\r\n<!--            return {-->\r\n<!--                status: 'error',-->\r\n<!--                message: 'Nous n\\'avons pas pu enregistrer votre r\u00e9ponse. Veuillez r\u00e9essayer plus tard.'-->\r\n<!--            };-->\r\n<!--        }-->\r\n<!--    }-->\r\n    \r\n<!--    let toastIsVisible = false;-->\r\n<!--    let toastQueue = [];-->\r\n    \r\n<!--    function processToastQueue() {-->\r\n<!--        if (toastQueue.length > 0 && !toastIsVisible) {-->\r\n<!--            const nextToast = toastQueue.shift();-->\r\n<!--            displayToast(nextToast.message, nextToast.duration);-->\r\n<!--        }-->\r\n<!--    }-->\r\n    \r\n<!--    function displayToast(message, duration = 8000) {-->\r\n<!--        const toast = document.getElementById('toast');-->\r\n<!--        toast.textContent = message;-->\r\n        \r\n<!--        toastIsVisible = true;-->\r\n        \r\n<!--        toast.style.opacity = '1';-->\r\n<!--        toast.style.transform = 'translateX(-50%) translateY(0)';-->\r\n        \r\n<!--        setTimeout(() => {-->\r\n<!--            toast.style.opacity = '0';-->\r\n<!--            toast.style.transform = 'translateX(-50%) translateY(20px)';-->\r\n            \r\n<!--            setTimeout(() => {-->\r\n<!--                toast.textContent = '';-->\r\n<!--                toastIsVisible = false;-->\r\n<!--                processToastQueue();-->\r\n<!--            }, 500);-->\r\n<!--        }, duration);-->\r\n<!--    }-->\r\n    \r\n<!--    function showToast(message, duration = 8000) {-->\r\n<!--        toastQueue.push({ message, duration });-->\r\n<!--        processToastQueue();-->\r\n<!--    }-->\r\n    \r\n<!--    function displayResponseMessage(type, message) {-->\r\n<!--        showToast(message);-->\r\n<!--    }-->\r\n    \r\n<!--    document.addEventListener('DOMContentLoaded', function() {-->\r\n<!--        const contactId = getRsvpGuestCode();-->\r\n        \r\n<!--        if (!contactId) {-->\r\n<!--            document.getElementById('yes').disabled = true;-->\r\n<!--            document.getElementById('no').disabled = true;-->\r\n<!--            document.getElementById('maybe').disabled = true;-->\r\n            \r\n<!--            displayResponseMessage('error', 'Votre invitation semble incompl\u00e8te. Veuillez utiliser le lien re\u00e7u dans votre email.');-->\r\n<!--            return;-->\r\n<!--        }-->\r\n        \r\n<!--        ['yes', 'no', 'maybe'].forEach(status => {-->\r\n<!--            const button = document.getElementById(status);-->\r\n            \r\n<!--            button.addEventListener('click', async function() {-->\r\n<!--                document.getElementById('yes').disabled = true;-->\r\n<!--                document.getElementById('no').disabled = true;-->\r\n<!--                document.getElementById('maybe').disabled = true;-->\r\n                \r\n<!--                displayResponseMessage('loading', 'Envoi de votre r\u00e9ponse...');-->\r\n                \r\n<!--                const result = await updateResponseStatus(contactId, status);-->\r\n                \r\n<!--                if (result.status === 'success') {-->\r\n<!--                    showToast(RESPONSE_MESSAGES[status], 5000);-->\r\n                    \r\n<!--                    document.getElementById('yes').disabled = false;-->\r\n<!--                    document.getElementById('no').disabled = false;-->\r\n<!--                    document.getElementById('maybe').disabled = false;-->\r\n                    \r\n                    <!--document.getElementById(status).style.backgroundColor = '#64BF33'; \/* Green background when active *\/-->\r\n                    <!--document.getElementById(status).style.color = '#014035'; \/* Dark Green text *\/-->\r\n<!--                } else {-->\r\n<!--                    document.getElementById('yes').disabled = false;-->\r\n<!--                    document.getElementById('no').disabled = false;-->\r\n<!--                    document.getElementById('maybe').disabled = false;-->\r\n                    \r\n<!--                    displayResponseMessage('error', result.message || 'Une erreur s\\'est produite');-->\r\n<!--                }-->\r\n<!--            });-->\r\n<!--        });-->\r\n<!--    });-->\r\n<!--<\/script>-->\r\n\r\n\r\n<div id=\"toast\" style=\"position: fixed; bottom: 30px; left: 50%; transform: translateX(-50%); background-color: rgba(0, 123, 27, 0.9); color: white; padding: 16px 32px; border-radius: 4px; font-family: 'Heineken', serif; font-size: 16px; z-index: 1000000; box-shadow: 0 4px 8px rgba(0,0,0,0.3); opacity: 0; transition: opacity 0.3s, transform 0.4s; pointer-events: none; min-width: 300px; text-align: center;\"><\/div>\r\n\r\n<div style=\"width: 100%;\">\r\n  <div id=\"response-buttons\" style=\"display: flex; justify-content: space-between; align-items: center; width: 100%; overflow-x: hidden;\">\r\n    <button id=\"yes\" class=\"response-btn\" type=\"button\">\r\n      Oui\r\n    <\/button>\r\n\r\n    <button id=\"maybe\" class=\"response-btn\" type=\"button\">\r\n      Peut-\u00eatre\r\n    <\/button>\r\n\r\n    <button id=\"no\" class=\"response-btn\" type=\"button\">\r\n      Non\r\n    <\/button>\r\n  <\/div>\r\n<\/div>\r\n\r\n<div class=\"golf-popup-overlay\" id=\"golfPopupOverlay\">\r\n  <div class=\"golf-popup\">\r\n\r\n    <button class=\"popup-close\" type=\"button\">\u00d7<\/button>\r\n\r\n    <div class=\"language-switch\">\r\n      <button id=\"langFr\" class=\"lang-btn active\" type=\"button\">FR<\/button>\r\n      <button id=\"langEn\" class=\"lang-btn\" type=\"button\">EN<\/button>\r\n    <\/div>\r\n\r\n    <div class=\"popup-step active\" data-step=\"1\">\r\n      <h2 data-i18n=\"modalTitle\">Compl\u00e9tez vos informations<\/h2>\r\n\r\n      <div class=\"progress-bar\">\r\n        <span style=\"width: 33%;\"><\/span>\r\n      <\/div>\r\n\r\n      <div class=\"form-group\">\r\n        <label data-i18n=\"clubMemberQuestion\">Appartenez-vous \u00e0 un club ?<\/label>\r\n\r\n        <div class=\"radio-group\">\r\n          <label>\r\n            <input type=\"radio\" name=\"club_member\" value=\"oui\" checked>\r\n            <span data-i18n=\"yes\">Oui<\/span>\r\n          <\/label>\r\n\r\n          <label>\r\n            <input type=\"radio\" name=\"club_member\" value=\"non\">\r\n            <span data-i18n=\"no\">Non<\/span>\r\n          <\/label>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <input\r\n        id=\"clubName\"\r\n        type=\"text\"\r\n        class=\"input-field\"\r\n        placeholder=\"Saisissez le nom du club\"\r\n        data-placeholder-fr=\"Saisissez le nom du club\"\r\n        data-placeholder-en=\"Enter club name\"\r\n      >\r\n\r\n      <div class=\"range-header\">\r\n        <label data-i18n=\"handicapLabel\">Handicap approximatif<\/label>\r\n        <strong id=\"handicapValue\">= 0<\/strong>\r\n      <\/div>\r\n\r\n      <div class=\"range-wrapper\">\r\n        <input id=\"handicapRange\" type=\"range\" min=\"0\" max=\"54\" value=\"0\">\r\n        <div class=\"range-values\">\r\n          <span>0<\/span>\r\n          <span>54<\/span>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <input\r\n        id=\"tournamentsCount\"\r\n        type=\"number\"\r\n        class=\"input-field\"\r\n        placeholder=\"Nombre de tournois jou\u00e9s\"\r\n        data-placeholder-fr=\"Nombre de tournois jou\u00e9s\"\r\n        data-placeholder-en=\"Number of tournaments played\"\r\n      >\r\n\r\n      <button class=\"btn-primary next-step\" type=\"button\" data-i18n=\"continue\">\r\n        Continuer\r\n      <\/button>\r\n    <\/div>\r\n\r\n    <div class=\"popup-step\" data-step=\"2\">\r\n      <h2 data-i18n=\"modalTitle\">Compl\u00e9tez vos informations<\/h2>\r\n\r\n      <div class=\"progress-bar\">\r\n        <span style=\"width: 66%;\"><\/span>\r\n      <\/div>\r\n\r\n      <div class=\"form-group\">\r\n        <label data-i18n=\"chooseSize\">Choisissez votre taille de polo<\/label>\r\n      <\/div>\r\n\r\n      <div class=\"size-grid\" id=\"sizeGrid\">\r\n        <div class=\"size-card active\" data-size=\"XS\">\r\n          <div class=\"size-title\">XS<\/div>\r\n          <div class=\"size-desc\">\r\n            <span data-i18n=\"chestMeasurement\">Tour de poitrine<\/span> :<br>\r\n            82 - 87 cm\r\n          <\/div>\r\n        <\/div>\r\n\r\n        <div class=\"size-card\" data-size=\"S\">\r\n          <div class=\"size-title\">S<\/div>\r\n          <div class=\"size-desc\">\r\n            <span data-i18n=\"chestMeasurement\">Tour de poitrine<\/span> :<br>\r\n            88 - 93 cm\r\n          <\/div>\r\n        <\/div>\r\n\r\n        <div class=\"size-card\" data-size=\"M\">\r\n          <div class=\"size-title\">M<\/div>\r\n          <div class=\"size-desc\">\r\n            <span data-i18n=\"chestMeasurement\">Tour de poitrine<\/span> :<br>\r\n            94 - 99 cm\r\n          <\/div>\r\n        <\/div>\r\n\r\n        <div class=\"size-card\" data-size=\"L\">\r\n          <div class=\"size-title\">L<\/div>\r\n          <div class=\"size-desc\">\r\n            <span data-i18n=\"chestMeasurement\">Tour de poitrine<\/span> :<br>\r\n            100 - 105 cm\r\n          <\/div>\r\n        <\/div>\r\n\r\n        <div class=\"size-card\" data-size=\"XL\">\r\n          <div class=\"size-title\">XL<\/div>\r\n          <div class=\"size-desc\">\r\n            <span data-i18n=\"chestMeasurement\">Tour de poitrine<\/span> :<br>\r\n            106 - 111 cm\r\n          <\/div>\r\n        <\/div>\r\n\r\n        <div class=\"size-card\" data-size=\"XXL\">\r\n          <div class=\"size-title\">XXL<\/div>\r\n          <div class=\"size-desc\">\r\n            <span data-i18n=\"chestMeasurement\">Tour de poitrine<\/span> :<br>\r\n            112 - 117 cm\r\n          <\/div>\r\n        <\/div>\r\n\r\n        <div class=\"size-card\" data-size=\"3XL\">\r\n          <div class=\"size-title\">3XL<\/div>\r\n          <div class=\"size-desc\">\r\n            <span data-i18n=\"chestMeasurement\">Tour de poitrine<\/span> :<br>\r\n            118 - 123 cm\r\n          <\/div>\r\n        <\/div>\r\n\r\n        <div class=\"size-card\" data-size=\"4XL\">\r\n          <div class=\"size-title\">4XL<\/div>\r\n          <div class=\"size-desc\">\r\n            <span data-i18n=\"chestMeasurement\">Tour de poitrine<\/span> :<br>\r\n            124 - 129 cm\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <div class=\"popup-actions\">\r\n        <button class=\"btn-secondary prev-step\" type=\"button\" data-i18n=\"back\">\r\n          Pr\u00e9c\u00e9dent\r\n        <\/button>\r\n\r\n        <button class=\"btn-primary next-step\" type=\"button\" data-i18n=\"validate\">\r\n          Valider\r\n        <\/button>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"popup-step\" data-step=\"3\">\r\n      <h2 data-i18n=\"modalTitle\">Compl\u00e9tez vos informations<\/h2>\r\n\r\n      <div class=\"progress-bar\">\r\n        <span style=\"width: 100%;\"><\/span>\r\n      <\/div>\r\n\r\n      <div class=\"form-group\">\r\n        <label data-i18n=\"acceptTermsTitle\">Acceptez les conditions<\/label>\r\n      <\/div>\r\n\r\n      <div class=\"check-block\">\r\n        <label class=\"custom-checkbox\">\r\n          <input id=\"rulesAccepted\" type=\"checkbox\">\r\n          <span><\/span>\r\n          <strong data-i18n=\"rulesAcceptedLabel\">J\u2019accepte les r\u00e8gles du tournoi<\/strong>\r\n        <\/label>\r\n\r\n        <div class=\"info-box\" data-i18n=\"rulesText\">\r\n          Je confirme avoir lu et compris le r\u00e8glement du Beaufort Golf Tour 2026 et m'engage \u00e0 le respecter.\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <div class=\"check-block\">\r\n        <label class=\"custom-checkbox\">\r\n          <input id=\"imageAuthorization\" type=\"checkbox\">\r\n          <span><\/span>\r\n          <strong data-i18n=\"imageAuthorizationLabel\">J\u2019autorise l\u2019utilisation de mon image<\/strong>\r\n        <\/label>\r\n\r\n        <div class=\"info-box\" data-i18n=\"imageAuthorizationText\">\r\n          J\u2019autorise les organisateurs \u00e0 utiliser les photos et vid\u00e9os prises lors de l\u2019\u00e9v\u00e9nement \u00e0 des fins promotionnelles sur leurs supports de communication.\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <div class=\"popup-actions\">\r\n        <button class=\"btn-secondary prev-step\" type=\"button\" data-i18n=\"back\">\r\n          Pr\u00e9c\u00e9dent\r\n        <\/button>\r\n\r\n        <button id=\"finalSubmit\" class=\"btn-primary\" type=\"button\" data-i18n=\"submit\">\r\n          Valider\r\n        <\/button>\r\n      <\/div>\r\n    <\/div>\r\n\r\n  <\/div>\r\n<\/div>\r\n\r\n<style>\r\n  .response-btn {\r\n    flex: 1;\r\n    height: 42px;\r\n    padding: 10px 0;\r\n    margin: 0 5px;\r\n    border: 1px solid #014035;\r\n    border-radius: 0;\r\n    cursor: pointer;\r\n    font-weight: bold;\r\n    transition: all 0.3s ease;\r\n    background-color: #014035;\r\n    color: #ffffff;\r\n    flex-shrink: 0;\r\n  }\r\n\r\n  .response-btn:hover {\r\n    background-color: #ffffff !important;\r\n    color: #C7141E !important;\r\n    border-color: #C7141E !important;\r\n  }\r\n\r\n  .response-btn.selected-response {\r\n    background-color:  #C7141E !important;\r\n    color: #64BF33 !important;\r\n    border-color: #C7141E !important;\r\n  }\r\n\r\n  .response-btn:disabled {\r\n    opacity: 0.6;\r\n    cursor: not-allowed;\r\n  }\r\n\r\n  .golf-popup-overlay {\r\n    position: fixed;\r\n    inset: 0;\r\n    width: 100%;\r\n    height: 100vh;\r\n    min-height: 100vh;\r\n    background: rgba(0, 0, 0, 0.35);\r\n    display: none;\r\n    align-items: center;\r\n    justify-content: center;\r\n    padding: 20px;\r\n    box-sizing: border-box;\r\n    z-index: 999999;\r\n  }\r\n\r\n  .golf-popup {\r\n    position: relative;\r\n    width: 100%;\r\n    max-width: 420px;\r\n    max-height: 90vh;\r\n    overflow-y: auto;\r\n    background: #ffffff;\r\n    padding: 56px 22px 24px;\r\n    box-sizing: border-box;\r\n  }\r\n\r\n  .popup-close {\r\n    position: absolute;\r\n    top: 10px;\r\n    right: 16px;\r\n    border: none;\r\n    background: transparent !important;\r\n    font-size: 34px;\r\n    line-height: 1;\r\n    cursor: pointer;\r\n    color: #000000;\r\n    z-index: 2;\r\n  }\r\n\r\n  .popup-close:hover {\r\n    background: transparent !important;\r\n    color: #000000 !important;\r\n  }\r\n\r\n  .language-switch {\r\n    position: absolute;\r\n    top: 14px;\r\n    left: 18px;\r\n    display: flex;\r\n    border: 1px solid #014035;\r\n    overflow: hidden;\r\n  }\r\n\r\n  .lang-btn {\r\n    border: none;\r\n    background: #ffffff;\r\n    color: #014035;\r\n    font-size: 12px;\r\n    font-weight: bold;\r\n    padding: 7px 12px;\r\n    cursor: pointer;\r\n    transition: all 0.2s ease;\r\n  }\r\n\r\n  .lang-btn.active {\r\n    background: #014035;\r\n    color: #ffffff;\r\n  }\r\n\r\n  .lang-btn:hover {\r\n    background: #eef2f1 !important;\r\n    color: #014035 !important;\r\n  }\r\n\r\n  .lang-btn.active:hover {\r\n    background: #014035 !important;\r\n    color: #ffffff !important;\r\n  }\r\n\r\n  .popup-step {\r\n    display: none;\r\n  }\r\n\r\n  .popup-step.active {\r\n    display: block;\r\n  }\r\n\r\n  .golf-popup h2 {\r\n    margin: 10px 0 10px;\r\n    font-size: 18px;\r\n    font-weight: 400;\r\n    color: #111111;\r\n  }\r\n\r\n  .progress-bar {\r\n    width: 100%;\r\n    height: 6px;\r\n    background: #e8e8e8;\r\n    margin-bottom: 32px;\r\n    overflow: hidden;\r\n  }\r\n\r\n  .progress-bar span {\r\n    display: block;\r\n    height: 100%;\r\n    background: #FEA400;\r\n  }\r\n\r\n  .form-group {\r\n    margin-bottom: 14px;\r\n  }\r\n\r\n  .form-group label,\r\n  .range-header label {\r\n    font-size: 16px;\r\n    color: #222222;\r\n  }\r\n\r\n  .radio-group {\r\n    display: flex;\r\n    gap: 18px;\r\n    margin-top: 12px;\r\n  }\r\n\r\n  .radio-group label {\r\n    display: flex;\r\n    align-items: center;\r\n    gap: 6px;\r\n    font-size: 15px;\r\n    cursor: pointer;\r\n  }\r\n\r\n  .radio-group input {\r\n    width: 20px;\r\n    height: 20px;\r\n    accent-color: #014035;\r\n  }\r\n\r\n  .input-field {\r\n    width: 100%;\r\n    height: 58px;\r\n    border: 1px solid #999999;\r\n    padding: 0 22px;\r\n    box-sizing: border-box;\r\n    margin-bottom: 20px;\r\n    font-size: 14px;\r\n    color: #333333;\r\n    outline: none;\r\n    background-color: #ffffff;\r\n  }\r\n\r\n  .input-field:hover,\r\n  .input-field:focus {\r\n    border-color: #014035;\r\n    background-color: #ffffff !important;\r\n  }\r\n\r\n  .input-field::placeholder {\r\n    color: #999999;\r\n  }\r\n\r\n  .range-header {\r\n    display: flex;\r\n    justify-content: space-between;\r\n    align-items: center;\r\n    margin-bottom: 14px;\r\n  }\r\n\r\n  .range-header strong {\r\n    color: #014035;\r\n    font-size: 17px;\r\n  }\r\n\r\n  .range-wrapper input[type=\"range\"] {\r\n    width: 100%;\r\n    height: 24px;\r\n    appearance: none;\r\n    -webkit-appearance: none;\r\n    background: transparent;\r\n    outline: none;\r\n    cursor: pointer;\r\n  }\r\n\r\n  .range-wrapper input[type=\"range\"]::-webkit-slider-runnable-track {\r\n    height: 4px;\r\n    background: #E2E2E2;\r\n    border-radius: 0;\r\n  }\r\n\r\n  .range-wrapper input[type=\"range\"]::-webkit-slider-thumb {\r\n    appearance: none;\r\n    -webkit-appearance: none;\r\n    width: 18px;\r\n    height: 18px;\r\n    background: #014035;\r\n    border-radius: 50%;\r\n    border: none;\r\n    margin-top: -7px;\r\n  }\r\n\r\n  .range-wrapper input[type=\"range\"]::-moz-range-track {\r\n    height: 4px;\r\n    background: #E2E2E2;\r\n    border-radius: 0;\r\n  }\r\n\r\n  .range-wrapper input[type=\"range\"]::-moz-range-thumb {\r\n    width: 18px;\r\n    height: 18px;\r\n    background: #014035;\r\n    border-radius: 50%;\r\n    border: none;\r\n  }\r\n\r\n  .range-values {\r\n    display: flex;\r\n    justify-content: space-between;\r\n    color: #777777;\r\n    font-size: 16px;\r\n    margin-bottom: 20px;\r\n  }\r\n\r\n  .btn-primary,\r\n  .btn-secondary {\r\n    height: 54px;\r\n    border: none;\r\n    font-size: 16px;\r\n    cursor: pointer;\r\n    transition: all 0.2s ease;\r\n  }\r\n\r\n  .btn-primary {\r\n    width: 100%;\r\n    background: #014035;\r\n    color: #ffffff;\r\n  }\r\n\r\n  .btn-primary:hover {\r\n    background: #025247 !important;\r\n    color: #ffffff !important;\r\n  }\r\n\r\n  .btn-primary:disabled,\r\n  .btn-secondary:disabled {\r\n    opacity: 0.6;\r\n    cursor: not-allowed;\r\n  }\r\n\r\n  .btn-secondary {\r\n    background: #e9e9e9;\r\n    color: #222222;\r\n  }\r\n\r\n  .btn-secondary:hover {\r\n    background: #dddddd !important;\r\n    color: #222222 !important;\r\n  }\r\n\r\n  .popup-actions {\r\n    display: grid;\r\n    grid-template-columns: 1fr 1fr;\r\n    gap: 16px;\r\n    margin-top: 38px;\r\n  }\r\n\r\n  .size-grid {\r\n    display: grid;\r\n    grid-template-columns: repeat(2, 1fr);\r\n    gap: 12px;\r\n    margin-top: 18px;\r\n  }\r\n\r\n  .size-card {\r\n    border: 1px solid #999999;\r\n    min-height: 94px;\r\n    display: flex;\r\n    flex-direction: column;\r\n    justify-content: center;\r\n    text-align: center;\r\n    box-sizing: border-box;\r\n    cursor: pointer;\r\n    transition: border 0.2s ease, box-shadow 0.2s ease;\r\n    background: #ffffff;\r\n    padding: 10px 6px;\r\n  }\r\n\r\n  .size-card:hover {\r\n    border-color: #FEA400 !important;\r\n    background-color: #ffffff !important;\r\n  }\r\n\r\n  .size-card.active {\r\n    border: 2px solid #FEA400;\r\n  }\r\n\r\n  .size-title {\r\n    font-size: 28px;\r\n    color: #014035;\r\n    line-height: 1;\r\n    margin-bottom: 12px;\r\n    font-weight: 400;\r\n  }\r\n\r\n  .size-desc {\r\n    font-size: 11px;\r\n    color: #777777;\r\n    line-height: 1.35;\r\n  }\r\n\r\n  .check-block {\r\n    margin-bottom: 22px;\r\n  }\r\n\r\n  .custom-checkbox {\r\n    display: flex;\r\n    align-items: center;\r\n    gap: 10px;\r\n    margin-bottom: 14px;\r\n    cursor: pointer;\r\n  }\r\n\r\n  .custom-checkbox input {\r\n    display: none;\r\n  }\r\n\r\n  .custom-checkbox span {\r\n    width: 24px;\r\n    height: 24px;\r\n    border: 1px solid #014035;\r\n    display: inline-flex;\r\n    align-items: center;\r\n    justify-content: center;\r\n    box-sizing: border-box;\r\n    flex-shrink: 0;\r\n    background-color: #ffffff;\r\n  }\r\n\r\n  .custom-checkbox:hover span {\r\n    background-color: #ffffff !important;\r\n    border-color: #014035 !important;\r\n  }\r\n\r\n  .custom-checkbox input:checked + span::after {\r\n    content: \"\u2713\";\r\n    color: #014035;\r\n    font-size: 20px;\r\n    line-height: 1;\r\n  }\r\n\r\n  .custom-checkbox strong {\r\n    font-size: 15px;\r\n    color: #111111;\r\n  }\r\n\r\n  .info-box {\r\n    background: #eef2f1;\r\n    color: #666666;\r\n    font-size: 14px;\r\n    line-height: 1.25;\r\n    padding: 18px 20px;\r\n    box-sizing: border-box;\r\n  }\r\n\r\n  @media (max-width: 480px) {\r\n    .golf-popup-overlay {\r\n      padding: 12px;\r\n      align-items: center;\r\n      justify-content: center;\r\n    }\r\n\r\n    .golf-popup {\r\n      max-width: 100%;\r\n      max-height: 90vh;\r\n      padding: 56px 18px 20px;\r\n    }\r\n\r\n    .size-grid {\r\n      gap: 10px;\r\n    }\r\n\r\n    .size-card {\r\n      min-height: 94px;\r\n      padding: 10px 5px;\r\n    }\r\n\r\n    .size-title {\r\n      font-size: 26px;\r\n      margin-bottom: 10px;\r\n    }\r\n\r\n    .size-desc {\r\n      font-size: 10.5px;\r\n    }\r\n\r\n    .popup-actions {\r\n      gap: 12px;\r\n    }\r\n  }\r\n<\/style>\r\n\r\n<script>\r\n  const RSVP_EVENT_ID = \"bt6\";\r\n  const RSVP_API_BASE_URL = \"https:\/\/e-invite.zen-apps.com\/api\";\r\n\r\n  const NEW_RESPONSE_API_URL = \"https:\/\/golf.beaufort.cm\/inscription\/invitation\/api\/index.php\/reponse\";\r\n  const VERIFY_RESPONSE_API_URL = \"https:\/\/golf.beaufort.cm\/inscription\/invitation\/api\/index.php\/reponse-verifie\";\r\n\r\n  const STATUS_MAPPING = {\r\n    yes: \"confirmed\",\r\n    maybe: \"maybe\",\r\n    no: \"declined\"\r\n  };\r\n\r\n  const REVERSE_STATUS_MAPPING = {\r\n    confirmed: \"yes\",\r\n    maybe: \"maybe\",\r\n    declined: \"no\"\r\n  };\r\n\r\n  const TRANSLATIONS = {\r\n    fr: {\r\n      yes: \"Oui\",\r\n      maybe: \"Peut-\u00eatre\",\r\n      no: \"Non\",\r\n      modalTitle: \"Compl\u00e9tez vos informations\",\r\n      clubMemberQuestion: \"Appartenez-vous \u00e0 un club ?\",\r\n      handicapLabel: \"Handicap approximatif\",\r\n      continue: \"Continuer\",\r\n      back: \"Pr\u00e9c\u00e9dent\",\r\n      validate: \"Valider\",\r\n      submit: \"Valider\",\r\n      chooseSize: \"Choisissez votre taille de polo\",\r\n      chestMeasurement: \"Tour de poitrine\",\r\n      acceptTermsTitle: \"Acceptez les conditions\",\r\n      rulesAcceptedLabel: \"J\u2019accepte les r\u00e8gles du tournoi\",\r\n      rulesText: \"Je confirme avoir lu et compris le r\u00e8glement du Beaufort Golf Tour 2026 et m'engage \u00e0 le respecter.\",\r\n      imageAuthorizationLabel: \"J\u2019autorise l\u2019utilisation de mon image\",\r\n      imageAuthorizationText: \"J\u2019autorise les organisateurs \u00e0 utiliser les photos et vid\u00e9os prises lors de l\u2019\u00e9v\u00e9nement \u00e0 des fins promotionnelles sur leurs supports de communication.\",\r\n      missingCode: \"Code invit\u00e9 introuvable dans l'URL.\",\r\n      chooseAnswer: \"Veuillez choisir une r\u00e9ponse.\",\r\n      acceptAllAuthorizationsError: \"Veuillez cocher les deux autorisations avant de valider.\",\r\n      sending: \"Envoi de votre r\u00e9ponse...\",\r\n      saveError: \"Une erreur est survenue lors de l'enregistrement.\",\r\n      alreadyAnswered: \"Vous avez d\u00e9j\u00e0 r\u00e9pondu \u00e0 cette invitation.\",\r\n      confirmedMessage: \"Merci d'avoir confirm\u00e9 votre pr\u00e9sence !\",\r\n      maybeMessage: \"Nous esp\u00e9rons que vous pourrez vous joindre \u00e0 nous !\",\r\n      declinedMessage: \"Nous sommes d\u00e9sol\u00e9s que vous ne puissiez pas venir.\"\r\n    },\r\n    en: {\r\n      yes: \"Yes\",\r\n      maybe: \"Maybe\",\r\n      no: \"No\",\r\n      modalTitle: \"Complete your information\",\r\n      clubMemberQuestion: \"Are you a club member?\",\r\n      handicapLabel: \"Approximate handicap\",\r\n      continue: \"Continue\",\r\n      back: \"Back\",\r\n      validate: \"Confirm\",\r\n      submit: \"Submit\",\r\n      chooseSize: \"Choose your polo size\",\r\n      chestMeasurement: \"Chest measurement\",\r\n      acceptTermsTitle: \"Accept the terms\",\r\n      rulesAcceptedLabel: \"I accept the tournament rules\",\r\n      rulesText: \"I confirm that I have read and understood the Beaufort Golf Tour 2026 rules and agree to comply with them.\",\r\n      imageAuthorizationLabel: \"I authorize the use of my image\",\r\n      imageAuthorizationText: \"I authorize the organizers to use photos and videos taken during the event for promotional purposes on their communication materials.\",\r\n      missingCode: \"Invitation code not found in the URL.\",\r\n      chooseAnswer: \"Please choose an answer.\",\r\n      acceptAllAuthorizationsError: \"Please check both authorizations before submitting.\",\r\n      sending: \"Sending your response...\",\r\n      saveError: \"An error occurred while saving.\",\r\n      alreadyAnswered: \"You have already responded to this invitation.\",\r\n      confirmedMessage: \"Thank you for confirming your attendance!\",\r\n      maybeMessage: \"We hope you will be able to join us!\",\r\n      declinedMessage: \"We are sorry you cannot attend.\"\r\n    }\r\n  };\r\n\r\n  let selectedStatus = null;\r\n  let selectedSize = \"XS\";\r\n  let currentLang = \"fr\";\r\n  let alreadyAnswered = false;\r\n\r\n  function getInviteCode() {\r\n    const search = window.location.search;\r\n\r\n    if (!search || !search.startsWith(\"?\")) {\r\n      return \"\";\r\n    }\r\n\r\n    const rawQuery = search.substring(1);\r\n    const params = new URLSearchParams(rawQuery);\r\n\r\n    const possibleKeys = [\r\n      \"contact_id\",\r\n      \"invite_code\",\r\n      \"code\",\r\n      \"id\"\r\n    ];\r\n\r\n    for (const key of possibleKeys) {\r\n      const value = params.get(key);\r\n\r\n      if (value) {\r\n        return sanitizeInviteCode(value);\r\n      }\r\n    }\r\n\r\n    const firstPart = rawQuery.split(\"&\")[0];\r\n\r\n    if (firstPart.includes(\"=\")) {\r\n      return sanitizeInviteCode(firstPart.split(\"=\")[1]);\r\n    }\r\n\r\n    return sanitizeInviteCode(firstPart);\r\n  }\r\n\r\n  function sanitizeInviteCode(value) {\r\n    return String(value || \"\")\r\n      .trim()\r\n      .replace(\/[^a-zA-Z0-9_-]\/g, \"\");\r\n  }\r\n\r\n  function showToast(message, duration = 5000) {\r\n    const toast = document.getElementById(\"toast\");\r\n\r\n    toast.textContent = message;\r\n    toast.style.opacity = \"1\";\r\n    toast.style.transform = \"translateX(-50%) translateY(0)\";\r\n\r\n    setTimeout(() => {\r\n      toast.style.opacity = \"0\";\r\n      toast.style.transform = \"translateX(-50%) translateY(20px)\";\r\n    }, duration);\r\n  }\r\n\r\n  function translatePage(lang) {\r\n    currentLang = lang;\r\n\r\n    document.querySelectorAll(\"[data-i18n]\").forEach(element => {\r\n      const key = element.getAttribute(\"data-i18n\");\r\n\r\n      if (TRANSLATIONS[lang][key]) {\r\n        element.textContent = TRANSLATIONS[lang][key];\r\n      }\r\n    });\r\n\r\n    document.querySelectorAll(\"[data-placeholder-fr]\").forEach(input => {\r\n      input.placeholder = input.getAttribute(`data-placeholder-${lang}`);\r\n    });\r\n\r\n    document.getElementById(\"yes\").textContent = TRANSLATIONS[lang].yes;\r\n    document.getElementById(\"maybe\").textContent = TRANSLATIONS[lang].maybe;\r\n    document.getElementById(\"no\").textContent = TRANSLATIONS[lang].no;\r\n\r\n    document.getElementById(\"langFr\").classList.toggle(\"active\", lang === \"fr\");\r\n    document.getElementById(\"langEn\").classList.toggle(\"active\", lang === \"en\");\r\n  }\r\n\r\n  async function verifyExistingGolfResponse(inviteCode) {\r\n    const cleanInviteCode = sanitizeInviteCode(inviteCode);\r\n\r\n    const response = await fetch(`${VERIFY_RESPONSE_API_URL}?code=${encodeURIComponent(cleanInviteCode)}`, {\r\n      method: \"GET\",\r\n      headers: {\r\n        \"Accept\": \"application\/json\"\r\n      }\r\n    });\r\n\r\n    if (!response.ok) {\r\n      throw new Error(\"Erreur v\u00e9rification r\u00e9ponse\");\r\n    }\r\n\r\n    return await response.json();\r\n  }\r\n\r\n  async function updateOldRsvpStatus(inviteCode, status) {\r\n    const cleanInviteCode = sanitizeInviteCode(inviteCode);\r\n\r\n    const response = await fetch(`${RSVP_API_BASE_URL}\/update-response-status`, {\r\n      method: \"POST\",\r\n      headers: {\r\n        \"Content-Type\": \"application\/json\",\r\n        \"Accept\": \"application\/json\"\r\n      },\r\n      body: JSON.stringify({\r\n        event_id: RSVP_EVENT_ID,\r\n        contact_id: cleanInviteCode,\r\n        status: status\r\n      })\r\n    });\r\n\r\n    if (!response.ok) {\r\n      throw new Error(\"Erreur ancien RSVP\");\r\n    }\r\n\r\n    return await response.json();\r\n  }\r\n\r\n  async function saveGolfResponse(inviteCode, status) {\r\n    const cleanInviteCode = sanitizeInviteCode(inviteCode);\r\n    const clubMember = document.querySelector('input[name=\"club_member\"]:checked')?.value || \"oui\";\r\n    const clubNameInput = document.getElementById(\"clubName\");\r\n    const clubName = clubMember === \"oui\" ? clubNameInput.value.trim() : \"\";\r\n\r\n    const handicap = Number(document.getElementById(\"handicapRange\").value || 0);\r\n    const tournaments = Number(document.getElementById(\"tournamentsCount\").value || 0);\r\n    const rulesAccepted = document.getElementById(\"rulesAccepted\").checked ? 1 : 0;\r\n    const imageAuthorization = document.getElementById(\"imageAuthorization\").checked ? 1 : 0;\r\n\r\n    const payload = {\r\n      invite_code: cleanInviteCode,\r\n      reponse_status: STATUS_MAPPING[status],\r\n      user_info: {\r\n        profile_type: \"amateur\",\r\n        lastname: \"\",\r\n        firstname: \"\",\r\n        gender: \"\",\r\n        phone: \"\",\r\n        email: \"\",\r\n        club_member: clubMember,\r\n        club: clubName,\r\n        handicap: handicap,\r\n        tournaments: tournaments,\r\n        size: selectedSize,\r\n        rules_accepted: rulesAccepted,\r\n        image_authorization: imageAuthorization\r\n      }\r\n    };\r\n\r\n    const response = await fetch(NEW_RESPONSE_API_URL, {\r\n      method: \"POST\",\r\n      headers: {\r\n        \"Content-Type\": \"application\/json\",\r\n        \"Accept\": \"application\/json\"\r\n      },\r\n      body: JSON.stringify(payload)\r\n    });\r\n\r\n    if (!response.ok) {\r\n      throw new Error(\"Erreur nouvelle API\");\r\n    }\r\n\r\n    return await response.json();\r\n  }\r\n\r\n  function setButtonsDisabled(disabled) {\r\n    document.getElementById(\"yes\").disabled = disabled;\r\n    document.getElementById(\"maybe\").disabled = disabled;\r\n    document.getElementById(\"no\").disabled = disabled;\r\n\r\n    const finalSubmit = document.getElementById(\"finalSubmit\");\r\n\r\n    if (finalSubmit) {\r\n      finalSubmit.disabled = disabled;\r\n    }\r\n  }\r\n\r\n  function markExistingResponse(responseStatus) {\r\n    document.querySelectorAll(\".response-btn\").forEach(button => {\r\n      button.classList.remove(\"selected-response\");\r\n    });\r\n\r\n    const buttonId = REVERSE_STATUS_MAPPING[responseStatus];\r\n\r\n    if (buttonId && document.getElementById(buttonId)) {\r\n      document.getElementById(buttonId).classList.add(\"selected-response\");\r\n    }\r\n  }\r\n\r\n  function updateClubFieldVisibility() {\r\n    const clubMember = document.querySelector('input[name=\"club_member\"]:checked')?.value || \"oui\";\r\n    const clubNameInput = document.getElementById(\"clubName\");\r\n\r\n    if (clubMember === \"non\") {\r\n      clubNameInput.value = \"\";\r\n      clubNameInput.style.display = \"none\";\r\n    } else {\r\n      clubNameInput.style.display = \"block\";\r\n    }\r\n  }\r\n\r\n  document.addEventListener(\"DOMContentLoaded\", async function () {\r\n    const inviteCode = getInviteCode();\r\n\r\n    const steps = document.querySelectorAll(\".popup-step\");\r\n    const nextButtons = document.querySelectorAll(\".next-step\");\r\n    const prevButtons = document.querySelectorAll(\".prev-step\");\r\n    const closeButton = document.querySelector(\".popup-close\");\r\n    const overlay = document.getElementById(\"golfPopupOverlay\");\r\n    const handicapRange = document.getElementById(\"handicapRange\");\r\n    const handicapValue = document.getElementById(\"handicapValue\");\r\n    const sizeCards = document.querySelectorAll(\".size-card\");\r\n\r\n    let currentStep = 0;\r\n\r\n    translatePage(\"fr\");\r\n    setButtonsDisabled(true);\r\n\r\n    function showStep(index) {\r\n      steps.forEach((step, i) => {\r\n        step.classList.toggle(\"active\", i === index);\r\n      });\r\n    }\r\n\r\n    function resetFormDefaults() {\r\n      document.querySelector('input[name=\"club_member\"][value=\"oui\"]').checked = true;\r\n      document.getElementById(\"clubName\").value = \"\";\r\n      document.getElementById(\"handicapRange\").value = 0;\r\n      document.getElementById(\"handicapValue\").textContent = \"= 0\";\r\n      document.getElementById(\"tournamentsCount\").value = \"\";\r\n      document.getElementById(\"rulesAccepted\").checked = false;\r\n      document.getElementById(\"imageAuthorization\").checked = false;\r\n\r\n      sizeCards.forEach(card => card.classList.remove(\"active\"));\r\n\r\n      const defaultSizeCard = document.querySelector('.size-card[data-size=\"XS\"]');\r\n\r\n      if (defaultSizeCard) {\r\n        defaultSizeCard.classList.add(\"active\");\r\n      }\r\n\r\n      selectedSize = \"XS\";\r\n      updateClubFieldVisibility();\r\n    }\r\n\r\n    function openPopup(status) {\r\n      if (alreadyAnswered) {\r\n        showToast(TRANSLATIONS[currentLang].alreadyAnswered);\r\n        return;\r\n      }\r\n\r\n      selectedStatus = status;\r\n      currentStep = 0;\r\n      resetFormDefaults();\r\n      showStep(currentStep);\r\n      overlay.style.display = \"flex\";\r\n    }\r\n\r\n    function closePopup() {\r\n      overlay.style.display = \"none\";\r\n    }\r\n\r\n    function updateSizeActive(selectedCard) {\r\n      sizeCards.forEach(card => card.classList.remove(\"active\"));\r\n      selectedCard.classList.add(\"active\");\r\n      selectedSize = selectedCard.dataset.size;\r\n    }\r\n\r\n    handicapValue.textContent = \"= \" + handicapRange.value;\r\n\r\n    if (!inviteCode) {\r\n      setButtonsDisabled(true);\r\n      showToast(TRANSLATIONS[currentLang].missingCode);\r\n      return;\r\n    }\r\n\r\n    try {\r\n      const verification = await verifyExistingGolfResponse(inviteCode);\r\n\r\n      if (verification && verification.success && verification.has_response) {\r\n        alreadyAnswered = true;\r\n        setButtonsDisabled(true);\r\n\r\n        const existingStatus = verification.data?.reponse_status;\r\n\r\n        if (existingStatus) {\r\n          markExistingResponse(existingStatus);\r\n        }\r\n\r\n        showToast(TRANSLATIONS[currentLang].alreadyAnswered);\r\n        return;\r\n      }\r\n\r\n      alreadyAnswered = false;\r\n      setButtonsDisabled(false);\r\n\r\n    } catch (error) {\r\n      console.error(error);\r\n\r\n      alreadyAnswered = false;\r\n      setButtonsDisabled(false);\r\n    }\r\n\r\n    document.getElementById(\"langFr\").addEventListener(\"click\", function () {\r\n      translatePage(\"fr\");\r\n    });\r\n\r\n    document.getElementById(\"langEn\").addEventListener(\"click\", function () {\r\n      translatePage(\"en\");\r\n    });\r\n\r\n    document.getElementById(\"yes\").addEventListener(\"click\", function () {\r\n      openPopup(\"yes\");\r\n    });\r\n\r\n    document.getElementById(\"maybe\").addEventListener(\"click\", function () {\r\n      openPopup(\"maybe\");\r\n    });\r\n\r\n    document.getElementById(\"no\").addEventListener(\"click\", function () {\r\n      openPopup(\"no\");\r\n    });\r\n\r\n    document.querySelectorAll('input[name=\"club_member\"]').forEach(radio => {\r\n      radio.addEventListener(\"change\", updateClubFieldVisibility);\r\n    });\r\n\r\n    nextButtons.forEach(button => {\r\n      button.addEventListener(\"click\", function () {\r\n        if (currentStep < steps.length - 1) {\r\n          currentStep++;\r\n          showStep(currentStep);\r\n        }\r\n      });\r\n    });\r\n\r\n    prevButtons.forEach(button => {\r\n      button.addEventListener(\"click\", function () {\r\n        if (currentStep > 0) {\r\n          currentStep--;\r\n          showStep(currentStep);\r\n        }\r\n      });\r\n    });\r\n\r\n    closeButton.addEventListener(\"click\", closePopup);\r\n\r\n    overlay.addEventListener(\"click\", function (event) {\r\n      if (event.target === overlay) {\r\n        closePopup();\r\n      }\r\n    });\r\n\r\n    handicapRange.addEventListener(\"input\", function () {\r\n      handicapValue.textContent = \"= \" + handicapRange.value;\r\n    });\r\n\r\n    sizeCards.forEach(card => {\r\n      card.addEventListener(\"click\", function () {\r\n        updateSizeActive(card);\r\n      });\r\n    });\r\n\r\n    document.getElementById(\"finalSubmit\").addEventListener(\"click\", async function () {\r\n      if (alreadyAnswered) {\r\n        closePopup();\r\n        showToast(TRANSLATIONS[currentLang].alreadyAnswered);\r\n        return;\r\n      }\r\n\r\n      if (!selectedStatus) {\r\n        showToast(TRANSLATIONS[currentLang].chooseAnswer);\r\n        return;\r\n      }\r\n\r\n      const rulesAccepted = document.getElementById(\"rulesAccepted\").checked;\r\n      const imageAuthorization = document.getElementById(\"imageAuthorization\").checked;\r\n\r\n      if (!rulesAccepted || !imageAuthorization) {\r\n        showToast(TRANSLATIONS[currentLang].acceptAllAuthorizationsError);\r\n        return;\r\n      }\r\n\r\n      try {\r\n        setButtonsDisabled(true);\r\n\r\n        await updateOldRsvpStatus(inviteCode, selectedStatus);\r\n        await saveGolfResponse(inviteCode, selectedStatus);\r\n\r\n        alreadyAnswered = true;\r\n        closePopup();\r\n\r\n        document.getElementById(selectedStatus).classList.add(\"selected-response\");\r\n\r\n        const successMessages = {\r\n          yes: TRANSLATIONS[currentLang].confirmedMessage,\r\n          maybe: TRANSLATIONS[currentLang].maybeMessage,\r\n          no: TRANSLATIONS[currentLang].declinedMessage\r\n        };\r\n\r\n        showToast(successMessages[selectedStatus]);\r\n\r\n      } catch (error) {\r\n        console.error(error);\r\n        showToast(TRANSLATIONS[currentLang].saveError);\r\n        setButtonsDisabled(false);\r\n      }\r\n    });\r\n  });\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2f753a2e elementor-countdown--label-block elementor-widget elementor-widget-countdown\" data-id=\"2f753a2e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"countdown.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-countdown-wrapper\" data-date=\"1780905600\">\n\t\t\t<div class=\"elementor-countdown-item\"><span class=\"elementor-countdown-digits elementor-countdown-days\"><\/span> <span class=\"elementor-countdown-label\">Days<\/span><\/div><div class=\"elementor-countdown-item\"><span class=\"elementor-countdown-digits elementor-countdown-hours\"><\/span> <span class=\"elementor-countdown-label\">Hours<\/span><\/div><div class=\"elementor-countdown-item\"><span class=\"elementor-countdown-digits elementor-countdown-minutes\"><\/span> <span class=\"elementor-countdown-label\">Minutes<\/span><\/div><div class=\"elementor-countdown-item\"><span class=\"elementor-countdown-digits elementor-countdown-seconds\"><\/span> <span class=\"elementor-countdown-label\">Seconds<\/span><\/div>\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-e970359 e-con-full e-flex e-con e-child\" data-id=\"e970359\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-34e08684 elementor-widget elementor-widget-heading\" data-id=\"34e08684\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Votre code d\u2019acc\u00e8s unique <\/h2>\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-7bf83217 e-con-full e-flex e-con e-child\" data-id=\"7bf83217\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-2d72cf83 e-con-full e-flex e-con e-child\" data-id=\"2d72cf83\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-621308b5 e-con-full e-flex e-con e-child\" data-id=\"621308b5\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-28e54e0f elementor-widget elementor-widget-heading\" data-id=\"28e54e0f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Code :<\/h2>\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-4d4af1 e-con-full e-flex e-con e-child\" data-id=\"4d4af1\" data-element_type=\"container\" data-e-type=\"container\" id=\"invite-code-display\">\n\t\t\t\t<div class=\"elementor-element elementor-element-3daf583d elementor-widget elementor-widget-html\" data-id=\"3daf583d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- PARTIE 5: Affichage du code invit\u00e9 -->\r\n<div\r\n    style=\"\r\n        width: 100%;\r\n        max-width: none;\r\n        margin: 0 auto;\r\n        padding: 0;\r\n        display: flex;\r\n        justify-content: center;\r\n        align-items: center;\r\n        text-align: center;\r\n        box-sizing: border-box;\r\n    \"\r\n>\r\n    <div \r\n        style=\"\r\n            color: #ffff;\r\n            font-size: 16px;\r\n            font-family: Inter, Arial, sans-serif;\r\n            font-weight: 700;\r\n            line-height: 1.2;\r\n            word-wrap: break-word;\r\n            margin: 0 auto;\r\n            padding: 0;\r\n            text-align: center;\r\n            width: 100%;\r\n            display: block;\r\n            box-sizing: border-box;\r\n        \">\r\n        <span \r\n            id=\"invite-code-display\"\r\n            style=\"color: #64BF33;\"\r\n        ><\/span>\r\n    <\/div>\r\n<\/div>\r\n\r\n<!-- Script pour la partie 5: Affichage du code invit\u00e9 -->\r\n<script>\r\n    const INVITE_CODE_EVENT_ID = \"bt6\";\r\n\r\n    function getInviteCode() {\r\n        const queryString = window.location.search;\r\n\r\n        if (!queryString.startsWith('?')) {\r\n            return '';\r\n        }\r\n\r\n        const cleanCode = queryString\r\n            .substring(1)\r\n            .split('&')\r\n            .filter(function(item) {\r\n                return item && !item.startsWith('NO_FRAME=');\r\n            })\r\n            .shift();\r\n\r\n        return cleanCode ? cleanCode.trim() : '';\r\n    }\r\n\r\n    function displayInviteCode() {\r\n        const inviteCode = getInviteCode();\r\n\r\n        if (inviteCode) {\r\n            const displayElement = document.getElementById('invite-code-display');\r\n            displayElement.textContent = inviteCode.toUpperCase();\r\n            displayElement.style.color = '#64BF33';\r\n        }\r\n    }\r\n\r\n    document.addEventListener('DOMContentLoaded', function() {\r\n        displayInviteCode();\r\n    });\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5b62393f elementor-widget elementor-widget-text-editor\" data-id=\"5b62393f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Pr\u00e9sentez ce QR code \u00e0 l\u2019entr\u00e9e pour acc\u00e9der \u00e0 l\u2019\u00e9v\u00e8nement<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-3c27cfce e-con-full e-flex e-con e-child\" data-id=\"3c27cfce\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-3a369653 elementor-widget-mobile__width-initial elementor-widget elementor-widget-html\" data-id=\"3a369653\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- PARTIE 4: G\u00e9n\u00e9ration de QR Code -->\r\n<!--<div style=\"text-align: center; margin: 0; padding: 0; width: 100%;\">-->\r\n<!--    <div -->\r\n<!--        id=\"qrcode-container\" -->\r\n<!--        style=\"-->\r\n<!--            display: flex;-->\r\n<!--            justify-content: center;-->\r\n<!--            align-items: center;-->\r\n<!--            width: 200px;-->\r\n<!--            height: 200px;-->\r\n<!--            margin: 0 auto;-->\r\n<!--            padding: 0;-->\r\n<!--            cursor: pointer;-->\r\n<!--            overflow: hidden;-->\r\n<!--        \">-->\r\n<!--    <\/div>-->\r\n<!--<\/div>-->\r\n\r\n<!-- Script pour la partie 4: G\u00e9n\u00e9ration de QR Code -->\r\n<!--<script>-->\r\n<!--    const QR_EVENT_ID = \"bgt\";-->\r\n\r\n<!--    function getQrGuestCode() {-->\r\n<!--        const queryString = window.location.search;-->\r\n\r\n<!--        if (queryString.startsWith('?')) {-->\r\n<!--            return queryString-->\r\n<!--                .substring(1)-->\r\n<!--                .split('&')[0]-->\r\n<!--                .trim();-->\r\n<!--        }-->\r\n\r\n<!--        return '';-->\r\n<!--    }-->\r\n\r\n<!--    function generateQRCode(text) {-->\r\n<!--        const container = document.getElementById('qrcode-container');-->\r\n<!--        container.innerHTML = '';-->\r\n\r\n<!--        const qr = document.createElement('img');-->\r\n<!--        qr.src = `https:\/\/api.qrserver.com\/v1\/create-qr-code\/?size=102x102&data=${encodeURIComponent(text)}`;-->\r\n<!--        qr.alt = \"QR Code\";-->\r\n\r\n<!--        qr.style.width = \"250px\";-->\r\n<!--        qr.style.height = \"250px\";-->\r\n<!--        qr.style.display = \"block\";-->\r\n<!--        qr.style.margin = \"0 auto\";-->\r\n<!--        qr.style.borderRadius = \"0\";-->\r\n<!--        qr.style.boxShadow = \"none\";-->\r\n\r\n<!--        container.appendChild(qr);-->\r\n<!--    }-->\r\n\r\n<!--    document.addEventListener('DOMContentLoaded', function() {-->\r\n<!--        const contactId = getQrGuestCode();-->\r\n\r\n<!--        if (contactId) {-->\r\n<!--            generateQRCode(contactId);-->\r\n<!--        }-->\r\n<!--    });-->\r\n<!--<\/script>-->\r\n\r\n\r\n<!-- PARTIE 4: G\u00e9n\u00e9ration de QR Code -->\r\n<!--<div style=\"text-align: center; margin: 0; padding: 0; width: 100%;\">-->\r\n<!--    <div -->\r\n<!--        id=\"qrcode-container\" -->\r\n<!--        style=\"-->\r\n<!--            width: 103.07px;-->\r\n<!--            height: 101.45px;-->\r\n<!--            min-width: 103.07px;-->\r\n<!--            position: relative;-->\r\n<!--            overflow: hidden;-->\r\n<!--            outline: 1.08px solid white;-->\r\n<!--            outline-offset: -0.54px;-->\r\n<!--            background: white;-->\r\n<!--            display: flex;-->\r\n<!--            justify-content: center;-->\r\n<!--            align-items: center;-->\r\n<!--            margin: 0 auto;-->\r\n<!--            padding: 0;-->\r\n<!--            cursor: pointer;-->\r\n<!--            box-sizing: border-box;-->\r\n<!--        \">-->\r\n<!--    <\/div>-->\r\n<!--<\/div>-->\r\n\r\n<!-- Script pour la partie 4: G\u00e9n\u00e9ration de QR Code -->\r\n<!--<script>-->\r\n<!--    const QR_EVENT_ID = \"bgt\";-->\r\n\r\n<!--    function getQrGuestCode() {-->\r\n<!--        const queryString = window.location.search;-->\r\n\r\n<!--        if (queryString.startsWith('?')) {-->\r\n<!--            return queryString-->\r\n<!--                .substring(1)-->\r\n<!--                .split('&')[0]-->\r\n<!--                .trim();-->\r\n<!--        }-->\r\n\r\n<!--        return '';-->\r\n<!--    }-->\r\n\r\n<!--    function generateQRCode(text) {-->\r\n<!--        const container = document.getElementById('qrcode-container');-->\r\n<!--        container.innerHTML = '';-->\r\n\r\n<!--        const qr = document.createElement('img');-->\r\n<!--        qr.src = `https:\/\/api.qrserver.com\/v1\/create-qr-code\/?size=102x102&margin=0&data=${encodeURIComponent(text)}`;-->\r\n<!--        qr.alt = \"QR Code\";-->\r\n\r\n<!--        qr.style.width = \"101.92px\";-->\r\n<!--        qr.style.height = \"101.97px\";-->\r\n<!--        qr.style.display = \"block\";-->\r\n<!--        qr.style.margin = \"0 auto\";-->\r\n<!--        qr.style.borderRadius = \"0\";-->\r\n<!--        qr.style.boxShadow = \"none\";-->\r\n\r\n<!--        container.appendChild(qr);-->\r\n<!--    }-->\r\n\r\n<!--    document.addEventListener('DOMContentLoaded', function() {-->\r\n<!--        const contactId = getQrGuestCode();-->\r\n\r\n<!--        if (contactId) {-->\r\n<!--            generateQRCode(contactId);-->\r\n<!--        }-->\r\n<!--    });-->\r\n<!--<\/script>-->\r\n\r\n\r\n<div style=\"text-align: center; margin: 0; padding: 0; width: 100%;\">\r\n  <div\r\n    id=\"qrcode-container\"\r\n    style=\"\r\n      width: 103.07px;\r\n      height: 101.45px;\r\n      min-width: 103.07px;\r\n      position: relative;\r\n      overflow: hidden;\r\n      outline: 1.08px solid white;\r\n      outline-offset: -0.54px;\r\n      background: white;\r\n      display: flex;\r\n      justify-content: center;\r\n      align-items: center;\r\n      margin: 0 auto;\r\n      padding: 0;\r\n      cursor: pointer;\r\n      box-sizing: border-box;\r\n    \">\r\n  <\/div>\r\n\r\n  <button\r\n    id=\"openQrPopupBtn\"\r\n    type=\"button\"\r\n    style=\"\r\n      margin-top: 8px;\r\n      width: 103.07px;\r\n      height: 28px;\r\n      border: none;\r\n      background: #ffff;\r\n      color: #c4174e;\r\n      font-size: 11px;\r\n      font-weight: bold;\r\n      cursor: pointer;\r\n      text-align: center;\r\n      padding: 0;\r\n      box-sizing: border-box;\r\n    \">\r\n    Cliquez ici\r\n  <\/button>\r\n<\/div>\r\n\r\n<div\r\n  id=\"qrPopupOverlay\"\r\n  style=\"\r\n    position: fixed;\r\n    inset: 0;\r\n    width: 100%;\r\n    height: 100vh;\r\n    background: rgba(0, 0, 0, 0.65);\r\n    display: none;\r\n    align-items: center;\r\n    justify-content: center;\r\n    z-index: 9999999;\r\n    padding: 20px;\r\n    box-sizing: border-box;\r\n  \">\r\n\r\n  <div\r\n    style=\"\r\n      position: relative;\r\n      background: #ffffff;\r\n      padding: 28px;\r\n      box-sizing: border-box;\r\n      max-width: 90vw;\r\n      max-height: 90vh;\r\n    \">\r\n\r\n    <button\r\n      id=\"closeQrPopupBtn\"\r\n      type=\"button\"\r\n      style=\"\r\n        position: absolute;\r\n        top: -14px;\r\n        right: -14px;\r\n        width: 34px;\r\n        height: 34px;\r\n        border: none;\r\n        border-radius: 50%;\r\n        background: #014035;\r\n        color: #ffffff;\r\n        font-size: 24px;\r\n        line-height: 34px;\r\n        cursor: pointer;\r\n        padding: 0;\r\n      \">\r\n      \u00d7\r\n    <\/button>\r\n\r\n    <div\r\n      id=\"qrcode-popup-container\"\r\n      style=\"\r\n        width: 280px;\r\n        height: 280px;\r\n        background: #ffffff;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n      \">\r\n    <\/div>\r\n\r\n  <\/div>\r\n<\/div>\r\n\r\n<script>\r\n  const QR_EVENT_ID = \"bt6\";\r\n\r\n  function getQrGuestCode() {\r\n    const queryString = window.location.search;\r\n\r\n    if (queryString.startsWith(\"?\")) {\r\n      return queryString\r\n        .substring(1)\r\n        .split(\"&\")[0]\r\n        .trim();\r\n    }\r\n\r\n    return \"\";\r\n  }\r\n\r\n  function generateQRCode(text) {\r\n    const container = document.getElementById(\"qrcode-container\");\r\n    container.innerHTML = \"\";\r\n\r\n    const qr = document.createElement(\"img\");\r\n    qr.src = `https:\/\/api.qrserver.com\/v1\/create-qr-code\/?size=102x102&margin=0&data=${encodeURIComponent(text)}`;\r\n    qr.alt = \"QR Code\";\r\n\r\n    qr.style.width = \"101.92px\";\r\n    qr.style.height = \"101.97px\";\r\n    qr.style.display = \"block\";\r\n    qr.style.margin = \"0 auto\";\r\n    qr.style.borderRadius = \"0\";\r\n    qr.style.boxShadow = \"none\";\r\n\r\n    container.appendChild(qr);\r\n  }\r\n\r\n  function generateBigQRCode(text) {\r\n    const popupContainer = document.getElementById(\"qrcode-popup-container\");\r\n    popupContainer.innerHTML = \"\";\r\n\r\n    const qr = document.createElement(\"img\");\r\n    qr.src = `https:\/\/api.qrserver.com\/v1\/create-qr-code\/?size=280x280&margin=0&data=${encodeURIComponent(text)}`;\r\n    qr.alt = \"QR Code agrandi\";\r\n\r\n    qr.style.width = \"280px\";\r\n    qr.style.height = \"280px\";\r\n    qr.style.display = \"block\";\r\n    qr.style.margin = \"0 auto\";\r\n    qr.style.borderRadius = \"0\";\r\n    qr.style.boxShadow = \"none\";\r\n\r\n    popupContainer.appendChild(qr);\r\n  }\r\n\r\n  document.addEventListener(\"DOMContentLoaded\", function () {\r\n    const contactId = getQrGuestCode();\r\n\r\n    const qrContainer = document.getElementById(\"qrcode-container\");\r\n    const openQrPopupBtn = document.getElementById(\"openQrPopupBtn\");\r\n    const qrPopupOverlay = document.getElementById(\"qrPopupOverlay\");\r\n    const closeQrPopupBtn = document.getElementById(\"closeQrPopupBtn\");\r\n\r\n    if (contactId) {\r\n      generateQRCode(contactId);\r\n      generateBigQRCode(contactId);\r\n    }\r\n\r\n    function openQrPopup() {\r\n      if (!contactId) {\r\n        return;\r\n      }\r\n\r\n      qrPopupOverlay.style.display = \"flex\";\r\n    }\r\n\r\n    function closeQrPopup() {\r\n      qrPopupOverlay.style.display = \"none\";\r\n    }\r\n\r\n    qrContainer.addEventListener(\"click\", openQrPopup);\r\n    openQrPopupBtn.addEventListener(\"click\", openQrPopup);\r\n    closeQrPopupBtn.addEventListener(\"click\", closeQrPopup);\r\n\r\n    qrPopupOverlay.addEventListener(\"click\", function (event) {\r\n      if (event.target === qrPopupOverlay) {\r\n        closeQrPopup();\r\n      }\r\n    });\r\n  });\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-10a6a19a e-con-full elementor-hidden-desktop elementor-hidden-tablet elementor-hidden-mobile e-flex e-con e-child\" data-id=\"10a6a19a\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;gradient&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-31a42a28 elementor-hidden-desktop elementor-hidden-tablet elementor-hidden-mobile elementor-widget elementor-widget-heading\" data-id=\"31a42a28\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">AU PROGRAMME<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2ad17a40 e-n-tabs-none elementor-hidden-desktop elementor-hidden-tablet elementor-hidden-mobile elementor-widget elementor-widget-n-tabs\" data-id=\"2ad17a40\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;tabs_justify_horizontal_mobile&quot;:&quot;stretch&quot;,&quot;horizontal_scroll_mobile&quot;:&quot;enable&quot;,&quot;horizontal_scroll&quot;:&quot;disable&quot;}\" data-widget_type=\"nested-tabs.default\">\n\t\t\t\t\t\t\t<div class=\"e-n-tabs\" data-widget-number=\"718371392\" aria-label=\"Onglets. Ouvrez des \u00e9l\u00e9ments avec Entrer ou Espace, fermez-les avec Echape et naviguez \u00e0 l&#039;aide des touches fl\u00e9ch\u00e9es.\">\n\t\t\t<div class=\"e-n-tabs-heading\" role=\"tablist\">\n\t\t\t\t\t<button id=\"e-n-tab-title-7183713921\" data-tab-title-id=\"e-n-tab-title-7183713921\" class=\"e-n-tab-title\" aria-selected=\"true\" data-tab-index=\"1\" role=\"tab\" tabindex=\"0\" aria-controls=\"e-n-tab-content-7183713921\" style=\"--n-tabs-title-order: 1;\">\n\t\t\t\t\t\t<span class=\"e-n-tab-title-text\">\n\t\t\t\tVendredi 12 Juin\t\t\t<\/span>\n\t\t<\/button>\n\t\t\t\t<button id=\"e-n-tab-title-7183713922\" data-tab-title-id=\"e-n-tab-title-7183713922\" class=\"e-n-tab-title\" aria-selected=\"false\" data-tab-index=\"2\" role=\"tab\" tabindex=\"-1\" aria-controls=\"e-n-tab-content-7183713922\" style=\"--n-tabs-title-order: 2;\">\n\t\t\t\t\t\t<span class=\"e-n-tab-title-text\">\n\t\t\t\tSamedi 13 Juin\t\t\t<\/span>\n\t\t<\/button>\n\t\t\t\t\t<\/div>\n\t\t\t<div class=\"e-n-tabs-content\">\n\t\t\t\t<div id=\"e-n-tab-content-7183713921\" role=\"tabpanel\" aria-labelledby=\"e-n-tab-title-7183713921\" data-tab-index=\"1\" style=\"--n-tabs-title-order: 1;\" class=\"e-active elementor-element elementor-element-5cbcf7be e-con-full e-flex e-con e-child\" data-id=\"5cbcf7be\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6ab61920 elementor-mobile-align-start elementor-icon-list--layout-traditional elementor-list-item-link-full_width elementor-widget elementor-widget-icon-list\" data-id=\"6ab61920\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon-list.default\">\n\t\t\t\t\t\t\t<ul class=\"elementor-icon-list-items\">\n\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\">\n\t\t\t\t\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"13\" height=\"31\" viewBox=\"0 0 13 31\" fill=\"none\"><line x1=\"6.5\" y1=\"13\" x2=\"6.5\" y2=\"31\" stroke=\"black\"><\/line><rect width=\"13\" height=\"13\" rx=\"6.5\" fill=\"black\"><\/rect><\/svg>\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">07h00 : Petit-D\u00e9jeuner<\/span>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\">\n\t\t\t\t\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"13\" height=\"31\" viewBox=\"0 0 13 31\" fill=\"none\"><line x1=\"6.5\" y1=\"13\" x2=\"6.5\" y2=\"31\" stroke=\"black\"><\/line><rect width=\"13\" height=\"13\" rx=\"6.5\" fill=\"black\"><\/rect><\/svg>\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">07h30 : D\u00e9but comp\u00e9tition amateurs<\/span>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\">\n\t\t\t\t\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"13\" height=\"31\" viewBox=\"0 0 13 31\" fill=\"none\"><line x1=\"6.5\" y1=\"13\" x2=\"6.5\" y2=\"31\" stroke=\"black\"><\/line><rect width=\"13\" height=\"13\" rx=\"6.5\" fill=\"black\"><\/rect><\/svg>\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">09h - 14h : Initiation Golf au pratice<\/span>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\">\n\t\t\t\t\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"13\" height=\"31\" viewBox=\"0 0 13 31\" fill=\"none\"><line x1=\"6.5\" y1=\"13\" x2=\"6.5\" y2=\"31\" stroke=\"black\"><\/line><rect width=\"13\" height=\"13\" rx=\"6.5\" fill=\"black\"><\/rect><\/svg>\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">13h00 : Comp\u00e9tition Jeunes<\/span>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t<\/ul>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2108a0fe elementor-icon-list--layout-inline elementor-mobile-align-start elementor-list-item-link-full_width elementor-widget elementor-widget-icon-list\" data-id=\"2108a0fe\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon-list.default\">\n\t\t\t\t\t\t\t<ul class=\"elementor-icon-list-items elementor-inline-items\">\n\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item elementor-inline-item\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\">\n\t\t\t\t\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"13\" height=\"13\" viewBox=\"0 0 13 13\" fill=\"none\"><rect width=\"13\" height=\"13\" rx=\"6.5\" fill=\"black\"><\/rect><\/svg>\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">16h00 : Remise de prix aux jeunes<\/span>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t<\/ul>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div id=\"e-n-tab-content-7183713922\" role=\"tabpanel\" aria-labelledby=\"e-n-tab-title-7183713922\" data-tab-index=\"2\" style=\"--n-tabs-title-order: 2;\" class=\" elementor-element elementor-element-3f890b2d e-con-full e-flex e-con e-child\" data-id=\"3f890b2d\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5b27f019 elementor-mobile-align-start elementor-icon-list--layout-traditional elementor-list-item-link-full_width elementor-widget elementor-widget-icon-list\" data-id=\"5b27f019\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon-list.default\">\n\t\t\t\t\t\t\t<ul class=\"elementor-icon-list-items\">\n\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\">\n\t\t\t\t\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"13\" height=\"31\" viewBox=\"0 0 13 31\" fill=\"none\"><line x1=\"6.5\" y1=\"13\" x2=\"6.5\" y2=\"31\" stroke=\"black\"><\/line><rect width=\"13\" height=\"13\" rx=\"6.5\" fill=\"black\"><\/rect><\/svg>\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">07h00 : Petit-D\u00e9jeuner<\/span>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\">\n\t\t\t\t\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"13\" height=\"31\" viewBox=\"0 0 13 31\" fill=\"none\"><line x1=\"6.5\" y1=\"13\" x2=\"6.5\" y2=\"31\" stroke=\"black\"><\/line><rect width=\"13\" height=\"13\" rx=\"6.5\" fill=\"black\"><\/rect><\/svg>\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">07h30 : D\u00e9but comp\u00e9tition amateurs<\/span>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\">\n\t\t\t\t\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"13\" height=\"31\" viewBox=\"0 0 13 31\" fill=\"none\"><line x1=\"6.5\" y1=\"13\" x2=\"6.5\" y2=\"31\" stroke=\"black\"><\/line><rect width=\"13\" height=\"13\" rx=\"6.5\" fill=\"black\"><\/rect><\/svg>\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">09h-14h : Initiation Golf au practice<\/span>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t<\/ul>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3a9d6977 elementor-icon-list--layout-inline elementor-mobile-align-start elementor-list-item-link-full_width elementor-widget elementor-widget-icon-list\" data-id=\"3a9d6977\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon-list.default\">\n\t\t\t\t\t\t\t<ul class=\"elementor-icon-list-items elementor-inline-items\">\n\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item elementor-inline-item\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\">\n\t\t\t\t\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"13\" height=\"13\" viewBox=\"0 0 13 13\" fill=\"none\"><rect width=\"13\" height=\"13\" rx=\"6.5\" fill=\"black\"><\/rect><\/svg>\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">18h00 : Cocktail Dinatoire<\/span>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t<\/ul>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7d033212 elementor-widget elementor-widget-html\" data-id=\"7d033212\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div class=\"bgt-programme-widget\">\r\n  <div class=\"bgt-programme-title\">AU PROGRAMME<\/div>\r\n\r\n  <div class=\"bgt-programme-card\">\r\n    <div class=\"bgt-programme-tabs\">\r\n      <button class=\"bgt-tab bgt-tab-active\" type=\"button\" data-day=\"friday\">\r\n        Vendredi 12 Juin\r\n      <\/button>\r\n\r\n      <button class=\"bgt-tab\" type=\"button\" data-day=\"saturday\">\r\n        Samedi 13 Juin\r\n      <\/button>\r\n    <\/div>\r\n\r\n    <div class=\"bgt-programme-content\">\r\n      <div class=\"bgt-timeline\" id=\"bgtTimeline\">\r\n        <div class=\"bgt-timeline-item\">\r\n          <div class=\"bgt-dot\"><\/div>\r\n          <div class=\"bgt-event-text\">07h00 : Petit-D\u00e9jeuner<\/div>\r\n        <\/div>\r\n\r\n        <div class=\"bgt-line\"><\/div>\r\n\r\n        <div class=\"bgt-timeline-item\">\r\n          <div class=\"bgt-dot\"><\/div>\r\n          <div class=\"bgt-event-text\">07h30 : D\u00e9but comp\u00e9tition amateurs<\/div>\r\n        <\/div>\r\n\r\n        <div class=\"bgt-line\"><\/div>\r\n\r\n        <div class=\"bgt-timeline-item\">\r\n          <div class=\"bgt-dot\"><\/div>\r\n          <div class=\"bgt-event-text\">09h - 14h : Initiation Golf au practice<\/div>\r\n        <\/div>\r\n\r\n        <div class=\"bgt-line\"><\/div>\r\n\r\n        <div class=\"bgt-timeline-item\">\r\n          <div class=\"bgt-dot\"><\/div>\r\n          <div class=\"bgt-event-text\">13h00 : Comp\u00e9tition Jeunes<\/div>\r\n        <\/div>\r\n\r\n        <div class=\"bgt-line\"><\/div>\r\n\r\n        <div class=\"bgt-timeline-item\">\r\n          <div class=\"bgt-dot\"><\/div>\r\n          <div class=\"bgt-event-text\">16h00 : Remise de prix aux jeunes<\/div>\r\n        <\/div>\r\n      <\/div>\r\n    <\/div>\r\n  <\/div>\r\n<\/div>\r\n\r\n<style>\r\n  .bgt-programme-widget {\r\n    width: 100%;\r\n    max-width: 780px;\r\n    margin: 0 auto;\r\n    display: flex;\r\n    flex-direction: column;\r\n    align-items: center;\r\n    gap: 18px;\r\n    box-sizing: border-box;\r\n  }\r\n\r\n  .bgt-programme-title {\r\n    width: 100%;\r\n    text-align: center;\r\n    color: #B38634;\r\n    font-size: 22px;\r\n    font-weight: 500;\r\n    line-height: 22px;\r\n    word-wrap: break-word;\r\n  }\r\n\r\n  .bgt-programme-card {\r\n    width: 100%;\r\n    box-sizing: border-box;\r\n  }\r\n\r\n  .bgt-programme-tabs {\r\n    width: 100%;\r\n    display: flex;\r\n    align-items: center;\r\n  }\r\n\r\n  .bgt-tab {\r\n    flex: 1 1 0;\r\n    height: 38px;\r\n    padding: 6px 15px;\r\n    box-sizing: border-box;\r\n    overflow: hidden;\r\n    display: flex;\r\n    justify-content: center;\r\n    align-items: center;\r\n    gap: 10px;\r\n\r\n    border: none;\r\n    border-radius: 0;\r\n    outline: none;\r\n    background: transparent !important;\r\n\r\n    text-align: center;\r\n    color: #002F25;\r\n    font-size: 20px;\r\n    font-weight: 500;\r\n    line-height: 20px;\r\n    word-wrap: break-word;\r\n\r\n    cursor: pointer;\r\n    box-shadow: none;\r\n  }\r\n\r\n  .bgt-tab:hover,\r\n  .bgt-tab:focus {\r\n    background: transparent !important;\r\n    color: #002F25 !important;\r\n    outline: none;\r\n    box-shadow: none;\r\n  }\r\n\r\n  .bgt-tab-active,\r\n  .bgt-tab-active:hover,\r\n  .bgt-tab-active:focus {\r\n    background: #002F25 !important;\r\n    color: #ffffff !important;\r\n  }\r\n\r\n  .bgt-programme-content {\r\n    width: 100%;\r\n    background: #ffffff;\r\n    padding: 34px 32px;\r\n    box-sizing: border-box;\r\n    overflow: hidden;\r\n  }\r\n\r\n  .bgt-timeline {\r\n    width: 100%;\r\n    display: flex;\r\n    flex-direction: column;\r\n    align-items: flex-start;\r\n  }\r\n\r\n  .bgt-timeline-item {\r\n    display: flex;\r\n    align-items: center;\r\n    gap: 20px;\r\n    width: 100%;\r\n  }\r\n\r\n  .bgt-dot {\r\n    width: 26px;\r\n    height: 26px;\r\n    min-width: 26px;\r\n    background: #000000;\r\n    border-radius: 50%;\r\n  }\r\n\r\n  .bgt-line {\r\n    width: 2px;\r\n    height: 34px;\r\n    background: #000000;\r\n    margin-left: 12px;\r\n  }\r\n\r\n  .bgt-event-text {\r\n    color: #002F25;\r\n    font-size: 32px;\r\n    font-weight: 400;\r\n    line-height: 1.2;\r\n    word-wrap: break-word;\r\n  }\r\n\r\n  @media (max-width: 768px) {\r\n    .bgt-programme-widget {\r\n      max-width: 100%;\r\n    }\r\n\r\n    .bgt-programme-content {\r\n      padding: 24px 20px;\r\n    }\r\n\r\n    .bgt-tab {\r\n      font-size: 18px;\r\n      line-height: 18px;\r\n      padding: 6px 10px;\r\n    }\r\n\r\n    .bgt-event-text {\r\n      font-size: 22px;\r\n    }\r\n\r\n    .bgt-dot {\r\n      width: 20px;\r\n      height: 20px;\r\n      min-width: 20px;\r\n    }\r\n\r\n    .bgt-line {\r\n      height: 28px;\r\n      margin-left: 9px;\r\n    }\r\n\r\n    .bgt-timeline-item {\r\n      gap: 14px;\r\n    }\r\n  }\r\n\r\n  @media (max-width: 480px) {\r\n    .bgt-programme-title {\r\n      font-size: 22px;\r\n      line-height: 22px;\r\n    }\r\n\r\n    .bgt-tab {\r\n      font-size: 16px;\r\n      line-height: 16px;\r\n      height: 38px;\r\n    }\r\n\r\n    .bgt-programme-content {\r\n      padding: 20px 16px;\r\n    }\r\n\r\n    .bgt-event-text {\r\n      font-size: 16px;\r\n      line-height: 18px;\r\n    }\r\n\r\n    .bgt-dot {\r\n      width: 13px;\r\n      height: 13px;\r\n      min-width: 13px;\r\n    }\r\n\r\n    .bgt-line {\r\n      width: 1px;\r\n      height: 18px;\r\n      margin-left: 6px;\r\n    }\r\n\r\n    .bgt-timeline-item {\r\n      gap: 10px;\r\n    }\r\n  }\r\n<\/style>\r\n\r\n<script>\r\n  (function () {\r\n    const programmes = {\r\n      friday: [\r\n        \"07h00 : Petit-D\u00e9jeuner\",\r\n        \"07h30 : D\u00e9but comp\u00e9tition amateurs\",\r\n        \"09h - 14h : Initiation Golf au practice\",\r\n        \"13h00 : Comp\u00e9tition Jeunes\",\r\n        \"16h00 : Remise de prix aux jeunes\"\r\n      ],\r\n      saturday: [\r\n        \"07h00 : Petit-D\u00e9jeuner\",\r\n        \"07h30 : D\u00e9but comp\u00e9tition amateurs\",\r\n        \"09h-14h : Initiation Golf au practice\",\r\n        \"18h00 : Cocktail Dinatoire\"\r\n      ]\r\n    };\r\n\r\n    function renderProgramme(day) {\r\n      const timeline = document.getElementById(\"bgtTimeline\");\r\n\r\n      if (!timeline || !programmes[day]) {\r\n        return;\r\n      }\r\n\r\n      timeline.innerHTML = \"\";\r\n\r\n      programmes[day].forEach(function (item, index) {\r\n        const timelineItem = document.createElement(\"div\");\r\n        timelineItem.className = \"bgt-timeline-item\";\r\n\r\n        const dot = document.createElement(\"div\");\r\n        dot.className = \"bgt-dot\";\r\n\r\n        const text = document.createElement(\"div\");\r\n        text.className = \"bgt-event-text\";\r\n        text.textContent = item;\r\n\r\n        timelineItem.appendChild(dot);\r\n        timelineItem.appendChild(text);\r\n        timeline.appendChild(timelineItem);\r\n\r\n        if (index < programmes[day].length - 1) {\r\n          const line = document.createElement(\"div\");\r\n          line.className = \"bgt-line\";\r\n          timeline.appendChild(line);\r\n        }\r\n      });\r\n    }\r\n\r\n    function initProgrammeTabs() {\r\n      const tabs = document.querySelectorAll(\".bgt-tab\");\r\n\r\n      if (!tabs.length) {\r\n        return;\r\n      }\r\n\r\n      tabs.forEach(function (tab) {\r\n        tab.addEventListener(\"click\", function () {\r\n          const selectedDay = tab.getAttribute(\"data-day\");\r\n\r\n          tabs.forEach(function (item) {\r\n            item.classList.remove(\"bgt-tab-active\");\r\n          });\r\n\r\n          tab.classList.add(\"bgt-tab-active\");\r\n          renderProgramme(selectedDay);\r\n        });\r\n      });\r\n\r\n      renderProgramme(\"friday\");\r\n    }\r\n\r\n    if (document.readyState === \"loading\") {\r\n      document.addEventListener(\"DOMContentLoaded\", initProgrammeTabs);\r\n    } else {\r\n      initProgrammeTabs();\r\n    }\r\n  })();\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-59cb6cbb e-con-full e-flex e-con e-child\" data-id=\"59cb6cbb\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-41a3adad elementor-widget elementor-widget-heading\" data-id=\"41a3adad\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Vis le sport plus fort !<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-570d2978 elementor-widget elementor-widget-text-editor\" data-id=\"570d2978\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Un moment o\u00f9 le sport devient exp\u00e9rience.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3269a78f elementor-list-item-link-inline elementor-mobile-align-start elementor-icon-list--layout-traditional elementor-widget elementor-widget-icon-list\" data-id=\"3269a78f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon-list.default\">\n\t\t\t\t\t\t\t<ul class=\"elementor-icon-list-items\">\n\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\">\n\t\t\t\t\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 22 22\" fill=\"none\"><g clip-path=\"url(#clip0_1866_7283)\"><path d=\"M11 16.5V2.75L17.4167 6.41667L11 10.0833\" stroke=\"#676460\" stroke-width=\"1.83333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path><path d=\"M8.24967 16.1975C7.68134 16.5275 7.33301 16.9492 7.33301 17.4167C7.33301 18.425 8.98301 19.25 10.9997 19.25C13.0163 19.25 14.6663 18.425 14.6663 17.4167C14.6663 16.9583 14.318 16.5275 13.7497 16.1975\" stroke=\"#676460\" stroke-width=\"1.83333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path><\/g><defs><clipPath id=\"clip0_1866_7283\"><rect width=\"22\" height=\"22\" fill=\"white\"><\/rect><\/clipPath><\/defs><\/svg>\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">The Yard, Bonapriso<\/span>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\">\n\t\t\t\t\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\"><g clip-path=\"url(#clip0_1866_7287)\"><path d=\"M3.33301 5.83341C3.33301 5.39139 3.5086 4.96746 3.82116 4.6549C4.13372 4.34234 4.55765 4.16675 4.99967 4.16675H14.9997C15.4417 4.16675 15.8656 4.34234 16.1782 4.6549C16.4907 4.96746 16.6663 5.39139 16.6663 5.83341V15.8334C16.6663 16.2754 16.4907 16.6994 16.1782 17.0119C15.8656 17.3245 15.4417 17.5001 14.9997 17.5001H4.99967C4.55765 17.5001 4.13372 17.3245 3.82116 17.0119C3.5086 16.6994 3.33301 16.2754 3.33301 15.8334V5.83341Z\" stroke=\"#676460\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path><path d=\"M13.333 2.5V5.83333\" stroke=\"#676460\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path><path d=\"M6.66699 2.5V5.83333\" stroke=\"#676460\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path><path d=\"M3.33301 9.16675H16.6663\" stroke=\"#676460\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path><path d=\"M9.16699 12.5H10.0003\" stroke=\"#676460\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path><path d=\"M10 12.5V15\" stroke=\"#676460\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path><\/g><defs><clipPath id=\"clip0_1866_7287\"><rect width=\"20\" height=\"20\" fill=\"white\"><\/rect><\/clipPath><\/defs><\/svg>\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">Mercredi 10 juin<\/span>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t<\/ul>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3962fd42 elementor-widget elementor-widget-google_maps\" data-id=\"3962fd42\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"google_maps.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-custom-embed\">\n\t\t\t<iframe loading=\"lazy\"\n\t\t\t\t\tsrc=\"https:\/\/maps.google.com\/maps?q=Cameroun%2C%20Douala%20Yard%20Bonapriso&#038;t=m&#038;z=12&#038;output=embed&#038;iwloc=near\"\n\t\t\t\t\ttitle=\"Cameroun, Douala Yard Bonapriso\"\n\t\t\t\t\taria-label=\"Cameroun, Douala Yard Bonapriso\"\n\t\t\t><\/iframe>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-7bb720a1 e-con-full e-flex e-con e-child\" data-id=\"7bb720a1\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2fbb1bda elementor-widget elementor-widget-heading\" data-id=\"2fbb1bda\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Une pr\u00e9occupation?<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1a260e9e elementor-widget elementor-widget-text-editor\" data-id=\"1a260e9e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Nous sommes \u00e0 votre \u00e9coute&#8230;<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-71381869 elementor-button-align-stretch elementor-widget elementor-widget-form\" data-id=\"71381869\" data-element_type=\"widget\" data-e-type=\"widget\" id=\"note-message\" data-settings=\"{&quot;step_next_label&quot;:&quot;Suivant&quot;,&quot;step_previous_label&quot;:&quot;Pr\\u00e9c\\u00e9dent&quot;,&quot;button_width&quot;:&quot;100&quot;,&quot;step_type&quot;:&quot;number_text&quot;,&quot;step_icon_shape&quot;:&quot;circle&quot;}\" data-widget_type=\"form.default\">\n\t\t\t\t\t\t\t<form class=\"elementor-form\" method=\"post\" id=\"pihnk25\" name=\"Pr\u00e9occupation invitation HNK 2025\" aria-label=\"Pr\u00e9occupation invitation HNK 2025\">\n\t\t\t<input type=\"hidden\" name=\"post_id\" value=\"25\"\/>\n\t\t\t<input type=\"hidden\" name=\"form_id\" value=\"71381869\"\/>\n\t\t\t<input type=\"hidden\" name=\"referer_title\" value=\"\" \/>\n\n\t\t\t\t\t\t\t<input type=\"hidden\" name=\"queried_id\" value=\"7\"\/>\n\t\t\t\n\t\t\t<div class=\"elementor-form-fields-wrapper elementor-labels-\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-field-type-textarea elementor-field-group elementor-column elementor-field-group-message elementor-col-100\">\n\t\t\t\t\t\t\t\t\t\t\t\t<label for=\"form-field-message\" class=\"elementor-field-label elementor-screen-only\">\n\t\t\t\t\t\t\t\tMessage\t\t\t\t\t\t\t<\/label>\n\t\t\t\t\t\t<textarea class=\"elementor-field-textual elementor-field  elementor-size-lg\" name=\"form_fields[message]\" id=\"form-field-message\" rows=\"4\" placeholder=\"Saisissez votre message ici\"><\/textarea>\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<div class=\"elementor-field-group elementor-column elementor-field-type-submit elementor-col-100 e-form__buttons\">\n\t\t\t\t\t<button class=\"elementor-button elementor-size-sm\" type=\"submit\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Envoyer<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/button>\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t<\/form>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6b8b09c9 elementor-widget elementor-widget-html\" data-id=\"6b8b09c9\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<script>\r\ndocument.addEventListener(\"DOMContentLoaded\", function () {\r\n    const form = document.querySelector(\"#pihnk25\");\r\n\r\n    if (!form) {\r\n        console.error(\"Formulaire #pihnk25 introuvable\");\r\n        return;\r\n    }\r\n\r\n    form.addEventListener(\"submit\", function (e) {\r\n        e.preventDefault();\r\n\r\n        \/\/ R\u00e9cup\u00e8re le code invit\u00e9 depuis l'URL\r\n        \/\/ Exemple : page.com?abc  => abc\r\n        const inviteCode = window.location.search.replace(\"?\", \"\").trim();\r\n\r\n        \/\/ R\u00e9cup\u00e8re le message \u00e9crit dans le formulaire\r\n        const messageField = form.querySelector(\"textarea\");\r\n        const notes = messageField ? messageField.value.trim() : \"\";\r\n\r\n        if (!inviteCode) {\r\n            alert(\"Code invit\u00e9 introuvable.\");\r\n            return;\r\n        }\r\n\r\n        if (!notes) {\r\n            alert(\"Veuillez saisir un message.\");\r\n            return;\r\n        }\r\n\r\n        fetch(\"https:\/\/gt.beaufort.cm\/api\/index.php\/reponse-notes\", {\r\n            method: \"POST\",\r\n            headers: {\r\n                \"Content-Type\": \"application\/json\"\r\n            },\r\n            body: JSON.stringify({\r\n                invite_code: inviteCode,\r\n                notes: notes\r\n            })\r\n        })\r\n        .then(response => response.json())\r\n        .then(data => {\r\n            console.log(\"R\u00e9ponse API :\", data);\r\n            \/\/ alert(\"Votre message a \u00e9t\u00e9 envoy\u00e9 avec succ\u00e8s.\");\r\n\r\n            \/\/ Vide le champ apr\u00e8s envoi\r\n            if (messageField) {\r\n                messageField.value = \"\";\r\n            }\r\n        })\r\n        .catch(error => {\r\n            console.error(\"Erreur API :\", error);\r\n            alert(\"Une erreur est survenue lors de l'envoi.\");\r\n        });\r\n    });\r\n});\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-16c26192 e-con-full e-flex e-con e-child\" data-id=\"16c26192\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4a77e5b5 elementor-widget elementor-widget-image\" data-id=\"4a77e5b5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"385\" height=\"131\" src=\"https:\/\/betclic.pass.cm\/wp-content\/uploads\/2026\/06\/telechargement-1.png\" class=\"attachment-full size-full wp-image-22\" alt=\"\" srcset=\"https:\/\/betclic.pass.cm\/wp-content\/uploads\/2026\/06\/telechargement-1.png 385w, https:\/\/betclic.pass.cm\/wp-content\/uploads\/2026\/06\/telechargement-1-300x102.png 300w\" sizes=\"(max-width: 385px) 100vw, 385px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-71eb9c8d e-con-full elementor-hidden-desktop elementor-hidden-tablet elementor-hidden-mobile e-flex e-con e-parent\" data-id=\"71eb9c8d\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-65c4f18d e-con-full e-flex e-con e-child\" data-id=\"65c4f18d\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-3178ebd1 e-flex e-con-boxed e-con e-child\" data-id=\"3178ebd1\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-2280585d e-con-full e-flex e-con e-child\" data-id=\"2280585d\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-5d38e165 e-con-full e-flex e-con e-child\" data-id=\"5d38e165\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-3a34fe3d elementor-widget elementor-widget-heading\" data-id=\"3a34fe3d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">INVITATION<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-648976b1 elementor-widget elementor-widget-heading\" data-id=\"648976b1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">BEAUFORT <br>Golf  Tour 2026<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-65e7e69 e-con-full e-flex e-con e-child\" data-id=\"65e7e69\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4e5e1c09 elementor-countdown--label-block elementor-widget elementor-widget-countdown\" data-id=\"4e5e1c09\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"countdown.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-countdown-wrapper\" data-date=\"1780905600\">\n\t\t\t<div class=\"elementor-countdown-item\"><span class=\"elementor-countdown-digits elementor-countdown-days\"><\/span> <span class=\"elementor-countdown-label\">Days<\/span><\/div><div class=\"elementor-countdown-item\"><span class=\"elementor-countdown-digits elementor-countdown-hours\"><\/span> <span class=\"elementor-countdown-label\">Hours<\/span><\/div><div class=\"elementor-countdown-item\"><span class=\"elementor-countdown-digits elementor-countdown-minutes\"><\/span> <span class=\"elementor-countdown-label\">Minutes<\/span><\/div><div class=\"elementor-countdown-item\"><span class=\"elementor-countdown-digits elementor-countdown-seconds\"><\/span> <span class=\"elementor-countdown-label\">Seconds<\/span><\/div>\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-4ccf3aaa e-con-full e-flex e-con e-child\" data-id=\"4ccf3aaa\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-2fb01dd3 e-con-full e-flex e-con e-child\" data-id=\"2fb01dd3\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1528d60f elementor-widget elementor-widget-heading\" data-id=\"1528d60f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">CHRISTIAN<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4635857a elementor-widget elementor-widget-heading\" data-id=\"4635857a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h6 class=\"elementor-heading-title elementor-size-default\">Beaufort des Boissons du Cameroun a le plaisir de vous convier au \"Beaufort Golf Tour 2026\". \u26f3<\/h6>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-16ce10d4 elementor-widget elementor-widget-heading\" data-id=\"16ce10d4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h6 class=\"elementor-heading-title elementor-size-default\">Du 8 au 13 Juin, vivez une exp\u00e9rience d\u2019exception o\u00f9 l\u2019\u00e9l\u00e9gance rencontre le prestige du Golf. <\/h6>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6c394115 elementor-widget elementor-widget-heading\" data-id=\"6c394115\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h6 class=\"elementor-heading-title elementor-size-default\">Nous serions honor\u00e9s de vous compter parmi nous. \nMerci de bien vouloir confirmer votre pr\u00e9sence SVP.<\/h6>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-386f1c26 e-con-full e-flex e-con e-child\" data-id=\"386f1c26\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-58e6d16a elementor-widget elementor-widget-html\" data-id=\"58e6d16a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- Partie 2: Gestion des r\u00e9ponses RSVP -->\r\n<!-- Toast flottant pour les messages de r\u00e9ponse -->\r\n<!--<div id=\"toast\" style=\"position: fixed; bottom: 30px; left: 50%; transform: translateX(-50%); background-color: rgba(0, 123, 27, 0.9); color: white; padding: 16px 32px; border-radius: 4px; font-family: 'Heineken', serif; font-size: 16px; z-index: 1000; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3); opacity: 0; transition: opacity 0.3s, transform 0.4s; pointer-events: none; min-width: 300px; text-align: center;\"><\/div>-->\r\n\r\n<!--<div style=\"width: 100%;\">-->\r\n<!--    <div id=\"response-buttons\" style=\"display: flex; justify-content: space-between; align-items: center; width: 100%; overflow-x: hidden;\">-->\r\n<!--        <button id=\"yes\" style=\"flex: 1; height: 42px; padding: 10px 0; margin: 0 5px; border: 1px solid #8EA780; border-radius: 0; cursor: pointer; font-weight: bold; transition: all 0.3s ease; background-color: white; color: #014035; flex-shrink: 0; font-family: 'Heineken', serif;\">Oui<\/button>-->\r\n<!--        <button id=\"maybe\" style=\"flex: 1; height: 42px; padding: 10px 0; margin: 0 5px; border: 1px solid #8EA780; border-radius: 0; cursor: pointer; font-weight: bold; transition: all 0.3s ease; background-color: white; color: #014035; flex-shrink: 0; font-family: 'Heineken', serif;\">Peut-\u00eatre<\/button>-->\r\n<!--        <button id=\"no\" style=\"flex: 1; height: 42px; padding: 10px 0; margin: 0 5px; border: 1px solid #8EA780; border-radius: 0; cursor: pointer; font-weight: bold; transition: all 0.3s ease; background-color: white; color: #014035; flex-shrink: 0; font-family: 'Heineken', serif;\">Non<\/button>-->\r\n<!--    <\/div>-->\r\n<!--    <div id=\"response-text\" style=\"display: none; justify-content: center; align-items: center; width: 100%; text-align: center; color: white; font-weight: bold; text-shadow: 1px 1px 3px rgba(0,0,0,0.5); padding: 10px 0;\"><\/div>-->\r\n    \r\n<!--    <div id=\"response-message\" style=\"padding: 15px; border-radius: 5px; margin: 20px 0; text-align: center; display: none;\"><\/div>-->\r\n<!--<\/div>-->\r\n\r\n<!-- Script pour la partie 2: Gestion des r\u00e9ponses RSVP -->\r\n<!--<script>-->\r\n    \r\n<!--    const RSVP_EVENT_ID = \"h25\";-->\r\n<!--    const RSVP_API_BASE_URL = \"https:\/\/e-invite.zen-apps.com\/api\";-->\r\n    \r\n \r\n<!--    const RESPONSE_MESSAGES = {-->\r\n<!--        \"yes\": \"Merci d'avoir confirm\u00e9 votre pr\u00e9sence !\",-->\r\n<!--        \"no\": \"Nous sommes d\u00e9sol\u00e9s que vous ne puissiez pas venir.\",-->\r\n<!--        \"maybe\": \"Nous esp\u00e9rons que vous pourrez vous joindre \u00e0 nous !\"-->\r\n<!--    };-->\r\n    \r\n   \r\n<!--    function getRsvpGuestCode() {-->\r\n<!--        const queryString = window.location.search;-->\r\n        \r\n<!--        if (queryString.startsWith('?')) {-->\r\n<!--            return queryString.substring(1);-->\r\n<!--        }-->\r\n        \r\n<!--        return '';-->\r\n<!--    }-->\r\n    \r\n  \r\n<!--    async function updateResponseStatus(contactId, status) {-->\r\n<!--        try {-->\r\n<!--            const response = await fetch(`${RSVP_API_BASE_URL}\/update-response-status`, {-->\r\n<!--                method: 'POST',-->\r\n<!--                headers: {-->\r\n<!--                    'Content-Type': 'application\/json',-->\r\n<!--                    'Accept': 'application\/json'-->\r\n<!--                },-->\r\n<!--                body: JSON.stringify({-->\r\n<!--                    event_id: RSVP_EVENT_ID,-->\r\n<!--                    contact_id: contactId,-->\r\n<!--                    status: status-->\r\n<!--                })-->\r\n<!--            });-->\r\n            \r\n<!--            if (!response.ok) {-->\r\n<!--                throw new Error(`Erreur HTTP: ${response.status}`);-->\r\n<!--            }-->\r\n            \r\n<!--            const data = await response.json();-->\r\n<!--            return data;-->\r\n<!--        } catch (error) {-->\r\n<!--            return {-->\r\n<!--                status: 'error',-->\r\n<!--                message: 'Nous n\\'avons pas pu enregistrer votre r\u00e9ponse. Veuillez r\u00e9essayer plus tard.'-->\r\n<!--            };-->\r\n<!--        }-->\r\n<!--    }-->\r\n    \r\n<!--    let toastIsVisible = false;-->\r\n<!--    let toastQueue = [];-->\r\n    \r\n<!--    function processToastQueue() {-->\r\n<!--        if (toastQueue.length > 0 && !toastIsVisible) {-->\r\n<!--            const nextToast = toastQueue.shift();-->\r\n<!--            displayToast(nextToast.message, nextToast.duration);-->\r\n<!--        }-->\r\n<!--    }-->\r\n    \r\n<!--    function displayToast(message, duration = 8000) {-->\r\n<!--        const toast = document.getElementById('toast');-->\r\n<!--        toast.textContent = message;-->\r\n        \r\n<!--        toastIsVisible = true;-->\r\n        \r\n<!--        toast.style.opacity = '1';-->\r\n<!--        toast.style.transform = 'translateX(-50%) translateY(0)';-->\r\n        \r\n<!--        setTimeout(() => {-->\r\n<!--            toast.style.opacity = '0';-->\r\n<!--            toast.style.transform = 'translateX(-50%) translateY(20px)';-->\r\n            \r\n<!--            setTimeout(() => {-->\r\n<!--                toast.textContent = '';-->\r\n<!--                toastIsVisible = false;-->\r\n<!--                processToastQueue();-->\r\n<!--            }, 500);-->\r\n<!--        }, duration);-->\r\n<!--    }-->\r\n    \r\n<!--    function showToast(message, duration = 8000) {-->\r\n<!--        toastQueue.push({ message, duration });-->\r\n<!--        processToastQueue();-->\r\n<!--    }-->\r\n    \r\n<!--    function displayResponseMessage(type, message) {-->\r\n<!--        showToast(message);-->\r\n<!--    }-->\r\n    \r\n<!--    document.addEventListener('DOMContentLoaded', function() {-->\r\n<!--        const contactId = getRsvpGuestCode();-->\r\n        \r\n<!--        if (!contactId) {-->\r\n<!--            document.getElementById('yes').disabled = true;-->\r\n<!--            document.getElementById('no').disabled = true;-->\r\n<!--            document.getElementById('maybe').disabled = true;-->\r\n            \r\n<!--            displayResponseMessage('error', 'Votre invitation semble incompl\u00e8te. Veuillez utiliser le lien re\u00e7u dans votre email.');-->\r\n<!--            return;-->\r\n<!--        }-->\r\n        \r\n<!--        ['yes', 'no', 'maybe'].forEach(status => {-->\r\n<!--            const button = document.getElementById(status);-->\r\n            \r\n<!--            button.addEventListener('click', async function() {-->\r\n<!--                document.getElementById('yes').disabled = true;-->\r\n<!--                document.getElementById('no').disabled = true;-->\r\n<!--                document.getElementById('maybe').disabled = true;-->\r\n                \r\n<!--                displayResponseMessage('loading', 'Envoi de votre r\u00e9ponse...');-->\r\n                \r\n<!--                const result = await updateResponseStatus(contactId, status);-->\r\n                \r\n<!--                if (result.status === 'success') {-->\r\n<!--                    showToast(RESPONSE_MESSAGES[status], 5000);-->\r\n                    \r\n<!--                    document.getElementById('yes').disabled = false;-->\r\n<!--                    document.getElementById('no').disabled = false;-->\r\n<!--                    document.getElementById('maybe').disabled = false;-->\r\n                    \r\n                    <!--document.getElementById(status).style.backgroundColor = '#64BF33'; \/* Green background when active *\/-->\r\n                    <!--document.getElementById(status).style.color = '#014035'; \/* Dark Green text *\/-->\r\n<!--                } else {-->\r\n<!--                    document.getElementById('yes').disabled = false;-->\r\n<!--                    document.getElementById('no').disabled = false;-->\r\n<!--                    document.getElementById('maybe').disabled = false;-->\r\n                    \r\n<!--                    displayResponseMessage('error', result.message || 'Une erreur s\\'est produite');-->\r\n<!--                }-->\r\n<!--            });-->\r\n<!--        });-->\r\n<!--    });-->\r\n<!--<\/script>-->\r\n\r\n\r\n\r\n\r\n<div id=\"toast\" style=\"position: fixed; bottom: 30px; left: 50%; transform: translateX(-50%); background-color: rgba(0, 123, 27, 0.9); color: white; padding: 16px 32px; border-radius: 4px; font-family: 'Heineken', serif; font-size: 16px; z-index: 1000000; box-shadow: 0 4px 8px rgba(0,0,0,0.3); opacity: 0; transition: opacity 0.3s, transform 0.4s; pointer-events: none; min-width: 300px; text-align: center;\"><\/div>\r\n\r\n<div style=\"width: 100%;\">\r\n  <div id=\"response-buttons\" style=\"display: flex; justify-content: space-between; align-items: center; width: 100%; overflow-x: hidden;\">\r\n    <button id=\"yes\" class=\"response-btn\" type=\"button\">\r\n      Oui\r\n    <\/button>\r\n\r\n    <button id=\"maybe\" class=\"response-btn\" type=\"button\">\r\n      Peut-\u00eatre\r\n    <\/button>\r\n\r\n    <button id=\"no\" class=\"response-btn\" type=\"button\">\r\n      Non\r\n    <\/button>\r\n  <\/div>\r\n<\/div>\r\n\r\n<div class=\"golf-popup-overlay\" id=\"golfPopupOverlay\">\r\n  <div class=\"golf-popup\">\r\n\r\n    <button class=\"popup-close\" type=\"button\">\u00d7<\/button>\r\n\r\n    <div class=\"language-switch\">\r\n      <button id=\"langFr\" class=\"lang-btn active\" type=\"button\">FR<\/button>\r\n      <button id=\"langEn\" class=\"lang-btn\" type=\"button\">EN<\/button>\r\n    <\/div>\r\n\r\n    <div class=\"popup-step active\" data-step=\"1\">\r\n      <h2 data-i18n=\"modalTitle\">Compl\u00e9tez vos informations<\/h2>\r\n\r\n      <div class=\"progress-bar\">\r\n        <span style=\"width: 33%;\"><\/span>\r\n      <\/div>\r\n\r\n      <div class=\"form-group\">\r\n        <label data-i18n=\"clubMemberQuestion\">Appartenez-vous \u00e0 un club ?<\/label>\r\n\r\n        <div class=\"radio-group\">\r\n          <label>\r\n            <input type=\"radio\" name=\"club_member\" value=\"oui\" checked>\r\n            <span data-i18n=\"yes\">Oui<\/span>\r\n          <\/label>\r\n\r\n          <label>\r\n            <input type=\"radio\" name=\"club_member\" value=\"non\">\r\n            <span data-i18n=\"no\">Non<\/span>\r\n          <\/label>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <input\r\n        id=\"clubName\"\r\n        type=\"text\"\r\n        class=\"input-field\"\r\n        placeholder=\"Saisissez le nom du club\"\r\n        data-placeholder-fr=\"Saisissez le nom du club\"\r\n        data-placeholder-en=\"Enter club name\"\r\n      >\r\n\r\n      <div class=\"range-header\">\r\n        <label data-i18n=\"handicapLabel\">Handicap approximatif<\/label>\r\n        <strong id=\"handicapValue\">= 0<\/strong>\r\n      <\/div>\r\n\r\n      <div class=\"range-wrapper\">\r\n        <input id=\"handicapRange\" type=\"range\" min=\"0\" max=\"54\" value=\"0\">\r\n        <div class=\"range-values\">\r\n          <span>0<\/span>\r\n          <span>54<\/span>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <input\r\n        id=\"tournamentsCount\"\r\n        type=\"number\"\r\n        class=\"input-field\"\r\n        placeholder=\"Nombre de tournois jou\u00e9s\"\r\n        data-placeholder-fr=\"Nombre de tournois jou\u00e9s\"\r\n        data-placeholder-en=\"Number of tournaments played\"\r\n      >\r\n\r\n      <button class=\"btn-primary next-step\" type=\"button\" data-i18n=\"continue\">\r\n        Continuer\r\n      <\/button>\r\n    <\/div>\r\n\r\n    <div class=\"popup-step\" data-step=\"2\">\r\n      <h2 data-i18n=\"modalTitle\">Compl\u00e9tez vos informations<\/h2>\r\n\r\n      <div class=\"progress-bar\">\r\n        <span style=\"width: 66%;\"><\/span>\r\n      <\/div>\r\n\r\n      <div class=\"form-group\">\r\n        <label data-i18n=\"chooseSize\">Choisissez votre taille de polo<\/label>\r\n      <\/div>\r\n\r\n      <div class=\"size-grid\" id=\"sizeGrid\">\r\n        <div class=\"size-card active\" data-size=\"XS\">\r\n          <div class=\"size-title\">XS<\/div>\r\n          <div class=\"size-desc\">\r\n            <span data-i18n=\"chestMeasurement\">Tour de poitrine<\/span> :<br>\r\n            82 - 87 cm\r\n          <\/div>\r\n        <\/div>\r\n\r\n        <div class=\"size-card\" data-size=\"S\">\r\n          <div class=\"size-title\">S<\/div>\r\n          <div class=\"size-desc\">\r\n            <span data-i18n=\"chestMeasurement\">Tour de poitrine<\/span> :<br>\r\n            88 - 93 cm\r\n          <\/div>\r\n        <\/div>\r\n\r\n        <div class=\"size-card\" data-size=\"M\">\r\n          <div class=\"size-title\">M<\/div>\r\n          <div class=\"size-desc\">\r\n            <span data-i18n=\"chestMeasurement\">Tour de poitrine<\/span> :<br>\r\n            94 - 99 cm\r\n          <\/div>\r\n        <\/div>\r\n\r\n        <div class=\"size-card\" data-size=\"L\">\r\n          <div class=\"size-title\">L<\/div>\r\n          <div class=\"size-desc\">\r\n            <span data-i18n=\"chestMeasurement\">Tour de poitrine<\/span> :<br>\r\n            100 - 105 cm\r\n          <\/div>\r\n        <\/div>\r\n\r\n        <div class=\"size-card\" data-size=\"XL\">\r\n          <div class=\"size-title\">XL<\/div>\r\n          <div class=\"size-desc\">\r\n            <span data-i18n=\"chestMeasurement\">Tour de poitrine<\/span> :<br>\r\n            106 - 111 cm\r\n          <\/div>\r\n        <\/div>\r\n\r\n        <div class=\"size-card\" data-size=\"XXL\">\r\n          <div class=\"size-title\">XXL<\/div>\r\n          <div class=\"size-desc\">\r\n            <span data-i18n=\"chestMeasurement\">Tour de poitrine<\/span> :<br>\r\n            112 - 117 cm\r\n          <\/div>\r\n        <\/div>\r\n\r\n        <div class=\"size-card\" data-size=\"3XL\">\r\n          <div class=\"size-title\">3XL<\/div>\r\n          <div class=\"size-desc\">\r\n            <span data-i18n=\"chestMeasurement\">Tour de poitrine<\/span> :<br>\r\n            118 - 123 cm\r\n          <\/div>\r\n        <\/div>\r\n\r\n        <div class=\"size-card\" data-size=\"4XL\">\r\n          <div class=\"size-title\">4XL<\/div>\r\n          <div class=\"size-desc\">\r\n            <span data-i18n=\"chestMeasurement\">Tour de poitrine<\/span> :<br>\r\n            124 - 129 cm\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <div class=\"popup-actions\">\r\n        <button class=\"btn-secondary prev-step\" type=\"button\" data-i18n=\"back\">\r\n          Pr\u00e9c\u00e9dent\r\n        <\/button>\r\n\r\n        <button class=\"btn-primary next-step\" type=\"button\" data-i18n=\"validate\">\r\n          Valider\r\n        <\/button>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"popup-step\" data-step=\"3\">\r\n      <h2 data-i18n=\"modalTitle\">Compl\u00e9tez vos informations<\/h2>\r\n\r\n      <div class=\"progress-bar\">\r\n        <span style=\"width: 100%;\"><\/span>\r\n      <\/div>\r\n\r\n      <div class=\"form-group\">\r\n        <label data-i18n=\"acceptTermsTitle\">Acceptez les conditions<\/label>\r\n      <\/div>\r\n\r\n      <div class=\"check-block\">\r\n        <label class=\"custom-checkbox\">\r\n          <input id=\"rulesAccepted\" type=\"checkbox\">\r\n          <span><\/span>\r\n          <strong data-i18n=\"rulesAcceptedLabel\">J\u2019accepte les r\u00e8gles du tournoi<\/strong>\r\n        <\/label>\r\n\r\n        <div class=\"info-box\" data-i18n=\"rulesText\">\r\n          Je confirme avoir lu et compris le r\u00e8glement du Beaufort Golf Tour 2026 et m'engage \u00e0 le respecter.\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <div class=\"check-block\">\r\n        <label class=\"custom-checkbox\">\r\n          <input id=\"imageAuthorization\" type=\"checkbox\">\r\n          <span><\/span>\r\n          <strong data-i18n=\"imageAuthorizationLabel\">J\u2019autorise l\u2019utilisation de mon image<\/strong>\r\n        <\/label>\r\n\r\n        <div class=\"info-box\" data-i18n=\"imageAuthorizationText\">\r\n          J\u2019autorise les organisateurs \u00e0 utiliser les photos et vid\u00e9os prises lors de l\u2019\u00e9v\u00e9nement \u00e0 des fins promotionnelles sur leurs supports de communication.\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <div class=\"popup-actions\">\r\n        <button class=\"btn-secondary prev-step\" type=\"button\" data-i18n=\"back\">\r\n          Pr\u00e9c\u00e9dent\r\n        <\/button>\r\n\r\n        <button id=\"finalSubmit\" class=\"btn-primary\" type=\"button\" data-i18n=\"submit\">\r\n          Valider\r\n        <\/button>\r\n      <\/div>\r\n    <\/div>\r\n\r\n  <\/div>\r\n<\/div>\r\n\r\n<style>\r\n  .response-btn {\r\n    flex: 1;\r\n    height: 42px;\r\n    padding: 10px 0;\r\n    margin: 0 5px;\r\n    border: 1px solid #8EA780;\r\n    border-radius: 0;\r\n    cursor: pointer;\r\n    font-weight: bold;\r\n    transition: all 0.3s ease;\r\n    background-color: #ffffff;\r\n    color: #014035;\r\n    flex-shrink: 0;\r\n    \/*font-family: 'Heineken', serif;*\/\r\n  }\r\n\r\n  .response-btn:hover {\r\n    background-color: #014035 !important;\r\n    color: #ffffff !important;\r\n    border-color: #014035 !important;\r\n  }\r\n\r\n  .response-btn:disabled {\r\n    opacity: 0.6;\r\n    cursor: not-allowed;\r\n  }\r\n\r\n  .golf-popup-overlay {\r\n    position: fixed;\r\n    inset: 0;\r\n    width: 100%;\r\n    height: 100vh;\r\n    min-height: 100vh;\r\n    background: rgba(0, 0, 0, 0.35);\r\n    display: none;\r\n    align-items: center;\r\n    justify-content: center;\r\n    padding: 20px;\r\n    box-sizing: border-box;\r\n    \/*font-family: Verdana, Arial, Helvetica, sans-serif;*\/\r\n    z-index: 999999;\r\n  }\r\n\r\n  .golf-popup {\r\n    position: relative;\r\n    width: 100%;\r\n    max-width: 420px;\r\n    max-height: 90vh;\r\n    overflow-y: auto;\r\n    background: #ffffff;\r\n    padding: 56px 22px 24px;\r\n    box-sizing: border-box;\r\n  }\r\n\r\n  .popup-close {\r\n    position: absolute;\r\n    top: 10px;\r\n    right: 16px;\r\n    border: none;\r\n    background: transparent !important;\r\n    font-size: 34px;\r\n    line-height: 1;\r\n    cursor: pointer;\r\n    color: #000000;\r\n    z-index: 2;\r\n  }\r\n\r\n  .popup-close:hover {\r\n    background: transparent !important;\r\n    color: #000000 !important;\r\n  }\r\n\r\n  .language-switch {\r\n    position: absolute;\r\n    top: 14px;\r\n    left: 18px;\r\n    display: flex;\r\n    border: 1px solid #014035;\r\n    overflow: hidden;\r\n  }\r\n\r\n  .lang-btn {\r\n    border: none;\r\n    background: #ffffff;\r\n    color: #014035;\r\n    font-size: 12px;\r\n    font-weight: bold;\r\n    padding: 7px 12px;\r\n    cursor: pointer;\r\n    transition: all 0.2s ease;\r\n  }\r\n\r\n  .lang-btn.active {\r\n    background: #014035;\r\n    color: #ffffff;\r\n  }\r\n\r\n  .lang-btn:hover {\r\n    background: #eef2f1 !important;\r\n    color: #014035 !important;\r\n  }\r\n\r\n  .lang-btn.active:hover {\r\n    background: #014035 !important;\r\n    color: #ffffff !important;\r\n  }\r\n\r\n  .popup-step {\r\n    display: none;\r\n  }\r\n\r\n  .popup-step.active {\r\n    display: block;\r\n  }\r\n\r\n  .golf-popup h2 {\r\n    margin: 10px 0 10px;\r\n    font-size: 18px;\r\n    font-weight: 400;\r\n    color: #111111;\r\n  }\r\n\r\n  .progress-bar {\r\n    width: 100%;\r\n    height: 6px;\r\n    background: #e8e8e8;\r\n    margin-bottom: 32px;\r\n    overflow: hidden;\r\n  }\r\n\r\n  .progress-bar span {\r\n    display: block;\r\n    height: 100%;\r\n    background: #FEA400;\r\n  }\r\n\r\n  .form-group {\r\n    margin-bottom: 14px;\r\n  }\r\n\r\n  .form-group label,\r\n  .range-header label {\r\n    font-size: 16px;\r\n    color: #222222;\r\n  }\r\n\r\n  .radio-group {\r\n    display: flex;\r\n    gap: 18px;\r\n    margin-top: 12px;\r\n  }\r\n\r\n  .radio-group label {\r\n    display: flex;\r\n    align-items: center;\r\n    gap: 6px;\r\n    font-size: 15px;\r\n    cursor: pointer;\r\n  }\r\n\r\n  .radio-group input {\r\n    width: 20px;\r\n    height: 20px;\r\n    accent-color: #014035;\r\n  }\r\n\r\n  .input-field {\r\n    width: 100%;\r\n    height: 58px;\r\n    border: 1px solid #999999;\r\n    padding: 0 22px;\r\n    box-sizing: border-box;\r\n    margin-bottom: 20px;\r\n    font-size: 14px;\r\n    color: #333333;\r\n    outline: none;\r\n    background-color: #ffffff;\r\n  }\r\n\r\n  .input-field:hover,\r\n  .input-field:focus {\r\n    border-color: #014035;\r\n    background-color: #ffffff !important;\r\n  }\r\n\r\n  .input-field::placeholder {\r\n    color: #999999;\r\n  }\r\n\r\n  .range-header {\r\n    display: flex;\r\n    justify-content: space-between;\r\n    align-items: center;\r\n    margin-bottom: 14px;\r\n  }\r\n\r\n  .range-header strong {\r\n    color: #014035;\r\n    font-size: 17px;\r\n  }\r\n\r\n  .range-wrapper input[type=\"range\"] {\r\n    width: 100%;\r\n    height: 24px;\r\n    appearance: none;\r\n    -webkit-appearance: none;\r\n    background: transparent;\r\n    outline: none;\r\n    cursor: pointer;\r\n  }\r\n\r\n  .range-wrapper input[type=\"range\"]::-webkit-slider-runnable-track {\r\n    height: 4px;\r\n    background: #E2E2E2;\r\n    border-radius: 0;\r\n  }\r\n\r\n  .range-wrapper input[type=\"range\"]::-webkit-slider-thumb {\r\n    appearance: none;\r\n    -webkit-appearance: none;\r\n    width: 18px;\r\n    height: 18px;\r\n    background: #014035;\r\n    border-radius: 50%;\r\n    border: none;\r\n    margin-top: -7px;\r\n  }\r\n\r\n  .range-wrapper input[type=\"range\"]::-moz-range-track {\r\n    height: 4px;\r\n    background: #E2E2E2;\r\n    border-radius: 0;\r\n  }\r\n\r\n  .range-wrapper input[type=\"range\"]::-moz-range-thumb {\r\n    width: 18px;\r\n    height: 18px;\r\n    background: #014035;\r\n    border-radius: 50%;\r\n    border: none;\r\n  }\r\n\r\n  .range-values {\r\n    display: flex;\r\n    justify-content: space-between;\r\n    color: #777777;\r\n    font-size: 16px;\r\n    margin-bottom: 20px;\r\n  }\r\n\r\n  .btn-primary,\r\n  .btn-secondary {\r\n    height: 54px;\r\n    border: none;\r\n    font-size: 16px;\r\n    cursor: pointer;\r\n    transition: all 0.2s ease;\r\n  }\r\n\r\n  .btn-primary {\r\n    width: 100%;\r\n    background: #014035;\r\n    color: #ffffff;\r\n  }\r\n\r\n  .btn-primary:hover {\r\n    background: #025247 !important;\r\n    color: #ffffff !important;\r\n  }\r\n\r\n  .btn-primary:disabled,\r\n  .btn-secondary:disabled {\r\n    opacity: 0.6;\r\n    cursor: not-allowed;\r\n  }\r\n\r\n  .btn-secondary {\r\n    background: #e9e9e9;\r\n    color: #222222;\r\n  }\r\n\r\n  .btn-secondary:hover {\r\n    background: #dddddd !important;\r\n    color: #222222 !important;\r\n  }\r\n\r\n  .popup-actions {\r\n    display: grid;\r\n    grid-template-columns: 1fr 1fr;\r\n    gap: 16px;\r\n    margin-top: 38px;\r\n  }\r\n\r\n  .size-grid {\r\n    display: grid;\r\n    grid-template-columns: repeat(2, 1fr);\r\n    gap: 12px;\r\n    margin-top: 18px;\r\n  }\r\n\r\n  .size-card {\r\n    border: 1px solid #999999;\r\n    min-height: 94px;\r\n    display: flex;\r\n    flex-direction: column;\r\n    justify-content: center;\r\n    text-align: center;\r\n    box-sizing: border-box;\r\n    cursor: pointer;\r\n    transition: border 0.2s ease, box-shadow 0.2s ease;\r\n    background: #ffffff;\r\n    padding: 10px 6px;\r\n  }\r\n\r\n  .size-card:hover {\r\n    border-color: #FEA400 !important;\r\n    background-color: #ffffff !important;\r\n  }\r\n\r\n  .size-card.active {\r\n    border: 2px solid #FEA400;\r\n  }\r\n\r\n  .size-title {\r\n    font-size: 28px;\r\n    color: #014035;\r\n    line-height: 1;\r\n    margin-bottom: 12px;\r\n    font-weight: 400;\r\n  }\r\n\r\n  .size-desc {\r\n    font-size: 11px;\r\n    color: #777777;\r\n    line-height: 1.35;\r\n  }\r\n\r\n  .check-block {\r\n    margin-bottom: 22px;\r\n  }\r\n\r\n  .custom-checkbox {\r\n    display: flex;\r\n    align-items: center;\r\n    gap: 10px;\r\n    margin-bottom: 14px;\r\n    cursor: pointer;\r\n  }\r\n\r\n  .custom-checkbox input {\r\n    display: none;\r\n  }\r\n\r\n  .custom-checkbox span {\r\n    width: 24px;\r\n    height: 24px;\r\n    border: 1px solid #014035;\r\n    display: inline-flex;\r\n    align-items: center;\r\n    justify-content: center;\r\n    box-sizing: border-box;\r\n    flex-shrink: 0;\r\n    background-color: #ffffff;\r\n  }\r\n\r\n  .custom-checkbox:hover span {\r\n    background-color: #ffffff !important;\r\n    border-color: #014035 !important;\r\n  }\r\n\r\n  .custom-checkbox input:checked + span::after {\r\n    content: \"\u2713\";\r\n    color: #014035;\r\n    font-size: 20px;\r\n    line-height: 1;\r\n  }\r\n\r\n  .custom-checkbox strong {\r\n    font-size: 15px;\r\n    color: #111111;\r\n  }\r\n\r\n  .info-box {\r\n    background: #eef2f1;\r\n    color: #666666;\r\n    font-size: 14px;\r\n    line-height: 1.25;\r\n    padding: 18px 20px;\r\n    box-sizing: border-box;\r\n  }\r\n\r\n  @media (max-width: 480px) {\r\n    .golf-popup-overlay {\r\n      padding: 12px;\r\n      align-items: center;\r\n      justify-content: center;\r\n    }\r\n\r\n    .golf-popup {\r\n      max-width: 100%;\r\n      max-height: 90vh;\r\n      padding: 56px 18px 20px;\r\n    }\r\n\r\n    .size-grid {\r\n      gap: 10px;\r\n    }\r\n\r\n    .size-card {\r\n      min-height: 94px;\r\n      padding: 10px 5px;\r\n    }\r\n\r\n    .size-title {\r\n      font-size: 26px;\r\n      margin-bottom: 10px;\r\n    }\r\n\r\n    .size-desc {\r\n      font-size: 10.5px;\r\n    }\r\n\r\n    .popup-actions {\r\n      gap: 12px;\r\n    }\r\n  }\r\n<\/style>\r\n\r\n<script>\r\n  const RSVP_EVENT_ID = \"bt6\";\r\n  const RSVP_API_BASE_URL = \"https:\/\/e-invite.zen-apps.com\/api\";\r\n  const NEW_RESPONSE_API_URL = \"https:\/\/golf.beaufort.cm\/inscription\/invitation\/api\/index.php\/reponse\";\r\n\r\n  const STATUS_MAPPING = {\r\n    yes: \"confirmed\",\r\n    maybe: \"maybe\",\r\n    no: \"declined\"\r\n  };\r\n\r\n  const TRANSLATIONS = {\r\n    fr: {\r\n      yes: \"Oui\",\r\n      maybe: \"Peut-\u00eatre\",\r\n      no: \"Non\",\r\n      modalTitle: \"Compl\u00e9tez vos informations\",\r\n      clubMemberQuestion: \"Appartenez-vous \u00e0 un club ?\",\r\n      handicapLabel: \"Handicap approximatif\",\r\n      continue: \"Continuer\",\r\n      back: \"Pr\u00e9c\u00e9dent\",\r\n      validate: \"Valider\",\r\n      submit: \"Valider\",\r\n      chooseSize: \"Choisissez votre taille de polo\",\r\n      chestMeasurement: \"Tour de poitrine\",\r\n      acceptTermsTitle: \"Acceptez les conditions\",\r\n      rulesAcceptedLabel: \"J\u2019accepte les r\u00e8gles du tournoi\",\r\n      rulesText: \"Je confirme avoir lu et compris le r\u00e8glement du Beaufort Golf Tour 2026 et m'engage \u00e0 le respecter.\",\r\n      imageAuthorizationLabel: \"J\u2019autorise l\u2019utilisation de mon image\",\r\n      imageAuthorizationText: \"J\u2019autorise les organisateurs \u00e0 utiliser les photos et vid\u00e9os prises lors de l\u2019\u00e9v\u00e9nement \u00e0 des fins promotionnelles sur leurs supports de communication.\",\r\n      missingCode: \"Code invit\u00e9 introuvable dans l'URL.\",\r\n      chooseAnswer: \"Veuillez choisir une r\u00e9ponse.\",\r\n      acceptRulesError: \"Veuillez accepter les r\u00e8gles du tournoi.\",\r\n      sending: \"Envoi de votre r\u00e9ponse...\",\r\n      saveError: \"Une erreur est survenue lors de l'enregistrement.\",\r\n      confirmedMessage: \"Merci d'avoir confirm\u00e9 votre pr\u00e9sence !\",\r\n      maybeMessage: \"Nous esp\u00e9rons que vous pourrez vous joindre \u00e0 nous !\",\r\n      declinedMessage: \"Nous sommes d\u00e9sol\u00e9s que vous ne puissiez pas venir.\"\r\n    },\r\n    en: {\r\n      yes: \"Yes\",\r\n      maybe: \"Maybe\",\r\n      no: \"No\",\r\n      modalTitle: \"Complete your information\",\r\n      clubMemberQuestion: \"Are you a club member?\",\r\n      handicapLabel: \"Approximate handicap\",\r\n      continue: \"Continue\",\r\n      back: \"Back\",\r\n      validate: \"Confirm\",\r\n      submit: \"Submit\",\r\n      chooseSize: \"Choose your polo size\",\r\n      chestMeasurement: \"Chest measurement\",\r\n      acceptTermsTitle: \"Accept the terms\",\r\n      rulesAcceptedLabel: \"I accept the tournament rules\",\r\n      rulesText: \"I confirm that I have read and understood the Beaufort Golf Tour 2026 rules and agree to comply with them.\",\r\n      imageAuthorizationLabel: \"I authorize the use of my image\",\r\n      imageAuthorizationText: \"I authorize the organizers to use photos and videos taken during the event for promotional purposes on their communication materials.\",\r\n      missingCode: \"Invitation code not found in the URL.\",\r\n      chooseAnswer: \"Please choose an answer.\",\r\n      acceptRulesError: \"Please accept the tournament rules.\",\r\n      sending: \"Sending your response...\",\r\n      saveError: \"An error occurred while saving.\",\r\n      confirmedMessage: \"Thank you for confirming your attendance!\",\r\n      maybeMessage: \"We hope you will be able to join us!\",\r\n      declinedMessage: \"We are sorry you cannot attend.\"\r\n    }\r\n  };\r\n\r\n  let selectedStatus = null;\r\n  let selectedSize = \"XS\";\r\n  let currentLang = \"fr\";\r\n\r\n  function getInviteCode() {\r\n    const search = window.location.search;\r\n\r\n    if (!search || !search.startsWith(\"?\")) {\r\n      return \"\";\r\n    }\r\n\r\n    const rawQuery = search.substring(1);\r\n    const params = new URLSearchParams(rawQuery);\r\n\r\n    const possibleKeys = [\r\n      \"contact_id\",\r\n      \"invite_code\",\r\n      \"code\",\r\n      \"id\"\r\n    ];\r\n\r\n    for (const key of possibleKeys) {\r\n      const value = params.get(key);\r\n\r\n      if (value) {\r\n        return sanitizeInviteCode(value);\r\n      }\r\n    }\r\n\r\n    const firstPart = rawQuery.split(\"&\")[0];\r\n\r\n    if (firstPart.includes(\"=\")) {\r\n      return sanitizeInviteCode(firstPart.split(\"=\")[1]);\r\n    }\r\n\r\n    return sanitizeInviteCode(firstPart);\r\n  }\r\n\r\n  function sanitizeInviteCode(value) {\r\n    return String(value || \"\")\r\n      .trim()\r\n      .replace(\/[^a-zA-Z0-9_-]\/g, \"\");\r\n  }\r\n\r\n  function showToast(message, duration = 5000) {\r\n    const toast = document.getElementById(\"toast\");\r\n\r\n    toast.textContent = message;\r\n    toast.style.opacity = \"1\";\r\n    toast.style.transform = \"translateX(-50%) translateY(0)\";\r\n\r\n    setTimeout(() => {\r\n      toast.style.opacity = \"0\";\r\n      toast.style.transform = \"translateX(-50%) translateY(20px)\";\r\n    }, duration);\r\n  }\r\n\r\n  function translatePage(lang) {\r\n    currentLang = lang;\r\n\r\n    document.querySelectorAll(\"[data-i18n]\").forEach(element => {\r\n      const key = element.getAttribute(\"data-i18n\");\r\n\r\n      if (TRANSLATIONS[lang][key]) {\r\n        element.textContent = TRANSLATIONS[lang][key];\r\n      }\r\n    });\r\n\r\n    document.querySelectorAll(\"[data-placeholder-fr]\").forEach(input => {\r\n      input.placeholder = input.getAttribute(`data-placeholder-${lang}`);\r\n    });\r\n\r\n    document.getElementById(\"yes\").textContent = TRANSLATIONS[lang].yes;\r\n    document.getElementById(\"maybe\").textContent = TRANSLATIONS[lang].maybe;\r\n    document.getElementById(\"no\").textContent = TRANSLATIONS[lang].no;\r\n\r\n    document.getElementById(\"langFr\").classList.toggle(\"active\", lang === \"fr\");\r\n    document.getElementById(\"langEn\").classList.toggle(\"active\", lang === \"en\");\r\n  }\r\n\r\n  async function checkInvitation(inviteCode) {\r\n    const cleanInviteCode = sanitizeInviteCode(inviteCode);\r\n\r\n    const url = `${RSVP_API_BASE_URL}\/check_invitation?event_id=${encodeURIComponent(RSVP_EVENT_ID)}&contact_id=${encodeURIComponent(cleanInviteCode)}`;\r\n\r\n    const response = await fetch(url, {\r\n      method: \"GET\",\r\n      headers: {\r\n        \"Accept\": \"application\/json\"\r\n      }\r\n    });\r\n\r\n    return await response.json();\r\n  }\r\n\r\n  async function updateOldRsvpStatus(inviteCode, status) {\r\n    const cleanInviteCode = sanitizeInviteCode(inviteCode);\r\n\r\n    const response = await fetch(`${RSVP_API_BASE_URL}\/update-response-status`, {\r\n      method: \"POST\",\r\n      headers: {\r\n        \"Content-Type\": \"application\/json\",\r\n        \"Accept\": \"application\/json\"\r\n      },\r\n      body: JSON.stringify({\r\n        event_id: RSVP_EVENT_ID,\r\n        contact_id: cleanInviteCode,\r\n        status: status\r\n      })\r\n    });\r\n\r\n    if (!response.ok) {\r\n      throw new Error(\"Erreur ancien RSVP\");\r\n    }\r\n\r\n    return await response.json();\r\n  }\r\n\r\n  async function saveGolfResponse(inviteCode, status) {\r\n    const cleanInviteCode = sanitizeInviteCode(inviteCode);\r\n    const clubMember = document.querySelector('input[name=\"club_member\"]:checked')?.value || \"oui\";\r\n    const clubName = document.getElementById(\"clubName\").value.trim();\r\n    const handicap = Number(document.getElementById(\"handicapRange\").value || 0);\r\n    const tournaments = Number(document.getElementById(\"tournamentsCount\").value || 0);\r\n    const rulesAccepted = document.getElementById(\"rulesAccepted\").checked ? 1 : 0;\r\n    const imageAuthorization = document.getElementById(\"imageAuthorization\").checked ? 1 : 0;\r\n\r\n    const payload = {\r\n      invite_code: cleanInviteCode,\r\n      reponse_status: STATUS_MAPPING[status],\r\n      user_info: {\r\n        profile_type: \"amateur\",\r\n        lastname: \"\",\r\n        firstname: \"\",\r\n        gender: \"\",\r\n        phone: \"\",\r\n        email: \"\",\r\n        club_member: clubMember,\r\n        club: clubName,\r\n        handicap: handicap,\r\n        tournaments: tournaments,\r\n        size: selectedSize,\r\n        rules_accepted: rulesAccepted,\r\n        image_authorization: imageAuthorization\r\n      }\r\n    };\r\n\r\n    const response = await fetch(NEW_RESPONSE_API_URL, {\r\n      method: \"POST\",\r\n      headers: {\r\n        \"Content-Type\": \"application\/json\",\r\n        \"Accept\": \"application\/json\"\r\n      },\r\n      body: JSON.stringify(payload)\r\n    });\r\n\r\n    if (!response.ok) {\r\n      throw new Error(\"Erreur nouvelle API\");\r\n    }\r\n\r\n    return await response.json();\r\n  }\r\n\r\n  function setButtonsDisabled(disabled) {\r\n    document.getElementById(\"yes\").disabled = disabled;\r\n    document.getElementById(\"maybe\").disabled = disabled;\r\n    document.getElementById(\"no\").disabled = disabled;\r\n    document.getElementById(\"finalSubmit\").disabled = disabled;\r\n  }\r\n\r\n  document.addEventListener(\"DOMContentLoaded\", function () {\r\n    const inviteCode = getInviteCode();\r\n\r\n    const steps = document.querySelectorAll(\".popup-step\");\r\n    const nextButtons = document.querySelectorAll(\".next-step\");\r\n    const prevButtons = document.querySelectorAll(\".prev-step\");\r\n    const closeButton = document.querySelector(\".popup-close\");\r\n    const overlay = document.getElementById(\"golfPopupOverlay\");\r\n    const handicapRange = document.getElementById(\"handicapRange\");\r\n    const handicapValue = document.getElementById(\"handicapValue\");\r\n    const sizeCards = document.querySelectorAll(\".size-card\");\r\n\r\n    let currentStep = 0;\r\n\r\n    translatePage(\"fr\");\r\n\r\n    function showStep(index) {\r\n      steps.forEach((step, i) => {\r\n        step.classList.toggle(\"active\", i === index);\r\n      });\r\n    }\r\n\r\n    function resetFormDefaults() {\r\n      document.querySelector('input[name=\"club_member\"][value=\"oui\"]').checked = true;\r\n      document.getElementById(\"clubName\").value = \"\";\r\n      document.getElementById(\"handicapRange\").value = 0;\r\n      document.getElementById(\"handicapValue\").textContent = \"= 0\";\r\n      document.getElementById(\"tournamentsCount\").value = \"\";\r\n      document.getElementById(\"rulesAccepted\").checked = false;\r\n      document.getElementById(\"imageAuthorization\").checked = false;\r\n\r\n      sizeCards.forEach(card => card.classList.remove(\"active\"));\r\n\r\n      const defaultSizeCard = document.querySelector('.size-card[data-size=\"XS\"]');\r\n\r\n      if (defaultSizeCard) {\r\n        defaultSizeCard.classList.add(\"active\");\r\n      }\r\n\r\n      selectedSize = \"XS\";\r\n    }\r\n\r\n    function openPopup(status) {\r\n      selectedStatus = status;\r\n      currentStep = 0;\r\n      resetFormDefaults();\r\n      showStep(currentStep);\r\n      overlay.style.display = \"flex\";\r\n    }\r\n\r\n    function closePopup() {\r\n      overlay.style.display = \"none\";\r\n    }\r\n\r\n    function updateSizeActive(selectedCard) {\r\n      sizeCards.forEach(card => card.classList.remove(\"active\"));\r\n      selectedCard.classList.add(\"active\");\r\n      selectedSize = selectedCard.dataset.size;\r\n    }\r\n\r\n    handicapValue.textContent = \"= \" + handicapRange.value;\r\n\r\n    if (!inviteCode) {\r\n      setButtonsDisabled(true);\r\n      showToast(TRANSLATIONS[currentLang].missingCode);\r\n      return;\r\n    }\r\n\r\n    document.getElementById(\"langFr\").addEventListener(\"click\", function () {\r\n      translatePage(\"fr\");\r\n    });\r\n\r\n    document.getElementById(\"langEn\").addEventListener(\"click\", function () {\r\n      translatePage(\"en\");\r\n    });\r\n\r\n    document.getElementById(\"yes\").addEventListener(\"click\", function () {\r\n      openPopup(\"yes\");\r\n    });\r\n\r\n    document.getElementById(\"maybe\").addEventListener(\"click\", function () {\r\n      openPopup(\"maybe\");\r\n    });\r\n\r\n    document.getElementById(\"no\").addEventListener(\"click\", function () {\r\n      openPopup(\"no\");\r\n    });\r\n\r\n    nextButtons.forEach(button => {\r\n      button.addEventListener(\"click\", function () {\r\n        if (currentStep < steps.length - 1) {\r\n          currentStep++;\r\n          showStep(currentStep);\r\n        }\r\n      });\r\n    });\r\n\r\n    prevButtons.forEach(button => {\r\n      button.addEventListener(\"click\", function () {\r\n        if (currentStep > 0) {\r\n          currentStep--;\r\n          showStep(currentStep);\r\n        }\r\n      });\r\n    });\r\n\r\n    closeButton.addEventListener(\"click\", closePopup);\r\n\r\n    overlay.addEventListener(\"click\", function (event) {\r\n      if (event.target === overlay) {\r\n        closePopup();\r\n      }\r\n    });\r\n\r\n    handicapRange.addEventListener(\"input\", function () {\r\n      handicapValue.textContent = \"= \" + handicapRange.value;\r\n    });\r\n\r\n    sizeCards.forEach(card => {\r\n      card.addEventListener(\"click\", function () {\r\n        updateSizeActive(card);\r\n      });\r\n    });\r\n\r\n    document.getElementById(\"finalSubmit\").addEventListener(\"click\", async function () {\r\n      if (!selectedStatus) {\r\n        showToast(TRANSLATIONS[currentLang].chooseAnswer);\r\n        return;\r\n      }\r\n\r\n      const rulesAccepted = document.getElementById(\"rulesAccepted\").checked;\r\n\r\n      if (!rulesAccepted) {\r\n        showToast(TRANSLATIONS[currentLang].acceptRulesError);\r\n        return;\r\n      }\r\n\r\n      try {\r\n        setButtonsDisabled(true);\r\n        showToast(TRANSLATIONS[currentLang].sending);\r\n\r\n        await updateOldRsvpStatus(inviteCode, selectedStatus);\r\n        await saveGolfResponse(inviteCode, selectedStatus);\r\n\r\n        closePopup();\r\n\r\n        document.getElementById(selectedStatus).style.backgroundColor = \"#64BF33\";\r\n        document.getElementById(selectedStatus).style.color = \"#014035\";\r\n        document.getElementById(selectedStatus).style.borderColor = \"#64BF33\";\r\n\r\n        const successMessages = {\r\n          yes: TRANSLATIONS[currentLang].confirmedMessage,\r\n          maybe: TRANSLATIONS[currentLang].maybeMessage,\r\n          no: TRANSLATIONS[currentLang].declinedMessage\r\n        };\r\n\r\n        showToast(successMessages[selectedStatus]);\r\n\r\n      } catch (error) {\r\n        console.error(error);\r\n        showToast(TRANSLATIONS[currentLang].saveError);\r\n      } finally {\r\n        setButtonsDisabled(false);\r\n      }\r\n    });\r\n  });\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-fb90b8c e-con-full e-flex e-con e-child\" data-id=\"fb90b8c\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4acb27a8 elementor-widget elementor-widget-image\" data-id=\"4acb27a8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"391\" height=\"275\" src=\"https:\/\/betclic.pass.cm\/wp-content\/uploads\/2026\/06\/image-1656.png\" class=\"attachment-large size-large wp-image-23\" alt=\"\" srcset=\"https:\/\/betclic.pass.cm\/wp-content\/uploads\/2026\/06\/image-1656.png 391w, https:\/\/betclic.pass.cm\/wp-content\/uploads\/2026\/06\/image-1656-300x211.png 300w\" sizes=\"(max-width: 391px) 100vw, 391px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-3c16a857 e-con-full e-flex e-con e-child\" data-id=\"3c16a857\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-694a61f1 elementor-hidden-desktop elementor-hidden-tablet elementor-hidden-mobile e-flex e-con-boxed e-con e-parent\" data-id=\"694a61f1\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-49a931b4 elementor-widget elementor-widget-image\" data-id=\"49a931b4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"188\" src=\"https:\/\/betclic.pass.cm\/wp-content\/uploads\/2026\/06\/Frame-1000004521-1-1024x240.png\" class=\"attachment-large size-large wp-image-24\" alt=\"\" srcset=\"https:\/\/betclic.pass.cm\/wp-content\/uploads\/2026\/06\/Frame-1000004521-1-1024x240.png 1024w, https:\/\/betclic.pass.cm\/wp-content\/uploads\/2026\/06\/Frame-1000004521-1-300x70.png 300w, https:\/\/betclic.pass.cm\/wp-content\/uploads\/2026\/06\/Frame-1000004521-1-768x180.png 768w, https:\/\/betclic.pass.cm\/wp-content\/uploads\/2026\/06\/Frame-1000004521-1.png 1242w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-392b1083 elementor-hidden-desktop elementor-hidden-tablet elementor-hidden-mobile e-flex e-con-boxed e-con e-parent\" data-id=\"392b1083\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-312e67 elementor-mobile-align-center elementor-widget elementor-widget-button\" data-id=\"312e67\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/wa.me\/237651409409?text=Invitation-Heineken\" target=\"_blank\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Cliquez ici pour recevoir votre e-Invitation via WhatsApp<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-67f74b0c elementor-hidden-desktop elementor-hidden-tablet elementor-hidden-mobile e-flex e-con-boxed e-con e-parent\" data-id=\"67f74b0c\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5c43d22d elementor-widget elementor-widget-heading\" data-id=\"5c43d22d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Votre e-invitation<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-20caaf47 elementor-hidden-desktop elementor-hidden-tablet elementor-hidden-mobile elementor-widget elementor-widget-html\" data-id=\"20caaf47\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- PARTIE 1: G\u00e9n\u00e9ration d'image personnalis\u00e9e -->\n        <div style=\"margin-bottom: 20px;\">\n            <!-- Conteneur pour l'image g\u00e9n\u00e9r\u00e9e -->\n            <div id=\"image-container\" style=\"text-align: center;\">\n                <div id=\"personalized-image\" style=\"position: relative; display: inline-block;\">\n                    <img decoding=\"async\" id=\"base-image\" style=\"width: 100%; max-width: 600px; display: block; border-radius: 8px; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);\" src=\"https:\/\/champions.cm\/wp-content\/uploads\/2025\/05\/billet-lr-25.jpeg\" alt=\"Image d'invitation\">\n                    <div id=\"guest-name\" style=\"position: absolute; top: 33.5%; left: 0; font-size: 10px; color: #007B1B; font-weight: bold; font-family: 'Heineken', serif; text-align: left; padding-left: 22px;\"><\/div>\n                <\/div>\n            <\/div>\n            \n            <div id=\"image-result\" style=\"padding: 15px; border-radius: 5px; margin: 20px 0; text-align: center; display: none;\"><\/div>\n        <\/div>\n        \n        <!-- Script pour la partie 1: G\u00e9n\u00e9ration d'image personnalis\u00e9e -->\n        <script>\n            \/\/ Configuration - Code de l'\u00e9v\u00e9nement fixe\n            const EVENT_ID = \"bt6\";\n            const API_BASE_URL = \"https:\/\/e-invite.zen-apps.com\/api\";\n            \n            \/\/ Fonction pour extraire le code invit\u00e9 de l'URL\n            function getGuestCode() {\n                \/\/ R\u00e9cup\u00e9rer la partie query de l'URL (tout ce qui suit le ?)\n                const queryString = window.location.search;\n                \n                \/\/ Si la query commence par '?', on enl\u00e8ve ce caract\u00e8re\n                if (queryString.startsWith('?')) {\n                    \/\/ On retourne tout ce qui suit le '?' comme code invit\u00e9\n                    return queryString.substring(1);\n                }\n                \n                return '';\n            }\n            \n            \/\/ Fonction pour r\u00e9cup\u00e9rer les informations de l'invit\u00e9\n            async function fetchGuestInfo(contactId, eventId) {\n                try {\n                    console.log(`Fetching guest info for contact ${contactId} and event ${eventId}`);\n                    \n                    \/\/ Appel direct \u00e0 l'API sans proxy CORS\n                    const response = await fetch(`${API_BASE_URL}\/check_invitation?event_id=${eventId}&contact_id=${contactId}`, {\n                        headers: {\n                            'Accept': 'application\/json'\n                        }\n                    });\n                    \n                    if (!response.ok) {\n                        throw new Error(`Erreur HTTP: ${response.status}`);\n                    }\n                    \n                    const data = await response.json();\n                    return data;\n                } catch (error) {\n                    console.error(\"Erreur lors de la r\u00e9cup\u00e9ration des informations:\", error);\n                    return {\n                        status: \"error\",\n                        message: \"Nous n'avons pas pu charger vos informations. Veuillez r\u00e9essayer plus tard.\"\n                    };\n                }\n            }\n            \n            \/\/ Fonction pour afficher un message\n            function displayImageMessage(type, message) {\n                const element = document.getElementById('image-result');\n                element.innerHTML = message;\n                \n                \/\/ Style \u00e9l\u00e9gant pour tous les types de messages\n                element.style.backgroundColor = 'transparent';\n                element.style.color = 'white';\n                element.style.textShadow = '1px 1px 3px rgba(0,0,0,0.5)';\n                element.style.fontStyle = 'italic';\n                element.style.fontSize = '14px';\n                \n                \/\/ Afficher l'\u00e9l\u00e9ment\n                element.style.display = 'block';\n            }\n            \n            \/\/ Initialisation\n            document.addEventListener('DOMContentLoaded', async function() {\n                \/\/ R\u00e9cup\u00e9rer le code d'invitation depuis l'URL\n                const contactId = getGuestCode();\n                \n                if (!contactId) {\n                    displayImageMessage('error', 'Votre invitation semble incompl\u00e8te. Veuillez utiliser le lien re\u00e7u dans votre SMS \/ message WhatsApp.');\n                    return;\n                }\n                \n                \/\/ Afficher un message de chargement\n                displayImageMessage('loading', 'R\u00e9cup\u00e9ration des informations de l\\'invit\u00e9...');\n                \n                \/\/ R\u00e9cup\u00e9rer les informations de l'invit\u00e9\n                const result = await fetchGuestInfo(contactId, EVENT_ID);\n                \n                if (result.status === 'success') {\n                    if (result.is_registered) {\n                        \/\/ R\u00e9cup\u00e9rer le nom de la personne tel que re\u00e7u via l'API\n                        const guestName = result.contact.full_name;\n                        \n                        \n                        \/\/ Afficher le nom sur l'image\n                        document.getElementById('guest-name').textContent = guestName;\n                        \n                        document.getElementById(\"mon-titre-id\").innerText = guestName;\n                        document.getElementById(\"mon-titre-id\").style.color = \"#e6b839\";\n                \n                        \/\/ Masquer le message de r\u00e9sultat au lieu d'afficher un message de bienvenue\n                        document.getElementById('image-result').style.display = 'none';\n                    } else {\n                        \/\/ Afficher un message d'erreur\n                        displayImageMessage('error', result.message || 'Nous ne trouvons pas votre invitation. V\u00e9rifiez que vous utilisez le bon lien.');\n                    }\n                } else {\n                    \/\/ Afficher un message d'erreur\n                    displayImageMessage('error', result.message || 'Un petit probl\u00e8me est survenu. Veuillez r\u00e9essayer plus tard.');\n                }\n            });\n        <\/script>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"footnotes":""},"class_list":["post-7","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/betclic.pass.cm\/index.php?rest_route=\/wp\/v2\/pages\/7","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/betclic.pass.cm\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/betclic.pass.cm\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/betclic.pass.cm\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/betclic.pass.cm\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=7"}],"version-history":[{"count":11,"href":"https:\/\/betclic.pass.cm\/index.php?rest_route=\/wp\/v2\/pages\/7\/revisions"}],"predecessor-version":[{"id":37,"href":"https:\/\/betclic.pass.cm\/index.php?rest_route=\/wp\/v2\/pages\/7\/revisions\/37"}],"wp:attachment":[{"href":"https:\/\/betclic.pass.cm\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=7"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}