@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(30px);
  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: 100px;
  height: 100vh;
  padding-inline: 25px;
  overflow-x: clip;
}
.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{
  border-radius: 24px;
}

.mv .swiper .swiper-wrapper .swiper-slide {
  height: 74vh;
}
.mv .swiper picture {
  display: block;
  width: 100%;
  height: 77vh;
}
.mv .swiper .swiper-wrapper .swiper-slide img {
  width: 100%;
  height: 77vh;
  object-fit: cover;

}
@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: 30px;
  height: 2px;
  border-radius: 0;
}
.mv-bullets{
  z-index: 2;
  position: absolute;
  color: white;
  bottom: 19%!important;
  left: 5.8%!important;
  display: flex;
  align-items: flex-end;
  gap: 10px;
}
.mv-bullets span{
  font-size: 14px;
}
.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: 52px;
  line-height: 1.7;
  font-weight: bold;
  position: absolute;
  bottom: 24.5%;
  left: 5.8%;
  z-index: 1;
  color: var(--white);
  display: flex;
  gap: 2px;
  flex-direction: column;
  letter-spacing: 0.03em;
}
.mv .mv-catch::after {
  content: 'New creation development challenger.';
  font-family: 'Young Serif', serif;
  font-size: 28px;
  font-weight: 300;
  line-height: 1.8;
  letter-spacing: 0;
}
.mv .sdgs-banner {
  position: absolute;
  /* display: block; */
  right: 39px;
  bottom: 35.6%;
  z-index: 2;
}
.mv .lp-banner {
  position: absolute;
  right: 0;
  bottom: 5.3%;
  z-index: 2;
}
.mv .loop {
  position: absolute;
  left: 0;
  bottom: -19px;
  background-color: var(--lightgray);
}
.mv .loop-box {
  padding-top: 3vw;
}
@media screen and (min-width: 820px) and (max-width: 900px) {
  .mv .swiper .swiper-wrapper .swiper-slide {
    height: 80vh;
}
  .mv-bullets{
    bottom: 21%!important;
  }
  .mv .mv-catch {
    bottom: 26.5%;
  }
  .mv .sdgs-banner {
    bottom: -34.4%;
  }
  .mv .lp-banner {
    bottom: -46.7%;
  }
  .mv .loop {
    position: absolute;
    left: 0;
    bottom: 0;
}
  .mv .loop-box {
    padding-top: 24vw;
    width: 100%;
    padding-bottom: 0px;
  }
}

/* news */
.news {
  padding: 10px 0 174px;
  background-color: var(--lightgray);
}
.news .inner {
  display: flex;
  min-height: 302px;
}
.news p {
  font-size: 15px;
}
.news .inner .left {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 42px 66px 55px 40px;
  border-block: 1px solid var(--bordergray);
  border-right: 1px solid var(--bordergray);
  z-index: 2;
}
.news .inner .right {
  z-index: 2;
}
.news .inner .right ul {
  border-bottom: 1px solid var(--bordergray);
}
.news .inner .right li {
  padding: 32px 40px;
  /* border-bottom: 1px solid var(--bordergray); */
}
.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: 15px;
  padding-bottom: 16px;
}
.news .inner .right .date .since {
  font-size: 13px;
  color: #4f4c49;
}
.news .inner .right .date .tag {
  font-size: 12px;
  color: #4f4c49;
  padding: 2px 6px;
  border: 1px solid var(--bordergray);
  border-radius: calc(infinity * 1px);
  line-height: 1;
}

/* works */
.works {
  position: relative;
  top: -57px;
  padding: 0 0 158px;
  background: var(--white);
  border-top-left-radius: 60px;
  border-top-right-radius: 60px;
}
.works .inner {
  position: relative;
}
.works .inner .loop {
  border-bottom: 1px solid var(--bordergray);
  padding-top: 49px;
}
.works .inner .loop .loop-item {
  line-height: 1.1;
}
.works .inner .content {
  padding-top: 37px;
}
.works .inner .content h2 {
  padding-bottom: 33px;
  letter-spacing: 0.07em;
}
.zoom-swiper {
  width: 1200px;
  height: 386px;
  overflow: hidden;
  position: relative;
}

/* ナビゲーション */
.zoom-swiper .swiper-controller {
  display: flex;
  align-items: center;
  gap: 34px;
  width: 556px;
  height: 40px;
  position: absolute;
  right: 0;
  bottom: 0;
  background: white;
  z-index: 20;
  padding-inline: 16px;
}

/* スクロールバー */
.zoom-swiper .swiper-scrollbar-outer {
  width: 380px;
}

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

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

/* button */
.zoom-swiper .swiper-button {
  height: inherit;
  display: flex;
  height: inherit;
  align-items: center;
  gap: 16px;
  flex-shrink: 0;
}

.zoom-swiper .swiper-button button {
  inset: 0;
  margin-top: 0;
  display: block;
  position: relative;
  width: 64px;
  height: inherit;
  border-radius: calc(infinity * 1px);
}

.zoom-swiper .swiper-button-next::before,
.zoom-swiper .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: 40px;
}

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

.zoom-swiper .swiper-button button::after {
  display: none;
}

.zoom-swiper .swiper-slide.initzoom {
  transition: width 0ms linear 0ms;
}
.zoom-swiper .swiper-slide picture {
  width: 100%;
  display: block;
  height: inherit;
}
.zoom-swiper .swiper-slide picture img {
  vertical-align: top;
  object-fit: cover;
  object-position: left top;
}
.zoom-swiper .swiper-slide.zoom {
  transition: width 100ms linear 500ms;
}
.zoom-swiper .swiper-slide-prev {
  transition: width 0ms linear 500ms;
}
.zoom-swiper .swiper-slide-active.zoom,
.zoom-swiper .swiper-slide-active.initzoom {
  width: 614px !important;
  /* height: 389px; */
}

.works .btn {
  position: absolute;
  bottom: -125px;
  left: 50%;
  transform: translateX(-50%);
}

/* business */
.business {
  padding: 0px 0 103px;
}
.business .inner .loop {
  border-bottom: 1px solid var(--bordergray);
}
.business .inner .loop .loop-item {
  line-height: 1.1;
}
.business .inner .content {
  padding-top: 37px;
}
.business .inner .content h2 {
  padding-bottom: 26px;
  letter-spacing: 0.07em;
}
.business .flex {
  display: flex;
  gap: 80px;
  justify-content: space-between;
  align-items: center;
}
.business .flex .left p {
  padding-bottom: 39px;
}
.business .flex .left .list ul {
  display: flex;
  column-gap: 24px;
  flex-wrap: wrap;
  width: 100%;
}
.business .flex .left .list ul li {
  width: 301px;
  padding: 22.5px 15px;
  border-top: 1px solid var(--black);
}
.business .flex .left .list ul li:nth-child(5) {
  border-bottom: 1px solid var(--black);
}
.business .flex .left .list ul li:nth-child(6) {
  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.png);
  background-size: contain;
  background-repeat: no-repeat;
  width: 31px;
  height: 6px;
}
.business .flex .right .img {
  background-image: url(../../img/top/business.png);
  background-size: cover;
  background-repeat: no-repeat;
  width: 453px;
  height: 411px;
  margin-right: 40px;
}
/* example */
.example {
  position: relative;
  padding: 0 0 106px;
  background: linear-gradient(45deg, var(--orange), #E89821);
  border-top-left-radius: 60px;
  border-top-right-radius: 60px;
}
.example .inner {
  position: relative;
}
.example .inner .loop {
  border-bottom: 1px solid rgba(79, 68, 59, 0.5);
  padding-top: 47px;
}
.example .inner .loop .loop-item {
  line-height: 1.1;
  opacity: 0.13;
}
.example .content {
  padding-top: 48px;
  display: flex;
  justify-content: space-between;
}
.example .content h2 {
  padding-top: 141px;
  text-align: left;
  color: var(--white);
  display: flex;
  flex-direction: column;
  align-items: center;
  position: relative;
  z-index: 1;
}
.example .content h2::before {
  content: '';
  border-top: 1px solid var(--white);
  padding-bottom: 27px;
  width: 264px;
}
.example .content .btn {
  position: absolute;
  bottom: 139px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 1;
}
.example .content .btn span {
  display: flex;
  align-items: center;
  color: var(--white);
  border: 1px solid var(--white);
  border-radius: calc(infinity * 1px);
  padding: 13px 24px 11px 30px;
  gap: 32px;
  width: 208px;
}
.example .btn span::after {
  content: '';
  background-image: url(../../img/top/arrow-w.png);
  background-size: contain;
  background-repeat: no-repeat;
  width: 30px;
  height: 6px;
}

.example .company  {
  position: relative;
  overflow: hidden;
  width: 376px;
  height: 570px;
  }
  .example .company:hover {
    opacity: 0.8;
    }
  .example .company:after {
  position: absolute;
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  top: 0;
  background-image: url(../../img/top/company.png);
  -webkit-background-size: cover;
  -moz-background-size: cover;
  -ms-background-size: cover;
  background-size: cover;
  -webkit-transition: all .3s ease-out;
  -moz-transition: all .3s ease-out;
  -ms-transition: all .3s ease-out;
  transition: all .3s ease-out;
  }
  .example .company:hover:after {
  opacity: 1;
  -moz-transform: scale(1.1);
  -webkit-transform: scale(1.1);
  -ms-transform: scale(1.1);
  transform: scale(1.1);
  }

.example .recruit  {
  position: relative;
  overflow: hidden;
  width: 376px;
  height: 570px;
  }
  .example .recruit:hover {
    opacity: 0.8;
    }
  .example .recruit:after {
  position: absolute;
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  top: 0;
  background-image: url(../../img/top/recruit.png);
  -webkit-background-size: cover;
  -moz-background-size: cover;
  -ms-background-size: cover;
  background-size: cover;
  -webkit-transition: all .3s ease-out;
  -moz-transition: all .3s ease-out;
  -ms-transition: all .3s ease-out;
  transition: all .3s ease-out;
  }
  .example .recruit:hover:after {
  opacity: 1;
  -moz-transform: scale(1.1);
  -webkit-transform: scale(1.1);
  -ms-transform: scale(1.1);
  transform: scale(1.1);
  }

.example .sdgs  {
  position: relative;
  overflow: hidden;
  width: 376px;
  height: 570px;
  }
  .example .sdgs:hover {
    opacity: 0.8;
    }
  .example .sdgs:after {
  position: absolute;
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  top: 0;
  background-image: url(../../img/top/sdgs.png);
  -webkit-background-size: cover;
  -moz-background-size: cover;
  -ms-background-size: cover;
  background-size: cover;
  -webkit-transition: all .3s ease-out;
  -moz-transition: all .3s ease-out;
  -ms-transition: all .3s ease-out;
  transition: all .3s ease-out;
  }
  .example .sdgs:hover:after {
  opacity: 1;
  -moz-transform: scale(1.1);
  -webkit-transform: scale(1.1);
  -ms-transform: scale(1.1);
  transform: scale(1.1);
  }
