@charset "utf-8";

/* ↓↓↓ fv ↓↓↓ */
.fv {
  width: 100%;
  height: 100vh;
  height: 100svh;
  min-height: 39.0625vw;
  padding-top: 10rem;

  .block {
    position: relative;
    width: 100%;
    height: 100%;
  }

  .slide_area {
    position: relative;
    width: 100%;
    height: 100%;

    .splide,
    .splide__track {
      position: relative;
      width: 100%;
      height: 100%;
    }

    .splide__slide {
      width: 100%;
      height: 100%;
      overflow: hidden;

      img {
        object-fit: cover;
        object-position: center;
        height: 100%;
      }
    }

    .splide__slide.is-active {
      img {
        animation: zoomFade 4s ease-in-out forwards;
      }
    }

    .splide__slide.is-prev,
    .splide__slide {

      img {
        transform: scale(1.05);
      }
    }
  }

  .fv_copy {
    position: absolute;
    translate: 0 -50%;
    top: 50%;
    left: 7.4rem;
    width: 46.4rem;
  }
}

@keyframes zoomFade {
  0% {
    transform: scale(1);
  }

  100% {
    transform: scale(1.05);
  }
}

@media screen and (max-width: 768px) {
  .fv {
    height: calc(100vh - 5rem);
    height: calc(100svh - 5rem);
    padding-top: 7.2rem;

    .fv_copy {
      left: 1rem;
      width: 28.3rem;
    }
  }
}

/* ↑↑↑ fv ↑↑↑ */

/* ↓↓↓ news ↓↓↓ */
.news {
  padding: 7.2rem 8.4rem 8rem;

  .block {
    display: flex;
    justify-content: space-between;
  }

  .block_ttl {
    position: relative;

    .en {
      position: relative;
      font-family: var(--font-poppins);
      font-size: max(10px, 1.6rem);
      font-weight: 500;
      color: var(--cosmos-blue);
      transition: color 0.3s ease;

      &::before {
        content: '';
        position: absolute;
        top: -1rem;
        left: -1.3rem;
        width: 3rem;
        height: 3rem;
        background: url(/wp/wp-content/themes/cosmos-cpo/img/common/en_circle_blue.png) no-repeat;
        background-size: cover;
        z-index: -1;
      }
    }

    .ttl {
      position: relative;
      width: max-content;
      font-size: 3.8rem;
      font-weight: 700;
      letter-spacing: 0.05em;
      line-height: 1.2;
    }
  }

  .more-btn {
    position: relative;
    display: grid;
    place-content: center;
    min-width: 20rem;
    width: max-content;
    height: 4.4rem;
    border-radius: 4.4rem;
    background-color: #fff;
    border: 1px solid #D0DEE5;
    margin-left: auto;
    font-size: max(10px, 1.3rem);
    font-weight: 500;
    letter-spacing: 0.1em;
    color: var(--cosmos-blue);
    padding: 0 4.2rem 0 2.4rem;
    transition: color 0.3s ease, background-color 0.3s ease, border 0.3s ease;

    &::after {
      content: '';
      position: absolute;
      translate: 0 -50%;
      top: 50%;
      right: 2rem;
      width: 0.6rem;
      height: 1rem;
      mask-image: url(/wp/wp-content/themes/cosmos-cpo/img/common/more_arrow.svg);
      mask-size: contain;
      mask-repeat: no-repeat;
      background-color: var(--cosmos-blue);
      transition: background-color 0.3s ease;
    }
  }

  @media screen and (min-width: 769px) {
    .more-btn:hover {
      background-color: var(--cosmos-blue);
      border: 1px solid var(--cosmos-blue);
      color: #fff;

      &::after {
        background-color: #fff;
      }
    }
  }

  .list {
    width: 83rem;
    margin-top: 2.4rem;

    .item {
      position: relative;
      overflow: hidden;

      &::before {
        content: '';
        position: absolute;
        translate: -50% 0;
        bottom: 0;
        left: 0;
        width: 200%;
        height: 1px;
        background: #F0F0F0;
        background: linear-gradient(90deg, rgba(88, 199, 255, 1) 0%, rgba(88, 199, 255, 1) 50%, rgba(240, 240, 240, 1) 49%, rgba(240, 240, 240, 1) 100%);
        transition: translate 0.6s ease;
      }
    }

    a {
      position: relative;
      display: block;
      padding: 2.4rem 5.4rem 2.4rem 1rem;

      &::before {
        content: '';
        position: absolute;
        translate: 0 -50%;
        top: 50%;
        right: 1rem;
        width: 2.4rem;
        height: 2.4rem;
        border-radius: 50%;
        background-color: #E7F4FA;
      }

      &::after {
        content: '';
        position: absolute;
        translate: 0 -50%;
        top: 50%;
        right: 1.8rem;
        width: 0.6rem;
        height: 1rem;
        mask-image: url(/wp/wp-content/themes/cosmos-cpo/img/common/more_arrow.svg);
        mask-size: contain;
        mask-repeat: no-repeat;
        background-color: var(--cosmos-blue);
        transition: background-color 0.3s ease;
      }

      .news_info {
        display: flex;
        gap: 1.4rem;

        .date {
          font-family: var(--font-figtree);
          font-size: max(10px, 1.4rem);
          font-weight: 500;
          color: #8B8B8B;
        }

        .cate {
          font-size: max(10px, 1.2rem);
          color: var(--cosmos-blue);
          transition: color 0.3s ease;
        }
      }

      .news_text {
        text-align: justify;
        word-break: break-all;
        font-size: max(10px, 1.3rem);
        font-weight: 500;
        transition: color 0.3s ease;
      }
    }

    @media screen and (min-width: 769px) {
      .item:hover {

        &::before {
          translate: 0 0;
        }

        a {
          &::after {
            background-color: #58C7FF;
          }
        }

        .news_info {
          .cate {
            color: #58C7FF;
          }
        }

        .news_text {
          color: #646464;
        }
      }
    }
  }
}

@media screen and (max-width: 768px) {
  .news {
    padding: 6rem 2rem 6.4rem;

    .block {
      display: block;
    }

    .block_ttl {
      .en {
        &::before {
          left: -1.3rem;
        }
      }

      .ttl {
        font-size: 2.8rem;
      }
    }

    .content {
      display: flex;
      flex-direction: column-reverse;
    }

    .more-btn {
      min-width: 22rem;
      height: 4.6rem;
      border-radius: 4.6rem;
      margin: 3.8rem auto 0;
      font-size: 1.5rem;
    }

    .list {
      width: 100%;
      margin-top: 0.4rem;

      .item {
        position: relative;
        overflow: hidden;

        &::before {
          content: '';
          position: absolute;
          translate: -50% 0;
          bottom: 0;
          left: 0;
          width: 200%;
          height: 1px;
          background: #F0F0F0;
          background: linear-gradient(90deg, rgba(88, 199, 255, 1) 0%, rgba(88, 199, 255, 1) 50%, rgba(240, 240, 240, 1) 49%, rgba(240, 240, 240, 1) 100%);
          transition: translate 0.6s ease;
        }
      }

      a {
        padding: 2rem 3.5rem 2rem 0;

        &::before {
          right: 0;
        }

        &::after {
          right: 0.8rem;
        }

        .news_info {
          display: flex;
          gap: 1.4rem;

          .date {
            font-family: var(--font-figtree);
            font-size: 1.4rem;
            font-weight: 500;
            color: #8B8B8B;
          }

          .cate {
            font-size: max(10px, 1.2rem);
            color: var(--cosmos-blue);
            transition: color 0.3s ease;
          }
        }

        .news_text {
          text-align: justify;
          word-break: break-all;
          font-size: max(10px, 1.3rem);
          font-weight: 500;
          transition: color 0.3s ease;
        }
      }

      @media screen and (min-width: 769px) {
        .item:hover {

          &::before {
            translate: 0 0;
          }

          a {
            &::after {
              background-color: #58C7FF;
            }
          }

          .news_info {
            .cate {
              color: #58C7FF;
            }
          }

          .news_text {
            color: #646464;
          }
        }
      }
    }
  }
}

/* ↑↑↑ news ↑↑↑ */

/* ↓↓↓ service ↓↓↓ */
.service {
  background-color: #F7F9FA;
  padding: 8.7rem 8.4rem 10rem;

  .block_ttl {
    position: relative;

    .en {
      position: relative;
      font-family: var(--font-poppins);
      font-size: max(10px, 1.6rem);
      font-weight: 500;
      color: var(--cosmos-blue);
      transition: color 0.3s ease;

      &::before {
        content: '';
        position: absolute;
        top: -1rem;
        left: -1.3rem;
        width: 3rem;
        height: 3rem;
        background: url(/wp/wp-content/themes/cosmos-cpo/img/common/en_circle_blue.png) no-repeat;
        background-size: cover;
        z-index: -1;
      }
    }

    .ttl {
      position: relative;
      width: max-content;
      font-size: 3.8rem;
      font-weight: 700;
      letter-spacing: 0.05em;
      line-height: 1.2;
    }
  }

  .intro_group {
    display: flex;
    justify-content: space-between;
    margin-top: 1.6rem;

    .text {
      font-weight: 500;
    }
  }

  .more-btn {
    position: relative;
    display: grid;
    place-content: center;
    min-width: 20rem;
    width: max-content;
    height: 4.4rem;
    border-radius: 4.4rem;
    background-color: #fff;
    border: 1px solid #D0DEE5;
    margin-left: auto;
    font-size: max(10px, 1.3rem);
    font-weight: 500;
    letter-spacing: 0.1em;
    color: var(--cosmos-blue);
    padding: 0 2.4rem;
    transition: color 0.3s ease, background-color 0.3s ease, border 0.3s ease;

    &::after {
      content: '';
      position: absolute;
      translate: 0 -50%;
      top: 50%;
      right: 2rem;
      width: 0.6rem;
      height: 1rem;
      mask-image: url(/wp/wp-content/themes/cosmos-cpo/img/common/more_arrow.svg);
      mask-size: contain;
      mask-repeat: no-repeat;
      background-color: var(--cosmos-blue);
      transition: background-color 0.3s ease;
    }
  }

  @media screen and (min-width: 769px) {
    .more-btn:hover {
      background-color: var(--cosmos-blue);
      border: 1px solid var(--cosmos-blue);
      color: #fff;

      &::after {
        background-color: #fff;
      }
    }
  }

  .content {
    margin-top: 3.2rem;

    .list {
      display: flex;
      gap: 1.6rem;
    }

    .item {
      width: calc((100% - 1.6rem * 2) / 3);
      overflow: hidden;
      border-radius: 2rem;
      border: 1px solid #DDDDDD;
      background-color: #fff;
      transition: background-color 0.3s ease;

      a {
        display: flex;
        flex-direction: column;
        height: 100%;
      }
    }

    .image {
      overflow: hidden;

      img {
        transition: scale 0.3s ease;
      }
    }

    .text_group {
      flex-grow: 1;
      position: relative;
      padding: 2.4rem 3.2rem 6.4rem;

      .page_ttl {
        font-size: 1.8rem;
        font-weight: 700;
        letter-spacing: 0;
        margin-bottom: 1.4rem;
        transition: color 0.3s ease;
      }

      .text {
        font-weight: 500;
        transition: color 0.3s ease;
      }

      .more {
        position: absolute;
        right: 3.2rem;
        bottom: 2.4rem;
        width: max-content;
        font-size: max(10px, 1.3rem);
        font-weight: 500;
        color: var(--cosmos-blue);
        letter-spacing: 0.1em;
        padding-right: 3rem;

        &::before {
          content: '';
          position: absolute;
          translate: 0 -50%;
          top: 50%;
          right: 0;
          width: 2.4rem;
          height: 2.4rem;
          border-radius: 50%;
          background-color: #E7F4FA;
        }

        &::after {
          content: '';
          position: absolute;
          translate: 0 -50%;
          top: 50%;
          right: 0.8rem;
          width: 0.6rem;
          height: 1rem;
          mask-image: url(/wp/wp-content/themes/cosmos-cpo/img/common/more_arrow.svg);
          mask-size: contain;
          mask-repeat: no-repeat;
          background-color: var(--cosmos-blue);
          transition: background-color 0.3s ease;
        }
      }
    }

    @media screen and (min-width: 769px) {
      .item:hover {
        background-color: #E7F4FA;

        .image {
          img {
            scale: 1.05;
          }
        }

        .text_group {

          .page_ttl {
            color: #646464;
          }

          .text {
            color: #8B8B8B;
          }
        }
      }
    }
  }
}

@media screen and (max-width: 768px) {
  .service {
    padding: 7.2rem 2rem 6.4rem;

    .block_ttl {
      .en {
        &::before {
          left: -1.3rem;
        }
      }

      .ttl {
        font-size: 2.8rem;
      }
    }

    .intro_group {
      display: block;
      margin-top: 2.4rem;
    }

    .more-btn {
      min-width: 22rem;
      height: 4.6rem;
      border-radius: 4.6rem;
      margin: 3.2rem auto 0;
      font-size: 1.5rem;
    }

    .content {
      margin-top: 4.8rem;

      .list {
        flex-direction: column;
      }

      .item {
        width: 100%;
        border-radius: 1rem;
      }

      .text_group {
        padding: 2.4rem 2rem 6.4rem;

        .more {
          right: 2rem;
          font-size: 1.5rem;
          padding-right: 3rem;
        }
      }

    }
  }
}

/* ↑↑↑ service ↑↑↑ */

/* ↓↓↓ works ↓↓↓ */
.works {
  background-color: #E2F1F8;

  .block {
    display: flex;

    .intro_group {
      padding: 7.4rem 6.4rem 6.7rem 8.4rem;


      .text {
        font-weight: 500;
        margin-top: 2.4rem;
        transition: color 0.3s ease;
      }
    }

    .more-btn {
      position: relative;
      width: max-content;
      margin-top: 2.6rem;
      margin-left: auto;
      font-size: max(10px, 1.3rem);
      font-weight: 500;
      letter-spacing: 0.1em;
      color: var(--cosmos-blue);
      padding: 0 3rem 0 0;
      transition: color 0.3s ease;

      &::before {
        content: '';
        position: absolute;
        translate: 0 -50%;
        top: 50%;
        right: 0;
        width: 2.4rem;
        height: 2.4rem;
        border-radius: 50%;
        background-color: #fff;
      }

      &::after {
        content: '';
        position: absolute;
        translate: 0 -50%;
        top: 50%;
        right: 0.8rem;
        width: 0.6rem;
        height: 1rem;
        mask-image: url(/wp/wp-content/themes/cosmos-cpo/img/common/more_arrow.svg);
        mask-size: contain;
        mask-repeat: no-repeat;
        background-color: var(--cosmos-blue);
        transition: background-color 0.3s ease;
      }
    }

    .block_ttl {
      position: relative;

      .en {
        position: relative;
        font-family: var(--font-poppins);
        font-size: max(10px, 1.6rem);
        font-weight: 500;
        color: var(--cosmos-blue);
        transition: color 0.3s ease;

        &::before {
          content: '';
          position: absolute;
          top: -1rem;
          left: -1.3rem;
          width: 3rem;
          height: 3rem;
          background: url(/wp/wp-content/themes/cosmos-cpo/img/common/en_circle_blue.png) no-repeat;
          background-size: cover;
          z-index: -1;
        }
      }

      .ttl {
        position: relative;
        width: max-content;
        font-size: 3.8rem;
        font-weight: 700;
        letter-spacing: 0.05em;
        line-height: 1.2;
        transition: color 0.3s ease;
      }
    }

    .image {
      min-width: 72.6rem;
      width: 72.6rem;
      overflow: hidden;

      img {
        object-fit: cover;
        object-position: center;
        height: 100%;
        transition: scale 0.3s ease;
      }
    }
  }

  @media screen and (min-width: 769px) {
    .block:hover {

      .intro_group {
        .text {
          color: #8B8B8B;
        }
      }

      .more-btn {
        color: #58C7FF;

        &::after {
          color: #58C7FF;
        }
      }

      .block_ttl {

        .en {
          color: #58C7FF;
        }

        .ttl {
          color: #646464;
        }
      }

      .image {
        img {
          scale: 1.05;
        }
      }
    }
  }
}

@media screen and (max-width: 768px) {
  .works {

    .block {
      flex-direction: column-reverse;

      .intro_group {
        padding: 4rem 2rem 3.4rem;
      }

      .more-btn {
        width: max-content;
        margin-top: 2.6rem;
        font-size: 1.5rem;
        padding: 0 3rem 0 0;

        &::before {
          content: '';
          position: absolute;
          translate: 0 -50%;
          top: 50%;
          right: 0;
          width: 2.4rem;
          height: 2.4rem;
          border-radius: 50%;
          background-color: #fff;
        }

        &::after {
          content: '';
          position: absolute;
          translate: 0 -50%;
          top: 50%;
          right: 0.8rem;
          width: 0.6rem;
          height: 1rem;
          mask-image: url(/wp/wp-content/themes/cosmos-cpo/img/common/more_arrow.svg);
          mask-size: contain;
          mask-repeat: no-repeat;
          background-color: var(--cosmos-blue);
          transition: background-color 0.3s ease;
        }
      }

      .block_ttl {
        .en {

          &::before {
            left: -1.3rem;
          }
        }

        .ttl {
          font-size: 2.8rem;
        }
      }

      .image {
        min-width: initial;
        width: 100%;
      }
    }
  }
}

/* ↑↑↑ works ↑↑↑ */

/* ↓↓↓ infomation ↓↓↓ */
.infomation {
  padding: 9rem 8.4rem 10rem;

  .block_ttl {
    position: relative;

    .en {
      position: relative;
      font-family: var(--font-poppins);
      font-size: max(10px, 1.6rem);
      font-weight: 500;
      color: var(--cosmos-blue);
      transition: color 0.3s ease;

      &::before {
        content: '';
        position: absolute;
        top: -1rem;
        left: -1.3rem;
        width: 3rem;
        height: 3rem;
        background: url(/wp/wp-content/themes/cosmos-cpo/img/common/en_circle_blue.png) no-repeat;
        background-size: cover;
        z-index: -1;
      }
    }

    .ttl {
      position: relative;
      width: max-content;
      font-size: 3.8rem;
      font-weight: 700;
      letter-spacing: 0.05em;
      line-height: 1.2;
      transition: color 0.3s ease;
    }
  }

  .list {
    display: flex;
    flex-wrap: wrap;
    gap: 1.6rem;
    margin-top: 2.4rem;
  }

  .item {
    width: calc((100% - 1.6rem * 2) / 3);
    height: 10rem;
    border-radius: 2rem;
    border: 1px solid #D0DEE5;
    background-color: #F7F9FA;
    transition: background-color 0.3s ease, color 0.3s ease, border 0.3s ease;

    &.-long {
      width: calc((100% - 1.6rem)/ 2);
    }

    a {
      position: relative;
      display: grid;
      place-content: center left;
      font-size: 1.8rem;
      font-weight: 700;
      height: 100%;
      padding: 0 6.4rem 0 3.2rem;

      &::before {
        content: '';
        translate: 0 -50%;
        top: 50%;
        right: 2rem;
        position: absolute;
        width: 2.4rem;
        height: 2.4rem;
        border-radius: 50%;
        background-color: #fff;
      }

      &::after {
        content: '';
        position: absolute;
        translate: 0 -50%;
        top: 50%;
        right: 2.8rem;
        width: 0.6rem;
        height: 1rem;
        mask-image: url(/wp/wp-content/themes/cosmos-cpo/img/common/more_arrow.svg);
        mask-size: contain;
        mask-repeat: no-repeat;
        background-color: var(--cosmos-blue);
        transition: background-color 0.3s ease;
      }
    }
  }

  @media screen and (min-width: 769px) {
    .item:hover {
      color: #646464;
      border: 1px solid #E7F4FA;
      background-color: #E7F4FA;

      a {

        &::after {
          background-color: #58C7FF;
        }
      }
    }
  }
}

@media screen and (max-width: 768px) {
  .infomation {
    padding: 7.4rem 2rem 6.4rem;

    .block_ttl {
      .en {

        &::before {
          left: -1.3rem;
        }
      }

      .ttl {
        font-size: 2.8rem;
      }
    }

    .list {
      flex-direction: column;
      gap: 1rem;
    }

    .item {
      width: 100%;
      height: 6.4rem;
      border-radius: 1rem;

      &.-long {
        width: 100%;
      }

      a {
        padding: 0 6.4rem 0 2rem;
      }
    }
  }
}

/* ↑↑↑ infomation ↑↑↑ */

/* ↓↓↓ support ↓↓↓ */
.support {
  padding: 6.4rem 8.4rem;
  background-color: #F7F9FA;

  .block {
    position: relative;
    display: flex;
    gap: 11.5rem;
    padding: 2rem 0 2.4rem;

    &::before {
      content: '';
      position: absolute;
      translate: -50% 0;
      top: 0;
      left: 50%;
      width: 1px;
      height: 100%;
      background-color: #B4C1C7;
    }
  }

  .wrap {

    .block_ttl {
      position: relative;

      .en {
        position: relative;
        font-family: var(--font-poppins);
        font-size: max(10px, 1.6rem);
        font-weight: 500;
        color: var(--cosmos-blue);
        transition: color 0.3s ease;

        &::before {
          content: '';
          position: absolute;
          top: -1rem;
          left: -1.3rem;
          width: 3rem;
          height: 3rem;
          background: url(/wp/wp-content/themes/cosmos-cpo/img/common/en_circle_blue.png) no-repeat;
          background-size: cover;
          z-index: -1;
        }
      }

      .ttl {
        position: relative;
        width: max-content;
        font-size: 2.4rem;
        font-weight: 700;
        letter-spacing: 0.1em;
        line-height: 1.2;
        transition: color 0.3s ease;
      }
    }

    .intro_group {
      margin-top: 1.6rem;

      .text {
        font-weight: 500;
        transition: color 0.3s ease;
      }
    }

    .more-btn {
      position: relative;
      width: max-content;
      margin-top: 1.6rem;
      margin-left: auto;
      font-size: max(10px, 1.3rem);
      font-weight: 500;
      letter-spacing: 0.1em;
      color: var(--cosmos-blue);
      padding: 0 3rem 0 0;
      transition: color 0.3s ease;

      &::before {
        content: '';
        position: absolute;
        translate: 0 -50%;
        top: 50%;
        right: 0;
        width: 2.4rem;
        height: 2.4rem;
        border-radius: 50%;
        background-color: #fff;
      }

      &::after {
        content: '';
        position: absolute;
        translate: 0 -50%;
        top: 50%;
        right: 0.8rem;
        width: 0.6rem;
        height: 1rem;
        mask-image: url(/wp/wp-content/themes/cosmos-cpo/img/common/more_arrow.svg);
        mask-size: contain;
        mask-repeat: no-repeat;
        background-color: var(--cosmos-blue);
        transition: background-color 0.3s ease;
      }
    }

    &[target="_blank"] {
      .more-btn {
        &::before {
          display: none;
        }

        &::after {
          content: '';
          position: absolute;
          translate: 0 -50%;
          top: 50%;
          right: 0.8rem;
          width: 1.4rem;
          height: 1.1rem;
          mask-image: url(/wp/wp-content/themes/cosmos-cpo/img/common/page_linktab.svg);
          mask-size: contain;
          mask-repeat: no-repeat;
          background-color: var(--cosmos-blue);
          transition: background-color 0.3s ease;
        }
      }
    }
  }

  @media screen and (min-width: 769px) {
    .wrap:hover {

      .block_ttl {

        .en {
          color: #58C7FF;
        }

        .ttl {
          color: #646464;
        }
      }

      .intro_group {

        .text {
          color: #8B8B8B;
        }
      }

      .more-btn {
        color: #58C7FF;

        &::after {
          background-color: #58C7FF;
        }
      }
    }
  }
}

@media screen and (max-width: 768px) {
  .support {
    padding: 7.2rem 2rem 6.4rem;

    .block {
      flex-direction: column;
      gap: 0;
      padding: 0;

      &::before {
        display: none;
      }
    }

    .wrap {
      padding: 3.2rem 0;

      &:first-of-type {
        padding: 0 0 3.2rem;
      }

      &:last-of-type {
        padding: 3.2rem 0 0;
      }

      &:not(:first-of-type) {
        border-top: 1px solid #B4C1C7;
      }

      .block_ttl {
        .en {

          &::before {
            left: -1.3rem;
          }
        }

        .ttl {
          font-size: 2.8rem;
        }
      }

      .intro_group {
        margin-top: 2.4rem;
      }

      .more-btn {
        margin-top: 3.2rem;
        margin-left: auto;
        font-size: 1.5rem;
      }
    }
  }
}

/* ↑↑↑ support ↑↑↑ */

@media screen and (min-width: 1281px) {}

@media screen and (max-width: 1280px) {}

@media screen and (max-width: 768px) {}

@media screen and (max-width: 480px) {}

@media screen and (max-width: 375px) {}