Estagel Nouveau Souffle
🌙

👥 Liste "Estagel Nouveau Souffle"

Candidat 1

Hugo Roquere

Enseignant vacataire en sociologie

Candidat 2

Dominique Poirot

Cadre territorial retraité

Candidat 3

Hélène Ripoll

Retraitée

Candidat 4

Antoine Bernabe

Retraité EDF-GDF

Candidat 5

Jean-Louis Andrillo

Viticulteur retraité

Candidat 6

Jean-Louis Concio

Viticulteur retraité

Candidat 7

Antonia Sigalat

Agent territorial au Département

Candidat 8

Coryne Couvidat-Jacob

Apicultrice, Ancienne agricultrice

Candidat 9

Anne-Laure Affani

Infirmière

Candidat 10

Karim El Hadj

Commerçant

Candidat 11

Martine Attiel

Retraitée agricole

Candidat 12

Arielle Sarda

Infirmière retraitée

Candidat 13

Océane Gaune

Employée Commercial

Candidat 14

Robert Bile

Retraité du tourisme

Candidat 15

Ange Hernandez

Musicien

Candidat 16

Dominique Lesueur Gaune

Sans activité professionnelle

Candidat 17

Sylvie Vila

Sans activité professionnelle

Candidat 18

Mathieu Papo

Employé des services aux particuliers

Candidat 19

Michel Garnier

Ingénieur informatique retraité

Candidat 20

Hélène Pons-Gralet

Retraité de l’éducation nationale

Candidat 20

Kevin Barthomeuf

Employé commercial


Une équipe citoyenne, populaire et engagée

La force d’Estagel Nouveau Souffle réside dans son collectif.
Femmes et hommes, actifs, retraités, jeunes, issus de quartiers et d’horizons différents, tous partagent une même volonté : agir pour le bien commun.

<!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/liste">


<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 -->
<style>

#liste-electorale{font-family:sans-serif;color:#333;width:98%;max-width:1400px;margin:auto;padding:10px;}
#liste-electorale h1{text-align:center;font-size:2.2em;margin-bottom:15px;}
.trombinoscope{column-count:5;column-gap:12px;}
@media(max-width:1100px){.trombinoscope{column-count:4;}}
@media(max-width:850px){.trombinoscope{column-count:3;}}
@media(max-width:600px){.trombinoscope{column-count:2;}}
.candidat-card{display:inline-block;width:100%;margin-bottom:12px;background:#fff;border:2px solid #2c3e50;border-radius:8px;padding:8px;break-inside:avoid;box-sizing:border-box;cursor:pointer;}
.candidat-card img{width:100%;height:auto;border-radius:4px;display:block;}
.candidat-bio h3{margin:4px 0;font-size:0.95em;}
.candidat-bio p{margin:0;font-size:0.8em;line-height:1.2;}
#pdf-toggle{position:fixed;bottom:20px;right:20px;font-size:40px;cursor:pointer;z-index:1100;opacity:0.5;user-select:none;}
.hide-for-print{display:none!important;}
#overlay{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.9);z-index:1000;}
.candidat-card.zoom{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:1001;width:90%;max-width:400px;background:white!important;cursor:zoom-out;border:3px solid #333!important;padding:15px!important;border-radius:12px!important;display:block!important;}

@media print {
@page{size:A4 portrait;margin:0.6cm!important;}
html,body,main,#liste-electorale{background:white!important;margin:0!important;padding:0!important;width:100%!important;box-shadow:none!important;filter:none!important;}
*{box-shadow:none!important;text-shadow:none!important;}
#liste-electorale h1{font-size:1.4em!important;margin:5px 0 12px 0!important;text-align:center!important;}
.trombinoscope{display:block!important;column-count:3!important;column-gap:10px!important;width:100%!important;}
.candidat-card{display:flex!important;flex-direction:row!important;width:100%!important;margin-bottom:8px!important;height:122px!important;border:1px solid #2c3e50!important;padding:0!important;page-break-inside:avoid!important;box-sizing:border-box!important;overflow:hidden!important;background:white!important;}
.candidat-card img{width:110px!important;height:122px!important;object-fit:cover!important;margin:0 12px 0 0!important;padding:0!important;border-radius:0!important;flex-shrink:0!important;display:block!important;border-right:1px solid #2c3e50!important;}
.candidat-bio{text-align:left!important;padding:8px 5px!important;flex:1!important;display:flex!important;flex-direction:column!important;justify-content:center!important;}
.candidat-bio h3{font-size:0.95em!important;margin:0 0 4px 0!important;color:#2c3e50!important;}
.candidat-bio p{font-size:0.75em!important;line-height:1.2!important;margin:0!important;}
#overlay,#pdf-toggle,.hero,header,footer,aside,nav{display:none!important;}
}
</style>
<div id="liste-electorale">
<h2>👥  Liste "Estagel Nouveau Souffle"</h2>
<div id="overlay"></div>
<div class="trombinoscope" id="main-scope">
<div class="candidat-card">
<p><img src="/assets/images/liste/P1488033~2.webp" alt="Candidat 1" ></p>
<div class="candidat-bio">
<h3>Hugo Roquere</h3>
<p>Enseignant vacataire en sociologie</p>
</div>
</div>
<div class="candidat-card">
<p><img src="/assets/images/liste/IMGP5894~2.webp" alt="Candidat 2" ></p>
<div class="candidat-bio">
<h3>Dominique Poirot</h3>
<p>Cadre territorial retraité</p>
</div>
</div>
<div class="candidat-card">
<p><img src="/assets/images/liste/IMGP5895~2.webp" alt="Candidat 3" ></p>
<div class="candidat-bio">
<h3>Hélène Ripoll</h3>
<p>Retraitée</p>
</div>
</div>
<div class="candidat-card">
<p><img src="/assets/images/liste/IMGP5908~2.webp" alt="Candidat 4" ></p>
<div class="candidat-bio">
<h3>Antoine Bernabe</h3>
<p>Retraité EDF-GDF</p>
</div>
</div>
<div class="candidat-card">
<p><img src="/assets/images/liste/IMGP5909~2.webp" alt="Candidat 5" ></p>
<div class="candidat-bio">
<h3>Jean-Louis Andrillo</h3>
<p>Viticulteur retraité</p>
</div>
</div>
<div class="candidat-card">
<p><img src="/assets/images/liste/IMGP5911~2.webp" alt="Candidat 6" ></p>
<div class="candidat-bio">
<h3>Jean-Louis Concio</h3>
<p>Viticulteur retraité</p>
</div>
</div>
<div class="candidat-card">
<p><img src="/assets/images/liste/IMGP5922~2.webp" alt="Candidat 7" ></p>
<div class="candidat-bio">
<h3>Antonia Sigalat</h3>
<p>Agent territorial au Département</p>
</div>
</div>
<div class="candidat-card">
<p><img src="/assets/images/liste/IMGP5924~2.webp" alt="Candidat 8" ></p>
<div class="candidat-bio">
<h3>Coryne Couvidat-Jacob</h3>
<p>Apicultrice, Ancienne agricultrice</p>
</div>
</div>
<div class="candidat-card">
<p><img src="/assets/images/liste/IMGP5932~2.webp" alt="Candidat 9" ></p>
<div class="candidat-bio">
<h3>Anne-Laure Affani</h3>
<p>Infirmière</p>
</div>
</div>
<div class="candidat-card">
<p><img src="/assets/images/liste/IMGP5941~2.webp" alt="Candidat 10" ></p>
<div class="candidat-bio">
<h3>Karim El Hadj</h3>
<p>Commerçant</p>
</div>
</div>
<div class="candidat-card">
<p><img src="/assets/images/liste/IMGP5947~2.webp" alt="Candidat 11" ></p>
<div class="candidat-bio">
<h3>Martine Attiel</h3>
<p>Retraitée agricole</p>
</div>
</div>
<div class="candidat-card">
<p><img src="/assets/images/liste/IMGP5948~2.webp" alt="Candidat 12" ></p>
<div class="candidat-bio">
<h3>Arielle Sarda</h3>
<p>Infirmière retraitée</p>
</div>
</div>
<div class="candidat-card">
<p><img src="/assets/images/liste/IMGP5954~2.webp" alt="Candidat 13" ></p>
<div class="candidat-bio">
<h3>Océane Gaune</h3>
<p>Employée Commercial</p>
</div>
</div>
<div class="candidat-card">
<p><img src="/assets/images/liste/IMGP5971~2.webp" alt="Candidat 14" ></p>
<div class="candidat-bio">
<h3>Robert Bile</h3>
<p>Retraité du tourisme</p>
</div>
</div>
<div class="candidat-card">
<p><img src="/assets/images/liste/IMGP5972~2.webp" alt="Candidat 15" ></p>
<div class="candidat-bio">
<h3>Ange Hernandez</h3>
<p>Musicien</p>
</div>
</div>
<div class="candidat-card">
<p><img src="/assets/images/liste/IMGP5985~2.webp" alt="Candidat 16" ></p>
<div class="candidat-bio">
<h3>Dominique Lesueur Gaune</h3>
<p>Sans activité professionnelle</p>
</div>
</div>
<div class="candidat-card">
<p><img src="/assets/images/liste/IMGP5986~2.webp" alt="Candidat 17" ></p>
<div class="candidat-bio">
<h3>Sylvie Vila</h3>
<p>Sans activité professionnelle</p>
</div>
</div>
<div class="candidat-card">
<p><img src="/assets/images/liste/IMGP5992~2.webp" alt="Candidat 18" ></p>
<div class="candidat-bio">
<h3>Mathieu Papo</h3>
<p>Employé des services aux particuliers</p>
</div>
</div>
<div class="candidat-card">
<p><img src="/assets/images/liste/1000174803.webp" alt="Candidat 19" ></p>
<div class="candidat-bio">
<h3>Michel Garnier</h3>
<p>Ingénieur informatique retraité</p>
</div>
</div>
<div class="candidat-card">
<p><img src="/assets/images/liste/1000175039.webp" alt="Candidat 20" ></p>
<div class="candidat-bio">
<h3>Hélène Pons-Gralet</h3>
<p>Retraité de l’éducation nationale</p>
</div>
</div>
<div class="candidat-card">
<p><img src="/assets/images/liste/1000175041.webp" alt="Candidat 20" ></p>
<div class="candidat-bio">
<h3>Kevin Barthomeuf</h3>
<p>Employé commercial</p>
</div>
</div>
</div>
<p><span style="color:#8b0000;"><br >
Une équipe citoyenne, populaire et engagée<br >
</span></p>
<p>La force d’<strong>Estagel Nouveau Souffle</strong> réside dans son collectif.<br >
Femmes et hommes, actifs, retraités, jeunes, issus de quartiers et d’horizons différents, tous partagent une même volonté : agir pour le bien commun.</p>
<div id="pdf-toggle">⚪</div>
</div>
<script>
document.addEventListener("DOMContentLoaded", function() {
const cards = document.querySelectorAll('.candidat-card');
const overlay = document.getElementById('overlay');
cards.forEach(card => {
card.onclick = function() {
const isZoomed = this.classList.contains('zoom');
cards.forEach(c => c.classList.remove('zoom'));
if (!isZoomed) {
this.classList.add('zoom');
overlay.style.display = 'block';
} else {
overlay.style.display = 'none';
}
};
});
overlay.onclick = function() {
this.style.display = 'none';
cards.forEach(c => c.classList.remove('zoom'));
};
document.getElementById('pdf-toggle').onclick = function() {
const elms = ['.hero', '#burger', '#pageFooter', '#pdf-toggle'];
elms.forEach(s => { const t = document.querySelector(s); if(t) t.classList.toggle('hide-for-print'); });
};
});
</script>
</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/liste?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-liste";; // 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
(
)