@charset "utf-8";
/* 作成者：　平野 */

.front_main {
  font-weight: 600;
  font-family: var(--NotoSans);
  letter-spacing: 0;

  /* 共通 */
  .title_area {
    text-align: center;

    .sec_title {
      display: inline-block;
      font-weight: 600;
      font-size: 2.8rem;
      color: #26A64D;
      line-height: calc(43 / 28);

      .first_character {
        padding-bottom: 1.55rem;
        border-bottom: #26A64D 0.3rem solid;
      }

      .other_character {
        padding-bottom: 1.55rem;
        border-bottom: #C8C8C8 0.3rem solid;
      }
    }
  }


  /* eye_catch */
  .eye_catch_sec {
    aspect-ratio: 1280/460;
    width: 100%;
    position: relative;


    .ec_bgimg {
      width: 100%;
      height: 100%;
      overflow: hidden;
    }

    .ec_text {
      position: absolute;
      top: 18.3rem;
      left: 25.5rem;
      font-family: var(--Averia);



      .ec_text_large,
      .ec_text_small {
        display: inline-block;
        color: #ffffff;
      }

      .ec_text_large {
        font-size: 3.5rem;
        line-height: 1;
        padding-top: 0.5rem;
        padding-bottom: 1.0rem;
        padding-left: 0.5rem;
        margin-bottom: 1.0rem;
      }

      .ec_text_small {
        font-size: 2rem;
        line-height: 1.0;
        padding-top: 0.7rem;
        padding-bottom: 1.0rem;
        padding-left: 0.5rem;
      }
    }

    .ec_button {
      position: absolute;
      right: 5rem;
      bottom: 5rem;
      padding: 1.9rem 2.4rem;
      background-color: #00A64D;
      border-radius: 1rem;
      color: white;
      font-size: 1.6rem;
      line-height: 1;
      text-align: center;
    }

    .ec_button:hover {
      color: #03A64D;
      background-color: #ffffff;
      transition: .5s;
    }
  }

  .ec_bgimg::after {
    content: "";
    position: absolute;
    background-color: #000000;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    opacity: 0.3;
    z-index: 1;
  }

  /* 技術一覧 */
  .projects_list_sec {
    padding-top: 4.1rem;
    padding-bottom: 4.0rem;

    .projects_text_space {
      width: 83.2rem;
      margin: 3.7rem auto 4.45rem auto;

      .sec_sub_title {
        font-weight: 600;
        font-size: 2.4rem;
        color: #000000;
        line-height: calc(36 / 24);
        margin-bottom: 1.1rem;
      }

      .projects_text {
        font-weight: 300;
        font-size: 1.6rem;
        color: #000000;
        line-height: calc(24 / 16);
        font-weight: 500;
      }
    }

    .search_area {
      width: 108.0rem;
      background-color: #F1FBF3;
      margin: 0 auto;
      padding-top: 5.0rem;
      padding-bottom: 5.0rem;
      margin-bottom: 11.0rem;

      .input_area {
        width: 73.0rem;
        height: 4.0rem;
        display: flex;
        margin: 0 auto 2.0rem auto;

        .projects_search {
          width: 69.0rem;
          height: 4.0rem;
          background-color: #FFFFFF;
          border: #26A64D 0.15rem solid;
          padding-left: 2.0rem;

          &::placeholder {
            font-weight: 300;
            font-size: 1.4rem;
            color: #A0A0A0;
            line-height: calc(40 / 14);

          }
        }

        .search_btn_img {
          width: 4.0rem;
          height: 4.0rem;
          background-color: #26A64D;
          border: #26A64D 0.15rem solid;
          background-image: url('../img/search.svg');
          background-size: 1.98rem 1.98rem;
          background-position: top 0.7rem left 0.7rem;
          background-repeat: no-repeat;
          cursor: pointer;
        }
      }

      .keyword_list {
        display: flex;
        flex-wrap: wrap;
        width: 73.0rem;
        margin: 0 auto 2.0rem auto;
        gap: 0.8rem 1.7rem;

        li {
          font-size: 1.2rem;
          color: #26A64D;
          line-height: calc(20 / 12);
          border: #26A64D 0.1rem solid;
          background-color: #FFFFFF;
          border-radius: 0.6rem;
          padding: 0 1.4rem;
        }

        li.selected {
          color: #fff;
          background-color: #26A64D;
        }

        label {
          font-size: 1.2rem;
          color: #26A64D;
          line-height: calc(20 / 12);
          border: #26A64D 0.1rem solid;
          background-color: #FFFFFF;
          border-radius: 0.6rem;
          padding: 0 1.4rem;
        }

        label:has(:checked) {
          color: #fff;
          background-color: #26A64D;
        }
      }

      .search_btn_area {
        text-align: center;

        .search_btn {
          width: 16.0rem;
          height: 3.0rem;
          border-radius: 1.0rem;
          background-color: #26A64D;
          cursor: pointer;
          font-size: 1.2rem;
          color: #FFFFFF;
          line-height: calc(30 / 12);
        }

        .search_btn:hover {
          color: #03A64D;
          background-color: #ffffff;
          border: #03A64D solid 1px;
          transition: .5s;
        }
      }
    }

    .field_list {
      display: flex;
      justify-content: center;
      gap: 4.0rem;

      li {
        width: 24.0rem;
        height: 25.0rem;

        :hover .field_title {
          color: #03A64D;
          background-color: #ffffff;
          border: #03A64D solid 1px;
          transition: .5s;
          border-top: none;
        }

        .field_img {
          width: 24.0rem;
          height: 20.0rem;
          border-radius: 1.0rem 1.0rem 0 0;
        }

        .field_title {
          width: 24.0rem;
          height: 5.0rem;
          background-color: #26A64D;
          border-radius: 0 0 1.0rem 1.0rem;
          font-size: 2.0rem;
          color: #FFFFFF;
          line-height: calc(50 / 20);
          text-align: center;
        }
      }
    }
  }

  /* 新着技術一覧 */
  .technology_list_sec {
    margin: 0 auto;
    width: 108.0rem;
    padding-bottom: 5.0rem;

    .technology_list {
      display: flex;
      flex-wrap: wrap;
      gap: 3.0rem;
      margin-top: 4.55rem;

      li {
        width: 34.0rem;
        height: 36.0rem;

        .technology_img {
          width: 34.0rem;
          height: 20.0rem;
          border-radius: 1.2rem 1.2rem 0 0;
        }

        .technology_text_area {
          width: 34.0rem;
          height: 16.0rem;
          border-radius: 0 0 1.2rem 1.2rem;
          background-color: #F0FDF4;
          padding: 2.4rem 2.0rem;

          .technology_title {
            font-weight: 600;
            font-size: 1.8rem;
            color: #000000;
            line-height: calc(28 / 18);
            height: 5.3rem;
            /* 2行目以降は省略する */
            display: -webkit-box;
            -webkit-box-orient: vertical;
            -webkit-line-clamp: 2;
            overflow: hidden;
            margin-bottom: 1.2rem;
          }

          .technology_text {
            font-weight: 300;
            font-size: 1.4rem;
            color: #000000;
            line-height: calc(21 / 14);
            /* 2行目以降は省略する */
            display: -webkit-box;
            -webkit-box-orient: vertical;
            -webkit-line-clamp: 2;
            overflow: hidden;
          }
        }
      }
    }
  }

  /* メルマガ会員登録 */
  .mail_sec {
    background-color: #26A64D;
    text-align: center;
    padding-top: 4.1rem;
    padding-bottom: 4.6rem;

    .mail_sec_title {
      font-weight: 600;
      font-size: 2.8rem;
      color: #FFFFFF;
      line-height: calc(43 / 28);
      margin-bottom: 3.85rem;
      display: flex;
      align-items: center;
      justify-content: center;

      /* タイトル前の斜め棒 */
      &::before {
        content: "";
        height: 0.2rem;
        background-color: #FFFFFF;
        width: 3.6rem;
        transform: rotate(80deg);
        margin-right: 0.15rem;
      }

      &::after {
        content: "";
        height: 0.2rem;
        background-color: #FFFFFF;
        width: 3.6rem;
        transform: rotate(-80deg);
        margin-left: 0.15rem;
      }
    }

    .mail_info_list {
      display: flex;
      gap: 0 5.0rem;
      justify-content: center;
      margin-bottom: 4.2rem;

      li {
        width: 18.0rem;
        height: 18.0rem;
        border-radius: 50%;
        border: #FFFFFF 0.1rem solid;
        display: table;

        .info_text {
          font-size: 1.4rem;
          color: #FFFFFF;
          line-height: calc(24 / 16);
          display: table-cell;
          vertical-align: middle;
        }

        .service_list_en {
          font-size: 1.2rem;
        }

        .info_text_title {
          font-size: 2rem;
          color: #FFFFFF;
          line-height: calc(24 / 16);
          font-weight: bold;
        }
      }
    }

    .mail_entry {
      display: inline-block;
      width: 64.0rem;
      height: 10.0rem;
      border-radius: 1.0rem;
      background-color: #FFFFFF;
      font-size: 2.8rem;
      color: #26A64D;
      line-height: calc(100 / 28);
    }

    .mail_entry:hover {
      color: #ffffff;
      background-color: #03A64D;
      border: #ffffff solid 1px;
      transition: .5s;
    }

  }



  /* 会社情報 */
  .company_info_sec {
    padding-top: 7.05rem;
    padding-bottom: 7.0rem;

    .company_info {
      display: flex;
      gap: 0 5.0rem;
      justify-content: center;

      .info_img {
        width: 36.0rem;
        height: 27.0rem;
      }

      .info_list {
        width: 66.8rem;
        display: flex;
        flex-wrap: wrap;

        dt {
          width: 10.8rem;
          font-size: 1.8rem;
          color: #000000;
          line-height: calc(36 / 18);
        }

        dd {
          width: calc(100% - 10.8rem);
          font-weight: 300;
          font-size: 1.8rem;
          color: #000000;
          line-height: calc(36 / 18);

          .service_list {
            margin-left: 1.8rem;
            list-style: disc;
          }

          .about_link {
            display: inline-block;
            width: 24.0rem;
            height: 5.0rem;
            border-radius: 1.0rem;
            background-color: #26A64D;
            font-weight: 600;
            font-size: 1.6rem;
            color: #FFFFFF;
            line-height: calc(50 / 16);
            text-align: center;
            margin-top: 1.5rem;
          }

          .about_link:hover {
            color: #03A64D;
            background-color: #ffffff;
            border: #03A64D solid 1px;
            transition: .5s;
          }
        }
      }
    }
  }

  /* リンクエリア */
  .link_sec {
    background-color: #26A64D;
    padding-top: 7.0rem;
    padding-bottom: 7.0rem;

    .link_space {
      display: inline-block;
      width: 42.0rem;
      height: 12.0rem;
      display: flex;
      gap: 0 3.0rem;
      justify-content: center;
      align-items: center;
      margin: 0 auto;
      background-color: #FFFFFF;
      border-radius: 1.0rem;

      .link_img {
        width: 5.0rem;
        height: 5.0rem;
      }

      .link_text {
        font-size: 2.4rem;
        color: #000000;
        line-height: calc(36 / 24);
      }
    }
  }
}


/* 修正 */
.technology_field {
  width: 108rem;
  margin: 0 auto;
}

.technology_field_title {
  font-size: 2.4rem;
  font-weight: 500;
  margin-bottom: 3.1rem;
}

.technology_img_edit {
  width: 100% !important;
  height: 15rem !important;
}

.technology_img_edit02 {
  width: 100% !important;
  height: 20rem !important;
  object-fit: contain;
}

.technology_textarea_edit {
  width: auto !important;
  height: auto !important;
}

.list_techarea_edit {
  width: 24.5rem !important;
  height: auto !important;
}

.technology_list_edit {
  gap: 3.33rem !important;
}

.eye_catch_sec {
  aspect-ratio: 1280/460;
  width: 100%;
  position: relative;
}

.ec_button {
  position: absolute;
  right: 5rem;
  bottom: 5rem;
  padding: 1.9rem 2.4rem;
  background-color: #00A64D;
  border-radius: 1rem;
  color: white;
  font-size: 1.6rem;
  line-height: 1;
  text-align: center;
  z-index: 1;
}

/* スライドショー */

.swiper-slide {
  color: #ffffff;
  width: 100%;
  height: 100%;
  text-align: center;
  line-height: 300px;
}

.ec_text {
  position: absolute;
  top: 18.3rem;
  left: 25.5rem;
  z-index: 2;
}

.ec_text_large_wrap {
  display: flex;
}

.ec_text_small_wrap {
  display: flex;
}

.edit_top_area {
  padding-top: 4.5rem !important;
}

.projects_list_sec {
  padding-bottom: 5rem !important;
}


/* ↓新着技術一覧 4列を3列に ４列に戻したいときはこちらをコメントアウトしてください*/
.technology_img_edit {
  width: 34rem !important;
  height: 20rem !important;
}

.list_techarea_edit {
  width: 34rem !important;
}

.technology_list_edit {
  gap: 3rem !important;
}

/* ↑新着技術一覧 4列を3列に ４列に戻したいときはこちらをコメントアウトしてください*/

.title_area {
  margin-bottom: 6.85rem;
}

.first_character {
  display: inline-block;
}

.company_info_sec {
  padding-top: 5.7rem !important;
}

.service_list_en {
  font-size: 1.2rem;
}

.service_list_text_en{
  font-weight: bold;
}

/* スマホ用 */
@media screen and (max-width: 699.98px) {
  .front_main {
    font-weight: 600;
    font-family: var(--NotoSans);
    letter-spacing: 0;

    /* eye_catch */
    .eye_catch_sec {
      aspect-ratio: 375/460;
      width: 100%;
      position: relative;

      .ec_bgimg {
        width: 100%;
        height: 100%;
        overflow: hidden;
      }

      .ec_text {
        position: absolute;
        top: 8.1rem;
        left: 0.6rem;



        .ec_text_large_wrap,
        .ec_text_small_wrap {

          display: flex;
          flex-direction: column;
          width: fit-content;
        }

        .ec_text_large {
          line-height: calc(45 / 30);
          padding-top: 0;
          padding-bottom: 0;
          padding-left: 0.4rem;
          margin-bottom: 1.0rem;

          &:first-of-type {
            margin-bottom: 0.5rem;
          }
        }

        .ec_text_small {
          font-size: 2.0rem;
          line-height: calc(41 / 20);
          padding-top: 0;
          padding-bottom: 0;
          padding-left: 0.5rem;
          margin-bottom: 0.5rem;
          text-align: left;
        }
      }

      .ec_button {
        right: 6.8rem;
        bottom: 4.2rem;
        padding: 2.1rem 2.4rem;
      }
    }

    /* 技術一覧 */
    .projects_list_sec {
      padding-top: 10.2rem;
      padding-bottom: 4.3rem;

      .projects_text_space {
        width: 35.5rem;
        margin: 4.2rem auto 5.0rem auto;

        .sec_sub_title {
          margin-bottom: 0.9rem;
        }

        .projects_text {
          line-height: calc(27 / 16);
        }
      }

      .search_area {
        width: 100%;
        padding-bottom: 5.0rem;
        margin-bottom: 3.0rem;

        .input_area {
          width: 35.5rem;

          .projects_search {
            width: 31.5rem;
            border-radius: 0;
          }
        }

        .keyword_list {
          width: 35.5rem;
          margin: 0 auto 2.0rem auto;
          gap: 0.8rem 3.0rem;

          li {
            line-height: calc(20 / 12);
            padding: 0 1.4rem;
          }

          &.ac_keyword_list {
            opacity: 0;
            visibility: hidden;
            display: none;

            &.is-open {
              opacity: 1;
              visibility: visible;
              display: flex;
              margin-top: 2.0rem;
            }
          }
        }

        .all_space {
          text-align: center;

          .all_space_button {
            border-bottom: 1px solid #26A64D;
            border-right: 1px solid #26A64D;
            display: inline-block;
            width: 1.0rem;
            height: 1.0rem;
            transform: rotate(45deg);

            &.is-open {
              transform: rotate(-135deg);
            }
          }
        }



        .search_btn_area {
          text-align: center;

          .search_btn {
            width: 16.0rem;
            height: 3.0rem;
            border-radius: 1.0rem;
            background-color: #26A64D;
            cursor: pointer;
            font-size: 1.2rem;
            color: #FFFFFF;
            line-height: calc(30 / 12);
          }
        }
      }

      .field_list {
        flex-wrap: wrap;
        gap: 2.0rem;

        li {
          width: 16.0rem;
          height: auto;

          .field_img {
            width: 16.0rem;
            height: 13.3rem;
            border-radius: 1.0rem 1.0rem 0 0;
          }

          .field_title {
            width: 16.0rem;
            height: auto;
            line-height: calc(33 / 20);
          }
        }
      }
    }

    /* 新着技術一覧 */
    .technology_list_sec {
      width: 34.0rem;
      padding-bottom: 9.1rem;

      .technology_list {
        gap: 2.0rem;
        margin-top: 4.4rem;

        li {
          width: 16.0rem;
          height: 28.4rem;

          .technology_img {
            width: 16.0rem;
            height: 9.4rem;
          }

          .technology_text_area {
            width: 16.0rem;
            height: 19.0rem;
            padding: 1.0rem 1.0rem 0 1.0rem;

            .technology_title {
              font-size: 1.6rem;
              line-height: calc(24 / 18);
              height: 4.1rem;
              /* 2行目のみ表示し、3行目以降省略 */
              /* -webkit-line-clamp: 2; */
              margin-bottom: 1.3rem;
            }

            .technology_text {
              /* 5行目まで表示し6行目以降は省略する */
              -webkit-line-clamp: 5;
            }
          }
        }

        &.ac_list {
          opacity: 0;
          visibility: hidden;
          display: none;

          &.is-open {
            opacity: 1;
            visibility: visible;
            display: flex;
          }
        }
      }


      .all_button_space {
        width: 100%;
        height: 6.0rem;
        text-align: center;
        margin-top: 3.0rem;

        .all_button {
          width: 24.0rem;
          height: 6.0rem;
          border-radius: 1.0rem;
          font-size: 1.6rem;
          color: #FFFFFF;
          line-height: calc(60 / 16);
          background-color: #26A64D;
          text-align: center;
        }
      }
    }

    /* メルマガ会員登録 */
    .mail_sec {
      padding-top: 5.0rem;
      padding-bottom: 5.0rem;

      .mail_sec_title {
        font-size: 3.0rem;
        line-height: calc(46 / 30);
        margin-bottom: 3.0rem;
        display: flex;
        align-items: center;
        justify-content: center;

        /* タイトル前の斜め棒 */
        &::before {
          height: 0;
          width: 0;
        }

        &::after {
          height: 0;
          width: 0;
        }
      }

      .mail_info_list {
        gap: 0 1.5rem;
        flex-wrap: wrap;
        margin-bottom: 4.0rem;

        li {
          width: 17.0rem;
          height: 17.0rem;

          .info_text {
            line-height: calc(30 / 16);
          }
        }
      }

      .mail_entry {
        width: 35.5rem;
      }
    }

    /* 会社情報 */
    .company_info_sec {
      padding-top: 5.0rem;
      padding-bottom: 3.6rem;

      .company_info {
        display: block;

        .info_img {
          display: block;
          width: 35.5rem;
          height: 24.0rem;
          margin: 0 auto 1.4rem auto;
        }

        .info_list {
          width: 35.5rem;
          margin: 0 auto;

          dt {
            width: 10.8rem;

            &.about_link_space {
              width: 0;
            }
          }

          dd {
            width: calc(100% - 10.8rem);

            &.about_link_space {
              width: 100%;
              text-align: center;
              margin-top: 4.3rem;

              .about_link {
                display: inline-block;
                width: 24.0rem;
                height: 5.8rem;
                border-radius: 1.0rem;
                background-color: #26A64D;
                font-weight: 600;
                font-size: 1.6rem;
                color: #FFFFFF;
                line-height: calc(58 / 16);
                text-align: center;
                margin-top: 1.5rem;
              }
            }
          }
        }
      }
    }

    /* リンクエリア */
    .link_sec {
      padding-top: 4.0rem;
      padding-bottom: 4.0rem;

      .link_space {
        width: 14.0rem;
        height: 12.0rem;
        display: block;
        align-items: center;
        text-align: center;
        padding-top: 2.0rem;
        padding-bottom: 2.0rem;

        .link_text {
          margin-top: 1.0rem;
          font-size: 1.6rem;
          line-height: calc(24 / 16);
        }
      }
    }
  }

  /* sp_navエリア */
  .sp_nav_flex {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr 1fr;
    position: fixed;
    bottom: 0;
    z-index: 10;
    width: 100%;
  }

  .sp_nav_link {
    font-size: 1.3rem;
    font-weight: 600;
    height: 6rem;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: #03A64D;
    color: #fff;
  }

  .member_registration_btn {
    background-color: #fff;
    color: #03A64D;
    border: 0.1rem solid #03A64D;
  }

  .header_contact_btn {
    background-color: #F1FAF2;
    color: #03A64D;
  }

  .my_page_btn {
    background-color: #FFA700;
  }

  /* 修正 */
  .technology_img_edit {
    height: 9.4rem !important;
    width: 16rem !important;
  }

  .technology_img_edit02 {
    height: 9.4rem !important;
    width: 16rem !important;
  }

  .technology_textarea_edit {
    width: auto !important;
    height: auto !important;
  }

  .list_techarea_edit {
    width: 16rem !important;
  }

  .technology_list_edit {
    gap: 2rem !important;
  }

  .technology_field {
    width: 100%;
    margin: 0 auto;
  }

  .technology_field_title {
    text-align: center;
  }

  .top_btn_wrap {
    margin-top: 3rem;
    display: flex;
    justify-content: center;
  }

  .top_custom_btn {
    background-color: #26A64D;
    border-radius: 1rem;
    width: 24rem;
    height: 6rem;
    display: inline-block;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
    font-size: 1.6rem;
    color: #fff;
  }

}