PageSourceSearch

https://www.saint-florentin.fr/

html saint-florentin.fr collected 2026-10-02 17:13:46 UTC 328,810 bytes, 5,848 lines download raw bytes

1<!DOCTYPE html>
2<html lang="fr-FR">
3<head>
4    <title>Mairie de Saint-Florentin (Yonne)</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>Mairie de Saint-Florentin (Yonne)</title>
10<meta name='robots' content='max-image-preview:large' />
11<link rel="manifest" href="https://www.saint-florentin.fr/koba-manifest.json">
12<meta name="google-site-verification" content="77pOTd9r76iD5rxRZfxAXZYZXBcQqLbkn156GsedodI" />
13    <!-- Favicon standard -->
14    <link rel="icon" type="image/png" sizes="32x32" href="https://www.saint-florentin.fr/wp-content/uploads/sites/66/favicons/favicon-32x32.png">
15    <link rel="icon" type="image/png" sizes="16x16" href="https://www.saint-florentin.fr/wp-content/uploads/sites/66/favicons/favicon-16x16.png">
16    
17    <!-- Apple Touch Icon (iOS) -->
18    <link rel="apple-touch-icon" sizes="180x180" href="https://www.saint-florentin.fr/wp-content/uploads/sites/66/favicons/apple-touch-icon.png">
19    
20    <!-- Android Chrome -->
21    <link rel="icon" type="image/png" sizes="192x192" href="https://www.saint-florentin.fr/wp-content/uploads/sites/66/favicons/android-chrome-192x192.png">
22    <link rel="icon" type="image/png" sizes="512x512" href="https://www.saint-florentin.fr/wp-content/uploads/sites/66/favicons/android-chrome-512x512.png">
23    
24    <!-- Safari Pinned Tab (SVG ou PNG) -->
25    <link rel="mask-icon" href="https://www.saint-florentin.fr/wp-content/uploads/sites/66/favicons/favicon-32x32.png" color="#1975ae">
26    
27    <!-- Microsoft -->
28    <meta name="msapplication-TileColor" content="#1975ae">
29    <meta name="msapplication-TileImage" content="https://www.saint-florentin.fr/wp-content/uploads/sites/66/favicons/mstile-144x144.png">
30    
31    <!-- Theme color pour navigateurs mobiles -->
32    <meta name="theme-color" content="#1975ae">
33    
34    <link rel='dns-prefetch' href='//cdnjs.cloudflare.com' />
35<link rel='dns-prefetch' href='//unpkg.com' />
36<link rel='dns-prefetch' href='//cdn.jsdelivr.net' />
37<style id="koba-colors">
38:root {
39    --koba-primary: #1975ae;
40    --koba-secondary: #d81f27;
41    --koba-primary-rgb: 25, 117, 174;
42    --koba-secondary-rgb: 216, 31, 39;
43}
44</style><style id="wp-img-auto-sizes-contain-inline-css">
45img:is([sizes=auto i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px}
46/*# sourceURL=wp-img-auto-sizes-contain-inline-css */
47</style>
48<link rel='stylesheet' id='acy_front_messages_css-css' href='https://www.saint-florentin.fr/wp-content/plugins/acymailing/media/css/front/messages.min.css?v=1790752554&#038;ver=11.1.0' media='all' />
49<style id="wp-emoji-styles-inline-css">
50
51	img.wp-smiley, img.emoji {
52		display: inline !important;
53		border: none !important;
54		box-shadow: none !important;
55		height: 1em !important;
56		width: 1em !important;
57		margin: 0 0.07em !important;
58		vertical-align: -0.1em !important;
59		background: none !important;
60		padding: 0 !important;
61	}
62/*# sourceURL=wp-emoji-styles-inline-css */
63</style>
64<style id="wp-block-library-inline-css">
65: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}}.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;
65--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}}
66
67/*# sourceURL=/wp-includes/css/dist/block-library/common.min.css */
68</style>
69<style id="wp-block-paragraph-inline-css">
70.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}
71/*# sourceURL=https://www.saint-florentin.fr/wp-includes/blocks/paragraph/style.min.css */
72</style>
73<style id="wp-block-library-inline-css-extra">
74.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; }
75    .meteo-widget.meteo-error { background: #e74c3c; }
76    .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); }
77    .meteo-header h3 { margin: 0; font-size: 1.3em; }
78    .meteo-main { display: flex; align-items: center; justify-content: center; gap: 10px; }
79    .meteo-icon { width: 80px; height: 80px; }
80    .meteo-temp { font-size: 3em; font-weight: bold; }
81    .meteo-description { font-size: 1.1em; margin: 10px 0; text-transform: capitalize; }
82    .meteo-minmax { display: flex; justify-content: center; gap: 30px; margin: 15px 0; }
83    .meteo-min { background: #20b7d9; padding: 8px 15px; border-radius: 20px; font-weight: bold; }
84    .meteo-max { background: #c0392b; padding: 8px 15px; border-radius: 20px; font-weight: bold; }
85    .meteo-humidity { margin-top: 10px; font-size: 0.95em; opacity: 0.9; }
86.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}
87
88    /* ==========================================
89       VARIABLES CSS
90       ========================================== */
91    :root {
92        --koba-topbar-height: 40px;
93        --koba-navbar-height: 70px;
94        --koba-header-height: calc(var(--koba-topbar-height) + var(--koba-navbar-height));
95        --koba-logo-width: 193px;
96    }
97    
98    /* ==========================================
99       HEADER PRINCIPAL
100       ========================================== */
101    
102    .koba-header {
103        position: fixed;
104        top: 0;
105        left: 0;
106        right: 0;
107        z-index: 10000;
108        width: 100%;
109    }
110    
111    .koba-header-wrapper {
112        position: relative;
113        width: 100%;
114        z-index: 222222;
115    }
116    
117    /* Spacer pour compenser le header fixe */
118    .koba-header-spacer {
119        height: var(--koba-header-height);
120    }
121    
122    /* ==========================================
123       LOGO - COUVRE LES DEUX BARRES
124       ========================================== */
125    
126    .koba-logo {
127        position: absolute;
128        top: 0;
129        left: 0;
130        width: var(--koba-logo-width);
131        height: var(--koba-header-height);
132        background-color: #fff;
133        display: flex;
134        align-items: center;
135        justify-content: center;
136        padding: 10px 20px;
137        box-sizing: border-box;
138        z-index: 110;
139    }
140    
141    .koba-logo img {
142        max-height: 100%;
143        max-width: 100%;
144        width: auto;
145        height: auto;
146        display: block;
147        object-fit: contain;
148    }
149    .koba-icon-search{
150        width: 30px;
151        height: 30px;
152    }
153    
154    .koba-logo-text {
155        color: #333;
156        font-size: 20px;
157        font-weight: 700;
158        text-decoration: none;
159    }
160    
161    /* ==========================================
162       BARRE SUPERIEURE (ORANGE)
163       ========================================== */
164    
165    .koba-topbar {
166        background-color: #d81f27;
167        height: var(--koba-topbar-height);
168        width: 100%;
169    }
170    
171    .koba-topbar-inner {
172        height: 100%;
173        display: flex;
174        justify-content: space-between;
175        align-items: center;
176        padding: 0 20px 0 calc(var(--koba-logo-width) + 20px);
177    }
178    
179    .koba-topbar-menu {
180        flex: 1;
181    }
182    
183    .koba-topbar-list {
184        list-style: none;
185        margin: 0;
186        padding: 0;
187        display: flex;
188        gap: 25px;
189    }
190    
191    .koba-topbar-list li a {
192        color: #fff;
193        text-decoration: none;
194        font-size: 11.2px;
195        font-weight: 600;
196        text-transform: uppercase;
197        letter-spacing: 0.5px;
198        transition: opacity 0.2s;
199    }
200    
201    .koba-topbar-list li a:hover {
202        opacity: 0.8;
203    }
204    
205    .koba-topbar-cta {
206        display: flex;
207        align-items: center;
208        gap: 8px;
209        color: #fff;
210        text-decoration: none;
211        font-size: 12.2px;
212        font-weight: 600;
213        text-transform: uppercase;
214        letter-spacing: 0.5px;
215        transition: opacity 0.2s;
216    }
217    
218    .koba-topbar-cta:hover {
219        opacity: 0.8;
220    }
221    
222    /* Hamburger (mobile) - dans la topbar */
223    .koba-hamburger {
224        display: none;
225        flex-direction: column;
226        justify-content: center;
227        gap: 5px;
228        background: none;
229        border: none;
230        cursor: pointer;
231        padding: 10px;
232        width: 44px;
233        height: 44px;
234        margin-left: -10px;
235    }
236    
237    .koba-hamburger span {
238        display: block;
239        width: 24px;
240        height: 2px;
241        background-color: #fff;
242        transition: all 0.3s;
243    }
244    
245    .koba-hamburger.active span:nth-child(1) {
246        transform: rotate(45deg) translate(5px, 5px);
247    }
248    
249    .koba-hamburger.active span:nth-child(2) {
250        opacity: 0;
251    }
252    
253    .koba-hamburger.active span:nth-child(3) {
254        transform: rotate(-45deg) translate(5px, -5px);
255    }
256    
257    /* ==========================================
258       BARRE PRINCIPALE (BLEU)
259       ========================================== */
260    
261    .koba-navbar {
262        background-color: #1975ae;
263        height: var(--koba-navbar-height);
264        width: 100%;
265        position: relative;
266    }
267    
268    .koba-navbar-inner {
269        height: 100%;
270        display: flex;
271        align-items: stretch;
272        padding: 0 0 0 var(--koba-logo-width);
273    }
274    
275    /* Navigation principale */
276    .koba-main-nav {
277        flex: 1;
278        display: flex;
279        align-items: stretch;
280    }
281    
282    .koba-nav-list {
283        list-style: none;
284        margin: 0;
285        padding: 0;
286        display: flex;
287        align-items: stretch;
288        width: 100%;
289    }
290    
291    .koba-nav-item {
292        position: static;
293        display: flex;
294        align-items: stretch;
295        flex: 1;
296        margin: 8px;
297        border-bottom: 1px solid transparent;
298    }
299    
300    .koba-nav-item:hover {
301        border-bottom: 1px solid hsla(0,0%,100%,.72);
302    }
303    
304    .koba-nav-link {
305        display: flex;
306        align-items: center;
307        justify-content: center;
308        gap: 6px;
309        color: #fff;
310        text-decoration: none;
311        font-size: 14px;
312        font-weight: 400;
313        text-transform: uppercase;
314        letter-spacing: 0.3px;
315        padding: 0 15px;
316        width: 100%;
317        transition: background-color 0.2s;
318        cursor: pointer;
319    }
320    
321    .koba-nav-arrow {
322        color: #fb0;
323        width: 14px;
324        height: 14px;
325        transform: rotate(270deg);
326        transition: transform 0.2s;
327    }
328    
329    /* ==========================================
330       BOUTON RECHERCHE (CARRE)
331       ========================================== */
332    
333    .koba-search-toggle {
334        flex-shrink: 0;
335        width: var(--koba-navbar-height);
336        height: var(--koba-navbar-height);
337        background: #fff;
338        border: none;
339        color: #fb0;
340        cursor: pointer;
341        display: flex;
342        align-items: center;
343        justify-content: center;
344        transition: opacity 0.2s;
345    }
346    
347    .koba-search-toggle:hover {
348        opacity: 0.9;
349    }
350    
351    .koba-search-toggle.hidden {
352        display: none;
353    }
354    
355    /* ==========================================
356       MEGA MENU
357       ========================================== */
358    
359    .koba-megamenu {
360        position: absolute;
361        top: 100%;
362        left: 0;
363        right: 0;
364        width: 100%;
365        background-color: #1975ae;
366        opacity: 0;
367        visibility: hidden;
368        transform: translateY(-10px);
369        transition: all 0.3s ease;
370        z-index: 100;
371        pointer-events: none;
372    }
373    
374    .koba-nav-item.active .koba-megamenu {
375        opacity: 1;
376        visibility: visible;
377        transform: translateY(0);
378        pointer-events: auto;
379    }
380    
381    .koba-megamenu-inner {
382        width: 100%;
383        display: flex;
384        position: relative;
385    }
386    
387    .koba-megamenu-col1 {
388        flex-shrink: 0;
389        width: var(--koba-logo-width);
390        background-color: #fff;
391    }
392    
393    .koba-megamenu-col2 {
394        flex: 1;
395        padding: 30px 20px;
396        display: flex;
397        align-items: flex-start;
398        justify-content: flex-end;
399    }
400    
401    .koba-megamenu-title {
402        color: #fff;
403        font-size: 22px;
404        font-weight: 600;
405        line-height: 1.4;
406    }
407    
408    .koba-megamenu-col3 {
409        flex: 1;
410        padding: 25px 30px;
411        min-width: 0;
412        max-height: 731px;
413        overflow: overlay;
414    }
415    
416    .koba-megamenu-list {
417        list-style: none;
418        margin: 0;
419        padding: 0;
420        border-left: 1px solid #fff;
421    }
422    
423    .koba-megamenu-item {
424        position: static;
425    }
426    
427    .koba-megamenu-link {
428        display: flex;
429        align-items: center;
430        gap: 8px;
431        color: #fff;
432        text-decoration: none;
433        padding: 16px 0;
434        font-size: 14px;
435        transition: padding-left 0.2s;
436        cursor: pointer;
437        padding-left: 30px;
438    }
439    
440    .koba-megamenu-link:hover {
441        border-bottom: 1px solid #fff;
442    }
443    
444    .koba-megamenu-link svg {
445        margin-left: auto;
446        flex-shrink: 0;
447        transition: transform 0.2s;
448        color: #faaf00;
449    }
450    
451    .koba-megamenu-item.active > .koba-megamenu-link svg {
452        transform: rotate(90deg);
453    }
454    
455    .koba-megamenu-col4 {
456        flex: 1;
457        position: relative;
458    }
459    
460    .koba-megamenu-sublist {
461        position: absolute;
462        top: 0;
463        right: 0;
464        bottom: 0;
465        width: calc((100% - var(--koba-logo-width)) / 3);
466        list-style: none;
467        margin: 0;
468        padding: 25px 20px;
469        opacity: 0;
470        visibility: hidden;
471        transition: all 0.3s ease;
472        z-index: 110;
473    }
474    
475    .koba-megamenu-item.active > .koba-megamenu-sublist {
476        opacity: 1;
477        visibility: visible;
478    }
479    .koba-megamenu-item > .koba-megamenu-sublist li{
480        border-left: 1px solid #fff;
481    }
482    .koba-
482megamenu-item > .koba-megamenu-sublist li a{
483        padding-left: 30px;
484    }
485    
486    .koba-megamenu-sublist li a {
487        display: block;
488        color: #fff;
489        text-decoration: none;
490        padding: 8px 0;
491        font-size: 13px;
492        opacity: 0.9;
493        transition: opacity 0.2s, padding-left 0.2s;
494        border-bottom: 1px solid rgba(255, 255, 255, 0.1);
495    }
496    
497    .koba-megamenu-sublist li a:hover {
498        border-bottom: 1px solid #fff;
499    }
500
501    
502    /* ==========================================
503       BARRE DE RECHERCHE
504       ========================================== */
505    
506    .koba-search-bar {
507        position: absolute;
508        top: 0;
509        right: 0;
510        bottom: 0;
511        width: 0;
512        background-color: #1975ae;
513        overflow: hidden;
514        transition: width 0.4s ease;
515        display: flex;
516        align-items: center;
517        z-index: 105;
518    }
519    
520    .koba-search-bar.active {
521        width: calc(100% - var(--koba-logo-width));
522    }
523    
524    .koba-search-bar-inner {
525        display: flex;
526        align-items: center;
527        gap: 15px;
528        padding: 0 20px;
529        width: 100%;
530        min-width: 300px;
531    }
532    
533    .koba-search-form {
534        flex: 1;
535        display: flex;
536        align-items: center;
537        position: relative;
538    }
539    
540    .koba-search-input {
541        width: 100%;
542        background: transparent;
543        border: none;
544        border-bottom: 2px solid rgba(255, 255, 255, 0.5);
545        color: #fff;
546        font-size: 18px;
547        padding: 10px 40px 10px 0;
548        outline: none;
549        transition: border-color 0.2s;
550    }
551    
552    .koba-search-input::placeholder {
553        color: rgba(255, 255, 255, 0.7);
554    }
555    
556    .koba-search-input:focus {
557        border-color: #fff;
558    }
559    
560    .koba-search-submit {
561        position: absolute;
562        right: 0;
563        background: none;
564        border: none;
565        color: #fff;
566        cursor: pointer;
567        padding: 10px;
568        opacity: 0.7;
569        transition: opacity 0.2s;
570    }
571    
572    .koba-search-submit:hover {
573        opacity: 1;
574    }
575    
576    .koba-search-close {
577        flex-shrink: 0;
578        background: none;
579        border: none;
580        color: #d81f27;
581        cursor: pointer;
582        padding: 10px;
583        transition: opacity 0.2s;
584    }
585    
586    .koba-search-close:hover {
587        opacity: 0.8;
588    }
589    
590    /* ==========================================
591       MENU MOBILE
592       ========================================== */
593    
594    .koba-mobile-menu {
595        display: none;
596        position: fixed;
597        top: 0;
598        left: 0;
599        width: 100%;
600        height: 100vh;
601        background-color: #1975ae;
602        z-index: 999;
603        overflow-y: auto;
604        transform: translateX(-100%);
605        transition: transform 0.3s ease;
606    }
607    
608    .koba-mobile-menu.active {
609        transform: translateX(0);
610    }
611    
612    .koba-mobile-menu-inner {
613        padding: 20px;
614        padding-top: 120px;
615    }
616    
617    .koba-mobile-list {
618        list-style: none;
619        margin: 0;
620        padding: 0;
621    }
622    
623    .koba-mobile-item {
624        border-bottom: 1px solid rgba(255, 255, 255, 0.1);
625    }
626    
627    .koba-mobile-item-inner {
628        display: flex;
629        align-items: center;
630    }
631    
632    .koba-mobile-link {
633        flex: 1;
634        display: block;
635        color: #fff;
636        text-decoration: none;
637        padding: 18px 0;
638        font-size: 16px;
639        font-weight: 500;
640    }
641    
642    .koba-mobile-toggle {
643        background: none;
644        border: none;
645        color: #fff;
646        cursor: pointer;
647        padding: 18px 15px;
648        transition: transform 0.2s;
649    }
650    
651    .koba-mobile-toggle.active {
652        transform: rotate(180deg);
653    }
654    
655    .koba-mobile-submenu {
656        list-style: none;
657        margin: 0;
658        padding: 0 0 0 20px;
659        display: none;
660        background-color: rgba(0, 0, 0, 0.1);
661    }
662    
663    .koba-mobile-submenu.active {
664        display: block;
665    }
666    
667    .koba-mobile-submenu .koba-mobile-link {
668        font-size: 15px;
669        font-weight: 400;
670        padding: 14px 0;
671    }
672    
673    .koba-mobile-secondary {
674        margin-top: 30px;
675        padding-top: 30px;
676        border-top: 1px solid rgba(255, 255, 255, 0.2);
677    }
678    
679    .koba-mobile-secondary-list {
680        list-style: none;
681        margin: 0;
682        padding: 0;
683    }
684    
685    .koba-mobile-secondary-list li a {
686        display: block;
687        color: #fff;
688        text-decoration: none;
689        padding: 12px 0;
690        font-size: 14px;
691        opacity: 0.8;
692    }
693    
694    /* Overlay */
695    .koba-overlay {
696        position: fixed;
697        top: 0;
698        left: 0;
699        width: 100%;
700        height: 100%;
701        background-color: rgba(0, 0, 0, 0.5);
702        z-index: 998;
703        opacity: 0;
704        visibility: hidden;
705        transition: all 0.3s;
706    }
707    
708    .koba-overlay.active {
709        opacity: 1;
710        visibility: visible;
711    }
712    
713    /* ==========================================
714       RESPONSIVE
715       ========================================== */
716    
717    @media (max-width: 1400px) {
718        :root {
719            --koba-logo-width: 140px;
720        }
721        
722        .koba-nav-link {
723            font-size: 12px;
724            padding: 0 5px;
725        }
726        
727        .koba-megamenu-col2,
728        .koba-megamenu-col3 {
729            padding: 20px 15px;
730        }
731    }
732    
733    @media (max-width: 1200px) {
734        :root {
735            --koba-logo-width: 120px;
736        }
737        
738        .koba-nav-link {
739            font-size: 11px;
740            padding: 0 8px;
741        }
742        
743        .koba-megamenu-title {
744            font-size: 16px;
745        }
746        
747        .koba-megamenu-link {
748            font-size: 13px;
749            padding: 8px 8px;
750        }
751    }
752    
753    @media (max-width: 992px) {
754        :root {
755            --koba-topbar-height: 50px;
756            --koba-navbar-height: 0px;
757            --koba-logo-width: 100px;
758        }
759        
760        .koba-topbar-inner {
761            padding: 0 15px;
762            justify-content: flex-start;
763        }
764        
765        .koba-topbar-menu {
766            display: none;
767        }
768        
769        .koba-topbar-cta {
770            display: none;
771        }
772        
773        .koba-hamburger {
774            display: flex;
775        }
776        
777        .koba-logo {
778            position: relative;
779            width: auto;
780            max-width: 120px;
781            height: var(--koba-topbar-height);
782            margin: 0 auto;
783        }
784        
785        .koba-navbar {
786            display: none;
787        }
788        
789        .koba-mobile-menu {
790            display: block;
791        }
792        
793        .koba-megamenu {
794            display: none;
795        }
796    }
797    
798    @media (max-width: 576px) {
799        :root {
800            --koba-topbar-height: 50px;
801            --koba-logo-width: 80px;
802        }
803        
804        .koba-logo img {
805            max-height: 35px;
806        }
807        
808        .koba-search-input {
809            font-size: 16px;
810        }
811    }
812    
813
814    /* ==========================================
815       FOOTER
816       ========================================== */
817    
818    .koba-footer {
819        background-color: #1a1a2e;
820        color: #fff;
821        margin-top: 60px;
822    }
823    
824    .koba-footer-main {
825        padding: 60px 0 40px;
826    }
827    
828    .koba-footer-container {
829        max-width: 1400px;
830        margin: 0 auto;
831        padding: 0 30px;
832        display: grid;
833        grid-template-columns: repeat(4, 1fr);
834        gap: 40px;
835    }
836    
837    /* Colonnes */
838    .koba-footer-col {
839        min-width: 0;
840    }
841    
842    .koba-footer-title {
843        color: #fff;
844        font-size: 18px;
845        font-weight: 600;
846        margin: 0 0 20px 0;
847        padding-bottom: 12px;
848        border-bottom: 2px solid #d81f27;
849        display: inline-block;
850    }
851    
852    /* Colonne About */
853    .koba-footer-logo {
854        display: inline-block;
855        margin-bottom: 20px;
856    }
857    
858    .koba-footer-logo img {
859        max-height: 70px;
860        width: auto;
861    }
862    
863    .koba-footer-logo-text {
864        display: inline-block;
865        color: #fff;
866        font-size: 24px;
867        font-weight: 700;
868        text-decoration: none;
869        margin-bottom: 20px;
870    }
871    
872    .koba-footer-description {
873        color: #b0b0b0;
874        font-size: 14px;
875        line-height: 1.7;
876        margin: 0 0 20px 0;
877    }
878    
879    /* Réseaux sociaux */
880    .koba-footer-social {
881        display: flex;
882        gap: 12px;
883        flex-wrap: wrap;
884    }
885    
886    .koba-footer-social a {
887        display: flex;
888        align-items: center;
889        justify-content: center;
890        width: 40px;
891        height: 40px;
892        background-color: rgba(255, 255, 255, 0.1);
893        border-radius: 50%;
894        color: #fff;
895        transition: all 0.3s ease;
896    }
897    
898    .koba-footer-social a:hover {
899        background-color: #d81f27;
900        transform: translateY(-3px);
901    }
902    
903    /* Liste de contact */
904    .koba-footer-info-list {
905        list-style: none;
906        margin: 0;
907        padding: 0;
908    }
909    
910    .koba-footer-info-item {
911        display: flex;
912        align-items: flex-start;
913        gap: 12px;
914        margin-bottom: 18px;
915        color: #b0b0b0;
916        font-size: 14px;
917        line-height: 1.6;
918    }
919    
920    .koba-footer-info-item svg {
921        flex-shrink: 0;
922        margin-top: 2px;
923        color: #d81f27;
924    }
925    
926    .koba-footer-info-item a {
927        color: #b0b0b0;
928        text-decoration: none;
929        transition: color 0.2s;
930    }
931    
932    .koba-footer-info-item a:hover {
933        color: #d81f27;
934    }
935    
936    /* Statut dans le footer */
937    .koba-footer-status {
938        margin-top: 20px;
939    }
940    
941    .koba-footer-status .koba-opening-status {
942        background: transparent;
943        padding: 0;
944        border: none;
945        font-size: 13px;
946    }
947    
948    .koba-footer-status .koba-status-open {
949        color: #28a745;
950    }
951    
952    .koba-footer-status .koba-status-closed {
953        color: #dc3545;
954    }
955    
956    /* Menu footer */
957    .koba-footer-menu {
958        list-style: none;
959        margin: 0;
960        padding: 0;
961    }
962    
963    .koba-footer-menu li {
964        margin-bottom: 12px;
965    }
966    
967    .koba-footer-menu a {
968        color: #b0b0b0;
969        text-decoration: none;
970        font-size: 14px;
971        transition: all 0.2s;
972        display: inline-block;
973    }
974    
975    .koba-footer-menu a:hover {
976        color: #d81f27;
977        padding-left: 5px;
978    }
979    
980    /* Horaires dans footer */
981    .koba-footer-hours .koba-horaires-table {
982        font-size: 13px;
983        background: transparent;
984    }
985    
986    .koba-footer-hours .koba-horaires-table th,
987    .koba-footer-hours .koba-horaires-table td {
988        padding: 8px 10px;
989        border-color: rgba(255, 255, 255, 0.1);
990        color: #b0b0b0;
991    }
992    
993    .koba-footer-hours .koba-horaires-table th {
994        background: rgba(255, 255, 255, 0.05);
995        color: #fff;
996    }
997    
998    .koba-footer-hours .koba-horaires-table tr:hover {
999        background-color: rgba(255, 255, 255, 0.03);
1000    }
1001    
1002    .koba-footer-hours .koba-horaires-table tr.koba-today {
1003        background-color: rgba(25, 117, 174, 0.2);
1004    }
1005    
1006    .koba-footer-hours .koba-horaires-table .koba-badge-today {
1007        background: #d81f27;
1008        font-size: 9px;
1009    }
1010    
1011    /* Barre de copyright */
1012    .koba-footer-bottom {
1013        background-color: rgba(0, 0, 0, 0.3);
1014        padding: 20px 0;
1015    }
1016    
1017    .koba-footer-bottom .koba-footer-container {
1018        display: flex;
1019        justify-content: space-between;
1020        align-items: center;
1021        gap: 20px;
1022    }
1023    
1024    .koba-footer-copyright {
1025        margin: 0;
1026        color: #808080;
1027        font-size: 13px;
1028    }
1029    
1030    .koba-footer-legal {
1031        display: flex;
1032        gap: 25px;
1033    }
1034    
1035    .koba-footer-legal a {
1036        color: #808080;
1037        text-decoration: none;
1038        font-size: 13px;
1039        transition: color 0.2s;
1040    }
1041    
1042    .koba-footer-legal a:hover {
1043        color: #d81f27;
1044    }
1045    
1046    /* Responsive */
1047    @media (max-width: 1200px) {
1048        .koba-footer-container {
1049            grid-template-columns: repeat(2, 1fr);
1050        }
1051    }
1052    
1053    @media (max-width: 768px) {
1054        .koba-footer-main {
1055            padding: 40px 0 30px;
1056        }
1057        
1058        .koba-footer-container {
1059            grid-template-columns: 1fr;
1060            gap: 30px;
1061            padding: 0 20px;
1062        }
1063        
1064        .koba-footer-col {
1065            text-align: center;
1066        }
1067        
1068        .koba-footer-title {
1069            display: block;
1070        }
1071        
1072        .koba-footer-social {
1073            justify-content: center;
1074        }
1075        
1076        .koba-footer-info-list {
1077            display: inline-block;
1078            text-align: left;
1079        }
1080        
1081        .koba-footer-menu {
1082            display: inline-block;
1083            text-align: left;
1084        }
1085        
1086        .koba-footer-hours .koba-horaires-table {
1087            display: inline-block;
1088        }
1089        
1090        .koba-footer-bottom .koba-footer-container {
1091            flex-direction: column;
1092            text-align: center;
1093        }
1094        
1095        .koba-footer-legal {
1096            flex-wrap: wrap;
1097            justify-content: center;
1098        }
1099    }
1100    
1101/*# sourceURL=wp-block-library-inline-css */
1102</style>
1103
1104<style id="classic-theme-styles-inline-css">
1105/*! This file is auto-generated */
1106.wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;
1106padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none}
1107/*# sourceURL=/wp-includes/css/classic-themes.min.css */
1108</style>
1109
1110<style id="global-styles-inline-css">
1111: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%);
1111--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;}
1111.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;}
1112/*# sourceURL=global-styles-inline-css */
1113</style>
1114
1115<link rel='stylesheet' id='front-css-css' href='https://www.saint-florentin.fr/wp-content/plugins/WP_hob_publicite//asset/css/front.css?ver=7.1.2' media='all' />
1116<link rel='stylesheet' id='hcb-frontend-css' href='https://www.saint-florentin.fr/wp-content/plugins/hob-cityhall-booking/assets/css/frontend.css?ver=1.2.0' media='all' />
1117<style id="hcb-frontend-inline-css">
1118
1119            :root { --hcb-primary: #2271b1; }
1120            .hcb-btn-primary, .hcb-booking-form button[type=submit] { background-color: #2271b1; border-color: #2271b1; }
1121            .hcb-btn-primary:hover { background-color: #2271b1cc; }
1122        
1123/*# sourceURL=hcb-frontend-inline-css */
1124</style>
1125<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' />
1126<link rel='stylesheet' id='hob-fc-public-forms-css' href='https://www.saint-florentin.fr/wp-content/plugins/hob-formchat-pro/assets/css/public-forms.css?ver=1.29' media='all' />
1127<link rel='stylesheet' id='leaflet-css' href='https://unpkg.com/[email protected]/dist/leaflet.css?ver=1.9.4' media='all' />
1128<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' />
1129<link rel='stylesheet' id='theme-style-css' href='https://www.saint-florentin.fr/wp-content/themes/hob-koba-civique/style.css?ver=7.1.2' media='all' />
1130<link rel='stylesheet' id='hobrgpd-front-css' href='https://www.saint-florentin.fr/wp-content/plugins/hob-rgpd/assets/css/front.css?ver=1781167963' media='all' />
1131<script id="acy_front_messages_js-js-before">
1132var ACYM_AJAX_START = "https://www.saint-florentin.fr/wp-admin/admin-ajax.php";
1133            var ACYM_AJAX_PARAMS = "?action=acymailing_router&noheader=1&nocache=1790961225";
1134            var ACYM_AJAX = ACYM_AJAX_START + ACYM_AJAX_PARAMS;
1135//# sourceURL=acy_front_messages_js-js-before
1136</script>
vendor: 1 bytes, line 1136
1136
1137<script id="acy_front_messages_js-js" src="https://www.saint-florentin.fr/wp-content/plugins/acymailing/media/js/front/messages.min.js?v=1790752554&#038;ver=11.1.0"></script>
vendor: 1 bytes, line 1137
1137
1138<script id="jquery-core-js" src="https://www.saint-florentin.fr/wp-includes/js/jquery/jquery.min.js?ver=3.7.1"></script>
vendor: 1 bytes, line 1138
1138
1139<script id="jquery-migrate-js" src="https://www.saint-florentin.fr/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1"></script>
1139
1140<link rel="https://api.w.org/" href="https://www.saint-florentin.fr/wp-json/" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://www.saint-florentin.fr/xmlrpc.php?rsd" />
1141<!-- Analytics by WP Statistics - https://wp-statistics.com -->
1142    <style>
1143    /* Overlay résultats */
1144    .koba-search-overlay {
1145        position: fixed;
1146        top: 0;
1147        left: 0;
1148        right: 0;
1149        bottom: 0;
1150        background: var(--koba-primary, #2271b1);
1151        z-index: 9998;
1152        overflow-y: auto;
1153        padding-top: 120px;
1154        display: none;
1155    }
1156    
1157    .koba-search-overlay.active {
1158        display: block;
1159    }
1160    
1161    .koba-search-overlay-inner {
1162        max-width: 1140px;
1163        margin: 0 auto;
1164        padding: 10px;
1165    }
1166    
1167    /* Catégorie */
1168    .koba-search-category {
1169        margin-bottom: 40px;
1170    }
1171    
1172    .koba-search-category-title {
1173        color: var(--koba-secondary, #faaf00);
1174        font-size: 1.8rem;
1175        font-weight: 600;
1176        margin: 0 0 15px 0;
1177        padding-bottom: 10px;
1178        border-bottom: 1px solid rgba(255,255,255,0.2);
1179    }
1180    
1181    /* Liste */
1182    .koba-search-list {
1183        list-style: none;
1184        margin: 0;
1185        padding: 0;
1186    }
1187    
1188    .koba-search-item {
1189        border-bottom: 1px solid rgba(255,255,255,0.1);
1190    }
1191    
1192    .koba-search-link {
1193        display: block;
1194        padding: 14px 0;
1195        color: #fff;
1196        text-decoration: none;
1197        font-size: 1.05rem;
1198        transition: padding-left 0.2s, color 0.2s;
1199    }
1200    
1201    .koba-search-link:hover {
1202        padding-left: 15px;
1203        color: var(--koba-secondary, #faaf00);
1204    }
1205    
1206    .koba-search-link mark {
1207        background: var(--koba-secondary, #faaf00);
1208        color: #1a1a2e;
1209        padding: 2px 4px;
1210        border-radius: 3px;
1211    }
1212    
1213    .koba-search-date {
1214        color: rgba(255,255,255,0.5);
1215        font-size: 0.9rem;
1216        margin-left: 10px;
1217    }
1218    
1219    /* Loading */
1220    .koba-search-loading {
1221        text-align: center;
1222        padding: 60px;
1223        color: rgba(255,255,255,0.7);
1224    }
1225    
1226    .koba-search-spinner {
1227        width: 40px;
1228        height: 40px;
1229        border: 3px solid rgba(255,255,255,0.2);
1230        border-top-color: #fff;
1231        border-radius: 50%;
1232        animation: koba-spin 0.8s linear infinite;
1233        margin: 0 auto 15px;
1234    }
1235    
1236    @keyframes koba-spin {
1237        to { transform: rotate(360deg); }
1238    }
1239    
1240    /* No results */
1241    .koba-search-no-results {
1242        text-align: center;
1243        padding: 60px;
1244        color: rgba(255,255,255,0.6);
1245    }
1246    
1247    .koba-search-no-results svg {
1248        width: 60px;
1249        height: 60px;
1250        margin-bottom: 20px;
1251        opacity: 0.4;
1252    }
1253    
1254    @media (max-width: 768px) {
1255        .koba-search-overlay {
1256            padding-top: 100px;
1257        }
1258        .koba-search-overlay-inner {
1259            padding: 20px;
1260        }
1261        .koba-search-category-title {
1262            font-size: 1.4rem;
1263        }
1264    }
1265    </style>
1266        <style>
1267    /* Menu adaptatif */
1268    .koba-nav-list {
1269        display: flex;
1270        flex-wrap: wrap;
1271        align-items: center;
1272    }
1273    
1274    /* Mode compact (9-10 éléments) */
1275    .koba-nav-list.koba-nav-compact .koba-nav-link {
1276        font-size: 12px;
1277        padding-left: 12px;
1278        padding-right: 12px;
1279    }
1280    
1281    /* Mode très compact (11+ éléments) */
1282    .koba-nav-list.koba-nav-very-compact .koba-nav-link {
1283        font-size: 10px;
1284        padding-left: 4px;
1285        padding-right: 4px;
1286    }
1287    @media (max-width: 1599px) {
1288        .koba-nav-list.koba-nav-compact .koba-nav-link {
1289            font-size: 12px;
1290            padding-left: 8px;
1291            padding-right: 8px;
1292        }
1293        .koba-nav-list.koba-nav-very-compact .koba-nav-link {
1294        font-size: 9px;
1295        padding-left: 0px;
1296        padding-right: 0px;
1297        }
1298    }
1299    @media (max-width: 1299px) {
1300        .koba-nav-list.koba-nav-compact .koba-nav-link {
1301            font-size: 10px;
1302            padding-left: 8px;
1303            padding-right: 8px;
1304        }
1305        .koba-nav-list.koba-nav-very-compact .koba-nav-link {
1306            font-size: 8px;
1307            padding-left: 4px;
1308            padding-right: 4px;
1309        }
1310    }
1311    @media (max-width: 1199px) {
1312        .koba-nav-list.koba-nav-compact .koba-nav-link {
1313            font-size: 9px;
1314            padding-left: 3px;
1315            padding-right: 3px;
1316        }
1317        .koba-nav-list.koba-nav-very-compact .koba-nav-link {
1318            font-size: 8px;
1319            padding-left: 2px;
1320            padding-right: 2px;
1321        }
1322    }
1323    </style>
1324    <meta name="generator" content="Koba Civique By Hob" />
1325<style id='koba-options-css'>
1326.koba-newsletter, .koba-option-newsletter, [data-koba-option="newsletter"] { display: none !important; }
1327.koba-rss, .koba-option-rss, [data-koba-option="rss"] { display: none !important; }
1328.koba-chat, .koba-option-chat, [data-koba-option="chat"] { display: none !important; }
1329.koba-survey, .koba-option-survey, [data-koba-option="survey"] { display: none !important; }
1330.koba-video_slider, .koba-option-video_slider, [data-koba-option="video_slider"] { display: none !important; }
1331.koba-payfip, .koba-option-payfip, [data-koba-option="payfip"] { display: none !important; }
1332.koba-fichiers, .koba-option-fichiers, [data-koba-option="fichiers"] { display: none !important; }
1333.koba-municipal, .koba-option-municipal, [data-koba-option="municipal"] { display: none !important; }
1334.koba-app_citoyen, .koba-option-app_citoyen, [data-koba-option="app_citoyen"] { display: none !important; }
1335.koba-franceconnect, .koba-option-franceconnect, [data-koba-option="franceconnect"] { display: none !important; }
1336.koba-voisinvigilant, .koba-option-voisinvigilant, [data-koba-option="voisinvigilant"] { display: none !important; }
1337.koba-actes, .koba-option-actes, [data-koba-option="actes"] { display: none !important; }
1338.koba-affichage_dynamique, .koba-option-affichage_dynamique, [data-koba-option="affichage_dynamique"] { display: none !important; }
1339.koba-rgpd_avance, .koba-option-rgpd_avance, [data-koba-option="rgpd_avance"] { display: none !important; }
1340.koba-multi_langues, .koba-option-multi_langues, [data-koba-option="multi_langues"] { display: none !important; }
1341.koba-carte_dynamique, .koba-option-carte_dynamique, [data-koba-option="carte_dynamique"] { display: none !important; }
1342.koba-reservation_salles, .koba-option-reservation_salles, [data-koba-option="reservation_salles"] { display: none !important; }
1343.koba-locaux_pro, .koba-option-locaux_pro, [data-koba-option="locaux_pro"] { display: none !important; }
1344.koba-statistiques, .koba-option-statistiques, [data-koba-option="statistiques"] { display: none !important; }
1345.koba-courrier, .koba-option-courrier, [data-koba-option="courrier"] { display: none !important; }
1346.koba-panneaupocket_iframe, .koba-option-panneaupocket_iframe, [data-koba-option="panneaupocket_iframe"] { display: none !important; }
1347.koba-panneaupocket_api, .koba-option-panneaupocket_api, [data-koba-option="panneaupocket_api"] { display: none !important; }
1348.koba-espace_collaboratif, .koba-option-espace_collaboratif, [data-koba-option="espace_collaboratif"] { display: none !important; }
1349.koba-actu_association, .koba-option-actu_association, [data-koba-option="actu_association"] { display: none !important; }
1350.koba-billetterie, .koba-option-billetterie, [data-koba-option="billetterie"] { display: none !important; }
1351.koba-accessibilite, .koba-option-accessibilite, [data-koba-option="accessibilite"] { display: none !important; }
1352.koba-espace_citoyen, .koba-option-espace_citoyen, [data-koba-option="espace_citoyen"] { display: none !important; }
1353.koba-visio_conference, .koba-option-visio_conference, [data-koba-option="visio_conference"] { display: none !important; }
1354.koba-apidae, .koba-option-apidae, [data-koba-option="apidae"] { display: none !important; }
1355.koba-prise_rdv, .koba-option-prise_rdv, [data-koba-option="prise_rdv"] { display: none !important; }
1356.koba-marche_public, .koba-option-marche_public, [data-koba-option="marche_public"] { display: none !important; }
1357.koba-portail_famille, .koba-option-portail_famille, [data-koba-option="portail_famille"] { display: none !important; }
1358.koba-webcam, .koba-option-webcam, [data-koba-option="webcam"] { display: none !important; }
1359.koba-reseaux_sociaux, .koba-option-reseaux_sociaux, [data-koba-option="reseaux_sociaux"] { display: none !important; }
1360.koba-archives_opendata, .koba-option-archives_opendata, [data-koba-option="archives_opendata"] { display: none !important; }
1361.koba-encombrants_dechets, .koba-option-encombrants_dechets, [data-koba-option="encombrants_dechets"] { display: none !important; }
1362.koba-zapette, .koba-option-zapette, [data-koba-option="zapette"] { display: none !important; }
1363.koba-flipbook, .koba-option-flipbook, [data-koba-option="flipbook"] { display: none !important; }
1364.koba-extranet_commissions, .koba-option-extranet_commissions, [data-koba-option="extranet_commissions"] { display: none !important; }
1365.koba-sms_alerte, .koba-option-sms_alerte, [data-koba-option="sms_alerte"] { display: none !important; }
1366.koba-recherche_avancee, .koba-option-recherche_avancee, [data-koba-option="recherche_avancee"] { display: none !important; }
1367</style>
1368</head>
1369
1370<body class="home blog wp-theme-hob-koba-civique site-id-66 koba-has-alertes">
1371    <style>
1372        #koba-upsell-banner {
1373            display: none; /* révélé par JS uniquement en mode PWA standalone */
1374            align-items: flex-start;
1375            gap: 10px;
1376            background: #1975ae;
1377            color: #fff;
1378            padding: calc(10px + env(safe-area-inset-top)) 14px 10px;
1379            font-family: inherit;
1380            font-size: .82rem;
1381            line-height: 1.4;
1382        }
1383        #koba-upsell-banner.koba-upsell-visible { display: flex;     
1384            z-index: 2147483647;
1385            position: relative; }
1386        #koba-upsell-banner .kub-text { flex: 1; min-width: 0; }
1387        #koba-upsell-banner .kub-close {
1388            background: rgba(255,255,255,.18);
1389            border: none;
1390            color: #fff;
1391            font-size: .95rem;
1392            line-height: 1;
1393            cursor: pointer;
1394            padding: 6px 9px;
1395            border-radius: 6px;
1396            flex-shrink: 0;
1397        }
1398        #koba-upsell-banner .kub-close:hover { background: rgba(255,255,255,.3); }
1399    </style>
1400
1401    <div id="koba-upsell-banner" role="alert">
1402        <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>
1403        <button class="kub-close" id="koba-upsell-close" aria-label="Fermer">&#10005;</button>
1404    </div>
1405
1406    
1406<script>
1407    (function() {
1408        var isPwa = window.matchMedia('(display-mode: standalone)').matches
1409                 || window.navigator.standalone === true;
1410        if (!isPwa) return; // ← retirer cette ligne pour afficher aussi dans le navigateur
1411
1412        var KEY = 'koba_upsell_closed';
1413        if (localStorage.getItem(KEY) === '1') return;
1414
1415        function show() {
1416            var b = document.getElementById('koba-upsell-banner');
1417            if (!b) return;
1418            b.classList.add('koba-upsell-visible');
1419
1420            // Comptage : 1 vue par session (ouverture de l'app)
1421            if (!sessionStorage.getItem('koba_upsell_counted')) {
1422                sessionStorage.setItem('koba_upsell_counted', '1');
1423                var fd = new FormData();
1424                fd.append('action', 'koba_upsell_view');
1425                fetch('https://www.saint-florentin.fr/wp-admin/admin-ajax.php', {
1426                    method: 'POST', body: fd, credentials: 'include'
1427                }).catch(function(){});
1428            }
1429
1430            var c = document.getElementById('koba-upsell-close');
1431            if (c) c.addEventListener('click', function() {
1432                b.classList.remove('koba-upsell-visible');
1433                localStorage.setItem(KEY, '1');
1434            });
1435        }
1436        if (document.readyState !== 'loading') show();
1437        else document.addEventListener('DOMContentLoaded', show);
1438    })();
1439    </script>
1439
1440    
1441<a class="skip-link visually-hidden-focusable" href="#main-content">Aller au contenu principal</a>
1442
1443<header class="koba-header" role="banner">
1444    <!-- Container principal avec position relative -->
1445    <div class="koba-header-wrapper">
1446        
1447        <!-- Logo - couvre les deux barres -->
1448        <a href="https://www.saint-florentin.fr/" class="koba-logo">
1449                            <img src="https://www.saint-florentin.fr/wp-content/uploads/sites/66/2026/02/logo-header-1770206920.jpg" alt="COMMUNE DE SAINT-FLORENTIN - Accueil">
1450                    </a>
1451        
1452        <!-- Barre supérieure (orange) -->
1453        <div class="koba-topbar">
1454            <div class="koba-topbar-inner">
1455                <!-- Hamburger (mobile uniquement) -->
1456                <button class="koba-hamburger" id="koba-hamburger" aria-label="Menu">
1457                    <span></span>
1458                    <span></span>
1459                    <span></span>
1460                </button>
1461                
1462                <!-- Menu secondaire gauche (desktop) -->               
1463                <nav class="koba-topbar-menu">
1464                    <ul class="koba-topbar-list">
1465                        <li class="menu-item menu-item-type-post_type menu-item-object-page">
1466                            <a href="https://www.saint-florentin.fr/">ACCUEIL</a>
1467                        </li>
1468                        <li class="menu-item menu-item-type-post_type menu-item-object-page">
1469                            <a href="https://www.saint-florentin.fr/annuaire/">ANNUAIRE</a>
1470                        </li>
1471                        <li class="menu-item menu-item-type-post_type menu-item-object-page">
1472                            <a href="https://www.saint-florentin.fr/contact/">NOUS CONTACTER</a>
1473                        </li>
1474                        <li class="menu-item menu-item-type-post_type menu-item-object-page">
1475                            <a href="https://www.saint-florentin.fr/emploi/">EMPLOI</a>
1476                        </li>
1477                                            </ul>   
1478                </nav>
1479                
1480                <!-- Lien droite (desktop) -->
1481                               
1482               
1483            </div>
1484        </div>
1485        
1486        <!-- Barre principale (bleu) -->
1487        <div class="koba-navbar">
1488            <div class="koba-navbar-inner">
1489                
1490                <!-- Menu principal (desktop) -->
1491                <nav class="koba-main-nav" id="koba-main-nav">
1492                                        
1493                    <ul class="koba-nav-list">
1494                                                <li class="koba-nav-item has-megamenu">
1495                            <a href="#" class="koba-nav-link" data-megamenu="6">
1496                                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">
1497                                    <path d="M6 9l6 6 6-6"/>
1498                                </svg>
1499                                                            </a>
1500                            
1501                                                        <div class="koba-megamenu" id="megamenu-6">
1502                                <div class="koba-megamenu-inner">
1503                                    <div class="koba-megamenu-col1"></div>
1504                                    
1505                                    <div class="koba-megamenu-col2">
1506                                        <span class="koba-megamenu-title">Vie municipale</span>
1507                                    </div>
1508                                    
1509                                    <div class="koba-megamenu-col3">
1510                                        <ul class="koba-megamenu-list">
1511                                                                                        <li class="koba-megamenu-item ">
1512                                                <a href="https://www.saint-florentin.fr/articles/le-conseil-municipal" class="koba-megamenu-link">
1513                                                    Conseil municipal                                                                                                    </a>
1514                                                
1515                                                                                            </li>
1516                                                                                        <li class="koba-megamenu-item ">
1517                                                <a href="https://www.saint-florentin.fr/articles/compte-rendus-de-conseil-municipal" class="koba-megamenu-link">
1518                                                    Comptes-rendus des conseils municipaux                                                                                                    </a>
1519                                                
1520                                                                                            </li>
1521                                                                                        <li class="koba-megamenu-item has-submenu">
1522                                                <a href="#" class="koba-megamenu-link">
1523                                                    Délibérations du conseil municipal                                                                                                        <svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true" focusable="false">
1524                                                        <path d="M9 18l6-6-6-6"/>
1525                                                    </svg>
1526                                                                                                    </a>
1527                                                
1528                                                                                                <ul class="koba-megamenu-sublist">
1529                                                                                                        <li class="">
1530                                                        <a href="https://www.saint-florentin.fr/articles/deliberations-du-conseil-municipal-2026">
1531                                                            Délibérations du conseil municipal 2026                                                                                                                    </a>
1532                                                                                                            </li>
1533                                                                                                        <li class="">
1534                                                        <a href="https://www.saint-florentin.fr/articles/deliberations-du-conseil-municipal-2025">
1535                                                            Délibérations du conseil municipal 2025                                                                                                                    </a>
1536                                                                                                            </li>
1537                                                                                                        <li class="">
1538                                                        <a href="https://www.saint-florentin.fr/articles/deliberations-du-conseil-municipal-2024">
1539                                                            Délibérations du conseil municipal 2024                                                                                                                    </a>
1540                                                                                                            </li>
1541                                                                                                        <li class="">
1542                                                        <a href="https://www.saint-florentin.fr/articles/deliberation-du-conseil-municipal">
1543                                                            Délibérations du conseil municipal 2022-2023                                                                                                                    </a>
1544                                                                                                            </li>
1545                                                                                                    </ul>
1546                                                                                            </li>
1547                                                                                        <li class="koba-megamenu-item has-submenu">
1548                                                <a href="#" class="koba-megamenu-link">
1549                                                    Arrêtés municipaux                                                                                                        <svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true" focusable="false">
1550                                                        <path d="M9 18l6-6-6-6"/>
1551                                                    </svg>
1552                                                                                                    </a>
1553                                                
1554                                                                                                <ul class="koba-megamenu-sublist">
1555                                                                                                        <li class="">
1556                                                        <a href="https://www.saint-florentin.fr/articles/arretes-municipaux-2025">
1557                                                            Arrêtés municipaux (hors police/urbanisme) 2025-2026                                                                                                                    </a>
1558                                                                                                            </li>
1559                                                                                                        <li class="">
1560                                                        <a href="https://www.saint-florentin.fr/articles/arretes-municipaux-divers">
1561                                                            Arrêtés municipaux 2022-2024                                                                                                                    </a>
1562                                                                                                            </li>
1563                                                                                                        <li class="has-sub-submenu">
1564                                                        <a href="https://www.saint-florentin.fr/articles/arretes-municipaux-police">
1565                                                            Arrêtés municipaux - police                                                                                                                        <svg width="10" height="10" viewB
1565ox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true" focusable="false">
1566                                                                <path d="M9 18l6-6-6-6"/>
1567                                                            </svg>
1568                                                                                                                    </a>
1569                                                                                                                <ul class="koba-megamenu-sub-sublist">
1570                                                                                                                        <li>
1571                                                                <a href="https://www.saint-florentin.fr/articles/arretes-municipaux-police-2e-semestre-2026/">
1572                                                                    Arrêtés municipaux &#8211; police 2e semestre 2026                                                                </a>
1573                                                            </li>
1574                                                                                                                        <li>
1575                                                                <a href="https://www.saint-florentin.fr/articles/arretes-municipaux-police-1er-trimestre-2026">
1576                                                                    Arrêtés municipaux - police 1er trimestre 2026                                                                </a>
1577                                                            </li>
1578                                                                                                                        <li>
1579                                                                <a href="https://www.saint-florentin.fr/articles/arretes-municipaux-police-4e-trimestre-2025">
1580                                                                    Arrêtés municipaux - police 4e trimestre 2025                                                                </a>
1581                                                            </li>
1582                                                                                                                        <li>
1583                                                                <a href="https://www.saint-florentin.fr/articles/arretes-municipaux-police-2e-semestre-2025">
1584                                                                    Arrêtés municipaux - police 3e trimestre 2025                                                                </a>
1585                                                            </li>
1586                                                                                                                        <li>
1587                                                                <a href="https://www.saint-florentin.fr/articles/arretes-municipaux-police-1er-semestre-2025">
1588                                                                    Arrêtés municipaux - police 1er semestre 2025                                                                </a>
1589                                                            </li>
1590                                                                                                                    </ul>
1591                                                                                                            </li>
1592                                                                                                    </ul>
1593                                                                                            </li>
1594                                                                                        <li class="koba-megamenu-item ">
1595                                                <a href="https://www.saint-florentin.fr/articles/marches-publics" class="koba-megamenu-link">
1596                                                    Marchés publics                                                                                                    </a>
1597                                                
1598                                                                                            </li>
1599                                                                                    </ul>
1600                                    </div>
1601                                    
1602                                    <div class="koba-megamenu-col4"></div>
1603                                </div>
1604                            </div>
1605                                                    </li>
1606                                                <li class="koba-nav-item has-megamenu">
1607                            <a href="#" class="koba-nav-link" data-megamenu="23">
1608                                A votre service                                                                <svg class="koba-nav-arrow" width="10" height="10" viewB
1608ox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true" focusable="false">
1609                                    <path d="M6 9l6 6 6-6"/>
1610                                </svg>
1611                                                            </a>
1612                            
1613                                                        <div class="koba-megamenu" id="megamenu-23">
1614                                <div class="koba-megamenu-inner">
1615                                    <div class="koba-megamenu-col1"></div>
1616                                    
1617                                    <div class="koba-megamenu-col2">
1618                                        <span class="koba-megamenu-title">A votre service</span>
1619                                    </div>
1620                                    
1621                                    <div class="koba-megamenu-col3">
1622                                        <ul class="koba-megamenu-list">
1623                                                                                        <li class="koba-megamenu-item ">
1624                                                <a href="https://www.saint-florentin.fr/articles/les-services-municipaux" class="koba-megamenu-link">
1625                                                    Coordonnées des services municipaux                                                                                                    </a>
1626                                                
1627                                                                                            </li>
1628                                                                                        <li class="koba-megamenu-item ">
1629                                                <a href="https://www.saint-florentin.fr/articles/maip" class="koba-megamenu-link">
1630                                                    Maison France Services                                                                                                    </a>
1631                                                
1632                                                                                            </li>
1633                                                                                        <li class="koba-megamenu-item ">
1634                                                <a href="https://www.saint-florentin.fr/articles/ccas" class="koba-megamenu-link">
1635                                                    Centre communal d&#039;action sociale (CCAS)                                                                                                    </a>
1636                                                
1637                                                                                            </li>
1638                                                                                        <li class="koba-megamenu-item has-submenu">
1639                                                <a href="#" class="koba-megamenu-link">
1640                                                    Police                                                                                                        <svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true" focusable="false">
1641                                                        <path d="M9 18l6-6-6-6"/>
1642                                                    </svg>
1643                                                                                                    </a>
1644                                                
1645                                                                                                <ul class="koba-megamenu-sublist">
1646                                                                                                        <li class="">
1647                                                        <a href="https://www.saint-florentin.fr/articles/police-municipale">
1648                                                            Accueil et mission                                                                                                                    </a>
1649                                                                                                            </li>
1650                                                                                                        <li class="">
1651                                                        <a href="https://www.saint-florentin.fr/articles/arretes-de-police-du-maire">
1652                                                            Police du maire                                                                                                                    </a>
1653                                                                                                            </li>
1654                                                                                                        <li class="">
1655                                                        <a href="https://www.saint-florentin.fr/articles/tranquilite-vacances">
1656                                                            Opération tranquillité vacances                                                                                                                    </a>
1657                                                                                                            </li>
1658                                                                                                        <li class="">
1659                                                        <a href="https://www.saint-florentin.fr/articles/declaration-de-chiens">
1660                                                            Déclaration de chien                                                                                                                    </a>
1661                                                                                                            </li>
1662                                                                                                        <li class="">
1663                                                        <a href="https://www.saint-florentin.fr/articles/dicrim">
1664                                                            Document Risques Majeurs                                                                                                                    </a>
1665                                                                                                            </li>
1666                                                                                                        <li class="">
1667                                                        <a href="https://www.saint-florentin.fr/articles/fabriquez-votre-disque-de-stationnement-europeen-zone-bleue">
1668                                                            Zones &quot;bleues&quot;                                                                                                                    </a>
1669                                                                                                            </li>
1670                                                                                                    </ul>
1671                                                                                            </li>
1672                                                                                        <li class="koba-megamenu-item ">
1673                                                <a href="https://www.saint-florentin.fr/articles/annuaire-de-l-habitant" class="koba-megamenu-link">
1674                                                    Annuaires des services publics                                                                                                    </a>
1675                                                
1676                                                                                            </li>
1677                                                                                        <li class="koba-megamenu-item ">
1678                                                <a href="https://www.saint-florentin.fr/articles/adresses-utiles" class="koba-megamenu-link">
1679                                                    Adresses utiles                                                                                                    </a>
1680                                                
1681                                                                                            </li>
1682                                                                                        <li class="koba-megamenu-item ">
1683                                                <a href="https://www.saint-florentin.fr/articles/salles-municipales" class="koba-megamenu-link">
1684                                                    Salles municipales                                                                                                    </a>
1685                                                
1686                                                                                            </li>
1687                                                                                        <li class="koba-megamenu-item has-submenu">
1688                                                <a href="#" class="koba-megamenu-link">
1689                                                    Transports                                                                                                        <svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true" focusable="false">
1690                                                        <path d="M9 18l6-6-6-6"/>
1691                                                    </svg>
1692                                                                                                    </a>
1693                                                
1694                                                                                                <ul class="koba-megamenu-sublist">
1695                                                                                                        <li class="">
1696                                                        <a href="https://www.saint-florentin.fr/articles/blablacar">
1697                                                            Blablacar                                                                                                                    </a>
1698                                                                                                            </li>
1699                                                                                                        <li class="">
1700                                                        <a href="https://www.saint-florentin.fr/articles/train">
1701                                                            Train                                                                                                                    </a>
1702                                                                                                            </li>
1703                                                                                                        <li class="">
1704                                                        <a href="https://www.saint-florentin.fr/articles/transports">
1705                                                            Bus                                                                                                                    </a>
1706                                                                                                            </li>
1707                                                                                                    </ul>
1708                                                                                            </li>
1709                                                                                        <li class="koba-megamenu-item ">
1710                                                <a href="https://cc-sereinarmance.fr/reduire-trier-et-valoriser-les-dechets/" class="koba-megamenu-link">
1711                                                    Déchets                                                                                                    </a>
1712                                                
1713                                                                                            </li>
1714                                                                                    </ul>
1715                                    </div>
1716                                    
1717                                    <div class="koba-megamenu-col4"></div>
1718                                </div>
1719                            </div>
1720                                                    </li>
1721                                                <li class="koba-nav-item has-megamenu">
1722                            <a href="#" class="koba-nav-link" data-megamenu="42">
1723                                Démarches et formalités                                                                <svg class="koba-nav-arrow" width="10" height="10" viewB
1723ox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true" focusable="false">
1724                                    <path d="M6 9l6 6 6-6"/>
1725                                </svg>
1726                                                            </a>
1727                            
1728                                                        <div class="koba-megamenu" id="megamenu-42">
1729                                <div class="koba-megamenu-inner">
1730                                    <div class="koba-megamenu-col1"></div>
1731                                    
1732                                    <div class="koba-megamenu-col2">
1733                                        <span class="koba-megamenu-title">Démarches et formalités</span>
1734                                    </div>
1735                                    
1736                                    <div class="koba-megamenu-col3">
1737                                        <ul class="koba-megamenu-list">
1738                                                                                        <li class="koba-megamenu-item ">
1739                                                <a href="https://www.saint-florentin.fr/articles/carte-d-identite" class="koba-megamenu-link">
1740                                                    Carte d&#039;identité / Passeport                                                                                                    </a>
1741                                                
1742                                                                                            </li>
1743                                                                                        <li class="koba-megamenu-item ">
1744                                                <a href="https://www.saint-florentin.fr/articles/mariages" class="koba-megamenu-link">
1745                                                    Mariage                                                                                                    </a>
1746                                                
1747                                                                                            </li>
1748                                                                                        <li class="koba-megamenu-item ">
1749                                                <a href="https://www.saint-florentin.fr/articles/cimetiere" class="koba-megamenu-link">
1750                                                    Cimetières                                                                                                    </a>
1751                                                
1752                                                                                            </li>
1753                                                                                        <li class="koba-megamenu-item has-submenu">
1754                                                <a href="#" class="koba-megamenu-link">
1755                                                    Urbanisme                                                                                                        <svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true" focusable="false">
1756                                                        <path d="M9 18l6-6-6-6"/>
1757                                                    </svg>
1758                                                                                                    </a>
1759                                                
1760                                                                                                <ul class="koba-megamenu-sublist">
1761                                                                                                        <li class="">
1762                                                        <a href="https://www.saint-florentin.fr/articles/declaration-de-travaux-permis-de-construire">
1763                                                            Déclaration de travaux / permis de construire                                                                                                                    </a>
1764                                                                                                            </li>
1765                                                                                                        <li class="has-sub-submenu">
1766                                                        <a href="#">
1767                                                            Arrêtés municipaux urbanisme                                                                                                                        <svg width="10" height="10" viewB
1767ox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true" focusable="false">
1768                                                                <path d="M9 18l6-6-6-6"/>
1769                                                            </svg>
1770                                                                                                                    </a>
1771                                                                                                                <ul class="koba-megamenu-sub-sublist">
1772                                                                                                                        <li>
1773                                                                <a href="https://www.saint-florentin.fr/articles/urbanisme-demande-de-permis-de-construire-et-declarations-prealables">
1774                                                                    Demandes d&#039;urbanisme                                                                </a>
1775                                                            </li>
1776                                                                                                                        <li>
1777                                                                <a href="https://www.saint-florentin.fr/articles/arretes-municipaux-urbanisme-2024">
1778                                                                    Arrêtés municipaux - urbanisme 2024                                                                </a>
1779                                                            </li>
1780                                                                                                                        <li>
1781                                                                <a href="https://www.saint-florentin.fr/articles/arretes-municipaux">
1782                                                                    Arrêtés municipaux - urbanisme 2023                                                                </a>
1783                                                            </li>
1784                                                                                                                        <li>
1785                                                                <a href="https://www.saint-florentin.fr/articles/arretes-urbanisme-2022">
1786                                                                    Arrêtés municipaux - urbanisme 2022                                                                </a>
1787                                                            </li>
1788                                                                                                                    </ul>
1789                                                                                                            </li>
1790                                                                                                        <li class="">
1791                                                        <a href="https://www.saint-florentin.fr/articles/cadastre">
1792                                                            Plan local d&#039;urbanisme                                                                                                                    </a>
1793                                                                                                            </li>
1794                                                                                                        <li class="">
1795                                                        <a href="https://www.saint-florentin.fr/articles/matrice-cadastrale-releve-de-propriete">
1796                                                            Matrice cadastrale / relevé de propriété                                                                                                                    </a>
1797                                                                                                            </li>
1798                                                                                                        <li class="">
1799                                                        <a href="https://www.saint-florentin.fr/articles/nuancier-ral-saint-florentin">
1800                                                            Nuancier RAL Saint-Florentin                                                                                                                    </a>
1801                                                                                                            </li>
1802                                                                                                    </ul>
1803                                                                                            </li>
1804                                                                                        <li class="koba-megamenu-item ">
1805                                                <a href="https://www.saint-florentin.fr/articles/permis-de-louer-mode-d-emploi" class="koba-megamenu-link">
1806                                                    Permis de louer                                                                                                    </a>
1807                                                
1808                                                                                            </li>
1809                                                                                        <li class="koba-megamenu-item ">
1810                                                <a href="https://www.saint-florentin.fr/articles/eau-assainissement" class="koba-megamenu-link">
1811                                                    Eau / assainissement                                                                                                    </a>
1812                                                
1813                                                                                            </li>
1814                                                                                    </ul>
1815                                    </div>
1816                                    
1817                                    <div class="koba-megamenu-col4"></div>
1818                                </div>
1819                            </div>
1820                                                    </li>
1821                                                <li class="koba-nav-item has-megamenu">
1822                            <a href="#" class="koba-nav-link" data-megamenu="58">
1823                                Culture / loisirs                                                                <svg class="koba-nav-arrow" width="10" height="10" viewB
1823ox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true" focusable="false">
1824                                    <path d="M6 9l6 6 6-6"/>
1825                                </svg>
1826                                                            </a>
1827                            
1828                                                        <div class="koba-megamenu" id="megamenu-58">
1829                                <div class="koba-megamenu-inner">
1830                                    <div class="koba-megamenu-col1"></div>
1831                                    
1832                                    <div class="koba-megamenu-col2">
1833                                        <span class="koba-megamenu-title">Culture / loisirs</span>
1834                                    </div>
1835                                    
1836                                    <div class="koba-megamenu-col3">
1837                                        <ul class="koba-megamenu-list">
1838                                                                                        <li class="koba-megamenu-item ">
1839                                                <a href="https://www.saint-florentin.fr/articles/horaires-et-fonctionnement" class="koba-megamenu-link">
1840                                                    Médiathèque                                                                                                    </a>
1841                                                
1842                                                                                            </li>
1843                                                                                        <li class="koba-megamenu-item ">
1844                                                <a href="http://www.caleflow.fr/" class="koba-megamenu-link">
1845                                                    Centre aquatique intercommunal Le Flow                                                                                                    </a>
1846                                                
1847                                                                                            </li>
1848                                                                                        <li class="koba-megamenu-item ">
1849                                                <a href="https://www.saint-florentin.fr/articles/mediatheque-numerique-de-l-yonne" class="koba-megamenu-link">
1850                                                    Médiathèque numérique de l&#039;Yonne                                                                                                    </a>
1851                                                
1852                                                                                            </li>
1853                                                                                        <li class="koba-megamenu-item ">
1854                                                <a href="https://www.musee-de-saint-florentin.fr/home.html" class="koba-megamenu-link">
1855                                                    Musée                                                                                                    </a>
1856                                                
1857                                                                                            </li>
1858                                                                                        <li class="koba-megamenu-item ">
1859                                                <a href="https://cc-sereinarmance.fr/bienvenue-a-lecole-de-musique/" class="koba-megamenu-link">
1860                                                    École de musique                                                                                                    </a>
1861                                                
1862                                                                                            </li>
1863                                                                                        <li class="koba-megamenu-item has-submenu">
1864                                                <a href="#" class="koba-megamenu-link">
1865                                                    Associations                                                                                                        <svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true" focusable="false">
1866                                                        <path d="M9 18l6-6-6-6"/>
1867                                                    </svg>
1868                                                                                                    </a>
1869                                                
1870                                                                                                <ul class="koba-megamenu-sublist">
1871                                                                                                        <li class="">
1872                                                        <a href="https://www.saint-florentin.fr/articles/office-des-associations-florentinoises">
1873                                                            Office des associations                                                                                                                    </a>
1874                                                                                                            </li>
1875                                                                                                        <li class="">
1876                                                        <a href="https://www.saint-florentin.fr/articles/associations">
1877                                                            Liste des associations                                                                                                                    </a>
1878                                                                                                            </li>
1879                                                                                                        <li class="">
1880                                                        <a href="https://www.saint-florentin.fr/articles/associations-demande-de-subventions">
1881                                                            Demande de subventions                                                                                                                    </a>
1882                                                                                                            </li>
1883                                                                                                    </ul>
1884                                                                                            </li>
1885                                                                                        <li class="koba-megamenu-item ">
1886                                                <a href="https://www.saint-florentin.fr/articles/jumelage" class="koba-megamenu-link">
1887                                                    Jumelage                                                                                                    </a>
1888                                                
1889                                                                                            </li>
1890                                                                                    </ul>
1891                                    </div>
1892                                    
1893                                    <div class="koba-megamenu-col4"></div>
1894                                </div>
1895                            </div>
1896                                                    </li>
1897                                                <li class="koba-nav-item has-megamenu">
1898                            <a href="#" class="koba-nav-link" data-megamenu="69">
1899                                Jeunesse                                                                <svg class="koba-nav-arrow" width="10" height="10" viewB
1899ox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true" focusable="false">
1900                                    <path d="M6 9l6 6 6-6"/>
1901                                </svg>
1902                                                            </a>
1903                            
1904                                                        <div class="koba-megamenu" id="megamenu-69">
1905                                <div class="koba-megamenu-inner">
1906                                    <div class="koba-megamenu-col1"></div>
1907                                    
1908                                    <div class="koba-megamenu-col2">
1909                                        <span class="koba-megamenu-title">Jeunesse</span>
1910                                    </div>
1911                                    
1912                                    <div class="koba-megamenu-col3">
1913                                        <ul class="koba-megamenu-list">
1914                                                                                        <li class="koba-megamenu-item ">
1915                                                <a href="https://www.saint-florentin.fr/articles/activites-et-contact" class="koba-megamenu-link">
1916                                                    Service municipal jeunesse                                                                                                    </a>
1917                                                
1918                                                                                            </li>
1919                                                                                        <li class="koba-megamenu-item has-submenu">
1920                                                <a href="#" class="koba-megamenu-link">
1921                                                    Écoles                                                                                                        <svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true" focusable="false">
1922                                                        <path d="M9 18l6-6-6-6"/>
1923                                                    </svg>
1924                                                                                                    </a>
1925                                                
1926                                                                                                <ul class="koba-megamenu-sublist">
1927                                                                                                        <li class="">
1928                                                        <a href="https://www.saint-florentin.fr/articles/inscriptions-scolaires">
1929                                                            Ecoles et inscriptions                                                                                                                    </a>
1930                                                                                                            </li>
1931                                                                                                        <li class="">
1932                                                        <a href="http://col89-marcelayme.ac-dijon.fr/index.php">
1933                                                            Collège                                                                                                                    </a>
1934                                                                                                            </li>
1935                                                                                                    </ul>
1936                                                                                            </li>
1937                                                                                        <li class="koba-megamenu-item has-submenu">
1938                                                <a href="#" class="koba-megamenu-link">
1939                                                    Cantine                                                                                                        <svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true" focusable="false">
1940                                                        <path d="M9 18l6-6-6-6"/>
1941                                                    </svg>
1942                                                                                                    </a>
1943                                                
1944                                                                                                <ul class="koba-megamenu-sublist">
1945                                                                                                        <li class="">
1946                                                        <a href="https://www.saint-florentin.fr/articles/reglement-du-restaurant-scolaire">
1947                                                            Inscription cantine                                                                                                                    </a>
1948                                                                                                            </li>
1949                                                                                                        <li class="">
1950                                                        <a href="https://connect1.3douest.com/connexion?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiIzZG91ZXN0c2VydmVyIiwic3ViIjoiM2RvdWVzdC1hdXRoLXNlcnZlciIsInR5cCI6IkpXVCIsImF1ZCI6eyJ0eXBlIjoiY29sbGVjdGl2aXRlIiwicmVkaXJlY3RfdXJpIjoiaHR0cHM6XC9cL2dlc3Rpb24ubG9naWNpZWwtZW5mYW5jZS5mclwvY29ubmV4aW9uRnJvbUF1dGgiLCJhcGlfZ2xvYmFsX2tleSI6ImJjZTUwNDVkZTI0YjIwZTA4ODAzYTQwNTA4YTk3NDUxIiwiYXBpX2tleSI6ImNhbnRpbmUyIn0sImlhdCI6MTY3OTQ4MD
1950MzMH0.8dU9iLoYTTApYpUdT-GTzdNbv-VC0-jK1hCENVEdWAw&#038;api_key=cantine2">
1951                                                            Portail familles                                                                                                                    </a>
1952                                                                                                            </li>
1953                                                                                                    </ul>
1954                                                                                            </li>
1955                                                                                        <li class="koba-megamenu-item has-submenu">
1956                                                <a href="#" class="koba-megamenu-link">
1957                                                    Transports scolaires                                                                                                        <svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true" focusable="false">
1958                                                        <path d="M9 18l6-6-6-6"/>
1959                                                    </svg>
1960                                                                                                    </a>
1961                                                
1962                                                                                                <ul class="koba-megamenu-sublist">
1963                                                                                                        <li class="">
1964                                                        <a href="https://www.saint-florentin.fr/articles/transports-scolaires">
1965                                                            Transports scolaires écoles                                                                                                                    </a>
1966                                                                                                            </li>
1967                                                                                                        <li class="">
1968                                                        <a href="https://www.bourgognefranchecomte.fr/transports-scolaires-de-lyonne">
1969                                                            Transports scolaires collèges et lycées                                                                                                                    </a>
1970                                                                                                            </li>
1971                                                                                                    </ul>
1972                                                                                            </li>
1973                                                                                        <li class="koba-megamenu-item ">
1974                                                <a href="https://www.saint-florentin.fr/articles/accueil-periscolaire-municipal" class="koba-megamenu-link">
1975                                                    Accueil périscolaire                                                                                                    </a>
1976                                                
1977                                                                                            </li>
1978                                                                                        <li class="koba-megamenu-item ">
1979                                                <a href="https://www.saint-florentin.fr/articles/le-centre-de-loisirs" class="koba-megamenu-link">
1980                                                    Centre aéré                                                                                                    </a>
1981                                                
1982                                                                                            </li>
1983                                                                                        <li class="koba-megamenu-item ">
1984                                                <a href="https://www.saint-florentin.fr/articles/l-association" class="koba-megamenu-link">
1985                                                    Espace famille florentinois                                                                                                    </a>
1986                                                
1987                                                                                            </li>
1988                                                                                        <li class="koba-megamenu-item has-submenu">
1989                                                <a href="#" class="koba-megamenu-link">
1990                                                    Pôle petite enfance                                                                                                        <svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true" focusable="false">
1991                                                        <path d="M9 18l6-6-6-6"/>
1992                                                    </svg>
1993                                                                                                    </a>
1994                                                
1995                                                                                                <ul class="koba-megamenu-sublist">
1996                                                                                                        <li class="">
1997                                                        <a href="https://www.la-maison-bleue.fr/creche/bourgogne-franche-comte/yonne/saint-florentin/tom-pouce">
1998                                                            Crèche Tom Pouce                                                                                                                    </a>
1999                                                                                                            </li>
2000                                                                                                        <li class="">
2001                                                        <a href="https://cc-sereinarmance.fr/les-relais-petite-enfance-pour-favoriser-lepanouissement-des-enfants/">
2002                                                            Relais d&#039;assistants maternels                                                                                                                    </a>
2003                                                                                                            </li>
2004                                                                                                    </ul>
2005                                                                                            </li>
2006                                                                                    </ul>
2007                                    </div>
2008                                    
2009                                    <div class="koba-megamenu-col4"></div>
2010                                </div>
2011                            </div>
2012                                                    </li>
2013                                                <li class="koba-nav-item has-megamenu">
2014                            <a href="#" class="koba-nav-link" data-megamenu="86">
2015                                Tourisme                                                                <svg class="koba-nav-arrow" width="10" height="10" viewB
2015ox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true" focusable="false">
2016                                    <path d="M6 9l6 6 6-6"/>
2017                                </svg>
2018                                                            </a>
2019                            
2020                                                        <div class="koba-megamenu" id="megamenu-86">
2021                                <div class="koba-megamenu-inner">
2022                                    <div class="koba-megamenu-col1"></div>
2023                                    
2024                                    <div class="koba-megamenu-col2">
2025                                        <span class="koba-megamenu-title">Tourisme</span>
2026                                    </div>
2027                                    
2028                                    <div class="koba-megamenu-col3">
2029                                        <ul class="koba-megamenu-list">
2030                                                                                        <li class="koba-megamenu-item ">
2031                                                <a href="https://www.saint-florentin.fr/articles/marches" class="koba-megamenu-link">
2032                                                    Le marché                                                                                                    </a>
2033                                                
2034                                                                                            </li>
2035                                                                                        <li class="koba-megamenu-item ">
2036                                                <a href="https://serein-armance.fr/" class="koba-megamenu-link">
2037                                                    Office de tourisme                                                                                                    </a>
2038                                                
2039                                                                                            </li>
2040                                                                                        <li class="koba-megamenu-item ">
2041                                                <a href="https://www.saint-florentin.fr/articles/camping-de-l-armancon" class="koba-megamenu-link">
2042                                                    Camping municipal de l&#039;Armançon**                                                                                                    </a>
2043                                                
2044                                                                                            </li>
2045                                                                                    </ul>
2046                                    </div>
2047                                    
2048                                    <div class="koba-megamenu-col4"></div>
2049                                </div>
2050                            </div>
2051                                                    </li>
2052                                                <li class="koba-nav-item has-megamenu">
2053                            <a href="#" class="koba-nav-link" data-megamenu="90">
2054                                Projets                                                                <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">
2055                                    <path d="M6 9l6 6 6-6"/>
2056                                </svg>
2057                                                            </a>
2058                            
2059                                                        <div class="koba-megamenu" id="megamenu-90">
2060                                <div class="koba-megamenu-inner">
2061                                    <div class="koba-megamenu-col1"></div>
2062                                    
2063                                    <div class="koba-megamenu-col2">
2064                                        <span class="koba-megamenu-title">Projets</span>
2065                                    </div>
2066                                    
2067                                    <div class="koba-megamenu-col3">
2068                                        <ul class="koba-megamenu-list">
2069                                                                                        <li class="koba-megamenu-item ">
2070                                                <a href="https://www.saint-florentin.fr/articles/amenagement-dun-skatepark-et-dun-terrain-de-cross/" class="koba-megamenu-link">
2071                                                    Aménagement d&rsquo;un skatepark et d&rsquo;un terrain de cross                                                                                                    </a>
2072                                                
2073                                                                                            </li>
2074                                                                                        <li class="koba-megamenu-item ">
2075                                                <a href="https://www.saint-florentin.fr/articles/petite-ville-de-demain" class="koba-megamenu-link">
2076                                                    Petite Ville de Demain                                                                                                    </a>
2077                                                
2078                                                                                            </li>
2079                                                                                    </ul>
2080                                    </div>
2081                                    
2082                                    <div class="koba-megamenu-col4"></div>
2083                                </div>
2084                            </div>
2085                                                    </li>
2086                                            </ul>
2087                                    </nav>
2088                
2089                <!-- Bouton recherche (carré) -->
2090                <button class="koba-search-toggle" id="koba-search-toggle" aria-label="Ouvrir la recherche" aria-expanded="false" aria-controls="koba-search-bar">
2091                    <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">
2092                        <circle cx="11" cy="11" r="8"/>
2093                        <path d="M21 21l-4.35-4.35"/>
2094                    </svg>
2095                </button>
2096                
2097                <!-- Barre de recherche -->
2098<div class="koba-search-bar" id="koba-search-bar">
2099    <div class="koba-search-bar-inner">
2100        <form role="search" method="get" action="https://www.saint-florentin.fr/" class="koba-search-form">
2101            <label for="koba-search-input" class="visually-hidden">Rechercher sur le site</label>
2102            <input type="search" name="s" placeholder="Rechercher" class="koba-search-input" id="koba-search-input" value="" autocomplete="off">
2103            <button type="submit" class="koba-search-submit" aria-label="Lancer la recherche">
2104                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true" focusable="false">
2105                    <circle cx="11" cy="11" r="8"/>
2106                    <path d="M21 21l-4.35-4.35"/>
2107                </svg>
2108            </button>
2109        </form>
2110        <button class="koba-search-close" id="koba-search-close" aria-label="Fermer la recherche">
2111            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true" focusable="false">
2112                <path d="M18 6L6 18M6 6l12 12"/>
2113            </svg>
2114        </button>
2115    </div>
2116</div>
2117            </div>
2118        </div>
2119    </div>
2120    
2121    <!-- Menu mobile -->
2122    <div class="koba-mobile-menu" id="koba-mobile-menu">
2123        <div class="koba-mobile-menu-inner">
2124            <!-- Recherche mobile -->
2125            <div class="koba-mobile-search">
2126                <form role="search" method="get" action="https://www.saint-florentin.fr/" class="koba-mobile-search-form">
2127                    <label for="koba-mobile-search-input" class="visually-hidden">Rechercher sur le site</label>
2128                    <input type="search" name="s" id="koba-mobile-search-input" placeholder="Rechercher..." class="koba-mobile-search-input" value="">
2129                    <button type="submit" class="koba-mobile-search-submit" aria-label="Lancer la recherche">
2130                        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true" focusable="false">
2131                            <circle cx="11" cy="11" r="8"/>
2132                            <path d="M21 21l-4.35-4.35"/>
2133                        </svg>
2134                    </button>
2135                </form>
2136            </div>
2137            <nav class="koba-mobile-nav"><ul id="menu-menu-principal" class="koba-mobile-list"><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">
2137<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.saint-florentin.fr/articles/le-conseil-municipal" class="koba-mobile-link">Conseil municipal</a></div></li><li class="koba-mobile-item"><div class="koba-mobile-item-inner"><a href="https://www.saint-florentin.fr/articles/compte-rendus-de-conseil-municipal" class="koba-mobile-link">Comptes-rendus des conseils municipaux</a></div></li><li class="koba-mobile-item has-children"><div class="koba-mobile-item-inner"><a href="#" class="koba-mobile-link">Délibérations du conseil municipal</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.saint-florentin.fr/articles/deliberations-du-conseil-municipal-2026" class="koba-mobile-link">Délibérations du conseil municipal 2026</a></div></li><li class="koba-mobile-item"><div class="koba-mobile-item-inner"><a href="https://www.saint-florentin.fr/articles/deliberations-du-conseil-municipal-2025" class="koba-mobile-link">Délibérations du conseil municipal 2025</a></div></li><li class="koba-mobile-item"><div class="koba-mobile-item-inner"><a href="https://www.saint-florentin.fr/articles/deliberations-du-conseil-municipal-2024" class="koba-mobile-link">Délibérations du conseil municipal 2024</a></div></li><li class="koba-mobile-item"><div class="koba-mobile-item-inner"><a href="https://www.saint-florentin.fr/articles/deliberation-du-conseil-municipal" class="koba-mobile-link">Délibérations du conseil municipal 2022-2023</a></div></li></ul></li><li class="koba-mobile-item has-children"><div class="koba-mobile-item-inner"><a href="#" class="koba-mobile-link">Arrêtés municipaux</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.saint-florentin.fr/articles/arretes-municipaux-2025" class="koba-mobile-link">Arrêtés municipaux (hors police/urbanisme) 2025-2026</a></div></li><li class="koba-mobile-item"><div class="koba-mobile-item-inner"><a href="https://www.saint-florentin.fr/articles/arretes-municipaux-divers" class="koba-mobile-link">Arrêtés municipaux 2022-2024</a></div></li><li class="koba-mobile-item has-children"><div class="koba-mobile-item-inner"><a href="https://www.saint-florentin.fr/articles/arretes-municipaux-police" class="koba-mobile-link">Arrêtés municipaux - police</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="2"><li class="koba-mobile-item"><div class="koba-mobile-item-inner"><a href="https://www.saint-florentin.fr/articles/arretes-municipaux-police-2e-semestre-2026/" class="koba-mobile-link">Arrêtés municipaux &#8211; police 2e semestre 2026</a></div></li><li class="koba-mobile-item"><div class="koba-mobile-item-inner"><a href="https://www.saint-florentin.fr/articles/arretes-municipaux-police-1er-trimestre-2026" class="koba-mobile-link">Arrêtés municipaux - police 1er trimestre 2026</a></div></li><li class="koba-mobile-item"><div class="koba-mobile-item-inner"><a href="https://www.saint-florentin.fr/articles/arretes-municipaux-police-4e-trimestre-2025" class="koba-mobile-link">Arrêtés municipaux - police 4e trimestre 2025</a></div></li><li class="koba-mobile-item"><div class="koba-mobile-item-inner"><a href="https://www.saint-florentin.fr/articles/arretes-municipaux-police-2e-semestre-2025" class="koba-mobile-link">Arrêtés municipaux - police 3e trimestre 2025</a></div></li><li class="koba-mobile-item"><div class="koba-mobile-item-inner"><a href="https://www.saint-florentin.fr/articles/arretes-municipaux-police-1er-semestre-2025" class="koba-mobile-link">Arrêtés municipaux - police 1er semestre 2025</a></div></li></ul></li></ul></li><li class="koba-mobile-item"><div class="koba-mobile-item-inner"><a href="https://www.saint-florentin.fr/articles/marches-publics" class="koba-mobile-link">Marchés publics</a></div></li></ul></li><li class="koba-mobile-item has-children"><div class="koba-mobile-item-inner"><a href="#" class="koba-mobile-link">A votre service</a><button class="koba-mobile-toggle" aria-label="Ouvrir sous-menu">
2137<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.saint-florentin.fr/articles/les-services-municipaux" class="koba-mobile-link">Coordonnées des services municipaux</a></div></li><li class="koba-mobile-item"><div class="koba-mobile-item-inner"><a href="https://www.saint-florentin.fr/articles/maip" class="koba-mobile-link">Maison France Services</a></div></li><li class="koba-mobile-item"><div class="koba-mobile-item-inner"><a href="https://www.saint-florentin.fr/articles/ccas" class="koba-mobile-link">Centre communal d&#039;action sociale (CCAS)</a></div></li><li class="koba-mobile-item has-children"><div class="koba-mobile-item-inner"><a href="#" class="koba-mobile-link">Police</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.saint-florentin.fr/articles/police-municipale" class="koba-mobile-link">Accueil et mission</a></div></li><li class="koba-mobile-item"><div class="koba-mobile-item-inner"><a href="https://www.saint-florentin.fr/articles/arretes-de-police-du-maire" class="koba-mobile-link">Police du maire</a></div></li><li class="koba-mobile-item"><div class="koba-mobile-item-inner"><a href="https://www.saint-florentin.fr/articles/tranquilite-vacances" class="koba-mobile-link">Opération tranquillité vacances</a></div></li><li class="koba-mobile-item"><div class="koba-mobile-item-inner"><a href="https://www.saint-florentin.fr/articles/declaration-de-chiens" class="koba-mobile-link">Déclaration de chien</a></div></li><li class="koba-mobile-item"><div class="koba-mobile-item-inner"><a href="https://www.saint-florentin.fr/articles/dicrim" class="koba-mobile-link">Document Risques Majeurs</a></div></li><li class="koba-mobile-item"><div class="koba-mobile-item-inner"><a href="https://www.saint-florentin.fr/articles/fabriquez-votre-disque-de-stationnement-europeen-zone-bleue" class="koba-mobile-link">Zones &quot;bleues&quot;</a></div></li></ul></li><li class="koba-mobile-item"><div class="koba-mobile-item-inner"><a href="https://www.saint-florentin.fr/articles/annuaire-de-l-habitant" class="koba-mobile-link">Annuaires des services publics</a></div></li><li class="koba-mobile-item"><div class="koba-mobile-item-inner"><a href="https://www.saint-florentin.fr/articles/adresses-utiles" class="koba-mobile-link">Adresses utiles</a></div></li><li class="koba-mobile-item"><div class="koba-mobile-item-inner"><a href="https://www.saint-florentin.fr/articles/salles-municipales" class="koba-mobile-link">Salles municipales</a></div></li><li class="koba-mobile-item has-children"><div class="koba-mobile-item-inner"><a href="#" class="koba-mobile-link">Transports</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.saint-florentin.fr/articles/blablacar" class="koba-mobile-link">Blablacar</a></div></li><li class="koba-mobile-item"><div class="koba-mobile-item-inner"><a href="https://www.saint-florentin.fr/articles/train" class="koba-mobile-link">Train</a></div></li><li class="koba-mobile-item"><div class="koba-mobile-item-inner"><a href="https://www.saint-florentin.fr/articles/transports" class="koba-mobile-link">Bus</a></div></li></ul></li><li class="koba-mobile-item"><div class="koba-mobile-item-inner"><a href="https://cc-sereinarmance.fr/reduire-trier-et-valoriser-les-dechets/" class="koba-mobile-link">Déchets</a></div></li></ul></li><li class="koba-mobile-item has-children"><div class="koba-mobile-item-inner"><a href="#" class="koba-mobile-link">Démarches et formalités</a><button class="koba-mobile-toggle" aria-label="Ouvrir sous-menu">
2137<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.saint-florentin.fr/articles/carte-d-identite" class="koba-mobile-link">Carte d&#039;identité / Passeport</a></div></li><li class="koba-mobile-item"><div class="koba-mobile-item-inner"><a href="https://www.saint-florentin.fr/articles/mariages" class="koba-mobile-link">Mariage</a></div></li><li class="koba-mobile-item"><div class="koba-mobile-item-inner"><a href="https://www.saint-florentin.fr/articles/cimetiere" class="koba-mobile-link">Cimetières</a></div></li><li class="koba-mobile-item has-children"><div class="koba-mobile-item-inner"><a href="#" class="koba-mobile-link">Urbanisme</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.saint-florentin.fr/articles/declaration-de-travaux-permis-de-construire" class="koba-mobile-link">Déclaration de travaux / permis de construire</a></div></li><li class="koba-mobile-item has-children"><div class="koba-mobile-item-inner"><a href="#" class="koba-mobile-link">Arrêtés municipaux urbanisme</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="2"><li class="koba-mobile-item"><div class="koba-mobile-item-inner"><a href="https://www.saint-florentin.fr/articles/urbanisme-demande-de-permis-de-construire-et-declarations-prealables" class="koba-mobile-link">Demandes d&#039;urbanisme</a></div></li><li class="koba-mobile-item"><div class="koba-mobile-item-inner"><a href="https://www.saint-florentin.fr/articles/arretes-municipaux-urbanisme-2024" class="koba-mobile-link">Arrêtés municipaux - urbanisme 2024</a></div></li><li class="koba-mobile-item"><div class="koba-mobile-item-inner"><a href="https://www.saint-florentin.fr/articles/arretes-municipaux" class="koba-mobile-link">Arrêtés municipaux - urbanisme 2023</a></div></li><li class="koba-mobile-item"><div class="koba-mobile-item-inner"><a href="https://www.saint-florentin.fr/articles/arretes-urbanisme-2022" class="koba-mobile-link">Arrêtés municipaux - urbanisme 2022</a></div></li></ul></li><li class="koba-mobile-item"><div class="koba-mobile-item-inner"><a href="https://www.saint-florentin.fr/articles/cadastre" class="koba-mobile-link">Plan local d&#039;urbanisme</a></div></li><li class="koba-mobile-item"><div class="koba-mobile-item-inner"><a href="https://www.saint-florentin.fr/articles/matrice-cadastrale-releve-de-propriete" class="koba-mobile-link">Matrice cadastrale / relevé de propriété</a></div></li><li class="koba-mobile-item"><div class="koba-mobile-item-inner"><a href="https://www.saint-florentin.fr/articles/nuancier-ral-saint-florentin" class="koba-mobile-link">Nuancier RAL Saint-Florentin</a></div></li></ul></li><li class="koba-mobile-item"><div class="koba-mobile-item-inner"><a href="https://www.saint-florentin.fr/articles/permis-de-louer-mode-d-emploi" class="koba-mobile-link">Permis de louer</a></div></li><li class="koba-mobile-item"><div class="koba-mobile-item-inner"><a href="https://www.saint-florentin.fr/articles/eau-assainissement" class="koba-mobile-link">Eau / assainissement</a></div></li></ul></li><li class="koba-mobile-item has-children"><div class="koba-mobile-item-inner"><a href="#" class="koba-mobile-link">Culture / loisirs</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.saint-florentin.fr/articles/horaires-et-fonctionnement" class="koba-mobile-link">Médiathèque</a></div></li><li class="koba-mobile-item"><div class="koba-mobile-item-inner"><a href="http://www.caleflow.fr/" class="koba-mobile-link">Centre aquatique intercommunal Le Flow</a></div></li><li class="koba-mobile-item"><div class="koba-mobile-item-inner"><a href="https://www.saint-florentin.fr/articles/mediatheque-numerique-de-l-yonne" class="koba-mobile-link">Médiathèque numérique de l&#039;Yonne</a></div></li><li class="koba-mobile-item"><div class="koba-mobile-item-inner"><a href="https://www.musee-de-saint-florentin.fr/home.html" class="koba-mobile-link">Musée</a></div></li><li class="koba-mobile-item"><div class="koba-mobile-item-inner"><a href="https://cc-sereinarmance.fr/bienvenue-a-lecole-de-musique/" class="koba-mobile-link">École de musique</a></div></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">
2137<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.saint-florentin.fr/articles/office-des-associations-florentinoises" class="koba-mobile-link">Office des associations</a></div></li><li class="koba-mobile-item"><div class="koba-mobile-item-inner"><a href="https://www.saint-florentin.fr/articles/associations" class="koba-mobile-link">Liste des associations</a></div></li><li class="koba-mobile-item"><div class="koba-mobile-item-inner"><a href="https://www.saint-florentin.fr/articles/associations-demande-de-subventions" class="koba-mobile-link">Demande de subventions</a></div></li></ul></li><li class="koba-mobile-item"><div class="koba-mobile-item-inner"><a href="https://www.saint-florentin.fr/articles/jumelage" class="koba-mobile-link">Jumelage</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.saint-florentin.fr/articles/activites-et-contact" class="koba-mobile-link">Service municipal jeunesse</a></div></li><li class="koba-mobile-item has-children"><div class="koba-mobile-item-inner"><a href="#" class="koba-mobile-link">Écoles</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.saint-florentin.fr/articles/inscriptions-scolaires" class="koba-mobile-link">Ecoles et inscriptions</a></div></li><li class="koba-mobile-item"><div class="koba-mobile-item-inner"><a href="http://col89-marcelayme.ac-dijon.fr/index.php" class="koba-mobile-link">Collège</a></div></li></ul></li><li class="koba-mobile-item has-children"><div class="koba-mobile-item-inner"><a href="#" class="koba-mobile-link">Cantine</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.saint-florentin.fr/articles/reglement-du-restaurant-scolaire" class="koba-mobile-link">Inscription cantine</a></div></li><li class="koba-mobile-item"><div class="koba-mobile-item-inner"><a href="https://connect1.3douest.com/connexion?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiIzZG91ZXN0c2VydmVyIiwic3ViIjoiM2RvdWVzdC1hdXRoLXNlcnZlciIsInR5cCI6IkpXVCIsImF1ZCI6eyJ0eXBlIjoiY29sbGVjdGl2aXRlIiwicmVkaXJlY3RfdXJpIjoiaHR0cHM6XC9cL2dlc3Rpb24ubG9naWNpZWwtZW5mYW5jZS5mclwvY29ubmV4aW9uRnJvbUF1dGgiLCJhcGlfZ2xvYmFsX2tleSI6ImJjZTUwNDVkZTI0YjIwZTA4ODAzYTQwNTA4YTk3NDUxIiwiYXBpX2tleSI6ImNhbnRpbmUyIn0sImlhdCI6MTY3OTQ4MDMzMH0.8dU9iLoYTTApYpUdT-GTzdNbv-VC0-jK1hCENVEdWAw&#038;api_key=cantine2" class="koba-mobile-link">Portail familles</a></div></li></ul></li><li class="koba-mobile-item has-children"><div class="koba-mobile-item-inner"><a href="#" class="koba-mobile-link">Transports scolaires</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.saint-florentin.fr/articles/transports-scolaires" class="koba-mobile-link">Transports scolaires écoles</a></div></li><li class="koba-mobile-item"><div class="koba-mobile-item-inner"><a href="https://www.bourgognefranchecomte.fr/transports-scolaires-de-lyonne" class="koba-mobile-link">Transports scolaires collèges et lycées</a></div></li></ul></li><li class="koba-mobile-item"><div class="koba-mobile-item-inner"><a href="https://www.saint-florentin.fr/articles/accueil-periscolaire-municipal" class="koba-mobile-link">Accueil périscolaire</a></div></li><li class="koba-mobile-item"><div class="koba-mobile-item-inner"><a href="https://www.saint-florentin.fr/articles/le-centre-de-loisirs" class="koba-mobile-link">Centre aéré</a></div></li><li class="koba-mobile-item"><div class="koba-mobile-item-inner"><a href="https://www.saint-florentin.fr/articles/l-association" class="koba-mobile-link">Espace famille florentinois</a></div></li><li class="koba-mobile-item has-children"><div class="koba-mobile-item-inner"><a href="#" class="koba-mobile-link">Pôle petite enfance</a><button class="koba-mobile-toggle" aria-label="Ouvrir sous-menu">
2137<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.la-maison-bleue.fr/creche/bourgogne-franche-comte/yonne/saint-florentin/tom-pouce" class="koba-mobile-link">Crèche Tom Pouce</a></div></li><li class="koba-mobile-item"><div class="koba-mobile-item-inner"><a href="https://cc-sereinarmance.fr/les-relais-petite-enfance-pour-favoriser-lepanouissement-des-enfants/" class="koba-mobile-link">Relais d&#039;assistants maternels</a></div></li></ul></li></ul></li><li class="koba-mobile-item has-children"><div class="koba-mobile-item-inner"><a href="#" class="koba-mobile-link">Tourisme</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.saint-florentin.fr/articles/marches" class="koba-mobile-link">Le marché</a></div></li><li class="koba-mobile-item"><div class="koba-mobile-item-inner"><a href="https://serein-armance.fr/" class="koba-mobile-link">Office de tourisme</a></div></li><li class="koba-mobile-item"><div class="koba-mobile-item-inner"><a href="https://www.saint-florentin.fr/articles/camping-de-l-armancon" class="koba-mobile-link">Camping municipal de l&#039;Armançon**</a></div></li></ul></li><li class="koba-mobile-item has-children"><div class="koba-mobile-item-inner"><a href="#" class="koba-mobile-link">Projets</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.saint-florentin.fr/articles/amenagement-dun-skatepark-et-dun-terrain-de-cross/" class="koba-mobile-link">Aménagement d&rsquo;un skatepark et d&rsquo;un terrain de cross</a></div></li><li class="koba-mobile-item"><div class="koba-mobile-item-inner"><a href="https://www.saint-florentin.fr/articles/petite-ville-de-demain" class="koba-mobile-link">Petite Ville de Demain</a></div></li></ul></li></ul></nav>            
2138            <nav class="koba-mobile-secondary">
2139              <ul class="koba-topbar-list">
2140                        <li class="menu-item menu-item-type-post_type menu-item-object-page">
2141                            <a href="https://www.saint-florentin.fr/">ACCUEIL</a>
2142                        </li>
2143                        <li class="menu-item menu-item-type-post_type menu-item-object-page">
2144                            <a href="https://www.saint-florentin.fr/annuaire/">ANNUAIRE</a>
2145                        </li>
2146                        <li class="menu-item menu-item-type-post_type menu-item-object-page">
2147                            <a href="https://www.saint-florentin.fr/contact/">NOUS CONTACTER</a>
2148                        </li>
2149                        <li class="menu-item menu-item-type-post_type menu-item-object-page">
2150                            <a href="https://www.saint-florentin.fr/emploi/">EMPLOI</a>
2151                        </li>
2152                                            </ul>   
2153            </nav>
2154        </div>
2155    </div><!-- Overlay résultats recherche -->
2156<div class="koba-search-overlay" id="koba-search-overlay"></div>
2157</header>
2158
2159<!-- Spacer pour compenser le header fixe -->
2160<div class="koba-header-spacer"></div>
2161
2162<!-- Overlay -->
2163<div class="koba-overlay" id="koba-overlay"></div>
2164 <div class="modal fade" id="exampleModal" tabindex="-1" aria-hidden="true" aria-labelledby="exampleModalTitle" role="dialog">
2165                  <div class="modal-dialog">
2166                    <div class="modal-content">
2167
2168                      <div class="modal-header">
2169                        <h5 class="modal-title" id="exampleModalTitle">SUIVEZ L'ACTU</h5>
2170                        <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Fermer"></button>
2171                      </div>
2172
2173                      <div class="modal-body">
2174                        <p>* Champs obligatoires</p>
2175                            <style>
2176    .koba-form-inscription {
2177        background: #fff;
2178        padding: 30px;
2179        border-radius: 12px;
2180        box-shadow: 0 4px 20px rgba(0,0,0,0.08);
2181        max-width: 700px;
2182        margin: 0 auto;
2183    }
2184    .koba-form-inscription h3 {
2185        margin: 0 0 25px;
2186        padding-bottom: 15px;
2187        border-bottom: 3px solid var(--koba-primary, #209bbc);
2188        color: #1a1a2e;
2189        font-size: 1.5em;
2190    }
2191    .koba-form-section {
2192        margin-bottom: 25px;
2193        padding-bottom: 20px;
2194        border-bottom: 1px solid #eee;
2195    }
2196    .koba-form-section:last-of-type {
2197        border-bottom: none;
2198        margin-bottom: 15px;
2199    }
2200    .koba-form-section-title {
2201        font-weight: 600;
2202        color: var(--koba-primary, #209bbc);
2203        margin-bottom: 15px;
2204        font-size: 14px;
2205        text-transform: uppercase;
2206        letter-spacing: 0.5px;
2207    }
2208    .koba-form-row {
2209        display: flex;
2210        gap: 15px;
2211        margin-bottom: 15px;
2212    }
2213    .koba-form-field {
2214        flex: 1;
2215    }
2216    .koba-form-field.full {
2217        flex: 0 0 100%;
2218    }
2219    .koba-form-field label {
2220        display: block;
2221        font-weight: 500;
2222        margin-bottom: 6px;
2223        color: #333;
2224        font-size: 14px;
2225    }
2226    .koba-form-field label .req {
2227        color: #d63638;
2228    }
2229    .koba-form-field input,
2230    .koba-form-field select,
2231    .koba-form-field textarea {
2232        width: 100%;
2233        padding: 12px 15px;
2234        border: 1px solid #ddd;
2235        border-radius: 6px;
2236        font-size: 14px;
2237        transition: border-color 0.2s, box-shadow 0.2s;
2238        box-sizing: border-box;
2239    }
2240    .koba-form-field input:focus,
2241    .koba-form-field select:focus,
2242    .koba-form-field textarea:focus {
2243        outline: none;
2244        border-color: var(--koba-primary, #209bbc);
2245        box-shadow: 0 0 0 3px rgba(32, 155, 188, 0.1);
2246    }
2247    .koba-form-field textarea {
2248        min-height: 80px;
2249        resize: vertical;
2250    }
2251    .koba-form-checkbox {
2252        display: flex;
2253        align-items: flex-start;
2254        gap: 10px;
2255        padding: 12px 15px;
2256        background: #f8f9fa;
2257        border-radius: 6px;
2258        margin-bottom: 10px;
2259        cursor: pointer;
2260        transition: background 0.2s;
2261    }
2262    .koba-form-checkbox:hover {
2263        background: #e9ecef;
2264    }
2265    .koba-form-checkbox input[type="checkbox"] {
2266        width: 20px;
2267        height: 20px;
2268        margin-top: 2px;
2269        cursor: pointer;
2270        accent-color: var(--koba-primary, #209bbc);
2271    }
2272    .koba-form-checkbox span {
2273        font-size: 14px;
2274        color: #333;
2275        line-height: 1.5;
2276    }
2277    .koba-form-submit {
2278        text-align: center;
2279        margin-top: 25px;
2280    }
2281    .koba-form-submit button {
2282        background: var(--koba-primary, #209bbc);
2283        color: #fff;
2284        border: none;
2285        padding: 15px 50px;
2286        font-size: 16px;
2287        font-weight: 600;
2288        border-radius: 8px;
2289        cursor: pointer;
2290        transition: all 0.3s;
2291        text-transform: uppercase;
2292        letter-spacing: 0.5px;
2293    }
2294    .koba-form-submit button:hover {
2295        background: var(--koba-secondary, #faaf00);
2296        transform: translateY(-2px);
2297        box-shadow: 0 4px 15px rgba(0,0,0,0.15);
2298    }
2299    .koba-form-submit button:disabled {
2300        background: #ccc;
2301        cursor: not-allowed;
2302        transform: none;
2303        box-shadow: none;
2304    }
2305    .koba-form-message {
2306        padding: 15px 20px;
2307        border-radius: 8px;
2308        margin-bottom: 20px;
2309        display: none;
2310    }
2311    .koba-form-message.success {
2312        background: #d4edda;
2313        color: #155724;
2314        border: 1px solid #c3e6cb;
2315        display: block;
2316    }
2317    .koba-form-message.error {
2318        background: #f8d7da;
2319        color: #721c24;
2320        border: 1px solid #f5c6cb;
2321        display: block;
2322    }
2323    .koba-form-loading {
2324        display: none;
2325        text-align: center;
2326        padding: 40px;
2327    }
2328    .koba-form-loading.active {
2329        display: block;
2330    }
2331    .koba-spinner {
2332        width: 40px;
2333        height: 40px;
2334        border: 4px solid #f3f3f3;
2335        border-top: 4px solid var(--koba-primary, #209bbc);
2336        border-radius: 50%;
2337        animation: koba-spin 1s linear infinite;
2338        margin: 0 auto 15px;
2339    }
2340    @keyframes koba-spin {
2341        0% { transform: rotate(0deg); }
2342        100% { transform: rotate(360deg); }
2343    }
2344    .koba-form-success {
2345        display: none;
2346        text-align: center;
2347        padding: 40px 20px;
2348    }
2349    .koba-form-success.active {
2350        display: block;
2351    }
2352    .koba-form-success .success-icon {
2353        width: 80px;
2354        height: 80px;
2355        background: #d4edda;
2356        border-radius: 50%;
2357        display: flex;
2358        align-items: center;
2359        justify-content: center;
2360        margin: 0 auto 20px;
2361    }
2362    .koba-form-success .success-icon svg {
2363        width: 40px;
2364        height: 40px;
2365        color: #28a745;
2366    }
2367    .koba-form-success h4 {
2368        color: #28a745;
2369        margin: 0 0 10px;
2370        font-size: 1.5em;
2371    }
2372    .koba-form-success p {
2373        color: #666;
2374        margin: 0;
2375    }
2376    .koba-recaptcha-badge {
2377        font-size: 11px;
2378        color: #999;
2379        text-align: center;
2380        margin-top: 15px;
2381    }
2382    .koba-recaptcha-badge a {
2383        color: #999;
2384    }
2385    /* Masquer le badge reCAPTCHA flottant de Google */
2386    .grecaptcha-badge {
2387        visibility: hidden !important;
2388    }
2389    @media (max-width: 600px) {
2390        .koba-form-inscription {
2391            padding: 20px;
2392        }
2393        .koba-form-row {
2394            flex-direction: column;
2395            gap: 0;
2396        }
2397        .koba-form-field {
2398            margin-bottom: 15px;
2399        }
2400    }
2401
2402    /* RGAA 11.10 / 11.11 - etat d'erreur (visible uniquement si erreur) */
2403    .koba-form-inscription .koba-field-error {
2404        display: none;
2405        color: #b3261e;
2406        font-size: 13px;
2407        line-height: 1.4;
2408        margin-top: 6px;
2409    }
2410    .koba-form-inscription .koba-field-error.show {
2411        display: block;
2412    }
2413    .koba-form-inscription [aria-invalid="true"] {
2414        border-color: #b3261e !important;
2415        box-shadow: 0 0 0 1px #b3261e;
2416    }
2417    </style>
vendor: 130 bytes, lines 2417-2419
2417
2418    
2419        <script type="text/plain" data-hob-service="recaptcha" data-hob-src="https://www.google.com/recaptcha/api.js?render=
24196Ld7WU8sAAAAADFQJR81Zz8xGVqOXjqcdFc57N4p
vendor: 25 bytes, lines 2419-2421
2419"></script>
2420        
2421    
2421<div class="koba-form-inscription" id="koba-inscription-form">
2422        <div class="koba-form-message" id="koba-form-message" role="status" aria-live="polite" aria-atomic="true"></div>
2423        
2424        <div class="koba-form-loading" id="koba-form-loading">
2425            <div class="koba-spinner"></div>
2426            <p>Envoi en cours...</p>
2427        </div>
2428        
2429        <div class="koba-form-success" id="koba-form-success" role="status" aria-live="polite" tabindex="-1">
2430            <div class="success-icon">
2431                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
2432                    <polyline points="20 6 9 17 4 12"></polyline>
2433                </svg>
2434            </div>
2435            <h4>Inscription réussie !</h4>
2436            <p id="koba-success-text">Merci pour votre inscription.</p>
2437        </div>
2438        
2439        <form id="koba-citizen-form" style="display:block;">
2440            <input type="hidden" id="koba_inscription_nonce" name="koba_inscription_nonce" value="218059e309" /><input type="hidden" name="_wp_http_referer" value="/" />            <input type="hidden" name="recaptcha_token" id="recaptcha_token" value="">
2441            
2442            <!-- IDENTITÉ -->
2443            <div class="koba-form-section">
2444                <div class="koba-form-section-title">Identité</div>
2445                
2446                <div class="koba-form-row">
2447                    <div class="koba-form-field">
2448                        <label for="koba-ins-gender">Civilité</label>
2449                        <select id="koba-ins-gender" name="gender">
2450                            <option value="0">Monsieur</option>
2451                            <option value="1">Madame</option>
2452                        </select>
2453                    </div>
2454                    <div class="koba-form-field">
2455                        <label for="koba-ins-birthdate">Date de naissance</label>
2456                        <input type="date" id="koba-ins-birthdate" name="birthdate">
2457                    </div>
2458                </div>
2459
2460                <div class="koba-form-row">
2461                    <div class="koba-form-field">
2462                        <label for="koba-ins-lastname">Nom</label>
2463                        <input type="text" id="koba-ins-lastname" name="lastname" autocomplete="family-name" placeholder="Votre nom">
2464                    </div>
2465                    <div class="koba-form-field">
2466                        <label for="koba-ins-firstname">Prénom</label>
2467                        <input type="text" id="koba-ins-firstname" name="firstname" autocomplete="given-name" placeholder="Votre prénom">
2468                    </div>
2469                </div>
2470            </div>
2471            
2472            <!-- ADRESSE -->
2473            <div class="koba-form-section">
2474                <div class="koba-form-section-title">Adresse</div>
2475                
2476                <div class="koba-form-row">
2477                    <div class="koba-form-field full">
2478                        <label for="koba-ins-address">Adresse</label>
2479                        <textarea id="koba-ins-address" name="address" rows="2" autocomplete="street-address" placeholder="Numéro et nom de rue"></textarea>
2480                    </div>
2481                </div>
2482
2483                <div class="koba-form-row">
2484                    <div class="koba-form-field">
2485                        <label for="koba-ins-zipcode">Code postal</label>
2486                        <input type="text" id="koba-ins-zipcode" name="zipcode" autocomplete="postal-code" placeholder="38000">
2487                    </div>
2488                    <div class="koba-form-field">
2489                        <label for="koba-ins-city">Ville</label>
2490                        <input type="text" id="koba-ins-city" name="city" autocomplete="address-level2" placeholder="Votre ville">
2491                    </div>
2492                    <div class="koba-form-field">
2493                        <label for="koba-ins-country">Pays</label>
2494                        <input type="text" id="koba-ins-country" name="country" autocomplete="country-name" placeholder="France" value="France">
2495                    </div>
2496                </div>
2497            </div>
2498            
2499            <!-- CONTACT -->
2500            <div class="koba-form-section">
2501                <div class="koba-form-section-title">Contact</div>
2502                
2503                <div class="koba-form-row">
2504                    <div class="koba-form-field">
2505                        <label for="koba-ins-phone">Téléphone</label>
2506                        <input type="tel" id="koba-ins-phone" name="phone" autocomplete="tel" placeholder="06 00 00 00 00">
2507                    </div>
2508                    <div class="koba-form-field">
2509                        <label for="koba-ins-fax">Fax</label>
2510                        <input type="tel" id="koba-ins-fax" name="fax" placeholder="04 00 00 00 00">
2511                    </div>
2512                </div>
2513
2514                <div class="koba-form-row">
2515                    <div class="koba-form-field full">
2516                        <label for="koba-ins-email">Email <span class="req">*</span></label>
2517                        <input type="email" id="koba-ins-email" name="email" autocomplete="email" placeholder="[email protected]" required aria-required="true" aria-describedby="koba-ins-email-error">
2518                        <span class="koba-field-error" id="koba-ins-email-error"></span>
2519                    </div>
2520                </div>
2521            </div>
2522            
2523            <!-- PRÉFÉRENCES -->
2524            <div class="koba-form-section">
2525                <div class="koba-form-section-title">Préférences de communication</div>
2526                
2527                <label class="koba-form-checkbox">
2528                    <input type="checkbox" name="sms_newsletter" value="1">
2529                    <span>Je souhaite recevoir des informations par SMS</span>
2530                </label>
2531                
2532                <label class="koba-form-checkbox">
2533                    <input type="checkbox" name="email_newsletter" value="1" checked>
2534                    <span>Je souhaite recevoir la newsletter par email</span>
2535                </label>
2536                            </div>
2537            
2538            <div class="koba-form-submit">
2539                <button type="submit" id="koba-submit-btn">S&#039;inscrire</button>
2540            </div>
2541            
2542                        <div class="koba-recaptcha-badge">
2543                Ce site est protégé par reCAPTCHA. 
2544                <a href="https://policies.google.com/privacy" target="_blank">Politique de confidentialité</a> et 
2545                <a href="https://policies.google.com/terms" target="_blank">Conditions d'utilisation</a> de Google.
2546            </div>
2547                    </form>
2548    </div>
2549    
2550    
2550<script>
2551    (function() {
2552        var form = document.getElementById('koba-citizen-form');
2553        var message = document.getElementById('koba-form-message');
2554        var loading = document.getElementById('koba-form-loading');
2555        var success = document.getElementById('koba-form-success');
2556        var submitBtn = document.getElementById('koba-submit-btn');
2557        var recaptchaActive = true;
2558        var siteKey = '6Ld7WU8sAAAAADFQJR81Zz8xGVqOXjqcdFc57N4p';
2559        
2560        if (!form) return;
2561
2562        // --- RGAA 11.10 / 11.11 : validation accessible ---
2563        function clearInsError(fieldId, errorId) {
2564            var f = document.getElementById(fieldId);
2565            var er = document.getElementById(errorId);
2566            if (er) { er.textContent = ''; er.classList.remove('show'); }
2567            if (f) { f.removeAttribute('aria-invalid'); }
2568        }
2569        ['koba-ins-email','koba-ins-rgpd'].forEach(function(id){
2570            var el = document.getElementById(id);
2571            if (el) {
2572                el.addEventListener('input', function(){ clearInsError(id, id + '-error'); });
2573                el.addEventListener('change', function(){ clearInsError(id, id + '-error'); });
2574            }
2575        });
2576
2577        form.addEventListener('submit', function(e) {
2578            e.preventDefault();
2579
2580            // Reset
2581            message.className = 'koba-form-message';
2582            message.style.display = 'none';
2583            clearInsError('koba-ins-email', 'koba-ins-email-error');
2584            clearInsError('koba-ins-rgpd', 'koba-ins-rgpd-error');
2585
2586            // Validation accessible (messages par champ + suggestions)
2587            var firstInvalid = null;
2588            function fail(focusEl, errorId, msg) {
2589                var er = document.getElementById(errorId);
2590                if (er) { er.textContent = msg; er.classList.add('show'); }
2591                if (focusEl) { focusEl.setAttribute('aria-invalid', 'true'); if (!firstInvalid) firstInvalid = focusEl; }
2592            }
2593
2594            var emailEl = document.getElementById('koba-ins-email');
2595            if (!emailEl.value.trim()) {
2596                fail(emailEl, 'koba-ins-email-error', 'Veuillez saisir votre adresse e-mail.');
2597            } else if (!emailEl.checkValidity()) {
2598                fail(emailEl, 'koba-ins-email-error', "L'adresse e-mail n'est pas valide. Exemple attendu : [email protected]");
2599            }
2600
2601            var rgpdEl = document.getElementById('koba-ins-rgpd');
2602            if (rgpdEl && rgpdEl.required && !rgpdEl.checked) {
2603                fail(rgpdEl, 'koba-ins-rgpd-error', 'Vous devez accepter de recevoir la newsletter pour valider votre inscription.');
2604            }
2605
2606            if (firstInvalid) {
2607                message.className = 'koba-form-message error';
2608                message.textContent = 'Le formulaire contient des erreurs. Veuillez corriger les champs signales.';
2609                message.style.display = 'block';
2610                firstInvalid.focus();
2611                return;
2612            }
2613
2614            // Disable button
2615            submitBtn.disabled = true;
2616            submitBtn.textContent = 'Vérification...';
2617            
2618            // reCAPTCHA v3
2619            if (recaptchaActive && siteKey && typeof grecaptcha !== 'undefined') {
2620                grecaptcha.ready(function() {
2621                    grecaptcha.execute(siteKey, {action: 'inscription'}).then(function(token) {
2622                        document.getElementById('recaptcha_token').value = token;
2623                        submitForm();
2624                    }).catch(function(error) {
2625                        console.error('reCAPTCHA error:', error);
2626                        submitForm(); // Soumettre quand même si erreur reCAPTCHA
2627                    });
2628                });
2629            } else {
2630                submitForm();
2631            }
2632        });
2633        
2634        function submitForm() {
2635            // Show loading
2636            form.style.display = 'none';
2637            loading.className = 'koba-form-loading active';
2638            
2639            // Prepare data
2640            var formData = new FormData(form);
2641            formData.append('action', 'koba_inscription_submit');
2642            
2643            // Send
2644            fetch('https://www.saint-florentin.fr/wp-admin/admin-ajax.php', {
2645                method: 'POST',
2646                body: formData
2647            })
2648            .then(function(response) { return response.json(); })
2649            .then(function(data) {
2650                loading.className = 'koba-form-loading';
2651                
2652                if (data.success) {
2653                    success.className = 'koba-form-success active';
2654                    if (data.data && data.data.message) {
2655                        document.getElementById('koba-success-text').textContent = data.data.message;
2656                    }
2657                    try { success.focus(); } catch(e) {}
2658                } else {
2659                    form.style.display = 'block';
2660                    submitBtn.disabled = false;
2661                    submitBtn.textContent = 'S\'inscrire';
2662                    message.className = 'koba-form-message error';
2663                    message.textContent = data.data || 'Une erreur est survenue.';
2664                    message.style.display = 'block';
2665                }
2666            })
2667            .catch(function(error) {
2668                loading.className = 'koba-form-loading';
2669                form.style.display = 'block';
2670                submitBtn.disabled = false;
2671                submitBtn.textContent = 'S\'inscrire';
2672                message.className = 'koba-form-message error';
2673                message.textContent = 'Erreur de connexion. Veuillez réessayer.';
2674                message.style.display = 'block';
2675            });
2676        }
2677    })();
2678    </script>
2678
2679                          </div>
2680
2681                      <div class="modal-footer">
2682                        <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">
2683                          exit
2684                        </button>
2685                      </div>
2686
2687                    </div>
2688                  </div>
2689                </div>
2690
2691<main id="main-content" tabindex="-1">
2692
2693<h1 class="visually-hidden">COMMUNE DE SAINT-FLORENTIN - Accueil</h1>
2694
2695    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.css" />
2696    <style>
2697    .koba-hero-slider { width: 100%; height: 100vh; min-height: 500px; max-height: 900px; z-index: 1; position: relative; }
2698    .koba-hero-slider .swiper { width: 100%; height: 100%; }
2699    .koba-hero-slider .swiper-slide { position: relative; background-size: cover; background-position: center; background-repeat: no-repeat; overflow: hidden; }
2700    /* Vidéo en fond de slide (option payante video_slider) */
2701    .koba-hero-slider .koba-slide-video,
2702    .koba-hero-slider .koba-slide-video-yt { position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: 0; }
2703    .koba-hero-slider .koba-slide-video { object-fit: cover; }
2704    .koba-hero-slider .koba-slide-video-yt { pointer-events: none; overflow: hidden; }
2705    /* L'iframe YouTube a un ratio 16:9 fixe : on l'agrandit et on la centre pour simuler un "cover" */
2706    .koba-hero-slider .koba-slide-video-yt iframe { position: absolute; top: 50%; left: 50%; width: 100vw; height: 56.25vw; min-height: 100%; min-width: 177.78vh; transform: translate(-50%, -50%); border: 0; }
2707    .koba-hero-slider .slide-overlay { z-index: 1; }
2708    .koba-hero-slider .slide-overlay { position: absolute; top: 0; left: 0; right: 0; bottom: 0; display: flex; align-items: center; }
2709    .koba-hero-slider .slide-overlay .container{
2710        margin-bottom: -80px;
2711    }
2712    .koba-hero-slider .slide-overlay .container .row > div{
2713        padding: 0;
2714    }
2715    .koba-hero-slider .slide-content { padding: 20px; text-align: center; background: rgba(0,0,0,.3); max-width: 700px; color: #fff; margin: 0 auto;}
2716    .koba-hero-slider .slide-title { font-size: 25.2px; font-weight: 700; margin: 0 0 15px 0; line-height: 1.2; text-shadow: 2px 2px 4px rgba(0,0,0,0.3); }
2717    .koba-hero-slider .slide-subtitle { font-size: 16px; margin: 0 0 30px 0; line-height: 1.5; text-shadow: 1px 1px 2px rgba(0,0,0,0.3); }
2718    .koba-hero-slider .slide-button { display: inline-block; padding: 6px 12px; background-color: var(--koba-secondary); color: #000; text-decoration: none; font-weight: 700; font-size: 16px; border: 2px solid #fff; }
2719    .koba-hero-slider .slide-button:hover { color: #fff;}
2720    .koba-hero-slider .swiper-pagination { bottom: 30px !important; }
2721    .koba-hero-slider .swiper-pagination-bullet { width: 12px; height: 12px; background: #fff; opacity: 0.5; transition: all 0.3s; }
2722    .koba-hero-slider .swiper-pagination-bullet-active { opacity: 1; width: 35px; border-radius: 6px; background: var(--koba-primary, #209bbc); }
2723    .koba-hero-slider .swiper-button-next, .koba-hero-slider .swiper-button-prev { color: #fff; background: rgba(0,0,0,0.3); width: 50px; height: 50px; border-radius: 50%; transition: all 0.3s; }
2724    .koba-hero-slider .swiper-button-next:hover, .koba-hero-slider .swiper-button-prev:hover { background: var(--koba-primary, #209bbc); }
2725    .koba-hero-slider .swiper-button-next::after, .koba-hero-slider .swiper-button-prev::after { font-size: 20px; }
2726
2727    @keyframes slideInLeft { from { opacity: 0; transform: translateX(-50px); } to { opacity: 1; transform: translateX(0); } }
2728    /* RGAA 13.8 - Bouton pause/play (style inline pour ne pas dependre de style.css) */
2729    .koba-hero-slider .koba-swiper-pause-btn { position: absolute; bottom: 24px; left: 24px; z-index: 30; width: 44px; height: 44px; padding: 0; border-radius: 50%; border: 2px solid #fff; background: rgba(0,0,0,0.6); color: #fff; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: background 0.2s; }
2730    .koba-hero-slider .koba-swiper-pause-btn:hover, .koba-hero-slider .koba-swiper-pause-btn:focus-visible { background: var(--koba-primary, #5ca515); outline: 2px solid #fff; outline-offset: 2px; }
2731    .koba-hero-slider .koba-swiper-pause-btn svg { width: 20px; height: 20px; fill: currentColor; display: block; }
2732    @media (max-width: 768px) {
2733        .koba-hero-slider { height: 70vh; min-height: 400px; }
2734        .koba-hero-slider .slide-content { padding: 0 5%; text-align: center; max-width: 100%; }
2735        .koba-hero-slider .slide-overlay { background: rgba(0,0,0,0.5); justify-content: center; }
2736        .koba-hero-slider .swiper-button-next, .koba-hero-slider .swiper-button-prev { display: none; }
2737    }
2738    </style>
2739    <div class="koba-hero-slider" role="region" aria-label="Carrousel d'actualites" aria-roledescription="carrousel">
2740        <div class="swiper koba-swiper">
2741            <div class="swiper-wrapper">
2742                               <div class="swiper-slide" style="background-image: url('https://www.saint-florentin.fr/wp-content/uploads/sites/66/2026/02/mff09tzz-1649165429245.jpeg');" role="group" aria-roledescription="diapositive">
2743                                        <div class="slide-overlay">
2744                        <div class="container mt-5">
2745                            <div class="row">
2746                                <div class="col-12 col-md-6 offset-md-6">
2747<div class="slide-content">
2748    <h2 class="slide-title">Saint-Florentin en Bourgogne</h2>    <p class="slide-subtitle">Mairie de Saint-Florentin</p>    </div>
2749                                </div>
2750                            </div>
2751                        </div>
2752                    </div>
2753                </div>
2754                            </div>
2755            <div class="swiper-pagination"></div>
2756            <div class="swiper-button-prev"></div>
2757            <div class="swiper-button-next"></div>
2758        </div>
2759        <!-- RGAA 13.8 : bouton pause / play accessible au clavier -->
2760        <button type="button" class="koba-swiper-pause-btn" data-state="playing" aria-label="Mettre en pause le carrousel">
2761            <svg aria-hidden="true" focusable="false" viewBox="0 0 24 24"><path d="M6 5h4v14H6zM14 5h4v14h-4z"/></svg>
2762        </button>
2763    </div>
2764    
2764<script src="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.js"></script>
2764
2765    
2765<script>
2766    document.addEventListener('DOMContentLoaded', function() {
2767        var prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
2768        var kobaSwiper = new Swiper('.koba-swiper', {
2769            direction: 'horizontal',
2770            effect: 'slide',
2771            loop: true,
2772            autoplay: prefersReducedMotion ? false : { delay: 5000, disableOnInteraction: false },
2773            speed: 800,
2774            pagination: { el: '.swiper-pagination', clickable: true },
2775            navigation: { nextEl: '.swiper-button-next', prevEl: '.swiper-button-prev' },
2776            keyboard: { enabled: true },
2777            a11y: { enabled: true, prevSlideMessage: 'Diapositive precedente', nextSlideMessage: 'Diapositive suivante', paginationBulletMessage: 'Aller a la diapositive {{index}}' },
2778            on: { mouseenter: function() { this.autoplay.stop(); }, mouseleave: function() { if (!prefersReducedMotion && document.querySelector('.koba-swiper-pause-btn[data-state="playing"]')) this.autoplay.start(); } }
2779        });
2780        var pauseBtn = document.querySelector('.koba-hero-slider .koba-swiper-pause-btn');
2781        if (pauseBtn) {
2782            if (prefersReducedMotion) {
2783                pauseBtn.setAttribute('data-state', 'paused');
2784                pauseBtn.setAttribute('aria-label', 'Lire le carrousel');
2785                pauseBtn.innerHTML = '<svg aria-hidden="true" focusable="false" viewBox="0 0 24 24"><path d="M8 5v14l11-7z"/></svg>';
2786            }
2787            pauseBtn.addEventListener('click', function() {
2788                // Recupere dynamiquement l'instance Swiper courante (robuste face a une re-init eventuelle)
2789                var swEl = document.querySelector('.koba-swiper');
2790                var sw = swEl && swEl.swiper;
2791                if (pauseBtn.getAttribute('data-state') === 'playing') {
2792                    if (sw && sw.autoplay) sw.autoplay.stop();
2793                    pauseBtn.setAttribute('data-state', 'paused');
2794                    pauseBtn.setAttribute('aria-label', 'Lire le carrousel');
2795                    pauseBtn.innerHTML = '<svg aria-hidden="true" focusable="false" viewBox="0 0 24 24"><path d="M8 5v14l11-7z"/></svg>';
2796                } else {
2797                    if (sw && sw.autoplay) sw.autoplay.start();
2798                    pauseBtn.setAttribute('data-state', 'playing');
2799                    pauseBtn.setAttribute('aria-label', 'Mettre en pause le carrousel');
2800                    pauseBtn.innerHTML = '<svg aria-hidden="true" focusable="false" viewBox="0 0 24 24"><path d="M6 5h4v14H6zM14 5h4v14h-4z"/></svg>';
2801                }
2802            });
2803        }
2804    });
2805    </script>
2805
2806    
2807<section class="meteo-all">
2808    <div class="container mt-5">
2809        <div class="row">
2810            <div class="col-12 col-sm-12 col-md-9">
2811                
2812    <div class="koba-services-section">
2813                <h2 class="koba-services-title">
2814            <i class="far fa-dot-circle text-warning mr-2" aria-hidden="true"></i>
2815            LES SERVICES LES PLUS CONSULTÉS        </h2>
2816                
2817        <!-- Version Desktop -->
2818        <div class="most-viewed-services most-viewed-services-desktop">
2819            <div class="services-grid" data-count="6">
2820                                <a href="https://www.saint-florentin.fr/articles/compte-rendus-de-conseil-municipal/" class="item">
2821                    <i class="fas fa-school"></i>
2822                    <p>Réunions du conseil municipal</p>
2823                </a>
2824                                <a href="https://www.saint-florentin.fr/articles/arretes-municipaux-police-2024-5bc58a6e-82cd-4bf2-a409-392b677e1cfb/" class="item">
2825                    <i class="fas fa-newspaper"></i>
2826                    <p>Arrêtés police</p>
2827                </a>
2828                                <a href="https://www.saint-florentin.fr/articles/declaration-de-travaux-permis-de-construire/" class="item">
2829                    <i class="fas fa-city"></i>
2830                    <p>Urbanisme</p>
2831                </a>
2832                                <a href="https://www.saint-florentin.fr/articles/carte-d-identite/" class="item">
2833                    <i class="fas fa-address-card"></i>
2834                    <p>Carte d&#039;identité / passeport</p>
2835                </a>
2836                                <a href="https://www.saint-florentin.fr/articles/horaires-et-fonctionnement/" class="item">
2837                    <i class="fas fa-book-reader"></i>
2838                    <p>Médiathèque municipale</p>
2839                </a>
2840                                <a href="https://serein-armance.fr/" class="item">
2841                    <i class="fas fa-umbrella-beach"></i>
2842                    <p>Office de tourisme Serein Armance</p>
2843                </a>
2844                            </div>
2845        </div>
2846        
2847        <!-- Version Mobile : Bouton pour ouvrir la modale -->
2848        <div class="most-viewed-services-mobile">
2849            <button type="button" class="koba-services-mobile-btn" data-bs-toggle="modal" data-bs-target="#kobaServicesModal">
2850                <span>LES SERVICES LES PLUS CONSULTÉS</span>
2851                <i class="fas fa-chevron-down"></i>
2852            </button>
2853        </div>
2854        
2855        <!-- Modale Services Mobile -->
2856        <div class="modal fade" id="kobaServicesModal" tabindex="-1" role="dialog" aria-labelledby="kobaServicesModalLabel" aria-hidden="true">
2857            <div class="modal-dialog modal-dialog-centered">
2858                <div class="modal-content koba-services-modal-content">
2859                    <div class="modal-header">
2860                        <h2 class="modal-title" id="kobaServicesModalLabel">LES SERVICES LES PLUS CONSULTÉS</h2>
2861                        <button type="button" class="btn-close btn-close-white" data-bs-dismiss="modal" aria-label="Fermer"></button>
2862                    </div>
2863                    <div class="modal-body">
2864                        <div class="koba-services-modal-grid">
2865                                                        <a href="https://www.saint-florentin.fr/articles/compte-rendus-de-conseil-municipal/" class="koba-services-modal-item">
2866                                <i class="fas fa-school"></i>
2867                                <span>Réunions du conseil municipal</span>
2868                            </a>
2869                                                        <a href="https://www.saint-florentin.fr/articles/arretes-municipaux-police-2024-5bc58a6e-82cd-4bf2-a409-392b677e1cfb/" class="koba-services-modal-item">
2870                                <i class="fas fa-newspaper"></i>
2871                                <span>Arrêtés police</span>
2872                            </a>
2873                                                        <a href="https://www.saint-florentin.fr/articles/declaration-de-travaux-permis-de-construire/" class="koba-services-modal-item">
2874                                <i class="fas fa-city"></i>
2875                                <span>Urbanisme</span>
2876                            </a>
2877                                                        <a href="https://www.saint-florentin.fr/articles/carte-d-identite/" class="koba-services-modal-item">
2878                                <i class="fas fa-address-card"></i>
2879                                <span>Carte d&#039;identité / passeport</span>
2880                            </a>
2881                                                        <a href="https://www.saint-florentin.fr/articles/horaires-et-fonctionnement/" class="koba-services-modal-item">
2882                                <i class="fas fa-book-reader"></i>
2883                                <span>Médiathèque municipale</span>
2884                            </a>
2885                                                        <a href="https://serein-armance.fr/" class="koba-services-modal-item">
2886                                <i class="fas fa-umbrella-beach"></i>
2887                                <span>Office de tourisme Serein Armance</span>
2888                            </a>
2889                                                    </div>
2890                    </div>
2891                </div>
2892            </div>
2893        </div>
2894    </div>
2895    
2896    <style>
2897    /* Titre de section (h2) : conserve l'apparence d'origine (h6 Bootstrap) - RGAA 9.1 sans changement visuel */
2898    .koba-services-title {
2899        font-size: 1rem;
2900        font-weight: 500;
2901        line-height: 1.2;
2902        margin-top: 0;
2903        margin-bottom: 0.5rem;
2904    }
2905    /* Desktop : afficher la grille, masquer le bouton mobile */
2906    .most-viewed-services-desktop {
2907        display: block;
2908    }
2909    .most-viewed-services-mobile {
2910        display: none;
2911    }
2912    
2913    /* Mobile (max-width: 767px) : masquer la grille, afficher le bouton */
2914    @media (max-width: 767px) {
2915        .most-viewed-services-desktop {
2916            display: none !important;
2917        }
2918        .most-viewed-services-mobile {
2919            display: block;
2920            padding: 0 15px;
2921        }
2922        
2923        .koba-services-mobile-btn {
2924            display: block;
2925            align-items: center;
2926            justify-content: space-between;
2927            width: 100%;
2928            background: transparent;
2929            border: none;
2930            padding: 0 0 10px;
2931            color: #fff;
2932            font-size: 14px;
2933            font-weight: 600;
2934            text-transform: uppercase;
2935            letter-spacing: 0.5px;
2936            cursor: pointer;
2937            transition: background 0.2s ease;
2938        }
2939        
2940        .koba-services-mobile-btn:hover,
2941        .koba-services-mobile-btn:focus {
2942        }
2943        
2944        .koba-services-mobile-btn i {
2945            font-size: 16px;
2946            transition: transform 0.2s ease;
2947        }
2948        
2949        .koba-services-mobile-btn:hover i {
2950            transform: translateY(3px);
2951        }
2952    }
2953    
2954    /* Styles de la modale */
2955    .koba-services-modal-content {
2956        background: linear-gradient(135deg, #1a365d 0%, #2d5a87 100%);
2957        border: none;
2958    }
2959    
2960    .koba-services-modal-content .modal-header {
2961        border-bottom: 1px solid rgba(255, 255, 255, 0.1);
2962        padding: 20px 24px;
2963    }
2964    
2965    .koba-services-modal-content .modal-title {
2966        color: #fff;
2967        font-size: 16px;
2968        font-weight: 700;
2969        text-transform: uppercase;
2970        letter-spacing: 0.5px;
2971    }
2972    
2973    .koba-services-modal-content .modal-body {
2974        padding: 24px;
2975    }
2976    
2977    .koba-services-modal-grid {
2978        display: grid;
2979        grid-template-columns: repeat(2, 1fr);
2980        gap: 16px;
2981    }
2982    
2983    .koba-services-modal-item {
2984        display: flex;
2985        flex-direction: column;
2986        align-items: center;
2987        text-align: center;
2988        padding: 20px 12px;
2989        background: rgba(255, 255, 255, 0.1);
2990        color: #fff;
2991        text-decoration: none;
2992        transition: background 0.2s ease, transform 0.2s ease;
2993    }
2994    
2995    .koba-services-modal-item:hover {
2996        background: rgba(255, 255, 255, 0.2);
2997        transform: translateY(-2px);
2998        color: #fff;
2999    }
3000    
3001    .koba-services-modal-item i {
3002        width: 56px;
3003        height: 56px;
3004        border-radius: 50%;
3005        background: rgba(0, 0, 0, 0.3);
3006        display: flex;
3007        align-items: center;
3008        justify-content: center;
3009        font-size: 22px;
3010        margin-bottom: 10px;
3011    }
3012    
3013    .koba-services-modal-item span {
3014        font-size: 12px;
3015        font-weight: 500;
3016        line-height: 1.3;
3017    }
3018    </style>
3019                </div>
3020
3021
3022            <div class="col-md-3">
3023                
3024                <div class="meteo-custom">
3025                    <div class="meteo-container">
3026                        <h2 class="meteo-titre">
3027                            <i class="far fa-dot-circle" aria-hidden="true"></i> MÉTÉO
3028                        </h2>
3029
3030                        <p class="meteo-date">
3031                            <i class="far fa-calendar mr-2" aria-hidden="true"></i> Aujourd'hui
3032                        </p>
3033
3034                        <p class="meteo-date2">Vendredi 02 octobre</p>
3035
3036                        <div class="meteo-content">
3037                            <div class="meteo-temperatures">
3038                                <img
3039                                    src="https://openweathermap.org/img/wn/[email protected]"
3040                                    alt="Ciel dégagé"
3041                                >
3042                                <span class="temp-min">
3043                                    15°C                                    <br><i>Min</i>
3044                                </span>
3045                                <span class="temp-max">
3046                                    18°C                                    <br><i>Max</i>
3047                                </span>
3048                            </div>
3049                        </div>
3050                    </div>
3051                </div>
3052
3053                            </div>
3054        </div>
3055    </div>
3056</section>
3057
3058
3059<section class="frontpage-actualites">
3060    <div class="container mt-5">
3061                <div class="row">
3062            <div class="col-md-6 frontpage-title-text">
3063                <h2 class="frontpage-section-title">
3064                    <i class="far fa-dot-circle text-warning mr-2" aria-hidden="true"></i>
3065                    Actualités
3066                </h2>
3067            </div>
3068
3069            <div class="col-md-6 frontpage-title-all">
3070                <a href="https://www.saint-florentin.fr/actualites/">
3071                    <i class="far fa-dot-circle text-warning mr-2" aria-hidden="true"></i>
3072                    Voir toutes les actualités
3073                </a>
3074            </div>
3075
3076            <div class="col-md-12">
3077                    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.css" />
3078    
3079    <style>
3080    /* ==========================================
3081       SECTION FULL WIDTH
3082       ========================================== */
3083    .koba-actualites-section {
3084        position: relative;
3085        padding: 0 0 10px;
3086    }
3087    
3088    /* ==========================================
3089       FLÈCHES - 40px DU CONTAINER
3090       Calcul : 50% - (demi-container + 40px gap + 50px largeur flèche)
3091       ========================================== */
3092    .koba-nav-prev,
3093    .koba-nav-next {
3094        position: absolute;
3095        top: 50%;
3096        transform: translateY(-50%);
3097        width: 50px;
3098        height: 50px;
3099        background: #fff;
3100        border-radius: 50%;
3101        color: #dee2e6;
3102        display: flex;
3103        align-items: center;
3104        justify-content: center;
3105        cursor: pointer;
3106        transition: all 0.3s;
3107        z-index: 10;
3108        border: none;
3109    }
3110    
3111    .koba-nav-prev:hover,
3112    .koba-nav-next:hover {
3113    }
3114    
3115    .koba-nav-prev svg,
3116    .koba-nav-next svg {
3117        width: 30px;
3118        height: 30px;
3119    }
3120    
3121    .koba-nav-prev.swiper-button-disabled,
3122    .koba-nav-next.swiper-button-disabled {
3123        opacity: 0.3;
3124        cursor: not-allowed;
3125    }
3126    
3127    .koba-nav-prev.swiper-button-disabled:hover,
3128    .koba-nav-next.swiper-button-disabled:hover {
3129        background: #fff;
3130        color: var(--koba-primary, #209bbc);
3131        transform: translateY(-50%) scale(1);
3132    }
3133    
3134    /* XL (1200-1399px) - container 1140px, demi = 570px */
3135    /* 570 + 40 + 50 = 660px */
3136    @media (min-width: 1200px) and (max-width: 1399px) {
3137        .koba-nav-prev {
3138            left: calc(50% - 600px);
3139        }
3140        .koba-nav-next {
3141            right: calc(50% - 600px);
3142        }
3143    }
3144    
3145    /* XXL (≥1400px) - container 1320px, demi = 660px */
3146    /* 660 + 40 + 50 = 750px */
3147    @media (min-width: 1400px) {
3148        .koba-nav-prev {
3149            left: calc(50% - 600px);
3150        }
3151        .koba-nav-next {
3152            right: calc(50% - 600px);
3153        }
3154    }
3155    
3156    /* En dessous de XL - masquer les flèches */
3157    @media (max-width: 1199px) {
3158        .koba-nav-prev,
3159        .koba-nav-next {
3160            display: none;
3161        }
3162    }
3163    
3164    /* ==========================================
3165       SWIPER
3166       ========================================== */
3167    .koba-actualites-swiper {
3168        overflow: hidden;
3169    }
3170    
3171    /* ==========================================
3172       CARTES ACTUALITÉS
3173       ========================================== */
3174    .koba-actu-card {
3175        background: #fff;
3176        overflow: hidden;
3177        border: 1px solid #dee2e6;
3178        transition: all 0.3s ease;
3179        height: 100%;
3180        display: flex;
3181        flex-direction: column;
3182    }
3183    
3184    .koba-actu-card:hover {
3185    }
3186    
3187    .koba-actu-image {
3188        position: relative;
3189        width: 100%;
3190        height: 200px;
3191        overflow: hidden;
3192    }
3193    
3194    .koba-actu-image img {
3195        width: 100%;
3196        height: 100%;
3197        object-fit: cover;
3198        transition: transform 0.3s ease;
3199    }
3200    
3201    .koba-actu-card:hover .koba-actu-image img {
3202        transform: scale(1.05);
3203    }
3204    
3205    .koba-actu-image-placeholder {
3206        width: 100%;
3207        height: 100%;
3208        background: linear-gradient(135deg, #e0e0e0 0%, #f5f5f5 100%);
3209        display: flex;
3210        align-items: center;
3211        justify-content: center;
3212        color: #999;
3213    }
3214    
3215    .koba-actu-category {
3216    }
3217    
3218    .koba-actu-content {
3219        flex: 1;
3220        display: flex;
3221        flex-direction: column;
3222    }
3223
3224    .koba-actu-date-categories{
3225        background: #998c8c;
3226        padding: 16px;
3227        font-size: 11.2px;
3228        text-transform: uppercase;
3229        color: #fff;
3230    }
3231    
3232    .koba-actu-date {
3233        color: #fff;
3234        font-size: 11.2px;
3235        font-weight: 500;
3236        display: flex;
3237        align-items: center;
3238        gap: 6px;
3239        font-weight: bold;
3240        font-style: italic;
3241    }
3242    
3243    .koba-actu-date svg {
3244        width: 14px;
3245        height: 14px;
3246        color: #fff;
3247    }
3248    
3249    .koba-actu-title {
3250        font-size: 14px;
3251        font-weight: 600;
3252        color: #1a1a2e;
3253        line-height: 1.4;
3254        margin: 16px;
3255        min-height: 40px;
3256    }
3257    
3258    .koba-actu-title a {
3259        color: inherit;
3260        text-decoration: none;
3261        transition: color 0.2s;
3262    }
3263    
3264    .koba-actu-title a:hover {
3265        color: var(--koba-primary, #209bbc);
3266    }
3267    
3268    .koba-actu-excerpt {
3269        color: #666;
3270        font-size: 11.2px;
3271        line-height: 1.6;
3272        margin-bottom: 20px;
3273        padding-left: 16px;
3274        padding-right: 16px;
3275        font-weight: 700;
3276        flex: 1;
3277        display: -webkit-box;
3278        -webkit-line-clamp: 3;
3279        -webkit-box-orient: vertical;
3280        overflow: hidden;
3281        min-height: 80px;
3282    }
3283    
3284    .koba-actu-button {
3285        display: inline-flex;
3286        align-items: center;
3287        gap: 8px;
3288        color: #6c757d;
3289        text-decoration: none;
3290        font-size: 11.2px;
3291        font-weight: 500;
3292        transition: all 0.3s ease;
3293        align-self: flex-end;
3294        margin-right: 16px;
3295        margin-bottom: 16px;
3296        font-style: italic;
3297    }
3298    
3299    .koba-actu-button:hover {
3300    }
3301    
3302    .koba-actu-button svg {
3303        width: 16px;
3304        height: 16px;
3305        transition: transform 0.3s;
3306    }
3307    
3308    .koba-actu-button:hover svg {
3309        transform: translateX(3px);
3310    }
3311    
3312    /* ==========================================
3313       PAGINATION
3314       ========================================== */
3315    .koba-actualites-pagination {
3316        display: flex;
3317        justify-content: center;
3318        gap: 8px;
3319        margin-top: 30px;
3320    }
3321    
3322    .koba-actualites-pagination .swiper-pagination-bullet {
3323        width: 10px;
3324        height: 10px;
3325        background: #ddd;
3326        opacity: 1;
3327        transition: all 0.3s;
3328        border-radius: 5px;
3329    }
3330    
3331    .koba-actualites-pagination .swiper-pagination-bullet-active {
3332        background: var(--koba-primary, #209bbc);
3333        width: 30px;
3334    }
3335    
3336    /* ==========================================
3337       RESPONSIVE CARTES
3338       ========================================== */
3339    @media (max-width: 768px) {
3340        .koba-actu-image {
3341            height: 180px;
3342        }
3343        
3344        .koba-actu-title {
3345            font-size: 16px;
3346        }
3347        
3348        .koba-actu-content {
3349            padding: 15px;
3350        }
3351    }
3352    </style>
3353    
3354    <div class="koba-actualites-section">
3355        <!-- Flèches à 40px du container -->
3356        <button class="koba-nav-prev" id="koba-actu-swiper-6abfe64a0fea4-prev" aria-label="Précédent">
3357            <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
3358                <polyline points="15 18 9 12 15 6"/>
3359            </svg>
3360        </button>
3361        <button class="koba-nav-next" id="koba-actu-swiper-6abfe64a0fea4-next" aria-label="Suivant">
3362            <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
3363                <polyline points="9 18 15 12 9 6"/>
3364            </svg>
3365        </button>
3366        
3367        <!-- Container Bootstrap -->
3368        <div class="container">
3369            <div class="swiper koba-actualites-swiper" id="koba-actu-swiper-6abfe64a0fea4">
3370                <div class="swiper-wrapper">
3371                                        <div class="swiper-slide">
3372                        <article class="koba-actu-card">
3373                            <div class="koba-actu-image">
3374                                                                    <img src="https://www.saint-florentin.fr/wp-content/uploads/sites/66/2026/09/FLYERS-2026-2027_Page_1-768x543.jpg" alt="La rentrée de l&rsquo;athlétisme">
3375                                                            </div>
3376                                
3377                            
3378                            
3379                            <div class="koba-actu-content">
3380                                <div class="koba-actu-date-categories ">
3381                                                                        <div class="koba-actu-date">
3382                                        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
3383                                            <rect x="3" y="4" width="18" height="18" rx="2" ry="2"/>
3384                                            <line x1="16" y1="2" x2="16" y2="6"/>
3385                                            <line x1="8" y1="2" x2="8" y2="6"/>
3386                                            <line x1="3" y1="10" x2="21" y2="10"/>
3387                                        </svg>
3388                                        12/09/2026                                    </div>
3389                                </div>
3390                                
3391                                <h3 class="koba-actu-title">
3392                                    <a href="https://www.saint-florentin.fr/actualites/la-rentree-de-lathletisme/">
3393                                        La rentrée de l&rsquo;athlétisme                                    </a>
3394
3395                                </h3>
3396                                
3397                                <p class="koba-actu-excerpt">
3398                                                                    </p>
3399                                
3400                                <a href="https://www.saint-florentin.fr/actualites/la-rentree-de-lathletisme/" class="koba-actu-button">
3401                                    Lire la suite
3402                                    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
3403                                        <line x1="5" y1="12" x2="19" y2="12"/>
3404                                        <polyline points="12 5 19 12 12 19"/>
3405                                    </svg>
3406                                </a>
3407                            </div>
3408                        </article>
3409                    </div>
3410                                        <div class="swiper-slide">
3411                        <article class="koba-actu-card">
3412                            <div class="koba-actu-image">
3413                                                                    <img src="https://www.saint-florentin.fr/wp-content/uploads/sites/66/2026/09/09-01-768x1152.png" alt="La rentrée de la gymnastique volontaire">
3414                                                            </div>
3415                                
3416                            
3417                            
3418                            <div class="koba-actu-content">
3419                                <div class="koba-actu-date-categories ">
3420                                                                        <div class="koba-actu-date">
3421                                        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
3422                                            <rect x="3" y="4" width="18" height="18" rx="2" ry="2"/>
3423                                            <line x1="16" y1="2" x2="16" y2="6"/>
3424                                            <line x1="8" y1="2" x2="8" y2="6"/>
3425                                            <line x1="3" y1="10" x2="21" y2="10"/>
3426                                        </svg>
3427                                        12/09/2026                                    </div>
3428                                </div>
3429                                
3430                                <h3 class="koba-actu-title">
3431                                    <a href="https://www.saint-florentin.fr/actualites/la-rentree-de-la-gymnastique-volontaire/">
3432                                        La rentrée de la gymnastique volontaire                                    </a>
3433
3434                                </h3>
3435                                
3436                                <p class="koba-actu-excerpt">
3437                                                                    </p>
3438                                
3439                                <a href="https://www.saint-florentin.fr/actualites/la-rentree-de-la-gymnastique-volontaire/" class="koba-actu-button">
3440                                    Lire la suite
3441                                    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
3442                                        <line x1="5" y1="12" x2="19" y2="12"/>
3443                                        <polyline points="12 5 19 12 12 19"/>
3444                                    </svg>
3445                                </a>
3446                            </div>
3447                        </article>
3448                    </div>
3449                                        <div class="swiper-slide">
3450                        <article class="koba-actu-card">
3451                            <div class="koba-actu-image">
3452                                                                    <img src="https://www.saint-florentin.fr/wp-content/uploads/sites/66/2026/09/Flyer-ESF-Tennis-Padel-2027-V3-768x1086.jpg" alt="La rentrée du tennis / padel">
3453                                                            </div>
3454                                
3455                            
3456                            
3457                            <div class="koba-actu-content">
3458                                <div class="koba-actu-date-categories ">
3459                                                                        <div class="koba-actu-date">
3460                                        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
3461                                            <rect x="3" y="4" width="18" height="18" rx="2" ry="2"/>
3462                                            <line x1="16" y1="2" x2="16" y2="6"/>
3463                                            <line x1="8" y1="2" x2="8" y2="6"/>
3464                                            <line x1="3" y1="10" x2="21" y2="10"/>
3465                                        </svg>
3466                                        12/09/2026                                    </div>
3467                                </div>
3468                                
3469   
3469                             <h3 class="koba-actu-title">
3470                                    <a href="https://www.saint-florentin.fr/actualites/la-rentree-du-tennis-padel/">
3471                                        La rentrée du tennis / padel                                    </a>
3472
3473                                </h3>
3474                                
3475                                <p class="koba-actu-excerpt">
3476                                                                    </p>
3477                                
3478                                <a href="https://www.saint-florentin.fr/actualites/la-rentree-du-tennis-padel/" class="koba-actu-button">
3479                                    Lire la suite
3480                                    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
3481                                        <line x1="5" y1="12" x2="19" y2="12"/>
3482                                        <polyline points="12 5 19 12 12 19"/>
3483                                    </svg>
3484                                </a>
3485                            </div>
3486                        </article>
3487                    </div>
3488                                        <div class="swiper-slide">
3489                        <article class="koba-actu-card">
3490                            <div class="koba-actu-image">
3491                                                                    <img src="https://www.saint-florentin.fr/wp-content/uploads/sites/66/2026/09/affiche-rentree-horaires-768x1152.png" alt="La rentrée du judo">
3492                                                            </div>
3493                                
3494                            
3495                            
3496                            <div class="koba-actu-content">
3497                                <div class="koba-actu-date-categories ">
3498                                                                        <div class="koba-actu-date">
3499                                        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
3500                                            <rect x="3" y="4" width="18" height="18" rx="2" ry="2"/>
3501                                            <line x1="16" y1="2" x2="16" y2="6"/>
3502                                            <line x1="8" y1="2" x2="8" y2="6"/>
3503                                            <line x1="3" y1="10" x2="21" y2="10"/>
3504                                        </svg>
3505                                        12/09/2026                                    </div>
3506                                </div>
3507                                
3508                                <h3 class="koba-actu-title">
3509                                    <a href="https://www.saint-florentin.fr/actualites/la-rentree-du-judo/">
3510                                        La rentrée du judo                                    </a>
3511
3512                                </h3>
3513                                
3514                                <p class="koba-actu-excerpt">
3515                                                                    </p>
3516                                
3517                                <a href="https://www.saint-florentin.fr/actualites/la-rentree-du-judo/" class="koba-actu-button">
3518                                    Lire la suite
3519                                    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
3520                                        <line x1="5" y1="12" x2="19" y2="12"/>
3521                                        <polyline points="12 5 19 12 12 19"/>
3522                                    </svg>
3523                                </a>
3524                            </div>
3525                        </article>
3526                    </div>
3527                                        <div class="swiper-slide">
3528                        <article class="koba-actu-card">
3529                            <div class="koba-actu-image">
3530                                                                    <img src="https://www.saint-florentin.fr/wp-content/uploads/sites/66/2026/09/sncf.jpg" alt="SNCF : travaux sur la ligne">
3531                                                            </div>
3532                                
3533                            
3534                            
3535                            <div class="koba-actu-content">
3536                                <div class="koba-actu-date-categories ">
3537                                                                        <div class="koba-actu-date">
3538                                        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
3539                                            <rect x="3" y="4" width="18" height="18" rx="2" ry="2"/>
3540                                            <line x1="16" y1="2" x2="16" y2="6"/>
3541                                            <line x1="8" y1="2" x2="8" y2="6"/>
3542                                            <line x1="3" y1="10" x2="21" y2="10"/>
3543                                        </svg>
3544                                        12/09/2026                                    </div>
3545                                </div>
3546                                
3547                                <h3 class="koba-actu-title">
3548                                    <a href="https://www.saint-florentin.fr/actualites/sncf-travaux-sur-la-ligne/">
3549                                        SNCF : travaux sur la ligne                                    </a>
3550
3551                                </h3>
3552                                
3553                                <p class="koba-actu-excerpt">
3554                                                                    </p>
3555                                
3556                                <a href="https://www.saint-florentin.fr/actualites/sncf-travaux-sur-la-ligne/" class="koba-actu-button">
3557                                    Lire la suite
3558                                    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
3559                                        <line x1="5" y1="12" x2="19" y2="12"/>
3560                                        <polyline points="12 5 19 12 12 19"/>
3561                                    </svg>
3562                                </a>
3563                            </div>
3564                        </article>
3565                    </div>
3566                                        <div class="swiper-slide">
3567                        <article class="koba-actu-card">
3568                            <div class="koba-actu-image">
3569                                                                    <img src="https://www.saint-florentin.fr/wp-content/uploads/sites/66/2026/09/top-view-cracked-dry-groun
3569d-texture-768x513.jpg" alt="Sécheresse : signalez toute anomalie">
3570                                                            </div>
3571                                
3572                            
3573                            
3574                            <div class="koba-actu-content">
3575                                <div class="koba-actu-date-categories ">
3576                                                                        <div class="koba-actu-date">
3577                                        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
3578                                            <rect x="3" y="4" width="18" height="18" rx="2" ry="2"/>
3579                                            <line x1="16" y1="2" x2="16" y2="6"/>
3580                                            <line x1="8" y1="2" x2="8" y2="6"/>
3581                                            <line x1="3" y1="10" x2="21" y2="10"/>
3582                                        </svg>
3583                                        12/09/2026                                    </div>
3584                                </div>
3585                                
3586                                <h3 class="koba-actu-title">
3587                                    <a href="https://www.saint-florentin.fr/actualites/secheresse-signalez-toute-anomalie/">
3588                                        Sécheresse : signalez toute anomalie                                    </a>
3589
3590                                </h3>
3591                                
3592                                <p class="koba-actu-excerpt">
3593                                                                    </p>
3594                                
3595                                <a href="https://www.saint-florentin.fr/actualites/secheresse-signalez-toute-anomalie/" class="koba-actu-button">
3596                                    Lire la suite
3597                                    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
3598                                        <line x1="5" y1="12" x2="19" y2="12"/>
3599                                        <polyline points="12 5 19 12 12 19"/>
3600                                    </svg>
3601                                </a>
3602                            </div>
3603                        </article>
3604                    </div>
3605                                        <div class="swiper-slide">
3606                        <article class="koba-actu-card">
3607                            <div class="koba-actu-image">
3608                                                                    <div class="koba-actu-image-placeholder">
3609                                        <svg width="48" height="48" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5">
3610                                            <rect x="3" y="3" width="18" height="18" rx="2" ry="2"/>
3611                                            <circle cx="8.5" cy="8.5" r="1.5"/>
3612                                            <polyline points="21 15 16 10 5 21"/>
3613                                        </svg>
3614                                    </div>
3615                                                            </div>
3616                                
3617                            
3618                            
3619                            <div class="koba-actu-content">
3620                                <div class="koba-actu-date-categories ">
3621                                                                        <div class="koba-actu-date">
3622                                        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
3623                                            <rect x="3" y="4" width="18" height="18" rx="2" ry="2"/>
3624                                            <line x1="16" y1="2" x2="16" y2="6"/>
3625                                            <line x1="8" y1="2" x2="8" y2="6"/>
3626                                            <line x1="3" y1="10" x2="21" y2="10"/>
3627                                        </svg>
3628                                        21/07/2026                                    </div>
3629                                </div>
3630                                
3631                                <h3 class="koba-actu-title">
3632                                    <a href="https://www.saint-florentin.fr/actualites/mentions-tres-bien-aux-examens-2026/">
3633                                        Mentions Très bien aux examens 2026                                    </a>
3634
3635                                </h3>
3636                                
3637                                <p class="koba-actu-excerpt">
3638                                    Vous habitez la commune de Saint-Florentin. Vous avez obtenu une mention Très BIen à votre...                                </p>
3639                                
3640                                <a href="https://www.saint-florentin.fr/actualites/mentions-tres-bien-aux-examens-2026/" class="koba-actu-button">
3641                                    Lire la suite
3642                                    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
3643                                        <line x1="5" y1="12" x2="19" y2="12"/>
3644                                        <polyline points="12 5 19 12 12 19"/>
3645                                    </svg>
3646                                </a>
3647                            </div>
3648                        </article>
3649                    </div>
3650                                        <div class="swiper-slide">
3651                        <article class="koba-actu-card">
3652                            <div class="koba-actu-image">
3653                                                                    <img src="https://www.saint-florentin.fr/wp-content/uploads/sites/66/2026/07/PermanencesADIL89-2ndsemestre2026_Page_1-768x543.jpg" alt="Permanences de l&rsquo;ADIL">
3654                                                            </div>
3655                                
3656                            
3657                            
3658                            <div class="koba-actu-content">
3659                                <div class="koba-actu-date-categories ">
3660                                                                        <div class="koba-actu-date">
3661                                        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
3662                                            <rect x="3" y="4" width="18" height="18" rx="2" ry="2"/>
3663                                            <line x1="16" y1="2" x2="16" y2="6"/>
3664                                            <line x1="8" y1="2" x2="8" y2="6"/>
3665                                            <line x1="3" y1="10" x2="21" y2="10"/>
3666                                        </svg>
3667                                        21/07/2026                                    </div>
3668                                </div>
3669                                
3670                                <h3 class="koba-actu-title">
3671                                    <a href="https://www.saint-florentin.fr/actualites/permanences-de-ladil/">
3672                                        Permanences de l&rsquo;ADIL                                    </a>
3673
3674                                </h3>
3675                                
3676                                <p class="koba-actu-excerpt">
3677                                                                    </p>
3678                                
3679                                <a href="https://www.saint-florentin.fr/actualites/permanences-de-ladil/" class="koba-actu-button">
3680                                    Lire la suite
3681                                    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
3682                                        <line x1="5" y1="12" x2="19" y2="12"/>
3683                                        <polyline points="12 5 19 12 12 19"/>
3684                                    </svg>
3685                                </a>
3686                            </div>
3687                        </article>
3688                    </div>
3689                                    </div>
3690            </div>            
3691        </div>
3692    </div>
3693    
3694    
3694<script src="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.js"></script>
3694
3695    
3695<script>
3696    document.addEventListener('DOMContentLoaded', function() {
3697        new Swiper('#koba-actu-swiper-6abfe64a0fea4', {
3698            slidesPerView: 1,
3699            spaceBetween: 20,
3700            loop: true,
3701                        speed: 500,
3702            pagination: {
3703                el: '#koba-actu-swiper-6abfe64a0fea4-pagination',
3704                clickable: true,
3705            },
3706            navigation: {
3707                nextEl: '#koba-actu-swiper-6abfe64a0fea4-next',
3708                prevEl: '#koba-actu-swiper-6abfe64a0fea4-prev',
3709            },
3710            breakpoints: {
3711                576: {
3712                    slidesPerView: 2,
3713                    spaceBetween: 5,
3714                },
3715                992: {
3716                    slidesPerView: 3,
3717                    spaceBetween: 5,
3718                },
3719                1200: {
3720                    slidesPerView: 4,
3721                    spaceBetween: 5,
3722                },
3723            },
3724        });
3725    });
3726    </script>
3726
3727                </div>
3728        </div>
3729            </div>
3730</section>
3731<section class="frontpage-agenda">    
3732    <div class="container mt-5 pb-5">
3733        <div class="row">
3734            <div class="col-md-6 frontpage-title-text">
3735                <h2 class="frontpage-section-title">
3736                    <i class="far fa-dot-circle text-warning mr-2" aria-hidden="true"></i>
3737                    Agenda
3738                </h2>
3739            </div>
3740
3741            <div class="col-md-6 frontpage-title-all">
3742                <a href="https://www.saint-florentin.fr/evenements/">
3743                    <i class="far fa-dot-circle text-warning mr-2" aria-hidden="true"></i>
3744                    Voir tous les événements
3745                </a>
3746            </div>
3747            <div class="col-md-12">
3748                    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.css" />
3749    
3750    <div class="koba-agenda-section" id="koba-calendar-6abfe64a1be03">
3751        <div class="koba-agenda-calendar">
3752            <div class="calendar-box">
3753                <div class="calendar-header">
3754                    <button type="button" class="calendar-nav calendar-prev">❮</button>
3755                    <h3 class="calendar-month-title"></h3>
3756                    <button type="button" class="calendar-nav calendar-next">❯</button>
3757                </div>
3758                <div class="calendar-weekdays">
3759                    <span>L</span><span>M</span><span>M</span><span>J</span><span>V</span><span>S</span><span>D</span>
3760                </div>
3761                <div class="calendar-days"></div>
3762                
3763                <div class="calendar-filter-info">
3764                    <p class="filter-text">À partir du <strong class="filter-date"></strong></p>
3765                    <button type="button" class="filter-reset">✕</button>
3766                </div>
3767            </div>
3768        </div>
3769        
3770        <div class="koba-agenda-events">
3771            <div class="swiper events-swiper">
3772                <div class="swiper-wrapper"></div>
3773            </div>
3774            
3775            <div class="swiper-nav">
3776                <button type="button" class="swiper-btn swiper-btn-prev">❮</button>
3777                <div class="swiper-pagination"></div>
3778                <button type="button" class="swiper-btn swiper-btn-next">❯</button>
3779            </div>
3780            
3781            <p class="no-events-message">Aucun événement à venir.</p>
3782        </div>
3783    </div>
3784    
3785    <style>
3786        .koba-agenda-section {
3787            display: grid;
3788            grid-template-columns: 280px 1fr;
3789            gap: 30px;
3790            align-items: start;
3791            overflow: hidden;
3792        }
3793        
3794        .koba-agenda-calendar { position: sticky; }
3795        .calendar-box {
3796            background: #fff;
3797            border: 1px solid #dee2e6;
3798        }
3799        .calendar-header {
3800            display: flex;
3801            align-items: center;
3802            justify-content: space-between;
3803            margin-bottom: 12px;
3804            background: #1975ae;
3805            color: #fff;
3806            padding: 5px;
3807        }
3808        .calendar-header h3 {
3809            margin: 0;
3810            font-size: 16px;
3811            font-weight: 600;
3812            text-transform: capitalize;
3813        }
3814        .calendar-nav {
3815            background: none;
3816            border: none;
3817            width: 28px;
3818            height: 28px;
3819            border-radius: 6px;
3820            cursor: pointer;
3821            font-size: 11px;
3822            transition: all 0.2s;
3823            color: #fff;
3824        }
3825        .calendar-nav:hover {
3826            background: #1975ae;
3827            border-color: #1975ae;
3828            color: #fff;
3829        }
3830        .calendar-weekdays {
3831            display: grid;
3832            grid-template-columns: repeat(7, 1fr);
3833            text-align: center;
3834            font-size: 14px;
3835            color: var(--koba-secondary);
3836            margin-bottom: 6px;
3837        }
3838        .calendar-days {
3839            display: grid;
3840            grid-template-columns: repeat(7, 1fr);
3841            gap: 2px;
3842        }
3843        .calendar-day {
3844            aspect-ratio: 1;
3845            display: flex;
3846            align-items: center;
3847            justify-content: center;
3848            font-size: 16px;
3849            border-radius: 50%;
3850            cursor: pointer;
3851            position: relative;
3852            transition: all 0.2s;
3853        }
3854        .calendar-day:hover { background: #f0f0f0; }
3855        .calendar-day.empty { cursor: default; }
3856        .calendar-day.empty:hover { background: transparent; }
3857        .calendar-day.past { color: #ccc; }
3858        .calendar-day.today {
3859            background: #1975ae;
3860            color: #fff;
3861            font-weight: 600;
3862        }
3863        .calendar-day.today:hover { opacity: 0.9; }
3864        .calendar-day.selected {
3865            background: #d81f27;
3866            color: #fff;
3867            font-weight: 600;
3868        }
3869        .calendar-day.has-event::after {
3870            content: '';
3871            position: absolute;
3872            bottom: 2px;
3873            left: 50%;
3874            transform: translateX(-50%);
3875            width: 4px;
3876            height: 4px;
3877            background: #d81f27;
3878            border-radius: 50%;
3879        }
3880        .calendar-day.today.has-event::after,
3881        .calendar-day.selected.has-event::after {
3882            background: #fff;
3883        }
3884        
3885        .calendar-filter-info {
3886            display: none;
3887            margin-top: 12px;
3888            padding: 8px 10px;
3889            background: #d81f27;
3890            border-radius: 0;
3891            align-items: center;
3892            justify-content: space-between;
3893            gap: 8px;
3894        }
3895        .calendar-filter-info.active { display: flex; }
3896        .filter-text {
3897            margin: 0;
3898            font-size: 11px;
3899            color: #666;
3900        }
3901        .filter-text strong { color: #1975ae; }
3902        .filter-reset {
3903            background: #e74c3c;
3904            color: #fff;
3905            border: none;
3906            width: 22px;
3907            height: 22px;
3908            border-radius: 4px;
3909            font-size: 11px;
3910            cursor: pointer;
3911            line-height: 1;
3912        }
3913        .filter-reset:hover { background: #c0392b; }
3914        
3915        .koba-agenda-events { 
3916            min-height: 260px;
3917            position: relative;
3918            overflow: hidden;
3919            min-width: 0;
3920        }
3921        .events-swiper {
3922            overflow: hidden;
3923            padding: 5px;
3924            margin: -5px;
3925            width: 100%;
3926            max-width: 100%;
3927        }
3928        .events-swiper .swiper-wrapper {
3929            display: flex;
3930            align-items: stretch;
3931            width: 100%;
3932        }
3933        .swiper-slide {
3934            height: auto;
3935            box-sizing: border-box;
3936            flex-shrink: 0;
3937            width: 100%;
3938        }
3939        @media (min-width: 480px) {
3940            .swiper-slide { width: calc(50% - 6px); }
3941        }
3942        @media (min-width: 768px) {
3943            .swiper-slide { width: calc(33.333% - 10px); }
3944        }
3945        .event-card {
3946            background: #fff;
3947            border: 1px solid #dee2e6;
3948            overflow: hidden;
3949            transition: transform 0.3s ease, box-shadow 0.3s ease;
3950            text-decoration: none;
3951            color: inherit;
3952            display: flex;
3953            flex-direction: column;
3954            height: 100%;
3955        }
3956        .event-card-image {
3957            position: relative;
3958            overflow: hidden;
3959        }
3960        .event-card-image img {
3961            width: 100%;
3962            height: 100%;
3963            object-fit: cover;
3964            transition: transform 0.3s;
3965            height: 185px;
3966        }
3967        .event-card:hover .event-card-image img { transform: scale(1.05); }
3968.event-card-date {
3969    display: flex;
3970    justify-content: center;
3971    align-items: center;
3972    gap: 6px;
3973    margin: -73px auto 0;
3974    position: relative;
3975    z-index: 2;
3976}
3977.event-card-date-box {
3978    padding: 5px 10px;
3979    text-align: center;
3980    min-width: 65px;
3981}
3982        .event-card-date-box .day {
3983            display: block;
3984            font-size: 32px;
3985            color: #fff;
3986            line-height: 1;
3987        }
3988        .event-card-date-box .month {
3989            display: block;
3990            font-size: 20px;
3991            font-weight: 700;
3992            text-transform: uppercase;
3993            color: #fff;
3994            margin-top: 1px;
3995        }
3996        .event-card-date-separator {
3997            color: #fff;
3998            font-size: 20px;
3999            font-weight: 300;
4000            padding: 0 2px;
4001            opacity: 0.8;
4002        }
4003        .event-card-category {
4004            color: #fff;
4005            padding: 8px;
4006            font-size: 11.2px;
4007            font-weight: 600;
4008            text-transform: uppercase;
4009            width: 100%;
4010            position: relative;
4011            display: block;
4012            text-align: center;
4013        }
4014        .event-card-body { padding: 12px; }
4015        .event-card-title {
4016            font-size: 16px;
4017            font-weight: 700;
4018            margin: 0 0 5px 0;
4019            line-height: 1.3;
4020            color: #d81f27;
4021            display: -webkit-box;
4022            -webkit-line-clamp: 2;
4023            -webkit-box-orient: vertical;
4024            overflow: hidden;
4025        }
4026        .event-card-time {
4027            font-size: 11px;
4028            color: #666;
4029            display: flex;
4030            align-items: center;
4031            gap: 4px;
4032            display: none;
4033        }
4034        .event-card-time::before {
4035            content: '🕐';
4036            font-size: 10px;
4037        }
4038        .event-card-excerpt{
4039            font-size: 11.2px;
4040            line-height: 16.8px;
4041            font-weight: 400;
4042            color: #6c757d;
4043        }
4044        .event-card-readmore{
4045            display: block;
4046            align-items: center;
4047            gap: 8px;
4048            color: #6c757d;
4049            text-decoration: none;
4050            font-size: 11.2px;
4051            font-weight: 500;
4052            transition: all 0.3s ease;
4053            align-self: flex-end;
4054            margin-right: 16px;
4055            margin-bottom: 16px;
4056            font-style: italic;
4057            text-align: right;
4058        }
4059        .event-card-readmore svg{
4060            width: 16px;
4061            height: 16px;
4062            transition: transform 0.3s;
4063        }
4064        .swiper-nav {
4065            display: flex;
4066            align-items: center;
4067            justify-content: center;
4068            gap: 12px;
4069            margin-top: 18px;
4070        }
4071        .swiper-btn {
4072            background: #fff;
4073            border: 1px solid #e0e0e0;
4074            width: 34px;
4075            height: 34px;
4076            border-radius: 50%;
4077            cursor: pointer;
4078            font-size: 13px;
4079            transition: all 0.2s;
4080            color: #666;
4081        }
4082        .swiper-btn:hover {
4083            background: #1975ae;
4084            border-color: #1975ae;
4085            color: #fff;
4086        }
4087        .swiper-btn:disabled {
4088            opacity: 0.3;
4089            cursor: not-allowed;
4090        }
4091        .swiper-btn:disabled:hover {
4092            background: #fff;
4093            border-color: #e0e0e0;
4094            color: #666;
4095        }
4096        .swiper-pagination {
4097            position: static !important;
4098            display: flex;
4099            gap: 5px;
4100        }
4101        .swiper-pagination-bullet {
4102            width: 8px;
4103            height: 8px;
4104            background: #ddd;
4105            border-radius: 50%;
4106            opacity: 1;
4107            transition: all 0.2s;
4108        }
4109        .swiper-pagination-bullet-active {
4110            background: #1975ae;
4111            width: 20px;
4112            border-radius: 4px;
4113        }
4114        
4115        .no-events-message {
4116            display: none;
4117            text-align: center;
4118            padding: 50px 20px;
4119            color: #999;
4120            font-size: 14px;
4121            background: #fff;
4122            border-radius: 12px;
4123            box-shadow: 0 2px 15px rgba(0,0,0,0.08);
4124        }
4125        .no-events-message.visible { display: block; }
4126        
4127        @media (max-width: 900px) {
4128            .koba-agenda-section {
4129                grid-template-columns: 240px 1fr;
4130                gap: 20px;
4131            }
4132        }
4133        @media (max-width: 768px) {
4134            .koba-agenda-section {
4135                grid-template-columns: 1fr;
4136            }
4137            .koba-agenda-calendar {
4138                position: static;
4139            }
4140        }
4141    </style>
4142    
4143    
4143<script src="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.js"></script>
4143
4144    
4145    
4145<script>
4146    (function() {
4147        var widget = document.getElementById('koba-calendar-6abfe64a1be03');
4148        var events = [{"id":607,"title":"M\u00e9diath\u00e8que : expo Goutorbe","date":"2026-06-29","end_date":"2026-07-31","time":"09:00","url":"https:\/\/www.saint-florentin.fr\/evenements\/607\/","thumbnail":"https:\/\/www.saint-florentin.fr\/wp-content\/uploads\/sites\/66\/2026\/07\/06-29-212x300.jpg","category":"","catClass":"agenda-color-default","excerpt":""},{"id":610,"title":"Mus\u00e9e : expo S\u00e9bastien BOUFFAY","date":"2026-07-01","end_date":"2026-08-31","time":"14:30","url":"https:\/\/www.saint-florentin.fr\/evenements\/musee-expo-sebastien-bouffay\/","thumbnail":"https:\/\/www.saint-florentin.fr\/wp-content\/uploads\/sites\/66\/2026\/07\/07-01-212x300.jpg","category":"","catClass":"agenda-color-default","excerpt":""},{"id":641,"title":"Office de tourisme : animations estivales","date":"2026-07-02","end_date":"2026-08-22","time":"10:00","url":"https:\/\/www.saint-florentin.fr\/evenements\/office-de-tourisme-animations-estivales\/","thumbnail":"https:\/\/www.saint-florentin.fr\/wp-content\/uploads\/sites\/66\/2026\/07\/07-01-1-212x300.jpg","category":"","catClass":"agenda-color-default","excerpt":""},{"id":612,"title":"Festival Points d'Orgue","date":"2026-07-03","end_date":"2026-08-28","time":"20:30","url":"https:\/\/www.saint-florentin.fr\/evenements\/festival-points-dorgue\/","thumbnail":"https:\/\/www.saint-florentin.fr\/wp-content\/uploads\/sites\/66\/2026\/07\/07-03-1-300x211.jpg","category":"","catClass":"agenda-color-default","excerpt":""},{"id":614,"title":"Les Ateliers du Puits : expo","date":"2026-07-04","end_date":"2026-07-19","time":"14:00","url":"https:\/\/www.saint-florentin.fr\/evenements\/les-ateliers-du-puits-expo\/","thumbnail":"https:\/\/www.saint-florentin.fr\/wp-content\/uploads\/sites\/66\/2026\/07\/07-04-212x300.jpg","category":"","catClass":"agenda-color-default","excerpt":""},{"id":645,"title":"Office de tourisme : visites guid\u00e9es de l'\u00e9glise","date":"2026-07-04","end_date":"2026-08-22","time":"17:30","url":"https:\/\/www.saint-florentin.fr\/evenements\/office-de-tourisme-visites-guidees-de-leglise\/","thumbnail":"https:\/\/www.saint-florentin.fr\/wp-content\/uploads\/sites\/66\/2026\/07\/Affiche-VG-eglise-St-Flo-ete-2026-212x300.png","category":"","catClass":"agenda-color-default","excerpt":""},{"id":616,"title":"Bistrots nomades : 21 ao\u00fbt \u00e0 St Flo","date":"2026-07-10","end_date":"2026-08-21","time":"20:00","url":"https:\/\/www.saint-florentin.fr\/evenements\/bistrots-nomades-21-aout-a-st-flo\/","thumbnail":"https:\/\/www.saint-florentin.fr\/wp-content\/uploads\/sites\/66\/2026\/07\/07-10-212x300.jpg","category":"","catClass":"agenda-color-default","excerpt":""},{"id":637,"title":"Les Garagistes : concert JOOST","date":"2026-07-15","end_date":"2026-07-15","time":"20:00","url":"https:\/\/www.saint-florentin.fr\/evenements\/les-garagistes-concert-joost\/","thumbnail":"https:\/\/www.saint-florentin.fr\/wp-content\/uploads\/sites\/66\/2026\/07\/07-15-300x300.jpg","category":"","catClass":"agenda-color-default","excerpt":""},{"id":618,"title":"Festi'coccinelle : 21 et 22 juillet","date":"2026-07-21","end_date":"2026-07-22","time":"10:00","url":"https:\/\/www.saint-florentin.fr\/evenements\/festicoccinelle-21-et-22-juillet\/","thumbnail":"https:\/\/www.saint-florentin.fr\/wp-content\/uploads\/sites\/66\/2026\/07\/07-21-300x212.jpg","category":"","catClass":"agenda-color-default","excerpt":""},{"id":635,"title":"Espace famille : karaok\u00e9 pizza","date":"2026-07-21","end_date":"2026-07-21","time":"18:00","url":"https:\/\/www.saint-florentin.fr\/evenements\/espace-famille-karaoke-pizza\/","thumbnail":"https:\/\/www.saint-florentin.fr\/wp-content\/uploads\/sites\/66\/2026\/07\/07.21-212x300.jpg","category":"","catClass":"agenda-color-default","excerpt":""},{"id":661,"title":"Concours de p\u00e9tanque doublette","date":"2026-08-08","end_date":"2026-08-08","time":"17:00","url":"https:\/\/www.saint-florentin.fr\/evenements\/concours-de-petanque-doublette\/","thumbnail":"https:\/\/www.saint-florentin.fr\/wp-content\/uploads\/sites\/66\/2026\/07\/08-08-200x300.jpg","category":"","catClass":"agenda-color-default","excerpt":""},{"id":663,"title":"Espace famille : programme \u00e9t\u00e9","date":"2026-08-18","end_date":"2026-08-28","time":"14:30","url":"https:\/\/www.saint-florentin.fr\/evenements\/espace-famille-programme-ete\/","thumbnail":"https:\/\/www.saint-florentin.fr\/wp-content\/uploads\/sites\/66\/2026\/07\/08-18-212x300.png","category":"","catClass":"agenda-color-default","excerpt":""},{"id":665,"title":"Espace famille : sortie Mus\u00e9e du Son","date":"2026-08-20","end_date":"2026-08-20","time":"14:30","url":"https:\/\/www.saint-florentin.fr\/evenements\/espace-famille-sortie-musee-du-son\/","thumbnail":"https:\/\/www.saint-florentin.fr\/wp-content\/uploads\/sites\/66\/2026\/07\/08-20-212x300.png","category":"","catClass":"agenda-color-default","excerpt":""},{"id":643,"title":"Espace famille : sortie Institut du Monde Arabe","date":"2026-08-27","end_date":"2026-08-27","time":"08:00","url":"https:\/\/www.saint-florentin.fr\/evenements\/espace-famille-sortie-institut-du-monde-arabe\/","thumbnail":"https:\/\/www.saint-florentin.fr\/wp-content\/uploads\/sites\/66\/2026\/07\/08-27-212x300.jpeg","category":"","catClass":"agenda-color-default","excerpt":""},{"id":647,"title":"Championnats de France de P\u00e9tanque","date":"2026-08-29","end_date":"2026-08-30","time":"10:00","url":"https:\/\/www.saint-florentin.fr\/evenements\/championnats-de-france-de-petanque\/","thumbnail":"https:\/\/www.saint-florentin.fr\/wp-content\/uploads\/sites\/66\/2026\/07\/08-29-240x300.jpg","category":"","catClass":"agenda-color-default","excerpt":""},{"id":811,"title":"M\u00e9diath\u00e8que : expo Buhagiar","date":"2026-09-02","end_date":"2026-09-26","time":"09:00","url":"https:\/\/www.saint-florentin.fr\/evenements\/mediatheque-expo-buhagiar\/","thumbnail":"https:\/\/www.saint-florentin.fr\/wp-content\/uploads\/sites\/66\/2026\/09\/09-02-212x300.jpg","category":"","catClass":"agenda-color-default","excerpt":""},{"id":835,"title":"Mus\u00e9e : expo Des Reines et du vin","date":"2026-09-04","end_date":"2026-10-31","time":"14:30","url":"https:\/\/www.saint-florentin.fr\/evenements\/musee-expo-des-reines-et-du-vin\/","thumbnail":"https:\/\/www.saint-florentin.fr\/wp-content\/uploads\/sites\/66\/2026\/09\/musee-214x300.png","category":"","catClass":"agenda-color-default","excerpt":""},{"id":815,"title":"Harmonie municipale : allez \u00e0 leur rencontre","date":"2026-09-09","end_date":"2026-09-30","time":"20:00","url":"https:\/\/www.saint-florentin.fr\/evenements\/harmonie-municipale-allez-a-leur-rencontre\/","thumbnail":"https:\/\/www.saint-florentin.fr\/wp-content\/uploads\/sites\/66\/2026\/09\/09-16-240x300.jpg","category":"","catClass":"agenda-color-default","excerpt":""},{"id":807,"title":"F\u00eate de la Sainte B\u00e9ate \u00e0 Avrolles","date":"2026-09-12","end_date":"2026-09-13","time":"19:30","url":"https:\/\/www.saint-florentin.fr\/evenements\/fete-de-la-sainte-beate-a-avrolles\/","thumbnail":"https:\/\/www.saint-florentin.fr\/wp-content\/uploads\/sites\/66\/2026\/09\/09-12-212x300.jpg","category":"","catClass":"agenda-color-default","excerpt":""},{"id":809,"title":"5 km du Florentinois","date":"2026-09-13","end_date":"2026-09-13","time":"09:30","url":"https:\/\/www.saint-florentin.fr\/evenements\/5-km-du-florentinois\/","thumbnail":"https:\/\/www.saint-florentin.fr\/wp-content\/uploads\/sites\/66\/2026\/09\/09-13-212x300.png","category":"","catClass":"agenda-color-default","excerpt":""},{"id":813,"title":"F\u00eate du sport","date":"2026-09-14","end_date":"2026-09-14","time":"17:00","url":"https:\/\/www.saint-florentin.fr\/evenements\/fete-du-sport\/","thumbnail":"https:\/\/www.saint-florentin.fr\/wp-content\/uploads\/sites\/66\/2026\/09\/09-14-214x300.png","category":"","catClass":"agenda-color-default","excerpt":""},{"id":817,"title":"Espace famille : r\u00e9flexologie","date":"2026-09-16","end_date":"2026-09-16","time":"10:00","url":"https:\/\/www.saint-florentin.fr\/evenements\/espace-famille-reflexologie\/","thumbnail":"https:\/\/www.saint-florentin.fr\/wp-content\/uploads\/sites\/66\/2026\/09\/09-16-1-212x300.jpg","category":"","catClass":"agenda-color-default","excerpt":""},{"id":819,"title":"R\u00e9union du conseil communautaire CCSA","date":"2026-09-17","end_date":"2026-09-17","time":"19:00","url":"https:\/\/www.saint-florentin.fr\/evenements\/819\/","thumbnail":"https:\/\/www.saint-florentin.fr\/wp-content\/uploads\/sites\/66\/2026\/09\/CCSA-300x91.png","category":"","catClass":"agenda-color-default","excerpt":""},{"id":829,"title":"Espace famille : kin\u00e9siologie","date":"2026-09-18","end_date":"2026-09-18","time":"09:30","url":"https:\/\/www.saint-florentin.fr\/evenements\/espace-famille-kinesiologie\/","thumbnail":"https:\/\/www.saint-florentin.fr\/wp-content\/uploads\/sites\/66\/2026\/09\/09-18-212x300.png","category":"","catClass":"agenda-color-default","excerpt":""},{"id":831,"title":"APF France handicap: permanence","date":"2026-09-18","end_date":"2026-09-18","time":"14:00","url":"https:\/\/www.saint-florentin.fr\/evenements\/apf-france-handicap-permanence\/","thumbnail":"https:\/\/www.saint-florentin.fr\/wp-content\/uploads\/sites\/66\/2026\/09\/09-18-3-212x300.jpg","category":"","catClass":"agenda-color-default","excerpt":""},{"id":827,"title":"Coll\u00e8ge : caf\u00e9 des parents","date":"2026-09-18","end_date":"2026-09-18","time":"17:30","url":"https:\/\/www.saint-florentin.fr\/evenements\/college-cafe-des-parents\/","thumbnail":"https:\/\/www.saint-florentin.fr\/wp-content\/uploads\/sites\/66\/2026\/09\/09-18-200x300.jpg","category":"","catClass":"agenda-color-default","excerpt":""},{"id":824,"title":"Journ\u00e9es du patrimoine","date":"2026-09-19","end_date":"2026-09-20","time":"09:00","url":"https:\/\/www.saint-florentin.fr\/evenements\/journees-du-patrimoine\/","thumbnail":"https:\/\/www.saint-florentin.fr\/wp-content\/uploads\/sites\/66\/2026\/09\/09-19-212x300.jpg","category":"","catClass":"agenda-color-default","excerpt":""},{"id":833,"title":"Ehpad Saint Charles : march\u00e9 de producteurs\/cr\u00e9ateurs","date":"2026-09-19","end_date":"2026-09-19","time":"09:00","url":"https:\/\/www.saint-florentin.fr\/evenements\/ehpad-saint-charles-marche-de-producteurs-createurs\/","thumbnail":"https:\/\/www.saint-florentin.fr\/wp-content\/uploads\/sites\/66\/2026\/09\/09-19-212x300.png","category":"","catClass":"agenda-color-default","excerpt":""}
4148,{"id":844,"title":"Ateliers du Puits : expo de peinture","date":"2026-09-19","end_date":"2026-09-20","time":"14:30","url":"https:\/\/www.saint-florentin.fr\/evenements\/ateliers-du-puits-expo-de-peinture\/","thumbnail":"https:\/\/www.saint-florentin.fr\/wp-content\/uploads\/sites\/66\/2026\/09\/10-18-212x300.jpg","category":"","catClass":"agenda-color-default","excerpt":""},{"id":846,"title":"Oldelaf en concert","date":"2026-09-26","end_date":"2026-09-26","time":"20:00","url":"https:\/\/www.saint-florentin.fr\/evenements\/oldelaf-en-concert\/","thumbnail":"https:\/\/www.saint-florentin.fr\/wp-content\/uploads\/sites\/66\/2026\/09\/80x120_oldelaf26-200x300.jpg","category":"","catClass":"agenda-color-default","excerpt":"Sur sc\u00e8ne ou \u00e0 la radio, Oldelaf est connu pour ses chansons dr\u00f4les, tendres et absurdes, ponctu\u00e9es de quelques accords\u2026"},{"id":837,"title":"March\u00e9 de No\u00ebl et vide-grenier : 6 d\u00e9cembre","date":"2026-12-06","end_date":"2026-12-06","time":"06:00","url":"https:\/\/www.saint-florentin.fr\/evenements\/marche-de-noel-et-vide-grenier-6-decembre\/","thumbnail":"https:\/\/www.saint-florentin.fr\/wp-content\/uploads\/sites\/66\/2026\/09\/noel-300x210.jpg","category":"","catClass":"agenda-color-default","excerpt":""}];
4149        var maxEvents = 12;
4150        var currentMonth = new Date().getMonth();
4151        var currentYear = new Date().getFullYear();
4152        var selectedDate = null;
4153        var today = new Date();
4154        today.setHours(0, 0, 0, 0);
4155        var swiper = null;
4156        
4157        var monthNames = ['Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 
4158                          'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre'];
4159        var monthShort = ['Jan', 'Fév', 'Mar', 'Avr', 'Mai', 'Juin', 'Juil', 'Août', 'Sep', 'Oct', 'Nov', 'Déc'];
4160        
4161        function init() {
4162            renderCalendar();
4163            renderEvents();
4164            bindEvents();
4165        }
4166        
4167        function bindEvents() {
4168            widget.querySelector('.calendar-prev').addEventListener('click', function() {
4169                currentMonth--;
4170                if (currentMonth < 0) { currentMonth = 11; currentYear--; }
4171                renderCalendar();
4172            });
4173            
4174            widget.querySelector('.calendar-next').addEventListener('click', function() {
4175                currentMonth++;
4176                if (currentMonth > 11) { currentMonth = 0; currentYear++; }
4177                renderCalendar();
4178            });
4179            
4180            widget.querySelector('.filter-reset').addEventListener('click', function() {
4181                selectedDate = null;
4182                widget.querySelector('.calendar-filter-info').classList.remove('active');
4183                renderCalendar();
4184                renderEvents();
4185            });
4186        }
4187        
4188        function renderCalendar() {
4189            widget.querySelector('.calendar-month-title').textContent = monthNames[currentMonth] + ' ' + currentYear;
4190            
4191            var daysContainer = widget.querySelector('.calendar-days');
4192            daysContainer.innerHTML = '';
4193            
4194            var firstDay = new Date(currentYear, currentMonth, 1).getDay();
4195            firstDay = firstDay === 0 ? 7 : firstDay;
4196            var daysInMonth = new Date(currentYear, currentMonth + 1, 0).getDate();
4197            
4198            for (var i = 1; i < firstDay; i++) {
4199                var emptyDay = document.createElement('div');
4200                emptyDay.className = 'calendar-day empty';
4201                daysContainer.appendChild(emptyDay);
4202            }
4203            
4204            for (var day = 1; day <= daysInMonth; day++) {
4205                var dateStr = currentYear + '-' + String(currentMonth + 1).padStart(2, '0') + '-' + String(day).padStart(2, '0');
4206                var dayDate = new Date(currentYear, currentMonth, day);
4207                var hasEvent = events.some(function(e) { return e.date === dateStr; });
4208                var isToday = dayDate.getTime() === today.getTime();
4209                var isPast = dayDate < today;
4210                var isSelected = selectedDate && dateStr === selectedDate;
4211                
4212                var dayEl = document.createElement('div');
4213                dayEl.className = 'calendar-day';
4214                if (hasEvent) dayEl.className += ' has-event';
4215                if (isToday) dayEl.className += ' today';
4216                if (isPast && !isToday) dayEl.className += ' past';
4217                if (isSelected) dayEl.className += ' selected';
4218                dayEl.textContent = day;
4219                dayEl.dataset.date = dateStr;
4220                
4221                dayEl.addEventListener('click', function() {
4222                    selectedDate = this.dataset.date;
4223                    widget.querySelectorAll('.calendar-day').forEach(function(d) { d.classList.remove('selected'); });
4224                    this.classList.add('selected');
4225                    
4226                    var dateObj = new Date(selectedDate);
4227                    widget.querySelector('.filter-date').textContent = dateObj.getDate() + ' ' + monthNames[dateObj.getMonth()] + ' ' + dateObj.getFullYear();
4228                    widget.querySelector('.calendar-filter-info').classList.add('active');
4229                    
4230                    renderEvents();
4231                });
4232                
4233                daysContainer.appendChild(dayEl);
4234            }
4235        }
4236        
4237        function renderEvents() {
4238            var swiperWrapper = widget.querySelector('.swiper-wrapper');
4239            var noEventsMsg = widget.querySelector('.no-events-message');
4240            var swiperContainer = widget.querySelector('.events-swiper');
4241            var swiperNav = widget.querySelector('.swiper-nav');
4242            swiperWrapper.innerHTML = '';
4243            
4244            var filterDate = selectedDate ? new Date(selectedDate) : today;
4245            filterDate.setHours(0, 0, 0, 0);
4246            
4247var filteredEvents = events.filter(function(event) {
4248                var eventDate = new Date(event.date);
4249                var eventEndDate = new Date(event.end_date || event.date);
4250                eventDate.setHours(0, 0, 0, 0);
4251                eventEndDate.setHours(0, 0, 0, 0);
4252                return eventDate >= filterDate || eventEndDate >= filterDate;
4253            });
4254            
4255            filteredEvents.sort(function(a, b) { return new Date(a.date) - new Date(b.date); });
4256            filteredEvents = filteredEvents.slice(0, maxEvents);
4257            
4258            if (filteredEvents.length === 0) {
4259                if (swiper) {
4260                    swiper.destroy(true, true);
4261                    swiper = null;
4262                }
4263                swiperWrapper.innerHTML = '';
4264                swiperWrapper.style.transform = '';
4265                noEventsMsg.classList.add('visible');
4266                swiperContainer.style.display = 'none';
4267                swiperNav.style.display = 'none';
4268                return;
4269            }
4270            
4271            noEventsMsg.classList.remove('visible');
4272            swiperContainer.style.display = 'block';
4273            swiperNav.style.display = 'flex';
4274            
4275            filteredEvents.forEach(function(event) {
4276                var eventDate = new Date(event.date);
4277                var dayNum = eventDate.getDate();
4278                var monthName = monthShort[eventDate.getMonth()];
4279                var timeDisplay = event.time !== '00:00' ? event.time.replace(':', 'h') : '';
4280                
4281                var slide = document.createElement('div');
4282                slide.className = 'swiper-slide';
4283                
4284var categoryClass = event.catClass 
4285    ? event.catClass 
4286    : (event.category 
4287        ? 'agenda-color-' + event.category.toLowerCase().replace(/ /g, '-').replace(/&/g,'').replace(/[^\w-]+/g,'')
4288        : 'agenda-color-default');
4289
4290var timeHtml = event.timeDisplay 
4291    ? '<div class="event-card-time">' + event.timeDisplay + '</div>' 
4292    : '';
4293
4294var imageHtml = event.thumbnail 
4295    ? '<img src="' + event.thumbnail + '" alt="' + event.title + '">' 
4296    : '';
4297
4298var categoryHtml = event.category 
4299    ? '<span class="event-card-category ' + categoryClass + '">' + event.category + '</span>' 
4300    : '';
4301
4302slide.innerHTML = 
4303    '<a href="' + event.url + '" class="event-card">' +
4304        '<div class="event-card-image">' +
4305            imageHtml +
4306(function() {
4307    var dateHtml = '<div class="event-card-date">';
4308    dateHtml += '<div class="event-card-date-box ' + categoryClass + '">' +
4309        '<span class="day">' + dayNum + '</span>' +
4310        '<span class="month">' + monthName + '</span>' +
4311    '</div>';
4312    if (event.end_date && event.end_date !== event.date) {
4313        var endDate = new Date(event.end_date);
4314        var endDayNum = endDate.getDate();
4315        var endMonthName = monthShort[endDate.getMonth()];
4316        dateHtml += '<div class="event-card-date-box ' + categoryClass + '">' +
4317            '<span class="day">' + endDayNum + '</span>' +
4318            '<span class="month">' + endMonthName + '</span>' +
4319        '</div>';
4320    }
4321    dateHtml += '</div>';
4322    return dateHtml;
4323})() +
4324            categoryHtml +
4325        '</div>' +
4326        '<div class="event-card-body">' +
4327            '<h4 class="event-card-title">' + event.title + '</h4>' +
4328            (event.excerpt ? '<div class="event-card-excerpt">' + event.excerpt + '</div>' : '') +
4329            timeHtml +
4330            '<span class="event-card-readmore">' +
4331                'Lire la suite ' +
4332                '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">' +
4333                    '<line x1="5" y1="12" x2="19" y2="12"/>' +
4334                    '<polyline points="12 5 19 12 12 19"/>' +
4335                '</svg>' +
4336            '</span>' +
4337        '</div>' +
4338    '</a>';
4339                
4340                swiperWrapper.appendChild(slide);
4341            });
4342            
4343            if (swiper) {
4344                swiper.destroy(true, true);
4345                swiper = null;
4346            }
4347            
4348            // Reset wrapper styles before initializing
4349            swiperWrapper.style.transform = '';
4350            swiperWrapper.style.width = '';
4351            
4352            // Small delay to ensure DOM is ready
4353            setTimeout(function() {
4354                swiper = new Swiper(widget.querySelector('.events-swiper'), {
4355                    slidesPerView: 1,
4356                    spaceBetween: 15,
4357                    observer: true,
4358                    observeParents: true,
4359                    watchOverflow: true,
4360                    pagination: {
4361                        el: widget.querySelector('.swiper-pagination'),
4362                        clickable: true,
4363                    },
4364                    navigation: {
4365                        nextEl: widget.querySelector('.swiper-btn-next'),
4366                        prevEl: widget.querySelector('.swiper-btn-prev'),
4367                    },
4368                    breakpoints: {
4369                        480: {
4370                            slidesPerView: 2,
4371                            spaceBetween: 12,
4372                        },
4373                        768: {
4374                            slidesPerView: 3,
4375                            spaceBetween: 15,
4376                        }
4377                    }
4378                });
4379                swiper.update();
4380            }, 50);
4381        }
4382        
4383        function waitForSwiper() {
4384            if (typeof Swiper !== 'undefined') {
4385                init();
4386            } else {
4387                setTimeout(waitForSwiper, 100);
4388            }
4389        }
4390        
4391        if (document.readyState === 'loading') {
4392            document.addEventListener('DOMContentLoaded', waitForSwiper);
4393        } else {
4394            waitForSwiper();
4395        }
4396    })();
4397    </script>
4397
4398                    
4399            </div>
4400        </div>
4401    </div>
4402</section>
4403<section class="frontpage-kiosque">    
4404    <div class="container">
4405        <div class="row">
4406            <div class="col-md-6 frontpage-title-text">
4407                <h2 class="frontpage-section-title">
4408                    <i class="far fa-dot-circle text-warning mr-2" aria-hidden="true"></i>
4409                    Kiosque
4410                </h2>
4411            </div>
4412            <div class="col-md-6 frontpage-title-all">
4413                <a href="https://www.saint-florentin.fr/kiosks/">
4414                    <i class="far fa-dot-circle text-warning mr-2" aria-hidden="true"></i>
4415                    Voir toutes les publications
4416                </a>
4417            </div>
4418            <div class="col-md-12">
4419    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.css" />
4420    
4421    <style>
4422    /* ==========================================
4423       SECTION KIOSQUE FULL WIDTH
4424       ========================================== */
4425    .koba-kiosque-section {
4426        position: relative;
4427        padding: 0 0 40px;
4428    }
4429    
4430    /* ==========================================
4431       FLÈCHES NAVIGATION
4432       ========================================== */
4433    .koba-kiosque-nav-prev,
4434    .koba-kiosque-nav-next {
4435        position: absolute;
4436        top: 50%;
4437        transform: translateY(-50%);
4438        width: 50px;
4439        height: 50px;
4440        background: transparent;
4441        border-radius: 50%;
4442        color: #dee2e6;
4443        display: flex;
4444        align-items: center;
4445        justify-content: center;
4446        cursor: pointer;
4447        transition: all 0.3s;
4448        z-index: 10;
4449        border: none;
4450    }
4451    
4452    .koba-kiosque-nav-prev:hover,
4453    .koba-kiosque-nav-next:hover {
4454        color: var(--koba-primary, #209bbc);
4455    }
4456    
4457    .koba-kiosque-nav-prev svg,
4458    .koba-kiosque-nav-next svg {
4459        width: 30px;
4460        height: 30px;
4461    }
4462    
4463    .koba-kiosque-nav-prev.swiper-button-disabled,
4464    .koba-kiosque-nav-next.swiper-button-disabled {
4465        opacity: 0.3;
4466        cursor: not-allowed;
4467    }
4468    
4469    .koba-kiosque-nav-prev.swiper-button-disabled:hover,
4470    .koba-kiosque-nav-next.swiper-button-disabled:hover {
4471        background: #fff;
4472        color: #dee2e6;
4473        transform: translateY(-50%) scale(1);
4474    }
4475    
4476    /* XL (1200-1399px) */
4477    @media (min-width: 1200px) and (max-width: 1399px) {
4478        .koba-kiosque-nav-prev {
4479            left: calc(50% - 600px);
4480        }
4481        .koba-kiosque-nav-next {
4482            right: calc(50% - 600px);
4483        }
4484    }
4485    
4486    /* XXL (≥1400px) */
4487    @media (min-width: 1400px) {
4488        .koba-kiosque-nav-prev {
4489            left: calc(50% - 600px);
4490        }
4491        .koba-kiosque-nav-next {
4492            right: calc(50% - 600px);
4493        }
4494    }
4495    
4496    /* En dessous de XL - masquer les flèches */
4497    @media (max-width: 1199px) {
4498        .koba-kiosque-nav-prev,
4499        .koba-kiosque-nav-next {
4500            display: none;
4501        }
4502    }
4503    
4504    /* ==========================================
4505       SWIPER KIOSQUE
4506       ========================================== */
4507    .koba-kiosque-swiper {
4508        overflow: hidden;
4509    }
4510    
4511    /* ==========================================
4512       CARTES KIOSQUE
4513       ========================================== */
4514    .koba-kiosque-card {
4515        background: hsla(0, 0%, 100%, .05);
4516        overflow: hidden;
4517        transition: all 0.3s ease;
4518        height: 100%;
4519        display: flex;
4520        flex-direction: column;
4521        padding: 20px;
4522    }
4523    
4524    .koba-kiosque-card:hover {
4525        box-shadow: 0 8px 25px rgba(0,0,0,0.1);
4526    }
4527    
4528    /* Image / Couverture */
4529    .koba-kiosque-cover {
4530        position: relative;
4531        width: 60%;
4532        height: 200px;
4533        margin: 0 auto;
4534        overflow: hidden;
4535    }
4536    
4537    .koba-kiosque-cover a {
4538        display: block;
4539        width: 100%;
4540        height: 100%;
4541    }
4542    
4543    .koba-kiosque-cover img {
4544        width: 100%;
4545        height: 100%;
4546        object-fit: cover;
4547        transition: transform 0.3s ease;
4548    }
4549    
4550    .koba-kiosque-card:hover .koba-kiosque-cover img {
4551        transform: scale(1.05);
4552    }
4553    
4554.koba-kiosque-cover-placeholder {
4555    width: 100%;
4556    height: 100%;
4557    background: linear-gradient(135deg, #e0e0e0 0%, #f5f5f5 100%);
4558    display: flex;
4559    align-items: center;
4560    justify-content: center;
4561    color: #999;
4562}
4563
4564.koba-kiosque-cover-placeholder--logo {
4565    padding: 30px;
4566    box-sizing: border-box;
4567}
4568
4569.koba-kiosque-cover-placeholder--logo img {
4570    width: 100%;
4571    height: 100%;
4572    object-fit: contain;
4573}
4574
4575.koba-kiosque-cover-placeholder .koba-kiosque-site-name {
4576    font-size: 14px;
4577    font-weight: 600;
4578    text-align: center;
4579    color: #666;
4580    padding: 0 10px;
4581}
4582    
4583    /* Badge PDF */
4584    .koba-kiosque-badge {
4585        position: absolute;
4586        top: 15px;
4587        right: 15px;
4588        background: var(--koba-secondary, #faaf00);
4589        color: #000;
4590        font-size: 10px;
4591        font-weight: 700;
4592        text-transform: uppercase;
4593        padding: 5px 10px;
4594        border-radius: 3px;
4595        letter-spacing: 0.5px;
4596    }
4597    
4598    .koba-kiosque-content {
4599        flex: 1;
4600        display: flex;
4601        flex-direction: column;
4602    }
4603    
4604    .koba-kiosque-meta {
4605        display: flex;
4606        justify-content: space-between; 
4607        align-items: center;
4608        font-size: 11.2px;
4609        text-transform: uppercase;
4610    }
4611    
4612    .koba-kiosque-category {
4613        color: var(--koba-primary, #209bbc);
4614        font-weight: 600;
4615    }
4616    
4617    .koba-kiosque-date {
4618        color: #666;
4619        font-size: 11.2px;
4620        font-weight: 500;
4621        display: flex;
4622        align-items: center;
4623        gap: 6px;
4624    }
4625    
4626    .koba-kiosque-date a {
4627        color: #fff;
4628        text-decoration: none;
4629        display: flex;
4630        align-items: center;
4631        gap: 6px;
4632    }
4633    
4634    .koba-kiosque-date a:hover {
4635        color: var(--koba-secondary, #209bbc);
4636    }
4637    
4638    .koba-kiosque-date svg {
4639        width: 14px;
4640        height: 14px;
4641    }
4642    
4643    .koba-kiosque-title {
4644        font-size: 14px;
4645        font-weight: 600;
4646        color: #1a1a2e;
4647        line-height: 1.4;
4648        flex: 1;
4649    }
4650    
4651    .koba-kiosque-title a {
4652        color: #fff;
4653        font-style: italic;
4654        font-size: 11.2px;
4655        text-decoration: none;
4656        transition: color 0.2s;
4657    }
4658    
4659    .koba-kiosque-title a:hover {
4660        color: var(--koba-secondary, #209bbc);
4661    }
4662    
4663    .koba-kiosque-button {
4664        display: inline-flex;
4665        align-items: center;
4666        gap: 8px;
4667        color: #fff;
4668        text-decoration: none;
4669        font-size: 11.2px;
4670        font-weight: 500;
4671        transition: all 0.3s ease;
4672        align-self: flex-end;
4673        margin: 10px 0;
4674    }
4675    
4676    .koba-kiosque-button:hover {
4677        color: var(--koba-secondary, #209bbc) !important;
4678    }
4679    
4680    .koba-kiosque-button svg {
4681        width: 16px;
4682        height: 16px;
4683        transition: transform 0.3s;
4684    }
4685    
4686    .koba-kiosque-button:hover svg {
4687        transform: translateX(3px);
4688    }
4689    
4690    /* ==========================================
4691       PAGINATION KIOSQUE
4692       ========================================== */
4693    .koba-kiosque-pagination {
4694        display: flex;
4695        justify-content: center;
4696        gap: 8px;
4697        margin-top: 30px;
4698    }
4699    
4700    .koba-kiosque-pagination .swiper-pagination-bullet {
4701        width: 10px;
4702        height: 10px;
4703        background: #ddd;
4704        opacity: 1;
4705        transition: all 0.3s;
4706        border-radius: 5px;
4707    }
4708    
4709    .koba-kiosque-pagination .swiper-pagination-bullet-active {
4710        background: var(--koba-primary, #209bbc);
4711        width: 30px;
4712    }
4713    
4714    /* ==========================================
4715       RESPONSIVE KIOSQUE
4716       ========================================== */
4717    @media (max-width: 768px) {
4718        .koba-kiosque-cover {
4719            height: 220px;
4720        }
4721        
4722        .koba-kiosque-title {
4723            font-size: 14px;
4724        }
4725        
4726        .koba-kiosque-meta {
4727            flex-direction: column;
4728            gap: 8px;
4729            align-items: flex-start;
4730        }
4731    }
4732    </style>
4733    
4734    <div class="koba-kiosque-section">
4735        <!-- Flèches navigation -->
4736        <button class="koba-kiosque-nav-prev" id="koba-kiosque-swiper-6abfe64a1d5d6-prev" aria-label="Précédent">
4737            <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
4738                <polyline points="15 18 9 12 15 6"/>
4739            </svg>
4740        </button>
4741        <button class="koba-kiosque-nav-next" id="koba-kiosque-swiper-6abfe64a1d5d6-next" aria-label="Suivant">
4742            <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
4743                <polyline points="9 18 15 12 9 6"/>
4744            </svg>
4745        </button>
4746        
4747        <!-- Container Bootstrap -->
4748        <div class="container">
4749            <div class="swiper koba-kiosque-swiper" id="koba-kiosque-swiper-6abfe64a1d5d6">
4750                <div class="swiper-wrapper">
4751                                        <div class="swiper-slide">
4752                        <article class="koba-kiosque-card">
4753                                        <h3 class="koba-kiosque-title">
4754                                                                        <a href="https://www.saint-florentin.fr/wp-content/uploads/sites/66/2026/03/ST-FLO-ACCOLADE-98-bd.pdf" target="_blank" rel="noopener">
4755                                        Accolade - bulletin municipal 2026                                    </a>
4756                                                                    </h3>
4757                            <div class="koba-kiosque-cover">
4758                                                                <a href="https://www.saint-florentin.fr/wp-content/uploads/sites/66/2026/03/ST-FLO-ACCOLADE-98-bd.pdf" target="_blank" rel="noopener">
4759                                                                
4760                                                                    <img src="https://www.saint-florentin.fr/wp-content/uploads/sites/66/2026/03/accolade-1-1-213x300.jpg" alt="Accolade - bulletin municipal 2026">
4761                                                                
4762                                                                </a>
4763                                                            </div>
4764                            
4765                            <div class="koba-kiosque-content">
4766                                <div class="koba-kiosque-meta">
4767                                    <!-- Data po lewej -->
4768                                    <div class="koba-kiosque-date">
4769                                                                                <a href="https://www.saint-florentin.fr/wp-content/uploads/sites/66/2026/03/ST-FLO-ACCOLADE-98-bd.pdf" target="_blank" rel="noopener">
4770                                            <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
4771                                                <rect x="3" y="4" width="18" height="18" rx="2" ry="2"/>
4772                                                <line x1="16" y1="2" x2="16" y2="6"/>
4773                                                <line x1="8" y1="2" x2="8" y2="6"/>
4774                                                <line x1="3" y1="10" x2="21" y2="10"/>
4775                                            </svg>
4776                                            02/03/2026                                        </a>
4777                                                                            </div>
4778
4779                                    <!-- Przycisk po prawej -->
4780                                                                        <a href="https://www.saint-florentin.fr/wp-content/uploads/sites/66/2026/03/ST-FLO-ACCOLADE-98-bd.pdf" target="_blank" rel="noopener" class="koba-kiosque-button">
4781                                        Lire la suite
4782                                        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
4783                                            <path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"/>
4784                                            <polyline points="15 3 21 3 21 9"/>
4785                                            <line x1="10" y1="14" x2="21" y2="3"/>
4786                                        </svg>
4787                                    </a>
4788                                                                    </div>
4789                            </div>
4790
4791                        </article>
4792                    </div>
4793                                        <div class="swiper-slide">
4794                        <article class="koba-kiosque-card">
4795                                        <h3 class="koba-kiosque-title">
4796                                                                        <a href="https://www.saint-florentin.fr/wp-content/uploads/sites/66/koba-documents/annuaire-des-assos-2025_5f5ce62c.pdf" target="_blank" rel="noopener">
4797                                        Annuaire des associations                                    </a>
4798                                                                    </h3>
4799                            <div class="koba-kiosque-cover">
4800                                                                <a href="https://www.saint-florentin.fr/wp-content/uploads/sites/66/koba-documents/annuaire-des-assos-2025_5f5ce62c.pdf" target="_blank" rel="noopener">
4801                                                                
4802                                                                    <img src="https://www.saint-florentin.fr/wp-content/uploads/sites/66/2026/02/annuaire-des-assos-2025_10856bb6-211x300.png" alt="Annuaire des associations">
4803                                                                
4804                                                                </a>
4805                                                            </div>
4806                            
4807                            <div class="koba-kiosque-content">
4808                                <div class="koba-kiosque-meta">
4809                                    <!-- Data po lewej -->
4810                                    <div class="koba-kiosque-date">
4811                                                                                <a href="https://www.saint-florentin.fr/wp-content/uploads/sites/66/koba-documents/annuaire-des-assos-2025_5f5ce62c.pdf" target="_blank" rel="noopener">
4812                                            <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
4813                                                <rect x="3" y="4" width="18" height="18" rx="2" ry="2"/>
4814                                                <line x1="16" y1="2" x2="16" y2="6"/>
4815                                                <line x1="8" y1="2" x2="8" y2="6"/>
4816                                                <line x1="3" y1="10" x2="21" y2="10"/>
4817                                            </svg>
4818                                            21/10/2025                                        </a>
4819                                                                            </div>
4820
4821                                    <!-- Przycisk po prawej -->
4822                                                                        <a href="https://www.saint-florentin.fr/wp-content/uploads/sites/66/koba-documents/annuaire-des-assos-2025_5f5ce62c.pdf" target="_blank" rel="noopener" class="koba-kiosque-button">
4823                                        Lire la suite
4824                                        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
4825                                            <path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"/>
4826                                            <polyline points="15 3 21 3 21 9"/>
4827                                            <line x1="10" y1="14" x2="21" y2="3"/>
4828                                        </svg>
4829                                    </a>
4830                                                                    </div>
4831                            </div>
4832
4833                        </article>
4834                    </div>
4835                                        <div class="swiper-slide"
4835>
4836                        <article class="koba-kiosque-card">
4837                                        <h3 class="koba-kiosque-title">
4838                                                                        <a href="https://www.saint-florentin.fr/wp-content/uploads/sites/66/koba-documents/ST-FLO-ACCOLADE-97-bd_95af7c7c.pdf" target="_blank" rel="noopener">
4839                                        Accolade - bulletin municipal 2025                                    </a>
4840                                                                    </h3>
4841                            <div class="koba-kiosque-cover">
4842                                                                <a href="https://www.saint-florentin.fr/wp-content/uploads/sites/66/koba-documents/ST-FLO-ACCOLADE-97-bd_95af7c7c.pdf" target="_blank" rel="noopener">
4843                                                                
4844                                                                    <img src="https://www.saint-florentin.fr/wp-content/uploads/sites/66/2026/02/ST-FLO-ACCOLADE-97-bd_cf8afb97-212x300.png" alt="Accolade - bulletin municipal 2025">
4845                                                                
4846                                                                </a>
4847                                                            </div>
4848                            
4849                            <div class="koba-kiosque-content">
4850                                <div class="koba-kiosque-meta">
4851                                    <!-- Data po lewej -->
4852                                    <div class="koba-kiosque-date">
4853                                                                                <a href="https://www.saint-florentin.fr/wp-content/uploads/sites/66/koba-documents/ST-FLO-ACCOLADE-97-bd_95af7c7c.pdf" target="_blank" rel="noopener">
4854                                            <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
4855                                                <rect x="3" y="4" width="18" height="18" rx="2" ry="2"/>
4856                                                <line x1="16" y1="2" x2="16" y2="6"/>
4857                                                <line x1="8" y1="2" x2="8" y2="6"/>
4858                                                <line x1="3" y1="10" x2="21" y2="10"/>
4859                                            </svg>
4860                                            01/01/2025                                        </a>
4861                                                                            </div>
4862
4863                                    <!-- Przycisk po prawej -->
4864                                                                        <a href="https://www.saint-florentin.fr/wp-content/uploads/sites/66/koba-documents/ST-FLO-ACCOLADE-97-bd_95af7c7c.pdf" target="_blank" rel="noopener" class="koba-kiosque-button">
4865                                        Lire la suite
4866                                        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
4867                                            <path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"/>
4868                                            <polyline points="15 3 21 3 21 9"/>
4869                                            <line x1="10" y1="14" x2="21" y2="3"/>
4870                                        </svg>
4871                                    </a>
4872                                                                    </div>
4873                            </div>
4874
4875                        </article>
4876                    </div>
4877                                    </div>
4878            </div>            
4879        </div>
4880    </div>
4881    
4882    
4882<script src="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.js"></script>
4882
4883    
4883<script>
4884    document.addEventListener('DOMContentLoaded', function() {
4885        new Swiper('#koba-kiosque-swiper-6abfe64a1d5d6', {
4886            slidesPerView: 1,
4887            spaceBetween: 20,
4888            loop: false,
4889                        speed: 500,
4890            pagination: {
4891                el: '#koba-kiosque-swiper-6abfe64a1d5d6-pagination',
4892                clickable: true,
4893            },
4894            navigation: {
4895                nextEl: '#koba-kiosque-swiper-6abfe64a1d5d6-next',
4896                prevEl: '#koba-kiosque-swiper-6abfe64a1d5d6-prev',
4897            },
4898            breakpoints: {
4899                576: {
4900                    slidesPerView: 2,
4901                    spaceBetween: 5,
4902                },
4903                992: {
4904                    slidesPerView: 3,
4905                    spaceBetween: 5,
4906                },
4907                1200: {
4908                    slidesPerView: 4,
4909                    spaceBetween: 5,
4910                },
4911            },
4912        });
4913    });
4914    </script>
4914
4915                </div>
4916        </div>
4917    </div>
4918</section>
4919
4920
4921
4922</main>
4923
4924<footer class="" role="contentinfo">
4925  <div class="container px-3 pt-3 px-md-5 pt-md-5 pb-5">
4926    <div class="row mb-3 mb-md-4">
4927
4928      <!-- LOGO -->
4929      <div class="col-4 col-md-3 mb-3 mb-md-0">
4930        <a href="https://www.saint-florentin.fr/" class="d-inline-flex align-items-center text-light text-decoration-none">
4931          <img src="https://www.saint-florentin.fr/wp-content/uploads/sites/66/2026/02/logo-footer-1770206920.jpg" alt="COMMUNE DE SAINT-FLORENTIN - Accueil" class="footer-logo">
4932        </a>
4933      </div>
4934      <div class="col-md-8">
4935        <div class="koba-social-links"><a href="https://www.facebook.com/profile.php?id=100069098354266" 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>
4936      <div class="col-12 col-md-3 mb-3">
4937        <div class="footer-address">
4938          <p></p>
4939          <p>
4940              Place Louis Dubost<br>
4941              89600 Saint-Florentin<br>
4942              Tél : <a href="tel:0386437979">0386437979</a>          </p>
4943        </div>
4944      </div>
4945
4946      <div class="col-12 col-md-9">
4947        <ul id="menu-menu-principal-1" class="footer-menu"><li><a href="#">Vie municipale</a>
4948<ul>
4949<li><a href="https://www.saint-florentin.fr/articles/le-conseil-municipal">Conseil municipal</a></li>
4950<li><a href="https://www.saint-florentin.fr/articles/compte-rendus-de-conseil-municipal">Comptes-rendus des conseils municipaux</a></li>
4951<li><a href="#">Délibérations du conseil municipal</a>
4952<ul>
4953<li><a href="https://www.saint-florentin.fr/articles/deliberations-du-conseil-municipal-2026">Délibérations du conseil municipal 2026</a></li>
4954<li><a href="https://www.saint-florentin.fr/articles/deliberations-du-conseil-municipal-2025">Délibérations du conseil municipal 2025</a></li>
4955<li><a href="https://www.saint-florentin.fr/articles/deliberations-du-conseil-municipal-2024">Délibérations du conseil municipal 2024</a></li>
4956<li><a href="https://www.saint-florentin.fr/articles/deliberation-du-conseil-municipal">Délibérations du conseil municipal 2022-2023</a></li>
4957</ul>
4958</li>
4959<li><a href="#">Arrêtés municipaux</a>
4960<ul>
4961<li><a href="https://www.saint-florentin.fr/articles/arretes-municipaux-2025">Arrêtés municipaux (hors police/urbanisme) 2025-2026</a></li>
4962<li><a href="https://www.saint-florentin.fr/articles/arretes-municipaux-divers">Arrêtés municipaux 2022-2024</a></li>
4963<li><a href="https://www.saint-florentin.fr/articles/arretes-municipaux-police">Arrêtés municipaux - police</a></li>
4964</ul>
4965</li>
4966<li><a href="https://www.saint-florentin.fr/articles/marches-publics">Marchés publics</a></li>
4967</ul>
4968</li>
4969<li><a href="#">A votre service</a>
4970<ul>
4971<li><a href="https://www.saint-florentin.fr/articles/les-services-municipaux">Coordonnées des services municipaux</a></li>
4972<li><a href="https://www.saint-florentin.fr/articles/maip">Maison France Services</a></li>
4973<li><a href="https://www.saint-florentin.fr/articles/ccas">Centre communal d&#039;action sociale (CCAS)</a></li>
4974<li><a href="#">Police</a>
4975<ul>
4976<li><a href="https://www.saint-florentin.fr/articles/police-municipale">Accueil et mission</a></li>
4977<li><a href="https://www.saint-florentin.fr/articles/arretes-de-police-du-maire">Police du maire</a></li>
4978<li><a href="https://www.saint-florentin.fr/articles/tranquilite-vacances">Opération tranquillité vacances</a></li>
4979<li><a href="https://www.saint-florentin.fr/articles/declaration-de-chiens">Déclaration de chien</a></li>
4980<li><a href="https://www.saint-florentin.fr/articles/dicrim">Document Risques Majeurs</a></li>
4981<li><a href="https://www.saint-florentin.fr/articles/fabriquez-votre-disque-de-stationnement-europeen-zone-bleue">Zones &quot;bleues&quot;</a></li>
4982</ul>
4983</li>
4984<li><a href="https://www.saint-florentin.fr/articles/annuaire-de-l-habitant">
4984Annuaires des services publics</a></li>
4985<li><a href="https://www.saint-florentin.fr/articles/adresses-utiles">Adresses utiles</a></li>
4986<li><a href="https://www.saint-florentin.fr/articles/salles-municipales">Salles municipales</a></li>
4987<li><a href="#">Transports</a>
4988<ul>
4989<li><a href="https://www.saint-florentin.fr/articles/blablacar">Blablacar</a></li>
4990<li><a href="https://www.saint-florentin.fr/articles/train">Train</a></li>
4991<li><a href="https://www.saint-florentin.fr/articles/transports">Bus</a></li>
4992</ul>
4993</li>
4994<li><a href="https://cc-sereinarmance.fr/reduire-trier-et-valoriser-les-dechets/">Déchets</a></li>
4995</ul>
4996</li>
4997<li><a href="#">Démarches et formalités</a>
4998<ul>
4999<li><a href="https://www.saint-florentin.fr/articles/carte-d-identite">Carte d&#039;identité / Passeport</a></li>
5000<li><a href="https://www.saint-florentin.fr/articles/mariages">Mariage</a></li>
5001<li><a href="https://www.saint-florentin.fr/articles/cimetiere">Cimetières</a></li>
5002<li><a href="#">Urbanisme</a>
5003<ul>
5004<li><a href="https://www.saint-florentin.fr/articles/declaration-de-travaux-permis-de-construire">Déclaration de travaux / permis de construire</a></li>
5005<li><a href="#">Arrêtés municipaux urbanisme</a></li>
5006<li><a href="https://www.saint-florentin.fr/articles/cadastre">Plan local d&#039;urbanisme</a></li>
5007<li><a href="https://www.saint-florentin.fr/articles/matrice-cadastrale-releve-de-propriete">Matrice cadastrale / relevé de propriété</a></li>
5008<li><a href="https://www.saint-florentin.fr/articles/nuancier-ral-saint-florentin">Nuancier RAL Saint-Florentin</a></li>
5009</ul>
5010</li>
5011<li><a href="https://www.saint-florentin.fr/articles/permis-de-louer-mode-d-emploi">Permis de louer</a></li>
5012<li><a href="https://www.saint-florentin.fr/articles/eau-assainissement">Eau / assainissement</a></li>
5013</ul>
5014</li>
5015<li><a href="#">Culture / loisirs</a>
5016<ul>
5017<li><a href="https://www.saint-florentin.fr/articles/horaires-et-fonctionnement">Médiathèque</a></li>
5018<li><a href="http://www.caleflow.fr/">Centre aquatique intercommunal Le Flow</a></li>
5019<li><a href="https://www.saint-florentin.fr/articles/mediatheque-numerique-de-l-yonne">Médiathèque numérique de l&#039;Yonne</a></li>
5020<li><a href="https://www.musee-de-saint-florentin.fr/home.html">Musée</a></li>
5021<li><a href="https://cc-sereinarmance.fr/bienvenue-a-lecole-de-musique/">École de musique</a></li>
5022<li><a href="#">Associations</a>
5023<ul>
5024<li><a href="https://www.saint-florentin.fr/articles/office-des-associations-florentinoises">Office des associations</a></li>
5025<li><a href="https://www.saint-florentin.fr/articles/associations">Liste des associations</a></li>
5026<li><a href="https://www.saint-florentin.fr/articles/associations-demande-de-subventions">Demande de subventions</a></li>
5027</ul>
5028</li>
5029<li><a href="https://www.saint-florentin.fr/articles/jumelage">Jumelage</a></li>
5030</ul>
5031</li>
5032<li><a href="#">Jeunesse</a>
5033<ul>
5034<li><a href="https://www.saint-florentin.fr/articles/activites-et-contact">Service municipal jeunesse</a></li>
5035<li><a href="#">Écoles</a>
5036<ul>
5037<li><a href="https://www.saint-florentin.fr/articles/inscriptions-scolaires">Ecoles et inscriptions</a></li>
5038<li><a href="http://col89-marcelayme.ac-dijon.fr/index.php">Collège</a></li>
5039</ul>
5040</li>
5041<li><a href="#">Cantine</a>
5042<ul>
5043<li><a href="https://www.saint-florentin.fr/articles/reglement-du-restaurant-scolaire">Inscription cantine</a></li>
5044<li><a href="https://connect1.3douest.com/connexion?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiIzZG91ZXN0c2VydmVyIiwic3ViIjoiM2RvdWVzdC1hdXRoLXNlcnZlciIsInR5cCI6IkpXVCIsImF1ZCI6eyJ0eXBlIjoiY29sbGVjdGl2aXRlIiwicmVkaXJlY3RfdXJpIjoiaHR0cHM6XC9cL2dlc3Rpb24ubG9naWNpZWwtZW5mYW5jZS5mclwvY29ubmV4aW9uRnJvbUF1dGgiLCJhcGlfZ2xvYmFsX2tleSI6ImJjZTUwNDVkZTI0YjIwZTA4ODAzYTQwNTA4YTk3NDUxIiwiYXBpX2tleSI6ImNhbnRpbmUyIn0sImlhdCI6MTY3OTQ4MDMzMH0.8dU9iLoYTTApYpUdT-GTzdNbv-VC0-jK1hCENVEdWAw&#038;api_key=cantine2">Portail familles</a></li>
5045</ul>
5046</li>
5047<li><a href="#">Transports scolaires</a>
5048<ul>
5049<li><a href="https://www.saint-florentin.fr/articles/transports-scolaires">Transports scolaires écoles</a></li>
5050<li><a href="https://www.bourgognefranchecomte.fr/transports-scolaires-de-lyonne">Transports scolaires collèges et lycées</a></li>
5051</ul>
5052</li>
5053<li><a href="https://www.saint-florentin.fr/articles/accueil-periscolaire-municipal">Accueil périscolaire</a></li>
5054<li><a href="https://www.saint-florentin.fr/articles/le-centre-de-loisirs">Centre aéré</a></li>
5055<li><a href="https://www.saint-florentin.fr/articles/l-association">Espace famille florentinois</a></li>
5056<li><a href="#">Pôle petite enfance</a>
5057<ul>
5058<li><a href="https://www.la-maison-bleue.fr/creche/bourgogne-franche-comte/yonne/saint-florentin/tom-pouce">Crèche Tom Pouce</a></li>
5059<li><a href="https://cc-sereinarmance.fr/les-relais-petite-enfance-pour-favoriser-lepanouissement-des-enfants/">Relais d&#039;assistants maternels</a></li>
5060</ul>
5061</li>
5062</ul>
5063</li>
5064<li><a href="#">Tourisme</a>
5065<ul>
5066<li><a href="https://www.saint-florentin.fr/articles/marches">Le marché</a></li>
5067<li><a href="https://serein-armance.fr/">Office de tourisme</a></li>
5068<li><a href="https://www.saint-florentin.fr/articles/camping-de-l-armancon">Camping municipal de l&#039;Armançon**</a></li>
5069</ul>
5070</li>
5071<li><a href="#">Projets</a>
5072<ul>
5073<li><a href="https://www.saint-florentin.fr/articles/amenagement-dun-skatepark-et-dun-terrain-de-cross/">Aménagement d&rsquo;un skatepark et d&rsquo;un terrain de cross</a></li>
5074<li><a href="https://www.saint-florentin.fr/articles/petite-ville-de-demain">Petite Ville de Demain</a></li>
5075</ul>
5076</li>
5077</ul>      </div>
5078    </div>
5079  </div>
5080</footer>
5081<div class="footer-bottom">
5082    <div class="container-fluid">
5083      <div class="row">
5084        <div class="col-12 col-md-6 mb-3 mb-md-0 footer-bottom-left">
5085              <ul class="koba-menu-list">
5086                                                  <li class="">
5087                      <a href="https://www.saint-florentin.fr/mentions-legales/">Mentions légales</a>
5088                  </li>
5089                  <li class="">
5090                      <a href="https://www.saint-florentin.fr/accessibilite/">Accessibilité</a>
5091                  </li>
5092                  <li class="">
5093                      <a href="https://www.saint-florentin.fr/plan-du-site/">Plan du site</a>
5094                  </li>
5095                  <li class="">
5096                      <a href="https://www.saint-florentin.fr/contact/">NOUS CONTACTER</a>
5097                  </li>
5098                  <li class="">
5099                      <span>© 2026 </span>
5100                  </li>
5101              </ul>   
5102        </div>
5103        <div class="col-12 col-md-6 mb-3 mb-md-0 justify-content-end footer-bottom-right">
5104          <div class="text-white" bis_skin_checked="1">
5105            <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>
5106          </div>
5107        </div>
5108      </div>
5109    </div>
5110</div>
5111    
5111<script>
5112    if ('serviceWorker' in navigator) {
5113        navigator.serviceWorker.register('https://www.saint-florentin.fr/koba-sw.js', { scope: '/' })
5114            .catch(function(err) { console.log('SW error:', err); });
5115    }
5116    if (window.matchMedia('(display-mode: standalone)').matches || window.navigator.standalone === true) {
5117        document.cookie = 'koba_pwa=1; path=/; max-age=2592000; SameSite=Lax';
5118    }
5119    </script>
5119
5120    
5120<script type="speculationrules">
5121{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/*"},{"not":{"href_matches":["/wp-*.php","/wp-admin/*","/wp-content/uploads/sites/66/*","/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"}]}
5122</script>
5122
5123    
5123<script>
5124    (function() {
5125        var searchInput = document.getElementById('koba-search-input');
5126        var searchOverlay = document.getElementById('koba-search-overlay');
5127        var searchClose = document.getElementById('koba-search-close');
5128        var searchTimeout = null;
5129        var ajaxurl = 'https://www.saint-florentin.fr/wp-admin/admin-ajax.php';
5130        
5131        if (!searchInput || !searchOverlay) return;
5132        
5133        // Saisie dans le champ
5134        searchInput.addEventListener('input', function() {
5135            var query = this.value.trim();
5136            
5137            if (searchTimeout) clearTimeout(searchTimeout);
5138            
5139            // Masquer si vide
5140            if (query.length < 1) {
5141                searchOverlay.classList.remove('active');
5142                searchOverlay.innerHTML = '';
5143                return;
5144            }
5145            
5146            // Afficher overlay avec loading
5147            searchOverlay.classList.add('active');
5148            searchOverlay.innerHTML = '<div class="koba-search-overlay-inner">' +
5149                '<div class="koba-search-loading">' +
5150                '<div class="koba-search-spinner"></div>' +
5151                '<p>Recherche...</p></div></div>';
5152            
5153            // Recherche après court délai
5154            searchTimeout = setTimeout(function() {
5155                performSearch(query);
5156            }, 250);
5157        });
5158        
5159        // Fermer l'overlay
5160        if (searchClose) {
5161            searchClose.addEventListener('click', function() {
5162                searchOverlay.classList.remove('active');
5163                searchOverlay.innerHTML = '';
5164            });
5165        }
5166        
5167        // Fermer avec Escape
5168        document.addEventListener('keydown', function(e) {
5169            if (e.key === 'Escape') {
5170                searchOverlay.classList.remove('active');
5171                searchOverlay.innerHTML = '';
5172            }
5173        });
5174        
5175        // Recherche AJAX
5176        function performSearch(query) {
5177            var formData = new FormData();
5178            formData.append('action', 'koba_live_search');
5179            formData.append('search', query);
5180            
5181            fetch(ajaxurl, {
5182                method: 'POST',
5183                body: formData
5184            })
5185            .then(function(r) { return r.json(); })
5186            .then(function(data) {
5187                if (data.success) {
5188                    renderResults(data.data.results, data.data.search);
5189                }
5190            })
5191            .catch(function() {
5192                searchOverlay.innerHTML = '<div class="koba-search-overlay-inner">' +
5193                    '<div class="koba-search-no-results"><p>Erreur de connexion</p></div></div>';
5194            });
5195        }
5196        
5197        // Afficher résultats
5198        function renderResults(results, searchTerm) {
5199            if (!results || results.length === 0) {
5200                searchOverlay.innerHTML = '<div class="koba-search-overlay-inner">' +
5201                    '<div class="koba-search-no-results">' +
5202                    '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5">' +
5203                    '<circle cx="11" cy="11" r="8"/><path d="M21 21l-4.35-4.35"/>' +
5204                    '</svg>' +
5205                    '<p>Aucun résultat pour "<strong>' + esc(searchTerm) + '</strong>"</p>' +
5206                    '</div></div>';
5207                return;
5208            }
5209            
5210            var html = '<div class="koba-search-overlay-inner">';
5211            
5212            results.forEach(function(cat) {
5213                html += '<div class="koba-search-category">';
5214                html += '<h3 class="koba-search-category-title">' + esc(cat.label) + '</h3>';
5215                html += '<ul class="koba-search-list">';
5216                
5217                cat.items.forEach(function(item) {
5218                    var title = highlight(item.title, searchTerm);
5219                    var date = (cat.type === 'evenement') ? '<span class="koba-search-date">- ' + item.date + '</span>' : '';
5220                    html += '<li class="koba-search-item">';
5221                    html += '<a href="' + item.url + '" class="koba-search-link">' + title + date + '</a>';
5222                    html += '</li>';
5223                });
5224                
5225                html += '</ul></div>';
5226            });
5227            
5228            html += '</div>';
5229            searchOverlay.innerHTML = html;
5230        }
5231        
5232        function highlight(text, search) {
5233            var regex = new RegExp('(' + search.replace(/[.*+?^${}()|[\]\\]/g, '\\$&') + ')', 'gi');
5234            return esc(text).replace(regex, '<mark>$1</mark>');
5235        }
5236        
5237        function esc(text) {
5238            var d = document.createElement('div');
5239            d.textContent = text;
5240            return d.innerHTML;
5241        }
5242    })();
5243    </script>
5243
5244        
5244<script>
5245    document.addEventListener('DOMContentLoaded', function() {
5246        const hamburger = document.getElementById('koba-hamburger');
5247        const mobileMenu = document.getElementById('koba-mobile-menu');
5248        const searchToggle = document.getElementById('koba-search-toggle');
5249        const searchBar = document.getElementById('koba-search-bar');
5250        const searchClose = document.getElementById('koba-search-close');
5251        const searchInput = document.getElementById('koba-search-input');
5252        const overlay = document.getElementById('koba-overlay');
5253        const navItems = document.querySelectorAll('.koba-nav-item.has-megamenu');
5254        const mobileToggles = document.querySelectorAll('.koba-mobile-toggle');
5255        
5256        function closeAllMenus() {
5257            navItems.forEach(item => item.classList.remove('active'));
5258            document.querySelectorAll('.koba-megamenu-item.active').forEach(item => {
5259                item.classList.remove('active');
5260            });
5261            overlay.classList.remove('active');
5262        }
5263        
5264        if (hamburger) {
5265            hamburger.addEventListener('click', function() {
5266                this.classList.toggle('active');
5267                mobileMenu.classList.toggle('active');
5268                document.body.style.overflow = mobileMenu.classList.contains('active') ? 'hidden' : '';
5269            });
5270        }
5271        
5272        if (searchToggle) {
5273            searchToggle.addEventListener('click', function() {
5274                closeAllMenus();
5275                searchBar.classList.add('active');
5276                searchToggle.classList.add('hidden');
5277                setTimeout(() => searchInput.focus(), 400);
5278            });
5279        }
5280        
5281        if (searchClose) {
5282            searchClose.addEventListener('click', function() {
5283                searchBar.classList.remove('active');
5284                searchToggle.classList.remove('hidden');
5285            });
5286        }
5287        
5288        navItems.forEach(item => {
5289            const link = item.querySelector('.koba-nav-link');
5290            
5291            link.addEventListener('click', function(e) {
5292                if (window.innerWidth > 992) {
5293                    e.preventDefault();
5294                    const isActive = item.classList.contains('active');
5295                    closeAllMenus();
5296                    if (!isActive) {
5297                        item.classList.add('active');
5298                        overlay.classList.add('active');
5299                    }
5300                }
5301            });
5302        });
5303        
5304        document.querySelectorAll('.koba-megamenu-item.has-submenu').forEach(item => {
5305            const link = item.querySelector('.koba-megamenu-link');
5306            
5307            link.addEventListener('click', function(e) {
5308                e.preventDefault();
5309                const parent = item.closest('.koba-megamenu-col3');
5310                parent.querySelectorAll('.koba-megamenu-item.active').forEach(other => {
5311                    if (other !== item) {
5312                        other.classList.remove('active');
5313                    }
5314                });
5315                item.classList.toggle('active');
5316            });
5317        });
5318        
5319        mobileToggles.forEach(toggle => {
5320            toggle.addEventListener('click', function() {
5321                this.classList.toggle('active');
5322                const submenu = this.closest('.koba-mobile-item').querySelector(':scope > .koba-mobile-submenu');
5323                if (submenu) {
5324                    submenu.classList.toggle('active');
5325                }
5326            });
5327        });
5328        
5329        if (overlay) {
5330            overlay.addEventListener('click', function() {
5331                closeAllMenus();
5332                searchBar.classList.remove('active');
5333                searchToggle.classList.remove('hidden');
5334            });
5335        }
5336        
5337        document.addEventListener('click', function(e) {
5338            if (window.innerWidth > 992) {
5339                const isInNav = e.target.closest('.koba-nav-item.has-megamenu');
5340                const isInMegamenu = e.target.closest('.koba-megamenu');
5341                
5342                if (!isInNav && !isInMegamenu) {
5343                    closeAllMenus();
5344                }
5345            }
5346        });
5347        
5348        document.addEventListener('keydown', function(e) {
5349            if (e.key === 'Escape') {
5350                closeAllMenus();
5351                searchBar.classList.remove('active');
5352                searchToggle.classList.remove('hidden');
5353                mobileMenu.classList.remove('active');
5354                hamburger.classList.remove('active');
5355                document.body.style.overflow = '';
5356            }
5357        });
5358        
5359        window.addEventListener('resize', function() {
5360            if (window.innerWidth > 992) {
5361                mobileMenu.classList.remove('active');
5362                hamburger.classList.remove('active');
5363                document.body.style.overflow = '';
5364            }
5365        });
5366    });
5367    </script>
5367
5368    <div id="hob-rgpd-banner" class="hob-rgpd-banner" role="region"
5369	aria-label="Consentement aux cookies"
5370	style="background-color:#222222;color:#ffffff;bottom:0;">
5371	<div class="hob-rgpd-message">
5372		Notre site utilise des cookies pour réaliser des statistiques de visites, partager des contenus sur les réseaux sociaux et améliorer votre expérience. En refusant les cookies, certains services seront amenés à ne pas fonctionner correctement. Nous conservons votre choix pendant 30 jours. Vous pouvez changer d&#039;avis en cliquant sur le bouton &#039;Cookies&#039; en bas à gauche de chaque page de notre site.			</div>
5373	<div class="hob-rgpd-buttons">
5374		<button type="button" class="hob-btn hob-accept-all" style="background-color:#00aaff;color:#ffffff;">
5375			Tout accepter		</button>
5376		<button type="button" class="hob-btn hob-reject-all" style="background-color:#00aaff;color:#ffffff;">
5377			Tout refuser		</button>
5378		<button type="button" class="hob-btn hob-manage" style="background-color:#00aaff;color:#ffffff;">
5379			Gérer mes préférences		</button>
5380	</div>
5381</div>
5382
5383<div id="hob-rgpd-popup" class="hob-rgpd-popup" role="dialog" aria-modal="true"
5384	aria-labelledby="hob-rgpd-popup-title"
5385	style="--hob-accent:#00aaff;--hob-accent-text:#ffffff;"
5386	hidden>
5387	<div class="hob-rgpd-popup-content">
5388		<button type="button" class="hob-rgpd-popup-close" aria-label="Fermer">&times;</button>
5389		<h2 id="hob-rgpd-popup-title">Gérer mes préférences</h2>
5390
5391					<div class="hob-rgpd-tabs" role="tablist">
5392									<button type="button" class="hob-rgpd-tab is-active"
5393						role="tab"
5394						aria-selected="true"
5395						data-tab="hob-rgpd-panel-1">
5396						Contenus interactifs					</button>
5397							</div>
5398
5399							<div id="hob-rgpd-panel-1"
5400					class="hob-rgpd-panel is-active"
5401					role="tabpanel">
5402																							<div class="hob-rgpd-service">
5403																	<div class="hob-rgpd-service-icon">
5404										<img src="https://www.saint-florentin.fr/wp-content/plugins/hob-rgpd/assets/img/services/recaptcha.svg"
5405											alt="Google reCAPTCHA" />
5406									</div>
5407																<div class="hob-rgpd-service-info">
5408									<div class="hob-rgpd-service-title">Google reCAPTCHA</div>
5409									<div class="hob-rgpd-service-desc">Anti-spam Google reCAPTCHA.</div>
5410								</div>
5411								<div class="hob-rgpd-service-toggle">
5412									<label class="hob-rgpd-switch">
5413										<input type="checkbox" class="hob-rgpd-toggle"
5414											data-service-key="recaptcha" />
5415										<span class="hob-rgpd-slider"></span>
5416									</label>
5417								</div>
5418							</div>
5419															</div>
5420					
5421		<div class="hob-rgpd-popup-actions">
5422			<button type="button" class="hob-btn hob-accept-all" style="background-color:#00aaff;color:#ffffff;">
5423				Tout accepter			</button>
5424			<button type="button" class="hob-btn hob-reject-all" style="background-color:#00aaff;color:#ffffff;">
5425				Tout refuser			</button>
5426			<button type="button" class="hob-btn hob-save" style="background-color:#00aaff;color:#ffffff;">
5427				Enregistrer mes préférences			</button>
5428		</div>
5429
5430					<div class="hob-rgpd-credit">
5431				&copy; <a href="https://www.hob-france.com/" target="_blank" rel="noopener">HOB France Services</a>
5432			</div>
5433			</div>
5434</div>
5435
5436<button type="button" id="hob-rgpd-settings-icon" class="hob-rgpd-settings-icon"
5437	title="Cookies"
5438	aria-label="Cookies" hidden>
5439	<span class="hob-rgpd-cookie-emoji" aria-hidden="true">🍪</span>
5440	<span class="hob-rgpd-cookie-label">Cookies</span>
5441</button>
5442<script id="moment-js" src="https://www.saint-florentin.fr/wp-includes/js/dist/vendor/moment.min.js?ver=2.30.1"></script>
vendor: 1 bytes, line 5442
5442
5443<script id="moment-js-after">
5444moment.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}} );
5445//# sourceURL=moment-js-after
5446</script>
vendor: 1 bytes, line 5446
5446
5447<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 5447
5447
5448<script id="fullcalendar-js" src="https://cdnjs.cloudflare.com/ajax/libs/fullcalendar/3.10.2/fullcalendar.min.js"></script>
vendor: 1 bytes, line 5448
5448
5449<script id="fullcalendar-fr-js" src="https://cdnjs.cloudflare.com/ajax/libs/fullcalendar/3.10.2/locale/fr.js"></script>
vendor: 1 bytes, line 5449
5449
5450<script id="hcb-frontend-js-extra">
5451var hcb_front = {"ajax_url":"https://www.saint-florentin.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"};
5452//# sourceURL=hcb-frontend-js-extra
5453</script>
vendor: 1 bytes, line 5453
5453
5454<script id="hcb-frontend-js" src="https://www.saint-florentin.fr/wp-content/plugins/hob-cityhall-booking/assets/js/frontend.js?ver=1.2.0"></script>
vendor: 1 bytes, line 5454
5454
5455<script id="hob-fc-form-js-extra">
5456var hobFcFormConfig = {"ajax_url":"https://www.saint-florentin.fr/wp-admin/admin-ajax.php"};
5457var hobFcPublic = {"ajaxurl":"https://www.saint-florentin.fr/wp-admin/admin-ajax.php","nonce":"d5ec3d1515","page_token":"d71e151bf893c80dcec8bbd768764e12f1c2116504af6f6a8d3cb5506d6209bf","page_ts":"497489"};
5458var 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."};
5459//# sourceURL=hob-fc-form-js-extra
5460</script>
vendor: 1 bytes, line 5460
5460
5461<script id="hob-fc-form-js" src="https://www.saint-florentin.fr/wp-content/plugins/hob-formchat-pro/assets/js/form.js?ver=1.29"></script>
vendor: 1 bytes, line 5461
5461
5462<script id="hob-fc-conditional-js" src="https://www.saint-florentin.fr/wp-content/plugins/hob-formchat-pro/assets/js/hob-conditional.js?ver=1.29"></script>
vendor: 1 bytes, line 5462
5462
5463<script id="hob-fc-calculator-js" src="https://www.saint-florentin.fr/wp-content/plugins/hob-formchat-pro/assets/js/hob-calculator.js?ver=1.29"></script>
vendor: 1 bytes, line 5463
5463
5464<script id="hob-fc-rgaa-js" src="https://www.saint-florentin.fr/wp-content/plugins/hob-formchat-pro/assets/js/hob-rgaa.js?ver=1.29"></script>
vendor: 1 bytes, line 5464
5464
5465<script id="leaflet-js" src="https://unpkg.com/[email protected]/dist/leaflet.js?ver=1.9.4"></script>
vendor: 1 bytes, line 5465
5465
5466<script id="hob-fc-map-picker-js" src="https://www.saint-florentin.fr/wp-content/plugins/hob-formchat-pro/assets/js/hob-map-picker.js?ver=1.29"></script>
vendor: 1 bytes, line 5466
5466
5467<script id="hob-fc-address-js-extra">
5468var 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/"};
5469//# sourceURL=hob-fc-address-js-extra
5470</script>
vendor: 1 bytes, line 5470
5470
5471<script id="hob-fc-address-js" src="https://www.saint-florentin.fr/wp-content/plugins/hob-formchat-pro/assets/js/hob-address.js?ver=1.29"></script>
vendor: 1 bytes, line 5471
5471
5472<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 5472
5472
5473<script id="hobrgpd-front-js-extra">
5474var hobRgpdConfig = {"cookieName":"hobConsentPrefs","cookieMaxAge":"2592000"};
5475//# sourceURL=hobrgpd-front-js-extra
5476</script>
vendor: 1 bytes, line 5476
5476
5477<script id="hobrgpd-front-js" src="https://www.saint-florentin.fr/wp-content/plugins/hob-rgpd/assets/js/front.js?ver=1781167964"></script>
vendor: 1 bytes, line 5477
5477
5478<script id="wp-statistics-tracker-js-extra">
5479var WP_Statistics_Tracker_Object = {"requestUrl":"https://www.saint-florentin.fr/wp-json/wp-statistics/v2","ajaxUrl":"https://www.saint-florentin.fr/wp-admin/admin-ajax.php","hitParams":{"wp_statistics_hit":1,"source_type":"home","source_id":0,"search_query":"","signature":"62e20c4d581d99169742684755100376","endpoint":"hit"},"option":{"dntEnabled":false,"bypassAdBlockers":false,"consentIntegration":{"name":null,"status":[]},"isPreview":false,"userOnline":false,"isWpConsentApiActive":false},"isLegacyEventLoaded":"","customEventAjaxUrl":"https://www.saint-florentin.fr/wp-admin/admin-ajax.php?action=wp_statistics_custom_event&nonce=e828a08707","onlineParams":{"wp_statistics_hit":1,"source_type":"home","source_id":0,"search_query":"","signature":"62e20c4d581d99169742684755100376","action":"wp_statistics_online_check"},"jsCheckTime":"60000"};
5480//# sourceURL=wp-statistics-tracker-js-extra
5481</script>
vendor: 1 bytes, line 5481
5481
5482<script id="wp-statistics-tracker-js" src="https://www.saint-florentin.fr/wp-content/plugins/wp-statistics/assets/js/tracker.js?ver=14.16.15"></script>
vendor: 1 bytes, line 5482
5482
5483<script id="wp-emoji-settings" type="application/json">
5484{"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.saint-florentin.fr/wp-includes/js/wp-emoji-release.min.js?ver=7.1.2"}}
5485</script>
vendor: 1 bytes, line 5485
5485
5486<script type="module">
5487/*! This file is auto-generated */
5488var 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)))});
5489//# sourceURL=https://www.saint-florentin.fr/wp-includes/js/wp-emoji-loader.min.js
5490</script>
5490
5491    <style>
5492        #koba-pwa-banner {
5493            display: none; /* affiché par JS uniquement sur mobile */
5494            position: fixed;
5495            top: 0; left: 0; right: 0;
5496            z-index: 99999;
5497            background: #1e293b;
5498            color: #fff;
5499            padding: 12px 16px;
5500            flex-direction: column;
5501            gap: 10px;
5502            box-shadow: 0 2px 12px rgba(0,0,0,.35);
5503            font-family: inherit;
5504        }
5505        #koba-pwa-banner.koba-pwa-banner-visible {
5506            display: flex;
5507        }
5508        /* Ligne 1 : icône + texte */
5509        #koba-pwa-banner .kpb-row1 {
5510            display: flex;
5511            align-items: flex-start;
5512            gap: 12px;
5513        }
5514        #koba-pwa-banner .kpb-icon {
5515            font-size: 24px;
5516            flex-shrink: 0;
5517            line-height: 1.2;
5518        }
5519        #koba-pwa-banner .kpb-body {
5520            flex: 1;
5521            min-width: 0;
5522        }
5523        #koba-pwa-banner .kpb-title {
5524            font-weight: 700;
5525            font-size: .9rem;
5526            line-height: 1.3;
5527        }
5528        #koba-pwa-banner .kpb-desc {
5529            font-size: .8rem;
5530            opacity: .8;
5531            line-height: 1.4;
5532            margin-top: 3px;
5533        }
5534        /* Ligne 2 : bouton + fermer */
5535        #koba-pwa-banner .kpb-row2 {
5536            display: flex;
5537            align-items: center;
5538            gap: 10px;
5539        }
5540        #koba-pwa-banner .kpb-btn {
5541            background: #1975ae;
5542            color: #fff;
5543            border: none;
5544            padding: 8px 16px;
5545            border-radius: 6px;
5546            font-size: .82rem;
5547            font-weight: 600;
5548            cursor: pointer;
5549            white-space: nowrap;
5550            text-decoration: none;
5551            display: inline-block;
5552        }
5553        #koba-pwa-banner .kpb-close {
5554            background: rgba(255,255,255,.12);
5555            border: 1px solid rgba(255,255,255,.2);
5556            color: rgba(255,255,255,.75);
5557            font-size: .82rem;
5558            font-weight: 600;
5559            line-height: 1;
5560            cursor: pointer;
5561            padding: 7px 12px;
5562            border-radius: 6px;
5563            white-space: nowrap;
5564        }
5565        #koba-pwa-banner .kpb-close:hover {
5566            background: rgba(255,255,255,.2);
5567            color: #fff;
5568        }
5569        /* Décaler le contenu sous la bannière quand elle est visible */
5570        body.koba-pwa-banner-open {
5571            padding-top: 100px;
5572        }
5573    </style>
5574
5575    <div id="koba-pwa-banner" role="banner" aria-label="Installer l'application">
5576        <div class="kpb-row1">
5577            <span class="kpb-icon">📲</span>
5578            <div class="kpb-body">
5579                <div class="kpb-title">Installez notre application !</div>
5580                <div class="kpb-desc">Accédez rapidement à notre site depuis votre écran d&#039;accueil.</div>
5581            </div>
5582        </div>
5583        <div class="kpb-row2">
5584            <a href="https://www.saint-florentin.fr/installapp/" class="kpb-btn">Voir comment installer</a>
5585            <button class="kpb-close" id="koba-pwa-close" aria-label="Fermer">✕ Fermer</button>
5586        </div>
5587    </div>
5588<script>
5589// Capturer beforeinstallprompt le plus tôt possible (avant tout)
5590var _kobaPwaInstallPrompt = null;
5591window.addEventListener('beforeinstallprompt', function(e) {
5592    e.preventDefault();
5593    _kobaPwaInstallPrompt = e;
5594    // Si la bannière est déjà affichée, transformer le bouton
5595    var btn = document.querySelector('#koba-pwa-banner .kpb-btn');
5596    if (btn && document.getElementById('koba-pwa-banner').classList.contains('koba-pwa-banner-visible')) {
5597        _kobaActivateInstallBtn(btn);
5598    }
5599});
5600
5601function _kobaActivateInstallBtn(btn) {
5602    if (!_kobaPwaInstallPrompt) return;
5603    btn.textContent = '📲 Installer l\'application';
5604    btn.removeAttribute('href');
5605    btn.onclick = function(e) {
5606        e.preventDefault();
5607        if (!_kobaPwaInstallPrompt) return;
5608        _kobaPwaInstallPrompt.prompt();
5609        _kobaPwaInstallPrompt.userChoice.then(function(result) {
5610            if (result.outcome === 'accepted') {
5611                _kobaHidePwaBanner();
5612            }
5613            _kobaPwaInstallPrompt = null;
5614        });
5615    };
5616}
5617
5618function _kobaHidePwaBanner() {
5619    var banner = document.getElementById('koba-pwa-banner');
5620    if (!banner) return;
5621    banner.classList.remove('koba-pwa-banner-visible');
5622    document.body.classList.remove('koba-pwa-banner-open');
5623    localStorage.setItem('koba_pwa_banner_closed', Date.now().toString());
5624}
5625
5626(function() {
5627    // Ne jamais afficher en mode PWA standalone
5628    if (window.matchMedia('(display-mode: standalone)').matches
5629        || window.navigator.standalone === true
5630        || sessionStorage.getItem('koba_pwa') === '1') {
5631        return;
5632    }
5633
5634    var STORAGE_KEY  = 'koba_pwa_banner_closed';
5635    var FREQUENCY_MS = 604800000;
5636
5637    function isMobile() {
5638        return (window.innerWidth < 1024) ||
5639               /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini|Mobile|mobile|CriOS/i.test(navigator.userAgent);
5640    }
5641
5642    if (!isMobile()) return;
5643
5644    var lastClosed = localStorage.getItem(STORAGE_KEY);
5645    if (lastClosed && (Date.now() - parseInt(lastClosed, 10)) < FREQUENCY_MS) return;
5646
5647    var ua = navigator.userAgent;
5648    var isIos        = /iPhone|iPad|iPod/i.test(ua);
5649    var isAndroid    = /Android/i.test(ua);
5650    // Sur iOS, seul Safari peut installer une PWA.
5651    // Chrome iOS (CriOS), Firefox iOS (FxiOS), Edge iOS (EdgiOS) utilisent WebKit
5652    // mais n'exposent pas la fonctionnalité d'ajout à l'écran d'accueil.
5653    var isIosNonSafari = isIos && /CriOS|FxiOS|EdgiOS|OPiOS|YaBrowser|DuckDuckGo/i.test(ua);
5654    var isIosSafari    = isIos && !isIosNonSafari;
5655
5656    function showBanner() {
5657        var banner = document.getElementById('koba-pwa-banner');
5658        if (!banner) return;
5659
5660        // Cas spécial : iOS hors Safari → bannière informative "ouvrez dans Safari"
5661        if (isIosNonSafari) {
5662            var iconEl  = banner.querySelector('.kpb-icon');
5663            var titleEl = banner.querySelector('.kpb-title');
5664            var descEl  = banner.querySelector('.kpb-desc');
5665            var btnEl   = banner.querySelector('.kpb-btn');
5666            var row2El  = banner.querySelector('.kpb-row2');
5667
5668            if (iconEl)  iconEl.textContent  = '🧭';
5669            if (titleEl) titleEl.textContent = 'Application disponible dans Safari';
5670            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.';
5671            // Le bouton "Voir comment installer" n'a aucun sens ici → on le retire,
5672            // on conserve uniquement le bouton Fermer.
5673            if (btnEl && btnEl.parentNode) {
5674                btnEl.parentNode.removeChild(btnEl);
5675            }
5676            if (row2El) {
5677                row2El.style.justifyContent = 'flex-end';
5678            }
5679        } else if (_kobaPwaInstallPrompt) {
5680            // Si le prompt natif est déjà disponible (Android/Chrome), transformer le bouton
5681            var btn = banner.querySelector('.kpb-btn');
5682            if (btn) _kobaActivateInstallBtn(btn);
5683        }
5684
5685        banner.classList.add('koba-pwa-banner-visible');
5686        document.body.classList.add('koba-pwa-banner-open');
5687
5688        var closeBtn = document.getElementById('koba-pwa-close');
5689        if (closeBtn) {
5690            closeBtn.addEventListener('click', _kobaHidePwaBanner);
5691        }
5692    }
5693
5694    if (isIosSafari && !window.navigator.standalone) {
5695        // iOS Safari : afficher immédiatement avec lien vers /installapp/
5696        document.addEventListener('DOMContentLoaded', showBanner);
5697    } else if (isIosNonSafari) {
5698        // iOS Chrome/Firefox/Edge : afficher la bannière informative "ouvrez dans Safari"
5699        document.addEventListener('DOMContentLoaded', showBanner);
5700    } else if (isAndroid || (!isIos && isMobile())) {
5701        // Android/Chrome : attendre que le prompt soit disponible
5702        document.addEventListener('DOMContentLoaded', function() {
5703            if (_kobaPwaInstallPrompt) {
5704                showBanner();
5705            } else {
5706                var t = setTimeout(function() {
5707                    if (_kobaPwaInstallPrompt) showBanner();
5708                    // sinon : déjà installé ou navigateur non supporté → rien
5709                }, 1000);
5710            }
5711        });
5712    }
5713})();
5714</script>
5714
5715   
5716        <style>
5717        #koba-desktop-alert {
5718            display: none; /* affiché par JS uniquement sur desktop */
5719            position: fixed;
5720            top: 50%;
5721            right: 0;
5722            transform: translateY(-50%);
5723            width: 300px;
5724            z-index: 99998;
5725            background: #fff;
5726            color: #333;
5727            border-radius: 0;
5728            box-shadow: 0 6px 30px rgba(0,0,0,.25);
5729            padding: 20px;
5730            box-sizing: border-box;
5731            font-family: inherit;
5732        }
5733        #koba-desktop-alert.kda-visible {
5734            display: block;
5735            animation: kda-slide-in .4s ease;
5736        }
5737        @keyframes kda-slide-in {
5738            from { opacity: 0; transform: translateY(-50%) translateX(30px); }
5739            to   { opacity: 1; transform: translateY(-50%) translateX(0); }
5740        }
5741        #koba-desktop-alert .kda-close {
5742            position: absolute;
5743            top: 10px;
5744            right: 10px;
5745            background: none;
5746            border: none;
5747            font-size: 16px;
5748            line-height: 1;
5749            color: #999;
5750            cursor: pointer;
5751            padding: 4px;
5752        }
5753        #koba-desktop-alert .kda-close:hover { color: #333; }
5754        #koba-desktop-alert .kda-icon {
5755            font-size: 28px;
5756            margin-bottom: 8px;
5757        }
5758        #koba-desktop-alert .kda-title {
5759            font-weight: 700;
5760            font-size: 1rem;
5761            margin-bottom: 8px;
5762            color: #1e293b;
5763        }
5764        #koba-desktop-alert .kda-content {
5765            font-size: .85rem;
5766            line-height: 1.55;
5767            color: #555;
5768            margin-bottom: 14px;
5769        }
5770        #koba-desktop-alert .kda-btn {
5771            display: inline-block;
5772            background: #1975ae;
5773            color: #fff;
5774            text-decoration: none;
5775            font-size: .85rem;
5776            font-weight: 600;
5777            padding: 9px 18px;
5778            border-radius: 8px;
5779            transition: opacity .2s;
5780        }
5781        #koba-desktop-alert .kda-btn:hover {
5782            opacity: .85;
5783            color: #fff;
5784        }
5785    </style>
5786
5787    <div id="koba-desktop-alert" role="dialog" aria-label="Application disponible">
5788        <button class="kda-close" id="koba-desktop-alert-close" aria-label="Fermer">✕</button>
5789        <div class="kda-title">📲 Application disponible</div>
5790        <div class="kda-content">
5791            Allez sur votre smartphone, affichez le site de votre mairie dans le navigateur
5792            de votre choix et vous serez invité à installer l'application sur votre mobile.
5793            Laissez-vous guider, c'est simple&nbsp;! Si votre mairie a souscrit à l'abonnement,
5794            tout fonctionnera immédiatement.
5795        </div>
5796        <a href="https://www.saint-florentin.fr/installapp/" class="kda-btn">Plus de détails</a>
5797    </div>
5798
5799    
5799<script>
5800    (function() {
5801        'use strict';
5802
5803        var STORAGE_KEY = 'koba_desktop_alert_shown';
5804        var WEEK_MS = 7 * 86400 * 1000;
5805
5806        // --- Détection desktop Windows / Mac uniquement ---
5807        var ua = navigator.userAgent;
5808        var isMobileUA = /Android|iPhone|iPad|iPod|Mobile|Tablet/i.test(ua);
5809        // iPadOS se fait passer pour un Mac : on l'exclut via le tactile
5810        var isIpadOs = (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1);
5811        var isWinMac = /Windows NT|Macintosh/i.test(ua);
5812
5813        if (isMobileUA || isIpadOs || !isWinMac) return;
5814
5815        // --- Mode standalone (PWA installée) : on n'affiche pas ---
5816        if (window.matchMedia && window.matchMedia('(display-mode: standalone)').matches) return;
5817
5818        // --- Fréquence : 1 fois par semaine ---
5819        var last = 0;
5820        try { last = parseInt(localStorage.getItem(STORAGE_KEY) || '0', 10); } catch (e) {}
5821        if (last && (Date.now() - last) < WEEK_MS) return;
5822
5823        function showAlert() {
5824            var box = document.getElementById('koba-desktop-alert');
5825            if (!box) return;
5826
5827            box.classList.add('kda-visible');
5828
5829            // On marque comme "vue" dès l'affichage → max 1 fois / semaine
5830            try { localStorage.setItem(STORAGE_KEY, Date.now().toString()); } catch (e) {}
5831
5832            var closeBtn = document.getElementById('koba-desktop-alert-close');
5833            if (closeBtn) {
5834                closeBtn.addEventListener('click', function() {
5835                    box.classList.remove('kda-visible');
5836                });
5837            }
5838        }
5839
5840        if (document.readyState === 'loading') {
5841            document.addEventListener('DOMContentLoaded', showAlert);
5842        } else {
5843            showAlert();
5844        }
5845    })();
5846    </script>
5846
5847    </body>
5848</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.