{"id":18192,"date":"2026-09-16T12:36:26","date_gmt":"2026-09-16T12:36:26","guid":{"rendered":"https:\/\/syndicoach.be\/?page_id=18192"},"modified":"2026-09-24T09:20:37","modified_gmt":"2026-09-24T09:20:37","slug":"approche","status":"publish","type":"page","link":"https:\/\/syndicoach.be\/fr\/aanpak\/","title":{"rendered":""},"content":{"rendered":"<div class=\"wp-block-group is-layout-flow wp-block-group-is-layout-flow\" style=\"margin-top:-85px\">\n<div class=\"wp-block-group is-horizontal is-content-justification-center is-layout-flex wp-container-core-group-is-layout-20019a3f wp-block-group-is-layout-flex\" style=\"margin:var(--wp--preset--spacing--0) 0;padding:var(--wp--preset--spacing--0) 0\">\n<h1 id=\"hoe-wij-het\" class=\"wp-block-heading has-text-align-left alignwide\" style=\"line-height:1.1;gap:var(--wp--preset--spacing--0)\">Hoe wij het<\/h1>\n\n\n<div style=\"background-image:inherit;background-position:40% 59%;background-repeat:no-repeat;background-size:contain\" class=\"wp-block-group is-layout-flow wp-block-group-is-layout-flow has-background lazyload\" data-bg-image=\"url(&#039;https:\/\/syndicoach.be\/wp-content\/uploads\/2026\/09\/blob-orange.png&#039;)\">\n<h1 id=\"anders\" class=\"wp-block-heading has-text-align-left alignwide has-rethink-sans-font-family\" style=\"border-top-left-radius:25px;border-top-right-radius:25px;border-bottom-left-radius:25px;border-bottom-right-radius:25px;padding-top:var(--wp--preset--spacing--xxs);padding-right:var(--wp--preset--spacing--xxs);padding-bottom:var(--wp--preset--spacing--xxs);padding-left:var(--wp--preset--spacing--xxs);font-style:italic;font-weight:700;line-height:1.1;gap:var(--wp--preset--spacing--0)\">anders<\/h1>\n<\/div>\n\n\n<h1 id=\"aanpakken\" class=\"wp-block-heading has-text-align-left alignwide\" style=\"line-height:1.1;gap:var(--wp--preset--spacing--0)\">aanpakken<\/h1>\n<\/div>\n\n\n<p class=\"wp-block-paragraph has-text-align-center has-20-font-size wp-block-paragraph\" style=\"\">Een team van gepassioneerde professionals die je persoonlijk bijstaan in het beheer van je gebouw.<\/p>\n\n\n\n<div class=\"wp-block-buttons is-content-justification-center is-layout-flex wp-container-core-buttons-is-layout-58e49f0f wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button is-style-outline is-style-outline--1\" style=\"border-style:none;border-width:0px\"><button class=\"wp-block-button__link has-neutral-0-color has-custom-0369-a-1-background-color has-text-color has-background has-link-color has-text-align-center has-16-font-size has-custom-font-size wp-element-button mymmo-opent-contactpopup-calendly\" style=\"border-style:none;border-width:0px;line-height:calc(1em - 0px)\" href=\"#\">Plan kennismaking<\/button><\/div>\n<div class=\"mymmo-modal-launch mymmo-modal-launch--stil\" id=\"mymmo-modal-we-nemen-contact-met-je-op-knop\" lang=\"nl\" style=\"--mf-accent:#2563eb;--mf-max-width:720px;--mf-accent:#99f6e4;--mf-accent-text:#0369a1;--mf-accent-ink:#0369a1;--mf-gap:18px;--mf-fig-scale:80%;--mf-fig-x:-7px;--mf-fig-y:-41px;--mf-wm-scale:257%;--mf-wm-x:-314px;--mf-wm-y:141px;--mf-wm-rotate:25deg;--mf-accent-ink:#0369a1\">\n\n    \n    \n                    <!-- Mymmo Forms: dit venster opent met een link naar #mymmo-modal-we-nemen-contact-met-je-op -->\n    \n    <div class=\"mymmo-modal\" id=\"mymmo-modal-we-nemen-contact-met-je-op\" data-mymmo-modal data-mymmo-trigger=\".mymmo-opent-contactpopup-calendly\">\n\n                        <a class=\"mymmo-modal-backdrop\" href=\"#mymmo-modal-we-nemen-contact-met-je-op-knop\" tabindex=\"-1\" aria-hidden=\"true\" data-mymmo-modal-close><\/a>\n        \n        <div class=\"mymmo-modal-panel mymmo-modal-panel--zijkolom mymmo-modal-panel--breed\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"mymmo-modal-we-nemen-contact-met-je-op-titel\">\n\n                        <a class=\"mymmo-modal-close\" href=\"#mymmo-modal-we-nemen-contact-met-je-op-knop\" data-mymmo-modal-close aria-label=\"Sluiten\" title=\"Sluiten\">\n                <svg viewbox=\"0 0 20 20\" width=\"18\" height=\"18\" aria-hidden=\"true\" focusable=\"false\">\n                    <path d=\"M5 5l10 10M15 5L5 15\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"><\/path>\n                <\/svg>\n            <\/a>\n\n                                        <div class=\"mymmo-modal-kop\">\n                                        <h2 class=\"mymmo-modal-title\" id=\"mymmo-modal-we-nemen-contact-met-je-op-titel\">Laat ons kennismaken<\/h2>\n                <\/div>\n            \n                        <div class=\"mymmo-modal-lijf\">\n\n                        <aside class=\"mymmo-modal-aside\">\n\n                                    <p class=\"mymmo-modal-lead\">Wij tonen je met plezier hoe je terug gelukkig wordt van gebouwbeheer<\/p>\n                \n                                                        <div class=\"mymmo-modal-tabs\" role=\"tablist\" data-mymmo-tablist hidden>\n                                                <button type=\"button\" role=\"tab\" class=\"mymmo-modal-tab mymmo-modal-tab--kaal\" id=\"mymmo-modal-we-nemen-contact-met-je-op-tab-extra\" aria-controls=\"mymmo-modal-we-nemen-contact-met-je-op-paneel-extra\" aria-selected=\"false\" tabindex=\"-1\" data-mymmo-tab=\"extra\">\n                            <span class=\"mymmo-modal-tab-icoon\" aria-hidden=\"true\"><svg viewbox=\"0 0 24 24\" width=\"18\" height=\"18\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" focusable=\"false\"><path d=\"M3.5 6.5l1.5 1.5 2.5-2.5M3.5 12l1.5 1.5 2.5-2.5M3.5 17.5l1.5 1.5 2.5-2.5\"><\/path><path d=\"M11.5 6.5h9M11.5 12h9M11.5 17.5h6\"><\/path><\/svg><\/span>\n                            <span class=\"mymmo-modal-tab-tekst\">\n                                <span class=\"mymmo-modal-tab-label\">Bereken je prijsofferte<\/span>\n                                                            <\/span>\n                        <\/button>\n                                                <button type=\"button\" role=\"tab\" class=\"mymmo-modal-tab mymmo-modal-tab--kaal\" id=\"mymmo-modal-we-nemen-contact-met-je-op-tab-form\" aria-controls=\"mymmo-modal-we-nemen-contact-met-je-op-paneel-form\" aria-selected=\"false\" tabindex=\"-1\" data-mymmo-tab=\"form\">\n                            <span class=\"mymmo-modal-tab-icoon\" aria-hidden=\"true\"><svg viewbox=\"0 0 24 24\" width=\"18\" height=\"18\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" focusable=\"false\"><path d=\"M4 5.5h16v11H8l-4 3.5z\"><\/path><path d=\"M8 9.5h8M8 12.5h5\"><\/path><\/svg><\/span>\n                            <span class=\"mymmo-modal-tab-tekst\">\n                                <span class=\"mymmo-modal-tab-label\">Stuur een bericht<\/span>\n                                                            <\/span>\n                        <\/button>\n                                                <button type=\"button\" role=\"tab\" class=\"mymmo-modal-tab mymmo-modal-tab--kaal is-active\" id=\"mymmo-modal-we-nemen-contact-met-je-op-tab-calendly\" aria-controls=\"mymmo-modal-we-nemen-contact-met-je-op-paneel-calendly\" aria-selected=\"true\" tabindex=\"0\" data-mymmo-tab=\"calendly\">\n                            <span class=\"mymmo-modal-tab-icoon\" aria-hidden=\"true\"><svg viewbox=\"0 0 24 24\" width=\"18\" height=\"18\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" focusable=\"false\"><rect x=\"3.5\" y=\"5\" width=\"17\" height=\"15\" rx=\"2.5\"><\/rect><path d=\"M3.5 9.5h17M8 3.5v3M16 3.5v3\"><\/path><\/svg><\/span>\n                            <span class=\"mymmo-modal-tab-tekst\">\n                                <span class=\"mymmo-modal-tab-label\">Plan een gesprek<\/span>\n                                                            <\/span>\n                        <\/button>\n                                            <\/div>\n                \n                                    <ul class=\"mymmo-modal-punten\">\n                                                    <li class=\"mymmo-modal-punt\">\n                                <svg viewbox=\"0 0 20 20\" width=\"16\" height=\"16\" aria-hidden=\"true\" focusable=\"false\">\n                                    <path d=\"M4 10.5l4 4 8-9\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path>\n                                <\/svg>\n                                <span>Meteen een offerte<\/span>\n                            <\/li>\n                                                    <li class=\"mymmo-modal-punt\">\n                                <svg viewbox=\"0 0 20 20\" width=\"16\" height=\"16\" aria-hidden=\"true\" focusable=\"false\">\n                                    <path d=\"M4 10.5l4 4 8-9\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path>\n                                <\/svg>\n                                <span>Syndicoach helder uitgelegd<\/span>\n                            <\/li>\n                                                    <li class=\"mymmo-modal-punt\">\n                                <svg viewbox=\"0 0 20 20\" width=\"16\" height=\"16\" aria-hidden=\"true\" focusable=\"false\">\n                                    <path d=\"M4 10.5l4 4 8-9\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path>\n                                <\/svg>\n                                <span>Jouw gebouw staat centraal<\/span>\n                            <\/li>\n                                            <\/ul>\n                \n                                                        <div class=\"mymmo-modal-figuur\">\n                                                                            <span class=\"mymmo-modal-wm\" data-mymmo-greep=\"watermerk\">\n                                <img class=\"mymmo-modal-watermerk skip-lazy no-lazyload\" src=\"https:\/\/link.openvme.be\/assets\/brand\/clover.svg\" alt=\"\" aria-hidden=\"true\" data-no-lazy=\"1\" data-skip-lazy=\"1\" decoding=\"async\">\n                            <\/span>\n                                                                                                    <span class=\"mymmo-modal-beeld is-actief\" data-mymmo-beeld=\"form\">\n                                                                <span class=\"mymmo-modal-stand\" data-mymmo-greep=\"form\">\n                                    <img class=\"mymmo-modal-tekening skip-lazy no-lazyload\" src=\"https:\/\/link.openvme.be\/assets\/uploads\/persoon-in-zenhouding-aan-computer-blue.svg\" alt=\"\" data-no-lazy=\"1\" data-skip-lazy=\"1\" decoding=\"async\">\n                                <\/span>\n                            <\/span>\n                        \n                                            <\/div>\n                \n            <\/aside>\n            \n            <div class=\"mymmo-modal-main\">\n                                <div class=\"mymmo-modal-body mymmo-modal-body--tabs\" data-mymmo-modal-body>\n\n                                        <section class=\"mymmo-modal-paneel\" id=\"mymmo-modal-we-nemen-contact-met-je-op-paneel-extra\" role=\"tabpanel\" aria-labelledby=\"mymmo-modal-we-nemen-contact-met-je-op-tab-extra\" tabindex=\"0\" data-mymmo-paneel=\"extra\">\n\n                                                    <h3 class=\"mymmo-modal-paneel-titel\">Bereken je prijsofferte<\/h3>\n                        \n                                                    <script>\nwindow.MymmoStappen=window.MymmoStappen||{_rij:[],stap:function(s,f){this._rij.push([s,f]);}};\n<\/script>\n<div class=\"mymmo-stappen\" id=\"mymmo-stappen-mymmo-modal-we-nemen-contact-met-je-op-extra-1\" data-mymmo-stappen data-mymmo-start=\"0\" data-mymmo-slug=\"syndicoach-calulator-offerte\" data-mymmo-teksten='{\"required\":\"{label} is verplicht.\",\"email\":\"{label} is geen geldig e-mailadres.\",\"number\":\"{label} moet een getal zijn.\",\"date\":\"{label} moet een datum zijn (jjjj-mm-dd).\",\"postcode\":\"{label} is geen geldige postcode.\",\"postcode_unknown\":\"We kennen postcode {value} niet. Kijk ze even na.\",\"city_other\":\"Andere plaats\\u2026\",\"unknown_choice\":\"{label}: onbekende keuze \\\"{value}\\\".\",\"minlength\":\"{label} moet minstens {n} tekens bevatten.\",\"maxlength\":\"{label} mag hoogstens {n} tekens bevatten.\",\"min\":\"{label} moet minstens {n} zijn.\",\"max\":\"{label} mag hoogstens {n} zijn.\",\"choose\":\"Maak een keuze\",\"back\":\"Vorige\",\"next\":\"Volgende\",\"step_of\":\"Stap {n} van {total}\",\"submitting\":\"Bezig met versturen\\u2026\",\"busy\":\"We maken je offerte op\",\"busy_offerte\":\"We maken je offerte op\",\"busy_academy\":\"We zetten je cursus klaar\",\"check_fields\":\"Kijk de gemarkeerde velden na.\",\"expired\":\"De pagina was verlopen. Probeer het opnieuw.\",\"stale_page\":\"Deze pagina stond te lang open. Ververs ze en probeer opnieuw.\",\"rejected\":\"De inzending kon niet verwerkt worden.\",\"bot_check\":\"We konden niet nagaan of je geen robot bent. Probeer het opnieuw.\",\"unavailable\":\"Dit formulier is momenteel niet beschikbaar.\",\"send_failed\":\"We konden je bericht niet versturen. Probeer het zo meteen opnieuw.\"}' style=\"--mf-accent:#99f6e4;--mf-accent-text:#0369a1;--mf-accent-ink:#0369a1;--mf-gap:18px;--mf-fig-scale:80%;--mf-fig-x:-7px;--mf-fig-y:-41px;--mf-wm-scale:257%;--mf-wm-x:-314px;--mf-wm-y:141px;--mf-wm-rotate:25deg;--mf-accent-ink:#0369a1\">\n\n    <noscript>\n        <style>\n            #mymmo-stappen-mymmo-modal-we-nemen-contact-met-je-op-extra-1 [data-mymmo-stap] { display: block !important; }\n            #mymmo-stappen-mymmo-modal-we-nemen-contact-met-je-op-extra-1 [data-mymmo-stap].mymmo-stap--html { display: none !important; }\n            #mymmo-stappen-mymmo-modal-we-nemen-contact-met-je-op-extra-1 .mymmo-stappen-teller,\n            #mymmo-stappen-mymmo-modal-we-nemen-contact-met-je-op-extra-1 .mymmo-stap-nav { display: none !important; }\n        <\/style>\n    <\/noscript>\n\n    \n                    <p class=\"mymmo-stappen-teller\" data-mymmo-teller aria-live=\"polite\">\n            Stap 1 van 5        <\/p>\n    \n                        <section class=\"mymmo-stap mymmo-stap--html\" data-mymmo-stap=\"0\" data-mymmo-stap-naam=\"aantal-kavels\" data-mymmo-stap-velden=\"aantal_kavels,commerciele_kavels\" data-mymmo-stap-nav=\"plugin\"><h3 class=\"mymmo-stap-titel\" data-mymmo-kop=\"titel\">Hoe groot is jullie gebouw?<\/h3>\n<div class=\"mymmo-stap-inhoud\" data-mymmo-stap-inhoud>\n<!--\n  STAP - \"Wat is de grootte van het gebouw?\"\n\n  De schuifbalk uit de Syndicoach-calculator, losgemaakt uit dat bestand en\n  klaar om als eerste stap van een mymmo_form te plakken. Levert TWEE waarden:\n\n      aantal_kavels        het getal onder de schuifbalk  (2 ... 60)\n      commerciele_kavels   \"ja\" of \"nee\"                  (het vinkje erboven)\n\n  Zet in de Operations Manager twee VERBORGEN VELDEN met precies die sleutels\n  op het formulier. Bestaat een veld niet, dan blijft de bezoeker gewoon verder\n  kunnen -- de waarde bereikt Odoo dan alleen niet, en dat staat in de console\n  en boven het formulier. Andere sleutels nodig? Pas ze aan op de schuifbalk\n  (data-mymmo-waarde) en op de wikkel (data-sleutel-commercieel); je hoeft\n  nergens in het script te zijn.\n\n  WAT HIER UIT DE CALCULATOR IS OVERGENOMEN\n  -----------------------------------------\n  De tekeningen (vijf niveaus x residentieel\/commercieel, van link.openvme.be),\n  de niveau-indeling, de squash-and-stretch bij een niveauwissel, de plop van\n  het commercieel-vinkje, en de terugval op een lijnicoon als een bestand niet\n  ophaalt. Wat NIET is meegekomen, is het \"podium\" -- de losse, absoluut\n  gepositioneerde laag waarop de calculator het gebouw tussen zeven stappen\n  door laat zweven, plus de zeven onzichtbare pin-ankers voor de ballonnetjes.\n  Dat bestaat alleen omdat daar zeven stappen een tekening delen; hier staat de\n  tekening gewoon in de stap, zoals de calculator dat op smalle schermen zelf\n  ook doet.\n\n  WAT DEZE STAP BEWUST NIET DOET\n  ------------------------------\n  Geen eigen kop, geen eigen wit kaartje, geen eigen Vorige\/Volgende. Dat levert\n  de plugin al: de titel die je bij de stap typt staat erboven, het paneel van\n  de pop-up is het witte vlak, en de knoppenrij hoort bij de reeks. Bracht de\n  stap dat zelf mee, dan stond alles twee keer -- en de tweede kop was niet uit\n  te zetten zonder de HTML te bewerken.\n\n  Een stap gaat dus over de VRAAG en het BEDIENINGSELEMENT. De omlijsting en het\n  opvangen van de antwoorden zijn van de plugin.\n\n  TWEE DINGEN OM TE ZIEN IN DIT BESTAND\n  -------------------------------------\n  1. `data-mymmo-waarde` op de schuifbalk. Dat is wat het getal doorgeeft --\n     daar is geen regel JavaScript voor nodig. Het script hieronder tekent\n     alleen het gebouw. Het vinkje is een <button> en geen invoerveld, dus die\n     ene waarde wordt wel met api.zet() afgeleverd.\n  2. Geen enkele `id=\"\"`. Dezelfde stap kan twee keer op een pagina staan (in\n     de tekst en in een pop-up); met vaste id's zou de tweede de eerste\n     besturen. Alles loopt via querySelector binnen de eigen wikkel.\n\n  Verander je de beginstand (`value` op de schuifbalk), pas dan ook de `src`\n  van de <img> aan op het bijbehorende niveau (2-5 = level1, 6-15 = level2,\n  16-25 = level3, 26-39 = level4, 40+ = level5). Het script corrigeert het\n  meteen, maar zonder die aanpassing zie je bij het laden heel even de\n  verkeerde tekening.\n-->\n\n<link rel=\"preload\" as=\"image\" href=\"https:\/\/link.openvme.be\/assets\/syndicoach-calculator\/stap-1-gebouwgrootte\/app_level1.svg\">\n<link rel=\"preload\" as=\"image\" href=\"https:\/\/link.openvme.be\/assets\/syndicoach-calculator\/stap-1-gebouwgrootte\/app_level2.svg\">\n<link rel=\"preload\" as=\"image\" href=\"https:\/\/link.openvme.be\/assets\/syndicoach-calculator\/stap-1-gebouwgrootte\/app_level3.svg\">\n<link rel=\"preload\" as=\"image\" href=\"https:\/\/link.openvme.be\/assets\/syndicoach-calculator\/stap-1-gebouwgrootte\/app_level4.svg\">\n<link rel=\"preload\" as=\"image\" href=\"https:\/\/link.openvme.be\/assets\/syndicoach-calculator\/stap-1-gebouwgrootte\/app_level5.svg\">\n<link rel=\"preload\" as=\"image\" href=\"https:\/\/link.openvme.be\/assets\/syndicoach-calculator\/stap-1-gebouwgrootte\/app_level1comm.svg\">\n<link rel=\"preload\" as=\"image\" href=\"https:\/\/link.openvme.be\/assets\/syndicoach-calculator\/stap-1-gebouwgrootte\/app_level2comm.svg\">\n<link rel=\"preload\" as=\"image\" href=\"https:\/\/link.openvme.be\/assets\/syndicoach-calculator\/stap-1-gebouwgrootte\/app_level3comm.svg\">\n<link rel=\"preload\" as=\"image\" href=\"https:\/\/link.openvme.be\/assets\/syndicoach-calculator\/stap-1-gebouwgrootte\/app_level4comm.svg\">\n<link rel=\"preload\" as=\"image\" href=\"https:\/\/link.openvme.be\/assets\/syndicoach-calculator\/stap-1-gebouwgrootte\/app_level5comm.svg\">\n\n<style>\n\/* Alles genest onder .sc-stap. Je thema kan hier niets breken, en omgekeerd.\n   In de calculator was dat `#sc-calc`; een id kan hier niet, want dezelfde\n   stap mag twee keer op een pagina staan. *\/\n.sc-stap {\n  \/* De kleuren van de STAP volgen die van het formulier. Ze hadden eigen\n     waarden uit de rekenmodule waar deze stap uit komt, en dan staat de\n     hulpregel van stap 1 in #6b8697 terwijl diezelfde regel bij het formulier\n     #6b7280 is -- net genoeg verschil om als slordig te lezen, en die eerste\n     haalt op wit geen AA (3,83 tegen 4,83).\n     De waarde na de komma is de terugval voor wie deze stap los gebruikt. *\/\n  \/* Het getal en de knop van de schuifbalk moeten GELEZEN worden: de inkt van\n     het merk, niet de felle accentkleur. --mf-accent-ink zet de plugin zelf --\n     de leesbare van de twee knopkleuren uit het thema (bij Syndicoach het\n     donkerblauw #0369a1, niet de mint). Stond hier --mf-accent, dan stond er\n     een getal van 32px in mint op wit. *\/\n  --sc-blue: var(--mf-accent-ink, var(--mf-accent, #0f5c8c));\n  --sc-blue-soft: #e8f2f8;\n  --sc-ink: var(--mf-text, #12384f);\n  --sc-muted: var(--mf-muted, #6b8697);\n  --sc-line: var(--mf-border, #e3ebf0);\n\n  \/* GEEN eigen letterstack. Deze stap komt uit een losstaande rekenmodule en\n     had er een; naast een formulier dat de letter van de site erft, zag je dat\n     meteen (Segoe UI naast Rethink Sans op syndicoach.be). De plugin dwingt\n     `font-family: inherit` nu ook af op de wikkel van een stap, dus dit is\n     dubbelop -- het staat er zodat dit bestand ook klopt als je het elders\n     gebruikt. *\/\n  font-family: inherit;\n  color: var(--sc-ink);\n  line-height: 1.5;\n  -webkit-font-smoothing: antialiased;\n\n  \/* Een kolom die de hoogte van de stap inneemt. De plugin laat de stap het\n     vlak vullen (zie mymmo-forms-steps.css); dit bepaalt wat er met die ruimte\n     gebeurt: de vraag blijft bovenaan bij de titel staan, de tekening en de\n     schuifbalk zakken naar de knoppenrij toe. In een PAGINA is er niets te\n     verdelen en verandert er dus niets. *\/\n  display: flex;\n  flex-direction: column;\n  flex: 1 0 auto;\n}\n.sc-stap *, .sc-stap *::before, .sc-stap *::after { box-sizing: border-box; }\n.sc-stap .sc-svg { display: block; }\n\n\/* De zin onder de titel staat in `.mymmo-stap-tekst`, een klasse van de\n   plugin -- niet in een eigen `.sc-help`. Zo ziet de regel onder de titel van\n   deze stap er hetzelfde uit als die onder de titel van het formulier (de\n   laatste stap), en dat is de hele bedoeling van die klasse. Hier staat dus\n   geen enkele regel voor die tekst. *\/\n\n\/* -- het vinkje \"commerciele kavels\" -------------------------------------- *\/\n.sc-stap .sc-comm-toggle {\n  display: inline-flex;\n  gap: 8px;\n  align-items: center;\n  margin-top: 10px;\n  padding: 0;\n  border: 0;\n  background: none;\n  cursor: pointer;\n  font: inherit;\n  font-size: .82rem;\n  color: var(--sc-muted);\n  text-align: left;\n}\n.sc-stap .sc-comm-toggle .sc-comm-check {\n  width: 16px;\n  height: 16px;\n  flex: 0 0 16px;\n  border-radius: 5px;\n  border: 1.5px solid #cfdde6;\n  display: grid;\n  place-items: center;\n  color: transparent;\n  transition: background .15s, border-color .15s;\n}\n.sc-stap .sc-comm-toggle:hover .sc-comm-check { border-color: #b9d3e2; }\n.sc-stap .sc-comm-toggle.is-on { color: var(--sc-ink); }\n.sc-stap .sc-comm-toggle.is-on .sc-comm-check {\n  background: var(--sc-blue);\n  border-color: var(--sc-blue);\n  color: #fff;\n}\n\n\/* -- de tekening ---------------------------------------------------------- *\/\n\/*\n * DE TEKENING NEEMT DE VRIJE RUIMTE IN.\n *\n * Alle tien de tekeningen (vijf niveaus, met en zonder winkels) hebben hetzelfde\n * canvas van 2048 x 2048. Zolang ze in dezelfde vierkante doos staan, schalen ze\n * dus allemaal met dezelfde factor -- de kleine groeien mee met de grote.\n *\n * Gemeten: de grootste (level5comm) reikt van y=50 tot y=1807, dus 86% van de\n * hoogte, en heeft 241 (11,8%) lege ruimte onder zich. Met object-fit:contain\n * past hij per definitie in de doos, hoe groot die ook wordt.\n *\n * Vroeger zat de doos vast op max 210px breed en clamp(110px, 22vh, 210px) hoog,\n * terwijl er in de pop-up vaak twee keer zoveel ruimte vrij bleef. Nu krijgt het\n * vlak (.sc-bldg) wat er tussen het vinkje en het getal overblijft, met een\n * ondergrens voor een laag venster en een bovengrens voor een heel hoog.\n *\/\n.sc-stap .sc-bldg {\n  position: relative;\n  flex: 1 1 0;\n  \/* Gemeten in de pop-up bij 1280x720: met 24vh als ondergrens scrolde het\n     paneel 27px (de vorige versie deed daar 22px). Met 18vh past de stap ook\n     daar zonder schuifbalk -- de tekening neemt dan precies de ruimte die er is. *\/\n  min-height: clamp(110px, 18vh, 180px);\n  max-height: 400px;\n  margin: 0 0 6px;\n  pointer-events: none;\n}\n.sc-stap .sc-bldg-img {\n  \/* Vierkant en onderaan gecentreerd, zo hoog als het vlak. Het draaipunt van\n     de veer-animaties (--sc-bldg-ox) is een fractie van de breedte van DEZE\n     doos; die klopt alleen omdat de doos het canvas exact volgt. *\/\n  position: absolute;\n  bottom: 0;\n  left: 50%;\n  height: calc(100% - 10px);\n  aspect-ratio: 1 \/ 1;\n  max-width: 100%;\n  \/* -50% centreert; +11.5% van de eigen hoogte schuift de lege strook onder de\n     grondlijn weg (de grootste tekening heeft daar 11,8%, dus er wordt niets\n     afgesneden). Zonder dat zweefde het gebouw boven het getal. `translate` is\n     een aparte eigenschap, dus de `transform` van de animaties blijft werken. *\/\n  translate: -50% 11.5%;\n  transform-origin: bottom center;\n}\n.sc-stap .sc-bldg-photo {\n  position: absolute;\n  inset: 0;\n  width: 100%;\n  height: 100%;\n  display: block;\n  object-fit: contain;\n  object-position: bottom center;\n}\n\/* Haalt een tekening niet op (offline, 404), dan valt ze terug op een klein\n   lijnicoon. Nooit een kapot-plaatje-icoontje. *\/\n.sc-stap .sc-bldg-fallback {\n  width: 100%;\n  height: 100%;\n  display: flex;\n  align-items: flex-end;\n  justify-content: center;\n  padding-bottom: 8%;\n  color: var(--sc-muted);\n}\n.sc-stap .sc-bldg-fallback svg { width: 60%; height: 60%; }\n\n\/* -- de schuifbalk -------------------------------------------------------- *\/\n.sc-stap .sc-slider { padding: 0 2px 2px; text-align: center; }\n\/*\n * HET GETAL STAAT OP DE AS VAN HET GEBOUW, NIET DE GROEP \"8 kavels\".\n *\n * Gemeten in de pop-up: vlak, tekening, schuifbalk en de groep getal+eenheid\n * hadden allemaal hun midden op dezelfde x -- maar het GETAL zelf stond 55px\n * links daarvan (bij \"60 kavels of meer\"), omdat \"kavels\" mee gecentreerd werd.\n * Het oog leest het grote getal als het anker, dus leek de tekening scheef te\n * staan. De tekeningen zelf zijn wel gecentreerd: niveau 1 tot 4 hebben hun\n * midden op x=1023 of 1024 van een canvas van 2048.\n *\n * Drie kolommen: links een lege kolom even breed als rechts, in het midden het\n * getal, rechts de eenheid. Zo valt het midden van het getal exact op het midden\n * van de rij, en groeit een langere eenheid (\"kavels of meer\") alleen naar\n * rechts. Enkel CSS: de markup van de stap blijft dezelfde.\n *\/\n.sc-stap .sc-slider > div:first-child {\n  display: grid;\n  grid-template-columns: 1fr auto 1fr;\n  align-items: baseline;\n}\n.sc-stap .sc-slider .sc-kv { grid-column: 2; }\n.sc-stap .sc-slider .sc-kv-u { grid-column: 3; justify-self: start; text-align: left; }\n.sc-stap .sc-kv {\n  font-size: 2rem;\n  font-weight: 800;\n  color: var(--sc-blue);\n  line-height: 1;\n  letter-spacing: -.03em;\n}\n.sc-stap .sc-kv-u { font-size: 1rem; color: var(--sc-muted); margin-left: 7px; }\n.sc-stap input[type=range] {\n  -webkit-appearance: none;\n  appearance: none;\n  width: 100%;\n  height: 4px;\n  \/* Opvulling en rand expliciet weg. Een blokthema styleert ELK invoerveld op\n     de site en zondert wel checkbox, radio en knoppen uit, maar geen\n     schuifbalk: die krijgt dan de opvulling en de rand van een tekstveld, en\n     met border-box wordt haar hoogte van 4px opgeblazen tot padding + rand --\n     op syndicoach.be 20px, wat leest als een langgerekte schakelaar. De plugin\n     zet dit sinds 1.15.5 ook terug (mymmo-forms-steps.css); hier staat het\n     zodat deze stap ook los van die versie klopt. *\/\n  padding: 0;\n  border: 0;\n  border-radius: 99px;\n  background: #e3ebf0;\n  margin: 12px 0 5px;\n  outline: none;\n}\n.sc-stap input[type=range]::-webkit-slider-thumb {\n  -webkit-appearance: none;\n  width: 16px;\n  height: 16px;\n  border-radius: 50%;\n  background: #fff;\n  border: 2px solid var(--sc-blue);\n  cursor: pointer;\n  box-shadow: 0 1px 4px rgba(0, 0, 0, .16);\n}\n.sc-stap input[type=range]::-moz-range-thumb {\n  width: 16px;\n  height: 16px;\n  border-radius: 50%;\n  background: #fff;\n  border: 2px solid var(--sc-blue);\n  cursor: pointer;\n}\n.sc-stap input[type=range]:focus-visible { box-shadow: 0 0 0 3px rgba(15, 92, 140, .18); }\n.sc-stap .sc-ends {\n  display: flex;\n  justify-content: space-between;\n  font-size: .78rem;\n  color: var(--sc-muted);\n}\n\n\/* -- het gebouw dat een niveau wint of verliest -------------------------------\n   Anticipatie, sprong, uitdempen. De schaal is bewust niet-uniform\n   (squash-and-stretch) en het draaipunt ligt op de grond, zodat het gebouw op\n   zijn fundering blijft staan in plaats van te \"zwellen\". *\/\n.sc-stap .sc-bldg-img.sc-pop { animation: sc-bldg-pop .5s cubic-bezier(.31, 1.7, .6, 1); }\n.sc-stap .sc-bldg-img.sc-grow { animation: sc-bldg-grow .66s cubic-bezier(.3, .86, .32, 1); }\n.sc-stap .sc-bldg-img.sc-shrink { animation: sc-bldg-shrink .6s cubic-bezier(.3, .86, .32, 1); }\n\/* De sprong naar niveau 5 gaat niet de hoogte in maar de breedte: er komt een\n   vleugel naast. Daarom draait die beweging rond de linkeronderhoek van de\n   tekening -- anders zet het gebouw ook naar links uit en dat leest als\n   opblazen, niet als aanbouwen. *\/\n.sc-stap .sc-bldg-img.sc-grow-x {\n  transform-origin: var(--sc-bldg-ox, 23%) 100%;\n  animation: sc-bldg-grow-x .66s cubic-bezier(.3, .86, .32, 1);\n}\n.sc-stap .sc-bldg-img.sc-shrink-x {\n  transform-origin: var(--sc-bldg-ox, 23%) 100%;\n  animation: sc-bldg-shrink-x .6s cubic-bezier(.3, .86, .32, 1);\n}\n.sc-stap .sc-bldg-img.sc-comm {\n  transform-origin: var(--sc-bldg-ox, 23%) 100%;\n  animation: sc-bldg-comm .58s cubic-bezier(.3, .86, .32, 1);\n}\n@keyframes sc-bldg-pop {\n  0% { transform: scale(.88); }\n  40% { transform: scale(1.1); }\n  70% { transform: scale(.97); }\n  100% { transform: scale(1); }\n}\n\/* groeien: door de knieen, dan omhoog schieten, dan uitdempen. De uitslagen\n   zijn bewust klein -- het moet aanvoelen alsof het gebouw er even doorheen\n   veert, niet alsof het van rubber is. *\/\n@keyframes sc-bldg-grow {\n  0% { transform: scale(1, 1); }\n  13% { transform: scale(1.03, .955); }\n  40% { transform: scale(.967, 1.053); }\n  62% { transform: scale(1.017, .98); }\n  80% { transform: scale(.994, 1.008); }\n  92% { transform: scale(1.002, .997); }\n  100% { transform: scale(1, 1); }\n}\n\/* krimpen: eerst even rekken, dan inzakken, dan uitdempen *\/\n@keyframes sc-bldg-shrink {\n  0% { transform: scale(1, 1); }\n  13% { transform: scale(.977, 1.037); }\n  42% { transform: scale(1.036, .95); }\n  64% { transform: scale(.987, 1.018); }\n  82% { transform: scale(1.005, .994); }\n  100% { transform: scale(1, 1); }\n}\n\/* breder worden: eerst samentrekken naar links, dan naar rechts uitschieten *\/\n@keyframes sc-bldg-grow-x {\n  0% { transform: scale(1, 1); }\n  13% { transform: scale(.963, 1.019); }\n  40% { transform: scale(1.046, .975); }\n  62% { transform: scale(.986, 1.011); }\n  80% { transform: scale(1.006, .995); }\n  92% { transform: scale(.998, 1.002); }\n  100% { transform: scale(1, 1); }\n}\n\/* smaller worden: eerst even naar rechts uitrekken, dan terugtrekken *\/\n@keyframes sc-bldg-shrink-x {\n  0% { transform: scale(1, 1); }\n  13% { transform: scale(1.031, .983); }\n  42% { transform: scale(.959, 1.029); }\n  64% { transform: scale(1.012, .992); }\n  82% { transform: scale(.996, 1.003); }\n  100% { transform: scale(1, 1); }\n}\n\/* commerciele kavels aan\/uit: linksonderaan ploppen een winkeldeur en een\n   luifel in de tekening. Het gebouw zet zich eerst schrap, vangt dan de\n   landing op met een korte indeuking, en dempt uit. Kleinere uitslag dan bij\n   een niveauwissel: er verandert een detail, niet het hele gebouw. *\/\n@keyframes sc-bldg-comm {\n  0% { transform: scale(1, 1); }\n  12% { transform: scale(.986, 1.016); }\n  36% { transform: scale(1.03, .964); }\n  58% { transform: scale(.99, 1.013); }\n  78% { transform: scale(1.005, .995); }\n  100% { transform: scale(1, 1); }\n}\n\n\/* Wie beweging heeft uitgezet, krijgt de wissel zonder veren. *\/\n@media (prefers-reduced-motion: reduce) {\n  .sc-stap .sc-bldg-img.sc-pop,\n  .sc-stap .sc-bldg-img.sc-grow,\n  .sc-stap .sc-bldg-img.sc-shrink,\n  .sc-stap .sc-bldg-img.sc-grow-x,\n  .sc-stap .sc-bldg-img.sc-shrink-x,\n  .sc-stap .sc-bldg-img.sc-comm { animation: none; }\n}\n<\/style>\n\n<div class=\"sc-stap\" data-basis=\"https:\/\/link.openvme.be\/assets\/syndicoach-calculator\/stap-1-gebouwgrootte\/\" data-sleutel-commercieel=\"commerciele_kavels\">\n  <!-- Geen kop hier: de titel van de stap staat er al boven, in de stijl van de pop-up. -->\n  <p class=\"mymmo-stap-tekst\">Geef het aantal bewoonbare kavels in. Garages en bergingen hoef je niet mee te tellen.<\/p>\n\n    <button type=\"button\" class=\"sc-comm-toggle\" data-rol=\"commercieel\" aria-pressed=\"false\">\n      <span class=\"sc-comm-check\" aria-hidden=\"true\">\n        <svg class=\"sc-svg\" width=\"10\" height=\"10\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" focusable=\"false\">\n          <path d=\"M20 6 9 17l-5-5\"><\/path>\n        <\/svg>\n      <\/span>\n      <span>Het gebouw heeft commerciele kavels (winkels, kantoren, &#8230; )<\/span>\n    <\/button>\n\n    <div class=\"sc-bldg\">\n      <div class=\"sc-bldg-img\" data-rol=\"bldg\">\n        <!-- Deze src hoort bij de beginstand van de schuifbalk hieronder. -->\n        <img class=\"sc-bldg-photo lazyload\" data-src=\"https:\/\/link.openvme.be\/assets\/syndicoach-calculator\/stap-1-gebouwgrootte\/app_level2.svg\" alt=\"\" decoding=\"sync\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\">\n      <\/div>\n    <\/div>\n\n    <div class=\"sc-slider\">\n      <div>\n        <span class=\"sc-kv\" data-rol=\"kv\">8<\/span><span class=\"sc-kv-u\" data-rol=\"kv-u\">kavels<\/span>\n      <\/div>\n      <input type=\"range\" min=\"2\" max=\"60\" step=\"1\" value=\"8\" data-rol=\"range\" data-mymmo-waarde=\"aantal_kavels\" aria-label=\"Aantal kavels\">\n      <div class=\"sc-ends\">\n<span>2<\/span><span>60+<\/span>\n<\/div>\n    <\/div>\n<\/div>\n\n<script>\nMymmoStappen.stap(document.currentScript, function (api) {\n  var wortel = api.el.querySelector('.sc-stap');\n  if (!wortel) return;\n\n  var BASIS = wortel.getAttribute('data-basis') || '';\n  var SLEUTEL_COMM = wortel.getAttribute('data-sleutel-commercieel') || 'commerciele_kavels';\n\n  \/* Welk niveau hoort bij welk aantal kavels. Vijf tekeningen, twee reeksen\n     (met en zonder commerciele kavels). *\/\n  var NIVEAUS = [\n    { max: 5, level: 1 }, { max: 15, level: 2 }, { max: 25, level: 3 },\n    { max: 39, level: 4 }, { max: Infinity, level: 5 }\n  ];\n  var BESTAND = {\n    1: 'app_level1.svg', 2: 'app_level2.svg', 3: 'app_level3.svg',\n    4: 'app_level4.svg', 5: 'app_level5.svg'\n  };\n  var BESTAND_COMM = {\n    1: 'app_level1comm.svg', 2: 'app_level2comm.svg', 3: 'app_level3comm.svg',\n    4: 'app_level4comm.svg', 5: 'app_level5comm.svg'\n  };\n\n  \/* Waar staat de tekening werkelijk in haar kader? Een gebouw-svg heeft lucht\n     boven en naast zich. Deze fracties zijn eenmalig uit de originele\n     bestanden gemeten en bepalen het draaipunt van de breedtegroei. *\/\n  var LINKS = { 1: .311, 2: .282, 3: .230, 4: .230, 5: .230 };\n\n  \/* Tot en met niveau 4 wordt het gebouw hoger; op niveau 5 komt er een\n     vleugel naast en groeit het in de breedte. De beweging volgt die as,\n     anders klopt de anticipatie niet met wat je ziet gebeuren. Verandert er\n     later iets aan de tekeningen, dan is dit het enige dat je bijstelt. *\/\n  var BREEDTEGROEI = 5;\n  var ANIM = ['sc-pop', 'sc-grow', 'sc-shrink', 'sc-grow-x', 'sc-shrink-x', 'sc-comm'];\n\n  var range = wortel.querySelector('[data-rol=\"range\"]');\n  var kv = wortel.querySelector('[data-rol=\"kv\"]');\n  var kvu = wortel.querySelector('[data-rol=\"kv-u\"]');\n  var bldg = wortel.querySelector('[data-rol=\"bldg\"]');\n  var knop = wortel.querySelector('[data-rol=\"commercieel\"]');\n  if (!range || !bldg) return;\n\n  var maximum = parseInt(range.getAttribute('max'), 10) || 60;\n\n  \/* Komt de bezoeker terug van een MISLUKTE inzending, dan staat zijn antwoord\n     nog in het verborgen veld (de plugin schrijft de POST terug) maar niet op\n     de schuifbalk -- die is statische HTML uit wp-admin en staat dus weer op\n     haar beginstand. Zonder deze regel ziet hij 8 staan terwijl hij 30 koos,\n     en drukt hij op Verzenden met de verkeerde waarde. *\/\n  var bewaard = parseInt(api.lees(range.getAttribute('data-mymmo-waarde')), 10);\n  if (bewaard >= parseInt(range.getAttribute('min'), 10) && bewaard <= maximum) {\n    range.value = String(bewaard);\n  }\n\n  var commercieel = api.lees(SLEUTEL_COMM) === 'ja';\n  var niveau = niveauVan(getal());\n  var swapT = null;\n\n  function getal() { return parseInt(range.value, 10) || 0; }\n\n  function niveauVan(k) {\n    for (var i = 0; i < NIVEAUS.length; i += 1) {\n      if (k <= NIVEAUS[i].max) return NIVEAUS[i].level;\n    }\n    return 5;\n  }\n\n  function bron(level, comm) {\n    var map = comm ? BESTAND_COMM : BESTAND;\n    return BASIS + (map[level] || BESTAND[level]);\n  }\n\n  \/* Vervangt de bron van de bestaande <img> in plaats van het element opnieuw\n     op te bouwen. Dat laatste kost de browser altijd een frame -- ook als de\n     afbeelding al in de cache zit -- en dat zie je als een flits bij elke\n     wissel. Staat de tekening op haar fallback-icoon, dan bouwen we wel\n     opnieuw op. *\/\n  function teken() {\n    var img = bldg.querySelector('.sc-bldg-photo');\n    if (img) {\n      var s = bron(niveau, commercieel);\n      if (img.getAttribute('src') !== s) img.setAttribute('src', s);\n      return;\n    }\n    img = document.createElement('img');\n    img.className = 'sc-bldg-photo';\n    img.alt = '';\n    img.setAttribute('loading', 'eager');\n    img.setAttribute('decoding', 'sync');\n    bewaakLaden(img);\n    bldg.innerHTML = '';\n    bldg.appendChild(img);\n    img.src = bron(niveau, commercieel);\n  }\n\n  \/* Haalt de tekening niet op, dan komt er een lijnicoon in de plaats. Geen\n     globale window-functie en geen inline onerror: dezelfde stap kan twee keer\n     op een pagina staan. *\/\n  function bewaakLaden(img) {\n    img.addEventListener('error', function () {\n      if (!img.parentNode) return;\n      var span = document.createElement('span');\n      span.className = 'sc-bldg-fallback';\n      span.setAttribute('aria-hidden', 'true');\n      span.innerHTML = '<svg class=\"sc-svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" ' +\n        'stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" focusable=\"false\">' +\n        '<rect x=\"4\" y=\"2\" width=\"16\" height=\"20\" rx=\"2\"\/><path d=\"M9 22v-4h6v4\"\/>' +\n        '<path d=\"M8 6h.01M16 6h.01M8 10h.01M16 10h.01M8 14h.01M16 14h.01\"\/>';\n      img.parentNode.replaceChild(span, img);\n    });\n  }\n\n  function draaipunt() {\n    var f = LINKS[niveau];\n    if (f) bldg.style.setProperty('--sc-bldg-ox', (f * 100).toFixed(1) + '%');\n  }\n\n  function beweeg(cls) {\n    draaipunt();\n    for (var i = 0; i < ANIM.length; i += 1) bldg.classList.remove(ANIM[i]);\n    void bldg.offsetWidth;                 \/* forceer reflow zodat de animatie herstart *\/\n    bldg.classList.add(cls);\n    if (bldg._eind) bldg.removeEventListener('animationend', bldg._eind);\n    bldg._eind = function (ev) {\n      if (ev.target !== bldg) return;\n      bldg.classList.remove(cls);\n      bldg.removeEventListener('animationend', bldg._eind);\n      bldg._eind = null;\n    };\n    bldg.addEventListener('animationend', bldg._eind);\n  }\n\n  \/* De tekening wisselt niet op tel nul maar op het dieptepunt van de\n     anticipatie: op dat moment zit het gebouw samengedrukt en valt de wissel\n     nauwelijks op -- wat erna komt leest als een beweging in plaats van als een\n     plaatje dat verspringt. Sleept iemand snel door meerdere niveaus, dan\n     schuift de wissel gewoon mee op. *\/\n  function wisselNa(ms) {\n    clearTimeout(swapT);\n    swapT = setTimeout(function () { swapT = null; teken(); }, ms);\n  }\n\n  function toonGetal() {\n    var k = getal();\n    if (kv) kv.textContent = String(k);\n    if (kvu) kvu.textContent = k >= maximum ? 'kavels of meer' : 'kavels';\n  }\n\n  range.addEventListener('input', function () {\n    toonGetal();\n    var nieuw = niveauVan(getal());\n    if (nieuw === niveau) return;\n    var as = Math.max(niveau, nieuw) >= BREEDTEGROEI ? '-x' : '';\n    var cls = (nieuw < niveau ? 'sc-shrink' : 'sc-grow') + as;\n    niveau = nieuw;\n    beweeg(cls);\n    wisselNa(88);\n  });\n\n  if (knop) {\n    knop.addEventListener('click', function () {\n      commercieel = !commercieel;\n      knop.classList.toggle('is-on', commercieel);\n      knop.setAttribute('aria-pressed', commercieel ? 'true' : 'false');\n      api.zet(SLEUTEL_COMM, commercieel ? 'ja' : 'nee');\n      beweeg('sc-comm');\n      wisselNa(72);   \/* net na het schrap zetten, zodat de landing de plop opvangt *\/\n    });\n  }\n\n  \/* Beginstand. Het getal komt al mee via data-mymmo-waarde; het vinkje niet,\n     dus dat zetten we hier expliciet -- anders staat er in Odoo niets in plaats\n     van \"nee\". *\/\n  var eerste = bldg.querySelector('.sc-bldg-photo');\n  if (eerste) bewaakLaden(eerste);\n  if (knop) {\n    knop.classList.toggle('is-on', commercieel);\n    knop.setAttribute('aria-pressed', commercieel ? 'true' : 'false');\n  }\n  api.zet(SLEUTEL_COMM, commercieel ? 'ja' : 'nee');\n  toonGetal();\n  draaipunt();\n  teken();\n\n  \/* Komt de stap opnieuw in beeld (terug vanuit het formulier), dan staan de\n     waarden er nog: de schuifbalk houdt zijn stand en de tekening klopt al.\n     Een plop maakt zichtbaar dat je terug bent. *\/\n  api.bij('tonen', function () { beweeg('sc-pop'); });\n});\n<\/script>\n<\/div>\n<div class=\"mymmo-stap-nav\"><button type=\"button\" class=\"mymmo-stap-knop mymmo-stap-knop--verder\" data-mymmo-volgende>Volgende<\/button><\/div><\/section>                                <section class=\"mymmo-stap mymmo-stap--html\" data-mymmo-stap=\"1\" data-mymmo-stap-naam=\"gebouwkenmerken\" data-mymmo-stap-velden=\"\" data-mymmo-stap-nav=\"plugin\" hidden><h3 class=\"mymmo-stap-titel mymmo-stap-titel--met-tekst\" data-mymmo-kop=\"titel\">Welke gemeenschappelijke voorzieningen zijn er aanwezig in jullie gebouw?<\/h3>\n<p class=\"mymmo-stap-tekst\" data-mymmo-kop=\"sub\">Duid aan wat van toepassing is.<\/p>\n<div class=\"mymmo-stap-inhoud\" data-mymmo-stap-inhoud>\n<!--\n  STAP - \"Welke voorzieningen zijn er aanwezig in de gemeenschap?\"\n\n  Meerkeuze met de tekeningen uit brand\/thingies. Levert EEN waarde af:\n\n      gebouw_kenmerken     komma-gescheiden, bv. \"lift,garages,Zwembad\"\n\n  De lijst is in 1.17.15 ingekort tot de VOORZIENINGEN die er zijn -- geen\n  problemen meer. Waarom iemand met ons praat, vraagt de stap erna\n  (waarom-syndicoach). Vijf waarden zijn daarbij weggevallen:\n  verouderde_installaties, moeilijke_sfeer, ontbrekende_verzekeringen,\n  geen_reserverekening en sleutels_badges. Ze staan nog in oude inzendingen,\n  dus hergebruik die namen nooit voor iets anders. `water_verwarming` is nieuw\n  (in 1.17.15 heette die waarde nog `gemeenschappelijke_verwarming`, hernoemd\n  in 1.17.17 omdat dat label niet netjes afbrak onder een kei -- staan er al\n  inzendingen met de oude naam, zet ze dan terug); `garages` bleef als waarde\n  staan en kreeg alleen een breder label.\n\n  Zet in de Operations Manager een VERBORGEN VELD met die sleutel op het\n  formulier. Laat \"Levert deze sleutels\" bij de stap LEEG: niets aanduiden is een\n  geldig antwoord, en anders blijft \"Volgende\" uit.\n\n  DE LIJST AANVULLEN\n  ------------------\n  Een kei is gewoon een knop in de HTML hieronder. Een regel kopieren en drie\n  dingen aanpassen:\n\n      <button type=\"button\" class=\"mf-kei\" data-waarde=\"fietsenstalling\" aria-pressed=\"false\">\n        <span class=\"mf-blob\"><img fetchpriority=\"high\" decoding=\"async\" class=\"skip-lazy no-lazyload\" data-no-lazy=\"1\" data-skip-lazy=\"1\"\n          src=\"...\/thingies_fietsenstalling.svg\" alt=\"\" width=\"400\" height=\"400\" loading=\"eager\"><\/span>\n        <span class=\"mf-kei-label\">Fietsenstalling<\/span>\n      <\/button>\n\n  `data-waarde` belandt in Odoo en ligt VAST zodra er inzendingen zijn. Het label\n  mag altijd wijzigen -- ook rechtstreeks in het voorbeeld van de bouwer, want\n  het is echte tekst in de HTML.\n\n  WAAROM DE KEIEN IN DE HTML STAAN EN NIET IN HET SCRIPT\n  -----------------------------------------------------\n  In een eerdere versie bouwde het script elke kei met innerHTML-strings als\n  '<span>' + ... + '<\/span>'. Op syndicoach.be kwamen alle sluit-tags UIT die\n  strings niet aan -- ze stonden er al zo in de ruwe HTML van de server -- waardoor\n  alles in elkaar nestte en elk label onzichtbaar in het vinkje belandde. Waar dat\n  gebeurt (een filter of beveiligingsplugin in WordPress) is van hieruit niet te\n  zien; de markup buiten het script kwam wel ongeschonden door.\n  Een versie later bleek het erger: ook `&&` werd `&#038;&#038;` en elke letter met\n  een accent een hex-entiteit, waarna het script niet meer parste en geen kei\n  reageerde. Alleen deze stap werd geraakt -- de enige met `loading=\"lazy\"`-\n  afbeeldingen, naast een lazyload-plugin op de site die ze herschreef. Daarom:\n  - het script bevat UITSLUITEND ASCII, en geen en-teken, kleiner- of groter-dan\n    en geen sluit-tag (zie de uitleg bovenaan in het script);\n  - de afbeeldingen laden meteen, met de gangbare vlaggen om lazyload-plugins\n    over te slaan (`skip-lazy`, `no-lazyload`, `data-no-lazy`, `data-skip-lazy`).\n\n  Geen eigen kop, kaartje, opvulling of lettertype: dat levert de plugin.\n-->\n\n<style>\n\/* Alles genest onder .mf-kenmerken. Geen id's: dezelfde stap mag twee keer op\n   een pagina staan. *\/\n.mf-kenmerken {\n  --k-accent: var(--mf-accent, #99f6e4);\n  --k-ink: var(--mf-text, #1f2430);\n  \/* De LEESBARE merkkleur (bij Syndicoach donkerblauw #0369a1). Voor het\n     vinkje, de rand van een gekozen kei en het label ervan. Zet de plugin zelf. *\/\n  --k-inkt: var(--mf-accent-ink, var(--mf-text, #0369a1));\n  --k-muted: var(--mf-muted, #6b7280);\n  --k-lijn: var(--mf-border, #d7dbe2);\n  --k-vlak: var(--mf-field-bg, #ffffff);\n\n  color: var(--k-ink);\n  line-height: 1.5;\n  flex: 1 0 auto;\n  display: flex;\n  flex-direction: column;\n}\n.mf-kenmerken *, .mf-kenmerken *::before, .mf-kenmerken *::after { box-sizing: border-box; }\n\n\/* De wolk staat VERTICAAL GECENTREERD in de ruimte tussen de uitleg en de\n   knoppen: auto boven en onder. Zakt er niets te verdelen, dan worden allebei 0. *\/\n.mf-kenmerken .mf-veld { margin-block: auto; }\n\n\/* De rijen laten tussen elkaar ruimte voor een label van twee regels: het label\n   hangt ONDER de kei en neemt zelf geen plaats in, zodat een label dat\n   verschijnt de wolk niet doet verspringen. *\/\n.mf-kenmerken .mf-wolk {\n  display: flex;\n  flex-wrap: wrap;\n  justify-content: center;\n  align-items: center;\n  gap: 52px 8px;\n  padding: 10px 0 48px;\n}\n\n.mf-kenmerken .mf-kei {\n  position: relative;\n  width: 104px;\n  height: 96px;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  margin: 0;\n  padding: 0;\n  border: 0;\n  background: none;\n  font: inherit;\n  color: var(--k-ink);\n  cursor: pointer;\n}\n.mf-kenmerken .mf-kei:focus-visible { outline: none; }\n\n\/* De kei. Vier organische vormen die om de beurt terugkomen, elk een tikje\n   gekanteld. `rotate`, `scale` en `translate` zijn drie aparte eigenschappen:\n   zo kan de kei tegelijk scheef staan, zweven en groeien zonder dat de ene\n   beweging de andere overschrijft. *\/\n.mf-kenmerken .mf-blob {\n  position: relative;\n  width: 92px;\n  height: 92px;\n  display: grid;\n  place-items: center;\n  background: var(--k-vlak);\n  border: 1.5px solid var(--k-lijn);\n  border-radius: 63% 37% 52% 48% \/ 42% 57% 43% 58%;\n  rotate: -3deg;\n  \/* Groeien MET anticipatie: de negatieve waarde laat de kei eerst een tikje\n     inzakken, de waarde boven 1 laat hem voorbij zijn eindmaat schieten en\n     terugveren. Ease in en uit zit in de curve zelf. *\/\n  transition:\n    scale .46s cubic-bezier(.36, -0.5, .28, 1.5),\n    background-color .22s ease,\n    border-color .22s ease;\n  animation: mf-zweef 6.4s ease-in-out infinite;\n}\n.mf-kenmerken .mf-kei:nth-child(4n+2) .mf-blob {\n  border-radius: 38% 62% 67% 33% \/ 58% 36% 64% 42%;\n  rotate: 2.5deg;\n  animation-delay: -1.6s;\n}\n.mf-kenmerken .mf-kei:nth-child(4n+3) .mf-blob {\n  border-radius: 56% 44% 31% 69% \/ 37% 64% 36% 63%;\n  rotate: -1.5deg;\n  animation-delay: -3.2s;\n}\n.mf-kenmerken .mf-kei:nth-child(4n) .mf-blob {\n  border-radius: 33% 67% 59% 41% \/ 64% 39% 61% 36%;\n  rotate: 3deg;\n  animation-delay: -4.6s;\n}\n\n\/* Zweven rond het MIDDEN (-2px tot +2px), niet van 0 naar boven: anders ligt het\n   gemiddelde van elke kei hoger dan zijn plek en staat een rij niet meer recht. *\/\n@keyframes mf-zweef {\n  0%, 100% { translate: 0 -2px; }\n  50%      { translate: 0 2px; }\n}\n\n.mf-kenmerken .mf-blob img {\n  display: block;\n  width: 78px;\n  height: 78px;\n  object-fit: contain;\n  pointer-events: none;\n}\n\n\/* Groter bij aanwijzen en bij een toetsenbordfocus, en GROOT BLIJVEN als hij\n   gekozen is. *\/\n.mf-kenmerken .mf-kei:hover .mf-blob,\n.mf-kenmerken .mf-kei:focus-visible .mf-blob,\n.mf-kenmerken .mf-kei[aria-pressed=\"true\"] .mf-blob {\n  scale: 1.18;\n}\n.mf-kenmerken .mf-kei:hover .mf-blob,\n.mf-kenmerken .mf-kei:focus-visible .mf-blob {\n  border-color: color-mix(in srgb, var(--k-inkt) 40%, var(--k-lijn));\n}\n\n\/* Gekozen: een ZACHTE mint en een rand in de leesbare merkkleur. Geen vol mint\n   vlak -- de tekeningen zijn zelf in mint en donkerblauw getekend, en op een\n   vol mint vlak verdwijnt de helft van de tekening. *\/\n.mf-kenmerken .mf-kei[aria-pressed=\"true\"] .mf-blob {\n  background: color-mix(in srgb, var(--k-accent) 30%, var(--k-vlak));\n  border: 2px solid var(--k-inkt);\n  animation-play-state: paused;\n}\n\n\/* Het vinkje. Met CSS getekend (twee randen van een gedraaid vlakje), dus geen\n   tekening en geen markup nodig. Het hangt IN de kei en groeit dus mee. *\/\n.mf-kenmerken .mf-blob::after {\n  content: \"\";\n  position: absolute;\n  top: -5px;\n  right: -5px;\n  width: 22px;\n  height: 22px;\n  border-radius: 999px;\n  background: var(--k-inkt);\n  opacity: 0;\n  scale: .4;\n  transition: opacity .18s ease, scale .32s cubic-bezier(.34, 1.56, .64, 1);\n}\n.mf-kenmerken .mf-blob::before {\n  content: \"\";\n  position: absolute;\n  z-index: 1;\n  top: 0;\n  right: 2px;\n  width: 6px;\n  height: 11px;\n  border: solid #fff;\n  border-width: 0 2px 2px 0;\n  rotate: 45deg;\n  opacity: 0;\n  transition: opacity .18s ease;\n}\n.mf-kenmerken .mf-kei[aria-pressed=\"true\"] .mf-blob::after { opacity: 1; scale: 1; }\n.mf-kenmerken .mf-kei[aria-pressed=\"true\"] .mf-blob::before { opacity: 1; }\n\n\/* Het label hangt onder de kei en verschijnt bij aanwijzen, bij focus, en\n   BLIJFT staan bij een gekozen kei. Een expliciete kleur: het erft niet van de\n   knop, want een thema zet soms een kleur op elke <button>. *\/\n.mf-kenmerken .mf-kei-label {\n  position: absolute;\n  top: calc(100% + 10px);\n  left: 50%;\n  \/* Breed genoeg voor het langste woord dat we hebben (\"fietsenstalling\"), en\n     smal genoeg dat een label van twee woorden op twee regels valt (\"Meerdere\"\n     \/ \"ingangen\") -- dan hebben keien naast elkaar even hoge labels. `balance`\n     verdeelt de regels gelijk; `break-word` is enkel een vangnet voor een label\n     dat iemand later langer maakt. Een label dat breder is dan een kei plus de\n     kolomruimte eromheen raakt dat van zijn buur: hier 102 tegen 104 + 8, dus\n     dat zit goed. Dit ging mis met \"Gemeenschappelijke verwarming\" -- dat ene\n     woord was breder dan de kei zelf, en de oplossing is een korter label, niet\n     een breder vak. *\/\n  width: 102px;\n  text-wrap: balance;\n  overflow-wrap: break-word;\n  translate: -50% 6px;\n  font-size: .78rem;\n  line-height: 1.25;\n  text-align: center;\n  color: var(--k-ink);\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity .22s ease, translate .38s cubic-bezier(.34, -0.3, .28, 1.35);\n}\n.mf-kenmerken .mf-kei:hover .mf-kei-label,\n.mf-kenmerken .mf-kei:focus-visible .mf-kei-label,\n.mf-kenmerken .mf-kei[aria-pressed=\"true\"] .mf-kei-label {\n  opacity: 1;\n  translate: -50% 0;\n}\n.mf-kenmerken .mf-kei[aria-pressed=\"true\"] .mf-kei-label {\n  font-weight: 600;\n  color: var(--k-inkt);\n}\n\n\/* Op een scherm zonder aanwijzer (telefoon, tablet) bestaat \"hover\" niet. Zonder\n   deze regel zie je daar een wolk tekeningen zonder &#xE9;&#xE9;n woord uitleg. *\/\n@media (hover: none) {\n  .mf-kenmerken .mf-kei-label { opacity: 1; translate: -50% 0; }\n}\n\n\/* Laadt een tekening niet, dan komt het label IN de kei. Nooit een\n   kapot-plaatje-icoontje. *\/\n.mf-kenmerken .mf-kei--zonder-beeld .mf-blob img { display: none; }\n\n\/* &#x2500;&#x2500; Zelf aanvullen &#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500; *\/\n\n\/* De \"+\": twee streepjes met CSS, zelfde reden als het vinkje. *\/\n.mf-kenmerken .mf-kei--extra .mf-blob {\n  border-style: dashed;\n  background: transparent;\n  animation: none;\n}\n.mf-kenmerken .mf-plus {\n  position: relative;\n  width: 22px;\n  height: 22px;\n}\n.mf-kenmerken .mf-plus::before,\n.mf-kenmerken .mf-plus::after {\n  content: \"\";\n  position: absolute;\n  left: 50%;\n  top: 50%;\n  width: 22px;\n  height: 2px;\n  border-radius: 2px;\n  background: var(--k-muted);\n  translate: -50% -50%;\n}\n.mf-kenmerken .mf-plus::after { rotate: 90deg; }\n\n\/* Wat de bezoeker zelf typte heeft geen tekening: de tekst staat dan in de kei.\n   Zulke keien zijn altijd gekozen -- uitzetten haalt ze weg. *\/\n.mf-kenmerken .mf-eigen-tekst {\n  display: -webkit-box;\n  -webkit-line-clamp: 3;\n  -webkit-box-orient: vertical;\n  overflow: hidden;\n  padding: 0 8px;\n  font-size: .7rem;\n  font-weight: 600;\n  line-height: 1.15;\n  text-align: center;\n  color: var(--k-inkt);\n}\n\n.mf-kenmerken .mf-invoer {\n  display: none;\n  gap: 8px;\n  justify-content: center;\n  margin-top: 4px;\n}\n.mf-kenmerken .mf-invoer.is-open { display: flex; }\n.mf-kenmerken .mf-invoer input {\n  width: min(280px, 100%);\n  height: auto;\n  margin: 0;\n  padding: 9px 12px;\n  font: inherit;\n  font-size: .9rem;\n  color: var(--k-ink);\n  background: var(--k-vlak);\n  border: 1.5px solid var(--k-lijn);\n  border-radius: 10px;\n}\n.mf-kenmerken .mf-invoer input:focus { outline: none; border-color: var(--k-inkt); }\n.mf-kenmerken .mf-invoer button {\n  height: auto;\n  margin: 0;\n  padding: 9px 16px;\n  font: inherit;\n  font-size: .9rem;\n  font-weight: 600;\n  color: var(--k-ink);\n  background: var(--k-accent);\n  border: 0;\n  border-radius: 10px;\n  cursor: pointer;\n}\n\n.mf-kenmerken .mf-plop { animation: mf-plop .42s cubic-bezier(.31, 1.7, .6, 1); }\n@keyframes mf-plop {\n  0%   { translate: 0 0; }\n  35%  { translate: 0 -6px; }\n  100% { translate: 0 0; }\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .mf-kenmerken .mf-blob,\n  .mf-kenmerken .mf-plop { animation: none; }\n  .mf-kenmerken .mf-blob,\n  .mf-kenmerken .mf-kei-label { transition: none; }\n}\n\n@media (max-width: 420px) {\n  .mf-kenmerken .mf-wolk { gap: 48px 6px; }\n  .mf-kenmerken .mf-kei { width: 88px; height: 80px; }\n  .mf-kenmerken .mf-kei-label { width: 92px; font-size: .7rem; }\n  .mf-kenmerken .mf-blob { width: 78px; height: 78px; }\n  .mf-kenmerken .mf-blob img { width: 66px; height: 66px; }\n}\n<\/style>\n\n<div class=\"mf-kenmerken\" data-sleutel=\"gebouw_kenmerken\">\n  <div class=\"mf-veld\">\n    <div class=\"mf-wolk\" data-rol=\"wolk\" role=\"group\" aria-label=\"Voorzieningen in het gebouw\">\n\n      <button type=\"button\" class=\"mf-kei\" data-waarde=\"lift\" aria-pressed=\"false\">\n        <span class=\"mf-blob\"><img class=\"skip-lazy no-lazyload\" data-no-lazy=\"1\" data-skip-lazy=\"1\" src=\"https:\/\/link.openvme.be\/assets\/brand\/thingies\/thingies_lift.svg\" alt=\"\" width=\"400\" height=\"400\" loading=\"eager\" decoding=\"async\"><\/span>\n        <span class=\"mf-kei-label\">Lift<\/span>\n      <\/button>\n\n      <button type=\"button\" class=\"mf-kei\" data-waarde=\"water_verwarming\" aria-pressed=\"false\">\n        <span class=\"mf-blob\"><img class=\"skip-lazy no-lazyload\" data-no-lazy=\"1\" data-skip-lazy=\"1\" src=\"https:\/\/link.openvme.be\/assets\/brand\/thingies\/thingies_verwarming.svg\" alt=\"\" width=\"400\" height=\"400\" loading=\"eager\" decoding=\"async\"><\/span>\n        <span class=\"mf-kei-label\">Water en verwarming<\/span>\n      <\/button>\n\n      <button type=\"button\" class=\"mf-kei\" data-waarde=\"zonnepanelen\" aria-pressed=\"false\">\n        <span class=\"mf-blob\"><img class=\"skip-lazy no-lazyload\" data-no-lazy=\"1\" data-skip-lazy=\"1\" src=\"https:\/\/link.openvme.be\/assets\/brand\/thingies\/thingies_zonnepaneel.svg\" alt=\"\" width=\"400\" height=\"400\" loading=\"eager\" decoding=\"async\"><\/span>\n        <span class=\"mf-kei-label\">Zonnepanelen<\/span>\n      <\/button>\n\n      <button type=\"button\" class=\"mf-kei\" data-waarde=\"laadpalen\" aria-pressed=\"false\">\n        <span class=\"mf-blob\"><img class=\"skip-lazy no-lazyload\" data-no-lazy=\"1\" data-skip-lazy=\"1\" src=\"https:\/\/link.openvme.be\/assets\/brand\/thingies\/thingies_laadpaal.svg\" alt=\"\" width=\"400\" height=\"400\" loading=\"eager\" decoding=\"async\"><\/span>\n        <span class=\"mf-kei-label\">Laadpalen<\/span>\n      <\/button>\n\n      <button type=\"button\" class=\"mf-kei\" data-waarde=\"onderhoud_tuin\" aria-pressed=\"false\">\n        <span class=\"mf-blob\"><img class=\"skip-lazy no-lazyload\" data-no-lazy=\"1\" data-skip-lazy=\"1\" src=\"https:\/\/link.openvme.be\/assets\/brand\/thingies\/thingies_tuin.svg\" alt=\"\" width=\"400\" height=\"400\" loading=\"eager\" decoding=\"async\"><\/span>\n        <span class=\"mf-kei-label\">Tuin met onderhoud<\/span>\n      <\/button>\n\n      <button type=\"button\" class=\"mf-kei\" data-waarde=\"garages\" aria-pressed=\"false\">\n        <span class=\"mf-blob\"><img class=\"skip-lazy no-lazyload\" data-no-lazy=\"1\" data-skip-lazy=\"1\" src=\"https:\/\/link.openvme.be\/assets\/brand\/thingies\/thingies_fietsenstalling.svg\" alt=\"\" width=\"400\" height=\"400\" loading=\"eager\" decoding=\"async\"><\/span>\n        <span class=\"mf-kei-label\">Garages en fietsenstalling<\/span>\n      <\/button>\n\n      <button type=\"button\" class=\"mf-kei\" data-waarde=\"afvallokaal\" aria-pressed=\"false\">\n        <span class=\"mf-blob\"><img class=\"skip-lazy no-lazyload\" data-no-lazy=\"1\" data-skip-lazy=\"1\" src=\"https:\/\/link.openvme.be\/assets\/brand\/thingies\/thingies_vuilniishok.svg\" alt=\"\" width=\"400\" height=\"400\" loading=\"eager\" decoding=\"async\"><\/span>\n        <span class=\"mf-kei-label\">Afvallokaal<\/span>\n      <\/button>\n\n      <button type=\"button\" class=\"mf-kei\" data-waarde=\"meerdere_ingangen\" aria-pressed=\"false\">\n        <span class=\"mf-blob\"><img class=\"skip-lazy no-lazyload\" data-no-lazy=\"1\" data-skip-lazy=\"1\" src=\"https:\/\/link.openvme.be\/assets\/brand\/thingies\/thingies_deur.svg\" alt=\"\" width=\"400\" height=\"400\" loading=\"eager\" decoding=\"async\"><\/span>\n        <span class=\"mf-kei-label\">Meerdere ingangen<\/span>\n      <\/button>\n\n      <button type=\"button\" class=\"mf-kei mf-kei--extra\" data-rol=\"extra\" aria-expanded=\"false\">\n        <span class=\"mf-blob\"><span class=\"mf-plus\" aria-hidden=\"true\"><\/span><\/span>\n        <span class=\"mf-kei-label\">Iets anders<\/span>\n      <\/button>\n\n    <\/div>\n\n    <div class=\"mf-invoer\" data-rol=\"invoer\">\n      <input type=\"text\" data-rol=\"invoer-veld\" maxlength=\"40\" placeholder=\"Iets anders? Typ het hier\" aria-label=\"Eigen kenmerk toevoegen\">\n      <button type=\"button\" data-rol=\"invoer-ok\">Toevoegen<\/button>\n    <\/div>\n  <\/div>\n<\/div>\n\n<script>\nMymmoStappen.stap(document.currentScript, function (api) {\n  \/* LEES DIT VOOR JE DIT SCRIPT AANPAST.\n     Op syndicoach.be wordt de HTML van deze stap opnieuw uitgeschreven voor ze\n     de browser bereikt. Daarbij werd een en-teken een HTML-entiteit, een letter\n     met een accent een hex-entiteit, en verdween elke sluit-tag uit een string.\n     Het script parste daarna niet meer en geen enkele kei reageerde.\n     Daarom bevat dit script uitsluitend ASCII en geen enkel en-teken, kleiner-\n     of groter-dan-teken of sluit-tag. Schrijf dus geen dubbele en-tekens in een\n     voorwaarde maar twee geneste ifs, en geen lussen met een vergelijking maar\n     forEach en filter. *\/\n\n  var wortel = api.el.querySelector('.mf-kenmerken');\n  if (!wortel) return;\n\n  var SLEUTEL = wortel.getAttribute('data-sleutel') || 'gebouw_kenmerken';\n  var wolk = wortel.querySelector('[data-rol=\"wolk\"]');\n  var extra = wortel.querySelector('[data-rol=\"extra\"]');\n  var invoer = wortel.querySelector('[data-rol=\"invoer\"]');\n  var invoerVeld = wortel.querySelector('[data-rol=\"invoer-veld\"]');\n  var invoerOk = wortel.querySelector('[data-rol=\"invoer-ok\"]');\n  if (!wolk) return;\n\n  var gekozen = [];\n\n  function lijst(nodes) {\n    return Array.prototype.slice.call(nodes);\n  }\n\n  function schrijf() {\n    api.zet(SLEUTEL, gekozen.join(','));\n  }\n\n  function keiVoor(waarde) {\n    var gezocht = String(waarde).toLowerCase();\n    var treffers = lijst(wolk.querySelectorAll('.mf-kei[data-waarde]')).filter(function (kei) {\n      return kei.getAttribute('data-waarde').toLowerCase() === gezocht;\n    });\n    return treffers.length ? treffers[0] : null;\n  }\n\n  function plop(kei) {\n    kei.classList.remove('mf-plop');\n    void kei.offsetWidth;\n    kei.classList.add('mf-plop');\n  }\n\n  function zet(kei, aan) {\n    var waarde = kei.getAttribute('data-waarde');\n    kei.setAttribute('aria-pressed', aan ? 'true' : 'false');\n    gekozen = gekozen.filter(function (w) { return w !== waarde; });\n    if (aan) {\n      gekozen.push(waarde);\n      plop(kei);\n    }\n  }\n\n  \/* Een kei voor wat de bezoeker zelf typte: createElement en textContent,\n     nooit een HTML-string. *\/\n  function maakEigenKei(tekst) {\n    var knop = document.createElement('button');\n    knop.type = 'button';\n    knop.className = 'mf-kei mf-kei--eigen';\n    knop.setAttribute('data-waarde', tekst);\n    knop.setAttribute('data-eigen', '1');\n    knop.setAttribute('aria-pressed', 'true');\n\n    var blob = document.createElement('span');\n    blob.className = 'mf-blob';\n    var inhoud = document.createElement('span');\n    inhoud.className = 'mf-eigen-tekst';\n    inhoud.textContent = tekst;\n    blob.appendChild(inhoud);\n\n    var label = document.createElement('span');\n    label.className = 'mf-kei-label';\n    label.textContent = 'Zelf toegevoegd';\n\n    knop.appendChild(blob);\n    knop.appendChild(label);\n    wolk.insertBefore(knop, extra);\n    return knop;\n  }\n\n  function voegEigenToe(ruw) {\n    var tekst = String(ruw || '').replace(\/,\/g, ' ').replace(\/\\s+\/g, ' ').trim().slice(0, 40);\n    if (!tekst) return;\n\n    var bestaand = keiVoor(tekst);\n    if (bestaand) {\n      if (bestaand.getAttribute('aria-pressed') === 'true') {\n        plop(bestaand);\n      } else {\n        zet(bestaand, true);\n      }\n      schrijf();\n      return;\n    }\n\n    plop(maakEigenKei(tekst));\n    gekozen.push(tekst);\n    schrijf();\n  }\n\n  function openInvoer() {\n    if (!invoer) return;\n    var open = invoer.classList.toggle('is-open');\n    extra.setAttribute('aria-expanded', open ? 'true' : 'false');\n    if (open) {\n      if (invoerVeld) invoerVeld.focus();\n    }\n  }\n\n  \/* Een luisteraar op de wolk voor alle keien, ook die er later bijkomen. *\/\n  wolk.addEventListener('click', function (e) {\n    var kei = e.target.closest ? e.target.closest('.mf-kei') : null;\n    if (!kei) return;\n    if (!wolk.contains(kei)) return;\n\n    if (kei === extra) {\n      openInvoer();\n      return;\n    }\n\n    var aan = kei.getAttribute('aria-pressed') === 'true';\n    var eigen = kei.getAttribute('data-eigen') === '1';\n\n    if (aan) {\n      if (eigen) {\n        \/* Een eigen kei bestaat alleen omdat iemand hem typte: uitzetten is weg. *\/\n        var waarde = kei.getAttribute('data-waarde');\n        gekozen = gekozen.filter(function (w) { return w !== waarde; });\n        kei.remove();\n        schrijf();\n        return;\n      }\n    }\n\n    zet(kei, !aan);\n    schrijf();\n  });\n\n  if (invoerOk) {\n    invoerOk.addEventListener('click', function () {\n      voegEigenToe(invoerVeld ? invoerVeld.value : '');\n      if (invoerVeld) {\n        invoerVeld.value = '';\n        invoerVeld.focus();\n      }\n    });\n  }\n\n  if (invoerVeld) {\n    invoerVeld.addEventListener('keydown', function (e) {\n      if (e.key !== 'Enter') return;\n      \/* Enter hier mag het formulier niet versturen. *\/\n      e.preventDefault();\n      voegEigenToe(invoerVeld.value);\n      invoerVeld.value = '';\n    });\n  }\n\n  \/* Een tekening die niet laadt: het label komt dan in de kei. *\/\n  lijst(wolk.querySelectorAll('.mf-blob img')).forEach(function (img) {\n    function mislukt() {\n      var kei = img.closest('.mf-kei');\n      if (!kei) return;\n      var label = kei.querySelector('.mf-kei-label');\n      if (!label) return;\n      kei.classList.add('mf-kei--zonder-beeld');\n      var tekst = document.createElement('span');\n      tekst.className = 'mf-eigen-tekst';\n      tekst.textContent = label.textContent;\n      img.parentNode.appendChild(tekst);\n    }\n    if (img.complete) {\n      if (img.naturalWidth === 0) mislukt();\n      return;\n    }\n    img.addEventListener('error', mislukt);\n  });\n\n  \/* Beginstand: terug van een mislukte inzending of van een volgende stap. *\/\n  String(api.lees(SLEUTEL) || '').split(',')\n    .map(function (s) { return s.trim(); })\n    .filter(Boolean)\n    .forEach(function (waarde) {\n      var kei = keiVoor(waarde);\n      if (kei) {\n        kei.setAttribute('aria-pressed', 'true');\n        gekozen.push(kei.getAttribute('data-waarde'));\n        return;\n      }\n      maakEigenKei(waarde);\n      gekozen.push(waarde);\n    });\n  schrijf();\n\n  api.bij('tonen', function () {\n    lijst(wolk.querySelectorAll('.mf-kei[aria-pressed=\"true\"]')).forEach(plop);\n  });\n});\n<\/script>\n<\/div>\n<div class=\"mymmo-stap-nav\">\n<button type=\"button\" class=\"mymmo-stap-knop mymmo-stap-knop--terug\" data-mymmo-vorige>Vorige<\/button><button type=\"button\" class=\"mymmo-stap-knop mymmo-stap-knop--verder\" data-mymmo-volgende>Volgende<\/button>\n<\/div><\/section>                                <section class=\"mymmo-stap mymmo-stap--html\" data-mymmo-stap=\"2\" data-mymmo-stap-naam=\"huidig-beheer\" data-mymmo-stap-velden=\"waarom_syndicoach\" data-mymmo-stap-nav=\"plugin\" hidden><h3 class=\"mymmo-stap-titel mymmo-stap-titel--met-tekst\" data-mymmo-kop=\"titel\">Waarom zijn jullie op zoek naar een syndicus?<\/h3>\n<p class=\"mymmo-stap-tekst\" data-mymmo-kop=\"sub\">Duid aan wat meespeelt. Zo weten we meteen waar we jullie kunnen ondersteunen.<\/p>\n<div class=\"mymmo-stap-inhoud\" data-mymmo-stap-inhoud>\n<!--\n  STAP - \"Waarom overweeg je Syndicoach?\"\n\n  MEERKEUZE in vakjes, met een tekening per reden. Levert EEN waarde af:\n\n      waarom_syndicoach   komma-gescheiden, bv. \"te_duur,moeilijk_bereikbaar\"\n\n  Zet in de Operations Manager een VERBORGEN VELD met die sleutel op het\n  formulier. Deze stap verwacht minstens een keuze: zet `waarom_syndicoach` bij\n  de stap in wp-admin in \"Levert deze sleutels\", dan blijft \"Volgende\" uit tot er\n  iets aangeduid staat. Laat je dat veld leeg, dan mag de bezoeker doorklikken\n  zonder iets te kiezen.\n\n  LET OP - DIT IS EEN LIJST, GEEN ENKELE WAARDE\n  ---------------------------------------------\n  De vorige versie van stap 3 (huidig-beheer) leverde exact EEN waarde af. Deze\n  levert er nul tot tien, gescheiden door een komma. In de koppeling hoort dat\n  veld dus NIET op een selectieveld van Odoo te staan dat maar een waarde aankan:\n  gebruik een tekstveld, of splits het in de veldkoppelingen naar meerdere\n  vinkjes. Zonder die aanpassing komt er bij twee redenen stil niets of een\n  onbekende waarde in Odoo terecht.\n\n  DE LIJST AANVULLEN\n  ------------------\n  Een vakje is gewoon een knop in de HTML hieronder. Een regel kopieren en drie\n  dingen aanpassen: `data-waarde`, de `src` van de tekening en het label.\n  `data-waarde` belandt in Odoo en ligt VAST zodra er inzendingen zijn. Het label\n  mag altijd wijzigen -- ook rechtstreeks in het voorbeeld van de bouwer, want\n  het is echte tekst in de HTML.\n\n  WAAROM ER HIER GEEN ENKELE SVG EN GEEN ENKEL LEEG ELEMENT STAAT (1.15.14)\n  ------------------------------------------------------------------------\n  Op syndicoach.be kwam een eerdere stap verminkt aan: na elke inline SVG met een\n  use-element ontbrak de sluit-tag van de omliggende span, en elk leeg element\n  verdween. Daarom: geen inline SVG, en wat getekend moet worden (het vinkje)\n  hangt als ::before \/ ::after aan een element dat zelf tekst heeft. De\n  tekeningen komen als img binnen, met de gangbare vlaggen om lazyload-plugins\n  over te slaan.\n\n  Geen eigen kop, geen eigen kaartje rond de stap, geen opvulling aan de\n  zijkanten, geen eigen lettertype, geen eigen Vorige\/Volgende: dat levert de\n  plugin allemaal zelf.\n-->\n\n<style>\n\/* Alles genest onder .mf-waarom. Geen id's: dezelfde stap mag twee keer op een\n   pagina staan (in de tekst en in een pop-up). *\/\n.mf-waarom {\n  --w-accent: var(--mf-accent, #99f6e4);\n  --w-ink: var(--mf-text, #12384f);\n  --w-muted: var(--mf-muted, #6b7280);\n  --w-lijn: var(--mf-border, #d7dbe2);\n  --w-vlak: var(--mf-field-bg, #ffffff);\n  \/* De leesbare merkkleur op wit (bij Syndicoach #0369a1), gezet door de plugin. *\/\n  --w-inkt: var(--mf-accent-ink, var(--mf-text, #0369a1));\n\n  \/* GEEN font-family en GEEN padding: allebei van de plugin. *\/\n  color: var(--w-ink);\n  line-height: 1.45;\n  display: flex;\n  flex-direction: column;\n  flex: 1 0 auto;\n}\n.mf-waarom *, .mf-waarom *::before, .mf-waarom *::after { box-sizing: border-box; }\n\n\/* De vakjes staan verticaal gecentreerd in de vrije ruimte tussen de uitleg en\n   de knoppenrij. Valt er niets te verdelen -- en met tien vakjes is dat op een\n   telefoon het geval -- dan worden allebei de marges 0 en scrolt het paneel. *\/\n.mf-waarom .mf-keuzes {\n  margin-block: auto;\n  display: grid;\n  grid-template-columns: 1fr;\n  gap: 10px;\n  padding: 14px 0 6px;\n}\n\/* TWEE KOLOMMEN. Bewust op 560px en niet op 640px: in het venster is de\n   inhoudskolom smaller dan het scherm, en met tien vakjes onder elkaar sta je\n   anders onnodig te scrollen. `grid-auto-rows: 1fr` houdt de twee vakjes van een\n   rij even hoog, ook als het ene label omslaat en het andere niet. *\/\n@media (min-width: 560px) {\n  .mf-waarom .mf-keuzes { grid-template-columns: 1fr 1fr; grid-auto-rows: 1fr; gap: 12px; }\n}\n\n\/* Twee klassen op elke regel die een button raakt: een blokthema zet zijn eigen\n   knopstijl inline in de head en wint anders. Alles wat een thema op een knop\n   zet, noemen we hier zelf (display, richting, hoogte, opvulling, rand, schaduw,\n   tekstopmaak). *\/\n.mf-waarom .mf-keuze {\n  position: relative;\n  display: flex;\n  flex-direction: row;\n  align-items: center;\n  justify-content: flex-start;\n  gap: 12px;\n  width: 100%;\n  height: auto;\n  min-height: 0;\n  margin: 0;\n  \/* Rechts ruimte voor het vinkje, dat op de knop zelf getekend wordt. *\/\n  padding: 8px 42px 8px 10px;\n  font: inherit;\n  font-size: .95rem;\n  font-weight: 400;\n  line-height: 1.3;\n  letter-spacing: normal;\n  text-transform: none;\n  text-align: left;\n  white-space: normal;\n  color: var(--w-ink);\n  background: var(--w-vlak);\n  border: 1.5px solid var(--w-lijn);\n  box-shadow: none;\n  \/* Licht onregelmatige hoeken: net genoeg om niet als een tabel te lezen. *\/\n  border-radius: 18px 22px 20px 24px;\n  cursor: pointer;\n  transition: border-color .18s ease, background-color .18s ease, box-shadow .18s ease, translate .22s cubic-bezier(.34,1.56,.64,1);\n}\n.mf-waarom .mf-keuze:nth-child(4n+2) { border-radius: 22px 18px 24px 20px; }\n.mf-waarom .mf-keuze:nth-child(4n+3) { border-radius: 20px 24px 18px 22px; }\n.mf-waarom .mf-keuze:nth-child(4n)   { border-radius: 24px 20px 22px 18px; }\n\n\/* De tekening in een organische kei, zoals in de stap ervoor. Vier vormen die om\n   de beurt terugkomen, zodat geen twee buren identiek zijn. *\/\n.mf-waarom .mf-ic {\n  flex: 0 0 auto;\n  position: relative;\n  width: 76px;\n  height: 76px;\n  display: grid;\n  place-items: center;\n  background: color-mix(in srgb, var(--w-accent) 16%, var(--w-vlak));\n  border: 1.5px solid transparent;\n  border-radius: 63% 37% 52% 48% \/ 42% 57% 43% 58%;\n  rotate: -3deg;\n  transition: background-color .22s ease, border-color .22s ease, scale .32s cubic-bezier(.34,1.56,.64,1);\n}\n.mf-waarom .mf-keuze:nth-child(4n+2) .mf-ic { border-radius: 38% 62% 67% 33% \/ 58% 36% 64% 42%; rotate: 2.5deg; }\n.mf-waarom .mf-keuze:nth-child(4n+3) .mf-ic { border-radius: 56% 44% 31% 69% \/ 37% 64% 36% 63%; rotate: -1.5deg; }\n.mf-waarom .mf-keuze:nth-child(4n)   .mf-ic { border-radius: 33% 67% 59% 41% \/ 64% 39% 61% 36%; rotate: 3deg; }\n\n.mf-waarom .mf-ic img {\n  display: block;\n  width: 62px;\n  height: 62px;\n  object-fit: contain;\n  pointer-events: none;\n}\n\n\/* Laadt een tekening niet, dan blijft de kei gewoon leeg staan -- nooit een\n   kapot-plaatje-icoontje naast het label. *\/\n.mf-waarom .mf-keuze--zonder-beeld .mf-ic img { display: none; }\n\n.mf-waarom .mf-keuze-titel {\n  display: block;\n  font-weight: 500;\n  color: var(--w-ink);\n  text-wrap: pretty;\n}\n\n\/* Het vinkje rechts: een organisch bolletje met een haakje erin, allebei met CSS\n   getekend op de knop zelf. *\/\n.mf-waarom .mf-keuze::before {\n  content: \"\";\n  position: absolute;\n  right: 12px;\n  top: 50%;\n  width: 22px;\n  height: 22px;\n  margin-top: -11px;\n  background: var(--w-vlak);\n  border: 1.5px solid color-mix(in srgb, var(--w-lijn) 70%, var(--w-muted));\n  border-radius: 56% 44% 48% 52% \/ 47% 52% 48% 53%;\n  transition: background-color .18s ease, border-color .18s ease, scale .28s cubic-bezier(.34,1.56,.64,1);\n}\n.mf-waarom .mf-keuze::after {\n  content: \"\";\n  position: absolute;\n  right: 20px;\n  top: 50%;\n  width: 6px;\n  height: 11px;\n  margin-top: -7px;\n  border: solid #ffffff;\n  border-width: 0 2px 2px 0;\n  rotate: 45deg;\n  opacity: 0;\n  scale: .4;\n  transition: opacity .16s ease, scale .26s cubic-bezier(.34,1.56,.64,1);\n}\n\n.mf-waarom .mf-keuze:hover {\n  border-color: color-mix(in srgb, var(--w-accent) 75%, var(--w-lijn));\n  box-shadow: 0 6px 18px -10px color-mix(in srgb, var(--w-inkt) 45%, transparent);\n  translate: 0 -2px;\n}\n.mf-waarom .mf-keuze:hover::before { border-color: var(--w-inkt); scale: 1.08; }\n.mf-waarom .mf-keuze:hover .mf-ic { scale: 1.06; }\n.mf-waarom .mf-keuze:focus-visible {\n  outline: 2px solid var(--w-inkt);\n  outline-offset: 2px;\n}\n\n\/* Gekozen: zachte mint, rand en vinkje in de leesbare merkkleur. Geen vol mint\n   vlak -- de tekeningen zijn zelf in mint en donkerblauw getekend, en op een vol\n   mint vlak verdwijnt de helft van de tekening. *\/\n.mf-waarom .mf-keuze[aria-checked=\"true\"] {\n  background: color-mix(in srgb, var(--w-accent) 22%, var(--w-vlak));\n  border-color: var(--w-inkt);\n  box-shadow: 0 0 0 1px var(--w-inkt);\n}\n.mf-waarom .mf-keuze[aria-checked=\"true\"] .mf-keuze-titel {\n  font-weight: 600;\n  color: var(--w-inkt);\n}\n.mf-waarom .mf-keuze[aria-checked=\"true\"] .mf-ic {\n  background: var(--w-vlak);\n  border-color: color-mix(in srgb, var(--w-inkt) 35%, transparent);\n}\n.mf-waarom .mf-keuze[aria-checked=\"true\"]::before {\n  background: var(--w-inkt);\n  border-color: var(--w-inkt);\n  scale: 1;\n}\n.mf-waarom .mf-keuze[aria-checked=\"true\"]::after { opacity: 1; scale: 1; }\n\n.mf-waarom .mf-keuze.mf-plop { animation: mw-plop .42s cubic-bezier(.31,1.7,.6,1); }\n@keyframes mw-plop {\n  0%   { scale: 1; }\n  35%  { scale: .985; }\n  70%  { scale: 1.015; }\n  100% { scale: 1; }\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .mf-waarom .mf-keuze,\n  .mf-waarom .mf-keuze::before,\n  .mf-waarom .mf-keuze::after,\n  .mf-waarom .mf-ic { transition: none; }\n  .mf-waarom .mf-keuze.mf-plop { animation: none; }\n  .mf-waarom .mf-keuze:hover { translate: none; }\n}\n\n@media (max-width: 420px) {\n  .mf-waarom .mf-keuzes { gap: 8px; }\n  .mf-waarom .mf-keuze { padding: 8px 38px 8px 8px; gap: 10px; font-size: .9rem; }\n  .mf-waarom .mf-ic { width: 56px; height: 56px; }\n  .mf-waarom .mf-ic img { width: 44px; height: 44px; }\n  .mf-waarom .mf-keuze::before { right: 10px; }\n  .mf-waarom .mf-keuze::after { right: 18px; }\n}\n<\/style>\n\n<div class=\"mf-waarom\" data-sleutel=\"waarom_syndicoach\">\n  <div class=\"mf-keuzes\" data-rol=\"keuzes\" role=\"group\" aria-label=\"Waarom je Syndicoach overweegt\">\n\n    <button type=\"button\" class=\"mf-keuze\" role=\"checkbox\" aria-checked=\"false\" data-waarde=\"te_duur\">\n      <span class=\"mf-ic\"><img class=\"skip-lazy no-lazyload\" data-no-lazy=\"1\" data-skip-lazy=\"1\" src=\"https:\/\/link.openvme.be\/assets\/brand\/thingies\/thingies_spaarvarken.svg\" alt=\"\" width=\"400\" height=\"400\" loading=\"eager\" decoding=\"async\"><\/span>\n      <span class=\"mf-keuze-titel\">Het huidige beheer is te duur<\/span>\n    <\/button>\n\n    <button type=\"button\" class=\"mf-keuze\" role=\"checkbox\" aria-checked=\"false\" data-waarde=\"teveel_fouten\">\n      <span class=\"mf-ic\"><img class=\"skip-lazy no-lazyload\" data-no-lazy=\"1\" data-skip-lazy=\"1\" src=\"https:\/\/link.openvme.be\/assets\/brand\/thingies\/thingies_kapotte-lamp.svg\" alt=\"\" width=\"400\" height=\"400\" loading=\"eager\" decoding=\"async\"><\/span>\n      <span class=\"mf-keuze-titel\">De huidige syndicus maakt te veel fouten<\/span>\n    <\/button>\n\n    <button type=\"button\" class=\"mf-keuze\" role=\"checkbox\" aria-checked=\"false\" data-waarde=\"moeilijk_bereikbaar\">\n      <span class=\"mf-ic\"><img class=\"skip-lazy no-lazyload\" data-no-lazy=\"1\" data-skip-lazy=\"1\" src=\"https:\/\/link.openvme.be\/assets\/brand\/thingies\/thingies_telefoon.svg\" alt=\"\" width=\"400\" height=\"400\" loading=\"eager\" decoding=\"async\"><\/span>\n      <span class=\"mf-keuze-titel\">De huidige syndicus is moeilijk bereikbaar<\/span>\n    <\/button>\n\n    <button type=\"button\" class=\"mf-keuze\" role=\"checkbox\" aria-checked=\"false\" data-waarde=\"geen_beheer\">\n      <span class=\"mf-ic\"><img class=\"skip-lazy no-lazyload\" data-no-lazy=\"1\" data-skip-lazy=\"1\" src=\"https:\/\/link.openvme.be\/assets\/brand\/thingies\/thingies_openstaande-vraag.svg\" alt=\"\" width=\"400\" height=\"400\" loading=\"eager\" decoding=\"async\"><\/span>\n      <span class=\"mf-keuze-titel\">Er is momenteel nog geen beheer<\/span>\n    <\/button>\n\n    <button type=\"button\" class=\"mf-keuze\" role=\"checkbox\" aria-checked=\"false\" data-waarde=\"gebrek_transparantie\">\n      <span class=\"mf-ic\"><img class=\"skip-lazy no-lazyload\" data-no-lazy=\"1\" data-skip-lazy=\"1\" src=\"https:\/\/link.openvme.be\/assets\/brand\/thingies\/thingies_vergrootglas.svg\" alt=\"\" width=\"400\" height=\"400\" loading=\"eager\" decoding=\"async\"><\/span>\n      <span class=\"mf-keuze-titel\">Er is gebrek aan transparantie<\/span>\n    <\/button>\n\n    <button type=\"button\" class=\"mf-keuze\" role=\"checkbox\" aria-checked=\"false\" data-waarde=\"niet_meer_zelf\">\n      <span class=\"mf-ic\"><img class=\"skip-lazy no-lazyload\" data-no-lazy=\"1\" data-skip-lazy=\"1\" src=\"https:\/\/link.openvme.be\/assets\/brand\/thingies\/thingies_kruis.svg\" alt=\"\" width=\"400\" height=\"400\" loading=\"eager\" decoding=\"async\"><\/span>\n      <span class=\"mf-keuze-titel\">We willen het niet meer zelf doen<\/span>\n    <\/button>\n\n    <button type=\"button\" class=\"mf-keuze\" role=\"checkbox\" aria-checked=\"false\" data-waarde=\"extra_ondersteuning\">\n      <span class=\"mf-ic\"><img class=\"skip-lazy no-lazyload\" data-no-lazy=\"1\" data-skip-lazy=\"1\" src=\"https:\/\/link.openvme.be\/assets\/brand\/thingies\/thingies_aktentas.svg\" alt=\"\" width=\"400\" height=\"400\" loading=\"eager\" decoding=\"async\"><\/span>\n      <span class=\"mf-keuze-titel\">We zoeken extra ondersteuning<\/span>\n    <\/button>\n\n    <button type=\"button\" class=\"mf-keuze\" role=\"checkbox\" aria-checked=\"false\" data-waarde=\"renovatieproject\">\n      <span class=\"mf-ic\"><img class=\"skip-lazy no-lazyload\" data-no-lazy=\"1\" data-skip-lazy=\"1\" src=\"https:\/\/link.openvme.be\/assets\/brand\/thingies\/thingies_bakstenen.svg\" alt=\"\" width=\"400\" height=\"400\" loading=\"eager\" decoding=\"async\"><\/span>\n      <span class=\"mf-keuze-titel\">We willen een renovatieproject opstarten<\/span>\n    <\/button>\n\n    <button type=\"button\" class=\"mf-keuze\" role=\"checkbox\" aria-checked=\"false\" data-waarde=\"moeilijke_sfeer\">\n      <span class=\"mf-ic\"><img class=\"skip-lazy no-lazyload\" data-no-lazy=\"1\" data-skip-lazy=\"1\" src=\"https:\/\/link.openvme.be\/assets\/brand\/thingies\/thingies_sfeer.svg\" alt=\"\" width=\"400\" height=\"400\" loading=\"eager\" decoding=\"async\"><\/span>\n      <span class=\"mf-keuze-titel\">Er is een moeilijke onderlinge sfeer<\/span>\n    <\/button>\n\n    <button type=\"button\" class=\"mf-keuze\" role=\"checkbox\" aria-checked=\"false\" data-waarde=\"administratieve_achterstand\">\n      <span class=\"mf-ic\"><img class=\"skip-lazy no-lazyload\" data-no-lazy=\"1\" data-skip-lazy=\"1\" src=\"https:\/\/link.openvme.be\/assets\/brand\/thingies\/thingies_brieven.svg\" alt=\"\" width=\"400\" height=\"400\" loading=\"eager\" decoding=\"async\"><\/span>\n      <span class=\"mf-keuze-titel\">Er is administratieve achterstand<\/span>\n    <\/button>\n\n  <\/div>\n<\/div>\n\n<script>\nMymmoStappen.stap(document.currentScript, function (api) {\n  \/* LEES DIT VOOR JE DIT SCRIPT AANPAST.\n     Op syndicoach.be wordt de HTML van een stap opnieuw uitgeschreven voor ze de\n     browser bereikt. Daarbij werd een en-teken een HTML-entiteit, een letter met\n     een accent een hex-entiteit, en verdween elke sluit-tag uit een string.\n     Daarom bevat dit script uitsluitend ASCII en geen enkel en-teken, kleiner-\n     of groter-dan-teken of sluit-tag. Schrijf dus geen dubbele en-tekens in een\n     voorwaarde maar twee geneste ifs, en geen lussen met een vergelijking maar\n     forEach en filter. *\/\n\n  var wortel = api.el.querySelector('.mf-waarom');\n  if (!wortel) return;\n\n  var SLEUTEL = wortel.getAttribute('data-sleutel') || 'waarom_syndicoach';\n  var lijst = wortel.querySelector('[data-rol=\"keuzes\"]');\n  if (!lijst) return;\n\n  function alle(nodes) {\n    return Array.prototype.slice.call(nodes);\n  }\n\n  var knoppen = alle(lijst.querySelectorAll('.mf-keuze'));\n  var gekozen = [];\n\n  function schrijf() {\n    \/* De volgorde van de HTML, niet die van het aanklikken: zo levert dezelfde\n       selectie altijd dezelfde string op en zijn twee inzendingen vergelijkbaar. *\/\n    var waarden = knoppen.filter(function (knop) {\n      return gekozen.indexOf(knop.getAttribute('data-waarde')) !== -1;\n    }).map(function (knop) {\n      return knop.getAttribute('data-waarde');\n    });\n    api.zet(SLEUTEL, waarden.join(','));\n  }\n\n  function plop(knop) {\n    knop.classList.remove('mf-plop');\n    void knop.offsetWidth;\n    knop.classList.add('mf-plop');\n  }\n\n  function zet(knop, aan, metPlop) {\n    var waarde = knop.getAttribute('data-waarde');\n    knop.setAttribute('aria-checked', aan ? 'true' : 'false');\n    gekozen = gekozen.filter(function (w) { return w !== waarde; });\n    if (aan) {\n      gekozen.push(waarde);\n      if (metPlop) plop(knop);\n    }\n  }\n\n  lijst.addEventListener('click', function (e) {\n    var knop = e.target.closest ? e.target.closest('.mf-keuze') : null;\n    if (!knop) return;\n    if (!lijst.contains(knop)) return;\n    zet(knop, knop.getAttribute('aria-checked') !== 'true', true);\n    schrijf();\n  });\n\n  \/* Pijltjes lopen door de lijst. Anders dan bij keuzerondjes verandert dat de\n     keuze NIET -- bij een meerkeuze duid je aan met spatie of Enter, en dat doet\n     de browser zelf op een knop. *\/\n  lijst.addEventListener('keydown', function (e) {\n    var richting = { ArrowDown: 1, ArrowRight: 1, ArrowUp: -1, ArrowLeft: -1 }[e.key];\n    if (!richting) return;\n    var nu = knoppen.indexOf(document.activeElement);\n    if (nu === -1) return;\n    e.preventDefault();\n    knoppen[(nu + richting + knoppen.length) % knoppen.length].focus();\n  });\n\n  \/* Een tekening die niet laadt: de kei blijft leeg, het label blijft staan. *\/\n  alle(lijst.querySelectorAll('.mf-ic img')).forEach(function (img) {\n    function mislukt() {\n      var knop = img.closest('.mf-keuze');\n      if (knop) knop.classList.add('mf-keuze--zonder-beeld');\n    }\n    if (img.complete) {\n      if (img.naturalWidth === 0) mislukt();\n      return;\n    }\n    img.addEventListener('error', mislukt);\n  });\n\n  \/* Beginstand: terug van een mislukte inzending of van het formulier. Een waarde\n     die hier niet meer bestaat (een oude naam) wordt stil overgeslagen -- ze zou\n     anders als onbekende keuze mee naar Odoo gaan. *\/\n  String(api.lees(SLEUTEL) || '').split(',')\n    .map(function (s) { return s.trim(); })\n    .filter(Boolean)\n    .forEach(function (waarde) {\n      knoppen.filter(function (knop) {\n        return knop.getAttribute('data-waarde') === waarde;\n      }).forEach(function (knop) {\n        zet(knop, true, false);\n      });\n    });\n  schrijf();\n\n  api.bij('tonen', function () {\n    knoppen.filter(function (knop) {\n      return knop.getAttribute('aria-checked') === 'true';\n    }).forEach(plop);\n  });\n});\n<\/script>\n<\/div>\n<div class=\"mymmo-stap-nav\">\n<button type=\"button\" class=\"mymmo-stap-knop mymmo-stap-knop--terug\" data-mymmo-vorige>Vorige<\/button><button type=\"button\" class=\"mymmo-stap-knop mymmo-stap-knop--verder\" data-mymmo-volgende>Volgende<\/button>\n<\/div><\/section>                                <section class=\"mymmo-stap mymmo-stap--html\" data-mymmo-stap=\"3\" data-mymmo-stap-naam=\"avperiode\" data-mymmo-stap-velden=\"volgende_av_periode\" data-mymmo-stap-nav=\"plugin\" hidden><h3 class=\"mymmo-stap-titel mymmo-stap-titel--met-tekst\" data-mymmo-kop=\"titel\">Wanneer valt de Algemene Vergadering doorgaans?<\/h3>\n<p class=\"mymmo-stap-tekst\" data-mymmo-kop=\"sub\">Een schatting volstaat. Schuif de lijn tot het kader ongeveer goed staat.<\/p>\n<div class=\"mymmo-stap-inhoud\" data-mymmo-stap-inhoud>\n<!--\n  STAP - \"Wanneer is jullie volgende algemene vergadering?\"\n\n  Een KADER met een breed foutenvenster: de bezoeker schuift een maandlijn onder\n  een vast kader door (de merktekening `thingies\/frame.svg`). Bovenaan staan twee\n  kalenderblaadjes (van - tot), de merktekeningen thingies_calendar1.svg en\n  thingies_calendar2.svg: het getal bovenaan, de maand in het mintvlak. Altijd\n  even groot; alleen het getal doet een kleine plop als het verspringt.\n\n  De lijn is JAARLOOS en loopt rond: een algemene vergadering valt elk jaar rond\n  dezelfde tijd, dus je kan net zo goed terug naar augustus als vooruit naar\n  januari. Er staat nergens een jaartal.\n\n  Er zijn maar zes ankerdagen per maand: 5, 10, 15, 20, 25 en 30 (in februari de\n  laatste dag in plaats van 30). Een venster loopt van een anker tot drie ankers\n  verder, dus altijd ongeveer twee weken, en de lijn springt per anker:\n\n      tussen 5 en 20 oktober        tussen 20 oktober en 5 november\n      tussen 10 en 25 oktober       tussen 25 oktober en 10 november\n      tussen 15 en 30 oktober       tussen 30 oktober en 15 november\n\n  Op de blaadjes staat altijd maand + dag. In `volgende_av_periode` staat de\n  maand een keer als het venster in een maand blijft, anders beide.\n\n  Levert VIER waarden af:\n\n      volgende_av_periode   \"tussen 5 en 20 oktober\" | \"tussen 20 oktober en 5 november\" | \"onbekend\"\n                          (zonder jaartal: het is een moment dat elk jaar terugkeert)\n      volgende_av_van       begin van het venster, eerstvolgende keer, JJJJ-MM-DD\n      volgende_av_tot       einde van het venster, JJJJ-MM-DD\n      volgende_av_datum     het midden van het venster, JJJJ-MM-DD\n\n  Zet ze als VERBORGEN VELDEN op het formulier. Zet `volgende_av_periode` bij de\n  stap in \"Levert deze sleutels\": dan blijft \"Volgende\" uit tot er een periode of\n  \"Nog geen idee\" gekozen is. Bij \"Nog geen idee\" zijn de drie datums leeg.\n\n  Bediening: swipen op een telefoon (gewoon horizontaal scrollen), slepen of het\n  muiswieltje op een computer, pijltjes (een anker) en Page Up\/Down (een maand),\n  of tikken op de lijn. Na het loslaten klikt de lijn vast op het dichtste\n  venster; zolang er een vinger op ligt niet.\n\n  De lijn opent ongeveer zes weken vooruit, maar dat telt NIET als antwoord: pas\n  als de bezoeker de lijn beroert, staat er een waarde.\n\n  Regels, zie claude.md: het script bevat uitsluitend ASCII en geen en-teken,\n  kleiner- of groter-dan of sluit-tag (vergelijken met Math.min\/Math.max, lussen\n  met !==); geen inline SVG; geen leeg element in de markup. De maandnamen maakt\n  het script zelf in de browser.\n-->\n\n<style>\n.mf-av {\n  --av-accent: var(--mf-accent, #99f6e4);\n  --av-muted: var(--mf-muted, #6b7280);\n  \/* De leesbare merkkleur (bij Syndicoach #0369a1), dezelfde als in het kader. *\/\n  --av-inkt: var(--mf-accent-ink, #0369a1);\n  --av-dag: 10px;\n\n  \/* GEEN font-family en GEEN padding op de stap: allebei van de plugin. *\/\n  color: var(--av-inkt);\n  display: flex;\n  flex-direction: column;\n  flex: 1 0 auto;\n}\n.mf-av *, .mf-av *::before, .mf-av *::after { box-sizing: border-box; }\n\n.mf-av .mf-av-midden {\n  margin-block: auto;\n  padding: 12px 0 4px;\n}\n\n\/* De kop: \"MEESTAL TUSSEN\" klein erboven, daaronder twee SCHEURKALENDERBLAADJES\n   (van - tot). Ze hebben een vaste maat, wat er ook op staat: de kop en de lijn\n   eronder verspringen dus nooit, en alles staat rond een vast middelpunt. Bewust\n   GEEN animatie bij het wisselen. *\/\n.mf-av .mf-av-kop {\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  text-align: center;\n  line-height: 1;\n  color: var(--av-inkt);\n}\n.mf-av .mf-av-aanloop {\n  font-size: .78rem;\n  font-weight: 600;\n  letter-spacing: .16em;\n  text-transform: uppercase;\n  opacity: .7;\n  margin-bottom: 16px;\n}\n.mf-av .mf-av-blaadjes {\n  display: flex;\n  flex-direction: row;\n  align-items: center;\n  justify-content: center;\n  gap: 14px;\n}\n.mf-av .mf-av-blad {\n  \/* De merktekeningen thingies_calendar1.svg en thingies_calendar2.svg, beide\n     262,76 x 310,34. Het getal staat in het witte vak bovenaan, de maand in\n     het mintvlak. De vakken zijn opgemeten in procent van de tekening.\n     De blaadjes zijn op 21-09-2026 hertekend: het mintvlak is naar beneden\n     geschoven en dunner geworden, dus getal en maand zijn mee verplaatst.\n     Meet die vlakken opnieuw uit de mintpolygoon zodra er weer getekend\n     wordt -- het is de enige plek in de SVG waar ze exact in staan. *\/\n  position: relative;\n  \/* GEEN vw: een stap mag nooit van de VIEWPORT afhangen. In een callout, of in\n     een pop-up naast een zijkolom, staat ze in een kolom die smaller is dan het\n     scherm -- en dan steken de twee blaadjes samen buiten hun vak, wordt de\n     pagina breder dan de viewport en kan je opzij vegen. Ze delen nu gewoon de\n     rij: 136px als het past, kleiner als het moet. De verhouding en de tekst\n     (cqw) schalen mee.\n     MAAR: de breedte moet een ECHTE width blijven, geen kale flex-basis. Door\n     `container-type: inline-size` hieronder is de max-content-bijdrage van dit\n     blaadje NUL -- de inhoud mag de inline-maat immers niet bepalen. De rij\n     eromboven krijgt haar breedte van haar inhoud (fit-content), werd daardoor\n     zo breed als alleen het woordje \"en\", en de twee blaadjes krompen tot 0x0.\n     Beide blaadjes waren dan letterlijk weg, zonder foutmelding. Een definitieve\n     `width` geeft wel een max-content-bijdrage; `flex-shrink: 1` met\n     `min-width: 0` houdt het krimpen in een smalle kolom overeind. *\/\n  width: 136px;\n  max-width: 100%;\n  flex: 0 1 auto;\n  min-width: 0;\n  aspect-ratio: 262.76 \/ 310.34;\n  \/* Tekst schaalt mee met het blaadje (cqw), zodat \"september\" altijd in het\n     mintvlak past, hoe breed het blaadje ook is. *\/\n  container-type: inline-size;\n}\n.mf-av .mf-av-blad-beeld {\n  position: absolute;\n  inset: 0;\n  width: 100%;\n  max-width: none;\n  height: 100%;\n  margin: 0;\n  -webkit-user-select: none;\n  user-select: none;\n}\n.mf-av .mf-av-blad-dag,\n.mf-av .mf-av-blad-maand {\n  position: absolute;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  white-space: nowrap;\n  color: var(--av-inkt);\n}\n\/* Wit vak: het vak loopt tot aan het hoogste punt van het mint (y 200,16 =\n   64,5%) en begint op 22% in plaats van vlak onder de kaderlijn (12%). Het\n   getal staat gecentreerd in dat vak, dus het zakt daarmee in de ONDERSTE helft\n   van het witte veld -- optisch beter, want de scheurrand en de ringetjes\n   bovenaan vragen zelf al aandacht.\n   Dat vak is door de hertekening een derde hoger geworden, dus het getal mag\n   mee groter: 40cqw is 105px op een tekening van 262 breed, twee cijfers\n   samen ongeveer 118px in een vak van 194px. *\/\n.mf-av .mf-av-blad-dag {\n  top: 22%;\n  height: 42.5%;\n  left: 15%;\n  right: 11%;\n  font-size: 2.9rem;\n  font-size: 40cqw;\n  font-weight: 600;\n  line-height: 1;\n  letter-spacing: -.03em;\n  font-variant-numeric: tabular-nums;\n}\n.mf-av .mf-av-blad-dag.is-plop { animation: av-plop .34s cubic-bezier(.3,.9,.4,1.4); }\n\/* Eerst een tikje in (anticipatie), dan voorbij de maat, dan terug. *\/\n@keyframes av-plop {\n  0%   { scale: 1; }\n  28%  { scale: .86; }\n  64%  { scale: 1.12; }\n  100% { scale: 1; }\n}\n@media (prefers-reduced-motion: reduce) {\n  .mf-av .mf-av-blad-dag.is-plop { animation: none; }\n}\n\/* Mintvlak, opgemeten uit de mintpolygoon van de SVG's (viewBox 262,76 x\n   310,34). Het mint loopt rechts onder de kaderlijn door, dus horizontaal\n   telt het ZICHTBARE deel; die x-maten zijn bij de hertekening niet gewijzigd:\n     blad 1: x 20,7% tot 87%   (mint 54,5-241,4, kaderlijn rechts rond 229)\n     blad 2: x 18% tot 85%     (mint 47,2-234,3, kaderlijn rechts rond 224)\n   Verticaal wel. Allebei de banden lopen SCHUIN (gescheurd papier), dus je\n   neemt de LAAGSTE bovenhoek en de HOOGSTE onderhoek -- anders steekt de tekst\n   aan een kant boven het mint uit:\n     blad 1: boven 205,61 (links) \/ 200,16 (rechts), onder 271,04 vlak\n     blad 2: boven 202,85 (links) \/ 205,47 (rechts), onder 273,73 \/ 270,97\n     veilig: y 66,3% tot 87,3%\n   De maand staat in het midden van dat vak. *\/\n.mf-av .mf-av-blad-maand {\n  top: 66.3%;\n  height: 21%;\n  font-size: .8rem;\n  \/* \"september\" is gemeten 4,9 keer zo breed als de lettergrootte in dit gewicht;\n     11,5cqw maakt het 56% van het blaadje, in een zichtbaar mintvlak van 66%. *\/\n  font-size: 11.5cqw;\n  font-weight: 700;\n  letter-spacing: -.01em;\n}\n.mf-av .mf-av-blad--van .mf-av-blad-maand { left: 20.7%; width: 66.3%; }\n.mf-av .mf-av-blad--tot .mf-av-blad-maand { left: 18%; width: 67%; }\n.mf-av .mf-av-tot {\n  font-size: 1.1rem;\n  opacity: .6;\n}\n\n\/* De blaadjes worden NOOIT gedimd, ook niet zolang er nog niets gekozen is.\n   Hier stond `.mf-av.is-open .mf-av-kop { opacity: .38 }`, met als gedachte\n   \"dit is nog maar een voorstel\". Maar een tekening op 38% leest als\n   uitgeschakeld, niet als voorlopig -- en er valt niets uit te schakelen: de\n   lijn staat er en je mag schuiven. De klasse `is-open` blijft bestaan (de JS\n   zet en haalt ze), ze stuurt alleen geen stijl meer aan. Zet hier geen\n   opacity terug, en ook geen grijstint op de tekening: de blaadjes horen in\n   hun eigen kleuren te staan.\n   \"Nog geen idee\" verbergt de blaadjes wel volledig -- dat is iets anders dan\n   dimmen: er valt op dat moment niets te tonen. *\/\n.mf-av.is-onbekend .mf-av-blaadjes { visibility: hidden; }\n.mf-av .mf-av-hint {\n  display: block;\n  min-height: 1.4em;\n  margin-top: 10px;\n  text-align: center;\n  font-size: .88rem;\n  color: var(--av-muted);\n}\n\n\/* De lijn met het kader erover. *\/\n.mf-av .mf-av-wielvak {\n  position: relative;\n  margin-top: 18px;\n  height: 96px;\n}\n\/* Het kader staat vast in het midden en ligt ACHTER de lijn: de maandnaam die\n   erin valt, staat zo op het mintvlak, zoals in de tekening. De mintvlek in\n   frame.svg loopt van x=52.9 tot x=351.8 van 367.7 breed (81,29%, links 14,39%):\n   het kader wordt zo geschaald dat dat stuk een HALVE MAAND breed is: een maand\n   staat op de lijn als 4,3 weken (30,1 dagen), het kader dus op 15,05 dagen --\n   exact drie ankers, zoals een venster. *\/\n.mf-av .mf-av-kader {\n  position: absolute;\n  top: 8px;\n  left: calc(50% - 7.525 * var(--av-dag) - 15.05 * var(--av-dag) \/ 0.8129 * 0.1439);\n  width: calc(15.05 * var(--av-dag) \/ 0.8129);\n  max-width: none;\n  height: auto;\n  margin: 0;\n  pointer-events: none;\n  -webkit-user-select: none;\n  user-select: none;\n}\n.mf-av.is-onbekend .mf-av-wielvak { opacity: .3; }\n\n.mf-av .mf-av-wiel {\n  position: absolute;\n  inset: 0;\n  overflow-x: auto;\n  overflow-y: hidden;\n  overscroll-behavior-x: contain;\n  scrollbar-width: none;\n  cursor: grab;\n  outline: none;\n  -webkit-user-select: none;\n  user-select: none;\n  -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);\n  mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);\n}\n.mf-av .mf-av-wiel::-webkit-scrollbar { display: none; }\n.mf-av .mf-av-wiel.is-slepen { cursor: grabbing; }\n.mf-av .mf-av-wiel:focus-visible { outline: 2px dashed var(--av-inkt); outline-offset: -2px; }\n\n.mf-av .mf-av-spoor { position: relative; height: 100%; }\n.mf-av .mf-av-baan {\n  position: absolute;\n  top: 0;\n  bottom: 0;\n  color: transparent;\n}\n\/* De lijn: een getekende, rafelige streep als MASKER, zodat ze de merkkleur\n   volgt. Het masker is een naadloze tegel van 420px (alle golven hebben een\n   periode die in 420 past), dus de lijn loopt eindeloos door. Procent-gecodeerd\n   in de CSS: geen inline SVG in de markup, en geen kleiner-\/groter-dan-teken dat\n   onderweg herschreven kan worden. *\/\n.mf-av .mf-av-baan::before {\n  content: \"\";\n  position: absolute;\n  top: 52px;\n  left: -840px;\n  right: -840px;\n  height: 14px;\n  background: var(--av-inkt);\n  -webkit-mask: url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='420' height='14' viewBox='0 0 420 14'%3E%3Cpath d='M0.0 6.3 L5.0 6.0 L10.0 5.8 L15.0 6.3 L20.0 6.7 L25.0 6.4 L30.0 5.8 L35.0 5.9 L40.0 6.4 L45.0 6.7 L50.0 6.7 L55.0 6.8 L60.0 7.2 L65.0 7.1 L70.0 6.3 L75.0 5.3 L80.0 5.0 L85.0 4.9 L90.0 4.4 L95.0 3.5 L100.0 3.3 L105.0 3.9 L110.0 4.6 L115.0 4.8 L120.0 5.1 L125.0 5.8 L130.0 6.3 L135.0 6.1 L140.0 5.6 L145.0 5.7 L150.0 6.2 L155.0 6.3 L160.0 5.9 L165.0 5.8 L170.0 6.4 L175.0 7.0 L180.0 7.0 L185.0 6.7 L190.0 6.7 L195.0 6.7 L200.0 6.2 L205.0 5.3 L210.0 5.0 L215.0 5.3 L220.0 5.5 L225.0 5.0 L230.0 4.6 L235.0 4.9 L240.0 5.5 L245.0 5.4 L250.0 4.9 L255.0 4.6 L260.0 4.6 L265.0 4.5 L270.0 4.1 L275.0 4.2 L280.0 5.0 L285.0 6.0 L290.0 6.3 L295.0 6.4 L300.0 6.9 L305.0 7.8 L310.0 8.0 L315.0 7.4 L320.0 6.7 L325.0 6.5 L330.0 6.2 L335.0 5.5 L340.0 5.0 L345.0 5.2 L350.0 5.7 L355.0 5.6 L360.0 5.1 L365.0 5.0 L370.0 5.4 L375.0 5.5 L380.0 4.9 L385.0 4.3 L390.0 4.3 L395.0 4.6 L400.0 4.6 L405.0 4.6 L410.0 5.1 L415.0 6.0 L420.0 6.3 L420.0 9.3 L415.0 8.5 L410.0 7.4 L405.0 6.8 L400.0 6.9 L395.0 6.9 L390.0 6.4 L385.0 6.3 L380.0 6.9 L375.0 7.8 L370.0 8.2 L365.0 8.3 L360.0 8.5 L355.0 8.9 L350.0 8.8 L345.0 8.3 L340.0 8.2 L335.0 8.7 L330.0 9.2 L325.0 9.1 L320.0 8.8 L315.0 9.2 L310.0 9.8 L305.0 9.9 L300.0 9.4 L295.0 8.9 L290.0 8.8 L285.0 8.5 L280.0 7.8 L275.0 7.4 L270.0 7.8 L265.0 8.2 L260.0 8.0 L255.0 7.5 L250.0 7.5 L245.0 8.0 L240.0 8.0 L235.0 7.4 L230.0 6.9 L225.0 7.0 L220.0 7.2 L215.0 7.2 L210.0 7.4 L205.0 8.2 L200.0 9.3 L195.0 9.9 L190.0 9.8 L185.0 9.8 L180.0 10.3 L175.0 10.4 L170.0 9.8 L165.0 8.9 L160.0 8.5 L155.0 8.4 L150.0 8.2 L145.0 7.8 L140.0 7.9 L135.0 8.4 L130.0 8.5 L125.0 8.0 L120.0 7.5 L115.0 7.6 L110.0 7.9 L105.0 7.5 L100.0 6.9 L95.0 6.8 L90.0 7.3 L85.0 7.8 L80.0 7.9 L75.0 8.2 L70.0 8.9 L65.0 9.3 L60.0 8.9 L55.0 8.5 L50.0 8.7 L45.0 9.2 L40.0 9.2 L35.0 8.7 L30.0 8.7 L25.0 9.3 L20.0 9.8 L15.0 9.7 L10.0 9.5 L5.0 9.5 L0.0 9.3Z'\/%3E%3Cpath fill-opacity='0.55' d='M0.0 9.1 L5.0 8.6 L10.0 8.3 L15.0 9.0 L20.0 9.8 L25.0 10.0 L30.0 9.5 L35.0 9.3 L40.0 9.1 L45.0 8.7 L50.0 8.3 L55.0 8.6 L60.0 9.6 L65.0 10.3 L70.0 9.8 L75.0 8.7 L80.0 7.8 L85.0 7.2 L90.0 6.7 L95.0 6.3 L100.0 6.7 L105.0 7.6 L110.0 8.2 L115.0 7.9 L120.0 7.6 L125.0 7.9 L130.0 8.5 L135.0 8.7 L140.0 8.5 L145.0 8.5 L150.0 8.8 L155.0 8.7 L160.0 8.3 L165.0 8.4 L170.0 9.5 L175.0 10.5 L180.0 10.6 L185.0 10.1 L190.0 9.6 L195.0 9.2 L200.0 8.5 L205.0 7.8 L210.0 7.8 L215.0 8.3 L220.0 8.6 L225.0 7.9 L230.0 7.1 L235.0 6.9 L240.0 7.4 L245.0 7.6 L250.0 7.8 L255.0 8.2 L260.0 8.6 L265.0 8.3 L270.0 7.3 L275.0 6.6 L280.0 7.1 L285.0 8.2 L290.0 9.1 L295.0 9.7 L300.0 10.2 L305.0 10.6 L310.0 10.2 L315.0 9.3 L320.0 8.7 L325.0 9.0 L330.0 9.3 L335.0 9.0 L340.0 8.4 L345.0 8.2 L350.0 8.4 L355.0 8.4 L360.0 8.1 L365.0 8.2 L370.0 8.6 L375.0 8.5 L380.0 7.4 L385.0 6.4 L390.0 6.3 L395.0 6.8 L400.0 7.3 L405.0 7.7 L410.0 8.4 L415.0 9.1 L420.0 9.1 L420.0 10.5 L415.0 10.1 L410.0 9.1 L405.0 8.2 L400.0 7.7 L395.0 7.4 L390.0 7.1 L385.0 7.5 L380.0 8.8 L375.0 9.8 L370.0 9.8 L365.0 9.1 L360.0 8.7 L355.0 8.8 L350.0 8.9 L345.0 9.0 L340.0 9.5 L335.0 10.3 L330.0 10.7 L325.0 10.2 L320.0 9.7 L315.0 9.9 L310.0 10.7 L305.0 11.1 L300.0 10.9 L295.0 10.6 L290.0 10.4 L285.0 9.6 L280.0 8.4 L275.0 7.7 L270.0 8.0 L265.0 8.8 L260.0 9.0 L255.0 8.7 L250.0 8.6 L245.0 8.8 L240.0 8.7 L235.0 8.3 L230.0 8.2 L225.0 8.8 L220.0 9.1 L215.0 8.7 L210.0 8.2 L205.0 8.6 L200.0 9.6 L195.0 10.5 L190.0 11.0 L185.0 11.3 L180.0 11.6 L175.0 11.2 L170.0 9.9 L165.0 8.9 L160.0 8.9 L155.0 9.6 L150.0 10.0 L145.0 9.9 L140.0 9.8 L135.0 9.7 L130.0 9.2 L125.0 8.4 L120.0 8.0 L115.0 8.5 L110.0 9.0 L105.0 8.8 L100.0 8.0 L95.0 7.6 L90.0 7.8 L85.0 8.1 L80.0 8.3 L75.0 9.1 L70.0 10.3 L65.0 11.0 L60.0 10.7 L55.0 9.9 L50.0 9.7 L45.0 10.0 L40.0 10.1 L35.0 9.9 L30.0 10.0 L25.0 10.4 L20.0 10.5 L15.0 9.9 L10.0 9.6 L5.0 10.0 L0.0 10.5Z'\/%3E%3C\/svg%3E\") repeat-x left center \/ 420px 14px;\n  mask: url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='420' height='14' viewBox='0 0 420 14'%3E%3Cpath d='M0.0 6.3 L5.0 6.0 L10.0 5.8 L15.0 6.3 L20.0 6.7 L25.0 6.4 L30.0 5.8 L35.0 5.9 L40.0 6.4 L45.0 6.7 L50.0 6.7 L55.0 6.8 L60.0 7.2 L65.0 7.1 L70.0 6.3 L75.0 5.3 L80.0 5.0 L85.0 4.9 L90.0 4.4 L95.0 3.5 L100.0 3.3 L105.0 3.9 L110.0 4.6 L115.0 4.8 L120.0 5.1 L125.0 5.8 L130.0 6.3 L135.0 6.1 L140.0 5.6 L145.0 5.7 L150.0 6.2 L155.0 6.3 L160.0 5.9 L165.0 5.8 L170.0 6.4 L175.0 7.0 L180.0 7.0 L185.0 6.7 L190.0 6.7 L195.0 6.7 L200.0 6.2 L205.0 5.3 L210.0 5.0 L215.0 5.3 L220.0 5.5 L225.0 5.0 L230.0 4.6 L235.0 4.9 L240.0 5.5 L245.0 5.4 L250.0 4.9 L255.0 4.6 L260.0 4.6 L265.0 4.5 L270.0 4.1 L275.0 4.2 L280.0 5.0 L285.0 6.0 L290.0 6.3 L295.0 6.4 L300.0 6.9 L305.0 7.8 L310.0 8.0 L315.0 7.4 L320.0 6.7 L325.0 6.5 L330.0 6.2 L335.0 5.5 L340.0 5.0 L345.0 5.2 L350.0 5.7 L355.0 5.6 L360.0 5.1 L365.0 5.0 L370.0 5.4 L375.0 5.5 L380.0 4.9 L385.0 4.3 L390.0 4.3 L395.0 4.6 L400.0 4.6 L405.0 4.6 L410.0 5.1 L415.0 6.0 L420.0 6.3 L420.0 9.3 L415.0 8.5 L410.0 7.4 L405.0 6.8 L400.0 6.9 L395.0 6.9 L390.0 6.4 L385.0 6.3 L380.0 6.9 L375.0 7.8 L370.0 8.2 L365.0 8.3 L360.0 8.5 L355.0 8.9 L350.0 8.8 L345.0 8.3 L340.0 8.2 L335.0 8.7 L330.0 9.2 L325.0 9.1 L320.0 8.8 L315.0 9.2 L310.0 9.8 L305.0 9.9 L300.0 9.4 L295.0 8.9 L290.0 8.8 L285.0 8.5 L280.0 7.8 L275.0 7.4 L270.0 7.8 L265.0 8.2 L260.0 8.0 L255.0 7.5 L250.0 7.5 L245.0 8.0 L240.0 8.0 L235.0 7.4 L230.0 6.9 L225.0 7.0 L220.0 7.2 L215.0 7.2 L210.0 7.4 L205.0 8.2 L200.0 9.3 L195.0 9.9 L190.0 9.8 L185.0 9.8 L180.0 10.3 L175.0 10.4 L170.0 9.8 L165.0 8.9 L160.0 8.5 L155.0 8.4 L150.0 8.2 L145.0 7.8 L140.0 7.9 L135.0 8.4 L130.0 8.5 L125.0 8.0 L120.0 7.5 L115.0 7.6 L110.0 7.9 L105.0 7.5 L100.0 6.9 L95.0 6.8 L90.0 7.3 L85.0 7.8 L80.0 7.9 L75.0 8.2 L70.0 8.9 L65.0 9.3 L60.0 8.9 L55.0 8.5 L50.0 8.7 L45.0 9.2 L40.0 9.2 L35.0 8.7 L30.0 8.7 L25.0 9.3 L20.0 9.8 L15.0 9.7 L10.0 9.5 L5.0 9.5 L0.0 9.3Z'\/%3E%3Cpath fill-opacity='0.55' d='M0.0 9.1 L5.0 8.6 L10.0 8.3 L15.0 9.0 L20.0 9.8 L25.0 10.0 L30.0 9.5 L35.0 9.3 L40.0 9.1 L45.0 8.7 L50.0 8.3 L55.0 8.6 L60.0 9.6 L65.0 10.3 L70.0 9.8 L75.0 8.7 L80.0 7.8 L85.0 7.2 L90.0 6.7 L95.0 6.3 L100.0 6.7 L105.0 7.6 L110.0 8.2 L115.0 7.9 L120.0 7.6 L125.0 7.9 L130.0 8.5 L135.0 8.7 L140.0 8.5 L145.0 8.5 L150.0 8.8 L155.0 8.7 L160.0 8.3 L165.0 8.4 L170.0 9.5 L175.0 10.5 L180.0 10.6 L185.0 10.1 L190.0 9.6 L195.0 9.2 L200.0 8.5 L205.0 7.8 L210.0 7.8 L215.0 8.3 L220.0 8.6 L225.0 7.9 L230.0 7.1 L235.0 6.9 L240.0 7.4 L245.0 7.6 L250.0 7.8 L255.0 8.2 L260.0 8.6 L265.0 8.3 L270.0 7.3 L275.0 6.6 L280.0 7.1 L285.0 8.2 L290.0 9.1 L295.0 9.7 L300.0 10.2 L305.0 10.6 L310.0 10.2 L315.0 9.3 L320.0 8.7 L325.0 9.0 L330.0 9.3 L335.0 9.0 L340.0 8.4 L345.0 8.2 L350.0 8.4 L355.0 8.4 L360.0 8.1 L365.0 8.2 L370.0 8.6 L375.0 8.5 L380.0 7.4 L385.0 6.4 L390.0 6.3 L395.0 6.8 L400.0 7.3 L405.0 7.7 L410.0 8.4 L415.0 9.1 L420.0 9.1 L420.0 10.5 L415.0 10.1 L410.0 9.1 L405.0 8.2 L400.0 7.7 L395.0 7.4 L390.0 7.1 L385.0 7.5 L380.0 8.8 L375.0 9.8 L370.0 9.8 L365.0 9.1 L360.0 8.7 L355.0 8.8 L350.0 8.9 L345.0 9.0 L340.0 9.5 L335.0 10.3 L330.0 10.7 L325.0 10.2 L320.0 9.7 L315.0 9.9 L310.0 10.7 L305.0 11.1 L300.0 10.9 L295.0 10.6 L290.0 10.4 L285.0 9.6 L280.0 8.4 L275.0 7.7 L270.0 8.0 L265.0 8.8 L260.0 9.0 L255.0 8.7 L250.0 8.6 L245.0 8.8 L240.0 8.7 L235.0 8.3 L230.0 8.2 L225.0 8.8 L220.0 9.1 L215.0 8.7 L210.0 8.2 L205.0 8.6 L200.0 9.6 L195.0 10.5 L190.0 11.0 L185.0 11.3 L180.0 11.6 L175.0 11.2 L170.0 9.9 L165.0 8.9 L160.0 8.9 L155.0 9.6 L150.0 10.0 L145.0 9.9 L140.0 9.8 L135.0 9.7 L130.0 9.2 L125.0 8.4 L120.0 8.0 L115.0 8.5 L110.0 9.0 L105.0 8.8 L100.0 8.0 L95.0 7.6 L90.0 7.8 L85.0 8.1 L80.0 8.3 L75.0 9.1 L70.0 10.3 L65.0 11.0 L60.0 10.7 L55.0 9.9 L50.0 9.7 L45.0 10.0 L40.0 10.1 L35.0 9.9 L30.0 10.0 L25.0 10.4 L20.0 10.5 L15.0 9.9 L10.0 9.6 L5.0 10.0 L0.0 10.5Z'\/%3E%3C\/svg%3E\") repeat-x left center \/ 420px 14px;\n}\n\n.mf-av .mf-av-grens {\n  position: absolute;\n  top: 47px;\n  width: 2.5px;\n  height: 24px;\n  margin-left: -1.25px;\n  overflow: hidden;\n  color: transparent;\n  background: var(--av-inkt);\n  border-radius: 2px 1px 2px 1px;\n  rotate: 4deg;\n}\n.mf-av .mf-av-maandnaam {\n  position: absolute;\n  top: 35px;\n  translate: -50% 0;\n  font-size: 1rem;\n  white-space: nowrap;\n  color: var(--av-inkt);\n}\n\n.mf-av .mf-av-knop {\n  display: block;\n  width: auto;\n  height: auto;\n  margin: 12px auto 0;\n  padding: 4px 12px;\n  font: inherit;\n  font-size: .88rem;\n  line-height: 1.3;\n  letter-spacing: normal;\n  text-transform: none;\n  color: var(--av-muted);\n  background: transparent;\n  border: 0;\n  border-radius: 999px;\n  box-shadow: none;\n  text-decoration: underline;\n  text-underline-offset: 3px;\n  cursor: pointer;\n}\n.mf-av .mf-av-knop:hover { color: var(--av-inkt); }\n.mf-av .mf-av-knop:focus-visible { outline: 2px solid var(--av-inkt); outline-offset: 2px; }\n.mf-av .mf-av-knop[aria-pressed=\"true\"] {\n  color: var(--av-inkt);\n  background: color-mix(in srgb, var(--av-accent) 55%, transparent);\n  text-decoration: none;\n}\n<\/style>\n\n<div class=\"mf-av is-open\">\n  <div class=\"mf-av-midden\">\n    <div class=\"mf-av-kop\" aria-live=\"polite\">\n      <span class=\"mf-av-aanloop\" data-rol=\"aanloop\">meestal tussen<\/span>\n      <div class=\"mf-av-blaadjes\">\n        <div class=\"mf-av-blad mf-av-blad--van\" data-rol=\"blad-van\">\n<img class=\"mf-av-blad-beeld skip-lazy no-lazyload\" data-no-lazy=\"1\" data-skip-lazy=\"1\" src=\"https:\/\/link.openvme.be\/assets\/brand\/thingies\/thingies_calendar1.svg\" alt=\"\" width=\"263\" height=\"310\" loading=\"eager\" decoding=\"async\"><span class=\"mf-av-blad-dag\">25<\/span><span class=\"mf-av-blad-maand\">september<\/span>\n<\/div>\n        <span class=\"mf-av-tot\">en<\/span>\n        <div class=\"mf-av-blad mf-av-blad--tot\" data-rol=\"blad-tot\">\n<img class=\"mf-av-blad-beeld skip-lazy no-lazyload\" data-no-lazy=\"1\" data-skip-lazy=\"1\" src=\"https:\/\/link.openvme.be\/assets\/brand\/thingies\/thingies_calendar2.svg\" alt=\"\" width=\"263\" height=\"310\" loading=\"eager\" decoding=\"async\"><span class=\"mf-av-blad-dag\">10<\/span><span class=\"mf-av-blad-maand\">oktober<\/span>\n<\/div>\n      <\/div>\n    <\/div>\n    <span class=\"mf-av-hint\" data-rol=\"hint\">Schuif of tik op de lijn om te kiezen<\/span>\n\n    <div class=\"mf-av-wielvak\">\n      <img class=\"mf-av-kader skip-lazy no-lazyload\" data-no-lazy=\"1\" data-skip-lazy=\"1\" src=\"https:\/\/link.openvme.be\/assets\/brand\/thingies\/frame.svg\" alt=\"\" width=\"368\" height=\"152\" loading=\"eager\" decoding=\"async\">\n      <div class=\"mf-av-wiel\" data-rol=\"wiel\" tabindex=\"0\" role=\"slider\" aria-label=\"Periode van de volgende algemene vergadering\">\n        <div class=\"mf-av-spoor\" data-rol=\"spoor\"><div class=\"mf-av-baan\" data-rol=\"baan\">lijn<\/div><\/div>\n      <\/div>\n    <\/div>\n\n    <button type=\"button\" class=\"mf-av-knop\" data-rol=\"onbekend\" aria-pressed=\"false\">Nog geen idee<\/button>\n  <\/div>\n<\/div>\n\n<script>\nMymmoStappen.stap(document.currentScript, function (api) {\n  \/* LEES DIT VOOR JE DIT SCRIPT AANPAST.\n     Uitsluitend ASCII, en geen en-teken, kleiner- of groter-dan of sluit-tag: op\n     syndicoach.be wordt de HTML van een stap onderweg herschreven en parst een\n     script met die tekens niet meer. Vergelijk dus met Math.min en Math.max, en\n     schrijf lussen met !== in plaats van een kleiner-dan. *\/\n\n  var wortel = api.el.querySelector('.mf-av');\n  if (!wortel) return;\n\n  function rol(naam) { return wortel.querySelector('[data-rol=\"' + naam + '\"]'); }\n  var wiel = rol('wiel');\n  var spoor = rol('spoor');\n  var baan = rol('baan');\n  var elAanloop = rol('aanloop');\n  var bladVan = rol('blad-van');\n  var bladTot = rol('blad-tot');\n  var elHint = rol('hint');\n  var knopOnbekend = rol('onbekend');\n  if (!wiel || !spoor || !baan) return;\n\n  var PX = 10;            \/* pixels per dag; gelijk aan --av-dag *\/\n  \/* Een maand is op de lijn altijd 4,3 weken breed, wat de maand ook echt telt.\n     De zes ankers (5, 10, 15, 20, 25, 30) liggen er op gelijke afstand in:\n     anker k van het jaar (0 = 5 januari, 71 = 30 december) ligt op (k + 1) \/ 6\n     maand. Een venster van drie ankers is dus exact een halve maand. *\/\n  var MAAND = 4.3 * 7 * PX;\n  var JAAR = 12 * MAAND;\n  var ANKERS = 72;\n  \/* De lijn is JAARLOOS en loopt rond: na december komt januari, voor januari\n     december. Ze bestaat uit vijf kopieen van een jaar; na elk schuiven springt\n     ze onzichtbaar terug naar de middelste, zodat je nooit een einde bereikt. *\/\n  var KOPIEEN = 5;\n  var MIDDEN_KOPIE = 2;\n  var MAANDEN = ['januari', 'februari', 'maart', 'april', 'mei', 'juni', 'juli',\n                 'augustus', 'september', 'oktober', 'november', 'december'];\n\n  var vandaag = new Date();\n  var basis = new Date(vandaag.getFullYear(), vandaag.getMonth(), vandaag.getDate());\n\n  function minstens(a, b) { return Math.max(a, b) === a; }\n  function klem(n, lo, hi) { return Math.min(hi, Math.max(lo, n)); }\n  function rond(k) { return ((k % ANKERS) + ANKERS) % ANKERS; }\n  function twee(n) { return ('0' + n).slice(-2); }\n  function iso(d) { return d.getFullYear() + '-' + twee(d.getMonth() + 1) + '-' + twee(d.getDate()); }\n  function dagenIn(j, m) { return new Date(j, m + 1, 0).getDate(); }\n  function indexVan(d) { return Math.round((d - basis) \/ 86400000); }\n\n  wortel.style.setProperty('--av-dag', PX + 'px');\n\n  \/* ---- Vensters: van anker k tot anker k + 3, rond het jaar ---- *\/\n\n  function ankerMaand(k) { return Math.floor(rond(k) \/ 6); }\n  function ankerDag(k) { return (rond(k) % 6 + 1) * 5; }\n  \/* 30 februari bestaat niet: dan de laatste dag (in een gewoon jaar). *\/\n  function toonDag(k) { return Math.min(ankerDag(k), dagenIn(2025, ankerMaand(k))); }\n\n  var vensters = [];\n  (function () {\n    var k = 0;\n    while (k !== ANKERS) {\n      vensters.push({\n        k: k,\n        vanM: ankerMaand(k), vanD: toonDag(k),\n        totM: ankerMaand(k + 3), totD: toonDag(k + 3)\n      });\n      k = k + 1;\n    }\n  })();\n\n  \/* Positie op de lijn van venster k in een bepaalde kopie van het jaar. *\/\n  function positie(kRuw) { return (kRuw + 2.5) \/ 6 * MAAND; }\n  function kRuwBij(px) { return Math.round(px \/ MAAND * 6 - 2.5); }\n\n  \/* De eerstvolgende keer dat dit venster voorkomt, voor de datumvelden. *\/\n  function eerstvolgende(v) {\n    var j = vandaag.getFullYear();\n    var van = new Date(j, v.vanM, Math.min(ankerDag(v.k), dagenIn(j, v.vanM)));\n    if (!minstens(indexVan(van), 1)) {\n      j = j + 1;\n      van = new Date(j, v.vanM, Math.min(ankerDag(v.k), dagenIn(j, v.vanM)));\n    }\n    var jt = minstens(v.totM, v.vanM) ? j : j + 1;\n    var tot = new Date(jt, v.totM, Math.min(ankerDag(v.k + 3), dagenIn(jt, v.totM)));\n    return { van: van, tot: tot };\n  }\n\n  function vensterVoorDatum(d) {\n    return rond(d.getMonth() * 6 + klem(Math.round(d.getDate() \/ 5), 1, 6) - 1);\n  }\n\n  var pad = 0;\n  \/* Het wiel opent op het venster dat ongeveer vijf weken vooruit begint. *\/\n  var huidig = vensterVoorDatum(new Date(basis.getFullYear(), basis.getMonth(), basis.getDate() + 35));\n  var bewaard = -1;\n  var gekozen = false;\n  var stil = true;\n  var rustTimer = null;\n  var sleep = null;\n  var negeerKlik = false;\n  var vinger = false;\n\n  \/* ---- De lijn: maandnaam in het midden, streepje op het begin van elke maand ---- *\/\n\n  (function () {\n    var i = 0;\n    while (i !== KOPIEEN * 12) {\n      var naam = document.createElement('span');\n      naam.className = 'mf-av-maandnaam';\n      naam.textContent = MAANDEN[i % 12];\n      naam.style.left = ((i + 0.5) * MAAND) + 'px';\n      baan.appendChild(naam);\n\n      var grens = document.createElement('span');\n      grens.className = 'mf-av-grens';\n      grens.textContent = '|';\n      grens.style.left = (i * MAAND) + 'px';\n      baan.appendChild(grens);\n      i = i + 1;\n    }\n  })();\n  baan.removeChild(baan.firstChild);\n\n  function maat() {\n    pad = Math.round(wiel.clientWidth \/ 2);\n    spoor.style.width = (pad * 2 + KOPIEEN * JAAR) + 'px';\n    baan.style.left = pad + 'px';\n    baan.style.width = (KOPIEEN * JAAR) + 'px';\n  }\n\n  \/* ---- Tekst ---- *\/\n\n  \/* Twee kalenderblaadjes: altijd even groot, wat er ook op staat. Het blaadje\n     zelf beweegt niet; het GETAL doet een kleine anticipatie en een plop als het\n     verspringt. *\/\n  function zetBlad(blad, maand, dag) {\n    var elMaand = blad.querySelector('.mf-av-blad-maand');\n    var elDag = blad.querySelector('.mf-av-blad-dag');\n    var nieuw = MAANDEN[maand] + ' ' + dag;\n    if (blad.getAttribute('data-waarde') === nieuw) return;\n    blad.setAttribute('data-waarde', nieuw);\n    elMaand.textContent = MAANDEN[maand];\n    if (elDag.textContent !== String(dag)) {\n      elDag.textContent = String(dag);\n      elDag.classList.remove('is-plop');\n      void elDag.offsetWidth;\n      elDag.classList.add('is-plop');\n    }\n  }\n\n  \/* Zonder jaartal: een algemene vergadering valt elk jaar rond dezelfde tijd, dus\n     we vragen een terugkerend moment, geen datum. *\/\n  function zin(v) {\n    if (v.vanM === v.totM) {\n      return 'tussen ' + v.vanD + ' en ' + v.totD + ' ' + MAANDEN[v.totM];\n    }\n    return 'tussen ' + v.vanD + ' ' + MAANDEN[v.vanM] + ' en ' + v.totD + ' ' + MAANDEN[v.totM];\n  }\n\n  function toon() {\n    if (knopOnbekend.getAttribute('aria-pressed') === 'true') {\n      elAanloop.textContent = 'nog geen idee';\n      elHint.textContent = 'Geen probleem, dat bespreken we samen.';\n      wiel.setAttribute('aria-valuetext', 'Nog geen idee');\n      return;\n    }\n    var v = vensters[huidig];\n    elAanloop.textContent = 'meestal tussen';\n    zetBlad(bladVan, v.vanM, v.vanD);\n    zetBlad(bladTot, v.totM, v.totD);\n    elHint.textContent = gekozen ? '' : 'Schuif of tik op de lijn om te kiezen';\n    wiel.setAttribute('aria-valuetext', zin(v));\n  }\n\n  function bewaar() {\n    if (knopOnbekend.getAttribute('aria-pressed') === 'true') {\n      api.zet('volgende_av_periode', 'onbekend');\n      api.zet('volgende_av_datum', '');\n      api.zet('volgende_av_van', '');\n      api.zet('volgende_av_tot', '');\n      return;\n    }\n    if (!gekozen) return;\n    var v = vensters[huidig];\n    var e = eerstvolgende(v);\n    api.zet('volgende_av_periode', zin(v));\n    api.zet('volgende_av_van', iso(e.van));\n    api.zet('volgende_av_tot', iso(e.tot));\n    var helft = Math.round((indexVan(e.tot) - indexVan(e.van)) \/ 2);\n    api.zet('volgende_av_datum', iso(new Date(e.van.getFullYear(), e.van.getMonth(), e.van.getDate() + helft)));\n  }\n\n  \/* ---- Schuiven ---- *\/\n\n  function kies() {\n    if (knopOnbekend.getAttribute('aria-pressed') === 'true') {\n      knopOnbekend.setAttribute('aria-pressed', 'false');\n      wortel.classList.remove('is-onbekend');\n    }\n    gekozen = true;\n    bewaard = huidig;\n    wortel.classList.remove('is-open');\n    bewaar();\n    toon();\n  }\n\n  function naarRuw(kRuw) {\n    huidig = rond(kRuw);\n    wiel.scrollTo({ left: positie(kRuw), behavior: 'smooth' });\n  }\n\n  function inRust() {\n    if (sleep) return;\n    if (vinger) return;\n    var kRuw = kRuwBij(wiel.scrollLeft);\n    \/* Terug naar de middelste kopie, onzichtbaar: de lijn ziet er in elke kopie\n       hetzelfde uit. *\/\n    var kopie = Math.floor(kRuw \/ ANKERS);\n    if (kopie !== MIDDEN_KOPIE) {\n      var verschuiving = (kopie - MIDDEN_KOPIE) * JAAR;\n      wiel.scrollLeft = wiel.scrollLeft - verschuiving;\n      kRuw = kRuw - (kopie - MIDDEN_KOPIE) * ANKERS;\n    }\n    var doelPx = positie(kRuw);\n    if (!minstens(0.5, Math.abs(wiel.scrollLeft - doelPx))) {\n      wiel.scrollTo({ left: doelPx, behavior: 'smooth' });\n    }\n    var doel = rond(kRuw);\n    if (stil) return;\n    if (doel !== bewaard || !gekozen) {\n      huidig = doel;\n      kies();\n    }\n  }\n\n  wiel.addEventListener('scroll', function () {\n    var i = rond(kRuwBij(wiel.scrollLeft));\n    if (i !== huidig) {\n      huidig = i;\n      \/* De bezoeker schuift zelf: vanaf de eerste wissel is het geen voorstel\n         meer, dus niet meer grijs. Bewaard wordt pas bij het loslaten. *\/\n      if (!stil) wortel.classList.remove('is-open');\n      toon();\n    }\n    clearTimeout(rustTimer);\n    rustTimer = setTimeout(inRust, 130);\n  }, { passive: true });\n\n  function wakker() { stil = false; }\n\n  wiel.addEventListener('touchstart', function () { wakker(); vinger = true; }, { passive: true });\n  function vingerLos() {\n    vinger = false;\n    clearTimeout(rustTimer);\n    rustTimer = setTimeout(inRust, 130);\n  }\n  wiel.addEventListener('touchend', vingerLos, { passive: true });\n  wiel.addEventListener('touchcancel', vingerLos, { passive: true });\n\n  wiel.addEventListener('wheel', function (e) {\n    var dx = e.deltaX;\n    var dy = e.deltaY;\n    var stap = Math.max(Math.abs(dx), Math.abs(dy)) === Math.abs(dy) ? dy : dx;\n    if (stap === 0) return;\n    e.preventDefault();\n    wakker();\n    wiel.scrollLeft = wiel.scrollLeft + stap;\n  }, { passive: false });\n\n  wiel.addEventListener('pointerdown', function (e) {\n    if (e.pointerType !== 'mouse') return;\n    wakker();\n    sleep = { x: e.clientX, begin: wiel.scrollLeft, bewogen: false };\n    wiel.classList.add('is-slepen');\n    wiel.setPointerCapture(e.pointerId);\n  });\n  wiel.addEventListener('pointermove', function (e) {\n    if (!sleep) return;\n    var dx = e.clientX - sleep.x;\n    if (minstens(Math.abs(dx), 4)) sleep.bewogen = true;\n    wiel.scrollLeft = sleep.begin - dx;\n  });\n  function loslaten() {\n    if (!sleep) return;\n    negeerKlik = sleep.bewogen;\n    sleep = null;\n    wiel.classList.remove('is-slepen');\n    inRust();\n  }\n  wiel.addEventListener('pointerup', loslaten);\n  wiel.addEventListener('pointercancel', loslaten);\n\n  \/* Tikken op de lijn schuift het venster rond die plek in het kader. *\/\n  wiel.addEventListener('click', function (e) {\n    if (negeerKlik) {\n      negeerKlik = false;\n      return;\n    }\n    wakker();\n    var x = e.clientX - wiel.getBoundingClientRect().left + wiel.scrollLeft - pad;\n    var kRuw = kRuwBij(x);\n    if (rond(kRuw) === huidig) {\n      kies();\n      return;\n    }\n    naarRuw(kRuw);\n  });\n\n  wiel.addEventListener('keydown', function (e) {\n    var sprong = { ArrowLeft: -1, ArrowRight: 1, ArrowDown: 1, ArrowUp: -1, PageUp: -6, PageDown: 6 }[e.key];\n    if (!sprong) return;\n    e.preventDefault();\n    wakker();\n    naarRuw(kRuwBij(wiel.scrollLeft) + sprong);\n  });\n\n  knopOnbekend.addEventListener('click', function () {\n    var aan = knopOnbekend.getAttribute('aria-pressed') !== 'true';\n    knopOnbekend.setAttribute('aria-pressed', aan ? 'true' : 'false');\n    wortel.classList.toggle('is-onbekend', aan);\n    if (aan) {\n      wortel.classList.remove('is-open');\n      bewaar();\n    } else {\n      gekozen = false;\n      wortel.classList.add('is-open');\n      api.zet('volgende_av_periode', '');\n    }\n    toon();\n  });\n\n  \/* ---- Beginstand ---- *\/\n\n  (function () {\n    var periode = String(api.lees('volgende_av_periode') || '').trim();\n    var van = String(api.lees('volgende_av_van') || '').trim().split('-');\n    if (periode === 'onbekend') {\n      knopOnbekend.setAttribute('aria-pressed', 'true');\n      wortel.classList.add('is-onbekend');\n      wortel.classList.remove('is-open');\n      return;\n    }\n    if (van.length === 3) {\n      var d = new Date(Number(van[0]), Number(van[1]) - 1, Number(van[2]));\n      if (!isNaN(d.getTime())) {\n        huidig = vensterVoorDatum(d);\n        bewaard = huidig;\n        gekozen = true;\n        wortel.classList.remove('is-open');\n      }\n    }\n  })();\n\n  \/* Opnieuw meten en terugzetten, zonder dat het als antwoord telt. De stap staat\n     verborgen (en de pop-up dicht) tot ze aan de beurt is: dan is de breedte 0.\n     Meten gebeurt dus pas als de lijn echt breedte krijgt. *\/\n  var laatsteBreedte = -1;\n  function herschik() {\n    var breedte = wiel.clientWidth;\n    if (breedte === laatsteBreedte) return;\n    laatsteBreedte = breedte;\n    if (breedte === 0) return;\n    var wasStil = stil;\n    var i = huidig;\n    stil = true;\n    maat();\n    wiel.scrollLeft = positie(MIDDEN_KOPIE * ANKERS + i);\n    huidig = i;\n    toon();\n    setTimeout(function () { stil = wasStil; }, 200);\n  }\n\n  toon();\n  herschik();\n  if (window.ResizeObserver) {\n    new ResizeObserver(herschik).observe(wiel);\n  } else {\n    window.addEventListener('resize', herschik);\n  }\n  api.bij('tonen', herschik);\n});\n<\/script>\n<\/div>\n<div class=\"mymmo-stap-nav\">\n<button type=\"button\" class=\"mymmo-stap-knop mymmo-stap-knop--terug\" data-mymmo-vorige>Vorige<\/button><button type=\"button\" class=\"mymmo-stap-knop mymmo-stap-knop--verder\" data-mymmo-volgende>Volgende<\/button>\n<\/div><\/section>            \n            <section class=\"mymmo-stap mymmo-stap--formulier\" data-mymmo-stap=\"4\" data-mymmo-stap-naam=\"formulier\" hidden><h3 class=\"mymmo-stap-titel mymmo-stap-titel--met-tekst\" data-mymmo-kop=\"form-titel\">De laatste loodjes...<\/h3>\n<p class=\"mymmo-stap-tekst\" data-mymmo-kop=\"form-sub\">Dankjewel voor alle info. Hier gaan wij mee aan de slag. Vul nog je naam en emailadres in en we sturen je meteen al ons voorstel op.<\/p>\n<div class=\"mymmo-form-wrap\" id=\"mymmo-modal-we-nemen-contact-met-je-op-extra\" data-mymmo-slug=\"syndicoach-calulator-offerte\" data-mymmo-tabblad=\"extra\" lang=\"nl\" style=\"--mf-accent:#99f6e4;--mf-accent-text:#0369a1;--mf-accent-ink:#0369a1;--mf-gap:18px;--mf-fig-scale:80%;--mf-fig-x:-7px;--mf-fig-y:-41px;--mf-wm-scale:257%;--mf-wm-x:-314px;--mf-wm-y:141px;--mf-wm-rotate:25deg;--mf-accent-ink:#0369a1\">\n\n    \n    \n        \n        \n        \n        \n                <form class=\"mymmo-form\" method=\"post\" action=\"https:\/\/syndicoach.be\/wp-admin\/admin-post.php\" data-mymmo-messages='{\"required\":\"{label} is verplicht.\",\"email\":\"{label} is geen geldig e-mailadres.\",\"number\":\"{label} moet een getal zijn.\",\"date\":\"{label} moet een datum zijn (jjjj-mm-dd).\",\"postcode\":\"{label} is geen geldige postcode.\",\"postcode_unknown\":\"We kennen postcode {value} niet. Kijk ze even na.\",\"city_other\":\"Andere plaats\\u2026\",\"unknown_choice\":\"{label}: onbekende keuze \\\"{value}\\\".\",\"minlength\":\"{label} moet minstens {n} tekens bevatten.\",\"maxlength\":\"{label} mag hoogstens {n} tekens bevatten.\",\"min\":\"{label} moet minstens {n} zijn.\",\"max\":\"{label} mag hoogstens {n} zijn.\",\"choose\":\"Maak een keuze\",\"back\":\"Vorige\",\"next\":\"Volgende\",\"step_of\":\"Stap {n} van {total}\",\"submitting\":\"Bezig met versturen\\u2026\",\"busy\":\"We maken je offerte op\",\"busy_offerte\":\"We maken je offerte op\",\"busy_academy\":\"We zetten je cursus klaar\",\"check_fields\":\"Kijk de gemarkeerde velden na.\",\"expired\":\"De pagina was verlopen. Probeer het opnieuw.\",\"stale_page\":\"Deze pagina stond te lang open. Ververs ze en probeer opnieuw.\",\"rejected\":\"De inzending kon niet verwerkt worden.\",\"bot_check\":\"We konden niet nagaan of je geen robot bent. Probeer het opnieuw.\",\"unavailable\":\"Dit formulier is momenteel niet beschikbaar.\",\"send_failed\":\"We konden je bericht niet versturen. Probeer het zo meteen opnieuw.\"}' data-mymmo-turnstile=\"0x4AAAAAAFOLN57a5gYOjyhK\" novalidate>\n\n            <input type=\"hidden\" id=\"_wpnonce\" name=\"_wpnonce\" value=\"086fd692ac\"><input type=\"hidden\" name=\"_wp_http_referer\" value=\"\/fr\/wp-json\/wp\/v2\/pages\/18192\">            <input type=\"hidden\" name=\"action\" value=\"mymmo_forms_submit\">\n            <input type=\"hidden\" name=\"mymmo_form_slug\" value=\"syndicoach-calulator-offerte\">\n                        <input type=\"hidden\" name=\"mymmo_lang\" value=\"nl\">\n            <input type=\"hidden\" name=\"mymmo_redirect_to\" value=\"https:\/\/syndicoach.be\/fr\/aanpak\/\">\n                            <input type=\"hidden\" name=\"mymmo_anchor\" value=\"mymmo-modal-we-nemen-contact-met-je-op\">\n                                        <input type=\"hidden\" name=\"mymmo_tab\" value=\"extra\">\n                        <input type=\"hidden\" name=\"mymmo_page_title\" value=\"Syndicoach\">\n            <input type=\"hidden\" name=\"mymmo_forms_t\" value=\"1791384334.984c667b302fa502f14906f8e47a3a56\">\n\n            \n                        <div class=\"mymmo-form-hp\" aria-hidden=\"true\">\n                <label for=\"mymmo-modal-we-nemen-contact-met-je-op-extra-hp\">Laat dit veld leeg<\/label>\n                <input type=\"text\" id=\"mymmo-modal-we-nemen-contact-met-je-op-extra-hp\" name=\"mymmo_forms_website\" value=\"\" tabindex=\"-1\" autocomplete=\"off\">\n            <\/div>\n\n            \n            <div class=\"mymmo-form-grid\">\n                <div class=\"mymmo-form-field mymmo-form-field--full mymmo-form-field--text\" data-mymmo-label=\"Naam\">\n\n    \n        <label class=\"mymmo-form-label\" for=\"mymmo-modal-we-nemen-contact-met-je-op-extra-naam\">\n            Naam <span class=\"mymmo-form-req\" aria-hidden=\"true\">*<\/span>        <\/label>\n\n                    <input type=\"text\" id=\"mymmo-modal-we-nemen-contact-met-je-op-extra-naam\" name=\"naam\" class=\"mymmo-form-input\" value=\"\" placeholder=\"\" required aria-required=\"true\" aria-describedby=\"mymmo-modal-we-nemen-contact-met-je-op-extra-naam-error\">\n\n        \n    \n    \n        <p class=\"mymmo-form-error\" id=\"mymmo-modal-we-nemen-contact-met-je-op-extra-naam-error\" role=\"alert\" data-mymmo-error hidden><\/p>\n<\/div>\n<div class=\"mymmo-form-field mymmo-form-field--half mymmo-form-field--email\" data-mymmo-label=\"E-mailadres\">\n\n    \n        <label class=\"mymmo-form-label\" for=\"mymmo-modal-we-nemen-contact-met-je-op-extra-e_mailadres\">\n            E-mailadres <span class=\"mymmo-form-req\" aria-hidden=\"true\">*<\/span>        <\/label>\n\n                    <input type=\"email\" id=\"mymmo-modal-we-nemen-contact-met-je-op-extra-e_mailadres\" name=\"e_mailadres\" class=\"mymmo-form-input\" value=\"\" placeholder=\"\" required aria-required=\"true\" aria-describedby=\"mymmo-modal-we-nemen-contact-met-je-op-extra-e_mailadres-error\" autocomplete=\"email\">\n\n        \n    \n    \n        <p class=\"mymmo-form-error\" id=\"mymmo-modal-we-nemen-contact-met-je-op-extra-e_mailadres-error\" role=\"alert\" data-mymmo-error hidden><\/p>\n<\/div>\n<div class=\"mymmo-form-field mymmo-form-field--half mymmo-form-field--tel\" data-mymmo-label=\"Telefoonnummer\">\n\n    \n        <label class=\"mymmo-form-label\" for=\"mymmo-modal-we-nemen-contact-met-je-op-extra-tel\">\n            Telefoonnummer <span class=\"mymmo-form-req\" aria-hidden=\"true\">*<\/span>        <\/label>\n\n                    <input type=\"tel\" id=\"mymmo-modal-we-nemen-contact-met-je-op-extra-tel\" name=\"tel\" class=\"mymmo-form-input\" value=\"\" placeholder=\"\" required aria-required=\"true\" aria-describedby=\"mymmo-modal-we-nemen-contact-met-je-op-extra-tel-error\" autocomplete=\"tel\">\n\n        \n    \n    \n        <p class=\"mymmo-form-error\" id=\"mymmo-modal-we-nemen-contact-met-je-op-extra-tel-error\" role=\"alert\" data-mymmo-error hidden><\/p>\n<\/div>\n<div class=\"mymmo-form-field mymmo-form-field--half mymmo-form-field--text\" data-mymmo-label=\"Straat\">\n\n    \n        <label class=\"mymmo-form-label\" for=\"mymmo-modal-we-nemen-contact-met-je-op-extra-adres_van_het_gebouw\">\n            Straat <span class=\"mymmo-form-req\" aria-hidden=\"true\">*<\/span>        <\/label>\n\n                    <input type=\"text\" id=\"mymmo-modal-we-nemen-contact-met-je-op-extra-adres_van_het_gebouw\" name=\"adres_van_het_gebouw\" class=\"mymmo-form-input\" value=\"\" placeholder=\"\" required aria-required=\"true\" aria-describedby=\"mymmo-modal-we-nemen-contact-met-je-op-extra-adres_van_het_gebouw-error\">\n\n        \n    \n    \n        <p class=\"mymmo-form-error\" id=\"mymmo-modal-we-nemen-contact-met-je-op-extra-adres_van_het_gebouw-error\" role=\"alert\" data-mymmo-error hidden><\/p>\n<\/div>\n<div class=\"mymmo-form-field mymmo-form-field--half mymmo-form-field--text\" data-mymmo-label=\"Nummer\">\n\n    \n        <label class=\"mymmo-form-label\" for=\"mymmo-modal-we-nemen-contact-met-je-op-extra-nummer\">\n            Nummer <span class=\"mymmo-form-req\" aria-hidden=\"true\">*<\/span>        <\/label>\n\n                    <input type=\"text\" id=\"mymmo-modal-we-nemen-contact-met-je-op-extra-nummer\" name=\"nummer\" class=\"mymmo-form-input\" value=\"\" placeholder=\"\" required aria-required=\"true\" aria-describedby=\"mymmo-modal-we-nemen-contact-met-je-op-extra-nummer-error\">\n\n        \n    \n    \n        <p class=\"mymmo-form-error\" id=\"mymmo-modal-we-nemen-contact-met-je-op-extra-nummer-error\" role=\"alert\" data-mymmo-error hidden><\/p>\n<\/div>\n<div class=\"mymmo-form-field mymmo-form-field--half mymmo-form-field--postcode\" data-mymmo-label=\"Postcode\">\n\n    \n        <label class=\"mymmo-form-label\" for=\"mymmo-modal-we-nemen-contact-met-je-op-extra-zip\">\n            Postcode <span class=\"mymmo-form-req\" aria-hidden=\"true\">*<\/span>        <\/label>\n\n                    <input type=\"text\" id=\"mymmo-modal-we-nemen-contact-met-je-op-extra-zip\" name=\"zip\" class=\"mymmo-form-input\" value=\"\" placeholder=\"\" autocomplete=\"postal-code\" inputmode=\"numeric\" autocapitalize=\"characters\" spellcheck=\"false\" maxlength=\"12\" data-mymmo-postcode=\"BE\" data-mymmo-postcode-lijst=\"https:\/\/syndicoach.be\/wp-content\/plugins\/mymmo-forms\/assets\/data\/postcodes-be.json?ver=1.23.1\" data-mymmo-gemeente=\"gemeente\" required aria-required=\"true\" aria-describedby=\"mymmo-modal-we-nemen-contact-met-je-op-extra-zip-error\">\n\n        \n    \n    \n        <p class=\"mymmo-form-error\" id=\"mymmo-modal-we-nemen-contact-met-je-op-extra-zip-error\" role=\"alert\" data-mymmo-error hidden><\/p>\n<\/div>\n<div class=\"mymmo-form-field mymmo-form-field--half mymmo-form-field--city\" data-mymmo-label=\"Stad\/Gemeente\">\n\n    \n        <label class=\"mymmo-form-label\" for=\"mymmo-modal-we-nemen-contact-met-je-op-extra-gemeente\">\n            Stad\/Gemeente <span class=\"mymmo-form-req\" aria-hidden=\"true\">*<\/span>        <\/label>\n\n                    <input type=\"text\" id=\"mymmo-modal-we-nemen-contact-met-je-op-extra-gemeente\" name=\"gemeente\" class=\"mymmo-form-input\" value=\"\" placeholder=\"\" autocomplete=\"address-level2\" data-mymmo-gemeente-van=\"zip\" required aria-required=\"true\" aria-describedby=\"mymmo-modal-we-nemen-contact-met-je-op-extra-gemeente-error\">\n            <select id=\"mymmo-modal-we-nemen-contact-met-je-op-extra-gemeente-keuze\" class=\"mymmo-form-input\" data-mymmo-gemeente-keuze hidden disabled aria-describedby=\"mymmo-modal-we-nemen-contact-met-je-op-extra-gemeente-error\"><\/select>\n\n        \n    \n    \n        <p class=\"mymmo-form-error\" id=\"mymmo-modal-we-nemen-contact-met-je-op-extra-gemeente-error\" role=\"alert\" data-mymmo-error hidden><\/p>\n<\/div>\n<input type=\"hidden\" name=\"aantal_kavels\" value=\"\"><input type=\"hidden\" name=\"commerciele_kavels\" value=\"\"><input type=\"hidden\" name=\"gebouw_kenmerken\" value=\"\"><input type=\"hidden\" name=\"huidig_beheer\" value=\"\"><input type=\"hidden\" name=\"volgende_av_periode\" value=\"\"><input type=\"hidden\" name=\"volgende_av_van\" value=\"\"><input type=\"hidden\" name=\"volgende_av_tot\" value=\"\"><input type=\"hidden\" name=\"volgende_av_datum\" value=\"\"><input type=\"hidden\" name=\"waarom_syndicoach\" value=\"\">            <\/div>\n\n                                    <div class=\"mymmo-form-actions\">\n                                    <button type=\"button\" class=\"mymmo-form-back\" data-mymmo-vorige>\n                        Vorige                    <\/button>\n                                <button type=\"submit\" class=\"mymmo-form-submit\">\n                    Versturen                <\/button>\n            <\/div>\n                    <\/form>\n\n    <\/div>\n<\/section>    <\/div>\n<div class=\"mymmo-dank\" data-mymmo-dank-scherm=\"extra\" hidden>\n<img class=\"mymmo-dank-beeld lazyload\" data-mymmo-dank=\"beeld\" data-src=\"https:\/\/link.openvme.be\/assets\/brand\/relax-voor-computer.svg\" alt=\"\" decoding=\"async\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\"><h3 class=\"mymmo-dank-titel\" data-mymmo-dank=\"titel\">Bedankt!<\/h3>\n<p class=\"mymmo-dank-tekst\" data-mymmo-dank=\"tekst\">We sturen je meteen de offerte op.<\/p>\n<\/div>                                            <\/section>\n                                        <section class=\"mymmo-modal-paneel\" id=\"mymmo-modal-we-nemen-contact-met-je-op-paneel-form\" role=\"tabpanel\" aria-labelledby=\"mymmo-modal-we-nemen-contact-met-je-op-tab-form\" tabindex=\"0\" data-mymmo-paneel=\"form\">\n\n                                                    <h3 class=\"mymmo-modal-paneel-titel\">Stuur een bericht<\/h3>\n                        \n                                                    <div class=\"mymmo-form-wrap\" id=\"mymmo-modal-we-nemen-contact-met-je-op-formulier\" data-mymmo-slug=\"we-nemen-contact-met-je-op\" data-mymmo-tabblad=\"form\" lang=\"nl\" style=\"--mf-accent:#2563eb;--mf-max-width:720px;--mf-accent:#99f6e4;--mf-accent-text:#0369a1;--mf-accent-ink:#0369a1;--mf-gap:18px;--mf-fig-scale:80%;--mf-fig-x:-7px;--mf-fig-y:-41px;--mf-wm-scale:257%;--mf-wm-x:-314px;--mf-wm-y:141px;--mf-wm-rotate:25deg;--mf-accent-ink:#0369a1\">\n\n    \n    \n        \n        <h3 class=\"mymmo-stap-titel mymmo-stap-titel--met-tekst\" data-mymmo-kop=\"form-titel\">Stel je vraag, wij zoeken het uit<\/h3>\n<p class=\"mymmo-stap-tekst\" data-mymmo-kop=\"form-sub\">Laat je gegevens achter en we nemen zo spoedig mogelijk contact met je op.<\/p>\n        \n        \n                <form class=\"mymmo-form\" method=\"post\" action=\"https:\/\/syndicoach.be\/wp-admin\/admin-post.php\" data-mymmo-messages='{\"required\":\"{label} is verplicht.\",\"email\":\"{label} is geen geldig e-mailadres.\",\"number\":\"{label} moet een getal zijn.\",\"date\":\"{label} moet een datum zijn (jjjj-mm-dd).\",\"postcode\":\"{label} is geen geldige postcode.\",\"postcode_unknown\":\"We kennen postcode {value} niet. Kijk ze even na.\",\"city_other\":\"Andere plaats\\u2026\",\"unknown_choice\":\"{label}: onbekende keuze \\\"{value}\\\".\",\"minlength\":\"{label} moet minstens {n} tekens bevatten.\",\"maxlength\":\"{label} mag hoogstens {n} tekens bevatten.\",\"min\":\"{label} moet minstens {n} zijn.\",\"max\":\"{label} mag hoogstens {n} zijn.\",\"choose\":\"Maak een keuze\",\"back\":\"Vorige\",\"next\":\"Volgende\",\"step_of\":\"Stap {n} van {total}\",\"submitting\":\"Bezig met versturen\\u2026\",\"busy\":\"Even geduld\",\"busy_offerte\":\"We maken je offerte op\",\"busy_academy\":\"We zetten je cursus klaar\",\"check_fields\":\"Kijk de gemarkeerde velden na.\",\"expired\":\"De pagina was verlopen. Probeer het opnieuw.\",\"stale_page\":\"Deze pagina stond te lang open. Ververs ze en probeer opnieuw.\",\"rejected\":\"De inzending kon niet verwerkt worden.\",\"bot_check\":\"We konden niet nagaan of je geen robot bent. Probeer het opnieuw.\",\"unavailable\":\"Dit formulier is momenteel niet beschikbaar.\",\"send_failed\":\"We konden je bericht niet versturen. Probeer het zo meteen opnieuw.\"}' data-mymmo-turnstile=\"0x4AAAAAAFOLN57a5gYOjyhK\" novalidate>\n\n            <input type=\"hidden\" id=\"_wpnonce\" name=\"_wpnonce\" value=\"ad48b43cad\"><input type=\"hidden\" name=\"_wp_http_referer\" value=\"\/fr\/wp-json\/wp\/v2\/pages\/18192\">            <input type=\"hidden\" name=\"action\" value=\"mymmo_forms_submit\">\n            <input type=\"hidden\" name=\"mymmo_form_slug\" value=\"we-nemen-contact-met-je-op\">\n                        <input type=\"hidden\" name=\"mymmo_lang\" value=\"nl\">\n            <input type=\"hidden\" name=\"mymmo_redirect_to\" value=\"https:\/\/syndicoach.be\/fr\/aanpak\/\">\n                            <input type=\"hidden\" name=\"mymmo_anchor\" value=\"mymmo-modal-we-nemen-contact-met-je-op\">\n                                        <input type=\"hidden\" name=\"mymmo_tab\" value=\"form\">\n                        <input type=\"hidden\" name=\"mymmo_page_title\" value=\"Syndicoach\">\n            <input type=\"hidden\" name=\"mymmo_forms_t\" value=\"1791384334.984c667b302fa502f14906f8e47a3a56\">\n\n            \n                        <div class=\"mymmo-form-hp\" aria-hidden=\"true\">\n                <label for=\"mymmo-modal-we-nemen-contact-met-je-op-formulier-hp\">Laat dit veld leeg<\/label>\n                <input type=\"text\" id=\"mymmo-modal-we-nemen-contact-met-je-op-formulier-hp\" name=\"mymmo_forms_website\" value=\"\" tabindex=\"-1\" autocomplete=\"off\">\n            <\/div>\n\n            \n            <div class=\"mymmo-form-grid\">\n                <div class=\"mymmo-form-field mymmo-form-field--full mymmo-form-field--text\" data-mymmo-label=\"Naam\">\n\n    \n        <label class=\"mymmo-form-label\" for=\"mymmo-modal-we-nemen-contact-met-je-op-formulier-naam\">\n            Naam <span class=\"mymmo-form-req\" aria-hidden=\"true\">*<\/span>        <\/label>\n\n                    <input type=\"text\" id=\"mymmo-modal-we-nemen-contact-met-je-op-formulier-naam\" name=\"naam\" class=\"mymmo-form-input\" value=\"\" placeholder=\"\" required aria-required=\"true\" aria-describedby=\"mymmo-modal-we-nemen-contact-met-je-op-formulier-naam-error\">\n\n        \n    \n    \n        <p class=\"mymmo-form-error\" id=\"mymmo-modal-we-nemen-contact-met-je-op-formulier-naam-error\" role=\"alert\" data-mymmo-error hidden><\/p>\n<\/div>\n<div class=\"mymmo-form-field mymmo-form-field--full mymmo-form-field--email\" data-mymmo-label=\"E-mailadres\">\n\n    \n        <label class=\"mymmo-form-label\" for=\"mymmo-modal-we-nemen-contact-met-je-op-formulier-e_mailadres\">\n            E-mailadres <span class=\"mymmo-form-req\" aria-hidden=\"true\">*<\/span>        <\/label>\n\n                    <input type=\"email\" id=\"mymmo-modal-we-nemen-contact-met-je-op-formulier-e_mailadres\" name=\"e_mailadres\" class=\"mymmo-form-input\" value=\"\" placeholder=\"\" required aria-required=\"true\" aria-describedby=\"mymmo-modal-we-nemen-contact-met-je-op-formulier-e_mailadres-error\" autocomplete=\"email\">\n\n        \n    \n    \n        <p class=\"mymmo-form-error\" id=\"mymmo-modal-we-nemen-contact-met-je-op-formulier-e_mailadres-error\" role=\"alert\" data-mymmo-error hidden><\/p>\n<\/div>\n<div class=\"mymmo-form-field mymmo-form-field--full mymmo-form-field--tel\" data-mymmo-label=\"Telefoonnummer\">\n\n    \n        <label class=\"mymmo-form-label\" for=\"mymmo-modal-we-nemen-contact-met-je-op-formulier-telefoonnummer\">\n            Telefoonnummer <span class=\"mymmo-form-req\" aria-hidden=\"true\">*<\/span>        <\/label>\n\n                    <input type=\"tel\" id=\"mymmo-modal-we-nemen-contact-met-je-op-formulier-telefoonnummer\" name=\"telefoonnummer\" class=\"mymmo-form-input\" value=\"\" placeholder=\"\" required aria-required=\"true\" aria-describedby=\"mymmo-modal-we-nemen-contact-met-je-op-formulier-telefoonnummer-error\" autocomplete=\"tel\">\n\n        \n    \n    \n        <p class=\"mymmo-form-error\" id=\"mymmo-modal-we-nemen-contact-met-je-op-formulier-telefoonnummer-error\" role=\"alert\" data-mymmo-error hidden><\/p>\n<\/div>\n<div class=\"mymmo-form-field mymmo-form-field--full mymmo-form-field--textarea\" data-mymmo-label=\"Waar kunnen we je mee helpen?\">\n\n    \n        <label class=\"mymmo-form-label\" for=\"mymmo-modal-we-nemen-contact-met-je-op-formulier-waar_kunnen_we_je_mee_helpen_2\">\n            Waar kunnen we je mee helpen? <span class=\"mymmo-form-req\" aria-hidden=\"true\">*<\/span>        <\/label>\n\n        \n            <textarea id=\"mymmo-modal-we-nemen-contact-met-je-op-formulier-waar_kunnen_we_je_mee_helpen_2\" name=\"waar_kunnen_we_je_mee_helpen_2\" class=\"mymmo-form-input\" rows=\"5\" placeholder=\"\" required aria-required=\"true\" aria-describedby=\"mymmo-modal-we-nemen-contact-met-je-op-formulier-waar_kunnen_we_je_mee_helpen_2-error\"><\/textarea>\n\n        \n    \n    \n        <p class=\"mymmo-form-error\" id=\"mymmo-modal-we-nemen-contact-met-je-op-formulier-waar_kunnen_we_je_mee_helpen_2-error\" role=\"alert\" data-mymmo-error hidden><\/p>\n<\/div>\n            <\/div>\n\n                                    <div class=\"mymmo-form-actions\">\n                                <button type=\"submit\" class=\"mymmo-form-submit\">\n                    Stuur je vraag door                <\/button>\n            <\/div>\n                    <\/form>\n\n    <\/div>\n<div class=\"mymmo-dank\" data-mymmo-dank-scherm=\"form\" hidden>\n<img class=\"mymmo-dank-beeld lazyload\" data-mymmo-dank=\"beeld\" data-src=\"https:\/\/link.openvme.be\/assets\/brand\/relax-voor-computer.svg\" alt=\"\" decoding=\"async\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\"><h3 class=\"mymmo-dank-titel\" data-mymmo-dank=\"titel\">Bedankt!<\/h3>\n<p class=\"mymmo-dank-tekst\" data-mymmo-dank=\"tekst\">Binnen enkele ogenblikken zit de offerte in je mailbox.<\/p>\n<\/div>                                            <\/section>\n                                        <section class=\"mymmo-modal-paneel mymmo-modal-paneel--agenda is-actief\" id=\"mymmo-modal-we-nemen-contact-met-je-op-paneel-calendly\" role=\"tabpanel\" aria-labelledby=\"mymmo-modal-we-nemen-contact-met-je-op-tab-calendly\" tabindex=\"0\" data-mymmo-paneel=\"calendly\">\n\n                                                    <h3 class=\"mymmo-modal-paneel-titel\">Plan een gesprek<\/h3>\n                        \n                                                                                                            <div class=\"mymmo-modal-agenda\" data-mymmo-calendly=\"https:\/\/calendly.com\/d\/cw7t-pq4-mzg\/ontmoet-jouw-syndicoach\" data-mymmo-calendly-kleur=\"0369a1\" data-mymmo-dank=\"Je krijgt alle informatie en de link zometeen per mail toegestuurd.\">\n                                <p class=\"mymmo-modal-agenda-terugval\">\n                                    <a class=\"mymmo-modal-agenda-link\" href=\"https:\/\/calendly.com\/d\/cw7t-pq4-mzg\/ontmoet-jouw-syndicoach\" target=\"_blank\" rel=\"noopener noreferrer\">Plan een gesprek<\/a>\n                                <\/p>\n                            <\/div>\n                            <div class=\"mymmo-dank\" data-mymmo-dank-scherm=\"calendly\" hidden>\n<img class=\"mymmo-dank-beeld lazyload\" data-mymmo-dank=\"beeld\" data-src=\"https:\/\/link.openvme.be\/assets\/brand\/relax-voor-computer.svg\" alt=\"\" decoding=\"async\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\"><h3 class=\"mymmo-dank-titel\" data-mymmo-dank=\"titel\">Je afspraak staat geboekt!<\/h3>\n<p class=\"mymmo-dank-tekst\" data-mymmo-dank=\"tekst\">Je krijgt alle informatie en de link zometeen per mail toegestuurd.<\/p>\n<\/div>                                            <\/section>\n                    \n                <\/div>\n            <\/div>\n\n            <\/div>        <\/div>\n    <\/div>\n\n    <\/div>\n<\/div>\n\n\n<figure class=\"wp-block-image size-large\" style=\"\"><img decoding=\"async\" width=\"1024\" height=\"459\" data-src=\"https:\/\/syndicoach.be\/wp-content\/uploads\/2026\/09\/team-syndicoach-1024x459.png\" alt=\"team syndicoach\" class=\"wp-image-18204 lazyload\" data-srcset=\"https:\/\/syndicoach.be\/wp-content\/uploads\/2026\/09\/team-syndicoach-1024x459.png 1024w, https:\/\/syndicoach.be\/wp-content\/uploads\/2026\/09\/team-syndicoach-300x135.png 300w, https:\/\/syndicoach.be\/wp-content\/uploads\/2026\/09\/team-syndicoach-768x345.png 768w, https:\/\/syndicoach.be\/wp-content\/uploads\/2026\/09\/team-syndicoach-18x8.png 18w, https:\/\/syndicoach.be\/wp-content\/uploads\/2026\/09\/team-syndicoach.png 1400w\" data-sizes=\"(max-width: 1024px) 100vw, 1024px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1024px; --smush-placeholder-aspect-ratio: 1024\/459;\" \/><\/figure>\n<\/div>\n\n\n<div class=\"wp-block-group alignfull is-layout-constrained wp-block-group-is-layout-constrained has-background lazyload\" style=\"background-image:inherit;background-position:100% 45%;background-size:cover;padding:var(--wp--preset--spacing--xxl) 0\" data-bg-image=\"url(&#039;https:\/\/syndicoach.be\/wp-content\/uploads\/2026\/09\/swirl-2.svg&#039;)\">\n<div class=\"wp-block-columns alignwide sc-plan is-layout-flex wp-container-core-columns-is-layout-5d2f3228 wp-block-columns-is-layout-flex is-stacked-on-mobile\" data-columns=\"2\" style=\"--columns:2\">\n<div class=\"wp-block-column sc-plan__intro is-layout-flow wp-block-column-is-layout-flow\" style=\"padding-right:var(--wp--preset--spacing--sm);flex-basis:30%\">\n<h2 id=\"een-concreet-plan-van-bij-de-start\" class=\"wp-block-heading has-text-align-left\">Een concreet plan van bij de start<\/h2>\n\n\n<p class=\"wp-block-paragraph has-text-align-left has-body-l-font-size wp-block-paragraph\" style=\"\">Je krijgt een vast aanspreekpunt, een plan van aanpak en een overzicht van waar je gebouw vandaag staat.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:70%\">\n<div class=\"wp-block-group sc-steps is-layout-flow wp-block-group-is-layout-flow\">\n<div class=\"wp-block-group sc-step sc-step--1 has-custom-99-f-6-e-4-background-color has-background is-layout-flow wp-block-group-is-layout-flow\" style=\"border-top-left-radius:20px;border-top-right-radius:20px;border-bottom-left-radius:20px;border-bottom-right-radius:20px;padding:var(--wp--preset--spacing--lg) var(--wp--preset--spacing--md)\">\n<div class=\"wp-block-columns are-vertically-aligned-top is-not-stacked-on-mobile is-layout-flex wp-container-core-columns-is-layout-5d2f3228 wp-block-columns-is-layout-flex\" data-columns=\"2\" style=\"--columns:2\">\n<div class=\"wp-block-column is-vertically-aligned-top is-layout-flow wp-block-column-is-layout-flow\" style=\"padding-right:var(--wp--preset--spacing--sm);padding-left:var(--wp--preset--spacing--sm);flex-basis:90%\">\n<h3 id=\"we-brengen-je-gebouw-in-kaart\" class=\"wp-block-heading\">We brengen je gebouw in kaart<\/h3>\n\n\n<p class=\"wp-block-paragraph wp-block-paragraph\" style=\"\">We komen ter plekke om je gebouw volledig in kaart te brengen en doen een technische analyse. Alle keuringen worden gecheckt: brandblussers, liften, laadpalen en meer.<\/p>\n\n\n<p class=\"wp-block-paragraph wp-block-paragraph\" style=\"\">Wat is al in orde en wat vraagt nog aandacht? Wij zorgen voor een overzicht.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-top is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:15%\">\n<figure class=\"wp-block-image size-full\" style=\"\"><img decoding=\"async\" width=\"146\" height=\"161\" data-src=\"https:\/\/syndicoach.be\/wp-content\/uploads\/2026\/09\/stap-1.png\" alt=\"\" class=\"wp-image-18211 lazyload\" data-srcset=\"https:\/\/syndicoach.be\/wp-content\/uploads\/2026\/09\/stap-1.png 146w, https:\/\/syndicoach.be\/wp-content\/uploads\/2026\/09\/stap-1-11x12.png 11w\" data-sizes=\"(max-width: 146px) 100vw, 146px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 146px; --smush-placeholder-aspect-ratio: 146\/161;\" \/><\/figure>\n<\/div>\n<\/div>\n<\/div>\n\n\n<div class=\"wp-block-group sc-step sc-step--1 has-custom-fbcfe-8-background-color has-background is-layout-flow wp-block-group-is-layout-flow\" style=\"border-top-left-radius:20px;border-top-right-radius:20px;border-bottom-left-radius:20px;border-bottom-right-radius:20px;padding:var(--wp--preset--spacing--lg) var(--wp--preset--spacing--md)\">\n<div class=\"wp-block-columns are-vertically-aligned-top is-not-stacked-on-mobile is-layout-flex wp-container-core-columns-is-layout-5d2f3228 wp-block-columns-is-layout-flex\" data-columns=\"2\" style=\"--columns:2\">\n<div class=\"wp-block-column is-vertically-aligned-top is-layout-flow wp-block-column-is-layout-flow\" style=\"padding-right:var(--wp--preset--spacing--sm);padding-left:var(--wp--preset--spacing--sm);flex-basis:90%\">\n<h3 id=\"jij-krijgt-volledig-zicht-op-alle-kosten\" class=\"wp-block-heading\">Jij krijgt volledig zicht op alle kosten<\/h3>\n\n\n<p class=\"wp-block-paragraph wp-block-paragraph\" style=\"\">We maken jullie budget op, en koppelen elke factuur aan waarvoor ze dient. Het hele jaar door heb jij zicht op alle kosten en betalingen.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-top is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:15%\">\n<figure class=\"wp-block-image size-full\" style=\"\"><img decoding=\"async\" width=\"133\" height=\"165\" data-src=\"https:\/\/syndicoach.be\/wp-content\/uploads\/2026\/09\/stap-2.png\" alt=\"\" class=\"wp-image-18245 lazyload\" data-srcset=\"https:\/\/syndicoach.be\/wp-content\/uploads\/2026\/09\/stap-2.png 133w, https:\/\/syndicoach.be\/wp-content\/uploads\/2026\/09\/stap-2-10x12.png 10w\" data-sizes=\"(max-width: 133px) 100vw, 133px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 133px; --smush-placeholder-aspect-ratio: 133\/165;\" \/><\/figure>\n<\/div>\n<\/div>\n<\/div>\n\n\n<div class=\"wp-block-group sc-step sc-step--1 has-custom-bae-6-fd-background-color has-background is-layout-flow wp-block-group-is-layout-flow\" style=\"border-top-left-radius:20px;border-top-right-radius:20px;border-bottom-left-radius:20px;border-bottom-right-radius:20px;padding:var(--wp--preset--spacing--lg) var(--wp--preset--spacing--md)\">\n<div class=\"wp-block-columns are-vertically-aligned-top is-not-stacked-on-mobile is-layout-flex wp-container-core-columns-is-layout-5d2f3228 wp-block-columns-is-layout-flex\" data-columns=\"2\" style=\"--columns:2\">\n<div class=\"wp-block-column is-vertically-aligned-top is-layout-flow wp-block-column-is-layout-flow\" style=\"padding-right:var(--wp--preset--spacing--sm);padding-left:var(--wp--preset--spacing--sm);flex-basis:90%\">\n<h3 id=\"jij-houdt-de-touwtjes-in-handen\" class=\"wp-block-heading\">Jij houdt de touwtjes in handen<\/h3>\n\n\n<p class=\"wp-block-paragraph wp-block-paragraph\" style=\"\">Syndicoach neemt het lastige werk over: de boekhouding, de administratie, offertes en dossiers die niemand graag opvolgt.<\/p>\n\n\n<p class=\"wp-block-paragraph wp-block-paragraph\" style=\"\">Toch blijft alles op naam van jouw gebouw staan, elke factuur en elke beslissing. Zelfs wanneer je ooit wisselt van syndicus.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-top is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:15%\">\n<figure class=\"wp-block-image size-full\" style=\"\"><img decoding=\"async\" width=\"167\" height=\"160\" data-src=\"https:\/\/syndicoach.be\/wp-content\/uploads\/2026\/09\/stap-3.png\" alt=\"\" class=\"wp-image-18244 lazyload\" data-srcset=\"https:\/\/syndicoach.be\/wp-content\/uploads\/2026\/09\/stap-3.png 167w, https:\/\/syndicoach.be\/wp-content\/uploads\/2026\/09\/stap-3-13x12.png 13w\" data-sizes=\"(max-width: 167px) 100vw, 167px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 167px; --smush-placeholder-aspect-ratio: 167\/160;\" \/><\/figure>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n\n\n<div class=\"wp-block-group alignfull has-custom-f-0-f-9-ff-background-color has-background is-layout-constrained wp-container-core-group-is-layout-7f5e8bdd wp-block-group-is-layout-constrained\" style=\"margin:var(--wp--preset--spacing--0) 0;padding:var(--wp--preset--spacing--lg) var(--wp--preset--spacing--md)\">\n<h3 id=\"waar-maakt-syndicoach-het-verschil\" class=\"wp-block-heading has-text-align-center\">Waar maakt Syndicoach het verschil?<\/h3>\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-958be64d wp-block-columns-is-layout-flex is-stacked-on-mobile\" style=\"padding-top:var(--wp--preset--spacing--md);padding-right:var(--wp--preset--spacing--md);padding-bottom:var(--wp--preset--spacing--md);padding-left:var(--wp--preset--spacing--md);--columns:3\" data-columns=\"3\">\n<div class=\"wp-block-column is-vertically-aligned-top has-neutral-0-background-color has-background is-layout-flow wp-block-column-is-layout-flow\" style=\"border-top-left-radius:20px;border-top-right-radius:20px;border-bottom-left-radius:20px;border-bottom-right-radius:20px;padding-top:var(--wp--preset--spacing--md);padding-right:var(--wp--preset--spacing--md);padding-bottom:var(--wp--preset--spacing--md);padding-left:var(--wp--preset--spacing--md);box-shadow:var(--wp--preset--shadow--lg)\">\n<figure class=\"wp-block-image alignleft size-large is-resized has-custom-border has-custom-0369-a-1-color has-success-500-background-color has-text-color has-background has-link-color wp-elements-1 has-inlined-svg\" style=\"border-top-left-radius:15px;border-top-right-radius:15px;border-bottom-left-radius:15px;border-bottom-right-radius:15px;padding-top:14px;padding-right:14px;padding-bottom:7px;padding-left:14px\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"30\" height=\"30\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"wp-image-15145\"><path d=\"M16 7h6v6\"><\/path><path d=\"m22 7-8.5 8.5-5-5L2 17\"><\/path><\/svg><\/figure>\n\n\n<div style=\"height:1px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<h5 id=\"je-gebouw-behoudt-zijn-waarde\" class=\"wp-block-heading has-text-align-left\"><strong><strong>Je gebouw behoudt zijn waarde<\/strong><\/strong><\/h5>\n\n\n<p class=\"wp-block-paragraph has-text-align-left wp-block-paragraph\" style=\"\">Goed beheer beschermt en versterkt de waarde van je gebouw. Met Syndicoach is professioneel beheer haalbaar voor elke VME.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-top has-neutral-0-background-color has-background is-layout-flow wp-block-column-is-layout-flow\" style=\"border-top-left-radius:20px;border-top-right-radius:20px;border-bottom-left-radius:20px;border-bottom-right-radius:20px;margin-right:var(--wp--preset--spacing--xxs);margin-left:var(--wp--preset--spacing--xxs);padding-top:var(--wp--preset--spacing--md);padding-right:var(--wp--preset--spacing--md);padding-bottom:var(--wp--preset--spacing--md);padding-left:var(--wp--preset--spacing--md);box-shadow:var(--wp--preset--shadow--lg)\">\n<figure class=\"wp-block-image alignleft size-large is-resized has-custom-border has-custom-0369-a-1-color has-success-500-background-color has-text-color has-background has-link-color wp-elements-2 has-inlined-svg\" style=\"border-top-left-radius:15px;border-top-right-radius:15px;border-bottom-left-radius:15px;border-bottom-right-radius:15px;padding-top:14px;padding-right:14px;padding-bottom:7px;padding-left:14px\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"30\" height=\"30\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"wp-image-15146\"><path d=\"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z\"><\/path><path d=\"M6.376 18.91a6 6 0 0 1 11.249.003\"><\/path><circle cx=\"12\" cy=\"11\" r=\"4\"><\/circle><\/svg><\/figure>\n\n\n<div style=\"height:1px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<h5 id=\"je-staat-er-nooit-alleen-voor\" class=\"wp-block-heading has-text-align-left\"><strong>Je staat er nooit alleen voor<\/strong><\/h5>\n\n\n<p class=\"wp-block-paragraph has-text-align-left wp-block-paragraph\" style=\"\">Elk gebouw heeft zijn eigen dynamiek. Je krijgt begeleiding die meegroeit wanneer het nodig is en terugschakelt wanneer het kan.<\/p>\n\n\n<div style=\"height:31px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-top has-neutral-0-background-color has-background is-layout-flow wp-block-column-is-layout-flow\" style=\"border-top-left-radius:20px;border-top-right-radius:20px;border-bottom-left-radius:20px;border-bottom-right-radius:20px;margin-right:var(--wp--preset--spacing--xxs);margin-left:var(--wp--preset--spacing--xxs);padding-top:var(--wp--preset--spacing--md);padding-right:var(--wp--preset--spacing--md);padding-bottom:var(--wp--preset--spacing--md);padding-left:var(--wp--preset--spacing--md);box-shadow:var(--wp--preset--shadow--lg)\">\n<figure class=\"wp-block-image alignleft size-large is-resized has-custom-border has-custom-0369-a-1-color has-success-500-background-color has-text-color has-background has-link-color wp-elements-3 has-inlined-svg\" style=\"border-top-left-radius:15px;border-top-right-radius:15px;border-bottom-left-radius:15px;border-bottom-right-radius:15px;padding-top:14px;padding-right:14px;padding-bottom:7px;padding-left:14px\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"30\" height=\"30\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"wp-image-15147\"><path d=\"M4 2v20l2-1 2 1 2-1 2 1 2-1 2 1 2-1 2 1V2l-2 1-2-1-2 1-2-1-2 1-2-1-2 1Z\"><\/path><path d=\"M8 12h5\"><\/path><path d=\"M16 9.5a4 4 0 1 0 0 5.2\"><\/path><\/svg><\/figure>\n\n\n<div style=\"height:1px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<h5 id=\"je-betaalt-voor-wat-er-echt-gebeurt\" class=\"wp-block-heading has-text-align-left\"><strong><strong>Je betaalt voor wat er echt gebeurt<\/strong><\/strong><\/h5>\n\n\n<p class=\"wp-block-paragraph has-text-align-left wp-block-paragraph\" style=\"\">Geen vaste forfaits die losstaan van de geleverde prestaties. Je betaalt voor effectieve inzet.<\/p>\n\n\n<div style=\"height:28px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n<\/div>\n<\/div>\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-7bef8eea wp-block-columns-is-layout-flex is-stacked-on-mobile\" style=\"padding-right:var(--wp--preset--spacing--md);padding-left:var(--wp--preset--spacing--md);--columns:3\" data-columns=\"3\">\n<div class=\"wp-block-column is-vertically-aligned-top has-neutral-0-background-color has-background is-layout-flow wp-block-column-is-layout-flow\" style=\"border-top-left-radius:20px;border-top-right-radius:20px;border-bottom-left-radius:20px;border-bottom-right-radius:20px;padding-top:var(--wp--preset--spacing--md);padding-right:var(--wp--preset--spacing--md);padding-bottom:var(--wp--preset--spacing--md);padding-left:var(--wp--preset--spacing--md);box-shadow:var(--wp--preset--shadow--lg)\">\n<figure class=\"wp-block-image alignleft size-large is-resized has-custom-border has-primary-950-color has-success-500-background-color has-text-color has-background has-link-color wp-elements-4 has-inlined-svg\" style=\"border-top-left-radius:10px;border-top-right-radius:10px;border-bottom-left-radius:10px;border-bottom-right-radius:10px;padding-top:14px;padding-right:14px;padding-bottom:7px;padding-left:14px\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"30\" height=\"30\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"wp-image-15142\"><path d=\"M8 2v4\"><\/path><path d=\"M16 2v4\"><\/path><rect width=\"18\" height=\"18\" x=\"3\" y=\"4\" rx=\"2\"><\/rect><path d=\"M3 10h18\"><\/path><path d=\"m9 16 2 2 4-4\"><\/path><\/svg><\/figure>\n\n\n<div style=\"height:1px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<h5 id=\"beheer-loopt-het-hele-jaar-door\" class=\"wp-block-heading has-text-align-left\"><strong><strong>Beheer loopt het hele jaar door<\/strong><\/strong><\/h5>\n\n\n<p class=\"wp-block-paragraph has-text-align-left wp-block-paragraph\" style=\"\">Beheer stopt niet na de AV. We werken en beslissen samen, het hele jaar door. Dossiers worden sneller opgepakt en problemen voorkomen voor ze frustraties worden.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-top has-neutral-0-background-color has-background is-layout-flow wp-block-column-is-layout-flow\" style=\"border-top-left-radius:20px;border-top-right-radius:20px;border-bottom-left-radius:20px;border-bottom-right-radius:20px;padding-top:var(--wp--preset--spacing--md);padding-right:var(--wp--preset--spacing--md);padding-bottom:var(--wp--preset--spacing--md);padding-left:var(--wp--preset--spacing--md);box-shadow:var(--wp--preset--shadow--lg)\">\n<figure class=\"wp-block-image alignleft size-large is-resized has-custom-border has-custom-0369-a-1-color has-success-500-background-color has-text-color has-background has-link-color wp-elements-5 has-inlined-svg\" style=\"border-top-left-radius:15px;border-top-right-radius:15px;border-bottom-left-radius:15px;border-bottom-right-radius:15px;padding-top:14px;padding-right:14px;padding-bottom:7px;padding-left:14px\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"30\" height=\"30\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"wp-image-15144\"><path d=\"M12 3v18\"><\/path><path d=\"m19 8 3 8a5 5 0 0 1-6 0zV7\"><\/path><path d=\"M3 7h1a17 17 0 0 0 8-2 17 17 0 0 0 8 2h1\"><\/path><path d=\"m5 8 3 8a5 5 0 0 1-6 0zV7\"><\/path><path d=\"M7 21h10\"><\/path><\/svg><\/figure>\n\n\n<div style=\"height:1px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<h5 id=\"altijd-wettelijk-in-orde\" class=\"wp-block-heading has-text-align-left\"><strong><strong>Altijd wettelijk in orde<\/strong><\/strong><\/h5>\n\n\n<p class=\"wp-block-paragraph has-text-align-left wp-block-paragraph\" style=\"\">Of je nu zelf beheert of Syndicoach aanstelt: je werkt conform de wetgeving. Dat geeft rechtszekerheid, correcte verzekeringen en toegang tot beschikbare subsidies.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-top has-neutral-0-background-color has-background is-layout-flow wp-block-column-is-layout-flow\" style=\"border-top-left-radius:20px;border-top-right-radius:20px;border-bottom-left-radius:20px;border-bottom-right-radius:20px;padding-top:var(--wp--preset--spacing--md);padding-right:var(--wp--preset--spacing--md);padding-bottom:var(--wp--preset--spacing--md);padding-left:var(--wp--preset--spacing--md);box-shadow:var(--wp--preset--shadow--lg)\">\n<figure class=\"wp-block-image alignleft size-full is-resized has-custom-border\" style=\"border-style:none;border-width:0px;border-top-left-radius:0px;border-top-right-radius:0px;border-bottom-left-radius:0px;border-bottom-right-radius:0px\"><a href=\"https:\/\/openvme.be\/\"><img decoding=\"async\" data-src=\"https:\/\/openvme.be\/wp-content\/uploads\/2026\/02\/svg_Logomark.svg\" alt=\"\" class=\"wp-image-14942 lazyload\" style=\"border-style:none;border-width:0px;border-top-left-radius:0px;border-top-right-radius:0px;border-bottom-left-radius:0px;border-bottom-right-radius:0px;object-fit:cover;width:60px;height:60px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\"><\/a><\/figure>\n\n\n<div style=\"height:1px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<h5 id=\"slim-ondersteund-door-openvme\" class=\"wp-block-heading has-text-align-left\">Slim<strong><strong><strong><strong> ondersteund door OpenVME<\/strong><\/strong><\/strong><\/strong>\n<\/h5>\n\n\n<p class=\"wp-block-paragraph has-text-align-left wp-block-paragraph\" style=\"\">Syndicoach werkt met het <a type=\"link\" href=\"https:\/\/openvme.be\/\" id=\"https:\/\/openvme.be\/\">OpenVME<\/a>-platform: communicatie, financi&euml;n en documenten op &eacute;&eacute;n plek, voor de syndicus, beheerders &eacute;n eigenaars.<\/p>\n<\/div>\n<\/div>\n<\/div>\n\n\n<div class=\"wp-block-group alignwide sc-faq is-layout-constrained wp-block-group-is-layout-constrained\" style=\"padding-top:var(--wp--preset--spacing--lg)\">\n<h2 class=\"wp-block-heading has-text-align-center alignwide\" id=\"nog-vragen\">Nog vragen?<\/h2>\n\n\n<div class=\"wp-block-group alignwide has-custom-f-0-f-9-ff-background-color has-background is-layout-constrained wp-container-core-group-is-layout-8602b98e wp-block-group-is-layout-constrained\" style=\"border-top-left-radius:35px;border-top-right-radius:35px;border-bottom-left-radius:35px;border-bottom-right-radius:35px;padding:var(--wp--preset--spacing--lg)\">\n<details class=\"wp-block-details alignwide is-style-default is-layout-flow wp-block-details-is-layout-flow is-style-chevron\" open><summary>Hoe verloopt de opstart met Syndicoach?<\/summary><p class=\"wp-block-paragraph wp-block-paragraph\" style=\"\">We starten met een kennismakingsgesprek over je gebouw. We kijken dan samen hoe Syndicoach op een rechtmatige manier kan aangesteld worden. Eens dat in orde is, nemen we de bestaande documenten over, zetten we je VME klaar op het platform en plannen we een eerste overleg met de mede-eigenaars.<\/p>\n<\/details>\n\n\n\n<hr class=\"wp-block-separator alignwide has-alpha-channel-opacity is-style-default\">\n\n\n<details class=\"wp-block-details alignwide is-layout-flow wp-block-details-is-layout-flow is-style-chevron\"><summary>Ik heb al een syndicus, moet ik zelf alles overzetten?<\/summary><p class=\"wp-block-paragraph wp-block-paragraph\" style=\"\">Nee, de vorige syndicus bezorgt het volledige dossier bij de overdracht. Wij zetten die documenten en cijfers voor je klaar op het platform.<\/p>\n<\/details>\n\n\n\n<hr class=\"wp-block-separator alignwide has-alpha-channel-opacity is-style-default\">\n\n\n<details class=\"wp-block-details alignwide is-layout-flow wp-block-details-is-layout-flow is-style-chevron\"><summary>Blijf ik zelf beslissen over mijn gebouw?<\/summary><p class=\"wp-block-paragraph wp-block-paragraph\" style=\"\">Ja, sowieso. De syndicus mag alleen uitvoeren wat de Algemene Vergadering beslist.. Syndicoach bereidt de AV voor, geeft advies en voert daarna uit wat jullie samen afspreken.<\/p>\n<\/details>\n\n\n\n<hr class=\"wp-block-separator alignwide has-alpha-channel-opacity is-style-default\">\n\n\n<details class=\"wp-block-details alignwide is-layout-flow wp-block-details-is-layout-flow is-style-chevron\"><summary>Is Syndicoach voordeliger dan een klassieke syndicus?<\/summary><p class=\"wp-block-paragraph wp-block-paragraph\" style=\"\">Ja, doorgaans wel. Waar een klassiek kantoor een vast forfait per kavel aanrekent en daarboven mogelijks nog extra's, betaal je bij ons een vaste prijs per maand voor het dagdagelijkse beheer. Voor bijkomende prestaties naast het dagdagelijkse beheer betaal je steeds enkel voor de effectief gepresteerde uren. Het is daar waar klassieke syndici vaak gaan doorrekenen. Bv voor het openen van een verzekeringsdossier zal een klassieke syndicus al snel een forfait van &euro; 200 vragen terwijl dat bij ons meestal maar een uur werk is, of zelfs minder. Wij loggen en rekenen dan enkel de effectief gepresteerde tijd aan. Het is altijd belangrijk om de voorstellen die je krijgt op inhoud &eacute;n de kleine lettertjes te vergelijken.<\/p>\n<\/details>\n\n\n\n<hr class=\"wp-block-separator alignwide has-alpha-channel-opacity is-style-default\">\n\n\n<details class=\"wp-block-details alignwide is-layout-flow wp-block-details-is-layout-flow is-style-chevron\"><summary>Hoe lang duurt het vooraleer we zijn opgestart?<\/summary><p class=\"wp-block-paragraph wp-block-paragraph\" style=\"\">Dat kan gaan van een paar dagen tot een paar weken. Dat is echt afhankelijk van de situatie van je VME. Maar van in het begin helpt Syndicoach jullie stap voor stap. Afhankelijk van de formule die je kiest, nemen we al het werk ook maximaal uit jullie handen.<\/p>\n<\/details>\n\n\n\n<hr class=\"wp-block-separator alignwide has-alpha-channel-opacity is-style-default\">\n\n\n<details class=\"wp-block-details alignwide is-layout-flow wp-block-details-is-layout-flow is-style-chevron\"><summary>Hoeveel kost Syndicoach?<\/summary><p class=\"wp-block-paragraph wp-block-paragraph\" style=\"\">Je betaalt een eenmalige opstartkost en daarna een vast prijs voor dagdagelijks beheer. Prestaties die buiten het dagdagelijkse beheer vallen, worden aangerekend per uur. Als je een offerte opvraagt krijg je steeds alle details.<\/p>\n<\/details>\n\n\n\n<hr class=\"wp-block-separator alignwide has-alpha-channel-opacity\">\n\n\n<details class=\"wp-block-details alignwide is-layout-flow wp-block-details-is-layout-flow is-style-chevron\"><summary>Kan ik zelf syndicus worden?<\/summary><p class=\"wp-block-paragraph wp-block-paragraph\" style=\"\">Ja, elke mede-eigenaar kan het mandaat opnemen zodra de algemene vergadering dat bekrachtigt. Met de Assistant-formule doe je het zelf en springt Syndicoach bij waar je vastloopt.<\/p>\n<\/details>\n<\/div>\n\n\n<\/div>\n\n\n<div class=\"wp-block-group alignwide is-layout-constrained wp-block-group-is-layout-constrained\" style=\"padding:var(--wp--preset--spacing--lg) 0\">\n<div class=\"wp-block-columns alignwide sc-cta has-custom-99-f-6-e-4-background-color has-background is-layout-flex wp-container-core-columns-is-layout-905e0b99 wp-block-columns-is-layout-flex is-stacked-on-mobile\" style=\"border-top-left-radius:35px;border-top-right-radius:35px;border-bottom-left-radius:35px;border-bottom-right-radius:35px;padding-top:var(--wp--preset--spacing--0);padding-right:var(--wp--preset--spacing--0);--columns:2\" data-columns=\"2\">\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\" style=\"padding-top:var(--wp--preset--spacing--lg);padding-right:var(--wp--preset--spacing--lg);padding-bottom:var(--wp--preset--spacing--lg);padding-left:var(--wp--preset--spacing--xxs);flex-basis:50%\">\n<h3 class=\"wp-block-heading\" id=\"klaar-om-de-touwtjes-terug-in-handen-te-nemen\">Klaar om de touwtjes terug in handen te nemen?<\/h3>\n\n\n<p class=\"wp-block-paragraph has-body-l-font-size wp-block-paragraph\" style=\"\">Vertel ons over je gebouw en we bezorgen je een offerte.<\/p>\n\n\n\n<div class=\"wp-block-buttons alignwide is-content-justification-left is-layout-flex wp-container-core-buttons-is-layout-45b074f7 wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button sc-btn is-style-fill\" style=\"\"><button class=\"wp-block-button__link has-neutral-0-color has-custom-0369-a-1-background-color has-text-color has-background has-link-color wp-element-button mymmo-opent-contactpopup-extra\" style=\"\" href=\"#\">Vraag je offerte aan<\/button><\/div>\n<div class=\"mymmo-modal-launch mymmo-modal-launch--stil\" id=\"mymmo-modal-we-nemen-contact-met-je-op-2-knop\" lang=\"nl\" style=\"--mf-accent:#2563eb;--mf-max-width:720px;--mf-accent:#99f6e4;--mf-accent-text:#0369a1;--mf-accent-ink:#0369a1;--mf-gap:18px;--mf-fig-scale:80%;--mf-fig-x:-7px;--mf-fig-y:-41px;--mf-wm-scale:257%;--mf-wm-x:-314px;--mf-wm-y:141px;--mf-wm-rotate:25deg;--mf-accent-ink:#0369a1\">\n\n    \n    \n                    <!-- Mymmo Forms: dit venster opent met een link naar #mymmo-modal-we-nemen-contact-met-je-op-2 -->\n    \n    <div class=\"mymmo-modal\" id=\"mymmo-modal-we-nemen-contact-met-je-op-2\" data-mymmo-modal data-mymmo-trigger=\".mymmo-opent-contactpopup-extra\">\n\n                        <a class=\"mymmo-modal-backdrop\" href=\"#mymmo-modal-we-nemen-contact-met-je-op-2-knop\" tabindex=\"-1\" aria-hidden=\"true\" data-mymmo-modal-close><\/a>\n        \n        <div class=\"mymmo-modal-panel mymmo-modal-panel--zijkolom mymmo-modal-panel--breed\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"mymmo-modal-we-nemen-contact-met-je-op-2-titel\">\n\n                        <a class=\"mymmo-modal-close\" href=\"#mymmo-modal-we-nemen-contact-met-je-op-2-knop\" data-mymmo-modal-close aria-label=\"Sluiten\" title=\"Sluiten\">\n                <svg viewbox=\"0 0 20 20\" width=\"18\" height=\"18\" aria-hidden=\"true\" focusable=\"false\">\n                    <path d=\"M5 5l10 10M15 5L5 15\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"><\/path>\n                <\/svg>\n            <\/a>\n\n                                        <div class=\"mymmo-modal-kop\">\n                                        <h2 class=\"mymmo-modal-title\" id=\"mymmo-modal-we-nemen-contact-met-je-op-2-titel\">Laat ons kennismaken<\/h2>\n                <\/div>\n            \n                        <div class=\"mymmo-modal-lijf\">\n\n                        <aside class=\"mymmo-modal-aside\">\n\n                                    <p class=\"mymmo-modal-lead\">Wij tonen je met plezier hoe je terug gelukkig wordt van gebouwbeheer<\/p>\n                \n                                                        <div class=\"mymmo-modal-tabs\" role=\"tablist\" data-mymmo-tablist hidden>\n                                                <button type=\"button\" role=\"tab\" class=\"mymmo-modal-tab mymmo-modal-tab--kaal is-active\" id=\"mymmo-modal-we-nemen-contact-met-je-op-2-tab-extra\" aria-controls=\"mymmo-modal-we-nemen-contact-met-je-op-2-paneel-extra\" aria-selected=\"true\" tabindex=\"0\" data-mymmo-tab=\"extra\">\n                            <span class=\"mymmo-modal-tab-icoon\" aria-hidden=\"true\"><svg viewbox=\"0 0 24 24\" width=\"18\" height=\"18\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" focusable=\"false\"><path d=\"M3.5 6.5l1.5 1.5 2.5-2.5M3.5 12l1.5 1.5 2.5-2.5M3.5 17.5l1.5 1.5 2.5-2.5\"><\/path><path d=\"M11.5 6.5h9M11.5 12h9M11.5 17.5h6\"><\/path><\/svg><\/span>\n                            <span class=\"mymmo-modal-tab-tekst\">\n                                <span class=\"mymmo-modal-tab-label\">Bereken je prijsofferte<\/span>\n                                                            <\/span>\n                        <\/button>\n                                                <button type=\"button\" role=\"tab\" class=\"mymmo-modal-tab mymmo-modal-tab--kaal\" id=\"mymmo-modal-we-nemen-contact-met-je-op-2-tab-form\" aria-controls=\"mymmo-modal-we-nemen-contact-met-je-op-2-paneel-form\" aria-selected=\"false\" tabindex=\"-1\" data-mymmo-tab=\"form\">\n                            <span class=\"mymmo-modal-tab-icoon\" aria-hidden=\"true\"><svg viewbox=\"0 0 24 24\" width=\"18\" height=\"18\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" focusable=\"false\"><path d=\"M4 5.5h16v11H8l-4 3.5z\"><\/path><path d=\"M8 9.5h8M8 12.5h5\"><\/path><\/svg><\/span>\n                            <span class=\"mymmo-modal-tab-tekst\">\n                                <span class=\"mymmo-modal-tab-label\">Stuur een bericht<\/span>\n                                                            <\/span>\n                        <\/button>\n                                                <button type=\"button\" role=\"tab\" class=\"mymmo-modal-tab mymmo-modal-tab--kaal\" id=\"mymmo-modal-we-nemen-contact-met-je-op-2-tab-calendly\" aria-controls=\"mymmo-modal-we-nemen-contact-met-je-op-2-paneel-calendly\" aria-selected=\"false\" tabindex=\"-1\" data-mymmo-tab=\"calendly\">\n                            <span class=\"mymmo-modal-tab-icoon\" aria-hidden=\"true\"><svg viewbox=\"0 0 24 24\" width=\"18\" height=\"18\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" focusable=\"false\"><rect x=\"3.5\" y=\"5\" width=\"17\" height=\"15\" rx=\"2.5\"><\/rect><path d=\"M3.5 9.5h17M8 3.5v3M16 3.5v3\"><\/path><\/svg><\/span>\n                            <span class=\"mymmo-modal-tab-tekst\">\n                                <span class=\"mymmo-modal-tab-label\">Plan een gesprek<\/span>\n                                                            <\/span>\n                        <\/button>\n                                            <\/div>\n                \n                                    <ul class=\"mymmo-modal-punten\">\n                                                    <li class=\"mymmo-modal-punt\">\n                                <svg viewbox=\"0 0 20 20\" width=\"16\" height=\"16\" aria-hidden=\"true\" focusable=\"false\">\n                                    <path d=\"M4 10.5l4 4 8-9\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path>\n                                <\/svg>\n                                <span>Meteen een offerte<\/span>\n                            <\/li>\n                                                    <li class=\"mymmo-modal-punt\">\n                                <svg viewbox=\"0 0 20 20\" width=\"16\" height=\"16\" aria-hidden=\"true\" focusable=\"false\">\n                                    <path d=\"M4 10.5l4 4 8-9\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path>\n                                <\/svg>\n                                <span>Syndicoach helder uitgelegd<\/span>\n                            <\/li>\n                                                    <li class=\"mymmo-modal-punt\">\n                                <svg viewbox=\"0 0 20 20\" width=\"16\" height=\"16\" aria-hidden=\"true\" focusable=\"false\">\n                                    <path d=\"M4 10.5l4 4 8-9\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path>\n                                <\/svg>\n                                <span>Jouw gebouw staat centraal<\/span>\n                            <\/li>\n                                            <\/ul>\n                \n                                                        <div class=\"mymmo-modal-figuur\">\n                                                                            <span class=\"mymmo-modal-wm\" data-mymmo-greep=\"watermerk\">\n                                <img class=\"mymmo-modal-watermerk skip-lazy no-lazyload\" src=\"https:\/\/link.openvme.be\/assets\/brand\/clover.svg\" alt=\"\" aria-hidden=\"true\" data-no-lazy=\"1\" data-skip-lazy=\"1\" decoding=\"async\">\n                            <\/span>\n                                                                                                    <span class=\"mymmo-modal-beeld is-actief\" data-mymmo-beeld=\"form\">\n                                                                <span class=\"mymmo-modal-stand\" data-mymmo-greep=\"form\">\n                                    <img class=\"mymmo-modal-tekening skip-lazy no-lazyload\" src=\"https:\/\/link.openvme.be\/assets\/uploads\/persoon-in-zenhouding-aan-computer-blue.svg\" alt=\"\" data-no-lazy=\"1\" data-skip-lazy=\"1\" decoding=\"async\">\n                                <\/span>\n                            <\/span>\n                        \n                                            <\/div>\n                \n            <\/aside>\n            \n            <div class=\"mymmo-modal-main\">\n                                <div class=\"mymmo-modal-body mymmo-modal-body--tabs\" data-mymmo-modal-body>\n\n                                        <section class=\"mymmo-modal-paneel is-actief\" id=\"mymmo-modal-we-nemen-contact-met-je-op-2-paneel-extra\" role=\"tabpanel\" aria-labelledby=\"mymmo-modal-we-nemen-contact-met-je-op-2-tab-extra\" tabindex=\"0\" data-mymmo-paneel=\"extra\">\n\n                                                    <h3 class=\"mymmo-modal-paneel-titel\">Bereken je prijsofferte<\/h3>\n                        \n                                                    <div class=\"mymmo-stappen\" id=\"mymmo-stappen-mymmo-modal-we-nemen-contact-met-je-op-2-extra-2\" data-mymmo-stappen data-mymmo-start=\"0\" data-mymmo-slug=\"syndicoach-calulator-offerte\" data-mymmo-teksten='{\"required\":\"{label} is verplicht.\",\"email\":\"{label} is geen geldig e-mailadres.\",\"number\":\"{label} moet een getal zijn.\",\"date\":\"{label} moet een datum zijn (jjjj-mm-dd).\",\"postcode\":\"{label} is geen geldige postcode.\",\"postcode_unknown\":\"We kennen postcode {value} niet. Kijk ze even na.\",\"city_other\":\"Andere plaats\\u2026\",\"unknown_choice\":\"{label}: onbekende keuze \\\"{value}\\\".\",\"minlength\":\"{label} moet minstens {n} tekens bevatten.\",\"maxlength\":\"{label} mag hoogstens {n} tekens bevatten.\",\"min\":\"{label} moet minstens {n} zijn.\",\"max\":\"{label} mag hoogstens {n} zijn.\",\"choose\":\"Maak een keuze\",\"back\":\"Vorige\",\"next\":\"Volgende\",\"step_of\":\"Stap {n} van {total}\",\"submitting\":\"Bezig met versturen\\u2026\",\"busy\":\"We maken je offerte op\",\"busy_offerte\":\"We maken je offerte op\",\"busy_academy\":\"We zetten je cursus klaar\",\"check_fields\":\"Kijk de gemarkeerde velden na.\",\"expired\":\"De pagina was verlopen. Probeer het opnieuw.\",\"stale_page\":\"Deze pagina stond te lang open. Ververs ze en probeer opnieuw.\",\"rejected\":\"De inzending kon niet verwerkt worden.\",\"bot_check\":\"We konden niet nagaan of je geen robot bent. Probeer het opnieuw.\",\"unavailable\":\"Dit formulier is momenteel niet beschikbaar.\",\"send_failed\":\"We konden je bericht niet versturen. Probeer het zo meteen opnieuw.\"}' style=\"--mf-accent:#99f6e4;--mf-accent-text:#0369a1;--mf-accent-ink:#0369a1;--mf-gap:18px;--mf-fig-scale:80%;--mf-fig-x:-7px;--mf-fig-y:-41px;--mf-wm-scale:257%;--mf-wm-x:-314px;--mf-wm-y:141px;--mf-wm-rotate:25deg;--mf-accent-ink:#0369a1\">\n\n    <noscript>\n        <style>\n            #mymmo-stappen-mymmo-modal-we-nemen-contact-met-je-op-2-extra-2 [data-mymmo-stap] { display: block !important; }\n            #mymmo-stappen-mymmo-modal-we-nemen-contact-met-je-op-2-extra-2 [data-mymmo-stap].mymmo-stap--html { display: none !important; }\n            #mymmo-stappen-mymmo-modal-we-nemen-contact-met-je-op-2-extra-2 .mymmo-stappen-teller,\n            #mymmo-stappen-mymmo-modal-we-nemen-contact-met-je-op-2-extra-2 .mymmo-stap-nav { display: none !important; }\n        <\/style>\n    <\/noscript>\n\n    \n                    <p class=\"mymmo-stappen-teller\" data-mymmo-teller aria-live=\"polite\">\n            Stap 1 van 5        <\/p>\n    \n                        <section class=\"mymmo-stap mymmo-stap--html\" data-mymmo-stap=\"0\" data-mymmo-stap-naam=\"aantal-kavels\" data-mymmo-stap-velden=\"aantal_kavels,commerciele_kavels\" data-mymmo-stap-nav=\"plugin\"><h3 class=\"mymmo-stap-titel\" data-mymmo-kop=\"titel\">Hoe groot is jullie gebouw?<\/h3>\n<div class=\"mymmo-stap-inhoud\" data-mymmo-stap-inhoud>\n<!--\n  STAP - \"Wat is de grootte van het gebouw?\"\n\n  De schuifbalk uit de Syndicoach-calculator, losgemaakt uit dat bestand en\n  klaar om als eerste stap van een mymmo_form te plakken. Levert TWEE waarden:\n\n      aantal_kavels        het getal onder de schuifbalk  (2 ... 60)\n      commerciele_kavels   \"ja\" of \"nee\"                  (het vinkje erboven)\n\n  Zet in de Operations Manager twee VERBORGEN VELDEN met precies die sleutels\n  op het formulier. Bestaat een veld niet, dan blijft de bezoeker gewoon verder\n  kunnen -- de waarde bereikt Odoo dan alleen niet, en dat staat in de console\n  en boven het formulier. Andere sleutels nodig? Pas ze aan op de schuifbalk\n  (data-mymmo-waarde) en op de wikkel (data-sleutel-commercieel); je hoeft\n  nergens in het script te zijn.\n\n  WAT HIER UIT DE CALCULATOR IS OVERGENOMEN\n  -----------------------------------------\n  De tekeningen (vijf niveaus x residentieel\/commercieel, van link.openvme.be),\n  de niveau-indeling, de squash-and-stretch bij een niveauwissel, de plop van\n  het commercieel-vinkje, en de terugval op een lijnicoon als een bestand niet\n  ophaalt. Wat NIET is meegekomen, is het \"podium\" -- de losse, absoluut\n  gepositioneerde laag waarop de calculator het gebouw tussen zeven stappen\n  door laat zweven, plus de zeven onzichtbare pin-ankers voor de ballonnetjes.\n  Dat bestaat alleen omdat daar zeven stappen een tekening delen; hier staat de\n  tekening gewoon in de stap, zoals de calculator dat op smalle schermen zelf\n  ook doet.\n\n  WAT DEZE STAP BEWUST NIET DOET\n  ------------------------------\n  Geen eigen kop, geen eigen wit kaartje, geen eigen Vorige\/Volgende. Dat levert\n  de plugin al: de titel die je bij de stap typt staat erboven, het paneel van\n  de pop-up is het witte vlak, en de knoppenrij hoort bij de reeks. Bracht de\n  stap dat zelf mee, dan stond alles twee keer -- en de tweede kop was niet uit\n  te zetten zonder de HTML te bewerken.\n\n  Een stap gaat dus over de VRAAG en het BEDIENINGSELEMENT. De omlijsting en het\n  opvangen van de antwoorden zijn van de plugin.\n\n  TWEE DINGEN OM TE ZIEN IN DIT BESTAND\n  -------------------------------------\n  1. `data-mymmo-waarde` op de schuifbalk. Dat is wat het getal doorgeeft --\n     daar is geen regel JavaScript voor nodig. Het script hieronder tekent\n     alleen het gebouw. Het vinkje is een <button> en geen invoerveld, dus die\n     ene waarde wordt wel met api.zet() afgeleverd.\n  2. Geen enkele `id=\"\"`. Dezelfde stap kan twee keer op een pagina staan (in\n     de tekst en in een pop-up); met vaste id's zou de tweede de eerste\n     besturen. Alles loopt via querySelector binnen de eigen wikkel.\n\n  Verander je de beginstand (`value` op de schuifbalk), pas dan ook de `src`\n  van de <img> aan op het bijbehorende niveau (2-5 = level1, 6-15 = level2,\n  16-25 = level3, 26-39 = level4, 40+ = level5). Het script corrigeert het\n  meteen, maar zonder die aanpassing zie je bij het laden heel even de\n  verkeerde tekening.\n-->\n\n<link rel=\"preload\" as=\"image\" href=\"https:\/\/link.openvme.be\/assets\/syndicoach-calculator\/stap-1-gebouwgrootte\/app_level1.svg\">\n<link rel=\"preload\" as=\"image\" href=\"https:\/\/link.openvme.be\/assets\/syndicoach-calculator\/stap-1-gebouwgrootte\/app_level2.svg\">\n<link rel=\"preload\" as=\"image\" href=\"https:\/\/link.openvme.be\/assets\/syndicoach-calculator\/stap-1-gebouwgrootte\/app_level3.svg\">\n<link rel=\"preload\" as=\"image\" href=\"https:\/\/link.openvme.be\/assets\/syndicoach-calculator\/stap-1-gebouwgrootte\/app_level4.svg\">\n<link rel=\"preload\" as=\"image\" href=\"https:\/\/link.openvme.be\/assets\/syndicoach-calculator\/stap-1-gebouwgrootte\/app_level5.svg\">\n<link rel=\"preload\" as=\"image\" href=\"https:\/\/link.openvme.be\/assets\/syndicoach-calculator\/stap-1-gebouwgrootte\/app_level1comm.svg\">\n<link rel=\"preload\" as=\"image\" href=\"https:\/\/link.openvme.be\/assets\/syndicoach-calculator\/stap-1-gebouwgrootte\/app_level2comm.svg\">\n<link rel=\"preload\" as=\"image\" href=\"https:\/\/link.openvme.be\/assets\/syndicoach-calculator\/stap-1-gebouwgrootte\/app_level3comm.svg\">\n<link rel=\"preload\" as=\"image\" href=\"https:\/\/link.openvme.be\/assets\/syndicoach-calculator\/stap-1-gebouwgrootte\/app_level4comm.svg\">\n<link rel=\"preload\" as=\"image\" href=\"https:\/\/link.openvme.be\/assets\/syndicoach-calculator\/stap-1-gebouwgrootte\/app_level5comm.svg\">\n\n<style>\n\/* Alles genest onder .sc-stap. Je thema kan hier niets breken, en omgekeerd.\n   In de calculator was dat `#sc-calc`; een id kan hier niet, want dezelfde\n   stap mag twee keer op een pagina staan. *\/\n.sc-stap {\n  \/* De kleuren van de STAP volgen die van het formulier. Ze hadden eigen\n     waarden uit de rekenmodule waar deze stap uit komt, en dan staat de\n     hulpregel van stap 1 in #6b8697 terwijl diezelfde regel bij het formulier\n     #6b7280 is -- net genoeg verschil om als slordig te lezen, en die eerste\n     haalt op wit geen AA (3,83 tegen 4,83).\n     De waarde na de komma is de terugval voor wie deze stap los gebruikt. *\/\n  \/* Het getal en de knop van de schuifbalk moeten GELEZEN worden: de inkt van\n     het merk, niet de felle accentkleur. --mf-accent-ink zet de plugin zelf --\n     de leesbare van de twee knopkleuren uit het thema (bij Syndicoach het\n     donkerblauw #0369a1, niet de mint). Stond hier --mf-accent, dan stond er\n     een getal van 32px in mint op wit. *\/\n  --sc-blue: var(--mf-accent-ink, var(--mf-accent, #0f5c8c));\n  --sc-blue-soft: #e8f2f8;\n  --sc-ink: var(--mf-text, #12384f);\n  --sc-muted: var(--mf-muted, #6b8697);\n  --sc-line: var(--mf-border, #e3ebf0);\n\n  \/* GEEN eigen letterstack. Deze stap komt uit een losstaande rekenmodule en\n     had er een; naast een formulier dat de letter van de site erft, zag je dat\n     meteen (Segoe UI naast Rethink Sans op syndicoach.be). De plugin dwingt\n     `font-family: inherit` nu ook af op de wikkel van een stap, dus dit is\n     dubbelop -- het staat er zodat dit bestand ook klopt als je het elders\n     gebruikt. *\/\n  font-family: inherit;\n  color: var(--sc-ink);\n  line-height: 1.5;\n  -webkit-font-smoothing: antialiased;\n\n  \/* Een kolom die de hoogte van de stap inneemt. De plugin laat de stap het\n     vlak vullen (zie mymmo-forms-steps.css); dit bepaalt wat er met die ruimte\n     gebeurt: de vraag blijft bovenaan bij de titel staan, de tekening en de\n     schuifbalk zakken naar de knoppenrij toe. In een PAGINA is er niets te\n     verdelen en verandert er dus niets. *\/\n  display: flex;\n  flex-direction: column;\n  flex: 1 0 auto;\n}\n.sc-stap *, .sc-stap *::before, .sc-stap *::after { box-sizing: border-box; }\n.sc-stap .sc-svg { display: block; }\n\n\/* De zin onder de titel staat in `.mymmo-stap-tekst`, een klasse van de\n   plugin -- niet in een eigen `.sc-help`. Zo ziet de regel onder de titel van\n   deze stap er hetzelfde uit als die onder de titel van het formulier (de\n   laatste stap), en dat is de hele bedoeling van die klasse. Hier staat dus\n   geen enkele regel voor die tekst. *\/\n\n\/* -- het vinkje \"commerciele kavels\" -------------------------------------- *\/\n.sc-stap .sc-comm-toggle {\n  display: inline-flex;\n  gap: 8px;\n  align-items: center;\n  margin-top: 10px;\n  padding: 0;\n  border: 0;\n  background: none;\n  cursor: pointer;\n  font: inherit;\n  font-size: .82rem;\n  color: var(--sc-muted);\n  text-align: left;\n}\n.sc-stap .sc-comm-toggle .sc-comm-check {\n  width: 16px;\n  height: 16px;\n  flex: 0 0 16px;\n  border-radius: 5px;\n  border: 1.5px solid #cfdde6;\n  display: grid;\n  place-items: center;\n  color: transparent;\n  transition: background .15s, border-color .15s;\n}\n.sc-stap .sc-comm-toggle:hover .sc-comm-check { border-color: #b9d3e2; }\n.sc-stap .sc-comm-toggle.is-on { color: var(--sc-ink); }\n.sc-stap .sc-comm-toggle.is-on .sc-comm-check {\n  background: var(--sc-blue);\n  border-color: var(--sc-blue);\n  color: #fff;\n}\n\n\/* -- de tekening ---------------------------------------------------------- *\/\n\/*\n * DE TEKENING NEEMT DE VRIJE RUIMTE IN.\n *\n * Alle tien de tekeningen (vijf niveaus, met en zonder winkels) hebben hetzelfde\n * canvas van 2048 x 2048. Zolang ze in dezelfde vierkante doos staan, schalen ze\n * dus allemaal met dezelfde factor -- de kleine groeien mee met de grote.\n *\n * Gemeten: de grootste (level5comm) reikt van y=50 tot y=1807, dus 86% van de\n * hoogte, en heeft 241 (11,8%) lege ruimte onder zich. Met object-fit:contain\n * past hij per definitie in de doos, hoe groot die ook wordt.\n *\n * Vroeger zat de doos vast op max 210px breed en clamp(110px, 22vh, 210px) hoog,\n * terwijl er in de pop-up vaak twee keer zoveel ruimte vrij bleef. Nu krijgt het\n * vlak (.sc-bldg) wat er tussen het vinkje en het getal overblijft, met een\n * ondergrens voor een laag venster en een bovengrens voor een heel hoog.\n *\/\n.sc-stap .sc-bldg {\n  position: relative;\n  flex: 1 1 0;\n  \/* Gemeten in de pop-up bij 1280x720: met 24vh als ondergrens scrolde het\n     paneel 27px (de vorige versie deed daar 22px). Met 18vh past de stap ook\n     daar zonder schuifbalk -- de tekening neemt dan precies de ruimte die er is. *\/\n  min-height: clamp(110px, 18vh, 180px);\n  max-height: 400px;\n  margin: 0 0 6px;\n  pointer-events: none;\n}\n.sc-stap .sc-bldg-img {\n  \/* Vierkant en onderaan gecentreerd, zo hoog als het vlak. Het draaipunt van\n     de veer-animaties (--sc-bldg-ox) is een fractie van de breedte van DEZE\n     doos; die klopt alleen omdat de doos het canvas exact volgt. *\/\n  position: absolute;\n  bottom: 0;\n  left: 50%;\n  height: calc(100% - 10px);\n  aspect-ratio: 1 \/ 1;\n  max-width: 100%;\n  \/* -50% centreert; +11.5% van de eigen hoogte schuift de lege strook onder de\n     grondlijn weg (de grootste tekening heeft daar 11,8%, dus er wordt niets\n     afgesneden). Zonder dat zweefde het gebouw boven het getal. `translate` is\n     een aparte eigenschap, dus de `transform` van de animaties blijft werken. *\/\n  translate: -50% 11.5%;\n  transform-origin: bottom center;\n}\n.sc-stap .sc-bldg-photo {\n  position: absolute;\n  inset: 0;\n  width: 100%;\n  height: 100%;\n  display: block;\n  object-fit: contain;\n  object-position: bottom center;\n}\n\/* Haalt een tekening niet op (offline, 404), dan valt ze terug op een klein\n   lijnicoon. Nooit een kapot-plaatje-icoontje. *\/\n.sc-stap .sc-bldg-fallback {\n  width: 100%;\n  height: 100%;\n  display: flex;\n  align-items: flex-end;\n  justify-content: center;\n  padding-bottom: 8%;\n  color: var(--sc-muted);\n}\n.sc-stap .sc-bldg-fallback svg { width: 60%; height: 60%; }\n\n\/* -- de schuifbalk -------------------------------------------------------- *\/\n.sc-stap .sc-slider { padding: 0 2px 2px; text-align: center; }\n\/*\n * HET GETAL STAAT OP DE AS VAN HET GEBOUW, NIET DE GROEP \"8 kavels\".\n *\n * Gemeten in de pop-up: vlak, tekening, schuifbalk en de groep getal+eenheid\n * hadden allemaal hun midden op dezelfde x -- maar het GETAL zelf stond 55px\n * links daarvan (bij \"60 kavels of meer\"), omdat \"kavels\" mee gecentreerd werd.\n * Het oog leest het grote getal als het anker, dus leek de tekening scheef te\n * staan. De tekeningen zelf zijn wel gecentreerd: niveau 1 tot 4 hebben hun\n * midden op x=1023 of 1024 van een canvas van 2048.\n *\n * Drie kolommen: links een lege kolom even breed als rechts, in het midden het\n * getal, rechts de eenheid. Zo valt het midden van het getal exact op het midden\n * van de rij, en groeit een langere eenheid (\"kavels of meer\") alleen naar\n * rechts. Enkel CSS: de markup van de stap blijft dezelfde.\n *\/\n.sc-stap .sc-slider > div:first-child {\n  display: grid;\n  grid-template-columns: 1fr auto 1fr;\n  align-items: baseline;\n}\n.sc-stap .sc-slider .sc-kv { grid-column: 2; }\n.sc-stap .sc-slider .sc-kv-u { grid-column: 3; justify-self: start; text-align: left; }\n.sc-stap .sc-kv {\n  font-size: 2rem;\n  font-weight: 800;\n  color: var(--sc-blue);\n  line-height: 1;\n  letter-spacing: -.03em;\n}\n.sc-stap .sc-kv-u { font-size: 1rem; color: var(--sc-muted); margin-left: 7px; }\n.sc-stap input[type=range] {\n  -webkit-appearance: none;\n  appearance: none;\n  width: 100%;\n  height: 4px;\n  \/* Opvulling en rand expliciet weg. Een blokthema styleert ELK invoerveld op\n     de site en zondert wel checkbox, radio en knoppen uit, maar geen\n     schuifbalk: die krijgt dan de opvulling en de rand van een tekstveld, en\n     met border-box wordt haar hoogte van 4px opgeblazen tot padding + rand --\n     op syndicoach.be 20px, wat leest als een langgerekte schakelaar. De plugin\n     zet dit sinds 1.15.5 ook terug (mymmo-forms-steps.css); hier staat het\n     zodat deze stap ook los van die versie klopt. *\/\n  padding: 0;\n  border: 0;\n  border-radius: 99px;\n  background: #e3ebf0;\n  margin: 12px 0 5px;\n  outline: none;\n}\n.sc-stap input[type=range]::-webkit-slider-thumb {\n  -webkit-appearance: none;\n  width: 16px;\n  height: 16px;\n  border-radius: 50%;\n  background: #fff;\n  border: 2px solid var(--sc-blue);\n  cursor: pointer;\n  box-shadow: 0 1px 4px rgba(0, 0, 0, .16);\n}\n.sc-stap input[type=range]::-moz-range-thumb {\n  width: 16px;\n  height: 16px;\n  border-radius: 50%;\n  background: #fff;\n  border: 2px solid var(--sc-blue);\n  cursor: pointer;\n}\n.sc-stap input[type=range]:focus-visible { box-shadow: 0 0 0 3px rgba(15, 92, 140, .18); }\n.sc-stap .sc-ends {\n  display: flex;\n  justify-content: space-between;\n  font-size: .78rem;\n  color: var(--sc-muted);\n}\n\n\/* -- het gebouw dat een niveau wint of verliest -------------------------------\n   Anticipatie, sprong, uitdempen. De schaal is bewust niet-uniform\n   (squash-and-stretch) en het draaipunt ligt op de grond, zodat het gebouw op\n   zijn fundering blijft staan in plaats van te \"zwellen\". *\/\n.sc-stap .sc-bldg-img.sc-pop { animation: sc-bldg-pop .5s cubic-bezier(.31, 1.7, .6, 1); }\n.sc-stap .sc-bldg-img.sc-grow { animation: sc-bldg-grow .66s cubic-bezier(.3, .86, .32, 1); }\n.sc-stap .sc-bldg-img.sc-shrink { animation: sc-bldg-shrink .6s cubic-bezier(.3, .86, .32, 1); }\n\/* De sprong naar niveau 5 gaat niet de hoogte in maar de breedte: er komt een\n   vleugel naast. Daarom draait die beweging rond de linkeronderhoek van de\n   tekening -- anders zet het gebouw ook naar links uit en dat leest als\n   opblazen, niet als aanbouwen. *\/\n.sc-stap .sc-bldg-img.sc-grow-x {\n  transform-origin: var(--sc-bldg-ox, 23%) 100%;\n  animation: sc-bldg-grow-x .66s cubic-bezier(.3, .86, .32, 1);\n}\n.sc-stap .sc-bldg-img.sc-shrink-x {\n  transform-origin: var(--sc-bldg-ox, 23%) 100%;\n  animation: sc-bldg-shrink-x .6s cubic-bezier(.3, .86, .32, 1);\n}\n.sc-stap .sc-bldg-img.sc-comm {\n  transform-origin: var(--sc-bldg-ox, 23%) 100%;\n  animation: sc-bldg-comm .58s cubic-bezier(.3, .86, .32, 1);\n}\n@keyframes sc-bldg-pop {\n  0% { transform: scale(.88); }\n  40% { transform: scale(1.1); }\n  70% { transform: scale(.97); }\n  100% { transform: scale(1); }\n}\n\/* groeien: door de knieen, dan omhoog schieten, dan uitdempen. De uitslagen\n   zijn bewust klein -- het moet aanvoelen alsof het gebouw er even doorheen\n   veert, niet alsof het van rubber is. *\/\n@keyframes sc-bldg-grow {\n  0% { transform: scale(1, 1); }\n  13% { transform: scale(1.03, .955); }\n  40% { transform: scale(.967, 1.053); }\n  62% { transform: scale(1.017, .98); }\n  80% { transform: scale(.994, 1.008); }\n  92% { transform: scale(1.002, .997); }\n  100% { transform: scale(1, 1); }\n}\n\/* krimpen: eerst even rekken, dan inzakken, dan uitdempen *\/\n@keyframes sc-bldg-shrink {\n  0% { transform: scale(1, 1); }\n  13% { transform: scale(.977, 1.037); }\n  42% { transform: scale(1.036, .95); }\n  64% { transform: scale(.987, 1.018); }\n  82% { transform: scale(1.005, .994); }\n  100% { transform: scale(1, 1); }\n}\n\/* breder worden: eerst samentrekken naar links, dan naar rechts uitschieten *\/\n@keyframes sc-bldg-grow-x {\n  0% { transform: scale(1, 1); }\n  13% { transform: scale(.963, 1.019); }\n  40% { transform: scale(1.046, .975); }\n  62% { transform: scale(.986, 1.011); }\n  80% { transform: scale(1.006, .995); }\n  92% { transform: scale(.998, 1.002); }\n  100% { transform: scale(1, 1); }\n}\n\/* smaller worden: eerst even naar rechts uitrekken, dan terugtrekken *\/\n@keyframes sc-bldg-shrink-x {\n  0% { transform: scale(1, 1); }\n  13% { transform: scale(1.031, .983); }\n  42% { transform: scale(.959, 1.029); }\n  64% { transform: scale(1.012, .992); }\n  82% { transform: scale(.996, 1.003); }\n  100% { transform: scale(1, 1); }\n}\n\/* commerciele kavels aan\/uit: linksonderaan ploppen een winkeldeur en een\n   luifel in de tekening. Het gebouw zet zich eerst schrap, vangt dan de\n   landing op met een korte indeuking, en dempt uit. Kleinere uitslag dan bij\n   een niveauwissel: er verandert een detail, niet het hele gebouw. *\/\n@keyframes sc-bldg-comm {\n  0% { transform: scale(1, 1); }\n  12% { transform: scale(.986, 1.016); }\n  36% { transform: scale(1.03, .964); }\n  58% { transform: scale(.99, 1.013); }\n  78% { transform: scale(1.005, .995); }\n  100% { transform: scale(1, 1); }\n}\n\n\/* Wie beweging heeft uitgezet, krijgt de wissel zonder veren. *\/\n@media (prefers-reduced-motion: reduce) {\n  .sc-stap .sc-bldg-img.sc-pop,\n  .sc-stap .sc-bldg-img.sc-grow,\n  .sc-stap .sc-bldg-img.sc-shrink,\n  .sc-stap .sc-bldg-img.sc-grow-x,\n  .sc-stap .sc-bldg-img.sc-shrink-x,\n  .sc-stap .sc-bldg-img.sc-comm { animation: none; }\n}\n<\/style>\n\n<div class=\"sc-stap\" data-basis=\"https:\/\/link.openvme.be\/assets\/syndicoach-calculator\/stap-1-gebouwgrootte\/\" data-sleutel-commercieel=\"commerciele_kavels\">\n  <!-- Geen kop hier: de titel van de stap staat er al boven, in de stijl van de pop-up. -->\n  <p class=\"mymmo-stap-tekst\">Geef het aantal bewoonbare kavels in. Garages en bergingen hoef je niet mee te tellen.<\/p>\n\n    <button type=\"button\" class=\"sc-comm-toggle\" data-rol=\"commercieel\" aria-pressed=\"false\">\n      <span class=\"sc-comm-check\" aria-hidden=\"true\">\n        <svg class=\"sc-svg\" width=\"10\" height=\"10\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" focusable=\"false\">\n          <path d=\"M20 6 9 17l-5-5\"><\/path>\n        <\/svg>\n      <\/span>\n      <span>Het gebouw heeft commerciele kavels (winkels, kantoren, ... )<\/span>\n    <\/button>\n\n    <div class=\"sc-bldg\">\n      <div class=\"sc-bldg-img\" data-rol=\"bldg\">\n        <!-- Deze src hoort bij de beginstand van de schuifbalk hieronder. -->\n        <img class=\"sc-bldg-photo lazyload\" data-src=\"https:\/\/link.openvme.be\/assets\/syndicoach-calculator\/stap-1-gebouwgrootte\/app_level2.svg\" alt=\"\" decoding=\"sync\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\">\n      <\/div>\n    <\/div>\n\n    <div class=\"sc-slider\">\n      <div>\n        <span class=\"sc-kv\" data-rol=\"kv\">8<\/span><span class=\"sc-kv-u\" data-rol=\"kv-u\">kavels<\/span>\n      <\/div>\n      <input type=\"range\" min=\"2\" max=\"60\" step=\"1\" value=\"8\" data-rol=\"range\" data-mymmo-waarde=\"aantal_kavels\" aria-label=\"Aantal kavels\">\n      <div class=\"sc-ends\">\n<span>2<\/span><span>60+<\/span>\n<\/div>\n    <\/div>\n<\/div>\n\n<script>\nMymmoStappen.stap(document.currentScript, function (api) {\n  var wortel = api.el.querySelector('.sc-stap');\n  if (!wortel) return;\n\n  var BASIS = wortel.getAttribute('data-basis') || '';\n  var SLEUTEL_COMM = wortel.getAttribute('data-sleutel-commercieel') || 'commerciele_kavels';\n\n  \/* Welk niveau hoort bij welk aantal kavels. Vijf tekeningen, twee reeksen\n     (met en zonder commerciele kavels). *\/\n  var NIVEAUS = [\n    { max: 5, level: 1 }, { max: 15, level: 2 }, { max: 25, level: 3 },\n    { max: 39, level: 4 }, { max: Infinity, level: 5 }\n  ];\n  var BESTAND = {\n    1: 'app_level1.svg', 2: 'app_level2.svg', 3: 'app_level3.svg',\n    4: 'app_level4.svg', 5: 'app_level5.svg'\n  };\n  var BESTAND_COMM = {\n    1: 'app_level1comm.svg', 2: 'app_level2comm.svg', 3: 'app_level3comm.svg',\n    4: 'app_level4comm.svg', 5: 'app_level5comm.svg'\n  };\n\n  \/* Waar staat de tekening werkelijk in haar kader? Een gebouw-svg heeft lucht\n     boven en naast zich. Deze fracties zijn eenmalig uit de originele\n     bestanden gemeten en bepalen het draaipunt van de breedtegroei. *\/\n  var LINKS = { 1: .311, 2: .282, 3: .230, 4: .230, 5: .230 };\n\n  \/* Tot en met niveau 4 wordt het gebouw hoger; op niveau 5 komt er een\n     vleugel naast en groeit het in de breedte. De beweging volgt die as,\n     anders klopt de anticipatie niet met wat je ziet gebeuren. Verandert er\n     later iets aan de tekeningen, dan is dit het enige dat je bijstelt. *\/\n  var BREEDTEGROEI = 5;\n  var ANIM = ['sc-pop', 'sc-grow', 'sc-shrink', 'sc-grow-x', 'sc-shrink-x', 'sc-comm'];\n\n  var range = wortel.querySelector('[data-rol=\"range\"]');\n  var kv = wortel.querySelector('[data-rol=\"kv\"]');\n  var kvu = wortel.querySelector('[data-rol=\"kv-u\"]');\n  var bldg = wortel.querySelector('[data-rol=\"bldg\"]');\n  var knop = wortel.querySelector('[data-rol=\"commercieel\"]');\n  if (!range || !bldg) return;\n\n  var maximum = parseInt(range.getAttribute('max'), 10) || 60;\n\n  \/* Komt de bezoeker terug van een MISLUKTE inzending, dan staat zijn antwoord\n     nog in het verborgen veld (de plugin schrijft de POST terug) maar niet op\n     de schuifbalk -- die is statische HTML uit wp-admin en staat dus weer op\n     haar beginstand. Zonder deze regel ziet hij 8 staan terwijl hij 30 koos,\n     en drukt hij op Verzenden met de verkeerde waarde. *\/\n  var bewaard = parseInt(api.lees(range.getAttribute('data-mymmo-waarde')), 10);\n  if (bewaard >= parseInt(range.getAttribute('min'), 10) && bewaard <= maximum) {\n    range.value = String(bewaard);\n  }\n\n  var commercieel = api.lees(SLEUTEL_COMM) === 'ja';\n  var niveau = niveauVan(getal());\n  var swapT = null;\n\n  function getal() { return parseInt(range.value, 10) || 0; }\n\n  function niveauVan(k) {\n    for (var i = 0; i < NIVEAUS.length; i += 1) {\n      if (k <= NIVEAUS[i].max) return NIVEAUS[i].level;\n    }\n    return 5;\n  }\n\n  function bron(level, comm) {\n    var map = comm ? BESTAND_COMM : BESTAND;\n    return BASIS + (map[level] || BESTAND[level]);\n  }\n\n  \/* Vervangt de bron van de bestaande <img> in plaats van het element opnieuw\n     op te bouwen. Dat laatste kost de browser altijd een frame -- ook als de\n     afbeelding al in de cache zit -- en dat zie je als een flits bij elke\n     wissel. Staat de tekening op haar fallback-icoon, dan bouwen we wel\n     opnieuw op. *\/\n  function teken() {\n    var img = bldg.querySelector('.sc-bldg-photo');\n    if (img) {\n      var s = bron(niveau, commercieel);\n      if (img.getAttribute('src') !== s) img.setAttribute('src', s);\n      return;\n    }\n    img = document.createElement('img');\n    img.className = 'sc-bldg-photo';\n    img.alt = '';\n    img.setAttribute('loading', 'eager');\n    img.setAttribute('decoding', 'sync');\n    bewaakLaden(img);\n    bldg.innerHTML = '';\n    bldg.appendChild(img);\n    img.src = bron(niveau, commercieel);\n  }\n\n  \/* Haalt de tekening niet op, dan komt er een lijnicoon in de plaats. Geen\n     globale window-functie en geen inline onerror: dezelfde stap kan twee keer\n     op een pagina staan. *\/\n  function bewaakLaden(img) {\n    img.addEventListener('error', function () {\n      if (!img.parentNode) return;\n      var span = document.createElement('span');\n      span.className = 'sc-bldg-fallback';\n      span.setAttribute('aria-hidden', 'true');\n      span.innerHTML = '<svg class=\"sc-svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" ' +\n        'stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" focusable=\"false\">' +\n        '<rect x=\"4\" y=\"2\" width=\"16\" height=\"20\" rx=\"2\"\/><path d=\"M9 22v-4h6v4\"\/>' +\n        '<path d=\"M8 6h.01M16 6h.01M8 10h.01M16 10h.01M8 14h.01M16 14h.01\"\/>';\n      img.parentNode.replaceChild(span, img);\n    });\n  }\n\n  function draaipunt() {\n    var f = LINKS[niveau];\n    if (f) bldg.style.setProperty('--sc-bldg-ox', (f * 100).toFixed(1) + '%');\n  }\n\n  function beweeg(cls) {\n    draaipunt();\n    for (var i = 0; i < ANIM.length; i += 1) bldg.classList.remove(ANIM[i]);\n    void bldg.offsetWidth;                 \/* forceer reflow zodat de animatie herstart *\/\n    bldg.classList.add(cls);\n    if (bldg._eind) bldg.removeEventListener('animationend', bldg._eind);\n    bldg._eind = function (ev) {\n      if (ev.target !== bldg) return;\n      bldg.classList.remove(cls);\n      bldg.removeEventListener('animationend', bldg._eind);\n      bldg._eind = null;\n    };\n    bldg.addEventListener('animationend', bldg._eind);\n  }\n\n  \/* De tekening wisselt niet op tel nul maar op het dieptepunt van de\n     anticipatie: op dat moment zit het gebouw samengedrukt en valt de wissel\n     nauwelijks op -- wat erna komt leest als een beweging in plaats van als een\n     plaatje dat verspringt. Sleept iemand snel door meerdere niveaus, dan\n     schuift de wissel gewoon mee op. *\/\n  function wisselNa(ms) {\n    clearTimeout(swapT);\n    swapT = setTimeout(function () { swapT = null; teken(); }, ms);\n  }\n\n  function toonGetal() {\n    var k = getal();\n    if (kv) kv.textContent = String(k);\n    if (kvu) kvu.textContent = k >= maximum ? 'kavels of meer' : 'kavels';\n  }\n\n  range.addEventListener('input', function () {\n    toonGetal();\n    var nieuw = niveauVan(getal());\n    if (nieuw === niveau) return;\n    var as = Math.max(niveau, nieuw) >= BREEDTEGROEI ? '-x' : '';\n    var cls = (nieuw < niveau ? 'sc-shrink' : 'sc-grow') + as;\n    niveau = nieuw;\n    beweeg(cls);\n    wisselNa(88);\n  });\n\n  if (knop) {\n    knop.addEventListener('click', function () {\n      commercieel = !commercieel;\n      knop.classList.toggle('is-on', commercieel);\n      knop.setAttribute('aria-pressed', commercieel ? 'true' : 'false');\n      api.zet(SLEUTEL_COMM, commercieel ? 'ja' : 'nee');\n      beweeg('sc-comm');\n      wisselNa(72);   \/* net na het schrap zetten, zodat de landing de plop opvangt *\/\n    });\n  }\n\n  \/* Beginstand. Het getal komt al mee via data-mymmo-waarde; het vinkje niet,\n     dus dat zetten we hier expliciet -- anders staat er in Odoo niets in plaats\n     van \"nee\". *\/\n  var eerste = bldg.querySelector('.sc-bldg-photo');\n  if (eerste) bewaakLaden(eerste);\n  if (knop) {\n    knop.classList.toggle('is-on', commercieel);\n    knop.setAttribute('aria-pressed', commercieel ? 'true' : 'false');\n  }\n  api.zet(SLEUTEL_COMM, commercieel ? 'ja' : 'nee');\n  toonGetal();\n  draaipunt();\n  teken();\n\n  \/* Komt de stap opnieuw in beeld (terug vanuit het formulier), dan staan de\n     waarden er nog: de schuifbalk houdt zijn stand en de tekening klopt al.\n     Een plop maakt zichtbaar dat je terug bent. *\/\n  api.bij('tonen', function () { beweeg('sc-pop'); });\n});\n<\/script>\n<\/div>\n<div class=\"mymmo-stap-nav\"><button type=\"button\" class=\"mymmo-stap-knop mymmo-stap-knop--verder\" data-mymmo-volgende>Volgende<\/button><\/div><\/section>                                <section class=\"mymmo-stap mymmo-stap--html\" data-mymmo-stap=\"1\" data-mymmo-stap-naam=\"gebouwkenmerken\" data-mymmo-stap-velden=\"\" data-mymmo-stap-nav=\"plugin\" hidden><h3 class=\"mymmo-stap-titel mymmo-stap-titel--met-tekst\" data-mymmo-kop=\"titel\">Welke gemeenschappelijke voorzieningen zijn er aanwezig in jullie gebouw?<\/h3>\n<p class=\"mymmo-stap-tekst\" data-mymmo-kop=\"sub\">Duid aan wat van toepassing is.<\/p>\n<div class=\"mymmo-stap-inhoud\" data-mymmo-stap-inhoud>\n<!--\n  STAP - \"Welke voorzieningen zijn er aanwezig in de gemeenschap?\"\n\n  Meerkeuze met de tekeningen uit brand\/thingies. Levert EEN waarde af:\n\n      gebouw_kenmerken     komma-gescheiden, bv. \"lift,garages,Zwembad\"\n\n  De lijst is in 1.17.15 ingekort tot de VOORZIENINGEN die er zijn -- geen\n  problemen meer. Waarom iemand met ons praat, vraagt de stap erna\n  (waarom-syndicoach). Vijf waarden zijn daarbij weggevallen:\n  verouderde_installaties, moeilijke_sfeer, ontbrekende_verzekeringen,\n  geen_reserverekening en sleutels_badges. Ze staan nog in oude inzendingen,\n  dus hergebruik die namen nooit voor iets anders. `water_verwarming` is nieuw\n  (in 1.17.15 heette die waarde nog `gemeenschappelijke_verwarming`, hernoemd\n  in 1.17.17 omdat dat label niet netjes afbrak onder een kei -- staan er al\n  inzendingen met de oude naam, zet ze dan terug); `garages` bleef als waarde\n  staan en kreeg alleen een breder label.\n\n  Zet in de Operations Manager een VERBORGEN VELD met die sleutel op het\n  formulier. Laat \"Levert deze sleutels\" bij de stap LEEG: niets aanduiden is een\n  geldig antwoord, en anders blijft \"Volgende\" uit.\n\n  DE LIJST AANVULLEN\n  ------------------\n  Een kei is gewoon een knop in de HTML hieronder. Een regel kopieren en drie\n  dingen aanpassen:\n\n      <button type=\"button\" class=\"mf-kei\" data-waarde=\"fietsenstalling\" aria-pressed=\"false\">\n        <span class=\"mf-blob\"><img fetchpriority=\"high\" decoding=\"async\" class=\"skip-lazy no-lazyload\" data-no-lazy=\"1\" data-skip-lazy=\"1\"\n          src=\"...\/thingies_fietsenstalling.svg\" alt=\"\" width=\"400\" height=\"400\" loading=\"eager\"><\/span>\n        <span class=\"mf-kei-label\">Fietsenstalling<\/span>\n      <\/button>\n\n  `data-waarde` belandt in Odoo en ligt VAST zodra er inzendingen zijn. Het label\n  mag altijd wijzigen -- ook rechtstreeks in het voorbeeld van de bouwer, want\n  het is echte tekst in de HTML.\n\n  WAAROM DE KEIEN IN DE HTML STAAN EN NIET IN HET SCRIPT\n  -----------------------------------------------------\n  In een eerdere versie bouwde het script elke kei met innerHTML-strings als\n  '<span>' + ... + '<\/span>'. Op syndicoach.be kwamen alle sluit-tags UIT die\n  strings niet aan -- ze stonden er al zo in de ruwe HTML van de server -- waardoor\n  alles in elkaar nestte en elk label onzichtbaar in het vinkje belandde. Waar dat\n  gebeurt (een filter of beveiligingsplugin in WordPress) is van hieruit niet te\n  zien; de markup buiten het script kwam wel ongeschonden door.\n  Een versie later bleek het erger: ook `&&` werd `&#038;&#038;` en elke letter met\n  een accent een hex-entiteit, waarna het script niet meer parste en geen kei\n  reageerde. Alleen deze stap werd geraakt -- de enige met `loading=\"lazy\"`-\n  afbeeldingen, naast een lazyload-plugin op de site die ze herschreef. Daarom:\n  - het script bevat UITSLUITEND ASCII, en geen en-teken, kleiner- of groter-dan\n    en geen sluit-tag (zie de uitleg bovenaan in het script);\n  - de afbeeldingen laden meteen, met de gangbare vlaggen om lazyload-plugins\n    over te slaan (`skip-lazy`, `no-lazyload`, `data-no-lazy`, `data-skip-lazy`).\n\n  Geen eigen kop, kaartje, opvulling of lettertype: dat levert de plugin.\n-->\n\n<style>\n\/* Alles genest onder .mf-kenmerken. Geen id's: dezelfde stap mag twee keer op\n   een pagina staan. *\/\n.mf-kenmerken {\n  --k-accent: var(--mf-accent, #99f6e4);\n  --k-ink: var(--mf-text, #1f2430);\n  \/* De LEESBARE merkkleur (bij Syndicoach donkerblauw #0369a1). Voor het\n     vinkje, de rand van een gekozen kei en het label ervan. Zet de plugin zelf. *\/\n  --k-inkt: var(--mf-accent-ink, var(--mf-text, #0369a1));\n  --k-muted: var(--mf-muted, #6b7280);\n  --k-lijn: var(--mf-border, #d7dbe2);\n  --k-vlak: var(--mf-field-bg, #ffffff);\n\n  color: var(--k-ink);\n  line-height: 1.5;\n  flex: 1 0 auto;\n  display: flex;\n  flex-direction: column;\n}\n.mf-kenmerken *, .mf-kenmerken *::before, .mf-kenmerken *::after { box-sizing: border-box; }\n\n\/* De wolk staat VERTICAAL GECENTREERD in de ruimte tussen de uitleg en de\n   knoppen: auto boven en onder. Zakt er niets te verdelen, dan worden allebei 0. *\/\n.mf-kenmerken .mf-veld { margin-block: auto; }\n\n\/* De rijen laten tussen elkaar ruimte voor een label van twee regels: het label\n   hangt ONDER de kei en neemt zelf geen plaats in, zodat een label dat\n   verschijnt de wolk niet doet verspringen. *\/\n.mf-kenmerken .mf-wolk {\n  display: flex;\n  flex-wrap: wrap;\n  justify-content: center;\n  align-items: center;\n  gap: 52px 8px;\n  padding: 10px 0 48px;\n}\n\n.mf-kenmerken .mf-kei {\n  position: relative;\n  width: 104px;\n  height: 96px;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  margin: 0;\n  padding: 0;\n  border: 0;\n  background: none;\n  font: inherit;\n  color: var(--k-ink);\n  cursor: pointer;\n}\n.mf-kenmerken .mf-kei:focus-visible { outline: none; }\n\n\/* De kei. Vier organische vormen die om de beurt terugkomen, elk een tikje\n   gekanteld. `rotate`, `scale` en `translate` zijn drie aparte eigenschappen:\n   zo kan de kei tegelijk scheef staan, zweven en groeien zonder dat de ene\n   beweging de andere overschrijft. *\/\n.mf-kenmerken .mf-blob {\n  position: relative;\n  width: 92px;\n  height: 92px;\n  display: grid;\n  place-items: center;\n  background: var(--k-vlak);\n  border: 1.5px solid var(--k-lijn);\n  border-radius: 63% 37% 52% 48% \/ 42% 57% 43% 58%;\n  rotate: -3deg;\n  \/* Groeien MET anticipatie: de negatieve waarde laat de kei eerst een tikje\n     inzakken, de waarde boven 1 laat hem voorbij zijn eindmaat schieten en\n     terugveren. Ease in en uit zit in de curve zelf. *\/\n  transition:\n    scale .46s cubic-bezier(.36, -0.5, .28, 1.5),\n    background-color .22s ease,\n    border-color .22s ease;\n  animation: mf-zweef 6.4s ease-in-out infinite;\n}\n.mf-kenmerken .mf-kei:nth-child(4n+2) .mf-blob {\n  border-radius: 38% 62% 67% 33% \/ 58% 36% 64% 42%;\n  rotate: 2.5deg;\n  animation-delay: -1.6s;\n}\n.mf-kenmerken .mf-kei:nth-child(4n+3) .mf-blob {\n  border-radius: 56% 44% 31% 69% \/ 37% 64% 36% 63%;\n  rotate: -1.5deg;\n  animation-delay: -3.2s;\n}\n.mf-kenmerken .mf-kei:nth-child(4n) .mf-blob {\n  border-radius: 33% 67% 59% 41% \/ 64% 39% 61% 36%;\n  rotate: 3deg;\n  animation-delay: -4.6s;\n}\n\n\/* Zweven rond het MIDDEN (-2px tot +2px), niet van 0 naar boven: anders ligt het\n   gemiddelde van elke kei hoger dan zijn plek en staat een rij niet meer recht. *\/\n@keyframes mf-zweef {\n  0%, 100% { translate: 0 -2px; }\n  50%      { translate: 0 2px; }\n}\n\n.mf-kenmerken .mf-blob img {\n  display: block;\n  width: 78px;\n  height: 78px;\n  object-fit: contain;\n  pointer-events: none;\n}\n\n\/* Groter bij aanwijzen en bij een toetsenbordfocus, en GROOT BLIJVEN als hij\n   gekozen is. *\/\n.mf-kenmerken .mf-kei:hover .mf-blob,\n.mf-kenmerken .mf-kei:focus-visible .mf-blob,\n.mf-kenmerken .mf-kei[aria-pressed=\"true\"] .mf-blob {\n  scale: 1.18;\n}\n.mf-kenmerken .mf-kei:hover .mf-blob,\n.mf-kenmerken .mf-kei:focus-visible .mf-blob {\n  border-color: color-mix(in srgb, var(--k-inkt) 40%, var(--k-lijn));\n}\n\n\/* Gekozen: een ZACHTE mint en een rand in de leesbare merkkleur. Geen vol mint\n   vlak -- de tekeningen zijn zelf in mint en donkerblauw getekend, en op een\n   vol mint vlak verdwijnt de helft van de tekening. *\/\n.mf-kenmerken .mf-kei[aria-pressed=\"true\"] .mf-blob {\n  background: color-mix(in srgb, var(--k-accent) 30%, var(--k-vlak));\n  border: 2px solid var(--k-inkt);\n  animation-play-state: paused;\n}\n\n\/* Het vinkje. Met CSS getekend (twee randen van een gedraaid vlakje), dus geen\n   tekening en geen markup nodig. Het hangt IN de kei en groeit dus mee. *\/\n.mf-kenmerken .mf-blob::after {\n  content: \"\";\n  position: absolute;\n  top: -5px;\n  right: -5px;\n  width: 22px;\n  height: 22px;\n  border-radius: 999px;\n  background: var(--k-inkt);\n  opacity: 0;\n  scale: .4;\n  transition: opacity .18s ease, scale .32s cubic-bezier(.34, 1.56, .64, 1);\n}\n.mf-kenmerken .mf-blob::before {\n  content: \"\";\n  position: absolute;\n  z-index: 1;\n  top: 0;\n  right: 2px;\n  width: 6px;\n  height: 11px;\n  border: solid #fff;\n  border-width: 0 2px 2px 0;\n  rotate: 45deg;\n  opacity: 0;\n  transition: opacity .18s ease;\n}\n.mf-kenmerken .mf-kei[aria-pressed=\"true\"] .mf-blob::after { opacity: 1; scale: 1; }\n.mf-kenmerken .mf-kei[aria-pressed=\"true\"] .mf-blob::before { opacity: 1; }\n\n\/* Het label hangt onder de kei en verschijnt bij aanwijzen, bij focus, en\n   BLIJFT staan bij een gekozen kei. Een expliciete kleur: het erft niet van de\n   knop, want een thema zet soms een kleur op elke <button>. *\/\n.mf-kenmerken .mf-kei-label {\n  position: absolute;\n  top: calc(100% + 10px);\n  left: 50%;\n  \/* Breed genoeg voor het langste woord dat we hebben (\"fietsenstalling\"), en\n     smal genoeg dat een label van twee woorden op twee regels valt (\"Meerdere\"\n     \/ \"ingangen\") -- dan hebben keien naast elkaar even hoge labels. `balance`\n     verdeelt de regels gelijk; `break-word` is enkel een vangnet voor een label\n     dat iemand later langer maakt. Een label dat breder is dan een kei plus de\n     kolomruimte eromheen raakt dat van zijn buur: hier 102 tegen 104 + 8, dus\n     dat zit goed. Dit ging mis met \"Gemeenschappelijke verwarming\" -- dat ene\n     woord was breder dan de kei zelf, en de oplossing is een korter label, niet\n     een breder vak. *\/\n  width: 102px;\n  text-wrap: balance;\n  overflow-wrap: break-word;\n  translate: -50% 6px;\n  font-size: .78rem;\n  line-height: 1.25;\n  text-align: center;\n  color: var(--k-ink);\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity .22s ease, translate .38s cubic-bezier(.34, -0.3, .28, 1.35);\n}\n.mf-kenmerken .mf-kei:hover .mf-kei-label,\n.mf-kenmerken .mf-kei:focus-visible .mf-kei-label,\n.mf-kenmerken .mf-kei[aria-pressed=\"true\"] .mf-kei-label {\n  opacity: 1;\n  translate: -50% 0;\n}\n.mf-kenmerken .mf-kei[aria-pressed=\"true\"] .mf-kei-label {\n  font-weight: 600;\n  color: var(--k-inkt);\n}\n\n\/* Op een scherm zonder aanwijzer (telefoon, tablet) bestaat \"hover\" niet. Zonder\n   deze regel zie je daar een wolk tekeningen zonder &#xE9;&#xE9;n woord uitleg. *\/\n@media (hover: none) {\n  .mf-kenmerken .mf-kei-label { opacity: 1; translate: -50% 0; }\n}\n\n\/* Laadt een tekening niet, dan komt het label IN de kei. Nooit een\n   kapot-plaatje-icoontje. *\/\n.mf-kenmerken .mf-kei--zonder-beeld .mf-blob img { display: none; }\n\n\/* &#x2500;&#x2500; Zelf aanvullen &#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500; *\/\n\n\/* De \"+\": twee streepjes met CSS, zelfde reden als het vinkje. *\/\n.mf-kenmerken .mf-kei--extra .mf-blob {\n  border-style: dashed;\n  background: transparent;\n  animation: none;\n}\n.mf-kenmerken .mf-plus {\n  position: relative;\n  width: 22px;\n  height: 22px;\n}\n.mf-kenmerken .mf-plus::before,\n.mf-kenmerken .mf-plus::after {\n  content: \"\";\n  position: absolute;\n  left: 50%;\n  top: 50%;\n  width: 22px;\n  height: 2px;\n  border-radius: 2px;\n  background: var(--k-muted);\n  translate: -50% -50%;\n}\n.mf-kenmerken .mf-plus::after { rotate: 90deg; }\n\n\/* Wat de bezoeker zelf typte heeft geen tekening: de tekst staat dan in de kei.\n   Zulke keien zijn altijd gekozen -- uitzetten haalt ze weg. *\/\n.mf-kenmerken .mf-eigen-tekst {\n  display: -webkit-box;\n  -webkit-line-clamp: 3;\n  -webkit-box-orient: vertical;\n  overflow: hidden;\n  padding: 0 8px;\n  font-size: .7rem;\n  font-weight: 600;\n  line-height: 1.15;\n  text-align: center;\n  color: var(--k-inkt);\n}\n\n.mf-kenmerken .mf-invoer {\n  display: none;\n  gap: 8px;\n  justify-content: center;\n  margin-top: 4px;\n}\n.mf-kenmerken .mf-invoer.is-open { display: flex; }\n.mf-kenmerken .mf-invoer input {\n  width: min(280px, 100%);\n  height: auto;\n  margin: 0;\n  padding: 9px 12px;\n  font: inherit;\n  font-size: .9rem;\n  color: var(--k-ink);\n  background: var(--k-vlak);\n  border: 1.5px solid var(--k-lijn);\n  border-radius: 10px;\n}\n.mf-kenmerken .mf-invoer input:focus { outline: none; border-color: var(--k-inkt); }\n.mf-kenmerken .mf-invoer button {\n  height: auto;\n  margin: 0;\n  padding: 9px 16px;\n  font: inherit;\n  font-size: .9rem;\n  font-weight: 600;\n  color: var(--k-ink);\n  background: var(--k-accent);\n  border: 0;\n  border-radius: 10px;\n  cursor: pointer;\n}\n\n.mf-kenmerken .mf-plop { animation: mf-plop .42s cubic-bezier(.31, 1.7, .6, 1); }\n@keyframes mf-plop {\n  0%   { translate: 0 0; }\n  35%  { translate: 0 -6px; }\n  100% { translate: 0 0; }\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .mf-kenmerken .mf-blob,\n  .mf-kenmerken .mf-plop { animation: none; }\n  .mf-kenmerken .mf-blob,\n  .mf-kenmerken .mf-kei-label { transition: none; }\n}\n\n@media (max-width: 420px) {\n  .mf-kenmerken .mf-wolk { gap: 48px 6px; }\n  .mf-kenmerken .mf-kei { width: 88px; height: 80px; }\n  .mf-kenmerken .mf-kei-label { width: 92px; font-size: .7rem; }\n  .mf-kenmerken .mf-blob { width: 78px; height: 78px; }\n  .mf-kenmerken .mf-blob img { width: 66px; height: 66px; }\n}\n<\/style>\n\n<div class=\"mf-kenmerken\" data-sleutel=\"gebouw_kenmerken\">\n  <div class=\"mf-veld\">\n    <div class=\"mf-wolk\" data-rol=\"wolk\" role=\"group\" aria-label=\"Voorzieningen in het gebouw\">\n\n      <button type=\"button\" class=\"mf-kei\" data-waarde=\"lift\" aria-pressed=\"false\">\n        <span class=\"mf-blob\"><img class=\"skip-lazy no-lazyload\" data-no-lazy=\"1\" data-skip-lazy=\"1\" src=\"https:\/\/link.openvme.be\/assets\/brand\/thingies\/thingies_lift.svg\" alt=\"\" width=\"400\" height=\"400\" loading=\"eager\" decoding=\"async\"><\/span>\n        <span class=\"mf-kei-label\">Lift<\/span>\n      <\/button>\n\n      <button type=\"button\" class=\"mf-kei\" data-waarde=\"water_verwarming\" aria-pressed=\"false\">\n        <span class=\"mf-blob\"><img class=\"skip-lazy no-lazyload\" data-no-lazy=\"1\" data-skip-lazy=\"1\" src=\"https:\/\/link.openvme.be\/assets\/brand\/thingies\/thingies_verwarming.svg\" alt=\"\" width=\"400\" height=\"400\" loading=\"eager\" decoding=\"async\"><\/span>\n        <span class=\"mf-kei-label\">Water en verwarming<\/span>\n      <\/button>\n\n      <button type=\"button\" class=\"mf-kei\" data-waarde=\"zonnepanelen\" aria-pressed=\"false\">\n        <span class=\"mf-blob\"><img class=\"skip-lazy no-lazyload\" data-no-lazy=\"1\" data-skip-lazy=\"1\" src=\"https:\/\/link.openvme.be\/assets\/brand\/thingies\/thingies_zonnepaneel.svg\" alt=\"\" width=\"400\" height=\"400\" loading=\"eager\" decoding=\"async\"><\/span>\n        <span class=\"mf-kei-label\">Zonnepanelen<\/span>\n      <\/button>\n\n      <button type=\"button\" class=\"mf-kei\" data-waarde=\"laadpalen\" aria-pressed=\"false\">\n        <span class=\"mf-blob\"><img class=\"skip-lazy no-lazyload\" data-no-lazy=\"1\" data-skip-lazy=\"1\" src=\"https:\/\/link.openvme.be\/assets\/brand\/thingies\/thingies_laadpaal.svg\" alt=\"\" width=\"400\" height=\"400\" loading=\"eager\" decoding=\"async\"><\/span>\n        <span class=\"mf-kei-label\">Laadpalen<\/span>\n      <\/button>\n\n      <button type=\"button\" class=\"mf-kei\" data-waarde=\"onderhoud_tuin\" aria-pressed=\"false\">\n        <span class=\"mf-blob\"><img class=\"skip-lazy no-lazyload\" data-no-lazy=\"1\" data-skip-lazy=\"1\" src=\"https:\/\/link.openvme.be\/assets\/brand\/thingies\/thingies_tuin.svg\" alt=\"\" width=\"400\" height=\"400\" loading=\"eager\" decoding=\"async\"><\/span>\n        <span class=\"mf-kei-label\">Tuin met onderhoud<\/span>\n      <\/button>\n\n      <button type=\"button\" class=\"mf-kei\" data-waarde=\"garages\" aria-pressed=\"false\">\n        <span class=\"mf-blob\"><img class=\"skip-lazy no-lazyload\" data-no-lazy=\"1\" data-skip-lazy=\"1\" src=\"https:\/\/link.openvme.be\/assets\/brand\/thingies\/thingies_fietsenstalling.svg\" alt=\"\" width=\"400\" height=\"400\" loading=\"eager\" decoding=\"async\"><\/span>\n        <span class=\"mf-kei-label\">Garages en fietsenstalling<\/span>\n      <\/button>\n\n      <button type=\"button\" class=\"mf-kei\" data-waarde=\"afvallokaal\" aria-pressed=\"false\">\n        <span class=\"mf-blob\"><img class=\"skip-lazy no-lazyload\" data-no-lazy=\"1\" data-skip-lazy=\"1\" src=\"https:\/\/link.openvme.be\/assets\/brand\/thingies\/thingies_vuilniishok.svg\" alt=\"\" width=\"400\" height=\"400\" loading=\"eager\" decoding=\"async\"><\/span>\n        <span class=\"mf-kei-label\">Afvallokaal<\/span>\n      <\/button>\n\n      <button type=\"button\" class=\"mf-kei\" data-waarde=\"meerdere_ingangen\" aria-pressed=\"false\">\n        <span class=\"mf-blob\"><img class=\"skip-lazy no-lazyload\" data-no-lazy=\"1\" data-skip-lazy=\"1\" src=\"https:\/\/link.openvme.be\/assets\/brand\/thingies\/thingies_deur.svg\" alt=\"\" width=\"400\" height=\"400\" loading=\"eager\" decoding=\"async\"><\/span>\n        <span class=\"mf-kei-label\">Meerdere ingangen<\/span>\n      <\/button>\n\n      <button type=\"button\" class=\"mf-kei mf-kei--extra\" data-rol=\"extra\" aria-expanded=\"false\">\n        <span class=\"mf-blob\"><span class=\"mf-plus\" aria-hidden=\"true\"><\/span><\/span>\n        <span class=\"mf-kei-label\">Iets anders<\/span>\n      <\/button>\n\n    <\/div>\n\n    <div class=\"mf-invoer\" data-rol=\"invoer\">\n      <input type=\"text\" data-rol=\"invoer-veld\" maxlength=\"40\" placeholder=\"Iets anders? Typ het hier\" aria-label=\"Eigen kenmerk toevoegen\">\n      <button type=\"button\" data-rol=\"invoer-ok\">Toevoegen<\/button>\n    <\/div>\n  <\/div>\n<\/div>\n\n<script>\nMymmoStappen.stap(document.currentScript, function (api) {\n  \/* LEES DIT VOOR JE DIT SCRIPT AANPAST.\n     Op syndicoach.be wordt de HTML van deze stap opnieuw uitgeschreven voor ze\n     de browser bereikt. Daarbij werd een en-teken een HTML-entiteit, een letter\n     met een accent een hex-entiteit, en verdween elke sluit-tag uit een string.\n     Het script parste daarna niet meer en geen enkele kei reageerde.\n     Daarom bevat dit script uitsluitend ASCII en geen enkel en-teken, kleiner-\n     of groter-dan-teken of sluit-tag. Schrijf dus geen dubbele en-tekens in een\n     voorwaarde maar twee geneste ifs, en geen lussen met een vergelijking maar\n     forEach en filter. *\/\n\n  var wortel = api.el.querySelector('.mf-kenmerken');\n  if (!wortel) return;\n\n  var SLEUTEL = wortel.getAttribute('data-sleutel') || 'gebouw_kenmerken';\n  var wolk = wortel.querySelector('[data-rol=\"wolk\"]');\n  var extra = wortel.querySelector('[data-rol=\"extra\"]');\n  var invoer = wortel.querySelector('[data-rol=\"invoer\"]');\n  var invoerVeld = wortel.querySelector('[data-rol=\"invoer-veld\"]');\n  var invoerOk = wortel.querySelector('[data-rol=\"invoer-ok\"]');\n  if (!wolk) return;\n\n  var gekozen = [];\n\n  function lijst(nodes) {\n    return Array.prototype.slice.call(nodes);\n  }\n\n  function schrijf() {\n    api.zet(SLEUTEL, gekozen.join(','));\n  }\n\n  function keiVoor(waarde) {\n    var gezocht = String(waarde).toLowerCase();\n    var treffers = lijst(wolk.querySelectorAll('.mf-kei[data-waarde]')).filter(function (kei) {\n      return kei.getAttribute('data-waarde').toLowerCase() === gezocht;\n    });\n    return treffers.length ? treffers[0] : null;\n  }\n\n  function plop(kei) {\n    kei.classList.remove('mf-plop');\n    void kei.offsetWidth;\n    kei.classList.add('mf-plop');\n  }\n\n  function zet(kei, aan) {\n    var waarde = kei.getAttribute('data-waarde');\n    kei.setAttribute('aria-pressed', aan ? 'true' : 'false');\n    gekozen = gekozen.filter(function (w) { return w !== waarde; });\n    if (aan) {\n      gekozen.push(waarde);\n      plop(kei);\n    }\n  }\n\n  \/* Een kei voor wat de bezoeker zelf typte: createElement en textContent,\n     nooit een HTML-string. *\/\n  function maakEigenKei(tekst) {\n    var knop = document.createElement('button');\n    knop.type = 'button';\n    knop.className = 'mf-kei mf-kei--eigen';\n    knop.setAttribute('data-waarde', tekst);\n    knop.setAttribute('data-eigen', '1');\n    knop.setAttribute('aria-pressed', 'true');\n\n    var blob = document.createElement('span');\n    blob.className = 'mf-blob';\n    var inhoud = document.createElement('span');\n    inhoud.className = 'mf-eigen-tekst';\n    inhoud.textContent = tekst;\n    blob.appendChild(inhoud);\n\n    var label = document.createElement('span');\n    label.className = 'mf-kei-label';\n    label.textContent = 'Zelf toegevoegd';\n\n    knop.appendChild(blob);\n    knop.appendChild(label);\n    wolk.insertBefore(knop, extra);\n    return knop;\n  }\n\n  function voegEigenToe(ruw) {\n    var tekst = String(ruw || '').replace(\/,\/g, ' ').replace(\/\\s+\/g, ' ').trim().slice(0, 40);\n    if (!tekst) return;\n\n    var bestaand = keiVoor(tekst);\n    if (bestaand) {\n      if (bestaand.getAttribute('aria-pressed') === 'true') {\n        plop(bestaand);\n      } else {\n        zet(bestaand, true);\n      }\n      schrijf();\n      return;\n    }\n\n    plop(maakEigenKei(tekst));\n    gekozen.push(tekst);\n    schrijf();\n  }\n\n  function openInvoer() {\n    if (!invoer) return;\n    var open = invoer.classList.toggle('is-open');\n    extra.setAttribute('aria-expanded', open ? 'true' : 'false');\n    if (open) {\n      if (invoerVeld) invoerVeld.focus();\n    }\n  }\n\n  \/* Een luisteraar op de wolk voor alle keien, ook die er later bijkomen. *\/\n  wolk.addEventListener('click', function (e) {\n    var kei = e.target.closest ? e.target.closest('.mf-kei') : null;\n    if (!kei) return;\n    if (!wolk.contains(kei)) return;\n\n    if (kei === extra) {\n      openInvoer();\n      return;\n    }\n\n    var aan = kei.getAttribute('aria-pressed') === 'true';\n    var eigen = kei.getAttribute('data-eigen') === '1';\n\n    if (aan) {\n      if (eigen) {\n        \/* Een eigen kei bestaat alleen omdat iemand hem typte: uitzetten is weg. *\/\n        var waarde = kei.getAttribute('data-waarde');\n        gekozen = gekozen.filter(function (w) { return w !== waarde; });\n        kei.remove();\n        schrijf();\n        return;\n      }\n    }\n\n    zet(kei, !aan);\n    schrijf();\n  });\n\n  if (invoerOk) {\n    invoerOk.addEventListener('click', function () {\n      voegEigenToe(invoerVeld ? invoerVeld.value : '');\n      if (invoerVeld) {\n        invoerVeld.value = '';\n        invoerVeld.focus();\n      }\n    });\n  }\n\n  if (invoerVeld) {\n    invoerVeld.addEventListener('keydown', function (e) {\n      if (e.key !== 'Enter') return;\n      \/* Enter hier mag het formulier niet versturen. *\/\n      e.preventDefault();\n      voegEigenToe(invoerVeld.value);\n      invoerVeld.value = '';\n    });\n  }\n\n  \/* Een tekening die niet laadt: het label komt dan in de kei. *\/\n  lijst(wolk.querySelectorAll('.mf-blob img')).forEach(function (img) {\n    function mislukt() {\n      var kei = img.closest('.mf-kei');\n      if (!kei) return;\n      var label = kei.querySelector('.mf-kei-label');\n      if (!label) return;\n      kei.classList.add('mf-kei--zonder-beeld');\n      var tekst = document.createElement('span');\n      tekst.className = 'mf-eigen-tekst';\n      tekst.textContent = label.textContent;\n      img.parentNode.appendChild(tekst);\n    }\n    if (img.complete) {\n      if (img.naturalWidth === 0) mislukt();\n      return;\n    }\n    img.addEventListener('error', mislukt);\n  });\n\n  \/* Beginstand: terug van een mislukte inzending of van een volgende stap. *\/\n  String(api.lees(SLEUTEL) || '').split(',')\n    .map(function (s) { return s.trim(); })\n    .filter(Boolean)\n    .forEach(function (waarde) {\n      var kei = keiVoor(waarde);\n      if (kei) {\n        kei.setAttribute('aria-pressed', 'true');\n        gekozen.push(kei.getAttribute('data-waarde'));\n        return;\n      }\n      maakEigenKei(waarde);\n      gekozen.push(waarde);\n    });\n  schrijf();\n\n  api.bij('tonen', function () {\n    lijst(wolk.querySelectorAll('.mf-kei[aria-pressed=\"true\"]')).forEach(plop);\n  });\n});\n<\/script>\n<\/div>\n<div class=\"mymmo-stap-nav\">\n<button type=\"button\" class=\"mymmo-stap-knop mymmo-stap-knop--terug\" data-mymmo-vorige>Vorige<\/button><button type=\"button\" class=\"mymmo-stap-knop mymmo-stap-knop--verder\" data-mymmo-volgende>Volgende<\/button>\n<\/div><\/section>                                <section class=\"mymmo-stap mymmo-stap--html\" data-mymmo-stap=\"2\" data-mymmo-stap-naam=\"huidig-beheer\" data-mymmo-stap-velden=\"waarom_syndicoach\" data-mymmo-stap-nav=\"plugin\" hidden><h3 class=\"mymmo-stap-titel mymmo-stap-titel--met-tekst\" data-mymmo-kop=\"titel\">Waarom zijn jullie op zoek naar een syndicus?<\/h3>\n<p class=\"mymmo-stap-tekst\" data-mymmo-kop=\"sub\">Duid aan wat meespeelt. Zo weten we meteen waar we jullie kunnen ondersteunen.<\/p>\n<div class=\"mymmo-stap-inhoud\" data-mymmo-stap-inhoud>\n<!--\n  STAP - \"Waarom overweeg je Syndicoach?\"\n\n  MEERKEUZE in vakjes, met een tekening per reden. Levert EEN waarde af:\n\n      waarom_syndicoach   komma-gescheiden, bv. \"te_duur,moeilijk_bereikbaar\"\n\n  Zet in de Operations Manager een VERBORGEN VELD met die sleutel op het\n  formulier. Deze stap verwacht minstens een keuze: zet `waarom_syndicoach` bij\n  de stap in wp-admin in \"Levert deze sleutels\", dan blijft \"Volgende\" uit tot er\n  iets aangeduid staat. Laat je dat veld leeg, dan mag de bezoeker doorklikken\n  zonder iets te kiezen.\n\n  LET OP - DIT IS EEN LIJST, GEEN ENKELE WAARDE\n  ---------------------------------------------\n  De vorige versie van stap 3 (huidig-beheer) leverde exact EEN waarde af. Deze\n  levert er nul tot tien, gescheiden door een komma. In de koppeling hoort dat\n  veld dus NIET op een selectieveld van Odoo te staan dat maar een waarde aankan:\n  gebruik een tekstveld, of splits het in de veldkoppelingen naar meerdere\n  vinkjes. Zonder die aanpassing komt er bij twee redenen stil niets of een\n  onbekende waarde in Odoo terecht.\n\n  DE LIJST AANVULLEN\n  ------------------\n  Een vakje is gewoon een knop in de HTML hieronder. Een regel kopieren en drie\n  dingen aanpassen: `data-waarde`, de `src` van de tekening en het label.\n  `data-waarde` belandt in Odoo en ligt VAST zodra er inzendingen zijn. Het label\n  mag altijd wijzigen -- ook rechtstreeks in het voorbeeld van de bouwer, want\n  het is echte tekst in de HTML.\n\n  WAAROM ER HIER GEEN ENKELE SVG EN GEEN ENKEL LEEG ELEMENT STAAT (1.15.14)\n  ------------------------------------------------------------------------\n  Op syndicoach.be kwam een eerdere stap verminkt aan: na elke inline SVG met een\n  use-element ontbrak de sluit-tag van de omliggende span, en elk leeg element\n  verdween. Daarom: geen inline SVG, en wat getekend moet worden (het vinkje)\n  hangt als ::before \/ ::after aan een element dat zelf tekst heeft. De\n  tekeningen komen als img binnen, met de gangbare vlaggen om lazyload-plugins\n  over te slaan.\n\n  Geen eigen kop, geen eigen kaartje rond de stap, geen opvulling aan de\n  zijkanten, geen eigen lettertype, geen eigen Vorige\/Volgende: dat levert de\n  plugin allemaal zelf.\n-->\n\n<style>\n\/* Alles genest onder .mf-waarom. Geen id's: dezelfde stap mag twee keer op een\n   pagina staan (in de tekst en in een pop-up). *\/\n.mf-waarom {\n  --w-accent: var(--mf-accent, #99f6e4);\n  --w-ink: var(--mf-text, #12384f);\n  --w-muted: var(--mf-muted, #6b7280);\n  --w-lijn: var(--mf-border, #d7dbe2);\n  --w-vlak: var(--mf-field-bg, #ffffff);\n  \/* De leesbare merkkleur op wit (bij Syndicoach #0369a1), gezet door de plugin. *\/\n  --w-inkt: var(--mf-accent-ink, var(--mf-text, #0369a1));\n\n  \/* GEEN font-family en GEEN padding: allebei van de plugin. *\/\n  color: var(--w-ink);\n  line-height: 1.45;\n  display: flex;\n  flex-direction: column;\n  flex: 1 0 auto;\n}\n.mf-waarom *, .mf-waarom *::before, .mf-waarom *::after { box-sizing: border-box; }\n\n\/* De vakjes staan verticaal gecentreerd in de vrije ruimte tussen de uitleg en\n   de knoppenrij. Valt er niets te verdelen -- en met tien vakjes is dat op een\n   telefoon het geval -- dan worden allebei de marges 0 en scrolt het paneel. *\/\n.mf-waarom .mf-keuzes {\n  margin-block: auto;\n  display: grid;\n  grid-template-columns: 1fr;\n  gap: 10px;\n  padding: 14px 0 6px;\n}\n\/* TWEE KOLOMMEN. Bewust op 560px en niet op 640px: in het venster is de\n   inhoudskolom smaller dan het scherm, en met tien vakjes onder elkaar sta je\n   anders onnodig te scrollen. `grid-auto-rows: 1fr` houdt de twee vakjes van een\n   rij even hoog, ook als het ene label omslaat en het andere niet. *\/\n@media (min-width: 560px) {\n  .mf-waarom .mf-keuzes { grid-template-columns: 1fr 1fr; grid-auto-rows: 1fr; gap: 12px; }\n}\n\n\/* Twee klassen op elke regel die een button raakt: een blokthema zet zijn eigen\n   knopstijl inline in de head en wint anders. Alles wat een thema op een knop\n   zet, noemen we hier zelf (display, richting, hoogte, opvulling, rand, schaduw,\n   tekstopmaak). *\/\n.mf-waarom .mf-keuze {\n  position: relative;\n  display: flex;\n  flex-direction: row;\n  align-items: center;\n  justify-content: flex-start;\n  gap: 12px;\n  width: 100%;\n  height: auto;\n  min-height: 0;\n  margin: 0;\n  \/* Rechts ruimte voor het vinkje, dat op de knop zelf getekend wordt. *\/\n  padding: 8px 42px 8px 10px;\n  font: inherit;\n  font-size: .95rem;\n  font-weight: 400;\n  line-height: 1.3;\n  letter-spacing: normal;\n  text-transform: none;\n  text-align: left;\n  white-space: normal;\n  color: var(--w-ink);\n  background: var(--w-vlak);\n  border: 1.5px solid var(--w-lijn);\n  box-shadow: none;\n  \/* Licht onregelmatige hoeken: net genoeg om niet als een tabel te lezen. *\/\n  border-radius: 18px 22px 20px 24px;\n  cursor: pointer;\n  transition: border-color .18s ease, background-color .18s ease, box-shadow .18s ease, translate .22s cubic-bezier(.34,1.56,.64,1);\n}\n.mf-waarom .mf-keuze:nth-child(4n+2) { border-radius: 22px 18px 24px 20px; }\n.mf-waarom .mf-keuze:nth-child(4n+3) { border-radius: 20px 24px 18px 22px; }\n.mf-waarom .mf-keuze:nth-child(4n)   { border-radius: 24px 20px 22px 18px; }\n\n\/* De tekening in een organische kei, zoals in de stap ervoor. Vier vormen die om\n   de beurt terugkomen, zodat geen twee buren identiek zijn. *\/\n.mf-waarom .mf-ic {\n  flex: 0 0 auto;\n  position: relative;\n  width: 76px;\n  height: 76px;\n  display: grid;\n  place-items: center;\n  background: color-mix(in srgb, var(--w-accent) 16%, var(--w-vlak));\n  border: 1.5px solid transparent;\n  border-radius: 63% 37% 52% 48% \/ 42% 57% 43% 58%;\n  rotate: -3deg;\n  transition: background-color .22s ease, border-color .22s ease, scale .32s cubic-bezier(.34,1.56,.64,1);\n}\n.mf-waarom .mf-keuze:nth-child(4n+2) .mf-ic { border-radius: 38% 62% 67% 33% \/ 58% 36% 64% 42%; rotate: 2.5deg; }\n.mf-waarom .mf-keuze:nth-child(4n+3) .mf-ic { border-radius: 56% 44% 31% 69% \/ 37% 64% 36% 63%; rotate: -1.5deg; }\n.mf-waarom .mf-keuze:nth-child(4n)   .mf-ic { border-radius: 33% 67% 59% 41% \/ 64% 39% 61% 36%; rotate: 3deg; }\n\n.mf-waarom .mf-ic img {\n  display: block;\n  width: 62px;\n  height: 62px;\n  object-fit: contain;\n  pointer-events: none;\n}\n\n\/* Laadt een tekening niet, dan blijft de kei gewoon leeg staan -- nooit een\n   kapot-plaatje-icoontje naast het label. *\/\n.mf-waarom .mf-keuze--zonder-beeld .mf-ic img { display: none; }\n\n.mf-waarom .mf-keuze-titel {\n  display: block;\n  font-weight: 500;\n  color: var(--w-ink);\n  text-wrap: pretty;\n}\n\n\/* Het vinkje rechts: een organisch bolletje met een haakje erin, allebei met CSS\n   getekend op de knop zelf. *\/\n.mf-waarom .mf-keuze::before {\n  content: \"\";\n  position: absolute;\n  right: 12px;\n  top: 50%;\n  width: 22px;\n  height: 22px;\n  margin-top: -11px;\n  background: var(--w-vlak);\n  border: 1.5px solid color-mix(in srgb, var(--w-lijn) 70%, var(--w-muted));\n  border-radius: 56% 44% 48% 52% \/ 47% 52% 48% 53%;\n  transition: background-color .18s ease, border-color .18s ease, scale .28s cubic-bezier(.34,1.56,.64,1);\n}\n.mf-waarom .mf-keuze::after {\n  content: \"\";\n  position: absolute;\n  right: 20px;\n  top: 50%;\n  width: 6px;\n  height: 11px;\n  margin-top: -7px;\n  border: solid #ffffff;\n  border-width: 0 2px 2px 0;\n  rotate: 45deg;\n  opacity: 0;\n  scale: .4;\n  transition: opacity .16s ease, scale .26s cubic-bezier(.34,1.56,.64,1);\n}\n\n.mf-waarom .mf-keuze:hover {\n  border-color: color-mix(in srgb, var(--w-accent) 75%, var(--w-lijn));\n  box-shadow: 0 6px 18px -10px color-mix(in srgb, var(--w-inkt) 45%, transparent);\n  translate: 0 -2px;\n}\n.mf-waarom .mf-keuze:hover::before { border-color: var(--w-inkt); scale: 1.08; }\n.mf-waarom .mf-keuze:hover .mf-ic { scale: 1.06; }\n.mf-waarom .mf-keuze:focus-visible {\n  outline: 2px solid var(--w-inkt);\n  outline-offset: 2px;\n}\n\n\/* Gekozen: zachte mint, rand en vinkje in de leesbare merkkleur. Geen vol mint\n   vlak -- de tekeningen zijn zelf in mint en donkerblauw getekend, en op een vol\n   mint vlak verdwijnt de helft van de tekening. *\/\n.mf-waarom .mf-keuze[aria-checked=\"true\"] {\n  background: color-mix(in srgb, var(--w-accent) 22%, var(--w-vlak));\n  border-color: var(--w-inkt);\n  box-shadow: 0 0 0 1px var(--w-inkt);\n}\n.mf-waarom .mf-keuze[aria-checked=\"true\"] .mf-keuze-titel {\n  font-weight: 600;\n  color: var(--w-inkt);\n}\n.mf-waarom .mf-keuze[aria-checked=\"true\"] .mf-ic {\n  background: var(--w-vlak);\n  border-color: color-mix(in srgb, var(--w-inkt) 35%, transparent);\n}\n.mf-waarom .mf-keuze[aria-checked=\"true\"]::before {\n  background: var(--w-inkt);\n  border-color: var(--w-inkt);\n  scale: 1;\n}\n.mf-waarom .mf-keuze[aria-checked=\"true\"]::after { opacity: 1; scale: 1; }\n\n.mf-waarom .mf-keuze.mf-plop { animation: mw-plop .42s cubic-bezier(.31,1.7,.6,1); }\n@keyframes mw-plop {\n  0%   { scale: 1; }\n  35%  { scale: .985; }\n  70%  { scale: 1.015; }\n  100% { scale: 1; }\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .mf-waarom .mf-keuze,\n  .mf-waarom .mf-keuze::before,\n  .mf-waarom .mf-keuze::after,\n  .mf-waarom .mf-ic { transition: none; }\n  .mf-waarom .mf-keuze.mf-plop { animation: none; }\n  .mf-waarom .mf-keuze:hover { translate: none; }\n}\n\n@media (max-width: 420px) {\n  .mf-waarom .mf-keuzes { gap: 8px; }\n  .mf-waarom .mf-keuze { padding: 8px 38px 8px 8px; gap: 10px; font-size: .9rem; }\n  .mf-waarom .mf-ic { width: 56px; height: 56px; }\n  .mf-waarom .mf-ic img { width: 44px; height: 44px; }\n  .mf-waarom .mf-keuze::before { right: 10px; }\n  .mf-waarom .mf-keuze::after { right: 18px; }\n}\n<\/style>\n\n<div class=\"mf-waarom\" data-sleutel=\"waarom_syndicoach\">\n  <div class=\"mf-keuzes\" data-rol=\"keuzes\" role=\"group\" aria-label=\"Waarom je Syndicoach overweegt\">\n\n    <button type=\"button\" class=\"mf-keuze\" role=\"checkbox\" aria-checked=\"false\" data-waarde=\"te_duur\">\n      <span class=\"mf-ic\"><img class=\"skip-lazy no-lazyload\" data-no-lazy=\"1\" data-skip-lazy=\"1\" src=\"https:\/\/link.openvme.be\/assets\/brand\/thingies\/thingies_spaarvarken.svg\" alt=\"\" width=\"400\" height=\"400\" loading=\"eager\" decoding=\"async\"><\/span>\n      <span class=\"mf-keuze-titel\">Het huidige beheer is te duur<\/span>\n    <\/button>\n\n    <button type=\"button\" class=\"mf-keuze\" role=\"checkbox\" aria-checked=\"false\" data-waarde=\"teveel_fouten\">\n      <span class=\"mf-ic\"><img class=\"skip-lazy no-lazyload\" data-no-lazy=\"1\" data-skip-lazy=\"1\" src=\"https:\/\/link.openvme.be\/assets\/brand\/thingies\/thingies_kapotte-lamp.svg\" alt=\"\" width=\"400\" height=\"400\" loading=\"eager\" decoding=\"async\"><\/span>\n      <span class=\"mf-keuze-titel\">De huidige syndicus maakt te veel fouten<\/span>\n    <\/button>\n\n    <button type=\"button\" class=\"mf-keuze\" role=\"checkbox\" aria-checked=\"false\" data-waarde=\"moeilijk_bereikbaar\">\n      <span class=\"mf-ic\"><img class=\"skip-lazy no-lazyload\" data-no-lazy=\"1\" data-skip-lazy=\"1\" src=\"https:\/\/link.openvme.be\/assets\/brand\/thingies\/thingies_telefoon.svg\" alt=\"\" width=\"400\" height=\"400\" loading=\"eager\" decoding=\"async\"><\/span>\n      <span class=\"mf-keuze-titel\">De huidige syndicus is moeilijk bereikbaar<\/span>\n    <\/button>\n\n    <button type=\"button\" class=\"mf-keuze\" role=\"checkbox\" aria-checked=\"false\" data-waarde=\"geen_beheer\">\n      <span class=\"mf-ic\"><img class=\"skip-lazy no-lazyload\" data-no-lazy=\"1\" data-skip-lazy=\"1\" src=\"https:\/\/link.openvme.be\/assets\/brand\/thingies\/thingies_openstaande-vraag.svg\" alt=\"\" width=\"400\" height=\"400\" loading=\"eager\" decoding=\"async\"><\/span>\n      <span class=\"mf-keuze-titel\">Er is momenteel nog geen beheer<\/span>\n    <\/button>\n\n    <button type=\"button\" class=\"mf-keuze\" role=\"checkbox\" aria-checked=\"false\" data-waarde=\"gebrek_transparantie\">\n      <span class=\"mf-ic\"><img class=\"skip-lazy no-lazyload\" data-no-lazy=\"1\" data-skip-lazy=\"1\" src=\"https:\/\/link.openvme.be\/assets\/brand\/thingies\/thingies_vergrootglas.svg\" alt=\"\" width=\"400\" height=\"400\" loading=\"eager\" decoding=\"async\"><\/span>\n      <span class=\"mf-keuze-titel\">Er is gebrek aan transparantie<\/span>\n    <\/button>\n\n    <button type=\"button\" class=\"mf-keuze\" role=\"checkbox\" aria-checked=\"false\" data-waarde=\"niet_meer_zelf\">\n      <span class=\"mf-ic\"><img class=\"skip-lazy no-lazyload\" data-no-lazy=\"1\" data-skip-lazy=\"1\" src=\"https:\/\/link.openvme.be\/assets\/brand\/thingies\/thingies_kruis.svg\" alt=\"\" width=\"400\" height=\"400\" loading=\"eager\" decoding=\"async\"><\/span>\n      <span class=\"mf-keuze-titel\">We willen het niet meer zelf doen<\/span>\n    <\/button>\n\n    <button type=\"button\" class=\"mf-keuze\" role=\"checkbox\" aria-checked=\"false\" data-waarde=\"extra_ondersteuning\">\n      <span class=\"mf-ic\"><img class=\"skip-lazy no-lazyload\" data-no-lazy=\"1\" data-skip-lazy=\"1\" src=\"https:\/\/link.openvme.be\/assets\/brand\/thingies\/thingies_aktentas.svg\" alt=\"\" width=\"400\" height=\"400\" loading=\"eager\" decoding=\"async\"><\/span>\n      <span class=\"mf-keuze-titel\">We zoeken extra ondersteuning<\/span>\n    <\/button>\n\n    <button type=\"button\" class=\"mf-keuze\" role=\"checkbox\" aria-checked=\"false\" data-waarde=\"renovatieproject\">\n      <span class=\"mf-ic\"><img class=\"skip-lazy no-lazyload\" data-no-lazy=\"1\" data-skip-lazy=\"1\" src=\"https:\/\/link.openvme.be\/assets\/brand\/thingies\/thingies_bakstenen.svg\" alt=\"\" width=\"400\" height=\"400\" loading=\"eager\" decoding=\"async\"><\/span>\n      <span class=\"mf-keuze-titel\">We willen een renovatieproject opstarten<\/span>\n    <\/button>\n\n    <button type=\"button\" class=\"mf-keuze\" role=\"checkbox\" aria-checked=\"false\" data-waarde=\"moeilijke_sfeer\">\n      <span class=\"mf-ic\"><img class=\"skip-lazy no-lazyload\" data-no-lazy=\"1\" data-skip-lazy=\"1\" src=\"https:\/\/link.openvme.be\/assets\/brand\/thingies\/thingies_sfeer.svg\" alt=\"\" width=\"400\" height=\"400\" loading=\"eager\" decoding=\"async\"><\/span>\n      <span class=\"mf-keuze-titel\">Er is een moeilijke onderlinge sfeer<\/span>\n    <\/button>\n\n    <button type=\"button\" class=\"mf-keuze\" role=\"checkbox\" aria-checked=\"false\" data-waarde=\"administratieve_achterstand\">\n      <span class=\"mf-ic\"><img class=\"skip-lazy no-lazyload\" data-no-lazy=\"1\" data-skip-lazy=\"1\" src=\"https:\/\/link.openvme.be\/assets\/brand\/thingies\/thingies_brieven.svg\" alt=\"\" width=\"400\" height=\"400\" loading=\"eager\" decoding=\"async\"><\/span>\n      <span class=\"mf-keuze-titel\">Er is administratieve achterstand<\/span>\n    <\/button>\n\n  <\/div>\n<\/div>\n\n<script>\nMymmoStappen.stap(document.currentScript, function (api) {\n  \/* LEES DIT VOOR JE DIT SCRIPT AANPAST.\n     Op syndicoach.be wordt de HTML van een stap opnieuw uitgeschreven voor ze de\n     browser bereikt. Daarbij werd een en-teken een HTML-entiteit, een letter met\n     een accent een hex-entiteit, en verdween elke sluit-tag uit een string.\n     Daarom bevat dit script uitsluitend ASCII en geen enkel en-teken, kleiner-\n     of groter-dan-teken of sluit-tag. Schrijf dus geen dubbele en-tekens in een\n     voorwaarde maar twee geneste ifs, en geen lussen met een vergelijking maar\n     forEach en filter. *\/\n\n  var wortel = api.el.querySelector('.mf-waarom');\n  if (!wortel) return;\n\n  var SLEUTEL = wortel.getAttribute('data-sleutel') || 'waarom_syndicoach';\n  var lijst = wortel.querySelector('[data-rol=\"keuzes\"]');\n  if (!lijst) return;\n\n  function alle(nodes) {\n    return Array.prototype.slice.call(nodes);\n  }\n\n  var knoppen = alle(lijst.querySelectorAll('.mf-keuze'));\n  var gekozen = [];\n\n  function schrijf() {\n    \/* De volgorde van de HTML, niet die van het aanklikken: zo levert dezelfde\n       selectie altijd dezelfde string op en zijn twee inzendingen vergelijkbaar. *\/\n    var waarden = knoppen.filter(function (knop) {\n      return gekozen.indexOf(knop.getAttribute('data-waarde')) !== -1;\n    }).map(function (knop) {\n      return knop.getAttribute('data-waarde');\n    });\n    api.zet(SLEUTEL, waarden.join(','));\n  }\n\n  function plop(knop) {\n    knop.classList.remove('mf-plop');\n    void knop.offsetWidth;\n    knop.classList.add('mf-plop');\n  }\n\n  function zet(knop, aan, metPlop) {\n    var waarde = knop.getAttribute('data-waarde');\n    knop.setAttribute('aria-checked', aan ? 'true' : 'false');\n    gekozen = gekozen.filter(function (w) { return w !== waarde; });\n    if (aan) {\n      gekozen.push(waarde);\n      if (metPlop) plop(knop);\n    }\n  }\n\n  lijst.addEventListener('click', function (e) {\n    var knop = e.target.closest ? e.target.closest('.mf-keuze') : null;\n    if (!knop) return;\n    if (!lijst.contains(knop)) return;\n    zet(knop, knop.getAttribute('aria-checked') !== 'true', true);\n    schrijf();\n  });\n\n  \/* Pijltjes lopen door de lijst. Anders dan bij keuzerondjes verandert dat de\n     keuze NIET -- bij een meerkeuze duid je aan met spatie of Enter, en dat doet\n     de browser zelf op een knop. *\/\n  lijst.addEventListener('keydown', function (e) {\n    var richting = { ArrowDown: 1, ArrowRight: 1, ArrowUp: -1, ArrowLeft: -1 }[e.key];\n    if (!richting) return;\n    var nu = knoppen.indexOf(document.activeElement);\n    if (nu === -1) return;\n    e.preventDefault();\n    knoppen[(nu + richting + knoppen.length) % knoppen.length].focus();\n  });\n\n  \/* Een tekening die niet laadt: de kei blijft leeg, het label blijft staan. *\/\n  alle(lijst.querySelectorAll('.mf-ic img')).forEach(function (img) {\n    function mislukt() {\n      var knop = img.closest('.mf-keuze');\n      if (knop) knop.classList.add('mf-keuze--zonder-beeld');\n    }\n    if (img.complete) {\n      if (img.naturalWidth === 0) mislukt();\n      return;\n    }\n    img.addEventListener('error', mislukt);\n  });\n\n  \/* Beginstand: terug van een mislukte inzending of van het formulier. Een waarde\n     die hier niet meer bestaat (een oude naam) wordt stil overgeslagen -- ze zou\n     anders als onbekende keuze mee naar Odoo gaan. *\/\n  String(api.lees(SLEUTEL) || '').split(',')\n    .map(function (s) { return s.trim(); })\n    .filter(Boolean)\n    .forEach(function (waarde) {\n      knoppen.filter(function (knop) {\n        return knop.getAttribute('data-waarde') === waarde;\n      }).forEach(function (knop) {\n        zet(knop, true, false);\n      });\n    });\n  schrijf();\n\n  api.bij('tonen', function () {\n    knoppen.filter(function (knop) {\n      return knop.getAttribute('aria-checked') === 'true';\n    }).forEach(plop);\n  });\n});\n<\/script>\n<\/div>\n<div class=\"mymmo-stap-nav\">\n<button type=\"button\" class=\"mymmo-stap-knop mymmo-stap-knop--terug\" data-mymmo-vorige>Vorige<\/button><button type=\"button\" class=\"mymmo-stap-knop mymmo-stap-knop--verder\" data-mymmo-volgende>Volgende<\/button>\n<\/div><\/section>                                <section class=\"mymmo-stap mymmo-stap--html\" data-mymmo-stap=\"3\" data-mymmo-stap-naam=\"avperiode\" data-mymmo-stap-velden=\"volgende_av_periode\" data-mymmo-stap-nav=\"plugin\" hidden><h3 class=\"mymmo-stap-titel mymmo-stap-titel--met-tekst\" data-mymmo-kop=\"titel\">Wanneer valt de Algemene Vergadering doorgaans?<\/h3>\n<p class=\"mymmo-stap-tekst\" data-mymmo-kop=\"sub\">Een schatting volstaat. Schuif de lijn tot het kader ongeveer goed staat.<\/p>\n<div class=\"mymmo-stap-inhoud\" data-mymmo-stap-inhoud>\n<!--\n  STAP - \"Wanneer is jullie volgende algemene vergadering?\"\n\n  Een KADER met een breed foutenvenster: de bezoeker schuift een maandlijn onder\n  een vast kader door (de merktekening `thingies\/frame.svg`). Bovenaan staan twee\n  kalenderblaadjes (van - tot), de merktekeningen thingies_calendar1.svg en\n  thingies_calendar2.svg: het getal bovenaan, de maand in het mintvlak. Altijd\n  even groot; alleen het getal doet een kleine plop als het verspringt.\n\n  De lijn is JAARLOOS en loopt rond: een algemene vergadering valt elk jaar rond\n  dezelfde tijd, dus je kan net zo goed terug naar augustus als vooruit naar\n  januari. Er staat nergens een jaartal.\n\n  Er zijn maar zes ankerdagen per maand: 5, 10, 15, 20, 25 en 30 (in februari de\n  laatste dag in plaats van 30). Een venster loopt van een anker tot drie ankers\n  verder, dus altijd ongeveer twee weken, en de lijn springt per anker:\n\n      tussen 5 en 20 oktober        tussen 20 oktober en 5 november\n      tussen 10 en 25 oktober       tussen 25 oktober en 10 november\n      tussen 15 en 30 oktober       tussen 30 oktober en 15 november\n\n  Op de blaadjes staat altijd maand + dag. In `volgende_av_periode` staat de\n  maand een keer als het venster in een maand blijft, anders beide.\n\n  Levert VIER waarden af:\n\n      volgende_av_periode   \"tussen 5 en 20 oktober\" | \"tussen 20 oktober en 5 november\" | \"onbekend\"\n                          (zonder jaartal: het is een moment dat elk jaar terugkeert)\n      volgende_av_van       begin van het venster, eerstvolgende keer, JJJJ-MM-DD\n      volgende_av_tot       einde van het venster, JJJJ-MM-DD\n      volgende_av_datum     het midden van het venster, JJJJ-MM-DD\n\n  Zet ze als VERBORGEN VELDEN op het formulier. Zet `volgende_av_periode` bij de\n  stap in \"Levert deze sleutels\": dan blijft \"Volgende\" uit tot er een periode of\n  \"Nog geen idee\" gekozen is. Bij \"Nog geen idee\" zijn de drie datums leeg.\n\n  Bediening: swipen op een telefoon (gewoon horizontaal scrollen), slepen of het\n  muiswieltje op een computer, pijltjes (een anker) en Page Up\/Down (een maand),\n  of tikken op de lijn. Na het loslaten klikt de lijn vast op het dichtste\n  venster; zolang er een vinger op ligt niet.\n\n  De lijn opent ongeveer zes weken vooruit, maar dat telt NIET als antwoord: pas\n  als de bezoeker de lijn beroert, staat er een waarde.\n\n  Regels, zie claude.md: het script bevat uitsluitend ASCII en geen en-teken,\n  kleiner- of groter-dan of sluit-tag (vergelijken met Math.min\/Math.max, lussen\n  met !==); geen inline SVG; geen leeg element in de markup. De maandnamen maakt\n  het script zelf in de browser.\n-->\n\n<style>\n.mf-av {\n  --av-accent: var(--mf-accent, #99f6e4);\n  --av-muted: var(--mf-muted, #6b7280);\n  \/* De leesbare merkkleur (bij Syndicoach #0369a1), dezelfde als in het kader. *\/\n  --av-inkt: var(--mf-accent-ink, #0369a1);\n  --av-dag: 10px;\n\n  \/* GEEN font-family en GEEN padding op de stap: allebei van de plugin. *\/\n  color: var(--av-inkt);\n  display: flex;\n  flex-direction: column;\n  flex: 1 0 auto;\n}\n.mf-av *, .mf-av *::before, .mf-av *::after { box-sizing: border-box; }\n\n.mf-av .mf-av-midden {\n  margin-block: auto;\n  padding: 12px 0 4px;\n}\n\n\/* De kop: \"MEESTAL TUSSEN\" klein erboven, daaronder twee SCHEURKALENDERBLAADJES\n   (van - tot). Ze hebben een vaste maat, wat er ook op staat: de kop en de lijn\n   eronder verspringen dus nooit, en alles staat rond een vast middelpunt. Bewust\n   GEEN animatie bij het wisselen. *\/\n.mf-av .mf-av-kop {\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  text-align: center;\n  line-height: 1;\n  color: var(--av-inkt);\n}\n.mf-av .mf-av-aanloop {\n  font-size: .78rem;\n  font-weight: 600;\n  letter-spacing: .16em;\n  text-transform: uppercase;\n  opacity: .7;\n  margin-bottom: 16px;\n}\n.mf-av .mf-av-blaadjes {\n  display: flex;\n  flex-direction: row;\n  align-items: center;\n  justify-content: center;\n  gap: 14px;\n}\n.mf-av .mf-av-blad {\n  \/* De merktekeningen thingies_calendar1.svg en thingies_calendar2.svg, beide\n     262,76 x 310,34. Het getal staat in het witte vak bovenaan, de maand in\n     het mintvlak. De vakken zijn opgemeten in procent van de tekening.\n     De blaadjes zijn op 21-09-2026 hertekend: het mintvlak is naar beneden\n     geschoven en dunner geworden, dus getal en maand zijn mee verplaatst.\n     Meet die vlakken opnieuw uit de mintpolygoon zodra er weer getekend\n     wordt -- het is de enige plek in de SVG waar ze exact in staan. *\/\n  position: relative;\n  \/* GEEN vw: een stap mag nooit van de VIEWPORT afhangen. In een callout, of in\n     een pop-up naast een zijkolom, staat ze in een kolom die smaller is dan het\n     scherm -- en dan steken de twee blaadjes samen buiten hun vak, wordt de\n     pagina breder dan de viewport en kan je opzij vegen. Ze delen nu gewoon de\n     rij: 136px als het past, kleiner als het moet. De verhouding en de tekst\n     (cqw) schalen mee.\n     MAAR: de breedte moet een ECHTE width blijven, geen kale flex-basis. Door\n     `container-type: inline-size` hieronder is de max-content-bijdrage van dit\n     blaadje NUL -- de inhoud mag de inline-maat immers niet bepalen. De rij\n     eromboven krijgt haar breedte van haar inhoud (fit-content), werd daardoor\n     zo breed als alleen het woordje \"en\", en de twee blaadjes krompen tot 0x0.\n     Beide blaadjes waren dan letterlijk weg, zonder foutmelding. Een definitieve\n     `width` geeft wel een max-content-bijdrage; `flex-shrink: 1` met\n     `min-width: 0` houdt het krimpen in een smalle kolom overeind. *\/\n  width: 136px;\n  max-width: 100%;\n  flex: 0 1 auto;\n  min-width: 0;\n  aspect-ratio: 262.76 \/ 310.34;\n  \/* Tekst schaalt mee met het blaadje (cqw), zodat \"september\" altijd in het\n     mintvlak past, hoe breed het blaadje ook is. *\/\n  container-type: inline-size;\n}\n.mf-av .mf-av-blad-beeld {\n  position: absolute;\n  inset: 0;\n  width: 100%;\n  max-width: none;\n  height: 100%;\n  margin: 0;\n  -webkit-user-select: none;\n  user-select: none;\n}\n.mf-av .mf-av-blad-dag,\n.mf-av .mf-av-blad-maand {\n  position: absolute;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  white-space: nowrap;\n  color: var(--av-inkt);\n}\n\/* Wit vak: het vak loopt tot aan het hoogste punt van het mint (y 200,16 =\n   64,5%) en begint op 22% in plaats van vlak onder de kaderlijn (12%). Het\n   getal staat gecentreerd in dat vak, dus het zakt daarmee in de ONDERSTE helft\n   van het witte veld -- optisch beter, want de scheurrand en de ringetjes\n   bovenaan vragen zelf al aandacht.\n   Dat vak is door de hertekening een derde hoger geworden, dus het getal mag\n   mee groter: 40cqw is 105px op een tekening van 262 breed, twee cijfers\n   samen ongeveer 118px in een vak van 194px. *\/\n.mf-av .mf-av-blad-dag {\n  top: 22%;\n  height: 42.5%;\n  left: 15%;\n  right: 11%;\n  font-size: 2.9rem;\n  font-size: 40cqw;\n  font-weight: 600;\n  line-height: 1;\n  letter-spacing: -.03em;\n  font-variant-numeric: tabular-nums;\n}\n.mf-av .mf-av-blad-dag.is-plop { animation: av-plop .34s cubic-bezier(.3,.9,.4,1.4); }\n\/* Eerst een tikje in (anticipatie), dan voorbij de maat, dan terug. *\/\n@keyframes av-plop {\n  0%   { scale: 1; }\n  28%  { scale: .86; }\n  64%  { scale: 1.12; }\n  100% { scale: 1; }\n}\n@media (prefers-reduced-motion: reduce) {\n  .mf-av .mf-av-blad-dag.is-plop { animation: none; }\n}\n\/* Mintvlak, opgemeten uit de mintpolygoon van de SVG's (viewBox 262,76 x\n   310,34). Het mint loopt rechts onder de kaderlijn door, dus horizontaal\n   telt het ZICHTBARE deel; die x-maten zijn bij de hertekening niet gewijzigd:\n     blad 1: x 20,7% tot 87%   (mint 54,5-241,4, kaderlijn rechts rond 229)\n     blad 2: x 18% tot 85%     (mint 47,2-234,3, kaderlijn rechts rond 224)\n   Verticaal wel. Allebei de banden lopen SCHUIN (gescheurd papier), dus je\n   neemt de LAAGSTE bovenhoek en de HOOGSTE onderhoek -- anders steekt de tekst\n   aan een kant boven het mint uit:\n     blad 1: boven 205,61 (links) \/ 200,16 (rechts), onder 271,04 vlak\n     blad 2: boven 202,85 (links) \/ 205,47 (rechts), onder 273,73 \/ 270,97\n     veilig: y 66,3% tot 87,3%\n   De maand staat in het midden van dat vak. *\/\n.mf-av .mf-av-blad-maand {\n  top: 66.3%;\n  height: 21%;\n  font-size: .8rem;\n  \/* \"september\" is gemeten 4,9 keer zo breed als de lettergrootte in dit gewicht;\n     11,5cqw maakt het 56% van het blaadje, in een zichtbaar mintvlak van 66%. *\/\n  font-size: 11.5cqw;\n  font-weight: 700;\n  letter-spacing: -.01em;\n}\n.mf-av .mf-av-blad--van .mf-av-blad-maand { left: 20.7%; width: 66.3%; }\n.mf-av .mf-av-blad--tot .mf-av-blad-maand { left: 18%; width: 67%; }\n.mf-av .mf-av-tot {\n  font-size: 1.1rem;\n  opacity: .6;\n}\n\n\/* De blaadjes worden NOOIT gedimd, ook niet zolang er nog niets gekozen is.\n   Hier stond `.mf-av.is-open .mf-av-kop { opacity: .38 }`, met als gedachte\n   \"dit is nog maar een voorstel\". Maar een tekening op 38% leest als\n   uitgeschakeld, niet als voorlopig -- en er valt niets uit te schakelen: de\n   lijn staat er en je mag schuiven. De klasse `is-open` blijft bestaan (de JS\n   zet en haalt ze), ze stuurt alleen geen stijl meer aan. Zet hier geen\n   opacity terug, en ook geen grijstint op de tekening: de blaadjes horen in\n   hun eigen kleuren te staan.\n   \"Nog geen idee\" verbergt de blaadjes wel volledig -- dat is iets anders dan\n   dimmen: er valt op dat moment niets te tonen. *\/\n.mf-av.is-onbekend .mf-av-blaadjes { visibility: hidden; }\n.mf-av .mf-av-hint {\n  display: block;\n  min-height: 1.4em;\n  margin-top: 10px;\n  text-align: center;\n  font-size: .88rem;\n  color: var(--av-muted);\n}\n\n\/* De lijn met het kader erover. *\/\n.mf-av .mf-av-wielvak {\n  position: relative;\n  margin-top: 18px;\n  height: 96px;\n}\n\/* Het kader staat vast in het midden en ligt ACHTER de lijn: de maandnaam die\n   erin valt, staat zo op het mintvlak, zoals in de tekening. De mintvlek in\n   frame.svg loopt van x=52.9 tot x=351.8 van 367.7 breed (81,29%, links 14,39%):\n   het kader wordt zo geschaald dat dat stuk een HALVE MAAND breed is: een maand\n   staat op de lijn als 4,3 weken (30,1 dagen), het kader dus op 15,05 dagen --\n   exact drie ankers, zoals een venster. *\/\n.mf-av .mf-av-kader {\n  position: absolute;\n  top: 8px;\n  left: calc(50% - 7.525 * var(--av-dag) - 15.05 * var(--av-dag) \/ 0.8129 * 0.1439);\n  width: calc(15.05 * var(--av-dag) \/ 0.8129);\n  max-width: none;\n  height: auto;\n  margin: 0;\n  pointer-events: none;\n  -webkit-user-select: none;\n  user-select: none;\n}\n.mf-av.is-onbekend .mf-av-wielvak { opacity: .3; }\n\n.mf-av .mf-av-wiel {\n  position: absolute;\n  inset: 0;\n  overflow-x: auto;\n  overflow-y: hidden;\n  overscroll-behavior-x: contain;\n  scrollbar-width: none;\n  cursor: grab;\n  outline: none;\n  -webkit-user-select: none;\n  user-select: none;\n  -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);\n  mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);\n}\n.mf-av .mf-av-wiel::-webkit-scrollbar { display: none; }\n.mf-av .mf-av-wiel.is-slepen { cursor: grabbing; }\n.mf-av .mf-av-wiel:focus-visible { outline: 2px dashed var(--av-inkt); outline-offset: -2px; }\n\n.mf-av .mf-av-spoor { position: relative; height: 100%; }\n.mf-av .mf-av-baan {\n  position: absolute;\n  top: 0;\n  bottom: 0;\n  color: transparent;\n}\n\/* De lijn: een getekende, rafelige streep als MASKER, zodat ze de merkkleur\n   volgt. Het masker is een naadloze tegel van 420px (alle golven hebben een\n   periode die in 420 past), dus de lijn loopt eindeloos door. Procent-gecodeerd\n   in de CSS: geen inline SVG in de markup, en geen kleiner-\/groter-dan-teken dat\n   onderweg herschreven kan worden. *\/\n.mf-av .mf-av-baan::before {\n  content: \"\";\n  position: absolute;\n  top: 52px;\n  left: -840px;\n  right: -840px;\n  height: 14px;\n  background: var(--av-inkt);\n  -webkit-mask: url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='420' height='14' viewBox='0 0 420 14'%3E%3Cpath d='M0.0 6.3 L5.0 6.0 L10.0 5.8 L15.0 6.3 L20.0 6.7 L25.0 6.4 L30.0 5.8 L35.0 5.9 L40.0 6.4 L45.0 6.7 L50.0 6.7 L55.0 6.8 L60.0 7.2 L65.0 7.1 L70.0 6.3 L75.0 5.3 L80.0 5.0 L85.0 4.9 L90.0 4.4 L95.0 3.5 L100.0 3.3 L105.0 3.9 L110.0 4.6 L115.0 4.8 L120.0 5.1 L125.0 5.8 L130.0 6.3 L135.0 6.1 L140.0 5.6 L145.0 5.7 L150.0 6.2 L155.0 6.3 L160.0 5.9 L165.0 5.8 L170.0 6.4 L175.0 7.0 L180.0 7.0 L185.0 6.7 L190.0 6.7 L195.0 6.7 L200.0 6.2 L205.0 5.3 L210.0 5.0 L215.0 5.3 L220.0 5.5 L225.0 5.0 L230.0 4.6 L235.0 4.9 L240.0 5.5 L245.0 5.4 L250.0 4.9 L255.0 4.6 L260.0 4.6 L265.0 4.5 L270.0 4.1 L275.0 4.2 L280.0 5.0 L285.0 6.0 L290.0 6.3 L295.0 6.4 L300.0 6.9 L305.0 7.8 L310.0 8.0 L315.0 7.4 L320.0 6.7 L325.0 6.5 L330.0 6.2 L335.0 5.5 L340.0 5.0 L345.0 5.2 L350.0 5.7 L355.0 5.6 L360.0 5.1 L365.0 5.0 L370.0 5.4 L375.0 5.5 L380.0 4.9 L385.0 4.3 L390.0 4.3 L395.0 4.6 L400.0 4.6 L405.0 4.6 L410.0 5.1 L415.0 6.0 L420.0 6.3 L420.0 9.3 L415.0 8.5 L410.0 7.4 L405.0 6.8 L400.0 6.9 L395.0 6.9 L390.0 6.4 L385.0 6.3 L380.0 6.9 L375.0 7.8 L370.0 8.2 L365.0 8.3 L360.0 8.5 L355.0 8.9 L350.0 8.8 L345.0 8.3 L340.0 8.2 L335.0 8.7 L330.0 9.2 L325.0 9.1 L320.0 8.8 L315.0 9.2 L310.0 9.8 L305.0 9.9 L300.0 9.4 L295.0 8.9 L290.0 8.8 L285.0 8.5 L280.0 7.8 L275.0 7.4 L270.0 7.8 L265.0 8.2 L260.0 8.0 L255.0 7.5 L250.0 7.5 L245.0 8.0 L240.0 8.0 L235.0 7.4 L230.0 6.9 L225.0 7.0 L220.0 7.2 L215.0 7.2 L210.0 7.4 L205.0 8.2 L200.0 9.3 L195.0 9.9 L190.0 9.8 L185.0 9.8 L180.0 10.3 L175.0 10.4 L170.0 9.8 L165.0 8.9 L160.0 8.5 L155.0 8.4 L150.0 8.2 L145.0 7.8 L140.0 7.9 L135.0 8.4 L130.0 8.5 L125.0 8.0 L120.0 7.5 L115.0 7.6 L110.0 7.9 L105.0 7.5 L100.0 6.9 L95.0 6.8 L90.0 7.3 L85.0 7.8 L80.0 7.9 L75.0 8.2 L70.0 8.9 L65.0 9.3 L60.0 8.9 L55.0 8.5 L50.0 8.7 L45.0 9.2 L40.0 9.2 L35.0 8.7 L30.0 8.7 L25.0 9.3 L20.0 9.8 L15.0 9.7 L10.0 9.5 L5.0 9.5 L0.0 9.3Z'\/%3E%3Cpath fill-opacity='0.55' d='M0.0 9.1 L5.0 8.6 L10.0 8.3 L15.0 9.0 L20.0 9.8 L25.0 10.0 L30.0 9.5 L35.0 9.3 L40.0 9.1 L45.0 8.7 L50.0 8.3 L55.0 8.6 L60.0 9.6 L65.0 10.3 L70.0 9.8 L75.0 8.7 L80.0 7.8 L85.0 7.2 L90.0 6.7 L95.0 6.3 L100.0 6.7 L105.0 7.6 L110.0 8.2 L115.0 7.9 L120.0 7.6 L125.0 7.9 L130.0 8.5 L135.0 8.7 L140.0 8.5 L145.0 8.5 L150.0 8.8 L155.0 8.7 L160.0 8.3 L165.0 8.4 L170.0 9.5 L175.0 10.5 L180.0 10.6 L185.0 10.1 L190.0 9.6 L195.0 9.2 L200.0 8.5 L205.0 7.8 L210.0 7.8 L215.0 8.3 L220.0 8.6 L225.0 7.9 L230.0 7.1 L235.0 6.9 L240.0 7.4 L245.0 7.6 L250.0 7.8 L255.0 8.2 L260.0 8.6 L265.0 8.3 L270.0 7.3 L275.0 6.6 L280.0 7.1 L285.0 8.2 L290.0 9.1 L295.0 9.7 L300.0 10.2 L305.0 10.6 L310.0 10.2 L315.0 9.3 L320.0 8.7 L325.0 9.0 L330.0 9.3 L335.0 9.0 L340.0 8.4 L345.0 8.2 L350.0 8.4 L355.0 8.4 L360.0 8.1 L365.0 8.2 L370.0 8.6 L375.0 8.5 L380.0 7.4 L385.0 6.4 L390.0 6.3 L395.0 6.8 L400.0 7.3 L405.0 7.7 L410.0 8.4 L415.0 9.1 L420.0 9.1 L420.0 10.5 L415.0 10.1 L410.0 9.1 L405.0 8.2 L400.0 7.7 L395.0 7.4 L390.0 7.1 L385.0 7.5 L380.0 8.8 L375.0 9.8 L370.0 9.8 L365.0 9.1 L360.0 8.7 L355.0 8.8 L350.0 8.9 L345.0 9.0 L340.0 9.5 L335.0 10.3 L330.0 10.7 L325.0 10.2 L320.0 9.7 L315.0 9.9 L310.0 10.7 L305.0 11.1 L300.0 10.9 L295.0 10.6 L290.0 10.4 L285.0 9.6 L280.0 8.4 L275.0 7.7 L270.0 8.0 L265.0 8.8 L260.0 9.0 L255.0 8.7 L250.0 8.6 L245.0 8.8 L240.0 8.7 L235.0 8.3 L230.0 8.2 L225.0 8.8 L220.0 9.1 L215.0 8.7 L210.0 8.2 L205.0 8.6 L200.0 9.6 L195.0 10.5 L190.0 11.0 L185.0 11.3 L180.0 11.6 L175.0 11.2 L170.0 9.9 L165.0 8.9 L160.0 8.9 L155.0 9.6 L150.0 10.0 L145.0 9.9 L140.0 9.8 L135.0 9.7 L130.0 9.2 L125.0 8.4 L120.0 8.0 L115.0 8.5 L110.0 9.0 L105.0 8.8 L100.0 8.0 L95.0 7.6 L90.0 7.8 L85.0 8.1 L80.0 8.3 L75.0 9.1 L70.0 10.3 L65.0 11.0 L60.0 10.7 L55.0 9.9 L50.0 9.7 L45.0 10.0 L40.0 10.1 L35.0 9.9 L30.0 10.0 L25.0 10.4 L20.0 10.5 L15.0 9.9 L10.0 9.6 L5.0 10.0 L0.0 10.5Z'\/%3E%3C\/svg%3E\") repeat-x left center \/ 420px 14px;\n  mask: url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='420' height='14' viewBox='0 0 420 14'%3E%3Cpath d='M0.0 6.3 L5.0 6.0 L10.0 5.8 L15.0 6.3 L20.0 6.7 L25.0 6.4 L30.0 5.8 L35.0 5.9 L40.0 6.4 L45.0 6.7 L50.0 6.7 L55.0 6.8 L60.0 7.2 L65.0 7.1 L70.0 6.3 L75.0 5.3 L80.0 5.0 L85.0 4.9 L90.0 4.4 L95.0 3.5 L100.0 3.3 L105.0 3.9 L110.0 4.6 L115.0 4.8 L120.0 5.1 L125.0 5.8 L130.0 6.3 L135.0 6.1 L140.0 5.6 L145.0 5.7 L150.0 6.2 L155.0 6.3 L160.0 5.9 L165.0 5.8 L170.0 6.4 L175.0 7.0 L180.0 7.0 L185.0 6.7 L190.0 6.7 L195.0 6.7 L200.0 6.2 L205.0 5.3 L210.0 5.0 L215.0 5.3 L220.0 5.5 L225.0 5.0 L230.0 4.6 L235.0 4.9 L240.0 5.5 L245.0 5.4 L250.0 4.9 L255.0 4.6 L260.0 4.6 L265.0 4.5 L270.0 4.1 L275.0 4.2 L280.0 5.0 L285.0 6.0 L290.0 6.3 L295.0 6.4 L300.0 6.9 L305.0 7.8 L310.0 8.0 L315.0 7.4 L320.0 6.7 L325.0 6.5 L330.0 6.2 L335.0 5.5 L340.0 5.0 L345.0 5.2 L350.0 5.7 L355.0 5.6 L360.0 5.1 L365.0 5.0 L370.0 5.4 L375.0 5.5 L380.0 4.9 L385.0 4.3 L390.0 4.3 L395.0 4.6 L400.0 4.6 L405.0 4.6 L410.0 5.1 L415.0 6.0 L420.0 6.3 L420.0 9.3 L415.0 8.5 L410.0 7.4 L405.0 6.8 L400.0 6.9 L395.0 6.9 L390.0 6.4 L385.0 6.3 L380.0 6.9 L375.0 7.8 L370.0 8.2 L365.0 8.3 L360.0 8.5 L355.0 8.9 L350.0 8.8 L345.0 8.3 L340.0 8.2 L335.0 8.7 L330.0 9.2 L325.0 9.1 L320.0 8.8 L315.0 9.2 L310.0 9.8 L305.0 9.9 L300.0 9.4 L295.0 8.9 L290.0 8.8 L285.0 8.5 L280.0 7.8 L275.0 7.4 L270.0 7.8 L265.0 8.2 L260.0 8.0 L255.0 7.5 L250.0 7.5 L245.0 8.0 L240.0 8.0 L235.0 7.4 L230.0 6.9 L225.0 7.0 L220.0 7.2 L215.0 7.2 L210.0 7.4 L205.0 8.2 L200.0 9.3 L195.0 9.9 L190.0 9.8 L185.0 9.8 L180.0 10.3 L175.0 10.4 L170.0 9.8 L165.0 8.9 L160.0 8.5 L155.0 8.4 L150.0 8.2 L145.0 7.8 L140.0 7.9 L135.0 8.4 L130.0 8.5 L125.0 8.0 L120.0 7.5 L115.0 7.6 L110.0 7.9 L105.0 7.5 L100.0 6.9 L95.0 6.8 L90.0 7.3 L85.0 7.8 L80.0 7.9 L75.0 8.2 L70.0 8.9 L65.0 9.3 L60.0 8.9 L55.0 8.5 L50.0 8.7 L45.0 9.2 L40.0 9.2 L35.0 8.7 L30.0 8.7 L25.0 9.3 L20.0 9.8 L15.0 9.7 L10.0 9.5 L5.0 9.5 L0.0 9.3Z'\/%3E%3Cpath fill-opacity='0.55' d='M0.0 9.1 L5.0 8.6 L10.0 8.3 L15.0 9.0 L20.0 9.8 L25.0 10.0 L30.0 9.5 L35.0 9.3 L40.0 9.1 L45.0 8.7 L50.0 8.3 L55.0 8.6 L60.0 9.6 L65.0 10.3 L70.0 9.8 L75.0 8.7 L80.0 7.8 L85.0 7.2 L90.0 6.7 L95.0 6.3 L100.0 6.7 L105.0 7.6 L110.0 8.2 L115.0 7.9 L120.0 7.6 L125.0 7.9 L130.0 8.5 L135.0 8.7 L140.0 8.5 L145.0 8.5 L150.0 8.8 L155.0 8.7 L160.0 8.3 L165.0 8.4 L170.0 9.5 L175.0 10.5 L180.0 10.6 L185.0 10.1 L190.0 9.6 L195.0 9.2 L200.0 8.5 L205.0 7.8 L210.0 7.8 L215.0 8.3 L220.0 8.6 L225.0 7.9 L230.0 7.1 L235.0 6.9 L240.0 7.4 L245.0 7.6 L250.0 7.8 L255.0 8.2 L260.0 8.6 L265.0 8.3 L270.0 7.3 L275.0 6.6 L280.0 7.1 L285.0 8.2 L290.0 9.1 L295.0 9.7 L300.0 10.2 L305.0 10.6 L310.0 10.2 L315.0 9.3 L320.0 8.7 L325.0 9.0 L330.0 9.3 L335.0 9.0 L340.0 8.4 L345.0 8.2 L350.0 8.4 L355.0 8.4 L360.0 8.1 L365.0 8.2 L370.0 8.6 L375.0 8.5 L380.0 7.4 L385.0 6.4 L390.0 6.3 L395.0 6.8 L400.0 7.3 L405.0 7.7 L410.0 8.4 L415.0 9.1 L420.0 9.1 L420.0 10.5 L415.0 10.1 L410.0 9.1 L405.0 8.2 L400.0 7.7 L395.0 7.4 L390.0 7.1 L385.0 7.5 L380.0 8.8 L375.0 9.8 L370.0 9.8 L365.0 9.1 L360.0 8.7 L355.0 8.8 L350.0 8.9 L345.0 9.0 L340.0 9.5 L335.0 10.3 L330.0 10.7 L325.0 10.2 L320.0 9.7 L315.0 9.9 L310.0 10.7 L305.0 11.1 L300.0 10.9 L295.0 10.6 L290.0 10.4 L285.0 9.6 L280.0 8.4 L275.0 7.7 L270.0 8.0 L265.0 8.8 L260.0 9.0 L255.0 8.7 L250.0 8.6 L245.0 8.8 L240.0 8.7 L235.0 8.3 L230.0 8.2 L225.0 8.8 L220.0 9.1 L215.0 8.7 L210.0 8.2 L205.0 8.6 L200.0 9.6 L195.0 10.5 L190.0 11.0 L185.0 11.3 L180.0 11.6 L175.0 11.2 L170.0 9.9 L165.0 8.9 L160.0 8.9 L155.0 9.6 L150.0 10.0 L145.0 9.9 L140.0 9.8 L135.0 9.7 L130.0 9.2 L125.0 8.4 L120.0 8.0 L115.0 8.5 L110.0 9.0 L105.0 8.8 L100.0 8.0 L95.0 7.6 L90.0 7.8 L85.0 8.1 L80.0 8.3 L75.0 9.1 L70.0 10.3 L65.0 11.0 L60.0 10.7 L55.0 9.9 L50.0 9.7 L45.0 10.0 L40.0 10.1 L35.0 9.9 L30.0 10.0 L25.0 10.4 L20.0 10.5 L15.0 9.9 L10.0 9.6 L5.0 10.0 L0.0 10.5Z'\/%3E%3C\/svg%3E\") repeat-x left center \/ 420px 14px;\n}\n\n.mf-av .mf-av-grens {\n  position: absolute;\n  top: 47px;\n  width: 2.5px;\n  height: 24px;\n  margin-left: -1.25px;\n  overflow: hidden;\n  color: transparent;\n  background: var(--av-inkt);\n  border-radius: 2px 1px 2px 1px;\n  rotate: 4deg;\n}\n.mf-av .mf-av-maandnaam {\n  position: absolute;\n  top: 35px;\n  translate: -50% 0;\n  font-size: 1rem;\n  white-space: nowrap;\n  color: var(--av-inkt);\n}\n\n.mf-av .mf-av-knop {\n  display: block;\n  width: auto;\n  height: auto;\n  margin: 12px auto 0;\n  padding: 4px 12px;\n  font: inherit;\n  font-size: .88rem;\n  line-height: 1.3;\n  letter-spacing: normal;\n  text-transform: none;\n  color: var(--av-muted);\n  background: transparent;\n  border: 0;\n  border-radius: 999px;\n  box-shadow: none;\n  text-decoration: underline;\n  text-underline-offset: 3px;\n  cursor: pointer;\n}\n.mf-av .mf-av-knop:hover { color: var(--av-inkt); }\n.mf-av .mf-av-knop:focus-visible { outline: 2px solid var(--av-inkt); outline-offset: 2px; }\n.mf-av .mf-av-knop[aria-pressed=\"true\"] {\n  color: var(--av-inkt);\n  background: color-mix(in srgb, var(--av-accent) 55%, transparent);\n  text-decoration: none;\n}\n<\/style>\n\n<div class=\"mf-av is-open\">\n  <div class=\"mf-av-midden\">\n    <div class=\"mf-av-kop\" aria-live=\"polite\">\n      <span class=\"mf-av-aanloop\" data-rol=\"aanloop\">meestal tussen<\/span>\n      <div class=\"mf-av-blaadjes\">\n        <div class=\"mf-av-blad mf-av-blad--van\" data-rol=\"blad-van\">\n<img class=\"mf-av-blad-beeld skip-lazy no-lazyload\" data-no-lazy=\"1\" data-skip-lazy=\"1\" src=\"https:\/\/link.openvme.be\/assets\/brand\/thingies\/thingies_calendar1.svg\" alt=\"\" width=\"263\" height=\"310\" loading=\"eager\" decoding=\"async\"><span class=\"mf-av-blad-dag\">25<\/span><span class=\"mf-av-blad-maand\">september<\/span>\n<\/div>\n        <span class=\"mf-av-tot\">en<\/span>\n        <div class=\"mf-av-blad mf-av-blad--tot\" data-rol=\"blad-tot\">\n<img class=\"mf-av-blad-beeld skip-lazy no-lazyload\" data-no-lazy=\"1\" data-skip-lazy=\"1\" src=\"https:\/\/link.openvme.be\/assets\/brand\/thingies\/thingies_calendar2.svg\" alt=\"\" width=\"263\" height=\"310\" loading=\"eager\" decoding=\"async\"><span class=\"mf-av-blad-dag\">10<\/span><span class=\"mf-av-blad-maand\">oktober<\/span>\n<\/div>\n      <\/div>\n    <\/div>\n    <span class=\"mf-av-hint\" data-rol=\"hint\">Schuif of tik op de lijn om te kiezen<\/span>\n\n    <div class=\"mf-av-wielvak\">\n      <img class=\"mf-av-kader skip-lazy no-lazyload\" data-no-lazy=\"1\" data-skip-lazy=\"1\" src=\"https:\/\/link.openvme.be\/assets\/brand\/thingies\/frame.svg\" alt=\"\" width=\"368\" height=\"152\" loading=\"eager\" decoding=\"async\">\n      <div class=\"mf-av-wiel\" data-rol=\"wiel\" tabindex=\"0\" role=\"slider\" aria-label=\"Periode van de volgende algemene vergadering\">\n        <div class=\"mf-av-spoor\" data-rol=\"spoor\"><div class=\"mf-av-baan\" data-rol=\"baan\">lijn<\/div><\/div>\n      <\/div>\n    <\/div>\n\n    <button type=\"button\" class=\"mf-av-knop\" data-rol=\"onbekend\" aria-pressed=\"false\">Nog geen idee<\/button>\n  <\/div>\n<\/div>\n\n<script>\nMymmoStappen.stap(document.currentScript, function (api) {\n  \/* LEES DIT VOOR JE DIT SCRIPT AANPAST.\n     Uitsluitend ASCII, en geen en-teken, kleiner- of groter-dan of sluit-tag: op\n     syndicoach.be wordt de HTML van een stap onderweg herschreven en parst een\n     script met die tekens niet meer. Vergelijk dus met Math.min en Math.max, en\n     schrijf lussen met !== in plaats van een kleiner-dan. *\/\n\n  var wortel = api.el.querySelector('.mf-av');\n  if (!wortel) return;\n\n  function rol(naam) { return wortel.querySelector('[data-rol=\"' + naam + '\"]'); }\n  var wiel = rol('wiel');\n  var spoor = rol('spoor');\n  var baan = rol('baan');\n  var elAanloop = rol('aanloop');\n  var bladVan = rol('blad-van');\n  var bladTot = rol('blad-tot');\n  var elHint = rol('hint');\n  var knopOnbekend = rol('onbekend');\n  if (!wiel || !spoor || !baan) return;\n\n  var PX = 10;            \/* pixels per dag; gelijk aan --av-dag *\/\n  \/* Een maand is op de lijn altijd 4,3 weken breed, wat de maand ook echt telt.\n     De zes ankers (5, 10, 15, 20, 25, 30) liggen er op gelijke afstand in:\n     anker k van het jaar (0 = 5 januari, 71 = 30 december) ligt op (k + 1) \/ 6\n     maand. Een venster van drie ankers is dus exact een halve maand. *\/\n  var MAAND = 4.3 * 7 * PX;\n  var JAAR = 12 * MAAND;\n  var ANKERS = 72;\n  \/* De lijn is JAARLOOS en loopt rond: na december komt januari, voor januari\n     december. Ze bestaat uit vijf kopieen van een jaar; na elk schuiven springt\n     ze onzichtbaar terug naar de middelste, zodat je nooit een einde bereikt. *\/\n  var KOPIEEN = 5;\n  var MIDDEN_KOPIE = 2;\n  var MAANDEN = ['januari', 'februari', 'maart', 'april', 'mei', 'juni', 'juli',\n                 'augustus', 'september', 'oktober', 'november', 'december'];\n\n  var vandaag = new Date();\n  var basis = new Date(vandaag.getFullYear(), vandaag.getMonth(), vandaag.getDate());\n\n  function minstens(a, b) { return Math.max(a, b) === a; }\n  function klem(n, lo, hi) { return Math.min(hi, Math.max(lo, n)); }\n  function rond(k) { return ((k % ANKERS) + ANKERS) % ANKERS; }\n  function twee(n) { return ('0' + n).slice(-2); }\n  function iso(d) { return d.getFullYear() + '-' + twee(d.getMonth() + 1) + '-' + twee(d.getDate()); }\n  function dagenIn(j, m) { return new Date(j, m + 1, 0).getDate(); }\n  function indexVan(d) { return Math.round((d - basis) \/ 86400000); }\n\n  wortel.style.setProperty('--av-dag', PX + 'px');\n\n  \/* ---- Vensters: van anker k tot anker k + 3, rond het jaar ---- *\/\n\n  function ankerMaand(k) { return Math.floor(rond(k) \/ 6); }\n  function ankerDag(k) { return (rond(k) % 6 + 1) * 5; }\n  \/* 30 februari bestaat niet: dan de laatste dag (in een gewoon jaar). *\/\n  function toonDag(k) { return Math.min(ankerDag(k), dagenIn(2025, ankerMaand(k))); }\n\n  var vensters = [];\n  (function () {\n    var k = 0;\n    while (k !== ANKERS) {\n      vensters.push({\n        k: k,\n        vanM: ankerMaand(k), vanD: toonDag(k),\n        totM: ankerMaand(k + 3), totD: toonDag(k + 3)\n      });\n      k = k + 1;\n    }\n  })();\n\n  \/* Positie op de lijn van venster k in een bepaalde kopie van het jaar. *\/\n  function positie(kRuw) { return (kRuw + 2.5) \/ 6 * MAAND; }\n  function kRuwBij(px) { return Math.round(px \/ MAAND * 6 - 2.5); }\n\n  \/* De eerstvolgende keer dat dit venster voorkomt, voor de datumvelden. *\/\n  function eerstvolgende(v) {\n    var j = vandaag.getFullYear();\n    var van = new Date(j, v.vanM, Math.min(ankerDag(v.k), dagenIn(j, v.vanM)));\n    if (!minstens(indexVan(van), 1)) {\n      j = j + 1;\n      van = new Date(j, v.vanM, Math.min(ankerDag(v.k), dagenIn(j, v.vanM)));\n    }\n    var jt = minstens(v.totM, v.vanM) ? j : j + 1;\n    var tot = new Date(jt, v.totM, Math.min(ankerDag(v.k + 3), dagenIn(jt, v.totM)));\n    return { van: van, tot: tot };\n  }\n\n  function vensterVoorDatum(d) {\n    return rond(d.getMonth() * 6 + klem(Math.round(d.getDate() \/ 5), 1, 6) - 1);\n  }\n\n  var pad = 0;\n  \/* Het wiel opent op het venster dat ongeveer vijf weken vooruit begint. *\/\n  var huidig = vensterVoorDatum(new Date(basis.getFullYear(), basis.getMonth(), basis.getDate() + 35));\n  var bewaard = -1;\n  var gekozen = false;\n  var stil = true;\n  var rustTimer = null;\n  var sleep = null;\n  var negeerKlik = false;\n  var vinger = false;\n\n  \/* ---- De lijn: maandnaam in het midden, streepje op het begin van elke maand ---- *\/\n\n  (function () {\n    var i = 0;\n    while (i !== KOPIEEN * 12) {\n      var naam = document.createElement('span');\n      naam.className = 'mf-av-maandnaam';\n      naam.textContent = MAANDEN[i % 12];\n      naam.style.left = ((i + 0.5) * MAAND) + 'px';\n      baan.appendChild(naam);\n\n      var grens = document.createElement('span');\n      grens.className = 'mf-av-grens';\n      grens.textContent = '|';\n      grens.style.left = (i * MAAND) + 'px';\n      baan.appendChild(grens);\n      i = i + 1;\n    }\n  })();\n  baan.removeChild(baan.firstChild);\n\n  function maat() {\n    pad = Math.round(wiel.clientWidth \/ 2);\n    spoor.style.width = (pad * 2 + KOPIEEN * JAAR) + 'px';\n    baan.style.left = pad + 'px';\n    baan.style.width = (KOPIEEN * JAAR) + 'px';\n  }\n\n  \/* ---- Tekst ---- *\/\n\n  \/* Twee kalenderblaadjes: altijd even groot, wat er ook op staat. Het blaadje\n     zelf beweegt niet; het GETAL doet een kleine anticipatie en een plop als het\n     verspringt. *\/\n  function zetBlad(blad, maand, dag) {\n    var elMaand = blad.querySelector('.mf-av-blad-maand');\n    var elDag = blad.querySelector('.mf-av-blad-dag');\n    var nieuw = MAANDEN[maand] + ' ' + dag;\n    if (blad.getAttribute('data-waarde') === nieuw) return;\n    blad.setAttribute('data-waarde', nieuw);\n    elMaand.textContent = MAANDEN[maand];\n    if (elDag.textContent !== String(dag)) {\n      elDag.textContent = String(dag);\n      elDag.classList.remove('is-plop');\n      void elDag.offsetWidth;\n      elDag.classList.add('is-plop');\n    }\n  }\n\n  \/* Zonder jaartal: een algemene vergadering valt elk jaar rond dezelfde tijd, dus\n     we vragen een terugkerend moment, geen datum. *\/\n  function zin(v) {\n    if (v.vanM === v.totM) {\n      return 'tussen ' + v.vanD + ' en ' + v.totD + ' ' + MAANDEN[v.totM];\n    }\n    return 'tussen ' + v.vanD + ' ' + MAANDEN[v.vanM] + ' en ' + v.totD + ' ' + MAANDEN[v.totM];\n  }\n\n  function toon() {\n    if (knopOnbekend.getAttribute('aria-pressed') === 'true') {\n      elAanloop.textContent = 'nog geen idee';\n      elHint.textContent = 'Geen probleem, dat bespreken we samen.';\n      wiel.setAttribute('aria-valuetext', 'Nog geen idee');\n      return;\n    }\n    var v = vensters[huidig];\n    elAanloop.textContent = 'meestal tussen';\n    zetBlad(bladVan, v.vanM, v.vanD);\n    zetBlad(bladTot, v.totM, v.totD);\n    elHint.textContent = gekozen ? '' : 'Schuif of tik op de lijn om te kiezen';\n    wiel.setAttribute('aria-valuetext', zin(v));\n  }\n\n  function bewaar() {\n    if (knopOnbekend.getAttribute('aria-pressed') === 'true') {\n      api.zet('volgende_av_periode', 'onbekend');\n      api.zet('volgende_av_datum', '');\n      api.zet('volgende_av_van', '');\n      api.zet('volgende_av_tot', '');\n      return;\n    }\n    if (!gekozen) return;\n    var v = vensters[huidig];\n    var e = eerstvolgende(v);\n    api.zet('volgende_av_periode', zin(v));\n    api.zet('volgende_av_van', iso(e.van));\n    api.zet('volgende_av_tot', iso(e.tot));\n    var helft = Math.round((indexVan(e.tot) - indexVan(e.van)) \/ 2);\n    api.zet('volgende_av_datum', iso(new Date(e.van.getFullYear(), e.van.getMonth(), e.van.getDate() + helft)));\n  }\n\n  \/* ---- Schuiven ---- *\/\n\n  function kies() {\n    if (knopOnbekend.getAttribute('aria-pressed') === 'true') {\n      knopOnbekend.setAttribute('aria-pressed', 'false');\n      wortel.classList.remove('is-onbekend');\n    }\n    gekozen = true;\n    bewaard = huidig;\n    wortel.classList.remove('is-open');\n    bewaar();\n    toon();\n  }\n\n  function naarRuw(kRuw) {\n    huidig = rond(kRuw);\n    wiel.scrollTo({ left: positie(kRuw), behavior: 'smooth' });\n  }\n\n  function inRust() {\n    if (sleep) return;\n    if (vinger) return;\n    var kRuw = kRuwBij(wiel.scrollLeft);\n    \/* Terug naar de middelste kopie, onzichtbaar: de lijn ziet er in elke kopie\n       hetzelfde uit. *\/\n    var kopie = Math.floor(kRuw \/ ANKERS);\n    if (kopie !== MIDDEN_KOPIE) {\n      var verschuiving = (kopie - MIDDEN_KOPIE) * JAAR;\n      wiel.scrollLeft = wiel.scrollLeft - verschuiving;\n      kRuw = kRuw - (kopie - MIDDEN_KOPIE) * ANKERS;\n    }\n    var doelPx = positie(kRuw);\n    if (!minstens(0.5, Math.abs(wiel.scrollLeft - doelPx))) {\n      wiel.scrollTo({ left: doelPx, behavior: 'smooth' });\n    }\n    var doel = rond(kRuw);\n    if (stil) return;\n    if (doel !== bewaard || !gekozen) {\n      huidig = doel;\n      kies();\n    }\n  }\n\n  wiel.addEventListener('scroll', function () {\n    var i = rond(kRuwBij(wiel.scrollLeft));\n    if (i !== huidig) {\n      huidig = i;\n      \/* De bezoeker schuift zelf: vanaf de eerste wissel is het geen voorstel\n         meer, dus niet meer grijs. Bewaard wordt pas bij het loslaten. *\/\n      if (!stil) wortel.classList.remove('is-open');\n      toon();\n    }\n    clearTimeout(rustTimer);\n    rustTimer = setTimeout(inRust, 130);\n  }, { passive: true });\n\n  function wakker() { stil = false; }\n\n  wiel.addEventListener('touchstart', function () { wakker(); vinger = true; }, { passive: true });\n  function vingerLos() {\n    vinger = false;\n    clearTimeout(rustTimer);\n    rustTimer = setTimeout(inRust, 130);\n  }\n  wiel.addEventListener('touchend', vingerLos, { passive: true });\n  wiel.addEventListener('touchcancel', vingerLos, { passive: true });\n\n  wiel.addEventListener('wheel', function (e) {\n    var dx = e.deltaX;\n    var dy = e.deltaY;\n    var stap = Math.max(Math.abs(dx), Math.abs(dy)) === Math.abs(dy) ? dy : dx;\n    if (stap === 0) return;\n    e.preventDefault();\n    wakker();\n    wiel.scrollLeft = wiel.scrollLeft + stap;\n  }, { passive: false });\n\n  wiel.addEventListener('pointerdown', function (e) {\n    if (e.pointerType !== 'mouse') return;\n    wakker();\n    sleep = { x: e.clientX, begin: wiel.scrollLeft, bewogen: false };\n    wiel.classList.add('is-slepen');\n    wiel.setPointerCapture(e.pointerId);\n  });\n  wiel.addEventListener('pointermove', function (e) {\n    if (!sleep) return;\n    var dx = e.clientX - sleep.x;\n    if (minstens(Math.abs(dx), 4)) sleep.bewogen = true;\n    wiel.scrollLeft = sleep.begin - dx;\n  });\n  function loslaten() {\n    if (!sleep) return;\n    negeerKlik = sleep.bewogen;\n    sleep = null;\n    wiel.classList.remove('is-slepen');\n    inRust();\n  }\n  wiel.addEventListener('pointerup', loslaten);\n  wiel.addEventListener('pointercancel', loslaten);\n\n  \/* Tikken op de lijn schuift het venster rond die plek in het kader. *\/\n  wiel.addEventListener('click', function (e) {\n    if (negeerKlik) {\n      negeerKlik = false;\n      return;\n    }\n    wakker();\n    var x = e.clientX - wiel.getBoundingClientRect().left + wiel.scrollLeft - pad;\n    var kRuw = kRuwBij(x);\n    if (rond(kRuw) === huidig) {\n      kies();\n      return;\n    }\n    naarRuw(kRuw);\n  });\n\n  wiel.addEventListener('keydown', function (e) {\n    var sprong = { ArrowLeft: -1, ArrowRight: 1, ArrowDown: 1, ArrowUp: -1, PageUp: -6, PageDown: 6 }[e.key];\n    if (!sprong) return;\n    e.preventDefault();\n    wakker();\n    naarRuw(kRuwBij(wiel.scrollLeft) + sprong);\n  });\n\n  knopOnbekend.addEventListener('click', function () {\n    var aan = knopOnbekend.getAttribute('aria-pressed') !== 'true';\n    knopOnbekend.setAttribute('aria-pressed', aan ? 'true' : 'false');\n    wortel.classList.toggle('is-onbekend', aan);\n    if (aan) {\n      wortel.classList.remove('is-open');\n      bewaar();\n    } else {\n      gekozen = false;\n      wortel.classList.add('is-open');\n      api.zet('volgende_av_periode', '');\n    }\n    toon();\n  });\n\n  \/* ---- Beginstand ---- *\/\n\n  (function () {\n    var periode = String(api.lees('volgende_av_periode') || '').trim();\n    var van = String(api.lees('volgende_av_van') || '').trim().split('-');\n    if (periode === 'onbekend') {\n      knopOnbekend.setAttribute('aria-pressed', 'true');\n      wortel.classList.add('is-onbekend');\n      wortel.classList.remove('is-open');\n      return;\n    }\n    if (van.length === 3) {\n      var d = new Date(Number(van[0]), Number(van[1]) - 1, Number(van[2]));\n      if (!isNaN(d.getTime())) {\n        huidig = vensterVoorDatum(d);\n        bewaard = huidig;\n        gekozen = true;\n        wortel.classList.remove('is-open');\n      }\n    }\n  })();\n\n  \/* Opnieuw meten en terugzetten, zonder dat het als antwoord telt. De stap staat\n     verborgen (en de pop-up dicht) tot ze aan de beurt is: dan is de breedte 0.\n     Meten gebeurt dus pas als de lijn echt breedte krijgt. *\/\n  var laatsteBreedte = -1;\n  function herschik() {\n    var breedte = wiel.clientWidth;\n    if (breedte === laatsteBreedte) return;\n    laatsteBreedte = breedte;\n    if (breedte === 0) return;\n    var wasStil = stil;\n    var i = huidig;\n    stil = true;\n    maat();\n    wiel.scrollLeft = positie(MIDDEN_KOPIE * ANKERS + i);\n    huidig = i;\n    toon();\n    setTimeout(function () { stil = wasStil; }, 200);\n  }\n\n  toon();\n  herschik();\n  if (window.ResizeObserver) {\n    new ResizeObserver(herschik).observe(wiel);\n  } else {\n    window.addEventListener('resize', herschik);\n  }\n  api.bij('tonen', herschik);\n});\n<\/script>\n<\/div>\n<div class=\"mymmo-stap-nav\">\n<button type=\"button\" class=\"mymmo-stap-knop mymmo-stap-knop--terug\" data-mymmo-vorige>Vorige<\/button><button type=\"button\" class=\"mymmo-stap-knop mymmo-stap-knop--verder\" data-mymmo-volgende>Volgende<\/button>\n<\/div><\/section>            \n            <section class=\"mymmo-stap mymmo-stap--formulier\" data-mymmo-stap=\"4\" data-mymmo-stap-naam=\"formulier\" hidden><h3 class=\"mymmo-stap-titel mymmo-stap-titel--met-tekst\" data-mymmo-kop=\"form-titel\">De laatste loodjes...<\/h3>\n<p class=\"mymmo-stap-tekst\" data-mymmo-kop=\"form-sub\">Dankjewel voor alle info. Hier gaan wij mee aan de slag. Vul nog je naam en emailadres in en we sturen je meteen al ons voorstel op.<\/p>\n<div class=\"mymmo-form-wrap\" id=\"mymmo-modal-we-nemen-contact-met-je-op-2-extra\" data-mymmo-slug=\"syndicoach-calulator-offerte\" data-mymmo-tabblad=\"extra\" lang=\"nl\" style=\"--mf-accent:#99f6e4;--mf-accent-text:#0369a1;--mf-accent-ink:#0369a1;--mf-gap:18px;--mf-fig-scale:80%;--mf-fig-x:-7px;--mf-fig-y:-41px;--mf-wm-scale:257%;--mf-wm-x:-314px;--mf-wm-y:141px;--mf-wm-rotate:25deg;--mf-accent-ink:#0369a1\">\n\n    \n    \n        \n        \n        \n        \n                <form class=\"mymmo-form\" method=\"post\" action=\"https:\/\/syndicoach.be\/wp-admin\/admin-post.php\" data-mymmo-messages='{\"required\":\"{label} is verplicht.\",\"email\":\"{label} is geen geldig e-mailadres.\",\"number\":\"{label} moet een getal zijn.\",\"date\":\"{label} moet een datum zijn (jjjj-mm-dd).\",\"postcode\":\"{label} is geen geldige postcode.\",\"postcode_unknown\":\"We kennen postcode {value} niet. Kijk ze even na.\",\"city_other\":\"Andere plaats\\u2026\",\"unknown_choice\":\"{label}: onbekende keuze \\\"{value}\\\".\",\"minlength\":\"{label} moet minstens {n} tekens bevatten.\",\"maxlength\":\"{label} mag hoogstens {n} tekens bevatten.\",\"min\":\"{label} moet minstens {n} zijn.\",\"max\":\"{label} mag hoogstens {n} zijn.\",\"choose\":\"Maak een keuze\",\"back\":\"Vorige\",\"next\":\"Volgende\",\"step_of\":\"Stap {n} van {total}\",\"submitting\":\"Bezig met versturen\\u2026\",\"busy\":\"We maken je offerte op\",\"busy_offerte\":\"We maken je offerte op\",\"busy_academy\":\"We zetten je cursus klaar\",\"check_fields\":\"Kijk de gemarkeerde velden na.\",\"expired\":\"De pagina was verlopen. Probeer het opnieuw.\",\"stale_page\":\"Deze pagina stond te lang open. Ververs ze en probeer opnieuw.\",\"rejected\":\"De inzending kon niet verwerkt worden.\",\"bot_check\":\"We konden niet nagaan of je geen robot bent. Probeer het opnieuw.\",\"unavailable\":\"Dit formulier is momenteel niet beschikbaar.\",\"send_failed\":\"We konden je bericht niet versturen. Probeer het zo meteen opnieuw.\"}' data-mymmo-turnstile=\"0x4AAAAAAFOLN57a5gYOjyhK\" novalidate>\n\n            <input type=\"hidden\" id=\"_wpnonce\" name=\"_wpnonce\" value=\"086fd692ac\"><input type=\"hidden\" name=\"_wp_http_referer\" value=\"\/fr\/wp-json\/wp\/v2\/pages\/18192\">            <input type=\"hidden\" name=\"action\" value=\"mymmo_forms_submit\">\n            <input type=\"hidden\" name=\"mymmo_form_slug\" value=\"syndicoach-calulator-offerte\">\n                        <input type=\"hidden\" name=\"mymmo_lang\" value=\"nl\">\n            <input type=\"hidden\" name=\"mymmo_redirect_to\" value=\"https:\/\/syndicoach.be\/fr\/aanpak\/\">\n                            <input type=\"hidden\" name=\"mymmo_anchor\" value=\"mymmo-modal-we-nemen-contact-met-je-op-2\">\n                                        <input type=\"hidden\" name=\"mymmo_tab\" value=\"extra\">\n                        <input type=\"hidden\" name=\"mymmo_page_title\" value=\"Syndicoach\">\n            <input type=\"hidden\" name=\"mymmo_forms_t\" value=\"1791384334.984c667b302fa502f14906f8e47a3a56\">\n\n            \n                        <div class=\"mymmo-form-hp\" aria-hidden=\"true\">\n                <label for=\"mymmo-modal-we-nemen-contact-met-je-op-2-extra-hp\">Laat dit veld leeg<\/label>\n                <input type=\"text\" id=\"mymmo-modal-we-nemen-contact-met-je-op-2-extra-hp\" name=\"mymmo_forms_website\" value=\"\" tabindex=\"-1\" autocomplete=\"off\">\n            <\/div>\n\n            \n            <div class=\"mymmo-form-grid\">\n                <div class=\"mymmo-form-field mymmo-form-field--full mymmo-form-field--text\" data-mymmo-label=\"Naam\">\n\n    \n        <label class=\"mymmo-form-label\" for=\"mymmo-modal-we-nemen-contact-met-je-op-2-extra-naam\">\n            Naam <span class=\"mymmo-form-req\" aria-hidden=\"true\">*<\/span>        <\/label>\n\n                    <input type=\"text\" id=\"mymmo-modal-we-nemen-contact-met-je-op-2-extra-naam\" name=\"naam\" class=\"mymmo-form-input\" value=\"\" placeholder=\"\" required aria-required=\"true\" aria-describedby=\"mymmo-modal-we-nemen-contact-met-je-op-2-extra-naam-error\">\n\n        \n    \n    \n        <p class=\"mymmo-form-error\" id=\"mymmo-modal-we-nemen-contact-met-je-op-2-extra-naam-error\" role=\"alert\" data-mymmo-error hidden><\/p>\n<\/div>\n<div class=\"mymmo-form-field mymmo-form-field--half mymmo-form-field--email\" data-mymmo-label=\"E-mailadres\">\n\n    \n        <label class=\"mymmo-form-label\" for=\"mymmo-modal-we-nemen-contact-met-je-op-2-extra-e_mailadres\">\n            E-mailadres <span class=\"mymmo-form-req\" aria-hidden=\"true\">*<\/span>        <\/label>\n\n                    <input type=\"email\" id=\"mymmo-modal-we-nemen-contact-met-je-op-2-extra-e_mailadres\" name=\"e_mailadres\" class=\"mymmo-form-input\" value=\"\" placeholder=\"\" required aria-required=\"true\" aria-describedby=\"mymmo-modal-we-nemen-contact-met-je-op-2-extra-e_mailadres-error\" autocomplete=\"email\">\n\n        \n    \n    \n        <p class=\"mymmo-form-error\" id=\"mymmo-modal-we-nemen-contact-met-je-op-2-extra-e_mailadres-error\" role=\"alert\" data-mymmo-error hidden><\/p>\n<\/div>\n<div class=\"mymmo-form-field mymmo-form-field--half mymmo-form-field--tel\" data-mymmo-label=\"Telefoonnummer\">\n\n    \n        <label class=\"mymmo-form-label\" for=\"mymmo-modal-we-nemen-contact-met-je-op-2-extra-tel\">\n            Telefoonnummer <span class=\"mymmo-form-req\" aria-hidden=\"true\">*<\/span>        <\/label>\n\n                    <input type=\"tel\" id=\"mymmo-modal-we-nemen-contact-met-je-op-2-extra-tel\" name=\"tel\" class=\"mymmo-form-input\" value=\"\" placeholder=\"\" required aria-required=\"true\" aria-describedby=\"mymmo-modal-we-nemen-contact-met-je-op-2-extra-tel-error\" autocomplete=\"tel\">\n\n        \n    \n    \n        <p class=\"mymmo-form-error\" id=\"mymmo-modal-we-nemen-contact-met-je-op-2-extra-tel-error\" role=\"alert\" data-mymmo-error hidden><\/p>\n<\/div>\n<div class=\"mymmo-form-field mymmo-form-field--half mymmo-form-field--text\" data-mymmo-label=\"Straat\">\n\n    \n        <label class=\"mymmo-form-label\" for=\"mymmo-modal-we-nemen-contact-met-je-op-2-extra-adres_van_het_gebouw\">\n            Straat <span class=\"mymmo-form-req\" aria-hidden=\"true\">*<\/span>        <\/label>\n\n                    <input type=\"text\" id=\"mymmo-modal-we-nemen-contact-met-je-op-2-extra-adres_van_het_gebouw\" name=\"adres_van_het_gebouw\" class=\"mymmo-form-input\" value=\"\" placeholder=\"\" required aria-required=\"true\" aria-describedby=\"mymmo-modal-we-nemen-contact-met-je-op-2-extra-adres_van_het_gebouw-error\">\n\n        \n    \n    \n        <p class=\"mymmo-form-error\" id=\"mymmo-modal-we-nemen-contact-met-je-op-2-extra-adres_van_het_gebouw-error\" role=\"alert\" data-mymmo-error hidden><\/p>\n<\/div>\n<div class=\"mymmo-form-field mymmo-form-field--half mymmo-form-field--text\" data-mymmo-label=\"Nummer\">\n\n    \n        <label class=\"mymmo-form-label\" for=\"mymmo-modal-we-nemen-contact-met-je-op-2-extra-nummer\">\n            Nummer <span class=\"mymmo-form-req\" aria-hidden=\"true\">*<\/span>        <\/label>\n\n                    <input type=\"text\" id=\"mymmo-modal-we-nemen-contact-met-je-op-2-extra-nummer\" name=\"nummer\" class=\"mymmo-form-input\" value=\"\" placeholder=\"\" required aria-required=\"true\" aria-describedby=\"mymmo-modal-we-nemen-contact-met-je-op-2-extra-nummer-error\">\n\n        \n    \n    \n        <p class=\"mymmo-form-error\" id=\"mymmo-modal-we-nemen-contact-met-je-op-2-extra-nummer-error\" role=\"alert\" data-mymmo-error hidden><\/p>\n<\/div>\n<div class=\"mymmo-form-field mymmo-form-field--half mymmo-form-field--postcode\" data-mymmo-label=\"Postcode\">\n\n    \n        <label class=\"mymmo-form-label\" for=\"mymmo-modal-we-nemen-contact-met-je-op-2-extra-zip\">\n            Postcode <span class=\"mymmo-form-req\" aria-hidden=\"true\">*<\/span>        <\/label>\n\n                    <input type=\"text\" id=\"mymmo-modal-we-nemen-contact-met-je-op-2-extra-zip\" name=\"zip\" class=\"mymmo-form-input\" value=\"\" placeholder=\"\" autocomplete=\"postal-code\" inputmode=\"numeric\" autocapitalize=\"characters\" spellcheck=\"false\" maxlength=\"12\" data-mymmo-postcode=\"BE\" data-mymmo-postcode-lijst=\"https:\/\/syndicoach.be\/wp-content\/plugins\/mymmo-forms\/assets\/data\/postcodes-be.json?ver=1.23.1\" data-mymmo-gemeente=\"gemeente\" required aria-required=\"true\" aria-describedby=\"mymmo-modal-we-nemen-contact-met-je-op-2-extra-zip-error\">\n\n        \n    \n    \n        <p class=\"mymmo-form-error\" id=\"mymmo-modal-we-nemen-contact-met-je-op-2-extra-zip-error\" role=\"alert\" data-mymmo-error hidden><\/p>\n<\/div>\n<div class=\"mymmo-form-field mymmo-form-field--half mymmo-form-field--city\" data-mymmo-label=\"Stad\/Gemeente\">\n\n    \n        <label class=\"mymmo-form-label\" for=\"mymmo-modal-we-nemen-contact-met-je-op-2-extra-gemeente\">\n            Stad\/Gemeente <span class=\"mymmo-form-req\" aria-hidden=\"true\">*<\/span>        <\/label>\n\n                    <input type=\"text\" id=\"mymmo-modal-we-nemen-contact-met-je-op-2-extra-gemeente\" name=\"gemeente\" class=\"mymmo-form-input\" value=\"\" placeholder=\"\" autocomplete=\"address-level2\" data-mymmo-gemeente-van=\"zip\" required aria-required=\"true\" aria-describedby=\"mymmo-modal-we-nemen-contact-met-je-op-2-extra-gemeente-error\">\n            <select id=\"mymmo-modal-we-nemen-contact-met-je-op-2-extra-gemeente-keuze\" class=\"mymmo-form-input\" data-mymmo-gemeente-keuze hidden disabled aria-describedby=\"mymmo-modal-we-nemen-contact-met-je-op-2-extra-gemeente-error\"><\/select>\n\n        \n    \n    \n        <p class=\"mymmo-form-error\" id=\"mymmo-modal-we-nemen-contact-met-je-op-2-extra-gemeente-error\" role=\"alert\" data-mymmo-error hidden><\/p>\n<\/div>\n<input type=\"hidden\" name=\"aantal_kavels\" value=\"\"><input type=\"hidden\" name=\"commerciele_kavels\" value=\"\"><input type=\"hidden\" name=\"gebouw_kenmerken\" value=\"\"><input type=\"hidden\" name=\"huidig_beheer\" value=\"\"><input type=\"hidden\" name=\"volgende_av_periode\" value=\"\"><input type=\"hidden\" name=\"volgende_av_van\" value=\"\"><input type=\"hidden\" name=\"volgende_av_tot\" value=\"\"><input type=\"hidden\" name=\"volgende_av_datum\" value=\"\"><input type=\"hidden\" name=\"waarom_syndicoach\" value=\"\">            <\/div>\n\n                                    <div class=\"mymmo-form-actions\">\n                                    <button type=\"button\" class=\"mymmo-form-back\" data-mymmo-vorige>\n                        Vorige                    <\/button>\n                                <button type=\"submit\" class=\"mymmo-form-submit\">\n                    Versturen                <\/button>\n            <\/div>\n                    <\/form>\n\n    <\/div>\n<\/section>    <\/div>\n<div class=\"mymmo-dank\" data-mymmo-dank-scherm=\"extra\" hidden>\n<img class=\"mymmo-dank-beeld lazyload\" data-mymmo-dank=\"beeld\" data-src=\"https:\/\/link.openvme.be\/assets\/brand\/relax-voor-computer.svg\" alt=\"\" decoding=\"async\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\"><h3 class=\"mymmo-dank-titel\" data-mymmo-dank=\"titel\">Bedankt!<\/h3>\n<p class=\"mymmo-dank-tekst\" data-mymmo-dank=\"tekst\">We sturen je meteen de offerte op.<\/p>\n<\/div>                                            <\/section>\n                                        <section class=\"mymmo-modal-paneel\" id=\"mymmo-modal-we-nemen-contact-met-je-op-2-paneel-form\" role=\"tabpanel\" aria-labelledby=\"mymmo-modal-we-nemen-contact-met-je-op-2-tab-form\" tabindex=\"0\" data-mymmo-paneel=\"form\">\n\n                                                    <h3 class=\"mymmo-modal-paneel-titel\">Stuur een bericht<\/h3>\n                        \n                                                    <div class=\"mymmo-form-wrap\" id=\"mymmo-modal-we-nemen-contact-met-je-op-2-formulier\" data-mymmo-slug=\"we-nemen-contact-met-je-op\" data-mymmo-tabblad=\"form\" lang=\"nl\" style=\"--mf-accent:#2563eb;--mf-max-width:720px;--mf-accent:#99f6e4;--mf-accent-text:#0369a1;--mf-accent-ink:#0369a1;--mf-gap:18px;--mf-fig-scale:80%;--mf-fig-x:-7px;--mf-fig-y:-41px;--mf-wm-scale:257%;--mf-wm-x:-314px;--mf-wm-y:141px;--mf-wm-rotate:25deg;--mf-accent-ink:#0369a1\">\n\n    \n    \n        \n        <h3 class=\"mymmo-stap-titel mymmo-stap-titel--met-tekst\" data-mymmo-kop=\"form-titel\">Stel je vraag, wij zoeken het uit<\/h3>\n<p class=\"mymmo-stap-tekst\" data-mymmo-kop=\"form-sub\">Laat je gegevens achter en we nemen zo spoedig mogelijk contact met je op.<\/p>\n        \n        \n                <form class=\"mymmo-form\" method=\"post\" action=\"https:\/\/syndicoach.be\/wp-admin\/admin-post.php\" data-mymmo-messages='{\"required\":\"{label} is verplicht.\",\"email\":\"{label} is geen geldig e-mailadres.\",\"number\":\"{label} moet een getal zijn.\",\"date\":\"{label} moet een datum zijn (jjjj-mm-dd).\",\"postcode\":\"{label} is geen geldige postcode.\",\"postcode_unknown\":\"We kennen postcode {value} niet. Kijk ze even na.\",\"city_other\":\"Andere plaats\\u2026\",\"unknown_choice\":\"{label}: onbekende keuze \\\"{value}\\\".\",\"minlength\":\"{label} moet minstens {n} tekens bevatten.\",\"maxlength\":\"{label} mag hoogstens {n} tekens bevatten.\",\"min\":\"{label} moet minstens {n} zijn.\",\"max\":\"{label} mag hoogstens {n} zijn.\",\"choose\":\"Maak een keuze\",\"back\":\"Vorige\",\"next\":\"Volgende\",\"step_of\":\"Stap {n} van {total}\",\"submitting\":\"Bezig met versturen\\u2026\",\"busy\":\"Even geduld\",\"busy_offerte\":\"We maken je offerte op\",\"busy_academy\":\"We zetten je cursus klaar\",\"check_fields\":\"Kijk de gemarkeerde velden na.\",\"expired\":\"De pagina was verlopen. Probeer het opnieuw.\",\"stale_page\":\"Deze pagina stond te lang open. Ververs ze en probeer opnieuw.\",\"rejected\":\"De inzending kon niet verwerkt worden.\",\"bot_check\":\"We konden niet nagaan of je geen robot bent. Probeer het opnieuw.\",\"unavailable\":\"Dit formulier is momenteel niet beschikbaar.\",\"send_failed\":\"We konden je bericht niet versturen. Probeer het zo meteen opnieuw.\"}' data-mymmo-turnstile=\"0x4AAAAAAFOLN57a5gYOjyhK\" novalidate>\n\n            <input type=\"hidden\" id=\"_wpnonce\" name=\"_wpnonce\" value=\"ad48b43cad\"><input type=\"hidden\" name=\"_wp_http_referer\" value=\"\/fr\/wp-json\/wp\/v2\/pages\/18192\">            <input type=\"hidden\" name=\"action\" value=\"mymmo_forms_submit\">\n            <input type=\"hidden\" name=\"mymmo_form_slug\" value=\"we-nemen-contact-met-je-op\">\n                        <input type=\"hidden\" name=\"mymmo_lang\" value=\"nl\">\n            <input type=\"hidden\" name=\"mymmo_redirect_to\" value=\"https:\/\/syndicoach.be\/fr\/aanpak\/\">\n                            <input type=\"hidden\" name=\"mymmo_anchor\" value=\"mymmo-modal-we-nemen-contact-met-je-op-2\">\n                                        <input type=\"hidden\" name=\"mymmo_tab\" value=\"form\">\n                        <input type=\"hidden\" name=\"mymmo_page_title\" value=\"Syndicoach\">\n            <input type=\"hidden\" name=\"mymmo_forms_t\" value=\"1791384334.984c667b302fa502f14906f8e47a3a56\">\n\n            \n                        <div class=\"mymmo-form-hp\" aria-hidden=\"true\">\n                <label for=\"mymmo-modal-we-nemen-contact-met-je-op-2-formulier-hp\">Laat dit veld leeg<\/label>\n                <input type=\"text\" id=\"mymmo-modal-we-nemen-contact-met-je-op-2-formulier-hp\" name=\"mymmo_forms_website\" value=\"\" tabindex=\"-1\" autocomplete=\"off\">\n            <\/div>\n\n            \n            <div class=\"mymmo-form-grid\">\n                <div class=\"mymmo-form-field mymmo-form-field--full mymmo-form-field--text\" data-mymmo-label=\"Naam\">\n\n    \n        <label class=\"mymmo-form-label\" for=\"mymmo-modal-we-nemen-contact-met-je-op-2-formulier-naam\">\n            Naam <span class=\"mymmo-form-req\" aria-hidden=\"true\">*<\/span>        <\/label>\n\n                    <input type=\"text\" id=\"mymmo-modal-we-nemen-contact-met-je-op-2-formulier-naam\" name=\"naam\" class=\"mymmo-form-input\" value=\"\" placeholder=\"\" required aria-required=\"true\" aria-describedby=\"mymmo-modal-we-nemen-contact-met-je-op-2-formulier-naam-error\">\n\n        \n    \n    \n        <p class=\"mymmo-form-error\" id=\"mymmo-modal-we-nemen-contact-met-je-op-2-formulier-naam-error\" role=\"alert\" data-mymmo-error hidden><\/p>\n<\/div>\n<div class=\"mymmo-form-field mymmo-form-field--full mymmo-form-field--email\" data-mymmo-label=\"E-mailadres\">\n\n    \n        <label class=\"mymmo-form-label\" for=\"mymmo-modal-we-nemen-contact-met-je-op-2-formulier-e_mailadres\">\n            E-mailadres <span class=\"mymmo-form-req\" aria-hidden=\"true\">*<\/span>        <\/label>\n\n                    <input type=\"email\" id=\"mymmo-modal-we-nemen-contact-met-je-op-2-formulier-e_mailadres\" name=\"e_mailadres\" class=\"mymmo-form-input\" value=\"\" placeholder=\"\" required aria-required=\"true\" aria-describedby=\"mymmo-modal-we-nemen-contact-met-je-op-2-formulier-e_mailadres-error\" autocomplete=\"email\">\n\n        \n    \n    \n        <p class=\"mymmo-form-error\" id=\"mymmo-modal-we-nemen-contact-met-je-op-2-formulier-e_mailadres-error\" role=\"alert\" data-mymmo-error hidden><\/p>\n<\/div>\n<div class=\"mymmo-form-field mymmo-form-field--full mymmo-form-field--tel\" data-mymmo-label=\"Telefoonnummer\">\n\n    \n        <label class=\"mymmo-form-label\" for=\"mymmo-modal-we-nemen-contact-met-je-op-2-formulier-telefoonnummer\">\n            Telefoonnummer <span class=\"mymmo-form-req\" aria-hidden=\"true\">*<\/span>        <\/label>\n\n                    <input type=\"tel\" id=\"mymmo-modal-we-nemen-contact-met-je-op-2-formulier-telefoonnummer\" name=\"telefoonnummer\" class=\"mymmo-form-input\" value=\"\" placeholder=\"\" required aria-required=\"true\" aria-describedby=\"mymmo-modal-we-nemen-contact-met-je-op-2-formulier-telefoonnummer-error\" autocomplete=\"tel\">\n\n        \n    \n    \n        <p class=\"mymmo-form-error\" id=\"mymmo-modal-we-nemen-contact-met-je-op-2-formulier-telefoonnummer-error\" role=\"alert\" data-mymmo-error hidden><\/p>\n<\/div>\n<div class=\"mymmo-form-field mymmo-form-field--full mymmo-form-field--textarea\" data-mymmo-label=\"Waar kunnen we je mee helpen?\">\n\n    \n        <label class=\"mymmo-form-label\" for=\"mymmo-modal-we-nemen-contact-met-je-op-2-formulier-waar_kunnen_we_je_mee_helpen_2\">\n            Waar kunnen we je mee helpen? <span class=\"mymmo-form-req\" aria-hidden=\"true\">*<\/span>        <\/label>\n\n        \n            <textarea id=\"mymmo-modal-we-nemen-contact-met-je-op-2-formulier-waar_kunnen_we_je_mee_helpen_2\" name=\"waar_kunnen_we_je_mee_helpen_2\" class=\"mymmo-form-input\" rows=\"5\" placeholder=\"\" required aria-required=\"true\" aria-describedby=\"mymmo-modal-we-nemen-contact-met-je-op-2-formulier-waar_kunnen_we_je_mee_helpen_2-error\"><\/textarea>\n\n        \n    \n    \n        <p class=\"mymmo-form-error\" id=\"mymmo-modal-we-nemen-contact-met-je-op-2-formulier-waar_kunnen_we_je_mee_helpen_2-error\" role=\"alert\" data-mymmo-error hidden><\/p>\n<\/div>\n            <\/div>\n\n                                    <div class=\"mymmo-form-actions\">\n                                <button type=\"submit\" class=\"mymmo-form-submit\">\n                    Stuur je vraag door                <\/button>\n            <\/div>\n                    <\/form>\n\n    <\/div>\n<div class=\"mymmo-dank\" data-mymmo-dank-scherm=\"form\" hidden>\n<img class=\"mymmo-dank-beeld lazyload\" data-mymmo-dank=\"beeld\" data-src=\"https:\/\/link.openvme.be\/assets\/brand\/relax-voor-computer.svg\" alt=\"\" decoding=\"async\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\"><h3 class=\"mymmo-dank-titel\" data-mymmo-dank=\"titel\">Bedankt!<\/h3>\n<p class=\"mymmo-dank-tekst\" data-mymmo-dank=\"tekst\">Binnen enkele ogenblikken zit de offerte in je mailbox.<\/p>\n<\/div>                                            <\/section>\n                                        <section class=\"mymmo-modal-paneel mymmo-modal-paneel--agenda\" id=\"mymmo-modal-we-nemen-contact-met-je-op-2-paneel-calendly\" role=\"tabpanel\" aria-labelledby=\"mymmo-modal-we-nemen-contact-met-je-op-2-tab-calendly\" tabindex=\"0\" data-mymmo-paneel=\"calendly\">\n\n                                                    <h3 class=\"mymmo-modal-paneel-titel\">Plan een gesprek<\/h3>\n                        \n                                                                                                            <div class=\"mymmo-modal-agenda\" data-mymmo-calendly=\"https:\/\/calendly.com\/d\/cw7t-pq4-mzg\/ontmoet-jouw-syndicoach\" data-mymmo-calendly-kleur=\"0369a1\" data-mymmo-dank=\"Je krijgt alle informatie en de link zometeen per mail toegestuurd.\">\n                                <p class=\"mymmo-modal-agenda-terugval\">\n                                    <a class=\"mymmo-modal-agenda-link\" href=\"https:\/\/calendly.com\/d\/cw7t-pq4-mzg\/ontmoet-jouw-syndicoach\" target=\"_blank\" rel=\"noopener noreferrer\">Plan een gesprek<\/a>\n                                <\/p>\n                            <\/div>\n                            <div class=\"mymmo-dank\" data-mymmo-dank-scherm=\"calendly\" hidden>\n<img class=\"mymmo-dank-beeld lazyload\" data-mymmo-dank=\"beeld\" data-src=\"https:\/\/link.openvme.be\/assets\/brand\/relax-voor-computer.svg\" alt=\"\" decoding=\"async\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\"><h3 class=\"mymmo-dank-titel\" data-mymmo-dank=\"titel\">Je afspraak staat geboekt!<\/h3>\n<p class=\"mymmo-dank-tekst\" data-mymmo-dank=\"tekst\">Je krijgt alle informatie en de link zometeen per mail toegestuurd.<\/p>\n<\/div>                                            <\/section>\n                    \n                <\/div>\n            <\/div>\n\n            <\/div>        <\/div>\n    <\/div>\n\n    <\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:50%\">\n<figure class=\"wp-block-image size-large has-custom-border\" style=\"border-top-left-radius:35px;border-top-right-radius:35px;border-bottom-left-radius:35px;border-bottom-right-radius:35px\"><img decoding=\"async\" width=\"1024\" height=\"585\" data-src=\"https:\/\/syndicoach.be\/wp-content\/uploads\/2026\/09\/cta-bottom-v2-1024x585.png\" alt=\"\" class=\"wp-image-19232 lazyload\" style=\"--smush-placeholder-width: 1024px; --smush-placeholder-aspect-ratio: 1024\/585;border-top-left-radius:35px;border-top-right-radius:35px;border-bottom-left-radius:35px;border-bottom-right-radius:35px\" data-srcset=\"https:\/\/syndicoach.be\/wp-content\/uploads\/2026\/09\/cta-bottom-v2-1024x585.png 1024w, https:\/\/syndicoach.be\/wp-content\/uploads\/2026\/09\/cta-bottom-v2-300x171.png 300w, https:\/\/syndicoach.be\/wp-content\/uploads\/2026\/09\/cta-bottom-v2-768x439.png 768w, https:\/\/syndicoach.be\/wp-content\/uploads\/2026\/09\/cta-bottom-v2-18x10.png 18w, https:\/\/syndicoach.be\/wp-content\/uploads\/2026\/09\/cta-bottom-v2.png 1380w\" data-sizes=\"(max-width: 1024px) 100vw, 1024px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" \/><\/figure>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Hoe wij het anders aanpakken Een team van gepassioneerde professionals die je persoonlijk bijstaan in het beheer van je gebouw. Een concreet plan van bij de start Je krijgt een vast aanspreekpunt, een plan van aanpak en een overzicht van waar je gebouw vandaag staat. We brengen je gebouw in kaart We komen ter plekke &hellip;<\/p>","protected":false},"author":1,"featured_media":18204,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-18192","page","type-page","status-publish","has-post-thumbnail","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Syndicoach aanpak | Hoe wij het anders doen dan de meeste syndici<\/title>\n<meta name=\"description\" content=\"Zo werkt Syndicoach: Een team van gepassioneerde professionals die je persoonlijk bijstaan in het beheer van je gebouw.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/syndicoach.be\/fr\/approche\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Syndicoach aanpak | Hoe wij het anders doen dan de meeste syndici\" \/>\n<meta property=\"og:description\" content=\"Zo werkt Syndicoach: Een team van gepassioneerde professionals die je persoonlijk bijstaan in het beheer van je gebouw.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/syndicoach.be\/fr\/approche\/\" \/>\n<meta property=\"og:site_name\" content=\"Syndicoach\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/syndicoach\" \/>\n<meta property=\"article:modified_time\" content=\"2026-09-24T09:20:37+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/syndicoach.be\/wp-content\/uploads\/2026\/09\/team-syndicoach.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1400\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Dur\u00e9e de lecture est.\" \/>\n\t<meta name=\"twitter:data1\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/syndicoach.be\\\/aanpak\\\/\",\"url\":\"https:\\\/\\\/syndicoach.be\\\/aanpak\\\/\",\"name\":\"Syndicoach aanpak | Hoe wij het anders doen dan de meeste syndici\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/syndicoach.be\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/syndicoach.be\\\/aanpak\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/syndicoach.be\\\/aanpak\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/syndicoach.be\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/team-syndicoach.png\",\"datePublished\":\"2026-09-16T12:36:26+00:00\",\"dateModified\":\"2026-09-24T09:20:37+00:00\",\"description\":\"Zo werkt Syndicoach: Een team van gepassioneerde professionals die je persoonlijk bijstaan in het beheer van je gebouw.\",\"inLanguage\":\"fr-BE\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/syndicoach.be\\\/aanpak\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-BE\",\"@id\":\"https:\\\/\\\/syndicoach.be\\\/aanpak\\\/#primaryimage\",\"url\":\"https:\\\/\\\/syndicoach.be\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/team-syndicoach.png\",\"contentUrl\":\"https:\\\/\\\/syndicoach.be\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/team-syndicoach.png\",\"width\":1400,\"height\":628,\"caption\":\"team syndicoach\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/syndicoach.be\\\/#website\",\"url\":\"https:\\\/\\\/syndicoach.be\\\/\",\"name\":\"Syndicoach\",\"description\":\"Professionele syndicus voor kleine en middelgrote gebouwen\",\"publisher\":{\"@id\":\"https:\\\/\\\/syndicoach.be\\\/#organization\"},\"alternateName\":\"Syndicoach | syndicus voor kleine en middelgrote gebouwen\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/syndicoach.be\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-BE\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/syndicoach.be\\\/#organization\",\"name\":\"Syndicoach | Professioneel gebouwbeheer\",\"url\":\"https:\\\/\\\/syndicoach.be\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-BE\",\"@id\":\"https:\\\/\\\/syndicoach.be\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/syndicoach.be\\\/wp-content\\\/uploads\\\/2026\\\/02\\\/cropped-syndicoach-brandmark.png\",\"contentUrl\":\"https:\\\/\\\/syndicoach.be\\\/wp-content\\\/uploads\\\/2026\\\/02\\\/cropped-syndicoach-brandmark.png\",\"width\":512,\"height\":512,\"caption\":\"Syndicoach | Professioneel gebouwbeheer\"},\"image\":{\"@id\":\"https:\\\/\\\/syndicoach.be\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/syndicoach\",\"https:\\\/\\\/www.instagram.com\\\/syndicoach\\\/\",\"https:\\\/\\\/www.youtube.com\\\/@syndicoach\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/syndicoach\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Approche Syndicoach | En quoi nous faisons diff\u00e9remment de la plupart des syndics","description":"Voici comment fonctionne Syndicoach : Un \u00e9quipe de professionnels passionn\u00e9s qui vous assistent personnellement dans la gestion de votre b\u00e2timent.","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:\/\/syndicoach.be\/fr\/approche\/","og_locale":"fr_FR","og_type":"article","og_title":"Syndicoach aanpak | Hoe wij het anders doen dan de meeste syndici","og_description":"Zo werkt Syndicoach: Een team van gepassioneerde professionals die je persoonlijk bijstaan in het beheer van je gebouw.","og_url":"https:\/\/syndicoach.be\/fr\/approche\/","og_site_name":"Syndicoach","article_publisher":"https:\/\/www.facebook.com\/syndicoach","article_modified_time":"2026-09-24T09:20:37+00:00","og_image":[{"width":1400,"height":628,"url":"https:\/\/syndicoach.be\/wp-content\/uploads\/2026\/09\/team-syndicoach.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_misc":{"Dur\u00e9e de lecture est.":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/syndicoach.be\/aanpak\/","url":"https:\/\/syndicoach.be\/aanpak\/","name":"Approche Syndicoach | En quoi nous faisons diff\u00e9remment de la plupart des syndics","isPartOf":{"@id":"https:\/\/syndicoach.be\/#website"},"primaryImageOfPage":{"@id":"https:\/\/syndicoach.be\/aanpak\/#primaryimage"},"image":{"@id":"https:\/\/syndicoach.be\/aanpak\/#primaryimage"},"thumbnailUrl":"https:\/\/syndicoach.be\/wp-content\/uploads\/2026\/09\/team-syndicoach.png","datePublished":"2026-09-16T12:36:26+00:00","dateModified":"2026-09-24T09:20:37+00:00","description":"Voici comment fonctionne Syndicoach : Un \u00e9quipe de professionnels passionn\u00e9s qui vous assistent personnellement dans la gestion de votre b\u00e2timent.","inLanguage":"fr-BE","potentialAction":[{"@type":"ReadAction","target":["https:\/\/syndicoach.be\/aanpak\/"]}]},{"@type":"ImageObject","inLanguage":"fr-BE","@id":"https:\/\/syndicoach.be\/aanpak\/#primaryimage","url":"https:\/\/syndicoach.be\/wp-content\/uploads\/2026\/09\/team-syndicoach.png","contentUrl":"https:\/\/syndicoach.be\/wp-content\/uploads\/2026\/09\/team-syndicoach.png","width":1400,"height":628,"caption":"team syndicoach"},{"@type":"WebSite","@id":"https:\/\/syndicoach.be\/#website","url":"https:\/\/syndicoach.be\/","name":"Syndicoach","description":"Syndic professionnel pour petits et moyens immeubles","publisher":{"@id":"https:\/\/syndicoach.be\/#organization"},"alternateName":"Syndicoach | syndicus voor kleine en middelgrote gebouwen","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/syndicoach.be\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-BE"},{"@type":"Organization","@id":"https:\/\/syndicoach.be\/#organization","name":"Syndicoach | Gestion immobili\u00e8re professionnelle","url":"https:\/\/syndicoach.be\/","logo":{"@type":"ImageObject","inLanguage":"fr-BE","@id":"https:\/\/syndicoach.be\/#\/schema\/logo\/image\/","url":"https:\/\/syndicoach.be\/wp-content\/uploads\/2026\/02\/cropped-syndicoach-brandmark.png","contentUrl":"https:\/\/syndicoach.be\/wp-content\/uploads\/2026\/02\/cropped-syndicoach-brandmark.png","width":512,"height":512,"caption":"Syndicoach | Professioneel gebouwbeheer"},"image":{"@id":"https:\/\/syndicoach.be\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/syndicoach","https:\/\/www.instagram.com\/syndicoach\/","https:\/\/www.youtube.com\/@syndicoach","https:\/\/www.linkedin.com\/company\/syndicoach"]}]}},"_links":{"self":[{"href":"https:\/\/syndicoach.be\/fr\/wp-json\/wp\/v2\/pages\/18192","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/syndicoach.be\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/syndicoach.be\/fr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/syndicoach.be\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/syndicoach.be\/fr\/wp-json\/wp\/v2\/comments?post=18192"}],"version-history":[{"count":48,"href":"https:\/\/syndicoach.be\/fr\/wp-json\/wp\/v2\/pages\/18192\/revisions"}],"predecessor-version":[{"id":18838,"href":"https:\/\/syndicoach.be\/fr\/wp-json\/wp\/v2\/pages\/18192\/revisions\/18838"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/syndicoach.be\/fr\/wp-json\/wp\/v2\/media\/18204"}],"wp:attachment":[{"href":"https:\/\/syndicoach.be\/fr\/wp-json\/wp\/v2\/media?parent=18192"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}