@charset "UTF-8";
@import "/recruit/css/recruit.pc.css";

/* ---------------------------------------------------------
	CSS Document main
--------------------------------------------------------- */

#main {
	height: calc(100vh - 40px);
	background: #fff;
	position: relative;
	z-index: 0;
}

@media only screen and (max-width: 1050px) {
	#main {
		margin-bottom: 40px;
	}
}

#main:before {
	content: '';
	width: calc(100% - 150px);
	height: calc(100% - 75px);
	background: #006FFF;
	position: absolute;
	top: 0;
	left: 150px;
	z-index: -1;
}

#main .en img {
	width: calc(100% - 4vw);
	height: 44.87850241545894vw;
	transform: translateY(-50%);
	position: absolute;
	top: 50%;
	left: 7vw;
}

#main .en img.lazyloaded {
	opacity: 0.15 !important;
	animation: none;
}

#main .picture {
	width: 100%;
	padding: 0 5% 0 30%;
	transform: translateY(-50%);
	position: absolute;
	top: 50%;
	left: 0;
}

#main .picture img {
	max-height: calc(100vh - 100px);
}

#main figure.ja {
	width: 100%;
	padding: 0 80px 140px;
	text-align: left;
	transform: translateY(-50%);
	position: absolute;
	top: 50%;
	left: 0;
}

#main figure.ja img {
	max-width: 488px;
	width: 30%;
}

#main figure.power {
	width: 100%;
	padding: 200px 40px 0;
	text-align: left;
	transform: translateY(-50%);
	position: absolute;
	top: 50%;
	left: 0;
}

#main figure.power img {
	max-width: 1706px;
	width: 80%;
}

#main .container {
	height: calc(100vh - 40px);
	position: relative;
	z-index: 0;
}

#main h2 {
	display: inline-block;
	vertical-align: top;
	height: 80px;
	padding: 25px 30px;
	background: #000;
	letter-spacing: 0.05em;
	line-height: 30px;
	white-space: nowrap;
	color: #fff;
	position: absolute;
	bottom: -40px;
	left: 0;
}

#main h2 .en {
	display: inline-block;
	vertical-align: top;
	margin-right: 20px;
	padding-right: 20px;
	border-right: solid 1px #fff;
	font-weight: 800;
	font-size: 40px;
}

#main h2 .ja {
	display: inline-block;
	vertical-align: top;
	font-weight: bold;
	font-size: 14px;
}

/* ---------------------------------------------------------
	CSS Document recruit
--------------------------------------------------------- */

#recruit .find {
	background: #fff;
	position: relative;
	z-index: 0;
}

#recruit .find:before {
	content: '';
	width: 62%;
	height: 100%;
	position: absolute;
	top: 0;
	z-index: -1;
	transition: .4s;
}

#recruit .find:nth-of-type(1):before {
	background: #ff0;
	right: 0;
}

#recruit .find:hover:nth-of-type(1):before {
	background: #FCFC4C;
}

#recruit .find:nth-of-type(2):before {
	background: #FF006F;
	left: 0;
}

#recruit .find:hover:nth-of-type(2):before {
	background: #EE297E;
}

#recruit .find:nth-of-type(3):before {
	background: #00D555;
	right: 0;
}

#recruit .find:hover:nth-of-type(3):before {
	background: #21C864;
}

#recruit figure {
	content: '';
	width: 38%;
	height: 100%;
	overflow: hidden;
	position: absolute;
	top: 0;
	z-index: -1;
}

#recruit .find:nth-of-type(odd) figure {
	left: 0;
}

#recruit .find:nth-of-type(even) figure {
	right: 0;
}

#recruit figure img {
	max-width: 400%;
	transform: translateY(-50%);
	position: absolute;
	top: 50%;
	left: 0;
	transition: .4s;
}

@media only screen and (max-width: 1237px) {
	#recruit figure img {
		height: 100%;
	}
}

@media only screen and (min-width: 1238px) {
	#recruit figure img {
		width: 100%;
	}
}

@media only screen and (max-width: 1309px) {
	#recruit .find:nth-of-type(1) figure img {
		height: 100%;
	}
}

@media only screen and (min-width: 1310px) {
	#recruit .find:nth-of-type(1) figure img {
		width: 100%;
	}
}

#recruit .find:hover figure img {
	opacity: 0.8;
}

#recruit .section {
	width: 62%;
	padding: 45px 0 30px;
	text-align: left;
	position: relative;
}

#recruit .find:nth-of-type(odd) .section {
	margin-left: auto;
	padding-left: 18%;
}

#recruit .find:nth-of-type(even) .section {
	margin-right: auto;
	padding-left: 10%;
	padding-right: 10%;
}

@media only screen and (max-width: 940px) {
	#recruit .find:nth-of-type(odd) .section {
		padding-left: 8%;
	}
	#recruit .find:nth-of-type(even) .section {
		padding-left: 0;
	}
}

#recruit .logo {
	-ms-writing-mode: tb-rl;
	writing-mode: vertical-rl;
	transform: translateY(-50%);
	font-size: 14px;
	position: absolute;
	top: 50%;
	left: 60px;
}

#recruit .find:nth-of-type(even) .logo {
	left: 0;
}

@media only screen and (max-width: 940px) {
	#recruit .logo {
		display: none;
	}
}

#recruit h3 {
	height: 38px;
	margin-bottom: 40px;
	padding-left: 40px;
	font-weight: bold;
	font-size: 16px;
	line-height: 42px;
	position: relative;
	z-index: 0;
}

#recruit h3:before {
	content: '';
	width: 1px;
	height: 40px;
	background: #000;
	transform: translateY(-50%) rotate(30deg);
	position: absolute;
	top: 50%;
	left: 10px;
}

#recruit .copy {
	margin-bottom: 15px;
	font-weight: bold;
	font-size: 30px;
	line-height: 1.3;
}

@media only screen and (max-width: 940px) {
	#recruit .copy br {
		display: none;
	}
}

#recruit p {
	margin-bottom: 40px;
	text-align: justify;
}

#recruit .more a {
	display: block;
	width: 230px;
	border-top: solid 1px #000;
	text-decoration: none;
	font-weight: bold;
	font-size: 14px;
	letter-spacing: 0.05em;
	line-height: 70px;
	color: #000;
	position: relative;
}

#recruit .more a:before {
	content: '';
	width: 24px;
	height: 24px;
	border-radius: 100%;
	border: solid 1px #000;
	transform: translateY(-50%);
	position: absolute;
	top: 50%;
	right: 0;
	transition: .4s;
}

#recruit .find:hover .more a:before {
	background: #000;
}

#recruit .more a:after {
	content: '';
	width: 0;
	height: 0;
	margin-top: -3px;
	border: solid 3px transparent;
	border-left: solid 5px #000;
	position: absolute;
	top: 50%;
	right: 7px;
	transition: .4s;
}

#recruit .section:hover .more a:after {
	border-left: solid 5px #fff;
}

/* ---------------------------------------------------------
	CSS Document guideline
--------------------------------------------------------- */

#guideline .container {
	margin-bottom: 100px;
	padding-top: 90px;
}

#guideline .table {
	display: table;
	margin-left: auto;
	text-align: left;
}

#guideline dl {
	display: table-row;
}

#guideline dt {
	display: table-cell;
	vertical-align: top;
	width: 30%;
	padding: 1em 0;
	font-weight: bold;
}

#guideline dd {
	display: table-cell;
	vertical-align: top;
	padding: 1em 0;
}

@media only screen and (min-width: 860px) {
	#guideline dd {
		width: 460px;
	}
}

/* ---------------------------------------------------------
	CSS Document schedule
--------------------------------------------------------- */

#schedule .section {
	margin-bottom: 80px;
	text-align: left;
}

#schedule h4 {
	padding-bottom: 20px;
	font-weight: bold;
	font-size: 16px;
	white-space: nowrap;
}

@media only screen and (min-width: 860px) {
	#schedule .section {
		margin-left: auto;
	}
	#schedule .section_01 {
		width: 460px;
	}
}

#schedule .section_01 {
	display: table-cell;
	vertical-align: top;
	padding-left: 30px;
}

@media only screen and (min-width: 790px) {
	#schedule .section {
		display: table;
	}
	#schedule h4 {
		display: table-cell;
		vertical-align: top;
		width: 200px;
	}
}

@media only screen and (max-width: 789px) {
	#schedule .section_01 {
		padding-left: 80px;
	}
}

#schedule h5 {
	margin-bottom: 15px;
	font-weight: bold;
	font-size: 16px;
	line-height: 20px;
	color: #006FFF;
	position: relative;
	z-index: 0;
}

#schedule h5:before {
	content: '●';
	font-size: 15px;
	line-height: 18px;
	position: absolute;
	left: -30px;
}

#schedule dl {
	display: flex;
	margin-bottom: 15px;
}

#schedule dt {
	height: 26px;
	margin-right: 1em;
	padding: 0 1em;
	border-radius: 26px;
	border: solid 1px #FF0057;
	font-weight: bold;
	font-size: 12px;
	line-height: 26px;
	color: #FF0057;
}

#schedule .section_01_a {
	position: relative;
	z-index: 0;
}

#schedule .section_01_a:before {
	content: '';
	width: 4px;
	height: calc(100% - 10px);
	background: #E8E8E8;
	position: absolute;
	top: 5px;
	left: -25px;
	z-index: -1;
}

#schedule .section_01_b {
	margin-bottom: 30px;
}

/* ---------------------------------------------------------
	CSS Document back
--------------------------------------------------------- */

#back {
	display: none;
}
