@charset "UTF-8";
/* CSS Document */


/*------------------------------------

   common 

------------------------------------*/

.slide_wrap{
	overflow: hidden;
}
.swiper-container{
	overflow: hidden;
	position: relative;
}

.swiper-wrapper{
	transition-timing-function: linear;
}



/*------------------------------------

   nav 

------------------------------------*/


/*------------------------------------

   header 

------------------------------------*/
#index_header{
	width: 100%;
	height: 65vh;
}

#index_header > div.flex{
	align-items: center;
	height: 100%;
}

.header_title,
.header_fade{
	width: 100%;
}

.header_title{
	padding: 3em 0;
}
.header_title figure{
	max-width:300px;
	margin: .5em auto 1em;
}
.header_title p{
	font-weight: bold;
	font-size: 1.1em;
	text-align: center
}
.header_title p span{
	font-weight: normal;
	display: block;
	font-size: .8em;
}


.header_fade{
	aspect-ratio:3 / 2;
	overflow: hidden;
}
.header_fade .slide-img{
	height: 100%;
}
.header_fade .slide-img img{
	width: 100%;
	height: 100%;
	object-fit: cover;
	vertical-align: bottom;
}


@keyframes zoomUp {
  0% {
    transform: scale(1);
  }
  100% {
    transform: scale(1.15);
  }
}
.header_fade .swiper-slide-active .slide-img,
.header_fade .swiper-slide-duplicate-active .slide-img,
.header_fade .swiper-slide-prev .slide-img{
  animation: zoomUp 10s linear 0s 1 normal both;  
}
/*imgタグだと下に隙間ができるのでblockに。*/
.header_fade .slide-img img{
  display: block;
}



@media (min-width:1200px){
	#index_header{
		height: 80vh;
		margin-top: 80px;
	}
	.header_title{
		width: 55%;
		margin-top: -80px;
	}
	.header_title figure{
		max-width:350px;
	}
	.header_fade{
		width: 45%;
		aspect-ratio:2 / 3;
		height: 100%;
	}
}

#index_wrap .swiper-container{
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0;
	left: 0;
	z-index: -1
}
#index_wrap .swiper-wrapper:before{
	content: '';
	background: rgba(0,0,0,.5);
	width: 100%;
	height: 100%;
	display: block;
	z-index: 1;
	position: absolute;
	top: 0;
	left: 0;
}
#index_wrap .swiper-slide div{
	width: 100%;
	height: 100%
}
#index_wrap .swiper-slide div img{
	width: 100%;
	height: 100%;
	object-fit: cover;
	vertical-align: bottom;
}



#index_wrap .swiper-pagination{
	position: absolute;
    text-align: left;
    display: inline-block;
	left: 5%;
}
#index_wrap .swiper-pagination-bullet{opacity: .5}
#index_wrap .swiper-pagination-bullet-active{background: #fff}



/*------------------------------------

   concept 

------------------------------------*/

#concept{
	padding: 6em 0 3em;
	margin-bottom: 2em;
}

#concept > div.flex{
	justify-content: center;
}


.concept_left,
.concept_right{
	width: 100%;
}
@media (max-width:999px){
	.pcview{
		display: none!important
	}
}
	
@media (min-width:1000px){
	#concept{
		padding:8em 0;
		margin-top: -3em;
	}
	.concept_left{
		width: 35%;
		margin-right: 5%;
	}
	.concept_right{
		width: 50%;
	}
	.spview{
		display: none!important
	}
}

.concept_left .title1{
	text-align: left;
	margin-top: 0;
}
.concept_left p {
	font-weight: bold;
	font-size: 1.8em;
	line-height: 1.6;
	margin-bottom: 2em;
}

.viewbtn{
	display: inline-block;
}

.viewbtn span{
	font-weight: bold;
	display: flex;
	align-items: center;
	color: #000;
	font-size: .9em;
}
.viewbtn span:after{
	content: '→';
	color: #fff;
	text-align: center;
	display: block;
	line-height: 40px;
	background: #000;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	position: relative;
	margin-left: .5em;
	transition: all 0.5s ease;
}

.viewbtn:hover span:after{
	transform: translateX(5px);
	background: var(--main-color);
}


.concept_list{
	background: #fff;
	padding: 1em;
	margin-bottom: 1em;
	box-shadow: 0 3px 3px #eee;
}

.concept_list p{
	font-weight: bold;
	font-size: 1.2em
}

.concept_list span{
	display: block;
	color: var(--main-color);
	font-weight: bold
}



.concept_slide li div{
	aspect-ratio : 3 / 2;
	overflow: hidden
}


/*------------------------------------

   lineup 

------------------------------------*/
#lineup{
	padding: 5em 0;
}

#lineup .title1{
	margin-bottom: 5em;
}

.lineup_list{
	position: relative;
}

.lineup_list > *{
	width: 100%;
}

.lineup_list figure{
	aspect-ratio: 3 / 2;
	overflow: hidden;
}

.lineup_text{
	background: var(--main-color);
	padding: 2em;
	color: #fff;
	position: relative;
	overflow: hidden;
}

.lineup_text:before{
	font-weight: lighter;
	color: rgba(255,255,255,.08);
	display: block;
	position: absolute;
	bottom: 0;
	left: 50%;
	transform: translateX(-50%);
	font-size: 8em;
}

#design .lineup_text:before{
	content: 'Planning';
}
#improvement .lineup_text:before{
	content: 'Performance';
}
#full .lineup_text:before{
	content: 'FullSpec';
}

@media (min-width:1200px){
	.lineup_text:before{
		left: 5px;
		transform: translateX(0);
	}
}




.lineup_text h3{
	font-weight: bold;
	font-size: 1.4em;
	margin-bottom: 1em;
	line-height: 1.6;
}
.lineup_text h3 span{
	font-weight: bold;
	font-size: 1.1rem;
	display: block;
}

@media (max-width:1199px){
	#lineup div.wrap{
		width: 100%;
	}
	.lineup_text .btn_wrap{
		text-align: center;
	}
}


@media (min-width:1200px){
	.lineup_list{
		margin-bottom: 12em;
	}
	#improvement{
		flex-direction: row-reverse;
	}
	.lineup_list figure{
		width: 52%;
	}
	.lineup_text{
		width: 50%;
		position: absolute;
		top: 20%;
		padding: 2.5em;
	}
	#design .lineup_text,
	#full .lineup_text{
		right: 0;
	}
	#improvement .lineup_text{
		left: 0;
	}
	
	
	
	.lineup_text h3{
		font-size: 1.8em;
	}
	.lineup_text .btn_wrap{
		text-align: right;
	}
}



/*------------------------------------

   works 

------------------------------------*/

#works{
	padding: 5em 0;
}

#works .title1{
	margin-bottom: 5em
}

.works_list{
	margin-bottom: 5em;
}

.works_list div{
	position: relative;
}
.works_list div:after{
	content: '';
	background: var(--sub-color);
	position: absolute;
	display: block;
	width: 20px;
	height: 20px;
}

.works_list h4{
	font-weight: bold;
	font-size: 1.2em;
	margin-bottom: .5em;
	text-align: center;
}
.works_list p{
	font-size: 15px;
	margin-bottom: 1em;
}

.works_list figure{
	aspect-ratio:3 / 2;
	overflow: hidden;
}

@media (max-width:767px){
	.works_list > *{
		width: 100%;
	}
	.works_list div{
		margin-bottom: 50px;
	}
	.works_list div:after{
		clip-path: polygon(50% 100%, 0 0, 100% 0);
		bottom: -35px;
		left: 50%;
		transform: translateX(-50%);
	}
}

@media (min-width:768px){
	.works_list{
		align-items: flex-end;
	}
	.works_list div{
		width: 35%
	}
	.works_list div:after{
		clip-path: polygon(0 100%, 0 0, 100% 50%);
		bottom: 30%;
		left: 104%;
		width: 18px;
	}
	.works_list > figure{
		width: 60%;
	}
	
}


/*------------------------------------

   modelhouse 

------------------------------------*/

#modelhouse{
	padding: 5em 0
}
#modelhouse .title1{
	margin-bottom: 8em;
}

#modelhouse p{
	text-align: center;
	font-weight: bold;
	font-size: 1.1em;
	margin-bottom: 3em;
}
#modelhouse p span{
	display: block;
	font-weight: 400;
	font-size: .85rem;
}

@media (max-width:1199px){
	.model_grid figure{
		margin-bottom: 1em;
	}
}

@media (min-width:768px) and (max-width:1199px){
	#modelhouse p{
		font-size: 1.2em
	}
	.model_grid{
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between
	}
	.model_main{
		width: 100%;
	}
	.model_img2,
	.model_img3{
		width: 49%
	}
}
@media (min-width:1200px){
	#modelhouse p{
		font-size: 1.4em
	}
	.model_grid{
		display: grid;
		grid-template-columns: 1fr 1fr;
		grid-template-rows: 1fr 1fr;
		grid-gap: 10px;
	}
	.model_main{
		grid-column: 1 / 2;
		grid-row: 1 / 3;
	}
	.model_img2{
		grid-column: 2 / 3;
		grid-row: 1 / 2;
	}
	.model_img3{
		grid-column: 2 / 3;
		grid-row: 2 / 3;
	}
}


/*------------------------------------

   lf square 

------------------------------------*/

#lf_square{
	margin: 3em auto;
	background: url("../img/front/lf_square.jpg")no-repeat center / cover;
	position: relative;	
}
#lf_square:before{
	content: '';
	width: 100%;
	height: 100%;
	display: block;
	background-color: rgba(0,0,0,.4);
	position: absolute;
	top: 0;
	left: 0;
}

.square_text,
#lf_square a{
	z-index: 1;
	position: relative
}
.square_text span{
	font-size: 2em;
	font-weight: 500;
	color: #fff;
	display: block;
	line-height: 1.3;
}
.square_text h3{
	font-size: 1.3em;
	font-weight: bold;
	margin-bottom: .5em;
	color: #fff
}
.square_text p{
	color: #fff;
}

@media (max-width:767px){
	#lf_square{
		text-align: center;
	}
	.square_text{
		padding: 2em 1em;
	}
	.square_text p{
		margin-top: .3em;
	}
	#lf_square a{
		margin: 1em auto;
	}
}

@media (min-width: 768px){
	#lf_square{
		aspect-ratio:3 / 1;
	}
	.square_text{
		position: absolute;
		bottom: 25px;
		left: 25px;
	}
	.square_text span{
		font-size: 2.5em;
	}
	#lf_square a.btn1{
		position: absolute;
		bottom: 25px;
		right: 25px
	}
}

/*------------------------------------

   event 

------------------------------------*/

#event{
	padding: 5em 0
}

#event .title1{
	margin-bottom: 5em;
}

.event_list a{
	color: #000
}

.event_list figure{
	aspect-ratio:3 / 2;
	overflow: hidden;
	margin-bottom: .5em;
}

.event_list figure img{
	width: 100%;
	height: 100%;
	object-fit: cover;
	vertical-align: bottom;
}

.event_cat{
	background: #000;
	color: #fff;
	text-align: center;
	padding: .5em 1em;
	line-height: 1;
	font-weight: 500;
	display: inline-block;
	margin-bottom: .5em;
}
.event_list h3{
	font-weight: bold;
	font-size: 1.2em;
}
.event_list .date{
	font-weight: 400;
	display: block;
	font-size: .9em;
}


/*------------------------------------

   report 

------------------------------------*/

#report{
	padding: 5em 0
}
#report .title1{
	margin-bottom: 5em;
}

.report_list{
	width: 100%;
	margin-bottom: 2em;
}

.report_list figure{
	overflow: hidden;
}

.report_list figure img{
	width: 100%;
	height: 100%;
	object-fit: cover;
	vertical-align: bottom;
}

.report_list a{
	color: #000;
}
.report_list .date{
	font-size: .9em;
	display: block;
}
.report_list h3{
	font-weight: bold;
	font-size: 1.2em;
}

@media (max-width:767px){
	.report_list a{
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between
	}
	.report_list a figure{
		width: 45%;
		aspect-ratio: 3 / 2;
	}
	.report_list div{
		width: 50%;
	}
}

@media (min-width:768px){
	.report_list {
		width: 48%
	}
	.report_list a{
		display: block;
	}
	.report_list a figure{
		aspect-ratio : 1 / 1.1;
		margin-bottom: 1em;
	}
}

@media (min-width:1200px){
	.report_list {
		width: 32%
	}
}

/*------------------------------------

   news 

------------------------------------*/
#news{
	padding: 5em 0;
}
#news .title1{
	margin-bottom: 5em;
}


/*------------------------------------

   banner 

------------------------------------*/


.tlf_banner{
	padding: 1em 0;
	margin-bottom: 3em;
	background: #fff4e7
}

.tlf_banner .wrap{
	display:flex;
	flex-wrap:wrap;
	justify-content:space-between;
	margin:2em auto;
	max-width: 1000px;
}


.tlf_banner h3{
	width: 100%;
	margin-bottom: 1.5em;
	font-weight: bold;
	font-size: 1.3em;
	text-align: center;
}

.tlf_banner a{
	display:block;
	width:100%;
	max-width:480px;
	margin-bottom:1em;
}

.tlf_banner a img{
	vertical-align: bottom
}
.tlf_banner a:hover{opacity:.8}


