@charset "UTF-8";

/*-------------------------------
COMMON
-------------------------------*/
html{
  font-size: 100%;
  color: #232323;
}

body{
  font-family: Helvetica,"ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", HiraKakuProN-W3, "Meiryo UI", "メイリオ", Meiryo, "游ゴシック", "Yu Gothic", "游ゴシック体", "YuGothic", sans-serif;
  line-height: normal;
  width: 100%;
  height: 100%;
  letter-spacing: 0.1rem;
}

a{
  text-decoration: none;
  color: inherit;
}

img{
  max-width: 100%;
}

h1{
  font-size: 35px;
}

h2{
  font-size: 25px;
  letter-spacing: 0.15rem;
  padding-bottom: 60px;
}

h3{
  font-size: 16px;
  letter-spacing: 0.1rem;
}
.text-r{
  text-align:right;
}

.bold {
  font-family: Helvetica-Bold, "Arial bold", "ヒラギノ角ゴ ProN W6", sans-serif;
  font-weight: 800;
}

@media screen and (min-width: 768px) {
  .mobile {
    display: none;
  }
}

@media screen and (max-width: 767px) {
  .desktop {
    display: none;
  }
  h2{
    font-size: 20px;
    padding-bottom: 30px;
  }
}

/* HEADER
----------------------*/
.header{
  z-index: 100;
  position: fixed;
  width: 100%;
  /*height: 100px;*/
  background-color:rgba(255,255,255,0.85);
}

.headerContent{
  display: flex;
  justify-content: space-between;
  text-align: center;
}

.logo{
  width: 150px;
  height: auto;
  margin-top: 10px;
  margin-bottom: 10px;
  margin-left: 65px;
}

.navigation{
  display: flex;
  font-size: 1rem;
  list-style: none;
  text-transform: uppercase;
  margin-top: 26px;
  margin-right: 110px;
}

.navigation li{
  margin-left: 60px;
  font-size: 16px;
  margin-top: auto;
  margin-bottom: auto;
  letter-spacing: 0.15rem;
}

.navigation li a:hover{
  color: #54C2F0;
}

.hamburger-wrapper {
  margin:auto 0;
}

.hamburger {
  display: inline-block;
  position: relative;
  z-index: 100;
  -webkit-transition-property: opacity, -webkit-filter;
  transition-property: opacity, -webkit-filter;
  transition-property: opacity, filter;
  transition-property: opacity, filter, -webkit-filter;
  -webkit-transition-duration: .15s;
  transition-duration: .15s;
  -webkit-transition-timing-function: linear;
  transition-timing-function: linear;
  background-color: transparent;
  border: 0;
  margin: 0;
  overflow: visible;
  padding: 30px 20px;
  cursor: pointer;
}

.hamburger:focus {
  outline: none
}

.hamburger-box {
  position: relative;
  width: 40px;
  width: 2rem;
  height: .56rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
  -webkit-transition: .4s;
  transition: .4s
}

.hamburger-box .line {
  display: block;
  background-color: #54C2F0;
  width: 100%;
  height: 2px;
  -webkit-transition: .35s ease-out;
  transition: .35s ease-out;
  position: relative;
  -webkit-transform-origin: center;
  transform-origin: center;
  top: 0
}

.isActive .line1 {
  width: 100%;
  -webkit-transform: translate3d(0, -50%, 0) rotate(45deg);
  transform: translate3d(0, -50%, 0) rotate(45deg);
  top: 50%
}

.isActive .line2 {
  width: 100%;
  -webkit-transform: translate3d(0, 50%, 0) rotate(-45deg);
  transform: translate3d(0, 50%, 0) rotate(-45deg);
  top: -50%
}

.white .hamburger-box .line {
  background-color: #54C2F0;
}


@media (max-width:990px) {
  .navigation {
    display:none;
  }
  .hamburger-wrapper {
    opacity: 1;
  }
  .logo{  
  margin-left: 20px;
  }
}

@media (min-width:991px) {
  .hamburger-wrapper {
    display:none;
  }
}

.full-screen-menu {
  position: fixed;
  display: flex;
  top: 0;
  left: 0;
  width: 100%;
  background: #FFF;
  z-index: -1;
  padding: 1rem;
  flex-direction: column;
}

.menulist {
  display: flex;
  flex-grow: 1;
  justify-content: center;
  align-items: center;
}

.full-screen-menu .links{
  width: 100%;
  box-sizing: border-box;
}
.full-screen-menu .links .nav-link {
  margin-bottom: 8%;
  padding-bottom: 0;
  transition: color .4s;
  color: #54C2F0;
  text-align: center;
}

.full-screen-menu .links .nav-link span {
  position: relative;
  font-size: 20px;
}

.line-link {
  position: relative
}

.nav-link {
  display: block;
  padding: 7.5px 15px;
  padding: .5rem 1rem
}
.nav-link {
  margin: 0 16px;
  margin: 0 2rem;
}

#openTransform {
  -webkit-transition: all 0.5s;
  -moz-transition: all 0.5s;
  -ms-transition: all 0.5s;
  -o-transition: all 0.5s;
  transition: all 0.5s;
  transition-duration: .15s;
  opacity: 1;
}

/* FOOTER
----------------------*/
.Footer{
  padding: 25px 110px 25px 65px;
  display: grid;
  grid-template-columns: 1fr 4fr;
  background-color: #54C2F0;
  color:#FFF;
}

.footBox{
  margin: auto 0;
  text-align: right;
}
.footerLink{
  font-size: 12px;  
}

.copyright{
  padding-top:5px;
  font-size: 10px;
}

@media screen and (max-width: 767px) {
  .Footer{
    padding: 20px;
    grid-template-columns: 1fr 5fr;
  }
  .footBox{
    text-align: left;
  }
  .footerLink{
    font-size: 10px;  
  }
  .copyright{
    font-size: 9px;
  }
}

/* OTHER
----------------------*/
.page_top {
  display: none;
  width: 50px;
  height: 50px;
  border-radius: 50%;
  position: fixed;
  right: 40px;
  bottom: 30px;
  background-color: #F9D3D2;
  opacity: 0.9;
  z-index: 10;
}

.page_top a {
  position: relative;
  display: block;
  width: 50px;
  height: 50px;
  border-radius: 50%;
}

.page_top a::after {
  content: '';
  width: 0;
  height: 0;
  border-left: 10px solid transparent;
  border-right: 10px solid transparent;
  border-bottom: 10px solid;
  position: absolute;
  color: #FFF;
  top: 0;
  bottom: 0;
  right: 0;
  left: 0;
  margin: auto;
}

@keyframes fadeIn {
  0% {
    opacity: 0
  }
  100% {
    opacity: 0.7
  }
}

.fade-animation {
  opacity: 0;
  transition: opacity 1.5s, transform 0.8s;
}

.fadein {
  opacity: 1;
}

@media screen and (max-width: 767px) {
  .page_top {
    width: 35px;
    height: 35px;
    right: 20px;
    bottom: 40px;
  }

  .page_top a {
    width: 35px;
    height: 35px;
  }

  .page_top a::after {
    border-left: 7px solid transparent;
    border-right: 7px solid transparent;
    border-bottom: 7px solid;
  }
}

/*ボタン処理*/
.btn{
  background: #54C2F0;
  color: #fff;
  border: none;
  position: relative;
  font-size: 15px;
  letter-spacing: 0.1rem;
  height: 45px;
  padding: 0 15px;
  cursor: pointer;
  transition: 700ms ease all;
  outline: none;
}
.btn:hover{
  background: none;
  color: #54C2F0;
}
.btn:before,.btn:after{
  content:'';
  position:absolute;
  top:0;
  right:0;
  height:2px;
  width:0;
  background: #54C2F0;
  transition:400ms ease all;
}
.btn:after{
  right:inherit;
  top:inherit;
  left:0;
  bottom:0;
}
.btn:hover:before,.btn:hover:after{
  width:100%;
  transition:800ms ease all;
}

/*-------------------------------
TOP PAGE
-------------------------------*/
.main{
  display: block;  
  height: 100vh;
  width: 100vw;
}

#particles-js {
  position: relative;
  height: 100vh;
  width: 100vw;
  background-color: #54C2F0;
  background-size: cover;
}

.title {
    position: absolute;
    left: 10%;
    top: 60%;
  color: #fff;
}
.title h1{
    font-size: 75px;
  letter-spacing: 0.5rem;
}
.title p{
    font-size: 18px;
  padding-top: 15px;
  letter-spacing: 0.2rem;
}

@media (max-width:990px) {
  .title h1{
    font-size: 40px;
    letter-spacing: 0.3rem;
  }
  .title p{
    font-size: 14px;
    letter-spacing: 0.2rem;
  }
}

/* WHAT_NEW
----------------------*/
.What_new{
  padding: 8% 10%;
}

.What_new h2{  
  padding-bottom: 0px;
}
.What_new_text{
  padding-top: 20px;
}

.What_new_text a:hover{
  color: #54C2F0;
}
.What_new p{
  font-size: 16px;
}

@media screen and (max-width: 767px) {
  .What_new p{
    font-size: 14px;
  }
}

/* ABOUT
----------------------*/
.About{
  background-color: #fef8f9;
  padding: 8% 10%;
}

.about_image{
}

.about_text p{
  font-size:14px;
}
.About .btn{
  margin-top: 5%;
}

@media screen and (min-width: 768px) {
  .About{
    display: flex;
  }
  .about_image{
    width:50%;
    height: 100%;
  }
  .about_text{
    width: 50%;
    margin-right: 16%;
    padding-left: 8%;
    margin: auto 0;
  }
  .About .btn{
    margin-top: 20%;
  }
  .about_text p{
    font-size:16px;
  }
}
/* BUSINESS
----------------------*/
.Business{  
  padding: 8% 10%;
}

.Business h2{  
  padding-bottom: 20px;
}
.Business p{
  padding-bottom: 100px;
  font-size: 16px;
}

.step_list li{
  list-style: none;
}
.step_list h3{
  margin-top: 55px;
}

.step_list p{
  margin-top: 10px;
  font-size: 14px;
  padding-bottom: 0;
}

.step_list img{
  width: 40%;
}
@media screen and (max-width: 767px) {
  .Business p {
    padding-bottom: 30px;
    font-size: 14px;
  }
  .step_list img{
    width: 20%;
  }
  .step_list h3{
    margin-top: 15px;
  }
  .step_list p {
    padding-bottom: 10px;
  }
}
@media screen and (min-width: 768px) {
  .step_list{
    display: grid;
    gap: 40px;
    grid-template-columns: 1fr 1fr 1fr 1fr 1fr;
  }
}

/* WORK
----------------------*/
.Works{
  background-color: #fef8f9;
  padding: 8% 10%;
}

.work_list{
  text-align: center;
  margin: auto;
}
.work_list li{
  margin: auto;
  list-style: none;
}

.work_list p{
  font-size: 12px;
}

.Works .btn{
  margin-top: 30px;
}

@media screen and (min-width: 768px) {
  .work_list{
    display: flex;
  }
  .Works .btn{
    /*margin-right: 6%;*/
    margin-top: 60px;
  }
}
/* CONTACT
----------------------*/
.Contact{
  position: relative;
  overflow: hidden;
}
.Contact img{
  display: block;
  margin: 0 auto;
  padding: 0;
  width: 100%;
  transition: 0.5s;
}
.Contact h2{
  position: absolute;
  color: #FFF;
  top: 40%;
  left: 10%;
}
.Contact img:hover{
transform: scale(1.1, 1.1);
}
@media screen and (min-width: 768px) {
  .Contact h2{
    top: 50%;
  }
}

/*-------------------------------
ABOUT PAGE
-------------------------------*/
.about_page{
  display: block;
  width: 100vw;
  background-color: #fef8f9;
}
.corporate_text{
  padding: 150px 10% 100px 10%;
}
.corporate_text h1{
  font-size: 30px;
  letter-spacing: .2em;
}
.corporate_text h2{
  font-size: 15px;
  padding-top: 5px;
}

.corporate_text a{
  color: #54C2F0;
}

.sub_text{
  display: block;
  font-size: 11px;
  margin: 10px 0 5px 0;
}

.map{
  width: 400px;
  height: 280px;
}

.about_page th, .about_page td {
    padding: 20px 0;
  font-size: 13px;
    line-height: 1.75;
    vertical-align: top;
}
.about_page th {
    position: relative;
    width: 18vw;
    padding-right: 4.5vw;
  text-align: left;
}

.about_page th:before {
    content: '';
    position: absolute;
    top: 23px;
    bottom: 24px;
    right: 4.5vw;
    border-left: 1px solid #54C2F0;
}

@media screen and (max-width: 767px) {
  .corporate_text{
    padding: 100px 6% 50px 8%;
  }
  .corporate_text h1{
    font-size: 25px;
  }
  .corporate_text h2{
    font-size: 14px;
    padding-top: 5px;
    padding-bottom: 30px;
  }
  .map{
    width: 240px;
    height: 168px;
  }
  .about_page th, .about_page td {
    font-size: 11px;
    line-height: 1.55;
    vertical-align: top;
  }
  .about_page th {
    padding-right: 3vw;
  }
  .about_page th:before {
    right: 3vw;
  }
}

/*-------------------------------
WORKS PAGE
-------------------------------*/
.works-page {
  padding: 150px 10% 100px 10%;
  /*background-color: #F4F4F4;*/
  background-color: #fef8f9;
}

.works-page h1 {
  font-size: 30px;
  letter-spacing: .2em;
}

.works-page h2 {
  font-size: 14px;
  padding-top: 5px;
}

.works-page section {
  margin: 0 0 10% 0;
  padding: 20px;
  background-color: #FFF;
  border : solid 5px #54C2F0;
}

.work-content h3 {
    font-size: 15px;
    padding-bottom: 10px;
}

.work-content .description {
    font-size: 12px;
    padding-bottom: 20px;
}

.work-content .name {
    font-size: 10px;
}

.work-content li {
    display: grid;
    gap: 5px;
    grid-template-columns: 1fr 3fr;
}

.work-img{
	margin:auto 0;
}
.work-text li div {
    font-size: 12px;
}

@media screen and (max-width: 767px) {
    .works-page h1{
        font-size: 25px;
    }
    .works-page h2{
        font-size: 14px;
        padding-top: 5px;
        padding-bottom: 30px;
    }
  .work-content li {
      display: grid;
      gap: 5px;
      grid-template-columns: 2fr 3fr;
  }
}
@media screen and (min-width: 768px) {
  .work-content {
      display: grid;
      gap: 50px;
      grid-template-columns: 1fr 2fr;
  }
  .works-page section {
    margin: 10vh 0;
  }
}
/*-------------------------------
RECRUIT PAGE
-------------------------------*/
.recruit_page{
  display: block;
  min-height: 100vh;
  position: relative;
  /*background-color: #F4F4F4;*/
  background-color: #fef8f9;
}
.recruit_text {
  padding: 150px 10% 100px 10%;
}
.recruit_text h1{
  font-size: 30px;
  letter-spacing: .2em;
}

.recruit_text h2{
  font-size: 14px;
  padding-top: 5px;
}
.recruit_page .Footer{
  width: 100%;
    position: absolute;
    bottom: 0;
}

@media screen and (max-width: 767px){
  .recruit_text h1{
    font-size: 25px;
  }
}

/*-------------------------------
INQUIRY PAGE
-------------------------------*/
.inquiry_page{
  display: block;
  min-height: 100vh;
  position: relative;
  background-color: #fef8f9;
}
.inquiry_text{
  padding: 150px 10% 100px 10%;
  background-color: #fef8f9;
}
.inquiry_text h1{
  font-size: 30px;
  letter-spacing: .2em;
}
.inquiry_text h2{
  font-size: 15px;
  padding-top: 5px;
}

.inquiry_text a:hover{
  color: #54C2F0;
}

.inquiry_form_light_gray {
  /* background-color: darkgrey; */
  /* background-color: #def2f8; */
  padding: 10px;
}

label {
  font-size: 1.125rem;
  margin-bottom: 10px;
  display: block;
}

input[type="text"],
textarea{
  border: -1px #fff solid;
  padding: 10px;
  font-size: 1rem;
  margin-left: 10px;
  border: -1px #000 solid;
}

input[type="text"]{
  width: 100%;
  max-width: 240px;
  margin-left: 10px;
  margin-right: 10px;
}

textarea {
  width: 100%;
  max-width: 480px;
  height: 6rem;
}

input[type="submit" i]{
  display       : inline-block;
  font-size     : 18px;
  text-align    : center;
  cursor        : pointer;
  padding       : 1% 7%;
  background    : #54c2f0;
  color         : #ffffff;
  line-height   : 1em;
  transition    : .3s;
  border        : 2px solid #54c2f0;
}

input[type="submit" i]:hover {
  color         : #54c2f0;
  background    : #ffffff;
}

.formBox{
  margin-bottom:2%;
}

.inquiry_page .Footer{
  width: 100%;
    position: absolute;
    bottom: 0;
}

.error_message{
  color:red;
  font-size:14px;
}

@media screen and (max-width: 767px){
  .inquiry_text h1{
    font-size: 25px;
  }
input[type="submit" i]{
  font-size: 17px;
  padding: 2% 8%;
    }
}
/*-------------------------------
PRIVACY POLICY PAGE
-------------------------------*/
.privacy_page{
  display: block;
  width: 100vw;
  /* height: 100vh; */
  background-color: #fef8f9;

}
.privacy_text{
  padding: 150px 10% 100px 10%;
  background-color: #fef8f9;
}
.privacy_text h1{
  font-size: 30px;
}
.privacy_text h2{
  font-size: 15px;
  padding-top: 5px;
}
.privacy_text h3{
  font-size: 15px;
  padding-top: 10px;
  border-bottom: solid 2px #54C2F0;
}

.privacy_text a{
  color:#54C2F0;
}

.privacy_link_text {
  color: #54C2F0;
}

.privacy_page .box{
  font-size: 14px;
  padding-top: 1%;
  padding-bottom: 2%;
}

@media screen and (max-width: 767px){
  .privacy_text h1{
    font-size: 25px;
  }
}
/*-------------------------------
SITE POLICY PAGE
-------------------------------*/
.sitepolicy_page{
  display: block;
  width: 100vw;
  /* height: 100vh; */
  background-color: #fef8f9;

}
.sitepolicy_text{
  padding: 150px 10% 100px 10%;
  background-color: #fef8f9;
}
.sitepolicy_text h1{
  font-size: 30px;
}
.sitepolicy_text h2{
  font-size: 15px;
  padding-top: 5px;
}
.sitepolicy_text h3{
  font-size: 15px;
  padding-top: 10px;
  border-bottom: solid 2px #54C2F0;
}

.sitepolicy_page .box{
  font-size: 14px;
  padding-top: 1%;
  padding-bottom: 2%;
}

@media screen and (max-width: 767px){
  .sitepolicy_text h1{
    font-size: 25px;
  }
}
/*-------------------------------
TOKUSHO PAGE
-------------------------------*/
.tokusho_page{
  display: block;
  width: 100vw;
  /* height: 100vh; */
  background-color: #fef8f9;

}
.tokusho_text{
  padding: 150px 10% 100px 10%;
  background-color: #fef8f9;
}
.tokusho_text h1{
  font-size: 30px;
}
.tokusho_text h2{
  font-size: 15px;
  padding-top: 5px;
}
.tokusho_text h3{
  font-size: 15px;
  padding-top: 15px;
  border-bottom: solid 2px #54C2F0;
}

.tokusho_text p{
  font-size: 14px;
}

@media screen and (max-width: 767px){
  .tokusho_text h1{
    font-size: 24px;
  }
}