{"id":581,"date":"2018-08-16T11:08:17","date_gmt":"2018-08-16T10:08:17","guid":{"rendered":"https:\/\/southbournese.wpengine.com\/?page_id=581"},"modified":"2025-03-05T14:59:34","modified_gmt":"2025-03-05T14:59:34","slug":"czesto-zadawane-pytania","status":"publish","type":"page","link":"https:\/\/southbourneschool.co.uk\/pl\/about\/faqs\/","title":{"rendered":"Cz\u0119sto zadawane pytania"},"content":{"rendered":"<section data-vc-full-width=\"true\" data-vc-full-width-init=\"false\" data-vc-stretch-content=\"true\" class=\"vc_section vc_custom_1741186550890 vc_section-has-fill\"><\/section><div class=\"vc_row-full-width vc_clearfix\"><\/div><div class=\"vc_row wpb_row vc_row-fluid vc_custom_1532611618687\"><div class=\"wpb_column vc_column_container vc_col-sm-7\"><div class=\"vc_column-inner\"><div class=\"wpb_wrapper\"><h1 style=\"text-align: left\" class=\"vc_custom_heading\" >Frequently Asked Questions (students)<\/h1>\n\t<div class=\"wpb_text_column wpb_content_element  vc_custom_1708360587729\" >\n\t\t<div class=\"wpb_wrapper\">\n\t\t\t<p>Answers to Frequently Asked Questions (FAQs) about our English courses, facilities in Bournemouth, Visas, travel requirements, accommodation and welfare. If your question is not answered here, then please <a href=\"https:\/\/southbourneschool.co.uk\/contact-us\/\">get in contact<\/a> and we will be happy to answer via phone or email!<\/p>\n\n\t\t<\/div>\n\t<\/div>\n<div class=\"vc_tta-container\" data-vc-action=\"collapseAll\"><div class=\"vc_general vc_tta vc_tta-accordion vc_tta-color-grey vc_tta-style-classic vc_tta-shape-square vc_tta-o-shape-group vc_tta-controls-align-left vc_tta-o-no-fill vc_tta-o-all-clickable\"><div class=\"vc_tta-panels-container\"><div class=\"vc_tta-panels\"><div class=\"vc_tta-panel\" id=\"1534412254245-938aa00b-1b54\" data-vc-content=\".vc_tta-panel-body\"><div class=\"vc_tta-panel-heading\"><h4 class=\"vc_tta-panel-title vc_tta-controls-icon-position-left\"><a href=\"#1534412254245-938aa00b-1b54\" data-vc-accordion data-vc-container=\".vc_tta-container\"><span class=\"vc_tta-title-text\">Is Southbourne School of English accredited?<\/span><i class=\"vc_tta-controls-icon vc_tta-controls-icon-plus\"><\/i><\/a><\/h4><\/div><div class=\"vc_tta-panel-body\">\n\t<div class=\"wpb_text_column wpb_content_element \" >\n\t\t<div class=\"wpb_wrapper\">\n\t\t\t<p>Yes, Southbourne School of English is accredited by the British Council. We are also members of Quality English, IALC, English UK, English UK South and English UK Young Learners. We are also an examination centre for Cambridge and Trinity.<\/p>\n\n\t\t<\/div>\n\t<\/div>\n<\/div><\/div><div class=\"vc_tta-panel\" id=\"1534412254259-4445b5a4-941f\" data-vc-content=\".vc_tta-panel-body\"><div class=\"vc_tta-panel-heading\"><h4 class=\"vc_tta-panel-title vc_tta-controls-icon-position-left\"><a href=\"#1534412254259-4445b5a4-941f\" data-vc-accordion data-vc-container=\".vc_tta-container\"><span class=\"vc_tta-title-text\">How do I book my course?<\/span><i class=\"vc_tta-controls-icon vc_tta-controls-icon-plus\"><\/i><\/a><\/h4><\/div><div class=\"vc_tta-panel-body\">\n\t<div class=\"wpb_text_column wpb_content_element \" >\n\t\t<div class=\"wpb_wrapper\">\n\t\t\t<p>To book your course, have a look at our <a href=\"https:\/\/southbourneschool.co.uk\/language-courses\/adult-language-courses\/\">Adult<\/a> or <a href=\"https:\/\/southbourneschool.co.uk\/language-courses\/junior-language-courses\/\">Junior<\/a> courses. You can then use our <a href=\"https:\/\/southbourneschool.co.uk\/english-courses\/how-to-book-your-english-course\">Course Calculator<\/a> to work out the cost and enrol.<\/p>\n\n\t\t<\/div>\n\t<\/div>\n<\/div><\/div><div class=\"vc_tta-panel\" id=\"1534412347882-3128fb10-22a8\" data-vc-content=\".vc_tta-panel-body\"><div class=\"vc_tta-panel-heading\"><h4 class=\"vc_tta-panel-title vc_tta-controls-icon-position-left\"><a href=\"#1534412347882-3128fb10-22a8\" data-vc-accordion data-vc-container=\".vc_tta-container\"><span class=\"vc_tta-title-text\">How do I pay for my course?<\/span><i class=\"vc_tta-controls-icon vc_tta-controls-icon-plus\"><\/i><\/a><\/h4><\/div><div class=\"vc_tta-panel-body\">\n\t<div class=\"wpb_text_column wpb_content_element \" >\n\t\t<div class=\"wpb_wrapper\">\n\t\t\t<p>You can pay for your course by cheque, <a href=\"https:\/\/payment.flywire.com\/?recipient=SSE\">Flywire<\/a> or by direct bank transfer. <a href=\"https:\/\/southbourneschool.co.uk\/contact-us\/\">Contact us<\/a> for more details.<\/p>\n\n\t\t<\/div>\n\t<\/div>\n<\/div><\/div><div class=\"vc_tta-panel\" id=\"1534412451044-dbcbf2a7-0663\" data-vc-content=\".vc_tta-panel-body\"><div class=\"vc_tta-panel-heading\"><h4 class=\"vc_tta-panel-title vc_tta-controls-icon-position-left\"><a href=\"#1534412451044-dbcbf2a7-0663\" data-vc-accordion data-vc-container=\".vc_tta-container\"><span class=\"vc_tta-title-text\">When can I start my course?<\/span><i class=\"vc_tta-controls-icon vc_tta-controls-icon-plus\"><\/i><\/a><\/h4><\/div><div class=\"vc_tta-panel-body\">\n\t<div class=\"wpb_text_column wpb_content_element \" >\n\t\t<div class=\"wpb_wrapper\">\n\t\t\t<p>Courses start every Monday throughout the year (except for public holidays and during our Christmas &amp; New Year closure). Junior courses are seasonal, please check <a href=\"https:\/\/southbourneschool.co.uk\/english-courses\/junior-language-courses\/\">Junior Courses<\/a> for more information<\/p>\n\n\t\t<\/div>\n\t<\/div>\n<\/div><\/div><div class=\"vc_tta-panel\" id=\"1534412483115-eb578bc7-2132\" data-vc-content=\".vc_tta-panel-body\"><div class=\"vc_tta-panel-heading\"><h4 class=\"vc_tta-panel-title vc_tta-controls-icon-position-left\"><a href=\"#1534412483115-eb578bc7-2132\" data-vc-accordion data-vc-container=\".vc_tta-container\"><span class=\"vc_tta-title-text\">How long can I study for?<\/span><i class=\"vc_tta-controls-icon vc_tta-controls-icon-plus\"><\/i><\/a><\/h4><\/div><div class=\"vc_tta-panel-body\">\n\t<div class=\"wpb_text_column wpb_content_element \" >\n\t\t<div class=\"wpb_wrapper\">\n\t\t\t<p>Depending on the course, you can study for 1+ weeks. Our <a href=\"https:\/\/southbourneschool.co.uk\/english-courses\/adult-language-courses\/examination-courses\/\">Cambridge English Exam<\/a> courses run for 4 weeks on fixed dates throughout the year. Our <a href=\"https:\/\/southbourneschool.co.uk\/english-courses\/adult-language-courses\/summer-vacation-courses\/\">Adult Summer course<\/a> and <a href=\"https:\/\/southbourneschool.co.uk\/english-courses\/junior-language-courses\/summer-courses\/\">Junior Summer course<\/a> run from mid-June to the end-of-August, and you can study on these for a maximum of 10 weeks. If you have any questions about our courses, feel free to send us a message via our <a href=\"https:\/\/southbourneschool.co.uk\/contact-us\/\">contact form<\/a><\/p>\n\n\t\t<\/div>\n\t<\/div>\n<\/div><\/div><div class=\"vc_tta-panel\" id=\"1534412516372-e1fc64b6-84af\" data-vc-content=\".vc_tta-panel-body\"><div class=\"vc_tta-panel-heading\"><h4 class=\"vc_tta-panel-title vc_tta-controls-icon-position-left\"><a href=\"#1534412516372-e1fc64b6-84af\" data-vc-accordion data-vc-container=\".vc_tta-container\"><span class=\"vc_tta-title-text\">What is the minimum age for students?<\/span><i class=\"vc_tta-controls-icon vc_tta-controls-icon-plus\"><\/i><\/a><\/h4><\/div><div class=\"vc_tta-panel-body\">\n\t<div class=\"wpb_text_column wpb_content_element \" >\n\t\t<div class=\"wpb_wrapper\">\n\t\t\t<p>In summer, we accept students from the age of 9 at our main school (students aged 10 if accommodation is required). Outside of summer, we do not accept individual junior students, except in closed groups.<\/p>\n\n\t\t<\/div>\n\t<\/div>\n<\/div><\/div><div class=\"vc_tta-panel\" id=\"1534412549202-673976aa-f1e6\" data-vc-content=\".vc_tta-panel-body\"><div class=\"vc_tta-panel-heading\"><h4 class=\"vc_tta-panel-title vc_tta-controls-icon-position-left\"><a href=\"#1534412549202-673976aa-f1e6\" data-vc-accordion data-vc-container=\".vc_tta-container\"><span class=\"vc_tta-title-text\">Do I need a visa?<\/span><i class=\"vc_tta-controls-icon vc_tta-controls-icon-plus\"><\/i><\/a><\/h4><\/div><div class=\"vc_tta-panel-body\">\n\t<div class=\"wpb_text_column wpb_content_element \" >\n\t\t<div class=\"wpb_wrapper\">\n\t\t\t<p>If you come from a country outside of the European Union then you may need a visa. More information can be found on our school policies page <a href=\"https:\/\/southbourneschool.co.uk\/about\/school-policies\/\">here<\/a>.<\/p>\n\n\t\t<\/div>\n\t<\/div>\n<\/div><\/div><div class=\"vc_tta-panel\" id=\"1534412576302-fe87a973-952b\" data-vc-content=\".vc_tta-panel-body\"><div class=\"vc_tta-panel-heading\"><h4 class=\"vc_tta-panel-title vc_tta-controls-icon-position-left\"><a href=\"#1534412576302-fe87a973-952b\" data-vc-accordion data-vc-container=\".vc_tta-container\"><span class=\"vc_tta-title-text\">Do I need to pay a deposit?<\/span><i class=\"vc_tta-controls-icon vc_tta-controls-icon-plus\"><\/i><\/a><\/h4><\/div><div class=\"vc_tta-panel-body\">\n\t<div class=\"wpb_text_column wpb_content_element \" >\n\t\t<div class=\"wpb_wrapper\">\n\t\t\t<p>No, we ask for the \u00a3120 registration fee to enrol the student and we ask for payment for the course in full 4 weeks prior to the course start date. We cannot send out confirmation of booking, or visa application documents, before we have received a registration fee payment.<\/p>\n\n\t\t<\/div>\n\t<\/div>\n<\/div><\/div><div class=\"vc_tta-panel\" id=\"1534412605009-9144e18b-5241\" data-vc-content=\".vc_tta-panel-body\"><div class=\"vc_tta-panel-heading\"><h4 class=\"vc_tta-panel-title vc_tta-controls-icon-position-left\"><a href=\"#1534412605009-9144e18b-5241\" data-vc-accordion data-vc-container=\".vc_tta-container\"><span class=\"vc_tta-title-text\">What facilities does Southbourne School of English offer?<\/span><i class=\"vc_tta-controls-icon vc_tta-controls-icon-plus\"><\/i><\/a><\/h4><\/div><div class=\"vc_tta-panel-body\">\n\t<div class=\"wpb_text_column wpb_content_element \" >\n\t\t<div class=\"wpb_wrapper\">\n\t\t\t<p>Please visit our <a href=\"https:\/\/southbourneschool.co.uk\/about\/school-facilities\/\">School Facilities<\/a> page<\/p>\n\n\t\t<\/div>\n\t<\/div>\n<\/div><\/div><div class=\"vc_tta-panel\" id=\"1534412733457-70cb2a4c-9f3a\" data-vc-content=\".vc_tta-panel-body\"><div class=\"vc_tta-panel-heading\"><h4 class=\"vc_tta-panel-title vc_tta-controls-icon-position-left\"><a href=\"#1534412733457-70cb2a4c-9f3a\" data-vc-accordion data-vc-container=\".vc_tta-container\"><span class=\"vc_tta-title-text\">Can the school arrange my accommodation?<\/span><i class=\"vc_tta-controls-icon vc_tta-controls-icon-plus\"><\/i><\/a><\/h4><\/div><div class=\"vc_tta-panel-body\">\n\t<div class=\"wpb_text_column wpb_content_element \" >\n\t\t<div class=\"wpb_wrapper\">\n\t\t\t<p>Our English school is able to offer <a href=\"https:\/\/southbourneschool.co.uk\/studying-in-bournemouth\/accommodation-welfare\/homestay\/\">homestay accommodation<\/a> year round, and private accommodation for students aged 18+ at specific dates in July-August &#8211; please view our latest <a href=\"https:\/\/southbourneschool.co.uk\/language-courses\/adult-language-courses\/summer-vacation-courses\/\">Course Dates &amp; Fees<\/a> for more details. All of our homestay accommodation is either within a 30-minute walk, or a short bus journey from the school. Students under the age of 16 staying in homestay accommodation for longer than 27 nights will need to be placed with a Private Foster family due to <a href=\"https:\/\/www.dorsetcouncil.gov.uk\/-\/private-fostering#:~:text=Private%20fostering%20is%20when%20a%20child%20under%20the%20age%20of%2016%20(or%2018%20if%20disabled)%20lives%20with%20someone%20for%2028%20days%20or%20more\">Private Fostering Laws<\/a><\/p>\n<p>If you wish to rent a flat privately, we would suggest that you <a href=\"http:\/\/www.bournecoast.co.uk\/\" target=\"_blank\" rel=\"noopener noreferrer\">visit the Bournecoast website<\/a>.<\/p>\n\n\t\t<\/div>\n\t<\/div>\n<\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div><div class=\"wpb_column vc_column_container vc_col-sm-4 vc_col-sm-offset-1 vc_hidden-xs\"><div class=\"vc_column-inner\"><div class=\"wpb_wrapper\"><div  class=\"vc_wp_custommenu wpb_content_element child-page-menu\"><div class=\"widget widget_nav_menu\"><div class=\"menu-school-facilities-child-menu-container\"><ul id=\"menu-school-facilities-child-menu\" class=\"menu\"><li id=\"menu-item-446\" class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-446 msm-top-level-item\"><a href=\"https:\/\/southbourneschool.co.uk\/pl\/about\/\">About<\/a>\n<ul class=\"sub-menu\">\n\t<li id=\"menu-item-492\" class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-492\"><a href=\"https:\/\/southbourneschool.co.uk\/pl\/about\/school-facilities\/\">School Facilities<\/a><\/li>\n\t<li id=\"menu-item-1792\" class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-1792\"><a href=\"https:\/\/southbourneschool.co.uk\/pl\/about\/gallery\/\">Gallery<\/a><\/li>\n\t<li id=\"menu-item-3083\" class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-3083\"><a href=\"https:\/\/southbourneschool.co.uk\/pl\/hosting-students\/\">Become a Host Family for Students<\/a><\/li>\n\t<li id=\"menu-item-453\" class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-453\"><a href=\"https:\/\/southbourneschool.co.uk\/pl\/about\/our-team\/\">Our Team<\/a><\/li>\n\t<li id=\"menu-item-549\" class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-549\"><a href=\"https:\/\/southbourneschool.co.uk\/pl\/about\/join-our-team\/\">Join Our Team<\/a><\/li>\n\t<li id=\"menu-item-563\" class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-563\"><a href=\"https:\/\/southbourneschool.co.uk\/pl\/about\/testimonials-accreditations\/\">Testimonials &#038; Accreditations<\/a><\/li>\n\t<li id=\"menu-item-579\" class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-579\"><a href=\"https:\/\/southbourneschool.co.uk\/pl\/about\/school-policies\/\">School Policies<\/a><\/li>\n\t<li id=\"menu-item-3337\" class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-3337\"><a href=\"https:\/\/southbourneschool.co.uk\/pl\/about\/visa-information\/\">Visa Information<\/a><\/li>\n\t<li id=\"menu-item-596\" class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-596\"><a href=\"https:\/\/southbourneschool.co.uk\/pl\/about\/faqs\/\">Frequently Asked Questions<\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul><\/div><\/div><\/div>\n\t<div class=\"wpb_text_column wpb_content_element \" >\n\t\t<div class=\"wpb_wrapper\">\n\t\t\t    <style>\r\n        \/* Reset and base styles *\/\r\n        .sse-course-calculator * {\r\n            box-sizing: border-box;\r\n            margin: 0;\r\n            padding: 0;\r\n            font-family: inherit;\r\n        }\r\n        \r\n        .sse-course-calculator {\r\n            font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, sans-serif;\r\n            max-width: 800px;\r\n            margin: 0 auto;\r\n            padding: 20px;\r\n            background: #ffffff;\r\n            border-radius: 12px;\r\n            box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);\r\n        }\r\n        \r\n        \/* Header styles *\/\r\n        .sse-calculator-header h2 {\r\n            color: #1a56db;\r\n            font-size: 24px;\r\n            margin-bottom: 8px;\r\n            font-weight: 600;\r\n        }\r\n        \r\n        .sse-calculator-header p {\r\n            color: #6b7280;\r\n            font-size: 15px;\r\n            line-height: 1.5;\r\n            margin-bottom: 24px;\r\n        }\r\n        \r\n        \/* Form control styles *\/\r\n        .sse-form-group {\r\n            margin-bottom: 20px;\r\n            transition: opacity 0.3s ease, transform 0.3s ease;\r\n        }\r\n        \r\n        .sse-form-group.hidden {\r\n            display: none;\r\n        }\r\n        \r\n        .sse-form-group.fade-in {\r\n            animation: fadeIn 0.5s ease;\r\n        }\r\n        \r\n        @keyframes fadeIn {\r\n            from {\r\n                opacity: 0;\r\n                transform: translateY(10px);\r\n            }\r\n            to {\r\n                opacity: 1;\r\n                transform: translateY(0);\r\n            }\r\n        }\r\n        \r\n        .sse-form-group label {\r\n            display: block;\r\n            font-weight: 500;\r\n            color: #374151;\r\n            margin-bottom: 6px;\r\n            font-size: 14px;\r\n        }\r\n        \r\n        .sse-form-control {\r\n            width: 100%;\r\n            padding: 10px 12px;\r\n            border: 1px solid #d1d5db;\r\n            border-radius: 6px;\r\n            font-size: 15px;\r\n            color: #111827;\r\n            background-color: #ffffff;\r\n            transition: border-color 0.15s ease;\r\n        }\r\n        \r\n        .sse-form-control:focus {\r\n            outline: none;\r\n            border-color: #1a56db;\r\n            box-shadow: 0 0 0 3px rgba(26, 86, 219, 0.1);\r\n        }\r\n        \r\n        .sse-form-control:hover {\r\n            border-color: #9ca3af;\r\n        }\r\n        \r\n        \/* Button styles *\/\r\n        .sse-btn {\r\n            display: block;\r\n            width: 100%;\r\n            padding: 12px;\r\n            border: none;\r\n            border-radius: 6px;\r\n            font-size: 16px;\r\n            font-weight: 500;\r\n            cursor: pointer;\r\n            transition: background-color 0.15s ease;\r\n            text-align: center;\r\n            text-decoration: none;\r\n            margin-top: 12px;\r\n        }\r\n        \r\n        .sse-btn-primary {\r\n            background-color: #1a56db;\r\n            color: white;\r\n        }\r\n        \r\n        .sse-btn-primary:hover {\r\n            background-color: #1e40af;\r\n        }\r\n        \r\n        .sse-btn-secondary {\r\n            background-color: #6b7280;\r\n            color: white;\r\n        }\r\n        \r\n        .sse-btn-secondary:hover {\r\n            background-color: #4b5563;\r\n        }\r\n        \r\n        .sse-btn-success {\r\n            background-color: #059669;\r\n            color: white;\r\n        }\r\n        \r\n        .sse-btn-success:hover {\r\n            background-color: #047857;\r\n        }\r\n        \r\n        .sse-btn-info {\r\n            background-color: #0ea5e9;\r\n            color: white;\r\n        }\r\n        \r\n        .sse-btn-info:hover {\r\n            background-color: #0284c7;\r\n        }\r\n        \r\n        \/* Button container for side-by-side buttons *\/\r\n        .sse-button-group {\r\n            display: grid;\r\n            grid-template-columns: 1fr;\r\n            gap: 12px;\r\n            margin-top: 20px;\r\n        }\r\n        \r\n        @media (min-width: 640px) {\r\n            .sse-button-group {\r\n                grid-template-columns: 1fr 1fr;\r\n            }\r\n        }\r\n        \r\n        \/* Total price display *\/\r\n        .sse-total-price {\r\n            font-size: 28px;\r\n            font-weight: 700;\r\n            color: #1a56db;\r\n            margin: 24px 0;\r\n            padding: 16px;\r\n            background-color: #f3f4f6;\r\n            border-radius: 8px;\r\n            text-align: center;\r\n            display: none;\r\n        }\r\n        \r\n        .sse-total-price.visible {\r\n            display: block;\r\n            animation: fadeIn 0.5s ease;\r\n        }\r\n        \r\n        \/* Breakdown section *\/\r\n        .sse-breakdown {\r\n            margin: 24px 0;\r\n            padding: 20px;\r\n            background-color: #f9fafb;\r\n            border-radius: 8px;\r\n            border: 1px solid #e5e7eb;\r\n            display: none;\r\n        }\r\n        \r\n        .sse-breakdown.visible {\r\n            display: block;\r\n            animation: fadeIn 0.5s ease;\r\n        }\r\n        \r\n        .sse-breakdown-title {\r\n            font-weight: 600;\r\n            color: #374151;\r\n            margin-bottom: 12px;\r\n            font-size: 16px;\r\n        }\r\n        \r\n        .sse-breakdown-grid {\r\n            display: flex;\r\n            flex-wrap: wrap;\r\n            gap: 10px;\r\n        }\r\n        \r\n        .sse-breakdown-item {\r\n            padding: 8px 12px;\r\n            background-color: #ffffff;\r\n            border: 1px solid #e5e7eb;\r\n            border-radius: 6px;\r\n            font-size: 13px;\r\n            line-height: 1.4;\r\n        }\r\n        \r\n        .sse-breakdown-item strong {\r\n            color: #374151;\r\n            font-weight: 600;\r\n        }\r\n        \r\n        \/* Extras and promo containers *\/\r\n        .sse-container-card {\r\n            margin: 20px 0;\r\n            padding: 20px;\r\n            border-radius: 8px;\r\n            border: 1px solid #e5e7eb;\r\n            display: none;\r\n        }\r\n        \r\n        .sse-container-card.visible {\r\n            display: block;\r\n            animation: fadeIn 0.5s ease;\r\n        }\r\n        \r\n        .sse-extras-container {\r\n            background-color: #f0f9ff;\r\n            border-color: #bae6fd;\r\n        }\r\n        \r\n        .sse-promo-container {\r\n            background-color: #fffbeb;\r\n            border-color: #fde68a;\r\n        }\r\n        \r\n        .sse-container-title {\r\n            font-size: 18px;\r\n            font-weight: 600;\r\n            color: #1a56db;\r\n            margin-bottom: 16px;\r\n        }\r\n        \r\n        .sse-promo-title {\r\n            color: #d97706;\r\n        }\r\n        \r\n        \/* Checkbox styles *\/\r\n        .sse-checkbox-group {\r\n            margin-top: 12px;\r\n        }\r\n        \r\n        .sse-checkbox-item {\r\n            display: flex;\r\n            align-items: flex-start;\r\n            margin-bottom: 10px;\r\n            padding: 8px 0;\r\n        }\r\n        \r\n        .sse-checkbox-item input[type=\"checkbox\"] {\r\n            margin: 2px 10px 0 0;\r\n            width: 16px;\r\n            height: 16px;\r\n            flex-shrink: 0;\r\n        }\r\n        \r\n        .sse-checkbox-item label {\r\n            font-weight: normal;\r\n            color: #374151;\r\n            font-size: 14px;\r\n            line-height: 1.5;\r\n            cursor: pointer;\r\n        }\r\n        \r\n        \/* Error and success messages *\/\r\n        .sse-error-message {\r\n            color: #dc2626;\r\n            font-size: 13px;\r\n            margin-top: 4px;\r\n            display: none;\r\n            padding-left: 26px;\r\n        }\r\n        \r\n        .sse-success-message {\r\n            color: #059669;\r\n            font-size: 13px;\r\n            margin-top: 4px;\r\n            display: none;\r\n        }\r\n        \r\n        .sse-warning-message {\r\n            color: #d97706;\r\n            font-size: 13px;\r\n            margin-top: 8px;\r\n            padding: 8px 12px;\r\n            background-color: #fffbeb;\r\n            border: 1px solid #fde68a;\r\n            border-radius: 6px;\r\n            display: none;\r\n        }\r\n        \r\n        .sse-warning-message.visible {\r\n            display: block;\r\n            animation: fadeIn 0.5s ease;\r\n        }\r\n        \r\n        \/* Text formatting *\/\r\n        .sse-strikethrough {\r\n            text-decoration: line-through;\r\n            color: #9ca3af;\r\n            margin-right: 4px;\r\n        }\r\n        \r\n        .sse-discounted {\r\n            color: #059669;\r\n            font-weight: 600;\r\n        }\r\n        \r\n        \/* Progress indicator *\/\r\n        .sse-progress-indicator {\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: space-between;\r\n            margin-bottom: 30px;\r\n            padding: 10px;\r\n            background-color: #f9fafb;\r\n            border-radius: 8px;\r\n        }\r\n        \r\n        .sse-progress-step {\r\n            display: flex;\r\n            flex-direction: column;\r\n            align-items: center;\r\n            flex: 1;\r\n            position: relative;\r\n        }\r\n        \r\n        .sse-progress-step:not(:last-child)::after {\r\n            content: '';\r\n            position: absolute;\r\n            top: 12px;\r\n            right: -50%;\r\n            width: 100%;\r\n            height: 2px;\r\n            background-color: #e5e7eb;\r\n            z-index: 1;\r\n        }\r\n        \r\n        .sse-progress-step.active:not(:last-child)::after {\r\n            background-color: #1a56db;\r\n        }\r\n        \r\n        .sse-progress-circle {\r\n            width: 24px;\r\n            height: 24px;\r\n            border-radius: 50%;\r\n            background-color: #e5e7eb;\r\n            color: #6b7280;\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n            font-size: 12px;\r\n            font-weight: 600;\r\n            z-index: 2;\r\n            margin-bottom: 6px;\r\n        }\r\n        \r\n        .sse-progress-step.active .sse-progress-circle {\r\n            background-color: #1a56db;\r\n            color: white;\r\n        }\r\n        \r\n        .sse-progress-step.completed .sse-progress-circle {\r\n            background-color: #059669;\r\n            color: white;\r\n        }\r\n        \r\n        .sse-progress-label {\r\n            font-size: 11px;\r\n            color: #6b7280;\r\n            text-align: center;\r\n            max-width: 80px;\r\n        }\r\n        \r\n        .sse-progress-step.active .sse-progress-label {\r\n            color: #1a56db;\r\n            font-weight: 500;\r\n        }\r\n        \r\n        .sse-progress-step.completed .sse-progress-label {\r\n            color: #059669;\r\n        }\r\n        \r\n        \/* Floating reset button *\/\r\n        .sse-floating-reset {\r\n            position: fixed;\r\n            bottom: 20px;\r\n            right: 20px;\r\n            width: 50px;\r\n            height: 50px;\r\n            border-radius: 50%;\r\n            background-color: #dc2626;\r\n            color: white;\r\n            border: none;\r\n            cursor: pointer;\r\n            box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);\r\n            font-size: 24px;\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n            z-index: 1000;\r\n            transition: all 0.3s ease;\r\n            opacity: 0;\r\n            visibility: hidden;\r\n        }\r\n        \r\n        .sse-floating-reset.visible {\r\n            opacity: 1;\r\n            visibility: visible;\r\n        }\r\n        \r\n        .sse-floating-reset:hover {\r\n            background-color: #b91c1c;\r\n            transform: scale(1.1);\r\n        }\r\n        \r\n        \/* Responsive design *\/\r\n        @media (max-width: 640px) {\r\n            .sse-course-calculator {\r\n                padding: 16px;\r\n            }\r\n            \r\n            .sse-calculator-header h2 {\r\n                font-size: 20px;\r\n            }\r\n            \r\n            .sse-total-price {\r\n                font-size: 24px;\r\n                padding: 12px;\r\n            }\r\n            \r\n            .sse-breakdown-item {\r\n                font-size: 12px;\r\n                padding: 6px 10px;\r\n            }\r\n            \r\n            .sse-form-control {\r\n                font-size: 14px;\r\n                padding: 8px 10px;\r\n            }\r\n            \r\n            .sse-btn {\r\n                padding: 10px;\r\n                font-size: 15px;\r\n            }\r\n            \r\n            .sse-progress-label {\r\n                font-size: 10px;\r\n                max-width: 60px;\r\n            }\r\n            \r\n            .sse-progress-step:not(:last-child)::after {\r\n                right: -40%;\r\n            }\r\n            \r\n            .sse-floating-reset {\r\n                bottom: 70px;\r\n                right: 15px;\r\n                width: 45px;\r\n                height: 45px;\r\n                font-size: 20px;\r\n            }\r\n        }\r\n        \r\n        @media (max-width: 480px) {\r\n            .sse-progress-label {\r\n                display: none;\r\n            }\r\n            \r\n            .sse-progress-step:not(:last-child)::after {\r\n                right: -50%;\r\n            }\r\n        }\r\n    <\/style>\r\n\r\n    <div class=\"sse-course-calculator\">\r\n        <div class=\"sse-calculator-header\">\r\n            <h2>English Course Calculator 2026<\/h2>\r\n            <p>Plan your English course with our easy-to-use calculator. Select your course, duration, accommodation, and transfers to get an instant price estimate.<\/p>\r\n        <\/div>\r\n\r\n        <!-- Progress Indicator -->\r\n        <div class=\"sse-progress-indicator\">\r\n            <div class=\"sse-progress-step active\" id=\"sse-step-1\">\r\n                <div class=\"sse-progress-circle\">1<\/div>\r\n                <div class=\"sse-progress-label\">Course Type<\/div>\r\n            <\/div>\r\n            <div class=\"sse-progress-step\" id=\"sse-step-2\">\r\n                <div class=\"sse-progress-circle\">2<\/div>\r\n                <div class=\"sse-progress-label\">Course<\/div>\r\n            <\/div>\r\n            <div class=\"sse-progress-step\" id=\"sse-step-3\">\r\n                <div class=\"sse-progress-circle\">3<\/div>\r\n                <div class=\"sse-progress-label\">Duration<\/div>\r\n            <\/div>\r\n            <div class=\"sse-progress-step\" id=\"sse-step-4\">\r\n                <div class=\"sse-progress-circle\">4<\/div>\r\n                <div class=\"sse-progress-label\">Start Date<\/div>\r\n            <\/div>\r\n            <div class=\"sse-progress-step\" id=\"sse-step-5\">\r\n                <div class=\"sse-progress-circle\">5<\/div>\r\n                <div class=\"sse-progress-label\">Options<\/div>\r\n            <\/div>\r\n        <\/div>\r\n\r\n        <!-- Warning message for junior course adjustment -->\r\n        <div class=\"sse-warning-message hidden\" id=\"sse-juniorWarning\">\r\n            Junior summer courses cannot run past August 23rd, 2026. Your course duration has been adjusted to <span id=\"sse-adjustedWeeks\">0<\/span> weeks.\r\n        <\/div>\r\n\r\n        <!-- Step 1: Course Category -->\r\n        <div class=\"sse-form-group fade-in\" id=\"sse-courseCategoryGroup\">\r\n            <label for=\"sse-courseCategory\">Select Course Category:<\/label>\r\n            <select id=\"sse-courseCategory\" class=\"sse-form-control\">\r\n                <option value=\"\">Select an English course category<\/option>\r\n                <option value=\"general\">General and Intensive English courses<\/option>\r\n                <option value=\"extra\">Extra Intensive English courses<\/option>\r\n                <option value=\"cambridge\">Cambridge English Exam courses<\/option>\r\n                <option value=\"junior\">Junior English courses<\/option>\r\n            <\/select>\r\n        <\/div>\r\n\r\n        <!-- Step 2: Course Selection -->\r\n        <div class=\"sse-form-group hidden\" id=\"sse-courseGroup\">\r\n            <label for=\"sse-course\">Select Course:<\/label>\r\n            <select id=\"sse-course\" class=\"sse-form-control\">\r\n                <option value=\"0\">Select a course<\/option>\r\n            <\/select>\r\n        <\/div>\r\n\r\n        <!-- Step 3: Duration -->\r\n        <div class=\"sse-form-group hidden\" id=\"sse-weeksGroup\">\r\n            <label for=\"sse-weeks\">Course Duration:<\/label>\r\n            <select id=\"sse-weeks\" class=\"sse-form-control\">\r\n                <option value=\"\" disabled selected>Select duration<\/option>\r\n            <\/select>\r\n        <\/div>\r\n\r\n        <!-- Step 4: Start Date -->\r\n        <div class=\"sse-form-group hidden\" id=\"sse-dateGroup\">\r\n            <label for=\"sse-startDate\">Start Date:<\/label>\r\n            <input type=\"text\" id=\"sse-startDate\" class=\"sse-form-control\" placeholder=\"Select start date\" readonly>\r\n        <\/div>\r\n\r\n        <!-- Step 5: Accommodation & Extras (appear together) -->\r\n        <div class=\"sse-form-group hidden\" id=\"sse-accommodationGroup\">\r\n            <label for=\"sse-accommodation\">Accommodation:<\/label>\r\n            <select id=\"sse-accommodation\" class=\"sse-form-control\">\r\n                <option value=\"0\">No accommodation required<\/option>\r\n            <\/select>\r\n        <\/div>\r\n\r\n        <!-- Extras Section (appears alongside accommodation) -->\r\n        <div class=\"sse-container-card sse-extras-container hidden\" id=\"sse-extrasGroup\">\r\n            <h3 class=\"sse-container-title\">Extras and Supplements<\/h3>\r\n            <div class=\"sse-checkbox-group\">\r\n                <div class=\"sse-checkbox-item\">\r\n                    <input type=\"checkbox\" id=\"sse-privateBathroom\" name=\"extras\" value=\"privateBathroom\">\r\n                    <label for=\"sse-privateBathroom\">Private Bathroom (\u00a380 per week)<\/label>\r\n                    <div class=\"sse-error-message\" id=\"sse-privateBathroomError\">Please select accommodation for students age 15+ to add this option<\/div>\r\n                <\/div>\r\n                <div class=\"sse-checkbox-item\">\r\n                    <input type=\"checkbox\" id=\"sse-specialDiet\" name=\"extras\" value=\"specialDiet\">\r\n                    <label for=\"sse-specialDiet\">Special Diet (\u00a335\/week for Part Board, \u00a345\/week for Full Board)<\/label>\r\n                    <div class=\"sse-error-message\" id=\"sse-specialDietError\">Please select accommodation to add this option<\/div>\r\n                <\/div>\r\n                <div class=\"sse-checkbox-item\">\r\n                    <input type=\"checkbox\" id=\"sse-studentInsurance\" name=\"extras\" value=\"studentInsurance\">\r\n                    <label for=\"sse-studentInsurance\">Student Insurance (\u00a35 one-time + \u00a37 per week)<\/label>\r\n                <\/div>\r\n                <div class=\"sse-checkbox-item\">\r\n                    <input type=\"checkbox\" id=\"sse-summerActivities\" name=\"extras\" value=\"summerActivities\">\r\n                    <label for=\"sse-summerActivities\">Summer Activity Package (<span id=\"sse-summerActivitiesPrice\">\u00a3130<\/span> per summer week)<\/label>\r\n                    <div class=\"sse-error-message\" id=\"sse-summerActivitiesError\">Available only for General\/Intensive English courses with summer weeks<\/div>\r\n                <\/div>\r\n                <div class=\"sse-checkbox-item\" id=\"sse-cambridgeExamContainer\" style=\"display: none;\">\r\n                    <input type=\"checkbox\" id=\"sse-cambridgeExam\" name=\"extras\" value=\"cambridgeExam\">\r\n                    <label for=\"sse-cambridgeExam\">Cambridge Exam Fee (Priced on Application)<\/label>\r\n                <\/div>\r\n                <div class=\"sse-checkbox-item\" id=\"sse-under12Container\" style=\"display: none;\">\r\n                    <input type=\"checkbox\" id=\"sse-under12\" name=\"extras\" value=\"under12\">\r\n                    <label for=\"sse-under12\">Under 12 Years Old Supplement (\u00a340 per week)<\/label>\r\n                    <div class=\"sse-error-message\" id=\"sse-under12Error\">Available only for Junior English courses<\/div>\r\n                <\/div>\r\n            <\/div>\r\n        <\/div>\r\n\r\n        <!-- Step 6: Transfers -->\r\n        <div class=\"sse-form-group hidden\" id=\"sse-arrivalTransferGroup\">\r\n            <label for=\"sse-arrivalTransfer\">Arrival Transfer:<\/label>\r\n            <select id=\"sse-arrivalTransfer\" class=\"sse-form-control\">\r\n                <option value=\"0\">No Arrival Transfer required<\/option>\r\n            <\/select>\r\n        <\/div>\r\n\r\n        <div class=\"sse-form-group hidden\" id=\"sse-departureTransferGroup\">\r\n            <label for=\"sse-departureTransfer\">Departure Transfer:<\/label>\r\n            <select id=\"sse-departureTransfer\" class=\"sse-form-control\">\r\n                <option value=\"0\">No Departure Transfer required<\/option>\r\n            <\/select>\r\n        <\/div>\r\n\r\n        <!-- Promo Code Section (appears after extras) -->\r\n        <div class=\"sse-container-card sse-promo-container hidden\" id=\"sse-promoGroup\">\r\n            <h3 class=\"sse-container-title sse-promo-title\">Promo Code<\/h3>\r\n            <input type=\"text\" id=\"sse-promoCode\" class=\"sse-form-control\" placeholder=\"Enter promo code\">\r\n            <div class=\"sse-error-message\" id=\"sse-promoCodeError\" style=\"display: none;\">Invalid promo code<\/div>\r\n            <div class=\"sse-success-message\" id=\"sse-promoCodeSuccess\" style=\"display: none;\">Promo code applied!<\/div>\r\n        <\/div>\r\n\r\n        <!-- Results Section (appears at the end) -->\r\n        <div class=\"sse-total-price hidden\" id=\"sse-totalPriceGroup\">\r\n            Total Price: \u00a3<span id=\"sse-TotalPrice\">0<\/span>\r\n        <\/div>\r\n        \r\n        <div class=\"sse-breakdown hidden\" id=\"sse-breakdownGroup\"><\/div>\r\n\r\n        <!-- Action Buttons (appear at the end) -->\r\n        <div class=\"sse-button-group hidden\" id=\"sse-actionsGroup\">\r\n            <button class=\"sse-btn sse-btn-primary\" id=\"sse-bookNow\">Book Now<\/button>\r\n            <button class=\"sse-btn sse-btn-success\" id=\"sse-downloadQuote\">Download Quote (PDF)<\/button>\r\n            <button class=\"sse-btn sse-btn-info\" id=\"sse-viewPriceList\">View Full Price List<\/button>\r\n            <button class=\"sse-btn sse-btn-secondary\" id=\"sse-resetForm\">Reset Form<\/button>\r\n        <\/div>\r\n        \r\n        <!-- Floating Reset Button -->\r\n        <button class=\"sse-floating-reset hidden\" id=\"sse-floatingReset\" title=\"Reset Form\">\u21ba<\/button>\r\n    <\/div>\r\n\r\n    <!-- External Libraries -->\r\n    <link rel=\"stylesheet\" href=\"https:\/\/cdn.jsdelivr.net\/npm\/flatpickr\/dist\/flatpickr.min.css\">\r\n    <script src=\"https:\/\/cdn.jsdelivr.net\/npm\/flatpickr\"><\/script>\r\n    <!-- jsPDF Library for PDF generation -->\r\n    <script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/jspdf\/2.5.1\/jspdf.umd.min.js\"><\/script>\r\n\r\n    <script>\r\n        (function() {\r\n            'use strict';\r\n            \r\n            \/\/ Course data for 2026\r\n            const courseData = {\r\n                general: \"310,280,245,235\", \/\/ 1-11, 12-23, 24-35, 36+ weeks\r\n                intensive: \"355,325,290,280\",\r\n                extra: {\r\n                    \"1-to-1\": 80,\r\n                    \"5-to-1\": 380,\r\n                    \"10-to-1\": 720,\r\n                    \"20-to-1\": 1360\r\n                },\r\n                cambridge: \"405,405\",\r\n                junior: \"400,570\",\r\n                summerActivitiesPrice: 130,\r\n                summerSupplement: {\r\n                    general: 50,\r\n                    intensive: 50\r\n                },\r\n                under12Supplement: 40, \/\/ \u00a340 per week for under 12\r\n                privateFosterSupplement: 75 \/\/ \u00a375 per week for private foster family supplement\r\n            };\r\n\r\n            \/\/ Cambridge course dates for 2026 - UPDATED\r\n            const cambridgeDates = {\r\n                \"Cambridge English B2 First (21hrs per week - 4 weeks)\": [\r\n                    \"16\/02\/2026\",\r\n                    \"03\/08\/2026\",\r\n                    \"16\/11\/2026\"\r\n                ],\r\n                \"Cambridge English C1 Advanced (21hrs per week - 4 weeks)\": [\r\n                    \"23\/02\/2026\",\r\n                    \"03\/08\/2026\",\r\n                    \"16\/11\/2026\"\r\n                ]\r\n            };\r\n\r\n            \/\/ Summer dates for 2026 (28th June to 23rd August)\r\n            const summerDates = {\r\n                start: new Date(2026, 5, 28), \/\/ June 28, 2026\r\n                end: new Date(2026, 7, 17)    \/\/ August 23, 2026\r\n            };\r\n\r\n            \/\/ Junior summer course dates (28th June to 17th August 2026)\r\n            const juniorSummerDates = {\r\n                start: new Date(2026, 5, 28), \/\/ June 28, 2026\r\n                end: new Date(2026, 7, 17)    \/\/ August 17, 2026\r\n            };\r\n\r\n            \/\/ Transfer prices for 2026\r\n            const transferPrices = [\r\n                { value: \"220\", text: \"London Heathrow (Private Taxi)\", summerOnly: false },\r\n                { value: \"150\", text: \"London Heathrow (Summer Collective)\", summerOnly: true },\r\n                { value: \"245\", text: \"London Gatwick (Private Taxi)\", summerOnly: false },\r\n                { value: \"265\", text: \"London Luton (Private Taxi)\", summerOnly: false },\r\n                { value: \"120\", text: \"Southampton (Private Taxi)\", summerOnly: false },\r\n                { value: \"60\", text: \"Bournemouth (Private Taxi)\", summerOnly: false },\r\n                { value: \"295\", text: \"London City (Private Taxi)\", summerOnly: false },\r\n                { value: \"295\", text: \"Stansted (Private Taxi)\", summerOnly: false }\r\n            ];\r\n\r\n            \/\/ Accommodation prices for 2026 - REMOVED private foster family option\r\n            const accommodationPrices = [\r\n                { value: \"180\", text: \"Adult Part Board Homestay (Age 16+)\" },\r\n                { value: \"210\", text: \"Adult Full Board Homestay Accommodation (Age 15+)\" },\r\n                { value: \"POA\", text: \"Summer Season Self Catered Residential (Age 18+)\" },\r\n                { value: \"255\", text: \"Full Board Homestay Accommodation (Age 10-15)\" }\r\n            ];\r\n\r\n            \/\/ Valid promo codes for 2026 (10% off adult General\/Intensive English)\r\n            const validPromoCodes = [\r\n                \"BRAZIL10\", \"JAPAN10\", \"LATAM10\", \"KOREA10\", \r\n                \"TAIWAN10\", \"THAILAND10\", \"TURKEY10\"\r\n            ];\r\n\r\n            \/\/ Get DOM elements\r\n            const elements = {\r\n                \/\/ Progress steps\r\n                step1: document.getElementById('sse-step-1'),\r\n                step2: document.getElementById('sse-step-2'),\r\n                step3: document.getElementById('sse-step-3'),\r\n                step4: document.getElementById('sse-step-4'),\r\n                step5: document.getElementById('sse-step-5'),\r\n                \r\n                \/\/ Warning message\r\n                juniorWarning: document.getElementById('sse-juniorWarning'),\r\n                adjustedWeeks: document.getElementById('sse-adjustedWeeks'),\r\n                \r\n                \/\/ Form groups\r\n                courseCategoryGroup: document.getElementById('sse-courseCategoryGroup'),\r\n                courseGroup: document.getElementById('sse-courseGroup'),\r\n                weeksGroup: document.getElementById('sse-weeksGroup'),\r\n                dateGroup: document.getElementById('sse-dateGroup'),\r\n                accommodationGroup: document.getElementById('sse-accommodationGroup'),\r\n                arrivalTransferGroup: document.getElementById('sse-arrivalTransferGroup'),\r\n                departureTransferGroup: document.getElementById('sse-departureTransferGroup'),\r\n                extrasGroup: document.getElementById('sse-extrasGroup'),\r\n                promoGroup: document.getElementById('sse-promoGroup'),\r\n                totalPriceGroup: document.getElementById('sse-totalPriceGroup'),\r\n                breakdownGroup: document.getElementById('sse-breakdownGroup'),\r\n                actionsGroup: document.getElementById('sse-actionsGroup'),\r\n                \r\n                \/\/ Form inputs\r\n                courseCategory: document.getElementById('sse-courseCategory'),\r\n                course: document.getElementById('sse-course'),\r\n                weeks: document.getElementById('sse-weeks'),\r\n                startDate: document.getElementById('sse-startDate'),\r\n                accommodation: document.getElementById('sse-accommodation'),\r\n                arrivalTransfer: document.getElementById('sse-arrivalTransfer'),\r\n                departureTransfer: document.getElementById('sse-departureTransfer'),\r\n                privateBathroom: document.getElementById('sse-privateBathroom'),\r\n                specialDiet: document.getElementById('sse-specialDiet'),\r\n                studentInsurance: document.getElementById('sse-studentInsurance'),\r\n                summerActivities: document.getElementById('sse-summerActivities'),\r\n                summerActivitiesPrice: document.getElementById('sse-summerActivitiesPrice'),\r\n                cambridgeExam: document.getElementById('sse-cambridgeExam'),\r\n                cambridgeExamContainer: document.getElementById('sse-cambridgeExamContainer'),\r\n                under12: document.getElementById('sse-under12'),\r\n                under12Container: document.getElementById('sse-under12Container'),\r\n                under12Error: document.getElementById('sse-under12Error'),\r\n                privateBathroomError: document.getElementById('sse-privateBathroomError'),\r\n                specialDietError: document.getElementById('sse-specialDietError'),\r\n                summerActivitiesError: document.getElementById('sse-summerActivitiesError'),\r\n                promoCode: document.getElementById('sse-promoCode'),\r\n                promoCodeError: document.getElementById('sse-promoCodeError'),\r\n                promoCodeSuccess: document.getElementById('sse-promoCodeSuccess'),\r\n                totalPrice: document.getElementById('sse-TotalPrice'),\r\n                breakdown: document.getElementById('sse-breakdownGroup'),\r\n                bookNow: document.getElementById('sse-bookNow'),\r\n                downloadQuote: document.getElementById('sse-downloadQuote'),\r\n                viewPriceList: document.getElementById('sse-viewPriceList'),\r\n                resetForm: document.getElementById('sse-resetForm'),\r\n                \r\n                \/\/ Floating reset button\r\n                floatingReset: document.getElementById('sse-floatingReset')\r\n            };\r\n\r\n            let datePicker = null;\r\n            let currentCalculationData = null;\r\n            let lastJuniorAdjustmentWeeks = 0;\r\n\r\n            \/\/ Initialize the calculator\r\n            function init() {\r\n                \/\/ Set up event listeners\r\n                elements.courseCategory.addEventListener('change', onCategoryChange);\r\n                elements.course.addEventListener('change', onCourseChange);\r\n                elements.weeks.addEventListener('change', onWeeksChange);\r\n                elements.startDate.addEventListener('change', onDateChange);\r\n                elements.accommodation.addEventListener('change', onAccommodationChange);\r\n                elements.arrivalTransfer.addEventListener('change', calculateTotal);\r\n                elements.departureTransfer.addEventListener('change', calculateTotal);\r\n                elements.privateBathroom.addEventListener('change', calculateTotal);\r\n                elements.specialDiet.addEventListener('change', calculateTotal);\r\n                elements.studentInsurance.addEventListener('change', calculateTotal);\r\n                elements.summerActivities.addEventListener('change', calculateTotal);\r\n                elements.cambridgeExam.addEventListener('change', calculateTotal);\r\n                elements.under12.addEventListener('change', calculateTotal);\r\n                elements.promoCode.addEventListener('input', calculateTotal);\r\n                elements.bookNow.addEventListener('click', sendBookingEmail);\r\n                elements.downloadQuote.addEventListener('click', downloadQuotePDF);\r\n                elements.viewPriceList.addEventListener('click', viewPriceList);\r\n                elements.resetForm.addEventListener('click', resetForm);\r\n                elements.floatingReset.addEventListener('click', resetForm);\r\n\r\n                \/\/ Initialize summer activities price\r\n                elements.summerActivitiesPrice.textContent = `\u00a3${courseData.summerActivitiesPrice}`;\r\n            }\r\n\r\n            function showElement(element) {\r\n                element.classList.remove('hidden');\r\n                \/\/ Add fade-in animation for form groups\r\n                if (element.classList.contains('sse-form-group')) {\r\n                    element.classList.add('fade-in');\r\n                    setTimeout(() => {\r\n                        element.classList.remove('fade-in');\r\n                    }, 500);\r\n                } else {\r\n                    \/\/ For container cards, use visible class\r\n                    element.classList.add('visible');\r\n                }\r\n            }\r\n\r\n            function hideElement(element) {\r\n                element.classList.add('hidden');\r\n                element.classList.remove('visible', 'fade-in');\r\n            }\r\n\r\n            function updateProgress() {\r\n                \/\/ Reset all steps\r\n                [elements.step1, elements.step2, elements.step3, elements.step4, elements.step5].forEach(step => {\r\n                    step.classList.remove('active', 'completed');\r\n                });\r\n\r\n                \/\/ Determine current step\r\n                if (elements.courseCategory.value) {\r\n                    elements.step1.classList.add('completed');\r\n                    elements.step2.classList.add('active');\r\n                } else {\r\n                    elements.step1.classList.add('active');\r\n                    return;\r\n                }\r\n\r\n                if (elements.course.value && elements.course.value !== '0') {\r\n                    elements.step2.classList.add('completed');\r\n                    elements.step3.classList.add('active');\r\n                } else {\r\n                    return;\r\n                }\r\n\r\n                if (elements.weeks.value) {\r\n                    elements.step3.classList.add('completed');\r\n                    elements.step4.classList.add('active');\r\n                } else {\r\n                    return;\r\n                }\r\n\r\n                if (elements.startDate.value) {\r\n                    elements.step4.classList.add('completed');\r\n                    elements.step5.classList.add('active');\r\n                }\r\n            }\r\n\r\n            function updateFloatingResetButton() {\r\n                \/\/ Show floating reset if any form field has a value\r\n                const hasSelection = elements.courseCategory.value || \r\n                                    (elements.course.value && elements.course.value !== '0') ||\r\n                                    elements.weeks.value ||\r\n                                    elements.startDate.value ||\r\n                                    (elements.accommodation.value && elements.accommodation.value !== '0');\r\n                \r\n                if (hasSelection) {\r\n                    elements.floatingReset.classList.add('visible');\r\n                } else {\r\n                    elements.floatingReset.classList.remove('visible');\r\n                }\r\n            }\r\n\r\n            function onCategoryChange() {\r\n                const category = elements.courseCategory.value;\r\n                \r\n                if (category) {\r\n                    filterCourses();\r\n                    showElement(elements.courseGroup);\r\n                    updateProgress();\r\n                    updateFloatingResetButton();\r\n                    \r\n                    \/\/ Hide subsequent steps\r\n                    hideElement(elements.weeksGroup);\r\n                    hideElement(elements.dateGroup);\r\n                    hideElement(elements.accommodationGroup);\r\n                    hideElement(elements.extrasGroup);\r\n                    hideElement(elements.arrivalTransferGroup);\r\n                    hideElement(elements.departureTransferGroup);\r\n                    hideElement(elements.promoGroup);\r\n                    hideElement(elements.totalPriceGroup);\r\n                    hideElement(elements.breakdownGroup);\r\n                    hideElement(elements.actionsGroup);\r\n                    hideElement(elements.juniorWarning);\r\n                    \r\n                    \/\/ Reset subsequent fields\r\n                    elements.course.value = '0';\r\n                    elements.weeks.innerHTML = '<option value=\"\" disabled selected>Select duration<\/option>';\r\n                    elements.startDate.value = '';\r\n                    elements.accommodation.innerHTML = '<option value=\"0\">No accommodation required<\/option>';\r\n                    elements.arrivalTransfer.innerHTML = '<option value=\"0\">No Arrival Transfer required<\/option>';\r\n                    elements.departureTransfer.innerHTML = '<option value=\"0\">No Departure Transfer required<\/option>';\r\n                } else {\r\n                    hideElement(elements.courseGroup);\r\n                    updateProgress();\r\n                    updateFloatingResetButton();\r\n                }\r\n            }\r\n\r\n            function filterCourses() {\r\n                const category = elements.courseCategory.value;\r\n                elements.course.innerHTML = '<option value=\"0\">Select a course<\/option>';\r\n\r\n                if (category === 'general') {\r\n                    addCourseOption('310,280,245,235', 'General English (15hrs per week)');\r\n                    addCourseOption('355,325,290,280', 'Intensive English (21hrs per week)');\r\n                } else if (category === 'extra') {\r\n                    addCourseOption('1-to-1', '1-to-1 English Lessons (Price per hour)');\r\n                    addCourseOption('5-to-1', '5-hour 1-to-1 English Lessons Package');\r\n                    addCourseOption('10-to-1', '10-hour 1-to-1 English Lessons Package');\r\n                    addCourseOption('20-to-1', '20-hour 1-to-1 English Lessons Package');\r\n                } else if (category === 'cambridge') {\r\n                    addCourseOption('405', 'Cambridge English B2 First (21hrs per week - 4 weeks)');\r\n                    addCourseOption('405', 'Cambridge English C1 Advanced (21hrs per week - 4 weeks)');\r\n                } else if (category === 'junior') {\r\n                    addCourseOption('400', 'Junior Summer General English (15hrs per week)');\r\n                    addCourseOption('570', 'Junior Summer General English + activities + full day excursion (15hrs per week)');\r\n                }\r\n            }\r\n\r\n            function addCourseOption(value, text) {\r\n                const option = document.createElement('option');\r\n                option.value = value;\r\n                option.textContent = text;\r\n                elements.course.appendChild(option);\r\n            }\r\n\r\n            function onCourseChange() {\r\n                const courseSelected = elements.course.value && elements.course.value !== '0';\r\n                const selectedCourse = elements.course.options[elements.course.selectedIndex]?.text || '';\r\n                const isCambridge = selectedCourse.includes('Cambridge English');\r\n                \r\n                if (courseSelected) {\r\n                    \/\/ Populate weeks dropdown first\r\n                    updateWeeksDropdown();\r\n                    \r\n                    \/\/ Then show the weeks group\r\n                    showElement(elements.weeksGroup);\r\n                    \r\n                    \/\/ If it's a Cambridge course, auto-select 4 weeks and proceed\r\n                    if (isCambridge) {\r\n                        elements.weeks.value = 4;\r\n                        \/\/ Call onWeeksChange to show date picker and initialize everything\r\n                        onWeeksChange();\r\n                    }\r\n                    \r\n                    updateProgress();\r\n                    updateFloatingResetButton();\r\n                    \r\n                    \/\/ Hide subsequent steps (will be shown by onWeeksChange if Cambridge)\r\n                    hideElement(elements.dateGroup);\r\n                    hideElement(elements.accommodationGroup);\r\n                    hideElement(elements.extrasGroup);\r\n                    hideElement(elements.arrivalTransferGroup);\r\n                    hideElement(elements.departureTransferGroup);\r\n                    hideElement(elements.promoGroup);\r\n                    hideElement(elements.totalPriceGroup);\r\n                    hideElement(elements.breakdownGroup);\r\n                    hideElement(elements.actionsGroup);\r\n                    hideElement(elements.juniorWarning);\r\n                    \r\n                    \/\/ Reset subsequent fields\r\n                    if (!isCambridge) {\r\n                        elements.weeks.value = '';\r\n                    }\r\n                    elements.startDate.value = '';\r\n                    filterAccommodations();\r\n                    filterTransfers();\r\n                } else {\r\n                    hideElement(elements.weeksGroup);\r\n                    updateProgress();\r\n                    updateFloatingResetButton();\r\n                }\r\n                \r\n                calculateTotal();\r\n            }\r\n\r\n            function updateWeeksDropdown() {\r\n                const category = elements.courseCategory.value;\r\n                const selectedCourse = elements.course.options[elements.course.selectedIndex]?.text || '';\r\n                const isSummerCourse = selectedCourse.includes('Summer');\r\n\r\n                elements.weeks.innerHTML = '<option value=\"\" disabled selected>Select duration<\/option>';\r\n\r\n                if (category === 'cambridge' || selectedCourse.includes('Cambridge English')) {\r\n                    \/\/ Cambridge courses are always 4 weeks - UPDATED\r\n                    addWeekOption(4, '4 weeks');\r\n                    elements.weeks.disabled = false; \/\/ Changed to false so it can be selected\r\n                } else {\r\n                    const maxWeeks = (category === 'junior' || isSummerCourse) ? 8 : 52;\r\n                    for (let i = 1; i <= maxWeeks; i++) {\r\n                        addWeekOption(i, `${i} week${i > 1 ? 's' : ''}`);\r\n                    }\r\n                    elements.weeks.disabled = false;\r\n                }\r\n            }\r\n\r\n            function addWeekOption(value, text) {\r\n                const option = document.createElement('option');\r\n                option.value = value;\r\n                option.textContent = text;\r\n                elements.weeks.appendChild(option);\r\n            }\r\n\r\n            function onWeeksChange() {\r\n                const weeksSelected = elements.weeks.value;\r\n                const selectedCourse = elements.course.options[elements.course.selectedIndex]?.text || '';\r\n                const isJuniorCourse = selectedCourse.includes('Junior');\r\n                const isCambridge = selectedCourse.includes('Cambridge English');\r\n                \r\n                if (weeksSelected) {\r\n                    \/\/ Initialize date picker and show date group\r\n                    initializeDatePicker();\r\n                    showElement(elements.dateGroup);\r\n                    \r\n                    \/\/ For junior courses, also show accommodation immediately after selecting weeks\r\n                    if (isJuniorCourse) {\r\n                        showAccommodationAndExtrasForJunior();\r\n                    }\r\n                    \r\n                    updateProgress();\r\n                    updateFloatingResetButton();\r\n                    \r\n                    \/\/ Hide subsequent steps that aren't shown yet\r\n                    if (!isJuniorCourse && !isCambridge) {\r\n                        hideElement(elements.accommodationGroup);\r\n                        hideElement(elements.extrasGroup);\r\n                    }\r\n                    hideElement(elements.arrivalTransferGroup);\r\n                    hideElement(elements.departureTransferGroup);\r\n                    hideElement(elements.promoGroup);\r\n                    hideElement(elements.totalPriceGroup);\r\n                    hideElement(elements.breakdownGroup);\r\n                    hideElement(elements.actionsGroup);\r\n                    \r\n                    filterAccommodations();\r\n                    filterTransfers();\r\n                    \r\n                    \/\/ For Cambridge courses, auto-select the first date\r\n                    if (isCambridge && cambridgeDates[selectedCourse] && cambridgeDates[selectedCourse].length > 0) {\r\n                        setTimeout(() => {\r\n                            const firstDate = cambridgeDates[selectedCourse][0];\r\n                            elements.startDate.value = firstDate;\r\n                            \/\/ Now trigger date change to show accommodation\r\n                            onDateChange();\r\n                        }, 100);\r\n                    }\r\n                } else {\r\n                    hideElement(elements.dateGroup);\r\n                    if (!isJuniorCourse && !isCambridge) {\r\n                        hideElement(elements.accommodationGroup);\r\n                        hideElement(elements.extrasGroup);\r\n                    }\r\n                    updateProgress();\r\n                    updateFloatingResetButton();\r\n                }\r\n                \r\n                calculateTotal();\r\n            }\r\n\r\n            function showAccommodationAndExtrasForJunior() {\r\n                \/\/ Show both accommodation and extras sections for junior courses\r\n                showElement(elements.accommodationGroup);\r\n                showElement(elements.extrasGroup);\r\n                \r\n                \/\/ Also show transfers since junior courses typically need transfers\r\n                showElement(elements.arrivalTransferGroup);\r\n                showElement(elements.departureTransferGroup);\r\n                \r\n                \/\/ Update extras availability for junior courses\r\n                updateExtrasAvailability();\r\n                updateSummerActivitiesAvailability();\r\n                updateUnder12Availability();\r\n            }\r\n\r\n            function initializeDatePicker() {\r\n                const category = elements.courseCategory.value;\r\n                const selectedCourse = elements.course.options[elements.course.selectedIndex]?.text || '';\r\n                \r\n                if (!category) {\r\n                    return;\r\n                }\r\n\r\n                if (datePicker) {\r\n                    datePicker.destroy();\r\n                }\r\n\r\n                \/\/ Set min date to today\r\n                const minDate = new Date();\r\n                minDate.setHours(0, 0, 0, 0);\r\n\r\n                if (cambridgeDates[selectedCourse]) {\r\n                    \/\/ Cambridge courses have specific dates\r\n                    datePicker = flatpickr(elements.startDate, {\r\n                        minDate: minDate,\r\n                        enable: cambridgeDates[selectedCourse],\r\n                        dateFormat: 'd\/m\/Y',\r\n                        disableMobile: true,\r\n                        onChange: onDateChange\r\n                    });\r\n                } else if (selectedCourse.includes('Junior Summer')) {\r\n                    \/\/ Junior summer courses: Sundays from 28th June to 17th August 2026\r\n                    const juniorStart = juniorSummerDates.start;\r\n                    const juniorEnd = juniorSummerDates.end;\r\n                    const effectiveMinDate = juniorStart > minDate ? juniorStart : minDate;\r\n\r\n                    datePicker = flatpickr(elements.startDate, {\r\n                        minDate: effectiveMinDate,\r\n                        maxDate: juniorEnd,\r\n                        enable: [function(date) {\r\n                            return date.getDay() === 0 && \r\n                                   date >= effectiveMinDate && \r\n                                   date <= juniorEnd;\r\n                        }],\r\n                        dateFormat: 'd\/m\/Y',\r\n                        disableMobile: true,\r\n                        defaultDate: juniorStart,\r\n                        onChange: onDateChange\r\n                    });\r\n                } else {\r\n                    \/\/ Other courses: Sundays and Mondays\r\n                    datePicker = flatpickr(elements.startDate, {\r\n                        minDate: minDate,\r\n                        enable: [function(date) {\r\n                            return (date.getDay() === 0 || date.getDay() === 1) && date >= minDate;\r\n                        }],\r\n                        dateFormat: 'd\/m\/Y',\r\n                        disableMobile: true,\r\n                        onChange: onDateChange\r\n                    });\r\n                }\r\n            }\r\n\r\n            function onDateChange() {\r\n                if (elements.startDate.value) {\r\n                    \/\/ Show accommodation and extras for non-junior courses and Cambridge courses\r\n                    const selectedCourse = elements.course.options[elements.course.selectedIndex]?.text || '';\r\n                    const isJuniorCourse = selectedCourse.includes('Junior');\r\n                    const isCambridge = selectedCourse.includes('Cambridge English');\r\n                    \r\n                    if (!isJuniorCourse || isCambridge) {\r\n                        showElement(elements.accommodationGroup);\r\n                        showElement(elements.extrasGroup);\r\n                    }\r\n                    \r\n                    updateProgress();\r\n                    updateFloatingResetButton();\r\n                    \r\n                    \/\/ Show transfers after date is selected\r\n                    showElement(elements.arrivalTransferGroup);\r\n                    showElement(elements.departureTransferGroup);\r\n                    \r\n                    \/\/ Show promo code section\r\n                    showElement(elements.promoGroup);\r\n                    \r\n                    filterAccommodations();\r\n                    filterTransfers();\r\n                    updateExtrasAvailability();\r\n                    updateSummerActivitiesAvailability();\r\n                    updateUnder12Availability();\r\n                    \r\n                    \/\/ Check for junior course end date constraint\r\n                    checkJuniorCourseEndDate();\r\n                }\r\n                \r\n                calculateTotal();\r\n            }\r\n\r\n            function onAccommodationChange() {\r\n                updateExtrasAvailability();\r\n                updateSummerActivitiesAvailability();\r\n                updateUnder12Availability();\r\n                calculateTotal();\r\n                updateFloatingResetButton();\r\n            }\r\n\r\n            function checkJuniorCourseEndDate() {\r\n                const selectedCourse = elements.course.options[elements.course.selectedIndex]?.text || '';\r\n                const isJuniorSummer = selectedCourse.includes('Junior Summer');\r\n                \r\n                if (!isJuniorSummer || !elements.startDate.value || !elements.weeks.value) {\r\n                    hideElement(elements.juniorWarning);\r\n                    return;\r\n                }\r\n\r\n                const weeks = parseInt(elements.weeks.value);\r\n                const dateParts = elements.startDate.value.split('\/');\r\n                const startDate = new Date(dateParts[2], dateParts[1] - 1, dateParts[0]);\r\n                const endDate = new Date(startDate);\r\n                endDate.setDate(endDate.getDate() + (weeks * 7));\r\n                \r\n                \/\/ Junior courses cannot end after August 23rd, 2026\r\n                const maxEndDate = new Date(2026, 7, 23); \/\/ August 23, 2026\r\n                \r\n                if (endDate > maxEndDate) {\r\n                    \/\/ Calculate maximum weeks possible\r\n                    const maxWeeks = Math.floor((maxEndDate - startDate) \/ (7 * 24 * 60 * 60 * 1000));\r\n                    \r\n                    if (maxWeeks >= 1) {\r\n                        \/\/ Update weeks dropdown to max weeks\r\n                        elements.weeks.value = maxWeeks;\r\n                        lastJuniorAdjustmentWeeks = maxWeeks;\r\n                        elements.adjustedWeeks.textContent = maxWeeks;\r\n                        showElement(elements.juniorWarning);\r\n                        \r\n                        \/\/ Recalculate total with adjusted weeks\r\n                        calculateTotal();\r\n                    } else {\r\n                        \/\/ If even 1 week would go past the date, clear the selection\r\n                        elements.weeks.value = '';\r\n                        hideElement(elements.juniorWarning);\r\n                    }\r\n                } else {\r\n                    hideElement(elements.juniorWarning);\r\n                }\r\n            }\r\n\r\n            function filterAccommodations() {\r\n                const selectedCourse = elements.course.options[elements.course.selectedIndex]?.text || '';\r\n                const selectedWeeks = parseInt(elements.weeks.value) || 1;\r\n                const startDateStr = elements.startDate.value;\r\n\r\n                let isSummer = false;\r\n                if (startDateStr) {\r\n                    const dateParts = startDateStr.split('\/');\r\n                    const startDate = new Date(dateParts[2], dateParts[1] - 1, dateParts[0]);\r\n                    isSummer = isSummerDate(startDate);\r\n                }\r\n\r\n                let filteredAccommodations = [];\r\n\r\n                if (['General English (15hrs per week)', 'Intensive English (21hrs per week)'].includes(selectedCourse)) {\r\n                    filteredAccommodations = accommodationPrices.filter(accom => \r\n                        accom.text.includes('Adult') || accom.text.includes('Homestay'));\r\n                } else if (['Cambridge English B2 First (21hrs per week - 4 weeks)', \r\n                           'Cambridge English C1 Advanced (21hrs per week - 4 weeks)'].includes(selectedCourse)) {\r\n                    filteredAccommodations = accommodationPrices.filter(accom =>\r\n                        accom.text.includes('Age 16+') || accom.text.includes('Self Catered Residential'));\r\n                } else if (selectedCourse.includes('Junior')) {\r\n                    \/\/ Junior courses - show only Full Board Homestay Accommodation (Age 10-15)\r\n                    filteredAccommodations = accommodationPrices.filter(accom => \r\n                        accom.text.includes('Full Board Homestay Accommodation (Age 10-15)'));\r\n                } else {\r\n                    filteredAccommodations = accommodationPrices;\r\n                }\r\n\r\n                elements.accommodation.innerHTML = '<option value=\"0\">No accommodation required<\/option>';\r\n                filteredAccommodations.forEach(accom => {\r\n                    const option = document.createElement('option');\r\n                    const value = (isSummer && accom.summerValue) ? accom.summerValue : accom.value;\r\n                    option.value = value === 'POA' ? '0' : value;\r\n                    option.textContent = accom.text;\r\n                    elements.accommodation.appendChild(option);\r\n                });\r\n\r\n                updateExtrasAvailability();\r\n                updateSummerActivitiesAvailability();\r\n                updateUnder12Availability();\r\n            }\r\n\r\n            function isSummerDate(date) {\r\n                return date >= summerDates.start && date <= summerDates.end;\r\n            }\r\n\r\n            function filterTransfers() {\r\n                const startDateStr = elements.startDate.value;\r\n                const weeks = parseInt(elements.weeks.value) || 0;\r\n                \r\n                let isStartDateInSummer = false;\r\n                let isEndDateInSummer = false;\r\n                \r\n                if (startDateStr && weeks > 0) {\r\n                    const dateParts = startDateStr.split('\/');\r\n                    const startDate = new Date(dateParts[2], dateParts[1] - 1, dateParts[0]);\r\n                    const endDate = new Date(startDate);\r\n                    endDate.setDate(endDate.getDate() + (weeks * 7));\r\n                    \r\n                    isStartDateInSummer = isSummerDate(startDate);\r\n                    isEndDateInSummer = isSummerDate(endDate);\r\n                }\r\n\r\n                \/\/ Filter arrival transfers\r\n                elements.arrivalTransfer.innerHTML = '<option value=\"0\">No Arrival Transfer required<\/option>';\r\n                transferPrices.forEach(transfer => {\r\n                    if (!transfer.summerOnly || isStartDateInSummer) {\r\n                        addTransferOption(elements.arrivalTransfer, transfer.value, transfer.text);\r\n                    }\r\n                });\r\n\r\n                \/\/ Filter departure transfers\r\n                elements.departureTransfer.innerHTML = '<option value=\"0\">No Departure Transfer required<\/option>';\r\n                transferPrices.forEach(transfer => {\r\n                    if (!transfer.summerOnly || isEndDateInSummer) {\r\n                        addTransferOption(elements.departureTransfer, transfer.value, transfer.text);\r\n                    }\r\n                });\r\n            }\r\n\r\n            function addTransferOption(select, value, text) {\r\n                const option = document.createElement('option');\r\n                option.value = value;\r\n                option.textContent = text;\r\n                select.appendChild(option);\r\n            }\r\n\r\n            function updateExtrasAvailability() {\r\n                const accommodationSelected = elements.accommodation.value !== '0';\r\n                const accommodationText = elements.accommodation.options[elements.accommodation.selectedIndex]?.text || '';\r\n                const isAge15Plus = accommodationText.includes('Age 15') || accommodationText.includes('Age 16+') || accommodationText.includes('Age 18+');\r\n\r\n                \/\/ Private bathroom\r\n                if (!accommodationSelected || !isAge15Plus) {\r\n                    elements.privateBathroom.checked = false;\r\n                    elements.privateBathroom.disabled = true;\r\n                    elements.privateBathroomError.style.display = accommodationSelected ? 'block' : 'none';\r\n                } else {\r\n                    elements.privateBathroom.disabled = false;\r\n                    elements.privateBathroomError.style.display = 'none';\r\n                }\r\n\r\n                \/\/ Special diet\r\n                if (!accommodationSelected) {\r\n                    elements.specialDiet.checked = false;\r\n                    elements.specialDiet.disabled = true;\r\n                    elements.specialDietError.style.display = 'block';\r\n                } else {\r\n                    elements.specialDiet.disabled = false;\r\n                    elements.specialDietError.style.display = 'none';\r\n                }\r\n\r\n                \/\/ Cambridge exam\r\n                const selectedCourse = elements.course.options[elements.course.selectedIndex]?.text || '';\r\n                elements.cambridgeExamContainer.style.display = selectedCourse.includes('Cambridge English') ? 'flex' : 'none';\r\n\r\n                calculateTotal();\r\n            }\r\n\r\n            function updateSummerActivitiesAvailability() {\r\n                const selectedCourse = elements.course.options[elements.course.selectedIndex]?.text || '';\r\n                const isGeneralOrIntensive = ['General English (15hrs per week)', 'Intensive English (21hrs per week)'].includes(selectedCourse);\r\n                const weeks = parseInt(elements.weeks.value) || 0;\r\n                const startDateStr = elements.startDate.value;\r\n\r\n                let hasSummerWeeks = false;\r\n                \r\n                if (startDateStr && weeks > 0 && isGeneralOrIntensive) {\r\n                    const dateParts = startDateStr.split('\/');\r\n                    const startDate = new Date(dateParts[2], dateParts[1] - 1, dateParts[0]);\r\n                    \r\n                    \/\/ Check if any week falls within summer period\r\n                    for (let i = 0; i < weeks; i++) {\r\n                        const weekStart = new Date(startDate);\r\n                        weekStart.setDate(weekStart.getDate() + (i * 7));\r\n                        const weekEnd = new Date(weekStart);\r\n                        weekEnd.setDate(weekEnd.getDate() + 6);\r\n                        \r\n                        if (weekStart <= summerDates.end && weekEnd >= summerDates.start) {\r\n                            hasSummerWeeks = true;\r\n                            break;\r\n                        }\r\n                    }\r\n                }\r\n\r\n                if (!isGeneralOrIntensive || !hasSummerWeeks) {\r\n                    elements.summerActivities.checked = false;\r\n                    elements.summerActivities.disabled = true;\r\n                    elements.summerActivitiesError.style.display = 'block';\r\n                } else {\r\n                    elements.summerActivities.disabled = false;\r\n                    elements.summerActivitiesError.style.display = 'none';\r\n                }\r\n\r\n                calculateTotal();\r\n            }\r\n\r\n            function updateUnder12Availability() {\r\n                const selectedCourse = elements.course.options[elements.course.selectedIndex]?.text || '';\r\n                const isJuniorCourse = selectedCourse.includes('Junior');\r\n                \r\n                if (isJuniorCourse) {\r\n                    elements.under12Container.style.display = 'flex';\r\n                    elements.under12.disabled = false;\r\n                    elements.under12Error.style.display = 'none';\r\n                } else {\r\n                    elements.under12.checked = false;\r\n                    elements.under12.disabled = true;\r\n                    elements.under12Container.style.display = 'none';\r\n                    elements.under12Error.style.display = 'none';\r\n                }\r\n\r\n                calculateTotal();\r\n            }\r\n\r\n            function calculateTotal() {\r\n                const weeks = parseInt(elements.weeks.value) || 0;\r\n                const selectedCourse = elements.course.options[elements.course.selectedIndex];\r\n                const courseText = selectedCourse?.text || '';\r\n                const courseValue = selectedCourse?.value || '0';\r\n                \r\n                \/\/ Calculate course price\r\n                let coursePrice = 0;\r\n                \r\n                if (courseText.includes('General English') || courseText.includes('Intensive English')) {\r\n                    const prices = courseValue.split(',');\r\n                    let tier = 0;\r\n                    if (weeks >= 1 && weeks <= 11) tier = 0;\r\n                    else if (weeks >= 12 && weeks <= 23) tier = 1;\r\n                    else if (weeks >= 24 && weeks <= 35) tier = 2;\r\n                    else tier = 3;\r\n                    \r\n                    const pricePerWeek = parseInt(prices[Math.min(tier, prices.length - 1)]);\r\n                    coursePrice = pricePerWeek * weeks;\r\n                } else if (courseValue === '1-to-1') {\r\n                    coursePrice = 80 * weeks;\r\n                } else if (courseValue === '5-to-1') {\r\n                    coursePrice = 380;\r\n                } else if (courseValue === '10-to-1') {\r\n                    coursePrice = 720;\r\n                } else if (courseValue === '20-to-1') {\r\n                    coursePrice = 1360;\r\n                } else {\r\n                    \/\/ Cambridge and Junior courses\r\n                    const prices = courseValue.split(',');\r\n                    const pricePerWeek = parseInt(prices[0]);\r\n                    coursePrice = pricePerWeek * weeks;\r\n                }\r\n                \r\n                \/\/ Book supplement\r\n                const bookSupplement = weeks === 1 ? 50 : 0;\r\n                \r\n                \/\/ Private foster family supplement for junior courses\r\n                let privateFosterSupplementCost = 0;\r\n                const accommodationText = elements.accommodation.options[elements.accommodation.selectedIndex]?.text || '';\r\n                const isJuniorCourse = courseText.includes('Junior');\r\n                const isFullBoardJunior = accommodationText.includes('Full Board Homestay Accommodation (Age 10-15)');\r\n                \r\n                \/\/ Apply \u00a375 per week supplement for junior courses with full board accommodation for 4+ weeks\r\n                if (isJuniorCourse && isFullBoardJunior && weeks >= 4) {\r\n                    privateFosterSupplementCost = courseData.privateFosterSupplement * weeks;\r\n                }\r\n                \r\n                \/\/ Promo code\r\n                const promoCode = elements.promoCode.value.trim().toUpperCase();\r\n                let discount = 0;\r\n                let discountedCoursePrice = coursePrice;\r\n                \r\n                \/\/ Summer supplement and activities\r\n                const startDateStr = elements.startDate.value;\r\n                let summerWeeks = 0;\r\n                let courseSummerSupplement = 0;\r\n                let summerActivitiesCost = 0;\r\n                let promoEligibleWeeks = 0;\r\n\r\n                if (startDateStr && weeks > 0) {\r\n                    const dateParts = startDateStr.split('\/');\r\n                    const startDate = new Date(dateParts[2], dateParts[1] - 1, dateParts[0]);\r\n                    \r\n                    \/\/ Calculate summer weeks\r\n                    for (let i = 0; i < weeks; i++) {\r\n                        const weekStart = new Date(startDate);\r\n                        weekStart.setDate(weekStart.getDate() + (i * 7));\r\n                        const weekEnd = new Date(weekStart);\r\n                        weekEnd.setDate(weekEnd.getDate() + 6);\r\n                        \r\n                        if (weekStart <= summerDates.end && weekEnd >= summerDates.start) {\r\n                            summerWeeks++;\r\n                        }\r\n                        \r\n                        \/\/ Check promo eligibility\r\n                        if (courseText === 'General English (15hrs per week)' || \r\n                            courseText === 'Intensive English (21hrs per week)') {\r\n                            promoEligibleWeeks++;\r\n                        }\r\n                    }\r\n                    \r\n                    \/\/ Course summer supplement (waived for 10+ weeks)\r\n                    if ((courseText === 'Intensive English (21hrs per week)' || \r\n                         courseText === 'General English (15hrs per week)') && weeks < 10) {\r\n                        const supplementType = courseText.includes('Intensive') ? 'intensive' : 'general';\r\n                        courseSummerSupplement = summerWeeks * courseData.summerSupplement[supplementType];\r\n                    }\r\n                    \r\n                    \/\/ Apply promo code\r\n                    if (validPromoCodes.includes(promoCode) && promoEligibleWeeks > 0) {\r\n                        const pricePerWeek = coursePrice \/ weeks;\r\n                        discount = Math.round(pricePerWeek * promoEligibleWeeks * 0.1);\r\n                        discountedCoursePrice = coursePrice - discount;\r\n                        elements.promoCodeError.style.display = 'none';\r\n                        elements.promoCodeSuccess.style.display = 'block';\r\n                    } else if (promoCode !== '') {\r\n                        elements.promoCodeError.style.display = 'block';\r\n                        elements.promoCodeSuccess.style.display = 'none';\r\n                    } else {\r\n                        elements.promoCodeError.style.display = 'none';\r\n                        elements.promoCodeSuccess.style.display = 'none';\r\n                    }\r\n                    \r\n                    \/\/ Summer activities\r\n                    if (elements.summerActivities.checked && !elements.summerActivities.disabled) {\r\n                        summerActivitiesCost = summerWeeks * courseData.summerActivitiesPrice;\r\n                    }\r\n                }\r\n                \r\n                \/\/ Under 12 supplement\r\n                let under12SupplementCost = 0;\r\n                if (elements.under12.checked && !elements.under12.disabled) {\r\n                    under12SupplementCost = courseData.under12Supplement * weeks;\r\n                }\r\n                \r\n                \/\/ Accommodation costs\r\n                const accommodation = parseInt(elements.accommodation.value) * weeks;\r\n                const arrivalTransfer = parseInt(elements.arrivalTransfer.value);\r\n                const departureTransfer = parseInt(elements.departureTransfer.value);\r\n                const registrationFee = 120;\r\n                \r\n                \/\/ Extras\r\n                let privateBathroomCost = 0;\r\n                if (elements.privateBathroom.checked && !elements.privateBathroom.disabled) {\r\n                    privateBathroomCost = 80 * weeks;\r\n                }\r\n                \r\n                let specialDietCost = 0;\r\n                if (elements.specialDiet.checked && !elements.specialDiet.disabled) {\r\n                    const accommodationText = elements.accommodation.options[elements.accommodation.selectedIndex]?.text || '';\r\n                    const isPartBoard = accommodationText.includes('Part Board');\r\n                    specialDietCost = (isPartBoard ? 35 : 45) * weeks;\r\n                }\r\n                \r\n                let studentInsuranceCost = 0;\r\n                if (elements.studentInsurance.checked) {\r\n                    studentInsuranceCost = 5 + (7 * weeks);\r\n                }\r\n                \r\n                \/\/ Accommodation summer supplement\r\n                let accommodationSummerSupplement = 0;\r\n                if (summerWeeks > 0 && accommodationText !== 'No accommodation required') {\r\n                    if (accommodationText.includes('Adult Part Board')) {\r\n                        accommodationSummerSupplement = 35 * summerWeeks;\r\n                    } else if (accommodationText.includes('Adult Full Board')) {\r\n                        accommodationSummerSupplement = 45 * summerWeeks;\r\n                    }\r\n                }\r\n                \r\n                \/\/ Calculate total\r\n                const totalPrice = discountedCoursePrice + bookSupplement + courseSummerSupplement + \r\n                                 accommodation + arrivalTransfer + departureTransfer + \r\n                                 registrationFee + privateBathroomCost + specialDietCost + \r\n                                 studentInsuranceCost + accommodationSummerSupplement + \r\n                                 summerActivitiesCost + under12SupplementCost + privateFosterSupplementCost;\r\n                \r\n                elements.totalPrice.textContent = totalPrice;\r\n                \r\n                \/\/ Store calculation data for PDF\r\n                currentCalculationData = {\r\n                    coursePrice,\r\n                    discountedCoursePrice,\r\n                    discount,\r\n                    bookSupplement,\r\n                    courseSummerSupplement,\r\n                    accommodation,\r\n                    accommodationSummerSupplement,\r\n                    arrivalTransfer,\r\n                    departureTransfer,\r\n                    registrationFee,\r\n                    privateBathroomCost,\r\n                    specialDietCost,\r\n                    studentInsuranceCost,\r\n                    summerActivitiesCost,\r\n                    under12SupplementCost,\r\n                    privateFosterSupplementCost, \/\/ Added this\r\n                    totalPrice,\r\n                    courseText,\r\n                    weeks,\r\n                    startDate: elements.startDate.value,\r\n                    accommodationText,\r\n                    arrivalTransferText: elements.arrivalTransfer.options[elements.arrivalTransfer.selectedIndex]?.text || '',\r\n                    departureTransferText: elements.departureTransfer.options[elements.departureTransfer.selectedIndex]?.text || '',\r\n                    promoCode,\r\n                    hasPromoCode: validPromoCodes.includes(promoCode) && promoEligibleWeeks > 0,\r\n                    summerWeeks,\r\n                    promoEligibleWeeks,\r\n                    hasUnder12: elements.under12.checked && !elements.under12.disabled,\r\n                    hasPrivateFosterSupplement: privateFosterSupplementCost > 0 \/\/ Added this\r\n                };\r\n                \r\n                \/\/ Update breakdown and show results if we have all required info\r\n                if (elements.courseCategory.value && \r\n                    elements.course.value && elements.course.value !== '0' &&\r\n                    elements.weeks.value && \r\n                    elements.startDate.value) {\r\n                    \r\n                    updateBreakdown(currentCalculationData);\r\n                    showElement(elements.totalPriceGroup);\r\n                    showElement(elements.breakdownGroup);\r\n                    showElement(elements.actionsGroup);\r\n                } else {\r\n                    hideElement(elements.totalPriceGroup);\r\n                    hideElement(elements.breakdownGroup);\r\n                    hideElement(elements.actionsGroup);\r\n                }\r\n            }\r\n\r\n            function updateBreakdown(data) {\r\n                let html = `\r\n                    <div class=\"sse-breakdown-title\">Course Details<\/div>\r\n                    <div class=\"sse-breakdown-grid\">\r\n                        <div class=\"sse-breakdown-item\"><strong>Course:<\/strong> ${data.courseText || 'Not selected'}<\/div>\r\n                        <div class=\"sse-breakdown-item\"><strong>Duration:<\/strong> ${data.weeks || '0'} week${data.weeks !== 1 ? 's' : ''}<\/div>\r\n                        <div class=\"sse-breakdown-item\"><strong>Start Date:<\/strong> ${data.startDate || 'Not selected'}<\/div>\r\n                        <div class=\"sse-breakdown-item\"><strong>Accommodation:<\/strong> ${data.accommodationText || 'Not selected'}<\/div>\r\n                        <div class=\"sse-breakdown-item\"><strong>Arrival Transfer:<\/strong> ${data.arrivalTransferText}<\/div>\r\n                        <div class=\"sse-breakdown-item\"><strong>Departure Transfer:<\/strong> ${data.departureTransferText}<\/div>\r\n                    <\/div>\r\n                    <div class=\"sse-breakdown-title\" style=\"margin-top: 16px;\">Cost Breakdown<\/div>\r\n                    <div class=\"sse-breakdown-grid\">\r\n                        <div class=\"sse-breakdown-item\"><strong>Registration Fee:<\/strong> \u00a3${data.registrationFee}<\/div>`;\r\n                \r\n                if (data.discount > 0) {\r\n                    html += `\r\n                        <div class=\"sse-breakdown-item\">\r\n                            <strong>Course:<\/strong> \r\n                            <span class=\"sse-strikethrough\">\u00a3${data.coursePrice}<\/span>\r\n                            <span class=\"sse-discounted\">\u00a3${data.discountedCoursePrice}<\/span>\r\n                        <\/div>\r\n                        <div class=\"sse-breakdown-item\"><strong>Promo Discount (${data.promoCode}):<\/strong> -\u00a3${data.discount}<\/div>`;\r\n                } else {\r\n                    html += `<div class=\"sse-breakdown-item\"><strong>Course:<\/strong> \u00a3${data.coursePrice}<\/div>`;\r\n                }\r\n                \r\n                if (data.bookSupplement > 0) {\r\n                    html += `<div class=\"sse-breakdown-item\"><strong>Book Supplement:<\/strong> \u00a3${data.bookSupplement}<\/div>`;\r\n                }\r\n                \r\n                if (data.courseSummerSupplement > 0) {\r\n                    html += `<div class=\"sse-breakdown-item\"><strong>Course Summer Supplement:<\/strong> \u00a3${data.courseSummerSupplement}<\/div>`;\r\n                }\r\n                \r\n                if (data.under12SupplementCost > 0) {\r\n                    html += `<div class=\"sse-breakdown-item\"><strong>Under 12 Years Old Supplement:<\/strong> \u00a3${data.under12SupplementCost}<\/div>`;\r\n                }\r\n                \r\n                if (data.accommodation > 0) {\r\n                    html += `<div class=\"sse-breakdown-item\"><strong>Accommodation:<\/strong> \u00a3${data.accommodation}<\/div>`;\r\n                }\r\n                \r\n                if (data.accommodationSummerSupplement > 0) {\r\n                    html += `<div class=\"sse-breakdown-item\"><strong>Accommodation Summer Supplement:<\/strong> \u00a3${data.accommodationSummerSupplement}<\/div>`;\r\n                }\r\n                \r\n                \/\/ Private Foster Family Supplement\r\n                if (data.privateFosterSupplementCost > 0) {\r\n                    html += `<div class=\"sse-breakdown-item\"><strong>Private Foster Family Supplement:<\/strong> \u00a3${data.privateFosterSupplementCost}<\/div>`;\r\n                }\r\n                \r\n                if (data.arrivalTransfer > 0) {\r\n                    html += `<div class=\"sse-breakdown-item\"><strong>Arrival Transfer:<\/strong> \u00a3${data.arrivalTransfer}<\/div>`;\r\n                }\r\n                \r\n                if (data.departureTransfer > 0) {\r\n                    html += `<div class=\"sse-breakdown-item\"><strong>Departure Transfer:<\/strong> \u00a3${data.departureTransfer}<\/div>`;\r\n                }\r\n                \r\n                if (data.privateBathroomCost > 0) {\r\n                    html += `<div class=\"sse-breakdown-item\"><strong>Private Bathroom:<\/strong> \u00a3${data.privateBathroomCost}<\/div>`;\r\n                }\r\n                \r\n                if (data.specialDietCost > 0) {\r\n                    html += `<div class=\"sse-breakdown-item\"><strong>Special Diet:<\/strong> \u00a3${data.specialDietCost}<\/div>`;\r\n                }\r\n                \r\n                if (data.studentInsuranceCost > 0) {\r\n                    html += `<div class=\"sse-breakdown-item\"><strong>Student Insurance:<\/strong> \u00a3${data.studentInsuranceCost}<\/div>`;\r\n                }\r\n                \r\n                if (data.summerActivitiesCost > 0) {\r\n                    html += `<div class=\"sse-breakdown-item\"><strong>Summer Activities:<\/strong> \u00a3${data.summerActivitiesCost}<\/div>`;\r\n                }\r\n                \r\n                if (elements.cambridgeExam.checked && data.courseText.includes('Cambridge English')) {\r\n                    html += `<div class=\"sse-breakdown-item\"><strong>Cambridge Exam Fee:<\/strong> Priced on Application<\/div>`;\r\n                }\r\n                \r\n                html += `\r\n                        <div class=\"sse-breakdown-item\"><strong>Total Price:<\/strong> \u00a3${data.totalPrice}<\/div>\r\n                    <\/div>`;\r\n                \r\n                elements.breakdown.innerHTML = html;\r\n            }\r\n\r\n            function sendBookingEmail() {\r\n                const course = elements.course.options[elements.course.selectedIndex]?.text || 'Not selected';\r\n                const weeks = elements.weeks.value || 'Not selected';\r\n                const startDate = elements.startDate.value || 'Not selected';\r\n                const accommodation = elements.accommodation.options[elements.accommodation.selectedIndex]?.text || 'Not selected';\r\n                const arrivalTransfer = elements.arrivalTransfer.options[elements.arrivalTransfer.selectedIndex]?.text || 'Not selected';\r\n                const departureTransfer = elements.departureTransfer.options[elements.departureTransfer.selectedIndex]?.text || 'Not selected';\r\n                const totalPrice = elements.totalPrice.textContent;\r\n                const promoCode = elements.promoCode.value.trim();\r\n\r\n                const formUrl = 'https:\/\/forms.office.com\/e\/70XEEbmTWM';\r\n                const queryParams = new URLSearchParams({\r\n                    year: '2026',\r\n                    course: course,\r\n                    weeks: weeks,\r\n                    startDate: startDate,\r\n                    accommodation: accommodation,\r\n                    arrivalTransfer: arrivalTransfer,\r\n                    departureTransfer: departureTransfer,\r\n                    totalPrice: totalPrice,\r\n                    promoCode: promoCode\r\n                });\r\n\r\n                window.open(`${formUrl}?${queryParams.toString()}`, '_blank');\r\n            }\r\n\r\nfunction downloadQuotePDF() {\r\n    if (!currentCalculationData || !elements.courseCategory.value) {\r\n        alert('Please complete the calculator form first to generate a quote.');\r\n        return;\r\n    }\r\n\r\n    try {\r\n        \/\/ Check if jsPDF is available\r\n        if (typeof window.jspdf === 'undefined') {\r\n            alert('PDF generation library is not loaded. Please try again.');\r\n            return;\r\n        }\r\n\r\n        const { jsPDF } = window.jspdf;\r\n        const doc = new jsPDF();\r\n        \r\n        \/\/ Generate consistent quote reference\r\n        const quoteRef = `SSE-${Date.now().toString().slice(-6)}`;\r\n        \r\n        \/\/ Add logo at the top - FIXED ASPECT RATIO\r\n        \/\/ First, let's create an image object to get the dimensions\r\n        const logoUrl = 'https:\/\/southbourneschool.co.uk\/wp-content\/uploads\/2026\/01\/SSE-60-Year-Anniversary-Logo.png';\r\n        \r\n        \/\/ Try to add the logo with proper aspect ratio\r\n        \/\/ We'll use a try-catch and fallback to text if image fails\r\n        let logoLoaded = false;\r\n        \r\n        \/\/ Create an image object to get dimensions\r\n        const img = new Image();\r\n        img.crossOrigin = 'Anonymous';\r\n        img.onload = function() {\r\n            try {\r\n                \/\/ Calculate dimensions to maintain aspect ratio\r\n                const maxWidth = 80;\r\n                const maxHeight = 30;\r\n                \r\n                \/\/ Get natural dimensions\r\n                const naturalWidth = this.width;\r\n                const naturalHeight = this.height;\r\n                \r\n                \/\/ Calculate aspect ratio\r\n                const aspectRatio = naturalWidth \/ naturalHeight;\r\n                \r\n                \/\/ Calculate dimensions to fit within maxWidth x maxHeight while maintaining aspect ratio\r\n                let width = maxWidth;\r\n                let height = width \/ aspectRatio;\r\n                \r\n                \/\/ If height is too tall, scale down based on height\r\n                if (height > maxHeight) {\r\n                    height = maxHeight;\r\n                    width = height * aspectRatio;\r\n                }\r\n                \r\n                \/\/ Center the logo horizontally (105 is the center of A4 page at 210mm)\r\n                const xPos = 105 - (width \/ 2);\r\n                \r\n                \/\/ Add the image with proper aspect ratio\r\n                doc.addImage(this, 'PNG', xPos, 10, width, height);\r\n                logoLoaded = true;\r\n            } catch (error) {\r\n                console.log('Error adding logo with proper aspect ratio:', error);\r\n                \/\/ Fallback to text header\r\n                addTextHeader(doc);\r\n            }\r\n        };\r\n        \r\n        img.onerror = function() {\r\n            console.log('Could not load logo image, using text header instead');\r\n            addTextHeader(doc);\r\n        };\r\n        \r\n        \/\/ Set a timeout in case the image takes too long to load\r\n        setTimeout(() => {\r\n            if (!logoLoaded) {\r\n                console.log('Logo loading timeout, using text header');\r\n                addTextHeader(doc);\r\n                continuePDFCreation();\r\n            }\r\n        }, 2000);\r\n        \r\n        \/\/ Function to add text header as fallback\r\n        function addTextHeader(pdfDoc) {\r\n            pdfDoc.setFontSize(24);\r\n            pdfDoc.setTextColor(26, 86, 219);\r\n            pdfDoc.setFont('helvetica', 'bold');\r\n            pdfDoc.text('Southbourne School of English', 105, 20, null, null, 'center');\r\n            \r\n            pdfDoc.setFontSize(12);\r\n            pdfDoc.setTextColor(0, 0, 0);\r\n            pdfDoc.setFont('helvetica', 'normal');\r\n            pdfDoc.text('60 Year Anniversary', 105, 28, null, null, 'center');\r\n        }\r\n        \r\n        \/\/ Function to continue PDF creation after logo attempt\r\n        function continuePDFCreation() {\r\n            \/\/ School details below logo - adjust position based on logo or text header\r\n            const startY = logoLoaded ? 45 : 35;\r\n            \r\n            doc.setFontSize(16);\r\n            doc.setTextColor(0, 0, 0);\r\n            doc.setFont('helvetica', 'normal');\r\n            doc.text('Course Quotation', 105, startY, null, null, 'center');\r\n            \r\n            doc.setFontSize(10);\r\n            doc.text('30 Beaufort Road, Southbourne, Bournemouth, BH6 5AL', 105, startY + 8, null, null, 'center');\r\n            doc.text('Tel: +44 (0)1202 422300 | Email: registrar@southbourneschool.co.uk', 105, startY + 13, null, null, 'center');\r\n            doc.text('Website: www.southbourneschool.co.uk', 105, startY + 18, null, null, 'center');\r\n            \r\n            \/\/ Date and reference - aligned properly\r\n            const today = new Date();\r\n            const dateStr = today.toLocaleDateString('en-GB', {\r\n                day: '2-digit',\r\n                month: '2-digit',\r\n                year: 'numeric'\r\n            });\r\n            \r\n            doc.setFontSize(10);\r\n            doc.text(`Quote Date: ${dateStr}`, 20, startY + 30);\r\n            doc.text(`Quote Reference: ${quoteRef}`, 20, startY + 37); \/\/ Positioned directly below quote date\r\n            \r\n            \/\/ Horizontal line\r\n            doc.setDrawColor(200, 200, 200);\r\n            doc.line(20, startY + 43, 190, startY + 43);\r\n            \r\n            \/\/ Course details section\r\n            doc.setFontSize(12);\r\n            doc.setFont('helvetica', 'bold');\r\n            doc.text('Course Details', 20, startY + 53);\r\n            \r\n            doc.setFontSize(10);\r\n            doc.setFont('helvetica', 'normal');\r\n            let yPos = startY + 60;\r\n            \r\n            doc.text(`Course: ${currentCalculationData.courseText || 'Not selected'}`, 20, yPos);\r\n            yPos += 6;\r\n            \r\n            doc.text(`Duration: ${currentCalculationData.weeks || '0'} week${currentCalculationData.weeks !== 1 ? 's' : ''}`, 20, yPos);\r\n            yPos += 6;\r\n            \r\n            if (currentCalculationData.startDate) {\r\n                doc.text(`Start Date: ${currentCalculationData.startDate}`, 20, yPos);\r\n                yPos += 6;\r\n            }\r\n            \r\n            doc.text(`Accommodation: ${currentCalculationData.accommodationText || 'Not selected'}`, 20, yPos);\r\n            yPos += 6;\r\n            \r\n            if (currentCalculationData.arrivalTransfer > 0) {\r\n                doc.text(`Arrival Transfer: ${currentCalculationData.arrivalTransferText}`, 20, yPos);\r\n                yPos += 6;\r\n            }\r\n            \r\n            if (currentCalculationData.departureTransfer > 0) {\r\n                doc.text(`Departure Transfer: ${currentCalculationData.departureTransferText}`, 20, yPos);\r\n                yPos += 6;\r\n            }\r\n            \r\n            \/\/ Cost breakdown section\r\n            doc.setFontSize(12);\r\n            doc.setFont('helvetica', 'bold');\r\n            doc.text('Cost Breakdown', 20, yPos + 5);\r\n            \r\n            doc.setFontSize(10);\r\n            doc.setFont('helvetica', 'normal');\r\n            yPos += 15;\r\n            \r\n            \/\/ Define column positions for proper alignment\r\n            const descriptionX = 20;\r\n            const amountX = 170; \/\/ Fixed position for all amounts\r\n            \r\n            \/\/ Registration Fee\r\n            doc.text('Registration Fee:', descriptionX, yPos);\r\n            doc.text(`\u00a3${currentCalculationData.registrationFee.toFixed(2)}`, amountX, yPos, null, null, 'right');\r\n            yPos += 6;\r\n            \r\n            \/\/ Course (with discount if applicable)\r\n            if (currentCalculationData.discount > 0) {\r\n                doc.text('Course (Original):', descriptionX, yPos);\r\n                doc.text(`\u00a3${currentCalculationData.coursePrice.toFixed(2)}`, amountX, yPos, null, null, 'right');\r\n                yPos += 6;\r\n                \r\n                doc.text(`Promo Discount (${currentCalculationData.promoCode}):`, descriptionX, yPos);\r\n                doc.text(`-\u00a3${currentCalculationData.discount.toFixed(2)}`, amountX, yPos, null, null, 'right');\r\n                yPos += 6;\r\n                \r\n                doc.text('Course (Discounted):', descriptionX, yPos);\r\n                doc.text(`\u00a3${currentCalculationData.discountedCoursePrice.toFixed(2)}`, amountX, yPos, null, null, 'right');\r\n                yPos += 6;\r\n            } else {\r\n                doc.text('Course:', descriptionX, yPos);\r\n                doc.text(`\u00a3${currentCalculationData.coursePrice.toFixed(2)}`, amountX, yPos, null, null, 'right');\r\n                yPos += 6;\r\n            }\r\n            \r\n            \/\/ Book Supplement\r\n            if (currentCalculationData.bookSupplement > 0) {\r\n                doc.text('Book Supplement:', descriptionX, yPos);\r\n                doc.text(`\u00a3${currentCalculationData.bookSupplement.toFixed(2)}`, amountX, yPos, null, null, 'right');\r\n                yPos += 6;\r\n            }\r\n            \r\n            \/\/ Course Summer Supplement\r\n            if (currentCalculationData.courseSummerSupplement > 0) {\r\n                doc.text('Course Summer Supplement:', descriptionX, yPos);\r\n                doc.text(`\u00a3${currentCalculationData.courseSummerSupplement.toFixed(2)}`, amountX, yPos, null, null, 'right');\r\n                yPos += 6;\r\n            }\r\n            \r\n            \/\/ Under 12 Supplement\r\n            if (currentCalculationData.under12SupplementCost > 0) {\r\n                doc.text('Under 12 Years Old Supplement:', descriptionX, yPos);\r\n                doc.text(`\u00a3${currentCalculationData.under12SupplementCost.toFixed(2)}`, amountX, yPos, null, null, 'right');\r\n                yPos += 6;\r\n            }\r\n            \r\n            \/\/ Accommodation\r\n            if (currentCalculationData.accommodation > 0) {\r\n                doc.text('Accommodation:', descriptionX, yPos);\r\n                doc.text(`\u00a3${currentCalculationData.accommodation.toFixed(2)}`, amountX, yPos, null, null, 'right');\r\n                yPos += 6;\r\n            }\r\n            \r\n            \/\/ Accommodation Summer Supplement\r\n            if (currentCalculationData.accommodationSummerSupplement > 0) {\r\n                doc.text('Accommodation Summer Supplement:', descriptionX, yPos);\r\n                doc.text(`\u00a3${currentCalculationData.accommodationSummerSupplement.toFixed(2)}`, amountX, yPos, null, null, 'right');\r\n                yPos += 6;\r\n            }\r\n            \r\n            \/\/ Private Foster Family Supplement\r\n            if (currentCalculationData.privateFosterSupplementCost > 0) {\r\n                doc.text('Private Foster Family Supplement:', descriptionX, yPos);\r\n                doc.text(`\u00a3${currentCalculationData.privateFosterSupplementCost.toFixed(2)}`, amountX, yPos, null, null, 'right');\r\n                yPos += 6;\r\n            }\r\n            \r\n            \/\/ Arrival Transfer\r\n            if (currentCalculationData.arrivalTransfer > 0) {\r\n                doc.text('Arrival Transfer:', descriptionX, yPos);\r\n                doc.text(`\u00a3${currentCalculationData.arrivalTransfer.toFixed(2)}`, amountX, yPos, null, null, 'right');\r\n                yPos += 6;\r\n            }\r\n            \r\n            \/\/ Departure Transfer\r\n            if (currentCalculationData.departureTransfer > 0) {\r\n                doc.text('Departure Transfer:', descriptionX, yPos);\r\n                doc.text(`\u00a3${currentCalculationData.departureTransfer.toFixed(2)}`, amountX, yPos, null, null, 'right');\r\n                yPos += 6;\r\n            }\r\n            \r\n            \/\/ Private Bathroom\r\n            if (currentCalculationData.privateBathroomCost > 0) {\r\n                doc.text('Private Bathroom:', descriptionX, yPos);\r\n                doc.text(`\u00a3${currentCalculationData.privateBathroomCost.toFixed(2)}`, amountX, yPos, null, null, 'right');\r\n                yPos += 6;\r\n            }\r\n            \r\n            \/\/ Special Diet\r\n            if (currentCalculationData.specialDietCost > 0) {\r\n                doc.text('Special Diet:', descriptionX, yPos);\r\n                doc.text(`\u00a3${currentCalculationData.specialDietCost.toFixed(2)}`, amountX, yPos, null, null, 'right');\r\n                yPos += 6;\r\n            }\r\n            \r\n            \/\/ Student Insurance\r\n            if (currentCalculationData.studentInsuranceCost > 0) {\r\n                doc.text('Student Insurance:', descriptionX, yPos);\r\n                doc.text(`\u00a3${currentCalculationData.studentInsuranceCost.toFixed(2)}`, amountX, yPos, null, null, 'right');\r\n                yPos += 6;\r\n            }\r\n            \r\n            \/\/ Summer Activities\r\n            if (currentCalculationData.summerActivitiesCost > 0) {\r\n                doc.text('Summer Activities:', descriptionX, yPos);\r\n                doc.text(`\u00a3${currentCalculationData.summerActivitiesCost.toFixed(2)}`, amountX, yPos, null, null, 'right');\r\n                yPos += 6;\r\n            }\r\n            \r\n            \/\/ Cambridge Exam Fee\r\n            if (elements.cambridgeExam.checked && currentCalculationData.courseText.includes('Cambridge English')) {\r\n                doc.text('Cambridge Exam Fee:', descriptionX, yPos);\r\n                doc.text('Priced on Application', amountX, yPos, null, null, 'right');\r\n                yPos += 6;\r\n            }\r\n            \r\n            \/\/ Horizontal line before total\r\n            doc.setDrawColor(200, 200, 200);\r\n            doc.line(20, yPos, 190, yPos);\r\n            yPos += 8;\r\n            \r\n            \/\/ Total row with special styling\r\n            doc.setFont('helvetica', 'bold');\r\n            doc.setFontSize(12);\r\n            doc.setTextColor(26, 86, 219);\r\n            doc.text('TOTAL', descriptionX, yPos);\r\n            doc.text(`\u00a3${currentCalculationData.totalPrice.toFixed(2)}`, amountX, yPos, null, null, 'right');\r\n            \r\n            \/\/ Add accreditations strip to footer with proper aspect ratio\r\n            const accreditationsUrl = 'https:\/\/southbourneschool.co.uk\/wp-content\/uploads\/2026\/01\/2025-Accreditations-strip-scaled.png';\r\n            const accImg = new Image();\r\n            accImg.crossOrigin = 'Anonymous';\r\n            accImg.onload = function() {\r\n                try {\r\n                    \/\/ Calculate dimensions to maintain aspect ratio\r\n                    const maxAccWidth = 160;\r\n                    const maxAccHeight = 20;\r\n                    \r\n                    \/\/ Get natural dimensions\r\n                    const naturalAccWidth = this.width;\r\n                    const naturalAccHeight = this.height;\r\n                    \r\n                    \/\/ Calculate aspect ratio\r\n                    const accAspectRatio = naturalAccWidth \/ naturalAccHeight;\r\n                    \r\n                    \/\/ Calculate dimensions to fit within maxAccWidth x maxAccHeight while maintaining aspect ratio\r\n                    let accWidth = maxAccWidth;\r\n                    let accHeight = accWidth \/ accAspectRatio;\r\n                    \r\n                    \/\/ If height is too tall, scale down based on height\r\n                    if (accHeight > maxAccHeight) {\r\n                        accHeight = maxAccHeight;\r\n                        accWidth = accHeight * accAspectRatio;\r\n                    }\r\n                    \r\n                    \/\/ Center the accreditations image horizontally\r\n                    const accXPos = 105 - (accWidth \/ 2);\r\n                    \r\n                    \/\/ Add the image with proper aspect ratio\r\n                    doc.addImage(this, 'PNG', accXPos, 250, accWidth, accHeight);\r\n                    yPos = 275;\r\n                    addFooterNotes();\r\n                } catch (error) {\r\n                    console.log('Could not load accreditations image, using text instead');\r\n                    yPos = 260;\r\n                    addFooterNotes();\r\n                }\r\n            };\r\n            \r\n            accImg.onerror = function() {\r\n                console.log('Could not load accreditations image, using text instead');\r\n                yPos = 260;\r\n                addFooterNotes();\r\n            };\r\n            \r\n            \/\/ Set a timeout for accreditations image\r\n            setTimeout(() => {\r\n                if (yPos < 265) {\r\n                    yPos = 260;\r\n                    addFooterNotes();\r\n                }\r\n            }, 1000);\r\n            \r\n            accImg.src = accreditationsUrl;\r\n            \r\n            \/\/ Function to add footer notes\r\n            function addFooterNotes() {\r\n                \/\/ Footer notes\r\n                doc.setFontSize(8);\r\n                doc.setTextColor(100, 100, 100);\r\n                doc.setFont('helvetica', 'normal');\r\n                doc.text('This quotation is valid for 30 days from the date of issue.', 20, yPos);\r\n                yPos += 5;\r\n                doc.text('Prices are subject to change and availability.', 20, yPos);\r\n                yPos += 5;\r\n                doc.text('For the full price list, please visit: https:\/\/southbourneschool.co.uk\/wp-content\/uploads\/2026\/02\/2026-Adult-and-Junior-Price-List.pdf', 20, yPos);\r\n                yPos += 5;\r\n                doc.text('To book this course, please use the Book Now button in the calculator or contact us directly.', 20, yPos);\r\n                \r\n                \/\/ Save the PDF with consistent quote reference\r\n                const filename = `${quoteRef}_${currentCalculationData.courseText.replace(\/[^a-zA-Z0-9]\/g, '_').substring(0, 30)}.pdf`;\r\n                doc.save(filename);\r\n            }\r\n            \r\n            \/\/ If accreditations image doesn't load, call addFooterNotes directly\r\n            if (!accImg.src) {\r\n                yPos = 260;\r\n                addFooterNotes();\r\n            }\r\n        }\r\n        \r\n        \/\/ Start the logo loading process\r\n        img.src = logoUrl;\r\n        \r\n    } catch (error) {\r\n        console.error('Error generating PDF:', error);\r\n        alert('There was an error generating the PDF. Please try again or contact us for assistance.');\r\n    }\r\n}\r\n\r\n            function viewPriceList() {\r\n                window.open('https:\/\/southbourneschool.co.uk\/wp-content\/uploads\/2026\/01\/2026-Adult-and-Junior-Price-List-1.pdf', '_blank');\r\n            }\r\n\r\n            function resetForm() {\r\n                \/\/ Reset all form elements\r\n                elements.courseCategory.value = '';\r\n                elements.course.innerHTML = '<option value=\"0\">Select a course<\/option>';\r\n                elements.weeks.innerHTML = '<option value=\"\" disabled selected>Select duration<\/option>';\r\n                elements.startDate.value = '';\r\n                elements.accommodation.innerHTML = '<option value=\"0\">No accommodation required<\/option>';\r\n                elements.arrivalTransfer.innerHTML = '<option value=\"0\">No Arrival Transfer required<\/option>';\r\n                elements.departureTransfer.innerHTML = '<option value=\"0\">No Departure Transfer required<\/option>';\r\n                elements.privateBathroom.checked = false;\r\n                elements.specialDiet.checked = false;\r\n                elements.studentInsurance.checked = false;\r\n                elements.summerActivities.checked = false;\r\n                elements.cambridgeExam.checked = false;\r\n                elements.under12.checked = false;\r\n                elements.cambridgeExamContainer.style.display = 'none';\r\n                elements.under12Container.style.display = 'none';\r\n                elements.privateBathroomError.style.display = 'none';\r\n                elements.specialDietError.style.display = 'none';\r\n                elements.summerActivitiesError.style.display = 'none';\r\n                elements.under12Error.style.display = 'none';\r\n                elements.promoCode.value = '';\r\n                elements.promoCodeError.style.display = 'none';\r\n                elements.promoCodeSuccess.style.display = 'none';\r\n                elements.totalPrice.textContent = '0';\r\n                elements.breakdown.innerHTML = '';\r\n                currentCalculationData = null;\r\n                lastJuniorAdjustmentWeeks = 0;\r\n                \r\n                if (datePicker) {\r\n                    datePicker.destroy();\r\n                    datePicker = null;\r\n                }\r\n                \r\n                \/\/ Hide all sections except the first one\r\n                hideElement(elements.courseGroup);\r\n                hideElement(elements.weeksGroup);\r\n                hideElement(elements.dateGroup);\r\n                hideElement(elements.accommodationGroup);\r\n                hideElement(elements.extrasGroup);\r\n                hideElement(elements.arrivalTransferGroup);\r\n                hideElement(elements.departureTransferGroup);\r\n                hideElement(elements.promoGroup);\r\n                hideElement(elements.totalPriceGroup);\r\n                hideElement(elements.breakdownGroup);\r\n                hideElement(elements.actionsGroup);\r\n                hideElement(elements.juniorWarning);\r\n                \r\n                \/\/ Hide floating reset button\r\n                elements.floatingReset.classList.remove('visible');\r\n                \r\n                \/\/ Reset progress indicator\r\n                [elements.step1, elements.step2, elements.step3, elements.step4, elements.step5].forEach(step => {\r\n                    step.classList.remove('active', 'completed');\r\n                });\r\n                elements.step1.classList.add('active');\r\n            }\r\n\r\n            \/\/ Initialize when DOM is loaded\r\n            if (document.readyState === 'loading') {\r\n                document.addEventListener('DOMContentLoaded', init);\r\n            } else {\r\n                init();\r\n            }\r\n        })();\r\n    <\/script>\n\n\t\t<\/div>\n\t<\/div>\n<\/div><\/div><\/div><\/div>\n","protected":false},"excerpt":{"rendered":"Frequently Asked Questions (students) Answers to Frequently Asked Questions (FAQs) about our English courses, facilities in Bournemouth, Visas, travel requirements, accommodation and welfare. If your question is not answered here, then please get in contact and we will be happy to answer via phone or&nbsp;<a href=\"https:\/\/southbourneschool.co.uk\/pl\/about\/faqs\/\">...<\/a>","protected":false},"author":12312401,"featured_media":1321,"parent":162,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-581","page","type-page","status-publish","has-post-thumbnail","hentry","odd"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Frequently Asked Questions - Southbourne School of English<\/title>\n<meta name=\"description\" content=\"Answers to Frequently Asked Questions (FAQs) about our English courses, facilities in Bournemouth, Visas, travel requirements and more...\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/southbourneschool.co.uk\/pl\/o\/czesto-zadawane-pytania\/\" \/>\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Frequently Asked Questions - Southbourne School of English\" \/>\n<meta property=\"og:description\" content=\"Answers to Frequently Asked Questions (FAQs) about our English courses, facilities in Bournemouth, Visas, travel requirements and more...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/southbourneschool.co.uk\/pl\/o\/czesto-zadawane-pytania\/\" \/>\n<meta property=\"og:site_name\" content=\"Southbourne School of English\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/SouthbourneSchool\/\" \/>\n<meta property=\"article:modified_time\" content=\"2025-03-05T14:59:34+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/southbourneschool.co.uk\/wp-content\/uploads\/2019\/01\/UD2A2828-1-e1548693347766.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1001\" \/>\n\t<meta property=\"og:image:height\" content=\"667\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@SouthbourneSofE\" \/>\n<meta name=\"twitter:label1\" content=\"Szacowany czas czytania\" \/>\n\t<meta name=\"twitter:data1\" content=\"3 minuty\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/southbourneschool.co.uk\\\/about\\\/faqs\\\/\",\"url\":\"https:\\\/\\\/southbourneschool.co.uk\\\/about\\\/faqs\\\/\",\"name\":\"Frequently Asked Questions - Southbourne School of English\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/southbourneschool.co.uk\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/southbourneschool.co.uk\\\/about\\\/faqs\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/southbourneschool.co.uk\\\/about\\\/faqs\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/southbourneschool.co.uk\\\/wp-content\\\/uploads\\\/2019\\\/01\\\/UD2A2828-1-e1548693347766.jpg\",\"datePublished\":\"2018-08-16T10:08:17+00:00\",\"dateModified\":\"2025-03-05T14:59:34+00:00\",\"description\":\"Answers to Frequently Asked Questions (FAQs) about our English courses, facilities in Bournemouth, Visas, travel requirements and more...\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/southbourneschool.co.uk\\\/about\\\/faqs\\\/#breadcrumb\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/southbourneschool.co.uk\\\/about\\\/faqs\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\\\/\\\/southbourneschool.co.uk\\\/about\\\/faqs\\\/#primaryimage\",\"url\":\"https:\\\/\\\/southbourneschool.co.uk\\\/wp-content\\\/uploads\\\/2019\\\/01\\\/UD2A2828-1-e1548693347766.jpg\",\"contentUrl\":\"https:\\\/\\\/southbourneschool.co.uk\\\/wp-content\\\/uploads\\\/2019\\\/01\\\/UD2A2828-1-e1548693347766.jpg\",\"width\":1001,\"height\":667,\"caption\":\"Main school reception\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/southbourneschool.co.uk\\\/about\\\/faqs\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/southbourneschool.co.uk\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"About\",\"item\":\"https:\\\/\\\/southbourneschool.co.uk\\\/about\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Frequently Asked Questions\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/southbourneschool.co.uk\\\/#website\",\"url\":\"https:\\\/\\\/southbourneschool.co.uk\\\/\",\"name\":\"Southbourne School of English\",\"description\":\"We make learning English fun. A language school in Bournemouth, ideally located by the sea in a suburb of Bournemouth called Southbourne, one of the UK\u2019s most popular locations for international students.\",\"publisher\":{\"@id\":\"https:\\\/\\\/southbourneschool.co.uk\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/southbourneschool.co.uk\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pl-PL\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/southbourneschool.co.uk\\\/#organization\",\"name\":\"Southbourne School of English\",\"alternateName\":\"SSE\",\"url\":\"https:\\\/\\\/southbourneschool.co.uk\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\\\/\\\/southbourneschool.co.uk\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/southbourneschool.co.uk\\\/wp-content\\\/uploads\\\/2026\\\/01\\\/SSE-60-Year-Anniversary-Logo.png\",\"contentUrl\":\"https:\\\/\\\/southbourneschool.co.uk\\\/wp-content\\\/uploads\\\/2026\\\/01\\\/SSE-60-Year-Anniversary-Logo.png\",\"width\":1964,\"height\":1965,\"caption\":\"Southbourne School of English\"},\"image\":{\"@id\":\"https:\\\/\\\/southbourneschool.co.uk\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/SouthbourneSchool\\\/\",\"https:\\\/\\\/x.com\\\/SouthbourneSofE\",\"https:\\\/\\\/www.instagram.com\\\/southbourneschoolofenglish\\\/\",\"https:\\\/\\\/www.tiktok.com\\\/@southbourne\",\"https:\\\/\\\/www.youtube.com\\\/@southbourneschoolofenglish4522\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Cz\u0119sto zadawane pytania - Southbourne School of English","description":"Odpowiedzi na najcz\u0119\u015bciej zadawane pytania (FAQ) dotycz\u0105ce naszych kurs\u00f3w j\u0119zyka angielskiego, obiekt\u00f3w w Bournemouth, wiz, wymog\u00f3w dotycz\u0105cych podr\u00f3\u017cy i nie tylko...","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/southbourneschool.co.uk\/pl\/o\/czesto-zadawane-pytania\/","og_locale":"pl_PL","og_type":"article","og_title":"Frequently Asked Questions - Southbourne School of English","og_description":"Answers to Frequently Asked Questions (FAQs) about our English courses, facilities in Bournemouth, Visas, travel requirements and more...","og_url":"https:\/\/southbourneschool.co.uk\/pl\/o\/czesto-zadawane-pytania\/","og_site_name":"Southbourne School of English","article_publisher":"https:\/\/www.facebook.com\/SouthbourneSchool\/","article_modified_time":"2025-03-05T14:59:34+00:00","og_image":[{"width":1001,"height":667,"url":"https:\/\/southbourneschool.co.uk\/wp-content\/uploads\/2019\/01\/UD2A2828-1-e1548693347766.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_site":"@SouthbourneSofE","twitter_misc":{"Szacowany czas czytania":"3 minuty"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/southbourneschool.co.uk\/about\/faqs\/","url":"https:\/\/southbourneschool.co.uk\/about\/faqs\/","name":"Cz\u0119sto zadawane pytania - Southbourne School of English","isPartOf":{"@id":"https:\/\/southbourneschool.co.uk\/#website"},"primaryImageOfPage":{"@id":"https:\/\/southbourneschool.co.uk\/about\/faqs\/#primaryimage"},"image":{"@id":"https:\/\/southbourneschool.co.uk\/about\/faqs\/#primaryimage"},"thumbnailUrl":"https:\/\/southbourneschool.co.uk\/wp-content\/uploads\/2019\/01\/UD2A2828-1-e1548693347766.jpg","datePublished":"2018-08-16T10:08:17+00:00","dateModified":"2025-03-05T14:59:34+00:00","description":"Odpowiedzi na najcz\u0119\u015bciej zadawane pytania (FAQ) dotycz\u0105ce naszych kurs\u00f3w j\u0119zyka angielskiego, obiekt\u00f3w w Bournemouth, wiz, wymog\u00f3w dotycz\u0105cych podr\u00f3\u017cy i nie tylko...","breadcrumb":{"@id":"https:\/\/southbourneschool.co.uk\/about\/faqs\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/southbourneschool.co.uk\/about\/faqs\/"]}]},{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/southbourneschool.co.uk\/about\/faqs\/#primaryimage","url":"https:\/\/southbourneschool.co.uk\/wp-content\/uploads\/2019\/01\/UD2A2828-1-e1548693347766.jpg","contentUrl":"https:\/\/southbourneschool.co.uk\/wp-content\/uploads\/2019\/01\/UD2A2828-1-e1548693347766.jpg","width":1001,"height":667,"caption":"Main school reception"},{"@type":"BreadcrumbList","@id":"https:\/\/southbourneschool.co.uk\/about\/faqs\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/southbourneschool.co.uk\/"},{"@type":"ListItem","position":2,"name":"About","item":"https:\/\/southbourneschool.co.uk\/about\/"},{"@type":"ListItem","position":3,"name":"Frequently Asked Questions"}]},{"@type":"WebSite","@id":"https:\/\/southbourneschool.co.uk\/#website","url":"https:\/\/southbourneschool.co.uk\/","name":"Szko\u0142a j\u0119zyka angielskiego w Southbourne","description":"Sprawiamy, \u017ce nauka angielskiego jest przyjemno\u015bci\u0105. Szko\u0142a j\u0119zykowa w Bournemouth, idealnie po\u0142o\u017cona nad morzem na przedmie\u015bciach Bournemouth zwanych Southbourne, jednej z najpopularniejszych lokalizacji w Wielkiej Brytanii dla student\u00f3w zagranicznych.","publisher":{"@id":"https:\/\/southbourneschool.co.uk\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/southbourneschool.co.uk\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pl-PL"},{"@type":"Organization","@id":"https:\/\/southbourneschool.co.uk\/#organization","name":"Szko\u0142a j\u0119zyka angielskiego w Southbourne","alternateName":"SSE","url":"https:\/\/southbourneschool.co.uk\/","logo":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/southbourneschool.co.uk\/#\/schema\/logo\/image\/","url":"https:\/\/southbourneschool.co.uk\/wp-content\/uploads\/2026\/01\/SSE-60-Year-Anniversary-Logo.png","contentUrl":"https:\/\/southbourneschool.co.uk\/wp-content\/uploads\/2026\/01\/SSE-60-Year-Anniversary-Logo.png","width":1964,"height":1965,"caption":"Southbourne School of English"},"image":{"@id":"https:\/\/southbourneschool.co.uk\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/SouthbourneSchool\/","https:\/\/x.com\/SouthbourneSofE","https:\/\/www.instagram.com\/southbourneschoolofenglish\/","https:\/\/www.tiktok.com\/@southbourne","https:\/\/www.youtube.com\/@southbourneschoolofenglish4522"]}]}},"featured_image_src":"https:\/\/southbourneschool.co.uk\/wp-content\/uploads\/2019\/01\/UD2A2828-1-e1548693347766-600x400.jpg","featured_image_src_square":"https:\/\/southbourneschool.co.uk\/wp-content\/uploads\/2019\/01\/UD2A2828-1-e1548693347766-600x600.jpg","_links":{"self":[{"href":"https:\/\/southbourneschool.co.uk\/pl\/wp-json\/wp\/v2\/pages\/581","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/southbourneschool.co.uk\/pl\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/southbourneschool.co.uk\/pl\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/southbourneschool.co.uk\/pl\/wp-json\/wp\/v2\/users\/12312401"}],"replies":[{"embeddable":true,"href":"https:\/\/southbourneschool.co.uk\/pl\/wp-json\/wp\/v2\/comments?post=581"}],"version-history":[{"count":0,"href":"https:\/\/southbourneschool.co.uk\/pl\/wp-json\/wp\/v2\/pages\/581\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/southbourneschool.co.uk\/pl\/wp-json\/wp\/v2\/pages\/162"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/southbourneschool.co.uk\/pl\/wp-json\/wp\/v2\/media\/1321"}],"wp:attachment":[{"href":"https:\/\/southbourneschool.co.uk\/pl\/wp-json\/wp\/v2\/media?parent=581"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}