{"id":2321,"date":"2026-11-02T13:06:17","date_gmt":"2026-11-02T12:06:17","guid":{"rendered":"https:\/\/www.campinglespalmiers.com\/elaia-animations-2\/"},"modified":"2026-11-02T13:06:17","modified_gmt":"2026-11-02T12:06:17","slug":"elaia-animations","status":"publish","type":"page","link":"https:\/\/www.campinglespalmiers.com\/en\/elaia-animations\/","title":{"rendered":"Activities and events"},"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    \/* Pas de fond propre : la page se pose sur celui du th\u00e8me (un aplat cr\u00e8me\n       laissait des bandes blanches de part et d'autre). *\/\n    background: transparent;\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  \/* Sans bandeau : police, taille et couleur du titre restent celles du th\u00e8me. *\/\n  .ea-intro {\n    max-width: 720px;\n    margin: 0 auto;\n    text-align: center;\n  }\n\n  .ea-intro-title {\n    margin: 0 0 8px !important;\n  }\n\n  .ea-intro-text {\n    margin: 0 !important;\n    opacity: 0.85;\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 (collante)\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-nav {\n    position: sticky;\n    top: calc(var(--ea-header) + 8px);\n    z-index: 20;\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  \/* Cr\u00e9dit photo (obligatoire pour les images sous licence CC BY\u2026) *\/\n  .ea-credit {\n    position: absolute;\n    right: 6px;\n    bottom: 6px;\n    z-index: 2;\n    max-width: calc(100% - 12px);\n    padding: 2px 6px;\n    border-radius: 4px;\n    background: rgba(0, 0, 0, 0.55);\n    color: #fff;\n    font-size: 10px;\n    line-height: 1.3;\n    white-space: nowrap;\n    overflow: hidden;\n    text-overflow: ellipsis;\n    pointer-events: none;\n  }\n\n  .ea-modal-media {\n    position: relative;\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\">Enjoy unforgettable moments<\/span>\n      <h1 class=\"ea-hero-title\">Activities &amp; events<\/h1>\n      <p class=\"ea-hero-text\">Find all current activities, this week&#039;s highlights and upcoming events during your stay.<\/p>\n    <\/div>\n  <\/section>\n\n  <!-- 2. Navigation rapide (collante) + filtre sur place \/ aux alentours -->\n  <nav class=\"ea-nav\" aria-label=\"Page sections\">\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>Today<\/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>This 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>Upcoming<\/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>Calendar<\/a>\n      <\/div>\n              <span class=\"ea-nav-sep\" aria-hidden=\"true\"><\/span>\n        <div class=\"ea-scope\" role=\"group\" aria-label=\"Where?\">\n          <button type=\"button\" data-scope=\"all\" aria-pressed=\"true\">All<\/button>\n                    <button type=\"button\" data-scope=\"onsite\" aria-pressed=\"false\" disabled title=\"No on-site activity at the moment\">On site<\/button>\n          <button type=\"button\" data-scope=\"nearby\" aria-pressed=\"false\">Nearby<\/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>Exposition : Solange Nunney<\/strong> \u2014 Du 01\/01\/2026 au 31\/12\/2026 \u00e0 23:59 \u2014 56360 Le Palais<\/li>\n              <li><strong>Exposition Secrets des abysses<\/strong> \u2014 Du 05\/01\/2026 au 03\/01\/2027 \u00e0 23:59 \u2014 56370 Le Tour-du-Parc<\/li>\n              <li><strong>Grave ton menhir !<\/strong> \u2014 Du 08\/06\/2026 au 06\/06\/2027 \u00e0 23:59 \u2014 56340 Carnac<\/li>\n              <li><strong>Formation &quot;Mangez les Plantes Sauvages !&quot;<\/strong> \u2014 Du 26\/09\/2026 \u00e0 09:30 au 12\/06\/2027 \u00e0 23:59 \u2014 56390 Brandivy<\/li>\n              <li><strong>Exposition - Equipage Tg&#039;Raid<\/strong> \u2014 Du 03\/10\/2026 au 07\/11\/2026 \u00e0 23:59 \u2014 56330 Pluvigner<\/li>\n              <li><strong>Exposition : Les coquillages dans tous leurs \u00e9tats<\/strong> \u2014 Du 10\/10\/2026 au 13\/12\/2026 \u00e0 23:59 \u2014 56370 Le Tour-du-Parc<\/li>\n              <li><strong>Rando jeu d&#039;Halloween<\/strong> \u2014 Du 17\/10\/2026 au 04\/11\/2026 \u00e0 23:59 \u2014 56340 Carnac<\/li>\n              <li><strong>Micro-Folie : agenda de Novembre<\/strong> \u2014 Du 02\/11\/2026 au 30\/11\/2026 \u00e0 23:59 \u2014 56510 Saint-Pierre-Quiberon<\/li>\n              <li><strong>Terra Initia - Exposition TR&#039;\u00c2MES<\/strong> \u2014 Du 02\/11\/2026 \u00e0 10:00 au 02\/11\/2026 \u00e0 23:59 \u2014 56340 Carnac<\/li>\n              <li><strong>Exposition Bretagne Vagabonde<\/strong> \u2014 Du 03\/11\/2026 au 28\/11\/2026 \u00e0 23:59 \u2014 56510 Saint-Pierre-Quiberon<\/li>\n              <li><strong>Atelier danse bretonne - Da\u00f1s Alre<\/strong> \u2014 Du 03\/11\/2026 \u00e0 05:00 au 04\/11\/2026 \u00e0 23:59 \u2014 56400 Auray<\/li>\n              <li><strong>March\u00e9 hebdomadaire \u00e0 La Trinit\u00e9-sur-Mer<\/strong> \u2014 Du 03\/11\/2026 \u00e0 08:00 au 03\/11\/2026 \u00e0 23:59 \u2014 56470 La Trinit\u00e9-sur-Mer<\/li>\n              <li><strong>March\u00e9 hebdomadaire \u00e0 Locmariaquer<\/strong> \u2014 Du 03\/11\/2026 \u00e0 09:00 au 03\/11\/2026 \u00e0 23:59 \u2014 56740 Locmariaquer<\/li>\n              <li><strong>Les dinos rigolos<\/strong> \u2014 Du 03\/11\/2026 \u00e0 10:00 au 14\/11\/2026 \u00e0 23:59 \u2014 56740 Locmariaquer<\/li>\n              <li><strong>Soir\u00e9e Surprise au Paradis !<\/strong> \u2014 Du 03\/11\/2026 \u00e0 19:00 au 03\/11\/2026 \u00e0 23:59 \u2014 56170 Quiberon<\/li>\n              <li><strong>Chants orthodoxes et traditionnels ukrainiens<\/strong> \u2014 Du 03\/11\/2026 \u00e0 20:00 au 03\/11\/2026 \u00e0 23:59 \u2014 56740 Locmariaquer<\/li>\n              <li><strong>Matin\u00e9e jeux petite enfance<\/strong> \u2014 Du 04\/11\/2026 \u00e0 10:00 au 04\/11\/2026 \u00e0 23:59 \u2014 56340 Carnac<\/li>\n              <li><strong>March\u00e9 hebdomadaire de Landaul<\/strong> \u2014 Du 04\/11\/2026 \u00e0 16:00 au 04\/11\/2026 \u00e0 23:59 \u2014 56690 Landaul<\/li>\n              <li><strong>Le Petit March\u00e9 du vendredi<\/strong> \u2014 Du 06\/11\/2026 \u00e0 16:00 au 06\/11\/2026 \u00e0 23:59 \u2014 56330 Camors<\/li>\n              <li><strong>March\u00e9 hebdomadaire \u00e0 Locoal-Mendon<\/strong> \u2014 Du 06\/11\/2026 \u00e0 16:30 au 06\/11\/2026 \u00e0 23:59 \u2014 56550 Locoal-Mendon<\/li>\n              <li><strong>Cali \u2022 en concert au Domaine le Mezo<\/strong> \u2014 Du 06\/11\/2026 \u00e0 19:00 au 06\/11\/2026 \u00e0 23:59 \u2014 56610 Arradon<\/li>\n              <li><strong>D\u00eeners Music Live<\/strong> \u2014 Du 06\/11\/2026 \u00e0 20:00 au 06\/11\/2026 \u00e0 23:59 \u2014 56170 Quiberon<\/li>\n              <li><strong>Cali \u2022 en concert au Domaine le Mezo<\/strong> \u2014 Du 06\/11\/2026 \u00e0 21:00 au 06\/11\/2026 \u00e0 23:59 \u2014 56880 Ploeren<\/li>\n              <li><strong>Arriv\u00e9e du Trail de la Baie de Quiberon<\/strong> \u2014 Du 07\/11\/2026 au 07\/11\/2026 \u00e0 23:59 \u2014 56170 Quiberon<\/li>\n              <li><strong>Trail de la Baie de Quiberon<\/strong> \u2014 Du 07\/11\/2026 \u00e0 07:00 au 07\/11\/2026 \u00e0 23:59 \u2014 56340 Carnac<\/li>\n              <li><strong>March\u00e9 hebdomadaire de Quiberon<\/strong> \u2014 Du 07\/11\/2026 \u00e0 08:00 au 07\/11\/2026 \u00e0 23:59 \u2014 56170 Quiberon<\/li>\n              <li><strong>Chantier nature sur la lande de Kercadoret<\/strong> \u2014 Du 07\/11\/2026 \u00e0 09:00 au 07\/11\/2026 \u00e0 23:59 \u2014 56740 Locmariaquer<\/li>\n              <li><strong>L\u2019Argonaute en f\u00eate \u2013 Salon des cr\u00e9ateurs et m\u00e9tiers d\u2019art<\/strong> \u2014 Du 07\/11\/2026 \u00e0 10:00 au 08\/11\/2026 \u00e0 23:59 \u2014 56400 Auray<\/li>\n              <li><strong>Cin\u00e9-\u00e9change : Les trois vies du patron Emile Daniel &amp; La barre Etel 1958<\/strong> \u2014 Du 07\/11\/2026 \u00e0 15:50 au 07\/11\/2026 \u00e0 23:59 \u2014 56410 \u00c9tel<\/li>\n              <li><strong>Concert Toutes Voix Dehors Halloween<\/strong> \u2014 Du 07\/11\/2026 \u00e0 19:00 au 07\/11\/2026 \u00e0 23:59 \u2014 56360 Le Palais<\/li>\n              <li><strong>Repas chant\u00e9 (Kig Ha Farz)<\/strong> \u2014 Du 08\/11\/2026 \u00e0 12:00 au 08\/11\/2026 \u00e0 23:59 \u2014 56330 Pluvigner<\/li>\n              <li><strong>D\u00eener Jazz \u2022 Mokka<\/strong> \u2014 Du 10\/11\/2026 \u00e0 20:00 au 10\/11\/2026 \u00e0 23:59 \u2014 56880 Ploeren<\/li>\n              <li><strong>Cin\u00e9-\u00e9changes : Avoir 20 ans dans les Aur\u00e8s<\/strong> \u2014 Du 10\/11\/2026 \u00e0 21:20 au 10\/11\/2026 \u00e0 23:59 \u2014 56410 \u00c9tel<\/li>\n              <li><strong>Jouons avec les livres !<\/strong> \u2014 Du 12\/11\/2026 \u00e0 10:30 au 12\/11\/2026 \u00e0 23:59 \u2014 56950 Crach<\/li>\n              <li><strong>March\u00e9 Artisanal Solidaire<\/strong> \u2014 Du 13\/11\/2026 \u00e0 14:50 au 13\/11\/2026 \u00e0 23:59 \u2014 56470 Saint-Philibert<\/li>\n              <li><strong>Repas: Jarret-Frites<\/strong> \u2014 Du 14\/11\/2026 \u00e0 19:00 au 14\/11\/2026 \u00e0 23:59 \u2014 56690 Landaul<\/li>\n              <li><strong>Festival d\u2019humour<\/strong> \u2014 Du 14\/11\/2026 \u00e0 20:30 au 14\/11\/2026 \u00e0 23:59 \u2014 56950 Crach<\/li>\n              <li><strong>Th\u00e9\u00e2tre et musique: Quatre mains<\/strong> \u2014 Du 14\/11\/2026 \u00e0 20:30 au 14\/11\/2026 \u00e0 23:59 \u2014 56400 Brech<\/li>\n              <li><strong>Apr\u00e8m Ti Ludique<\/strong> \u2014 Du 15\/11\/2026 \u00e0 14:00 au 15\/11\/2026 \u00e0 23:59 \u2014 56400 Ploemel<\/li>\n              <li><strong>Fest Deiz: Anne-Marie Nicol et Gw\u00e9na\u00eblle Pineau<\/strong> \u2014 Du 15\/11\/2026 \u00e0 14:30 au 15\/11\/2026 \u00e0 23:59 \u2014 56400 Ploemel<\/li>\n              <li><strong>Projection - 50 ans de musique et de chants traditionnels \u00e0 Pluvigner<\/strong> \u2014 Du 15\/11\/2026 \u00e0 17:00 au 15\/11\/2026 \u00e0 23:59 \u2014 56330 Pluvigner<\/li>\n              <li><strong>Soir\u00e9e jeux pour les grands !<\/strong> \u2014 Du 17\/11\/2026 \u00e0 19:00 au 17\/11\/2026 \u00e0 23:59 \u2014 56470 Saint-Philibert<\/li>\n              <li><strong>Concert Jeune public - Mini\u00b7Maxi<\/strong> \u2014 Du 18\/11\/2026 \u00e0 10:00 au 18\/11\/2026 \u00e0 23:59 \u2014 56400 Auray<\/li>\n              <li><strong>Comptines et jeux de doigts<\/strong> \u2014 Du 18\/11\/2026 \u00e0 10:30 au 18\/11\/2026 \u00e0 23:59 \u2014 56340 Carnac<\/li>\n              <li><strong>Cin\u00e9-Doc : P\u00e9rou<\/strong> \u2014 Du 18\/11\/2026 \u00e0 15:00 au 18\/11\/2026 \u00e0 23:59 \u2014 56470 Saint-Philibert<\/li>\n              <li><strong>Cin\u00e9 doc - Futur, Reza et le futur du monde<\/strong> \u2014 Du 19\/11\/2026 \u00e0 20:30 au 19\/11\/2026 \u00e0 23:59 \u2014 56330 Pluvigner<\/li>\n              <li><strong>Soir\u00e9e jeux<\/strong> \u2014 Du 20\/11\/2026 \u00e0 18:00 au 20\/11\/2026 \u00e0 23:59 \u2014 56400 Sainte-Anne-d&#039;Auray<\/li>\n              <li><strong>Concerts au Coota<\/strong> \u2014 Du 20\/11\/2026 \u00e0 22:00 au 20\/11\/2026 \u00e0 23:59 \u2014 56410 Erdeven<\/li>\n              <li><strong>Avant-premi\u00e8re : &quot; Un bon petit soldat &quot;<\/strong> \u2014 Du 21\/11\/2026 \u00e0 20:30 au 21\/11\/2026 \u00e0 23:59 \u2014 56170 Quiberon<\/li>\n              <li><strong>Chevaleresses<\/strong> \u2014 Du 21\/11\/2026 \u00e0 20:30 au 21\/11\/2026 \u00e0 23:59 \u2014 56470 La Trinit\u00e9-sur-Mer<\/li>\n              <li><strong>Le temps d&#039;une histoire<\/strong> \u2014 Du 25\/11\/2026 \u00e0 10:30 au 25\/11\/2026 \u00e0 23:59 \u2014 56400 Brech<\/li>\n              <li><strong>CINE-DOCS VOYAGE : Le M\u00e9kong - Du Tibet au Vietnam- Film de Patrick MATHE<\/strong> \u2014 Du 25\/11\/2026 \u00e0 15:00 au 25\/11\/2026 \u00e0 23:59 \u2014 56340 Carnac<\/li>\n              <li><strong>Week end Cin\u00e9ma, BD, Litt\u00e9rature<\/strong> \u2014 Du 27\/11\/2026 au 27\/11\/2026 \u00e0 23:59 \u2014 56410 \u00c9tel<\/li>\n              <li><strong>Spectacle de danse &quot;le tour du monde en 80 pas&quot;<\/strong> \u2014 Du 27\/11\/2026 \u00e0 19:00 au 27\/11\/2026 \u00e0 23:59 \u2014 56340 Carnac<\/li>\n              <li><strong>Grande braderie festive et solidaire<\/strong> \u2014 Du 28\/11\/2026 \u00e0 10:00 au 28\/11\/2026 \u00e0 23:59 \u2014 56690 Land\u00e9vant<\/li>\n              <li><strong>Cin\u00e9-docs La Route de la Soie \u00ab Sur les traces de Marco Polo \u00bb<\/strong> \u2014 Du 28\/11\/2026 \u00e0 16:00 au 28\/11\/2026 \u00e0 23:59 \u2014 56410 Erdeven<\/li>\n              <li><strong>March\u00e9 et animations de No\u00ebl<\/strong> \u2014 Du 28\/11\/2026 \u00e0 17:00 au 28\/11\/2026 \u00e0 23:59 \u2014 56400 Plumergat<\/li>\n              <li><strong>Concert - FI\u00d1V<\/strong> \u2014 Du 28\/11\/2026 \u00e0 20:30 au 28\/11\/2026 \u00e0 23:59 \u2014 56330 Pluvigner<\/li>\n              <li><strong>March\u00e9 de No\u00ebl de l\u2019\u00e9cole des Crevettes bleues<\/strong> \u2014 Du 29\/11\/2026 \u00e0 09:00 au 29\/11\/2026 \u00e0 23:59 \u2014 56470 La Trinit\u00e9-sur-Mer<\/li>\n              <li><strong>Cin\u00e9 doc - La voix du M\u00e9kong, du Tibet \u00e0 H\u00f4 Chi Minh<\/strong> \u2014 Du 29\/11\/2026 \u00e0 17:00 au 29\/11\/2026 \u00e0 23:59 \u2014 56330 Pluvigner<\/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=\"Close\">\u00d7<\/button>\n    <div id=\"ea-modal-content\"><\/div>\n  <\/div>\n<\/div>\n\n<script>\n  (function() {\n    var EVENTS = [{\"id\":18,\"name\":\"Exposition : Solange Nunney\",\"type\":\"evenements-locaux-190\",\"category\":\"expositions\",\"label\":\"Du 01\\\/01\\\/2026 au 31\\\/12\\\/2026 \\u00e0 23:59\",\"start\":\"2026-01-01\",\"end\":\"2026-12-31\",\"start_time\":\"\",\"end_time\":\"\",\"open_start\":false,\"city\":\"56360 Le Palais\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Peintures, c\\u00e9ramiques, korrigans, sujets en tissus\",\"image\":\"\",\"credit\":\"\",\"link\":\"\"},{\"id\":49,\"name\":\"Exposition Secrets des abysses\",\"type\":\"evenements-locaux-190\",\"category\":\"expositions\",\"label\":\"Du 05\\\/01\\\/2026 au 03\\\/01\\\/2027 \\u00e0 23:59\",\"start\":\"2026-01-05\",\"end\":\"2027-01-03\",\"start_time\":\"\",\"end_time\":\"\",\"open_start\":false,\"city\":\"56370 Le Tour-du-Parc\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Notre nouvelle exposition photo est ouverte au public ! Elle pr\\u00e9sente les clich\\u00e9s de Gilles Martin r\\u00e9alis\\u00e9s en partenariat avec l'IFREMER au cours de la mission \\ud835\\ude4b\\ud835\\ude64\\ud835\\ude6a\\ud835\\ude67\\ud835\\ude66\\ud835\\ude6a\\ud835\\ude64\\ud835\\ude5e \\ud835\\ude65\\ud835\\ude56\\ud835\\ude68 \\ud835\\ude61\\ud835\\ude5a\\ud835\\ude68 \\ud835\\ude56\\ud835\\ude57\\ud835\\ude6e\\ud835\\ude68\\ud835\\ude68\\ud835\\ude5a\\ud835\\ude68 ? \\ud83e\\udd80\\n\\nVous y d\\u00e9couvrirez des esp\\u00e8ces vivant jusqu'\\u00e0 8 000 m de profondeur et des techniques de photographies surprenantes. La faune microscopique ne vous laissera pas indiff\\u00e9rents tant nous avons \\u00e0 apprendre d'elle.\\n\\nNous avons imagin\\u00e9 un coin enfant, de la sc\\u00e9nographie aux outils de m\\u00e9diation, pour que les plus petits plongent aussi dans ce monde myst\\u00e9rieux et fascinants...la \\ud835\\ude48\\ud835\\ude5e\\ud835\\ude68\\ud835\\ude68\\ud835\\ude5e\\ud835\\ude64\\ud835\\ude63 \\ud835\\ude3c\\ud835\\ude57\\ud835\\ude6e\\ud835\\ude68\\ud835\\ude68\\ud835\\ude5a\\ud835\\ude68 est lanc\\u00e9e ! \\ud83c\\udf0a\",\"image\":\"\",\"credit\":\"\",\"link\":\"https:\\\/\\\/www.ostreapolis.bzh\\\/\"},{\"id\":33,\"name\":\"Grave ton menhir !\",\"type\":\"evenements-locaux-190\",\"category\":\"expositions\",\"label\":\"Du 08\\\/06\\\/2026 au 06\\\/06\\\/2027 \\u00e0 23:59\",\"start\":\"2026-06-08\",\"end\":\"2027-06-06\",\"start_time\":\"\",\"end_time\":\"\",\"open_start\":false,\"city\":\"56340 Carnac\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"\\\" Encre, couleurs et Pr\\u00e9histoire \\\" : un travail des scolaires accompagn\\u00e9s par l\\u2019artiste Emma Burr.\\n\\nLes coll\\u00e9giens de Carnac et l'artiste plasticienne Emma BURR dressent une galerie de portraits des menhirs des Alignements. Dans un premier temps un parcours d\\u00e9couverte dans les Alignements est propos\\u00e9 : approche historique du ph\\u00e9nom\\u00e8ne m\\u00e9galithique et large s\\u00e9quence consacr\\u00e9e au dessin \\u00ab in situ \\u00bb et sur le vif sont au programme.\\nDans un second temps Emma BURR accompagne des s\\u00e9ances de pratique artistique au sein des deux coll\\u00e8ges de Carnac : reprise des dessins r\\u00e9alis\\u00e9s directement au contact des monuments, gravure \\u00e0 la pointe s\\u00e8che sur plaque de plexi, encrage et impression \\u00e0 la presse manuelle. La mise en couleur par la technique de l'aquarelle constitue la derni\\u00e8re \\u00e9tape.\\n\\nLe travail d\\u2019Emma Burr s\\u2019articule autour du dessin, de l\\u2019aquarelle et de la gravure. Elle puise son inspiration dans ce qui l\\u2019entoure : l\\u2019architecture et la\\nville, la nature et la flore en particulier, et les sc\\u00e8nes de plages, de balades, de sorties mus\\u00e9es.\\nEn savoir plus sur Emma Burr : https:\\\/\\\/emmaburr.com\\\/\\n\\nLe projet \\u00ab Grave ton menhir ! \\u00bb illustre la politique d'\\u00e9ducation artistique et culturelle du Centre des monuments nationaux qui ambitionne de faire du jeune public du territoire un acteur de la valorisation, de la promotion et de la pr\\u00e9servation des monuments dont il a h\\u00e9rit\\u00e9 des g\\u00e9n\\u00e9rations pr\\u00e9c\\u00e9dentes. Ce projet a b\\u00e9n\\u00e9fici\\u00e9 de la participation de nombreux acteurs et partenaires, qu'ils en soient tous vivement remerci\\u00e9s.\",\"image\":\"\",\"credit\":\"\",\"link\":\"https:\\\/\\\/www.menhirs-carnac.fr\\\/agenda\\\/grave-ton-menhir-!-encre-couleurs-et-prehistoire\"},{\"id\":3,\"name\":\"Formation \\\"Mangez les Plantes Sauvages !\\\"\",\"type\":\"evenements-locaux-190\",\"category\":\"sport-randonnee\",\"label\":\"Du 26\\\/09\\\/2026 \\u00e0 09:30 au 12\\\/06\\\/2027 \\u00e0 23:59\",\"start\":\"2026-09-26\",\"end\":\"2027-06-12\",\"start_time\":\"09:30\",\"end_time\":\"\",\"open_start\":false,\"city\":\"56390 Brandivy\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"L\\u2019Ecole de la Reliance au Vivant propose pour la deuxi\\u00e8me ann\\u00e9e cons\\u00e9cutive sa formation \\\"Mangez Sauvage !\\\", formation de botanique et ethnobotanique pratique et sensible.\\n9 journ\\u00e9e entre pratique et th\\u00e9orie - et gastronomie bien s\\u00fbr ! - pour pour apprendre \\u00e0 identifier, conna\\u00eetre, cueillir et cuisiner les plantes sauvages comestibles.\\nNous aborderons aussi les plantes m\\u00e9dicinales, et bien s\\u00fbr les plantes toxiques.\\nL\\u2019approche sensible compl\\u00e8tera l\\u2019apprentissage, pour embarquer tous nos sens dans cette aventure aupr\\u00e8s du vivant !\",\"image\":\"\",\"credit\":\"\",\"link\":\"https:\\\/\\\/luciebenoit.com\\\/formation-mangez-sauvage\"},{\"id\":44,\"name\":\"Exposition - Equipage Tg'Raid\",\"type\":\"evenements-locaux-190\",\"category\":\"expositions\",\"label\":\"Du 03\\\/10\\\/2026 au 07\\\/11\\\/2026 \\u00e0 23:59\",\"start\":\"2026-10-03\",\"end\":\"2026-11-07\",\"start_time\":\"\",\"end_time\":\"\",\"open_start\":false,\"city\":\"56330 Pluvigner\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Dans le cadre de l'Europ'Raid\",\"image\":\"\",\"credit\":\"\",\"link\":\"\"},{\"id\":20,\"name\":\"Exposition : Les coquillages dans tous leurs \\u00e9tats\",\"type\":\"evenements-locaux-190\",\"category\":\"expositions\",\"label\":\"Du 10\\\/10\\\/2026 au 13\\\/12\\\/2026 \\u00e0 23:59\",\"start\":\"2026-10-10\",\"end\":\"2026-12-13\",\"start_time\":\"\",\"end_time\":\"\",\"open_start\":false,\"city\":\"56370 Le Tour-du-Parc\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Ostr\\u00e9apolis accueille les collections de coquillages du mus\\u00e9e d'Histoire et d'Arch\\u00e9ologie de la ville de Vannes\",\"image\":\"\",\"credit\":\"\",\"link\":\"https:\\\/\\\/ostreapolis.bzh\\\/\"},{\"id\":22,\"name\":\"Rando jeu d'Halloween\",\"type\":\"evenements-locaux-190\",\"category\":\"en-famille\",\"label\":\"Du 17\\\/10\\\/2026 au 04\\\/11\\\/2026 \\u00e0 23:59\",\"start\":\"2026-10-17\",\"end\":\"2026-11-04\",\"start_time\":\"\",\"end_time\":\"\",\"open_start\":false,\"city\":\"56340 Carnac\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Du 17 octobre au 4 novembre\\nJeu de piste \\\"Le Laboratoire de Franck\\\"\\nPartez \\u00e0 la recherche des 7 affiches cach\\u00e9es dans le bourg de Carnac et cr\\u00e9ez votre propre cr\\u00e9ature en t\\u00e9l\\u00e9chargeant l\\u2019application Baludik. Gratuit ! \\nplus d'info sur www.ot-carnac.fr\\\/halloween\",\"image\":\"\",\"credit\":\"\",\"link\":\"https:\\\/\\\/www.ot-carnac.fr\\\/infos-pratiques\\\/agenda\\\/halloween\\\/\"},{\"id\":37,\"name\":\"Micro-Folie : agenda de Novembre\",\"type\":\"evenements-locaux-190\",\"category\":\"expositions\",\"label\":\"Du 02\\\/11\\\/2026 au 30\\\/11\\\/2026 \\u00e0 23:59\",\"start\":\"2026-11-02\",\"end\":\"2026-11-30\",\"start_time\":\"\",\"end_time\":\"\",\"open_start\":false,\"city\":\"56510 Saint-Pierre-Quiberon\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"En novembre, la Micro-Folie vous invite \\u00e0 d\\u00e9couvrir la culture autrement, entre exp\\u00e9riences immersives, jeux et cr\\u00e9ation num\\u00e9rique. R\\u00e9alit\\u00e9 virtuelle, tablettes, tournoi Mario Kart et d\\u00e9coupeuse num\\u00e9rique vous ouvrent les portes de nouveaux univers, \\u00e0 explorer par le jeu, l\\u2019exp\\u00e9rimentation et la curiosit\\u00e9.\\n\\n> 2 collections : \\u00ab R\\u00e9gion Grand Est \\u00bb et \\u00ab Qu\\u00e9bec \\u00bb\\n> 2 sessions de casques de r\\u00e9alit\\u00e9 virtuelle : Samedi 7 et vendredi 27\\n> 1 tournoi de jeu vid\\u00e9o :  Mercredi 18 \\n> 1 matin\\u00e9e jeux : Samedi 21\\n> 1 atelier FabLab : Samedi 28\\n\\nHoraires : \\nMardi : 16H-18H\\nMercredi : 10H-12H30\\nVendredi : 16H-18H\\nSamedi : 10H-12h30\\n\\ud83d\\udcccInformations et r\\u00e9servations : mediationculturelle@saintpierrequiberon.fr\\nhttps:\\\/\\\/www.saintpierrequiberon.fr\\\/listes\\\/micro-folie\\\/\",\"image\":\"\",\"credit\":\"\",\"link\":\"\"},{\"id\":56,\"name\":\"Terra Initia - Exposition TR'\\u00c2MES\",\"type\":\"evenements-locaux-190\",\"category\":\"expositions\",\"label\":\"Du 02\\\/11\\\/2026 \\u00e0 10:00 au 02\\\/11\\\/2026 \\u00e0 23:59\",\"start\":\"2026-11-02\",\"end\":\"2026-11-02\",\"start_time\":\"10:00\",\"end_time\":\"\",\"open_start\":false,\"city\":\"56340 Carnac\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Exposition : Peintures de B\\u00e9atrice Bescond, peintures et art textile de Lucy Pulvertaft, c\\u00e9ramiques de Sylvie Marchand.\\nGalerie ouverte les vendredi, samedis toute la journ\\u00e9e. Mercredi et dimanche matin\",\"image\":\"\",\"credit\":\"\",\"link\":\"\"},{\"id\":34,\"name\":\"Exposition Bretagne Vagabonde\",\"type\":\"evenements-locaux-190\",\"category\":\"expositions\",\"label\":\"Du 03\\\/11\\\/2026 au 28\\\/11\\\/2026 \\u00e0 23:59\",\"start\":\"2026-11-03\",\"end\":\"2026-11-28\",\"start_time\":\"\",\"end_time\":\"\",\"open_start\":false,\"city\":\"56510 Saint-Pierre-Quiberon\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"La m\\u00e9diath\\u00e8que de Saint-Pierre-Quiberon accueille, une exposition d\\u2019aquarelles r\\u00e9alis\\u00e9es par les membres de l\\u2019association Aquamer \\u2013 Atelier de peinture, bas\\u00e9e \\u00e0 Quiberon.\\n\\nCr\\u00e9\\u00e9e en 2015, l\\u2019association r\\u00e9unit des adh\\u00e9rents de Saint-Pierre-Quiberon et de Quiberon autour d\\u2019une m\\u00eame passion pour la peinture.\\nChaque semaine, ils se retrouvent pour suivre les cours anim\\u00e9s par deux artistes peintres. Une fois par mois, ils prolongent leur pratique en plein air, sur la presqu\\u2019\\u00eele ou dans les environs.\\nEngag\\u00e9e dans la vie culturelle locale, l\\u2019association participe \\u00e9galement \\u00e0 des animations et \\u00e0 des expositions dans les deux communes.\\n\\nVenez d\\u00e9couvrir leurs aquarelles et les paysages bretons qu\\u2019ils ont immortalis\\u00e9s au fil des cours et des ateliers tout au long de l\\u2019ann\\u00e9e.\",\"image\":\"\",\"credit\":\"\",\"link\":\"\"},{\"id\":4,\"name\":\"Atelier danse bretonne - Da\\u00f1s Alre\",\"type\":\"evenements-locaux-190\",\"category\":\"spectacles-cinema\",\"label\":\"Du 03\\\/11\\\/2026 \\u00e0 05:00 au 04\\\/11\\\/2026 \\u00e0 23:59\",\"start\":\"2026-11-03\",\"end\":\"2026-11-04\",\"start_time\":\"05:00\",\"end_time\":\"\",\"open_start\":false,\"city\":\"56400 Auray\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Entrez dans la danse avec l\\u2019animateur Kevin Guillo ! Ces cours sont ouverts \\u00e0 toutes et \\u00e0 tous, que vous soyez d\\u00e9butant ou d\\u00e9j\\u00e0 initi\\u00e9. Venez d\\u00e9couvrir les danses bretonnes ou approfondir votre pratique, dans une ambiance conviviale et chaleureuse !\\n\\nTous les mardis, hors vacances scolaires\",\"image\":\"\",\"credit\":\"\",\"link\":\"\"},{\"id\":16,\"name\":\"March\\u00e9 hebdomadaire \\u00e0 La Trinit\\u00e9-sur-Mer\",\"type\":\"evenements-locaux-190\",\"category\":\"marches-foires\",\"label\":\"Du 03\\\/11\\\/2026 \\u00e0 08:00 au 03\\\/11\\\/2026 \\u00e0 23:59\",\"start\":\"2026-11-03\",\"end\":\"2026-11-03\",\"start_time\":\"08:00\",\"end_time\":\"\",\"open_start\":false,\"city\":\"56470 La Trinit\\u00e9-sur-Mer\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Le march\\u00e9 hebdomadaire se tient le mardi et le vendredi matin de 8h \\u00e0 13h sur la place du Voulien.\",\"image\":\"\",\"credit\":\"\",\"link\":\"\"},{\"id\":11,\"name\":\"March\\u00e9 hebdomadaire \\u00e0 Locmariaquer\",\"type\":\"evenements-locaux-190\",\"category\":\"marches-foires\",\"label\":\"Du 03\\\/11\\\/2026 \\u00e0 09:00 au 03\\\/11\\\/2026 \\u00e0 23:59\",\"start\":\"2026-11-03\",\"end\":\"2026-11-03\",\"start_time\":\"09:00\",\"end_time\":\"\",\"open_start\":false,\"city\":\"56740 Locmariaquer\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Il se d\\u00e9roule tous les mardis et samedis matin de 9h \\u00e0 13h :\\n\\n- Centre Bourg de septembre \\u00e0 mai.\\n- Place De Gaulle de juin \\u00e0 ao\\u00fbt.\",\"image\":\"\",\"credit\":\"\",\"link\":\"\"},{\"id\":35,\"name\":\"Les dinos rigolos\",\"type\":\"evenements-locaux-190\",\"category\":\"en-famille\",\"label\":\"Du 03\\\/11\\\/2026 \\u00e0 10:00 au 14\\\/11\\\/2026 \\u00e0 23:59\",\"start\":\"2026-11-03\",\"end\":\"2026-11-14\",\"start_time\":\"10:00\",\"end_time\":\"\",\"open_start\":false,\"city\":\"56740 Locmariaquer\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Interpr\\u00e9tation fantaisiste des dinosaures. \\nExposition des cr\\u00e9ations r\\u00e9alis\\u00e9es par les enfants du Centre de Loisirs UFCV pendant les vacances de la Toussaint.\\n\\nHoraire : mardi, mercredi, samedi 10h\\\/12h30 - mercredi 15h\\\/18h et vendredi 16h\\\/18h\\n\\nGratuit\",\"image\":\"\",\"credit\":\"\",\"link\":\"https:\\\/\\\/www.calameo.com\\\/read\\\/0046368566d55c4deb482?utm_id=97758_v0_s00_e0_tv2_a1demo0ed4g20i\"},{\"id\":2,\"name\":\"Soir\\u00e9e Surprise au Paradis !\",\"type\":\"evenements-locaux-190\",\"category\":\"spectacles-cinema\",\"label\":\"Du 03\\\/11\\\/2026 \\u00e0 19:00 au 03\\\/11\\\/2026 \\u00e0 23:59\",\"start\":\"2026-11-03\",\"end\":\"2026-11-03\",\"start_time\":\"19:00\",\"end_time\":\"\",\"open_start\":false,\"city\":\"56170 Quiberon\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Le cin\\u00e9ma Le Paradis vous propose une soir\\u00e9e plac\\u00e9e sous le signe de la d\\u00e9couverte, avec un repas surprise suivi de la projection d\\u2019un film myst\\u00e8re en avant-premi\\u00e8re.\\n\\nOrganis\\u00e9e en partenariat avec l\\u2019Association fran\\u00e7aise des cin\\u00e9mas art et essai (AFCAE), cette soir\\u00e9e invite les spectateurs \\u00e0 se laisser surprendre, sans conna\\u00eetre \\u00e0 l\\u2019avance le film qui leur sera pr\\u00e9sent\\u00e9.\\n\\nAu programme :\\n\\n19h : Repas surprise au BDS, \\u00e0 Saint-Pierre-Quiberon. Menu \\u00e0 25 \\u20ac (hors boissons). R\\u00e9servation obligatoire avant le 30 octobre au 02 97 50 91 51.\\n21h : Film surprise en avant-premi\\u00e8re au cin\\u00e9ma Le Paradis. Une s\\u00e9ance tout public pour d\\u00e9couvrir un film avant sa sortie, sans en conna\\u00eetre le titre !\\nInformations et r\\u00e9servations pour la s\\u00e9ance :\\n\\nR\\u00e9servation directement au cin\\u00e9ma Le Paradis, aux heures d\\u2019ouverture\\nPar t\\u00e9l\\u00e9phone au 02 97 50 17 20\\nPar mail \\u00e0 cinemaleparadis@ville-quiberon.fr\",\"image\":\"\",\"credit\":\"\",\"link\":\"\"},{\"id\":45,\"name\":\"Chants orthodoxes et traditionnels ukrainiens\",\"type\":\"evenements-locaux-190\",\"category\":\"concerts-musique-festivals\",\"label\":\"Du 03\\\/11\\\/2026 \\u00e0 20:00 au 03\\\/11\\\/2026 \\u00e0 23:59\",\"start\":\"2026-11-03\",\"end\":\"2026-11-03\",\"start_time\":\"20:00\",\"end_time\":\"\",\"open_start\":false,\"city\":\"56740 Locmariaquer\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Sous la direction d\\u2019Igor Mykhailevsky, le Nouveau Ch\\u0153ur propose un programme consacr\\u00e9 \\u00e0 la richesse du chant choral, r\\u00e9unissant de magnifiques chants orthodoxes et des chants traditionnels populaires.\\n\\nEntre spiritualit\\u00e9, \\u00e9motion et couleurs vocales, ces \\u0153uvres t\\u00e9moignent d\\u2019une culture musicale profond\\u00e9ment enracin\\u00e9e dans la tradition et toujours vivante.\",\"image\":\"\",\"credit\":\"\",\"link\":\"https:\\\/\\\/www.nouveauchoeur.fr\\\/\"},{\"id\":27,\"name\":\"Matin\\u00e9e jeux petite enfance\",\"type\":\"evenements-locaux-190\",\"category\":\"en-famille\",\"label\":\"Du 04\\\/11\\\/2026 \\u00e0 10:00 au 04\\\/11\\\/2026 \\u00e0 23:59\",\"start\":\"2026-11-04\",\"end\":\"2026-11-04\",\"start_time\":\"10:00\",\"end_time\":\"\",\"open_start\":false,\"city\":\"56340 Carnac\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Chaque 1er mercredi du mois, la ludoth\\u00e8que propose un temps de jeu pour les 0-6 ans et leurs parents, grands-parents, assistant-es maternel-les avec des espaces de jeux vari\\u00e9s et adapt\\u00e9s.\\n\\nEn acc\\u00e8s libre\",\"image\":\"\",\"credit\":\"\",\"link\":\"https:\\\/\\\/mediatheques-terre-atlantique.fr\\\/node\\\/content\\\/nid\\\/540340\"},{\"id\":6,\"name\":\"March\\u00e9 hebdomadaire de Landaul\",\"type\":\"evenements-locaux-190\",\"category\":\"marches-foires\",\"label\":\"Du 04\\\/11\\\/2026 \\u00e0 16:00 au 04\\\/11\\\/2026 \\u00e0 23:59\",\"start\":\"2026-11-04\",\"end\":\"2026-11-04\",\"start_time\":\"16:00\",\"end_time\":\"\",\"open_start\":false,\"city\":\"56690 Landaul\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Un march\\u00e9 uniquement alimentaire a lieu tous les mercredis, de 16h \\u00e0 19h, sur la place de la Mairie.\",\"image\":\"\",\"credit\":\"\",\"link\":\"\"},{\"id\":36,\"name\":\"Le Petit March\\u00e9 du vendredi\",\"type\":\"evenements-locaux-190\",\"category\":\"marches-foires\",\"label\":\"Du 06\\\/11\\\/2026 \\u00e0 16:00 au 06\\\/11\\\/2026 \\u00e0 23:59\",\"start\":\"2026-11-06\",\"end\":\"2026-11-06\",\"start_time\":\"16:00\",\"end_time\":\"\",\"open_start\":false,\"city\":\"56330 Camors\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"\\u00c0 partir de 16h. Petit march\\u00e9 de trois exposants.\",\"image\":\"\",\"credit\":\"\",\"link\":\"\"},{\"id\":28,\"name\":\"March\\u00e9 hebdomadaire \\u00e0 Locoal-Mendon\",\"type\":\"evenements-locaux-190\",\"category\":\"marches-foires\",\"label\":\"Du 06\\\/11\\\/2026 \\u00e0 16:30 au 06\\\/11\\\/2026 \\u00e0 23:59\",\"start\":\"2026-11-06\",\"end\":\"2026-11-06\",\"start_time\":\"16:30\",\"end_time\":\"\",\"open_start\":false,\"city\":\"56550 Locoal-Mendon\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Le march\\u00e9 hebdomadaire de produits locaux et de cr\\u00e9ations artisanales se tient tous les vendredis de 16h30 \\u00e0 19h,  sur la place de l'\\u00c9glise.\",\"image\":\"\",\"credit\":\"\",\"link\":\"\"},{\"id\":21,\"name\":\"Cali \\u2022 en concert au Domaine le Mezo\",\"type\":\"evenements-locaux-190\",\"category\":\"concerts-musique-festivals\",\"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\":\"56610 Arradon\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Le Domaine Le Mezo a le plaisir d\\u2019accueillir Cali, artiste majeur de la chanson fran\\u00e7aise, pour un concert exceptionnel le vendredi 6 novembre 2026 et en 1\\u00e8re partie C\\u00e9cile Hercule artiste de la sc\\u00e8ne pop fran\\u00e7aise qui m\\u00eale m\\u00e9lodies sensibles, humour d\\u00e9cal\\u00e9 et textes empreints de po\\u00e9sie. Une soir\\u00e9e intense et sinc\\u00e8re, port\\u00e9e par une voix libre, des mots \\u00e0 fleur de peau et une relation unique avec le public.\\n \\nCali a toujours ce besoin vital de proximit\\u00e9, de sinc\\u00e9rit\\u00e9, de partage avec le public. Il veut vivre \\u00e0 fond ces moments d\\u2019amour, ces vibrations qu\\u2019il va chercher dans les salles de spectacles. Un concert de Cali est une performance dont on ne sort pas indemne. Comme il le dit souvent \\u00ab Gagner du temps sur la vie \\u00e7a fait un bien fou dans ce monde stupide. \\u00bb\",\"image\":\"\",\"credit\":\"\",\"link\":\"http:\\\/\\\/www.domainelemezo.fr\\\/concert-cali-6-novembre-2026\\\/\"},{\"id\":41,\"name\":\"D\\u00eeners Music Live\",\"type\":\"evenements-locaux-190\",\"category\":\"concerts-musique-festivals\",\"label\":\"Du 06\\\/11\\\/2026 \\u00e0 20:00 au 06\\\/11\\\/2026 \\u00e0 23:59\",\"start\":\"2026-11-06\",\"end\":\"2026-11-06\",\"start_time\":\"20:00\",\"end_time\":\"\",\"open_start\":false,\"city\":\"56170 Quiberon\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Tous les vendredis soirs, ambiance musicale en Live au restaurant du Kasino. \\n\\nFormule \\u00e0  30 \\u20ac (Plat + Dessert) +  7\\u20ac offerts en ticket de jeu. \\nD\\u00e9couvrez le groupe du jour sur le site du Kasino  : https:\\\/\\\/quiberon.kasino.bzh\\\/diners-music-live-n768.html\\n\\nLes jeux d'argent sont interdits au moins de 18 ans.\",\"image\":\"\",\"credit\":\"\",\"link\":\"https:\\\/\\\/quiberon.kasino.bzh\\\/diners-music-live-n446.html\"},{\"id\":15,\"name\":\"Cali \\u2022 en concert au Domaine le Mezo\",\"type\":\"evenements-locaux-190\",\"category\":\"concerts-musique-festivals\",\"label\":\"Du 06\\\/11\\\/2026 \\u00e0 21:00 au 06\\\/11\\\/2026 \\u00e0 23:59\",\"start\":\"2026-11-06\",\"end\":\"2026-11-06\",\"start_time\":\"21:00\",\"end_time\":\"\",\"open_start\":false,\"city\":\"56880 Ploeren\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Le Domaine Le Mezo a le plaisir d\\u2019accueillir Cali, artiste majeur de la chanson fran\\u00e7aise, pour un concert exceptionnel le vendredi 6 novembre 2026. Une soir\\u00e9e intense et sinc\\u00e8re, port\\u00e9e par une voix libre, des mots \\u00e0 fleur de peau et une relation unique avec le public.\",\"image\":\"\",\"credit\":\"\",\"link\":\"http:\\\/\\\/www.domainelemezo.fr\\\/concert-cali-6-novembre-2026\\\/\"},{\"id\":23,\"name\":\"Arriv\\u00e9e du Trail de la Baie de Quiberon\",\"type\":\"evenements-locaux-190\",\"category\":\"sport-randonnee\",\"label\":\"Du 07\\\/11\\\/2026 au 07\\\/11\\\/2026 \\u00e0 23:59\",\"start\":\"2026-11-07\",\"end\":\"2026-11-07\",\"start_time\":\"\",\"end_time\":\"\",\"open_start\":false,\"city\":\"56170 Quiberon\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"3\\u00e8me \\u00e9dition du Trail de la Baie de Quiberon\\n\\n2 distances cette ann\\u00e9e: un 50 Km et un 21 Km respectivement au d\\u00e9part de La Trinit\\u00e9 sur Mer et de Plouharnel, pour une arriv\\u00e9e commune sur la plage du Goviro \\u00e0 Quiberon\\n\\n- Trail des Varech : 21 kms - D\\u00e9part de Plouharnel \\n- Ulva Trail : 50 kms - D\\u00e9part de la Trinit\\u00e9 sur Mer\",\"image\":\"\",\"credit\":\"\",\"link\":\"https:\\\/\\\/trail-de-la-baie-de-quiberon.fr\\\/\"},{\"id\":17,\"name\":\"Trail de la Baie de Quiberon\",\"type\":\"evenements-locaux-190\",\"category\":\"sport-randonnee\",\"label\":\"Du 07\\\/11\\\/2026 \\u00e0 07:00 au 07\\\/11\\\/2026 \\u00e0 23:59\",\"start\":\"2026-11-07\",\"end\":\"2026-11-07\",\"start_time\":\"07:00\",\"end_time\":\"\",\"open_start\":false,\"city\":\"56340 Carnac\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Le Trail de la Baie de Quiberon est de retour\\n\\nle 7 Novembre 2026 pour une 3\\u00e8me \\u00e9dition!\\n\\nD\\u00e9couvrez ce parcours de trail de 50,4 km qui d\\u00e9bute \\u00e0 La Trinit\\u00e9-sur-Mer et se termine \\u00e0 Quiberon. Ce parcours emprunte 24,8 km de chemins et 14,3 km de routes. Il pr\\u00e9sente une ascension cumul\\u00e9e de plus de 250m. Pr\\u00e9voyez environ 6 heures et 31 minutes pour r\\u00e9aliser ce parcours.\\n\\nLes premiers coureurs vont arriver sur la commune de Carnac vers 8h et les derniers quitteront Carnac vers 10h30-11h.\\nL\\u2019id\\u00e9al pour encourager les coureurs est de se mettre dans la mont\\u00e9e du Tumulus (il y a un challenge pour la monter le plus vite possible) ou dans le centre bourg o\\u00f9 les coureurs se ravitailleront en eau.\\n\\nhttps:\\\/\\\/www.openrunner.com\\\/route-details\\\/24191549\\n\\nDe La Trinit\\u00e9-sur-Mer \\u00e0 Quiberon, ce parcours de trail de 50,4 km promet un beau d\\u00e9fi sportif ! Au programme : 24,8 km de chemins, 14,3 km de routes et plus de 250 m de d\\u00e9nivel\\u00e9 positif cumul\\u00e9.\\n\\nAvec un temps de parcours estim\\u00e9 \\u00e0 6h31, cet itin\\u00e9raire longue distance met l\\u2019endurance des coureurs \\u00e0 l\\u2019\\u00e9preuve, entre effort et d\\u00e9passement de soi.\\n\\nAssociation \\u00ab des copains et des baskets\",\"image\":\"\",\"credit\":\"\",\"link\":\"https:\\\/\\\/www.openrunner.com\\\/route-details\\\/24191549\"},{\"id\":0,\"name\":\"March\\u00e9 hebdomadaire de Quiberon\",\"type\":\"evenements-locaux-190\",\"category\":\"marches-foires\",\"label\":\"Du 07\\\/11\\\/2026 \\u00e0 08:00 au 07\\\/11\\\/2026 \\u00e0 23:59\",\"start\":\"2026-11-07\",\"end\":\"2026-11-07\",\"start_time\":\"08:00\",\"end_time\":\"\",\"open_start\":false,\"city\":\"56170 Quiberon\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Tous les samedis, toute l'ann\\u00e9e de 8h \\u00e0 13h. March\\u00e9 alimentaire.\",\"image\":\"\",\"credit\":\"\",\"link\":\"http:\\\/\\\/www.ville-quiberon.fr\\\/\"},{\"id\":25,\"name\":\"Chantier nature sur la lande de Kercadoret\",\"type\":\"evenements-locaux-190\",\"category\":\"sport-randonnee\",\"label\":\"Du 07\\\/11\\\/2026 \\u00e0 09:00 au 07\\\/11\\\/2026 \\u00e0 23:59\",\"start\":\"2026-11-07\",\"end\":\"2026-11-07\",\"start_time\":\"09:00\",\"end_time\":\"\",\"open_start\":false,\"city\":\"56740 Locmariaquer\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Au programme :\\n*Fauche d\\u2019herbe et de lande\\n*Ramassage de branches cass\\u00e9es\\n*Bouchage d\\u2019orni\\u00e8res\\n*Arrachage de semis de Baccharis et de pins\\n*D\\u00e9broussaillage\\n*Tron\\u00e7onnage de saules et bouleaux  \\u2026\\n\\nPrendre imp\\u00e9rativement des bottes et des gants.\\nFacultatif (mais toujours utile\\u2026) : Grands sacs, petits outils manuels, r\\u00e2teaux, s\\u00e9cateurs, \\u00e9brancheurs, tron\\u00e7onneuse, d\\u00e9broussailleuse\\u2026\\nG\\u00e2teaux, caf\\u00e9, th\\u00e9\\u2026 sont toujours les bienvenus ! \\n\\nCes chantiers sont aussi le lieu d\\u2019\\u00e9changes naturalistes et de visite de la lande. \\n\\nRendez-vous \\u00e0 9h dans la Z.A. de Kerran (en limite de la commune de Saint-Philibert) au bout de la premi\\u00e8re rue \\u00e0 droite\\n\\nContact & information :  Jean David : 06.32.26.65.82     jeandavid.bzh@gmail.com\",\"image\":\"\",\"credit\":\"\",\"link\":\"https:\\\/\\\/www.bretagne-vivante.org\\\/agenda\\\/chantier-nature-sur-la-lande-de-kercadoret-a-locmariaquer-56-2\\\/\"},{\"id\":47,\"name\":\"L\\u2019Argonaute en f\\u00eate \\u2013 Salon des cr\\u00e9ateurs et m\\u00e9tiers d\\u2019art\",\"type\":\"evenements-locaux-190\",\"category\":\"concerts-musique-festivals\",\"label\":\"Du 07\\\/11\\\/2026 \\u00e0 10:00 au 08\\\/11\\\/2026 \\u00e0 23:59\",\"start\":\"2026-11-07\",\"end\":\"2026-11-08\",\"start_time\":\"10:00\",\"end_time\":\"\",\"open_start\":false,\"city\":\"56400 Auray\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"L\\u2019Argonaute en f\\u00eate c\\u00e9l\\u00e8bre sa 10e \\u00e9dition ! \\u00c0 cette occasion, le salon des cr\\u00e9ateurs et m\\u00e9tiers d\\u2019art prend de l\\u2019ampleur et s\\u2019installe sur deux lieux pour vous faire d\\u00e9couvrir encore plus de talents et de cr\\u00e9ations artisanales.\\n\\nDeux lieux, deux fois plus de d\\u00e9couvertes !\\n\\n\\u2022\\t\\u00c0 Auray, au tiers-lieu L\\u2019Argonaute, 12 rue Redien : 24 cr\\u00e9ateurs et cr\\u00e9atrices vous accueillent.\\n\\n\\u2022\\t\\u00c0 Erdeven, \\u00e0 l\\u2019Office de tourisme : 9 cr\\u00e9atrices vous invitent \\u00e0 d\\u00e9couvrir leurs univers.\\n\\nAu fil de votre visite, partez \\u00e0 la rencontre de cr\\u00e9atrices et cr\\u00e9ateurs passionn\\u00e9s, d\\u00e9couvrez la diversit\\u00e9 de leurs savoir-faire et laissez-vous s\\u00e9duire par des pi\\u00e8ces uniques, imagin\\u00e9es et fabriqu\\u00e9es avec soin.\\n\\nBijoux, objets d\\u00e9coratifs, cr\\u00e9ations artisanales\\u2026 Une belle occasion de se faire plaisir, de d\\u00e9nicher des cadeaux de No\\u00ebl originaux et de privil\\u00e9gier des cr\\u00e9ations qui ont du sens !\\n\\nVenez c\\u00e9l\\u00e9brer avec nous cette 10e \\u00e9dition et partager un week-end plac\\u00e9 sous le signe de la cr\\u00e9ativit\\u00e9, de la rencontre et de l\\u2019artisanat d\\u2019art !\",\"image\":\"\",\"credit\":\"\",\"link\":\"https:\\\/\\\/www.largonaute-co.fr\\\/\"},{\"id\":48,\"name\":\"Cin\\u00e9-\\u00e9change : Les trois vies du patron Emile Daniel & La barre Etel 1958\",\"type\":\"evenements-locaux-190\",\"category\":\"spectacles-cinema\",\"label\":\"Du 07\\\/11\\\/2026 \\u00e0 15:50 au 07\\\/11\\\/2026 \\u00e0 23:59\",\"start\":\"2026-11-07\",\"end\":\"2026-11-07\",\"start_time\":\"15:50\",\"end_time\":\"\",\"open_start\":false,\"city\":\"56410 \\u00c9tel\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Les trois vies du patron Emile Daniel : \\nCe film est r\\u00e9guli\\u00e8rement projet\\u00e9 au Mus\\u00e9e des Thoniers d\\u2019\\u00c9tel. Il retrace l\\u2019histoire du c\\u00e9l\\u00e8bre canot de sauvetage d\\u2019\\u00c9tel et rend hommage \\u00e0 son embl\\u00e9matique patron, \\u00c9mile Daniel, qui a p\\u00e9ri en mer lors du tragique accident de la barre d\\u2019\\u00c9tel en 1958 (li\\u00e9 aux exp\\u00e9rimentations de survie d\\u2019Alain Bombard).\\n\\nLa Barre d'Etel 1958 : \\nLe film relate l\\u2019exp\\u00e9rience dramatique du Docteur Alain Bombard, c\\u00e9l\\u00e8bre pour ses travers\\u00e9es de l\\u2019atlantique comme naufrag\\u00e9 volontaire. \\nCe jour-l\\u00e0, Bombard souhaite tester l\\u2019efficacit\\u00e9 et la fiabilit\\u00e9 d\\u2019un nouveau type de canot pneumatique de survie (de type Bombard) en franchissant la terrible barre d\\u2019\\u00c9tel, un banc de sable mouvant particuli\\u00e8rement redout\\u00e9 par les marins en raison des vagues violentes qu\\u2019il g\\u00e9n\\u00e8re.\\nL\\u2019exp\\u00e9rimentation vire malheureusement \\u00e0 la catastrophe lorsque l\\u2019embarcation se retourne. Le canot de sauvetage des marins d\\u2019\\u00c9tel, le Vice- Amiral-Schwerer II, parti \\u00e0 leur secours, chavire \\u00e0 son tour.\\nCe drame a co\\u00fbt\\u00e9 la vie \\u00e0 neuf personnes, dont cinq sauveteurs en mer b\\u00e9n\\u00e9voles.\\n\\nCin\\u00e9-\\u00e9change en pr\\u00e9sence du r\\u00e9alisateur Jean-Fran\\u00e7ois Pahun\\nGratuit - R\\u00e9servation conseill\\u00e9e\",\"image\":\"\",\"credit\":\"\",\"link\":\"https:\\\/\\\/www.cinemalariviere.org\\\/events\\\/84713-les-trois-vies-du-patron-emile-daniel-la-barre-etel-1958\\\/\"},{\"id\":12,\"name\":\"Concert Toutes Voix Dehors Halloween\",\"type\":\"evenements-locaux-190\",\"category\":\"concerts-musique-festivals\",\"label\":\"Du 07\\\/11\\\/2026 \\u00e0 19:00 au 07\\\/11\\\/2026 \\u00e0 23:59\",\"start\":\"2026-11-07\",\"end\":\"2026-11-07\",\"start_time\":\"19:00\",\"end_time\":\"\",\"open_start\":false,\"city\":\"56360 Le Palais\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Avec les ch\\u0153urs : We Sing A Lotte - les Polissons - le ch\\u0153ur de lyc\\u00e9ens - le ch\\u0153ur \\u00e9ph\\u00e9m\\u00e8re d'Halloween.\\nMusique : Les Alligators Featuring - Mewen Bauchy - Khalid McGhee.\\nDirection : Jazmin Black Grollemund - Solenn Le Berre\",\"image\":\"\",\"credit\":\"\",\"link\":\"https:\\\/\\\/lyrique-belle-ile.com\\\/\"},{\"id\":54,\"name\":\"Repas chant\\u00e9 (Kig Ha Farz)\",\"type\":\"evenements-locaux-190\",\"category\":\"concerts-musique-festivals\",\"label\":\"Du 08\\\/11\\\/2026 \\u00e0 12:00 au 08\\\/11\\\/2026 \\u00e0 23:59\",\"start\":\"2026-11-08\",\"end\":\"2026-11-08\",\"start_time\":\"12:00\",\"end_time\":\"\",\"open_start\":false,\"city\":\"56330 Pluvigner\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Dans le cadre d'Un Automne autrement 2026\\n\\nTous les convives sont invit\\u00e9s \\u00e0 chanter, en menant le chant ou en r\\u00e9pondant.\\nPas de vedettes mais du \\\"plijadur\\\", \\\"pll\\u00e9zi\\\" \\u00e0 partager ce moment convivial. Chants traditionnels en breton, gallo ou fran\\u00e7ais. Chants \\u00e0 r\\u00e9pondre, m\\u00e9lodies, chants \\u00e0 la marche ou \\u00e0 danser... Tous les styles sont permis ! \\nSur r\\u00e9servation\",\"image\":\"\",\"credit\":\"\",\"link\":\"\"},{\"id\":59,\"name\":\"D\\u00eener Jazz \\u2022 Mokka\",\"type\":\"evenements-locaux-190\",\"category\":\"en-famille\",\"label\":\"Du 10\\\/11\\\/2026 \\u00e0 20:00 au 10\\\/11\\\/2026 \\u00e0 23:59\",\"start\":\"2026-11-10\",\"end\":\"2026-11-10\",\"start_time\":\"20:00\",\"end_time\":\"\",\"open_start\":false,\"city\":\"56880 Ploeren\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Le Domaine Le Mezo vous invite \\u00e0 un d\\u00eener jazz aux accents soul, R&B et bossa nova. Dans une ambiance douce et intimiste, le duo nantais Mokka accompagne la soir\\u00e9e avec un live acoustique \\u00e9l\\u00e9gant, entre groove feutr\\u00e9, voix chaleureuse et guitare d\\u00e9licate.\\n\\n S\\u00e9lection du sommelier : accords au verre vins & Champagne ou accords sans alcool ou Grands vins \\u00e0 la bouteille avec coupe de Champagne.\\n\\nMokka\\nen d\\u00eener-concert au Mezo\\nMokka est un duo acoustique nantais qui revisite avec finesse un r\\u00e9pertoire m\\u00ealant R&B, soul et bossa nova. Port\\u00e9 par une complicit\\u00e9 naturelle, le duo cr\\u00e9e une atmosph\\u00e8re musicale \\u00e0 la fois chaleureuse, moderne et enveloppante, id\\u00e9ale pour accompagner un d\\u00eener en musique.\\n\\nEntre douceur vocale, rythmes groovy et couleurs br\\u00e9siliennes, Mokka propose un moment live tout en \\u00e9l\\u00e9gance, pens\\u00e9 comme une parenth\\u00e8se sensible et conviviale.\",\"image\":\"\",\"credit\":\"\",\"link\":\"http:\\\/\\\/www.domainelemezo.fr\\\/\"},{\"id\":7,\"name\":\"Cin\\u00e9-\\u00e9changes : Avoir 20 ans dans les Aur\\u00e8s\",\"type\":\"evenements-locaux-190\",\"category\":\"spectacles-cinema\",\"label\":\"Du 10\\\/11\\\/2026 \\u00e0 21:20 au 10\\\/11\\\/2026 \\u00e0 23:59\",\"start\":\"2026-11-10\",\"end\":\"2026-11-10\",\"start_time\":\"21:20\",\"end_time\":\"\",\"open_start\":false,\"city\":\"56410 \\u00c9tel\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Un groupe de Bretons r\\u00e9fractaires et pacifistes est envoy\\u00e9 en Alg\\u00e9rie. Ces \\u00eatres confront\\u00e9s aux horreurs de la guerre deviennent peu \\u00e0 peu des machines \\u00e0 tuer. L\\u2019un d\\u2019entre eux ne l\\u2019acceptera pas et d\\u00e9sertera en emmenant avec lui un prisonnier du FLN qui devait \\u00eatre ex\\u00e9cut\\u00e9 le lendemain. \\n\\nUn temps d\\u2019\\u00e9change autour d\\u2019un pot est propos\\u00e9 apr\\u00e8s le film.\\n\\nEn soutient au cin\\u00e9ma R\\u00e9n\\u00e9 Vautier d\\u2019Elne\",\"image\":\"\",\"credit\":\"\",\"link\":\"https:\\\/\\\/www.cinemalariviere.org\\\/events\\\/84963-avoir-20-ans-dans-les-aures\\\/\"},{\"id\":57,\"name\":\"Jouons avec les livres !\",\"type\":\"evenements-locaux-190\",\"category\":\"en-famille\",\"label\":\"Du 12\\\/11\\\/2026 \\u00e0 10:30 au 12\\\/11\\\/2026 \\u00e0 23:59\",\"start\":\"2026-11-12\",\"end\":\"2026-11-12\",\"start_time\":\"10:30\",\"end_time\":\"\",\"open_start\":false,\"city\":\"56950 Crach\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Reprenons le chemin des livres et jeux de lecture avec les plus jeunes enfants.\\n\\nCes s\\u00e9ances sont d\\u00e9di\\u00e9es au enfants de 3 mois \\u00e0 2 ans, avec parents, grands-parents et assistantes maternelles.\\n\\nGratuit sur inscription\",\"image\":\"\",\"credit\":\"\",\"link\":\"\"},{\"id\":40,\"name\":\"March\\u00e9 Artisanal Solidaire\",\"type\":\"evenements-locaux-190\",\"category\":\"en-famille\",\"label\":\"Du 13\\\/11\\\/2026 \\u00e0 14:50 au 13\\\/11\\\/2026 \\u00e0 23:59\",\"start\":\"2026-11-13\",\"end\":\"2026-11-13\",\"start_time\":\"14:50\",\"end_time\":\"\",\"open_start\":false,\"city\":\"56470 Saint-Philibert\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"L\\u2019association \\u201cCourir pour Lylou\\u201d vous donne rendez-vous \\u00e0 la salle Le Mousker de Saint-Philibert pour son March\\u00e9 Artisanal Solidaire : un week-end plac\\u00e9 sous le signe de la convivialit\\u00e9, du partage et de la magie de No\\u00ebl ! \\n\\nVenez d\\u00e9couvrir les cr\\u00e9ations et savoir-faire de 25 exposants :\\nBijoux et cr\\u00e9ations artisanales \\\/  Photographies \\\/  Peluches \\\/Savons et bougies \\\/  Produits alimentaires et sp\\u00e9cialit\\u00e9s locales\\nEt bien d\\u2019autres belles surprises !\\n\\nSamedi \\u00e0 18h30 : repr\\u00e9sentation de Juke, Les Aventures du T\\u00e9nor de Brest.\\nDimanche vers 15h30 : arriv\\u00e9e du P\\u00e8re No\\u00ebl pour le bonheur des petits et des grands !\\n\\nTombola sur place avec de nombreux lots \\u00e0 gagner !\\n\\nFood truck et restauration sur place.\\n\\nUn \\u00e9v\\u00e9nement organis\\u00e9 afin de soutenir le d\\u00e9fi solidaire \\u00ab 420 km pour Lylou \\u00bb qui Aura le lieu du 1 au 10 juin 2027 , soit 1 marathon par jour.\",\"image\":\"\",\"credit\":\"\",\"link\":\"\"},{\"id\":42,\"name\":\"Repas: Jarret-Frites\",\"type\":\"evenements-locaux-190\",\"category\":\"concerts-musique-festivals\",\"label\":\"Du 14\\\/11\\\/2026 \\u00e0 19:00 au 14\\\/11\\\/2026 \\u00e0 23:59\",\"start\":\"2026-11-14\",\"end\":\"2026-11-14\",\"start_time\":\"19:00\",\"end_time\":\"\",\"open_start\":false,\"city\":\"56690 Landaul\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Les v\\u00e9t\\u00e9rans de \\\"Landaul Sport\\\" vous donnent rendez-vous pour une soir\\u00e9e gourmande et festive autour d\\u2019un bon jarret-frites ! \\n\\nTarifs :\\nRepas adulte : 14 \\u20ac (kir, plat, fromage et dessert)\\nRepas enfant : 6 \\u20ac\\n\\nR\\u00e9servations par t\\u00e9l\\u00e9phone \\n\\nUne belle occasion de se retrouver, de partager un bon repas et de soutenir nos v\\u00e9t\\u00e9rans dans une ambiance chaleureuse et familiale !\",\"image\":\"\",\"credit\":\"\",\"link\":\"https:\\\/\\\/www.landaul.fr\\\/%E2%9A%BDles-veterans-de-landaul-sport-vous-invitent-a-leur-repas-jarret-frites\\\/\"},{\"id\":39,\"name\":\"Festival d\\u2019humour\",\"type\":\"evenements-locaux-190\",\"category\":\"concerts-musique-festivals\",\"label\":\"Du 14\\\/11\\\/2026 \\u00e0 20:30 au 14\\\/11\\\/2026 \\u00e0 23:59\",\"start\":\"2026-11-14\",\"end\":\"2026-11-14\",\"start_time\":\"20:30\",\"end_time\":\"\",\"open_start\":false,\"city\":\"56950 Crach\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Apr\\u00e8s une premi\\u00e8re \\u00e9dition qui a fait mouche, le Festival d\\u2019Humour de Crac\\u2019h revient pour sa 2e \\u00e9dition\\u2026 et \\u00e7a promet du tr\\u00e8s, tr\\u00e8s lourd ! \\n5 humoristes vont se succ\\u00e9der sur sc\\u00e8ne :\\n- Yann Ricordel\\n- Tim Solac\\n- Quentin Ferjou\\n- St\\u00e9phane Resche\\n- Chris Baranzelli\\n\\nEt cette ann\\u00e9e encore, c\\u2019est VOUS qui aurez votre mot \\u00e0 dire: Votez pour votre humoriste pr\\u00e9f\\u00e9r\\u00e9 et participez \\u00e0 l\\u2019\\u00e9lection du coup de c\\u0153ur du public ! \\n\\nMicky MJ, parrain de cette 2e \\u00e9dition, sera de la partie, avec Mlle Redge et Mr Marc Assin \\u00e0 la pr\\u00e9sentation.\\n\\nEt parce qu\\u2019on ne plaisante pas avec l\\u2019entracte, le Comit\\u00e9 des F\\u00eates de Crac\\u2019h tiendra la buvette pour vous permettre de reprendre des forces avant la deuxi\\u00e8me partie ! \\n\\nPlaces en vente \\u00e0 la Mairie ou sur place le soir m\\u00eame (ch\\u00e8que ou esp\\u00e8ces).\",\"image\":\"\",\"credit\":\"\",\"link\":\"https:\\\/\\\/www.ville-crach.fr\\\/festival-dhumour-2\\\/\"},{\"id\":5,\"name\":\"Th\\u00e9\\u00e2tre et musique: Quatre mains\",\"type\":\"evenements-locaux-190\",\"category\":\"en-famille\",\"label\":\"Du 14\\\/11\\\/2026 \\u00e0 20:30 au 14\\\/11\\\/2026 \\u00e0 23:59\",\"start\":\"2026-11-14\",\"end\":\"2026-11-14\",\"start_time\":\"20:30\",\"end_time\":\"\",\"open_start\":false,\"city\":\"56400 Brech\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Aline et \\u00c9lios se retrouvent apr\\u00e8s 30 ans. \\u00c0 l\\u2019invitation de Jean, leur ancien camarade de Conservatoire qui pr\\u00e9pare une myst\\u00e9rieuse performance, ils reprennent le piano avec la Fantaisie en fa mineur, un quatre mains de Schubert.\\nIls jouent et \\u00e9voquent leur vie d\\u2019avant : leurs \\u00e9tudes musicales, leur amiti\\u00e9 adolescente et la musique de Schubert, qui, ne disant rien, disait d\\u00e9j\\u00e0 tout. Remontent des souvenirs, les difficult\\u00e9s de l\\u2019apprentissage, les profs inspirants ou sadiques, les confusions affectives o\\u00f9 l\\u2019amiti\\u00e9 se confond avec l\\u2019amour. Chaque r\\u00e9p\\u00e9tition devient un terrain de partage, o\\u00f9 la musique exprime ce que les mots n\\u2019ont pas dit. \\n\\nQuatre mains est un voyage \\u00e9motionnel qui d\\u00e9voile avec tendresse la fa\\u00e7on dont l\\u2019art traverse le temps et transforme les relations humaines.\\n\\u00ab Quatre mains est une pi\\u00e8ce originale dans son esprit et sa r\\u00e9alisation, sensible, attachante et dr\\u00f4le. On y apprend que le solf\\u00e8ge comme les cours d\\u2019interpr\\u00e9tation ne sont pas forc\\u00e9ment fastidieux, et que les r\\u00e9ussites, les \\u00e9checs comme les d\\u00e9couragements font partie des r\\u00eaves de toute une vie. Comme les plus grandes passions. \\u00bb Festival d\\u2019Avignon OFF : \\u00ab Franz Schubert et l\\u2019amiti\\u00e9 pour toujours \\u00bb - l\\u2019Humanit\\u00e9\\n\\nUn bord plateau sera propos\\u00e9 \\u00e0 l'issue des repr\\u00e9sentations du samedi 14 novembre et du dimanche 15 novembre (s\\u00e9ance de 17h) pour \\u00e9changer avec l'\\u00e9quipe du spectacle.\\n\\nD\\u00e8s 14 ans - dur\\u00e9e 1h20\\nRenseignements et r\\u00e9servations au t\\u00e9l\\u00e9phone, et en ligne.\",\"image\":\"\",\"credit\":\"\",\"link\":\"https:\\\/\\\/athena-auray.mapado.com\\\/event\\\/793033-quatre-mains\"},{\"id\":31,\"name\":\"Apr\\u00e8m Ti Ludique\",\"type\":\"evenements-locaux-190\",\"category\":\"en-famille\",\"label\":\"Du 15\\\/11\\\/2026 \\u00e0 14:00 au 15\\\/11\\\/2026 \\u00e0 23:59\",\"start\":\"2026-11-15\",\"end\":\"2026-11-15\",\"start_time\":\"14:00\",\"end_time\":\"\",\"open_start\":false,\"city\":\"56400 Ploemel\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"C'est parti pour Ti Ludique \\nUne nouvelle association de jeux de soci\\u00e9t\\u00e9, de jeux de r\\u00f4le et d'animations culturelles d\\u00e9barque dans la commune. Pourquoi ? Parce qu\\u2019on avait envie de proposer autre chose que des \\u00e9crans \\u00e0 nos ados le week-end (et qu'on commen\\u00e7ait \\u00e0 manquer de joueurs).\\n\\nLes rencontres se feront 1 \\u00e0 2 dimanches apr\\u00e8s-midi par mois. \\nOn commence tranquillement...Salle Kolibri (nouvel espace sports et loisirs du Gro\\u00ebz Ven) et on avisera ensuite si vous devenez trop accros !\\n\\nCe qui vous attend :\\nNous d\\u00e9barquons avec une belle collection de jeux que nous vous pr\\u00eaterons avec grand plaisir lors des rencontres (contre bons soins et amour respectueux des bo\\u00eetes). En \\u00e9change, nous serions ravis de d\\u00e9couvrir vos p\\u00e9pites !\\nOn vous attend nombreux pour lancer les premiers d\\u00e9s !\",\"image\":\"\",\"credit\":\"\",\"link\":\"https:\\\/\\\/www.tiludique.fr\\\/pages\\\/evenements.html\"},{\"id\":30,\"name\":\"Fest Deiz: Anne-Marie Nicol et Gw\\u00e9na\\u00eblle Pineau\",\"type\":\"evenements-locaux-190\",\"category\":\"concerts-musique-festivals\",\"label\":\"Du 15\\\/11\\\/2026 \\u00e0 14:30 au 15\\\/11\\\/2026 \\u00e0 23:59\",\"start\":\"2026-11-15\",\"end\":\"2026-11-15\",\"start_time\":\"14:30\",\"end_time\":\"\",\"open_start\":false,\"city\":\"56400 Ploemel\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"L'association Dalc'h Atau vous propose un fest-deiz avec Anne-Marie Nicol et Gw\\u00e9na\\u00eblle Pineau: bombarde et accord\\u00e9on diatonique, le dimanche 15 novembre dans la salle du Gro\\u00ebz Ven \\u00e0 Ploemel\\n\\nEntr\\u00e9e 5 \\u20ac\",\"image\":\"\",\"credit\":\"\",\"link\":\"https:\\\/\\\/dalchatau.tolpin.bzh\\\/\"},{\"id\":10,\"name\":\"Projection - 50 ans de musique et de chants traditionnels \\u00e0 Pluvigner\",\"type\":\"evenements-locaux-190\",\"category\":\"spectacles-cinema\",\"label\":\"Du 15\\\/11\\\/2026 \\u00e0 17:00 au 15\\\/11\\\/2026 \\u00e0 23:59\",\"start\":\"2026-11-15\",\"end\":\"2026-11-15\",\"start_time\":\"17:00\",\"end_time\":\"\",\"open_start\":false,\"city\":\"56330 Pluvigner\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Le Bagad de Pluvigner voit le jour en 1955. Il connait un essor remarquable qui culmine dans les ann\\u00e9es 60-70 et est un acteur majeur de la transmission de la musique et plus largement de la culture bretonne \\u00e0 Pluvigner. Le film met en valeur l'h\\u00e9ritage d'Yvon Palamour et de Guigner Le H\\u00e9nanff \\u00e0 travers les vid\\u00e9os collect\\u00e9es et r\\u00e9alis\\u00e9es par Youn Pensec. Celui-ci consacre beaucoup de temps \\u00e0 filmer et enregistrer chanteurs, sonneurs et musiciens depuis plus de 50 ans. Un film propos\\u00e9 par l\\u2019association Plijadur Cant\\u00eb Nouz en partenariat avec Pluvigner Patrimoines\",\"image\":\"\",\"credit\":\"\",\"link\":\"\"},{\"id\":13,\"name\":\"Soir\\u00e9e jeux pour les grands !\",\"type\":\"evenements-locaux-190\",\"category\":\"en-famille\",\"label\":\"Du 17\\\/11\\\/2026 \\u00e0 19:00 au 17\\\/11\\\/2026 \\u00e0 23:59\",\"start\":\"2026-11-17\",\"end\":\"2026-11-17\",\"start_time\":\"19:00\",\"end_time\":\"\",\"open_start\":false,\"city\":\"56470 Saint-Philibert\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Une soir\\u00e9e ap\\u00e9ro-jeux de plateaux entre adultes, \\u00e0 la m\\u00e9diath\\u00e8que-ludoth\\u00e8que \\\"Le Chat Pitre\\\"\\nUne soir\\u00e9e ludique o\\u00f9 la strat\\u00e9gie, le bluff et le rire sont au programme ! Pas d'enfant, juste du fun entre adultes, des d\\u00e9couvertes et de belles rencontres\\n\\nVenez d\\u00e9couvrir nos nouveaux jeux de soci\\u00e9t\\u00e9, rire et partager un moment convivial.\\n\\nSi vous le souhaitez, apportez un petit quelque chose \\u00e0 grignoter ou \\u00e0 boire pour un ap\\u00e9ro partag\\u00e9.\\n\\nGratuit\",\"image\":\"\",\"credit\":\"\",\"link\":\"\"},{\"id\":29,\"name\":\"Concert Jeune public - Mini\\u00b7Maxi\",\"type\":\"evenements-locaux-190\",\"category\":\"en-famille\",\"label\":\"Du 18\\\/11\\\/2026 \\u00e0 10:00 au 18\\\/11\\\/2026 \\u00e0 23:59\",\"start\":\"2026-11-18\",\"end\":\"2026-11-18\",\"start_time\":\"10:00\",\"end_time\":\"\",\"open_start\":false,\"city\":\"56400 Auray\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Chapi Chapo & les petites musiques de pluie : concert de toy music \\u00e9lectro-pop\\n\\nMini-maxi offre aux petites oreilles un concert ludique, une exp\\u00e9rience sonore dans un univers cr\\u00e9atif ou\\u0300 des jouets musicaux anciens, glan\\u00e9s aux quatre coins de la plan\\u00e8te, deviennent de v\\u00e9ritables instruments.\\n \\nLes artistes nourrissent leur cr\\u00e9ation par des m\\u00e9lodies vari\\u00e9es, envo\\u00fbtantes et pleines d\\u2019\\u00e9nergies, afin de capter ce jeune public. Ils s\\u2019aventurent sur un terrain de jeu in\\u00e9puisable, dans lequel l\\u2019acoustique se frotte aux synth\\u00e9tiseurs et o\\u00f9 la toy music c\\u00f4toie des ambiances pop \\u00e9lectroniques. \\n \\nPetits et grands sont invit\\u00e9s \\u00e0 s\\u2019immerger dans l\\u2019univers lumineux et multicolore du groupe. Un concert captivant, joyeux et dansant.\\n\\nDe 0 \\u00e0 5 ans - 25 min\\nRenseignements et r\\u00e9servations au t\\u00e9l\\u00e9phone, et en ligne\",\"image\":\"\",\"credit\":\"\",\"link\":\"https:\\\/\\\/athena-auray.mapado.com\\\/event\\\/793047-mini-maxi\"},{\"id\":38,\"name\":\"Comptines et jeux de doigts\",\"type\":\"evenements-locaux-190\",\"category\":\"en-famille\",\"label\":\"Du 18\\\/11\\\/2026 \\u00e0 10:30 au 18\\\/11\\\/2026 \\u00e0 23:59\",\"start\":\"2026-11-18\",\"end\":\"2026-11-18\",\"start_time\":\"10:30\",\"end_time\":\"\",\"open_start\":false,\"city\":\"56340 Carnac\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"A la m\\u00e9diath\\u00e8que c'est le rendez-vous des tout-petits: 0 - 6 ans, pour partager histoires et jeux de doigts. \\n\\nGratuit sur inscription.\",\"image\":\"\",\"credit\":\"\",\"link\":\"https:\\\/\\\/mediatheques-terre-atlantique.fr\\\/node\\\/content\\\/nid\\\/545474\"},{\"id\":51,\"name\":\"Cin\\u00e9-Doc : P\\u00e9rou\",\"type\":\"evenements-locaux-190\",\"category\":\"spectacles-cinema\",\"label\":\"Du 18\\\/11\\\/2026 \\u00e0 15:00 au 18\\\/11\\\/2026 \\u00e0 23:59\",\"start\":\"2026-11-18\",\"end\":\"2026-11-18\",\"start_time\":\"15:00\",\"end_time\":\"\",\"open_start\":false,\"city\":\"56470 Saint-Philibert\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Projection du film P\\u00e9rou\\u2013des civilisations et des hommes en pr\\u00e9sence du r\\u00e9alisateur Bernard Bruel\\n\\nLe P\\u00e9rou, qui n\\u2019a pas r\\u00eav\\u00e9 en entendant ce nom, synonyme de conquistadors espagnols, de tr\\u00e9sors cach\\u00e9s de l\\u2019Eldorado !\\nLe film vous emm\\u00e8ne d\\u00e9couvrir ces contr\\u00e9es et les populations myst\\u00e9rieuses de ce pays mythique.\\nLa c\\u00f4te du Pacifique qui abritait les premi\\u00e8res civilisations, et nourrit les p\\u00e9ruviens de d\\u00e9licieux plats de poisson cru.\\nLa cordill\\u00e8re des Andes qui h\\u00e9berge les populations indiennes en poncho color\\u00e9, puis les vall\\u00e9es amazoniennes, o\\u00f9 l\\u2019on r\\u00e9colte le caf\\u00e9 et le chocolat du commerce \\u00e9quitable.\\nLe Machu Picchu et les nombreux sites de la vall\\u00e9e sacr\\u00e9e de Cuzco, avec les tr\\u00e8s nombreuses constructions en pierre des Incas.\\nLes hauts sommets de la cordill\\u00e8re blanche qui font le bonheur des trekkeurs et sont le domaine des \\u00e9leveurs d\\u2019alpacas, \\u00e0 la laine si douce...\\nEnfin le fameux lac Titicaca avec ses cultures en terrasses, \\u00e0 4000 m d\\u2019altitude...\\n\\nBerc\\u00e9 d\\u00e8s son adolescence par les images de \\u00ab Tintin au pays du soleil \\u00bb et les sons de la fl\\u00fbte indienne, Bernard Bruel a tr\\u00e8s vite \\u00e9t\\u00e9 irr\\u00e9sistiblement attir\\u00e9 par la cordill\\u00e8re des Andes et particuli\\u00e8rement la Bolivie. C\\u2019est ce pays aux multiples facettes, o\\u00f9 il a effectu\\u00e9 de nombreux s\\u00e9jours au fil des ans, qu\\u2019il vous propose de d\\u00e9couvrir. Il est l\\u2019un des membres du groupe rennais de musique latino \\u00ab Opakuna \\u00bb.\\n\\nDur\\u00e9e : 84 minutes\",\"image\":\"\",\"credit\":\"\",\"link\":\"https:\\\/\\\/www.le-cercle-des-voyageurs.fr\\\/seance\\\/terre-neuve-au-large-du-canada-24-10-2026\\\/\"},{\"id\":19,\"name\":\"Cin\\u00e9 doc - Futur, Reza et le futur du monde\",\"type\":\"evenements-locaux-190\",\"category\":\"spectacles-cinema\",\"label\":\"Du 19\\\/11\\\/2026 \\u00e0 20:30 au 19\\\/11\\\/2026 \\u00e0 23:59\",\"start\":\"2026-11-19\",\"end\":\"2026-11-19\",\"start_time\":\"20:30\",\"end_time\":\"\",\"open_start\":false,\"city\":\"56330 Pluvigner\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Diffusion en pr\\u00e9sence du r\\u00e9alisateur, Philippe Bonhomme, propos\\u00e9 par la m\\u00e9diath\\u00e8que dans le cadre du mois du film documentaire. La R\\u00e9union, reflet d\\u2019un futur r\\u00eav\\u00e9. Sur cette \\u00eele, les habitants peuvent pratiquer plusieurs religions \\u00e0 la fois. Les arts ou la gastronomie revendiquent des influences multiples, chaque nouveau mariage constitue un pas de plus vers un \\\"village universel\\\". Cette soci\\u00e9t\\u00e9 bigarr\\u00e9e ne montre-t-elle pas la voix de l\\u2019avenir ? C'est ce qu\\u2019est venu d\\u00e9couvrir Reza, photographe et humaniste.\",\"image\":\"\",\"credit\":\"\",\"link\":\"\"},{\"id\":43,\"name\":\"Soir\\u00e9e jeux\",\"type\":\"evenements-locaux-190\",\"category\":\"en-famille\",\"label\":\"Du 20\\\/11\\\/2026 \\u00e0 18:00 au 20\\\/11\\\/2026 \\u00e0 23:59\",\"start\":\"2026-11-20\",\"end\":\"2026-11-20\",\"start_time\":\"18:00\",\"end_time\":\"\",\"open_start\":false,\"city\":\"56400 Sainte-Anne-d'Auray\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"En partenariat avec l'espace jeunes de Sainte-Anne-d'Auray\\n\\nJeux de soci\\u00e9t\\u00e9, Gibao, Switch, loups-garous seront au programme pour une soir\\u00e9e ludique familiale. \\nPensez \\u00e0 apporter quelques gourmandises sal\\u00e9es ou sucr\\u00e9es \\u00e0 partager pour accompagner la soir\\u00e9e.\",\"image\":\"\",\"credit\":\"\",\"link\":\"\"},{\"id\":32,\"name\":\"Concerts au Coota\",\"type\":\"evenements-locaux-190\",\"category\":\"concerts-musique-festivals\",\"label\":\"Du 20\\\/11\\\/2026 \\u00e0 22:00 au 20\\\/11\\\/2026 \\u00e0 23:59\",\"start\":\"2026-11-20\",\"end\":\"2026-11-20\",\"start_time\":\"22:00\",\"end_time\":\"\",\"open_start\":false,\"city\":\"56410 Erdeven\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Le Coota organise environs 120 concerts par an. C\\u2019est aussi comme tout bistrot, un lieu d\\u2019\\u00e9changes et de rencontres... \\nLe Coota met \\u00e0 votre disposition l'essentiel des instruments pour improviser ensemble et faire groover Kerhillio !\\n\\nA venir...\\nLe 30 Oct 2026 : Raavni - Style: Techno House Trance\\nLe 31 Oct 2026: Papa Zombie - Style: New Orleans Rythm & Blues\\nLe 20 Nov 2026: Forr\\u00f3 na chuva  - Style: Forr\\u00f3\",\"image\":\"\",\"credit\":\"\",\"link\":\"http:\\\/\\\/www.lecoota.fr\\\/\"},{\"id\":24,\"name\":\"Avant-premi\\u00e8re : \\\" Un bon petit soldat \\\"\",\"type\":\"evenements-locaux-190\",\"category\":\"spectacles-cinema\",\"label\":\"Du 21\\\/11\\\/2026 \\u00e0 20:30 au 21\\\/11\\\/2026 \\u00e0 23:59\",\"start\":\"2026-11-21\",\"end\":\"2026-11-21\",\"start_time\":\"20:30\",\"end_time\":\"\",\"open_start\":false,\"city\":\"56170 Quiberon\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Le Paradis accueille le r\\u00e9alisateur St\\u00e9phane Briz\\u00e9 et l\\u2019actrice Alba Rohrwacher pour l\\u2019avant-premi\\u00e8re du film \\u00ab Un bon petit soldat \\u00bb.\\n\\nR\\u00e9alis\\u00e9 par St\\u00e9phane Briz\\u00e9, le film r\\u00e9unit \\u00e0 l\\u2019\\u00e9cran Alba Rohrwacher et Vincent Lindon.\\n\\nOuverture des r\\u00e9servations le dimanche 1er novembre \\u00e0 10h.\\n\\nInformations et r\\u00e9servations au cin\\u00e9ma ou par t\\u00e9l\\u00e9phone au 02 97 50 17 20, aux heures d\\u2019ouverture, et par courriel \\u00e0 cinemaleparadis@ville-quiberon.fr.\",\"image\":\"\",\"credit\":\"\",\"link\":\"\"},{\"id\":50,\"name\":\"Chevaleresses\",\"type\":\"evenements-locaux-190\",\"category\":\"spectacles-cinema\",\"label\":\"Du 21\\\/11\\\/2026 \\u00e0 20:30 au 21\\\/11\\\/2026 \\u00e0 23:59\",\"start\":\"2026-11-21\",\"end\":\"2026-11-21\",\"start_time\":\"20:30\",\"end_time\":\"\",\"open_start\":false,\"city\":\"56470 La Trinit\\u00e9-sur-Mer\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Chevaleresses, c\\u2019est un coup de poing salvateur, une \\u0153uvre lumineuse, po\\u00e9tique et politique, \\u00e9crite et interpr\\u00e9t\\u00e9e par Nolwenn Le Doth, au service d\\u2019une lib\\u00e9ration de la parole des femmes toujours \\u00e0 conqu\\u00e9rir.\\n \\nIl y a le grand-fr\\u00e8re. Et la petite s\\u0153ur. C\\u2019est une histoire de famille. Particuli\\u00e8re et terriblement banale. \\nC\\u2019est l\\u2019histoire d\\u2019un inceste. Une histoire de lign\\u00e9e et de tout ce qui recommence. Une histoire de soci\\u00e9t\\u00e9 aussi et de tout ce qui recommence. \\nLa bouche s\\u2019ouvre, le silence \\u00e9clate, la parole s\\u2019impose, n\\u00e9cessaire. Et elle jaillit pour raconter : le combat d\\u2019une chevaleresse, les rouages d'une m\\u00e9canique traumatique, l\\u2019urgence de sortir du tabou, raconter tout ce qui nous d\\u00e9passe. Et surtout, tout ce qu\\u2019on peut d\\u00e9passer. \\nC\\u2019est l\\u2019histoire de ce dont on est capable. Se relever. \\u00catre libre.\\n\\nD\\u00e8s 14 ans\\nDur\\u00e9e 1h15\",\"image\":\"\",\"credit\":\"\",\"link\":\"https:\\\/\\\/athena-auray.mapado.com\\\/event\\\/793054-chevaleresses\"},{\"id\":58,\"name\":\"Le temps d'une histoire\",\"type\":\"evenements-locaux-190\",\"category\":\"en-famille\",\"label\":\"Du 25\\\/11\\\/2026 \\u00e0 10:30 au 25\\\/11\\\/2026 \\u00e0 23:59\",\"start\":\"2026-11-25\",\"end\":\"2026-11-25\",\"start_time\":\"10:30\",\"end_time\":\"\",\"open_start\":false,\"city\":\"56400 Brech\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Lecture et arts plastiques, d\\u00e8s 4 ans.\\n\\nAnimation ouverte \\u00e0 tous (abonn\\u00e9s et non abonn\\u00e9s au r\\u00e9seau des m\\u00e9diath\\u00e8ques Terre Atlantique).\\n\\nNombre de places limit\\u00e9 \\u2013 Inscription aupr\\u00e8s de la m\\u00e9diath\\u00e8que.\\nAnimation propos\\u00e9e et organis\\u00e9e par la m\\u00e9diath\\u00e8que de Brec'h. \\n\\nAnimation gratuite. \\nSur inscription, par t\\u00e9l\\u00e9phone ou mail.\",\"image\":\"\",\"credit\":\"\",\"link\":\"\"},{\"id\":53,\"name\":\"CINE-DOCS VOYAGE : Le M\\u00e9kong - Du Tibet au Vietnam- Film de Patrick MATHE\",\"type\":\"evenements-locaux-190\",\"category\":\"spectacles-cinema\",\"label\":\"Du 25\\\/11\\\/2026 \\u00e0 15:00 au 25\\\/11\\\/2026 \\u00e0 23:59\",\"start\":\"2026-11-25\",\"end\":\"2026-11-25\",\"start_time\":\"15:00\",\"end_time\":\"\",\"open_start\":false,\"city\":\"56340 Carnac\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Du Tibet au delta, le M\\u00e9kong d\\u00e9roule son cours sur 4350 km et traverse six pays. De la Chine, au Laos, du Cambodge, au Vietnam, le film retrace 20 ans d\\u2019\\u00e9volution des villes et des peuples vivant sur ses berges. Un voyage au fil d\\u2019un fleuve mythique, t\\u00e9moin des bouleversements du monde en pleine mutation.\\n\\nSalle de 100 places - r\\u00e9servation conseill\\u00e9e jusqu\\u2019\\u00e0 24 novembre en pr\\u00e9cisant la s\\u00e9ance choisie : \\naec.reservation @gmail.com\\n\\nBilletterie dans le Hall de l\\u2019Auditorium \\u00e0 14h30 pour la s\\u00e9ance de 15h et \\u00e0 18h la s\\u00e9ance de 18h30.\",\"image\":\"\",\"credit\":\"\",\"link\":\"http:\\\/\\\/www.artetculture-carnac.com\\\/\"},{\"id\":52,\"name\":\"Week end Cin\\u00e9ma, BD, Litt\\u00e9rature\",\"type\":\"evenements-locaux-190\",\"category\":\"en-famille\",\"label\":\"Du 27\\\/11\\\/2026 au 27\\\/11\\\/2026 \\u00e0 23:59\",\"start\":\"2026-11-27\",\"end\":\"2026-11-27\",\"start_time\":\"\",\"end_time\":\"\",\"open_start\":false,\"city\":\"56410 \\u00c9tel\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Des films qui sont tir\\u00e9s de BD ou des BD issues de films.\\nDes histoires et des h\\u00e9ros sur des planches de dessins et sur la pellicule.\\n\\nDes librairies pr\\u00e9senteront des BD c\\u00e9l\\u00e8bres ou moins connues et  le cin\\u00e9ma La Rivi\\u00e8re projettera des films \\u00e9voquant ces BD.\\n\\nAu programme:\\nVendredi 27 : \\n19h:  conf\\u00e9rence \\\"Raconter en images\\\"\\n20h30: In Waves\\n\\nSamedi 28 : \\n11h: Pers\\u00e9polis\\n15h: Le sommet des dieux\\n17h: Klara et le soleil\\n20h30: soir\\u00e9e d\\u00e9guis\\u00e9e > concours  Ast\\u00e9rix et le royaume de Nubie (avant-premi\\u00e8re)\\n\\nDimanche 29:\\n11h: cin\\u00e9-conte Ernest et C\\u00e9lestine (avant-premi\\u00e8re)\\n15h30: Rosalie Blum\\n17h: Tintin et le secret de la licorne\\n20h30: Snowpiercer\\n\\nChaque film sera accompagn\\u00e9 d\\u2019une courte pr\\u00e9sentation \\u201cillustr\\u00e9e\\u201d.\",\"image\":\"\",\"credit\":\"\",\"link\":\"https:\\\/\\\/www.cinemalariviere.org\\\/events\\\/78421-week-end-cinema-bd-litterature\\\/\"},{\"id\":8,\"name\":\"Spectacle de danse \\\"le tour du monde en 80 pas\\\"\",\"type\":\"evenements-locaux-190\",\"category\":\"spectacles-cinema\",\"label\":\"Du 27\\\/11\\\/2026 \\u00e0 19:00 au 27\\\/11\\\/2026 \\u00e0 23:59\",\"start\":\"2026-11-27\",\"end\":\"2026-11-27\",\"start_time\":\"19:00\",\"end_time\":\"\",\"open_start\":false,\"city\":\"56340 Carnac\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Deux danseuses se retrouvent dans un stage de danse un peu particulier...\\nUn ascenseur magique les entraine d'\\u00e9tage en \\u00e9tage, \\u00e0 travers les pays et les \\u00e9poques sur les traces des danses du monde, de leur naissance \\u00e0  leur \\u00e9volution au fil du temps. \\nA chaque arr\\u00eat, elles d\\u00e9couvrent une nouvelle danse et, comme par magie, elles maitrisent instantan\\u00e9ment les pas.\\nLes voil\\u00e0 transport\\u00e9es au c\\u0153ur du pays et l'\\u00e9poque qui l'ont vue na\\u00eetre, comme si elles en faisaient partie !\\nAu rythme de la musique, elles nous entrainent dans un voyage dans\\u00e9 plein de fantaisie, de couleurs et d'\\u00e9nergie.\\nMais que se passe t'il dans cet ascenseur ?\\n\\nUne cr\\u00e9ation r\\u00e9unissant les adh\\u00e9rents de l'association CVK autour des danses du monde et des danses urbaines, \\u00e0 l'occasion des 10 ans de l'association. \\n\\nR\\u00e9servation en ligne.  Tarif : 10 \\u20ac\\nBuvette et encas sur place.\",\"image\":\"\",\"credit\":\"\",\"link\":\"\"},{\"id\":55,\"name\":\"Grande braderie festive et solidaire\",\"type\":\"evenements-locaux-190\",\"category\":\"brocantes-vide-greniers\",\"label\":\"Du 28\\\/11\\\/2026 \\u00e0 10:00 au 28\\\/11\\\/2026 \\u00e0 23:59\",\"start\":\"2026-11-28\",\"end\":\"2026-11-28\",\"start_time\":\"10:00\",\"end_time\":\"\",\"open_start\":false,\"city\":\"56690 Land\\u00e9vant\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Le samedi 28 novembre, de 10h \\u00e0 18h, la m\\u00e9diath\\u00e8que s'anime sous le signe de la convivialit\\u00e9, de la solidarit\\u00e9 et du d\\u00e9veloppement durable. \\n\\nVenez faire le plein de lectures \\u00e0 prix mini : plus de 500 ouvrages (romans, BD, albums, documentaires) seront vendus \\u00e0 1 \\u20ac et les revues \\u00e0 0,50 \\u20ac. \\n\\nUne journ\\u00e9e doublement vertueuse et chaleureuse gr\\u00e2ce \\u00e0 plusieurs actions phares :\\n\\u2022 Action solidaire : Une partie des recettes sera revers\\u00e9e \\u00e0 une association locale, dont l'identit\\u00e9 sera d\\u00e9voil\\u00e9e quelques jours apr\\u00e8s la braderie. \\n\\u2022 Action \\u00e9coresponsable : Dans le cadre de la Semaine Europ\\u00e9enne de R\\u00e9duction des D\\u00e9chets du 21 au 29 novembre, le r\\u00e9seau des m\\u00e9diath\\u00e8ques s'associe \\u00e0 Auray Quiberon Terre Atlantique et devient point de collecte. Apportez vos t\\u00e9l\\u00e9phones portables inutilis\\u00e9s pour leur offrir une seconde vie (r\\u00e9emploi ou recyclage). \\n\\u2022 Ambiance festive : Un piano sera mis \\u00e0 la disposition du public pour partager quelques notes en musique. L'\\u00e9quipe de la m\\u00e9diath\\u00e8que, facilement rep\\u00e9rable gr\\u00e2ce \\u00e0 de jolis colliers \\u00e0 fleurs, sera pr\\u00e9sente pour vous accueillir et vous faire d\\u00e9couvrir ses services. \\n\\nC'est l'occasion parfaite d'allier le plaisir de la lecture \\u00e0 deux bonnes actions ! \\n\\nOuvert \\u00e0 tous \\\/ Entr\\u00e9e libre\\n\\nLe paiement des achats se fera soit en esp\\u00e8ces soit par ch\\u00e8que.\\n\\nContact : 02 97 56 93 15 ou mediatheque@landevant.bzh\",\"image\":\"\",\"credit\":\"\",\"link\":\"\"},{\"id\":26,\"name\":\"Cin\\u00e9-docs La Route de la Soie \\u00ab Sur les traces de Marco Polo \\u00bb\",\"type\":\"evenements-locaux-190\",\"category\":\"spectacles-cinema\",\"label\":\"Du 28\\\/11\\\/2026 \\u00e0 16:00 au 28\\\/11\\\/2026 \\u00e0 23:59\",\"start\":\"2026-11-28\",\"end\":\"2026-11-28\",\"start_time\":\"16:00\",\"end_time\":\"\",\"open_start\":false,\"city\":\"56410 Erdeven\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"\\u00ab Qui n\\u2019a r\\u00eav\\u00e9 de parcourir la Route de la Soie dans les pas de Marco Polo ? Pendant plus de 2000 ans, des hommes de tous horizons ont parcouru les pistes caravani\\u00e8res de Chine qui, au d\\u00e9part de la ville imp\\u00e9riale de Xi\\u2019an, traversaient les d\\u00e9serts hostiles du Gobi et du Taklamakan, ainsi que le redoutable plateau du Pamir souvent appel\\u00e9 le \\u00ab Toit du monde \\u00bb. Caravans\\u00e9rails, villes mortes, gigantesques sanctuaires bouddhiques sont aujourd\\u2019hui les t\\u00e9moins de la richesse de cette histoire prodigieuse. De nos jours, dans des paysages d\\u2019une rare beaut\\u00e9, la vie quotidienne se poursuit en Asie Centrale.\\n\\nTarif : 8\\u20ac \\nDur\\u00e9e des cin\\u00e9-docs : 2h \\n\\u00c9change apr\\u00e8s le film \\nLe film d\\u00e9bute apr\\u00e8s la pr\\u00e9sentation par l'auteur d'environ 15 minutes\\nBilletterie ouverte 30 minutes avant la s\\u00e9ance\",\"image\":\"\",\"credit\":\"\",\"link\":\"https:\\\/\\\/www.le-cercle-des-voyageurs.fr\\\/seance\\\/la-route-de-la-soie-dans-les-pas-de-marco-polo-28-11-2026\\\/\"},{\"id\":46,\"name\":\"March\\u00e9 et animations de No\\u00ebl\",\"type\":\"evenements-locaux-190\",\"category\":\"marches-foires\",\"label\":\"Du 28\\\/11\\\/2026 \\u00e0 17:00 au 28\\\/11\\\/2026 \\u00e0 23:59\",\"start\":\"2026-11-28\",\"end\":\"2026-11-28\",\"start_time\":\"17:00\",\"end_time\":\"\",\"open_start\":false,\"city\":\"56400 Plumergat\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"En partenariat avec l\\u2019association des commer\\u00e7ants et artisans de M\\u00e9riadec, la commune participe au rendez-vous f\\u00e9\\u00e9rique de No\\u00ebl tant attendu !\\n\\nRendez-vous \\u00e0 17 h \\u00e0 la Place de l\\u2019\\u00c9glise, M\\u00e9riadec\\n\\nGratuit \\u2013 Tout public\",\"image\":\"\",\"credit\":\"\",\"link\":\"https:\\\/\\\/www.plumergat.fr\\\/programmation-culturelle\\\/\"},{\"id\":1,\"name\":\"Concert - FI\\u00d1V\",\"type\":\"evenements-locaux-190\",\"category\":\"concerts-musique-festivals\",\"label\":\"Du 28\\\/11\\\/2026 \\u00e0 20:30 au 28\\\/11\\\/2026 \\u00e0 23:59\",\"start\":\"2026-11-28\",\"end\":\"2026-11-28\",\"start_time\":\"20:30\",\"end_time\":\"\",\"open_start\":false,\"city\":\"56330 Pluvigner\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Concert dessin\\u00e9 par Roland Conq et Florent Grouazel\\n\\nFI\\u00d1V en Breton, c\\u2019est le mouvement. \\n\\nLe mouvement des danses et des airs \\u00e0 la marche dont s\\u2019inspire le guitariste, mais aussi le mouvement du crayon du dessinateur sur le papier, le rythme, les rythmes, de la main sur la planche. C\\u2019est de l\\u2019impulsion, de l\\u2019\\u00e9change entre les deux artistes qu'\\u00e9clot le spectacle, chaque fois nouveau, guid\\u00e9 par la pulsation, le lieu, les vibrations de l\\u2019instant, plus que par une trame rigide. C\\u2019est aussi leur attachement \\u00e0 des valeurs communes, leur appropriation de la culture, de l'Histoire, et les identit\\u00e9s qui les forgent, qui permettent \\u00e0 Roland et Florent de se rencontrer.\",\"image\":\"\",\"credit\":\"\",\"link\":\"\"},{\"id\":9,\"name\":\"March\\u00e9 de No\\u00ebl de l\\u2019\\u00e9cole des Crevettes bleues\",\"type\":\"evenements-locaux-190\",\"category\":\"marches-foires\",\"label\":\"Du 29\\\/11\\\/2026 \\u00e0 09:00 au 29\\\/11\\\/2026 \\u00e0 23:59\",\"start\":\"2026-11-29\",\"end\":\"2026-11-29\",\"start_time\":\"09:00\",\"end_time\":\"\",\"open_start\":false,\"city\":\"56470 La Trinit\\u00e9-sur-Mer\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Un moment agr\\u00e9able \\u00e0 partager en famille ou entre amis lors du march\\u00e9 de No\\u00ebl.\\nDe nombreux exposants proposent des id\\u00e9es cadeaux, des cr\\u00e9ations artisanales et des gourmandises de No\\u00ebl.\\nMalgr\\u00e9 un planning charg\\u00e9, le p\\u00e8re No\\u00ebl devrait \\u00eatre pr\\u00e9sent vers 16 h.\\n\\nUne buvette et une restauration sur place sont propos\\u00e9es au profit des enfants de l\\u2019\\u00e9cole.\",\"image\":\"\",\"credit\":\"\",\"link\":\"\"},{\"id\":14,\"name\":\"Cin\\u00e9 doc - La voix du M\\u00e9kong, du Tibet \\u00e0 H\\u00f4 Chi Minh\",\"type\":\"evenements-locaux-190\",\"category\":\"spectacles-cinema\",\"label\":\"Du 29\\\/11\\\/2026 \\u00e0 17:00 au 29\\\/11\\\/2026 \\u00e0 23:59\",\"start\":\"2026-11-29\",\"end\":\"2026-11-29\",\"start_time\":\"17:00\",\"end_time\":\"\",\"open_start\":false,\"city\":\"56330 Pluvigner\",\"onsite\":false,\"spot\":\"\",\"registration\":false,\"description\":\"Le M\\u00e9kong d\\u00e9roule son cours sur 4350 kms et traverse six pays. Le film retrace vingt ans d\\u2019\\u00e9volution des villes et des peuples vivant sur ses berges : salines tib\\u00e9taines, Angkor, Phnom Penh, course des bateaux dragons, la maison de l\\u2019amant de Marguerite Duras, H\\u00f4 Chi Minh \\u00e0 No\\u00ebl\\u2026 Entre traditions immuables, modernisation et m\\u00e9moire d\\u2019explorateurs, un voyage au fil d\\u2019un fleuve mythique, t\\u00e9moin des bouleversements d\\u2019un monde en pleine mutation. Projection en pr\\u00e9sence du r\\u00e9alisateur, Patrick Math\\u00e9 du Cercle des Voyageurs\",\"image\":\"\",\"credit\":\"\",\"link\":\"\"}];\n    var CATEGORIES = {\"marches-foires\":{\"key\":\"marches-foires\",\"label\":\"March\\u00e9s & foires\",\"color\":\"#ef4444\",\"count\":8},\"concerts-musique-festivals\":{\"key\":\"concerts-musique-festivals\",\"label\":\"Concerts, musique & festivals\",\"color\":\"#3b82f6\",\"count\":12},\"spectacles-cinema\":{\"key\":\"spectacles-cinema\",\"label\":\"Spectacles & cin\\u00e9ma\",\"color\":\"#10b981\",\"count\":13},\"sport-randonnee\":{\"key\":\"sport-randonnee\",\"label\":\"Sport & randonn\\u00e9e\",\"color\":\"#f59e0b\",\"count\":4},\"en-famille\":{\"key\":\"en-famille\",\"label\":\"En famille\",\"color\":\"#a855f7\",\"count\":14},\"expositions\":{\"key\":\"expositions\",\"label\":\"Expositions\",\"color\":\"#0891b2\",\"count\":8},\"brocantes-vide-greniers\":{\"key\":\"brocantes-vide-greniers\",\"label\":\"Brocantes & vide-greniers\",\"color\":\"#db2777\",\"count\":1}};\n    var TODAY = \"2026-11-02\";\n    \/\/ Textes et format des dates dans la langue de la page (includes\/i18n.php)\n    var T = {\"blog_read_more\":\"Read the article\",\"blog_empty\":\"No articles yet.\",\"blog_newer\":\"Newer articles\",\"blog_older\":\"Older articles\",\"blog_label\":\"Articles\",\"hero_title\":\"Things to discover nearby\",\"hero_text\":\"Villages, beaches, walks, good addresses and experiences selected around your stay.\",\"around\":\"Around\",\"search_placeholder\":\"Search for a place, an activity, a village\\u2026\",\"search\":\"Search\",\"max_distance\":\"Maximum distance\",\"all\":\"All\",\"prev_categories\":\"Previous categories\",\"next_categories\":\"Next categories\",\"categories\":\"Categories\",\"display\":\"Display\",\"list\":\"List\",\"map\":\"Map\",\"close\":\"Close\",\"featured\":\"Featured\",\"discover\":\"Discover\",\"idea\":\"idea\",\"ideas\":\"ideas\",\"around_you\":\"around you\",\"no_result\":\"No results\",\"no_result_hint\":\"Try another search, category or distance.\",\"pagination\":\"Ideas pagination\",\"prev_page\":\"Previous page\",\"next_page\":\"Next page\",\"ideas_title\":\"Ideas to suit your mood\",\"ideas_sub\":\"Suggestions to plan your perfect stay.\",\"reset_view\":\"Back to the overview\",\"map_hint\":\"Click a marker on the map to show its details here.\",\"official_site\":\"Official website\",\"video\":\"Video\",\"gallery\":\"Gallery\",\"documents\":\"Documents\",\"faq\":\"Frequently asked questions\",\"no_answer\":\"No answer yet.\",\"see_on_maps\":\"View on Google Maps\",\"see_place_on_maps\":\"View the campsite on Google Maps\",\"yes\":\"Yes\",\"no\":\"No\",\"practical_info\":\"Practical information\",\"reviews\":\"reviews\",\"read_more\":\"Read more\",\"prev_review\":\"Previous review\",\"next_review\":\"Next review\",\"prev_item\":\"Previous\",\"next_item\":\"Next\",\"photo_credit\":\"Photo: %s\",\"directions\":\"Directions\",\"read_less\":\"Show less\",\"article_in_this\":\"In this article\",\"article_toc\":\"Article contents\",\"see_original\":\"Automatically translated \\u00b7 See original\",\"see_translation\":\"See translation\",\"stars_out_of_5\":\"%s stars out of 5\",\"owner_reply\":\"Response from the owner\",\"customer\":\"Guest\",\"customer_reviews\":\"Guest reviews\",\"rating_label\":\"Rated %1$s out of 5, %2$s reviews \\u2014 see the reviews\",\"reviews_by\":\"Reviews presented by Elaia\",\"powered_by\":\"Powered by\",\"today\":\"Today\",\"today_lc\":\"today\",\"tomorrow\":\"Tomorrow\",\"until\":\"Until %s\",\"from_to\":\"From %1$s to %2$s\",\"registration\":\"Booking required\",\"full\":\"Full\",\"all_animations\":\"See all activities \\u2192\",\"ago_day\":\"%d day ago\",\"ago_days\":\"%d days ago\",\"ago_week\":\"%d week ago\",\"ago_weeks\":\"%d weeks ago\",\"ago_month\":\"%d month ago\",\"ago_months\":\"%d months ago\",\"ago_year\":\"%d year ago\",\"ago_years\":\"%d years ago\",\"anim_unavailable\":\"The programme is temporarily unavailable\",\"content_unavailable\":\"This content is temporarily unavailable\",\"anim_eyebrow\":\"Enjoy unforgettable moments\",\"anim_title\":\"Activities & events\",\"anim_hero_text\":\"Find all current activities, this week's highlights and upcoming events during your stay.\",\"anim_sections\":\"Page sections\",\"anim_nav_today\":\"Today\",\"anim_nav_week\":\"This week\",\"anim_nav_upcoming\":\"Upcoming\",\"anim_nav_calendar\":\"Calendar\",\"anim_where\":\"Where?\",\"anim_onsite\":\"On site\",\"anim_nearby\":\"Nearby\",\"anim_no_onsite\":\"No on-site activity at the moment\",\"anim_no_nearby\":\"No nearby event at the moment\",\"anim_all_day\":\"All day\",\"anim_at\":\"at %s\",\"anim_see_detail\":\"see details\",\"anim_live\":\"Ongoing\",\"anim_onsite_spot\":\"On site \\u00b7 %s\",\"anim_badge_until\":\"Until\",\"anim_badge_from\":\"From\",\"anim_badge_today\":\"Today\",\"anim_filter_cat\":\"Filter by category\",\"anim_all_f\":\"All\",\"anim_prev_day\":\"Previous day\",\"anim_next_day\":\"Next day\",\"anim_today_title\":\"Today's activities\",\"anim_tomorrow_title\":\"Tomorrow's activities\",\"anim_day_title\":\"Activities on %s\",\"anim_relax_today\":\"A relaxing day today\",\"anim_nothing_day\":\"Nothing planned that day\",\"anim_next_on\":\"Next event on %s.\",\"anim_soon\":\"The programme will be updated soon.\",\"anim_see_day\":\"See that day\",\"anim_prev_acts\":\"Previous activities\",\"anim_next_acts\":\"Next activities\",\"anim_prev_week\":\"Previous week\",\"anim_next_week\":\"Next week\",\"anim_week_title\":\"This week's highlights\",\"anim_next_week_title\":\"Next week\",\"anim_week_of\":\"Week of %s\",\"anim_week_days\":\"Days of the week\",\"anim_today_paren\":\"(today)\",\"anim_activity\":\"%d activity\",\"anim_activities\":\"%d activities\",\"anim_nothing\":\"nothing planned\",\"anim_pick_day\":\"Select another day to see its programme.\",\"anim_sort\":\"Sort events\",\"anim_sort_date\":\"Sort by date\",\"anim_sort_name\":\"Sort by name\",\"anim_upcoming_title\":\"All upcoming events\",\"anim_no_upcoming\":\"No upcoming events\",\"anim_try_cat\":\"Try another category.\",\"anim_more\":\"See more events (%d)\",\"anim_hide_cal\":\"Hide the calendar\",\"anim_show_cal\":\"See the full calendar\",\"anim_cal_title\":\"Monthly calendar\",\"anim_cal_sub\":\"All of the month's events at a glance.\",\"anim_prev_month\":\"Previous month\",\"anim_next_month\":\"Next month\",\"anim_more_info\":\"More information\",\"anim_new_tab\":\"(new tab)\",\"date_locale\":\"en-GB\",\"page_faq\":\"FAQ\",\"page_metadatas\":\"Discover around you\",\"page_animations\":\"Activities and events\",\"page_corpus\":\"Practical information\",\"anim_event\":\"Event\"};\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 = \"https:\\\/\\\/elaia-public.s3.fr-par.scw.cloud\\\/chatbot-defaults\\\/YbvaO2gJEVBEnlZoJopVMgvE1tjmJQYiYpkixK0V.jpg\";\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        \/\/ Le cr\u00e9dit n'est plus celui de l'image affich\u00e9e\n        var cr = img.parentNode && img.parentNode.querySelector('.ea-credit');\n        if (cr) cr.remove();\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    \/** Cr\u00e9dit photo en bas \u00e0 droite de l'image (rien sans image propre) *\/\n    function credit(e) {\n      if (!e.image || !e.credit) return null;\n      var txt = \/^(\u00a9|\\(c\\))\/i.test(e.credit) ? e.credit : '\u00a9 ' + e.credit;\n      var c = el('span', 'ea-credit', txt);\n      c.title = txt;\n      return c;\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      var cr = credit(e);\n      if (cr) m.appendChild(cr);\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        var mm = el('div', 'ea-modal-media');\n        mm.appendChild(img);\n        var mcr = credit(e);\n        if (mcr) mm.appendChild(mcr);\n        modalContent.appendChild(mm);\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 COLLANTE + 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,"inline_featured_image":false,"footnotes":""},"sujet":[],"class_list":["post-2321","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.campinglespalmiers.com\/en\/wp-json\/wp\/v2\/pages\/2321","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.campinglespalmiers.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.campinglespalmiers.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.campinglespalmiers.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.campinglespalmiers.com\/en\/wp-json\/wp\/v2\/comments?post=2321"}],"version-history":[{"count":1,"href":"https:\/\/www.campinglespalmiers.com\/en\/wp-json\/wp\/v2\/pages\/2321\/revisions"}],"predecessor-version":[{"id":2322,"href":"https:\/\/www.campinglespalmiers.com\/en\/wp-json\/wp\/v2\/pages\/2321\/revisions\/2322"}],"wp:attachment":[{"href":"https:\/\/www.campinglespalmiers.com\/en\/wp-json\/wp\/v2\/media?parent=2321"}],"wp:term":[{"taxonomy":"sujet","embeddable":true,"href":"https:\/\/www.campinglespalmiers.com\/en\/wp-json\/wp\/v2\/sujet?post=2321"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}