{"id":16771,"date":"2026-05-12T09:38:38","date_gmt":"2026-05-12T09:38:38","guid":{"rendered":"https:\/\/syndicoach.be\/?page_id=16771"},"modified":"2026-09-24T16:14:30","modified_gmt":"2026-09-24T15:14:30","slug":"syndic-bruxelles","status":"publish","type":"page","link":"https:\/\/syndicoach.be\/fr\/syndicus-brussel\/","title":{"rendered":"Syndic Bruxelles : gestion immobili\u00e8re bilingue sur mesure pour votre copropri\u00e9t\u00e9"},"content":{"rendered":"<div class=\"wp-block-group alignfull has-neutral-50-background-color has-background is-layout-constrained wp-container-core-group-is-layout-e9d550f2 wp-block-group-is-layout-constrained\" style=\"margin-top:-20px;padding:var(--wp--preset--spacing--md)\">\n<div class=\"wp-block-columns 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 is-style-default 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--lg);padding-right:var(--wp--preset--spacing--lg);padding-bottom:var(--wp--preset--spacing--lg);padding-left:var(--wp--preset--spacing--lg);box-shadow:var(--wp--preset--shadow--lg);flex-basis:60%\">\n<figure class=\"wp-block-image size-full has-custom-border\" style=\"border-top-left-radius:15px;border-top-right-radius:15px;border-bottom-left-radius:15px;border-bottom-right-radius:15px\"><img decoding=\"async\" width=\"2560\" height=\"1440\" data-src=\"https:\/\/syndicoach.be\/wp-content\/uploads\/2026\/05\/syndicus-brussel-gebouw-syndicoach-edited-scaled.jpg\" alt=\"Syndicus Brussel\" class=\"wp-image-16773 lazyload\" style=\"--smush-placeholder-width: 2560px; --smush-placeholder-aspect-ratio: 2560\/1440;border-top-left-radius:15px;border-top-right-radius:15px;border-bottom-left-radius:15px;border-bottom-right-radius:15px\" data-srcset=\"https:\/\/syndicoach.be\/wp-content\/uploads\/2026\/05\/syndicus-brussel-gebouw-syndicoach-edited-scaled.jpg 2560w, https:\/\/syndicoach.be\/wp-content\/uploads\/2026\/05\/syndicus-brussel-gebouw-syndicoach-edited-300x169.jpg 300w, https:\/\/syndicoach.be\/wp-content\/uploads\/2026\/05\/syndicus-brussel-gebouw-syndicoach-edited-1024x576.jpg 1024w, https:\/\/syndicoach.be\/wp-content\/uploads\/2026\/05\/syndicus-brussel-gebouw-syndicoach-edited-768x432.jpg 768w, https:\/\/syndicoach.be\/wp-content\/uploads\/2026\/05\/syndicus-brussel-gebouw-syndicoach-edited-1536x864.jpg 1536w, https:\/\/syndicoach.be\/wp-content\/uploads\/2026\/05\/syndicus-brussel-gebouw-syndicoach-edited-2048x1152.jpg 2048w, https:\/\/syndicoach.be\/wp-content\/uploads\/2026\/05\/syndicus-brussel-gebouw-syndicoach-edited-18x10.jpg 18w\" data-sizes=\"(max-width: 2560px) 100vw, 2560px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" \/><\/figure>\n\n\n<p class=\"wp-block-paragraph wp-block-paragraph\" style=\"\">Een <strong>syndicus in Brussel <\/strong>staat voor andere uitdagingen dan in Antwerpen of Gent: een ouder gebouwenpark, tweetalige vergaderingen, en de strenge Brusselse EPB-deadline van 2033.<\/p>\n\n\n<p class=\"wp-block-paragraph wp-block-paragraph\" style=\"\"><strong><a href=\"https:\/\/syndicoach.be\/\" type=\"link\" id=\"https:\/\/syndicoach.be\/\">Syndicoach <\/a><\/strong>combineert een lokale BIV-erkende coach met het <a href=\"https:\/\/openvme.be\/\" type=\"link\" id=\"https:\/\/openvme.be\/\">OpenVME-platform<\/a>, zodat jouw VME zonder kantoorkosten professioneel beheerd wordt. Tweetalig NL en FR, met directe toegang tot Renolution-premies en EPB-begeleiding via Leefmilieu Brussel.<\/p>\n\n\n\n<div class=\"wp-block-buttons 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 is-style-outline is-style-outline--1\" style=\"\"><a class=\"wp-block-button__link has-text-align-center wp-element-button\" href=\"#syndicus\" style=\"\">Ontmoet de Syndicoaches<\/a><\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-style-default 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--lg);padding-right:var(--wp--preset--spacing--lg);padding-bottom:var(--wp--preset--spacing--md);padding-left:var(--wp--preset--spacing--lg);box-shadow:var(--wp--preset--shadow--lg)\">\n<h2 id=\"vraag-gratis-je-offerte-aan\" class=\"wp-block-heading\"><strong>Vraag gratis je offerte aan<\/strong><\/h2>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" style=\"margin-top:var(--wp--preset--spacing--xs);margin-bottom:var(--wp--preset--spacing--xs)\">\n\n\n<div class=\"mymmo-modal-launch mymmo-modal-launch--stil mymmo-callout-wikkel\" id=\"mymmo-modal-we-nemen-contact-met-je-op-knop\" lang=\"nl\" data-mymmo-stappen data-mymmo-start=\"0\" data-mymmo-slug=\"we-nemen-contact-met-je-op\" 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\":\"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-dok-stap=\"0\" 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    <script>\nwindow.MymmoStappen=window.MymmoStappen||{_rij:[],stap:function(s,f){this._rij.push([s,f]);}};\n<\/script>\n\n    <div class=\"mymmo-ingang-kaal\">                <div class=\"mymmo-callout-dok\" data-mymmo-dok>\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>                    <\/div>\n\n        <div class=\"mymmo-callout-actie\">\n                        <a class=\"mymmo-callout-knop\" href=\"#mymmo-modal-we-nemen-contact-met-je-op\" data-mymmo-modal-open=\"mymmo-modal-we-nemen-contact-met-je-op\" data-mymmo-callout-knop aria-haspopup=\"dialog\" aria-expanded=\"false\" aria-controls=\"mymmo-modal-we-nemen-contact-met-je-op\">\n                <span class=\"mymmo-callout-knop-tekst\">vraag je offerte aan<\/span>\n                <svg class=\"mymmo-callout-pijl\" viewbox=\"0 0 20 20\" width=\"16\" height=\"16\" aria-hidden=\"true\" focusable=\"false\">\n                    <path d=\"M3 10h13M11 5l5 5-5 5\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path>\n                <\/svg>\n            <\/a>\n        <\/div>\n<\/div>\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>\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 is-active\" 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=\"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-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\" 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=\"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-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                                                    <div class=\"mymmo-stappen\" data-mymmo-stappen-inhoud 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-modal-we-nemen-contact-met-je-op-knop [data-mymmo-stap] { display: block !important; }\n            #mymmo-modal-we-nemen-contact-met-je-op-knop [data-mymmo-stap].mymmo-stap--html { display: none !important; }\n            #mymmo-modal-we-nemen-contact-met-je-op-knop .mymmo-stappen-teller,\n            #mymmo-modal-we-nemen-contact-met-je-op-knop .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                                    <span class=\"mymmo-stap-anker\" data-mymmo-thuis hidden aria-hidden=\"true\">&nbsp;<\/span>\n                                <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\/16771\">            <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\/syndicus-brussel\/\">\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=\"1791386976.06bab2ce3ccedada19abea6c000463ef\">\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\/16771\">            <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\/syndicus-brussel\/\">\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=\"1791386976.06bab2ce3ccedada19abea6c000463ef\">\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\" 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\n\n<ul class=\"wp-block-list wp-block-list is-style-check-circle\">\n<li class=\"has-small-font-size\">BIV-erkende professionals<\/li>\n\n\n\n<li class=\"has-small-font-size\">Actief in heel Vlaanderen<\/li>\n\n\n\n<li class=\"has-small-font-size\">Reactie binnen 1 werkdag<\/li>\n<\/ul>\n<\/div>\n<\/div>\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-group alignwide is-style-default is-layout-flow wp-block-group-is-layout-flow\" id=\"syndicus\" style=\"border-radius:15px;margin:var(--wp--preset--spacing--lg) 0\">\n<div id=\"hoe\" class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\" style=\"margin:var(--wp--preset--spacing--xl) 0\">\n<h2 id=\"vraag-vrijblijvend-je-offerte-aan\" class=\"wp-block-heading has-text-align-center\">Vraag vrijblijvend je offerte aan<\/h2>\n\n\n\n\n<p class=\"wp-block-paragraph has-text-align-center wp-block-paragraph\" style=\"\">Syndicoach is geen klassiek syndicuskantoor. Wij verbinden mede-eigenaars in Belgi&euml; met erkende, lokale syndicusprofessionals en begeleiden de samenwerking van begin tot einde.<\/p>\n<\/div>\n\n\n<div class=\"wp-block-group is-layout-flow wp-block-group-is-layout-flow\" style=\"margin:var(--wp--preset--spacing--md) 0 var(--wp--preset--spacing--xxl) 0;padding:var(--wp--preset--spacing--md)\">\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-6b1d7e9f wp-block-columns-is-layout-flex is-stacked-on-mobile\" data-columns=\"2\" style=\"--columns:2\">\n<div class=\"wp-block-column has-neutral-100-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<p class=\"wp-block-paragraph has-neutral-700-color has-text-color has-link-color has-24-font-size wp-elements-1 wp-block-paragraph\" style=\"\">Klassiek syndicusmodel<\/p>\n\n\n<ul class=\"wp-block-list wp-block-list is-style-dash\">\n<li class=\"has-neutral-500-color has-text-color has-link-color wp-elements-2\">Vaste prijs per kavel<\/li>\n\n\n\n<li class=\"has-neutral-500-color has-text-color has-link-color wp-elements-3\">Geen rekening met complexiteit<\/li>\n\n\n\n<li class=\"has-neutral-500-color has-text-color has-link-color wp-elements-4\">Vaak slechte communicatie<\/li>\n\n\n\n<li class=\"has-neutral-500-color has-text-color has-link-color wp-elements-5\">Weinig transparantie<\/li>\n\n\n\n<li class=\"has-neutral-500-color has-text-color has-link-color wp-elements-6\">Jaarcontract met weinig flexibiliteit<\/li>\n<\/ul>\n<\/div>\n\n\n\n<div class=\"wp-block-column has-success-100-background-color has-background is-layout-flow wp-block-column-is-layout-flow\" style=\"border-style:none;border-width:0px;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<p class=\"wp-block-paragraph has-24-font-size wp-block-paragraph\" style=\"\"><strong>&#9989; Het syndicoach-model<\/strong><\/p>\n\n\n<ul class=\"wp-block-list wp-block-list is-style-check-circle\">\n<li>Betalen voor effectieve inzet<\/li>\n\n\n\n<li>Aangepast aan werkelijke noden<\/li>\n\n\n\n<li>Transparant en meetbaar<\/li>\n\n\n\n<li>Duidelijke communicatie<\/li>\n\n\n\n<li>Flexibel aanpasbaar per AV<\/li>\n<\/ul>\n<\/div>\n<\/div>\n\n\n<figure class=\"wp-block-image size-full is-resized has-display-none-mobile\" style=\"margin:-240px 150px 0 0\"><img decoding=\"async\" width=\"512\" height=\"330\" data-src=\"https:\/\/syndicoach.be\/wp-content\/uploads\/2026\/02\/syndicus-veranderen-1.png\" alt=\"\" class=\"wp-image-15427 lazyload\" style=\"--smush-placeholder-width: 512px; --smush-placeholder-aspect-ratio: 512\/330;width:240px\" data-srcset=\"https:\/\/syndicoach.be\/wp-content\/uploads\/2026\/02\/syndicus-veranderen-1.png 512w, https:\/\/syndicoach.be\/wp-content\/uploads\/2026\/02\/syndicus-veranderen-1-300x193.png 300w\" data-sizes=\"(max-width: 512px) 100vw, 512px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" \/><\/figure>\n<\/div>\n<\/div>\n<\/div>\n\n\n<div class=\"mymmo-modal-launch mymmo-modal-launch--stil mymmo-callout-wikkel\"\n     id=\"mymmo-modal-we-nemen-contact-met-je-op-2-knop\"\n     lang=\"nl\" data-mymmo-stappen data-mymmo-start=\"0\" data-mymmo-slug=\"we-nemen-contact-met-je-op\" data-mymmo-teksten=\"{&quot;required&quot;:&quot;{label} is verplicht.&quot;,&quot;email&quot;:&quot;{label} is geen geldig e-mailadres.&quot;,&quot;number&quot;:&quot;{label} moet een getal zijn.&quot;,&quot;date&quot;:&quot;{label} moet een datum zijn (jjjj-mm-dd).&quot;,&quot;postcode&quot;:&quot;{label} is geen geldige postcode.&quot;,&quot;postcode_unknown&quot;:&quot;We kennen postcode {value} niet. Kijk ze even na.&quot;,&quot;city_other&quot;:&quot;Andere plaats\\u2026&quot;,&quot;unknown_choice&quot;:&quot;{label}: onbekende keuze \\&quot;{value}\\&quot;.&quot;,&quot;minlength&quot;:&quot;{label} moet minstens {n} tekens bevatten.&quot;,&quot;maxlength&quot;:&quot;{label} mag hoogstens {n} tekens bevatten.&quot;,&quot;min&quot;:&quot;{label} moet minstens {n} zijn.&quot;,&quot;max&quot;:&quot;{label} mag hoogstens {n} zijn.&quot;,&quot;choose&quot;:&quot;Maak een keuze&quot;,&quot;back&quot;:&quot;Vorige&quot;,&quot;next&quot;:&quot;Volgende&quot;,&quot;step_of&quot;:&quot;Stap {n} van {total}&quot;,&quot;submitting&quot;:&quot;Bezig met versturen\\u2026&quot;,&quot;busy&quot;:&quot;Even geduld&quot;,&quot;busy_offerte&quot;:&quot;We maken je offerte op&quot;,&quot;busy_academy&quot;:&quot;We zetten je cursus klaar&quot;,&quot;check_fields&quot;:&quot;Kijk de gemarkeerde velden na.&quot;,&quot;expired&quot;:&quot;De pagina was verlopen. Probeer het opnieuw.&quot;,&quot;stale_page&quot;:&quot;Deze pagina stond te lang open. Ververs ze en probeer opnieuw.&quot;,&quot;rejected&quot;:&quot;De inzending kon niet verwerkt worden.&quot;,&quot;bot_check&quot;:&quot;We konden niet nagaan of je geen robot bent. Probeer het opnieuw.&quot;,&quot;unavailable&quot;:&quot;Dit formulier is momenteel niet beschikbaar.&quot;,&quot;send_failed&quot;:&quot;We konden je bericht niet versturen. Probeer het zo meteen opnieuw.&quot;}\" data-mymmo-dok-stap=\"0\" 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    <section class=\"mymmo-callout mymmo-callout--kolommen mymmo-callout--zonder-beeld\" style=\"--mf-callout-radius:35px;--mf-callout-pad:20px 62px;--mf-callout-pad-mobiel:20px 22px;--mf-callout-tekst-pad-mobiel:20px 16px 0px;--mf-callout-ruimte:0px;--mf-callout-verdeling:minmax(0, 1fr) minmax(0, 2fr)\">\n    <div class=\"mymmo-callout-raster\">\n\n        <div class=\"mymmo-callout-tekst\">\n                    <div class=\"mymmo-callout-kop\">\n                                                        <h2 class=\"mymmo-callout-titel mymmo-callout-titel--lang\">Eindelijk gebouwbeheer gemaakt voor jou. Vraag hier je offerte aan.<\/h2>\n                                            <h2 class=\"mymmo-callout-titel mymmo-callout-titel--kort\">Vraag hier je offerte aan.<\/h2>\n                                                                        <p class=\"mymmo-callout-uitleg\">Beantwoord een paar korte vragen over je gebouw en ontdek je offerte op maat.<\/p>\n                            <\/div>\n        \n            <\/div>\n\n        <div class=\"mymmo-callout-uitgelicht\">\n                        <div class=\"mymmo-callout-dok\" data-mymmo-dok>\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><div class=\"mymmo-stap-inhoud\" data-mymmo-stap-inhoud><!--\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\"\n     data-basis=\"https:\/\/link.openvme.be\/assets\/syndicoach-calculator\/stap-1-gebouwgrootte\/\"\n     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\"\n             stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" focusable=\"false\">\n          <path d=\"M20 6 9 17l-5-5\"\/>\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\"\n             data-src=\"https:\/\/link.openvme.be\/assets\/syndicoach-calculator\/stap-1-gebouwgrootte\/app_level2.svg\"\n             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\"\n             data-rol=\"range\"\n             data-mymmo-waarde=\"aantal_kavels\"\n             aria-label=\"Aantal kavels\">\n      <div class=\"sc-ends\"><span>2<\/span><span>60+<\/span><\/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\"\/><\/svg>';\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><div class=\"mymmo-stap-nav\"><button type=\"button\" class=\"mymmo-stap-knop mymmo-stap-knop--verder\" data-mymmo-volgende>Volgende<\/button><\/div><\/section>                    <\/div>\n\n        <div class=\"mymmo-callout-actie\">\n                        <a class=\"mymmo-callout-knop\"\n               href=\"#mymmo-modal-we-nemen-contact-met-je-op-2\"\n               data-mymmo-modal-open=\"mymmo-modal-we-nemen-contact-met-je-op-2\"\n               data-mymmo-callout-knop\n               aria-haspopup=\"dialog\"\n               aria-expanded=\"false\"\n               aria-controls=\"mymmo-modal-we-nemen-contact-met-je-op-2\">\n                <span class=\"mymmo-callout-knop-tekst\">vraag je offerte aan<\/span>\n                <svg class=\"mymmo-callout-pijl\" viewBox=\"0 0 20 20\" width=\"16\" height=\"16\"\n                     aria-hidden=\"true\" focusable=\"false\">\n                    <path d=\"M3 10h13M11 5l5 5-5 5\" fill=\"none\" stroke=\"currentColor\"\n                          stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path>\n                <\/svg>\n            <\/a>\n        <\/div>\n    <\/div>\n\n  <\/div>\n<\/section>\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\"\n         id=\"mymmo-modal-we-nemen-contact-met-je-op-2\"\n         data-mymmo-modal>\n\n                        <a class=\"mymmo-modal-backdrop\"\n           href=\"#mymmo-modal-we-nemen-contact-met-je-op-2-knop\"\n           tabindex=\"-1\"\n           aria-hidden=\"true\"\n           data-mymmo-modal-close><\/a>\n        \n        <div class=\"mymmo-modal-panel mymmo-modal-panel--zijkolom mymmo-modal-panel--breed\"\n             role=\"dialog\"\n             aria-modal=\"true\"\n             aria-labelledby=\"mymmo-modal-we-nemen-contact-met-je-op-2-titel\">\n\n                        <a class=\"mymmo-modal-close\"\n               href=\"#mymmo-modal-we-nemen-contact-met-je-op-2-knop\"\n               data-mymmo-modal-close\n               aria-label=\"Sluiten\"\n               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\"\n                                role=\"tab\"\n                                class=\"mymmo-modal-tab mymmo-modal-tab--kaal is-active\"\n                                id=\"mymmo-modal-we-nemen-contact-met-je-op-2-tab-extra\"\n                                aria-controls=\"mymmo-modal-we-nemen-contact-met-je-op-2-paneel-extra\"\n                                aria-selected=\"true\"\n                                tabindex=\"0\"\n                                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\"\n                                role=\"tab\"\n                                class=\"mymmo-modal-tab mymmo-modal-tab--kaal\"\n                                id=\"mymmo-modal-we-nemen-contact-met-je-op-2-tab-form\"\n                                aria-controls=\"mymmo-modal-we-nemen-contact-met-je-op-2-paneel-form\"\n                                aria-selected=\"false\"\n                                tabindex=\"-1\"\n                                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\"\n                                role=\"tab\"\n                                class=\"mymmo-modal-tab mymmo-modal-tab--kaal\"\n                                id=\"mymmo-modal-we-nemen-contact-met-je-op-2-tab-calendly\"\n                                aria-controls=\"mymmo-modal-we-nemen-contact-met-je-op-2-paneel-calendly\"\n                                aria-selected=\"false\"\n                                tabindex=\"-1\"\n                                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\"\n                                     src=\"https:\/\/link.openvme.be\/assets\/brand\/clover.svg\"\n                                     alt=\"\"\n                                     aria-hidden=\"true\"\n                                     data-no-lazy=\"1\"\n                                     data-skip-lazy=\"1\"\n                                     decoding=\"async\">\n                            <\/span>\n                                                                                                    <span class=\"mymmo-modal-beeld is-actief\"\n                                  data-mymmo-beeld=\"form\">\n                                                                <span class=\"mymmo-modal-stand\" data-mymmo-greep=\"form\">\n                                    <img class=\"mymmo-modal-tekening skip-lazy no-lazyload\"\n                                         src=\"https:\/\/link.openvme.be\/assets\/uploads\/persoon-in-zenhouding-aan-computer-blue.svg\"\n                                         alt=\"\"\n                                         data-no-lazy=\"1\"\n                                         data-skip-lazy=\"1\"\n                                         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\"\n                     data-mymmo-modal-body>\n\n                                        <section class=\"mymmo-modal-paneel is-actief\"\n                             id=\"mymmo-modal-we-nemen-contact-met-je-op-2-paneel-extra\"\n                             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\" data-mymmo-stappen-inhoud 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-modal-we-nemen-contact-met-je-op-2-knop [data-mymmo-stap] { display: block !important; }\n            #mymmo-modal-we-nemen-contact-met-je-op-2-knop [data-mymmo-stap].mymmo-stap--html { display: none !important; }\n            #mymmo-modal-we-nemen-contact-met-je-op-2-knop .mymmo-stappen-teller,\n            #mymmo-modal-we-nemen-contact-met-je-op-2-knop .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                                    <span class=\"mymmo-stap-anker\" data-mymmo-thuis hidden aria-hidden=\"true\">&#160;<\/span>\n                                <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><p class=\"mymmo-stap-tekst\" data-mymmo-kop=\"sub\">Duid aan wat van toepassing is.<\/p><div class=\"mymmo-stap-inhoud\" data-mymmo-stap-inhoud><!--\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 \u00e9\u00e9n 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\/* \u2500\u2500 Zelf aanvullen \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\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\"\n             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><div class=\"mymmo-stap-nav\"><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><\/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><p class=\"mymmo-stap-tekst\" data-mymmo-kop=\"sub\">Duid aan wat meespeelt. Zo weten we meteen waar we jullie kunnen ondersteunen.<\/p><div class=\"mymmo-stap-inhoud\" data-mymmo-stap-inhoud><!--\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><div class=\"mymmo-stap-nav\"><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><\/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><p class=\"mymmo-stap-tekst\" data-mymmo-kop=\"sub\">Een schatting volstaat. Schuif de lijn tot het kader ongeveer goed staat.<\/p><div class=\"mymmo-stap-inhoud\" data-mymmo-stap-inhoud><!--\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\"><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><\/div>\n        <span class=\"mf-av-tot\">en<\/span>\n        <div class=\"mf-av-blad mf-av-blad--tot\" data-rol=\"blad-tot\"><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><\/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><div class=\"mymmo-stap-nav\"><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><\/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><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><div class=\"mymmo-form-wrap\"\n     id=\"mymmo-modal-we-nemen-contact-met-je-op-2-extra\"\n     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\"\n              method=\"post\"\n              action=\"https:\/\/syndicoach.be\/wp-admin\/admin-post.php\"\n              data-mymmo-messages=\"{&quot;required&quot;:&quot;{label} is verplicht.&quot;,&quot;email&quot;:&quot;{label} is geen geldig e-mailadres.&quot;,&quot;number&quot;:&quot;{label} moet een getal zijn.&quot;,&quot;date&quot;:&quot;{label} moet een datum zijn (jjjj-mm-dd).&quot;,&quot;postcode&quot;:&quot;{label} is geen geldige postcode.&quot;,&quot;postcode_unknown&quot;:&quot;We kennen postcode {value} niet. Kijk ze even na.&quot;,&quot;city_other&quot;:&quot;Andere plaats\\u2026&quot;,&quot;unknown_choice&quot;:&quot;{label}: onbekende keuze \\&quot;{value}\\&quot;.&quot;,&quot;minlength&quot;:&quot;{label} moet minstens {n} tekens bevatten.&quot;,&quot;maxlength&quot;:&quot;{label} mag hoogstens {n} tekens bevatten.&quot;,&quot;min&quot;:&quot;{label} moet minstens {n} zijn.&quot;,&quot;max&quot;:&quot;{label} mag hoogstens {n} zijn.&quot;,&quot;choose&quot;:&quot;Maak een keuze&quot;,&quot;back&quot;:&quot;Vorige&quot;,&quot;next&quot;:&quot;Volgende&quot;,&quot;step_of&quot;:&quot;Stap {n} van {total}&quot;,&quot;submitting&quot;:&quot;Bezig met versturen\\u2026&quot;,&quot;busy&quot;:&quot;We maken je offerte op&quot;,&quot;busy_offerte&quot;:&quot;We maken je offerte op&quot;,&quot;busy_academy&quot;:&quot;We zetten je cursus klaar&quot;,&quot;check_fields&quot;:&quot;Kijk de gemarkeerde velden na.&quot;,&quot;expired&quot;:&quot;De pagina was verlopen. Probeer het opnieuw.&quot;,&quot;stale_page&quot;:&quot;Deze pagina stond te lang open. Ververs ze en probeer opnieuw.&quot;,&quot;rejected&quot;:&quot;De inzending kon niet verwerkt worden.&quot;,&quot;bot_check&quot;:&quot;We konden niet nagaan of je geen robot bent. Probeer het opnieuw.&quot;,&quot;unavailable&quot;:&quot;Dit formulier is momenteel niet beschikbaar.&quot;,&quot;send_failed&quot;:&quot;We konden je bericht niet versturen. Probeer het zo meteen opnieuw.&quot;}\" 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\/16771\" \/>            <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\/syndicus-brussel\/\">\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=\"1791386976.06bab2ce3ccedada19abea6c000463ef\">\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\"\n                       id=\"mymmo-modal-we-nemen-contact-met-je-op-2-extra-hp\"\n                       name=\"mymmo_forms_website\"\n                       value=\"\"\n                       tabindex=\"-1\"\n                       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\"\n     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\"\n                   id=\"mymmo-modal-we-nemen-contact-met-je-op-2-extra-naam\"\n                   name=\"naam\"\n                   class=\"mymmo-form-input\"\n                   value=\"\"\n                   placeholder=\"\"\n                    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\"\n     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\"\n                   id=\"mymmo-modal-we-nemen-contact-met-je-op-2-extra-e_mailadres\"\n                   name=\"e_mailadres\"\n                   class=\"mymmo-form-input\"\n                   value=\"\"\n                   placeholder=\"\"\n                    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\"\n     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\"\n                   id=\"mymmo-modal-we-nemen-contact-met-je-op-2-extra-tel\"\n                   name=\"tel\"\n                   class=\"mymmo-form-input\"\n                   value=\"\"\n                   placeholder=\"\"\n                    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\"\n     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\"\n                   id=\"mymmo-modal-we-nemen-contact-met-je-op-2-extra-adres_van_het_gebouw\"\n                   name=\"adres_van_het_gebouw\"\n                   class=\"mymmo-form-input\"\n                   value=\"\"\n                   placeholder=\"\"\n                    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\"\n     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\"\n                   id=\"mymmo-modal-we-nemen-contact-met-je-op-2-extra-nummer\"\n                   name=\"nummer\"\n                   class=\"mymmo-form-input\"\n                   value=\"\"\n                   placeholder=\"\"\n                    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\"\n     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\"\n                   id=\"mymmo-modal-we-nemen-contact-met-je-op-2-extra-zip\"\n                   name=\"zip\"\n                   class=\"mymmo-form-input\"\n                   value=\"\"\n                   placeholder=\"\"\n                   autocomplete=\"postal-code\"\n                   inputmode=\"numeric\"\n                   autocapitalize=\"characters\"\n                   spellcheck=\"false\"\n                   maxlength=\"12\"\n                   data-mymmo-postcode=\"BE\"\n                   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\"\n     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\"\n                   id=\"mymmo-modal-we-nemen-contact-met-je-op-2-extra-gemeente\"\n                   name=\"gemeente\"\n                   class=\"mymmo-form-input\"\n                   value=\"\"\n                   placeholder=\"\"\n                   autocomplete=\"address-level2\"\n                   data-mymmo-gemeente-van=\"zip\"\n                    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\"\n                    class=\"mymmo-form-input\"\n                    data-mymmo-gemeente-keuze\n                    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><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><p class=\"mymmo-dank-tekst\" data-mymmo-dank=\"tekst\">We sturen je meteen de offerte op.<\/p><\/div>                                            <\/section>\n                                        <section class=\"mymmo-modal-paneel\"\n                             id=\"mymmo-modal-we-nemen-contact-met-je-op-2-paneel-form\"\n                             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\"\n     id=\"mymmo-modal-we-nemen-contact-met-je-op-2-formulier\"\n     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><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\"\n              method=\"post\"\n              action=\"https:\/\/syndicoach.be\/wp-admin\/admin-post.php\"\n              data-mymmo-messages=\"{&quot;required&quot;:&quot;{label} is verplicht.&quot;,&quot;email&quot;:&quot;{label} is geen geldig e-mailadres.&quot;,&quot;number&quot;:&quot;{label} moet een getal zijn.&quot;,&quot;date&quot;:&quot;{label} moet een datum zijn (jjjj-mm-dd).&quot;,&quot;postcode&quot;:&quot;{label} is geen geldige postcode.&quot;,&quot;postcode_unknown&quot;:&quot;We kennen postcode {value} niet. Kijk ze even na.&quot;,&quot;city_other&quot;:&quot;Andere plaats\\u2026&quot;,&quot;unknown_choice&quot;:&quot;{label}: onbekende keuze \\&quot;{value}\\&quot;.&quot;,&quot;minlength&quot;:&quot;{label} moet minstens {n} tekens bevatten.&quot;,&quot;maxlength&quot;:&quot;{label} mag hoogstens {n} tekens bevatten.&quot;,&quot;min&quot;:&quot;{label} moet minstens {n} zijn.&quot;,&quot;max&quot;:&quot;{label} mag hoogstens {n} zijn.&quot;,&quot;choose&quot;:&quot;Maak een keuze&quot;,&quot;back&quot;:&quot;Vorige&quot;,&quot;next&quot;:&quot;Volgende&quot;,&quot;step_of&quot;:&quot;Stap {n} van {total}&quot;,&quot;submitting&quot;:&quot;Bezig met versturen\\u2026&quot;,&quot;busy&quot;:&quot;Even geduld&quot;,&quot;busy_offerte&quot;:&quot;We maken je offerte op&quot;,&quot;busy_academy&quot;:&quot;We zetten je cursus klaar&quot;,&quot;check_fields&quot;:&quot;Kijk de gemarkeerde velden na.&quot;,&quot;expired&quot;:&quot;De pagina was verlopen. Probeer het opnieuw.&quot;,&quot;stale_page&quot;:&quot;Deze pagina stond te lang open. Ververs ze en probeer opnieuw.&quot;,&quot;rejected&quot;:&quot;De inzending kon niet verwerkt worden.&quot;,&quot;bot_check&quot;:&quot;We konden niet nagaan of je geen robot bent. Probeer het opnieuw.&quot;,&quot;unavailable&quot;:&quot;Dit formulier is momenteel niet beschikbaar.&quot;,&quot;send_failed&quot;:&quot;We konden je bericht niet versturen. Probeer het zo meteen opnieuw.&quot;}\" 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\/16771\" \/>            <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\/syndicus-brussel\/\">\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=\"1791386976.06bab2ce3ccedada19abea6c000463ef\">\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\"\n                       id=\"mymmo-modal-we-nemen-contact-met-je-op-2-formulier-hp\"\n                       name=\"mymmo_forms_website\"\n                       value=\"\"\n                       tabindex=\"-1\"\n                       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\"\n     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\"\n                   id=\"mymmo-modal-we-nemen-contact-met-je-op-2-formulier-naam\"\n                   name=\"naam\"\n                   class=\"mymmo-form-input\"\n                   value=\"\"\n                   placeholder=\"\"\n                    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\"\n     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\"\n                   id=\"mymmo-modal-we-nemen-contact-met-je-op-2-formulier-e_mailadres\"\n                   name=\"e_mailadres\"\n                   class=\"mymmo-form-input\"\n                   value=\"\"\n                   placeholder=\"\"\n                    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\"\n     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\"\n                   id=\"mymmo-modal-we-nemen-contact-met-je-op-2-formulier-telefoonnummer\"\n                   name=\"telefoonnummer\"\n                   class=\"mymmo-form-input\"\n                   value=\"\"\n                   placeholder=\"\"\n                    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\"\n     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\"\n                      name=\"waar_kunnen_we_je_mee_helpen_2\"\n                      class=\"mymmo-form-input\"\n                      rows=\"5\"\n                      placeholder=\"\"\n                       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><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><p class=\"mymmo-dank-tekst\" data-mymmo-dank=\"tekst\">Binnen enkele ogenblikken zit de offerte in je mailbox.<\/p><\/div>                                            <\/section>\n                                        <section class=\"mymmo-modal-paneel mymmo-modal-paneel--agenda\"\n                             id=\"mymmo-modal-we-nemen-contact-met-je-op-2-paneel-calendly\"\n                             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\"\n                                 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\"\n                                       href=\"https:\/\/calendly.com\/d\/cw7t-pq4-mzg\/ontmoet-jouw-syndicoach\"\n                                       target=\"_blank\"\n                                       rel=\"noopener noreferrer\">Plan een gesprek<\/a>\n                                <\/p>\n                            <\/div>\n                            <div class=\"mymmo-dank\" data-mymmo-dank-scherm=\"calendly\" hidden><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><p class=\"mymmo-dank-tekst\" data-mymmo-dank=\"tekst\">Je krijgt alle informatie en de link zometeen per mail toegestuurd.<\/p><\/div>                                            <\/section>\n                    \n                <\/div>\n            <\/div>\n\n            <\/div>        <\/div>\n    <\/div>\n\n    <\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" style=\"margin-top:var(--wp--preset--spacing--xxl);margin-bottom:var(--wp--preset--spacing--xxl)\"\/>\n\n\n<div class=\"wp-block-group has-success-100-background-color has-background is-layout-constrained wp-container-core-group-is-layout-cd918a7c wp-block-group-is-layout-constrained\" style=\"border-top-left-radius:20px;border-top-right-radius:20px;border-bottom-left-radius:20px;border-bottom-right-radius:20px;margin:var(--wp--preset--spacing--lg) 0;padding:var(--wp--preset--spacing--md) var(--wp--preset--spacing--lg)\">\n<div role=\"navigation\" aria-label=\"Table of Contents\" class=\"simpletoc alignwide wp-block-simpletoc-toc\">\n<h2 class=\"simpletoc-title alignwide\">Alles over syndicus beheer in Brussel<\/h2>\n<ul class=\"simpletoc-list alignwide\">\n<li>\n<a href=\"#vraag-gratis-je-offerte-aan\">Vraag gratis je offerte aan<\/a>\n<\/li>\n<li>\n<a href=\"#vraag-vrijblijvend-je-offerte-aan\">Vraag vrijblijvend je offerte aan<\/a>\n<\/li>\n<li>\n<a href=\"#wat-doet-een-syndicus-brussel\">Wat doet een syndicus Brussel?<\/a>\n<\/li>\n<li>\n<a href=\"#cijfers-over-het-brusselse-vastgoedlandschap\">Cijfers over het Brusselse vastgoedlandschap<\/a>\n<\/li>\n<li>\n<a href=\"#wat-maakt-een-syndicus-in-brussel-anders-dan-elders-in-belgie\">Wat maakt een syndicus in Brussel anders dan elders in Belgi&euml;?<\/a>\n<\/li>\n<li>\n<a href=\"#de-syndicoachaanpak-coaching-in-plaats-van-kantoorbeheer\">De Syndicoach-aanpak: coaching in plaats van kantoorbeheer<\/a>\n<\/li>\n<li>\n<a href=\"#syndicus-brussel-in-alle-19-gemeenten\">Syndicus Brussel in alle 19 gemeenten<\/a>\n<\/li>\n<li>\n<a href=\"#wat-kost-een-syndicus-brussel\">Wat kost een syndicus Brussel?<\/a>\n<\/li>\n<li>\n<a href=\"#hoe-kies-je-de-juiste-syndicus-brussel\">Hoe kies je de juiste syndicus Brussel?<\/a>\n<\/li>\n<li>\n<a href=\"#van-syndicus-brussel-veranderen-procedure\">Van syndicus Brussel veranderen: procedure<\/a>\n<\/li>\n<li>\n<a href=\"#klaar-voor-een-syndicus-in-brussel-die-meedenkt\">Klaar voor een syndicus in Brussel die meedenkt?<\/a>\n<\/li>\n<li>\n<a href=\"#veelgestelde-vragen-over-syndicus-brussel\">Veelgestelde vragen over syndicus Brussel<\/a>\n<\/li>\n<\/ul>\n<\/div>\n\n<div class=\"wp-block-group is-style-default has-neutral-400-color has-text-color has-link-color has-12-font-size wp-elements-7 is-layout-flow wp-block-group-is-layout-flow\" style=\"font-style:normal;font-weight:500;margin:var(--wp--preset--spacing--md) 0\"><div class=\"yoast-breadcrumbs\"><span><span><a href=\"https:\/\/syndicoach.be\/\">Home<\/a><\/span> &raquo; <span class=\"breadcrumb_last\" aria-current=\"page\">Syndicus Brussel: tweetalig gebouwbeheer op maat van jouw mede-eigendom<\/span><\/span><\/div><\/div>\n<\/div>\n\n\n<h2 id=\"wat-doet-een-syndicus-brussel\" class=\"wp-block-heading\">Wat doet een syndicus Brussel?<\/h2>\n\n\n<p class=\"wp-block-paragraph wp-block-paragraph\" style=\"\">Een syndicus is de wettelijk verplichte beheerder van een Vereniging van Mede-Eigenaars (VME), aangesteld door de algemene vergadering voor maximaal drie jaar volgens art. 3.89 &sect;1 Burgerlijk Wetboek. In Brussel gelden bovenop de federale mede-eigendomswet (<a href=\"https:\/\/www.justel.be\/\" type=\"link\" id=\"https:\/\/www.justel.be\/\">Wet 2 juni 2010 en Wet 18 juni 2018) <\/a>ook gewestelijke regels die de syndicus moet kennen en toepassen.<\/p>\n\n\n<p class=\"wp-block-paragraph wp-block-paragraph\" style=\"\">De kerntaken van een syndicus in Brussel zijn:<\/p>\n\n\n<ol class=\"wp-block-list wp-block-list\">\n<li>\n<strong>Algemene vergaderingen<\/strong>&nbsp;oproepen, voorzitten en notuleren, met respect voor de wettelijke termijn van 15 dagen tussen oproeping en vergadering.<\/li>\n\n\n\n<li>\n<strong>Financieel beheer<\/strong>: budget, jaarrekening, <a href=\"https:\/\/openvme.be\/financieel-beheer\/werkkapitaal-en-reservekapitaal\/\" type=\"link\" id=\"https:\/\/openvme.be\/financieel-beheer\/werkkapitaal-en-reservekapitaal\/\">reservefonds <\/a>(minstens 5% van het werkingsbudget volgens art. 3.86 &sect;3 BW) en kostenverdeling.<\/li>\n\n\n\n<li>\n<strong>Technisch beheer<\/strong>: onderhoud, herstellingen en co&ouml;rdinatie van renovaties aan de gemene delen.<\/li>\n\n\n\n<li>\n<strong>Juridische opvolging<\/strong>: contracten, geschillen en vertegenwoordiging van de VME in rechte.<\/li>\n\n\n\n<li>\n<strong>Brusselse-specifieke verplichtingen<\/strong>: KBO-registratie van de VME, opvolging van EPB-verplichtingen voor mede-eigendommen, aanvraag van Renolution-premies, en naleving van het Brussels Wetboek voor Lucht, Klimaat en Energiebeheersing (BWLKE).<\/li>\n<\/ol>\n\n\n<p class=\"wp-block-paragraph wp-block-paragraph\" style=\"\">Syndicoach voert al deze taken uit via een combinatie van een BIV-erkende coach en het OpenVME-platform, zonder fysiek kantoor in Brussel maar met volledige dekking van de 19 Brusselse gemeenten.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" style=\"margin-top:var(--wp--preset--spacing--xxl);margin-bottom:var(--wp--preset--spacing--xxl)\"\/>\n\n\n<h2 id=\"cijfers-over-het-brusselse-vastgoedlandschap\" class=\"wp-block-heading\"><strong>Cijfers over het Brusselse vastgoedlandschap<\/strong><\/h2>\n\n\n<div class=\"wp-block-group is-layout-flow wp-block-group-is-layout-flow\">\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-5d2f3228 wp-block-columns-is-layout-flex is-stacked-on-mobile\" data-columns=\"3\" style=\"--columns:3\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" 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\">\n<div class=\"wp-block-group has-success-100-background-color has-background is-layout-flow wp-container-core-group-is-layout-03db96ff 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;margin:0;padding:var(--wp--preset--spacing--xs) var(--wp--preset--spacing--sm)\">\n<p class=\"wp-block-paragraph has-text-align-center has-28-font-size wp-block-paragraph\" style=\"\"><strong>42.388<\/strong><\/p>\n\n\n<p class=\"wp-block-paragraph has-text-align-center has-14-font-size wp-block-paragraph\" style=\"margin:0\"><strong><strong>appartementsgebouwen<\/strong><\/strong><\/p>\n\n\n<p class=\"wp-block-paragraph has-text-align-center has-neutral-400-color has-text-color has-link-color has-12-font-size wp-elements-8 wp-block-paragraph\" style=\"margin:0\">Bron: <a href=\"https:\/\/statbel.fgov.be\/nl\/themas\/bouwen-wonen\/gebouwenpark\" type=\"link\" id=\"https:\/\/statbel.fgov.be\/nl\/themas\/bouwen-wonen\/gebouwenpark\">Statbel <\/a>2025<\/p>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" 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\">\n<div class=\"wp-block-group has-success-100-background-color has-background is-layout-flow wp-container-core-group-is-layout-03db96ff 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;margin:0;padding:var(--wp--preset--spacing--xs) var(--wp--preset--spacing--sm)\">\n<p class=\"wp-block-paragraph has-text-align-center has-28-font-size wp-block-paragraph\" style=\"\"><strong>166.747 <\/strong><\/p>\n\n\n<p class=\"wp-block-paragraph has-text-align-center has-14-font-size wp-block-paragraph\" style=\"margin:0\"><strong><strong>woongebouwen<\/strong><\/strong> totaal<\/p>\n\n\n<p class=\"wp-block-paragraph has-text-align-center has-neutral-400-color has-text-color has-link-color has-12-font-size wp-elements-9 wp-block-paragraph\" style=\"margin:0\">Bron: Statbel 2025<\/p>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" 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\">\n<div class=\"wp-block-group has-success-100-background-color has-background is-layout-flow wp-container-core-group-is-layout-03db96ff 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;margin:0;padding:var(--wp--preset--spacing--xs) var(--wp--preset--spacing--sm)\">\n<p class=\"wp-block-paragraph has-text-align-center has-28-font-size wp-block-paragraph\" style=\"\"><strong>1,25 mil.<\/strong><\/p>\n\n\n<p class=\"wp-block-paragraph has-text-align-center has-14-font-size wp-block-paragraph\" style=\"margin:0\"><strong>inwoners in het <\/strong>Brussels Hoofdstedelijk Gewest<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n\n\n<ul class=\"wp-block-list wp-block-list\">\n<li>Het Brussels Hoofdstedelijk Gewest telt&nbsp;<strong>166.747 woongebouwen<\/strong>, waarvan&nbsp;<strong>42.388 appartementsgebouwen<\/strong>&nbsp;(25,4% van het patrimonium).<\/li>\n\n\n\n<li>De vijf gemeenten met de meeste appartementsgebouwen:&nbsp;<strong>Brussel-stad (6.334), Elsene (4.228), Schaarbeek (4.091), Ukkel (3.408) en Anderlecht (3.018)<\/strong>.<\/li>\n\n\n\n<li>Samen tellen die gebouwen ca. 598.000 woningen.<\/li>\n\n\n\n<li>Slechts 7% van de gebouwen werd na 1981 gebouwd, tegenover 35% in Vlaanderen. Brussel heeft het oudste woonpark van het land.<\/li>\n\n\n\n<li>Net geen 40% van de Brusselse gezinnen is eigenaar, tegenover ~66% nationaal.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" style=\"margin-top:var(--wp--preset--spacing--xxl);margin-bottom:var(--wp--preset--spacing--xxl)\"\/>\n\n\n<h2 id=\"wat-maakt-een-syndicus-in-brussel-anders-dan-elders-in-belgie\" class=\"wp-block-heading\">Wat maakt een syndicus in Brussel anders dan elders in Belgi&euml;?<\/h2>\n\n\n<p class=\"wp-block-paragraph wp-block-paragraph\" style=\"\">Brussel verschilt op vier punten van de Vlaamse en Waalse markt, en dat heeft directe gevolgen voor het syndicusbeheer.<\/p>\n\n\n<div class=\"wp-block-group is-style-surface is-layout-constrained wp-container-core-group-is-layout-8602b98e wp-block-group-is-layout-constrained\" style=\"border-top-left-radius:20px;border-top-right-radius:20px;border-bottom-left-radius:20px;border-bottom-right-radius:20px;box-shadow:var(--wp--preset--shadow--xxl);padding:var(--wp--preset--spacing--lg)\">\n<h3 id=\"1-oud-woonpark-betekent-hoogste-renovatiedruk\" class=\"wp-block-heading\">1. Oud woonpark betekent hoogste renovatiedruk<\/h3>\n\n\n<p class=\"wp-block-paragraph wp-block-paragraph\" style=\"\">Het Brussels Hoofdstedelijk Gewest legt via het BWLKE en de Ordonnantie van 2024 op dat&nbsp;<strong>elke woning uiterlijk op 1 januari 2033 een EPB-niveau van maximaal 275 kWh\/(m&sup2;.jaar)<\/strong>&nbsp;moet halen, met een aangescherpt doel van 150 kWh\/(m&sup2;.jaar) tegen ten vroegste 31 december 2045. Voor mede-eigendommen is dit een collectieve uitdaging: vanaf 2033 wordt de VME mede-verantwoordelijk voor het halen van die doelen voor elke woning in het gebouw.<\/p>\n<\/div>\n\n\n<div class=\"wp-block-group is-style-surface is-layout-constrained wp-container-core-group-is-layout-8602b98e wp-block-group-is-layout-constrained\" style=\"border-top-left-radius:20px;border-top-right-radius:20px;border-bottom-left-radius:20px;border-bottom-right-radius:20px;box-shadow:var(--wp--preset--shadow--xxl);padding:var(--wp--preset--spacing--lg)\">\n<h3 id=\"2-kboregistratie-als-hefboom-voor-premies\" class=\"wp-block-heading\">2. KBO-registratie als hefboom voor premies<\/h3>\n\n\n<p class=\"wp-block-paragraph wp-block-paragraph\" style=\"\">Een Brusselse VME moet zich registreren bij de Kruispuntbank van Ondernemingen (KBO) om erkend te worden als rechtspersoon en om toegang te krijgen tot Renolution-premies voor renovatiewerken aan de gemene delen. Veel kleinere VME's in Brussel zijn nog niet geregistreerd, waardoor ze premies mislopen die kunnen oplopen tot duizenden euro per project.<\/p>\n<\/div>\n\n\n<div class=\"wp-block-group is-style-surface is-layout-constrained wp-container-core-group-is-layout-8602b98e wp-block-group-is-layout-constrained\" style=\"border-top-left-radius:20px;border-top-right-radius:20px;border-bottom-left-radius:20px;border-bottom-right-radius:20px;box-shadow:var(--wp--preset--shadow--xxl);padding:var(--wp--preset--spacing--lg)\">\n<h3 id=\"3-tweetaligheid-in-vergaderingen-en-notulen\" class=\"wp-block-heading\">3. Tweetaligheid in vergaderingen en notulen<\/h3>\n\n\n<p class=\"wp-block-paragraph wp-block-paragraph\" style=\"\">Het Brussels Hoofdstedelijk Gewest is officieel tweetalig. In gemengde VME's kunnen mede-eigenaars vragen om vergaderingen, notulen en briefwisseling in zowel Nederlands als Frans te ontvangen. Syndicoach werkt standaard tweetalig (NL en FR) voor Brusselse dossiers.<\/p>\n<\/div>\n\n\n<div class=\"wp-block-group is-style-surface is-layout-constrained wp-container-core-group-is-layout-8602b98e wp-block-group-is-layout-constrained\" style=\"border-top-left-radius:20px;border-top-right-radius:20px;border-bottom-left-radius:20px;border-bottom-right-radius:20px;box-shadow:var(--wp--preset--shadow--xxl);padding:var(--wp--preset--spacing--lg)\">\n<h3 id=\"4-brusselsespecifieke-begeleiding-via-leefmilieu-brussel\" class=\"wp-block-heading\">4. Brusselse-specifieke begeleiding via Leefmilieu Brussel<\/h3>\n\n\n<p class=\"wp-block-paragraph wp-block-paragraph\" style=\"\">Leefmilieu Brussel biedt via de Facilitator Mede-eigendom gratis technische begeleiding voor renovatieprojecten, een dienst die in Vlaanderen niet op die schaal bestaat. Een goede syndicus benut deze gratis kanalen actief.<\/p>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" style=\"margin-top:var(--wp--preset--spacing--xxl);margin-bottom:var(--wp--preset--spacing--xxl)\"\/>\n\n\n<h2 id=\"de-syndicoachaanpak-coaching-in-plaats-van-kantoorbeheer\" class=\"wp-block-heading\">De Syndicoach-aanpak: coaching in plaats van kantoorbeheer<\/h2>\n\n\n<p class=\"wp-block-paragraph wp-block-paragraph\" style=\"\">Syndicoach werkt volgens een coachingmodel: een BIV-erkende coach begeleidt jouw VME op afstand via het OpenVME-platform, met de mogelijkheid van fysieke vergaderingen waar nodig. Dat verschilt structureel van klassieke syndicus-kantoren die met grote portefeuilles en standaardprocedures werken.<\/p>\n\n\n\n<figure class=\"wp-block-table alignwide is-style-stripes\"><table class=\"has-primary-50-background-color has-background has-fixed-layout\"><thead><tr><th class=\"has-text-align-left\" data-align=\"left\">Aspect<\/th><th class=\"has-text-align-left\" data-align=\"left\">Klassiek syndicus-kantoor<\/th><th class=\"has-text-align-left\" data-align=\"left\">Syndicoach<\/th><\/tr><\/thead><tbody><tr><td>Aanwezigheid<\/td><td>Fysiek kantoor<\/td><td>Coach op afstand + platform<\/td><\/tr><tr><td>Aanpak<\/td><td>Standaardproces, grote portefeuille<\/td><td>Coaching op maat van de VME<\/td><\/tr><tr><td>Communicatie<\/td><td>Telefoon + e-mail tijdens kantooruren<\/td><td>Permanent platform-toegang + coach<\/td><\/tr><tr><td>Formules<\/td><td>E\u00e9n beheercontract<\/td><td>Drie formules: Assistent, Coach, Captain<\/td><\/tr><tr><td>Tweetaligheid Brussel<\/td><td>Variabel<\/td><td>Standaard NL en FR<\/td><\/tr><tr><td>Transparantie<\/td><td>Afhankelijk van kantoor<\/td><td>24\/7 inzage in dossier via platform<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n<h3 id=\"drie-formules-voor-verschillende-behoeftes\" class=\"wp-block-heading\">Drie formules voor verschillende behoeftes<\/h3>\n\n\n\n\n<ul class=\"wp-block-list wp-block-list\">\n<li>\n<strong><a href=\"https:\/\/syndicoach.be\/pakketten\/\" type=\"link\" id=\"https:\/\/syndicoach.be\/pakketten\/\">Assistent<\/a><\/strong>: jouw VME beheert zelf, Syndicoach ondersteunt op aanvraag bij specifieke vragen of dossiers.<\/li>\n\n\n\n<li>\n<strong><a href=\"https:\/\/syndicoach.be\/pakketten\/\" type=\"link\" id=\"https:\/\/syndicoach.be\/pakketten\/\">Coach<\/a><\/strong>: gedeeld beheer, de coach neemt de complexe taken over (jaarvergadering, jaarrekening, juridische dossiers).<\/li>\n\n\n\n<li>\n<strong><a href=\"https:\/\/syndicoach.be\/pakketten\/\" type=\"link\" id=\"https:\/\/syndicoach.be\/pakketten\/\">Captain<\/a><\/strong>: volledig beheer door de coach, zoals een klassieke syndicus maar dan op afstand en zonder kantoorkosten.<\/li>\n<\/ul>\n\n\n<p class=\"wp-block-paragraph wp-block-paragraph\" style=\"\">We bedienen Brusselse VME&rsquo;s op afstand vanuit ons centrale team, met een coach die fysiek aanwezig is op je algemene vergadering en bij plaatsbezoeken;<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" style=\"margin-top:var(--wp--preset--spacing--xxl);margin-bottom:var(--wp--preset--spacing--xxl)\"\/>\n\n\n<h2 id=\"syndicus-brussel-in-alle-19-gemeenten\" class=\"wp-block-heading\">Syndicus Brussel in alle 19 gemeenten<\/h2>\n\n\n<p class=\"wp-block-paragraph wp-block-paragraph\" style=\"\">Syndicoach werkt voor VME's in alle 19 gemeenten van het Brussels Hoofdstedelijk Gewest. Onderstaande tabel toont het aantal appartementsgebouwen per gemeente (Statbel 2025), wat een indicatie geeft van het VME-patrimonium per zone.<\/p>\n\n\n\n\n\n<figure class=\"wp-block-table is-style-stripes\"><table class=\"has-primary-50-background-color has-background has-fixed-layout\"><thead><tr><th class=\"has-text-align-left\" data-align=\"left\">Gemeente (FR)<\/th><th class=\"has-text-align-left\" data-align=\"left\">Appartementsgebouwen<\/th><\/tr><\/thead><tbody><tr><td>Bruxelles-ville<\/td><td>6.334<\/td><\/tr><tr><td>Ixelles<\/td><td>4.228<\/td><\/tr><tr><td>Schaerbeek<\/td><td>4.091<\/td><\/tr><tr><td>Uccle<\/td><td>3.408<\/td><\/tr><tr><td>Anderlecht<\/td><td>3.018<\/td><\/tr><tr><td>Molenbeek-Saint-Jean<\/td><td>2.913<\/td><\/tr><tr><td>Forest<\/td><td>2.547<\/td><\/tr><tr><td>Etterbeek<\/td><td>2.289<\/td><\/tr><tr><td>Saint-Gilles<\/td><td>2.006<\/td><\/tr><tr><td>Woluwe-Saint-Lambert<\/td><td>1.877<\/td><\/tr><tr><td>Jette<\/td><td>1.713<\/td><\/tr><tr><td>Woluwe-Saint-Pierre<\/td><td>1.303<\/td><\/tr><tr><td>Evere<\/td><td>1.239<\/td><\/tr><tr><td>Ganshoren<\/td><td>1.117<\/td><\/tr><tr><td>Berchem-Sainte-Agathe<\/td><td>1.032<\/td><\/tr><tr><td>Auderghem<\/td><td>1.018<\/td><\/tr><tr><td>Koekelberg<\/td><td>871<\/td><\/tr><tr><td>Saint-Josse-ten-Noode<\/td><td>699<\/td><\/tr><tr><td>Watermael-Boitsfort<\/td><td>685<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n<p class=\"wp-block-paragraph wp-block-paragraph\" style=\"\">De coach werkt op afstand via het OpenVME-platform en komt op locatie voor algemene vergaderingen en gebouwbezoeken. Ook VME's in de Vlaamse rand rond Brussel, zoals&nbsp;<strong>Dilbeek, Vilvoorde, Halle, Zaventem en Sint-Pieters-Leeuw<\/strong>, kunnen rekenen op dezelfde aanpak.<\/p>\n\n\n<div class=\"wp-block-group alignwide is-layout-flow wp-block-group-is-layout-flow\">\n<div class=\"wp-block-columns are-vertically-aligned-center has-custom-f-0-f-9-ff-background-color has-background is-layout-flex wp-container-core-columns-is-layout-5d2f3228 wp-block-columns-is-layout-flex is-stacked-on-mobile\" style=\"border-radius:30px;--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=\"border-radius:20px;padding-top:var(--wp--preset--spacing--sm);padding-bottom:var(--wp--preset--spacing--sm);flex-basis:50%\">\n<figure class=\"wp-block-image aligncenter size-full\" style=\"\"><a href=\"https:\/\/app.cindy.eu\/nl-BE\/register\"><img decoding=\"async\" width=\"833\" height=\"525\" data-src=\"https:\/\/syndicoach.be\/wp-content\/uploads\/2026\/02\/HP-startTo-image.png\" alt=\"syndicus software\" class=\"wp-image-15082 lazyload\" data-srcset=\"https:\/\/syndicoach.be\/wp-content\/uploads\/2026\/02\/HP-startTo-image.png 833w, https:\/\/syndicoach.be\/wp-content\/uploads\/2026\/02\/HP-startTo-image-300x189.png 300w, https:\/\/syndicoach.be\/wp-content\/uploads\/2026\/02\/HP-startTo-image-768x484.png 768w\" data-sizes=\"(max-width: 833px) 100vw, 833px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 833px; --smush-placeholder-aspect-ratio: 833\/525;\" \/><\/a><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-constrained wp-container-core-column-is-layout-abf7bc0f wp-block-column-is-layout-constrained\" 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);flex-basis:50%\">\n<div class=\"wp-block-group is-content-justification-left is-layout-constrained wp-container-core-group-is-layout-e1061a51 wp-block-group-is-layout-constrained\">\n<h3 class=\"wp-block-heading\" id=\"over-het-platform\">Over het platform<\/h3>\n\n\n<p class=\"wp-block-paragraph wp-block-paragraph\" style=\"\">Het beheer van je VME in &eacute;&eacute;n digitaal platform: wettelijke zekerheid, vlot communiceren &amp; beslissen, technisch overzicht en financi&euml;le transparantie.&#8232;<br>Met ondersteuning van experts zoals je syndicoach en automatisering van de zwaarste taken wordt zelfbeheer vanzelfsprekender dan ooit.<\/p>\n\n\n\n<div class=\"wp-block-buttons is-horizontal is-content-justification-left is-layout-flex wp-container-core-buttons-is-layout-f6f7b538 wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button is-style-outline is-style-outline--2\" style=\"\"><a class=\"wp-block-button__link has-primary-950-color has-primary-50-background-color has-text-color has-background has-link-color has-text-align-left wp-element-button\" href=\"https:\/\/app.cindy.eu\/nl-BE\/register\" style=\"\">Ontdek OpenVME<\/a><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" style=\"margin-top:var(--wp--preset--spacing--xl);margin-bottom:var(--wp--preset--spacing--xl)\"\/>\n\n\n<h2 id=\"wat-kost-een-syndicus-brussel\" class=\"wp-block-heading\">Wat kost een syndicus Brussel?<\/h2>\n\n\n<p class=\"wp-block-paragraph wp-block-paragraph\" style=\"\">De <a href=\"https:\/\/syndicoach.be\/syndicus-tarieven\/\" type=\"page\" id=\"15849\">tarieven voor een syndicus <\/a>in Brussel vari&euml;ren sterk afhankelijk van de grootte van het gebouw, het type beheer en de complexiteit van de dossiers. Marktcijfers op basis van publieke offertes:<\/p>\n\n\n<p class=\"wp-block-paragraph wp-block-paragraph\" style=\"\">Het Syndicoach-model werkt met een formuleprijs die je vooraf kent en die kantoorkosten en marges van klassieke spelers wegneemt. Vraag een offerte op maat aan voor een exacte prijsindicatie.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" style=\"margin-top:var(--wp--preset--spacing--xl);margin-bottom:var(--wp--preset--spacing--xl)\"\/>\n\n\n<h2 id=\"hoe-kies-je-de-juiste-syndicus-brussel\" class=\"wp-block-heading\">Hoe kies je de juiste syndicus Brussel?<\/h2>\n\n\n<p class=\"wp-block-paragraph wp-block-paragraph\" style=\"\">Een syndicus kiezen is een beslissing die de <a href=\"https:\/\/openvme.be\/2024\/07\/25\/agendapunten-algemene-vergadering\/\" type=\"link\" id=\"https:\/\/openvme.be\/2024\/07\/25\/agendapunten-algemene-vergadering\/\">algemene vergadering<\/a> neemt met een gewone meerderheid (50% + 1 van de aanwezige stemmen). Hou rekening met deze concrete criteria:<\/p>\n\n\n<ol class=\"wp-block-list wp-block-list\">\n<li>\n<strong>BIV-erkenning controleren<\/strong>&nbsp;via de openbare ledenlijst op&nbsp;<a href=\"https:\/\/www.biv.be\/\" target=\"_blank\" rel=\"noreferrer noopener\">biv.be<\/a>. Een professionele syndicus moet ingeschreven zijn bij het Beroepsinstituut van Vastgoedmakelaars.<\/li>\n\n\n\n<li>\n<strong>Tweetaligheid bevestigen<\/strong>&nbsp;indien jouw VME gemengd Nederlands- en Franstalig is. Vraag concreet of vergaderingen en notulen in beide talen geleverd kunnen worden.<\/li>\n\n\n\n<li>\n<strong>Beroepsverzekering<\/strong>&nbsp;opvragen: een syndicus draagt persoonlijke aansprakelijkheid voor zijn beslissingen en moet daarvoor verzekerd zijn.<\/li>\n\n\n\n<li>\n<strong>Tarieven uitgesplitst opvragen<\/strong>: vraag aparte tarieven voor het basisbeheer en voor buitengewone prestaties (extra vergaderingen, juridische dossiers, renovaties).<\/li>\n\n\n\n<li>\n<strong>Brusselse expertise verifi&euml;ren<\/strong>: kent de syndicus de Renolution-premies, EPB-deadline 2033 en KBO-procedure?<\/li>\n\n\n\n<li>\n<strong>Referenties navragen<\/strong>&nbsp;bij andere Brusselse VME's, bij voorkeur van vergelijkbare grootte.<\/li>\n\n\n\n<li>\n<strong>Opzegtermijn checken<\/strong>&nbsp;in het voorgestelde contract: drie jaar is de wettelijke maximumduur, maar de opzegmogelijkheden verschillen sterk per syndicus.<\/li>\n<\/ol>\n\n\n<div class=\"wp-block-group alignfull is-layout-constrained wp-container-core-group-is-layout-e34631ad wp-block-group-is-layout-constrained\" style=\"padding:var(--wp--preset--spacing--lg) 0\">\n<div class=\"wp-block-columns alignwide are-vertically-aligned-center has-success-100-background-color has-background is-layout-flex wp-container-core-columns-is-layout-225bdc10 wp-block-columns-is-layout-flex is-stacked-on-mobile\" style=\"border-radius:25px;padding-top:var(--wp--preset--spacing--lg);padding-right:var(--wp--preset--spacing--xl);padding-bottom:var(--wp--preset--spacing--lg);padding-left:var(--wp--preset--spacing--xl);--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=\"flex-basis:60%\">\n<h3 id=\"je-verdient-een-syndicus-die-de-regels-van-het-brussels-gewest-kent\" class=\"wp-block-heading\">Je verdient een syndicus die de regels van het Brussels Gewest kent<\/h3>\n\n\n<p class=\"wp-block-paragraph wp-block-paragraph\" style=\"\">Een syndicus in Brussel is meer dan een administrator. Het is de persoon die jouw VME door de EPB-transitie van 2033 loodst, die de juiste <a href=\"https:\/\/renolution.brussels\/nl\/\" type=\"link\" id=\"https:\/\/renolution.brussels\/nl\/\">Renolution-premies<\/a> aanvraagt, en die in beide landstalen kan communiceren met alle mede-eigenaars. Klassieke kantoren leveren dat met overhead; Syndicoach levert dat zonder kantoorkosten, via een coach op afstand en het OpenVME-platform.<\/p>\n\n\n\n<div class=\"wp-block-buttons is-style-default is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button is-style-outline is-style-outline--3\" style=\"\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/syndicoach.be\/opstart\/#contact\" style=\"\">Plan een kennismaking<\/a><\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\" style=\"\"><a href=\"https:\/\/syndicoach.be\/opstart\/\"><img decoding=\"async\" width=\"945\" height=\"709\" data-src=\"https:\/\/syndicoach.be\/wp-content\/uploads\/2026\/02\/Indecisive.png\" alt=\"antwerp syndicus kiezen\" class=\"wp-image-15107 lazyload\" data-srcset=\"https:\/\/syndicoach.be\/wp-content\/uploads\/2026\/02\/Indecisive.png 945w, https:\/\/syndicoach.be\/wp-content\/uploads\/2026\/02\/Indecisive-300x225.png 300w, https:\/\/syndicoach.be\/wp-content\/uploads\/2026\/02\/Indecisive-768x576.png 768w\" data-sizes=\"(max-width: 945px) 100vw, 945px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 945px; --smush-placeholder-aspect-ratio: 945\/709;\" \/><\/a><\/figure>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" style=\"margin-top:var(--wp--preset--spacing--xxl);margin-bottom:var(--wp--preset--spacing--xxl)\"\/>\n\n\n<h2 id=\"van-syndicus-brussel-veranderen-procedure\" class=\"wp-block-heading\">Van syndicus Brussel veranderen: procedure<\/h2>\n\n\n<p class=\"wp-block-paragraph wp-block-paragraph\" style=\"\">Een Brusselse VME kan op elk moment van<a href=\"https:\/\/syndicoach.be\/syndicus-gids\/syndicus-veranderen\/\" type=\"page\" id=\"16505\"> syndicus veranderen<\/a> via een beslissing van de algemene vergadering. De procedure verloopt in vier stappen:<\/p>\n\n\n<ol class=\"wp-block-list wp-block-list\">\n<li>\n<strong>Punt op de dagorde plaatsen<\/strong>: minstens &eacute;&eacute;n mede-eigenaar moet schriftelijk vragen om \"wisseling van syndicus\" als agendapunt op te nemen voor de eerstvolgende algemene vergadering.<\/li>\n\n\n\n<li>\n<strong>Offertes verzamelen<\/strong>: bij voorkeur minstens drie offertes van kandidaat-syndici, met identieke scope voor een eerlijke vergelijking.<\/li>\n\n\n\n<li>\n<strong>Beslissing nemen<\/strong>: de algemene vergadering stemt met gewone meerderheid over de nieuwe syndicus.<\/li>\n\n\n\n<li>\n<strong>Overdracht regelen<\/strong>: de oude syndicus moet binnen 30 dagen alle documenten, sleutels en financi&euml;le overzichten overdragen aan de nieuwe syndicus (art. 3.89 &sect;6 BW).<\/li>\n<\/ol>\n\n\n<p class=\"wp-block-paragraph wp-block-paragraph\" style=\"\">Syndicoach begeleidt deze overgang en zorgt dat de overdracht zonder gaten verloopt, ook bij weerstand van de uittredende syndicus.<\/p>\n\n\n<div class=\"wp-block-group has-warning-100-background-color has-background is-layout-constrained wp-container-core-group-is-layout-c90b4e9d wp-block-group-is-layout-constrained\" style=\"border-top-left-radius:20px;border-top-right-radius:20px;border-bottom-left-radius:20px;border-bottom-right-radius:20px;margin:var(--wp--preset--spacing--lg) 0;padding:var(--wp--preset--spacing--lg)\">\n<h2 id=\"klaar-voor-een-syndicus-in-brussel-die-meedenkt\" class=\"wp-block-heading\">Klaar voor een syndicus in Brussel die meedenkt?<\/h2>\n\n\n<p class=\"wp-block-paragraph wp-block-paragraph\" style=\"\">Vraag een offerte op maat aan. Een BIV-erkende coach contacteert je binnen 48 uur voor een eerste gesprek over jouw VME en gebouw.<a href=\"https:\/\/syndicoach.be\/contact\/\"><\/a><\/p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button is-style-outline is-style-outline--4\" style=\"\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/syndicoach.be\/offerte\/\" style=\"\">Vraag je offerte aan<\/a><\/div>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" style=\"margin-top:var(--wp--preset--spacing--xl);margin-bottom:var(--wp--preset--spacing--xl)\"\/>\n\n\n<h2 id=\"veelgestelde-vragen-over-syndicus-brussel\" class=\"wp-block-heading\">Veelgestelde vragen over syndicus Brussel<\/h2>\n\n\n\n<div class=\"schema-faq wp-block-yoast-faq-block\"><div class=\"schema-faq-section\" id=\"faq-question-1778579151330\"><strong class=\"schema-faq-question\">Mag een Vlaamse syndicus werken voor een VME in Brussel?<\/strong> <p class=\"schema-faq-answer\">Ja. De BIV-erkenning geldt voor heel Belgi\u00eb. Een syndicus die ingeschreven is bij het Beroepsinstituut van Vastgoedmakelaars mag in elk gewest werken, zolang de wettelijke verplichtingen (tweetaligheid, gewestelijke regelgeving) worden nageleefd.<br><\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1778579598881\"><strong class=\"schema-faq-question\">Moet mijn syndicus in Brussel tweetalig zijn?<\/strong> <p class=\"schema-faq-answer\">Brussel is officieel tweetalig. Als minstens \u00e9\u00e9n mede-eigenaar daarom vraagt, moeten oproepingsbrieven, notulen en offici\u00eble communicatie in zowel Nederlands als Frans worden geleverd. Syndicoach en OpenVME werkt standaard tweetalig voor Brusselse dossiers.<br><\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1778579611495\"><strong class=\"schema-faq-question\">Wat is de EPB-deadline voor mede-eigendommen in Brussel?<\/strong> <p class=\"schema-faq-answer\">Vanaf 1 januari 2033 moet elke woning in het Brussels Hoofdstedelijk Gewest een EPB-niveau van maximaal 275 kWh\/(m\u00b2.jaar) halen. De VME wordt mede-verantwoordelijk voor het naleven hiervan voor de gemene delen. Tegen ten vroegste 31 december 2045 wordt het doel aangescherpt tot 150 kWh\/(m\u00b2.jaar). Bron: Brussels Wetboek voor Lucht, Klimaat en Energiebeheersing (BWLKE).<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1778579634186\"><strong class=\"schema-faq-question\">Wat kost een syndicus voor een klein appartementsgebouw in Brussel?<\/strong> <p class=\"schema-faq-answer\">Voor kleine VME's van 3 tot 10 kavels liggen de marktprijzen tussen 250 en 450 euro per kavel per jaar. Het Syndicoach-formulemodel (Assistent, Coach, Captain) biedt een transparante prijs die je vooraf kent, zonder kantoorkosten of verborgen marges.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1778579644713\"><strong class=\"schema-faq-question\">Is een Brusselse VME verplicht ingeschreven bij de KBO?<\/strong> <p class=\"schema-faq-answer\">Ja. Een VME wordt erkend als rechtspersoon zodra ze ingeschreven is bij de Kruispuntbank van Ondernemingen. Zonder KBO-nummer kan de VME geen Renolution-premies aanvragen en heeft ze geen rechtspersoonlijkheid om bijv. juridische stappen te ondernemen.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1778579705519\"><strong class=\"schema-faq-question\">Kan Syndicoach mijn VME helpen met Renolution-premies?<\/strong> <p class=\"schema-faq-answer\">Ja. Syndicoach co\u00f6rdineert de KBO-registratie indien nodig, ondersteunt bij de aanvraag van Renolution-premies en werkt samen met de Facilitator Mede-eigendom van <a href=\"https:\/\/leefmilieu.brussels\/\" type=\"link\" id=\"https:\/\/leefmilieu.brussels\/\">Leefmilieu Brussel<\/a> om renovatieprojecten op poten te zetten.<\/p> <\/div> <\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" style=\"margin-top:var(--wp--preset--spacing--xl);margin-bottom:var(--wp--preset--spacing--xl)\"\/>\n\n\n\n<script type=\"application\/ld+json\">\n{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@type\": \"ProfessionalService\",\n  \"@id\": \"https:\/\/syndicoach.be\/syndicus-brussel\/#service\",\n  \"name\": \"Syndicoach Brussel\",\n  \"description\": \"Tweetalige syndicus voor VME-beheer in Brussel via coach op afstand en OpenVME-platform.\",\n  \"url\": \"https:\/\/syndicoach.be\/syndicus-brussel\/\",\n  \"areaServed\": [\n    {\n      \"@type\": \"AdministrativeArea\",\n      \"name\": \"Brussels Hoofdstedelijk Gewest\"\n    },\n    {\"@type\": \"City\", \"name\": \"Brussel\"},\n    {\"@type\": \"City\", \"name\": \"Anderlecht\"},\n    {\"@type\": \"City\", \"name\": \"Oudergem\"},\n    {\"@type\": \"City\", \"name\": \"Sint-Agatha-Berchem\"},\n    {\"@type\": \"City\", \"name\": \"Etterbeek\"},\n    {\"@type\": \"City\", \"name\": \"Evere\"},\n    {\"@type\": \"City\", \"name\": \"Vorst\"},\n    {\"@type\": \"City\", \"name\": \"Ganshoren\"},\n    {\"@type\": \"City\", \"name\": \"Elsene\"},\n    {\"@type\": \"City\", \"name\": \"Jette\"},\n    {\"@type\": \"City\", \"name\": \"Koekelberg\"},\n    {\"@type\": \"City\", \"name\": \"Sint-Jans-Molenbeek\"},\n    {\"@type\": \"City\", \"name\": \"Sint-Gillis\"},\n    {\"@type\": \"City\", \"name\": \"Sint-Joost-ten-Node\"},\n    {\"@type\": \"City\", \"name\": \"Schaarbeek\"},\n    {\"@type\": \"City\", \"name\": \"Ukkel\"},\n    {\"@type\": \"City\", \"name\": \"Watermaal-Bosvoorde\"},\n    {\"@type\": \"City\", \"name\": \"Sint-Lambrechts-Woluwe\"},\n    {\"@type\": \"City\", \"name\": \"Sint-Pieters-Woluwe\"}\n  ],\n  \"provider\": {\n    \"@type\": \"Organization\",\n    \"name\": \"Syndicoach\",\n    \"url\": \"https:\/\/syndicoach.be\/\",\n    \"telephone\": \"+32 3 657 28 50\",\n    \"availableLanguage\": [\"nl\", \"fr\"],\n    \"address\": {\n      \"@type\": \"PostalAddress\",\n      \"streetAddress\": \"Borsbeeksebrug 1\",\n      \"addressLocality\": \"Berchem\",\n      \"postalCode\": \"2600\",\n      \"addressCountry\": \"BE\"\n    }\n  }\n}\n<\/script>\n\n\n<div class=\"wp-block-group alignwide is-style-default has-success-100-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)\">\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-5d2f3228 wp-block-columns-is-layout-flex is-stacked-on-mobile\" data-columns=\"3\" style=\"--columns:3\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image aligncenter size-full is-resized has-custom-border\" style=\"border-top-left-radius:30px;border-top-right-radius:30px;border-bottom-left-radius:30px;border-bottom-right-radius:30px\"><a href=\"https:\/\/syndicoach.be\/syndicus-gids\/syndicus-veranderen\/\"><img decoding=\"async\" width=\"467\" height=\"467\" data-src=\"https:\/\/syndicoach.be\/wp-content\/uploads\/2026\/02\/twee-personen-met-verhuisdoos-blue.png\" alt=\"veranderen\" class=\"wp-image-15339 lazyload\" style=\"--smush-placeholder-width: 467px; --smush-placeholder-aspect-ratio: 467\/467;border-top-left-radius:30px;border-top-right-radius:30px;border-bottom-left-radius:30px;border-bottom-right-radius:30px;width:auto;height:200px\" data-srcset=\"https:\/\/syndicoach.be\/wp-content\/uploads\/2026\/02\/twee-personen-met-verhuisdoos-blue.png 467w, https:\/\/syndicoach.be\/wp-content\/uploads\/2026\/02\/twee-personen-met-verhuisdoos-blue-300x300.png 300w, https:\/\/syndicoach.be\/wp-content\/uploads\/2026\/02\/twee-personen-met-verhuisdoos-blue-150x150.png 150w\" data-sizes=\"(max-width: 467px) 100vw, 467px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" \/><\/a><\/figure>\n\n\n<p class=\"wp-block-paragraph has-text-align-center has-gelica-font-family has-neutral-950-color has-text-color has-link-color has-24-font-size wp-elements-10 wp-block-paragraph\" style=\"\">Veranderen van syndicus<\/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--5\" style=\"\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/syndicoach.be\/syndicus-gids\/syndicus-veranderen\/\" style=\"\">Hoe pak je het aan<\/a><\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image aligncenter size-full is-resized has-custom-border\" style=\"border-radius:15px\"><a href=\"https:\/\/syndicoach.be\/vme-check\/\"><img decoding=\"async\" width=\"467\" height=\"311\" data-src=\"https:\/\/syndicoach.be\/wp-content\/uploads\/2026\/02\/persoon-in-bad-met-computer-pink-edited.png\" alt=\"gebouw vme check\" class=\"wp-image-15462 lazyload\" style=\"--smush-placeholder-width: 467px; --smush-placeholder-aspect-ratio: 467\/311;border-radius:15px;width:auto;height:200px\" data-srcset=\"https:\/\/syndicoach.be\/wp-content\/uploads\/2026\/02\/persoon-in-bad-met-computer-pink-edited.png 467w, https:\/\/syndicoach.be\/wp-content\/uploads\/2026\/02\/persoon-in-bad-met-computer-pink-edited-300x200.png 300w\" data-sizes=\"(max-width: 467px) 100vw, 467px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" \/><\/a><\/figure>\n\n\n<p class=\"wp-block-paragraph has-text-align-center has-gelica-font-family has-neutral-950-color has-text-color has-link-color has-24-font-size wp-elements-11 wp-block-paragraph\" style=\"\"><strong>Gratis check-up voor je VME<\/strong><\/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--6\" style=\"\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/syndicoach.be\/vme-check\/\" style=\"\">Doe de VME check<\/a><\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image aligncenter size-full is-resized has-custom-border\" style=\"border-radius:15px\"><a href=\"https:\/\/syndicoach.be\/syndicus-gids\/syndicus-verplicht\/\"><img decoding=\"async\" width=\"467\" height=\"263\" data-src=\"https:\/\/syndicoach.be\/wp-content\/uploads\/2026\/03\/syndicus-verplicht-header.webp\" alt=\"verplicht\" class=\"wp-image-15673 lazyload\" style=\"--smush-placeholder-width: 467px; --smush-placeholder-aspect-ratio: 467\/263;border-radius:15px;width:auto;height:200px\" data-srcset=\"https:\/\/syndicoach.be\/wp-content\/uploads\/2026\/03\/syndicus-verplicht-header.webp 467w, https:\/\/syndicoach.be\/wp-content\/uploads\/2026\/03\/syndicus-verplicht-header-300x169.webp 300w\" data-sizes=\"(max-width: 467px) 100vw, 467px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" \/><\/a><\/figure>\n\n\n<p class=\"wp-block-paragraph has-text-align-center has-gelica-font-family has-neutral-950-color has-text-color has-link-color has-24-font-size wp-elements-12 wp-block-paragraph\" style=\"\"><strong>Is een syndicus verplicht?<\/strong><\/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--7\" style=\"\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/syndicoach.be\/syndicus-gids\/syndicus-verplicht\/\" style=\"\">Lees er alles over<\/a><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n\n\n<p class=\"wp-block-paragraph has-12-font-size wp-block-paragraph\" style=\"\">Wetgeving en cijfers gecontroleerd via Leefmilieu Brussel, Renolution, Statbel en BISA. Voor specifieke juridische vragen raadpleeg een notaris of BIV-erkend syndicus.<\/p>\n\n\n<p class=\"wp-block-paragraph wp-block-paragraph\" style=\"\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Un syndic \u00e0 Bruxelles doit relever des d\u00e9fis diff\u00e9rents de ceux d\u2019Anvers ou de Gand : un parc immobilier plus ancien, des r\u00e9unions bilingues et l\u2019\u00e9ch\u00e9ance stricte de 2033 fix\u00e9e par la norme EPB bruxelloise. Syndicoach associe un coach local agr\u00e9\u00e9 par la BIV \u00e0 la plateforme OpenVME, afin que votre VME soit g\u00e9r\u00e9 de mani\u00e8re professionnelle sans frais de bureau. Bilingue NL et FR, avec un acc\u00e8s direct aux primes Renolution et un accompagnement PEB via le Service de l\u2019Environnement\u2026<\/p>","protected":false},"author":1,"featured_media":16773,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-16771","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>Syndicus Brussel: tweetalig VME-beheer | Syndicoach<\/title>\n<meta name=\"description\" content=\"Syndicus Brussel nodig? Tweetalige coach voor jouw VME, klaar voor de EPB-deadline 2033 en Renolution-premies. Offerte op maat.\" \/>\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\/syndic-bruxelles\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Syndicus Brussel: tweetalig VME-beheer | Syndicoach\" \/>\n<meta property=\"og:description\" content=\"Syndicus Brussel nodig? Tweetalige coach voor jouw VME, klaar voor de EPB-deadline 2033 en Renolution-premies. Offerte op maat.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/syndicoach.be\/fr\/syndic-bruxelles\/\" \/>\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-24T15:14:30+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/syndicoach.be\/wp-content\/uploads\/2026\/05\/syndicus-brussel-gebouw-syndicoach-edited-scaled.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2560\" \/>\n\t<meta property=\"og:image:height\" content=\"1440\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\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=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":[\"WebPage\",\"FAQPage\"],\"@id\":\"https:\\\/\\\/syndicoach.be\\\/syndicus-brussel\\\/\",\"url\":\"https:\\\/\\\/syndicoach.be\\\/syndicus-brussel\\\/\",\"name\":\"Syndicus Brussel: tweetalig VME-beheer | Syndicoach\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/syndicoach.be\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/syndicoach.be\\\/syndicus-brussel\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/syndicoach.be\\\/syndicus-brussel\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/syndicoach.be\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/syndicus-brussel-gebouw-syndicoach-edited-scaled.jpg\",\"datePublished\":\"2026-05-12T09:38:38+00:00\",\"dateModified\":\"2026-09-24T15:14:30+00:00\",\"description\":\"Syndicus Brussel nodig? Tweetalige coach voor jouw VME, klaar voor de EPB-deadline 2033 en Renolution-premies. Offerte op maat.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/syndicoach.be\\\/syndicus-brussel\\\/#breadcrumb\"},\"mainEntity\":[{\"@id\":\"https:\\\/\\\/syndicoach.be\\\/syndicus-brussel\\\/#faq-question-1778579151330\"},{\"@id\":\"https:\\\/\\\/syndicoach.be\\\/syndicus-brussel\\\/#faq-question-1778579598881\"},{\"@id\":\"https:\\\/\\\/syndicoach.be\\\/syndicus-brussel\\\/#faq-question-1778579611495\"},{\"@id\":\"https:\\\/\\\/syndicoach.be\\\/syndicus-brussel\\\/#faq-question-1778579634186\"},{\"@id\":\"https:\\\/\\\/syndicoach.be\\\/syndicus-brussel\\\/#faq-question-1778579644713\"},{\"@id\":\"https:\\\/\\\/syndicoach.be\\\/syndicus-brussel\\\/#faq-question-1778579705519\"}],\"inLanguage\":\"fr-BE\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/syndicoach.be\\\/syndicus-brussel\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-BE\",\"@id\":\"https:\\\/\\\/syndicoach.be\\\/syndicus-brussel\\\/#primaryimage\",\"url\":\"https:\\\/\\\/syndicoach.be\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/syndicus-brussel-gebouw-syndicoach-edited-scaled.jpg\",\"contentUrl\":\"https:\\\/\\\/syndicoach.be\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/syndicus-brussel-gebouw-syndicoach-edited-scaled.jpg\",\"width\":2560,\"height\":1440,\"caption\":\"syndic bruxelles\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/syndicoach.be\\\/syndicus-brussel\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/syndicoach.be\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Syndicus Brussel: tweetalig gebouwbeheer op maat van jouw mede-eigendom\"}]},{\"@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\"]},{\"@type\":\"Question\",\"@id\":\"https:\\\/\\\/syndicoach.be\\\/syndicus-brussel\\\/#faq-question-1778579151330\",\"position\":1,\"url\":\"https:\\\/\\\/syndicoach.be\\\/syndicus-brussel\\\/#faq-question-1778579151330\",\"name\":\"Mag een Vlaamse syndicus werken voor een VME in Brussel?\",\"answerCount\":1,\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Ja. De BIV-erkenning geldt voor heel Belgi\u00eb. Een syndicus die ingeschreven is bij het Beroepsinstituut van Vastgoedmakelaars mag in elk gewest werken, zolang de wettelijke verplichtingen (tweetaligheid, gewestelijke regelgeving) worden nageleefd.<br>\",\"inLanguage\":\"fr-BE\"},\"inLanguage\":\"fr-BE\"},{\"@type\":\"Question\",\"@id\":\"https:\\\/\\\/syndicoach.be\\\/syndicus-brussel\\\/#faq-question-1778579598881\",\"position\":2,\"url\":\"https:\\\/\\\/syndicoach.be\\\/syndicus-brussel\\\/#faq-question-1778579598881\",\"name\":\"Moet mijn syndicus in Brussel tweetalig zijn?\",\"answerCount\":1,\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Brussel is officieel tweetalig. Als minstens \u00e9\u00e9n mede-eigenaar daarom vraagt, moeten oproepingsbrieven, notulen en offici\u00eble communicatie in zowel Nederlands als Frans worden geleverd. Syndicoach en OpenVME werkt standaard tweetalig voor Brusselse dossiers.<br>\",\"inLanguage\":\"fr-BE\"},\"inLanguage\":\"fr-BE\"},{\"@type\":\"Question\",\"@id\":\"https:\\\/\\\/syndicoach.be\\\/syndicus-brussel\\\/#faq-question-1778579611495\",\"position\":3,\"url\":\"https:\\\/\\\/syndicoach.be\\\/syndicus-brussel\\\/#faq-question-1778579611495\",\"name\":\"Wat is de EPB-deadline voor mede-eigendommen in Brussel?\",\"answerCount\":1,\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Vanaf 1 januari 2033 moet elke woning in het Brussels Hoofdstedelijk Gewest een EPB-niveau van maximaal 275 kWh\\\/(m\u00b2.jaar) halen. De VME wordt mede-verantwoordelijk voor het naleven hiervan voor de gemene delen. Tegen ten vroegste 31 december 2045 wordt het doel aangescherpt tot 150 kWh\\\/(m\u00b2.jaar). Bron: Brussels Wetboek voor Lucht, Klimaat en Energiebeheersing (BWLKE).\",\"inLanguage\":\"fr-BE\"},\"inLanguage\":\"fr-BE\"},{\"@type\":\"Question\",\"@id\":\"https:\\\/\\\/syndicoach.be\\\/syndicus-brussel\\\/#faq-question-1778579634186\",\"position\":4,\"url\":\"https:\\\/\\\/syndicoach.be\\\/syndicus-brussel\\\/#faq-question-1778579634186\",\"name\":\"Wat kost een syndicus voor een klein appartementsgebouw in Brussel?\",\"answerCount\":1,\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Voor kleine VME's van 3 tot 10 kavels liggen de marktprijzen tussen 250 en 450 euro per kavel per jaar. Het Syndicoach-formulemodel (Assistent, Coach, Captain) biedt een transparante prijs die je vooraf kent, zonder kantoorkosten of verborgen marges.\",\"inLanguage\":\"fr-BE\"},\"inLanguage\":\"fr-BE\"},{\"@type\":\"Question\",\"@id\":\"https:\\\/\\\/syndicoach.be\\\/syndicus-brussel\\\/#faq-question-1778579644713\",\"position\":5,\"url\":\"https:\\\/\\\/syndicoach.be\\\/syndicus-brussel\\\/#faq-question-1778579644713\",\"name\":\"Is een Brusselse VME verplicht ingeschreven bij de KBO?\",\"answerCount\":1,\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Ja. Een VME wordt erkend als rechtspersoon zodra ze ingeschreven is bij de Kruispuntbank van Ondernemingen. Zonder KBO-nummer kan de VME geen Renolution-premies aanvragen en heeft ze geen rechtspersoonlijkheid om bijv. juridische stappen te ondernemen.\",\"inLanguage\":\"fr-BE\"},\"inLanguage\":\"fr-BE\"},{\"@type\":\"Question\",\"@id\":\"https:\\\/\\\/syndicoach.be\\\/syndicus-brussel\\\/#faq-question-1778579705519\",\"position\":6,\"url\":\"https:\\\/\\\/syndicoach.be\\\/syndicus-brussel\\\/#faq-question-1778579705519\",\"name\":\"Kan Syndicoach mijn VME helpen met Renolution-premies?\",\"answerCount\":1,\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Ja. Syndicoach co\u00f6rdineert de KBO-registratie indien nodig, ondersteunt bij de aanvraag van Renolution-premies en werkt samen met de Facilitator Mede-eigendom van <a href=\\\"https:\\\/\\\/leefmilieu.brussels\\\/\\\" type=\\\"link\\\" id=\\\"https:\\\/\\\/leefmilieu.brussels\\\/\\\">Leefmilieu Brussel<\\\/a> om renovatieprojecten op poten te zetten.\",\"inLanguage\":\"fr-BE\"},\"inLanguage\":\"fr-BE\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Syndic \u00e0 Bruxelles : gestion bilingue ACP | Syndicoach","description":"Vous cherchez un syndic \u00e0 Bruxelles ? Un coach bilingue pour votre ACP, pr\u00eat pour la date butoir de l'EPB en 2033 et les primes Renolution. Devis sur mesure.","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\/syndic-bruxelles\/","og_locale":"fr_FR","og_type":"article","og_title":"Syndicus Brussel: tweetalig VME-beheer | Syndicoach","og_description":"Syndicus Brussel nodig? Tweetalige coach voor jouw VME, klaar voor de EPB-deadline 2033 en Renolution-premies. Offerte op maat.","og_url":"https:\/\/syndicoach.be\/fr\/syndic-bruxelles\/","og_site_name":"Syndicoach","article_publisher":"https:\/\/www.facebook.com\/syndicoach","article_modified_time":"2026-09-24T15:14:30+00:00","og_image":[{"width":2560,"height":1440,"url":"https:\/\/syndicoach.be\/wp-content\/uploads\/2026\/05\/syndicus-brussel-gebouw-syndicoach-edited-scaled.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_misc":{"Dur\u00e9e de lecture est.":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":["WebPage","FAQPage"],"@id":"https:\/\/syndicoach.be\/syndicus-brussel\/","url":"https:\/\/syndicoach.be\/syndicus-brussel\/","name":"Syndic \u00e0 Bruxelles : gestion bilingue ACP | Syndicoach","isPartOf":{"@id":"https:\/\/syndicoach.be\/#website"},"primaryImageOfPage":{"@id":"https:\/\/syndicoach.be\/syndicus-brussel\/#primaryimage"},"image":{"@id":"https:\/\/syndicoach.be\/syndicus-brussel\/#primaryimage"},"thumbnailUrl":"https:\/\/syndicoach.be\/wp-content\/uploads\/2026\/05\/syndicus-brussel-gebouw-syndicoach-edited-scaled.jpg","datePublished":"2026-05-12T09:38:38+00:00","dateModified":"2026-09-24T15:14:30+00:00","description":"Vous cherchez un syndic \u00e0 Bruxelles ? Un coach bilingue pour votre ACP, pr\u00eat pour la date butoir de l'EPB en 2033 et les primes Renolution. Devis sur mesure.","breadcrumb":{"@id":"https:\/\/syndicoach.be\/syndicus-brussel\/#breadcrumb"},"mainEntity":[{"@id":"https:\/\/syndicoach.be\/syndicus-brussel\/#faq-question-1778579151330"},{"@id":"https:\/\/syndicoach.be\/syndicus-brussel\/#faq-question-1778579598881"},{"@id":"https:\/\/syndicoach.be\/syndicus-brussel\/#faq-question-1778579611495"},{"@id":"https:\/\/syndicoach.be\/syndicus-brussel\/#faq-question-1778579634186"},{"@id":"https:\/\/syndicoach.be\/syndicus-brussel\/#faq-question-1778579644713"},{"@id":"https:\/\/syndicoach.be\/syndicus-brussel\/#faq-question-1778579705519"}],"inLanguage":"fr-BE","potentialAction":[{"@type":"ReadAction","target":["https:\/\/syndicoach.be\/syndicus-brussel\/"]}]},{"@type":"ImageObject","inLanguage":"fr-BE","@id":"https:\/\/syndicoach.be\/syndicus-brussel\/#primaryimage","url":"https:\/\/syndicoach.be\/wp-content\/uploads\/2026\/05\/syndicus-brussel-gebouw-syndicoach-edited-scaled.jpg","contentUrl":"https:\/\/syndicoach.be\/wp-content\/uploads\/2026\/05\/syndicus-brussel-gebouw-syndicoach-edited-scaled.jpg","width":2560,"height":1440,"caption":"syndic bruxelles"},{"@type":"BreadcrumbList","@id":"https:\/\/syndicoach.be\/syndicus-brussel\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/syndicoach.be\/"},{"@type":"ListItem","position":2,"name":"Syndicus Brussel: tweetalig gebouwbeheer op maat van jouw mede-eigendom"}]},{"@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"]},{"@type":"Question","@id":"https:\/\/syndicoach.be\/syndicus-brussel\/#faq-question-1778579151330","position":1,"url":"https:\/\/syndicoach.be\/syndicus-brussel\/#faq-question-1778579151330","name":"Un syndic flamand peut-il travailler pour une copropri\u00e9t\u00e9 \u00e0 Bruxelles ?","answerCount":1,"acceptedAnswer":{"@type":"Answer","text":"Ja. De BIV-erkenning geldt voor heel Belgi\u00eb. Een syndicus die ingeschreven is bij het Beroepsinstituut van Vastgoedmakelaars mag in elk gewest werken, zolang de wettelijke verplichtingen (tweetaligheid, gewestelijke regelgeving) worden nageleefd.<br>","inLanguage":"fr-BE"},"inLanguage":"fr-BE"},{"@type":"Question","@id":"https:\/\/syndicoach.be\/syndicus-brussel\/#faq-question-1778579598881","position":2,"url":"https:\/\/syndicoach.be\/syndicus-brussel\/#faq-question-1778579598881","name":"Mon syndic doit-il \u00eatre bilingue \u00e0 Bruxelles ?","answerCount":1,"acceptedAnswer":{"@type":"Answer","text":"Brussel is officieel tweetalig. Als minstens \u00e9\u00e9n mede-eigenaar daarom vraagt, moeten oproepingsbrieven, notulen en offici\u00eble communicatie in zowel Nederlands als Frans worden geleverd. Syndicoach en OpenVME werkt standaard tweetalig voor Brusselse dossiers.<br>","inLanguage":"fr-BE"},"inLanguage":"fr-BE"},{"@type":"Question","@id":"https:\/\/syndicoach.be\/syndicus-brussel\/#faq-question-1778579611495","position":3,"url":"https:\/\/syndicoach.be\/syndicus-brussel\/#faq-question-1778579611495","name":"Quelle est la date limite du PEB pour les copropri\u00e9t\u00e9s \u00e0 Bruxelles ?","answerCount":1,"acceptedAnswer":{"@type":"Answer","text":"Vanaf 1 januari 2033 moet elke woning in het Brussels Hoofdstedelijk Gewest een EPB-niveau van maximaal 275 kWh\/(m\u00b2.jaar) halen. De VME wordt mede-verantwoordelijk voor het naleven hiervan voor de gemene delen. Tegen ten vroegste 31 december 2045 wordt het doel aangescherpt tot 150 kWh\/(m\u00b2.jaar). Bron: Brussels Wetboek voor Lucht, Klimaat en Energiebeheersing (BWLKE).","inLanguage":"fr-BE"},"inLanguage":"fr-BE"},{"@type":"Question","@id":"https:\/\/syndicoach.be\/syndicus-brussel\/#faq-question-1778579634186","position":4,"url":"https:\/\/syndicoach.be\/syndicus-brussel\/#faq-question-1778579634186","name":"Combien co\u00fbte un syndic pour un petit immeuble \u00e0 appartements \u00e0 Bruxelles ?","answerCount":1,"acceptedAnswer":{"@type":"Answer","text":"Voor kleine VME's van 3 tot 10 kavels liggen de marktprijzen tussen 250 en 450 euro per kavel per jaar. Het Syndicoach-formulemodel (Assistent, Coach, Captain) biedt een transparante prijs die je vooraf kent, zonder kantoorkosten of verborgen marges.","inLanguage":"fr-BE"},"inLanguage":"fr-BE"},{"@type":"Question","@id":"https:\/\/syndicoach.be\/syndicus-brussel\/#faq-question-1778579644713","position":5,"url":"https:\/\/syndicoach.be\/syndicus-brussel\/#faq-question-1778579644713","name":"Une soci\u00e9t\u00e9 ACP bruxelloise doit-elle obligatoirement \u00eatre inscrite \u00e0 la BCE ?","answerCount":1,"acceptedAnswer":{"@type":"Answer","text":"Ja. Een VME wordt erkend als rechtspersoon zodra ze ingeschreven is bij de Kruispuntbank van Ondernemingen. Zonder KBO-nummer kan de VME geen Renolution-premies aanvragen en heeft ze geen rechtspersoonlijkheid om bijv. juridische stappen te ondernemen.","inLanguage":"fr-BE"},"inLanguage":"fr-BE"},{"@type":"Question","@id":"https:\/\/syndicoach.be\/syndicus-brussel\/#faq-question-1778579705519","position":6,"url":"https:\/\/syndicoach.be\/syndicus-brussel\/#faq-question-1778579705519","name":"Syndicoach peut-il aider mon ACP \u00e0 obtenir des primes Renolution ?","answerCount":1,"acceptedAnswer":{"@type":"Answer","text":"Ja. Syndicoach co\u00f6rdineert de KBO-registratie indien nodig, ondersteunt bij de aanvraag van Renolution-premies en werkt samen met de Facilitator Mede-eigendom van <a href=\"https:\/\/leefmilieu.brussels\/\" type=\"link\" id=\"https:\/\/leefmilieu.brussels\/\">Leefmilieu Brussel<\/a> om renovatieprojecten op poten te zetten.","inLanguage":"fr-BE"},"inLanguage":"fr-BE"}]}},"_links":{"self":[{"href":"https:\/\/syndicoach.be\/fr\/wp-json\/wp\/v2\/pages\/16771","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=16771"}],"version-history":[{"count":49,"href":"https:\/\/syndicoach.be\/fr\/wp-json\/wp\/v2\/pages\/16771\/revisions"}],"predecessor-version":[{"id":18897,"href":"https:\/\/syndicoach.be\/fr\/wp-json\/wp\/v2\/pages\/16771\/revisions\/18897"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/syndicoach.be\/fr\/wp-json\/wp\/v2\/media\/16773"}],"wp:attachment":[{"href":"https:\/\/syndicoach.be\/fr\/wp-json\/wp\/v2\/media?parent=16771"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}