@charset "utf-8";
/* CSS Document */

.shutter{
      position:fixed;
      top:0;
      left:0;
      right:0;
      bottom:0;
      background-color:#fff;
      z-index:10000;
    }
    
    .shutter::before {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      bottom: 0;
      margin: auto;
      background-color: #185b51;
      width: 0;
      height: 1px;
    }
    .shutter {
  -webkit-animation: byeShutter 2.5s forwards;
          animation: byeShutter 2.5s forwards;
          }
              .shutter::before {
      -webkit-animation: shutterOpen 2.5s forwards;
              animation: shutterOpen 2.5s forwards;
    }
        @keyframes byeShutter {
      80% {
        opacity: 1;
      }
      100% {
        opacity: 0;
        display: none;
        z-index: -1;
      }
    }
        @keyframes shutterOpen {
      0% {
        width: 0;
        height: 100%;
      }
      30% {
        width: 10%;
        height: 100%;
      }
      90% {
        width: 100%;
        height: 100%;
      }
      100% {
        width: 100%;
        height: 100%;
      }
    }

#loader {
    width: 500px;
    height: 125px;
    display: none;
    position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	margin: auto;
    z-index: 10000;
}
@media screen and (max-width: 640px) {
  #loader {
	  width:80px;
	  height:250px;
  }
}

#loader img {
	animation :infinity-scroll-left 4s infinite linear 0s both;
}
@media screen and (max-width: 640px) {
  #loader img{
	  width:100%;
	  height:auto;
  }
}

@keyframes infinity-scroll-left {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-100%);
  }
}
 
#fade {
    width: 100%;
    height: 100%;
    display: none;
    background-color: #FFFFFF;
    position: fixed;
    top: 0px;
    left: 0px;
    z-index: 9999;
}


/*--------------------
main visual
---------------------*/

#main_visual_wrap {
	position: relative;
	width:100%;
	margin:0px 0 0px 0;
	overflow: hidden;
	box-sizing: border-box;
	background-size: cover;
	background-position: center center;
}
@media screen and (max-width: 900px) {
  #main_visual_wrap {
  }
}

/*
#main_visual_wrap .backstretch {
	top:80px !important;
}
@media screen and (max-width: 900px) {
  #main_visual_wrap .backstretch {
		top:50px !important;
  }
}
*/

#main_visual_wrap #main_catch {
	width:500px;
	position: absolute;
	top:25%;
	right:12%;
	margin:auto;
	letter-spacing: 0.1em;
	color:#FFF;
	font-size:28px;
	line-height:1.6em;
	font-weight: bold;
	text-shadow: 0px 0px 20px rgba(0,0,0,0.2);
	/*animation  : textFade1 4s;*/
	/*mix-blend-mode: color;*/
	text-align: right;
}
@media screen and (max-width: 900px) {
  #main_visual_wrap #main_catch {
	width:96%;
	top:28%;
	left:0;
	right:0;
	bottom:0;
	margin:auto;
	font-size:26px;
	letter-spacing: 0.05em;
	font-weight:bold;
	text-align: center;
  }
}
@media screen and (max-width: 640px) {
  #main_visual_wrap #main_catch {
	font-size:22px;
	top:30%;
	text-shadow: 0px 0px 20px rgba(0,0,0,0.3);
  }
}


@media screen and (max-width: 350px) {
  #main_visual_wrap #main_catch br {
	  display: none;
  }
}

#main_visual_wrap #main_catch span {
	display: block;
}

#main_visual_wrap #main_catch .catch1 {
	font-size:58px;
	font-weight: bold;
	line-height:1.4em;
	margin-bottom:10px;
}
@media screen and (max-width: 640px) {
  #main_visual_wrap #main_catch .catch1 {
	  font-size:36px;
  }
}

#main_visual_wrap #main_catch .catch2 {
	font-size:25px;
	font-weight: bold;
	line-height:1.4em;
	margin-bottom:20px;
}
@media screen and (max-width: 640px) {
  #main_visual_wrap #main_catch .catch2 {
	  font-size:18px;
  }
}

#main_visual_wrap #main_catch .sub_catch {
	font-size:14px;
	font-weight: normal;
	line-height:1.2em;
	letter-spacing: 0.14em;
}
@media screen and (max-width: 900px) {
  #main_visual_wrap #main_catch .sub_catch {
	font-size:11px;
	letter-spacing: 0em;
  }
}

@keyframes textFade1 {
   0% { opacity: 0; }
  60% { opacity: 0; }
  100% { opacity: 1; }
}

@keyframes textFade2 {
   0% { opacity: 0; }
  30% { opacity: 0; }
  100% { opacity: 1; }
}





#main_visual_wrap #main_catch .catch_box {
	position: relative;
}
/*
#main_visual_wrap #main_catch .catch_box:after {
  content: "";
  display: block;
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background-color:  #000;
  transform: scaleX(0);
  animation: mask_fadeIn 0.8s cubic-bezier(0.77, 0, 0.175, 1) 0s;
}
*/

@keyframes mask_fadeIn {
  0% {
    /* x方向の倍率を0に */
    transform: scaleX(1);
    /* 変換の原点を(0, 0)に指定 */
    transform-origin: 0 0%;
  }
  45% {
    /* x方向の倍率を初期値(1倍)に */
    transform: none;
    transform-origin: 0 100%;
  }
  50% {
    transform: none;
    transform-origin: 0% 100%;
  }
  100% {
    transform: scaleX(0);
    transform-origin: 0% 0%;
  }
}


#main_visual_wrap .mask {
	position: absolute;
	top:0;
	right:0;
	width:100%;
	height:100%;
	background-size: cover;
	background-position: center center;
	background-repeat: no-repeat;
	background-color: #000;
	opacity: 0.04;
}

.backstretch img {
    animation  : backstretch 7s 1;
}

@keyframes backstretch {
   0% { transform: scale(1.1) }
  100% { transform: scale(1.0) }
}



#main_visual_wrap #scroll {
	letter-spacing: 1px;
	font-size:12px;
	position: absolute;
	bottom:0;
	left:50%;
	color:#FFF;
	writing-mode: vertical-rl;
	width:10px;
	height:50px;
	padding-left:4px;
	animation  : textFade2 4s;
}

#main_visual_wrap #scroll span {
    /*描画位置*/
    /*テキストの形状*/
	color: #fff;
	font-size: 0.7rem;
	letter-spacing: 0.12em;
}

#main_visual_wrap #scroll::after{
	content: "";
	position: absolute;
	top: 0px;
	left:0px;
	width: 1px;
	height: 6px;
	background: #fff;
	animation: pathmove 2s ease-in-out infinite;
	opacity:0;
}

/*高さ・位置・透過が変化して線が上から下に動く*/
@keyframes pathmove{
	0%{
		height:0;
		top:0;
		opacity: 0;
	}
	50%{
		top:0;
		height:100%;
		opacity: 1;
	}
	100%{
		top:100%;
		opacity: 1;
	}
}


/*--------------------
ナビゲーションとロゴ
---------------------*/

#top_body header {
	animation  : headerFade1 4s;
}

@keyframes headerFade1 {
   0% { opacity: 0; }
  60% { opacity: 0; }
  70% { transform: translateY(-90px); }
  100% { opacity: 1; transform: translateY(0px); }
}

#top_body ul#navi li a {
}

#top_body .scroll_navi ul#navi li a {
}

#top_body div#logo svg .svg_color {
	fill:#FFF;
}

#top_body .scroll_navi div#logo svg .svg_color {
	fill:#000;
}

#top_body div#logo svg .svg_line {
	fill-opacity:0.4;
}

#top_body .scroll_navi div#logo svg .svg_line {
	fill-opacity:1;
}


#top_body div#logo svg .svg_line2 {
	fill-opacity:1;
}

#top_body .scroll_navi div#logo svg .svg_line2 {
	fill-opacity:1;
}

/*--------------------
top_company
---------------------*/

.top_company {
	max-width:1600px;
	margin:0 auto;
	padding:40px 0 40px 0;
	font-size:0;
	position: relative;
	overflow: hidden;
}
@media screen and (max-width: 1000px) {
  .top_company {
    	padding-bottom:0;
  }
}


.top_company .photo {
	width:50%;
	display: inline-block;
	vertical-align: middle;
	font-size:15px;
	box-sizing: border-box;
}
@media screen and (max-width: 1300px) {
  .top_company .photo {
  }
}
@media screen and (max-width: 1000px) {
  .top_company .photo {
    	width:100%;
    	margin:0 0 40px 0;
  }
}
@media screen and (max-width: 640px) {
  .top_company .photo {
    	margin:0 0 60px 0;
  }
}

.top_company .photo img {
	width:100%;
	-webkit-transition: 1.0s 0.5s ease-in-out;
	transition: 1.0s 0.5s ease-in-out;
}
@media screen and (min-width: 1800px) {
  .top_company .photo img {
  }
}
@media screen and (max-width: 1000px) {
  .top_company .photo img {
    	width:70%;
  }
}
@media screen and (max-width: 640px) {
  .top_company .photo img {
    	width:92%;
  }
}

.top_company .text {
	width:50%;
	display: inline-block;
	vertical-align: middle;
	font-size:15px;
	box-sizing: border-box;
	padding:0 4% 0 8%;
	-webkit-transition: 1.0s 1.0s ease-in-out;
	transition: 1.0s 1.0s ease-in-out;
}
@media screen and (max-width: 1300px) {
  .top_company .text {
	  	padding-right:20px;
  }
}
@media screen and (max-width: 1000px) {
  .top_company .text {
	  	display: block;
    	width:90%;
    	margin:0 auto 0px auto;
	  	padding-right:0px;
  }
}
@media screen and (max-width: 640px) {
  .top_company .text {
    	width:86%;
	  	padding-left:0;
	  	padding-bottom:20px;
  }
}

.top_company .text .box {
	max-width:600px;
}
@media screen and (max-width: 1000px) {
  .top_company .text .box {
    	max-width:100%;
  }
}

.top_company .text p {
	font-size:16px;
	line-height:2em;
	margin:0 0 40px 0;
}

.top_company .text .button_more {
}
@media screen and (max-width: 1300px) {
  .top_company .text .button_more {
  }
}
@media screen and (max-width: 1000px) {
  .top_company .text .button_more {
  }
}
@media screen and (max-width: 900px) {
  .top_company .text .button_more {
  }
}

/*--------------------
top_business
---------------------*/

.top_business {
	max-width:1800px;
	margin:0 auto;
	padding:120px 0 120px 0;
	background-image: url(../images/top_business_bg.jpg);
	background-size: cover;
	background-position: center center;
	
}
@media screen and (max-width: 1000px) {
  .top_business {
	  padding:80px 0 40px 0;
  }
}
@media screen and (max-width: 640px) {
  .top_business {
	  padding:80px 0 80px 0;
  }
}

.top_business .section_title .en {
	color:#FFF;
}

.top_business .section_title h2 {
	color:#FFF;
}

.top_business .business_list {
	font-size:0;
}

.top_business .business_list li {
	display: inline-block;
	width:45%;
	vertical-align: top;
}
@media screen and (max-width: 640px) {
  .top_business .business_list li {
	  width:100%;
  }
}

.top_business .business_list li:nth-child(2n) {
	margin:0px 0 0 10%;
	padding-top:80px;
}
@media screen and (max-width: 640px) {
  .top_business .business_list li:nth-child(2n) {
	  margin:0px 0 0 0%;
	  padding-top:80px;
  }
}

.top_business .business_list li a {
	color:#FFF;
	text-decoration: none;
	display: block;
	-webkit-transition: 0.3s ease-in-out;
	transition: 0.3s ease-in-out;
}

.top_business .business_list li a:hover {
	filter: brightness(1.2);
}

.top_business .business_list li a .photo {
	margin:0 0 30px 0;
}
@media screen and (max-width: 640px) {
  .top_business .business_list li a .photo {
	  margin:0 0 15px 0;
  }
}

.top_business .business_list li a h3 {
	font-size:28px;
	background-image: url(../images/link_arrow.png);
	background-repeat: no-repeat;
	background-size: 54px auto;
	background-position: right center;
}
@media screen and (max-width: 640px) {
  .top_business .business_list li a h3 {
	  font-size:22px;
	  background-size: 40px auto;
	  width:86%;
	  margin:0 auto;
  }
}

.top_business .business_list li a:hover h3 {
	color: #177361;
}

.top_business .business_list li a span {
	font-size:15px;
	font-weight:normal;
	display: block;
	margin:10px 0 0 0;
}
@media screen and (max-width: 640px) {
  .top_business .business_list li a span {
	  font-size:13px;
	  margin:5px 0 0 0;
  }
}

.top_business .business_list li a:hover span {
	color: #177361;
}

/*--------------------
top_contents
---------------------*/

.top_contents {
	max-width:1600px;
	margin:0 auto;
}
@media screen and (max-width: 640px) {
  .top_contents {
	  width:92%;
  }
}

.top_contents ul {
	font-size:0;
	text-align: center;
}

.top_contents ul li {
	display: inline-block;
	width:28%;
	font-size:16px;
	margin:0 2.6% 20px 2.6%;
	vertical-align: top;
	overflow: hidden;
}
@media screen and (max-width: 640px) {
  .top_contents ul li {
	  width:100%;
	  box-sizing: border-box;
	  margin:0 0 40px 0;
  }
}

.top_contents ul li a {
	display: block;
	background-size: cover;
	background-position: center center;
	color:#FFF;
	-webkit-transition: 0.3s ease-in-out;
	transition: 0.3s ease-in-out;
}

.top_contents ul li a:hover {
	transform: scale(1.02);
	opacity:0.95;
}

.top_contents ul li a .box {
	padding:120% 0 0 0;
	position: relative;
}
@media screen and (max-width: 640px) {
  .top_contents ul li a .box {
	  padding:100% 0 0 0;
  }
}

.top_contents ul li a .mask {
	width:100%;
	height:100%;
	position: absolute;
	top:0;
	left:0;
	background-color: #000;
	opacity: 0.44;
}

.top_contents ul li a .box:after {
	content:"";
	width:62px;
	height:62px;
	background-image: url(../images/top_contents_icon.png);
	background-repeat: no-repeat;
	background-size: 62px auto;
	position: absolute;
	bottom:0;
	right:0;
}

.top_contents ul li a h3 {
	position: absolute;
    top: 40%;
    left: 0;
    right:0;
    bottom: 0;
    margin: auto;
    font-size:28px;
}
@media screen and (max-width: 640px) {
  .top_contents ul li a h3 {
	  font-size:24px;
  }
}

.top_contents ul li a h3 span {
	display: block;
	font-size:15px;
	font-weight:normal;
	margin-top:12px;
}

.top_contents ul li a .button {
	display: block;
	position: absolute;
    top: 70%;
    left: 0;
    right:0;
    bottom: 0;
    margin: auto;
    border:solid 1px #FFF;
    width:170px;
    height:50px;
    box-sizing: border-box;
    padding:12px 0 0px 0;
	font-size:16px;
	line-height:20px;
	background-image: url(../images/arrow1.png);
	background-repeat: no-repeat;
	background-size: 8px 14px;
	background-position: 94% center;
}


/*--------------------
top_recruit
---------------------*/

#top_recruit_wrap {
	-webkit-transition: 1.0s 0.2s ease-in-out;
	transition: 1.0s 0.2s ease-in-out;
	max-width:1800px;
	margin:0 auto;
}


#top_recruit {
	padding:0 0 0px 0;
	box-sizing: border-box;
	position: relative;
	color:#FFF;
	-webkit-transition: 1.0s 1.0s ease-in-out;
	transition: 1.0s 1.0s ease-in-out;
	
}
@media screen and (max-width: 1000px) {
  #top_recruit {
		width:96%;
		padding:70% 0 0px 0;
  }
}
@media screen and (max-width: 640px) {
  #top_recruit {
		width:100%;
		padding:0% 0 0px 0;
		background-image: url(../images/top_recruit_photo_sp.jpg);
  }
}

#top_recruit .photo {
	background-image: url(../images/top_recruit_photo.jpg);
	background-size: cover;
	background-position: center center;
	width:55%;
	min-height:600px;
	float:right;
	box-sizing: border-box;
	margin-bottom:80px;
}
@media screen and (max-width: 640px) {
  #top_recruit .photo {
		width:100%;
		min-height:400px;
		background-size: 160% auto;
		background-position: center bottom;
		margin-top:300px;
  }
}


#top_recruit .box {
	position: absolute;
	top:0;
	left:0;
	min-height:600px;
	background-image: url(../images/top_recruit_bg.jpg);
	background-size: cover;
	width:50%;
	clip-path: polygon(0 0, 100% 0, 95% 100%, 0 100%);
	box-sizing: border-box;
	padding:100px;
}

@media screen and (max-width: 640px) {
  #top_recruit .box {
	  width:100%;
	  padding:60px 40px;
	  min-height:auto;
	  clip-path: polygon(0 0, 100% 0, 100% 94%, 0 100%);
  }
}



#top_recruit .section_title h2 {
	color:#FFF;
}
@media screen and (max-width: 640px) {
  #top_recruit .section_title h2 {
	  font-size:18px;
  }
}

#top_recruit p {
	color:#FFF;
	max-width:600px;
	text-align: left;
	margin:0 auto 60px auto;
	font-size:16px;
	line-height:1.8em;
}
@media screen and (max-width: 640px) {
  #top_recruit p {
	  font-size:14px;
	  max-width:100%;
	  margin:0 auto 30px auto;
  }
}


@media screen and (max-width: 640px) {
  #top_recruit p br {
	  display: none;
  }
}

#top_recruit .button_more {
	
}
@media screen and (max-width: 640px) {
  #top_recruit .button_more {
	  width:90%;
  }
}

#top_recruit .button_more a {
	border: solid 1px #fff;
	color:#FFF;
	background-image: none;
}

#top_recruit .button_more a:after {
}

#top_recruit .button_more a:hover {
	background-color: #FFF;
	color:#177361;
}

#top_recruit .button_more a:hover:after {
	background-position: 0px 0px;
}



