@keyframes slideInFromLeft {
  0% {
    transform: translateX(-120%);
    opacity: 0;
  }
  65% {
    transform: translateX(8%);
    opacity: 1;
  }
  100% {
    transform: translateX(-2%);
    opacity: 1;
  }
}
.c-mttl {
  text-align: center;
  font-feature-settings: "halt" on;
  font-size: 4.8rem;
  font-weight: 700;
  line-height: 1.7;
  position: relative;
  z-index: 10;
}
@media only screen and (max-width: 640px) {
  .c-mttl {
    font-size: 6.71875vw;
  }
}
.c-mttl span {
  background: #fff;
  padding: 0 1.8rem;
  box-decoration-break: clone;
}
@media only screen and (max-width: 640px) {
  .c-mttl span {
    padding: 0 3.125vw 0.78125vw;
  }
}

.c-text {
  text-align: center;
  font-feature-settings: "halt" on;
  font-style: normal;
  line-height: 2;
  letter-spacing: 1px;
}
@media only screen and (max-width: 1390px) {
  .c-text {
    font-size: 1.8rem;
  }
}
@media only screen and (max-width: 640px) {
  .c-text {
    text-align: left;
    line-height: 1.7;
  }
}
.c-text.-bold {
  font-weight: 700;
}
.c-text.-tight {
  line-height: 1.6;
}

.c-button .c-button__content {
  display: flex;
  align-items: center;
  gap: 2rem;
  padding: 2rem 3rem 2rem 6rem;
  border-radius: 12px;
  border: 3px solid #66bf97;
  background: #fff;
  margin: 2.5em auto;
  width: fit-content;
}
@media only screen and (max-width: 640px) {
  .c-button .c-button__content {
    margin-top: 4.6875vw;
  }
}
.c-button .c-button__content:hover {
  opacity: 0.7;
  transform: translate(0, -3px);
  transition: 0.3s;
}
.c-button .c-button__content span {
  color: #66bf97;
  font-feature-settings: "halt" on;
  font-family: "Noto Sans JP";
  font-size: 2.4rem;
  font-weight: 700;
  line-height: 1;
  width: fit-content;
}
.c-button .c-button__content .-close {
  display: none;
}
.c-button .c-button__content img {
  width: 1.9rem;
  height: 1.9rem;
}
.c-button.is-open button img {
  transform: rotate(-90deg);
  transition: 0.3s;
}
.c-button.is-open button .-open {
  display: none;
}
.c-button.is-open button .-close {
  display: block;
}

.-color-green {
  color: #66bf97;
}

.color-gray {
  color: #595757;
}

.color-white {
  color: #fff;
}

.color-bg-brown {
  background: #d2a47e !important;
}

.color-bg-green {
  background: #66bf97 !important;
}

.mv {
  position: relative;
}
.mv .deco01 {
  position: absolute;
  bottom: 0;
  left: 7.2916666667vw;
  width: 21.875vw;
  animation: slideInFromLeft 0.45s cubic-bezier(0.25, 0.46, 0.45, 0.94) 1s both;
  animation-play-state: paused;
}
.mv .deco01.isPlay {
  animation-play-state: running;
}
@media only screen and (max-width: 1200px) {
  .mv .deco01 {
    left: 9rem;
    width: 26.6rem;
  }
}
@media only screen and (max-width: 640px) {
  .mv .deco01 {
    bottom: -1.5625vw;
    left: 12.5vw;
    width: 36.875vw;
  }
}

.intro.is-open .content {
  position: relative;
}
.intro.is-open .content::before {
  background: url(../img/bg-intro01.webp) no-repeat center top;
  background-size: contain;
  aspect-ratio: 591/1117;
}
@media only screen and (max-width: 1580px) {
  .intro.is-open .content::before {
    left: 0;
  }
}
@media only screen and (max-width: 1200px) {
  .intro.is-open .content::before {
    width: 37rem;
  }
}
@media only screen and (max-width: 640px) {
  .intro.is-open .content::before {
    background: url(../img/bg-intro01-sp.png) no-repeat center center;
    background-size: contain;
    width: 39.0625vw;
    aspect-ratio: 496/1132;
    top: -14.0625vw;
    left: -4.6875vw;
  }
}
.intro.is-open .content::after {
  background: url(../img/bg-intro02.webp) no-repeat center bottom;
  background-size: contain;
  aspect-ratio: 591/1117;
}
@media only screen and (max-width: 1580px) {
  .intro.is-open .content::after {
    right: 0;
  }
}
@media only screen and (max-width: 1390px) {
  .intro.is-open .content::after {
    right: -3%;
  }
}
@media only screen and (max-width: 1200px) {
  .intro.is-open .content::after {
    right: -3.6rem;
    width: 37rem;
  }
}
@media only screen and (max-width: 640px) {
  .intro.is-open .content::after {
    background: url(../img/bg-intro02-sp.png) no-repeat center center;
    background-size: contain;
    width: 39.0625vw;
    aspect-ratio: 464/1139;
    bottom: -25vw;
    right: -4.6875vw;
    z-index: -1;
  }
}
.intro .content {
  margin-top: 16rem;
  margin-bottom: 17rem;
  position: relative;
}
@media only screen and (max-width: 640px) {
  .intro .content {
    margin-top: 12.5vw;
    margin-bottom: 25vw;
  }
}
.intro .content::before {
  content: "";
  position: absolute;
  background: url(../img/bg-intro01.webp) no-repeat center center;
  background-size: contain;
  top: -17rem;
  left: 0;
  width: 40.5208333333vw;
  aspect-ratio: 778/762;
}
@media only screen and (max-width: 1580px) {
  .intro .content::before {
    top: -28%;
  }
}
@media only screen and (max-width: 1390px) {
  .intro .content::before {
    top: -28%;
    left: -2%;
  }
}
@media only screen and (max-width: 1200px) {
  .intro .content::before {
    top: -15.6rem;
    width: 48.6rem;
  }
}
@media only screen and (max-width: 640px) {
  .intro .content::before {
    background: url(../img/bg-intro01-sp.webp) no-repeat center center;
    background-size: contain;
    width: 39.0625vw;
    aspect-ratio: 496/1132;
    top: -14.0625vw;
    left: -3.125vw;
  }
}
.intro .content::after {
  content: "";
  position: absolute;
  background: url(../img/bg-intro02.webp) no-repeat center center;
  background-size: contain;
  width: 41.5104166667vw;
  aspect-ratio: 797/794;
  bottom: -13.5rem;
  right: 0;
}
@media only screen and (max-width: 1200px) {
  .intro .content::after {
    width: 49.8rem;
  }
}
@media only screen and (max-width: 640px) {
  .intro .content::after {
    background: url(../img/bg-intro02-sp.webp) no-repeat center center;
    background-size: contain;
    width: 39.0625vw;
    aspect-ratio: 464/1139;
    bottom: -20.3125vw;
    right: -3.125vw;
    z-index: -1;
  }
}
@media only screen and (max-width: 640px) {
  .intro .inner {
    padding: 0 14.0625vw;
  }
}

.js-accordion-target {
  display: none;
}
.js-accordion-target.is-open {
  display: block;
}

.story {
  background: #d2a47e;
  position: relative;
}
.story::before {
  content: "";
  position: absolute;
  background: url(../img/bg-grass02.png) no-repeat bottom center;
  background-size: contain;
  width: 100%;
  aspect-ratio: 1920/124;
  top: -3rem;
  left: 0;
}
@media only screen and (max-width: 640px) {
  .story::before {
    background: url(../img/bg-grass02-sp.png) no-repeat bottom center;
    background-size: contain;
    width: 100%;
    aspect-ratio: 640/124;
    top: -4.6875vw;
  }
}
.story .content {
  padding: 17rem 0 21rem;
  position: relative;
  margin-bottom: 0;
}
@media only screen and (max-width: 640px) {
  .story .content {
    padding: 26.5625vw 0 32.8125vw;
  }
}
.story .content::before {
  content: "";
  position: absolute;
  background: url(../img/bg-intro04.png) no-repeat center center;
  background-size: contain;
  width: 42.5rem;
  aspect-ratio: 425/553;
  top: 17rem;
  left: 0;
}
@media only screen and (max-width: 640px) {
  .story .content::before {
    width: 48%;
    top: -1%;
    left: -5%;
  }
}
.story .content::after {
  content: "";
  position: absolute;
  background: url(../img/bg-intro05.png) no-repeat center center;
  background-size: contain;
  width: 50rem;
  aspect-ratio: 500/695;
  top: 5rem;
  right: 0;
  z-index: 1;
}
@media only screen and (max-width: 640px) {
  .story .content::after {
    width: 45%;
    top: auto;
    bottom: 6%;
  }
}
.story .inner {
  position: relative;
  z-index: 20;
}
@media only screen and (max-width: 1390px) {
  .story .story_text {
    margin: 0 auto;
    width: 75%;
  }
}
@media only screen and (max-width: 640px) {
  .story .story_text {
    padding: 0 9.375vw;
    width: 100%;
  }
  .story .story_text br {
    text-align: left;
  }
}

.message {
  background: #d3e6f6;
  position: relative;
}
.message::before {
  content: "";
  position: absolute;
  background: url(../img/bg-grass01.png) repeat-x top right;
  background-size: contain;
  width: 100%;
  aspect-ratio: 1920/124;
  top: -2.9rem;
  left: 0;
  z-index: 1;
}
@media only screen and (max-width: 640px) {
  .message::before {
    background: url(../img/bg-grass01-sp.png) no-repeat top center;
    background-size: contain;
    width: 100%;
    aspect-ratio: 640/124;
    top: -4.6875vw;
  }
}
.message .content {
  margin-top: -2rem;
  margin-bottom: 0;
  padding-top: 16rem;
  padding-bottom: 55rem;
  position: relative;
}
@media only screen and (max-width: 640px) {
  .message .content {
    padding-bottom: 40.625vw;
  }
}
.message .content::before {
  content: "";
  position: absolute;
  background: url(../img/bg-deco-fish.png) no-repeat center center;
  background-size: contain;
  width: 16.1458333333vw;
  aspect-ratio: 310/220;
  top: 37rem;
  left: 2.5vw;
}
@media only screen and (max-width: 1580px) {
  .message .content::before {
    width: 25.5rem;
    top: 5%;
  }
}
@media only screen and (max-width: 640px) {
  .message .content::before {
    width: 40%;
    top: 1%;
    z-index: 2;
  }
}
.message .content::after {
  content: "";
  position: absolute;
  background: url(../img/bg-deco-whale.png) no-repeat center center;
  background-size: contain;
  width: 124rem;
  aspect-ratio: 1240/383;
  bottom: 15rem;
  right: 3.6rem;
  animation: swayLeftRight 6s ease-in-out infinite alternate;
}
@keyframes swayLeftRight {
  0% {
    transform: translateX(0);
  }
  50% {
    transform: translateX(-2rem);
  }
  100% {
    transform: translateX(2rem);
  }
}
@media only screen and (max-width: 640px) {
  .message .content::after {
    width: 90%;
    right: 1.5625vw;
    bottom: 7.8125vw;
  }
}

.message__titile {
  position: relative;
}
.message__titile::after {
  content: "";
  position: absolute;
  background: url(../img/bg-deco-turtle.png) no-repeat center center;
  background-size: contain;
  width: 20.2rem;
  aspect-ratio: 202/152;
  bottom: -3.3rem;
  right: 0;
}
@media only screen and (max-width: 640px) {
  .message__titile::after {
    width: 23.4375vw;
    right: -3.125vw;
    bottom: 6.25vw;
  }
}

.message__wrapper {
  display: flex;
  justify-content: space-between;
  margin-top: 9.5rem;
}
@media only screen and (max-width: 640px) {
  .message__wrapper {
    flex-direction: column-reverse;
    gap: 4.6875vw;
    margin-top: 7.8125vw;
  }
}

.message__textarea {
  width: 57rem;
}
@media only screen and (max-width: 640px) {
  .message__textarea {
    width: 100%;
  }
}

.message__name {
  color: rgba(0, 0, 0, 0.7);
  font-feature-settings: "halt" on;
  font-size: 3.6rem;
  font-weight: 700;
  line-height: 1.4;
  margin-top: 5rem;
  text-align: right;
}
@media only screen and (max-width: 640px) {
  .message__name {
    margin-top: 3.125vw;
    font-size: 6.25vw;
  }
}

.message__position {
  font-size: 2rem;
  font-weight: 700;
  line-height: 2.33;
  margin-right: 2rem;
}
@media only screen and (max-width: 640px) {
  .message__position {
    font-size: 3.75vw;
    margin-right: 3.125vw;
  }
}

.message__img {
  width: 44.5rem;
}
@media only screen and (max-width: 640px) {
  .message__img {
    width: 70%;
    margin: 0 auto;
  }
}
.message__img img {
  border-radius: 24px;
  border: 6px solid #fff;
  width: 100%;
}

.overview {
  position: relative;
}
.overview::before {
  content: "";
  position: absolute;
  background: url(../img/bg-wave01.png) no-repeat top center;
  background-size: cover;
  width: 100%;
  aspect-ratio: 1920/157;
  top: -9rem;
  left: 0;
  z-index: 1;
}
@media only screen and (max-width: 640px) {
  .overview::before {
    top: -3.125vw;
  }
}
.overview .content {
  margin: 0;
  padding-top: 13rem;
  padding-bottom: 15rem;
}
@media only screen and (max-width: 640px) {
  .overview .content {
    padding-top: 20.3125vw;
    padding-bottom: 15.625vw;
  }
}

.overview__title {
  position: relative;
  z-index: 10;
}

.overview__wrapper {
  border-radius: 2.4rem;
  background: #fff;
  padding: 9.5rem 0 7.5rem 19rem;
  margin-top: -3.6rem;
  position: relative;
}
@media only screen and (max-width: 640px) {
  .overview__wrapper {
    padding: 14.0625vw 6.25vw 15.625vw;
  }
}
.overview__wrapper::before {
  content: "";
  position: absolute;
  background: url(../img/bg-deco-grass01.png) no-repeat center center;
  background-size: contain;
  width: 18.2rem;
  aspect-ratio: 182/291;
  top: -9.5rem;
  left: -10rem;
  z-index: 1;
}
@media only screen and (max-width: 640px) {
  .overview__wrapper::before {
    width: 30%;
    left: -6.25vw;
    top: -27.5vw;
  }
}
.overview__wrapper .deco01 {
  content: "";
  position: absolute;
  background: url(../img/bg-deco-kawauso01.png) no-repeat center center;
  background-size: contain;
  width: 39.6rem;
  aspect-ratio: 396/142;
  right: -11.2rem;
  bottom: -7.1rem;
}
.overview__wrapper .deco01.isPlay {
  animation: peekFromRight 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94) both;
  transition: transform 0.5s cubic-bezier(0.6, 0.04, 0.98, 0.335), opacity 0.5s cubic-bezier(0.6, 0.04, 0.98, 0.335);
}
@keyframes peekFromRight {
  0% {
    transform: translateX(50%);
    opacity: 0;
  }
  100% {
    transform: translateX(0);
    opacity: 1;
  }
}
@media only screen and (max-width: 640px) {
  .overview__wrapper .deco01 {
    width: 56.25vw;
    right: -15.625vw;
    bottom: -15.625vw;
  }
}

.overview__table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0 2rem;
  margin-top: -2rem;
}
@media only screen and (max-width: 640px) {
  .overview__table {
    border-spacing: 0 3.125vw;
    margin-top: -3.125vw;
  }
}
.overview__table th {
  width: 11rem;
  background: #d2a47e;
  color: #fff;
  text-align: center;
  font-feature-settings: "halt" on;
  font-size: 2.4rem;
  letter-spacing: 1.2px;
}
@media only screen and (max-width: 640px) {
  .overview__table th {
    display: block;
    font-size: 4.0625vw;
    width: 17.1875vw;
  }
}
.overview__table td {
  color: rgba(0, 0, 0, 0.8);
  font-feature-settings: "halt" on;
  font-size: 2.4rem;
  font-weight: 500;
  letter-spacing: 1.2px;
  padding-left: 1em;
}
@media only screen and (max-width: 640px) {
  .overview__table td {
    display: block;
    padding-left: 0;
    margin-top: 0.5em;
    font-size: 4.0625vw;
  }
}

.map__wrapper {
  position: relative;
  margin-top: -9rem;
}
@media only screen and (max-width: 640px) {
  .map__wrapper {
    margin-top: -9.375vw;
    overflow-x: auto;
  }
}

.map__inner-scroll {
  position: relative;
  width: 100%;
}
@media only screen and (max-width: 640px) {
  .map__inner-scroll {
    width: 90rem;
  }
}

.map__img {
  width: 100%;
}

.map__item.-place01 {
  position: absolute;
  top: 22%;
  right: 14%;
  width: 13.75%;
  aspect-ratio: 264/139;
}
.map__item.-place02 {
  position: absolute;
  top: 49%;
  right: 20%;
  width: 9.6354166667%;
  aspect-ratio: 185/141;
}
.map__item.-place03 {
  position: absolute;
  top: 31%;
  right: 32%;
  width: 9.53125%;
  aspect-ratio: 183/138;
}
.map__item.-place04 {
  position: absolute;
  top: 53%;
  right: 40%;
  width: 13.2291666667%;
  aspect-ratio: 254/139;
}
.map__item.-place05 {
  position: absolute;
  top: 27%;
  left: 35%;
  width: 9.0625%;
  aspect-ratio: 174/138;
}
.map__item.-place06 {
  position: absolute;
  top: 37%;
  left: 14%;
  width: 16.5625%;
  aspect-ratio: 318/155;
}
.map__item > button {
  display: block;
  background: none;
  border: none;
  -webkit-tap-highlight-color: transparent;
  cursor: pointer;
  transition: 0.3s;
}
.map__item > button:active {
  opacity: 1;
}
.map__item > button:hover {
  transform: translate(0, -5px);
}
@media only screen and (max-width: 640px) {
  .map__item > button:hover {
    transform: scale(1.5);
  }
}
@media only screen and (max-width: 640px) {
  .map__item > button {
    transform: scale(1.5);
    transform-origin: center center;
  }
}

@keyframes mapModalFadeIn {
  from {
    opacity: 0;
    transform: translate(-50%, -48%);
  }
  to {
    opacity: 1;
    transform: translate(-50%, -50%);
  }
}
.map_modal-close {
  position: absolute;
  top: 0.8rem;
  right: 0.8rem;
  width: 3.2rem;
  height: 3.2rem;
  border-radius: 50%;
  background: #595757;
  border: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  transition: background 0.2s, opacity 0.2s;
  z-index: 1;
}
.map_modal-close::before, .map_modal-close::after {
  content: "";
  display: block;
  position: absolute;
  width: 1.6rem;
  height: 2px;
  background: #fff;
  border-radius: 1px;
}
.map_modal-close::before {
  transform: rotate(45deg);
}
.map_modal-close::after {
  transform: rotate(-45deg);
}
.map_modal-close:hover {
  opacity: 0.7;
}
@media only screen and (max-width: 640px) {
  .map_modal-close {
    top: 2.5vw;
    right: 2.5vw;
    width: 5.625vw;
    height: 5.625vw;
  }
  .map_modal-close::before, .map_modal-close::after {
    width: 2.5vw;
  }
}

.map_modal {
  background: none;
  border: none;
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  overflow: hidden;
}
.map_modal::backdrop {
  background: transparent;
}
.map_modal[open] {
  animation: mapModalFadeIn 0.3s ease forwards;
}
@media only screen and (max-width: 640px) {
  .map_modal {
    width: 90%;
  }
}

.map_modal-wrapper {
  display: flex;
  align-items: center;
  width: 95rem;
  background: #fff;
  border-radius: 24px;
  box-shadow: 0 4px 24px 0 rgba(0, 0, 0, 0.15);
  padding: 3rem;
  gap: 4rem;
}
@media only screen and (max-width: 640px) {
  .map_modal-wrapper {
    width: 100%;
    flex-direction: column;
    padding: 4.6875vw;
    gap: 3.125vw;
  }
}
.map_modal-wrapper figcaption {
  margin-top: 0.5em;
  font-size: 1.3rem;
}
@media only screen and (max-width: 640px) {
  .map_modal-wrapper figcaption {
    font-size: 2.5vw;
  }
}

.map_modal-img {
  width: 50.9473684211%;
}
@media only screen and (max-width: 640px) {
  .map_modal-img {
    width: 100%;
  }
}

.map_modal-texta {
  flex: 1;
  color: rgba(0, 0, 0, 0.8);
  font-feature-settings: "halt" on;
  font-family: "Noto Sans JP";
}

.map_modal-mttl {
  display: flex;
  align-items: center;
}
.map_modal-mttl img {
  width: 11.4285714286%;
  height: auto;
}
.map_modal-mttl p {
  font-size: 2.8rem;
  font-weight: 700;
  line-height: 1.3;
  margin-left: 0.5em;
}
@media only screen and (max-width: 640px) {
  .map_modal-mttl p {
    font-size: 4.6875vw;
  }
}

.map_modal-sttl {
  font-size: 2rem;
  font-weight: 700;
  line-height: 2.33;
}
@media only screen and (max-width: 640px) {
  .map_modal-sttl {
    font-size: 3.75vw;
  }
}

.map_modal-text {
  font-size: 1.6rem;
  line-height: 1.6;
  letter-spacing: 0.8px;
  margin-top: 1em;
}
@media only screen and (max-width: 640px) {
  .map_modal-text {
    font-size: 3.125vw;
  }
}

.introduction__img {
  width: 54rem;
  margin: 7.3rem auto;
}
@media only screen and (max-width: 640px) {
  .introduction__img {
    width: 50%;
    margin: 7.8125vw auto;
  }
}

.gallery .content {
  margin-bottom: 0;
}

.gallery__slider {
  background: #66bf97;
  padding: 12rem 0;
  margin-top: -3.6rem;
}
@media only screen and (max-width: 640px) {
  .gallery__slider {
    padding: 15.625vw 5vw;
    margin-top: -5.625vw;
  }
}

.swiper-slide {
  position: relative;
  padding-bottom: 10rem;
}
@media only screen and (max-width: 640px) {
  .swiper-slide {
    padding-bottom: 12.5vw;
  }
}
.swiper-slide img {
  display: block;
  border-radius: 24px;
  outline: 6px solid #fff;
  outline-offset: -6px;
}
.swiper-slide span {
  color: #fff;
  text-align: center;
  font-feature-settings: "halt" on;
  font-size: 2.8rem;
  font-weight: 700;
  line-height: 1;
  background: #f39800;
  padding: 0.5rem 1.6rem 0.9rem;
  width: fit-content;
  display: block;
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  bottom: 8rem;
}
@media only screen and (max-width: 640px) {
  .swiper-slide span {
    font-size: 4.375vw;
    bottom: 9.375vw;
  }
}

.swiper-pagination .swiper-pagination-bullet {
  background: #fff;
  opacity: 1;
  width: 2rem;
  height: 2rem;
  margin: 0 1.5rem !important;
}
@media only screen and (max-width: 640px) {
  .swiper-pagination .swiper-pagination-bullet {
    width: 3.125vw;
    height: 3.125vw;
    margin: 0 2.34375vw !important;
  }
}
.swiper-pagination .swiper-pagination-bullet-active {
  background: #595757;
}

.lottery {
  position: relative;
}
.lottery::before {
  content: "";
  position: absolute;
  background: url(../img/bg-grass02.png) no-repeat top center;
  background-size: contain;
  width: 100%;
  aspect-ratio: 1920/124;
  top: -2.9rem;
  left: 0;
}
@media only screen and (max-width: 640px) {
  .lottery::before {
    background: url(../img/bg-grass02-sp.png) no-repeat top center;
    background-size: contain;
    width: 100%;
    aspect-ratio: 640/124;
    top: -4.6875vw;
  }
}
.lottery .content {
  padding-top: 24rem;
  margin: 0;
}
@media only screen and (max-width: 640px) {
  .lottery .content {
    padding-top: 15.625vw;
  }
}

.lottery__wrpper {
  border-radius: 24px;
  background: #f39800;
  padding: 5rem 7rem 5rem 0;
  position: relative;
}
@media only screen and (max-width: 640px) {
  .lottery__wrpper {
    padding: 6.25vw 4.6875vw 85.9375vw;
  }
}
.lottery__wrpper::before {
  content: "";
  position: absolute;
  background: url(../img/img-lottery.png) no-repeat center center;
  background-size: contain;
  width: 51.6rem;
  aspect-ratio: 516/498;
  top: -12rem;
  left: 1.6rem;
}
@media only screen and (max-width: 640px) {
  .lottery__wrpper::before {
    width: 90%;
    top: 75vw;
    left: 14%;
    transform: rotate(4deg);
  }
}
.lottery__wrpper::after {
  content: "";
  position: absolute;
  background: url(../img/bg-deco-lottely.png) no-repeat center center;
  background-size: contain;
  width: 23.2rem;
  aspect-ratio: 232/395;
  top: -8.3rem;
  right: -5.3rem;
}
@media only screen and (max-width: 640px) {
  .lottery__wrpper::after {
    width: 36.25vw;
    top: -12.96875vw;
    right: -4.6875vw;
  }
}

.lottery__textarea {
  width: 61.1rem;
  margin-left: auto;
  display: flex;
  flex-direction: column;
  gap: 3.5rem;
}
@media only screen and (max-width: 640px) {
  .lottery__textarea {
    width: 95%;
    gap: 3.125vw;
  }
}
@media only screen and (max-width: 640px) {
  .lottery__textarea .c-text {
    width: 95%;
  }
}

.lottery__title {
  color: #fff;
  font-feature-settings: "halt" on;
  font-size: 4.8rem;
  font-style: normal;
  font-weight: 700;
  line-height: 1.2;
}
@media only screen and (max-width: 640px) {
  .lottery__title {
    font-size: 6.25vw;
  }
}
.lottery__title span {
  font-size: 3.2rem;
}
@media only screen and (max-width: 640px) {
  .lottery__title span {
    font-size: 4.375vw;
  }
}

.news__wrapper {
  border-radius: 24px;
  background: #fff;
  padding: 10rem 0 5rem 14rem;
  margin-top: -3.6rem;
}
@media only screen and (max-width: 640px) {
  .news__wrapper {
    padding: 7.8125vw 4.6875vw 4.6875vw;
    margin-top: -5.625vw;
  }
}

.news__table {
  width: 100%;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 1px;
  color: #595757;
  border-collapse: separate;
  border-spacing: 0 4.8rem;
  margin-top: -4.8rem;
}
@media only screen and (max-width: 640px) {
  .news__table {
    border-spacing: 0 4.6875vw;
    margin-top: -4.6875vw;
  }
}
.news__table th {
  width: 12rem;
  text-align: left;
}
@media only screen and (max-width: 640px) {
  .news__table th {
    display: block;
    width: 100%;
  }
}
.news__table td {
  padding-left: 1rem;
}
@media only screen and (max-width: 640px) {
  .news__table td {
    display: block;
    width: 100%;
    padding-left: 0;
    margin-top: 0.5em;
  }
}

.access__wrapper {
  border-radius: 24px;
  background: #fff;
  padding: 7.5rem 6rem 5rem;
  margin-top: -3.6rem;
}
@media only screen and (max-width: 640px) {
  .access__wrapper {
    padding: 7.8125vw 4.6875vw 4.6875vw;
    margin-top: -5.625vw;
  }
}

.access__address {
  color: #595757;
  font-feature-settings: "halt" on;
  font-weight: 700;
  line-height: 2.8;
  text-align: center;
}
@media only screen and (max-width: 640px) {
  .access__address {
    line-height: 1.6;
  }
}

.access__map {
  margin-top: 1em;
  width: 100%;
  aspect-ratio: 979/516;
}
.access__map iframe {
  width: 100%;
  height: 100%;
}

.contact {
  background: #d2a47e;
  position: relative;
}
.contact::before {
  content: "";
  position: absolute;
  background: url(../img/bg-grass02.png) no-repeat bottom center;
  background-size: contain;
  width: 100%;
  aspect-ratio: 1920/124;
  top: -3rem;
  left: 0;
}
@media only screen and (max-width: 640px) {
  .contact::before {
    background: url(../img/bg-grass02-sp.png) no-repeat bottom center;
    background-size: contain;
    width: 100%;
    aspect-ratio: 640/124;
    top: -4.6875vw;
  }
}
@keyframes slideInFromRight {
  0% {
    transform: translateX(120%);
    opacity: 0;
  }
  100% {
    transform: translateX(-8%);
    opacity: 1;
  }
}
.contact .deco01 {
  content: "";
  position: absolute;
  background: url(../img/bg-deco-kawauso03.png) no-repeat center center;
  background-size: contain;
  width: 34.3rem;
  aspect-ratio: 343/108;
  top: -5rem;
  right: 8rem;
}
@media only screen and (max-width: 640px) {
  .contact .deco01 {
    width: 50vw;
    top: 0;
    right: -3.125vw;
  }
}
.contact .deco01.isPlay {
  animation: slideInFromRight 0.65s cubic-bezier(0.25, 0.46, 0.45, 0.94) both;
  animation-play-state: paused;
}
.contact .isPlay.-running {
  animation-play-state: running;
}
@keyframes fadeIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
.contact .deco02 {
  content: "";
  position: absolute;
  width: 15.3rem;
  aspect-ratio: 153/229;
  top: -21.2rem;
  left: 1.5rem;
  animation: popUpFromBottom 1.2s cubic-bezier(0.65, 0, 0.35, 1) both;
  animation-play-state: paused;
}
@keyframes popUpFromBottom {
  0% {
    transform: translateY(100%) scale(0.95);
    opacity: 0;
  }
  60% {
    transform: translateY(-12%) scale(1.04);
    opacity: 1;
  }
  80% {
    transform: translateY(3%) scale(0.98);
  }
  100% {
    transform: translateY(0) scale(1);
    opacity: 1;
  }
}
.contact .deco02.isPlay {
  animation-play-state: running;
}
@media only screen and (max-width: 640px) {
  .contact .deco02 {
    width: 23.90625vw;
    top: -33.125vw;
    left: 2.34375vw;
  }
}
.contact .content {
  padding: 22rem 0 15rem;
  margin-bottom: 0;
}
@media only screen and (max-width: 640px) {
  .contact .content {
    padding: 23.4375vw 0 20.3125vw;
  }
}

.contact__wrapper {
  display: flex;
  align-items: center;
  background: #fff;
  border-radius: 24px;
  padding: 5.5rem 0 6.5rem 12rem;
  gap: 18.5rem;
  position: relative;
}
@media only screen and (max-width: 640px) {
  .contact__wrapper {
    flex-direction: column;
    gap: 4.6875vw;
    padding: 6.25vw 4.6875vw;
  }
}

.contact__title {
  color: rgba(0, 0, 0, 0.7);
  font-feature-settings: "halt" on;
  font-size: 4rem;
  font-weight: 700;
  line-height: 1.4;
}
@media only screen and (max-width: 640px) {
  .contact__title {
    font-size: 6.25vw;
  }
}

@media only screen and (max-width: 640px) {
  .contact__body {
    text-align: center;
  }
}

.contact__name {
  color: rgba(0, 0, 0, 0.7);
  font-feature-settings: "halt" on;
  font-size: 2.4rem;
  font-weight: 700;
  line-height: 1.6;
}
@media only screen and (max-width: 640px) {
  .contact__name {
    font-size: 3.75vw;
  }
}

.contact__tel {
  display: flex;
  align-items: baseline;
  margin-top: 0.6rem;
}
@media only screen and (max-width: 640px) {
  .contact__tel {
    justify-content: center;
  }
}
.contact__tel img {
  width: 2.9rem;
  aspect-ratio: 29/41;
  margin-right: 1rem;
}
@media only screen and (max-width: 640px) {
  .contact__tel img {
    width: 4.6875vw;
    margin-right: 1.5625vw;
  }
}
.contact__tel a {
  color: #e7378b;
  font-feature-settings: "halt" on;
  font-size: 6rem;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 3px;
}
@media only screen and (max-width: 640px) {
  .contact__tel a {
    font-size: 9.375vw;
  }
}

.contact__time {
  color: rgba(0, 0, 0, 0.8);
  font-kerning: none;
  font-feature-settings: "halt" on;
  line-height: 1;
  letter-spacing: 1px;
  margin-top: 1.7rem;
}
@media only screen and (max-width: 640px) {
  .contact__time {
    margin-top: 3.125vw;
  }
}

.contact__button {
  margin-top: 1em;
}
.contact__button a {
  display: block;
  background: #e7378b;
  border-radius: 12px;
  padding: 2rem 6rem;
  color: #fff;
  font-feature-settings: "halt" on;
  font-family: "Noto Sans JP";
  font-size: 20px;
  font-weight: 700;
}
@media only screen and (max-width: 640px) {
  .contact__button a {
    padding: 3.125vw;
    font-size: 4.0625vw;
  }
}

.cooperation {
  background: #595757;
  position: relative;
}
.cooperation::before {
  content: "";
  position: absolute;
  background: url(../img/bg-moutain01.png) no-repeat center center;
  background-size: contain;
  width: 100%;
  aspect-ratio: 1920/231;
  top: -6rem;
  left: 0;
}
@media only screen and (max-width: 640px) {
  .cooperation::before {
    background: url(../img/bg-moutain01-sp.png) no-repeat center center;
    background-size: contain;
    width: 100%;
    aspect-ratio: 640/231;
    top: -9.375vw;
  }
}
.cooperation .content {
  margin: 0;
  padding: 12rem 0 18rem;
}
@media only screen and (max-width: 640px) {
  .cooperation .content {
    padding: 12.5vw 0 23.4375vw;
  }
}
.cooperation__title {
  color: #fff;
  text-align: center;
  font-feature-settings: "halt" on;
  font-size: 4.8rem;
  font-weight: 700;
  line-height: 1.16;
}
@media only screen and (max-width: 640px) {
  .cooperation__title {
    font-size: 6.71875vw;
  }
}

.cooperation__item {
  color: #fff;
  text-align: center;
  font-feature-settings: "halt" on;
  font-size: 2.4rem;
  font-style: normal;
  font-weight: 700;
  line-height: 1.6;
}
@media only screen and (max-width: 640px) {
  .cooperation__item {
    font-size: 3.75vw;
    text-align: left;
  }
}

.cooperation__note {
  color: #fff;
  text-align: center;
  font-feature-settings: "halt" on;
  font-weight: 700;
  line-height: 1.6;
  margin-top: 1.5rem;
}
@media only screen and (max-width: 640px) {
  .cooperation__note {
    margin-top: 2.34375vw;
  }
}

.cooperation__img {
  width: 18rem;
  margin: 2.5rem auto 0;
}
@media only screen and (max-width: 640px) {
  .cooperation__img {
    width: 50%;
    margin: 3.90625vw auto 0;
  }
}/*# sourceMappingURL=index.css.map */