1<!DOCTYPE html> 2<html lang="fr-FR"> 3<head> 4 <title>Eppeville | Mairie d'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 – Mairie d’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&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&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&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">✕</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'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'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'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'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'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’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’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’industrie pharmaceutique avec Evonik Rexim à Ham et de l’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’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…</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’un stade d’athlétisme, de boulodromes, d’un gymnase omnisport, d’un city-stade, d’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’une école primaire et d’un restaurant scolaire. Des bus assurent le ramassage scolaire. Les enfants de maternelle sont accueillis à l’é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’é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'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'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">×</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">‹</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">›</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'avis en cliquant sur le bouton 'Cookies' 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">×</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 © <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'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 ! 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.