/* common */
*{
  box-sizing: border-box;
  font-size: 16px;
  font-weight: normal;
  padding: 0;
  margin: 0;
}
html{
  scroll-behavior: smooth;
}
img{
  display: block;
  width: 100%;
}
a{
  color: #000;
  text-decoration: none;
}
li{
  list-style-type: none;
  outline: none;
}
button{
  outline: none;
}
.sp{
  display: none;
}
.anchor{
  transform: translate(0, -5rem);
}
section{
  margin-bottom: 6rem;
}
.title_area{
  text-align: center;
  position: relative;
}
.title_area .line{
  position: absolute;
  bottom: 125%;
  left: calc(50% - 1px);
  width: 2px;
}
.title_area small{
  font-weight: bold;
  font-family: DIN Condensed;
}
.title_area h1{
  font-size: 1.7rem;
  font-weight: bold;
  padding-bottom: 2rem;
}
.title_area p{
  font-size: 1.2rem;
  padding-bottom: 5rem;
}

/* スクロールエフェクト */
.fade_in {
  opacity : 0;
  transform : translate(0, 50px);
  transition : all 500ms;
}
.fade_in_left{
  opacity : 0;
  transform : translate(-50px, 0);
  transition : all 500ms;
}
.fade_in_right{
  opacity : 0;
  transform : translate(50px, 0);
  transition : all 500ms;
}
.fade_in.scrollin, 
.fade_in_left.scrollin,
.fade_in_right.scrollin {
	opacity : 1;
	transform : translate(0, 0);
}

/* header */
header{
  height: 5.4rem;
}
#header{
  background: #fff;
  display: flex;
  justify-content: space-between;
  width: 100%;
  position: fixed;
  z-index: 2;
}
.h_logo_area{
  display: flex;
  align-items: center;
  padding: 1.2rem 0 0 1.2rem;
}
.h_logo_area .logo_img{
  width: 3.5rem;
}
.h_logo_area p{
  padding-left: 1rem;
  font-size: .7rem;
}
.h_nav_area{
  display: flex;
}
.h_nav_area .nav1{
  display: flex;
  align-items: center;
  padding: 1.2rem 3rem 0 0;
}
.h_nav_area .nav1 li + li{
  padding-left: 2rem;
}
.h_nav_area .nav1 li a{
  display: block;
  font-size: .8rem;
  font-weight: bold;
}
.h_nav_area .nav2{
  position: relative;
  width: 5.8rem;
}
.h_nav_area .nav2 li{
  position: absolute;
  width: 100%;
  height: 100%;
}
.h_nav_area .nav2 li.contact{
  background: #F8C524;
}
.h_nav_area .nav2 li.recruit{
  background: #0096E5;
  top: 100%;
}
.h_nav_area .nav2 li a{
  color: #fff;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 100%;
  font-size: .7rem;
}
.h_nav_area .nav2 li img{
  width: 30%;
  padding-bottom: .4rem;
}
#header input[type="checkbox"]{
  display: none;
}

/* main */
/* slider */
#slide_area{
  padding: 0 5.8rem;
}

/* ABOUT US */
.about{
  display: flex;
  padding: 0px 11rem;
}
.about .vision{
  padding-top: 7rem;
}
.about .vision h2,
.about .vision p{
  margin-left: auto;
}
.about .img_area{
  padding-bottom: 3rem;
}
.about h2{
  font-weight: bold;
  padding-bottom: 2rem;
  width: 84%;
}
.about p{
  width: 84%;
  font-size: .9rem;
}

/* BUSINESS CONTENTS */
.business{
  padding: 6rem 11rem;
  position: relative;
}
.business::before{
  content: '';
  background: #F5F7F8;
  position: absolute;
  top: 0;
  right: 0;
  width: 50vw;
  height: 100%;
  z-index: -1;
}
.business li{
  display: flex;
  justify-content: space-between;
}
.business li + li{
  margin-top: 4rem;
}
.business .text_area{
  width: 34%;
  padding-left: 20px;
}
.business .text_area h2{
  font-size: 1.2rem;
  font-weight: bold;
  padding-bottom: 1rem;
  position: relative;
}
.business .text_area h2::before{
  content: '・';
  color: #0096E5;
  position: absolute;
  top: 0;
  right: 100%;
  font-size: 1.3rem;
}
.business .text_area p{
  font-size: .9rem;
}
.business .img_area{
  width: 62%;
}

/* WORKS */
#works{
  position: relative;
}
#works .line{
  position: absolute;
  top: -1rem;
  left: calc(50% - 1px);
  width: 2px;
}
#works .point_img{
  padding: 3rem 0 2rem 11rem;
  margin: 8rem 0;
  position: relative;
}
#works .point_img::before{
  content: '';
  background: #F5F7F8;
  position: absolute;
  top: 0;
  left: 0;
  width: 60%;
  height: 100%;
  z-index: -1;
}
#works .point_img .img{
  width: 68%;
}
#works .point_img p{
  color: #4C4D55;
  font-family: 'Shippori Mincho', serif;
  position: absolute;
  bottom: 2rem;
  left: 26%;
  font-size: 4.4rem;
  line-height: 1;
}
.works{
  padding: 6rem 11rem;
}
.works .items{
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
.works .items > li{
  width: calc(25% - 1rem);
  margin-bottom: 3rem;
}
.works .slick-dots{
  display: flex;
  justify-content: space-between;
  width: 30%;
  margin: 0 auto;
}
.works .slick-dots button {
  background: #E8F7FF;
  border: none;
  border-radius: 100%;
  width: 8px;
  height: 8px;
  font-size: 0;
  cursor: pointer;
}
.works .slick-dots .slick-active button {
  background: #0096E5;
}
.works .img_area{
  padding-bottom: 1rem;
}
.works h2{
  padding-bottom: 1rem;
  font-size: .9rem;
  font-weight: bold;
}
.works p{
  font-size: .8rem;
}
.works .more_btn{
  width: 100%;
}
.works .more_btn label{
  background: #0096E5;
  color: #fff;
  display: block;
  width: 25%;
  margin: 0 auto;
  text-align: center;
  padding: 1rem;
  border-radius: 4px;
  cursor: pointer;
}
.works .more_btn ~ li{
  display: none;
}
.works input{
  display: none;
}
.works input:checked ~ li{
  display: block;
}
.works input:checked ~ .more_btn{
  display: none;
}

/* RECURUIT */
#recuruit{
  background: url(../img/recuruit_bg.png);
  background-size: cover;
  margin: 0 5.8rem 6rem;
  padding: 5rem 0;
}
.recuruit{
  margin: 0 5.8rem;
  padding-top: 3rem;
}
.recuruit .tab_area{
  display: flex;
  justify-content: space-between;
}
.recuruit .tab_area li{
  width: calc(100% / 3);
  text-align: center;
  cursor: pointer;
  position: relative;
}
.recuruit .tab_area li::before,
.recuruit .tab_area li:last-child::after{
  content: '';
  background: #000;
  position: absolute;
  top: calc(50% - 7px);
  right: 0;
  width: 1px;
  height: 14px;
}
.recuruit .tab_area li::before{
  left: 0;
}
.recuruit .tab_area li:last-child::after{
  right: 0;
}
.recuruit .tab_area li.active{
  background-color: #fff;
}
.recuruit .tab_area li.active + li::before,
.recuruit .tab_area li.active::before,
.recuruit .tab_area li.active:last-child::after{
  display: none;
}
.recuruit .tab_area li p{
  padding: 1rem 0;
  position: relative;
  overflow: hidden;
}
.recuruit .tab_area li.active p::before{
  content: '';
  background: #0096E5;
  position: absolute;
  top: -1rem;
  left: -1rem;
  width: 2rem;
  height: 2rem;
  transform: rotate(45deg);
}
.recuruit .content_area li{
  display: none;
  background-color: #fff;
  padding: 3.8rem 5.8rem;
}
.recuruit .content_area li.show{
  display: block;
}
.recuruit dl{
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
.recuruit dt{
  width: 17%;
  padding: 1.3rem 0;
  font-size: .8rem;
  font-weight: bold;
  border-bottom: 1px solid #EEF0F1;
  position: relative;
}
.recuruit dt::before{
  content: '';
  background: #EEF0F1;
  position: absolute;
  top: calc(50% - 7px);
  right: 0;
  width: 1px;
  height: 14px;
}
.recuruit dd{
  width: 83%;
  padding: 1.3rem 0 1.3rem 3rem;
  font-size: .8rem;
  border-bottom: 1px solid #EEF0F1;
}
.recuruit .btn{
  background: #0096E5;
  color: #fff;
  display: block;
  margin: 4.6rem auto 0;
  padding: .9rem 0;
  width: 19rem;
  font-size: .9rem;
  text-align: center;
  border-radius: .3rem;
}

/* INTERVIEW */
.interview{
  position: relative;
  margin-top: 4rem;
  padding: 2rem 0;
}
.interview::before{
  background: url(../img/interview_bg1.png);
  top: 0;
  left: 0;
  width: 60%;
  height: 22rem;
}
.interview::after{
  background: url(../img/interview_bg2.png);
  bottom: 0;
  right: 0;
  display: none;
}
.interview::before,
.interview::after{
  content: '';
  background-size: cover;
  position: absolute;
  /* width: 44%;
  height: 39rem; */
  z-index: -1;
}
.interview .box{
  background: #fff;
  width: 66%;
  position: relative;
}
.interview .box1{
  margin-left: 12.4%;
}
.interview .box2{
  margin: 0 12.4% 0 auto;
}
.interview .img_human{
  position: absolute;
  bottom: 0;
  right: -14rem;
  width: 18rem;
  z-index: -1;
}
.interview .text_area{
  background: #fff;
  overflow: hidden;
  position: relative;
  padding: 2.3rem 3.1rem;
}
.interview .text_area::before{
  content: '';
  background: #0096E5;
  position: absolute;
  top: -1rem;
  left: -1rem;
  width: 2rem;
  height: 2rem;
  transform: rotate(45deg);
}
.interview h3{
  font-size: 1.2rem;
  font-weight: bold;
  padding-bottom: 1.1rem;
}
.interview h4{
  font-size: .8rem;
  font-weight: bold;
  padding-bottom: 1rem;
}
.interview h4 span{
  background: #4C4D55;
  color: #fff;
  font-size: .7rem;
  margin-right: .8rem;
  padding: .4rem .7rem;
}

/* COMPANY */
#company .title_area{
  background: url(../img/company_bg.png);
  background-size: cover;
  color: #fff;
  margin: 0 11rem;
  padding: 9.1rem;
  z-index: -1;
}
#company .title_area h1{
  padding-bottom: 0;
}
.company{
  background: #fff;
  width: 65%;
  margin: -3rem auto 0;
  padding: 3rem 4rem;
}
.company .profile{
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  padding-bottom: 3rem;
}
.company .profile li{
  display: flex;
  width: calc(50% - 2%);
  padding: 1.2rem 0;
  border-bottom: 1px solid #EEF0F1;
}
.company .profile dt{
  font-size: .8rem;
  font-weight: bold;
  width: 28%;
}
.company .profile dd{
  font-size: .8rem;
  flex: 1;
}
.company .map_slide{
  display: flex;
  justify-content: space-between;
}
.company .map_slide > *{
  width: 48%;
}
.company .company_map iframe{
  width: 100%;
  height: 100%;
}
.company .slick-dots {
  display: flex;
  justify-content: space-between;
  width: 30%;
  margin: 0 auto;
  position: absolute;
  left: 35%;
}
.company .slick-dots button {
  background: #E8F7FF;
  border: none;
  border-radius: 100%;
  width: 8px;
  height: 8px;
  font-size: 0;
  cursor: pointer;
}
.company .slick-dots .slick-active button {
  background: #0096E5;
}

/* footer */
#footer{
  display: flex;
  position: relative;
  padding-top: 12rem;
}
#footer .contact_area{
  background: #F5F7F8;
  position: absolute;
  top: 0;
  left: 0;
  padding: 7.6rem 24rem 12rem 7vw;
}
#footer .contact_area .title_area{
  text-align: left;
  padding-bottom: 3rem;
}
#footer .f_contact {
  padding-left: 1rem;
}
#footer .contact_area h2{
  font-size: 1.2rem;
  font-weight: bold;
  padding-bottom: 1.2rem;
  position: relative;
}
#footer .contact_area a{
  color: #4C4D55;
  font-size: 3.4vw;
  font-weight: bold;
  font-family: DIN Condensed;
}
#footer .contact_area p{
  font-size: .7rem;
  margin-bottom: 2.5rem;
}
#footer .contact_area p span{
  font-size: .7rem;
  font-weight: bold;
}
#footer .contact_area h2::before{
  content: '・';
  color: #0096E5;
  position: absolute;
  top: 0;
  right: 100%;
  font-size: 1.3rem;
}
#footer .bottom_box{
  width: 45%;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}
#footer .bottom_box .logo_area{
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
}
#footer .bottom_box .logo_area .img_area{
  width: 10%;
  padding-bottom: 1.8rem;
  z-index: 100;
}
#footer .bottom_box .logo_area p{
  font-size: .7rem;
  padding-bottom: 5.4rem;
}
#footer .bottom_box .copy{
  background: #C5D7E0;
  font-size: .7rem;
  font-family: DIN Condensed;
  text-align: center;
  padding: 1rem 0;
}
#footer .form_box{
  background: #EEF0F1;
  flex: 1;
  padding: 4rem 6vw 5rem 3rem;
  z-index: 1;
}
#footer .form_title{
  font-size: 1.2rem;
  font-weight: bold;
  padding-bottom: 3.4rem;
  position: relative;
}
#footer .form_title::before{
  content: '・';
  color: #0096E5;
  position: absolute;
  top: 0;
  right: 100%;
  font-size: 1.3rem;
}
#footer dl{
  display: flex;
  flex-wrap: wrap;
}
#footer dt{
  width: 26%;
  margin: 1.2rem 0;
  padding: 0.7rem 0;
}
#footer dd{
  width: 74%;
  margin: 1.2rem 0;
}
#footer label{
  font-size: .9rem;
  font-weight: bold;
}
#footer .agree{
  padding-top: 1.4rem;
}
#footer .text_area{
  height: 10rem;
}
#footer input[type="text"],
#footer select,
#footer textarea{
  display: block;
  border: none;
  width: 100%;
  height: 100%;
  font-size: .8rem;
  padding-left: 1rem;
}
#footer input[type="text"]::placeholder,
#footer select::placeholder,
#footer textarea::placeholder{
  color: #D0D3D5;
}
#footer input[type="submit"]{
  background: #0096E5;
  color: #fff;
  border: none;
  font-size: .8rem;
  width: 65%;
  padding: 1rem 0;
  cursor: pointer;
  border-radius: .3rem;
}

/* スマホサイズ */
@media screen and (max-width: 479px){
  /* common */
  .pc{
    display: none;
  }
  .sp{
    display: block;
  }
  section{
    margin-bottom: 8rem;
  }
  .title_area .line{
    bottom: 110%;
  }
  .title_area h1{
    padding-bottom: 1rem;
  }
  .title_area p{
    font-size: 1rem;
    padding-bottom: 2rem;
  }

  /* header */
  header{
    height: 3.8rem;
  }
  #header{
    top: 0;
    left: 0;
    height: 3.8rem;
  }
  .h_logo_area{
    padding: 0.5rem;
    z-index: 1;
    background: #fff;
  }
  .h_logo_area .logo_img{
    width: 3rem;
  }
  .h_nav_area{
    background: #fff;
    position: absolute;
    top: -1000px;
    transition: .5s;
    flex-direction: column;
    width: 100%;
    padding-top: 3.8rem;
  }
  .h_nav_area .nav1{
    padding: 0 10px;
    flex-direction: column;
  }
  .h_nav_area .nav1 li{
    width: 100%;
    border-bottom: 1px solid #EEF0F1;
  }
  .h_nav_area .nav1 li + li{
    padding-left: 0;
  }
  .h_nav_area .nav1 li a{
    padding: 1rem;
  }
  .h_nav_area .nav2{
    background: greenyellow;
    width: 100%;
  }
  .h_nav_area .nav2 li{
    position: initial;
  }
  .h_nav_area .nav2 li a{
    flex-direction: row;
    justify-content: flex-start;
    padding-left: 1rem;
    font-size: 1rem;
    height: 3.8rem;
  }
  .h_nav_area .nav2 li img{
    width: 8%;
    margin-right: .4rem;
    padding-bottom: 0;
  }
  .h_menu_btn{
    background: #efefef;
    width: 20%;
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
  }
  .h_menu_btn span{
    background: #000;
    width: 50%;
    height: 1px;
    transition: .5s;
  }
  .h_menu_btn span::before,
  .h_menu_btn span::after{
    content: '';
    background: #000;
    position: absolute;
    width: 50%;
    height: 1px;
    transition: .5s;
  }
  .h_menu_btn span::before{
    top: 33%;
  }
  .h_menu_btn span::after{
    bottom: 33%;
  }
  #header input[type="checkbox"]:checked ~ .h_nav_area{
    top: 0;
    transition: .5s;
  }
  #header input[type="checkbox"]:checked ~ .h_menu_btn span{
    width: 0;
    transition: .5s;
  }
  #header input[type="checkbox"]:checked ~ .h_menu_btn span::before,
  #header input[type="checkbox"]:checked ~ .h_menu_btn span::after{
    left: calc(50% - 25%);
    transition: .5s;
  }
  #header input[type="checkbox"]:checked ~ .h_menu_btn span::before{
    top: 49%;
    transform: rotate(315deg);
  }
  #header input[type="checkbox"]:checked ~ .h_menu_btn span::after{
    bottom: 48%;
    transform: rotate(-315deg);
  }

  /* main */
  /* slider */
  #slide_area{
    padding: 0;
    margin-bottom: 3rem;
  }

  /* ABOUT US */
  #about{
    padding: 0 10px;
  }
  .about{
    padding: 0;
    flex-direction: column;
  }
  .about .vision{
    padding-top: 4rem;
  }
  .about .img_area{
    padding-bottom: 1.2rem;
  }
  .about h2{
    width: 100%;
    padding-bottom: .4rem;
  }
  .about p{
    width: 100%;
  }

  /* BUSINESS CONTENTS */
  #business{
    margin-bottom: 5rem;
  }
  .business{
    padding: 3rem 10px;
  }
  .business li{
    flex-direction: column-reverse;
  }
  .business li + li{
    margin-top: 2rem;
  }
  .business .text_area{
    width: 100%;
    padding-left: 0;
  }
  .business .text_area h2{
    padding-bottom: .4rem;
  }
  .business .text_area h2::before{
    position: initial;
  }
  .business .img_area{
    width: 100%;
    padding-bottom: 1.2rem;
  }

  /* WORKS */
  #works{
    margin-bottom: 0;
  }
  #works .line{
    top: -3rem;
  }
  #works .point_img{
    padding: 0;
    margin: 4rem 0;
  }
  #works .point_img::before{
    width: 90%;
    top: -20%;
  }
  #works .point_img .img{
    width: 90%;
    margin-left: auto;
  }
  #works .point_img p{
    bottom: 0;
    right: 0;
    left: auto;
    font-size: 1.6rem;
  }
  .works{
    padding: 3rem 10px;
  }
  .works .items > li{
    width: 49%;
  }
  .works .slick-dots{
    width: 50%;
  }
  .works .more_btn label{
    width: 60%;
  }

  /* RECURUIT */
  #recuruit{
    margin: 0 0 6rem;
    padding: 5rem 10px;
  }
  .recuruit{
    margin: 0;
    padding-top: 0;
  }
  .recuruit .tab_area li p{
    font-size: .8rem;
  }
  .recuruit .content_area li{
    padding: 0 10px 1rem;
  }
  .recuruit dt{
    width: 100%;
    border-bottom: 0;
    padding: 1rem 0 .3rem;
  }
  .recuruit dt::before{
    display: none;
  }
  .recuruit dd{
    width: 100%;
    padding: 0rem 0 .5rem;
  }
  .recuruit .btn{
    margin-top: 1rem;
  }

  /* INTERVIEW */
  .interview{
    padding: 2.4rem 0;
  }
  .interview::before,
  .interview::after{
    width: 90%;
    height: 20rem;
  }
  .interview .box{
    margin: 0 auto;
    width: 95%;
  }
  .interview .box1{
    margin-bottom: 1rem;
  }
  .interview .img_human{
    right: 3%;
    left: auto;
    bottom: 14%;
    width: 12rem;
    z-index: 0;
  }
  .interview .text_area{
    padding: 1.4rem 20px;
  }
  .interview p{
    font-size: .8rem;
  }

  /* COMPANY */
  #company {
    margin-bottom: 0;
  }
  #company .title_area{
    margin: 0 10px;
    padding: 4rem 0;
  }
  .company{
    width: 90%;
    padding: 1rem;
  }
  .company .profile li{
    width: 100%;
    padding: .8rem;
  }
  .company .map_slide{
    flex-direction: column;
  }
  .company .map_slide > *{
    width: 100%;
    margin-bottom: 2rem;
  }
  .company .company_map iframe{
    height: 15rem;
  }

  /* スクロールエフェクト */
  .fade_in_left,
  .fade_in_right{
  transform : translate(0, 50px);
  }

  /* footer */
  #footer{
    flex-direction: column;
    padding-top: 0;
  }
  #footer .contact_area{
    position: initial;
    padding: 1rem 10px;
  }
  #footer .contact_area .title_area{
    text-align: center;
    padding-bottom: 0;
  }
  #footer .f_contact {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding-left: 0;
  }
  #footer .contact_area h2{
    padding-bottom: 1rem;
  }
  #footer .bottom_box{
    width: 100%;
    order: 1;
  }
  #footer .bottom_box .logo_area{
    padding: 1rem 0;
  }
  #footer .bottom_box .logo_area .img_area{
    width: 16%;
    padding-bottom: 1rem;
  }
  #footer .bottom_box .logo_area p{
    padding-bottom: 0;
  }
  #footer .form_box{
    padding: 1rem 10px;
    display: flex;
    flex-direction: column;
    align-items: center;
  }
  #footer .form_title{
    padding-bottom: 1rem;
  }
  #footer dt{
    width: 100%;
    margin: 1.4rem 0 .4rem;
    padding: 0;
  }
  #footer dd{
    width: 100%;
    margin: 0 0 1rem;
    text-align: center;
    height: 3rem;
  }
  #footer .agree{
    padding-top: 0;
  }
  #footer input[type="text"],
  #footer select,
  #footer textarea{
    padding: .7rem 0 .7rem 1rem;
  }
}

/* ワイド画面サイズ */
@media screen and (min-width: 1441px){
  section{
    width: 1440px;
    margin: 0 auto 6rem !important;
  }
  #footer{
    width: 1440px;
    margin: 0 auto;
  }
  #footer .contact_area a{
    font-size: 3.4rem;
  }
}

.formError {
  color: red;
}
.formErrorContent {
  font-size: 12px;
}
#thanks {
  display: none;
}