@charset "utf-8";
html:lang(en) .concept h2,
html:lang(en) .concept p{
	word-break: keep-all;
	font-family: Arial, Helvetica, sans-serif;
	letter-spacing: 0.06em;
	max-width: 800px;
	margin: 0 auto;
}
footer {
	position: relative;
}
#pagetop {
	z-index: 1000;
}
/*===========================

   sp layout

===========================*/	
.contents{
	z-index: 10;
	position: relative;
}
/* concept 
---------------*/
.concept .ttl{
	font-size:18px;
	font-weight:500;
	line-height:2.2;
	padding:8% 8% 6.5% 10%;
}
.concept p{
	color:#666;
	line-height:1.7;
	padding:0 5%;
}
.concept p.txt{
	padding-bottom:5%;
}
.concept p br{
	display:none;
}

/* section
---------------*/
.section {
	padding:13vw 5% 0;
}
.section h2{
	font-size:6.1333vw;
	line-height: 1.304348;
	letter-spacing: 0.4em;
	font-weight:bold;
	text-align:center;
	margin-bottom:8vw;
}
.section .marker{
	background: linear-gradient(transparent 70%, #8de4e4 30%);
	padding:0 3vw 0 3.8vw;
	display:inline-block;
}


@media screen and (min-width:769px) {

/*===========================

    pc layout

===========================*/	

.contents{
	background: #F7F7F7;
	padding: 0;

}

.mainVisual {
	width: 100%;
    height: 100%;
    position: fixed;
    top: 0;
    left: 0;
	padding-left: 240px;
}
	/* .mainVisual img.switch {
		opacity: 0;
	} */
.mainVisual .inner {
	position: relative;
}
.mainVisual .slider {
	width: calc(100% - 240px);
}

.main-image {
	width: calc(100% - 240px);
	position: relative;
}
.main-image li{
	position: relative;
	height: 100vh;
}
.main-image li .kv {
	height: 100vh;
	object-fit: cover;

}
.main-image li:first-child .kv{
	position: absolute;
	top: 0;
	left: 0;
}

html:lang(en)  .main-title {
	letter-spacing: 0.1em;
}

 .main-title {
	font-size: 32px;
	color: #E87F2B;
	font-family: "Roboto";
	letter-spacing: 0.22em;
	line-height: 1.2;
	font-weight: 600;
	padding-left: 250px;
	padding-top: 86px;
	left: 50%;
	margin-left: -140px;
	right: 0;
	position: relative;
	z-index: 1;
}
 .main-title::before {
	content: '';
	display: block;
	width: 98px;
	height: 98px;
	background: url(../images/icon_recruit.svg) no-repeat;
	position: absolute;
	left: 127px;
	top: 73px;
}
 .main-title span.small {
	font-size: 18px;
	letter-spacing: 0.25em;
	font-family: "Noto Sans Japanese";
}
.mainVisual .main-text {
	font-size: 16px;
	letter-spacing: 0.3em;
	color: #fff;
	line-height: 2.25;
	text-align: center;
	margin: 52px 0;
	padding-left: 10px;
	position: relative;
	z-index: 1;
}
.mainVisual .scroll {
	width: 33px;
    height: 102px;
	font-size: 11.4px;
	position: absolute;
	left: 67px;
	top: 52vh;
    /* bottom: 44px; */
    transform: translateX(-50%);
    z-index: 11;
    overflow: hidden;
}
.mainVisual .scroll-text {
	position: absolute;
    transform: rotate(90deg);
	color: #fff;
	left: -3px;
	top: 19px;
	letter-spacing: 0.4em;
}
.mainVisual .scroll-line {
	position: absolute;
    left: 0;
    bottom: 0;
    width: 13px;
    animation-name: kf-arrow-anime;
    animation-duration: 2s;
    animation-timing-function: linear;
    animation-delay: 0s;
    animation-iteration-count: infinite;
    animation-direction: normal;
    animation-fill-mode: forwards;
}
.mainVisual.show .main-image li .main-title,
.mainVisual.show .main-image li .main-text {
	opacity: 0;
}
.mainVisual.show + div.main-text {
	opacity: 1;
}
div.main-text {
	font-size: 20px;
	letter-spacing: 0.4em;
	color: #fff;
	line-height: 2.1;
	text-align: center;
	margin: 56px 0 75px 235px;
	padding-left: 10px;
	position: relative;
	z-index: 1;
	/* padding: 200px 0 60px 235px ; */
	transition: 0.6s ease-in-out;
	/* opacity: 0; */
}
div.main-text .small {
	display: block;
	font-size: 14px;
	line-height: 2.2857;
	letter-spacing: 0.3em;
	margin-top: 24px;
}
div.main-text .line {
	display: block;
    transition: 0.8s cubic-bezier(.53,-0.01,.39,1);
    /* opacity: 0; */
	margin-bottom: 30px;
}
div.main-text .line.show {
	opacity: 1;
	transform: none;
}

.contents .section-title {
	font-size: 28px;
	font-weight: bold;
	font-family:"Roboto";
	letter-spacing: 0.2em;
	color: #E87F2B;
	text-align: center;
	padding-bottom: 20px;
	position: relative;
	margin-bottom: 68px;
}
.contents .section-title::before {
	content: '';
	display: block;
	width: 60px;
	height: 6px;
	background-color: #E87F2B;
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	margin: 0 auto;
}
.contents .section-subtitle {
	font-size: 14px;
	letter-spacing: 0.1em;
	color: #333;
	display: block;
	font-family: "Noto Sans Japanese";
	margin-top: 15px;
}
section{
	padding-left: 240px;
}
.stripe-table {
	width: 894px;
	margin: 0 auto;
	display: table;
}
.stripe-table th {
	width: 138px;
	font-size: 13px;
	font-weight: 500;
	padding-top: 30px;
	padding-left: 30px;
	box-sizing: border-box;
}
.stripe-table tr:nth-of-type(odd) {
	background-color: #EDEDED;
}
.stripe-table tr:nth-of-type(even) {
	background-color: #fff;
}
.stripe-table td {
	font-size: 13px;
	font-weight: 500;
	line-height: 2.07;
	letter-spacing: 0;
	padding: 28px 0 24px;
	padding-right: 50px;
	width: calc(100% - 138px);
}
.stripe-table td .text-link {
	color: #8DE4E4;
	text-decoration: underline;
	display: inline-block;
}
.stripe-table td .text-link:hover {
	text-decoration: none;
}
.stripe-table ul li {
	display: flex;
	font-size: 13px;
	line-height: 2;
	letter-spacing: 0;
}
.stripe-table ul li:not(:first-child) {
	margin-top: 27px;
}
.stripe-table ul li .tit{
	width: 110px;
	display: block;
}
.stripe-table ul li p {
	width: calc(100% - 110px);
}
.stripe-table ul li .att {
	color: #E87F2B;
	line-height: 2.07;
	margin: 3px 50px 0 0;
	display: inline-block;
}
.contents .detail {
	width: 290px;
	height: 77px;
	line-height: 77px;
	font-size: 17px;
	letter-spacing: 0.04em;
	margin: 72px auto 0;
	position: relative;
	border: 1px solid #B0B0B0;
}
.contents .detail a {
	display: block;
	width: 100%;
	height: 100%;
	box-sizing: border-box;
	background-color: #fff;
	padding-left: 35px;
	transition: all 0.2s;
}
.contents .detail a:hover {
	opacity: 0.7;
}
.contents .detail a::before {
	content: '';
	display: block;
	width: 11px;
	height: 11px;
	background: url(../images/icon_blank.svg) no-repeat;
	position: absolute;
	top: 33.5px;
	right: 16.5px;
}
.recruitment .inner {
	padding: 78px 0 70px;
}
.recruitment .image {
	width: 533px;
	margin: 0 auto;
}
.recruitment .image img {
	width: 100%;
}
.contents .banner {
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
	z-index: 1;
	margin-top: 70px;
}
.contents .banner li {
	width: 275px;
	height: 155px;
	font-size: 26px;
	line-height: 1.3846;
	letter-spacing: 0.2em;
	font-family:"Roboto";
	font-weight: bold;
	margin: 0 17.5px;
	position: relative;
	overflow: hidden;
}
.contents .banner li a {
	color: #fff;
	display: flex;
	align-items: center;
	width: 100%;
	height: 100%;
	padding-left: 24px;
	box-sizing: border-box;
	transition: all 0.2s;
}
.contents .banner li span {
	z-index: 1;
	position: relative;
}
.contents .banner li .small {
	font-size: 14px;
	font-family: "Noto Sans Japanese";
	display: block;
	margin-top: 10px;
	letter-spacing: 0.2em;
}
.contents .banner li img {
	height: 155px;
	object-fit: cover;
	position: absolute;
	transform: scale3d(1, 1, 1);
	top: 0;
	left: 0;
    will-change: transform;
    transition-property: -webkit-transform;
    transition-property: transform;
    transition-property: transform, -webkit-transform;
            transition-timing-function: cubic-bezier(0.2, 1, 0.2, 1);
            transition-duration: 2s;
            transition-delay: 0s;
}
.contents .banner li a:hover img {
	transform: scale3d(1.1, 1.1, 1.1);
}
.contents .banner li a::before {
	content: '';
	display: block;
	width: 8px;
	height: 16px;
	background: url(../../index/images/arrow_wh.svg) no-repeat;
	background-size: contain;
	position: absolute;
	z-index: 2;
	top: 70px;
	right: 19px;
}
.contents .banner-produce {
	background: url(../images/banner_produce.png) no-repeat;
	background-size: contain;
}
.contents .banner-business {
	background: url(../images/banner_business.png) no-repeat;
	background-size: contain;
}
.contents .banner-recruit {
	background: url(../images/banner_recruit.png) no-repeat;
	background-size: contain;
}

/* concept 
---------------*/
.concept{
	padding-left:240px;
}
.concept .ttl{
	font-size:23px;
	letter-spacing:5px;
	padding:100px 0 50px;
	text-align:center;
}
.concept p{
	text-align:center;
	letter-spacing:3px;
	line-height:2.7;
}
.concept p.txt{
	padding-bottom:0;
}
.concept p br{
	display:block;
}

/* section
---------------*/
.section {
	padding-left:240px;
	overflow: hidden;
	position: relative;
	z-index: 1;
}
.section  h2{
	font-size:23px;
	letter-spacing: 0.4em;
	margin-bottom:44px;
}
.section .marker{
	background: linear-gradient(transparent 66%, #8de4e4 24%);
	padding:0 13px 0 16px;
}

html:lang(en) .banner .small {
	display: none;
}


}
@media screen and (max-width:768px) {
	/* .header .logo {
		position: fixed;
	}
	.container.scroll-end .header .logo {
		position: relative;
	} */
	
	.mainVisual {
		width: 100%;
		height: 100%;
		position: relative;
		/* top: 60px; */
		left: 0;
	}
	.main-image {
		position: relative;
	}
	.main-image li .kv{
		position: absolute;
		top: 0;
		left: 0;
		height: 100vh;
		object-fit: cover;
	} 
	
	.mainVisual .inner {
		position: relative;
	}
	html:lang(en) .main-title {
		letter-spacing: 0.1em;
	}
	.main-title {
		font-size: 6.4vw;
		letter-spacing: 0.16em;
		font-weight: 600;
		color: #E87F2B;
		text-align: center;
		padding:12vw 0 7vw;
		position: relative;
		z-index: 1;
	}
	.main-title::before {
		content: '';
		display: block;
		width: 20.4vw;
		height: 20.4vw;
		background: url(../images/icon_recruit.svg) no-repeat;
		background-size: contain;
		margin: 0 auto 4vw;
	}
	 .main-title .small {
		font-size: 3.466vw;
		letter-spacing: 0.2em;
        margin-top: 3vw;
        display: block;
	}
	/* .mainVisual .main-text {
		font-size: 4.266vw;
		letter-spacing: 0.1em;
		color: #fff;
		line-height: 2.625;
		text-align: center;
		margin: 0;
		position: relative;
		z-index: 1;
	} */
	.mainVisual.show + div.main-text {
		opacity: 1;
	}
	div.main-text {
		font-size: 4.8vw;
		width: 76vw;
		margin: 0 auto;
		position: relative;
		z-index: 10;
		line-height: 2;
		letter-spacing: 0.1em;
		color: #fff;
		padding-bottom: 10vw;
		transition: 0.6s ease-in-out;
		text-align: center;
		/* opacity: 0; */
	}
	div.main-text .small {
		font-size: 3.7333vw;
		letter-spacing: 0;
		display: block;
		text-align: left;
		line-height: 2.5714;
		margin-top: 4.5vw;
	}
	div.main-text .line {
		display: block;
		transition: 0.8s cubic-bezier(.53,-0.01,.39,1);
		/* opacity: 0; */
		margin-bottom: 6vw;
	}
	div.main-text .line br {
		display: none;
	}
	div.main-text .line.show {
		opacity: 1;
		transform: none;
	}
	.mainVisual.show div.main-text {
		opacity: 1;
	}
	.mainVisual.show .main-image li .main-title,
	.mainVisual.show .main-image li .main-text {
	  opacity: 0;
    }
	/* .mainVisual img.switch {
		opacity: 0;
	} */
	.mainVisual .logo {
        width: 49.3vw;
        position: absolute;
        z-index: 2;
        bottom: 21vw;
        left: 0;
        right: 0;
        margin: auto;
        padding-left: 3vw;
	}
	.mainVisual .logo img {
		width: 100%;
	}
	.mainVisual .scroll {
		width: 6.9333vw;
		height: 20.8vw;
		font-size: 2.667vw;
		position: absolute;
        left: 6vw;
        bottom: 8vw;
		transform: translateX(-50%);
		z-index: 2;
		overflow: hidden;
	}
	.mainVisual .scroll-text {
		position: absolute;
		transform: rotate(90deg);
		color: #fff;
        left: -1.5vw;
        top: 4.5vw;
        letter-spacing: 0.4em;
	}
	.mainVisual .scroll-line {
		position: absolute;
		left: 0;
		bottom: 0;
		width: 13px;
		animation-name: kf-arrow-anime;
		animation-duration: 2s;
		animation-timing-function: linear;
		animation-delay: 0s;
		animation-iteration-count: infinite;
		animation-direction: normal;
		animation-fill-mode: forwards;
	}
	.contents {
		background-color: #F7F7F7;
	}

	.contents .section-title{
		font-size: 7.466vw;
		line-height: 1.26;
		font-weight: bold;
		font-family:"Roboto";
		letter-spacing: 0.2em;
		color: #E87F2B;
		text-align: center;
		padding-bottom: 5.6vw;
		position: relative;
		margin-bottom: 8.2vw;
	}
	.contents .section-title::before {
		content: '';
		display: block;
		width: 16vw;
		height: 1.6vw;
		background-color: #E87F2B;
		position: absolute;
		bottom: 0;
		left: 0;
		right: 0;
		margin: 0 auto;
	}
	.contents .section-subtitle {
		font-size: 3.733vw;
		letter-spacing: 0.1em;
		color: #333;
		display: block;
		font-family: "Noto Sans Japanese";
		margin-top: 2.5vw;
	}
	.contents .detail {
        width: 69.6vw;
        height: 16.266vw;
        line-height: 16.266vw;
        font-size: 4vw;
        letter-spacing: 0.04em;
        margin: 8vw auto 0;
        position: relative;
        border: 1px solid #B0B0B0;
    }
	.contents .detail a {
        display: block;
        width: 100%;
        height: 100%;
        box-sizing: border-box;
        background-color: #fff;
        padding-left: 35px;
        transition: all 0.2s;
    }
	.contents .detail a::before {
        content: '';
        display: block;
        width: 2.666vw;
        height: 2.666vw;
        background: url(../images/icon_blank.svg) no-repeat;
        position: absolute;
        top: 6.933vw;
        right: 3.66vw;
    }
	.recruitment .inner {
		padding: 13vw 0 0;
	}
	.recruitment .image {
        width: 137.333vw;
        margin: 0 auto 25vw;
        margin-left: -18.5vw;
	}
	.recruitment .image img {
		width: 100%;
	}

	.stripe-table {
		width: 87.466vw;
		margin: 0 auto;
        box-sizing: border-box;
	}
	.stripe-table tr:nth-of-type(odd) {
		background-color: #EDEDED;
	}
	.stripe-table tr:nth-of-type(even) {
		background-color: #fff;
	}
	.stripe-table tr {
		display: block;
		padding: 5vw 6vw;
	}
	
	.stripe-table th {
		display: block;
		width: 100%;
		font-size: 3.4vw;
		font-weight: bold;
		margin-bottom: 1.5vw;
	}
	.stripe-table td {
		line-height: 2;
		display: block;
		width: 100%;
		font-size: 3.4vw;
		letter-spacing: 0;
	}
	.stripe-table td li{
		line-height: 2;
	}
	.stripe-table .att {
		color: #E87F2B;
		margin-top: 1.4vw;
        display: block;
	}
	.stripe-table td .text-link {
		color: #8DE4E4;
		display: inline-block;
		text-decoration: underline;
	}
	.contents .banner {
		padding: 13.333vw 0;
	}
	.contents .banner li {
		width: 73.333vw;
		height: 30.666vw;
		font-size: 6.9333vw;
		line-height: 1.153846;
		letter-spacing: 0.2em;
		font-family:"Roboto";
		font-weight: bold;
		position: relative;
		overflow: hidden;
		margin: 0 auto;
	}
	.contents .banner li:not(:last-child) {
		margin-bottom: 8vw;
	}
	.contents .banner li a {
		color: #fff;
		display: flex;
		align-items: center;
		width: 100%;
		height: 100%;
		padding-left: 6.533vw;
		box-sizing: border-box;
		transition: all 0.2s;
	}
	.contents .banner li span {
		z-index: 1;
		position: relative;
	}
	.contents .banner li span.small {
		font-size: 3.7333vw;
		font-family: "Noto Sans Japanese";
		display: block;
		margin-top: 2.2vw;
		letter-spacing: 0.2em;
	}
	.contents .banner li img {
		position: absolute;
		transform: scale3d(1, 1, 1);
		top: 0;
		bottom: 0;
		left: 0;
		right: 0;
		margin: auto;
		will-change: transform;
		transition-property: -webkit-transform;
		transition-property: transform;
		transition-property: transform, -webkit-transform;
				transition-timing-function: cubic-bezier(0.2, 1, 0.2, 1);
				transition-duration: 2s;
				transition-delay: 0s;
	}
	.contents .banner li a:hover img {
		transform: scale3d(1.1, 1.1, 1.1);
	}
	.contents .banner li a::before {
		content: '';
		display: block;
		width: 2.133vw;
		height: 4.266vw;
		background: url(../../index/images/arrow_wh.svg) no-repeat;;
		background-size: contain;
		position: absolute;
		z-index: 2;
		top: 13.6vw;
		right: 5.04vw;
	}
	.contents .banner-produce {
		/* background: url(../images/banner_produce.png) no-repeat; */
		background-size: contain;
	}
	.contents .banner-business {
		/* background: url(../images/banner_business.png) no-repeat; */
		background-size: contain;
	}
	.contents .banner-recruit {
		/* background: url(../images/banner_recruit.png) no-repeat; */
		background-size: contain;
	}
}
@keyframes kf-arrow-anime {
	0%,
	50%,
	100% {
	  transform: translateY(-10%);
	}
	30% {
	  transform: none;
	}
  }