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

/* 共通項目 */
.section_contents{
    opacity: 0;
    transform: translate(0,60px); 
    -webkit-transform: translate(0,60px); 
    transition: all 0.3s
}
.mv01{
    opacity: 1.0;
    transform: translate(0,0); 
    -webkit-transform: translate(0,0);
}

@font-face {
font-family: 'Futura';
src: url(../img/font/Futura.eot);

}



/* PC 769px 以上
--------------------------------------------------------------------------------*/
/* メインビジュアルの背景 */
#mainvisul{
	background: url(../img/top/mainvisual_bg.jpg) center center / cover no-repeat;
	margin-bottom: -18.294573643410853%;
}
/* タイトル */
#main_chach_wrapper {
    width: 92%;
    /*max-width: 1200px;*/
    margin: 0 auto;
    padding: 23% 0 23% 8%;
}

/* 社名の部分 */
.main_chach01 {
	width: 55.166666666666667%;
	/*max-width: 700px;*/
}

@media all and (-ms-high-contrast:none){
    .main_chach01 {
        width: 55.166666666666667%;
        animation: ch01 2s forwards;
    }
}
_:-ms-lang(x), _::-webkit-meter-bar,.main_chach01 {
     width: 55.166666666666667%;
        animation: ch01 2s forwards;
}
@keyframes ch01 {
    0%  {transform: translateX(200px) scale(4.0) rotate(90deg) skew(360deg);}
    100%{transform: translateX(0px) scale(1.0) rotate(0deg) skew(0deg);}
}



/* 下線 */
.main_chach_underbar{
	width: 55.916666666666667%;
	/*max-width: 720px;*/
}
.main_chach_underbar_hr{
	width: 0;
    height: 1px;
    opacity: 0;
	float: left;
	animation: hr 2s ease-in-out 1s forwards;
    border: 1px solid transparent;
    border-bottom: 1px solid #ffffff;
}
@keyframes hr {
	0%  {width:0;opacity: 0;}
    80% {width:0;opacity: 0;}
    100%{width:100%;opacity: 1.0;}
}
/* 生産生を高める */
.main_chach02{
	width: 35.25%;
	/*max-width: 422px;*/
}

@media all and (-ms-high-contrast:none){
    .main_chach02 {
        width: 35.25%;
        animation: ch02 2s forwards;
    }
}
_:-ms-lang(x), _::-webkit-meter-bar,.main_chach02 {
     width: 35.25%;
        animation: ch02 2s forwards;
}
@keyframes ch02 {
    0%  {transform: translateY(200px) scale(0.0) rotate(-90deg) skew(-360deg);}
    100%{transform: translateX(0px) scale(1.0) rotate(0deg) skew(0deg);}
}


/* パスのアニメーション */
/* Google Chrome etc*/
.path{    
    stroke:#fff;
    fill:transparent;
    stroke-width:1;    
    stroke-dasharray: 3000;
    stroke-dashoffset:3000;
    animation:DASH 2s ease-in-out 1s forwards;
	transition:all 0.3s ease-in-out;    
}
@keyframes DASH{
    0%  {stroke-dashoffset:3000;fill:transparent;}
    80% {stroke-dashoffset:2000;fill:transparent;}
    100%{stroke-dashoffset:0;fill:#fff;}
}
/* IE11 */
@media all and (-ms-high-contrast:none){
    .path{ 
        fill:#ffffff;
        opacity:0;  
        animation:IEDASH 2s ease-in-out 1s forwards;
    }
}
_:-ms-lang(x), _::-webkit-meter-bar,.path {
     fill:#ffffff;
     opacity:0;  
     animation:IEDASH 2s ease-in-out 1s forwards;
}
@keyframes IEDASH{
    0%  {opacity:0;}
    100%{opacity:1.0;}
}



/* ABOUT */
#section01 {
	background: url(../img/top/about_bg.png) center bottom / cover no-repeat;
	padding: 18.303292894280763% 10% 5%;
}
/*1280px以上 */
@media only screen and (min-width: 1280px) {
#section01 {
	background: url(../img/top/about_bg.png) center bottom / cover no-repeat;
	padding: 18.303292894280763% 10% 10%;
}
}
#section01 .section_contents {
	text-align: center;
}
.section_title{
	color: #002e5b;
	font-family: 'Oswald', sans-serif;
	font-size: 47px;
	position: relative;
	display: inline-block;
}
#section01 .section_title:before{
	content: '';
    position: absolute;
    bottom: -15px;
    display: inline-block;
    width: 24px;
    height: 2px;
    left: 50%;
    -moz-transform: translateX(-50%);
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
    transform: translateX(-50%);
    background-color: #cccccc;
    border-radius: 2px;
}
.section_sub_title {
	font-size: 30px;
	margin-bottom: 40px;
}
.section_text {
	text-align: justify;
	margin-bottom: 40px;
}

.button {
	display: inline-block;
	width: 240px;
	height: 54px;
	text-align: center;
	text-decoration: none;
	line-height: 54px;
	outline: none;
}
.button::before,
.button::after {
	position: absolute;
	z-index: -1;
	display: block;
	content: '';
}
.button,
.button::before,
.button::after {
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	box-sizing: border-box;
	-webkit-transition: all .3s;
	transition: all .3s;
}
.button span{
	position: relative;
  	display: inline-block;
  	padding-right: 20px;
}
.button span:after {
	content: '';
  	width: 6px;
  	height: 6px;
  	border: 0px;
  	border-top: solid 2px #002e5b;
  	border-right: solid 2px #002e5b;
  	-ms-transform: rotate(45deg);
  	-webkit-transform: rotate(45deg);
  	transform: rotate(45deg);
 	position: absolute;
  	top: 50%;
  	right: 0;
  	margin-top: -4px;
	transition:all 0.3s;
}
.button:hover span:after{
	border-top: solid 2px #ffffff;
  	border-right: solid 2px #ffffff;
}

.button {
	position: relative;
	z-index: 2;
	border: 2px solid #002e5b;
	color: #002e5b;
	line-height: 50px;
	overflow: hidden;
}
.button:hover {
	color: #fff;
}
.button::after {
	top: -100%;
	width: 100%;
	height: 100%;
}
.button:hover::after {
	top: 0;
	background:#002e5b;
}

/* button2 */
.button2 {
	display: inline-block;
	width: 240px;
	height: 54px;
	text-align: center;
	text-decoration: none;
	line-height: 54px;
	outline: none;
    width: 89%;
}
.button2::before,
.button2::after {
	position: absolute;
	z-index: -1;
	display: block;
	content: '';
}
.button2,
.button2::before,
.button2::after {
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	box-sizing: border-box;
	-webkit-transition: all .3s;
	transition: all .3s;
}
.button2 span{
	position: relative;
  	display: inline-block;
  	padding-right: 20px;
}
.button2 span:after {
	content: '';
  	width: 6px;
  	height: 6px;
  	border: 0px;
  	border-top: solid 2px #0065a0;
  	border-right: solid 2px #0065a0;
  	-ms-transform: rotate(45deg);
  	-webkit-transform: rotate(45deg);
  	transform: rotate(45deg);
 	position: absolute;
  	top: 50%;
  	right: 0;
  	margin-top: -4px;
	transition:all 0.3s;
}
.button2:hover span:after{
	border-top: solid 2px #ffffff;
  	border-right: solid 2px #ffffff;
}

.button2 {
	position: relative;
	z-index: 2;
	border: 2px solid #0065a0;
	color: #0065a0;
	line-height: 50px;
	overflow: hidden;
}
.button2:hover {
	color: #fff;
}
.button2::after {
	top: -100%;
	width: 100%;
	height: 100%;
}
.button2:hover::after {
	top: 0;
	background:#0065a0;
}
.csr_banner img{
    width:100%;
    max-width:1000px;
    height:auto;
    margin-top:40px;   
}
.csr_banner img:hover{
    opacity: 0.8;
}


/* SERVICE */
#section02 {
	background: url(../img/top/service_bg_top.png) right top / contain no-repeat,url(../img/top/service_bg.jpg) center center / cover no-repeat;
	padding: 20% 10% 10%;
}
#section02 .section_contents {
	text-align: left;
}
#section02 .section_title:before{
	content: '';
    position: absolute;
    bottom: -15px;
    display: inline-block;
    width: 24px;
    height: 2px;
    left: 12px;
    -moz-transform: translateX(-50%);
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
    transform: translateX(-50%);
    background-color: #cccccc;
    border-radius: 2px;
}
#section02 .service_list {
    display: flex;
    justify-content: flex-start;
    flex-wrap: wrap;
	width: 100%;
	margin: 24px 0;
}

#section02 .service_contents {
    width: 23%;
    text-align: center;
    padding: 1%;
	margin-bottom: 24px;
}
#section02 .service_contents h3{
	font-family: 'Oswald', sans-serif;
	font-size: 30px;
}
#section02 .service_contents h4{
    white-space: nowrap;
}
#section02 .service_contents img {
	width: 100%;
	max-width: 180px;
	border-radius: 100%;
}

#section02 .service_contents p {
	font-size: 14px;
	line-height: 1.6;
	text-align: justify;
}

#section02 .service_contents .button {
	width: 100%;
	max-width: 200px;
}
/* CASE */
#section03 {
	background: url(../img/top/case_bg_top.png) left top / contain no-repeat,url(../img/top/case_bg.jpg) center center / cover no-repeat;
	padding: 20% 10% 10%;
}
#section03 .section_contents {
	text-align: right;
}
#section03 .section_title:before{
	content: '';
    position: absolute;
    bottom: -15px;
    display: inline-block;
    width: 24px;
    height: 2px;
    right: -12px;
    -moz-transform: translateX(-50%);
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
    transform: translateX(-50%);
    background-color: #cccccc;
    border-radius: 2px;
}
#section03 .section_text{
	text-align: right;
}
#section03 .case_list {
    display: flex;
    justify-content: space-around;
    width: 100%;
    flex-wrap: wrap;
	margin: 24px 0;
}
#section03 .case_contents {
    width: 23%;
}

#section03 .case_contents figure{
    width: 100%;
    max-width: 210px;
    position: relative;
    overflow: hidden;
    border: 1px solid #0065a0;
	margin: 1em auto;
}
#section03 .case_contents figure:after {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 2;
    content: '';
    width: 100%;
    height: 100%;
    background: linear-gradient(45deg, rgba(255, 255, 255, 0.2), rgba(255, 255, 255, 0.4));
    opacity: 0;
}
#section03 .case_contents a {
    width: 100%;
    display: block;
}
#section03 .case_contents a:hover figure:after {
    opacity: 1;
}
#section03 .case_contents a figure img{
	transform: scale(1.0);
	transition: all 0.3s;
    vertical-align: middle;
}
#section03 .case_contents a:hover figure img{
	transform: scale(1.15);
	filter: blur(4px);
}
#section03 .case_contents figure figcaption {
    position: absolute;
    width: 100%;
    top: 50%;
    left: 50%;
    text-align: center;
    transform: translate(-50%,-50%);
}
#section03 .case_contents figure figcaption h3 {
	text-shadow: 0 0 1px #000000,0 0 2px #000000,0 0 5px #000000;
	color: #ffffff;
    font-size: 20px;
    margin: 0 0 8px;
}
#section03 .case_contents figure figcaption p{
	text-shadow: 0 0 1px #000000;
	color: #ffffff;
	font-size: 14px;
	margin: 0;
}

/* RECRUITE */
#section04 {
	background: url(../img/top/recruite_bg_top.png) right top / contain no-repeat,url(../img/top/recruite_bg.jpg) center center / cover no-repeat;
	padding: 20% 10% 10%;
}
#section04 .section_contents {
	text-align: left;
}
#section04 .section_title:before{
	content: '';
    position: absolute;
    bottom: -15px;
    display: inline-block;
    width: 24px;
    height: 2px;
    left: 12px;
    -moz-transform: translateX(-50%);
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
    transform: translateX(-50%);
    background-color: #cccccc;
    border-radius: 2px;
}
#section04 .rec_banner a {
    display: block;
    width: 100%;
    max-width: 683px;
	transition: all 0.3s;
}
#section04 .rec_banner a:hover {
	opacity: 0.8;
}
#section04 .rec_banner figure {
    margin: 5em 0;
    position: relative;
    width: 100%;
    max-width: 683px;
}
#section04 .rec_banner figure img {
    width: 100%;
}
#section04 .rec_banner figcaption {
    color: #ffffff;
    font-size: 60px;
	line-height: 1.25;
    width: 80.206442%;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}
/* NEWS */
#section05 {
	background-color: #ffffff;
	background:  url(../img/top/news_bg.png) left top / contain no-repeat,url(../img/top/news_bg_bottom.png) left bottom / contain no-repeat;
	padding: 20% 10% 20%;
}
#section05 .section_contents {
	text-align: right;
}
#section05 .section_title:before{
	content: '';
    position: absolute;
    bottom: -15px;
    display: inline-block;
    width: 24px;
    height: 2px;
    right: -12px;
    -moz-transform: translateX(-50%);
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
    transform: translateX(-50%);
    background-color: #cccccc;
    border-radius: 2px;
}
#section05 .section_text{
	text-align: right;
}
/* --- 新着情報エリア --- */
#section05 .update {
	width: 100%; 
	text-align: justify;
	margin: 24px 0
}
/* --- 見出し --- */
#section05 .update h3 {
	margin: 0 0 5px;
}
/* --- 新着リスト --- */
#section05 .update dl {
	width: 100%;
	margin: 0;
	border-top: 1px #c0c0c0 dotted;
}
/* --- 日付エリア --- */
#section05 .update dt {
	width: 20%;
	float: left;
	padding: 7px 0 6px 3px;
	line-height: 1.5;
}
/* --- 本文エリア --- */
#section05 .update dd {
	margin: 0;
	padding: 7px 3px 6px 6.6em;
	border-bottom: 1px #c0c0c0 dotted;
	line-height: 1.5;
}
/* --- clearfix --- */
.clearFix:after {
	content: ".";
	display: block;
	height: 0;
	clear: both;
	visibility: hidden;
}
.clearFix {
	min-height: 1px;
}


/* Tablet 640px 以上 〜　768px 以下
--------------------------------------------------------------------------------*/
@media only screen and (max-width: 768px) {
#mainvisul {
    margin-bottom: -14.294574%;
}
.main_chach01_IE{
    font-size: 90px;
}
.main_chach02_IE{
    font-size: 40px;
}
.main_chach_underbar {
    width: 55.916666666666667%;
}
#section01 {
	padding: 8% 10%;
}
#section02 .service_contents {
    width: 48%;
    padding: 1%;
}
#section03 .case_contents {
    width: 48%;
}
#section04 .rec_banner figcaption {
    font-size: 46px;
}
}

/* Smart Phone 640px 以下
--------------------------------------------------------------------------------*/
@media only screen and (max-width: 640px) {
#mainvisul {
    margin-bottom: -31.294574%;;
}
.main_chach01_IE{
    font-size: 44px;
}
.main_chach02_IE{
    font-size: 20px;
}
.main_chach_underbar {
    width: 66.916667%;
}
#section01 {
	padding: 24% 10%;
}
.section_title{
	font-size: 27px;
}
.section_sub_title {
    font-size: 18px;
    margin-bottom: 40px;
}
#section02 .section_contents {
    text-align: center;
}
#section02 .section_title:before{
	left: 50%;
}
#section02 .service_contents {
    width: 98%;
    padding: 1%;
}
#section03 .section_contents {
    text-align: center;
}
#section03 .section_title:before{
	left: 50%;
}
#section03 .service_contents {
    width: 98%;
    padding: 1%;
}
#section03 .section_text{
	text-align: justify;
}
#section03 .case_list {
    display: flex;
    justify-content: space-around;
    width: 100%;
    flex-wrap: wrap;
	margin: 24px 0;
}
#section03 .case_contents {
    width: 98%;
}
#section04 .section_contents {
    text-align: center;
}
#section04 .section_title:before{
    left: 50%;
}
#section04 .rec_banner figcaption {
    font-size: 24px;
}
#section05 .section_contents {
    text-align: center;
}
#section05 .section_title:before{
	left: 50%;
}
#section05 .service_contents {
    width: 98%;
    padding: 1%;
}
#section05 .section_text{
	text-align: justify;
}
#section05 .update {
	width: 100%; 
	text-align: center;
}
#section05 .update dt {
    width: 100%;
    float: none;
    padding: 10px 0;
}
#section05 .update dd {
    padding: 10px 0;
    text-align: justify;
}
}

/* Smart Phone 340px 以下
--------------------------------------------------------------------------------*/
@media only screen and (max-width: 340px) {
#mainvisul {
    margin-bottom: -46.294574%;
}
#section01 {
    padding: 40% 10% 30%;
}
}