@charset "UTF-8";



/* ------------------------------
	.company
------------------------------ */
.company_ttl{
	position: relative;
	margin-bottom: 3rem;
	text-align: center;
	font-weight: bold;
}
.company_ttl .en{
	display: block;
	font-size: 4.6rem;
	letter-spacing: 0.075em;
}
.company_ttl .ttl_txt{
	display: block;
	margin-top: 1rem;
	font-size: 1.8rem;
	font-weight: 500;
}

.company_box{
	display: flex;
	align-items: flex-start;
	padding-right: 40px;
}

.company_box .img{
	width: calc(50% + 280px);
	max-width: 1036px;
}

.company_box .txt_box{
	width: 664px;
	padding: 60px 50px 50px 65px;
	margin-top: 110px;
	margin-left: -280px;
	background: #fff;
	box-shadow: 22px 22px 0 #f08803;
}

.company_box .serif{
	margin-top: 25px;
	text-align: right;
	line-height: 1.8;
}
.company_box .serif .big{
	font-size: 1.8rem;
}

.staff{
	padding-top: 110px;
}

.staff .company_ttl{
	margin-bottom: 40px;
}

.staff .company_box + .company_box{
	margin-top: 95px;
}

.staff .company_box .txt_box{
	margin-bottom: 22px;
}


@media screen and (max-width: 768px){
	.company_ttl .en{
		font-size: 3.1rem;
	}

	.company_box{
		flex-direction: column;
		align-items: center;
		padding-right: 0;
	}

	.company_box .img{
		width: 100%;
		max-width: 100%;
	}

	.company_box .txt_box{
		width: 92%;
		padding: 2.5rem 3rem;
		margin-top: -6rem;
		margin-left: 0;
		box-shadow: 1rem 1rem 0 #f08803;
	}

	.company_box .serif{
		margin-top: 2rem;
	}
	.company_box .serif .big{
		font-size: 2.0rem;
	}

	.staff{
		padding-top: 7.5rem;
	}

	.staff .company_ttl{
		margin-bottom: 3rem;
	}

	.staff .company_box + .company_box{
		margin-top: 6rem;
	}

	.staff .company_box .txt_box{
		margin-bottom: 0;
	}
}



/* ------------------------------
	.info
------------------------------ */
.info{
	margin-top: 110px;
}

.info .wrap{
	max-width: 1000px;
}

.info .company_ttl{
	margin-bottom: 40px;
}

.info_box{
	display: flex;
	align-items: center;
	padding: 1.2rem 0;
}
.info_box.top{
	align-items: flex-start;
}
.info_box:nth-child(odd){
	background: #eeeeee;
}

.info_ttl,
.info_txt{
	line-height: 1.8;
	font-size: 1.8rem;
}

.info_ttl{
	flex-shrink: 0;
	width: 300px;
	text-align: center;
	font-weight: bold;
	letter-spacing: 0.1em;
}

.info_txt{
	width: 100%;
	padding: 0 30px;
}


@media screen and (max-width: 768px){
	.info{
		margin-top: 8.5rem;
	}

	.info .company_ttl{
		margin-bottom: 3rem;
	}

	.info_box{
		display: block;
		padding: 1.5rem 2.3rem;
	}

	.info_ttl,
	.info_txt{
		line-height: 1.8;
		font-size: 1.8rem;
	}

	.info_ttl{
		width: 100%;
		text-align: left;
	}

	.info_txt{
		padding: 0;
	}
}



/* ------------------------------
	.model
------------------------------ */
.model{
	margin-top: 120px;
}

.model a{
	position: relative;
	display: block;
	width: 100%;
	background: #000 url(../img/index/model_bg01.jpg) no-repeat center;
	background-size: cover;
}
.model a::before,
.model a::after{
	position: absolute;
	z-index: 1;
	top: 0;
	left: 0;
	content: "";
	display: block;
	height: 100%;
	-webkit-transition: all .5s ease;
	transition: all .5s ease;
}
.model a::before{
	width: 100%;
	background: #000;
	opacity: 0.75;
}
.model a::after{
	width: 0;
	background: #e58003;
	opacity: 0;
}
@media screen and (min-width: 769px) {
	.model a:hover{
		opacity: 1;
	}
	.model a:hover::before{
		width: 0;
		opacity: 0;
	}
	.model a:hover::after{
		width: 100%;
		opacity: 0.4;
	}

	.model .sec_ttl,
	.model .mid_txt,
	.model .txt{
		text-align: center;
	}
	.model .sec_ttl{
		justify-content: center;
	}
	.model .btn{
		margin-left: auto;
		margin-right: auto;
	}
}

.model .wrap{
	position: relative;
	z-index: 2;
	display: flex;
	flex-direction: column;
	justify-content: center;
	height: 554px;
}

.model .sec_ttl{
	margin-bottom: 25px;
	color: #fff;
}

.model .mid_txt{
	margin-bottom: 10px;
	color: #fff;
	font-size: 2.4rem;
	font-weight: bold;
	line-height: 1.8;
}

.model .txt{
	color: #fff;
}

.model .img{
	position: absolute;
	bottom: 0;
	right: 0;
	width: 369px;
}

.model .btn{
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 273px;
	height: 60px;
	margin-top: 30px;
	border: 1px solid #fff;
	text-align: center;
	font-size: 1.4rem;
	letter-spacing: 0.1em;
	color: #fff;
}
.model .btn::before{
	position: absolute;
	z-index: 1;
	top: 0;
	left: 0;
	content: "";
	display: block;
	width: 0;
	height: 100%;
	background: #f08803;
}
.model .btn .arw::before{
	background: url(../img/common/btn_arw02.svg) no-repeat center center;
	background-size: 100%;
}


@media screen and (max-width: 768px){
	.model{
		margin-top: 8rem;
	}

	.model a{
		background: #000 url(../img/index/model_bg01_sp.jpg) no-repeat center;
		background-size: cover;
	}

	.model .wrap{
		height: 55rem;
	}

	.model .sec_ttl{
		margin-bottom: 2.5rem;
	}

	.model .mid_txt{
		margin-bottom: 1.5rem;
	}

	.model .img{
		position: relative;
		width: 26.8rem;
		margin: 0.5rem auto 0;
	}

	.model .btn{
		width: 30.7rem;
		height: 6.7rem;
		margin: 3.5rem auto 0;
		font-size: 1.8rem;
	}
}



/* ------------------------------
	.img_loop
------------------------------ */
.img_loop{
	display: flex;
	margin-top: 100px;
}

.img_loop .img_box{
	display: flex;
	animation :infinity-scroll-left 100s infinite linear 0.5s both;
}

.img_loop .img{
	width: 580px;
}
@keyframes infinity-scroll-left {
	from {
		transform: translateX(-100%);
	}
	to {
		transform: translateX(0);
	}
}


@media screen and (max-width: 768px){
	.img_loop{
		margin-top: 9rem;
	}

	.img_loop .img{
		width: 41.8rem;
	}
}