@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;
}
/*===========================

   sp layout

===========================*/	
.contents{
	background: #f7f7f7;
	padding-bottom:25%;
	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;
}

/* overview
---------------*/
.overview dl{
		color:#666;
}
.overview dl dt {
	line-height: 1.42857;
	letter-spacing: 0.1em;
}
.overview dl dd{
	letter-spacing: 0.14em;
	line-height: 1.42857;
	padding-bottom:5.9vw;
}
.overview dl dd:last-child{
	padding-bottom:0;
}
.overview#company h2 {
	letter-spacing: 0.35em;
}
.overview#company dl dd {
	letter-spacing: 0.07em;
	line-height: 1.45;
}
/* recruit
---------------*/
.recruit table{
	width:100%;
	color:#666;
}
.recruit table tr{
	border-top:1px solid #ccc;
	border-bottom:1px solid #ccc;
}
.recruit table th{
	display:block;
	padding:6% 0 2% 0;
}
.recruit table td{
	display:block;
	padding:0 0 6% 3%;
}
.recruit table a{
	display:inline-block;
	color:#666;
}
.recruit table .indent{
	padding-left:1em;
}
.recruit table .indent li{
	text-indent:-1em;
}

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

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

    pc layout

===========================*/	
.contents{
	background-color: #f7f7f7;
	padding-bottom:120px;
}

.mainVisual {
	width: 100%;
    height: 100vh;
    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 {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	opacity: 0;
	transition: opacity 1s ease-in-out;
}
.main-image li:first-child {
	opacity: 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;
	letter-spacing: 0.6em;
	line-height: 2.25;
	font-weight: 600;
	color: #fff;
	text-align: center;
	position: absolute;
	padding-left: 260px;
	top: 100px;
	left: 0;
	right: 0;
	margin: auto;
	opacity: 0;
    transform: translateY(20px);
	transition: 1.3s cubic-bezier(.53,-0.01,.39,1);
}
.container.show .main-title {
	opacity: 1;
    transform: translateY(0);
}

.mainVisual .logo {
	position: absolute;
	z-index: 2;
	top: 70.29vh;
	/* bottom: 47px; */
	left: 132px;
	opacity: 0;
	transform: translateY(20px);
	transition: 1.3s cubic-bezier(.53,-0.01,.39,1);
}
.container.show .mainVisual .logo {
	opacity: 1;
	transform: translateY(0);
}
.mainVisual .scroll {
	width: 33px;
    height: 102px;
	font-size: 11.4px;
	position: absolute;
	left: 67px;
	top: 78vh;
    /* bottom: 44px; */
    transform: translateX(-50%);
    z-index: 11;
    overflow: hidden;
	opacity: 0;
	transform: translateY(20px);
	transition: 1.3s cubic-bezier(.53,-0.01,.39,1);
}
.container.show .scroll {
	opacity: 1;
	transform: translateY(0);
}
.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;
}
.container.show + .main-text {
	opacity: 1;
}

.main-text {
	position: relative;
	z-index: 10;
	font-size: 13px;
	font-weight: 500;
	line-height: 2.3;
	letter-spacing: 0.3em;
	color: #fff;
	text-align: center;
	padding: 450px 0 60px 235px ;
	transition: 0.6s ease-in-out;
	opacity: 0;
    transform: translateY(20px);
	overflow: hidden;
	transition: 1.3s cubic-bezier(.53,-0.01,.39,1);
	transition-delay: 1.5s;
}
.container.show .main-text {
	opacity: 1;
    transform: translateY(0);
}
/* .main-text .text {
	padding: 100px 0 0;
} */
.main-text .line {
	display: block;
    transition: 1s cubic-bezier(.53,-0.01,.39,1);
    opacity: 0;
	transform: translateY(20px);
	margin-bottom: 30px;
}
.main-text .line.show {
	opacity: 1;
	transform: none;
}
.contents .banner {
	display: flex;
	align-items: center;
	justify-content: center;
	padding-left: 240px;
	padding-top:70px;
	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(../common/images/banner_vision.png) no-repeat;
	background-size: contain;
}
.contents .banner-business {
	background: url(../common/images/banner_business.png) no-repeat;
	background-size: contain;
}
.contents .banner-recruit {
	background: url(../common/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;
}

/* overview
---------------*/
.overview {
	padding-top:75px;

}
.overview dl{
	width: 640px;
	margin:0 auto;
	line-height:2;
	letter-spacing:2px;
}
html:lang(en) .overview#company h2,
html:lang(en) .overview h2 {
	letter-spacing: 0.2em;
}
html:lang(en) .overview dl dt {
	letter-spacing: 0.08em;
}
html:lang(en) .overview dl dd {
	letter-spacing: 0.08em;
	padding: 0 0 27px 210px;
}
html:lang(en) .overview dl dd br {
	display: none;
}
html:lang(en) .banner .small {
	display: none;
}
.overview dl dt{
	float: left;
	line-height:1.4;
	padding:5px 0 0;
}
.overview dt.prof{
	letter-spacing:-0.5px;
}
.overview dt.prof +dd{
	padding-top:18px;
}
.overview dl dd{
	line-height: 1.93;
	letter-spacing: 0.24em;
	padding: 0 0 27px 108px;
}
.overview#company {
	padding-top: 68px;
}
.overview#company h2 {
	letter-spacing: 0.34em;
}
.overview#company dl dt {
	letter-spacing: 0.2em;
}
.overview#company dl dd {
	letter-spacing: 0.02em;
}
/* recruit
---------------*/
.recruit table{
	width: 890px;
	margin:0 auto;
}
.recruit table th,
.recruit table td{
	line-height:2;
}
.recruit table th{
	width: 250px;
	display:table-cell;
	padding:10px 0;
	text-align:center;
	vertical-align:middle;
	letter-spacing:2px;
}
.recruit table td{
	display:inline-block;
	padding:10px 30px;
	border-left:1px solid #ccc;
	letter-spacing:1px;
}
.recruit table a:hover{
	text-decoration:underline;
}

}
@media screen and (max-width:768px) {
	.header .logo {
		position: fixed;
	}
	.container.scroll-end .header .logo {
		position: relative;
	}
	.mainVisual {
		width: 100%;
		height: calc(100dvh - 60px);
		position: fixed;
		top: 60px;
		left: 0;
	}
	.main-image {
		position: relative;
	}
	.main-image li{
		position: absolute;
		top: 0;
		left: 0;
		height: 100vh;
		left: 0;
		margin: 0 0 0 0;
		position: absolute;
		top: 0px;
		transition-property: transform;
		transition-timing-function: cubic-bezier(0.58, 0.21, 0.41, 0.96);
		width: 100%;
		will-change: transform;
		max-width: 100%;
		position: absolute;
        top: 0;
        left: 0;
        width: 100%;
		/* opacity: 0; */
		transition: opacity 1s ease-in-out;
	}
	.main-image li:nth-child(2) {
		opacity: 0;
		z-index: 0;
		/* display: none; */
	}
	.main-image li.show {
		opacity: 1;
		z-index: 1;
	}
	.main-image li.hide {
		opacity: 0;
		z-index: 0;
	}
	.mainVisual.show .main-image li:first-child {
		opacity: 1;
	}
	.main-image li img {
		height: calc(100% - 60px);
	}
	/* .mainVisual.show .main-image li:nth-child(2) {
		display: block;
		z-index: 10;
		transform: none;
	} */
	
	.mainVisual .inner {
		position: relative;
	}
	html:lang(en) .mainVisual .main-title {
		letter-spacing: 0.1em;
	}
	.main-title {
		font-size: 5.8666vw;
		letter-spacing: 0.2em;
		line-height: 2.363;
		font-weight: 600;
		color: #fff;
		text-align: center;
		position: absolute;
		top: 34vw;
		left: 0;
		right: 0;
		margin: auto;
		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-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: 80vw;
		padding-bottom: 10vw;
		transition: 0.6s ease-in-out;
		opacity: 0;
		z-index: -1;
	}
	.mainVisual.show + .main-title + .main-text {
		z-index: 1;
	}
	.main-text .line {
		display: block;
		transition: 0.8s cubic-bezier(.53,-0.01,.39,1);
		opacity: 0;
		margin-bottom: 6vw;
	}
	.main-text .line br {
		display: none;
	}
	.main-text .line.show {
		opacity: 1;
		transform: none;
	}
	.container.show .main-text {
		opacity: 1;
	}
	/* .mainVisual img.switch {
		opacity: 0;
	} */
	.mainVisual .logo {
        width: 49.3vw;
        position: absolute;
        z-index: 2;
        bottom: calc(21vw + 60px);
        left: 0;
        right: 0;
        margin: auto;
        padding-left: 3vw;
		opacity: 0;
		transform: translateY(20px);
		transition: 1.3s cubic-bezier(.53,-0.01,.39,1);
	}
	.container.show .mainVisual .logo {
		opacity: 1;
		transform: translateY(0);
	}
	.mainVisual .logo img {
		width: 100%;
	}
	.mainVisual .scroll {
		width: 6.9333vw;
		height: 20.8vw;
		font-size: 2.667vw;
		position: absolute;
        left: 6vw;
        bottom: calc(16vw + 60px);
		transform: translateX(-50%);
		z-index: 2;
		overflow: hidden;
		opacity: 0;
		transform: translateY(20px);
		transition: 1.3s cubic-bezier(.53,-0.01,.39,1);
	}
	.container.show .mainVisual .scroll{
		opacity: 1;
		transform: translateY(0);
	}
	.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{
		padding-top: 22.666vw;
		/* margin-bottom: 10.666vw; */
	}
	.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;
	}
  }