{"id":3572,"date":"2017-02-27T12:57:16","date_gmt":"2017-02-27T11:57:16","guid":{"rendered":"http:\/\/localhost:8888\/zen-et-bio\/?page_id=3572"},"modified":"2026-09-03T11:43:39","modified_gmt":"2026-09-03T09:43:39","slug":"liste-des-exposants","status":"publish","type":"page","link":"http:\/\/www.salon-zenetbio.com\/nantes\/visiter\/liste-des-exposants\/","title":{"rendered":"Liste des exposants 2026"},"content":{"rendered":"        <style id=\"fms-styles\">\n        \/* \u2500\u2500 Formulaire \u2500\u2500 *\/\n        .fms-filter-form {\n            background: #f3f4f6; border-radius: 12px;\n            padding: 1.25rem 1.5rem; margin-bottom: 2rem;\n            display: flex; flex-direction: column; gap: 1rem;\n        }\n        .fms-filter-row { display: flex; flex-wrap: wrap; gap: 1rem; align-items: flex-end; }\n        .fms-filter-field { display: flex; flex-direction: column; gap: .35rem; flex: 1 1 160px; }\n        .fms-filter-field--wide   { flex: 2 1 260px; }\n        .fms-filter-field--medium { flex: 1 1 180px; }\n        .fms-filter-field label { font-size: .8rem; font-weight: 600; color: #374151; }\n        .fms-filter-field input,\n        .fms-filter-field select {\n            height: 2.5rem; padding: 0 .75rem;\n            border: 1.5px solid #d1d5db; border-radius: 8px;\n            font-size: .875rem; color: #111827; background: #fff;\n            outline: none; transition: border-color .15s;\n            width: 100%; box-sizing: border-box;\n        }\n        .fms-filter-field input:focus,\n        .fms-filter-field select:focus { border-color: var(--fms-primary); }\n        .fms-filter-field--bio { flex: 0 0 auto; justify-content: flex-end; }\n        .fms-label-bio {\n            display: flex; align-items: center; gap: .4rem;\n            font-size: .875rem; font-weight: 600; color: #374151;\n            cursor: pointer; height: 2.5rem; white-space: nowrap;\n        }\n        .fms-label-bio input[type=\"checkbox\"] { width: 1rem; height: 1rem; cursor: pointer; accent-color: var(--fms-primary); }\n        .fms-filter-actions { display: flex; gap: .6rem; align-items: flex-end; flex-shrink: 0; }\n        .fms-btn {\n            height: 2.5rem; padding: 0 1.25rem;\n            border: none; border-radius: 8px;\n            font-size: .875rem; font-weight: 600;\n            cursor: pointer; white-space: nowrap; transition: opacity .15s;\n        }\n        .fms-btn--primary { background: var(--fms-primary); color: var(--fms-btn-text) !important; }\n        .fms-btn--primary:hover { background: var(--fms-primary-hover); color: var(--fms-btn-text) !important; }\n        .fms-btn--primary:active { opacity: .85; }\n        .fms-btn--reset   { background: var(--fms-reset); color: var(--fms-reset-text) !important; }\n        .fms-btn--reset:hover  { background: var(--fms-reset-hover); color: var(--fms-reset-text) !important; }\n        .fms-btn--reset:active { opacity: .85; }\n\n        \/* \u2500\u2500 Grille \u2500\u2500 *\/\n        .fms-grid {\n            display: grid;\n            grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));\n            gap: 1.25rem; min-height: 120px; position: relative;\n        }\n        .fms-grid--loading { pointer-events: none; }\n        .fms-grid--loading::after {\n            content: ''; position: absolute; inset: 0;\n            background: rgba(255,255,255,.6); border-radius: 12px; z-index: 1;\n        }\n        .fms-grid-msg {\n            grid-column: 1 \/ -1; text-align: center;\n            padding: 3rem 1rem; color: #6b7280; font-style: italic;\n        }\n\n        \/* \u2500\u2500 Carte \u2500\u2500 *\/\n        .fms-card {\n            background: #fff; border: 1px solid #e5e7eb;\n            border-radius: 12px; overflow: hidden;\n            display: flex; flex-direction: column;\n            transition: box-shadow .2s, transform .2s;\n        }\n        .fms-card:hover { box-shadow: 0 8px 24px rgba(0,0,0,.1); transform: translateY(-2px); }\n        .fms-card__logo {\n            height: 120px; background: #f9fafb;\n            display: flex; align-items: center; justify-content: center;\n            padding: 1rem; border-bottom: 1px solid #f3f4f6;\n        }\n        .fms-card__logo img { max-height: 90px; max-width: 100%; object-fit: contain; }\n        .fms-card__logo-placeholder {\n            width: 60px; height: 60px; border-radius: 50%;\n            background: var(--fms-accent); color: #fff;\n            font-size: 1.5rem; font-weight: 700;\n            display: flex; align-items: center; justify-content: center;\n        }\n        .fms-card__body { padding: 1rem; display: flex; flex-direction: column; gap: .4rem; flex: 1; }\n        .fms-card__name { font-size: 1rem; font-weight: 700; margin: 0; color: #111827; line-height: 1.3; }\n        .fms-card__stand { font-size: .78rem; font-weight: 600; color: var(--fms-accent); letter-spacing: .03em; text-transform: uppercase; }\n        .fms-card__secteur {\n            display: inline-block; width: fit-content;\n            background: var(--fms-badge-bg); color: var(--fms-badge-text) !important;\n            border-radius: 999px; font-size: .75rem;\n            padding: .2rem .65rem; font-weight: 500;\n        }\n        .fms-card__desc { font-size: .85rem; color: #6b7280; margin: .25rem 0 0; line-height: 1.5; }\n        .fms-lire-plus {\n            background: none !important; border: none !important; padding: 0 !important;\n            font-size: .8rem; color: var(--fms-accent) !important; font-weight: 500;\n            cursor: pointer; margin-top: .15rem; box-shadow: none !important;\n        }\n        .fms-lire-plus:hover,\n        .fms-lire-plus:focus,\n        .fms-lire-plus:active { background: none !important; color: var(--fms-accent) !important; text-decoration: underline; box-shadow: none !important; }\n        .fms-card__footer {\n            margin-top: auto; padding-top: .75rem;\n            border-top: 1px solid #f3f4f6;\n            display: flex; align-items: center; justify-content: space-between;\n            flex-wrap: wrap; gap: .5rem;\n        }\n        .fms-card__ville { font-size: .8rem; color: #6b7280; display: flex; align-items: center; gap: .25rem; }\n        .fms-card__site {\n            font-size: .8rem; color: var(--fms-accent); text-decoration: none;\n            display: flex; align-items: center; gap: .25rem; font-weight: 500;\n        }\n        .fms-card__site:hover { text-decoration: underline; }\n        .fms-count { margin-top: 1.25rem; font-size: .85rem; color: #9ca3af; text-align: right; }\n        .fms-empty { color: #6b7280; font-style: italic; }\n\n        \/* \u2500\u2500 Mise en avant \u2500\u2500 *\/\n        .fms-card--featured .fms-card__logo { background: var(--fms-mea-logo-bg, #f9fafb); }\n        .fms-card--featured .fms-card__body { background: var(--fms-mea-nom-bg, #fff); }\n        .fms-card--featured .fms-card__name { color: var(--fms-mea-nom-texte, #111827); }\n        .fms-card--featured .fms-card__stand { color: var(--fms-mea-accent, var(--fms-accent)); }\n        .fms-card--featured .fms-card__secteur { background: var(--fms-mea-badge-bg, var(--fms-badge-bg)); color: var(--fms-mea-badge-text, var(--fms-badge-text)) !important; }\n        .fms-card--featured .fms-card__site { color: var(--fms-mea-accent, var(--fms-accent)); }\n        .fms-card--featured .fms-lire-plus { color: var(--fms-mea-accent, var(--fms-accent)) !important; }\n        .fms-card--featured .fms-lire-plus:hover,\n        .fms-card--featured .fms-lire-plus:focus,\n        .fms-card--featured .fms-lire-plus:active { color: var(--fms-mea-accent, var(--fms-accent)) !important; }\n        .fms-card--featured .fms-card__desc,\n        .fms-card--featured .fms-card__ville { color: var(--fms-mea-desc-texte, #6b7280); }\n\n        \/* \u2500\u2500 Label BIO \u2500\u2500 *\/\n        .fms-card__logo { position: relative; }\n        .fms-card__bio-label {\n            position: absolute; top: .5rem; left: .5rem;\n            background: #16a34a; color: #fff;\n            font-size: .65rem; font-weight: 700; letter-spacing: .06em;\n            padding: .15rem .45rem; border-radius: 999px;\n            text-transform: uppercase; line-height: 1.4;\n        }\n        <\/style>\n        \n    <div class=\"fms-exposants-wrap\"\n         id=\"fms-1\"\n         style=\"--fms-primary:#be185d;--fms-primary-hover:#9d1249;--fms-accent:#1d4ed8;--fms-reset:#6b7280;--fms-reset-hover:#4b5563;--fms-badge-bg:#eff6ff;--fms-btn-text:#ffffff;--fms-reset-text:#ffffff;--fms-badge-text:#1d4ed8;\">\n\n        <!-- \u2500\u2500 Formulaire de filtre \u2500\u2500 -->\n        <div class=\"fms-filter-form\">\n                        <div class=\"fms-filter-row fms-filter-row--top\">\n                                <div class=\"fms-filter-field fms-filter-field--wide\">\n                    <label>Rechercher<\/label>\n                    <input type=\"text\" class=\"fms-f-search\" placeholder=\"Nom ou description\u2026\">\n                <\/div>\n                                                <div class=\"fms-filter-field fms-filter-field--medium\">\n                    <label>N\u00b0 de stand<\/label>\n                    <input type=\"text\" class=\"fms-f-stand\" placeholder=\"Ex : A12\">\n                <\/div>\n                                                <div class=\"fms-filter-field fms-filter-field--medium\">\n                    <label>Secteur<\/label>\n                    <select class=\"fms-f-secteur\">\n                        <option value=\"\">Tous les secteurs<\/option>\n                                                    <option value=\"Alimentation &amp; Vins Bio\">Alimentation &amp; Vins Bio<\/option>\n                                                    <option value=\"Autre\">Autre<\/option>\n                                                    <option value=\"Beaut\u00e9, bien-\u00eatre, sant\u00e9 &amp; forme\u00a0\">Beaut\u00e9, bien-\u00eatre, sant\u00e9 &amp; forme\u00a0<\/option>\n                                                    <option value=\"D\u00e9veloppement personnel, m\u00e9decines douces, th\u00e9rapeutes, formations &amp; massages\">D\u00e9veloppement personnel, m\u00e9decines douces, th\u00e9rapeutes, formations &amp; massages<\/option>\n                                                    <option value=\"Les P\u2019tits Nouveaux\">Les P\u2019tits Nouveaux<\/option>\n                                                    <option value=\"Mode, artisanat, maison \u00e9cologique, habitat sain, association, tourisme &amp; jardinage\">Mode, artisanat, maison \u00e9cologique, habitat sain, association, tourisme &amp; jardinage<\/option>\n                                            <\/select>\n                <\/div>\n                            <\/div>\n                        <div class=\"fms-filter-row fms-filter-row--bottom\">\n                                                <div class=\"fms-filter-field\">\n                    <label>Ville<\/label>\n                    <select class=\"fms-f-ville\">\n                        <option value=\"\">Toutes les villes<\/option>\n                                                    <option value=\"AIGREFEUILLE-SUR-MAINE\">AIGREFEUILLE-SUR-MAINE<\/option>\n                                                    <option value=\"AMIENS\">AMIENS<\/option>\n                                                    <option value=\"BAVIGNE\">BAVIGNE<\/option>\n                                                    <option value=\"BEAUVOIR SUR MER\">BEAUVOIR SUR MER<\/option>\n                                                    <option value=\"BOUGUENAIS\">BOUGUENAIS<\/option>\n                                                    <option value=\"BOUVERET\">BOUVERET<\/option>\n                                                    <option value=\"BRAS\">BRAS<\/option>\n                                                    <option value=\"BREISACH AM RHEIN\">BREISACH AM RHEIN<\/option>\n                                                    <option value=\"BRETIGNOLLES\">BRETIGNOLLES<\/option>\n                                                    <option value=\"BRUNSTATT DIDENHEIM\">BRUNSTATT DIDENHEIM<\/option>\n                                                    <option value=\"CANDE\">CANDE<\/option>\n                                                    <option value=\"CASTELNAU LE LEZ\">CASTELNAU LE LEZ<\/option>\n                                                    <option value=\"CASTELSARRASIN\">CASTELSARRASIN<\/option>\n                                                    <option value=\"CHAMPTOCEAUX\">CHAMPTOCEAUX<\/option>\n                                                    <option value=\"CHATEAU GONTIER SUR MAYENNE\">CHATEAU GONTIER SUR MAYENNE<\/option>\n                                                    <option value=\"CHAUFFOUR SUR VELL\">CHAUFFOUR SUR VELL<\/option>\n                                                    <option value=\"CHEIX EN RETZ\">CHEIX EN RETZ<\/option>\n                                                    <option value=\"CH\u00caNEHUTTE\">CH\u00caNEHUTTE<\/option>\n                                                    <option value=\"COSSE EN CHAMPAGNE\">COSSE EN CHAMPAGNE<\/option>\n                                                    <option value=\"COUALNGES-L\u00c8S-NEVERS\">COUALNGES-L\u00c8S-NEVERS<\/option>\n                                                    <option value=\"COUTERNON\">COUTERNON<\/option>\n                                                    <option value=\"DAMGAN\">DAMGAN<\/option>\n                                                    <option value=\"ECOMMOY\">ECOMMOY<\/option>\n                                                    <option value=\"ECQUEVILLY\">ECQUEVILLY<\/option>\n                                                    <option value=\"GOUAREC\">GOUAREC<\/option>\n                                                    <option value=\"GRANVILLE\">GRANVILLE<\/option>\n                                                    <option value=\"GUERET\">GUERET<\/option>\n                                                    <option value=\"GUIPAVAS\">GUIPAVAS<\/option>\n                                                    <option value=\"HAMBOURG\">HAMBOURG<\/option>\n                                                    <option value=\"HERIC\">HERIC<\/option>\n                                                    <option value=\"HOUILLES\">HOUILLES<\/option>\n                                                    <option value=\"KELKHEIM\">KELKHEIM<\/option>\n                                                    <option value=\"LA BACHELLERIE\">LA BACHELLERIE<\/option>\n                                                    <option value=\"LA BASTIDE DE BESPLAS\">LA BASTIDE DE BESPLAS<\/option>\n                                                    <option value=\"LA BASTIDE PRADINES\">LA BASTIDE PRADINES<\/option>\n                                                    <option value=\"LA VINEUSE SUR FREGANDE\">LA VINEUSE SUR FREGANDE<\/option>\n                                                    <option value=\"LE BONO\">LE BONO<\/option>\n                                                    <option value=\"LE CHATEAU D\u2019OLONNE\">LE CHATEAU D\u2019OLONNE<\/option>\n                                                    <option value=\"LE LANDREAU\">LE LANDREAU<\/option>\n                                                    <option value=\"LEVALLOIS PERRET\">LEVALLOIS PERRET<\/option>\n                                                    <option value=\"LOCMARIA\">LOCMARIA<\/option>\n                                                    <option value=\"LOCOAL MENDON\">LOCOAL MENDON<\/option>\n                                                    <option value=\"LUCAY LE MALE\">LUCAY LE MALE<\/option>\n                                                    <option value=\"LUCEAU\">LUCEAU<\/option>\n                                                    <option value=\"LYAUD\">LYAUD<\/option>\n                                                    <option value=\"MACHECOUL ST MEME\">MACHECOUL ST MEME<\/option>\n                                                    <option value=\"MAZIERES EN MAUGES\">MAZIERES EN MAUGES<\/option>\n                                                    <option value=\"MONES\">MONES<\/option>\n                                                    <option value=\"MONTBRUN DES CORBIERES\">MONTBRUN DES CORBIERES<\/option>\n                                                    <option value=\"MONTIGNY SUR LOING\">MONTIGNY SUR LOING<\/option>\n                                                    <option value=\"MONTPELLIER\">MONTPELLIER<\/option>\n                                                    <option value=\"MORANGIS\">MORANGIS<\/option>\n                                                    <option value=\"NANTES\">NANTES<\/option>\n                                                    <option value=\"NEVEZ\">NEVEZ<\/option>\n                                                    <option value=\"NOISY-LE-SEC, \u00ceLE-DE-FRANCE\">NOISY-LE-SEC, \u00ceLE-DE-FRANCE<\/option>\n                                                    <option value=\"NOUVOITOU\">NOUVOITOU<\/option>\n                                                    <option value=\"NUEIL SUR LAYON\">NUEIL SUR LAYON<\/option>\n                                                    <option value=\"ORVAULT\">ORVAULT<\/option>\n                                                    <option value=\"OR\u00c9E D\u2019ANJOU\">OR\u00c9E D\u2019ANJOU<\/option>\n                                                    <option value=\"PANNES\">PANNES<\/option>\n                                                    <option value=\"PARIS\">PARIS<\/option>\n                                                    <option value=\"PERIGUEUX\">PERIGUEUX<\/option>\n                                                    <option value=\"PIPRIAC\">PIPRIAC<\/option>\n                                                    <option value=\"PLOEUC DE L&#039;HERMITAGE\">PLOEUC DE L&#039;HERMITAGE<\/option>\n                                                    <option value=\"PLOEUC L&#039;HERMITAGE\">PLOEUC L&#039;HERMITAGE<\/option>\n                                                    <option value=\"PLOUER SUR RANCE\">PLOUER SUR RANCE<\/option>\n                                                    <option value=\"PL\u00c9GUIEN\">PL\u00c9GUIEN<\/option>\n                                                    <option value=\"PORNICHET\">PORNICHET<\/option>\n                                                    <option value=\"QUIMPER\">QUIMPER<\/option>\n                                                    <option value=\"REMINIAC\">REMINIAC<\/option>\n                                                    <option value=\"RENNES CEDEX 9\">RENNES CEDEX 9<\/option>\n                                                    <option value=\"REZ\u00c9\">REZ\u00c9<\/option>\n                                                    <option value=\"ROUANS\">ROUANS<\/option>\n                                                    <option value=\"SAINT AUBIN LES CHATEAUX\">SAINT AUBIN LES CHATEAUX<\/option>\n                                                    <option value=\"SANARY SUR MER\">SANARY SUR MER<\/option>\n                                                    <option value=\"SARZEAU\">SARZEAU<\/option>\n                                                    <option value=\"SAVIGNE L EVEQUE\">SAVIGNE L EVEQUE<\/option>\n                                                    <option value=\"ST HERBLAIN\">ST HERBLAIN<\/option>\n                                                    <option value=\"ST JEAN ET ST PAUL\">ST JEAN ET ST PAUL<\/option>\n                                                    <option value=\"ST MARCEL D ARDECHE\">ST MARCEL D ARDECHE<\/option>\n                                                    <option value=\"ST PIERREVILLE\">ST PIERREVILLE<\/option>\n                                                    <option value=\"ST SYLVESTRE\">ST SYLVESTRE<\/option>\n                                                    <option value=\"STRASBOURG\">STRASBOURG<\/option>\n                                                    <option value=\"THEIX NOYALO\">THEIX NOYALO<\/option>\n                                                    <option value=\"TIGERY\">TIGERY<\/option>\n                                                    <option value=\"TOUQUES\">TOUQUES<\/option>\n                                                    <option value=\"TREDREZ LOCQUEMEAU\">TREDREZ LOCQUEMEAU<\/option>\n                                                    <option value=\"TREGUNC\">TREGUNC<\/option>\n                                                    <option value=\"UHRWILLER\">UHRWILLER<\/option>\n                                                    <option value=\"VOLMUNSTER\">VOLMUNSTER<\/option>\n                                            <\/select>\n                <\/div>\n                                                <div class=\"fms-filter-field\">\n                    <label>R\u00e9gion<\/label>\n                    <select class=\"fms-f-region\">\n                        <option value=\"\">Toutes les r\u00e9gions<\/option>\n                                                    <option value=\"Auvergne-Rh\u00f4ne-Alpes\">Auvergne-Rh\u00f4ne-Alpes<\/option>\n                                                    <option value=\"Bourgogne-Franche-Comt\u00e9\">Bourgogne-Franche-Comt\u00e9<\/option>\n                                                    <option value=\"Bretagne\">Bretagne<\/option>\n                                                    <option value=\"Centre-Val de Loire\">Centre-Val de Loire<\/option>\n                                                    <option value=\"Etranger\">Etranger<\/option>\n                                                    <option value=\"Grand Est\">Grand Est<\/option>\n                                                    <option value=\"Hauts-de-France\">Hauts-de-France<\/option>\n                                                    <option value=\"Normandie\">Normandie<\/option>\n                                                    <option value=\"Nouvelle-Aquitaine\">Nouvelle-Aquitaine<\/option>\n                                                    <option value=\"Occitanie\">Occitanie<\/option>\n                                                    <option value=\"Pays de la Loire\">Pays de la Loire<\/option>\n                                                    <option value=\"Provence-Alpes-C\u00f4te d&#039;Azur\">Provence-Alpes-C\u00f4te d&#039;Azur<\/option>\n                                                    <option value=\"\u00cele-de-France\">\u00cele-de-France<\/option>\n                                            <\/select>\n                <\/div>\n                                                <div class=\"fms-filter-field\">\n                    <label>Pays<\/label>\n                    <select class=\"fms-f-pays\">\n                        <option value=\"\">Tous les pays<\/option>\n                                                    <option value=\"Allemagne\">Allemagne<\/option>\n                                                    <option value=\"FRANCE\">FRANCE<\/option>\n                                                    <option value=\"France\">France<\/option>\n                                                    <option value=\"Luxembourg\">Luxembourg<\/option>\n                                                    <option value=\"Suisse\">Suisse<\/option>\n                                            <\/select>\n                <\/div>\n                                <div class=\"fms-filter-actions\">\n                    <button type=\"button\" class=\"fms-btn fms-btn--primary fms-btn-filter\">Filtrer<\/button>\n                    <button type=\"button\" class=\"fms-btn fms-btn--reset fms-btn-reset\" style=\"display:none\">R\u00e9initialiser<\/button>\n                <\/div>\n            <\/div>\n        <\/div>\n\n        <!-- \u2500\u2500 Grille (peupl\u00e9e via AJAX) \u2500\u2500 -->\n        <div class=\"fms-grid\" aria-live=\"polite\" aria-busy=\"true\">\n            <p class=\"fms-grid-msg\">Chargement\u2026<\/p>\n        <\/div>\n\n        <p class=\"fms-count\"><\/p>\n    <\/div>\n\n    <script>\n    (function() {\n        var wrap    = document.getElementById(\"fms-1\");\n        var grid    = wrap.querySelector('.fms-grid');\n        var count   = wrap.querySelector('.fms-count');\n        var btnReset = wrap.querySelector('.fms-btn-reset');\n\n        var cfg = {\n            ajaxUrl     : \"http:\\\/\\\/www.salon-zenetbio.com\\\/nantes\\\/wp-admin\\\/admin-ajax.php\",\n            nonce       : \"661c992b39\",\n            salon       : \"Zen & Bio Nantes - 2026\",\n            showSearch  : true,\n            showStand   : true,\n            showSecteur : true,\n            showVille   : true,\n            showRegion  : true,\n            showPays    : true,\n            showBio     : false,\n        };\n\n        function field(cls) { return wrap.querySelector(cls); }\n\n        var bioField = wrap.querySelector('.fms-f-bio');\n\n        function hasActiveFilters() {\n            var checks = [];\n            if (cfg.showSearch)  checks.push('.fms-f-search');\n            if (cfg.showStand)   checks.push('.fms-f-stand');\n            if (cfg.showSecteur) checks.push('.fms-f-secteur');\n            if (cfg.showVille)   checks.push('.fms-f-ville');\n            if (cfg.showRegion)  checks.push('.fms-f-region');\n            if (cfg.showPays)    checks.push('.fms-f-pays');\n            var active = checks.some(function(cls) { return field(cls).value !== ''; });\n            return active || (bioField && bioField.checked);\n        }\n\n        function updateResetVisibility() {\n            btnReset.style.display = hasActiveFilters() ? '' : 'none';\n        }\n\n        function bindLirePlus() {\n            grid.querySelectorAll('.fms-lire-plus').forEach(function(btn) {\n                btn.addEventListener('click', function() {\n                    var p     = btn.previousElementSibling;\n                    var court = p.querySelector('.fms-desc-court');\n                    var long  = p.querySelector('.fms-desc-long');\n                    var open  = !long.hidden;\n                    court.hidden = !open;\n                    long.hidden  =  open;\n                    btn.textContent = open ? 'Lire plus' : 'Lire moins';\n                });\n            });\n        }\n\n        var pending = null;\n\n        function fetch_results() {\n            if (pending) { pending.abort(); }\n\n            grid.setAttribute('aria-busy', 'true');\n            grid.classList.add('fms-grid--loading');\n\n            var body = new URLSearchParams({\n                action  : 'fms_filter_exposants',\n                nonce   : cfg.nonce,\n                salon   : cfg.salon,\n                search  : cfg.showSearch  ? field('.fms-f-search').value.trim()  : '',\n                stand   : cfg.showStand   ? field('.fms-f-stand').value.trim()   : '',\n                secteur : cfg.showSecteur ? field('.fms-f-secteur').value        : '',\n                ville   : cfg.showVille   ? field('.fms-f-ville').value          : '',\n                region  : cfg.showRegion  ? field('.fms-f-region').value         : '',\n                pays    : cfg.showPays    ? field('.fms-f-pays').value            : '',\n                bio     : (bioField && bioField.checked) ? '1' : '',\n            });\n\n            var ctrl = new AbortController();\n            pending  = ctrl;\n\n            window.fetch(cfg.ajaxUrl, {\n                method  : 'POST',\n                headers : { 'Content-Type': 'application\/x-www-form-urlencoded' },\n                body    : body.toString(),\n                signal  : ctrl.signal,\n            })\n            .then(function(r) { return r.json(); })\n            .then(function(data) {\n                pending = null;\n                grid.classList.remove('fms-grid--loading');\n                grid.setAttribute('aria-busy', 'false');\n\n                if (!data.success) return;\n\n                grid.innerHTML = data.data.html\n                    || '<p class=\"fms-grid-msg\">Aucun exposant ne correspond \u00e0 ces crit\u00e8res.<\/p>';\n\n                bindLirePlus();\n\n                var n = data.data.count;\n                count.textContent = n + ' exposant' + (n > 1 ? 's' : '');\n\n                \/\/ Scroll vers le haut du bloc si on est en dessous\n                var wrapTop = wrap.getBoundingClientRect().top + window.scrollY;\n                var headerH = document.querySelector('.wybe-header') ? document.querySelector('.wybe-header').offsetHeight : 0;\n                var target  = wrapTop - headerH - 16;\n                if (window.scrollY > target) {\n                    window.scrollTo({ top: target, behavior: 'smooth' });\n                }\n            })\n            .catch(function(err) {\n                if (err.name === 'AbortError') return;\n                grid.classList.remove('fms-grid--loading');\n                grid.setAttribute('aria-busy', 'false');\n                grid.innerHTML = '<p class=\"fms-grid-msg\">Une erreur est survenue, veuillez r\u00e9essayer.<\/p>';\n            });\n        }\n\n        wrap.querySelector('.fms-btn-filter').addEventListener('click', function() {\n            this.blur();\n            fetch_results();\n        });\n\n        btnReset.addEventListener('click', function() {\n            this.blur();\n            if (cfg.showSearch)  field('.fms-f-search').value  = '';\n            if (cfg.showStand)   field('.fms-f-stand').value   = '';\n            if (cfg.showSecteur) field('.fms-f-secteur').value = '';\n            if (cfg.showVille)   field('.fms-f-ville').value   = '';\n            if (cfg.showRegion)  field('.fms-f-region').value  = '';\n            if (cfg.showPays)    field('.fms-f-pays').value    = '';\n            if (bioField) bioField.checked = false;\n            updateResetVisibility();\n            fetch_results();\n        });\n\n        var textFields = [];\n        if (cfg.showSearch) textFields.push('.fms-f-search');\n        if (cfg.showStand)  textFields.push('.fms-f-stand');\n        textFields.forEach(function(cls) {\n            field(cls).addEventListener('keydown', function(e) {\n                if (e.key === 'Enter') fetch_results();\n            });\n            field(cls).addEventListener('input', updateResetVisibility);\n        });\n\n        var selectFields = [];\n        if (cfg.showSecteur) selectFields.push('.fms-f-secteur');\n        if (cfg.showVille)   selectFields.push('.fms-f-ville');\n        if (cfg.showRegion)  selectFields.push('.fms-f-region');\n        if (cfg.showPays)    selectFields.push('.fms-f-pays');\n        selectFields.forEach(function(cls) {\n            field(cls).addEventListener('change', updateResetVisibility);\n        });\n\n        if (bioField) {\n            bioField.addEventListener('change', updateResetVisibility);\n        }\n\n        var espacesMap = {\"guidances\":\"RENDEZ-VOUS DE LA GUIDANCE\",\"ecoles\":\"VILLAGE DES \\u00c9COLES\",\"zenincubateur\":\"ZENINCUBATEUR\",\"massages\":\"MASSAGE\",\"developpement-personnel\":\"D\\u00c9VELOPPEMENT PERSONNEL\"};\n\n        \/\/ Les valeurs remont\u00e9es de FileMaker varient en casse et en accents :\n        \/\/ on compare sur une forme normalis\u00e9e plut\u00f4t qu'\u00e0 l'identique.\n        function normalize(str) {\n            return str.normalize('NFD').replace(\/[\\u0300-\\u036f]\/g, '')\n                      .toUpperCase().replace(\/[^A-Z0-9]+\/g, ' ').trim();\n        }\n\n        function applyUrlFilter() {\n            if (!cfg.showSecteur) return;\n            var slug = new URLSearchParams(window.location.search).get('espace');\n            if (!slug) return;\n\n            var cible = espacesMap[slug.toLowerCase()];\n            if (!cible) return;\n\n            var select = field('.fms-f-secteur');\n            var match  = Array.prototype.filter.call(select.options, function(opt) {\n                return opt.value && normalize(opt.value) === normalize(cible);\n            })[0];\n            if (!match) return;\n\n            select.value = match.value;\n            updateResetVisibility();\n        }\n\n        \/\/ Chargement initial\n        applyUrlFilter();\n        fetch_results();\n    })();\n    <\/script>\n    \n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":6217,"menu_order":6,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_monsterinsights_skip_tracking":false,"footnotes":""},"class_list":["post-3572","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Liste des exposants 2026 - Salon ZEN &amp; BIO Nantes<\/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.salon-zenetbio.com\/nantes\/visiter\/liste-des-exposants\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Liste des exposants 2026 - Salon ZEN &amp; BIO Nantes\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.salon-zenetbio.com\/nantes\/visiter\/liste-des-exposants\/\" \/>\n<meta property=\"og:site_name\" content=\"Salon ZEN &amp; BIO Nantes\" \/>\n<meta property=\"article:modified_time\" content=\"2026-09-03T09:43:39+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.salon-zenetbio.com\\\/nantes\\\/visiter\\\/liste-des-exposants\\\/\",\"url\":\"https:\\\/\\\/www.salon-zenetbio.com\\\/nantes\\\/visiter\\\/liste-des-exposants\\\/\",\"name\":\"Liste des exposants 2026 - Salon ZEN &amp; BIO Nantes\",\"isPartOf\":{\"@id\":\"http:\\\/\\\/www.salon-zenetbio.com\\\/nantes\\\/#website\"},\"datePublished\":\"2017-02-27T11:57:16+00:00\",\"dateModified\":\"2026-09-03T09:43:39+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.salon-zenetbio.com\\\/nantes\\\/visiter\\\/liste-des-exposants\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.salon-zenetbio.com\\\/nantes\\\/visiter\\\/liste-des-exposants\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.salon-zenetbio.com\\\/nantes\\\/visiter\\\/liste-des-exposants\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"http:\\\/\\\/www.salon-zenetbio.com\\\/nantes\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Visiter\",\"item\":\"https:\\\/\\\/www.salon-zenetbio.com\\\/nantes\\\/visiter\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Liste des exposants 2026\"}]},{\"@type\":\"WebSite\",\"@id\":\"http:\\\/\\\/www.salon-zenetbio.com\\\/nantes\\\/#website\",\"url\":\"http:\\\/\\\/www.salon-zenetbio.com\\\/nantes\\\/\",\"name\":\"Salon ZEN &amp; BIO Nantes\",\"description\":\"salon ZEN &amp; BIO Nantes : votre salon bio, bien-\u00eatre et habitat sain\",\"publisher\":{\"@id\":\"http:\\\/\\\/www.salon-zenetbio.com\\\/nantes\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"http:\\\/\\\/www.salon-zenetbio.com\\\/nantes\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"http:\\\/\\\/www.salon-zenetbio.com\\\/nantes\\\/#organization\",\"name\":\"Salon ZEN &amp; BIO Nantes\",\"url\":\"http:\\\/\\\/www.salon-zenetbio.com\\\/nantes\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"http:\\\/\\\/www.salon-zenetbio.com\\\/nantes\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"http:\\\/\\\/www.salon-zenetbio.com\\\/nantes\\\/wp-content\\\/uploads\\\/sites\\\/7\\\/2026\\\/05\\\/cropped-Logo-ZEN-et-BIO-nantes-2026.png\",\"contentUrl\":\"http:\\\/\\\/www.salon-zenetbio.com\\\/nantes\\\/wp-content\\\/uploads\\\/sites\\\/7\\\/2026\\\/05\\\/cropped-Logo-ZEN-et-BIO-nantes-2026.png\",\"width\":921,\"height\":255,\"caption\":\"Salon ZEN &amp; BIO Nantes\"},\"image\":{\"@id\":\"http:\\\/\\\/www.salon-zenetbio.com\\\/nantes\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Liste des exposants 2026 - Salon ZEN &amp; BIO Nantes","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.salon-zenetbio.com\/nantes\/visiter\/liste-des-exposants\/","og_locale":"fr_FR","og_type":"article","og_title":"Liste des exposants 2026 - Salon ZEN &amp; BIO Nantes","og_url":"https:\/\/www.salon-zenetbio.com\/nantes\/visiter\/liste-des-exposants\/","og_site_name":"Salon ZEN &amp; BIO Nantes","article_modified_time":"2026-09-03T09:43:39+00:00","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.salon-zenetbio.com\/nantes\/visiter\/liste-des-exposants\/","url":"https:\/\/www.salon-zenetbio.com\/nantes\/visiter\/liste-des-exposants\/","name":"Liste des exposants 2026 - Salon ZEN &amp; BIO Nantes","isPartOf":{"@id":"http:\/\/www.salon-zenetbio.com\/nantes\/#website"},"datePublished":"2017-02-27T11:57:16+00:00","dateModified":"2026-09-03T09:43:39+00:00","breadcrumb":{"@id":"https:\/\/www.salon-zenetbio.com\/nantes\/visiter\/liste-des-exposants\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.salon-zenetbio.com\/nantes\/visiter\/liste-des-exposants\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.salon-zenetbio.com\/nantes\/visiter\/liste-des-exposants\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"http:\/\/www.salon-zenetbio.com\/nantes\/"},{"@type":"ListItem","position":2,"name":"Visiter","item":"https:\/\/www.salon-zenetbio.com\/nantes\/visiter\/"},{"@type":"ListItem","position":3,"name":"Liste des exposants 2026"}]},{"@type":"WebSite","@id":"http:\/\/www.salon-zenetbio.com\/nantes\/#website","url":"http:\/\/www.salon-zenetbio.com\/nantes\/","name":"Salon ZEN &amp; BIO Nantes","description":"salon ZEN &amp; BIO Nantes : votre salon bio, bien-\u00eatre et habitat sain","publisher":{"@id":"http:\/\/www.salon-zenetbio.com\/nantes\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"http:\/\/www.salon-zenetbio.com\/nantes\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"http:\/\/www.salon-zenetbio.com\/nantes\/#organization","name":"Salon ZEN &amp; BIO Nantes","url":"http:\/\/www.salon-zenetbio.com\/nantes\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"http:\/\/www.salon-zenetbio.com\/nantes\/#\/schema\/logo\/image\/","url":"http:\/\/www.salon-zenetbio.com\/nantes\/wp-content\/uploads\/sites\/7\/2026\/05\/cropped-Logo-ZEN-et-BIO-nantes-2026.png","contentUrl":"http:\/\/www.salon-zenetbio.com\/nantes\/wp-content\/uploads\/sites\/7\/2026\/05\/cropped-Logo-ZEN-et-BIO-nantes-2026.png","width":921,"height":255,"caption":"Salon ZEN &amp; BIO Nantes"},"image":{"@id":"http:\/\/www.salon-zenetbio.com\/nantes\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"http:\/\/www.salon-zenetbio.com\/nantes\/wp-json\/wp\/v2\/pages\/3572","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.salon-zenetbio.com\/nantes\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"http:\/\/www.salon-zenetbio.com\/nantes\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"http:\/\/www.salon-zenetbio.com\/nantes\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.salon-zenetbio.com\/nantes\/wp-json\/wp\/v2\/comments?post=3572"}],"version-history":[{"count":18,"href":"http:\/\/www.salon-zenetbio.com\/nantes\/wp-json\/wp\/v2\/pages\/3572\/revisions"}],"predecessor-version":[{"id":19543,"href":"http:\/\/www.salon-zenetbio.com\/nantes\/wp-json\/wp\/v2\/pages\/3572\/revisions\/19543"}],"up":[{"embeddable":true,"href":"http:\/\/www.salon-zenetbio.com\/nantes\/wp-json\/wp\/v2\/pages\/6217"}],"wp:attachment":[{"href":"http:\/\/www.salon-zenetbio.com\/nantes\/wp-json\/wp\/v2\/media?parent=3572"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}