@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 {
	background: #fff;
	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-color: #fff;
		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;
	}

	.main-image li {
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		/* opacity: 0; */
		transition: opacity 1s ease-in-out;
	}

	.main-image li:first-child {
		opacity: 1;
		z-index: 1;
	}

	.main-image li.show {
	opacity: 1;
	z-index: 1;
}
.main-image li.hide {
	opacity: 0;
	z-index: 0;
}
	html:lang(en) .mainVisual .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: 130px;
		padding-top: 86px;
		left: 50%;
		margin-left: -120px;
		right: 0;
		position: relative;
		z-index: 1;
		opacity: 0;
		transform: translateY(20px);
		transition: 1.3s cubic-bezier(.53, -0.01, .39, 1);
	}

	.container.show .main-title {
		opacity: 1;
		transform: translateY(0);
	}

	.main-title::before {
		content: '';
		display: block;
		width: 98px;
		height: 98px;
		background: url(../images/icon_info.svg) no-repeat;
		position: absolute;
		left: 7px;
		top: 73px;
	}

	.main-title span.small {
		font-size: 18px;
		letter-spacing: 0.25em;
		font-family: "Noto Sans Japanese";
	}

	p.main-text {
		font-size: 22px;
		letter-spacing: 0.4em;
		color: #fff;
		line-height: 2.3636;
		text-align: center;
		margin: 50px 0;
		padding-left: 250px;
		position: relative;
		z-index: 1;
		opacity: 0;
		transform: translateY(20px);
		transition: 1.3s cubic-bezier(.53, -0.01, .39, 1);
	}

	.container.show .main-text {
		opacity: 1;
		transform: translateY(0);
	}

	.mainVisual .scroll {
		width: 33px;
		height: 102px;
		font-size: 11.4px;
		position: absolute;
		left: 67px;
		top: 72vh;
		/* 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 {
		position: relative;
		z-index: 10;
		font-size: 13px;
		line-height: 2.3;
		letter-spacing: 0.3em;
		color: #fff;
		text-align: center;
		padding: 60px 0 60px 235px;
		transition: 0.6s ease-in-out;
		opacity: 0;
	}

	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: 40px;
	}

	.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;
	}

	section.vision .inner {
		padding: 78px 0 70px;
		background-color: #EDEDED;
	}

	section.vision .image {
		width: 737px;
		margin: 0 auto;
	}

	section.vision .image img {
		width: 100%;
	}

	section.conduct .inner {
		padding: 78px 0 65px;
	}

	section.conduct .section-title {
		margin-bottom: 30px;
	}

	section.conduct .dotlist {
		width: 550px;
		margin: 0 auto;
	}

	section.conduct .dotlist li {
		font-size: 16px;
		line-height: 2;
		position: relative;
	}

	section.conduct .dotlist li::before {
		content: '';
		display: block;
		width: 7px;
		height: 7px;
		border-radius: 50%;
		background-color: #E87F2B;
		position: absolute;
		left: -16px;
		top: 16px;
	}

	section.spilit .inner {
		padding: 56px 0 90px;
		background-color: #EDEDED;
	}

	section.spilit .section-title {
		margin-bottom: 27px;
	}

	section.spilit .text {
		font-size: 16px;
		font-weight: bold;
		text-align: center;
		line-height: 2;
		letter-spacing: 0.2em;
	}

	.contents .banner {
		display: flex;
		align-items: center;
		justify-content: center;
		padding-top: 47px;
		position: relative;
		z-index: 1;
	}

	.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-vision {
		background: url(../images/banner_vision.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: fixed;
		top: 60px;
		left: 0;
	}

	.main-image {
		position: relative;
	}

	.main-image li .kv {
		position: absolute;
		top: 0;
		left: 0;
		height: 100vh;
		object-fit: cover;
	
	}
	.main-image li {
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		opacity: 0;
		transition: opacity 1s ease-in-out;
	}

	.main-image li:first-child {
		opacity: 1;
		z-index: 1;
	}

	.main-image li.show {
		opacity: 1;
		z-index: 1;
	}

	.main-image li.hide {
		opacity: 0;
		z-index: 0;
	}

	.mainVisual .inner {
		position: relative;
	}

	html:lang(en) .mainVisual .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: 10vw 0 7.5vw;
		padding-top: calc(10vw + 60px);
		position: relative;
		z-index: 1;
		opacity: 0;
		transform: translateY(20px);
		transition: 1.3s cubic-bezier(.53, -0.01, .39, 1);
	}

	.container.show .main-title {
		opacity: 1;
		transform: translateY(0);
	}

	.main-title::before {
		content: '';
		display: block;
		width: 20.4vw;
		height: 20.4vw;
		background: url(../images/icon_info.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;
	}

	p.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;
		opacity: 0;
		transform: translateY(20px);
		transition: 1.3s cubic-bezier(.53, -0.01, .39, 1);
	}

	.container.show .main-text {
		opacity: 1;
		transform: translateY(0);
	}

	.mainVisual.show+div.main-text {
		opacity: 1;
	}

	div.main-text {
		width: 68vw;
		margin: 7.5vw auto;
		position: relative;
		z-index: 10;
		font-size: 3.466vw;
		line-height: 1.6923;
		letter-spacing: 0;
		color: #fff;
		/* padding-top: 20vw; */
		padding-bottom: 10vw;
		transition: 0.6s ease-in-out;
		opacity: 0;
	}

	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;
	}

	.container.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 .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.5vw;
	}

	.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;
	}

	section.vision .inner {
		padding: 13vw 0 0;
		background-color: #EDEDED;
	}

	section.vision .image {
		/* width: 153vw; */
		width: 737px;
		margin: 0 auto 20vw;
		margin-left: -170px;
	}

	section.vision .image img {
		width: 100%;
	}

	section.conduct .inner {
		padding: 13vw 0 20vw;
	}

	section.conduct .dotlist {
		width: 90vw;
		margin: 0 auto;
	}

	section.conduct .dotlist li {
		font-size: 4.266vw;
		letter-spacing: -0.01em;
		line-height: 2;
		position: relative;
		padding-left: 5.5vw;
		text-indent: 1em;
		margin-left: -1em;
	}

	section.conduct .dotlist li::before {
		content: '';
		display: block;
		width: 2vw;
		height: 2vw;
		border-radius: 50%;
		background-color: #E87F2B;
		position: absolute;
		left: 6vw;
		top: 4vw;
	}

	section.conduct .section-title {
		margin-bottom: 6vw;
	}

	section.spilit .inner {
		padding: 13vw 0;
		background-color: #EDEDED;
	}

	section.spilit .text {
		font-size: 4.2666vw;
		font-weight: bold;
		text-align: center;
		line-height: 1.75;
		letter-spacing: 0.1em;
		width: 80vw;
		margin: 0 auto 7.5vw;
	}

	.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-vision {
		/* background: url(../images/banner_vision.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;
	}
}