@charset "UTF-8";



.top_fv {
	width: 100%;
	height: 100%;
	position: relative;
}
.top_fv .main_visual {
	width: 75%;
	position: absolute;
	top: 50%;
	transform: translateY(-45%);
	right: 40px;
}
.top_fv .catch {
	-webkit-writing-mode: vertical-rl;
	-ms-writing-mode: tb-rl;
	writing-mode: vertical-rl;
	position: absolute;
	top: 0;
	right: 70px;
	font-size: 1.5rem;
	font-weight: 500;
	letter-spacing: .4em;
	line-height: 1;
	z-index: 2;
}
.top_fv .catch span {
	display: inline-block;
	background-color: #fff;
	margin-right: 20px;
	padding: 20px 15px;
}
.top_fv .obj {
	width: 40%;
	position: absolute;
	bottom: -90px;
	left: 100px;
}
@media (max-width: 520px) {
	.top_fv {
		width: 100%;
		height: 100%;
		position: relative;
	}
	.top_fv .main_visual {
		width: 90%;
		height: 80%;
		position: relative;
		top: auto;
		transform: translateY(0);
		right: auto;
		margin-top: 75px;
	}
	.top_fv .main_visual img {
		width: 100%;
		height: 100%;
 		object-fit: cover;
 		object-position: 75% center;
	}
	.top_fv .catch {
		top: -30px;
		right: 2.5%;
	}
	.top_fv .obj {
		width: 80%;
		position: absolute;
		bottom: 55px;
		left: 0px;
		right: 0;
		margin: auto;
	}
}

.top_page .read {
	background-color: #DCE6DF;
	padding: 90px 0;
	margin-top: 100px;
}
.top_page .read .wrap {
	position: relative;
}
.top_page .read .txt_area {
	width: 480px;
	margin: 0 auto;
}
.top_page .read .txt_area p {
	margin-top: 50px;
}
.top_page .read .pic1,
.top_page .read .pic2 {
	width: 300px;
	position: absolute;
}
.top_page .read .pic1 {
	top: 50px;
	left: 0;
}
.top_page .read .pic2 {
	top: -170px;
	right: 0;
}
.top_page .read .obj {
	width: 20%;
	position: absolute;
	bottom: -100px;
	right: 0;
}
@media (max-width: 520px) {
	.top_page .read {
		background-color: #DCE6DF;
		padding: 90px 2.5%;
		margin-top: 75px;
	}
	.top_page .read .wrap {
		position: relative;
	}
	.top_page .read .txt_area {
		width: 100%;
		margin: 0 auto;
	}
	.top_page .read .txt_area p {
		margin-top: 50px;
	}
	.top_page .read .pic1,
	.top_page .read .pic2 {
		width: 40%;
		position: absolute;
	}
	.top_page .read .pic1 {
		display: none;
	}
	.top_page .read .pic2 {
		top: -170px;
		right: 0;
	}
	.top_page .read .obj {
		display: none;
	}
}


.top_page .service {
	margin-top: 100px;
}
.top_page .service .container {
	color: #fff;
	background-color: #F2F2F2;
}
.top_page .service .container + .container {
	margin-top: 35px;
}
.top_page .service .container .fl_block {
	display: flex;
	justify-content: center;
}
.top_page .service .container:nth-of-type(2) .fl_block,
.top_page .service .container:nth-of-type(4) .fl_block {
	flex-direction: row-reverse;
}
.top_page .service .container .fl_block .fl_item {
	width: 50%;
}
.top_page .service .container .fl_block .fl_item:nth-of-type(1) {
	padding: 100px 40px;
}
.top_page .service .container:nth-of-type(1) .fl_item{
	background-color: #496960;
}
.top_page .service .container:nth-of-type(2) .fl_item{
	background-color: #3F5263;
}
.top_page .service .container:nth-of-type(3) .fl_item{
	background-color: #5B586D;
}
.top_page .service .container:nth-of-type(4) .fl_item{
	background-color: #5D687A;
}
.top_page .service .container .fl_block .fl_item h3 {
	font-size: 2.33rem;
	letter-spacing: .05em;
	font-weight: 500;
}
.top_page .service .container .fl_block .fl_item p {
	margin-top: 25px;
}
@media (max-width: 520px) {
	.top_page .service {
		margin-top: 100px;
	}
	.top_page .service .container {
		color: #fff;
		background-color: #F2F2F2;
	}
	.top_page .service .container + .container {
		margin-top: 35px;
	}
	.top_page .service .container .fl_block {
		display: flex;
		justify-content: center;

		flex-wrap: wrap;
	}
	.top_page .service .container:nth-of-type(2) .fl_block,
	.top_page .service .container:nth-of-type(4) .fl_block {
		flex-direction: row;
	}
	.top_page .service .container .fl_block .fl_item {
		width: 100%;
	}
	.top_page .service .container .fl_block .fl_item:nth-of-type(1) {
		padding: 35px 5%;
	}
	.top_page .service .container .fl_block .fl_item h3 {
		font-size: 1.7rem;
		letter-spacing: .05em;
		font-weight: 500;
	}
	.top_page .service .container .fl_block .fl_item p {
		margin-top: 25px;
	}
}


.top_page .post_block {
	margin-top: 100px;
}
.top_page .post_block .fl_block {
	display: flex;
	justify-content: center;
}
.top_page .post_block .fl_block .fl_item {
	width: 50%;
	position: relative;
}
.top_page .post_block a {
	display: block;
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0;
	left: 0;
}
.top_page .post_block a.btn01 {
	display: inline-block;
	position: absolute;
	width: auto;
	height: auto;
	top: auto;
	bottom: 0;
	left: 0;
	right: 0;
	margin: auto;
	text-align: center;
}
.top_page .post_block .news_index ul {
	margin-top: 20px;
	padding: 0 50px;
	margin-bottom: 75px;
}
.top_page .post_block .works_index ul {
	display: flex;
	justify-content: space-around;
	flex-wrap: wrap;
	margin-top: 50px;
	margin-bottom: 75px;
	padding: 0 50px;
}
.top_page .post_block .works_index ul li {
	width: 35%;
}
.top_page .post_block .blog_index {
	margin-top: 100px;
	margin-bottom: 150px;
	position: relative;
}
.top_page .post_block .blog_index ul li {
	width: 22%;
	margin-right: 4%;
	margin-bottom: 55px;
}
.top_page .post_block .blog_index ul li:nth-of-type(4n) {
	margin-right: 0;
}
.top_page .post_block .blog_index a.btn01 {
	position: relative;
	text-align: center;
	display: block;
	margin-top: 50px;
}
@media (max-width: 520px) {
	.top_page .post_block {
		margin-top: 100px;
	}
	.top_page .post_block .fl_block {
		display: flex;
		justify-content: center;
		flex-wrap: wrap;
	}
	.top_page .post_block .fl_block .fl_item {
		width: 100%;
		position: relative;
	}
	.top_page .post_block a {
		display: block;
		width: 100%;
		height: 100%;
		position: absolute;
		top: 0;
		left: 0;
	}
	.top_page .post_block a.btn01 {
		display: block;
		position: relative;
		width: 100%;
		height: auto;
		top: auto;
		bottom: auto;
		left: auto;
		right: auto;
		margin: auto;
		text-align: center;
	}
	.top_page .post_block .news_index ul {
		margin-top: 20px;
		padding: 0 2.5%;
		margin-bottom: 75px;
	}
	.top_page .post_block .works_index {
		margin-top: 100px;
	}
	.top_page .post_block .works_index ul {
		display: flex;
		justify-content: space-between;
		flex-wrap: wrap;
		margin-top: 50px;
		margin-bottom: 75px;
		padding: 0 5%;
	}
	.top_page .post_block .works_index ul li {
		width: 46%;
	}
	.top_page .post_block .blog_index {
		margin-top: 100px;
		margin-bottom: 150px;
		position: relative;
	}
	.top_page .post_block .blog_index ul li {
		width: 48%;
		margin-right: 0;
		margin-bottom: 35px;
	}
	.top_page .post_block .blog_index ul li:nth-of-type(4n) {
		margin-right: 0;
	}
	.top_page .post_block .blog_index a.btn01 {
		position: relative;
		text-align: center;
		display: block;
		margin-top: 50px;
	}
}



.page_container {
    margin-top: 100px;
    margin-bottom: 150px;
}
@media (max-width: 520px) {
	.page_container {
	    margin-top: 75px;
	    margin-bottom: 75px;
	}
}

.about_page .about_logo {
	width: 200px;
	margin: 0 auto;
}
.about_page table {
	width: 100%;
	margin: 100px 0;
}
.about_page table td {
	padding: 15px;
	line-height: 1.8;
	letter-spacing: .05em;
	vertical-align: middle;
	border-bottom: 1px solid #808080;
	background-color: #fff;
}
.about_page table td:nth-of-type(1) {
	vertical-align: middle;
}
.about_page .gmap {
	width: 100%;
	height: 400px;
}
@media (max-width: 520px) {
	.about_page .about_logo {
		width: 30%;
		margin: 0 auto;
	}
	.about_page table {
		width: 90%;
		margin: 50px auto 0;
	}
	.about_page table td {
		font-size: .9rem;
	}
	.about_page table td:nth-of-type(1) {
		vertical-align: middle;
	}
	.about_page .gmap {
		width: 100%;
		height: 250px;
		margin-top: 50px
	}
}


.news_index li {
	border-bottom: 1px solid #000;
	padding: 15px 20px;
	position: relative;
	transition:ALL .5s ease;
	-webkit-transition:ALL .5s ease;
	-moz-transition:ALL .5s ease;
	-o-transition:ALL .5s ease;
}
.news_index li:hover {
	background-color: #f5f5f5;
}
.news_index li + li {
	margin-top: 15px;
}
.news_index li .meta {
	font-size: .9rem;
	color: #000;
	letter-spacing: .05em;
}
.news_index li h3 {
	font-size: 1.2rem;
	letter-spacing: .05em;
	margin-top: 7.5px;
}
.news_index li a {
	display: block;
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0;
	left: 0;
}
@media (max-width: 520px) {
	.news_index {
		padding: 0 5%;
	}
	.news_index li .meta {
		font-size: .9rem;
		color: #000;
		letter-spacing: .05em;
	}
	.news_index li h3 {
		font-size: 1rem;
	}

}



.blog_index ul {
	display: flex;
	flex-wrap: wrap;
	margin-top: 25px;
}
.blog_index ul li {
	width: 30%;
	margin-right: 5%;
	margin-bottom: 55px;
	position: relative;
}
.blog_index ul li:nth-of-type(3n) {
	margin-right: 0;
}
.blog_index ul li .thumb {
	background: center center/cover no-repeat;
}
.blog_index ul li .meta {
	font-size: .8rem;
	letter-spacing: .05em;
	color: #888888;
	margin-top: 10px;
}
.blog_index ul li h3 {
	font-size: .93rem;
	letter-spacing: .05em;
	line-height: 1.5;
	margin-top: 15px;
}
.blog_index ul li .thumb_container {
	overflow: hidden;
}
.blog_index ul li .thumb_container .thumb {
	transform: scale(1);
	background: center center/cover no-repeat;
	transition:ALL .5s ease;
	-webkit-transition:ALL .5s ease;
	-moz-transition:ALL .5s ease;
	-o-transition:ALL .5s ease;
}
.blog_index ul li:hover .thumb_container .thumb {
	transform: scale(1.1);
}
.blog_index ul li a {
	display: block;
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0;
	left: 0;
}
@media (max-width: 520px) {
	.blog_index ul {
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
		margin-top: 25px;
		padding: 0 2.5%;
	}
	.blog_index ul li {
		width: 48%;
		margin-right: 0;
		margin-bottom: 35px;
	}
	.blog_index ul li:nth-of-type(3n) {
		margin-right: 0;
	}
	.blog_index ul li .meta {
		font-size: .8rem;
		letter-spacing: .05em;
		color: #888888;
		margin-top: 10px;
	}
	.blog_index ul li h3 {
		font-size: .93rem;
		letter-spacing: .05em;
		line-height: 1.5;
		margin-top: 15px;
	}
}


.works_index ul {
	display: flex;
	justify-content: flex-start;
	flex-wrap: wrap;
	margin-top: 20px;
	margin-bottom: 75px;
}
.works_index ul li {
	width: 30%;
	position: relative;
	margin-right: 5%;
	margin-bottom: 40px;
}
.works_index ul li:nth-of-type(3n) {
	margin-right: 0;
}
.works_index ul li a {
	display: block;
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0;
	left: 0;
}
.works_index ul li  .thumb_container {
	overflow: hidden;
}
.works_index ul li  .thumb_container .thumb {
	transform: scale(1);
	background: center center/cover no-repeat;
	transition:ALL .5s ease;
	-webkit-transition:ALL .5s ease;
	-moz-transition:ALL .5s ease;
	-o-transition:ALL .5s ease;
}
.works_index ul li:hover .thumb_container .thumb {
	transform: scale(1.1);
}
@media (max-width: 520px) {
	.works_index ul {
		justify-content: space-between;
		margin-top: 20px;
		margin-bottom: 75px;
		padding: 0 5%;
	}
	.works_index ul li {
		width: 47%;
		position: relative;
		margin-right: 0;
		margin-bottom: 20px;
	}
	.works_index ul li:nth-of-type(3n) {
		margin-right: 0;
	}
	.works_index ul li a {
		display: block;
		width: 100%;
		height: 100%;
		position: absolute;
		top: 0;
		left: 0;
	}
}



.works_details {
    margin-top: 150px;
}
.works_details h1 {
	font-size: 2rem;
}
.works_details .thumb {
	margin-top: 25px;
	background: center center/cover no-repeat;
}
.works_details .fl_txt {
	display: flex;
	flex-wrap: wrap;
	margin-top: 35px;
}
.works_details .fl_txt + .fl_txt {
	margin-top: 55px;
}
.works_details .fl_txt .fl_txt_item:nth-of-type(1) {
	width: 20%;
}
.works_details .fl_txt .fl_txt_item:nth-of-type(2) {
	width: 80%;
}
.works_details .fl_txt .fl_txt_item h2 {
	font-size: 1rem;
	text-align: center;
}
@media (max-width: 520px) {
	.works_details {
	    margin-top: 150px;
	}
	.works_details h1 {
		font-size: 1.5rem;
		padding: 0 2.5%;
	}
	.works_details .thumb {
		margin-top: 25px;
	}
	.works_details .fl_txt {
		display: flex;
		flex-wrap: wrap;
		margin-top: 35px;
		flex-wrap: wrap;
		padding: 0 5%;
	}
	.works_details .fl_txt + .fl_txt {
		margin-top: 55px;
	}
	.works_details .fl_txt .fl_txt_item:nth-of-type(1) {
		width: 100%;
	}
	.works_details .fl_txt .fl_txt_item:nth-of-type(2) {
		width: 100%;
		margin-top: 25px;
	}
	.works_details .fl_txt .fl_txt_item h2 {
		font-size: 1rem;
		text-align: left;
	}
}

.works_details .photos {
	margin-top: 85px;
}
.works_details .before {
	margin-top: 100px;
	background-color: #EFEFEF;
	padding: 55px 0;
}
.works_details .photo_block h2 {
	font-size: 4.66rem;
	letter-spacing: .05em;
	font-weight: 900;
	color: #C3C3C3;
}
.works_details .photo_block ul {
	margin-top: 25px;
	display: flex;
	flex-wrap: wrap;
}
.works_details .photo_block ul li {
	width: 22%;
	position: relative;
	margin-right: 4%;
	margin-bottom: 20px;
}
.works_details .photo_block ul li:nth-of-type(4n) {
	margin-right: 0;
}
.works_details .photo_block ul li img {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
 	object-fit: cover;
 	object-position: center;
}
@media (max-width: 520px) {
	.works_details .photos {
		margin-top: 85px;
		padding: 0 5%;
	}
	.works_details .before {
		margin-top: 50px;
		background-color: #EFEFEF;
		padding: 35px 5%;
	}
	.works_details .photo_block h2 {
		font-size: 3rem;
		letter-spacing: .05em;
		font-weight: 900;
		color: #C3C3C3;
	}
	.works_details .photo_block ul {
		margin-top: 25px;
		display: flex;
		flex-wrap: wrap;
	}
	.works_details .photo_block ul li {
		width: 22%;
		position: relative;
		margin-right: 4%;
		margin-bottom: 20px;
	}
	.works_details .photo_block ul li:nth-of-type(4n) {
		margin-right: 0;
	}
	.works_details .photo_block ul li img {
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
	 	object-fit: cover;
	 	object-position: center;
	}

}


.contact_page {
	margin-top: 100px;
	margin-bottom: 150px;
}
.contact_page .read {
	text-align: center;
}
.contact_page .form_area {
	margin-top: 100px;
}

@media (max-width: 520px) {
	.contact_page {
		margin-top: 75px;
		margin-bottom: 75px;
	}
	.contact_page .form_area {
		margin-top: 75px;
		padding: 0 10%;
	}
}

