@charset "utf-8";
/* -----------------------------------------------
= loading
----------------------------------------------- */
.loading {
	position: fixed;
	top: 0;
	left: 0;
	z-index: 30;
	width: 100%;
	height: 100vh;
	background: #fff;
}
/* -----------------------------------------------
= splash
----------------------------------------------- */
.splash_noise {/* 1.ノイズ背景表示（loadingフェードアウト） */
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 20;
	background: url(/company/recruit/images/fv_bg.jpg) no-repeat 50% / cover;
	overflow: hidden;
	transition: 1.4s 2.8s;/* 4.ノイズ背景フェードアウト */
}
.is-loaded .splash_noise {
	opacity: 0;
}
.splash_noise .bg {
	position: absolute;
	top: calc(50% - 63px);
	left: calc(50% - 175px);
	width: 140px;
	height: 155px;
	z-index: 2;
	background: #fff;
	opacity: 0;
	transition: .8s .6s;/* 2.白背景フェードイン */
}
.is-loaded .splash_noise .bg {
	opacity: 1;
	animation: backBoxAnimeSP 1.4s forwards 2s;/* 3.白背景拡大 */
}
@keyframes backBoxAnimeSP {
	0% {
		top: calc(50% - 63px);
		left: calc(50% - 175px);
		width: 140px;
		height: 155px;
	}
	100% {
		top: 0;
		right: 0;
		left: 0;
		bottom: 0;
		width: 100%;
		height: 100%;
	}
}
.splash_logo {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100svh;
	z-index: 30;
	opacity: 0;
	transition: .8s .6s;/* 2.ロゴフェードイン */
}
.is-loaded .splash_logo {
	opacity: 1;
}
.splash_logo p {
	display: flex;
	align-items: end;
	position: absolute;
	top: calc(50% - 94px);
	left: calc(50% - 175px);
	width: 330px;
	height: 187px;
}
.splash_logo img {
	width: 140px;
	vertical-align: bottom;
}
.wrap {
	position: relative;
	z-index: 40;
	background: #fff;
	opacity: 0;
	transition: 1.4s 2.8s;/* 4.コンテンツフェードイン */
}
.is-loaded .wrap {
	opacity: 1;
}
@media print, screen and (min-width: 767px) {/* PC */
.splash_noise .bg {
	top: calc(50% - calc(100 / 1500 * 100vw));
	left: calc(50% - calc(127 / 1500 * 100vw));
	width: calc(254/ 1500 * 100vw);
	height: calc(282 / 1500 * 100vw);
}
.is-loaded .splash_noise .bg {
	animation: backBoxAnimePC 1.4s forwards 2s;
}
@keyframes backBoxAnimePC {
	0% {
		top: calc(50% - calc(100 / 1500 * 100vw));
		left: calc(50% - calc(127 / 1500 * 100vw));
		width: calc(254/ 1500 * 100vw);
		height: calc(282 / 1500 * 100vw);
	}
	100% {
		top: 0;
		right: 0;
		left: 0;
		bottom: 0;
		width: 100%;
		height: 100%;
		max-width: 100%;
		max-height: 100%;
	}
}
.splash_logo p {
	top: calc(50% - calc(100 / 1500 * 100vw));
	left: calc(50% - calc(127 / 1500 * 100vw));
	width: calc(254/ 1500 * 100vw);
	height: calc(282 / 1500 * 100vw);
}
.splash_logo img {
	width: 100%;
}
}/* @media */
/* -----------------------------------------------
= fv
----------------------------------------------- */
.fv {
	position: relative;
	width: 100%;
	height: 100svh;
	overflow: hidden;
}
.fv .copy {
	position: absolute;
	top: calc(50% - 93px);
	left: calc(50% - 175px);
	z-index: 1;
	width: 330px;
	height: 187px;
}
.fv .copy img {
	width: 100%;
}
@media print, screen and (min-width: 767px) {/* PC */
.fv {
	height: 100vh;
}
.fv::before {
	content: '';
	position: absolute;
	top: 84px;
	left: 0;
	width: 100%;
	max-width: calc(621 / 1500 * 100vw);
	height: calc(100vh - 84px);
	background: url(/company/recruit/images/fv_img01.jpg) no-repeat 100% 50% / cover;
	opacity: 0;
	transform: translateX(-30px);
	transition: 1s 3.6s;
}
.is-loaded .fv::before {
	transform: translateX(0);
	opacity: 1;
}
.fv .copy {
	top: calc(50% - calc(155 / 1500 * 100vw));
	left: calc(50% - calc(127 / 1500 * 100vw));
	width: calc(598 / 1500 * 100vw);
	height: calc(340 / 1500 * 100vw);
}
}/* @media */
/* -----------------------------------------------
= effect
----------------------------------------------- */
.ef-img_r {
	opacity: 0;
	transform: translateX(30px);
	transition: .8s .4s;
}
.ef-img_r.visible {
	opacity: 1;
	transform: translateX(0);
}
.ef-img_l {
	opacity: 0;
	transform: translateX(-30px);
	transition: .8s .4s;
}
.ef-img_l.visible {
	opacity: 1;
	transform: translateX(0);
}
.ef-trans_img {
	overflow: hidden;
}
.ef-trans_img img {
	display: block;
	transform: translateY(100%);
	transition: transform .8s .4s;
}
.ef-trans_img.visible img {
	transform: translateY(0);
}
.ef-trans_text > span {
	display: block;
	overflow: hidden;
}
.ef-trans_text > span > span,
.ef-trans_text > span > img {
	display: block;
	transform: translateY(100%);
	transition: transform .8s .4s;
}
.ef-trans_text.visible > span > span,
.ef-trans_text.visible > span > img {
	transform: translateY(0);
}
/* -----------------------------------------------
= message
----------------------------------------------- */
.message {
	overflow: hidden;
}
.message .img img {
	height: calc(400 / 500 * 100vw);
	object-fit: cover;
	object-position: 100% 50%;
}
.message .set {
	position: relative;
	z-index: 1;
	display: table;
	margin: 0 auto;
	padding: 77px 20px 57px;
}
.message h2 {
	margin-bottom: 30px;
}
.message h2 img {
	width: 200px;
}
.message p {
	margin-bottom: 20px;
	font-size: 1.5rem;
	font-weight: 500;
	line-height: 3rem;
	letter-spacing: .075em;
}
@media print, screen and (min-width: 767px) {/* PC */
.message {
	position: relative;
	min-height: calc(100vh - 84px);
}
.message::before {
	content: '';
	position: absolute;
	top: 0;
	right: 0;
	width: 100%;
	max-width: calc(911 / 1500 * 100vw);
	height: calc(100vh - 84px);
	background: url(/company/recruit/images/message_img01.jpg) no-repeat 0 50% / cover;
	opacity: 0;
	transform: translateX(30px);
	transition: .8s .4s;
}
.message.visible::before {
	opacity: 1;
	transform: translateX(0);
}
.message .set {
	padding: 90px calc(921 / 1500 * 100vw) 0 24px;
}
.message .set_in {
	float: right;
}
.message h2 {
	margin-bottom: 50px;
}
.message h2 img {
	width: 242px;
}
.message p {
	margin-bottom: 0;
	font-weight: 500;
	line-height: 3.7rem;
}
.message p + p {
	margin-top: 40px;
}
}/* @media */
@media print, screen and (max-width: 1000px) and (min-width: 767px) {/* TABLET */
.message::before {
	max-width: calc(710 / 1500 * 100vw);
}
.message .set {
	padding-right: calc(720 / 1500 * 100vw);
}
}/* @media */
/* -----------------------------------------------
= scroll
----------------------------------------------- */
@media print, screen and (min-width: 767px) {/* PC */
.scroll {
	position: relative;
	padding: 80px 0 55px;
	font-family: 'Static';
	font-size: 1.7rem;
	letter-spacing: .05em;
	text-align: center;
}
.scroll::before,
.scroll::after {
	content: '';
	position: absolute;
}
.scroll::before {
	bottom: 10px;
	left: 50%;
	width: 1px;
	height: 27px;
	background: #333;
	animation: arrowDown01 3s linear 0s infinite;
}
.scroll::after {
	bottom: 0;
	left: calc(50% - 7px);
	width: 14px;
	height: 14px;
	border-right: 1px solid #333;
	border-bottom: 1px solid #333;
	transform: rotate(45deg);
	animation: arrowDown02 3s linear 0s infinite;
}
@keyframes arrowDown01 {
	0% {
		bottom: 20px;
		opacity: 0;
	}
	20% {
		bottom: 10px;
		opacity: 1;
	}
	70% {
		bottom: 10px;
		opacity: 1;
	}
	100% {
		bottom: 0;
		opacity: 0;
	}
}
@keyframes arrowDown02 {
	0% {
		bottom: 10px;
		opacity: 0;
	}
	20% {
		bottom: 0;
		opacity: 1;
	}
	70% {
		bottom: 0;
		opacity: 1;
	}
	100% {
		bottom: -10px;
		opacity: 0;
	}
}
}/* @media */
/* -----------------------------------------------
= lead
----------------------------------------------- */
.lead {
	padding: 70px 20px;
	letter-spacing: .075em;
}
.lead .inner {
	display: table;
	margin: 0 auto;
}
.lead.type01 {
	background: #f1f1f1;
}
.lead.type02 {
	background: #fff;
}
.lead p {
	font-size: 1.6rem;
	line-height: 3rem;
}
.lead .em {
	margin-top: 3rem;
	font-size: 2.7rem;
	font-weight: 700;
	line-height: 3.9rem;
}
@media print, screen and (min-width: 767px) {/* PC */
.lead {
	padding: 190px 24px;
	text-align: center;
}
.lead.type01 {
	background: #fff;
}
.lead p {
	font-size: 2.1rem;
	line-height: 3.6rem;
}
.lead .em {
	margin-top: 4rem;
	font-size: 3.6rem;
	font-weight: 700;
	line-height: 5.4rem;
}
}/* @media */
/* -----------------------------------------------
= block
----------------------------------------------- */
.block_in {
	background: #f1f1f1;
	overflow: hidden;
}
.block .img img {
	height: calc(400 / 500 * 100vw);
	object-fit: cover;
}
.block.type01 .img img {
	object-position: 45% 50%;
}
.block.type02 .img img {
	object-position: 90% 50%;
}
.block.type03 .img img {
	object-position: 36% 50%;
}
.block .inner02 {
	display: table;
	max-width: 420px;
	margin: 0 auto;
	padding: 40px 20px 80px;
}
.block .num {
	margin-bottom: 20px;
}
.block .num img {
	width: 167px;
}
.block h2 {
	margin-bottom: 30px;
}
.block h2 span {
	display: block;
}
.block h2 span:nth-child(1) {
	margin-bottom: 13px;
}
.block.type01 h2 span:nth-child(1) img {
	width: 250px;
}
.block.type01 h2 span:nth-child(2) img {
	width: 176px;
}
.block.type02 h2 span:nth-child(1) img {
	width: 250px;
}
.block.type02 h2 span:nth-child(2) img {
	width: 245px;
}
.block.type03 h2 span:nth-child(1) img {
	width: 180px;
}
.block.type03 h2 span:nth-child(2) img {
	width: 187px;
}
.block .text {
	margin-bottom: 40px;
	font-size: 1.5rem;
	line-height: 3rem;
}
.block h3 {
	margin-bottom: 20px;
}
.block h3 img {
	width: 319px;
}
.block .detail ul {
	padding: 20px;
	border: 1px dotted #333;
}
.block .detail li + li {
	margin-top: 20px;
}
.block .detail figcaption {
	margin-top: 5px;
	font-size: 1.4rem;
	line-height: 2.4rem;
}
@media print, screen and (min-width: 767px) {/* PC */
.block_in {
	background: transparent;
}
.block.type01 .block_in {
	margin-right: 166px;
}
.block.type02 .block_in {
	margin-left: 166px;
}
.block.type03 .block_in {
	margin-right: 166px;
}
.block .img img {
	height: auto;
	object-fit: cover;
}
.block .inner01 {
	background: #f1f1f1;
}
.block .inner02 {
	display: flex;
	justify-content: space-between;
	max-width: 1100px;
	margin: 0 auto;
	padding: 50px 34px 100px;
}
.block .intro {
	width: 550px;
	margin-bottom: 60px;
	margin-right: 30px;
}
.block .num {
	margin-bottom: 25px;
}
.block .num img {
	max-width: 220px;
	width: auto;
}
.block h2 {
	margin-bottom: 45px;
}
.block.type01 h2 span:nth-child(1) img {
	width: 370px;
	margin-bottom: 5px;
}
.block.type01 h2 span:nth-child(2) img {
	width: 260px;
}
.block.type02 h2 span:nth-child(1) img {
	width: 369px;
	margin-bottom: 5px;
}
.block.type02 h2 span:nth-child(2) img {
	width: 362px;
}
.block.type03 h2 span:nth-child(1) img {
	width: 266px;
	margin-bottom: 5px;
}
.block.type03 h2 span:nth-child(2) img {
	width: 276px;
}
.block h3 {
	margin-bottom: 30px;
}
.block h3 img {
	max-width: 370px;
	width: auto;
}
.block .text {
	margin-bottom: 0;
	font-size: 1.6rem;
}
.block .detail {
	width: 506px;
	margin-bottom: 60px;
}
.block .detail ul {
	display: flex;
	padding: 0;
	border: none;
}
.block .detail li + li {
	margin: 0 0 0 20px;
}
}/* @media */
@media print, screen and (max-width: 1500px) and (min-width: 1001px) {/* TABLET */
.block.type01 .block_in {
	margin-right: calc(166 / 1500 * 100%);
}
.block.type02 .block_in {
	margin-left: calc(166 / 1500 * 100%);
}
.block.type03 .block_in {
	margin-right: calc(166 / 1500 * 100%);
}
.block.type01 .inner {
	margin-left: calc(166 / 1500 * 100%);
}
.block.type02 .inner {
	margin-right: calc(166 / 1500 * 100%);
}
.block.type03 .inner {
	margin-left: calc(166 / 1500 * 100%);
}
}/* @media */
@media print, screen and (max-width: 1000px) and (min-width: 767px) {/* TABLET */
.block.type01 .block_in {
	margin-right: 32px;
}
.block.type02 .block_in {
	margin-left: 32px;
}
.block.type03 .block_in {
	margin-right: 32px;
}
.block.type01 .inner {
	margin-left: 0;
}
.block.type02 .inner {
	margin-right: 0;
}
.block.type03 .inner {
	margin-left: 0;
}
}/* @media */
/* -----------------------------------------------
= category_nav
----------------------------------------------- */
.category_nav {
	position: relative;
	padding: 80px 20px;
	color: #fff;
	background: #333;
	overflow: hidden;
}
.category_nav .subtitle {
	margin-bottom: 80px;
	font-weight: 500;
	text-align: center;
}
.category_nav .subtitle span {
	display: block;
}
.category_nav .subtitle .en {
	margin-bottom: 20px;
	font-size: 1.9rem;
}
.category_nav .subtitle .jp {
	font-size: 2.7rem;
}
.category_nav .special_wrap {
	max-width: 420px;
	margin: 0 auto;
}
.category_nav .special {
	color: #fff;
	background: #0399ff;
}
.category_nav .special + .special {
	margin-top: 80px;
}
.category_nav .special a {
	display: block;
	background: #fff;
}
.category_nav .special.type01 .img {
	position: relative;
	top: -22px;
	margin: 0 -32px -15px -17px;
}
.category_nav .special.type01 .img img {
	width: calc(12px + 100vw);
}
.category_nav .special.type02 .img {
	position: relative;
	top: -16px;
	margin: 0 -25px -10px -30px;
}
.category_nav .special.type02 .img img {
	width: calc(15px + 100vw);
}
.category_nav .special .set {
	position: relative;
	padding: 30px;
	color: #fff;
	background: #0399ff;
}
.category_nav .special .set::before {
	content: '';
	position: absolute;
	top: 30px;
	right: 50px;
	width: 1px;
	height: calc(100% - 60px);
	background: #fff;
}
.category_nav .special .set::after {
	content: '';
	position: absolute;
	top: calc(50% - 7px);
	right: 25px;
	width: 15px;
	height: 15px;
	border-top: 1px solid #fff;
	border-right: 1px solid #fff;
	transform: rotate(45deg);
}
.category_nav .special.type01 .set h3 img {
	width: 290px;
}
.category_nav .special.type02 .set h3 img {
	width: 290px;
}
.category_nav .special.type03 .set h3 img {
	width: 206px;
}
@media print, screen and (max-width: 500px) {/* SP */
.category_nav .special.type01 .set h3 img {
	width: calc(290 / 500 * 100vw);
}
.category_nav .special.type02 .set h3 img {
	width: calc(290 / 500 * 100vw);
}
.category_nav .special.type03 .set h3 img {
	width: calc(206 / 500 * 100vw);
}
}/* @media */
@media print, screen and (min-width: 767px) {/* PC */
.category_nav {
	padding: 105px 24px 65px;
}
.category_nav .subtitle {
	margin-bottom: 105px;
}
.category_nav .subtitle .en {
	margin-bottom: 30px;
	font-size: 2.2rem;
}
.category_nav .subtitle .jp {
	font-size: 4.6rem;
}
.category_nav .special_wrap {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	max-width: none;
}
.category_nav .special {
	width: 320px;
	margin: 0 35px 40px;
}
.category_nav .special + .special {
	margin-top: 0;
}
.category_nav .special.type01 .img {
	top: -22px;
	margin: 0 -31px -15px -17px;
}
.category_nav .special.type01 .img img {
	width: 370px;
}
.category_nav .special.type02 .img {
	top: -17px;
	margin: 0 -26px -10px -30px;
}
.category_nav .special.type02 .img img {
	width: 377px;
}
.category_nav .special .set {
	padding: 24px;
}
.category_nav .special .set::before {
	top: 24px;
	right: 45px;
}
.category_nav .special .set::after {
	top: calc(50% - 6px);
	right: 20px;
	width: 12px;
	height: 12px;
}
.category_nav .special.type01 .set h3 img {
	width: 216px;
}
.category_nav .special.type02 .set h3 img {
	width: 216px;
}
.category_nav .special.type03 .set h3 img {
	width: 153px;
}
}/* @media */
/* -----------------------------------------------
= print
----------------------------------------------- */
@media print {
}/* @media */

