header{
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: auto;
    padding: 20px 0px;
    z-index: 1000;
    background: var(--dark-bg);
    backdrop-filter: blur(10px);
}
.logo p, .footer_div a.logo p{
    font-family: var(--font-title);
    color: var(--text-dark-title);
    font-size: 24px;
    font-weight: 400;
    text-decoration: none;
}
.logo img{
    height: 44px;
}
.main_menu{
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 40px;
}
.main_menu li{
    list-style: none;
}
.main_menu li a{
    color: #fff;
    font-size: 18px;
}
.menu-item-has-children{
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 5px;
}
.menu-item-has-children::after{
    content: "▾";
    display: block;
    color: #fff;
    padding-top: 3px;
}
.main_menu .sub-menu{
    position: absolute;
    top: 40px;
    background: #fff;
    flex-direction: column;
    align-items: start;
    justify-content: start;
    gap: 10px;
    padding: 10px;
    width: 240px;
    display: none;
    box-shadow: 0px 0px 10px #17324C20;
    z-index: 10;
}
.main_menu .sub-menu.open{
    display: flex;
}
.main_menu .sub-menu li a{
    color: var(--dark-bg);
    transition: .3s;
    display: block;
    width: 100%;
}
.main_menu .sub-menu li a:hover{
    color: var(--main);
}
.main_menu .sub-menu li{
    width: 100%;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--border-line);
}
.main_menu .sub-menu li:last-child{
    border: 0px;
    padding: 0px;
}

/* main */
#main{
    position: relative;
    height: auto;
    min-height: 860px;
    overflow: hidden;
}
#main .container{
    position: relative;
    z-index: 3;
    padding-bottom: 100px;
}
#main .video_bg::before{
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    background: #000;
    opacity: .4;
    z-index: 2;
}
#main .video_bg{
    position: absolute;
    z-index: 1;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}
#main .video_bg video, #main .video_bg img{
    width: 100%;
    height: auto;
    object-fit: cover;
}
#main.full_height .video_bg video,
#main.full_height .video_bg img{
    position: absolute;
    top: -80px;
}
#main h1{
    margin-bottom: 40px;
}

/* about */
.about_img{
    width: 40%;
    height: auto;
    aspect-ratio: .85;
    position: relative;
}
.about_img::before{
    position: absolute;
    z-index: 1;
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    background: #EF7C0F20;
    transform: rotate(5deg);
    top: -5px;
    right: -5px;
}
.dark_section .about_img::before{
    background: #ffffff20;
}
.about_img a, .about_img .swiper{
    width: 100%;
    height: 100%;
    object-fit: cover;
    position: relative;
    z-index: 2;
}
.about_img img{
    width: 100%;
    height: 100%;
    object-fit: cover;
    position: relative;
    z-index: 2;
}
.about_text{
    width: 55%;
}
.about_text_row::before{
    content: "";
    display: block;
    height: 1px;
    width: 100%;
    background: var(--border-line);
    margin-bottom: 20px;
}
.about_text_div{
    width: 45%;
    flex-grow: 1;
    padding: 20px 20px 40px 20px;
    height: auto;
}
.about_text_div p.big_text{
    font-family: var(--font-title);
    font-size: 40px;
    color: var(--main);
    letter-spacing: -1px;
}
.about_text_div:first-child{
    border-right: 1px solid var(--border-line);
}
.about_text_div:nth-child(4){
    border-left: 1px solid var(--border-line);
}
.about_text_div:first-child, .about_text_div:nth-child(2){
    border-bottom: 1px solid var(--border-line);
}
.about_three .about_text_div:nth-child(3){
    border-bottom: 1px solid var(--border-line);
}
.about_three .about_text_div:nth-child(2), .about_three .about_text_div:nth-child(5),
.about_three .about_text_div:nth-child(4){
    border-right: 1px solid var(--border-line);
    border-left: 0;
}
.about_three .about_text_div{
    width: 30%;
}

/* form */
#form .container{
    background: rgb(242,100,34,0.1);
    border-radius: 14px;
    padding: 100px 120px;
    position: relative;
    overflow: hidden;
}
.bg_form{
    position: absolute;
    right: -80px;
    bottom: -8%;
    height: 110%;
    z-index: 1;
}
#form form{
    flex-wrap: wrap;
    position: relative;
    z-index: 2;
}
input,
select{
    width: 30%;
    flex-grow: 1;
    border: 1px solid var(--border-line);
    border-radius: 4px;
    background: transparent;
    height: 49px;
    font-size: 16px;
    padding: 15px 20px;
    transition: .3s;
    backdrop-filter: blur(10px);
    font-family: var(--font-body);
}
input::placeholder{
    color: #000;
}
input:hover, select:hover,
input:active, select:active,
input:focus, select:focus,
.file_input:hover, .file_input:focus{
    outline: none;
    border: 1px solid var(--main);
}
select{
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    padding-right: 30px;
    background: url('../img/icons/arrow_select.svg') no-repeat right 20px center;
    background-size: 9px;
    width: 22%;
}
#form button{
    flex-grow: 1;
    height: 49px;
}
#form h2{
    font-size: 36px;
    font-family: var(--font-title);
    max-width: 800px;
    font-weight: 400;
    letter-spacing: -1px;
}
#form .subtitle{
    margin: 30px 0px 60px 0px;
}
#form.dark_section .container{
    background: rgb(255, 255, 255, .1);
}
.dark_section input::placeholder,
.dark_section select, .dark_section input,
.dark_section .file_input{
    color: #fff;
}
.dark_section select{
    background: url('../img/icons/arrow_select_white.svg') no-repeat right 20px center;
    background-color: #142C4390;
}
.dark_section input, .dark_section .file_input{
    background: #142C4390;
}
.file_input{
    width: 30%;
    flex-grow: 1;
    border: 1px solid var(--border-line);
    border-radius: 4px;
    height: 49px;
    font-size: 16px;
    padding: 15px 20px;
    transition: .3s;
    backdrop-filter: blur(10px);
    font-family: var(--font-body);
    position: relative;
    cursor: pointer;
}
.file_text{
    font-size: 16px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    margin-right: 20px;
}
img.file_icon{
    position: absolute;
    height: 24px;
    width: 24px;
    right: 12px;
}
#form.dark_section img.file_icon{
    filter: invert(1);
}
#form input[name="company"]{
    width: 30%;
}
.wpcf7-form-control-wrap{
    width: 30%;
    flex-grow: 1;
}
.wpcf7-form-control-wrap input,
.wpcf7-form-control-wrap select{
    width: 100%;
}
.wpcf7-form-control[type="submit"]{
    width: 30%;
    flex-grow: 0;
}
.wpcf7-form-control-wrap[data-name="user_company"],
.wpcf7-form-control-wrap[data-name="user_topic"],
.file_input, .wpcf7-form-control{
    width: 30%;
}
.modal_form .wpcf7-form-control-wrap,
.modal_form .wpcf7-form-control-wrap[data-name="user_company"],
.modal_form .wpcf7-form-control-wrap[data-name="user_topic"],
.modal_form .file_input{
    width: 45%;
}
.modal_form select.wpcf7-form-control, .modal_form input.wpcf7-form-control{
    width: 100%;
}
.wpcf7-not-valid input, input.wpcf7-not-valid{
    border: 1px solid #ff0000;
    background: #ff000010;
}

.wpcf7-spinner, .wpcf7-list-item-label,
[data-name="user_file"], .wpcf7-not-valid-tip{
    display: none;
}
.form_check .wpcf7-form-control-wrap{
    width: 22px;
}
.form_check .wpcf7-list-item{
    margin: 0;
}
.wpcf7 form.invalid .wpcf7-response-output, .wpcf7 form.unaccepted .wpcf7-response-output, .wpcf7 form.payment-required .wpcf7-response-output{
    border: 0px !important;
    margin: 10px 0px 0px 0px !important;
    color: #ff0000 !important;
    padding: 0px !important;
    font-style: italic;
}

/* uslugi */
.uslugi_row{
    flex-wrap: wrap;
    row-gap: 40px;
}
.uslugi_row .uslugi_div{
    width: 32%;
    height: auto;
}
.swiper_uslugi .swiper-slide{
    height: auto;
}
.swiper_uslugi .uslugi_div{
    height: 100%;
}
.swiper_uslugi .uslugi_div p {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.uslugi_div img{
    width: 100%;
    height: auto;
    aspect-ratio: 1.65;
    object-fit: cover;
}
.uslugi_btn_row{
    flex-grow: 1;
}

/* about_founder */
#about_founder{
    background: #FFF7F3;
    margin-top: 120px;
    padding: 0;
    position: relative;
    overflow: hidden;
}
#about_founder .container{
    position: relative;
    height: 100%;
    padding: 180px 0px;
}
.founder{
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: auto;
}
.founder img{
    position: absolute;
    z-index: 4;
    bottom: -40px;
}
.founder::before{
    position: absolute;
    height: auto;
    width: 100%;
    content: url("../img/bg_avatar.svg");
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center bottom;
    z-index: 1;
    bottom: 0;
}
.about_founder_text{
    width: 40%;
    margin-left: 45%;
}

/* logo_partners */
.logo_bg{
    position: absolute;
    right: -150px;
    bottom: 0%;
    height: 100%;
    z-index: 1;
}
#logo_partners .container{
    padding-bottom: 120px;
    border-bottom: 1px solid var(--dark-border-line);
}
#logo_partners img{
    filter: grayscale(1) brightness(1000);
    height: 90px;
}
#logo_partners img:nth-child(4){
    filter: invert(1);
}

/* festival_text */
.festival_date{
    margin-top: 5px;
}
.dark_section .festival_date p{
    color: var(--text-dark);
}
#archive_festival .city{
    color: var(--main);
}
p.city{
    display: flex;
    align-items: center;
    justify-content: start;
    gap: 10px;
}
p.city::before{
    content: "";
    display: block;
    height: 38px;
    width: 24px;
    background-image: url('../img/icons/marker.svg');
    background-size: contain;
    background-position: center;
    background-repeat: no-repeat;
}
.festival_div img{
    width: 100%;
    aspect-ratio: 1/1;
    height: auto;
}

/* people */
.people_img{
    width: 220px;
    height: auto;
    position: relative;
    overflow: hidden;
    border-radius: 0px 0px 10px 10px;
}
.people_img::before{
    content: "";
    position: absolute;
    height: 100%;
    width: 220px;
    display: block;
    background-image: url("../img/bg_avatar.svg");
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center bottom;
    z-index: 1;
    bottom: -20%;
}
.people_img img{
    position: relative;
    z-index: 2;
    width: 100%;
    height: auto;
}
.people_text p, .people_text h3{
    text-align: center;
    max-width: 300px;
}

/* map */
#map_archive{
    padding: 120px 0px;
    background: linear-gradient(to top, var(--main), var(--dark-bg));
}
.map_container{
    width: 100%;
    position: relative;
}
.map_pin{
    position: absolute;
    height: 60px;
    width: 40px;
    z-index: 3;
    cursor: pointer;
    display: block;
    background-image: url('../img/icons/map_pin.svg');
    background-size: contain;
    background-repeat: no-repeat;
    transition: .3s;
}
.pin-tooltip{
    content: "";
    display: block;
    width: auto;
    height: auto;
    border-radius: 4px;
    background: var(--main);
    padding: 5px 10px;
    position: absolute;
    bottom: -30px;
    white-space: nowrap;
    color: #fff;
    left: 50%;
    transform: translateX(-50%);
}
.map_container_text{
    position: absolute;
    right: 120px;
    bottom: 120px;
    background: rgb(239,124,15,.5);
    backdrop-filter: blur(15px);
    max-width: 520px;
    padding: 40px 30px;
    z-index: 3;
}
.map_container_text .title{
    margin: 0;
}

/* specprojects */
.specprojects_text h3{
    margin-bottom: 5px;
}
.specprojects_div img{
    width: 100%;
    height: auto;
    aspect-ratio: 16/9;
    object-fit: cover;
}
.specprojects_row{
    row-gap: 40px;
}

/* premiy */
.premiy_div img{
    width: 100%;
    aspect-ratio: 1/1;
    height: auto;
    object-fit: cover;
}
#archive .premiy_div{
    width: calc(25% - 20px);
}

/* footer */
footer{
    margin-top: 120px;
    background: var(--dark-bg);
    padding: 60px 0px;
}
.footer_without_margin{
    margin: 0;
    background: #17324C;
}
.footer_div p{
    color: var(--text-dark);
}
.footer_div .logo{
    margin-bottom: 10px;
}
.footer_div .footer_div_cont p{
    font-size: 12px;
    color: #949494;
}
.footer_div .footer_div_cont a,
.footer_div a{
    color: #fff;
}
footer a:hover{
    text-decoration: underline;
}

/* modal */
#open-search{
    background: transparent;
    height: 44px;
    width: 44px;
    cursor: pointer;
}
#open-search img{
    width: 100%;
    height: 100%;
}
.modal{
    display: none;
    align-items: center;
    justify-content: center;
    position: fixed;
    background: rgba(0,0,0,0.6);
    z-index: 9999;
    padding: 20px;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    backdrop-filter: blur(10px);
}
.modal-content{
    background: #fff;
    max-width: 600px;
    border-radius: 14px;
    padding: 24px;
}

/* search-modal */
#search-modal{
    position: fixed;
    top: 0;
    left: 0;
    transform: translate(0, 110%);
    width: 100%;
    height: 100%;
    z-index: 1000;
    transition: .3s;
}
#search-modal.open{
    transform: translate(0, 0%);
}
#close-search{
    cursor: pointer;
    position: absolute;
    right: calc(50% - var(--max-container-width)/2);
    top: 20px;
    background: transparent;
    backdrop-filter: blur(10px);
    height: 44px;
    width: 44px;
}
#search-modal h2{
    width: 100%;
    font-family: var(--font-title);
    font-size: 64px;
    text-align: center;
    font-weight: 400;
    margin-bottom: 40px;
    letter-spacing: -1px;
}
#search-input{
    padding: 15px 20px;
    background: rgb(255,255,255,0.1);
    border-radius: 25px;
    font-size: 18px;
    color: #fff;
    width: 100%;
    border: 0px;
    font-family: var(--font-body);
}
#search-modal .container{
    width: var(--max-container-small);
}
#search-results{
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: start;
    justify-content: start;
    gap: 10px;
    padding: 10px;
}
#search-results ul{
    display: flex;
    flex-direction: column;
    align-items: start;
    justify-content: start;
    gap: 10px;
    padding-left: 20px;
    margin: 0;
}
#search-results li, #search-results li a{
    color: var(--text-dark);
}
#search-results li a:hover{
    color: var(--main);
}

/* team */
.team_row .people_div{
    width: 23%;
}
.team_row{
    row-gap: 40px;
}
.egor_container{
    margin: 60px 0px;
}
.egor_container img{
    width: 66%;
    height: auto;
    object-fit: cover;
}
.egor_text{
    height: auto;
    background: rgb(239,124,15,0.1);
    padding: 60px;
}
.egor_text_title p{
    color: var(--main);
}

/* error */
#error{
    min-height: 90vh;
    position: relative;
    padding: 0;
    overflow: hidden;
}
#error h1{
    font-size: 128px;
    margin-bottom: -20px;
    color: var(--main);
}
#error.thanks h1{
    font-size: 64px;
    text-align: center;
}
#error p{
    font-size: 18px;
    max-width: 600px;
    text-align: center;
}
#error::before{
    content: "";
    position: absolute;
    background-image: url('../img/dark_section_top.svg');
    background-size: cover;
    background-position: bottom;
    background-repeat: no-repeat;
    transform: rotate(180deg);
    bottom: -1px;
    right: 0;
    width: 100%;
    height: auto;
    min-height: 240px;
    z-index: 1;
}
#error .container{
    position: relative;
    z-index: 2;
}

/* archive_specprojects */
#archive_specprojects .specprojects_div{
    width: 48%;
}

/* single_specprojects */
.specprojects_main_img{
    width: 66%;
    height: auto;
}
.specprojects_main_img img{
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.specprojects_main_text_title p{
    color: var(--main);
}
.specprojects_main_text{
    width: 34%;
    height: auto;
    background: rgb(239,124,15,.1);
    padding: 60px;
}
.container_partner{
    margin-bottom: 120px;
}
.container_partner_festival{
    margin-bottom: 0;
}
.container_partner img{
    width: 30%;
    height: auto;
}
.partner_text{
    width: 60%;
}
.container_otz_specprojects{
    padding-top: 120px;
}

/* otz */
.otz_div{
    padding: 30px;
    background: rgb(255,255,255,.1);
}
#otzyv .otz_div, #archive .otz_div{
   background: #EF7C0F20; 
}
#archive .otz_div{
    width: calc(50% - 20px);
}
.otz_title img{
    height: 80px;
    width: auto;
    aspect-ratio: 1/1;
    border-radius: 50%;
}
.otz_text ul{
    padding-left: 20px;
}
.otz_content{
    display: -webkit-box;
    -webkit-line-clamp: 10;
    -webkit-box-orient: vertical;
    overflow: hidden;
    transition: all 0.3s ease;
}
.otz_content p{
    margin-top: 10px;
}
.otz_content.expanded {
    -webkit-line-clamp: initial;
}
.read-more{
    margin-top: 30px;
}

/* top_festival */
#top_festival{
    height: auto;
    width: 100%;
    padding: 0;
    margin-top: 84px;
}
#top_festival img{
    width: 100%;
    height: auto;
    object-fit: cover;
}

/* festival_about */
.festival_about_text{
    width: 100%;
}
.opisanie_festivalya{
    margin-bottom: 20px;
}
.opisanie_festivalya ul{
    padding-left: 20px;
}
.opisanie_festivalya li{
    color: var(--text-dark);
}
.festival_about_text .btn_main{
    margin-top: 60px;
}

/* festival_video */
.video_bg{
    width: 100%;
    position: relative;
    overflow: hidden;
}
.video_bg img{
    width: 100%;
    height: auto;
}
.video_bg span{
    height: 80px;
    width: 80px;
    border-radius: 50%;
    background: #ffffff60;
    backdrop-filter: blur(10px);
    border: 2px solid #fff;
    position: absolute;
    z-index: 2;
    padding-left: 4px;
    background-image: url('../img/icons/triangle.svg');
    background-size: 30%;
    background-position: 30px center;
    background-repeat: no-repeat;
}
.play:before{
    display: none !important;
}
.play{
    height: 80px !important;
    width: 80px !important;
    background: #ffffff60 !important;
    backdrop-filter: blur(10px);
    border: 2px solid #fff;
    background-image: url('../img/icons/triangle.svg') !important;
    background-size: 30% !important;
    background-position: 30px center !important;
    background-repeat: no-repeat !important;
}
.video_bg_banner{
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 1;
}

/* festival_timer */
#festival_timer .container{
    border-radius: 14px;
    position: relative;
    overflow: hidden;
}
#festival_timer .container img{
    position: absolute;
    top: 0;
    right: -5%;
    height: 100%;
    width: auto;
    z-index: 1;
}
.festival_timer_text{
    background-image: url('../img/festival_timer_bg.svg');
    background-size: contain;
    background-position: left;
    background-repeat: no-repeat;
    padding: 100px 120px;
    position: relative;
    z-index: 2;
    width: 100%;
}
.festival_timer_text .title{
    max-width: 460px;
    margin: 0;
}
.count_item span, .separator{
    font-family: var(--font-title);
    font-size: 64px;
    color: var(--text-dark-title);
    font-weight: 400;
    line-height: 1;
}
.count_item .label{
    color: var(--text-dark);
}
.separator{
    margin-bottom: 20px;
}
.festival_timer_text .btn_main{
    margin-top: 20px;
}

/* general_partner_festival */
#general_partner_festival img{
    max-width: 48%;
    width: 100%;
    height: auto;
}

/* uslugi */
.uslugi_text_container{
    width: 55%;
}
.uslugi_text_container ul{
    padding-left: 20px;
}
.uslugi_preim_row {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
}

.uslugi_preim_div {
  flex: 1 1 calc(33.333% - 20px);
  padding: 40px;
  background: #EF7C0F20;
  min-height: 250px;
  position: relative;
  overflow: hidden;
}
.etap_2 .uslugi_preim_div {
  flex: 1 1 calc(50% - 20px);
}
.etap_3 .uslugi_preim_div {
  flex: 1 1 calc(33.333% - 20px);
}
.etap_4 .uslugi_preim_div {
  flex: 1 1 calc(50% - 20px);
}
.etap_5 .uslugi_preim_div,
.etap_6 .uslugi_preim_div {
  flex: 1 1 calc(33.333% - 20px);
}
.uslugi_preim_div p.big_text{
    position: absolute;
    right: 0px;
    bottom: -60px;
    font-family: var(--font-title);
    font-size: 128px;
    color: var(--main);
    opacity: .1;
}
#uslugi_preim span.full_width{
    width: 100%;
    margin-top: 30px;
}
#uslugi_preim span.full_width.full_width_second{
    margin-top: 10px;
}
.btn_container{
    margin-top: 40px;
}
.for_who_row, .what_you_get_row{
    row-gap: 40px;
}
.for_who_div{
    flex-grow: 1;
    width: 45%;
}
.for_who_div img, .what_you_get_row img{
    width: 100%;
    height: auto;
    aspect-ratio: 16/8;
    object-fit: cover;
}
.what_you_get_div{
    flex-grow: 1;
    width: 20%;
}
.general_partner_festival_row img{
    width: 50%;
    height: auto;
    aspect-ratio: 16/8;
    object-fit: cover;
}

/* media_resources */
.media_resources_div{
    width: 25%;
    height: auto;
    aspect-ratio: 16/11;
    background: #fff;
    border: 1px solid #EF7C0F20;
    padding: 20px;
}
.media_resources_div p{
    text-align: center;
}
.media_resources_div img{
    width: 70%;
}

/* swiper_gallery */
.swiper_gallery .swiper-slide {
    position: relative;
    aspect-ratio: 16/9;
    overflow: hidden;
}
.swiper_gallery .swiper-slide a{
    height: 100%;
    width: 100%;
    display: block;
}
.swiper_gallery .swiper-slide::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: var(--bg);
    background-size: cover;
    background-position: center;
    filter: blur(30px);
    transform: scale(1.2);
    z-index: 1;
    opacity: 0.7;
}
.swiper_gallery .swiper-slide img {
    position: relative;
    z-index: 2;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    display: block;
    margin: auto;
    width: 100%;
    height: 100%;
}
.fancybox-wrap .fancybox-image{
    object-fit: contain;
}
.fancybox-skin{
    background: #000 !important;
}

/* modal */
.modal, .modal_sponsor{
    display: none;
    background: rgb(0, 0, 0, 0.8);
    backdrop-filter: blur(5px);
    z-index: 1000;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}
.modal.modal_active, .modal_sponsor.modal_active{
    display: flex;
    align-items: center;
    justify-content: center;
}
.modal_content{
    padding: 40px;
    background: #fff;
    position: relative;
    width: 100%;
    max-width: 720px;
    border-radius: 14px;
}
.modal_sponsor .modal_content{
    max-width: 480px;
    background: var(--dark-bg);
}
.modal_content form,
.modal_content button{
    width: 100%;
}
.modal_content input,
.modal_content select,
.modal_content .file_input{
    width: 45%;
}
.modal_content form{
    margin-top: 20px;
}
img.toggle_modal,
img.toggle_modal_sponsor{
    cursor: pointer;
    position: absolute;
    top: 20px;
    right: 20px;
}
.modal h2{
    font-size: 24px;
}
.modal_sponsor a{
    width: 46%;
}
.modal_sponsor a img{
    width: 100%;
    height: auto;
    aspect-ratio: 1/1;
}
.modal_sponsor_row{
    width: 100%;
}

/* program_festival */
.speakers_row{
    margin: 50px 0px 60px 0px;
    width: 100%;
}
.speaker_card{
    border-radius: 14px;
    padding: 40px;
    background-size: contain;
    background-position: top center;
    background-image: url('../img/speaker_bg.svg');
    width: 32%;
    height: auto;
    background-repeat: no-repeat;
    position: relative;
    overflow: hidden;
}
.speaker_card::before{
    content: "";
    position: absolute;
    display: block;
    width: 100%;
    height: 52%;
    background: #FEF2E7;
    bottom: 0;
    left: 0;
    z-index: 1;
}
.speaker_photo{
    height: 120px;
    width: auto;
    aspect-ratio: 1/1;
    background: var(--main);
    border-radius: 50%;
    overflow: hidden;
    position: relative;
    z-index: 2;
}
.speaker_photo img{
    top: 4px;
    position: absolute;
    width: 85%;
    height: auto;
    object-fit: cover;
}
.talk_title, .time_block_title{
    font-size: 18px;
    font-family: var(--font-title);
    color: var(--text-title);
    position: relative;
    z-index: 2;
}
.time_block_title{
    margin-bottom: 10px;
}
.speaker_name{
    flex-grow: 1;
    position: relative;
    z-index: 2;
}
.schedule_day h3{
    color: var(--main);
    margin-bottom: 40px;
    width: 100%;
}
.schedule_row::after{
    content: "";
    display: block;
    width: 220px;
    height: 1px;
    background: var(--main);
}
.schedule_row{
    margin-bottom: 40px;
}
.schedule_time_block{
    width: 100%;
}
.schedule_row:last-child{
    margin: 0;
}
.special_guest_festival_end{
    padding-top: 60px;
}

/* map_festival */
#map{
    width: 100%;
    height: auto;
    aspect-ratio: 2.5;
}
[class*="ymaps-2"][class*="-ground-pane"] {
  filter: grayscale(1);
  -webkit-filter: grayscale(1);
  -moz-filter: grayscale(1);
  -o-filter: grayscale(1);
}

/* video-grid */
.video-grid{
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    align-items: start;
    justify-content: start;
}
.video-grid .col-xs-12{
    width: calc(50% - 20px);
}
.play:before{
    margin-bottom: 4px;
}

/* search */
#search_page{
    min-height: 80vh;
}
.search_div{
    width: 48%;
    border: 1px solid var(--border-line);
}
.search_div img{
    width: 100%;
    height: auto;
    aspect-ratio: 16/9;
    object-fit: cover;
}
.search_div_text{
    padding: 20px;
}
.search_page_no_result h1{
    text-align: center;
}

/* chat */
.chats{
    position: fixed;
    bottom: 20px;
    right: 20px;
    z-index: 10;
}
.circle_text{
    height: 95%;
    width: 95%;
    animation: circle_text linear 12s infinite;
    position: absolute;
}
@keyframes circle_text{
    0%{
        transform: rotate(0deg);
    }
    100%{
        transform: rotate(360deg);
    }
}
.chats_toggle{
    height: 160px;
    width: auto;
    aspect-ratio: 1;
    border-radius: 50%;
    background: var(--main);
    position: relative;
    box-shadow: 0px 0px 10px rgba(201, 117, 38, 0.4);
    transition: .3s;
    cursor: pointer;
    z-index: 13;
}
.chats_toggle img{
    position: absolute;
    opacity: 1;
    transition: .3s;
}
.chats_toggle p{
    display: none;
    color: #fff;
}
.chats_row{
    position: absolute;
    opacity: 0;
    padding-left: 40px;
    z-index: 11;
}
.chats_row a{
    height: 80px;
    width: auto;
    aspect-ratio: 1/1;
}
.chats_row a img{
    height: 100%;
    width: 100%;
}
.open .chats_row{
    animation: chats_row_open .3s ease forwards;
}
.close .chats_row{
    animation: chats_row_close .3s ease forwards;
}
@keyframes chats_row_open {
    0%{
        transform: translate(0, -300px);
        opacity: 0;
    }
    100%{
        transform: translate(0, -350px);
        opacity: 1;
    }
}
@keyframes chats_row_close {
    0%{
        transform: translate(0, -350px);
        opacity: 1;
    }
    100%{
        transform: translate(0, -300px);
        opacity: 0;
    }
}

/* single_people */
#single_people .people_text{
    width: 50%;
}
#single_people .people_img{
    width: 40%;
    height: auto;
}
.people_text h1{
    margin-bottom: 0px;
}
#single_people .people_img::before{
    width: 100%;
}

/* archive */
#archive, #single_people{
    min-height: 80vh;
}
#archive .people_div{
    width: calc(25% - 20px);
}
#archive .archive_row{
    row-gap: 40px;
}

/* page */
.page_container ul{
    padding-left: 20px;
}
.page_container a{
    text-decoration: underline;
}
.page_container h2{
    font-size: 20px;
    margin-top: 20px;
}
.page_container h3{
    margin-top: 15px;
    font-size: 18px;
}

/* new addons */
.fancybox-inner{
    height: auto !important;
    aspect-ratio: 16/8 !important;
}
body.admin-bar #top_festival {
    margin-top: 50px !important; 
}
.dark_section .wpcf7 form.invalid .wpcf7-response-output{
    color: #fff !important;
}
.wpcf7 form.invalid .wpcf7-response-output{
    color: #000 !important;
}
.wpcf7 form.invalid .wpcf7-response-output::before{
    content: "* ";
    color: #ff0000;
}

.mobile_button_boosty, .secret_menu, .burger,
.schedule_row:last-child::after{
    display: none;
}

.dark_section .caption {
    color: #eeeeee;
}

.grecaptcha-badge {
   display: none !important;
}
