@font-face { font-family: "Roboto Slab"; font-style: normal; font-weight: 100 700; font-display: swap;
  src: url(/fonts/roboto-slab-normal-cyrillic.woff2) format("woff2"); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: "Roboto Slab"; font-style: normal; font-weight: 100 700; font-display: swap;
  src: url(/fonts/roboto-slab-normal-latin.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Rubik"; font-style: italic; font-weight: 300 700; font-display: swap;
  src: url(/fonts/rubik-italic-cyrillic.woff2) format("woff2"); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: "Rubik"; font-style: italic; font-weight: 300 700; font-display: swap;
  src: url(/fonts/rubik-italic-latin.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Rubik"; font-style: normal; font-weight: 300 700; font-display: swap;
  src: url(/fonts/rubik-normal-cyrillic.woff2) format("woff2"); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: "Rubik"; font-style: normal; font-weight: 300 700; font-display: swap;
  src: url(/fonts/rubik-normal-latin.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

:root {
  --text: rgb(43, 38, 46);
  --link: #0000ee;
  --pink: rgb(236, 16, 89);
  --purple: rgb(136, 87, 164);
  --dark-purple: rgb(69, 38, 87);
  --violet: rgb(67, 21, 91);
  --blue: rgb(37, 111, 176);
  --yellow: rgb(232, 209, 17);
  --lilac: #e1ceea;
}

/* Base */
*, *::before, *::after { box-sizing: border-box; }
html { font-size: 14px; -webkit-text-size-adjust: 100%; }
body { margin: 0; font: 400 1rem/1.8 "Roboto Slab", serif; color: var(--text); background: #fff; }
h1, h2, h3, h4, .h1 { margin: 0 0 0.35em; font-family: "Rubik", sans-serif; font-weight: 400; letter-spacing: -0.035em; line-height: 1.2; color: var(--text); }
p, ul, ol, table { margin: 0 0 1.5em; }
ul, ol { padding: 0; margin-left: 1.655em; }
li ul, li ol { margin-bottom: 0; }
a { color: var(--link); text-decoration: none; }
a:hover { color: hsl(240, 60%, 53%); }
img { max-width: 100%; height: auto; vertical-align: middle; }
strong { font-weight: 700; }
.icon { width: 1em; height: 1em; vertical-align: -0.125em; }
[hidden] { display: none !important; }
.visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* Layout */
.container { display: block; width: 88%; max-width: 1200px; margin: 0 auto; }
.container.narrow, .blog .container { max-width: 800px; }
.blog .navbar.container { max-width: 1200px; }
.row { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 0 4%; }
.col { min-width: 0; margin: 0; }
.col-1-2 { width: 48%; }
.col-1-3 { width: 30.666%; }
.col-2-3 { width: 65.333%; }

/* Header */
#top { position: relative; }
.page #top { background: url(/img/illustration_14_background-4.svg) no-repeat 60% 0 / 1200px; }
.masthead { position: relative; z-index: 1030; }
.home .masthead { position: absolute; width: 100%; }
.navbar { display: flex; align-items: flex-start; justify-content: space-between; min-height: 90px; }
.brand { margin-top: 22px; }
.brand img { width: 40px; }
.navbar nav ul { display: flex; list-style: none; margin: 0; }
.navbar nav a { display: block; height: 90px; padding: 37px 20px 0; font: 500 13px/1 "Rubik", sans-serif; letter-spacing: 0.085em; text-transform: uppercase; color: var(--text); }
.navbar nav li:last-child a { padding-right: 0; }
.navbar nav a span { display: inline-block; padding-bottom: 5px; margin-right: -0.085em; }
.navbar nav li:not(.current) a:hover span { color: #ccc; }
.navbar nav .current a span { box-shadow: 0 2px 0 0 currentColor; }
.home .navbar nav a { color: #fff; }
.nav-toggle, .nav-button { display: none; }

/* Inner page title */
.landmark { margin-top: 38.5px; padding: 30px 0; }
.landmark h1, .landmark .h1 { margin: 0; font-size: 2.45em; line-height: 1; letter-spacing: -0.075em; }
.page-content { padding: 45px 0; margin-bottom: 38.5px; font-family: "Rubik", sans-serif; line-height: 1.4; }
.page-content > :last-child { margin-bottom: 0; }

/* Buttons */
.button { display: inline-block; padding: 0.75em 1.5em; margin-bottom: 0.25em; border: 1px solid transparent; border-radius: 0.225em; font: 400 16px/1.3 "Rubik", sans-serif; color: #fff; background: var(--pink); text-shadow: 0 0.075em 0.075em rgba(0, 0, 0, 0.5); box-shadow: 0 4px 9px rgba(0, 0, 0, 0.75); cursor: pointer; }
.button:hover { color: #fff; background: hsl(340, 50%, 39%); }
.button:disabled { opacity: 0.7; cursor: progress; }

/* Footer */
.footer-top { padding: 64px 0 67px; background: #f9f9f9; }
.widget-title { margin: 0 0 0.65em; font-size: 1.7em; line-height: 1.1; }
.widget-list { list-style: none; margin: 0; line-height: 1.5; }
.widget-list li { padding: 0.65em 0; border-bottom: 1px solid #f2f2f2; }
.widget-list li:first-child { border-top: 1px solid #f2f2f2; }
.footer-bottom { padding: 50px 0; background: var(--purple); color: #fff; font-size: 11px; line-height: 1.3; letter-spacing: 1px; text-align: center; }
.footer-bottom .container { margin: 20px auto; }

/* Home: hero */
.home { background: var(--purple); }
.hero-image { position: absolute; top: 0; width: 100%; overflow-x: hidden; background: #fff; }
.hero-image-inner { position: relative; width: 100%; min-width: 1500px; max-width: 1800px; margin: 0 auto; }
.hero-image img { width: 100%; }
.hero { position: absolute; z-index: 2; width: 100%; padding: 140px 0 45px; }
.hero-text { width: 48%; padding-right: 10em; font-family: "Rubik", sans-serif; color: #000; }
.hero h1 { margin: 0; font-size: 3em; line-height: 1.4; letter-spacing: 0; color: #000; }
.hero h1 strong { font-weight: 500; }
.hero p { margin: 0; font-weight: 300; line-height: 1.4; }
.hero-button { display: inline-block; margin-top: 33.6px; padding: 14.66px 19.28px; border-radius: 5.88px; font: 400 20.16px/1 "Rubik", sans-serif; background: var(--pink); box-shadow: 0 2.52px 10.92px rgba(0, 0, 0, 0.5); }
.hero-button, .hero-button:hover { color: #fff; }
.hero-button:hover { color: #fff; font-size: 20.16px; }
.hero-button:hover { background: hsl(340, 62%, 33%); color: rgba(255, 255, 255, 0.5); }

/* Home: sections */
.section { position: relative; z-index: 1; display: block; padding: 45px 0; }
.blue { background: var(--blue); }
.dark { background: var(--dark-purple); }
.pink { background: var(--pink); }
.purple { background: var(--purple); }
.violet { background: var(--violet); }
.raised { box-shadow: 0 0 15px #000; }
.section-title { margin: 0 0 2rem; font-size: 2em; font-weight: 500; line-height: 1.4; letter-spacing: 0; text-align: center; color: #fff; }
.section-title.flush { margin-bottom: 0; }
.section-title.spaced { margin-bottom: 4rem; }

.why-trust-us { padding-top: 600px; }
.why-trust-us .section-title { margin-bottom: 3rem; }
.why-trust-us ul { margin: 0; padding-left: 1.655em; font: 300 1em/1.5 "Rubik", sans-serif; color: #fff; }
.why-trust-us li + li { margin-top: 1em; }
.why-trust-us .col-1-2 { width: 48%; }

.special-subjects { z-index: 15; }
.section-intro { margin: 0 0 1em; font-family: "Rubik", sans-serif; line-height: 1.4; text-align: center; color: #fff; }
.subject-icon { font: 400 4em/1.8 "Rubik", sans-serif; text-align: center; color: var(--yellow); }
.special-subjects .subject-icon { color: #ff9e32; }
.subject-description { font: 500 1em/1.8 "Rubik", sans-serif; text-align: center; color: #fff; }
.special-subjects .subject-description { font-weight: 300; }
.special-subjects .subject-description strong { font-weight: 500; }

.subjects-row { display: flex; gap: 0 4%; }
.subject { width: 30.666%; }
.subjects-description { font: 300 1em/1.8 "Rubik", sans-serif; color: #fff; }
.subjects-description p { margin-bottom: 1.5em; }

.about { z-index: 2; }
.about-photo { text-align: center; }
.about-photo img { display: inline-block; box-shadow: 0 0 1.76em rgba(0, 0, 0, 0.51); }
.about-text { font: 300 1.1em/1.5 "Roboto Slab", serif; color: #fff; }
.about-text > :last-child { margin-bottom: 0; }

.testimonials blockquote { margin: 0 0 2em; font-size: 1.3em; }
.testimonials blockquote:last-child { margin-bottom: 0; }
.quote-text { font-style: italic; font-weight: 300; line-height: 1.4; color: #fff; }
.quote-text p:last-child { margin-bottom: 0; }
.testimonials footer { margin-top: 0.75em; margin-right: -0.25em; font-size: 0.75em; font-weight: 700; line-height: 1.3; letter-spacing: 0.25em; text-align: center; text-transform: uppercase; color: var(--dark-purple); }

.pricing-table { display: flex; margin-bottom: 21px; text-align: center; }
.pricing-column { width: 25%; margin: 0 0 -1px -1px; background: var(--lilac); box-shadow: 0 0 15px #000; align-self: flex-start; }
.pricing-column h3 { margin: 0; padding: 20px 20px 25px; border: 1px solid #e5e5e5; font-size: 32px; line-height: 1.1; letter-spacing: -0.035em; }
.pricing-column h3 span { display: block; margin-top: 5px; font-size: 13px; letter-spacing: 2px; text-transform: uppercase; color: #000; }
.pricing-column.featured { position: relative; margin-top: -20px; background: #fffeff; }
.pricing-column.featured h3 { padding-bottom: 28px; border: 0; color: #fff; background: var(--yellow); }
.pricing-info { padding: 10px 0 32px; }
.pricing-info p { margin: 0; font-family: "Rubik", sans-serif; }
.price { font-size: 54px; line-height: 1.3; letter-spacing: -3px; }
.pricing-info .interval { margin-top: -1px; font: 12px/1.8 "Roboto Slab", serif; letter-spacing: 2px; text-transform: uppercase; color: #5a708d; }
.pricing-info ul { margin: 0 0 25px; list-style: none; }
.pricing-info li { margin-top: 14px; padding: 10px 40px 11px; line-height: 1.5; color: var(--blue); }
.pricing-info .button { margin: 0 20px 0.25em; }
.featured .pricing-info { padding-bottom: 50px; }
.featured .pricing-info ul { margin: 15px 0 40px; }
.pricing-info .button.large { font-size: 21px; }
.pricing-additional { position: relative; margin-top: 35px; padding: 2em; font: 300 1em/1.4 "Rubik", sans-serif; color: rgb(18, 18, 17); background: var(--lilac); box-shadow: 0 0 15px #000; }
.pricing-additional p { margin: 0 0 1.5em; font-weight: 500; }
.pricing-additional ul { margin-bottom: 0; }

.banner { color: #fff; text-align: center; box-shadow: 0 0 15px rgba(0, 0, 0, 0.81); font: 500 2.4em/1.4 "Rubik", sans-serif; }
.banner.small { font-size: 2em; }
.banner:hover { color: #fff; }
.banner-title { display: block; }
.banner-sub { display: block; margin-top: 0.35em; font-size: 0.7em; font-weight: 400; text-decoration: underline; }

.contacts table { color: #fff; border-collapse: collapse; width: 100%; line-height: 1.4; }
.contacts td { padding: 0.5em 0.625em; border-bottom: 1px solid rgba(255, 255, 255, 0.2); }
.contacts td:first-child { width: 1px; text-align: center; }
.contacts table a { color: #fff; text-decoration: underline; }
.contacts table a:hover { color: #aaa; text-decoration: none; }
.map { position: relative; aspect-ratio: 4 / 3; background: #e5e3df; }
.map img, .map iframe { display: block; width: 100%; height: 100%; border: 0; object-fit: cover; }
.map-button { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); }
.map-note { margin: 0.5em 0 0; font-size: 12px; color: #fff; }
.map-note a { color: #fff; text-decoration: underline; }

/* Blog */
.blog main { padding-bottom: 45px; }
.entry + .entry { margin-top: 90px; }
.entry-title { position: relative; margin: 0; font-size: 1.7em; line-height: 1.1; }
.entry-title .icon { margin-right: 7.3px; font-size: 0.88em; color: #ddd; vertical-align: -0.05em; }
.entry-title a { color: var(--text); }
.entry-featured { display: block; margin-top: 25px; padding: 6px; border: 2px solid #e5e5e5; background: #fff; }
.entry-featured img { display: block; width: 100%; }
.entry-content { margin-top: 25px; }
.entry-content > :last-child { margin-bottom: 0; }

/* Programme tabs */
.tabs { margin-bottom: 21px; line-height: 1.8; }
.tab-labels { display: flex; border: 2px solid #e5e5e5; border-bottom: 0; }
.tab-input { position: absolute; opacity: 0; }
.tab-label { flex: 1; padding: 10.5px 10.5px 13.3px; border-bottom: 2px solid #e5e5e5; line-height: 1.3; text-align: center; color: rgba(43, 38, 46, 0.6); background: rgba(225, 206, 234, 0.3); cursor: pointer; }
.tab-label:first-of-type { border-right: 2px solid #e5e5e5; }
.tab-input:checked + .tab-label { font-weight: 700; color: var(--text); background: #fff; border-bottom-color: transparent; }
.tab-input:focus-visible + .tab-label { outline: 2px solid var(--link); }
.tab-pane { display: none; padding: 31.8px; border: 2px solid #e5e5e5; border-top: 0; }
.tabs:has(#tab-term:checked) #pane-term, .tabs:has(#tab-summer:checked) #pane-summer { display: block; }
.tab-pane table { width: 100%; margin: 0; border-collapse: collapse; }
.tab-pane th, .tab-pane td { padding: 14px; line-height: 1.4; text-align: left; }
.tab-pane th { font-weight: 700; line-height: 1.3; }
@media (min-width: 768px) { .tab-pane :is(th, td):first-child { white-space: nowrap; } }
.tab-pane tr:nth-child(even), .tab-pane thead tr { background: rgba(225, 206, 234, 0.3); }

/* Registration form */
.registration-page { padding-top: 0; }
.registration-page .intro { margin-bottom: 28px; color: #000; }
.registration-page .intro p:last-child { margin-bottom: 0; }
.registration { font-family: "Roboto Slab", serif; line-height: 1.8; }
.registration p { display: flow-root; margin: 0 0 0.375em; }
.registration label { display: block; }
.registration input { display: block; width: 100%; height: 34.4px; margin-bottom: 9px; padding: 0 8.45px; border: 2px solid #ddd; font: 13px "Roboto Slab", serif; color: #555; background: #fff; }
.registration input:focus { outline: none; border-color: #999; }
.registration input[aria-invalid="true"] { border-color: var(--pink); }
.registration .submit { width: 250px; margin-top: 16.8px; padding: 9.46px 18.9px 13.66px; border-radius: 4.2px; font: 16.8px/1.3 "Roboto Slab", serif; }
.field-error { display: block; margin: -4px 0 9px; font-size: 13px; line-height: 1.4; color: var(--pink); }
.form-message { padding: 0.5em 1em; border: 2px solid var(--pink); color: var(--pink); }
.form-message.success { border-color: #46b450; color: #2e7d32; }
.hp { position: absolute; left: -9999px; }

/* Tablet and phone */
@media (max-width: 2150px) { .page #top { background-position: 75% 0; } }
@media (max-width: 1617px) { .page #top { background-position: 300px 0; } }
@media (max-width: 1450px) { .page #top { background-position: 200px 0; } }
@media (max-width: 1260px) { .page #top { background-position: 70px 0; } }
@media (max-width: 1191px) {
  .hero-image-inner { left: -100px; }
  .hero h1 { font-size: 2em; }
}
@media (max-width: 1125px) { .page #top { background-position: -50px 0; } }
@media (max-width: 1065px) { .hero-image-inner { left: -200px; } }
@media (max-width: 1000px) {
  .subjects .col { width: 100%; }
  .subjects-description { margin-top: 90px; }
}
@media (max-width: 997px) { .page #top { background-position: -150px 0; } }
@media (max-width: 979px) {
  .hero-image-inner { left: -300px; }
  .navbar { flex-wrap: wrap; }
  .nav-button { display: block; margin-top: 20px; padding: 0.458em 0.625em; font-size: 24px; line-height: 1; color: #fff; cursor: pointer; }
  .nav-button .icon { width: 0.875em; vertical-align: top; }
  .nav-toggle:checked + .nav-button { background: rgba(136, 87, 164, 0.9); }
  .navbar nav { display: none; width: 100%; }
  .nav-toggle:checked ~ nav { display: block; }
  .navbar nav ul { display: block; margin: 25px 0; }
  .navbar nav a, .home .navbar nav a, .navbar nav li:last-child a { height: auto; margin-bottom: 11px; padding: 0.75em 0.95em; font-size: 14px; line-height: 1.5; color: #fff; background: rgba(136, 87, 164, 0.9); }
  .navbar nav a span { padding-bottom: 0; }
  .navbar nav a:hover span { color: #ccc; }
  .navbar nav .current a span { box-shadow: none; }
  .pricing-table { flex-direction: column; }
  .footer-top { padding: 50px 0; }
  .footer-top .col { width: 100%; }
  .footer-top .col + .col { margin-top: 42px; }
  .pricing-column { width: 100%; }
}
@media (max-width: 870px) { .page #top { background-position: -250px 0; } }
@media (max-width: 825px) {
  .hero-image-inner { left: -450px; }
  .hero { position: relative; padding: 570px 0 71px; }
  .hero-text { width: 100%; padding-right: 0; }
  .hero-text, .hero h1 { color: #fff; }
  .hero h1 { font-size: 3em; }
  .hero-button { display: block; text-align: center; }
  .why-trust-us { padding-top: 0; }
}
@media (max-width: 767px) {
  .page #top { background-image: url(/img/illustration_14_background_smaller.svg); background-position: -330px 0; }
  .row > .col { width: 100%; }
  .subjects-grid { display: flex; }
  .subjects-row { display: block; width: 50%; }
  .subject { width: 100%; }
  .why-trust-us { padding-top: 14px; }
  .why-trust-us .col + .col, .pricing-additional .col + .col { margin-top: 1em; }
  .about-photo { margin-bottom: 2em; }
}
@media (max-width: 680px) { .page #top { background-size: 1100px; } }
@media (max-width: 480px) {
  .tab-labels { flex-direction: column; }
  .tab-label:first-of-type { border-right: 0; }
  .tab-input:checked + .tab-label { border-bottom-color: #e5e5e5; }
  .tab-pane { padding: 14px; }
}
@media (max-width: 600px) {
  .hero-image-inner { left: -300px; min-width: 1000px; }
  .hero { padding-top: 400px; }
  .hero h1 { font-size: 2em; }
}
@media (max-width: 595px) { .page #top { background-position: -380px 0; } }
@media (max-width: 540px) { .page #top { background-size: 900px; background-position: -290px 0; } }
@media (max-width: 500px) {
  .hero-image-inner { left: -260px; min-width: 800px; }
  .hero { padding-top: 320px; }
}
@media (max-width: 456px) { .page #top { background-size: 800px; background-position: -280px 0; } }
@media (max-width: 389px) { .page #top { background-size: 740px; background-position: -260px 0; } }
