/* =========================================================
home
========================================================= */
body.page-home .page-hd__ttl {
  display: none;
}

/*------------------------------------------
MV
------------------------------------------*/
.home-mv {
  background: #131314;
  position: relative;
}

.home-mv::before {
  content: "";
  width: 100%;
  background: linear-gradient(to top, rgba(19, 19, 20, 0) 0%, #131314 100%);
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
}

@media (max-width: 768px) {
  .home-mv::before {
    height: 76px;
  }
}
@media (min-width: 769px) {
  .home-mv::before {
    height: 135px;
  }
}
.home-mv::after {
  content: "";
  width: 100%;
  background: linear-gradient(to bottom, rgba(19, 19, 20, 0) 0%, #131314 100%);
  position: absolute;
  bottom: 0;
  left: 0;
  z-index: 2;
}

@media (max-width: 768px) {
  .home-mv::after {
    height: 108px;
  }
}
@media (min-width: 769px) {
  .home-mv::after {
    height: 170px;
  }
}
.home-mv__wrap {
  position: relative;
  z-index: 1;
}

@media (min-width: 769px) {
  .home-mv__wrap {
    width: 87.84vw;
    margin: 0 auto;
  }
}
.home-mv__img {
  opacity: 0.6;
}

@media (max-width: 768px) {
  .home-mv__img {
    aspect-ratio: 375/601;
    width: 100%;
  }
}
@media (min-width: 769px) {
  .home-mv__img {
    aspect-ratio: 1200/768;
  }
}
.home-mv__img .in {
  width: 100%;
  height: 100%;
}

.home-mv__img img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.home-mv .swiper-initialized {
  overflow: visible;
}

.home-mv .swiper-initialized .home-mv__img {
  display: flex;
  align-items: center;
}

@media (min-width: 769px) {
  .home-mv .swiper-initialized .home-mv__img .in {
    transform: scale(0.65);
    transition: transform 0.5s ease;
  }
}
@media (min-width: 769px) {
  .home-mv .swiper-initialized .swiper-slide[class*=-prev] .in {
    transform-origin: right;
  }
}
@media (min-width: 769px) {
  .home-mv .swiper-initialized .swiper-slide[class*=-next] .in {
    transform-origin: left;
  }
}
@media (min-width: 769px) {
  .home-mv .swiper-initialized .swiper-slide[class*=-active] .in {
    transform: scale(1);
  }
}
.home-mv__ttl {
  position: absolute;
  z-index: 3;
}

@media (max-width: 768px) {
  .home-mv__ttl {
    width: calc(100% - 5.33vw);
    bottom: 42px;
    left: 50%;
    transform: translateX(-50%);
  }
}
@media (min-width: 769px) {
  .home-mv__ttl {
    width: clamp(1px, 72.54vw, 991px);
    bottom: 33px;
    left: clamp(1px, 3.51vw, 48px);
  }
}
.home-mv__ttl .txt01 {
  display: block;
}

@media (min-width: 769px) {
  .home-mv__ttl .txt01 {
    width: 63.5%;
  }
}
.home-mv__ttl .txt02 {
  display: block;
}

@media (max-width: 768px) {
  .home-mv__ttl .txt02 {
    margin: 2.4vw auto 0;
  }
}
@media (min-width: 769px) {
  .home-mv__ttl .txt02 {
    margin: clamp(1px, 1.17vw, 16px) auto 0;
  }
}
.home-mv__scroll {
  font-family: "Montserrat", sans-serif;
  letter-spacing: 0;
  color: #46C2FF;
  line-height: 1;
  font-size: 14px;
  writing-mode: vertical-rl;
  position: absolute;
  bottom: 132px;
  right: 51px;
  z-index: 3;
}

.home-mv__scroll::before, .home-mv__scroll::after {
  content: "";
  width: 1px;
  height: 87px;
  position: absolute;
  top: calc(100% + 12px);
  left: 50%;
  transform: translateX(-50%);
}

.home-mv__scroll::before {
  animation: scroll 2s linear infinite;
  background: #46C2FF;
  z-index: 2;
}

.home-mv__scroll::after {
  background: #505050;
}

@keyframes scroll {
  0% {
    transform: scale(1, 0);
    transform-origin: 0 0;
  }
  50% {
    transform: scale(1, 1);
    transform-origin: 0 0;
  }
  51% {
    transform: scale(1, 1);
    transform-origin: 0 100%;
  }
  100% {
    transform: scale(1, 0);
    transform-origin: 0 100%;
  }
}
.home-mv__ttl [class*=txt0] {
  -webkit-mask: linear-gradient(to left, transparent 0%, transparent 33%, #000 66%, #000 100%) no-repeat 100% 0;
          mask: linear-gradient(to left, transparent 0%, transparent 33%, #000 66%, #000 100%) no-repeat 100% 0;
}

@media (max-width: 768px) {
  .home-mv__ttl [class*=txt0] {
    -webkit-mask-size: calc((100% - 5.33vw) * 3) auto;
            mask-size: calc((100% - 5.33vw) * 3) auto;
  }
}
@media (min-width: 769px) {
  .home-mv__ttl [class*=txt0] {
    -webkit-mask-size: calc(clamp(1px, 72.54vw, 991px) * 3) auto;
            mask-size: calc(clamp(1px, 72.54vw, 991px) * 3) auto;
  }
}
.home-mv__ttl.is-active [class*=txt0] {
  animation: mv-mask 1s linear forwards;
}

.home-mv__ttl.is-active .txt02 {
  animation-delay: 0.3s;
}

@keyframes mv-mask {
  0% {
    -webkit-mask-position: 100% 0;
            mask-position: 100% 0;
  }
  100% {
    -webkit-mask-position: 0 0;
            mask-position: 0 0;
  }
}
/*------------------------------------------
FEATURE
------------------------------------------*/
@media (min-width: 769px) {
  .home-feature .c-sec01__in {
    padding-top: 145px;
  }
}
@media (max-width: 768px) {
  .home-feature__list {
    margin: 32px auto 0;
  }
}
@media (min-width: 769px) {
  .home-feature__list {
    margin: 46px auto 0;
  }
}
.home-feature .c-card01:nth-child(even) {
  flex-direction: row-reverse;
}

@media (max-width: 768px) {
  .home-feature .c-card01__txt01 {
    margin: 12px auto 0;
  }
}
@media (min-width: 769px) {
  .home-feature .c-card01__txt01 {
    margin: 48px auto 0;
  }
}
@media (max-width: 768px) {
  .home-feature .c-card01__box01 {
    margin: 16px auto 0;
  }
}
@media (min-width: 769px) {
  .home-feature .c-card01__box01 {
    margin: 24px auto 0;
  }
}
.home-feature .c-card01__txt02 {
  margin: 64px auto 0;
}

/*------------------------------------------
FACILITIES
------------------------------------------*/
.home-facilities {
  background: #131314;
  color: #fff;
}

.home-facilities__lead {
  line-height: 1;
}

@media (max-width: 768px) {
  .home-facilities__lead {
    margin: 24px auto 0;
    font-size: 16px;
  }
}
@media (min-width: 769px) {
  .home-facilities__lead {
    margin: -1em auto 0;
    font-size: clamp(1px, 1.46vw, 20px);
    text-align: right;
  }
}
.home-facilities__list {
  display: grid;
  gap: 32px clamp(1px, 4.68vw, 64px);
}

@media (max-width: 768px) {
  .home-facilities__list {
    margin: 32px auto 0;
  }
}
@media (min-width: 769px) {
  .home-facilities__list {
    margin: 48px auto 0;
    grid-template-columns: repeat(2, 1fr);
  }
}
.home-facilities__item a {
  display: block;
}

.home-facilities__img {
  position: relative;
  overflow: hidden;
}

@media (max-width: 768px) {
  .home-facilities__img {
    aspect-ratio: 335/386;
  }
}
@media (max-width: 768px) {
  .home-facilities__img img {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
       object-fit: cover;
    -o-object-position: left center;
       object-position: left center;
  }
}
.home-facilities__img::before {
  content: "";
  width: 100%;
  background: linear-gradient(to bottom, rgba(19, 19, 20, 0) 0%, #131314 100%);
  position: absolute;
  bottom: 0;
  left: 0;
  z-index: 1;
}

@media (max-width: 768px) {
  .home-facilities__img::before {
    height: 143px;
  }
}
@media (min-width: 769px) {
  .home-facilities__img::before {
    height: 170px;
  }
}
.home-facilities__txt01 {
  line-height: 1.5;
  position: relative;
  z-index: 1;
}

@media (max-width: 768px) {
  .home-facilities__txt01 {
    margin: -43px auto 0;
    padding: 0 57px 0 8px;
    font-size: clamp(1px, 5.33vw, 20px);
  }
}
@media (min-width: 769px) {
  .home-facilities__txt01 {
    margin: -54px auto 0;
    padding: 0 133px 0 12px;
    font-size: clamp(1px, 1.75vw, 24px);
  }
}
.home-facilities__txt01 .arrow {
  aspect-ratio: 1/1;
  display: block;
  background: #46C2FF;
  display: flex;
  align-items: center;
  justify-content: center;
  position: absolute;
  top: 0;
  right: 0;
}

@media (max-width: 768px) {
  .home-facilities__txt01 .arrow {
    width: 34px;
  }
}
@media (min-width: 769px) {
  .home-facilities__txt01 .arrow {
    width: 40px;
  }
}
.home-facilities__txt01 .arrow__in {
  display: block;
  position: relative;
  aspect-ratio: 1/1;
  display: block;
  overflow: hidden;
}

@media (max-width: 768px) {
  .home-facilities__txt01 .arrow__in {
    width: 13px;
  }
}
@media (min-width: 769px) {
  .home-facilities__txt01 .arrow__in {
    width: 16px;
  }
}
.home-facilities__txt01 .arrow__in::before {
  content: "";
  width: 100%;
  height: 100%;
  -webkit-mask: url(../images/common/ico_arrow01.svg) no-repeat center/contain;
          mask: url(../images/common/ico_arrow01.svg) no-repeat center/contain;
}

.home-facilities__txt01 .arrow__in::before {
  background: #131314;
}

@media (hover: hover) {
  .home-facilities__item a .home-facilities__img img {
    transition: transform 0.2s ease;
  }

  .home-facilities__item a:hover .home-facilities__img img {
    transform: scale(1.1);
  }

  .home-facilities__item a:hover .arrow__in::before {
    animation: c-arrow-1st 0.2s linear, c-arrow-2nd 0.2s linear 0.2s;
  }
}
/*------------------------------------------
CASE STUDIES
------------------------------------------*/
.home-case__comingsoon {
  font-family: "Montserrat", sans-serif;
  letter-spacing: 0;
  color: #747474;
  font-size: clamp(1px, 5.33vw, 36px);
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
}

@media (max-width: 768px) {
  .home-case__comingsoon {
    height: 395px;
  }
}
@media (min-width: 769px) {
  .home-case__comingsoon {
    height: 490px;
  }
}
/*------------------------------------------
ACCESS
------------------------------------------*/
.home-access {
  background: #131314;
  color: #fff;
}

@media (max-width: 768px) {
  .home-access .c-sec01__in {
    padding-bottom: 0;
  }
}
@media (min-width: 769px) {
  .home-access .c-sec01__in {
    padding-bottom: 70px;
    display: grid;
    grid-template-columns: clamp(1px, 35vw, 390px) 1fr;
    grid-template-rows: max-content 1fr max-content;
    gap: 30px clamp(1px, 2.92vw, 40px);
    grid-template-areas: "title map" "address map" "button map";
  }
}
@media (max-width: 768px) {
  .home-access .c-sec01__in > * + * {
    margin: 32px auto 0;
  }
}
@media (min-width: 769px) {
  .home-access .c-ttl01 {
    grid-area: title;
  }
}
.home-access__address {
  font-size: 16px;
  line-height: 1.62;
}

@media (max-width: 768px) {
  .home-access__address {
    font-style: normal;
  }
}
@media (min-width: 769px) {
  .home-access__address {
    grid-area: address;
  }
}
@media (max-width: 768px) {
  .home-access__map {
    height: 290px;
  }
}
@media (min-width: 769px) {
  .home-access__map {
    grid-area: map;
    height: 415px;
  }
}
.home-access__map iframe {
  width: 100%;
  height: 100%;
}

.home-access .c-btn01 {
  width: 214px;
}

@media (min-width: 769px) {
  .home-access .c-btn01 {
    grid-area: button;
  }
}