@charset "utf-8";

.mainvisual{
	line-height: 0;
	color: #fff;
}
.mainvisual .container{
	position: relative;
	height: 100%;
	line-height: 1.5;
}
.mainvisual .maintext{
	position: absolute;
	top: 50%;
	left: 120px;
	transform: translateY(-80%);
	z-index: 3;
}
.mainvisual .maintext svg{
	filter: drop-shadow(0 3px 21px rgba(0,0,0,.44));
}
.mainvisual .maintext .heading{
	margin-top: 1em;
}
@media screen and (min-width: 771px){

}
@media screen and (max-width: 770px){
	.mainvisual{
		overflow: hidden;
	}
	.mainvisual .maintext{
		position: absolute;
		top: 30%;
		left: 20px;
		width: 74vw;
		margin: 0 auto;
		transform: translateY(-50%);
	}
	.mainvisual .maintext svg{
		width: 100%;
		height: auto;
		filter: drop-shadow(0 3px 3vw rgba(0,0,0,.44));
	}
	.mainvisual .maintext .heading{
		font-size: 1.3rem !important;
	}
}

/*--------------------------------------------------------------------*/

.mainvisual .eyecatch{
	position: absolute;
	bottom: 40px;
	left: 3%;
	width: 97%;
	box-sizing: border-box;
	margin: 0;
	overflow: hidden;
	height: 71vh;
}
.mainvisual .eyecatch video{
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 100%;
	box-sizing: border-box;
}
@media screen and (min-width: 771px){

}
@media screen and (max-width: 770px){
	.mainvisual .eyecatch{
		position: absolute;
		bottom: 20px;
		left: 20px;
		width: 100%;
		box-sizing: border-box;
		margin: 0;
		height: 83%;
	}
	/*
	.mainvisual .eyecatch video{
		position: absolute;
		top: 50%;
		left: 50%;
		transform: translate(-50%, -50%);
		width: auto;
		height: 100%;
	}
	*/
}

/*--------------------------------------------------------------------*/

.mainvisual .scroll{
	position: absolute;
	right: 10vw;
	bottom: -3vw;
	z-index: 2;
	padding: .3em 0 .3em 1em;
	background-color: rgba(0,0,0,.11);
	transform: rotate(90deg);
	transform-origin: right bottom;
}
.mainvisual .scroll .tag{
	margin-right: 1em;
}
.mainvisual .scroll .line{
	width: 10em;
	height: 1px;
	background-color: #fff;
	animation-name: scrollLine;
	animation-duration: 1.5s;
	animation-iteration-count: infinite;
}
@media screen and (min-width: 771px){

}
@media screen and (max-width: 770px){
	.mainvisual .scroll{
		right: 0;
		bottom: 0;
		transform: rotate(90deg) translate(30%, 100%);
	}
}
@keyframes scrollLine{
	0%{
		width: 0em;
		margin-right: 10em;
	}
	40%{
		width: 10em;
		margin-right: 0em;
	}
	60%{
		width: 10em;
		margin-right: 0em;
		margin-left: 0em;
	}
	100%{
		width: 0em;
		margin-left: 10em;
	}
}

/*--------------------------------------------------------------------*/

section.news{
	padding: 4em 0;
}
section.news .archive{
	margin-bottom: 2em;
}
section.news .archive article a{
	display: block;
}
section.news .archive .time{
	padding-right: 1em;
	border-right: 1px solid #D4D4D4;
	margin-right: 1em;
	line-height: 1;
}
section.news .archive .the_title{
	line-height: 1.6;
}
section.news .archive .time .date{
	font-weight: bold;
}
section.news .archive .excerpt{
	margin-top: 1.5em;
}
@media screen and (min-width: 771px){

}
@media screen and (max-width: 770px){
	section.news{
		padding: 4em 5vw;
	}
	section.news .archive{
		flex-direction: column;
	}
	section.news .archive article{
		width: 100%;
		margin-bottom: 2em;
	}
	section.news .archive article:last-of-type{
		margin-bottom: 0;
	}
	section.news .archive .the_title{
		font-size: 1.4rem;
	}
}

/*--------------------------------------------------------------------*/

section.whoweare{
	height: 640px;
	position: relative;
	overflow: hidden;
}
section.whoweare .background{
	position: absolute;
	left: 0;
	top: 0;
	right: 0;
	bottom: 0;
	width: 100%;
	height: 100%;
	background-image: url("../img/whoweare_bg.jpg");
	background-repeat: no-repeat;
	background-position: center center;
	background-size: cover;
}
section.whoweare .panel{
	width: 60vw;
	position: absolute;
	left: 0;
	bottom: 0;
	padding: 4vw 10vw;
	background-color: rgba(255,255,255,1);
	box-sizing: border-box;
}
section.whoweare.-anim-start .panel.-anim-end{
	transition-delay: 0s;
	transition: background-color .8s;
}
section.whoweare.-anim-start .panel.-anim-end:hover{
	background-color: rgba(255,255,255,.6);
}
section.whoweare .panel .heading .en{
	margin-bottom: .5em;
}
section.whoweare .panel .text{
	margin: 2.5em 0;
}
section.whoweare .panel .commonLink .button{
	background-color: #fff;
}
@media screen and (min-width: 771px){
	section.whoweare{

	}
}
@media screen and (max-width: 770px){
	section.whoweare{
		padding: 5vw;
		background-size: auto 120%;
		height: 80vh;
	}
	section.whoweare .panel{
		width: 95vw;
		position: absolute;
		left: 0;
		right: 0;
		bottom: 0;
		padding: 10vw;
		background-color: rgba(255,255,255,.95);
		box-sizing: border-box;
	}
	section.whoweare .panel .heading .en svg{
		width: 95%;
	}
}

/*--------------------------------------------------------------------*/

section.business{
	padding: 4em 0;
}
section.business .container{
	position: relative;
	padding-left: 3em;
	overflow: hidden;
}
section.business .label{
	position: absolute;
	color: #3A8153;
	left: 0;
	top: 0;
	transform: rotate(90deg);
	transform-origin: left bottom;
	width: 100%;
}
section.business .label .line{
	width: 200vw;
	height: 1px;
	background-color: #3A8153;
	margin-left: 1em;
}
@media screen and (min-width: 771px){

}
@media screen and (max-width: 770px){
	section.business{
		padding: 3em 0;
	}
	section.business .container{

	}
	section.business .label{
		width: auto;
	}
}

/*--------------------------------------------------------------------*/

section.business .block{
	position: relative;
	padding-bottom: 5em;
	margin-bottom: 2em;
}
section.business .information{
	width: 69.5%;
	padding: 2em 6em 3em 2em;
	position: relative;
	z-index: 2;
	box-sizing: border-box;
	background-color: #fff;
}
section.business .heading{
	margin-bottom: 2em;
}
section.business .heading .commonIndex .swipe{
	display: inline-block;
}
section.business .heading .commonIndex .en .swipe:first-of-type{
	margin-bottom: .1em;
}
section.business .heading .commonIndex .en .swipe:first-of-type .-label:first-letter{
	color: #3A8153;
}
section.business .heading .commonIndex .en{
	margin-bottom: 0;
	max-width: 6.9em;
}
section.business .heading .ja{
	margin: 0 0 .5em 1em;
	white-space: nowrap;
}
section.business .text{

}
section.business .block .image{
	position: absolute;
	right: 0;
	bottom: 0;
}
section.business .commonLink{
	padding-left: 2em;
}
@media screen and (min-width: 771px){

}
@media screen and (max-width: 770px){
	section.business .block{
		padding-bottom: 24vh;
		margin-bottom: 10vh;
	}
	section.business .information{
		width: auto;
		padding: 1em 5vw 2em 0;
		position: relative;
		z-index: 2;
		box-sizing: border-box;
		background-color: #fff;
	}
	section.business .heading .commonIndex{
		flex-direction: column;
		align-items: flex-start;
	}
	section.business .heading .commonIndex .en{
		font-size: 9.5vw !important;
	}
	section.business .heading .ja{
		margin: 0;
		margin-top: .5em;
	}
	section.business .commonLink{
		padding-left: 0em;
	}
}

/*--------------------------------------------------------------------*/

section.service{
	padding: 100px 0;
	position: relative;
}
section.service:before{
	width: 37%;
	height: 100%;
	left: 0;
	bottom: 0;
	top: 0;
	margin: auto;
	background-color: #F8F8F8;
}
section.service:after{
	width: 37%;
	height: 33%;
	border-top: 1px solid #E1E1E1;
	border-bottom: 1px solid #E1E1E1;
	top: 0;
	left: 0;
	bottom: 0;
	margin: auto;
}
section.service .container{
	position: relative;
	z-index: 2;
}
section.service .container .heading{
	margin-bottom: 4em;
}
section.service .container .heading .ja{
	display: inline-block;
}
@media screen and (min-width: 771px){

}
@media screen and (max-width: 770px){
	section.service{
		padding: 50px 5vw;
	}
	section.service .commonIndex .en{
		font-size: 12vw !important;
		max-width: calc(12vw * 6);
	}
	section.service .commonIndex .-label{
		display: inline !important;
	}
	section.service .container .heading{
		margin-bottom: 1em;
	}
	section.service .container .slides .item{
		flex-direction: column;
	}
}

/*--------------------------------------------------------------------*/

section.service .scroll{
	font-size: 17.36vw;
	color: #F9F9F9;
	line-height: .9;
	position: absolute;
	top: 0;
	left: 40%;
	width: 60%;
	overflow: hidden;
}

/*--------------------------------------------------------------------*/

section.service .mockups{
	position: relative;
	margin-right: 2em;
}
section.service .mockups .pc_view{
	position: relative;
}
section.service .mockups .pc_view .site{
	position: absolute;
	left: 9.8%;
	top: 0;
}
section.service .mockups .sp_view{
	position: absolute;
	right: 0;
	bottom: 8%;
}
section.service .mockups .sp_view .site{
	position: absolute;
	left: 24.5%;
	top: 8%;
}
@media screen and (min-width: 771px){

}
@media screen and (max-width: 770px){
	section.service .mockups{
		zoom: 0.5;
	}
}

/*--------------------------------------------------------------------*/

section.service .information{
	padding-bottom: 5.5em;
}
section.service .information .title{
	background-color: #00BCD4;
	color: #fff;
	padding: .5em 1.5em;
	position: relative;
}
section.service .information .text{
	padding: 3em 0 3em 3em;
	position: relative;
}
section.service .information .commonLink{
	position: relative;
}
section.service .information .commonLink .notready{
	display: none;
	padding: 1em 1em;
    padding-right: 5em;
    border: 1px solid #000;
    position: relative;
    line-height: 1;
    min-width: 15em;
    box-sizing: border-box;
    z-index: 2;
}
@media screen and (min-width: 771px){

}
@media screen and (max-width: 770px){
	section.service .information{
		padding-bottom: 2em;
	}
	section.service .information .title{
		font-size: 5vw !important;
		text-align: center;;
		padding: .2em 1em;
	}
	section.service .information .text{
		padding: 2em 4vw 2em 4vw;
		position: relative;
	}
}

/*--------------------------------------------------------------------*/

section.service .commonLink{
	padding-left: 3em;
}
@media screen and (min-width: 771px){

}
@media screen and (max-width: 770px){
	section.service .information .link{
		margin-top: 2em;
		padding-left: 4vw;
	}
	section.service .commonLink{
		padding-left: 4vw;
	}
}

/*--------------------------------------------------------------------*/

section.service .arrows{

}
section.service .arrows .item{
	width: 4em;
	height: 4em;
	background-color: #fff;
	box-shadow: 3px 3px 6px rgba(0,0,0,.11);
	margin: 1px;
	position: relative;
	cursor: pointer;
}
section.service .arrows .item:hover{
	opacity: .6;
}
section.service .arrows .item .ico_arrow{
	position: absolute;
	left: 50%;
	top: 50%;
	padding: 0;
	transform: translate(-50%, -50%);
	width: 18px;
	height: 18px;
}
section.service .arrows .item .ico_arrow:before{
	border-top: 1px solid #999;
    border-right: 1px solid #999;
	width: 70%;
	height: 70%;
	box-sizing: border-box;
	position: absolute;
	left: 20%;
	top: 70%;
	transform: translate(-50%, -50%) rotate(45deg);
}
section.service .arrows .item.prev .ico_arrow:before{
	transform: translate(-50%, -50%) rotate(-135deg);
	left: 60%;
}
@media screen and (min-width: 771px){

}
@media screen and (max-width: 770px){
	section.service .controls{
		position: sticky;
		bottom: 1em;
		justify-content: flex-start;
		z-index: 10;
	}
	section.service .arrows .item{
		width: 7vw;
		height: 7vw;
	}
	section.service .arrows .item .ico_arrow{
		width: 2vw;
		height: 2vw;
	}
}

/*--------------------------------------------------------------------*/

section.service .pagination{
	margin: 0 3em;
}
section.service .pagination .dot{
	width: 8px;
	height: 8px;
	background-color: #DEDEDE;
	margin: 4px;
	padding: 0;
	border: 0;
	cursor: pointer;
	transition: background-color .3s;
}
section.service .pagination .dot.current{
	background-color: #FCB000;
}
@media screen and (min-width: 771px){

}
@media screen and (max-width: 770px){
	section.service .pagination{
		margin: 0 1em;
	}
	section.service .pagination .dot{
		width: 4px;
		height: 4px;
		margin: 2px;
	}
}

/*--------------------------------------------------------------------*/

section.service .paged{
	margin-right: 20%;
}
section.service .paged big{
	font-size: 146%;
}

/*--------------------------------------------------------------------*/

section.recruit{
	padding: 80px 0;
}
section.recruit .inner1200{
	max-width: 100%;
	box-sizing: border-box;
}
section.recruit .card{
	padding: 3em 5em;
	border: 10px solid #EEEEEE;
}
section.recruit .card .commonIndex{
	margin-bottom: 0;
}
section.recruit .card .text{
	padding: 0 4em;
}
section.recruit .card .link{
	white-space: nowrap;
}
section.recruit .card .link a{
	background-color: #000000;
	color: #fff;
	padding: .8em 1.2em;
	min-width: 165px;
	box-sizing: border-box;
}
section.recruit .card .link a .ico_arrow:before{
	border-color: #fff;
}
@media screen and (min-width: 771px){

}
@media screen and (max-width: 770px){
	section.recruit{
		padding: 40px 5vw;
	}
	section.recruit .card{
		padding: 10vw;
		border: 10px solid #EEEEEE;
	}
	section.recruit .card .en{
		font-size: 8vw !important;
	}
	section.recruit .card .text{
		padding: 2em 0;
	}
}
