@charset "UTF-8";

/* 動き */

.scroll_up {
  transition: 0.8s ease-in-out;
  transform: translateY(30px);
  opacity: 0;
}
.scroll_up.on {
  transform: translateY(0);
  opacity: 1.0;
}
.scroll_left {
  -webkit-transition: 0.8s ease-in-out;
  -moz-transition: 0.8s ease-in-out;
  -o-transition: 0.8s ease-in-out;
  transition: 0.8s ease-in-out;
  transform: translateX(-30px);
  opacity: 0;
  filter: alpha(opacity=0);
  -moz-opacity: 0;
}
.scroll_left.on {
  opacity: 1.0;
  filter: alpha(opacity=100);
  -moz-opacity: 1.0;
  transform: translateX(0);
}
.scroll_right {
  -webkit-transition: 0.8s ease-in-out;
  -moz-transition: 0.8s ease-in-out;
  -o-transition: 0.8s ease-in-out;
  transition: 0.8s ease-in-out;
  transform: translateX(0);
  opacity: 0;
  filter: alpha(opacity=0);
  -moz-opacity: 0;
}
.scroll_right.on {
  opacity: 1.0;
  filter: alpha(opacity=100);
  -moz-opacity: 1.0;
  transform: translateX(0);
}
.timing02 {transition-delay: .4s;}
.timing03 {transition-delay: .6s;}
/* mv */
.mv {
  position: relative;
  padding-top: 13.333333333333334vw;
  height: 100vh;
  padding-inline: 4.666666666666667vw;
  overflow-x: clip;
}
.mv .swiper{
  border-radius: 6.4vw;
}
.fadeLeft{
  animation-name:fadeLeftAnime;
  animation-duration:2s;
  animation-fill-mode:forwards;
  opacity:0;
  }

  @keyframes fadeLeftAnime{
    from {
      opacity: 0;
    transform: translateX(-100px);
    }

    to {
      opacity: 1;
    transform: translateX(0);
    }
  }
  .fadeRight{
    animation-name:fadeRightAnime;
    animation-duration:2s;
    animation-fill-mode:forwards;
    opacity:0;
    }

    @keyframes fadeRightAnime{
      from {
        opacity: 0;
      transform: translateX(100px);
      }

      to {
        opacity: 1;
      transform: translateX(0);
      }
    }
    .fadeRight2{
      animation-name:fadeRightAnime2;
      animation-duration:2s;
      animation-fill-mode:forwards;
      opacity:0;
      }

      @keyframes fadeRightAnime2{
        from {
          opacity: 0;
        transform: translateX(600px);
        }

        to {
          opacity: 1;
        transform: translateX(0);
        }
      }
.mv .swiper .swiper-wrapper{
  border-radius: 6.4vw;
}
.mv .swiper .swiper-wrapper .swiper-slide {
  height: 77vh;
  border-radius: 6.4vw;
}
.mv .swiper picture {
  display: block;
  width: 100%;
  height: 77vh;
}
.mv .swiper .swiper-wrapper .swiper-slide img {
  width: 100%;
  height: 86.8vh;
  object-fit: cover;
  border-radius: 6.4vw;

}
@keyframes zoomUp {
  0% {
    transform: scale(1);
  }
  100% {
    transform: scale(1.15);
  }
}
.mv .swiper-slide-active img,
.mv .swiper-slide-duplicate-active img,
.mv .swiper-slide-prev img {
  animation: zoomUp 7s linear 0s normal both;
}
/* スワイパー ページネーション */
.mv-swiper-pagination{
  color: var(--white);
  }
  .mv-swiper-pagination span{
    width: 6.4vw;
    height:0.5333333333333333vw;
    border-radius: 0;
  }
  .mv-bullets{
    z-index: 2;
    position: absolute;
    color: white;
    bottom: 35%!important;
    left: 10%!important;
    display: flex;
    align-items: flex-end;
    gap: 1.8666666666666667vw;
  }
  .mv-bullets span{
    font-size: 3.2vw;
  }
  .mv-swiper-pagination .swiper-pagination-bullet{
    background: rgba(255, 255, 255, 0.4);
  }
  .mv-swiper-pagination .swiper-pagination-bullet-active{
    background: white;
  }

.mv .mv-catch {
  font-size: 7.466666666666667vw;
  line-height: 1.7;
  font-weight: bold;
  position: absolute;
  top: 40.15%;
  left: 10%;
  z-index: 1;
  color: var(--white);
  display: flex;
  gap: 0.26666666666666666vw;
  flex-direction: column;
  letter-spacing: 0.03em;
}
.mv .mv-catch::after {
  content: 'New creation development challenger.';
  font-family: 'Young Serif', serif;
  font-size: 4vw;
  font-weight: 300;
  line-height: 1.8;
  letter-spacing: 0;
}
.mv .sdgs-banner {
  position: absolute;
  right: 15%;
  bottom: 20.6%;
  z-index: 2;
}
.mv .sdgs-banner img{
  width: 60.8vw;
  height: 23.466666666666665vw;
}
.mv .lp-banner {
  position: absolute;
  right: 0;
  bottom: -4.7%;
  z-index: 2;
}
.mv .lp-banner img{
  width: 89.73333333333333vw;
  height: 48.666666666666664vw;
}
.mv .loop {
  position: absolute;
  left: 0;
  bottom: -31vw;
  background-color: var(--lightgray);
}
.mv .loop-box {
  padding-top: 45.466667vw;
}

/* news */
.news {
  padding: 30.266667vw 0 33.333333vw;
  background-color: var(--lightgray);
}
.news p {
  font-size: 15px;
}
.news .inner .left {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding-bottom: 8.533333333333333vw;
  z-index: 2;
}
.news .inner .right {
  z-index: 2;
}
.news .inner .right ul {
  border-bottom: 1px solid var(--bordergray);
}
.news .inner .right li {
  padding: 7.466666666666667vw 4.266666666666667vw;
}
.news .inner .right li + li {
  border-top: 1px solid var(--bordergray);
}
.news .inner .right li:first-child {
  border-top: 1px solid var(--bordergray);
  z-index: 2;
}
.news .inner .right .date {
  display: flex;
  align-items: center;
  gap: 2.6666666666666665vw;
  padding-bottom: 4.266666666666667vw;
}
.news .inner .right .date .since {
  font-size: 2.933333333333333vw;
  color: #4f4c49;
}
.news .inner .right .date .tag {
  font-size: 2.933333333333333vw;
  color: #4f4c49;
  padding: 0.7vw 2.1333333333333333vw;
  border: 1px solid var(--bordergray);
  border-radius: calc(infinity * 1px);
  line-height: 1;
}
.news .sp{
  padding-top: 10.666666666666666vw;
  text-align: center;
}

/* works */
.works {
  position: relative;
  top: -10.6vw;
  padding: 0 0 33.333333vw;
  background: var(--white);
  border-top-left-radius: 12.8vw;
  border-top-right-radius: 12.8vw;
}
.works .inner {
  position: relative;
}
.works .inner .loop {
  border-bottom: 1px solid var(--bordergray);
  padding-top: 12.8vw;
}
.works .inner .loop .loop-item {
  line-height: 1.2;
}
.works .inner .content {
  padding-top: 7.466666666666667vw;
}
.works .inner .content h2 {
  padding-bottom: 8.533333333333333vw;
  letter-spacing: 0.07em;
}
.outer {
  padding-left: 4.6vw;
}
.works .swiper-slide.swiper-slide-next{
  width: 374px !important;
}

.zoom-swiper {
  overflow: hidden;
  position: relative;
  width: 100vw;
  margin-inline: calc(50% - 50vw);
}

/* ナビゲーション */
.swiper-controller {
  display: flex;
  align-items: center;
  flex-direction: column;
  justify-content: center;
  margin-top: calc(100 / 750 * 72 * 1vw);
  gap: calc(100 / 750 * 40 * 1vw);
}

/* スクロールバー */
.swiper-scrollbar-outer {
  width: calc(100 / 750 * 564 * 1vw);
}

.swiper-scrollbar.swiper-scrollbar-horizontal {
  width: 100%;
  position: relative;
  inset: auto;
  height: 2px;
  flex-shrink: 0;
  border-radius: calc(infinity * 1px);
}

.swiper-scrollbar-drag {
  border-radius: calc(infinity * 1px);
  background-color: var(--blue);
}

/* button */
.swiper-button {
  display: flex;
  height: inherit;
  align-items: center;
  gap: calc(100 / 750 * 32 * 1vw);
}

.swiper-button button {
  inset: 0;
  margin-top: 0;
  display: block;
  position: relative;
  width: calc(100 / 750 * 96 * 1vw);
  border-radius: calc(infinity * 1px);
}

.swiper-button-next::before,
.swiper-button-prev::before {
  content: '';
  display: block;
  position: absolute;
  position: absolute;
  top: 50%;
  left: 50%;
  translate: -50% -50%;
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center;
  background-image: url("/assets/img/top/slide-arrow.png");
  width: 100%;
  height: calc(100 / 750 * 56 * 1vw);
}

.swiper-button-next::before {
  scale: -1 1;
}

.swiper-button button::after {
  display: none;
}
.works .btn {
  position: absolute;
  bottom: -24vw;
  left: 50%;
  transform: translateX(-50%);
}

/* business */
.business {
  padding: 0 0 21.333333333333332vw;
}
.business .inner .loop {
  /* padding-bottom: 1vw; */
  border-bottom: 1px solid var(--bordergray);
}
.business .inner .loop-item{
  opacity: 0.13;
}
.business .inner .loop .loop-item {
  line-height: 1.2;
}
.business .inner .content {
  padding-top: 7.466666666666667vw;
}
.business .inner .content h2 {
  padding-bottom: 6.533333vw;
  letter-spacing: 0.07em;
}
.business .flex .left p {
  padding-bottom: 7.666667vw;
}
.business .flex .left .list ul li {
  width: 100%;
  padding: 5.4vw 2.1333333333333333vw;
  border-top: 1px solid var(--black);
}
.business .flex .left .list ul li:first-child {
  border-top: none;
}
.business .flex .left .list ul li:last-child {
  border-bottom: 1px solid var(--black);
}
.business .flex .left .list ul li a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  color: var(--blue);
  font-weight: bold;
}
.business .flex .left .list ul li a::after {
  content: '';
  background-image: url(../../img/top/business-arrow_sp.png);
  background-size: contain;
  background-repeat: no-repeat;
  width: 6vw;
  height: 1.3333333333333333vw;
}
.business .flex .img {
  background-image: url(../../img/top/business_sp.png);
  background-size: cover;
  background-repeat: no-repeat;
  width: 90.66666666666667vw;
  height: 67.2vw;
  margin-bottom: 5.333333333333333vw;
}

/* example */
.example {
  position: relative;
  padding: 0 0 21.333333333333332vw;
  background: linear-gradient(45deg, var(--orange), #E89821);
  border-top-left-radius: 12.8vw;
  border-top-right-radius: 12.8vw;
}
.example .inner {
  position: relative;
}
.example .inner .loop {
  border-bottom: 1px solid rgba(79, 68, 59, 0.5);
  padding-top: 12.8vw;
}
.example .inner .loop .loop-item {
  line-height: 1.2;
}
.example .content {
  padding-top: 7.466666666666667vw;
}
.example .content h2 {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding-top: 14.4vw;
  color: var(--white);
  text-align: center;
  z-index: 1;
  position: relative;
}
.example .content h2::before {
  content: '';
  border-top: 1px solid var(--white);
  padding-bottom: 8.533333333333333vw;
  width: 60.8vw;
}
.example .content .btn {
  position: absolute;
  bottom: 12vw;
  left: 50%;
  transform: translateX(-50%);
  width: 50.93333333333333vw;
}
.example a:hover{
  opacity: 1;
}
.example .content .btn span {
  display: flex;
  align-items: center;
  color: var(--white);
  border: 1px solid var(--white);
  border-radius: calc(infinity * 1px);
  padding: 2.733333vw 5.333333vw 2.466667vw 6.4vw;
  gap: 8.533333333333333vw;
}
.example .btn span::after {
  content: '';
  background-image: url(../../img/top/arrow-w_sp.png);
  background-size: contain;
  background-repeat: no-repeat;
  width: 6vw;
  height: 1.3333333333333333vw;
}
.example .company {
  position: relative;
  display: inline-block;
  width: 100%;
  height: 83.33333333333333vw;
  margin-bottom: 5.333333333333333vw;
}
.example .company::before {
  content: "";
  position: absolute;
  background-image: url(../../img/top/company_sp.png);
  background-size: cover;
  background-repeat: no-repeat;
  width: 100%;
  height: 83.33333333333333vw;
}

.example .recruit {
  display: inline-block;
  position: relative;
  width: 100%;
  height: 83.33333333333333vw;
  margin-bottom: 5.333333333333333vw;
}
.example .recruit::before {
  content: "";
  position: absolute;
  background-image: url(../../img/top/recruit_sp.png);
  background-size: cover;
  background-repeat: no-repeat;
  width: 100%;
  height: 83.33333333333333vw;
}

.example .sdgs {
  display: inline-block;
  position: relative;
  width: 100%;
  height: 83.33333333333333vw;
}
.example .sdgs::before {
  content: "";
  position: absolute;
  background-image: url(../../img/top/sdgs_sp.png);
  background-size: cover;
  background-repeat: no-repeat;
  width: 100%;
  height: 83.33333333333333vw;
}