@charset "utf-8";


/* --------------------------------------------------
	Resetting default margin and padding
-------------------------------------------------- */

/* !HTML5 elements
---------------------------------------------------------- */
header, footer, nav, section, aside, article
{ display: block;}

/* !Reseting
---------------------------------------------------------- */
body {
	background: #fff;
	font-family: "Inter", sans-serif;
	color: #000;
	font-size: 14px;
	line-height: 1.5;
	font-weight: 400;
	letter-spacing: 0.02em;
	-webkit-text-size-adjust: none;
}
@media (max-width: 768px) {
body {
	font-size: 10px;
}
}

body, div, pre, p, blockquote, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, form, fieldset, th, td,input,a,textarea,select,span,nav,section,header
{
	margin: 0;
	padding: 0;
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	-ms-box-sizing: border-box;
	-o-box-sizing: border-box;
	box-sizing: border-box;
}
input,
textarea {
	margin: 0;
	font-size: 100%;
	appearance: none;
	-webkit-appearance: none;
	border: none;
	outline: none;
}
label
{ cursor: pointer;}
table
{ border-collapse: collapse; border-spacing: 0; font-size: 100%;}
fieldset, img
{ border: 0;}
img
{ vertical-align: top; max-width: 100%;}
address, caption, cite, code, dfn, em, th, var
{ font-style: normal; font-weight: normal;}
ol, ul
{ list-style: none;}
caption, th
{ text-align: left;}
h1, h2, h3, h4, h5, h6
{ font-size: 100%; font-weight: 500;}
q:after, q:before
{ content:'';}
a, input
{ /* outline: none; */ }
abbr, acronym
{ border: 0;}




/* !Clearfix
---------------------------------------------------------- */
.clearfix {
	display: block;
	min-height: 1%;
}
.clearfix:after {
	clear: both;
	content:".";
	display: block;
	height: 0;
	visibility: hidden;
}
* html .clearfix {
	height: 1%;
	/*\*//*/
	height: auto;
	overflow: hidden;
	/**/
}

/* !Layout
---------------------------------------------------------- */
html { overflow-y: scroll;}
body { }
@media print {
	html,
	html body { *zoom: 0.65;}
}



/* link
------------------------------------------------ */
a {
	color: #000;
	text-decoration:none;
	transition: all 0.3s !important;
	-moz-transition: all 0.3s !important; /* Firefox */
	-webkit-transition: all 0.3s !important; /* Chrome&Safari */
}

a:hover {
	transition: all 0.3s !important;
	-moz-transition: all 0.3s !important; /* Firefox */
	-webkit-transition: all 0.3s !important; /* Chrome&Safari */
}


.op,
.op a,
.op img,
.op input {
	-webkit-transition: opacity 0.3s ease-out;
	-moz-transition: opacity 0.3s ease-out;
	-ms-transition: opacity 0.3s ease-out;
	transition: opacity 0.3s ease-out;
	-webkit-backface-visibility: hidden;
	-webkit-transform-style: preserve-3d;
}
.op:hover,
.op a:hover,
.op:hover img,
.op:hover input {
	opacity: .5;
	-webkit-opacity: .5;
	-moz-opacity: .5;
	filter: alpha(opacity=50);	/* IE lt 8 */
	-ms-filter: "alpha(opacity=50)"; /* IE 8 */
	-webkit-transition: opacity 0.3s ease-out;
	-moz-transition: opacity 0.3s ease-out;
	-ms-transition: opacity 0.3s ease-out;
	transition: opacity 0.3s ease-out;
	-webkit-backface-visibility: hidden;
	-webkit-transform-style: preserve-3d;
}
@media (max-width: 768px) {
.op:hover,
.op a:hover,
.op:hover img,
.op:hover input {
	opacity: 1;
	-webkit-opacity: 1;
	-moz-opacity: 1;
	filter: alpha(opacity=100);	/* IE lt 8 */
	-ms-filter: "alpha(opacity=100)"; /* IE 8 */
}
}



/* !fs
------------------------------------------------ */
.visible-pc {
	display: block !important;
}
.visible-tab {
	display: none !important;
}
.visible-ts {
	display: none !important;
}
.visible-pc-only {
	display: block !important;
}


@media (max-width: 1024px) {
.visible-tab {
	display: block !important;
}
.visible-pc-only {
	display: none!important;
}
}
@media (max-width: 768px) {
.visible-pc {
	display: none !important;
}
.visible-ts {
	display: block !important;
}
}


/* !fonts
------------------------------------------------ */
.fwb {
	font-weight: 700;
}
.fwm {
	font-weight: 500;
}

.vat {
	vertical-align: top !important;
}
.vam {
	vertical-align: middle !important;
}
.tal {
	text-align: left !important;
}
.tac {
	text-align: center !important;
}
.tar {
	text-align: right !important;
}


/* !fc
------------------------------------------------ */



/* html
----------------------------------------------- */
html.html-lock {
}



/* wrapper
----------------------------------------------- */
#wrapper {
	overflow: hidden;
	position: relative;
}
article {
	min-height: 100vh;
	min-height: 100dvh;
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	-ms-box-sizing: border-box;
	-o-box-sizing: border-box;
	box-sizing: border-box;
	position: relative;
}


@media (max-width: 768px) {
.inner {
	padding: 0 20px;
}

}






/* copyright
----------------------------------------------- */
.copyright {
	position: absolute;
	left: 0;
	bottom: 30px;
	text-align: center;
	font-size: 12px;
	font-weight: 400;
	letter-spacing: 0;
	width: 100%;
	z-index: 2;
}
@media (max-width: 768px) {
.copyright {
	font-size: 10px;
}
}




/* H
----------------------------------------------- */
.hdl {
	text-align: center;
	font-size: 32px;
	letter-spacing: 0.15em;
	font-weight: 400;
}

@media (max-width: 768px) {
.hdl {
	font-size: 16px;
}
}



/* top
----------------------------------------------- */
.top {
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
}
.top_block {
	display: block;
}
.top_block .top_link a {
	display: block;
	padding: 20px;
	font-size: 0;
}
.top_block .top_link a img {
	width: 348px;
	transition: all 0.3s;
	transform: scale(1); 
}
.top_block .top_link a:hover {
	opacity: 0.85;
}
.top_block .top_link a:hover img {
	transform: scale(0.95);
	transition: all 0.3s;
}

@media (max-width: 768px) {
.top {
}
.top_block .top_link a img {
	width: 185px;
}
.top_block .top_link a:hover {
	opacity: 1;
}
.top_block .top_link a:hover img {
	transform: scale(1);
	transition: all 0.6s;
}
.top .copyright {
	bottom: 10px;
	padding: 0;
}
}



/* menu_block
----------------------------------------------- */
.menu {
	display: flex;
	align-items: center;
	justify-content: center;
}
.menu_block {
	display: block;
}
.menu_block .menu_list {
	display: flex;
	flex-direction: column;
	gap: 24px 0;
}
.menu_block .menu_list a {
	display: block;
	text-align: center;
	font-size: 32px;
	font-weight: 400;
	letter-spacing: 0.15em;
}
.menu_block .menu_list a:hover {
	transform: scale(0.95);
}

@media (max-width: 768px) {
.menu .copyright {
	bottom: 10px;
	padding: 0;
}
.menu {
	padding: 0;
}
.menu_block .menu_list {
	gap: 21px 0;
}
.menu_block .menu_list a {
	font-size: 16px;
	letter-spacing: 0.15em;
}
.menu_block .menu_list a:hover {
	transform: scale(1);
}
}



/* projects
----------------------------------------------- */
.projects {
	display: flex;
	align-items: flex-start;
	justify-content: center;
	padding: 90px 0 100px;
}

.projects .projects_block {
	width: 1106px;
	padding: 0 45px;
	margin: 0 auto;
	max-width: 100%;
	display: flex;
	flex-direction: column;
	align-items: center;
}
.projects .projects_block .hdl {
	margin: 0 0 48px;
}
.projects .projects_news {
	display: flex;
	flex-direction: column;
	gap: 8px 0;
	margin: 0 0 57px;
}
.projects .projects_news .news_list li {
	font-size: 14px;
	line-height: 1.785;
	letter-spacing: 0.1em;
	display: flex;
	align-items: flex-start;
	gap: 0 1em;
}
.projects .projects_news .news_list .news_date {
	flex-shrink: 0;
}
.projects .projects_news .news_more {
	align-self: flex-end;
}
.projects .projects_news .news_more a {
	color: #7E7E7E;
	display: block;
	font-size: 14px;
	letter-spacing: 0.1em;
	text-decoration: underline;
}
.projects .projects_news .news_more a:hover {
	transform: scale(0.95);
}

.projects .projects_post {
	width: 100%;
	display: flex;
	flex-wrap: wrap;
	gap: 60px 32px;
}
.projects .projects_post li {
	width: calc((100% - 96px)/4);
}
.projects .projects_post .post_item {
	display: block;
}
.projects .projects_post .post_item .item_pic {
	overflow: hidden;
	height: 230px;
}
.projects .projects_post .post_item .item_pic img {
	height: 100%;
	width: 100%;
	object-fit: cover;
	transition: all 0.3s !important;
	-moz-transition: all 0.3s !important; /* Firefox */
	-webkit-transition: all 0.3s !important; /* Chrome&Safari */
}
.projects .projects_post .post_item .item_date {
	font-size: 10px;
	color: #9E9E9E;
	line-height: 2;
	margin: 6px 0 0;
}
.projects .projects_post .post_item .item_name {
	margin: 3px 0 0;
	font-size: 20px;
	line-height: 1.2;
}
.projects .projects_post .post_item .item_type {
	margin: 3px 0 0;
	font-size: 10px;
	line-height: 2;
}
.projects .projects_post .post_item:hover .item_pic img {
	transform: scale(0.95);
}

@media (max-width: 768px) {
.projects {
	padding: 46px 0 105px;
}
.projects .projects_block {
	padding: 0 5.8%;
}
.projects .projects_block .hdl {
	margin: 0 0 35px;
}
.projects .projects_news {
	margin: 0 0 40px;
	width: auto;
	max-width: 100%;
}
.projects .projects_news .news_list li {
	font-size: 10px;
	line-height: 2;
	letter-spacing: 0.1em;
}
.projects .projects_news .news_more a {
	font-size: 10px;
}
.projects .projects_news .news_more a:hover {
	transform: scale(1);
}

.projects .projects_post {
	gap: 35px 15px;
	width: auto;
	max-width: 100%;
}
.projects .projects_post li {
	width: calc((100% - 15px)/2);
}
.projects .projects_post .post_item .item_pic {
	height: auto;
}
.projects .projects_post .post_item .item_pic img {
	object-fit: contain;
}
.projects .projects_post .post_item .item_date {
	font-size: 10px;
	margin: 10px 0 0;
}
.projects .projects_post .post_item .item_name {
	margin: 2px 0 0;
	font-size: 12px;
}
.projects .projects_post .post_item .item_type {
	margin: 2px 0 0;
}
.projects .projects_post .post_item:hover .item_pic img {
	transform: scale(1);
}
}



/* projects detail
----------------------------------------------- */
.projects_detail {
	padding: 113px 0;
	display: flex;
	align-items: flex-start;
	justify-content: center;
	position: relative;
}
.projects_detail .detail_block {
	padding: 0 70px;
	display: flex;
	align-items: center;
	justify-content: center;
}
.projects_detail .detail_list {
	width: 100%;
	max-width: 1600px;
	display: flex;
	flex-wrap: wrap;
	gap: 50px;
}
.projects_detail .detail_list li {
	width: calc((100% - 50px)/2);
}
.projects_detail .detail_list img {
	width: 100%;
}

@media (max-width: 768px) {
.projects_detail {
	padding: 50px 0 85px;
	position: relative;
}
.projects_detail .detail_block {
	padding: 0;
}
.projects_detail .detail_list {
	flex-direction: column;
	gap: 20px;
	width: 90%;
}
.projects_detail .detail_list li {
	width: 100%;
}
}



/* projects list
----------------------------------------------- */
.projects_list {
	padding: 100px 0 145px;
	display: flex;
	align-items: center;
	justify-content: center;
}
.projects_list .list_block {
	padding: 0 45px;
	display: flex;
	flex-direction: column;
	gap: 2em 0;
}
.projects_list .list_inner {
	display: flex;
	flex-direction: column;
	gap: 1em 0;
}
.projects_list .list_inner li {
	font-size: 14px;
	line-height: 1.43;
	display: flex;
	align-items: flex-start;
	gap: 0 1em;
}
.projects_list .list_inner .news_date {
	flex-shrink: 0;
}

@media (max-width: 768px) {
.projects_list {
	padding: 55px 0 110px;
}
.projects_list .list_block {
	padding: 0 21.75px;
	align-items: center;
}
.projects_list .list_inner {
	width: 100%;
}
.projects_list .list_inner li {
	font-size: 10px;
}
}




/* about
----------------------------------------------- */
.about {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 60px 0;
}
.about .about_block {
	padding: 0 45px;
	max-width: 100%;
}
.about .about_inner {
	width: 1040px;
	max-width: 100%;
	display: flex;
	flex-direction: column;
	gap: 70px 0;
}
.about .about_intro {
	display: flex;
	align-items: flex-start;
	gap: 0 20px;
}
.about .about_intro .intro_head {
	width: 266px;
	flex-shrink: 0;
}
.about .about_intro .intro_head img {
	width: 176px;
}
.about .about_intro .intro_cont {
	display: flex;
	flex-direction: column;
	gap: 32px 0;
}
.about .about_intro .intro_mess {
	
}
.about .about_intro .intro_head_sp {
	display: none;
}
.about .about_intro .intro_name {
	display: flex;
	flex-direction: column;
	gap: 2px 0;
}
.about .about_intro .intro_name .name_jps {
	font-size: 20px;
	letter-spacing: 0.1em;
}
.about .about_intro .intro_name .name_eng {
	font-size: 10px;
	font-weight: 300;
	letter-spacing: 0.15em;
	color: #7E7E7E;
}
.about .about_intro .intro_txt {
	font-weight: 500;
	font-size: 14px;
	letter-spacing: 0.2em;
}
.about .about_intro .intro_his li {
	display: flex;
	align-items: flex-start;
	color: #7E7E7E;
	font-size: 12px;
	font-weight: 300;
	letter-spacing: 0.2em;
}
.about .about_intro .intro_his .his_date {
	width: 117px;
	flex-shrink: 0;
}
.about .about_intro .intro_his .his_txt {
	
}

.about .about_company {
 display: flex;
	align-items: flex-start;
	gap: 0 20px;
}
.about .about_company .company_logo {
	width: 266px;
}
.about .about_company .company_logo img {
	width: 230px;
}
.about .about_company .company_cont {
	display: flex;
	gap: 40px 0;
	flex-direction: column;
}
.about .about_company .company_na {
	display: flex;
	flex-direction: column;
	gap: 1em 0;
}
.about .about_company .company_na li {
	display: flex;
	align-items: flex-start;
	font-weight: 300;
	font-size: 14px;
	letter-spacing: 0.2em;
}
.about .about_company .company_na .na_tit {
	width: 145px;
	padding: 0 20px 0 0;
	flex-shrink: 0;
}
.about .about_company .company_na .na_txt {
}
.about .about_company .company_other {
	font-size: 14px;
	font-weight: 300;
	letter-spacing: 0.2em;
}


@media (max-width: 768px) {
.about {
	padding: 50px 0 110px;
}
.about .about_block {
	padding: 0;
}
.about .about_inner {
	gap: 45px 0;
	width: 86.5%;
	margin: 0 auto;
}
.about .about_intro {
	flex-direction: column;
	gap: 30px 0;
}
.about .about_intro .intro_head {
	display: none;
}
.about .about_intro .intro_cont {
	gap: 30px 0;
}
.about .about_intro .intro_mess {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
}
.about .about_intro .intro_head_sp {
	display: block;
	width: 96px;
}
.about .about_intro .intro_txt {
	font-size: 10px;
	letter-spacing: 0.2em;
}
.about .about_intro .intro_his li {
	font-size: 8px;
	letter-spacing: 0.2em;
}
.about .about_intro .intro_his .his_date {
	width: 80px;
	font: 500;
}

.about .about_company {
	flex-direction: column;
	gap: 20px 0;
}
.about .about_company .company_logo {
	width: auto;
}
.about .about_company .company_logo img {
	width: 176px;
}
.about .about_company .company_cont {
	display: flex;
	gap: 23px 0;
	flex-direction: column;
}
.about .about_company .company_na {
	gap: 1em 0;
}
.about .about_company .company_na li {
	font-size: 10px;
	letter-spacing: 0.2em;
}
.about .about_company .company_na .na_tit {
	width: 105px;
	padding: 0 10px 0 0;
}
.about .about_company .company_other {
	font-size: 10px;
	letter-spacing: 0.2em;
}
}



/* contact
----------------------------------------------- */
.error {
	color: #ff0000;
}
.contact {
	padding: 87px 0 68px;
	display: flex;
	align-items: center;
	justify-content: center;
}
.contact .contact_block {
	padding: 0 45px;
	max-width: 100%;
}
.contact .contact_block .hdl {
	margin: 0 0 80px;
}
.contact .contact_inner {
	width: 930px;
	max-width: 100%;
}
.contact .contact_form {
	display: flex;
	flex-direction: column;
	gap: 33px 0;
}
.contact .contact_form .form_item {
	display: flex;
	align-items: stretch;
}
.contact .contact_form .form_item.two_col {
	gap: 0 28px;
}
.contact .contact_form .form_item.two_col .item_cont {
	width: calc((100% - 28px)/2);
}
.contact .contact_form .form_item .item_cont {
	display: flex;
	gap: 6px 0;
	width: 100%;
	flex-direction: column;
}
.contact .contact_form .form_item .item_name {
	font-size: 20px;
	padding: 0 3px;
	letter-spacing: 0.1em;
}
.contact .contact_form .form_item .item_name sup {
	font-size: 15px;
	line-height: 1;
}
.contact .contact_form .form_item .item_input {
	
}
.contact .contact_form .form_item input[type=text],
.contact .contact_form .form_item input[type=email],
.contact .contact_form .form_item input[type=tel] {
	width: 100%;
	height: 50px;
	border: 1px #000 solid;
	padding: 0 20px;
	font-size: 14px;
	line-height: 1.5;
	font-family: "Inter", sans-serif;
	letter-spacing: 0.1em;
}
.contact .contact_form .form_item textarea {
	width: 100%;
	height: 200px;
	border: 1px #000 solid;
	padding: 20px;
	font-size: 14px;
	line-height: 1.5;
	font-family: "Inter", sans-serif;
	letter-spacing: 0.1em;
}
.contact .contact_btn {
	display: flex;
	justify-content: center;
	margin: 35px 0 0;
}
.contact .contact_btn input[type=submit] {
	width: 500px;
	height: 50px;
	text-align: center;
	background: #D9D9D9;
	font-size: 20px;
	letter-spacing: 0.2em;
	font-family: "Inter", sans-serif;
	cursor: pointer;
	transition: all 0.3s !important;
	-moz-transition: all 0.3s !important; /* Firefox */
	-webkit-transition: all 0.3s !important; /* Chrome&Safari */
}
.contact .contact_btn input[type=submit]:hover {
	background: #000;
	color: #fff;
}
.contact .contact_logo {
	margin: 90px 0 0;
	text-align: center;
}
.contact .contact_logo img {
	width: 230px;
}
@media (max-width: 768px) {
.contact {
	padding: 46px 0 66px;
}
.contact .contact_block {
	padding: 0 min(45px,12vw);
}
.contact .contact_block .hdl {
	margin: 0 0 45px;
}
.contact .contact_form {
	gap: 18px 0;
}
.contact .contact_form .form_item {
	flex-direction: column;
}
.contact .contact_form .form_item.two_col {
	gap: 18px 0;
}
.contact .contact_form .form_item.two_col .item_cont {
	width: auto;
}
.contact .contact_form .form_item .item_cont {
	gap: 4px 0;
}
.contact .contact_form .form_item .item_name {
	font-size: 10px;
	padding: 0 1px;
	letter-spacing: 0.1em;
}
.contact .contact_form .form_item .item_name sup {
	font-size: 10px;
}
.contact .contact_form .form_item input[type=text],
.contact .contact_form .form_item input[type=email],
.contact .contact_form .form_item input[type=tel] {
	height: 32px;
}
.contact .contact_form .form_item textarea {
	height: 150px;
}
.contact .contact_btn input[type=submit] {
	width: 100%;
	height: 32px;
	font-size: 10px;
	letter-spacing: 0.2em;
}
.contact .contact_btn input[type=submit]:hover {
	background: #D9D9D9;
	color: #000;
}
.contact .contact_logo {
	margin: 40px 0 0;
}
.contact .contact_logo img {
	width: 150px;
}
.contact .contact_btn {
	display: block
}
}

.thanks_box .thanks_txt {
	font-size: 20px;
	text-align: center;
	line-height: 2;
}
@media (max-width: 768px) {
.thanks_box .thanks_txt {
	font-size: 14px;
}
}

.wpcf7-spinner {
	display: none !important;
}


@media (max-width: 1024px) {

}
@media (max-width: 768px) {

}

