Estagel Nouveau Souffle
🌙

🌐 Un site internet modernisé… à la veille des élections ❓

📍 Adresse du site officiel de la commune :
👉 https://www.estagel.fr

🚧 Depuis plusieurs jours, le site internet de la mairie était inaccessible, officiellement en travaux.
📅 Il est de nouveau en ligne depuis aujourd’hui, le 22 janvier.

⏳ Pendant des années, la commune d’Estagel a dû se contenter d’un site internet vieillot, ringard et clairement has-been 🕰️, très éloigné des standards actuels du web en matière :

Et soudain, à un mois des élections municipales 🗳️, miracle numérique ✨ :
➡️ un nouveau site apparaît, enfin conforme aux standards modernes.


❓ Une modernisation tardive qui interroge

Une question simple se pose alors 🤔 :
pourquoi cette décision arrive-t-elle si tardivement ?

Pourquoi avoir attendu l’imminence d’un scrutin pour offrir aux habitants un outil de communication digne de ce nom ?
Pourquoi cette modernisation n’a-t-elle pas été engagée plus tôt, dans l’intérêt permanent de la population ?

👉 On peut raisonnablement en déduire que la communication municipale ne devient une priorité
que lorsque l’intérêt personnel du maire est directement concerné ⚠️


💰 De l’argent public, pour une opération d’image ?

Ce nouveau site a été réalisé en partenariat avec le Réseau des Communes 🏛️,
et bien entendu, financé par de l’argent public 💶.

❗ Il ne s’agit donc pas :

mais bien d’une opération institutionnelle,
payée par les habitants eux-mêmes 👥


✅ Ce qui est positif (et qu’il faut reconnaître)

Soyons clairs ✔️ :

➡️ C’est un progrès, et personne ne le conteste.


⚠️ Mais le vrai problème n’est pas technique

La question n’est pas de savoir s’il fallait moderniser le site
➡️ il le fallait depuis longtemps

La vraie question est :
pourquoi cela n’a été fait qu’au moment politiquement opportun 🎭 ?


🗳️ Une autre vision de la démocratie locale

La démocratie locale ne devrait pas fonctionner par à-coups électoraux 🔁,
mais dans une logique de :

📣 Les habitants méritent mieux qu’une modernisation de façade,
déclenchée à la dernière minute ⏰.

<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">

<title>Titre de la page par défaut</title>
<meta name="description" content="Estagel Nouveau Souffle : Programme complet pour les élections municipales 2026. Instaurer une vraie démocratie locale, soutenir l’agriculture et la planification écologique, améliorer l’aménagement urbain et le cadre de vie, renforcer la solidarité et l’action sociale, défendre les services publics et la paix, encourager la culture, le sport et la vie associative, sécuriser le village et dynamiser les commerces.">
<meta name="keywords" content="Estagel, élections municipales 2026, démocratie locale, référendum d’initiative citoyenne, transparence, communication publique, bulletin municipal, site internet, agriculture bio, AMAP, agriculture paysanne, récupération eaux usées, transports publics, gare multimodale, gestion écologique de l’eau, urbanisme, logements vacants, cadre de vie, rénovation mairie, promenade, végétation, jardins, toilettes publiques, solidarité, logement social, CCAS, services publics, paix, jumelage, culture, associations, sport, jeunesse, sécurité, prévention, citoyenneté, commerces, centre du village, taxe foncière, marché local, chèque solidarité">
<meta name="author" content="Michel Garnier">
<meta name="robots" content="index, follow">

<meta property="og:title" content="Estagel Nouveau Souffle - Élections municipales 2026">
<meta property="og:description" content="Programme municipal complet pour Estagel : démocratie, écologie, cadre de vie, solidarité, culture, sécurité et commerce local.">
<meta property="og:image" content="https://estagelnouveausouffle.fr/assets/images/fbShare.jpg">
<meta property="og:url" content="https://estagelnouveausouffle.fr">
<meta property="og:image:secure_url" content="https://estagelnouveausouffle.fr/assets/images/fbShare.jpg">
<meta property="og:type" content="website">
<meta property="og:image:width" content="1167">
<meta property="og:image:height" content="835">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="Estagel Nouveau Souffle - Élections municipales 2026">
<meta name="twitter:description" content="Programme municipal complet pour Estagel : démocratie, écologie, cadre de vie, solidarité, culture, sécurité et commerce local.">
<meta name="twitter:image" content="https://estagelnouveausouffle.fr/assets/images/fbShare.jpg">
<link rel="canonical" href="https://wego.ovh/_Bilan-de-quinze-annees/site-web-mairie">


<link rel="icon" type="image/png" href="/assets/images/LogoCouleurENS2.webp">


<style>
/* ==================================================
   1. RESET & BASES (Supprime l'espace blanc en haut)
================================================== */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html, body {
    width: 100%;
    margin: 0 !important;
    padding: 0 !important;
    overflow-x: hidden; /* Empêche le balancement gauche/droite sur mobile */
    -webkit-font-smoothing: antialiased;
}

body {
    margin: 0;
    padding: 0;
    font-family: system-ui, sans-serif;
    background: white;
    color: #111;
    font-size: 1.15rem;
}

/* Titres fluides d'origine */
h1 { font-size: clamp(1.4rem, 5vw, 3rem); }
h2 { font-size: clamp(1.2rem, 4vw, 2.5rem); }
h3 { font-size: clamp(1rem, 3vw, 2rem); }

/* =========================
   CONTENU PRINCIPAL
========================= */
/* =========================
   CONTENU PRINCIPAL (Restauration)
========================= */
main {
    max-width: 1100px;
    margin: 0 auto; /* On garde le 0 en haut pour l'espace blanc */
    padding: 10px 30px;
    /*padding-top :0;*/
    margin-top :0;
    background-color: #FaFdfe;
    box-sizing: border-box;
    overflow-wrap: break-word;
}

main ul {
    list-style-type: none; 
    padding-left: 0;       
    margin-left: 0;        
}

/* Images d'origine */
main img {
    max-width: 100%;
    height: auto;
    margin: 0;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3); 
    border-radius: 8px; 
    transition: transform 0.3s, box-shadow 0.3s;
}

main pre:first-child {
display: none;
}

/* Règle pour tous les titres du contenu */
main h1, main h2, main h3, main h4 {
    display: block;
    /* Marges standard du navigateur pour aérer le texte */
    margin-top: 1.33em;
    /*margin-bottom: 0.67em;*/
    margin-bottom: 1.2em;
    font-weight: bold;
    line-height: 1.2;
}

/* Cas particulier : si un titre est le tout premier élément du main,
   on réduit sa marge haute pour éviter un décalage inutile */
main h1:first-child, 
main h2:first-child {
    margin-top: 0.5em;
}

/* Espacement standard pour les paragraphes (pour être sûr) */
main p {
    margin-top: 0;
    margin-bottom: 1em; /* C'est la fameuse ligne blanche entre paragraphes */
}


/* Vos Alert Boxes d'origine */
.alert {
    box-sizing: border-box;
    margin: 20px 0;
    padding: 15px 20px;
    border-left-width: 6px;
    border-left-style: solid;
    border-radius: 6px;
    font-size: 1em;
    line-height: 1.5;
    display: flex;
    align-items: flex-start;
    gap: 10px;
}


main {
/*	background: green;*/
}

/* ==================================================
   2. HEADER HERO (Image de fond)
================================================== */




.hero {
width: 100%;
line-height: 0;
margin: 0;
padding: 0;
}
.hero {
box-shadow: 0 10px 15px -5px rgba(0,0,0,0.4);
position: relative;
z-index: 10;
}


.hero img {
width: 100%;
height: auto;
display: block;
}



/* ==================================================
   4. INTERFACE (Burgers, Sidebar, Thèmes)
================================================== */
#burger {
    position: fixed;
    top: 12px;
    right: 15px;
    font-size: 26px;
    cursor: pointer;
    z-index: 1001;
    color: white;
    background: rgba(255, 0, 128, 0.8);
    padding: 5px 12px;
    border-radius: 5px;
}

#themeToggle {
    position: fixed;
    bottom: 12px;
    right: 15px;
    cursor: pointer;
    font-size: 22px;
    z-index: 1002;
}


/* ==================================================
   RESTAURATION STRICTE DU STYLE SIDEBAR D'ORIGINE
================================================== */

#sidebar {
  position: fixed;
  top: 0;
  left: -304px;
  width: 304px;
  height: 100%;
  padding: 0.8rem;
  font-family: system-ui, sans-serif;
  overflow-x: hidden;
  padding-top: 2rem;
  transition: left 0.3s ease;
  z-index: 1000;
  overflow-y: auto;
  box-sizing: border-box;
  color: white;
  background-image: linear-gradient(135deg, #D65A5A, #C27BA0, #7D6B91);
  box-shadow: 10px 0 20px -5px rgba(0, 0, 0, 0.2);
}

#sidebar .sidebar-logo {
  display: block;
  width: 90%;
  height: auto;
  margin: 0 auto 1rem auto;  
  border: 1px solid white;
  border-radius: 8px;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.5);
}

#sidebar.open {
  left: 0;
}

#sidebar > h2 {
  margin: 0 0 1rem 0;
  font-size: 1.4rem;
  text-align: center;
  color: #FFF8E1;
  margin-bottom: 2rem;
  font-weight: 400;
}

#sidebar ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

#sidebar a {
  display: block;
  padding: 0.35rem 0.6rem;
  line-height: 1.35;
  text-decoration: none;
  white-space: normal;
  overflow-wrap: anywhere;
}

#sidebar a,
#sidebar summary {
  color: #ffffff;
  line-height: 0.8;  
}

#sidebar details {
  margin: 0.3rem 0;
}

#sidebar details > summary {
  padding: 0.4rem 0.6rem;
  font-size: 1.3rem;
  font-weight: 600;
  cursor: pointer;
  list-style: none;
}

#sidebar summary::-webkit-details-marker {
  display: none;
}

#sidebar details ul {
  padding-left: 1.0rem;
}

#sidebar a::first-letter,
#sidebar summary::first-letter {
  font-size: 1.4em;
  margin-right: 0.3rem;
}

#sidebar a:hover,
#sidebar summary:hover {
  background: rgba(0,0,0,0.08);
  border-radius: 3px;
}

#sidebar details {
  margin-top: 0.5rem;
  margin-bottom: 0.2rem;
}




/* ==================================================
   5. FOOTER & ALERTS
================================================= */
#pageFooter {
background:#c0d0e0;
padding:1rem;
text-align:center;
}

#pageFooter ul, #pageFooter ul ul, #pageFooter ul ul ul {
list-style:none;
line-height: 1.3;
}

#pageFooter a {
color: navy;
text-decoration:none;
font-size:1.2rem;
}

#pageFooter a:hover {
text-decoration:underline;
}

#pageFooter ul {
list-style:none;
font-size:1.2rem;
color: black;
}


#pageFooter .icon-row {
display: flex;
justify-content: space-between;
align-items: center;
width: 100%;
text-align: center;
}

#pageFooter .icon-block {
display: flex;
flex-direction: column;
align-items: center;
}

#pageFooter .icon {
font-size: 2rem;
text-decoration: none;
cursor: pointer;
}

#pageFooter .icon.red {
color: red;
}

#pageFooter .icon.black {
color: black;
}

#pageFooter .icon-text {
font-size: 1.2rem;
margin-top: 0.3rem;
}

.alert {
    margin: 20px 0;
    padding: 15px;
    border-left: 6px solid;
    border-radius: 6px;
    display: flex;
    gap: 10px;
}
.alert-info { background: #e7f3fe; border-left-color: #2196f3; color: #0b3d91; }
.alert-success { background: #e6f4ea; border-left-color: #4caf50; color: #2e6b2e; }

/* Thèmes dynamiques */
.theme1 { background:#f0f5f5; color:#2e5d7d; }
.theme2 { background:#f5f0f5; color:#7d2e5d; }
.theme3 { background:#f5f5f0; color:#5d7d2e; }
.theme4 { background:#eef5f5; color:#2e7d7d; }
.theme5 { background:#f5f2ee; color:#7d5d2e; }

.no-wrap {
    white-space: nowrap;        /* Empêche tout retour à la ligne automatique */
    overflow-wrap: normal;      /* Ne force pas le découpage de mots */
    word-break: normal;         /* Conserve les mots intacts */
    overflow-x: auto;           /* Permet le scroll horizontal si le texte dépasse */
}

.left {
  text-align: left;
}

.right {
  text-align: right;
}

.centered {
  text-align: center;
}

.colonnes2 {
  column-count: 2;
  column-gap: 40px;
  column-fill: balance;
 /* text-align: justify;*/
  text-align: center;
}

.image-centree {
    display: block;      /* nécessaire pour centrer avec margin auto */
    width: 96vw;         /* 90% de la largeur de l’écran */
    max-width: 96vw;     /* sécurité */
    height: auto;        /* conserve les proportions */
    margin: 0 auto;      /* centrage horizontal */
    box-shadow: none;
filter: none;
border: none;
}

</style>




</head>

<body>


<header class="hero">
<img src="/assets/images/header.webp" alt="Estagel Nouveau Souffle" width="100%" height="auto" fetchpriority="high">

</header>

<div id="burger" onclick="toggleMenu()">☰</div>




<div id="sidebar">
<img src="/assets/images/LogoCouleurENS2.webp" alt="Logo" class="sidebar-logo">
<h2>Estagel ancien Souffle</h2>
<ul>
  <li><a href="/accueil">🏠 <span>Accueil</span></a></li>
  <li><a href="/sommaire">📋 <span>Sommaire</span></a></li>
  <li><a href="/actualites">📄 <span>Actualites</span></a></li>
  <li><a href="/adresses-utiles">⚙️ <span>Adresses utiles</span></a></li>
  <li><a href="/associations">📝 <span>Associations</span></a></li>
  <li><a href="/calendrier-electoral">🖼️ <span>Calendrier electoral</span></a></li>
  <li><a href="/candidat">📜 <span>Candidat</span></a></li>
  <li><a href="/commentaires">📄 <span>Commentaires</span></a></li>
  <li><a href="/contact">📄 <span>Contact</span></a></li>
  <li><a href="/equipe">🖼️ <span>Equipe</span></a></li>
  <li><a href="/liste">📘 <span>Liste</span></a></li>
  <li><a href="/mentions-legales">📝 <span>Mentions legales</span></a></li>
  <li><a href="/participer">📄 <span>Participer</span></a></li>
  <li><a href="/presentation-du-site">📝 <span>Presentation du site</span></a></li>
  <li><a href="/programme">🖼️ <span>Programme</span></a></li>
  <li><a href="/questions-reponses">📖 <span>Questions reponses</span></a></li>
  <li><a href="/synchronisation">🖼️ <span>Synchronisation</span></a></li>
  <li>
<details>
<summary>📁 <span>Documents</span></summary>
<ul>
  <li><a href="/Documents/charte-graphique">📜 <span>Charte graphique</span></a></li>
  <li><a href="/Documents/compta-estagel-2525">📝 <span>Compta estagel 2525</span></a></li>
</ul>
</details>
</li>
  <li>
<details>
<summary>📁 <span>Programme</span></summary>
<ul>
  <li><a href="/Programme/programme">📘 <span>Programme</span></a></li>
  <li><a href="/Programme/programme-axe1">📝 <span>Programme axe1</span></a></li>
  <li><a href="/Programme/programme-axe4">📘 <span>Programme axe4</span></a></li>
  <li><a href="/Programme/programme-axe5">📜 <span>Programme axe5</span></a></li>
</ul>
</details>
</li>
</ul>

</div>

<div id="themeToggle" onclick="toggleTheme()">🌙</div>




<main>
<!-- Contenu principal de la page -->
<h1>🌐 Un site internet modernisé… à la veille des élections ❓</h1>
<p>📍 Adresse du site officiel de la commune :<br >
👉 <a href="https://www.estagel.fr">https://www.estagel.fr</a></p>
<p>🚧 <strong>Depuis plusieurs jours</strong>, le site internet de la mairie était <strong>inaccessible</strong>, officiellement <strong>en travaux</strong>.<br >
📅 Il est <strong>de nouveau en ligne depuis aujourd’hui, le 22 janvier</strong>.</p>
<p>⏳ Pendant des années, la commune d’Estagel a dû se contenter d’un site internet <strong>vieillot</strong>, <strong>ringard</strong> et clairement <strong>has-been</strong> 🕰️, très éloigné des standards actuels du web en matière :</p>
<ul>
<li>d’accessibilité 🚫  </li>
<li>d’ergonomie 📉  </li>
<li>de communication avec les habitants 🗣️❌  </li>
</ul>
<p>Et soudain, <strong>à un mois des élections municipales</strong> 🗳️, miracle numérique ✨ :<br >
➡️ un nouveau site apparaît, enfin conforme aux standards modernes.</p>
<hr >
<h2>❓ Une modernisation tardive qui interroge</h2>
<p>Une question simple se pose alors 🤔 :<br >
<strong>pourquoi cette décision arrive-t-elle si tardivement ?</strong></p>
<p>Pourquoi avoir attendu l’imminence d’un scrutin pour offrir aux habitants un outil de communication digne de ce nom ?<br >
Pourquoi cette modernisation n’a-t-elle pas été engagée plus tôt, dans l’intérêt permanent de la population ?</p>
<p>👉 On peut raisonnablement en déduire que la communication municipale ne devient une priorité<br >
<strong>que lorsque l’intérêt personnel du maire est directement concerné</strong> ⚠️</p>
<hr >
<h2>💰 De l’argent public, pour une opération d’image ?</h2>
<p>Ce nouveau site a été réalisé <strong>en partenariat avec le Réseau des Communes</strong> 🏛️,<br >
et bien entendu, <strong>financé par de l’argent public</strong> 💶.</p>
<p>❗ Il ne s’agit donc pas :</p>
<ul>
<li>d’un geste généreux 🎁  </li>
<li>ni d’une initiative personnelle 🙅‍♂️  </li>
</ul>
<p>mais bien d’une <strong>opération institutionnelle</strong>,<br >
<strong>payée par les habitants eux-mêmes</strong> 👥</p>
<hr >
<h2>✅ Ce qui est positif (et qu’il faut reconnaître)</h2>
<p>Soyons clairs ✔️ :  </p>
<ul>
<li>la modernisation du site était <strong>nécessaire</strong> 🔧  </li>
<li>le nouveau site est <strong>plus lisible</strong> 👀  </li>
<li>il est <strong>plus accessible</strong> ♿  </li>
<li>et globalement <strong>conforme aux standards actuels</strong> 🌍  </li>
</ul>
<p>➡️ <strong>C’est un progrès</strong>, et personne ne le conteste.</p>
<hr >
<h2>⚠️ Mais le vrai problème n’est pas technique</h2>
<p>La question n’est pas de savoir <strong>s’il fallait moderniser le site</strong> —<br >
➡️ <strong>il le fallait depuis longtemps</strong> ⌛</p>
<p>La vraie question est :<br >
<strong>pourquoi cela n’a été fait qu’au moment politiquement opportun</strong> 🎭 ?</p>
<hr >
<h2>🗳️ Une autre vision de la démocratie locale</h2>
<p>La démocratie locale ne devrait pas fonctionner par <strong>à-coups électoraux</strong> 🔁,<br >
mais dans une logique de :</p>
<ul>
<li><strong>service public continu</strong> 🔄  </li>
<li><strong>transparence</strong> 🔍  </li>
<li><strong>respect des citoyens</strong> 🤝  </li>
</ul>
<p>📣 Les habitants méritent mieux qu’une modernisation de façade,<br >
déclenchée à la dernière minute ⏰.</p>
</main>






<!-- Footer avec copyright et icône changement de thème -->

<footer id="pageFooter" style="">
    <div class="icon-row">
        <!-- Flèche retour -->
        <div class="icon-block">
<a href="#" id="backButton" class="icon red">⬅️</a>  
            <div class="icon-text">Retour</div>
        </div>
        <!-- Page d'accueil -->
        <div class="icon-block">
            <a href="/" class="icon black">🏠</a>
            <div class="icon-text">Accueil</div>
        </div>
        <!-- Changement de thème -->
        <div class="icon-block">
            <span id="themeIcon" class="icon">🎨</span>
            <div class="icon-text">Thèmes</div>
        </div>
    </div>

<!-- Ligne 2 et 3 : espacement -->
<div style="height:2rem;"></div>

<div class="colonnes2">
  <p>
    <ul>
  <li><a href="/accueil">🏠 <span>Accueil</span></a></li>
  <li><a href="/sommaire">📋 <span>Sommaire</span></a></li>
  <li><a href="/actualites">📄 <span>Actualites</span></a></li>
  <li><a href="/adresses-utiles">⚙️ <span>Adresses utiles</span></a></li>
  <li><a href="/associations">📝 <span>Associations</span></a></li>
  <li><a href="/calendrier-electoral">🖼️ <span>Calendrier electoral</span></a></li>
  <li><a href="/candidat">📜 <span>Candidat</span></a></li>
  <li><a href="/commentaires">📄 <span>Commentaires</span></a></li>
  <li><a href="/contact">📄 <span>Contact</span></a></li>
  <li><a href="/equipe">🖼️ <span>Equipe</span></a></li>
  <li><a href="/liste">📘 <span>Liste</span></a></li>
  <li><a href="/mentions-legales">📝 <span>Mentions legales</span></a></li>
  <li><a href="/participer">📄 <span>Participer</span></a></li>
  <li><a href="/presentation-du-site">📝 <span>Presentation du site</span></a></li>
  <li><a href="/programme">🖼️ <span>Programme</span></a></li>
  <li><a href="/questions-reponses">📖 <span>Questions reponses</span></a></li>
  <li><a href="/synchronisation">🖼️ <span>Synchronisation</span></a></li>
  <li>
<details>
<summary>📁 <span>Documents</span></summary>
<ul>
  <li><a href="/Documents/charte-graphique">📜 <span>Charte graphique</span></a></li>
  <li><a href="/Documents/compta-estagel-2525">📝 <span>Compta estagel 2525</span></a></li>
</ul>
</details>
</li>
  <li>
<details>
<summary>📁 <span>Programme</span></summary>
<ul>
  <li><a href="/Programme/programme">📘 <span>Programme</span></a></li>
  <li><a href="/Programme/programme-axe1">📝 <span>Programme axe1</span></a></li>
  <li><a href="/Programme/programme-axe4">📘 <span>Programme axe4</span></a></li>
  <li><a href="/Programme/programme-axe5">📜 <span>Programme axe5</span></a></li>
</ul>
</details>
</li>
</ul>

  </p>
</div>

<div style="height:2rem;"></div>

<a href="https://www.facebook.com/sharer/sharer.php?u=https://estagelnouveausouffle.fr/_Bilan-de-quinze-annees/site-web-mairie?update=1"
   target="_blank" rel="noopener noreferrer"
   style="display:inline-flex;
          align-items:center;
          gap:8px;
          padding:10px 15px;
          
          color:black;
          text-decoration:none;
          border-radius:5px;
          font-weight:bold;">
   <img src="https://upload.wikimedia.org/wikipedia/commons/0/05/Facebook_Logo_%282019%29.png" 
        alt="Facebook" width="36" height="36">
   Partager sur Facebook
</a>

<div style="height:1rem;"></div>

<img src="../assets/images/5logos.webp" alt="5logos" class="image-centree">



<!--
-->
	
<div style="height:1rem;"></div>

    <!-- Ligne 4 : copyright centré -->
    <div style="text-align:center; font-size:0.9rem; color:#555;">
        &copy; 2026 Estagel Nouveau Souffle
    </div>
  <div style="height:2rem;"></div>
</footer>






<script>

// ===== Éléments =====
var backBtn = document.getElementById('backButton');
var themeIcon = document.getElementById('themeIcon');
var themes = ['theme1', 'theme2', 'theme3', 'theme4', 'theme5'];

// ===== Gestion des thèmes =====
function loadTheme() {
    var currentTheme = parseInt(localStorage.getItem('themeIndex')) || 0;
    document.body.classList.add(themes[currentTheme]);
}

function changeTheme() {
    var currentTheme = parseInt(localStorage.getItem('themeIndex')) || 0;
    document.body.classList.remove(...themes); // Syntaxe moderne pour retirer toutes les classes
    currentTheme = (currentTheme + 1) % themes.length;
    document.body.classList.add(themes[currentTheme]);
    localStorage.setItem('themeIndex', currentTheme);
}

function setupTheme() {
    if (themeIcon) {
        themeIcon.addEventListener('click', function(e) {
            e.stopPropagation();
            changeTheme();
        });
    }
}

// ===== Bouton retour =====
function setupBackButton() {
    if (backBtn) {
        backBtn.addEventListener('click', function(e) {
            e.preventDefault();
            // Ferme le menu si ouvert avant de reculer
            var sidebar = document.getElementById('sidebar');
            if (sidebar && sidebar.classList.contains('open')) {
                sidebar.classList.remove('open');
            }
            // Retour page précédente avec un léger délai pour l'animation
            setTimeout(function() {
                if (window.history.length > 1) {
                    window.history.back();
                } else {
                    window.location.href = '/'; // Repli vers l'accueil si pas d'historique
                }
            }, 100);
        });
    }
}

// ===== Menu hamburger =====
function toggleMenu() {
    var sidebar = document.getElementById('sidebar');
    if (sidebar) {
        sidebar.classList.toggle('open');
    }
}

// ===== Fermeture du panneau latéral si clic en dehors =====
document.addEventListener('click', function(e) {
    var sidebar = document.getElementById('sidebar');
    var burger = document.getElementById('burger');
    if (sidebar && sidebar.classList.contains('open')) {
        if (e.target !== burger && !sidebar.contains(e.target)) {
            sidebar.classList.remove('open');
        }
    }
});



// ===== Disqus =====
   var disqus_config = function () {
    this.page.url = window.location.href;  // Replace PAGE_URL with your page's canonical URL variable
    this.page.identifier = "page-_Bilan-de-quinze-annees/site-web-mairie";; // Replace PAGE_IDENTIFIER with your page's unique identifier variable
    };
    
    (function() { // DON'T EDIT BELOW THIS LINE
    var d = document, s = d.createElement('script');
    s.src = 'https://estagel-nouveau-souffle.disqus.com/embed.js';
    s.setAttribute('data-timestamp', +new Date());
    (d.head || d.body).appendChild(s);
    })();








// ===== Initialisation sécurisée =====
function init() {
    loadTheme();
    setupTheme();
    setupBackButton();
    // Les fonctions inexistantes ont été retirées pour éviter les erreurs
}

// Lancement au chargement du DOM
document.addEventListener('DOMContentLoaded', init);

</script>

<noscript>Veuillez activer JavaScript pour voir les commentaires.</noscript>




</body>
</html>

Variables globales :
$homeIcon = 🏠
$folderIcon = 📁
$site_name = Estagel  ancien Souffle ....
$default_page = accueil
$pages_dir = pages/
$siteName = Estagel ancien Souffle
$subSite = Élections municipales 2026
$title = Titre de la page par défaut
$SITE_URL = https://estagelnouveausouffle.fr
$DISQUS_SHORTNAME = estagel-nouveau-souffle
$copyright = 2026 Estagel Nouveau Souffle
$mentions-legales = Mentions légales
$date = 2020-12-25
$license = default
$hero = 
$hero_image = hero.jpg
$headerImage = /assets/images/header.webp
$comments = 
$disqus = 
$view_source = 1
$view_metadata = 1
$edition = 

Sections / tableaux :
$pages = Array
(
    [accueil] => Accueil
    [actualites] => Actualités
    [candidat] => Le candidat
    [equipe] => L’équipe
    [programme] => Programme
    [participer] => Participer
    [contact] => Contact
)

$metadata = Array
(
    [lang] => fr
    [title] => Estagel Nouveau Souffle - Élections municipales 2026
    [description] => Estagel Nouveau Souffle : Programme complet pour les élections municipales 2026. Instaurer une vraie démocratie locale, soutenir l’agriculture et la planification écologique, améliorer l’aménagement urbain et le cadre de vie, renforcer la solidarité et l’action sociale, défendre les services publics et la paix, encourager la culture, le sport et la vie associative, sécuriser le village et dynamiser les commerces.
    [keywords] => Estagel, élections municipales 2026, démocratie locale, référendum d’initiative citoyenne, transparence, communication publique, bulletin municipal, site internet, agriculture bio, AMAP, agriculture paysanne, récupération eaux usées, transports publics, gare multimodale, gestion écologique de l’eau, urbanisme, logements vacants, cadre de vie, rénovation mairie, promenade, végétation, jardins, toilettes publiques, solidarité, logement social, CCAS, services publics, paix, jumelage, culture, associations, sport, jeunesse, sécurité, prévention, citoyenneté, commerces, centre du village, taxe foncière, marché local, chèque solidarité
    [author] => Michel Garnier
    [viewport] => width=device-width, initial-scale=1.0
    [robots] => index, follow
)

$opengraph = Array
(
    [og:title] => Estagel Nouveau Souffle - Élections municipales 2026
    [og:description] => Programme municipal complet pour Estagel : démocratie, écologie, cadre de vie, solidarité, culture, sécurité et commerce local.
    [og:image] => https://estagelnouveausouffle.fr/assets/images/fbShare.jpg
    [og:url] => https://estagelnouveausouffle.fr
    [og:image:secure_url] => https://estagelnouveausouffle.fr/assets/images/fbShare.jpg
    [og:type] => website
    [og:image:width] => 1167
    [og:image:height] => 835
)

$twitter = Array
(
    [twitter:card] => summary_large_image
    [twitter:title] => Estagel Nouveau Souffle - Élections municipales 2026
    [twitter:description] => Programme municipal complet pour Estagel : démocratie, écologie, cadre de vie, solidarité, culture, sécurité et commerce local.
    [twitter:image] => https://estagelnouveausouffle.fr/assets/images/fbShare.jpg
)



Array
(
)