/* CSS Document */

h2 {
	display: flex;
	flex-direction: column;
	align-items: center;
	margin-bottom: 65px;
}
h2 .en {
	font-size: calc( 1rem * ( 20 / 16 ) );
	font-weight: 300;
}
h2 .ja {
	font-size: calc( 1rem * ( 18 / 16 ) );
	font-weight: 300;
}

@media only screen and (max-width: 768px) {
	h2 {
		margin-bottom: calc( 100vw * ( 45 / 390 ) );
	}
	h2 .en {
		font-size: calc( 100vw * ( 18 / 390 ) );
	}
	h2 .ja {
		font-size: calc( 100vw * ( 15 / 390 ) );
	}
}


.blocker {
	z-index: 9999 !important;
}

/* recruit
------------------------------------------*/

#recruit .outer {
	padding: 100px 0;
	display: flex;
	flex-direction: column;
	align-items: center;
}
#recruit .copy {
	padding: 50px 0;
}
#recruit .copy img {
	width: calc(702px * 0.8);
}
#recruit .outer p {
	font-size: calc( 1rem * ( 18 / 16 ) );
	line-height: calc( 1rem * ( 45 / 16 ) );
	text-align: center;
}

@media only screen and (max-width: 960px) {
	#recruit .copy {
		padding: calc( 100vw * ( 20 / 390 ) ) 0;
	}
	#recruit .copy img {
		width: calc( 100vw * (253/390));
	}
}
@media only screen and (max-width: 768px) {
	
	#recruit {

	}
	#recruit .outer {
		padding: 0 0 calc(100vw * ( 50 / 390 )) 0;
	}
	#recruit .outer p {
		font-size: calc( 100vw * ( 15 / 390 ) );
		line-height: calc( 1rem * ( 28 / 15 ) );
	}
}

/* movie
------------------------------------------*/

#movie {
	background-color: #eff3f6;
	padding: 50px 0;
}

#movie_slide {
    display: flex;
    align-content: center;
    align-items: center;
    flex-wrap: nowrap;
    height: auto;
    justify-content: flex-end;
    margin: 0px 0px 0px 0px;
    width: 100%;
    max-width: 100%;
    overflow: hidden;
    position: relative;
}

#movie_slide .slide {

}
.slickslider .swiper-slide {
	display: flex;
	justify-content: center;
	text-align: center;
	/*
	padding: 0 25px;
	margin-left: -25px;
	margin-right: -25px;
	*/
	padding: 0 15px;
	margin-left: -15px;
	margin-right: -15px;
	
	position: relative;
}
.swiper .swiper-slide {
	display: flex;
	justify-content: center;
	text-align: center;
	position: relative;
}
.slickslider .swiper-slide {
	/*padding: 0 25px;*/
	padding: 0 15px;
}
.swiper-slide img {
	width: 300px;
	max-width: 100%;
	margin: 0 auto;
	border-radius: 35px;
	object-fit: cover;
	aspect-ratio: 3 / 5;
}
.slickslider .swiper-slide a {
	display: block;
	width: 300px;
	max-width: 100%;
	margin: 0 auto;
	transition: all 0.5s 0s ease;
}
.swiper-slide a:hover {
	opacity: 0.6;
	transition: all 0.5s 0s ease;
}
.swiper-slide a::after {
	width: 100%;
	height: 100%;
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	/*top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);*/
	background-image: url("../recruit/play.svg");
	background-size: calc(100% * (92/300)) calc(100% * (92/300));
	background-repeat: no-repeat;
	background-position: center center;
	z-index: 999;
}
#movie_slide .swiper .swiper-wrapper {
	transition-timing-function: linear !important;
}

@media only screen and (max-width: 768px) {
	.swiper-slide img {
		border-radius: 20px;
	}
	.swiper-slide a::after {
		background-size: calc(100% * (53 / 175))  calc(100% * (53 / 175));
	}
}

/* recruitment
------------------------------------------*/

#recruitment {
	padding: 100px 0;
}

.recruitment_list {
	width: 1060px;
    max-width: 100%;
    margin: auto;
    display: flex;
    justify-content: space-between;	
}
.recruitment_item {
	width: 345px;
}
.recruitment_item img {
	max-width: 100%;	
}

@media only screen and (max-width: 960px) {
	.recruitment_list {
		width: calc(100vw * (340 / 390));
	}
	.recruitment_item {
		width: calc(100vw * (109 / 390));
	}
}

@media only screen and (max-width: 768px) {
	
	#recruitment {
		padding: calc(100vw * ( 50 / 390 )) 0;
	}
	
}


/* new_graduates
------------------------------------------*/

#new_graduates {
	padding: 100px 0;
}
#new_graduates h2 {
	display: flex;
	flex-direction: row;
	justify-content: center;
}
#new_graduates h2 .ja {
	font-size: calc( 1rem * ( 35 / 16 ) );
}
#new_graduates h2 .en {
	font-size: calc( 1rem * ( 18 / 16 ) );
	padding: 0 1em;
}
#new_graduates p.explain {
	text-align: center;
	margin-bottom: 65px;
}

.new_graduates_list {
	width: 860px;
	max-width: 100%;
	margin-left: auto;
	margin-right: auto;
	border-bottom: 1px solid #c9caca;
}

.new_graduates_item {
	width: 100%;
	border-top: 1px solid #c9caca;
	font-size: calc( 1rem * ( 20 / 16 ) );
}
.new_graduates_item_header {
	padding: 1em;
	display: flex;
	justify-content: space-between;
	position: relative;
	cursor: pointer;
}
.new_graduates_item_header span.ico {
	position: absolute;
	top: 50%;
	right: 20px;
	transform: translateY(-50%);
	width: 33px;
	height: 17px;
}
.new_graduates_item_header span.ico img {
	display: block;
}
.new_graduates_item_contents {
	display: none;
	padding: 1em 0;
}
.new_graduates_item .button {
	display: flex;
	padding: 30px 0;
	justify-content: center;
}
.new_graduates_item .button a {
	display: flex;
	justify-content: center;
	align-items: center;
	border-radius: 999px;
	background-color: #6f6e6f;
	border: 1px solid #6f6e6f;
	color: #fff;
	text-decoration: none;
	font-size: calc( 1rem * ( 15 / 16 ) );
	padding: 0.1em 1em;
	transition: all 0.5s 0s ease;
}
.new_graduates_item .button a:hover {
	background-color: #fff;
	border: 1px solid #6f6e6f;
	color: #6f6e6f;
	transition: all 0.5s 0s ease;
}

dl {
	display: flex;
	/*justify-content: space-between;*/
	padding: 0;
	flex-wrap: wrap;
	width: 810px;
	margin: 0 auto;
}
dl dt {
	display: flex;
	justify-content: center;
	
	margin: 0 0 1.5em 0;
	padding: 1rem 1rem 1rem 0.5em;
	width: 15%;
	align-self: flex-start;
	border-bottom: 1px solid #231815;
	position: relative;
	
	font-size: calc( 1rem * ( 15 / 16 ) );
	font-weight: 300;
}
dl dt::after {
	content: '';
	border-right: 1px solid #231815;
	height: 100%;
	position: absolute;
	right: 0;
	top: 0;
	transform-origin: bottom;
	transform: rotate(-20deg);
}
dl dt.none {
	border: none;
}
dl dt.none::after {
	border: none;
}
dl dd {
	display: flex;
	margin: 0 0 1.5em 0;
	padding: 1rem 1rem 1rem 1.5rem;
	width: 85%;
	
	font-size: calc( 1rem * ( 17 / 16 ) );
	font-weight: 300;
}
dl dt.half {
	width: 15%;
}
dl dd.half {
	width: calc(50% - 15%);
}

@media only screen and (max-width: 960px) {
	
	.new_graduates_list {
		width: calc( 100vw * (340/390) );
	}
	
	dl {
		width: calc( 100vw * (340/390) );
		/*justify-content: space-between;*/
	}
	dl dt,
	dl dt.half{
		justify-content: flex-start;
		font-size: calc( 100vw * ( 12 / 390 ) );
		padding: 0.5rem 0.2rem 0.5rem 0.2rem;
		margin: 0 0 2% 0;
		width: 23%;
	}
	dl dt.none {
		border: none;
	}
	dl dt.none::after {
		border: none;
	}
	dl dd,
	dl dd.half {
		font-size: calc( 100vw * ( 13 / 390 ) );
		padding: 0.5rem;
		width: 70%;
	}
}

@media only screen and (max-width: 768px) {
	
	#new_graduates {
		padding: calc(100vw * ( 50 / 390 )) 0;
	}
	
	#new_graduates h2 {
		flex-direction: column;
	}
	#new_graduates h2 .ja {
		font-size: calc( 100vw * ( 22 / 390 ) );
	}
	#new_graduates h2 .en {
		font-size: calc( 100vw * ( 15 / 390 ) );
		padding: 0 1em;
	}
	
	#new_graduates p.explain {
		font-size: calc( 100vw * ( 13 / 390 ) );
	}

	.new_graduates_item {
		font-size: calc( 100vw * ( 17.5 / 390 ) );
	}

	.new_graduates_item .button a {
		font-size: calc( 100vw * ( 14 / 390 ) );
	}

}

/* mid_career
------------------------------------------*/

#mid_career {
	padding: 50px 0;
}
#mid_career h2 {
	display: flex;
	flex-direction: row;
	justify-content: center;
}
#mid_career h2 .ja {
	font-size: calc( 1rem * ( 35 / 16 ) );
}
#mid_career h2 .en {
	font-size: calc( 1rem * ( 18 / 16 ) );
	padding: 0 1em;
}
#mid_career p.explain {
	text-align: center;
	margin-bottom: 65px;
}

.mid_career_list {
	width: 860px;
	max-width: 100%;
	margin-left: auto;
	margin-right: auto;
	border-bottom: 1px solid #c9caca;
}

.mid_career_item {
	width: 100%;
	border-top: 1px solid #c9caca;
	font-size: calc( 1rem * ( 20 / 16 ) );
}
.mid_career_item_header {
	padding: 1em;
	display: flex;
	justify-content: space-between;
	position: relative;
	cursor: pointer;
}
.mid_career_item_header span.label {
	padding-right: 2em;
}
.mid_career_item_header span.ico {
	position: absolute;
	top: 50%;
	right: 20px;
	transform: translateY(-50%);
	width: 33px;
	height: 17px;
}
.mid_career_item_header span.ico img {
	display: block;
}
.mid_career_item_contents {
	display: none;
	padding: 1em;
}


.mid_career_item .button {
	display: flex;
	justify-content: center;
	padding: 30px 0;
}
.mid_career_item .button a {
	display: flex;
	justify-content: center;
	border-radius: 999px;
	background-color: #6f6e6f;
	border: 1px solid #6f6e6f;
	color: #fff;
	text-decoration: none;
	font-size: calc( 1rem * ( 15 / 16 ) );
	padding: 0.1em 1em;
	transition: all 0.5s 0s ease;
}
.mid_career_item .button a:hover {
	background-color: #fff;
	border: 1px solid #6f6e6f;
	color: #6f6e6f;
	transition: all 0.5s 0s ease;
}

#mid_career .tolist {
	display: flex;
	justify-content: center;
	padding: 50px 0 20px;
}
#mid_career .tolist a {
	display: flex;
	justify-content: center;
	align-items: center;
	border-radius: 999px;
	background-color: #6f6e6f;
	border: 1px solid #6f6e6f;
	color: #fff;
	text-decoration: none;
	font-size: calc( 1rem * ( 15 / 16 ) );
	padding: 0.1em 1.5em;
	transition: all 0.5s 0s ease;
}
#mid_career .tolist a:hover {
	background-color: #fff;
	border: 1px solid #6f6e6f;
	color: #6f6e6f;
	transition: all 0.5s 0s ease;
}
@media only screen and (max-width: 960px) {
	.mid_career_list {
		width: calc( 100vw * (340/390) );
	}
}

@media only screen and (max-width: 768px) {
	
	#mid_career {
		padding: calc(100vw * ( 50 / 390 )) 0;
	}
	
	#mid_career h2 {
		flex-direction: column;
	}
	#mid_career h2 .ja {
		font-size: calc( 100vw * ( 22 / 390 ) );
	}
	#mid_career h2 .en {
		font-size: calc( 100vw * ( 15 / 390 ) );
		padding: 0 1em;
	}
	
	#mid_career p.explain {
		font-size: calc( 100vw * ( 13 / 390 ) );
	}

	.mid_career_item {
		font-size: calc( 100vw * ( 17.5 / 390 ) );
	}
	
	.mid_career_item .button a {
		font-size: calc( 100vw * ( 14 / 390 ) );
	}
	
	#mid_career .tolist a {
		width: calc( 100vw * ( 160 / 390 ) );
		font-size: calc( 100vw * ( 14 / 390 ) );
	}

}

/* interview
------------------------------------------*/

#interview {
	padding: 100px 0;
}

#interview p.explain {
	text-align: center;
	margin-bottom: 65px;
}

.interview_list {
	width: 1060px;
	margin-left: auto;
	margin-right: auto;
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
}
.interview_item {
	width: 450px;
	margin-bottom: 50px;
}
.interview_item .image {
	width: 450px;
	max-width: 100%;
	position: relative;
}
.interview_item .image img {
	width: 450px;
	max-width: 100%;
	display: block;
    aspect-ratio: 1 / 1;
    object-fit: cover;
}
.interview_item .image::after {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(0,0,0,0.5);
	opacity: 1;
	transition: all 0.5s 0s ease;
}
.interview_item .image:hover::after {
	opacity: 0;
	transition: all 0.5s 0s ease;
}
.interview_item .text {
	
}
.interview_item .title {
	font-size: calc( 1rem * ( 20 / 16 ) );
	font-weight: 300;
	margin-top: 1em;
	margin-bottom: 0.75em;
}
.interview_item .name {
	font-size: calc( 1rem * ( 16 / 16 ) );
	margin-top: 0;
	margin-bottom: 1.5em;
}
.interview_item .button {
	
}
.interview_item .button a {
	display: inline-block;
	text-align: center;
	border-radius: 999px;
	border: 1px solid #000000;
	text-decoration: none;
	font-size: calc( 1rem * ( 15 / 16 ) );
	padding: 0.1em 2em;
	transition: all 0.5s 0s ease;
}
.interview_item .button a:hover {
	background-color: #000000;
	border: 1px solid #000000;
	color: #fff;
	transition: all 0.5s 0s ease;
}
#interview .tolist {
	display: flex;
	justify-content: center;
	padding: 50px 0 20px;
}
#interview .tolist a {
	display: flex;
	justify-content: center;
	border-radius: 999px;
	background-color: #6f6e6f;
	border: 1px solid #6f6e6f;
	color: #fff;
	text-decoration: none;
	font-size: calc( 1rem * ( 15 / 16 ) );
	padding: 0.1em 2em;
	transition: all 0.5s 0s ease;
}
#interview .tolist a:hover {
	background-color: #fff;
	border: 1px solid #6f6e6f;
	color: #6f6e6f;
	transition: all 0.5s 0s ease;
}
@media only screen and (max-width: 960px) {
	.interview_list {
		width: calc( 100vw * ( 900 / 960 ) );
	}
	.interview_item {
		width: calc( 100vw * ( 450 / 1060 ) );
		margin-bottom:  calc( 100vw * ( 65 / 390 ) );
	}
	.interview_item .image {
		width: 100%;
		position: relative;
	}
	.interview_item .image img {
		width: 100%;
		display: block;	
	}
	.interview_item .image::after {
		display: none;
	}
}

@media only screen and (max-width: 768px) {
	
	#interview {
		padding: calc(100vw * ( 50 / 390 )) 0;
	}
	
	.interview_list {
		width: calc( 100vw * ( 340 / 390 ) );
		flex-direction: column;
	}
	.interview_item {
		width: calc( 100vw * ( 340 / 390 ) );
		margin-left: auto;
		margin-right: auto;
	}
	.interview_item .image::after {
		display: none;
	}
	.interview_item .title {
		font-size: calc( 100vw * ( 16 / 390 ) );
	}
	.interview_item .name {
		font-size: calc( 100vw * ( 12 / 390 ) );
	}
	.interview_item .button a {
		width: calc( 100vw * (160/390) );
		font-size: calc( 100vw * ( 14 / 390 ) );
	}
	#interview .tolist a {
		width: calc( 100vw * (240/390) );
		font-size: calc( 100vw * ( 14 / 390 ) );
	}

}

/* welfare
------------------------------------------*/

#welfare {

}
#welfare .outer {
	background-color: #eff3f6;
	padding: 100px 0;
}

#welfare p.explain {
	text-align: center;
	margin-bottom: 65px;
	line-height: calc( 1rem * ( 30 / 16 ) );
}

.welfare_list {
	width: 1060px;
	margin-left: auto;
	margin-right: auto;
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
}
.welfare_item {
	width: 313px;
	height: 313px;
	margin-bottom: 70px;
	background-color: #fff;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	border-radius: 50px;
}
.welfare_item .image {
	width: 212px;	
}
.welfare_item .text {
	text-align: center;
}
.welfare_item .text .title {
	font-size:  calc( 1rem * ( 20/ 16 ) );
	font-weight: 300;
	margin: 0.5em 0;
}
.welfare_item .text p {
	font-size:  calc( 1rem * ( 14 / 16 ) );
	margin: 0.5em 0;
}

@media only screen and (max-width: 960px) {
	.welfare_list {
		width: calc( 100vw * (340/390) );
	}
	.welfare_item {
		width: calc( 100vw * (420/1060) );
		height: calc( 100vw * (420/1060) );
		margin-bottom: calc( 100vw * (70/1060) );
		border-radius: calc( 100vw * (50/1060) );
	}
	.welfare_item .image {
		width: calc( 100vw * (300/1060) );
	}
	
}

@media only screen and (max-width: 768px) {
	
	#welfare .outer {
		padding: calc(100vw * ( 50 / 390 )) 0;
	}
	
	#welfare p.explain {
		font-size:  calc( 100vw * ( 15 / 390 ) );
	}
	.welfare_list::after {
		content: '';
		width: calc( 100vw * (156/390) );
		margin-left: auto;
		margin-right: auto;
	}
	.welfare_item {
		width: calc( 100vw * (156/390) );
		height: calc( 100vw * (202/390) );
		margin-left: auto;
		margin-right: auto;
	}
	.welfare_item .image {
		width: calc( 100vw * (100/313) );
	}
	.welfare_item .text .title {
		font-size: calc( 100vw * ( 14 / 390 ) );
		margin: 0 0 0.5em 0;
	}
	.welfare_item .text p {
		font-size: calc( 100vw * ( 12 / 390 ) );
		padding-left: 1em;
		padding-right: 1em;
	}
}


/* faq
------------------------------------------*/

#faq {
	padding: 100px 0;
}

#faq h3 {
	text-align: center;
	font-size:  calc( 1rem * ( 25 / 16 ) );
	font-weight: 300;
}

.faq_list {
	width: 860px;
	max-width: 100%;
	margin-left: auto;
	margin-right: auto;
	border-bottom: 1px solid #c9caca;
	margin-bottom: 50px;
}

.faq_item {
	width: 100%;
	border-top: 1px solid #c9caca;
	font-size: calc( 1rem * ( 20 / 16 ) );
	font-weight: 300;
}
.faq_item_header {
	padding: 1em 1em 1em 1em;
	display: flex;
	position: relative;
	cursor: pointer;
}
.faq_item_header .qa_ico,
.faq_item_contents .qa_ico {
	width: 2em;
}
.faq_item_header .label,
.faq_item_contents .answer {
	width: calc(100% - 5em);
}
.faq_item_header span.ico {
	position: absolute;
	top: 50%;
	right: 20px;
	transform: translateY(-50%);
	width: 33px;
	height: 17px;
}
.faq_item_header span.ico img {
	display: block;
}
.faq_item_contents {
	display: none;
	padding: 0 1em 1em 1em;
}
.faq_item_contents_flex {
	display: flex;
	position: relative;
}

@media only screen and (max-width: 960px) {
	.faq_list {
		width: calc( 100vw * (340/390) );
	}
}

@media only screen and (max-width: 768px) {
	
	#faq {
		padding: calc(100vw * ( 50 / 390 )) 0;
	}
	
	#faq h3 {
		font-size:  calc( 100vw * ( 22 / 390 ) );
	}

	.faq_list {
		width: calc( 100vw * ( 340 / 390 ) );
	}
	.faq_item {
		font-size: calc( 100vw * ( 14 / 390 ) );
	}
	.faq_item_header .qa_ico,
	.faq_item_contents .qa_ico {
		width: 2em;
	}
	.faq_item_header .label,
	.faq_item_contents .answer {
		width: calc(100% - 5em);
	}
	.faq_item_header span.ico {
		width: calc( 100vw * ( 23 / 390 ) );
		height: calc( 100vw * ( 11.5 / 390 ) );
	}

}


