a,h1,h2,h3{
   font-family: 'Noto Sans JP', sans-serif;
   color:#111111;
   text-decoration: none;
}

a:hover{
   opacity: 0.2;
   transition: 0.5s;
}

p{
   font-family: 'Noto Sans JP', sans-serif;
   color:#111111;
}

/* メインビジュアル */
.top_wrap{
   background-color: #EDF1F2;
}

/* ナビゲーション */

.nav_menu{
   padding-top: 15px;
   text-align: center;
}
.nav_menu li{
   display: inline-block; 
   margin: 0 10px;
}

.nav_menu li a{
font-weight: 600;
font-size: 0.8rem;
}



/* メインロゴ */

.main_logo{
   width: 100%;
   text-align: center;
   padding: 10vw 0 10vw 0;
}

.main_logo img{
   text-align: center;
   margin: auto;
   width: 4vw;
}

.main_logo_title{
   width: 100%;
   text-align: center;
   margin: -6vw auto 0 auto;
}

.main_logo_title img{
   width: 13vw;
}



@media screen and (max-width: 780px) {

   .main_logo{
      width: 100%;
      text-align: center;
      padding: 40vw 0 40vw 0;
   }   

   .main_logo img{
      text-align: center;
      margin: auto;
      width: 25vw;
      }
      .main_logo_title{
         width: 100%;
         text-align: center;
         margin: -10vw auto 0 auto;
      }
      
      .main_logo_title img{
         width: 80vw;
      }

}


/* イントロ */

.intro_flex{
   margin: auto;
   display: flex;
   flex-direction: row;
   justify-content: center;
   align-items: center;
   flex-wrap: wrap;
   margin-top: 3vw;
   /*background-image:url("/images/top_txt_bg.svg");*/
   background-size:auto 100%;
}

.intro_left{
  margin:0 40px 0 0 ;
}

.intro_title_en{
font-weight: 700;
font-size: 1rem;
}

.intro_title_en_sub{
   font-weight: 700;
   font-size: 0.8rem;
   }

.intro_title{
   font-size: 2.1rem;
   font-weight: 800;
   letter-spacing: 5px;
   line-height: 50px;
}

.intro_left hr{
   width: 10vw;
}
.intro_right{
   margin:0 0 40px 0 ;
}

.intro_txt{
   font-weight: 600;
   font-size: 1rem;
   width: 450px;
   line-height: 50px;
   }

.intro_link img{
   width: 100px;
}


@media screen and (max-width: 780px) {

   .intro_flex{
      margin: auto;
      padding: 0 2.5%;
      display: block;
      margin-top: 20vw;
      /*background-image:url("/images/top_txt_bg.svg");*/
      background-size:auto 100%;
   }

   .intro_left{
      margin:auto;
    }
    
   .intro_title{
      font-size: 1.9rem;
      font-weight: 800;
      letter-spacing: 5px;
      line-height: 50px;
      margin: 5vw 0;
   }

   .intro_txt{
      font-weight: 600;
      font-size: 1rem;
      line-height: 50px;
      width: 100%;
      margin: 10vw 0;
      }
      .intro_link{
         text-align: right;
      }
      .intro_link img{
         width: 35vw;
      }
      
}




/* ソリューション */
.solution_wrap{
   margin: 4vw auto 0 auto;
   text-align: center;
}

.solution_txt{
   font-weight: 400;
   font-size: 0.8rem;
   background-color: #3C6E7B;
   padding: 6vw 0;
   color: #fff;
   line-height: 20px;
}
.solution_title_1{
   font-size: 5rem;
   font-weight: 800;
   letter-spacing: 5px;
   line-height: 50px;
   margin-bottom: -4vw;
   position: relative;
   z-index: 1;
}
.solution_title{
   font-size: 5rem;
   font-weight: 800;
   letter-spacing: 5px;
   line-height: 50px;
   margin-bottom: -1vw;
   position: relative;
   z-index: 1;
}

.solution_flex{
   display: flex;
   flex-wrap: wrap;
   flex-direction: row;
   justify-content: center;
   align-items: stretch;
}

.solution_flex_box{
   background-color: #fff;
   padding: 5% 2% 5% 2%;
   margin: -3vw 30px 0px 30px;
}

.s_flex_title{
   font-weight: 600;
   font-size: 1.5rem;
}

.s_flex_title_en{
   font-weight: 600;
   font-size: 0.8rem;
}


.s_flex_img{
   margin: 20px 0;
}
.s_flex_img img{
   width: 100px;
}

.s_flex_txt{
   margin: auto;
   text-align: left;
   max-width: 340px;
   font-weight: 600;
   font-size: 0.8rem;
   line-height: 20px;
}

.s_flex_btn{
   display: inline-block;
   font-size: 0.7rem;
   border: 1px solid #3C6E7B;
   border-radius: 30px;
   padding:10px 30px;
   color: #3C6E7B;
   margin-top: 30px;
}

.office{
   width: 100%;
   position: relative;
   z-index: -1;
}

.access_wrap{
   width: 100%;
   margin: auto;
   text-align: center;
}

.access_wrap img{
   width:100%;
   max-height: 350px;

}

.map iframe{
width: 100%;
max-height: 430px;
}



@media screen and (max-width: 780px) {

  
   .solution_title{
      font-size: 3rem;
      font-weight: 800;
      letter-spacing: 5px;
      line-height: 50px;
      margin-bottom: -6vw;
      position: relative;
      z-index: 1;
   }

   .solution_txt{
      font-weight: 400;
      font-size: 0.8rem;
      background-color: #3C6E7B;
      padding: 10vw 2.5%;
      color: #fff;
      line-height: 20px;
   }

   .solution_flex_box{
      background-color: #fff;
      padding: 5% 2% 5% 2%;
      margin: -5vw 30px 20% 30px;
      border: 1px solid #bebebe;
   }

   .s_flex_txt{
      margin: auto;
      text-align: left;
      max-width: 340px;
      font-weight: 600;
      font-size: 0.8rem;
      line-height: 20px;
      padding: 0 2.5%;
   }
   .office{
      width: 100%;
      position: relative;
      z-index: -1;
   }
   
   .access_wrap{
      width: 100%;
      margin: auto;
      text-align: center;
   }
   
   .access_wrap img{
      width:100%;
      height: 70vw;
      object-fit: cover;
   }
   .solution_title_1{
      font-size: 3rem;
      font-weight: 800;
      letter-spacing: 5px;
      line-height: 50px;
      margin-bottom: -4vw;
      position: relative;
      z-index: 1;
   }
}

/* footer */


.bottom_btn_flex{
   display: flex;
   flex-direction: row;
   flex-wrap: wrap;
   justify-content: center;
   align-items: center;
}

.bottom_btn_flex_box{
   width: 50%;
   height: 8vw;
   border: 1px solid #111111;
   display: flex;
   align-items: center;
   justify-content: center;
   text-align: center;
}

.bottom_btn_txt{
   font-size: 1.3rem;
   font-weight: bold;
}

.bottom_btn_txt span{
   font-size: 0.8rem;
   font-weight: bold;
}
.footer_wrap{
   background-color:#EDF1F2 ;
}

.footer_flex{
   margin: auto;
   display: flex;
   justify-content: space-around;
   align-items: center;
   max-width: 980px;
   padding: 50px;
}

.footer_flex li{
   font-size: 0.8rem;
   font-weight: bold;
   margin: 15px 0;
}


@media screen and (max-width: 780px) {

   .bottom_btn_flex_box {
      height: 28vw;
      border: 1px solid #111111;
      display: flex;
      align-items: center;
      justify-content: center;
      text-align: center;
      width: 100%;

  }
  .bottom_btn_flex{
      display: block;
   }
   
   .footer_box{
      margin-top: 50px;
   }
   .footer_links{
      display: none;
    }
   .footer_flex {
      margin: auto;
      justify-content: space-around;
      align-items: center;
      max-width: 980px;
      padding: 50px;
      text-align: center;
      display: block;
   }

   .footer_flex li {
      font-size: 1.5rem;
      font-weight: bold;
      margin: 25px 0;
  }
}

.copy_right{
   text-align: center;
   margin: auto;
}