{"id":1449,"date":"2026-08-11T23:34:04","date_gmt":"2026-08-11T21:34:04","guid":{"rendered":"https:\/\/edu-tech.com.pl\/index.php\/rezerwacja-lekcji\/"},"modified":"2026-08-12T00:11:30","modified_gmt":"2026-08-11T22:11:30","slug":"rezerwacja-lekcji","status":"publish","type":"page","link":"https:\/\/edu-tech.com.pl\/index.php\/rezerwacja-lekcji\/","title":{"rendered":"Zarezerwuj lekcj\u0119"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"1449\" class=\"elementor elementor-1449\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6609eef e-flex e-con-boxed e-con e-parent\" data-id=\"6609eef\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4270f7b elementor-widget elementor-widget-text-editor\" data-id=\"4270f7b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<div class=\"wp-block-cover alignfull\" style=\"min-height: 411px;\"><p><img decoding=\"async\" class=\"wp-block-cover__image-background\" style=\"object-position: 50% 72%;\" src=\"https:\/\/edu-tech.com.pl\/wp-content\/themes\/neve\/assets\/img\/starter-content\/neve-hero-2.png\" alt=\"\" data-object-fit=\"cover\" data-object-position=\"50% 72%\" \/><\/p><div class=\"wp-block-cover__inner-container\"><p><\/p><div class=\"wp-block-columns are-vertically-aligned-center is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\"><p><\/p><div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\" style=\"padding-right: var(--wp--preset--spacing--20); padding-left: var(--wp--preset--spacing--20); flex-basis: 65%;\"><p><\/p><h1 class=\"wp-block-heading has-text-align-center has-nv-text-dark-bg-color has-text-color\">Edu-Tech <br \/>Agnieszka Zieli\u0144ska<\/h1><p><\/p><p><\/p><p class=\"wp-block-paragraph\"><\/p><\/div><p><\/p><p><\/p><div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\"><p><\/p><figure class=\"wp-block-image size-full\"><img fetchpriority=\"high\" decoding=\"async\" width=\"642\" height=\"463\" class=\"wp-image-40\" src=\"https:\/\/edu-tech.com.pl\/wp-content\/uploads\/2025\/08\/logo_beztla.png\" alt=\"\" srcset=\"https:\/\/edu-tech.com.pl\/wp-content\/uploads\/2025\/08\/logo_beztla.png 642w, https:\/\/edu-tech.com.pl\/wp-content\/uploads\/2025\/08\/logo_beztla-300x216.png 300w\" sizes=\"(max-width: 642px) 100vw, 642px\" \/><\/figure><p><\/p><\/div><p><\/p><\/div><p><\/p><\/div><\/div><p><!-- \/wp:cover --><\/p><p><!-- wp:paragraph --><\/p><p><!-- \/wp:paragraph --><\/p><p><!-- wp:columns {\"verticalAlignment\":\"center\"} --><\/p><div class=\"wp-block-columns are-vertically-aligned-center\"><p><!-- wp:column {\"verticalAlignment\":\"center\"} --><\/p><div class=\"wp-block-column is-vertically-aligned-center\"><p><!-- wp:image {\"id\":116,\"width\":\"465px\",\"height\":\"auto\",\"sizeSlug\":\"large\",\"linkDestination\":\"none\",\"align\":\"center\"} --><\/p><figure class=\"wp-block-image aligncenter size-large is-resized\"><\/figure><p><!-- \/wp:image --><\/p><\/div><p><!-- \/wp:column --><\/p><p><!-- wp:column {\"verticalAlignment\":\"center\"} --><\/p><div class=\"wp-block-column is-vertically-aligned-center\"><p><!-- wp:paragraph --><\/p><\/div><\/div><p>\u00a0<\/p><p><!-- wp:paragraph --><\/p><p><!-- \/wp:paragraph --><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-910fb22 e-flex e-con-boxed e-con e-parent\" data-id=\"910fb22\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1dbcaa3b elementor-widget elementor-widget-text-editor\" data-id=\"1dbcaa3b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<div class=\"tutorcrm-public-booking-v7678\">\n    <div class=\"tutorcrm-public-booking-shell-v7678\">\n        <div class=\"tutorcrm-public-booking-hero-v7678\">\n            <div class=\"tutorcrm-public-hero-copy-v7682\">\n                <span class=\"tutorcrm-public-kicker-v7682\">\u2726 &nbsp; TWOJA MISJA Z EDU-TECH<\/span>\n                <h1>Odkryj swoj\u0105 <em>supermoc!<\/em><br><span class=\"edutech-headline-sub-v229\">Nauka zaczyna si\u0119 tutaj.<\/span><\/h1>\n                <p class=\"edutech-hero-intro-v229\">Wybierz przedmiot, poznaj korepetytora i zarezerwuj termin. <strong>Edu\u015b pomo\u017ce Ci wystartowa\u0107! \ud83d\ude80<\/strong><\/p>\n                <div class=\"tutorcrm-public-benefits-v7682\">\n                    <span>\ud83c\udf93 <b>\u015awietni korepetytorzy<\/b><\/span>\n                    <span>\ud83d\uddd3\ufe0f <b>Terminy dla Ciebie<\/b><\/span>\n                    <span>\u2728 <b>Prosta rezerwacja<\/b><\/span>\n                <\/div>\n            <\/div>\n            <div class=\"tutorcrm-public-hero-visual-v7682\">\n                <div class=\"tutorcrm-public-slogan-v7682\">Hej! Gotowi na naukow\u0105 misj\u0119?<\/div>\n                <div class=\"edutech-science-orbit-v227\" aria-hidden=\"true\"><span>\u03c0<\/span><span>H\u2082O<\/span><span>\u2726<\/span><span>f(x)<\/span><span>\u269b<\/span><span>ABC<\/span><\/div>\n                <img decoding=\"async\" src=\"https:\/\/edu-tech.com.pl\/wp-content\/plugins\/tutorcrm\/assets\/edus-dashboard-wave.png\" alt=\"Edu\u015b \u2013 maskotka Edu-Tech\">\n            <\/div>\n        <\/div>\n\n        <aside class=\"tutorcrm-public-contact-v274\" aria-label=\"Pomoc przy rezerwacji\">\n            <span class=\"tutorcrm-public-contact-icon-v274\" aria-hidden=\"true\">\ud83d\udcde<\/span>\n            <div class=\"tutorcrm-public-contact-copy-v274\"><strong>Masz pytanie lub problem z rezerwacj\u0105?<\/strong><span>Zadzwo\u0144 do Edu-Tech \u2014 pomo\u017cemy Ci z terminem.<\/span><\/div>\n            <a class=\"tutorcrm-public-contact-link-v274\" href=\"tel:+48577122196\" aria-label=\"Zadzwo\u0144 do Edu-Tech: 577 122 196\">\ud83d\udcde 577 122 196<\/a>\n        <\/aside>\n\n        <div class=\"tutorcrm-public-booking-progress-v7678\">\n            <span class=\"is-active\" data-public-step-indicator=\"1\">1 <b>Termin<\/b><\/span>\n            <span data-public-step-indicator=\"2\">2 <b>Dane<\/b><\/span>\n            <span data-public-step-indicator=\"3\">3 <b>Gotowe<\/b><\/span>\n        <\/div>\n\n        <section class=\"tutorcrm-public-step-v7678 is-active\" data-public-step=\"1\">\n<div class=\"tutorcrm-public-selects-v7678 tutorcrm-public-select-cards-v877\">\n                <label class=\"tutorcrm-public-select-card-v877 is-booking-type\">\n                    <span class=\"tutorcrm-public-select-title-v877\">Rodzaj rezerwacji<\/span>\n                    <span class=\"tutorcrm-public-select-icon-v877\" aria-hidden=\"true\"><span class=\"tutorcrm-public-select-emoji-v971\">\ud83d\uddd3\ufe0f<\/span><\/span>\n                    <strong>Sta\u0142e czy jednorazowo?<\/strong>\n                    <small>Sta\u0142e = ten sam dzie\u0144 i godzina co tydzie\u0144. Jednorazowo = pojedynczy wolny termin.<\/small>\n                    <select class=\"tutorcrm-public-booking-type-v915869\">\n                        <option value=\"one_off\"  selected='selected'>Jednorazowo<\/option>\n                        <option value=\"recurring\" >Sta\u0142e lekcje<\/option>\n                    <\/select>\n                    <script>\n                    (function(){\n                        var sel=document.currentScript && document.currentScript.previousElementSibling;\n                        if(!sel || !sel.classList.contains('tutorcrm-public-booking-type-v915869')) return;\n                        var key='tutorcrm_booking_type_v915874';\n                        function valid(v){ return v==='recurring' || v==='one_off'; }\n                        var urlValue='';\n                        try{ urlValue=new URL(window.location.href).searchParams.get('tutorcrm_booking_type')||''; }catch(e){}\n                        var stored='';\n                        try{ stored=window.sessionStorage.getItem(key)||''; }catch(e){}\n                        var initial=valid(urlValue)?urlValue:(valid(stored)?stored:sel.value);\n                        if(valid(initial)) sel.value=initial;\n                        try{ window.sessionStorage.setItem(key,sel.value); }catch(e){}\n                        sel.addEventListener('change',function(){\n                            var v=valid(sel.value)?sel.value:'one_off';\n                            try{ window.sessionStorage.setItem(key,v); }catch(e){}\n                            try{\n                                var u=new URL(window.location.href);\n                                u.searchParams.set('tutorcrm_booking_type',v);\n                                history.replaceState(history.state,'',u.toString());\n                            }catch(e){}\n                        },true);\n                        window.addEventListener('pageshow',function(){\n                            var v='';\n                            try{ v=window.sessionStorage.getItem(key)||''; }catch(e){}\n                            if(valid(v) && sel.value!==v) sel.value=v;\n                        });\n                    })();\n                    <\/script>\n                <\/label>\n                <label class=\"tutorcrm-public-select-card-v877 is-subject\">\n                    <span class=\"tutorcrm-public-select-title-v877\">Przedmiot<\/span>\n                    <span class=\"tutorcrm-public-select-icon-v877\" aria-hidden=\"true\"><span class=\"tutorcrm-public-select-emoji-v971\">\ud83d\udcda<\/span><\/span>\n                    <strong>Wybierz przedmiot<\/strong>\n                    <small>Zacznij od przedmiotu, z kt\u00f3rego potrzebujesz korepetycji.<\/small>\n                    <select class=\"tutorcrm-public-subject-v7678\">\n                        <option value=\"\">Wybierz przedmiot<\/option>\n                                                    <option value=\"1571\">Biologia<\/option>\n                                                    <option value=\"1395\">Chemia<\/option>\n                                                    <option value=\"1396\">Fizyka<\/option>\n                                                    <option value=\"1386\">Geografia<\/option>\n                                                    <option value=\"3865\">Historia<\/option>\n                                                    <option value=\"1608\">J\u0119zyk angielski<\/option>\n                                                    <option value=\"3864\">J\u0119zyk polski<\/option>\n                                                    <option value=\"507\">Matematyka<\/option>\n                                            <\/select>\n                <\/label>\n\n                <label class=\"tutorcrm-public-select-card-v877 is-mode\">\n                    <span class=\"tutorcrm-public-select-title-v877\">Forma lekcji<\/span>\n                    <span class=\"tutorcrm-public-select-icon-v877\" aria-hidden=\"true\"><span class=\"tutorcrm-public-select-emoji-v971\">\ud83d\udcbb<\/span><\/span>\n                    <strong>Wybierz form\u0119 lekcji<\/strong>\n                    <small>Online albo stacjonarnie \u2014 wybierz najwygodniejsz\u0105 opcj\u0119.<\/small>\n                    <select class=\"tutorcrm-public-mode-select-v7691\" disabled>\n                        <option value=\"\">Najpierw wybierz przedmiot<\/option>\n                        <option value=\"online\">\ud83d\udcbb Online<\/option>\n                        <option value=\"stationary\">\ud83d\udccd Stacjonarnie<\/option>\n                    <\/select>\n                <\/label>\n\n                <label class=\"tutorcrm-public-select-card-v877 is-tutor\">\n                    <span class=\"tutorcrm-public-select-title-v877\">Korepetytor<\/span>\n                    <span class=\"tutorcrm-public-select-icon-v877\" aria-hidden=\"true\"><span class=\"tutorcrm-public-select-emoji-v971\">\ud83d\udc69\u200d\ud83c\udfeb<\/span><\/span>\n                    <strong>Wybierz korepetytora<\/strong>\n                    <small>Po wyborze formy poka\u017cemy prowadz\u0105cych dost\u0119pnych dla tego przedmiotu.<\/small>\n                    <select class=\"tutorcrm-public-tutor-v7678\" disabled>\n                        <option value=\"\">Najpierw wybierz przedmiot<\/option>\n                                                    <option value=\"1\">Agnieszka Zieli\u0144ska<\/option>\n                                                    <option value=\"116\">Amelia Olejnik<\/option>\n                                                    <option value=\"2\">Kacper Florek<\/option>\n                                                    <option value=\"58\">Kamila Chabrzyk<\/option>\n                                                    <option value=\"7\">Klaudia Aleksiejew<\/option>\n                                                    <option value=\"32\">Klaudia Miko\u0142ajczyk<\/option>\n                                                    <option value=\"193\">Marek Maultz<\/option>\n                                                    <option value=\"21\">Oliwier Gowin<\/option>\n                                                    <option value=\"230\">Patrycja Nowak<\/option>\n                                                    <option value=\"6\">Sylwester D\u0105browski<\/option>\n                                                    <option value=\"5\">Szymon Gut<\/option>\n                                            <\/select>\n                <\/label>\n            <\/div>\n\n            <div class=\"tutorcrm-public-stationary-address-v7689\" hidden>\n                <span class=\"tutorcrm-public-address-icon-v7689\">\ud83d\udccd<\/span>\n                <div><small>ADRES LEKCJI STACJONARNEJ<\/small><strong><\/strong><\/div>\n            <\/div>\n\n            <script type=\"application\/json\" class=\"tutorcrm-public-catalog-v7678\">[{\"tutor_id\":1,\"tutor_name\":\"Agnieszka Zieli\\u0144ska\",\"subject_id\":507,\"subject_name\":\"Matematyka\",\"lesson_modes\":[\"online\",\"stationary\"],\"stationary_address\":\"Gustawa Morcinka 16D\\\/9, 67-200 G\\u0142og\\u00f3w\",\"public_lesson_price\":120},{\"tutor_id\":116,\"tutor_name\":\"Amelia Olejnik\",\"subject_id\":1571,\"subject_name\":\"Biologia\",\"lesson_modes\":[\"online\"],\"stationary_address\":\"\",\"public_lesson_price\":100},{\"tutor_id\":2,\"tutor_name\":\"Kacper Florek\",\"subject_id\":507,\"subject_name\":\"Matematyka\",\"lesson_modes\":[\"online\"],\"stationary_address\":\"\",\"public_lesson_price\":100},{\"tutor_id\":58,\"tutor_name\":\"Kamila Chabrzyk\",\"subject_id\":1386,\"subject_name\":\"Geografia\",\"lesson_modes\":[\"online\"],\"stationary_address\":\"\",\"public_lesson_price\":100},{\"tutor_id\":58,\"tutor_name\":\"Kamila Chabrzyk\",\"subject_id\":3865,\"subject_name\":\"Historia\",\"lesson_modes\":[\"online\"],\"stationary_address\":\"\",\"public_lesson_price\":100},{\"tutor_id\":58,\"tutor_name\":\"Kamila Chabrzyk\",\"subject_id\":3864,\"subject_name\":\"J\\u0119zyk polski\",\"lesson_modes\":[\"online\"],\"stationary_address\":\"\",\"public_lesson_price\":100},{\"tutor_id\":7,\"tutor_name\":\"Klaudia Aleksiejew\",\"subject_id\":507,\"subject_name\":\"Matematyka\",\"lesson_modes\":[\"online\"],\"stationary_address\":\"\",\"public_lesson_price\":100},{\"tutor_id\":32,\"tutor_name\":\"Klaudia Miko\\u0142ajczyk\",\"subject_id\":1608,\"subject_name\":\"J\\u0119zyk angielski\",\"lesson_modes\":[\"online\"],\"stationary_address\":\"\",\"public_lesson_price\":100},{\"tutor_id\":193,\"tutor_name\":\"Marek Maultz\",\"subject_id\":1395,\"subject_name\":\"Chemia\",\"lesson_modes\":[\"online\"],\"stationary_address\":\"\",\"public_lesson_price\":100},{\"tutor_id\":21,\"tutor_name\":\"Oliwier Gowin\",\"subject_id\":1395,\"subject_name\":\"Chemia\",\"lesson_modes\":[\"online\"],\"stationary_address\":\"\",\"public_lesson_price\":100},{\"tutor_id\":21,\"tutor_name\":\"Oliwier Gowin\",\"subject_id\":1396,\"subject_name\":\"Fizyka\",\"lesson_modes\":[\"online\"],\"stationary_address\":\"\",\"public_lesson_price\":100},{\"tutor_id\":230,\"tutor_name\":\"Patrycja Nowak\",\"subject_id\":1395,\"subject_name\":\"Chemia\",\"lesson_modes\":[\"online\"],\"stationary_address\":\"\",\"public_lesson_price\":100},{\"tutor_id\":6,\"tutor_name\":\"Sylwester D\\u0105browski\",\"subject_id\":507,\"subject_name\":\"Matematyka\",\"lesson_modes\":[\"online\"],\"stationary_address\":\"\",\"public_lesson_price\":100},{\"tutor_id\":5,\"tutor_name\":\"Szymon Gut\",\"subject_id\":507,\"subject_name\":\"Matematyka\",\"lesson_modes\":[\"online\"],\"stationary_address\":\"\",\"public_lesson_price\":100}]<\/script>\n            <script type=\"application\/json\" class=\"tutorcrm-public-fb-slots-v7807\">[]<\/script>\n            <input type=\"hidden\" class=\"tutorcrm-public-slots-nonce-v7679\" value=\"0e1c14d56c\">\n\n            <div class=\"tutorcrm-public-loading-v7679\" hidden>\u23f3 Sprawdzam wolne terminy&#8230;<\/div>\n\n            <div id=\"wolne-terminy\" class=\"tutorcrm-public-dates-v7678\" hidden>\n                <h3>Wybierz dzie\u0144<\/h3>\n                <div class=\"tutorcrm-public-dates-list-v7679\"><\/div>\n            <\/div>\n\n            <div class=\"tutorcrm-public-hours-v7678\" hidden>\n                <h3>Wybierz godzin\u0119<\/h3>\n                <div class=\"tutorcrm-public-hours-list-v7679\"><\/div>\n            <\/div>\n\n            <div class=\"tutorcrm-public-empty-v7678\" hidden>Brak wolnych termin\u00f3w dla tego wyboru w najbli\u017cszych 30 dniach.<\/div>\n\n            <script>\n            \/* Edu-Tech CRM 7.8.04 \u2014 mobilny fallback wolnych dni\/godzin.\n               Nie zmienia wygl\u0105du. Uruchamia si\u0119 tylko, je\u015bli zwyk\u0142y skrypt\n               nie narysowa\u0142 termin\u00f3w po wybraniu korepetytora. *\/\n            (function(){\n                var script = document.currentScript;\n                var step = script ? script.closest('.tutorcrm-public-step-v7678') : null;\n                var root = script ? script.closest('.tutorcrm-public-booking-v7678') : null;\n                if (!root || !step) return;\n\n                var bookingType = root.querySelector('.tutorcrm-public-booking-type-v915869');\n                var subject = root.querySelector('.tutorcrm-public-subject-v7678');\n                var mode = root.querySelector('.tutorcrm-public-mode-select-v7691');\n                var tutor = root.querySelector('.tutorcrm-public-tutor-v7678');\n                var nonce = root.querySelector('.tutorcrm-public-slots-nonce-v7679');\n                var loading = root.querySelector('.tutorcrm-public-loading-v7679');\n                var datesWrap = root.querySelector('.tutorcrm-public-dates-v7678');\n                var datesList = root.querySelector('.tutorcrm-public-dates-list-v7679');\n                var hoursWrap = root.querySelector('.tutorcrm-public-hours-v7678');\n                var hoursList = root.querySelector('.tutorcrm-public-hours-list-v7679');\n                var empty = root.querySelector('.tutorcrm-public-empty-v7678');\n                var form = root.querySelector('.tutorcrm-public-form-v7678');\n                var ajaxUrl = \"\\\/wp-admin\\\/admin-ajax.php\";\n                if (window.TutorCRMData && window.TutorCRMData.ajaxUrl) {\n                    try {\n                        var parsedAjax = new URL(window.TutorCRMData.ajaxUrl, window.location.href);\n                        ajaxUrl = parsedAjax.pathname + parsedAjax.search;\n                    } catch (e) {}\n                }\n\n                if (!subject || !tutor || !nonce || !datesWrap || !datesList || !hoursWrap || !hoursList || !form) return;\n\n                var slots = [];\n                var requestNo = 0;\n                var uaIAB=(navigator.userAgent||'');\n                var refIAB=(document.referrer||'');\n                var isFacebookIAB = true \/* 7.8.09: publiczne terminy zawsze serwerowo *\/\n                    || \/FBAN|FBAV|FB_IAB|FBIOS|FB4A|Messenger|Instagram|\\bwv\\b\/i.test(uaIAB)\n                    || \/facebook\\.com|messenger\\.com|instagram\\.com\/i.test(refIAB)\n                    || new URL(window.location.href).searchParams.get('tutorcrm_iab')==='1';\n                var fbSelected = {\n                    subject: \"0\",\n                    mode: \"\",\n                    tutor: \"0\",\n                    bookingType: \"one_off\"                };\n                var fbSlotsNode = root.querySelector('.tutorcrm-public-fb-slots-v7807');\n\n                function chooseHour(slot) {\n                    var fields = {\n                        tutor_id: tutor.value || '',\n                        subject_id: subject.value || '',\n                        date: slot.date || '',\n                        from: slot.from || '',\n                        to: slot.to || '',\n                        lesson_mode: mode ? (mode.value || '') : ''\n                    };\n                    Object.keys(fields).forEach(function(name){\n                        var input=form.querySelector('[name=\"'+name+'\"]');\n                        if(input) input.value=fields[name];\n                    });\n\n                    var selected=root.querySelector('.tutorcrm-public-selected-v7678');\n                    if(selected){\n                        var tutorName=tutor.options[tutor.selectedIndex] ? tutor.options[tutor.selectedIndex].textContent : '';\n                        var subjectName=subject.options[subject.selectedIndex] ? subject.options[subject.selectedIndex].textContent : '';\n                        selected.innerHTML='<strong>'+subjectName+'<\/strong><span>'+tutorName+' \u00b7 '+slot.date_label+' \u00b7 '+slot.from+'\u2013'+slot.to+'<\/span>';\n                    }\n\n                    root.querySelectorAll('[data-public-step]').forEach(function(el){\n                        el.hidden = String(el.getAttribute('data-public-step')) !== '2';\n                        el.classList.toggle('is-active', String(el.getAttribute('data-public-step')) === '2');\n                    });\n                    root.querySelectorAll('[data-public-step-indicator]').forEach(function(el){\n                        var n=parseInt(el.getAttribute('data-public-step-indicator')||'0',10);\n                        el.classList.toggle('is-active', n <= 2);\n                    });\n                    try { root.scrollIntoView({behavior:'smooth',block:'start'}); } catch(e) {}\n                }\n\n                function chooseDate(date, clicked){\n                    Array.prototype.forEach.call(datesList.children,function(btn){\n                        btn.classList.toggle('is-active',btn===clicked);\n                    });\n                    hoursList.innerHTML='';\n                    slots.filter(function(slot){return String(slot.date)===String(date);}).forEach(function(slot){\n                        var btn=document.createElement('button');\n                        btn.type='button';\n                        btn.className='tutorcrm-public-hour-v7678';\n                        btn.innerHTML='<strong>'+slot.from+'<\/strong><span>'+slot.to+'<\/span>';\n                        btn.addEventListener('click',function(){chooseHour(slot);});\n                        hoursList.appendChild(btn);\n                    });\n                    hoursWrap.hidden = !hoursList.children.length;\n                }\n\n                function render(data){\n                    slots = Array.isArray(data) ? data : [];\n                    datesList.innerHTML='';\n                    hoursList.innerHTML='';\n                    hoursWrap.hidden=true;\n\n                    if(!slots.length){\n                        datesWrap.hidden=true;\n                        if(empty){\n                            empty.hidden=false;\n                            empty.textContent='Brak wolnych termin\u00f3w dla tego wyboru w najbli\u017cszych 30 dniach.';\n                        }\n                        return;\n                    }\n\n                    var seen={};\n                    var months=['','STY','LUT','MAR','KWI','MAJ','CZE','LIP','SIE','WRZ','PA\u0179','LIS','GRU'];\n\n                    slots.forEach(function(day){\n                        if(seen[day.date]) return;\n                        seen[day.date]=true;\n\n                        var parts=String(day.date||'').split('-');\n                        var dayNo=parts.length===3 ? String(parseInt(parts[2],10)) : day.date_label;\n                        var monthName=parts.length===3 ? months[parseInt(parts[1],10)] : '';\n                        var freeCount=slots.filter(function(x){return String(x.date)===String(day.date);}).length;\n\n                        var btn=document.createElement('button');\n                        btn.type='button';\n                        btn.className='tutorcrm-public-date-v7678';\n                        btn.dataset.date=day.date;\n                        btn.innerHTML='<span class=\"tutorcrm-public-weekday-v7682\">'+day.day_label+'<\/span><strong>'+dayNo+'<\/strong><span class=\"tutorcrm-public-month-v7682\">'+monthName+'<\/span><small>'+freeCount+' wolnych<\/small>';\n                        btn.addEventListener('click',function(){chooseDate(day.date,btn);});\n                        datesList.appendChild(btn);\n                    });\n\n                    if(empty) empty.hidden=true;\n                    datesWrap.hidden=false;\n                }\n\n                async function fallbackLoad(force){\n                    if(!subject.value || !tutor.value) return;\n\n                    \/* Gdy g\u0142\u00f3wny skrypt ju\u017c poprawnie narysowa\u0142 daty, nic nie robimy. *\/\n                    if(!force && datesList.children.length && !datesWrap.hidden) return;\n\n                    var myNo=++requestNo;\n                    if(loading) loading.hidden=false;\n                    if(empty) empty.hidden=true;\n\n                    var data=new FormData();\n                    data.append('action','tutorcrm_public_booking_slots_v7679');\n                    data.append('nonce',nonce.value||'');\n                    data.append('subject_id',subject.value||'');\n                    data.append('tutor_id',tutor.value||'');\n                    if(mode) data.append('lesson_mode',mode.value||'');\n                    data.append('booking_type', bookingType ? (bookingType.value || 'one_off') : 'one_off');\n                    data.append('_mobile_fresh',String(Date.now()));\n\n                    try{\n                        var separator = ajaxUrl.indexOf('?') === -1 ? '?' : '&';\n                        var requestUrl = ajaxUrl + separator + 'tutorcrm_mobile_fresh=' + Date.now();\n\n                        var response=await fetch(requestUrl,{\n                            method:'POST',\n                            body:data,\n                            credentials:'same-origin',\n                            cache:'no-store'\n                        });\n                        var result=await response.json();\n                        if(myNo!==requestNo) return;\n                        if(!result.success){\n                            throw new Error(result.data && result.data.message ? result.data.message : 'Nie uda\u0142o si\u0119 pobra\u0107 termin\u00f3w.');\n                        }\n                        render(result.data && result.data.slots ? result.data.slots : []);\n                    }catch(error){\n                        if(myNo!==requestNo) return;\n                        if(empty){\n                            empty.hidden=false;\n                            var msg = error && error.message ? error.message : '';\n                            empty.textContent = \/failed to fetch|networkerror|load failed\/i.test(msg)\n                                ? 'Nie uda\u0142o si\u0119 po\u0142\u0105czy\u0107 z serwerem rezerwacji. Od\u015bwie\u017c stron\u0119 i spr\u00f3buj ponownie.'\n                                : (msg || 'Nie uda\u0142o si\u0119 pobra\u0107 wolnych termin\u00f3w.');\n                        }\n                    }finally{\n                        if(myNo===requestNo && loading) loading.hidden=true;\n                    }\n                }\n\n                tutor.addEventListener('change',function(e){\n                    if (isFacebookIAB && subject.value && tutor.value) {\n                        \/* Zatrzymujemy WSZYSTKIE p\u00f3\u017aniejsze listenery, w tym stary fetch z script.js. *\/\n                        if(e){\n                            e.preventDefault();\n                            e.stopPropagation();\n                            if(e.stopImmediatePropagation)e.stopImmediatePropagation();\n                        }\n\n                        var url = new URL(window.location.href);\n                        url.searchParams.set('tutorcrm_iab','1');\n                        url.searchParams.set('tutorcrm_fb_subject', subject.value || '');\n                        url.searchParams.set('tutorcrm_fb_mode', mode ? (mode.value || '') : '');\n                        url.searchParams.set('tutorcrm_booking_type', bookingType ? (bookingType.value || 'one_off') : 'one_off');\n                        url.searchParams.set('tutorcrm_fb_tutor', tutor.value || '');\n                        url.searchParams.set('tutorcrm_fb_refresh', String(Date.now()));\n                        window.location.replace(url.toString());\n                        return;\n                    }\n                    window.setTimeout(function(){ fallbackLoad(false); },450);\n                }, true);\n                if(bookingType){\n                    bookingType.addEventListener('change',function(event){\n                        \/* 9.15.8.115 \u2014 ten handler jest \u017ar\u00f3d\u0142em prawdy dla prze\u0142\u0105cznika\n                           Sta\u0142e\/Jednorazowo. Zatrzymujemy starszy listener z script.js,\n                           kt\u00f3ry prze\u0142adowywa\u0142 ca\u0142\u0105 stron\u0119 i potrafi\u0142 zawiesi\u0107 formularz. *\/\n                        if(event){\n                            event.preventDefault();\n                            event.stopPropagation();\n                            if(event.stopImmediatePropagation) event.stopImmediatePropagation();\n                        }\n                        requestNo++;\n                        if(loading) loading.hidden=true;\n                        if(empty) empty.hidden=true;\n                        datesWrap.hidden=true;\n                        hoursWrap.hidden=true;\n                        datesList.innerHTML='';\n                        hoursList.innerHTML='';\n                        if(subject.value && tutor.value){\n                            window.setTimeout(function(){ fallbackLoad(true); },20);\n                        }\n                    }, true);\n                }\n                if(mode){\n                    mode.addEventListener('change',function(){\n                        datesWrap.hidden=true;\n                        hoursWrap.hidden=true;\n                        datesList.innerHTML='';\n                        hoursList.innerHTML='';\n                    });\n                }\n\n                if (isFacebookIAB) {\n                    function restoreFacebookSelectionAndSlots(){\n                        if (!fbSelected.subject || !fbSelected.tutor) return;\n\n                        if (bookingType) bookingType.value = fbSelected.bookingType || 'one_off';\n                        subject.value = fbSelected.subject;\n\n                        if (mode) {\n                            mode.disabled = false;\n                            mode.value = fbSelected.mode || 'online';\n                        }\n\n                        \/* Budujemy list\u0119 tutor\u00f3w lokalnie z katalogu, bez \u017cadnego requestu. *\/\n                        var catalogNode = root.querySelector('.tutorcrm-public-catalog-v7678');\n                        var cat = [];\n                        try { cat = catalogNode ? JSON.parse(catalogNode.textContent || '[]') : []; } catch(e) {}\n\n                        var allowed = {};\n                        cat.forEach(function(row){\n                            var modes = Array.isArray(row.lesson_modes) ? row.lesson_modes : ['online','stationary'];\n                            if (String(row.subject_id) === String(fbSelected.subject) &&\n                                modes.indexOf(fbSelected.mode) !== -1) {\n                                allowed[String(row.tutor_id)] = String(row.tutor_name || 'Korepetytor');\n                            }\n                        });\n\n                        tutor.innerHTML = '<option value=\"\">Wybierz korepetytora<\/option>';\n                        Object.keys(allowed).sort(function(a,b){\n                            return allowed[a].localeCompare(allowed[b],'pl');\n                        }).forEach(function(id){\n                            var o=document.createElement('option');\n                            o.value=id; o.textContent=allowed[id];\n                            tutor.appendChild(o);\n                        });\n                        tutor.disabled=false;\n                        tutor.value=fbSelected.tutor;\n\n                        \/* Cena i adres nadal obs\u0142uguje g\u0142\u00f3wny skrypt po zdarzeniu change,\n                           ale daty\/godziny bierzemy ju\u017c lokalnie. *\/\n                        \/* W IAB nie emitujemy sztucznych change \u2014 mog\u0142y uruchamia\u0107 stare listenery AJAX. *\/\n                        tutor.value=fbSelected.tutor;\n\n                        var localSlots=[];\n                        try { localSlots=fbSlotsNode ? JSON.parse(fbSlotsNode.textContent||'[]') : []; } catch(e) {}\n                        render(localSlots);\n                    }\n\n                    document.addEventListener('DOMContentLoaded',function(){\n                        window.setTimeout(restoreFacebookSelectionAndSlots,250);\n                        window.setTimeout(restoreFacebookSelectionAndSlots,900);\n                    });\n                }\n\n                \/* In-app browser potrafi przywr\u00f3ci\u0107 selecty bez firing change. *\/\n                window.addEventListener('pageshow',function(){\n                    if(!isFacebookIAB && subject.value && tutor.value){\n                        window.setTimeout(function(){fallbackLoad(false);},650);\n                    }\n                });\n            })();\n            <\/script>\n        <\/section>\n\n        <section class=\"tutorcrm-public-step-v7678\" data-public-step=\"2\" hidden>\n            <button type=\"button\" class=\"tutorcrm-public-back-v7678\">\u2190 Zmie\u0144 termin<\/button>\n            <div class=\"tutorcrm-public-selected-v7678\"><\/div>\n\n            <form class=\"tutorcrm-public-form-v7678\">\n                <input type=\"hidden\" name=\"nonce\" value=\"e4840a54f2\">\n                <input type=\"hidden\" name=\"tutor_id\">\n                <input type=\"hidden\" name=\"subject_id\">\n                <input type=\"hidden\" name=\"date\">\n                <input type=\"hidden\" name=\"from\">\n                <input type=\"hidden\" name=\"to\">\n                <input type=\"hidden\" name=\"lesson_mode\">\n                <input type=\"hidden\" name=\"booking_type\" value=\"one_off\">\n\n                <div class=\"tutorcrm-public-form-intro-v9158110\"><span>2<\/span><div><strong>Uzupe\u0142nij dane<\/strong><small>Potrzebujemy ich do utworzenia konta i potwierdzenia rezerwacji.<\/small><\/div><\/div>\n                <div class=\"tutorcrm-public-form-grid-v7678 tutorcrm-public-form-grid-premium-v9158110\">\n                    <label><span>Imi\u0119 i nazwisko ucznia *<\/span><input type=\"text\" name=\"student_name\" required><\/label>\n                    <label><span>E-mail ucznia *<\/span><input type=\"email\" name=\"student_email\" required><\/label>\n                    <label><span>Telefon kontaktowy * (minimum 9 cyfr)<\/span><input type=\"tel\" name=\"phone\" autocomplete=\"tel\" inputmode=\"tel\" minlength=\"9\" maxlength=\"24\" pattern=\"[+0-9() .-]*[0-9][+0-9() .-]*\" title=\"Wpisz numer telefonu, minimum 9 cyfr\" required><\/label>\n                    <label><span>Adres zamieszkania (ulica, kod, miejscowo\u015b\u0107) *<\/span><input type=\"text\" name=\"address\" autocomplete=\"street-address\" placeholder=\"np. ul. Przyk\u0142adowa 10\/2, 67-200 G\u0142og\u00f3w\" required><\/label>\n                    <label class=\"tutorcrm-public-parent-name-v7678 tutorcrm-public-parent-dependent-v7684\"><span>Imi\u0119 i nazwisko rodzica\/opiekuna *<\/span><input type=\"text\" name=\"parent_name\"><\/label>\n                    <label class=\"tutorcrm-public-parent-email-v7684 tutorcrm-public-parent-dependent-v7684\"><span>E-mail rodzica\/opiekuna *<\/span><input type=\"email\" name=\"parent_email\"><\/label>\n                    <label class=\"tutorcrm-public-adult-v7678 tutorcrm-public-adult-row-v9158111\">\n                        <input type=\"checkbox\" name=\"adult\" value=\"1\">\n                        <span>Ucze\u0144 jest pe\u0142noletni<\/span>\n                    <\/label>\n                <\/div>\n\n                                <div class=\"tutorcrm-public-terms-v9158102\"\n                     data-owner-url=\"https:\/\/edu-tech.com.pl\/wp-content\/uploads\/2026\/09\/pieczatka-120-Regulamin-swiadczenia-uslug-edukacyjnych-13.pdf\"\n                     data-tutor-url=\"https:\/\/edu-tech.com.pl\/wp-content\/uploads\/2026\/09\/pieczatka-100-Regulamin-swiadczenia-uslug-edukacyjnych-12.pdf\"\n                     data-owner-price=\"120\"\n                     data-tutor-price=\"100\"\n                     data-owner-ids=\"1\">\n                    <label class=\"tutorcrm-public-terms-check-v9158102\">\n                        <input type=\"checkbox\" name=\"accept_terms_v9158102\" value=\"1\" required>\n                        <span>Akceptuj\u0119 <a class=\"tutorcrm-public-terms-link-v9158102\" href=\"#\" target=\"_blank\" rel=\"noopener\">regulamin lekcji (PDF)<\/a> *<\/span>\n                    <\/label>\n                    <small class=\"tutorcrm-public-terms-note-v9158102\">Regulamin zostanie dobrany automatycznie do wybranego korepetytora.<\/small>\n                    <div class=\"tutorcrm-public-payment-note-v9158109\">\n                        <div class=\"tutorcrm-public-payment-icon-v9158110\">\ud83d\udcb3<\/div>\n                        <div class=\"tutorcrm-public-payment-copy-v9158110\"><strong>P\u0142atno\u015b\u0107 w celu potwierdzenia rezerwacji<\/strong>\n                        <span>Aby doko\u0144czy\u0107 rezerwacj\u0119 i przekaza\u0107 j\u0105 do akceptacji, prosimy o dokonanie p\u0142atno\u015bci <b>od razu po wys\u0142aniu zg\u0142oszenia<\/b>. Rezerwacja zostanie potwierdzona po zaksi\u0119gowaniu wp\u0142aty.<\/span>\n                        <div class=\"tutorcrm-public-booking-price-v9158119\"><small>KWOTA ZA 60 MIN<\/small><b data-public-booking-price-v9158119>\u2014<\/b><\/div>\n                        <div class=\"tutorcrm-public-blik-v9158110\"><small>BLIK<\/small><b>537 313 902<\/b><\/div>\n                        <span>W tytule wpisz <b>imi\u0119 i nazwisko ucznia<\/b>.<\/span><\/div>\n                    <\/div>\n                <\/div>\n                <script>\n                (function(){\n                    var script=document.currentScript;\n                    var form=script&&script.closest('.tutorcrm-public-form-v7678');\n                    var box=form&&form.querySelector('.tutorcrm-public-terms-v9158102');\n                    var step=form&&form.closest('[data-public-step=\"2\"]');\n                    if(!form||!box||!step)return;\n                    function refreshTerms(){\n                        var tid=String((form.querySelector('[name=\"tutor_id\"]')||{}).value||'');\n                        var owners=String(box.dataset.ownerIds||'').split(',').filter(Boolean);\n                        var isOwner=owners.indexOf(tid)!==-1;\n                        var url=isOwner?String(box.dataset.ownerUrl||''):String(box.dataset.tutorUrl||'');\n                        var link=box.querySelector('.tutorcrm-public-terms-link-v9158102');\n                        var note=box.querySelector('.tutorcrm-public-terms-note-v9158102');\n                        var check=box.querySelector('[name=\"accept_terms_v9158102\"]');\n                        var amount=box.querySelector('[data-public-booking-price-v9158119]');\n                        var rawPrice=isOwner?String(box.dataset.ownerPrice||'120'):String(box.dataset.tutorPrice||'100');\n                        var numericPrice=parseFloat(rawPrice.replace(',','.'))||0;\n                        if(amount) amount.textContent=numericPrice ? (Number.isInteger(numericPrice)?numericPrice.toFixed(0):numericPrice.toFixed(2).replace('.',','))+' z\u0142' : '\u2014';\n                        if(link){\n                            link.href=url||'#';\n                            link.setAttribute('aria-disabled',url?'false':'true');\n                            link.onclick=url?null:function(e){e.preventDefault();};\n                        }\n                        if(check) check.disabled=!url;\n                        if(note) note.textContent=url\n                            ? (isOwner?'Regulamin dla lekcji prowadzonych przez w\u0142a\u015bciciela.':'Regulamin dla lekcji prowadzonych przez korepetytora.')\n                            : 'Regulamin PDF dla tego prowadz\u0105cego nie zosta\u0142 jeszcze skonfigurowany.';\n                    }\n                    new MutationObserver(refreshTerms).observe(step,{attributes:true,attributeFilter:['hidden']});\n                    refreshTerms();\n                })();\n                <\/script>\n\n                <div class=\"tutorcrm-public-form-message-v7678\" hidden><\/div>\n                <button type=\"submit\" class=\"tutorcrm-public-submit-v7678\">Potwierd\u017a rezerwacj\u0119 <span aria-hidden=\"true\">\u2192<\/span><\/button>\n                <small>Je\u015bli podany e-mail ma ju\u017c konto w TutorCRM, system nie utworzy duplikatu.<\/small>\n            <\/form>\n        <\/section>\n\n        <section class=\"tutorcrm-public-step-v7678\" data-public-step=\"3\" hidden>\n            <div class=\"tutorcrm-public-success-v7678\">\n                <div>\u2713<\/div>\n                <h2>Rezerwacja wys\u0142ana!<\/h2>\n                <p class=\"tutorcrm-public-success-message-v7678\"><\/p>\n                <p class=\"tutorcrm-public-success-contact-v274\">Masz pytanie? Zadzwo\u0144: <a href=\"tel:+48577122196\">577 122 196<\/a><\/p>\n                <div class=\"tutorcrm-public-credentials-v7678\" hidden>\n                    <strong>Dane logowania<\/strong>\n                    <div><span>Login<\/span><code data-public-login><\/code><\/div>\n                    <div><span>Has\u0142o tymczasowe<\/span><code data-public-password><\/code><\/div>\n                    <div><span>Logowanie<\/span><code data-public-login-url><\/code><\/div>\n                    <button type=\"button\" class=\"tutorcrm-public-copy-v7678\">\ud83d\udccb Kopiuj dane<\/button>\n                <\/div>\n            <\/div>\n        <\/section>\n    <\/div>\n    <div class=\"tutorcrm-booking-credentials-overlay-v236\" hidden role=\"presentation\">\n        <div class=\"tutorcrm-booking-credentials-dialog-v236\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"tutorcrm-booking-credentials-title-v236\" tabindex=\"-1\">\n            <button type=\"button\" class=\"tutorcrm-booking-credentials-close-v236\" aria-label=\"Zamknij okno\">\u00d7<\/button>\n            <h2 id=\"tutorcrm-booking-credentials-title-v236\">Twoje dane logowania do Edu-Tech CRM<\/h2>\n            <p>Rezerwacja zosta\u0142a wys\u0142ana. Zapisz dane dost\u0119powe do nowego konta.<\/p>\n            <div class=\"tutorcrm-booking-credentials-values-v236\">\n                <div><strong>Login<\/strong><code data-modal-login><\/code><\/div>\n                <div><strong>Has\u0142o tymczasowe<\/strong><code data-modal-password><\/code><\/div>\n            <\/div>\n            <p class=\"tutorcrm-booking-credentials-note-v236\">Has\u0142o jest wy\u015bwietlane tylko teraz. Nie udost\u0119pniaj go innym osobom.<\/p>\n            <div class=\"tutorcrm-booking-credentials-actions-v236\">\n                <button type=\"button\" class=\"tutorcrm-booking-credentials-copy-v236\">Kopiuj dane<\/button>\n                <a class=\"tutorcrm-booking-credentials-login-v236\" href=\"#\">Przejd\u017a do logowania<\/a>\n                <button type=\"button\" class=\"tutorcrm-booking-credentials-done-v236\">Zamknij<\/button>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t   ","protected":false},"excerpt":{"rendered":"<p>Edu-Tech Agnieszka Zieli\u0144ska \u00a0 \u00a0<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"neve_meta_sidebar":"","neve_meta_container":"","neve_meta_enable_content_width":"off","neve_meta_content_width":100,"neve_meta_title_alignment":"","neve_meta_author_avatar":"","neve_post_elements_order":"","neve_meta_disable_header":"on","neve_meta_disable_footer":"","neve_meta_disable_title":"on","_themeisle_gutenberg_block_has_review":false,"footnotes":"","_members_access_role":[],"_members_access_error":""},"class_list":["post-1449","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/edu-tech.com.pl\/index.php\/wp-json\/wp\/v2\/pages\/1449","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/edu-tech.com.pl\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/edu-tech.com.pl\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/edu-tech.com.pl\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/edu-tech.com.pl\/index.php\/wp-json\/wp\/v2\/comments?post=1449"}],"version-history":[{"count":7,"href":"https:\/\/edu-tech.com.pl\/index.php\/wp-json\/wp\/v2\/pages\/1449\/revisions"}],"predecessor-version":[{"id":1457,"href":"https:\/\/edu-tech.com.pl\/index.php\/wp-json\/wp\/v2\/pages\/1449\/revisions\/1457"}],"wp:attachment":[{"href":"https:\/\/edu-tech.com.pl\/index.php\/wp-json\/wp\/v2\/media?parent=1449"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}