@charset "UTF-8";

/* Scss Document */
/* -------------------------------------------------- */
/* file   : index.css                                  */
/* update : 2024                                      */
/* -------------------------------------------------- */
/* -------------------------------------------------- */
/* pc向け */
/* --------------------------------------------------- */
:root {
  --main-blue: #006EFF;
}

.l-inner {
  max-width: 82.4vw;
  margin: 0 auto;
}

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

  .l-inner {
    max-width: 100%;
    margin: 0;
    padding: 0 4.8vw;
  }
}


/* mv */
.index-mv {
  .slick-slide{
    height: auto!important;
    -webkit-backface-visibility: hidden;
    -webkit-transform-style: preserve-3d;
  }
  .slick-arrow {
    width: 3.51vw;
    height: 3.51vw;
    position: absolute;
    bottom: 5.86vw;
    z-index: 1;
    display: block;
    text-indent: -731.991vw;
    overflow: hidden;
    background: url(../../common/img/top/mv_arrow02.svg) no-repeat center/100% auto;
  }

  .slick-prev {
    right: 14.06vw;
    transform: rotate(180deg);
  }

  .slick-next {
    right: 8.78vw;
  }

  .slick-dots {
    display: flex;
    justify-content: center;

    gap: 0 0.586vw;
    position: absolute;
    right: 12.3vw;
    bottom: 4.17vw;
    z-index: 3;

    & li {
      width: 0.586vw;
      height: 0.586vw;
      border-radius: 50%;
      overflow: hidden;

      &.slick-active {
        button {
          background: #FFF;
        }
      }
    }

    & button {
      width: 100%;
      height: 100%;
      background-color: transparent;
      border: none;
      cursor: pointer;
      outline: none;
      padding: 0;
      appearance: none;
      border-radius: 50%;
      text-indent: -731.991vw;
      display: block;
      background: rgba(255, 255, 255, 0.4);
    }
  }
}

.index-mv_item {
  position: relative;
}

.index-mv_textarea {
  width: 82.43vw;
  position: absolute;
  top: 46.5%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 1;
}

.index-mv_textarea--white {
  color: #FFF;

  .index-mv_link {
    & a {
      color: #FFF;

      &::after {
        background: url(../../common/img/top/mv_arrow.svg) no-repeat center/100% auto;
      }
    }
  }
}

.index-mv_ttl {
  width: 40.41vw;
  margin-left: -2.42vw;
  pointer-events: none;
}

.index-mv_bold {
  font-size: 2.855vw;
  font-weight: 700;
  letter-spacing: 0.05em;
  line-height: 1.43;
  pointer-events: none;
}

.index-mv_text {
  width: 35.8vw;
  margin-top: 1.4vw;
  font-size: 1.318vw;
  font-weight: 700;
  letter-spacing: 0.05em;
  line-height: 1.5;
  pointer-events: none;
}

.index-mv_btns {
  margin-top: 2.2vw;
  display: flex;
  gap: 0 1.025vw;
}

.index-mv_btn {
  width: 17.42vw;

  & a {
    padding: 1.464vw 0;
    font-size: 1.171vw;
    font-weight: 700;
    color: #FFF;
    text-align: center;
    display: block;
    transition: 0.3s;

    @media screen and (min-width: 768px) {
      &:hover {
        opacity: 0.8;
      }
    }
  }
}

.index-mv_btn--blue {
  & a {
    background: var(--main-blue);
  }
}

.index-mv_btn--orange {
  & a {
    background: #FF6E00;
  }
}

.index-mv_link {
  margin-top: 2.562vw;

  & a {
    padding-right: 1.903vw;
    font-size: 1.171vw;
    font-weight: 700;
    letter-spacing: 0.05em;
    display: inline-block;
    position: relative;

    @media screen and (min-width: 768px) {
      &:hover {
        opacity: 0.8;
      }
    }

    &::after {
      content: "";
      width: 0.439vw;
      height: 0.878vw;
      display: block;
      background: url(../../common/img/top/mv_arrow_b.svg) no-repeat center/100% auto;
      position: absolute;
      top: 50%;
      right: 0;
      transform: translateY(-50%);
    }
  }
}

.index-mv_batch {
  width: 9.88vw;
  position: absolute;
  top: 6vw;
  right: 8.27vw;
  z-index: 1;
  pointer-events: none;
}

.index-mv_img {
  width: 100%;
  height: auto;
  pointer-events: none;
}

@media screen and (max-width: 767px) {

  /* mv */
  .index-mv {
    .slick-arrow {
      display: none !important;
    }

    .slick-dots {
      gap: 0 2.13vw;
      right: 7.2vw;
      bottom: 5.33vw;

      & li {
        width: 2vw;
        height: 2vw;
      }
    }
  }

  .index-mv_item {}

  .index-mv_textarea {
    width: auto;
    top: auto;
    bottom: 9.4vw;
    left: 4.8vw;
    transform: translate(0, 0);
    z-index: 1;
  }

  .index-mv_ttl {
    width: 73.6vw;
    margin-left: -4.8vw;
  }

  .index-mv_bold {
    font-size: 5.87vw;
    line-height: 1.45;
  }

  .index-mv_text {
    width: 64vw;
    margin-top: 2.4vw;
    font-size: 3.2vw;
    letter-spacing: 0;
    line-height: 1.5;
  }

  .index-mv_btns {
    width: 64vw;
    margin-top: 5.2vw;
    gap: 0 1.025vw;
  }

  .index-mv_btn {
    width: 30.93vw;

    & a {
      padding: 4vw 0;
      font-size: 2.67vw;
    }
  }

  .index-mv_link {
    margin-top: 4.9vw;

    & a {
      padding-right: 2.8vw;
      font-size: 3.2vw;

      &::after {
        width: 1.07vw;
        height: 2.13vw;

      }
    }
  }

  .index-mv_batch {
    width: 18vw;
    position: absolute;
    top: 64.67vw;
    right: 3.47vw;
    z-index: 1;
  }
}



/* index-service */
.index-service {
  padding: 8.9vw 0;
  background: #F5F5F5;
}

.index-service_ttl {
  text-align: center;
}

.index-service_ttl-en {
  font-family: din-2014, sans-serif;
  font-weight: 800;
  font-style: italic;
  font-size: 2.343vw;
  color: var(--main-blue);
  display: block;
}

.index-service_ttl-ja {
  margin-top: 1.6vw;
  font-size: 2.928vw;
  font-weight: 700;
  line-height: 1.45;
  letter-spacing: 0.05em;
  display: block;
}

.index-service_flex {
  margin: 53px auto 0;
  display: flex;
  justify-content: center;
  gap: 0 3.81vw;
}

.index-service_item {
  width: 34.7vw;
  background: #FFF;
  position: relative;
  box-shadow: 0 0 16px rgba(0, 0, 0, 0.16);
}

.index-service_img {}

.index-service_textarea {
  padding: 0 1.391vw 2.123vw;
}

.index-service_batch {
  width: 6.589vw;
  position: absolute;
  top: 14vw;
  right: 1.464vw;
}

.index-service_sttl {
  max-width: 63.53%;
}

.index-service_bold {
  margin-top: 0.6vw;
  padding: 0 1vw;
  font-size: 1.464vw;
  font-weight: 700;
  letter-spacing: 0.05em;
}

.index-service_text {
  margin-top: 1vw;
  padding: 0 1vw;
  font-size: 1.171vw;
  letter-spacing: 0.05em;
}

.index-service_arrow {
  width: 2.489vw;
  position: absolute;
  bottom: 1.464vw;
  right: 1.464vw;
}

@media screen and (max-width: 767px) {

  /* index-service */
  .index-service {
    padding: 14vw 0;
  }

  .index-service_ttl {}

  .index-service_ttl-en {
    font-size: 4.27vw;
  }

  .index-service_ttl-ja {
    margin-top: 2.13vw;
    font-size: 5.87vw;
    line-height: 1.45;
  }

  .index-service_flex {
    margin: 10.67vw auto 0;
    flex-direction: column;
    gap: 10.67vw 0;
  }

  .index-service_item {
    width: 100%;
  }

  .index-service_img {}

  .index-service_textarea {
    padding: 0 1.391vw 4.67vw;
  }

  .index-service_batch {
    width: 17.07vw;
    top: 36.8vw;
    right: 3.73vw;
  }

  .index-service_sttl {
    max-width: 63.53%;
  }

  .index-service_bold {
    margin-top: 0.6vw;
    padding: 0 4.33vw;
    font-size: 4.27vw;
  }

  .index-service_text {
    margin-top: 3.07vw;
    padding: 0 4.33vw;
    font-size: 3.73vw;
  }

  .index-service_arrow {
    width: 6.4vw;
    bottom: 3.73vw;
    right: 3.73vw;
  }
}


/* index-introduction */
.index-introduction {
  padding: 8.9vw 0;
}

.index-introduction_ttl {
  font-size: 2.928vw;
  font-weight: 700;
  letter-spacing: 0.05em;
  line-height: 1.45;
  text-align: center;
}

.index-introduction_note {
  margin-top: 1.464vw;
  font-size: 0.878vw;
  text-align: center;
}

.index-introduction_slider01 {
  margin-top: 3.294vw;
}

.index-introduction_slider_item {
  width: 147.804vw;
  margin-left: -6.955vw;
}

@media screen and (max-width: 767px) {

  /* index-introduction */
  .index-introduction {
    padding: 15.9vw 0 16vw;
  }

  .index-introduction_ttl {
    font-size: 5.87vw;
    line-height: 1.45;
  }

  .index-introduction_note {
    margin-top: 3.2vw;
    font-size: 2.67vw;
  }

  .index-introduction_slider01 {
    margin-top: 10.67vw;
  }

  .index-introduction_slider_item {
    width: 379.73vw;
    margin-left: -15.33vw;
  }
}



/* contact-section */
.top .contact-section .inner {
  justify-content: center;
}

.top .contact-section .btn-contact {
  margin-bottom: 0;
}

@media screen and (max-width: 767px) {
  .top .contact-section .inner {
    padding: 8.33vw 4.8vw 7.2vw;
    text-align: center;
  }

  .top .contact-section .ttl-h2 {
    margin-bottom: 4.2vw;
  }

  .top .contact-section .btn-contact {
    height: 19.2667vw;
  }
}


/* case-section */
.case-section_en {
  margin-bottom: 2.171vw;
  font-family: din-2014, sans-serif;
  font-weight: 800;
  font-style: italic;
  font-size: 2.343vw;
  color: var(--main-blue);
  display: block;
}

.casestudy_options {
  display: flex;
  align-items: center;
  gap: 0 1.17vw;
}

.main-cat {
  width: 7.47vw;

  & a {
    height: auto !important;
    padding: 8px 0 10px;
    font-size: 1.02vw;
    font-weight: 700;
    text-align: center;
    letter-spacing: 0;
    color: #FFF;
    display: block;
    background: var(--main-blue);
    position: static !important;
  }
}

.top .case-section {
  padding-top: 9.1vw;
  padding-bottom: 6.5vw;
}

@media screen and (max-width: 767px) {
  .top .case-section {
    padding-top: 13.33vw;
    padding-bottom: 16.8vw;
  }

  .case-section_en {
    margin-bottom: 2.13vw;
    font-size: 4.27vw;
  }

  .casestudy_options {
    display: flex;
    align-items: center;
    gap: 0 16px;
  }

  .main-cat {
    width: 66px;

    & a {
      padding: 4px 0 5px;
      font-size: 10px;
    }
  }
}

.top .case-section .ttl-h2 {
  margin-bottom: 3.6603221083vw;
}

@media screen and (max-width: 767px) {
  .top .case-section .ttl-h2 {
    margin-bottom: 5.3333333333vw;
  }
}

.top .case-section .inner {
  padding: 0;
}

.top .case-section .btn-wrap {
  margin: 0;
  position: absolute;
  top: 5.5vw;
  right: 0;
}

@media screen and (max-width: 767px) {
  .top .case-section .btn-wrap {
    margin-top: 10.6666666667vw;
    position: static;
  }
}

/* .top .case-section .swiper-container-autoheight .swiper-wrapper {
  height: 34vw !important;
} */

@media screen and (max-width: 767px) {
  /* .top .case-section .swiper-container-autoheight .swiper-wrapper {
    min-height: 340px !important;
  } */
}

.top .case-section .swiper {
  width: calc(100vw - (100vw - 82.4304538799vw) / 2);
}

.top .case-section .swiper-slide {
  width: 33.6749633968vw;
}

@media screen and (min-width: 768px) {
  .top .case-section .swiper-slide {
    padding-right: 4.7584187408vw;
  }
}

@media screen and (max-width: 767px) {
  .top .case-section .swiper-slide {
    flex-basis: 82.6666666667vw;
    max-width: 82.6666666667vw;
    margin-right: 5.6vw;
  }
}

.top .case-section .swiper-slide .slide_inner {
  position: relative;
}

.top .case-section .swiper-slide a.slide_link {
  width: 100%;
  height: 100%;
  display: block;
  position: absolute;
  top: 0;
  left: 0;
}

.top .case-section .swiper-slide a.slide_link:hover {
  background: rgba(255, 255, 255, 0.2);
}

.top .case-section .swiper-slide .img-wrap {
  width: 100%;
  height: 22.1815519766vw;
  margin-bottom: 2.196193265vw;
}

@media screen and (max-width: 767px) {
  .top .case-section .swiper-slide .img-wrap {
    height: 54.2666666667vw;
    margin-bottom: 4.6666666667vw;
  }
}

.top .case-section .swiper-slide .img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  -o-object-fit: cover;
  object-position: center;
  -o-object-position: center;
}

.top .case-section .swiper-slide .sub-ttl {
  font-size: 1.317715959vw;
  line-height: 1.2;
  font-weight: bold;
  font-weight: 700;
  display: block;
  margin-bottom: 0.7320644217vw;
  /*
      @note 1行で収まるようにする
      */
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

@media screen and (max-width: 767px) {
  .top .case-section .swiper-slide .sub-ttl {
    font-size: 3.7333333333vw;
    margin-bottom: 1.3333333333vw;
  }
}

.top .case-section .swiper-slide .ttl {
  font-size: 2.0497803807vw;
  line-height: 1.3;
  color: #006eff;
  font-weight: bold;
  font-weight: 700;
  margin-bottom: 1.0980966325vw;
}

@media screen and (max-width: 767px) {
  .top .case-section .swiper-slide .ttl {
    font-size: 5.0666666667vw;
    margin-bottom: 2vw;
  }
}

.top .case-section .swiper-slide .category-list {
  display: flex;
}

.top .case-section .swiper-slide .category-list-item {
  font-size: 0.878477306vw;
  display: flex;
  align-items: center;
  margin-right: 1.4641288433vw;
}

@media screen and (max-width: 767px) {
  .top .case-section .swiper-slide .category-list-item {
    font-size: 10px;
    margin-right: 10px;
  }
}

.top .case-section .swiper-slide .category-list-item:before {
  content: "";
  width: 0.8052708638vw;
  height: 0.8052708638vw;
  margin-right: 0.3660322108vw;
  background-image: url(../img/icon-case.svg);
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center center;
}

@media screen and (max-width: 767px) {
  .top .case-section .swiper-slide .category-list-item:before {
    width: 8px;
    height: 8px;
    margin-top: 1px;
    margin-right: 4px;
  }
}

.top .case-section .swiper-slide .category-list-item:last-child {
  margin-right: 0;
}

.top .case-section .swiper-slide .category-list-item:last-child:before {
  width: 0.5856515373vw;
  background-image: url(../img/icon-address2.svg);
}

@media screen and (max-width: 767px) {
  .top .case-section .swiper-slide .category-list-item:last-child:before {
    width: 7px;
  }
}

.top .case-section .swiper-container-horizontal {
  padding-bottom: 80px;
}

@media screen and (max-width: 767px) {
  .top .case-section .swiper-container-horizontal {
    padding-bottom: 0;
  }
}

.top .case-section .swiper-container-horizontal>.swiper-pagination-progressbar,
.top .case-section .swiper-pagination-progressbar.swiper-pagination-horizontal {
  bottom: 0;
  top: auto;
  width: calc(100% - 10vw);
  margin-left: 10vw;
}

@media screen and (max-width: 767px) {

  .top .case-section .swiper-container-horizontal>.swiper-pagination-progressbar,
  .top .case-section .swiper-pagination-progressbar.swiper-pagination-horizontal {
    display: none;
  }
}

.top .case-section .swiper-pagination-progressbar .swiper-pagination-progressbar-fill {
  background-color: #006eff;
}


/* index-document-request */
.index-document-request {
  padding-bottom: 8.785vw;
}

.index-document-request_inner {
  padding-top: 4vw;
  padding-bottom: 4.026vw;
  background: var(--main-blue);
}

.index-document-request_bold {
  font-size: 2vw;
  font-weight: 700;
  letter-spacing: 0.05em;
  color: #FFF;
  text-align: center;
}

.index-document-request_btn {
  max-width: 30.015vw;
  margin: 2.5vw auto 0;

  & a {
    padding: 2.1vw 0;
    display: block;
    font-size: 1.318vw;
    font-weight: 700;
    text-align: center;
    color: var(--main-blue);
    background: #FFF;
    transition: 0.3s;

    @media screen and (min-width: 768px) {
      &:hover {
        opacity: 0.8;
      }
    }
  }
}


/* index-recruit */
.index-recruit {}

.index-recruit_inner {
  width: 100%;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.index-recruit_flex {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.index-recruit_l {
  width: 48.61vw;
}

.index-recruit_r {
  width: 30.01vw;
}

.index-recruit_bold {
  font-size: 2vw;
  font-weight: 700;
  letter-spacing: 0.05em;
  color: #FFF;
}

.index-recruit_text {
  margin-top: 0.732vw;
  font-size: 1.318vw;
  font-weight: 700;
  letter-spacing: 0.05em;
  line-height: 1.77;
  color: #FFF;
}

.index-recruit_btn {
  margin-top: 1.684vw;

  & a {
    padding: 2vw 0;
    font-size: 1.171vw;
    font-weight: 700;
    color: var(--main-blue);
    text-align: center;
    display: block;
    background: #FFF;
    position: relative;
    transition: 0.3s;

    @media screen and (min-width: 768px) {
      &:hover {
        opacity: 0.8;
      }
    }

    &::after {
      content: "";
      width: 0.44vw;
      height: 0.95vw;
      display: block;
      background: url(../../common/img/top/recruit_arrow.svg) no-repeat center/100% auto;
      position: absolute;
      top: 50%;
      right: 2.64vw;
      transform: translateY(-50%);
    }
  }
}

.index-recruit_bg {
  width: 100%;
  height: auto;
}

@media screen and (max-width: 767px) {

  /* index-recruit */
  .index-recruit {
    padding: 0;
  }

  .index-recruit_inner {
    width: 100%;
    top: 0;
    left: 0;
    transform: translate(0, 0);
  }

  .index-recruit_flex {
    display: block;
  }

  .index-recruit_l {
    width: 73.2vw;
    margin: 21.6vw auto 0;
  }

  .index-recruit_r {
    width: 100%;
    margin: 27.87vw auto 0;
  }

  .index-recruit_bold {
    padding: 0 7vw;
    font-size: 5.07vw;
  }

  .index-recruit_text {
    margin-top: 2.13vw;
    padding: 0 7vw;
    font-size: 3.73vw;
    line-height: 1.71;
  }

  .index-recruit_btn {
    margin-top: 7.07vw;

    & a {
      padding: 7.07vw 0;
      font-size: 3.73vw;

      &::after {
        width: 1.2vw;
        height: 2.53vw;
        right: 8.93vw;

      }
    }
  }

  .index-recruit_bg {
    width: 100%;
    height: auto;
  }
}