.first-view {
  display: none;
  position: fixed;
  z-index: 999;
  inset: 0;
  width: 100%;
  height: 100%;
  justify-content: center;
  align-items: center;
  background-color: #FFF;
}
.first-view__logo {
  position: relative;
  z-index: 1;
  width: 19rem;
  overflow: hidden;
}
@media (min-width: 768px) {
  .first-view__logo {
    width: 30rem;
  }
}
.first-view__logo img {
  display: block;
  width: 100%;
}

.home-keyv {
  position: relative;
  z-index: 1;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  aspect-ratio: 5/8;
}
@media (min-width: 768px) {
  .home-keyv {
    aspect-ratio: 280/156;
  }
}
.home-keyv__img-1 {
  position: absolute;
  z-index: 0;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
}
.home-keyv__img-2 {
  position: absolute;
  z-index: 1;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
}

.animation-firstview .home-keyv__img-1 {
  opacity: 0;
  animation: fadeIn 2.4s ease forwards;
  animation-delay: 3s;
}
.animation-firstview .home-keyv__img-2 {
  opacity: 0;
  animation: fadeIn 2.4s ease forwards;
  animation-delay: 3s;
}
.animation-firstview .first-view {
  display: flex;
  animation: fadeOut 1s cubic-bezier(0.215, 0.61, 0.355, 1) forwards;
  animation-delay: 2s;
  animation-fill-mode: both;
}
.animation-firstview .first-view .first-view__logo img {
  opacity: 0;
  animation: fadeIn 3.2s cubic-bezier(0.215, 0.61, 0.355, 1) forwards;
  animation-delay: 0.6s;
}

.home-event {
  padding-block: 3.5rem 4.5rem;
  background: linear-gradient(135deg, #FFF 0%, #CCE5EB 100%);
}
@media (min-width: 768px) {
  .home-event {
    padding-block: 9.6rem 10rem;
  }
}
.home-event__main-ttl {
  margin-bottom: 3rem;
  padding: 0 2rem;
  font-family: var(--font-ttl);
  font-size: 1.6rem;
  font-weight: 600;
  line-height: 1.8;
  text-align: center;
}
@media (min-width: 768px) {
  .home-event__main-ttl {
    font-size: 3.4rem;
    line-height: 1.8235294118;
    margin-bottom: 5.6rem;
  }
}
.home-event__hline {
  margin-bottom: 3rem;
  padding-top: 4rem;
  text-align: center;
}
@media (min-width: 768px) {
  .home-event__hline {
    margin-bottom: 8.8rem;
  }
}
.home-event__anchor {
  position: relative;
  display: flex;
  justify-content: space-between;
  padding: 0 3rem 3rem;
}
.home-event__anchor::after {
  position: absolute;
  left: 3rem;
  right: 3rem;
  bottom: 0;
  width: calc(100% - 6rem);
  height: 1px;
  background-color: #ACACAC;
  content: "";
}
@media (min-width: 768px) {
  .home-event__anchor {
    display: none;
  }
}
.home-event__anchor-item {
  display: flex;
  flex-direction: column;
}
.home-event__anchor-item img {
  display: block;
  width: 3.1rem;
  height: 3.5rem;
  margin-bottom: 0.9rem;
  margin-inline: auto;
}
.home-event__anchor-item span {
  font-size: 1.4rem;
  text-align: center;
  line-height: 1.2;
  text-transform: capitalize;
}

.home-event-slider {
  /* Center mode styling */
  /* Counter */
  /* Progress Bar */
  /* Hide controls when 1-2 items and center them */
}
.home-event-slider .slider-wrapper {
  position: relative;
}
.home-event-slider .slick-list {
  margin-inline: -0.7rem;
}
@media (min-width: 768px) {
  .home-event-slider .slick-list {
    margin-inline: -1.6rem;
  }
}
.home-event-slider .slide-item {
  border-radius: 0.2rem;
  width: 100%;
  max-width: 33rem;
  margin-inline: 0.7rem;
  aspect-ratio: 330/240;
  overflow: hidden;
}
@media (min-width: 768px) {
  .home-event-slider .slide-item {
    max-width: 67rem;
    border-radius: 0.4rem;
    aspect-ratio: 670/370;
    margin-inline: 1.6rem;
  }
}
.home-event-slider .slide-item img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
}
.home-event-slider .slider-action {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  margin-top: 3rem;
}
@media (min-width: 768px) {
  .home-event-slider .slider-action {
    max-width: 67rem;
    width: 100%;
    margin: 5.3rem auto 0;
  }
}
.home-event-slider .slider-action__arrow {
  display: flex;
  justify-content: space-between;
  position: absolute;
  right: 0;
  top: -1rem;
  width: 7.5rem;
  height: 2rem;
}
@media (max-width: 767px) {
  .home-event-slider .slider-action__arrow {
    display: none;
  }
}
.home-event-slider .slick-center .slide-content {
  background: #007bff;
  color: white;
}
.home-event-slider .slick-slide:not(.slick-center) .slide-content {
  opacity: 0.6;
}
.home-event-slider .slider-counter {
  color: #202444;
  font-size: 1.6rem;
  font-weight: 400;
  font-family: var(--font-num);
  line-height: 1;
  display: flex;
  gap: 0.3rem;
  justify-content: center;
  text-align: center;
}
.home-event-slider .slider-progress {
  background: #fff;
  border-radius: 0.8rem;
  height: 0.8rem;
  width: 20rem;
  margin: 0 auto 1.5rem;
  overflow: hidden;
  position: relative;
}
.home-event-slider .progress-bar {
  background: #C1C1C1;
  height: 100%;
  width: 0;
  transition: width 0.1s linear;
}
.home-event-slider .slick-prev-custom,
.home-event-slider .slick-next-custom {
  cursor: pointer;
  background-color: transparent;
  border: none;
  padding: 0;
  position: static;
  display: inline-block;
  width: 3rem;
  height: 2rem;
  background-repeat: no-repeat;
  background-position: 50% 50%;
  background-size: contain;
  transition: 0.2s opacity;
}
@media (min-width: 768px) {
  .home-event-slider .slick-prev-custom:hover,
  .home-event-slider .slick-next-custom:hover {
    opacity: 0.8;
  }
}
.home-event-slider .slick-prev-custom {
  background-image: url("../img/common/icon_arrow_02.svg");
}
.home-event-slider .slick-next-custom {
  background-image: url("../img/common/icon_arrow_03.svg");
}
.home-event-slider .slider-wrapper.simple-mode .slider-counter,
.home-event-slider .slider-wrapper.simple-mode .slider-progress,
.home-event-slider .slider-wrapper.simple-mode .slick-prev-custom,
.home-event-slider .slider-wrapper.simple-mode .slick-next-custom {
  display: none;
}
.home-event-slider .slider-wrapper.simple-mode .slick-slider {
  display: flex !important;
  justify-content: center;
}

.p-facilities {
  padding-block: 5.5rem 8.6rem;
  position: relative;
  z-index: 1;
}
@media (min-width: 768px) {
  .p-facilities {
    padding-block: 12.5rem 8.1rem;
  }
}
.p-facilities::after {
  content: "";
  background: url("../img/home/bg_facilities_sp.png") no-repeat center/cover;
  width: 100vw;
  height: 134.6692307692vw;
  position: absolute;
  bottom: 0;
  left: 0;
  z-index: -1;
  pointer-events: none;
}
@media (min-width: 768px) {
  .p-facilities::after {
    background-image: url("../img/home/bg_facilities.png");
    height: 83.1428571429vw;
  }
}
.p-facilities__box {
  display: flex;
  gap: 4rem;
  flex-direction: column;
}
@media (min-width: 992px) {
  .p-facilities__box {
    align-items: flex-start;
    justify-content: space-between;
    flex-direction: row;
    gap: 2rem;
  }
}
@media (min-width: 768px) {
  .p-facilities__info {
    width: 56.4rem;
    flex-shrink: 0;
  }
}
.p-facilities__info .hline02 {
  margin-bottom: 2rem;
}
@media (min-width: 768px) {
  .p-facilities__info .hline02 {
    margin-bottom: 4.3rem;
  }
}
@media (min-width: 768px) {
  .p-facilities__info .hline02-en {
    margin-bottom: 0.9rem;
  }
}
.p-facilities__info .body-txt {
  margin-bottom: 4rem;
  letter-spacing: 0;
}
@media (min-width: 992px) {
  .p-facilities__info .body-txt {
    margin-bottom: 4.8rem;
  }
}
.p-facilities__ttl {
  font-family: var(--font-ttl);
  font-size: 2.6rem;
  font-weight: 500;
  line-height: 1.8;
  letter-spacing: 0.02em;
  margin-bottom: 4rem;
}
@media (min-width: 768px) {
  .p-facilities__ttl {
    font-size: 2.8rem;
    margin-bottom: 4.1rem;
  }
}
@media (min-width: 992px) {
  .p-facilities__ttl {
    font-size: 4rem;
  }
}
@media (max-width: 767px) {
  .p-facilities__ttl {
    white-space: nowrap;
  }
}
@media (min-width: 992px) {
  .p-facilities__content {
    max-width: 60rem;
  }
}
.p-facilities__item:not(:last-child) {
  border-bottom: 1px solid #ACACAC;
  padding-bottom: 3.2rem;
  margin-bottom: 4rem;
}
.p-facilities__item-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  position: relative;
  margin-bottom: 2rem;
}
.p-facilities__item-head .btn {
  flex-shrink: 0;
}
@media (min-width: 768px) {
  .p-facilities__item-head .btn {
    margin-top: 0.6rem;
  }
}
.p-facilities__item-ttl {
  display: grid;
  grid-template-areas: "icon titleEN" "icon titleJP";
  -moz-column-gap: 1.5rem;
  column-gap: 1.5rem;
  align-items: center;
  justify-content: flex-start;
}
@media (min-width: 768px) {
  .p-facilities__item-ttl {
    -moz-column-gap: 1.4rem;
    column-gap: 1.4rem;
  }
}
.p-facilities__item-ttl .icon {
  -ms-grid-row: 1;
  -ms-grid-row-span: 2;
  -ms-grid-column: 1;
  grid-area: icon;
  width: 5.5rem;
  position: relative;
}
@media (min-width: 768px) {
  .p-facilities__item-ttl .icon {
    width: 5.8rem;
  }
}
.p-facilities__item-ttl .ttl-en {
  -ms-grid-row: 1;
  -ms-grid-column: 3;
  grid-area: titleEN;
  font-size: 2.9rem;
  font-weight: 300;
  letter-spacing: 0.04em;
  line-height: 1;
  white-space: nowrap;
  margin-bottom: 0.4rem;
  font-family: var(--font-num);
}
@media (min-width: 768px) {
  .p-facilities__item-ttl .ttl-en {
    font-size: 3.1rem;
  }
}
@media (max-width: 767px) {
  .p-facilities__item-ttl .ttl-en.custom {
    font-size: 1.8rem;
    letter-spacing: 0;
  }
}
.p-facilities__item-ttl .ttl-jp {
  -ms-grid-row: 2;
  -ms-grid-column: 3;
  grid-area: titleJP;
  font-size: 1.4rem;
  letter-spacing: 0.04em;
  line-height: 1;
  text-transform: capitalize;
}
.p-facilities__item .body-txt {
  letter-spacing: 0;
}
@media (max-width: 767px) {
  .p-facilities__item:nth-child(1) .p-facilities__item-ttl.custom {
    font-size: 1.4rem;
    letter-spacing: 0;
  }
}
@media (min-width: 768px) {
  .p-facilities__item:nth-child(1) .p-facilities__item-ttl .icon {
    width: 5.9rem;
    top: 0.4rem;
  }
}

.p-tofrom {
  padding-block: 3.5rem 3rem;
  position: relative;
  z-index: 2;
}
@media (min-width: 768px) {
  .p-tofrom {
    padding-block: 10.9rem 4.4rem;
  }
}
.p-tofrom__ttl {
  max-width: 33rem;
}
@media (min-width: 768px) {
  .p-tofrom__ttl {
    max-width: 70.119rem;
  }
}
.p-tofrom__slider {
  margin-top: 6rem;
}
@media (min-width: 768px) {
  .p-tofrom__slider {
    margin-top: 1rem;
  }
}
.p-tofrom__slider .swiper-wrapper {
  transition-timing-function: linear;
  pointer-events: none;
}
.p-tofrom__slider .swiper-container {
  overflow: visible;
  pointer-events: none;
}
.p-tofrom__slider .swiper-slide {
  width: 27.4rem;
  pointer-events: none;
}
@media (min-width: 768px) {
  .p-tofrom__slider .swiper-slide {
    width: 33rem;
  }
}
.p-tofrom__slider .swiper-slide img {
  border-radius: 0.5rem;
  will-change: transform;
}
.p-tofrom__slider .swiper-slide:nth-child(odd) {
  margin-top: 8.6rem;
}
@media (min-width: 768px) {
  .p-tofrom__slider .swiper-slide:nth-child(odd) {
    margin-top: 10.4rem;
  }
}

.p-concept {
  padding-block: 0.6rem 5.9rem;
  position: relative;
  z-index: 1;
}
@media (min-width: 768px) {
  .p-concept {
    padding-block: 8.8rem 45.8rem;
  }
}
.p-concept::after {
  content: "";
  background: url("../img/home/bg_concept_sp.png") #FFF no-repeat top center/cover;
  width: 100%;
  height: 60.7692307692vw;
  position: absolute;
  bottom: -14.6153846154vw;
  left: 0;
  z-index: -1;
}
@media (min-width: 768px) {
  .p-concept::after {
    background-image: url("../img/home/bg_concept.png");
    background-size: cover;
    height: 60.8928571429vw;
    bottom: -9.2857142857vw;
  }
}
@media (min-width: 768px) {
  .p-concept__content {
    max-width: 52rem;
    position: relative;
    z-index: 1;
  }
}
.p-concept .hline02 {
  margin-bottom: 1.5rem;
}
@media (min-width: 768px) {
  .p-concept .hline02 {
    margin-bottom: 4.3rem;
  }
}
@media (max-width: 767px) {
  .p-concept .hline02 {
    gap: 1.1rem;
  }
}
.p-concept__ttl {
  font-family: var(--font-ttl);
  font-size: 2.6rem;
  font-weight: 500;
  line-height: 1.8;
  letter-spacing: 0.02em;
  margin-bottom: 2.9rem;
}
@media (min-width: 768px) {
  .p-concept__ttl {
    font-size: 2.8rem;
    letter-spacing: 0.08em;
    margin-bottom: 4rem;
  }
}
@media (min-width: 992px) {
  .p-concept__ttl {
    font-size: 4rem;
  }
}
.p-concept .body-txt {
  margin-bottom: 42.2rem;
  letter-spacing: 0;
}
@media (min-width: 768px) {
  .p-concept .body-txt {
    margin-bottom: 4.8rem;
  }
}
.p-concept__media {
  width: 65.3846153846%;
  position: absolute;
  top: calc(100% - 49.2rem);
  right: -1.6rem;
}
@media (min-width: 768px) {
  .p-concept__media {
    top: 6.4rem;
    width: 46.9285714286%;
    right: 0;
  }
}
@media (min-width: 1200px) {
  .p-concept__media {
    width: 65.7rem;
  }
}
.p-concept__media::before {
  content: "";
  background: url("../img/home/img_symbol_01.svg") no-repeat center/contain;
  width: 66.2745098039%;
  height: 80.0403166039%;
  position: absolute;
  left: -47.0588235294%;
  bottom: 9.7827053627%;
  z-index: 1;
}
@media (min-width: 768px) {
  .p-concept__media::before {
    width: 54.1369863014%;
    height: 60.5343406593%;
    position: absolute;
    left: -42.0091324201%;
    bottom: -0.9132420091%;
  }
}
@media (max-width: 767px) {
  .p-concept__btn .btn {
    margin: 0 auto;
  }
}

.p-access {
  background: url("../img/home/bg_access_sp.png") no-repeat top center;
  background-size: 100% 41.6rem;
  padding-block: 46.7rem 7.8rem;
  z-index: 2;
  position: relative;
}
@media (min-width: 768px) {
  .p-access {
    background-image: url("../img/home/bg_access.png");
    background-position: top right;
    background-size: cover;
    padding-block: 22.8rem 18rem;
  }
}
.p-access .hline02 {
  margin-bottom: 3rem;
}
@media (min-width: 768px) {
  .p-access .hline02 {
    margin-bottom: 3.7rem;
  }
}
@media (min-width: 768px) {
  .p-access .hline02-en {
    margin-bottom: 0.8rem;
  }
}
.p-access .body-txt {
  margin-bottom: 3rem;
}
@media (min-width: 768px) {
  .p-access .body-txt {
    margin-bottom: 3.9rem;
  }
}
@media (max-width: 767px) {
  .p-access__btn .btn {
    margin: 0 auto;
  }
}