:root {
    --primary: #FF6600;
    --secondary: #FF9D00;
}
*{
    font-family: Montserrat, Arial, Sans-serif, serif;
}
body{
    font-family: Montserrat, Arial, Sans-serif, serif;
    color: #000;
    line-height: 1.3;
    margin: 0;
    padding: 0;
    font-size: 16px;
    min-height: 100vh;
    background-color: #fff;
    overflow-x: hidden;
}
a{
    color: var(--primary);
}
.no-scroll{
    overflow: hidden;
}
input,
textarea,
button{
    outline: none;
    border: none;
    background: none;
}
figure{
    margin: 0;
    padding: 0;
    line-height: 0;
}
.pb0{
    padding-bottom: 0!important;
}
h2,
h3,
h4,
h5{
    font-weight: 500;
}
strong{
    color: #555;
}
#app {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    min-height: 100vh;
}
.content {
    -webkit-box-flex: 1;
    -ms-flex-positive: 1;
    flex-grow: 1;
    padding-top: clamp(48px, 6vw, 80px);
}
.page-body{
    display: flow-root;
}
.swiper{
    position: relative;
}
footer {
    flex: 0 0 auto;
}
.text-center{
    text-align: center;
}
.italic{
    font-style: italic;
}
.title-h3{
    margin: 20px 0 10px;
    font-size: 18px;
    font-weight: 500;
}
.no-shadow{
    box-shadow: none!important;
}
.no-bg{
    background: none !important;
}
.no-border{
    border: none!important;
}
.fancybox__backdrop {
    background: rgba(24, 24, 27, 0.88) !important;
}
.form-input{
    background: none;
    outline: none;
    border: none;
    display: block;
    width: 100%;
}
.btn{
    text-decoration: none;
}
.btn-black {
    position: relative;
    background: #000;
    color: #fff;
    z-index: 1;
}
/* псевдоэлемент — фон с градиентом, изначально скрыт (opacity) */
.btn-black::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(to right, #FF6600, #FF9D00);
    opacity: 0;                       /* start hidden */
    transition: opacity 0.2s ease-in-out; /* плавность появления */
    z-index: -1;
    pointer-events: none;
    border-radius: inherit;           /* строго для скругления */
}

/* содержимое кнопки поверх псевдоэлемента */
.btn-black > * {
    position: relative;
    z-index: 1;
}

/* при наведении — показываем градиент (opacity->1) и цвет текста остаётся/становится белым */
.btn-black:hover::before {
    opacity: 1;
}
.btn-black:hover {
    color: #fff; /* на случай, если хотел бы менять цвет — тут он белый */
}
/*
.btn-outline {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 10px 45px;
    gap: 0.3em;
    height: 58px;
    font-size: 16px;
    font-weight: 600;
    border-radius: 29px;
    cursor: pointer;
    overflow: hidden;
    transition: color 0.2s ease-in-out;
    text-decoration: none;
    text-transform: uppercase;
}

 */

/* Псевдоэлемент для градиентной рамки
.btn-outline::before {
    content: '';
    position: absolute;
    inset: 0;
    padding: 2px;
    border-radius: inherit;
    background: linear-gradient(to right, #FF6600, #FF9D00);
    -webkit-mask:
        linear-gradient(#fff 0 0) content-box,
        linear-gradient(#fff 0 0);
    -webkit-mask-composite: exclude;
    mask-composite: exclude;
    pointer-events: none;
    opacity: 1;
    transition: background 0.2s ease-in-out;
}
*/

/* Псевдоэлемент для градиентного фона при наведении
.btn-outline::after {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: inherit;
    background: linear-gradient(to right, #FF6600, #FF9D00);
    opacity: 0;
    transition: opacity 0.2s ease-in-out;
    z-index: 0;
}
*/
/* Внешняя обёртка — рисует ровную градиентную рамку толщиной 2px */
.btn-outline {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 10px 45px;
    gap: 0.3em;
    height: 58px;
    font-size: 16px;
    font-weight: 600;
    border-radius: 29px;
    cursor: pointer;
    overflow: hidden;
    transition: color 0.2s ease-in-out;
    text-decoration: none;
    text-transform: uppercase;
}
.btn-outline::before {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: inherit;
    background: linear-gradient(to right, #FF6600, #FF9D00);

    /* вместо padding: 2px → чёткое вырезание внутренней области маской */
    -webkit-mask:
        linear-gradient(#fff 0 0) content-box,
        linear-gradient(#fff 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
    opacity: 1;
    padding: 1px; /* теперь работает идеально, без тонкого низа */
    pointer-events: none;
    z-index: 0;
}
.btn-outline::after {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: inherit;
    background: linear-gradient(to right, #FF6600, #FF9D00);
    opacity: 0;
    transition: opacity 0.2s ease-in-out;
    z-index: 0;
}
.btn-outline * {
    position: relative;
    z-index: 1;
}


/* Курсив внутри */
.btn-text .italic {
    font-style: italic;
    font-weight: 600;
}

/* Hover — заливка градиентом и белый текст (по желанию) */
.btn-outline:hover .btn-inner {
    background: linear-gradient(to right, #FF6600, #FF9D00);
    transition: background .18s ease;
}
.btn-outline:hover .btn-text {
    color: #ffffff;           /* делаем текст белым на hover */
    -webkit-background-clip: initial;
    background-clip: initial;
}

.btn-outline span {
    position: relative;
    z-index: 1;
    transition: color 0.2s ease-in-out;
}

.btn-outline:hover::after {
    opacity: 1; /* плавное появление фона */
}

.btn-outline:hover span {
    color: #fff; /* текст белый */
}
.btn-middle{
    height: 66px;
    display: inline-flex;
    padding: 0 30px;
    align-items: center;
    line-height: 0;
    text-transform: uppercase;
    font-size: 16px;
    font-weight: 600;
}
.btn-small{
    height: 46px;
}
.btn-round{
    border-radius: 33px;
}
.btn-white {
    background: #fff;
    color: #000;
}
.btn-orange {
    color: transparent;
    background-image: linear-gradient( to right, #FF6600, #FF9D00 );
    background-size: 100% 100%;
    background-position: left;
    background-repeat: no-repeat;
    -webkit-background-clip: text;
    background-clip: text;
    transition: color 0.2s ease-in-out;
}
.btn-orange:hover {
    color: #fff!important;
}
.btn-orange::after {
    z-index: -1;
}
.btn-full-orange{
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    border-radius: 32px;
    padding: 0 40px;
    text-decoration: none;
    line-height: 0;
    color: #fff;
    overflow: hidden;
    z-index: 1;
}

.btn-full-orange::before {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: inherit;
    background: linear-gradient(to right, #FF6600, #FF9D00);
    z-index: -2;
    transition: opacity 0.4s ease-in-out;
    opacity: 1;
}

.btn-full-orange::after {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: inherit;
    background: linear-gradient(to left, #FF6600, #FF9D00);
    z-index: -1;
    opacity: 0;
    transition: opacity 0.4s ease-in-out;
}

.btn-full-orange:hover::before {
    opacity: 0;
}
.btn-full-orange:hover::after {
    opacity: 1;
}
.btn-extra-small{
    height: 28px;
    font-size: 10px;
    font-weight: 600;
    border-radius: 14px;
    text-transform: uppercase;
}
.with-arrow .arrow {
    position: relative;
    display: inline-block;
    width: 20px;
    height: 1px;
    background-color: #fff;
    margin-left: 12px;
    transition: width 0.2s ease-in-out;
}
.width-100 {
    width: 100%;
}
.with-arrow .arrow::after {
    content: '';
    position: absolute;
    top: 50%;
    right: 0;
    width: 12px;
    height: 12px;
    border-top: 1px solid #fff;
    border-right: 1px solid #fff;
    transform: translateY(-50%) rotate(45deg);
}

.arrow-static:hover .arrow {
    width: 20px;
}

.header{
    background-color: #fff;
    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.06);
    padding: 10px 0;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 10;
}
.header .logo{
    display: block;
}
.header .logo img{
    max-width: 300px;
    height: auto;
    width: clamp(130px, 16vw, 300px);
}
.main-menu ul{
    margin: 0;
    padding: 0;
    list-style: none;
    text-align: center;
}
.main-menu ul li{
    display: inline-flex;
    padding: 0 15px;
}
.main-menu ul li a {
    display: flex;
    align-items: center;
    padding: 10px 0;
    font-weight: 500;
    text-decoration: none;
    text-transform: uppercase;
    color: #000;  /* по умолчанию — черный */
    /*background: linear-gradient(to right, #FF6600, #FF9D00);*/
    /*background-size: 100% 100%;*/
    /*background-position: 0 0;*/
    /*background-clip: text;*/
    /*-webkit-background-clip: text;*/
    /*-webkit-text-fill-color: #000; !* важно — текст черный *!*/
    /*transition: -webkit-text-fill-color 0.15s ease-in-out;*/
    background-image: linear-gradient(
        to right,    /* Направление: слева направо */
        #FF6600,     /* Начальный цвет */
        #FF9D00      /* Конечный цвет */
    );

    /* Шаг 3: "Прячем" фон, устанавливая его ширину в 0%
    */
    background-size: 0% 100%;
    background-position: left; /* Расти будет слева */
    background-repeat: no-repeat;

    /* Шаг 4: Говорим браузеру "обрезать" фон по форме букв
    */
    -webkit-background-clip: text;
    background-clip: text;

    /* Шаг 5: САМОЕ ВАЖНОЕ. Задаем плавный переход
      для 'background-size' (чтобы он плавно рос)
      и для 'color' (чтобы он плавно исчезал)
    */
    transition: background-size 0.3s ease-in-out, color 0.3s ease-in-out;
}

.main-menu ul li a:hover,
.main-menu ul li.active a {
    color: transparent;
    background-size: 100% 100%;
}
.app-links-box-dropdown{
    position: relative;
    transition: .2s ease-in-out;
}
.app-links-box-dropdown button{
    position: relative;
    z-index: 7;
}
.app-links-box-dropdown .app-buttons-white{
    flex-direction: column;
    padding: 20px 15px 15px;
}
.app-links-box-dropdown .store-btn{
    width: 100%;
    border: 1px solid #f0f0f0;
    transition: border-color .6s ease;
    padding: clamp(7px, 1vw, 10px) clamp(15px, 1vw, 30px)!important;
}
.app-links-box-dropdown .store-btn:hover{
    border-color: transparent;
}
.app-links-box-dropdown .dropdown{
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    overflow: hidden;
    padding-top: clamp(40px, 4vw, 58px);
    opacity: 0;
    height: 0;
    z-index: 5;
    transition: all 0.2s ease-in-out;
    background: #fff;
    border-radius: 29px;
    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.14);
}
.app-links-box-dropdown:hover .dropdown{
    opacity: 1;
    height: auto;
}
.header-app-links-button{
    font-size: clamp(12px, 1vw, 16px);
    padding: 0 clamp(20px, 2vw, 45px);
    height: clamp(40px, 4vw, 58px);
}
.top-whatsapp-link a{
    display: flex;
    height: clamp(40px, 4vw, 58px);
    width: clamp(40px, 4vw, 58px);
    justify-content: center;
    align-items: center;
    position: relative;
}
.top-whatsapp-link a::before{
    position: absolute;
    content: "";
    border-radius: 50%;
    top: 0;
    left: 0;
    height: 100%;
    width: 100%;
    background-color: #0FBD05;
    z-index: -2;
}
.top-whatsapp-link a::after{
    position: absolute;
    content: "";
    border-radius: 50%;
    top: 2px;
    left: 2px;
    height: calc(100% - 4px);
    width: calc(100% - 4px);
    background-color: #fff;
    transition: background-color 0.3s ease-in-out;
    z-index: -2;
}
.top-whatsapp-link a:hover::after{
    background-color: #0FBD05;
}
.top-whatsapp-link a svg{
    height: 53%;
    width: 53%;
}
.top-whatsapp-link a svg path{
    fill: #0FBD05;
    transition: fill 0.3s ease-in-out;
}
.top-whatsapp-link a:hover svg path{
    fill: #fff;
}
.navbar-toggle{
    display: block;
    line-height: 0;
    cursor: pointer;
}
.h3-title {
    color: #555;
    font-size: 35px;
    margin: 20px 0;
}
.breadcrumb {
    padding: 20px 0 10px;
    list-style: none;
    margin: 0;
}
.breadcrumb li {
    display: inline-block;
    font-size: 13px;
    font-family: Arial, Sans-serif, serif;
}
.breadcrumb li a {
    color: #909da8;
    text-decoration: none;
}
.breadcrumb .divider {
    color: #999;
}
.main-banner {
    background: #000;
    color: #fff;
    padding: 50px 0;
    overflow: hidden;
    position: relative;
}
.main-banner::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(to right, #FF6600, #FF9D00);
    opacity: 0;
    transition: opacity 0.2s ease-in-out;
    z-index: 0;
}

.main-banner:hover::before {
    opacity: 1;
}

.main-banner > * {
    position: relative;
    z-index: 1;
}
.main-banner .master-bu-box {
    top: 0;
    right: 0;
    height: 100%;
    display: flex;
    align-items: self-end;
    justify-content: end;
    z-index: 0;
}
.main-banner .master-bu-box .master-bu-inner {
    position: relative;
    width: 100%;
    height: calc(130% - 40px);
    margin-bottom: -164px;
    overflow: visible; /* чтобы средний слой мог выходить за границы */
}

/* Нижний слой - круг */
.main-banner .master-bu-box .bg-circle {
    position: absolute;
    top: 50%;
    left: 50%;
    width: clamp(500px, 60vw, 727px);
    aspect-ratio: 1/1;
    border-radius: 50%;
    transform: translate(-50%, -50%);
    overflow: hidden;
    z-index: 0;
}

/* Нижний градиент */
.main-banner .master-bu-box .bg-circle::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(to right, #393939, #000);
    transition: opacity 0.2s ease-in-out;
    z-index: 1;
}

/* Верхний градиент (который появится при :hover) */
.main-banner .master-bu-box .bg-circle::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(to right, #ffdbb3, #ffcd85);
    opacity: 0;
    transition: opacity 0.2s ease-in-out;
    z-index: 2;
}

/* Средний слой - узор */
.main-banner .master-bu-box .pattern-layer {
    position: absolute;
    top: 200px;
    left: 55%;
    width: 130%;
    max-width: 1100px;
    height: 160%;
    transform: translate(-50%, -50%);
    overflow: hidden;
    z-index: 1;
}

.main-banner .master-bu-box .pattern-layer img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: contain;
    /*transform: rotate(-15deg);*/
    transition: opacity 0.4s ease-in-out;
}

.main-banner .master-bu-box .pattern-layer .pattern-hover {
    opacity: 0;
}

/* Верхний слой - основная картинка */
.main-banner .master-bu-box .master-bu-inner img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: contain;
    transition: opacity 0.2s ease-in-out;
    z-index: 2; /* поверх узора и круга */
}

.main-banner .master-bu-box .master-bu-inner .img-hover {
    opacity: 0;
}

/* Hover эффекты */
/* Верхний слой - картинка */
.main-banner:hover .master-bu-box .master-bu-inner .img-hover {
    opacity: 1;
}
.main-banner:hover .master-bu-box .master-bu-inner .img-default {
    /*opacity: 0;*/
}

/* Средний слой - узор */
.main-banner:hover .master-bu-box .pattern-layer .pattern-hover {
    opacity: 1;
}
.main-banner:hover .master-bu-box .pattern-layer .pattern-default {
    /*opacity: 0;*/
}

/* Нижний слой - круг */
.main-banner:hover .master-bu-box .bg-circle::after {
    opacity: 1;
}


.main-banner .main-title{
    font-weight: 800;
    text-transform: uppercase;
    margin: 0;
    line-height: 1;
}
.main-banner .sub-title {
    font-weight: 800;
    text-transform: uppercase;
    font-style: italic;
    color: transparent;
    margin: 10px 0 0 0;
    line-height: 1;
    -webkit-text-stroke-width: 1px;
    -webkit-text-stroke-color: white;
    text-stroke-width: 1px;
    text-stroke-color: white;
}
.main-banner .text {
    font-size: clamp(16px, 2vw, 26px);
    font-weight: 500;
}
.main-banner .quiz-btn {
    height: clamp(57px, 5vw,70px);
    font-size: clamp(18px, 2vw,22px);
    font-weight: 700;
    margin-top: 35px;
    border-radius: 35px;
    padding-left: clamp(40px, 6vw, 70px);
    padding-right: clamp(40px, 6vw, 70px);
    transition: padding 0.2s ease-in-out;
}

.main-banner .quiz-btn .quiz-btn-border {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 100%;
    border: 1px solid var(--primary);
    border-radius: inherit;
    transition: border-color 0.2s ease-in-out;
}

.main-banner .quiz-btn:hover .quiz-btn-border {
    border-color: #fff; /* просто меняем цвет */
    z-index: 2;
}
.footer-app-links .h3-title {
    color: #000;
    font-size: 16px;
    font-weight: 500;
    text-transform: uppercase;
    text-align: center;
    margin: 10px 0 15px;
}
.app-button-dark .store-btn {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #000;
    color: #fff;
    gap: 8px;
    border-radius: 14px;
    overflow: hidden;
    transition: color 0.3s ease;
}

/* SVG наследует цвет, всё ок */
.app-button-dark .store-btn svg {
    display: block;
    height: 53px;
    width: auto;
}

/* Псевдоэлемент — сам градиент */
.app-button-dark .store-btn::before {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: 14px;
    background: linear-gradient(90deg, #666666 0%, #000000 100%);
    opacity: 0;
    transition: opacity 0.6s ease;
    z-index: 0;
}

/* Контент поверх градиента */
.app-button-dark .store-btn > * {
    position: relative;
    z-index: 1;
}

/* При наведении градиент проявляется */
.app-button-dark .store-btn:hover::before {
    opacity: .4;
}


.app-buttons-white {
    display: flex;
    gap: 12px;
    justify-content: center;
}
.app-buttons-white .store-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #fff;
    color: #000; /* <-- цвет SVG берётся отсюда */
    gap: 8px;
    border-radius: 14px;
    padding: 10px 30px;
    transition: background-color 0.6s ease, filter 0.2s ease;
}

.app-buttons-white .store-btn:hover {
    background: #000;
    color: #fff;
}

.app-buttons-white .store-btn svg {
    display: block;
    width: auto;
    transition: color 0.6s ease;
}
.footer-app-links .app-buttons-white .store-btn{
    padding: 10px clamp(20px, 1vw, 30px);
}
.icon-whatsapp {
    width: 58px;
    height: 58px;
    display: inline-block;
    cursor: pointer;
}
.icon-telegram {
    background: #2AABEE;
    background: linear-gradient(180deg,rgba(42, 171, 238, 1) 0%, rgba(34, 158, 217, 1) 100%);
    border-radius: 50%;
}
.icon-circle {
    fill: #0fbd05;
    stroke: #0fbd05;
    stroke-width: 1.5;
    transition: fill 0.25s ease, stroke 0.25s ease;
}

.icon-path {
    fill: #ffffff;
    transition: fill 0.25s ease;
}

.icon-whatsapp:hover .icon-circle {
    fill: transparent;
    stroke: #0fbd05;
}

.icon-whatsapp:hover .icon-path {
    fill: #0fbd05;
}
.main-video{
    padding: 20px 0;
    position: relative; /* необходимо, чтобы фон-слой .bg-lines был внутри этого блока */
    background: #E6EEF1;
}
/* Контент поверх фона */
.main-video .mv-content {
    position: relative;
    z-index: 2;        /* выше, чем фон */
    color: #111;
}
.main-video .app-button-dark .store-btn {
    max-width: 305px;
    height: clamp(70px, 6vw, 85px);
}
.main-video .swiper-video-box {
    border-radius: 50%;
    overflow: hidden;
    position: relative;
}
.swiper-video-wrapper {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 15px; /* расстояние между кругом и пагинацией */
}

/* Внутренний swiper */
.swiper-video {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    overflow: hidden;
}

/* Пагинация под кругом */
.swiper-pagination {
    position: static !important; /* отменяем абсолют */
    text-align: center;
}


/* Слайды тоже заполняют круг */
.swiper-video .swiper-slide {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
}
.round-plyr-container {
    position: relative;
    width: 410px;
    aspect-ratio: 1 / 1;
    border-radius: 50%;
    overflow: hidden;
    margin: 50px auto;
}
.round-plyr-container .plyr {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    overflow: hidden;
}
.round-plyr-container .plyr video,
.round-plyr-container .plyr__video-wrapper video {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    border-radius: 50%;
    display: block;
}
.round-plyr-container .plyr__central-btn svg { width: 36px; height: 36px; fill: white; }
.round-plyr-container .controls-bottom {
    position: absolute;
    bottom: 20px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    gap: 20px;
    align-items: center;
    justify-content: center;
    z-index: 12;
    transition: opacity 0.25s ease, transform 0.25s ease;
    pointer-events: auto;
}
.round-plyr-container .ctrl-btn {
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    padding: 0;
    transition: transform 0.12s ease, background 0.12s ease;
    -webkit-tap-highlight-color: transparent;
}
.round-plyr-container .ctrl-btn svg {
    fill: white;
    display: block;
}
.round-plyr-container .ctrl-btn:hover { transform: scale(1.08); background: rgba(0,0,0,0.6); }
.round-plyr-container .ctrl-btn:active { transform: scale(0.98); }
.round-plyr-container .pause-btn,
.round-plyr-container .unmute-btn {
    display: none;
}
.round-plyr-container .video-progress {
    position: absolute;
    top: 0;
    left: 0;
    transform: rotate(-90deg);
    pointer-events: none;
    z-index: 5;
}
.round-plyr-container .video-progress circle {
    fill: none;
    stroke-width: 6;
}
.round-plyr-container .progress-bg {
    stroke: rgba(255, 255, 255, 0.15);
}
.round-plyr-container .progress-ring {
    stroke: #ff6600;
    stroke-linecap: round;
    transition: stroke-dashoffset 0.05s linear; /* вместо 0.15s */
}
.main-video .swiper-pagination{
    gap: 25px;
    display: flex;
}
.main-video .swiper-pagination-bullet{
    width: 12px;
    height: 12px;
}
.main-video .swiper-pagination-bullet-active{
    background: #ff6600;
}
/* --- 2. Слой с текстом (ВСЯ ЛОГИКА ТУТ) --- */
.scrolling-text-layer {
    /* Позиционирование оверлея */
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;

    /* Делим на 4 равные строки */
    display: flex;
    flex-direction: column;

    /* --- ГЛОБАЛЬНЫЕ ПАРАМЕТРЫ АНИМАЦИИ --- */
    --font-size: 76px;
    --duration-mode-1: 70s;
    --duration-mode-2: 10s;  /* <--- ЭТО ТЕПЕРЬ ТВОЙ ИНТЕРВАЛ (10 секунд) */

    /* --- НОВАЯ ПЕРЕМЕННАЯ (СКОРОСТЬ/ДИСТАНЦИЯ для Режима 2) --- */
    /* (Чем меньше %, тем медленнее) */
    --reverse-travel-distance: -10%;
}

/* --- 3. Слой с контентом (передний план) --- */
.main-content {
    position: relative;
    z-index: 2;

    /* Демо-стили */
    color: white;
    display: grid;
    place-items: center;
    height: 100%;
    text-align: center;
    background: rgba(0, 0, 0, 0.2);
}

/* --- 4. Стили для строк и текста (без изменений) --- */
.overlay-row {
    flex: 1;
    display: flex;
    align-items: center;
    overflow: hidden;
}

.overlay-text {
    white-space: nowrap;
    font-size: var(--font-size);
    color: white;

    animation-iteration-count: infinite;
    animation-name: var(--animation-name);
    animation-timing-function: var(--animation-timing);
    animation-duration: var(--animation-duration);
    animation-direction: var(--animation-direction);
}
.overlay-text strong{
    color: #fff;
}
.overlay-text span {
    display: inline-block;
    padding: 0 30px;
}
.overlay-text span *{
    margin: 0;
    padding: 0;
}


/* --- 5. Ключевые кадры анимации (без изменений) --- */
@keyframes scroll-left {
    from { transform: translateX(0); }
    to { transform: translateX(-50%); }
}

@keyframes scroll-right {
    from { transform: translateX(-50%); }
    to { transform: translateX(0); }
}

/* НОВЫЕ (для Режима 2) */
/* Они используют новую переменную для контроля дистанции */
@keyframes reverse-left {
    from { transform: translateX(0); }
    to { transform: translateX(var(--reverse-travel-distance)); }
}
@keyframes reverse-right {
    from { transform: translateX(var(--reverse-travel-distance)); }
    to { transform: translateX(0); }
}


/* --- 6. ЛОГИКА ПЕРЕКЛЮЧЕНИЯ (Обновлены селекторы) --- */

/* Селекторы теперь ищут data-атрибуты на .scrolling-text-layer */

/* --- Режим 1 --- */
/* --- 6. ЛОГИКА ПЕРЕКЛЮЧЕНИЯ (УСЛОЖНЕННАЯ) --- */

/* --- Режим 1 (Бесконечный скролл) --- */
.scrolling-text-layer[data-mode="1"] {
    --animation-timing: linear;
    --animation-duration: var(--duration-mode-1);
    --animation-direction: normal;
}

/* Назначаем 'scroll' анимации для Режима 1 */
.scrolling-text-layer[data-mode="1"][data-initial-direction="left"] .overlay-row:nth-child(odd) .overlay-text,
.scrolling-text-layer[data-mode="1"][data-initial-direction="right"] .overlay-row:nth-child(even) .overlay-text {
    --animation-name: scroll-left;
}

.scrolling-text-layer[data-mode="1"][data-initial-direction="left"] .overlay-row:nth-child(even) .overlay-text,
.scrolling-text-layer[data-mode="1"][data-initial-direction="right"] .overlay-row:nth-child(odd) .overlay-text {
    --animation-name: scroll-right;
}


/* --- Режим 2 (Контролируемый реверс) --- */
.scrolling-text-layer[data-mode="2"] {
    --animation-timing: linear;
    --animation-duration: var(--duration-mode-2); /* <--- Это твой ИНТЕРВАЛ (10с) */
    --animation-direction: alternate;
}

/* Назначаем 'reverse' анимации для Режима 2 */
.scrolling-text-layer[data-mode="2"][data-initial-direction="left"] .overlay-row:nth-child(odd) .overlay-text,
.scrolling-text-layer[data-mode="2"][data-initial-direction="right"] .overlay-row:nth-child(even) .overlay-text {
    --animation-name: reverse-left;
}

.scrolling-text-layer[data-mode="2"][data-initial-direction="left"] .overlay-row:nth-child(even) .overlay-text,
.scrolling-text-layer[data-mode="2"][data-initial-direction="right"] .overlay-row:nth-child(odd) .overlay-text {
    --animation-name: reverse-right;
}
.main-events{
    padding: 20px 0;
    transition: all 0.3s ease, color 0.3s ease;
}
.main-events:hover{
    background: #f8f4f1;
}
.main-events .main-title{
    position: relative;
    top: 0;
    right: 0;
    transition: all 0.3s ease, color 0.3s ease;
}
.main-events .main-title .first{
    font-size: 36px;
    font-weight: 800;
    text-transform: uppercase;
    background: linear-gradient(to right, #FF6600, #FF9D00);
    -webkit-background-clip: text; /* Chrome, Safari */
    -webkit-text-fill-color: transparent; /* Chrome, Safari */
    background-clip: text; /* Firefox */
}


/* Сам SVG */
.main-events .main-title .gradient-stroke-text {
    width: 100%;
    height: auto;
}

/* Текст внутри SVG */
.main-events .main-title .gradient-stroke-text text {
    font-family: inherit;
    font-size: 167px;
    font-weight: 700;
    font-style: italic;
    text-transform: uppercase;

    fill: none; /* Без заливки */
    stroke: url(#grad-stroke); /* Градиент на контуре */
    stroke-width: 2px; /* Толщина линии */
    paint-order: stroke; /* Чтобы stroke был сверху */
}
.main-events .event-item{
    display: flex;
    flex-direction: column;
    height: 100%;
    cursor: pointer;
    border-radius: 20px;
    padding: 20px 20px clamp(20px, 2vw, 40px);
    font-size: clamp(14px, 1.2vw, 16px);
    font-weight: 500;
    color: #000;
    text-decoration: none;
    position: relative;
    transition: all 0.3s ease, color 0.3s ease;
}
/* Псевдоэлемент с градиентом — находится позади контента и анимируется по opacity */
.main-events .event-item::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(to right, #FF6600, #FF9D00);
    opacity: 0;                       /* изначально скрыт */
    transition: opacity 0.3s ease-in-out;
    z-index: 0;
    border-radius: inherit;           /* совпадает со скруглением блока */
    pointer-events: none;
    width: calc(100% + 10px);
    left: -5px;
}
.main-events .event-item .title{
    font-size: clamp(17px, 1.25vw, 24px);
    font-weight: 700;
    text-transform: uppercase;
    margin-bottom: 7px;
}
.main-events .event-item .date,
.main-events .event-item .leader,
.main-events .event-item .location{
    display: flex;
    align-items: center;
    padding-top: 5px;
}
.main-events .event-item .icon{
    margin-right: 10px;
}
/* Контент должен быть поверх псевдоэлемента */
.main-events .event-item > * {
    position: relative;
    z-index: 1;
}
.main-events .event-item svg path {
    stroke: #000; /* изначально чёрный */
    transition: stroke 0.2s ease-in-out;
}
/* Hover: показываем градиент и делаем текст белым */
.main-events .event-item:hover::before {
    opacity: 1;
}
.main-events .event-item:hover {
    color: #fff;
}
.main-events .event-item:hover svg path {
    stroke: #fff; /* при наведении становится белым */
}
.main-events .more-events--btn {
    height: clamp(50px, 4vw, 66px);
    font-size: clamp(14px, 1.25vw, 16px);
    padding: 0 clamp(15px, 1.5vw, 30px);
}
.main-training-programs .h3-title,
.main-season-tickets .h3-title,
.main-map-title{
    color: #000;
    font-size: clamp(40px, 6vw, 119px);
    font-weight: 700;
    text-transform: uppercase;
    white-space: nowrap;
}
.main-training-programs .h3-title span,
.main-season-tickets .h3-title span{
    text-transform: uppercase;
    font-style: italic;
    color: transparent;
    margin: 10px 0 0 0;
    line-height: 1;
    -webkit-text-stroke-width: 1px;
    -webkit-text-stroke-color: #000;
    text-stroke-width: 1px;
    text-stroke-color: #000;
}
.filter-training-programs{
    margin-bottom: 20px;
}
.main-training-programs .programs-tabs {
    position: relative;
}
.main-training-programs .programs-tabs .club-programs-tab {
    opacity: 0;
    visibility: hidden;
    height: 0;
    overflow: hidden;
    transition: opacity 0.4s ease, visibility 0.4s ease, height 0.4s ease;
}

.main-training-programs .programs-tabs .club-programs-tab.active {
    opacity: 1;
    visibility: visible;
    height: auto;
    overflow: visible;
}
/* ---------- ADAPTIVE ACCORDION (use .adaptive-accordion) ---------- */

.adaptive-accordion {
    display: flex;
    gap: 5px;
    align-items: stretch;
    width: 100%;
    box-sizing: border-box;
}

/* each item (header + content) */
.adaptive-accordion .accordion-item {
    position: relative;
    display: flex;
    flex-direction: row;
    align-items: stretch;
    overflow: visible;
    box-sizing: border-box;
    flex: 0 0 auto;
    /*transition: flex 0.4s ease;*/
}
.adaptive-accordion .accordion-item::before {
    position: absolute;
    content: "";
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: #000;
    z-index: -5;
}
.adaptive-accordion .accordion-item.active::after {
    position: absolute;
    content: "";
    bottom: 0;
    left: -10px;
    width: 100%;
    height: 100%;
    background-image: url("../images/img/arrow-1-bg.webp");
    background-repeat: no-repeat;
    background-position: left bottom;
    z-index: -4;
    background-size: 320px auto;
}

/* активная вкладка занимает всё оставшееся место */
.adaptive-accordion .accordion-item.active {
    flex: 1 1 auto;
}

/* header: column: title (grows) + image (fixed at bottom) */
.adaptive-accordion .accordion-header {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: center;
    width: 120px;
    box-sizing: border-box;
    cursor: pointer;
    user-select: none;
    flex-shrink: 0;
}

/* title rotated -90deg */
.adaptive-accordion .accordion-header .title {
    flex: 1 1 auto;
    display: flex;
    align-items: last baseline;
    justify-content: center;
    width: 100%;
    box-sizing: border-box;
    padding: 6px 0 70px 0;
    text-align: center;
}
/*.adaptive-accordion .accordion-header .title span {*/
/*    display: inline-block;*/
/*    transform: rotate(-90deg);*/
/*    transform-origin: center;*/
/*    white-space: nowrap;*/
/*    font-size: 46px;*/
/*    font-weight: 700;*/
/*    color: #fff;*/
/*    text-transform: uppercase;*/
/*    transition: color 0.3s ease;*/
/*}*/
.adaptive-accordion .accordion-header .title span {
    display: inline-block;
    writing-mode: vertical-rl;
    transform: rotate(180deg);
    font-size: 46px;
    font-weight: 700;
    color: #fff;
    max-height: 350px;
    text-align: left;
    line-height: 1;
    text-transform: uppercase;
    transition: color 0.3s ease;
}
.adaptive-accordion .accordion-item.active .accordion-header .title span {
    color: #FF6600;
}

/* image */
.adaptive-accordion .accordion-header .image {
    flex: 0 0 auto;
    width: 100%;
    margin-top: 8px;
    box-sizing: border-box;
}
.adaptive-accordion .accordion-header .image img {
    display: block;
    width: 100%;
    height: auto;
    object-fit: cover;
    border-radius: 6px;
}

/* content */
.adaptive-accordion .accordion-content {
    overflow: hidden;
    box-sizing: border-box;
    color: #ffffff;
    display: none;
    border-radius: 0 8px 8px 0;
    border-left: 1px solid rgba(0,0,0,0.04);
    opacity: 0;
    max-width: 0;
    transition: max-width 0.36s ease, opacity 0.24s ease;
}

/* inner wrapper */
.adaptive-accordion .accordion-content-inner {
    display: flex;
    gap: 0;
    box-sizing: border-box;
    white-space: normal;
    height: 100%;
}

/* two columns inside content */
.adaptive-accordion .accordion-content .text-box{
    -ms-flex-preferred-size: 0;
    flex-basis: 0;
    -ms-flex-positive: 1;
    flex-grow: 1;
    max-width: 100%;
    box-sizing: border-box;
    position: relative;
    display: flex;
    flex-direction: column;
}
.adaptive-accordion .accordion-content .media {
    -ms-flex: 0 0 auto;
    flex: 0 0 auto;
    width: auto;
    max-width: 100%;
    line-height: 0;
    /*flex: 1 1 0;*/
    box-sizing: border-box;
    position: relative;
}
.adaptive-accordion .accordion-content .text-box::before{
    position: absolute;
    content: "";
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image: url("../images/img/pattern-gray.webp");
    z-index: -4;
    opacity: .1;
}
.adaptive-accordion .accordion-content .text-box::after {
    position: absolute;
    content: "";
    inset: 0;
    background: linear-gradient(to right, #000 0%, rgba(0,0,0,0) 40%);
    z-index: -4;
}
.adaptive-accordion .accordion-content .text-box .action-link a{
    font-size: 16px;
    font-weight: 500;
}
.adaptive-accordion .accordion-content .text-box .text{
    padding: 50px 30px 0 0;
    font-size: 18px;
    line-height: 1.6;
    -webkit-box-flex: 1;
    -ms-flex-positive: 1;
    flex-grow: 1;
}
.adaptive-accordion .accordion-content .text-box .action-link{
    padding-bottom: 50px;
    padding-right: 30px;
}
/* visible state */
.adaptive-accordion .accordion-item.active .accordion-content {
    max-width: 2000px;
    opacity: 1;
    display: block;
}
.adaptive-accordion .accordion-item.active  .accordion-header .image{
    opacity: 0;
}

/* ---------- MOBILE (vertical) ---------- */
@media (max-width: 991px) {
    .adaptive-accordion {
        flex-direction: column;
    }

    .adaptive-accordion .accordion-item {
        flex-direction: column;
        width: 100%;
        flex: 1 1 auto;
    }

    .adaptive-accordion .accordion-header {
        width: 100%;
        flex-direction: row;
        align-items: center;
        padding: 10px 12px;
    }

    .adaptive-accordion .accordion-header .title {
        padding: 0;
        text-align: left;
    }
    .adaptive-accordion .accordion-header .title span {
        transform: none;
        display: inline-block;
        white-space: normal;
    }

    .adaptive-accordion .accordion-header .image {
        width: 56px;
        margin-top: 0;
        margin-left: 12px;
    }
    .adaptive-accordion .accordion-header .image img {
        width: 56px;
        height: 56px;
        object-fit: cover;
        border-radius: 6px;
    }

    /* контент на мобиле */
    .adaptive-accordion .accordion-content {
        max-width: none;
        width: 100%;
        max-height: 0;
        opacity: 0;
        transition: max-height 0.36s ease, opacity 0.24s ease;
    }

    .adaptive-accordion .accordion-item.active .accordion-content {
        max-height: 2000px;
        opacity: 1;
    }

    .adaptive-accordion .accordion-content-inner {
        flex-direction: column;
    }
}




.reboot-select-wrapper{
    display: flex;
    align-items: center;
}
.reboot-select-wrapper label{
    font-size: 12px;
    font-weight: 400;
    padding-right: 10px;
    text-align: right;
}
.reboot-select-wrapper label span{
    font-style: italic;
    display: block;
}
.reboot-select {
    position: relative;
    font-family: sans-serif;
}

/* Скрываем настоящий select */
.reboot-select select {
    display: none;
}

.reboot-select .select-display {
    background: #E6EEF1;
    padding: 13px 60px 13px 20px;
    border-radius: 8px;
    cursor: pointer;
    position: relative;
    user-select: none;
    font-size: 16px;
    font-weight: 700;
}
.reboot-select .select-display .arrow {
    position: absolute;
    right: 15px;
    top: 50%;
    transform: translateY(-50%);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.3s ease;
}

/* Когда список открыт — поворот вверх */
.reboot-select.open .select-display .arrow {
    transform: translateY(-50%) rotate(180deg);
}

/* Открытый список */
.reboot-select .options {
    display: none;
    background: #E6EEF1;
    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.14);
    list-style: none;
    padding: 0;
    margin: 5px 0 0;
    border-radius: 8px;
    overflow: hidden;
    position: absolute;
    width: 100%;
    z-index: 5;
}

.reboot-select .options li {
    padding: 10px 15px;
    cursor: pointer;
    font-size: 16px;
    font-weight: 600;
}

.reboot-select .options li:hover {
    background: #d9e3e8;
}

/* Когда открыт */
.reboot-select.open .options {
    display: block;
}
.main-season-tickets{
    margin-bottom: 20px;
}
.main-season-tickets .club-tickets-tabs .club-tickets-tab {
    opacity: 0;
    visibility: hidden;
    height: 0;
    overflow: hidden;
    transition: opacity 0.4s ease, visibility 0.4s ease, height 0.4s ease;
}
.main-season-tickets .club-tickets-tabs .club-tickets-tab.active {
    opacity: 1;
    visibility: visible;
    height: auto;
    overflow: visible;
}
.main-season-tickets .club-tickets-tabs {
    /* выдвигаем swiper за пределы контейнера */
    margin-left: -15px;
    margin-right: -15px;

    /* чтобы не появлялся горизонтальный скролл страницы */
    overflow: visible;
}
.main-season-tickets .swiper-wrapper {
    overflow: visible; /* тоже обязательно, иначе Swiper обрежет края */
    align-items: stretch;
}

/* Отступ слева для первого слайда */
.main-season-tickets .swiper-slide:first-child {
    margin-left: 15px; /* компенсируем margin-left контейнера */
}
.main-season-tickets .swiper-wrapper {

}
.main-season-tickets .swiper-slide {
    height: auto;
    display: flex;
    user-select: none;
    -webkit-user-select: none; /* Safari/macOS */
    -ms-user-select: none;
}
.main-season-tickets .swiper-slide > * {
    flex: 1;
}
.main-season-tickets .ticket-item{
    position: relative;
    height: inherit;
}
.main-season-tickets .ticket-item .wrapper{
    padding: 30px 30px 15px 30px;
}
.main-season-tickets .ticket-item::before{
    position: absolute;
    content: "";
    background: #E6EEF1;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: -2;
}
.main-season-tickets .ticket-item-type-1{
    background-image: url("../images/img/bg-figure-1.svg");
    background-position: center center;
    background-repeat: no-repeat;
    background-size: 100%;
    transition: background-size 0.5s ease;
}
.main-season-tickets .ticket-item-type-1:hover {
    background-size: 110%; /* увеличиваем на 10%, можно подогнать */
}
.main-season-tickets .ticket-item-type-2 {
    position: relative;
    overflow: hidden; /* чтобы не вылезало при вращении */
}

.main-season-tickets .ticket-item-type-2::after {
    content: "";
    position: absolute;
    width: 105%;
    height: 100%;
    top: 0;
    left: -2.5%;
    background-image: url("../images/img/bg-figure-2.svg");
    background-position: center center;
    background-repeat: no-repeat;
    background-size: 100%;
    transform: rotate(15deg);
    transition: transform 0.6s ease, background-size 0.5s ease;
    z-index: -1;
}

.main-season-tickets .ticket-item-type-2:hover::after {
    transform: rotate(0deg);
    background-size: 110%;
}
.main-season-tickets .ticket-item-type-3{
    background-image: url("../images/img/bg-figure-3.svg");
    background-position: center center;
    background-repeat: no-repeat;
    background-size: 70% auto;
    transition: background-size 0.5s ease;
}
.main-season-tickets .ticket-item-type-3:hover {
    background-size: 80%; /* увеличиваем на 10%, можно подогнать */
}
.main-season-tickets .ticket-item-type-4{
    background-image: url("../images/img/bg-figure-4.svg");
    background-position: center center;
    background-repeat: no-repeat;
    background-size: 100%;
    transition: background-size 0.5s ease;
}
.main-season-tickets .ticket-item-type-4:hover {
    background-size: 110%; /* увеличиваем на 10%, можно подогнать */
}
.main-season-tickets .ticket-item-type-5{
    background-image: url("../images/img/bg-figure-5.svg");
    background-position: center center;
    background-repeat: no-repeat;
    background-size: 100%;
    transition: background-size 0.5s ease;
}
.main-season-tickets .ticket-item-type-5:hover {
    background-size: 110%; /* увеличиваем на 10%, можно подогнать */
}
.main-season-tickets .ticket-header{
    display: flex;
    font-weight: 600;
    margin-bottom: 50px;
}
.main-season-tickets .ticket-header .slogan{
    text-align: right;
    padding-right: 15px;
    -ms-flex-preferred-size: 0;
    flex-basis: 0;
    -ms-flex-positive: 1;
    flex-grow: 1;
    max-width: 100%;
}
.main-season-tickets .ticket-header .validity-period{
    text-align: center;
    -ms-flex-preferred-size: 0;
    flex-basis: 0;
    -ms-flex-positive: 1;
    flex-grow: 1;
    max-width: 100%;
}
.main-season-tickets .ticket-header .validity-period span{
    display: block;
    font-style: italic;
}
.main-season-tickets .ticket-header .validity-period.bordered{
    text-align: left;
    padding-left: 15px;
    border-left: 1px solid #000;
}
.main-season-tickets .title{
    color: var(--primary);
    font-weight: 800;
    line-height: 1;
    text-align: center;
    text-transform: uppercase;
}
.main-season-tickets .classes{
    color: var(--primary);
    font-size: 22px;
    font-weight: 700;
    text-align: center;
}
.main-season-tickets .classes .price{
    background: linear-gradient(to right, var(--primary), var(--secondary));
    display: inline-block;
    border-radius: 12px;
    color: #fff;
    font-style: italic;
    padding: 5px 10px;
}
.main-season-tickets .short_text{
    font-weight: 500;
    text-align: center;
    margin-top: 25px;
}
.main-season-tickets .text{
    font-weight: 500;
    text-align: center;
    margin-top: 25px;
}
.main-season-tickets .whatsapp-link{
    text-align: center;
}
.main-season-tickets .whatsapp-link a{
    display: inline-flex;
    gap: 30px;
    background-color: #fff;
    border: 1px solid #0FBD05;
    color: #0FBD05;
    font-size: 16px;
    font-weight: 700;
    padding: 0 40px;
    height: 58px;
    border-radius: 29px;
    align-items: center;
    line-height: 1;
    text-decoration: none;
    text-transform: uppercase;
    transition: all 0.3s ease-in-out;
}
.main-season-tickets .whatsapp-link a svg{
    width: 35px;
    height: 35px;
}
.main-season-tickets .whatsapp-link a svg path{
    fill: #0FBD05;
    transition: all 0.3s ease-in-out;
}
.main-season-tickets .whatsapp-link a:hover{
    color: #fff;
    background-color: #0FBD05;
}
.main-season-tickets .whatsapp-link a:hover svg path{
    fill: #fff;
}
.main-season-tickets .discount-box{
    border-radius: 26px 26px 0 0;
    overflow: hidden;
    position: relative;
    padding: 15px;
    text-align: center;
    color: #fff;
    z-index: 1;
}
.main-season-tickets .discount-box::before{
    position: absolute;
    content: "";
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: -2;
    background: linear-gradient(to right, var(--primary), var(--secondary));
}
.main-season-tickets .discount-box::after{
    position: absolute;
    content: "";
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: -1;
    opacity: 0;
    transition: opacity .3s ease;
    background: linear-gradient(to right, var(--secondary), var(--primary));
}
.main-season-tickets .ticket-item:hover .discount-box::after{
    opacity: 1;
}
.main-season-tickets .discount-box .discount-text{
    font-size: 15px;
    font-weight: 600;
}
.main-season-tickets .discount-box .discount-text .action{
    text-transform: uppercase;
    font-size: 16px;
}
.main-season-tickets .discount-box .read-more-box{
    padding-top: 10px;
}
.main-season-tickets .discount-box .read-more-box button{
    cursor: pointer;
    color: #fff;
    font-size: 13px;
    text-transform: uppercase;
    font-weight: 600;
    border: 1px solid #fff;
    border-radius: 14px;
    padding: 5px 30px;
    transition: all .3s ease;
}
.main-season-tickets .ticket-item:hover .discount-box .read-more-box button{
    color: var(--primary);
    background: #fff;
}
.franchise-privileges .wrapper {
    position: relative;
}
.franchise-privileges .wrapper::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 33%;
    height: 80%;
    pointer-events: none;

    background: radial-gradient(
        circle at top left,
        #9AC8FF 0%,
        rgba(154, 200, 255, 0.3) 40%,
        transparent 80%
    );
    overflow: visible;
    opacity: .2;
    z-index: -5;
}
.franchise-privileges .wrapper::after {
    content: "";
    position: absolute;
    bottom: 0;  /* привязываем к нижнему краю */
    left: 0;    /* привязываем к левому краю */
    width: 33%;
    height: 50%;
    pointer-events: none;

    background: radial-gradient(
        circle at bottom left,
        #96FF7B 0%,
        rgba(150, 255, 123, 0.3) 40%,
        transparent 80%
    );
    overflow: visible;
    opacity: .1;
    z-index: -5;
}
.franchise-privileges .corner-gradient {
    position: absolute;
    top: 0;
    right: 0;
    width: 33%;           /* треть ширины контейнера */
    height: 80%;          /* 80% высоты контейнера */
    pointer-events: none;

    /* делаем градиент "больше" блока, чтобы он не обрезался */
    background: linear-gradient(
        to bottom left,
        rgba(110, 84, 210, 0.1),
        transparent 70%
    );

    /* чтобы часть градиента выходила за границы блока */
    overflow: visible;
}
.franchise-header{
    display: flow-root;
    position: relative;
}
.franchise-header::before{
    position: absolute;
    content: "";
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: #000;
    z-index: -3;
}
.franchise-header::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%; /* масштабируется под блок */
    height: 100%;
    max-width: 800px; /* ограничение размера градиента */
    max-height: 800px;
    background: radial-gradient(circle at top left, #9AC8FF 0%, rgba(154,200,255,0) 80%);
    opacity: 0.2;
    pointer-events: none;
    z-index: -1; /* выше ::before, но ниже контента */
}
.franchise-header .title-header{
    color: #fff;
    text-align: center;
    text-transform: uppercase;
    font-size: 100px;
    font-weight: 700;
    margin: 40px 0 50px;
    line-height: 85px;
}
.franchise-header .contour-text{
    font-size: 72px;
    font-style: italic;
    color: transparent;
    margin: 10px 0 0 0;
    line-height: 1;
    -webkit-text-stroke-width: 1px;
    -webkit-text-stroke-color: #fff;
    text-stroke-width: 1px;
    text-stroke-color: #fff;
}
.master-bu-box-why .why-title {
    display: table;
    color: #fff;
    background: var(--primary);
    font-size: 60px;
    font-weight: 700;
    margin: auto;
    padding: 15px 45px;
    border-radius: 16px;
    line-height: 1;
    position: relative;
}
.master-bu-box-why .why-title::after {
    position: absolute;
    content: "";
    bottom: -16px;
    left: 50%;
    width: 34px;
    height: 38px;
    background-image: url("../images/img/claw-orange.svg");
    background-size: 34px auto;
}
.master-bu-box-why .circle-layout {
    position: relative;
    width: 420px;
    margin: 80px auto 0;
    display: flex;
    justify-content: center;
    align-items: center;
}
.master-bu-box-why .circle-layout .avatar {
    width: 420px;
    height: 380px;           /* на 40px меньше полного круга */
    overflow: hidden;        /* обрезаем нижнюю часть */
    position: relative;
}

.master-bu-box-why .circle-layout .avatar-inner {
    width: 420px;
    height: 420px;           /* полный круг */
    border-radius: 50%;      /* круг */
    overflow: hidden;
    position: absolute;      /* чтобы нижний край выходил за avatar */
    top: 0;                  /* верхняя часть совпадает с avatar сверху */
    left: 0;
}

.master-bu-box-why .circle-layout .avatar-inner img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* --- 2) облачка: стартовые стили, видимы через opacity 0, но позиционируем absolute через JS --- */
.master-bu-box-why .circle-layout .thought {
    position: absolute; /* JS переопределит top/left */
    background: #fff;
    padding: 10px 15px;
    border-radius: 16px;
    box-shadow: 0 2px 6px rgba(0,0,0,0.1);
    font-size: 23px;
    color: var(--primary);
    font-weight: 600;
    z-index: 2;
    opacity: 0;
    transform: translateY(8px); /* стартовая позиция для фейда+подъёма */
    transition: opacity .25s linear;
    box-sizing: border-box;
    width: max-content;
}

/* хвостик (SVG) — z-index ниже, но относительно самого thought */
.master-bu-box-why .circle-layout .thought::after {
    position: absolute;
    content: "";
    width: 22px;
    height: 26px;
    background-image: url("../images/img/claw-white.svg");
    background-size: 22px auto;
    z-index: 1;
}

/* зеркалим/пишем позицию хвостиков (JS не трогает) */
.master-bu-box-why .circle-layout .thought.left::after {
    right: -11px;
    bottom: -4px;
    transform: scaleX(-1) rotate(90deg);
}
.master-bu-box-why .circle-layout .thought.right::after {
    left: -11px;
    bottom: -4px;
    transform: rotate(90deg);
}

/* если JS отключен — показываем сразу (fallback) */
.js-disabled .master-bu-box-why .circle-layout .thought {
    opacity: 1;
    transform: none;
}

/* mobile: отключаем абсолютное позиционирование и хвостики */
@media (max-width: 600px) {
    .master-bu-box-why .circle-layout {
        width: 100%;
    }
    .master-bu-box-why .circle-layout .thought {
        position: static;
        margin: 10px 0;
        text-align: center;
        opacity: 1 !important;
        transform: none !important;
    }
    .master-bu-box-why .circle-layout .thought::after { display: none; }
    .master-bu-box-why .circle-layout .avatar img {
        position: static;
        transform: none;
        height: auto;
        width: 100%;
    }
}

.franchise-privileges {
    position: relative;
    padding-top: 50px;
}
.franchise-privileges::before {
    position: absolute;
    content: "";
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: #E6EEF1;
    z-index: -5;
}
.franchise-privileges::after {
    position: absolute;
    content: "";
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image: url("../images/img/pattern-gray.webp");
    background-size: auto 100%;
    background-repeat: repeat-x;
    filter: brightness(0) invert(1);
    opacity: .2;
    z-index: -4;
}
.franchise-privileges h2{
    color: #000;
    text-align: center;
    text-transform: uppercase;
    font-size: 100px;
    font-weight: 700;
    line-height: 90px;
    margin: 0 0 70px;
}
.franchise-privileges h2 .contour-text {
    font-size: 75px;
    font-style: italic;
    color: transparent;
    margin: 10px 0 0 0;
    line-height: 1;
    -webkit-text-stroke-width: 1px;
    -webkit-text-stroke-color: #000;
    text-stroke-width: 1px;
    text-stroke-color: #000;
}


.franchise-privileges .numbered ul {
    column-count: 2;          /* разбиваем на 2 колонки */
    column-gap: 130px;         /* расстояние между ними */
    list-style: none;
    margin: 0;
    padding: 0;
    counter-reset: li;
}

.franchise-privileges .numbered li {
    position: relative;
    padding-left: 63px;
    counter-increment: li;
    break-inside: avoid;
    margin-bottom: 50px;
    min-height: 120px;
}

.franchise-privileges .numbered li::after {
    position: absolute;
    content: "";
    top: -31px;
    left: -53px;
    width: 167px;
    height: 137px;
    background-image: url("../images/img/bg-li-marker.svg");
    background-size: 100% auto;
    z-index: -2;
}

.franchise-privileges .equal li::before {
    content: counter(li);
    position: absolute;
    left: 0;
    top: 0;
    color: #fff;
    font-weight: 700;
    font-size: 70px;
    font-style: italic;
}

.franchise-privileges .numbered li .title{
    display: block;
    font-size: 38px;
    font-weight: 700;
}
.franchise-privileges .numbered li .text{
    font-size: 22px;
    font-style: italic;
    font-weight: 500;
}
.franchise-page .page-body .col-text{
    padding-right: 60px;
    padding-bottom: 30px;
}
.franchise-page .page-body .col-text .inner-text{
    max-width: 1000px;
    margin-left: auto;
    padding-top: 50px;
}
.franchise-page .page-body .row {
    display: flex;
    align-items: stretch; /* колонки одинаковой высоты */
}
.franchise-page .page-body .col-image {
    display: flex;
    align-items: stretch;
    padding: 0;
}
.franchise-page .page-body .main-image {
    width: 500px;
    height: 100%;
    overflow: hidden;
    display: inline-block;
    position: relative;
}
.franchise-page .page-body .main-image img {
    position: relative;
    left: 50%;
    transform: translateX(-50%);
    width: auto;
    height: 100%;
    min-width: 640px;
    display: block;
    object-fit: cover;
}
.franchise-page .page-body .col-text h2{
    font-size: 40px;
    font-weight: 700;
    margin: 0;
}
.franchise-page .page-body .col-text .sub-title{
    font-size: 22px;
    font-weight: 500;
    font-style: italic;
}
.page-clubs {
    position: relative;
}
.page-clubs::before {
    position: absolute;
    content: "";
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: #000;
    z-index: -3;
}
.page-clubs::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    max-width: 800px;
    max-height: 800px;
    background: radial-gradient(circle at top left, #9AC8FF 0%, rgba(154,200,255,0) 80%);
    opacity: 0.2;
    pointer-events: none;
    z-index: -1;
}
.page-clubs h1{
    color: #fff;
    font-size: 100px;
    font-weight: 600;
    text-transform: uppercase;
    text-align: center;
    margin: 50px 0;
}
.page-clubs .list-clubs .club-item {
    margin-bottom: 60px;
    position: relative;
}
.page-clubs .list-clubs .club-item::before {
    position: absolute;
    content: "";
    top: -30px;
    left: -30px;
    width: calc(100% + 60px);
    height: calc(100% + 60px);
    background: #fff;
    border-radius: 33px;
    z-index: -1;
    opacity: 0;
    transition: opacity .5s ease;
}
.page-clubs .list-clubs .club-item:hover::before {
    opacity: 1;
}
.page-clubs .list-clubs .club-item .map-bl{
    position: relative;
    width: 320px;
    height: 275px;
    border-radius: 33px;
    overflow: hidden;
}
.page-clubs .list-clubs .club-item .map-bl .master-bu-map-marker{
    position: absolute;
    width: 116px;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}
.page-clubs .list-clubs .club-item .club-info {
    display: flex;
    flex-direction: column; /* выстраиваем содержимое вертикально */
    height: 100%; /* нужно, чтобы было что растягивать */
}
.page-clubs .list-clubs .club-item .address{
    font-size: clamp(17px, 2vw, 30px);
    font-weight: 600;
    color: #fff;
    transition: color .5s ease;
}
.page-clubs .list-clubs .club-item .phone{
    padding-top: 20px;
}
.page-clubs .list-clubs .club-item .phone a{
    font-size: clamp(17px, 2vw, 28px);
    font-weight: 600;
    color: #fff;
    text-decoration: none;
    transition: color .5s ease;
}
.page-clubs .list-clubs .club-item .offer{
    padding-top: 30px;
}
.page-clubs .list-clubs .club-item .offer a{
    font-size: clamp(17px, 2vw, 30px);
    color: #fff;
    text-decoration: none;
    transition: color .5s ease;
}
.page-clubs .list-clubs .club-item:hover .address,
.page-clubs .list-clubs .club-item:hover .phone a,
.page-clubs .list-clubs .club-item:hover .offer a{
    color: #000;
}
.page-clubs .list-clubs .club-item .club-info .row.links {
    margin-top: auto; /* прижимает этот блок к низу */
}
.page-clubs .list-clubs .club-item .whatsapp-button,
.page-clubs .list-clubs .club-item .phone-button{
    background: #0FBD05;
    color: #fff;
    height: 64px;
    display: flex;
    font-size: 23px;
    font-weight: 700;
    border-radius: 32px;
    text-decoration: none;
    align-items: center;
    padding: 0 40px;
    min-width: 330px;
    margin-top: 15px;
    justify-content: center;
    line-height: 0;
}
.page-clubs .list-clubs .club-item .whatsapp-button .icon{
    margin-right: 20px;
}
.page-clubs .list-clubs .club-item .phone-button{
    background: linear-gradient(to right, #FF6600, #FF9D00);
}
.page-reboot-life{
    background: #E6EEF1;
    padding-bottom: 40px;
}
.page-reboot-life h1{
    font-size: 100px;
    font-weight: 800;
    text-transform: uppercase;
    text-align: center;
    margin: 40px 0;
}
.page-reboot-life h1 .contour-text{
    font-style: italic;
    color: transparent;
    margin: 10px 0 0 0;
    line-height: 1;
    -webkit-text-stroke-width: 1px;
    -webkit-text-stroke-color: #000;
    text-stroke-width: 1px;
}
.list-events .swiper-slide{
    width: 38%;
}
.list-events .event-item{
    position: relative;
    cursor: pointer;
}
.list-events .event-item .image{
    position: relative;
    line-height: 0;
    overflow: hidden;
}
.list-events .event-item .image::after{
    position: absolute;
    content: "";
    top: 0;
    left: 0;
    height: 100%;
    width: 100%;
    background: rgba(0,0,0,.3);
}
.list-events .event-item .image img{
    transition: all .5s ease;
}
.list-events .event-item:hover .image img{
    transform: scale(1.1);
}
.list-events .event-item .info{
    position: absolute;
    left: 0;
    bottom: 0;
    height: auto;
    width: calc(100% - 30px);
    color: #fff;
    padding: 15px;
    z-index: 2;
}
.list-events .event-item .info .title{
    font-size: 17px;
    font-weight: 700;
    text-transform: uppercase;
}
.list-events .event-item .info .date,
.list-events .event-item .info .leader,
.list-events .event-item .info .location{
    font-size: 12px;
    font-weight: 500;
    display: inline-flex;
    align-items: center;
    margin-top: 5px;
}
.list-events .event-item .info .icon{
    margin-right: 8px;
}
.list-events .event-item .info svg path{
    stroke: #fff;
}
.list-events .event-item .info .date svg,
.list-events .event-item .info .leader svg,
.list-events .event-item .info .location svg {
    width: 17px;
    height: 17px;
}
.list-events .event-item .info .organizer {
    font-size: 12px;
    font-weight: 500;
    border: 2px solid #fff;
    border-radius: 12px;
    padding: 15px;
    text-transform: uppercase;
}
.list-events .event-item .organizer span {
    display: block;
    font-size: 17px;
    font-weight: 700;
    margin-bottom: 10px;
    text-transform: uppercase;
}
.swiper-events .swiper-button-next,
.swiper-events .swiper-button-prev{
    color: #fff;
}
.swiper .btn-prev,
.swiper .btn-next{
    position: absolute;
    z-index: 2;
    top: 50%;
    cursor: pointer;
    transform: translate(0, -50%);
}
.swiper .btn-prev {
    left: 15px;
}
.swiper .btn-next{
    right: 15px;
}
.swiper button.swiper-button-disabled {
    opacity: .5;
}
.list-galleries .box-header {
    display: flex;
    align-items: center;
    gap: 20px;
    justify-content: center;
}
.list-galleries .btn-extra-small {
    padding: 0 20px;
}
.list-galleries h2.title,
.list-communities h2.title {
    font-size: 36px;
    font-weight: 800;
    text-transform: uppercase;
    text-align: center;
}
.list-galleries h2.title .contour-text,
.list-communities h2.title .contour-text{
    font-style: italic;
    color: transparent;
    margin: 10px 0 0 0;
    line-height: 1;
    -webkit-text-stroke-width: 1px;
    -webkit-text-stroke-color: #000;
    text-stroke-width: 1px;
}
.list-galleries .swiper-slide,
.list-communities .swiper-slide{
    width: 380px;
}
.list-galleries .gallery-item,
.list-communities .community-item{
    position: relative;
    cursor: pointer;
    display: block;
    text-decoration: none;
}
.list-galleries .gallery-item .cover,
.list-communities .community-item .cover{
    position: relative;
    line-height: 0;
    overflow: hidden;
}
.list-galleries .gallery-item .cover::after,
.list-communities .community-item .cover::after{
    position: absolute;
    content: "";
    top: 0;
    left: 0;
    height: 100%;
    width: 100%;
    background: rgba(0,0,0,.3);
}
.list-galleries .gallery-item .cover img,
.list-communities .community-item .cover img{
    transition: all .5s ease;
}
.list-galleries .gallery-item:hover .cover img,
.list-communities .community-item:hover .cover img{
    transform: scale(1.1);
}
.list-galleries .gallery-item .info,
.list-communities .community-item .info{
    position: absolute;
    left: 0;
    bottom: 0;
    height: auto;
    width: calc(100% - 30px);
    color: #fff;
    padding: 15px;
    z-index: 2;
}
.list-galleries .gallery-item .info .title,
.list-communities .community-item .info .title{
    font-size: 18px;
    font-weight: 700;
}
.list-galleries .gallery-item .info .date{
    font-size: 12px;
    font-style: italic;
    margin-top: 5px;
}
.modal .links {
    margin-top: auto;
}
.modal .links .row{
    margin-left: -7px;
    margin-right: -7px;
}
.modal .links .row > div{
    padding-left: 7px;
    padding-right: 7px;
}
.modal .links .title{
    font-size: 16px;
    font-weight: 500;
    margin-bottom: 10px;
    margin-top: 15px;
    text-align: center;
}
.whatsapp-button-medium{
    background: #0FBD05;
    color: #fff;
    height: 56px;
    display: flex;
    font-size: 20px;
    font-weight: 700;
    border-radius: 28px;
    text-decoration: none;
    text-transform: uppercase;
    align-items: center;
    padding: 0 30px;
    justify-content: center;
    line-height: 0;
}
.whatsapp-button-medium .icon{
    margin-right: 15px;
}
.whatsapp-button-medium .icon svg{
    width: 32px;
    height: 32px;
}
.modal .links .app-button-dark .store-btn{
    padding: 10px 20px;
    height: 56px;
    min-width: 175px;
}
.modal .links .app-button-dark .store-btn svg{
    height: 27px;
}

.club-gallery .gallery-header {
    display: table;
    margin: auto;
    min-width: 500px;
    padding: 0 50px 40px;
    position: relative;
    text-align: center;
}
.club-gallery .gallery-header h1{
    margin: 0;
    font-size: 36px;
    font-weight: 700;
}
.club-gallery .gallery-header .date{
    font-size: 16px;
    font-style: italic;
}
.club-gallery .gallery-header .gallery-nav .nav-prev,
.club-gallery .gallery-header .gallery-nav .nav-next{
    position: absolute;
    top: 10px;
}
.club-gallery .gallery-header .gallery-nav .nav-prev{
    left: 0;
}
.club-gallery .gallery-header .gallery-nav .nav-next{
    right: 0;
}
.club-gallery .gallery-header .gallery-nav a{
    text-decoration: none;
}
.club-gallery .gallery-header .gallery-nav svg{
    height: 35px;
}
.club-gallery .gallery-header .gallery-nav svg path{
    stroke: #000;
}
.club-gallery .masonry-grid {
    margin: 0 auto;
}
.club-gallery .masonry-grid .grid-item {
    width: 25%; /* 4 колонки */
    padding: 7px;
    box-sizing: border-box;
}
.club-gallery .masonry-grid .grid-item img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 6px;
}
@media (max-width: 992px) {
    .club-gallery .masonry-grid .grid-item { width: 33.333%; }
}
@media (max-width: 768px) {
    .club-gallery .masonry-grid .grid-item { width: 50%; }
}
@media (max-width: 480px) {
    .club-gallery .masonry-grid .grid-item { width: 100%; }
}
.page-events .page-body{
    padding: 40px 0;
}
.franchise-form .modal-inset{
    max-width: 870px;
}
.franchise-form h2{
    font-size: 36px;
    font-weight: 600;
    text-align: center;
}
.franchise-form h2 span{
    display: block;
}
.page-timeline{
    background: #E6EEF1;
}
.page-timeline .timeline-filter-box{
    background: #fff;
    border-radius: 8px;
    margin-top: 20px;
    padding: 30px 55px;
    margin-bottom: 20px;
    position: relative;
}
.page-timeline .timeline-filter-box > form > .row{
    margin-left: -7px;
    margin-right: -7px;
}
.page-timeline .timeline-filter-box > form > .row > div{
    padding-left: 7px;
    padding-right: 7px;
}
.page-timeline .timeline-filter-box .btn-prev,
.page-timeline .timeline-filter-box .btn-next{
    position: absolute;
    z-index: 2;
    top: 50%;
    cursor: pointer;
    transform: translate(0, -50%);
    width: 36px;
    height: 30px;
}
.page-timeline .timeline-filter-box .btn-prev svg,
.page-timeline .timeline-filter-box .btn-next svg{
    height: 30px;
}
.page-timeline .timeline-filter-box .btn-prev svg path,
.page-timeline .timeline-filter-box .btn-next svg path{
    stroke: #000;
}
.page-timeline .timeline-filter-box .btn-prev{
    left: 10px;
}
.page-timeline .timeline-filter-box .btn-next{
    right: 10px;
}
.page-timeline .timeline-filter-box .swiper-button-disabled{
    opacity: .3;
}
.page-timeline .timeline-filter-box .reboot-select-wrapper,
.page-timeline .timeline-filter-box .reboot-select {
    width: 100%;
}
.page-timeline .timeline-filter-box .reboot-select .select-display{
    background: #fff;
    border: 2px solid #4d4d4d;
    padding: 11px 60px 11px 20px;
}
.page-timeline .timeline-filter-box .reboot-select .options{
    background: #fff;
}
.page-timeline .timeline-filter-box .filter-button{
    height: 100%;
    border-radius: 24px;
    font-size: 16px;
    cursor: pointer;
    width: 230px;
}
.page-timeline .swiper-timeline .swiper-slide{
    width: 250px;
}
.page-timeline .swiper-timeline .swiper-slide .date-card{
    background: #fff;
    border-radius: 8px;
    font-size: 18px;
    font-weight: 600;
    text-align: center;
    padding: 10px;
    margin-bottom: 10px;
}
.page-timeline .swiper-timeline .swiper-slide .training-card{
    background: #fff;
    cursor: pointer;
    border-radius: 8px;
    margin-bottom: 10px;
    padding: 15px;
}
.page-timeline .swiper-timeline .swiper-slide .training-card .title{
    font-size: 18px;
    font-weight: 700;
    margin-bottom: 8px;
}
.page-timeline .swiper-timeline .swiper-slide .training-card .duration{
    font-size: 14px;
    margin-bottom: 10px;
    color: #646464;
}
.page-timeline .swiper-timeline .swiper-slide .training-card .text{
    font-size: 12px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    color: #646464;
}
.page-timeline .swiper-timeline .swiper-slide .training-card .timeline {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
    margin-top: 10px;
}
.page-timeline .swiper-timeline .swiper-slide .training-card .timeline .item {
    border-radius: 12px;
    background: var(--primary);
    color: #fff;
    font-size: 14px;
    font-weight: 600;
    text-align: center;
    padding: 9px;
}
.page-timeline .swiper-timeline .swiper-slide .training-card .timeline .item.done {
    background: #fff;
    border: 1px solid #959595;
    color: #959595;
}
.form .form-group {
    margin-bottom: 20px;
}
.form .form-group label{
    display: block;
    font-size: 15px;
    margin-bottom: 8px;
}
.form .form-group .form-control{
    display: flex;
    height: 64px;
    align-items: center;
    border: 1px solid #D9D9D9;
    border-radius: 10px;
    font-size: 22px;
    padding: 0 15px;
}
.quiz-contact-form form .form-button-submit,
.form .form-button-submit{
    background: linear-gradient(to right, #FF6600, #FF9D00);
    color: #fff;
    cursor: pointer;
    height: 64px;
    display: flex;
    font-size: 23px;
    font-weight: 700;
    border-radius: 32px;
    text-decoration: none;
    align-items: center;
    padding: 0 40px;
    margin: 40px auto 0;
    justify-content: center;
    line-height: 0;
}
.form .error-message {
    display: none;
    color: red;
    font-size: 10px;
    margin-top: 3px;
}


footer{
    background: #E6EEF1;
    background: radial-gradient(circle,rgba(230, 238, 241, 1) 0%, rgba(218, 232, 243, 1) 100%);
    padding: 15px 0;
}
.footer-main-menu{
    margin-top: 33px;
}
.footer-main-menu ul{
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
}
.footer-main-menu ul li{
    padding: 0;
}

.footer-menu{
    margin-top: 25px;
}
.footer-menu ul{
    margin: 0;
    padding: 0;
    list-style: none;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    gap: 20px;
}

.footer-menu ul li a{
    font-size: 14px;
    font-weight: 500;
    color: #6C787D;
    text-decoration: none;
}

.footer-phone{
    padding-top: 40px;
}
.footer-phone p{
    margin: 0;
}
.footer-phone .link-pdf{
    font-weight: 500;
    color: #000;
    position: relative;
    padding-right: 37px;
}
.footer-phone .link-pdf:hover{
    text-decoration: none;
}
.footer-phone .link-pdf::after{
    position: absolute;
    content: "";
    top: -2px;
    right: 0;
    width: 24px;
    height: 24px;
    background-image: url("../images/icons/pdf-icon.svg");
}
.footer-phone a.phone{
    font-weight: 500;
    text-decoration: none;
    color: #000;
    margin-bottom: 10px;
    display: table;
}
.footer-messenger-links{
    margin-top: 45px;
    display: flex;
    gap: 15px;
}
.copyright {
    border-top: 1px solid #fff;
    font-size: 16px;
    font-weight: 500;
    color: #000000;
    padding-top: 15px;
    margin-top: 15px;
    text-transform: uppercase;
}
.copyright p{
    margin: 0;
}




.arrow-to-top-link {
    margin-top: 45px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
}

.arrow-to-top-icon {
    color: #000; /* изначально черный */
    transition: color 0.3s ease; /* плавный переход */
}

.arrow-to-top-link:hover .arrow-to-top-icon {
    color: #FF6600; /* при наведении становится оранжевой */
}

.hide-modal{
    position: absolute;
    left: -9000px;
}
.modal-backdrop {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.5);
    backdrop-filter: blur(3px);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    z-index: -9999;
    transition: all 0.5s ease;
}
.modal-backdrop.active {
    opacity: 1;
    z-index: 9999;
}
.modal-overlay {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    margin: auto;
    background-color: rgba(0,0,0,.5);
    backdrop-filter: blur(3px);
    opacity: 0;
    visibility: hidden;
    z-index: 40;
    -moz-transition: opacity 0.25s ease 0s, visibility 0.35s linear;
    -o-transition: opacity 0.25s ease 0s, visibility 0.35s linear;
    -webkit-transition: opacity 0.25s ease, visibility 0.35s linear;
    -webkit-transition-delay: 0s, 0s;
    transition: opacity 0.25s ease 0s, visibility 0.35s linear;
}
.modal-overlay.state-show {
    opacity: 1;
    visibility: visible;
    -moz-transition-delay: 0s;
    -o-transition-delay: 0s;
    -webkit-transition-delay: 0s;
    transition-delay: 0s;
    -moz-transition-duration: 0.2s, 0s;
    -o-transition-duration: 0.2s, 0s;
    -webkit-transition-duration: 0.2s, 0s;
    transition-duration: 0.2s, 0s;
}

.modal-frame {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    margin: auto;
    z-index: 50;
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: center;
    align-items: center;
    -moz-box-align: center;
    -webkit-box-pack: center;
    -webkit-justify-content: center;
    justify-content: center;
    -moz-box-pack: center;
    -ms-flex-pack: center;
    width: 100%;
    visibility: hidden;
}
.modal-frame.state-appear {
    visibility: visible;
}
.modal-frame.state-appear .modal-inset {
    -moz-animation: modalComeIn 0.25s ease;
    -webkit-animation: modalComeIn 0.25s ease;
    animation: modalComeIn 0.25s ease;
    visibility: visible;
    /* to keep @ final state */
}
.modal-frame.state-appear .modal-body {
    width: 100%;
    opacity: 1;
    -moz-transform: translateY(0) scale(1, 1);
    -ms-transform: translateY(0) scale(1, 1);
    -webkit-transform: translateY(0) scale(1, 1);
    transform: translateY(0) scale(1, 1);
}
.modal-frame.state-leave {
    visibility: visible;
}
.modal-frame.state-leave .modal-inset {
    -moz-animation: modalHeadOut 0.35s ease 0.1s;
    -webkit-animation: modalHeadOut 0.35s ease 0.1s;
    animation: modalHeadOut 0.35s ease 0.1s;
    visibility: visible;
}
.modal-frame.state-leave .modal-body {
    opacity: 0;
    -moz-transition-delay: 0s;
    -o-transition-delay: 0s;
    -webkit-transition-delay: 0s;
    transition-delay: 0s;
    -moz-transition-duration: 0.35s;
    -o-transition-duration: 0.35s;
    -webkit-transition-duration: 0.35s;
    transition-duration: 0.35s;
    -moz-transition-timing-function: ease;
    -o-transition-timing-function: ease;
    -webkit-transition-timing-function: ease;
    transition-timing-function: ease;
    -moz-transform: translateY(25px);
    -ms-transform: translateY(25px);
    -webkit-transform: translateY(25px);
    transform: translateY(25px);
}

@-moz-document url-prefix() {
    .modal-frame {
        height: calc(100% - 55px);
    }
}
.modal {
    display: block;
    vertical-align: middle;
}

.modal-inset {
    position: relative;
    padding: 60px;
    display: flex;
    overflow: hidden;
    background-color: white;
    min-width: 320px;
    min-height: 126px;
    border-radius: 22px;
    margin: auto;
    visibility: hidden;
    -moz-box-shadow: 2px 2px 8px 1px rgba(0, 0, 0, 0.2);
    -webkit-box-shadow: 2px 2px 8px 1px rgba(0, 0, 0, 0.2);
    box-shadow: 2px 2px 8px 1px rgba(0, 0, 0, 0.2);
    -moz-backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    -moz-transform: translate3d(0, 0, 0);
    -ms-transform: translate3d(0, 0, 0);
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
    -moz-transform-style: preserve-3d;
    -webkit-transform-style: preserve-3d;
    transform-style: preserve-3d;
}
.modal-inset .image{
    line-height: 0;
}
.modal-inset .image img {
    height: 100%;
    width: auto;
    object-fit: cover;
}
.modal-inset .close {
    display: block;
    cursor: pointer;
    position: absolute;
    top: 30px;
    right: 30px;
    opacity: 0.4;
    z-index: 1;
}
.modal-inset .close:hover {
    opacity: 1;
}

.modal-body {
    opacity: 0;
    display: flex;
    flex-direction: column;
    -moz-transform: translateY(0) scale(0.8, 0.8);
    -ms-transform: translateY(0) scale(0.8, 0.8);
    -webkit-transform: translateY(0) scale(0.8, 0.8);
    transform: translateY(0) scale(0.8, 0.8);
    -moz-transition-property: opacity, -moz-transform;
    -o-transition-property: opacity, -o-transform;
    -webkit-transition-property: opacity, -webkit-transform;
    transition-property: opacity, transform;
    -moz-transition-duration: 0.25s;
    -o-transition-duration: 0.25s;
    -webkit-transition-duration: 0.25s;
    transition-duration: 0.25s;
    -moz-transition-delay: 0.1s;
    -o-transition-delay: 0.1s;
    -webkit-transition-delay: 0.1s;
    transition-delay: 0.1s;
}
.modal-body h3.title {
    font-weight: 700;
    font-size: clamp(30px, 3.1vw, 60px);
    display: block;
    margin: 0 0 30px 0;
}
.modal-body .date,
.modal-body .location {
    font-size: 18px;
    font-weight: 500;
    display: flex;
    align-items: center;
}
.modal-body .date .icon,
.modal-body .location .icon{
    margin-right: 8px;
}
.community-modal-with-image .modal-inset,
.event-modal-with-image .modal-inset{
    padding: 0;
}
.community-modal-with-image .modal-inset .modal-body,
.event-modal-with-image .modal-inset .modal-body{
    padding: 60px;
}
.main-map{
    background-image: url("../images/map.webp");
    background-repeat: no-repeat;
    background-position: center center;
    position: relative;
    margin-bottom: 30px;
}
.main-map .info{
    width: 100%;
    text-align: center;
    color: #fff;
    font-weight: 600;
    font-size: clamp(17px, 2vw, 22px);
    padding: 0 30px;
}
.main-map .info a{
    text-decoration: none;
}
.main-map .link-to-map a{
    font-size: 15px;
    display: table;
    background: #fff;
    margin: auto;
    padding: 5px 25px;
    border-radius: 10px;
    color: #717171;
}
.map-marker-bu {
    text-align: center;
}

/* Сам маркер */
.map-marker-bu img {
    width: 100%;
    max-width: clamp(120px, 12vw, 190px);      /* ограничение по ширине */
    animation: pulseMarker 2.2s ease-in-out infinite; /* бесконечная анимация */
    transform-origin: center center;
}
.contact-btn-links .how-to-get-btn{
    display: flex;
    height: clamp(76px, 6vw, 100px);
    border-radius: 50px;
    background: #E2E9F0;
    font-size: clamp(22px, 2vw, 32px);
    font-weight: 700;
    text-decoration: none;
    text-transform: uppercase;
    color: #000;
    align-items: center;
    justify-content: center;
    margin-bottom: 15px;
    line-height: 1;
}
.contact-btn-links .whatsapp-button{
    background: #0FBD05;
    color: #fff;
    height: clamp(76px, 6vw, 100px);
    display: flex;
    font-size: clamp(22px, 2vw, 32px);
    font-weight: 700;
    border-radius: 50px;
    text-decoration: none;
    align-items: center;
    justify-content: center;
    line-height: 1;
    gap: 10px;
    text-transform: uppercase;
}
.contact-btn-links .phone-button{
    background: linear-gradient(to right, #FF6600, #FF9D00);
    color: #fff;
    height: clamp(76px, 6vw, 100px);
    display: flex;
    font-size: clamp(22px, 2vw, 32px);
    font-weight: 700;
    border-radius: 50px;
    text-decoration: none;
    align-items: center;
    justify-content: center;
    text-transform: uppercase;
    line-height: 1;
}
.main-page{
    padding-bottom: 30px;
}
.main-page-simple-gallery{
    margin-bottom: 15px;
}
.main-page-simple-gallery .swiper-slide{
    aspect-ratio: 1/1;
    overflow: hidden;
}
.main-page-simple-gallery .swiper-slide a{
    display: flex;
    aspect-ratio: 1/1;
    overflow: hidden;
    justify-content: center;
    align-items: center;
}
.main-page-simple-gallery .swiper-slide a img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.main-page-simple-gallery .btn-prev,
.main-page-simple-gallery .btn-next {
    background: #000;
    width: 44px;
    height: 44px;
    border-radius: 560%;
    padding: 0;
    margin: 0;
    line-height: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}
.main-page-simple-gallery .btn-prev svg,
.main-page-simple-gallery .btn-next svg{
    height: 23px;
}

/* Анимация пульса */
@keyframes pulseMarker {
    0%   { transform: scale(1); }
    50%  { transform: scale(0.92); }
    100% { transform: scale(1); }
}
.mobile-nav{
    position: fixed;
    height: 100vh;
    width: 100%;
    top: 0;
    left: -100%;
    background: #fff;
    transition: left 0.3s ease;
    z-index: 999;
}
.mobile-nav.open{
    left: 0;
}
.close-mobile-menu{
    position: absolute;
    top: 30px;
    right: 30px;
    cursor: pointer;
}
.mobile-nav .inner{
    padding-top: 70px;
    display: table;
    margin: auto;
}
.mobile-nav .inner .logo{
    display: block;
    line-height: 0;
}
.mobile-nav .inner .logo img{
    max-height: 52px;
    width: auto;
}
.mobile-main-menu ul{
    display: flex;
    flex-direction: column;
    margin-top: 40px;
}
.mobile-main-menu ul li{
    padding: 0;
}
.mobile-main-menu ul li a{
    padding: 15px 0;
    font-size: 16px;
}
.mobile-nav .inner .whatsapp-button-medium{
    margin-top: 30px;
}
.mobile-nav .inner .phone-button{
    background: linear-gradient(to right, #FF6600, #FF9D00);
    color: #fff;
    height: 56px;
    display: flex;
    font-size: 20px;
    font-weight: 700;
    border-radius: 32px;
    text-decoration: none;
    text-transform: uppercase;
    align-items: center;
    padding: 0 40px;
    margin-top: 15px;
    justify-content: center;
    line-height: 0;
}
.mobile-nav .inner .app-buttons-gray{
    flex-direction: column;
    margin-top: 30px;
}
.mobile-nav .inner .app-buttons-gray a{
    background: #E6EEF1;
}
.mobile-nav .inner .app-buttons-gray a:hover{
    background: #000;
}

.quiz-modal .modal-inset{
    background: #F97106;
    color: #fff;
}
.quiz-modal .modal-inset .button.close{
    opacity: 1;
}
.quiz-modal .modal-inset .button.close path{
    stroke: #fff;
}

.quiz{
    position: relative;
}
.quiz .step-body {
    position: relative;
}
.quiz .step-bg {
    /*right: -60px;*/
    /*top: -60px;*/
    /*position: absolute;*/
    position: relative;
}
.quiz .step-bg::before {
    position: absolute;
    content: "";
    top: -80px;
    right: -60px;
    height: calc(100% + 120px);
    width: calc(100% + 60px);
    background-repeat: no-repeat;
    background-position: center center;
    background-size: auto 100%;
    z-index: -1;
}
.quiz .step-metrics .step-bg::before {
   background-image: url("../images/quiz/step-metrics.webp");
}

.quiz .step {
    display: none;
}

.quiz .step.active {
    display: block;
}

.quiz .answer {
    display: block;
    padding: 6px 0;
}
.quiz .answers-group {
    display: flex;
    flex-direction: column;
    gap: 15px;
}
.quiz .radio-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 18px;
    border: 1px solid #fff;
    border-radius: 45px;
    cursor: pointer;
    user-select: none;
    transition: background .25s, border-color .25s, color .25s;
}

/* Прячем input */
.quiz .radio-item input {
    display: none;
}

/* Круг */
.quiz .radio-circle {
    width: 45px;
    height: 45px;
    border: 1px solid #fff;
    border-radius: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    transition: background .25s, border-color .25s, transform .25s, opacity .25s;
    flex-shrink: 0;
}

/* Галочка */
.quiz .radio-circle::after {
    content: "✔";
    font-size: 35px;
    color: #F97106;
    opacity: 0;
    transform: scale(0.5);
    transition: opacity .25s, transform .25s;
}

/* Текст */
.quiz .radio-text {
    font-size: clamp(16px, 1.5vw, 20px);
    color: #fff;
    transition: color .25s;
}
.quiz .radio-item:hover .radio-circle {
    background: #fff;
}
.quiz .radio-item:hover .radio-circle::after {
    opacity: 1;
    transform: scale(1);
}
.quiz .radio-item:has(input:checked) {
    background: #fff;
    border-color: #fff;
}
.quiz .radio-item:has(input:checked) .radio-text {
    color: #F97106;
}
.quiz .radio-item:has(input:checked) .radio-circle {
    background: #fff;
    border-color: #F97106;
}
.quiz .radio-item:has(input:checked) .radio-circle::after {
    opacity: 1;
    transform: scale(1);
}
.quiz .group-inputs {
    display: flex;
    gap: 20px;
}
.quiz .form-metrics label,
.quiz .form-metrics .delimiter {
    font-size: clamp(20px, 3vw, 27px);
}
.quiz .form-metrics .delimiter {
    font-size: 60px;
    line-height: 1;
    padding-bottom: 10px;
    font-weight: 500;
}
.quiz .form-metrics .form-group {
    display: flex;
    flex-direction: column;
    gap: 12px;
    justify-content: flex-end;
    align-items: center;
    padding: 0;
}
.quiz .form-metrics .form-group label {
    text-align: center;
}
.quiz .form-metrics input {
    background: #fff;
    font-size: clamp(30px, 4vw, 50px);
    color: #000;
    border-radius: 20px;
    padding: 10px;
    width: 200px;
    text-align: center;
}
.quiz .form-metrics h3 {
    font-size: clamp(20px, 3vw, 27px);
    font-weight: 400;
}
.quiz .form-metrics .group-radio {
    display: flex;
    flex-direction: column;
    gap: 15px;
}
.quiz .step-program_result .step-header h2{
    font-size: 30px;
    font-style: italic;
    text-align: center;
}
.quiz .step-program_result .step-header h2 strong{
    font-style: normal;
    color: #fff;
}
.quiz .step-program_result .program-loader{
    background: #fff;
    padding: 25px;
    display: table;
    margin: auto;
    border-radius: 50%;
    animation: spin-program-loader 1s linear infinite;
    line-height: 0;
}
@keyframes spin-program-loader {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}
.quiz .step-program_result .program-loader svg{
    width: 170px;
    height: 170px;
}
.quiz .step-program_result .program-loader-box .loader-text{
    text-align: center;
    padding-top: 30px;
    font-size: 17px;
    font-weight: 500;
    text-transform: uppercase;
}
.quiz .quiz-buttons {
    margin-top: 50px;
    display: flex;
    gap: 15px;
    justify-content: center;
}
.quiz .quiz-btn {
    display: flex;
    gap: 10px;
    align-items: center;
    color: #fff;
    padding: 20px 30px;
    border-radius: 32px;
    cursor: pointer;
    font-size: 16px;
    border: 1px solid #fff;
    font-weight: 500;
    text-transform: uppercase;
}
.quiz .quiz-btn .arrow {
    position: relative;
    display: inline-block;
    width: 20px;
    height: 1px;
    background-color: #fff;
    margin-left: 12px;
    transition: width 0.3s ease-in-out;
}
.quiz .quiz-btn:hover .arrow {
    width: 30px;
}
.quiz .quiz-btn .arrow::after {
    content: '';
    position: absolute;
    top: 50%;
    right: 0;
    width: 12px;
    height: 12px;
    border-top: 1px solid #fff;
    border-right: 1px solid #fff;
    transform: translateY(-50%) rotate(45deg);
}
.quiz .quiz-btn-prev .arrow {
    transform: rotate(180deg);
}
.quiz .quiz-btn .arrow {
    position: relative;
    display: inline-block;
    width: 20px;
    height: 1px;
    background-color: #fff;
    margin-left: 12px;
    transition: width 0.2s ease-in-out;
}
.quiz .quiz-btn-next {
    background: #fff;
    color: #F97106;
}
.quiz .quiz-btn-next .arrow {
    background-color: #F97106;
}
.quiz .quiz-btn-next .arrow::after {
    border-top: 1px solid #F97106;
    border-right: 1px solid #F97106;
}
.quiz .step-header{
    display: flex;
    gap: 40px;
    align-items: center;
    justify-content: center;
    margin-bottom: 50px;
}
.quiz .step-header .step-number{
    font-size: clamp(30px, 7vw, 100px);
    font-weight: 700;
    font-style: italic;
    line-height: 1;
}
.quiz .step-header .step-number span{
    font-style: italic;
    color: transparent;
    line-height: 1;
    -webkit-text-stroke-width: 1px;
    -webkit-text-stroke-color: white;
    text-stroke-width: 1px;
    text-stroke-color: white;
}
.quiz .step-header h2{
    font-size: clamp(24px, 3vw, 45px);
    font-weight: 700;
    margin: 0;
    line-height: 1;
}
.quiz .step-header h2 strong{
    font-weight: 700;
}
.quiz .step-header .note{
    font-size: clamp(17px, 1.3vw, 20px);
    font-weight: 600;
    margin-top: 10px;
}
.quiz .step-program_result .program-result .swiper-slide{
    display: flex;
    height: auto;
    width: 275px;
}
.quiz .step-program_result .program-result .week-block{
    background: #000;
    color: #fff;
    border-radius: 30px;
    padding: 20px;
}
.quiz .step-program_result .program-result .week-block .week-title{
    font-size: 24px;
    font-weight: 800;
    text-transform: uppercase;
    text-align: center;
    color: var(--primary);
    margin-bottom: 20px;
}
.quiz .step-program_result .program-result .week-block .description{
    font-size: 12px;
    margin-bottom: 15px;
}
.quiz .step-program_result .program-result .week-block .week-trainings{
    display: flex;
    flex-direction: column;
    gap: 20px;
}
.quiz .step-program_result .program-result .week-block .week-trainings .training-item{
    display: flex;
    gap: 20px;
    align-items: center;
}
.quiz .step-program_result .program-result .week-block .training-image img{
    max-width: 50px;
}
.quiz .step-program_result .program-result .week-block .training-title{
    font-size: clamp(16px, 1.4vw, 24px);
    font-weight: 700;
    text-transform: uppercase;
}
.quiz-contact-form{
    background: #fff;
    border-radius: 22px;
    color: #000;
    display: block;
    margin: auto;
    padding: 30px;
    max-width: 870px;
}
.quiz-contact-form .form-title{
    font-size: clamp(18px, 2.5vw, 30px);
    font-weight: 600;
    text-align: center;
    margin-bottom: 30px;
}
.quiz-contact-form .form-title .italic{
    display: block;
}
.quiz-contact-form form{
    display: table;
    max-width: 650px;
    margin: auto;
}
.quiz-contact-form form .form-group{
    margin-bottom: 15px;
}
.quiz-contact-form form .form-group label{
    display: block;
    font-size: 15px;
    margin-bottom: 5px;
}
.quiz-contact-form form .form-group .form-control{
    border-radius: 10px;
    border: 1px solid #D9D9D9;
    font-size: clamp(18px, 2.5vw, 22px);
    padding: clamp(10px, 2vw, 15px);
    width: 100%;
}
.quiz-contact-form form .form-button-submit {
    margin-top: 10px;
    font-size: clamp(18px, 2.5vw, 23px);
}
.quiz-footer{
    display: block;
    margin: auto;
    padding-top: 40px;
    max-width: 870px;
}
.quiz-footer .title{
    margin-bottom: 10px;
    text-align: center;
}
.quiz-footer .apps-row{
    gap: 20px;
    margin-left: 0;
    margin-right: 0;
}
.quiz-footer .apps-row > div{
    padding: 0;
}
.quiz-footer .app-button-dark .store-btn{
    padding: 10px 20px;
}
.quiz-footer .app-button-dark .store-btn svg{
    height: 26px;
}
.quiz-footer .button-col{
    justify-content: flex-end;
    display: flex;
    flex-direction: column;
}
.quiz-footer .btn-download-program{
    display: inline-flex;
    background: #fff;
    height: 50px;
    border-radius: 25px;
    color: #000;
    text-transform: uppercase;
    font-size: 17px;
    font-weight: 700;
    padding: 0 30px;
    margin-left: 20px;
    margin-top: 15px;
    cursor: pointer;
    position: relative;
    align-items: center;
}
.quiz-footer .btn-download-program::before{
    position: absolute;
    content: "";
    top: 0;
    left: -25px;
    height: 100%;
    width: 1px;
    background: #fff;
}
@-webkit-keyframes modalComeIn {
    0% {
        visibility: hidden;
        opacity: 0;
        -moz-transform: scale(0.8, 0.8);
        -ms-transform: scale(0.8, 0.8);
        -webkit-transform: scale(0.8, 0.8);
        transform: scale(0.8, 0.8);
    }
    65.5% {
        -moz-transform: scale(1.03, 1.03);
        -ms-transform: scale(1.03, 1.03);
        -webkit-transform: scale(1.03, 1.03);
        transform: scale(1.03, 1.03);
    }
    100% {
        visibility: visible;
        opacity: 1;
        -moz-transform: scale(1, 1);
        -ms-transform: scale(1, 1);
        -webkit-transform: scale(1, 1);
        transform: scale(1, 1);
    }
}
@-moz-keyframes modalComeIn {
    0% {
        visibility: hidden;
        opacity: 0;
        -moz-transform: scale(0.8, 0.8);
        -ms-transform: scale(0.8, 0.8);
        -webkit-transform: scale(0.8, 0.8);
        transform: scale(0.8, 0.8);
    }
    65.5% {
        -moz-transform: scale(1.03, 1.03);
        -ms-transform: scale(1.03, 1.03);
        -webkit-transform: scale(1.03, 1.03);
        transform: scale(1.03, 1.03);
    }
    100% {
        visibility: visible;
        opacity: 1;
        -moz-transform: scale(1, 1);
        -ms-transform: scale(1, 1);
        -webkit-transform: scale(1, 1);
        transform: scale(1, 1);
    }
}
@keyframes modalComeIn {
    0% {
        visibility: hidden;
        opacity: 0;
        -moz-transform: scale(0.8, 0.8);
        -ms-transform: scale(0.8, 0.8);
        -webkit-transform: scale(0.8, 0.8);
        transform: scale(0.8, 0.8);
    }
    65.5% {
        -moz-transform: scale(1.03, 1.03);
        -ms-transform: scale(1.03, 1.03);
        -webkit-transform: scale(1.03, 1.03);
        transform: scale(1.03, 1.03);
    }
    100% {
        visibility: visible;
        opacity: 1;
        -moz-transform: scale(1, 1);
        -ms-transform: scale(1, 1);
        -webkit-transform: scale(1, 1);
        transform: scale(1, 1);
    }
}
@-webkit-keyframes modalHeadOut {
    0% {
        visibility: visible;
        opacity: 1;
        -moz-transform: translateY(0) scale(1, 1);
        -ms-transform: translateY(0) scale(1, 1);
        -webkit-transform: translateY(0) scale(1, 1);
        transform: translateY(0) scale(1, 1);
    }
    100% {
        visibility: hidden;
        opacity: 0;
        -moz-transform: translateY(35px) scale(0.97, 0.97);
        -ms-transform: translateY(35px) scale(0.97, 0.97);
        -webkit-transform: translateY(35px) scale(0.97, 0.97);
        transform: translateY(35px) scale(0.97, 0.97);
    }
}
@-moz-keyframes modalHeadOut {
    0% {
        visibility: visible;
        opacity: 1;
        -moz-transform: translateY(0) scale(1, 1);
        -ms-transform: translateY(0) scale(1, 1);
        -webkit-transform: translateY(0) scale(1, 1);
        transform: translateY(0) scale(1, 1);
    }
    100% {
        visibility: hidden;
        opacity: 0;
        -moz-transform: translateY(35px) scale(0.97, 0.97);
        -ms-transform: translateY(35px) scale(0.97, 0.97);
        -webkit-transform: translateY(35px) scale(0.97, 0.97);
        transform: translateY(35px) scale(0.97, 0.97);
    }
}
@keyframes modalHeadOut {
    0% {
        visibility: visible;
        opacity: 1;
        -moz-transform: translateY(0) scale(1, 1);
        -ms-transform: translateY(0) scale(1, 1);
        -webkit-transform: translateY(0) scale(1, 1);
        transform: translateY(0) scale(1, 1);
    }
    100% {
        visibility: hidden;
        opacity: 0;
        -moz-transform: translateY(35px) scale(0.97, 0.97);
        -ms-transform: translateY(35px) scale(0.97, 0.97);
        -webkit-transform: translateY(35px) scale(0.97, 0.97);
        transform: translateY(35px) scale(0.97, 0.97);
    }
}
.form{
    position: relative;
}
.process-message{
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    background: rgba(255, 255, 255, 0.9);
    width: 100%;
    display: none;
}
.success-message {
    position: absolute;
    top: 0;
    left: 0;
    display: none;
    height: 100%;
    z-index: 1;
    width: 100%;
}
.success-message .success-message-wrapper {
    background: rgb(255, 255, 255);
    display: flex;
    height: 100%;
    width: 100%;
    justify-content: center;
    align-items: center;
    text-align: center;
    padding: 40px;
    font-size: 18px;
    color: #4f6682;
}

.loader {
    position: absolute;
    top: calc(50% - 82px);
    left: calc(50% - 82px);
    width: 164px;
    height: 164px;
    border-radius: 50%;
    perspective: 800px;
}

.loader .inner {
    position: absolute;
    box-sizing: border-box;
    width: 100%;
    height: 100%;
    border-radius: 50%;
}

.loader .inner.one {
    left: 0%;
    top: 0%;
    animation: rotate-one 1s linear infinite;
    border-bottom: 3px solid #FF6600;
}

.loader .inner.two {
    right: 0%;
    top: 0%;
    animation: rotate-two 1s linear infinite;
    border-right: 3px solid #FF6600;
}

.loader .inner.three {
    right: 0%;
    bottom: 0%;
    animation: rotate-three 1s linear infinite;
    border-top: 3px solid #FF9D00;
}

@keyframes rotate-one {
    0% {
        transform: rotateX(35deg) rotateY(-45deg) rotateZ(0deg);
    }
    100% {
        transform: rotateX(35deg) rotateY(-45deg) rotateZ(360deg);
    }
}

@keyframes rotate-two {
    0% {
        transform: rotateX(50deg) rotateY(10deg) rotateZ(0deg);
    }
    100% {
        transform: rotateX(50deg) rotateY(10deg) rotateZ(360deg);
    }
}

@keyframes rotate-three {
    0% {
        transform: rotateX(35deg) rotateY(55deg) rotateZ(0deg);
    }
    100% {
        transform: rotateX(35deg) rotateY(55deg) rotateZ(360deg);
    }
}
