@charset "UTF-8";
/* CSS Document */
@import url('https://fonts.googleapis.com/css2?family=Mitr:wght@400;500&display=swap');

* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;	
}
body {
font-family: 'Noto Sans JP', sans-serif;
font-size: 15px;
line-height: 1.75;
letter-spacing: 0.1em;   
-webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;   
color: #555;    
}


.fullscreenmenu{
display: none;
}
.inner{
width: 95%;
display: block;
margin: 0 auto;
}
.marker{
background: linear-gradient(transparent 10%, #014eab 90%);
}   
.opacity{
opacity:0.3;     
}
.rf{
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform : translate(-50%,-50%);
  transform : translate(-50%,-50%);
  width: 90%;
  text-align: center;    
font-size: 1.5em; 
color: #000;    
}
	.h100{
height: 100px;		
	}
	.h50{
height: 50px;		
	}
	.h30{
height: 30px;		
	}	
	.h20{
height: 20px;		
	}
	.h10{
height: 10px;		
	}
a{
	text-decoration: none;	
}
li{
	list-style-type: none;
}
h1,h2,p,.copyright{
	
}
section{
padding: 70px 0!important;    
}
img {
    max-width: 100%;
    height: auto;
}
span.ib{
	display: inline-block;
}
.t-center{
	text-align: center;
}

.b-m10 {
    margin-bottom: 10px;
}

.b-m20 {
    margin-bottom: 20px;
}

.b-m30{
	margin-bottom: 30px;
}

.p-white{
	color: #fff;
}

.padding1{
 padding: 100px 0!important; 
border-bottom: solid #E6E6FA 1px;
}
.text-shadow {
text-shadow: 
       1px  1px 1px #ffffff,
      -1px  1px 1px #ffffff,
       1px -1px 1px #ffffff,
      -1px -1px 1px #ffffff,
       1px  0px 1px #ffffff,
       0px  1px 1px #ffffff,
      -1px  0px 1px #ffffff,
       0px -1px 1px #ffffff;   
    }
.text-shadow_b {
text-shadow: 
       1px  1px 1px #212121,
      -1px  1px 1px #212121,
       1px -1px 1px #212121,
      -1px -1px 1px #212121,
       1px  0px 1px #212121,
       0px  1px 1px #212121,
      -1px  0px 1px #212121,
       0px -1px 1px #212121;   
    }
.text1{
font-size: 1em;  
line-height: 200%;   
}
.text1 strong{
font-size: 1.5em;    
display: block;  
line-height: 1.5;         
}
.text2{
font-size: 1.2em;    
line-height: 1.5;     
}
.tyuki{
font-size: 0.9em;
color: #014eab;    
}
.sp_l{
      text-align: center;
    }

.tb_l{
      text-align: center;
    }
.background1{
width: 95%;
display: block;
margin: 0 auto ;
background:url("../img/background1.jpg");
background-size: cover;
background-position: center;
z-index: -10;	
background-attachment: fixed;    
}
.background2{
width: 100%;
height: auto;   
background: rgba(89,2,59,0.1);	 
}

.container {
max-width: 1170px;
width: 100%;
margin: 0 auto;
text-align: center;		
}

.flex-box1{
width: 100%;
height: auto;
display: flex;    
flex-wrap:wrap;
justify-content:space-between;
align-items:center;    
}
/*TOPスライダー*/
.slider-box{
background: #fff; 
padding-top: 130px;
padding-bottom: 50px;  
z-index: -5;
position: relative;
}

.slider{
width: 93%;
height:calc(100vh - 180px);   
display: block; 
position: relative;
margin-left: 7%; 
min-height: 700px;    
}

.slider-back{
 width: 93%;
 height: 600px;
background: #014eab; 
z-index: -3;
position: absolute; 
bottom: 0;  
left: 0;    
}

.slider-box1{
background: #fff; 
padding-top: 130px;
padding-bottom: 50px;  
z-index: -5;
position: relative;
    
}
.slider1{
width: 93%;
height:400px;   
display: block; 
position: relative;
margin-left: 7%;  
overflow: hidden;   
background: url("../img/kasou.jpg");
background-position: center;
background-size: cover;    
background-repeat: no-repeat;
}

.slider-back1{
 width: 100%;
 height: 300px;
background: #014eab; 
z-index: -3;
position: absolute; 
bottom: 0!important;  
left: 0!important;    
}
.slider-box1 p{
font-size: 5em;
position: absolute;
top: 350px;
left: 10%;
color: #fff; 
font-weight: 500;
line-height: 1.5;
text-shadow: 0 0 10px #333;
}
.slider-box1 .small{
font-size: 0.3em;
display: block;   
text-align: center;  
color: #fff;
font-weight: 500;    
}
.text_img{
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform : translate(-50%,-50%);
  transform : translate(-50%,-50%);
  width: 100%;
  height: 400px;
  text-align: center;
  color: #fff;
  font-size: 1.5em;
  background-image: url("../img/test_img.png");
  background-size:contain;
  background-repeat: no-repeat;
  background-position: center;
  
 
}
.text_img h2{
	position: absolute;
  	top: 30%;
	color: #fff;
	font-size: 2em;
	font-weight: 700;
	width: 100%;
	text-align: center;
	line-height: 1.3;
}
.text_img .small{
	font-size: 22px;
	font-weight: 500;
}


/*パンクズ */
.breadcrumb {
padding-top: 1%;    
  padding-left: 10%;
  list-style: none;
text-align: left;
}

.breadcrumb li {
  display: inline;/*横に並ぶように*/
  list-style: none;
font-size: 1em;
color: #fff;
font-weight: 500;
}

.breadcrumb li:after {/* >を表示*/
  content: '>';
  padding: 0 0.2em;
}

.breadcrumb li:last-child:after {
  content: '';
}
.breadcrumb .item_text{
color: #288AD3;    
}
.breadcrumb li a {
  text-decoration: none;
color: #fff;
}
.breadcrumb li a:hover {
  text-decoration: underline;
}
.breadcrumb .fa-home{
color:#BF0404; 	
}
/*スクロールダウン全体の場所*/
.scrolldown2{
    /*描画位置※位置は適宜調整してください*/
	position:absolute;
	bottom:80px;
	left:50%;
}

/*Scrollテキストの描写*/
.scrolldown2 span{
    /*描画位置*/
	position: absolute;
	left:10px;
	bottom:20%;
    /*テキストの形状*/
	color: #fff;
	font-size: 0.7rem;
	letter-spacing: 0.05em;
	/*縦書き設定*/
	-ms-writing-mode: tb-rl;
    -webkit-writing-mode: vertical-rl;
    writing-mode: vertical-rl;

}

/* 丸の描写 */
.scrolldown2:before {
    content: "";
    /*描画位置*/
    position: absolute;
    bottom:0;
    left:-4px;
    /*丸の形状*/
	width:10px;
	height:10px;
	border-radius: 50%;
	background:#fff;
    /*丸の動き1.6秒かけて透過し、永遠にループ*/
	animation:
		circlemove 1.6s ease-in-out infinite,
		cirlemovehide 1.6s ease-out infinite;
}

/*下からの距離が変化して丸の全体が上から下に動く*/
@keyframes circlemove{
      0%{bottom:45px;}
     100%{bottom:-5px;}
 }

/*上から下にかけて丸が透過→不透明→透過する*/
@keyframes cirlemovehide{
      0%{opacity:0}
     50%{opacity:1;}
    80%{opacity:0.9;}
	100%{opacity:0;}
 }

/* 線の描写 */
.scrolldown2:after{
	content:"";
    /*描画位置*/
	position: absolute;
	bottom:0;
	left:0;
    /*線の形状*/
	width:2px;
	height: 50px;
	background:#fff;
}


.heading{
 font-size: 2em;    
}
.midashi{
width: 100%;    
height:auto;      
display: block;
position: relative;
z-index: 100;
color: #014eab;
}

.midashi h2{
width: 100%;     
font-size:1.5em;		
text-align: center;	  
line-height: 1.5; 
font-weight: 500;    
}
.midashi strong{
font-size: 2em;	 
display: block;    
width: 100%;    
text-align: center;  
display: block;
font-weight: 500;
}
.midashi p{
font-size: 2em;		
display: block; 
  text-align:center;  
font-weight: 500; 
}


.midashi img{
width: 100%;    
}
.midashi2{
width: 100%;    
height:auto;      
display: block;
position: relative;
z-index: 100;    
}

.midashi2 h2{
width: 100%;     
font-size:1.5em;		
text-align: center;	
color: #fff;     
line-height: 1.5; 
font-weight: 500;    
}
.midashi2 strong{
font-size: 2em;		
color: #fff;   
display: block;    
width: 100%;    
  text-align: center;  
    display: block;
font-weight: 500;
}
.contener{
max-width: 1170px;
 width: 100%;   
display: block;
margin: 0 auto;
}



.top_menu{
width: 100%;
height: auto;
display: inline-block;
    
}

.top_menu .menu_t{
width: 100%;
display: flex;
flex-wrap:wrap;
justify-content:space-between;
align-items:flex-start;    
}

.top_menu .menu_t .logo{
width:25%;
margin-top: 1%;
}
.top_menu .menu_t .logo img{
width:95%;	
display: block;
margin: 0 auto;
}


.top_menu .m1{
width: 50%;	   
padding-top: 1%;    
}

.top_wrapper{
width: 100%;   
height: 50px;    
position:fixed;
top:0; 
left: 0;
z-index: 990;
height: auto;
transition: all 0.5s;

}
.top_wrapper.transform{
	background: #fff;
}

/*==ナビゲーション全体の設定*/
nav{
  color: #5070b0;
  text-align: center;
    padding: 2% 0 ;
}
/*ナビゲーションを横並びに*/
nav ul{
  list-style: none;
  display: flex;
  justify-content: flex-end;
}


nav ul ul{
  display: block;
}

nav ul li{
  position: relative;
width: calc(100% / 6);       
}

nav ul li.b2{
  position: relative;
  width: 100%; 
  margin-left: 30px;
  background: #fff;
}

/*ナビゲーションのリンク設定*/
nav ul li a{
  display: block;
  text-decoration: none;
  color: #014eab;
  transition:all .3s;
   font-weight: 500; 
    font-size: 1em;
}



nav ul li a:hover{
  color:#61b7f4; 
  text-decoration: transparent;
}


.t-con{
width: 100%;
display: flex;    
flex-wrap:wrap;
justify-content:flex-end;
align-items:center;    
}

.t-btn1{
width: 25%;	    
font-size: 1em;	   
transition: all 0.5s;  
color: #fff;  
display: block;  
text-align: center; 
padding: 0.5em 0;
border: 1px #014eab solid;
margin-right: 15px;  
vertical-align: middle;    
background: #014eab;    
position: relative;   
 display: block; 
text-decoration: none;  
 font-weight: 500;     
    z-index:0;    
overflow: hidden;    
}
.t-btn1:hover{ 
    border-radius: 5px;
}

.t-btn1::before {
	content: '';
    /*絶対配置でキラッと光るの位置を決める*/
	position: absolute;
	top: 0;
	left: -75%;
    /*キラッと光る形状*/
    width: 50%;
	height: 100%;
	background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,.3) 100%);
	transform: skewX(-25deg);
}
.t-btn1:hover::before {
	animation: shine 0.7s;
}
@keyframes shine {
	100% {
		left: 125%;
	}
}
.t-btn2{   
width: 5%;	    
font-size: 2.5em;	   
transition: all 0.5s;  
color: #fff;  
display: block;  
text-align: center;  
margin-right: 10px;  
 font-weight: 500;     
}
.t-btn2:hover{ 
opacity: 0.5;    
text-decoration: transparent;    
}

@keyframes bg_slide {
    100% {
        transform-origin: left top;
        transform: scaleX(1.0);
    }
    0% {
        transform-origin: left top;
        transform: scaleX(0.0);
    }
}


/*===ボタン===*/


.width1{
width: 50%;    
}

.width4{
width: 40%;    
}

.width3{
width: 30%;    
}
.width2{
width: 20%;    
}
.button {
      background: #014eab;
   border:2px solid #014eab;   
  position: relative;
  display: inline-block;
 color: #fff;
  text-align: center;
  text-decoration: none;
  transition: .3s;
    display: block;
    margin: 0 auto;
    z-index:0;
    padding: 1%;
    border-radius: 5px;
    font-size: 1em;
    margin-top: 3%;
    overflow: hidden;
    font-weight: 500;
}
.button:hover {
  color: #014eab;
    border-radius: 5px;
    border:2px solid #014eab;  
}
.button::before {
  position: absolute;
     background: #fff;  
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  content: '';
  transform-origin: right top;
  transform: scale(0, 1);
  transition: transform .3s;
}
.button:hover::before {
  transform-origin: left top;
  transform: scale(1, 1);
      z-index: -1;
}
.button2 {
      background: #fff;
   border:2px solid #fff;   
  position: relative;
  display: inline-block;
 color: #014eab;
  text-align: center;
  text-decoration: none;
  transition: .3s;
    display: block;
    margin: 0 auto;
    z-index:0;
    padding: 1%;
    border-radius: 5px;
    font-size: 1em;
    margin-top: 3%;
    overflow: hidden;
    font-weight: 500;
}
.button2:hover {
  color: #fff;
    border-radius: 5px;
    border:2px solid #fff;  
}
.button2::before {
  position: absolute;
     background: #014eab;  
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  content: '';
  transform-origin: right top;
  transform: scale(0, 1);
  transition: transform .3s;
}
.button2:hover::before {
  transform-origin: left top;
  transform: scale(1, 1);
      z-index: -1;
}
/*====ご挨拶===*/

.greeting-box{
width: 100%;
height: auto;
display: inline-block;  
background: url("../img/greeting.jpg");  
background-size: cover;
background-repeat: no-repeat;
background-position: center left;    
}
.greeting-box2{
width: 100%;
height: auto;
display: inline-block;  
background:#160429;
}
.g-width{
display: block;
margin: 0 auto;
}
.greeting{
width: 100%; 
height: auto;       
}
.greeting-text strong{
font-size: 1.3em;
display: block;   
}
.greeting-text2 strong{
font-size: 1.2em;
display: block; 
color: #fff;     
}
.greeting-text {
display: block;
margin: 0;    
font-size:1em;
text-align:center;
line-height:200%;  
color: #fff; 
}

/*===共通===*/

.item-box_flex{
width: 100%;
height: auto;
display: flex;    
flex-wrap:wrap;
justify-content:space-between;
align-items:center;   
background:#fff; 
position: relative;   
}
.item-box{
width: 100%;
height: auto;
display: block;  
    
}
.border1{
width: 20%;
height: 1px;
background: #a1d8f7;    
display: inline-block;   
vertical-align: middle;    
}


.item-t{
width: 50%;
padding:5%; 
position: relative;
}
.item-p{
width: 50%;   
}
.item-p img{
width: 100%;    
}
.text-box{
width: 50%;
display: block;
margin: 0 auto;
}
.circle{
   color:#a1d8f7;
}

.blue_bg{
	background:#014eab;
}

.bw_bg{
  background: linear-gradient(
  #014eab 0%,
  #014eab 50%,
  transparent 50%,
  transparent 100%
		);
	
}

.bg{
	background:rgba(5,117,253,0.1);
}

/* mtitle
----------------------------------*/
.mtitle {
  font-weight: 500;
  margin: 0 auto 40px;
  text-align: center;
}
.mtitle.min-b {
  margin-bottom: 15px;
}
.mtitle .eng {
  font-size: 1.8rem;
  color: #0c2462;
  position: relative;
  display: block;
  font-family: "Questrial", sans-serif;
  font-weight: 400;
}
.mtitle .ja {
  font-size: 2.5rem;
  color: #232323;
  font-family: "Zen Kaku Gothic New", sans-serif;
}
.mtitle.white {
  color: #fff;
  text-shadow: 0 0 3px rgba(0, 0, 0, 0.2);
}
.mtitle.white span {
  color: #fff;
  text-shadow: 0 0 3px rgba(0, 0, 0, 0.2);
}
.mtitle.white span:after {
  background-color: #eee;
}
.mtitle.white span.ja {
  border-bottom-color: #fefefe;
}
.mtitle.black {
  color: #333;
}
.mtitle.black span {
  color: #555;
}
.mtitle.black span:after {
  background-color: #555;
}
.mtitle.sub1 .eng {
  color: #08402a;
}
.mtitle.sub2 .eng {
  color: #fcc800;
}
.mtitle.mtitle_left {
  text-align: left;
  margin-left: 0;
  margin-right: 0;
}
.mtitle.mtitle_left span:after {
  left: 0;
  transform: none;
}
.mtitle.mtitle_right {
  text-align: right;
  margin-right: 0;
  margin-left: 0;
}
.mtitle.mtitle_right span:after {
  left: 0;
  transform: none;
}
@media all and (max-width: 639px) {
  .mtitle {
    text-align: center;
  }
  .mtitle .eng {
    font-size: 1.5rem;
  }
  .mtitle .ja {
    font-size: 2rem;
  }
}


/*====強み===*/
.number-box{
width: 100%; 
padding: 5% 0;  
background:#fff;      
}
.number{
width: calc(95% / 3);
display: block;    
position: relative; 
}
.number_img{
width:15%;    
vertical-align: middle;    
}
.number_text{
width: 100%;       
font-size: 1em;  
line-height: 1.75;  
text-align: center;
position: absolute;
top: 50%;
left: 50%;
-webkit-transform : translate(-50%,-50%);
transform : translate(-50%,-50%); 
color: #fff;
text-shadow: 2px 2px 2px #666666;
}
.number_text .en{
	font-family: 'Mitr', sans-serif;
	font-size: 2.5em;
	font-weight: 500;
	color: #014eab;
	text-shadow: 2px 2px 2px #fff;
}
.number_photo{
width: 100%; 
display: block;    
}
.number_photo .back_img{
width: 100%; 
border-radius: 50%;      
}
.number_text strong{
font-size: 2em; 
display: block;     
}

.number-flex{
width: 100%;
display: flex;
flex-wrap:wrap;
justify-content:space-around;
align-items:center    
}
.pride-box{
width: 100%;    
}
.pride-flex{
width: 100%;
display: flex;
flex-wrap:wrap;
justify-content:space-around;
align-items:flex-start;    
}
.pride{
width: calc(95% / 3);
position: relative; 
padding: 1%;
height: 600px;
box-shadow: 2px 2px 10px #eee;    
}
.pride .illust{
width: 30%;
display: block;
margin: 0 auto;
}
.pride_text{
width: 100%;       
font-size: 0.9em;  
line-height: 1.75;  
text-align: center;
}
.pride_text strong{
font-size: 2.5em; 
display: inline-block;   
vertical-align:bottom;
color: #014eab;
font-weight: 500;
}
.pride_img{
width:15%;    
 
}

.comic {
	margin: 10px 2%;
}

.t_works{
	display: flex;
	width: 100%;
	justify-content: center;
	flex-wrap: wrap;
}

.t_works .com{
	width: calc(80% / 4 );
	height: 200px;
	margin: 20px;
}
.t_works img{
	width: 100%;
	object-fit: cover;
}

/*====全ページ共通フッターメニュー===*/
footer{
width: 100%;
display:block;
text-align: center;	
background:url("../img/footer_back.jpg");
background-position: bottom;
background-size: cover;    
padding: 2% 0  0;  
background-attachment: fixed;    
}
footer .footer-box{
height:auto; 
width: 95%;    
display: block; 
padding: 100px 0!important;
margin: 0 auto;
}
footer .footer-box .footer-back{
width: 100%;  
}

.con-text{
font-size: 1.3em;
color: #fff; 
line-height: 1.75;    
}
.f-contact{
width:100%;
display: flex;    
flex-wrap:wrap;
justify-content:center;
align-items:center;    
}
.f-contact img{
width: 40%;
display: block;
margin: 0 auto 5%;
}
.f-con{
width: calc(70% / 2);
margin: 0 1em;    
}
.f-con a{
border:1px solid #fff;
padding:2% 1%;
font-size: 1.5em;  
display: block;  
color: #fff;    
transition: all 0.5s;   
font-weight: 500; 
background: rgba(0,0,0,0.50);
}
.f-con a:hover{
background: #fff;
color: #014eab; 
text-decoration: transparent;    
}
.f-con p{
border:1px solid #fff;
padding:1em 1%;
font-size: 1.5em;    
}

.f_text{
width: 100%;    
text-align: center;
color: #fff; 
display: block;
margin: 0 auto;
font-size: 1em;  
text-align: 1.75;
text-shadow: 0 0 4px #000;
}

footer .f-text1{
text-align: center;	
color: #fff;
font-size: 1.1em;	
line-height: 1.75;	
}
footer .f-text2{
text-align: center;	
color: #333;
font-size: 1.3em;
line-height: 1.6;       
}
footer .copyright small{
text-align: center;	
color:#fff;
padding:1% 0;
display: block;	
background:#014eab;  
font-size: 0.9em;  
}
/*==========事業内容===========*/
.single_01 {
  margin: 0 auto;
  max-width: 1240px;
  padding-bottom: 80px;
}
.relative {
    position: relative;
    z-index: 1;
}
.space {
  padding: 0 16px;
}
.space_vertical {
  padding: 32px 0;
}
.mtitle_middle {
    position: relative;
    margin-bottom: 24px;
    padding: 0 0 4px 1em;
    border-bottom: 1px dotted #aaa;
    font-size: 1.2em;
    font-weight: 600;
}
.mtitle_middle:before {
    content: "";
    position: absolute;
    top: 15%;
    left: 0;
    width: 2px;
    height: 50%;
    background: #66ac66;
}
.mtitle_greeting {
  margin-bottom: 32px;
  font-size: 2.4rem;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: 0.08em;
}
.mtitle_greeting span {
  display: block;
  color: #66ac66;
  font-size: 1.4rem;
}
.column3 {
  display: flex;
  justify-content: start;
  flex-wrap: wrap;
  margin-bottom: -3%;
}
.column3 > .child {
  width: 31.3%;
  margin: 0 3% 3% 0;
}
.column3 > .child:nth-child(3n) {
  margin: 0 0 3% 0;
}
.about_bnr {
    display: block;
    background-color: #fff;
    box-shadow: 0 54px 44px -12px rgba(0, 5, 30, 0.05);
    color: #292929;
}
.about_bnr .title {
    margin-bottom: 8px;
    color: #66ac66;
    font-size: 1.2em;
}
.greet1_img {
    overflow: hidden;
    position: absolute;
    top: -10%;
    width: 60%;
    height: 120%;
}
.greet1_img img {
  max-width: 100%;
  max-height: 100%;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  vertical-align: middle;
}
.greet1_txt {
    position: relative;
    z-index: 3;
    width: 55%;
    max-width: 880px;
    padding: 64px 56px;
    margin-left: auto;
    background-color: rgba(255, 255, 255, 0.8);
    box-shadow: 0 6px 15px rgba(36, 37, 38, 0.04);
    min-height: 350px;
}
/*===========強み===========*/
.subcontent .strength__box {
    background: url(../images/top/bg_greeting.gif) repeat-x top, #fff;
    padding: 30px 30px 80px;
}
.subcontent .strength__box_inner {
    border: 1px solid #111;
    padding: 40px;
}
.subcontent .strength__box_inner .ttl {
    margin-bottom: 50px;
}
.subcontent .ttl {
    font-size: 1.6rem;
    letter-spacing: 0.1em;
    line-height: 1.8;
    font-weight: bold;
    text-align: center;
    position: relative;
    text-transform: uppercase;
    margin-bottom: 80px;
}
.subcontent .ttl span {
    font-size: 4.6rem;
    letter-spacing: 0.1em;
    display: block;
    line-height: 1;
    color: #014eab;
    position: relative;
    width: -moz-fit-content;
    width: fit-content;
    margin: 0 auto;
}
.font-en {
    font-family: 'Josefin Sans', sans-serif;
}
.subcontent .ttl span::before {
    content: "";
    position: absolute;
    width: 30px;
    height: 1px;
    background: #014eab;
    left: -32px;
    top: 40%;
}
.subcontent .ttl span::after {
    content: "";
    position: absolute;
    width: 30px;
    height: 1px;
    background: #014eab;
    right: -32px;
    top: 40%;
}
@media screen and (max-width: 767px) {
  .subcontent section {
    padding: 40px 0;
  }
  .subcontent .ttl span {
    font-size: 32px;
  }
  .subcontent .ttl {
    margin-bottom: 40px;
  }
}
@media screen and (max-width: 500px) {
  .subcontent .ttl span {
    font-size: 22px;
  }
}

/* greet_block
----------------------------------*/
.greet_block {
  position: relative;
  margin-bottom: 60px;
}

.greet_img {
  position: absolute;
  width: 60%;
  height: 100%;
  overflow: hidden;
  top: -8%;
}

.greet_img img {
  max-width: 100%;
  max-height: 100%;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  vertical-align: middle;
}

.greet_txt {
  position: relative;
  z-index: 3;
  width: 50%;
  max-width: 770px;
  padding: 40px;
  margin-left: auto;
  margin-right: 160px;
  background-color: rgba(255, 255, 255, 0.8);
}

.greet_title {
  margin: 16px 0;
  font-size: 2rem;
  font-weight: 600;
}

.type_b .greet_img {
  right: 0;
}

.type_b .greet_txt {
  margin-right: 0;
  margin-left: 160px;
}
.feature_num {
    position: relative;
    z-index: 1;
    margin-bottom: -24px;
    color: #1fa8cf;
    font-size: 4rem;
    font-weight: 600;
}
/* 施工実績============================================================ */
.works-box{
	width: 100%;
	position: relative;    
}
.works_flex{
	margin: 0 0 30px ;
	display: flex;
	justify-content: flex-start;
	align-items: stretch;
	flex-wrap: wrap;
	width: 100%;
}
.works_flex figure{
	width: calc(100% / 3 - 10px);
	padding: 10px;
	margin: 20px 5px;
	background:#f4f6f9;
	max-width: 400px;
	position: relative;
	border-radius: 10px;
}
.works_flex figure img{
	width: 100%;
	height: 200px;
	object-fit: contain;
	background-color: #f5f5f5;
}

.works_flex figure figcaption h3{
	font-weight: bold;
  	border-left: 5px solid #4c9ac0;
  	border-bottom: 2px dashed #B4B4B4;
  	padding: 0.25em 0 0.3em 0.5em;
	margin-bottom: 10px;
}
.works_flex figure figcaption h4{
	font-size: 1em;
	font-family: 'Noto Serif JP', serif;
	color: #2f4c80;
	margin: 10px 5px;
}
.works_flex figure figcaption dl{
	display: flex;
	justify-content: flex-start;
	align-items: center;
	margin-bottom: 0.5em;
	margin-top: 0.5em;
}
.works_flex figure figcaption dl dt{
	width: 5em;
	background:#00b4cc;
	color: #fff;
	padding: 0.5em ;
}
.works_flex figure figcaption dl dd{
	padding: 0.5em ;
}

/*==========求人情報===========*/
.recruit-box{
width: 100%;
height: auto;
position: relative;
}
.recruit_img
{
display: inline-block;  
background: url("../img/recruit_img.jpg");    
background-size: cover;
background-position: top right;
background-repeat: no-repeat;
}

.list4 {
  display: flex;
  flex-wrap: wrap;
  margin: auto;
　justify-content: space-between;
}
.list4 li, .list4 .child {
  width: 32%;
  margin: 0 1.3333333333% 25px 0;
}
.list4 li:nth-child(3n), .list4 .child:nth-child(3n) {
  margin-right: 0;
}
.list4.efct li, .list4.efct .child {
  position: relative;
  width: 32%;
  margin: 0 1.3333333333% 25px 0;
}
.list4.efct li:nth-child(3n), .list4.efct .child:nth-child(3n) {
  margin-right: 0;
}
@media all and (max-width: 1100px) {
  .list4.efct li, .list4.efct .child {
    width: 48%;
    margin-right: 4%;
  }
  .list4.efct li:nth-child(2n), .list4.efct .child:nth-child(2n) {
    margin-right: auto;
  }
  .list4.efct li:nth-child(2n)::after, .list4.efct .child:nth-child(2n)::after {
    display: none;
  }
}
@media all and (max-width: 1100px) and (max-width: 639px) {
  .list4.efct li:nth-child(2n)::after, .list4.efct .child:nth-child(2n)::after {
    display: block;
  }
}
@media all and (max-width: 639px) {
  .list4.efct > li, .list4.efct .child {
    width: 95%;
    margin-bottom: 5%;
  }
  .list4.efct li:nth-child(2n), .list4.efct .child:nth-child(2n) {
    margin-bottom: 5%;
  }
}
.list4.efct li::after, .list4.efct .child::after {
  position: absolute;
  content: "";
  right: -3%;
  top: 0;
  width: 1px;
  height: 100%;
  background: linear-gradient(to top, #0c2462, #08402a);
}
@media all and (max-width: 1100px) {
  .list4.efct li::after, .list4.efct .child::after {
    right: -4%;
  }
}
@media all and (max-width: 639px) {
  .list4.efct li::after, .list4.efct .child::after {
    right: 0;
    top: auto;
    width: 100%;
    height: 1px;
  }
}
.list4.efct li:last-child::after, .list4.efct .child:last-child::after {
  display: none;
}
.list4.efct li .txt-box, .list4.efct .child .txt-box {
  padding: 20px;
  font-size: 1rem;
}
.list4.efct li .title, .list4.efct .child .title {
  font-weight: 600;
  font-size: 1.2rem;
  margin-bottom: 10px;
  color: #0c2462;
  text-align: center;
}



/*===========会社概要===========*/
.company-box{
width: 100%;   
position: relative;    
}
.list_table{
width: 100%;  
box-shadow: 2px 2px 10px #eee;
padding: 3%;   
background: #fff;        
}

.list_table tr{
width: 100%;   
}
.list_table th{
width: 40%;	
text-align: center;
padding: 1%;
font-size: 1em;	
border-bottom: 2px solid #014eab;       
}

.list_table td{
width: 60%;	
text-align: left;
padding: 1%;
line-height: 1.75;	
font-size:1em;	
border-bottom: 2px solid #E6E6FA;    
}
.map{
width: 100%;    
box-shadow: 2px 2px 10px #eee;   
padding: 3%;  
background: #fff;    
}
.map iframe{
height: 500px;    
}

/*＝＝＝沿革＝＝＝*/
.timeline {
width: 100%;    
box-shadow: 2px 2px 10px #eee;   
padding: 3%;  
background: #fff;
}

.timeline-list {
    padding: 40px 0;
}

.timeline-list-item {
    display: flex;
    line-height: 1.5;
    font-size: 16px;
}

.timeline-list-item .date {
    width: 20%;
    padding: 0 0 0 20px;
    color: #888888;
    font-weight: bold;
}

.timeline-list-item .contents {
    position: relative;
    width: 80%;
    padding: 0 20px 40px 30px;
    border-left: 1px solid #aaaaaa;
}

.timeline-list-item .contents::before {
    content: "";
    position: absolute;
    top: 0;
    left: -10px;
    width: 20px;
    height: 20px;
    background-color: #61b7f4;
    border-radius: 10px;
}

@media all and  (max-width:639px){
.timeline-list-item {
    display: block;
}
.timeline-list-item .date {
    width: 50%;
}
.timeline-list-item .contents {
    width: 85%;
    padding: 0 5px 40px 25px;
}
} 
@media all and  (max-width:450px){
.timeline-list-item {
    font-size: 14px;
	 line-height: 1.3;
}

.timeline-list-item .contents {
    padding: 0 5px 30px 25px;
    border-left: 1px solid #aaaaaa;
}
.timeline-list-item .contents::before {
	left: -8px;
    width: 15px;
    height: 15px;
    background-color: #61b7f4;
    border-radius: 10px;
}
} 

/*===========お問い合わせ===========*/
.contact-box{
width: 100%;
height: auto;
display: block;    
position: relative;
z-index: 10;    
}
.text_titl{
 font-size: 1.3em;  
text-align: center;
color: #014eab;    
}

.contact-text1{
font-size: 1em;
line-height: 200%;    
text-align: left;
}
.contact-text1 .purple{
	background-color:#014eab;
	color:#fff;
	font-size:0.7em;
	padding:0 0.5%;
    margin-right: 5px;
    display: inline-block;
    line-height:1.8;  
}
.contact-box2 a{
font-size: 1.5em;
color:#fff; 	
transition: all 0.5s;	
padding: 1% 0;    
border: 3px solid #348ABF;
background: #a1d8f7;    
  padding: 2%;   
display: block;    
margin: 1% 0;    
width: 70%;  
text-align: center;
margin: 0 auto;
}
.contact-box2 a:hover{
text-decoration: transparent;	
color: #a1d8f7;  
background: #fff;       
}
.contact-wrapper{
width: 100%;	
}
.contact-tel{
font-size: 1.8em;
background: #014eab;
padding:2% 1%; 
display: inline-block; 
color: #fff;
font-weight:500;  
transition: all 0.5s;   
width: 100%;
border:#014eab solid  2px;
text-align: center;    
} 
.contact-tel:hover{
text-decoration: transparent;   
background: #fff;  
color: #014eab;    
}

.contact-tel .small{
font-size: 0.7em;
display: block;  
border-bottom: solid 1px #fff;
padding: 1% 0;    
}
.contact-fax{
font-size: 1.8em;;
display: inline-block; 
font-weight:500;  
width: 100%;
text-align: center;    
} 
.contact-flex{
width: 100%;
display: flex;  
flex-wrap:wrap;
justify-content:space-between;
align-items:center;
background: #f0fafc;  
padding: 2%;    
}
.tel-box{
 width: calc(95% / 2);    
}
form{
	width: 100%;
	text-align: center;
}
.checkbox_text{
line-height: 1.75;
color: #333;	
}
.mailform{
width: 98%;
padding:3%;	
box-shadow: 2px 2px 10px #eee;   
background: #fff;    
}
.mailform table{
width: 100%;    
 
}
.mailform table .grey{
	background-color:#999;
	color:#fff;
	font-size:0.7em;
	padding:1%;
    margin-right: 5px;
    display: inline-block;
    width: 15%;
     text-align: center;
}

.mailform table .purple{
	background-color:#014eab;
	color:#fff;
	font-size:0.7em;
	padding:1%;
    margin-right: 5px;
   display: inline-block;
   width: 15%;   
    text-align: center;
}


.mailform table tr{
}

.mailform table th{
	font-size: 1em;
	text-align: left;
	color:#333;
	padding-left: 2%; 
    border-bottom: 1px dotted #b0b0b0;
}

.mailform table td p{
	font-size: 1em;
	color:#000;
	padding-top: 1%;
	line-height: 1.7;
}
.mailform table td img{
width:100%;	
margin-top: 1%;	
border-radius: 50px;	
}
.mailform table td{
font-size: 1em;
color:#333;
padding: 2% 1%;
width: 70%; 
border-bottom: 1px dotted #b0b0b0;   
text-align: left;
}

.mailform table td iframe{
height: 400px;	
}

.textareatablearea{
width:100%;
}

textarea{
width:100%!important; 
}
.mailform dd p{
	margin-top: 1%;
	font-size:1.1em;
	color:#333;
	letter-spacing: 4px;
	line-height: 1.75;
}

.single p{
	text-align: center;
	color:#333;
}


.form-button
{
margin: 5% 0;
text-align: center;
}

.form-button button {
    cursor: pointer;
    display: block;
    margin: 0 auto 5px;
    padding: 10px 0 10px;
    color: #fff;
    text-align: center;
    width: 250px;
	transition: all 0.5s;	
    border:1px solid #014eab;
    background: #014eab;
}
.form-button button:hover{
    color: #014eab;
     background: #fff;
	text-decoration: transparent;
}
.textarea, textarea, .dropdown {
    border-radius: 2px;
}


button[type="submit"]{
	font-size:1em;
	padding: 10px;
}

input[type="checkbox"]{
	font-size: 1em;
	margin-left: 2%;
	margin-bottom: 2%;
	border:1px solid #bababa;	
}
input[type="text"]{
	width: 100%!important;
	height: 40px;
	font-size: 1em;
	padding: 10px;
	background:#fff;
	border:1px solid #bababa;
}
input[type="tel"]{
	width: 100%!important;
	height: 40px;
	font-size: 1em;
	padding: 10px;
	background:#fff;
	border:1px solid #bababa;
}
input[type="email"]{
	width: 100%!important;
	height: 40px;
	font-size: 1em;
	padding: 10px;
	background:#fff;
	border:1px solid #bababa;
}
textarea[type="text"]{
padding: 10px;	
font-size: 1em;	
background:#fff;	
border:1px solid #bababa;	
}


.accordion h3{
font-size: 1.2em;
margin-bottom: 1%;	
transition: all 0.5s;
padding: 1%;
text-align: left;	
color: #fff;	
background: #888;      
border:1px solid #888;  
}
.accordion h3:hover{
text-decoration: transparent;	
color:#888;	
background: #fff;    
}
.accordion h4{
font-size: 1em;
text-align: left;
padding-bottom: 3px;	
letter-spacing: 2px;
border-bottom: 1px solid #014eab;
padding-left: 1%;
color: #014eab;    
}
.accordion p{
font-size:0.9em;
line-height:200%;	
text-align: left;
letter-spacing: 2px;
padding: 1% 0;	
padding-left: 1%;	
}

.toggle {
	display: none;
}
.Label {		/*タイトル*/
	padding: 1em;
	display: block;
	color: #fff;
	background:#014eab;
    font-weight: 500;
}
.Label::before{		/*タイトル横の矢印*/
	content:"";
	width: 6px;
	height: 6px;
	border-top: 2px solid #fff;
	border-right: 2px solid #fff;
	-webkit-transform: rotate(45deg);
	position: absolute;
	top:calc( 50% - 3px );
	right: 20px;
	transform: rotate(135deg);
    text-decoration: transparent;
}
.Label,
.content {
	-webkit-backface-visibility: hidden;
	backface-visibility: hidden;
	transform: translateZ(0);
	transition: all 0.5s;
}
.content {		/*本文*/
	height: 0;
	margin-bottom:10px;
	padding:0 20px;
	overflow: hidden;
}
.toggle:checked + .Label + .content {	/*開閉時*/
	height: auto;
	padding:20px ;
	transition: all .5s;
}
.toggle:checked + .Label::before {
	transform: rotate(-45deg) !important;
    text-decoration: transparent;
}

/* プライバシーポリシー
-----------------------------------------------------------*/
.privacy{
width: 100%; 
height: auto;       
margin-bottom: 80px;
}

.mtitle_line {
  font-size: 2rem;
  padding-bottom: 20px;
  background: url(../img/bg_mtitle_line.gif) repeat-x left bottom;
  font-weight: 600;
  margin-bottom: 20px;
  letter-spacing: .2rem; 
}
.mtitle_sub {
    padding-left: 0.5em;
    font-weight: 600;
    position: relative;
    border-left: 6px solid #333;
    margin: 15px 0 15px;
    font-size: 1.1em;
    line-height: 1.4;
    text-align: left;
    border-bottom: 1px solid #014eab;
}
.mtitle_sub:before {
    position: absolute;
    left: -6px;
    bottom: 0;
    content: "";
    width: 6px;
    height: 50%;
    background-color: #014eab;
}

.list_disc li {
  padding: 5px 0; }
  .list_disc li:not(:last-of-type) {
    margin-bottom: 5px;
    border-bottom: 1px dashed #ccc; }
  .list_disc li:before {
    content: "●";
    margin-right: 5px;
    color: #332412; }
  .list_disc li a {
    color: #E39900;
    border-bottom: 1px solid #E39900; }
    .list_disc li a:hover {
      opacity: .5; }

/* 背景装飾
-----------------------------------------------------------*/
.back1{
width: 50%;
height: 50%;    
background:url("../img/img06.jpg");  
background-size: cover;
background-repeat: no-repeat;
background-position: center;    
position: absolute;
z-index: -1;  
opacity: 0.3;    
bottom: 0;
left: 0;      
}
.back2{
width: 50%;
height: 50%;    
background: rgba(104,154,255,0.5);
position: absolute; 
top: 0;
right: 0;     
z-index: -1;      
}
.back3{
width: 50%;
height: 50%;    
position: absolute;
background: rgba(104,154,255,0.5);       
top: 0;
right: 0; 
z-index: -1;    
opacity: 0.3;      
}
.back4{
width: 50%;
height: 50%; 
background:url("../img/point03.jpg"); 
background-size: cover;
background-repeat: no-repeat;
background-position: center;       
position: absolute;
bottom: 0;
left: 0;    
z-index: -1; 
opacity: 0.3;      
}
.back5{
width: 50%;
height: 50%;    
background:url("../img/point02.jpg"); 
background-size: cover;
background-repeat: no-repeat;
background-position: center;       
position: absolute;
top: 0;
right: 0; 
z-index: -1;  
opacity: 0.3;    
}
.back6{
width: 50%;
height: 50%;    
background:rgba(5,117,253,0.3);       
position: absolute;
bottom: 0;
left: 0;    
z-index: -1;      
}
.bg-gradient {
    position: relative;
    overflow: hidden;
}
.bg-gradient:before {
    content: "";
    position: absolute;
    bottom: 20px;
    left: 0;
    width: 100%;
    height: 50px;
    background:#0009BF;
    -webkit-transform: skewY(10deg);
    transform: skewY(10deg);
    opacity: 0.2;
}
.bg-gradient1 {
    position: relative;
}
.bg-gradient1:before {
    content: "";
    position: absolute;
    bottom: -53px;
    right: -180px;
    width: 100%;
    height: 30px;
    background: #2EBCE0;
    -webkit-transform: skewY(11deg);
    transform: skewY(11deg);
    opacity: 0.2;
}
.bg-gradient1:after {
    content: "";
    position: absolute;
    bottom: -30px;
    right: -282px;
    width: 100%;
    height: 20px;
    background: #2B50FD;
    -webkit-transform: skewY(26deg);
    transform: skewY(26deg);
    opacity: 0.2;
}

.bg_common {
  padding-top: 80px;
}

.bg_b {
  margin-bottom: 80px;
}

.bg_01 {
  position: relative;
  background-color: #f3f4f9;
}

.bg_02 {
  position: relative;
}

.bg_02::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  z-index: -1;
  width: 65%;
  height: 100%;
  background-color: #f3f4f9;
}

.bg_03 {
  position: relative;
  background-image: url(../img/bg_03.jpg);
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  background-attachment: fixed;
  padding: 100px 0;
}

.bg_04 {
  position: relative;
  background-color: #1b233c;
  color: #fff;
}

.bg_05 {
  position: relative;
  background-image: -webkit-gradient(linear, left top, right top, color-stop(25%, #fff), color-stop(25%, #f4fbfc), color-stop(50%, #f4fbfc), color-stop(50%, #fff), color-stop(75%, #fff), color-stop(75%, #f4fbfc), to(#f4fbfc));
  background-image: linear-gradient(90deg, #fff 25%, #f4fbfc 25%, #f4fbfc 50%, #fff 50%, #fff 75%, #f4fbfc 75%, #f4fbfc);
  background-size: 100px 100px;
}

.bg_06 {
  position: relative;
  background: -webkit-gradient(linear, left top, left bottom, color-stop(50%, #f3f4f9), color-stop(50%, #fff));
  background: linear-gradient(#f3f4f9 50%, #fff 50%);
}