{"id":38,"date":"2026-03-03T10:05:03","date_gmt":"2026-03-03T10:05:03","guid":{"rendered":"https:\/\/dansinternationaal.trone.dev\/index.php\/pro-competition-registration\/"},"modified":"2026-03-11T21:39:04","modified_gmt":"2026-03-11T21:39:04","slug":"enter-and-book-lessons","status":"publish","type":"page","link":"https:\/\/dansinternationaal.trone.dev\/index.php\/enter-and-book-lessons\/","title":{"rendered":"Enter and book lessons"},"content":{"rendered":"\t<div class=\"doa-registration-page doa-clone\">\n\t\t<main class=\"doa-reg-main doa-inner\">\n\t\t\t<div class=\"doa-reg-grid doa-reg-grid-single\">\n\t\t\t\t<section class=\"doa-reg-left\">\n\t\t\t\t\t<div class=\"doa-reg-head\">\n\t\t\t\t\t\t<h1>Enter and book lessons<\/h1>\n\t\t\t\t\t\t<p id=\"doa-reg-subtitle\">Step 1: Private Lessons<\/p>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div class=\"doa-reg-progress-wrap\">\n\t\t\t\t\t\t<div class=\"doa-reg-progress-top\">\n\t\t\t\t\t\t\t<div class=\"doa-reg-steps\" id=\"doa-reg-steps\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"active\" data-index=\"0\"><i class=\"material-symbols-outlined\">school<\/i><em>Step 1: Lessons<\/em><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"\" data-index=\"1\"><i class=\"material-symbols-outlined\">task_alt<\/i><em>Step 2: Confirm<\/em><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"\" data-index=\"2\"><i class=\"material-symbols-outlined\">badge<\/i><em>Step 3: Contact<\/em><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"\" data-index=\"3\"><i class=\"material-symbols-outlined\">groups<\/i><em>Step 4: Dancer(s)<\/em><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"\" data-index=\"4\"><i class=\"material-symbols-outlined\">receipt_long<\/i><em>Step 5: Overview<\/em><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<strong id=\"doa-reg-progress-label\">20% Complete<\/strong>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<div class=\"doa-reg-progress-bar\"><i id=\"doa-reg-progress-fill\"><\/i><\/div>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<form class=\"doa-reg-card\" id=\"doa-registration-form\" data-ajax-url=\"https:\/\/dansinternationaal.trone.dev\/wp-admin\/admin-ajax.php\" data-nonce=\"0583ca507b\" novalidate>\n\t\t\t\t\t\t<div class=\"doa-step is-active\" data-step=\"1\" data-title=\"Step 1: Private Lessons\">\n\t\t\t\t\t\t\t<div class=\"doa-reg-teachers\">\n\t\t\t\t\t\t\t\t<p>Select your preferred teacher(s) and quantity:<\/p>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"doa-reg-teacher-row is-available\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"doa-teacher-main\">\n\t\t\t\t\t\t\t\t\t\t\t<label>\n\t\t\t\t\t\t\t\t\t\t\t\t<input type=\"checkbox\" name=\"teacher[]\" value=\"Barbara Stopford B.E.M.\" data-qty=\"qty_teacher_0\"  \/>\n\t\t\t\t\t\t\t\t\t\t\t\t<span>Barbara Stopford B.E.M.<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<\/label>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t<input type=\"number\" min=\"0\" max=\"20\" value=\"0\" name=\"qty_teacher_0\" id=\"qty_teacher_0\"  \/>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"doa-reg-teacher-row is-available\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"doa-teacher-main\">\n\t\t\t\t\t\t\t\t\t\t\t<label>\n\t\t\t\t\t\t\t\t\t\t\t\t<input type=\"checkbox\" name=\"teacher[]\" value=\"Donnie Burns M.B.E.\" data-qty=\"qty_teacher_1\"  \/>\n\t\t\t\t\t\t\t\t\t\t\t\t<span>Donnie Burns M.B.E.<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<\/label>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t<input type=\"number\" min=\"0\" max=\"20\" value=\"0\" name=\"qty_teacher_1\" id=\"qty_teacher_1\"  \/>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"doa-reg-teacher-row is-available\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"doa-teacher-main\">\n\t\t\t\t\t\t\t\t\t\t\t<label>\n\t\t\t\t\t\t\t\t\t\t\t\t<input type=\"checkbox\" name=\"teacher[]\" value=\"Heidi Burns\" data-qty=\"qty_teacher_2\"  \/>\n\t\t\t\t\t\t\t\t\t\t\t\t<span>Heidi Burns<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<\/label>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t<input type=\"number\" min=\"0\" max=\"20\" value=\"0\" name=\"qty_teacher_2\" id=\"qty_teacher_2\"  \/>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"doa-reg-teacher-row is-available\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"doa-teacher-main\">\n\t\t\t\t\t\t\t\t\t\t\t<label>\n\t\t\t\t\t\t\t\t\t\t\t\t<input type=\"checkbox\" name=\"teacher[]\" value=\"Sammy Stopford M.B.E.\" data-qty=\"qty_teacher_3\"  \/>\n\t\t\t\t\t\t\t\t\t\t\t\t<span>Sammy Stopford M.B.E.<\/span>\n\t\t\t\t\t\t\t\t\t\t\t<\/label>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t<input type=\"number\" min=\"0\" max=\"20\" value=\"0\" name=\"qty_teacher_3\" id=\"qty_teacher_3\"  \/>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t<div class=\"doa-step\" data-step=\"2\" data-title=\"Step 2: Booking Conditions\">\n\t\t\t\t\t\t\t<div class=\"doa-reg-checks\">\n\t\t\t\t\t\t\t\t<label><input type=\"checkbox\" name=\"agree_booking\" required \/> I understand that lesson bookings are provisional and subject to availability.<\/label>\n\t\t\t\t\t\t\t\t<label><input type=\"checkbox\" name=\"agree_ticket\" required \/> I understand that a Dance Camp ticket is required to book private lessons.<\/label>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t<div class=\"doa-step\" data-step=\"3\" data-title=\"Step 3: Contact Details\">\n\t\t\t\t\t\t\t<div class=\"doa-reg-fields doa-col-2\">\n\t\t\t\t\t\t\t\t<label><span>Family name *<\/span><input type=\"text\" name=\"family_name\" required minlength=\"2\" \/><\/label>\n\t\t\t\t\t\t\t\t<label><span>Contact email *<\/span><input type=\"email\" name=\"contact_email\" required \/><small class=\"doa-field-help\">Lesson schedules are sent here.<\/small><\/label>\n\t\t\t\t\t\t\t\t<label><span>Phone number *<\/span><input type=\"tel\" name=\"phone\" required pattern=\"^[+0-9()\\-\\s]{8,20}$\" \/><\/label>\n\t\t\t\t\t\t\t\t<label><span>Country *<\/span><select name=\"country\" required><option value=\"\">Select Country<\/option><option value=\"Australia\">Australia<\/option><option value=\"Austria\">Austria<\/option><option value=\"Belarus\">Belarus<\/option><option value=\"Belgium\">Belgium<\/option><option value=\"Canada\">Canada<\/option><option value=\"China\">China<\/option><option value=\"Cyprus\">Cyprus<\/option><option value=\"Czech Republic\">Czech Republic<\/option><option value=\"Denmark\">Denmark<\/option><option value=\"England\">England<\/option><option value=\"Finland\">Finland<\/option><option value=\"France\">France<\/option><option value=\"Germany\">Germany<\/option><option value=\"Greece\">Greece<\/option><option value=\"Guernsey\">Guernsey<\/option><option value=\"Hungary\">Hungary<\/option><option value=\"Italia\">Italia<\/option><option value=\"Italy\">Italy<\/option><option value=\"Kazakhstan\">Kazakhstan<\/option><option value=\"Latvia\">Latvia<\/option><option value=\"Malaysia\">Malaysia<\/option><option value=\"Malta\">Malta<\/option><option value=\"Moldova\">Moldova<\/option><option value=\"Netherlands\">Netherlands<\/option><option value=\"Neutral\">Neutral<\/option><option value=\"New Zealand\">New Zealand<\/option><option value=\"Poland\">Poland<\/option><option value=\"Portugal\">Portugal<\/option><option value=\"Romania\">Romania<\/option><option value=\"Russia\">Russia<\/option><option value=\"Scotland\">Scotland<\/option><option value=\"Slovenia\">Slovenia<\/option><option value=\"South Africa\">South Africa<\/option><option value=\"Spain\">Spain<\/option><option value=\"Sweden\">Sweden<\/option><option value=\"Switzerland\">Switzerland<\/option><option value=\"Turkey\">Turkey<\/option><option value=\"Ukraine\">Ukraine<\/option><option value=\"United Kingdom\">United Kingdom<\/option><option value=\"United States\">United States<\/option><option value=\"USA\">USA<\/option><option value=\"Wales\">Wales<\/option><\/select><\/label>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t<div class=\"doa-step\" data-step=\"4\" data-title=\"Step 4: Dancer(s)\">\n\t\t\t\t\t\t\t<div class=\"doa-reg-fields doa-col-2\">\n\t\t\t\t\t\t\t\t<label class=\"doa-field-full doa-solo-toggle\"><span>Entry type<\/span><span class=\"doa-check-inline\"><input type=\"checkbox\" name=\"is_solo\" id=\"doa-is-solo\" \/> Solo dancer<\/span><\/label>\n\t\t\t\t\t\t\t\t<label><span>Leader name *<\/span><input type=\"text\" name=\"leader_name\" required minlength=\"2\" \/><\/label>\n\t\t\t\t\t\t\t\t<label class=\"doa-follower-field\"><span>Follower name *<\/span><input type=\"text\" name=\"follower_name\" minlength=\"2\" \/><\/label>\n\t\t\t\t\t\t\t\t<label><span>Date of birth *<\/span><input type=\"text\" class=\"doa-date-input\" name=\"leader_dob\" required placeholder=\"dd-mm-yyyy\" autocomplete=\"bday\" inputmode=\"numeric\" maxlength=\"10\" \/><\/label>\n\t\t\t\t\t\t\t\t<label class=\"doa-follower-field\"><span>Date of birth *<\/span><input type=\"text\" class=\"doa-date-input\" name=\"follower_dob\" placeholder=\"dd-mm-yyyy\" autocomplete=\"bday\" inputmode=\"numeric\" maxlength=\"10\" \/><\/label>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t<div class=\"doa-step\" data-step=\"5\" data-title=\"Step 5: Booking Overview\">\n\t\t\t\t\t\t\t<div class=\"doa-reg-summary\" id=\"doa-reg-summary\"><\/div>\n\t\t\t\t\t\t\t<div class=\"doa-reg-fields\">\n\t\t\t\t\t\t\t\t<label><span>Remarks<\/span><textarea name=\"remarks\" rows=\"5\" placeholder=\"Add any booking note or planning remark here.\"><\/textarea><\/label>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t<div class=\"doa-reg-actions\">\n\t\t\t\t\t\t\t<button type=\"button\" class=\"doa-reg-btn doa-reg-btn-ghost\" id=\"doa-reg-prev\" disabled>Back<\/button>\n\t\t\t\t\t\t\t<button type=\"button\" class=\"doa-reg-btn\" id=\"doa-reg-next\">Continue<\/button>\n\t\t\t\t\t\t\t<button type=\"submit\" class=\"doa-reg-btn\" id=\"doa-reg-submit\" hidden>Send booking<\/button>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/form>\n\t\t\t\t\t<div class=\"doa-reg-success\" id=\"doa-reg-success\" hidden>\n\t\t\t\t\t\t<h3>Thank you. Booking received.<\/h3>\n\t\t\t\t\t\t<p>Your reservation has been received and is not final yet.<\/p>\n\t\t\t\t\t\t<p>We will contact you shortly with the lesson schedule and final confirmation.<\/p>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/section>\n\n\t\t\t\t<aside class=\"doa-reg-right\">\n\t\t\t\t\t<div class=\"doa-reg-help doa-reg-help-standalone\">\n\t\t\t\t\t\t<div class=\"doa-reg-help-head\">\n\t\t\t\t\t\t\t<span class=\"doa-reg-help-icon\"><span class=\"material-symbols-outlined\">help<\/span><\/span>\n\t\t\t\t\t\t\t<h4>Need assistance?<\/h4>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<p>Tickets, hotel packages, or registration questions, our support team is happy to help.<\/p>\n\t\t\t\t\t\t<a class=\"doa-reg-support-link\" href=\"\/index.php\/contact\/\">Contact the Team<\/a>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/aside>\n\t\t\t<\/div>\n\t\t<\/main>\n\t<\/div>\n\t<style>\n\t\t.doa-registration-page { --doa-primary:#d8a118; --doa-bg:#0a0c12; --doa-card:#121826; --doa-line:#1b2438; --doa-text:#eaf0ff; --doa-muted:#98a7c5; }\n\t\t.doa-registration-page * { box-sizing:border-box; }\n\t\t.doa-registration-page { overflow-x:hidden; }\n\t\t.doa-registration-page .doa-reg-main { padding-top:36px; padding-bottom:64px; }\n\t\t.doa-registration-page .doa-reg-grid { display:grid; grid-template-columns:minmax(0,1.8fr) minmax(280px,.8fr); gap:28px; align-items:start; }\n\t\t.doa-registration-page .doa-reg-grid-single .doa-reg-right { position:sticky; top:24px; }\n\t\t.doa-registration-page .doa-reg-head h1 { margin:0; color:var(--doa-text); font-size:44px; font-weight:900; line-height:1; }\n\t\t.doa-registration-page .doa-reg-head p { margin:8px 0 0; color:var(--doa-muted); font-size:16px; font-weight:600; }\n\t\t.doa-registration-page .doa-reg-progress-wrap { margin-top:18px; }\n\t\t.doa-registration-page .doa-reg-progress-top { display:flex; justify-content:space-between; gap:12px; align-items:flex-start; }\n\t\t.doa-registration-page .doa-reg-steps { display:flex; flex-wrap:wrap; gap:8px; }\n\t\t.doa-registration-page .doa-reg-steps span { display:inline-flex; align-items:center; gap:5px; color:#6e7f9e; font-size:11px; font-weight:700; border:1px solid #2a3550; border-radius:999px; padding:6px 10px; }\n\t\t.doa-registration-page .doa-reg-steps span.active { color:var(--doa-primary); border-color:rgba(216,161,24,.55); background:rgba(216,161,24,.08); }\n\t\t.doa-registration-page .doa-reg-progress-top strong { color:var(--doa-primary); font-size:12px; font-weight:800; white-space:nowrap; }\n\t\t.doa-registration-page .doa-reg-progress-bar { margin-top:10px; width:100%; height:8px; background:rgba(216,161,24,.12); border-radius:999px; overflow:hidden; }\n\t\t.doa-registration-page .doa-reg-progress-bar i { display:block; height:100%; width:20%; background:var(--doa-primary); transition:width .25s ease; }\n\t\t.doa-registration-page .doa-reg-card { margin-top:18px; background:rgba(10,14,23,.72); border:1px solid var(--doa-line); border-radius:14px; padding:22px; }\n\t\t.doa-registration-page .doa-step { display:none; }\n\t\t.doa-registration-page .doa-step.is-active { display:block; }\n\t\t.doa-registration-page .doa-reg-fields { display:grid; gap:14px; }\n\t\t.doa-registration-page .doa-reg-fields.doa-col-2 { grid-template-columns:repeat(2,minmax(0,1fr)); }\n\t\t.doa-registration-page .doa-field-full { grid-column:1 \/ -1; }\n\t\t.doa-registration-page .doa-reg-fields label > span { display:block; margin-bottom:6px; color:#d6e1f7; font-size:12px; font-weight:700; }\n\t\t.doa-registration-page .doa-reg-fields input,\n\t\t.doa-registration-page .doa-reg-fields select,\n\t\t.doa-registration-page .doa-reg-fields textarea { width:100%; border:1px solid #2a3550; background:#0c111d; border-radius:10px; padding:12px; color:#eef3ff; font:600 14px\/1.35 Montserrat,sans-serif; outline:none; }\n\t\t.doa-registration-page .doa-reg-fields input:focus,\n\t\t.doa-registration-page .doa-reg-fields select:focus,\n\t\t.doa-registration-page .doa-reg-fields textarea:focus { border-color:var(--doa-primary); box-shadow:0 0 0 2px rgba(216,161,24,.18); }\n\t\t.doa-registration-page .flatpickr-input[readonly] { cursor:pointer; background:#0c111d; }\n\t\t.doa-registration-page .doa-reg-teachers p { margin:0 0 10px; color:#d6e1f7; font-size:13px; font-weight:700; }\n\t\t.doa-registration-page .doa-reg-teacher-row { display:grid; grid-template-columns:minmax(0,1fr) 90px; gap:10px; align-items:center; background:rgba(255,255,255,.02); border:1px solid var(--doa-line); border-radius:10px; padding:12px; margin-bottom:10px; }\n\t\t.doa-registration-page .doa-teacher-main label { color:#d6e1f7; font-size:14px; font-weight:700; display:flex; gap:8px; align-items:flex-start; }\n\t\t.doa-registration-page .doa-reg-teacher-row input[type=\"number\"] { border:1px solid #2a3550; background:#0c111d; border-radius:8px; color:#fff; padding:9px 10px; font-size:13px; }\n\t\t.doa-registration-page .doa-status { display:inline-block; margin-top:6px; font-size:11px; font-weight:800; letter-spacing:.04em; text-transform:uppercase; }\n\t\t.doa-registration-page .doa-status-reserve { color:var(--doa-primary); }\n\t\t.doa-registration-page .doa-status-booked { color:#ff8c74; }\n\t\t.doa-registration-page .doa-reg-teacher-row.is-booked { opacity:.7; }\n\t\t.doa-registration-page .doa-reg-checks label { display:flex; gap:10px; margin-bottom:12px; color:#c8d5ef; font-size:14px; }\n\t\t.doa-registration-page .doa-step input[type=\"checkbox\"] { -webkit-appearance:none; appearance:none; width:22px; height:22px; margin:0; border:2px solid #3a4866; border-radius:6px; background:#0c111d; display:inline-grid; place-content:center; cursor:pointer; transition:border-color .18s ease, background-color .18s ease, box-shadow .18s ease, transform .18s ease; flex:0 0 22px; position:relative; top:1px; }\n\t\t.doa-registration-page .doa-step input[type=\"checkbox\"]::after { content:''; width:12px; height:12px; transform:scale(0); transition:transform .14s ease; background-repeat:no-repeat; background-position:center; background-size:12px 12px; background-image:url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 16 16'%3E%3Cpath fill='%230b0d14' d='M6.3 11.6 2.7 8l1.4-1.4 2.2 2.2 5.5-5.5L13.2 4z'\/%3E%3C\/svg%3E\"); }\n\t\t.doa-registration-page .doa-step input[type=\"checkbox\"]:checked { border-color:var(--doa-primary); background:var(--doa-primary); box-shadow:0 6px 14px rgba(216,161,24,.28); }\n\t\t.doa-registration-page .doa-step input[type=\"checkbox\"]:checked::after { transform:scale(1); }\n\t\t.doa-registration-page .doa-field-help { display:block; margin-top:6px; color:var(--doa-muted); font-size:12px; font-weight:600; }\n\t\t.doa-registration-page .doa-check-inline { display:inline-flex; align-items:center; gap:10px; color:#d6e1f7; font-size:14px; font-weight:700; }\n\t\t.doa-registration-page .doa-solo-toggle { background:rgba(255,255,255,.02); border:1px solid var(--doa-line); border-radius:10px; padding:12px; }\n\t\t.doa-registration-page .doa-reg-summary { display:grid; gap:14px; margin-bottom:18px; }\n\t\t.doa-registration-page .doa-reg-summary-card { background:rgba(255,255,255,.02); border:1px solid var(--doa-line); border-radius:12px; padding:14px; }\n\t\t.doa-registration-page .doa-reg-summary-card h4 { margin:0 0 8px; color:#fff; font-size:14px; font-weight:900; }\n\t\t.doa-registration-page .doa-reg-summary-card p, .doa-registration-page .doa-reg-summary-card li { margin:0; color:#c8d5ef; font-size:13px; line-height:1.5; }\n\t\t.doa-registration-page .doa-reg-summary-card ul { margin:0; padding:0; list-style:none; display:grid; gap:8px; }\n\t\t.doa-registration-page .doa-reg-summary-card ul li { display:flex; align-items:flex-start; gap:10px; }\n\t\t.doa-registration-page .doa-reg-summary-card ul li::before { content:''; width:10px; min-width:10px; height:10px; border-radius:999px; background:var(--doa-primary); box-shadow:0 0 0 4px rgba(216,161,24,.18); margin-top:5px; }\n\t\t.doa-registration-page .doa-reg-actions { display:flex; justify-content:flex-end; gap:10px; padding-top:16px; margin-top:16px; border-top:1px solid var(--doa-line); }\n\t\t.doa-registration-page .doa-reg-btn { border:none; border-radius:10px; height:44px; padding:0 18px; background:var(--doa-primary); color:#090909; font-size:13px; font-weight:800; cursor:pointer; }\n\t\t.doa-registration-page .doa-reg-btn-ghost { background:transparent; color:#c7d4ed; border:1px solid #314161; }\n\t\t.doa-registration-page .doa-reg-btn:disabled { opacity:.45; cursor:not-allowed; }\n\t\t.doa-registration-page .doa-reg-success { margin-top:18px; background:rgba(24,160,88,.12); border:1px solid rgba(24,160,88,.45); border-radius:14px; padding:18px; }\n\t\t.doa-registration-page .doa-reg-success h3 { margin:0 0 8px; color:#dff7e9; font-size:22px; font-weight:900; }\n\t\t.doa-registration-page .doa-reg-success p { margin:0 0 6px; color:#c6ecd8; font-size:14px; line-height:1.45; }\n\t\t.doa-registration-page .doa-reg-right { display:flex; flex-direction:column; gap:16px; }\n\t\t.doa-registration-page .doa-reg-help { background:color-mix(in srgb,var(--doa-primary) 10%, #121826 90%); border:1px solid rgba(216,161,24,.24); border-radius:16px; padding:18px; }\n\t\t.doa-registration-page .doa-reg-help-head { display:flex; align-items:center; gap:12px; }\n\t\t.doa-registration-page .doa-reg-help-icon { width:34px; height:34px; border-radius:999px; border:2px solid rgba(216,161,24,.72); display:inline-flex; align-items:center; justify-content:center; color:var(--doa-primary); }\n\t\t.doa-registration-page .doa-reg-help-icon .material-symbols-outlined { font-size:18px; }\n\t\t.doa-registration-page .doa-reg-help h4 { margin:0; color:#fff; font-size:16px; font-weight:900; line-height:1.1; }\n\t\t.doa-registration-page .doa-reg-help p { margin:14px 0 0; color:#d2d9e7; font-size:14px; line-height:1.75; }\n\t\t.doa-registration-page .doa-reg-support-link { display:inline-flex; width:100%; min-height:52px; margin-top:16px; align-items:center; justify-content:center; border-radius:14px; background:rgba(8,12,22,.55); border:1px solid rgba(216,161,24,.55); color:var(--doa-primary); font-size:12px; font-weight:900; text-decoration:none; }\n\t\t.flatpickr-calendar { background:#111827; border:1px solid #2a3550; box-shadow:0 14px 38px rgba(0,0,0,.45); }\n\t\t.flatpickr-months .flatpickr-month, .flatpickr-current-month input.cur-year, .flatpickr-current-month .flatpickr-monthDropdown-months, .flatpickr-weekday, .flatpickr-monthDropdown-month, .flatpickr-monthDropdown-months, .flatpickr-time, .flatpickr-time input, .flatpickr-am-pm { color:#e5ecff; fill:#e5ecff; }\n\t\t.flatpickr-day { color:#d6e1f7; border-radius:8px; border:1px solid transparent; }\n\t\t.flatpickr-day.today { border-color:rgba(216,161,24,.55); }\n\t\t.flatpickr-day.selected, .flatpickr-day.startRange, .flatpickr-day.endRange, .flatpickr-day.selected:hover { background:#d8a118; border-color:#d8a118; color:#0a0c12; }\n\t\t@media (max-width: 980px) { .doa-registration-page .doa-reg-grid { grid-template-columns:1fr; } .doa-registration-page .doa-reg-right { order:2; position:static; } }\n\t\t@media (max-width: 700px) { .doa-registration-page .doa-reg-fields.doa-col-2 { grid-template-columns:1fr; } .doa-registration-page .doa-reg-steps { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); } .doa-registration-page .doa-reg-teacher-row { grid-template-columns:1fr; } .doa-registration-page .doa-reg-actions { flex-direction:column-reverse; } .doa-registration-page .doa-reg-btn, .doa-registration-page .doa-reg-btn-ghost { width:100%; } .doa-registration-page .doa-reg-fields input, .doa-registration-page .doa-reg-fields select, .doa-registration-page .doa-reg-fields textarea, .doa-registration-page .doa-reg-teacher-row input[type=\"number\"] { font-size:16px; } }\n\t\t@media (max-width: 480px) { .doa-registration-page .doa-reg-head h1 { font-size:27px; } }\n\t<\/style>\n\t<script>\n\t(function () {\n\t\tconst form = document.getElementById('doa-registration-form');\n\t\tif (!form) return;\n\t\tconst steps = Array.from(form.querySelectorAll('.doa-step'));\n\t\tconst labels = Array.from(document.querySelectorAll('#doa-reg-steps span'));\n\t\tconst prev = document.getElementById('doa-reg-prev');\n\t\tconst next = document.getElementById('doa-reg-next');\n\t\tconst submit = document.getElementById('doa-reg-submit');\n\t\tconst successBox = document.getElementById('doa-reg-success');\n\t\tconst fill = document.getElementById('doa-reg-progress-fill');\n\t\tconst pctLabel = document.getElementById('doa-reg-progress-label');\n\t\tconst subtitle = document.getElementById('doa-reg-subtitle');\n\t\tconst soloToggle = document.getElementById('doa-is-solo');\n\t\tconst summaryBox = document.getElementById('doa-reg-summary');\n\t\tlet index = 0;\n\n\t\tfunction updateFollowerState() {\n\t\t\tconst isSolo = !!(soloToggle && soloToggle.checked);\n\t\t\tform.querySelectorAll('.doa-follower-field').forEach((field) => {\n\t\t\t\tfield.style.display = isSolo ? 'none' : '';\n\t\t\t});\n\t\t\tconst followerName = form.querySelector('input[name=\"follower_name\"]');\n\t\t\tconst followerDob = form.querySelector('input[name=\"follower_dob\"]');\n\t\t\tif (followerName) followerName.required = !isSolo;\n\t\t\tif (followerDob) followerDob.required = !isSolo;\n\t\t}\n\n\t\tfunction buildSummary() {\n\t\t\tif (!summaryBox) return;\n\t\t\tconst fd = new FormData(form);\n\t\t\tconst selectedTeachers = [];\n\t\t\tform.querySelectorAll('input[name=\"teacher[]\"]:checked').forEach((checkbox) => {\n\t\t\t\tconst qtyInput = document.getElementById(checkbox.dataset.qty || '');\n\t\t\t\tconst qty = qtyInput ? qtyInput.value : '0';\n\t\t\t\tselectedTeachers.push(checkbox.value + ' x' + qty);\n\t\t\t});\n\t\t\tconst isSolo = !!fd.get('is_solo');\n\t\t\tsummaryBox.innerHTML = '' +\n\t\t\t\t'<div class=\"doa-reg-summary-card\"><h4>Lessons<\/h4><ul>' + (selectedTeachers.length ? selectedTeachers.map((item) => '<li>' + item + '<\/li>').join('') : '<li>No lessons selected<\/li>') + '<\/ul><\/div>' +\n\t\t\t\t'<div class=\"doa-reg-summary-card\"><h4>Contact<\/h4><p><strong>Family name:<\/strong> ' + (fd.get('family_name') || '') + '<\/p><p><strong>Email:<\/strong> ' + (fd.get('contact_email') || '') + '<\/p><p><strong>Phone:<\/strong> ' + (fd.get('phone') || '') + '<\/p><p><strong>Country:<\/strong> ' + (fd.get('country') || '') + '<\/p><\/div>' +\n\t\t\t\t'<div class=\"doa-reg-summary-card\"><h4>Dancer(s)<\/h4><p><strong>Leader name:<\/strong> ' + (fd.get('leader_name') || '') + '<\/p><p><strong>Leader DOB:<\/strong> ' + (fd.get('leader_dob') || '') + '<\/p>' + (isSolo ? '<p><strong>Solo dancer:<\/strong> Yes<\/p>' : '<p><strong>Follower name:<\/strong> ' + (fd.get('follower_name') || '') + '<\/p><p><strong>Follower DOB:<\/strong> ' + (fd.get('follower_dob') || '') + '<\/p>') + '<\/div>';\n\t\t}\n\n\t\tfunction update() {\n\t\t\tsteps.forEach((step, i) => step.classList.toggle('is-active', i === index));\n\t\t\tlabels.forEach((label, i) => label.classList.toggle('active', i === index));\n\t\t\tconst pct = Math.round(((index + 1) \/ steps.length) * 100);\n\t\t\tfill.style.width = pct + '%';\n\t\t\tpctLabel.textContent = pct + '% Complete';\n\t\t\tprev.disabled = index === 0;\n\t\t\tnext.hidden = index === steps.length - 1;\n\t\t\tsubmit.hidden = index !== steps.length - 1;\n\t\t\tif (subtitle) subtitle.textContent = steps[index].dataset.title || '';\n\t\t\tif (index === steps.length - 1) buildSummary();\n\t\t}\n\n\t\tfunction validDate(value) {\n\t\t\tif (!value) return false;\n\t\t\treturn \/^(\\d{2})-(\\d{2})-(\\d{4})$\/.test(String(value).trim()) || \/^(\\d{4})-(\\d{2})-(\\d{2})$\/.test(String(value).trim());\n\t\t}\n\n\t\tfunction formatDateInputValue(value) {\n\t\t\tconst digits = String(value || '').replace(\/\\D\/g, '').slice(0, 8);\n\t\t\tif (digits.length <= 2) return digits;\n\t\t\tif (digits.length <= 4) return digits.slice(0, 2) + '-' + digits.slice(2);\n\t\t\treturn digits.slice(0, 2) + '-' + digits.slice(2, 4) + '-' + digits.slice(4);\n\t\t}\n\n\t\tfunction initDateInputFormatting() {\n\t\t\tform.querySelectorAll('.doa-date-input').forEach(function (input) {\n\t\t\t\tinput.addEventListener('input', function () {\n\t\t\t\t\tconst formatted = formatDateInputValue(input.value);\n\t\t\t\t\tif (input.value !== formatted) input.value = formatted;\n\t\t\t\t});\n\t\t\t\tinput.addEventListener('blur', function () {\n\t\t\t\t\tinput.value = formatDateInputValue(input.value);\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\n\t\tfunction initDatePickers() {\n\t\t\tif (typeof window.flatpickr !== 'function') return;\n\t\t\tform.querySelectorAll('.doa-date-input').forEach(function (input) {\n\t\t\t\twindow.flatpickr(input, {\n\t\t\t\t\tdateFormat: 'd-m-Y',\n\t\t\t\t\tallowInput: true,\n\t\t\t\t\tmaxDate: 'today',\n\t\t\t\t\tdisableMobile: true,\n\t\t\t\t\tmonthSelectorType: 'static'\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\n\t\tfunction validateLessonsStep(step) {\n\t\t\tconst checks = Array.from(step.querySelectorAll('input[type=\"checkbox\"][name=\"teacher[]\"]'));\n\t\t\tconst selected = checks.filter((c) => c.checked);\n\t\t\tif (selected.length === 0) { alert('Selecteer minimaal 1 docent.'); return false; }\n\t\t\tfor (const cb of selected) {\n\t\t\t\tconst qtyInput = document.getElementById(cb.dataset.qty || '');\n\t\t\t\tconst qty = qtyInput ? parseInt(qtyInput.value || '0', 10) : 0;\n\t\t\t\tif (!qtyInput || Number.isNaN(qty) || qty <= 0) { alert('Geef een quantity groter dan 0 op voor alle geselecteerde docenten.'); if (qtyInput) qtyInput.focus(); return false; }\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\n\t\tfunction validateCurrentStep() {\n\t\t\tconst step = steps[index];\n\t\t\tif (step.dataset.step === '1') return validateLessonsStep(step);\n\t\t\tconst required = step.querySelectorAll('[required]');\n\t\t\tfor (const field of required) {\n\t\t\t\tif (field.offsetParent === null) continue;\n\t\t\t\tif (!field.checkValidity()) { field.reportValidity(); field.focus(); return false; }\n\t\t\t\tif (field.classList.contains('doa-date-input') && !validDate(field.value)) { alert('Gebruik datumformaat dd-mm-yyyy.'); field.focus(); return false; }\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\n\t\tnext.addEventListener('click', function () {\n\t\t\tif (!validateCurrentStep()) return;\n\t\t\tif (index < steps.length - 1) { index += 1; update(); }\n\t\t});\n\t\tprev.addEventListener('click', function () { if (index > 0) { index -= 1; update(); } });\n\t\tif (soloToggle) soloToggle.addEventListener('change', updateFollowerState);\n\n\t\tform.addEventListener('submit', async function (event) {\n\t\t\tevent.preventDefault();\n\t\t\tfor (let i = 0; i < steps.length; i += 1) {\n\t\t\t\tindex = i;\n\t\t\t\tupdate();\n\t\t\t\tif (!validateCurrentStep()) return;\n\t\t\t}\n\t\t\tsubmit.disabled = true;\n\t\t\tsubmit.textContent = 'Sending...';\n\t\t\ttry {\n\t\t\t\tconst data = new URLSearchParams(new FormData(form));\n\t\t\t\tdata.append('action', 'doa_submit_registration');\n\t\t\t\tdata.append('nonce', form.dataset.nonce || '');\n\t\t\t\tconst response = await fetch(form.dataset.ajaxUrl || '', { method: 'POST', credentials: 'same-origin', headers: { 'Content-Type': 'application\/x-www-form-urlencoded; charset=UTF-8' }, body: data.toString() });\n\t\t\t\tconst payload = await response.json();\n\t\t\t\tif (!response.ok || !payload || !payload.success) {\n\t\t\t\t\talert(payload && payload.data && payload.data.message ? payload.data.message : 'Er ging iets mis bij het versturen.');\n\t\t\t\t\tsubmit.disabled = false;\n\t\t\t\t\tsubmit.textContent = 'Send booking';\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tform.hidden = true;\n\t\t\t\tif (successBox) { successBox.hidden = false; successBox.scrollIntoView({ behavior: 'smooth', block: 'start' }); }\n\t\t\t} catch (err) {\n\t\t\t\talert('Netwerkfout bij versturen. Probeer opnieuw.');\n\t\t\t\tsubmit.disabled = false;\n\t\t\t\tsubmit.textContent = 'Send booking';\n\t\t\t}\n\t\t});\n\n\t\tinitDateInputFormatting();\n\t\tinitDatePickers();\n\t\tupdateFollowerState();\n\t\tupdate();\n\t})();\n\t<\/script>\n\t\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":0,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-38","page","type-page","status-publish","hentry"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/dansinternationaal.trone.dev\/index.php\/wp-json\/wp\/v2\/pages\/38","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dansinternationaal.trone.dev\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/dansinternationaal.trone.dev\/index.php\/wp-json\/wp\/v2\/types\/page"}],"replies":[{"embeddable":true,"href":"https:\/\/dansinternationaal.trone.dev\/index.php\/wp-json\/wp\/v2\/comments?post=38"}],"version-history":[{"count":1,"href":"https:\/\/dansinternationaal.trone.dev\/index.php\/wp-json\/wp\/v2\/pages\/38\/revisions"}],"predecessor-version":[{"id":204,"href":"https:\/\/dansinternationaal.trone.dev\/index.php\/wp-json\/wp\/v2\/pages\/38\/revisions\/204"}],"wp:attachment":[{"href":"https:\/\/dansinternationaal.trone.dev\/index.php\/wp-json\/wp\/v2\/media?parent=38"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}