@charset "utf-8";
/* CSS Document */

/*===========
margin
===========*/
.mg-top-80 {
  margin-top: 80px !important;
}
.mg-top-120 {
  margin-top: 120px !important;
}
.mg-bottom-120 {
  margin-bottom: 120px !important;
}
.pad-top-120 {
  padding-top: 120px;
}
.pad-bottom-120 {
  padding-bottom: 120px;
}
@media only screen and (min-width: 768px) and (max-width: 1024px) {
  .mg-bottom-120 {
    margin-bottom: 60px !important;
  }
}
@media only screen and (max-width: 767px) {
  .mg-bottom-120 {
    margin-bottom: 60px !important;
  }
  .pad-top-120 {
    padding-top: 60px;
  }
  .pad-bottom-120 {
    padding-bottom: 60px;
  }
  .full_sp {
    padding: 0 !important;
  }
  .full_sp .more-btn {
    padding: 0 15px;
  }
}

/*===========
header
===========*/
#header_fixed {
  position: fixed;
  width: 100%;
  left: 0;
  top: 0;
  z-index: 999;
}

/*===========
main
===========*/
.main {
  width: 100%;
  position: relative;
  margin-top: -100px;
  padding-top: 130px;
  z-index: -1;
}

@media only screen and (min-width: 768px) and (max-width: 1200px) {
  .main {
    margin-top: 0;
    padding-top: 104px;
  }
}

@media only screen and (max-width: 767px) {
  .main {
    margin-top: 0;
    padding-top: 104px;
  }
}

/*===========
head
===========*/
.head_type-01 {
  padding-bottom: 64px;
}
.head_type-01 h2 {
  font-size: 40px;
  font-weight: 500;
  letter-spacing: 4px;
}

@media only screen and (min-width: 768px) and (max-width: 1200px) {
  .head_type-01 {
    padding-bottom: 36px;
  }
  .head_type-01 h2 {
    font-size: 28px;
  }
}
@media only screen and (max-width: 767px) {
  .head_type-01 {
    padding-bottom: 36px;
  }
  .head_type-01 h2 {
    font-size: 24px;
    line-height: 1.5;
  }
}

/*===========
top-about
===========*/
.top_about {
  position: relative;
  z-index: 1;
  margin-top: -120px;
  padding-top: 60px;
}

.about_type-01,
.about_type-02,
.about_type-03 {
  display: flex;
  position: relative;
}
.about_type-01 .img_area {
  width: 70%;
  height: 584px;
}
.about_type-01 .img_area img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.about_type-01 .txt_area_wrap {
  width: 600px;
  height: 446px;
  position: absolute;
  left: 52%;
  margin-top: 74px;
}
.txt_area_wrap .txt_area {
  position: relative;
  width: 100%;
  height: 100%;
}

.about_type-01 .txt_area_wrap .txt_area .bubble {
  position: absolute;
  right: -16%;
  top: -26%;
  z-index: 2;
}
.about_type-01 .txt_area_wrap .txt_area .bubble img {
  width: 204px;
  height: auto;
}

.txt_area_wrap .txt_area .inner {
  width: 475px;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
.txt_area_wrap .txt_area .inner .head {
  position: relative;
  margin-bottom: 30px;
  z-index: 1;
}
.txt_area_wrap .txt_area .inner .head span {
  position: absolute;
  bottom: 0;
  right: 0;
  font-size: 120px;
  line-height: 1;
  color: #5b8dac;
  opacity: 0.1;
  letter-spacing: 6px;
  z-index: -1;
}
.txt_area_wrap .txt_area .inner h3 {
  font-size: 30px;
}
@media only screen and (min-width: 768px) and (max-width: 1200px) {
  .top_about {
    margin-top: -60px;
  }

  .about_type-01,
  .about_type-02,
  .about_type-03 {
    display: block;
  }
  .about_type-01,
  .about_type-02 {
    margin-bottom: 64px;
  }

  .about_type-01 .img_area {
    width: 95%;
    height: 384px;
  }
  .about_type-01 .txt_area_wrap {
    width: 95%;
    margin: 0 auto;
    height: 100%;
    position: inherit;
    left: 0;
    margin-top: 36px;
  }

  .txt_area_wrap .txt_area .inner {
    width: 100%;
    position: inherit;
    top: 0;
    left: 0;
    transform: translate(0, 0);
  }
  .txt_area_wrap .txt_area .inner .head {
    margin-bottom: 20px;
  }
  .txt_area_wrap .txt_area .inner .head span {
    position: absolute;
    bottom: inherit;
    right: inherit;
    left: 50%;
    top: 32%;
    transform: translate(-50%, -50%);
    font-size: 120px;
  }
  .about_type-01 .txt_area_wrap .txt_area .bubble {
    right: 0;
    top: -49%;
  }
  .about_type-01 .txt_area_wrap .txt_area .bubble img {
    width: 154px;
  }
}
@media only screen and (max-width: 767px) {
  .about_type-01,
  .about_type-02,
  .about_type-03 {
    display: block;
  }
  .about_type-01,
  .about_type-02 {
    margin-bottom: 64px;
  }

  .about_type-01 .img_area {
    width: 95%;
    height: 164px;
  }
  .about_type-01 .txt_area_wrap {
    width: 95%;
    margin: 0 auto;
    height: 100%;
    position: inherit;
    left: 0;
    margin-top: 36px;
  }

  .txt_area_wrap .txt_area .inner {
    width: 100%;
    position: inherit;
    top: 0;
    left: 0;
    transform: translate(0, 0);
  }
  .txt_area_wrap .txt_area .inner .head {
    margin-bottom: 20px;
  }
  .txt_area_wrap .txt_area .inner .head span {
    position: absolute;
    bottom: inherit;
    right: inherit;
    left: 50%;
    top: 32%;
    transform: translate(-50%, -50%);
    font-size: 64px;
  }
  .about_type-01 .txt_area_wrap .txt_area .bubble {
    right: 0;
    top: -34%;
  }
  .about_type-01 .txt_area_wrap .txt_area .bubble img {
    width: 98px;
  }
  .txt_area_wrap .txt_area .inner h3 {
    font-size: 20px;
  }
}

.about_type-02 .img_area {
  width: 70%;
  height: 584px;
  margin-left: auto;
}
.about_type-02 .img_area img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.about_type-02 .txt_area_wrap {
  width: 600px;
  height: 446px;
  position: absolute;
  right: 55%;
  margin-top: 74px;
}
.about_type-02 .txt_area_wrap .txt_area .inner .head span {
  left: 0;
}
.about_type-02 .txt_area_wrap .txt_area .bubble {
  position: absolute;
  left: -12%;
  bottom: 8%;
  z-index: 0;
}
.about_type-02 .txt_area_wrap .txt_area .bubble img {
  width: 160px;
  height: auto;
}
@media only screen and (min-width: 768px) and (max-width: 1200px) {
  .about_type-02 .img_area {
    width: 95%;
    height: 384px;
    margin-left: auto;
  }

  .about_type-02 .txt_area_wrap {
    width: 95%;
    margin: 0 auto;
    height: 100%;
    position: inherit;
    right: 0;
    margin-top: 36px;
  }
  .about_type-02 .txt_area_wrap .txt_area .inner .head span {
    left: 50%;
  }
  .about_type-02 .txt_area_wrap .txt_area .bubble {
    position: absolute;
    left: 15px;
    bottom: 0;
    top: -50%;
  }
  .about_type-02 .txt_area_wrap .txt_area .bubble img {
    width: 140px;
    height: auto;
  }
}
@media only screen and (max-width: 767px) {
  .about_type-02 .img_area {
    width: 95%;
    height: 164px;
    margin-left: auto;
  }

  .about_type-02 .txt_area_wrap {
    width: 95%;
    margin: 0 auto;
    height: 100%;
    position: inherit;
    right: 0;
    margin-top: 36px;
  }
  .about_type-02 .txt_area_wrap .txt_area .inner .head span {
    left: 50%;
  }
  .about_type-02 .txt_area_wrap .txt_area .bubble {
    position: absolute;
    left: 15px;
    bottom: 0;
    top: -29%;
  }
  .about_type-02 .txt_area_wrap .txt_area .bubble img {
    width: 95px;
    height: auto;
  }
}

.about_type-03 .img_area {
  width: 70%;
  height: 584px;
}
.about_type-03 .img_area img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.about_type-03 .txt_area_wrap {
  width: 600px;
  height: 446px;
  position: absolute;
  left: 55%;
  margin-top: 74px;
}
.about_type-03 .txt_area_wrap .txt_area .inner .head span {
  right: 0;
}
.about_type-03 .txt_area_wrap .txt_area .bubble {
  position: absolute;
  right: -5%;
  bottom: 0;
  z-index: 0;
}
.about_type-03 .txt_area_wrap .txt_area .bubble img {
  width: 160px;
  height: auto;
}

@media only screen and (min-width: 768px) and (max-width: 1200px) {
  .about_type-03 .img_area {
    width: 95%;
    height: 384px;
  }
  .about_type-03 .txt_area_wrap {
    width: 95%;
    margin: 0 auto;
    height: 100%;
    position: inherit;
    left: 0;
    margin-top: 36px;
  }
  .about_type-03 .txt_area_wrap .txt_area .inner .head span {
    right: inherit;
    left: 50%;
  }
  .about_type-03 .txt_area_wrap .txt_area .bubble {
    position: absolute;
    right: 0;
    bottom: inherit;
    top: -36%;
  }
  .about_type-03 .txt_area_wrap .txt_area .bubble img {
    width: 140px;
    height: auto;
  }
}
@media only screen and (max-width: 767px) {
  .about_type-03 .img_area {
    width: 95%;
    height: 164px;
  }
  .about_type-03 .txt_area_wrap {
    width: 95%;
    margin: 0 auto;
    height: 100%;
    position: inherit;
    left: 0;
    margin-top: 36px;
  }
  .about_type-03 .txt_area_wrap .txt_area .inner .head span {
    right: inherit;
    left: 50%;
  }
  .about_type-03 .txt_area_wrap .txt_area .bubble {
    position: absolute;
    right: 0;
    bottom: inherit;
    top: -22%;
  }
  .about_type-03 .txt_area_wrap .txt_area .bubble img {
    width: 92px;
    height: auto;
  }
}

/*===========
top-service
===========*/
.top_service {
  padding-top: 160px;
  padding-bottom: 160px;
}
.head_back {
  position: relative;
}
.head_back::before {
  content: '';
  background-image: url('images/head_back.png');
  background-repeat: no-repeat;
  background-size: cover;
  position: absolute;
  top: 0;
  left: 0;
  display: inline-block;
  width: 100%;
  height: 590px;
  z-index: -1;
}

.service_wrap {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-row-gap: 64px;
}

.service_wrap .service_item {
  width: 500px;
  margin: 0 auto;
}
.service_wrap .service_item .img_area {
  width: 100%;
  height: 300px;
}
.service_wrap .service_item .img_area img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 0 30px 0 30px;
}

.service_wrap .service_item .txt_area h3 {
  font-size: 30px;
}

@media only screen and (min-width: 768px) and (max-width: 1200px) {
  .top_service {
    padding-top: 120px;
    padding-bottom: 120px;
  }

  .service_wrap {
    grid-template-columns: repeat(1, 1fr);
  }
  .service_wrap .service_item {
    width: 100%;
    margin: 0 auto;
  }
  .service_wrap .service_item .txt_area h3 {
    font-size: 26px;
  }
}
@media only screen and (max-width: 767px) {
  .top_service {
    padding-top: 110px;
    padding-bottom: 84px;
  }
  .head_back::before {
    background-image: url('images/head_back_sp.png');
    height: 422px;
  }
  .service_wrap {
    grid-template-columns: repeat(1, 1fr);
  }
  .service_wrap .service_item {
    width: 100%;
    margin: 0 auto;
  }
  .service_wrap .service_item .img_area {
    width: 100%;
    height: 228px;
  }
  .service_wrap .service_item .txt_area h3 {
    font-size: 20px;
  }
}

/*===========
top-company
===========*/
.company_wrap {
  display: flex;
}
.company_wrap .img_area {
  width: 55%;
  height: 600px;
}
.company_wrap .data_area {
  width: 718px;
  height: 100%;
  padding: 46px 68px;
  position: relative;
  z-index: 1;
  margin-top: 60px;
  margin-left: -80px;
  background-color: #f5fbff;
}
.company_wrap .data_area h3 {
  font-size: 36px;
  margin-bottom: 30px;
}

@media only screen and (min-width: 768px) and (max-width: 1200px) {
  .company_wrap {
    display: block;
  }
  .company_wrap .img_area {
    width: 85%;
    height: 300px;
  }
  .company_wrap .data_area {
    width: 90%;
    padding: 36px 36px;
    margin-top: -40px;
    margin-left: auto;
    margin-right: auto;
  }
}
@media only screen and (max-width: 767px) {
  .company_wrap {
    display: block;
  }
  .company_wrap .img_area {
    width: 85%;
    height: 228px;
  }
  .company_wrap .data_area {
    width: 90%;
    padding: 36px 26px;
    margin-top: -40px;
    margin-left: auto;
    margin-right: auto;
  }
  .company_wrap .data_area h3 {
    font-size: 20px;
    margin-bottom: 0;
  }
}

/*===========
top-contact
===========*/
.contact_wrap {
  display: flex;
  justify-content: space-between;
}
.entry_btn a {
  display: block;
  background: linear-gradient(0deg, rgba(131, 204, 249, 1) 0%, rgba(43, 155, 224, 1) 100%);
  width: 554px;
  height: 134px;
  border-radius: 20px;
  position: relative;
}
.entry_btn a .inner {
  width: 100%;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
.entry_btn a .inner .flex_wrap {
  display: flex;
  justify-content: center;
  align-items: center;
}
.entry_btn a .inner img {
  margin-right: 15px;
}

.entry_btn a .item_line {
  font-size: 22px;
  line-height: 1.3;
}
.entry_btn a .item_tel {
  font-size: 36px;
  line-height: 1.3;
}

@media only screen and (min-width: 768px) and (max-width: 1200px) {
  .contact_wrap {
    display: block;
  }
  .entry_btn a {
    width: 454px;
    margin: 0 auto;
  }
  .contact_item:first-child {
    margin-bottom: 36px;
  }
}
@media only screen and (max-width: 767px) {
  .contact_wrap {
    display: block;
  }
  .contact_item:first-child {
    margin-bottom: 36px;
  }
  .entry_btn a {
    width: 100%;
    height: 92px;
  }
  .entry_btn a .inner img {
    margin-right: 8px;
  }

  .entry_btn a .item_line {
    font-size: 16px;
  }
  .entry_btn a .item_line img {
    width: 49px;
    height: auto;
  }
  .entry_btn a .item_tel {
    font-size: 22px;
  }
  .entry_btn a .item_tel img {
    width: 20px;
    height: auto;
  }
  .entry_btn a .item_tel .fo14 {
    font-size: 12px !important;
  }
}

/*===========
footer
===========*/
.footer {
  width: 100%;
  padding-top: 64px;
  padding-bottom: 24px;
}

.footer_logo {
  margin-bottom: 36px;
}

.footer_nav .footer_menu_list {
  display: flex;
  justify-content: center;
}

.footer_nav .footer_menu_list li a {
  display: block;
  font-size: 14px;
  margin-bottom: 30px;
  font-weight: 400;
  color: #fff;
  margin-left: 15px;
  padding-right: 15px;
  letter-spacing: 3px;
  position: relative;
}
