{"id":3153,"date":"2025-07-21T19:17:29","date_gmt":"2025-07-21T18:17:29","guid":{"rendered":"http:\/\/www.proface.askonsult.com\/?page_id=3153"},"modified":"2025-07-27T12:54:38","modified_gmt":"2025-07-27T11:54:38","slug":"contact","status":"publish","type":"page","link":"https:\/\/www.proface.askonsult.com\/en\/contact\/","title":{"rendered":""},"content":{"rendered":"<!DOCTYPE html>\n<html lang=\"fr\">\n<head>\n  <meta charset=\"UTF-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scafle=1.0\">\n\n  <title>Blog Design<\/title>\n  <!-- Import fonts -->\n  <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@300;400;500;600;700&#038;family=Playfair+Display:wght@400;500;600;700&#038;display=swap\" rel=\"stylesheet\">\n  <!-- Tailwind CSS CDN -->\n  <script src=\"https:\/\/cdn.tailwindcss.com\"><\/script>\n  <script>\n    tailwind.config = {\n      theme: {\n        extend: {\n          fontFamily: {\n            sans: ['Inter', 'sans-serif'],\n            serif: ['Playfair Display', 'serif'],\n          },\n        }\n      }\n    }\n  <\/script>\n  <style>\n    html, body {\n    width: 100%;\n    margin: 0;\n    padding: 0;\n}\n\n.container {\n    width: 100%;\n    padding: 0 20px;\n    box-sizing: border-box;\n   top: -50px; \n}\n\n      \n\n  .header1 {\n    width: 100vw;\n    margin-left: calc(-50vw + 50%);\n    height: 60vh;\n    min-height: 400px;\n\n    background-image: url('https:\/\/i.pinimg.com\/1200x\/97\/27\/2f\/97272fc25e7a9f5dc4f062934617520e.jpg');\n    background-size: cover;\n    background-position: center;\n    background-repeat: no-repeat;\n   top: -110px; \n    color: white;\n    text-align: center;\n    margin-top: 60px;\n\n    display: flex;\n    justify-content: center;\n    align-items: center;\n}\n\n\n\n        .contact-us {\n            color: #ff8c42;\n            font-size: 14px;\n            font-weight: bold;\n            letter-spacing: 2px;\n            text-transform: uppercase;\n            margin-bottom: 10px;\n            position: relative;\n        }\n\n        .contact-us::before,\n        .contact-us::after {\n            content: '';\n            position: absolute;\n            top: 50%;\n            width: 50px;\n            height: 2px;\n            background-color: #ff8c42;\n        }\n\n        .contact-us::before {\n            left: -70px;\n        }\n\n        .contact-us::after {\n            right: -70px;\n        }\n\n        .main-title {\n            font-size: 48px;\n            font-weight: bold;\n            color: #2c3e50;\n            margin-bottom: 40px;\n        }\n\n        .main-title span {\n            color: #ff8c42;\n        }\n\n       .contact-info {\n    display: flex;\n    justify-content: space-around;\n    margin-top: 60px;     \/* \u2705 Ajout pour d\u00e9placer vers le bas *\/\n    margin-bottom: 100px;\n    flex-wrap: wrap;\n}\n\n        .contact-item {\n            text-align: center;\n            margin: 10px;\n        }\n\n        .contact-item h3 {\n            color: #ff8c42;\n            font-size: 14px;\n            font-weight: bold;\n            letter-spacing: 2px;\n            text-transform: uppercase;\n            margin-bottom: 15px;\n            position: relative;\n        }\n\n        .contact-item h3::after {\n            content: '';\n            position: absolute;\n            right: -20px;\n            top: 50%;\n            width: 30px;\n            height: 2px;\n            background-color: #ff8c42;\n        }\n\n        .contact-item p {\n            color: #7f8c8d;\n            font-size: 16px;\n            display: flex;\n            align-items: center;\n            justify-content: center;\n        }\n\n        .contact-item p::before {\n            content: '\u2709';\n            color: #ff8c42;\n            margin-right: 10px;\n            font-size: 18px;\n        }\n\n      .main-content {\n    width: 100vw;   \n    display: grid;\nmargin-top: 30px;\n gap: 40px;\n  margin-left: -80vw;\n    margin-right: -80vw;\n    grid-template-columns: 1fr 1fr;           \n    margin-left: calc(-50vw + 50%);  \/* pour annuler le centrage du container *\/\n       padding: 50px; \n       \/* un peu d'espace int\u00e9rieur *\/\n    box-sizing: border-box;\n    background: #fff;           \/* (optionnel) couleur de fond pour se d\u00e9tacher du reste *\/\n}\n\n        .map-container {\n  flex-grow: 1;\n            position: relative;\n            height: 900px;\n            border-radius: 15px;\n            overflow: hidden;\n            box-shadow: 0 15px 50px rgba(0,0,0,0.15);\n            border: 2px solid rgba(255, 140, 66, 0.1);\n        }\n\n        .map {\n            width: 100%;\n            height: 100%;\n            border-radius: 15px;\n        }\n\n        .map-overlay {\n            position: absolute;\n            top: 20px;\n            left: 20px;\n            background: rgba(255, 255, 255, 0.95);\n            backdrop-filter: blur(10px);\n            padding: 20px;\n            border-radius: 12px;\n            box-shadow: 0 8px 25px rgba(0,0,0,0.15);\n            z-index: 1000;\n            border: 1px solid rgba(255, 140, 66, 0.2);\n            min-width: 200px;\n        }\n\n        .map-overlay h4 {\n            font-size: 18px;\n            font-weight: bold;\n            color: #2c3e50;\n            margin-bottom: 8px;\n            display: flex;\n            align-items: center;\n        }\n\n        .map-overlay h4::before {\n            content: '\ud83d\udccd';\n            margin-right: 8px;\n            font-size: 16px;\n        }\n\n        .map-overlay p {\n            font-size: 14px;\n            color: #7f8c8d;\n            margin-bottom: 15px;\n            font-style: italic;\n        }\n\n        .directions-link {\n            color: #ff8c42;\n            font-size: 14px;\n            text-decoration: none;\n            font-weight: 600;\n            display: inline-flex;\n            align-items: center;\n            margin-right: 15px;\n            transition: all 0.3s ease;\n        }\n\n        .directions-link:hover {\n            color: #ff7b29;\n            transform: translateX(2px);\n        }\n\n        .directions-link::before {\n            margin-right: 5px;\n        }\n\n        .map-toggle {\n            position: absolute;\n            top: 20px;\n            right: 20px;\n            z-index: 1000;\n            display: flex;\n            background: rgba(255, 255, 255, 0.95);\n            backdrop-filter: blur(10px);\n            border-radius: 8px;\n            overflow: hidden;\n            box-shadow: 0 4px 15px rgba(0,0,0,0.1);\n        }\n\n        .map-toggle button {\n            background: transparent;\n            border: none;\n            padding: 12px 16px;\n            cursor: pointer;\n            font-size: 12px;\n            font-weight: 600;\n            color: #666;\n            transition: all 0.3s ease;\n            text-transform: uppercase;\n            letter-spacing: 0.5px;\n        }\n\n        .map-toggle button.active {\n            background: #ff8c42;\n            color: white;\n        }\n\n        .map-toggle button:hover:not(.active) {\n            background: #f0f0f0;\n        }\n\n        .alternative-map {\n            width: 100%;\n            height: 100%;\n            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n            position: relative;\n            display: none;\n            align-items: center;\n            justify-content: center;\n            color: white;\n            text-align: center;\n        }\n\n        .alternative-map.show {\n            display: flex;\n        }\n\n        .map-placeholder {\n            padding: 40px;\n        }\n\n        .map-placeholder h3 {\n            font-size: 24px;\n            margin-bottom: 15px;\n        }\n\n        .map-placeholder p {\n            font-size: 16px;\n            opacity: 0.9;\n            line-height: 1.6;\n        }\n\n        .contact-form {\n            background: white;\n            padding: 40px;\n            border-radius: 20px;\n            box-shadow: 0 15px 50px rgba(0,0,0,0.1);\n            backdrop-filter: blur(10px);\n            border: 1px solid rgba(255, 140, 66, 0.1);\n        }\n\n        .form-row {\n            display: grid;\n            grid-template-columns: 1fr 1fr;\n            gap: 25px;\n            margin-bottom: 25px;\n        }\n\n        .form-group {\n            margin-bottom: 25px;\n            position: relative;\n        }\n\n        .form-group label {\n            display: block;\n            font-weight: 600;\n            color: #2c3e50;\n            margin-bottom: 8px;\n            font-size: 14px;\n            text-transform: uppercase;\n            letter-spacing: 0.5px;\n        }\n\n        .form-group input,\n        .form-group textarea,\n        .form-group select {\n            width: 100%;\n            padding: 18px 20px;\n            border: 2px solid #e8ecf0;\n            border-radius: 12px;\n            font-size: 16px;\n            transition: all 0.3s ease;\n            background: linear-gradient(145deg, #ffffff, #f8f9fa);\n            box-shadow: inset 0 2px 4px rgba(0,0,0,0.02);\n        }\n\n        .form-group input:focus,\n        .form-group textarea:focus,\n        .form-group select:focus {\n            outline: none;\n            border-color: #ff8c42;\n            box-shadow: 0 0 0 3px rgba(255, 140, 66, 0.1);\n            transform: translateY(-2px);\n        }\n\n        .form-group textarea {\n            resize: vertical;\n            min-height: 140px;\n            font-family: inherit;\n        }\n\n        .file-upload-container {\n            position: relative;\n            margin-bottom: 25px;\n        }\n\n        .file-upload {\n            position: relative;\n            display: inline-block;\n            width: 100%;\n        }\n\n        .file-upload input[type=file] {\n            position: absolute;\n            opacity: 0;\n            width: 100%;\n            height: 100%;\n            cursor: pointer;\n        }\n\n        .file-upload-label {\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            padding: 30px 20px;\n            border: 3px dashed #e8ecf0;\n            border-radius: 12px;\n            background: linear-gradient(145deg, #f8f9fa, #ffffff);\n            cursor: pointer;\n            transition: all 0.3s ease;\n            text-align: center;\n        }\n\n        .file-upload-label:hover {\n            border-color: #ff8c42;\n            background: linear-gradient(145deg, #fff5f0, #f8f9fa);\n            transform: translateY(-2px);\n        }\n\n        .file-upload-icon {\n            font-size: 24px;\n            color: #ff8c42;\n            margin-right: 10px;\n        }\n\n        .file-upload-text {\n            color: #666;\n            font-size: 16px;\n        }\n\n        .file-restrictions {\n            font-size: 12px;\n            color: #7f8c8d;\n            margin-top: 8px;\n            text-align: center;\n            font-style: italic;\n        }\n\n        .selected-files {\n            margin-top: 15px;\n            padding: 15px;\n            background: #f0f8ff;\n            border-radius: 8px;\n            display: none;\n        }\n\n        .selected-files.show {\n            display: block;\n        }\n\n        .file-item {\n            display: flex;\n            align-items: center;\n            justify-content: space-between;\n            padding: 8px 0;\n            border-bottom: 1px solid #e0e0e0;\n        }\n\n        .file-item:last-child {\n            border-bottom: none;\n        }\n\n        .file-name {\n            color: #2c3e50;\n            font-weight: 500;\n        }\n\n        .file-size {\n            color: #7f8c8d;\n            font-size: 12px;\n        }\n\n        .remove-file {\n            background: #e74c3c;\n            color: white;\n            border: none;\n            border-radius: 50%;\n            width: 20px;\n            height: 20px;\n            cursor: pointer;\n            font-size: 12px;\n        }\n\n        .error-message {\n            color: #e74c3c;\n            font-size: 12px;\n            margin-top: 5px;\n            display: none;\n        }\n\n        .error-message.show {\n            display: block;\n        }\n\n        .submit-btn {\n            width: 100%;\n            background: linear-gradient(135deg, #00aaff 0%, #00aaff 100%);\n            color: white;\n            border: none;\n            padding: 20px;\n            border-radius: 12px;\n            font-size: 10px;\n            font-weight: bold;\n            text-transform: uppercase;\n            letter-spacing: 1px;\n            cursor: pointer;\n            transition: all 0.3s ease;\n            box-shadow: 0 8px 20px rgba(255, 140, 66, 0.3);\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            position: relative;\n            overflow: hidden;\n        }\n\n        .submit-btn::before {\n            content: '';\n            position: absolute;\n            top: 0;\n            left: -100%;\n            width: 100%;\n            height: 100%;\n            background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);\n            transition: left 0.5s;\n        }\n\n        .submit-btn:hover::before {\n            left: 100%;\n        }\n\n        .submit-btn:hover {\n            transform: translateY(-3px);\n            box-shadow: 0 12px 30px rgba(255, 140, 66, 0.4);\n        }\n\n        .submit-btn:active {\n            transform: translateY(-1px);\n        }\n\n        .btn-text {\n            margin-right: 10px;\n        }\n\n        .btn-icon {\n            font-size: 18px;\n            animation: bounce 2s infinite;\n        }\n\n        @keyframes bounce {\n            0%, 20%, 50%, 80%, 100% {\n                transform: translateY(0);\n            }\n            40% {\n                transform: translateY(-3px);\n            }\n            60% {\n                transform: translateY(-2px);\n            }\n        }\n\n        @media (max-width: 768px) {\n            .main-content {\n                grid-template-columns: 1fr;\n            }\n            \n            .contact-info {\n                flex-direction: column;\n                align-items: center;\n            }\n            \n            .form-row {\n                grid-template-columns: 1fr;\n            }\n            \n            .main-title {\n                font-size: 36px;\n            }\n            \n            .contact-us::before,\n            .contact-us::after {\n                display: none;\n            }\n        }\n    body {\n      font-family: 'Inter', sans-serif;\n      color: #0f172a;\n      line-height: 1.6;\n    }\n    .text-shadow {\n      text-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);\n    }\n    @keyframes fadeInUp {\n      from {\n        opacity: 0;\n        transform: translateY(30px);\n      }\n      to {\n        opacity: 1;\n        transform: translateY(0);\n      }\n    }\n    .animate-fadeInUp {\n      animation: fadeInUp 1s ease-out forwards;\n    }\n.contact-cards {\n    display: flex;\n    gap: 40px;\n\n    justify-content: center;\n    flex-wrap: wrap;\n    margin: 10px 0;\n  }\n\n  .contact-card {\nmargin-top: 25px;\n    background: #fff;\n    border-radius: 12px;\n    box-shadow: 0 8px 20px rgba(255, 140, 66, 0.2);\n    padding: 30px 40px;\n    max-width: 400px;\nmax-height: 110px;\n    flex: 1 1 280px;\n    color: #333;\n    text-align: center;\n  }\n\n  .contact-card h3 {\n    font-size: 1rem;\n    margin-bottom: 15px;\n    color: #00aaff;\n  }\n\n  .contact-card p {\n    margin: 8px 0;\n    font-size: 1rem;\n  }\n\n  .contact-card a {\n    color: #ff8c42;\n    text-decoration: none;\n  }\n\n  .contact-card a:hover {\n    text-decoration: underline;\n  }\n\n  @media (max-width: 768px) {\n    .contact-cards {\n      flex-direction: column;\n      align-items: center;\n    }\n  }\n\n.contact-form {\n    font-size: 14px; \/* Diminue la taille du texte globalement *\/\n  }\n\n  .contact-form h1 {\n    font-size: 1.5rem; \/* Titre r\u00e9duit *\/\n  }\n\n  .contact-form label {\n    font-size: 13px; \/* Taille des \u00e9tiquettes *\/\n  }\n\n  .contact-form input,\n  .contact-form select,\n  .contact-form textarea {\n    font-size: 13px; \/* Texte dans les champs *\/\n    padding: 8px;     \/* Optionnel : ajuster les paddings *\/\n  }\n\n  .submit-btn .btn-text {\n    font-size: 13px;\n  }\n\n  .file-restrictions,\n  .file-upload-text {\n    font-size: 12px;\n  }\n  <\/style>\n<\/head>\n<body class=\"min-h-screen bg-[#fefefe]\">\n  <!-- Hero  -->\n<section \n  class=\"relative min-h-[400px] h-[70vh] bg-cover bg-center bg-no-repeat flex items-center justify-center\"\n  style=\"    background-image: url('https:\/\/i.pinimg.com\/1200x\/97\/27\/2f\/97272fc25e7a9f5dc4f062934617520e.jpg');    width: 100vw;    margin-left: calc(-50vw + 50%); margin-top: -15px;  \"\n>\n  <div class=\"absolute inset-0 bg-black bg-opacity-20\"><\/div>\n\n  <div class=\"relative z-10 max-w-[900px] px-5 animate-fadeInUp text-white text-center\">\n   \n   <h1 class=\"text-[clamp(2rem,6vw,3rem)] font-serif font-extrabold text-transparent bg-clip-text           text-white  drop-shadow-md text-center  mb-6\">\nContact us for any request\n  <\/h1>\n<p style=\"text-align: center; font-size: 14px; color: white; margin-bottom: 40px;\">\n  Please do not hesitate to contact us for any information, reservation, partnership or technical assistance request. Our team will be happy to answer your questions as quickly as possible.\n<\/p>\n\n      <a \n  href=\"#FORMULAIRE\" \n  class=\"inline-flex items-center gap-3 px-4 py-2 bg-gradient-to-r from-blue-500 to-orange-600 rounded-full text-white font-semibold          transition-all duration-400 hover:shadow-[0_8px_20px_rgba(249,115,22,0.4)] hover:-translate-y-0.5\"\n>\n      <span>Contact<\/span>\n      <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"16\" height=\"16\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-arrow-up-right\"><path d=\"M7 7h10v10\"\/><path d=\"M7 17 17 7\"\/><\/svg>\n    <\/a>\n \n  <\/div>\n<\/section>\n\n\n<div class=\"contact-cards\">\n\n\n \n\n  <div class=\"contact-card\">\n    <h3>\ud83d\udce7 GENERAL<\/h3>\n    <p><strong>Email :<\/strong> <a href=\"mailto:Profice@example.com\">Profice@example.com<\/a><\/p>\n   \n  <\/div>\n <div class=\"contact-card\">\n    <h3>\ud83d\udee0\ufe0f Working hours <\/h3>\n   \n    <p><strong>Opening hours :<\/strong> Mon - Fri, 8.00 am - 5.00 pm<\/p>\n  <\/div>\n  <div class=\"contact-card\">\n    <h3>\ud83d\udccd Address<\/h3>\n   \n    <p><strong>Address:<\/strong> Marrakech<\/p>\n  \n  <\/div>\n<\/div>\n\n\n \n        <div class=\"main-content\">\n            <div class=\"map-container\">\n              <iframe class=\"map\" src=\"https:\/\/maps.google.com\/maps?q=31.662028,-8.028389&#038;t=&#038;z=15&#038;ie=UTF8&#038;iwloc=&#038;output=embed\"><\/iframe>\n\n                \n              <div class=\"map-overlay\">\n  <h4>Marrakech<\/h4>\n \n  <a href=\"https:\/\/www.google.com\/maps\/dir\/?api=1&#038;destination=31.662028,-8.028389\" target=\"_blank\" class=\"directions-link\">\ud83e\udded Itinerary<\/a>\n<\/div>\n\n                \n                <div class=\"map-toggle\">\n                    <button class=\"active\" onclick=\"showGoogleMap()\">SATELLITE<\/button>\n                    <button onclick=\"showAlternativeMap()\">PLAN<\/button>\n                <\/div>\n                \n                <div class=\"alternative-map\" id=\"alternativeMap\">\n                    <div class=\"map-placeholder\">\n                        <h3>\ud83d\udccd Our location<\/h3>\n                        <p>We are located in the heart of New York City<br>\n                        A dynamic, connected city<br>\n                        Easily accessible by all means of transport<\/p>\n                    <\/div>\n                <\/div>\n            <\/div>\n\n            <div class=\"contact-form\" id=\"FORMULAIRE\">\n   <h1 style=\"color: black; margin-bottom: 20px; font-size: 2rem; text-align: center;\">\n  Contact us\n<\/h1>\n\n                <form id=\"contactForm\" action=\"\">\n                    <div class=\"form-row\">\n                        <div class=\"form-group\">\n                            <label for=\"name\">Your name *<\/label>\n                            <input type=\"text\" id=\"name\" name=\"name\" placeholder=\"Enter your full name\" required>\n                        <\/div>\n                        <div class=\"form-group\">\n                            <label for=\"email\">Your e-mail address *<\/label>\n                            <input type=\"email\" id=\"email\" name=\"email\" placeholder=\"exemple@email.com\" required>\n                        <\/div>\n                    <\/div>\n                    \n                    <div class=\"form-group\">\n                        <label for=\"subject\">Subject *<\/label>\n                        <select id=\"subject\" name=\"subject\" required>\n                            <option value=\"\">Select a subject<\/option>\n                            <option value=\"general\">General request<\/option>\n                            <option value=\"booking\">Reservation<\/option>\n                            <option value=\"technical\">Technical support<\/option>\n                            <option value=\"partnership\">Partnership<\/option>\n                            <option value=\"complaint\">Claim<\/option>\n                            <option value=\"other\">Other<\/option>\n                        <\/select>\n                    <\/div>\n                    \n                    <div class=\"form-group\">\n                        <label for=\"message\">Message<\/label>\n                        <textarea id=\"message\" name=\"message\" placeholder=\"Describe your request in detail...\" required><\/textarea>\n                    <\/div>\n                    \n                    <div class=\"file-upload-container\">\n                        <label class=\"form-group label\">Attachments (optional)<\/label>\n                        <div class=\"file-upload\">\n                            <input type=\"file\" id=\"fileInput\" name=\"files[]\" multiple accept=\"image\/*,.pdf,.doc,.docx\">\n                            <label for=\"fileInput\" class=\"file-upload-label\">\n                                <span class=\"file-upload-icon\">\ud83d\udcce<\/span>\n                                <span class=\"file-upload-text\">Click to select files or drag and drop them here<\/span>\n                            <\/label>\n                        <\/div>\n                        <div class=\"file-restrictions\">\n                            Only images (JPG, PNG, GIF), PDF and Word documents are allowed.<br>\n                            Maximum file size: 5 MB\n                        <\/div>\n                        <div class=\"error-message\" id=\"fileError\"><\/div>\n                        <div class=\"selected-files\" id=\"selectedFiles\"><\/div>\n                    <\/div>\n                    \n                    <button type=\"submit\" class=\"submit-btn\">\n                        <span class=\"btn-text\">SEND MESSAGE<\/span>\n                        <span class=\"btn-icon\">\u2708\ufe0f<\/span>\n                    <\/button>\n                <input type=\"hidden\" name=\"trp-form-language\" value=\"en\"\/><\/form>\n            <\/div>\n        <\/div>\n    <\/div>\n \n\n\n    <script>\n        \/\/ Gestion de l'affichage des cartes\n        function showGoogleMap() {\n            const iframe = document.querySelector('.map');\n            const altMap = document.getElementById('alternativeMap');\n            const buttons = document.querySelectorAll('.map-toggle button');\n            \n            iframe.style.display = 'block';\n            altMap.classList.remove('show');\n            \n            buttons.forEach(btn => btn.classList.remove('active'));\n            event.target.classList.add('active');\n        }\n\n        function showAlternativeMap() {\n            const iframe = document.querySelector('.map');\n            const altMap = document.getElementById('alternativeMap');\n            const buttons = document.querySelectorAll('.map-toggle button');\n            \n            iframe.style.display = 'none';\n            altMap.classList.add('show');\n            \n            buttons.forEach(btn => btn.classList.remove('active'));\n            event.target.classList.add('active');\n        }\n\n        \/\/ Variables globales pour les fichiers\n        let selectedFiles = [];\n        const maxFileSize = 5 * 1024 * 1024; \/\/ 5 Mo en bytes\n        const allowedTypes = ['image\/jpeg', 'image\/jpg', 'image\/png', 'image\/gif', 'application\/pdf', 'application\/msword', 'application\/vnd.openxmlformats-officedocument.wordprocessingml.document'];\n\n        \/\/ Gestion de l'upload de fichiers\n        document.getElementById('fileInput').addEventListener('change', handleFileSelect);\n\n        function handleFileSelect(event) {\n            const files = Array.from(event.target.files);\n            const errorDiv = document.getElementById('fileError');\n            const selectedFilesDiv = document.getElementById('selectedFiles');\n            \n            errorDiv.classList.remove('show');\n            \n            files.forEach(file => {\n                if (!allowedTypes.includes(file.type)) {\n                    showError(${file.name} : Type de fichier non autoris\u00e9);\n                    return;\n                }\n                \n                if (file.size > maxFileSize) {\n                    showError(${file.name} : Fichier trop volumineux (max 5 Mo));\n                    return;\n                }\n                \n                if (!selectedFiles.find(f => f.name === file.name)) {\n                    selectedFiles.push(file);\n                }\n            });\n            \n            displaySelectedFiles();\n            event.target.value = ''; \/\/ Reset input\n        }\n\n        function displaySelectedFiles() {\n            const selectedFilesDiv = document.getElementById('selectedFiles');\n            \n            if (selectedFiles.length === 0) {\n                selectedFilesDiv.classList.remove('show');\n                return;\n            }\n            \n            selectedFilesDiv.innerHTML = '<h4 style=\"margin-bottom: 10px; color: #2c3e50;\">Fichiers s\u00e9lectionn\u00e9s :<\/h4>';\n            \n            selectedFiles.forEach((file, index) => {\n                const fileDiv = document.createElement('div');\n                fileDiv.className = 'file-item';\n                fileDiv.innerHTML = \n                    <div>\n                        <div class=\"file-name\">${file.name}<\/div>\n                        <div class=\"file-size\">${formatFileSize(file.size)}<\/div>\n                    <\/div>\n                    <button type=\"button\" class=\"remove-file\" onclick=\"removeFile(${index})\">\u00d7<\/button>\n                ;\n                selectedFilesDiv.appendChild(fileDiv);\n            });\n            \n            selectedFilesDiv.classList.add('show');\n        }\n\n        function removeFile(index) {\n            selectedFiles.splice(index, 1);\n            displaySelectedFiles();\n        }\n\n        function formatFileSize(bytes) {\n            if (bytes < 1024) return bytes + ' B';\n            if (bytes < 1024 * 1024) return Math.round(bytes \/ 1024) + ' KB';\n            return Math.round(bytes \/ (1024 * 1024)) + ' MB';\n        }\n\n        function showError(message) {\n            const errorDiv = document.getElementById('fileError');\n            errorDiv.textContent = message;\n            errorDiv.classList.add('show');\n        }\n\n        \/\/ Drag and drop functionality\n        const fileUploadLabel = document.querySelector('.file-upload-label');\n        \n        ['dragenter', 'dragover', 'dragleave', 'drop'].forEach(eventName => {\n            fileUploadLabel.addEventListener(eventName, preventDefaults, false);\n        });\n\n        function preventDefaults(e) {\n            e.preventDefault();\n            e.stopPropagation();\n        }\n\n        ['dragenter', 'dragover'].forEach(eventName => {\n            fileUploadLabel.addEventListener(eventName, highlight, false);\n        });\n\n        ['dragleave', 'drop'].forEach(eventName => {\n            fileUploadLabel.addEventListener(eventName, unhighlight, false);\n        });\n\n        function highlight(e) {\n            fileUploadLabel.style.borderColor = '#ff8c42';\n            fileUploadLabel.style.background = 'linear-gradient(145deg, #fff5f0, #f8f9fa)';\n        }\n\n        function unhighlight(e) {\n            fileUploadLabel.style.borderColor = '#e8ecf0';\n            fileUploadLabel.style.background = 'linear-gradient(145deg, #f8f9fa, #ffffff)';\n        }\n\n        fileUploadLabel.addEventListener('drop', handleDrop, false);\n\n        function handleDrop(e) {\n            const dt = e.dataTransfer;\n            const files = dt.files;\n            \n            handleFileSelect({ target: { files: files } });\n        }\n\n        \/\/ Fonctions pour les contr\u00f4les de la carte (conserv\u00e9es pour compatibilit\u00e9)\n        function zoomIn() {\n            console.log('Zoom in - Contr\u00f4l\u00e9 par Google Maps');\n        }\n\n        function zoomOut() {\n            console.log('Zoom out - Contr\u00f4l\u00e9 par Google Maps');\n        }\n\n        \/\/ Gestion du formulaire\n        document.getElementById('contactForm').addEventListener('submit', function(e) {\n            e.preventDefault();\n            \n            \/\/ Validation des champs\n            const name = document.getElementById('name').value.trim();\n            const email = document.getElementById('email').value.trim();\n            const subject = document.getElementById('subject').value;\n            const message = document.getElementById('message').value.trim();\n            \n            if (!name || !email || !subject || !message) {\n                alert('Veuillez remplir tous les champs obligatoires.');\n                return;\n            }\n            \n            \/\/ Animation du bouton\n            const button = this.querySelector('.submit-btn');\n            const btnText = button.querySelector('.btn-text');\n            const btnIcon = button.querySelector('.btn-icon');\n            \n            btnText.innerHTML = 'ENVOI EN COURS...';\n            btnIcon.innerHTML = '\u23f3';\n            button.style.background = '#3498db';\n            button.disabled = true;\n            \n            \/\/ Simuler l'envoi\n            setTimeout(() => {\n                btnText.innerHTML = 'MESSAGE ENVOY\u00c9';\n                btnIcon.innerHTML = '\u2705';\n                button.style.background = '#27ae60';\n                \n                setTimeout(() => {\n                    btnText.innerHTML = 'ENVOYER LE MESSAGE';\n                    btnIcon.innerHTML = '\u2708\ufe0f';\n                    button.style.background = 'linear-gradient(135deg, #ff8c42 0%, #ff7b29 100%)';\n                    button.disabled = false;\n                    this.reset();\n                    selectedFiles = [];\n                    displaySelectedFiles();\n                }, 3000);\n            }, 2000);\n        });\n\n        \/\/ Effets d'animation au scroll\n        window.addEventListener('scroll', function() {\n            const elements = document.querySelectorAll('.contact-form, .map-container');\n            elements.forEach(element => {\n                const elementTop = element.offsetTop;\n                const elementBottom = elementTop + element.offsetHeight;\n                const viewportTop = window.pageYOffset;\n                const viewportBottom = viewportTop + window.innerHeight;\n                \n                if (elementBottom > viewportTop && elementTop < viewportBottom) {\n                    element.style.transform = 'translateY(0)';\n                    element.style.opacity = '1';\n                }\n            });\n        });\n    <\/script>\n\n\n\n<\/html>\n\n\n\n<p><\/p>","protected":false},"excerpt":{"rendered":"<p>Blog Design Contactez nous pour toute demande N&rsquo;h\u00e9sitez pas \u00e0 nous contacter pour toute demande d&rsquo;information, de r\u00e9servation, de partenariat ou d&rsquo;assistance technique. Notre \u00e9quipe se tient \u00e0 votre disposition&hellip;&nbsp;<a href=\"https:\/\/www.proface.askonsult.com\/en\/contact\/\" rel=\"bookmark\">Read More \"<span class=\"screen-reader-text\"><\/span><\/a><\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_uag_custom_page_level_css":"","neve_meta_sidebar":"","neve_meta_container":"","neve_meta_enable_content_width":"","neve_meta_content_width":0,"neve_meta_title_alignment":"","neve_meta_author_avatar":"","neve_post_elements_order":"","neve_meta_disable_header":"","neve_meta_disable_footer":"","neve_meta_disable_title":"","neve_meta_reading_time":"","_EventAllDay":false,"_EventTimezone":"","_EventStartDate":"","_EventEndDate":"","_EventStartDateUTC":"","_EventEndDateUTC":"","_EventShowMap":false,"_EventShowMapLink":false,"_EventURL":"","_EventCost":"","_EventCostDescription":"","_EventCurrencySymbol":"","_EventCurrencyCode":"","_EventCurrencyPosition":"","_EventDateTimeSeparator":"","_EventTimeRangeSeparator":"","_EventOrganizerID":[],"_EventVenueID":[],"_OrganizerEmail":"","_OrganizerPhone":"","_OrganizerWebsite":"","_VenueAddress":"","_VenueCity":"","_VenueCountry":"","_VenueProvince":"","_VenueState":"","_VenueZip":"","_VenuePhone":"","_VenueURL":"","_VenueStateProvince":"","_VenueLat":"","_VenueLng":"","_VenueShowMap":false,"_VenueShowMapLink":false,"_themeisle_gutenberg_block_has_review":false,"footnotes":""},"class_list":["post-3153","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>- INVEST<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.proface.askonsult.com\/en\/contact\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"- INVEST\" \/>\n<meta property=\"og:description\" content=\"Blog Design Contactez nous pour toute demande N&rsquo;h\u00e9sitez pas \u00e0 nous contacter pour toute demande d&rsquo;information, de r\u00e9servation, de partenariat ou d&rsquo;assistance technique. Notre \u00e9quipe se tient \u00e0 votre disposition&hellip;&nbsp;Read More &raquo;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.proface.askonsult.com\/en\/contact\/\" \/>\n<meta property=\"og:site_name\" content=\"INVEST\" \/>\n<meta property=\"article:modified_time\" content=\"2025-07-27T11:54:38+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.proface.askonsult.com\\\/contact\\\/\",\"url\":\"https:\\\/\\\/www.proface.askonsult.com\\\/contact\\\/\",\"name\":\"- INVEST\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.proface.askonsult.com\\\/#website\"},\"datePublished\":\"2025-07-21T18:17:29+00:00\",\"dateModified\":\"2025-07-27T11:54:38+00:00\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.proface.askonsult.com\\\/contact\\\/\"]}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.proface.askonsult.com\\\/#website\",\"url\":\"https:\\\/\\\/www.proface.askonsult.com\\\/\",\"name\":\"INVEST\",\"description\":\"PROFACE\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.proface.askonsult.com\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.proface.askonsult.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.proface.askonsult.com\\\/#organization\",\"name\":\"INVEST\",\"url\":\"https:\\\/\\\/www.proface.askonsult.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.proface.askonsult.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.proface.askonsult.com\\\/wp-content\\\/uploads\\\/2024\\\/07\\\/lrcid-3.png\",\"contentUrl\":\"https:\\\/\\\/www.proface.askonsult.com\\\/wp-content\\\/uploads\\\/2024\\\/07\\\/lrcid-3.png\",\"width\":700,\"height\":700,\"caption\":\"INVEST\"},\"image\":{\"@id\":\"https:\\\/\\\/www.proface.askonsult.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"- INVEST","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.proface.askonsult.com\/en\/contact\/","og_locale":"en_US","og_type":"article","og_title":"- INVEST","og_description":"Blog Design Contactez nous pour toute demande N&rsquo;h\u00e9sitez pas \u00e0 nous contacter pour toute demande d&rsquo;information, de r\u00e9servation, de partenariat ou d&rsquo;assistance technique. Notre \u00e9quipe se tient \u00e0 votre disposition&hellip;&nbsp;Read More &raquo;","og_url":"https:\/\/www.proface.askonsult.com\/en\/contact\/","og_site_name":"INVEST","article_modified_time":"2025-07-27T11:54:38+00:00","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.proface.askonsult.com\/contact\/","url":"https:\/\/www.proface.askonsult.com\/contact\/","name":"- INVEST","isPartOf":{"@id":"https:\/\/www.proface.askonsult.com\/#website"},"datePublished":"2025-07-21T18:17:29+00:00","dateModified":"2025-07-27T11:54:38+00:00","inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.proface.askonsult.com\/contact\/"]}]},{"@type":"WebSite","@id":"https:\/\/www.proface.askonsult.com\/#website","url":"https:\/\/www.proface.askonsult.com\/","name":"INVEST","description":"PROFACE","publisher":{"@id":"https:\/\/www.proface.askonsult.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.proface.askonsult.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.proface.askonsult.com\/#organization","name":"INVEST","url":"https:\/\/www.proface.askonsult.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.proface.askonsult.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.proface.askonsult.com\/wp-content\/uploads\/2024\/07\/lrcid-3.png","contentUrl":"https:\/\/www.proface.askonsult.com\/wp-content\/uploads\/2024\/07\/lrcid-3.png","width":700,"height":700,"caption":"INVEST"},"image":{"@id":"https:\/\/www.proface.askonsult.com\/#\/schema\/logo\/image\/"}}]}},"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false,"trp-custom-language-flag":false,"neve-blog":false},"uagb_author_info":{"display_name":"admin","author_link":"https:\/\/www.proface.askonsult.com\/en\/author\/admin\/"},"uagb_comment_info":0,"uagb_excerpt":"Blog Design Contactez nous pour toute demande N&rsquo;h\u00e9sitez pas \u00e0 nous contacter pour toute demande d&rsquo;information, de r\u00e9servation, de partenariat ou d&rsquo;assistance technique. Notre \u00e9quipe se tient \u00e0 votre disposition&hellip;&nbsp;Read More &raquo;","_links":{"self":[{"href":"https:\/\/www.proface.askonsult.com\/en\/wp-json\/wp\/v2\/pages\/3153","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.proface.askonsult.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.proface.askonsult.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.proface.askonsult.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.proface.askonsult.com\/en\/wp-json\/wp\/v2\/comments?post=3153"}],"version-history":[{"count":35,"href":"https:\/\/www.proface.askonsult.com\/en\/wp-json\/wp\/v2\/pages\/3153\/revisions"}],"predecessor-version":[{"id":3747,"href":"https:\/\/www.proface.askonsult.com\/en\/wp-json\/wp\/v2\/pages\/3153\/revisions\/3747"}],"wp:attachment":[{"href":"https:\/\/www.proface.askonsult.com\/en\/wp-json\/wp\/v2\/media?parent=3153"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}