<a class="ck-anchor" id="section"></a>

   ![Beyond PFAS logo](/sites/g/files/dvc2391/files/styles/default/public/image/2026/08/BeyondPFAS-logo.png.webp?itok=Au_OoJrS)   





 

 

 



|  | ### **Diagnostiquer**  Campagnes d’échantillonnage   et analyses haute sensibilité   (eau, sols, boues, déchets). |  | ### **Concevoir**   Études, pilotes et ingénierie    pour atteindre les nouvelles valeurs limites. |
|---|---|---|---|
|  | ### **Exploiter**   Mise en service et exploitation d’unités fixes ou mobiles   pour traiter les PFAS ciblés. |  | ### **Traiter**   Gestion sécurisée   des milieux et résidus contaminés via des filières dédiées. |





 

 

 



 

 

**Une offre intégrée de bout en bout**

BeyondPFAS concentre l’expertise eau, déchets et énergie de Veolia pour vous accompagner **de la première analyse jusqu’au traitement des PFAS, sur un ou plusieurs sites**.

C’est une **offre holistique adaptée aux besoins spécifiques, aux législations locales et aux réalités de terrain** de chaque client.

[Télécharger notre brochure ](https://www.veolia.fr/form/beyondpfas-brochure-download)

 



 

 

 



 

 

 

 





 

 

 

 





<a class="ck-anchor" id="milieux"></a>



 

 

 



   ![Icon - Eau](/sites/g/files/dvc2391/files/image/2026/08/icon-eau-robinet.png)   



### **L'eau**



 

 

 

 

 

 



 

   ![Icon - Plants](/sites/g/files/dvc2391/files/image/2026/08/icon-sols.png)   



### **Les sols**



 

 

 

 

 

 



 

   ![Icon - déchets](/sites/g/files/dvc2391/files/styles/default/public/image/2026/08/icon-dechets.png.webp?itok=cHcjdfcZ)   



### **Les déchets**  
**&amp; boues d’épurations**



 

 

 

 

 

 



 

   ![Icon - Industries](/sites/g/files/dvc2391/files/image/2026/08/icon-industries.png)   



### **Les rejets**  
**industriels**



 

 

 

 

 

 



 

 

 





 

 

## **PFAS : Un enjeu sanitaire…** **et réglementaire dès 2026**

Les PFAS (substances per- et polyfluoroalkylées) sont une famille de plus de 10 000 substances chimiques persistantes, utilisées depuis les années 1950 pour leurs propriétés antiadhésives, imperméabilisantes ou résistantes à la chaleur. Leur extrême stabilité chimique entraîne cependant une accumulation durable dans différents milieux :



 

 

 



 

 

 

 





 

 

 

 





**Certains PFAS font l’objet d’une surveillance réglementaire, avec des valeurs limites fixées pour l’eau potable, ainsi qu’un suivi des rejets d’eaux usées à l’échelle de l’Union européenne (prévu avant 2027).**

En France, la réglementation s’étend à des flux comme les boues d’épuration, qui deviennent un enjeu majeur pour les collectivités et les exploitants. Face à l’annonce de la [circulaire ministérielle du 9 avril 2026 par le gouvernement sur les PFAS](https://www.bulletin-officiel.developpement-durable.gouv.fr/documents/Bulletinofficiel-0034510/TECL2611645C-V2.pdf;jsessionid=9648BA4545F9976CEF139F23793551B6) dans les boues d’épuration, **Veolia a structuré une réponse opérationnelle** de bout en bout pour les collectivités.

- On **analyse vos boues**
- On **vous aide à les valoriser** si elles sont conformes
- On les **oriente vers des filières de traitement sécurisées** si elles ne sont pas conformes
- On **vous aide à** **identifier les sources**



 

 

 



 

 

 

 

 





 

 

   ![Collaborateurs Veolia sur site](/sites/g/files/dvc2391/files/styles/crop_freeform/public/image/2026/08/collaborateurs-veolia-site-traitement-eau.png.webp?itok=0S4I1h8H)   





 

 

 

 

 





## **Ce que ça vous apporte**

*Une meilleure maîtrise de la qualité de l’eau grâce à :*



 

 

 



Des  
**analyses**  
**plus fréquentes**  
et plus exigeantes.



 

 

 

 

 

 



 

Des  
**installations**  
**de traitement**  
pouvant être optimisées.



 

 

 

 

 

 



 

Une   
**anticipation**  
**sereine**  
des futures échéances réglementaires pour éviter les risques de non-conformité.



 

 

 

 

 

 



 

Une  
**transparence**  
**renforcée**  
auprès de vos habitants.



 

 

 

 

 

 



 

 

 





*―*  
*Ne pas anticiper,*   
*c'est **s'exposer à des conséquences***  
***sanitaires, réglementaires et d'image**.*  
*―*



 

 

 



 

 

 

 





## **Pourquoi**  
**agir maintenant ?**

### Un cadre réglementaire exigeant

**Depuis janvier 2026, tous les États membres de l'UE doivent surveiller et respecter de nouvelles valeurs limites de PFAS dans l'eau potable**. Aux côtés des pays d'Europe du Nord, la France se distingue par l'un des cadres les plus stricts en matière de restrictions sur les produits contenant des PFAS et de contrôle des rejets.

### Une pression sociétale croissante

Médiatisation des cas de contamination, attentes fortes en matière de transparence et de protection de la santé.

[Contacter un expert](#contact)

 



 

 

 



 

 

 

 

 





 

 

   ![Gestion de l'eau](/sites/g/files/dvc2391/files/styles/crop_freeform/public/image/2026/05/Un%20cadre%20re%CC%81glementaire%20exigeant_0.png.webp?itok=m7HnZv3W)   





 

 

 

 

 





## **Pourquoi choisir**   
**BeyondPFAS et Veolia ?**

Une expertise centenaire en matière de services à l'environnement et d’un savoir-faire unique et scientifiquement prouvé dans le traitement de ces polluants complexes capables de répondre aux exigences en matière de traitement et de conformité réglementaire.

- ### **Le portefeuille de technologies PFAS le plus complet du marché :**  
    charbon actif, résines échangeuses d’ions, membranes, solutions hybrides.
- ### **Des réalisations concrètes**  
    auprès de collectivités et d’industriels exposés aux PFAS.
- ### **Des modèles de projet et de financement adaptés**  
    pour lisser l’investissement et sécuriser la performance dans le temps.
- ### **Une gestion responsable des déchets**  
    avec traçabilité complète des déchets concentrés en PFAS dans des filières adaptées.

[Contacter un expert](#contact)

 



 

 

 



 

 

 

 

 





 

 

   ![Analyse des boues](/sites/g/files/dvc2391/files/styles/crop_freeform/public/image/2026/08/analyse-boues.png.webp?itok=hWQp1pfU)   





 

 

 

 

 





### **Actiflo** **:**   
Clarification à haut débit avec charbon actif en poudre (CAP)

### **LEAPfas :**   
Filtration optimisée avec du charbon actif en grains et résines échangeuses d'ions

### **PROflex et SIRION** :   
Plateformes d'osmose inverse

### **BioCon ERS :**   
Système de séchage thermique et de combustion des boues avec récupération d'énergie par production de chaleur - *en cours de test*

### **HTFB (High Temperature Fluid Bed)** :   
Incinération en lit fluidisé à haute température - *en cours de test*



 

 

 



 

 

    ![Icon - Innovation](/sites/g/files/dvc2391/files/image/2026/05/Icon%20-%20Innovation_2.png)   



## **Nos**  
**innovations**



 

 

 



 

 

 

 





 

 

 

 





## Ils ont agi vite

| **Une unité mobile de traitement des PFAS innovante pour garantir un accès sûr et rapide à l’eau potable aux 300 entreprises et industries présentes sur la zone industrielle de Corbas, Vénissieux, Saint-Priest (69).**  Capable de produire 50 m³ d’eau par heure (1,1 millions de litres par jour, soit 400 piscines olympiques), l’unité utilise le charbon actif pour traiter les pesticides, PFAS et autres micropolluants… |  | Depuis sa mise en place en avril 2025, le dispositif a prouvé toute son efficacité puisque les taux des 20 PFAS sont en dessous des seuils détectables.  Nos unités mobiles traduisent cette exigence d’agilité face aux nouveaux enjeux de l’eau et notre engagement aux côtés des collectivités et des industriels pour sécuriser l’accès à une eau de qualité, en quantité suffisante. |
|---|---|---|





 

 

 



**Résultats :**



 

 

 



**Mise en place**   
**rapide**  
**d’unités mobiles de traitement.**



 

 

 

 

 

 



 

**Retour à**   
**une eau conforme**  
**et levée des restrictions.**



 

 

 

 

 

 



 

**Acceptabilité**  
**renforcée**  
**grâce à la transparence des résultat.**



 

 

 

 

 

 



 

 

 





 

 

   ![Paysage de campagne - Vue aérienne](/sites/g/files/dvc2391/files/styles/crop_freeform/public/image/2026/08/paysage-campagne.png.webp?itok=jeQ7nGlh)   





 

 

 

 

 





   ![Logo BeyondPFAS](/sites/g/files/dvc2391/files/styles/default/public/image/2026/05/BeyondPFAS_RVB%20%28white-blue%29.png.webp?itok=tyi9cXw1)   



## *C’est la tranquillité d’esprit face aux PFAS pour un avenir plus sûr et plus propre.*



 

 

 



 

 

 

 






/* Mettre l'image en pleine largeur */
.hero-banner__image--corporate {
  width: 100% !important;
  height: 100% !important;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
}

.hero-banner__image--corporate img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover; /* Pour couvrir tout l'espace */
}

/* Masquer/rendre transparent le fond de couleur */
.hero-banner--theme--veo-navy {
  background-color: transparent !important;
}

/* Conteneur principal en position relative */
.hero-banner {
  position: relative;
  overflow: hidden;
}

/* Texte visible au-dessus de l'image */
.hero-banner__wrapper--corporate,
.hero-banner__container {
  position: relative;
  z-index: 1;
}

  /* Forcer couleur de fond pour le breadcrumb */
  .breadcrumb--theme--veo-dark-green {
    background-color: #4C4C4C !important;
  }
  
  .container--breadcrumbs.theme--background-color--veo-gray {
    background-color: #4C4C4C !important;
  }

/* Supprime l'espace après la Hero Banner */
.hero-banner.hero-banner--theme--veo-navy {
    margin-bottom: 0px;
}

/* Pictogramme bas droite - modifications */
body.bg-pictogram--bottom-right::after,
body.bg-pictogram--bottom-right::before {
  width: 800px !important;
  height: 800px !important;
  right: 0 !important;
  left: auto !important;
  bottom: 0 !important;
  top: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  z-index: 0 !important;
  background-size: contain !important;
  background-position: bottom right !important;
  background-repeat: no-repeat !important;
  position: fixed !important;
}

/* Footer au-dessus du pictogramme */
.footer {
  position: relative !important;
  z-index: 1 !important;
}

/* Forcer le footer à remonter */
.footer {
  margin-top: -50px !important;
  position: relative;
}

.media-call-to-action--with-icon {
  display: none;
}



 

 

 





 

 






  /* Restore real title and cancel broken pseudo title */
  html body form.webform-submission-beyondpfas-collectivites-form::before,
  html body form[class*="webform-submission-beyondpfas"]::before {
    content: none !important;
    display: none !important;
  }

  html body form.webform-submission-beyondpfas-collectivites-form .bpfas-real-form-title,
  html body form[class*="webform-submission-beyondpfas"] .bpfas-real-form-title,
  html body form.webform-submission-beyondpfas-collectivites-form .beyondpfas-form-title-inside,
  html body form[class*="webform-submission-beyondpfas"] .beyondpfas-form-title-inside {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    position: static !important;
    margin: 0 0 48px 0 !important;
    padding: 0 !important;
    text-align: center !important;
    color: #003B7A !important;
    font-size: clamp(32px, 4vw, 48px) !important;
    line-height: 1.15 !important;
    font-weight: 700 !important;
    letter-spacing: -0.02em !important;
  }

  /* Keep the reduced gap */
  :root {
    --bpfas-form-gap-remove: 170px;
  }

  html body .bpfas-gap-parent-fix {
    overflow: visible !important;
    padding-top: 0 !important;
    margin-top: 0 !important;
  }

  html body .bpfas-gap-parent-fix > .container__inner {
    overflow: visible !important;
    padding-top: 0 !important;
    margin-top: 0 !important;
  }

  html body .bpfas-form-wrapper-up {
    position: relative !important;
    z-index: 5 !important;
    margin-top: calc(-1 * var(--bpfas-form-gap-remove)) !important;
  }

  @media (max-width: 768px) {
    :root {
      --bpfas-form-gap-remove: 90px;
    }

    html body form.webform-submission-beyondpfas-collectivites-form .bpfas-real-form-title,
    html body form[class*="webform-submission-beyondpfas"] .bpfas-real-form-title {
      font-size: 32px !important;
      margin-bottom: 32px !important;
    }
  }
 
(function (Drupal, once) {
  'use strict';

  function setupTitleAndGap(form) {
    if (!form) {
      return;
    }

    var progress = form.querySelector('.webform-progress');

    if (!progress) {
      return;
    }

    /* Remove broken/hidden previous injected title if duplicated */
    form.querySelectorAll('.bpfas-real-form-title').forEach(function (oldTitle) {
      oldTitle.remove();
    });

    /* Restore title as a real visible h2 */
    var title = document.createElement('h2');
    title.className = 'bpfas-real-form-title';
    title.textContent = 'Contactez nos experts';
    form.insertBefore(title, progress);

    var wrapper =
      form.closest('.container--webform-inline') ||
      form.closest('.webform-ajax-form-wrapper') ||
      form.parentElement;

    var parent =
      form.closest('.container--container-paragraph') ||
      form.closest('.container--paragraph');

    if (parent) {
      parent.classList.add('bpfas-gap-parent-fix');
    }

    if (wrapper) {
      wrapper.classList.add('bpfas-form-wrapper-up');
    }
  }

  if (Drupal && Drupal.behaviors && typeof once === 'function') {
    Drupal.behaviors.bpfasRestoreTitleAndGap = {
      attach: function (context) {
        once(
          'bpfas-restore-title-and-gap',
          'form.webform-submission-beyondpfas-collectivites-form, form[class*="webform-submission-beyondpfas"]',
          context
        ).forEach(setupTitleAndGap);
      }
    };
  } else {
    document.addEventListener('DOMContentLoaded', function () {
      document
        .querySelectorAll('form.webform-submission-beyondpfas-collectivites-form, form[class*="webform-submission-beyondpfas"]')
        .forEach(setupTitleAndGap);
    });
  }
})(window.Drupal, window.once);


 

 

 





 

 





 

 

 

 

 





 

 

 

 





## <a class="ck-anchor" id="contact"></a>Contactez nos experts



 

 

 



 

 

 



 

 

 

 






/* Import Noto Sans from Google Fonts */
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans:wght@400;700&display=swap');

.sticky-contact-btn {
  /* Positioning for Desktop (Bottom-Left) */
  position: fixed;
  left: 25px;
  bottom: 30%;
  z-index: 9999;
  
  /* Styling */
  background-color: #05C3DD;
  color: white !important;
  padding: 14px 24px;
  border-radius: 30px;
  text-decoration: none !important;
  font-family: 'Noto Sans', sans-serif, Arial, sans-serif;
  font-weight: bold;
  box-shadow: 2px 4px 12px rgba(0, 0, 0, 0.2);
  transition: all 0.3s ease;
  font-size: 14px;
  border: none !important;
  
  display: flex !important;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  
  text-align: center;
  line-height: 1 !important;
  
  /* Animation scroll-driven */
  animation: showCTA linear;
  animation-timeline: view();
  animation-range: entry 30% cover 50%;
}

/* Animation pour afficher le bouton */
/* Animation pour afficher le bouton */
@keyframes showCTA {
  0% {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
  }
  99% {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
  }
  100% {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }
}

/* Desktop Hover State */
.sticky-contact-btn:hover {
  background-color: #50D5E7;
  box-shadow: 4px 6px 16px rgba(0, 0, 0, 0.3);
  transform: translateY(-3px);
  text-decoration: none !important;
  color: white !important;
}

.sticky-contact-btn:visited,
.sticky-contact-btn:focus,
.sticky-contact-btn:active {
  text-decoration: none !important;
  color: white !important;
}

/* Mobile Settings */
@media (max-width: 768px) {
  .sticky-contact-btn {
    left: 50%;
    transform: translateX(-50%);
    bottom: 15px;
    width: 85%;
    max-width: 320px;
  }

  .sticky-contact-btn:hover {
    transform: translate(-50%, -3px);
  }
}



 

 

 





 

 





[UN BESOIN ? CONTACTEZ-NOUS](#contact)



 

 

 




/* ==========================================================================
   BeyondPFAS Brochure Modal — Clean Final Version
   ========================================================================== */

[data-bpfas-hidden="true"] {
  display: none !important;
  visibility: hidden !important;
  width: 0 !important;
  height: 0 !important;
  min-width: 0 !important;
  min-height: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 0 !important;
  overflow: hidden !important;
}

/* Reset any old hover class from previous versions */
.bpfas-cta-root,
.bpfas-cta-root:hover,
.bpfas-cta-root.is-bpfas-hover {
  background: transparent !important;
  background-color: transparent !important;
  color: inherit !important;
}

/* Clean CTA default */
a.bpfas-brochure-main-cta {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;

  width: auto !important;
  min-width: 360px !important;
  min-height: 48px !important;
  padding: 0 38px !important;

  background: #ffffff !important;
  background-color: #ffffff !important;
  background-image: none !important;

  border: 1px solid #1f1f1f !important;
  border-radius: 0 !important;

  color: #1f1f1f !important;
  font-family: "Noto Sans", Arial, sans-serif !important;
  font-size: 16px !important;
  font-weight: 800 !important;
  line-height: 48px !important;
  text-align: center !important;
  text-transform: uppercase !important;
  text-decoration: none !important;

  box-shadow: none !important;
  box-sizing: border-box !important;
  cursor: pointer !important;
  transition: none !important;
  transform: none !important;
  overflow: hidden !important;
}

a.bpfas-brochure-main-cta span {
  display: inline-block !important;
  background: transparent !important;
  color: inherit !important;
  white-space: nowrap !important;
}

/* Kill pseudo-elements only on the CTA itself */
a.bpfas-brochure-main-cta::before,
a.bpfas-brochure-main-cta::after,
a.bpfas-brochure-main-cta span::before,
a.bpfas-brochure-main-cta span::after {
  content: none !important;
  display: none !important;
}

/* Hover: only the button turns black */
a.bpfas-brochure-main-cta:hover,
a.bpfas-brochure-main-cta:hover span,
a.bpfas-brochure-main-cta:active,
a.bpfas-brochure-main-cta:active span {
  background: #1f1f1f !important;
  background-color: #1f1f1f !important;
  background-image: none !important;
  border-color: #1f1f1f !important;
  color: #ffffff !important;
  text-decoration: none !important;
  box-shadow: none !important;
  transform: none !important;
  opacity: 1 !important;
}

a.bpfas-brochure-main-cta:visited {
  text-decoration: none !important;
}

a.bpfas-brochure-main-cta:focus-visible {
  outline: 3px solid #0072CE !important;
  outline-offset: 3px !important;
}

/* Modal overlay */
#bpfas-brochure-modal {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 999999;
  background: rgba(0, 0, 0, 0.62);
  font-family: "Noto Sans", Arial, sans-serif;
}

#bpfas-brochure-modal.is-open {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  box-sizing: border-box;
}

body.bpfas-modal-open {
  overflow: hidden !important;
}

/* Modal card */
.bpfas-modal-card {
  width: min(720px, 100%);
  max-height: calc(100vh - 48px);
  background: #ffffff;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 24px 80px rgba(0, 0, 0, 0.35);
  display: flex;
  flex-direction: column;
}

/* Modal header */
.bpfas-modal-header {
  position: relative;
  padding: 34px 36px 26px;
  background: #ffffff;
  border-bottom: 1px solid #e5e7eb;
  flex: 0 0 auto;
}

.bpfas-modal-title {
  margin: 0 52px 10px 0;
  color: #1A1A1A;
  font-size: 30px;
  line-height: 1.18;
  font-weight: 800;
}

.bpfas-modal-text {
  margin: 0;
  max-width: 560px;
  color: #333333;
  font-size: 16px;
  line-height: 1.55;
}

.bpfas-modal-close {
  position: absolute;
  top: 24px;
  right: 24px;

  width: 42px;
  height: 42px;

  border: 1px solid #0072CE;
  border-radius: 999px;
  background: #ffffff;
  color: #333333;

  font-size: 28px;
  line-height: 1;
  cursor: pointer;
}

.bpfas-modal-close:hover {
  background: #F2F1F9;
}

/* Modal body */
.bpfas-modal-body {
  position: relative;
  background: #ffffff;
  overflow-y: auto;
  overflow-x: hidden;
  max-height: calc(100vh - 210px);
  flex: 1 1 auto;
}

/* Loader */
.bpfas-form-loader {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 360px;
  padding: 32px;
  box-sizing: border-box;
  color: #333333;
  font-size: 15px;
  line-height: 1.5;
}

.bpfas-form-loader span {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}

.bpfas-form-loader span::before {
  content: "";
  width: 18px;
  height: 18px;
  border: 3px solid #D5D3E3;
  border-top-color: #EE0000;
  border-radius: 50%;
  animation: bpfasSpin 0.8s linear infinite;
}

@keyframes bpfasSpin {
  to {
    transform: rotate(360deg);
  }
}

/* Iframe hidden until ready */
#bpfas-brochure-frame {
  display: block;
  width: 100%;
  height: 0;
  min-height: 0;
  border: 0;
  background: #ffffff;
  visibility: hidden;
  opacity: 0;
}

#bpfas-brochure-modal.is-frame-ready .bpfas-form-loader {
  display: none;
}

#bpfas-brochure-modal.is-frame-ready #bpfas-brochure-frame {
  visibility: visible;
  opacity: 1;
}

/* Mobile */
@media (max-width: 768px) {
  #bpfas-brochure-modal.is-open {
    padding: 12px;
  }

  .bpfas-modal-card {
    max-height: calc(100vh - 24px);
    border-radius: 10px;
  }

  .bpfas-modal-header {
    padding: 28px 22px 22px;
  }

  .bpfas-modal-title {
    font-size: 24px;
  }

  .bpfas-modal-text {
    font-size: 15px;
  }

  .bpfas-modal-body {
    max-height: calc(100vh - 180px);
  }

  a.bpfas-brochure-main-cta {
    min-width: 280px !important;
    padding: 0 26px !important;
    font-size: 15px !important;
  }
}
 ×##  Recevoir la brochure BeyondPFAS 

 Renseignez vos coordonnées pour recevoir la brochure par email.

 

 Chargement du formulaire… 

   

 

 

 
(function () {
  'use strict';

  var FORM_URL = '/form/beyondpfas-brochure-download';

  function normalizeText(text) {
    return String(text || '')
      .normalize('NFD')
      .replace(/[\u0300-\u036f]/g, '')
      .replace(/\s+/g, ' ')
      .trim()
      .toLowerCase();
  }

  function getSourcePageType() {
    var path = window.location.pathname || '';

    if (path.indexOf('offre-collectivites') !== -1) {
      return 'Collectivités';
    }

    if (path.indexOf('offre-industries') !== -1) {
      return 'Industries';
    }

    return 'Non identifié';
  }

  function fillSourceFields(doc) {
    var sourceType = getSourcePageType();
    var sourceUrl = window.location.href;

    var sourceTypeInput =
      doc.querySelector('input[name="source_page_type"]') ||
      doc.querySelector('[name="source_page_type"]');

    var sourcePageInput =
      doc.querySelector('input[name="source_page"]') ||
      doc.querySelector('[name="source_page"]');

    if (sourceTypeInput) {
      sourceTypeInput.value = sourceType;
      sourceTypeInput.setAttribute('value', sourceType);
    }

    if (sourcePageInput) {
      sourcePageInput.value = sourceUrl;
      sourcePageInput.setAttribute('value', sourceUrl);
    }
  }

  function isVisible(element) {
    if (!element || !element.getBoundingClientRect) {
      return false;
    }

    var rect = element.getBoundingClientRect();
    var style = window.getComputedStyle(element);

    return !!(
      rect.width &&
      rect.height &&
      style.display !== 'none' &&
      style.visibility !== 'hidden'
    );
  }

  function isBrochureLink(link) {
    var text = normalizeText(link.textContent);
    var href = link.getAttribute('href') || '';

    return (
      text.indexOf('telecharger notre brochure') !== -1 ||
      href.indexOf('FR-BeyondPFAS-Brochure.pdf') !== -1 ||
      href.indexOf('/form/beyondpfas-brochure-download') !== -1
    );
  }

  function findBrochureLinks() {
    return Array.prototype.slice.call(document.querySelectorAll('a'))
      .filter(isBrochureLink)
      .sort(function (a, b) {
        return a.getBoundingClientRect().top - b.getBoundingClientRect().top;
      });
  }

  function hideElement(element) {
    if (!element) {
      return;
    }

    element.setAttribute('data-bpfas-hidden', 'true');
    element.setAttribute('aria-hidden', 'true');

    if (
      element.tagName &&
      ['A', 'BUTTON', 'INPUT'].indexOf(element.tagName.toUpperCase()) !== -1
    ) {
      element.setAttribute('tabindex', '-1');
    }
  }

  function cleanWrapperGhosts(mainLink) {
    var wrapper = mainLink.parentElement;
    var depth = 0;

    while (wrapper && depth < 4) {
      var text = normalizeText(wrapper.textContent);

      if (text.indexOf('telecharger notre brochure') !== -1) {
        break;
      }

      wrapper = wrapper.parentElement;
      depth++;
    }

    if (!wrapper) {
      wrapper = mainLink.parentElement;
    }

    Array.prototype.slice.call(wrapper.querySelectorAll('a, button, span, div')).forEach(function (node) {
      if (node === mainLink || node.contains(mainLink) || mainLink.contains(node)) {
        return;
      }

      if (normalizeText(node.textContent) === '') {
        hideElement(node);
      }
    });
  }

  function prepareCta() {
    var links = findBrochureLinks();

    if (!links.length) {
      return [];
    }

    var visibleLinks = links.filter(isVisible);
    var mainLink = visibleLinks[0] || links[0];

    links.forEach(function (link) {
      if (link !== mainLink) {
        hideElement(link);
      }
    });

    mainLink.classList.remove('bpfas-cta-root', 'is-bpfas-hover');
    mainLink.classList.add('bpfas-brochure-main-cta');
    mainLink.setAttribute('href', FORM_URL);
    mainLink.removeAttribute('target');
    mainLink.setAttribute('aria-haspopup', 'dialog');
    mainLink.innerHTML = '<span>Télécharger notre brochure';

    cleanWrapperGhosts(mainLink);

    return [mainLink];
  }

  function setLoaderText(modal, text) {
    var loaderText = modal.querySelector('.bpfas-form-loader span');

    if (loaderText) {
      loaderText.textContent = text;
    }
  }

  function openModal(modal, iframe) {
    modal.classList.add('is-open');
    modal.setAttribute('aria-hidden', 'false');
    document.body.classList.add('bpfas-modal-open');

    if (!iframe.getAttribute('src')) {
      iframe.setAttribute('src', iframe.getAttribute('data-src'));
    }

    window.setTimeout(function () {
      var closeButton = modal.querySelector('.bpfas-modal-close');

      if (closeButton) {
        closeButton.focus();
      }
    }, 80);
  }

  function closeModal(modal) {
    modal.classList.remove('is-open');
    modal.setAttribute('aria-hidden', 'true');
    document.body.classList.remove('bpfas-modal-open');
  }

  function resizeIframe(iframe) {
    try {
      var doc = iframe.contentDocument || iframe.contentWindow.document;
      var isolated = doc.getElementById('bpfas-isolated-form');

      var height = Math.max(
        isolated ? isolated.scrollHeight : 0,
        doc.body ? doc.body.scrollHeight : 0,
        420
      );

      iframe.style.height = height + 'px';
      iframe.style.minHeight = height + 'px';
    }
    catch (error) {
      iframe.style.height = '640px';
      iframe.style.minHeight = '640px';
    }
  }

  function showLocalConfirmation(doc, iframe, modal) {
    var isolated = doc.getElementById('bpfas-isolated-form');

    if (!isolated) {
      isolated = doc.createElement('div');
      isolated.id = 'bpfas-isolated-form';
      doc.body.innerHTML = '';
      doc.body.appendChild(isolated);
    }

    isolated.innerHTML = [
      '<div class="bpfas-confirmation-message">',
      '  <h2>Votre demande a bien été prise en compte',
      '  <p>Merci pour votre intérêt pour les solutions BeyondPFAS de Veolia.',
      '  <p>Vous allez recevoir dans quelques instants un email contenant le lien de téléchargement de la brochure.',
      '  <p>Nos équipes pourront également vous recontacter prochainement.',
      '

' ].join(''); iframe.dataset.bpfasPendingSubmit = 'false'; window.setTimeout(function () { resizeIframe(iframe); modal.classList.add('is-frame-ready'); setLoaderText(modal, 'Chargement du formulaire…'); var modalBody = modal.querySelector('.bpfas-modal-body'); if (modalBody) { modalBody.scrollTop = 0; } }, 100); } function beginSubmitState(doc, iframe, modal, form) { if (form &amp;&amp; form.checkValidity &amp;&amp; !form.checkValidity()) { return; } fillSourceFields(doc); iframe.dataset.bpfasPendingSubmit = 'true'; modal.classList.remove('is-frame-ready'); setLoaderText(modal, 'Envoi de votre demande…'); var modalBody = modal.querySelector('.bpfas-modal-body'); if (modalBody) { modalBody.scrollTop = 0; } watchForAjaxResult(iframe, modal); window.setTimeout(function () { try { var currentDoc = iframe.contentDocument || iframe.contentWindow.document; if ( iframe.dataset.bpfasPendingSubmit === 'true' &amp;&amp; currentDoc &amp;&amp; !currentDoc.querySelector('.form-item--error-message, .form-error, .messages--error, .messages.error') &amp;&amp; !currentDoc.querySelector('.webform-confirmation, .bpfas-confirmation-message') ) { showLocalConfirmation(currentDoc, iframe, modal); } } catch (error) {} }, 1500); window.setTimeout(function () { try { var currentDoc = iframe.contentDocument || iframe.contentWindow.document; if ( iframe.dataset.bpfasPendingSubmit === 'true' &amp;&amp; currentDoc &amp;&amp; !currentDoc.querySelector('.form-item--error-message, .form-error, .messages--error, .messages.error') &amp;&amp; !currentDoc.querySelector('.webform-confirmation, .bpfas-confirmation-message') ) { showLocalConfirmation(currentDoc, iframe, modal); } } catch (error) {} }, 3000); } function bindSubmitState(doc, iframe, modal) { if (!doc.body || doc.body.dataset.bpfasSubmitReady === 'true') { return; } doc.body.dataset.bpfasSubmitReady = 'true'; doc.addEventListener('submit', function (event) { var form = event.target &amp;&amp; event.target.closest ? event.target.closest('form.webform-submission-form') : null; if (!form) { return; } beginSubmitState(doc, iframe, modal, form); }, true); doc.addEventListener('click', function (event) { var button = event.target &amp;&amp; event.target.closest ? event.target.closest('input[type="submit"], button[type="submit"]') : null; if (!button) { return; } var form = button.closest('form.webform-submission-form'); if (!form) { return; } window.setTimeout(function () { beginSubmitState(doc, iframe, modal, form); }, 20); }, true); } function watchForAjaxResult(iframe, modal) { var attempts = 0; var maxAttempts = 40; var interval = window.setInterval(function () { attempts++; try { var doc = iframe.contentDocument || iframe.contentWindow.document; if (!doc) { return; } var hasConfirmation = doc.querySelector('.webform-confirmation, .bpfas-confirmation-message'); var hasErrors = doc.querySelector('.form-item--error-message, .form-error, .messages--error, .messages.error'); if (hasConfirmation || hasErrors) { iframe.dataset.bpfasPendingSubmit = 'false'; isolateFormInsideIframe(iframe, modal); window.clearInterval(interval); } if (attempts &gt;= maxAttempts) { window.clearInterval(interval); } } catch (error) { if (attempts &gt;= maxAttempts) { window.clearInterval(interval); } } }, 250); } function startIframeObserver(doc, iframe, modal) { if (!doc.body || doc.body.dataset.bpfasObserverReady === 'true') { return; } doc.body.dataset.bpfasObserverReady = 'true'; var observer = new MutationObserver(function () { var hasConfirmation = doc.querySelector('.webform-confirmation, .bpfas-confirmation-message'); var hasErrors = doc.querySelector('.form-item--error-message, .form-error, .messages--error, .messages.error'); if (hasConfirmation || hasErrors) { iframe.dataset.bpfasPendingSubmit = 'false'; isolateFormInsideIframe(iframe, modal); } }); observer.observe(doc.body, { childList: true, subtree: true }); } function isolateFormInsideIframe(iframe, modal) { try { var doc = iframe.contentDocument || iframe.contentWindow.document; if (!doc || !doc.body) { return; } var formWrapper = doc.querySelector('.webform-confirmation') || doc.querySelector('.bpfas-confirmation-message') || doc.querySelector('.webform-ajax-form-wrapper') || doc.querySelector('form.webform-submission-form'); if (!formWrapper) { return; } var isolated = doc.getElementById('bpfas-isolated-form'); if (!isolated) { isolated = doc.createElement('div'); isolated.id = 'bpfas-isolated-form'; isolated.appendChild(formWrapper); doc.body.innerHTML = ''; doc.body.appendChild(isolated); } else if (!isolated.contains(formWrapper)) { isolated.innerHTML = ''; isolated.appendChild(formWrapper); } if (!doc.getElementById('bpfas-isolated-style')) { var style = doc.createElement('style'); style.id = 'bpfas-isolated-style'; style.textContent = [ 'html, body {', ' margin: 0 !important;', ' padding: 0 !important;', ' background: #ffffff !important;', ' overflow: hidden !important;', ' font-family: "Noto Sans", Arial, sans-serif !important;', '}', '#bpfas-isolated-form {', ' margin: 0 !important;', ' padding: 30px 36px 36px !important;', ' box-sizing: border-box !important;', ' background: #ffffff !important;', '}', '#bpfas-isolated-form .webform-ajax-form-wrapper,', '#bpfas-isolated-form form.webform-submission-form {', ' background: #ffffff !important;', ' padding: 0 !important;', ' margin: 0 !important;', ' max-width: 100% !important;', ' width: 100% !important;', ' border: 0 !important;', ' box-shadow: none !important;', '}', 'form.webform-submission-form .form-item,', 'form.webform-submission-form .js-form-item {', ' display: flex !important;', ' flex-direction: column !important;', ' gap: 4px !important;', ' margin-bottom: 20px !important;', '}', 'form.webform-submission-form label {', ' display: inline-flex !important;', ' color: #333333 !important;', ' font-size: 14px !important;', ' font-weight: 700 !important;', ' margin-bottom: 4px !important;', '}', 'form.webform-submission-form label.form-required::after,', 'form.webform-submission-form label.js-form-required::after {', ' content: none !important;', ' display: none !important;', '}', 'form.webform-submission-form input.form-text,', 'form.webform-submission-form input.form-email,', 'form.webform-submission-form input.form-tel {', ' background-color: #F2F1F9 !important;', ' border: 1px solid #D5D3E3 !important;', ' color: #333333 !important;', ' border-radius: 4px !important;', ' padding: 14px 16px !important;', ' width: 100% !important;', ' height: 50px !important;', ' box-sizing: border-box !important;', ' font-size: 16px !important;', ' line-height: 22px !important;', ' box-shadow: none !important;', ' outline: none !important;', '}', 'form.webform-submission-form input.form-text:focus,', 'form.webform-submission-form input.form-email:focus,', 'form.webform-submission-form input.form-tel:focus {', ' background-color: #ffffff !important;', ' border-color: #0072CE !important;', '}', 'form.webform-submission-form .form-type-checkbox,', 'form.webform-submission-form .js-form-type-checkbox {', ' display: flex !important;', ' flex-direction: row !important;', ' align-items: flex-start !important;', ' gap: 10px !important;', ' margin-bottom: 20px !important;', '}', 'form.webform-submission-form input[type="checkbox"] {', ' width: 18px !important;', ' height: 18px !important;', ' min-width: 18px !important;', ' margin: 3px 0 0 !important;', ' accent-color: #EE0000 !important;', '}', 'form.webform-submission-form .form-type-checkbox label,', 'form.webform-submission-form .js-form-type-checkbox label {', ' width: auto !important;', ' margin: 0 !important;', ' font-weight: 400 !important;', ' line-height: 20px !important;', '}', 'form.webform-submission-form p {', ' color: #555555 !important;', ' font-size: 13px !important;', ' line-height: 19px !important;', ' margin: 8px 0 0 !important;', '}', 'form.webform-submission-form .form-actions {', ' display: flex !important;', ' justify-content: flex-end !important;', ' margin-top: 28px !important;', '}', 'form.webform-submission-form .form-actions input[type="submit"] {', ' border-radius: 999px !important;', ' border: none !important;', ' padding: 12px 42px !important;', ' background-color: #EE0000 !important;', ' background-image: none !important;', ' color: #ffffff !important;', ' font-size: 16px !important;', ' font-weight: 700 !important;', ' min-width: 180px !important;', ' min-height: 48px !important;', ' box-shadow: none !important;', ' cursor: pointer !important;', '}', '.webform-confirmation,', '.bpfas-confirmation-message {', ' padding: 32px !important;', ' background: #F2F1F9 !important;', ' border-radius: 8px !important;', ' color: #333333 !important;', ' font-family: "Noto Sans", Arial, sans-serif !important;', '}', '.webform-confirmation h2,', '.bpfas-confirmation-message h2 {', ' margin: 0 0 12px !important;', ' color: #002d62 !important;', ' font-size: 26px !important;', ' line-height: 1.25 !important;', ' font-weight: 700 !important;', '}', '.webform-confirmation p,', '.bpfas-confirmation-message p {', ' margin: 0 0 12px !important;', ' color: #333333 !important;', ' font-size: 16px !important;', ' line-height: 1.55 !important;', '}', '@media (max-width: 768px) {', ' #bpfas-isolated-form { padding: 24px !important; }', ' form.webform-submission-form .form-actions { justify-content: stretch !important; }', ' form.webform-submission-form .form-actions input[type="submit"] { width: 100% !important; }', '}' ].join('\n'); doc.head.appendChild(style); } fillSourceFields(doc); bindSubmitState(doc, iframe, modal); startIframeObserver(doc, iframe, modal); window.setTimeout(function () { resizeIframe(iframe); modal.classList.add('is-frame-ready'); setLoaderText(modal, 'Chargement du formulaire…'); var modalBody = modal.querySelector('.bpfas-modal-body'); if (modalBody) { modalBody.scrollTop = 0; } }, 180); window.setTimeout(function () { resizeIframe(iframe); }, 650); window.setTimeout(function () { resizeIframe(iframe); }, 1200); } catch (error) { modal.classList.add('is-frame-ready'); iframe.style.height = '640px'; iframe.style.minHeight = '640px'; } } function init() { var modal = document.getElementById('bpfas-brochure-modal'); var iframe = document.getElementById('bpfas-brochure-frame'); if (!modal || !iframe) { return; } iframe.setAttribute('data-src', FORM_URL); prepareCta().forEach(function (link) { if (link.dataset.bpfasClickReady === 'true') { return; } link.dataset.bpfasClickReady = 'true'; link.addEventListener('click', function (event) { event.preventDefault(); modal.classList.remove('is-frame-ready'); setLoaderText(modal, 'Chargement du formulaire…'); openModal(modal, iframe); }); }); var closeButton = modal.querySelector('.bpfas-modal-close'); if (closeButton &amp;&amp; closeButton.dataset.bpfasCloseReady !== 'true') { closeButton.dataset.bpfasCloseReady = 'true'; closeButton.addEventListener('click', function () { closeModal(modal); }); } if (modal.dataset.bpfasOverlayReady !== 'true') { modal.dataset.bpfasOverlayReady = 'true'; modal.addEventListener('click', function (event) { if (event.target === modal) { closeModal(modal); } }); document.addEventListener('keydown', function (event) { if (event.key === 'Escape' &amp;&amp; modal.classList.contains('is-open')) { closeModal(modal); } }); } if (iframe.dataset.bpfasLoadReady !== 'true') { iframe.dataset.bpfasLoadReady = 'true'; iframe.addEventListener('load', function () { isolateFormInsideIframe(iframe, modal); }); } } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', init); } else { init(); } window.setTimeout(init, 500); window.setTimeout(init, 1200); })(); 

 

 

 





 

 






/* Remove stacked spacing above this embedded form. */
html body .container--container-paragraph:has(form.webform-submission-beyondpfas-collectivites-form),
html body .container--container-paragraph:has(form.webform-submission-beyondpfas-collectivites-form) > .container__inner,
html body .container--webform-inline:has(form.webform-submission-beyondpfas-collectivites-form),
html body .container--webform-inline:has(form.webform-submission-beyondpfas-collectivites-form) > .container__inner {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

html body .container--webform-inline form.webform-submission-beyondpfas-collectivites-form {
  margin-top: 0 !important;
}

/* Collapse the separate title block, preserving its contact anchor. */
html body .container--wysiwyg:has(#contact),
html body .container--wysiwyg:has(#contact) :is(.container__inner, .wysiwyg, .wysiwyg > div, h2) {
  display: contents !important;
}

html body .container--wysiwyg:has(#contact) :is(p, h2 > span) {
  display: none !important;
}

html body .container--wysiwyg #contact {
  display: block !important;
  position: static !important;
  float: none !important;
  width: 0 !important;
  height: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  scroll-margin-top: 140px;
}

html body .container--wysiwyg #contact::before,
html body .container--wysiwyg #contact::after {
  content: none !important;
  display: none !important;
}

/* Prevent this code-only media embed from adding its own empty space. */
html body .container--media:has(#bpfas-contact-layout-fix) {
  display: none !important;
}