.hero-video {
	position: relative;
	height: calc(100vh - 100px);
	overflow: hidden;
	opacity: 0.01;
	animation: load 1.5s 0.8s ease-out forwards;
	/*background-image: url(../images/hero_poster.jpg);
	background-size: cover;
	background-position: center;*/
	text-align: center;
}
/*.hero-video #videowrap {
	position: relative;
	width: 100%;
	padding-top: 56.25%;
  }
  
.hero-video #video {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}*/
.hero-video #video {
	position: absolute;
	top: 50%;
	left: 50%;
	min-width: 100%;
	min-height: 100%;
	width: auto;
	height: auto;
	z-index: -1000;
	overflow: hidden;
	transform: translate(-50%, -50%) scale(1.05);
}
.hero-video #video_sp {
	display: none;
}
.hero-video .hero-overlay {
	display: block;
	position: absolute;
	width: 100%;
	height: 100vh;
	top: 0;
	left: 0;
	background-color: rgba(6, 46, 72, .65);
	z-index: 1;
}
  @keyframes load {
	100% {
	  opacity: 1;
	}
  }

.hero_logo {
	display: block;
    position: absolute;
	margin: 0 auto;
    top: 4rem;
    left: 4rem;
	color: #fff;
	font-size: 6rem;
	z-index: 2;	
}
.catchcopy {
	display: block;
    position: absolute;
    width: 100%;
	margin: 0 auto;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    -webkit-transform: translate(-50%, -50%);
	-ms-transform: translate(-50%, -50%);
	text-align: center;
	color: #fff;
	font-size: 6rem;
	z-index: 2;
}
#main_catch {
    width: 40%;
    fill: transparent;
    animation: 1s linear 2s forwards fadeIn;
}
.svg .st0 {
	fill: #fff;
	stroke: #fff;
	stroke-opacity: 1;
	stroke-width: 1;
	stroke-miterlimit: 10;
  }
.svg path {
	fill-opacity: 0;
	stroke-opacity: 1;
	stroke: #fff;
	fill: #fff;
	stroke-width: 1;
	stroke-miterlimit: 10;
	transition: all 1s ease-out;
  }
  .finished path {
	fill-opacity: 1;
	stroke-opacity: 0;
	stroke: #fff;
	fill: #fff;
	transition: all 1s ease-out;
  }
@keyframes fadeIn {
	from { fill: transparent; }
	to   { fill: #ffffff; }
}
#ie_catch {
	display: none;
}

@media all and (-ms-high-contrast: none) {
	#ie_catch {
		display: block;
		width: 40%;
		margin: 0 auto;
	}
	#main_catch {
		display: none;
	}
}

#slide {
    position: absolute;
    width: 100%;
	height: 30vh;
	bottom: 0;
	margin: 0 auto;
	z-index: 2;
}
#slide .slider {
    position: absolute;
    width: 100%;
    left: 0;
	bottom: 0;
	padding: 0 3.3%;
	overflow: hidden;
	color: #fff;
	font-size: 4rem;
	z-index: 2;
}
.jquery-slider-pages {
	display: none;
}

.scroll_btn {
	display: block;
	position: absolute;
	bottom: 4rem;
	left: 50%;
    transform: translateX(-50%);
    -webkit-transform: translateX(-50%);
	-ms-transform: translateX(-50%);
	color: #fff;
	font-size: 1.2rem;
	z-index: 5;
	cursor: pointer;
}
.scroll_btn > span {
	display: block;
	position: relative;
	width: 1px;
	height: 4rem;
	margin: 0 auto 1rem;
	background: transparent;
	overflow: hidden;
}
.scroll_btn span span {
	display: block;
	position: absolute;
	width: 2px;
	height: 2rem;
	top: 0;
	left: 50%;
    transform: translateX(-50%);
    -webkit-transform: translateX(-50%);
	-ms-transform: translateX(-50%);
	background: #fff;
	animation: scroll 2s infinite;
}
@keyframes scroll {
    0% {
        top: -2rem;
    }
    100% {
        top: 4rem;
    }
}
@media (max-width: 1200px) {
	.hero_logo {
		top: 2rem;
		left: 2rem;
		font-size: 0;
	}
	.hero_logo img {
		height: 5rem;
	}
	#main_catch {
		width: 65%;
	}
}
@media (max-width: 768px) {
	.hero-video #video {
		display: none;
	}
	/*.hero-video #videowrap {
		position: relative;
		width: 100%;
		padding-top: 133%;
		z-index: -1000;
	  }
	  
	.hero-video #video_sp {
		display: block;
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		z-index: -1000;
	}*/
	.hero-video {
		height: 133vw;
		overflow: hidden;
	}
	.hero-video .hero-overlay {
		height: 133vw;
	}
	.hero-video #video_sp {
		display: block;
		position: relative;
		top: 0;
		left: 0%;
		min-width: 100vw;
		min-height: 0;
		width: auto;
		height: 133vw;
		z-index: -1000;
		overflow: hidden;
	}
}


/* _______________COMMON */
.pagetitle,
article,
footer {
	position: relative;
	top: 0;
}
section {
	max-width: 100%;
	overflow: hidden;
}
h2 {
	/* font-size: 9.5rem; */
}
/*h2.script {
	font-family: 'Mrs Saint Delafield', cursive;
	font-weight: normal;
}*/
@media (max-width: 1024px) {
	h2 {
		/* font-size: 9vw; */
	}
}

/* _______________INFORMATION */
.information {
	position: relative;
}
.information::after {
	content: "";
	display: block;
	position: absolute;
	top: 0;
	left: 40%;
	width: 65%;
	height: 100%;
	background-color: #eee;/*dbf1e7*/
	z-index: -1;
}
.information .inner {
	max-width: 1200px;
	margin: 5rem auto;
	padding: 5rem;
	background: #fff;
}
.information h2 {
	margin: 0 auto 3rem;
	color: rgba(6, 46, 72, 1);
	font-size: 3.2rem;
}
.information time {
	display: inline-block;
	width: 100px;
	margin-right: 2rem;
	font-weight: bold;
}
.information a {
	text-decoration: underline;
}
@media (max-width: 1200px) {
	.information time {
		display: block;
	}
}
@media (max-width: 768px) {
	.information .inner {
		padding: 3rem;
	}
}

/* _______________MESSAGE */
.message {
	position: relative;
	margin: 0 0;
	padding: 5rem;
	background-image: url(../images/top_message_bg.jpg);
	background-size: cover;
	background-position: center;
	text-align: center;
}
.message::after {
	content: "";
	display: block;
	position: absolute;
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
	background: rgba(255, 255, 255, .77);
	z-index: 1;
}
.message .message_box {
	position: relative;
	z-index: 2;
	max-width: 610px;
	margin: 0 auto;
	padding: 5rem;
	background: #fff;
}
.message_read {
	color: rgba(6, 46, 72, 1);
	font-weight: bold;
	font-family: "YuMincho", "Hiragino Mincho ProN", "Yu Mincho", "Times New Roman", "MS PMincho", 'Noto Serif JP', serif;
	font-size: 3rem;
}
@media (max-width: 1200px) {
	.message {
		margin: 0 0;
	}
}
@media (max-width: 768px) {
	/* .message {
		padding: 3rem;
	} */
	.message .message_box {
		padding: 3rem;
	}
	.message_read {
		font-size: 2.5rem;
	}
}
/* _______________bnr */
.bnr {
    text-align: center;
}


/* _______________COMPANY */
.aboutus {
	position: relative;
}
.aboutus .inner {
	padding-top: 4rem;
}
.aboutus h2 {
	position: relative;
	margin-bottom: 10rem;
	padding: 0 4rem;
}
.aboutus::after {
	content: "";
	position: absolute;
	display: block;
	top: 0;
	left: 0;
	width: 3.5vw;
	height: 29.5rem;
	background-color: rgba(6, 46, 72, 1);
}
.aboutus::before {
	content: "";
	display: block;
	position: absolute;
	top: 0;
	right: 0;
	width: 80%;
	height: 60%;
	background-image: url(../images/top_company_bg.jpg);
	background-size: cover;
	background-position: center;
	opacity: .22;
	z-index: -1;
}
#company_catch {
    display: block;
    position: relative;
    left: 16rem;
    top: -10rem;
    width: 42rem;
    fill: #538FB5;
}
.aboutus_text {
	position: absolute;
	width: 27%;
	margin: -6rem 0 0;
	padding: 0 0 0 6%;
}
.aboutus .aboutus_list {
	display: -webkit-box;
	display: -ms-flexbox;
	display: -webkit-flex;
	display: flex;
	-webkit-box-pack:justify;
	-ms-flex-pack:justify;
	-flex-pack:justify;
	-webkit-justify-content: flex-end;
	justify-content: flex-end;
	align-items: center;
	max-width: 70%;
	margin: -7rem 0 0 auto;
}
.aboutus .aboutus_list li {
	position: relative;
	width: 45%;
	height: auto;
}
.aboutus .aboutus_list li + li {
	margin-left: 1%;
}
/* .aboutus .aboutus_list li:last-of-type {
	width: 45%;
} */
.aboutus .aboutus_list li:before {
    content:"";
    display: block;
    /* padding-top: 100%; */
	padding-top: 57.77%;
}
/* .aboutus .aboutus_list li:last-of-type:before {
    content:"";
    display: block;
    padding-top: 57.77%;
} */
.aboutus .aboutus_list li a,
.aboutbusiness .aboutbusiness_list li a {
  /* 正方形にするのに必要な部分 */
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  /* 中央寄せ */
  text-align: center;
  padding: 2px;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  -o-box-sizing: border-box;
  -ms-box-sizing: border-box;
}
.aboutus .aboutus_list li a:before,
.aboutbusiness .aboutbusiness_list li a:before {
	content: "";
	height: 100%;
	vertical-align: middle;
	width: 0px;
	display: inline-block;
}
@media (max-width: 1200px) {
	.aboutus h2 {
		margin-bottom: 0;
		padding: 0 6%;
	}
	#company_catch {
		left: 14vw;
		top: -10vw;
		width: 39vw;
	}
	.aboutus_text {
		position: relative;
		width: 50%;
		/*margin: -10vw 0 0;*/
		margin: 0 0 3rem;
		padding: 0 0 0 6%;
	}
	.aboutus .aboutus_list {
		max-width: 90%;
		margin: 0 auto 0;
	}
}
@media (max-width: 768px) {
	.aboutus_text {
		width: 100%;
	}
}
@media (max-width: 600px) {
	.aboutus .aboutus_list {
		/*display: block;*/
		flex-wrap: wrap;
	}
	.aboutus .aboutus_list li {
		width: 100%;
		margin-bottom: 1rem;
	}
	/* .aboutus .aboutus_list li:last-of-type {
		width: 100%;
	} */
}

/* _______________ABOUT BUSSINESS */
.aboutbusiness {
	position: relative;
	text-align: center;
}
.aboutbusiness::before {
	content: "";
	display: block;
	position: absolute;
	top: 16rem;
	right: 0;
	width: 100%;
	height: 40%;
	background-image: url(../images/top_business_bg.jpg);
	background-size: cover;
	background-position: center;
	opacity: .22;
	z-index: -1;
}
.aboutbusiness .ttl_center {
	display: inline-block;
	position: relative;
}
.aboutbusiness .ttl_center::after {
	content: "";
	position: absolute;
	display: block;
	top: 50%;
    transform: translateY(-50%);
    -webkit-transform: translateY(-50%);
	-ms-transform: translateY(-50%);
	left: calc(100% + 4rem);
	width: 50vw;
	height: 3.5vw;
	background-color: rgba(6, 46, 72, 1);
}
#business_catch {
    display: block;
    position: relative;
	left: 50%;
	transform: translateX(-50%);
    -webkit-transform: translateX(-50%);
	-ms-transform: translateX(-50%);
    top: -10rem;
    width: 42rem;
    fill: #538FB5;
}
.aboutbusiness .aboutbusiness_text {
	/*margin: -7rem 0 0;*/
	text-align: center;
}
.aboutbusiness .aboutbusiness_list {
	display: -webkit-box;
	display: -ms-flexbox;
	display: -webkit-flex;
	display: flex;
	-webkit-box-pack:justify;
	-ms-flex-pack:justify;
	-flex-pack:justify;
	-webkit-justify-content: space-between;
	justify-content: space-between;
	align-items: center;
	max-width: 1500px;
	margin: 5rem auto 14rem;
}
.aboutbusiness .aboutbusiness_list li {
	position: relative;
	width: 49%;
	height: auto;
}
.aboutbusiness .aboutbusiness_list li:before {
    content:"";
    display: block;
    padding-top: 50%;
}
@media (max-width: 1200px) {
	.aboutbusiness::before {
		top: 14vw;
	}
	#business_catch {
		top: -10vw;
		width: 39vw;
	}
/*	.aboutbusiness .aboutbusiness_text {
		margin: -5vw 0 0;
	}*/
	.aboutus .aboutus_list {
		max-width: 90%;
		margin: 0 auto 0;
	}
}
@media (max-width: 768px) {
	.aboutbusiness .inner {
		padding-top: 7vw;
	}
	.aboutus_text {
		width: 100%;
	}
}
@media (max-width: 600px) {
	.aboutbusiness .aboutbusiness_list {
		flex-wrap: wrap;
		margin: 2rem auto 14vw;
	}
	.aboutbusiness .aboutbusiness_list li {
		width: 100%;
	}
	.aboutbusiness .aboutbusiness_list li:first-of-type {
		margin-bottom: 1rem;
	}
}

/* _______________ABOUT CAREER */
.aboutcareer {
	position: relative;
}
#careercase_catch {
    display: block;
    position: relative;
	left: calc(100% - 40rem);
    top: -10rem;
    width: 37rem;
    color: #fff;
	fill: currentColor;
    /*animation: 1s linear 2s forwards fadeIn.st0;*/
}
.aboutcareer_text {
	width: 40%;
	/*margin: -8rem 0 0 auto;*/
	margin: 0 0 0 auto;
	padding-right: 3rem;
}
.aboutcareer h2 {
	position: relative;
	padding: 0 4.5rem;
}
.aboutcareer::after {
	content: "";
	position: absolute;
	display: block;
	top: 0;
	right: 0;
	width: 3.5vw;
	height: 29.5rem;
	background-color: rgba(6, 46, 72, 1);
}
.aboutcareer::before {
	content: "";
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	width: 80%;
	height: 40rem;
	background-image: url(../images/top_career_bg.jpg);
	background-size: cover;
	background-position: center;
	opacity: .22;
	z-index: -1;
}
.aboutcareer_bnr {
	display: -webkit-box;
	display: -ms-flexbox;
	display: -webkit-flex;
	display: flex;
	-webkit-box-pack:justify;
	-ms-flex-pack:justify;
	-flex-pack:justify;
	-webkit-justify-content: space-between;
	justify-content: space-between;
	align-items: center;
	position: relative;
	width: 100%;
	max-width: 1500px;
	margin: 2rem auto;
	overflow: hidden;
}
.aboutcareer_bnr .aboutcareer_bnr_ttl {
	display: block;
	position: relative;
	width: 28%;
	min-width: 300px;
	height: 27rem;
	padding: 4rem 0;
	background: rgba(6, 46, 72, 1);
	color: #fff;
	font-weight: bold;
	text-align: center;
	z-index: 2;
}
.aboutcareer_bnr .thumb {
	position: relative;
	width: 72%;
	height: 27rem;
	top: 0;
	left: 0;
	overflow: hidden;
	z-index: 1;
}
.aboutcareer_bnr .thumb > div {
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    background-color: transparent;
    transition: all 0.5s ease-out;
	transform: matrix3d(
		1, 0, 0, 0,
		0, 1, 0, 0,
		0, 0, 1, 0,
		0, 0, 0, 1
	);
	will-change: transform;
}
.aboutcareer_bnr:hover .thumb > div {
	transform: matrix3d(
		1, 0, 0, 0,
		0, 1, 0, 0,
		0, 0, 1, 0,
		0, 0, 0, 0.9
	);
}
.aboutcareer_bnr .careercase_btn_copy {
	position: absolute;
	width: 99%;
	min-width: 300px;
	top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    -webkit-transform: translate(-50%, -50%);
	-ms-transform: translate(-50%, -50%);
	fill: #FFFFFF;
	color: #fff;
	z-index: 2;
}
.aboutcareer .aboutcareer_list {
	display: -webkit-box;
	display: -ms-flexbox;
	display: -webkit-flex;
	display: flex;
	-webkit-box-pack:justify;
	-ms-flex-pack:justify;
	-flex-pack:justify;
	-webkit-justify-content: space-between;
	justify-content: space-between;
	align-items: center;
	max-width: 1500px;
	margin: 5rem auto 8rem;
	padding-left: 1rem;
}
.aboutcareer_list li {
	position: relative;
	width: 23%;
	height: auto;
	margin-bottom: 4rem;
}
.aboutcareer_list li:before {
    content:"";
    display: block;
    padding-top: 100%;
}
.aboutcareer_list li a {
  /* 正方形にするのに必要な部分 */
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  /* 中央寄せ */
  text-align: center;
  padding: 2px;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  -o-box-sizing: border-box;
  -ms-box-sizing: border-box;
}
.aboutcareer_list li a:before {
	content: "";
	height: 100%;
	vertical-align: middle;
	width: 0px;
	display: inline-block;
}
.aboutcareer_list li a:hover {
	color: #333;
}
.aboutcareer_list li a .careercase_list_copy {
	position: absolute;
	width: 90%;
	top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    -webkit-transform: translate(-50%, -50%);
	-ms-transform: translate(-50%, -50%);
	opacity: 0;
	z-index: 4;
	transition: all .8s linear;
}
.aboutcareer_list li a:hover .careercase_list_copy {
	opacity: 1;
}
.aboutcareer_list li .name {
	display: block;
	position: relative;
	width: 100%;
	top: 1rem;
	z-index: 3;
	font-size: 1.4rem;
	font-weight: bold;
	text-align: left;
}
.aboutcareer_list li .name .category {
	display: block;
	position: relative;
	padding-left: 1rem;
	color: #393571;
	font-size: 1.2rem;
}
.aboutcareer_list li .name .category::before {
	content: "-";
	position: absolute;
	left: 0;
	top: 50%;
    transform: translateY(-50%);
    -webkit-transform: translateY(-50%);
	-ms-transform: translateY(-50%);
}
@media (max-width: 1200px) {
	.aboutcareer h2 {
		padding: 0 6%;
	}
	#careercase_catch {
		top: -10vw;
		left: calc(100% - 50vw);
		width: 39vw;
	}
	.aboutcareer_bnr {
		width: 90%;
	}
	.aboutcareer_bnr,
	.aboutcareer_bnr .aboutcareer_bnr_ttl,
	.aboutcareer_bnr .thumb {
		height: 19vw;
	}
	.aboutcareer_bnr .aboutcareer_bnr_ttl {
		min-width: 28%;
		padding: 2rem 0;
	}
	.aboutcareer_bnr .careercase_btn_copy {
		width: 90%;
		min-width: 90%;
		top: calc(50% + 2vw);
	}
}
@media (max-width: 600px) {
	.aboutcareer_bnr {
		display: block;
		height: 55vw;
	}
	.aboutcareer_bnr .aboutcareer_bnr_ttl {
		position: absolute;
		width: 95%;
		height: 30vw;
		bottom: 0;
		left: 50%;
    	transform: translateX(-50%);
    	-webkit-transform: translateX(-50%);
		-ms-transform: translateX(-50%);
	}
	.aboutcareer_text {
		width: 100%;
		/*margin: -5rem 0 0 auto;*/
		padding-right: 4rem;
		text-align: right;
	}
	.aboutcareer_bnr .careercase_btn_copy {
		width: 65%;
		min-width: 100px;
		top: calc(50% + 4vw);
	}
	.aboutcareer_bnr .thumb {
		width: 100%;
		height: 34vw;
		top: 0;
	}
	.aboutcareer_bnr .thumb div {
		position: absolute;
		top: -7vw;
	}
	.aboutcareer .aboutcareer_list {
		flex-wrap: wrap;
		width: 90%;
		margin: 0 auto;
	}
	.aboutcareer .aboutcareer_list li {
		width: 48%;
		margin-bottom: 10rem;
	}
	.aboutcareer .aboutcareer_list li::nth-of-type(3),
	.aboutcareer .aboutcareer_list li::last-of-type {
		margin-bottom: 4rem;
	}
}

/* _______________RECRUIT */
.recruit {
	position: relative;
}
.recruit::after {
	content: "";
	display: block;
	position: absolute;
	width: 100%;
	height: 90%;
	left: 0;
	top: 9rem;
	background-color: #ECECEC;
	z-index: -2;
}
.recruit h2 {
	display: inline-block;
	position: relative;
	color: #fff;
	font-size: 7rem;
}
.recruit h2::before {
	content: "";
	display: block;
	position: absolute;
	width: 200%;
	height: 350%;
	left: -50%;
	top: -9rem;
	background-color: rgba(6, 46, 72, 1);
	z-index: -1;
}
.recruit_list {
	display: -webkit-box;
	display: -ms-flexbox;
	display: -webkit-flex;
	display: flex;
	-webkit-box-pack:justify;
	-ms-flex-pack:justify;
	-flex-pack:justify;
	-webkit-justify-content: space-between;
	justify-content: space-between;
	align-items: center;
	position: relative;
	width: 100%;
	max-width: 1500px;
	margin: 2rem auto;
	overflow: hidden;
}
.recruit_list li {
	position: relative;
	width: 23%;
	height: auto;
	margin-bottom: 3rem;
}
.recruit_list li:before {
    content:"";
    display: block;
    padding-top: 100%;
}
.recruit_list li a {
  /* 正方形にするのに必要な部分 */
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  /* 中央寄せ */
  text-align: center;
  padding: 2px;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  -o-box-sizing: border-box;
  -ms-box-sizing: border-box;
}
.recruit_list li a:before {
	content: "";
	height: 100%;
	vertical-align: middle;
	width: 0px;
	display: inline-block;
}
.recruit_list li a span {
	display: block;
	position: absolute;
	z-index: 2;
	width: 100%;
	left: 0;
	bottom: 0;
	padding: 2rem 1rem;
	background-color: rgba(6, 46, 72, .8);
	color: #fff;
	box-sizing: border-box;
	-moz-box-sizing: border-box;
	-webkit-box-sizing: border-box;
	-o-box-sizing: border-box;
	-ms-box-sizing: border-box;
}
@media (max-width: 1200px) {
	.recruit_list {
		overflow: visible;
		flex-wrap: wrap;
	}
	.recruit_list li:before {
		padding-top: 58%;
	}
	.recruit_list li {
		width: 49%;
	}
	.recruit_list li a {
		padding: 0;
	}
	.recruit_list li a span {
		width: 100%;
		padding: .7rem 0;
		background-color: rgba(6, 46, 72, 1);
	}
}
@media (max-width: 1024px) {
	.recruit h2 {
		font-size: 9vw;
	}
}
@media (max-width: 600px) {
	.recruit_list li {
		margin-bottom: 1rem;
	}
	.recruit_list li:before {
		padding-top: 58%;
	}
	.recruit_list li a {
		padding: 0;
	}
}
@media (max-width: 425px) {
	.recruit_list li {
		width: 100%;
	}
}