@import url("https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap");
* {
  outline: none !important; font-variant-numeric: tabular-nums; }

img {
  max-width: 100%; }

button {
  transition: .5s;
  border: none;
  background: none;
  padding: 0;
  margin: 0;
  box-shadow: none; }

body {
  --font-family-base: 'Inter', arial, sans-serif;
  --font-family-headings: 'TT Interphases Pro Trl', arial, sans-serif;
  --accent-base-color: #009879;
  --accent-light-color: #0075BF;
  --footer-bg: #23272d;
  --dark-color: #262b32;
  --color-grey: #919aae;
  --accent-base-color-active: #E30613;
  --accent-btn: #FEAE46;
  --accent-btn-rgb: rgba(254, 174, 70);
  --accent-btn-blue: #0075BF;
  --bs-body-color: var(--color-grey);
  --bs-primary: var(--accent-base-color);
  --bs-info: var(--accent-base-color);
  --bs-link-color: var(--accent-base-color);
  --bs-link-color-rgb: 0,152,121;
  --bs-link-hover-color-rgb: 227, 6, 19;
  --bs-font-sans-serif: var(--font-family-base);
  --bs-font-monospace: var(--font-family-base);
  --bs-gutter-x: 30px; }

@font-face {
  font-family: 'TT Interphases Pro Trl';
  src: url("../fonts/TTInterphasesProTrl-Rg.woff2") format("woff2"), url("../fonts/TTInterphasesProTrl-Rg.woff") format("woff");
  font-weight: normal;
  font-style: normal;
  font-display: swap; }
@font-face {
  font-family: 'TT Interphases Pro Trl';
  src: url("../fonts/TTInterphasesProTrl-Bd.woff2") format("woff2"), url("../fonts/TTInterphasesProTrl-Bd.woff") format("woff");
  font-weight: bold;
  font-style: normal;
  font-display: swap; }
@font-face {
  font-family: 'TT Interphases Pro Trl';
  src: url("../fonts/TTInterphasesProTrl-Blk.woff2") format("woff2"), url("../fonts/TTInterphasesProTrl-Blk.woff") format("woff");
  font-weight: 900;
  font-style: normal;
  font-display: swap; }
p:last-child {
  margin-bottom: 0; }

a {
  text-decoration: none; }
  a[href*="tel"] {
    white-space: nowrap; }

h1, .h1, h2, .h2, h4, .h4, h5, .h5 {
  font-family: var(--font-family-headings); }

h3, .h3 {
  font-family: var(--font-family-base);
  font-size: 29px;
  line-height: 35px;
  font-weight: 900; }
  @media (max-width: 767px) {
    h3, .h3 {
      font-size: 23px;
      line-height: 28px; } }

b, strong {
  font-weight: 700; }

.text-uppercase {
  text-transform: uppercase; }

body {
  background: #ffffff;
  color: var(--text-color);
  font-family: var(--font-family-base);
  font-optical-sizing: auto;
  font-variation-settings: "slnt" 0;
  font-size: 19px;
  line-height: 25px;
  font-weight: 500; }

.container {
  max-width: 1200px; }
  @media (max-width: 1279px) {
    .container {
      max-width: 100%;
      padding-left: 60px;
      padding-right: 60px; } }
  @media (max-width: 767px) {
    .container {
      padding-left: 30px;
      padding-right: 30px; } }

.page {
  position: relative;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  width: 100%;
  min-height: 100vh;
  max-width: 1920px;
  margin-left: auto;
  margin-right: auto;
  background: #fff;
  box-shadow: 0 0 5px var(--color-grey); }
  .page__main {
    flex-grow: 1; }

.menu-open {
  overflow: hidden; }

.color-accent {
  color: var(--accent-base-color); }

.slice {
  position: relative; }
  .slice__title {
    font-size: 55px;
    line-height: 66px;
    font-weight: 900;
    text-transform: uppercase; }
  .slice__decor-wrap {
    position: relative; }
  .slice__decor {
    position: absolute;
    top: 0;
    left: 0;
    margin: 95px 0 0 -300px; }
    .slice__decor_right {
      left: auto;
      right: 0;
      margin-left: 0;
      margin-right: -300px; }
  @media (max-width: 767px) {
    .slice__title {
      font-size: 27px;
      line-height: 32px; }
    .slice__decor {
      width: 100px;
      margin: 35px 0 0 -150px; }
      .slice__decor_right {
        margin-right: -150px; } }

.js-slider, .js-slider-5 {
  opacity: 0;
  height: 200px; }
  .js-slider.slick-initialized, .js-slider-5.slick-initialized {
    opacity: 1;
    height: auto; }
  .js-slider .slick-track, .js-slider-5 .slick-track {
    display: flex; }
  .js-slider .slick-slide, .js-slider-5 .slick-slide {
    height: auto; }
  .js-slider .slick-arrow, .js-slider-5 .slick-arrow {
    position: absolute;
    width: 92px;
    height: 92px;
    border-radius: 50%;
    border: 10px solid #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 2;
    color: #000; }
    .js-slider .slick-arrow, .js-slider .slick-arrow:focus, .js-slider-5 .slick-arrow, .js-slider-5 .slick-arrow:focus {
      background: #EFEFEF; }
    .js-slider .slick-arrow::before, .js-slider-5 .slick-arrow::before {
      content: none; }
    .js-slider .slick-arrow:hover, .js-slider .slick-arrow:active, .js-slider-5 .slick-arrow:hover, .js-slider-5 .slick-arrow:active {
      background: #ccc; }
  .js-slider .slick-prev, .js-slider-5 .slick-prev {
    left: -46px; }
  .js-slider .slick-next, .js-slider-5 .slick-next {
    right: -46px; }

.archive-item {
  display: flex;
  align-items: center;
  gap: 15px;
  text-align: left;
  background: #eeeeee;
  min-height: 80px;
  padding: 20px 20px 20px 30px;
  border-radius: 90px;
  margin-bottom: 12px;
  color: inherit !important;
  font-size: 17px;
  line-height: 22px; }
  .archive-item:hover {
    background: rgba(238, 238, 238, 0.7); }
  .archive-item__year {
    font-weight: 900; }
  @media (max-width: 1199px) {
    .archive-item {
      padding: 25px 30px;
      gap: 30px; } }
  @media (max-width: 991px) {
    .archive-item {
      margin-bottom: 40px; } }
  @media (max-width: 767px) {
    .archive-item {
      flex-direction: column;
      gap: 5px;
      padding: 15px 30px;
      align-items: flex-start;
      margin-bottom: 30px; } }

.header {
  background: #fff;
  position: relative;
  margin-bottom: -15px; }
  .header::before {
    content: '';
    display: block;
    width: 358px;
    height: 87px;
    position: absolute;
    top: 0;
    left: 50%;
    margin-left: -962px;
    pointer-events: none; }
  .header::after {
    content: '';
    display: block;
    width: 168px;
    height: 268px;
    position: absolute;
    top: 0;
    left: 50%;
    margin-left: 632px;
    pointer-events: none; }
  .header__container {
    max-width: 1200px;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    padding-top: 23px;
    padding-bottom: 15px;
    gap: 15px; }
  .header__logo {
    flex-shrink: 0; }
  .header__menu {
    padding-top: 25px; }
  .header__reg {
    margin-top: 20px; }
    .header__reg .btn {
      height: 68px;
      font-size: 19px;
      line-height: 25px;
      gap: 10px;
      padding-left: 30px;
      padding-right: 38px; }
  .header__social {
    margin-top: 20px;
    margin-right: 4px; }
  @media (max-width: 1199px) {
    .header__container {
      padding: 20px 60px 32px;
      flex-wrap: wrap;
      gap: 10px 30px;
      justify-content: flex-start; }
    .header__menu {
      order: 5;
      width: 100%;
      padding-top: 10px;
      padding-bottom: 10px;
      padding-left: 110px;
      max-width: none; }
    .header__reg .btn {
      gap: 40px;
      height: 50px;
      padding-right: 25px;
      padding-left: 25px; }
    .header__social {
      margin-left: auto; } }
  @media (max-width: 991px) {
    .header__reg {
      order: -3;
      margin-top: 0; }
      .header__reg .btn {
        height: 70px; }
    .header__social {
      order: -2;
      min-width: 40%;
      margin-top: 0; }
    .header__menu {
      margin-top: 10px;
      padding-left: 10px; } }
  @media (max-width: 767px) {
    .header {
      position: relative; }
      .header__container {
        padding-left: 20px;
        padding-right: 20px;
        gap: 10px; }
      .header__logo {
        width: 55px;
        order: -5; }
      .header__reg {
        order: 4;
        width: 100%; }
        .header__reg .btn {
          gap: 8px; }
      .header__burger-btn {
        position: absolute;
        top: 40px;
        right: 30px; }
      .header__social {
        margin-top: 15px;
        margin-left: 0;
        padding-right: 80px;
        max-width: 200px; }
      .header__menu.menu {
        position: absolute;
        top: 110px;
        left: 0;
        background: #fff;
        z-index: 5;
        height: auto;
        box-shadow: 0 30px 23.1px 0 #00000026;
        padding: 15px 29px 40px 29px;
        gap: 10px;
        border-radius: 0 0 80px 0;
        flex-direction: column;
        display: none; }
        .menu-open .header__menu.menu {
          display: flex; } }

.menu {
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
  height: 120px;
  gap: 10px 35px;
  max-width: 500px; }
  .menu a {
    color: #000;
    font-weight: 700;
    text-transform: uppercase;
    font-size: 19px;
    line-height: 25px;
    display: flex;
    align-items: flex-start;
    gap: 15px; }
    .menu a:hover {
      color: var(--accent-base-color); }
    .menu a:first-child {
      width: 160px; }
      .footer .menu a:first-child {
        width: 100%; }
    .menu a::before {
      content: '';
      width: 6px;
      height: 6px;
      border-radius: 50%;
      background: var(--accent-base-color);
      flex-shrink: 0;
      margin-top: 5px; }
  @media (min-width: 1200px) and (max-width: 1279px) {
    .menu {
      max-width: 410px;
      gap: 5px 20px;
      display: grid;
      grid-template-columns: repeat(2, auto); }
      .menu a:first-child {
        grid-row: span 3; }
      .menu a:nth-child(3) {
        max-width: 200px; } }
  @media (max-width: 767px) {
    .menu a:first-child {
      width: 100%; } }

.footer {
  padding-top: 55px;
  padding-bottom: 100px; }
  .footer__container {
    max-width: 1200px; }
  .footer__main {
    position: relative;
    margin-bottom: 45px; }
  .footer__content {
    display: flex;
    gap: 35px; }
  .footer__aside h3 {
    margin-top: 30px;
    margin-bottom: 30px; }
  .footer__logo {
    margin-bottom: 30px; }
  .footer__menu {
    height: auto;
    padding-top: 10px; }
    .footer__menu a {
      font-size: 18px; }
  .footer__bottom {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    font-size: 19px;
    line-height: 25px; }
  .footer__policy {
    text-transform: uppercase;
    font-weight: 700;
    margin-bottom: 5px; }
    .footer__policy a {
      color: #000; }
  .footer__poweredby {
    display: none; }
    .footer__poweredby a {
      display: flex;
      align-items: center;
      gap: 28px;
      color: rgba(0, 0, 0, 0.7); }
  @media (max-width: 1199px) {
    .footer {
      padding-top: 0;
      padding-bottom: 60px; }
      .footer__content {
        margin-bottom: 40px;
        padding-left: 40px; }
      .footer__aside {
        max-width: 568px; }
      .footer__main {
        margin-bottom: 40px; }
      .footer__bottom {
        position: relative;
        flex-wrap: wrap; }
      .footer__container {
        display: flex;
        flex-wrap: wrap; }
      .footer__policy, .footer__bottom {
        max-width: 50%; }
      .footer__copyright {
        opacity: .7; }
      .footer__poweredby {
        position: absolute;
        bottom: 0;
        right: 0;
        max-width: 50%; }
        .footer__poweredby a {
          text-align: right;
          flex-direction: column;
          gap: 15px;
          align-items: flex-end;
          padding-left: 20px; } }
  @media (max-width: 767px) {
    .footer__content {
      flex-direction: column;
      gap: 30px;
      padding-left: calc(var(--bs-gutter-x) * .5); }
    .footer__bottom {
      flex-direction: column;
      gap: 20px;
      width: 100%;
      max-width: 100%; }
    .footer__policy {
      margin-bottom: 10px; }
    .footer__policy, .footer__copyright {
      max-width: 100%;
      width: 100%; }
    .footer__poweredby {
      position: relative;
      max-width: 100%;
      width: 100%; }
      .footer__poweredby a {
        text-align: left;
        gap: 10px;
        align-items: flex-start;
        padding-left: 0; } }

.btn {
  border-radius: 90px;
  display: inline-flex;
  gap: 15px;
  align-items: center;
  justify-content: center;
  text-align: center;
  position: relative;
  font-weight: 700;
  font-size: 19px;
  padding: 10px 20px;
  text-transform: uppercase;
  font-family: var(--font-family-headings); }
  @media (max-width: 767px) {
    .btn {
      font-size: 17px;
      line-height: 23px; } }

.btn-yellow, .btn-yellow:focus {
  color: #000;
  background: #FEAE46; }
.btn-yellow:hover, .btn-yellow:active {
  background: var(--accent-base-color-active);
  color: #fff; }

.btn-block {
  width: 100%; }

.btn-dark {
  background: var(--dark-color); }

.btn-blue {
  background: var(--accent-base-color);
  color: #fff; }
  .btn-blue:hover {
    background: var(--accent-light-color);
    color: #fff; }

.btn-bordered {
  border: 1px solid rgba(255, 255, 255, 0.5);
  color: #fff; }
  .btn-bordered:hover {
    border-color: var(--dark-color);
    background: var(--dark-color);
    color: #fff; }

.form .row {
  margin-left: -20px;
  margin-right: -20px; }
  .form .row > .col {
    padding-left: 20px;
    padding-right: 20px; }

.form-group {
  position: relative;
  margin-bottom: 30px; }
  .form-group:has(.btn) {
    margin-bottom: 20px; }
  .form-group .form-label {
    color: var(--color-grey);
    font-size: 15px;
    width: 100%; }
  .form-group .form-input + .form-label {
    position: absolute;
    top: 20px;
    left: 15px;
    transition: .5s;
    opacity: 0;
    height: 20px;
    pointer-events: none; }
  .form-group select.form-input:not(:focus),
  .form-group select.form-input:not([data-chosen]) {
    opacity: .6; }
  .form-group select.form-input:focus,
  .form-group select.form-input:focus option,
  .form-group select.form-input[data-chosen],
  .form-group select.form-input[data-chosen] option {
    opacity: 1; }
  .form-group select.form-input:focus option[value="0"],
  .form-group select.form-input[data-chosen] option[value="0"] {
    display: none; }
  .form-group select.form-input[data-chosen] + .form-label,
  .form-group textarea.form-input:not(:placeholder-shown) + .form-label,
  .form-group input.form-input:not(:placeholder-shown) + .form-label,
  .form-group .form-input:focus + .form-label {
    top: 10px;
    opacity: 1;
    font-size: .8em; }
  .form-group select.form-input[data-chosen] + .form-label,
  .form-group .form-input:focus + .form-label {
    color: var(--accent-base-color); }
  .form-group .ui-datepicker {
    margin-left: auto;
    margin-right: auto; }
  .form-group:has(input[type="file"]) {
    position: relative;
    border: 1px solid #e4e6eb; }
    .form-group:has(input[type="file"]) .form-label {
      top: 22px !important;
      font-size: 1em !important; }
    .form-group:has(input[type="file"])::after {
      content: '';
      display: block;
      width: 16px;
      height: 16px;
      position: absolute;
      top: 50%;
      right: 16px;
      margin-top: -8px;
      background: url("/img/icon-add-file.png") no-repeat 50% 50%; }
  @media (max-width: 576px) {
    .form-group {
      margin-bottom: 35px; } }

.form-input {
  width: 100%;
  height: 65px;
  padding: 20px 15px 0;
  background: transparent;
  border: 1px solid #e4e6eb;
  font-weight: 300;
  font-size: 15px; }
  .form-input:focus {
    border-color: var(--accent-base-color);
    color: var(--accent-base-color); }
    .form-input:focus::placeholder {
      opacity: 0; }
  .form-input:not(:placeholder-shown) {
    border-color: #000; }
  .form-input[type="file"] {
    opacity: 0; }

div.form-input {
  border: none;
  padding: 0;
  display: flex;
  align-items: center;
  color: var(--text-color); }

textarea.form-input {
  height: 172px;
  padding: 30px 15px 0; }

.checkbox-custom,
.radio-custom {
  position: relative; }
  .checkbox-custom input,
  .radio-custom input {
    position: absolute;
    top: 0;
    left: 0;
    opacity: 0; }
  .checkbox-custom label,
  .radio-custom label {
    display: flex;
    align-items: flex-start; }
    .checkbox-custom label::before,
    .radio-custom label::before {
      content: '';
      display: block;
      width: 16px;
      height: 16px;
      margin-right: 10px;
      flex-shrink: 0;
      border: 1px solid rgba(0, 0, 0, 0.5); }
    .checkbox-custom label:empty::before,
    .radio-custom label:empty::before {
      margin-right: 0; }

.checkbox-custom input:checked + label::before {
  background: var(--accent-base-color) url(../img/icon-check.svg) no-repeat 50% 50%; }
.checkbox-custom label::before {
  border-radius: 3px; }

.radio-custom input:checked + label::before {
  background: var(--accent-base-color);
  box-shadow: inset 0 0 0 6px #fff; }
.radio-custom label::before {
  border-radius: 50%; }

.form-agreement {
  max-width: 510px;
  font-size: .78rem;
  color: var(--color-grey); }

.social-icons {
  display: flex;
  align-items: center;
  gap: 10px; }
  .social-icons__item {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 68px;
    height: 68px;
    border-radius: 90px;
    flex-shrink: 0;
    color: #000;
    padding: 0; }
    .social-icons__item_vk {
      background: #DCECFF; }
    .social-icons__item_tg {
      background: #59c7f9; }
    .social-icons__item_yt {
      background: #FFECDC; }
  @media (max-width: 1199px) {
    .social-icons__item {
      width: 50px;
      height: 50px; } }
  @media (max-width: 991px) {
    .social-icons {
      gap: 20px; }
      .social-icons__item {
        width: 70px;
        height: 70px; } }
  @media (max-width: 767px) {
    .social-icons {
      gap: 5px; }
      .social-icons__item {
        width: 54px;
        height: 54px; }
        .social-icons__item img {
          width: 24px; } }

.banner {
  position: relative;
  width: 100%;
  overflow: hidden; }
  .banner__image {
    position: absolute;
    bottom: 0; }
    .banner__image_left {
      left: 0; }
    .banner__image_right {
      right: 0; }
  .banner__content {
    position: relative;
    top: 0;
    left: 0;
    width: 100%;
    display: flex;
    padding-top: 130px;
    padding-bottom: 100px; }
  .banner__date {
    display: inline-block;
    margin-bottom: 50px;
    color: #000;
    padding: 16px 65px;
    border-radius: 50px 50px 50px 0;
    background: var(--accent-btn);
    font-size: 23px;
    line-height: 27px;
    font-weight: 400; }
    .banner__date strong {
      display: block;
      margin-bottom: 8px; }
  .banner__logos {
    float: right;
    padding: 13px 5px; }
  .banner__title {
    font-size: 92px;
    line-height: 1;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 1px;
    padding-bottom: 40px; }
    .banner__title .large {
      font-size: 121px;
      line-height: 1.15; }
  .banner__bottom {
    margin-left: -8px; }
  .banner__locations {
    display: flex;
    gap: 14px;
    margin-bottom: 20px; }
  .banner__location {
    flex-basis: 100%;
    flex-grow: 1;
    border: 8px solid #fff;
    border-radius: 90px 90px 90px 0;
    padding: 40px 30px 40px 40px;
    background: #ccc;
    color: #fff;
    position: relative;
    overflow: hidden;
    height: 100%; }
    .banner__location .bg {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%; }
    .banner__location .title {
      position: relative;
      font-size: 23px;
      line-height: 30px;
      font-weight: 700;
      margin-bottom: 16px;
      font-family: var(--font-family-headings);
      min-height: 40px; }
    .banner__location .address {
      position: relative;
      font-size: 19px;
      line-height: 25px; }
    .banner__location.conditions .title {
      margin-bottom: 0; }
  @media (max-width: 1399px) {
    .banner__image_left {
      left: -50px; }
    .banner__image_right {
      right: -150px; }
    .banner__content {
      padding-top: 8.5vw;
      padding-left: 0; }
    .banner__date {
      padding-left: 40px;
      padding-right: 40px; }
    .banner__logos {
      padding-left: 0;
      padding-right: 0;
      max-width: 49%; }
    .banner__bottom > .row {
      gap: 30px 0; } }
  @media (max-width: 1199px) {
    .banner {
      margin-bottom: 90px; }
      .banner__content {
        padding-top: 50px;
        padding-bottom: 20px; }
      .banner__image_left {
        left: -5vw;
        width: 50vw; }
      .banner__image_right {
        right: -27vw;
        width: 50vw;
        bottom: 35px; }
      .banner__title {
        font-size: 70px; }
        .banner__title .large {
          font-size: 82px; }
      .banner__location {
        padding-right: 10px; }
      .banner__bottom > .row {
        justify-content: center; }
        .banner__bottom > .row .col:nth-child(2) {
          order: 3; } }
  @media (max-width: 991px) {
    .banner__content {
      padding-top: 20px;
      max-height: none;
      height: auto; }
    .banner__title {
      font-size: 62px; } }
  @media (max-width: 767px) {
    .banner__logos {
      max-width: 100%;
      margin-bottom: 30px; }
    .banner__date {
      width: 254px;
      padding-left: 0;
      padding-right: 0;
      margin-bottom: 20px;
      text-align: center; }
    .banner__title {
      font-size: 30px; }
      .banner__title .large {
        font-size: 38px; }
    .banner__image img {
      opacity: 0; }
    .banner__image_left {
      left: 0;
      bottom: auto;
      top: 220px;
      width: 48px;
      height: 682px;
      background: url(../img/banner-left-mobile.png); }
    .banner__image_right {
      right: 0;
      bottom: auto;
      top: 420px;
      width: 58px;
      height: 474px;
      background: url(../img/banner-right-mobile.png); }
    .banner__content {
      position: relative;
      height: auto; }
    .banner__bottom {
      margin-left: -8px;
      margin-right: -15px; }
      .banner__bottom > .row {
        gap: 5px 0; }
        .banner__bottom > .row .col:nth-child(2) {
          order: initial; } }

.about {
  margin-top: 4.1vw;
  padding-bottom: 0;
  position: relative; }
  .about .slice__title {
    margin-bottom: 3vw; }
  .about__content {
    position: relative; }
  .about__decor {
    position: absolute;
    top: -110px;
    right: 45px;
    margin: 0;
    width: 100px; }
  .about__main-text {
    font-size: 23px;
    line-height: 30px;
    margin-bottom: 55px;
    font-weight: 500; }
  .about p {
    margin-bottom: 30px; }
  @media (max-width: 1199px) {
    .about {
      margin-top: 4vw;
      padding-bottom: 4vw; }
      .about .slice__title {
        margin-bottom: 5vw; }
      .about__decor {
        top: -124px;
        right: -12px; }
      .about__main-text {
        margin-left: 15%;
        margin-right: 5%; } }
  @media (max-width: 767px) {
    .about__decor {
      top: -70px;
      width: 80px; }
    .about__main-text {
      max-height: 540px;
      overflow-y: scroll;
      overflow-x: hidden; } }

.events {
  margin-top: 50px;
  margin-bottom: 50px; }
  .events .slice__title {
    margin-bottom: 36px; }
  .events__slider {
    margin-left: -15px;
    margin-right: -15px; }
    .events__slider .slick-arrow {
      margin-top: -125px; }
    .events__slider .slick-prev {
      left: -30px; }
    .events__slider .slick-next {
      right: -30px; }
  .events__slide {
    padding-left: 15px;
    padding-right: 15px; }
  .events .event-item {
    position: relative;
    height: 100%;
    display: flex;
    flex-direction: column; }
    .events .event-item__image {
      width: 100%;
      aspect-ratio: 369/241;
      margin-bottom: 15px;
      overflow: hidden;
      border-radius: 0 60px 60px 60px;
      background: #eee;
      flex-shrink: 0; }
      .events .event-item__image img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        background: #fff; }
    .events .event-item__content {
      border-radius: 60px 60px 60px 0;
      padding: 40px 60px 40px 50px;
      color: #fff;
      flex-grow: 1;
      background: var(--accent-base-color);
      display: flex;
      flex-direction: column; }
    .events .event-item__title {
      margin-bottom: 15px; }
    .events .event-item__text {
      margin-bottom: 40px; }
    .events .event-item__blockquote {
      margin-top: auto;
      font-weight: 700;
      border-left: 1px solid #fff;
      padding-left: 15px; }
    .events .event-item__btn {
      position: relative;
      bottom: 0;
      left: -10px;
      width: calc(100% + 20px); }
      .events .event-item__btn .btn {
        min-width: 100%;
        height: 85px;
        border: 10px solid #fff;
        justify-content: space-between;
        padding-left: 30px; }
  @media (max-width: 1199px) {
    .events {
      margin-top: 60px; }
      .events__slider {
        margin-right: -60px; }
        .events__slider .slick-arrow {
          margin-top: -30px; }
        .events__slider .slick-next {
          right: 20px; }
      .events .event-item {
        max-width: 365px; } }
  @media (max-width: 767px) {
    .events__slider .slick-arrow {
      margin-top: -60vw; }
    .events .event-item {
      max-width: calc(100vw - 60px); } }

.program {
  position: relative;
  padding-top: 30px;
  padding-bottom: 0;
  min-height: 415px; }
  .program::before {
    content: '';
    display: block;
    width: 34vw;
    aspect-ratio: 655/555;
    background: url(../img/program-bg.png) no-repeat 0 0/cover;
    position: absolute;
    top: -4.2vw;
    right: 0;
    pointer-events: none; }
  .program__content {
    position: relative; }
  .program__decor {
    position: absolute;
    top: 20px;
    right: 114px; }
  .program__btns {
    margin-top: 60px;
    display: flex;
    gap: 12px; }
    .program__btns .btn {
      justify-content: space-between;
      text-align: left;
      padding-left: 45px;
      padding-right: 40px;
      height: 90px;
      font-size: 23px;
      line-height: 30px;
      gap: 50px; }
      .program__btns .btn:first-child svg {
        transform: rotate(90deg); }
  @media (max-width: 1199px) {
    .program {
      padding-top: 60px; }
      .program::before {
        top: 25vw;
        width: 100vw; }
      .program__decor {
        top: -45px;
        right: -110px; }
      .program__btns {
        flex-direction: column;
        padding-left: 100px; } }
  @media (max-width: 767px) {
    .program::before {
      content: '';
      top: -15vw;
      width: 140vw;
      left: -15vw;
      opacity: .5; }
    .program__decor {
      width: 100px;
      right: -40px; }
    .program__btns {
      padding-left: 0; }
      .program__btns .btn {
        font-size: 17px;
        line-height: 23px;
        padding-left: 20px;
        padding-right: 20px;
        min-height: 60px;
        height: auto;
        gap: 5px; }
        .program__btns .btn svg {
          flex-shrink: 0;
          width: 20px;
          height: 20px; } }

.events-filter {
  padding-top: 90px;
  padding-bottom: 80px;
  /* min-height: 1070px; */
  position: relative;
  z-index: 1; }
  .events-filter__subtitle {
    margin-top: 30px;
    margin-bottom: 32px;
    font-size: 23px;
    line-height: 30px;
    opacity: .7;
    max-width: 950px; }
  .events-filter__content {
    position: relative; }
  .events-filter__decor {
    position: absolute;
    top: -5px;
    right: 55px;
    width: 112px; }
  .events-filter__items {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 11px 8px;
    padding-right: 74px; }
  .events-filter__item {
    display: flex;
    align-items: center;
    gap: 5px;
    text-align: left;
    height: 80px;
    padding: 12px 16px;
    border-radius: 60px;
    border: 2px solid #000;
    font-size: 23px;
    line-height: 30px;
    transition: .5s; }
    .events-filter__item:hover {
      color: #fff;
      background: #0075bf;
      border: 2px solid #0075bf; }
    .events-filter__item img {
      width: 24px; }
    .events-filter__item.online-lessons {
      background: #0075bf;
      border: 2px solid #0075bf;
      color: #fff; }
      .events-filter__item.online-lessons img {
        width: 30px; }
      .events-filter__item.online-lessons:hover {
        color: #fff;
        background: #014874;
        border: 2px solid #014874; }
  @media (max-width: 1199px) {
    .events-filter {
      padding-top: 210px; }
      .events-filter__decor {
        top: -20px;
        right: -60px; }
      .events-filter__items {
        grid-template-columns: repeat(2, 1fr);
        padding-right: 0;
        justify-content: center;
        display: flex;
        flex-wrap: wrap; }
      .events-filter__item {
        width: calc(50% - 8px); } }
  @media (max-width: 767px) {
    .events-filter {
      padding-top: 50px;
      min-height: 0; }
      .events-filter__items {
        display: grid;
        max-height: 418px;
        padding-right: 20px;
        overflow-y: scroll;
        overflow-x: hidden;
        grid-template-columns: repeat(1, 1fr); }
      .events-filter__item {
        width: 100%; }
        .events-filter__item.online-lessons {
          order: -1; } }

.schema {
  position: relative;
  padding-top: 55px;
  min-height: 720px; }
  .schema::before {
    content: '';
    display: block;
    width: 17.2vw;
    aspect-ratio: 332/1518;
    background: url(../img/schema-bg.png) no-repeat 0 0/cover;
    position: absolute;
    top: -25.1vw;
    left: 0;
    pointer-events: none; }
  .schema .slice__title {
    position: relative; }
  .schema__content {
    position: relative;
    padding-top: 50px; }
  .schema__decor {
    position: absolute;
    top: -80px;
    right: 20px;
    width: 90px; }
  .schema__items {
    display: flex;
    align-items: flex-start;
    gap: 30px; }
  .schema__item {
    position: relative;
    margin-bottom: 30px; }
  .schema__item-image {
    overflow: hidden;
    width: 100%;
    aspect-ratio: 474/247;
    margin-bottom: 30px;
    display: block;
    background: #fff;
    border-radius: 5%; }
  .schema__item-title {
    font-weight: 900;
    text-align: left;
    font-size: 23px;
    line-height: 30px; }
    .schema__item-title a {
      color: inherit; }
      .schema__item-title a:hover {
        color: var(--accent-base-color-active); }
  @media (max-width: 1199px) {
    .schema {
      padding-top: 15px; }
      .schema::before {
        content: none; }
      .schema__decor {
        top: -140px;
        right: -15px; }
      .schema__items {
        flex-direction: column;
        gap: 45px; }
      .schema__content {
        padding-top: 45px; }
      .schema__item-title {
        max-width: 320px; } }
  @media (max-width: 767px) {
    .schema::before {
      width: 35vw;
      background-position: 0 0; }
    .schema__decor {
      top: -90px; }
    .schema__item-title {
      font-size: 19px;
      line-height: 25px; } }

.video-block {
  padding-top: 125px;
  padding-bottom: 85px;
  margin-top: -32px; }
  .video-block__subtitle {
    margin-top: 30px;
    margin-bottom: 30px; }
  .video-block__frame {
    width: 100%;
    aspect-ratio: 1920/1080;
    overflow: hidden;
    border-radius: 20px;
    background: #eee;
    position: relative; }
  @media (max-width: 1199px) {
    .video-block {
      margin-top: 40px;
      margin-bottom: 20px;
      padding-top: 0;
      padding-bottom: 90px; } }

.partners {
  position: relative; }
  .partners .slice__title {
    margin-bottom: 40px; }
  .partners__content {
    position: relative; }
  .partners__decor {
    position: absolute;
    top: 15px;
    right: 15px;
    width: 100px; }
  .partners__slider {
    width: 100%;
    margin-top: 90px;
    margin-left: auto;
    margin-right: auto;
    max-width: 880px;
    display: flex;
    align-items: center;
    justify-content: space-between; }
  .partners__image {
    width: 300px;
    height: 200px;
    padding: 25px;
    display: flex;
    align-items: center;
    justify-content: center; }
  @media (max-width: 1199px) {
    .partners::before {
      width: 52vw; }
    .partners .slice__title {
      margin-bottom: 20px; }
    .partners__decor {
      display: none; }
    .partners__slider {
      margin-top: 0; } }
  @media (max-width: 991px) {
    .partners__slider {
      flex-wrap: wrap; } }

.contacts {
  margin-top: 95px;
  padding-top: 0;
  padding-bottom: 80px;
  position: relative; }
  .contacts::before {
    content: '';
    display: block;
    width: 35.7vw;
    aspect-ratio: 682/672;
    background: url(../img/contacts-bg.png) no-repeat 0 0/cover;
    position: absolute;
    top: -13.5vw;
    right: 0;
    pointer-events: none;
    opacity: .3;
    filter: brightness(2); }
  .contacts .slice__title {
    position: relative;
    top: -20px;
    margin-bottom: 46px; }
  .contacts__text {
    display: flex;
    flex-direction: column;
    color: rgba(0, 0, 0, 0.7);
    gap: 34px;
    min-height: 290px;
    margin-bottom: 46px;
    font-size: 21px; }
    .contacts__text p {
      margin-bottom: 8px; }
    .contacts__text div:has(.contacts__link-outside) {
      margin-top: 60px; }
  .contacts__link-outside {
    text-transform: uppercase;
    font-weight: 700;
    font-size: 26px;
    line-height: 30px;
    padding-left: 10px; }
  .contacts__way {
    display: flex;
    align-items: center;
    gap: 10px; }
    .contacts__way + .contacts__way {
      margin-top: 12px; }
  .contacts__way-icon {
    flex-shrink: 0; }
  .contacts__way-text {
    flex-grow: 1; }
    .contacts__way-text strong {
      display: block;
      margin-bottom: 5px; }
    .contacts__way-text td {
      padding: 0 10px 0 0; }
  .contacts__map {
    width: 100%;
    background: #eee;
    height: 550px;
    border-radius: 60px 60px 60px 0;
    overflow: hidden; }
  .contacts .h3, .contacts strong {
    color: #000; }
  @media (max-width: 1199px) {
    .contacts {
      margin-top: 145px;
      padding-bottom: 20px; }
      .contacts__decor {
        display: none; }
      .contacts__text {
        gap: 14px;
        margin-bottom: 0; }
        .contacts__text .h3 {
          max-width: 550px; }
        .contacts__text div:has(.contacts__link-outside) {
          margin-top: 20px; }
      .contacts__link-outside {
        font-size: 22px; }
      .contacts__map {
        margin-bottom: 60px; } }
  @media (max-width: 767px) {
    .contacts__text {
      margin-bottom: 20px; }
      .contacts__text .h3 {
        font-size: 23px;
        line-height: 28px; } }

.modal-dialog {
  margin-top: 150px; }
  @media (max-width: 1199px) {
    .modal-dialog {
      margin-top: 90px; } }
  @media (max-width: 767px) {
    .modal-dialog {
      margin-left: 0;
      margin-right: 0; } }

.modal-body {
  position: relative;
  padding-top: 0; }
  .modal-body::before {
    content: '';
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 57px;
    margin-top: -57px;
    background: url("../img/modal-top.png") no-repeat 0 0;
    pointer-events: none; }
  @media (max-width: 1199px) {
    .modal-body {
      background-size: 17% auto; } }
  @media (max-width: 767px) {
    .modal-body {
      background-image: none; }
      .modal-body::before {
        background: url("../img/modal-top-767.png") no-repeat 0 0/100% 100%; } }

.modal {
  --bs-modal-border-radius: 0 80px 80px 80px;
  --bs-modal-padding: 80px;
  --bs-modal-width: 1120px;
  color: #000; }
  .modal .btn-close {
    position: absolute;
    top: -72px;
    right: -36px;
    z-index: 1;
    width: 72px;
    height: 72px;
    background: #009879;
    border-radius: 50%;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 1; }
    .modal .btn-close:hover {
      background-color: var(--accent-base-color-active); }
  .modal .modal-title {
    font-size: 55px;
    line-height: 72px;
    font-weight: 900;
    margin-bottom: 30px; }
  @media (max-width: 1199px) {
    .modal {
      --bs-modal-padding: 60px; }
      .modal .btn-close {
        top: -82px;
        right: 10px;
        margin: 0; } }
  @media (max-width: 767px) {
    .modal {
      --bs-modal-padding: 30px;
      --bs-modal-border-radius: 0 0 80px 80px; }
      .modal .btn-close {
        right: 5px; }
      .modal .modal-title {
        font-size: 27px;
        line-height: 32px;
        text-transform: uppercase; } }

.modal-main-text {
  font-size: 23px;
  line-height: 30px;
  min-height: 260px;
  color: rgba(0, 0, 0, 0.7); }
  @media (max-width: 767px) {
    .modal-main-text {
      font-size: 19px;
      line-height: 23px; } }

.accordion {
  --bs-body-color: #000;
  color: #000; }
  .accordion__head {
    margin-top: 30px;
    margin-bottom: 30px;
    font-weight: 700; }

.accordion-item {
  border-radius: 0 !important;
  border-left: none;
  border-right: none; }
  .accordion-item h3 {
    font-weight: 700;
    font-size: 32px;
    line-height: 40px;
    margin-bottom: 20px; }
  @media (max-width: 1199px) {
    .accordion-item h3 {
      font-size: 27px;
      line-height: 35px; } }
  .accordion-item .accordion-button {
    display: flex;
    align-items: flex-start;
    gap: 15px;
    padding: 15px 0;
    background: none !important;
    box-shadow: none !important;
    font-size: 23px;
    line-height: 30px; }
    .accordion-item .accordion-button .time {
      width: 90px;
      flex-shrink: 0; }
    .accordion-item .accordion-button .title {
      width: auto;
      flex-grow: 1; }
    .accordion-item .accordion-button .level {
      width: 260px;
      flex-shrink: 0; }
    .accordion-item .accordion-button .duration {
      width: 60px;
      flex-shrink: 0;
      order: 5; }
    .accordion-item .accordion-button .teacher {
      width: 145px;
      flex-shrink: 0; }
    .accordion-item .accordion-button::after {
      order: 6; }
    .accordion-item .accordion-button__group {
      display: contents; }
    @media (max-width: 1199px) {
      .accordion-item .accordion-button__group {
        display: block;
        flex-grow: 1; }
        .accordion-item .accordion-button__group > div {
          width: 100%; } }
    @media (max-width: 767px) {
      .accordion-item .accordion-button {
        font-size: 19px;
        line-height: 23px;
        flex-direction: column; }
        .accordion-item .accordion-button > div {
          width: 100% !important; }
        .accordion-item .accordion-button .time {
          padding-right: 30px; }
        .accordion-item .accordion-button::after {
          position: absolute;
          top: 15px;
          right: 20px; } }
  .accordion-item .accordion-body {
    padding: 30px 0;
    font-size: 23px;
    line-height: 30px; }
    @media (max-width: 1199px) {
      .accordion-item .accordion-body .col:first-child {
        margin-bottom: 20px; } }
    @media (max-width: 1199px) {
      .accordion-item .accordion-body {
        font-size: 19px;
        line-height: 23px; } }

.slots-list {
  display: flex;
  flex-wrap: wrap;
  gap: 15px 5px; }
  .slots-list button {
    font-weight: 700;
    padding: 10px 20px;
    border-radius: 30px;
    background: var(--accent-btn);
    color: #000;
    font-size: 19px;
    line-height: 25px; }
  @media (max-width: 767px) {
    .slots-list button {
      width: 100%; } }

.collapse-text {
  margin-bottom: 15px; }

.collapse-btn-wrap {
  display: flex;
  justify-content: flex-end; }
  .collapse-btn-wrap button {
    display: flex;
    align-items: center;
    gap: 10px; }
    .collapse-btn-wrap button span {
      font-weight: 700;
      border-bottom: 1px dashed;
      color: #000; }
    .collapse-btn-wrap button .to-hide {
      display: none; }
    .collapse-btn-wrap button:hover span {
      border-bottom-color: transparent; }
    .collapse-btn-wrap button[aria-expanded="true"] .to-hide {
      display: inline; }
    .collapse-btn-wrap button[aria-expanded="true"] .to-show {
      display: none; }
    .collapse-btn-wrap button[aria-expanded="true"] svg {
      transform: rotate(180deg); }

/*# sourceMappingURL=style.css.map */
