{"id":12344,"date":"2026-02-05T16:52:48","date_gmt":"2026-02-05T15:52:48","guid":{"rendered":"https:\/\/campingsigean.com\/elaia-metadatas\/"},"modified":"2026-07-09T20:33:38","modified_gmt":"2026-07-09T18:33:38","slug":"elaia-metadatas","status":"publish","type":"page","link":"https:\/\/campingsigean.com\/fr\/elaia-metadatas\/","title":{"rendered":"D\u00e9couvrez autour de vous"},"content":{"rendered":"\n\n\n<style>\n  html {\n    scroll-behavior: smooth;\n  }\n\n  .em-wrap.em-mobile-filters-open {\n    z-index: 100000 !important;\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     BASE \u2014 Layout principal et typographie\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  .em-wrap {\n    position: relative !important;\n    z-index: 10 !important;\n    isolation: isolate;\n\n    display: flex;\n    flex-direction: column;\n    \/* Hauteur auto : la page coule naturellement et le footer du th\u00e8me suit le contenu.\n       Anciennement height:calc(100vh - --em-header-offset) qui for\u00e7ait un viewport entier\n       et faisait appara\u00eetre le footer \u00e0 un endroit bizarre. *\/\n\n    font-family: 'Inter', -apple-system, sans-serif !important;\n    color: #0f172a;\n    max-width: 1400px;\n    margin: 0 auto;\n    padding: 0 24px 40px;\n    -webkit-font-smoothing: antialiased;\n  }\n\n  .em-wrap * {\n    box-sizing: border-box;\n  }\n\n  \/* \u2500\u2500\u2500 Header \u2014 Titre + barre de recherche \u2500\u2500\u2500 *\/\n  .em-header {\n    padding: 40px 0 24px;\n    display: flex;\n    align-items: flex-end;\n    justify-content: space-between;\n    gap: 16px;\n    flex-wrap: wrap;\n    flex-shrink: 0;\n    \/* le header ne se compresse pas *\/\n  }\n\n  .em-header-title {\n    font-size: 24px !important;\n    font-weight: 800 !important;\n    margin: 0 !important;\n    color: #0f172a;\n  }\n\n  .em-header-sub {\n    font-size: 14px;\n    color: #64748b;\n    margin: 4px 0 0;\n  }\n\n  \/* \u2500\u2500\u2500 Recherche \u2014 Champ avec ic\u00f4ne loupe \u2500\u2500\u2500 *\/\n  .em-search-wrap {\n    position: relative;\n  }\n\n  .em-sidebar .em-search-wrap {\n    margin-top: 16px;\n  }\n\n  .em-search-icon {\n    position: absolute;\n    left: 12px;\n    top: 50%;\n    transform: translateY(-50%);\n    width: 16px;\n    height: 16px;\n    color: #94a3b8;\n    pointer-events: none;\n  }\n\n  .em-search {\n    width: 100% !important;\n    padding: 10px 16px 10px 36px !important;\n    font-size: 14px !important;\n    font-family: inherit;\n    border: 1px solid #e2e8f0 !important;\n    border-radius: 12px !important;\n    background: #fff !important;\n    color: #0f172a;\n    outline: none;\n  }\n\n  .em-search:focus {\n    border-color: #3b82f6 !important;\n    box-shadow: 0 0 0 3px #3b82f618 !important;\n  }\n\n  .em-search::placeholder {\n    color: #94a3b8;\n  }\n\n  .em-main {\n    flex: 1;\n    min-width: 0;\n    width: 100%;\n    display: flex;\n    flex-direction: column;\n    gap: 24px;\n  }\n\n  \/* \u2500\u2500\u2500 Onglets \u2014 Filtrage par cat\u00e9gorie \u2500\u2500\u2500 *\/\n  \/* --em-header-offset est calcul\u00e9 au runtime par le JS (hauteur d'un header sticky\/fix\u00e9 du th\u00e8me, sinon 0) *\/\n  .em-tabs {\n    display: flex !important;\n    flex-wrap: wrap;\n    gap: 8px;\n    flex-shrink: 0;\n  }\n\n  \/* Overlay opaque sous le header du th\u00e8me, affich\u00e9 uniquement pendant le scroll \u2014 masque les cards qui d\u00e9filent \u00e0 travers un header semi-transparent *\/\n  #em-header-overlay {\n    position: fixed;\n    top: 0;\n    left: 0;\n    right: 0;\n    height: var(--em-header-offset, 0px);\n    pointer-events: none;\n    opacity: 0;\n    transition: opacity 0.15s;\n  }\n\n  html.em-scrolled #em-header-overlay {\n    opacity: 1;\n  }\n\n  .em-tab {\n    flex: 0 1 auto;\n    max-width: 100%;\n    padding: 8px 16px;\n    border-radius: 8px;\n    font-size: 14px;\n    font-weight: 500;\n    cursor: pointer;\n    border: 1px solid #e2e8f0;\n    background: #fff;\n    color: #64748b;\n    transition: all 0.15s;\n    font-family: inherit;\n    white-space: normal;\n    overflow-wrap: anywhere;\n    text-align: left;\n  }\n\n  .em-tab:hover {\n    border-color: #cbd5e1;\n  }\n\n  .em-tab.active {\n    background: #3b82f6 !important;\n    color: #fff !important;\n    border-color: #3b82f6 !important;\n  }\n\n  .em-tab-count {\n    margin-left: 6px;\n    font-size: 12px;\n    opacity: 0.7;\n  }\n\n  .em-main-body {\n    display: flex;\n    flex-direction: column;\n    gap: 24px;\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     CARTE \u2014 Leaflet + l\u00e9gende + marqueurs\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  .em-map-section {\n    \/* margin-bottom: 24px; *\/\n    isolation: isolate;\n  }\n\n  .em-map-section--hidden {\n    display: none;\n  }\n\n  .em-map-wrap {\n    border-radius: 16px;\n    overflow: hidden;\n    border: 1px solid #e2e8f0;\n    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);\n  }\n\n  .em-map {\n    height: 420px;\n    width: 100%;\n  }\n\n  \/* Personnalisation des popups Leaflet *\/\n  .em-map .leaflet-popup-content-wrapper {\n    border-radius: 12px;\n    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);\n    padding: 0;\n    overflow: hidden;\n  }\n\n  .em-map .leaflet-popup-content {\n    margin: 0;\n    min-width: 200px;\n  }\n\n  .em-map .leaflet-popup-tip {\n    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);\n  }\n\n  .em-map-popup {\n    padding: 12px 14px;\n  }\n\n  .em-map-popup-name {\n    font-size: 14px;\n    font-weight: 700;\n    color: #0f172a;\n    margin: 0 0 4px;\n    line-height: 1.3;\n  }\n\n  .em-map-popup-cat {\n    font-size: 11px;\n    font-weight: 600;\n    text-transform: uppercase;\n    letter-spacing: 0.3px;\n    margin: 0 0 8px;\n  }\n\n  .em-map-popup-btn {\n    display: inline-flex;\n    align-items: center;\n    gap: 4px;\n    font-size: 12px;\n    font-weight: 600;\n    color: #3b82f6;\n    cursor: pointer;\n    background: none;\n    border: none;\n    padding: 0;\n    font-family: inherit;\n  }\n\n  .em-map-popup-btn:hover {\n    text-decoration: underline;\n  }\n\n  \/* L\u00e9gende de la carte *\/\n  .em-map-legend {\n    display: flex;\n    gap: 16px;\n    padding: 10px 16px;\n    background: #fff;\n    border-top: 1px solid #e2e8f0;\n    flex-wrap: wrap;\n  }\n\n  .em-map-legend-item {\n    display: flex;\n    min-width: 0;\n    max-width: 100%;\n    align-items: center;\n    gap: 6px;\n    font-size: 12px;\n    font-weight: 600;\n    color: #64748b;\n    cursor: pointer;\n    transition: opacity 0.15s;\n    overflow-wrap: anywhere;\n  }\n\n  .em-map-legend-item:hover {\n    opacity: 0.7;\n  }\n\n  .em-map-legend-item--off {\n    opacity: 0.3;\n  }\n\n  .em-map-legend-item--off .em-map-legend-dot {\n    background: #cbd5e1 !important;\n    box-shadow: none !important;\n  }\n\n  .em-map-legend-dot {\n    width: 10px;\n    height: 10px;\n    border-radius: 50%;\n    flex-shrink: 0;\n    box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.08);\n  }\n\n  \/* Bouton toggle carte *\/\n  .em-map-toggle {\n    display: inline-flex;\n    align-items: center;\n    gap: 6px;\n    padding: 8px 14px;\n    border-radius: 8px;\n    border: 1px solid #e2e8f0;\n    background: #fff;\n    color: #64748b;\n    font-size: 13px;\n    font-weight: 600;\n    cursor: pointer;\n    font-family: inherit;\n    transition: all 0.15s;\n    margin-bottom: 16px;\n  }\n\n  .em-map-toggle:hover {\n    border-color: #3b82f6;\n    color: #3b82f6;\n  }\n\n  .em-map-toggle.active {\n    background: #3b82f6;\n    color: #fff;\n    border-color: #3b82f6;\n  }\n\n  \/* Quand le bouton Carte est plac\u00e9 dans la barre des onglets, alignement avec .em-tab *\/\n  .em-tabs .em-map-toggle {\n    font-size: 14px;\n    padding: 8px 16px;\n    margin-bottom: 0;\n    flex-shrink: 0;\n  }\n\n  \/* Marqueurs personnalis\u00e9s SVG *\/\n  .em-marker {\n    transition: transform 0.15s ease;\n  }\n\n  .em-marker:hover {\n    transform: scale(1.3);\n    z-index: 1000 !important;\n  }\n\n  .em-marker--active {\n    transform: scale(1.4);\n    z-index: 1000 !important;\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     LAYOUT \u2014 Sidebar filtres + grille cards\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  .em-layout {\n    display: flex;\n    min-width: 0;\n    width: 100%;\n    gap: 24px;\n    align-items: flex-start;\n    scroll-margin-top: calc(var(--em-header-offset, 0px) + 16px);\n  }\n\n  .em-sidebar {\n    flex: 0 0 285px;\n    position: sticky;\n    top: calc(var(--em-header-offset, 0px) + 24px);\n    align-self: flex-start;\n    max-height: calc(100vh - var(--em-header-offset, 0px) - 48px);\n    overflow-y: auto;\n    scroll-behavior: smooth;\n  }\n\n\n  \/* \u2500\u2500\u2500 Filtres lat\u00e9raux \u2500\u2500\u2500 *\/\n  .em-filters {\n    background: #fff;\n    border-radius: 12px;\n    padding: 20px;\n    border: 1px solid #e2e8f0;\n    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);\n  }\n\n  .em-filters-title {\n    width: 100%;\n    padding: 0;\n    border: 0;\n    background: none;\n    text-align: left;\n    font-family: inherit;\n    font-size: 15px !important;\n    font-weight: 700 !important;\n    margin: 0 0 16px !important;\n    color: #0f172a;\n  }\n\n  .em-filters-title-main {\n    display: flex;\n    align-items: center;\n    gap: 8px;\n  }\n\n  .em-filters-title-icon {\n    width: 18px;\n    height: 18px;\n    flex-shrink: 0;\n  }\n\n  .em-filters-title-hint {\n    display: none;\n  }\n\n  .em-filter-group {\n    margin-bottom: 18px;\n  }\n\n  .em-filter-group:last-child {\n    margin-bottom: 0;\n  }\n\n  .em-filter-label {\n    display: block;\n    font-size: 12px;\n    font-weight: 700;\n    color: #94a3b8;\n    text-transform: uppercase;\n    letter-spacing: 0.5px;\n    margin-bottom: 8px;\n  }\n\n  .em-filter-check {\n    display: flex;\n    align-items: center;\n    gap: 8px;\n    padding: 5px 0;\n    cursor: pointer;\n  }\n\n  .em-filter-check input[type=\"checkbox\"] {\n    cursor: pointer;\n    accent-color: #3b82f6;\n    width: 15px;\n    height: 15px;\n  }\n\n  .em-filter-check span {\n    font-size: 13px;\n    color: #64748b;\n    font-weight: 500;\n  }\n\n  .em-filter-reset {\n    width: 100%;\n    padding: 10px;\n    background: #0f172a;\n    color: #fff;\n    border: none;\n    border-radius: 8px;\n    font-size: 13px;\n    font-weight: 600;\n    cursor: pointer;\n    font-family: inherit;\n    margin-top: 16px;\n  }\n\n  .em-filter-reset:hover {\n    background: #000;\n  }\n\n  \/* \u2500\u2500\u2500 Compteurs \u2500\u2500\u2500 *\/\n  .em-stats {\n    display: flex;\n    gap: 8px;\n    margin-bottom: 20px;\n    flex-wrap: wrap;\n    justify-content: center;\n  }\n\n  .em-stat {\n    background: #fff;\n    border: 1px solid #e2e8f0;\n    border-radius: 8px;\n    padding: 8px 14px;\n    font-size: 13px;\n    color: #64748b;\n  }\n\n  .em-stat strong {\n    color: #0f172a;\n    font-weight: 700;\n    margin-left: 4px;\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     CARDS \u2014 Grille de fiches m\u00e9tadonn\u00e9es\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  .em-cards {\n    display: grid !important;\n    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)) !important;\n    gap: 20px !important;\n  }\n\n  .em-card {\n    background: #fff !important;\n    border: 1px solid #e2e8f0 !important;\n    border-radius: 12px !important;\n    overflow: hidden !important;\n    cursor: pointer;\n    transition: all 0.2s;\n    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);\n    display: block !important;\n  }\n\n  .em-card.em-hidden {\n    display: none !important;\n  }\n\n  .em-card:hover {\n    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.07) !important;\n    transform: translateY(-2px);\n    border-color: #3b82f6 !important;\n  }\n\n  .em-card--highlight {\n    box-shadow: 0 0 0 3px #3b82f6 !important;\n  }\n\n  \/* Image de la card *\/\n  .em-card-img-wrap {\n    position: relative;\n  }\n\n  .em-card-img {\n    width: 100% !important;\n    height: 160px !important;\n    object-fit: cover !important;\n    display: block !important;\n    background: #f1f5f9;\n  }\n\n  .em-card-placeholder {\n    width: 100%;\n    height: 160px;\n    background: linear-gradient(135deg, #f1f5f9, #e2e8f0);\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    color: #94a3b8;\n    font-size: 14px;\n    font-weight: 500;\n  }\n\n  .em-card-badge {\n    position: absolute;\n    top: 10px;\n    left: 10px;\n    max-width: calc(100% - 20px);\n    padding: 4px 10px;\n    border-radius: 6px;\n    font-size: 11px;\n    font-weight: 700;\n    text-transform: uppercase;\n    letter-spacing: 0.3px;\n    backdrop-filter: blur(8px);\n    white-space: normal;\n    overflow-wrap: anywhere;\n    line-height: 1.25;\n  }\n\n  \/* Badges de cat\u00e9gorie (couleurs par type) *\/\n  .badge-accom {\n    background: rgba(16, 185, 129, 0.9);\n    color: #fff;\n  }\n\n  .badge-city {\n    background: rgba(59, 130, 246, 0.9);\n    color: #fff;\n  }\n\n  .badge-activity {\n    background: rgba(168, 85, 247, 0.9);\n    color: #fff;\n  }\n\n  .badge-event {\n    background: rgba(239, 68, 68, 0.9);\n    color: #fff;\n  }\n\n  .badge-restaurant {\n    background: rgba(245, 158, 11, 0.9);\n    color: #fff;\n  }\n\n  .badge-service {\n    background: rgba(99, 102, 241, 0.9);\n    color: #fff;\n  }\n\n  .badge-default {\n    background: rgba(100, 116, 139, 0.9);\n    color: #fff;\n  }\n\n  \/* Contenu de la card *\/\n  .em-card-body {\n    padding: 16px;\n  }\n\n  .em-card-title {\n    font-size: 15px !important;\n    font-weight: 700 !important;\n    margin: 0 0 8px !important;\n    color: #0f172a;\n    line-height: 1.3;\n  }\n\n  .em-card-tags {\n    display: flex;\n    flex-wrap: wrap;\n    gap: 5px;\n    margin-bottom: 10px;\n  }\n\n  .em-tag {\n    display: inline-flex;\n    align-items: center;\n    gap: 3px;\n    padding: 3px 8px;\n    border-radius: 5px;\n    font-size: 11px;\n    font-weight: 600;\n    background: #f1f5f9;\n    color: #64748b;\n  }\n\n  .em-tag-blue {\n    background: #dbeafe;\n    color: #1e40af;\n  }\n\n  .em-tag-green {\n    background: #d1fae5;\n    color: #065f46;\n  }\n\n  .em-tag-orange {\n    background: #fed7aa;\n    color: #92400e;\n  }\n\n  .em-tag-purple {\n    background: #ede9fe;\n    color: #6b21a8;\n  }\n\n  \/* Champs r\u00e9sum\u00e9s visibles sur la card *\/\n  .em-card-fields {\n    margin-bottom: 10px;\n  }\n\n  .em-card-field {\n    display: flex;\n    gap: 6px;\n    font-size: 12px;\n    margin-bottom: 4px;\n  }\n\n  .em-card-field-label {\n    color: #94a3b8;\n    flex-shrink: 0;\n  }\n\n  .em-card-field-value {\n    color: #0f172a;\n    overflow: hidden;\n    text-overflow: ellipsis;\n    white-space: nowrap;\n  }\n\n  \/* Pied de card *\/\n  .em-card-footer {\n    padding-top: 10px;\n    border-top: 1px solid #e2e8f0;\n    display: flex;\n    align-items: center;\n    gap: 4px;\n    font-size: 12px;\n    font-weight: 600;\n    color: #3b82f6;\n  }\n\n  .em-card-footer svg {\n    width: 14px;\n    height: 14px;\n    transition: transform 0.15s;\n  }\n\n  .em-card:hover .em-card-footer svg {\n    transform: translateX(2px);\n  }\n\n  \/* \u00c9tat vide *\/\n  .em-empty {\n    text-align: center;\n    padding: 60px 20px;\n    color: #64748b;\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\u00e9tail d'une fiche\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  .em-modal-overlay {\n    position: fixed;\n    inset: 0;\n    background: rgba(0, 0, 0, 0.5);\n    backdrop-filter: blur(4px);\n    z-index: 99999;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    padding: 16px;\n    animation: emFadeIn 0.2s ease;\n  }\n\n  @keyframes emFadeIn {\n    from {\n      opacity: 0\n    }\n\n    to {\n      opacity: 1\n    }\n  }\n\n  .em-modal {\n    background: #fff;\n    border-radius: 16px;\n    max-width: 640px;\n    width: 100%;\n    max-height: 85vh;\n    overflow: hidden;\n    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.08);\n    display: flex;\n    flex-direction: column;\n    animation: emSlideUp 0.25s ease;\n  }\n\n  @keyframes emSlideUp {\n    from {\n      opacity: 0;\n      transform: translateY(20px)\n    }\n\n    to {\n      opacity: 1;\n      transform: translateY(0)\n    }\n  }\n\n  \/* Modal avec image *\/\n  .em-modal-img-wrap {\n    position: relative;\n    flex-shrink: 0;\n  }\n\n  .em-modal-img {\n    width: 100%;\n    height: 220px;\n    object-fit: cover;\n    display: block;\n  }\n\n  .em-modal-img-gradient {\n    position: absolute;\n    inset: 0;\n    background: linear-gradient(to top, rgba(0, 0, 0, 0.4), transparent);\n  }\n\n  .em-modal-img-info {\n    position: absolute;\n    bottom: 16px;\n    left: 20px;\n    right: 20px;\n  }\n\n  .em-modal-img-cat {\n    font-size: 12px;\n    font-weight: 500;\n    color: rgba(255, 255, 255, 0.8);\n    margin: 0 0 4px;\n  }\n\n  .em-modal-img-title {\n    font-size: 20px;\n    font-weight: 800;\n    color: #fff;\n    margin: 0;\n  }\n\n  .em-modal-close {\n    position: absolute;\n    top: 12px;\n    right: 12px;\n    width: 32px;\n    height: 32px;\n    border-radius: 50%;\n    background: rgba(0, 0, 0, 0.4);\n    color: #fff;\n    border: none;\n    cursor: pointer;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    font-size: 16px;\n  }\n\n  .em-modal-close:hover {\n    background: rgba(0, 0, 0, 0.6);\n  }\n\n  \/* Modal sans image *\/\n  .em-modal-header-noimg {\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    padding: 20px 24px;\n    border-bottom: 1px solid #e2e8f0;\n  }\n\n  .em-modal-header-noimg-cat {\n    font-size: 12px;\n    color: #94a3b8;\n    margin: 0 0 2px;\n  }\n\n  .em-modal-header-noimg-title {\n    font-size: 18px;\n    font-weight: 800;\n    color: #0f172a;\n    margin: 0;\n  }\n\n  .em-modal-close-noimg {\n    width: 32px;\n    height: 32px;\n    border-radius: 8px;\n    border: none;\n    cursor: pointer;\n    color: #94a3b8;\n    background: none;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    font-size: 16px;\n  }\n\n  .em-modal-close-noimg:hover {\n    background: #f1f5f9;\n    color: #0f172a;\n  }\n\n  \/* Corps et entr\u00e9es de la modal *\/\n  .em-modal-body {\n    padding: 20px 24px;\n    overflow-y: auto;\n    flex: 1;\n    scroll-behavior: smooth;\n  }\n\n  .em-modal-entry {\n    margin-bottom: 16px;\n  }\n\n  .em-modal-entry-label {\n    font-size: 11px;\n    font-weight: 700;\n    text-transform: uppercase;\n    letter-spacing: 0.5px;\n    color: #94a3b8;\n    margin: 0 0 4px;\n  }\n\n  .em-modal-entry-value {\n    font-size: 14px;\n    color: #0f172a;\n    margin: 0;\n    line-height: 1.5;\n    white-space: pre-line;\n  }\n\n  \/* Badge date d'\u00e9v\u00e9nement *\/\n  .em-modal-event {\n    display: inline-flex;\n    align-items: center;\n    padding: 6px 12px;\n    margin-bottom: 16px;\n    background: #fff7ed;\n    color: #c2410c;\n    border-radius: 8px;\n    font-size: 13px;\n    font-weight: 600;\n  }\n\n  \/* Player vid\u00e9o *\/\n  .em-modal-video-wrap {\n    position: relative;\n    width: 100%;\n    padding-top: 56.25%;\n    overflow: hidden;\n    border-radius: 8px;\n    background: #000;\n  }\n\n  .em-modal-video-wrap iframe {\n    position: absolute;\n    inset: 0;\n    width: 100%;\n    height: 100%;\n    border: 0;\n  }\n\n  .em-modal-video-file {\n    width: 100%;\n    border-radius: 8px;\n    background: #000;\n    display: block;\n  }\n\n  \/* Galerie d'images *\/\n  .em-modal-gallery {\n    display: grid;\n    grid-template-columns: repeat(3, 1fr);\n    gap: 8px;\n  }\n\n  @media (min-width: 480px) {\n    .em-modal-gallery {\n      grid-template-columns: repeat(4, 1fr);\n    }\n  }\n\n  .em-modal-gallery-item {\n    display: block;\n    aspect-ratio: 1 \/ 1;\n    border-radius: 8px;\n    overflow: hidden;\n    border: 1px solid #e2e8f0;\n    background: #f1f5f9;\n    transition: transform .15s ease, border-color .15s ease;\n  }\n\n  .em-modal-gallery-item:hover {\n    transform: scale(1.03);\n    border-color: #cbd5e1;\n  }\n\n  .em-modal-gallery-item img {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    display: block;\n  }\n\n  \/* Documents PDF *\/\n  .em-modal-docs {\n    list-style: none;\n    margin: 0;\n    padding: 0;\n    display: flex;\n    flex-direction: column;\n    gap: 6px;\n  }\n\n  .em-modal-doc {\n    display: flex;\n    align-items: center;\n    gap: 8px;\n    padding: 8px 12px;\n    border: 1px solid #fce7f3;\n    background: rgba(253, 242, 248, .6);\n    color: #be185d;\n    border-radius: 8px;\n    text-decoration: none;\n    font-size: 14px;\n    transition: border-color .15s ease, background .15s ease;\n  }\n\n  .em-modal-doc:hover {\n    border-color: #f9a8d4;\n    background: #fdf2f8;\n  }\n\n  .em-modal-doc svg {\n    flex-shrink: 0;\n  }\n\n  .em-modal-doc-name {\n    flex: 1;\n    overflow: hidden;\n    text-overflow: ellipsis;\n    white-space: nowrap;\n    font-weight: 500;\n  }\n\n  .em-modal-doc-type {\n    flex-shrink: 0;\n    padding: 2px 6px;\n    background: #fce7f3;\n    color: #be185d;\n    border-radius: 4px;\n    font-size: 10px;\n    font-weight: 600;\n    text-transform: uppercase;\n    letter-spacing: .04em;\n  }\n\n  \/* Questions fr\u00e9quentes *\/\n  .em-modal-faq {\n    margin-top: 16px;\n    padding-top: 16px;\n    border-top: 1px solid #e2e8f0;\n  }\n\n  .em-modal-faq-item {\n    margin-top: 12px;\n    border: 1px solid #e2e8f0;\n    border-radius: 8px;\n    overflow: hidden;\n    background: #f8fafc;\n  }\n\n  .em-modal-faq-q {\n    padding: 10px 12px;\n    font-size: 13px;\n    font-weight: 600;\n    color: #0f172a;\n  }\n\n  .em-modal-faq-a {\n    padding: 10px 12px;\n    font-size: 13px;\n    color: #475569;\n    line-height: 1.5;\n    border-top: 1px solid #e2e8f0;\n    background: #fff;\n    white-space: pre-line;\n  }\n\n  .em-modal-faq-a-empty {\n    color: #94a3b8;\n    font-style: italic;\n  }\n\n  \/* Pied de modal *\/\n  .em-modal-footer {\n    padding: 16px 24px;\n    border-top: 1px solid #e2e8f0;\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n  }\n\n  .em-modal-link {\n    display: inline-flex;\n    align-items: center;\n    gap: 6px;\n    font-size: 14px;\n    font-weight: 600;\n    color: #3b82f6;\n    text-decoration: none;\n  }\n\n  .em-modal-link:hover {\n    opacity: 0.8;\n  }\n\n  .em-modal-close-btn {\n    padding: 8px 16px;\n    font-size: 14px;\n    font-weight: 500;\n    color: #64748b;\n    background: none;\n    border: none;\n    cursor: pointer;\n    font-family: inherit;\n  }\n\n  .em-modal-close-btn:hover {\n    color: #0f172a;\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     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: 1024px) {\n    .em-layout {\n      flex-direction: column;\n    }\n\n    .em-sidebar {\n      flex-basis: auto;\n      height: auto;\n      position: static;\n      width: 100%;\n      max-height: none;\n      overflow: visible;\n    }\n\n    \/* Sidebar collapsible sur mobile *\/\n    .em-sidebar {\n      order: -1;\n    }\n\n    .em-filters {\n      padding: 14px;\n    }\n\n    .em-filters-title {\n      font-size: 14px !important;\n      margin-bottom: 0 !important;\n      cursor: pointer;\n      display: flex;\n      align-items: center;\n      justify-content: space-between;\n    }\n\n    .em-filters-title-hint {\n      display: block;\n      margin-top: 2px;\n      font-size: 12px;\n      line-height: 1.3;\n      font-weight: 500;\n      color: #64748b;\n    }\n\n    .em-filters-title::after {\n      content: 'Fermer';\n      margin-left: 12px;\n      font-size: 12px;\n      font-weight: 700;\n      color: #3b82f6;\n    }\n\n    .em-filters.collapsed .em-filters-title::after {\n      content: 'Ouvrir \u2192';\n      transform: none;\n    }\n\n    .em-filters.collapsed {\n      padding: 0;\n      border-color: #3b82f655;\n      background: #3b82f618;\n      box-shadow: none;\n    }\n\n    .em-filters.collapsed .em-filters-title {\n      padding: 14px 16px;\n    }\n\n    .em-filters.collapsed .em-stats,\n    .em-filters.collapsed .em-filter-group,\n    .em-filters.collapsed .em-filter-reset,\n    .em-filters.collapsed .em-search-wrap {\n      display: none;\n    }\n  }\n\n  @media (max-width: 720px) {\n    html.em-filters-open,\n    html.em-filters-open body {\n      overflow: hidden !important;\n    }\n\n    .em-wrap {\n      padding: 0 12px;\n    }\n\n    .em-header {\n      \/* flex-direction: column;\n      align-items: stretch; *\/\n      padding: 24px 0 16px;\n      gap: 12px;\n    }\n\n    .em-header-title {\n      font-size: 20px !important;\n    }\n\n    .em-search-wrap {\n      width: 100%;\n    }\n\n    .em-tabs {\n      gap: 6px;\n      margin-bottom: 16px;\n    }\n\n    .em-tab {\n      padding: 6px 12px;\n      font-size: 13px;\n    }\n\n    .em-tabs .em-map-toggle {\n      padding: 6px 12px;\n      font-size: 13px;\n    }\n\n    .em-filter-backdrop {\n      position: fixed;\n      inset: 0;\n      z-index: 100000;\n      background: rgba(15, 23, 42, 0.48);\n      opacity: 0;\n      visibility: hidden;\n      transition: opacity 0.2s ease, visibility 0.2s ease;\n    }\n\n    .em-filter-backdrop.is-visible {\n      opacity: 1;\n      visibility: visible;\n    }\n\n    .em-filters:not(.collapsed) {\n      position: fixed;\n      z-index: 100001;\n      top: max(16px, env(safe-area-inset-top));\n      right: 12px;\n      bottom: max(16px, env(safe-area-inset-bottom));\n      left: 12px;\n      max-height: none;\n      overflow-y: auto;\n      overscroll-behavior: contain;\n      scroll-behavior: smooth;\n      box-shadow: 0 24px 60px rgba(15, 23, 42, 0.24);\n    }\n\n    .em-filters:not(.collapsed) .em-filters-title {\n      position: sticky;\n      top: -14px;\n      z-index: 1;\n      margin: -14px -14px 16px !important;\n      padding: 14px;\n      background: #fff;\n      border-bottom: 1px solid #e2e8f0;\n    }\n\n    .em-filters:not(.collapsed) .em-filters-title::after {\n      content: '\u2715';\n      transform: none;\n      font-size: 16px;\n    }\n\n    \/* Carte mobile *\/\n    .em-map {\n      height: 280px;\n    }\n\n    .em-map-wrap {\n      border-radius: 12px;\n    }\n\n    .em-map-legend {\n      gap: 10px;\n      padding: 8px 12px;\n    }\n\n    .em-map-legend-item {\n      font-size: 11px;\n    }\n\n\n\n    \/* Cards mobile *\/\n    .em-cards {\n      grid-template-columns: 1fr !important;\n      gap: 14px !important;\n    }\n\n    .em-card-img,\n    .em-card-placeholder {\n      height: 140px !important;\n    }\n\n    .em-card-body {\n      padding: 12px;\n    }\n\n    .em-card-title {\n      font-size: 14px !important;\n    }\n\n    .em-card-tags {\n      gap: 4px;\n    }\n\n    .em-tag {\n      font-size: 10px;\n      padding: 2px 6px;\n    }\n\n    \/* Compteurs compacts *\/\n    .em-stats {\n      gap: 8px;\n      margin-bottom: 14px;\n    }\n\n    .em-stat {\n      padding: 6px 10px;\n      font-size: 12px;\n    }\n\n    \/* Modal \u2192 bottom sheet sur mobile *\/\n    .em-modal-overlay {\n      align-items: flex-end;\n      padding: 0;\n    }\n\n    .em-modal {\n      border-radius: 16px 16px 0 0;\n      max-height: 90vh;\n      max-width: 100%;\n      animation: emSlideUpMobile 0.3s cubic-bezier(0.22, 1, 0.36, 1);\n    }\n\n    @keyframes emSlideUpMobile {\n      from {\n        transform: translateY(100%);\n      }\n\n      to {\n        transform: translateY(0);\n      }\n    }\n\n    .em-modal-img {\n      height: 180px;\n    }\n\n    .em-modal-body {\n      padding: 16px;\n    }\n\n    .em-modal-footer {\n      padding: 12px 16px;\n    }\n\n    .em-modal-entry-value {\n      font-size: 13px;\n    }\n  }\n\n  @media (max-width: 380px) {\n    .em-map {\n      height: 220px;\n    }\n\n    .em-card-img,\n    .em-card-placeholder {\n      height: 120px !important;\n    }\n\n    .em-card-fields {\n      display: none;\n    }\n  }\n<\/style>\n\n\n\n<script type=\"application\/ld+json\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"ItemList\",\"name\":\"Activit\u00e9s autour du camping\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"item\":{\"@type\":\"Thing\",\"name\":\"R\u00e9serve Africaine de Sigean\",\"description\":\"Parc de 350 hectares d\u00e9di\u00e9 \u00e0 la conservation d\u2019esp\u00e8ces menac\u00e9es, abritant plus de 3 800 animaux et 160 esp\u00e8ces, accessible \u00e0 pied ou en voiture.\",\"url\":\"https:\/\/campingsigean.com\/fr\",\"image\":\"https:\/\/campingsigean.com\/images\/reserve-africaine.jpg\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.0661,\"longitude\":12.9406},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Type d'activit\u00e9\",\"value\":\"(*) randonn\u00e9es, ( ) kayak, ( ) v\u00e9lo, ( ) parapente, ( ) golf, ( ) escalade, ( ) p\u00eache\"},{\"@type\":\"PropertyValue\",\"name\":\"Lieu ou zone de pratique\",\"value\":\"Sigean, France\"},{\"@type\":\"PropertyValue\",\"name\":\"Dur\u00e9e approximative (heures)\",\"value\":\"3\"},{\"@type\":\"PropertyValue\",\"name\":\"Capacit\u00e9\",\"value\":\"1000\"},{\"@type\":\"PropertyValue\",\"name\":\"Date de d\u00e9but\",\"value\":\"2026-03-16\"},{\"@type\":\"PropertyValue\",\"name\":\"Date de fin\",\"value\":\"2026-11-01\"},{\"@type\":\"PropertyValue\",\"name\":\"Tarif ou fourchette de prix\",\"value\":\"Tarifs variables selon le type de visite\"},{\"@type\":\"PropertyValue\",\"name\":\"R\u00e9servation n\u00e9cessaire\",\"value\":\"Oui\"},{\"@type\":\"PropertyValue\",\"name\":\"\u00c9quipements fournis\",\"value\":\"Billet d'entr\u00e9e\"}]}},{\"@type\":\"ListItem\",\"position\":2,\"item\":{\"@type\":\"Thing\",\"name\":\"Plage de La Franqui\",\"description\":\"Plage situ\u00e9e au pied de la falaise, id\u00e9ale pour la baignade et les promenades en bord de mer.\",\"url\":\"https:\/\/campingsigean.com\/fr\",\"image\":\"https:\/\/campingsigean.com\/images\/plage-la-franqui.jpg\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.0661,\"longitude\":12.9406},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Type d'activit\u00e9\",\"value\":\"(*) randonn\u00e9es, ( ) kayak, ( ) v\u00e9lo, ( ) parapente, ( ) golf, ( ) escalade, ( ) p\u00eache\"},{\"@type\":\"PropertyValue\",\"name\":\"Lieu ou zone de pratique\",\"value\":\"La Franqui, France\"},{\"@type\":\"PropertyValue\",\"name\":\"Dur\u00e9e approximative (heures)\",\"value\":\"2\"},{\"@type\":\"PropertyValue\",\"name\":\"Capacit\u00e9\",\"value\":\"500\"},{\"@type\":\"PropertyValue\",\"name\":\"Date de d\u00e9but\",\"value\":\"2026-03-16\"},{\"@type\":\"PropertyValue\",\"name\":\"Date de fin\",\"value\":\"2026-11-01\"},{\"@type\":\"PropertyValue\",\"name\":\"Tarif ou fourchette de prix\",\"value\":\"Acc\u00e8s gratuit\"},{\"@type\":\"PropertyValue\",\"name\":\"R\u00e9servation n\u00e9cessaire\",\"value\":\"Non\"},{\"@type\":\"PropertyValue\",\"name\":\"\u00c9quipements fournis\",\"value\":\"Aucun\"}]}},{\"@type\":\"ListItem\",\"position\":3,\"item\":{\"@type\":\"Thing\",\"name\":\"Abbaye de Fontfroide\",\"description\":\"Monument historique du XIIe si\u00e8cle, offrant des visites guid\u00e9es et des \u00e9v\u00e9nements culturels.\",\"url\":\"https:\/\/campingsigean.com\/fr\",\"image\":\"https:\/\/campingsigean.com\/images\/abbaye-fontfroide.jpg\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.0661,\"longitude\":12.9406},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Type d'activit\u00e9\",\"value\":\"(*) randonn\u00e9es, ( ) kayak, ( ) v\u00e9lo, ( ) parapente, ( ) golf, ( ) escalade, ( ) p\u00eache\"},{\"@type\":\"PropertyValue\",\"name\":\"Lieu ou zone de pratique\",\"value\":\"Narbonne, France\"},{\"@type\":\"PropertyValue\",\"name\":\"Dur\u00e9e approximative (heures)\",\"value\":\"2\"},{\"@type\":\"PropertyValue\",\"name\":\"Capacit\u00e9\",\"value\":\"200\"},{\"@type\":\"PropertyValue\",\"name\":\"Date de d\u00e9but\",\"value\":\"2026-03-16\"},{\"@type\":\"PropertyValue\",\"name\":\"Date de fin\",\"value\":\"2026-11-01\"},{\"@type\":\"PropertyValue\",\"name\":\"Tarif ou fourchette de prix\",\"value\":\"Tarifs d'entr\u00e9e variables\"},{\"@type\":\"PropertyValue\",\"name\":\"R\u00e9servation n\u00e9cessaire\",\"value\":\"Oui\"},{\"@type\":\"PropertyValue\",\"name\":\"\u00c9quipements fournis\",\"value\":\"Billet d'entr\u00e9e\"}]}},{\"@type\":\"ListItem\",\"position\":4,\"item\":{\"@type\":\"Thing\",\"name\":\"Terra Vinea\",\"description\":\"Vignoble proposant des visites guid\u00e9es et des d\u00e9gustations de vins locaux dans un cadre exceptionnel.\",\"url\":\"https:\/\/campingsigean.com\/fr\",\"image\":\"https:\/\/campingsigean.com\/images\/terra-vinea.jpg\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.0661,\"longitude\":12.9406},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Type d'activit\u00e9\",\"value\":\"(*) randonn\u00e9es, ( ) kayak, ( ) v\u00e9lo, ( ) parapente, ( ) golf, ( ) escalade, ( ) p\u00eache\"},{\"@type\":\"PropertyValue\",\"name\":\"Lieu ou zone de pratique\",\"value\":\"Portel-des-Corbi\u00e8res, France\"},{\"@type\":\"PropertyValue\",\"name\":\"Dur\u00e9e approximative (heures)\",\"value\":\"2\"},{\"@type\":\"PropertyValue\",\"name\":\"Capacit\u00e9\",\"value\":\"50\"},{\"@type\":\"PropertyValue\",\"name\":\"Date de d\u00e9but\",\"value\":\"2026-03-16\"},{\"@type\":\"PropertyValue\",\"name\":\"Date de fin\",\"value\":\"2026-11-01\"},{\"@type\":\"PropertyValue\",\"name\":\"Tarif ou fourchette de prix\",\"value\":\"Tarifs de visite et d\u00e9gustation variables\"},{\"@type\":\"PropertyValue\",\"name\":\"R\u00e9servation n\u00e9cessaire\",\"value\":\"Oui\"},{\"@type\":\"PropertyValue\",\"name\":\"\u00c9quipements fournis\",\"value\":\"Billet de visite et d\u00e9gustation\"}]}},{\"@type\":\"ListItem\",\"position\":5,\"item\":{\"@type\":\"Thing\",\"name\":\"P\u00eache en mer\",\"description\":\"Activit\u00e9 de p\u00eache en mer avec possibilit\u00e9 de location de mat\u00e9riel et excursions en bateau.\",\"url\":\"https:\/\/campingsigean.com\/fr\",\"image\":\"https:\/\/campingsigean.com\/images\/peche-en-mer.jpg\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.0661,\"longitude\":12.9406},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Type d'activit\u00e9\",\"value\":\"( ) randonn\u00e9es, ( ) kayak, ( ) v\u00e9lo, ( ) parapente, ( ) golf, ( ) escalade, (*) p\u00eache\"},{\"@type\":\"PropertyValue\",\"name\":\"Lieu ou zone de pratique\",\"value\":\"Port-la-Nouvelle, France\"},{\"@type\":\"PropertyValue\",\"name\":\"Dur\u00e9e approximative (heures)\",\"value\":\"4\"},{\"@type\":\"PropertyValue\",\"name\":\"Capacit\u00e9\",\"value\":\"10\"},{\"@type\":\"PropertyValue\",\"name\":\"Date de d\u00e9but\",\"value\":\"2026-03-16\"},{\"@type\":\"PropertyValue\",\"name\":\"Date de fin\",\"value\":\"2026-11-01\"},{\"@type\":\"PropertyValue\",\"name\":\"Tarif ou fourchette de prix\",\"value\":\"Tarifs de location et excursions variables\"},{\"@type\":\"PropertyValue\",\"name\":\"R\u00e9servation n\u00e9cessaire\",\"value\":\"Oui\"},{\"@type\":\"PropertyValue\",\"name\":\"\u00c9quipements fournis\",\"value\":\"Mat\u00e9riel de p\u00eache\"}]}},{\"@type\":\"ListItem\",\"position\":6,\"item\":{\"@type\":\"Thing\",\"name\":\"V\u00e9lo sur la voie verte\",\"description\":\"Piste cyclable s\u00e9curis\u00e9e traversant la r\u00e9gion, id\u00e9ale pour des balades \u00e0 v\u00e9lo en famille.\",\"url\":\"https:\/\/campingsigean.com\/fr\",\"image\":\"https:\/\/campingsigean.com\/images\/velo-voie-verte.jpg\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.0661,\"longitude\":12.9406},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Type d'activit\u00e9\",\"value\":\"( ) randonn\u00e9es, ( ) kayak, (*) v\u00e9lo, ( ) parapente, ( ) golf, ( ) escalade, ( ) p\u00eache\"},{\"@type\":\"PropertyValue\",\"name\":\"Lieu ou zone de pratique\",\"value\":\"Sigean, France\"},{\"@type\":\"PropertyValue\",\"name\":\"Dur\u00e9e approximative (heures)\",\"value\":\"2\"},{\"@type\":\"PropertyValue\",\"name\":\"Capacit\u00e9\",\"value\":\"20\"},{\"@type\":\"PropertyValue\",\"name\":\"Date de d\u00e9but\",\"value\":\"2026-03-16\"},{\"@type\":\"PropertyValue\",\"name\":\"Date de fin\",\"value\":\"2026-11-01\"},{\"@type\":\"PropertyValue\",\"name\":\"Tarif ou fourchette de prix\",\"value\":\"Location de v\u00e9los \u00e0 partir de 15\u20ac par jour\"},{\"@type\":\"PropertyValue\",\"name\":\"R\u00e9servation n\u00e9cessaire\",\"value\":\"Oui\"},{\"@type\":\"PropertyValue\",\"name\":\"\u00c9quipements fournis\",\"value\":\"V\u00e9lo et casque\"}]}},{\"@type\":\"ListItem\",\"position\":7,\"item\":{\"@type\":\"Thing\",\"name\":\"\u00c9quitation \u00e0 la ferme \u00e9questre\",\"description\":\"Promenades \u00e0 cheval adapt\u00e9es \u00e0 tous les niveaux, encadr\u00e9es par des moniteurs dipl\u00f4m\u00e9s.\",\"url\":\"https:\/\/campingsigean.com\/fr\",\"image\":\"https:\/\/campingsigean.com\/images\/equitation-ferme.jpg\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.0661,\"longitude\":12.9406},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Type d'activit\u00e9\",\"value\":\"(*) randonn\u00e9es, ( ) kayak, ( ) v\u00e9lo, ( ) parapente, ( ) golf, ( ) escalade, ( ) p\u00eache\"},{\"@type\":\"PropertyValue\",\"name\":\"Lieu ou zone de pratique\",\"value\":\"Sigean, France\"},{\"@type\":\"PropertyValue\",\"name\":\"Dur\u00e9e approximative (heures)\",\"value\":\"1\"},{\"@type\":\"PropertyValue\",\"name\":\"Capacit\u00e9\",\"value\":\"5\"},{\"@type\":\"PropertyValue\",\"name\":\"Date de d\u00e9but\",\"value\":\"2026-03-16\"},{\"@type\":\"PropertyValue\",\"name\":\"Date de fin\",\"value\":\"2026-11-01\"},{\"@type\":\"PropertyValue\",\"name\":\"Tarif ou fourchette de prix\",\"value\":\"Tarifs \u00e0 partir de 20\u20ac par personne\"},{\"@type\":\"PropertyValue\",\"name\":\"R\u00e9servation n\u00e9cessaire\",\"value\":\"Oui\"},{\"@type\":\"PropertyValue\",\"name\":\"\u00c9quipements fournis\",\"value\":\"Casque et mat\u00e9riel de s\u00e9curit\u00e9\"}]}},{\"@type\":\"ListItem\",\"position\":8,\"item\":{\"@type\":\"Thing\",\"name\":\"Aire de jeux pour enfants\",\"description\":\"Aire de jeux d\u00e9di\u00e9e aux enfants, avec divers \u00e9quipements pour s'amuser en toute s\u00e9curit\u00e9.\",\"url\":\"https:\/\/campingsigean.com\/fr\",\"image\":\"https:\/\/campingsigean.com\/images\/aire-de-jeux.jpg\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.0661,\"longitude\":12.9406},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Type d'activit\u00e9\",\"value\":\"(*) randonn\u00e9es, ( ) kayak, ( ) v\u00e9lo, ( ) parapente, ( ) golf, ( ) escalade, ( ) p\u00eache\"},{\"@type\":\"PropertyValue\",\"name\":\"Lieu ou zone de pratique\",\"value\":\"Sigean, France\"},{\"@type\":\"PropertyValue\",\"name\":\"Dur\u00e9e approximative (heures)\",\"value\":\"1\"},{\"@type\":\"PropertyValue\",\"name\":\"Capacit\u00e9\",\"value\":\"20\"},{\"@type\":\"PropertyValue\",\"name\":\"Date de d\u00e9but\",\"value\":\"2026-03-16\"},{\"@type\":\"PropertyValue\",\"name\":\"Date de fin\",\"value\":\"2026-11-01\"},{\"@type\":\"PropertyValue\",\"name\":\"Tarif ou fourchette de prix\",\"value\":\"Acc\u00e8s gratuit\"},{\"@type\":\"PropertyValue\",\"name\":\"R\u00e9servation n\u00e9cessaire\",\"value\":\"Non\"},{\"@type\":\"PropertyValue\",\"name\":\"\u00c9quipements fournis\",\"value\":\"Aucun\"}]}},{\"@type\":\"ListItem\",\"position\":9,\"item\":{\"@type\":\"Thing\",\"name\":\"Soir\u00e9es \u00e0 th\u00e8me\",\"description\":\"Animations en haute saison, telles que soir\u00e9es moules-frites, karaok\u00e9 et paella, pour des moments conviviaux en famille.\",\"url\":\"https:\/\/campingsigean.com\/fr\",\"image\":\"https:\/\/campingsigean.com\/images\/soirees-a-theme.jpg\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.0661,\"longitude\":12.9406},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Type d'activit\u00e9\",\"value\":\"(*) randonn\u00e9es, ( ) kayak, ( ) v\u00e9lo, ( ) parapente, ( ) golf, ( ) escalade, ( ) p\u00eache\"},{\"@type\":\"PropertyValue\",\"name\":\"Lieu ou zone de pratique\",\"value\":\"Sigean, France\"},{\"@type\":\"PropertyValue\",\"name\":\"Dur\u00e9e approximative (heures)\",\"value\":\"2\"},{\"@type\":\"PropertyValue\",\"name\":\"Capacit\u00e9\",\"value\":\"50\"},{\"@type\":\"PropertyValue\",\"name\":\"Date de d\u00e9but\",\"value\":\"2026-07-15\"},{\"@type\":\"PropertyValue\",\"name\":\"Date de fin\",\"value\":\"2026-08-15\"},{\"@type\":\"PropertyValue\",\"name\":\"Tarif ou fourchette de prix\",\"value\":\"Tarifs variables\"},{\"@type\":\"PropertyValue\",\"name\":\"R\u00e9servation n\u00e9cessaire\",\"value\":\"Oui\"},{\"@type\":\"PropertyValue\",\"name\":\"\u00c9quipements fournis\",\"value\":\"Aucun\"}]}},{\"@type\":\"ListItem\",\"position\":10,\"item\":{\"@type\":\"Thing\",\"name\":\"Balades et randonn\u00e9es autour de l\u2019\u00e9tang de Peyriac-de-Mer\",\"description\":\"Petites balades et belles randonn\u00e9es en famille autour de l\u2019\u00e9tang, avec possibilit\u00e9 de longer le site et d\u2019admirer les paysages depuis les hauteurs. Le lieu est \u00e9galement indiqu\u00e9 comme propice \u00e0 la p\u00eache et \u00e0 la baignade.\",\"url\":\"https:\/\/campingsigean.com\/fr\/camping-bord-de-mer-sigean\/\",\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Type d'activit\u00e9\",\"value\":\"(*) randonn\u00e9es, ( ) kayak, ( ) v\u00e9lo, ( ) parapente, ( ) golf, ( ) escalade, ( ) p\u00eache\"},{\"@type\":\"PropertyValue\",\"name\":\"Lieu ou zone de pratique\",\"value\":\"\u00c9tang de Peyriac-de-Mer, \u00e0 5 minutes du camping La Grange Neuve \u00e0 Sigean\"},{\"@type\":\"PropertyValue\",\"name\":\"Tarif ou fourchette de prix\",\"value\":\"Non indiqu\u00e9\"},{\"@type\":\"PropertyValue\",\"name\":\"R\u00e9servation n\u00e9cessaire\",\"value\":\"Non\"},{\"@type\":\"PropertyValue\",\"name\":\"\u00c9quipements fournis\",\"value\":\"Non indiqu\u00e9\"}]}}]},{\"@type\":\"ItemList\",\"name\":\"Restaurants\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"item\":{\"@type\":\"Thing\",\"name\":\"La Cave de Th\u00e9o\",\"image\":\"https:\/\/www.restaurantsigean.com\/images\/la-cave-de-theo.jpg\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.105,\"longitude\":3.0425},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Cat\u00e9gorie\",\"value\":\"(*) Restaurant\"},{\"@type\":\"PropertyValue\",\"name\":\"Type de cuisine\",\"value\":\"(*) Fran\u00e7aise, ( ) Italienne, ( ) Asiatique, ( ) Mexicaine, ( ) V\u00e9g\u00e9tarienne, ( ) Fusion, ( ) Autre\"},{\"@type\":\"PropertyValue\",\"name\":\"Gamme de prix\",\"value\":\"\u20ac\u20ac\"},{\"@type\":\"PropertyValue\",\"name\":\"Sp\u00e9cialit\u00e9s\",\"value\":\"Cuisine fran\u00e7aise traditionnelle\"},{\"@type\":\"PropertyValue\",\"name\":\"Capacit\u00e9\",\"value\":\"50\"},{\"@type\":\"PropertyValue\",\"name\":\"Adresse\",\"value\":\"82 Avenue de Narbonne, 11130 Sigean\"},{\"@type\":\"PropertyValue\",\"name\":\"Horaires\",\"value\":\"Lundi \u00e0 vendredi : 12h00 - 14h00, 19h00 - 22h00; Samedi : 19h00 - 22h00; Dimanche : ferm\u00e9\"},{\"@type\":\"PropertyValue\",\"name\":\"T\u00e9l\u00e9phone\",\"value\":\"+33 4 68 48 95 01\"},{\"@type\":\"PropertyValue\",\"name\":\"Site web\",\"value\":\"http:\/\/www.restaurantsigean.com\/\"}]}},{\"@type\":\"ListItem\",\"position\":2,\"item\":{\"@type\":\"Thing\",\"name\":\"Restaurant Le Potager de Sigean\",\"image\":\"https:\/\/www.restaurantsigean.com\/images\/le-potager-de-sigean.jpg\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.1055,\"longitude\":3.042},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Cat\u00e9gorie\",\"value\":\"(*) Restaurant\"},{\"@type\":\"PropertyValue\",\"name\":\"Type de cuisine\",\"value\":\"(*) Fran\u00e7aise, ( ) Italienne, ( ) Asiatique, ( ) Mexicaine, ( ) V\u00e9g\u00e9tarienne, ( ) Fusion, ( ) Autre\"},{\"@type\":\"PropertyValue\",\"name\":\"Gamme de prix\",\"value\":\"\u20ac\u20ac\"},{\"@type\":\"PropertyValue\",\"name\":\"Sp\u00e9cialit\u00e9s\",\"value\":\"Cuisine fran\u00e7aise traditionnelle\"},{\"@type\":\"PropertyValue\",\"name\":\"Capacit\u00e9\",\"value\":\"40\"},{\"@type\":\"PropertyValue\",\"name\":\"Adresse\",\"value\":\"28 Avenue de Perpignan, 11130 Sigean\"},{\"@type\":\"PropertyValue\",\"name\":\"Horaires\",\"value\":\"Lundi \u00e0 vendredi : 12h00 - 14h00, 19h00 - 22h00; Samedi : 19h00 - 22h00; Dimanche : ferm\u00e9\"},{\"@type\":\"PropertyValue\",\"name\":\"T\u00e9l\u00e9phone\",\"value\":\"+33 4 68 48 42 76\"},{\"@type\":\"PropertyValue\",\"name\":\"Site web\",\"value\":\"http:\/\/www.restaurantsigean.com\/\"}]}},{\"@type\":\"ListItem\",\"position\":3,\"item\":{\"@type\":\"Thing\",\"name\":\"Restaurant P'Ose\",\"image\":\"https:\/\/www.restaurantsigean.com\/images\/p-ose.jpg\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.1052,\"longitude\":3.0422},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Cat\u00e9gorie\",\"value\":\"(*) Restaurant\"},{\"@type\":\"PropertyValue\",\"name\":\"Type de cuisine\",\"value\":\"(*) Fran\u00e7aise, ( ) Italienne, ( ) Asiatique, ( ) Mexicaine, ( ) V\u00e9g\u00e9tarienne, ( ) Fusion, ( ) Autre\"},{\"@type\":\"PropertyValue\",\"name\":\"Gamme de prix\",\"value\":\"\u20ac\"},{\"@type\":\"PropertyValue\",\"name\":\"Sp\u00e9cialit\u00e9s\",\"value\":\"Cuisine de grand-m\u00e8re, g\u00e9n\u00e9reuse et saine\"},{\"@type\":\"PropertyValue\",\"name\":\"Capacit\u00e9\",\"value\":\"30\"},{\"@type\":\"PropertyValue\",\"name\":\"Adresse\",\"value\":\"5 Rue des \u00c9coles, 11130 Sigean\"},{\"@type\":\"PropertyValue\",\"name\":\"Horaires\",\"value\":\"Lundi \u00e0 vendredi : 12h00 - 14h00, 19h00 - 21h00; Samedi : 19h00 - 21h00; Dimanche : ferm\u00e9\"},{\"@type\":\"PropertyValue\",\"name\":\"T\u00e9l\u00e9phone\",\"value\":\"+33 7 82 21 83 06\"},{\"@type\":\"PropertyValue\",\"name\":\"Site web\",\"value\":\"http:\/\/www.restaurantsigean.com\/\"}]}},{\"@type\":\"ListItem\",\"position\":4,\"item\":{\"@type\":\"Thing\",\"name\":\"Restaurant BANTHA\u00cf\",\"image\":\"https:\/\/www.restaurantsigean.com\/images\/banthai.jpg\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.1053,\"longitude\":3.0423},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Cat\u00e9gorie\",\"value\":\"(*) Restaurant\"},{\"@type\":\"PropertyValue\",\"name\":\"Type de cuisine\",\"value\":\"( ) Fran\u00e7aise, ( ) Italienne, (*) Asiatique, ( ) Mexicaine, ( ) V\u00e9g\u00e9tarienne, ( ) Fusion, ( ) Autre\"},{\"@type\":\"PropertyValue\",\"name\":\"Gamme de prix\",\"value\":\"\u20ac\u20ac\"},{\"@type\":\"PropertyValue\",\"name\":\"Sp\u00e9cialit\u00e9s\",\"value\":\"Cuisine tha\u00eflandaise traditionnelle\"},{\"@type\":\"PropertyValue\",\"name\":\"Capacit\u00e9\",\"value\":\"35\"},{\"@type\":\"PropertyValue\",\"name\":\"Adresse\",\"value\":\"27 Avenue de Perpignan, 11130 Sigean\"},{\"@type\":\"PropertyValue\",\"name\":\"Horaires\",\"value\":\"Lundi \u00e0 vendredi : 12h00 - 14h00, 19h00 - 22h00; Samedi : 19h00 - 22h00; Dimanche : ferm\u00e9\"},{\"@type\":\"PropertyValue\",\"name\":\"T\u00e9l\u00e9phone\",\"value\":\"+33 4 68 48 25 96\"},{\"@type\":\"PropertyValue\",\"name\":\"Site web\",\"value\":\"http:\/\/www.restaurantsigean.com\/\"}]}},{\"@type\":\"ListItem\",\"position\":5,\"item\":{\"@type\":\"Thing\",\"name\":\"Le Jardin Des Oliviers\",\"image\":\"https:\/\/www.restaurantsigean.com\/images\/le-jardin-des-oliviers.jpg\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.1054,\"longitude\":3.0424},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Cat\u00e9gorie\",\"value\":\"(*) Restaurant\"},{\"@type\":\"PropertyValue\",\"name\":\"Type de cuisine\",\"value\":\"(*) Fran\u00e7aise, ( ) Italienne, ( ) Asiatique, ( ) Mexicaine, ( ) V\u00e9g\u00e9tarienne, ( ) Fusion, ( ) Autre\"},{\"@type\":\"PropertyValue\",\"name\":\"Gamme de prix\",\"value\":\"\u20ac\u20ac\"},{\"@type\":\"PropertyValue\",\"name\":\"Sp\u00e9cialit\u00e9s\",\"value\":\"Cuisine fran\u00e7aise traditionnelle\"},{\"@type\":\"PropertyValue\",\"name\":\"Capacit\u00e9\",\"value\":\"45\"},{\"@type\":\"PropertyValue\",\"name\":\"Adresse\",\"value\":\"3 Chemin du Plat, 11130 Sigean\"},{\"@type\":\"PropertyValue\",\"name\":\"Horaires\",\"value\":\"Lundi \u00e0 vendredi : 12h00 - 14h00, 19h00 - 22h00; Samedi : 19h00 - 22h00; Dimanche : ferm\u00e9\"},{\"@type\":\"PropertyValue\",\"name\":\"T\u00e9l\u00e9phone\",\"value\":\"+33 4 68 46 19 95\"},{\"@type\":\"PropertyValue\",\"name\":\"Site web\",\"value\":\"http:\/\/www.restaurantsigean.com\/\"}]}},{\"@type\":\"ListItem\",\"position\":6,\"item\":{\"@type\":\"Thing\",\"name\":\"Les Terrasses de la Berre\",\"url\":\"https:\/\/www.cotedumidi.com\/sit\/reslar011v50gmzr-les-terrasses-de-la-berre\/\",\"image\":\"https:\/\/www.cotedumidi.com\/images\/restaurant\/les-terrasses-de-la-berre.jpg\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.083722,\"longitude\":2.920334},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Cat\u00e9gorie\",\"value\":\"(*) Restaurant\"},{\"@type\":\"PropertyValue\",\"name\":\"Type de cuisine\",\"value\":\"(*) Fran\u00e7aise, ( ) Italienne, ( ) Asiatique, ( ) Mexicaine, ( ) V\u00e9g\u00e9tarienne, ( ) Fusion, ( ) Autre\"},{\"@type\":\"PropertyValue\",\"name\":\"Gamme de prix\",\"value\":\"\u20ac\u20ac\"},{\"@type\":\"PropertyValue\",\"name\":\"Sp\u00e9cialit\u00e9s\",\"value\":\"Cassoulet, cuisse de canard confite, burger de La Berre\"},{\"@type\":\"PropertyValue\",\"name\":\"Capacit\u00e9\",\"value\":\"30\"},{\"@type\":\"PropertyValue\",\"name\":\"Adresse\",\"value\":\"106 avenue des Corbi\u00e8res, 11490 Portel-des-Corbi\u00e8res\"},{\"@type\":\"PropertyValue\",\"name\":\"Horaires\",\"value\":\"Mercredi au dimanche : 12h00-14h00 et 19h00-22h00\"},{\"@type\":\"PropertyValue\",\"name\":\"T\u00e9l\u00e9phone\",\"value\":\"+33 4 68 41 92 43\"},{\"@type\":\"PropertyValue\",\"name\":\"Site web\",\"value\":\"https:\/\/lesterrassesdelaberre.wikeo.fr\"}]}},{\"@type\":\"ListItem\",\"position\":7,\"item\":{\"@type\":\"Thing\",\"name\":\"Pr\u00e8s de la Fontaine\",\"image\":\"https:\/\/www.pres-de-la-fontaine-restaurant-portel-des-corbieres.fr\/images\/restaurant.jpg\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.0625,\"longitude\":3.0625},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Type\",\"value\":\"Restaurant\"},{\"@type\":\"PropertyValue\",\"name\":\"Type de cuisine\",\"value\":\"(*) Fran\u00e7aise, ( ) Italienne, ( ) Asiatique, ( ) Mexicaine, ( ) V\u00e9g\u00e9tarienne, ( ) Fusion, ( ) Autre\"},{\"@type\":\"PropertyValue\",\"name\":\"Gamme de prix\",\"value\":\"\u20ac\u20ac\"},{\"@type\":\"PropertyValue\",\"name\":\"Sp\u00e9cialit\u00e9s\",\"value\":\"Cuisine traditionnelle raffin\u00e9e avec des produits frais et de saison\"},{\"@type\":\"PropertyValue\",\"name\":\"Capacit\u00e9\",\"value\":\"25\"},{\"@type\":\"PropertyValue\",\"name\":\"Adresse\",\"value\":\"11 chemin des Pl\u00e2tri\u00e8res, 11490 Portel-des-Corbi\u00e8res\"},{\"@type\":\"PropertyValue\",\"name\":\"Hours\",\"value\":\"Mardi 19h30-21h00, Mercredi-Dimanche 12h00-13h00 et 19h30-21h00, Ferm\u00e9 le Lundi\"},{\"@type\":\"PropertyValue\",\"name\":\"T\u00e9l\u00e9phone\",\"value\":\"+33 4 34 36 01 94\"},{\"@type\":\"PropertyValue\",\"name\":\"Website\",\"value\":\"https:\/\/www.pres-de-la-fontaine-restaurant-portel-des-corbieres.fr\/\"},{\"@type\":\"PropertyValue\",\"name\":\"Cat\u00e9gorie\",\"value\":\"( ) Restaurant\"}]}}]}]}<\/script>\n\n  \n  <!-- Injection des labels pour le JS (modal) -->\n  <script>\n    var emFieldLabels = {\"name\":\"Nom\",\"activity_type\":\"Type d'activit\\u00e9\",\"location\":\"Lieu ou zone de pratique\",\"description\":\"Description de l'activit\\u00e9\",\"duration_hours\":\"Dur\\u00e9e approximative (heures)\",\"capacity\":\"Capacit\\u00e9\",\"start_date\":\"Date de d\\u00e9but\",\"end_date\":\"Date de fin\",\"price\":\"Tarif ou fourchette de prix\",\"booking_required\":\"R\\u00e9servation n\\u00e9cessaire\",\"equipment_included\":\"\\u00c9quipements fournis\",\"link\":\"Lien\",\"category\":\"Cat\\u00e9gorie\",\"cuisine_type\":\"Type de cuisine\",\"price_range\":\"Gamme de prix\",\"specialties\":\"Sp\\u00e9cialit\\u00e9s\",\"address\":\"Adresse\",\"opening_hours\":\"Horaires\",\"phone\":\"T\\u00e9l\\u00e9phone\",\"website_url\":\"Site web\"};\n  <\/script>\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\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     HTML \u2014 Interface principale\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\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  <div class=\"em-wrap\">\n\n    <!-- \u2500\u2500\u2500 Header : titre \u2500\u2500\u2500 -->\n    <div class=\"em-header\">\n      <div>\n        <h1 class=\"em-header-title\">D\u00e9couvrez autour de vous<\/h1>\n        <p class=\"em-header-sub\">17 fiche(s) dans 2 cat\u00e9gorie(s)<\/p>\n      <\/div>\n      <button class=\"em-map-toggle active\" id=\"em-map-toggle\">\ud83d\udccd Carte<\/button>\n    <\/div>\n\n\n\n    <!-- \u2500\u2500\u2500 Layout principal : sidebar filtres + grille de cards \u2500\u2500\u2500 -->\n    <div class=\"em-layout\">\n\n      <!-- Sidebar \u2014 Filtres par type et \u00e9quipements -->\n      <aside class=\"em-sidebar\">\n        <div class=\"em-filters collapsed\">\n          <button type=\"button\" class=\"em-filters-title\" aria-expanded=\"false\">\n            <span>\n              <span class=\"em-filters-title-main\">\n                <svg class=\"em-filters-title-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" aria-hidden=\"true\">\n                  <path d=\"M4 6h16M7 12h10M10 18h4\"><\/path>\n                <\/svg>\n                <span>Filtres<\/span>\n              <\/span>\n              <span class=\"em-filters-title-hint\">Affiner les r\u00e9sultats par type ou \u00e9quipement<\/span>\n            <\/span>\n          <\/button>\n          <div class=\"em-stats\">\n\n            <div class=\"em-stat\">Total : <strong id=\"em-stat-total\">17<\/strong><\/div>\n            <div class=\"em-stat\">Affich\u00e9s : <strong id=\"em-stat-visible\">17<\/strong><\/div>\n          <\/div>\n          <div class=\"em-filter-group\">\n            <label class=\"em-filter-label\">Type<\/label>\n                          <label class=\"em-filter-check\"><input type=\"checkbox\" value=\"activites-autour-du-camping\" class=\"em-filter-type\" checked><span>Activit\u00e9s autour du camping<\/span><\/label>\n                          <label class=\"em-filter-check\"><input type=\"checkbox\" value=\"restaurants\" class=\"em-filter-type\" checked><span>Restaurants<\/span><\/label>\n                      <\/div>\n          \n          <!-- \u2500\u2500\u2500 Recherche (sous les filtres) \u2500\u2500\u2500 -->\n          <div class=\"em-search-wrap\">\n            <svg class=\"em-search-icon\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\">\n              <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z\"><\/path>\n            <\/svg>\n            <input type=\"text\" class=\"em-search\" id=\"em-search\" placeholder=\"Rechercher une fiche...\">\n          <\/div>\n          <button class=\"em-filter-reset\" id=\"em-reset-filters\">R\u00e9initialiser<\/button>\n        <\/div>\n      <\/aside>\n\n      <!-- Contenu principal \u2014 Compteurs + grille de cards -->\n      <main class=\"em-main\">\n\n        <!-- \u2500\u2500\u2500 Onglets de cat\u00e9gories (affich\u00e9s si > 1 cat\u00e9gorie) \u2500\u2500\u2500 -->\n                  <div class=\"em-tabs\" id=\"em-tabs\">\n\n            <button class=\"em-tab active\" data-filter=\"all\">Tout<span class=\"em-tab-count\">17<\/span><\/button>\n                          <button class=\"em-tab\" data-filter=\"activites-autour-du-camping\">Activit\u00e9s autour du camping<span class=\"em-tab-count\">10<\/span><\/button>\n                          <button class=\"em-tab\" data-filter=\"restaurants\">Restaurants<span class=\"em-tab-count\">7<\/span><\/button>\n                      <\/div>\n        \n        <div class=\"em-main-body\">\n          <!-- \u2500\u2500\u2500 Carte interactive (affich\u00e9e si des points GPS existent) \u2500\u2500\u2500 -->\n                      <div class=\"em-map-section\">\n              <div class=\"em-map-wrap\" id=\"em-map-wrap\">\n                <div id=\"em-map\" class=\"em-map\"><\/div>\n                <div class=\"em-map-legend\">\n                                                          <div class=\"em-map-legend-item\" data-type=\"activites-autour-du-camping\">\n                      <span class=\"em-map-legend-dot\" style=\"background:#0891b2;\"><\/span>\n                      Activit\u00e9s autour du camping                    <\/div>\n                                                          <div class=\"em-map-legend-item\" data-type=\"restaurants\">\n                      <span class=\"em-map-legend-dot\" style=\"background:#db2777;\"><\/span>\n                      Restaurants                    <\/div>\n                                  <\/div>\n              <\/div>\n            <\/div>\n          \n          <div class=\"em-cards\" id=\"em-cards\">\n                          <article class=\"em-card\"\n                data-type=\"activites-autour-du-camping\"\n                data-features=\"\"\n                data-name=\"r\u00e9serve africaine de sigean\"\n                data-json=\"{&quot;name&quot;:&quot;R\\u00e9serve Africaine de Sigean&quot;,&quot;image&quot;:&quot;https:\\\/\\\/campingsigean.com\\\/images\\\/reserve-africaine.jpg&quot;,&quot;link&quot;:&quot;https:\\\/\\\/campingsigean.com\\\/fr&quot;,&quot;data&quot;:{&quot;name&quot;:&quot;R\\u00e9serve Africaine de Sigean&quot;,&quot;activity_type&quot;:[&quot;(*) randonn\\u00e9es&quot;,&quot;( ) kayak&quot;,&quot;( ) v\\u00e9lo&quot;,&quot;( ) parapente&quot;,&quot;( ) golf&quot;,&quot;( ) escalade&quot;,&quot;( ) p\\u00eache&quot;],&quot;location&quot;:&quot;Sigean, France&quot;,&quot;description&quot;:&quot;Parc de 350 hectares d\\u00e9di\\u00e9 \\u00e0 la conservation d\\u2019esp\\u00e8ces menac\\u00e9es, abritant plus de 3 800 animaux et 160 esp\\u00e8ces, accessible \\u00e0 pied ou en voiture.&quot;,&quot;duration_hours&quot;:3,&quot;capacity&quot;:1000,&quot;start_date&quot;:&quot;2026-03-16&quot;,&quot;end_date&quot;:&quot;2026-11-01&quot;,&quot;price&quot;:&quot;Tarifs variables selon le type de visite&quot;,&quot;booking_required&quot;:true,&quot;equipment_included&quot;:&quot;Billet d&#039;entr\\u00e9e&quot;,&quot;link&quot;:&quot;https:\\\/\\\/campingsigean.com\\\/fr&quot;,&quot;latitude&quot;:&quot;43.0661000&quot;,&quot;longitude&quot;:&quot;12.9406000&quot;,&quot;image&quot;:&quot;https:\\\/\\\/campingsigean.com\\\/images\\\/reserve-africaine.jpg&quot;},&quot;category&quot;:&quot;Activit\\u00e9s autour du camping&quot;,&quot;faq&quot;:[],&quot;event&quot;:&quot;&quot;,&quot;video_url&quot;:&quot;&quot;,&quot;video_embed&quot;:null,&quot;documents&quot;:[],&quot;gallery&quot;:[]}\">\n\n                <!-- Image + badge cat\u00e9gorie -->\n                <div class=\"em-card-img-wrap\">\n                                      <img decoding=\"async\" class=\"em-card-img\" src=\"https:\/\/campingsigean.com\/images\/reserve-africaine.jpg\" alt=\"R\u00e9serve Africaine de Sigean\" loading=\"lazy\" onerror=\"this.style.setProperty('display','none','important');this.nextElementSibling.style.display='flex';\">\n                    <div class=\"em-card-placeholder\" style=\"display:none;\">\ud83d\udcf7 Image indisponible<\/div>\n                                    <span class=\"em-card-badge badge-default\">Activit\u00e9s autour du camping<\/span>\n                <\/div>\n\n                <!-- Contenu de la card -->\n                <div class=\"em-card-body\">\n                  <h3 class=\"em-card-title\">R\u00e9serve Africaine de Sigean<\/h3>\n\n                  <!-- Tags r\u00e9sum\u00e9s (max 4) -->\n                  <div class=\"em-card-tags\">\n                                            <span class=\"em-tag em-tag-green\">Tarifs variables selon le type de visite<\/span>\n                                                          <\/div>\n\n                  <!-- Champs suppl\u00e9mentaires (max 3) -->\n                  <div class=\"em-card-fields\">\n                                          <div class=\"em-card-field\">\n                        <span class=\"em-card-field-label\">Lieu ou zone de pratique :<\/span>\n                        <span class=\"em-card-field-value\">Sigean, France<\/span>\n                      <\/div>\n                                          <div class=\"em-card-field\">\n                        <span class=\"em-card-field-label\">Dur\u00e9e approximative (heures) :<\/span>\n                        <span class=\"em-card-field-value\">3<\/span>\n                      <\/div>\n                                          <div class=\"em-card-field\">\n                        <span class=\"em-card-field-label\">Capacit\u00e9 :<\/span>\n                        <span class=\"em-card-field-value\">1000<\/span>\n                      <\/div>\n                                      <\/div>\n\n                  <!-- Lien vers le d\u00e9tail -->\n                  <div class=\"em-card-footer\">\n                    <span>Voir le d\u00e9tail<\/span>\n                    <svg fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\">\n                      <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M13.5 4.5L21 12m0 0l-7.5 7.5M21 12H3\"><\/path>\n                    <\/svg>\n                  <\/div>\n                <\/div>\n              <\/article>\n                          <article class=\"em-card\"\n                data-type=\"activites-autour-du-camping\"\n                data-features=\"\"\n                data-name=\"plage de la franqui\"\n                data-json=\"{&quot;name&quot;:&quot;Plage de La Franqui&quot;,&quot;image&quot;:&quot;https:\\\/\\\/campingsigean.com\\\/images\\\/plage-la-franqui.jpg&quot;,&quot;link&quot;:&quot;https:\\\/\\\/campingsigean.com\\\/fr&quot;,&quot;data&quot;:{&quot;name&quot;:&quot;Plage de La Franqui&quot;,&quot;activity_type&quot;:[&quot;(*) randonn\\u00e9es&quot;,&quot;( ) kayak&quot;,&quot;( ) v\\u00e9lo&quot;,&quot;( ) parapente&quot;,&quot;( ) golf&quot;,&quot;( ) escalade&quot;,&quot;( ) p\\u00eache&quot;],&quot;location&quot;:&quot;La Franqui, France&quot;,&quot;description&quot;:&quot;Plage situ\\u00e9e au pied de la falaise, id\\u00e9ale pour la baignade et les promenades en bord de mer.&quot;,&quot;duration_hours&quot;:2,&quot;capacity&quot;:500,&quot;start_date&quot;:&quot;2026-03-16&quot;,&quot;end_date&quot;:&quot;2026-11-01&quot;,&quot;price&quot;:&quot;Acc\\u00e8s gratuit&quot;,&quot;booking_required&quot;:false,&quot;equipment_included&quot;:&quot;Aucun&quot;,&quot;link&quot;:&quot;https:\\\/\\\/campingsigean.com\\\/fr&quot;,&quot;latitude&quot;:&quot;43.0661000&quot;,&quot;longitude&quot;:&quot;12.9406000&quot;,&quot;image&quot;:&quot;https:\\\/\\\/campingsigean.com\\\/images\\\/plage-la-franqui.jpg&quot;},&quot;category&quot;:&quot;Activit\\u00e9s autour du camping&quot;,&quot;faq&quot;:[],&quot;event&quot;:&quot;&quot;,&quot;video_url&quot;:&quot;&quot;,&quot;video_embed&quot;:null,&quot;documents&quot;:[],&quot;gallery&quot;:[]}\">\n\n                <!-- Image + badge cat\u00e9gorie -->\n                <div class=\"em-card-img-wrap\">\n                                      <img decoding=\"async\" class=\"em-card-img\" src=\"https:\/\/campingsigean.com\/images\/plage-la-franqui.jpg\" alt=\"Plage de La Franqui\" loading=\"lazy\" onerror=\"this.style.setProperty('display','none','important');this.nextElementSibling.style.display='flex';\">\n                    <div class=\"em-card-placeholder\" style=\"display:none;\">\ud83d\udcf7 Image indisponible<\/div>\n                                    <span class=\"em-card-badge badge-default\">Activit\u00e9s autour du camping<\/span>\n                <\/div>\n\n                <!-- Contenu de la card -->\n                <div class=\"em-card-body\">\n                  <h3 class=\"em-card-title\">Plage de La Franqui<\/h3>\n\n                  <!-- Tags r\u00e9sum\u00e9s (max 4) -->\n                  <div class=\"em-card-tags\">\n                                            <span class=\"em-tag em-tag-green\">Acc\u00e8s gratuit<\/span>\n                                                          <\/div>\n\n                  <!-- Champs suppl\u00e9mentaires (max 3) -->\n                  <div class=\"em-card-fields\">\n                                          <div class=\"em-card-field\">\n                        <span class=\"em-card-field-label\">Lieu ou zone de pratique :<\/span>\n                        <span class=\"em-card-field-value\">La Franqui, France<\/span>\n                      <\/div>\n                                          <div class=\"em-card-field\">\n                        <span class=\"em-card-field-label\">Dur\u00e9e approximative (heures) :<\/span>\n                        <span class=\"em-card-field-value\">2<\/span>\n                      <\/div>\n                                          <div class=\"em-card-field\">\n                        <span class=\"em-card-field-label\">Capacit\u00e9 :<\/span>\n                        <span class=\"em-card-field-value\">500<\/span>\n                      <\/div>\n                                      <\/div>\n\n                  <!-- Lien vers le d\u00e9tail -->\n                  <div class=\"em-card-footer\">\n                    <span>Voir le d\u00e9tail<\/span>\n                    <svg fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\">\n                      <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M13.5 4.5L21 12m0 0l-7.5 7.5M21 12H3\"><\/path>\n                    <\/svg>\n                  <\/div>\n                <\/div>\n              <\/article>\n                          <article class=\"em-card\"\n                data-type=\"activites-autour-du-camping\"\n                data-features=\"\"\n                data-name=\"abbaye de fontfroide\"\n                data-json=\"{&quot;name&quot;:&quot;Abbaye de Fontfroide&quot;,&quot;image&quot;:&quot;https:\\\/\\\/campingsigean.com\\\/images\\\/abbaye-fontfroide.jpg&quot;,&quot;link&quot;:&quot;https:\\\/\\\/campingsigean.com\\\/fr&quot;,&quot;data&quot;:{&quot;name&quot;:&quot;Abbaye de Fontfroide&quot;,&quot;activity_type&quot;:[&quot;(*) randonn\\u00e9es&quot;,&quot;( ) kayak&quot;,&quot;( ) v\\u00e9lo&quot;,&quot;( ) parapente&quot;,&quot;( ) golf&quot;,&quot;( ) escalade&quot;,&quot;( ) p\\u00eache&quot;],&quot;location&quot;:&quot;Narbonne, France&quot;,&quot;description&quot;:&quot;Monument historique du XIIe si\\u00e8cle, offrant des visites guid\\u00e9es et des \\u00e9v\\u00e9nements culturels.&quot;,&quot;duration_hours&quot;:2,&quot;capacity&quot;:200,&quot;start_date&quot;:&quot;2026-03-16&quot;,&quot;end_date&quot;:&quot;2026-11-01&quot;,&quot;price&quot;:&quot;Tarifs d&#039;entr\\u00e9e variables&quot;,&quot;booking_required&quot;:true,&quot;equipment_included&quot;:&quot;Billet d&#039;entr\\u00e9e&quot;,&quot;link&quot;:&quot;https:\\\/\\\/campingsigean.com\\\/fr&quot;,&quot;latitude&quot;:&quot;43.0661000&quot;,&quot;longitude&quot;:&quot;12.9406000&quot;,&quot;image&quot;:&quot;https:\\\/\\\/campingsigean.com\\\/images\\\/abbaye-fontfroide.jpg&quot;},&quot;category&quot;:&quot;Activit\\u00e9s autour du camping&quot;,&quot;faq&quot;:[],&quot;event&quot;:&quot;&quot;,&quot;video_url&quot;:&quot;&quot;,&quot;video_embed&quot;:null,&quot;documents&quot;:[],&quot;gallery&quot;:[]}\">\n\n                <!-- Image + badge cat\u00e9gorie -->\n                <div class=\"em-card-img-wrap\">\n                                      <img decoding=\"async\" class=\"em-card-img\" src=\"https:\/\/campingsigean.com\/images\/abbaye-fontfroide.jpg\" alt=\"Abbaye de Fontfroide\" loading=\"lazy\" onerror=\"this.style.setProperty('display','none','important');this.nextElementSibling.style.display='flex';\">\n                    <div class=\"em-card-placeholder\" style=\"display:none;\">\ud83d\udcf7 Image indisponible<\/div>\n                                    <span class=\"em-card-badge badge-default\">Activit\u00e9s autour du camping<\/span>\n                <\/div>\n\n                <!-- Contenu de la card -->\n                <div class=\"em-card-body\">\n                  <h3 class=\"em-card-title\">Abbaye de Fontfroide<\/h3>\n\n                  <!-- Tags r\u00e9sum\u00e9s (max 4) -->\n                  <div class=\"em-card-tags\">\n                                            <span class=\"em-tag em-tag-green\">Tarifs d&#039;entr\u00e9e variables<\/span>\n                                                          <\/div>\n\n                  <!-- Champs suppl\u00e9mentaires (max 3) -->\n                  <div class=\"em-card-fields\">\n                                          <div class=\"em-card-field\">\n                        <span class=\"em-card-field-label\">Lieu ou zone de pratique :<\/span>\n                        <span class=\"em-card-field-value\">Narbonne, France<\/span>\n                      <\/div>\n                                          <div class=\"em-card-field\">\n                        <span class=\"em-card-field-label\">Dur\u00e9e approximative (heures) :<\/span>\n                        <span class=\"em-card-field-value\">2<\/span>\n                      <\/div>\n                                          <div class=\"em-card-field\">\n                        <span class=\"em-card-field-label\">Capacit\u00e9 :<\/span>\n                        <span class=\"em-card-field-value\">200<\/span>\n                      <\/div>\n                                      <\/div>\n\n                  <!-- Lien vers le d\u00e9tail -->\n                  <div class=\"em-card-footer\">\n                    <span>Voir le d\u00e9tail<\/span>\n                    <svg fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\">\n                      <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M13.5 4.5L21 12m0 0l-7.5 7.5M21 12H3\"><\/path>\n                    <\/svg>\n                  <\/div>\n                <\/div>\n              <\/article>\n                          <article class=\"em-card\"\n                data-type=\"activites-autour-du-camping\"\n                data-features=\"\"\n                data-name=\"terra vinea\"\n                data-json=\"{&quot;name&quot;:&quot;Terra Vinea&quot;,&quot;image&quot;:&quot;https:\\\/\\\/campingsigean.com\\\/images\\\/terra-vinea.jpg&quot;,&quot;link&quot;:&quot;https:\\\/\\\/campingsigean.com\\\/fr&quot;,&quot;data&quot;:{&quot;name&quot;:&quot;Terra Vinea&quot;,&quot;activity_type&quot;:[&quot;(*) randonn\\u00e9es&quot;,&quot;( ) kayak&quot;,&quot;( ) v\\u00e9lo&quot;,&quot;( ) parapente&quot;,&quot;( ) golf&quot;,&quot;( ) escalade&quot;,&quot;( ) p\\u00eache&quot;],&quot;location&quot;:&quot;Portel-des-Corbi\\u00e8res, France&quot;,&quot;description&quot;:&quot;Vignoble proposant des visites guid\\u00e9es et des d\\u00e9gustations de vins locaux dans un cadre exceptionnel.&quot;,&quot;duration_hours&quot;:2,&quot;capacity&quot;:50,&quot;start_date&quot;:&quot;2026-03-16&quot;,&quot;end_date&quot;:&quot;2026-11-01&quot;,&quot;price&quot;:&quot;Tarifs de visite et d\\u00e9gustation variables&quot;,&quot;booking_required&quot;:true,&quot;equipment_included&quot;:&quot;Billet de visite et d\\u00e9gustation&quot;,&quot;link&quot;:&quot;https:\\\/\\\/campingsigean.com\\\/fr&quot;,&quot;latitude&quot;:&quot;43.0661000&quot;,&quot;longitude&quot;:&quot;12.9406000&quot;,&quot;image&quot;:&quot;https:\\\/\\\/campingsigean.com\\\/images\\\/terra-vinea.jpg&quot;},&quot;category&quot;:&quot;Activit\\u00e9s autour du camping&quot;,&quot;faq&quot;:[],&quot;event&quot;:&quot;&quot;,&quot;video_url&quot;:&quot;&quot;,&quot;video_embed&quot;:null,&quot;documents&quot;:[],&quot;gallery&quot;:[]}\">\n\n                <!-- Image + badge cat\u00e9gorie -->\n                <div class=\"em-card-img-wrap\">\n                                      <img decoding=\"async\" class=\"em-card-img\" src=\"https:\/\/campingsigean.com\/images\/terra-vinea.jpg\" alt=\"Terra Vinea\" loading=\"lazy\" onerror=\"this.style.setProperty('display','none','important');this.nextElementSibling.style.display='flex';\">\n                    <div class=\"em-card-placeholder\" style=\"display:none;\">\ud83d\udcf7 Image indisponible<\/div>\n                                    <span class=\"em-card-badge badge-default\">Activit\u00e9s autour du camping<\/span>\n                <\/div>\n\n                <!-- Contenu de la card -->\n                <div class=\"em-card-body\">\n                  <h3 class=\"em-card-title\">Terra Vinea<\/h3>\n\n                  <!-- Tags r\u00e9sum\u00e9s (max 4) -->\n                  <div class=\"em-card-tags\">\n                                            <span class=\"em-tag em-tag-green\">Tarifs de visite et d\u00e9gustation variables<\/span>\n                                                          <\/div>\n\n                  <!-- Champs suppl\u00e9mentaires (max 3) -->\n                  <div class=\"em-card-fields\">\n                                          <div class=\"em-card-field\">\n                        <span class=\"em-card-field-label\">Lieu ou zone de pratique :<\/span>\n                        <span class=\"em-card-field-value\">Portel-des-Corbi\u00e8res, France<\/span>\n                      <\/div>\n                                          <div class=\"em-card-field\">\n                        <span class=\"em-card-field-label\">Dur\u00e9e approximative (heures) :<\/span>\n                        <span class=\"em-card-field-value\">2<\/span>\n                      <\/div>\n                                          <div class=\"em-card-field\">\n                        <span class=\"em-card-field-label\">Capacit\u00e9 :<\/span>\n                        <span class=\"em-card-field-value\">50<\/span>\n                      <\/div>\n                                      <\/div>\n\n                  <!-- Lien vers le d\u00e9tail -->\n                  <div class=\"em-card-footer\">\n                    <span>Voir le d\u00e9tail<\/span>\n                    <svg fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\">\n                      <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M13.5 4.5L21 12m0 0l-7.5 7.5M21 12H3\"><\/path>\n                    <\/svg>\n                  <\/div>\n                <\/div>\n              <\/article>\n                          <article class=\"em-card\"\n                data-type=\"activites-autour-du-camping\"\n                data-features=\"\"\n                data-name=\"p\u00eache en mer\"\n                data-json=\"{&quot;name&quot;:&quot;P\\u00eache en mer&quot;,&quot;image&quot;:&quot;https:\\\/\\\/campingsigean.com\\\/images\\\/peche-en-mer.jpg&quot;,&quot;link&quot;:&quot;https:\\\/\\\/campingsigean.com\\\/fr&quot;,&quot;data&quot;:{&quot;name&quot;:&quot;P\\u00eache en mer&quot;,&quot;activity_type&quot;:[&quot;( ) randonn\\u00e9es&quot;,&quot;( ) kayak&quot;,&quot;( ) v\\u00e9lo&quot;,&quot;( ) parapente&quot;,&quot;( ) golf&quot;,&quot;( ) escalade&quot;,&quot;(*) p\\u00eache&quot;],&quot;location&quot;:&quot;Port-la-Nouvelle, France&quot;,&quot;description&quot;:&quot;Activit\\u00e9 de p\\u00eache en mer avec possibilit\\u00e9 de location de mat\\u00e9riel et excursions en bateau.&quot;,&quot;duration_hours&quot;:4,&quot;capacity&quot;:10,&quot;start_date&quot;:&quot;2026-03-16&quot;,&quot;end_date&quot;:&quot;2026-11-01&quot;,&quot;price&quot;:&quot;Tarifs de location et excursions variables&quot;,&quot;booking_required&quot;:true,&quot;equipment_included&quot;:&quot;Mat\\u00e9riel de p\\u00eache&quot;,&quot;link&quot;:&quot;https:\\\/\\\/campingsigean.com\\\/fr&quot;,&quot;latitude&quot;:&quot;43.0661000&quot;,&quot;longitude&quot;:&quot;12.9406000&quot;,&quot;image&quot;:&quot;https:\\\/\\\/campingsigean.com\\\/images\\\/peche-en-mer.jpg&quot;},&quot;category&quot;:&quot;Activit\\u00e9s autour du camping&quot;,&quot;faq&quot;:[],&quot;event&quot;:&quot;&quot;,&quot;video_url&quot;:&quot;&quot;,&quot;video_embed&quot;:null,&quot;documents&quot;:[],&quot;gallery&quot;:[]}\">\n\n                <!-- Image + badge cat\u00e9gorie -->\n                <div class=\"em-card-img-wrap\">\n                                      <img decoding=\"async\" class=\"em-card-img\" src=\"https:\/\/campingsigean.com\/images\/peche-en-mer.jpg\" alt=\"P\u00eache en mer\" loading=\"lazy\" onerror=\"this.style.setProperty('display','none','important');this.nextElementSibling.style.display='flex';\">\n                    <div class=\"em-card-placeholder\" style=\"display:none;\">\ud83d\udcf7 Image indisponible<\/div>\n                                    <span class=\"em-card-badge badge-default\">Activit\u00e9s autour du camping<\/span>\n                <\/div>\n\n                <!-- Contenu de la card -->\n                <div class=\"em-card-body\">\n                  <h3 class=\"em-card-title\">P\u00eache en mer<\/h3>\n\n                  <!-- Tags r\u00e9sum\u00e9s (max 4) -->\n                  <div class=\"em-card-tags\">\n                                            <span class=\"em-tag em-tag-green\">Tarifs de location et excursions variables<\/span>\n                                                          <\/div>\n\n                  <!-- Champs suppl\u00e9mentaires (max 3) -->\n                  <div class=\"em-card-fields\">\n                                          <div class=\"em-card-field\">\n                        <span class=\"em-card-field-label\">Lieu ou zone de pratique :<\/span>\n                        <span class=\"em-card-field-value\">Port-la-Nouvelle, France<\/span>\n                      <\/div>\n                                          <div class=\"em-card-field\">\n                        <span class=\"em-card-field-label\">Dur\u00e9e approximative (heures) :<\/span>\n                        <span class=\"em-card-field-value\">4<\/span>\n                      <\/div>\n                                          <div class=\"em-card-field\">\n                        <span class=\"em-card-field-label\">Capacit\u00e9 :<\/span>\n                        <span class=\"em-card-field-value\">10<\/span>\n                      <\/div>\n                                      <\/div>\n\n                  <!-- Lien vers le d\u00e9tail -->\n                  <div class=\"em-card-footer\">\n                    <span>Voir le d\u00e9tail<\/span>\n                    <svg fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\">\n                      <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M13.5 4.5L21 12m0 0l-7.5 7.5M21 12H3\"><\/path>\n                    <\/svg>\n                  <\/div>\n                <\/div>\n              <\/article>\n                          <article class=\"em-card\"\n                data-type=\"activites-autour-du-camping\"\n                data-features=\"\"\n                data-name=\"v\u00e9lo sur la voie verte\"\n                data-json=\"{&quot;name&quot;:&quot;V\\u00e9lo sur la voie verte&quot;,&quot;image&quot;:&quot;https:\\\/\\\/campingsigean.com\\\/images\\\/velo-voie-verte.jpg&quot;,&quot;link&quot;:&quot;https:\\\/\\\/campingsigean.com\\\/fr&quot;,&quot;data&quot;:{&quot;name&quot;:&quot;V\\u00e9lo sur la voie verte&quot;,&quot;activity_type&quot;:[&quot;( ) randonn\\u00e9es&quot;,&quot;( ) kayak&quot;,&quot;(*) v\\u00e9lo&quot;,&quot;( ) parapente&quot;,&quot;( ) golf&quot;,&quot;( ) escalade&quot;,&quot;( ) p\\u00eache&quot;],&quot;location&quot;:&quot;Sigean, France&quot;,&quot;description&quot;:&quot;Piste cyclable s\\u00e9curis\\u00e9e traversant la r\\u00e9gion, id\\u00e9ale pour des balades \\u00e0 v\\u00e9lo en famille.&quot;,&quot;duration_hours&quot;:2,&quot;capacity&quot;:20,&quot;start_date&quot;:&quot;2026-03-16&quot;,&quot;end_date&quot;:&quot;2026-11-01&quot;,&quot;price&quot;:&quot;Location de v\\u00e9los \\u00e0 partir de 15\\u20ac par jour&quot;,&quot;booking_required&quot;:true,&quot;equipment_included&quot;:&quot;V\\u00e9lo et casque&quot;,&quot;link&quot;:&quot;https:\\\/\\\/campingsigean.com\\\/fr&quot;,&quot;latitude&quot;:&quot;43.0661000&quot;,&quot;longitude&quot;:&quot;12.9406000&quot;,&quot;image&quot;:&quot;https:\\\/\\\/campingsigean.com\\\/images\\\/velo-voie-verte.jpg&quot;},&quot;category&quot;:&quot;Activit\\u00e9s autour du camping&quot;,&quot;faq&quot;:[],&quot;event&quot;:&quot;&quot;,&quot;video_url&quot;:&quot;&quot;,&quot;video_embed&quot;:null,&quot;documents&quot;:[],&quot;gallery&quot;:[]}\">\n\n                <!-- Image + badge cat\u00e9gorie -->\n                <div class=\"em-card-img-wrap\">\n                                      <img decoding=\"async\" class=\"em-card-img\" src=\"https:\/\/campingsigean.com\/images\/velo-voie-verte.jpg\" alt=\"V\u00e9lo sur la voie verte\" loading=\"lazy\" onerror=\"this.style.setProperty('display','none','important');this.nextElementSibling.style.display='flex';\">\n                    <div class=\"em-card-placeholder\" style=\"display:none;\">\ud83d\udcf7 Image indisponible<\/div>\n                                    <span class=\"em-card-badge badge-default\">Activit\u00e9s autour du camping<\/span>\n                <\/div>\n\n                <!-- Contenu de la card -->\n                <div class=\"em-card-body\">\n                  <h3 class=\"em-card-title\">V\u00e9lo sur la voie verte<\/h3>\n\n                  <!-- Tags r\u00e9sum\u00e9s (max 4) -->\n                  <div class=\"em-card-tags\">\n                                            <span class=\"em-tag em-tag-green\">Location de v\u00e9los \u00e0 partir de 15\u20ac par jour<\/span>\n                                                          <\/div>\n\n                  <!-- Champs suppl\u00e9mentaires (max 3) -->\n                  <div class=\"em-card-fields\">\n                                          <div class=\"em-card-field\">\n                        <span class=\"em-card-field-label\">Lieu ou zone de pratique :<\/span>\n                        <span class=\"em-card-field-value\">Sigean, France<\/span>\n                      <\/div>\n                                          <div class=\"em-card-field\">\n                        <span class=\"em-card-field-label\">Dur\u00e9e approximative (heures) :<\/span>\n                        <span class=\"em-card-field-value\">2<\/span>\n                      <\/div>\n                                          <div class=\"em-card-field\">\n                        <span class=\"em-card-field-label\">Capacit\u00e9 :<\/span>\n                        <span class=\"em-card-field-value\">20<\/span>\n                      <\/div>\n                                      <\/div>\n\n                  <!-- Lien vers le d\u00e9tail -->\n                  <div class=\"em-card-footer\">\n                    <span>Voir le d\u00e9tail<\/span>\n                    <svg fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\">\n                      <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M13.5 4.5L21 12m0 0l-7.5 7.5M21 12H3\"><\/path>\n                    <\/svg>\n                  <\/div>\n                <\/div>\n              <\/article>\n                          <article class=\"em-card\"\n                data-type=\"activites-autour-du-camping\"\n                data-features=\"\"\n                data-name=\"\u00c9quitation \u00e0 la ferme \u00e9questre\"\n                data-json=\"{&quot;name&quot;:&quot;\\u00c9quitation \\u00e0 la ferme \\u00e9questre&quot;,&quot;image&quot;:&quot;https:\\\/\\\/campingsigean.com\\\/images\\\/equitation-ferme.jpg&quot;,&quot;link&quot;:&quot;https:\\\/\\\/campingsigean.com\\\/fr&quot;,&quot;data&quot;:{&quot;name&quot;:&quot;\\u00c9quitation \\u00e0 la ferme \\u00e9questre&quot;,&quot;activity_type&quot;:[&quot;(*) randonn\\u00e9es&quot;,&quot;( ) kayak&quot;,&quot;( ) v\\u00e9lo&quot;,&quot;( ) parapente&quot;,&quot;( ) golf&quot;,&quot;( ) escalade&quot;,&quot;( ) p\\u00eache&quot;],&quot;location&quot;:&quot;Sigean, France&quot;,&quot;description&quot;:&quot;Promenades \\u00e0 cheval adapt\\u00e9es \\u00e0 tous les niveaux, encadr\\u00e9es par des moniteurs dipl\\u00f4m\\u00e9s.&quot;,&quot;duration_hours&quot;:1,&quot;capacity&quot;:5,&quot;start_date&quot;:&quot;2026-03-16&quot;,&quot;end_date&quot;:&quot;2026-11-01&quot;,&quot;price&quot;:&quot;Tarifs \\u00e0 partir de 20\\u20ac par personne&quot;,&quot;booking_required&quot;:true,&quot;equipment_included&quot;:&quot;Casque et mat\\u00e9riel de s\\u00e9curit\\u00e9&quot;,&quot;link&quot;:&quot;https:\\\/\\\/campingsigean.com\\\/fr&quot;,&quot;latitude&quot;:&quot;43.0661000&quot;,&quot;longitude&quot;:&quot;12.9406000&quot;,&quot;image&quot;:&quot;https:\\\/\\\/campingsigean.com\\\/images\\\/equitation-ferme.jpg&quot;},&quot;category&quot;:&quot;Activit\\u00e9s autour du camping&quot;,&quot;faq&quot;:[],&quot;event&quot;:&quot;&quot;,&quot;video_url&quot;:&quot;&quot;,&quot;video_embed&quot;:null,&quot;documents&quot;:[],&quot;gallery&quot;:[]}\">\n\n                <!-- Image + badge cat\u00e9gorie -->\n                <div class=\"em-card-img-wrap\">\n                                      <img decoding=\"async\" class=\"em-card-img\" src=\"https:\/\/campingsigean.com\/images\/equitation-ferme.jpg\" alt=\"\u00c9quitation \u00e0 la ferme \u00e9questre\" loading=\"lazy\" onerror=\"this.style.setProperty('display','none','important');this.nextElementSibling.style.display='flex';\">\n                    <div class=\"em-card-placeholder\" style=\"display:none;\">\ud83d\udcf7 Image indisponible<\/div>\n                                    <span class=\"em-card-badge badge-default\">Activit\u00e9s autour du camping<\/span>\n                <\/div>\n\n                <!-- Contenu de la card -->\n                <div class=\"em-card-body\">\n                  <h3 class=\"em-card-title\">\u00c9quitation \u00e0 la ferme \u00e9questre<\/h3>\n\n                  <!-- Tags r\u00e9sum\u00e9s (max 4) -->\n                  <div class=\"em-card-tags\">\n                                            <span class=\"em-tag em-tag-green\">Tarifs \u00e0 partir de 20\u20ac par personne<\/span>\n                                                          <\/div>\n\n                  <!-- Champs suppl\u00e9mentaires (max 3) -->\n                  <div class=\"em-card-fields\">\n                                          <div class=\"em-card-field\">\n                        <span class=\"em-card-field-label\">Lieu ou zone de pratique :<\/span>\n                        <span class=\"em-card-field-value\">Sigean, France<\/span>\n                      <\/div>\n                                          <div class=\"em-card-field\">\n                        <span class=\"em-card-field-label\">Dur\u00e9e approximative (heures) :<\/span>\n                        <span class=\"em-card-field-value\">1<\/span>\n                      <\/div>\n                                          <div class=\"em-card-field\">\n                        <span class=\"em-card-field-label\">Capacit\u00e9 :<\/span>\n                        <span class=\"em-card-field-value\">5<\/span>\n                      <\/div>\n                                      <\/div>\n\n                  <!-- Lien vers le d\u00e9tail -->\n                  <div class=\"em-card-footer\">\n                    <span>Voir le d\u00e9tail<\/span>\n                    <svg fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\">\n                      <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M13.5 4.5L21 12m0 0l-7.5 7.5M21 12H3\"><\/path>\n                    <\/svg>\n                  <\/div>\n                <\/div>\n              <\/article>\n                          <article class=\"em-card\"\n                data-type=\"activites-autour-du-camping\"\n                data-features=\"\"\n                data-name=\"aire de jeux pour enfants\"\n                data-json=\"{&quot;name&quot;:&quot;Aire de jeux pour enfants&quot;,&quot;image&quot;:&quot;https:\\\/\\\/campingsigean.com\\\/images\\\/aire-de-jeux.jpg&quot;,&quot;link&quot;:&quot;https:\\\/\\\/campingsigean.com\\\/fr&quot;,&quot;data&quot;:{&quot;name&quot;:&quot;Aire de jeux pour enfants&quot;,&quot;activity_type&quot;:[&quot;(*) randonn\\u00e9es&quot;,&quot;( ) kayak&quot;,&quot;( ) v\\u00e9lo&quot;,&quot;( ) parapente&quot;,&quot;( ) golf&quot;,&quot;( ) escalade&quot;,&quot;( ) p\\u00eache&quot;],&quot;location&quot;:&quot;Sigean, France&quot;,&quot;description&quot;:&quot;Aire de jeux d\\u00e9di\\u00e9e aux enfants, avec divers \\u00e9quipements pour s&#039;amuser en toute s\\u00e9curit\\u00e9.&quot;,&quot;duration_hours&quot;:1,&quot;capacity&quot;:20,&quot;start_date&quot;:&quot;2026-03-16&quot;,&quot;end_date&quot;:&quot;2026-11-01&quot;,&quot;price&quot;:&quot;Acc\\u00e8s gratuit&quot;,&quot;booking_required&quot;:false,&quot;equipment_included&quot;:&quot;Aucun&quot;,&quot;link&quot;:&quot;https:\\\/\\\/campingsigean.com\\\/fr&quot;,&quot;latitude&quot;:&quot;43.0661000&quot;,&quot;longitude&quot;:&quot;12.9406000&quot;,&quot;image&quot;:&quot;https:\\\/\\\/campingsigean.com\\\/images\\\/aire-de-jeux.jpg&quot;},&quot;category&quot;:&quot;Activit\\u00e9s autour du camping&quot;,&quot;faq&quot;:[],&quot;event&quot;:&quot;&quot;,&quot;video_url&quot;:&quot;&quot;,&quot;video_embed&quot;:null,&quot;documents&quot;:[],&quot;gallery&quot;:[]}\">\n\n                <!-- Image + badge cat\u00e9gorie -->\n                <div class=\"em-card-img-wrap\">\n                                      <img decoding=\"async\" class=\"em-card-img\" src=\"https:\/\/campingsigean.com\/images\/aire-de-jeux.jpg\" alt=\"Aire de jeux pour enfants\" loading=\"lazy\" onerror=\"this.style.setProperty('display','none','important');this.nextElementSibling.style.display='flex';\">\n                    <div class=\"em-card-placeholder\" style=\"display:none;\">\ud83d\udcf7 Image indisponible<\/div>\n                                    <span class=\"em-card-badge badge-default\">Activit\u00e9s autour du camping<\/span>\n                <\/div>\n\n                <!-- Contenu de la card -->\n                <div class=\"em-card-body\">\n                  <h3 class=\"em-card-title\">Aire de jeux pour enfants<\/h3>\n\n                  <!-- Tags r\u00e9sum\u00e9s (max 4) -->\n                  <div class=\"em-card-tags\">\n                                            <span class=\"em-tag em-tag-green\">Acc\u00e8s gratuit<\/span>\n                                                          <\/div>\n\n                  <!-- Champs suppl\u00e9mentaires (max 3) -->\n                  <div class=\"em-card-fields\">\n                                          <div class=\"em-card-field\">\n                        <span class=\"em-card-field-label\">Lieu ou zone de pratique :<\/span>\n                        <span class=\"em-card-field-value\">Sigean, France<\/span>\n                      <\/div>\n                                          <div class=\"em-card-field\">\n                        <span class=\"em-card-field-label\">Dur\u00e9e approximative (heures) :<\/span>\n                        <span class=\"em-card-field-value\">1<\/span>\n                      <\/div>\n                                          <div class=\"em-card-field\">\n                        <span class=\"em-card-field-label\">Capacit\u00e9 :<\/span>\n                        <span class=\"em-card-field-value\">20<\/span>\n                      <\/div>\n                                      <\/div>\n\n                  <!-- Lien vers le d\u00e9tail -->\n                  <div class=\"em-card-footer\">\n                    <span>Voir le d\u00e9tail<\/span>\n                    <svg fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\">\n                      <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M13.5 4.5L21 12m0 0l-7.5 7.5M21 12H3\"><\/path>\n                    <\/svg>\n                  <\/div>\n                <\/div>\n              <\/article>\n                          <article class=\"em-card\"\n                data-type=\"activites-autour-du-camping\"\n                data-features=\"\"\n                data-name=\"soir\u00e9es \u00e0 th\u00e8me\"\n                data-json=\"{&quot;name&quot;:&quot;Soir\\u00e9es \\u00e0 th\\u00e8me&quot;,&quot;image&quot;:&quot;https:\\\/\\\/campingsigean.com\\\/images\\\/soirees-a-theme.jpg&quot;,&quot;link&quot;:&quot;https:\\\/\\\/campingsigean.com\\\/fr&quot;,&quot;data&quot;:{&quot;name&quot;:&quot;Soir\\u00e9es \\u00e0 th\\u00e8me&quot;,&quot;activity_type&quot;:[&quot;(*) randonn\\u00e9es&quot;,&quot;( ) kayak&quot;,&quot;( ) v\\u00e9lo&quot;,&quot;( ) parapente&quot;,&quot;( ) golf&quot;,&quot;( ) escalade&quot;,&quot;( ) p\\u00eache&quot;],&quot;location&quot;:&quot;Sigean, France&quot;,&quot;description&quot;:&quot;Animations en haute saison, telles que soir\\u00e9es moules-frites, karaok\\u00e9 et paella, pour des moments conviviaux en famille.&quot;,&quot;duration_hours&quot;:2,&quot;capacity&quot;:50,&quot;start_date&quot;:&quot;2026-07-15&quot;,&quot;end_date&quot;:&quot;2026-08-15&quot;,&quot;price&quot;:&quot;Tarifs variables&quot;,&quot;booking_required&quot;:true,&quot;equipment_included&quot;:&quot;Aucun&quot;,&quot;link&quot;:&quot;https:\\\/\\\/campingsigean.com\\\/fr&quot;,&quot;latitude&quot;:&quot;43.0661000&quot;,&quot;longitude&quot;:&quot;12.9406000&quot;,&quot;image&quot;:&quot;https:\\\/\\\/campingsigean.com\\\/images\\\/soirees-a-theme.jpg&quot;},&quot;category&quot;:&quot;Activit\\u00e9s autour du camping&quot;,&quot;faq&quot;:[],&quot;event&quot;:&quot;&quot;,&quot;video_url&quot;:&quot;&quot;,&quot;video_embed&quot;:null,&quot;documents&quot;:[],&quot;gallery&quot;:[]}\">\n\n                <!-- Image + badge cat\u00e9gorie -->\n                <div class=\"em-card-img-wrap\">\n                                      <img decoding=\"async\" class=\"em-card-img\" src=\"https:\/\/campingsigean.com\/images\/soirees-a-theme.jpg\" alt=\"Soir\u00e9es \u00e0 th\u00e8me\" loading=\"lazy\" onerror=\"this.style.setProperty('display','none','important');this.nextElementSibling.style.display='flex';\">\n                    <div class=\"em-card-placeholder\" style=\"display:none;\">\ud83d\udcf7 Image indisponible<\/div>\n                                    <span class=\"em-card-badge badge-default\">Activit\u00e9s autour du camping<\/span>\n                <\/div>\n\n                <!-- Contenu de la card -->\n                <div class=\"em-card-body\">\n                  <h3 class=\"em-card-title\">Soir\u00e9es \u00e0 th\u00e8me<\/h3>\n\n                  <!-- Tags r\u00e9sum\u00e9s (max 4) -->\n                  <div class=\"em-card-tags\">\n                                            <span class=\"em-tag em-tag-green\">Tarifs variables<\/span>\n                                                          <\/div>\n\n                  <!-- Champs suppl\u00e9mentaires (max 3) -->\n                  <div class=\"em-card-fields\">\n                                          <div class=\"em-card-field\">\n                        <span class=\"em-card-field-label\">Lieu ou zone de pratique :<\/span>\n                        <span class=\"em-card-field-value\">Sigean, France<\/span>\n                      <\/div>\n                                          <div class=\"em-card-field\">\n                        <span class=\"em-card-field-label\">Dur\u00e9e approximative (heures) :<\/span>\n                        <span class=\"em-card-field-value\">2<\/span>\n                      <\/div>\n                                          <div class=\"em-card-field\">\n                        <span class=\"em-card-field-label\">Capacit\u00e9 :<\/span>\n                        <span class=\"em-card-field-value\">50<\/span>\n                      <\/div>\n                                      <\/div>\n\n                  <!-- Lien vers le d\u00e9tail -->\n                  <div class=\"em-card-footer\">\n                    <span>Voir le d\u00e9tail<\/span>\n                    <svg fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\">\n                      <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M13.5 4.5L21 12m0 0l-7.5 7.5M21 12H3\"><\/path>\n                    <\/svg>\n                  <\/div>\n                <\/div>\n              <\/article>\n                          <article class=\"em-card\"\n                data-type=\"activites-autour-du-camping\"\n                data-features=\"\"\n                data-name=\"balades et randonn\u00e9es autour de l\u2019\u00e9tang de peyriac-de-mer\"\n                data-json=\"{&quot;name&quot;:&quot;Balades et randonn\\u00e9es autour de l\\u2019\\u00e9tang de Peyriac-de-Mer&quot;,&quot;image&quot;:&quot;&quot;,&quot;link&quot;:&quot;https:\\\/\\\/campingsigean.com\\\/fr\\\/camping-bord-de-mer-sigean\\\/&quot;,&quot;data&quot;:{&quot;name&quot;:&quot;Balades et randonn\\u00e9es autour de l\\u2019\\u00e9tang de Peyriac-de-Mer&quot;,&quot;activity_type&quot;:[&quot;(*) randonn\\u00e9es&quot;,&quot;( ) kayak&quot;,&quot;( ) v\\u00e9lo&quot;,&quot;( ) parapente&quot;,&quot;( ) golf&quot;,&quot;( ) escalade&quot;,&quot;( ) p\\u00eache&quot;],&quot;location&quot;:&quot;\\u00c9tang de Peyriac-de-Mer, \\u00e0 5 minutes du camping La Grange Neuve \\u00e0 Sigean&quot;,&quot;description&quot;:&quot;Petites balades et belles randonn\\u00e9es en famille autour de l\\u2019\\u00e9tang, avec possibilit\\u00e9 de longer le site et d\\u2019admirer les paysages depuis les hauteurs. Le lieu est \\u00e9galement indiqu\\u00e9 comme propice \\u00e0 la p\\u00eache et \\u00e0 la baignade.&quot;,&quot;duration_hours&quot;:null,&quot;capacity&quot;:null,&quot;start_date&quot;:null,&quot;end_date&quot;:null,&quot;price&quot;:&quot;Non indiqu\\u00e9&quot;,&quot;booking_required&quot;:false,&quot;equipment_included&quot;:&quot;Non indiqu\\u00e9&quot;,&quot;link&quot;:&quot;https:\\\/\\\/campingsigean.com\\\/fr\\\/camping-bord-de-mer-sigean\\\/&quot;},&quot;category&quot;:&quot;Activit\\u00e9s autour du camping&quot;,&quot;faq&quot;:[],&quot;event&quot;:&quot;&quot;,&quot;video_url&quot;:&quot;&quot;,&quot;video_embed&quot;:null,&quot;documents&quot;:[],&quot;gallery&quot;:[]}\">\n\n                <!-- Image + badge cat\u00e9gorie -->\n                <div class=\"em-card-img-wrap\">\n                                      <div class=\"em-card-placeholder\">\ud83d\udcf7 Pas d'image<\/div>\n                                    <span class=\"em-card-badge badge-default\">Activit\u00e9s autour du camping<\/span>\n                <\/div>\n\n                <!-- Contenu de la card -->\n                <div class=\"em-card-body\">\n                  <h3 class=\"em-card-title\">Balades et randonn\u00e9es autour de l\u2019\u00e9tang de Peyriac-de-Mer<\/h3>\n\n                  <!-- Tags r\u00e9sum\u00e9s (max 4) -->\n                  <div class=\"em-card-tags\">\n                                            <span class=\"em-tag em-tag-green\">Non indiqu\u00e9<\/span>\n                                                          <\/div>\n\n                  <!-- Champs suppl\u00e9mentaires (max 3) -->\n                  <div class=\"em-card-fields\">\n                                          <div class=\"em-card-field\">\n                        <span class=\"em-card-field-label\">Lieu ou zone de pratique :<\/span>\n                        <span class=\"em-card-field-value\">\u00c9tang de Peyriac-de-Mer, \u00e0 5 minutes du camping La Grange Ne<\/span>\n                      <\/div>\n                                          <div class=\"em-card-field\">\n                        <span class=\"em-card-field-label\">\u00c9quipements fournis :<\/span>\n                        <span class=\"em-card-field-value\">Non indiqu\u00e9<\/span>\n                      <\/div>\n                                      <\/div>\n\n                  <!-- Lien vers le d\u00e9tail -->\n                  <div class=\"em-card-footer\">\n                    <span>Voir le d\u00e9tail<\/span>\n                    <svg fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\">\n                      <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M13.5 4.5L21 12m0 0l-7.5 7.5M21 12H3\"><\/path>\n                    <\/svg>\n                  <\/div>\n                <\/div>\n              <\/article>\n                          <article class=\"em-card\"\n                data-type=\"restaurants\"\n                data-features=\"\"\n                data-name=\"la cave de th\u00e9o\"\n                data-json=\"{&quot;name&quot;:&quot;La Cave de Th\\u00e9o&quot;,&quot;image&quot;:&quot;https:\\\/\\\/www.restaurantsigean.com\\\/images\\\/la-cave-de-theo.jpg&quot;,&quot;link&quot;:&quot;&quot;,&quot;data&quot;:{&quot;name&quot;:&quot;La Cave de Th\\u00e9o&quot;,&quot;category&quot;:[&quot;(*) Restaurant&quot;],&quot;cuisine_type&quot;:[&quot;(*) Fran\\u00e7aise&quot;,&quot;( ) Italienne&quot;,&quot;( ) Asiatique&quot;,&quot;( ) Mexicaine&quot;,&quot;( ) V\\u00e9g\\u00e9tarienne&quot;,&quot;( ) Fusion&quot;,&quot;( ) Autre&quot;],&quot;price_range&quot;:&quot;\\u20ac\\u20ac&quot;,&quot;specialties&quot;:&quot;Cuisine fran\\u00e7aise traditionnelle&quot;,&quot;capacity&quot;:50,&quot;address&quot;:&quot;82 Avenue de Narbonne, 11130 Sigean&quot;,&quot;opening_hours&quot;:&quot;Lundi \\u00e0 vendredi : 12h00 - 14h00, 19h00 - 22h00; Samedi : 19h00 - 22h00; Dimanche : ferm\\u00e9&quot;,&quot;phone&quot;:&quot;+33 4 68 48 95 01&quot;,&quot;website_url&quot;:&quot;http:\\\/\\\/www.restaurantsigean.com\\\/&quot;,&quot;latitude&quot;:&quot;43.1050000&quot;,&quot;longitude&quot;:&quot;3.0425000&quot;,&quot;image&quot;:&quot;https:\\\/\\\/www.restaurantsigean.com\\\/images\\\/la-cave-de-theo.jpg&quot;},&quot;category&quot;:&quot;Restaurants&quot;,&quot;faq&quot;:[],&quot;event&quot;:&quot;&quot;,&quot;video_url&quot;:&quot;&quot;,&quot;video_embed&quot;:null,&quot;documents&quot;:[],&quot;gallery&quot;:[]}\">\n\n                <!-- Image + badge cat\u00e9gorie -->\n                <div class=\"em-card-img-wrap\">\n                                      <img decoding=\"async\" class=\"em-card-img\" src=\"https:\/\/www.restaurantsigean.com\/images\/la-cave-de-theo.jpg\" alt=\"La Cave de Th\u00e9o\" loading=\"lazy\" onerror=\"this.style.setProperty('display','none','important');this.nextElementSibling.style.display='flex';\">\n                    <div class=\"em-card-placeholder\" style=\"display:none;\">\ud83d\udcf7 Image indisponible<\/div>\n                                    <span class=\"em-card-badge badge-default\">Restaurants<\/span>\n                <\/div>\n\n                <!-- Contenu de la card -->\n                <div class=\"em-card-body\">\n                  <h3 class=\"em-card-title\">La Cave de Th\u00e9o<\/h3>\n\n                  <!-- Tags r\u00e9sum\u00e9s (max 4) -->\n                  <div class=\"em-card-tags\">\n                                                          <\/div>\n\n                  <!-- Champs suppl\u00e9mentaires (max 3) -->\n                  <div class=\"em-card-fields\">\n                                          <div class=\"em-card-field\">\n                        <span class=\"em-card-field-label\">Gamme de prix :<\/span>\n                        <span class=\"em-card-field-value\">\u20ac\u20ac<\/span>\n                      <\/div>\n                                          <div class=\"em-card-field\">\n                        <span class=\"em-card-field-label\">Sp\u00e9cialit\u00e9s :<\/span>\n                        <span class=\"em-card-field-value\">Cuisine fran\u00e7aise traditionnelle<\/span>\n                      <\/div>\n                                          <div class=\"em-card-field\">\n                        <span class=\"em-card-field-label\">Capacit\u00e9 :<\/span>\n                        <span class=\"em-card-field-value\">50<\/span>\n                      <\/div>\n                                      <\/div>\n\n                  <!-- Lien vers le d\u00e9tail -->\n                  <div class=\"em-card-footer\">\n                    <span>Voir le d\u00e9tail<\/span>\n                    <svg fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\">\n                      <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M13.5 4.5L21 12m0 0l-7.5 7.5M21 12H3\"><\/path>\n                    <\/svg>\n                  <\/div>\n                <\/div>\n              <\/article>\n                          <article class=\"em-card\"\n                data-type=\"restaurants\"\n                data-features=\"\"\n                data-name=\"restaurant le potager de sigean\"\n                data-json=\"{&quot;name&quot;:&quot;Restaurant Le Potager de Sigean&quot;,&quot;image&quot;:&quot;https:\\\/\\\/www.restaurantsigean.com\\\/images\\\/le-potager-de-sigean.jpg&quot;,&quot;link&quot;:&quot;&quot;,&quot;data&quot;:{&quot;name&quot;:&quot;Restaurant Le Potager de Sigean&quot;,&quot;category&quot;:[&quot;(*) Restaurant&quot;],&quot;cuisine_type&quot;:[&quot;(*) Fran\\u00e7aise&quot;,&quot;( ) Italienne&quot;,&quot;( ) Asiatique&quot;,&quot;( ) Mexicaine&quot;,&quot;( ) V\\u00e9g\\u00e9tarienne&quot;,&quot;( ) Fusion&quot;,&quot;( ) Autre&quot;],&quot;price_range&quot;:&quot;\\u20ac\\u20ac&quot;,&quot;specialties&quot;:&quot;Cuisine fran\\u00e7aise traditionnelle&quot;,&quot;capacity&quot;:40,&quot;address&quot;:&quot;28 Avenue de Perpignan, 11130 Sigean&quot;,&quot;opening_hours&quot;:&quot;Lundi \\u00e0 vendredi : 12h00 - 14h00, 19h00 - 22h00; Samedi : 19h00 - 22h00; Dimanche : ferm\\u00e9&quot;,&quot;phone&quot;:&quot;+33 4 68 48 42 76&quot;,&quot;website_url&quot;:&quot;http:\\\/\\\/www.restaurantsigean.com\\\/&quot;,&quot;latitude&quot;:&quot;43.1055000&quot;,&quot;longitude&quot;:&quot;3.0420000&quot;,&quot;image&quot;:&quot;https:\\\/\\\/www.restaurantsigean.com\\\/images\\\/le-potager-de-sigean.jpg&quot;},&quot;category&quot;:&quot;Restaurants&quot;,&quot;faq&quot;:[],&quot;event&quot;:&quot;&quot;,&quot;video_url&quot;:&quot;&quot;,&quot;video_embed&quot;:null,&quot;documents&quot;:[],&quot;gallery&quot;:[]}\">\n\n                <!-- Image + badge cat\u00e9gorie -->\n                <div class=\"em-card-img-wrap\">\n                                      <img decoding=\"async\" class=\"em-card-img\" src=\"https:\/\/www.restaurantsigean.com\/images\/le-potager-de-sigean.jpg\" alt=\"Restaurant Le Potager de Sigean\" loading=\"lazy\" onerror=\"this.style.setProperty('display','none','important');this.nextElementSibling.style.display='flex';\">\n                    <div class=\"em-card-placeholder\" style=\"display:none;\">\ud83d\udcf7 Image indisponible<\/div>\n                                    <span class=\"em-card-badge badge-default\">Restaurants<\/span>\n                <\/div>\n\n                <!-- Contenu de la card -->\n                <div class=\"em-card-body\">\n                  <h3 class=\"em-card-title\">Restaurant Le Potager de Sigean<\/h3>\n\n                  <!-- Tags r\u00e9sum\u00e9s (max 4) -->\n                  <div class=\"em-card-tags\">\n                                                          <\/div>\n\n                  <!-- Champs suppl\u00e9mentaires (max 3) -->\n                  <div class=\"em-card-fields\">\n                                          <div class=\"em-card-field\">\n                        <span class=\"em-card-field-label\">Gamme de prix :<\/span>\n                        <span class=\"em-card-field-value\">\u20ac\u20ac<\/span>\n                      <\/div>\n                                          <div class=\"em-card-field\">\n                        <span class=\"em-card-field-label\">Sp\u00e9cialit\u00e9s :<\/span>\n                        <span class=\"em-card-field-value\">Cuisine fran\u00e7aise traditionnelle<\/span>\n                      <\/div>\n                                          <div class=\"em-card-field\">\n                        <span class=\"em-card-field-label\">Capacit\u00e9 :<\/span>\n                        <span class=\"em-card-field-value\">40<\/span>\n                      <\/div>\n                                      <\/div>\n\n                  <!-- Lien vers le d\u00e9tail -->\n                  <div class=\"em-card-footer\">\n                    <span>Voir le d\u00e9tail<\/span>\n                    <svg fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\">\n                      <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M13.5 4.5L21 12m0 0l-7.5 7.5M21 12H3\"><\/path>\n                    <\/svg>\n                  <\/div>\n                <\/div>\n              <\/article>\n                          <article class=\"em-card\"\n                data-type=\"restaurants\"\n                data-features=\"\"\n                data-name=\"restaurant p&#039;ose\"\n                data-json=\"{&quot;name&quot;:&quot;Restaurant P&#039;Ose&quot;,&quot;image&quot;:&quot;https:\\\/\\\/www.restaurantsigean.com\\\/images\\\/p-ose.jpg&quot;,&quot;link&quot;:&quot;&quot;,&quot;data&quot;:{&quot;name&quot;:&quot;Restaurant P&#039;Ose&quot;,&quot;category&quot;:[&quot;(*) Restaurant&quot;],&quot;cuisine_type&quot;:[&quot;(*) Fran\\u00e7aise&quot;,&quot;( ) Italienne&quot;,&quot;( ) Asiatique&quot;,&quot;( ) Mexicaine&quot;,&quot;( ) V\\u00e9g\\u00e9tarienne&quot;,&quot;( ) Fusion&quot;,&quot;( ) Autre&quot;],&quot;price_range&quot;:&quot;\\u20ac&quot;,&quot;specialties&quot;:&quot;Cuisine de grand-m\\u00e8re, g\\u00e9n\\u00e9reuse et saine&quot;,&quot;capacity&quot;:30,&quot;address&quot;:&quot;5 Rue des \\u00c9coles, 11130 Sigean&quot;,&quot;opening_hours&quot;:&quot;Lundi \\u00e0 vendredi : 12h00 - 14h00, 19h00 - 21h00; Samedi : 19h00 - 21h00; Dimanche : ferm\\u00e9&quot;,&quot;phone&quot;:&quot;+33 7 82 21 83 06&quot;,&quot;website_url&quot;:&quot;http:\\\/\\\/www.restaurantsigean.com\\\/&quot;,&quot;latitude&quot;:&quot;43.1052000&quot;,&quot;longitude&quot;:&quot;3.0422000&quot;,&quot;image&quot;:&quot;https:\\\/\\\/www.restaurantsigean.com\\\/images\\\/p-ose.jpg&quot;},&quot;category&quot;:&quot;Restaurants&quot;,&quot;faq&quot;:[],&quot;event&quot;:&quot;&quot;,&quot;video_url&quot;:&quot;&quot;,&quot;video_embed&quot;:null,&quot;documents&quot;:[],&quot;gallery&quot;:[]}\">\n\n                <!-- Image + badge cat\u00e9gorie -->\n                <div class=\"em-card-img-wrap\">\n                                      <img decoding=\"async\" class=\"em-card-img\" src=\"https:\/\/www.restaurantsigean.com\/images\/p-ose.jpg\" alt=\"Restaurant P&#039;Ose\" loading=\"lazy\" onerror=\"this.style.setProperty('display','none','important');this.nextElementSibling.style.display='flex';\">\n                    <div class=\"em-card-placeholder\" style=\"display:none;\">\ud83d\udcf7 Image indisponible<\/div>\n                                    <span class=\"em-card-badge badge-default\">Restaurants<\/span>\n                <\/div>\n\n                <!-- Contenu de la card -->\n                <div class=\"em-card-body\">\n                  <h3 class=\"em-card-title\">Restaurant P&#039;Ose<\/h3>\n\n                  <!-- Tags r\u00e9sum\u00e9s (max 4) -->\n                  <div class=\"em-card-tags\">\n                                                          <\/div>\n\n                  <!-- Champs suppl\u00e9mentaires (max 3) -->\n                  <div class=\"em-card-fields\">\n                                          <div class=\"em-card-field\">\n                        <span class=\"em-card-field-label\">Gamme de prix :<\/span>\n                        <span class=\"em-card-field-value\">\u20ac<\/span>\n                      <\/div>\n                                          <div class=\"em-card-field\">\n                        <span class=\"em-card-field-label\">Sp\u00e9cialit\u00e9s :<\/span>\n                        <span class=\"em-card-field-value\">Cuisine de grand-m\u00e8re, g\u00e9n\u00e9reuse et saine<\/span>\n                      <\/div>\n                                          <div class=\"em-card-field\">\n                        <span class=\"em-card-field-label\">Capacit\u00e9 :<\/span>\n                        <span class=\"em-card-field-value\">30<\/span>\n                      <\/div>\n                                      <\/div>\n\n                  <!-- Lien vers le d\u00e9tail -->\n                  <div class=\"em-card-footer\">\n                    <span>Voir le d\u00e9tail<\/span>\n                    <svg fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\">\n                      <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M13.5 4.5L21 12m0 0l-7.5 7.5M21 12H3\"><\/path>\n                    <\/svg>\n                  <\/div>\n                <\/div>\n              <\/article>\n                          <article class=\"em-card\"\n                data-type=\"restaurants\"\n                data-features=\"\"\n                data-name=\"restaurant bantha\u00cf\"\n                data-json=\"{&quot;name&quot;:&quot;Restaurant BANTHA\\u00cf&quot;,&quot;image&quot;:&quot;https:\\\/\\\/www.restaurantsigean.com\\\/images\\\/banthai.jpg&quot;,&quot;link&quot;:&quot;&quot;,&quot;data&quot;:{&quot;name&quot;:&quot;Restaurant BANTHA\\u00cf&quot;,&quot;category&quot;:[&quot;(*) Restaurant&quot;],&quot;cuisine_type&quot;:[&quot;( ) Fran\\u00e7aise&quot;,&quot;( ) Italienne&quot;,&quot;(*) Asiatique&quot;,&quot;( ) Mexicaine&quot;,&quot;( ) V\\u00e9g\\u00e9tarienne&quot;,&quot;( ) Fusion&quot;,&quot;( ) Autre&quot;],&quot;price_range&quot;:&quot;\\u20ac\\u20ac&quot;,&quot;specialties&quot;:&quot;Cuisine tha\\u00eflandaise traditionnelle&quot;,&quot;capacity&quot;:35,&quot;address&quot;:&quot;27 Avenue de Perpignan, 11130 Sigean&quot;,&quot;opening_hours&quot;:&quot;Lundi \\u00e0 vendredi : 12h00 - 14h00, 19h00 - 22h00; Samedi : 19h00 - 22h00; Dimanche : ferm\\u00e9&quot;,&quot;phone&quot;:&quot;+33 4 68 48 25 96&quot;,&quot;website_url&quot;:&quot;http:\\\/\\\/www.restaurantsigean.com\\\/&quot;,&quot;latitude&quot;:&quot;43.1053000&quot;,&quot;longitude&quot;:&quot;3.0423000&quot;,&quot;image&quot;:&quot;https:\\\/\\\/www.restaurantsigean.com\\\/images\\\/banthai.jpg&quot;},&quot;category&quot;:&quot;Restaurants&quot;,&quot;faq&quot;:[],&quot;event&quot;:&quot;&quot;,&quot;video_url&quot;:&quot;&quot;,&quot;video_embed&quot;:null,&quot;documents&quot;:[],&quot;gallery&quot;:[]}\">\n\n                <!-- Image + badge cat\u00e9gorie -->\n                <div class=\"em-card-img-wrap\">\n                                      <img decoding=\"async\" class=\"em-card-img\" src=\"https:\/\/www.restaurantsigean.com\/images\/banthai.jpg\" alt=\"Restaurant BANTHA\u00cf\" loading=\"lazy\" onerror=\"this.style.setProperty('display','none','important');this.nextElementSibling.style.display='flex';\">\n                    <div class=\"em-card-placeholder\" style=\"display:none;\">\ud83d\udcf7 Image indisponible<\/div>\n                                    <span class=\"em-card-badge badge-default\">Restaurants<\/span>\n                <\/div>\n\n                <!-- Contenu de la card -->\n                <div class=\"em-card-body\">\n                  <h3 class=\"em-card-title\">Restaurant BANTHA\u00cf<\/h3>\n\n                  <!-- Tags r\u00e9sum\u00e9s (max 4) -->\n                  <div class=\"em-card-tags\">\n                                                          <\/div>\n\n                  <!-- Champs suppl\u00e9mentaires (max 3) -->\n                  <div class=\"em-card-fields\">\n                                          <div class=\"em-card-field\">\n                        <span class=\"em-card-field-label\">Gamme de prix :<\/span>\n                        <span class=\"em-card-field-value\">\u20ac\u20ac<\/span>\n                      <\/div>\n                                          <div class=\"em-card-field\">\n                        <span class=\"em-card-field-label\">Sp\u00e9cialit\u00e9s :<\/span>\n                        <span class=\"em-card-field-value\">Cuisine tha\u00eflandaise traditionnelle<\/span>\n                      <\/div>\n                                          <div class=\"em-card-field\">\n                        <span class=\"em-card-field-label\">Capacit\u00e9 :<\/span>\n                        <span class=\"em-card-field-value\">35<\/span>\n                      <\/div>\n                                      <\/div>\n\n                  <!-- Lien vers le d\u00e9tail -->\n                  <div class=\"em-card-footer\">\n                    <span>Voir le d\u00e9tail<\/span>\n                    <svg fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\">\n                      <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M13.5 4.5L21 12m0 0l-7.5 7.5M21 12H3\"><\/path>\n                    <\/svg>\n                  <\/div>\n                <\/div>\n              <\/article>\n                          <article class=\"em-card\"\n                data-type=\"restaurants\"\n                data-features=\"\"\n                data-name=\"le jardin des oliviers\"\n                data-json=\"{&quot;name&quot;:&quot;Le Jardin Des Oliviers&quot;,&quot;image&quot;:&quot;https:\\\/\\\/www.restaurantsigean.com\\\/images\\\/le-jardin-des-oliviers.jpg&quot;,&quot;link&quot;:&quot;&quot;,&quot;data&quot;:{&quot;name&quot;:&quot;Le Jardin Des Oliviers&quot;,&quot;category&quot;:[&quot;(*) Restaurant&quot;],&quot;cuisine_type&quot;:[&quot;(*) Fran\\u00e7aise&quot;,&quot;( ) Italienne&quot;,&quot;( ) Asiatique&quot;,&quot;( ) Mexicaine&quot;,&quot;( ) V\\u00e9g\\u00e9tarienne&quot;,&quot;( ) Fusion&quot;,&quot;( ) Autre&quot;],&quot;price_range&quot;:&quot;\\u20ac\\u20ac&quot;,&quot;specialties&quot;:&quot;Cuisine fran\\u00e7aise traditionnelle&quot;,&quot;capacity&quot;:45,&quot;address&quot;:&quot;3 Chemin du Plat, 11130 Sigean&quot;,&quot;opening_hours&quot;:&quot;Lundi \\u00e0 vendredi : 12h00 - 14h00, 19h00 - 22h00; Samedi : 19h00 - 22h00; Dimanche : ferm\\u00e9&quot;,&quot;phone&quot;:&quot;+33 4 68 46 19 95&quot;,&quot;website_url&quot;:&quot;http:\\\/\\\/www.restaurantsigean.com\\\/&quot;,&quot;latitude&quot;:&quot;43.1054000&quot;,&quot;longitude&quot;:&quot;3.0424000&quot;,&quot;image&quot;:&quot;https:\\\/\\\/www.restaurantsigean.com\\\/images\\\/le-jardin-des-oliviers.jpg&quot;},&quot;category&quot;:&quot;Restaurants&quot;,&quot;faq&quot;:[],&quot;event&quot;:&quot;&quot;,&quot;video_url&quot;:&quot;&quot;,&quot;video_embed&quot;:null,&quot;documents&quot;:[],&quot;gallery&quot;:[]}\">\n\n                <!-- Image + badge cat\u00e9gorie -->\n                <div class=\"em-card-img-wrap\">\n                                      <img decoding=\"async\" class=\"em-card-img\" src=\"https:\/\/www.restaurantsigean.com\/images\/le-jardin-des-oliviers.jpg\" alt=\"Le Jardin Des Oliviers\" loading=\"lazy\" onerror=\"this.style.setProperty('display','none','important');this.nextElementSibling.style.display='flex';\">\n                    <div class=\"em-card-placeholder\" style=\"display:none;\">\ud83d\udcf7 Image indisponible<\/div>\n                                    <span class=\"em-card-badge badge-default\">Restaurants<\/span>\n                <\/div>\n\n                <!-- Contenu de la card -->\n                <div class=\"em-card-body\">\n                  <h3 class=\"em-card-title\">Le Jardin Des Oliviers<\/h3>\n\n                  <!-- Tags r\u00e9sum\u00e9s (max 4) -->\n                  <div class=\"em-card-tags\">\n                                                          <\/div>\n\n                  <!-- Champs suppl\u00e9mentaires (max 3) -->\n                  <div class=\"em-card-fields\">\n                                          <div class=\"em-card-field\">\n                        <span class=\"em-card-field-label\">Gamme de prix :<\/span>\n                        <span class=\"em-card-field-value\">\u20ac\u20ac<\/span>\n                      <\/div>\n                                          <div class=\"em-card-field\">\n                        <span class=\"em-card-field-label\">Sp\u00e9cialit\u00e9s :<\/span>\n                        <span class=\"em-card-field-value\">Cuisine fran\u00e7aise traditionnelle<\/span>\n                      <\/div>\n                                          <div class=\"em-card-field\">\n                        <span class=\"em-card-field-label\">Capacit\u00e9 :<\/span>\n                        <span class=\"em-card-field-value\">45<\/span>\n                      <\/div>\n                                      <\/div>\n\n                  <!-- Lien vers le d\u00e9tail -->\n                  <div class=\"em-card-footer\">\n                    <span>Voir le d\u00e9tail<\/span>\n                    <svg fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\">\n                      <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M13.5 4.5L21 12m0 0l-7.5 7.5M21 12H3\"><\/path>\n                    <\/svg>\n                  <\/div>\n                <\/div>\n              <\/article>\n                          <article class=\"em-card\"\n                data-type=\"restaurants\"\n                data-features=\"\"\n                data-name=\"les terrasses de la berre\"\n                data-json=\"{&quot;name&quot;:&quot;Les Terrasses de la Berre&quot;,&quot;image&quot;:&quot;https:\\\/\\\/www.cotedumidi.com\\\/images\\\/restaurant\\\/les-terrasses-de-la-berre.jpg&quot;,&quot;link&quot;:&quot;https:\\\/\\\/www.cotedumidi.com\\\/sit\\\/reslar011v50gmzr-les-terrasses-de-la-berre\\\/&quot;,&quot;data&quot;:{&quot;name&quot;:&quot;Les Terrasses de la Berre&quot;,&quot;category&quot;:[&quot;(*) Restaurant&quot;],&quot;cuisine_type&quot;:[&quot;(*) Fran\\u00e7aise&quot;,&quot;( ) Italienne&quot;,&quot;( ) Asiatique&quot;,&quot;( ) Mexicaine&quot;,&quot;( ) V\\u00e9g\\u00e9tarienne&quot;,&quot;( ) Fusion&quot;,&quot;( ) Autre&quot;],&quot;price_range&quot;:&quot;\\u20ac\\u20ac&quot;,&quot;specialties&quot;:&quot;Cassoulet, cuisse de canard confite, burger de La Berre&quot;,&quot;capacity&quot;:30,&quot;address&quot;:&quot;106 avenue des Corbi\\u00e8res, 11490 Portel-des-Corbi\\u00e8res&quot;,&quot;opening_hours&quot;:&quot;Mercredi au dimanche : 12h00-14h00 et 19h00-22h00&quot;,&quot;phone&quot;:&quot;+33 4 68 41 92 43&quot;,&quot;website_url&quot;:&quot;https:\\\/\\\/lesterrassesdelaberre.wikeo.fr&quot;,&quot;link&quot;:&quot;https:\\\/\\\/www.cotedumidi.com\\\/sit\\\/reslar011v50gmzr-les-terrasses-de-la-berre\\\/&quot;,&quot;latitude&quot;:&quot;43.0837220&quot;,&quot;longitude&quot;:&quot;2.9203340&quot;,&quot;image&quot;:&quot;https:\\\/\\\/www.cotedumidi.com\\\/images\\\/restaurant\\\/les-terrasses-de-la-berre.jpg&quot;},&quot;category&quot;:&quot;Restaurants&quot;,&quot;faq&quot;:[],&quot;event&quot;:&quot;&quot;,&quot;video_url&quot;:&quot;&quot;,&quot;video_embed&quot;:null,&quot;documents&quot;:[],&quot;gallery&quot;:[]}\">\n\n                <!-- Image + badge cat\u00e9gorie -->\n                <div class=\"em-card-img-wrap\">\n                                      <img decoding=\"async\" class=\"em-card-img\" src=\"https:\/\/www.cotedumidi.com\/images\/restaurant\/les-terrasses-de-la-berre.jpg\" alt=\"Les Terrasses de la Berre\" loading=\"lazy\" onerror=\"this.style.setProperty('display','none','important');this.nextElementSibling.style.display='flex';\">\n                    <div class=\"em-card-placeholder\" style=\"display:none;\">\ud83d\udcf7 Image indisponible<\/div>\n                                    <span class=\"em-card-badge badge-default\">Restaurants<\/span>\n                <\/div>\n\n                <!-- Contenu de la card -->\n                <div class=\"em-card-body\">\n                  <h3 class=\"em-card-title\">Les Terrasses de la Berre<\/h3>\n\n                  <!-- Tags r\u00e9sum\u00e9s (max 4) -->\n                  <div class=\"em-card-tags\">\n                                                          <\/div>\n\n                  <!-- Champs suppl\u00e9mentaires (max 3) -->\n                  <div class=\"em-card-fields\">\n                                          <div class=\"em-card-field\">\n                        <span class=\"em-card-field-label\">Gamme de prix :<\/span>\n                        <span class=\"em-card-field-value\">\u20ac\u20ac<\/span>\n                      <\/div>\n                                          <div class=\"em-card-field\">\n                        <span class=\"em-card-field-label\">Sp\u00e9cialit\u00e9s :<\/span>\n                        <span class=\"em-card-field-value\">Cassoulet, cuisse de canard confite, burger de La Berre<\/span>\n                      <\/div>\n                                          <div class=\"em-card-field\">\n                        <span class=\"em-card-field-label\">Capacit\u00e9 :<\/span>\n                        <span class=\"em-card-field-value\">30<\/span>\n                      <\/div>\n                                      <\/div>\n\n                  <!-- Lien vers le d\u00e9tail -->\n                  <div class=\"em-card-footer\">\n                    <span>Voir le d\u00e9tail<\/span>\n                    <svg fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\">\n                      <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M13.5 4.5L21 12m0 0l-7.5 7.5M21 12H3\"><\/path>\n                    <\/svg>\n                  <\/div>\n                <\/div>\n              <\/article>\n                          <article class=\"em-card\"\n                data-type=\"restaurants\"\n                data-features=\"\"\n                data-name=\"pr\u00e8s de la fontaine\"\n                data-json=\"{&quot;name&quot;:&quot;Pr\\u00e8s de la Fontaine&quot;,&quot;image&quot;:&quot;https:\\\/\\\/www.pres-de-la-fontaine-restaurant-portel-des-corbieres.fr\\\/images\\\/restaurant.jpg&quot;,&quot;link&quot;:&quot;&quot;,&quot;data&quot;:{&quot;name&quot;:&quot;Pr\\u00e8s de la Fontaine&quot;,&quot;type&quot;:&quot;Restaurant&quot;,&quot;cuisine_type&quot;:[&quot;(*) Fran\\u00e7aise&quot;,&quot;( ) Italienne&quot;,&quot;( ) Asiatique&quot;,&quot;( ) Mexicaine&quot;,&quot;( ) V\\u00e9g\\u00e9tarienne&quot;,&quot;( ) Fusion&quot;,&quot;( ) Autre&quot;],&quot;price_range&quot;:&quot;\\u20ac\\u20ac&quot;,&quot;specialties&quot;:&quot;Cuisine traditionnelle raffin\\u00e9e avec des produits frais et de saison&quot;,&quot;capacity&quot;:25,&quot;address&quot;:&quot;11 chemin des Pl\\u00e2tri\\u00e8res, 11490 Portel-des-Corbi\\u00e8res&quot;,&quot;hours&quot;:&quot;Mardi 19h30-21h00, Mercredi-Dimanche 12h00-13h00 et 19h30-21h00, Ferm\\u00e9 le Lundi&quot;,&quot;phone&quot;:&quot;+33 4 34 36 01 94&quot;,&quot;website&quot;:&quot;https:\\\/\\\/www.pres-de-la-fontaine-restaurant-portel-des-corbieres.fr\\\/&quot;,&quot;longitude&quot;:&quot;3.0625&quot;,&quot;latitude&quot;:&quot;43.0625&quot;,&quot;category&quot;:[&quot;( ) Restaurant&quot;],&quot;image&quot;:&quot;https:\\\/\\\/www.pres-de-la-fontaine-restaurant-portel-des-corbieres.fr\\\/images\\\/restaurant.jpg&quot;},&quot;category&quot;:&quot;Restaurants&quot;,&quot;faq&quot;:[],&quot;event&quot;:&quot;&quot;,&quot;video_url&quot;:&quot;&quot;,&quot;video_embed&quot;:null,&quot;documents&quot;:[],&quot;gallery&quot;:[]}\">\n\n                <!-- Image + badge cat\u00e9gorie -->\n                <div class=\"em-card-img-wrap\">\n                                      <img decoding=\"async\" class=\"em-card-img\" src=\"https:\/\/www.pres-de-la-fontaine-restaurant-portel-des-corbieres.fr\/images\/restaurant.jpg\" alt=\"Pr\u00e8s de la Fontaine\" loading=\"lazy\" onerror=\"this.style.setProperty('display','none','important');this.nextElementSibling.style.display='flex';\">\n                    <div class=\"em-card-placeholder\" style=\"display:none;\">\ud83d\udcf7 Image indisponible<\/div>\n                                    <span class=\"em-card-badge badge-default\">Restaurants<\/span>\n                <\/div>\n\n                <!-- Contenu de la card -->\n                <div class=\"em-card-body\">\n                  <h3 class=\"em-card-title\">Pr\u00e8s de la Fontaine<\/h3>\n\n                  <!-- Tags r\u00e9sum\u00e9s (max 4) -->\n                  <div class=\"em-card-tags\">\n                                                          <\/div>\n\n                  <!-- Champs suppl\u00e9mentaires (max 3) -->\n                  <div class=\"em-card-fields\">\n                                          <div class=\"em-card-field\">\n                        <span class=\"em-card-field-label\">Type :<\/span>\n                        <span class=\"em-card-field-value\">Restaurant<\/span>\n                      <\/div>\n                                          <div class=\"em-card-field\">\n                        <span class=\"em-card-field-label\">Gamme de prix :<\/span>\n                        <span class=\"em-card-field-value\">\u20ac\u20ac<\/span>\n                      <\/div>\n                                          <div class=\"em-card-field\">\n                        <span class=\"em-card-field-label\">Sp\u00e9cialit\u00e9s :<\/span>\n                        <span class=\"em-card-field-value\">Cuisine traditionnelle raffin\u00e9e avec des produits frais et d<\/span>\n                      <\/div>\n                                      <\/div>\n\n                  <!-- Lien vers le d\u00e9tail -->\n                  <div class=\"em-card-footer\">\n                    <span>Voir le d\u00e9tail<\/span>\n                    <svg fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\">\n                      <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M13.5 4.5L21 12m0 0l-7.5 7.5M21 12H3\"><\/path>\n                    <\/svg>\n                  <\/div>\n                <\/div>\n              <\/article>\n                      <\/div>\n\n          <!-- \u00c9tat vide (aucun r\u00e9sultat apr\u00e8s filtrage) -->\n          <div class=\"em-empty\" id=\"em-empty\" style=\"display:none;\">\n            <p><strong>Aucun r\u00e9sultat<\/strong><br>Modifiez vos filtres pour voir plus de r\u00e9sultats<\/p>\n          <\/div>\n        <\/div>\n      <\/main>\n    <\/div>\n  <\/div>\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\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     JAVASCRIPT \u2014 Filtres, modal, carte Leaflet\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\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  <script>\n    (function() {\n      'use strict';\n\n      \/\/ Labels des champs (inject\u00e9s depuis PHP)\n      var FIELD_LABELS = window.emFieldLabels || {};\n\n      \/\/ Cl\u00e9s exclues de la modal (donn\u00e9es internes \/ d\u00e9j\u00e0 affich\u00e9es)\n      var EXCLUDED_KEYS = [\n        'name', 'image', 'images', 'image_url', 'link', 'site_officiel',\n        'gps_coordinates_latitude', 'gps_coordinates_longitude',\n        'latitude', 'longitude', 'latitude_deg', 'longitude_deg',\n        'address', 'available_image_urls'\n      ];\n\n      \/**\n       * Retourne le label lisible d'un champ\n       * Utilise les labels API si disponibles, sinon formate la cl\u00e9\n       *\/\n      function getFieldLabel(key) {\n        if (FIELD_LABELS[key]) return FIELD_LABELS[key];\n        \/\/ Suffixe legacy `_xxxxxxx` (7 alphanum) \u2014 cf. em_field_label() c\u00f4t\u00e9 PHP.\n        var cleaned = key.replace(\/_[a-z0-9]{7}$\/i, '');\n        if (FIELD_LABELS[cleaned]) return FIELD_LABELS[cleaned];\n        return cleaned.replace(\/_\/g, ' ').replace(\/^\\w\/, function(c) {\n          return c.toUpperCase();\n        });\n      }\n\n      \/**\n       * \u00c9chappe le HTML pour \u00e9viter les injections XSS\n       *\/\n      function escapeHtml(str) {\n        if (!str) return '';\n        var div = document.createElement('div');\n        div.textContent = str;\n        return div.innerHTML;\n      }\n\n      \/**\n       * Normalise une cha\u00eene pour une recherche insensible aux accents et \u00e0 la casse\n       * \"Caf\u00e9\" \u2192 \"cafe\" | \"H\u00f4tel\" \u2192 \"hotel\" | \"BI\u00c8RE\" \u2192 \"biere\"\n       *\/\n      function stripAccents(str) {\n        return (str || '').toLowerCase().normalize('NFD').replace(\/[\\u0300-\\u036f]\/g, '');\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      \/\/ FILTRES \u2014 Onglets, checkboxes, recherche\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      var activeCategoryFilter = 'all';\n      var searchQuery = '';\n\n      \/**\n       * Applique tous les filtres actifs (cat\u00e9gorie, type, \u00e9quipements, recherche)\n       * Met \u00e0 jour la visibilit\u00e9 des cards et les compteurs\n       *\/\n      function applyFilters() {\n        var selectedTypes = Array.from(document.querySelectorAll('.em-filter-type:checked')).map(function(cb) {\n          return cb.value;\n        });\n        var selectedFeatures = Array.from(document.querySelectorAll('.em-filter-feat:checked')).map(function(cb) {\n          return cb.value;\n        });\n        var cards = document.querySelectorAll('.em-card');\n        var visibleCount = 0;\n        var normalizedQuery = stripAccents(searchQuery);\n\n        cards.forEach(function(card) {\n          var cardType = card.getAttribute('data-type');\n          var cardFeatures = (card.getAttribute('data-features') || '').split(',').filter(Boolean);\n          var cardName = card.getAttribute('data-name') || '';\n\n          \/\/ V\u00e9rifier chaque crit\u00e8re de filtre\n          var matchesCategory = (activeCategoryFilter === 'all' || activeCategoryFilter === cardType);\n          var matchesType = selectedTypes.indexOf(cardType) !== -1;\n          var matchesSearch = (normalizedQuery === '' || stripAccents(cardName).indexOf(normalizedQuery) !== -1);\n\n          var isVisible = matchesCategory && matchesType && matchesSearch;\n\n          \/\/ Filtre \u00e9quipements (uniquement pour les h\u00e9bergements)\n          if (isVisible && (cardType === 'accommodation' || cardType === 'accomodation') && selectedFeatures.length > 0) {\n            isVisible = selectedFeatures.every(function(feat) {\n              return cardFeatures.indexOf(feat) !== -1;\n            });\n          }\n\n          card.classList.toggle('em-hidden', !isVisible);\n          if (isVisible) visibleCount++;\n        });\n\n        \/\/ Mise \u00e0 jour des compteurs\n        document.getElementById('em-stat-visible').textContent = visibleCount;\n        document.getElementById('em-empty').style.display = visibleCount === 0 ? 'block' : 'none';\n\n        \/\/ Mise \u00e0 jour des marqueurs de la carte\n        if (typeof updateMapMarkers === 'function') {\n          updateMapMarkers(activeCategoryFilter === 'all' ? selectedTypes : [activeCategoryFilter]);\n        }\n\n        \/\/ Sync visuel de la l\u00e9gende carte avec les filtres actifs\n        document.querySelectorAll('.em-map-legend-item').forEach(function(item) {\n          var type = item.getAttribute('data-type');\n          var matchesCategory = (activeCategoryFilter === 'all' || activeCategoryFilter === type);\n          var matchesType = selectedTypes.indexOf(type) !== -1;\n          item.classList.toggle('em-map-legend-item--off', !(matchesCategory && matchesType));\n        });\n\n        \/\/ Masque le groupe \u00e9quipements si accommodation n'est pas dans les filtres actifs\n        var featGroup = document.querySelector('.em-filter-group .em-filter-label');\n        var equipGroup = Array.from(document.querySelectorAll('.em-filter-group')).find(function(g) {\n          return g.querySelector('.em-filter-feat');\n        });\n\n        if (equipGroup) {\n          var accomActive = (activeCategoryFilter === 'all' || activeCategoryFilter === 'accommodation' || activeCategoryFilter === 'accomodation') &&\n            selectedTypes.some(function(t) {\n              return t === 'accommodation' || t === 'accomodation';\n            });\n          equipGroup.style.display = accomActive ? '' : 'none';\n        }\n      }\n\n      \/**\n       * Synchronise les checkboxes Type avec l'onglet actif\n       * \"all\" \u2192 toutes coch\u00e9es | type X \u2192 seule la checkbox X coch\u00e9e\n       *\/\n      function syncTypeCheckboxesFromTab() {\n        document.querySelectorAll('.em-filter-type').forEach(function(cb) {\n          cb.checked = (activeCategoryFilter === 'all') || (cb.value === activeCategoryFilter);\n        });\n      }\n\n      \/**\n       * Synchronise l'onglet actif avec l'\u00e9tat des checkboxes Type\n       * Toutes coch\u00e9es \u2192 \"all\" | exactement une \u2192 onglet de ce type | sous-ensemble \u2192 aucun onglet (cas personnalis\u00e9)\n       *\/\n      function syncTabsFromTypeCheckboxes() {\n        var typeCbs = Array.from(document.querySelectorAll('.em-filter-type'));\n        var checked = typeCbs.filter(function(cb) {\n          return cb.checked;\n        });\n        var matchingTab = null;\n        if (checked.length === typeCbs.length) matchingTab = 'all';\n        else if (checked.length === 1) matchingTab = checked[0].value;\n        \/\/ sous-ensemble : matchingTab reste null \u2192 aucun onglet n'est actif, le filtre logique tombe sur 'all'\n        activeCategoryFilter = matchingTab || 'all';\n        document.querySelectorAll('.em-tab').forEach(function(t) {\n          t.classList.toggle('active', t.getAttribute('data-filter') === matchingTab);\n        });\n      }\n\n      \/**\n       * Replace le d\u00e9but du layout sous l'\u00e9ventuel header sticky du th\u00e8me.\n       *\/\n      function scrollToLayoutTop() {\n        var layout = document.querySelector('.em-layout');\n        if (!layout) return;\n\n        var headerOffset = parseFloat(\n          getComputedStyle(document.documentElement).getPropertyValue('--em-header-offset')\n        ) || 0;\n        var top = window.scrollY + layout.getBoundingClientRect().top - headerOffset - 16;\n\n        window.scrollTo({\n          top: Math.max(0, top),\n          behavior: 'smooth'\n        });\n      }\n\n      \/\/ \u2500\u2500\u2500 Onglets de cat\u00e9gories \u2500\u2500\u2500\n      document.querySelectorAll('.em-tab').forEach(function(tab) {\n        tab.addEventListener('click', function() {\n          document.querySelectorAll('.em-tab').forEach(function(t) {\n            t.classList.remove('active');\n          });\n          tab.classList.add('active');\n          activeCategoryFilter = tab.getAttribute('data-filter');\n          syncTypeCheckboxesFromTab();\n\n          \/\/ Reset \u00e9quipements si on revient sur \"Tout\" ou un onglet non-accommodation\n          if (activeCategoryFilter !== 'accommodation' && activeCategoryFilter !== 'accomodation') {\n            document.querySelectorAll('.em-filter-feat').forEach(function(cb) {\n              cb.checked = false;\n            });\n          }\n\n          applyFilters();\n          scrollToLayoutTop();\n        });\n      });\n\n      \/\/ \u2500\u2500\u2500 Checkboxes filtres \u2500\u2500\u2500\n      document.querySelectorAll('.em-filter-type, .em-filter-feat').forEach(function(checkbox) {\n        checkbox.addEventListener('change', function() {\n          if (checkbox.classList.contains('em-filter-type')) {\n            syncTabsFromTypeCheckboxes();\n\n            \/\/ Reset \u00e9quipements si accommodation n'est plus le seul type s\u00e9lectionn\u00e9\n            var selectedTypes = Array.from(document.querySelectorAll('.em-filter-type:checked')).map(function(cb) {\n              return cb.value;\n            });\n            var onlyAccom = selectedTypes.every(function(t) {\n              return t === 'accommodation' || t === 'accomodation';\n            });\n            if (!onlyAccom) {\n              document.querySelectorAll('.em-filter-feat').forEach(function(cb) {\n                cb.checked = false;\n              });\n            }\n          }\n\n          \/\/ Si \u00e9quipement coch\u00e9 \u2192 active l'onglet accommodation\n          if (checkbox.classList.contains('em-filter-feat') && checkbox.checked) {\n            activeCategoryFilter = 'accommodation';\n\n            \/\/ Coche uniquement accommodation dans les types\n            document.querySelectorAll('.em-filter-type').forEach(function(cb) {\n              cb.checked = cb.value === 'accommodation' || cb.value === 'accomodation';\n            });\n\n            \/\/ Active l'onglet visuellement\n            document.querySelectorAll('.em-tab').forEach(function(t) {\n              var filter = t.getAttribute('data-filter');\n              t.classList.toggle('active', filter === 'accommodation' || filter === 'accomodation');\n            });\n          }\n\n          applyFilters();\n          scrollToLayoutTop();\n        });\n      });\n\n      \/\/ \u2500\u2500\u2500 L\u00e9gende carte cliquable : toggle de la checkbox Type correspondante \u2500\u2500\u2500\n      \/\/ R\u00e9utilise la pipeline checkbox (sync onglets + applyFilters via dispatchEvent)\n      document.querySelectorAll('.em-map-legend-item').forEach(function(item) {\n        item.addEventListener('click', function() {\n          var type = item.getAttribute('data-type');\n          var typeCb = Array.from(document.querySelectorAll('.em-filter-type')).find(function(cb) {\n            return cb.value === type;\n          });\n          if (typeCb) {\n            typeCb.checked = !typeCb.checked;\n            typeCb.dispatchEvent(new Event('change'));\n          }\n        });\n      });\n\n      \/\/ \u2500\u2500\u2500 Barre de recherche \u2500\u2500\u2500\n      var searchInput = document.getElementById('em-search');\n      if (searchInput) {\n        searchInput.addEventListener('input', function(e) {\n          searchQuery = e.target.value;\n          applyFilters();\n        });\n      }\n\n      \/\/ \u2500\u2500\u2500 Bouton r\u00e9initialiser \u2500\u2500\u2500\n      var resetButton = document.getElementById('em-reset-filters');\n      if (resetButton) {\n        resetButton.addEventListener('click', function() {\n          document.querySelectorAll('.em-filter-type').forEach(function(cb) {\n            cb.checked = true;\n          });\n          document.querySelectorAll('.em-filter-feat').forEach(function(cb) {\n            cb.checked = false;\n          });\n          if (searchInput) searchInput.value = '';\n          searchQuery = '';\n          activeCategoryFilter = 'all';\n\n          \/\/ Remettre l'onglet \"Tout\" actif\n          document.querySelectorAll('.em-tab').forEach(function(t) {\n            t.classList.remove('active');\n          });\n          var allTab = document.querySelector('.em-tab[data-filter=\"all\"]');\n          if (allTab) allTab.classList.add('active');\n\n          applyFilters();\n        });\n      }\n\n      \/\/ Application initiale des filtres\n      applyFilters();\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\u00e9tail d'une fiche\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      \/\/ Clic sur une card \u2192 ouvrir la modal\n      document.querySelectorAll('.em-card').forEach(function(card) {\n        card.addEventListener('click', function() {\n          var cardData = JSON.parse(card.getAttribute('data-json'));\n          openDetailModal(cardData);\n        });\n      });\n\n      \/**\n       * Ouvre la modal de d\u00e9tail pour une fiche\n       * Affiche l'image (si disponible), les champs et le lien externe\n       *\/\n      function openDetailModal(item) {\n        var entries = Object.entries(item.data || {}).filter(function(entry) {\n          return EXCLUDED_KEYS.indexOf(entry[0]) === -1 &&\n            entry[1] && entry[1] !== '' &&\n            typeof entry[1] !== 'object';\n        }).map(function(entry) {\n          var value = entry[1];\n          if (value === true || value === 'true') value = 'Oui';\n          else if (value === false || value === 'false') value = 'Non';\n          return {\n            label: getFieldLabel(entry[0]),\n            value: String(value)\n          };\n        });\n\n        var hasImage = item.image && item.image.indexOf('http') === 0;\n        var html = '<div class=\"em-modal\">';\n\n        if (hasImage) {\n          html += '<div class=\"em-modal-img-wrap\">' +\n            '<img decoding=\"async\" class=\"em-modal-img\" src=\"' + escapeHtml(item.image) + '\" alt=\"' + escapeHtml(item.name) + '\" onerror=\"this.style.display=\\'none\\'\">' +\n            '<div class=\"em-modal-img-gradient\"><\/div>' +\n            '<button class=\"em-modal-close\" data-close>&times;<\/button>' +\n            '<div class=\"em-modal-img-info\">' +\n            '<p class=\"em-modal-img-cat\">' + escapeHtml(item.category || '') + '<\/p>' +\n            '<h3 class=\"em-modal-img-title\">' + escapeHtml(item.name) + '<\/h3>' +\n            '<\/div><\/div>';\n        } else {\n          html += '<div class=\"em-modal-header-noimg\"><div>' +\n            '<p class=\"em-modal-header-noimg-cat\">' + escapeHtml(item.category || '') + '<\/p>' +\n            '<h3 class=\"em-modal-header-noimg-title\">' + escapeHtml(item.name) + '<\/h3>' +\n            '<\/div><button class=\"em-modal-close-noimg\" data-close>&times;<\/button><\/div>';\n        }\n\n        html += '<div class=\"em-modal-body\">';\n\n        \/\/ Badge date d'\u00e9v\u00e9nement\n        if (item.event) {\n          html += '<div class=\"em-modal-event\">' +\n            '<svg width=\"14\" height=\"14\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"1.8\" style=\"vertical-align:middle;margin-right:6px\">' +\n            '<path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M6.75 3v2.25M17.25 3v2.25M3.75 18.75V7.5a2.25 2.25 0 012.25-2.25h12a2.25 2.25 0 012.25 2.25v11.25m-16.5 0A2.25 2.25 0 006 21h12a2.25 2.25 0 002.25-2.25m-16.5 0V11.25h16.5v7.5M3.75 11.25h16.5\"\/><\/svg>' +\n            escapeHtml(item.event) + '<\/div>';\n        }\n\n        \/\/ Champs g\u00e9n\u00e9riques\n        entries.forEach(function(entry) {\n          html += '<div class=\"em-modal-entry\">' +\n            '<p class=\"em-modal-entry-label\">' + escapeHtml(entry.label) + '<\/p>' +\n            '<p class=\"em-modal-entry-value\">' + escapeHtml(entry.value) + '<\/p>' +\n            '<\/div>';\n        });\n\n        \/\/ Vid\u00e9o (iframe ou <video>)\n        if (item.video_url) {\n          html += '<div class=\"em-modal-entry\"><p class=\"em-modal-entry-label\">Vid\u00e9o<\/p>';\n          var embed = item.video_embed;\n          if (embed && (embed.type === 'youtube' || embed.type === 'vimeo')) {\n            html += '<div class=\"em-modal-video-wrap\"><iframe src=\"' + escapeHtml(embed.src) + '\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen referrerpolicy=\"strict-origin-when-cross-origin\"><\/iframe><\/div>';\n          } else if (embed && embed.type === 'file') {\n            html += '<video src=\"' + escapeHtml(embed.src) + '\" controls preload=\"metadata\" class=\"em-modal-video-file\"><\/video>';\n          } else {\n            html += '<a href=\"' + escapeHtml(item.video_url) + '\" target=\"_blank\" rel=\"noopener\" class=\"em-modal-link\">' + escapeHtml(item.video_url) + '<\/a>';\n          }\n          html += '<\/div>';\n        }\n\n        \/\/ Galerie d'images (template has_gallery=true)\n        if (Array.isArray(item.gallery) && item.gallery.length > 0) {\n          html += '<div class=\"em-modal-entry\"><p class=\"em-modal-entry-label\">Galerie (' + item.gallery.length + ')<\/p>' +\n            '<div class=\"em-modal-gallery\">';\n          item.gallery.forEach(function(imgUrl) {\n            if (typeof imgUrl !== 'string' || imgUrl === '') return;\n            html += '<a href=\"' + escapeHtml(imgUrl) + '\" target=\"_blank\" rel=\"noopener\" class=\"em-modal-gallery-item\">' +\n              '<img decoding=\"async\" src=\"' + escapeHtml(imgUrl) + '\" alt=\"\" loading=\"lazy\" \/><\/a>';\n          });\n          html += '<\/div><\/div>';\n        }\n\n        \/\/ Documents PDF (template has_documents=true)\n        if (Array.isArray(item.documents) && item.documents.length > 0) {\n          html += '<div class=\"em-modal-entry\"><p class=\"em-modal-entry-label\">Documents (' + item.documents.length + ')<\/p>' +\n            '<ul class=\"em-modal-docs\">';\n          item.documents.forEach(function(doc) {\n            if (!doc || typeof doc !== 'object' || !doc.url) return;\n            var docName = doc.nom || 'Document';\n            var docType = (doc.type || '').toString().toLowerCase();\n            html += '<li><a href=\"' + escapeHtml(doc.url) + '\" target=\"_blank\" rel=\"noopener\" class=\"em-modal-doc\">' +\n              '<svg width=\"16\" height=\"16\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">' +\n              '<path fill-rule=\"evenodd\" d=\"M4 4a2 2 0 0 1 2-2h4.586A2 2 0 0 1 12 2.586L15.414 6A2 2 0 0 1 16 7.414V16a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V4Z\" clip-rule=\"evenodd\" \/><\/svg>' +\n              '<span class=\"em-modal-doc-name\">' + escapeHtml(docName) + '<\/span>' +\n              (docType ? '<span class=\"em-modal-doc-type\">' + escapeHtml(docType) + '<\/span>' : '') +\n              '<\/a><\/li>';\n          });\n          html += '<\/ul><\/div>';\n        }\n\n        \/\/ Questions fr\u00e9quentes\n        if (Array.isArray(item.faq) && item.faq.length > 0) {\n          html += '<div class=\"em-modal-faq\">' +\n            '<p class=\"em-modal-entry-label\">Questions fr\u00e9quentes (' + item.faq.length + ')<\/p>';\n          item.faq.forEach(function(qa) {\n            html += '<div class=\"em-modal-faq-item\">' +\n              '<div class=\"em-modal-faq-q\">' + escapeHtml(qa.question) + '<\/div>' +\n              '<div class=\"em-modal-faq-a' + (qa.answer ? '' : ' em-modal-faq-a-empty') + '\">' +\n              escapeHtml(qa.answer || 'Pas encore de r\u00e9ponse.') +\n              '<\/div><\/div>';\n          });\n          html += '<\/div>';\n        }\n\n        html += '<\/div>';\n\n        html += '<div class=\"em-modal-footer\">';\n        if (item.link && item.link.indexOf('http') === 0) {\n          html += '<a href=\"' + escapeHtml(item.link) + '\" target=\"_blank\" rel=\"noopener\" class=\"em-modal-link\">Ouvrir le lien &rarr;<\/a>';\n        } else {\n          html += '<span><\/span>';\n        }\n        html += '<button class=\"em-modal-close-btn\" data-close>Fermer<\/button><\/div><\/div>';\n\n        var overlay = document.createElement('div');\n        overlay.className = 'em-modal-overlay';\n        overlay.innerHTML = html;\n        document.body.appendChild(overlay);\n\n        \/\/ Bloque le scroll arri\u00e8re-plan\n        document.body.style.overflow = 'hidden';\n\n        function closeModal() {\n          document.body.style.overflow = '';\n          overlay.remove();\n        }\n\n        overlay.querySelectorAll('[data-close]').forEach(function(btn) {\n          btn.addEventListener('click', closeModal);\n        });\n        overlay.addEventListener('click', function(e) {\n          if (e.target === overlay) closeModal();\n        });\n        document.addEventListener('keydown', function escapeHandler(e) {\n          if (e.key === 'Escape') {\n            closeModal();\n            document.removeEventListener('keydown', escapeHandler);\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      \/\/ CARTE LEAFLET \u2014 Marqueurs + interactions\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      var initLeafletTries = 0;\n      function initLeafletMap() {\n        var mapElement = document.getElementById('em-map');\n        \/\/ Si le div n'est pas encore pars\u00e9 (script d\u00e9plac\u00e9 par un optimiseur) ou si Leaflet\n        \/\/ est encore en train de se charger (defer\/async), on retente. Cap \u00e0 100 essais (~10s).\n        if (!mapElement || typeof L === 'undefined') {\n          if (++initLeafletTries > 100) return;\n          return setTimeout(initLeafletMap, 100);\n        }\n\n        \/\/ Initialisation de la carte\n        var map = L.map(mapElement, {\n          zoomControl: false,\n          attributionControl: false,\n          scrollWheelZoom: false,\n        }).setView([46.6, 1.9], 6);\n\n        \/\/ Tuiles en premier\n        L.tileLayer('https:\/\/{s}.basemaps.cartocdn.com\/rastertiles\/voyager\/{z}\/{x}\/{y}{r}.png', {\n          maxZoom: 19,\n          subdomains: 'abcd'\n        }).addTo(map);\n\n        \/\/ Contr\u00f4les UI ensuite\n        L.control.zoom({\n          position: 'topright'\n        }).addTo(map);\n        L.control.attribution({\n            position: 'bottomright',\n            prefix: false\n          })\n          .addAttribution('&copy; <a href=\"https:\/\/www.openstreetmap.org\/copyright\">OSM<\/a> &copy; <a href=\"https:\/\/carto.com\/\">CARTO<\/a>')\n          .addTo(map);\n\n        \/\/ Bouton de recentrage\n        L.Control.Recenter = L.Control.extend({\n          onAdd: function() {\n            const container = L.DomUtil.create('div', 'leaflet-bar leaflet-control');\n            const btn = L.DomUtil.create('a', '', container);\n            btn.innerHTML = '<svg width=\"16\" height=\"16\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"3\"><circle cx=\"12\" cy=\"12\" r=\"3\"\/><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M12 2v3M12 19v3M2 12h3M19 12h3\"\/><\/svg>';\n            btn.href = '#';\n            btn.title = 'Recentrer la carte';\n            btn.style.display = 'flex';\n            btn.style.alignItems = 'center';\n            btn.style.justifyContent = 'center';\n            L.DomEvent.on(btn, 'click', function(e) {\n              L.DomEvent.preventDefault(e);\n              if (allBounds.length > 1) map.fitBounds(allBounds, {\n                padding: [40, 40]\n              });\n              else if (allBounds.length === 1) map.setView(allBounds[0], 13);\n            });\n            return container;\n          }\n        });\n        new L.Control.Recenter({\n          position: 'topright'\n        }).addTo(map);\n\n        \/\/ Donn\u00e9es inject\u00e9es depuis PHP\n        var gpsPoints = [{\"lat\":43.0661,\"lng\":12.9406,\"name\":\"R\\u00e9serve Africaine de Sigean\",\"type\":\"activites-autour-du-camping\",\"idx\":0},{\"lat\":43.0661,\"lng\":12.9406,\"name\":\"Plage de La Franqui\",\"type\":\"activites-autour-du-camping\",\"idx\":1},{\"lat\":43.0661,\"lng\":12.9406,\"name\":\"Abbaye de Fontfroide\",\"type\":\"activites-autour-du-camping\",\"idx\":2},{\"lat\":43.0661,\"lng\":12.9406,\"name\":\"Terra Vinea\",\"type\":\"activites-autour-du-camping\",\"idx\":3},{\"lat\":43.0661,\"lng\":12.9406,\"name\":\"P\\u00eache en mer\",\"type\":\"activites-autour-du-camping\",\"idx\":4},{\"lat\":43.0661,\"lng\":12.9406,\"name\":\"V\\u00e9lo sur la voie verte\",\"type\":\"activites-autour-du-camping\",\"idx\":5},{\"lat\":43.0661,\"lng\":12.9406,\"name\":\"\\u00c9quitation \\u00e0 la ferme \\u00e9questre\",\"type\":\"activites-autour-du-camping\",\"idx\":6},{\"lat\":43.0661,\"lng\":12.9406,\"name\":\"Aire de jeux pour enfants\",\"type\":\"activites-autour-du-camping\",\"idx\":7},{\"lat\":43.0661,\"lng\":12.9406,\"name\":\"Soir\\u00e9es \\u00e0 th\\u00e8me\",\"type\":\"activites-autour-du-camping\",\"idx\":8},{\"lat\":43.105,\"lng\":3.0425,\"name\":\"La Cave de Th\\u00e9o\",\"type\":\"restaurants\",\"idx\":10},{\"lat\":43.1055,\"lng\":3.042,\"name\":\"Restaurant Le Potager de Sigean\",\"type\":\"restaurants\",\"idx\":11},{\"lat\":43.1052,\"lng\":3.0422,\"name\":\"Restaurant P'Ose\",\"type\":\"restaurants\",\"idx\":12},{\"lat\":43.1053,\"lng\":3.0423,\"name\":\"Restaurant BANTHA\\u00cf\",\"type\":\"restaurants\",\"idx\":13},{\"lat\":43.1054,\"lng\":3.0424,\"name\":\"Le Jardin Des Oliviers\",\"type\":\"restaurants\",\"idx\":14},{\"lat\":43.083722,\"lng\":2.920334,\"name\":\"Les Terrasses de la Berre\",\"type\":\"restaurants\",\"idx\":15},{\"lat\":43.0625,\"lng\":3.0625,\"name\":\"Pr\\u00e8s de la Fontaine\",\"type\":\"restaurants\",\"idx\":16}];\n        var categoryColorMap = {\"activites-autour-du-camping\":\"#0891b2\",\"restaurants\":\"#db2777\"};\n        var categoryLabelMap = {\"activites-autour-du-camping\":\"Activit\\u00e9s autour du camping\",\"restaurants\":\"Restaurants\"};\n\n        var markers = []; \/\/ Tous les marqueurs [{marker, type, latLng, idx}]\n        var allBounds = []; \/\/ Coordonn\u00e9es pour le fitBounds initial\n        var activeMarker = null; \/\/ Marqueur actuellement s\u00e9lectionn\u00e9\n\n        \/**\n         * Cr\u00e9e une ic\u00f4ne SVG circulaire pour un marqueur Leaflet\n         * @param {string} color  \u2014 Couleur de remplissage\n         * @param {number} size   \u2014 Diam\u00e8tre du cercle int\u00e9rieur (d\u00e9faut: 12)\n         *\/\n        function createMarkerIcon(color, size) {\n          size = size || 12;\n          var outerSize = size + 8;\n          var center = outerSize \/ 2;\n          return L.divIcon({\n            className: 'em-marker',\n            html: '<svg width=\"' + outerSize + '\" height=\"' + outerSize + '\" viewBox=\"0 0 ' + outerSize + ' ' + outerSize + '\">' +\n              '<circle cx=\"' + center + '\" cy=\"' + center + '\" r=\"' + (size \/ 2 + 2) + '\" fill=\"white\" opacity=\"0.9\"\/>' +\n              '<circle cx=\"' + center + '\" cy=\"' + center + '\" r=\"' + (size \/ 2) + '\" fill=\"' + color + '\"\/>' +\n              '<\/svg>',\n            iconSize: [outerSize, outerSize],\n            iconAnchor: [center, center],\n            popupAnchor: [0, -(size \/ 2 + 6)]\n          });\n        }\n\n        \/\/ \u2500\u2500\u2500 Placement des marqueurs sur la carte \u2500\u2500\u2500\n        gpsPoints.forEach(function(point) {\n          var color = categoryColorMap[point.type] || '#6b7280';\n          var catLabel = categoryLabelMap[point.type] || point.type;\n          var icon = createMarkerIcon(color, 12);\n          var marker = L.marker([point.lat, point.lng], {\n            icon: icon\n          }).addTo(map);\n\n          \/\/ Popup au clic\n          var popupHtml = '<div class=\"em-map-popup\">' +\n            '<p class=\"em-map-popup-name\">' + escapeHtml(point.name) + '<\/p>' +\n            '<p class=\"em-map-popup-cat\" style=\"color:' + color + '\">' + escapeHtml(catLabel) + '<\/p>' +\n            '<button class=\"em-map-popup-btn\" data-card-idx=\"' + point.idx + '\">Voir la fiche \u2192<\/button>' +\n            '<\/div>';\n          marker.bindPopup(popupHtml, {\n            closeButton: false,\n            minWidth: 180\n          });\n\n          \/\/ Highlight du marqueur actif\n          marker.on('click', function() {\n            if (activeMarker && activeMarker.getElement()) activeMarker.getElement().classList.remove('em-marker--active');\n            if (marker.getElement()) marker.getElement().classList.add('em-marker--active');\n            activeMarker = marker;\n          });\n\n          \/\/ Bouton \"Voir la fiche\" dans la popup\n          marker.on('popupopen', function() {\n            var popupBtn = document.querySelector('.em-map-popup-btn[data-card-idx=\"' + point.idx + '\"]');\n            if (popupBtn) {\n              popupBtn.addEventListener('click', function() {\n                var allCards = document.querySelectorAll('.em-card');\n                var targetCard = allCards[point.idx];\n                if (targetCard) {\n                  var cardData = JSON.parse(targetCard.getAttribute('data-json'));\n                  openDetailModal(cardData);\n                }\n                map.closePopup();\n              });\n            }\n          });\n\n          markers.push({\n            marker: marker,\n            type: point.type,\n            latLng: [point.lat, point.lng],\n            idx: point.idx\n          });\n          allBounds.push([point.lat, point.lng]);\n        });\n\n        \/\/ Cadrage initial de la carte\n        if (allBounds.length > 1) map.fitBounds(allBounds, {\n          padding: [40, 40]\n        });\n        else if (allBounds.length === 1) map.setView(allBounds[0], 13);\n        setTimeout(function() {\n          map.invalidateSize();\n        }, 100);\n\n        \/\/ \u2500\u2500\u2500 Interaction cards \u2194 marqueurs (hover) \u2500\u2500\u2500\n        document.querySelectorAll('.em-card').forEach(function(card, cardIndex) {\n          card.addEventListener('mouseenter', function() {\n            markers.forEach(function(m) {\n              if (m.idx === cardIndex) {\n                m.marker.setIcon(createMarkerIcon(categoryColorMap[m.type] || '#6b7280', 18));\n                m.marker.setZIndexOffset(1000);\n              }\n            });\n          });\n          card.addEventListener('mouseleave', function() {\n            markers.forEach(function(m) {\n              if (m.idx === cardIndex) {\n                m.marker.setIcon(createMarkerIcon(categoryColorMap[m.type] || '#6b7280', 12));\n                m.marker.setZIndexOffset(0);\n              }\n            });\n          });\n        });\n\n        \/**\n         * Met \u00e0 jour la visibilit\u00e9 des marqueurs selon les types s\u00e9lectionn\u00e9s\n         * Appel\u00e9 par applyFilters() quand les filtres changent\n         *\/\n        window.updateMapMarkers = function(visibleTypes) {\n          var visibleBounds = [];\n          markers.forEach(function(m) {\n            if (visibleTypes.indexOf(m.type) !== -1) {\n              if (!map.hasLayer(m.marker)) map.addLayer(m.marker);\n              visibleBounds.push(m.latLng);\n            } else {\n              if (map.hasLayer(m.marker)) map.removeLayer(m.marker);\n            }\n          });\n\n          var hasPoints = visibleBounds.length > 0;\n          var mapSection = document.querySelector('.em-map-section');\n          var mapToggleBtn = document.getElementById('em-map-toggle');\n\n          if (mapSection) mapSection.style.display = hasPoints ? '' : 'none';\n          if (mapToggleBtn) {\n            mapToggleBtn.disabled = !hasPoints;\n            mapToggleBtn.style.opacity = hasPoints ? '' : '0.4';\n            mapToggleBtn.style.cursor = hasPoints ? '' : 'not-allowed';\n            \/\/ Ne touche pas \u00e0 .active \u2014 c'est le listener toggle qui le g\u00e8re\n          }\n\n          if (visibleBounds.length > 1) map.fitBounds(visibleBounds, {\n            padding: [40, 40],\n            maxZoom: 14\n          });\n          else if (visibleBounds.length === 1) map.setView(visibleBounds[0], 13);\n        };\n\n        \/\/ \u2500\u2500\u2500 Toggle visibilit\u00e9 de la carte \u2500\u2500\u2500\n        var mapToggle = document.getElementById('em-map-toggle');\n        var mapWrapper = document.getElementById('em-map-wrap');\n        if (mapToggle && mapWrapper) {\n          mapToggle.addEventListener('click', function() {\n            if (mapToggle.disabled) return;\n            var isVisible = mapWrapper.style.display !== 'none';\n            mapWrapper.style.display = isVisible ? 'none' : '';\n            mapToggle.classList.toggle('active', !isVisible);\n            if (!isVisible) setTimeout(function() {\n              map.invalidateSize();\n            }, 100);\n          });\n        }\n\n      }\n      initLeafletMap();\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      \/\/ MOBILE \/ TABLETTE \u2014 Sidebar filtres collapsible\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      \/**\n       * Sur mobile et tablette (\u22641024px), la sidebar filtres est repli\u00e9e par d\u00e9faut\n       * Un clic sur le titre la d\u00e9plie\/replie\n       *\/\n      function initMobileFilters() {\n        var filtersContainer = document.querySelector('.em-filters');\n        var filtersTitle = document.querySelector('.em-filters-title');\n        if (!filtersContainer || !filtersTitle) return;\n\n        var wrap = filtersContainer.closest('.em-wrap');\n        var backdrop = document.createElement('div');\n        backdrop.className = 'em-filter-backdrop';\n        filtersContainer.parentNode.insertBefore(backdrop, filtersContainer);\n\n        function isMobileOverlay() {\n          return window.innerWidth <= 720;\n        }\n\n        function setFiltersOpen(isOpen) {\n          filtersContainer.classList.toggle('collapsed', !isOpen);\n          filtersTitle.setAttribute('aria-expanded', isOpen ? 'true' : 'false');\n          backdrop.classList.toggle('is-visible', isOpen && isMobileOverlay());\n          document.documentElement.classList.toggle('em-filters-open', isOpen && isMobileOverlay());\n          if (wrap) wrap.classList.toggle('em-mobile-filters-open', isOpen && isMobileOverlay());\n        }\n\n        if (window.innerWidth <= 1024) {\n          setFiltersOpen(false);\n        } else {\n          setFiltersOpen(true);\n        }\n\n        filtersTitle.addEventListener('click', function() {\n          if (window.innerWidth <= 1024) {\n            setFiltersOpen(filtersContainer.classList.contains('collapsed'));\n          }\n        });\n\n        backdrop.addEventListener('click', function() {\n          setFiltersOpen(false);\n        });\n\n        document.addEventListener('keydown', function(event) {\n          if (event.key === 'Escape' && !filtersContainer.classList.contains('collapsed')) {\n            setFiltersOpen(false);\n          }\n        });\n\n        window.addEventListener('resize', function() {\n          if (window.innerWidth > 1024) {\n            setFiltersOpen(true);\n          } else if (window.innerWidth > 720) {\n            backdrop.classList.remove('is-visible');\n            document.documentElement.classList.remove('em-filters-open');\n            if (wrap) wrap.classList.remove('em-mobile-filters-open');\n          } else if (!filtersContainer.classList.contains('collapsed')) {\n            backdrop.classList.add('is-visible');\n            document.documentElement.classList.add('em-filters-open');\n            if (wrap) wrap.classList.add('em-mobile-filters-open');\n          }\n        });\n      }\n\n      initMobileFilters();\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      \/\/ OFFSET HEADER TH\u00c8ME \u2014 D\u00e9tecte un header sticky\/fix\u00e9 + injecte un overlay opaque sous celui-ci pour les th\u00e8mes au header semi-transparent\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 HEADER_SELECTORS = 'header, .site-header, #masthead, #header, .header, .navbar, .nav-bar, body > nav, body > .top-bar';\n\n      \/\/ Inject l'overlay opaque dans le body (au niveau racine, \u00e9vite les pi\u00e8ges de stacking context si le th\u00e8me a un transform sur un anc\u00eatre)\n      if (!document.getElementById('em-header-overlay')) {\n        var overlay = document.createElement('div');\n        overlay.id = 'em-header-overlay';\n        document.body.appendChild(overlay);\n      }\n\n      function updateThemeHeaderOffset() {\n        var bottom = 0;\n        document.querySelectorAll(HEADER_SELECTORS).forEach(function(el) {\n          var style = window.getComputedStyle(el);\n          if (style.position !== 'fixed' && style.position !== 'sticky') return;\n          var rect = el.getBoundingClientRect();\n          if (rect.top <= 50 && rect.bottom > bottom) bottom = rect.bottom;\n        });\n        document.documentElement.style.setProperty('--em-header-offset', Math.max(0, bottom) + 'px');\n      }\n\n      function updateScrolledClass() {\n        document.documentElement.classList.toggle('em-scrolled', window.scrollY > 0);\n      }\n\n      updateThemeHeaderOffset();\n      updateScrolledClass();\n\n      window.addEventListener('resize', updateThemeHeaderOffset);\n\n      var headerTicking = false;\n      window.addEventListener('scroll', function() {\n        if (headerTicking) return;\n        headerTicking = true;\n        requestAnimationFrame(function() {\n          updateThemeHeaderOffset();\n          updateScrolledClass();\n          headerTicking = false;\n        });\n      }, {\n        passive: true\n      });\n\n    })();\n  <\/script>\n\n\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"sujet":[],"class_list":["post-12344","page","type-page","status-publish","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>D\u00e9couvrez autour de vous - Camping Grange Neuve<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/campingsigean.com\/fr\/elaia-metadatas\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"D\u00e9couvrez autour de vous - Camping Grange Neuve\" \/>\n<meta property=\"og:url\" content=\"https:\/\/campingsigean.com\/fr\/elaia-metadatas\/\" \/>\n<meta property=\"og:site_name\" content=\"Camping Grange Neuve\" \/>\n<meta property=\"article:modified_time\" content=\"2026-07-09T18:33:38+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/campingsigean.com\/fr\/elaia-metadatas\/\",\"url\":\"https:\/\/campingsigean.com\/fr\/elaia-metadatas\/\",\"name\":\"D\u00e9couvrez autour de vous - Camping Grange Neuve\",\"isPartOf\":{\"@id\":\"https:\/\/campingsigean.com\/fr\/#website\"},\"datePublished\":\"2026-02-05T15:52:48+00:00\",\"dateModified\":\"2026-07-09T18:33:38+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/campingsigean.com\/fr\/elaia-metadatas\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/campingsigean.com\/fr\/elaia-metadatas\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/campingsigean.com\/fr\/elaia-metadatas\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Camping Aude\",\"item\":\"https:\/\/campingsigean.com\/fr\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"D\u00e9couvrez autour de vous\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/campingsigean.com\/fr\/#website\",\"url\":\"https:\/\/campingsigean.com\/fr\/\",\"name\":\"Camping Grange Neuve\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/campingsigean.com\/fr\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/campingsigean.com\/fr\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/campingsigean.com\/fr\/#organization\",\"name\":\"Camping La Grange Neuve\",\"url\":\"https:\/\/campingsigean.com\/fr\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/campingsigean.com\/fr\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/campingsigean.com\/wp-content\/uploads\/2021\/08\/cropped-logo-camping-sigean.png\",\"contentUrl\":\"https:\/\/campingsigean.com\/wp-content\/uploads\/2021\/08\/cropped-logo-camping-sigean.png\",\"width\":117,\"height\":98,\"caption\":\"Camping La Grange Neuve\"},\"image\":{\"@id\":\"https:\/\/campingsigean.com\/fr\/#\/schema\/logo\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"D\u00e9couvrez autour de vous - Camping Grange Neuve","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/campingsigean.com\/fr\/elaia-metadatas\/","og_locale":"fr_FR","og_type":"article","og_title":"D\u00e9couvrez autour de vous - Camping Grange Neuve","og_url":"https:\/\/campingsigean.com\/fr\/elaia-metadatas\/","og_site_name":"Camping Grange Neuve","article_modified_time":"2026-07-09T18:33:38+00:00","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/campingsigean.com\/fr\/elaia-metadatas\/","url":"https:\/\/campingsigean.com\/fr\/elaia-metadatas\/","name":"D\u00e9couvrez autour de vous - Camping Grange Neuve","isPartOf":{"@id":"https:\/\/campingsigean.com\/fr\/#website"},"datePublished":"2026-02-05T15:52:48+00:00","dateModified":"2026-07-09T18:33:38+00:00","breadcrumb":{"@id":"https:\/\/campingsigean.com\/fr\/elaia-metadatas\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/campingsigean.com\/fr\/elaia-metadatas\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/campingsigean.com\/fr\/elaia-metadatas\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Camping Aude","item":"https:\/\/campingsigean.com\/fr\/"},{"@type":"ListItem","position":2,"name":"D\u00e9couvrez autour de vous"}]},{"@type":"WebSite","@id":"https:\/\/campingsigean.com\/fr\/#website","url":"https:\/\/campingsigean.com\/fr\/","name":"Camping Grange Neuve","description":"","publisher":{"@id":"https:\/\/campingsigean.com\/fr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/campingsigean.com\/fr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/campingsigean.com\/fr\/#organization","name":"Camping La Grange Neuve","url":"https:\/\/campingsigean.com\/fr\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/campingsigean.com\/fr\/#\/schema\/logo\/image\/","url":"https:\/\/campingsigean.com\/wp-content\/uploads\/2021\/08\/cropped-logo-camping-sigean.png","contentUrl":"https:\/\/campingsigean.com\/wp-content\/uploads\/2021\/08\/cropped-logo-camping-sigean.png","width":117,"height":98,"caption":"Camping La Grange Neuve"},"image":{"@id":"https:\/\/campingsigean.com\/fr\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/campingsigean.com\/fr\/wp-json\/wp\/v2\/pages\/12344"}],"collection":[{"href":"https:\/\/campingsigean.com\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/campingsigean.com\/fr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/campingsigean.com\/fr\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/campingsigean.com\/fr\/wp-json\/wp\/v2\/comments?post=12344"}],"version-history":[{"count":1,"href":"https:\/\/campingsigean.com\/fr\/wp-json\/wp\/v2\/pages\/12344\/revisions"}],"predecessor-version":[{"id":12408,"href":"https:\/\/campingsigean.com\/fr\/wp-json\/wp\/v2\/pages\/12344\/revisions\/12408"}],"wp:attachment":[{"href":"https:\/\/campingsigean.com\/fr\/wp-json\/wp\/v2\/media?parent=12344"}],"wp:term":[{"taxonomy":"sujet","embeddable":true,"href":"https:\/\/campingsigean.com\/fr\/wp-json\/wp\/v2\/sujet?post=12344"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}