@import "../fonts/Montserrat/stylesheet.css";
@import "lightgallery.min.css";

:root {
    --dark : #232323;
    --blue : #2B4387;
    --red : #E14924;
    --t : #232323;
    --gt : #929292;
}
html * { max-height: 1000000px; }
* { -webkit-text-size-adjust: none; margin: 0; padding: 0; box-sizing: border-box; outline: none; }
html, body { font-family: "Montserrat", Arial, sans-serif; font-size: 14px; scroll-behavior: smooth; }
li { list-style: none; }
img { display: block; height: auto; max-width: 100%; }
a img { border:none; }
a { text-decoration: none; color: inherit; }
input, select, button, textarea { outline:none;
    font-family: "Montserrat", Arial, sans-serif; font-size: 14px;
    /*-moz-appearance:none;-webkit-border-radius: 0; -moz-border-radius: 0; -webkit-appearance: none;*/
}
input[type=file], button, input[type="submit"],
input[type=file]::-webkit-file-upload-button { cursor: pointer; }
.container { max-width: 1210px; width: 100%; padding: 0 20px; margin: 0 auto; }
body { padding-top: 60px; }

h4 { font-size: 36px; line-height: 1.1; font-weight: 800; }
h4.title { }
h4.title span { z-index: 1; display: inline-block; position: relative;  line-height: 1; }
h4.title span:before { content: ""; height: 10px; position: absolute; bottom: -1px;
    width: calc(100% + 40px); left: -20px; background: var(--red); z-index: -1; }

.plug { display: flex; position: fixed; flex-direction: column; top: 0; left: 0;
    width: 100%; height: 100%; align-items: center; justify-content: center;
    z-index: 1000; background: #FFF; text-align: center; }
.plug h2 { font-size: 42px; color: var(--blue); }
.plug p { font-size: 22px; color: var(--red); margin-top: 24px; font-weight: 600; }

header { box-shadow: 0 0 10px 0 rgba(0,0,0,.2); z-index: 10; position: fixed;
    top: 0; left: 0; width: 100%; background: #FFF; padding: 0 20px; }
.header { display: flex; justify-content: space-between; align-items: center; }
.logo { display: flex; align-items: center; flex: 0 0 auto; }
.main_logo { display: flex; align-items: center; font-weight: 600; font-size: 16px; text-transform: uppercase; }
.main_logo img:first-child { height: 50px; }
.main_logo img:nth-child(2) { display: none; }
.kpfu_logo { margin-left: 32px; position: relative; }
.kpfu_logo:before { content: ""; height: 30px; width: 1px; background: var(--gt);
    position: absolute; top: 0; bottom: 0; margin: auto; left: -16px; }
.kpfu_logo img:first-child { height: 36px; }
.kpfu_logo img:nth-child(2) { display: none; }

nav { display: flex; align-items: center; flex: 1 1 auto; }

nav > ul { flex: 1 1 auto; display: flex; align-items: center; justify-content: flex-end; margin: 0 -16px; }
nav.h_w_btn > ul {  justify-content: center; }
nav ul li {font-size: 18px; font-weight: 500;  }
nav ul li a { background: #FFF; transition: .3s; display: block; padding: 24px 16px;  }
nav ul li:hover > a { background: var(--blue); color: #FFF; }
.menu-item-has-children { position: relative; }
.sub-menu { position: absolute; top: 100%; left: 0; display: none; }
nav ul li > ul { min-width: 100%; box-shadow: 0 2px 7px 0 rgba(0,0,0,.2); }
nav ul li > ul li { min-width: 100%; }
nav ul li > ul li a { padding: 10px 16px; font-size: 16px; white-space: nowrap; }

nav ul li:hover a + ul { display: block; }
.anchor { transform: translateY(-100px); }
main { display: flex; align-items: flex-start;
    background: url(../img/main_full_bg.jpg) no-repeat 50% 15% / cover; min-height: 100vh; }
.main { padding: 120px 0; }
.main h1 span { display: inline-block; background: var(--red); color: #FFF;
    margin: 6px 0; padding: 6px 20px; font-size: 48px; }

#breadcrumbs { padding: 16px 0; color: var(--t); }
/*#breadcrumbs + * { padding-top: 0!important; }*/
#breadcrumbs > span { display: flex; font-size: 13px; }
#breadcrumbs > span span a { position: relative; color: var(--gt); }
/*#breadcrumbs p a:after { content: "/"; display: block; pointer-events: none;*/
/*    position: absolute; right: -10px; top: 1px; bottom: 0; margin: auto; color: var(--gt) !important; }*/
#breadcrumbs > span span a:hover { color: var(--red); }
#breadcrumbs > span span { color: var(--t); }

.input {}
.input + .input { margin-top: 14px; }
.input span.placeholder { display: block; font-weight: 500; font-size: 16px; margin-bottom: 6px; }
.input span.description { display: block; font-weight: 500; font-size: 13px; margin-top: 4px; }
.input span.description a { color: var(--red); }
.input span.description a:hover { text-decoration: underline; }
.input input, .input textarea { width: 100%; border: 1px solid #AAA; display: block; }
.input input { padding: 0 16px; height: 44px; font-size: 16px; }
.input textarea { padding: 8px 16px; min-height: 112px; line-height: 1.5; resize: vertical; }
.input input:focus, .input textarea:focus { border-color: var(--blue); }
.input + .btn,.error_text + .btn { margin-top: 24px; }
#add_project input[type="file"] { text-align: center; }
.checkbox { display: flex; align-items: flex-start; }
.checkbox input { display: none; }
.checkbox span { width: 16px; height: 16px; border: 1px solid var(--gt); flex: 0 0 auto; margin-right: 8px; }
.checkbox input:checked + span { border-color: var(--blue);
    background: url(../img/checkbox_icon.png) no-repeat 50% 50% / 20px 20px; }

.check_group { padding: 24px 0; }
.check_group p { margin-bottom: 10px; }
.check_group p b { font-weight: 600; }

.register_block { display: none; }
.error_text { display: none; margin-top: 24px!important; background: rgba(208,40,39, .4); padding: 16px; }
.success_text { display: none; margin-top: 24px!important;  background: rgba(64,210,37,.4); padding: 16px; }

.form { position: relative; }
.form > p a { color: var(--red); }
.form > p a:hover { text-decoration: underline; }
.loader { display: none; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: rgba(255,255,255,.7); }
.loader:before { content: ""; width: 100px; height: 100px; position: absolute; top: 0; left: 0; right: 0; bottom: 0;
    margin: auto; background: url(../img/loader.svg) no-repeat center / contain; }

.title_btn { font-size: 16px; color: var(--red); line-height: 1; margin-top: -8px; display: inline-flex;  }
.title_btn:hover { text-decoration: underline; }

.btn { height: 52px; display: inline-flex; align-items: center; justify-content: center;
    font-weight: 700; font-size: 15px; text-transform: uppercase; padding: 0 24px; color: #FFF;
    background: var(--blue); transition: .3s; letter-spacing: .4px; border: none; }
.btn:hover { background: var(--red); }
.btn_group { display: flex; margin: 0 -8px; flex-wrap: wrap; }
.btn_group.c { justify-content: center; }
.btn_group .btn { margin: 8px; }

.main_slider .slick-track { display: flex; }
.main_slider .slick-track .slick-slide { display: flex; height: auto;}
.main_slide { display: flex!important; }
.main_slide_text { flex: 1 1 auto; display: flex; justify-content: flex-end; z-index: 2;
    background: #F2F2F2; align-items: center; padding: 120px 60px 200px 20px; position: relative; }
.main_slide_text:after { content: ""; display: block; position: absolute; top: 0; bottom: 0; height: 100%; width: 150px;
    left: 100%; background: #F2F2F2; background: linear-gradient(90deg, rgb(242, 242, 242) 5%, rgba(0, 0, 0, 0) 100%); }
.main_slide_text_box { max-width: 480px; }
.main_slide_text_box h3 { color: var(--blue); font-size: 46px; font-weight: 800; line-height: 1.05; margin-bottom: 12px; }
.main_slide_text_box p { font-size: 16px; line-height: 1.5; font-weight: 500; }
.main_slide_text_box .btn { margin-top: 24px; }
.main_slide_img { width: 56%; flex: 0 0 auto; position: relative; }
.main_slide_img img { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; }
.main_slider .slick-next,.main_slider .slick-prev { position: absolute; bottom: 40px; width: 52px; height: 52px;
    background: var(--red); border: none; font-size: 0; }
.main_slider .slick-next { left: calc(44% - 468px);
    background: var(--red) url(../img/arrow_next.png) no-repeat 50% 50% / 20px auto; }
.main_slider .slick-prev { left: calc(44% - 540px);
    background: var(--red) url(../img/arrow_prev.png) no-repeat 50% 50% / 20px auto; }


.about_block { padding: 60px 0; }
.about_block h4 { }
.about_box { display: flex; justify-content: space-between; align-items: flex-start; }
.about_text { font-size: 16px; line-height: 1.5; flex: 1 1 auto; margin-right: 40px; }
.about_text h4 { text-align: left; }
.about_text p { margin-top: 8px; }
.about_text .btn_group { margin-top: 16px; }
.about_video { position: relative; width: 48%; flex: 0 0 auto; }
.about_video:before { content: ""; display: block; padding-top: 56.25%; }
.about_video > * { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }

.sections { margin-top: 50px; }
.sections h4 { margin-bottom: 40px; }
.section + .section { margin-top: 40px; }
.section h5 { position: relative; font-size: 28px; font-weight: 800; text-align: center; }
.section h5:before { content: ""; height: 2px; width: 100%; background: #CCC;
    position: absolute; top: 0; bottom: 0; margin: auto; left: 0; }
.section h5 span { background: #FFF; display: inline-block; padding: 0 20px; position: relative; z-index: 2; }
.section_box { display: flex; align-items: center; margin-top: 20px; }
.section_img { max-width: 480px; flex: 0 0 auto; }
.section_body { flex: 1 1 auto; flex-wrap: wrap; display: flex; margin: 0 -4px; }
.section_body p { background: #F2F2F2; margin: 4px; font-weight: 500;
    font-size: 15px; border-radius: 4px; padding: 5px 10px; }

.section:nth-child(2n)  {  }
.section:nth-child(2n) .section_box { flex-direction: row-reverse; }
.section:nth-child(2n) .section_body p { color: var(--blue);  }
.section:nth-child(2n) .section_img { margin-left: 40px; }
.section:nth-child(2n+1) .section_box {  }
.section:nth-child(2n+1) .section_body p { color: var(--red);  }
.section:nth-child(2n+1) .section_img { margin-right: 40px; }

.team_item { display: flex; width: 100%; height: 200px; margin-top: 30px; margin-bottom: 30px; }
.team_item div { flex-grow: 3; }
.team_item img { flex-grow: 1; object-fit: contain;  }
.team_item_button {
	font-family: "Montserrat", Arial, sans-serif;
	font-weight: 700;
	
  padding: 16px 32px;
  text-align: center;
  text-decoration: none;
  display: inline-block;
  font-size: 16px;
  margin: 4px 2px;
  transition-duration: 0.4s;
  cursor: pointer;
  background-color: var(--blue); 
  color: white; 
 border: none; 
}
.team_item_button:hover {
  background-color: var(--red);
  color: white;
	border: none; 
	
}

.page_block { padding: 40px 0; }

.page_box { display: flex; align-items: flex-start; }

.page { font-size: 16px; line-height: 1.5; flex: 1 1 auto; }
.page h4 { margin-bottom: 16px; font-size: 32px; }
.page h2 { line-height: 1.1; margin: 16px 0 6px; font-weight: 700; }
.page h2 strong { font-weight: 700; }
.page p { margin-top: 8px; line-height: 1.5; }
.page p img { display: inline-block; vertical-align: middle; margin: 0 4px; }
.page p b { font-weight: 500; }
.page ul { margin-top: 8px; }
.page ul li { margin-top: 4px; position: relative; padding-left: 24px; }
.page ul li:before { content: ""; width: 6px; height: 6px; position: absolute; top: 9px; left: 7px;
    border-radius: 50%; background: var(--blue); }
.wp-block-gallery { margin-top: 12px; }
.wp-block-image { margin-top: 8px; }


.user_projects_list h6 { font-size: 20px; font-weight: 700; margin-bottom: 8px; }
.user_project { margin-top: 16px; background: rgba(146,146,146,.2); padding: 16px 24px; }
.user_project p { margin-top: 2px; }
.user_project p a { text-decoration: underline; color: var(--red); }
.user_project p a:hover { text-decoration: none; }
.user_projects_list p { font-size: 15px; }
.user_projects_list p b { font-weight: 700; }

.user_project_box { display: flex; align-items: flex-start; margin-top: 10px; }
.user_project_members { flex: 1 1 auto; }
.user_project_member {}
.user_project_member + .user_project_member { margin-top: 8px; }
.user_project_member span { font-size: 14px; font-weight: 700; display: block; }
.user_project_files { margin-left: 20px; white-space: nowrap; flex: 0 0 auto; }
.status { display: inline-flex; padding: 2px 10px; font-size: 12px; font-weight: 500; }
.status.rejected { background: #0D6EFD; color: #FFF; }
.status.accepted { background: #198754; color: #FFF; }

.delete_project { margin-top: 8px; background: var(--red); color: #FFF;
    display: inline-flex; padding: 3px 12px; font-size: 12px; font-weight: 500; }

#add_project { margin-top: 24px; }
#add_project h5 { padding-bottom: 8px; }

.date { display: inline-flex; margin-right: 12px; font-size: 12px; }


.history_gallery { display: flex; flex-wrap: wrap; margin: 24px -8px 0; }
.history_gallery_item { position: relative; flex: 0 0 auto; margin: 8px; width: calc(100% / 3 - 16px); overflow: hidden; }
.history_gallery_item:before { padding-top: 56.25%; content: ""; display: block; }
.history_gallery_item img { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; }
.history_gallery_item a { position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: 2; }

.news_min_box { margin-top: 32px; width: 420px; flex: 0 0 auto; margin-left: 40px; }
h5 { font-size: 20px; font-weight: 700; }
.news_min_item {margin-top: 16px; display: flex; align-items: flex-start; width: 100%; }
.news_min_img { width: 140px; margin-right: 20px; flex: 0 0 auto; position: relative; }
.news_min_img:after { content: ""; padding-top: 72%; display: block; }
.news_min_img img { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; }
.news_min_img a { position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: 2; }
.news_min_body { flex: 1 1 auto; }
.news_min_body h6 { font-size: 16px; font-weight: 700; color: var(--blue); }
.news_min_body h6:hover { color: var(--red); }
.news_min_body > span { font-size: 12px; color: #888; }
.news_min_body p { margin-top: 4px; font-size: 13px; }

.about_block ~ .news_block { background: #F2F2F2; }
.about_block ~ .contacts_block { background: #FFF; }

.news_block { padding: 40px 0; }
.news_prev_list { display: flex; flex-wrap: wrap; margin: 0 -12px; padding-top: 16px; }
.news_prev { width: calc(100% / 3 - 24px); margin: 16px 12px; flex: 0 0 auto; }
.news_prev_img { position: relative; }
.news_prev_img:before { content: ""; padding-top: 56%; display: block; }
.news_prev_img img { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; }
.news_prev_img a { transition: .3s; background: var(--blue); opacity: 0; position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: 2; }
.news_prev_img a:hover { opacity: .2; }
.news_prev_text h6 { transition: .3s; font-size: 20px; line-height: 1.1; font-weight: 700; padding: 8px 0; }
.news_prev_text h6:hover { color: var(--red); }
.news_prev_text > span { display: block; color: var(--gt); font-size: 13px; margin-bottom: 8px; }
.news_prev_text p { font-size: 15px; line-height: 1.5; }


.contacts_block { display: flex; justify-content: flex-end; background: #F2F2F2; }
.contacts { width: 50%; max-width: 605px; padding: 40px 40px 40px 20px; }
.contacts p { font-size: 18px; margin-top: 20px; font-weight: 500; }
.contacts p + p { margin-top: 12px; }
.contacts p span { font-weight: 400; display: block; font-size: 14px; color: #828282; }
.contacts p > a[href*=".pdf"] { font-size: 14px; font-weight: 600; color: var(--blue);
    text-decoration: underline; transition: .3s; }
.contacts p > a[href*=".pdf"]:hover { color: var(--red); }
.rss_box { display: flex; margin: 0 -4px; }
.rss_box li { margin: 4px; }
.rss_box li a { width: 46px; height: 46px; display: block; border-radius: 50%; }
.map { width: 50%; flex: 0 0 auto; min-height: 480px; }

footer { color: #FFF; background: var(--dark); padding: 20px 0; }

.copyright { color: #888; text-align: center; font-size: 14px; }


.mobile_toggle { cursor: pointer; display: none; flex: 0 0 auto; z-index: 18;
    width: 28px; height: 28px; position: relative; overflow: hidden; }
.mobile_toggle span { height: 2px; width: 100%; background: var(--blue); margin: auto;
    display: block; position: absolute; border-radius: 2px; transition: .3s; }
.mobile_toggle span:first-child { top: 5px; }
.mobile_toggle span:last-child { bottom: 5px; }
.mobile_toggle span:nth-child(2) { top: 0; bottom: 0; margin: auto; }
.mobile_toggle.active span:first-child { margin-top: 0; top: 50%; transform: rotate(45deg); }
.mobile_toggle.active span:last-child { margin-bottom: -2px; bottom: 50%; transform: rotate(-45deg);}
.mobile_toggle.active span:nth-child(2) { left: 100%; opacity: 0; }


.is-provider-youtube .wp-block-embed__wrapper:before { content: ""; padding-top: 56.25%; display: block; }
.is-provider-youtube .wp-block-embed__wrapper iframe { width: 100%; height: 100%; position: absolute; top: 0; left: 0; }


/*popup*/
.black_layout { display: none; z-index: 90; position: fixed; top: 0;
    left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, .80); }
.popup_wrapper { display: none; position: absolute; top: 0; left: 0;
    width: 100%; height: 100%; z-index: 95; padding: 0; overflow: auto; }

.popup_inner { display: flex; min-height: 100%; align-items: center; padding: 30px 20px;
    justify-content: center;  }
.popup { background: #FFF; padding: 28px 32px; width: 100%; max-width: 640px;
    position: relative; }
.close_popup { width: 20px; height: 20px; display: block; position: absolute; z-index: 5;
    top: 24px; right: 24px; background: url(../img/close_icon.svg) no-repeat 50% 50% / 22px auto; }

.popup_body { width: 100%; margin: auto; }
.popup_body h4 { font-size: 24px; font-weight: 600; margin-bottom: 20px; }
.popup_body p { }

.feedback_popup { max-width: 480px; }
@media(max-width: 1380px) {
    nav ul li { font-size: 16px; }
}
@media(max-width: 1200px) {
    /*.main_logo img { width: 46px; }*/
    .main_logo span { display: none; }
    .kpfu_logo img:first-child { display: none; }
    .kpfu_logo img:nth-child(2) { display: block; height: 36px; }
}
@media(max-width: 641px) {
    body { padding-top: 30px; }
    h4 { font-size: 32px; }
    .btn { height: 44px; font-size: 13px; }
    .btn_group { margin: 0 -5px; }
    .btn_group .btn { margin: 5px; }
    
    .header { padding: 10px 0; }
    
    
    .main_logo img:first-child { display: none; }
    .main_logo img:nth-child(2) { display: block; height: 40px; }
    
    .kpfu_logo { margin-left: 30px; }
    .kpfu_logo:before { left: -20px; }
    .kpfu_logo img:first-child { display: none; }
    .kpfu_logo img:nth-child(2) { display: block; height: 40px; }
    nav { box-shadow: 0 0 10px 0 rgba(0,0,0,.2);
        padding: 16px 0; text-align: center; display: none; position: absolute;
        top: 100%; left: 0; width: 100%; background: #FFF; }
    nav ul { flex-direction: column; margin: 0; }
    nav ul li { width: 100%; }
    .sub-menu { position: relative; }
    nav ul li a { padding: 12px 16px; font-size: 16px; text-align: center; }
    nav > a.btn { margin: 16px 0 0; }
    .mobile_toggle { margin-left: 20px; display: block; }
    .menu-item-has-children { position: relative; }
    .menu-item-has-children.active > a { background: var(--blue); color: #FFF; }
    .menu-item-has-children:before { content: ""; top: 0; right: 0; position: absolute;
        height: 43px; width: 42px; background: var(--blue) url(../img/dropdown.png) no-repeat 50% 50% / 14px auto; z-index: 2; }
    .menu-item-has-children.active:before { transform: rotate(180deg); }
    nav ul li:hover a + ul { display: none; }
    
    header.active nav { display: block; }
    
    .main_slide { position: relative; }
    .main_slide_text { padding: 100px 20px 160px 20px;
        background: linear-gradient(90deg, rgba(232,231,238,1) 0%, rgba(232,231,238,0.8) 88%, rgba(232,231,238,0.5) 100%); }
    .main_slide_text_box h3 { font-size: 36px; }
    .main_slide_img { width: 100%; position: absolute; height: 100%; top: 0; left: 0; }
    
    .main_slider .slick-next { left: 92px; }
    .main_slider .slick-prev { left: 20px; }
    
    .about_block { padding: 40px 0; }
    .about_box { flex-direction: column; }
    .about_text { margin-right: 0; }
    .about_video { width: 100%; margin-top: 20px; }
    
    .section h5 { font-size: 22px; font-weight: 700; }
    .section_box { flex-direction: column!important; }
    .section_img { margin: auto!important; }
    .section_body { position: relative; z-index: 2; margin-top: 20px; }
    .section_body p { font-size: 14px; }
    
    .news_prev { width: calc(100% - 24px); }
    
    .contacts_block { flex-direction: column; }
    .contacts { width: 100%; padding: 40px 20px 20px; }
    .map { width: 100%; min-height: 50vh; }
    
    
    .page_box { flex-direction: column; }
    .page { font-size: 14px; }
    .page h4 { font-size: 24px; }
    .page h2 { font-size: 20px; }
    .news_min_box { width: 100%; margin-left: 0; margin-top: 40px; }
    
    .history_item { width: calc(100% - 16px); }
    
    .history_gallery_item { width: calc(50% - 16px); }
    
    .user_project_box { flex-direction: column; }
    
    .user_project_files { margin: 6px 0; }
    
}

/* Слайдеры */
.slick-slider{ position: relative;display: block;-moz-box-sizing: border-box;box-sizing: border-box;-webkit-user-select: none;-moz-user-select: none;-ms-user-select: none;user-select: none;-webkit-touch-callout: none;-khtml-user-select: none;-ms-touch-action: pan-y;touch-action: pan-y;-webkit-tap-highlight-color: transparent;}
.slick-list {position: relative;display: block;overflow: hidden;margin: 0;padding: 0;}
.slick-list:focus{outline: none;}
.slick-list.dragging{cursor: hand;}
.slick-slider .slick-track,.slick-slider .slick-list{-webkit-transform: translate3d(0, 0, 0);-moz-transform: translate3d(0, 0, 0);-ms-transform: translate3d(0, 0, 0);-o-transform: translate3d(0, 0, 0);        transform: translate3d(0, 0, 0);}
.slick-track {position: relative;top: 0;left: 0;display: block;}
.slick-track:before,.slick-track:after{display: table; content: '';}
.slick-track:after{clear: both;}
.slick-loading .slick-track{visibility: hidden;}
.slick-slide{display: none;float: left;height: 100%;min-height: 1px;}
[dir='rtl'] .slick-slide{float: right;}
.slick-slide img{display: block;}
.slick-slide.slick-loading img{ display: none;}
.slick-slide.dragging img{pointer-events: none;}
.slick-initialized .slick-slide{display: block;}
.slick-loading .slick-slide{visibility: hidden;}
.slick-vertical .slick-slide{display: block;height: auto;border: 1px solid transparent;}