PageSourceSearch

https://www.eppeville.fr/articles/eppeville/

html eppeville.fr collected 2026-10-02 21:29:56 UTC 172,458 bytes, 3,496 lines download raw bytes

1<!DOCTYPE html>
2<html lang="fr-FR">
3<head>
4    <title>Eppeville | Mairie d&#039;Eppeville</title>
5    <meta charset="UTF-8" />
6      <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css">
7
8    <meta name="viewport" content="width=device-width, initial-scale=1">
9<title>Eppeville &#8211; Mairie d&rsquo;Eppeville</title>
10<meta name='robots' content='max-image-preview:large' />
11<link rel="manifest" href="https://www.eppeville.fr/koba-manifest.json">
12<meta name="google-site-verification" content="u9YSkWQqZPQzLIfIeWuXy6yoyEO8y50wRFWn_7OMnqQ" />
13<meta name="description" content="Le site officiel de la Commune d'Eppeville dans le Département de la Somme (80400). Riche de tradition sucrière, Eppeville est une commune dynamique de plus de 2000 habitants. A la limite des Départements de l'Aisne et de l'Oise, située près de Ham entre Noyon, Roye et Saint Quentin. Lieux de détente et de quiétude, elle dispose d'un étang communal , de structures sportives (gymnase, stade, cours de tennis, salle des fêtes). Les plus courageux pourront marcher jusqu'au site ancestral de la pierre qui pousse.">
14    <!-- Favicon standard -->
15    <link rel="icon" type="image/png" sizes="32x32" href="https://www.eppeville.fr/wp-content/uploads/sites/24/favicons/favicon-32x32.png">
16    <link rel="icon" type="image/png" sizes="16x16" href="https://www.eppeville.fr/wp-content/uploads/sites/24/favicons/favicon-16x16.png">
17    
18    <!-- Apple Touch Icon (iOS) -->
19    <link rel="apple-touch-icon" sizes="180x180" href="https://www.eppeville.fr/wp-content/uploads/sites/24/favicons/apple-touch-icon.png">
20    
21    <!-- Android Chrome -->
22    <link rel="icon" type="image/png" sizes="192x192" href="https://www.eppeville.fr/wp-content/uploads/sites/24/favicons/android-chrome-192x192.png">
23    <link rel="icon" type="image/png" sizes="512x512" href="https://www.eppeville.fr/wp-content/uploads/sites/24/favicons/android-chrome-512x512.png">
24    
25    <!-- Safari Pinned Tab (SVG ou PNG) -->
26    <link rel="mask-icon" href="https://www.eppeville.fr/wp-content/uploads/sites/24/favicons/favicon-32x32.png" color="#ffbb00">
27    
28    <!-- Microsoft -->
29    <meta name="msapplication-TileColor" content="#ffbb00">
30    <meta name="msapplication-TileImage" content="https://www.eppeville.fr/wp-content/uploads/sites/24/favicons/mstile-144x144.png">
31    
32    <!-- Theme color pour navigateurs mobiles -->
33    <meta name="theme-color" content="#ffbb00">
34    
35    <link rel='dns-prefetch' href='//cdnjs.cloudflare.com' />
36<link rel='dns-prefetch' href='//unpkg.com' />
37<link rel='dns-prefetch' href='//cdn.jsdelivr.net' />
38<link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="https://www.eppeville.fr/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fwww.eppeville.fr%2Farticles%2Feppeville%2F" />
39<link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://www.eppeville.fr/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fwww.eppeville.fr%2Farticles%2Feppeville%2F&#038;format=xml" />
40<style id="koba-colors">
41:root {
42    --koba-primary: #ffbb00;
43    --koba-secondary: #066ff9;
44    --koba-primary-rgb: 255, 187, 0;
45    --koba-secondary-rgb: 6, 111, 249;
46}
47</style><style id="wp-img-auto-sizes-contain-inline-css">
48img:is([sizes=auto i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px}
49/*# sourceURL=wp-img-auto-sizes-contain-inline-css */
50</style>
51<link rel='stylesheet' id='acy_front_messages_css-css' href='https://www.eppeville.fr/wp-content/plugins/acymailing/media/css/front/messages.min.css?v=1790752554&#038;ver=11.1.0' media='all' />
52<style id="wp-emoji-styles-inline-css">
53
54	img.wp-smiley, img.emoji {
55		display: inline !important;
56		border: none !important;
57		box-shadow: none !important;
58		height: 1em !important;
59		width: 1em !important;
60		margin: 0 0.07em !important;
61		vertical-align: -0.1em !important;
62		background: none !important;
63		padding: 0 !important;
64	}
65/*# sourceURL=wp-emoji-styles-inline-css */
66</style>
67<style id="wp-block-library-inline-css">
68:root{--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223;--wp-bound-block-color:var(--wp-block-synced-color);--wp-editor-canvas-background:#ddd;--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,160.5;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}
68.wp-element-button{cursor:pointer}:root .has-very-light-gray-background-color{background-color:#eee}:root .has-very-dark-gray-background-color{background-color:#313131}:root .has-very-light-gray-color{color:#eee}:root .has-very-dark-gray-color{color:#313131}:root .has-vivid-green-cyan-to-vivid-cyan-blue-gradient-background{background:linear-gradient(135deg,#00d084,#0693e3)}:root .has-purple-crush-gradient-background{background:linear-gradient(135deg,#34e2e4,#4721fb 50%,#ab1dfe)}:root .has-hazy-dawn-gradient-background{background:linear-gradient(135deg,#faaca8,#dad0ec)}:root .has-subdued-olive-gradient-background{background:linear-gradient(135deg,#fafae1,#67a671)}:root .has-atomic-cream-gradient-background{background:linear-gradient(135deg,#fdd79a,#004a59)}:root .has-nightshade-gradient-background{background:linear-gradient(135deg,#330968,#31cdcf)}:root .has-midnight-gradient-background{background:linear-gradient(135deg,#020381,#2874fc)}:root{--wp--preset--font-size--normal:16px;--wp--preset--font-size--huge:42px}.has-regular-font-size{font-size:1em}.has-larger-font-size{font-size:2.625em}.has-normal-font-size{font-size:var(--wp--preset--font-size--normal)}.has-huge-font-size{font-size:var(--wp--preset--font-size--huge)}:root .has-text-align-center{text-align:center}:root .has-text-align-left{text-align:left}:root .has-text-align-right{text-align:right}.has-fit-text{white-space:nowrap!important}#end-resizable-editor-section{display:none}.aligncenter{clear:both}.items-justified-left{justify-content:flex-start}.items-justified-center{justify-content:center}.items-justified-right{justify-content:flex-end}.items-justified-space-between{justify-content:space-between}.screen-reader-text{word-wrap:normal!important;border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-break:normal!important}.screen-reader-text:focus{background-color:#ddd;clip-path:none;color:#444;display:block;font-size:1em;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}html :where(.has-border-color){border-style:solid}html :where([style^=border-color],[style*=";border-color"],[style*="; border-color"]){border-style:solid}html :where([style^=border-top-color],[style*=";border-top-color"],[style*="; border-top-color"]){border-top-style:solid}html :where([style^=border-right-color],[style*=";border-right-color"],[style*="; border-right-color"]){border-right-style:solid}html :where([style^=border-bottom-color],[style*=";border-bottom-color"],[style*="; border-bottom-color"]){border-bottom-style:solid}html :where([style^=border-left-color],[style*=";border-left-color"],[style*="; border-left-color"]){border-left-style:solid}html :where([style^=border-width],[style*=";border-width"],[style*="; border-width"]){border-style:solid}html :where([style^=border-top-width],[style*=";border-top-width"],[style*="; border-top-width"]){border-top-style:solid}html :where([style^=border-right-width],[style*=";border-right-width"],[style*="; border-right-width"]){border-right-style:solid}html :where([style^=border-bottom-width],[style*=";border-bottom-width"],[style*="; border-bottom-width"]){border-bottom-style:solid}html :where([style^=border-left-width],[style*=";border-left-width"],[style*="; border-left-width"]){border-left-style:solid}html :where(img[class*=wp-image-]){height:auto;max-width:100%}:where(figure){margin:0 0 1em}html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:var(--wp-admin--admin-bar--height,0px)}@media screen and (max-width:600px){html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:0px}}
69
70/*# sourceURL=/wp-includes/css/dist/block-library/common.min.css */
71</style>
72<style id="wp-block-paragraph-inline-css">
73.is-small-text{font-size:.875em}.is-regular-text{font-size:1em}.is-large-text{font-size:2.25em}.is-larger-text{font-size:3em}.has-drop-cap:not(:focus):first-letter{float:left;font-size:8.4em;font-style:normal;font-weight:100;line-height:.68;margin:.05em .1em 0 0;text-transform:uppercase}body.rtl .has-drop-cap:not(:focus):first-letter{float:none;margin-left:.1em}p.has-drop-cap.has-background{overflow:hidden}:root :where(p.has-background){padding:1.25em 2.375em}:where(p.has-text-color:not(.has-link-color)) a{color:inherit}p.has-text-align-left[style*="writing-mode:vertical-lr"],p.has-text-align-right[style*="writing-mode:vertical-rl"]{rotate:180deg}
74/*# sourceURL=https://www.eppeville.fr/wp-includes/blocks/paragraph/style.min.css */
75</style>
76<style id="wp-block-library-inline-css-extra">
77.meteo-widget { background: linear-gradient(135deg, #f4a900 0%, #e67e22 100%); color: #fff; padding: 25px; border-radius: 15px; text-align: center; max-width: 350px; margin: 20px auto; box-shadow: 0 10px 30px rgba(0,0,0,0.2); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; }
78    .meteo-widget.meteo-error { background: #e74c3c; }
79    .meteo-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 15px; padding-bottom: 10px; border-bottom: 1px solid rgba(255,255,255,0.3); }
80    .meteo-header h3 { margin: 0; font-size: 1.3em; }
81    .meteo-main { display: flex; align-items: center; justify-content: center; gap: 10px; }
82    .meteo-icon { width: 80px; height: 80px; }
83    .meteo-temp { font-size: 3em; font-weight: bold; }
84    .meteo-description { font-size: 1.1em; margin: 10px 0; text-transform: capitalize; }
85    .meteo-minmax { display: flex; justify-content: center; gap: 30px; margin: 15px 0; }
86    .meteo-min { background: #20b7d9; padding: 8px 15px; border-radius: 20px; font-weight: bold; }
87    .meteo-max { background: #c0392b; padding: 8px 15px; border-radius: 20px; font-weight: bold; }
88    .meteo-humidity { margin-top: 10px; font-size: 0.95em; opacity: 0.9; }
89.koba-opening-status{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:10px 16px;border-radius:4px;font-size:14px;line-height:1}.koba-opening-status.koba-status-open{background-color:#d4edda;color:#155724;border:1px solid #c3e6cb}.koba-opening-status.koba-status-closed{background-color:rgba(241, 185, 185, .5);color:#721c24;}.koba-status-icon{font-size:3rem}.koba-status-open .koba-status-icon{color:#28a745}.koba-status-closed .koba-status-icon{color:#721c24}.koba-status-next{display:none;font-weight:400;font-size:13px;opacity:0.8;margin-left:5px}.koba-status-next::before{content:"•";margin-right:8px}.koba-style-alert{width:100%;border-radius:4px;padding:12px 20px}.koba-style-minimal{background:transparent !important;border:none !important;padding:0;font-size:13px}.koba-horaires-table{width:100%;border-collapse:collapse;font-size:14px}.koba-horaires-table th,.koba-horaires-table td{padding:12px 15px;text-align:left;border-bottom:1px solid #e9ecef; font-size: 14.56px; font-weight: 700;}.koba-horaires-table td:nth-child(2){font-weight: 400;}.koba-horaires-table th{background:#f8f9fa;font-weight:600;color:#495057}.koba-horaires-table tr:hover{background-color:#f8f9fa}.koba-horaires-table tr.koba-today{}.koba-horaires-table tr.koba-today:hover{}.koba-jour{font-weight:500}.koba-badge-today{display:none;background:var(--koba-primary,#209bbc);color:#fff;font-size:10px;padding:2px 6px;border-radius:3px;margin-left:8px;font-weight:600;text-transform:uppercase}.koba-info-supplementaire{background:#eafbf8;border:1px solid #0087ca;padding:12px 15px;margin-top:10px;border-radius:4px;font-size:14px;color:#0087ca}.koba-info-supplementaire i{margin-right:8px;color:#0087ca}.koba-fermetures-exceptionnelles{margin-top:20px;padding:15px;background:#eafbf8;border-radius:8px;border-left:4px solid #0087c}.koba-fermetures-exceptionnelles h4{margin:0 0 10px 0;color:#0087ca;font-size:14px}.koba-fermetures-exceptionnelles ul{margin:0;padding:0 0 0 20px}.koba-fermetures-exceptionnelles li{margin-bottom:5px;font-size:13px;color:#0087ca}.koba-social-links{display:flex;justify-content:center;align-items:center;gap:15px;flex-wrap:nowrap}.koba-social-links a{color:#fff;transition:opacity 0.2s}.koba-social-links a:hover{opacity:0.7}.koba-menu-list{list-style:none;margin:0;padding:0}.koba-menu-list li{margin-bottom:8px}.koba-menu-list a{color:inherit;text-decoration:none;transition:opacity 0.2s}.koba-menu-list a:hover{opacity:0.7}
90
91    /* ==========================================
92       VARIABLES CSS
93       ========================================== */
94    :root {
95        --koba-topbar-height: 40px;
96        --koba-navbar-height: 70px;
97        --koba-header-height: calc(var(--koba-topbar-height) + var(--koba-navbar-height));
98        --koba-logo-width: 193px;
99    }
100    
101    /* ==========================================
102       HEADER PRINCIPAL
103       ========================================== */
104    
105    .koba-header {
106        position: fixed;
107        top: 0;
108        left: 0;
109        right: 0;
110        z-index: 10000;
111        width: 100%;
112    }
113    
114    .koba-header-wrapper {
115        position: relative;
116        width: 100%;
117        z-index: 222222;
118    }
119    
120    /* Spacer pour compenser le header fixe */
121    .koba-header-spacer {
122        height: var(--koba-header-height);
123    }
124    
125    /* ==========================================
126       LOGO - COUVRE LES DEUX BARRES
127       ========================================== */
128    
129    .koba-logo {
130        position: absolute;
131        top: 0;
132        left: 0;
133        width: var(--koba-logo-width);
134        height: var(--koba-header-height);
135        background-color: #fff;
136        display: flex;
137        align-items: center;
138        justify-content: center;
139        padding: 10px 20px;
140        box-sizing: border-box;
141        z-index: 110;
142    }
143    
144    .koba-logo img {
145        max-height: 100%;
146        max-width: 100%;
147        width: auto;
148        height: auto;
149        display: block;
150        object-fit: contain;
151    }
152    .koba-icon-search{
153        width: 30px;
154        height: 30px;
155    }
156    
157    .koba-logo-text {
158        color: #333;
159        font-size: 20px;
160        font-weight: 700;
161        text-decoration: none;
162    }
163    
164    /* ==========================================
165       BARRE SUPERIEURE (ORANGE)
166       ========================================== */
167    
168    .koba-topbar {
169        background-color: #066ff9;
170        height: var(--koba-topbar-height);
171        width: 100%;
172    }
173    
174    .koba-topbar-inner {
175        height: 100%;
176        display: flex;
177        justify-content: space-between;
178        align-items: center;
179        padding: 0 20px 0 calc(var(--koba-logo-width) + 20px);
180    }
181    
182    .koba-topbar-menu {
183        flex: 1;
184    }
185    
186    .koba-topbar-list {
187        list-style: none;
188        margin: 0;
189        padding: 0;
190        display: flex;
191        gap: 25px;
192    }
193    
194    .koba-topbar-list li a {
195        color: #fff;
196        text-decoration: none;
197        font-size: 11.2px;
198        font-weight: 600;
199        text-transform: uppercase;
200        letter-spacing: 0.5px;
201        transition: opacity 0.2s;
202    }
203    
204    .koba-topbar-list li a:hover {
205        opacity: 0.8;
206    }
207    
208    .koba-topbar-cta {
209        display: flex;
210        align-items: center;
211        gap: 8px;
212        color: #fff;
213        text-decoration: none;
214        font-size: 12.2px;
215        font-weight: 600;
216        text-transform: uppercase;
217        letter-spacing: 0.5px;
218        transition: opacity 0.2s;
219    }
220    
221    .koba-topbar-cta:hover {
222        opacity: 0.8;
223    }
224    
225    /* Hamburger (mobile) - dans la topbar */
226    .koba-hamburger {
227        display: none;
228        flex-direction: column;
229        justify-content: center;
230        gap: 5px;
231        background: none;
232        border: none;
233        cursor: pointer;
234        padding: 10px;
235        width: 44px;
236        height: 44px;
237        margin-left: -10px;
238    }
239    
240    .koba-hamburger span {
241        display: block;
242        width: 24px;
243        height: 2px;
244        background-color: #fff;
245        transition: all 0.3s;
246    }
247    
248    .koba-hamburger.active span:nth-child(1) {
249        transform: rotate(45deg) translate(5px, 5px);
250    }
251    
252    .koba-hamburger.active span:nth-child(2) {
253        opacity: 0;
254    }
255    
256    .koba-hamburger.active span:nth-child(3) {
257        transform: rotate(-45deg) translate(5px, -5px);
258    }
259    
260    /* ==========================================
261       BARRE PRINCIPALE (BLEU)
262       ========================================== */
263    
264    .koba-navbar {
265        background-color: #ffbb00;
266        height: var(--koba-navbar-height);
267        width: 100%;
268        position: relative;
269    }
270    
271    .koba-navbar-inner {
272        height: 100%;
273        display: flex;
274        align-items: stretch;
275        padding: 0 0 0 var(--koba-logo-width);
276    }
277    
278    /* Navigation principale */
279    .koba-main-nav {
280        flex: 1;
281        display: flex;
282        align-items: stretch;
283    }
284    
285    .koba-nav-list {
286        list-style: none;
287        margin: 0;
288        padding: 0;
289        display: flex;
290        align-items: stretch;
291        width: 100%;
292    }
293    
294    .koba-nav-item {
295        position: static;
296        display: flex;
297        align-items: stretch;
298        flex: 1;
299        margin: 8px;
300        border-bottom: 1px solid transparent;
301    }
302    
303    .koba-nav-item:hover {
304        border-bottom: 1px solid hsla(0,0%,100%,.72);
305    }
306    
307    .koba-nav-link {
308        display: flex;
309        align-items: center;
310        justify-content: center;
311        gap: 6px;
312        color: #fff;
313        text-decoration: none;
314        font-size: 14px;
315        font-weight: 400;
316        text-transform: uppercase;
317        letter-spacing: 0.3px;
318        padding: 0 15px;
319        width: 100%;
320        transition: background-color 0.2s;
321        cursor: pointer;
322    }
323    
324    .koba-nav-arrow {
325        color: #fb0;
326        width: 14px;
327        height: 14px;
328        transform: rotate(270deg);
329        transition: transform 0.2s;
330    }
331    
332    /* ==========================================
333       BOUTON RECHERCHE (CARRE)
334       ========================================== */
335    
336    .koba-search-toggle {
337        flex-shrink: 0;
338        width: var(--koba-navbar-height);
339        height: var(--koba-navbar-height);
340        background: #fff;
341        border: none;
342        color: #fb0;
343        cursor: pointer;
344        display: flex;
345        align-items: center;
346        justify-content: center;
347        transition: opacity 0.2s;
348    }
349    
350    .koba-search-toggle:hover {
351        opacity: 0.9;
352    }
353    
354    .koba-search-toggle.hidden {
355        display: none;
356    }
357    
358    /* ==========================================
359       MEGA MENU
360       ========================================== */
361    
362    .koba-megamenu {
363        position: absolute;
364        top: 100%;
365        left: 0;
366        right: 0;
367        width: 100%;
368        background-color: #ffbb00;
369        opacity: 0;
370        visibility: hidden;
371        transform: translateY(-10px);
372        transition: all 0.3s ease;
373        z-index: 100;
374        pointer-events: none;
375    }
376    
377    .koba-nav-item.active .koba-megamenu {
378        opacity: 1;
379        visibility: visible;
380        transform: translateY(0);
381        pointer-events: auto;
382    }
383    
384    .koba-megamenu-inner {
385        width: 100%;
386        display: flex;
387        position: relative;
388    }
389    
390    .koba-megamenu-col1 {
391        flex-shrink: 0;
392        width: var(--koba-logo-width);
393        background-color: #fff;
394    }
395    
396    .koba-megamenu-col2 {
397        flex: 1;
398        padding: 30px 20px;
399        display: flex;
400        align-items: flex-start;
401        justify-content: flex-end;
402    }
403    
404    .koba-megamenu-title {
405        color: #fff;
406        font-size: 22px;
407        font-weight: 600;
408        line-height: 1.4;
409    }
410    
411    .koba-megamenu-col3 {
412        flex: 1;
413        padding: 25px 30px;
414        min-width: 0;
415        max-height: 731px;
416        overflow: overlay;
417    }
418    
419    .koba-megamenu-list {
420        list-style: none;
421        margin: 0;
422        padding: 0;
423        border-left: 1px solid #fff;
424    }
425    
426    .koba-megamenu-item {
427        position: static;
428    }
429    
430    .koba-megamenu-link {
431        display: flex;
432        align-items: center;
433        gap: 8px;
434        color: #fff;
435        text-decoration: none;
436        padding: 16px 0;
437        font-size: 14px;
438        transition: padding-left 0.2s;
439        cursor: pointer;
440        padding-left: 30px;
441    }
442    
443    .koba
443-megamenu-link:hover {
444        border-bottom: 1px solid #fff;
445    }
446    
447    .koba-megamenu-link svg {
448        margin-left: auto;
449        flex-shrink: 0;
450        transition: transform 0.2s;
451        color: #faaf00;
452    }
453    
454    .koba-megamenu-item.active > .koba-megamenu-link svg {
455        transform: rotate(90deg);
456    }
457    
458    .koba-megamenu-col4 {
459        flex: 1;
460        position: relative;
461    }
462    
463    .koba-megamenu-sublist {
464        position: absolute;
465        top: 0;
466        right: 0;
467        bottom: 0;
468        width: calc((100% - var(--koba-logo-width)) / 3);
469        list-style: none;
470        margin: 0;
471        padding: 25px 20px;
472        opacity: 0;
473        visibility: hidden;
474        transition: all 0.3s ease;
475        z-index: 110;
476    }
477    
478    .koba-megamenu-item.active > .koba-megamenu-sublist {
479        opacity: 1;
480        visibility: visible;
481    }
482    .koba-megamenu-item > .koba-megamenu-sublist li{
483        border-left: 1px solid #fff;
484    }
485    .koba-megamenu-item > .koba-megamenu-sublist li a{
486        padding-left: 30px;
487    }
488    
489    .koba-megamenu-sublist li a {
490        display: block;
491        color: #fff;
492        text-decoration: none;
493        padding: 8px 0;
494        font-size: 13px;
495        opacity: 0.9;
496        transition: opacity 0.2s, padding-left 0.2s;
497        border-bottom: 1px solid rgba(255, 255, 255, 0.1);
498    }
499    
500    .koba-megamenu-sublist li a:hover {
501        border-bottom: 1px solid #fff;
502    }
503
504    
505    /* ==========================================
506       BARRE DE RECHERCHE
507       ========================================== */
508    
509    .koba-search-bar {
510        position: absolute;
511        top: 0;
512        right: 0;
513        bottom: 0;
514        width: 0;
515        background-color: #ffbb00;
516        overflow: hidden;
517        transition: width 0.4s ease;
518        display: flex;
519        align-items: center;
520        z-index: 105;
521    }
522    
523    .koba-search-bar.active {
524        width: calc(100% - var(--koba-logo-width));
525    }
526    
527    .koba-search-bar-inner {
528        display: flex;
529        align-items: center;
530        gap: 15px;
531        padding: 0 20px;
532        width: 100%;
533        min-width: 300px;
534    }
535    
536    .koba-search-form {
537        flex: 1;
538        display: flex;
539        align-items: center;
540        position: relative;
541    }
542    
543    .koba-search-input {
544        width: 100%;
545        background: transparent;
546        border: none;
547        border-bottom: 2px solid rgba(255, 255, 255, 0.5);
548        color: #fff;
549        font-size: 18px;
550        padding: 10px 40px 10px 0;
551        outline: none;
552        transition: border-color 0.2s;
553    }
554    
555    .koba-search-input::placeholder {
556        color: rgba(255, 255, 255, 0.7);
557    }
558    
559    .koba-search-input:focus {
560        border-color: #fff;
561    }
562    
563    .koba-search-submit {
564        position: absolute;
565        right: 0;
566        background: none;
567        border: none;
568        color: #fff;
569        cursor: pointer;
570        padding: 10px;
571        opacity: 0.7;
572        transition: opacity 0.2s;
573    }
574    
575    .koba-search-submit:hover {
576        opacity: 1;
577    }
578    
579    .koba-search-close {
580        flex-shrink: 0;
581        background: none;
582        border: none;
583        color: #066ff9;
584        cursor: pointer;
585        padding: 10px;
586        transition: opacity 0.2s;
587    }
588    
589    .koba-search-close:hover {
590        opacity: 0.8;
591    }
592    
593    /* ==========================================
594       MENU MOBILE
595       ========================================== */
596    
597    .koba-mobile-menu {
598        display: none;
599        position: fixed;
600        top: 0;
601        left: 0;
602        width: 100%;
603        height: 100vh;
604        background-color: #ffbb00;
605        z-index: 999;
606        overflow-y: auto;
607        transform: translateX(-100%);
608        transition: transform 0.3s ease;
609    }
610    
611    .koba-mobile-menu.active {
612        transform: translateX(0);
613    }
614    
615    .koba-mobile-menu-inner {
616        padding: 20px;
617        padding-top: 120px;
618    }
619    
620    .koba-mobile-list {
621        list-style: none;
622        margin: 0;
623        padding: 0;
624    }
625    
626    .koba-mobile-item {
627        border-bottom: 1px solid rgba(255, 255, 255, 0.1);
628    }
629    
630    .koba-mobile-item-inner {
631        display: flex;
632        align-items: center;
633    }
634    
635    .koba-mobile-link {
636        flex: 1;
637        display: block;
638        color: #fff;
639        text-decoration: none;
640        padding: 18px 0;
641        font-size: 16px;
642        font-weight: 500;
643    }
644    
645    .koba-mobile-toggle {
646        background: none;
647        border: none;
648        color: #fff;
649        cursor: pointer;
650        padding: 18px 15px;
651        transition: transform 0.2s;
652    }
653    
654    .koba-mobile-toggle.active {
655        transform: rotate(180deg);
656    }
657    
658    .koba-mobile-submenu {
659        list-style: none;
660        margin: 0;
661        padding: 0 0 0 20px;
662        display: none;
663        background-color: rgba(0, 0, 0, 0.1);
664    }
665    
666    .koba-mobile-submenu.active {
667        display: block;
668    }
669    
670    .koba-mobile-submenu .koba-mobile-link {
671        font-size: 15px;
672        font-weight: 400;
673        padding: 14px 0;
674    }
675    
676    .koba-mobile-secondary {
677        margin-top: 30px;
678        padding-top: 30px;
679        border-top: 1px solid rgba(255, 255, 255, 0.2);
680    }
681    
682    .koba-mobile-secondary-list {
683        list-style: none;
684        margin: 0;
685        padding: 0;
686    }
687    
688    .koba-mobile-secondary-list li a {
689        display: block;
690        color: #fff;
691        text-decoration: none;
692        padding: 12px 0;
693        font-size: 14px;
694        opacity: 0.8;
695    }
696    
697    /* Overlay */
698    .koba-overlay {
699        position: fixed;
700        top: 0;
701        left: 0;
702        width: 100%;
703        height: 100%;
704        background-color: rgba(0, 0, 0, 0.5);
705        z-index: 998;
706        opacity: 0;
707        visibility: hidden;
708        transition: all 0.3s;
709    }
710    
711    .koba-overlay.active {
712        opacity: 1;
713        visibility: visible;
714    }
715    
716    /* ==========================================
717       RESPONSIVE
718       ========================================== */
719    
720    @media (max-width: 1400px) {
721        :root {
722            --koba-logo-width: 140px;
723        }
724        
725        .koba-nav-link {
726            font-size: 12px;
727            padding: 0 5px;
728        }
729        
730        .koba-megamenu-col2,
731        .koba-megamenu-col3 {
732            padding: 20px 15px;
733        }
734    }
735    
736    @media (max-width: 1200px) {
737        :root {
738            --koba-logo-width: 120px;
739        }
740        
741        .koba-nav-link {
742            font-size: 11px;
743            padding: 0 8px;
744        }
745        
746        .koba-megamenu-title {
747            font-size: 16px;
748        }
749        
750        .koba-megamenu-link {
751            font-size: 13px;
752            padding: 8px 8px;
753        }
754    }
755    
756    @media (max-width: 992px) {
757        :root {
758            --koba-topbar-height: 50px;
759            --koba-navbar-height: 0px;
760            --koba-logo-width: 100px;
761        }
762        
763        .koba-topbar-inner {
764            padding: 0 15px;
765            justify-content: flex-start;
766        }
767        
768        .koba-topbar-menu {
769            display: none;
770        }
771        
772        .koba-topbar-cta {
773            display: none;
774        }
775        
776        .koba-hamburger {
777            display: flex;
778        }
779        
780        .koba-logo {
781            position: relative;
782            width: auto;
783            max-width: 120px;
784            height: var(--koba-topbar-height);
785            margin: 0 auto;
786        }
787        
788        .koba-navbar {
789            display: none;
790        }
791        
792        .koba-mobile-menu {
793            display: block;
794        }
795        
796        .koba-megamenu {
797            display: none;
798        }
799    }
800    
801    @media (max-width: 576px) {
802        :root {
803            --koba-topbar-height: 50px;
804            --koba-logo-width: 80px;
805        }
806        
807        .koba-logo img {
808            max-height: 35px;
809        }
810        
811        .koba-search-input {
812            font-size: 16px;
813        }
814    }
815    
816
817    /* ==========================================
818       FOOTER
819       ========================================== */
820    
821    .koba-footer {
822        background-color: #1a1a2e;
823        color: #fff;
824        margin-top: 60px;
825    }
826    
827    .koba-footer-main {
828        padding: 60px 0 40px;
829    }
830    
831    .koba-footer-container {
832        max-width: 1400px;
833        margin: 0 auto;
834        padding: 0 30px;
835        display: grid;
836        grid-template-columns: repeat(4, 1fr);
837        gap: 40px;
838    }
839    
840    /* Colonnes */
841    .koba-footer-col {
842        min-width: 0;
843    }
844    
845    .koba-footer-title {
846        color: #fff;
847        font-size: 18px;
848        font-weight: 600;
849        margin: 0 0 20px 0;
850        padding-bottom: 12px;
851        border-bottom: 2px solid #066ff9;
852        display: inline-block;
853    }
854    
855    /* Colonne About */
856    .koba-footer-logo {
857        display: inline-block;
858        margin-bottom: 20px;
859    }
860    
861    .koba-footer-logo img {
862        max-height: 70px;
863        width: auto;
864    }
865    
866    .koba-footer-logo-text {
867        display: inline-block;
868        color: #fff;
869        font-size: 24px;
870        font-weight: 700;
871        text-decoration: none;
872        margin-bottom: 20px;
873    }
874    
875    .koba-footer-description {
876        color: #b0b0b0;
877        font-size: 14px;
878        line-height: 1.7;
879        margin: 0 0 20px 0;
880    }
881    
882    /* Réseaux sociaux */
883    .koba-footer-social {
884        display: flex;
885        gap: 12px;
886        flex-wrap: wrap;
887    }
888    
889    .koba-footer-social a {
890        display: flex;
891        align-items: center;
892        justify-content: center;
893        width: 40px;
894        height: 40px;
895        background-color: rgba(255, 255, 255, 0.1);
896        border-radius: 50%;
897        color: #fff;
898        transition: all 0.3s ease;
899    }
900    
901    .koba-footer-social a:hover {
902        background-color: #066ff9;
903        transform: translateY(-3px);
904    }
905    
906    /* Liste de contact */
907    .koba-footer-info-list {
908        list-style: none;
909        margin: 0;
910        padding: 0;
911    }
912    
913    .koba-footer-info-item {
914        display: flex;
915        align-items: flex-start;
916        gap: 12px;
917        margin-bottom: 18px;
918        color: #b0b0b0;
919        font-size: 14px;
920        line-height: 1.6;
921    }
922    
923    .koba-footer-info-item svg {
924        flex-shrink: 0;
925        margin-top: 2px;
926        color: #066ff9;
927    }
928    
929    .koba-footer-info-item a {
930        color: #b0b0b0;
931        text-decoration: none;
932        transition: color 0.2s;
933    }
934    
935    .koba-footer-info-item a:hover {
936        color: #066ff9;
937    }
938    
939    /* Statut dans le footer */
940    .koba-footer-status {
941        margin-top: 20px;
942    }
943    
944    .koba-footer-status .koba-opening-status {
945        background: transparent;
946        padding: 0;
947        border: none;
948        font-size: 13px;
949    }
950    
951    .koba-footer-status .koba-status-open {
952        color: #28a745;
953    }
954    
955    .koba-footer-status .koba-status-closed {
956        color: #dc3545;
957    }
958    
959    /* Menu footer */
960    .koba-footer-menu {
961        list-style: none;
962        margin: 0;
963        padding: 0;
964    }
965    
966    .koba-footer-menu li {
967        margin-bottom: 12px;
968    }
969    
970    .koba-footer-menu a {
971        color: #b0b0b0;
972        text-decoration: none;
973        font-size: 14px;
974        transition: all 0.2s;
975        display: inline-block;
976    }
977    
978    .koba-footer-menu a:hover {
979        color: #066ff9;
980        padding-left: 5px;
981    }
982    
983    /* Horaires dans footer */
984    .koba-footer-hours .koba-horaires-table {
985        font-size: 13px;
986        background: transparent;
987    }
988    
989    .koba-footer-hours .koba-horaires-table th,
990    .koba-footer-hours .koba-horaires-table td {
991        padding: 8px 10px;
992        border-color: rgba(255, 255, 255, 0.1);
993        color: #b0b0b0;
994    }
995    
996    .koba-footer-hours .koba-horaires-table th {
997        background: rgba(255, 255, 255, 0.05);
998        color: #fff;
999    }
1000    
1001    .koba-footer-hours .koba-horaires-table tr:hover {
1002        background-color: rgba(255, 255, 255, 0.03);
1003    }
1004    
1005    .koba-footer-hours .koba-horaires-table tr.koba-today {
1006        background-color: rgba(255, 187, 0, 0.2);
1007    }
1008    
1009    .koba-footer-hours .koba-horaires-table .koba-badge-today {
1010        background: #066ff9;
1011        font-size: 9px;
1012    }
1013    
1014    /* Barre de copyright */
1015    .koba-footer-bottom {
1016        background-color: rgba(0, 0, 0, 0.3);
1017        padding: 20px 0;
1018    }
1019    
1020    .koba-footer-bottom .koba-footer-container {
1021        display: flex;
1022        justify-content: space-between;
1023        align-items: center;
1024        gap: 20px;
1025    }
1026    
1027    .koba-footer-copyright {
1028        margin: 0;
1029        color: #808080;
1030        font-size: 13px;
1031    }
1032    
1033    .koba-footer-legal {
1034        display: flex;
1035        gap: 25px;
1036    }
1037    
1038    .koba-footer-legal a {
1039        color: #808080;
1040        text-decoration: none;
1041        font-size: 13px;
1042        transition: color 0.2s;
1043    }
1044    
1045    .koba-footer-legal a:hover {
1046        color: #066ff9;
1047    }
1048    
1049    /* Responsive */
1050    @media (max-width: 1200px) {
1051        .koba-footer-container {
1052            grid-template-columns: repeat(2, 1fr);
1053        }
1054    }
1055    
1056    @media (max-width: 768px) {
1057        .koba-footer-main {
1058            padding: 40px 0 30px;
1059        }
1060        
1061        .koba-footer-container {
1062            grid-template-columns: 1fr;
1063            gap: 30px;
1064            padding: 0 20px;
1065        }
1066        
1067        .koba-footer-col {
1068            text-align: center;
1069        }
1070        
1071        .koba-footer-title {
1072            display: block;
1073        }
1074        
1075        .koba-footer-social {
1076            justify-content: center;
1077        }
1078        
1079        .koba-footer-info-list {
1080            display: inline-block;
1081            text-align: left;
1082        }
1083        
1084        .koba-footer-menu {
1085            display: inline-block;
1086            text-align: left;
1087        }
1088        
1089        .koba-footer-hours .koba-horaires-table {
1090            display: inline-block;
1091        }
1092        
1093        .koba-footer-bottom .koba-footer-container {
1094            flex-direction: column;
1095            text-align: center;
1096        }
1097        
1098        .koba-footer-legal {
1099            flex-wrap: wrap;
1100            justify-content: center;
1101        }
1102    }
1103    
1104/*# sourceURL=wp-block-library-inline-css */
1105</style>
1106
1107<style id="classic-theme-styles-inline-css">
1108/*! This file is auto-generated */
1109.wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;
1109padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none}
1110/*# sourceURL=/wp-includes/css/classic-themes.min.css */
1111</style>
1112
1113<style id="global-styles-inline-css">
1114:root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgb(6,147,227) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgb(252,185,0) 0%,rgb(255,105,0) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgb(255,105,0) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);
1114--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgb(255, 255, 255), 6px 6px rgb(0, 0, 0);--wp--preset--shadow--crisp: 6px 6px 0px rgb(0, 0, 0);}.wp-block-button{--wp--preset--dimension--25: 25%;--wp--preset--dimension--50: 50%;--wp--preset--dimension--75: 75%;--wp--preset--dimension--100: 100%;}:where(body) { margin: 0; }:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}body{padding-top: 0px;padding-right: 0px;padding-bottom: 0px;padding-left: 0px;}:root :where(.wp-element-button, .wp-block-button__link){background-color: #32373c;border-width: 0;color: #fff;font-family: inherit;font-size: inherit;font-style: inherit;font-weight: inherit;letter-spacing: inherit;line-height: inherit;padding-top: calc(0.667em + 2px);padding-right: calc(1.333em + 2px);padding-bottom: calc(0.667em + 2px);padding-left: calc(1.333em + 2px);text-decoration: none;text-transform: inherit;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}
1114.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;}
1115/*# sourceURL=global-styles-inline-css */
1116</style>
1117
1118<link rel='stylesheet' id='front-css-css' href='https://www.eppeville.fr/wp-content/plugins/WP_hob_publicite//asset/css/front.css?ver=7.1.2' media='all' />
1119<link rel='stylesheet' id='hcb-frontend-css' href='https://www.eppeville.fr/wp-content/plugins/hob-cityhall-booking/assets/css/frontend.css?ver=1.2.0' media='all' />
1120<style id="hcb-frontend-inline-css">
1121
1122            :root { --hcb-primary: #2271b1; }
1123            .hcb-btn-primary, .hcb-booking-form button[type=submit] { background-color: #2271b1; border-color: #2271b1; }
1124            .hcb-btn-primary:hover { background-color: #2271b1cc; }
1125        
1126/*# sourceURL=hcb-frontend-inline-css */
1127</style>
1128<link rel='stylesheet' id='fullcalendar-css' href='https://cdnjs.cloudflare.com/ajax/libs/fullcalendar/3.10.2/fullcalendar.min.css?ver=7.1.2' media='all' />
1129<link rel='stylesheet' id='hob-fc-public-forms-css' href='https://www.eppeville.fr/wp-content/plugins/hob-formchat-pro/assets/css/public-forms.css?ver=1.29' media='all' />
1130<link rel='stylesheet' id='leaflet-css' href='https://unpkg.com/[email protected]/dist/leaflet.css?ver=1.9.4' media='all' />
1131<link rel='stylesheet' id='bootstrap-css-css' href='https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css?ver=5.3.2' media='all' />
1132<link rel='stylesheet' id='theme-style-css' href='https://www.eppeville.fr/wp-content/themes/hob-koba-civique/style.css?ver=7.1.2' media='all' />
1133<link rel='stylesheet' id='hobrgpd-front-css' href='https://www.eppeville.fr/wp-content/plugins/hob-rgpd/assets/css/front.css?ver=1781167963' media='all' />
1134<script id="acy_front_messages_js-js-before">
1135var ACYM_AJAX_START = "https://www.eppeville.fr/wp-admin/admin-ajax.php";
1136            var ACYM_AJAX_PARAMS = "?action=acymailing_router&noheader=1&nocache=1790976595";
1137            var ACYM_AJAX = ACYM_AJAX_START + ACYM_AJAX_PARAMS;
1138//# sourceURL=acy_front_messages_js-js-before
1139</script>
vendor: 1 bytes, line 1139
1139
1140<script id="acy_front_messages_js-js" src="https://www.eppeville.fr/wp-content/plugins/acymailing/media/js/front/messages.min.js?v=1790752554&#038;ver=11.1.0"></script>
vendor: 1 bytes, line 1140
1140
1141<script id="jquery-core-js" src="https://www.eppeville.fr/wp-includes/js/jquery/jquery.min.js?ver=3.7.1"></script>
vendor: 1 bytes, line 1141
1141
1142<script id="jquery-migrate-js" src="https://www.eppeville.fr/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1"></script>
1142
1143<link rel="https://api.w.org/" href="https://www.eppeville.fr/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://www.eppeville.fr/wp-json/wp/v2/posts/560" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://www.eppeville.fr/xmlrpc.php?rsd" />
1144<link rel="canonical" href="https://www.eppeville.fr/articles/eppeville/" />
1145<link rel='shortlink' href='https://www.eppeville.fr/?p=560' />
1146<!-- Analytics by WP Statistics - https://wp-statistics.com -->
1147    <style>
1148    /* Overlay résultats */
1149    .koba-search-overlay {
1150        position: fixed;
1151        top: 0;
1152        left: 0;
1153        right: 0;
1154        bottom: 0;
1155        background: var(--koba-primary, #2271b1);
1156        z-index: 9998;
1157        overflow-y: auto;
1158        padding-top: 120px;
1159        display: none;
1160    }
1161    
1162    .koba-search-overlay.active {
1163        display: block;
1164    }
1165    
1166    .koba-search-overlay-inner {
1167        max-width: 1140px;
1168        margin: 0 auto;
1169        padding: 10px;
1170    }
1171    
1172    /* Catégorie */
1173    .koba-search-category {
1174        margin-bottom: 40px;
1175    }
1176    
1177    .koba-search-category-title {
1178        color: var(--koba-secondary, #faaf00);
1179        font-size: 1.8rem;
1180        font-weight: 600;
1181        margin: 0 0 15px 0;
1182        padding-bottom: 10px;
1183        border-bottom: 1px solid rgba(255,255,255,0.2);
1184    }
1185    
1186    /* Liste */
1187    .koba-search-list {
1188        list-style: none;
1189        margin: 0;
1190        padding: 0;
1191    }
1192    
1193    .koba-search-item {
1194        border-bottom: 1px solid rgba(255,255,255,0.1);
1195    }
1196    
1197    .koba-search-link {
1198        display: block;
1199        padding: 14px 0;
1200        color: #fff;
1201        text-decoration: none;
1202        font-size: 1.05rem;
1203        transition: padding-left 0.2s, color 0.2s;
1204    }
1205    
1206    .koba-search-link:hover {
1207        padding-left: 15px;
1208        color: var(--koba-secondary, #faaf00);
1209    }
1210    
1211    .koba-search-link mark {
1212        background: var(--koba-secondary, #faaf00);
1213        color: #1a1a2e;
1214        padding: 2px 4px;
1215        border-radius: 3px;
1216    }
1217    
1218    .koba-search-date {
1219        color: rgba(255,255,255,0.5);
1220        font-size: 0.9rem;
1221        margin-left: 10px;
1222    }
1223    
1224    /* Loading */
1225    .koba-search-loading {
1226        text-align: center;
1227        padding: 60px;
1228        color: rgba(255,255,255,0.7);
1229    }
1230    
1231    .koba-search-spinner {
1232        width: 40px;
1233        height: 40px;
1234        border: 3px solid rgba(255,255,255,0.2);
1235        border-top-color: #fff;
1236        border-radius: 50%;
1237        animation: koba-spin 0.8s linear infinite;
1238        margin: 0 auto 15px;
1239    }
1240    
1241    @keyframes koba-spin {
1242        to { transform: rotate(360deg); }
1243    }
1244    
1245    /* No results */
1246    .koba-search-no-results {
1247        text-align: center;
1248        padding: 60px;
1249        color: rgba(255,255,255,0.6);
1250    }
1251    
1252    .koba-search-no-results svg {
1253        width: 60px;
1254        height: 60px;
1255        margin-bottom: 20px;
1256        opacity: 0.4;
1257    }
1258    
1259    @media (max-width: 768px) {
1260        .koba-search-overlay {
1261            padding-top: 100px;
1262        }
1263        .koba-search-overlay-inner {
1264            padding: 20px;
1265        }
1266        .koba-search-category-title {
1267            font-size: 1.4rem;
1268        }
1269    }
1270    </style>
1271        <style>
1272    /* Menu adaptatif */
1273    .koba-nav-list {
1274        display: flex;
1275        flex-wrap: wrap;
1276        align-items: center;
1277    }
1278    
1279    /* Mode compact (9-10 éléments) */
1280    .koba-nav-list.koba-nav-compact .koba-nav-link {
1281        font-size: 12px;
1282        padding-left: 12px;
1283        padding-right: 12px;
1284    }
1285    
1286    /* Mode très compact (11+ éléments) */
1287    .koba-nav-list.koba-nav-very-compact .koba-nav-link {
1288        font-size: 10px;
1289        padding-left: 4px;
1290        padding-right: 4px;
1291    }
1292    @media (max-width: 1599px) {
1293        .koba-nav-list.koba-nav-compact .koba-nav-link {
1294            font-size: 12px;
1295            padding-left: 8px;
1296            padding-right: 8px;
1297        }
1298        .koba-nav-list.koba-nav-very-compact .koba-nav-link {
1299        font-size: 9px;
1300        padding-left: 0px;
1301        padding-right: 0px;
1302        }
1303    }
1304    @media (max-width: 1299px) {
1305        .koba-nav-list.koba-nav-compact .koba-nav-link {
1306            font-size: 10px;
1307            padding-left: 8px;
1308            padding-right: 8px;
1309        }
1310        .koba-nav-list.koba-nav-very-compact .koba-nav-link {
1311            font-size: 8px;
1312            padding-left: 4px;
1313            padding-right: 4px;
1314        }
1315    }
1316    @media (max-width: 1199px) {
1317        .koba-nav-list.koba-nav-compact .koba-nav-link {
1318            font-size: 9px;
1319            padding-left: 3px;
1320            padding-right: 3px;
1321        }
1322        .koba-nav-list.koba-nav-very-compact .koba-nav-link {
1323            font-size: 8px;
1324            padding-left: 2px;
1325            padding-right: 2px;
1326        }
1327    }
1328    </style>
1329    <meta name="generator" content="Koba Civique By Hob" />
1330<style id='koba-options-css'>
1331.koba-rss, .koba-option-rss, [data-koba-option="rss"] { display: none !important; }
1332.koba-chat, .koba-option-chat, [data-koba-option="chat"] { display: none !important; }
1333.koba-survey, .koba-option-survey, [data-koba-option="survey"] { display: none !important; }
1334.koba-video_slider, .koba-option-video_slider, [data-koba-option="video_slider"] { display: none !important; }
1335.koba-payfip, .koba-option-payfip, [data-koba-option="payfip"] { display: none !important; }
1336.koba-fichiers, .koba-option-fichiers, [data-koba-option="fichiers"] { display: none !important; }
1337.koba-municipal, .koba-option-municipal, [data-koba-option="municipal"] { display: none !important; }
1338.koba-app_citoyen, .koba-option-app_citoyen, [data-koba-option="app_citoyen"] { display: none !important; }
1339.koba-alertes, .koba-option-alertes, [data-koba-option="alertes"] { display: none !important; }
1340.koba-franceconnect, .koba-option-franceconnect, [data-koba-option="franceconnect"] { display: none !important; }
1341.koba-voisinvigilant, .koba-option-voisinvigilant, [data-koba-option="voisinvigilant"] { display: none !important; }
1342.koba-actes, .koba-option-actes, [data-koba-option="actes"] { display: none !important; }
1343.koba-affichage_dynamique, .koba-option-affichage_dynamique, [data-koba-option="affichage_dynamique"] { display: none !important; }
1344.koba-rgpd_avance, .koba-option-rgpd_avance, [data-koba-option="rgpd_avance"] { display: none !important; }
1345.koba-multi_langues, .koba-option-multi_langues, [data-koba-option="multi_langues"] { display: none !important; }
1346.koba-carte_dynamique, .koba-option-carte_dynamique, [data-koba-option="carte_dynamique"] { display: none !important; }
1347.koba-reservation_salles, .koba-option-reservation_salles, [data-koba-option="reservation_salles"] { display: none !important; }
1348.koba-locaux_pro, .koba-option-locaux_pro, [data-koba-option="locaux_pro"] { display: none !important; }
1349.koba-statistiques, .koba-option-statistiques, [data-koba-option="statistiques"] { display: none !important; }
1350.koba-courrier, .koba-option-courrier, [data-koba-option="courrier"] { display: none !important; }
1351.koba-panneaupocket_iframe, .koba-option-panneaupocket_iframe, [data-koba-option="panneaupocket_iframe"] { display: none !important; }
1352.koba-panneaupocket_api, .koba-option-panneaupocket_api, [data-koba-option="panneaupocket_api"] { display: none !important; }
1353.koba-espace_collaboratif, .koba-option-espace_collaboratif, [data-koba-option="espace_collaboratif"] { display: none !important; }
1354.koba-actu_association, .koba-option-actu_association, [data-koba-option="actu_association"] { display: none !important; }
1355.koba-billetterie, .koba-option-billetterie, [data-koba-option="billetterie"] { display: none !important; }
1356.koba-accessibilite, .koba-option-accessibilite, [data-koba-option="accessibilite"] { display: none !important; }
1357.koba-espace_citoyen, .koba-option-espace_citoyen, [data-koba-option="espace_citoyen"] { display: none !important; }
1358.koba-visio_conference, .koba-option-visio_conference, [data-koba-option="visio_conference"] { display: none !important; }
1359.koba-apidae, .koba-option-apidae, [data-koba-option="apidae"] { display: none !important; }
1360.koba-prise_rdv, .koba-option-prise_rdv, [data-koba-option="prise_rdv"] { display: none !important; }
1361.koba-marche_public, .koba-option-marche_public, [data-koba-option="marche_public"] { display: none !important; }
1362.koba-portail_famille, .koba-option-portail_famille, [data-koba-option="portail_famille"] { display: none !important; }
1363.koba-webcam, .koba-option-webcam, [data-koba-option="webcam"] { display: none !important; }
1364.koba-reseaux_sociaux, .koba-option-reseaux_sociaux, [data-koba-option="reseaux_sociaux"] { display: none !important; }
1365.koba-archives_opendata, .koba-option-archives_opendata, [data-koba-option="archives_opendata"] { display: none !important; }
1366.koba-encombrants_dechets, .koba-option-encombrants_dechets, [data-koba-option="encombrants_dechets"] { display: none !important; }
1367.koba-zapette, .koba-option-zapette, [data-koba-option="zapette"] { display: none !important; }
1368.koba-flipbook, .koba-option-flipbook, [data-koba-option="flipbook"] { display: none !important; }
1369.koba-extranet_commissions, .koba-option-extranet_commissions, [data-koba-option="extranet_commissions"] { display: none !important; }
1370.koba-sms_alerte, .koba-option-sms_alerte, [data-koba-option="sms_alerte"] { display: none !important; }
1371.koba-recherche_avancee, .koba-option-recherche_avancee, [data-koba-option="recherche_avancee"] { display: none !important; }
1372</style>
1373</head>
1374
1375<body class="wp-singular post-template-default single single-post postid-560 single-format-standard wp-theme-hob-koba-civique site-id-24 koba-has-newsletter koba-has-campaign">
1376    <style>
1377        #koba-upsell-banner {
1378            display: none; /* révélé par JS uniquement en mode PWA standalone */
1379            align-items: flex-start;
1380            gap: 10px;
1381            background: #ffbb00;
1382            color: #fff;
1383            padding: calc(10px + env(safe-area-inset-top)) 14px 10px;
1384            font-family: inherit;
1385            font-size: .82rem;
1386            line-height: 1.4;
1387        }
1388        #koba-upsell-banner.koba-upsell-visible { display: flex;     
1389            z-index: 2147483647;
1390            position: relative; }
1391        #koba-upsell-banner .kub-text { flex: 1; min-width: 0; }
1392        #koba-upsell-banner .kub-close {
1393            background: rgba(255,255,255,.18);
1394            border: none;
1395            color: #fff;
1396            font-size: .95rem;
1397            line-height: 1;
1398            cursor: pointer;
1399            padding: 6px 9px;
1400            border-radius: 6px;
1401            flex-shrink: 0;
1402        }
1403        #koba-upsell-banner .kub-close:hover { background: rgba(255,255,255,.3); }
1404    </style>
1405
1406    <div id="koba-upsell-banner" role="alert">
1407        <span class="kub-text">Dommage! Votre Mairie n'a pas encore souscrit à l'Application Citoyenne afin de vous proposer une interface optimisée pour mobile, nous les contactons!</span>
1408        <button class="kub-close" id="koba-upsell-close" aria-label="Fermer">&#10005;</button>
1409    </div>
1410
1411    
1411<script>
1412    (function() {
1413        var isPwa = window.matchMedia('(display-mode: standalone)').matches
1414                 || window.navigator.standalone === true;
1415        if (!isPwa) return; // ← retirer cette ligne pour afficher aussi dans le navigateur
1416
1417        var KEY = 'koba_upsell_closed';
1418        if (localStorage.getItem(KEY) === '1') return;
1419
1420        function show() {
1421            var b = document.getElementById('koba-upsell-banner');
1422            if (!b) return;
1423            b.classList.add('koba-upsell-visible');
1424
1425            // Comptage : 1 vue par session (ouverture de l'app)
1426            if (!sessionStorage.getItem('koba_upsell_counted')) {
1427                sessionStorage.setItem('koba_upsell_counted', '1');
1428                var fd = new FormData();
1429                fd.append('action', 'koba_upsell_view');
1430                fetch('https://www.eppeville.fr/wp-admin/admin-ajax.php', {
1431                    method: 'POST', body: fd, credentials: 'include'
1432                }).catch(function(){});
1433            }
1434
1435            var c = document.getElementById('koba-upsell-close');
1436            if (c) c.addEventListener('click', function() {
1437                b.classList.remove('koba-upsell-visible');
1438                localStorage.setItem(KEY, '1');
1439            });
1440        }
1441        if (document.readyState !== 'loading') show();
1442        else document.addEventListener('DOMContentLoaded', show);
1443    })();
1444    </script>
1444
1445    
1446<a class="skip-link visually-hidden-focusable" href="#main-content">Aller au contenu principal</a>
1447
1448<header class="koba-header" role="banner">
1449    <!-- Container principal avec position relative -->
1450    <div class="koba-header-wrapper">
1451        
1452        <!-- Logo - couvre les deux barres -->
1453        <a href="https://www.eppeville.fr/" class="koba-logo">
1454                            <img src="https://www.eppeville.fr/wp-content/uploads/sites/24/2026/02/logo-header-1770206928.png" alt="COMMUNE D&#039;EPPEVILLE - Accueil">
1455                    </a>
1456        
1457        <!-- Barre supérieure (orange) -->
1458        <div class="koba-topbar">
1459            <div class="koba-topbar-inner">
1460                <!-- Hamburger (mobile uniquement) -->
1461                <button class="koba-hamburger" id="koba-hamburger" aria-label="Menu">
1462                    <span></span>
1463                    <span></span>
1464                    <span></span>
1465                </button>
1466                
1467                <!-- Menu secondaire gauche (desktop) -->               
1468                <nav class="koba-topbar-menu">
1469                    <ul class="koba-topbar-list">
1470                        <li class="menu-item menu-item-type-post_type menu-item-object-page">
1471                            <a href="https://www.eppeville.fr/">ACCUEIL</a>
1472                        </li>
1473                        <li class="menu-item menu-item-type-post_type menu-item-object-page">
1474                            <a href="https://www.eppeville.fr/annuaire/">ANNUAIRE</a>
1475                        </li>
1476                        <li class="menu-item menu-item-type-post_type menu-item-object-page">
1477                            <a href="https://www.eppeville.fr/contact/">NOUS CONTACTER</a>
1478                        </li>
1479                        <li class="menu-item menu-item-type-post_type menu-item-object-page">
1480                            <a href="https://www.eppeville.fr/emploi/">EMPLOI</a>
1481                        </li>
1482                                            </ul>   
1483                </nav>
1484                
1485                <!-- Lien droite (desktop) -->
1486                                    <a class="koba-topbar-cta" data-bs-toggle="modal" data-bs-target="#exampleModal" href="#">
1487                        SUIVEZ L&#039;ACTU                    </a>
1488                               
1489               
1490            </div>
1491        </div>
1492        
1493        <!-- Barre principale (bleu) -->
1494        <div class="koba-navbar">
1495            <div class="koba-navbar-inner">
1496                
1497                <!-- Menu principal (desktop) -->
1498                <nav class="koba-main-nav" id="koba-main-nav">
1499                                        
1500                    <ul class="koba-nav-list">
1501                                                <li class="koba-nav-item ">
1502                            <a href="https://www.eppeville.fr/articles/eppeville/" class="koba-nav-link" >
1503                                Eppeville                                                            </a>
1504                            
1505                                                    </li>
1506                                                <li class="koba-nav-item has-megamenu">
1507                            <a href="#" class="koba-nav-link" data-megamenu="1320">
1508                                Vie Municipale                                                                <svg class="koba-nav-arrow" width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true" focusable="false">
1509                                    <path d="M6 9l6 6 6-6"/>
1510                                </svg>
1511                                                            </a>
1512                            
1513                                                        <div class="koba-megamenu" id="megamenu-1320">
1514                                <div class="koba-megamenu-inner">
1515                                    <div class="koba-megamenu-col1"></div>
1516                                    
1517                                    <div class="koba-megamenu-col2">
1518                                        <span class="koba-megamenu-title">Vie Municipale</span>
1519                                    </div>
1520                                    
1521                                    <div class="koba-megamenu-col3">
1522                                        <ul class="koba-megamenu-list">
1523                                                                                        <li class="koba-megamenu-item ">
1524                                                <a href="https://www.eppeville.fr/articles/elus-et-commissions/" class="koba-megamenu-link">
1525                                                    Elus et Commissions                                                                                                    </a>
1526                                                
1527                                                                                            </li>
1528                                                                                    </ul>
1529                                    </div>
1530                                    
1531                                    <div class="koba-megamenu-col4"></div>
1532                                </div>
1533                            </div>
1534                                                    </li>
1535                                                <li class="koba-nav-item has-megamenu">
1536                            <a href="#" class="koba-nav-link" data-megamenu="1322">
1537                                Infos Pratiques                                                                <svg class="koba-nav-arrow" width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true" focusable="false">
1538                                    <path d="M6 9l6 6 6-6"/>
1539                                </svg>
1540                                                            </a>
1541                            
1542                                                        <div class="koba-megamenu" id="megamenu-1322">
1543                                <div class="koba-megamenu-inner">
1544                                    <div class="koba-megamenu-col1"></div>
1545                                    
1546                                    <div class="koba-megamenu-col2">
1547                                        <span class="koba-megamenu-title">Infos Pratiques</span>
1548                                    </div>
1549                                    
1550                                    <div class="koba-megamenu-col3">
1551                                        <ul class="koba-megamenu-list">
1552                                                                                        <li class="koba-megamenu-item ">
1553                                                <a href="https://www.eppeville.fr/articles/secretariat-de-mairie/" class="koba-megamenu-link">
1554                                                    Secretariat de Mairie                                                                                                    </a>
1555                                                
1556                                                                                            </li>
1557                                                                                        <li class="koba-megamenu-item ">
1558                                                <a href="https://www.eppeville.fr/articles/urbanisme-6b3d252e-c7f7-4cbb-bdc3-2bd40e6ec560/" class="koba-megamenu-link">
1559                                                    Urbanisme                                                                                                    </a>
1560                                                
1561                                                                                            </li>
1562                                                                                        <li class="koba-megamenu-item ">
1563                                                <a href="https://www.eppeville.fr/articles/ccas/" class="koba-megamenu-link">
1564                                                    CCAS                                                                                                    </a>
1565                                                
1566                                                                                            </li>
1567                                                                                        <li class="koba-megamenu-item ">
1568                                                <a href="https://www.eppeville.fr/articles/salle-polyvalente-4ef22683-d6dc-47e6-8890-2a8bb157707a/" class="koba-megamenu-link">
1569                                                    Location Salle Polyvalente                                                                                                    </a>
1570                                                
1571                                                                                            </li>
1572                                                                                        <li class="koba-megamenu-item ">
1573                                                <a href="https://www.eppeville.fr/articles/cimetiere-des-monthieux/" class="koba-megamenu-link">
1574                                                    Cimetière des Monthieux                                                                                                    </a>
1575                                                
1576                                                                                            </li>
1577                                                                                        <li class="koba-megamenu-item ">
1578                                                <a href="https://www.eppeville.fr/articles/mediatheque-intercommunale-de-l-est-de-la-somme/" class="koba-megamenu-link">
1579                                                    Médiathèque intercommunale de l&#039;Est de la Somme                                                                                                    </a>
1580                                                
1581                                                                                            </li>
1582                                                                                    </ul>
1583                                    </div>
1584                                    
1585                                    <div class="koba-megamenu-col4"></div>
1586                                </div>
1587                            </div>
1588                                                    </li>
1589                                                <li class="koba-nav-item has-megamenu">
1590                            <a href="#" class="koba-nav-link" data-megamenu="1329">
1591                                Jeunesse                                                                <svg class="koba-nav-arrow" width="10" height="10" viewB
1591ox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true" focusable="false">
1592                                    <path d="M6 9l6 6 6-6"/>
1593                                </svg>
1594                                                            </a>
1595                            
1596                                                        <div class="koba-megamenu" id="megamenu-1329">
1597                                <div class="koba-megamenu-inner">
1598                                    <div class="koba-megamenu-col1"></div>
1599                                    
1600                                    <div class="koba-megamenu-col2">
1601                                        <span class="koba-megamenu-title">Jeunesse</span>
1602                                    </div>
1603                                    
1604                                    <div class="koba-megamenu-col3">
1605                                        <ul class="koba-megamenu-list">
1606                                                                                        <li class="koba-megamenu-item ">
1607                                                <a href="https://www.eppeville.fr/articles/ecole-maternelle/" class="koba-megamenu-link">
1608                                                    Ecole Maternelle                                                                                                    </a>
1609                                                
1610                                                                                            </li>
1611                                                                                        <li class="koba-megamenu-item ">
1612                                                <a href="https://www.eppeville.fr/articles/ecole-elementaire/" class="koba-megamenu-link">
1613                                                    Ecole Elémentaire                                                                                                    </a>
1614                                                
1615                                                                                            </li>
1616                                                                                        <li class="koba-megamenu-item ">
1617                                                <a href="https://www.eppeville.fr/articles/accueil-de-loisirs/" class="koba-megamenu-link">
1618                                                    Centre de Loisirs                                                                                                    </a>
1619                                                
1620                                                                                            </li>
1621                                                                                        <li class="koba-megamenu-item ">
1622                                                <a href="https://www.eppeville.fr/articles/restaurant-scolaire/" class="koba-megamenu-link">
1623                                                    Restaurant scolaire                                                                                                    </a>
1624                                                
1625                                                                                            </li>
1626                                                                                        <li class="koba-megamenu-item ">
1627                                                <a href="https://www.eppeville.fr/articles/garderie-417e31ac-af66-475b-9421-d468a454edf7/" class="koba-megamenu-link">
1628                                                    Garderie                                                                                                    </a>
1629                                                
1630                                                                                            </li>
1631                                                                                    </ul>
1632                                    </div>
1633                                    
1634                                    <div class="koba-megamenu-col4"></div>
1635                                </div>
1636                            </div>
1637                                                    </li>
1638                                                <li class="koba-nav-item has-megamenu">
1639                            <a href="#" class="koba-nav-link" data-megamenu="1335">
1640                                Environnement                                                                <svg class="koba-nav-arrow" width="10" height="10" viewB
1640ox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true" focusable="false">
1641                                    <path d="M6 9l6 6 6-6"/>
1642                                </svg>
1643                                                            </a>
1644                            
1645                                                        <div class="koba-megamenu" id="megamenu-1335">
1646                                <div class="koba-megamenu-inner">
1647                                    <div class="koba-megamenu-col1"></div>
1648                                    
1649                                    <div class="koba-megamenu-col2">
1650                                        <span class="koba-megamenu-title">Environnement</span>
1651                                    </div>
1652                                    
1653                                    <div class="koba-megamenu-col3">
1654                                        <ul class="koba-megamenu-list">
1655                                                                                        <li class="koba-megamenu-item ">
1656                                                <a href="https://www.eppeville.fr/articles/maisons-fleuries/" class="koba-megamenu-link">
1657                                                    Fleurissement                                                                                                    </a>
1658                                                
1659                                                                                            </li>
1660                                                                                        <li class="koba-megamenu-item ">
1661                                                <a href="https://www.eppeville.fr/articles/dechetterie/" class="koba-megamenu-link">
1662                                                    Déchetterie                                                                                                    </a>
1663                                                
1664                                                                                            </li>
1665                                                                                        <li class="koba-megamenu-item ">
1666                                                <a href="https://www.eppeville.fr/articles/dechets-interdits-dans-la-poubelle/" class="koba-megamenu-link">
1667                                                    Déchets interdits dans la poubelle                                                                                                    </a>
1668                                                
1669                                                                                            </li>
1670                                                                                        <li class="koba-megamenu-item has-submenu">
1671                                                <a href="#" class="koba-megamenu-link">
1672                                                    Pêche                                                                                                        <svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true" focusable="false">
1673                                                        <path d="M9 18l6-6-6-6"/>
1674                                                    </svg>
1675                                                                                                    </a>
1676                                                
1677                                                                                                <ul class="koba-megamenu-sublist">
1678                                                                                                        <li class="">
1679                                                        <a href="https://www.eppeville.fr/articles/peche-a-l-etang/">
1680                                                            Etang                                                                                                                    </a>
1681                                                                                                            </li>
1682                                                                                                        <li class="">
1683                                                        <a href="https://www.eppeville.fr/articles/peche-dans-la-somme-63a725c1-e132-46da-9215-fec7edd53e18/">
1684                                                            Somme                                                                                                                    </a>
1685                                                                                                            </li>
1686                                                                                                    </ul>
1687                                                                                            </li>
1688                                                                                        <li class="koba-megamenu-item ">
1689                                                <a href="https://www.eppeville.fr/articles/pierre-qui-pousse/" class="koba-megamenu-link">
1690                                                    Pierre qui pousse                                                                                                    </a>
1691                                                
1692                                                                                            </li>
1693                                                                                    </ul>
1694                                    </div>
1695                                    
1696                                    <div class="koba-megamenu-col4"></div>
1697                                </div>
1698                            </div>
1699                                                    </li>
1700                                                <li class="koba-nav-item has-megamenu">
1701                            <a href="#" class="koba-nav-link" data-megamenu="1343">
1702                                Associations                                                                <svg class="koba-nav-arrow" width="10" height="10" viewB
1702ox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true" focusable="false">
1703                                    <path d="M6 9l6 6 6-6"/>
1704                                </svg>
1705                                                            </a>
1706                            
1707                                                        <div class="koba-megamenu" id="megamenu-1343">
1708                                <div class="koba-megamenu-inner">
1709                                    <div class="koba-megamenu-col1"></div>
1710                                    
1711                                    <div class="koba-megamenu-col2">
1712                                        <span class="koba-megamenu-title">Associations</span>
1713                                    </div>
1714                                    
1715                                    <div class="koba-megamenu-col3">
1716                                        <ul class="koba-megamenu-list">
1717                                                                                        <li class="koba-megamenu-item ">
1718                                                <a href="https://www.eppeville.fr/articles/liste-associations-7aa83d9d-5c33-437e-ab53-2a679cf06eec/" class="koba-megamenu-link">
1719                                                    Liste                                                                                                    </a>
1720                                                
1721                                                                                            </li>
1722                                                                                        <li class="koba-megamenu-item ">
1723                                                <a href="https://www.eppeville.fr/articles/association-aides-et-loisirs-aux-personnes-agees/" class="koba-megamenu-link">
1724                                                    Association Aides et Loisirs aux Personnes Agées                                                                                                    </a>
1725                                                
1726                                                                                            </li>
1727                                                                                        <li class="koba-megamenu-item ">
1728                                                <a href="https://www.eppeville.fr/articles/secours-catholique/" class="koba-megamenu-link">
1729                                                    Secours Catholique                                                                                                    </a>
1730                                                
1731                                                                                            </li>
1732                                                                                    </ul>
1733                                    </div>
1734                                    
1735                                    <div class="koba-megamenu-col4"></div>
1736                                </div>
1737                            </div>
1738                                                    </li>
1739                                            </ul>
1740                                    </nav>
1741                
1742                <!-- Bouton recherche (carré) -->
1743                <button class="koba-search-toggle" id="koba-search-toggle" aria-label="Ouvrir la recherche" aria-expanded="false" aria-controls="koba-search-bar">
1744                    <svg class="koba-icon-search" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true" focusable="false">
1745                        <circle cx="11" cy="11" r="8"/>
1746                        <path d="M21 21l-4.35-4.35"/>
1747                    </svg>
1748                </button>
1749                
1750                <!-- Barre de recherche -->
1751<div class="koba-search-bar" id="koba-search-bar">
1752    <div class="koba-search-bar-inner">
1753        <form role="search" method="get" action="https://www.eppeville.fr/" class="koba-search-form">
1754            <label for="koba-search-input" class="visually-hidden">Rechercher sur le site</label>
1755            <input type="search" name="s" placeholder="Rechercher" class="koba-search-input" id="koba-search-input" value="" autocomplete="off">
1756            <button type="submit" class="koba-search-submit" aria-label="Lancer la recherche">
1757                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true" focusable="false">
1758                    <circle cx="11" cy="11" r="8"/>
1759                    <path d="M21 21l-4.35-4.35"/>
1760                </svg>
1761            </button>
1762        </form>
1763        <button class="koba-search-close" id="koba-search-close" aria-label="Fermer la recherche">
1764            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true" focusable="false">
1765                <path d="M18 6L6 18M6 6l12 12"/>
1766            </svg>
1767        </button>
1768    </div>
1769</div>
1770            </div>
1771        </div>
1772    </div>
1773    
1774    <!-- Menu mobile -->
1775    <div class="koba-mobile-menu" id="koba-mobile-menu">
1776        <div class="koba-mobile-menu-inner">
1777            <!-- Recherche mobile -->
1778            <div class="koba-mobile-search">
1779                <form role="search" method="get" action="https://www.eppeville.fr/" class="koba-mobile-search-form">
1780                    <label for="koba-mobile-search-input" class="visually-hidden">Rechercher sur le site</label>
1781                    <input type="search" name="s" id="koba-mobile-search-input" placeholder="Rechercher..." class="koba-mobile-search-input" value="">
1782                    <button type="submit" class="koba-mobile-search-submit" aria-label="Lancer la recherche">
1783                        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true" focusable="false">
1784                            <circle cx="11" cy="11" r="8"/>
1785                            <path d="M21 21l-4.35-4.35"/>
1786                        </svg>
1787                    </button>
1788                </form>
1789            </div>
1790            <nav class="koba-mobile-nav"><ul id="menu-menu-principal" class="koba-mobile-list"><li class="koba-mobile-item current"><div class="koba-mobile-item-inner"><a href="https://www.eppeville.fr/articles/eppeville/" class="koba-mobile-link">Eppeville</a></div></li><li class="koba-mobile-item has-children"><div class="koba-mobile-item-inner"><a href="#" class="koba-mobile-link">Vie Municipale</a><button class="koba-mobile-toggle" aria-label="Ouvrir sous-menu">
1790<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M6 9l6 6 6-6"/></svg></button></div><ul class="koba-mobile-submenu" data-depth="0"><li class="koba-mobile-item"><div class="koba-mobile-item-inner"><a href="https://www.eppeville.fr/articles/elus-et-commissions/" class="koba-mobile-link">Elus et Commissions</a></div></li></ul></li><li class="koba-mobile-item has-children"><div class="koba-mobile-item-inner"><a href="#" class="koba-mobile-link">Infos Pratiques</a><button class="koba-mobile-toggle" aria-label="Ouvrir sous-menu"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M6 9l6 6 6-6"/></svg></button></div><ul class="koba-mobile-submenu" data-depth="0"><li class="koba-mobile-item"><div class="koba-mobile-item-inner"><a href="https://www.eppeville.fr/articles/secretariat-de-mairie/" class="koba-mobile-link">Secretariat de Mairie</a></div></li><li class="koba-mobile-item"><div class="koba-mobile-item-inner"><a href="https://www.eppeville.fr/articles/urbanisme-6b3d252e-c7f7-4cbb-bdc3-2bd40e6ec560/" class="koba-mobile-link">Urbanisme</a></div></li><li class="koba-mobile-item"><div class="koba-mobile-item-inner"><a href="https://www.eppeville.fr/articles/ccas/" class="koba-mobile-link">CCAS</a></div></li><li class="koba-mobile-item"><div class="koba-mobile-item-inner"><a href="https://www.eppeville.fr/articles/salle-polyvalente-4ef22683-d6dc-47e6-8890-2a8bb157707a/" class="koba-mobile-link">Location Salle Polyvalente</a></div></li><li class="koba-mobile-item"><div class="koba-mobile-item-inner"><a href="https://www.eppeville.fr/articles/cimetiere-des-monthieux/" class="koba-mobile-link">Cimetière des Monthieux</a></div></li><li class="koba-mobile-item"><div class="koba-mobile-item-inner"><a href="https://www.eppeville.fr/articles/mediatheque-intercommunale-de-l-est-de-la-somme/" class="koba-mobile-link">Médiathèque intercommunale de l&#039;Est de la Somme</a></div></li></ul></li><li class="koba-mobile-item has-children"><div class="koba-mobile-item-inner"><a href="#" class="koba-mobile-link">Jeunesse</a><button class="koba-mobile-toggle" aria-label="Ouvrir sous-menu"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M6 9l6 6 6-6"/></svg></button></div><ul class="koba-mobile-submenu" data-depth="0"><li class="koba-mobile-item"><div class="koba-mobile-item-inner"><a href="https://www.eppeville.fr/articles/ecole-maternelle/" class="koba-mobile-link">Ecole Maternelle</a></div></li><li class="koba-mobile-item"><div class="koba-mobile-item-inner"><a href="https://www.eppeville.fr/articles/ecole-elementaire/" class="koba-mobile-link">Ecole Elémentaire</a></div></li><li class="koba-mobile-item"><div class="koba-mobile-item-inner"><a href="https://www.eppeville.fr/articles/accueil-de-loisirs/" class="koba-mobile-link">Centre de Loisirs</a></div></li><li class="koba-mobile-item"><div class="koba-mobile-item-inner"><a href="https://www.eppeville.fr/articles/restaurant-scolaire/" class="koba-mobile-link">Restaurant scolaire</a></div></li><li class="koba-mobile-item"><div class="koba-mobile-item-inner"><a href="https://www.eppeville.fr/articles/garderie-417e31ac-af66-475b-9421-d468a454edf7/" class="koba-mobile-link">Garderie</a></div></li></ul></li><li class="koba-mobile-item has-children"><div class="koba-mobile-item-inner"><a href="#" class="koba-mobile-link">Environnement</a><button class="koba-mobile-toggle" aria-label="Ouvrir sous-menu"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M6 9l6 6 6-6"/></svg></button></div><ul class="koba-mobile-submenu" data-depth="0"><li class="koba-mobile-item"><div class="koba-mobile-item-inner"><a href="https://www.eppeville.fr/articles/maisons-fleuries/" class="koba-mobile-link">Fleurissement</a></div></li><li class="koba-mobile-item"><div class="koba-mobile-item-inner"><a href="https://www.eppeville.fr/articles/dechetterie/" class="koba-mobile-link">Déchetterie</a></div></li><li class="koba-mobile-item"><div class="koba-mobile-item-inner"><a href="https://www.eppeville.fr/articles/dechets-interdits-dans-la-poubelle/" class="koba-mobile-link">
1790Déchets interdits dans la poubelle</a></div></li><li class="koba-mobile-item has-children"><div class="koba-mobile-item-inner"><a href="#" class="koba-mobile-link">Pêche</a><button class="koba-mobile-toggle" aria-label="Ouvrir sous-menu"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M6 9l6 6 6-6"/></svg></button></div><ul class="koba-mobile-submenu" data-depth="1"><li class="koba-mobile-item"><div class="koba-mobile-item-inner"><a href="https://www.eppeville.fr/articles/peche-a-l-etang/" class="koba-mobile-link">Etang</a></div></li><li class="koba-mobile-item"><div class="koba-mobile-item-inner"><a href="https://www.eppeville.fr/articles/peche-dans-la-somme-63a725c1-e132-46da-9215-fec7edd53e18/" class="koba-mobile-link">Somme</a></div></li></ul></li><li class="koba-mobile-item"><div class="koba-mobile-item-inner"><a href="https://www.eppeville.fr/articles/pierre-qui-pousse/" class="koba-mobile-link">Pierre qui pousse</a></div></li></ul></li><li class="koba-mobile-item has-children"><div class="koba-mobile-item-inner"><a href="#" class="koba-mobile-link">Associations</a><button class="koba-mobile-toggle" aria-label="Ouvrir sous-menu"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M6 9l6 6 6-6"/></svg></button></div><ul class="koba-mobile-submenu" data-depth="0"><li class="koba-mobile-item"><div class="koba-mobile-item-inner"><a href="https://www.eppeville.fr/articles/liste-associations-7aa83d9d-5c33-437e-ab53-2a679cf06eec/" class="koba-mobile-link">Liste</a></div></li><li class="koba-mobile-item"><div class="koba-mobile-item-inner"><a href="https://www.eppeville.fr/articles/association-aides-et-loisirs-aux-personnes-agees/" class="koba-mobile-link">Association Aides et Loisirs aux Personnes Agées</a></div></li><li class="koba-mobile-item"><div class="koba-mobile-item-inner"><a href="https://www.eppeville.fr/articles/secours-catholique/" class="koba-mobile-link">Secours Catholique</a></div></li></ul></li></ul></nav>            
1791            <nav class="koba-mobile-secondary">
1792              <ul class="koba-topbar-list">
1793                        <li class="menu-item menu-item-type-post_type menu-item-object-page">
1794                            <a href="https://www.eppeville.fr/">ACCUEIL</a>
1795                        </li>
1796                        <li class="menu-item menu-item-type-post_type menu-item-object-page">
1797                            <a href="https://www.eppeville.fr/annuaire/">ANNUAIRE</a>
1798                        </li>
1799                        <li class="menu-item menu-item-type-post_type menu-item-object-page">
1800                            <a href="https://www.eppeville.fr/contact/">NOUS CONTACTER</a>
1801                        </li>
1802                        <li class="menu-item menu-item-type-post_type menu-item-object-page">
1803                            <a href="https://www.eppeville.fr/emploi/">EMPLOI</a>
1804                        </li>
1805                                            </ul>   
1806            </nav>
1807        </div>
1808    </div><!-- Overlay résultats recherche -->
1809<div class="koba-search-overlay" id="koba-search-overlay"></div>
1810</header>
1811
1812<!-- Spacer pour compenser le header fixe -->
1813<div class="koba-header-spacer"></div>
1814
1815<!-- Overlay -->
1816<div class="koba-overlay" id="koba-overlay"></div>
1817 <div class="modal fade" id="exampleModal" tabindex="-1" aria-hidden="true" aria-labelledby="exampleModalTitle" role="dialog">
1818                  <div class="modal-dialog">
1819                    <div class="modal-content">
1820
1821                      <div class="modal-header">
1822                        <h5 class="modal-title" id="exampleModalTitle">SUIVEZ L'ACTU</h5>
1823                        <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Fermer"></button>
1824                      </div>
1825
1826                      <div class="modal-body">
1827                        <p>* Champs obligatoires</p>
1828                            <style>
1829    .koba-form-inscription {
1830        background: #fff;
1831        padding: 30px;
1832        border-radius: 12px;
1833        box-shadow: 0 4px 20px rgba(0,0,0,0.08);
1834        max-width: 700px;
1835        margin: 0 auto;
1836    }
1837    .koba-form-inscription h3 {
1838        margin: 0 0 25px;
1839        padding-bottom: 15px;
1840        border-bottom: 3px solid var(--koba-primary, #209bbc);
1841        color: #1a1a2e;
1842        font-size: 1.5em;
1843    }
1844    .koba-form-section {
1845        margin-bottom: 25px;
1846        padding-bottom: 20px;
1847        border-bottom: 1px solid #eee;
1848    }
1849    .koba-form-section:last-of-type {
1850        border-bottom: none;
1851        margin-bottom: 15px;
1852    }
1853    .koba-form-section-title {
1854        font-weight: 600;
1855        color: var(--koba-primary, #209bbc);
1856        margin-bottom: 15px;
1857        font-size: 14px;
1858        text-transform: uppercase;
1859        letter-spacing: 0.5px;
1860    }
1861    .koba-form-row {
1862        display: flex;
1863        gap: 15px;
1864        margin-bottom: 15px;
1865    }
1866    .koba-form-field {
1867        flex: 1;
1868    }
1869    .koba-form-field.full {
1870        flex: 0 0 100%;
1871    }
1872    .koba-form-field label {
1873        display: block;
1874        font-weight: 500;
1875        margin-bottom: 6px;
1876        color: #333;
1877        font-size: 14px;
1878    }
1879    .koba-form-field label .req {
1880        color: #d63638;
1881    }
1882    .koba-form-field input,
1883    .koba-form-field select,
1884    .koba-form-field textarea {
1885        width: 100%;
1886        padding: 12px 15px;
1887        border: 1px solid #ddd;
1888        border-radius: 6px;
1889        font-size: 14px;
1890        transition: border-color 0.2s, box-shadow 0.2s;
1891        box-sizing: border-box;
1892    }
1893    .koba-form-field input:focus,
1894    .koba-form-field select:focus,
1895    .koba-form-field textarea:focus {
1896        outline: none;
1897        border-color: var(--koba-primary, #209bbc);
1898        box-shadow: 0 0 0 3px rgba(32, 155, 188, 0.1);
1899    }
1900    .koba-form-field textarea {
1901        min-height: 80px;
1902        resize: vertical;
1903    }
1904    .koba-form-checkbox {
1905        display: flex;
1906        align-items: flex-start;
1907        gap: 10px;
1908        padding: 12px 15px;
1909        background: #f8f9fa;
1910        border-radius: 6px;
1911        margin-bottom: 10px;
1912        cursor: pointer;
1913        transition: background 0.2s;
1914    }
1915    .koba-form-checkbox:hover {
1916        background: #e9ecef;
1917    }
1918    .koba-form-checkbox input[type="checkbox"] {
1919        width: 20px;
1920        height: 20px;
1921        margin-top: 2px;
1922        cursor: pointer;
1923        accent-color: var(--koba-primary, #209bbc);
1924    }
1925    .koba-form-checkbox span {
1926        font-size: 14px;
1927        color: #333;
1928        line-height: 1.5;
1929    }
1930    .koba-form-submit {
1931        text-align: center;
1932        margin-top: 25px;
1933    }
1934    .koba-form-submit button {
1935        background: var(--koba-primary, #209bbc);
1936        color: #fff;
1937        border: none;
1938        padding: 15px 50px;
1939        font-size: 16px;
1940        font-weight: 600;
1941        border-radius: 8px;
1942        cursor: pointer;
1943        transition: all 0.3s;
1944        text-transform: uppercase;
1945        letter-spacing: 0.5px;
1946    }
1947    .koba-form-submit button:hover {
1948        background: var(--koba-secondary, #faaf00);
1949        transform: translateY(-2px);
1950        box-shadow: 0 4px 15px rgba(0,0,0,0.15);
1951    }
1952    .koba-form-submit button:disabled {
1953        background: #ccc;
1954        cursor: not-allowed;
1955        transform: none;
1956        box-shadow: none;
1957    }
1958    .koba-form-message {
1959        padding: 15px 20px;
1960        border-radius: 8px;
1961        margin-bottom: 20px;
1962        display: none;
1963    }
1964    .koba-form-message.success {
1965        background: #d4edda;
1966        color: #155724;
1967        border: 1px solid #c3e6cb;
1968        display: block;
1969    }
1970    .koba-form-message.error {
1971        background: #f8d7da;
1972        color: #721c24;
1973        border: 1px solid #f5c6cb;
1974        display: block;
1975    }
1976    .koba-form-loading {
1977        display: none;
1978        text-align: center;
1979        padding: 40px;
1980    }
1981    .koba-form-loading.active {
1982        display: block;
1983    }
1984    .koba-spinner {
1985        width: 40px;
1986        height: 40px;
1987        border: 4px solid #f3f3f3;
1988        border-top: 4px solid var(--koba-primary, #209bbc);
1989        border-radius: 50%;
1990        animation: koba-spin 1s linear infinite;
1991        margin: 0 auto 15px;
1992    }
1993    @keyframes koba-spin {
1994        0% { transform: rotate(0deg); }
1995        100% { transform: rotate(360deg); }
1996    }
1997    .koba-form-success {
1998        display: none;
1999        text-align: center;
2000        padding: 40px 20px;
2001    }
2002    .koba-form-success.active {
2003        display: block;
2004    }
2005    .koba-form-success .success-icon {
2006        width: 80px;
2007        height: 80px;
2008        background: #d4edda;
2009        border-radius: 50%;
2010        display: flex;
2011        align-items: center;
2012        justify-content: center;
2013        margin: 0 auto 20px;
2014    }
2015    .koba-form-success .success-icon svg {
2016        width: 40px;
2017        height: 40px;
2018        color: #28a745;
2019    }
2020    .koba-form-success h4 {
2021        color: #28a745;
2022        margin: 0 0 10px;
2023        font-size: 1.5em;
2024    }
2025    .koba-form-success p {
2026        color: #666;
2027        margin: 0;
2028    }
2029    .koba-recaptcha-badge {
2030        font-size: 11px;
2031        color: #999;
2032        text-align: center;
2033        margin-top: 15px;
2034    }
2035    .koba-recaptcha-badge a {
2036        color: #999;
2037    }
2038    /* Masquer le badge reCAPTCHA flottant de Google */
2039    .grecaptcha-badge {
2040        visibility: hidden !important;
2041    }
2042    @media (max-width: 600px) {
2043        .koba-form-inscription {
2044            padding: 20px;
2045        }
2046        .koba-form-row {
2047            flex-direction: column;
2048            gap: 0;
2049        }
2050        .koba-form-field {
2051            margin-bottom: 15px;
2052        }
2053    }
2054
2055    /* RGAA 11.10 / 11.11 - etat d'erreur (visible uniquement si erreur) */
2056    .koba-form-inscription .koba-field-error {
2057        display: none;
2058        color: #b3261e;
2059        font-size: 13px;
2060        line-height: 1.4;
2061        margin-top: 6px;
2062    }
2063    .koba-form-inscription .koba-field-error.show {
2064        display: block;
2065    }
2066    .koba-form-inscription [aria-invalid="true"] {
2067        border-color: #b3261e !important;
2068        box-shadow: 0 0 0 1px #b3261e;
2069    }
2070    </style>
vendor: 130 bytes, lines 2070-2072
2070
2071    
2072        <script type="text/plain" data-hob-service="recaptcha" data-hob-src="https://www.google.com/recaptcha/api.js?render=
20726LfhSU8sAAAAACsTuD32FUkXW7xy7vUgQZOR0a3-
vendor: 25 bytes, lines 2072-2074
2072"></script>
2073        
2074    
2074<div class="koba-form-inscription" id="koba-inscription-form">
2075        <div class="koba-form-message" id="koba-form-message" role="status" aria-live="polite" aria-atomic="true"></div>
2076        
2077        <div class="koba-form-loading" id="koba-form-loading">
2078            <div class="koba-spinner"></div>
2079            <p>Envoi en cours...</p>
2080        </div>
2081        
2082        <div class="koba-form-success" id="koba-form-success" role="status" aria-live="polite" tabindex="-1">
2083            <div class="success-icon">
2084                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
2085                    <polyline points="20 6 9 17 4 12"></polyline>
2086                </svg>
2087            </div>
2088            <h4>Inscription réussie !</h4>
2089            <p id="koba-success-text">Merci pour votre inscription.</p>
2090        </div>
2091        
2092        <form id="koba-citizen-form" style="display:block;">
2093            <input type="hidden" id="koba_inscription_nonce" name="koba_inscription_nonce" value="218059e309" /><input type="hidden" name="_wp_http_referer" value="/articles/eppeville/" />            <input type="hidden" name="recaptcha_token" id="recaptcha_token" value="">
2094            
2095            <!-- IDENTITÉ -->
2096            <div class="koba-form-section">
2097                <div class="koba-form-section-title">Identité</div>
2098                
2099                <div class="koba-form-row">
2100                    <div class="koba-form-field">
2101                        <label for="koba-ins-gender">Civilité</label>
2102                        <select id="koba-ins-gender" name="gender">
2103                            <option value="0">Monsieur</option>
2104                            <option value="1">Madame</option>
2105                        </select>
2106                    </div>
2107                    <div class="koba-form-field">
2108                        <label for="koba-ins-birthdate">Date de naissance</label>
2109                        <input type="date" id="koba-ins-birthdate" name="birthdate">
2110                    </div>
2111                </div>
2112
2113                <div class="koba-form-row">
2114                    <div class="koba-form-field">
2115                        <label for="koba-ins-lastname">Nom</label>
2116                        <input type="text" id="koba-ins-lastname" name="lastname" autocomplete="family-name" placeholder="Votre nom">
2117                    </div>
2118                    <div class="koba-form-field">
2119                        <label for="koba-ins-firstname">Prénom</label>
2120                        <input type="text" id="koba-ins-firstname" name="firstname" autocomplete="given-name" placeholder="Votre prénom">
2121                    </div>
2122                </div>
2123            </div>
2124            
2125            <!-- ADRESSE -->
2126            <div class="koba-form-section">
2127                <div class="koba-form-section-title">Adresse</div>
2128                
2129                <div class="koba-form-row">
2130                    <div class="koba-form-field full">
2131                        <label for="koba-ins-address">Adresse</label>
2132                        <textarea id="koba-ins-address" name="address" rows="2" autocomplete="street-address" placeholder="Numéro et nom de rue"></textarea>
2133                    </div>
2134                </div>
2135
2136                <div class="koba-form-row">
2137                    <div class="koba-form-field">
2138                        <label for="koba-ins-zipcode">Code postal</label>
2139                        <input type="text" id="koba-ins-zipcode" name="zipcode" autocomplete="postal-code" placeholder="38000">
2140                    </div>
2141                    <div class="koba-form-field">
2142                        <label for="koba-ins-city">Ville</label>
2143                        <input type="text" id="koba-ins-city" name="city" autocomplete="address-level2" placeholder="Votre ville">
2144                    </div>
2145                    <div class="koba-form-field">
2146                        <label for="koba-ins-country">Pays</label>
2147                        <input type="text" id="koba-ins-country" name="country" autocomplete="country-name" placeholder="France" value="France">
2148                    </div>
2149                </div>
2150            </div>
2151            
2152            <!-- CONTACT -->
2153            <div class="koba-form-section">
2154                <div class="koba-form-section-title">Contact</div>
2155                
2156                <div class="koba-form-row">
2157                    <div class="koba-form-field">
2158                        <label for="koba-ins-phone">Téléphone</label>
2159                        <input type="tel" id="koba-ins-phone" name="phone" autocomplete="tel" placeholder="06 00 00 00 00">
2160                    </div>
2161                    <div class="koba-form-field">
2162                        <label for="koba-ins-fax">Fax</label>
2163                        <input type="tel" id="koba-ins-fax" name="fax" placeholder="04 00 00 00 00">
2164                    </div>
2165                </div>
2166
2167                <div class="koba-form-row">
2168                    <div class="koba-form-field full">
2169                        <label for="koba-ins-email">Email <span class="req">*</span></label>
2170                        <input type="email" id="koba-ins-email" name="email" autocomplete="email" placeholder="[email protected]" required aria-required="true" aria-describedby="koba-ins-email-error">
2171                        <span class="koba-field-error" id="koba-ins-email-error"></span>
2172                    </div>
2173                </div>
2174            </div>
2175            
2176            <!-- PRÉFÉRENCES -->
2177            <div class="koba-form-section">
2178                <div class="koba-form-section-title">Préférences de communication</div>
2179                
2180                <label class="koba-form-checkbox">
2181                    <input type="checkbox" name="sms_newsletter" value="1">
2182                    <span>Je souhaite recevoir des informations par SMS</span>
2183                </label>
2184                
2185                <label class="koba-form-checkbox">
2186                    <input type="checkbox" name="email_newsletter" value="1" checked>
2187                    <span>Je souhaite recevoir la newsletter par email</span>
2188                </label>
2189                            </div>
2190            
2191            <div class="koba-form-submit">
2192                <button type="submit" id="koba-submit-btn">S&#039;inscrire</button>
2193            </div>
2194            
2195                        <div class="koba-recaptcha-badge">
2196                Ce site est protégé par reCAPTCHA. 
2197                <a href="https://policies.google.com/privacy" target="_blank">Politique de confidentialité</a> et 
2198                <a href="https://policies.google.com/terms" target="_blank">Conditions d'utilisation</a> de Google.
2199            </div>
2200                    </form>
2201    </div>
2202    
2203    
2203<script>
2204    (function() {
2205        var form = document.getElementById('koba-citizen-form');
2206        var message = document.getElementById('koba-form-message');
2207        var loading = document.getElementById('koba-form-loading');
2208        var success = document.getElementById('koba-form-success');
2209        var submitBtn = document.getElementById('koba-submit-btn');
2210        var recaptchaActive = true;
2211        var siteKey = '6LfhSU8sAAAAACsTuD32FUkXW7xy7vUgQZOR0a3-';
2212        
2213        if (!form) return;
2214
2215        // --- RGAA 11.10 / 11.11 : validation accessible ---
2216        function clearInsError(fieldId, errorId) {
2217            var f = document.getElementById(fieldId);
2218            var er = document.getElementById(errorId);
2219            if (er) { er.textContent = ''; er.classList.remove('show'); }
2220            if (f) { f.removeAttribute('aria-invalid'); }
2221        }
2222        ['koba-ins-email','koba-ins-rgpd'].forEach(function(id){
2223            var el = document.getElementById(id);
2224            if (el) {
2225                el.addEventListener('input', function(){ clearInsError(id, id + '-error'); });
2226                el.addEventListener('change', function(){ clearInsError(id, id + '-error'); });
2227            }
2228        });
2229
2230        form.addEventListener('submit', function(e) {
2231            e.preventDefault();
2232
2233            // Reset
2234            message.className = 'koba-form-message';
2235            message.style.display = 'none';
2236            clearInsError('koba-ins-email', 'koba-ins-email-error');
2237            clearInsError('koba-ins-rgpd', 'koba-ins-rgpd-error');
2238
2239            // Validation accessible (messages par champ + suggestions)
2240            var firstInvalid = null;
2241            function fail(focusEl, errorId, msg) {
2242                var er = document.getElementById(errorId);
2243                if (er) { er.textContent = msg; er.classList.add('show'); }
2244                if (focusEl) { focusEl.setAttribute('aria-invalid', 'true'); if (!firstInvalid) firstInvalid = focusEl; }
2245            }
2246
2247            var emailEl = document.getElementById('koba-ins-email');
2248            if (!emailEl.value.trim()) {
2249                fail(emailEl, 'koba-ins-email-error', 'Veuillez saisir votre adresse e-mail.');
2250            } else if (!emailEl.checkValidity()) {
2251                fail(emailEl, 'koba-ins-email-error', "L'adresse e-mail n'est pas valide. Exemple attendu : [email protected]");
2252            }
2253
2254            var rgpdEl = document.getElementById('koba-ins-rgpd');
2255            if (rgpdEl && rgpdEl.required && !rgpdEl.checked) {
2256                fail(rgpdEl, 'koba-ins-rgpd-error', 'Vous devez accepter de recevoir la newsletter pour valider votre inscription.');
2257            }
2258
2259            if (firstInvalid) {
2260                message.className = 'koba-form-message error';
2261                message.textContent = 'Le formulaire contient des erreurs. Veuillez corriger les champs signales.';
2262                message.style.display = 'block';
2263                firstInvalid.focus();
2264                return;
2265            }
2266
2267            // Disable button
2268            submitBtn.disabled = true;
2269            submitBtn.textContent = 'Vérification...';
2270            
2271            // reCAPTCHA v3
2272            if (recaptchaActive && siteKey && typeof grecaptcha !== 'undefined') {
2273                grecaptcha.ready(function() {
2274                    grecaptcha.execute(siteKey, {action: 'inscription'}).then(function(token) {
2275                        document.getElementById('recaptcha_token').value = token;
2276                        submitForm();
2277                    }).catch(function(error) {
2278                        console.error('reCAPTCHA error:', error);
2279                        submitForm(); // Soumettre quand même si erreur reCAPTCHA
2280                    });
2281                });
2282            } else {
2283                submitForm();
2284            }
2285        });
2286        
2287        function submitForm() {
2288            // Show loading
2289            form.style.display = 'none';
2290            loading.className = 'koba-form-loading active';
2291            
2292            // Prepare data
2293            var formData = new FormData(form);
2294            formData.append('action', 'koba_inscription_submit');
2295            
2296            // Send
2297            fetch('https://www.eppeville.fr/wp-admin/admin-ajax.php', {
2298                method: 'POST',
2299                body: formData
2300            })
2301            .then(function(response) { return response.json(); })
2302            .then(function(data) {
2303                loading.className = 'koba-form-loading';
2304                
2305                if (data.success) {
2306                    success.className = 'koba-form-success active';
2307                    if (data.data && data.data.message) {
2308                        document.getElementById('koba-success-text').textContent = data.data.message;
2309                    }
2310                    try { success.focus(); } catch(e) {}
2311                } else {
2312                    form.style.display = 'block';
2313                    submitBtn.disabled = false;
2314                    submitBtn.textContent = 'S\'inscrire';
2315                    message.className = 'koba-form-message error';
2316                    message.textContent = data.data || 'Une erreur est survenue.';
2317                    message.style.display = 'block';
2318                }
2319            })
2320            .catch(function(error) {
2321                loading.className = 'koba-form-loading';
2322                form.style.display = 'block';
2323                submitBtn.disabled = false;
2324                submitBtn.textContent = 'S\'inscrire';
2325                message.className = 'koba-form-message error';
2326                message.textContent = 'Erreur de connexion. Veuillez réessayer.';
2327                message.style.display = 'block';
2328            });
2329        }
2330    })();
2331    </script>
2331
2332                          </div>
2333
2334                      <div class="modal-footer">
2335                        <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">
2336                          exit
2337                        </button>
2338                      </div>
2339
2340                    </div>
2341                  </div>
2342                </div>
2343
2344<main id="main-content" tabindex="-1">
2345
2346
2347<section class="content-all">
2348<div class="container mt-5">
2349  <div class="row">
2350    <div class="col-md-12">
2351      <nav class="breadcrumbs"><a href="https://www.eppeville.fr/">Accueil</a> / <a href="https://www.eppeville.fr/category/articles/">Articles</a> / <span>Eppeville</span></nav>    </div>
2352        <div class="col-md-4 order-2 order-md-1 operating">
2353            <div class="operating-info">
2354                <h2><i class="far fa-dot-circle text-warning mr-2" aria-hidden="true"></i> Accueil</h2>
2355                <p>N’hésitez pas à nous contacter !</p>
2356                <p>105 rue du Maréchal Leclerc</p>
2357                <p>80400 EPPEVILLE</p>
2358            </div>            
2359            <div class="operating-status">
2360                <div class="koba-opening-status koba-style-badge koba-status-closed"><span class="koba-status-text">Actuellement fermé</span><span class="koba-status-icon"><i class="fa-regular fa-circle-xmark" aria-hidden="true"></i></span><span class="koba-status-next">Ouvre lundi à 08:00</span></div>            </div>
2361                        <div class="operating-times">
2362                <h2><i class="far fa-dot-circle text-warning mr-2" aria-hidden="true"></i> Horaires d'ouverture</h2>
2363                <table class="koba-horaires-table"><tbody><tr><td class="koba-jour">Lundi</td><td>08:00 à 12:00, 13:30 à 17:00</td></tr><tr><td class="koba-jour">Mardi</td><td>08:00 à 12:00, 13:30 à 17:00</td></tr><tr><td class="koba-jour">Mercredi</td><td>08:00 à 12:00, 13:30 à 17:00</td></tr><tr><td class="koba-jour">Jeudi</td><td>08:00 à 12:00, 13:30 à 17:00</td></tr><tr class="koba-today"><td class="koba-jour">Vendredi <span class="koba-badge-today">Aujourd'hui</span></td><td>08:00 à 12:00, 13:30 à 17:00</td></tr><tr><td class="koba-jour">Samedi</td><td class="koba-closed">Fermé</td></tr><tr><td class="koba-jour">Dimanche</td><td class="koba-closed">Fermé</td></tr></tbody></table>            </div>  
2364            <div class="operating-contact">  
2365                <h2><i class="far fa-dot-circle text-warning mr-2" aria-hidden="true"></i> Contact</h2>
2366                <p><b>Téléphone</b></p> 
2367                <p><a href="tel:0323814888">0323814888</a></p>
2368                <p><b>Email</b></p>
2369                <p><a href="mailto:[email protected]">[email protected]</a></p>  
2370                                <p><b>Fax</b></p>
2371                <p><a href="tel:0323814889">0323814889</a></p>
2372                    
2373            </div>      
2374</div>
2375        <div class="col-md-8 order-1 order-md-2">
2376            <div class="content-tools">
2377                <button type="button" onclick="changeFontSize(-1)">A−</button>
2378                <button type="button" onclick="changeFontSize(1)">A+</button>
2379                <button type="button" onclick="printContent()"><i class="fas fa-print"></i></button>
2380            </div>
2381          <div id="post-title-content">
2382            <h1>Eppeville</h1>
2383          </div>
2384          <div id="post-content">
2385              
2386<p class="wp-block-paragraph"><strong>Eppeville est une commune du département de la Somme d&rsquo;un peu moins de 1 800 habitants, située au cœur de la région Picardie, à la jonction des 3 départements Aisne, Oise et Somme. Elle fait partie de la Communauté de Communes de l&rsquo;Est de la Somme.</strong></p>
2387
2388
2389
2390<p class="wp-block-paragraph"><strong>         Riche de son industrie sucrière avec la présence de la Société Saint Louis Sucre, elle est aussi proche de l&rsquo;industrie pharmaceutique avec Evonik Rexim à Ham et de l&rsquo;industrie agroalimentaire avec Syral et Ajinomoto à Nesle entre autres.</strong></p>
2391
2392
2393
2394<p class="wp-block-paragraph"><strong>         Eppeville comprend une zone d&rsquo;activité abritant diverses entreprises. Elle est également dotée de commerces comme boulangerie, bar tabac journaux, fleuriste, coiffeur, ainsi que des artisans en divers domaines : plombier chauffagiste, électricie
2394n, maçon&#8230;</strong></p>
2395
2396
2397
2398<p class="wp-block-paragraph"><strong>         De nombreuses associations animent la commune, aussi bien dans le domaine sportif que culturel.</strong></p>
2399
2400
2401
2402<p class="wp-block-paragraph"><strong>         Il est vrai que la commune dispose d&rsquo;un stade d&rsquo;athlétisme, de boulodromes, d&rsquo;un gymnase omnisport, d&rsquo;un city-stade, d&rsquo;une salle polyvalente.</strong></p>
2403
2404
2405
2406<p class="wp-block-paragraph"><strong>         Eppeville est regroupée en R.P.I. (Regroupement Pédagogique Intercommunal) avec les communes de Brouchy et Muille-Villette, elle dispose d&rsquo;une école primaire et d&rsquo;un restaurant scolaire. Des bus assurent le ramassage scolaire. Les enfants de maternelle sont accueillis à l&rsquo;école de Muille-Villette.</strong></p>
2407
2408
2409
2410<p class="wp-block-paragraph"><strong>         Pour les amoureux de la nature, vous pourrez vous promener le long de quelques chemins de randonnée qui pourront vous mener à l&rsquo;étang communal ou au site légendaire de la « Pierre qui Pousse ».</strong></p>
2411
2412
2413
2414<p class="wp-block-paragraph"><strong>         Soyez donc les bienvenus dans notre commune où se côtoient ruralité et vie urbaine.</strong></p>
2415
2416
2417          </div>
2418        <div class="row">
2419      <div class="col-md-6">
2420       
2421        <div class="share-buttons">
2422            <a href="https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fwww.eppeville.fr%2Farticles%2Feppeville%2F"
2423               target="_blank" class="share-fb" rel="noopener" aria-label="Partager sur Facebook">
2424                <i class="fab fa-facebook-f"></i>
2425            </a>
2426
2427            <a href="https://twitter.com/intent/tweet?url=https%3A%2F%2Fwww.eppeville.fr%2Farticles%2Feppeville%2F"
2428               target="_blank" class="share-x" rel="noopener" aria-label="Partager sur X">
2429                <i class="fab fa-twitter"></i>
2430            </a>
2431
2432            <a href="mailto:?body=https%3A%2F%2Fwww.eppeville.fr%2Farticles%2Feppeville%2F" class="share-mail"
2433               aria-label="Envoyer le lien par e-mail">
2434                <i class="fas fa-envelope"></i>
2435            </a>
2436        </div>
2437        </div>
2438      <div class="col-md-6 share-top-all">
2439        <a href="#" class="share-top" onclick="scrollToTop(event)">
2440            Haut de page <i class="fas fa-arrow-up"></i> 
2441        </a>
2442        </div>
2443        </div>
2444
2445   </div>
2446   </div> 
2447   
2448</div> 
2449</div> 
2450
2451 </section>
2452<script>
2453document.addEventListener('DOMContentLoaded', function () {
2454
2455    const MIN_FONT = 14;
2456    const MAX_FONT = 26;
2457    let currentFontSize = MIN_FONT;
2458
2459    const content = document.getElementById('post-content');
2460    if (!content) return;
2461
2462    content.style.fontSize = currentFontSize + 'px';
2463
2464    // Mémorise les tailles de police fixées manuellement par l'admin dans Gutenberg
2465    const customSizedEls = Array.from(content.querySelectorAll('[style*="font-size"]'))
2466        .map(el => {
2467            const px = parseFloat(el.style.fontSize);
2468            return isNaN(px) ? null : { el, baseSize: px };
2469        })
2470        .filter(item => item !== null);
2471
2472    function applyCustomScaling() {
2473        const ratio = currentFontSize / MIN_FONT;
2474        customSizedEls.forEach(({ el, baseSize }) => {
2475            el.style.fontSize = (baseSize * ratio) + 'px';
2476        });
2477    }
2478
2479    window.changeFontSize = function(step) {
2480        const newSize = currentFontSize + step;
2481
2482        if (newSize >= MIN_FONT && newSize <= MAX_FONT) {
2483            currentFontSize = newSize;
2484            content.style.fontSize = currentFontSize + 'px';
2485            applyCustomScaling();
2486        }
2487    }
2488
2489    window.printContent = function() {
2490        const printWindow = window.open('', '', 'width=800,height=600');
2491
2492        printWindow.document.write(`
2493            <html>
2494                <head>
2495                    <title>Imprimer</title>
2496                    <style>
2497                        body {
2498                            font-size: ${currentFontSize}px;
2499                        }
2500                    </style>
2501                </head>
2502                <body>
2503                    ${content.innerHTML}
2504                </body>
2505            </html>
2506        `);
2507
2508        printWindow.document.close();
2509        printWindow.focus();
2510        printWindow.print();
2511        printWindow.close();
2512    }
2513
2514});
2515
2516function scrollToTop(e) {
2517    e.preventDefault();
2518    window.scrollTo({
2519        top: 0,
2520        behavior: 'smooth'
2521    });
2522}
2523document.addEventListener('DOMContentLoaded', function () {
2524
2525    document.querySelectorAll('.wp-block-file a').forEach(originalLink => {
2526
2527        const downloadLink = originalLink.cloneNode(true);
2528
2529        downloadLink.textContent = '';
2530
2531        downloadLink.innerHTML = '<i class="fas fa-download"></i>';
2532
2533        downloadLink.classList.add('download-icon-btn');
2534
2535        originalLink.parentNode.appendChild(downloadLink);
2536    });
2537
2538});
2539document.addEventListener('DOMContentLoaded', function () {
2540
2541    document.querySelectorAll('.wp-block-button a').forEach(originalLink => {
2542
2543        if (originalLink.parentNode.querySelector('.icon-link-btn')) return;
2544
2545        const iconLink = originalLink.cloneNode(true);
2546
2547        iconLink.textContent = '';
2548
2549        iconLink.innerHTML = '<i class="fas fa-link"></i>';
2550
2551        iconLink.classList.add('icon-link-btn');
2552
2553        iconLink.setAttribute('aria-label', 'Otwórz link');
2554
2555        originalLink.after(iconLink);
2556    });
2557
2558});
2559</script>
2559
2560
2561
2562</main>
2563
2564<footer class="" role="contentinfo">
2565  <div class="container px-3 pt-3 px-md-5 pt-md-5 pb-5">
2566    <div class="row mb-3 mb-md-4">
2567
2568      <!-- LOGO -->
2569      <div class="col-4 col-md-3 mb-3 mb-md-0">
2570        <a href="https://www.eppeville.fr/" class="d-inline-flex align-items-center text-light text-decoration-none">
2571          <img src="https://www.eppeville.fr/wp-content/uploads/sites/24/2026/02/logo-footer-1770206929.png" alt="COMMUNE D&#039;EPPEVILLE - Accueil" class="footer-logo">
2572        </a>
2573      </div>
2574      <div class="col-md-8">
2575        <div class="koba-social-links"><a href="https://www.facebook.com/profile.php?id=100008320741673" target="_blank" rel="noopener" aria-label="Facebook"><svg width="24" height="24" viewBox="0 0 24 24" fill="currentColor"><path d="M24 12.073c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.99 4.388 10.954 10.125 11.854v-8.385H7.078v-3.47h3.047V9.43c0-3.007 1.792-4.669 4.533-4.669 1.312 0 2.686.235 2.686.235v2.953H15.83c-1.491 0-1.956.925-1.956 1.874v2.25h3.328l-.532 3.47h-2.796v8.385C19.612 23.027 24 18.062 24 12.073z"/></svg></a></div>      </div>
2576      <div class="col-12 col-md-3 mb-3">
2577        <div class="footer-address">
2578          <p></p>
2579          <p>
2580              105 rue du Maréchal Leclerc<br>
2581              80400 EPPEVILLE<br>
2582              Tél : <a href="tel:0323814888">0323814888</a>          </p>
2583        </div>
2584      </div>
2585
2586      <div class="col-12 col-md-9">
2587        <ul id="menu-menu-principal-1" class="footer-menu"><li><a href="https://www.eppeville.fr/articles/eppeville/">Eppeville</a></li>
2588<li><a href="#">Vie Municipale</a>
2589<ul>
2590<li><a href="https://www.eppeville.fr/articles/elus-et-commissions/">Elus et Commissions</a></li>
2591</ul>
2592</li>
2593<li><a href="#">Infos Pratiques</a>
2594<ul>
2595<li><a href="https://www.eppeville.fr/articles/secretariat-de-mairie/">Secretariat de Mairie</a></li>
2596<li><a href="https://www.eppeville.fr/articles/urbanisme-6b3d252e-c7f7-4cbb-bdc3-2bd40e6ec560/">Urbanisme</a></li>
2597<li><a href="https://www.eppeville.fr/articles/ccas/">CCAS</a></li>
2598<li><a href="https://www.eppeville.fr/articles/salle-polyvalente-4ef22683-d6dc-47e6-8890-2a8bb157707a/">Location Salle Polyvalente</a></li>
2599<li><a href="https://www.eppeville.fr/articles/cimetiere-des-monthieux/">Cimetière des Monthieux</a></li>
2600<li><a href="https://www.eppeville.fr/articles/mediatheque-intercommunale-de-l-est-de-la-somme/">Médiathèque intercommunale de l&#039;Est de la Somme</a></li>
2601</ul>
2602</li>
2603<li><a href="#">Jeunesse</a>
2604<ul>
2605<li><a href="https://www.eppeville.fr/articles/ecole-maternelle/">Ecole Maternelle</a></li>
2606<li><a href="https://www.eppeville.fr/articles/ecole-elementaire/">Ecole Elémentaire</a></li>
2607<li><a href="https://www.eppeville.fr/articles/accueil-de-loisirs/">Centre de Loisirs</a></li>
2608<li><a href="https://www.eppeville.fr/articles/restaurant-scolaire/">Restaurant scolaire</a></li>
2609<li><a href="https://www.eppeville.fr/articles/garderie-417e31ac-af66-475b-9421-d468a454edf7/">Garderie</a></li>
2610</ul>
2611</li>
2612<li><a href="#">Environnement</a>
2613<ul>
2614<li><a href="https://www.eppeville.fr/articles/maisons-fleuries/">Fleurissement</a></li>
2615<li><a href="https://www.eppeville.fr/articles/dechetterie/">Déchetterie</a></li>
2616<li><a href="https://www.eppeville.fr/articles/dechets-interdits-dans-la-poubelle/">Déchets interdits dans la poubelle</a></li>
2617<li><a href="#">Pêche</a>
2618<ul>
2619<li><a href="https://www.eppeville.fr/articles/peche-a-l-etang/">Etang</a></li>
2620<li><a href="https://www.eppeville.fr/articles/peche-dans-la-somme-63a725c1-e132-46da-9215-fec7edd53e18/">Somme</a></li>
2621</ul>
2622</li>
2623<li><a href="https://www.eppeville.fr/articles/pierre-qui-pousse/">Pierre qui pousse</a></li>
2624</ul>
2625</li>
2626<li><a href="#">Associations</a>
2627<ul>
2628<li><a href="https://www.eppeville.fr/articles/liste-associations-7aa83d9d-5c33-437e-ab53-2a679cf06eec/">Liste</a></li>
2629<li><a href="https://www.eppeville.fr/articles/association-aides-et-loisirs-aux-personnes-agees/">Association Aides et Loisirs aux Personnes Agées</a></li>
2630<li><a href="https://www.eppeville.fr/articles/secours-catholique/">Secours Catholique</a></li>
2631</ul>
2632</li>
2633</ul>      </div>
2634    </div>
2635  </div>
2636</footer>
2637<div class="footer-bottom">
2638    <div class="container-fluid">
2639      <div class="row">
2640        <div class="col-12 col-md-6 mb-3 mb-md-0 footer-bottom-left">
2641              <ul class="koba-menu-list">
2642                                                  <li class="">
2643                      <a href="https://www.eppeville.fr/mentions-legales/">Mentions légales</a>
2644                  </li>
2645                  <li class="">
2646                      <a href="https://www.eppeville.fr/accessibilite/">Accessibilité</a>
2647                  </li>
2648                  <li class="">
2649                      <a href="https://www.eppeville.fr/plan-du-site/">Plan du site</a>
2650                  </li>
2651                  <li class="">
2652                      <a href="https://www.eppeville.fr/contact/">NOUS CONTACTER</a>
2653                  </li>
2654                  <li class="">
2655                      <span>© 2026 </span>
2656                  </li>
2657              </ul>   
2658        </div>
2659        <div class="col-12 col-md-6 mb-3 mb-md-0 justify-content-end footer-bottom-right">
2660          <div class="text-white" bis_skin_checked="1">
2661            <p><a href="https://www.site-internet-mairie.com/" target="_blank" rel="noopener" title="Création site internet mairie partenaire de Koba Civique pour la numérisation des mairies et collectivités territoriales. Un service du groupe KobaciviqueByHob, experts Wordpress, Joomla et PrestaShop. Numéro un des sites internet pour les communes et villes.">Création Site Mairie</a> par <a href="https://www.koba-civique.com/" target="_blank" rel="noopener" title="Création site internet mairie. Koba civique solution numéro un du marché pour les sites internet des communes et villes en France">KobaciviqueByHob</a></p>
2662          </div>
2663        </div>
2664      </div>
2665    </div>
2666</div>
2667    
2667<script>
2668    if ('serviceWorker' in navigator) {
2669        navigator.serviceWorker.register('https://www.eppeville.fr/koba-sw.js', { scope: '/' })
2670            .catch(function(err) { console.log('SW error:', err); });
2671    }
2672    if (window.matchMedia('(display-mode: standalone)').matches || window.navigator.standalone === true) {
2673        document.cookie = 'koba_pwa=1; path=/; max-age=2592000; SameSite=Lax';
2674    }
2675    </script>
2675
2676    
2676<script type="speculationrules">
2677{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/*"},{"not":{"href_matches":["/wp-*.php","/wp-admin/*","/wp-content/uploads/sites/24/*","/wp-content/*","/wp-content/plugins/*","/wp-content/themes/hob-koba-civique/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]}
2678</script>
2678
2679    
2679<script>
2680    (function() {
2681        var searchInput = document.getElementById('koba-search-input');
2682        var searchOverlay = document.getElementById('koba-search-overlay');
2683        var searchClose = document.getElementById('koba-search-close');
2684        var searchTimeout = null;
2685        var ajaxurl = 'https://www.eppeville.fr/wp-admin/admin-ajax.php';
2686        
2687        if (!searchInput || !searchOverlay) return;
2688        
2689        // Saisie dans le champ
2690        searchInput.addEventListener('input', function() {
2691            var query = this.value.trim();
2692            
2693            if (searchTimeout) clearTimeout(searchTimeout);
2694            
2695            // Masquer si vide
2696            if (query.length < 1) {
2697                searchOverlay.classList.remove('active');
2698                searchOverlay.innerHTML = '';
2699                return;
2700            }
2701            
2702            // Afficher overlay avec loading
2703            searchOverlay.classList.add('active');
2704            searchOverlay.innerHTML = '<div class="koba-search-overlay-inner">' +
2705                '<div class="koba-search-loading">' +
2706                '<div class="koba-search-spinner"></div>' +
2707                '<p>Recherche...</p></div></div>';
2708            
2709            // Recherche après court délai
2710            searchTimeout = setTimeout(function() {
2711                performSearch(query);
2712            }, 250);
2713        });
2714        
2715        // Fermer l'overlay
2716        if (searchClose) {
2717            searchClose.addEventListener('click', function() {
2718                searchOverlay.classList.remove('active');
2719                searchOverlay.innerHTML = '';
2720            });
2721        }
2722        
2723        // Fermer avec Escape
2724        document.addEventListener('keydown', function(e) {
2725            if (e.key === 'Escape') {
2726                searchOverlay.classList.remove('active');
2727                searchOverlay.innerHTML = '';
2728            }
2729        });
2730        
2731        // Recherche AJAX
2732        function performSearch(query) {
2733            var formData = new FormData();
2734            formData.append('action', 'koba_live_search');
2735            formData.append('search', query);
2736            
2737            fetch(ajaxurl, {
2738                method: 'POST',
2739                body: formData
2740            })
2741            .then(function(r) { return r.json(); })
2742            .then(function(data) {
2743                if (data.success) {
2744                    renderResults(data.data.results, data.data.search);
2745                }
2746            })
2747            .catch(function() {
2748                searchOverlay.innerHTML = '<div class="koba-search-overlay-inner">' +
2749                    '<div class="koba-search-no-results"><p>Erreur de connexion</p></div></div>';
2750            });
2751        }
2752        
2753        // Afficher résultats
2754        function renderResults(results, searchTerm) {
2755            if (!results || results.length === 0) {
2756                searchOverlay.innerHTML = '<div class="koba-search-overlay-inner">' +
2757                    '<div class="koba-search-no-results">' +
2758                    '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5">' +
2759                    '<circle cx="11" cy="11" r="8"/><path d="M21 21l-4.35-4.35"/>' +
2760                    '</svg>' +
2761                    '<p>Aucun résultat pour "<strong>' + esc(searchTerm) + '</strong>"</p>' +
2762                    '</div></div>';
2763                return;
2764            }
2765            
2766            var html = '<div class="koba-search-overlay-inner">';
2767            
2768            results.forEach(function(cat) {
2769                html += '<div class="koba-search-category">';
2770                html += '<h3 class="koba-search-category-title">' + esc(cat.label) + '</h3>';
2771                html += '<ul class="koba-search-list">';
2772                
2773                cat.items.forEach(function(item) {
2774                    var title = highlight(item.title, searchTerm);
2775                    var date = (cat.type === 'evenement') ? '<span class="koba-search-date">- ' + item.date + '</span>' : '';
2776                    html += '<li class="koba-search-item">';
2777                    html += '<a href="' + item.url + '" class="koba-search-link">' + title + date + '</a>';
2778                    html += '</li>';
2779                });
2780                
2781                html += '</ul></div>';
2782            });
2783            
2784            html += '</div>';
2785            searchOverlay.innerHTML = html;
2786        }
2787        
2788        function highlight(text, search) {
2789            var regex = new RegExp('(' + search.replace(/[.*+?^${}()|[\]\\]/g, '\\$&') + ')', 'gi');
2790            return esc(text).replace(regex, '<mark>$1</mark>');
2791        }
2792        
2793        function esc(text) {
2794            var d = document.createElement('div');
2795            d.textContent = text;
2796            return d.innerHTML;
2797        }
2798    })();
2799    </script>
2799
2800        
2800<script>
2801    document.addEventListener('DOMContentLoaded', function() {
2802        const hamburger = document.getElementById('koba-hamburger');
2803        const mobileMenu = document.getElementById('koba-mobile-menu');
2804        const searchToggle = document.getElementById('koba-search-toggle');
2805        const searchBar = document.getElementById('koba-search-bar');
2806        const searchClose = document.getElementById('koba-search-close');
2807        const searchInput = document.getElementById('koba-search-input');
2808        const overlay = document.getElementById('koba-overlay');
2809        const navItems = document.querySelectorAll('.koba-nav-item.has-megamenu');
2810        const mobileToggles = document.querySelectorAll('.koba-mobile-toggle');
2811        
2812        function closeAllMenus() {
2813            navItems.forEach(item => item.classList.remove('active'));
2814            document.querySelectorAll('.koba-megamenu-item.active').forEach(item => {
2815                item.classList.remove('active');
2816            });
2817            overlay.classList.remove('active');
2818        }
2819        
2820        if (hamburger) {
2821            hamburger.addEventListener('click', function() {
2822                this.classList.toggle('active');
2823                mobileMenu.classList.toggle('active');
2824                document.body.style.overflow = mobileMenu.classList.contains('active') ? 'hidden' : '';
2825            });
2826        }
2827        
2828        if (searchToggle) {
2829            searchToggle.addEventListener('click', function() {
2830                closeAllMenus();
2831                searchBar.classList.add('active');
2832                searchToggle.classList.add('hidden');
2833                setTimeout(() => searchInput.focus(), 400);
2834            });
2835        }
2836        
2837        if (searchClose) {
2838            searchClose.addEventListener('click', function() {
2839                searchBar.classList.remove('active');
2840                searchToggle.classList.remove('hidden');
2841            });
2842        }
2843        
2844        navItems.forEach(item => {
2845            const link = item.querySelector('.koba-nav-link');
2846            
2847            link.addEventListener('click', function(e) {
2848                if (window.innerWidth > 992) {
2849                    e.preventDefault();
2850                    const isActive = item.classList.contains('active');
2851                    closeAllMenus();
2852                    if (!isActive) {
2853                        item.classList.add('active');
2854                        overlay.classList.add('active');
2855                    }
2856                }
2857            });
2858        });
2859        
2860        document.querySelectorAll('.koba-megamenu-item.has-submenu').forEach(item => {
2861            const link = item.querySelector('.koba-megamenu-link');
2862            
2863            link.addEventListener('click', function(e) {
2864                e.preventDefault();
2865                const parent = item.closest('.koba-megamenu-col3');
2866                parent.querySelectorAll('.koba-megamenu-item.active').forEach(other => {
2867                    if (other !== item) {
2868                        other.classList.remove('active');
2869                    }
2870                });
2871                item.classList.toggle('active');
2872            });
2873        });
2874        
2875        mobileToggles.forEach(toggle => {
2876            toggle.addEventListener('click', function() {
2877                this.classList.toggle('active');
2878                const submenu = this.closest('.koba-mobile-item').querySelector(':scope > .koba-mobile-submenu');
2879                if (submenu) {
2880                    submenu.classList.toggle('active');
2881                }
2882            });
2883        });
2884        
2885        if (overlay) {
2886            overlay.addEventListener('click', function() {
2887                closeAllMenus();
2888                searchBar.classList.remove('active');
2889                searchToggle.classList.remove('hidden');
2890            });
2891        }
2892        
2893        document.addEventListener('click', function(e) {
2894            if (window.innerWidth > 992) {
2895                const isInNav = e.target.closest('.koba-nav-item.has-megamenu');
2896                const isInMegamenu = e.target.closest('.koba-megamenu');
2897                
2898                if (!isInNav && !isInMegamenu) {
2899                    closeAllMenus();
2900                }
2901            }
2902        });
2903        
2904        document.addEventListener('keydown', function(e) {
2905            if (e.key === 'Escape') {
2906                closeAllMenus();
2907                searchBar.classList.remove('active');
2908                searchToggle.classList.remove('hidden');
2909                mobileMenu.classList.remove('active');
2910                hamburger.classList.remove('active');
2911                document.body.style.overflow = '';
2912            }
2913        });
2914        
2915        window.addEventListener('resize', function() {
2916            if (window.innerWidth > 992) {
2917                mobileMenu.classList.remove('active');
2918                hamburger.classList.remove('active');
2919                document.body.style.overflow = '';
2920            }
2921        });
2922    });
2923    </script>
2923
2924        <div id="koba-lightbox" style="display:none;position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.9);z-index:999999;cursor:pointer;justify-content:center;align-items:center;">
2925        <button id="koba-lightbox-close" style="position:absolute;top:20px;right:25px;background:none;border:none;color:#fff;font-size:40px;cursor:pointer;z-index:2;line-height:1;padding:5px 10px;" aria-label="Fermer">&times;</button>
2926        <button id="koba-lightbox-prev" style="position:absolute;left:15px;top:50%;transform:translateY(-50%);background:rgba(255,255,255,0.15);border:none;color:#fff;font-size:36px;cursor:pointer;z-index:2;padding:10px 16px;border-radius:50%;line-height:1;display:none;" aria-label="Précédent">&#8249;</button>
2927        <button id="koba-lightbox-next" style="position:absolute;right:15px;top:50%;transform:translateY(-50%);background:rgba(255,255,255,0.15);border:none;color:#fff;font-size:36px;cursor:pointer;z-index:2;padding:10px 16px;border-radius:50%;line-height:1;display:none;" aria-label="Suivant">&#8250;</button>
2928        <img id="koba-lightbox-img" src="" alt="" style="max-width:90%;max-height:90%;object-fit:contain;border-radius:4px;cursor:default;">
2929    </div>
2930    
2930<script>
2931    (function(){
2932        var lightbox = document.getElementById('koba-lightbox');
2933        var lbImg = document.getElementById('koba-lightbox-img');
2934        var btnPrev = document.getElementById('koba-lightbox-prev');
2935        var btnNext = document.getElementById('koba-lightbox-next');
2936        var images = [];
2937        var currentIndex = 0;
2938
2939        var container = document.getElementById('post-content');
2940        if (!container) return;
2941
2942        var imgs = container.querySelectorAll('img');
2943        imgs.forEach(function(img, i) {
2944    var src = img.src;
2945    var parent = img.closest('a');
2946
2947    // Si l'img est dans un <a> qui ne pointe PAS vers une image → lien externe, on skip
2948    if (parent && !/\.(jpg|jpeg|png|gif|webp|svg)(\?|$)/i.test(parent.href)) {
2949        return;
2950    }
2951
2952    if (parent && /\.(jpg|jpeg|png|gif|webp|svg)(\?|$)/i.test(parent.href)) {
2953        src = parent.href;
2954    }
2955
2956    images.push(src);
2957
2958    img.style.cursor = 'pointer';
2959    img.addEventListener('click', function(e) {
2960        e.preventDefault();
2961        e.stopPropagation();
2962        currentIndex = images.indexOf(src);
2963        openLightbox(src);
2964    });
2965
2966    if (parent) {
2967        parent.addEventListener('click', function(e) {
2968            if (e.target === img || img.contains(e.target)) {
2969                e.preventDefault();
2970            }
2971        });
2972    }
2973});
2974
2975        if (images.length === 0) return;
2976
2977        function openLightbox(src) {
2978            lbImg.src = src;
2979            lightbox.style.display = 'flex';
2980            document.body.style.overflow = 'hidden';
2981            if (images.length > 1) {
2982                btnPrev.style.display = 'block';
2983                btnNext.style.display = 'block';
2984            }
2985        }
2986
2987        function closeLightbox() {
2988            lightbox.style.display = 'none';
2989            lbImg.src = '';
2990            document.body.style.overflow = '';
2991        }
2992
2993        function navigate(dir) {
2994            currentIndex = (currentIndex + dir + images.length) % images.length;
2995            lbImg.src = images[currentIndex];
2996        }
2997
2998        lightbox.addEventListener('click', function(e) {
2999            if (e.target === lightbox) closeLightbox();
3000        });
3001        document.getElementById('koba-lightbox-close').addEventListener('click', closeLightbox);
3002
3003        btnPrev.addEventListener('click', function(e) { e.stopPropagation(); navigate(-1); });
3004        btnNext.addEventListener('click', function(e) { e.stopPropagation(); navigate(1); });
3005
3006        document.addEventListener('keydown', function(e) {
3007            if (lightbox.style.display !== 'flex') return;
3008            if (e.key === 'Escape') closeLightbox();
3009            if (e.key === 'ArrowLeft') navigate(-1);
3010            if (e.key === 'ArrowRight') navigate(1);
3011        });
3012
3013        lbImg.addEventListener('click', function(e) { e.stopPropagation(); });
3014    })();
3015    </script>
3015
3016    <div id="hob-rgpd-banner" class="hob-rgpd-banner" role="region"
3017	aria-label="Consentement aux cookies"
3018	style="background-color:#222222;color:#ffffff;bottom:0;">
3019	<div class="hob-rgpd-message">
3020		Notre site utilise des cookies pour réaliser des statistiques de visites, partager des contenus sur les réseaux sociaux et améliorer votre expérience. En refusant les cookies, certains services seront amenés à ne pas fonctionner correctement. Nous conservons votre choix pendant 30 jours. Vous pouvez changer d&#039;avis en cliquant sur le bouton &#039;Cookies&#039; en bas à gauche de chaque page de notre site.			</div>
3021	<div class="hob-rgpd-buttons">
3022		<button type="button" class="hob-btn hob-accept-all" style="background-color:#00aaff;color:#ffffff;">
3023			Tout accepter		</button>
3024		<button type="button" class="hob-btn hob-reject-all" style="background-color:#00aaff;color:#ffffff;">
3025			Tout refuser		</button>
3026		<button type="button" class="hob-btn hob-manage" style="background-color:#00aaff;color:#ffffff;">
3027			Gérer mes préférences		</button>
3028	</div>
3029</div>
3030
3031<div id="hob-rgpd-popup" class="hob-rgpd-popup" role="dialog" aria-modal="true"
3032	aria-labelledby="hob-rgpd-popup-title"
3033	style="--hob-accent:#00aaff;--hob-accent-text:#ffffff;"
3034	hidden>
3035	<div class="hob-rgpd-popup-content">
3036		<button type="button" class="hob-rgpd-popup-close" aria-label="Fermer">&times;</button>
3037		<h2 id="hob-rgpd-popup-title">Gérer mes préférences</h2>
3038
3039					<div class="hob-rgpd-tabs" role="tablist">
3040									<button type="button" class="hob-rgpd-tab is-active"
3041						role="tab"
3042						aria-selected="true"
3043						data-tab="hob-rgpd-panel-1">
3044						Contenus interactifs					</button>
3045							</div>
3046
3047							<div id="hob-rgpd-panel-1"
3048					class="hob-rgpd-panel is-active"
3049					role="tabpanel">
3050																							<div class="hob-rgpd-service">
3051																	<div class="hob-rgpd-service-icon">
3052										<img src="https://www.eppeville.fr/wp-content/plugins/hob-rgpd/assets/img/services/recaptcha.svg"
3053											alt="Google reCAPTCHA" />
3054									</div>
3055																<div class="hob-rgpd-service-info">
3056									<div class="hob-rgpd-service-title">Google reCAPTCHA</div>
3057									<div class="hob-rgpd-service-desc">Anti-spam Google reCAPTCHA.</div>
3058								</div>
3059								<div class="hob-rgpd-service-toggle">
3060									<label class="hob-rgpd-switch">
3061										<input type="checkbox" class="hob-rgpd-toggle"
3062											data-service-key="recaptcha" />
3063										<span class="hob-rgpd-slider"></span>
3064									</label>
3065								</div>
3066							</div>
3067															</div>
3068					
3069		<div class="hob-rgpd-popup-actions">
3070			<button type="button" class="hob-btn hob-accept-all" style="background-color:#00aaff;color:#ffffff;">
3071				Tout accepter			</button>
3072			<button type="button" class="hob-btn hob-reject-all" style="background-color:#00aaff;color:#ffffff;">
3073				Tout refuser			</button>
3074			<button type="button" class="hob-btn hob-save" style="background-color:#00aaff;color:#ffffff;">
3075				Enregistrer mes préférences			</button>
3076		</div>
3077
3078					<div class="hob-rgpd-credit">
3079				&copy; <a href="https://www.hob-france.com/" target="_blank" rel="noopener">HOB France Services</a>
3080			</div>
3081			</div>
3082</div>
3083
3084<button type="button" id="hob-rgpd-settings-icon" class="hob-rgpd-settings-icon"
3085	title="Cookies"
3086	aria-label="Cookies" hidden>
3087	<span class="hob-rgpd-cookie-emoji" aria-hidden="true">🍪</span>
3088	<span class="hob-rgpd-cookie-label">Cookies</span>
3089</button>
3090<script id="moment-js" src="https://www.eppeville.fr/wp-includes/js/dist/vendor/moment.min.js?ver=2.30.1"></script>
vendor: 1 bytes, line 3090
3090
3091<script id="moment-js-after">
3092moment.updateLocale( 'fr_FR', {"months":["janvier","f\u00e9vrier","mars","avril","mai","juin","juillet","ao\u00fbt","septembre","octobre","novembre","d\u00e9cembre"],"monthsShort":["Jan","F\u00e9v","Mar","Avr","Mai","Juin","Juil","Ao\u00fbt","Sep","Oct","Nov","D\u00e9c"],"weekdays":["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"],"weekdaysShort":["dim","lun","mar","mer","jeu","ven","sam"],"week":{"dow":1},"longDateFormat":{"LT":"G\\hi","LTS":null,"L":null,"LL":"j F Y","LLL":"d F Y G\\hi","LLLL":null}} );
3093//# sourceURL=moment-js-after
3094</script>
vendor: 1 bytes, line 3094
3094
3095<script id="moment-fr-js" src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.4/locale/fr.js"></script>
vendor: 1 bytes, line 3095
3095
3096<script id="fullcalendar-js" src="https://cdnjs.cloudflare.com/ajax/libs/fullcalendar/3.10.2/fullcalendar.min.js"></script>
vendor: 1 bytes, line 3096
3096
3097<script id="fullcalendar-fr-js" src="https://cdnjs.cloudflare.com/ajax/libs/fullcalendar/3.10.2/locale/fr.js"></script>
vendor: 1 bytes, line 3097
3097
3098<script id="hcb-frontend-js-extra">
3099var hcb_front = {"ajax_url":"https://www.eppeville.fr/wp-admin/admin-ajax.php","nonce":"070af11d55","primary_color":"#2271b1","user":[],"strings":{"loading":"Chargement...","success":"Votre demande de r\u00e9servation a \u00e9t\u00e9 envoy\u00e9e avec succ\u00e8s ! Vous recevrez un email de confirmation.","error":"Une erreur est survenue. Veuillez r\u00e9essayer.","fill_required":"Veuillez remplir tous les champs obligatoires.","accepted":"Accept\u00e9","studying":"En cours d'\u00e9tude","pending":"En attente","slot_busy":"Ce cr\u00e9neau est d\u00e9j\u00e0 r\u00e9serv\u00e9.","click_to_book":"Cliquer pour r\u00e9server","file_too_large":"Le fichier \"%s\" d\u00e9passe la taille maximum autoris\u00e9e (5 Mo).","file_type_invalid":"Le type de fichier \"%s\" n'est pas autoris\u00e9.","docs_required":"Veuillez joindre tous les documents requis."},"max_file_size_mb":"5"};
3100//# sourceURL=hcb-frontend-js-extra
3101</script>
vendor: 1 bytes, line 3101
3101
3102<script id="hcb-frontend-js" src="https://www.eppeville.fr/wp-content/plugins/hob-cityhall-booking/assets/js/frontend.js?ver=1.2.0"></script>
vendor: 1 bytes, line 3102
3102
3103<script id="hob-fc-form-js-extra">
3104var hobFcFormConfig = {"ajax_url":"https://www.eppeville.fr/wp-admin/admin-ajax.php"};
3105var hobFcPublic = {"ajaxurl":"https://www.eppeville.fr/wp-admin/admin-ajax.php","nonce":"d5ec3d1515","page_token":"b3e988531c7100a54d58edf51794653a26585008f1b5bcbeb5b4eb743fb36ce3","page_ts":"497493"};
3106var hobFcI18n = {"required":"Veuillez remplir ce champ correctement.","invalidEmail":"Adresse e-mail invalide.","invalidPhone":"Num\u00e9ro de t\u00e9l\u00e9phone invalide.","minLength":"Minimum %d caract\u00e8res.","networkError":"Erreur r\u00e9seau. Veuillez r\u00e9essayer.","serverError":"Le serveur a renvoy\u00e9 une r\u00e9ponse inattendue","genericError":"Une erreur est survenue.","defaultSuccess":"Merci, votre message a bien \u00e9t\u00e9 envoy\u00e9.","resubmit":"Soumettre \u00e0 nouveau","fileTooLarge":"\u00ab %1$s \u00bb d\u00e9passe la taille maximale (%2$s Mo).","fileBadType":"\u00ab %1$s \u00bb n'est pas un format autoris\u00e9 (%2$s).","tooManyFiles":"%d fichier(s) maximum."};
3107//# sourceURL=hob-fc-form-js-extra
3108</script>
vendor: 1 bytes, line 3108
3108
3109<script id="hob-fc-form-js" src="https://www.eppeville.fr/wp-content/plugins/hob-formchat-pro/assets/js/form.js?ver=1.29"></script>
vendor: 1 bytes, line 3109
3109
3110<script id="hob-fc-conditional-js" src="https://www.eppeville.fr/wp-content/plugins/hob-formchat-pro/assets/js/hob-conditional.js?ver=1.29"></script>
vendor: 1 bytes, line 3110
3110
3111<script id="hob-fc-calculator-js" src="https://www.eppeville.fr/wp-content/plugins/hob-formchat-pro/assets/js/hob-calculator.js?ver=1.29"></script>
vendor: 1 bytes, line 3111
3111
3112<script id="hob-fc-rgaa-js" src="https://www.eppeville.fr/wp-content/plugins/hob-formchat-pro/assets/js/hob-rgaa.js?ver=1.29"></script>
vendor: 1 bytes, line 3112
3112
3113<script id="leaflet-js" src="https://unpkg.com/[email protected]/dist/leaflet.js?ver=1.9.4"></script>
vendor: 1 bytes, line 3113
3113
3114<script id="hob-fc-map-picker-js" src="https://www.eppeville.fr/wp-content/plugins/hob-formchat-pro/assets/js/hob-map-picker.js?ver=1.29"></script>
vendor: 1 bytes, line 3114
3114
3115<script id="hob-fc-address-js-extra">
3116var hobFcAddress = {"provider":"auto","effectiveProvider":"ban","googleKey":"","nominatimContact":"[email protected]","defaultCountry":"fr","debounceMs":"280","minChars":"3","banUrl":"https://api-adresse.data.gouv.fr/search/","photonUrl":"https://photon.komoot.io/api/"};
3117//# sourceURL=hob-fc-address-js-extra
3118</script>
vendor: 1 bytes, line 3118
3118
3119<script id="hob-fc-address-js" src="https://www.eppeville.fr/wp-content/plugins/hob-formchat-pro/assets/js/hob-address.js?ver=1.29"></script>
vendor: 1 bytes, line 3119
3119
3120<script id="bootstrap-js-js" src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js?ver=5.3.2"></script>
vendor: 1 bytes, line 3120
3120
3121<script id="hobrgpd-front-js-extra">
3122var hobRgpdConfig = {"cookieName":"hobConsentPrefs","cookieMaxAge":"2592000"};
3123//# sourceURL=hobrgpd-front-js-extra
3124</script>
vendor: 1 bytes, line 3124
3124
3125<script id="hobrgpd-front-js" src="https://www.eppeville.fr/wp-content/plugins/hob-rgpd/assets/js/front.js?ver=1781167964"></script>
vendor: 1 bytes, line 3125
3125
3126<script id="wp-statistics-tracker-js-extra">
3127var WP_Statistics_Tracker_Object = {"requestUrl":"https://www.eppeville.fr/wp-json/wp-statistics/v2","ajaxUrl":"https://www.eppeville.fr/wp-admin/admin-ajax.php","hitParams":{"wp_statistics_hit":1,"source_type":"post","source_id":560,"search_query":"","signature":"71004d1177abf927dbaec04c53b660ac","endpoint":"hit"},"option":{"dntEnabled":false,"bypassAdBlockers":false,"consentIntegration":{"name":null,"status":[]},"isPreview":false,"userOnline":false,"isWpConsentApiActive":false},"isLegacyEventLoaded":"","customEventAjaxUrl":"https://www.eppeville.fr/wp-admin/admin-ajax.php?action=wp_statistics_custom_event&nonce=e828a08707","onlineParams":{"wp_statistics_hit":1,"source_type":"post","source_id":560,"search_query":"","signature":"71004d1177abf927dbaec04c53b660ac","action":"wp_statistics_online_check"},"jsCheckTime":"60000"};
3128//# sourceURL=wp-statistics-tracker-js-extra
3129</script>
vendor: 1 bytes, line 3129
3129
3130<script id="wp-statistics-tracker-js" src="https://www.eppeville.fr/wp-content/plugins/wp-statistics/assets/js/tracker.js?ver=14.16.15"></script>
vendor: 1 bytes, line 3130
3130
3131<script id="wp-emoji-settings" type="application/json">
3132{"baseUrl":"https://s.w.org/images/core/emoji/17.0.2/72x72/","ext":".png","svgUrl":"https://s.w.org/images/core/emoji/17.0.2/svg/","svgExt":".svg","source":{"concatemoji":"https://www.eppeville.fr/wp-includes/js/wp-emoji-release.min.js?ver=7.1.2"}}
3133</script>
vendor: 1 bytes, line 3133
3133
3134<script type="module">
3135/*! This file is auto-generated */
3136var e="script#wp-emoji-settings",t=document.querySelector(e);if(!(t instanceof HTMLScriptElement))throw new Error("Element missing: "+e);const r=JSON.parse(t.text),s=(window._wpemojiSettings=r,"wpEmojiSettingsSupports"),o=["flag","emoji"];function i(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(s,JSON.stringify(t))}catch(e){}}function c(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0);const r=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);return t.every((e,t)=>e===r[t])}function p(e,t){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var n=e.getImageData(16,16,1,1);for(let e=0;e<n.data.length;e++)if(0!==n.data[e])return!1;return!0}function u(e,t,n,r){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\udde8\ud83c\uddf6","\ud83c\udde8\u200b\ud83c\uddf6")&&!n(e,"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f");case"emoji":return!r(e,"\ud83e\u1fac8")}return!1}function f(e,t,n,r){let a;const s=(a="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):document.createElement("canvas")).getContext("2d",{willReadFrequently:!0}),o=(s.textBaseline="top",s.font="600 32px Arial",{});return e.forEach(e=>{o[e]=t(s,e,n,r)}),o}function a(e){var t=document.createElement("script");t.src=e,t.defer=!0,document.head.appendChild(t)}r.supports={everything:!0,everythingExceptFlag:!0},new Promise(t=>{let n=function(){try{var e=JSON.parse(sessionStorage.getItem(s));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if("undefined"!=typeof Worker&&"undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof URL&&URL.createObjectURL&&"undefined"!=typeof Blob)try{var e="postMessage("+f.toString()+"("+[JSON.stringify(o),u.toString(),c.toString(),p.toString()].join(",")+"));",r=new Blob([e],{type:"text/javascript"});const a=new Worker(URL.createObjectURL(r),{name:"wpTestEmojiSupports"});return void(a.onmessage=e=>{i(n=e.data),a.terminate(),t(n)})}catch(e){}i(n=f(o,u,c,p))}t(n)}).then(e=>{for(const n in e)r.supports[n]=e[n],r.supports.everything=r.supports.everything&&r.supports[n],"flag"!==n&&(r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&r.supports[n]);var t;r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&!r.supports.flag,r.supports.everything||((t=r.source||{}).concatemoji?a(t.concatemoji):t.wpemoji&&t.twemoji&&(a(t.twemoji),a(t.wpemoji)))});
3137//# sourceURL=https://www.eppeville.fr/wp-includes/js/wp-emoji-loader.min.js
3138</script>
3138
3139    <style>
3140        #koba-pwa-banner {
3141            display: none; /* affiché par JS uniquement sur mobile */
3142            position: fixed;
3143            top: 0; left: 0; right: 0;
3144            z-index: 99999;
3145            background: #1e293b;
3146            color: #fff;
3147            padding: 12px 16px;
3148            flex-direction: column;
3149            gap: 10px;
3150            box-shadow: 0 2px 12px rgba(0,0,0,.35);
3151            font-family: inherit;
3152        }
3153        #koba-pwa-banner.koba-pwa-banner-visible {
3154            display: flex;
3155        }
3156        /* Ligne 1 : icône + texte */
3157        #koba-pwa-banner .kpb-row1 {
3158            display: flex;
3159            align-items: flex-start;
3160            gap: 12px;
3161        }
3162        #koba-pwa-banner .kpb-icon {
3163            font-size: 24px;
3164            flex-shrink: 0;
3165            line-height: 1.2;
3166        }
3167        #koba-pwa-banner .kpb-body {
3168            flex: 1;
3169            min-width: 0;
3170        }
3171        #koba-pwa-banner .kpb-title {
3172            font-weight: 700;
3173            font-size: .9rem;
3174            line-height: 1.3;
3175        }
3176        #koba-pwa-banner .kpb-desc {
3177            font-size: .8rem;
3178            opacity: .8;
3179            line-height: 1.4;
3180            margin-top: 3px;
3181        }
3182        /* Ligne 2 : bouton + fermer */
3183        #koba-pwa-banner .kpb-row2 {
3184            display: flex;
3185            align-items: center;
3186            gap: 10px;
3187        }
3188        #koba-pwa-banner .kpb-btn {
3189            background: #ffbb00;
3190            color: #fff;
3191            border: none;
3192            padding: 8px 16px;
3193            border-radius: 6px;
3194            font-size: .82rem;
3195            font-weight: 600;
3196            cursor: pointer;
3197            white-space: nowrap;
3198            text-decoration: none;
3199            display: inline-block;
3200        }
3201        #koba-pwa-banner .kpb-close {
3202            background: rgba(255,255,255,.12);
3203            border: 1px solid rgba(255,255,255,.2);
3204            color: rgba(255,255,255,.75);
3205            font-size: .82rem;
3206            font-weight: 600;
3207            line-height: 1;
3208            cursor: pointer;
3209            padding: 7px 12px;
3210            border-radius: 6px;
3211            white-space: nowrap;
3212        }
3213        #koba-pwa-banner .kpb-close:hover {
3214            background: rgba(255,255,255,.2);
3215            color: #fff;
3216        }
3217        /* Décaler le contenu sous la bannière quand elle est visible */
3218        body.koba-pwa-banner-open {
3219            padding-top: 100px;
3220        }
3221    </style>
3222
3223    <div id="koba-pwa-banner" role="banner" aria-label="Installer l'application">
3224        <div class="kpb-row1">
3225            <span class="kpb-icon">📲</span>
3226            <div class="kpb-body">
3227                <div class="kpb-title">Installez notre application !</div>
3228                <div class="kpb-desc">Accédez rapidement à notre site depuis votre écran d&#039;accueil.</div>
3229            </div>
3230        </div>
3231        <div class="kpb-row2">
3232            <a href="https://www.eppeville.fr/installapp/" class="kpb-btn">Voir comment installer</a>
3233            <button class="kpb-close" id="koba-pwa-close" aria-label="Fermer">✕ Fermer</button>
3234        </div>
3235    </div>
3236<script>
3237// Capturer beforeinstallprompt le plus tôt possible (avant tout)
3238var _kobaPwaInstallPrompt = null;
3239window.addEventListener('beforeinstallprompt', function(e) {
3240    e.preventDefault();
3241    _kobaPwaInstallPrompt = e;
3242    // Si la bannière est déjà affichée, transformer le bouton
3243    var btn = document.querySelector('#koba-pwa-banner .kpb-btn');
3244    if (btn && document.getElementById('koba-pwa-banner').classList.contains('koba-pwa-banner-visible')) {
3245        _kobaActivateInstallBtn(btn);
3246    }
3247});
3248
3249function _kobaActivateInstallBtn(btn) {
3250    if (!_kobaPwaInstallPrompt) return;
3251    btn.textContent = '📲 Installer l\'application';
3252    btn.removeAttribute('href');
3253    btn.onclick = function(e) {
3254        e.preventDefault();
3255        if (!_kobaPwaInstallPrompt) return;
3256        _kobaPwaInstallPrompt.prompt();
3257        _kobaPwaInstallPrompt.userChoice.then(function(result) {
3258            if (result.outcome === 'accepted') {
3259                _kobaHidePwaBanner();
3260            }
3261            _kobaPwaInstallPrompt = null;
3262        });
3263    };
3264}
3265
3266function _kobaHidePwaBanner() {
3267    var banner = document.getElementById('koba-pwa-banner');
3268    if (!banner) return;
3269    banner.classList.remove('koba-pwa-banner-visible');
3270    document.body.classList.remove('koba-pwa-banner-open');
3271    localStorage.setItem('koba_pwa_banner_closed', Date.now().toString());
3272}
3273
3274(function() {
3275    // Ne jamais afficher en mode PWA standalone
3276    if (window.matchMedia('(display-mode: standalone)').matches
3277        || window.navigator.standalone === true
3278        || sessionStorage.getItem('koba_pwa') === '1') {
3279        return;
3280    }
3281
3282    var STORAGE_KEY  = 'koba_pwa_banner_closed';
3283    var FREQUENCY_MS = 604800000;
3284
3285    function isMobile() {
3286        return (window.innerWidth < 1024) ||
3287               /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini|Mobile|mobile|CriOS/i.test(navigator.userAgent);
3288    }
3289
3290    if (!isMobile()) return;
3291
3292    var lastClosed = localStorage.getItem(STORAGE_KEY);
3293    if (lastClosed && (Date.now() - parseInt(lastClosed, 10)) < FREQUENCY_MS) return;
3294
3295    var ua = navigator.userAgent;
3296    var isIos        = /iPhone|iPad|iPod/i.test(ua);
3297    var isAndroid    = /Android/i.test(ua);
3298    // Sur iOS, seul Safari peut installer une PWA.
3299    // Chrome iOS (CriOS), Firefox iOS (FxiOS), Edge iOS (EdgiOS) utilisent WebKit
3300    // mais n'exposent pas la fonctionnalité d'ajout à l'écran d'accueil.
3301    var isIosNonSafari = isIos && /CriOS|FxiOS|EdgiOS|OPiOS|YaBrowser|DuckDuckGo/i.test(ua);
3302    var isIosSafari    = isIos && !isIosNonSafari;
3303
3304    function showBanner() {
3305        var banner = document.getElementById('koba-pwa-banner');
3306        if (!banner) return;
3307
3308        // Cas spécial : iOS hors Safari → bannière informative "ouvrez dans Safari"
3309        if (isIosNonSafari) {
3310            var iconEl  = banner.querySelector('.kpb-icon');
3311            var titleEl = banner.querySelector('.kpb-title');
3312            var descEl  = banner.querySelector('.kpb-desc');
3313            var btnEl   = banner.querySelector('.kpb-btn');
3314            var row2El  = banner.querySelector('.kpb-row2');
3315
3316            if (iconEl)  iconEl.textContent  = '🧭';
3317            if (titleEl) titleEl.textContent = 'Application disponible dans Safari';
3318            if (descEl)  descEl.textContent  = 'Sur iPhone et iPad, l\'application ne peut être installée qu\'avec le navigateur Safari. Ouvrez cette page dans Safari pour l\'installer.';
3319            // Le bouton "Voir comment installer" n'a aucun sens ici → on le retire,
3320            // on conserve uniquement le bouton Fermer.
3321            if (btnEl && btnEl.parentNode) {
3322                btnEl.parentNode.removeChild(btnEl);
3323            }
3324            if (row2El) {
3325                row2El.style.justifyContent = 'flex-end';
3326            }
3327        } else if (_kobaPwaInstallPrompt) {
3328            // Si le prompt natif est déjà disponible (Android/Chrome), transformer le bouton
3329            var btn = banner.querySelector('.kpb-btn');
3330            if (btn) _kobaActivateInstallBtn(btn);
3331        }
3332
3333        banner.classList.add('koba-pwa-banner-visible');
3334        document.body.classList.add('koba-pwa-banner-open');
3335
3336        var closeBtn = document.getElementById('koba-pwa-close');
3337        if (closeBtn) {
3338            closeBtn.addEventListener('click', _kobaHidePwaBanner);
3339        }
3340    }
3341
3342    if (isIosSafari && !window.navigator.standalone) {
3343        // iOS Safari : afficher immédiatement avec lien vers /installapp/
3344        document.addEventListener('DOMContentLoaded', showBanner);
3345    } else if (isIosNonSafari) {
3346        // iOS Chrome/Firefox/Edge : afficher la bannière informative "ouvrez dans Safari"
3347        document.addEventListener('DOMContentLoaded', showBanner);
3348    } else if (isAndroid || (!isIos && isMobile())) {
3349        // Android/Chrome : attendre que le prompt soit disponible
3350        document.addEventListener('DOMContentLoaded', function() {
3351            if (_kobaPwaInstallPrompt) {
3352                showBanner();
3353            } else {
3354                var t = setTimeout(function() {
3355                    if (_kobaPwaInstallPrompt) showBanner();
3356                    // sinon : déjà installé ou navigateur non supporté → rien
3357                }, 1000);
3358            }
3359        });
3360    }
3361})();
3362</script>
3362
3363   
3364        <style>
3365        #koba-desktop-alert {
3366            display: none; /* affiché par JS uniquement sur desktop */
3367            position: fixed;
3368            top: 50%;
3369            right: 0;
3370            transform: translateY(-50%);
3371            width: 300px;
3372            z-index: 99998;
3373            background: #fff;
3374            color: #333;
3375            border-radius: 0;
3376            box-shadow: 0 6px 30px rgba(0,0,0,.25);
3377            padding: 20px;
3378            box-sizing: border-box;
3379            font-family: inherit;
3380        }
3381        #koba-desktop-alert.kda-visible {
3382            display: block;
3383            animation: kda-slide-in .4s ease;
3384        }
3385        @keyframes kda-slide-in {
3386            from { opacity: 0; transform: translateY(-50%) translateX(30px); }
3387            to   { opacity: 1; transform: translateY(-50%) translateX(0); }
3388        }
3389        #koba-desktop-alert .kda-close {
3390            position: absolute;
3391            top: 10px;
3392            right: 10px;
3393            background: none;
3394            border: none;
3395            font-size: 16px;
3396            line-height: 1;
3397            color: #999;
3398            cursor: pointer;
3399            padding: 4px;
3400        }
3401        #koba-desktop-alert .kda-close:hover { color: #333; }
3402        #koba-desktop-alert .kda-icon {
3403            font-size: 28px;
3404            margin-bottom: 8px;
3405        }
3406        #koba-desktop-alert .kda-title {
3407            font-weight: 700;
3408            font-size: 1rem;
3409            margin-bottom: 8px;
3410            color: #1e293b;
3411        }
3412        #koba-desktop-alert .kda-content {
3413            font-size: .85rem;
3414            line-height: 1.55;
3415            color: #555;
3416            margin-bottom: 14px;
3417        }
3418        #koba-desktop-alert .kda-btn {
3419            display: inline-block;
3420            background: #ffbb00;
3421            color: #fff;
3422            text-decoration: none;
3423            font-size: .85rem;
3424            font-weight: 600;
3425            padding: 9px 18px;
3426            border-radius: 8px;
3427            transition: opacity .2s;
3428        }
3429        #koba-desktop-alert .kda-btn:hover {
3430            opacity: .85;
3431            color: #fff;
3432        }
3433    </style>
3434
3435    <div id="koba-desktop-alert" role="dialog" aria-label="Application disponible">
3436        <button class="kda-close" id="koba-desktop-alert-close" aria-label="Fermer">✕</button>
3437        <div class="kda-title">📲 Application disponible</div>
3438        <div class="kda-content">
3439            Allez sur votre smartphone, affichez le site de votre mairie dans le navigateur
3440            de votre choix et vous serez invité à installer l'application sur votre mobile.
3441            Laissez-vous guider, c'est simple&nbsp;! Si votre mairie a souscrit à l'abonnement,
3442            tout fonctionnera immédiatement.
3443        </div>
3444        <a href="https://www.eppeville.fr/installapp/" class="kda-btn">Plus de détails</a>
3445    </div>
3446
3447    
3447<script>
3448    (function() {
3449        'use strict';
3450
3451        var STORAGE_KEY = 'koba_desktop_alert_shown';
3452        var WEEK_MS = 7 * 86400 * 1000;
3453
3454        // --- Détection desktop Windows / Mac uniquement ---
3455        var ua = navigator.userAgent;
3456        var isMobileUA = /Android|iPhone|iPad|iPod|Mobile|Tablet/i.test(ua);
3457        // iPadOS se fait passer pour un Mac : on l'exclut via le tactile
3458        var isIpadOs = (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1);
3459        var isWinMac = /Windows NT|Macintosh/i.test(ua);
3460
3461        if (isMobileUA || isIpadOs || !isWinMac) return;
3462
3463        // --- Mode standalone (PWA installée) : on n'affiche pas ---
3464        if (window.matchMedia && window.matchMedia('(display-mode: standalone)').matches) return;
3465
3466        // --- Fréquence : 1 fois par semaine ---
3467        var last = 0;
3468        try { last = parseInt(localStorage.getItem(STORAGE_KEY) || '0', 10); } catch (e) {}
3469        if (last && (Date.now() - last) < WEEK_MS) return;
3470
3471        function showAlert() {
3472            var box = document.getElementById('koba-desktop-alert');
3473            if (!box) return;
3474
3475            box.classList.add('kda-visible');
3476
3477            // On marque comme "vue" dès l'affichage → max 1 fois / semaine
3478            try { localStorage.setItem(STORAGE_KEY, Date.now().toString()); } catch (e) {}
3479
3480            var closeBtn = document.getElementById('koba-desktop-alert-close');
3481            if (closeBtn) {
3482                closeBtn.addEventListener('click', function() {
3483                    box.classList.remove('kda-visible');
3484                });
3485            }
3486        }
3487
3488        if (document.readyState === 'loading') {
3489            document.addEventListener('DOMContentLoaded', showAlert);
3490        } else {
3491            showAlert();
3492        }
3493    })();
3494    </script>
3494
3495    </body>
3496</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.