{"id":3545,"date":"2026-10-20T21:58:25","date_gmt":"2026-10-20T19:58:25","guid":{"rendered":"https:\/\/www.camping-aubigny.com\/elaia-animations-2\/"},"modified":"2026-10-20T21:58:26","modified_gmt":"2026-10-20T19:58:26","slug":"elaia-animations","status":"publish","type":"page","link":"https:\/\/www.camping-aubigny.com\/nl\/elaia-animations\/","title":{"rendered":"Animatie en evenementen"},"content":{"rendered":"\n\n<style>\n  \/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n     JETONS\n     \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n  .ea-wrap,\n  .ea-modal-overlay {\n    --ea-primary: #2e5e45;\n    --ea-primary-dark: color-mix(in srgb, var(--ea-primary) 80%, #000);\n    --ea-accent: #c8693f;\n    --ea-cream: #f7f3ec;\n    --ea-paper: #fffdf9;\n    --ea-ink: #1f2a24;\n    --ea-ink-soft: #4a554d;\n    --ea-muted: #6d6a60;\n    --ea-line: rgba(31, 42, 36, 0.1);\n    --ea-radius: 14px;\n    --ea-shadow: 0 1px 2px rgba(31, 42, 36, 0.04), 0 6px 20px rgba(31, 42, 36, 0.06);\n    --ea-shadow-hover: 0 2px 4px rgba(31, 42, 36, 0.05), 0 16px 36px rgba(31, 42, 36, 0.12);\n    --ea-header: 0px;\n    --ea-font: 'Inter', -apple-system, 'Segoe UI', sans-serif;\n  }\n\n  .ea-wrap {\n    font-family: var(--ea-font);\n    color: var(--ea-ink);\n    max-width: 1280px;\n    margin: 0 auto;\n    padding: 20px 28px 72px;\n    border-radius: 28px;\n    background: var(--ea-cream);\n    box-sizing: border-box;\n    -webkit-font-smoothing: antialiased;\n  }\n\n  .ea-wrap *,\n  .ea-wrap *::before,\n  .ea-wrap *::after,\n  .ea-modal-overlay *,\n  .ea-modal-overlay *::before,\n  .ea-modal-overlay *::after {\n    box-sizing: border-box;\n  }\n\n  .ea-wrap button,\n  .ea-wrap select,\n  .ea-modal-overlay button {\n    font-family: var(--ea-font);\n  }\n\n  .ea-wrap :focus-visible,\n  .ea-modal-overlay :focus-visible {\n    outline: 3px solid var(--ea-accent);\n    outline-offset: 3px;\n  }\n\n  .ea-icon {\n    display: inline-flex;\n    width: 1em;\n    height: 1em;\n    flex-shrink: 0;\n  }\n\n  .ea-icon svg {\n    width: 100%;\n    height: 100%;\n  }\n\n  .ea-sr {\n    position: absolute !important;\n    width: 1px;\n    height: 1px;\n    overflow: hidden;\n    clip: rect(0 0 0 0);\n    white-space: nowrap;\n  }\n\n  \/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n     1. BANDEAU\n     \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n  .ea-hero {\n    position: relative;\n    display: flex;\n    align-items: center;\n    min-height: clamp(240px, 30vh, 320px);\n    overflow: hidden;\n    padding: 36px 48px;\n    border-radius: 22px;\n    background-color: var(--ea-primary);\n    background-image: radial-gradient(120% 90% at 85% 10%, rgba(255, 255, 255, 0.16), transparent 60%);\n    background-size: cover;\n    background-position: center;\n    color: #fff;\n  }\n\n  .ea-hero::before {\n    content: '';\n    position: absolute;\n    inset: 0;\n    background: linear-gradient(90deg, rgba(14, 22, 17, 0.8) 0%, rgba(14, 22, 17, 0.5) 45%, rgba(14, 22, 17, 0.1) 80%);\n  }\n\n  .ea-hero--plain::before {\n    background: linear-gradient(90deg, rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0));\n  }\n\n  .ea-hero-inner {\n    position: relative;\n    max-width: 560px;\n  }\n\n  .ea-eyebrow {\n    display: inline-block;\n    margin-bottom: 10px;\n    font-size: 11px;\n    font-weight: 700;\n    letter-spacing: 0.18em;\n    text-transform: uppercase;\n    color: #f6d9c4;\n  }\n\n  .ea-hero-title {\n    margin: 0 0 10px !important;\n    color: #fff !important;\n    font-size: clamp(26px, 3.2vw, 40px) !important;\n    line-height: 1.1 !important;\n  }\n\n  .ea-hero-text {\n    margin: 0 !important;\n    color: rgba(255, 255, 255, 0.9) !important;\n    font-size: 15px;\n    line-height: 1.55;\n  }\n\n\n  \/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n     2. NAVIGATION RAPIDE\n     \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n  \/* Reste \u00e0 sa place : coll\u00e9e en haut, elle s'ajoutait aux en-t\u00eates et barres\n     fixes des th\u00e8mes (logo flottant de Camping Solaire\u2026) et masquait la page. *\/\n  .ea-nav {\n    position: relative;\n    z-index: 2;\n    display: flex;\n    justify-content: center;\n    margin-top: 18px;\n    pointer-events: none;\n  }\n\n  .ea-nav-inner {\n    display: flex;\n    gap: 4px;\n    max-width: 100%;\n    overflow-x: auto;\n    padding: 4px;\n    border: 1px solid var(--ea-line);\n    border-radius: 999px;\n    background: rgba(255, 253, 249, 0.95);\n    backdrop-filter: blur(10px);\n    box-shadow: 0 4px 14px rgba(31, 42, 36, 0.08);\n    scrollbar-width: none;\n    pointer-events: auto;\n  }\n\n  .ea-nav-inner::-webkit-scrollbar {\n    display: none;\n  }\n\n  .ea-nav-links {\n    display: flex;\n    gap: 4px;\n  }\n\n  .ea-nav a {\n    flex-shrink: 0;\n    display: inline-flex;\n    align-items: center;\n    gap: 7px;\n    min-height: 38px;\n    padding: 0 16px;\n    border-radius: 999px;\n    color: var(--ea-ink-soft) !important;\n    font-size: 14px;\n    font-weight: 600;\n    text-decoration: none !important;\n    white-space: nowrap;\n    transition: background 0.2s, color 0.2s;\n  }\n\n  .ea-nav a .ea-icon {\n    font-size: 15px;\n  }\n\n  .ea-nav a:hover {\n    background: rgba(31, 42, 36, 0.06);\n    color: var(--ea-ink) !important;\n  }\n\n  .ea-nav a[aria-current=\"true\"] {\n    background: var(--ea-primary);\n    color: #fff !important;\n  }\n\n  .ea-nav-sep {\n    flex-shrink: 0;\n    align-self: center;\n    width: 1px;\n    height: 22px;\n    margin: 0 4px;\n    background: var(--ea-line);\n  }\n\n  \/* Sur place \/ Aux alentours *\/\n  .ea-scope {\n    display: flex;\n    flex-shrink: 0;\n    gap: 2px;\n    padding: 2px;\n    border-radius: 999px;\n    background: #f1ece3;\n  }\n\n  .ea-scope button {\n    min-height: 34px;\n    padding: 0 14px;\n    border: 0;\n    border-radius: 999px;\n    background: transparent;\n    color: var(--ea-ink-soft);\n    font-size: 13px;\n    font-weight: 600;\n    white-space: nowrap;\n    cursor: pointer;\n  }\n\n  .ea-scope button:hover {\n    color: var(--ea-ink);\n  }\n\n  .ea-scope button:disabled {\n    opacity: 0.4;\n    cursor: not-allowed;\n  }\n\n  .ea-scope button:disabled:hover {\n    color: var(--ea-ink-soft);\n  }\n\n  .ea-scope button[aria-pressed=\"true\"] {\n    background: #fff;\n    color: var(--ea-primary);\n    box-shadow: 0 1px 3px rgba(31, 42, 36, 0.15);\n  }\n\n  \/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n     SECTIONS\n     \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n  .ea-section {\n    padding-top: 44px;\n    scroll-margin-top: calc(var(--ea-header) + 64px);\n  }\n\n  .ea-section-head {\n    display: flex;\n    flex-wrap: wrap;\n    align-items: center;\n    justify-content: space-between;\n    gap: 10px 24px;\n    margin-bottom: 16px;\n  }\n\n  .ea-section-title {\n    display: flex;\n    align-items: center;\n    gap: 10px;\n    margin: 0 !important;\n    color: var(--ea-ink) !important;\n    font-size: clamp(21px, 2.2vw, 27px) !important;\n    line-height: 1.2 !important;\n  }\n\n  .ea-section-title .ea-icon {\n    color: var(--ea-accent);\n    font-size: 0.95em;\n  }\n\n  .ea-section-sub {\n    margin: 4px 0 0 !important;\n    color: var(--ea-muted);\n    font-size: 14px;\n  }\n\n  .ea-head-side {\n    display: flex;\n    flex-wrap: wrap;\n    align-items: center;\n    gap: 8px;\n    color: var(--ea-ink);\n    font-size: 14px;\n    font-weight: 500;\n  }\n\n  .ea-round {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    width: 36px;\n    height: 36px;\n    border: 1px solid var(--ea-line);\n    border-radius: 50%;\n    background: var(--ea-paper);\n    color: var(--ea-ink);\n    font-size: 17px;\n    cursor: pointer;\n    transition: background 0.2s, border-color 0.2s;\n  }\n\n  .ea-round:hover:not(:disabled) {\n    border-color: var(--ea-primary);\n    background: #fff;\n  }\n\n  .ea-round:disabled {\n    opacity: 0.35;\n    cursor: not-allowed;\n  }\n\n  \/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n     CARTE \u00c9V\u00c9NEMENT (composant r\u00e9utilisable)\n     \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n  .ea-grid {\n    display: grid;\n    grid-template-columns: repeat(3, minmax(0, 1fr));\n    gap: 16px;\n  }\n\n  .ea-grid--4 {\n    grid-template-columns: repeat(4, minmax(0, 1fr));\n  }\n\n  .ea-card {\n    position: relative;\n    display: flex;\n    flex-direction: column;\n    min-width: 0;\n    overflow: hidden;\n    border: 1px solid rgba(31, 42, 36, 0.06);\n    border-radius: 14px;\n    background: var(--ea-paper);\n    box-shadow: 0 1px 2px rgba(31, 42, 36, 0.04), 0 4px 12px rgba(31, 42, 36, 0.05);\n    cursor: pointer;\n    transition: box-shadow 0.25s ease, transform 0.25s ease;\n  }\n\n  .ea-card:hover {\n    box-shadow: var(--ea-shadow-hover);\n    transform: translateY(-2px);\n  }\n\n  .ea-card--ended {\n    opacity: 0.6;\n  }\n\n  .ea-card-media {\n    position: relative;\n    aspect-ratio: 16 \/ 9;\n    overflow: hidden;\n    background: #ece5d8;\n  }\n\n  .ea-grid--4 .ea-card-media {\n    aspect-ratio: 16 \/ 10;\n  }\n\n  .ea-card-media img {\n    display: block;\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    transition: transform 0.5s ease;\n  }\n\n  .ea-card:hover .ea-card-media img {\n    transform: scale(1.04);\n  }\n\n  \/* Image par d\u00e9faut du chatbot (souvent un logo) : enti\u00e8re, sur fond doux *\/\n  .ea-card-media img.ea-img--default,\n  .ea-modal-img.ea-img--default {\n    object-fit: contain;\n    padding: 10%;\n    background: #efe8dc;\n  }\n\n  .ea-card:hover .ea-card-media img.ea-img--default {\n    transform: none;\n  }\n\n  .ea-card-fallback {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    width: 100%;\n    height: 100%;\n    background: linear-gradient(135deg, var(--ea-cat-bg), #efe8dc);\n    color: var(--ea-cat-fg);\n    font-size: 34px;\n  }\n\n  .ea-live {\n    position: absolute;\n    bottom: 10px;\n    left: 10px;\n    display: inline-flex;\n    align-items: center;\n    gap: 6px;\n    padding: 4px 10px;\n    border-radius: 6px;\n    background: #d9412b;\n    color: #fff;\n    font-size: 12px;\n    font-weight: 700;\n  }\n\n  .ea-live::before {\n    content: '';\n    width: 6px;\n    height: 6px;\n    border-radius: 50%;\n    background: #fff;\n  }\n\n  \/* Badge \u00ab Sur inscription \u00bb (en haut \u00e0 droite de l'image) *\/\n  .ea-reg {\n    position: absolute;\n    top: 10px;\n    right: 10px;\n    display: inline-flex;\n    align-items: center;\n    gap: 5px;\n    padding: 5px 10px;\n    border-radius: 999px;\n    background: #fff;\n    color: var(--ea-ink);\n    font-size: 12px;\n    font-weight: 700;\n    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.18);\n  }\n\n  .ea-reg .ea-icon {\n    color: var(--ea-accent);\n    font-size: 14px;\n  }\n\n  \/* Filtres cat\u00e9gories (sous \u00ab Activit\u00e9s du jour \u00bb, valables pour toute la page) *\/\n  .ea-cats {\n    display: flex;\n    flex-wrap: wrap;\n    gap: 8px;\n    margin: -4px 0 18px;\n  }\n\n  .ea-cat {\n    display: inline-flex;\n    align-items: center;\n    gap: 6px;\n    min-height: 34px;\n    padding: 0 14px;\n    border: 1px solid transparent;\n    border-radius: 999px;\n    background: var(--ea-cat-bg, #fff);\n    color: var(--ea-cat-fg, var(--ea-ink));\n    font-size: 13px;\n    font-weight: 600;\n    cursor: pointer;\n    transition: border-color 0.2s, box-shadow 0.2s;\n  }\n\n  .ea-cat:hover {\n    border-color: currentColor;\n  }\n\n  .ea-cat[aria-pressed=\"true\"] {\n    border-color: currentColor;\n    box-shadow: inset 0 0 0 1px currentColor;\n  }\n\n  .ea-cat--all {\n    background: #fff;\n    color: var(--ea-ink);\n    border-color: var(--ea-line);\n  }\n\n  .ea-cat--all[aria-pressed=\"true\"] {\n    background: var(--ea-primary);\n    border-color: var(--ea-primary);\n    color: #fff;\n    box-shadow: none;\n  }\n\n  \/* Badge de date sur l'image : format unique (libell\u00e9 \/ jour \/ mois), taille fixe *\/\n  .ea-date {\n    position: absolute;\n    top: 10px;\n    left: 10px;\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    justify-content: center;\n    width: 64px;\n    height: 74px;\n    padding: 4px;\n    border-radius: 10px;\n    background: var(--ea-accent);\n    color: #fff;\n    text-align: center;\n    text-transform: uppercase;\n    box-shadow: 0 3px 8px rgba(0, 0, 0, 0.18);\n  }\n\n  .ea-date-top,\n  .ea-date-month {\n    display: block;\n    max-width: 100%;\n    font-size: 9.5px;\n    font-weight: 700;\n    line-height: 1.2;\n    letter-spacing: 0.04em;\n    white-space: nowrap;\n    overflow: hidden;\n    text-overflow: ellipsis;\n  }\n\n  \/* Couleurs par cas (le texte du badge dit aussi le cas : \u00ab Auj. \u00bb, \u00ab Du \u2026 \u2192 \u00bb, \u00ab Jusqu'au \u00bb) *\/\n  .ea-date--today {\n    background: var(--ea-primary);\n  }\n\n  .ea-date--period {\n    background: #3f5f7f;\n  }\n\n  .ea-date--ongoing {\n    background: #a36a12;\n  }\n\n  \/* Fin de p\u00e9riode, sous le d\u00e9but *\/\n  .ea-date-end {\n    display: block;\n    max-width: 100%;\n    margin-top: 3px;\n    padding-top: 3px;\n    border-top: 1px solid rgba(255, 255, 255, 0.45);\n    font-size: 9.5px;\n    font-weight: 700;\n    line-height: 1.1;\n    letter-spacing: 0.02em;\n    white-space: nowrap;\n    overflow: hidden;\n    text-overflow: ellipsis;\n  }\n\n  .ea-date-top {\n    opacity: 0.9;\n  }\n\n  .ea-date-day {\n    display: block;\n    font-size: 22px;\n    font-weight: 800;\n    line-height: 1.05;\n  }\n\n  .ea-card-body {\n    display: flex;\n    flex: 1;\n    flex-direction: column;\n    gap: 6px;\n    padding: 12px 14px 14px;\n  }\n\n  .ea-card-top {\n    display: flex;\n    flex-wrap: wrap;\n    align-items: center;\n    gap: 6px 10px;\n  }\n\n  .ea-when {\n    display: inline-flex;\n    align-items: center;\n    gap: 5px;\n    color: var(--ea-primary);\n    font-size: 14px;\n    font-weight: 700;\n  }\n\n  .ea-pill {\n    display: inline-flex;\n    align-items: center;\n    padding: 2px 9px;\n    border-radius: 999px;\n    background: var(--ea-cat-bg, #eef0ec);\n    color: var(--ea-cat-fg, #3c463f);\n    font-size: 11px;\n    font-weight: 600;\n  }\n\n  .ea-card-title {\n    margin: 0 !important;\n    color: var(--ea-ink) !important;\n    font-size: 17px !important;\n    font-weight: 600 !important;\n    line-height: 1.3 !important;\n    display: -webkit-box;\n    -webkit-line-clamp: 2;\n    -webkit-box-orient: vertical;\n    overflow: hidden;\n  }\n\n  .ea-grid--4 .ea-card-title {\n    font-size: 16px !important;\n  }\n\n  .ea-place {\n    display: flex;\n    align-items: center;\n    gap: 5px;\n    margin: 0 !important;\n    color: var(--ea-muted);\n    font-size: 13px;\n  }\n\n  .ea-place .ea-icon {\n    color: var(--ea-muted);\n  }\n\n  .ea-card-desc {\n    margin: 0 !important;\n    color: var(--ea-ink-soft);\n    font-size: 13px;\n    line-height: 1.5;\n    display: -webkit-box;\n    -webkit-line-clamp: 2;\n    -webkit-box-orient: vertical;\n    overflow: hidden;\n  }\n\n  .ea-cta {\n    display: inline-flex;\n    align-items: center;\n    align-self: flex-start;\n    gap: 6px;\n    margin-top: auto;\n    padding: 8px 16px;\n    border-radius: 999px;\n    background: color-mix(in srgb, var(--ea-primary) 12%, #fff);\n    color: var(--ea-primary);\n    font-size: 13px;\n    font-weight: 700;\n    transition: background 0.2s, color 0.2s;\n  }\n\n  \/* Bouton coll\u00e9 en bas, avec un peu d'air au-dessus *\/\n  .ea-card-body .ea-cta {\n    margin-top: auto;\n    transform: translateY(4px);\n  }\n\n  .ea-card:hover .ea-cta {\n    background: var(--ea-primary);\n    color: #fff;\n  }\n\n  .ea-cta .ea-icon {\n    transition: transform 0.2s ease;\n  }\n\n  .ea-card:hover .ea-cta .ea-icon {\n    transform: translateX(3px);\n  }\n\n  \/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n     BOUTONS\n     \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n  .ea-btn {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    gap: 7px;\n    min-height: 40px;\n    padding: 0 20px;\n    border: 0;\n    border-radius: 999px;\n    background: var(--ea-primary);\n    color: #fff !important;\n    font-size: 14px;\n    font-weight: 600;\n    text-decoration: none !important;\n    cursor: pointer;\n    transition: background 0.2s, filter 0.2s;\n  }\n\n  .ea-btn:hover {\n    background: var(--ea-primary-dark);\n  }\n\n  \/* Bouton secondaire : capsule terracotta douce *\/\n  .ea-btn--soft {\n    background: #f6e3d6;\n    color: var(--ea-ink) !important;\n  }\n\n  .ea-btn--soft:hover {\n    background: #f1d5c2;\n  }\n\n  \/* Carrousel (Activit\u00e9s du jour) *\/\n  .ea-carousel {\n    position: relative;\n  }\n\n  .ea-carousel-track {\n    display: grid;\n    grid-auto-flow: column;\n    grid-auto-columns: calc((100% - 32px) \/ 3);\n    gap: 16px;\n    overflow-x: auto;\n    scroll-snap-type: x mandatory;\n    scroll-behavior: smooth;\n    scrollbar-width: none;\n    padding: 4px 2px 8px;\n    margin: -4px -2px -8px;\n  }\n\n  .ea-carousel-track::-webkit-scrollbar {\n    display: none;\n  }\n\n  .ea-carousel--4 .ea-carousel-track {\n    grid-auto-columns: calc((100% - 48px) \/ 4);\n  }\n\n  .ea-carousel--4 .ea-card-media {\n    aspect-ratio: 16 \/ 10;\n  }\n\n  .ea-carousel--4 .ea-card-title {\n    font-size: 16px !important;\n  }\n\n  .ea-carousel-track > .ea-card {\n    scroll-snap-align: start;\n  }\n\n  .ea-carousel-btn {\n    position: absolute;\n    top: 38%;\n    z-index: 2;\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    width: 44px;\n    height: 44px;\n    border: 1px solid var(--ea-line);\n    border-radius: 50%;\n    background: var(--ea-paper);\n    color: var(--ea-ink);\n    font-size: 22px;\n    line-height: 1;\n    box-shadow: 0 6px 18px rgba(31, 42, 36, 0.18);\n    cursor: pointer;\n    transition: background 0.2s, color 0.2s;\n  }\n\n  .ea-carousel-btn:hover {\n    background: var(--ea-primary);\n    color: #fff;\n  }\n\n  .ea-carousel-btn[hidden] {\n    display: none;\n  }\n\n  .ea-carousel-btn--prev {\n    left: -18px;\n  }\n\n  .ea-carousel-btn--next {\n    right: -18px;\n  }\n\n  @media (max-width: 1100px) {\n    .ea-carousel--4 .ea-carousel-track {\n      grid-auto-columns: calc((100% - 32px) \/ 3);\n    }\n  }\n\n  @media (max-width: 900px) {\n    .ea-carousel-track,\n    .ea-carousel--4 .ea-carousel-track {\n      grid-auto-columns: calc((100% - 16px) \/ 2);\n    }\n  }\n\n  @media (max-width: 640px) {\n    .ea-carousel-track,\n    .ea-carousel--4 .ea-carousel-track {\n      grid-auto-columns: 85%;\n    }\n\n    .ea-carousel-btn {\n      display: none;\n    }\n  }\n\n  .ea-more {\n    display: flex;\n    justify-content: center;\n    margin-top: 22px;\n  }\n\n  \/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n     TEMPS FORTS \u2014 barre des jours\n     \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n  .ea-days {\n    display: grid;\n    grid-template-columns: repeat(7, minmax(0, 1fr));\n    gap: 2px;\n    margin-bottom: 16px;\n    padding: 4px;\n    border-radius: 14px;\n    background: #efe9df;\n  }\n\n  .ea-day {\n    position: relative;\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    justify-content: center;\n    gap: 1px;\n    min-height: 52px;\n    padding: 6px 4px;\n    border: 0;\n    border-radius: 11px;\n    background: transparent;\n    color: var(--ea-ink);\n    text-align: center;\n    cursor: pointer;\n    transition: background 0.2s;\n  }\n\n  .ea-day:hover {\n    background: rgba(255, 253, 249, 0.7);\n  }\n\n  .ea-day-name {\n    font-size: 14px;\n    font-weight: 600;\n  }\n\n  .ea-day-date {\n    font-size: 12px;\n    color: var(--ea-muted);\n  }\n\n  \/* Petit point : ce jour a des activit\u00e9s (le nombre est dans l'aria-label) *\/\n  .ea-day.has-events::after {\n    content: '';\n    position: absolute;\n    top: 7px;\n    right: 9px;\n    width: 6px;\n    height: 6px;\n    border-radius: 50%;\n    background: var(--ea-accent);\n  }\n\n  .ea-day.is-today .ea-day-name {\n    color: var(--ea-accent);\n  }\n\n  .ea-day[aria-pressed=\"true\"] {\n    background: var(--ea-primary);\n    color: #fff;\n  }\n\n  .ea-day[aria-pressed=\"true\"] .ea-day-name,\n  .ea-day[aria-pressed=\"true\"] .ea-day-date {\n    color: #fff;\n  }\n\n  .ea-day[aria-pressed=\"true\"].has-events::after {\n    background: #fff;\n  }\n\n  \/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n     \u00c0 VENIR \u2014 listes d\u00e9roulantes\n     \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n  .ea-select {\n    min-height: 38px;\n    padding: 0 32px 0 14px;\n    border: 1px solid var(--ea-line);\n    border-radius: 10px;\n    background-color: var(--ea-paper);\n    color: var(--ea-ink);\n    font-size: 13px;\n    font-weight: 600;\n    cursor: pointer;\n  }\n\n  \/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n     6. CALENDRIER (secondaire, repliable)\n     \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n  .ea-cal-panel[hidden] {\n    display: none;\n  }\n\n  .ea-cal-toolbar {\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    gap: 12px;\n    margin-bottom: 16px;\n  }\n\n  .ea-cal-month {\n    margin: 0 !important;\n    font-size: 17px !important;\n    color: var(--ea-ink) !important;\n  }\n\n  .ea-month {\n    overflow: hidden;\n    border-radius: var(--ea-radius);\n    background: var(--ea-paper);\n    box-shadow: var(--ea-shadow);\n  }\n\n  .ea-month-head {\n    display: grid;\n    grid-template-columns: repeat(7, minmax(0, 1fr));\n    border-bottom: 1px solid var(--ea-line);\n  }\n\n  .ea-month-head div {\n    padding: 12px 6px;\n    color: var(--ea-muted);\n    font-size: 12px;\n    font-weight: 700;\n    letter-spacing: 0.08em;\n    text-align: center;\n    text-transform: uppercase;\n  }\n\n  .ea-mrow {\n    display: grid;\n    grid-template-columns: repeat(7, minmax(0, 1fr));\n    grid-template-rows: 34px repeat(3, 26px) 22px;\n    border-bottom: 1px solid var(--ea-line);\n  }\n\n  .ea-mrow:last-child {\n    border-bottom: 0;\n  }\n\n  .ea-mcell {\n    grid-row: 1 \/ -1;\n    padding: 0;\n    border: 0;\n    border-left: 1px solid var(--ea-line);\n    background: transparent;\n    cursor: pointer;\n    transition: background 0.15s;\n  }\n\n  .ea-mcell:first-child {\n    border-left: 0;\n  }\n\n  .ea-mcell:hover {\n    background: rgba(31, 42, 36, 0.03);\n  }\n\n  .ea-mcell--out {\n    background: rgba(31, 42, 36, 0.025);\n  }\n\n  .ea-mcell--selected {\n    background: color-mix(in srgb, var(--ea-primary) 10%, transparent) !important;\n    box-shadow: inset 0 0 0 2px var(--ea-primary);\n  }\n\n  .ea-mnum {\n    grid-row: 1;\n    z-index: 1;\n    justify-self: start;\n    align-self: center;\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    width: 28px;\n    height: 28px;\n    margin-left: 6px;\n    border-radius: 50%;\n    color: var(--ea-ink);\n    font-size: 13px;\n    font-weight: 600;\n    pointer-events: none;\n  }\n\n  .ea-mnum--out {\n    color: #b8b2a6;\n  }\n\n  .ea-mnum--today {\n    background: var(--ea-primary);\n    color: #fff;\n  }\n\n  .ea-mbar {\n    z-index: 1;\n    min-width: 0;\n    margin: 2px 3px;\n    padding: 0 8px;\n    border: 0;\n    border-radius: 6px;\n    background: var(--ea-cat-bg);\n    color: var(--ea-cat-fg);\n    font-size: 12px;\n    font-weight: 600;\n    line-height: 22px;\n    text-align: left;\n    white-space: nowrap;\n    overflow: hidden;\n    text-overflow: ellipsis;\n    cursor: pointer;\n  }\n\n  .ea-mbar:hover {\n    filter: brightness(0.96);\n  }\n\n  .ea-mbar--from-before {\n    border-top-left-radius: 0;\n    border-bottom-left-radius: 0;\n  }\n\n  .ea-mbar--to-after {\n    border-top-right-radius: 0;\n    border-bottom-right-radius: 0;\n  }\n\n  .ea-mbar--ended {\n    opacity: 0.5;\n  }\n\n  .ea-mmore {\n    grid-row: 5;\n    z-index: 1;\n    align-self: center;\n    padding-left: 8px;\n    color: var(--ea-muted);\n    font-size: 12px;\n    font-weight: 600;\n    pointer-events: none;\n  }\n\n  .ea-daypanel {\n    margin-top: 24px;\n  }\n\n  .ea-daypanel-title {\n    margin: 0 0 14px !important;\n    color: var(--ea-ink) !important;\n    font-size: 19px !important;\n  }\n\n  \/* \u2500\u2500\u2500 \u00c9tats vides \u2500\u2500\u2500 *\/\n  .ea-empty {\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    gap: 6px;\n    padding: 28px 20px;\n    border-radius: var(--ea-radius);\n    background: var(--ea-paper);\n    color: var(--ea-ink-soft);\n    text-align: center;\n    font-size: 14px;\n  }\n\n  .ea-empty .ea-icon {\n    margin-bottom: 4px;\n    color: var(--ea-accent);\n    font-size: 24px;\n  }\n\n  .ea-empty strong {\n    color: var(--ea-ink);\n    font-size: 16px;\n  }\n\n  .ea-empty .ea-btn {\n    margin-top: 14px;\n  }\n\n  \/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n     MODAL (rattach\u00e9e au <body data-rsssl=1> en JS)\n     \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n  .ea-modal-overlay {\n    position: fixed !important;\n    inset: 0 !important;\n    z-index: 99999 !important;\n    max-width: none !important;\n    width: auto !important;\n    margin: 0 !important;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    padding: 20px;\n    background: rgba(20, 28, 22, 0.45);\n    backdrop-filter: blur(3px);\n  }\n\n  .ea-modal-overlay[hidden] {\n    display: none !important;\n  }\n\n  .ea-modal {\n    position: relative;\n    width: 100%;\n    max-width: 560px;\n    max-height: calc(100vh - 40px);\n    overflow-y: auto;\n    border-radius: 24px;\n    background: var(--ea-paper);\n    box-shadow: 0 30px 80px rgba(20, 28, 22, 0.35);\n    font-family: var(--ea-font);\n    color: var(--ea-ink);\n  }\n\n  .ea-modal-img {\n    display: block;\n    width: 100%;\n    height: 240px;\n    object-fit: cover;\n  }\n\n  .ea-modal-body {\n    display: flex;\n    flex-direction: column;\n    gap: 14px;\n    padding: 22px 24px 24px;\n  }\n\n  .ea-modal-title {\n    margin: 0 !important;\n    color: var(--ea-ink) !important;\n    font-size: 24px !important;\n    line-height: 1.2 !important;\n  }\n\n  .ea-modal-info {\n    display: flex;\n    flex-direction: column;\n    gap: 8px;\n    padding: 16px 18px;\n    border-radius: 14px;\n    background: var(--ea-cream);\n    color: var(--ea-ink);\n    font-size: 15px;\n  }\n\n  .ea-modal-info span {\n    display: flex;\n    align-items: center;\n    gap: 10px;\n  }\n\n  .ea-modal-info .ea-icon {\n    color: var(--ea-accent);\n    font-size: 18px;\n  }\n\n  .ea-modal-desc {\n    margin: 0 !important;\n    color: var(--ea-ink-soft);\n    font-size: 15px;\n    line-height: 1.65;\n    white-space: pre-line;\n  }\n\n  .ea-modal-body .ea-btn {\n    align-self: flex-start;\n  }\n\n  .ea-modal-close {\n    position: absolute;\n    top: 14px;\n    right: 14px;\n    z-index: 1;\n    width: 44px;\n    height: 44px;\n    border: 0;\n    border-radius: 50%;\n    background: rgba(255, 253, 249, 0.95);\n    color: var(--ea-ink);\n    font-size: 24px;\n    line-height: 1;\n    cursor: pointer;\n    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.18);\n  }\n\n  \/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n     9. RESPONSIVE\n     \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n  @media (max-width: 1100px) {\n    .ea-grid--4 {\n      grid-template-columns: repeat(3, minmax(0, 1fr));\n    }\n  }\n\n  @media (max-width: 900px) {\n    .ea-grid,\n    .ea-grid--4 {\n      grid-template-columns: repeat(2, minmax(0, 1fr));\n    }\n\n  }\n\n  @media (max-width: 640px) {\n    .ea-wrap {\n      padding: 10px 14px 44px;\n      border-radius: 0;\n    }\n\n    .ea-hero {\n      align-items: flex-end;\n      min-height: 280px;\n      padding: 22px 18px;\n      border-radius: 16px;\n    }\n\n    .ea-hero::before {\n      background: linear-gradient(0deg, rgba(14, 22, 17, 0.85) 0%, rgba(14, 22, 17, 0.35) 70%, rgba(14, 22, 17, 0.15) 100%);\n    }\n\n    .ea-hero-text {\n      font-size: 14px;\n    }\n\n\n    .ea-nav {\n      justify-content: flex-start;\n    }\n\n    .ea-nav a {\n      min-height: 34px;\n      padding: 0 10px;\n      font-size: 13px;\n    }\n\n    .ea-nav a .ea-icon {\n      display: none;\n    }\n\n    \/* Barre sur 2 lignes : sections (d\u00e9filantes) puis \u00ab Tout \/ Sur place \/ Aux alentours \u00bb *\/\n    .ea-nav-inner {\n      flex-wrap: wrap;\n      justify-content: center;\n      overflow: visible;\n      border-radius: 20px;\n    }\n\n    .ea-nav-sep {\n      display: none;\n    }\n\n    .ea-nav-links {\n      flex: 1 1 100%;\n      overflow-x: auto;\n      scrollbar-width: none;\n    }\n\n    .ea-nav-links::-webkit-scrollbar {\n      display: none;\n    }\n\n    .ea-nav-links a {\n      flex-shrink: 0;\n    }\n\n    .ea-scope {\n      flex: 1 1 100%;\n      justify-content: space-between;\n    }\n\n    .ea-scope button {\n      flex: 1;\n    }\n\n    .ea-section {\n      padding-top: 36px;\n    }\n\n    .ea-grid,\n    .ea-grid--4 {\n      grid-template-columns: minmax(0, 1fr);\n      gap: 14px;\n    }\n\n    .ea-cats {\n      flex-wrap: nowrap;\n      overflow-x: auto;\n      scrollbar-width: none;\n      padding-bottom: 2px;\n    }\n\n    .ea-cats::-webkit-scrollbar {\n      display: none;\n    }\n\n    .ea-cat {\n      flex-shrink: 0;\n    }\n\n    \/* Jours : d\u00e9filement horizontal *\/\n    .ea-days {\n      display: flex;\n      overflow-x: auto;\n      scrollbar-width: none;\n    }\n\n    .ea-days::-webkit-scrollbar {\n      display: none;\n    }\n\n    .ea-day {\n      flex: 0 0 64px;\n    }\n\n    \/* Calendrier : barres fines sans texte *\/\n    .ea-mrow {\n      grid-template-rows: 30px repeat(3, 8px) 18px;\n    }\n\n    .ea-mbar {\n      margin: 1px;\n      padding: 0;\n      font-size: 0;\n      line-height: 0;\n      background: var(--ea-cat-fg);\n      border-radius: 3px;\n    }\n\n    .ea-mnum {\n      margin-left: 2px;\n      font-size: 12px;\n    }\n\n    .ea-mmore {\n      padding-left: 3px;\n      font-size: 10px;\n    }\n\n    .ea-modal-img {\n      height: 190px;\n    }\n\n    .ea-modal-body {\n      padding: 20px 18px 22px;\n    }\n\n    .ea-modal-title {\n      font-size: 22px !important;\n    }\n  }\n\n  @media (prefers-reduced-motion: reduce) {\n    .ea-wrap *,\n    .ea-modal-overlay * {\n      transition: none !important;\n      scroll-behavior: auto !important;\n    }\n  }\n<\/style>\n\n\n<div class=\"ea-wrap\" id=\"ea-app\">\n\n  <!-- 1. Bandeau immersif -->\n  <section class=\"ea-hero ea-hero--plain\">\n    <div class=\"ea-hero-inner\">\n      <span class=\"ea-eyebrow\">Beleef onvergetelijke momenten<\/span>\n      <h1 class=\"ea-hero-title\">Animatie &amp; evenementen<\/h1>\n      <p class=\"ea-hero-text\">Alle activiteiten van het moment, de hoogtepunten van de week en komende evenementen tijdens uw verblijf.<\/p>\n    <\/div>\n  <\/section>\n\n  <!-- 2. Navigation rapide (collante) + filtre sur place \/ aux alentours -->\n  <nav class=\"ea-nav\" aria-label=\"Pagina-onderdelen\">\n    <div class=\"ea-nav-inner\">\n      <div class=\"ea-nav-links\">\n        <a href=\"#ea-sec-today\" aria-current=\"true\"><span class=\"ea-icon\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"><circle cx=\"12\" cy=\"12\" r=\"4\"\/><path d=\"M12 2v2M12 20v2M4.9 4.9l1.4 1.4M17.7 17.7l1.4 1.4M2 12h2M20 12h2M4.9 19.1l1.4-1.4M17.7 6.3l1.4-1.4\"\/><\/svg><\/span>Vandaag<\/a>\n        <a href=\"#ea-sec-week\"><span class=\"ea-icon\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"><rect x=\"3\" y=\"5\" width=\"18\" height=\"16\" rx=\"2\"\/><path d=\"M16 3v4M8 3v4M3 10h18\"\/><\/svg><\/span>Deze week<\/a>\n        <a href=\"#ea-sec-upcoming\"><span class=\"ea-icon\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"><circle cx=\"12\" cy=\"12\" r=\"9\"\/><path d=\"M12 7v5l3 2\"\/><\/svg><\/span>Binnenkort<\/a>\n        <a href=\"#ea-sec-calendar\"><span class=\"ea-icon\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><rect x=\"3\" y=\"5\" width=\"18\" height=\"16\" rx=\"2\"\/><path d=\"M3 10h18M8 14h2M12 14h2M16 14h2M8 17h2M12 17h2\"\/><\/svg><\/span>Kalender<\/a>\n      <\/div>\n              <span class=\"ea-nav-sep\" aria-hidden=\"true\"><\/span>\n        <div class=\"ea-scope\" role=\"group\" aria-label=\"Waar?\">\n          <button type=\"button\" data-scope=\"all\" aria-pressed=\"true\">Alles<\/button>\n                    <button type=\"button\" data-scope=\"onsite\" aria-pressed=\"false\" disabled title=\"Momenteel geen activiteit ter plaatse\">Ter plaatse<\/button>\n          <button type=\"button\" data-scope=\"nearby\" aria-pressed=\"false\">In de buurt<\/button>\n        <\/div>\n          <\/div>\n  <\/nav>\n\n  <!-- 3 \u2192 6. Sections (rendues en JS) -->\n  <section class=\"ea-section\" id=\"ea-sec-today\" aria-labelledby=\"ea-today-title\"><\/section>\n  <section class=\"ea-section\" id=\"ea-sec-week\" aria-labelledby=\"ea-week-title\"><\/section>\n  <section class=\"ea-section\" id=\"ea-sec-upcoming\" aria-labelledby=\"ea-upcoming-title\"><\/section>\n  <section class=\"ea-section\" id=\"ea-sec-calendar\" aria-labelledby=\"ea-calendar-title\"><\/section>\n\n  <noscript>\n    <ul>\n              <li><strong>March\u00e9 hebdomadaire Aubigny-sur-N\u00e8re<\/strong> \u2014 Du 31\/12\/2025 au 30\/12\/2026 \u00e0 23:59 \u2014 18700 Aubigny-sur-N\u00e8re<\/li>\n              <li><strong>Gien Markt - Woensdag<\/strong> \u2014 Du 31\/12\/2025 \u00e0 08:00 au 30\/12\/2026 \u00e0 23:59 \u2014 45500 Gien<\/li>\n              <li><strong>March\u00e9 de Coullons - Vendredi<\/strong> \u2014 Du 31\/12\/2025 \u00e0 08:00 au 30\/12\/2026 \u00e0 23:59 \u2014 45720 Coullons<\/li>\n              <li><strong>Beaulieu-sur-Loire Markt - Woensdag<\/strong> \u2014 Du 31\/12\/2025 \u00e0 08:30 au 30\/12\/2026 \u00e0 23:59 \u2014 45630 Ch\u00e2tillon-sur-Loire<\/li>\n              <li><strong>Briare Markt - Vrijdag<\/strong> \u2014 Du 31\/12\/2025 \u00e0 08:30 au 30\/12\/2026 \u00e0 23:59 \u2014 45250 Ch\u00e2tillon-sur-Loire<\/li>\n              <li><strong>Wekelijkse Markt Mery-es-Bois<\/strong> \u2014 Du 31\/12\/2025 \u00e0 16:00 au 30\/12\/2026 \u00e0 23:59 \u2014 18380 M\u00e9ry-\u00e8s-Bois<\/li>\n              <li><strong>Gien Markt - Zaterdag<\/strong> \u2014 Du 13\/03\/2026 \u00e0 08:00 au 30\/12\/2026 \u00e0 23:59 \u2014 45500 Gien<\/li>\n              <li><strong>Exposition \u00c9closion<\/strong> \u2014 Du 20\/03\/2026 \u00e0 14:00 au 31\/10\/2026 \u00e0 23:59 \u2014 18250 Henrichemont<\/li>\n              <li><strong>Louiseon Rocard Tentoonstelling<\/strong> \u2014 Du 31\/08\/2026 au 31\/10\/2026 \u00e0 23:59 \u2014 18250 Neuvy-Deux-Clochers<\/li>\n              <li><strong>Tijdelijke tentoonstelling: R\u00e9trogaming: terug naar ruimtespelletjes<\/strong> \u2014 Du 31\/08\/2026 \u00e0 13:30 au 02\/01\/2027 \u00e0 23:59 \u2014 18330 Nan\u00e7ay<\/li>\n              <li><strong>Tentoonstelling Vassil Ivanoff<\/strong> \u2014 Du 31\/08\/2026 \u00e0 14:00 au 10\/11\/2026 \u00e0 23:59 \u2014 18250 Henrichemont<\/li>\n              <li><strong>Exposition Roland Sch\u00e4r<\/strong> \u2014 Du 31\/08\/2026 \u00e0 18:00 au 24\/10\/2026 \u00e0 23:59 \u2014 18260 Vailly-sur-Sauldre<\/li>\n              <li><strong>Exposition Jos\u00e9 Canon<\/strong> \u2014 Du 01\/09\/2026 au 29\/10\/2026 \u00e0 23:59 \u2014 18330 Neuvy-sur-Barangeon<\/li>\n              <li><strong>Tentoonstelling &quot;Herstel van de Bruggen op het Sauldre-kanaal in Brinon&quot;<\/strong> \u2014 Du 18\/09\/2026 au 23\/10\/2026 \u00e0 23:59 \u2014 18410 Brinon-sur-Sauldre<\/li>\n              <li><strong>visites compl\u00e8tes de l&#039;usine<\/strong> \u2014 Du 30\/09\/2026 \u00e0 10:00 au 27\/10\/2026 \u00e0 23:59 \u2014 45500 Gien<\/li>\n              <li><strong>Expositions d&#039;Automne<\/strong> \u2014 Du 02\/10\/2026 \u00e0 10:00 au 05\/12\/2026 \u00e0 23:59 \u2014 18330 Nan\u00e7ay<\/li>\n              <li><strong>Micro-Folie Alles Gek in Japan!<\/strong> \u2014 Du 08\/10\/2026 \u00e0 10:00 au 20\/11\/2026 \u00e0 23:59 \u2014 45250 Briare<\/li>\n              <li><strong>Tentoonstelling &quot;De Schoonheid Zal de Wereld Redden&quot;<\/strong> \u2014 Du 15\/10\/2026 au 14\/11\/2026 \u00e0 23:59 \u2014 18380 Ennordres<\/li>\n              <li><strong>De Grote Vuren 2026<\/strong> \u2014 Du 16\/10\/2026 au 24\/10\/2026 \u00e0 23:59 \u2014 18250 Henrichemont<\/li>\n              <li><strong>Halloween Parcours in Gien<\/strong> \u2014 Du 16\/10\/2026 au 29\/10\/2026 \u00e0 23:59 \u2014 45500 Gien<\/li>\n              <li><strong>Jeu en famille &quot;Le bateau fant\u00f4me de Briare&quot;<\/strong> \u2014 Du 16\/10\/2026 \u00e0 14:00 au 31\/10\/2026 \u00e0 23:59 \u2014 45250 Briare<\/li>\n              <li><strong>Cours de dessin et de pastel<\/strong> \u2014 Du 22\/10\/2026 \u00e0 14:30 au 22\/10\/2026 \u00e0 23:59 \u2014 45500 Saint-Brisson-sur-Loire<\/li>\n              <li><strong>50e Herfstkunstbeurs<\/strong> \u2014 Du 23\/10\/2026 au 31\/10\/2026 \u00e0 23:59 \u2014 45420 Bonny-sur-Loire<\/li>\n              <li><strong>Tentoonstelling van Bruno Pinard&#039;s Werken<\/strong> \u2014 Du 23\/10\/2026 \u00e0 14:00 au 20\/11\/2026 \u00e0 23:59 \u2014 45360 Ch\u00e2tillon-sur-Loire<\/li>\n              <li><strong>Begeleide Bezoek<\/strong> \u2014 Du 23\/10\/2026 \u00e0 14:30 au 23\/10\/2026 \u00e0 23:59 \u2014 45500 Saint-Gondon<\/li>\n              <li><strong>Creatieve Workshop: &quot;Arbracadabra&quot;<\/strong> \u2014 Du 23\/10\/2026 \u00e0 14:30 au 23\/10\/2026 \u00e0 23:59 \u2014 45500 Gien<\/li>\n              <li><strong>BOOGIE-WOOGIE Jazz Funk CONCERT - Ben TOURY en Johann FIOT<\/strong> \u2014 Du 23\/10\/2026 \u00e0 20:00 au 23\/10\/2026 \u00e0 23:59 \u2014 41600 Chaon<\/li>\n              <li><strong>Optreden van het Voix de Rivendell Koor<\/strong> \u2014 Du 23\/10\/2026 \u00e0 20:30 au 23\/10\/2026 \u00e0 23:59 \u2014 45360 Ch\u00e2tillon-sur-Loire<\/li>\n              <li><strong>Bourse aux oiseaux<\/strong> \u2014 Du 24\/10\/2026 \u00e0 09:00 au 24\/10\/2026 \u00e0 23:59 \u2014 45360 Ch\u00e2tillon-sur-Loire<\/li>\n              <li><strong>Giennois Producentenmarkt<\/strong> \u2014 Du 24\/10\/2026 \u00e0 09:00 au 24\/10\/2026 \u00e0 23:59 \u2014 45500 Poilly-lez-Gien<\/li>\n              <li><strong>Zuurkoolmaaltijd gevolgd door een dans-thee<\/strong> \u2014 Du 24\/10\/2026 \u00e0 12:00 au 24\/10\/2026 \u00e0 23:59 \u2014 45620 Cerdon<\/li>\n              <li><strong>Concert d&#039;automne<\/strong> \u2014 Du 24\/10\/2026 \u00e0 15:00 au 24\/10\/2026 \u00e0 23:59 \u2014 45360 Ch\u00e2tillon-sur-Loire<\/li>\n              <li><strong>Paddenstoelenuitje<\/strong> \u2014 Du 27\/10\/2026 \u00e0 10:00 au 27\/10\/2026 \u00e0 23:59 \u2014 18330 Neuvy-sur-Barangeon<\/li>\n              <li><strong>Geleide rondleiding: &quot;Zoektocht naar snoep&quot; 2026<\/strong> \u2014 Du 27\/10\/2026 \u00e0 14:30 au 27\/10\/2026 \u00e0 23:59 \u2014 45500 Gien<\/li>\n              <li><strong>Nom d&#039;un champignon !<\/strong> \u2014 Du 27\/10\/2026 \u00e0 16:00 au 27\/10\/2026 \u00e0 23:59 \u2014 18330 Neuvy-sur-Barangeon<\/li>\n              <li><strong>Halloween Laser Game<\/strong> \u2014 Du 29\/10\/2026 \u00e0 16:00 au 29\/10\/2026 \u00e0 23:59 \u2014 45500 Gien<\/li>\n              <li><strong>March\u00e9 d&#039;halloween<\/strong> \u2014 Du 29\/10\/2026 \u00e0 16:00 au 29\/10\/2026 \u00e0 23:59 \u2014 45500 Gien<\/li>\n              <li><strong>Halloween \u00e0 Villemurlin<\/strong> \u2014 Du 29\/10\/2026 \u00e0 18:00 au 29\/10\/2026 \u00e0 23:59 \u2014 45600 Villemurlin<\/li>\n              <li><strong>De Nacht van het Vuur<\/strong> \u2014 Du 29\/10\/2026 \u00e0 19:00 au 29\/10\/2026 \u00e0 23:59 \u2014 18240 Santranges<\/li>\n              <li><strong>S\u00e9ance aquafitness sp\u00e9cial Halloween<\/strong> \u2014 Du 29\/10\/2026 \u00e0 19:00 au 29\/10\/2026 \u00e0 23:59 \u2014 45250 Briare<\/li>\n              <li><strong>Halloween op Kasteell Blancafort<\/strong> \u2014 Du 30\/10\/2026 \u00e0 10:00 au 30\/10\/2026 \u00e0 23:59 \u2014 18410 Blancafort<\/li>\n              <li><strong>Halloween<\/strong> \u2014 Du 30\/10\/2026 \u00e0 14:00 au 30\/10\/2026 \u00e0 23:59 \u2014 45420 Bonny-sur-Loire<\/li>\n              <li><strong>Soir\u00e9e Halloween<\/strong> \u2014 Du 30\/10\/2026 \u00e0 16:30 au 30\/10\/2026 \u00e0 23:59 \u2014 45630 Beaulieu-sur-Loire<\/li>\n              <li><strong>Nachtwandeling door de stad<\/strong> \u2014 Du 30\/10\/2026 \u00e0 17:30 au 30\/10\/2026 \u00e0 23:59 \u2014 45500 Gien<\/li>\n              <li><strong>Halloween<\/strong> \u2014 Du 30\/10\/2026 \u00e0 18:00 au 30\/10\/2026 \u00e0 23:59 \u2014 45360 Cernoy-en-Berry<\/li>\n              <li><strong>Halloween detective spel<\/strong> \u2014 Du 30\/10\/2026 \u00e0 18:00 au 30\/10\/2026 \u00e0 23:59 \u2014 18700 Oizon<\/li>\n              <li><strong>XIT LIVE #2 - Halloweenfeest<\/strong> \u2014 Du 30\/10\/2026 \u00e0 18:00 au 30\/10\/2026 \u00e0 23:59 \u2014 18700 Aubigny-sur-N\u00e8re<\/li>\n              <li><strong>Halloweenavond<\/strong> \u2014 Du 30\/10\/2026 \u00e0 19:00 au 30\/10\/2026 \u00e0 23:59 \u2014 45360 Ch\u00e2tillon-sur-Loire<\/li>\n              <li><strong>Zadenruil<\/strong> \u2014 Du 31\/10\/2026 \u00e0 09:00 au 31\/10\/2026 \u00e0 23:59 \u2014 18330 Neuvy-sur-Barangeon<\/li>\n              <li><strong>Tentoonstelling van Alex Pasqualini<\/strong> \u2014 Du 02\/11\/2026 au 30\/12\/2026 \u00e0 23:59 \u2014 18330 Neuvy-sur-Barangeon<\/li>\n              <li><strong>George Sand, 150 jaar moderniteit<\/strong> \u2014 Du 05\/11\/2026 au 27\/11\/2026 \u00e0 23:59 \u2014 18240 Belleville-sur-Loire<\/li>\n              <li><strong>Lokaal Products Markt<\/strong> \u2014 Du 05\/11\/2026 \u00e0 16:00 au 05\/11\/2026 \u00e0 23:59 \u2014 45360 Cernoy-en-Berry<\/li>\n              <li><strong>Geleide tour door de biodiversiteitsmolen<\/strong> \u2014 Du 06\/11\/2026 \u00e0 09:00 au 06\/11\/2026 \u00e0 23:59 \u2014 18330 Neuvy-sur-Barangeon<\/li>\n              <li><strong>Croq\u2019Histoires<\/strong> \u2014 Du 06\/11\/2026 \u00e0 10:30 au 06\/11\/2026 \u00e0 23:59 \u2014 45500 Gien<\/li>\n              <li><strong>Festi&#039;Soupe<\/strong> \u2014 Du 06\/11\/2026 \u00e0 19:00 au 06\/11\/2026 \u00e0 23:59 \u2014 45360 Ch\u00e2tillon-sur-Loire<\/li>\n              <li><strong>Vide-grenier du 11 novembre<\/strong> \u2014 Du 10\/11\/2026 au 10\/11\/2026 \u00e0 23:59 \u2014 45360 Ch\u00e2tillon-sur-Loire<\/li>\n              <li><strong>Concert Le Nouveau Ch\u0153ur<\/strong> \u2014 Du 10\/11\/2026 \u00e0 17:00 au 10\/11\/2026 \u00e0 23:59 \u2014 18410 Argent-sur-Sauldre<\/li>\n              <li><strong>De Londres \u00e0 Edimbourg<\/strong> \u2014 Du 12\/11\/2026 \u00e0 18:30 au 12\/11\/2026 \u00e0 23:59 \u2014 18700 Aubigny-sur-N\u00e8re<\/li>\n              <li><strong>Bourse aux jouets<\/strong> \u2014 Du 13\/11\/2026 \u00e0 14:00 au 18\/12\/2026 \u00e0 23:59 \u2014 45420 Bonny-sur-Loire<\/li>\n              <li><strong>Gourmetmarkt<\/strong> \u2014 Du 13\/11\/2026 \u00e0 14:00 au 13\/11\/2026 \u00e0 23:59 \u2014 18240 Belleville-sur-Loire<\/li>\n              <li><strong>Concert van Sint-Caecilia met de Harmonie van Bonny-sur-Loire<\/strong> \u2014 Du 14\/11\/2026 au 14\/11\/2026 \u00e0 23:59 \u2014 45420 Bonny-sur-Loire<\/li>\n              <li><strong>Cyclo-cross<\/strong> \u2014 Du 14\/11\/2026 \u00e0 13:30 au 14\/11\/2026 \u00e0 23:59 \u2014 45360 Ch\u00e2tillon-sur-Loire<\/li>\n              <li><strong>[Concert] Effervescence &amp; Pop&amp;Choeurs Koor<\/strong> \u2014 Du 14\/11\/2026 \u00e0 15:00 au 14\/11\/2026 \u00e0 23:59 \u2014 18240 Savigny-en-Sancerre<\/li>\n          <\/ul>\n  <\/noscript>\n<\/div>\n\n<div class=\"ea-modal-overlay\" id=\"ea-modal\" hidden>\n  <div class=\"ea-modal\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"ea-modal-title\">\n    <button type=\"button\" class=\"ea-modal-close\" id=\"ea-modal-close\" aria-label=\"Sluiten\">\u00d7<\/button>\n    <div id=\"ea-modal-content\"><\/div>\n  <\/div>\n<\/div>\n\n<script>\n  (function() {\n    var EVENTS = [{\"id\":28,\"name\":\"March\\u00e9 hebdomadaire Aubigny-sur-N\\u00e8re\",\"type\":\"evenements-locaux-358\",\"category\":\"marches-foires\",\"label\":\"Du 31\\\/12\\\/2025 au 30\\\/12\\\/2026 \\u00e0 23:59\",\"start\":\"2025-12-31\",\"end\":\"2026-12-30\",\"start_time\":\"\",\"end_time\":\"\",\"open_start\":false,\"city\":\"18700 Aubigny-sur-N\\u00e8re\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Chaque samedi matin, le march\\u00e9 hebdomadaire d\\u2019Aubigny-sur-N\\u00e8re vous invite \\u00e0 une immersion gourmande et artisanale au c\\u0153ur de cette charmante cit\\u00e9 des Stuarts,  depuis le haut de la rue du Prieur\\u00e9 jusqu'\\u00e0 la place Adrien Arnoux. Entre produits du terroir, rencontres chaleureuses et ambiance pittoresque, ce march\\u00e9 est un incontournable pour les amateurs de saveurs locales et d\\u2019authenticit\\u00e9.\\n\\nLes rues d\\u2019Aubigny-sur-N\\u00e8re s\\u2019animent sous les \\u00e9tals color\\u00e9s des producteurs et artisans locaux. Fromages affin\\u00e9s, charcuteries savoureuses, pains croustillants, fruits et l\\u00e9gumes de saison, miel parfum\\u00e9 et autres douceurs vous attendent pour une exp\\u00e9rience gustative unique.\\n\\nDes parking sont \\u00e0 proximit\\u00e9, permettant d'acc\\u00e9der au march\\u00e9 \\u00e0 pied.\",\"image\":\"\",\"link\":\"\"},{\"id\":32,\"name\":\"Gien Markt - Woensdag\",\"type\":\"evenements-locaux-358\",\"category\":\"markten-beurzen\",\"label\":\"Du 31\\\/12\\\/2025 \\u00e0 08:00 au 30\\\/12\\\/2026 \\u00e0 23:59\",\"start\":\"2025-12-31\",\"end\":\"2026-12-30\",\"start_time\":\"08:00\",\"end_time\":\"\",\"open_start\":false,\"city\":\"45500 Gien\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Iedere woensdagmorgen, op het Place Leclerc, voor het centrum Anne de Beaujeu, is er een heel gezellige markt waar je het belangrijkste van je boodschappen kunt doen: fruit en groenten, vlees, kaas, vis... De kraamhouders zijn blij om hun kwaliteitsproducten en productie te presenteren.\",\"image\":\"\",\"link\":\"https:\\\/\\\/www.mtonmarche.com\\\/marche\\\/212-gien-place-jean-jaures\"},{\"id\":25,\"name\":\"March\\u00e9 de Coullons - Vendredi\",\"type\":\"evenements-locaux-358\",\"category\":\"marches-foires\",\"label\":\"Du 31\\\/12\\\/2025 \\u00e0 08:00 au 30\\\/12\\\/2026 \\u00e0 23:59\",\"start\":\"2025-12-31\",\"end\":\"2026-12-30\",\"start_time\":\"08:00\",\"end_time\":\"\",\"open_start\":false,\"city\":\"45720 Coullons\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"March\\u00e9 tous les vendredis matins sur la place du village\",\"image\":\"\",\"link\":\"https:\\\/\\\/www.mtonmarche.com\\\/marche\\\/236-coullons-place-du-monument\"},{\"id\":39,\"name\":\"Beaulieu-sur-Loire Markt - Woensdag\",\"type\":\"evenements-locaux-358\",\"category\":\"marches-foires\",\"label\":\"Du 31\\\/12\\\/2025 \\u00e0 08:30 au 30\\\/12\\\/2026 \\u00e0 23:59\",\"start\":\"2025-12-31\",\"end\":\"2026-12-30\",\"start_time\":\"08:30\",\"end_time\":\"\",\"open_start\":false,\"city\":\"45630 Ch\\u00e2tillon-sur-Loire\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"De markt vindt plaats op woensdagochtend van 8:30 uur tot 12 uur. Traditionele markt in het hart van de middeleeuwse stad, omgeven door alle benodigde winkels: apotheek, bakkerij, restaurant, caf\\u00e9s... Je vindt hier zuivel, vleeswaren, vlees, groenten en af en toe kleding.\",\"image\":\"\",\"link\":\"https:\\\/\\\/www.mtonmarche.com\\\/marche\\\/209-beaulieu-sur-loire-place-de-l-eglise\"},{\"id\":5,\"name\":\"Briare Markt - Vrijdag\",\"type\":\"evenements-locaux-358\",\"category\":\"markten-beurzen\",\"label\":\"Du 31\\\/12\\\/2025 \\u00e0 08:30 au 30\\\/12\\\/2026 \\u00e0 23:59\",\"start\":\"2025-12-31\",\"end\":\"2026-12-30\",\"start_time\":\"08:30\",\"end_time\":\"\",\"open_start\":false,\"city\":\"45250 Ch\\u00e2tillon-sur-Loire\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"De markt wordt op vrijdagochtenden gehouden van 8:30 tot 12:00 uur. Het Vlooienveld is de plek die je niet mag missen. Lokale producenten verwelkomen je. Op hun kraampjes vind je: fruit en groenten, gevogelte, vis, wijnen, bloemen, tafelgerei... Productieregio: Centre Val de Loire. Producten: Kazen, Fruit en groenten, Vis, Zoutwaren, Vlees, Wijnen, gevogelte. Toegankelijk voor mensen met een beperkte mobiliteit.\",\"image\":\"\",\"link\":\"https:\\\/\\\/www.mtonmarche.com\\\/marche\\\/233-briare-marche-place-du-champ-de-foire\"},{\"id\":33,\"name\":\"Wekelijkse Markt Mery-es-Bois\",\"type\":\"evenements-locaux-358\",\"category\":\"markten-beurzen\",\"label\":\"Du 31\\\/12\\\/2025 \\u00e0 16:00 au 30\\\/12\\\/2026 \\u00e0 23:59\",\"start\":\"2025-12-31\",\"end\":\"2026-12-30\",\"start_time\":\"16:00\",\"end_time\":\"\",\"open_start\":false,\"city\":\"18380 M\\u00e9ry-\\u00e8s-Bois\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Onze lokale ambachtslieden en handelaren kijken ernaar uit u te verwelkomen!\",\"image\":\"\",\"link\":\"\"},{\"id\":24,\"name\":\"Gien Markt - Zaterdag\",\"type\":\"evenements-locaux-358\",\"category\":\"marches-foires\",\"label\":\"Du 13\\\/03\\\/2026 \\u00e0 08:00 au 30\\\/12\\\/2026 \\u00e0 23:59\",\"start\":\"2026-03-13\",\"end\":\"2026-12-30\",\"start_time\":\"08:00\",\"end_time\":\"\",\"open_start\":false,\"city\":\"45500 Gien\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Elke zaterdagochtend op het Place de la Victoire. Gemiddeld 100 handelaren op de markt van Place de la Victoire waar je alle soorten producten kunt vinden, of het nu voedingsmiddelen of fabri\\u00ebksproducten zijn.\",\"image\":\"\",\"link\":\"https:\\\/\\\/www.mtonmarche.com\\\/marche\\\/248-gien-place-de-la-victoire\"},{\"id\":12,\"name\":\"Exposition \\u00c9closion\",\"type\":\"evenements-locaux-358\",\"category\":\"expositions\",\"label\":\"Du 20\\\/03\\\/2026 \\u00e0 14:00 au 31\\\/10\\\/2026 \\u00e0 23:59\",\"start\":\"2026-03-20\",\"end\":\"2026-10-31\",\"start_time\":\"14:00\",\"end_time\":\"\",\"open_start\":false,\"city\":\"18250 Henrichemont\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"La Galerie Le Totem de La Borne accueille l\\u2019exposition \\u00ab \\u00c9closion \\u00bb, qui explore les diff\\u00e9rentes \\u00e9tapes de l\\u2019apparition et de la transformation des formes dans la cr\\u00e9ation artistique. Cette exposition collective r\\u00e9unit les artistes de la collective Les Argil\\u00e9es \\u2014 Livia Dalbouse, Sarah Davidoux, Oph\\u00e9lia Derely, H\\u00e9l\\u00e8ne Foucher et Lila Signolet Bigallet \\u2014 ainsi que \\u00c9lise Poivet et Greky. \\u00c0 travers leurs \\u0153uvres, ces artistes proposent des regards sensibles sur la mati\\u00e8re et le geste cr\\u00e9atif, au c\\u0153ur de la c\\u00e9ramique contemporaine. L\\u2019exposition invite les visiteurs \\u00e0 d\\u00e9couvrir la diversit\\u00e9 des approches et des univers artistiques pr\\u00e9sent\\u00e9s au Totem, lieu d\\u00e9di\\u00e9 \\u00e0 la c\\u00e9ramique et \\u00e0 la cr\\u00e9ation \\u00e0 La Borne.\",\"image\":\"\",\"link\":\"https:\\\/\\\/letotemdelaborne.com\\\/\"},{\"id\":22,\"name\":\"Louiseon Rocard Tentoonstelling\",\"type\":\"evenements-locaux-358\",\"category\":\"tentoonstellingen\",\"label\":\"Du 31\\\/08\\\/2026 au 31\\\/10\\\/2026 \\u00e0 23:59\",\"start\":\"2026-08-31\",\"end\":\"2026-10-31\",\"start_time\":\"\",\"end_time\":\"\",\"open_start\":false,\"city\":\"18250 Neuvy-Deux-Clochers\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"De beeldend kunstenaar Louiseon Rocard biedt een meeslepende ervaring die beelden, objecten en apparaten combineert om te verkennen. Zijn aanpak draait om de figuur van de avatar, beschouwd als een fictieve dubbel en een scheppingshulpmiddel, dat navigatie tussen verschillende media mogelijk maakt. Via kleding-sculpturen, videogot loops en onderzoek in karakterontwerp vraag hij naar begrippen van bescherming en transformatie. Met het Towarian-project wordt de Vespere-toren een zoektochtruimte ge\\u00efnspireerd door rollenspellen, waar gereconstrueerde avatars en artefacten bezoekers begeleiden in een verkenning op de grens tussen hedendaagse kunst en speelse universa.\",\"image\":\"\",\"link\":\"https:\\\/\\\/www.latourdevesvre.fr\\\/\"},{\"id\":16,\"name\":\"Tijdelijke tentoonstelling: R\\u00e9trogaming: terug naar ruimtespelletjes\",\"type\":\"evenements-locaux-358\",\"category\":\"tentoonstellingen\",\"label\":\"Du 31\\\/08\\\/2026 \\u00e0 13:30 au 02\\\/01\\\/2027 \\u00e0 23:59\",\"start\":\"2026-08-31\",\"end\":\"2027-01-02\",\"start_time\":\"13:30\",\"end_time\":\"\",\"open_start\":false,\"city\":\"18330 Nan\\u00e7ay\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"De speelbare R\\u00e9trogaming-tentoonstelling: terug naar ruimtevideo's belooft een meeslepende en boeiende ervaring! Pak de controllers en neem de controle over iconische consoles zoals de legendarische Atari 2600, de klassieke Super Nintendo of de legendarische PlayStation 4.\\n\\nOntworpen voor een generaties-overstijgend publiek, biedt de R\\u00e9trogaming-tentoonstelling een interactieve, educatieve en vriendelijke ervaring.\\n\\nSpelen op Asteroid op een Atari van 1981 of het ontdekken van Star Wars Battlefront II op een PlayStation 4 uit 2017, je begrijpt door middel van experimentatie de evolutie van een media die in Frankrijk en daarbuiten onmisbaar is geworden.\",\"image\":\"\",\"link\":\"http:\\\/\\\/www.poledesetoiles.fr\\\/\"},{\"id\":30,\"name\":\"Tentoonstelling Vassil Ivanoff\",\"type\":\"evenements-locaux-358\",\"category\":\"tentoonstellingen\",\"label\":\"Du 31\\\/08\\\/2026 \\u00e0 14:00 au 10\\\/11\\\/2026 \\u00e0 23:59\",\"start\":\"2026-08-31\",\"end\":\"2026-11-10\",\"start_time\":\"14:00\",\"end_time\":\"\",\"open_start\":false,\"city\":\"18250 Henrichemont\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Het Museum van La Borne benadrukt Vassil Ivanoff (1897-1973) met een retrospectieve tentoonstelling in de dorpskapel. Meer dan 150 werken geven de loopbaan van deze bulgaars-gebore kunstenaar weer, die sinds 1945 in La Borne woont, en is een belangrijke figuur in de keramiek. Deze tentoonstelling biedt een beter inzicht in zijn werk en zijn band met dit gebied dat bekend staat om zijn pottenbakkersvaardigheden. Er wordt ook een boek over de kunstenaar aangeboden.\",\"image\":\"\",\"link\":\"\"},{\"id\":53,\"name\":\"Exposition Roland Sch\\u00e4r\",\"type\":\"evenements-locaux-358\",\"category\":\"expositions\",\"label\":\"Du 31\\\/08\\\/2026 \\u00e0 18:00 au 24\\\/10\\\/2026 \\u00e0 23:59\",\"start\":\"2026-08-31\",\"end\":\"2026-10-24\",\"start_time\":\"18:00\",\"end_time\":\"\",\"open_start\":false,\"city\":\"18260 Vailly-sur-Sauldre\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Cet \\u00e9t\\u00e9, Le Cerf poursuit sa vocation de lieu de rencontres et de d\\u00e9couvertes en ouvrant ses portes \\u00e0 l\\u2019artiste plasticien Roland Sch\\u00e4r.\\n\\nInstall\\u00e9 \\u00e0 Vailly-sur-Sauldre, @rolandschar d\\u00e9veloppe depuis de nombreuses ann\\u00e9es une \\u0153uvre sensible et singuli\\u00e8re, expos\\u00e9e en France comme \\u00e0 l\\u2019international. Son travail puise son inspiration dans les paysages travers\\u00e9s, les mat\\u00e9riaux naturels, les formes organiques et les g\\u00e9om\\u00e9tries qui structurent notre regard\\u2026\",\"image\":\"\",\"link\":\"https:\\\/\\\/lecerfvailly.fr\\\/\"},{\"id\":1,\"name\":\"Exposition Jos\\u00e9 Canon\",\"type\":\"evenements-locaux-358\",\"category\":\"expositions\",\"label\":\"Du 01\\\/09\\\/2026 au 29\\\/10\\\/2026 \\u00e0 23:59\",\"start\":\"2026-09-01\",\"end\":\"2026-10-29\",\"start_time\":\"\",\"end_time\":\"\",\"open_start\":false,\"city\":\"18330 Neuvy-sur-Barangeon\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"S\\u00e9rie noire, photographies\",\"image\":\"\",\"link\":\"\"},{\"id\":21,\"name\":\"Tentoonstelling \\\"Herstel van de Bruggen op het Sauldre-kanaal in Brinon\\\"\",\"type\":\"evenements-locaux-358\",\"category\":\"tentoonstellingen\",\"label\":\"Du 18\\\/09\\\/2026 au 23\\\/10\\\/2026 \\u00e0 23:59\",\"start\":\"2026-09-18\",\"end\":\"2026-10-23\",\"start_time\":\"\",\"end_time\":\"\",\"open_start\":false,\"city\":\"18410 Brinon-sur-Sauldre\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Dompel jezelf onder in de geschiedenis van het Sauldre-kanaal via de tentoonstelling \\\"Herstel van de Bruggen op het Sauldre-kanaal in Brinon\\\". Gepresenteerd in de Maison de la For\\u00eat, benadrukt het restauratiewerk aan deze iconische bouwwerken van het lokale erfgoed.\\n\\nEen perfecte tentoonstelling om de geschiedenis en de schatten van het kanaal dat door Brinon-sur-Sauldre stroomt, op een andere manier te ontdekken.\\n\\nMaak gebruik van deze gelegenheid om de Maison de la For\\u00eat te verkennen en meer te leren over het natuurlijke en culturele erfgoed van Sologne.\",\"image\":\"\",\"link\":\"\"},{\"id\":8,\"name\":\"visites compl\\u00e8tes de l'usine\",\"type\":\"evenements-locaux-358\",\"category\":\"en-famille\",\"label\":\"Du 30\\\/09\\\/2026 \\u00e0 10:00 au 27\\\/10\\\/2026 \\u00e0 23:59\",\"start\":\"2026-09-30\",\"end\":\"2026-10-27\",\"start_time\":\"10:00\",\"end_time\":\"\",\"open_start\":false,\"city\":\"45500 Gien\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Dates : 1, 7, 15, 21 et 28 octobre \\u00e0 9h30\\nTarif : 18\\u20ac\\nR\\u00e9servation obligatoire au 02.38.05.21.06 ou museegien@gien.com\",\"image\":\"\",\"link\":\"https:\\\/\\\/www.gien.com\\\/fr\\\/contact-et-faq-musee\"},{\"id\":4,\"name\":\"Expositions d'Automne\",\"type\":\"evenements-locaux-358\",\"category\":\"expositions\",\"label\":\"Du 02\\\/10\\\/2026 \\u00e0 10:00 au 05\\\/12\\\/2026 \\u00e0 23:59\",\"start\":\"2026-10-02\",\"end\":\"2026-12-05\",\"start_time\":\"10:00\",\"end_time\":\"\",\"open_start\":false,\"city\":\"18330 Nan\\u00e7ay\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"C\\u00e9ramique, estampe, orf\\u00e8vrerie, peinture, dessin, photographie, sculpture, verre : la galerie abrite en permanence plusieurs centaines d'oeuvres s\\u00e9lectionn\\u00e9es avec soin\\n\\nFond\\u00e9e en 1975 par G\\u00e9rard et Sophie Capazza, la galerie a \\u00e9t\\u00e9 reprise il y a onze ans par Laura et Denis Capazza-Durand ayant \\u00e0 c\\u0153ur, avec leur \\u00e9quipe, de partager avec vous leur passion. \\n\\nD\\u00e9couvre ce troisi\\u00e8me cycle d'exposition : \\n- J\\u00e9r\\u00e9mie Lenoir, photographe\\n- Joan Serra, c\\u00e9ramique\\n- Coco T\\u00e9x\\u00e8dre, peinture\\n- Christian Renonciat, sculpture - bois, dans le cadre du festival AR(t)CHIPEL, sur une proposition d'Anne-Laure Chamboissier\",\"image\":\"\",\"link\":\"\"},{\"id\":44,\"name\":\"Micro-Folie Alles Gek in Japan!\",\"type\":\"evenements-locaux-358\",\"category\":\"tentoonstellingen\",\"label\":\"Du 08\\\/10\\\/2026 \\u00e0 10:00 au 20\\\/11\\\/2026 \\u00e0 23:59\",\"start\":\"2026-10-08\",\"end\":\"2026-11-20\",\"start_time\":\"10:00\",\"end_time\":\"\",\"open_start\":false,\"city\":\"45250 Briare\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Ga mee op reis naar het hart van Japan zonder Briare te verlaten! Van 9 oktober tot 21 november 2026 biedt Micro-Folie een rijk en origineel programma rond de Japanse cultuur. Ontdek het digitale museum, tentoonstellingen, spellen, workshops, de wereld van manga en de Japanse levensstijl. Een leuke en culturele ervaring om te delen met familie of vrienden in Ch\\u00e2teau de Trousse- Barri\\u00e8re.\",\"image\":\"\",\"link\":\"\"},{\"id\":23,\"name\":\"Tentoonstelling \\\"De Schoonheid Zal de Wereld Redden\\\"\",\"type\":\"evenements-locaux-358\",\"category\":\"expositions\",\"label\":\"Du 15\\\/10\\\/2026 au 14\\\/11\\\/2026 \\u00e0 23:59\",\"start\":\"2026-10-15\",\"end\":\"2026-11-14\",\"start_time\":\"\",\"end_time\":\"\",\"open_start\":false,\"city\":\"18380 Ennordres\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Wat als kunst je rond een straathoek kwam ontmoeten? Van 16 oktober tot 15 november 2026 organiseert Ennordres de nationale tentoonstelling De Schoonheid Zal de Wereld Redden, gewijd aan \\\"Portret in Kunst\\\".\\n\\nDoor een artistieke wandeling door het dorp tot aan de recreatiebasis van l'Arrachis, ontdek je reproducties van meesterwerken en verken je de culturele mediations die verbonden zijn via QR-codes. Ennordres, de kleinste deelnemende gemeente van deze editie, illustreert volledig de ambitie van het systeem: kunst voor iedereen toegankelijk maken, overal, door te investeren in de openbare ruimte.\\n\\nEen uitnodiging om kunst en je eigen gebied met een nieuwe blik te bekijken!\",\"image\":\"\",\"link\":\"https:\\\/\\\/www.labeautesauveralemonde.fr\\\/\"},{\"id\":10,\"name\":\"De Grote Vuren 2026\",\"type\":\"evenements-locaux-358\",\"category\":\"concerts-musique-festivals\",\"label\":\"Du 16\\\/10\\\/2026 au 24\\\/10\\\/2026 \\u00e0 23:59\",\"start\":\"2026-10-16\",\"end\":\"2026-10-24\",\"start_time\":\"\",\"end_time\":\"\",\"open_start\":false,\"city\":\"18250 Henrichemont\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Van 17 tot en met 25 oktober 2026, dompel jezelf onder in keramiek in La Borne, een wereldwijd bekend dorp voor houtbrand.\\n\\nDemonstraties van bakken, koken en uitladen voor publiek zullen deze nieuwe editie begeleiden, samen met workshops, ateliers, exposities, conferenties, filmvoorstellingen en activiteiten voor volwassenen en kinderen. Ervaren keramisten, beginners en nieuwsgierigen ontmoeten elkaar en delen hun passie in een warme sfeer.\\n\\nOntdek ook de tentoonstellingen van het Centrum voor Hedendaagse Keramiek, de creaties van de dorpskunstenaars, de solidariteitsactie met 1.000 kommen \\u201cGrote Vuren 2026\\u201d met een lokale soep, en een feestavond vol muziek.\\n\\nEen unieke gelegenheid om vakmanschap te ontdekken, kunstenaars te ontmoeten en de viering volledig te ervaren.\",\"image\":\"\",\"link\":\"https:\\\/\\\/www.laborne.org\\\/\"},{\"id\":20,\"name\":\"Halloween Parcours in Gien\",\"type\":\"evenements-locaux-358\",\"category\":\"gezin\",\"label\":\"Du 16\\\/10\\\/2026 au 29\\\/10\\\/2026 \\u00e0 23:59\",\"start\":\"2026-10-16\",\"end\":\"2026-10-29\",\"start_time\":\"\",\"end_time\":\"\",\"open_start\":false,\"city\":\"45500 Gien\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Mythes zijn Gien ontvlucht, waardoor de beschermende wezens verzwakten. Sinds een vloek de prinses in een heks heeft veranderd, is de stad onder haar invloed. Vind de verborgen wezens, los hun raadsels op en breek de vloek.\\n\\nSpelboekje te verkrijgen bij het VVV-kantoor.\\nZelfgeleide route.\\nIn samenwerking met de Giennois Handelaarsunie.\",\"image\":\"\",\"link\":\"\"},{\"id\":38,\"name\":\"Jeu en famille \\\"Le bateau fant\\u00f4me de Briare\\\"\",\"type\":\"evenements-locaux-358\",\"category\":\"en-famille\",\"label\":\"Du 16\\\/10\\\/2026 \\u00e0 14:00 au 31\\\/10\\\/2026 \\u00e0 23:59\",\"start\":\"2026-10-16\",\"end\":\"2026-10-31\",\"start_time\":\"14:00\",\"end_time\":\"\",\"open_start\":false,\"city\":\"45250 Briare\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"\\u00c0 l\\u2019occasion des vacances de la Toussaint, partez \\u00e0 l\\u2019aventure au Mus\\u00e9e des 2 Marines et du Pont-Canal \\u00e0 Briare avec \\u00ab Le bateau fant\\u00f4me de Briare \\u00bb ! Du 17 octobre au 1er novembre 2026, petits et grands sont invit\\u00e9s \\u00e0 mener l\\u2019enqu\\u00eate et \\u00e0 retrouver les pi\\u00e8ces du bateau fant\\u00f4me gr\\u00e2ce \\u00e0 un jeu de d\\u00e9couverte \\u00e0 r\\u00e9aliser en toute autonomie dans le mus\\u00e9e. Une activit\\u00e9 ludique et familiale, accessible d\\u00e8s 4 ans, pour d\\u00e9couvrir le patrimoine autrement dans une atmosph\\u00e8re myst\\u00e9rieuse d\\u2019Halloween. Rendez-vous tous les jours de 14 h \\u00e0 18 h. Gratuit jusqu\\u2019\\u00e0 6 ans inclus. Enfant : 5 \\u20ac ; adulte : 6 \\u20ac.\",\"image\":\"\",\"link\":\"https:\\\/\\\/musee-2-marines.com\\\/\"},{\"id\":6,\"name\":\"Ap\\u00e9ro Lectures - Prix Val de Sully\",\"type\":\"evenements-locaux-358\",\"category\":\"en-famille\",\"label\":\"Du 21\\\/10\\\/2026 \\u00e0 18:00 au 21\\\/10\\\/2026 \\u00e0 23:59\",\"start\":\"2026-10-21\",\"end\":\"2026-10-21\",\"start_time\":\"18:00\",\"end_time\":\"\",\"open_start\":false,\"city\":\"45600 Saint-Aignan-le-Jaillard\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"- par le r\\u00e9seau des biblioth\\u00e8ques du Val de Sully - \\n\\nAp\\u00e9ro lectures sp\\u00e9cial Prix Val de Sully\\nLes b\\u00e9n\\u00e9voles de l'association \\\"Plaisir de lire\\\" de St-Aignan-le-Jaillard vous proposent une discussion sur les lectures des romans et bandes dessin\\u00e9es du prix.\\nLe tout sera suivi d\\u2019un ap\\u00e9ritif dinatoire.\",\"image\":\"\",\"link\":\"\"},{\"id\":26,\"name\":\"Cours de dessin et de pastel\",\"type\":\"evenements-locaux-358\",\"category\":\"en-famille\",\"label\":\"Du 22\\\/10\\\/2026 \\u00e0 14:30 au 22\\\/10\\\/2026 \\u00e0 23:59\",\"start\":\"2026-10-22\",\"end\":\"2026-10-22\",\"start_time\":\"14:30\",\"end_time\":\"\",\"open_start\":false,\"city\":\"45500 Saint-Brisson-sur-Loire\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"l\\u2019Association Culturelle Artistique propose de nouveaux cours de dessin et de pastel \\u00e0 Saint-Brisson-sur-Loire.\\nOuverts \\u00e0 tous les niveaux, ces ateliers sont anim\\u00e9s par Charles-Henri, pastelliste, et se d\\u00e9roulent les vendredis de 14h30 \\u00e0 16h30 \\u00e0 l\\u2019Espace S\\u00e9guier.\\n\\n Infos pratiques :\\nMat\\u00e9riel \\u00e0 pr\\u00e9voir : feuilles de dessin, crayons, pastels\\nTarifs : 80 \\u20ac \\u00e0 l\\u2019ann\\u00e9e ou 10 \\u20ac le cours \\u00e0 l\\u2019unit\\u00e9\",\"image\":\"\",\"link\":\"\"},{\"id\":59,\"name\":\"50e Herfstkunstbeurs\",\"type\":\"evenements-locaux-358\",\"category\":\"expositions\",\"label\":\"Du 23\\\/10\\\/2026 au 31\\\/10\\\/2026 \\u00e0 23:59\",\"start\":\"2026-10-23\",\"end\":\"2026-10-31\",\"start_time\":\"\",\"end_time\":\"\",\"open_start\":false,\"city\":\"45420 Bonny-sur-Loire\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Dompel jezelf onder in de artistieke wereld op de 49e Herfstkunstbeurs van Bonny-sur-Loire, die plaatsvindt van 24 oktober tot 1 november. Deze tentoonstelling, gehouden in de polyvalente zaal, nodigt je uit om werken van diverse lokale artiesten te ontdekken.\\n\\nDe toegang is gratis, zodat je van kunst kunt genieten zonder beperkingen.\\nMis deze gelegenheid niet om gepassioneerde kunstenaars te ontmoeten en je te verwonderen over hun creaties.\\n\\nOf je nu kunstliefhebber bent of gewoon nieuwsgierig, dit evenement belooft een verrijkende en inspirerende ervaring voor iedereen te worden. Kom in groten getale!\",\"image\":\"\",\"link\":\"\"},{\"id\":37,\"name\":\"Tentoonstelling van Bruno Pinard's Werken\",\"type\":\"evenements-locaux-358\",\"category\":\"expositions\",\"label\":\"Du 23\\\/10\\\/2026 \\u00e0 14:00 au 20\\\/11\\\/2026 \\u00e0 23:59\",\"start\":\"2026-10-23\",\"end\":\"2026-11-20\",\"start_time\":\"14:00\",\"end_time\":\"\",\"open_start\":false,\"city\":\"45360 Ch\\u00e2tillon-sur-Loire\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Van 24 oktober tot 21 november presenteert de culturele ruimte van Ch\\u00e2tillon-sur-Loire een tentoonstelling met schilderijen, collages en 3D-installaties van Bruno Pinard. Door zijn werken verkent de kunstenaar vormen, materialen en kleuren om een persoonlijk universum te cre\\u00ebren, gekenmerkt door een voortdurende zoektocht naar evenwicht en uitdrukking. Schilderijen en sculpturen reageren en communiceren in de ruimte, wat een rijk en samenhangend artistiek parcours biedt voor bezoekers. Deze tentoonstelling nodigt uit tot contemplatie en ontdekkingsreis van een gevoelige benadering, waarbij elk kunstwerk ruimte laat voor interpretatie en gevoel. Toegankelijk voor iedereen, is dit culturele evenement een bevoorrechte gelegenheid om het werk van een hedendaagse kunstenaar te ontmoeten in een ruimte gewijd aan creatie en artistieke deeltaking.\",\"image\":\"\",\"link\":\"\"},{\"id\":18,\"name\":\"Begeleide Bezoek\",\"type\":\"evenements-locaux-358\",\"category\":\"gezin\",\"label\":\"Du 23\\\/10\\\/2026 \\u00e0 14:30 au 23\\\/10\\\/2026 \\u00e0 23:59\",\"start\":\"2026-10-23\",\"end\":\"2026-10-23\",\"start_time\":\"14:30\",\"end_time\":\"\",\"open_start\":false,\"city\":\"45500 Saint-Gondon\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Verken Saint-Gondon met Saint-Gondon Historisch Erfgoed om meer te leren over een van de dorpjes in Giennois.\",\"image\":\"\",\"link\":\"\"},{\"id\":11,\"name\":\"Creatieve Workshop: \\\"Arbracadabra\\\"\",\"type\":\"evenements-locaux-358\",\"category\":\"en-famille\",\"label\":\"Du 23\\\/10\\\/2026 \\u00e0 14:30 au 23\\\/10\\\/2026 \\u00e0 23:59\",\"start\":\"2026-10-23\",\"end\":\"2026-10-23\",\"start_time\":\"14:30\",\"end_time\":\"\",\"open_start\":false,\"city\":\"45500 Gien\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"De vooraanstaande magieprofessoren, M\\u00e9lanium en Murielis, hebben besloten hun bezem rusten in het Ch\\u00e2teau-Mus\\u00e9e van Gien voor nieuwe Master classes! Wat staat er op het programma? Een korte herziening van kennis over mysterieuze en\\\/of magische bossen, met praktische oefeningen in het identificeren van boomsoorten (bladeren, vruchten, geuren), gevolgd door een praktische workshop om een \\\"magische\\\" toverstok te personaliseren, gemaakt van een beukennootje! Vanwege hun internationale reputatie en beperkte plaatsen is reserveren verplicht via 02 38 29 81 46 of per e-mail. Jonge toverspreuken en heksen worden uitgenodigd in kostuum te komen. Kind -7 jaar: \\u20ac3 \\\/ Kind +7 jaar: \\u20ac8 \\\/ Volwassene: \\u20ac10. Data: 17, 18, 24, 26 oktober 2026 om 14:30 uur.\",\"image\":\"\",\"link\":\"https:\\\/\\\/chateaumuseegien.fr\\\/\"},{\"id\":61,\"name\":\"BOOGIE-WOOGIE Jazz Funk CONCERT - Ben TOURY en Johann FIOT\",\"type\":\"evenements-locaux-358\",\"category\":\"concerts-musique-festivals\",\"label\":\"Du 23\\\/10\\\/2026 \\u00e0 20:00 au 23\\\/10\\\/2026 \\u00e0 23:59\",\"start\":\"2026-10-23\",\"end\":\"2026-10-23\",\"start_time\":\"20:00\",\"end_time\":\"\",\"open_start\":false,\"city\":\"41600 Chaon\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Zaterdag 24 oktober om 20:30 uur geven Ben TOURY en Johann FIOT, twee musici van de band Cocodrile Gombo, een concert in de Maison du Braconnage.\\nBen TOURY op piano en Johann FIOT op drums\\nConcert in verschillende stijlen zoals blues, boogie-woogie, jazz, funk, klassieke muziek, ska en wereldmuziek.\\nVergeet niet te reserveren om de organisatie van deze avond te vergemakkelijken via amiss@maisondubraconnage.fr of 06 21 14 39 20\\nVoel je vrij een bericht te achterlaten, we bellen je zo snel mogelijk terug.\\nVolwassenen \\u20ac12 & kinderen onder 12 \\u20ac8\\nKaartverkoop begint om 19:53.\",\"image\":\"\",\"link\":\"\"},{\"id\":40,\"name\":\"Optreden van het Voix de Rivendell Koor\",\"type\":\"evenements-locaux-358\",\"category\":\"concerts-musique-festivals\",\"label\":\"Du 23\\\/10\\\/2026 \\u00e0 20:30 au 23\\\/10\\\/2026 \\u00e0 23:59\",\"start\":\"2026-10-23\",\"end\":\"2026-10-23\",\"start_time\":\"20:30\",\"end_time\":\"\",\"open_start\":false,\"city\":\"45360 Ch\\u00e2tillon-sur-Loire\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Laat je betoveren door het Vocaal Ensemble \\u00ab Les Voix de Rivendell \\u00bb, geleid door Jeremy Reynolds. Op zaterdag 24 oktober 2026 om 20:30 uur wordt de Saint-Mauricekerk in Ch\\u00e2tillon-sur-Loire getransformeerd in een magische setting voor een avond vol emotie en verwondering. Een concert georganiseerd door de gemeente, als onderdeel van het culturele seizoen van Loiret \\u00ab En sc\\u00e8ne! \\u00bb, met steun van het Departement. Gratis toegang: kom en deel dit muzikale moment!\",\"image\":\"\",\"link\":\"\"},{\"id\":17,\"name\":\"Bourse aux oiseaux\",\"type\":\"evenements-locaux-358\",\"category\":\"expositions\",\"label\":\"Du 24\\\/10\\\/2026 \\u00e0 09:00 au 24\\\/10\\\/2026 \\u00e0 23:59\",\"start\":\"2026-10-24\",\"end\":\"2026-10-24\",\"start_time\":\"09:00\",\"end_time\":\"\",\"open_start\":false,\"city\":\"45360 Ch\\u00e2tillon-sur-Loire\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Le 25 octobre, le Centre socio-culturel de Ch\\u00e2tillon-sur-Loire accueille la bourse aux oiseaux organis\\u00e9e par les Amis des Oiseaux du Giennois. Un \\u00e9v\\u00e9nement unique pour admirer une grande vari\\u00e9t\\u00e9 d'oiseaux exotiques, \\u00e0 becs droits et crochus, pr\\u00e9sent\\u00e9s par des \\u00e9leveurs passionn\\u00e9s. Un moment id\\u00e9al pour d\\u00e9couvrir de magnifiques esp\\u00e8ces, \\u00e9changer des conseils avec des sp\\u00e9cialistes et, pourquoi pas, repartir avec un nouvel ami \\u00e0 plumes. Une journ\\u00e9e parfaite pour les amoureux de la nature et les curieux de tous \\u00e2ges. L'occasion de s'immerger dans l'univers fascinant de l'ornithologie et de soutenir la pr\\u00e9servation de ces animaux extraordinaires. Entr\\u00e9e ouverte \\u00e0 tous, dans une ambiance conviviale.\",\"image\":\"\",\"link\":\"https:\\\/\\\/aogb45.fr\\\/\"},{\"id\":41,\"name\":\"Giennois Producentenmarkt\",\"type\":\"evenements-locaux-358\",\"category\":\"marches-foires\",\"label\":\"Du 24\\\/10\\\/2026 \\u00e0 09:00 au 24\\\/10\\\/2026 \\u00e0 23:59\",\"start\":\"2026-10-24\",\"end\":\"2026-10-24\",\"start_time\":\"09:00\",\"end_time\":\"\",\"open_start\":false,\"city\":\"45500 Poilly-lez-Gien\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Ontdek een lokale markt met lokale producenten en regionale producten:\\nFruit en groenten, vlees, kaas, vis... \\n\\nDe handelaren presenteren graag hun kwaliteitsproducten en lokale productie.\",\"image\":\"\",\"link\":\"https:\\\/\\\/www.facebook.com\\\/share\\\/AfvCHABDxkTzquJV\\\/\"},{\"id\":19,\"name\":\"Zuurkoolmaaltijd gevolgd door een dans-thee\",\"type\":\"evenements-locaux-358\",\"category\":\"gezin\",\"label\":\"Du 24\\\/10\\\/2026 \\u00e0 12:00 au 24\\\/10\\\/2026 \\u00e0 23:59\",\"start\":\"2026-10-24\",\"end\":\"2026-10-24\",\"start_time\":\"12:00\",\"end_time\":\"\",\"open_start\":false,\"city\":\"45620 Cerdon\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"- door Les Loisirs Solognots - \\n\\nZuurkoolmaaltijd\\nGefolgd door een dans-thee uitgevoerd door het orkest Jean-Fran\\u00e7ois Carcagno\",\"image\":\"\",\"link\":\"\"},{\"id\":2,\"name\":\"Concert d'automne\",\"type\":\"evenements-locaux-358\",\"category\":\"concerts-musique-festivals\",\"label\":\"Du 24\\\/10\\\/2026 \\u00e0 15:00 au 24\\\/10\\\/2026 \\u00e0 23:59\",\"start\":\"2026-10-24\",\"end\":\"2026-10-24\",\"start_time\":\"15:00\",\"end_time\":\"\",\"open_start\":false,\"city\":\"45360 Ch\\u00e2tillon-sur-Loire\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Venez c\\u00e9l\\u00e9brer l\\u2019automne en musique avec l\\u2019Harmonie de Ch\\u00e2tillon-sur-Loire lors d\\u2019un concert organis\\u00e9 le dimanche 25 octobre \\u00e0 15 h, \\u00e0 l\\u2019\\u00e9glise Saint -Am\\u00e2tre de Pierrefitte-\\u00e8s-Bois. Dans le cadre chaleureux et patrimonial de l\\u2019\\u00e9glise, profitez d\\u2019un moment musical convivial plac\\u00e9 sous le signe du partage et de la d\\u00e9couverte. L\\u2019entr\\u00e9e est libre, avec une participation au chapeau. Les b\\u00e9n\\u00e9fices de cette manifestation seront int\\u00e9gralement destin\\u00e9s \\u00e0 la restauration de l\\u2019\\u00e9glise, permettant ainsi de contribuer \\u00e0 la pr\\u00e9servation de ce patrimoine local. Un rendez-vous musical et solidaire ouvert \\u00e0 tous !\",\"image\":\"\",\"link\":\"\"},{\"id\":29,\"name\":\"Paddenstoelenuitje\",\"type\":\"evenements-locaux-358\",\"category\":\"gezin\",\"label\":\"Du 27\\\/10\\\/2026 \\u00e0 10:00 au 27\\\/10\\\/2026 \\u00e0 23:59\",\"start\":\"2026-10-27\",\"end\":\"2026-10-27\",\"start_time\":\"10:00\",\"end_time\":\"\",\"open_start\":false,\"city\":\"18330 Neuvy-sur-Barangeon\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Op het Mycelium-pad\",\"image\":\"\",\"link\":\"\"},{\"id\":3,\"name\":\"Geleide rondleiding: \\\"Zoektocht naar snoep\\\" 2026\",\"type\":\"evenements-locaux-358\",\"category\":\"en-famille\",\"label\":\"Du 27\\\/10\\\/2026 \\u00e0 14:30 au 27\\\/10\\\/2026 \\u00e0 23:59\",\"start\":\"2026-10-27\",\"end\":\"2026-10-27\",\"start_time\":\"14:30\",\"end_time\":\"\",\"open_start\":false,\"city\":\"45500 Gien\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"28, 29, 30 en 31 oktober 2026 om 14:30 uur!\\nDe barones van Dra\\u00ebck, meedogenloze wolvenjager uit de 18e eeuw, spookt nu door de gangen van het museum! Haar ondeugende geest heeft besloten een vloek te werpen op de snoepvoorraad van het Halloween-kasteel-museum, en deze ergens in de enorme woning te verstoppen! Maar alles is nog niet verloren. Vergezeld door de vriendelijke heks, M\\u00e9lanium de mischievous, kunnen de dapperste, slimste en listigste kinderen de betovering breken en v\\u00f3\\u00f3r middernacht de zoete schat vinden voordat deze voor altijd verdwijnt! We nodigen onze snoepjagers uit om verkleed te komen! Plaatsen zijn beperkt, reserveren is verplicht via 02 38 29 81 46 of per e-mail! Voor kinderen vanaf 6 jaar. Kind - 7 jaar: \\u20ac0 \\\/ Kind + 7 jaar \\\/ Volwassenen: \\u20ac10.\",\"image\":\"\",\"link\":\"https:\\\/\\\/www.chateaumuseegien.fr\\\/\"},{\"id\":27,\"name\":\"Nom d'un champignon !\",\"type\":\"evenements-locaux-358\",\"category\":\"en-famille\",\"label\":\"Du 27\\\/10\\\/2026 \\u00e0 16:00 au 27\\\/10\\\/2026 \\u00e0 23:59\",\"start\":\"2026-10-27\",\"end\":\"2026-10-27\",\"start_time\":\"16:00\",\"end_time\":\"\",\"open_start\":false,\"city\":\"18330 Neuvy-sur-Barangeon\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"D\\u00e9couvrez le monde fascinant des champignons. Qui sont-ils ? Comment les reconna\\u00eetre ? O\\u00f9 poussent-ils ? Leur lien avec les arbres. Fabrication d'un m\\u00e9mo champignons\",\"image\":\"\",\"link\":\"\"},{\"id\":48,\"name\":\"Halloween Laser Game\",\"type\":\"evenements-locaux-358\",\"category\":\"en-famille\",\"label\":\"Du 29\\\/10\\\/2026 \\u00e0 16:00 au 29\\\/10\\\/2026 \\u00e0 23:59\",\"start\":\"2026-10-29\",\"end\":\"2026-10-29\",\"start_time\":\"16:00\",\"end_time\":\"\",\"open_start\":false,\"city\":\"45500 Gien\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"De Gienois Commerci\\u00eble Unie nodigt je uit om op vrijdag 30 oktober, van 16.00 tot 21.00 uur, gratis deel te nemen aan een Laser Game activiteit op het Jean-Jaur\\u00e8s-plein in Gien.\\n\\nEen leuke en dynamische activiteit, toegankelijk vanaf 8 jaar, om samen plezier te delen met familie of vrienden!\",\"image\":\"\",\"link\":\"\"},{\"id\":54,\"name\":\"March\\u00e9 d'halloween\",\"type\":\"evenements-locaux-358\",\"category\":\"en-famille\",\"label\":\"Du 29\\\/10\\\/2026 \\u00e0 16:00 au 29\\\/10\\\/2026 \\u00e0 23:59\",\"start\":\"2026-10-29\",\"end\":\"2026-10-29\",\"start_time\":\"16:00\",\"end_time\":\"\",\"open_start\":false,\"city\":\"45500 Gien\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"La Ville de Gien vous donne rendez-vous le vendredi 30 octobre, d\\u00e8s 16h, sur la place Jean-Jaur\\u00e8s, pour un march\\u00e9 plac\\u00e9 sous le signe d\\u2019Halloween !\\n\\nUn stand de maquillage sera propos\\u00e9 sur place pour permettre aux petits et grands de se mettre dans l\\u2019ambiance.\\n\\n\\u00c0 18h, participez au grand d\\u00e9fil\\u00e9 d\\u00e9guis\\u00e9 et venez partager un moment festif et convivial en famille ou entre amis !\",\"image\":\"\",\"link\":\"\"},{\"id\":52,\"name\":\"Halloween \\u00e0 Villemurlin\",\"type\":\"evenements-locaux-358\",\"category\":\"en-famille\",\"label\":\"Du 29\\\/10\\\/2026 \\u00e0 18:00 au 29\\\/10\\\/2026 \\u00e0 23:59\",\"start\":\"2026-10-29\",\"end\":\"2026-10-29\",\"start_time\":\"18:00\",\"end_time\":\"\",\"open_start\":false,\"city\":\"45600 Villemurlin\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"- par la Municipalit\\u00e9 - \\n\\nD\\u00e9part Place de l'\\u00e9glise \\nChaque parent est responsable de son\\\/ses enfant(s)\",\"image\":\"\",\"link\":\"\"},{\"id\":43,\"name\":\"De Nacht van het Vuur\",\"type\":\"evenements-locaux-358\",\"category\":\"gezin\",\"label\":\"Du 29\\\/10\\\/2026 \\u00e0 19:00 au 29\\\/10\\\/2026 \\u00e0 23:59\",\"start\":\"2026-10-29\",\"end\":\"2026-10-29\",\"start_time\":\"19:00\",\"end_time\":\"\",\"open_start\":false,\"city\":\"18240 Santranges\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Voor het tweede jaar organiseert Santranges het brandstapel. \\nKom deze vijandige sfeer, tovenaars en betoveraars ontdekken...\\nLampionnedaling, animaties en toverspreuken.\\nDrankjes en eten ter plaatse!\",\"image\":\"\",\"link\":\"\"},{\"id\":0,\"name\":\"S\\u00e9ance aquafitness sp\\u00e9cial Halloween\",\"type\":\"evenements-locaux-358\",\"category\":\"en-famille\",\"label\":\"Du 29\\\/10\\\/2026 \\u00e0 19:00 au 29\\\/10\\\/2026 \\u00e0 23:59\",\"start\":\"2026-10-29\",\"end\":\"2026-10-29\",\"start_time\":\"19:00\",\"end_time\":\"\",\"open_start\":false,\"city\":\"45250 Briare\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Pr\\u00e9parez-vous \\u00e0 vivre une soir\\u00e9e sportive et ensorcelante \\u00e0 la piscine L\\u2019\\u00cele Verte de Briare ! Le vendredi 30 octobre 2026 \\u00e0 19 h, participez \\u00e0 une s\\u00e9ance d\\u2019aquafitness sp\\u00e9ciale Halloween, plac\\u00e9e sous le signe de l\\u2019\\u00e9nergie, du plaisir et des frissons. Dans une ambiance festive aux couleurs d\\u2019Halloween, venez vous d\\u00e9penser dans l\\u2019eau tout en profitant d\\u2019un moment original et convivial. Pour l\\u2019occasion, b\\u00e9n\\u00e9ficiez d\\u2019un tarif sp\\u00e9cial de 10 \\u20ac. Pensez \\u00e0 r\\u00e9server votre place sur le site lilleverte.fr ou par t\\u00e9l\\u00e9phone au 02 38 31 26 87. Enfilez votre tenue de sport et plongez dans l\\u2019ambiance !\",\"image\":\"\",\"link\":\"http:\\\/\\\/liveverte.fr\\\/\"},{\"id\":42,\"name\":\"Halloween op Kasteell Blancafort\",\"type\":\"evenements-locaux-358\",\"category\":\"en-famille\",\"label\":\"Du 30\\\/10\\\/2026 \\u00e0 10:00 au 30\\\/10\\\/2026 \\u00e0 23:59\",\"start\":\"2026-10-30\",\"end\":\"2026-10-30\",\"start_time\":\"10:00\",\"end_time\":\"\",\"open_start\":false,\"city\":\"18410 Blancafort\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Kasteel Blancafort viert Halloween op 31 oktober 2026 met een leuke activiteit voor kinderen.\\n\\nZoek naar 7 monsters die verstopt zijn in het park van het kasteel en ontdek het magische woord dat je een beloning geeft. Een wedstrijd voltooit het avontuur: deelnemers mogen proberen het gewicht van een kom snoep te raden. De activiteit vindt plaats van 10:00 tot 17:00 uur. De kostprijs is \\u20ac2 per kind tot 18 jaar, en de toegang is gratis voor begeleiders. Elk kind moet worden begeleid door een volwassene. Aangezien de prijzen beperkt zijn, is reserveren niet nodig.\\n\\nTussen mysteries, raadsels, grappige monsters en lekkernijen, kom een magisch gezinsmoment delen in een uitzonderlijke omgeving!\",\"image\":\"\",\"link\":\"https:\\\/\\\/www.facebook.com\\\/chateaublancafort\"},{\"id\":47,\"name\":\"Halloween\",\"type\":\"evenements-locaux-358\",\"category\":\"en-famille\",\"label\":\"Du 30\\\/10\\\/2026 \\u00e0 14:00 au 30\\\/10\\\/2026 \\u00e0 23:59\",\"start\":\"2026-10-30\",\"end\":\"2026-10-30\",\"start_time\":\"14:00\",\"end_time\":\"\",\"open_start\":false,\"city\":\"45420 Bonny-sur-Loire\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Vanaf 14.00 uur, doe mee aan de activiteit \\\"Zaag\\u2019Trouille-vertel Het!\\\" met pompoen snijden, gevolgd om 16.30 uur door een workshop soep maken. Make-up voor jong en oud, grote spellen met Ludomobile en andere activiteiten zullen ook het middagprogramma kleurrijk maken.\\n\\nOm 18.30 uur, maak je klaar voor de vertoning van S.O.S. Ghosts, vergezeld van een inbegrepen maaltijd. Daarna, om 20.00 uur, doe mee aan \\\"De Ronde van de R\\u00f4deurs,\\\" een snoepjacht om de avond af te sluiten.\\n\\nZaterdag 31 oktober 2026, van 14.00 tot 21.00 uur\\n1 rue de Bic\\u00eatre \\u2013 Bonny-sur-Loire\\nTarief: 5 \\u20ac per gezin\\n\\nKom verkleed en geniet van een gezellige familiedag.\",\"image\":\"\",\"link\":\"\"},{\"id\":55,\"name\":\"Soir\\u00e9e Halloween\",\"type\":\"evenements-locaux-358\",\"category\":\"animations-locales\",\"label\":\"Du 30\\\/10\\\/2026 \\u00e0 16:30 au 30\\\/10\\\/2026 \\u00e0 23:59\",\"start\":\"2026-10-30\",\"end\":\"2026-10-30\",\"start_time\":\"16:30\",\"end_time\":\"\",\"open_start\":false,\"city\":\"45630 Beaulieu-sur-Loire\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Les sapeurs-pompiers de Beaulieu-sur-Loire vous invitent \\u00e0 leur grande Soir\\u00e9e Halloween, le samedi 31 octobre 2026, de 16h30 \\u00e0 23h, \\u00e0 la salle des f\\u00eates de la commune. Petits et grands pourront participer \\u00e0 de nombreuses animations : une chasse aux bonbons pour les enfants, un concours de d\\u00e9guisement pour faire parler son imagination et ses talents de couturier, ainsi qu'une pes\\u00e9e de citrouille pour tenter de deviner son poids. Pour se restaurer et se d\\u00e9salt\\u00e9rer, un food-truck et une buvette seront sur place tout au long de la soir\\u00e9e. Pensez \\u00e0 ressortir vos costumes les plus effrayants pour une soir\\u00e9e conviviale, entre frissons et bonne humeur !\",\"image\":\"\",\"link\":\"\"},{\"id\":49,\"name\":\"Nachtwandeling door de stad\",\"type\":\"evenements-locaux-358\",\"category\":\"en-famille\",\"label\":\"Du 30\\\/10\\\/2026 \\u00e0 17:30 au 30\\\/10\\\/2026 \\u00e0 23:59\",\"start\":\"2026-10-30\",\"end\":\"2026-10-30\",\"start_time\":\"17:30\",\"end_time\":\"\",\"open_start\":false,\"city\":\"45500 Gien\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Het Toeristenbureau van Gien nodigt je uit om de stad op een andere manier te ontdekken, bij het licht van je zaklamp, op zaterdag 31 oktober om 17:30 uur.\\n\\nLaat je 1 uur en 30 minuten lang begeleiden door de straten van Gien en duik in een wereld vol mythes, legendes en mysterieuze verhalen.\\n\\nReserveren verplicht.\\n\\nKom met je zaklamp.\",\"image\":\"\",\"link\":\"\"},{\"id\":9,\"name\":\"Halloween\",\"type\":\"evenements-locaux-358\",\"category\":\"en-famille\",\"label\":\"Du 30\\\/10\\\/2026 \\u00e0 18:00 au 30\\\/10\\\/2026 \\u00e0 23:59\",\"start\":\"2026-10-30\",\"end\":\"2026-10-30\",\"start_time\":\"18:00\",\"end_time\":\"\",\"open_start\":false,\"city\":\"45360 Cernoy-en-Berry\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Venez c\\u00e9l\\u00e9brer Halloween \\u00e0 Cernoy-en-Berry le 31 octobre \\u00e0 partir de 18h pour une soir\\u00e9e inoubliable ! La salle des f\\u00eates se transformera en un lieu de f\\u00eate o\\u00f9 petits et grands pourront s'amuser et se faire peur. Au programme, une boum party anim\\u00e9e pour faire danser tous les monstres et sorci\\u00e8res pr\\u00e9sents.\\n\\nParticipez \\u00e0 la chasse aux bonbons, o\\u00f9 les enfants pourront parcourir les lieux \\u00e0 la recherche de douceurs sucr\\u00e9es. N'oubliez pas de rev\\u00eatir vos plus beaux costumes pour participer au d\\u00e9fil\\u00e9 hant\\u00e9 et impressionner tous les spectateurs.\\n\\nDes stands de buvette et de restauration seront disponibles sur place pour vous sustenter. Cet \\u00e9v\\u00e9nement promet une ambiance conviviale et festive, id\\u00e9ale pour partager des moments m\\u00e9morables en famille ou entre amis.\",\"image\":\"\",\"link\":\"\"},{\"id\":51,\"name\":\"Halloween detective spel\",\"type\":\"evenements-locaux-358\",\"category\":\"en-famille\",\"label\":\"Du 30\\\/10\\\/2026 \\u00e0 18:00 au 30\\\/10\\\/2026 \\u00e0 23:59\",\"start\":\"2026-10-30\",\"end\":\"2026-10-30\",\"start_time\":\"18:00\",\"end_time\":\"\",\"open_start\":false,\"city\":\"18700 Oizon\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Bij gelegenheid van Halloween nodigen de verenigingen La Grange en La Guilde du Nouv\\u00e8u je uit om het onderzoek te leiden in Breuz\\u00e9, Oizon!\\n\\nMaar wie heeft Perceval vermoord? Het is aan jou om het te ontdekken\\u2026 Met je zaklamp ga je op pad om de dorpelingen van Muton Noir te ontmoeten en aanwijzingen te verzamelen die je helpen om deze mysterieuze zaak op te lossen. Twee sessies worden voorgesteld op zaterdag 31 oktober om 16.00 en 18.00 uur. Het onderzoek gebeurt op reservering en is toegankelijk voor kinderen vanaf 12 jaar vergezeld.\\n\\nNeem een waterfles en een zaklamp mee voor dit nachtelijke avontuur vol mysterie!\",\"image\":\"\",\"link\":\"\"},{\"id\":31,\"name\":\"XIT LIVE #2 - Halloweenfeest\",\"type\":\"evenements-locaux-358\",\"category\":\"concerten-muziek-festivals\",\"label\":\"Du 30\\\/10\\\/2026 \\u00e0 18:00 au 30\\\/10\\\/2026 \\u00e0 23:59\",\"start\":\"2026-10-30\",\"end\":\"2026-10-30\",\"start_time\":\"18:00\",\"end_time\":\"\",\"open_start\":false,\"city\":\"18700 Aubigny-sur-N\\u00e8re\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"BANANE METALIK: Frans band die Gore\\u2019n\\u2019Roll speelt, een mix van rock\\u2019n\\u2019roll en punk.\\n\\nLES VILAINS CLOWNS: Meer dan 25 jaar wild rocken met een mengeling van hard, punk en circus.\\n\\nHORROR ZOMBIES SHOW: Een mix van psychobilly, rock\\u2019n\\u2019roll en punk met rauwe energie.\\n\\nBLATOIDEA: Blatoidea brengt snelle, ruige en directe punk rock.\\n\\nOrganisatie door XIT Asso\",\"image\":\"\",\"link\":\"https:\\\/\\\/www.facebook.com\\\/profile.php?id=61573766295557\"},{\"id\":60,\"name\":\"Halloweenavond\",\"type\":\"evenements-locaux-358\",\"category\":\"en-famille\",\"label\":\"Du 30\\\/10\\\/2026 \\u00e0 19:00 au 30\\\/10\\\/2026 \\u00e0 23:59\",\"start\":\"2026-10-30\",\"end\":\"2026-10-30\",\"start_time\":\"19:00\",\"end_time\":\"\",\"open_start\":false,\"city\":\"45360 Ch\\u00e2tillon-sur-Loire\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Op vrijdag 31 oktober 2026 vanaf 19.00 uur nodigt de vereniging Les Pr\\u00e9sF\\u00eatards je uit om Halloween te vieren in het Sociaal-Cultureel Centrum van Ch\\u00e2tillon-sur-Loire. De avond begint met de show \\u00ab Het Spookhuis \\u00bb, een mysterieuze wereld vol verrassingen die jong en oud zal bekoren. Om de sfeer compleet te maken, stelt een grime-workshop kinderen in staat zich te transformeren in enge of fantastische wezens, en een loterij zal het feest opvrolijken met veel prijzen. Ter plaatse kunt u genieten van een drankpost en een gezellige catering met pannenkoeken en lekkernijen. De toegang kost \\u20ac2 per persoon, voor een gezinsvriendelijke en feestelijke avond die je niet mag missen. Informatie via 06 38 84 47 23.\",\"image\":\"\",\"link\":\"\"},{\"id\":45,\"name\":\"Zadenruil\",\"type\":\"evenements-locaux-358\",\"category\":\"kringloopmarkten-en-garageverkopen\",\"label\":\"Du 31\\\/10\\\/2026 \\u00e0 09:00 au 31\\\/10\\\/2026 \\u00e0 23:59\",\"start\":\"2026-10-31\",\"end\":\"2026-10-31\",\"start_time\":\"09:00\",\"end_time\":\"\",\"open_start\":false,\"city\":\"18330 Neuvy-sur-Barangeon\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Ben je op zoek naar zaden voor je aanplantingen in 2027? Zaden om te delen? Kom naar het marktplein om onze zaden uit de tuin van de molenaar op te halen.\",\"image\":\"\",\"link\":\"\"},{\"id\":62,\"name\":\"Tentoonstelling van Alex Pasqualini\",\"type\":\"evenements-locaux-358\",\"category\":\"tentoonstellingen\",\"label\":\"Du 02\\\/11\\\/2026 au 30\\\/12\\\/2026 \\u00e0 23:59\",\"start\":\"2026-11-02\",\"end\":\"2026-12-30\",\"start_time\":\"\",\"end_time\":\"\",\"open_start\":false,\"city\":\"18330 Neuvy-sur-Barangeon\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Schilderijen\",\"image\":\"\",\"link\":\"\"},{\"id\":63,\"name\":\"George Sand, 150 jaar moderniteit\",\"type\":\"evenements-locaux-358\",\"category\":\"expositions\",\"label\":\"Du 05\\\/11\\\/2026 au 27\\\/11\\\/2026 \\u00e0 23:59\",\"start\":\"2026-11-05\",\"end\":\"2026-11-27\",\"start_time\":\"\",\"end_time\":\"\",\"open_start\":false,\"city\":\"18240 Belleville-sur-Loire\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"2026 markeert de 150e verjaardag van het overlijden van George Sand, een belangrijke figuur uit de 19e eeuw. Ter gelegenheid hiervan wordt een reizende tentoonstelling georganiseerd door het George Sand Museum en de Zwarte Vallei om haar werk te vieren en haar literaire, artistieke en politieke nalatenschap te herontdekken.\",\"image\":\"\",\"link\":\"\"},{\"id\":50,\"name\":\"Lokaal Products Markt\",\"type\":\"evenements-locaux-358\",\"category\":\"marches-foires\",\"label\":\"Du 05\\\/11\\\/2026 \\u00e0 16:00 au 05\\\/11\\\/2026 \\u00e0 23:59\",\"start\":\"2026-11-05\",\"end\":\"2026-11-05\",\"start_time\":\"16:00\",\"end_time\":\"\",\"open_start\":false,\"city\":\"45360 Cernoy-en-Berry\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Mis de Lokale Producentenmarkt in Cernoy-en-Berry op 5 juni niet, een cruciale gebeurtenis voor liefhebbers van lokale en authentieke producten! Ontmoet lokale ambachtslieden en producenten die hun specialiteiten presenteren. Een geweldige gelegenheid om onze unieke smaken te ontdekken, je mandje te vullen met lekkernijen en het lokale vakmanschap te ondersteunen. Geniet van de warme en gezellige sfeer van deze markt, perfect om uit te wisselen, te delen en een fijne tijd te hebben. Met familie of vrienden, vul je tas met lekkernijen en idee\\u00ebn voor je maaltijden!\",\"image\":\"\",\"link\":\"\"},{\"id\":14,\"name\":\"Geleide tour door de biodiversiteitsmolen\",\"type\":\"evenements-locaux-358\",\"category\":\"gezin\",\"label\":\"Du 06\\\/11\\\/2026 \\u00e0 09:00 au 06\\\/11\\\/2026 \\u00e0 23:59\",\"start\":\"2026-11-06\",\"end\":\"2026-11-06\",\"start_time\":\"09:00\",\"end_time\":\"\",\"open_start\":false,\"city\":\"18330 Neuvy-sur-Barangeon\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Geleide rondleidingen met ontvangst van koffie en thee.\",\"image\":\"\",\"link\":\"\"},{\"id\":13,\"name\":\"Croq\\u2019Histoires\",\"type\":\"evenements-locaux-358\",\"category\":\"gezin\",\"label\":\"Du 06\\\/11\\\/2026 \\u00e0 10:30 au 06\\\/11\\\/2026 \\u00e0 23:59\",\"start\":\"2026-11-06\",\"end\":\"2026-11-06\",\"start_time\":\"10:30\",\"end_time\":\"\",\"open_start\":false,\"city\":\"45500 Gien\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Een niet te missen evenement op de eerste zaterdagen van de maand in de mediatheek van Gien voor kinderen vanaf 4 jaar.\",\"image\":\"\",\"link\":\"\"},{\"id\":15,\"name\":\"Festi'Soupe\",\"type\":\"evenements-locaux-358\",\"category\":\"gezin\",\"label\":\"Du 06\\\/11\\\/2026 \\u00e0 19:00 au 06\\\/11\\\/2026 \\u00e0 23:59\",\"start\":\"2026-11-06\",\"end\":\"2026-11-06\",\"start_time\":\"19:00\",\"end_time\":\"\",\"open_start\":false,\"city\":\"45360 Ch\\u00e2tillon-sur-Loire\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Festi\\u2019Soupe, georganiseerd door de vereniging Les Locaux s\\u2019Motivent.\\nOp zaterdag 7 november vanaf 19:00 uur in het cultureel centrum van Ch\\u00e2tillon-sur-Loire: een wedstrijd voor de beste soep en de mooiste stand, kleine catering, een concert en een open podium. Entree is \\u20ac5, gratis voor onder de 12. Meer info en inschrijvingen: leslocaux45360@gmail.com of 06 31 62 96 53.\",\"image\":\"\",\"link\":\"\"},{\"id\":57,\"name\":\"Vide-grenier du 11 novembre\",\"type\":\"evenements-locaux-358\",\"category\":\"brocantes-vide-greniers\",\"label\":\"Du 10\\\/11\\\/2026 au 10\\\/11\\\/2026 \\u00e0 23:59\",\"start\":\"2026-11-10\",\"end\":\"2026-11-10\",\"start_time\":\"\",\"end_time\":\"\",\"open_start\":false,\"city\":\"45360 Ch\\u00e2tillon-sur-Loire\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Le 11 novembre, le Champ de Foire \\u00e0 Ch\\u00e2tillon-sur-Loire se transforme en un v\\u00e9ritable paradis pour les amateurs de chine lors du vide-grenier organis\\u00e9 par le Comit\\u00e9 des f\\u00eates. Stands vari\\u00e9s, objets anciens, v\\u00eatements, livres et tr\\u00e9sors cach\\u00e9s attendent les visiteurs \\u00e0 la recherche de bonnes affaires et de d\\u00e9couvertes insolites. Ce rendez-vous incontournable promet une ambiance conviviale, id\\u00e9ale pour fl\\u00e2ner, \\u00e9changer avec les exposants et repartir avec des trouvailles uniques. Que ce soit pour vendre, acheter ou simplement profiter d\\u2019une balade dominicale anim\\u00e9e, cet \\u00e9v\\u00e9nement est parfait pour toute la famille. R\\u00e9servation conseill\\u00e9e pour exposer et partager ce moment festif au c\\u0153ur du Champ de Foire.\",\"image\":\"\",\"link\":\"\"},{\"id\":7,\"name\":\"Concert Le Nouveau Ch\\u0153ur\",\"type\":\"evenements-locaux-358\",\"category\":\"concerts-musique-festivals\",\"label\":\"Du 10\\\/11\\\/2026 \\u00e0 17:00 au 10\\\/11\\\/2026 \\u00e0 23:59\",\"start\":\"2026-11-10\",\"end\":\"2026-11-10\",\"start_time\":\"17:00\",\"end_time\":\"\",\"open_start\":false,\"city\":\"18410 Argent-sur-Sauldre\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Laissez-vous transporter par la beaut\\u00e9 des voix et la richesse des traditions musicales !\\n\\nDans le cadre de sa grande tourn\\u00e9e en France 2026, la chorale Voix Si Voix La vous invite \\u00e0 d\\u00e9couvrir le Nouveau Ch\\u0153ur, dirig\\u00e9 par Igor Mykhail\\u00e9vsky. Au programme : des chants orthodoxes et traditionnels, pour un moment musical empreint d\\u2019\\u00e9motion et de d\\u00e9couverte.\\n\\nRendez-vous le mercredi 11 novembre 2026 \\u00e0 17h, \\u00e0 l\\u2019\\u00e9glise Saint-Andr\\u00e9 d\\u2019Argent-sur-Sauldre.\\n\\nTarif : 12 \\u20ac sur place. Gratuit pour les enfants de moins de 12 ans.\\n\\nUne belle occasion de d\\u00e9couvrir des traditions musicales venues d\\u2019ailleurs et de partager un moment riche en \\u00e9motions !\",\"image\":\"\",\"link\":\"\"},{\"id\":58,\"name\":\"De Londres \\u00e0 Edimbourg\",\"type\":\"evenements-locaux-358\",\"category\":\"concerts-musique-festivals\",\"label\":\"Du 12\\\/11\\\/2026 \\u00e0 18:30 au 12\\\/11\\\/2026 \\u00e0 23:59\",\"start\":\"2026-11-12\",\"end\":\"2026-11-12\",\"start_time\":\"18:30\",\"end_time\":\"\",\"open_start\":false,\"city\":\"18700 Aubigny-sur-N\\u00e8re\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Viole, cistre, english guitar, autant d\\u2019instruments aux sonorit\\u00e9s nouvelles qui vous transporteront de l\\u2019autre c\\u00f4t\\u00e9 de la\\nManche.\\n\\nDans les tavernes, les jardins ou les salles de bal, les airs tendres et rythm\\u00e9s des musiques \\u00e9cossaises, galloises et irlandaises prennent possession des salons londoniens. Venez d\\u00e9couvrir un joyeux programme de ballades et de danses qui m\\u00e9ritent de r\\u00e9sonner dans la ville de l\\u2019Auld Alliance !\\n\\nOrganis\\u00e9 par la Ville d\\u2019Aubigny-sur-N\\u00e8re\",\"image\":\"\",\"link\":\"\"},{\"id\":56,\"name\":\"Bourse aux jouets\",\"type\":\"evenements-locaux-358\",\"category\":\"en-famille\",\"label\":\"Du 13\\\/11\\\/2026 \\u00e0 14:00 au 18\\\/12\\\/2026 \\u00e0 23:59\",\"start\":\"2026-11-13\",\"end\":\"2026-12-18\",\"start_time\":\"14:00\",\"end_time\":\"\",\"open_start\":false,\"city\":\"45420 Bonny-sur-Loire\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Participez \\u00e0 la Bourse aux Jouets organis\\u00e9e par la Maison de Pays de Bonny-sur-Loire ! Cet \\u00e9v\\u00e9nement est l'occasion id\\u00e9ale de donner une seconde vie aux jouets de vos enfants tout en faisant plaisir \\u00e0 d'autres. D\\u00e9posez vos jouets en bon \\u00e9tat \\u00e0 la Maison de Pays du 12 au 18 novembre.\\n\\n C'est une belle opportunit\\u00e9 pour d\\u00e9couvrir des jouets divers et vari\\u00e9s tout en profitant de l'atmosph\\u00e8re festive de No\\u00ebl.\\n\\nEn participant, vous contribuez \\u00e0 une d\\u00e9marche \\u00e9coresponsable en recyclant des jouets tout en favorisant l\\u2019entraide et le partage au sein de la communaut\\u00e9. N'h\\u00e9sitez pas \\u00e0 faire le tri chez vous et \\u00e0 apporter les jouets qui ne servent plus !\",\"image\":\"\",\"link\":\"\"},{\"id\":36,\"name\":\"Gourmetmarkt\",\"type\":\"evenements-locaux-358\",\"category\":\"marches-foires\",\"label\":\"Du 13\\\/11\\\/2026 \\u00e0 14:00 au 13\\\/11\\\/2026 \\u00e0 23:59\",\"start\":\"2026-11-13\",\"end\":\"2026-11-13\",\"start_time\":\"14:00\",\"end_time\":\"\",\"open_start\":false,\"city\":\"18240 Belleville-sur-Loire\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"De Gastronomische Dagen van Bellevilloises vieren 30 jaar passie voor gastronomie! \\n\\nOntdek een gastronomische markt vol met regionale producten, culinaire specialiteiten, producenten en voedselsmeden, met proeverijen en activiteiten.\\n\\nGeniet van een gezellige maaltijd, zie hoe de zwarte pens ter plaatse wordt bereid, waag je kans bij de tombola en laat je verleiden door de smaken van het terroir!\",\"image\":\"\",\"link\":\"\"},{\"id\":34,\"name\":\"Concert van Sint-Caecilia met de Harmonie van Bonny-sur-Loire\",\"type\":\"evenements-locaux-358\",\"category\":\"concerts-musique-festivals\",\"label\":\"Du 14\\\/11\\\/2026 au 14\\\/11\\\/2026 \\u00e0 23:59\",\"start\":\"2026-11-14\",\"end\":\"2026-11-14\",\"start_time\":\"\",\"end_time\":\"\",\"open_start\":false,\"city\":\"45420 Bonny-sur-Loire\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Op 15 november, kom Sint-Caecilia vieren met de Harmonie van Bonny-sur-Loire tijdens een uitzonderlijk concert! Dompel jezelf onder in een rijk en gevarieerd muzikaal universum waar koperblazers, houtblazers en percussie samenkomen om je een avond vol emotie en gezelligheid te bieden. Dit evenement, gewijd aan de patroonheilige van de musici, is de perfecte gelegenheid om het talent van lokale muzikanten te ontdekken of opnieuw te ontdekken en te vibreren op het ritme van zorgvuldig uitgekozen stukken. Of je nu een muziekliefhebber bent of gewoon nieuwsgierig, laat je meevoeren door de magie van muziek en deel dit unieke moment met familie of vrienden. Gratis toegang, gegarandeerde warme sfeer! Mis deze onmisbare muzikale gebeurtenis niet.\",\"image\":\"\",\"link\":\"\"},{\"id\":35,\"name\":\"Cyclo-cross\",\"type\":\"evenements-locaux-358\",\"category\":\"sport-randonnee\",\"label\":\"Du 14\\\/11\\\/2026 \\u00e0 13:30 au 14\\\/11\\\/2026 \\u00e0 23:59\",\"start\":\"2026-11-14\",\"end\":\"2026-11-14\",\"start_time\":\"13:30\",\"end_time\":\"\",\"open_start\":false,\"city\":\"45360 Ch\\u00e2tillon-sur-Loire\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Op 15 november organiseert de Mantelot-sluis het cyclo-cross evenement van de wielerclub van Ch\\u00e2tillon-sur-Loire, een sportevenement dat prestatie en spectacle combineert. Deze veeleisende route, met modderige paden, natuurlijke obstakels en technische passages, belooft uitdagingen voor zowel deelnemende renners als toeschouwers. Elke bocht en klim test de uithoudingsvermogen en lenigheid van de coureurs, onder aanmoediging van het publiek. Dit evenement is de perfecte gelegenheid om de ritme van de competitie te voelen en de zelfoverwinning van de wielrenners te bewonderen in een uitzonderlijke natuurlijke setting. Een sportieve en gezellige dag voor iedereen, ideaal voor fietsliefhebbers en gezinnen die van het spektakel willen genieten.\",\"image\":\"\",\"link\":\"\"},{\"id\":46,\"name\":\"[Concert] Effervescence & Pop&Choeurs Koor\",\"type\":\"evenements-locaux-358\",\"category\":\"concerten-muziek-festivals\",\"label\":\"Du 14\\\/11\\\/2026 \\u00e0 15:00 au 14\\\/11\\\/2026 \\u00e0 23:59\",\"start\":\"2026-11-14\",\"end\":\"2026-11-14\",\"start_time\":\"15:00\",\"end_time\":\"\",\"open_start\":false,\"city\":\"18240 Savigny-en-Sancerre\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Concert in de kerk van Saint Symphorien, met het Effervescence & Pop&Choeurs-koor.\",\"image\":\"\",\"link\":\"\"}];\n    var CATEGORIES = {\"en-famille\":{\"key\":\"en-famille\",\"label\":\"En famille\",\"color\":\"#ef4444\",\"count\":18},\"expositions\":{\"key\":\"expositions\",\"label\":\"Expositions\",\"color\":\"#3b82f6\",\"count\":9},\"concerts-musique-festivals\":{\"key\":\"concerts-musique-festivals\",\"label\":\"Concerts, musique & festivals\",\"color\":\"#10b981\",\"count\":7},\"markten-beurzen\":{\"key\":\"markten-beurzen\",\"label\":\"Markten & beurzen\",\"color\":\"#f59e0b\",\"count\":3},\"gezin\":{\"key\":\"gezin\",\"label\":\"Gezin\",\"color\":\"#a855f7\",\"count\":8},\"tentoonstellingen\":{\"key\":\"tentoonstellingen\",\"label\":\"Tentoonstellingen\",\"color\":\"#0891b2\",\"count\":6},\"marches-foires\":{\"key\":\"marches-foires\",\"label\":\"March\\u00e9s & foires\",\"color\":\"#db2777\",\"count\":7},\"concerten-muziek-festivals\":{\"key\":\"concerten-muziek-festivals\",\"label\":\"Concerten, muziek & festivals\",\"color\":\"#65a30d\",\"count\":2},\"sport-randonnee\":{\"key\":\"sport-randonnee\",\"label\":\"Sport & randonn\\u00e9e\",\"color\":\"#ea580c\",\"count\":1},\"kringloopmarkten-en-garageverkopen\":{\"key\":\"kringloopmarkten-en-garageverkopen\",\"label\":\"Kringloopmarkten en garageverkopen\",\"color\":\"#6366f1\",\"count\":1},\"animations-locales\":{\"key\":\"animations-locales\",\"label\":\"Animations locales\",\"color\":\"#ef4444\",\"count\":1},\"brocantes-vide-greniers\":{\"key\":\"brocantes-vide-greniers\",\"label\":\"Brocantes & vide-greniers\",\"color\":\"#3b82f6\",\"count\":1}};\n    var TODAY = \"2026-10-22\";\n    \/\/ Textes et format des dates dans la langue de la page (includes\/i18n.php)\n    var T = {\"hero_title\":\"Ontdek de omgeving\",\"hero_text\":\"Dorpen, stranden, wandelingen, goede adressen en belevenissen rond uw verblijf.\",\"around\":\"Rond\",\"search_placeholder\":\"Zoek een plek, een activiteit, een dorp\\u2026\",\"search\":\"Zoeken\",\"max_distance\":\"Maximale afstand\",\"all\":\"Alles\",\"prev_categories\":\"Vorige categorie\\u00ebn\",\"next_categories\":\"Volgende categorie\\u00ebn\",\"categories\":\"Categorie\\u00ebn\",\"display\":\"Weergave\",\"list\":\"Lijst\",\"map\":\"Kaart\",\"close\":\"Sluiten\",\"featured\":\"Uitgelicht\",\"discover\":\"Ontdekken\",\"idea\":\"idee\",\"ideas\":\"idee\\u00ebn\",\"around_you\":\"in de buurt\",\"no_result\":\"Geen resultaten\",\"no_result_hint\":\"Probeer een andere zoekopdracht, categorie of afstand.\",\"pagination\":\"Paginering\",\"prev_page\":\"Vorige pagina\",\"next_page\":\"Volgende pagina\",\"ideas_title\":\"Idee\\u00ebn naar uw zin\",\"ideas_sub\":\"Suggesties voor uw ideale verblijf.\",\"reset_view\":\"Terug naar het overzicht\",\"map_hint\":\"Klik op een markering op de kaart om de details hier te zien.\",\"official_site\":\"Offici\\u00eble website\",\"video\":\"Video\",\"gallery\":\"Galerij\",\"documents\":\"Documenten\",\"faq\":\"Veelgestelde vragen\",\"no_answer\":\"Nog geen antwoord.\",\"see_on_maps\":\"Bekijk op Google Maps\",\"see_place_on_maps\":\"Bekijk de camping op Google Maps\",\"yes\":\"Ja\",\"no\":\"Nee\",\"practical_info\":\"Praktische info\",\"reviews\":\"beoordelingen\",\"read_more\":\"Lees meer\",\"prev_review\":\"Vorige recensie\",\"next_review\":\"Volgende recensie\",\"prev_item\":\"Vorige\",\"next_item\":\"Volgende\",\"photo_credit\":\"Foto: %s\",\"directions\":\"Route\",\"read_less\":\"Minder\",\"stars_out_of_5\":\"%s van de 5 sterren\",\"owner_reply\":\"Reactie van de eigenaar\",\"customer\":\"Gast\",\"customer_reviews\":\"Gastbeoordelingen\",\"rating_label\":\"Beoordeeld met %1$s van de 5, %2$s beoordelingen \\u2014 bekijk de beoordelingen\",\"reviews_by\":\"Beoordelingen gepresenteerd door Elaia\",\"powered_by\":\"Mogelijk gemaakt door\",\"today\":\"Vandaag\",\"today_lc\":\"vandaag\",\"tomorrow\":\"Morgen\",\"until\":\"Tot %s\",\"from_to\":\"Van %1$s tot %2$s\",\"registration\":\"Inschrijving vereist\",\"full\":\"Volgeboekt\",\"all_animations\":\"Alle activiteiten bekijken \\u2192\",\"ago_day\":\"%d dag geleden\",\"ago_days\":\"%d dagen geleden\",\"ago_week\":\"%d week geleden\",\"ago_weeks\":\"%d weken geleden\",\"ago_month\":\"%d maand geleden\",\"ago_months\":\"%d maanden geleden\",\"ago_year\":\"%d jaar geleden\",\"ago_years\":\"%d jaar geleden\",\"anim_unavailable\":\"Het programma is tijdelijk niet beschikbaar\",\"anim_eyebrow\":\"Beleef onvergetelijke momenten\",\"anim_title\":\"Animatie & evenementen\",\"anim_hero_text\":\"Alle activiteiten van het moment, de hoogtepunten van de week en komende evenementen tijdens uw verblijf.\",\"anim_sections\":\"Pagina-onderdelen\",\"anim_nav_today\":\"Vandaag\",\"anim_nav_week\":\"Deze week\",\"anim_nav_upcoming\":\"Binnenkort\",\"anim_nav_calendar\":\"Kalender\",\"anim_where\":\"Waar?\",\"anim_onsite\":\"Ter plaatse\",\"anim_nearby\":\"In de buurt\",\"anim_no_onsite\":\"Momenteel geen activiteit ter plaatse\",\"anim_no_nearby\":\"Momenteel geen evenement in de buurt\",\"anim_all_day\":\"Hele dag\",\"anim_at\":\"om %s\",\"anim_see_detail\":\"details bekijken\",\"anim_live\":\"Bezig\",\"anim_onsite_spot\":\"Ter plaatse \\u00b7 %s\",\"anim_badge_until\":\"Tot\",\"anim_badge_from\":\"Van\",\"anim_badge_today\":\"Vandaag\",\"anim_filter_cat\":\"Filteren op categorie\",\"anim_all_f\":\"Alle\",\"anim_prev_day\":\"Vorige dag\",\"anim_next_day\":\"Volgende dag\",\"anim_today_title\":\"Activiteiten van vandaag\",\"anim_tomorrow_title\":\"Activiteiten van morgen\",\"anim_day_title\":\"Activiteiten op %s\",\"anim_relax_today\":\"Vandaag een rustige dag\",\"anim_nothing_day\":\"Niets gepland op die dag\",\"anim_next_on\":\"Volgende activiteit op %s.\",\"anim_soon\":\"Het programma wordt binnenkort bijgewerkt.\",\"anim_see_day\":\"Die dag bekijken\",\"anim_prev_acts\":\"Vorige activiteiten\",\"anim_next_acts\":\"Volgende activiteiten\",\"anim_prev_week\":\"Vorige week\",\"anim_next_week\":\"Volgende week\",\"anim_week_title\":\"De hoogtepunten van de week\",\"anim_next_week_title\":\"Volgende week\",\"anim_week_of\":\"Week van %s\",\"anim_week_days\":\"Dagen van de week\",\"anim_today_paren\":\"(vandaag)\",\"anim_activity\":\"%d activiteit\",\"anim_activities\":\"%d activiteiten\",\"anim_nothing\":\"niets gepland\",\"anim_pick_day\":\"Kies een andere dag om het programma te zien.\",\"anim_sort\":\"Evenementen sorteren\",\"anim_sort_date\":\"Sorteren op datum\",\"anim_sort_name\":\"Sorteren op naam\",\"anim_upcoming_title\":\"Alle komende evenementen\",\"anim_no_upcoming\":\"Geen komende evenementen\",\"anim_try_cat\":\"Probeer een andere categorie.\",\"anim_more\":\"Meer evenementen (%d)\",\"anim_hide_cal\":\"Kalender verbergen\",\"anim_show_cal\":\"Volledige kalender bekijken\",\"anim_cal_title\":\"Maandkalender\",\"anim_cal_sub\":\"Alle activiteiten van de maand in \\u00e9\\u00e9n oogopslag.\",\"anim_prev_month\":\"Vorige maand\",\"anim_next_month\":\"Volgende maand\",\"anim_more_info\":\"Meer informatie\",\"anim_new_tab\":\"(nieuw tabblad)\",\"date_locale\":\"nl-NL\",\"page_faq\":\"FAQ\",\"page_metadatas\":\"Ontdek de omgeving\",\"page_animations\":\"Animatie en evenementen\",\"page_corpus\":\"Praktische informatie\",\"anim_event\":\"Evenement\"};\n    function tf(key) { var a = [].slice.call(arguments, 1), i = 0; return T[key].replace(\/%(\\d\\$)?[sd]\/g, function (m, pos) { return pos ? a[parseInt(pos, 10) - 1] : a[i++]; }); }\n    \/\/ Image par d\u00e9faut du chatbot, utilis\u00e9e quand une fiche n'a pas d'image\n    var DEFAULT_IMG = \"\";\n\n    var app = document.getElementById('ea-app');\n    if (!app) return;\n\n    var TODAY_MAX = 3; \/\/ cartes \u00ab aujourd'hui \u00bb avant \u00ab Voir les autres \u00bb\n    var UPCOMING_STEP = 8;\n\n    var state = {\n      day: TODAY,\n      todayAll: false,\n      week: null,\n      weekDay: TODAY,\n      cat: 'all',\n      scope: 'all', \/\/ all | onsite | nearby\n      sort: 'date',\n      upcomingLimit: UPCOMING_STEP,\n      calendarOpen: false,\n      month: TODAY.slice(0, 7),\n      selectedDay: null\n    };\n\n    \/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n    \/\/ IC\u00d4NES (SVG statiques)\n    \/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n    var ICONS = {\n      pin: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 21s-7-6.2-7-11.5a7 7 0 0 1 14 0C19 14.8 12 21 12 21z\"\/><circle cx=\"12\" cy=\"9.5\" r=\"2.5\"\/><\/svg>',\n      calendar: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"><rect x=\"3\" y=\"5\" width=\"18\" height=\"16\" rx=\"2\"\/><path d=\"M16 3v4M8 3v4M3 10h18\"\/><\/svg>',\n      arrow: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M5 12h14M13 6l6 6-6 6\"\/><\/svg>',\n      external: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"><path d=\"M14 5h5v5M19 5l-8 8M18 14v5H5V6h5\"\/><\/svg>',\n      sun: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"><circle cx=\"12\" cy=\"12\" r=\"4\"\/><path d=\"M12 2v2M12 20v2M4.9 4.9l1.4 1.4M17.7 17.7l1.4 1.4M2 12h2M20 12h2M4.9 19.1l1.4-1.4M17.7 6.3l1.4-1.4\"\/><\/svg>',\n      pen: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M9 11l2 2 4-4\"\/><rect x=\"4\" y=\"3\" width=\"16\" height=\"18\" rx=\"2\"\/><path d=\"M8 7h8\"\/><\/svg>',\n      clock: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"><circle cx=\"12\" cy=\"12\" r=\"9\"\/><path d=\"M12 7v5l3 2\"\/><\/svg>',\n      star: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linejoin=\"round\"><path d=\"M12 3l2.8 5.7 6.2.9-4.5 4.4 1.1 6.2L12 17.3 6.4 20.2l1.1-6.2L3 9.6l6.2-.9z\"\/><\/svg>',\n      leaf: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M5 19c0-8 5-14 15-14 0 10-6 15-14 15\"\/><path d=\"M5 19l7-7\"\/><\/svg>',\n      tent: '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 4L3 20h18L12 4z\"\/><path d=\"M12 4v16M9 20l3-6 3 6\"\/><\/svg>'\n    };\n\n    \/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n    \/\/ CAT\u00c9GORIES \u2014 pastels harmonieux d\u00e9duits du libell\u00e9\n    \/\/ (le libell\u00e9 est toujours affich\u00e9 : l'info ne passe pas que par la couleur)\n    \/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n    var CAT_STYLES = [\n      [\/enfant|kid|junior\/, '#fff1c9', '#6f5200'],\n      [\/famil\/, '#fdf0d5', '#7a4e00'],\n      [\/bien.?etre|yoga|zen|detente|relax|spa\/, '#e3f1e6', '#24613a'],\n      [\/concert|musique|soiree|dj|bal\\b\/, '#ece6fa', '#4b3a8c'],\n      [\/spectacle|theatre|cinema|cirque|magie\/, '#fbe3e1', '#8f2d27'],\n      [\/sport|rando|velo|course|tournoi|petanque|nautique\/, '#dcefeb', '#1f5f55'],\n      [\/expo|musee|culture|patrimoine|visite\/, '#f3e6ef', '#7a2f5c'],\n      [\/march|brocante|vide.?grenier|artisan|terroir|degust\/, '#e8f0dc', '#3f5a1e'],\n      [\/animation|fete|festiv|atelier|jeu\/, '#fbe7d7', '#8e4214']\n    ];\n\n    function norm(s) {\n      return (s || '').toLowerCase().normalize('NFD').replace(\/[\u0300-\u036f]\/g, '');\n    }\n\n    function catStyle(key) {\n      var hay = norm(key + ' ' + (CATEGORIES[key] ? CATEGORIES[key].label : ''));\n      for (var i = 0; i < CAT_STYLES.length; i++) {\n        if (CAT_STYLES[i][0].test(hay)) return { bg: CAT_STYLES[i][1], fg: CAT_STYLES[i][2] };\n      }\n      return { bg: '#eceee8', fg: '#3c463f' };\n    }\n\n    function applyCat(node, key) {\n      var s = catStyle(key);\n      node.style.setProperty('--ea-cat-bg', s.bg);\n      node.style.setProperty('--ea-cat-fg', s.fg);\n    }\n\n    function catLabel(e) {\n      return CATEGORIES[e.category] ? CATEGORIES[e.category].label : '';\n    }\n\n    \/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n    \/\/ DATES \u2014 cha\u00eenes Y-m-d (pas de d\u00e9calage de fuseau)\n    \/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n    function toDate(ymd) {\n      var p = ymd.split('-');\n      return new Date(+p[0], +p[1] - 1, +p[2], 12);\n    }\n\n    function toYmd(d) {\n      return d.getFullYear() + '-' + String(d.getMonth() + 1).padStart(2, '0') + '-' + String(d.getDate()).padStart(2, '0');\n    }\n\n    function addDays(ymd, n) {\n      var d = toDate(ymd);\n      d.setDate(d.getDate() + n);\n      return toYmd(d);\n    }\n\n    function daysBetween(a, b) {\n      return Math.round((toDate(b) - toDate(a)) \/ 86400000);\n    }\n\n    function weekStart(ymd) {\n      var d = toDate(ymd);\n      d.setDate(d.getDate() - (d.getDay() + 6) % 7);\n      return toYmd(d);\n    }\n\n    function fmt(ymd, opts) {\n      return toDate(ymd).toLocaleDateString(T.date_locale, opts);\n    }\n\n    function ucfirst(s) {\n      return s.charAt(0).toUpperCase() + s.slice(1);\n    }\n\n    function shortDate(ymd) {\n      return fmt(ymd, { day: 'numeric', month: 'short' });\n    }\n\n    function byTime(a, b) {\n      return (a.start_time || '').localeCompare(b.start_time || '') || a.name.localeCompare(b.name, T.date_locale);\n    }\n\n    \/** Filtres globaux : sur place \/ aux alentours + cat\u00e9gorie *\/\n    function visible(e) {\n      if (state.scope === 'onsite' && !e.onsite) return false;\n      if (state.scope === 'nearby' && e.onsite) return false;\n      return state.cat === 'all' || e.category === state.cat;\n    }\n\n    function eventsOn(ymd) {\n      return EVENTS.filter(function(e) {\n        return visible(e) && e.start <= ymd && e.end >= ymd;\n      }).sort(byTime);\n    }\n\n    function eventsBetween(from, to) {\n      return EVENTS.filter(function(e) {\n        return visible(e) && e.start <= to && e.end >= from;\n      });\n    }\n\n    \/** Ligne horaire d'une carte vue depuis un jour donn\u00e9 *\/\n    function timeLabel(e, day) {\n      if (e.start === day && e.start_time) return e.start_time + (e.end_time && e.start === e.end ? ' \u2013 ' + e.end_time : '');\n      if (e.start !== e.end || e.open_start) return tf('until', shortDate(e.end));\n      return T.anim_all_day;\n    }\n\n    \/** Ligne date d'une carte \u00ab \u00e0 venir \u00bb *\/\n    function dateLabel(e) {\n      if (e.open_start) return tf('until', shortDate(e.end));\n      if (e.start !== e.end) return tf('from_to', shortDate(e.start), shortDate(e.end));\n      var d = ucfirst(fmt(e.start, { weekday: 'short', day: 'numeric', month: 'short' }));\n      return d + (e.start_time ? ' \u00b7 ' + e.start_time : '');\n    }\n\n    function fullWhenLabel(e) {\n      var opts = { weekday: 'long', day: 'numeric', month: 'long', year: 'numeric' };\n      if (e.open_start) return tf('until', fmt(e.end, opts));\n      var time = e.start_time ? ' ' + tf('anim_at', e.start_time) : '';\n      if (e.start === e.end) return ucfirst(fmt(e.start, opts)) + time + (e.end_time ? ' \u2013 ' + e.end_time : '');\n      return tf('from_to', fmt(e.start, { day: 'numeric', month: 'long' }) + time, fmt(e.end, opts) + (e.end_time ? ' ' + tf('anim_at', e.end_time) : ''));\n    }\n\n    \/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n    \/\/ DOM\n    \/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n    function el(tag, cls, text) {\n      var n = document.createElement(tag);\n      if (cls) n.className = cls;\n      if (text != null) n.textContent = text;\n      return n;\n    }\n\n    function icon(name) {\n      var s = el('span', 'ea-icon');\n      s.setAttribute('aria-hidden', 'true');\n      s.innerHTML = ICONS[name];\n      return s;\n    }\n\n    \/** Image de la fiche \u2192 image par d\u00e9faut du chatbot \u2192 aplat illustr\u00e9 *\/\n    function media(e, cls) {\n      var fallback = function() {\n        var f = el('div', 'ea-card-fallback');\n        f.appendChild(icon('tent'));\n        return f;\n      };\n      if (!e.image && !DEFAULT_IMG) return fallback();\n      var img = el('img', cls);\n      var useDefault = !e.image;\n      img.src = useDefault ? DEFAULT_IMG : e.image;\n      img.alt = e.name;\n      img.loading = 'lazy';\n      img.decoding = 'async';\n      if (useDefault) img.classList.add('ea-img--default');\n      img.onerror = function() {\n        if (!useDefault && DEFAULT_IMG) {\n          useDefault = true;\n          img.classList.add('ea-img--default');\n          img.src = DEFAULT_IMG;\n        } else if (img.parentNode) {\n          img.replaceWith(fallback());\n        }\n      };\n      return img;\n    }\n\n    function pill(e) {\n      var p = el('span', 'ea-pill', catLabel(e));\n      applyCat(p, e.category);\n      return p;\n    }\n\n    \/**\n     * Carte \u00e9v\u00e9nement (composant unique).\n     * @param {object} e\n     * @param {object} o { day: 'Y-m-d' \u2192 heure du jour | date: true \u2192 dates de l'\u00e9v\u00e9nement }\n     *\/\n    function card(e, o) {\n      o = o || {};\n      var c = el('article', 'ea-card' + (e.end < TODAY ? ' ea-card--ended' : ''));\n      c.tabIndex = 0;\n      c.setAttribute('role', 'button');\n      c.setAttribute('aria-label', e.name + ' \u2014 ' + (o.date ? dateLabel(e) : timeLabel(e, o.day)) + ' \u2014 ' + T.anim_see_detail);\n      applyCat(c, e.category);\n\n      var m = el('div', 'ea-card-media');\n      m.appendChild(media(e));\n      m.appendChild(dateBadge(e));\n      if (o.day === TODAY && e.start < TODAY && e.end >= TODAY) {\n        m.appendChild(el('span', 'ea-live', T.anim_live));\n      }\n      if (e.registration) {\n        var reg = el('span', 'ea-reg');\n        reg.appendChild(icon('pen'));\n        reg.appendChild(document.createTextNode(T.registration));\n        m.appendChild(reg);\n      }\n      c.appendChild(m);\n\n      var b = el('div', 'ea-card-body');\n      var top = el('div', 'ea-card-top');\n      if (!o.date) {\n        var w = el('span', 'ea-when');\n        w.appendChild(icon('clock'));\n        w.appendChild(document.createTextNode(timeLabel(e, o.day)));\n        top.appendChild(w);\n      }\n      if (top.childNodes.length) b.appendChild(top);\n      b.appendChild(el('h3', 'ea-card-title', e.name));\n      var where = placeLabel(e);\n      if (where) {\n        var p = el('p', 'ea-place');\n        p.appendChild(icon(e.onsite ? 'tent' : 'pin'));\n        p.appendChild(document.createTextNode(where));\n        b.appendChild(p);\n      }\n      if (e.description) b.appendChild(el('p', 'ea-card-desc', e.description));\n      var cta = el('span', 'ea-cta', T.discover);\n      cta.appendChild(icon('arrow'));\n      b.appendChild(cta);\n      c.appendChild(b);\n\n      c.addEventListener('click', function() {\n        openModal(e);\n      });\n      c.addEventListener('keydown', function(ev) {\n        if (ev.key === 'Enter' || ev.key === ' ') {\n          ev.preventDefault();\n          openModal(e);\n        }\n      });\n      return c;\n    }\n\n    \/** O\u00f9 : lieu dans l'\u00e9tablissement (sur place) ou ville (aux alentours) *\/\n    function placeLabel(e) {\n      if (e.onsite) return e.spot ? tf('anim_onsite_spot', e.spot) : T.anim_onsite;\n      return e.city;\n    }\n\n    \/**\n     * Badge date sur l'image, toujours sur 3 lignes et de taille fixe :\n     *   un jour     \u2192 LUN \/ 28 \/ SEPT\n     *   jusqu'au    \u2192 JUSQU'AU \/ 18 \/ OCT\n     *   p\u00e9riode     \u2192 25 SEPT \u2192 \/ 7 \/ OCT   (du 25 sept. au 7 oct.)\n     *\/\n    function dateBadge(e) {\n      var month = function(ymd) {\n        return fmt(ymd, { month: 'short' }).replace('.', '');\n      };\n      var top, day, end = '';\n      if (e.open_start) {\n        top = T.anim_badge_until;\n        day = e.end;\n      } else if (e.start !== e.end) {\n        \/\/ P\u00e9riode : le D\u00c9BUT en gros, la fin en petit dessous (\u2192 1 nov)\n        top = T.anim_badge_from;\n        day = e.start;\n        end = '\u2192 ' + toDate(e.end).getDate() + ' ' + month(e.end);\n      } else {\n        top = e.start === TODAY ? T.anim_badge_today : fmt(e.start, { weekday: 'short' }).replace('.', '');\n        day = e.start;\n      }\n      \/\/ Couleur selon le cas : aujourd'hui \/ un jour \u00e0 venir \/ p\u00e9riode \u00e0 venir \/ en cours\n      var kind = (e.start === e.end && !e.open_start) ? (e.start === TODAY ? 'today' : 'day') :\n        ((e.open_start || e.start <= TODAY) ? 'ongoing' : 'period');\n      var d = el('span', 'ea-date ea-date--' + kind);\n      d.setAttribute('aria-hidden', 'true');\n      d.appendChild(el('span', 'ea-date-top', top));\n      d.appendChild(el('span', 'ea-date-day', String(toDate(day).getDate())));\n      d.appendChild(el('span', 'ea-date-month', month(day)));\n      if (end) d.appendChild(el('span', 'ea-date-end', end));\n      return d;\n    }\n\n    function grid(list, o, four) {\n      var g = el('div', 'ea-grid' + (four ? ' ea-grid--4' : ''));\n      list.forEach(function(e) {\n        g.appendChild(card(e, o));\n      });\n      return g;\n    }\n\n    function head(id, iconName, title, sub, side) {\n      var h = el('div', 'ea-section-head');\n      var left = el('div');\n      var t = el('h2', 'ea-section-title');\n      if (iconName) t.appendChild(icon(iconName));\n      t.appendChild(document.createTextNode(title));\n      t.id = id;\n      left.appendChild(t);\n      if (sub) left.appendChild(el('p', 'ea-section-sub', sub));\n      h.appendChild(left);\n      if (side) h.appendChild(side);\n      return h;\n    }\n\n    function round(label, aria, onClick, disabled) {\n      var b = el('button', 'ea-round', label);\n      b.type = 'button';\n      b.setAttribute('aria-label', aria);\n      b.disabled = !!disabled;\n      b.addEventListener('click', onClick);\n      return b;\n    }\n\n    function empty(title, text, action) {\n      var box = el('div', 'ea-empty');\n      box.appendChild(icon('sun'));\n      box.appendChild(el('strong', null, title));\n      if (text) box.appendChild(el('span', null, text));\n      if (action) {\n        var b = el('button', 'ea-btn ea-btn--soft', action.label);\n        b.type = 'button';\n        b.addEventListener('click', action.onClick);\n        box.appendChild(b);\n      }\n      return box;\n    }\n\n    function nextEventDay(after) {\n      var next = null;\n      EVENTS.forEach(function(e) {\n        if (visible(e) && e.start > after && (!next || e.start < next)) next = e.start;\n      });\n      return next;\n    }\n\n    \/** Pastilles de cat\u00e9gories (filtre global de la page) *\/\n    function catFilters() {\n      var box = el('div', 'ea-cats');\n      box.setAttribute('role', 'group');\n      box.setAttribute('aria-label', T.anim_filter_cat);\n      \/\/ Cat\u00e9gories pr\u00e9sentes dans le p\u00e9rim\u00e8tre choisi (sur place \/ alentours)\n      var keys = Object.keys(CATEGORIES).filter(function(k) {\n        return EVENTS.some(function(e) {\n          return e.category === k && e.end >= TODAY &&\n            (state.scope === 'all' || (state.scope === 'onsite') === !!e.onsite);\n        });\n      });\n      if (keys.length < 2) return box;\n      var mk = function(key, label) {\n        var b = el('button', 'ea-cat' + (key === 'all' ? ' ea-cat--all' : ''), label);\n        b.type = 'button';\n        b.setAttribute('aria-pressed', state.cat === key ? 'true' : 'false');\n        if (key !== 'all') applyCat(b, key);\n        b.addEventListener('click', function() {\n          setCat(state.cat === key ? 'all' : key);\n          var again = document.querySelector('.ea-cat[aria-pressed=\"true\"]');\n          if (again) again.focus();\n        });\n        box.appendChild(b);\n      };\n      mk('all', T.anim_all_f);\n      keys.forEach(function(k) {\n        mk(k, CATEGORIES[k].label);\n      });\n      return box;\n    }\n\n    \/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n    \/\/ 3. AUJOURD'HUI\n    \/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n    function renderToday() {\n      var sec = document.getElementById('ea-sec-today');\n      sec.innerHTML = '';\n      var day = state.day;\n\n      var side = el('div', 'ea-head-side');\n      side.appendChild(el('span', null, ucfirst(fmt(day, { weekday: 'long', day: 'numeric', month: 'long' }))));\n      side.appendChild(round('\u2039', T.anim_prev_day, function() {\n        state.day = addDays(state.day, -1);\n        state.todayAll = false;\n        renderToday();\n      }, day <= TODAY));\n      side.appendChild(round('\u203a', T.anim_next_day, function() {\n        state.day = addDays(state.day, 1);\n        state.todayAll = false;\n        renderToday();\n      }));\n\n      \/\/ Titres neutres : la page sert aussi aux h\u00f4tels, mus\u00e9es, offices de tourisme\u2026\n      var title = day === TODAY ? T.anim_today_title :\n        (day === addDays(TODAY, 1) ? T.anim_tomorrow_title : tf('anim_day_title', fmt(day, { weekday: 'long', day: 'numeric', month: 'long' })));\n      sec.appendChild(head('ea-today-title', 'sun', title, null, side));\n      sec.appendChild(catFilters());\n\n      var list = eventsOn(day);\n      if (!list.length) {\n        var next = nextEventDay(day);\n        sec.appendChild(empty(\n          day === TODAY ? T.anim_relax_today : T.anim_nothing_day,\n          next ? tf('anim_next_on', fmt(next, { weekday: 'long', day: 'numeric', month: 'long' })) : T.anim_soon,\n          next ? {\n            label: T.anim_see_day,\n            onClick: function() {\n              state.day = next;\n              renderToday();\n            }\n          } : null));\n        return;\n      }\n\n      sec.appendChild(list.length > TODAY_MAX ? carousel(list, { day: day }) : grid(list, { day: day }));\n    }\n\n    \/**\n     * Carrousel horizontal (3 cartes visibles sur ordinateur, d\u00e9filement au doigt\n     * sur mobile), fl\u00e8ches affich\u00e9es seulement s'il reste des cartes de ce c\u00f4t\u00e9.\n     *\/\n    function carousel(list, o, four) {\n      var wrap = el('div', 'ea-carousel' + (four ? ' ea-carousel--4' : ''));\n      var track = el('div', 'ea-carousel-track');\n      track.setAttribute('role', 'list');\n      list.forEach(function(e) {\n        var c = card(e, o);\n        c.setAttribute('role', 'listitem');\n        track.appendChild(c);\n      });\n      var prev = el('button', 'ea-carousel-btn ea-carousel-btn--prev', '\u2039');\n      var next = el('button', 'ea-carousel-btn ea-carousel-btn--next', '\u203a');\n      prev.type = next.type = 'button';\n      prev.setAttribute('aria-label', T.anim_prev_acts);\n      next.setAttribute('aria-label', T.anim_next_acts);\n      var step = function(dir) {\n        var first = track.firstElementChild;\n        var w = first ? first.getBoundingClientRect().width + 16 : track.clientWidth;\n        track.scrollBy({ left: dir * w * Math.max(1, Math.floor(track.clientWidth \/ w)), behavior: 'smooth' });\n      };\n      prev.addEventListener('click', function() {\n        step(-1);\n      });\n      next.addEventListener('click', function() {\n        step(1);\n      });\n      var update = function() {\n        var max = track.scrollWidth - track.clientWidth;\n        prev.hidden = track.scrollLeft <= 4;\n        next.hidden = track.scrollLeft >= max - 4;\n      };\n      track.addEventListener('scroll', update, { passive: true });\n      window.addEventListener('resize', update);\n      wrap.appendChild(prev);\n      wrap.appendChild(track);\n      wrap.appendChild(next);\n      setTimeout(update, 0);\n      return wrap;\n    }\n\n    \/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n    \/\/ 4. TEMPS FORTS DE LA SEMAINE\n    \/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n    function firstBusyDay(from) {\n      for (var i = 0; i < 7; i++) {\n        var d = addDays(from, i);\n        if (d >= TODAY && eventsOn(d).length) return d;\n      }\n      return null;\n    }\n\n    function renderWeek() {\n      var sec = document.getElementById('ea-sec-week');\n      sec.innerHTML = '';\n      var thisWeek = weekStart(TODAY);\n      var from = state.week || thisWeek;\n      var to = addDays(from, 6);\n      if (state.weekDay < from || state.weekDay > to) state.weekDay = firstBusyDay(from) || from;\n\n      var side = el('div', 'ea-head-side');\n      side.appendChild(el('span', null, tf('from_to', shortDate(from), shortDate(to))));\n      side.appendChild(round('\u2039', T.anim_prev_week, function() {\n        state.week = addDays(from, -7);\n        state.weekDay = state.week === thisWeek ? TODAY : state.week;\n        renderWeek();\n      }, from <= thisWeek));\n      side.appendChild(round('\u203a', T.anim_next_week, function() {\n        state.week = addDays(from, 7);\n        state.weekDay = firstBusyDay(state.week) || state.week;\n        renderWeek();\n      }));\n\n      var title = from === thisWeek ? T.anim_week_title :\n        (from === addDays(thisWeek, 7) ? T.anim_next_week_title : tf('anim_week_of', fmt(from, { day: 'numeric', month: 'long' })));\n      sec.appendChild(head('ea-week-title', 'calendar', title, null, side));\n\n      var days = el('div', 'ea-days');\n      days.setAttribute('role', 'group');\n      days.setAttribute('aria-label', T.anim_week_days);\n      for (var i = 0; i < 7; i++) {\n        (function(day) {\n          var n = eventsOn(day).length;\n          var b = el('button', 'ea-day' + (day === TODAY ? ' is-today' : '') + (n ? ' has-events' : ''));\n          b.type = 'button';\n          b.setAttribute('aria-pressed', day === state.weekDay ? 'true' : 'false');\n          b.setAttribute('aria-label', fmt(day, { weekday: 'long', day: 'numeric', month: 'long' }) + (day === TODAY ? ' ' + T.anim_today_paren : '') + ' : ' + (n ? tf(n > 1 ? 'anim_activities' : 'anim_activity', n) : T.anim_nothing));\n          b.appendChild(el('span', 'ea-day-name', ucfirst(fmt(day, { weekday: 'short' }).replace('.', ''))));\n          b.appendChild(el('span', 'ea-day-date', shortDate(day)));\n          b.addEventListener('click', function() {\n            state.weekDay = day;\n            renderWeek();\n            var btn = document.querySelector('.ea-day[aria-pressed=\"true\"]');\n            if (btn) btn.focus();\n          });\n          days.appendChild(b);\n        })(addDays(from, i));\n      }\n      sec.appendChild(days);\n\n      var list = eventsOn(state.weekDay);\n      if (!list.length) {\n        sec.appendChild(empty(T.anim_nothing_day, T.anim_pick_day));\n        return;\n      }\n      \/\/ Au-del\u00e0 de 4 activit\u00e9s : carrousel (4 cartes visibles) au lieu d'une grille qui s'allonge\n      sec.appendChild(list.length > 4 ? carousel(list, { day: state.weekDay }, true) : grid(list, { day: state.weekDay }, true));\n    }\n\n    \/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n    \/\/ 5. TOUS LES \u00c9V\u00c9NEMENTS \u00c0 VENIR\n    \/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n    \/** Liste d\u00e9roulante accessible (libell\u00e9 masqu\u00e9) *\/\n    function selectBox(label, options, value, onChange) {\n      var wrap = el('label');\n      wrap.appendChild(el('span', 'ea-sr', label));\n      var sel = el('select', 'ea-select');\n      options.forEach(function(o) {\n        var opt = el('option', null, o[1]);\n        opt.value = o[0];\n        opt.selected = value === o[0];\n        sel.appendChild(opt);\n      });\n      sel.addEventListener('change', function() {\n        onChange(sel.value);\n      });\n      wrap.appendChild(sel);\n      return wrap;\n    }\n\n    function renderUpcoming() {\n      var sec = document.getElementById('ea-sec-upcoming');\n      sec.innerHTML = '';\n\n      \/\/ Tri (le filtre cat\u00e9gorie est global, sous \u00ab Activit\u00e9s du jour \u00bb)\n      var side = el('div', 'ea-head-side');\n      side.appendChild(selectBox(T.anim_sort, [\n        ['date', T.anim_sort_date],\n        ['name', T.anim_sort_name]\n      ], state.sort, function(v) {\n        state.sort = v;\n        renderUpcoming();\n        focusUpcoming(0);\n      }));\n      sec.appendChild(head('ea-upcoming-title', 'leaf', T.anim_upcoming_title, null, side));\n\n      var list = EVENTS.filter(function(e) {\n        return visible(e) && e.end >= TODAY;\n      }).sort(function(a, b) {\n        if (state.sort === 'name') return a.name.localeCompare(b.name, T.date_locale);\n        var sa = a.start < TODAY ? TODAY : a.start;\n        var sb = b.start < TODAY ? TODAY : b.start;\n        return sa.localeCompare(sb) || byTime(a, b);\n      });\n\n      if (!list.length) {\n        sec.appendChild(empty(T.anim_no_upcoming, state.cat === 'all' ? T.anim_soon : T.anim_try_cat));\n        return;\n      }\n\n      sec.appendChild(grid(list.slice(0, state.upcomingLimit), { date: true }, true));\n\n      if (list.length > state.upcomingLimit) {\n        var more = el('div', 'ea-more');\n        var b = el('button', 'ea-btn ea-btn--soft', tf('anim_more', list.length - state.upcomingLimit));\n        b.appendChild(icon('arrow'));\n        b.type = 'button';\n        b.addEventListener('click', function() {\n          state.upcomingLimit += UPCOMING_STEP;\n          renderUpcoming();\n        });\n        more.appendChild(b);\n        sec.appendChild(more);\n      }\n    }\n\n    function setCat(key) {\n      state.cat = key;\n      rerenderAll();\n    }\n\n    function setScope(scope) {\n      state.scope = scope;\n      state.cat = 'all';\n      app.querySelectorAll('.ea-scope button').forEach(function(b) {\n        b.setAttribute('aria-pressed', b.getAttribute('data-scope') === scope ? 'true' : 'false');\n      });\n      rerenderAll();\n    }\n\n    function rerenderAll() {\n      state.upcomingLimit = UPCOMING_STEP;\n      state.todayAll = false;\n      renderToday();\n      renderWeek();\n      renderUpcoming();\n      renderCalendar();\n    }\n\n    \/** Apr\u00e8s un re-rendu, garde le focus sur la liste d\u00e9roulante utilis\u00e9e *\/\n    function focusUpcoming(i) {\n      var sel = document.querySelectorAll('#ea-sec-upcoming .ea-select')[i];\n      if (sel) sel.focus();\n    }\n\n    \/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n    \/\/ 6. CALENDRIER DU MOIS (secondaire, repliable)\n    \/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n    var MAX_LANES = 3;\n\n    \/** Place les \u00e9v\u00e9nements d'une semaine en couloirs sans chevauchement *\/\n    function layoutLanes(from, to) {\n      var items = eventsBetween(from, to).map(function(e) {\n        var s = e.start < from ? from : e.start;\n        var t = e.end > to ? to : e.end;\n        return { e: e, col: daysBetween(from, s) + 1, span: daysBetween(s, t) + 1, fromBefore: e.start < from, toAfter: e.end > to };\n      });\n      items.sort(function(a, b) {\n        return (a.col - b.col) || (b.span - a.span) || (a.e.start_time || '').localeCompare(b.e.start_time || '');\n      });\n      var ends = [];\n      items.forEach(function(it) {\n        var lane = 0;\n        while (ends[lane] !== undefined && ends[lane] >= it.col) lane++;\n        ends[lane] = it.col + it.span - 1;\n        it.lane = lane;\n      });\n      return items;\n    }\n\n    function renderCalendar() {\n      var sec = document.getElementById('ea-sec-calendar');\n      sec.innerHTML = '';\n\n      var toggle = el('button', 'ea-btn ea-btn--soft', state.calendarOpen ? T.anim_hide_cal : T.anim_show_cal);\n      toggle.appendChild(icon('arrow'));\n      toggle.type = 'button';\n      toggle.setAttribute('aria-expanded', state.calendarOpen ? 'true' : 'false');\n      toggle.setAttribute('aria-controls', 'ea-cal-panel');\n      toggle.addEventListener('click', function() {\n        state.calendarOpen = !state.calendarOpen;\n        renderCalendar();\n        var b = document.querySelector('#ea-sec-calendar [aria-controls=\"ea-cal-panel\"]');\n        if (b) b.focus();\n      });\n      sec.appendChild(head('ea-calendar-title', 'calendar', T.anim_cal_title, T.anim_cal_sub, toggle));\n\n      var panel = el('div', 'ea-cal-panel');\n      panel.id = 'ea-cal-panel';\n      panel.hidden = !state.calendarOpen;\n      sec.appendChild(panel);\n      if (!state.calendarOpen) return;\n\n      var first = state.month + '-01';\n      var firstDate = toDate(first);\n      var lastDay = toYmd(new Date(firstDate.getFullYear(), firstDate.getMonth() + 1, 0, 12));\n      var gridStart = weekStart(first);\n      var gridEnd = addDays(weekStart(lastDay), 6);\n\n      var bar = el('div', 'ea-cal-toolbar');\n      bar.appendChild(el('h3', 'ea-cal-month', ucfirst(fmt(first, { month: 'long', year: 'numeric' }))));\n      var nav = el('div', 'ea-head-side');\n      nav.appendChild(round('\u2039', T.anim_prev_month, function() {\n        state.month = toYmd(new Date(firstDate.getFullYear(), firstDate.getMonth() - 1, 1, 12)).slice(0, 7);\n        state.selectedDay = null;\n        renderCalendar();\n      }));\n      nav.appendChild(round('\u203a', T.anim_next_month, function() {\n        state.month = toYmd(new Date(firstDate.getFullYear(), firstDate.getMonth() + 1, 1, 12)).slice(0, 7);\n        state.selectedDay = null;\n        renderCalendar();\n      }));\n      bar.appendChild(nav);\n      panel.appendChild(bar);\n\n      var month = el('div', 'ea-month');\n      var mh = el('div', 'ea-month-head');\n      \/\/ Lundi \u2192 dimanche, abr\u00e9g\u00e9s dans la langue de la page (5 janv. 2026 = un lundi)\n      [5, 6, 7, 8, 9, 10, 11].map(function(dd) { return ucfirst(fmt('2026-01-' + (dd < 10 ? '0' : '') + dd, { weekday: 'short' }).replace('.', '')); }).forEach(function(d) {\n        mh.appendChild(el('div', null, d));\n      });\n      month.appendChild(mh);\n      for (var ws = gridStart; ws <= gridEnd; ws = addDays(ws, 7)) month.appendChild(monthRow(ws));\n      panel.appendChild(month);\n\n      \/\/ D\u00e9tail uniquement apr\u00e8s un clic sur un jour\n      if (state.selectedDay) {\n        var dp = el('div', 'ea-daypanel');\n        dp.id = 'ea-daypanel';\n        dp.appendChild(el('h3', 'ea-daypanel-title', ucfirst(fmt(state.selectedDay, { weekday: 'long', day: 'numeric', month: 'long' }))));\n        var list = eventsOn(state.selectedDay);\n        dp.appendChild(list.length ? grid(list, { day: state.selectedDay }) : empty(T.anim_nothing_day));\n        panel.appendChild(dp);\n      }\n    }\n\n    function monthRow(from) {\n      var to = addDays(from, 6);\n      var items = layoutLanes(from, to);\n      var row = el('div', 'ea-mrow');\n      var hidden = [0, 0, 0, 0, 0, 0, 0];\n      items.forEach(function(it) {\n        if (it.lane >= MAX_LANES) {\n          for (var d = it.col; d < it.col + it.span; d++) hidden[d - 1]++;\n        }\n      });\n\n      for (var i = 0; i < 7; i++) {\n        (function(day, i) {\n          var inMonth = day.slice(0, 7) === state.month;\n          var cell = el('button', 'ea-mcell' + (inMonth ? '' : ' ea-mcell--out') + (day === state.selectedDay ? ' ea-mcell--selected' : ''));\n          cell.type = 'button';\n          cell.style.gridColumn = String(i + 1);\n          cell.setAttribute('aria-label', fmt(day, { weekday: 'long', day: 'numeric', month: 'long' }) + ' : ' + (function(n) { return n ? tf(n > 1 ? 'anim_activities' : 'anim_activity', n) : T.anim_nothing; })(eventsOn(day).length));\n          cell.addEventListener('click', function() {\n            state.selectedDay = day;\n            if (!inMonth) state.month = day.slice(0, 7);\n            renderCalendar();\n            var dp = document.getElementById('ea-daypanel');\n            if (dp && dp.scrollIntoView) dp.scrollIntoView({ behavior: 'smooth', block: 'nearest' });\n          });\n          row.appendChild(cell);\n\n          var num = el('span', 'ea-mnum' + (inMonth ? '' : ' ea-mnum--out') + (day === TODAY ? ' ea-mnum--today' : ''), String(toDate(day).getDate()));\n          num.style.gridColumn = String(i + 1);\n          row.appendChild(num);\n\n          if (hidden[i]) {\n            var more = el('span', 'ea-mmore', '+' + hidden[i]);\n            more.style.gridColumn = String(i + 1);\n            row.appendChild(more);\n          }\n        })(addDays(from, i), i);\n      }\n\n      items.forEach(function(it) {\n        if (it.lane >= MAX_LANES) return;\n        var e = it.e;\n        var b = el('button', 'ea-mbar' +\n          (it.fromBefore ? ' ea-mbar--from-before' : '') +\n          (it.toAfter ? ' ea-mbar--to-after' : '') +\n          (e.end < TODAY ? ' ea-mbar--ended' : ''), ((!it.fromBefore && e.start_time) ? e.start_time + ' ' : '') + e.name);\n        b.type = 'button';\n        b.title = e.name;\n        applyCat(b, e.category);\n        b.style.gridColumn = it.col + ' \/ span ' + it.span;\n        b.style.gridRow = String(it.lane + 2);\n        b.addEventListener('click', function() {\n          openModal(e);\n        });\n        row.appendChild(b);\n      });\n      return row;\n    }\n\n    \/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n    \/\/ MODAL \u2014 d\u00e9plac\u00e9e dans <body data-rsssl=1> pour \u00e9chapper \u00e0 la largeur max du contenu\n    \/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n    var modal = document.getElementById('ea-modal');\n    if (modal && modal.parentNode !== document.body) document.body.appendChild(modal);\n    var modalContent = document.getElementById('ea-modal-content');\n    var lastFocus = null;\n\n    function openModal(e) {\n      lastFocus = document.activeElement;\n      modalContent.innerHTML = '';\n\n      if (e.image || DEFAULT_IMG) {\n        var img = media(e, 'ea-modal-img');\n        img.loading = 'eager';\n        modalContent.appendChild(img);\n      }\n\n      var body = el('div', 'ea-modal-body');\n      if (catLabel(e)) body.appendChild(pill(e));\n      var t = el('h2', 'ea-modal-title', e.name);\n      t.id = 'ea-modal-title';\n      body.appendChild(t);\n\n      var info = el('div', 'ea-modal-info');\n      var when = el('span');\n      when.appendChild(icon('calendar'));\n      when.appendChild(document.createTextNode(fullWhenLabel(e)));\n      info.appendChild(when);\n      if (placeLabel(e)) {\n        var where = el('span');\n        where.appendChild(icon(e.onsite ? 'tent' : 'pin'));\n        where.appendChild(document.createTextNode(placeLabel(e)));\n        info.appendChild(where);\n      }\n      if (e.registration) {\n        var reg = el('span');\n        reg.appendChild(icon('pen'));\n        reg.appendChild(el('strong', null, T.registration));\n        info.appendChild(reg);\n      }\n      body.appendChild(info);\n\n      if (e.description) body.appendChild(el('p', 'ea-modal-desc', e.description));\n\n      if (e.link) {\n        var a = el('a', 'ea-btn', T.anim_more_info);\n        a.href = e.link;\n        a.target = '_blank';\n        a.rel = 'noopener';\n        a.appendChild(icon('external'));\n        a.appendChild(el('span', 'ea-sr', T.anim_new_tab));\n        body.appendChild(a);\n      }\n      modalContent.appendChild(body);\n\n      modal.hidden = false;\n      document.documentElement.style.overflow = 'hidden';\n      document.getElementById('ea-modal-close').focus();\n    }\n\n    function closeModal() {\n      modal.hidden = true;\n      document.documentElement.style.overflow = '';\n      if (lastFocus && lastFocus.focus) lastFocus.focus();\n    }\n\n    document.getElementById('ea-modal-close').addEventListener('click', closeModal);\n    modal.addEventListener('click', function(ev) {\n      if (ev.target === modal) closeModal();\n    });\n    document.addEventListener('keydown', function(ev) {\n      if (modal.hidden) return;\n      if (ev.key === 'Escape') closeModal();\n      \/\/ Focus gard\u00e9 dans la modal\n      if (ev.key === 'Tab') {\n        var f = modal.querySelectorAll('button, a[href]');\n        if (!f.length) return;\n        var firstF = f[0],\n          lastF = f[f.length - 1];\n        if (ev.shiftKey && document.activeElement === firstF) {\n          ev.preventDefault();\n          lastF.focus();\n        } else if (!ev.shiftKey && document.activeElement === lastF) {\n          ev.preventDefault();\n          firstF.focus();\n        }\n      }\n    });\n\n    \/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n    \/\/ NAVIGATION RAPIDE + SUIVI DE SECTION\n    \/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n    \/**\n     * Hauteur occup\u00e9e en haut de l'\u00e9cran par les barres fixes \/ collantes du site\n     * (barre d'admin, en-t\u00eate, barre de r\u00e9servation\u2026), quelle que soit leur classe :\n     * on sonde le haut de l'\u00e9cran et on empile les barres trouv\u00e9es.\n     *\/\n    function headerOffset() {\n      var bottom = 0;\n      var vw = window.innerWidth,\n        vh = window.innerHeight;\n      var isBar = function(el) {\n        if (!el || el === document.body || el === document.documentElement) return false;\n        if (el.closest('#ea-app, .ea-modal-overlay, .mv-modal-overlay')) return false;\n        var pos = getComputedStyle(el).position;\n        if (pos !== 'fixed' && pos !== 'sticky') return false;\n        var r = el.getBoundingClientRect();\n        \/\/ vraie barre : large, pas trop haute (exclut bulles de chat, boutons flottants, popups)\n        return r.width >= vw * 0.3 && r.height > 0 && r.height < vh * 0.45;\n      };\n      for (var pass = 0; pass < 5; pass++) {\n        var y = bottom + 2,\n          found = 0;\n        if (y >= vh * 0.5) break;\n        [0.15, 0.5, 0.85].forEach(function(fx) {\n          (document.elementsFromPoint(vw * fx, y) || []).forEach(function(el) {\n            for (var n = el; n && n !== document.body; n = n.parentElement) {\n              if (isBar(n)) {\n                var r = n.getBoundingClientRect();\n                if (r.top <= y + 1 && r.bottom > found) found = r.bottom;\n                break;\n              }\n            }\n          });\n        });\n        if (found <= bottom) break;\n        bottom = found;\n      }\n      app.style.setProperty('--ea-header', Math.round(bottom) + 'px');\n      return bottom;\n    }\n\n    var navLinks = Array.prototype.slice.call(app.querySelectorAll('.ea-nav a'));\n\n    function setCurrent(id) {\n      navLinks.forEach(function(a) {\n        a.setAttribute('aria-current', a.getAttribute('href') === '#' + id ? 'true' : 'false');\n      });\n    }\n\n    navLinks.forEach(function(a) {\n      a.addEventListener('click', function(ev) {\n        var target = document.getElementById(a.getAttribute('href').slice(1));\n        if (!target) return;\n        ev.preventDefault();\n        if (a.getAttribute('href') === '#ea-sec-calendar' && !state.calendarOpen) {\n          state.calendarOpen = true;\n          renderCalendar();\n        }\n        setCurrent(target.id);\n        target.scrollIntoView({ behavior: 'smooth', block: 'start' });\n      });\n    });\n\n    if ('IntersectionObserver' in window) {\n      var io = new IntersectionObserver(function(entries) {\n        entries.forEach(function(en) {\n          if (en.isIntersecting) setCurrent(en.target.id);\n        });\n      }, { rootMargin: '-35% 0px -55% 0px' });\n      ['ea-sec-today', 'ea-sec-week', 'ea-sec-upcoming', 'ea-sec-calendar'].forEach(function(id) {\n        io.observe(document.getElementById(id));\n      });\n    }\n\n    var ticking = false;\n    window.addEventListener('scroll', function() {\n      if (ticking) return;\n      ticking = true;\n      requestAnimationFrame(function() {\n        headerOffset();\n        ticking = false;\n      });\n    }, { passive: true });\n    window.addEventListener('resize', headerOffset);\n\n    \/\/ Semaine : on ouvre sur le prochain jour anim\u00e9 (aujourd'hui est d\u00e9j\u00e0 en haut de page)\n    (function() {\n      var ws = weekStart(TODAY);\n      for (var d = addDays(TODAY, 1); d <= addDays(ws, 6); d = addDays(d, 1)) {\n        if (eventsOn(d).length) {\n          state.weekDay = d;\n          return;\n        }\n      }\n    })();\n\n    app.querySelectorAll('.ea-scope button').forEach(function(b) {\n      b.addEventListener('click', function() {\n        setScope(b.getAttribute('data-scope'));\n      });\n    });\n\n    headerOffset();\n    renderToday();\n    renderWeek();\n    renderUpcoming();\n    renderCalendar();\n  })();\n<\/script>\n\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"sujet":[],"class_list":["post-3545","page","type-page","status-publish","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Animatie en evenementen - Camping des Etangs ****<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.camping-aubigny.com\/elaia-animations\/\" \/>\n<meta property=\"og:locale\" content=\"nl_NL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Animatie en evenementen - Camping des Etangs ****\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.camping-aubigny.com\/elaia-animations\/\" \/>\n<meta property=\"og:site_name\" content=\"Camping des Etangs ****\" \/>\n<meta property=\"article:modified_time\" content=\"2026-10-20T19:58:26+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.camping-aubigny.com\\\/elaia-animations\\\/\",\"url\":\"https:\\\/\\\/www.camping-aubigny.com\\\/elaia-animations\\\/\",\"name\":\"Animatie en evenementen - Camping des Etangs ****\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.camping-aubigny.com\\\/#website\"},\"datePublished\":\"2026-10-20T19:58:25+00:00\",\"dateModified\":\"2026-10-20T19:58:26+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.camping-aubigny.com\\\/elaia-animations\\\/#breadcrumb\"},\"inLanguage\":\"nl-NL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.camping-aubigny.com\\\/elaia-animations\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.camping-aubigny.com\\\/elaia-animations\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Kamperen in Cher\",\"item\":\"https:\\\/\\\/www.camping-aubigny.com\\\/nl\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Animatie en evenementen\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.camping-aubigny.com\\\/#website\",\"url\":\"https:\\\/\\\/www.camping-aubigny.com\\\/\",\"name\":\"Camping des Etangs ****\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.camping-aubigny.com\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.camping-aubigny.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"nl-NL\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.camping-aubigny.com\\\/#organization\",\"name\":\"Camping des \u00e9tangs\",\"url\":\"https:\\\/\\\/www.camping-aubigny.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"nl-NL\",\"@id\":\"https:\\\/\\\/www.camping-aubigny.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.camping-aubigny.com\\\/wp-content\\\/uploads\\\/2022\\\/05\\\/logo_camping-des-etangs-sans-fond.png\",\"contentUrl\":\"https:\\\/\\\/www.camping-aubigny.com\\\/wp-content\\\/uploads\\\/2022\\\/05\\\/logo_camping-des-etangs-sans-fond.png\",\"width\":237,\"height\":208,\"caption\":\"Camping des \u00e9tangs\"},\"image\":{\"@id\":\"https:\\\/\\\/www.camping-aubigny.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Animatie en evenementen - Camping des Etangs ****","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.camping-aubigny.com\/elaia-animations\/","og_locale":"nl_NL","og_type":"article","og_title":"Animatie en evenementen - Camping des Etangs ****","og_url":"https:\/\/www.camping-aubigny.com\/elaia-animations\/","og_site_name":"Camping des Etangs ****","article_modified_time":"2026-10-20T19:58:26+00:00","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.camping-aubigny.com\/elaia-animations\/","url":"https:\/\/www.camping-aubigny.com\/elaia-animations\/","name":"Animatie en evenementen - Camping des Etangs ****","isPartOf":{"@id":"https:\/\/www.camping-aubigny.com\/#website"},"datePublished":"2026-10-20T19:58:25+00:00","dateModified":"2026-10-20T19:58:26+00:00","breadcrumb":{"@id":"https:\/\/www.camping-aubigny.com\/elaia-animations\/#breadcrumb"},"inLanguage":"nl-NL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.camping-aubigny.com\/elaia-animations\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.camping-aubigny.com\/elaia-animations\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Kamperen in Cher","item":"https:\/\/www.camping-aubigny.com\/nl\/"},{"@type":"ListItem","position":2,"name":"Animatie en evenementen"}]},{"@type":"WebSite","@id":"https:\/\/www.camping-aubigny.com\/#website","url":"https:\/\/www.camping-aubigny.com\/","name":"Camping des Etangs ****","description":"","publisher":{"@id":"https:\/\/www.camping-aubigny.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.camping-aubigny.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"nl-NL"},{"@type":"Organization","@id":"https:\/\/www.camping-aubigny.com\/#organization","name":"Camping des \u00e9tangs","url":"https:\/\/www.camping-aubigny.com\/","logo":{"@type":"ImageObject","inLanguage":"nl-NL","@id":"https:\/\/www.camping-aubigny.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.camping-aubigny.com\/wp-content\/uploads\/2022\/05\/logo_camping-des-etangs-sans-fond.png","contentUrl":"https:\/\/www.camping-aubigny.com\/wp-content\/uploads\/2022\/05\/logo_camping-des-etangs-sans-fond.png","width":237,"height":208,"caption":"Camping des \u00e9tangs"},"image":{"@id":"https:\/\/www.camping-aubigny.com\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/www.camping-aubigny.com\/nl\/wp-json\/wp\/v2\/pages\/3545","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.camping-aubigny.com\/nl\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.camping-aubigny.com\/nl\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.camping-aubigny.com\/nl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.camping-aubigny.com\/nl\/wp-json\/wp\/v2\/comments?post=3545"}],"version-history":[{"count":1,"href":"https:\/\/www.camping-aubigny.com\/nl\/wp-json\/wp\/v2\/pages\/3545\/revisions"}],"predecessor-version":[{"id":3546,"href":"https:\/\/www.camping-aubigny.com\/nl\/wp-json\/wp\/v2\/pages\/3545\/revisions\/3546"}],"wp:attachment":[{"href":"https:\/\/www.camping-aubigny.com\/nl\/wp-json\/wp\/v2\/media?parent=3545"}],"wp:term":[{"taxonomy":"sujet","embeddable":true,"href":"https:\/\/www.camping-aubigny.com\/nl\/wp-json\/wp\/v2\/sujet?post=3545"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}