{"id":2060,"date":"2026-04-05T14:43:04","date_gmt":"2026-04-05T19:43:04","guid":{"rendered":"https:\/\/driving-firefly-dev.10web.cloud\/?page_id=2060"},"modified":"2026-06-03T13:10:50","modified_gmt":"2026-06-03T18:10:50","slug":"contact","status":"publish","type":"page","link":"https:\/\/aquaforge.ai\/fr\/contact\/","title":{"rendered":"Contact"},"content":{"rendered":"\n<div class=\"wpcf7 no-js\" id=\"wpcf7-f1622-o1\" lang=\"en-US\" dir=\"ltr\" data-wpcf7-id=\"1622\">\n<div class=\"screen-reader-response\"><p role=\"status\" aria-live=\"polite\" aria-atomic=\"true\"><\/p> <ul><\/ul><\/div>\n<form action=\"\/fr\/wp-json\/wp\/v2\/pages\/2060#wpcf7-f1622-o1\" method=\"post\" class=\"wpcf7-form init\" aria-label=\"Contact form\" novalidate=\"novalidate\" data-status=\"init\">\n<fieldset class=\"hidden-fields-container\"><input type=\"hidden\" name=\"_wpcf7\" value=\"1622\" \/><input type=\"hidden\" name=\"_wpcf7_version\" value=\"6.1.6\" \/><input type=\"hidden\" name=\"_wpcf7_locale\" value=\"en_US\" \/><input type=\"hidden\" name=\"_wpcf7_unit_tag\" value=\"wpcf7-f1622-o1\" \/><input type=\"hidden\" name=\"_wpcf7_container_post\" value=\"0\" \/><input type=\"hidden\" name=\"_wpcf7_posted_data_hash\" value=\"\" \/>\n<\/fieldset>\n<div class=\"af-form-grid\">\n\t<div class=\"af-form-row\">\n\t\t<p><label>Your Name *<br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"your-name\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text wpcf7-validates-as-required\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"Your name\" value=\"\" type=\"text\" name=\"your-name\" \/><\/span><\/label>\n\t\t<\/p>\n\t<\/div>\n\t<div class=\"af-form-row\">\n\t\t<p><label>Email Address *<br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"your-email\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-email wpcf7-validates-as-required wpcf7-text wpcf7-validates-as-email\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"your@email.com\" value=\"\" type=\"email\" name=\"your-email\" \/><\/span><\/label>\n\t\t<\/p>\n\t<\/div>\n\t<div class=\"af-form-row\">\n\t\t<p><label>Company<br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"your-company\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text\" aria-invalid=\"false\" placeholder=\"Company name\" value=\"\" type=\"text\" name=\"your-company\" \/><\/span><\/label>\n\t\t<\/p>\n\t<\/div>\n\t<div class=\"af-form-row\">\n\t\t<p><label>How can we help? *<br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"purpose\"><select class=\"wpcf7-form-control wpcf7-select wpcf7-validates-as-required\" aria-required=\"true\" aria-invalid=\"false\" name=\"purpose\"><option value=\"Demo Request\">Demo Request<\/option><option value=\"ROI Conversation\">ROI Conversation<\/option><option value=\"Partnership Inquiry\">Partnership Inquiry<\/option><option value=\"General Question\">General Question<\/option><\/select><\/span><\/label>\n\t\t<\/p>\n\t<\/div>\n\t<div class=\"af-form-row\">\n\t\t<p><label>Message<br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"your-message\"><textarea cols=\"40\" rows=\"10\" maxlength=\"2000\" class=\"wpcf7-form-control wpcf7-textarea\" aria-invalid=\"false\" placeholder=\"Tell us about your needs...\" name=\"your-message\"><\/textarea><\/span><\/label>\n\t\t<\/p>\n\t<\/div>\n\t<div class=\"af-form-row af-turnstile\">\n<!-- Turnstile widget injected by cf7-turnstile.php -->\n\t<\/div>\n\t<div class=\"af-form-row\">\n\t\t<p><input class=\"wpcf7-form-control wpcf7-submit has-spinner af-btn af-btn-primary\" type=\"submit\" value=\"Send Message\" \/>\n\t\t<\/p>\n\t<\/div>\n<\/div><div class=\"wpcf7-response-output\" aria-hidden=\"true\"><\/div>\n<\/form>\n<\/div>\n\n\n\n\n<style>\n\/* Hide the native CF7 form \u2014 we submit it silently in the background *\/\n.wpcf7-form { display: none !important; }\n\n.aq-wrap { max-width: 620px; margin: 0 auto; padding: 2.5rem 0 3rem; font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif; }\n.aq-eyebrow { font-size: 12px; font-weight: 500; letter-spacing: 0.08em; text-transform: uppercase; color: #185FA5; margin: 0 0 0.6rem; }\n.aq-h1 { font-size: 28px; font-weight: 600; color: #1a1a1a; margin: 0 0 0.5rem; line-height: 1.25; }\n.aq-lead { font-size: 15px; color: #555; margin: 0 0 2.5rem; line-height: 1.65; }\n.aq-lead a { color: #185FA5; text-decoration: none; }\n.aq-lead a:hover { text-decoration: underline; }\n.aq-steps { display: flex; align-items: center; justify-content: center; margin-bottom: 1rem; }\n.aq-dot { width: 30px; height: 30px; border-radius: 50%; border: 1px solid #ccc; background: #fff; display: flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 500; color: #888; transition: all 0.3s; position: relative; z-index: 1; }\n.aq-dot.active { background: #185FA5; border-color: #185FA5; color: #fff; }\n.aq-dot.done { background: #1D9E75; border-color: #1D9E75; color: #fff; }\n.aq-line { width: 72px; height: 1px; background: #ddd; transition: background 0.4s; }\n.aq-line.done { background: #1D9E75; }\n.aq-step-labels { display: flex; justify-content: center; margin-top: 6px; margin-bottom: 1.75rem; }\n.aq-sl { width: 30px; text-align: center; font-size: 11px; color: #888; }\n.aq-sp { width: 72px; }\n.aq-card { background: #fff; border: 1px solid #e5e5e5; border-radius: 12px; padding: 2rem 2.25rem; }\n.aq-slide { display: none; animation: aqIn 0.3s ease; }\n.aq-slide.active { display: block; }\n@keyframes aqIn { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }\n.aq-sh { font-size: 17px; font-weight: 600; color: #1a1a1a; margin: 0 0 0.2rem; }\n.aq-ss { font-size: 13px; color: #777; margin: 0 0 1.5rem; }\n.aq-field { margin-bottom: 1rem; }\n.aq-field label { display: block; font-size: 12px; color: #555; margin-bottom: 4px; font-weight: 500; }\n.aq-field input,\n.aq-field textarea {\n  width: 100%;\n  box-sizing: border-box;\n  border: 1px solid #ddd;\n  border-radius: 8px;\n  padding: 9px 12px;\n  font-size: 14px;\n  color: #1a1a1a;\n  background: #fff;\n  outline: none;\n  transition: border-color 0.2s;\n  font-family: inherit;\n}\n.aq-field input:focus,\n.aq-field textarea:focus { border-color: #185FA5; box-shadow: 0 0 0 3px rgba(24,95,165,0.1); }\n.aq-field textarea { min-height: 88px; resize: vertical; }\n.aq-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }\n.intent-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 2px; }\n.intent-btn { padding: 9px 12px; border: 1px solid #ddd; border-radius: 8px; background: #fff; font-size: 13px; color: #1a1a1a; cursor: pointer; display: flex; align-items: center; gap: 8px; transition: all 0.18s; text-align: left; font-family: inherit; }\n.intent-btn:hover { background: #f5f5f5; }\n.intent-btn.sel { border-color: #185FA5; background: #E6F1FB; color: #0C447C; }\n.urg-row { display: flex; gap: 8px; }\n.urg-opt { flex: 1; padding: 7px 0; text-align: center; border: 1px solid #ddd; border-radius: 8px; font-size: 13px; color: #555; cursor: pointer; transition: all 0.18s; font-family: inherit; background: #fff; }\n.urg-opt:hover { background: #f5f5f5; }\n.urg-opt.sel { border-color: #185FA5; background: #E6F1FB; color: #0C447C; font-weight: 500; }\n.aq-actions { display: flex; justify-content: space-between; align-items: center; margin-top: 1.75rem; }\n.btn-back { background: none; border: 1px solid #ddd; border-radius: 8px; padding: 8px 16px; font-size: 13px; color: #555; cursor: pointer; font-family: inherit; transition: background 0.18s; }\n.btn-back:hover { background: #f5f5f5; }\n.btn-fwd { background: #185FA5; border: none; border-radius: 8px; padding: 9px 20px; font-size: 13px; color: #fff; cursor: pointer; display: flex; align-items: center; gap: 6px; transition: background 0.18s; font-family: inherit; }\n.btn-fwd:hover { background: #0C447C; }\n.btn-fwd:disabled { background: #aaa; cursor: not-allowed; }\n\n\/* ---- REVIEW ROWS: keep label + value on one line ---- *\/\n.rev-row {\n  display: flex;\n  flex-wrap: nowrap;\n  align-items: baseline;\n  justify-content: space-between;\n  gap: 12px;\n  padding: 8px 0;\n  border-bottom: 1px solid #eee;\n  font-size: 13px;\n}\n.rev-row:last-child { border-bottom: none; }\n.rev-lbl { color: #777; white-space: nowrap; flex: 0 0 auto; }\n.rev-val {\n  color: #1a1a1a;\n  font-weight: 500;\n  text-align: right;\n  flex: 1 1 auto;\n  min-width: 0;\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n}\n\n\/* ---- PRIVACY CONSENT CHECKBOX ---- *\/\n.aq-consent {\n  display: flex;\n  align-items: flex-start;\n  gap: 10px;\n  margin-top: 1.25rem;\n  padding: 12px 14px;\n  background: #f8fafc;\n  border: 1px solid #e5e5e5;\n  border-radius: 8px;\n}\n.aq-consent input[type=\"checkbox\"] {\n  width: 16px;\n  height: 16px;\n  margin: 2px 0 0;\n  flex: 0 0 auto;\n  accent-color: #185FA5;\n  cursor: pointer;\n}\n.aq-consent label {\n  font-size: 12.5px;\n  color: #555;\n  line-height: 1.55;\n  cursor: pointer;\n  margin: 0;\n}\n.aq-consent a { color: #185FA5; text-decoration: none; font-weight: 500; }\n.aq-consent a:hover { text-decoration: underline; }\n.aq-consent.error { border-color: #c0392b; background: #fdf3f3; }\n\n.success-wrap { text-align: center; padding: 1rem 0; }\n.success-ico { width: 52px; height: 52px; border-radius: 50%; background: #E1F5EE; display: flex; align-items: center; justify-content: center; margin: 0 auto 1.25rem; font-size: 22px; color: #1D9E75; }\n.aq-divider { height: 1px; background: #eee; margin: 2rem 0 1.5rem; }\n.aq-direct { display: flex; align-items: center; gap: 8px; font-size: 14px; color: #555; }\n.aq-direct a { color: #185FA5; text-decoration: none; font-weight: 500; }\n.aq-direct a:hover { text-decoration: underline; }\n.aq-error-msg { font-size: 12px; color: #c0392b; margin-top: 6px; display: none; }\n\n\/* ---------------------------------------------------------------\n   RESPONSIVE\n--------------------------------------------------------------- *\/\n@media (max-width: 600px) {\n  .aq-wrap { padding: 1.75rem 0 2.25rem; }\n  .aq-h1 { font-size: 23px; }\n  .aq-lead { margin-bottom: 1.75rem; }\n  .aq-card { padding: 1.5rem 1.25rem; border-radius: 10px; }\n  .aq-line, .aq-sp { width: 48px; }\n}\n@media (max-width: 480px) {\n  .aq-row { grid-template-columns: 1fr; }\n  .intent-grid { grid-template-columns: 1fr; }\n  .rev-val { max-width: 60%; }\n  .aq-actions { gap: 10px; }\n  .btn-fwd, .btn-back { padding: 9px 14px; }\n}\n@media (max-width: 360px) {\n  .aq-line, .aq-sp { width: 34px; }\n}\n<\/style>\n\n<div class=\"aq-wrap\">\n  <p class=\"aq-eyebrow\">Contact AquaForge<\/p>\n  <h1 class=\"aq-h1\">Des strat\u00e9gies de traitement de l&rsquo;eau propuls\u00e9es par IA, con\u00e7ues pour avoir de l&rsquo;impact<\/h1>\n  <p class=\"aq-lead\">Demandez une d\u00e9mo, planifiez un entretien sur le rendement ou venez simplement nous saluer \u2014 nous r\u00e9pondons en moins d&rsquo;un jour ouvrable.<\/p>\n\n  <div class=\"aq-steps\">\n    <div class=\"aq-dot active\" id=\"aq-dot-1\">1<\/div>\n    <div class=\"aq-line\" id=\"aq-line-1\"><\/div>\n    <div class=\"aq-dot\" id=\"aq-dot-2\">2<\/div>\n    <div class=\"aq-line\" id=\"aq-line-2\"><\/div>\n    <div class=\"aq-dot\" id=\"aq-dot-3\">3<\/div>\n  <\/div>\n  <div class=\"aq-step-labels\">\n    <div class=\"aq-sl\">Vous<\/div>\n    <div class=\"aq-sp\"><\/div>\n    <div class=\"aq-sl\">Besoin<\/div>\n    <div class=\"aq-sp\"><\/div>\n    <div class=\"aq-sl\">R\u00e9vision<\/div>\n  <\/div>\n\n  <div class=\"aq-card\">\n\n    <!-- \u00c9tape 1 : Coordonn\u00e9es -->\n    <div class=\"aq-slide active\" id=\"aq-slide-1\">\n      <p class=\"aq-sh\">Enchant\u00e9s de faire votre connaissance<\/p>\n      <p class=\"aq-ss\">\u00c0 qui pouvons-nous r\u00e9pondre?<\/p>\n      <div class=\"aq-row\">\n        <div class=\"aq-field\">\n          <label for=\"aq-fname\">Pr\u00e9nom<\/label>\n          <input type=\"text\" id=\"aq-fname\" placeholder=\"Ada\">\n        <\/div>\n        <div class=\"aq-field\">\n          <label for=\"aq-lname\">Nom<\/label>\n          <input type=\"text\" id=\"aq-lname\" placeholder=\"Lovelace\">\n        <\/div>\n      <\/div>\n      <div class=\"aq-field\">\n        <label for=\"aq-email\">Courriel professionnel<\/label>\n        <input type=\"email\" id=\"aq-email\" placeholder=\"ada@municipalite.ca\">\n        <p class=\"aq-error-msg\" id=\"aq-email-err\">Veuillez saisir une adresse courriel valide.<\/p>\n      <\/div>\n      <div class=\"aq-field\">\n        <label for=\"aq-org\">Organisation<\/label>\n        <input type=\"text\" id=\"aq-org\" placeholder=\"Ville de Montr\u00e9al \u2014 Service de l'eau\">\n      <\/div>\n      <div class=\"aq-field\">\n        <label for=\"aq-role\">Fonction <span style=\"font-size:11px;color:#999;\">(facultatif)<\/span><\/label>\n        <input type=\"text\" id=\"aq-role\" placeholder=\"p. ex. directeur d'usine, consultant, ing\u00e9nieur\">\n      <\/div>\n      <div class=\"aq-actions\">\n        <span><\/span>\n        <button class=\"btn-fwd\" onclick=\"aqGoTo(2)\">Suivant &#8594;<\/button>\n      <\/div>\n    <\/div>\n\n    <!-- \u00c9tape 2 : Objet et message -->\n    <div class=\"aq-slide\" id=\"aq-slide-2\">\n      <p class=\"aq-sh\">Qu&rsquo;est-ce qui vous am\u00e8ne?<\/p>\n      <p class=\"aq-ss\">Parlez-nous de votre projet ou de votre question.<\/p>\n      <div class=\"aq-field\">\n        <label>Je souhaite&hellip;<\/label>\n        <div class=\"intent-grid\">\n          <button class=\"intent-btn\" onclick=\"aqSelIntent(this,'Demander une d\u00e9mo')\">&#128202; Demander une d\u00e9mo<\/button>\n          <button class=\"intent-btn\" onclick=\"aqSelIntent(this,'Discuter du rendement et des \u00e9conomies')\">&#128200; Discuter du rendement<\/button>\n          <button class=\"intent-btn\" onclick=\"aqSelIntent(this,'Question technique')\">&#128295; Question technique<\/button>\n          <button class=\"intent-btn\" onclick=\"aqSelIntent(this,'Partenariat')\">&#129309; Partenariat<\/button>\n        <\/div>\n      <\/div>\n      <div class=\"aq-field\" style=\"margin-top:1rem;\">\n        <label for=\"aq-msg\">Dites-nous-en plus<\/label>\n        <textarea id=\"aq-msg\" placeholder=\"D\u00e9crivez votre r\u00e9seau d'eau, vos d\u00e9fis actuels ou ce que vous aimeriez explorer avec AquaForge.\"><\/textarea>\n      <\/div>\n      <div class=\"aq-field\">\n        <label>\u00c9ch\u00e9ancier<\/label>\n        <div class=\"urg-row\">\n          <div class=\"urg-opt\" onclick=\"aqSelUrg(this,'Je m\\'informe')\">Je m&rsquo;informe<\/div>\n          <div class=\"urg-opt\" onclick=\"aqSelUrg(this,'D\\'ici 3 mois')\">D&rsquo;ici 3 mois<\/div>\n          <div class=\"urg-opt\" onclick=\"aqSelUrg(this,'Urgent')\">Urgent<\/div>\n        <\/div>\n      <\/div>\n      <div class=\"aq-actions\">\n        <button class=\"btn-back\" onclick=\"aqGoTo(1)\">&#8592; Retour<\/button>\n        <button class=\"btn-fwd\" onclick=\"aqGoTo(3)\">R\u00e9viser &#8594;<\/button>\n      <\/div>\n    <\/div>\n\n    <!-- \u00c9tape 3 : R\u00e9vision -->\n    <div class=\"aq-slide\" id=\"aq-slide-3\">\n      <p class=\"aq-sh\">Pr\u00eat \u00e0 envoyer?<\/p>\n      <p class=\"aq-ss\">V\u00e9rifiez vos coordonn\u00e9es avant l&rsquo;envoi.<\/p>\n      <div id=\"aq-review-rows\"><\/div>\n\n      <!-- Consentement obligatoire \u00e0 la politique de confidentialit\u00e9 -->\n      <div class=\"aq-consent\" id=\"aq-consent-box\">\n        <input type=\"checkbox\" id=\"aq-privacy\" onchange=\"aqTogglePrivacy()\">\n        <label for=\"aq-privacy\">\n          J&rsquo;accepte la <a href=\"https:\/\/driving-firefly-dev.10web.cloud\/fr\/politique-de-confidentialite\/\" target=\"_blank\" rel=\"noopener nofollow\">Politique de confidentialit\u00e9<\/a> et je consens \u00e0 ce qu&rsquo;AquaForge traite mes renseignements personnels pour r\u00e9pondre \u00e0 ma demande. <span style=\"color:#c0392b;\">*<\/span>\n        <\/label>\n      <\/div>\n      <p class=\"aq-error-msg\" id=\"aq-privacy-err\">Veuillez accepter la Politique de confidentialit\u00e9 pour continuer.<\/p>\n\n      <div class=\"aq-actions\">\n        <button class=\"btn-back\" onclick=\"aqGoTo(2)\">&#8592; Retour<\/button>\n        <button class=\"btn-fwd\" id=\"aq-send-btn\" onclick=\"aqSubmit()\" disabled>&#9993; Envoyer le message<\/button>\n      <\/div>\n    <\/div>\n\n    <!-- \u00c9cran de succ\u00e8s -->\n    <div class=\"aq-slide\" id=\"aq-slide-done\">\n      <div class=\"success-wrap\">\n        <div class=\"success-ico\">&#10003;<\/div>\n        <p style=\"font-size:17px;font-weight:600;margin:0 0 0.4rem;color:#1a1a1a;\">Message re\u00e7u<\/p>\n        <p style=\"font-size:14px;color:#777;margin:0 0 1.5rem;\">Nous communiquerons avec vous \u00e0 <span id=\"aq-confirm-email\" style=\"color:#1a1a1a;font-weight:600;\"><\/span> en moins d&rsquo;un jour ouvrable.<\/p>\n        <button class=\"btn-fwd\" style=\"margin:0 auto;\" onclick=\"aqReset()\">&#8635; Envoyer un autre message<\/button>\n      <\/div>\n    <\/div>\n\n    <!-- \u00c9cran d'erreur \/ de repli -->\n    <div class=\"aq-slide\" id=\"aq-slide-err\">\n      <div class=\"success-wrap\">\n        <div class=\"success-ico\" style=\"background:#FCEBEB;color:#A32D2D;font-size:26px;\">&#33;<\/div>\n        <p style=\"font-size:17px;font-weight:600;margin:0 0 0.4rem;color:#1a1a1a;\">Une erreur est survenue<\/p>\n        <p style=\"font-size:14px;color:#777;margin:0 0 1.5rem;\">Votre message n&rsquo;a pas pu \u00eatre envoy\u00e9. Veuillez r\u00e9essayer ou nous joindre directement \u00e0 <a href=\"mailto:info@aquaforge.ai\" style=\"color:#185FA5;\">info@aquaforge.ai<\/a>.<\/p>\n        <button class=\"btn-fwd\" style=\"margin:0 auto;\" onclick=\"aqGoTo(3)\">&#8592; R\u00e9essayer<\/button>\n      <\/div>\n    <\/div>\n\n  <\/div><!-- \/.aq-card -->\n\n  <div class=\"aq-divider\"><\/div>\n  <div class=\"aq-direct\">\n    &#9993; Vous pouvez aussi nous joindre directement \u00e0 <a href=\"mailto:info@aquaforge.ai\">info@aquaforge.ai<\/a>\n  <\/div>\n<\/div><!-- \/.aq-wrap -->\n\n<script>\n(function () {\n  var cur = 1, intent = '', urg = '';\n\n  \/* ---------------------------------------------------------------\n     NAVIGATION D'\u00c9TAPES\n  --------------------------------------------------------------- *\/\n  window.aqGoTo = function (n) {\n    if (n === 2) {\n      var email = document.getElementById('aq-email').value.trim();\n      var ok = \/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$\/.test(email);\n      document.getElementById('aq-email-err').style.display = ok ? 'none' : 'block';\n      if (!ok) return;\n    }\n    document.getElementById('aq-slide-' + cur).classList.remove('active');\n    cur = n;\n    document.getElementById('aq-slide-' + n).classList.add('active');\n    aqUpdateDots(n);\n    if (n === 3) { aqBuildReview(); aqTogglePrivacy(); }\n  };\n\n  window.aqUpdateDots = function (n) {\n    for (var i = 1; i <= 3; i++) {\n      var d = document.getElementById('aq-dot-' + i);\n      d.classList.remove('active', 'done');\n      if (i < n)       { d.classList.add('done');   d.textContent = '\\u2713'; }\n      else if (i === n) { d.classList.add('active'); d.textContent = i; }\n      else              { d.textContent = i; }\n      if (i < 3) {\n        var l = document.getElementById('aq-line-' + i);\n        if (i < n) l.classList.add('done'); else l.classList.remove('done');\n      }\n    }\n  };\n\n  \/* ---------------------------------------------------------------\n     S\u00c9LECTEURS\n  --------------------------------------------------------------- *\/\n  window.aqSelIntent = function (el, val) {\n    document.querySelectorAll('.intent-btn').forEach(function (b) { b.classList.remove('sel'); });\n    el.classList.add('sel'); intent = val;\n  };\n\n  window.aqSelUrg = function (el, val) {\n    document.querySelectorAll('.urg-opt').forEach(function (b) { b.classList.remove('sel'); });\n    el.classList.add('sel'); urg = val;\n  };\n\n  \/* ---------------------------------------------------------------\n     CONSENTEMENT \u00c0 LA CONFIDENTIALIT\u00c9 \u2014 verrouille le bouton d'envoi\n  --------------------------------------------------------------- *\/\n  window.aqTogglePrivacy = function () {\n    var checked = document.getElementById('aq-privacy').checked;\n    document.getElementById('aq-send-btn').disabled = !checked;\n    if (checked) {\n      document.getElementById('aq-consent-box').classList.remove('error');\n      document.getElementById('aq-privacy-err').style.display = 'none';\n    }\n  };\n\n  \/* ---------------------------------------------------------------\n     CONSTRUCTEUR DE R\u00c9VISION\n  --------------------------------------------------------------- *\/\n  window.aqBuildReview = function () {\n    var fn = document.getElementById('aq-fname').value || '\\u2014';\n    var ln = document.getElementById('aq-lname').value || '\\u2014';\n    var em = document.getElementById('aq-email').value  || '\\u2014';\n    var og = document.getElementById('aq-org').value;\n    var rl = document.getElementById('aq-role').value;\n    var ms = document.getElementById('aq-msg').value    || '\\u2014';\n    var rows = [\n      ['Nom',          fn + ' ' + ln],\n      ['Courriel',     em],\n      og ? ['Organisation', og] : null,\n      rl ? ['Fonction', rl] : null,\n      ['Objet',        intent || '\\u2014'],\n      ['\u00c9ch\u00e9ancier',   urg    || '\\u2014'],\n      ['Message',      ms.length > 90 ? ms.slice(0, 90) + '\\u2026' : ms],\n    ].filter(Boolean);\n    document.getElementById('aq-review-rows').innerHTML = rows.map(function (r) {\n      return '<div class=\"rev-row\"><span class=\"rev-lbl\">' + r[0] +\n             '<\/span><span class=\"rev-val\" title=\"' + String(r[1]).replace(\/\"\/g, '&quot;') + '\">' +\n             r[1] + '<\/span><\/div>';\n    }).join('');\n  };\n\n  \/* ---------------------------------------------------------------\n     CORRESPONDANCE DES CHAMPS CF7\n     Ces cl\u00e9s doivent correspondre aux *noms* des champs dans l'\u00e9diteur\n     CF7 (le nom \u00e0 l'int\u00e9rieur de [text your-name], [email your-email],\n     etc.). Ouvrez Contact > AquaForge Contact FR et validez \u2014 ajustez\n     au besoin.\n  --------------------------------------------------------------- *\/\n  var CF7_FIELD_MAP = {\n    'your-name': function () {\n      return (document.getElementById('aq-fname').value + ' ' +\n              document.getElementById('aq-lname').value).trim();\n    },\n    'your-email': function () {\n      return document.getElementById('aq-email').value;\n    },\n    'your-subject': function () {\n      return intent || 'Demande g\u00e9n\u00e9rale';\n    },\n    'your-message': function () {\n      var parts = [];\n      if (document.getElementById('aq-org').value)\n        parts.push('Organisation : ' + document.getElementById('aq-org').value);\n      if (document.getElementById('aq-role').value)\n        parts.push('Fonction : '     + document.getElementById('aq-role').value);\n      if (urg)\n        parts.push('\u00c9ch\u00e9ancier : '   + urg);\n      parts.push('Politique de confidentialit\u00e9 : accept\u00e9e');\n      parts.push('');\n      parts.push(document.getElementById('aq-msg').value);\n      return parts.join('\\n');\n    },\n  };\n\n  \/* ---------------------------------------------------------------\n     SOUMISSION \u2014 remplit les champs CF7 puis d\u00e9clenche\n     la soumission AJAX native de CF7\n  --------------------------------------------------------------- *\/\n  window.aqSubmit = function () {\n    \/* V\u00e9rification stricte : le consentement \u00e0 la confidentialit\u00e9 est obligatoire *\/\n    if (!document.getElementById('aq-privacy').checked) {\n      document.getElementById('aq-consent-box').classList.add('error');\n      document.getElementById('aq-privacy-err').style.display = 'block';\n      return;\n    }\n\n    var btn = document.getElementById('aq-send-btn');\n    btn.disabled = true;\n    btn.textContent = 'Envoi en cours\\u2026';\n\n    var cf7Form = document.querySelector('.wpcf7-form');\n    if (!cf7Form) { aqShowError(); return; }\n\n    \/* Remplir les champs CF7 cach\u00e9s *\/\n    Object.keys(CF7_FIELD_MAP).forEach(function (name) {\n      var el = cf7Form.querySelector('[name=\"' + name + '\"]');\n      if (el) el.value = CF7_FIELD_MAP[name]();\n    });\n\n    \/* Si le formulaire CF7 contient une case d'acceptation, la cocher \u00e9galement *\/\n    var cf7Accept = cf7Form.querySelector('.wpcf7-acceptance input[type=\"checkbox\"], [name^=\"acceptance\"]');\n    if (cf7Accept) cf7Accept.checked = true;\n\n    \/* Lier aux \u00e9v\u00e9nements DOM personnalis\u00e9s de CF7 *\/\n    var wpcf7El = cf7Form.closest('.wpcf7');\n    if (wpcf7El) {\n      wpcf7El.addEventListener('wpcf7mailsent',  function () { aqShowSuccess(); }, { once: true });\n      wpcf7El.addEventListener('wpcf7mailfailed', function () { aqShowError();   }, { once: true });\n      wpcf7El.addEventListener('wpcf7invalid',    function () { aqShowError();   }, { once: true });\n    }\n\n    \/* D\u00e9clencher le bouton de soumission natif de CF7 (pr\u00e9serve nonce, reCAPTCHA, etc.) *\/\n    var cf7Btn = cf7Form.querySelector('[type=\"submit\"]');\n    if (cf7Btn) {\n      cf7Btn.click();\n    } else {\n      cf7Form.dispatchEvent(new Event('submit', { bubbles: true, cancelable: true }));\n    }\n\n    \/* D\u00e9lai de s\u00e9curit\u00e9 \u2014 10 s *\/\n    setTimeout(function () { if (cur !== 4) aqShowError(); }, 10000);\n  };\n\n  function aqShowSuccess() {\n    document.getElementById('aq-confirm-email').textContent =\n      document.getElementById('aq-email').value || 'vous';\n    document.getElementById('aq-slide-3').classList.remove('active');\n    document.getElementById('aq-slide-done').classList.add('active');\n    for (var i = 1; i <= 3; i++) {\n      var d = document.getElementById('aq-dot-' + i);\n      d.classList.remove('active'); d.classList.add('done'); d.textContent = '\\u2713';\n      if (i < 3) document.getElementById('aq-line-' + i).classList.add('done');\n    }\n    cur = 4;\n  }\n\n  function aqShowError() {\n    var btn = document.getElementById('aq-send-btn');\n    btn.disabled = false;\n    btn.innerHTML = '&#9993; Envoyer le message';\n    document.getElementById('aq-slide-3').classList.remove('active');\n    document.getElementById('aq-slide-err').classList.add('active');\n    cur = 5;\n  }\n\n  \/* ---------------------------------------------------------------\n     R\u00c9INITIALISATION\n  --------------------------------------------------------------- *\/\n  window.aqReset = function () {\n    ['aq-fname','aq-lname','aq-email','aq-org','aq-role','aq-msg'].forEach(function (id) {\n      document.getElementById(id).value = '';\n    });\n    document.querySelectorAll('.intent-btn,.urg-opt').forEach(function (el) {\n      el.classList.remove('sel');\n    });\n    document.getElementById('aq-email-err').style.display = 'none';\n    document.getElementById('aq-privacy').checked = false;\n    document.getElementById('aq-consent-box').classList.remove('error');\n    document.getElementById('aq-privacy-err').style.display = 'none';\n    intent = ''; urg = '';\n    ['aq-slide-done','aq-slide-err'].forEach(function (id) {\n      document.getElementById(id).classList.remove('active');\n    });\n    var btn = document.getElementById('aq-send-btn');\n    btn.disabled = true; btn.innerHTML = '&#9993; Envoyer le message';\n    cur = 1;\n    document.getElementById('aq-slide-1').classList.add('active');\n    aqUpdateDots(1);\n  };\n})();\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Contact AquaForge Des strat\u00e9gies de traitement de l&rsquo;eau propuls\u00e9es par IA, con\u00e7ues pour avoir de l&rsquo;impact Demandez une d\u00e9mo, planifiez un entretien sur le rendement ou venez simplement nous saluer \u2014 nous r\u00e9pondons en moins d&rsquo;un jour ouvrable. 1 2 3 Vous Besoin R\u00e9vision Enchant\u00e9s de faire votre connaissance \u00c0 qui pouvons-nous r\u00e9pondre? Pr\u00e9nom Nom [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-2060","page","type-page","status-publish","hentry"],"blocksy_meta":{"has_hero_section":"disabled","styles_descriptor":{"styles":{"desktop":"[data-prefix=\"single_page\"] [class*=\"ct-container\"] > article[class*=\"post\"] {--has-boxed:var(--false);--has-wide:var(--true);}","tablet":"","mobile":""},"google_fonts":[],"version":6},"content_style_source":"custom","vertical_spacing_source":"inherit"},"_links":{"self":[{"href":"https:\/\/aquaforge.ai\/fr\/wp-json\/wp\/v2\/pages\/2060","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/aquaforge.ai\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/aquaforge.ai\/fr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/aquaforge.ai\/fr\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/aquaforge.ai\/fr\/wp-json\/wp\/v2\/comments?post=2060"}],"version-history":[{"count":2,"href":"https:\/\/aquaforge.ai\/fr\/wp-json\/wp\/v2\/pages\/2060\/revisions"}],"predecessor-version":[{"id":2062,"href":"https:\/\/aquaforge.ai\/fr\/wp-json\/wp\/v2\/pages\/2060\/revisions\/2062"}],"wp:attachment":[{"href":"https:\/\/aquaforge.ai\/fr\/wp-json\/wp\/v2\/media?parent=2060"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}