{"id":18564,"date":"2026-02-13T10:25:52","date_gmt":"2026-02-13T09:25:52","guid":{"rendered":"https:\/\/www.camping-var-ramatuelle.com\/find-out-more\/"},"modified":"2026-02-13T10:25:56","modified_gmt":"2026-02-13T09:25:56","slug":"find-out-more","status":"publish","type":"page","link":"https:\/\/www.camping-var-ramatuelle.com\/en\/find-out-more\/","title":{"rendered":"Find out more"},"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\":\"Villes aux alentours\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"item\":{\"@type\":\"Thing\",\"name\":\"Ramatuelle\",\"description\":\"Ramatuelle est un village proven\u00e7al situ\u00e9 au c\u0153ur de la presqu\u2019\u00eele de Saint-Tropez, connu pour son charme typique, ses ruelles pittoresques et sa proximit\u00e9 avec les plages de Pampelonne, tr\u00e8s fr\u00e9quent\u00e9es en \u00e9t\u00e9.\",\"image\":\"https:\/\/elaia-public.s3.fr-par.scw.cloud\/metadata_images\/image_6a86be8d59392.png\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.2147784,\"longitude\":6.6124821},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Nom de la ville\",\"value\":\"Ramatuelle\"},{\"@type\":\"PropertyValue\",\"name\":\"Type de la ville (ville \/ villages \/ bourg...)\",\"value\":\"Village\"},{\"@type\":\"PropertyValue\",\"name\":\"D\u00e9partement\",\"value\":\"Var\"},{\"@type\":\"PropertyValue\",\"name\":\"Distance depuis le camping (km)\",\"value\":\"2\"},{\"@type\":\"PropertyValue\",\"name\":\"Temps de route depuis le camping (min.)\",\"value\":\"5\"},{\"@type\":\"PropertyValue\",\"name\":\"Points d'int\u00e9r\u00eats\",\"value\":\"Plages de Pampelonne, vieille ville, march\u00e9s proven\u00e7aux, \u00e9glises, vignobles\"},{\"@type\":\"PropertyValue\",\"name\":\"Coups de coeur des g\u00e9rants\",\"value\":\"Le charme authentique du village et la proximit\u00e9 imm\u00e9diate des plages de Pampelonne.\"}]}},{\"@type\":\"ListItem\",\"position\":2,\"item\":{\"@type\":\"Thing\",\"name\":\"Gassin\",\"description\":\"Gassin est un village perch\u00e9 offrant un panorama exceptionnel sur le golfe de Saint-Tropez. Il est c\u00e9l\u00e8bre pour son ambiance calme, ses ruelles typiques, et ses artisans locaux.\",\"image\":\"https:\/\/elaia-public.s3.fr-par.scw.cloud\/metadata_images\/image_6a86becb65890.png\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.2297,\"longitude\":6.5858},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Nom de la ville\",\"value\":\"Gassin\"},{\"@type\":\"PropertyValue\",\"name\":\"Type de la ville (ville \/ villages \/ bourg...)\",\"value\":\"Village\"},{\"@type\":\"PropertyValue\",\"name\":\"D\u00e9partement\",\"value\":\"Var\"},{\"@type\":\"PropertyValue\",\"name\":\"Distance depuis le camping (km)\",\"value\":\"3\"},{\"@type\":\"PropertyValue\",\"name\":\"Temps de route depuis le camping (min.)\",\"value\":\"7\"},{\"@type\":\"PropertyValue\",\"name\":\"Points d'int\u00e9r\u00eats\",\"value\":\"Panorama du to\u00eet du village, \u00e9glise Saint-Pons, place des artistes, artisanat local\"},{\"@type\":\"PropertyValue\",\"name\":\"Coups de coeur des g\u00e9rants\",\"value\":\"La vue imprenable depuis le village et l'atmosph\u00e8re paisible qui y r\u00e8gne.\"}]}},{\"@type\":\"ListItem\",\"position\":3,\"item\":{\"@type\":\"Thing\",\"name\":\"Saint-Tropez\",\"description\":\"Saint-Tropez est une c\u00e9l\u00e8bre ville c\u00f4ti\u00e8re du Var, r\u00e9put\u00e9e pour son port anim\u00e9, ses plages renomm\u00e9es et son ambiance festive qui attire chaque ann\u00e9e de nombreux visiteurs.\",\"image\":\"https:\/\/elaia-public.s3.fr-par.scw.cloud\/metadata_images\/image_6a86bf1ab3f2e.png\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.273296,\"longitude\":6.639621},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Nom de la ville\",\"value\":\"Saint-Tropez\"},{\"@type\":\"PropertyValue\",\"name\":\"Type de la ville (ville \/ villages \/ bourg...)\",\"value\":\"Ville\"},{\"@type\":\"PropertyValue\",\"name\":\"D\u00e9partement\",\"value\":\"Var\"},{\"@type\":\"PropertyValue\",\"name\":\"Distance depuis le camping (km)\",\"value\":\"5\"},{\"@type\":\"PropertyValue\",\"name\":\"Temps de route depuis le camping (min.)\",\"value\":\"10\"},{\"@type\":\"PropertyValue\",\"name\":\"Points d'int\u00e9r\u00eats\",\"value\":\"Port de plaisance, mus\u00e9e de l'Annonciade, citadelle, plage de la Bouillabaisse\"},{\"@type\":\"PropertyValue\",\"name\":\"Coups de coeur des g\u00e9rants\",\"value\":\"L'animation du port et les couchers de soleil inoubliables sur la baie.\"}]}},{\"@type\":\"ListItem\",\"position\":4,\"item\":{\"@type\":\"Thing\",\"name\":\"Pampelonne\",\"description\":\"Pampelonne est une c\u00e9l\u00e8bre plage situ\u00e9e \u00e0 proximit\u00e9 des villages de la presqu\u2019\u00eele de Saint-Tropez, connue pour son sable fin et ses clubs de plage r\u00e9put\u00e9s.\",\"image\":\"https:\/\/elaia-public.s3.fr-par.scw.cloud\/metadata_images\/image_6a86bf667c6f2.png\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.2275691,\"longitude\":6.664753},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Nom de la ville\",\"value\":\"Pampelonne\"},{\"@type\":\"PropertyValue\",\"name\":\"Type de la ville (ville \/ villages \/ bourg...)\",\"value\":\"Plage \/ Zone touristique\"},{\"@type\":\"PropertyValue\",\"name\":\"D\u00e9partement\",\"value\":\"Var\"},{\"@type\":\"PropertyValue\",\"name\":\"Distance depuis le camping (km)\",\"value\":\"6\"},{\"@type\":\"PropertyValue\",\"name\":\"Temps de route depuis le camping (min.)\",\"value\":\"10\"},{\"@type\":\"PropertyValue\",\"name\":\"Points d'int\u00e9r\u00eats\",\"value\":\"Plages, clubs de plage, sports nautiques, restaurants en bord de mer\"},{\"@type\":\"PropertyValue\",\"name\":\"Coups de coeur des g\u00e9rants\",\"value\":\"L'ambiance festive et les possibilit\u00e9s de d\u00e9tente en bord de mer.\"}]}},{\"@type\":\"ListItem\",\"position\":5,\"item\":{\"@type\":\"Thing\",\"name\":\"Escalet\",\"description\":\"Escalet est un petit hameau c\u00f4tier r\u00e9put\u00e9 pour ses criques sauvages et ses eaux claires, offrant un cadre naturel pr\u00e9serv\u00e9 et paisible \u00e0 proximit\u00e9.\",\"image\":\"https:\/\/elaia-public.s3.fr-par.scw.cloud\/metadata_images\/image_6a86c0d960a37.jpeg\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.830833,\"longitude\":3.313333},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Nom de la ville\",\"value\":\"Escalet\"},{\"@type\":\"PropertyValue\",\"name\":\"Type de la ville (ville \/ villages \/ bourg...)\",\"value\":\"Plage \/ Petit hameau\"},{\"@type\":\"PropertyValue\",\"name\":\"D\u00e9partement\",\"value\":\"Var\"},{\"@type\":\"PropertyValue\",\"name\":\"Distance depuis le camping (km)\",\"value\":\"7\"},{\"@type\":\"PropertyValue\",\"name\":\"Temps de route depuis le camping (min.)\",\"value\":\"12\"},{\"@type\":\"PropertyValue\",\"name\":\"Points d'int\u00e9r\u00eats\",\"value\":\"Criques, sentiers de randonn\u00e9e, plages tranquilles, nature prot\u00e9g\u00e9e\"},{\"@type\":\"PropertyValue\",\"name\":\"Coups de coeur des g\u00e9rants\",\"value\":\"La beaut\u00e9 naturelle pr\u00e9serv\u00e9e et la tranquillit\u00e9 du lieu.\"}]}}]},{\"@type\":\"ItemList\",\"name\":\"Activit\u00e9s aux alentours \",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"item\":{\"@type\":\"Thing\",\"name\":\"Concours de p\u00e9tanque\",\"description\":\"Tournois de p\u00e9tanque organis\u00e9s r\u00e9guli\u00e8rement dans l'aire d\u00e9di\u00e9e du camping, activit\u00e9 conviviale et festive tr\u00e8s appr\u00e9ci\u00e9e des vacanciers.\",\"image\":\"https:\/\/elaia-public.s3.fr-par.scw.cloud\/metadata_images\/image_6a86c140202cb.jpeg\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.234926,\"longitude\":6.612836},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Nom de l'activit\u00e9\",\"value\":\"Concours de p\u00e9tanque\"},{\"@type\":\"PropertyValue\",\"name\":\"Distance depuis le camping (km)\",\"value\":\"0\"},{\"@type\":\"PropertyValue\",\"name\":\"Temps de route depuis le camping (min.)\",\"value\":\"0\"},{\"@type\":\"PropertyValue\",\"name\":\"Type d'activit\u00e9 (nature, sport, culture, etc.)\",\"value\":\"Sport\"},{\"@type\":\"PropertyValue\",\"name\":\"Cat\u00e9gorie de public (Famille, Enfants, Senior, Ado, etc.)\",\"value\":\"Familles, Adultes, Seniors\"},{\"@type\":\"PropertyValue\",\"name\":\"R\u00e9servation ? (oui \/ non)\",\"value\":\"Non\"},{\"@type\":\"PropertyValue\",\"name\":\"Horaires\",\"value\":\"Selon calendrier d'animation, g\u00e9n\u00e9ralement en fin d'apr\u00e8s-midi\"},{\"@type\":\"PropertyValue\",\"name\":\"Informations et contact\",\"value\":\"Renseignements \u00e0 la r\u00e9ception du camping La Rouill\u00e8re\"},{\"@type\":\"PropertyValue\",\"name\":\"Langues parl\u00e9es\",\"value\":\"Fran\u00e7ais\"},{\"@type\":\"PropertyValue\",\"name\":\"Animaux accept\u00e9 (oui \/ non)\",\"value\":\"Oui\"}]}},{\"@type\":\"ListItem\",\"position\":2,\"item\":{\"@type\":\"Thing\",\"name\":\"Randonn\u00e9es p\u00e9destres autour de Ramatuelle\",\"description\":\"Itin\u00e9raires de randonn\u00e9e p\u00e9destre accessibles depuis le camping, allant de balades familiales \u00e0 des parcours plus sportifs dans le cadre pittoresque de la presqu\u2019\u00eele de Saint-Tropez.\",\"image\":\"https:\/\/elaia-public.s3.fr-par.scw.cloud\/metadata_images\/image_6a86c17dd756f.jpg\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.219127,\"longitude\":6.64136},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Nom de l'activit\u00e9\",\"value\":\"Randonn\u00e9es p\u00e9destres autour de Ramatuelle\"},{\"@type\":\"PropertyValue\",\"name\":\"Distance depuis le camping (km)\",\"value\":\"0\"},{\"@type\":\"PropertyValue\",\"name\":\"Temps de route depuis le camping (min.)\",\"value\":\"0\"},{\"@type\":\"PropertyValue\",\"name\":\"Type d'activit\u00e9 (nature, sport, culture, etc.)\",\"value\":\"Nature\"},{\"@type\":\"PropertyValue\",\"name\":\"Cat\u00e9gorie de public (Famille, Enfants, Senior, Ado, etc.)\",\"value\":\"Familles, Sportifs, Seniors, Adultes\"},{\"@type\":\"PropertyValue\",\"name\":\"R\u00e9servation ? (oui \/ non)\",\"value\":\"Non\"},{\"@type\":\"PropertyValue\",\"name\":\"Horaires\",\"value\":\"Libre, acc\u00e8s toute la journ\u00e9e\"},{\"@type\":\"PropertyValue\",\"name\":\"Informations et contact\",\"value\":\"Plans et informations disponibles \u00e0 la r\u00e9ception du camping et aupr\u00e8s des offices de tourisme locaux\"},{\"@type\":\"PropertyValue\",\"name\":\"Langues parl\u00e9es\",\"value\":\"Fran\u00e7ais, Anglais\"},{\"@type\":\"PropertyValue\",\"name\":\"Animaux accept\u00e9 (oui \/ non)\",\"value\":\"Oui\"}]}},{\"@type\":\"ListItem\",\"position\":3,\"item\":{\"@type\":\"Thing\",\"name\":\"Plages de Pampelonne et de l\u2019Escalet\",\"description\":\"Plages naturelles de sable fin accessibles en voiture en moins de 10 minutes, id\u00e9ales pour la baignade, le farniente et les activit\u00e9s nautiques.\",\"image\":\"https:\/\/elaia-public.s3.fr-par.scw.cloud\/metadata_images\/image_6a86bf667c6f2.png\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.2279131,\"longitude\":6.6625214},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Nom de l'activit\u00e9\",\"value\":\"Plages de Pampelonne et de l\u2019Escalet\"},{\"@type\":\"PropertyValue\",\"name\":\"Distance depuis le camping (km)\",\"value\":\"6\"},{\"@type\":\"PropertyValue\",\"name\":\"Temps de route depuis le camping (min.)\",\"value\":\"10\"},{\"@type\":\"PropertyValue\",\"name\":\"Type d'activit\u00e9 (nature, sport, culture, etc.)\",\"value\":\"Nature, nautique\"},{\"@type\":\"PropertyValue\",\"name\":\"Cat\u00e9gorie de public (Famille, Enfants, Senior, Ado, etc.)\",\"value\":\"Familles, Enfants, Adultes\"},{\"@type\":\"PropertyValue\",\"name\":\"R\u00e9servation ? (oui \/ non)\",\"value\":\"Non\"},{\"@type\":\"PropertyValue\",\"name\":\"Horaires\",\"value\":\"Ouvert toute l'ann\u00e9e, activit\u00e9s nautiques selon saison\"},{\"@type\":\"PropertyValue\",\"name\":\"Informations et contact\",\"value\":\"Informations touristiques disponibles \u00e0 l'office de tourisme de Ramatuelle\"},{\"@type\":\"PropertyValue\",\"name\":\"Langues parl\u00e9es\",\"value\":\"Fran\u00e7ais, Anglais, Italien\"},{\"@type\":\"PropertyValue\",\"name\":\"Animaux accept\u00e9 (oui \/ non)\",\"value\":\"Non\"}]}},{\"@type\":\"ListItem\",\"position\":4,\"item\":{\"@type\":\"Thing\",\"name\":\"Parc accrobranche \u00e0 Grimaud\",\"description\":\"Parc d'aventure en for\u00eat proposant des parcours d'accrobranche pour petits et grands, \u00e0 environ 20 km, accessible en voiture depuis le camping.\",\"image\":\"https:\/\/elaia-public.s3.fr-par.scw.cloud\/metadata_images\/image_6a7ef616428fe.jpg\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":43.271662,\"longitude\":6.55016},\"additionalProperty\":[{\"@type\":\"PropertyValue\",\"name\":\"Nom de l'activit\u00e9\",\"value\":\"Parc accrobranche \u00e0 Grimaud\"},{\"@type\":\"PropertyValue\",\"name\":\"Distance depuis le camping (km)\",\"value\":\"20\"},{\"@type\":\"PropertyValue\",\"name\":\"Temps de route depuis le camping (min.)\",\"value\":\"25\"},{\"@type\":\"PropertyValue\",\"name\":\"Type d'activit\u00e9 (nature, sport, culture, etc.)\",\"value\":\"Sport, nature, aventure\"},{\"@type\":\"PropertyValue\",\"name\":\"Cat\u00e9gorie de public (Famille, Enfants, Senior, Ado, etc.)\",\"value\":\"Familles, Enfants, Adolescents, Adultes\"},{\"@type\":\"PropertyValue\",\"name\":\"R\u00e9servation ? (oui \/ non)\",\"value\":\"Oui\"},{\"@type\":\"PropertyValue\",\"name\":\"Horaires\",\"value\":\"De 10h \u00e0 18h en haute saison\"},{\"@type\":\"PropertyValue\",\"name\":\"Langues parl\u00e9es\",\"value\":\"Fran\u00e7ais, Anglais\"},{\"@type\":\"PropertyValue\",\"name\":\"Animaux accept\u00e9 (oui \/ non)\",\"value\":\"Non\"}]}}]}]}<\/script>\n\n  \n  <!-- Injection des labels pour le JS (modal) -->\n  <script>\n    var emFieldLabels = {\"nom_de_la_ville\":\"Nom de la ville\",\"type_de_la_ville_ville_villages_bourg\":\"Type de la ville (ville \\\/ villages \\\/ bourg...)\",\"departement\":\"D\\u00e9partement\",\"description\":\"Description\",\"distance_depuis_le_camping_km\":\"Distance depuis le camping (km)\",\"temps_de_route_depuis_le_camping_min\":\"Temps de route depuis le camping (min.)\",\"points_dinterets\":\"Points d'int\\u00e9r\\u00eats\",\"coups_de_coeur_des_gerants\":\"Coups de coeur des g\\u00e9rants\",\"nom_de_lactivite\":\"Nom de l'activit\\u00e9\",\"type_dactivite_nature_sport_culture_etc\":\"Type d'activit\\u00e9 (nature, sport, culture, etc.)\",\"categorie_de_public_famille_enfants_senior_ado_etc\":\"Cat\\u00e9gorie de public (Famille, Enfants, Senior, Ado, etc.)\",\"reservation_oui_non\":\"R\\u00e9servation ? (oui \\\/ non)\",\"horaires\":\"Horaires\",\"informations_et_contact\":\"Informations et contact\",\"langues_parlees\":\"Langues parl\\u00e9es\",\"animaux_accepte_oui_non\":\"Animaux accept\\u00e9 (oui \\\/ non)\",\"nom\":\"Nom\",\"categorie_devenement_musique_exposition_festival_foire_brocante_marche_etc\":\"Cat\\u00e9gorie d'\\u00e9v\\u00e9nement : (Musique, exposition, festival, foire, brocante, march\\u00e9, etc.)\",\"public_cible_famille_enfants_adultes_seniors_adolescents_etc\":\"Public cible : (Famille, enfants, adultes, seniors, adolescents, etc.)\",\"reservation_ouinon\":\"R\\u00e9servation (oui\\\/non)\",\"informations_pratiques_et_contact\":\"Informations pratiques et contact\",\"distance_depuis_lhotel_en_km\":\"Distance depuis l'h\\u00f4tel : (en km)\",\"temps_de_route_depuis_lhotel_en_min\":\"Temps de route depuis l'h\\u00f4tel (en min)\",\"animaux_acceptes_ou_non\":\"Animaux : (Accept\\u00e9s ou non)\",\"nom_de_la_piscine\":\"Nom de la piscine\",\"type_de_piscine_couverte_ext_lagune_pataugeoire\":\"Type de piscine (Couverte, ext, Lagune, pataugeoire...)\",\"surface_en_m2\":\"Surface (en m2)\",\"profondeur_maximum_et_minimum\":\"Profondeur maximum et minimum\",\"capacite_dacceuil\":\"Capacit\\u00e9 d'acceuil\",\"emplacement_dans_le_camping\":\"Emplacement (dans le camping)\",\"equipements_toboggans_jacuzzi_jets_riviere_a_contre_courant\":\"Equipements (Toboggans, jacuzzi, jets, rivi\\u00e8re \\u00e0 contre-courant...)\",\"autour_de_la_piscine_transats_parasols_douches\":\"Autour de la piscine (Transats, parasols, douches)\",\"acces_pmr_ouinon\":\"Acc\\u00e8s PMR (Oui\\\/Non)\",\"dates_douverture\":\"Dates d'ouverture\",\"horaires_douverture\":\"Horaires d'ouverture\",\"nom_de_lanimation\":\"Nom de l'animation\",\"type_spectacle_atelier_sport_soiree_concours\":\"Type (Spectacle, Atelier, Sport, Soir\\u00e9e, Concours\\u2026)\",\"categorie_de_public_famille_enfants_adultes_ados_seniors\":\"Cat\\u00e9gorie de public (Famille, Enfants, Adultes, Ados, Seniors)\",\"lieu_sur_le_camping_scene_piscine_salle_plein_air\":\"Lieu sur le camping (sc\\u00e8ne, piscine, salle, plein air\\u2026)\",\"duree_estimee\":\"Dur\\u00e9e estim\\u00e9e\",\"capacite_max\":\"Capacit\\u00e9 max\",\"reservation_obligatoire_ouinon\":\"R\\u00e9servation obligatoire (Oui\\\/Non)\",\"niveau_requis_si_sportifatelier\":\"Niveau requis (si sportif\\\/atelier)\",\"anime_par_equipe_interne_artiste_exterieur\":\"Anim\\u00e9 par (\\u00e9quipe interne \\\/ artiste ext\\u00e9rieur)\",\"nom_de_lequipement\":\"Nom de l'\\u00e9quipement\",\"type_sport_jeux_detente_aquatique_restauration\":\"Type (Sport, Jeux, D\\u00e9tente, Aquatique, Restauration\\u2026)\",\"les_acces_libre_ou_sur_reservation\":\"Les Acc\\u00e8s (libre ou sur r\\u00e9servation)\",\"age_minimum\":\"\\u00c2ge minimum\",\"accessible_pmr_ouinon\":\"Accessible PMR (Oui\\\/Non)\",\"zone_sur_le_camping_nom_position_sur_plan\":\"Zone sur le camping (nom + position sur plan)\",\"distance_depuis_la_reception_min_a_pied\":\"Distance depuis la r\\u00e9ception (min \\u00e0 pied)\",\"eclairage_nocturne_ouinon\":\"\\u00c9clairage nocturne (Oui\\\/Non)\",\"animaux_acceptes_ouinon\":\"Animaux accept\\u00e9s (Oui\\\/Non)\",\"materiel_fourni_ouinon_detail\":\"Mat\\u00e9riel fourni (Oui\\\/Non + d\\u00e9tail)\",\"nom_de_lhebergement\":\"Nom de l'h\\u00e9bergement\",\"type_mobil_home_emplacement_lodge_cabane_tente_glamping_roulotte\":\"Type (Mobil-home, Emplacement, Lodge, Cabane, Tente glamping, Roulotte\\u2026)\",\"gamme_standing_confort_premium_luxe\":\"Gamme \\\/ Standing (Confort, Premium, Luxe\\u2026)\",\"nombre_de_personnes_max\":\"Nombre de personnes max\",\"nombre_de_chambres_couchages_lit_double_lits_simples_canape_lit\":\"Nombre de chambres \\\/ couchages (lit double, lits simples, canap\\u00e9-lit\\u2026)\",\"surface_interieure_m2\":\"Surface int\\u00e9rieure (m\\u00b2)\",\"equipements_exterieur_terrasse_veranda_parking_privatif_bbq_salon_de_jardin_hamac_vue\":\"\\u00c9quipements exterieur (Terrasse, V\\u00e9randa, Parking privatif, Bbq, Salon de jardin, Hamac , vue)\",\"equipements_interieurs_climatisation_cuisine_equipee_lave_linge_television_wifi_inclus_draps_inclus_serviettes_incluses\":\"\\u00c9quipements int\\u00e9rieurs (Climatisation, Cuisine \\u00e9quip\\u00e9e, Lave-linge, T\\u00e9l\\u00e9vision, Wifi inclus, Draps inclus, Serviettes incluses...)\",\"accessibilite_pmr_age_minimum_enfants_distance_depuis_reception_distance_depuis_piscine_min_a_pied\":\"Accessibilit\\u00e9  (PMR, \\u00c2ge minimum enfants, Distance depuis r\\u00e9ception, Distance depuis piscine (min \\u00e0 pied)\",\"type_hebergement\":\"Type h\\u00e9bergement\",\"nom_des_nos_hebergements\":\"Nom des nos h\\u00e9bergements\",\"descriptions\":\"Descriptions\",\"les_gammes_confort_premium_luxe\":\"Les Gammes (Confort, Premium, Luxe\\u2026)\",\"les_points_forts\":\"Les points forts\",\"nom_du_service\":\"Nom du service\",\"type_laverie_wifi_superette_location_materiel_sante_transport_divertissement\":\"Type (Laverie, Wifi, Sup\\u00e9rette, Location mat\\u00e9riel, Sant\\u00e9, Transport, Divertissement\\u2026)\",\"gratuit_payant_ouinon\":\"Gratuit \\\/ Payant (oui\\\/non)\",\"acces_libre_ou_sur_demande\":\"Acc\\u00e8s libre ou sur demande\",\"nom_du_spot\":\"Nom du Spot\",\"sous_titre\":\"Sous-titre\",\"type_de_bord_deau\":\"Type de bord d'eau\",\"type_de_plagerive_sable_galets_herbe_rochers_sable_et_galets\":\"Type de plage\\\/rive (Sable Galets Herbe Rochers Sable et galets)\",\"surveillance\":\"Surveillance\",\"type_deau_eau_salee_eau_douce_eau_saumatre\":\"Type d'eau (Eau sal\\u00e9e, Eau douce, Eau saum\\u00e2tre)\",\"baignade_autorisee_interdite_a_vos_risques\":\"Baignade (Autoris\\u00e9e, Interdite ,\\u00c0 vos risques)\",\"adapte_aux_enfants_ouinon_avec_surveillance\":\"Adapt\\u00e9 aux enfants (Oui\\\/Non, Avec surveillance)\",\"distance_depuis_le_camping\":\"Distance depuis le camping\",\"temps_de_trajet_depuis_le_camping\":\"Temps de trajet depuis le camping\",\"parking_gratuit_payant_limite_non_disponible\":\"Parking (Gratuit, Payant Limit\\u00e9, Non disponible)\",\"accessibilite_pmr\":\"Accessibilit\\u00e9 PMR\",\"activites_possibles_baignade_snorkeling_paddle_kayak_peche_voile_plongee_pedalo\":\"Activit\\u00e9s possibles (Baignade ,Snorkeling, Paddle, Kayak, P\\u00eache, Voile, Plong\\u00e9e, P\\u00e9dalo)\",\"equipements_sur_place_douches_toilettes_restaurantsnack_location_de_materiel_transats_prives_aire_de_pique_nique_surf\":\"\\u00c9quipements sur place (Douches, Toilettes, Restaurant\\\/Snack, Location de mat\\u00e9riel, Transats priv\\u00e9s, Aire de pique-nique, Surf...))\",\"nom_du_restaurant\":\"Nom du restaurant\",\"categorie_gastronomique_bistronomique_traditionnel_brasserie_snack_food_truck_pizzeria\":\"Cat\\u00e9gorie (Gastronomique, Bistronomique, Traditionnel, Brasserie, Snack, Food truck, Pizzeria)\",\"ambiance_familial_decontracte_chicvue_panoramique\":\"Ambiance (Familial, D\\u00e9contract\\u00e9, Chic,Vue panoramique)\",\"cadre_terrasse_bord_de_piscine_bord_de_mer_vue_sur_le_village_climatise_jardin\":\"Cadre (Terrasse, Bord de piscine, Bord de mer, Vue sur le village, climatis\\u00e9, Jardin)\",\"menu_enfant_ouinon\":\"Menu enfant (Oui\\\/Non)\",\"options_regime_vegetarien_vegan_sans_gluten_halal\":\"Options r\\u00e9gime (V\\u00e9g\\u00e9tarien V\\u00e9gan Sans gluten Halal)\",\"distance_depuis_le_camping_si_exterieur_au_camping\":\"Distance depuis le camping (Si exterieur au camping)\",\"temps_de_trajet_si_exterieur_au_camping\":\"Temps de trajet (Si exterieur au camping)\",\"parking_sur_place_a_proximite_difficile_non_disponible\":\"Parking (Sur place \\u00c0 proximit\\u00e9 Difficile Non disponible)\",\"accessibilite_pmroui_non\":\"Accessibilit\\u00e9 PMR(Oui \\\/Non)\",\"animaux_acceptes_ouinon_en_terrasse_uniquement\":\"Animaux accept\\u00e9s (Oui\\\/Non ;En terrasse uniquement)\",\"jours_douverture\":\"Jours d'ouverture\",\"periode_douverture\":\"P\\u00e9riode d'ouverture\",\"reservation_recommandee_obligatoire_non_requise\":\"R\\u00e9servation (Recommand\\u00e9e, Obligatoire, Non requise)\",\"nom_de_linformation\":\"Nom de l'information\",\"accroche_courte\":\"Accroche courte\",\"contenu\":\"Contenu\",\"adresse\":\"Adresse\",\"telephone\":\"T\\u00e9l\\u00e9phone\",\"e_mail\":\"E-mail\",\"site_web\":\"Site web\",\"horaires_de_la_reception\":\"Horaires de la r\\u00e9ception\",\"horaires_darrivee\":\"Horaires d'arriv\\u00e9e\",\"google_maps\":\"Google Maps\",\"presentation_de_lequipe\":\"Pr\\u00e9sentation de l'\\u00e9quipe\",\"aeroports_les_plus_proches\":\"A\\u00e9roports les plus proches\",\"gares_les_plus_proches\":\"Gares les plus proches\",\"nom_de_la_randonnee\":\"Nom de la randonn\\u00e9e\",\"descriptif\":\"Descriptif\",\"duree_moyenne\":\"Dur\\u00e9e moyenne\",\"distance\":\"Distance\",\"denivele_positif\":\"D\\u00e9nivel\\u00e9 positif\",\"denivele_negatif\":\"D\\u00e9nivel\\u00e9 n\\u00e9gatif\",\"difficulte\":\"Difficult\\u00e9\",\"commune\":\"Commune\",\"point_de_depart\":\"Point de d\\u00e9part\",\"point_darrivee\":\"Point d'arriv\\u00e9e\",\"type_de_terrain\":\"Type de terrain\",\"points_dinteret\":\"Points d'int\\u00e9r\\u00eat\"};\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\">9 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\">9<\/strong><\/div>\n            <div class=\"em-stat\">Affich\u00e9s : <strong id=\"em-stat-visible\">9<\/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=\"villes-aux-alentours\" class=\"em-filter-type\" checked><span>Villes aux alentours<\/span><\/label>\n                          <label class=\"em-filter-check\"><input type=\"checkbox\" value=\"activites-aux-alentours\" class=\"em-filter-type\" checked><span>Activit\u00e9s aux alentours <\/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\">9<\/span><\/button>\n                          <button class=\"em-tab\" data-filter=\"villes-aux-alentours\">Villes aux alentours<span class=\"em-tab-count\">5<\/span><\/button>\n                          <button class=\"em-tab\" data-filter=\"activites-aux-alentours\">Activit\u00e9s aux alentours <span class=\"em-tab-count\">4<\/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=\"villes-aux-alentours\">\n                      <span class=\"em-map-legend-dot\" style=\"background:#0891b2;\"><\/span>\n                      Villes aux alentours                    <\/div>\n                                                          <div class=\"em-map-legend-item\" data-type=\"activites-aux-alentours\">\n                      <span class=\"em-map-legend-dot\" style=\"background:#db2777;\"><\/span>\n                      Activit\u00e9s aux alentours                     <\/div>\n                                  <\/div>\n              <\/div>\n            <\/div>\n          \n          <div class=\"em-cards\" id=\"em-cards\">\n                          <article class=\"em-card\"\n                data-type=\"villes-aux-alentours\"\n                data-features=\"\"\n                data-name=\"ramatuelle\"\n                data-json=\"{&quot;name&quot;:&quot;Ramatuelle&quot;,&quot;image&quot;:&quot;https:\\\/\\\/elaia-public.s3.fr-par.scw.cloud\\\/metadata_images\\\/image_6a86be8d59392.png&quot;,&quot;link&quot;:&quot;&quot;,&quot;data&quot;:{&quot;nom_de_la_ville&quot;:&quot;Ramatuelle&quot;,&quot;type_de_la_ville_ville_villages_bourg&quot;:&quot;Village&quot;,&quot;departement&quot;:&quot;Var&quot;,&quot;description&quot;:&quot;Ramatuelle est un village proven\\u00e7al situ\\u00e9 au c\\u0153ur de la presqu\\u2019\\u00eele de Saint-Tropez, connu pour son charme typique, ses ruelles pittoresques et sa proximit\\u00e9 avec les plages de Pampelonne, tr\\u00e8s fr\\u00e9quent\\u00e9es en \\u00e9t\\u00e9.&quot;,&quot;distance_depuis_le_camping_km&quot;:&quot;2&quot;,&quot;temps_de_route_depuis_le_camping_min&quot;:&quot;5&quot;,&quot;points_dinterets&quot;:&quot;Plages de Pampelonne, vieille ville, march\\u00e9s proven\\u00e7aux, \\u00e9glises, vignobles&quot;,&quot;coups_de_coeur_des_gerants&quot;:&quot;Le charme authentique du village et la proximit\\u00e9 imm\\u00e9diate des plages de Pampelonne.&quot;,&quot;name&quot;:&quot;Ramatuelle&quot;,&quot;latitude&quot;:&quot;43.2147784&quot;,&quot;longitude&quot;:&quot;6.6124821&quot;,&quot;image&quot;:&quot;https:\\\/\\\/elaia-public.s3.fr-par.scw.cloud\\\/metadata_images\\\/image_6a86be8d59392.png&quot;},&quot;category&quot;:&quot;Villes aux alentours&quot;,&quot;faq&quot;:[{&quot;question&quot;:&quot;Y&#039;a t il des commerces essentiels ?&quot;,&quot;answer&quot;:&quot;Oui, Ramatuelle dispose de commerces essentiels tels que boulangeries, sup\\u00e9rettes, pharmacies et march\\u00e9s locaux.&quot;},{&quot;question&quot;:&quot;Quel est le meilleur moment pour visiter la ville ?&quot;,&quot;answer&quot;:&quot;Le meilleur moment pour visiter Ramatuelle est au printemps et en d\\u00e9but d&#039;automne pour \\u00e9viter la forte affluence estivale tout en profitant d&#039;un climat agr\\u00e9able.&quot;},{&quot;question&quot;:&quot;O\\u00f9 manger sans se tromper ?&quot;,&quot;answer&quot;:&quot;Nous recommandons les restaurants locaux du centre-ville qui offrent une cuisine proven\\u00e7ale authentique et des produits frais de la r\\u00e9gion.&quot;},{&quot;question&quot;:&quot;O\\u00f9 se garer facilement ?&quot;,&quot;answer&quot;:&quot;Des parkings publics sont disponibles \\u00e0 l&#039;entr\\u00e9e du village, offrant un acc\\u00e8s facile au centre pi\\u00e9tonnier.&quot;},{&quot;question&quot;:&quot;Le centre ville est il accessible aux PMR et poussettes ?&quot;,&quot;answer&quot;:&quot;Le centre-village est en grande partie pi\\u00e9tonnier mais accessible aux PMR et poussettes via des chemins adapt\\u00e9s.&quot;},{&quot;question&quot;:&quot;Que faire quand il pleut dans la ville ?&quot;,&quot;answer&quot;:&quot;Lorsque le temps est pluvieux, une visite au mus\\u00e9e local ou la d\\u00e9gustation de produits du terroir dans les commerces couverts sont conseill\\u00e9es.&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:\/\/elaia-public.s3.fr-par.scw.cloud\/metadata_images\/image_6a86be8d59392.png\" alt=\"Ramatuelle\" 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\">Villes aux alentours<\/span>\n                <\/div>\n\n                <!-- Contenu de la card -->\n                <div class=\"em-card-body\">\n                  <h3 class=\"em-card-title\">Ramatuelle<\/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\">Nom de la ville :<\/span>\n                        <span class=\"em-card-field-value\">Ramatuelle<\/span>\n                      <\/div>\n                                          <div class=\"em-card-field\">\n                        <span class=\"em-card-field-label\">Type de la ville (ville \/ villages \/ bourg...) :<\/span>\n                        <span class=\"em-card-field-value\">Village<\/span>\n                      <\/div>\n                                          <div class=\"em-card-field\">\n                        <span class=\"em-card-field-label\">D\u00e9partement :<\/span>\n                        <span class=\"em-card-field-value\">Var<\/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=\"villes-aux-alentours\"\n                data-features=\"\"\n                data-name=\"gassin\"\n                data-json=\"{&quot;name&quot;:&quot;Gassin&quot;,&quot;image&quot;:&quot;https:\\\/\\\/elaia-public.s3.fr-par.scw.cloud\\\/metadata_images\\\/image_6a86becb65890.png&quot;,&quot;link&quot;:&quot;&quot;,&quot;data&quot;:{&quot;nom_de_la_ville&quot;:&quot;Gassin&quot;,&quot;type_de_la_ville_ville_villages_bourg&quot;:&quot;Village&quot;,&quot;departement&quot;:&quot;Var&quot;,&quot;description&quot;:&quot;Gassin est un village perch\\u00e9 offrant un panorama exceptionnel sur le golfe de Saint-Tropez. Il est c\\u00e9l\\u00e8bre pour son ambiance calme, ses ruelles typiques, et ses artisans locaux.&quot;,&quot;distance_depuis_le_camping_km&quot;:&quot;3&quot;,&quot;temps_de_route_depuis_le_camping_min&quot;:&quot;7&quot;,&quot;points_dinterets&quot;:&quot;Panorama du to\\u00eet du village, \\u00e9glise Saint-Pons, place des artistes, artisanat local&quot;,&quot;coups_de_coeur_des_gerants&quot;:&quot;La vue imprenable depuis le village et l&#039;atmosph\\u00e8re paisible qui y r\\u00e8gne.&quot;,&quot;name&quot;:&quot;Gassin&quot;,&quot;latitude&quot;:&quot;43.2297000&quot;,&quot;longitude&quot;:&quot;6.5858000&quot;,&quot;image&quot;:&quot;https:\\\/\\\/elaia-public.s3.fr-par.scw.cloud\\\/metadata_images\\\/image_6a86becb65890.png&quot;},&quot;category&quot;:&quot;Villes aux alentours&quot;,&quot;faq&quot;:[{&quot;question&quot;:&quot;Y&#039;a t il des commerces essentiels ?&quot;,&quot;answer&quot;:&quot;Il y a plusieurs commerces de proximit\\u00e9, dont boulangeries, \\u00e9piceries et quelques petites boutiques artisanales.&quot;},{&quot;question&quot;:&quot;Quel est le meilleur moment pour visiter la ville ?&quot;,&quot;answer&quot;:&quot;Le printemps et l&#039;automne sont id\\u00e9aux pour appr\\u00e9cier Gassin au calme et \\u00e9viter la foule touristique.&quot;},{&quot;question&quot;:&quot;O\\u00f9 manger sans se tromper ?&quot;,&quot;answer&quot;:&quot;Le village offre plusieurs restaurants avec terrasses o\\u00f9 les sp\\u00e9cialit\\u00e9s locales sont \\u00e0 go\\u00fbter absolument.&quot;},{&quot;question&quot;:&quot;O\\u00f9 se garer facilement ?&quot;,&quot;answer&quot;:&quot;Les parkings situ\\u00e9s pr\\u00e8s de l&#039;entr\\u00e9e du village facilitent l&#039;acc\\u00e8s au c\\u0153ur pi\\u00e9ton du village.&quot;},{&quot;question&quot;:&quot;Le centre ville est il accessible aux PMR et poussettes ?&quot;,&quot;answer&quot;:&quot;Le centre est majoritairement pi\\u00e9tonnier avec des pentes, mais reste accessible avec une certaine vigilance pour les poussettes et PMR.&quot;},{&quot;question&quot;:&quot;Que faire quand il pleut dans la ville ?&quot;,&quot;answer&quot;:&quot;Profitez des galeries d&#039;art et des ateliers d&#039;artisans pour une d\\u00e9couverte culturelle \\u00e0 l&#039;abri.&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:\/\/elaia-public.s3.fr-par.scw.cloud\/metadata_images\/image_6a86becb65890.png\" alt=\"Gassin\" 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\">Villes aux alentours<\/span>\n                <\/div>\n\n                <!-- Contenu de la card -->\n                <div class=\"em-card-body\">\n                  <h3 class=\"em-card-title\">Gassin<\/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\">Nom de la ville :<\/span>\n                        <span class=\"em-card-field-value\">Gassin<\/span>\n                      <\/div>\n                                          <div class=\"em-card-field\">\n                        <span class=\"em-card-field-label\">Type de la ville (ville \/ villages \/ bourg...) :<\/span>\n                        <span class=\"em-card-field-value\">Village<\/span>\n                      <\/div>\n                                          <div class=\"em-card-field\">\n                        <span class=\"em-card-field-label\">D\u00e9partement :<\/span>\n                        <span class=\"em-card-field-value\">Var<\/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=\"villes-aux-alentours\"\n                data-features=\"\"\n                data-name=\"saint-tropez\"\n                data-json=\"{&quot;name&quot;:&quot;Saint-Tropez&quot;,&quot;image&quot;:&quot;https:\\\/\\\/elaia-public.s3.fr-par.scw.cloud\\\/metadata_images\\\/image_6a86bf1ab3f2e.png&quot;,&quot;link&quot;:&quot;&quot;,&quot;data&quot;:{&quot;nom_de_la_ville&quot;:&quot;Saint-Tropez&quot;,&quot;type_de_la_ville_ville_villages_bourg&quot;:&quot;Ville&quot;,&quot;departement&quot;:&quot;Var&quot;,&quot;description&quot;:&quot;Saint-Tropez est une c\\u00e9l\\u00e8bre ville c\\u00f4ti\\u00e8re du Var, r\\u00e9put\\u00e9e pour son port anim\\u00e9, ses plages renomm\\u00e9es et son ambiance festive qui attire chaque ann\\u00e9e de nombreux visiteurs.&quot;,&quot;distance_depuis_le_camping_km&quot;:&quot;5&quot;,&quot;temps_de_route_depuis_le_camping_min&quot;:&quot;10&quot;,&quot;points_dinterets&quot;:&quot;Port de plaisance, mus\\u00e9e de l&#039;Annonciade, citadelle, plage de la Bouillabaisse&quot;,&quot;coups_de_coeur_des_gerants&quot;:&quot;L&#039;animation du port et les couchers de soleil inoubliables sur la baie.&quot;,&quot;name&quot;:&quot;Saint-Tropez&quot;,&quot;latitude&quot;:&quot;43.2732960&quot;,&quot;longitude&quot;:&quot;6.6396210&quot;,&quot;image&quot;:&quot;https:\\\/\\\/elaia-public.s3.fr-par.scw.cloud\\\/metadata_images\\\/image_6a86bf1ab3f2e.png&quot;},&quot;category&quot;:&quot;Villes aux alentours&quot;,&quot;faq&quot;:[{&quot;question&quot;:&quot;Y&#039;a t il des commerces essentiels ?&quot;,&quot;answer&quot;:&quot;Saint-Tropez regorge de commerces vari\\u00e9s, allant des boutiques de luxe aux \\u00e9piceries locales pour les besoins quotidiens.&quot;},{&quot;question&quot;:&quot;Quel est le meilleur moment pour visiter la ville ?&quot;,&quot;answer&quot;:&quot;Le printemps et l&#039;automne offrent un climat agr\\u00e9able et moins d&#039;affluence compar\\u00e9 \\u00e0 la haute saison estivale.&quot;},{&quot;question&quot;:&quot;O\\u00f9 manger sans se tromper ?&quot;,&quot;answer&quot;:&quot;Le vieux port pr\\u00e9sente une large s\\u00e9lection de restaurants de qualit\\u00e9, parfaits pour go\\u00fbter \\u00e0 la cuisine locale.&quot;},{&quot;question&quot;:&quot;O\\u00f9 se garer facilement ?&quot;,&quot;answer&quot;:&quot;Plusieurs parkings publics payants sont disponibles \\u00e0 l&#039;entr\\u00e9e de la ville, bien signal\\u00e9s.&quot;},{&quot;question&quot;:&quot;Le centre ville est il accessible aux PMR et poussettes ?&quot;,&quot;answer&quot;:&quot;Le centre ville est globalement accessible aux PMR et poussettes, avec quelques zones pi\\u00e9tonnes.&quot;},{&quot;question&quot;:&quot;Que faire quand il pleut dans la ville ?&quot;,&quot;answer&quot;:&quot;Visitez les mus\\u00e9es et galeries d&#039;art ou profitez des caf\\u00e9s pour un moment cosy.&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:\/\/elaia-public.s3.fr-par.scw.cloud\/metadata_images\/image_6a86bf1ab3f2e.png\" alt=\"Saint-Tropez\" 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\">Villes aux alentours<\/span>\n                <\/div>\n\n                <!-- Contenu de la card -->\n                <div class=\"em-card-body\">\n                  <h3 class=\"em-card-title\">Saint-Tropez<\/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\">Nom de la ville :<\/span>\n                        <span class=\"em-card-field-value\">Saint-Tropez<\/span>\n                      <\/div>\n                                          <div class=\"em-card-field\">\n                        <span class=\"em-card-field-label\">Type de la ville (ville \/ villages \/ bourg...) :<\/span>\n                        <span class=\"em-card-field-value\">Ville<\/span>\n                      <\/div>\n                                          <div class=\"em-card-field\">\n                        <span class=\"em-card-field-label\">D\u00e9partement :<\/span>\n                        <span class=\"em-card-field-value\">Var<\/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=\"villes-aux-alentours\"\n                data-features=\"\"\n                data-name=\"pampelonne\"\n                data-json=\"{&quot;name&quot;:&quot;Pampelonne&quot;,&quot;image&quot;:&quot;https:\\\/\\\/elaia-public.s3.fr-par.scw.cloud\\\/metadata_images\\\/image_6a86bf667c6f2.png&quot;,&quot;link&quot;:&quot;&quot;,&quot;data&quot;:{&quot;nom_de_la_ville&quot;:&quot;Pampelonne&quot;,&quot;type_de_la_ville_ville_villages_bourg&quot;:&quot;Plage \\\/ Zone touristique&quot;,&quot;departement&quot;:&quot;Var&quot;,&quot;description&quot;:&quot;Pampelonne est une c\\u00e9l\\u00e8bre plage situ\\u00e9e \\u00e0 proximit\\u00e9 des villages de la presqu\\u2019\\u00eele de Saint-Tropez, connue pour son sable fin et ses clubs de plage r\\u00e9put\\u00e9s.&quot;,&quot;distance_depuis_le_camping_km&quot;:&quot;6&quot;,&quot;temps_de_route_depuis_le_camping_min&quot;:&quot;10&quot;,&quot;points_dinterets&quot;:&quot;Plages, clubs de plage, sports nautiques, restaurants en bord de mer&quot;,&quot;coups_de_coeur_des_gerants&quot;:&quot;L&#039;ambiance festive et les possibilit\\u00e9s de d\\u00e9tente en bord de mer.&quot;,&quot;name&quot;:&quot;Pampelonne&quot;,&quot;latitude&quot;:&quot;43.2275691&quot;,&quot;longitude&quot;:&quot;6.6647530&quot;,&quot;image&quot;:&quot;https:\\\/\\\/elaia-public.s3.fr-par.scw.cloud\\\/metadata_images\\\/image_6a86bf667c6f2.png&quot;},&quot;category&quot;:&quot;Villes aux alentours&quot;,&quot;faq&quot;:[{&quot;question&quot;:&quot;Y&#039;a t il des commerces essentiels ?&quot;,&quot;answer&quot;:&quot;Des petits commerces et restaurants sont pr\\u00e9sents sur la plage, mais pour les besoins essentiels il faut se rendre en village proche.&quot;},{&quot;question&quot;:&quot;Quel est le meilleur moment pour visiter la ville ?&quot;,&quot;answer&quot;:&quot;L&#039;\\u00e9t\\u00e9 est la p\\u00e9riode id\\u00e9ale pour profiter pleinement des plages et des activit\\u00e9s nautiques.&quot;},{&quot;question&quot;:&quot;O\\u00f9 manger sans se tromper ?&quot;,&quot;answer&quot;:&quot;Les clubs de plage proposent une cuisine locale d\\u00e9licieuse et une exp\\u00e9rience conviviale.&quot;},{&quot;question&quot;:&quot;O\\u00f9 se garer facilement ?&quot;,&quot;answer&quot;:&quot;Des parkings sont disponibles pr\\u00e8s des plages avec acc\\u00e8s direct aux clubs.&quot;},{&quot;question&quot;:&quot;Le centre ville est il accessible aux PMR et poussettes ?&quot;,&quot;answer&quot;:&quot;Les zones principales des plages sont accessible aux poussettes et PMR, avec des am\\u00e9nagements.&quot;},{&quot;question&quot;:&quot;Que faire quand il pleut dans la ville ?&quot;,&quot;answer&quot;:&quot;Profitez des spas ou des bars lounge pr\\u00e9sents dans les clubs de plage pour un moment d\\u00e9tente.&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:\/\/elaia-public.s3.fr-par.scw.cloud\/metadata_images\/image_6a86bf667c6f2.png\" alt=\"Pampelonne\" 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\">Villes aux alentours<\/span>\n                <\/div>\n\n                <!-- Contenu de la card -->\n                <div class=\"em-card-body\">\n                  <h3 class=\"em-card-title\">Pampelonne<\/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\">Nom de la ville :<\/span>\n                        <span class=\"em-card-field-value\">Pampelonne<\/span>\n                      <\/div>\n                                          <div class=\"em-card-field\">\n                        <span class=\"em-card-field-label\">Type de la ville (ville \/ villages \/ bourg...) :<\/span>\n                        <span class=\"em-card-field-value\">Plage \/ Zone touristique<\/span>\n                      <\/div>\n                                          <div class=\"em-card-field\">\n                        <span class=\"em-card-field-label\">D\u00e9partement :<\/span>\n                        <span class=\"em-card-field-value\">Var<\/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=\"villes-aux-alentours\"\n                data-features=\"\"\n                data-name=\"escalet\"\n                data-json=\"{&quot;name&quot;:&quot;Escalet&quot;,&quot;image&quot;:&quot;https:\\\/\\\/elaia-public.s3.fr-par.scw.cloud\\\/metadata_images\\\/image_6a86c0d960a37.jpeg&quot;,&quot;link&quot;:&quot;&quot;,&quot;data&quot;:{&quot;nom_de_la_ville&quot;:&quot;Escalet&quot;,&quot;type_de_la_ville_ville_villages_bourg&quot;:&quot;Plage \\\/ Petit hameau&quot;,&quot;departement&quot;:&quot;Var&quot;,&quot;description&quot;:&quot;Escalet est un petit hameau c\\u00f4tier r\\u00e9put\\u00e9 pour ses criques sauvages et ses eaux claires, offrant un cadre naturel pr\\u00e9serv\\u00e9 et paisible \\u00e0 proximit\\u00e9.&quot;,&quot;distance_depuis_le_camping_km&quot;:&quot;7&quot;,&quot;temps_de_route_depuis_le_camping_min&quot;:&quot;12&quot;,&quot;points_dinterets&quot;:&quot;Criques, sentiers de randonn\\u00e9e, plages tranquilles, nature prot\\u00e9g\\u00e9e&quot;,&quot;coups_de_coeur_des_gerants&quot;:&quot;La beaut\\u00e9 naturelle pr\\u00e9serv\\u00e9e et la tranquillit\\u00e9 du lieu.&quot;,&quot;name&quot;:&quot;Escalet&quot;,&quot;latitude&quot;:&quot;43.8308330&quot;,&quot;longitude&quot;:&quot;3.3133330&quot;,&quot;image&quot;:&quot;https:\\\/\\\/elaia-public.s3.fr-par.scw.cloud\\\/metadata_images\\\/image_6a86c0d960a37.jpeg&quot;},&quot;category&quot;:&quot;Villes aux alentours&quot;,&quot;faq&quot;:[{&quot;question&quot;:&quot;Y&#039;a t il des commerces essentiels ?&quot;,&quot;answer&quot;:&quot;Peu de commerces, principalement des restaurateurs saisonniers; pour les commerces essentiels, il faut se rendre aux villages voisins.&quot;},{&quot;question&quot;:&quot;Quel est le meilleur moment pour visiter la ville ?&quot;,&quot;answer&quot;:&quot;Le printemps et l&#039;automne permettent de profiter de la nature sans la foule estivale.&quot;},{&quot;question&quot;:&quot;O\\u00f9 manger sans se tromper ?&quot;,&quot;answer&quot;:&quot;Les petits restaurants de bord de mer servent de bons plats m\\u00e9diterran\\u00e9ens, frais et locaux.&quot;},{&quot;question&quot;:&quot;O\\u00f9 se garer facilement ?&quot;,&quot;answer&quot;:&quot;Des parkings sont disponibles \\u00e0 l&#039;entr\\u00e9e des plages et sentiers, mais peuvent \\u00eatre limit\\u00e9s en haute saison.&quot;},{&quot;question&quot;:&quot;Le centre ville est il accessible aux PMR et poussettes ?&quot;,&quot;answer&quot;:&quot;L&#039;acc\\u00e8s aux plages se fait via des sentiers parfois escarp\\u00e9s, donc l&#039;accessibilit\\u00e9 est limit\\u00e9e pour les PMR.&quot;},{&quot;question&quot;:&quot;Que faire quand il pleut dans la ville ?&quot;,&quot;answer&quot;:&quot;Les activit\\u00e9s \\u00e0 l&#039;int\\u00e9rieur sont rares, il est conseill\\u00e9 de visiter les villages voisins ou se replier au camping.&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:\/\/elaia-public.s3.fr-par.scw.cloud\/metadata_images\/image_6a86c0d960a37.jpeg\" alt=\"Escalet\" 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\">Villes aux alentours<\/span>\n                <\/div>\n\n                <!-- Contenu de la card -->\n                <div class=\"em-card-body\">\n                  <h3 class=\"em-card-title\">Escalet<\/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\">Nom de la ville :<\/span>\n                        <span class=\"em-card-field-value\">Escalet<\/span>\n                      <\/div>\n                                          <div class=\"em-card-field\">\n                        <span class=\"em-card-field-label\">Type de la ville (ville \/ villages \/ bourg...) :<\/span>\n                        <span class=\"em-card-field-value\">Plage \/ Petit hameau<\/span>\n                      <\/div>\n                                          <div class=\"em-card-field\">\n                        <span class=\"em-card-field-label\">D\u00e9partement :<\/span>\n                        <span class=\"em-card-field-value\">Var<\/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-aux-alentours\"\n                data-features=\"\"\n                data-name=\"concours de p\u00e9tanque\"\n                data-json=\"{&quot;name&quot;:&quot;Concours de p\\u00e9tanque&quot;,&quot;image&quot;:&quot;https:\\\/\\\/elaia-public.s3.fr-par.scw.cloud\\\/metadata_images\\\/image_6a86c140202cb.jpeg&quot;,&quot;link&quot;:&quot;&quot;,&quot;data&quot;:{&quot;nom_de_lactivite&quot;:&quot;Concours de p\\u00e9tanque&quot;,&quot;description&quot;:&quot;Tournois de p\\u00e9tanque organis\\u00e9s r\\u00e9guli\\u00e8rement dans l&#039;aire d\\u00e9di\\u00e9e du camping, activit\\u00e9 conviviale et festive tr\\u00e8s appr\\u00e9ci\\u00e9e des vacanciers.&quot;,&quot;distance_depuis_le_camping_km&quot;:&quot;0&quot;,&quot;temps_de_route_depuis_le_camping_min&quot;:&quot;0&quot;,&quot;type_dactivite_nature_sport_culture_etc&quot;:&quot;Sport&quot;,&quot;categorie_de_public_famille_enfants_senior_ado_etc&quot;:&quot;Familles, Adultes, Seniors&quot;,&quot;reservation_oui_non&quot;:&quot;Non&quot;,&quot;horaires&quot;:&quot;Selon calendrier d&#039;animation, g\\u00e9n\\u00e9ralement en fin d&#039;apr\\u00e8s-midi&quot;,&quot;informations_et_contact&quot;:&quot;Renseignements \\u00e0 la r\\u00e9ception du camping La Rouill\\u00e8re&quot;,&quot;langues_parlees&quot;:&quot;Fran\\u00e7ais&quot;,&quot;animaux_accepte_oui_non&quot;:&quot;Oui&quot;,&quot;name&quot;:&quot;Concours de p\\u00e9tanque&quot;,&quot;latitude&quot;:&quot;43.2349260&quot;,&quot;longitude&quot;:&quot;6.6128360&quot;,&quot;image&quot;:&quot;https:\\\/\\\/elaia-public.s3.fr-par.scw.cloud\\\/metadata_images\\\/image_6a86c140202cb.jpeg&quot;},&quot;category&quot;:&quot;Activit\\u00e9s aux alentours &quot;,&quot;faq&quot;:[{&quot;question&quot;:&quot;Cette activit\\u00e9 est-elle adapt\\u00e9e aux d\\u00e9butants ?&quot;,&quot;answer&quot;:&quot;Oui, la p\\u00e9tanque est accessible aux d\\u00e9butants avec les conseils des animateurs du camping.&quot;},{&quot;question&quot;:&quot;Quel est le tarif moyen ?&quot;,&quot;answer&quot;:&quot;Gratuit, inclus dans les animations du camping.&quot;},{&quot;question&quot;:&quot;Cette activit\\u00e9 est-elle praticable par mauvais temps ?&quot;,&quot;answer&quot;:&quot;Non, cette activit\\u00e9 ext\\u00e9rieure est suspendue en cas de mauvais temps.&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:\/\/elaia-public.s3.fr-par.scw.cloud\/metadata_images\/image_6a86c140202cb.jpeg\" alt=\"Concours de p\u00e9tanque\" 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 aux alentours <\/span>\n                <\/div>\n\n                <!-- Contenu de la card -->\n                <div class=\"em-card-body\">\n                  <h3 class=\"em-card-title\">Concours de p\u00e9tanque<\/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\">Nom de l&#039;activit\u00e9 :<\/span>\n                        <span class=\"em-card-field-value\">Concours de p\u00e9tanque<\/span>\n                      <\/div>\n                                          <div class=\"em-card-field\">\n                        <span class=\"em-card-field-label\">Type d&#039;activit\u00e9 (nature, sport, culture, etc.) :<\/span>\n                        <span class=\"em-card-field-value\">Sport<\/span>\n                      <\/div>\n                                          <div class=\"em-card-field\">\n                        <span class=\"em-card-field-label\">Cat\u00e9gorie de public (Famille, Enfants, Senior, Ado, etc.) :<\/span>\n                        <span class=\"em-card-field-value\">Familles, Adultes, Seniors<\/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-aux-alentours\"\n                data-features=\"\"\n                data-name=\"randonn\u00e9es p\u00e9destres autour de ramatuelle\"\n                data-json=\"{&quot;name&quot;:&quot;Randonn\\u00e9es p\\u00e9destres autour de Ramatuelle&quot;,&quot;image&quot;:&quot;https:\\\/\\\/elaia-public.s3.fr-par.scw.cloud\\\/metadata_images\\\/image_6a86c17dd756f.jpg&quot;,&quot;link&quot;:&quot;&quot;,&quot;data&quot;:{&quot;nom_de_lactivite&quot;:&quot;Randonn\\u00e9es p\\u00e9destres autour de Ramatuelle&quot;,&quot;description&quot;:&quot;Itin\\u00e9raires de randonn\\u00e9e p\\u00e9destre accessibles depuis le camping, allant de balades familiales \\u00e0 des parcours plus sportifs dans le cadre pittoresque de la presqu\\u2019\\u00eele de Saint-Tropez.&quot;,&quot;distance_depuis_le_camping_km&quot;:&quot;0&quot;,&quot;temps_de_route_depuis_le_camping_min&quot;:&quot;0&quot;,&quot;type_dactivite_nature_sport_culture_etc&quot;:&quot;Nature&quot;,&quot;categorie_de_public_famille_enfants_senior_ado_etc&quot;:&quot;Familles, Sportifs, Seniors, Adultes&quot;,&quot;reservation_oui_non&quot;:&quot;Non&quot;,&quot;horaires&quot;:&quot;Libre, acc\\u00e8s toute la journ\\u00e9e&quot;,&quot;informations_et_contact&quot;:&quot;Plans et informations disponibles \\u00e0 la r\\u00e9ception du camping et aupr\\u00e8s des offices de tourisme locaux&quot;,&quot;langues_parlees&quot;:&quot;Fran\\u00e7ais, Anglais&quot;,&quot;animaux_accepte_oui_non&quot;:&quot;Oui&quot;,&quot;name&quot;:&quot;Randonn\\u00e9es p\\u00e9destres autour de Ramatuelle&quot;,&quot;latitude&quot;:&quot;43.2191270&quot;,&quot;longitude&quot;:&quot;6.6413600&quot;,&quot;image&quot;:&quot;https:\\\/\\\/elaia-public.s3.fr-par.scw.cloud\\\/metadata_images\\\/image_6a86c17dd756f.jpg&quot;},&quot;category&quot;:&quot;Activit\\u00e9s aux alentours &quot;,&quot;faq&quot;:[{&quot;question&quot;:&quot;Cette activit\\u00e9 est-elle adapt\\u00e9e aux d\\u00e9butants ?&quot;,&quot;answer&quot;:&quot;Oui, il existe des parcours adapt\\u00e9s \\u00e0 tous les niveaux, y compris les d\\u00e9butants et les familles avec enfants.&quot;},{&quot;question&quot;:&quot;Quel est le tarif moyen ?&quot;,&quot;answer&quot;:&quot;Gratuit, sauf si accompagnement par un guide, possibilit\\u00e9 de tarifs vari\\u00e9s&quot;},{&quot;question&quot;:&quot;Cette activit\\u00e9 est-elle praticable par mauvais temps ?&quot;,&quot;answer&quot;:&quot;Non, d\\u00e9conseill\\u00e9e par mauvais temps ou terrain glissant.&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:\/\/elaia-public.s3.fr-par.scw.cloud\/metadata_images\/image_6a86c17dd756f.jpg\" alt=\"Randonn\u00e9es p\u00e9destres autour de Ramatuelle\" 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 aux alentours <\/span>\n                <\/div>\n\n                <!-- Contenu de la card -->\n                <div class=\"em-card-body\">\n                  <h3 class=\"em-card-title\">Randonn\u00e9es p\u00e9destres autour de Ramatuelle<\/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\">Nom de l&#039;activit\u00e9 :<\/span>\n                        <span class=\"em-card-field-value\">Randonn\u00e9es p\u00e9destres autour de Ramatuelle<\/span>\n                      <\/div>\n                                          <div class=\"em-card-field\">\n                        <span class=\"em-card-field-label\">Type d&#039;activit\u00e9 (nature, sport, culture, etc.) :<\/span>\n                        <span class=\"em-card-field-value\">Nature<\/span>\n                      <\/div>\n                                          <div class=\"em-card-field\">\n                        <span class=\"em-card-field-label\">Cat\u00e9gorie de public (Famille, Enfants, Senior, Ado, etc.) :<\/span>\n                        <span class=\"em-card-field-value\">Familles, Sportifs, Seniors, Adultes<\/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-aux-alentours\"\n                data-features=\"\"\n                data-name=\"plages de pampelonne et de l\u2019escalet\"\n                data-json=\"{&quot;name&quot;:&quot;Plages de Pampelonne et de l\\u2019Escalet&quot;,&quot;image&quot;:&quot;https:\\\/\\\/elaia-public.s3.fr-par.scw.cloud\\\/metadata_images\\\/image_6a86bf667c6f2.png&quot;,&quot;link&quot;:&quot;&quot;,&quot;data&quot;:{&quot;nom_de_lactivite&quot;:&quot;Plages de Pampelonne et de l\\u2019Escalet&quot;,&quot;description&quot;:&quot;Plages naturelles de sable fin accessibles en voiture en moins de 10 minutes, id\\u00e9ales pour la baignade, le farniente et les activit\\u00e9s nautiques.&quot;,&quot;distance_depuis_le_camping_km&quot;:&quot;6&quot;,&quot;temps_de_route_depuis_le_camping_min&quot;:&quot;10&quot;,&quot;type_dactivite_nature_sport_culture_etc&quot;:&quot;Nature, nautique&quot;,&quot;categorie_de_public_famille_enfants_senior_ado_etc&quot;:&quot;Familles, Enfants, Adultes&quot;,&quot;reservation_oui_non&quot;:&quot;Non&quot;,&quot;horaires&quot;:&quot;Ouvert toute l&#039;ann\\u00e9e, activit\\u00e9s nautiques selon saison&quot;,&quot;informations_et_contact&quot;:&quot;Informations touristiques disponibles \\u00e0 l&#039;office de tourisme de Ramatuelle&quot;,&quot;langues_parlees&quot;:&quot;Fran\\u00e7ais, Anglais, Italien&quot;,&quot;animaux_accepte_oui_non&quot;:&quot;Non&quot;,&quot;name&quot;:&quot;Plages de Pampelonne et de l\\u2019Escalet&quot;,&quot;latitude&quot;:&quot;43.2279131&quot;,&quot;longitude&quot;:&quot;6.6625214&quot;,&quot;image&quot;:&quot;https:\\\/\\\/elaia-public.s3.fr-par.scw.cloud\\\/metadata_images\\\/image_6a86bf667c6f2.png&quot;},&quot;category&quot;:&quot;Activit\\u00e9s aux alentours &quot;,&quot;faq&quot;:[{&quot;question&quot;:&quot;Cette activit\\u00e9 est-elle adapt\\u00e9e aux d\\u00e9butants ?&quot;,&quot;answer&quot;:&quot;Oui, accessible \\u00e0 tous, y compris les d\\u00e9butants pour les activit\\u00e9s nautiques encadr\\u00e9es.&quot;},{&quot;question&quot;:&quot;Quel est le tarif moyen ?&quot;,&quot;answer&quot;:&quot;Gratuit pour l&#039;acc\\u00e8s \\u00e0 la plage, tarifs variables pour les activit\\u00e9s nautiques.&quot;},{&quot;question&quot;:&quot;Cette activit\\u00e9 est-elle praticable par mauvais temps ?&quot;,&quot;answer&quot;:&quot;Non, les activit\\u00e9s nautiques sont suspendues par mauvais temps, baignade d\\u00e9conseill\\u00e9e.&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:\/\/elaia-public.s3.fr-par.scw.cloud\/metadata_images\/image_6a86bf667c6f2.png\" alt=\"Plages de Pampelonne et de l\u2019Escalet\" 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 aux alentours <\/span>\n                <\/div>\n\n                <!-- Contenu de la card -->\n                <div class=\"em-card-body\">\n                  <h3 class=\"em-card-title\">Plages de Pampelonne et de l\u2019Escalet<\/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\">Nom de l&#039;activit\u00e9 :<\/span>\n                        <span class=\"em-card-field-value\">Plages de Pampelonne et de l\u2019Escalet<\/span>\n                      <\/div>\n                                          <div class=\"em-card-field\">\n                        <span class=\"em-card-field-label\">Distance depuis le camping (km) :<\/span>\n                        <span class=\"em-card-field-value\">6<\/span>\n                      <\/div>\n                                          <div class=\"em-card-field\">\n                        <span class=\"em-card-field-label\">Temps de route depuis le camping (min.) :<\/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-aux-alentours\"\n                data-features=\"\"\n                data-name=\"parc accrobranche \u00e0 grimaud\"\n                data-json=\"{&quot;name&quot;:&quot;Parc accrobranche \\u00e0 Grimaud&quot;,&quot;image&quot;:&quot;https:\\\/\\\/elaia-public.s3.fr-par.scw.cloud\\\/metadata_images\\\/image_6a7ef616428fe.jpg&quot;,&quot;link&quot;:&quot;&quot;,&quot;data&quot;:{&quot;nom_de_lactivite&quot;:&quot;Parc accrobranche \\u00e0 Grimaud&quot;,&quot;description&quot;:&quot;Parc d&#039;aventure en for\\u00eat proposant des parcours d&#039;accrobranche pour petits et grands, \\u00e0 environ 20 km, accessible en voiture depuis le camping.&quot;,&quot;distance_depuis_le_camping_km&quot;:&quot;20&quot;,&quot;temps_de_route_depuis_le_camping_min&quot;:&quot;25&quot;,&quot;type_dactivite_nature_sport_culture_etc&quot;:&quot;Sport, nature, aventure&quot;,&quot;categorie_de_public_famille_enfants_senior_ado_etc&quot;:&quot;Familles, Enfants, Adolescents, Adultes&quot;,&quot;reservation_oui_non&quot;:&quot;Oui&quot;,&quot;horaires&quot;:&quot;De 10h \\u00e0 18h en haute saison&quot;,&quot;informations_et_contact&quot;:&quot;&quot;,&quot;langues_parlees&quot;:&quot;Fran\\u00e7ais, Anglais&quot;,&quot;animaux_accepte_oui_non&quot;:&quot;Non&quot;,&quot;name&quot;:&quot;Parc accrobranche \\u00e0 Grimaud&quot;,&quot;latitude&quot;:&quot;43.2716620&quot;,&quot;longitude&quot;:&quot;6.5501600&quot;,&quot;image&quot;:&quot;https:\\\/\\\/elaia-public.s3.fr-par.scw.cloud\\\/metadata_images\\\/image_6a7ef616428fe.jpg&quot;},&quot;category&quot;:&quot;Activit\\u00e9s aux alentours &quot;,&quot;faq&quot;:[{&quot;question&quot;:&quot;Cette activit\\u00e9 est-elle adapt\\u00e9e aux d\\u00e9butants ?&quot;,&quot;answer&quot;:&quot;Oui, avec des parcours adapt\\u00e9s \\u00e0 tous les \\u00e2ges et niveaux, y compris d\\u00e9butants.&quot;},{&quot;question&quot;:&quot;Quel est le tarif moyen ?&quot;,&quot;answer&quot;:&quot;Entre 15\\u20ac et 30\\u20ac selon l&#039;\\u00e2ge et la dur\\u00e9e.&quot;},{&quot;question&quot;:&quot;Cette activit\\u00e9 est-elle praticable par mauvais temps ?&quot;,&quot;answer&quot;:&quot;Non, l\\u2019accrobranche est normalement ferm\\u00e9 en cas de pluie ou mauvais temps.&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:\/\/elaia-public.s3.fr-par.scw.cloud\/metadata_images\/image_6a7ef616428fe.jpg\" alt=\"Parc accrobranche \u00e0 Grimaud\" 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 aux alentours <\/span>\n                <\/div>\n\n                <!-- Contenu de la card -->\n                <div class=\"em-card-body\">\n                  <h3 class=\"em-card-title\">Parc accrobranche \u00e0 Grimaud<\/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\">Nom de l&#039;activit\u00e9 :<\/span>\n                        <span class=\"em-card-field-value\">Parc accrobranche \u00e0 Grimaud<\/span>\n                      <\/div>\n                                          <div class=\"em-card-field\">\n                        <span class=\"em-card-field-label\">Distance depuis le camping (km) :<\/span>\n                        <span class=\"em-card-field-value\">20<\/span>\n                      <\/div>\n                                          <div class=\"em-card-field\">\n                        <span class=\"em-card-field-label\">Temps de route depuis le camping (min.) :<\/span>\n                        <span class=\"em-card-field-value\">25<\/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.2147784,\"lng\":6.6124821,\"name\":\"Ramatuelle\",\"type\":\"villes-aux-alentours\",\"idx\":0},{\"lat\":43.2297,\"lng\":6.5858,\"name\":\"Gassin\",\"type\":\"villes-aux-alentours\",\"idx\":1},{\"lat\":43.273296,\"lng\":6.639621,\"name\":\"Saint-Tropez\",\"type\":\"villes-aux-alentours\",\"idx\":2},{\"lat\":43.2275691,\"lng\":6.664753,\"name\":\"Pampelonne\",\"type\":\"villes-aux-alentours\",\"idx\":3},{\"lat\":43.830833,\"lng\":3.313333,\"name\":\"Escalet\",\"type\":\"villes-aux-alentours\",\"idx\":4},{\"lat\":43.234926,\"lng\":6.612836,\"name\":\"Concours de p\\u00e9tanque\",\"type\":\"activites-aux-alentours\",\"idx\":5},{\"lat\":43.219127,\"lng\":6.64136,\"name\":\"Randonn\\u00e9es p\\u00e9destres autour de Ramatuelle\",\"type\":\"activites-aux-alentours\",\"idx\":6},{\"lat\":43.2279131,\"lng\":6.6625214,\"name\":\"Plages de Pampelonne et de l\\u2019Escalet\",\"type\":\"activites-aux-alentours\",\"idx\":7},{\"lat\":43.271662,\"lng\":6.55016,\"name\":\"Parc accrobranche \\u00e0 Grimaud\",\"type\":\"activites-aux-alentours\",\"idx\":8}];\n        var categoryColorMap = {\"villes-aux-alentours\":\"#0891b2\",\"activites-aux-alentours\":\"#db2777\"};\n        var categoryLabelMap = {\"villes-aux-alentours\":\"Villes aux alentours\",\"activites-aux-alentours\":\"Activit\\u00e9s aux alentours \"};\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-18564","page","type-page","status-publish","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.4 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Find out more - Camping La Rouillere<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.camping-var-ramatuelle.com\/en\/find-out-more\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Find out more - Camping La Rouillere\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.camping-var-ramatuelle.com\/en\/find-out-more\/\" \/>\n<meta property=\"og:site_name\" content=\"Camping La Rouillere\" \/>\n<meta property=\"article:modified_time\" content=\"2026-02-13T09:25:56+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.camping-var-ramatuelle.com\/en\/find-out-more\/\",\"url\":\"https:\/\/www.camping-var-ramatuelle.com\/en\/find-out-more\/\",\"name\":\"Find out more - Camping La Rouillere\",\"isPartOf\":{\"@id\":\"https:\/\/www.camping-var-ramatuelle.com\/en\/#website\"},\"datePublished\":\"2026-02-13T09:25:52+00:00\",\"dateModified\":\"2026-02-13T09:25:56+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.camping-var-ramatuelle.com\/en\/find-out-more\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.camping-var-ramatuelle.com\/en\/find-out-more\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.camping-var-ramatuelle.com\/en\/find-out-more\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Campsite Ramatuelle\",\"item\":\"https:\/\/www.camping-var-ramatuelle.com\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Find out more\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.camping-var-ramatuelle.com\/en\/#website\",\"url\":\"https:\/\/www.camping-var-ramatuelle.com\/en\/\",\"name\":\"Camping La Rouillere\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.camping-var-ramatuelle.com\/en\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.camping-var-ramatuelle.com\/en\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.camping-var-ramatuelle.com\/en\/#organization\",\"name\":\"Camping La Rouill\u00e8re\",\"url\":\"https:\/\/www.camping-var-ramatuelle.com\/en\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.camping-var-ramatuelle.com\/en\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.camping-var-ramatuelle.com\/wp-content\/uploads\/2022\/01\/logo-carte-rouillere.png\",\"contentUrl\":\"https:\/\/www.camping-var-ramatuelle.com\/wp-content\/uploads\/2022\/01\/logo-carte-rouillere.png\",\"width\":400,\"height\":400,\"caption\":\"Camping La Rouill\u00e8re\"},\"image\":{\"@id\":\"https:\/\/www.camping-var-ramatuelle.com\/en\/#\/schema\/logo\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Find out more - Camping La Rouillere","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.camping-var-ramatuelle.com\/en\/find-out-more\/","og_locale":"en_US","og_type":"article","og_title":"Find out more - Camping La Rouillere","og_url":"https:\/\/www.camping-var-ramatuelle.com\/en\/find-out-more\/","og_site_name":"Camping La Rouillere","article_modified_time":"2026-02-13T09:25:56+00:00","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.camping-var-ramatuelle.com\/en\/find-out-more\/","url":"https:\/\/www.camping-var-ramatuelle.com\/en\/find-out-more\/","name":"Find out more - Camping La Rouillere","isPartOf":{"@id":"https:\/\/www.camping-var-ramatuelle.com\/en\/#website"},"datePublished":"2026-02-13T09:25:52+00:00","dateModified":"2026-02-13T09:25:56+00:00","breadcrumb":{"@id":"https:\/\/www.camping-var-ramatuelle.com\/en\/find-out-more\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.camping-var-ramatuelle.com\/en\/find-out-more\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.camping-var-ramatuelle.com\/en\/find-out-more\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Campsite Ramatuelle","item":"https:\/\/www.camping-var-ramatuelle.com\/en\/"},{"@type":"ListItem","position":2,"name":"Find out more"}]},{"@type":"WebSite","@id":"https:\/\/www.camping-var-ramatuelle.com\/en\/#website","url":"https:\/\/www.camping-var-ramatuelle.com\/en\/","name":"Camping La Rouillere","description":"","publisher":{"@id":"https:\/\/www.camping-var-ramatuelle.com\/en\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.camping-var-ramatuelle.com\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.camping-var-ramatuelle.com\/en\/#organization","name":"Camping La Rouill\u00e8re","url":"https:\/\/www.camping-var-ramatuelle.com\/en\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.camping-var-ramatuelle.com\/en\/#\/schema\/logo\/image\/","url":"https:\/\/www.camping-var-ramatuelle.com\/wp-content\/uploads\/2022\/01\/logo-carte-rouillere.png","contentUrl":"https:\/\/www.camping-var-ramatuelle.com\/wp-content\/uploads\/2022\/01\/logo-carte-rouillere.png","width":400,"height":400,"caption":"Camping La Rouill\u00e8re"},"image":{"@id":"https:\/\/www.camping-var-ramatuelle.com\/en\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/www.camping-var-ramatuelle.com\/en\/wp-json\/wp\/v2\/pages\/18564"}],"collection":[{"href":"https:\/\/www.camping-var-ramatuelle.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.camping-var-ramatuelle.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.camping-var-ramatuelle.com\/en\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.camping-var-ramatuelle.com\/en\/wp-json\/wp\/v2\/comments?post=18564"}],"version-history":[{"count":1,"href":"https:\/\/www.camping-var-ramatuelle.com\/en\/wp-json\/wp\/v2\/pages\/18564\/revisions"}],"predecessor-version":[{"id":18568,"href":"https:\/\/www.camping-var-ramatuelle.com\/en\/wp-json\/wp\/v2\/pages\/18564\/revisions\/18568"}],"wp:attachment":[{"href":"https:\/\/www.camping-var-ramatuelle.com\/en\/wp-json\/wp\/v2\/media?parent=18564"}],"wp:term":[{"taxonomy":"sujet","embeddable":true,"href":"https:\/\/www.camping-var-ramatuelle.com\/en\/wp-json\/wp\/v2\/sujet?post=18564"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}