@charset "UTF-8";

/* -----------------------------------------------

	 base

----------------------------------------------- */
.btn {
  display: inline-block;
  position: relative;
  text-align: center;
  margin: auto;
  background-color: #0054a6;
  max-width: 300px;
  min-width: 300px;
  width: 100%;
  border-radius: 50vh;
  transition: 0.5s;
}
.btn a{
  display: inline-block;
  color: #fff;
  width: 100%;
  font-weight: 600;
  padding: 20px;
}
.btn:hover{
  opacity: 0.6;
  transition: 0.5s;
}
.ttl{
  font-weight: 700;
}
.ttlrtn{
  font-weight: 700;
  color: #fff;
}
.container {
  max-width: 1200px;
  width: 100%;
  margin: auto;
}
h2{
  font-size: 35px;
  margin-bottom: 45px;
  text-align: center;
  font-weight: 700;
}

  @media only screen and (max-width: 1024px) {
  }
  @media only screen and (max-width: 768px) {
    h2{
      font-size: 30px;
    }
  }
  @media only screen and (max-width: 479px) {
    h2{
      font-size: 24px;
      margin-bottom: 30px;
    }
    .btn {
      min-width: auto;
    }
    .btn a{
      padding: 15px;
    }
  }


/* -----------------------------------------------
	 top_section
----------------------------------------------- */
.top_section .main_img{
  position: relative;
}
.top_section .main_img > img {
  width: 100%;
  position: relative;
  max-height: 600px;
  min-height: 500px;
  object-fit: cover;
}
.top_section .main_img .main_text img {
  max-width: 500px;
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
}
  @media only screen and (max-width: 1024px) {
  }
  @media only screen and (max-width: 768px) {
    .top_section .main_img > img{
      min-height: 450px;
    } 
    .top_section .main_img .main_text img {
        max-width: 420px;
    }
  }
  @media only screen and (max-width: 479px) {
    .top_section .main_img > img {
      min-height: 300px;
    }
    .top_section .main_img .main_text img {
      width: 85vw;
      max-width: 330px;
    }
  }



/* -----------------------------------------------
	 tsec_about
----------------------------------------------- */
.tsec_about {
  padding: 90px 0 300px;
  position: relative;
}
.tsec_about::after{
  content: "";
  display: inline-block;
  width: 100%;
  height: 16vw;
  background-image: url(../images/top_bgcity.webp);
  background-size: cover;
  background-position: top center;
  background-repeat: no-repeat;
  position: absolute;
  bottom: 0;
  left: 0;
  z-index: -1;
}
.tsec_about .itset{
  gap: 60px;
}
.tsec_about .itset .txts{
  line-height: 2.5;
}
.tsec_about .itset .txts p:first-child{
  margin-bottom: 30px;
}
.tsec_about .itset .img{
  min-width: 500px;
}


@media only screen and (max-width: 1024px) {
  .tsec_about {
    padding: 60px 0 200px;
  }
  .tsec_about .itset .img {
      min-width: 450px;
  }
}
@media only screen and (max-width: 768px) {
  .tsec_about {
    padding: 45px 0 150px;
  }
  .tsec_about .itset{
    flex-direction: column;
  }
  .tsec_about .itset .txts,
  .tsec_about .itset .img{
    width: 100%;
  }
  .tsec_about .itset {
    gap: 30px;
  }
  .tsec_about .itset .txts p:first-child {
    margin-bottom: 0;
  }
}
@media only screen and (max-width: 479px) {
  .tsec_about {
    padding: 30px 0 120px;
  }
  .tsec_about::after{
    height: 28vw;
    background-position: top right;
  }
  .tsec_about .itset .img {
    min-width: auto;
  }
  .tsec_about .itset .txts{
    line-height: 2;
  }
}


/* -----------------------------------------------
	 tsec_service
----------------------------------------------- */
.tsec_service {
  padding: 120px 0;
  background: #e6f9ff;
}
.tsec_service .head{
  line-height: 1.5;
  text-align: center;
  font-weight: 900;
  font-size: 40px;
  color: #0054a6;
  margin-bottom: 45px;
}
.tsec_service .pointwrap{
  gap: 30px;
  margin-bottom: 90px;
}
.tsec_service .pointwrap .point{
  width: calc(100% / 5 - 24px);
}

.tsec_service .servicewrap{
  gap: 40px;
  margin-bottom: 80px;
}
.tsec_service .service{
  width: calc(100% / 3 - 27px);
  background: #fff;
  padding: 30px;
  border: solid 2px #222;
}
.tsec_service .service h3{
  margin-bottom: 30px;
  font-size: 25px;
  text-align: center;
  line-height: 1.3;
}
.tsec_service .service h3 span{
  display: block;
}
.tsec_service .lasttxt{
  margin-bottom: 80px;
  text-align: center;
}
.tsec_service .btn{
  display: block;
  margin: auto;
}


  @media only screen and (max-width: 1024px) {
    .tsec_service {
      padding: 90px 0;
    }
    .tsec_service .pointwrap {
      gap: 20px;
    }
    .tsec_service .pointwrap .point {
      width: calc(100% / 5 - 16px);
    }
    .tsec_service .servicewrap{
      gap: 30px;
    }
    .tsec_service .service {
      padding: 25px;
      width: calc(100% / 3 - 20px);
    }
  }
  @media only screen and (max-width: 768px) {
    .tsec_service {
      padding: 60px 0;
    }
    .tsec_service .head {
      font-size: 30px;
    }
    .tsec_service .pointwrap .point {
      width: calc(100% / 3 - 16px);
    }
    .tsec_service .servicewrap {
      margin-bottom: 60px;
    }
    .tsec_service .service{
      width: calc(100% / 2 - 20px);
    }
    .tsec_service .service h3{
      font-size: 20px;
    }
    .tsec_service .lasttxt {
      margin-bottom: 60px;
    }
    .tsec_service .service h3 span{
      font-size: 18px;
    }
  }
  @media only screen and (max-width: 479px) {
    .tsec_service .head {
      font-size: 25px;
      margin-bottom: 30px;
    }
    .tsec_service .pointwrap {
      gap: 10px;
      margin-bottom: 60px;
    }
    .tsec_service .pointwrap .point {
      width: calc(100% / 2 - 5px);
    }
    .tsec_service .servicewrap {
      gap: 20px;
      margin-bottom: 30px;
    }
    .tsec_service .service {
      width: 100%;
      border: solid 1px #222
    }
    .tsec_service .service h3{
      margin-bottom: 20px;
    }
    .tsec_service .lasttxt br{
      display: none;
    }
  }

/* -----------------------------------------------
	 tsec_flow
----------------------------------------------- */
.tsec_flow{
  padding: 90px 0;
  position: relative;
}
.tsec_flow .head{
  text-align: center;
  margin-bottom: 30px;
}
.tsec_flow .head p{
  color: #ffdb2c;
  font-weight: 700;
}
.tsec_flow::after{
    content: "";
    display: inline-block;
    width: 100%;
    height: 100%;
    background-image: url(../images/top_bgflow.jpg);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    position: absolute;
    bottom: 0;
    left: 0;
    z-index: -1;
}
.tsec_flow .head{
  color: #fff;
}
.tsec_flow .flowwrap{
  max-width: 500px;
  margin: auto;
  text-align: center;
}
.tsec_flow .flow{
  position: relative;
  background: #fff;
  padding: 20px;
  color: #0054a6;
  font-size: 25px;
  font-weight: 600;
}
.tsec_flow .flow:not(:last-child)::after{
    content: "↓";
    z-index: 1;
    display: inline-block;
    color: #fff;
    position: absolute;
    top: calc(100% + 30px);
    left: 50%;
    -webkit-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
}
.tsec_flow .flow:not(:last-child){
  margin-bottom: 60px;
}
  @media only screen and (max-width: 1024px) {
    .tsec_flow {
      padding: 65px 0 80px;
    }
  }
  @media only screen and (max-width: 768px) {
    .tsec_flow .flow{
      font-size: 20px;
    }
  }
  @media only screen and (max-width: 479px) {
    .tsec_flow {
      padding: 50px 0 70px;
    }
    .tsec_flow .flow{
      padding: 15px;
      font-size: 18px;
    }
    .tsec_flow .flow:not(:last-child) {
      margin-bottom: 40px;
    }
    .tsec_flow .flow:not(:last-child)::after {
      top: calc(100% + 20px);
    }
  }


/* -----------------------------------------------
	 tsec_faq
----------------------------------------------- */
.tsec_faq {
  padding: 90px 0;
  margin-bottom: 30px;
}
.tsec_faq .faq{
  line-height: 2;
}
.tsec_faq .faq:not(:last-child){
  margin-bottom: 60px;
}
.tsec_faq .que{
  font-weight: 800;
  color: #0054a6;
  border-bottom: solid 2px #0054a6;
  padding-bottom: 10px;
  margin-bottom: 10px;

}
  @media only screen and (max-width: 1024px) {
    .tsec_faq {
      padding: 80px 0;
    }
  }
  @media only screen and (max-width: 768px) {
    .tsec_faq {
      padding: 60px 0;
    }
    .tsec_faq .que,
    .tsec_faq .ans{
      font-size: 16px;
    }
  }
  @media only screen and (max-width: 479px) {
    .tsec_faq .que{
      font-size: 18px;
      padding-bottom: 5px;
    }
  }

/* -----------------------------------------------
	 tsec_contact
----------------------------------------------- */
.tsec_contact {
  padding: 80px 0;
  background: #e6f9ff;
}
.tsec_contact .formwrap{
  max-width: 1000px;
  margin: 30px auto 40px;
}
  @media only screen and (max-width: 1024px) {
    .tsec_contact {
      padding: 60px 0;
    }
  }
  @media only screen and (max-width: 768px) {
  }
  @media only screen and (max-width: 479px) {
    .tsec_contact{
      padding: 45px 0;
    }
  }