@charset "utf-8";

/*===================
fv
===================*/
.fv {
  height: 100svh;
  min-height: 975px;
  position: relative;
  padding-top: 100px;
}
.fv__img {
  height: 100svh;
  min-height: 975px;
  object-fit: cover;
  position: absolute;
  top: 0;
  left: 0;
}
.fv__logo {
  width: 287px;
  margin: 0 auto 55px;
  position: relative;
  z-index: 2;
}
.fv__date {
  width: 448px;
  margin: 0 auto 45px;
  position: relative;
  z-index: 2;
}
.fv__text {
  width: 96px;
  margin: 0 auto;
  position: relative;
  z-index: 2;
}
.fv__btn {
  width: 122px;
  position: absolute;
  bottom: 40px;
  right: calc(var(--right-w) + (100% - var(--natural-w)) * var(--right-ratio) + 20px);
  z-index: 2;
}
.fv__bg {
  width: 100%;
  position: absolute;
  bottom: 0;
  left: 0;
  z-index: 1;
}

@media screen and (min-width: 481px) and (max-width: 1000px) {
  .fv__btn {
    right: calc((100% - var(--center-w)) / 2 + 20px);
  }
}

@media screen and (max-width: 480px) {
  .fv {
    height: 100%;
    min-height: initial;
    padding-top: 20.8333vw;
    padding-bottom: 16vw;
  }
  .fv__img {
    height: 100%;
    min-height: initial;
  }

  .fv__logo {
    width: 59.7916vw;
    margin: 0 auto 11.4583vw;
  }
  .fv__date {
    width: 93.3333vw;
    margin: 0 auto 9.375vw;
  }
  .fv__text {
    width: 20vw;
  }
  .fv__btn {
    width: 25.4166vw;
    right: 10px;
  }
}

/*===================
concept
===================*/
.concept {
  width: 100%;
  height: 100%;
  padding-bottom: 36px;
  background: #5c8360;
  background: linear-gradient(180deg, rgba(92, 131, 96, 1) 0%, rgba(142, 175, 140, 1) 100%);
}
.concept .icon-list {
  margin: 0 auto;
}
.concept__contents {
  width: 330px;
  padding-top: 110px;
  margin: 0 auto 60px;
}
.concept__title {
  color: #fff;
  font-size: 20px;
  font-weight: 600;
  line-height: 2.03;
  letter-spacing: 0.12em;
  padding-left: 30px;
}
.concept__text {
  color: #fff;
  font-size: 18px;
  font-weight: 400;
  line-height: 2.03;
  letter-spacing: 0.08em;
}
.concept__img {
  width: 100%;
}

@media screen and (max-width: 480px) {
  .concept {
    padding-bottom: 7.5vw;
  }
  .concept__contents {
    width: 67.9166vw;
    padding-top: 22.9166vw;
    margin: 0 auto 12.5vw;
  }
  .concept__title {
    font-size: 4.1666vw;
    padding-left: 6.25vw;
  }
  .concept__text {
    font-size: 3.75vw;
  }
}

/*===================
event-overview
===================*/
.event-overview {
  background-color: #f4ece3;
}
.event-overview__img {
  position: relative;
}
.event-overview .section-title {
  position: absolute;
  bottom: 91px;
  left: 18px;
  z-index: 2;
}
.event-overview__date {
  width: 397px;
  padding: 37px 0 62px;
  margin: 0 auto;
}

@media screen and (max-width: 480px) {
  .event-overview .section-title {
    bottom: 18.9583vw;
    left: 3.75vw;
  }
  .event-overview__date {
    width: 82.7083vw;
    padding: 7.7083vw 0 12.9166vw;
  }
}

/*===================
theme
===================*/
.theme__img {
  position: relative;
}
.theme .section-title {
  position: absolute;
  bottom: 91px;
  left: 18px;
  z-index: 2;
}
.theme__bg {
  width: 100%;
  position: absolute;
  bottom: 0;
  left: 0;
  z-index: 1;
}
.theme__contents {
  max-width: 480px;
  padding: 22px 0 65px;
  margin: 0 auto;
  background: #5c8360;
  background: linear-gradient(180deg, rgba(92, 131, 96, 1) 0%, rgba(142, 175, 140, 1) 100%);
}
.theme__heading,
.theme__text {
  color: #fff;
  text-align: center;
  letter-spacing: 0.06em;
}
.theme__heading {
  font-size: 23px;
  font-weight: 600;
  line-height: 1.73;
  margin-bottom: 22px;
}
.theme__text {
  font-size: 18px;
  font-weight: 400;
  line-height: 1.71;
  margin-bottom: 67px;
}
.theme__swiper .swiper-slide {
  width: 243px !important;
}
.theme__swiper-navigation {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 30px;
  margin-top: 30px;
}

.theme__swiper-prev,
.theme__swiper-next {
  width: 30px;
  height: 30px;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* 左 ▶ の反転 */
.theme__swiper-prev::before {
  content: "";
  display: block;
  width: 0;
  height: 0;
  border-top: 8px solid transparent;
  border-bottom: 8px solid transparent;
  border-right: 12px solid #fff;
}

/* 右 ▶ */
.theme__swiper-next::before {
  content: "";
  display: block;
  width: 0;
  height: 0;
  border-top: 8px solid transparent;
  border-bottom: 8px solid transparent;
  border-left: 12px solid #fff;
}

.theme__gift {
  padding: 68px 0 60px;
}
.theme__gift-title {
  font-size: 26px;
  font-weight: 600;
  text-align: center;
  line-height: 1.3;
  letter-spacing: 0.06em;
  width: fit-content;
  padding: 0 55px;
  margin: 0 auto 28px;
  position: relative;
}
.theme__gift-title::after,
.theme__gift-title::before {
  content: "";
  display: block;
  width: 29px;
  height: 48px;
  position: absolute;
  top: 50%;
  z-index: 1;
  transform: translateY(-50%);
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  -moz-transform: translateY(-50%);
  -o-transform: translateY(-50%);
}
.theme__gift-title::after {
  left: 0;
  background: url("../../ja/imgs/index/deco_title_left.svg") center center / cover no-repeat;
}
.theme__gift-title::before {
  right: 0;
  background: url("../../ja/imgs/index/deco_title_right.svg") center center / cover no-repeat;
}
.theme__gift-item {
  padding-top: 25px;
  position: relative;
}
.theme__gift-item:not(:last-child) {
  margin-bottom: 22px;
}
.theme__gift-heading {
  width: 248px;
  margin: 0 auto;
  position: absolute;
  top: 0;
  left: 50%;
  z-index: 1;
  transform: translateX(-50%);
  -webkit-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
  -moz-transform: translateX(-50%);
  -o-transform: translateX(-50%);
}
.theme__gift-text {
  font-size: 18px;
  font-weight: 600;
  text-align: center;
  line-height: 2.14;
  letter-spacing: 0.06em;
  padding-top: 22px;
}
.theme__gift-text--sml {
  font-size: 10px;
  text-align: center;
  line-height: 1.2;
  letter-spacing: 0.06em;
  display: block;
}
@media screen and (max-width: 480px) {
  .theme .section-title {
    bottom: 18.9583vw;
    left: 3.75vw;
  }
  .theme__contents {
    padding: 4.5833vw 0 13.5416vw;
  }
  .theme__heading {
    font-size: 4.7916vw;
    margin-bottom: 4.5833vw;
  }
  .theme__text {
    font-size: 3.75vw;
    margin-bottom: 13.9583vw;
  }
  .theme__swiper .swiper-slide {
    width: 50.625vw !important;
  }

  .theme__swiper-navigation {
    gap: 30px 6.25vw;
    margin-top: 6.25vw;
  }

  .theme__swiper-prev,
  .theme__swiper-next {
    width: 6.25vw;
    height: 6.25vw;
  }

  /* 左 ▶ の反転 */
  .theme__swiper-prev::before {
    border-top: 1.6666vw solid transparent;
    border-bottom: 1.6666vw solid transparent;
    border-right: 2.5vw solid #fff;
  }

  /* 右 ▶ */
  .theme__swiper-next::before {
    border-top: 1.6666vw solid transparent;
    border-bottom: 1.6666vw solid transparent;
    border-left: 2.5vw solid #fff;
  }

  .theme__gift {
    padding: 14.1666vw 0 12.5vw;
  }
  .theme__gift-title {
    font-size: 5.4166vw;
    padding: 0 11.4583vw;
    margin: 0 auto 5.8333vw;
  }
  .theme__gift-title::after,
  .theme__gift-title::before {
    width: 6.0416vw;
    height: 10vw;
  }
  .theme__gift-item {
    padding-top: 5.2083vw;
  }
  .theme__gift-item:not(:last-child) {
    margin-bottom: 4.5833vw;
  }
  .theme__gift-heading {
    width: 51.6666vw;
  }
  .theme__gift-text {
    font-size: 3.75vw;
    padding-top: 4.5833vw;
  }
}

@media screen and (max-width: 375px) {
  .theme__gift-text--sml {
    font-size: 2.6666vw;
  }
}

/*===================
profile
===================*/
.profile {
  padding-top: 99px;
  padding-bottom: 146px;
}
.profile__wrap {
  width: calc(100% - 20px);
  max-width: 480px;
  padding-top: 48px;
  margin: 0 0 0 auto;
}
.profile__swiper .swiper-slide {
  width: 319px !important;
}
.proflie__contents {
  display: block;
  position: relative;
  padding-bottom: 3px;
}
.proflie__contents::before {
  content: "";
  display: block;
  width: 3px;
  height: 100%;
  background-color: #447065;
  position: absolute;
  top: 0;
  left: 0;
}
.profile__img {
  width: 100%;
  margin-bottom: 31px;
}
.profile__name02 {
  font-size: 24px;
  font-weight: 400;
  line-height: 1.56;
  letter-spacing: 0.06em;
  padding-left: 20px;
  margin-bottom: 3px;
}
.profile__name01 {
  font-size: 15px;
  line-height: 1.3;
  letter-spacing: 0.06em;
  padding-left: 20px;
  margin-bottom: 1px;
}
.profile__name02 span {
  font-size: 15px;
  line-height: 1.3;
  letter-spacing: 0.06em;
}
.profile__btn {
  font-size: 18px;
  font-weight: 600;
  line-height: 1.57;
  letter-spacing: -0.02em;
  position: relative;
  width: fit-content;
  padding-right: 16px;
  margin-left: 20px;
}
.profile__btn::after {
  content: "";
  display: block;
  width: 0;
  height: 0;
  border-style: solid;
  border-top: 4px solid transparent;
  border-bottom: 4px solid transparent;
  border-left: 8px solid #447065;
  border-right: 0;
  position: absolute;
  top: 11px;
  right: 0;
}

.remodal-wrapper {
  text-align: left;
}
.remodal {
  color: #447065 !important;
  width: 100%;
  padding: 50px 20px !important;
  margin-bottom: 0 !important;
  max-width: var(--center-w); /* 480px = centerと同じ幅 */
  box-sizing: border-box;
  position: relative;
}
.remodal__contents {
  position: relative;
  margin-bottom: 20px;
}
.remodal__contents:before {
  content: "";
  display: block;
  width: 3px;
  height: 100%;
  background-color: #447065;
  position: absolute;
  top: 0;
  left: 0;
}
.profile__text {
  color: #447065;
  font-size: 12px;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  line-height: 1.75;
}
.remodal-cancel {
  position: absolute;
  top: 10px;
  right: 10px;
  width: 30px;
  min-width: initial !important;
  height: 30px;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
}
.remodal-cancel:hover,
.remodal-cancel:focus {
  background: none;
}

/* × */
.remodal-cancel::before,
.remodal-cancel::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 24px;
  height: 1px;
  background: #447065;
}

.remodal-cancel::before {
  transform: translate(-50%, -50%) rotate(45deg);
}

.remodal-cancel::after {
  transform: translate(-50%, -50%) rotate(-45deg);
}
@media screen and (min-width: 481px) {
  .remodal-wrapper {
    padding-left: calc(var(--left-w) + (100% - var(--natural-w)) * var(--left-ratio));
    padding-right: calc(var(--right-w) + (100% - var(--natural-w)) * var(--right-ratio));
  }
}

@media screen and (min-width: 481px) and (max-width: 1000px) {
  .remodal-wrapper {
    padding-left: calc((100% - var(--center-w)) / 2);
    padding-right: calc((100% - var(--center-w)) / 2);
  }
}

@media screen and (max-width: 480px) {
  .profile {
    padding-top: 20.625vw;
    padding-bottom: 30.4166vw;
  }
  .profile__wrap {
    padding-top: 10vw;
  }
  .profile__swiper .swiper-slide {
    width: 66.4583vw !important;
  }
  .proflie__contents {
    padding-bottom: 0.625vw;
  }
  .proflie__contents::before {
    width: 0.625vw;
  }
  .profile__img {
    margin-bottom: 6.4583vw;
  }
  .profile__name02 {
    font-size: 5vw;
    padding-left: 4.1666vw;
    margin-bottom: 0.625vw;
  }
  .profile__name01 {
    font-size: 3.125vw;
    padding-left: 4.1666vw;
    margin-bottom: 0.2083vw;
  }
  .profile__name02 span {
    font-size: 3.125vw;
  }
  .profile__btn {
    font-size: 3.75vw;
    padding-right: 3.3333vw;
    margin-left: 4.1666vw;
  }
  .profile__btn::after {
    border-top: 0.8333vw solid transparent;
    border-bottom: 0.8333vw solid transparent;
    border-left: 1.6666vw solid #447065;
    top: 2.2916vw;
  }

  .remodal {
    padding: 10.4166vw 20px !important;
  }
  .remodal__contents {
    margin-bottom: 4.1666vw;
  }
  .remodal__contents:before {
    width: 0.625vw;
  }
  .remodal-cancel {
    top: 2.0833vw;
    right: 2.0833vw;
    width: 6.25vw;
    height: 6.25vw;
  }

  /* × */
  .remodal-cancel::before,
  .remodal-cancel::after {
    width: 5vw;
  }
}
@media screen and (max-width: 430px) {
  .profile__text {
    font-size: 2.7906vw;
  }
}

/*===================
what-nishiaizu
===================*/
.what-nishiaizu__img {
  padding-top: 88px;
  padding-bottom: 95px;
  background: url("../imgs/index/what-nishiaizu_img.png") center center / cover no-repeat;
}
.what-nishiaizu__img {
  position: relative;
}
.section-title__label--ja span.punctuation {
  letter-spacing: -0.25em;
  margin-bottom: 0;
  display: inline;
  padding: 0;
}
.what-nishiaizu__text {
  color: #fff;
  font-size: 18px;
  font-weight: 400;
  line-height: 2.42;
  letter-spacing: 0.018em;
  padding-top: 40px;
}

.what-nishiaizu__contents {
  padding-top: 159px;
  padding-bottom: 80px;
}
.what-nishiaizu__copy {
  width: calc(100% - 40px);
  max-width: 922px;
  padding-bottom: 30px;
  margin: 0 auto;
}
.what-nishiaizu__copy .img {
  min-width: 922px;
}
.js-scrollable {
  direction: rtl; /* 初期スクロール位置を右端にする */
}
.js-scrollable img {
  direction: ltr; /* 画像自体の向き・並びは通常通りに戻す */
}
.scroll-hint.is-right-scrollable,
.scroll-hint.is-left-scrollable {
  background-image: none !important;
  box-shadow: none !important;
}
.what-nishiaizu__mapWrap {
  position: relative;
  padding-top: 346px;
  margin-bottom: 96px;
}
.what-nishiaizu__map {
  width: 288px;
  position: absolute;
  bottom: 0;
  left: 30px;
  z-index: 2;
}
.what-nishiaizu__more {
  width: 132px;
  position: absolute;
  bottom: 37px;
  right: 20px;
  z-index: 3;
}
.what-nishiaizu__more a {
  display: block;
}
.what-nishiaizu__entry-btn {
  width: 100%;
  max-width: 440px;
  margin: 0 auto;
}
.what-nishiaizu__entry-btn a {
  font-size: 18px;
  font-weight: 600;
  text-align: center;
  line-height: 1.46;
  letter-spacing: -0.02em;
  padding: 20px 20px;
  display: block;
  background-color: #deb971;
  border-radius: 33px;
  position: relative;
  transition: all 0.3s;
}
.what-nishiaizu__entry-btn a::after {
  content: "";
  display: block;
  width: 0;
  height: 0;
  border-style: solid;
  border-top: 4px solid transparent;
  border-bottom: 4px solid transparent;
  border-left: 8px solid #447065;
  border-right: 0;
  position: absolute;
  top: 50%;
  right: 25px;
  z-index: 1;
  transform: translateY(-50%);
  transition: all 0.3s;
}
.what-nishiaizu__entry-btn a:hover {
  color: #deb971;
  background-color: #447065;
}
.what-nishiaizu__entry-btn a:hover::after {
  border-left: 8px solid #deb971;
}

@media screen and (max-width: 480px) {
  .what-nishiaizu__img {
    padding-top: 18.3333vw;
    padding-bottom: 19.7916vw;
  }
  .what-nishiaizu__text {
    font-size: 3.75vw;
    padding-top: 8.3333vw;
  }

  .what-nishiaizu__contents {
    padding-top: 33.125vw;
    padding-bottom: 16.6666vw;
  }
  .what-nishiaizu__copy {
    max-width: 192.0833vw;
    padding-bottom: 6.25vw;
  }
  .what-nishiaizu__copy .img {
    min-width: 192.0833vw;
  }
  .what-nishiaizu__mapWrap {
    padding-top: 72.0833vw;
    margin-bottom: 20vw;
  }
  .what-nishiaizu__map {
    width: 60vw;
    left: 6.25vw;
  }
  .what-nishiaizu__more {
    width: 27.5vw;
    bottom: 7.7083vw;
    right: 4.1666vw;
  }
  .what-nishiaizu__entry-btn {
    max-width: 91.6666vw;
  }
  .what-nishiaizu__entry-btn a {
    font-size: 3.75vw;
    padding: 4.1666vw 20px;
  }
  .what-nishiaizu__entry-btn a::after {
    border-top: 0.8333vw solid transparent;
    border-bottom: 0.8333vw solid transparent;
    border-left: 1.6666vw solid #447065;
    right: 5.2083vw;
  }
  .what-nishiaizu__entry-btn a:hover::after {
    border-left: 1.6666vw solid #deb971;
  }
}

@media screen and (max-width: 460px) {
  .what-nishiaizu .section-title__label--ja {
    font-size: 7.4vw;
  }
}

@media screen and (max-width: 405px) {
  .what-nishiaizu .section-title__label--ja {
    font-size: 7.3vw;
  }
}

@media screen and (max-width: 365px) {
  .what-nishiaizu .section-title__label--ja {
    font-size: 7.2vw;
  }
}

@media screen and (max-width: 325px) {
  .what-nishiaizu .section-title__label--ja {
    font-size: 7.15vw;
  }
}
