{"id":896,"date":"2026-08-29T22:30:06","date_gmt":"2026-08-29T20:30:06","guid":{"rendered":"https:\/\/goaheadschool.pl\/?page_id=896"},"modified":"2026-09-10T13:03:02","modified_gmt":"2026-09-10T11:03:02","slug":"zapisy-na-kurs","status":"publish","type":"page","link":"https:\/\/goaheadschool.pl\/index.php\/zapisy-na-kurs\/","title":{"rendered":"Zapisy na kurs"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"896\" class=\"elementor elementor-896\" data-elementor-post-type=\"page\">\n\t\t\t\t\t\t<section class=\"has_eae_slider elementor-section elementor-top-section elementor-element elementor-element-46dbcdd3 elementor-section-stretched elementor-section-height-min-height elementor-section-full_width elementor-section-height-default elementor-section-items-middle elementor-invisible\" data-eae-slider=\"42895\" data-id=\"46dbcdd3\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;stretch_section&quot;:&quot;section-stretched&quot;,&quot;animation&quot;:&quot;slideInRight&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"has_eae_slider elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-b3a03ae\" data-eae-slider=\"77515\" data-id=\"b3a03ae\" data-element_type=\"column\" data-e-type=\"column\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-1e2accbf elementor-widget elementor-widget-heading\" data-id=\"1e2accbf\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">Wybierz rodzaj kursu<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"has_eae_slider elementor-section elementor-top-section elementor-element elementor-element-33754f31 elementor-section-stretched elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-eae-slider=\"23925\" data-id=\"33754f31\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;stretch_section&quot;:&quot;section-stretched&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"has_eae_slider elementor-column elementor-col-33 elementor-top-column elementor-element elementor-element-984f96c\" data-eae-slider=\"44538\" data-id=\"984f96c\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-0af9384 elementor-widget elementor-widget-image\" data-id=\"0af9384\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"#rejestracja-zajecia-grupowe\">\n\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"800\" height=\"534\" src=\"https:\/\/goaheadschool.pl\/wp-content\/uploads\/2026\/08\/zajecia_grupowe-1024x683.webp\" class=\"attachment-large size-large wp-image-2879\" alt=\"\" srcset=\"https:\/\/goaheadschool.pl\/wp-content\/uploads\/2026\/08\/zajecia_grupowe-1024x683.webp 1024w, https:\/\/goaheadschool.pl\/wp-content\/uploads\/2026\/08\/zajecia_grupowe-300x200.webp 300w, https:\/\/goaheadschool.pl\/wp-content\/uploads\/2026\/08\/zajecia_grupowe-768x512.webp 768w, https:\/\/goaheadschool.pl\/wp-content\/uploads\/2026\/08\/zajecia_grupowe.webp 1536w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"has_eae_slider elementor-column elementor-col-33 elementor-top-column elementor-element elementor-element-a549f18\" data-eae-slider=\"70970\" data-id=\"a549f18\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-c159117 elementor-widget elementor-widget-image\" data-id=\"c159117\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"#rejestracja-masters\">\n\t\t\t\t\t\t\t<img decoding=\"async\" width=\"800\" height=\"600\" src=\"https:\/\/goaheadschool.pl\/wp-content\/uploads\/2026\/08\/go_ahead_masters_ikona-1024x768.webp\" class=\"attachment-large size-large wp-image-2877\" alt=\"\" srcset=\"https:\/\/goaheadschool.pl\/wp-content\/uploads\/2026\/08\/go_ahead_masters_ikona-1024x768.webp 1024w, https:\/\/goaheadschool.pl\/wp-content\/uploads\/2026\/08\/go_ahead_masters_ikona-300x225.webp 300w, https:\/\/goaheadschool.pl\/wp-content\/uploads\/2026\/08\/go_ahead_masters_ikona-768x576.webp 768w, https:\/\/goaheadschool.pl\/wp-content\/uploads\/2026\/08\/go_ahead_masters_ikona.webp 1448w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"has_eae_slider elementor-column elementor-col-33 elementor-top-column elementor-element elementor-element-a128a67\" data-eae-slider=\"94103\" data-id=\"a128a67\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-f7c659c elementor-widget elementor-widget-image\" data-id=\"f7c659c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"#rejestracja-zajecia-indywidualne\">\n\t\t\t\t\t\t\t<img decoding=\"async\" width=\"800\" height=\"534\" src=\"https:\/\/goaheadschool.pl\/wp-content\/uploads\/2026\/08\/zajecia_indywidualne-1024x683.webp\" class=\"attachment-large size-large wp-image-2878\" alt=\"\" srcset=\"https:\/\/goaheadschool.pl\/wp-content\/uploads\/2026\/08\/zajecia_indywidualne-1024x683.webp 1024w, https:\/\/goaheadschool.pl\/wp-content\/uploads\/2026\/08\/zajecia_indywidualne-300x200.webp 300w, https:\/\/goaheadschool.pl\/wp-content\/uploads\/2026\/08\/zajecia_indywidualne-768x512.webp 768w, https:\/\/goaheadschool.pl\/wp-content\/uploads\/2026\/08\/zajecia_indywidualne.webp 1536w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"has_eae_slider elementor-section elementor-top-section elementor-element elementor-element-be9b5df elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-eae-slider=\"10704\" data-id=\"be9b5df\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"has_eae_slider elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-fff7f82\" data-eae-slider=\"5629\" data-id=\"fff7f82\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-3c19b31 elementor-widget elementor-widget-html\" data-id=\"3c19b31\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!-- =========================================================\n     GO AHEAD SCHOOL\n     POPUP \u2013 ZAJ\u0118CIA GRUPOWE\n\n     #rejestracja-zajecia-grupowe\n     ========================================================= -->\n\n<style>\n\n#gas-group-popup,\n#gas-group-popup * {\n    box-sizing: border-box;\n}\n\n\n\/* =========================================================\n   OVERLAY\n   ========================================================= *\/\n\n#gas-group-popup {\n    position: fixed;\n    inset: 0;\n    z-index: 999999;\n\n    display: flex;\n    align-items: center;\n    justify-content: center;\n\n    padding: 24px;\n\n    background: rgba(7,22,43,.68);\n\n    backdrop-filter: blur(5px);\n    -webkit-backdrop-filter: blur(5px);\n\n    opacity: 0;\n    visibility: hidden;\n    pointer-events: none;\n\n    transition:\n        opacity .25s ease,\n        visibility .25s ease;\n}\n\n#gas-group-popup.gas-group-active {\n    opacity: 1;\n    visibility: visible;\n    pointer-events: auto;\n}\n\n\n\/* =========================================================\n   OKNO\n   ========================================================= *\/\n\n#gas-group-popup .gas-group-window {\n    position: relative;\n\n    width: min(650px,100%);\n    max-height: calc(100vh - 48px);\n\n    display: flex;\n    flex-direction: column;\n\n    background: #fff;\n\n    border-radius: 22px;\n    overflow: hidden;\n\n    box-shadow:\n        0 25px 80px rgba(0,0,0,.32);\n\n    transform:\n        translateY(18px)\n        scale(.985);\n\n    transition:\n        transform .25s ease;\n}\n\n#gas-group-popup.gas-group-active\n.gas-group-window {\n    transform:\n        translateY(0)\n        scale(1);\n}\n\n\n\/* =========================================================\n   HEADER\n   ========================================================= *\/\n\n#gas-group-popup .gas-group-top {\n    position: relative;\n\n    flex: 0 0 auto;\n\n    width: 100%;\n    height: 235px;\n\n    background-color: #07346f;\n\n    \/*\n       TU ZOSTAW SW\u00d3J OBECNY URL\n       GRAFIKI ZAJ\u0118\u0106 GRUPOWYCH\n    *\/\n    background-image:\n        url('https:\/\/goaheadschool.pl\/wp-content\/uploads\/2026\/08\/go_ahead_grupowe_form.webp');\n\n    background-size: cover;\n    background-position: left center;\n    background-repeat: no-repeat;\n\n    overflow: hidden;\n}\n\n\n\/* =========================================================\n   X\n   ========================================================= *\/\n\n#gas-group-popup .gas-group-close {\n    position: absolute;\n\n    top: 15px;\n    right: 15px;\n\n    z-index: 20;\n\n    width: 42px;\n    height: 42px;\n\n    display: flex;\n    align-items: center;\n    justify-content: center;\n\n    padding: 0;\n    margin: 0;\n\n    border:\n        1px solid rgba(255,255,255,.38);\n\n    border-radius: 50%;\n\n    background:\n        rgba(5,22,45,.43);\n\n    backdrop-filter: blur(8px);\n    -webkit-backdrop-filter: blur(8px);\n\n    color: #fff;\n\n    font-family: Arial, Helvetica, sans-serif;\n    font-size: 28px;\n    font-weight: 300;\n    line-height: 1;\n\n    cursor: pointer;\n\n    transition:\n        background .2s ease,\n        transform .2s ease;\n}\n\n#gas-group-popup .gas-group-close:hover {\n    background:\n        rgba(5,22,45,.72);\n\n    transform: rotate(5deg);\n}\n\n\n\/* =========================================================\n   SCROLL\n   ========================================================= *\/\n\n#gas-group-popup .gas-group-scroll {\n    flex: 1 1 auto;\n\n    min-height: 0;\n\n    overflow-y: auto;\n    overflow-x: hidden;\n\n    background: #fff;\n\n    scrollbar-width: thin;\n\n    scrollbar-color:\n        rgba(25,67,131,.42)\n        transparent;\n}\n\n#gas-group-popup\n.gas-group-scroll::-webkit-scrollbar {\n    width: 7px;\n}\n\n#gas-group-popup\n.gas-group-scroll::-webkit-scrollbar-track {\n    background: transparent;\n}\n\n#gas-group-popup\n.gas-group-scroll::-webkit-scrollbar-thumb {\n    background:\n        rgba(25,67,131,.38);\n\n    border-radius: 100px;\n\n    border: 2px solid transparent;\n\n    background-clip: padding-box;\n}\n\n#gas-group-popup\n.gas-group-scroll::-webkit-scrollbar-button {\n    display: none;\n\n    width: 0;\n    height: 0;\n}\n\n\n\/* =========================================================\n   FORMULARZ\n   ========================================================= *\/\n\n#gas-group-popup .gas-group-form {\n    padding:\n        30px\n        32px\n        36px;\n\n    font-family: Arial, Helvetica, sans-serif;\n\n    color: #263445;\n}\n\n\n\/* =========================================================\n   SEKCJE\n   ========================================================= *\/\n\n#gas-group-popup .gas-group-section-title {\n    margin:\n        3px\n        0\n        22px;\n\n    color: #194383;\n\n    font-size: 18px;\n    font-weight: 700;\n    line-height: 1.3;\n}\n\n#gas-group-popup .gas-group-divider {\n    width: 100%;\n    height: 1px;\n\n    margin:\n        30px\n        0;\n\n    background: #e7ecf2;\n}\n\n\n\/* =========================================================\n   POLA\n   ========================================================= *\/\n\n#gas-group-popup .gas-group-field {\n    position: relative;\n\n    margin-bottom: 21px;\n}\n\n#gas-group-popup\n.gas-group-field > label {\n    display: block;\n\n    margin-bottom: 7px;\n\n    color: #334155;\n\n    font-size: 14px;\n    font-weight: 600;\n    line-height: 1.4;\n}\n\n#gas-group-popup .gas-required {\n    color: #df2929;\n}\n\n\n\/* INPUTY *\/\n\n#gas-group-popup\n.gas-group-field input[type=\"text\"],\n\n#gas-group-popup\n.gas-group-field input[type=\"email\"],\n\n#gas-group-popup\n.gas-group-field input[type=\"tel\"] {\n    display: block;\n\n    width: 100%;\n    min-height: 48px;\n\n    padding:\n        10px\n        13px;\n\n    margin: 0;\n\n    border:\n        1px solid #cfd7e3;\n\n    border-radius: 8px;\n\n    outline: none;\n\n    background: #fff;\n\n    color: #1f2937;\n\n    font-family: Arial, Helvetica, sans-serif;\n    font-size: 16px;\n\n    box-shadow: none;\n\n    transition:\n        border-color .18s ease,\n        box-shadow .18s ease;\n}\n\n#gas-group-popup\n.gas-group-field input:focus {\n    border-color: #194383;\n\n    box-shadow:\n        0 0 0 3px\n        rgba(25,67,131,.11);\n}\n\n\n\/* =========================================================\n   POLA WARUNKOWE\n   ========================================================= *\/\n\n#gas-group-popup\n.gas-group-conditional {\n    display: none;\n}\n\n#gas-group-popup\n.gas-group-conditional.gas-group-visible {\n    display: block;\n\n    animation:\n        gasGroupShow\n        .18s ease;\n}\n\n@keyframes gasGroupShow {\n\n    from {\n        opacity: 0;\n        transform: translateY(-4px);\n    }\n\n    to {\n        opacity: 1;\n        transform: translateY(0);\n    }\n\n}\n\n\n\/* =========================================================\n   SWITCH\n   ========================================================= *\/\n\n#gas-group-popup\n.gas-group-switch-row {\n    display: flex;\n\n    align-items: center;\n    justify-content: space-between;\n\n    gap: 20px;\n\n    width: 100%;\n\n    min-height: 58px;\n\n    padding:\n        10px\n        0;\n\n    margin-bottom: 21px;\n}\n\n#gas-group-popup\n.gas-group-switch-text {\n    color: #334155;\n\n    font-size: 15px;\n    font-weight: 600;\n    line-height: 1.4;\n}\n\n#gas-group-popup\n.gas-group-switch-label {\n    position: relative;\n\n    display: inline-block;\n\n    flex: 0 0 auto;\n\n    width: 52px;\n    height: 30px;\n\n    cursor: pointer;\n}\n\n#gas-group-popup\n.gas-group-switch-label input {\n    position: absolute;\n\n    width: 1px;\n    height: 1px;\n\n    opacity: 0;\n\n    pointer-events: none;\n}\n\n#gas-group-popup\n.gas-group-switch-slider {\n    position: absolute;\n\n    inset: 0;\n\n    border-radius: 100px;\n\n    background: #cbd4df;\n\n    box-shadow:\n        inset 0 0 0 1px\n        rgba(0,0,0,.06);\n\n    transition:\n        background .2s ease,\n        box-shadow .2s ease;\n}\n\n#gas-group-popup\n.gas-group-switch-slider::before {\n    content: \"\";\n\n    position: absolute;\n\n    width: 24px;\n    height: 24px;\n\n    left: 3px;\n    top: 3px;\n\n    border-radius: 50%;\n\n    background: #fff;\n\n    box-shadow:\n        0 2px 5px\n        rgba(0,0,0,.2);\n\n    transition:\n        transform .2s ease;\n}\n\n#gas-group-popup\n.gas-group-switch-label\ninput:checked\n+\n.gas-group-switch-slider {\n    background: #194383;\n}\n\n#gas-group-popup\n.gas-group-switch-label\ninput:checked\n+\n.gas-group-switch-slider::before {\n    transform:\n        translateX(22px);\n}\n\n#gas-group-popup\n.gas-group-switch-label\ninput:focus-visible\n+\n.gas-group-switch-slider {\n    box-shadow:\n        0 0 0 3px\n        rgba(25,67,131,.14);\n}\n\n\n\/* =========================================================\n   CUSTOM SELECT\n   ========================================================= *\/\n\n#gas-group-popup\n.gas-native-select {\n    position: absolute !important;\n\n    left: -9999px !important;\n\n    width: 1px !important;\n    height: 1px !important;\n\n    padding: 0 !important;\n    margin: 0 !important;\n\n    opacity: 0 !important;\n\n    pointer-events: none !important;\n}\n\n#gas-group-popup\n.gas-select-shell {\n    position: relative;\n\n    width: 100%;\n}\n\n#gas-group-popup\n.gas-select-trigger {\n    position: relative;\n\n    display: flex;\n\n    align-items: center;\n    justify-content: space-between;\n\n    width: 100%;\n    min-height: 48px;\n\n    padding:\n        10px\n        43px\n        10px\n        13px;\n\n    margin: 0;\n\n    border:\n        1px solid #cfd7e3;\n\n    border-radius: 8px;\n\n    background: #fff;\n\n    color: #1f2937;\n\n    font-family: Arial, Helvetica, sans-serif;\n    font-size: 16px;\n    line-height: 1.4;\n\n    text-align: left;\n\n    cursor: pointer;\n\n    outline: none;\n\n    transition:\n        border-color .18s ease,\n        box-shadow .18s ease,\n        border-radius .18s ease;\n}\n\n#gas-group-popup\n.gas-select-trigger:hover {\n    border-color: #aab8cb;\n}\n\n#gas-group-popup\n.gas-select-trigger:focus-visible {\n    border-color: #194383;\n\n    box-shadow:\n        0 0 0 3px\n        rgba(25,67,131,.11);\n}\n\n#gas-group-popup\n.gas-select-open\n.gas-select-trigger {\n    border-color: #194383;\n\n    border-radius:\n        8px 8px 0 0;\n\n    border-bottom-color:\n        #dbe3ee;\n\n    box-shadow:\n        0 0 0 3px\n        rgba(25,67,131,.08);\n}\n\n#gas-group-popup\n.gas-select-value {\n    min-width: 0;\n\n    overflow: hidden;\n\n    white-space: nowrap;\n\n    text-overflow: ellipsis;\n}\n\n\n\/* STRZA\u0141KA *\/\n\n#gas-group-popup\n.gas-select-arrow {\n    position: absolute;\n\n    right: 16px;\n    top: 50%;\n\n    width: 8px;\n    height: 8px;\n\n    border-right:\n        2px solid #344256;\n\n    border-bottom:\n        2px solid #344256;\n\n    transform:\n        translateY(-65%)\n        rotate(45deg);\n\n    transition:\n        transform .18s ease;\n\n    pointer-events: none;\n}\n\n#gas-group-popup\n.gas-select-open\n.gas-select-arrow {\n    transform:\n        translateY(-25%)\n        rotate(225deg);\n}\n\n\n\/* DROPDOWN *\/\n\n#gas-group-popup\n.gas-select-dropdown {\n    display: none;\n\n    width: 100%;\n\n    max-height: 240px;\n\n    overflow-y: auto;\n    overflow-x: hidden;\n\n    margin:\n        -1px\n        0\n        0;\n\n    padding:\n        5px\n        0;\n\n    border:\n        1px solid #194383;\n\n    border-top: 0;\n\n    border-radius:\n        0 0 8px 8px;\n\n    background: #fff;\n\n    box-shadow:\n        0 10px 22px\n        rgba(15,38,72,.12);\n\n    scrollbar-width: thin;\n\n    scrollbar-color:\n        rgba(25,67,131,.32)\n        transparent;\n}\n\n#gas-group-popup\n.gas-select-open\n.gas-select-dropdown {\n    display: block;\n\n    animation:\n        gasGroupDropdown\n        .14s ease;\n}\n\n@keyframes gasGroupDropdown {\n\n    from {\n        opacity: 0;\n        transform:\n            translateY(-3px);\n    }\n\n    to {\n        opacity: 1;\n        transform:\n            translateY(0);\n    }\n\n}\n\n\n\/* OPCJE *\/\n\n#gas-group-popup\n.gas-select-option {\n    display: flex;\n\n    align-items: center;\n\n    width: 100%;\n\n    min-height: 39px;\n\n    padding:\n        8px\n        13px;\n\n    margin: 0;\n\n    border: none;\n    border-radius: 0;\n\n    background: transparent;\n\n    color: #1f2937;\n\n    font-family: Arial, Helvetica, sans-serif;\n    font-size: 16px;\n    line-height: 1.4;\n\n    text-align: left;\n\n    cursor: pointer;\n\n    transition:\n        background .12s ease,\n        color .12s ease;\n}\n\n#gas-group-popup\n.gas-select-option:hover,\n\n#gas-group-popup\n.gas-select-option:focus {\n    outline: none;\n\n    background: #eef3fa;\n\n    color: #194383;\n}\n\n#gas-group-popup\n.gas-select-option.gas-option-selected {\n    background: #194383;\n\n    color: #fff;\n}\n\n#gas-group-popup\n.gas-select-option.gas-option-selected:hover {\n    background: #163a70;\n\n    color: #fff;\n}\n\n#gas-group-popup\n.gas-select-shell.gas-select-error\n.gas-select-trigger {\n    border-color: #df2929;\n\n    box-shadow:\n        0 0 0 3px\n        rgba(223,41,41,.09);\n}\n\n\n\/* =========================================================\n   ZGODY\n   ========================================================= *\/\n\n#gas-group-popup\n.gas-group-consent {\n    margin:\n        18px\n        0;\n\n    color: #475569;\n\n    font-size: 13px;\n    line-height: 1.55;\n}\n\n#gas-group-popup\n.gas-group-consent label {\n    display: flex;\n\n    align-items: flex-start;\n\n    gap: 11px;\n\n    cursor: pointer;\n}\n\n#gas-group-popup\n.gas-group-consent\ninput[type=\"checkbox\"] {\n    flex:\n        0 0 auto;\n\n    width: 18px;\n    height: 18px;\n\n    margin-top: 2px;\n\n    accent-color: #194383;\n}\n\n\n\/* =========================================================\n   RECAPTCHA\n   ========================================================= *\/\n\n#gas-group-popup\n.gas-group-recaptcha {\n    margin-top: 27px;\n\n    min-height: 78px;\n\n    overflow: hidden;\n}\n\n\n\/* =========================================================\n   SUBMIT\n   ========================================================= *\/\n\n#gas-group-popup\n.gas-group-submit-area {\n    margin-top: 28px;\n}\n\n#gas-group-popup\n.gas-group-submit {\n    display: block;\n\n    width: 100%;\n    min-height: 51px;\n\n    padding:\n        14px\n        24px;\n\n    border: none;\n\n    border-radius: 9px;\n\n    background: #194383;\n\n    color: #fff;\n\n    font-family: Arial, Helvetica, sans-serif;\n    font-size: 16px;\n    font-weight: 700;\n\n    cursor: pointer;\n\n    box-shadow:\n        0 5px 16px\n        rgba(25,67,131,.18);\n\n    transition:\n        background .18s ease,\n        transform .15s ease;\n}\n\n#gas-group-popup\n.gas-group-submit:hover {\n    background: #123566;\n\n    transform:\n        translateY(-1px);\n}\n\n#gas-group-popup\n.gas-group-note {\n    margin-top: 14px;\n\n    text-align: center;\n\n    color: #8995a5;\n\n    font-size: 12px;\n}\n\n\n\n\/* =========================================================\n   STATUS \/ B\u0141\u0118DY WYSY\u0141KI\n   ========================================================= *\/\n\n#gas-group-popup\n.gas-group-status {\n    display: none;\n\n    margin:\n        0\n        0\n        18px;\n\n    padding:\n        12px\n        14px;\n\n    border-radius: 9px;\n\n    font-size: 13px;\n    font-weight: 600;\n    line-height: 1.5;\n}\n\n#gas-group-popup\n.gas-group-status.gas-status-loading {\n    display: block;\n\n    background: #f4f7fb;\n\n    border:\n        1px solid #dbe4ef;\n\n    color: #334155;\n}\n\n#gas-group-popup\n.gas-group-status.gas-status-error {\n    display: block;\n\n    background: #fff2f2;\n\n    border:\n        1px solid #f2c8c8;\n\n    color: #a42525;\n}\n\n#gas-group-popup\n.gas-group-status.gas-status-success {\n    display: block;\n\n    background: #eef8f1;\n\n    border:\n        1px solid #c9e6d0;\n\n    color: #246537;\n}\n\n#gas-group-popup\n.gas-group-field input.gas-group-input-error {\n    border-color: #df2929;\n\n    box-shadow:\n        0 0 0 3px\n        rgba(223,41,41,.09);\n}\n\n#gas-group-popup\n.gas-group-consent.gas-group-consent-error {\n    padding:\n        10px\n        12px;\n\n    border-radius: 8px;\n\n    background: #fff5f5;\n\n    outline:\n        1px solid #f1caca;\n}\n\n#gas-group-popup\n.gas-group-submit[aria-disabled=\"true\"] {\n    cursor: wait;\n\n    opacity: .78;\n\n    transform: none;\n}\n\n#gas-group-popup\n.gas-group-submit:disabled {\n    cursor: default;\n\n    opacity: .78;\n\n    transform: none;\n}\n\n\n\n\/* =========================================================\n   WALIDACJA LIVE \/ PODPOWIEDZI V3\n   ========================================================= *\/\n\n#gas-group-popup .gas-group-hint {\n    margin: 6px 2px 0;\n    color: #94a3b8;\n    font-size: 12px;\n    font-weight: 400;\n    line-height: 1.45;\n}\n\n#gas-group-popup .gas-group-validation-message {\n    display: none;\n    margin: 6px 2px 0;\n    color: #c62828;\n    font-size: 12px;\n    font-weight: 600;\n    line-height: 1.45;\n}\n\n#gas-group-popup .gas-group-validation-message.gas-group-validation-visible {\n    display: block;\n}\n\n#gas-group-popup .gas-group-field.gas-group-field-has-error > label {\n    color: #a92323;\n}\n\n#gas-group-popup .gas-group-consent.gas-group-field-has-error {\n    padding: 10px 12px;\n    border-radius: 8px;\n    background: #fff5f5;\n    outline: 1px solid #f1caca;\n}\n\n\/* =========================================================\n   MOBILE\n   ========================================================= *\/\n\n@media (max-width:600px) {\n\n    #gas-group-popup {\n        padding: 10px;\n    }\n\n    #gas-group-popup\n    .gas-group-window {\n        max-height:\n            calc(100vh - 20px);\n\n        border-radius: 16px;\n    }\n\n    #gas-group-popup\n    .gas-group-top {\n        height: 175px;\n    }\n\n    #gas-group-popup\n    .gas-group-close {\n        top: 12px;\n        right: 12px;\n\n        width: 39px;\n        height: 39px;\n    }\n\n    #gas-group-popup\n    .gas-group-form {\n        padding:\n            24px\n            20px\n            30px;\n    }\n\n    #gas-group-popup\n    .gas-select-option {\n        min-height: 44px;\n    }\n\n    #gas-group-popup\n    .gas-group-recaptcha {\n        transform: scale(.88);\n        transform-origin: left top;\n\n        width:\n            calc(100% \/ .88);\n\n        margin-bottom: -8px;\n    }\n\n}\n\n\n@media (max-width:365px) {\n\n    #gas-group-popup\n    .gas-group-recaptcha {\n        transform: scale(.80);\n\n        width:\n            calc(100% \/ .80);\n\n        margin-bottom: -15px;\n    }\n\n}\n\n<\/style>\n\n\n\n<!-- =========================================================\n     HTML\n     ========================================================= -->\n\n<div\n    id=\"gas-group-popup\"\n    aria-hidden=\"true\"\n>\n\n    <div\n        class=\"gas-group-window\"\n        role=\"dialog\"\n        aria-modal=\"true\"\n        aria-label=\"Formularz rejestracji na zaj\u0119cia grupowe\"\n    >\n\n\n        <div class=\"gas-group-top\">\n\n            <button\n                type=\"button\"\n                class=\"gas-group-close\"\n                aria-label=\"Zamknij formularz\"\n            >\n                \u00d7\n            <\/button>\n\n        <\/div>\n\n\n\n        <div class=\"gas-group-scroll\">\n\n            <div class=\"gas-group-form\">\n\n\n                <form\n                    action=\"https:\/\/goahead.langlion.com\/registration\/registrate\"\n                    method=\"post\"\n                    id=\"gas-group-form\"\n                >\n\n\n                    <!-- LANGLION -->\n\n                    <input\n                        type=\"hidden\"\n                        name=\"registrateParent\"\n                        value=\"1\"\n                    >\n\n                    <input\n                        type=\"hidden\"\n                        name=\"lang\"\n                        value=\"pl_PL\"\n                    >\n\n                    <input\n                        type=\"hidden\"\n                        name=\"registrationFormId\"\n                        value=\"1\"\n                    >\n\n                    <input\n                        type=\"hidden\"\n                        name=\"school_id\"\n                        value=\"1\"\n                    >\n\n\n                    <!-- J\u0118ZYK KURSU \u2013 ukryty, 1 = angielski w LangLion -->\n                    <input\n                        type=\"hidden\"\n                        name=\"language_id\"\n                        id=\"gas-group-language-id\"\n                        value=\"1\"\n                        special=\"J\u0119zyk\"\n                    >\n\n                    <!--\n                         Techniczny e-mail kursanta.\n                         Uzupe\u0142niany automatycznie adresem e-mail rodzica.\n                    -->\n                    <input\n                        type=\"hidden\"\n                        name=\"email\"\n                        id=\"gas-group-email\"\n                        value=\"\"\n                        special=\"Adres e-mail\"\n                    >\n\n\n\n                    <!-- =====================================\n                         1. INFORMACJE O KURSIE\n                         ===================================== -->\n\n                    <div class=\"gas-group-section-title\">\n                        Informacje o kursie\n                    <\/div>\n\n\n                    <div class=\"gas-group-field\">\n\n                        <label for=\"gas-group-course-type\">\n\n                            Forma kursu\n\n                            <span class=\"gas-required\">*<\/span>\n\n                        <\/label>\n\n\n                        <select\n                            name=\"customField10\"\n                            id=\"gas-group-course-type\"\n                            required\n                        >\n\n                            <option value=\"\">\n                                Wybierz\n                            <\/option>\n\n                            <option value=\"13\">\n                                Stacjonarnie - w SP316\n                            <\/option>\n\n                            <option value=\"21\">\n                                Zaj\u0119cia online\n                            <\/option>\n\n                        <\/select>\n\n                    <\/div>\n\n\n\n                    <div class=\"gas-group-field\">\n\n                        <label for=\"gas-group-intensity\">\n\n                            Intensywno\u015b\u0107\n\n                            <span class=\"gas-required\">*<\/span>\n\n                        <\/label>\n\n\n                        <select\n                            name=\"customField6\"\n                            id=\"gas-group-intensity\"\n                            required\n                        >\n\n                            <option value=\"\">\n                                Wybierz\n                            <\/option>\n\n                            <option value=\"6\">\n                                Modu\u0142 standardowy\n                            <\/option>\n\n                            <option value=\"7\">\n                                Modu\u0142 intensywny\n                            <\/option>\n\n                        <\/select>\n\n                    <\/div>\n\n\n\n                    <div class=\"gas-group-divider\"><\/div>\n\n\n\n                    <!-- =====================================\n                         2. DANE DZIECKA\n                         ===================================== -->\n\n                    <div class=\"gas-group-section-title\">\n                        Dane dziecka\n                    <\/div>\n\n\n\n                    <div class=\"gas-group-field\">\n\n                        <label for=\"gas-group-name\">\n\n                            Imi\u0119\n\n                            <span class=\"gas-required\">*<\/span>\n\n                        <\/label>\n\n\n                        <input\n                            type=\"text\"\n                            name=\"name\"\n                            id=\"gas-group-name\"\n                            autocomplete=\"off\"\n                            required\n                        >\n\n                    <\/div>\n\n\n\n                    <div class=\"gas-group-field\">\n\n                        <label for=\"gas-group-lastname\">\n\n                            Nazwisko\n\n                            <span class=\"gas-required\">*<\/span>\n\n                        <\/label>\n\n\n                        <input\n                            type=\"text\"\n                            name=\"lastName\"\n                            id=\"gas-group-lastname\"\n                            autocomplete=\"off\"\n                            required\n                        >\n\n                    <\/div>\n\n\n\n                    <div class=\"gas-group-field\">\n\n                        <label for=\"gas-group-class\">\n\n                            Do kt\u00f3rej klasy chodzi dziecko?\n\n                            <span class=\"gas-required\">*<\/span>\n\n                        <\/label>\n\n\n                        <input\n                            type=\"text\"\n                            name=\"customField1\"\n                            id=\"gas-group-class\"\n                            inputmode=\"text\"\n                            maxlength=\"2\"\n                            pattern=\"[1-8][A-Za-z]\"\n                            title=\"Wpisz klas\u0119 w formacie np. 5A \u2014 jedna cyfra od 1 do 8 i jedna litera.\"\n                            autocapitalize=\"characters\"\n                            required\n                        >\n\n                    <\/div>\n\n\n\n                    <!-- \u015aWIETLICA -->\n\n                    <div\n                        class=\"gas-group-field gas-group-conditional\"\n                        id=\"gas-group-daycare-field\"\n                    >\n\n                        <label for=\"gas-group-daycare\">\n\n                            Czy dziecko ucz\u0119szcza na \u015bwietlic\u0119?\n\n                            <span class=\"gas-required\">*<\/span>\n\n                        <\/label>\n\n\n                        <select\n                            name=\"customField7\"\n                            id=\"gas-group-daycare\"\n                        >\n\n                            <option value=\"\">\n                                Wybierz\n                            <\/option>\n\n\n                            <option\n                                value=\"8\"\n                                hidden\n                            >\n                                Nie dotyczy (online)\n                            <\/option>\n\n\n                            <option value=\"9\">\n                                Tak\n                            <\/option>\n\n\n                            <option value=\"19\">\n                                Nie\n                            <\/option>\n\n                        <\/select>\n\n                    <\/div>\n\n\n\n                    <div class=\"gas-group-divider\"><\/div>\n\n\n\n                    <!-- =====================================\n                         3. DANE RODZICA\n                         ===================================== -->\n\n                    <div class=\"gas-group-section-title\">\n                        Dane rodzica \/ opiekuna\n                    <\/div>\n\n\n\n                    <div class=\"gas-group-field\">\n\n                        <label for=\"gas-group-parent-name\">\n\n                            Imi\u0119\n\n                            <span class=\"gas-required\">*<\/span>\n\n                        <\/label>\n\n\n                        <input\n                            type=\"text\"\n                            name=\"parentName\"\n                            id=\"gas-group-parent-name\"\n                            autocomplete=\"given-name\"\n                            required\n                        >\n\n                    <\/div>\n\n\n\n                    <div class=\"gas-group-field\">\n\n                        <label for=\"gas-group-parent-lastname\">\n\n                            Nazwisko\n\n                            <span class=\"gas-required\">*<\/span>\n\n                        <\/label>\n\n\n                        <input\n                            type=\"text\"\n                            name=\"parentLastName\"\n                            id=\"gas-group-parent-lastname\"\n                            autocomplete=\"family-name\"\n                            required\n                        >\n\n                    <\/div>\n\n\n\n                    <div class=\"gas-group-field\">\n\n                        <label for=\"gas-group-parent-mobile\">\n\n                            Tel. kom\u00f3rkowy\n\n                            <span class=\"gas-required\">*<\/span>\n\n                        <\/label>\n\n\n                        <input\n                            type=\"tel\"\n                            name=\"parentMobile\"\n                            id=\"gas-group-parent-mobile\"\n                            autocomplete=\"tel\"\n                            required\n                        >\n\n                    <\/div>\n\n\n\n                    <div class=\"gas-group-field\">\n\n                        <label for=\"gas-group-parent-email\">\n\n                            Adres e-mail\n\n                            <span class=\"gas-required\">*<\/span>\n\n                        <\/label>\n\n\n                        <input\n                            type=\"email\"\n                            name=\"parentEmail\"\n                            id=\"gas-group-parent-email\"\n                            autocomplete=\"email\"\n                            required\n                        >\n\n                    <\/div>\n\n\n\n                    <div class=\"gas-group-field\">\n\n                        <label for=\"gas-group-parent-street\">\n\n                            Ulica i nr domu\/mieszkania\n\n                            <span class=\"gas-required\">*<\/span>\n\n                        <\/label>\n\n\n                        <input\n                            type=\"text\"\n                            name=\"parentStreet\"\n                            id=\"gas-group-parent-street\"\n                            autocomplete=\"street-address\"\n                            required\n                        >\n\n                    <\/div>\n\n\n\n                    <div class=\"gas-group-field\">\n\n                        <label for=\"gas-group-parent-zipcode\">\n\n                            Kod pocztowy\n\n                            <span class=\"gas-required\">*<\/span>\n\n                        <\/label>\n\n\n                        <input\n                            type=\"text\"\n                            name=\"parentZipCode\"\n                            id=\"gas-group-parent-zipcode\"\n                            autocomplete=\"postal-code\"\n                            required\n                        >\n\n                    <\/div>\n\n\n\n                    <div class=\"gas-group-field\">\n\n                        <label for=\"gas-group-parent-city\">\n\n                            Miejscowo\u015b\u0107\n\n                            <span class=\"gas-required\">*<\/span>\n\n                        <\/label>\n\n\n                        <input\n                            type=\"text\"\n                            name=\"parentCity\"\n                            id=\"gas-group-parent-city\"\n                            autocomplete=\"address-level2\"\n                            required\n                        >\n\n                    <\/div>\n\n\n\n                    <!-- =====================================\n                         SWITCH RODZE\u0143STWO\n                         customField16\n                         ===================================== -->\n\n                    <div class=\"gas-group-switch-row\">\n\n                        <div class=\"gas-group-switch-text\">\n                            Rodze\u0144stwo na kursie\n                        <\/div>\n\n\n                        <label\n                            class=\"gas-group-switch-label\"\n                        >\n\n                            <input\n                                type=\"checkbox\"\n                                name=\"customField16\"\n                                id=\"gas-group-sibling-switch\"\n                                value=\"1\"\n                                aria-label=\"Rodze\u0144stwo na kursie\"\n                            >\n\n\n                            <span\n                                class=\"gas-group-switch-slider\"\n                            ><\/span>\n\n                        <\/label>\n\n                    <\/div>\n\n\n\n                    <!-- =====================================\n                         RODZE\u0143STWO \u2013 WARUNKOWO\n                         customField9\n                         ===================================== -->\n\n                    <div\n                        class=\"gas-group-field gas-group-conditional\"\n                        id=\"gas-group-sibling-field\"\n                    >\n\n                        <label for=\"gas-group-sibling-name\">\n                            Imi\u0119 i nazwisko rodze\u0144stwa\n                        <span class=\"gas-required\">*<\/span>\n                        <\/label>\n\n\n                        <input\n                            type=\"text\"\n                            name=\"customField9\"\n                            id=\"gas-group-sibling-name\"\n                            disabled\n                        >\n\n                    <\/div>\n\n\n\n                    <div class=\"gas-group-divider\"><\/div>\n\n\n\n                    <!-- =====================================\n                         4. FORMA P\u0141ATNO\u015aCI\n                         ===================================== -->\n\n                    <div class=\"gas-group-section-title\">\n                        Forma p\u0142atno\u015bci\n                    <\/div>\n\n\n\n                    <div class=\"gas-group-field\">\n\n                        <label for=\"gas-group-payment\">\n\n                            Forma p\u0142atno\u015bci\n\n                            <span class=\"gas-required\">*<\/span>\n\n                        <\/label>\n\n\n                        <select\n                            name=\"customField8\"\n                            id=\"gas-group-payment\"\n                            required\n                        >\n\n                            <option value=\"\">\n                                Wybierz\n                            <\/option>\n\n\n                            <option value=\"11\">\n                                Op\u0142ata trymestralna (3 raty)\n                            <\/option>\n\n\n                            <option value=\"12\">\n                                Dwie raty za trymestr (6 rat)\n                            <\/option>\n\n                        <\/select>\n\n                    <\/div>\n\n\n\n                    <div class=\"gas-group-divider\"><\/div>\n\n\n\n                    <!-- =====================================\n                         5. ZGODY\n                         ===================================== -->\n\n                    <div class=\"gas-group-section-title\">\n                        Zgody\n                    <\/div>\n\n\n\n                    <div class=\"gas-group-consent\">\n\n                        <label>\n\n                            <input\n                                type=\"checkbox\"\n                                name=\"consent22\"\n                                value=\"1\"\n                                required\n                            >\n\n\n                            <span>\n\n                                Wyra\u017cam zgod\u0119 na przetwarzanie przez\n                                Go Ahead School Monika Skarbek moich\n                                danych osobowych w celach zwi\u0105zanych\n                                z rejestracj\u0105 na kurs j\u0119zykowy.\n\n                                <span class=\"gas-required\">*<\/span>\n\n                            <\/span>\n\n                        <\/label>\n\n                    <\/div>\n\n\n\n                    <div class=\"gas-group-consent\">\n\n                        <label>\n\n                            <input\n                                type=\"checkbox\"\n                                name=\"consent23\"\n                                value=\"1\"\n                            >\n\n\n                            <span>\n\n                                Wyra\u017cam zgod\u0119 na przetwarzanie moich\n                                danych osobowych w celach marketingowych\n                                przez Go Ahead School Monika Skarbek.\n\n                            <\/span>\n\n                        <\/label>\n\n                    <\/div>\n\n\n\n                    <div class=\"gas-group-consent\">\n\n                        <label>\n\n                            <input\n                                type=\"checkbox\"\n                                name=\"consent24\"\n                                value=\"1\"\n                            >\n\n\n                            <span>\n\n                                Wyra\u017cam zgod\u0119 na przetwarzanie moich\n                                danych osobowych w celach handlowych\n                                przez Go Ahead School Monika Skarbek.\n\n                            <\/span>\n\n                        <\/label>\n\n                    <\/div>\n\n\n\n                    <!-- RECAPTCHA -->\n\n                    <div class=\"gas-group-recaptcha\">\n\n                        <div\n                            id=\"gas-group-recaptcha-widget\"\n                        ><\/div>\n\n                    <\/div>\n\n\n\n                    <!-- STATUS WYSY\u0141KI \/ B\u0141\u0118D\u00d3W -->\n\n                    <div\n                        id=\"gas-group-status\"\n                        class=\"gas-group-status\"\n                        role=\"status\"\n                        aria-live=\"polite\"\n                        aria-atomic=\"true\"\n                    ><\/div>\n\n\n\n                    <!-- SUBMIT -->\n\n                    <div class=\"gas-group-submit-area\">\n\n                        <button\n                            type=\"submit\"\n                            name=\"commit\"\n                            value=\"Zapisz\"\n                            id=\"gas-group-submit\"\n                            class=\"gas-group-submit\"\n                        >\n                            <span id=\"gas-group-submit-text\">\n                                Zapisz dziecko na kurs\n                            <\/span>\n                        <\/button>\n\n                    <\/div>\n\n\n\n                    <div class=\"gas-group-note\">\n\n                        Pola oznaczone\n\n                        <span class=\"gas-required\">*<\/span>\n\n                        s\u0105 wymagane.\n\n                    <\/div>\n\n\n                <\/form>\n\n\n            <\/div>\n\n        <\/div>\n\n    <\/div>\n\n<\/div>\n\n\n\n<script>\n(function () {\n    const popup = document.getElementById(\"gas-group-popup\");\n    if (!popup) return;\n    const PREFIX = \"gas-group\";\n    const form = document.getElementById(\"gas-group-form\");\n    const scrollArea = popup.querySelector(\".gas-group-scroll\");\n    const closeButton = popup.querySelector(\".gas-group-close\");\n    const submitButton = document.getElementById(\"gas-group-submit\");\n    const submitText = document.getElementById(\"gas-group-submit-text\");\n    const statusBox = document.getElementById(\"gas-group-status\");\n    const popupHash = \"#rejestracja-zajecia-grupowe\";\n\n    const courseType = document.getElementById(\"gas-group-course-type\");\n    const intensity = document.getElementById(\"gas-group-intensity\");\n    const daycareField = document.getElementById(\"gas-group-daycare-field\");\n    const daycare = document.getElementById(\"gas-group-daycare\");\n    const siblingSwitch = document.getElementById(\"gas-group-sibling-switch\");\n    const siblingField = document.getElementById(\"gas-group-sibling-field\");\n    const siblingName = document.getElementById(\"gas-group-sibling-name\");\n    const parentEmail = document.getElementById(\"gas-group-parent-email\");\n    const hiddenEmail = document.getElementById(\"gas-group-email\");\n\n    const RECAPTCHA_SITE_KEY = \"6LcsjRQUAAAAAK4ajbqN7cm_jvjVwyr3FJGpwzSo\";\n    const RECAPTCHA_CONTAINER_ID = \"gas-group-recaptcha-widget\";\n    let recaptchaWidgetId = null;\n    let captchaSolved = false;\n    let closeTimer = null;\n\n    popup.querySelectorAll(\"select\").forEach(createCustomSelect);\n\n    function updateCourseFields() {\n        if (courseType.value === \"13\") {\n            daycareField.classList.add(\"gas-group-visible\");\n            daycare.disabled = false;\n            if (daycare.value === \"8\") daycare.value = \"\";\n        } else if (courseType.value === \"21\") {\n            daycareField.classList.remove(\"gas-group-visible\");\n            daycare.disabled = false;\n            daycare.value = \"8\";\n        } else {\n            daycareField.classList.remove(\"gas-group-visible\");\n            daycare.value = \"\";\n            daycare.disabled = true;\n        }\n        syncSelect(daycare);\n        scheduleButtonRefresh();\n    }\n\n    function updateSiblingField() {\n        if (siblingSwitch.checked) {\n            siblingField.classList.add(\"gas-group-visible\");\n            siblingName.disabled = false;\n        } else {\n            siblingField.classList.remove(\"gas-group-visible\");\n            siblingName.value = \"\";\n            siblingName.disabled = true;\n        }\n        scheduleButtonRefresh();\n    }\n\n    function syncEmail() {\n        hiddenEmail.disabled = false;\n        hiddenEmail.value = parentEmail.value.trim();\n    }\n\n    courseType.addEventListener(\"change\", updateCourseFields);\n    siblingSwitch.addEventListener(\"change\", updateSiblingField);\n    parentEmail.addEventListener(\"input\", syncEmail);\n    parentEmail.addEventListener(\"change\", syncEmail);\n\n    const configs = [\n        cfg(\"gas-group-course-type\", true, \"select\", \"Wybierz form\u0119 kursu.\", \"Wybierz zaj\u0119cia stacjonarne w SP316 albo online.\"),\n        cfg(\"gas-group-intensity\", true, \"select\", \"Wybierz intensywno\u015b\u0107 kursu.\", \"Wybierz modu\u0142 standardowy lub intensywny.\"),\n        cfg(\"gas-group-name\", true, \"name\", \"Wpisz imi\u0119 dziecka.\"),\n        cfg(\"gas-group-lastname\", true, \"lastname\", \"Wpisz nazwisko dziecka.\"),\n        cfg(\"gas-group-class\", true, \"class\", \"Wpisz klas\u0119 w formacie 5A \u2013 jedna cyfra od 1 do 8 i jedna litera.\", \"Format: 5A (cyfra od 1 do 8 + jedna litera).\"),\n        cfg(\"gas-group-daycare\", function () { return courseType.value === \"13\"; }, \"select\", \"Wybierz, czy dziecko ucz\u0119szcza na \u015bwietlic\u0119.\", \"Pole dotyczy zaj\u0119\u0107 stacjonarnych w SP316.\", function () { return courseType.value === \"13\"; }),\n        cfg(\"gas-group-parent-name\", true, \"text\", \"Wpisz imi\u0119 rodzica lub opiekuna.\"),\n        cfg(\"gas-group-parent-lastname\", true, \"text\", \"Wpisz nazwisko rodzica lub opiekuna.\"),\n        cfg(\"gas-group-parent-mobile\", true, \"phone\", \"Wpisz poprawny polski numer telefonu: 9 cyfr, np. 501 234 567 lub +48 501 234 567.\", \"Np. 501 234 567 lub +48 501 234 567.\"),\n        cfg(\"gas-group-parent-email\", true, \"email\", \"Wpisz poprawny adres e-mail, np. rodzic@example.com.\"),\n        cfg(\"gas-group-parent-street\", true, \"text\", \"Wpisz ulic\u0119 oraz numer domu lub mieszkania.\"),\n        cfg(\"gas-group-parent-zipcode\", true, \"zip\", \"Wpisz kod pocztowy w formacie 00-000.\", \"Format: 00-000.\"),\n        cfg(\"gas-group-parent-city\", true, \"text\", \"Wpisz miejscowo\u015b\u0107.\"),\n        cfg(\"gas-group-payment\", true, \"select\", \"Wybierz form\u0119 p\u0142atno\u015bci.\"),\n        cfgByName(\"consent22\", true, \"checkbox\", \"Zaznacz zgod\u0119 wymagan\u0105 do przes\u0142ania rejestracji.\")\n    ];\n\n    function cfg(id, required, rule, message, hint, active) {\n        const el = document.getElementById(id); const wrapper = el.closest(\".gas-group-field, .gas-group-consent\");\n        return { el, wrapper, required: typeof required === \"function\" ? required : function () { return !!required; }, rule, message, hint: hint || null, active: active || function () { return !el.disabled; } };\n    }\n    function cfgByName(name, required, rule, message) {\n        const el = form.querySelector('[name=\"' + name + '\"]'); const wrapper = el.closest(\".gas-group-consent\");\n        return { el, wrapper, required: function () { return !!required; }, rule, message, hint: null, active: function () { return !el.disabled; } };\n    }\n\n\n    function createCustomSelect(select) {\n        if (!select || select.dataset.gasReady === \"1\") return;\n        select.dataset.gasReady = \"1\";\n        select.classList.add(\"gas-native-select\");\n        select.required = false;\n\n        const shell = document.createElement(\"div\");\n        shell.className = \"gas-select-shell\";\n\n        const trigger = document.createElement(\"button\");\n        trigger.type = \"button\";\n        trigger.className = \"gas-select-trigger\";\n        trigger.setAttribute(\"aria-haspopup\", \"listbox\");\n        trigger.setAttribute(\"aria-expanded\", \"false\");\n\n        const value = document.createElement(\"span\");\n        value.className = \"gas-select-value\";\n        const arrow = document.createElement(\"span\");\n        arrow.className = \"gas-select-arrow\";\n        arrow.setAttribute(\"aria-hidden\", \"true\");\n        trigger.append(value, arrow);\n\n        const dropdown = document.createElement(\"div\");\n        dropdown.className = \"gas-select-dropdown\";\n        dropdown.setAttribute(\"role\", \"listbox\");\n\n        const buttons = [];\n        Array.from(select.options).forEach(function (opt) {\n            if (!opt.value || opt.hidden || opt.disabled) return;\n            const b = document.createElement(\"button\");\n            b.type = \"button\";\n            b.className = \"gas-select-option\";\n            b.textContent = opt.textContent.trim();\n            b.setAttribute(\"role\", \"option\");\n            b.addEventListener(\"click\", function () {\n                if (b.disabled || b.hidden) return;\n                select.value = opt.value;\n\n                \/*\n                 * Od razu synchronizujemy widoczn\u0105 warto\u015b\u0107 custom combo.\n                 * Samo ustawienie value na ukrytym <select> nie zmienia\n                 * tekstu w naszym przycisku-triggerze.\n                 *\/\n                syncSelect(select);\n\n                select.dispatchEvent(new Event(\"change\", { bubbles: true }));\n                shell.classList.remove(\"gas-select-open\");\n                trigger.setAttribute(\"aria-expanded\", \"false\");\n                trigger.focus();\n            });\n            buttons.push({ value: opt.value, button: b });\n            dropdown.appendChild(b);\n        });\n\n        trigger.addEventListener(\"click\", function () {\n            if (select.disabled) return;\n            document.querySelectorAll(\"#\" + popup.id + \" .gas-select-open\").forEach(function (node) {\n                if (node !== shell) {\n                    node.classList.remove(\"gas-select-open\");\n                    const t = node.querySelector(\".gas-select-trigger\");\n                    if (t) t.setAttribute(\"aria-expanded\", \"false\");\n                }\n            });\n            const willOpen = !shell.classList.contains(\"gas-select-open\");\n            shell.classList.toggle(\"gas-select-open\", willOpen);\n            trigger.setAttribute(\"aria-expanded\", willOpen ? \"true\" : \"false\");\n        });\n\n        shell.append(trigger, dropdown);\n        select.insertAdjacentElement(\"afterend\", shell);\n        select._gasCustom = { shell, trigger, value, buttons };\n\n        \/*\n         * Synchronizacja obejmuje r\u00f3wnie\u017c zmiany wykonane programowo\n         * przez logik\u0119 formularza (np. \u015bwietlica = \"Nie dotyczy\"\n         * dla kursu online). Dzi\u0119ki temu custom combo nigdy nie zostaje\n         * wizualnie na opcji \"Wybierz\" przy prawid\u0142owym select.value.\n         *\/\n        select.addEventListener(\"change\", function () {\n            syncSelect(select);\n        });\n\n        syncSelect(select);\n    }\n\n    function syncSelect(select) {\n        if (!select || !select._gasCustom) return;\n        const data = select._gasCustom;\n        const opt = select.options[select.selectedIndex];\n        data.value.textContent = opt ? opt.textContent.trim() : \"Wybierz\";\n        data.buttons.forEach(function (item) {\n            const selected = item.value === select.value;\n            item.button.classList.toggle(\"gas-option-selected\", selected);\n            item.button.setAttribute(\"aria-selected\", selected ? \"true\" : \"false\");\n        });\n        if (select.value) data.shell.classList.remove(\"gas-select-error\");\n    }\n\n    function setOptionVisibility(select, value, visible) {\n        if (!select) return;\n        const opt = Array.from(select.options).find(function (o) { return o.value === value; });\n        if (opt) { opt.hidden = !visible; opt.disabled = !visible; }\n        if (select._gasCustom) {\n            const item = select._gasCustom.buttons.find(function (x) { return x.value === value; });\n            if (item) {\n                item.button.hidden = !visible;\n                item.button.disabled = !visible;\n                item.button.style.display = visible ? \"\" : \"none\";\n            }\n        }\n    }\n\n    function ensureErrorNode(cfg) {\n        if (cfg.errorNode) return cfg.errorNode;\n        const node = document.createElement(\"div\");\n        node.className = PREFIX + \"-validation-message\";\n        node.setAttribute(\"aria-live\", \"polite\");\n        cfg.wrapper.appendChild(node);\n        cfg.errorNode = node;\n        return node;\n    }\n\n    function ensureHintNode(cfg) {\n        if (!cfg.hint || cfg.hintNode) return cfg.hintNode || null;\n        const node = document.createElement(\"div\");\n        node.className = PREFIX + \"-hint\";\n        node.textContent = cfg.hint;\n        cfg.wrapper.appendChild(node);\n        cfg.hintNode = node;\n        return node;\n    }\n\n    function visualControl(cfg) {\n        if (cfg.el && cfg.el.tagName === \"SELECT\" && cfg.el._gasCustom) return cfg.el._gasCustom.shell;\n        return cfg.el;\n    }\n\n    function clearFieldError(cfg) {\n        if (!cfg || !cfg.el) return;\n        const err = ensureErrorNode(cfg);\n        err.textContent = \"\";\n        err.classList.remove(PREFIX + \"-validation-visible\");\n        cfg.wrapper.classList.remove(PREFIX + \"-field-has-error\", PREFIX + \"-consent-error\");\n        cfg.el.classList.remove(PREFIX + \"-input-error\");\n        cfg.el.removeAttribute(\"aria-invalid\");\n        if (cfg.el._gasCustom) {\n            cfg.el._gasCustom.shell.classList.remove(\"gas-select-error\");\n            cfg.el._gasCustom.trigger.removeAttribute(\"aria-invalid\");\n        }\n    }\n\n    function showFieldError(cfg, message) {\n        const err = ensureErrorNode(cfg);\n        err.textContent = message;\n        err.classList.add(PREFIX + \"-validation-visible\");\n        cfg.wrapper.classList.add(PREFIX + \"-field-has-error\");\n        cfg.el.setAttribute(\"aria-invalid\", \"true\");\n        if (cfg.el.type === \"checkbox\") {\n            cfg.wrapper.classList.add(PREFIX + \"-consent-error\");\n        } else if (cfg.el.tagName === \"SELECT\" && cfg.el._gasCustom) {\n            cfg.el._gasCustom.shell.classList.add(\"gas-select-error\");\n            cfg.el._gasCustom.trigger.setAttribute(\"aria-invalid\", \"true\");\n        } else {\n            cfg.el.classList.add(PREFIX + \"-input-error\");\n        }\n    }\n\n    function normalizeValue(cfg) {\n        if (!cfg.el || typeof cfg.el.value !== \"string\") return;\n        if (cfg.rule === \"class\") cfg.el.value = cfg.el.value.replace(\/\\s+\/g, \"\").toUpperCase();\n        if ([\"text\", \"email\", \"name\", \"lastname\", \"fullname\", \"zip\", \"phone\"].includes(cfg.rule)) cfg.el.value = cfg.el.value.trim();\n    }\n\n    function isCfgActive(cfg) {\n        if (!cfg || !cfg.el || cfg.el.disabled) return false;\n        try { return cfg.active ? !!cfg.active() : true; } catch (e) { return true; }\n    }\n\n    function isCfgRequired(cfg) {\n        try { return cfg.required ? !!cfg.required() : false; } catch (e) { return false; }\n    }\n\n    function checkCfg(cfg, normalize) {\n        if (!isCfgActive(cfg)) return { valid: true, message: \"\" };\n        if (normalize) normalizeValue(cfg);\n        const required = isCfgRequired(cfg);\n        const el = cfg.el;\n        const value = typeof el.value === \"string\" ? el.value.trim() : \"\";\n        let valid = true;\n\n        if (cfg.rule === \"checkbox\") valid = !required || el.checked;\n        else if (required && !value) valid = false;\n        else if (!value && !required) valid = true;\n        else if (cfg.rule === \"select\") valid = !!value;\n        else if (cfg.rule === \"class\") valid = \/^[1-8][A-Za-z]$\/.test(value);\n        else if (cfg.rule === \"email\") valid = \/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$\/.test(value);\n        else if (cfg.rule === \"zip\") valid = \/^\\d{2}-\\d{3}$\/.test(value);\n        else if (cfg.rule === \"phone\") {\n            const digits = value.replace(\/\\D\/g, \"\");\n            valid = digits.length === 9 || (digits.length === 11 && digits.startsWith(\"48\"));\n        }\n        else if (cfg.rule === \"fullname\") valid = \/^\\S+\\s+\\S+\/.test(value);\n        else valid = !required || value.length > 0;\n\n        return { valid, message: cfg.message };\n    }\n\n    function validateCfg(cfg, show, normalize) {\n        const result = checkCfg(cfg, normalize);\n        if (!isCfgActive(cfg)) {\n            clearFieldError(cfg);\n            return true;\n        }\n        if (result.valid) clearFieldError(cfg);\n        else if (show) showFieldError(cfg, result.message);\n        return result.valid;\n    }\n\n    function validateAll(show) {\n        let first = null;\n        configs.forEach(function (cfg) {\n            const ok = validateCfg(cfg, show, true);\n            if (!ok && !first) first = cfg;\n        });\n        return first;\n    }\n\n    function fieldOnlyValid() {\n        return configs.every(function (cfg) { return checkCfg(cfg, false).valid; });\n    }\n\n    let uiTimer = null;\n    function scheduleButtonRefresh() {\n        window.clearTimeout(uiTimer);\n        uiTimer = window.setTimeout(refreshSubmitState, 90);\n    }\n\n    function refreshSubmitState() {\n        const valid = fieldOnlyValid() && captchaSolved && form.dataset.submitting !== \"true\" && form.dataset.registered !== \"true\";\n        submitButton.disabled = !valid;\n        submitButton.setAttribute(\"aria-disabled\", valid ? \"false\" : \"true\");\n    }\n\n    function bindValidation() {\n        configs.forEach(function (cfg) {\n            ensureHintNode(cfg);\n            ensureErrorNode(cfg);\n            cfg.blurred = false;\n\n            const focusEl = cfg.el._gasCustom ? cfg.el._gasCustom.trigger : cfg.el;\n            if (focusEl) {\n                focusEl.addEventListener(\"blur\", function () {\n                    cfg.blurred = true;\n                    validateCfg(cfg, true, true);\n                    refreshSubmitState();\n                });\n            }\n\n            cfg.el.addEventListener(\"input\", function () {\n                if (cfg.blurred) {\n                    window.clearTimeout(cfg.inputTimer);\n                    cfg.inputTimer = window.setTimeout(function () { validateCfg(cfg, true, false); }, 140);\n                }\n                if (form.dataset.submitting !== \"true\") clearFormStatus();\n                scheduleButtonRefresh();\n            });\n\n            cfg.el.addEventListener(\"change\", function () {\n                cfg.blurred = true;\n                validateCfg(cfg, true, true);\n                if (form.dataset.submitting !== \"true\") clearFormStatus();\n                refreshSubmitState();\n            });\n        });\n    }\n\n    function focusInvalid(cfg) {\n        if (!cfg) return;\n        const target = cfg.el._gasCustom ? cfg.el._gasCustom.trigger : cfg.el;\n        cfg.wrapper.scrollIntoView({ behavior: \"smooth\", block: \"center\" });\n        window.setTimeout(function () { if (target) target.focus({ preventScroll: true }); }, 180);\n    }\n\n    function setFormStatus(type, text) {\n        if (!statusBox) return;\n        statusBox.className = PREFIX + \"-status\";\n        statusBox.textContent = text || \"\";\n        if (type) statusBox.classList.add(\"gas-status-\" + type);\n    }\n\n    function clearFormStatus() { setFormStatus(\"\", \"\"); }\n\n    function ensureRecaptcha(attempt) {\n        attempt = attempt || 0;\n        if (window.grecaptcha && typeof window.grecaptcha.render === \"function\") {\n            const run = function () {\n                if (recaptchaWidgetId !== null) return;\n                const c = document.getElementById(RECAPTCHA_CONTAINER_ID);\n                if (!c) return;\n                try {\n                    recaptchaWidgetId = window.grecaptcha.render(c, {\n                        sitekey: RECAPTCHA_SITE_KEY,\n                        callback: function () { captchaSolved = true; refreshSubmitState(); },\n                        \"expired-callback\": function () { captchaSolved = false; refreshSubmitState(); },\n                        \"error-callback\": function () { captchaSolved = false; refreshSubmitState(); }\n                    });\n                } catch (e) {}\n            };\n            if (typeof window.grecaptcha.ready === \"function\") window.grecaptcha.ready(run); else run();\n            return;\n        }\n        let script = document.querySelector('script[src*=\"google.com\/recaptcha\/api.js\"]');\n        if (!script) {\n            script = document.createElement(\"script\");\n            script.src = \"https:\/\/www.google.com\/recaptcha\/api.js?render=explicit\";\n            script.async = true;\n            script.defer = true;\n            document.head.appendChild(script);\n        }\n        if (attempt < 80) window.setTimeout(function () { ensureRecaptcha(attempt + 1); }, 100);\n    }\n\n    function resetRecaptcha() {\n        captchaSolved = false;\n        if (window.grecaptcha && recaptchaWidgetId !== null && typeof window.grecaptcha.reset === \"function\") {\n            try { window.grecaptcha.reset(recaptchaWidgetId); } catch (e) {}\n        }\n        refreshSubmitState();\n    }\n\n    function addCommitField(value) {\n        let c = form.querySelector('input[data-gas-commit=\"1\"]');\n        if (!c) {\n            c = document.createElement(\"input\");\n            c.type = \"hidden\";\n            c.name = \"commit\";\n            c.dataset.gasCommit = \"1\";\n            form.appendChild(c);\n        }\n        c.value = value;\n        return c;\n    }\n\n    function clearValidationUi() {\n        configs.forEach(function (cfg) { cfg.blurred = false; clearFieldError(cfg); });\n    }\n\n    document.addEventListener(\"click\", function (event) {\n        if (!event.target.closest(\".gas-select-shell\")) {\n            popup.querySelectorAll(\".gas-select-open\").forEach(function (node) {\n                node.classList.remove(\"gas-select-open\");\n                const t = node.querySelector(\".gas-select-trigger\");\n                if (t) t.setAttribute(\"aria-expanded\", \"false\");\n            });\n        }\n    });\n\n\n    const FRAME_NAME = \"gas-group-langlion-frame-v11\";\n    const frame = document.createElement(\"iframe\");\n    frame.name = FRAME_NAME; frame.id = FRAME_NAME; frame.setAttribute(\"aria-hidden\", \"true\");\n    Object.assign(frame.style, { position:\"fixed\", width:\"1px\", height:\"1px\", left:\"-10000px\", top:\"-10000px\", opacity:\"0\", border:\"0\", pointerEvents:\"none\" });\n    document.body.appendChild(frame);\n\n    function success() {\n        if (form.dataset.submitting !== \"true\") return;\n\n        form.dataset.submitting = \"false\";\n        form.dataset.registered = \"true\";\n\n        setFormStatus(\n            \"success\",\n            \"Dzi\u0119kujemy. Zg\u0142oszenie zosta\u0142o wys\u0142ane do systemu rejestracji Go Ahead School. Formularz zamknie si\u0119 automatycznie za 5 sekund.\"\n        );\n\n        submitText.textContent = \"Zg\u0142oszenie wys\u0142ane \u2713\";\n        submitButton.disabled = true;\n\n        form.reset();\n        syncEmail();\n        updateCourseFields();\n        updateSiblingField();\n        popup.querySelectorAll(\"select\").forEach(syncSelect);\n        clearValidationUi();\n        resetRecaptcha();\n\n        window.clearTimeout(closeTimer);\n        closeTimer = window.setTimeout(function () {\n            closePopup();\n            form.dataset.registered = \"false\";\n            submitText.textContent = \"Zapisz dziecko na kurs\";\n            clearFormStatus();\n            refreshSubmitState();\n        }, 5000);\n    }\n\n    function submissionStartFailed() {\n        form.dataset.submitting = \"false\";\n        submitText.textContent = \"Zapisz dziecko na kurs\";\n        setFormStatus(\n            \"error\",\n            \"Nie uda\u0142o si\u0119 uruchomi\u0107 wysy\u0142ki formularza. Sprawd\u017a po\u0142\u0105czenie z internetem i spr\u00f3buj ponownie.\"\n        );\n        resetRecaptcha();\n        refreshSubmitState();\n    }\n\n    form.setAttribute(\"novalidate\", \"novalidate\");\n    form.addEventListener(\"submit\", function (event) {\n        event.preventDefault();\n\n        if (\n            form.dataset.submitting === \"true\" ||\n            form.dataset.registered === \"true\"\n        ) {\n            return;\n        }\n\n        updateCourseFields();\n        updateSiblingField();\n        syncEmail();\n\n        const first = validateAll(true);\n\n        if (first || !captchaSolved) {\n            if (first) {\n                focusInvalid(first);\n            } else {\n                setFormStatus(\n                    \"error\",\n                    \"Potwierd\u017a reCAPTCHA przed wys\u0142aniem formularza.\"\n                );\n            }\n            refreshSubmitState();\n            return;\n        }\n\n        if (navigator.onLine === false) {\n            setFormStatus(\n                \"error\",\n                \"Brak po\u0142\u0105czenia z internetem. Po\u0142\u0105cz si\u0119 z sieci\u0105 i spr\u00f3buj ponownie.\"\n            );\n            refreshSubmitState();\n            return;\n        }\n\n        form.dataset.submitting = \"true\";\n        setFormStatus(\"loading\", \"Wysy\u0142amy zg\u0142oszenie\u2026\");\n        submitText.textContent = \"Wysy\u0142anie...\";\n        submitButton.disabled = true;\n\n        form.target = FRAME_NAME;\n        addCommitField(\"Zapisz\");\n\n        try {\n            \/*\n             * To jest punkt, w kt\u00f3rym przegl\u0105darka faktycznie uruchamia\n             * natywny POST do LangLion. Odpowied\u017a trafia do ukrytego iframe,\n             * wi\u0119c nawet ekran b\u0142\u0119du LangLion nie opuszcza strony Go Ahead.\n             *\/\n            HTMLFormElement.prototype.submit.call(form);\n\n            \/*\n             * Po uruchomieniu POST-u potwierdzamy wys\u0142anie po stronie klienta.\n             * Nie wy\u015bwietlamy ju\u017c fa\u0142szywego b\u0142\u0119du \"LangLion nie potwierdzi\u0142...\",\n             * poniewa\u017c bez CORS\/API nie mo\u017cna wiarygodnie odczyta\u0107 statusu\n             * aplikacyjnego odpowiedzi z domeny LangLion.\n             *\/\n            window.setTimeout(function () {\n                if (form.dataset.submitting === \"true\") {\n                    success();\n                }\n            }, 450);\n\n        } catch (error) {\n            submissionStartFailed();\n        }\n    });\n\n    let oldBodyOverflow = \"\", previouslyFocused = null;\n    function openPopup() {\n        previouslyFocused = document.activeElement; oldBodyOverflow = document.body.style.overflow; document.body.style.overflow = \"hidden\";\n        popup.classList.add(\"gas-group-active\"); popup.setAttribute(\"aria-hidden\", \"false\"); if (scrollArea) scrollArea.scrollTop = 0;\n        updateCourseFields(); updateSiblingField(); ensureRecaptcha(); refreshSubmitState();\n    }\n    function closePopup() {\n        popup.classList.remove(\"gas-group-active\"); popup.setAttribute(\"aria-hidden\", \"true\"); document.body.style.overflow = oldBodyOverflow;\n        if (window.location.hash === popupHash) history.replaceState(null, \"\", window.location.pathname + window.location.search);\n        if (previouslyFocused && previouslyFocused.focus) try { previouslyFocused.focus({ preventScroll:true }); } catch(e) { previouslyFocused.focus(); }\n    }\n    closeButton.addEventListener(\"click\", closePopup);\n    popup.addEventListener(\"click\", function (e) { if (e.target === popup) closePopup(); });\n    document.addEventListener(\"keydown\", function (e) { if (e.key === \"Escape\" && popup.classList.contains(\"gas-group-active\")) closePopup(); });\n    document.addEventListener(\"click\", function (e) { const a = e.target.closest('a[href=\"#rejestracja-zajecia-grupowe\"]'); if (!a) return; e.preventDefault(); history.replaceState(null,\"\",popupHash); openPopup(); });\n    window.addEventListener(\"hashchange\", function () { if (window.location.hash === popupHash) openPopup(); else if (popup.classList.contains(\"gas-group-active\")) closePopup(); });\n    if (window.location.hash === popupHash) openPopup();\n\n    bindValidation(); updateCourseFields(); updateSiblingField(); syncEmail(); ensureRecaptcha(); refreshSubmitState();\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6e918fb elementor-widget elementor-widget-html\" data-id=\"6e918fb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!-- =========================================================\n     GO AHEAD SCHOOL\n     POPUP \u2013 GO AHEAD MASTERS \u2013 FINAL V9\n\n     Otwieranie:\n     #rejestracja-masters\n     ========================================================= -->\n\n<style>\n\n\/* =========================================================\n   RESET\n   ========================================================= *\/\n\n#gas-masters-popup,\n#gas-masters-popup * {\n    box-sizing: border-box;\n}\n\n\n\/* =========================================================\n   OVERLAY\n   ========================================================= *\/\n\n#gas-masters-popup {\n    position: fixed;\n    inset: 0;\n    z-index: 999999;\n\n    display: flex;\n    align-items: center;\n    justify-content: center;\n\n    padding: 24px;\n\n    background: rgba(7,22,43,.68);\n\n    backdrop-filter: blur(5px);\n    -webkit-backdrop-filter: blur(5px);\n\n    opacity: 0;\n    visibility: hidden;\n    pointer-events: none;\n\n    transition:\n        opacity .25s ease,\n        visibility .25s ease;\n}\n\n#gas-masters-popup.gas-masters-active {\n    opacity: 1;\n    visibility: visible;\n    pointer-events: auto;\n}\n\n\n\/* =========================================================\n   OKNO\n   ========================================================= *\/\n\n#gas-masters-popup .gas-masters-window {\n    position: relative;\n\n    width: min(650px,100%);\n    max-height: calc(100vh - 48px);\n\n    display: flex;\n    flex-direction: column;\n\n    background: #fff;\n\n    border-radius: 22px;\n    overflow: hidden;\n\n    box-shadow:\n        0 25px 80px rgba(0,0,0,.32);\n\n    transform:\n        translateY(18px)\n        scale(.985);\n\n    transition:\n        transform .25s ease;\n}\n\n#gas-masters-popup.gas-masters-active\n.gas-masters-window {\n    transform:\n        translateY(0)\n        scale(1);\n}\n\n\n\/* =========================================================\n   HEADER\n   ========================================================= *\/\n\n#gas-masters-popup .gas-masters-top {\n    position: relative;\n\n    flex: 0 0 auto;\n\n    width: 100%;\n    height: 235px;\n\n    background-color: #57328a;\n\n    background-image:\n        url('https:\/\/goaheadschool.pl\/wp-content\/uploads\/2026\/08\/go_ahead_masters_form.webp');\n\n    background-size: cover;\n    background-position: left center;\n    background-repeat: no-repeat;\n\n    overflow: hidden;\n}\n\n\n\/* =========================================================\n   X\n   ========================================================= *\/\n\n#gas-masters-popup .gas-masters-close {\n    position: absolute;\n\n    top: 15px;\n    right: 15px;\n\n    z-index: 20;\n\n    width: 42px;\n    height: 42px;\n\n    display: flex;\n    align-items: center;\n    justify-content: center;\n\n    padding: 0;\n    margin: 0;\n\n    border:\n        1px solid rgba(255,255,255,.38);\n\n    border-radius: 50%;\n\n    background:\n        rgba(5,22,45,.43);\n\n    backdrop-filter: blur(8px);\n    -webkit-backdrop-filter: blur(8px);\n\n    color: #fff;\n\n    font-family:\n        Arial,\n        Helvetica,\n        sans-serif;\n\n    font-size: 28px;\n    font-weight: 300;\n    line-height: 1;\n\n    cursor: pointer;\n\n    transition:\n        background .2s ease,\n        transform .2s ease;\n}\n\n#gas-masters-popup\n.gas-masters-close:hover {\n    background:\n        rgba(5,22,45,.72);\n\n    transform:\n        rotate(5deg);\n}\n\n\n\/* =========================================================\n   SCROLL\n   ========================================================= *\/\n\n#gas-masters-popup .gas-masters-scroll {\n    flex: 1 1 auto;\n\n    min-height: 0;\n\n    overflow-y: auto;\n    overflow-x: hidden;\n\n    background: #fff;\n\n    scrollbar-width: thin;\n\n    scrollbar-color:\n        rgba(25,67,131,.42)\n        transparent;\n}\n\n#gas-masters-popup\n.gas-masters-scroll::-webkit-scrollbar {\n    width: 7px;\n}\n\n#gas-masters-popup\n.gas-masters-scroll::-webkit-scrollbar-track {\n    background: transparent;\n}\n\n#gas-masters-popup\n.gas-masters-scroll::-webkit-scrollbar-thumb {\n    background:\n        rgba(25,67,131,.38);\n\n    border-radius: 100px;\n\n    border: 2px solid transparent;\n\n    background-clip: padding-box;\n}\n\n#gas-masters-popup\n.gas-masters-scroll::-webkit-scrollbar-button {\n    display: none;\n\n    width: 0;\n    height: 0;\n}\n\n\n\/* =========================================================\n   FORMULARZ\n   ========================================================= *\/\n\n#gas-masters-popup .gas-masters-form {\n    padding:\n        30px\n        32px\n        36px;\n\n    font-family:\n        Arial,\n        Helvetica,\n        sans-serif;\n\n    color: #263445;\n}\n\n\n\/* =========================================================\n   SEKCJE\n   ========================================================= *\/\n\n#gas-masters-popup .gas-masters-section-title {\n    margin:\n        3px\n        0\n        22px;\n\n    color: #194383;\n\n    font-size: 18px;\n    font-weight: 700;\n    line-height: 1.3;\n}\n\n#gas-masters-popup .gas-masters-divider {\n    width: 100%;\n    height: 1px;\n\n    margin:\n        30px\n        0;\n\n    background: #e7ecf2;\n}\n\n\n\/* =========================================================\n   POLA\n   ========================================================= *\/\n\n#gas-masters-popup .gas-masters-field {\n    position: relative;\n\n    margin-bottom: 21px;\n}\n\n#gas-masters-popup\n.gas-masters-field > label {\n    display: block;\n\n    margin-bottom: 7px;\n\n    color: #334155;\n\n    font-size: 14px;\n    font-weight: 600;\n    line-height: 1.4;\n}\n\n#gas-masters-popup .gas-required {\n    color: #df2929;\n}\n\n\n\/* =========================================================\n   INPUTY\n   ========================================================= *\/\n\n#gas-masters-popup\n.gas-masters-field input[type=\"text\"],\n\n#gas-masters-popup\n.gas-masters-field input[type=\"email\"],\n\n#gas-masters-popup\n.gas-masters-field input[type=\"tel\"] {\n    display: block;\n\n    width: 100%;\n    min-height: 48px;\n\n    padding:\n        10px\n        13px;\n\n    margin: 0;\n\n    border:\n        1px solid #cfd7e3;\n\n    border-radius: 8px;\n\n    outline: none;\n\n    background: #fff;\n\n    color: #1f2937;\n\n    font-family:\n        Arial,\n        Helvetica,\n        sans-serif;\n\n    font-size: 16px;\n\n    box-shadow: none;\n\n    transition:\n        border-color .18s ease,\n        box-shadow .18s ease;\n}\n\n#gas-masters-popup\n.gas-masters-field input:focus {\n    border-color: #194383;\n\n    box-shadow:\n        0 0 0 3px\n        rgba(25,67,131,.11);\n}\n\n\n\/* =========================================================\n   WARUNKOWE POLA\n   ========================================================= *\/\n\n#gas-masters-popup\n.gas-masters-conditional {\n    display: none;\n}\n\n#gas-masters-popup\n.gas-masters-conditional.gas-masters-visible {\n    display: block;\n\n    animation:\n        gasMastersShow\n        .18s ease;\n}\n\n@keyframes gasMastersShow {\n\n    from {\n        opacity: 0;\n\n        transform:\n            translateY(-4px);\n    }\n\n    to {\n        opacity: 1;\n\n        transform:\n            translateY(0);\n    }\n\n}\n\n\n\/* =========================================================\n   SWITCH\n   ========================================================= *\/\n\n#gas-masters-popup\n.gas-masters-switch-row {\n    display: flex;\n\n    align-items: center;\n    justify-content: space-between;\n\n    gap: 20px;\n\n    width: 100%;\n\n    min-height: 58px;\n\n    padding:\n        10px\n        0;\n\n    margin-bottom: 21px;\n}\n\n#gas-masters-popup\n.gas-masters-switch-text {\n    color: #334155;\n\n    font-size: 15px;\n    font-weight: 600;\n    line-height: 1.4;\n}\n\n#gas-masters-popup\n.gas-masters-switch-label {\n    position: relative;\n\n    display: inline-block;\n\n    flex: 0 0 auto;\n\n    width: 52px;\n    height: 30px;\n\n    cursor: pointer;\n}\n\n#gas-masters-popup\n.gas-masters-switch-label input {\n    position: absolute;\n\n    width: 1px;\n    height: 1px;\n\n    opacity: 0;\n\n    pointer-events: none;\n}\n\n#gas-masters-popup\n.gas-masters-switch-slider {\n    position: absolute;\n\n    inset: 0;\n\n    border-radius: 100px;\n\n    background: #cbd4df;\n\n    box-shadow:\n        inset 0 0 0 1px\n        rgba(0,0,0,.06);\n\n    transition:\n        background .2s ease,\n        box-shadow .2s ease;\n}\n\n#gas-masters-popup\n.gas-masters-switch-slider::before {\n    content: \"\";\n\n    position: absolute;\n\n    width: 24px;\n    height: 24px;\n\n    left: 3px;\n    top: 3px;\n\n    border-radius: 50%;\n\n    background: #fff;\n\n    box-shadow:\n        0 2px 5px\n        rgba(0,0,0,.2);\n\n    transition:\n        transform .2s ease;\n}\n\n#gas-masters-popup\n.gas-masters-switch-label\ninput:checked\n+\n.gas-masters-switch-slider {\n    background: #194383;\n}\n\n#gas-masters-popup\n.gas-masters-switch-label\ninput:checked\n+\n.gas-masters-switch-slider::before {\n    transform:\n        translateX(22px);\n}\n\n#gas-masters-popup\n.gas-masters-switch-label\ninput:focus-visible\n+\n.gas-masters-switch-slider {\n    box-shadow:\n        0 0 0 3px\n        rgba(25,67,131,.14);\n}\n\n\n\/* =========================================================\n   CUSTOM SELECT\n   ========================================================= *\/\n\n#gas-masters-popup\n.gas-native-select {\n    position: absolute !important;\n\n    left: -9999px !important;\n\n    width: 1px !important;\n    height: 1px !important;\n\n    padding: 0 !important;\n    margin: 0 !important;\n\n    opacity: 0 !important;\n\n    pointer-events: none !important;\n}\n\n#gas-masters-popup\n.gas-select-shell {\n    position: relative;\n\n    width: 100%;\n}\n\n\n\/* COMBO *\/\n\n#gas-masters-popup\n.gas-select-trigger {\n    position: relative;\n\n    display: flex;\n\n    align-items: center;\n    justify-content: space-between;\n\n    width: 100%;\n    min-height: 48px;\n\n    padding:\n        10px\n        43px\n        10px\n        13px;\n\n    margin: 0;\n\n    border:\n        1px solid #cfd7e3;\n\n    border-radius: 8px;\n\n    background: #fff;\n\n    color: #1f2937;\n\n    font-family:\n        Arial,\n        Helvetica,\n        sans-serif;\n\n    font-size: 16px;\n    line-height: 1.4;\n\n    text-align: left;\n\n    cursor: pointer;\n\n    outline: none;\n\n    transition:\n        border-color .18s ease,\n        box-shadow .18s ease,\n        border-radius .18s ease;\n}\n\n#gas-masters-popup\n.gas-select-trigger:hover {\n    border-color: #aab8cb;\n}\n\n#gas-masters-popup\n.gas-select-trigger:focus-visible {\n    border-color: #194383;\n\n    box-shadow:\n        0 0 0 3px\n        rgba(25,67,131,.11);\n}\n\n#gas-masters-popup\n.gas-select-open\n.gas-select-trigger {\n    border-color: #194383;\n\n    border-radius:\n        8px 8px 0 0;\n\n    border-bottom-color:\n        #dbe3ee;\n\n    box-shadow:\n        0 0 0 3px\n        rgba(25,67,131,.08);\n}\n\n#gas-masters-popup\n.gas-select-value {\n    min-width: 0;\n\n    overflow: hidden;\n\n    white-space: nowrap;\n\n    text-overflow: ellipsis;\n}\n\n\n\/* STRZA\u0141KA *\/\n\n#gas-masters-popup\n.gas-select-arrow {\n    position: absolute;\n\n    right: 16px;\n    top: 50%;\n\n    width: 8px;\n    height: 8px;\n\n    border-right:\n        2px solid #344256;\n\n    border-bottom:\n        2px solid #344256;\n\n    transform:\n        translateY(-65%)\n        rotate(45deg);\n\n    transition:\n        transform .18s ease;\n\n    pointer-events: none;\n}\n\n#gas-masters-popup\n.gas-select-open\n.gas-select-arrow {\n    transform:\n        translateY(-25%)\n        rotate(225deg);\n}\n\n\n\/* DROPDOWN *\/\n\n#gas-masters-popup\n.gas-select-dropdown {\n    display: none;\n\n    width: 100%;\n\n    max-height: 240px;\n\n    overflow-y: auto;\n    overflow-x: hidden;\n\n    margin:\n        -1px\n        0\n        0;\n\n    padding:\n        5px\n        0;\n\n    border:\n        1px solid #194383;\n\n    border-top: 0;\n\n    border-radius:\n        0 0 8px 8px;\n\n    background: #fff;\n\n    box-shadow:\n        0 10px 22px\n        rgba(15,38,72,.12);\n\n    scrollbar-width: thin;\n\n    scrollbar-color:\n        rgba(25,67,131,.32)\n        transparent;\n}\n\n#gas-masters-popup\n.gas-select-open\n.gas-select-dropdown {\n    display: block;\n\n    animation:\n        gasMastersDropdown\n        .14s ease;\n}\n\n@keyframes gasMastersDropdown {\n\n    from {\n        opacity: 0;\n\n        transform:\n            translateY(-3px);\n    }\n\n    to {\n        opacity: 1;\n\n        transform:\n            translateY(0);\n    }\n\n}\n\n\n\/* OPCJE *\/\n\n#gas-masters-popup\n.gas-select-option {\n    display: flex;\n\n    align-items: center;\n\n    width: 100%;\n\n    min-height: 39px;\n\n    padding:\n        8px\n        13px;\n\n    margin: 0;\n\n    border: none;\n    border-radius: 0;\n\n    background: transparent;\n\n    color: #1f2937;\n\n    font-family:\n        Arial,\n        Helvetica,\n        sans-serif;\n\n    font-size: 16px;\n    line-height: 1.4;\n\n    text-align: left;\n\n    cursor: pointer;\n\n    transition:\n        background .12s ease,\n        color .12s ease;\n}\n\n#gas-masters-popup\n.gas-select-option:hover,\n\n#gas-masters-popup\n.gas-select-option:focus {\n    outline: none;\n\n    background: #eef3fa;\n\n    color: #194383;\n}\n\n#gas-masters-popup\n.gas-select-option.gas-option-selected {\n    background: #194383;\n\n    color: #fff;\n}\n\n#gas-masters-popup\n.gas-select-option.gas-option-selected:hover {\n    background: #163a70;\n\n    color: #fff;\n}\n\n\n\/* SCROLL DROPDOWN *\/\n\n#gas-masters-popup\n.gas-select-dropdown::-webkit-scrollbar {\n    width: 6px;\n}\n\n#gas-masters-popup\n.gas-select-dropdown::-webkit-scrollbar-track {\n    background: transparent;\n}\n\n#gas-masters-popup\n.gas-select-dropdown::-webkit-scrollbar-thumb {\n    background:\n        rgba(25,67,131,.30);\n\n    border-radius: 100px;\n}\n\n#gas-masters-popup\n.gas-select-dropdown::-webkit-scrollbar-button {\n    display: none;\n\n    width: 0;\n    height: 0;\n}\n\n\n\/* B\u0141\u0104D *\/\n\n#gas-masters-popup\n.gas-select-shell.gas-select-error\n.gas-select-trigger {\n    border-color: #df2929;\n\n    box-shadow:\n        0 0 0 3px\n        rgba(223,41,41,.09);\n}\n\n\n\/* =========================================================\n   ZGODY\n   ========================================================= *\/\n\n#gas-masters-popup\n.gas-masters-consent {\n    margin:\n        18px\n        0;\n\n    color: #475569;\n\n    font-size: 13px;\n    line-height: 1.55;\n}\n\n#gas-masters-popup\n.gas-masters-consent label {\n    display: flex;\n\n    align-items: flex-start;\n\n    gap: 11px;\n\n    cursor: pointer;\n}\n\n#gas-masters-popup\n.gas-masters-consent\ninput[type=\"checkbox\"] {\n    flex: 0 0 auto;\n\n    width: 18px;\n    height: 18px;\n\n    margin-top: 2px;\n\n    accent-color: #194383;\n}\n\n\n\/* =========================================================\n   RECAPTCHA\n   ========================================================= *\/\n\n#gas-masters-popup\n.gas-masters-recaptcha {\n    margin-top: 27px;\n\n    min-height: 78px;\n\n    overflow: hidden;\n}\n\n\n\/* =========================================================\n   SUBMIT\n   ========================================================= *\/\n\n#gas-masters-popup\n.gas-masters-submit-area {\n    margin-top: 28px;\n}\n\n#gas-masters-popup\n.gas-masters-submit {\n    display: block;\n\n    width: 100%;\n    min-height: 51px;\n\n    padding:\n        14px\n        24px;\n\n    border: none;\n\n    border-radius: 9px;\n\n    background: #194383;\n\n    color: #fff;\n\n    font-family:\n        Arial,\n        Helvetica,\n        sans-serif;\n\n    font-size: 16px;\n    font-weight: 700;\n\n    cursor: pointer;\n\n    box-shadow:\n        0 5px 16px\n        rgba(25,67,131,.18);\n\n    transition:\n        background .18s ease,\n        transform .15s ease;\n}\n\n#gas-masters-popup\n.gas-masters-submit:hover {\n    background: #123566;\n\n    transform:\n        translateY(-1px);\n}\n\n#gas-masters-popup\n.gas-masters-note {\n    margin-top: 14px;\n\n    text-align: center;\n\n    color: #8995a5;\n\n    font-size: 12px;\n}\n\n\n\/* =========================================================\n   STATUS \/ B\u0141\u0118DY WYSY\u0141KI\n   ========================================================= *\/\n\n#gas-masters-popup\n.gas-masters-status {\n    display: none;\n\n    margin:\n        0\n        0\n        18px;\n\n    padding:\n        12px\n        14px;\n\n    border-radius: 9px;\n\n    font-size: 13px;\n    font-weight: 600;\n    line-height: 1.5;\n}\n\n#gas-masters-popup\n.gas-masters-status.gas-status-loading {\n    display: block;\n\n    background: #f4f7fb;\n\n    border:\n        1px solid #dbe4ef;\n\n    color: #334155;\n}\n\n#gas-masters-popup\n.gas-masters-status.gas-status-error {\n    display: block;\n\n    background: #fff2f2;\n\n    border:\n        1px solid #f2c8c8;\n\n    color: #a42525;\n}\n\n#gas-masters-popup\n.gas-masters-status.gas-status-success {\n    display: block;\n\n    background: #eef8f1;\n\n    border:\n        1px solid #c9e6d0;\n\n    color: #246537;\n}\n\n#gas-masters-popup\n.gas-masters-field input.gas-masters-input-error {\n    border-color: #df2929;\n\n    box-shadow:\n        0 0 0 3px\n        rgba(223,41,41,.09);\n}\n\n#gas-masters-popup\n.gas-masters-consent.gas-masters-consent-error {\n    padding:\n        10px\n        12px;\n\n    border-radius: 8px;\n\n    background: #fff5f5;\n\n    outline:\n        1px solid #f1caca;\n}\n\n#gas-masters-popup\n.gas-masters-submit[aria-disabled=\"true\"] {\n    cursor: wait;\n\n    opacity: .78;\n\n    transform: none;\n}\n\n#gas-masters-popup\n.gas-masters-submit:disabled {\n    cursor: default;\n\n    opacity: .78;\n\n    transform: none;\n}\n\n\n\n\/* =========================================================\n   WALIDACJA LIVE \/ PODPOWIEDZI V3\n   ========================================================= *\/\n\n#gas-masters-popup .gas-masters-hint {\n    margin: 6px 2px 0;\n    color: #94a3b8;\n    font-size: 12px;\n    font-weight: 400;\n    line-height: 1.45;\n}\n\n#gas-masters-popup .gas-masters-validation-message {\n    display: none;\n    margin: 6px 2px 0;\n    color: #c62828;\n    font-size: 12px;\n    font-weight: 600;\n    line-height: 1.45;\n}\n\n#gas-masters-popup .gas-masters-validation-message.gas-masters-validation-visible {\n    display: block;\n}\n\n#gas-masters-popup .gas-masters-field.gas-masters-field-has-error > label {\n    color: #a92323;\n}\n\n#gas-masters-popup .gas-masters-consent.gas-masters-field-has-error {\n    padding: 10px 12px;\n    border-radius: 8px;\n    background: #fff5f5;\n    outline: 1px solid #f1caca;\n}\n\n\n\n\/* =========================================================\n   ETAP TESTU PO REJESTRACJI \u2013 GO AHEAD MASTERS\n   ========================================================= *\/\n\n#gas-masters-popup .gas-masters-test-stage {\n    display: none;\n    min-height: 560px;\n    background: #fff;\n}\n\n#gas-masters-popup .gas-masters-test-stage.gas-masters-test-active {\n    display: flex;\n    flex-direction: column;\n}\n\n#gas-masters-popup .gas-masters-test-intro {\n    flex: 0 0 auto;\n    padding: 20px 24px 16px;\n    border-bottom: 1px solid #e7ecf2;\n    background: #fff;\n}\n\n#gas-masters-popup .gas-masters-test-title {\n    margin: 0 0 6px;\n    color: #194383;\n    font-size: 18px;\n    font-weight: 700;\n    line-height: 1.3;\n}\n\n#gas-masters-popup .gas-masters-test-description {\n    margin: 0;\n    color: #64748b;\n    font-size: 13px;\n    line-height: 1.5;\n}\n\n#gas-masters-popup .gas-masters-test-frame-holder {\n    flex: 1 1 auto;\n    min-height: 500px;\n    background: #fff;\n}\n\n\n\n#gas-masters-popup .gas-masters-test-window-card {\n    margin: 26px 24px;\n    padding: 20px;\n    border: 1px solid #dbe4ef;\n    border-radius: 12px;\n    background: #f8fafc;\n    color: #334155;\n    font-size: 14px;\n    line-height: 1.55;\n}\n\n#gas-masters-popup .gas-masters-test-window-card strong {\n    display: block;\n    margin-bottom: 7px;\n    color: #194383;\n    font-size: 15px;\n}\n\n#gas-masters-popup .gas-masters-test-window-button {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    min-height: 44px;\n    margin-top: 15px;\n    padding: 10px 18px;\n    border: 0;\n    border-radius: 8px;\n    background: #194383;\n    color: #fff;\n    font: inherit;\n    font-weight: 700;\n    cursor: pointer;\n}\n\n#gas-masters-popup .gas-masters-test-window-button:hover {\n    background: #123566;\n}\n\n#gas-masters-popup iframe.gas-masters-test-frame {\n    display: block !important;\n    position: static !important;\n    width: 100% !important;\n    height: 68vh !important;\n    min-height: 500px !important;\n    max-height: 760px !important;\n    opacity: 1 !important;\n    pointer-events: auto !important;\n    border: 0 !important;\n    background: #fff;\n}\n\n#gas-masters-popup .gas-masters-test-success {\n    display: none;\n    margin: 26px 24px;\n    padding: 18px;\n    border: 1px solid #c9e6d0;\n    border-radius: 10px;\n    background: #eef8f1;\n    color: #246537;\n    font-size: 14px;\n    font-weight: 600;\n    line-height: 1.55;\n}\n\n#gas-masters-popup .gas-masters-test-success.gas-masters-test-success-visible {\n    display: block;\n}\n\n@media (max-width:600px) {\n    #gas-masters-popup .gas-masters-test-stage {\n        min-height: 520px;\n    }\n\n    #gas-masters-popup .gas-masters-test-intro {\n        padding: 16px 18px 13px;\n    }\n\n    #gas-masters-popup iframe.gas-masters-test-frame {\n        height: 66vh !important;\n        min-height: 470px !important;\n    }\n}\n\n\n\/* =========================================================\n   MOBILE\n   ========================================================= *\/\n\n@media (max-width:600px) {\n\n    #gas-masters-popup {\n        padding: 10px;\n    }\n\n    #gas-masters-popup\n    .gas-masters-window {\n        max-height:\n            calc(100vh - 20px);\n\n        border-radius: 16px;\n    }\n\n    #gas-masters-popup\n    .gas-masters-top {\n        height: 175px;\n    }\n\n    #gas-masters-popup\n    .gas-masters-close {\n        top: 12px;\n        right: 12px;\n\n        width: 39px;\n        height: 39px;\n    }\n\n    #gas-masters-popup\n    .gas-masters-form {\n        padding:\n            24px\n            20px\n            30px;\n    }\n\n    #gas-masters-popup\n    .gas-select-option {\n        min-height: 44px;\n    }\n\n    #gas-masters-popup\n    .gas-masters-recaptcha {\n        transform: scale(.88);\n\n        transform-origin:\n            left top;\n\n        width:\n            calc(100% \/ .88);\n\n        margin-bottom: -8px;\n    }\n\n}\n\n\n@media (max-width:365px) {\n\n    #gas-masters-popup\n    .gas-masters-recaptcha {\n        transform: scale(.80);\n\n        width:\n            calc(100% \/ .80);\n\n        margin-bottom: -15px;\n    }\n\n}\n\n<\/style>\n\n\n\n<!-- =========================================================\n     HTML\n     ========================================================= -->\n\n<div\n    id=\"gas-masters-popup\"\n    aria-hidden=\"true\"\n>\n\n    <div\n        class=\"gas-masters-window\"\n        role=\"dialog\"\n        aria-modal=\"true\"\n        aria-label=\"Formularz rejestracji Go Ahead Masters\"\n    >\n\n\n        <!-- HEADER -->\n\n        <div class=\"gas-masters-top\">\n\n            <button\n                type=\"button\"\n                class=\"gas-masters-close\"\n                aria-label=\"Zamknij formularz\"\n            >\n                \u00d7\n            <\/button>\n\n        <\/div>\n\n\n\n        <!-- SCROLL -->\n\n        <div class=\"gas-masters-scroll\">\n\n            <div class=\"gas-masters-form\">\n\n\n                <form\n                    action=\"https:\/\/goahead.langlion.com\/registration\/registrate\"\n                    method=\"post\"\n                    id=\"gas-masters-form\"\n                >\n\n\n                    <!-- =====================================\n                         LANGLION\n                         ===================================== -->\n\n                    <input\n                        type=\"hidden\"\n                        name=\"registrateParent\"\n                        value=\"1\"\n                    >\n\n                    <input\n                        type=\"hidden\"\n                        name=\"lang\"\n                        value=\"pl_PL\"\n                    >\n\n                    <input\n                        type=\"hidden\"\n                        name=\"registrationFormId\"\n                        value=\"7\"\n                    >\n\n                    <input\n                        type=\"hidden\"\n                        name=\"school_id\"\n                        value=\"1\"\n                    >\n\n                    <!--\n                         J\u0118ZYK KURSU \u2013 techniczna warto\u015b\u0107 LangLion.\n                         W wygenerowanym formularzu Masters pole \"J\u0119zyk\"\n                         jest ukryte, poniewa\u017c w systemie aktywny jest jeden j\u0119zyk.\n                         language_id=1 jest jednak wysy\u0142ane i to ono pozwala\n                         LangLion uruchomi\u0107 test przypisany do j\u0119zyka po rejestracji.\n                    -->\n                    <input\n                        type=\"hidden\"\n                        name=\"language_id\"\n                        id=\"gas-masters-language-id\"\n                        value=\"1\"\n                    >\n\n                    <!--\n                         Techniczny e-mail kursanta.\n                         Uzupe\u0142niany automatycznie adresem e-mail rodzica.\n                    -->\n                    <input\n                        type=\"hidden\"\n                        name=\"email\"\n                        id=\"gas-masters-email\"\n                        value=\"\"\n                        special=\"Adres e-mail\"\n                    >\n\n\n\n                    <!-- =====================================\n                         1. INFORMACJE O KURSIE\n                         ===================================== -->\n\n                    <div class=\"gas-masters-section-title\">\n                        Informacje o kursie\n                    <\/div>\n\n\n\n                    <!-- FORMA KURSU -->\n\n                    <div class=\"gas-masters-field\">\n\n                        <label for=\"gas-masters-course-type\">\n\n                            Forma kursu\n\n                            <span class=\"gas-required\">*<\/span>\n\n                        <\/label>\n\n\n                        <select\n                            name=\"customField10\"\n                            id=\"gas-masters-course-type\"\n                            special=\"Forma kursu\"\n                            required\n                        >\n\n                            <option value=\"\">\n                                Wybierz\n                            <\/option>\n\n                            <option value=\"13\">\n                                Stacjonarnie - w SP316\n                            <\/option>\n\n                            <option value=\"21\">\n                                Zaj\u0119cia online\n                            <\/option>\n\n                        <\/select>\n\n                    <\/div>\n\n\n\n                    <div class=\"gas-masters-divider\"><\/div>\n\n\n\n                    <!-- =====================================\n                         2. DANE DZIECKA\n                         ===================================== -->\n\n                    <div class=\"gas-masters-section-title\">\n                        Dane dziecka\n                    <\/div>\n\n\n\n                    <!-- IMI\u0118 -->\n\n                    <div class=\"gas-masters-field\">\n\n                        <label for=\"gas-masters-name\">\n\n                            Imi\u0119\n\n                            <span class=\"gas-required\">*<\/span>\n\n                        <\/label>\n\n\n                        <input\n                            type=\"text\"\n                            name=\"name\"\n                            id=\"gas-masters-name\"\n                            special=\"Imi\u0119\"\n                            autocomplete=\"off\"\n                            required\n                        >\n\n                    <\/div>\n\n\n\n                    <!-- NAZWISKO -->\n\n                    <div class=\"gas-masters-field\">\n\n                        <label for=\"gas-masters-lastname\">\n\n                            Nazwisko\n\n                            <span class=\"gas-required\">*<\/span>\n\n                        <\/label>\n\n\n                        <input\n                            type=\"text\"\n                            name=\"lastName\"\n                            id=\"gas-masters-lastname\"\n                            special=\"Nazwisko\"\n                            autocomplete=\"off\"\n                            required\n                        >\n\n                    <\/div>\n\n\n\n                    <!-- KLASA -->\n\n                    <div class=\"gas-masters-field\">\n\n                        <label for=\"gas-masters-class\">\n\n                            Do kt\u00f3rej klasy chodzi dziecko?\n\n                            <span class=\"gas-required\">*<\/span>\n\n                        <\/label>\n\n\n                        <input\n                            type=\"text\"\n                            name=\"customField1\"\n                            id=\"gas-masters-class\"\n                            inputmode=\"text\"\n                            maxlength=\"2\"\n                            pattern=\"[1-8][A-Za-z]\"\n                            title=\"Wpisz klas\u0119 w formacie np. 5A \u2014 jedna cyfra od 1 do 8 i jedna litera.\"\n                            autocapitalize=\"characters\"\n                            special=\"Do kt\u00f3rej klasy chodzi dziecko?\"\n                            required\n                        >\n\n                    <\/div>\n\n\n\n                    <!-- \u015aWIETLICA -->\n\n                    <div\n                        class=\"gas-masters-field gas-masters-conditional\"\n                        id=\"gas-masters-daycare-field\"\n                    >\n\n                        <label for=\"gas-masters-daycare\">\n\n                            Czy dziecko ucz\u0119szcza na \u015bwietlic\u0119?\n\n                            <span class=\"gas-required\">*<\/span>\n\n                        <\/label>\n\n\n                        <select\n                            name=\"customField7\"\n                            id=\"gas-masters-daycare\"\n                            special=\"Czy dziecko ucz\u0119szcza na \u015bwietlice?\"\n                        >\n\n                            <option value=\"\">\n                                Wybierz\n                            <\/option>\n\n\n                            <option\n                                value=\"8\"\n                                hidden\n                            >\n                                Nie dotyczy (online)\n                            <\/option>\n\n\n                            <option value=\"9\">\n                                Tak\n                            <\/option>\n\n\n                            <option value=\"19\">\n                                Nie\n                            <\/option>\n\n                        <\/select>\n\n                    <\/div>\n\n\n\n                    <div class=\"gas-masters-divider\"><\/div>\n\n\n\n                    <!-- =====================================\n                         3. DANE RODZICA\n                         ===================================== -->\n\n                    <div class=\"gas-masters-section-title\">\n                        Dane rodzica \/ opiekuna\n                    <\/div>\n\n\n\n                    <!-- IMI\u0118 -->\n\n                    <div class=\"gas-masters-field\">\n\n                        <label for=\"gas-masters-parent-name\">\n\n                            Imi\u0119\n\n                            <span class=\"gas-required\">*<\/span>\n\n                        <\/label>\n\n\n                        <input\n                            type=\"text\"\n                            name=\"parentName\"\n                            id=\"gas-masters-parent-name\"\n                            special=\"Imi\u0119 (rodzic)\"\n                            autocomplete=\"given-name\"\n                            required\n                        >\n\n                    <\/div>\n\n\n\n                    <!-- NAZWISKO -->\n\n                    <div class=\"gas-masters-field\">\n\n                        <label for=\"gas-masters-parent-lastname\">\n\n                            Nazwisko\n\n                            <span class=\"gas-required\">*<\/span>\n\n                        <\/label>\n\n\n                        <input\n                            type=\"text\"\n                            name=\"parentLastName\"\n                            id=\"gas-masters-parent-lastname\"\n                            special=\"Nazwisko (rodzic)\"\n                            autocomplete=\"family-name\"\n                            required\n                        >\n\n                    <\/div>\n\n\n\n                    <!-- TELEFON -->\n\n                    <div class=\"gas-masters-field\">\n\n                        <label for=\"gas-masters-parent-mobile\">\n\n                            Tel. kom\u00f3rkowy\n\n                            <span class=\"gas-required\">*<\/span>\n\n                        <\/label>\n\n\n                        <input\n                            type=\"tel\"\n                            name=\"parentMobile\"\n                            id=\"gas-masters-parent-mobile\"\n                            special=\"Tel. kom\u00f3rkowy (rodzic)\"\n                            autocomplete=\"tel\"\n                            required\n                        >\n\n                    <\/div>\n\n\n\n                    <!-- EMAIL -->\n\n                    <div class=\"gas-masters-field\">\n\n                        <label for=\"gas-masters-parent-email\">\n\n                            Adres e-mail\n\n                            <span class=\"gas-required\">*<\/span>\n\n                        <\/label>\n\n\n                        <input\n                            type=\"email\"\n                            name=\"parentEmail\"\n                            id=\"gas-masters-parent-email\"\n                            special=\"Adres e-mail (rodzic)\"\n                            autocomplete=\"email\"\n                            required\n                        >\n\n                    <\/div>\n\n\n\n                    <!-- ULICA -->\n\n                    <div class=\"gas-masters-field\">\n\n                        <label for=\"gas-masters-parent-street\">\n\n                            Ulica i nr domu\/mieszkania\n\n                            <span class=\"gas-required\">*<\/span>\n\n                        <\/label>\n\n\n                        <input\n                            type=\"text\"\n                            name=\"parentStreet\"\n                            id=\"gas-masters-parent-street\"\n                            special=\"Ulica i nr domu\/mieszkania (rodzic)\"\n                            autocomplete=\"street-address\"\n                            required\n                        >\n\n                    <\/div>\n\n\n\n                    <!-- KOD -->\n\n                    <div class=\"gas-masters-field\">\n\n                        <label for=\"gas-masters-parent-zipcode\">\n\n                            Kod pocztowy\n\n                            <span class=\"gas-required\">*<\/span>\n\n                        <\/label>\n\n\n                        <input\n                            type=\"text\"\n                            name=\"parentZipCode\"\n                            id=\"gas-masters-parent-zipcode\"\n                            special=\"Kod pocztowy (rodzic)\"\n                            autocomplete=\"postal-code\"\n                            required\n                        >\n\n                    <\/div>\n\n\n\n                    <!-- MIASTO -->\n\n                    <div class=\"gas-masters-field\">\n\n                        <label for=\"gas-masters-parent-city\">\n\n                            Miejscowo\u015b\u0107\n\n                            <span class=\"gas-required\">*<\/span>\n\n                        <\/label>\n\n\n                        <input\n                            type=\"text\"\n                            name=\"parentCity\"\n                            id=\"gas-masters-parent-city\"\n                            special=\"Miejscowo\u015b\u0107 (rodzic)\"\n                            autocomplete=\"address-level2\"\n                            required\n                        >\n\n                    <\/div>\n\n\n\n                    <!-- =====================================\n                         SWITCH RODZE\u0143STWO\n                         customField16\n                         ===================================== -->\n\n                    <div class=\"gas-masters-switch-row\">\n\n                        <div class=\"gas-masters-switch-text\">\n                            Rodze\u0144stwo na kursie\n                        <\/div>\n\n\n                        <label class=\"gas-masters-switch-label\">\n\n                            <input\n                                type=\"checkbox\"\n                                name=\"customField16\"\n                                id=\"gas-masters-sibling-switch\"\n                                value=\"1\"\n                                aria-label=\"Rodze\u0144stwo na kursie\"\n                            >\n\n\n                            <span\n                                class=\"gas-masters-switch-slider\"\n                            ><\/span>\n\n                        <\/label>\n\n                    <\/div>\n\n\n\n                    <!-- IMI\u0118 I NAZWISKO RODZE\u0143STWA -->\n\n                    <div\n                        class=\"gas-masters-field gas-masters-conditional\"\n                        id=\"gas-masters-sibling-field\"\n                    >\n\n                        <label for=\"gas-masters-sibling-name\">\n\n                            Imi\u0119 i nazwisko rodze\u0144stwa\n\n                        <span class=\"gas-required\">*<\/span>\n                        <\/label>\n\n\n                        <input\n                            type=\"text\"\n                            name=\"customField9\"\n                            id=\"gas-masters-sibling-name\"\n                            special=\"Imi\u0119 i nazwisko rodze\u0144stwa\"\n                            disabled\n                        >\n\n                    <\/div>\n\n\n\n                    <div class=\"gas-masters-divider\"><\/div>\n\n\n\n                    <!-- =====================================\n                         4. FORMA P\u0141ATNO\u015aCI\n                         ===================================== -->\n\n                    <div class=\"gas-masters-section-title\">\n                        Forma p\u0142atno\u015bci\n                    <\/div>\n\n\n\n                    <div class=\"gas-masters-field\">\n\n                        <label for=\"gas-masters-payment\">\n\n                            Forma p\u0142atno\u015bci\n\n                            <span class=\"gas-required\">*<\/span>\n\n                        <\/label>\n\n\n                        <select\n                            name=\"customField17\"\n                            id=\"gas-masters-payment\"\n                            special=\"Forma p\u0142atno\u015bci (Masters)\"\n                            required\n                        >\n\n                            <option value=\"\">\n                                Wybierz\n                            <\/option>\n\n\n                            <option value=\"40\">\n                                P\u0142atno\u015b\u0107 jednorazowa\n                            <\/option>\n\n\n                            <option value=\"41\">\n                                P\u0142atno\u015b\u0107 w 3 ratach\n                            <\/option>\n\n                        <\/select>\n\n                    <\/div>\n\n\n\n                    <div class=\"gas-masters-divider\"><\/div>\n\n\n\n                    <!-- =====================================\n                         5. ZGODY\n                         ===================================== -->\n\n                    <div class=\"gas-masters-section-title\">\n                        Zgody\n                    <\/div>\n\n\n\n                    <div class=\"gas-masters-consent\">\n\n                        <label>\n\n                            <input\n                                type=\"checkbox\"\n                                name=\"consent22\"\n                                value=\"1\"\n                                required\n                            >\n\n\n                            <span>\n\n                                Wyra\u017cam zgod\u0119 na przetwarzanie przez\n                                Go Ahead School Monika Skarbek moich\n                                danych osobowych w celach zwi\u0105zanych\n                                z rejestracj\u0105 na kurs j\u0119zykowy.\n\n                                <span class=\"gas-required\">*<\/span>\n\n                            <\/span>\n\n                        <\/label>\n\n                    <\/div>\n\n\n\n                    <div class=\"gas-masters-consent\">\n\n                        <label>\n\n                            <input\n                                type=\"checkbox\"\n                                name=\"consent23\"\n                                value=\"1\"\n                            >\n\n\n                            <span>\n\n                                Wyra\u017cam zgod\u0119 na przetwarzanie moich\n                                danych osobowych w celach marketingowych\n                                przez Go Ahead School Monika Skarbek.\n\n                            <\/span>\n\n                        <\/label>\n\n                    <\/div>\n\n\n\n                    <div class=\"gas-masters-consent\">\n\n                        <label>\n\n                            <input\n                                type=\"checkbox\"\n                                name=\"consent24\"\n                                value=\"1\"\n                            >\n\n\n                            <span>\n\n                                Wyra\u017cam zgod\u0119 na przetwarzanie moich\n                                danych osobowych w celach handlowych\n                                przez Go Ahead School Monika Skarbek.\n\n                            <\/span>\n\n                        <\/label>\n\n                    <\/div>\n\n\n\n                    <!-- =====================================\n                         RECAPTCHA\n                         ===================================== -->\n\n                    <div class=\"gas-masters-recaptcha\">\n\n                        <div\n                            id=\"gas-masters-recaptcha-widget\"\n                        ><\/div>\n\n                    <\/div>\n\n\n\n                    <!-- STATUS WYSY\u0141KI \/ B\u0141\u0118D\u00d3W -->\n\n                    <div\n                        id=\"gas-masters-status\"\n                        class=\"gas-masters-status\"\n                        role=\"status\"\n                        aria-live=\"polite\"\n                        aria-atomic=\"true\"\n                    ><\/div>\n\n\n\n                    <!-- =====================================\n                         SUBMIT\n\n                         name + value zgodne z LangLion:\n                         commit = Zapisz\n                         ===================================== -->\n\n                    <div class=\"gas-masters-submit-area\">\n\n                        <button\n                            type=\"submit\"\n                            name=\"commit\"\n                            value=\"Zapisz\"\n                            id=\"gas-masters-submit\"\n                            class=\"gas-masters-submit\"\n                        >\n\n                            <span id=\"gas-masters-submit-text\">\n                                Zapisz dziecko na kurs\n                            <\/span>\n\n                        <\/button>\n\n                    <\/div>\n\n\n\n                    <div class=\"gas-masters-note\">\n\n                        Pola oznaczone\n\n                        <span class=\"gas-required\">*<\/span>\n\n                        s\u0105 wymagane.\n\n                    <\/div>\n\n\n                <\/form>\n\n                <div\n                    id=\"gas-masters-test-stage\"\n                    class=\"gas-masters-test-stage\"\n                    aria-hidden=\"true\"\n                >\n\n                    <div class=\"gas-masters-test-intro\">\n                        <div class=\"gas-masters-test-title\">\n                            Test poziomuj\u0105cy Go Ahead Masters\n                        <\/div>\n                        <p class=\"gas-masters-test-description\">\n                            Po wys\u0142aniu formularza doko\u0144cz rejestracj\u0119, rozwi\u0105zuj\u0105c test poziomuj\u0105cy w oknie LangLion.\n                        <\/p>\n                    <\/div>\n\n                    <div\n                        id=\"gas-masters-test-success\"\n                        class=\"gas-masters-test-success\"\n                        role=\"status\"\n                        aria-live=\"polite\"\n                    >\n                        Dzi\u0119kujemy. Rejestracja i test zosta\u0142y zako\u0144czone. Okno zamknie si\u0119 automatycznie za 5 sekund.\n                    <\/div>\n\n                    <div\n                        id=\"gas-masters-test-frame-holder\"\n                        class=\"gas-masters-test-frame-holder\"\n                    ><\/div>\n\n                <\/div>\n\n\n            <\/div>\n\n        <\/div>\n\n    <\/div>\n\n<\/div>\n\n\n\n<!-- =========================================================\n     JAVASCRIPT\n     ========================================================= -->\n\n<script>\n(function () {\n    const popup = document.getElementById(\"gas-masters-popup\");\n    if (!popup) return;\n    const PREFIX = \"gas-masters\";\n    const form = document.getElementById(\"gas-masters-form\");\n    const scrollArea = popup.querySelector(\".gas-masters-scroll\");\n    const closeButton = popup.querySelector(\".gas-masters-close\");\n    const submitButton = document.getElementById(\"gas-masters-submit\");\n    const submitText = document.getElementById(\"gas-masters-submit-text\");\n    const statusBox = document.getElementById(\"gas-masters-status\");\n    const popupHash = \"#rejestracja-masters\";\n\n    const courseType = document.getElementById(\"gas-masters-course-type\");\n    const daycareField = document.getElementById(\"gas-masters-daycare-field\");\n    const daycare = document.getElementById(\"gas-masters-daycare\");\n    const siblingSwitch = document.getElementById(\"gas-masters-sibling-switch\");\n    const siblingField = document.getElementById(\"gas-masters-sibling-field\");\n    const siblingName = document.getElementById(\"gas-masters-sibling-name\");\n    const parentEmail = document.getElementById(\"gas-masters-parent-email\");\n    const hiddenEmail = document.getElementById(\"gas-masters-email\");\n\n    const RECAPTCHA_SITE_KEY = \"6LcsjRQUAAAAAK4ajbqN7cm_jvjVwyr3FJGpwzSo\";\n    const RECAPTCHA_CONTAINER_ID = \"gas-masters-recaptcha-widget\";\n    let recaptchaWidgetId = null, captchaSolved = false, testWindow = null, closeTimer = null;\n\n    popup.querySelectorAll(\"select\").forEach(createCustomSelect);\n\n    function updateCourseFields(){ if(courseType.value===\"13\"){daycareField.classList.add(\"gas-masters-visible\");daycare.disabled=false;if(daycare.value===\"8\")daycare.value=\"\";} else if(courseType.value===\"21\"){daycareField.classList.remove(\"gas-masters-visible\");daycare.disabled=false;daycare.value=\"8\";} else {daycareField.classList.remove(\"gas-masters-visible\");daycare.value=\"\";daycare.disabled=true;} syncSelect(daycare);scheduleButtonRefresh(); }\n    function updateSiblingField(){ if(siblingSwitch.checked){siblingField.classList.add(\"gas-masters-visible\");siblingName.disabled=false;} else {siblingField.classList.remove(\"gas-masters-visible\");siblingName.value=\"\";siblingName.disabled=true;} scheduleButtonRefresh(); }\n    function syncEmail(){hiddenEmail.disabled=false;hiddenEmail.value=parentEmail.value.trim();}\n    courseType.addEventListener(\"change\",updateCourseFields);siblingSwitch.addEventListener(\"change\",updateSiblingField);parentEmail.addEventListener(\"input\",syncEmail);parentEmail.addEventListener(\"change\",syncEmail);\n\n    const configs=[\n        cfg(\"gas-masters-course-type\",true,\"select\",\"Wybierz form\u0119 kursu.\",\"Wybierz zaj\u0119cia stacjonarne w SP316 albo online.\"),\n        cfg(\"gas-masters-name\",true,\"name\",\"Wpisz imi\u0119 dziecka.\"),\n        cfg(\"gas-masters-lastname\",true,\"lastname\",\"Wpisz nazwisko dziecka.\"),\n        cfg(\"gas-masters-class\",true,\"class\",\"Wpisz klas\u0119 w formacie 5A \u2013 jedna cyfra od 1 do 8 i jedna litera.\",\"Format: 5A (cyfra od 1 do 8 + jedna litera).\"),\n        cfg(\"gas-masters-daycare\",function(){return courseType.value===\"13\";},\"select\",\"Wybierz, czy dziecko ucz\u0119szcza na \u015bwietlic\u0119.\",\"Pole dotyczy zaj\u0119\u0107 stacjonarnych w SP316.\",function(){return courseType.value===\"13\";}),\n        cfg(\"gas-masters-parent-name\",true,\"text\",\"Wpisz imi\u0119 rodzica lub opiekuna.\"),\n        cfg(\"gas-masters-parent-lastname\",true,\"text\",\"Wpisz nazwisko rodzica lub opiekuna.\"),\n        cfg(\"gas-masters-parent-mobile\",true,\"phone\",\"Wpisz poprawny polski numer telefonu: 9 cyfr, np. 501 234 567 lub +48 501 234 567.\",\"Np. 501 234 567 lub +48 501 234 567.\"),\n        cfg(\"gas-masters-parent-email\",true,\"email\",\"Wpisz poprawny adres e-mail, np. rodzic@example.com.\"),\n        cfg(\"gas-masters-parent-street\",true,\"text\",\"Wpisz ulic\u0119 oraz numer domu lub mieszkania.\"),\n        cfg(\"gas-masters-parent-zipcode\",true,\"zip\",\"Wpisz kod pocztowy w formacie 00-000.\",\"Format: 00-000.\"),\n        cfg(\"gas-masters-parent-city\",true,\"text\",\"Wpisz miejscowo\u015b\u0107.\"),\n        cfg(\"gas-masters-payment\",true,\"select\",\"Wybierz form\u0119 p\u0142atno\u015bci.\"),\n        cfgByName(\"consent22\",true,\"checkbox\",\"Zaznacz zgod\u0119 wymagan\u0105 do przes\u0142ania rejestracji.\")\n    ];\n    function cfg(id,required,rule,message,hint,active){const el=document.getElementById(id),wrapper=el.closest(\".gas-masters-field, .gas-masters-consent\");return{el,wrapper,required:typeof required===\"function\"?required:function(){return!!required;},rule,message,hint:hint||null,active:active||function(){return!el.disabled;}};}\n    function cfgByName(name,required,rule,message){const el=form.querySelector('[name=\"'+name+'\"]'),wrapper=el.closest(\".gas-masters-consent\");return{el,wrapper,required:function(){return!!required;},rule,message,hint:null,active:function(){return!el.disabled;}};}\n\n\n    function createCustomSelect(select) {\n        if (!select || select.dataset.gasReady === \"1\") return;\n        select.dataset.gasReady = \"1\";\n        select.classList.add(\"gas-native-select\");\n        select.required = false;\n\n        const shell = document.createElement(\"div\");\n        shell.className = \"gas-select-shell\";\n\n        const trigger = document.createElement(\"button\");\n        trigger.type = \"button\";\n        trigger.className = \"gas-select-trigger\";\n        trigger.setAttribute(\"aria-haspopup\", \"listbox\");\n        trigger.setAttribute(\"aria-expanded\", \"false\");\n\n        const value = document.createElement(\"span\");\n        value.className = \"gas-select-value\";\n        const arrow = document.createElement(\"span\");\n        arrow.className = \"gas-select-arrow\";\n        arrow.setAttribute(\"aria-hidden\", \"true\");\n        trigger.append(value, arrow);\n\n        const dropdown = document.createElement(\"div\");\n        dropdown.className = \"gas-select-dropdown\";\n        dropdown.setAttribute(\"role\", \"listbox\");\n\n        const buttons = [];\n        Array.from(select.options).forEach(function (opt) {\n            if (!opt.value || opt.hidden || opt.disabled) return;\n            const b = document.createElement(\"button\");\n            b.type = \"button\";\n            b.className = \"gas-select-option\";\n            b.textContent = opt.textContent.trim();\n            b.setAttribute(\"role\", \"option\");\n            b.addEventListener(\"click\", function () {\n                if (b.disabled || b.hidden) return;\n                select.value = opt.value;\n\n                \/*\n                 * Od razu synchronizujemy widoczn\u0105 warto\u015b\u0107 custom combo.\n                 * Samo ustawienie value na ukrytym <select> nie zmienia\n                 * tekstu w naszym przycisku-triggerze.\n                 *\/\n                syncSelect(select);\n\n                select.dispatchEvent(new Event(\"change\", { bubbles: true }));\n                shell.classList.remove(\"gas-select-open\");\n                trigger.setAttribute(\"aria-expanded\", \"false\");\n                trigger.focus();\n            });\n            buttons.push({ value: opt.value, button: b });\n            dropdown.appendChild(b);\n        });\n\n        trigger.addEventListener(\"click\", function () {\n            if (select.disabled) return;\n            document.querySelectorAll(\"#\" + popup.id + \" .gas-select-open\").forEach(function (node) {\n                if (node !== shell) {\n                    node.classList.remove(\"gas-select-open\");\n                    const t = node.querySelector(\".gas-select-trigger\");\n                    if (t) t.setAttribute(\"aria-expanded\", \"false\");\n                }\n            });\n            const willOpen = !shell.classList.contains(\"gas-select-open\");\n            shell.classList.toggle(\"gas-select-open\", willOpen);\n            trigger.setAttribute(\"aria-expanded\", willOpen ? \"true\" : \"false\");\n        });\n\n        shell.append(trigger, dropdown);\n        select.insertAdjacentElement(\"afterend\", shell);\n        select._gasCustom = { shell, trigger, value, buttons };\n\n        \/*\n         * Synchronizacja obejmuje r\u00f3wnie\u017c zmiany wykonane programowo\n         * przez logik\u0119 formularza (np. \u015bwietlica = \"Nie dotyczy\"\n         * dla kursu online). Dzi\u0119ki temu custom combo nigdy nie zostaje\n         * wizualnie na opcji \"Wybierz\" przy prawid\u0142owym select.value.\n         *\/\n        select.addEventListener(\"change\", function () {\n            syncSelect(select);\n        });\n\n        syncSelect(select);\n    }\n\n    function syncSelect(select) {\n        if (!select || !select._gasCustom) return;\n        const data = select._gasCustom;\n        const opt = select.options[select.selectedIndex];\n        data.value.textContent = opt ? opt.textContent.trim() : \"Wybierz\";\n        data.buttons.forEach(function (item) {\n            const selected = item.value === select.value;\n            item.button.classList.toggle(\"gas-option-selected\", selected);\n            item.button.setAttribute(\"aria-selected\", selected ? \"true\" : \"false\");\n        });\n        if (select.value) data.shell.classList.remove(\"gas-select-error\");\n    }\n\n    function setOptionVisibility(select, value, visible) {\n        if (!select) return;\n        const opt = Array.from(select.options).find(function (o) { return o.value === value; });\n        if (opt) { opt.hidden = !visible; opt.disabled = !visible; }\n        if (select._gasCustom) {\n            const item = select._gasCustom.buttons.find(function (x) { return x.value === value; });\n            if (item) {\n                item.button.hidden = !visible;\n                item.button.disabled = !visible;\n                item.button.style.display = visible ? \"\" : \"none\";\n            }\n        }\n    }\n\n    function ensureErrorNode(cfg) {\n        if (cfg.errorNode) return cfg.errorNode;\n        const node = document.createElement(\"div\");\n        node.className = PREFIX + \"-validation-message\";\n        node.setAttribute(\"aria-live\", \"polite\");\n        cfg.wrapper.appendChild(node);\n        cfg.errorNode = node;\n        return node;\n    }\n\n    function ensureHintNode(cfg) {\n        if (!cfg.hint || cfg.hintNode) return cfg.hintNode || null;\n        const node = document.createElement(\"div\");\n        node.className = PREFIX + \"-hint\";\n        node.textContent = cfg.hint;\n        cfg.wrapper.appendChild(node);\n        cfg.hintNode = node;\n        return node;\n    }\n\n    function visualControl(cfg) {\n        if (cfg.el && cfg.el.tagName === \"SELECT\" && cfg.el._gasCustom) return cfg.el._gasCustom.shell;\n        return cfg.el;\n    }\n\n    function clearFieldError(cfg) {\n        if (!cfg || !cfg.el) return;\n        const err = ensureErrorNode(cfg);\n        err.textContent = \"\";\n        err.classList.remove(PREFIX + \"-validation-visible\");\n        cfg.wrapper.classList.remove(PREFIX + \"-field-has-error\", PREFIX + \"-consent-error\");\n        cfg.el.classList.remove(PREFIX + \"-input-error\");\n        cfg.el.removeAttribute(\"aria-invalid\");\n        if (cfg.el._gasCustom) {\n            cfg.el._gasCustom.shell.classList.remove(\"gas-select-error\");\n            cfg.el._gasCustom.trigger.removeAttribute(\"aria-invalid\");\n        }\n    }\n\n    function showFieldError(cfg, message) {\n        const err = ensureErrorNode(cfg);\n        err.textContent = message;\n        err.classList.add(PREFIX + \"-validation-visible\");\n        cfg.wrapper.classList.add(PREFIX + \"-field-has-error\");\n        cfg.el.setAttribute(\"aria-invalid\", \"true\");\n        if (cfg.el.type === \"checkbox\") {\n            cfg.wrapper.classList.add(PREFIX + \"-consent-error\");\n        } else if (cfg.el.tagName === \"SELECT\" && cfg.el._gasCustom) {\n            cfg.el._gasCustom.shell.classList.add(\"gas-select-error\");\n            cfg.el._gasCustom.trigger.setAttribute(\"aria-invalid\", \"true\");\n        } else {\n            cfg.el.classList.add(PREFIX + \"-input-error\");\n        }\n    }\n\n    function normalizeValue(cfg) {\n        if (!cfg.el || typeof cfg.el.value !== \"string\") return;\n        if (cfg.rule === \"class\") cfg.el.value = cfg.el.value.replace(\/\\s+\/g, \"\").toUpperCase();\n        if ([\"text\", \"email\", \"name\", \"lastname\", \"fullname\", \"zip\", \"phone\"].includes(cfg.rule)) cfg.el.value = cfg.el.value.trim();\n    }\n\n    function isCfgActive(cfg) {\n        if (!cfg || !cfg.el || cfg.el.disabled) return false;\n        try { return cfg.active ? !!cfg.active() : true; } catch (e) { return true; }\n    }\n\n    function isCfgRequired(cfg) {\n        try { return cfg.required ? !!cfg.required() : false; } catch (e) { return false; }\n    }\n\n    function checkCfg(cfg, normalize) {\n        if (!isCfgActive(cfg)) return { valid: true, message: \"\" };\n        if (normalize) normalizeValue(cfg);\n        const required = isCfgRequired(cfg);\n        const el = cfg.el;\n        const value = typeof el.value === \"string\" ? el.value.trim() : \"\";\n        let valid = true;\n\n        if (cfg.rule === \"checkbox\") valid = !required || el.checked;\n        else if (required && !value) valid = false;\n        else if (!value && !required) valid = true;\n        else if (cfg.rule === \"select\") valid = !!value;\n        else if (cfg.rule === \"class\") valid = \/^[1-8][A-Za-z]$\/.test(value);\n        else if (cfg.rule === \"email\") valid = \/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$\/.test(value);\n        else if (cfg.rule === \"zip\") valid = \/^\\d{2}-\\d{3}$\/.test(value);\n        else if (cfg.rule === \"phone\") {\n            const digits = value.replace(\/\\D\/g, \"\");\n            valid = digits.length === 9 || (digits.length === 11 && digits.startsWith(\"48\"));\n        }\n        else if (cfg.rule === \"fullname\") valid = \/^\\S+\\s+\\S+\/.test(value);\n        else valid = !required || value.length > 0;\n\n        return { valid, message: cfg.message };\n    }\n\n    function validateCfg(cfg, show, normalize) {\n        const result = checkCfg(cfg, normalize);\n        if (!isCfgActive(cfg)) {\n            clearFieldError(cfg);\n            return true;\n        }\n        if (result.valid) clearFieldError(cfg);\n        else if (show) showFieldError(cfg, result.message);\n        return result.valid;\n    }\n\n    function validateAll(show) {\n        let first = null;\n        configs.forEach(function (cfg) {\n            const ok = validateCfg(cfg, show, true);\n            if (!ok && !first) first = cfg;\n        });\n        return first;\n    }\n\n    function fieldOnlyValid() {\n        return configs.every(function (cfg) { return checkCfg(cfg, false).valid; });\n    }\n\n    let uiTimer = null;\n    function scheduleButtonRefresh() {\n        window.clearTimeout(uiTimer);\n        uiTimer = window.setTimeout(refreshSubmitState, 90);\n    }\n\n    function refreshSubmitState() {\n        const valid = fieldOnlyValid() && captchaSolved && form.dataset.submitting !== \"true\" && form.dataset.registered !== \"true\";\n        submitButton.disabled = !valid;\n        submitButton.setAttribute(\"aria-disabled\", valid ? \"false\" : \"true\");\n    }\n\n    function bindValidation() {\n        configs.forEach(function (cfg) {\n            ensureHintNode(cfg);\n            ensureErrorNode(cfg);\n            cfg.blurred = false;\n\n            const focusEl = cfg.el._gasCustom ? cfg.el._gasCustom.trigger : cfg.el;\n            if (focusEl) {\n                focusEl.addEventListener(\"blur\", function () {\n                    cfg.blurred = true;\n                    validateCfg(cfg, true, true);\n                    refreshSubmitState();\n                });\n            }\n\n            cfg.el.addEventListener(\"input\", function () {\n                if (cfg.blurred) {\n                    window.clearTimeout(cfg.inputTimer);\n                    cfg.inputTimer = window.setTimeout(function () { validateCfg(cfg, true, false); }, 140);\n                }\n                if (form.dataset.submitting !== \"true\") clearFormStatus();\n                scheduleButtonRefresh();\n            });\n\n            cfg.el.addEventListener(\"change\", function () {\n                cfg.blurred = true;\n                validateCfg(cfg, true, true);\n                if (form.dataset.submitting !== \"true\") clearFormStatus();\n                refreshSubmitState();\n            });\n        });\n    }\n\n    function focusInvalid(cfg) {\n        if (!cfg) return;\n        const target = cfg.el._gasCustom ? cfg.el._gasCustom.trigger : cfg.el;\n        cfg.wrapper.scrollIntoView({ behavior: \"smooth\", block: \"center\" });\n        window.setTimeout(function () { if (target) target.focus({ preventScroll: true }); }, 180);\n    }\n\n    function setFormStatus(type, text) {\n        if (!statusBox) return;\n        statusBox.className = PREFIX + \"-status\";\n        statusBox.textContent = text || \"\";\n        if (type) statusBox.classList.add(\"gas-status-\" + type);\n    }\n\n    function clearFormStatus() { setFormStatus(\"\", \"\"); }\n\n    function ensureRecaptcha(attempt) {\n        attempt = attempt || 0;\n        if (window.grecaptcha && typeof window.grecaptcha.render === \"function\") {\n            const run = function () {\n                if (recaptchaWidgetId !== null) return;\n                const c = document.getElementById(RECAPTCHA_CONTAINER_ID);\n                if (!c) return;\n                try {\n                    recaptchaWidgetId = window.grecaptcha.render(c, {\n                        sitekey: RECAPTCHA_SITE_KEY,\n                        callback: function () { captchaSolved = true; refreshSubmitState(); },\n                        \"expired-callback\": function () { captchaSolved = false; refreshSubmitState(); },\n                        \"error-callback\": function () { captchaSolved = false; refreshSubmitState(); }\n                    });\n                } catch (e) {}\n            };\n            if (typeof window.grecaptcha.ready === \"function\") window.grecaptcha.ready(run); else run();\n            return;\n        }\n        let script = document.querySelector('script[src*=\"google.com\/recaptcha\/api.js\"]');\n        if (!script) {\n            script = document.createElement(\"script\");\n            script.src = \"https:\/\/www.google.com\/recaptcha\/api.js?render=explicit\";\n            script.async = true;\n            script.defer = true;\n            document.head.appendChild(script);\n        }\n        if (attempt < 80) window.setTimeout(function () { ensureRecaptcha(attempt + 1); }, 100);\n    }\n\n    function resetRecaptcha() {\n        captchaSolved = false;\n        if (window.grecaptcha && recaptchaWidgetId !== null && typeof window.grecaptcha.reset === \"function\") {\n            try { window.grecaptcha.reset(recaptchaWidgetId); } catch (e) {}\n        }\n        refreshSubmitState();\n    }\n\n    function addCommitField(value) {\n        let c = form.querySelector('input[data-gas-commit=\"1\"]');\n        if (!c) {\n            c = document.createElement(\"input\");\n            c.type = \"hidden\";\n            c.name = \"commit\";\n            c.dataset.gasCommit = \"1\";\n            form.appendChild(c);\n        }\n        c.value = value;\n        return c;\n    }\n\n    function clearValidationUi() {\n        configs.forEach(function (cfg) { cfg.blurred = false; clearFieldError(cfg); });\n    }\n\n    document.addEventListener(\"click\", function (event) {\n        if (!event.target.closest(\".gas-select-shell\")) {\n            popup.querySelectorAll(\".gas-select-open\").forEach(function (node) {\n                node.classList.remove(\"gas-select-open\");\n                const t = node.querySelector(\".gas-select-trigger\");\n                if (t) t.setAttribute(\"aria-expanded\", \"false\");\n            });\n        }\n    });\n\n\n    function createNativeTestWindow(){\n        const w = Math.min(1080, Math.max(760, screen.availWidth - 120));\n        const h = Math.min(940, Math.max(720, screen.availHeight - 90));\n\n        testWindow = window.open(\n            \"about:blank\",\n            \"gas-masters-test-v13\",\n            \"popup=yes,width=\" + w + \",height=\" + h + \",resizable=yes,scrollbars=yes\"\n        );\n\n        if (!testWindow) {\n            return null;\n        }\n\n        \/*\n         * Pokazujemy tylko kr\u00f3tki, estetyczny ekran oczekiwania.\n         * Nast\u0119pnie ca\u0142y dokument tego okna zostanie zast\u0105piony\n         * natywn\u0105 odpowiedzi\u0105 LangLion. Nie u\u017cywamy iframe,\n         * poniewa\u017c test LangLion musi dzia\u0142a\u0107 w tym samym,\n         * top-level kontek\u015bcie sesji co rejestracja.\n         *\/\n        try {\n            const d = testWindow.document;\n            d.title = \"Go Ahead Masters \u2013 test poziomuj\u0105cy\";\n            d.documentElement.lang = \"pl\";\n            d.body.style.margin = \"0\";\n            d.body.style.minHeight = \"100vh\";\n            d.body.style.display = \"flex\";\n            d.body.style.alignItems = \"center\";\n            d.body.style.justifyContent = \"center\";\n            d.body.style.background = \"#0b2342\";\n            d.body.style.fontFamily = \"Arial,Helvetica,sans-serif\";\n\n            const box = d.createElement(\"div\");\n            box.style.maxWidth = \"560px\";\n            box.style.margin = \"24px\";\n            box.style.padding = \"28px 30px\";\n            box.style.borderRadius = \"18px\";\n            box.style.background = \"#fff\";\n            box.style.boxShadow = \"0 24px 80px rgba(0,0,0,.30)\";\n            box.style.textAlign = \"center\";\n\n            const title = d.createElement(\"strong\");\n            title.textContent = \"Uruchamiamy test Go Ahead Masters\u2026\";\n            title.style.display = \"block\";\n            title.style.fontSize = \"20px\";\n            title.style.color = \"#194383\";\n            title.style.marginBottom = \"8px\";\n\n            const text = d.createElement(\"span\");\n            text.textContent = \"Za chwil\u0119 pojawi si\u0119 test poziomuj\u0105cy LangLion. Nie zamykaj tego okna do zako\u0144czenia testu.\";\n            text.style.color = \"#64748b\";\n            text.style.fontSize = \"14px\";\n            text.style.lineHeight = \"1.55\";\n\n            box.appendChild(title);\n            box.appendChild(text);\n            d.body.appendChild(box);\n        } catch (e) {}\n\n        return testWindow;\n    }\n\n    function submitToNativeTestWindow(){\n        const win = createNativeTestWindow();\n\n        if (!win) {\n            setFormStatus(\n                \"error\",\n                \"Przegl\u0105darka zablokowa\u0142a okno testu. Zezw\u00f3l na wyskakuj\u0105ce okna dla goaheadschool.pl i spr\u00f3buj ponownie.\"\n            );\n            refreshSubmitState();\n            return false;\n        }\n\n        \/*\n         * Kluczowa poprawka:\n         * wysy\u0142amy TEN SAM formularz bezpo\u015brednio do g\u0142\u00f3wnego\n         * dokumentu nowego okna. LangLion sam przekieruje go na\n         * \/new_test_view i zachowa sesj\u0119 rejestracja -> test.\n         *\/\n        form.setAttribute(\"target\", \"gas-masters-test-v13\");\n\n        let commitField = form.querySelector('input[data-gas-native-commit=\"1\"]');\n        if (!commitField) {\n            commitField = document.createElement(\"input\");\n            commitField.type = \"hidden\";\n            commitField.name = \"commit\";\n            commitField.dataset.gasNativeCommit = \"1\";\n            form.appendChild(commitField);\n        }\n        commitField.value = \"Zapisz\";\n\n        try {\n            HTMLFormElement.prototype.submit.call(form);\n        } catch (error) {\n            try { win.close(); } catch (e) {}\n            setFormStatus(\n                \"error\",\n                \"Nie uda\u0142o si\u0119 przekaza\u0107 rejestracji do LangLion. Spr\u00f3buj ponownie.\"\n            );\n            refreshSubmitState();\n            return false;\n        }\n\n        return true;\n    }\n\n    function success(){\n        if(form.dataset.submitting!==\"true\")return; form.dataset.submitting=\"false\";form.dataset.registered=\"true\";\n        setFormStatus(\"success\",\"Dzi\u0119kujemy. Rejestracja i test zosta\u0142y zako\u0144czone. Formularz zamknie si\u0119 automatycznie za 5 sekund.\");submitText.textContent=\"Rejestracja zako\u0144czona \u2713\";submitButton.disabled=true;\n        form.reset();syncEmail();updateCourseFields();updateSiblingField();popup.querySelectorAll(\"select\").forEach(syncSelect);clearValidationUi();resetRecaptcha();\n        window.clearTimeout(closeTimer);closeTimer=window.setTimeout(function(){closePopup();form.dataset.registered=\"false\";submitText.textContent=\"Zapisz dziecko na kurs\";clearFormStatus();refreshSubmitState();},5000);\n    }\n\n    window.addEventListener(\"message\",function(event){if(event.origin!==window.location.origin)return;if(testWindow&&event.source!==testWindow)return;if(event.data&&(event.data.type===\"GAS_MASTERS_TEST_SUCCESS\"||event.data.type===\"GAS_LANGLION_SUCCESS\"))success();});\n\n    form.setAttribute(\"novalidate\",\"novalidate\");\n    form.addEventListener(\"submit\",function(event){\n        event.preventDefault(); if(form.dataset.submitting===\"true\"||form.dataset.registered===\"true\")return; updateCourseFields();updateSiblingField();syncEmail(); const first=validateAll(true); if(first||!captchaSolved){if(first)focusInvalid(first);else setFormStatus(\"error\",\"Potwierd\u017a reCAPTCHA przed wys\u0142aniem formularza.\");refreshSubmitState();return;}\n        if(!submitToNativeTestWindow())return;\n        form.dataset.submitting=\"true\";setFormStatus(\"loading\",\"Rejestracja zosta\u0142a przekazana do LangLion. Test otworzy\u0142 si\u0119 w osobnym oknie.\");submitText.textContent=\"Test w toku\u2026\";submitButton.disabled=true;\n    });\n\n    let oldBodyOverflow=\"\",previouslyFocused=null;\n    function openPopup(){previouslyFocused=document.activeElement;oldBodyOverflow=document.body.style.overflow;document.body.style.overflow=\"hidden\";popup.classList.add(\"gas-masters-active\");popup.setAttribute(\"aria-hidden\",\"false\");if(scrollArea)scrollArea.scrollTop=0;updateCourseFields();updateSiblingField();ensureRecaptcha();refreshSubmitState();}\n    function closePopup(){popup.classList.remove(\"gas-masters-active\");popup.setAttribute(\"aria-hidden\",\"true\");document.body.style.overflow=oldBodyOverflow;if(window.location.hash===popupHash)history.replaceState(null,\"\",window.location.pathname+window.location.search);if(previouslyFocused&&previouslyFocused.focus)try{previouslyFocused.focus({preventScroll:true});}catch(e){previouslyFocused.focus();}}\n    closeButton.addEventListener(\"click\",closePopup);popup.addEventListener(\"click\",function(e){if(e.target===popup)closePopup();});document.addEventListener(\"keydown\",function(e){if(e.key===\"Escape\"&&popup.classList.contains(\"gas-masters-active\"))closePopup();});document.addEventListener(\"click\",function(e){const a=e.target.closest('a[href=\"#rejestracja-masters\"]');if(!a)return;e.preventDefault();history.replaceState(null,\"\",popupHash);openPopup();});window.addEventListener(\"hashchange\",function(){if(window.location.hash===popupHash)openPopup();else if(popup.classList.contains(\"gas-masters-active\"))closePopup();});if(window.location.hash===popupHash)openPopup();\n\n    bindValidation();updateCourseFields();updateSiblingField();syncEmail();ensureRecaptcha();refreshSubmitState();\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-fab6007 elementor-widget elementor-widget-html\" data-id=\"fab6007\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!-- =========================================================\n     GO AHEAD SCHOOL\n     POPUP \u2013 ZAJ\u0118CIA INDYWIDUALNE \u2013 V18 NOWY KOD LANGLION + COMBO + RECAPTCHA FIX\n\n     Otwieranie:\n     #rejestracja-zajecia-indywidualne\n     ========================================================= -->\n\n\n<style>\n\n\/* =========================================================\n   RESET\n   ========================================================= *\/\n\n#gas-individual-popup,\n#gas-individual-popup * {\n    box-sizing: border-box;\n}\n\n\n\/* =========================================================\n   OVERLAY\n   ========================================================= *\/\n\n#gas-individual-popup {\n    position: fixed;\n    inset: 0;\n    z-index: 999999;\n\n    display: flex;\n    align-items: center;\n    justify-content: center;\n\n    padding: 24px;\n\n    background: rgba(7, 22, 43, .68);\n\n    backdrop-filter: blur(5px);\n    -webkit-backdrop-filter: blur(5px);\n\n    opacity: 0;\n    visibility: hidden;\n    pointer-events: none;\n\n    transition:\n        opacity .25s ease,\n        visibility .25s ease;\n}\n\n\n#gas-individual-popup.gas-individual-active {\n    opacity: 1;\n    visibility: visible;\n    pointer-events: auto;\n}\n\n\n\/* =========================================================\n   OKNO\n   ========================================================= *\/\n\n#gas-individual-popup .gas-individual-window {\n    position: relative;\n\n    width: min(650px, 100%);\n    max-height: calc(100vh - 48px);\n\n    display: flex;\n    flex-direction: column;\n\n    background: #ffffff;\n\n    border-radius: 22px;\n\n    overflow: hidden;\n\n    box-shadow:\n        0 25px 80px rgba(0,0,0,.32);\n\n    transform:\n        translateY(18px)\n        scale(.985);\n\n    transition:\n        transform .25s ease;\n}\n\n\n#gas-individual-popup.gas-individual-active\n.gas-individual-window {\n    transform:\n        translateY(0)\n        scale(1);\n}\n\n\n\/* =========================================================\n   HEADER\n   ========================================================= *\/\n\n#gas-individual-popup .gas-individual-top {\n    position: relative;\n\n    flex: 0 0 auto;\n\n    width: 100%;\n    height: 235px;\n\n    background-color: #07346f;\n\n    background-image:\n        url('https:\/\/goaheadschool.pl\/wp-content\/uploads\/2026\/08\/go_ahead_indywidualne_form.webp');\n\n    background-size: cover;\n    background-position: left center;\n    background-repeat: no-repeat;\n\n    overflow: hidden;\n}\n\n\n\/* =========================================================\n   X\n   ========================================================= *\/\n\n#gas-individual-popup .gas-individual-close {\n    position: absolute;\n\n    top: 15px;\n    right: 15px;\n\n    z-index: 20;\n\n    width: 42px;\n    height: 42px;\n\n    display: flex;\n    align-items: center;\n    justify-content: center;\n\n    padding: 0;\n    margin: 0;\n\n    border:\n        1px solid rgba(255,255,255,.38);\n\n    border-radius: 50%;\n\n    background:\n        rgba(5,22,45,.43);\n\n    backdrop-filter: blur(8px);\n    -webkit-backdrop-filter: blur(8px);\n\n    color: #ffffff;\n\n    font-family:\n        Arial,\n        Helvetica,\n        sans-serif;\n\n    font-size: 28px;\n    font-weight: 300;\n    line-height: 1;\n\n    cursor: pointer;\n\n    transition:\n        background .2s ease,\n        transform .2s ease;\n}\n\n\n#gas-individual-popup .gas-individual-close:hover {\n    background:\n        rgba(5,22,45,.72);\n\n    transform:\n        rotate(5deg);\n}\n\n\n\/* =========================================================\n   SCROLL\n   ========================================================= *\/\n\n#gas-individual-popup .gas-individual-scroll {\n    flex: 1 1 auto;\n\n    min-height: 0;\n\n    overflow-y: auto;\n    overflow-x: hidden;\n\n    background: #ffffff;\n\n    scrollbar-width: thin;\n\n    scrollbar-color:\n        rgba(25,67,131,.42)\n        transparent;\n}\n\n\n#gas-individual-popup\n.gas-individual-scroll::-webkit-scrollbar {\n    width: 7px;\n}\n\n\n#gas-individual-popup\n.gas-individual-scroll::-webkit-scrollbar-track {\n    background: transparent;\n}\n\n\n#gas-individual-popup\n.gas-individual-scroll::-webkit-scrollbar-thumb {\n    background:\n        rgba(25,67,131,.38);\n\n    border-radius: 100px;\n\n    border: 2px solid transparent;\n\n    background-clip: padding-box;\n}\n\n\n#gas-individual-popup\n.gas-individual-scroll::-webkit-scrollbar-button {\n    display: none;\n\n    width: 0;\n    height: 0;\n}\n\n\n\/* =========================================================\n   FORMULARZ\n   ========================================================= *\/\n\n#gas-individual-popup .gas-individual-form {\n    padding:\n        30px\n        32px\n        36px;\n\n    font-family:\n        Arial,\n        Helvetica,\n        sans-serif;\n\n    color: #263445;\n}\n\n\n\/* =========================================================\n   SEKCJE\n   ========================================================= *\/\n\n#gas-individual-popup .gas-individual-section-title {\n    margin:\n        3px\n        0\n        22px;\n\n    color: #194383;\n\n    font-size: 18px;\n    font-weight: 700;\n    line-height: 1.3;\n}\n\n\n#gas-individual-popup .gas-individual-divider {\n    width: 100%;\n    height: 1px;\n\n    margin:\n        30px\n        0;\n\n    background: #e7ecf2;\n}\n\n\n\/* =========================================================\n   POLA\n   ========================================================= *\/\n\n#gas-individual-popup .gas-individual-field {\n    position: relative;\n\n    margin-bottom: 21px;\n}\n\n\n#gas-individual-popup\n.gas-individual-field > label {\n    display: block;\n\n    margin-bottom: 7px;\n\n    color: #334155;\n\n    font-size: 14px;\n    font-weight: 600;\n    line-height: 1.4;\n}\n\n\n#gas-individual-popup .gas-required {\n    color: #df2929;\n}\n\n\n\/* =========================================================\n   INPUTY\n   ========================================================= *\/\n\n#gas-individual-popup\n.gas-individual-field input[type=\"text\"],\n\n#gas-individual-popup\n.gas-individual-field input[type=\"email\"],\n\n#gas-individual-popup\n.gas-individual-field input[type=\"tel\"] {\n\n    display: block;\n\n    width: 100%;\n    min-height: 48px;\n\n    padding:\n        10px\n        13px;\n\n    margin: 0;\n\n    border:\n        1px solid #cfd7e3;\n\n    border-radius: 8px;\n\n    outline: none;\n\n    background: #ffffff;\n\n    color: #1f2937;\n\n    font-family:\n        Arial,\n        Helvetica,\n        sans-serif;\n\n    font-size: 16px;\n\n    box-shadow: none;\n\n    transition:\n        border-color .18s ease,\n        box-shadow .18s ease;\n}\n\n\n#gas-individual-popup\n.gas-individual-field input:focus {\n    border-color: #194383;\n\n    box-shadow:\n        0 0 0 3px\n        rgba(25,67,131,.11);\n}\n\n\n\/* =========================================================\n   POLA WARUNKOWE\n   ========================================================= *\/\n\n#gas-individual-popup\n.gas-individual-conditional {\n    display: none;\n}\n\n\n#gas-individual-popup\n.gas-individual-conditional.gas-individual-visible {\n    display: block;\n\n    animation:\n        gasIndividualShow\n        .18s ease;\n}\n\n\n@keyframes gasIndividualShow {\n\n    from {\n        opacity: 0;\n\n        transform:\n            translateY(-4px);\n    }\n\n    to {\n        opacity: 1;\n\n        transform:\n            translateY(0);\n    }\n\n}\n\n\n\/* =========================================================\n   SEKCJA RODZICA\n   ========================================================= *\/\n\n#gas-individual-popup\n.gas-individual-parent-section {\n    display: none;\n}\n\n\n#gas-individual-popup\n.gas-individual-parent-section.gas-individual-parent-visible {\n    display: block;\n\n    animation:\n        gasIndividualShow\n        .18s ease;\n}\n\n\n\/* =========================================================\n   SWITCH\n   ========================================================= *\/\n\n#gas-individual-popup\n.gas-individual-switch-row {\n    display: flex;\n\n    align-items: center;\n    justify-content: space-between;\n\n    gap: 20px;\n\n    width: 100%;\n\n    min-height: 58px;\n\n    padding:\n        10px\n        0;\n\n    margin-bottom: 21px;\n}\n\n\n#gas-individual-popup\n.gas-individual-switch-text {\n    color: #334155;\n\n    font-size: 15px;\n    font-weight: 600;\n    line-height: 1.4;\n}\n\n\n#gas-individual-popup\n.gas-individual-switch-label {\n    position: relative;\n\n    display: inline-block;\n\n    flex: 0 0 auto;\n\n    width: 52px;\n    height: 30px;\n\n    cursor: pointer;\n}\n\n\n#gas-individual-popup\n.gas-individual-switch-label\ninput {\n    position: absolute;\n\n    width: 1px;\n    height: 1px;\n\n    opacity: 0;\n\n    pointer-events: none;\n}\n\n\n#gas-individual-popup\n.gas-individual-switch-slider {\n    position: absolute;\n\n    inset: 0;\n\n    border-radius: 100px;\n\n    background: #cbd4df;\n\n    box-shadow:\n        inset 0 0 0 1px\n        rgba(0,0,0,.06);\n\n    transition:\n        background .2s ease,\n        box-shadow .2s ease;\n}\n\n\n#gas-individual-popup\n.gas-individual-switch-slider::before {\n    content: \"\";\n\n    position: absolute;\n\n    width: 24px;\n    height: 24px;\n\n    left: 3px;\n    top: 3px;\n\n    border-radius: 50%;\n\n    background: #ffffff;\n\n    box-shadow:\n        0 2px 5px\n        rgba(0,0,0,.2);\n\n    transition:\n        transform .2s ease;\n}\n\n\n#gas-individual-popup\n.gas-individual-switch-label\ninput:checked\n+\n.gas-individual-switch-slider {\n    background: #194383;\n}\n\n\n#gas-individual-popup\n.gas-individual-switch-label\ninput:checked\n+\n.gas-individual-switch-slider::before {\n    transform:\n        translateX(22px);\n}\n\n\n#gas-individual-popup\n.gas-individual-switch-label\ninput:focus-visible\n+\n.gas-individual-switch-slider {\n    box-shadow:\n        0 0 0 3px\n        rgba(25,67,131,.14);\n}\n\n\n\/* =========================================================\n   TECHNICZNY isAdult\n   ========================================================= *\/\n\n#gas-individual-is-adult {\n    position: absolute !important;\n\n    left: -9999px !important;\n\n    width: 1px !important;\n    height: 1px !important;\n\n    opacity: 0 !important;\n\n    pointer-events: none !important;\n}\n\n\n\/* =========================================================\n   CUSTOM SELECT\n   ========================================================= *\/\n\n#gas-individual-popup\n.gas-native-select {\n    position: absolute !important;\n\n    left: -9999px !important;\n\n    width: 1px !important;\n    height: 1px !important;\n\n    padding: 0 !important;\n    margin: 0 !important;\n\n    opacity: 0 !important;\n\n    pointer-events: none !important;\n}\n\n\n#gas-individual-popup\n.gas-select-shell {\n    position: relative;\n\n    width: 100%;\n}\n\n\n\/* =========================================================\n   COMBO\n   ========================================================= *\/\n\n#gas-individual-popup\n.gas-select-trigger {\n    position: relative;\n\n    display: flex;\n\n    align-items: center;\n    justify-content: space-between;\n\n    width: 100%;\n    min-height: 48px;\n\n    padding:\n        10px\n        43px\n        10px\n        13px;\n\n    margin: 0;\n\n    border:\n        1px solid #cfd7e3;\n\n    border-radius: 8px;\n\n    background: #ffffff;\n\n    color: #1f2937;\n\n    font-family:\n        Arial,\n        Helvetica,\n        sans-serif;\n\n    font-size: 16px;\n    line-height: 1.4;\n\n    text-align: left;\n\n    cursor: pointer;\n\n    outline: none;\n\n    transition:\n        border-color .18s ease,\n        box-shadow .18s ease,\n        border-radius .18s ease;\n}\n\n\n#gas-individual-popup\n.gas-select-trigger:hover {\n    border-color: #aab8cb;\n}\n\n\n#gas-individual-popup\n.gas-select-trigger:focus-visible {\n    border-color: #194383;\n\n    box-shadow:\n        0 0 0 3px\n        rgba(25,67,131,.11);\n}\n\n\n#gas-individual-popup\n.gas-select-open\n.gas-select-trigger {\n    border-color: #194383;\n\n    border-radius:\n        8px 8px 0 0;\n\n    border-bottom-color:\n        #dbe3ee;\n\n    box-shadow:\n        0 0 0 3px\n        rgba(25,67,131,.08);\n}\n\n\n#gas-individual-popup\n.gas-select-value {\n    min-width: 0;\n\n    overflow: hidden;\n\n    white-space: nowrap;\n\n    text-overflow: ellipsis;\n}\n\n\n\/* =========================================================\n   STRZA\u0141KA\n   ========================================================= *\/\n\n#gas-individual-popup\n.gas-select-arrow {\n    position: absolute;\n\n    right: 16px;\n    top: 50%;\n\n    width: 8px;\n    height: 8px;\n\n    border-right:\n        2px solid #344256;\n\n    border-bottom:\n        2px solid #344256;\n\n    transform:\n        translateY(-65%)\n        rotate(45deg);\n\n    transition:\n        transform .18s ease;\n\n    pointer-events: none;\n}\n\n\n#gas-individual-popup\n.gas-select-open\n.gas-select-arrow {\n    transform:\n        translateY(-25%)\n        rotate(225deg);\n}\n\n\n\/* =========================================================\n   DROPDOWN\n   ========================================================= *\/\n\n#gas-individual-popup\n.gas-select-dropdown {\n    display: none;\n\n    width: 100%;\n\n    max-height: 240px;\n\n    overflow-y: auto;\n    overflow-x: hidden;\n\n    margin:\n        -1px\n        0\n        0;\n\n    padding:\n        5px\n        0;\n\n    border:\n        1px solid #194383;\n\n    border-top: 0;\n\n    border-radius:\n        0 0 8px 8px;\n\n    background: #ffffff;\n\n    box-shadow:\n        0 10px 22px\n        rgba(15,38,72,.12);\n\n    scrollbar-width: thin;\n\n    scrollbar-color:\n        rgba(25,67,131,.32)\n        transparent;\n}\n\n\n#gas-individual-popup\n.gas-select-open\n.gas-select-dropdown {\n    display: block;\n\n    animation:\n        gasIndividualDropdown\n        .14s ease;\n}\n\n\n@keyframes gasIndividualDropdown {\n\n    from {\n        opacity: 0;\n\n        transform:\n            translateY(-3px);\n    }\n\n    to {\n        opacity: 1;\n\n        transform:\n            translateY(0);\n    }\n\n}\n\n\n\/* =========================================================\n   OPCJE\n   ========================================================= *\/\n\n#gas-individual-popup\n.gas-select-option {\n    display: flex;\n\n    align-items: center;\n\n    width: 100%;\n\n    min-height: 39px;\n\n    padding:\n        8px\n        13px;\n\n    margin: 0;\n\n    border: none;\n    border-radius: 0;\n\n    background: transparent;\n\n    color: #1f2937;\n\n    font-family:\n        Arial,\n        Helvetica,\n        sans-serif;\n\n    font-size: 16px;\n    line-height: 1.4;\n\n    text-align: left;\n\n    cursor: pointer;\n\n    transition:\n        background .12s ease,\n        color .12s ease;\n}\n\n\n#gas-individual-popup\n.gas-select-option:hover,\n\n#gas-individual-popup\n.gas-select-option:focus {\n    outline: none;\n\n    background: #eef3fa;\n\n    color: #194383;\n}\n\n\n#gas-individual-popup\n.gas-select-option.gas-option-selected {\n    background: #194383;\n\n    color: #ffffff;\n}\n\n\n#gas-individual-popup\n.gas-select-option.gas-option-selected:hover {\n    background: #163a70;\n\n    color: #ffffff;\n}\n\n\n\/* =========================================================\n   SCROLL DROPDOWNU\n   ========================================================= *\/\n\n#gas-individual-popup\n.gas-select-dropdown::-webkit-scrollbar {\n    width: 6px;\n}\n\n\n#gas-individual-popup\n.gas-select-dropdown::-webkit-scrollbar-track {\n    background: transparent;\n}\n\n\n#gas-individual-popup\n.gas-select-dropdown::-webkit-scrollbar-thumb {\n    background:\n        rgba(25,67,131,.30);\n\n    border-radius: 100px;\n}\n\n\n#gas-individual-popup\n.gas-select-dropdown::-webkit-scrollbar-button {\n    display: none;\n\n    width: 0;\n    height: 0;\n}\n\n\n\/* =========================================================\n   B\u0141\u0104D COMBO\n   ========================================================= *\/\n\n#gas-individual-popup\n.gas-select-shell.gas-select-error\n.gas-select-trigger {\n    border-color: #df2929;\n\n    box-shadow:\n        0 0 0 3px\n        rgba(223,41,41,.09);\n}\n\n\n\/* =========================================================\n   ZGODY\n   ========================================================= *\/\n\n#gas-individual-popup\n.gas-individual-consent {\n    margin:\n        18px\n        0;\n\n    color: #475569;\n\n    font-size: 13px;\n    line-height: 1.55;\n}\n\n\n#gas-individual-popup\n.gas-individual-consent label {\n    display: flex;\n\n    align-items: flex-start;\n\n    gap: 11px;\n\n    cursor: pointer;\n}\n\n\n#gas-individual-popup\n.gas-individual-consent\ninput[type=\"checkbox\"] {\n    flex:\n        0 0 auto;\n\n    width: 18px;\n    height: 18px;\n\n    margin-top: 2px;\n\n    accent-color: #194383;\n}\n\n\n\/* =========================================================\n   RECAPTCHA\n   ========================================================= *\/\n\n#gas-individual-popup\n.gas-individual-recaptcha {\n    margin-top: 27px;\n\n    min-height: 78px;\n\n    overflow: hidden;\n}\n\n\n\/* =========================================================\n   SUBMIT\n   ========================================================= *\/\n\n#gas-individual-popup\n.gas-individual-submit-area {\n    margin-top: 28px;\n}\n\n\n#gas-individual-popup\n.gas-individual-submit {\n    display: block;\n\n    width: 100%;\n    min-height: 51px;\n\n    padding:\n        14px\n        24px;\n\n    border: none;\n\n    border-radius: 9px;\n\n    background: #194383;\n\n    color: #ffffff;\n\n    font-family:\n        Arial,\n        Helvetica,\n        sans-serif;\n\n    font-size: 16px;\n    font-weight: 700;\n\n    cursor: pointer;\n\n    box-shadow:\n        0 5px 16px\n        rgba(25,67,131,.18);\n\n    transition:\n        background .18s ease,\n        transform .15s ease;\n}\n\n\n#gas-individual-popup\n.gas-individual-submit:hover {\n    background: #123566;\n\n    transform:\n        translateY(-1px);\n}\n\n\n#gas-individual-popup\n.gas-individual-submit:disabled {\n    opacity: .68;\n\n    cursor: wait;\n}\n\n\n#gas-individual-popup\n.gas-individual-note {\n    margin-top: 14px;\n\n    text-align: center;\n\n    color: #8995a5;\n\n    font-size: 12px;\n}\n\n\n\/* =========================================================\n   STATUS \/ B\u0141\u0118DY WYSY\u0141KI\n   ========================================================= *\/\n\n#gas-individual-popup\n.gas-individual-status {\n    display: none;\n\n    margin:\n        0\n        0\n        18px;\n\n    padding:\n        12px\n        14px;\n\n    border-radius: 9px;\n\n    font-size: 13px;\n    font-weight: 600;\n    line-height: 1.5;\n}\n\n#gas-individual-popup\n.gas-individual-status.gas-status-loading {\n    display: block;\n\n    background: #f4f7fb;\n\n    border:\n        1px solid #dbe4ef;\n\n    color: #334155;\n}\n\n#gas-individual-popup\n.gas-individual-status.gas-status-error {\n    display: block;\n\n    background: #fff2f2;\n\n    border:\n        1px solid #f2c8c8;\n\n    color: #a42525;\n}\n\n#gas-individual-popup\n.gas-individual-status.gas-status-success {\n    display: block;\n\n    background: #eef8f1;\n\n    border:\n        1px solid #c9e6d0;\n\n    color: #246537;\n}\n\n#gas-individual-popup\n.gas-individual-field input.gas-individual-input-error {\n    border-color: #df2929;\n\n    box-shadow:\n        0 0 0 3px\n        rgba(223,41,41,.09);\n}\n\n#gas-individual-popup\n.gas-individual-consent.gas-individual-consent-error {\n    padding:\n        10px\n        12px;\n\n    border-radius: 8px;\n\n    background: #fff5f5;\n\n    outline:\n        1px solid #f1caca;\n}\n\n#gas-individual-popup\n.gas-individual-submit[aria-disabled=\"true\"] {\n    cursor: wait;\n\n    opacity: .78;\n\n    transform: none;\n}\n\n#gas-individual-popup\n.gas-individual-submit:disabled {\n    cursor: default;\n\n    opacity: .78;\n\n    transform: none;\n}\n\n\n\n\n\/* =========================================================\n   WALIDACJA LIVE \/ PODPOWIEDZI V3\n   ========================================================= *\/\n\n#gas-individual-popup .gas-individual-hint {\n    margin: 6px 2px 0;\n    color: #94a3b8;\n    font-size: 12px;\n    font-weight: 400;\n    line-height: 1.45;\n}\n\n#gas-individual-popup .gas-individual-validation-message {\n    display: none;\n    margin: 6px 2px 0;\n    color: #c62828;\n    font-size: 12px;\n    font-weight: 600;\n    line-height: 1.45;\n}\n\n#gas-individual-popup .gas-individual-validation-message.gas-individual-validation-visible {\n    display: block;\n}\n\n#gas-individual-popup .gas-individual-field.gas-individual-field-has-error > label {\n    color: #a92323;\n}\n\n#gas-individual-popup .gas-individual-consent.gas-individual-field-has-error {\n    padding: 10px 12px;\n    border-radius: 8px;\n    background: #fff5f5;\n    outline: 1px solid #f1caca;\n}\n\n\/* =========================================================\n   MOBILE\n   ========================================================= *\/\n\n@media (max-width: 600px) {\n\n    #gas-individual-popup {\n        padding: 10px;\n    }\n\n\n    #gas-individual-popup\n    .gas-individual-window {\n        max-height:\n            calc(100vh - 20px);\n\n        border-radius: 16px;\n    }\n\n\n    #gas-individual-popup\n    .gas-individual-top {\n        height: 175px;\n    }\n\n\n    #gas-individual-popup\n    .gas-individual-close {\n        top: 12px;\n        right: 12px;\n\n        width: 39px;\n        height: 39px;\n    }\n\n\n    #gas-individual-popup\n    .gas-individual-form {\n        padding:\n            24px\n            20px\n            30px;\n    }\n\n\n    #gas-individual-popup\n    .gas-select-option {\n        min-height: 44px;\n    }\n\n\n    #gas-individual-popup\n    .gas-individual-recaptcha {\n        transform:\n            scale(.88);\n\n        transform-origin:\n            left top;\n\n        width:\n            calc(100% \/ .88);\n\n        margin-bottom:\n            -8px;\n    }\n\n}\n\n\n@media (max-width:365px) {\n\n    #gas-individual-popup\n    .gas-individual-recaptcha {\n        transform:\n            scale(.80);\n\n        width:\n            calc(100% \/ .80);\n\n        margin-bottom:\n            -15px;\n    }\n\n}\n\n<\/style>\n\n\n\n<!-- =========================================================\n     POPUP\n     ========================================================= -->\n\n<div\n    id=\"gas-individual-popup\"\n    aria-hidden=\"true\"\n>\n\n    <div\n        class=\"gas-individual-window\"\n        role=\"dialog\"\n        aria-modal=\"true\"\n        aria-label=\"Formularz rejestracji na zaj\u0119cia indywidualne\"\n    >\n\n\n        <!-- HEADER -->\n\n        <div class=\"gas-individual-top\">\n\n            <button\n                type=\"button\"\n                class=\"gas-individual-close\"\n                aria-label=\"Zamknij formularz\"\n            >\n                \u00d7\n            <\/button>\n\n        <\/div>\n\n\n\n        <!-- SCROLL -->\n\n        <div class=\"gas-individual-scroll\">\n\n            <div class=\"gas-individual-form\">\n\n\n                <form\n                    action=\"https:\/\/goahead.langlion.com\/registration\/registrate\"\n                    method=\"post\"\n                    id=\"gas-individual-form\"\n                >\n\n\n                    <!-- =====================================\n                         LANGLION\n                         ===================================== -->\n\n                    <input\n                        type=\"hidden\"\n                        name=\"registrateParent\"\n                        value=\"1\"\n                    >\n\n\n                    <input\n                        type=\"hidden\"\n                        name=\"lang\"\n                        value=\"pl_PL\"\n                    >\n\n\n                    <input\n                        type=\"hidden\"\n                        name=\"registrationFormId\"\n                        value=\"6\"\n                    >\n\n\n                    <input\n                        type=\"hidden\"\n                        name=\"school_id\"\n                        value=\"1\"\n                    >\n\n\n                    <!--\n                         J\u0119zyk kursu zgodny z generatorem LangLion.\n                         W systemie Go Ahead School language_id=1 = angielski.\n                         Pole pozostaje techniczne i niewidoczne.\n                    -->\n\n                    <input\n                        type=\"hidden\"\n                        name=\"language_id\"\n                        id=\"gas-individual-language-id\"\n                        value=\"1\"\n                        special=\"J\u0119zyk\"\n                    >\n\n\n\n\n                    <!--\n                         isAdult = 1\n                         oznacza brak konta rodzica\n                    -->\n\n                    <input\n                        type=\"checkbox\"\n                        name=\"isAdult\"\n                        id=\"gas-individual-is-adult\"\n                        value=\"1\"\n                        checked\n                    >\n\n                    <!-- Techniczne pole z aktualnego kodu LangLion -->\n                    <input\n                        type=\"hidden\"\n                        name=\"customField7\"\n                        id=\"gas-individual-daycare\"\n                        value=\"\"\n                    >\n\n\n\n                    <!-- =====================================\n                         1. INFORMACJE O KURSIE\n                         ===================================== -->\n\n                    <div\n                        class=\"gas-individual-section-title\"\n                    >\n                        Informacje o kursie\n                    <\/div>\n\n\n\n                    <!-- SWITCH -->\n\n                    <div\n                        class=\"gas-individual-switch-row\"\n                    >\n\n                        <div\n                            class=\"gas-individual-switch-text\"\n                        >\n                            Zarejestruj swoje dziecko\n                        <\/div>\n\n\n                        <label\n                            class=\"gas-individual-switch-label\"\n                        >\n\n                            <input\n                                type=\"checkbox\"\n                                id=\"gas-individual-child-switch\"\n                                aria-label=\"Zarejestruj swoje dziecko\"\n                            >\n\n\n                            <span\n                                class=\"gas-individual-switch-slider\"\n                            ><\/span>\n\n                        <\/label>\n\n                    <\/div>\n\n\n\n                    <!-- FORMA ZAJ\u0118\u0106 -->\n\n                    <div\n                        class=\"gas-individual-field\"\n                    >\n\n                        <label\n                            for=\"gas-individual-course-type\"\n                        >\n\n                            Forma zaj\u0119\u0107 indywidualnych\n\n                            <span class=\"gas-required\">*<\/span>\n\n                        <\/label>\n\n\n                        <select\n                            name=\"customField14\"\n                            id=\"gas-individual-course-type\"\n                            required\n                        >\n\n                            <option value=\"\">\n                                Wybierz\n                            <\/option>\n\n\n                            <option value=\"24\">\n                                W Szkole Podstawowej nr 316\n                            <\/option>\n\n\n                            <option value=\"25\">\n                                Z dojazdem do kursanta\n                            <\/option>\n\n\n                            <option value=\"26\">\n                                Zaj\u0119cia online\n                            <\/option>\n\n                        <\/select>\n\n                    <\/div>\n\n\n\n                    <div class=\"gas-individual-divider\"><\/div>\n\n\n\n                    <!-- =====================================\n                         2. DANE KURSANTA \/ DZIECKA\n                         ===================================== -->\n\n                    <div\n                        class=\"gas-individual-section-title\"\n                        id=\"gas-individual-participant-title\"\n                    >\n                        Dane kursanta\n                    <\/div>\n\n\n\n                    <!-- IMI\u0118 -->\n\n                    <div\n                        class=\"gas-individual-field\"\n                    >\n\n                        <label\n                            for=\"gas-individual-name\"\n                        >\n\n                            Imi\u0119\n\n                            <span class=\"gas-required\">*<\/span>\n\n                        <\/label>\n\n\n                        <input\n                            type=\"text\"\n                            name=\"name\"\n                            id=\"gas-individual-name\"\n                            autocomplete=\"off\"\n                            required\n                        >\n\n                    <\/div>\n\n\n\n                    <!-- NAZWISKO -->\n\n                    <div\n                        class=\"gas-individual-field\"\n                    >\n\n                        <label\n                            for=\"gas-individual-lastname\"\n                        >\n\n                            Nazwisko\n\n                            <span class=\"gas-required\">*<\/span>\n\n                        <\/label>\n\n\n                        <input\n                            type=\"text\"\n                            name=\"lastName\"\n                            id=\"gas-individual-lastname\"\n                            autocomplete=\"off\"\n                            required\n                        >\n\n                    <\/div>\n\n\n\n                    <!-- DANE DODATKOWE KURSANTA\n                         Widoczne tylko, gdy kursant rejestruje sam siebie.\n                         Przy rejestracji dziecka pole e-mail pozostaje\n                         technicznie aktywne i jest uzupe\u0142niane adresem rodzica.\n                    -->\n\n                    <div\n                        class=\"gas-individual-field gas-individual-conditional\"\n                        id=\"gas-individual-mobile-field\"\n                    >\n                        <label for=\"gas-individual-mobile\">\n                            Tel. kom\u00f3rkowy\n                            <span class=\"gas-required\">*<\/span>\n                        <\/label>\n\n                        <input\n                            type=\"tel\"\n                            name=\"mobile\"\n                            id=\"gas-individual-mobile\"\n                            autocomplete=\"tel\"\n                        >\n                    <\/div>\n\n\n                    <div\n                        class=\"gas-individual-field gas-individual-conditional\"\n                        id=\"gas-individual-email-field\"\n                    >\n                        <label for=\"gas-individual-email\">\n                            Adres e-mail\n                            <span class=\"gas-required\">*<\/span>\n                        <\/label>\n\n                        <input\n                            type=\"email\"\n                            name=\"email\"\n                            id=\"gas-individual-email\"\n                            autocomplete=\"email\"\n                        >\n                    <\/div>\n\n\n                    <div\n                        class=\"gas-individual-field gas-individual-conditional\"\n                        id=\"gas-individual-street-field\"\n                    >\n                        <label for=\"gas-individual-street\">\n                            Ulica i nr domu\/mieszkania\n                            <span class=\"gas-required\">*<\/span>\n                        <\/label>\n\n                        <input\n                            type=\"text\"\n                            name=\"street\"\n                            id=\"gas-individual-street\"\n                            autocomplete=\"street-address\"\n                        >\n                    <\/div>\n\n\n                    <div\n                        class=\"gas-individual-field gas-individual-conditional\"\n                        id=\"gas-individual-zipcode-field\"\n                    >\n                        <label for=\"gas-individual-zipcode\">\n                            Kod pocztowy\n                            <span class=\"gas-required\">*<\/span>\n                        <\/label>\n\n                        <input\n                            type=\"text\"\n                            name=\"zipCode\"\n                            id=\"gas-individual-zipcode\"\n                            inputmode=\"numeric\"\n                            autocomplete=\"postal-code\"\n                            maxlength=\"6\"\n                        >\n                    <\/div>\n\n\n                    <div\n                        class=\"gas-individual-field gas-individual-conditional\"\n                        id=\"gas-individual-city-field\"\n                    >\n                        <label for=\"gas-individual-city\">\n                            Miejscowo\u015b\u0107\n                            <span class=\"gas-required\">*<\/span>\n                        <\/label>\n\n                        <input\n                            type=\"text\"\n                            name=\"city\"\n                            id=\"gas-individual-city\"\n                            autocomplete=\"address-level2\"\n                        >\n                    <\/div>\n\n\n                    <!-- WIEK DZIECKA -->\n\n                    <div\n                        class=\"gas-individual-field gas-individual-conditional\"\n                        id=\"gas-individual-age-field\"\n                    >\n\n                        <label for=\"gas-individual-age\">\n                            Wiek dziecka\n                            <span class=\"gas-required\">*<\/span>\n                        <\/label>\n\n                        <select\n                            name=\"customField15\"\n                            id=\"gas-individual-age\"\n                        >\n                            <option value=\"\">Wybierz<\/option>\n                            <option value=\"27\">5<\/option>\n                            <option value=\"28\">6<\/option>\n                            <option value=\"29\">7<\/option>\n                            <option value=\"30\">8<\/option>\n                            <option value=\"31\">9<\/option>\n                            <option value=\"32\">10<\/option>\n                            <option value=\"33\">11<\/option>\n                            <option value=\"34\">12<\/option>\n                            <option value=\"35\">13<\/option>\n                            <option value=\"36\">14<\/option>\n                            <option value=\"37\">15<\/option>\n                            <option value=\"38\">16<\/option>\n                            <option value=\"39\">17<\/option>\n                        <\/select>\n\n                    <\/div>\n\n\n\n                    <!-- =====================================\n                         3. RODZIC\n                         ===================================== -->\n\n                    <div\n                        id=\"gas-individual-parent-section\"\n                        class=\"gas-individual-parent-section\"\n                    >\n\n\n                        <div class=\"gas-individual-divider\"><\/div>\n\n\n                        <div\n                            class=\"gas-individual-section-title\"\n                        >\n                            Dane rodzica \/ opiekuna\n                        <\/div>\n\n\n\n                        <div class=\"gas-individual-field\">\n\n                            <label\n                                for=\"gas-individual-parent-name\"\n                            >\n                                Imi\u0119\n                                <span class=\"gas-required\">*<\/span>\n                            <\/label>\n\n\n                            <input\n                                type=\"text\"\n                                name=\"parentName\"\n                                id=\"gas-individual-parent-name\"\n                                autocomplete=\"given-name\"\n                                required\n                            >\n\n                        <\/div>\n\n\n\n                        <div class=\"gas-individual-field\">\n\n                            <label\n                                for=\"gas-individual-parent-lastname\"\n                            >\n                                Nazwisko\n                                <span class=\"gas-required\">*<\/span>\n                            <\/label>\n\n\n                            <input\n                                type=\"text\"\n                                name=\"parentLastName\"\n                                id=\"gas-individual-parent-lastname\"\n                                autocomplete=\"family-name\"\n                                required\n                            >\n\n                        <\/div>\n\n\n\n                        <div class=\"gas-individual-field\">\n\n                            <label\n                                for=\"gas-individual-parent-mobile\"\n                            >\n                                Tel. kom\u00f3rkowy\n                                <span class=\"gas-required\">*<\/span>\n                            <\/label>\n\n\n                            <input\n                                type=\"tel\"\n                                name=\"parentMobile\"\n                                id=\"gas-individual-parent-mobile\"\n                                autocomplete=\"tel\"\n                                required\n                            >\n\n                        <\/div>\n\n\n\n                        <div class=\"gas-individual-field\">\n\n                            <label\n                                for=\"gas-individual-parent-email\"\n                            >\n                                Adres e-mail\n                                <span class=\"gas-required\">*<\/span>\n                            <\/label>\n\n\n                            <input\n                                type=\"email\"\n                                name=\"parentEmail\"\n                                id=\"gas-individual-parent-email\"\n                                autocomplete=\"email\"\n                                required\n                            >\n\n                        <\/div>\n\n\n\n                        <div class=\"gas-individual-field\">\n\n                            <label\n                                for=\"gas-individual-parent-street\"\n                            >\n                                Ulica i nr domu\/mieszkania\n                                <span class=\"gas-required\">*<\/span>\n                            <\/label>\n\n\n                            <input\n                                type=\"text\"\n                                name=\"parentStreet\"\n                                id=\"gas-individual-parent-street\"\n                                autocomplete=\"street-address\"\n                                required\n                            >\n\n                        <\/div>\n\n\n\n                        <div class=\"gas-individual-field\">\n\n                            <label\n                                for=\"gas-individual-parent-zipcode\"\n                            >\n                                Kod pocztowy\n                                <span class=\"gas-required\">*<\/span>\n                            <\/label>\n\n\n                            <input\n                                type=\"text\"\n                                name=\"parentZipCode\"\n                                id=\"gas-individual-parent-zipcode\"\n                                autocomplete=\"postal-code\"\n                                required\n                            >\n\n                        <\/div>\n\n\n\n                        <div class=\"gas-individual-field\">\n\n                            <label\n                                for=\"gas-individual-parent-city\"\n                            >\n                                Miejscowo\u015b\u0107\n                                <span class=\"gas-required\">*<\/span>\n                            <\/label>\n\n\n                            <input\n                                type=\"text\"\n                                name=\"parentCity\"\n                                id=\"gas-individual-parent-city\"\n                                autocomplete=\"address-level2\"\n                                required\n                            >\n\n                        <\/div>\n\n\n                    <\/div>\n\n\n\n                    <div class=\"gas-individual-divider\"><\/div>\n\n\n\n                    <!-- =====================================\n                         4. ZGODY\n                         ===================================== -->\n\n                    <div\n                        class=\"gas-individual-section-title\"\n                    >\n                        Zgody\n                    <\/div>\n\n\n\n                    <div\n                        class=\"gas-individual-consent\"\n                    >\n\n                        <label>\n\n                            <input\n                                type=\"checkbox\"\n                                name=\"consent22\"\n                                value=\"1\"\n                                required\n                            >\n\n\n                            <span>\n\n                                Wyra\u017cam zgod\u0119 na przetwarzanie przez\n                                Go Ahead School Monika Skarbek moich\n                                danych osobowych w celach zwi\u0105zanych\n                                z rejestracj\u0105 na kurs j\u0119zykowy.\n\n                                <span class=\"gas-required\">*<\/span>\n\n                            <\/span>\n\n                        <\/label>\n\n                    <\/div>\n\n\n\n                    <div\n                        class=\"gas-individual-consent\"\n                    >\n\n                        <label>\n\n                            <input\n                                type=\"checkbox\"\n                                name=\"consent23\"\n                                value=\"1\"\n                            >\n\n\n                            <span>\n\n                                Wyra\u017cam zgod\u0119 na przetwarzanie moich\n                                danych osobowych w celach marketingowych\n                                przez Go Ahead School Monika Skarbek.\n\n                            <\/span>\n\n                        <\/label>\n\n                    <\/div>\n\n\n\n                    <div\n                        class=\"gas-individual-consent\"\n                    >\n\n                        <label>\n\n                            <input\n                                type=\"checkbox\"\n                                name=\"consent24\"\n                                value=\"1\"\n                            >\n\n\n                            <span>\n\n                                Wyra\u017cam zgod\u0119 na przetwarzanie moich\n                                danych osobowych w celach handlowych\n                                przez Go Ahead School Monika Skarbek.\n\n                            <\/span>\n\n                        <\/label>\n\n                    <\/div>\n\n\n\n                    <!-- =====================================\n                         RECAPTCHA\n                         Renderowana przez JS po otwarciu popupu\n                         ===================================== -->\n\n                    <div\n                        class=\"gas-individual-recaptcha\"\n                    >\n\n                        <div\n                            id=\"gas-individual-recaptcha-widget\"\n                        ><\/div>\n\n                    <\/div>\n\n\n\n                    <!-- STATUS WYSY\u0141KI \/ B\u0141\u0118D\u00d3W -->\n\n                    <div\n                        id=\"gas-individual-status\"\n                        class=\"gas-individual-status\"\n                        role=\"status\"\n                        aria-live=\"polite\"\n                        aria-atomic=\"true\"\n                    ><\/div>\n\n\n\n                    <!-- SUBMIT -->\n\n                    <div\n                        class=\"gas-individual-submit-area\"\n                    >\n\n                        <input\n                            type=\"submit\"\n                            name=\"commit\"\n                            value=\"Zapisz na zaj\u0119cia\"\n                            id=\"gas-individual-submit\"\n                            class=\"gas-individual-submit\"\n                        >\n\n                    <\/div>\n\n\n\n                    <div\n                        class=\"gas-individual-note\"\n                    >\n\n                        Pola oznaczone\n                        <span class=\"gas-required\">*<\/span>\n                        s\u0105 wymagane.\n\n                    <\/div>\n\n\n                <\/form>\n\n\n            <\/div>\n\n        <\/div>\n\n    <\/div>\n\n<\/div>\n\n\n\n<!-- =========================================================\n     JAVASCRIPT\n     ========================================================= -->\n\n<script>\n(function () {\n    const popup = document.getElementById(\"gas-individual-popup\");\n    if (!popup) return;\n    const PREFIX = \"gas-individual\";\n    const form = document.getElementById(\"gas-individual-form\");\n    const scrollArea = popup.querySelector(\".gas-individual-scroll\");\n    const closeButton = popup.querySelector(\".gas-individual-close\");\n    const submitButton = document.getElementById(\"gas-individual-submit\");\n    const statusBox = document.getElementById(\"gas-individual-status\");\n    const popupHash = \"#rejestracja-zajecia-indywidualne\";\n\n    \/*\n     * reCAPTCHA v2 \u2013 konfiguracja dla formularza indywidualnego.\n     * W V17 brakowa\u0142o tych sta\u0142ych i zmiennych, przez co widget\n     * nie m\u00f3g\u0142 zosta\u0107 wyrenderowany mimo obecnego kontenera i funkcji JS.\n     *\/\n    const RECAPTCHA_SITE_KEY = \"6LcsjRQUAAAAAK4ajbqN7cm_jvjVwyr3FJGpwzSo\";\n    const RECAPTCHA_CONTAINER_ID = \"gas-individual-recaptcha-widget\";\n\n    let recaptchaWidgetId = null;\n    let captchaSolved = false;\n\n    const childSwitch = document.getElementById(\"gas-individual-child-switch\");\n    const isAdult = document.getElementById(\"gas-individual-is-adult\");\n    const courseType = document.getElementById(\"gas-individual-course-type\");\n    const participantTitle = document.getElementById(\"gas-individual-participant-title\");\n\n    const mobileField = document.getElementById(\"gas-individual-mobile-field\");\n    const emailField = document.getElementById(\"gas-individual-email-field\");\n    const streetField = document.getElementById(\"gas-individual-street-field\");\n    const zipCodeField = document.getElementById(\"gas-individual-zipcode-field\");\n    const cityField = document.getElementById(\"gas-individual-city-field\");\n\n    const participantMobile = document.getElementById(\"gas-individual-mobile\");\n    const participantEmail = document.getElementById(\"gas-individual-email\");\n    const participantStreet = document.getElementById(\"gas-individual-street\");\n    const participantZipCode = document.getElementById(\"gas-individual-zipcode\");\n    const participantCity = document.getElementById(\"gas-individual-city\");\n    const daycare = document.getElementById(\"gas-individual-daycare\");\n\n    const ageField = document.getElementById(\"gas-individual-age-field\");\n    const age = document.getElementById(\"gas-individual-age\");\n\n    const parentSection = document.getElementById(\"gas-individual-parent-section\");\n    const parentInputs = Array.from(parentSection.querySelectorAll('input[name^=\"parent\"]'));\n    const parentName = document.getElementById(\"gas-individual-parent-name\");\n    const parentLastName = document.getElementById(\"gas-individual-parent-lastname\");\n    const parentMobile = document.getElementById(\"gas-individual-parent-mobile\");\n    const parentEmail = document.getElementById(\"gas-individual-parent-email\");\n    const parentStreet = document.getElementById(\"gas-individual-parent-street\");\n    const parentZipCode = document.getElementById(\"gas-individual-parent-zipcode\");\n    const parentCity = document.getElementById(\"gas-individual-parent-city\");\n\n    function setFieldVisible(field, visible) {\n        if (!field) return;\n\n        field.classList.toggle(\n            \"gas-individual-visible\",\n            !!visible\n        );\n    }\n\n    function syncChildTechnicalData() {\n        \/*\n         * Aktualny formularz LangLion wymaga dla kursanta:\n         * mobile, email, street, zipCode i city.\n         *\n         * Przy rejestracji dziecka tych p\u00f3l nie pokazujemy drugi raz.\n         * Kopiujemy do nich dane kontaktowe rodzica, aby wys\u0142any POST\n         * pozosta\u0142 zgodny z aktualnym formularzem LangLion.\n         *\/\n        if (!childSwitch.checked) return;\n\n        participantMobile.disabled = false;\n        participantEmail.disabled = false;\n        participantStreet.disabled = false;\n        participantZipCode.disabled = false;\n        participantCity.disabled = false;\n\n        participantMobile.value = parentMobile.value.trim();\n        participantEmail.value = parentEmail.value.trim();\n        participantStreet.value = parentStreet.value.trim();\n        participantZipCode.value = parentZipCode.value.trim();\n        participantCity.value = parentCity.value.trim();\n    }\n\n    function updateFields() {\n        const child = childSwitch.checked;\n\n        \/*\n         * Ukryty parametr LangLion:\n         * OFF = kursant rejestruje sam siebie => isAdult=1\n         * ON  = rodzic rejestruje dziecko     => isAdult=0\n         *\/\n        isAdult.checked = !child;\n\n        participantTitle.textContent =\n            child ? \"Dane dziecka\" : \"Dane kursanta\";\n\n        \/*\n         * SP316 dost\u0119pne tylko przy rejestracji dziecka.\n         *\/\n        setOptionVisibility(courseType, \"24\", child);\n\n        if (!child && courseType.value === \"24\") {\n            courseType.value = \"\";\n            syncSelect(courseType);\n        }\n\n        \/*\n         * Doros\u0142y \/ samodzielny kursant:\n         * pe\u0142ne dane kursanta s\u0105 widoczne i wymagane.\n         *\/\n        setFieldVisible(mobileField, !child);\n        setFieldVisible(emailField, !child);\n        setFieldVisible(streetField, !child);\n        setFieldVisible(zipCodeField, !child);\n        setFieldVisible(cityField, !child);\n\n        \/*\n         * Przy dziecku pola te s\u0105 niewidoczne, ale aktywne,\n         * bo LangLion oznacza je w aktualnym kodzie jako wymagane.\n         * Ich warto\u015bci synchronizujemy z danymi rodzica.\n         *\/\n        participantMobile.disabled = false;\n        participantEmail.disabled = false;\n        participantStreet.disabled = false;\n        participantZipCode.disabled = false;\n        participantCity.disabled = false;\n\n        \/*\n         * Dziecko: w UI pokazujemy tylko imi\u0119, nazwisko i wiek.\n         *\/\n        setFieldVisible(ageField, child);\n        age.disabled = !child;\n\n        \/*\n         * Sekcja rodzica pojawia si\u0119 tylko przy dziecku.\n         * Wszystkie jej pola s\u0105 wtedy obowi\u0105zkowe.\n         *\/\n        parentSection.classList.toggle(\n            \"gas-individual-parent-visible\",\n            child\n        );\n\n        parentInputs.forEach(function (input) {\n            input.disabled = !child;\n        });\n\n        \/*\n         * Aktualny customField7 z LangLion pozostaje techniczny:\n         * dla online ustawiamy \"Nie dotyczy (online)\" = 8.\n         *\/\n        if (child) {\n            daycare.value = courseType.value === \"26\" ? \"8\" : \"\";\n            syncChildTechnicalData();\n        } else {\n            age.value = \"\";\n            daycare.value = \"\";\n        }\n\n        syncSelect(courseType);\n        syncSelect(age);\n\n        scheduleButtonRefresh();\n    }\n\n    childSwitch.addEventListener(\"change\", updateFields);\n    courseType.addEventListener(\"change\", updateFields);\n\n    [\n        parentMobile,\n        parentEmail,\n        parentStreet,\n        parentZipCode,\n        parentCity\n    ].forEach(function (input) {\n        input.addEventListener(\"input\", function () {\n            syncChildTechnicalData();\n            scheduleButtonRefresh();\n        });\n\n        input.addEventListener(\"change\", function () {\n            syncChildTechnicalData();\n            refreshSubmitState();\n        });\n    });\n\n    const configs = [\n        cfg(\n            \"gas-individual-course-type\",\n            true,\n            \"select\",\n            \"Wybierz form\u0119 zaj\u0119\u0107 indywidualnych.\",\n            \"Wybierz miejsce lub form\u0119 prowadzenia zaj\u0119\u0107.\"\n        ),\n\n        cfg(\n            \"gas-individual-name\",\n            true,\n            \"name\",\n            \"Wpisz imi\u0119 kursanta.\"\n        ),\n\n        cfg(\n            \"gas-individual-lastname\",\n            true,\n            \"lastname\",\n            \"Wpisz nazwisko kursanta.\"\n        ),\n\n        cfg(\n            \"gas-individual-mobile\",\n            function(){ return !childSwitch.checked; },\n            \"phone\",\n            \"Wpisz poprawny polski numer telefonu: 9 cyfr, np. 501 234 567 lub +48 501 234 567.\",\n            \"Np. 501 234 567 lub +48 501 234 567.\",\n            function(){ return !childSwitch.checked; }\n        ),\n\n        cfg(\n            \"gas-individual-email\",\n            function(){ return !childSwitch.checked; },\n            \"email\",\n            \"Wpisz poprawny adres e-mail, np. kursant@example.com.\",\n            \"Podaj adres e-mail do kontaktu i logowania.\",\n            function(){ return !childSwitch.checked; }\n        ),\n\n        cfg(\n            \"gas-individual-street\",\n            function(){ return !childSwitch.checked; },\n            \"text\",\n            \"Wpisz ulic\u0119 oraz numer domu lub mieszkania.\",\n            null,\n            function(){ return !childSwitch.checked; }\n        ),\n\n        cfg(\n            \"gas-individual-zipcode\",\n            function(){ return !childSwitch.checked; },\n            \"zip\",\n            \"Wpisz kod pocztowy w formacie 00-000.\",\n            \"Format: 00-000.\",\n            function(){ return !childSwitch.checked; }\n        ),\n\n        cfg(\n            \"gas-individual-city\",\n            function(){ return !childSwitch.checked; },\n            \"text\",\n            \"Wpisz miejscowo\u015b\u0107.\",\n            null,\n            function(){ return !childSwitch.checked; }\n        ),\n\n        cfg(\n            \"gas-individual-age\",\n            function(){ return childSwitch.checked; },\n            \"select\",\n            \"Wybierz wiek dziecka.\",\n            \"Wybierz aktualny wiek dziecka.\",\n            function(){ return childSwitch.checked; }\n        ),\n\n        cfg(\n            \"gas-individual-parent-name\",\n            function(){ return childSwitch.checked; },\n            \"text\",\n            \"Wpisz imi\u0119 rodzica lub opiekuna.\",\n            null,\n            function(){ return childSwitch.checked; }\n        ),\n\n        cfg(\n            \"gas-individual-parent-lastname\",\n            function(){ return childSwitch.checked; },\n            \"text\",\n            \"Wpisz nazwisko rodzica lub opiekuna.\",\n            null,\n            function(){ return childSwitch.checked; }\n        ),\n\n        cfg(\n            \"gas-individual-parent-mobile\",\n            function(){ return childSwitch.checked; },\n            \"phone\",\n            \"Wpisz poprawny polski numer telefonu rodzica: 9 cyfr, np. 501 234 567 lub +48 501 234 567.\",\n            \"Np. 501 234 567 lub +48 501 234 567.\",\n            function(){ return childSwitch.checked; }\n        ),\n\n        cfg(\n            \"gas-individual-parent-email\",\n            function(){ return childSwitch.checked; },\n            \"email\",\n            \"Wpisz poprawny adres e-mail rodzica, np. rodzic@example.com.\",\n            null,\n            function(){ return childSwitch.checked; }\n        ),\n\n        cfg(\n            \"gas-individual-parent-street\",\n            function(){ return childSwitch.checked; },\n            \"text\",\n            \"Wpisz ulic\u0119 oraz numer domu lub mieszkania rodzica.\",\n            null,\n            function(){ return childSwitch.checked; }\n        ),\n\n        cfg(\n            \"gas-individual-parent-zipcode\",\n            function(){ return childSwitch.checked; },\n            \"zip\",\n            \"Wpisz kod pocztowy rodzica w formacie 00-000.\",\n            \"Format: 00-000.\",\n            function(){ return childSwitch.checked; }\n        ),\n\n        cfg(\n            \"gas-individual-parent-city\",\n            function(){ return childSwitch.checked; },\n            \"text\",\n            \"Wpisz miejscowo\u015b\u0107 rodzica.\",\n            null,\n            function(){ return childSwitch.checked; }\n        ),\n\n        cfgByName(\n            \"consent22\",\n            true,\n            \"checkbox\",\n            \"Zaznacz zgod\u0119 wymagan\u0105 do przes\u0142ania rejestracji.\"\n        )\n    ];\n\n    function cfg(id, required, rule, message, hint, active) { const el=document.getElementById(id), wrapper=el.closest(\".gas-individual-field, .gas-individual-consent\"); return {el,wrapper,required:typeof required===\"function\"?required:function(){return !!required;},rule,message,hint:hint||null,active:active||function(){return !el.disabled;}}; }\n    function cfgByName(name, required, rule, message) { const el=form.querySelector('[name=\"'+name+'\"]'), wrapper=el.closest(\".gas-individual-consent\"); return {el,wrapper,required:function(){return !!required;},rule,message,hint:null,active:function(){return !el.disabled;}}; }\n\n\n    function createCustomSelect(select) {\n        if (!select || select.dataset.gasReady === \"1\") return;\n        select.dataset.gasReady = \"1\";\n        select.classList.add(\"gas-native-select\");\n        select.required = false;\n\n        const shell = document.createElement(\"div\");\n        shell.className = \"gas-select-shell\";\n\n        const trigger = document.createElement(\"button\");\n        trigger.type = \"button\";\n        trigger.className = \"gas-select-trigger\";\n        trigger.setAttribute(\"aria-haspopup\", \"listbox\");\n        trigger.setAttribute(\"aria-expanded\", \"false\");\n\n        const value = document.createElement(\"span\");\n        value.className = \"gas-select-value\";\n        const arrow = document.createElement(\"span\");\n        arrow.className = \"gas-select-arrow\";\n        arrow.setAttribute(\"aria-hidden\", \"true\");\n        trigger.append(value, arrow);\n\n        const dropdown = document.createElement(\"div\");\n        dropdown.className = \"gas-select-dropdown\";\n        dropdown.setAttribute(\"role\", \"listbox\");\n\n        const buttons = [];\n        Array.from(select.options).forEach(function (opt) {\n            if (!opt.value || opt.hidden || opt.disabled) return;\n            const b = document.createElement(\"button\");\n            b.type = \"button\";\n            b.className = \"gas-select-option\";\n            b.textContent = opt.textContent.trim();\n            b.setAttribute(\"role\", \"option\");\n            b.addEventListener(\"click\", function () {\n                if (b.disabled || b.hidden) return;\n                select.value = opt.value;\n\n                \/*\n                 * Od razu synchronizujemy widoczn\u0105 warto\u015b\u0107 custom combo.\n                 * Samo ustawienie value na ukrytym <select> nie zmienia\n                 * tekstu w naszym przycisku-triggerze.\n                 *\/\n                syncSelect(select);\n\n                select.dispatchEvent(new Event(\"change\", { bubbles: true }));\n                shell.classList.remove(\"gas-select-open\");\n                trigger.setAttribute(\"aria-expanded\", \"false\");\n                trigger.focus();\n            });\n            buttons.push({ value: opt.value, button: b });\n            dropdown.appendChild(b);\n        });\n\n        trigger.addEventListener(\"click\", function () {\n            if (select.disabled) return;\n            document.querySelectorAll(\"#\" + popup.id + \" .gas-select-open\").forEach(function (node) {\n                if (node !== shell) {\n                    node.classList.remove(\"gas-select-open\");\n                    const t = node.querySelector(\".gas-select-trigger\");\n                    if (t) t.setAttribute(\"aria-expanded\", \"false\");\n                }\n            });\n            const willOpen = !shell.classList.contains(\"gas-select-open\");\n            shell.classList.toggle(\"gas-select-open\", willOpen);\n            trigger.setAttribute(\"aria-expanded\", willOpen ? \"true\" : \"false\");\n        });\n\n        shell.append(trigger, dropdown);\n        select.insertAdjacentElement(\"afterend\", shell);\n        select._gasCustom = { shell, trigger, value, buttons };\n\n        \/*\n         * Synchronizacja obejmuje r\u00f3wnie\u017c zmiany wykonane programowo\n         * przez logik\u0119 formularza (np. \u015bwietlica = \"Nie dotyczy\"\n         * dla kursu online). Dzi\u0119ki temu custom combo nigdy nie zostaje\n         * wizualnie na opcji \"Wybierz\" przy prawid\u0142owym select.value.\n         *\/\n        select.addEventListener(\"change\", function () {\n            syncSelect(select);\n        });\n\n        syncSelect(select);\n    }\n\n    function syncSelect(select) {\n        if (!select || !select._gasCustom) return;\n        const data = select._gasCustom;\n        const opt = select.options[select.selectedIndex];\n        data.value.textContent = opt ? opt.textContent.trim() : \"Wybierz\";\n        data.buttons.forEach(function (item) {\n            const selected = item.value === select.value;\n            item.button.classList.toggle(\"gas-option-selected\", selected);\n            item.button.setAttribute(\"aria-selected\", selected ? \"true\" : \"false\");\n        });\n        if (select.value) data.shell.classList.remove(\"gas-select-error\");\n    }\n\n    function setOptionVisibility(select, value, visible) {\n        if (!select) return;\n        const opt = Array.from(select.options).find(function (o) { return o.value === value; });\n        if (opt) { opt.hidden = !visible; opt.disabled = !visible; }\n        if (select._gasCustom) {\n            const item = select._gasCustom.buttons.find(function (x) { return x.value === value; });\n            if (item) {\n                item.button.hidden = !visible;\n                item.button.disabled = !visible;\n                item.button.style.display = visible ? \"\" : \"none\";\n            }\n        }\n    }\n\n    function ensureErrorNode(cfg) {\n        if (cfg.errorNode) return cfg.errorNode;\n        const node = document.createElement(\"div\");\n        node.className = PREFIX + \"-validation-message\";\n        node.setAttribute(\"aria-live\", \"polite\");\n        cfg.wrapper.appendChild(node);\n        cfg.errorNode = node;\n        return node;\n    }\n\n    function ensureHintNode(cfg) {\n        if (!cfg.hint || cfg.hintNode) return cfg.hintNode || null;\n        const node = document.createElement(\"div\");\n        node.className = PREFIX + \"-hint\";\n        node.textContent = cfg.hint;\n        cfg.wrapper.appendChild(node);\n        cfg.hintNode = node;\n        return node;\n    }\n\n    function visualControl(cfg) {\n        if (cfg.el && cfg.el.tagName === \"SELECT\" && cfg.el._gasCustom) return cfg.el._gasCustom.shell;\n        return cfg.el;\n    }\n\n    function clearFieldError(cfg) {\n        if (!cfg || !cfg.el) return;\n        const err = ensureErrorNode(cfg);\n        err.textContent = \"\";\n        err.classList.remove(PREFIX + \"-validation-visible\");\n        cfg.wrapper.classList.remove(PREFIX + \"-field-has-error\", PREFIX + \"-consent-error\");\n        cfg.el.classList.remove(PREFIX + \"-input-error\");\n        cfg.el.removeAttribute(\"aria-invalid\");\n        if (cfg.el._gasCustom) {\n            cfg.el._gasCustom.shell.classList.remove(\"gas-select-error\");\n            cfg.el._gasCustom.trigger.removeAttribute(\"aria-invalid\");\n        }\n    }\n\n    function showFieldError(cfg, message) {\n        const err = ensureErrorNode(cfg);\n        err.textContent = message;\n        err.classList.add(PREFIX + \"-validation-visible\");\n        cfg.wrapper.classList.add(PREFIX + \"-field-has-error\");\n        cfg.el.setAttribute(\"aria-invalid\", \"true\");\n        if (cfg.el.type === \"checkbox\") {\n            cfg.wrapper.classList.add(PREFIX + \"-consent-error\");\n        } else if (cfg.el.tagName === \"SELECT\" && cfg.el._gasCustom) {\n            cfg.el._gasCustom.shell.classList.add(\"gas-select-error\");\n            cfg.el._gasCustom.trigger.setAttribute(\"aria-invalid\", \"true\");\n        } else {\n            cfg.el.classList.add(PREFIX + \"-input-error\");\n        }\n    }\n\n    function normalizeValue(cfg) {\n        if (!cfg.el || typeof cfg.el.value !== \"string\") return;\n        if (cfg.rule === \"class\") cfg.el.value = cfg.el.value.replace(\/\\s+\/g, \"\").toUpperCase();\n        if ([\"text\", \"email\", \"name\", \"lastname\", \"fullname\", \"zip\", \"phone\"].includes(cfg.rule)) cfg.el.value = cfg.el.value.trim();\n    }\n\n    function isCfgActive(cfg) {\n        if (!cfg || !cfg.el || cfg.el.disabled) return false;\n        try { return cfg.active ? !!cfg.active() : true; } catch (e) { return true; }\n    }\n\n    function isCfgRequired(cfg) {\n        try { return cfg.required ? !!cfg.required() : false; } catch (e) { return false; }\n    }\n\n    function checkCfg(cfg, normalize) {\n        if (!isCfgActive(cfg)) return { valid: true, message: \"\" };\n        if (normalize) normalizeValue(cfg);\n        const required = isCfgRequired(cfg);\n        const el = cfg.el;\n        const value = typeof el.value === \"string\" ? el.value.trim() : \"\";\n        let valid = true;\n\n        if (cfg.rule === \"checkbox\") valid = !required || el.checked;\n        else if (required && !value) valid = false;\n        else if (!value && !required) valid = true;\n        else if (cfg.rule === \"select\") valid = !!value;\n        else if (cfg.rule === \"class\") valid = \/^[1-8][A-Za-z]$\/.test(value);\n        else if (cfg.rule === \"email\") valid = \/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$\/.test(value);\n        else if (cfg.rule === \"zip\") valid = \/^\\d{2}-\\d{3}$\/.test(value);\n        else if (cfg.rule === \"phone\") {\n            const digits = value.replace(\/\\D\/g, \"\");\n            valid = digits.length === 9 || (digits.length === 11 && digits.startsWith(\"48\"));\n        }\n        else if (cfg.rule === \"fullname\") valid = \/^\\S+\\s+\\S+\/.test(value);\n        else valid = !required || value.length > 0;\n\n        return { valid, message: cfg.message };\n    }\n\n    function validateCfg(cfg, show, normalize) {\n        const result = checkCfg(cfg, normalize);\n        if (!isCfgActive(cfg)) {\n            clearFieldError(cfg);\n            return true;\n        }\n        if (result.valid) clearFieldError(cfg);\n        else if (show) showFieldError(cfg, result.message);\n        return result.valid;\n    }\n\n    function validateAll(show) {\n        let first = null;\n        configs.forEach(function (cfg) {\n            const ok = validateCfg(cfg, show, true);\n            if (!ok && !first) first = cfg;\n        });\n        return first;\n    }\n\n    function fieldOnlyValid() {\n        return configs.every(function (cfg) { return checkCfg(cfg, false).valid; });\n    }\n\n    let uiTimer = null;\n    function scheduleButtonRefresh() {\n        window.clearTimeout(uiTimer);\n        uiTimer = window.setTimeout(refreshSubmitState, 90);\n    }\n\n    function refreshSubmitState() {\n        const valid = fieldOnlyValid() && captchaSolved && form.dataset.submitting !== \"true\" && form.dataset.registered !== \"true\";\n        submitButton.disabled = !valid;\n        submitButton.setAttribute(\"aria-disabled\", valid ? \"false\" : \"true\");\n    }\n\n    function formatZip(value) {\n        const digits = String(value || \"\").replace(\/\\D\/g, \"\").slice(0, 5);\n\n        if (digits.length <= 2) return digits;\n\n        return digits.slice(0, 2) + \"-\" + digits.slice(2);\n    }\n\n    participantZipCode.addEventListener(\"input\", function () {\n        const next = formatZip(participantZipCode.value);\n        if (participantZipCode.value !== next) participantZipCode.value = next;\n    });\n\n    parentZipCode.addEventListener(\"input\", function () {\n        const next = formatZip(parentZipCode.value);\n        if (parentZipCode.value !== next) parentZipCode.value = next;\n    });\n\n    function bindValidation() {\n        configs.forEach(function (cfg) {\n            ensureHintNode(cfg);\n            ensureErrorNode(cfg);\n            cfg.blurred = false;\n\n            const focusEl = cfg.el._gasCustom ? cfg.el._gasCustom.trigger : cfg.el;\n            if (focusEl) {\n                focusEl.addEventListener(\"blur\", function () {\n                    cfg.blurred = true;\n                    validateCfg(cfg, true, true);\n                    refreshSubmitState();\n                });\n            }\n\n            cfg.el.addEventListener(\"input\", function () {\n                if (cfg.blurred) {\n                    window.clearTimeout(cfg.inputTimer);\n                    cfg.inputTimer = window.setTimeout(function () { validateCfg(cfg, true, false); }, 140);\n                }\n                if (form.dataset.submitting !== \"true\") clearFormStatus();\n                scheduleButtonRefresh();\n            });\n\n            cfg.el.addEventListener(\"change\", function () {\n                cfg.blurred = true;\n                validateCfg(cfg, true, true);\n                if (form.dataset.submitting !== \"true\") clearFormStatus();\n                refreshSubmitState();\n            });\n        });\n    }\n\n    function focusInvalid(cfg) {\n        if (!cfg) return;\n        const target = cfg.el._gasCustom ? cfg.el._gasCustom.trigger : cfg.el;\n        cfg.wrapper.scrollIntoView({ behavior: \"smooth\", block: \"center\" });\n        window.setTimeout(function () { if (target) target.focus({ preventScroll: true }); }, 180);\n    }\n\n    function setFormStatus(type, text) {\n        if (!statusBox) return;\n        statusBox.className = PREFIX + \"-status\";\n        statusBox.textContent = text || \"\";\n        if (type) statusBox.classList.add(\"gas-status-\" + type);\n    }\n\n    function clearFormStatus() { setFormStatus(\"\", \"\"); }\n\n    function ensureRecaptcha(attempt) {\n        attempt = attempt || 0;\n        if (window.grecaptcha && typeof window.grecaptcha.render === \"function\") {\n            const run = function () {\n                if (recaptchaWidgetId !== null) return;\n                const c = document.getElementById(RECAPTCHA_CONTAINER_ID);\n                if (!c) return;\n                try {\n                    recaptchaWidgetId = window.grecaptcha.render(c, {\n                        sitekey: RECAPTCHA_SITE_KEY,\n                        callback: function () { captchaSolved = true; refreshSubmitState(); },\n                        \"expired-callback\": function () { captchaSolved = false; refreshSubmitState(); },\n                        \"error-callback\": function () { captchaSolved = false; refreshSubmitState(); }\n                    });\n                } catch (e) {}\n            };\n            if (typeof window.grecaptcha.ready === \"function\") window.grecaptcha.ready(run); else run();\n            return;\n        }\n        let script = document.querySelector('script[src*=\"google.com\/recaptcha\/api.js\"]');\n        if (!script) {\n            script = document.createElement(\"script\");\n            script.src = \"https:\/\/www.google.com\/recaptcha\/api.js?render=explicit\";\n            script.async = true;\n            script.defer = true;\n            document.head.appendChild(script);\n        }\n        if (attempt < 80) window.setTimeout(function () { ensureRecaptcha(attempt + 1); }, 100);\n    }\n\n    function resetRecaptcha() {\n        captchaSolved = false;\n        if (window.grecaptcha && recaptchaWidgetId !== null && typeof window.grecaptcha.reset === \"function\") {\n            try { window.grecaptcha.reset(recaptchaWidgetId); } catch (e) {}\n        }\n        refreshSubmitState();\n    }\n\n    function addCommitField(value) {\n        let c = form.querySelector('input[data-gas-commit=\"1\"]');\n        if (!c) {\n            c = document.createElement(\"input\");\n            c.type = \"hidden\";\n            c.name = \"commit\";\n            c.dataset.gasCommit = \"1\";\n            form.appendChild(c);\n        }\n        c.value = value;\n        return c;\n    }\n\n    function clearValidationUi() {\n        configs.forEach(function (cfg) { cfg.blurred = false; clearFieldError(cfg); });\n    }\n\n    document.addEventListener(\"click\", function (event) {\n        if (!event.target.closest(\".gas-select-shell\")) {\n            popup.querySelectorAll(\".gas-select-open\").forEach(function (node) {\n                node.classList.remove(\"gas-select-open\");\n                const t = node.querySelector(\".gas-select-trigger\");\n                if (t) t.setAttribute(\"aria-expanded\", \"false\");\n            });\n        }\n    });\n\n\n    const FRAME_NAME = \"gas-individual-langlion-frame-v11\";\n    const frame = document.createElement(\"iframe\"); frame.name=FRAME_NAME; frame.id=FRAME_NAME; frame.setAttribute(\"aria-hidden\",\"true\");\n    Object.assign(frame.style,{position:\"fixed\",width:\"1px\",height:\"1px\",left:\"-10000px\",top:\"-10000px\",opacity:\"0\",border:\"0\",pointerEvents:\"none\"}); document.body.appendChild(frame);\n\n    function success() {\n        if (form.dataset.submitting !== \"true\") return;\n\n        form.dataset.submitting = \"false\";\n        form.dataset.registered = \"true\";\n\n        setFormStatus(\n            \"success\",\n            \"Dzi\u0119kujemy. Zg\u0142oszenie zosta\u0142o wys\u0142ane do systemu rejestracji Go Ahead School. Formularz zamknie si\u0119 automatycznie za 5 sekund.\"\n        );\n\n        submitButton.value = \"Zg\u0142oszenie wys\u0142ane \u2713\";\n        submitButton.disabled = true;\n\n        form.reset();\n\n        updateFields();\n        clearValidationUi();\n        resetRecaptcha();\n\n        window.clearTimeout(closeTimer);\n        closeTimer = window.setTimeout(function () {\n            closePopup();\n            form.dataset.registered = \"false\";\n            submitButton.value = \"Zapisz na zaj\u0119cia\";\n            clearFormStatus();\n            refreshSubmitState();\n        }, 5000);\n    }\n\n    function submissionStartFailed() {\n        form.dataset.submitting = \"false\";\n        submitButton.value = \"Zapisz na zaj\u0119cia\";\n\n        setFormStatus(\n            \"error\",\n            \"Nie uda\u0142o si\u0119 uruchomi\u0107 wysy\u0142ki formularza. Sprawd\u017a po\u0142\u0105czenie z internetem i spr\u00f3buj ponownie.\"\n        );\n\n        resetRecaptcha();\n        refreshSubmitState();\n    }\n\n    form.setAttribute(\"novalidate\",\"novalidate\");\n    form.addEventListener(\"submit\", function (event) {\n        event.preventDefault();\n\n        if (\n            form.dataset.submitting === \"true\" ||\n            form.dataset.registered === \"true\"\n        ) {\n            return;\n        }\n\n        updateFields();\n        syncChildTechnicalData();\n\n        const first = validateAll(true);\n\n        if (first || !captchaSolved) {\n            if (first) {\n                focusInvalid(first);\n            } else {\n                setFormStatus(\n                    \"error\",\n                    \"Potwierd\u017a reCAPTCHA przed wys\u0142aniem formularza.\"\n                );\n            }\n\n            refreshSubmitState();\n            return;\n        }\n\n        if (navigator.onLine === false) {\n            setFormStatus(\n                \"error\",\n                \"Brak po\u0142\u0105czenia z internetem. Po\u0142\u0105cz si\u0119 z sieci\u0105 i spr\u00f3buj ponownie.\"\n            );\n            refreshSubmitState();\n            return;\n        }\n\n        form.dataset.submitting = \"true\";\n        setFormStatus(\"loading\", \"Wysy\u0142amy zg\u0142oszenie\u2026\");\n        submitButton.value = \"Wysy\u0142anie...\";\n        submitButton.disabled = true;\n\n        form.target = FRAME_NAME;\n        addCommitField(\"Zapisz\");\n\n        try {\n            HTMLFormElement.prototype.submit.call(form);\n\n            \/*\n             * Tak samo jak w formularzu grupowym:\n             * potwierdzamy uruchomienie POST-u po stronie przegl\u0105darki,\n             * nie czekamy na nieweryfikowalny cross-origin callback LangLion.\n             *\/\n            window.setTimeout(function () {\n                if (form.dataset.submitting === \"true\") {\n                    success();\n                }\n            }, 450);\n\n        } catch (error) {\n            submissionStartFailed();\n        }\n    });\n\n    let oldBodyOverflow=\"\",previouslyFocused=null;\n    function openPopup(){previouslyFocused=document.activeElement;oldBodyOverflow=document.body.style.overflow;document.body.style.overflow=\"hidden\";popup.classList.add(\"gas-individual-active\");popup.setAttribute(\"aria-hidden\",\"false\");if(scrollArea)scrollArea.scrollTop=0;updateFields();ensureRecaptcha();refreshSubmitState();}\n    function closePopup(){popup.classList.remove(\"gas-individual-active\");popup.setAttribute(\"aria-hidden\",\"true\");document.body.style.overflow=oldBodyOverflow;if(window.location.hash===popupHash)history.replaceState(null,\"\",window.location.pathname+window.location.search);if(previouslyFocused&&previouslyFocused.focus)try{previouslyFocused.focus({preventScroll:true});}catch(e){previouslyFocused.focus();}}\n    closeButton.addEventListener(\"click\",closePopup);popup.addEventListener(\"click\",function(e){if(e.target===popup)closePopup();});document.addEventListener(\"keydown\",function(e){if(e.key===\"Escape\"&&popup.classList.contains(\"gas-individual-active\"))closePopup();});document.addEventListener(\"click\",function(e){const a=e.target.closest('a[href=\"#rejestracja-zajecia-indywidualne\"]');if(!a)return;e.preventDefault();history.replaceState(null,\"\",popupHash);openPopup();});window.addEventListener(\"hashchange\",function(){if(window.location.hash===popupHash)openPopup();else if(popup.classList.contains(\"gas-individual-active\"))closePopup();});if(window.location.hash===popupHash)openPopup();\n\n    \/*\n     * Przywr\u00f3cenie wcze\u015bniejszej stylistyki COMBO.\n     * Ka\u017cdy natywny <select> zostaje zamieniony na custom dropdown:\n     * - zaokr\u0105glone pole 8px,\n     * - rozwijana lista tej samej szeroko\u015bci,\n     * - w\u0142asna strza\u0142ka,\n     * - zaznaczona opcja w kolorystyce Go Ahead,\n     * - synchronizacja warto\u015bci z ukrytym selectem LangLion.\n     *\/\n    popup.querySelectorAll(\"select\").forEach(createCustomSelect);\n\n    bindValidation();\n    updateFields();\n    ensureRecaptcha();\n    refreshSubmitState();\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Wybierz rodzaj kursu \u00d7 Informacje o kursie Forma kursu * Wybierz Stacjonarnie &#8211; w SP316 Zaj\u0119cia online Intensywno\u015b\u0107 * Wybierz Modu\u0142 standardowy Modu\u0142 intensywny Dane dziecka Imi\u0119 * Nazwisko * Do kt\u00f3rej klasy chodzi dziecko? * Czy dziecko ucz\u0119szcza na \u015bwietlic\u0119? * Wybierz Nie dotyczy (online) Tak Nie Dane rodzica \/ opiekuna Imi\u0119 * Nazwisko [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-896","page","type-page","status-publish","hentry"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.0.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"Szko\u0142a J\u0119zykowa na Bemowie. Zaj\u0119cia stacjonarne oraz online, uczymy w grupach lub indywidualnie. Przygotowujemy do egzaminu \u00f3smoklasisty.\" \/>\n\t<meta name=\"robots\" content=\"noindex, nofollow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n\t<meta name=\"keywords\" content=\"szko\u0142a,j\u0119zykowa,bemowo,warszawa,stare babice,online,stacjonarnie,grupy,indywidualnie,korepetycje,zaj\u0119cia,lekcje,angielski,316,362,150,szobera,thommego,czumy,podstawowa,kursy,egzamin,\u00f3smoklasisty\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/goaheadschool.pl\/index.php\/zapisy-na-kurs\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.0.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"pl_PL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Szko\u0142a J\u0119zykowa na Bemowie - Go Ahead School\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Zapisy online | Szko\u0142a J\u0119zykowa na Bemowie - Go Ahead School\" \/>\n\t\t<meta property=\"og:description\" content=\"Szko\u0142a J\u0119zykowa na Bemowie. Zaj\u0119cia stacjonarne oraz online, uczymy w grupach lub indywidualnie. Przygotowujemy do egzaminu \u00f3smoklasisty.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/goaheadschool.pl\/index.php\/zapisy-na-kurs\/\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/goaheadschool.pl\/wp-content\/uploads\/2020\/04\/logogoogle-min.png\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/goaheadschool.pl\/wp-content\/uploads\/2020\/04\/logogoogle-min.png\" \/>\n\t\t<meta property=\"og:image:width\" content=\"697\" \/>\n\t\t<meta property=\"og:image:height\" content=\"697\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2026-08-29T20:30:06+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-09-10T11:03:02+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Zapisy online | Szko\u0142a J\u0119zykowa na Bemowie - Go Ahead School\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Szko\u0142a J\u0119zykowa na Bemowie. Zaj\u0119cia stacjonarne oraz online, uczymy w grupach lub indywidualnie. Przygotowujemy do egzaminu \u00f3smoklasisty.\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/goaheadschool.pl\/wp-content\/uploads\/2020\/04\/logogoogle-min.png\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/goaheadschool.pl\\\/index.php\\\/zapisy-na-kurs\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/goaheadschool.pl#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/goaheadschool.pl\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/goaheadschool.pl\\\/index.php\\\/zapisy-na-kurs\\\/#listItem\",\"name\":\"Zapisy na kurs\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/goaheadschool.pl\\\/index.php\\\/zapisy-na-kurs\\\/#listItem\",\"position\":2,\"name\":\"Zapisy na kurs\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/goaheadschool.pl#listItem\",\"name\":\"Home\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/goaheadschool.pl\\\/#organization\",\"name\":\"Szko\\u0142a J\\u0119zykowa na Bemowie - Go Ahead School\",\"description\":\"Szko\\u0142a J\\u0119zykowa na Bemowie, j\\u0119zyk angielski Warszawa, Bemowo. Zaj\\u0119cia online lub stacjonarnie, uczymy w grupach lub indywidualnie.\",\"url\":\"https:\\\/\\\/goaheadschool.pl\\\/\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/goaheadschool.pl\\\/index.php\\\/zapisy-na-kurs\\\/#webpage\",\"url\":\"https:\\\/\\\/goaheadschool.pl\\\/index.php\\\/zapisy-na-kurs\\\/\",\"name\":\"Zapisy online | Szko\\u0142a J\\u0119zykowa na Bemowie - Go Ahead School\",\"description\":\"Szko\\u0142a J\\u0119zykowa na Bemowie. Zaj\\u0119cia stacjonarne oraz online, uczymy w grupach lub indywidualnie. Przygotowujemy do egzaminu \\u00f3smoklasisty.\",\"inLanguage\":\"pl-PL\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/goaheadschool.pl\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/goaheadschool.pl\\\/index.php\\\/zapisy-na-kurs\\\/#breadcrumblist\"},\"datePublished\":\"2026-08-29T22:30:06+02:00\",\"dateModified\":\"2026-09-10T13:03:02+02:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/goaheadschool.pl\\\/#website\",\"url\":\"https:\\\/\\\/goaheadschool.pl\\\/\",\"name\":\"Szko\\u0142a J\\u0119zykowa na Bemowie - Go Ahead School\",\"description\":\"Szko\\u0142a J\\u0119zykowa na Bemowie, j\\u0119zyk angielski Warszawa, Bemowo. Zaj\\u0119cia online lub stacjonarnie, uczymy w grupach lub indywidualnie.\",\"inLanguage\":\"pl-PL\",\"publisher\":{\"@id\":\"https:\\\/\\\/goaheadschool.pl\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Zapisy online | Szko\u0142a J\u0119zykowa na Bemowie - Go Ahead School","description":"Szko\u0142a J\u0119zykowa na Bemowie. Zaj\u0119cia stacjonarne oraz online, uczymy w grupach lub indywidualnie. Przygotowujemy do egzaminu \u00f3smoklasisty.","canonical_url":"https:\/\/goaheadschool.pl\/index.php\/zapisy-na-kurs\/","robots":"noindex, nofollow, max-snippet:-1, max-image-preview:large, max-video-preview:-1","keywords":"szko\u0142a,j\u0119zykowa,bemowo,warszawa,stare babice,online,stacjonarnie,grupy,indywidualnie,korepetycje,zaj\u0119cia,lekcje,angielski,316,362,150,szobera,thommego,czumy,podstawowa,kursy,egzamin,\u00f3smoklasisty","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BreadcrumbList","@id":"https:\/\/goaheadschool.pl\/index.php\/zapisy-na-kurs\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/goaheadschool.pl#listItem","position":1,"name":"Home","item":"https:\/\/goaheadschool.pl","nextItem":{"@type":"ListItem","@id":"https:\/\/goaheadschool.pl\/index.php\/zapisy-na-kurs\/#listItem","name":"Zapisy na kurs"}},{"@type":"ListItem","@id":"https:\/\/goaheadschool.pl\/index.php\/zapisy-na-kurs\/#listItem","position":2,"name":"Zapisy na kurs","previousItem":{"@type":"ListItem","@id":"https:\/\/goaheadschool.pl#listItem","name":"Home"}}]},{"@type":"Organization","@id":"https:\/\/goaheadschool.pl\/#organization","name":"Szko\u0142a J\u0119zykowa na Bemowie - Go Ahead School","description":"Szko\u0142a J\u0119zykowa na Bemowie, j\u0119zyk angielski Warszawa, Bemowo. Zaj\u0119cia online lub stacjonarnie, uczymy w grupach lub indywidualnie.","url":"https:\/\/goaheadschool.pl\/"},{"@type":"WebPage","@id":"https:\/\/goaheadschool.pl\/index.php\/zapisy-na-kurs\/#webpage","url":"https:\/\/goaheadschool.pl\/index.php\/zapisy-na-kurs\/","name":"Zapisy online | Szko\u0142a J\u0119zykowa na Bemowie - Go Ahead School","description":"Szko\u0142a J\u0119zykowa na Bemowie. Zaj\u0119cia stacjonarne oraz online, uczymy w grupach lub indywidualnie. Przygotowujemy do egzaminu \u00f3smoklasisty.","inLanguage":"pl-PL","isPartOf":{"@id":"https:\/\/goaheadschool.pl\/#website"},"breadcrumb":{"@id":"https:\/\/goaheadschool.pl\/index.php\/zapisy-na-kurs\/#breadcrumblist"},"datePublished":"2026-08-29T22:30:06+02:00","dateModified":"2026-09-10T13:03:02+02:00"},{"@type":"WebSite","@id":"https:\/\/goaheadschool.pl\/#website","url":"https:\/\/goaheadschool.pl\/","name":"Szko\u0142a J\u0119zykowa na Bemowie - Go Ahead School","description":"Szko\u0142a J\u0119zykowa na Bemowie, j\u0119zyk angielski Warszawa, Bemowo. Zaj\u0119cia online lub stacjonarnie, uczymy w grupach lub indywidualnie.","inLanguage":"pl-PL","publisher":{"@id":"https:\/\/goaheadschool.pl\/#organization"}}]},"og:locale":"pl_PL","og:site_name":"Szko\u0142a J\u0119zykowa na Bemowie - Go Ahead School","og:type":"article","og:title":"Zapisy online | Szko\u0142a J\u0119zykowa na Bemowie - Go Ahead School","og:description":"Szko\u0142a J\u0119zykowa na Bemowie. Zaj\u0119cia stacjonarne oraz online, uczymy w grupach lub indywidualnie. Przygotowujemy do egzaminu \u00f3smoklasisty.","og:url":"https:\/\/goaheadschool.pl\/index.php\/zapisy-na-kurs\/","og:image":"https:\/\/goaheadschool.pl\/wp-content\/uploads\/2020\/04\/logogoogle-min.png","og:image:secure_url":"https:\/\/goaheadschool.pl\/wp-content\/uploads\/2020\/04\/logogoogle-min.png","og:image:width":697,"og:image:height":697,"article:published_time":"2026-08-29T20:30:06+00:00","article:modified_time":"2026-09-10T11:03:02+00:00","twitter:card":"summary","twitter:title":"Zapisy online | Szko\u0142a J\u0119zykowa na Bemowie - Go Ahead School","twitter:description":"Szko\u0142a J\u0119zykowa na Bemowie. Zaj\u0119cia stacjonarne oraz online, uczymy w grupach lub indywidualnie. Przygotowujemy do egzaminu \u00f3smoklasisty.","twitter:image":"https:\/\/goaheadschool.pl\/wp-content\/uploads\/2020\/04\/logogoogle-min.png"},"aioseo_meta_data":{"post_id":"896","title":"Zapisy online | #site_title","description":"Szko\u0142a J\u0119zykowa na Bemowie. Zaj\u0119cia stacjonarne oraz online, uczymy w grupach lub indywidualnie. Przygotowujemy do egzaminu \u00f3smoklasisty.","keywords":[{"label":"szko\u0142a","value":"szko\u0142a"},{"label":"j\u0119zykowa","value":"j\u0119zykowa"},{"label":"bemowo","value":"bemowo"},{"label":"warszawa","value":"warszawa"},{"label":"stare babice","value":"stare babice"},{"label":"online","value":"online"},{"label":"stacjonarnie","value":"stacjonarnie"},{"label":"grupy","value":"grupy"},{"label":"indywidualnie","value":"indywidualnie"},{"label":"korepetycje","value":"korepetycje"},{"label":"zaj\u0119cia","value":"zaj\u0119cia"},{"label":"lekcje","value":"lekcje"},{"label":"angielski","value":"angielski"},{"label":"316","value":"316"},{"label":"362","value":"362"},{"label":"150","value":"150"},{"label":"Szobera","value":"Szobera"},{"label":"Thommego","value":"Thommego"},{"label":"Czumy","value":"Czumy"},{"label":"podstawowa","value":"podstawowa"},{"label":"kursy","value":"kursy"},{"label":"egzamin","value":"egzamin"},{"label":"\u00f3smoklasisty","value":"\u00f3smoklasisty"}],"keyphrases":{"focus":{"keyphrase":"","score":0,"analysis":{"keyphraseInTitle":{"score":0,"maxScore":9,"error":1}}},"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"article","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":"","og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"summary","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"WebPage","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":false,"robots_noindex":true,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":true,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":"-1","robots_max_videopreview":"-1","robots_max_imagepreview":"large","priority":null,"frequency":"default","local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":{"faqs":[],"keyPoints":[],"schemas":[],"titles":[],"descriptions":[],"socialPosts":{"email":{"subject":"","preview":"","content":""},"linkedin":[],"twitter":[],"facebook":[],"instagram":[]}},"created":"2020-12-22 11:20:35","updated":"2026-08-29 20:32:01","seo_analyzer_scan_date":null,"focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/goaheadschool.pl\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tZapisy na kurs\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/goaheadschool.pl"},{"label":"Zapisy na kurs","link":"https:\/\/goaheadschool.pl\/index.php\/zapisy-na-kurs\/"}],"_links":{"self":[{"href":"https:\/\/goaheadschool.pl\/index.php\/wp-json\/wp\/v2\/pages\/896","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/goaheadschool.pl\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/goaheadschool.pl\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/goaheadschool.pl\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/goaheadschool.pl\/index.php\/wp-json\/wp\/v2\/comments?post=896"}],"version-history":[{"count":152,"href":"https:\/\/goaheadschool.pl\/index.php\/wp-json\/wp\/v2\/pages\/896\/revisions"}],"predecessor-version":[{"id":3022,"href":"https:\/\/goaheadschool.pl\/index.php\/wp-json\/wp\/v2\/pages\/896\/revisions\/3022"}],"wp:attachment":[{"href":"https:\/\/goaheadschool.pl\/index.php\/wp-json\/wp\/v2\/media?parent=896"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}