{"id":663,"date":"2026-09-06T20:46:06","date_gmt":"2026-09-06T18:46:06","guid":{"rendered":"https:\/\/staging.vitwerkplek.nl\/afspraakmodule\/"},"modified":"2026-09-06T20:46:06","modified_gmt":"2026-09-06T18:46:06","slug":"afspraakmodule","status":"publish","type":"page","link":"https:\/\/vitwerkplek.nl\/agenda\/afspraakmodule\/","title":{"rendered":"Afspraak inplannen"},"content":{"rendered":"        <style>\n        #vitb_baa5aac8{font-family:'DM Sans','Segoe UI',sans-serif;color:#111;width:100%;box-sizing:border-box;}\n        #vitb_baa5aac8 *{box-sizing:border-box;}\n        #vitb_baa5aac8 .vitb-hidden{display:none!important;}\n        #vitb_baa5aac8 .vitb-step{scroll-margin-top:100px;}\n        #vitb_baa5aac8 .vitb-step-title{font-family:'Syne','DM Sans',sans-serif;font-size:20px;font-weight:700;margin:0 0 20px;display:flex;align-items:center;gap:10px;}\n        #vitb_baa5aac8 .vitb-step-num{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;background:#FF8514;color:#fff;border-radius:50%;font-size:14px;font-weight:800;flex-shrink:0;}\n        #vitb_baa5aac8 .vitb-back{background:none;border:none;color:#888;font-size:13px;cursor:pointer;padding:0;margin-bottom:16px;font-family:inherit;}\n        #vitb_baa5aac8 .vitb-back:hover{color:#FF8514;}\n        #vitb_baa5aac8 .vitb-sub{font-size:14px;color:#555;margin:-8px 0 16px;}\n        #vitb_baa5aac8 .vitb-note{font-size:12px;color:#aaa;margin-top:8px;}\n        #vitb_baa5aac8 .vitb-list{display:flex;flex-direction:column;gap:8px;}\n        #vitb_baa5aac8 .vitb-group{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:#FF8514;margin:16px 0 2px;}\n        #vitb_baa5aac8 .vitb-group:first-child{margin-top:0;}\n        #vitb_baa5aac8 .vitb-item{display:flex;align-items:flex-start;gap:14px;padding:16px 18px;background:#fff;border:1.5px solid #e8e8e8;border-radius:10px;cursor:pointer;transition:border-color .15s,background .15s;}\n        #vitb_baa5aac8 .vitb-item:hover{border-color:#FF8514;background:#fffaf5;}\n        #vitb_baa5aac8 .vitb-item-body{flex:1;}\n        #vitb_baa5aac8 .vitb-item-name{font-size:15px;font-weight:700;color:#111;margin-bottom:4px;}\n        #vitb_baa5aac8 .vitb-item:hover .vitb-item-name{color:#FF8514;}\n        #vitb_baa5aac8 .vitb-item-desc{font-size:13px;color:#666;line-height:1.5;margin-bottom:8px;}\n        #vitb_baa5aac8 .vitb-item-badges{display:flex;gap:6px;flex-wrap:wrap;}\n        #vitb_baa5aac8 .vitb-badge{font-size:11px;font-weight:600;color:#777;background:#f5f5f5;padding:3px 9px;border-radius:20px;}\n        #vitb_baa5aac8 .vitb-item-arrow{font-size:22px;color:#ccc;flex-shrink:0;line-height:1.4;}\n        #vitb_baa5aac8 .vitb-item:hover .vitb-item-arrow{color:#FF8514;}\n        #vitb_baa5aac8 .vitb-s2{display:grid;grid-template-columns:300px 240px;gap:24px;align-items:start;justify-content:start;}\n        #vitb_baa5aac8 .vitb-cal{background:#fff;border:2px solid #e5e5e5;border-radius:12px;overflow:hidden;width:100%;max-width:300px;position:relative;}\n        #vitb_baa5aac8 .vitb-cal-hd{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:#FF8514;color:#fff;}\n        #vitb_baa5aac8 .vitb-cal-title{font-weight:700;font-size:14px;text-transform:capitalize;}\n        #vitb_baa5aac8 .vitb-cal-nav{background:none;border:none;color:#fff;font-size:28px;cursor:pointer;padding:0 6px;line-height:1;opacity:.8;}\n        #vitb_baa5aac8 .vitb-cal-nav:hover{opacity:1;}\n        #vitb_baa5aac8 .vitb-cal-nav:disabled{opacity:.3;cursor:default;}\n        #vitb_baa5aac8 .vitb-cal-wd{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));background:#fff8f1;border-bottom:1px solid #f0e8df;}\n        #vitb_baa5aac8 .vitb-cal-wd span{text-align:center;min-width:0;padding:9px 0;font-size:11px;font-weight:700;color:#aaa;text-transform:uppercase;}\n        #vitb_baa5aac8 .vitb-cal-days{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));padding:6px;gap:3px;}\n        #vitb_baa5aac8 .vitb-cal-day{aspect-ratio:1;min-width:0;padding:0;display:flex;align-items:center;justify-content:center;border-radius:6px;font-size:13px;cursor:pointer;border:2px solid transparent;background:none;font-family:inherit;color:#111;transition:background .12s,border-color .12s;}\n        #vitb_baa5aac8 .vitb-cal-day:hover:not(:disabled){background:#fff8f1;border-color:#FF8514;color:#FF8514;}\n        #vitb_baa5aac8 .vitb-cal-day:disabled{color:#ddd;cursor:default;}\n        #vitb_baa5aac8 .vitb-cal-day.vitb-selected{background:#FF8514!important;color:#fff!important;border-color:#FF8514!important;font-weight:700;}\n        #vitb_baa5aac8 .vitb-s2-info{display:flex;flex-direction:column;gap:8px;}\n        #vitb_baa5aac8 .vitb-info-box{background:#fff;border:1.5px solid #f0f0f0;border-radius:10px;padding:12px 14px;font-size:13px;color:#555;line-height:1.6;}\n        #vitb_baa5aac8 .vitb-info-box strong{color:#111;display:block;margin-bottom:4px;font-size:12px;text-transform:uppercase;letter-spacing:.04em;}\n        #vitb_baa5aac8 .vitb-info-box a{color:#FF8514;text-decoration:none;}\n        #vitb_baa5aac8 .vitb-info-box ol{margin:4px 0 0;padding-left:18px;}\n        #vitb_baa5aac8 .vitb-info-orange{background:#fff8f1!important;border-color:#ffe0b2!important;padding:10px 14px!important;}\n        #vitb_baa5aac8 .vitb-info-lbl{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#FF8514;margin-bottom:4px;}\n        #vitb_baa5aac8 .vitb-info-val{font-size:15px;font-weight:700;color:#111;}\n        #vitb_baa5aac8 .vitb-urgency{background:linear-gradient(135deg,#fff8f1 0%,#ffe8d1 100%);border:2px solid #FF8514;border-radius:8px;padding:10px 16px;margin-bottom:12px;font-size:14px;font-weight:700;color:#d97706;display:flex;align-items:center;gap:6px;animation:vitb-pulse 2s ease-in-out infinite;}\n        @keyframes vitb-pulse{0%,100%{transform:scale(1);}50%{transform:scale(1.02);}}\n        #vitb_baa5aac8 .vitb-slots{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px;}\n        #vitb_baa5aac8 .vitb-slot{padding:10px 20px;border:2px solid #e5e5e5;border-radius:8px;background:#fff;font-size:15px;font-weight:600;cursor:pointer;font-family:inherit;transition:border-color .15s,background .15s;}\n        #vitb_baa5aac8 .vitb-slot:hover{border-color:#FF8514;color:#FF8514;}\n        #vitb_baa5aac8 .vitb-slot.vitb-selected{border-color:#FF8514!important;background:#FF8514!important;color:#fff!important;}\n        #vitb_baa5aac8 .vitb-form{display:flex;flex-direction:column;gap:14px;}\n        #vitb_baa5aac8.vitb-wrap{max-width:840px;margin-left:auto;margin-right:auto;}\n        #vitb_baa5aac8 .vitb-adresstap{margin-top:14px;display:flex;flex-direction:column;gap:8px;max-width:520px;}\n        #vitb_baa5aac8 .vitb-adresrij{display:grid;grid-template-columns:minmax(0,150px) minmax(0,110px);gap:10px;}\n        #vitb_baa5aac8 .vitb-adresstap .vitb-back{margin-bottom:2px;}\n        #vitb_baa5aac8 .vitb-adresstap .vitb-btn{width:auto;align-self:flex-start;padding:12px 22px;}\n        #vitb_baa5aac8 .vitb-adresvondst{font-weight:700;color:#17130f;min-height:1.2em;}\n        #vitb_baa5aac8 .vitb-adresvondst[data-stand=\"fout\"]{color:#b91c1c;font-weight:400;}\n        @media(max-width:520px){ #vitb_baa5aac8 .vitb-adresstap .vitb-btn{width:100%;} }\n        #vitb_baa5aac8 .vitb-cal-laden .vitb-cal-day{opacity:.45;}\n        #vitb_baa5aac8 .vitb-cal-wacht{position:absolute;inset:0;z-index:3;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:16px;text-align:center;background:rgba(255,255,255,.95);color:#17130f;font-size:15px;font-weight:700;line-height:1.4;}\n        #vitb_baa5aac8 .vitb-cal-wacht.vitb-hidden{display:none;}\n        #vitb_baa5aac8 .vitb-spin{width:28px;height:28px;border:3px solid #eee;border-top-color:#FF8514;border-radius:50%;animation:vitb-draai .8s linear infinite;}\n        @keyframes vitb-draai{to{transform:rotate(360deg);}}\n        @media(prefers-reduced-motion:reduce){ #vitb_baa5aac8 .vitb-spin{animation:none;} }\n        #vitb_baa5aac8 .vitb-field{display:flex;flex-direction:column;gap:5px;}\n        #vitb_baa5aac8 .vitb-field label{font-size:13px;font-weight:700;color:#444;}\n        #vitb_baa5aac8 .vitb-field input{padding:11px 14px;border:2px solid #e5e5e5;border-radius:8px;font-size:15px;font-family:inherit;width:100%;outline:none;transition:border-color .15s;}\n        #vitb_baa5aac8 .vitb-field textarea{padding:11px 14px;border:2px solid #e5e5e5;border-radius:8px;font-size:15px;font-family:inherit;width:100%;outline:none;transition:border-color .15s;}\n        #vitb_baa5aac8 .vitb-field input:focus{border-color:#FF8514;}\n        #vitb_baa5aac8 .vitb-field textarea:focus{border-color:#FF8514;}\n        #vitb_baa5aac8 .vitb-req{color:#FF8514;}\n        #vitb_baa5aac8 .vitb-btn{padding:14px;background:#FF8514;color:#fff;border:none;border-radius:8px;font-size:15px;font-weight:700;cursor:pointer;font-family:inherit;width:100%;display:block;transition:background .15s;}\n        #vitb_baa5aac8 .vitb-btn:hover{background:#e07310;}\n        #vitb_baa5aac8 .vitb-btn:disabled{background:#ccc;cursor:not-allowed;}\n        #vitb_baa5aac8 .vitb-error{background:#fef2f2;border:1px solid #fca5a5;border-radius:6px;padding:10px 14px;font-size:14px;color:#b91c1c;}\n        #vitb_baa5aac8 .vitb-success{text-align:center;padding:32px 16px;}\n        #vitb_baa5aac8 .vitb-success-icon{width:64px;height:64px;background:#FF8514;color:#fff;border-radius:50%;font-size:32px;display:flex;align-items:center;justify-content:center;margin:0 auto 20px;}\n        #vitb_baa5aac8 .vitb-success h3{font-size:22px;margin:0 0 12px;}\n        #vitb_baa5aac8 .vitb-success p{font-size:15px;color:#444;margin:0 0 8px;}\n        #vitb_baa5aac8 .vitb-loading{font-size:14px;color:#aaa;padding:8px 0;}\n        #vitb_baa5aac8 .vitb-no-slots{font-size:14px;color:#888;padding:8px 0;}\n        @media(max-width:720px){ #vitb_baa5aac8 .vitb-s2{grid-template-columns:1fr;} }\n                                        <\/style>\n\n        <div class=\"vitb-wrap\" id=\"vitb_baa5aac8\">\n\n        <!-- S1: Dienst kiezen -->\n        <div class=\"vitb-step\" id=\"vitb_baa5aac8_s1\">\n            <h3 class=\"vitb-step-title\"><span class=\"vitb-step-num\">1<\/span> Kies een dienst<\/h3>\n            <div class=\"vitb-list\">\n                                    <div class=\"vitb-group\">Kennismaken<\/div>\n                        <div class=\"vitb-item\" onclick=\"vitb_pick('vitb_baa5aac8', {&quot;id&quot;:&quot;bellen&quot;,&quot;name&quot;:&quot;Belafspraak \\u2014 een uur, wij bellen u&quot;,&quot;loc&quot;:&quot;werkplaats&quot;,&quot;dur&quot;:60,&quot;pre&quot;:0,&quot;post&quot;:0,&quot;ts&quot;:&quot;&quot;,&quot;te&quot;:&quot;&quot;})\">\n                <div class=\"vitb-item-body\">\n                    <div class=\"vitb-item-name\">Belafspraak \u2014 een uur, wij bellen u<\/div>\n                                        <div class=\"vitb-item-desc\">Wij bellen u op het gekozen moment. U vertelt wat u nu gebruikt en waar het schuurt; wij zeggen eerlijk of de VIT Werkplek daarbij past en wat het kost. Voor heel Nederland.<\/div>\n                                        <div class=\"vitb-item-badges\">\n                        <span class=\"vitb-badge\">Telefonisch<\/span>\n                        <span class=\"vitb-badge\">1 uur<\/span>\n                    <\/div>\n                <\/div>\n                <div class=\"vitb-item-arrow\">&#8250;<\/div>\n            <\/div>\n                                    <div class=\"vitb-item\" onclick=\"vitb_pick('vitb_baa5aac8', {&quot;id&quot;:&quot;videobellen&quot;,&quot;name&quot;:&quot;Videogesprek \\u2014 wij laten de werkplek live zien&quot;,&quot;loc&quot;:&quot;werkplaats&quot;,&quot;dur&quot;:60,&quot;pre&quot;:0,&quot;post&quot;:0,&quot;ts&quot;:&quot;&quot;,&quot;te&quot;:&quot;&quot;})\">\n                <div class=\"vitb-item-body\">\n                    <div class=\"vitb-item-name\">Videogesprek \u2014 wij laten de werkplek live zien<\/div>\n                                        <div class=\"vitb-item-desc\">Een demo op uw scherm: mail en agenda in Outlook, gedeelde mappen, videobellen en de wachtwoordkluis, met uw manier van werken als voorbeeld. De link staat in de bevestiging. Voor heel Nederland.<\/div>\n                                        <div class=\"vitb-item-badges\">\n                        <span class=\"vitb-badge\">Videogesprek<\/span>\n                        <span class=\"vitb-badge\">1 uur<\/span>\n                    <\/div>\n                <\/div>\n                <div class=\"vitb-item-arrow\">&#8250;<\/div>\n            <\/div>\n                                    <div class=\"vitb-group\">Overstappen<\/div>\n                        <div class=\"vitb-item\" onclick=\"vitb_pick('vitb_baa5aac8', {&quot;id&quot;:&quot;op_locatie&quot;,&quot;name&quot;:&quot;Adviesgesprek bij u op locatie \\u2014 anderhalf uur&quot;,&quot;loc&quot;:&quot;locatie&quot;,&quot;dur&quot;:90,&quot;pre&quot;:30,&quot;post&quot;:30,&quot;ts&quot;:&quot;&quot;,&quot;te&quot;:&quot;&quot;})\">\n                <div class=\"vitb-item-body\">\n                    <div class=\"vitb-item-name\">Adviesgesprek bij u op locatie \u2014 anderhalf uur<\/div>\n                                        <div class=\"vitb-item-desc\">Wij komen langs, binnen 30 km van Hoevelaken. Handig als meerdere mensen mee willen praten of als wij de werkplekken en het netwerk willen zien. Woont u verder weg? Kies dan het videogesprek.<\/div>\n                                        <div class=\"vitb-item-badges\">\n                        <span class=\"vitb-badge\">Op locatie, binnen 30 km van Hoevelaken<\/span>\n                        <span class=\"vitb-badge\">1u 30m<\/span>\n                    <\/div>\n                <\/div>\n                <div class=\"vitb-item-arrow\">&#8250;<\/div>\n            <\/div>\n                        <\/div>\n            <div class=\"vitb-adresstap vitb-hidden\" id=\"vitb_baa5aac8_adresstap\">\n                <button type=\"button\" class=\"vitb-back\" onclick=\"vitb_adres_terug('vitb_baa5aac8')\">&#8592; Andere afspraak kiezen<\/button>\n                <div class=\"vitb-adresrij\">\n                    <div class=\"vitb-field\">\n                        <label for=\"vitb_baa5aac8_postcode\">Postcode <span class=\"vitb-req\">*<\/span><\/label>\n                        <input type=\"text\" id=\"vitb_baa5aac8_postcode\" oninput=\"vitb_adres_tik('vitb_baa5aac8')\" placeholder=\"3871 MS\" onkeydown=\"vitb_adres_enter('vitb_baa5aac8', event)\" autocomplete=\"postal-code\" inputmode=\"text\" maxlength=\"8\">\n                    <\/div>\n                    <div class=\"vitb-field\">\n                        <label for=\"vitb_baa5aac8_huisnr\">Huisnummer <span class=\"vitb-req\">*<\/span><\/label>\n                        <input type=\"text\" id=\"vitb_baa5aac8_huisnr\" oninput=\"vitb_adres_tik('vitb_baa5aac8')\" placeholder=\"8a\" onkeydown=\"vitb_adres_enter('vitb_baa5aac8', event)\" autocomplete=\"address-line2\" maxlength=\"10\">\n                    <\/div>\n                <\/div>\n                <p class=\"vitb-sub vitb-adresvondst\" id=\"vitb_baa5aac8_adresvondst\" role=\"status\" aria-live=\"polite\"><\/p>\n                <p class=\"vitb-sub\" id=\"vitb_baa5aac8_adresnote\">Postcode en huisnummer zijn genoeg; wij zoeken uw adres erbij en rekenen de reistijd vanaf Hoevelaken mee.<\/p>\n                <button type=\"button\" class=\"vitb-btn\" id=\"vitb_baa5aac8_adresok\" onclick=\"vitb_adresstap('vitb_baa5aac8')\">Toon beschikbare dagen<\/button>\n            <\/div>\n        <\/div>\n\n        <!-- S2: Datum kiezen -->\n        <div class=\"vitb-step vitb-hidden\" id=\"vitb_baa5aac8_s2\">\n            <button class=\"vitb-back\" onclick=\"vitb_terug_s2('vitb_baa5aac8')\">&#8592; Terug<\/button>\n            <h3 class=\"vitb-step-title\"><span class=\"vitb-step-num\">2<\/span> Kies een datum<\/h3>\n            <div class=\"vitb-s2\">\n                <div>\n                    <div class=\"vitb-cal\" id=\"vitb_baa5aac8_cal\"\n                        data-min=\"2026-09-08\"\n                        data-max=\"2026-12-06\"\n                        data-wd=\"1,2,3,4,5\"\n                        data-bl='[\"2026-01-01\",\"2026-04-03\",\"2026-04-05\",\"2026-04-06\",\"2026-04-27\",\"2026-05-05\",\"2026-05-14\",\"2026-05-24\",\"2026-05-25\",\"2026-12-25\",\"2026-12-26\",\"2027-01-01\",\"2027-03-26\",\"2027-03-28\",\"2027-03-29\",\"2027-04-27\",\"2027-05-05\",\"2027-05-06\",\"2027-05-16\",\"2027-05-17\",\"2027-12-25\",\"2027-12-26\"]'>\n                        <div class=\"vitb-cal-hd\">\n                            <button class=\"vitb-cal-nav\" onclick=\"vitb_cnav('vitb_baa5aac8', -1)\" id=\"vitb_baa5aac8_prev\">&#8249;<\/button>\n                            <span class=\"vitb-cal-title\" id=\"vitb_baa5aac8_title\"><\/span>\n                            <button class=\"vitb-cal-nav\" onclick=\"vitb_cnav('vitb_baa5aac8', 1)\" id=\"vitb_baa5aac8_next\">&#8250;<\/button>\n                        <\/div>\n                        <div class=\"vitb-cal-wd\">\n                            <span>Ma<\/span><span>Di<\/span><span>Wo<\/span><span>Do<\/span><span>Vr<\/span>                        <\/div>\n                        <div class=\"vitb-cal-days\" id=\"vitb_baa5aac8_days\"><\/div>\n                        <div class=\"vitb-cal-wacht vitb-hidden\" id=\"vitb_baa5aac8_calwacht\" role=\"status\" aria-live=\"polite\">\n                            <span class=\"vitb-spin\" aria-hidden=\"true\"><\/span>\n                            <span>Wij zoeken de dagen die passen<br>Een ogenblik geduld.<\/span>\n                        <\/div>\n                    <\/div>\n                    <p class=\"vitb-note\">Grijze dagen zijn niet beschikbaar.<\/p>\n                <\/div>\n                <div class=\"vitb-s2-info\">\n                    <div class=\"vitb-info-box vitb-info-orange\">\n                        <div class=\"vitb-info-lbl\">Geselecteerde dienst<\/div>\n                        <div class=\"vitb-info-val\" id=\"vitb_baa5aac8_svcname\"><\/div>\n                    <\/div>\n                    <div class=\"vitb-info-box\">\n                        <strong>Hoe werkt het?<\/strong>\n                        <ol><li>Kies een datum<\/li><li>Kies een tijdslot<\/li><li>Vul uw gegevens in<\/li><li>Ontvang bevestiging<\/li><\/ol>\n                    <\/div>\n                    <div class=\"vitb-info-box\">\n                        <strong>Vragen?<\/strong>\n                        <a href=\"tel:033-7811000\">033 &#8211; 781 1000<\/a><br>\n                        <a href=\"mailto:info@veenstra-it.nl\">info@veenstra-it.nl<\/a>\n                    <\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n\n        <!-- S3: Tijdslot -->\n        <div class=\"vitb-step vitb-hidden\" id=\"vitb_baa5aac8_s3\">\n            <button class=\"vitb-back\" onclick=\"vitb_go('vitb_baa5aac8', 2)\">&#8592; Terug<\/button>\n            <h3 class=\"vitb-step-title\"><span class=\"vitb-step-num\">3<\/span> Kies een tijdslot<\/h3>\n            <p class=\"vitb-sub\" id=\"vitb_baa5aac8_dlabel\"><\/p>\n            <div id=\"vitb_baa5aac8_slots\"><div class=\"vitb-loading\">Laden&#8230;<\/div><\/div>\n        <\/div>\n\n        <!-- S4: Gegevens -->\n        <div class=\"vitb-step vitb-hidden\" id=\"vitb_baa5aac8_s4\">\n            <button class=\"vitb-back\" onclick=\"vitb_go('vitb_baa5aac8', 3)\">&#8592; Terug<\/button>\n            <h3 class=\"vitb-step-title\"><span class=\"vitb-step-num\">4<\/span> Jouw gegevens<\/h3>\n            <p class=\"vitb-sub\" id=\"vitb_baa5aac8_summary\"><\/p>\n            <div class=\"vitb-form\">\n                <div class=\"vitb-field\">\n                    <label>Naam <span class=\"vitb-req\">*<\/span><\/label>\n                    <input type=\"text\" id=\"vitb_baa5aac8_name\" placeholder=\"Voor- en achternaam\" autocomplete=\"name\">\n                <\/div>\n                <div class=\"vitb-field\">\n                    <label>E-mailadres <span class=\"vitb-req\">*<\/span><\/label>\n                    <input type=\"email\" id=\"vitb_baa5aac8_email\" placeholder=\"jouw@email.nl\" autocomplete=\"email\">\n                <\/div>\n                <div class=\"vitb-field\">\n                    <label>Telefoonnummer <span class=\"vitb-req\">*<\/span><\/label>\n                    <input type=\"tel\" id=\"vitb_baa5aac8_phone\" placeholder=\"0612345678\" autocomplete=\"tel\">\n                <\/div>\n                <div class=\"vitb-field vitb-hidden\" id=\"vitb_baa5aac8_addrrow\">\n                    <label>Adres <span class=\"vitb-req\">*<\/span><\/label>\n                    <input type=\"text\" id=\"vitb_baa5aac8_addr\" placeholder=\"Straat 12, Hoevelaken\" autocomplete=\"street-address\">\n                    <div class=\"vitb-sub vitb-hidden\" id=\"vitb_baa5aac8_afstand\"><\/div>\n                <\/div>\n                <div class=\"vitb-field\">\n                    <label>Opmerkingen<\/label>\n                    <textarea id=\"vitb_baa5aac8_remarks\" rows=\"3\" placeholder=\"Vertel ons alvast wat er speelt\"><\/textarea>\n                <\/div>\n                <input type=\"text\" id=\"vitb_baa5aac8_hp\" style=\"display:none\" tabindex=\"-1\" autocomplete=\"off\">\n                <input type=\"hidden\" id=\"vitb_baa5aac8_ts\" name=\"form_ts\" value=\"\">\n                <div class=\"vitb-error vitb-hidden\" id=\"vitb_baa5aac8_err\"><\/div>\n                <button class=\"vitb-btn\" id=\"vitb_baa5aac8_sbtn\" onclick=\"vitb_submit('vitb_baa5aac8')\">Afspraak bevestigen &#8594;<\/button>\n            <\/div>\n        <\/div>\n\n        <!-- S5: Bevestiging -->\n        <div class=\"vitb-step vitb-hidden\" id=\"vitb_baa5aac8_s5\">\n            <div class=\"vitb-success\">\n                <div class=\"vitb-success-icon\">&#10003;<\/div>\n                <h3>Afspraak bevestigd!<\/h3>\n                <p id=\"vitb_baa5aac8_confirm\"><\/p>\n                <p style=\"font-size:13px;color:#888;\">U ontvangt een bevestiging per e-mail.<\/p>\n                <p style=\"font-size:13px;color:#888;margin-top:12px;\">Heb je vragen, wil je de afspraak wijzigen of annuleren?<br>Neem dan contact met ons op via <a href=\"tel:033-7811000\" style=\"color:#FF8514;font-weight:700;text-decoration:none;\">033 &#8211; 781 1000<\/a>.<\/p>\n                <button class=\"vitb-btn\" style=\"max-width:260px;margin:20px auto 0;\" onclick=\"vitb_reset('vitb_baa5aac8')\">Nieuwe afspraak<\/button>\n            <\/div>\n        <\/div>\n\n        <\/div><!-- \/.vitb-wrap -->\n\n                <script>\n        (function(){\n            \/\/ State voor deze widget instantie\n            if (!window._vitbSt) window._vitbSt = {};\n            window._vitbSt[\"vitb_baa5aac8\"] = {\n                svcId:null, svcName:null, svcLoc:null,\n                date:null, slotStart:null, slotLabel:null,\n                cy: new Date().getFullYear(),\n                cm: new Date().getMonth(),\n                avail: {},  \/\/ cache: 'YYYY-M' => ['YYYY-MM-DD', ...]\n                availLoading: false\n            };\n\n            \/\/ \u2500\u2500 navigatie \u2500\u2500\n            window.vitb_go = window.vitb_go || function(uid, step) {\n                var w = document.getElementById(uid);\n                if (!w) return;\n                w.querySelectorAll('.vitb-step').forEach(function(e){ e.classList.add('vitb-hidden'); });\n                var s = document.getElementById(uid + '_s' + step);\n                if (!s) return;\n                s.classList.remove('vitb-hidden');\n                var r = s.getBoundingClientRect();\n                if (r.top < 0) s.scrollIntoView({behavior:'smooth', block:'start'});\n            };\n\n            \/\/ \u2500\u2500 kalender render \u2500\u2500\n            window.vitb_crender = window.vitb_crender || function(uid) {\n                var st = window._vitbSt[uid];\n                var cal = document.getElementById(uid + '_cal');\n                if (!st || !cal) return;\n                var minD = new Date(cal.dataset.min + 'T00:00:00');\n                var maxD = new Date(cal.dataset.max + 'T00:00:00');\n                var wd   = cal.dataset.wd.split(',').map(Number);\n                var bl   = JSON.parse(cal.dataset.bl || '[]');\n                var mn   = ['januari','februari','maart','april','mei','juni','juli','augustus','september','oktober','november','december'];\n                var t = document.getElementById(uid + '_title');\n                if (t) t.textContent = mn[st.cm] + ' ' + st.cy;\n                var fi = new Date(st.cy, st.cm, 1);\n                var la = new Date(st.cy, st.cm + 1, 0);\n                var pb = document.getElementById(uid + '_prev');\n                var nb = document.getElementById(uid + '_next');\n                if (pb) pb.disabled = fi <= minD;\n                if (nb) nb.disabled = la >= maxD;\n                \n                \/\/ Bepaal welke dag van de week de eerste is (1=ma, 7=zo)\n                var dow1st = fi.getDay(); if (dow1st === 0) dow1st = 7;\n                \n                \/\/ Bepaal het offset binnen de werkdagen grid\n                \/\/ Als werkdagen bijv [1,2,3,4,5] zijn en de 1e is een woensdag (3),\n                \/\/ dan is de offset 2 (ma, di zijn v\u00f3\u00f3r woensdag in de grid)\n                var offset = wd.indexOf(dow1st);\n                \n                var h = '';\n                \/\/ Vul lege cellen voor dagen v\u00f3\u00f3r de eerste werkdag\n                for (var i = 0; i < offset; i++) {\n                    h += '<button class=\"vitb-cal-day\" disabled><\/button>';\n                }\n                \n                for (var d = 1; d <= la.getDate(); d++) {\n                    var dt  = new Date(st.cy, st.cm, d);\n                    var ds  = st.cy + '-' + String(st.cm+1).padStart(2,'0') + '-' + String(d).padStart(2,'0');\n                    var dw  = dt.getDay(); if (dw === 0) dw = 7;\n                    \n                    \/\/ Skip dagen die niet in de werkdagen lijst zitten\n                    if (!wd.includes(dw)) continue;\n                    \n                    var inRange = dt >= minD && dt <= maxD && !bl.includes(ds);\n                    var cacheKey = st.cy + '-' + st.cm;\n                    \/\/ Zolang de beschikbaarheid nog niet binnen is, blijft een dag dicht.\n                    \/\/ Anders staat alles even open en klapt het daarna dicht, en dat leest als een fout.\n                    var geladen  = Array.isArray(st.avail[cacheKey]);\n                    var hasAvail = geladen && st.avail[cacheKey].includes(ds);\n                    var ok  = inRange && hasAvail;\n                    var sel = (ds === st.date) ? ' vitb-selected' : '';\n                    var oc  = ok ? ' onclick=\"vitb_pdate(\\'' + uid + '\\',\\'' + ds + '\\')\"' : '';\n                    h += '<button class=\"vitb-cal-day' + sel + '\"' + (ok ? '' : ' disabled') + oc + '>' + d + '<\/button>';\n                }\n                var c = document.getElementById(uid + '_days');\n                if (c) c.innerHTML = h;\n                var bezig = !Array.isArray(st.avail[st.cy + '-' + st.cm]);\n                cal.classList.toggle('vitb-cal-laden', bezig);\n                var wacht = document.getElementById(uid + '_calwacht');\n                if (wacht) wacht.classList.toggle('vitb-hidden', !bezig);\n            };\n\n            \/\/ \u2500\u2500 dienst kiezen \u2500\u2500\n            \/\/ adres controleren zodra het is ingevuld: binnen de bezoekstraal of niet\n            window.vitb_afstand_koppel = window.vitb_afstand_koppel || function(uid) {\n                var inp = document.getElementById(uid + '_addr'), note = document.getElementById(uid + '_afstand');\n                if (!inp || inp.dataset.afstand) return;\n                inp.dataset.afstand = '1';\n                inp.addEventListener('change', function() {\n                    var adres = inp.value.trim(); if (!adres || !note) return;\n                    var cfg = window.vitBooking || {ajax_url:'', nonce:''};\n                    var xhr = new XMLHttpRequest();\n                    xhr.open('POST', cfg.ajax_url);\n                    xhr.setRequestHeader('Content-Type', 'application\/x-www-form-urlencoded');\n                    xhr.onload = function() {\n                        var res; try { res = JSON.parse(xhr.responseText); } catch(e) { return; }\n                        note.classList.remove('vitb-hidden');\n                        if (!res.success) { note.textContent = res.data || 'Adres niet gevonden.'; note.style.color = '#b91c1c'; return; }\n                        var km = String(res.data.km).replace('.', ',');\n                        if (res.data.binnen) { note.textContent = res.data.adres + ' ligt op ' + km + ' km van Hoevelaken: wij komen langs.'; note.style.color = ''; }\n                        else { note.textContent = res.data.adres + ' ligt op ' + km + ' km van Hoevelaken, buiten ons bezoekgebied van ' + res.data.straal + ' km. Kies hierboven een videogesprek of een belafspraak.'; note.style.color = '#b91c1c'; }\n                    };\n                    xhr.send('action=vit_afstand&nonce=' + encodeURIComponent(cfg.nonce) + '&address=' + encodeURIComponent(adres));\n                });\n            };\n            window.vitb_pick = window.vitb_pick || function(uid, d) {\n                var st = window._vitbSt[uid];\n                if (!st) return;\n                st.svcId   = d.id;\n                st.svcName = d.name;\n                st.svcLoc  = d.loc;\n                var n = document.getElementById(uid + '_svcname');\n                if (n) n.textContent = d.name;\n                var ar = document.getElementById(uid + '_addrrow');\n                if (ar) {\n                    if (d.loc === 'locatie') { ar.classList.add('vitb-hidden'); }\n                    else ar.classList.add('vitb-hidden');\n                }\n                var now = new Date();\n                st.cy = now.getFullYear();\n                st.cm = now.getMonth();\n                var stap = document.getElementById(uid + '_adresstap');\n                if (d.loc === 'locatie' && stap) {           \/\/ eerst weten waarheen, dan pas wanneer\n                    st.addr = '';\n                    stap.classList.remove('vitb-hidden');\n                    var v = document.getElementById(uid + '_postcode'); if (v) v.focus();\n                    return;\n                }\n                if (stap) stap.classList.add('vitb-hidden');\n                vitb_go(uid, 2);\n                vitb_crender(uid);\n                vitb_load_avail(uid);\n            };\n\n            window.vitb_adres_enter = window.vitb_adres_enter || function(uid, e) { if (e.key === 'Enter') { e.preventDefault(); vitb_adresstap(uid); } };\n            \/\/ Zodra postcode en huisnummer compleet zijn, zoeken wij het adres al op en\n            \/\/ tonen het. Dan ziet de bezoeker meteen of hij de goede plek heeft ingevuld.\n            window.vitb_adres_zoek = window.vitb_adres_zoek || function(uid, daarna) {\n                var st = window._vitbSt[uid]; if (!st) return;\n                var pc = document.getElementById(uid + '_postcode'), nr = document.getElementById(uid + '_huisnr');\n                var vondst = document.getElementById(uid + '_adresvondst');\n                var postcode = (pc && pc.value || '').replace(\/\\s+\/g, '').toUpperCase();\n                var nummer = (nr && nr.value || '').trim();\n                if (!\/^[1-9][0-9]{3}[A-Z]{2}$\/.test(postcode) || !\/^[0-9]\/.test(nummer)) {\n                    st.adresKlaar = null;\n                    if (vondst && !daarna) { vondst.textContent = ''; vondst.removeAttribute('data-stand'); }\n                    if (daarna) daarna(null, 'Vul uw postcode en huisnummer in, dan zoeken wij het adres erbij.');\n                    return;\n                }\n                var sleutel = postcode + '|' + nummer;\n                if (st.adresKlaar && st.adresKlaar.sleutel === sleutel) { if (daarna) daarna(st.adresKlaar.data, null); return; }\n                if (st.adresBezig === sleutel) { st.adresDaarna = daarna || null; return; }\n                st.adresBezig = sleutel; st.adresDaarna = daarna || null;\n                if (vondst) { vondst.removeAttribute('data-stand'); vondst.textContent = 'Wij zoeken dit adres op\u2026'; }\n                var cfg = window.vitBooking || {ajax_url:'', nonce:''};\n                var xhr = new XMLHttpRequest();\n                xhr.open('POST', cfg.ajax_url, true);\n                xhr.setRequestHeader('Content-Type', 'application\/x-www-form-urlencoded');\n                xhr.onload = function() {\n                    st.adresBezig = null;\n                    var vervolg = st.adresDaarna; st.adresDaarna = null;\n                    var res; try { res = JSON.parse(xhr.responseText); } catch (e) { res = null; }\n                    if (!res || !res.success) {\n                        var bericht = (res && res.data && res.data.bericht) || 'Dit adres konden wij niet vinden.';\n                        if (vondst) { vondst.textContent = bericht; vondst.dataset.stand = 'fout'; }\n                        st.adresKlaar = null;\n                        if (vervolg) vervolg(null, bericht);\n                        return;\n                    }\n                    st.adresKlaar = { sleutel: sleutel, data: res.data };\n                    if (vondst) {\n                        vondst.removeAttribute('data-stand');\n                        \/\/ Alleen het adres tonen: km en rijtijd zijn ons eigen rekenwerk.\n                        vondst.textContent = res.data.adres;\n                        if (!res.data.binnen) vondst.dataset.stand = 'fout';\n                    }\n                    if (vervolg) vervolg(res.data, null);\n                };\n                xhr.send('action=vit_reistijd&nonce=' + encodeURIComponent(cfg.nonce) + '&postcode=' + encodeURIComponent(postcode) + '&huisnummer=' + encodeURIComponent(nummer));\n            };\n            window.vitb_adres_tik = window.vitb_adres_tik || function(uid) {\n                var st = window._vitbSt[uid]; if (!st) return;\n                clearTimeout(st.adresTimer);\n                st.adresTimer = setTimeout(function(){ vitb_adres_zoek(uid); }, 350);\n            };\n            window.vitb_adresstap = window.vitb_adresstap || function(uid) {\n                var st = window._vitbSt[uid]; if (!st) return;\n                var note = document.getElementById(uid + '_adresnote'), knop = document.getElementById(uid + '_adresok');\n                var vondst = document.getElementById(uid + '_adresvondst');\n                knop.disabled = true;\n                vitb_adres_zoek(uid, function(data, fout) {\n                    knop.disabled = false;\n                    if (!data) {\n                        if (vondst) { vondst.textContent = fout || 'Dit adres konden wij niet vinden.'; vondst.dataset.stand = 'fout'; }\n                        return;\n                    }\n                    if (!data.binnen) {\n                        if (vondst) {\n                            vondst.textContent = data.adres + ' ligt op ' + String(data.km).replace('.', ',') + ' km van Hoevelaken, buiten ons bezoekgebied van ' + data.straal + ' km. Kies hierboven een videogesprek of een belafspraak.';\n                            vondst.dataset.stand = 'fout';\n                        }\n                        return;\n                    }\n                    st.addr = data.adres;\n                    var a2 = document.getElementById(uid + '_addr'); if (a2) a2.value = data.adres;\n                    if (note) note.textContent = 'De rit heen en terug staat apart in onze agenda, dus u ziet alleen momenten die echt passen.';\n                    vitb_go(uid, 2); vitb_crender(uid); vitb_load_avail(uid);\n                });\n            };\n\n            \/\/ een stap terug vanaf het adres: terug naar de lijst met afspraken\n            window.vitb_adres_terug = window.vitb_adres_terug || function(uid) {\n                var stap = document.getElementById(uid + '_adresstap');\n                if (stap) stap.classList.add('vitb-hidden');\n                var note = document.getElementById(uid + '_adresnote');\n                if (note) { note.style.color = ''; note.textContent = 'Postcode en huisnummer zijn genoeg; wij zoeken uw adres erbij en rekenen de reistijd vanaf Hoevelaken mee.'; }\n                vitb_go(uid, 1);\n            };\n\n            \/\/ terug vanuit de kalender: bij een bezoek op locatie eerst weer het adres\n            window.vitb_terug_s2 = window.vitb_terug_s2 || function(uid) {\n                var st = window._vitbSt[uid];\n                var stap = document.getElementById(uid + '_adresstap');\n                vitb_go(uid, 1);\n                if (st && st.svcLoc === 'locatie' && stap) stap.classList.remove('vitb-hidden');\n            };\n\n            \/\/ \u2500\u2500 kalender navigatie \u2500\u2500\n            window.vitb_cnav = window.vitb_cnav || function(uid, dir) {\n                var st = window._vitbSt[uid];\n                if (!st) return;\n                st.cm += dir;\n                if (st.cm < 0)  { st.cm = 11; st.cy--; }\n                if (st.cm > 11) { st.cm = 0;  st.cy++; }\n                vitb_crender(uid);\n                vitb_load_avail(uid);\n            };\n\n            \/\/ \u2500\u2500 beschikbaarheid laden per maand \u2500\u2500\n            window.vitb_load_avail = function(uid) {\n                var st = window._vitbSt[uid];\n                if (!st) return;\n                var key = st.cy + '-' + st.cm;\n                if (st.avail[key] !== undefined) return; \/\/ al gecached\n                st.avail[key] = null; \/\/ laden bezig marker\n                var cfg = window.vitBooking || {ajax_url:'', nonce:''};\n                var xhr = new XMLHttpRequest();\n                xhr.open('POST', cfg.ajax_url);\n                xhr.setRequestHeader('Content-Type', 'application\/x-www-form-urlencoded');\n                xhr.onload = function() {\n                    if (xhr.status !== 200) return;\n                    try {\n                        var res = JSON.parse(xhr.responseText);\n                        if (res.success) {\n                            st.avail[key] = res.data; \/\/ array van 'YYYY-MM-DD'\n                            window.vitb_crender(uid); \/\/ herrender met beschikbaarheid\n                        }\n                    } catch(e) {}\n                };\n                xhr.send('action=vit_get_availability&nonce=' + cfg.nonce +\n                    '&service_id=' + encodeURIComponent(st.svcId) +\n                    '&address='    + encodeURIComponent(st.addr || '') +\n                    '&year='       + st.cy +\n                    '&month='      + (st.cm + 1));\n            };\n\n            \/\/ \u2500\u2500 datum kiezen \u2500\u2500\n            window.vitb_pdate = window.vitb_pdate || function(uid, ds) {\n                var st = window._vitbSt[uid];\n                if (!st) return;\n                st.date = ds;\n                vitb_crender(uid);\n                var lbl = new Date(ds + 'T12:00:00').toLocaleDateString('nl-NL', {weekday:'long', day:'numeric', month:'long', year:'numeric'});\n                var dl = document.getElementById(uid + '_dlabel');\n                if (dl) dl.textContent = lbl;\n                vitb_go(uid, 3);\n                var sc = document.getElementById(uid + '_slots');\n                if (sc) sc.innerHTML = '<div class=\"vitb-loading\">Beschikbare tijden laden\\u2026<\/div>';\n                var cfg = window.vitBooking || {ajax_url:'', nonce:''};\n                var xhr = new XMLHttpRequest();\n                xhr.open('POST', cfg.ajax_url);\n                xhr.setRequestHeader('Content-Type', 'application\/x-www-form-urlencoded');\n                xhr.onload = function() {\n                    if (!sc) return;\n                    if (xhr.status !== 200) { sc.innerHTML = '<p class=\"vitb-no-slots\">Fout. Probeer opnieuw.<\/p>'; return; }\n                    var res;\n                    try { res = JSON.parse(xhr.responseText); } catch(e) { sc.innerHTML = '<p class=\"vitb-no-slots\">Onverwacht antwoord.<\/p>'; return; }\n                    \n                    \/\/ Check nieuwe response format met urgency\n                    var slots = res.success && res.data ? (res.data.slots || res.data) : null;\n                    var urgency = res.success && res.data && res.data.urgency ? res.data.urgency : '';\n                    \n                    if (!res.success || !slots || !slots.length) {\n                        sc.innerHTML = '<p class=\"vitb-no-slots\">Geen beschikbare tijden op deze dag. Kies een andere datum.<\/p>';\n                        return;\n                    }\n                    \n                    var h = '';\n                    \n                    \/\/ Urgency message bovenaan (alleen als er slots zijn)\n                    if (urgency) {\n                        h += '<div class=\"vitb-urgency\">\u26a1 ' + urgency + '<\/div>';\n                    }\n                    \n                    h += '<div class=\"vitb-slots\">';\n                    slots.forEach(function(slot) {\n                        h += '<button class=\"vitb-slot\" onclick=\"vitb_pslot(\\'' + uid + '\\',\\'' + slot.start + '\\',\\'' + slot.label + '\\',this)\">' + slot.start_label + '<\/button>';\n                    });\n                    sc.innerHTML = h + '<\/div>';\n                };\n                xhr.onerror = function() { if (sc) sc.innerHTML = '<p class=\"vitb-no-slots\">Verbindingsfout. Probeer opnieuw.<\/p>'; };\n                xhr.send('action=vit_get_slots&nonce=' + cfg.nonce + '&service_id=' + encodeURIComponent(st.svcId) + '&date=' + encodeURIComponent(ds) + '&address=' + encodeURIComponent(st.addr || ''));\n            };\n\n            \/\/ \u2500\u2500 tijdslot kiezen \u2500\u2500\n            window.vitb_pslot = window.vitb_pslot || function(uid, start, label, btn) {\n                var st = window._vitbSt[uid];\n                if (!st) return;\n                st.slotStart = start;\n                st.slotLabel = label;\n                var w = document.getElementById(uid);\n                if (w) w.querySelectorAll('.vitb-slot').forEach(function(b){ b.classList.remove('vitb-selected'); });\n                if (btn) btn.classList.add('vitb-selected');\n                var dl = new Date(st.date + 'T12:00:00').toLocaleDateString('nl-NL', {weekday:'long', day:'numeric', month:'long'});\n                var sm = document.getElementById(uid + '_summary');\n                if (sm) sm.innerHTML = '<strong>' + st.svcName + '<\/strong> &mdash; ' + dl + ' om ' + label;\n                vitb_go(uid, 4);\n                \/\/ Timing captcha: sla tijdstip op waarop formulier getoond wordt\n                var tsEl2 = document.getElementById(uid + '_ts');\n                if (tsEl2) tsEl2.value = Date.now();\n            };\n\n            \/\/ \u2500\u2500 formulier versturen \u2500\u2500\n            window.vitb_submit = window.vitb_submit || function(uid) {\n                var st = window._vitbSt[uid];\n                if (!st) return;\n                var g = function(id){ var e = document.getElementById(id); return e ? e.value.trim() : ''; };\n                var name  = g(uid + '_name');\n                var email = g(uid + '_email');\n                var phone = g(uid + '_phone');\n                var addr  = g(uid + '_addr');\n                var rem   = g(uid + '_remarks');\n                var hp    = g(uid + '_hp');\n                var err   = document.getElementById(uid + '_err');\n                var btn   = document.getElementById(uid + '_sbtn');\n                function se(m){ if(err){ err.textContent=m; err.classList.remove('vitb-hidden'); } }\n                \/\/ Naam verplicht\n                if (!name) { se('Vul uw naam in.'); return; }\n                \/\/ E-mail: strikt formaat\n                if (!email) { se('Vul uw e-mailadresadres in.'); return; }\n                if (!\/^[a-zA-Z0-9._%+\\-]+@[a-zA-Z0-9.\\-]+\\.[a-zA-Z]{2,}$\/.test(email)) { se('Vul een geldig e-mailadres in (bijv. naam@domein.nl).'); return; }\n                \/\/ Telefoon: verplicht, alleen cijfers, minimaal 10\n                var phoneClean = phone.replace(\/[\\s\\-\\.\\(\\)]\/g, '');\n                if (!phoneClean) { se('Vul uw telefoonnummer in.'); return; }\n                if (!\/^[0-9]+$\/.test(phoneClean)) { se('Telefoonnummer mag alleen cijfers bevatten.'); return; }\n                if (phoneClean.length < 10) { se('Telefoonnummer moet minimaal 10 cijfers bevatten.'); return; }\n                \/\/ Adres verplicht bij locatie\n                if (st.svcLoc === 'locatie' && !addr) { se('Vul uw adres in voor een afspraak op locatie.'); return; }\n                \/\/ Timing check: formulier moet minimaal 3 seconden zichtbaar zijn geweest\n                var tsEl = document.getElementById(uid + '_ts');\n                var tsVal = tsEl ? parseInt(tsEl.value || '0') : 0;\n                if (!tsVal || (Date.now() - tsVal) < 3000) { se('Er ging iets mis. Probeer het opnieuw.'); return; }\n                \/\/ Honeypot check\n                if (hp) { return; } \/\/ stille afwijzing\n                if (err) err.classList.add('vitb-hidden');\n                if (btn) { btn.disabled = true; btn.textContent = 'Even geduld\\u2026'; }\n                var cfg = window.vitBooking || {ajax_url:'', nonce:''};\n                var xhr = new XMLHttpRequest();\n                xhr.open('POST', cfg.ajax_url);\n                xhr.setRequestHeader('Content-Type', 'application\/x-www-form-urlencoded');\n                xhr.onload = function() {\n                    if (btn) { btn.disabled = false; btn.textContent = 'Afspraak bevestigen \\u2192'; }\n                    if (xhr.status !== 200) { se('Serverfout. Probeer opnieuw.'); return; }\n                    var res;\n                    try { res = JSON.parse(xhr.responseText); } catch(e) { se('Onverwacht antwoord.'); return; }\n                    if (!res.success) { se(res.data || 'Er ging iets mis.'); return; }\n                    var d = res.data;\n                    var cf = document.getElementById(uid + '_confirm');\n                    if (cf) cf.innerHTML = 'Uw afspraak voor <strong>' + d.service + '<\/strong> op <strong>' + d.date + ' om ' + d.time + '<\/strong> is ingepland.';\n                    vitb_go(uid, 5);\n                };\n                xhr.onerror = function() {\n                    if (btn) { btn.disabled = false; btn.textContent = 'Afspraak bevestigen \\u2192'; }\n                    se('Verbindingsfout. Controleer je internet.');\n                };\n                xhr.send(\n                    'action=vit_book' +\n                    '&nonce='      + encodeURIComponent(cfg.nonce) +\n                    '&service_id=' + encodeURIComponent(st.svcId) +\n                    '&slot_start=' + encodeURIComponent(st.slotStart) +\n                    '&name='       + encodeURIComponent(name) +\n                    '&email='      + encodeURIComponent(email) +\n                    '&phone='      + encodeURIComponent(phone) +\n                    '&address='    + encodeURIComponent(addr) +\n                    '&remarks='    + encodeURIComponent(rem) +\n                    '&website='    + encodeURIComponent(hp)\n                );\n            };\n\n            \/\/ \u2500\u2500 reset \u2500\u2500\n            window.vitb_reset = window.vitb_reset || function(uid) {\n                var st = window._vitbSt[uid];\n                if (st) { st.svcId=null; st.svcName=null; st.svcLoc=null; st.date=null; st.slotStart=null; st.slotLabel=null; }\n                var w = document.getElementById(uid);\n                if (w) w.querySelectorAll('input, textarea').forEach(function(e){ e.value=''; });\n                vitb_go(uid, 1);\n            };\n\n            \n        })();\n        <\/script>\n        ","protected":false},"excerpt":{"rendered":"","protected":false},"author":0,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"afspraakmodule.php","meta":{"footnotes":""},"class_list":["post-663","page","type-page","status-publish"],"_links":{"self":[{"href":"https:\/\/vitwerkplek.nl\/agenda\/wp-json\/wp\/v2\/pages\/663","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vitwerkplek.nl\/agenda\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/vitwerkplek.nl\/agenda\/wp-json\/wp\/v2\/types\/page"}],"replies":[{"embeddable":true,"href":"https:\/\/vitwerkplek.nl\/agenda\/wp-json\/wp\/v2\/comments?post=663"}],"version-history":[{"count":0,"href":"https:\/\/vitwerkplek.nl\/agenda\/wp-json\/wp\/v2\/pages\/663\/revisions"}],"wp:attachment":[{"href":"https:\/\/vitwerkplek.nl\/agenda\/wp-json\/wp\/v2\/media?parent=663"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}