@charset "utf8";


* {
  margin: 0;
  padding: 0;
}

html {
  scroll-behavior: smooth;
}

body {
  font-family: "Zen Old Mincho", serif;
  font-weight: 400;
  font-style: normal;
}
@media screen and (max-width: 767px) {
  body {
    background-size: 100%;
  }
}

body.no-scroll {
  overflow: hidden;
}

main {
  overflow: hidden;
}

img {
  width: 100%;
  height: auto;
  vertical-align: top;
}

section {
  width: 100%;
  border: 0px solid;
}

picture {
  display: block;
}

a {
  text-decoration: none;
}

@media screen and (max-width: 767px) {
  ._pc{ display: none; }
}

@media screen and (min-width: 768px) {
  ._sp{ display: none; }
}

.spacer-40 {
  margin-bottom: 120px;
}
@media screen and (max-width: 767px) {
  .spacer-40 {
    margin-bottom: calc(40vw / 3.6);
  }  
}

.spacer-20 {
  margin-bottom: 80px;
}
@media screen and (max-width: 767px) {
  .spacer-20 {
    margin-bottom: calc(20vw / 3.6);
  }  
}

._clear {
  display: none;
}

/*---------------------------
fade
---------------------------*/
.fade-section {
  opacity: 1;
  transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}

.fade-section.hidden {
  opacity: 0;
}

/* 非表示時に display: none; を適用 */
.fade-section.hidden-display {
  display: none;
}

/*---------------------------
article
---------------------------*/
.article {
  max-width: 750px;
  width: 750px;
  height: auto;
  margin: auto;
  border: 0px solid;
}
@media screen and (max-width: 767px) {
  .article {
    width: 100%;
  }
}

.article-relative {
  position: relative;
  max-width: 750px;
  width: 750px;
  height: auto;
  margin: auto;
  border: 0px solid;
}
@media screen and (max-width: 767px) {
  .article-relative {
    width: 100%;
  }
}

.slot {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 11%;
  width: 90%;
  margin: auto;
}

.slot__number {
  position: absolute;
  top: 75.6%;
  left: 35%;
  width: 250px;
  text-align: right;
  font-size: 200px;
  font-weight: normal;
  color: #ff0000;
  border: 0px solid;
}
@media screen and (max-width: 767px) {
  .slot__number {
    top: 75%;
    width: calc(125vw / 3.6);
    font-size: calc(100vw / 3.6);
  }
}

.blink {
  animation: blinkAnime 0.7s infinite alternate;
}
@keyframes blinkAnime{
   0% { color: #eeeeee }
 100% { color: #ff0000 }
}

.select-key-wrapper {
  position: absolute;
  display: flex;
  flex-direction: column;
  gap: 5px;
  left: 0;
  right: 0;
  bottom: 37px;
  width: 90%;
  margin: auto;
  border: 0px solid;
}
@media screen and (max-width: 767px) {
  .select-key-wrapper {
    flex-direction: column;
    gap: calc(2.5vw / 3.6);
    bottom: calc(18vw / 3.6);
  }
}

.select-key {
  position: relative;
  border: 0px solid;
}

.select-key:hover {
  cursor: pointer;
}

.key__img {
  position: absolute;
  top: 25px;
  left: 35px;
  width: 67%;
}
@media screen and (max-width: 767px) {
  .key__img {
    top: calc(12.5vw / 3.6);
    left: calc(17.5vw / 3.6);  
  }
}

/*---------------------------
section
---------------------------*/
.section__bg {
  max-width: 750px;
  width: 750px;
  margin: auto;
  background-image: url('/site_img/formile/750_07_bg.jpg?250203');
  background-repeat: no-repeat;
  background-size: 750px;
  background-position: center;
}
@media screen and (max-width: 767px) {
  .section__bg {
    width: 100%;
    background-size: 100%;  
  }
}

/*---------------------------
attraction
---------------------------*/
.attraction {
  padding-top: 30px;
  padding-bottom: 30px;
}
@media screen and (max-width: 767px) {
  .attraction {
    padding-top: calc(15vw / 3.6);
    padding-bottom: calc(15vw / 3.6);
  }
}

.attraction__item {
  width: 90%;
  margin: auto;
}

/*---------------------------
reviews
---------------------------*/
.reviews {
  position: absolute;
  top: 13%;
  left: 0;
  right: 0;
  width: 94%;
  margin: auto;
  border: 0px solid;
}

.reviews-wrapper {
  display: flex;
  flex-direction: column;
  gap: 120px;
  margin-bottom: 120px;
  border: 0px solid;
}
@media screen and (max-width: 767px) {
  .reviews-wrapper {
    gap: calc(35vw / 3.6);
    margin-bottom: calc(35vw / 3.6);
  }
}

.reviews__item {
  flex: 1;
  width: 100%;
  border: 0px solid #0000ff;
}

.reviews__item-head {
  position: relative;
  padding: 20px;
  font-size: 30px;
  font-weight: bold;
  background-color: #956700;
  color: #ffffff;
  border: 5px solid #956700;
  border-bottom: 0px;
  border-radius: 15px 15px 0px 0px;
}
@media screen and (max-width: 767px) {
  .reviews__item-head {
    padding: calc(10vw / 3.6) calc(12vw / 3.6) calc(12vw / 3.6) ;
    font-size: calc(16vw / 3.6);
    font-weight: normal;
    border-radius: calc(15vw / 3.6) calc(15vw / 3.6) 0px 0px;
  }
}

.reviews__item-icon {
  width: 22%;
  margin: -140px 0 0 auto;
  border: 0px solid;
}
@media screen and (max-width: 767px) {
  .reviews__item-icon {
    margin: calc(-60vw / 3.6) 0 0 auto;
  }
}

.reviews__item-body {
  padding: 20px;
  font-size: 28px;
  font-weight: bold;
  background-color: #ffffff;
  border: 5px solid #956700;
  border-top: 0px;
  border-radius: 0px 0px 15px 15px;
}
@media screen and (max-width: 767px) {
  .reviews__item-body {
    padding: calc(10vw / 3.6);
    font-size: calc(14vw / 3.6);
    font-weight: normal;
    border-radius: 0px 0px calc(15vw / 3.6) calc(15vw / 3.6);
  }
}

/*---------------------------
ボタン
---------------------------*/
.btn-cta--01 {
  width: 70%;
  margin: 0px auto 50px;
  text-align: center;
  font-size: 32px;
  color: #ffffff;
}
@media screen and (max-width: 767px) {
  .btn-cta--01 {
    margin: 0px auto calc(25vw / 3.6);
    font-size: calc(15vw / 3.6);
  }
}

.btn-cta--01:hover {
  cursor: pointer;
}

.btn-cta--02 {
  position: absolute;
  top: 78%;
  left: 0;
  right: 0;
  width: 70%;
  margin: 0px auto 60px;
  text-align: center;
  font-size: 32px;
  color: #ffffff;
}
@media screen and (max-width: 767px) {
  .btn-cta--02 {
    bottom: 5%;
    font-size: calc(15vw / 3.6);
  }
}

.btn-cta--02:hover {
  cursor: pointer;
}

/*---------------------------
フッター
---------------------------*/
.footer {
  max-width: 750px;
  width: 750px;
  margin: auto;
  background-color: #473301;
  color: #ffffff;
  letter-spacing: 0.1em;
}
@media screen and (max-width: 767px) {
  .footer {
    width: 100%;
  }
}

.footer-wrapper {
  display: flex;
  flex-direction: column;
  justify-content: center;
  flex-wrap: wrap;
  gap: 20px 40px;
  width: 90%;
  margin: auto;
  padding-top: 40px;
  text-align: center;
  font-size: 28px;
  text-wrap: nowrap;
  list-style: none;
  line-height: 1.8;
  border: 0px solid;
}
@media screen and (max-width: 767px) {
  .footer-wrapper {
    padding-top: calc(20vw / 3.6);
    font-size: calc(14vw / 3.6);
  }
}

.footer__item {
  color: #ffffff;
}

.copyright {
  width: 90%;
  margin: 60px auto 0px;
  padding-bottom: 20px;
  text-align: center;
  font-size: 24px;
  border: 0px solid;
}
@media screen and (max-width: 767px) {
  .copyright {
    margin: calc(30vw / 3.6) auto 0px;
    padding-bottom: calc(10vw / 3.6);
    font-size: calc(12vw / 3.6);
  }
}

/*---------------------------
モーダル
---------------------------*/
.modal {
  display: block;
  opacity: 0;
  visibility: hidden;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  text-align: center;
  overflow: auto;
  box-sizing: border-box;
  z-index: 9999;
  transition: opacity 0.5s ease-in-out, visibility 0.5s ease-in-out;
}

/* モーダル表示時 */
.modal.show {
  opacity: 1;
  visibility: visible;
}

.entry {
  position: absolute;
  top: 48%;
  left: 0;
  right: 0;
  width: 90%;
  margin: auto;
  border: 0px solid;
}

.modal__name {
  width: 100%;
  margin-bottom: 40px;
  font-size: 32px;
  font-weight: 700;
  color: #454545;
  line-height: 2.2;
  border: 0px solid;
}
@media screen and (max-width: 767px) {
  .modal__name {
    margin-bottom: calc(20vw / 3.6);
    font-size: calc(16vw / 3.6);
  }
}

.modal__name--input {
  width: 90%;
  height: 70px;
  padding-top: 0.5%;
  padding-left: 2%;
  font-size: 32px;
  font-weight: 400;
  color: #454545;
  background-color: #EDEDED;
  border: none;
  border-radius: 5px;
}
@media screen and (max-width: 767px) {
  .modal__name--input {
    height: calc(35vw / 3.6);
    font-size: calc(16vw / 3.6);
  }
}

.modal__gender {
  width: 100%;
  margin-bottom: 40px;
  font-size: 32px;
  font-weight: 700;
  color: #454545;
  line-height: 2.2;
  border: 0px solid;
}
@media screen and (max-width: 767px) {
  .modal__gender {
    margin-bottom: calc(20vw / 3.6);
    font-size: calc(16vw / 3.6);
  }
}

.modal__gender--input {
  display: flex;
  justify-content: center;
  gap: 5%;
  padding: 0px 5%;
}

label {
  flex: 1;
  text-align: center;
  border-radius: 5px;
  cursor: pointer;
  background-color: #EDEDED;
  transition: background-color 0.3s;
}

/* 選択されたラジオボタンのラベルの背景を変える */
label:has(input:checked) {
  background-color: #EC7886;
  color: #ffffff;
}

/* ラジオボタンを非表示にする */
input[type="radio"] {
  display: none;
}

.modal__birthday {
  width: 100%;
  margin-bottom: 40px;
  font-size: 32px;
  font-weight: 700;
  color: #454545;
  line-height: 2.2;
  border: 0px solid;
}
@media screen and (max-width: 767px) {
  .modal__birthday {
    margin-bottom: calc(20vw / 3.6);
    font-size: calc(16vw / 3.6);
  }
}

.modal__birthday-wrapper {
  display: flex;
  justify-content: center;
  gap: 0%;
  padding: 0px 5%;
}

.modal__birthday--year {
  flex: 28%;
  text-align: center;
  font-size: 32px;
  font-weight: 400;
  color: #454545;
  background-color: #EDEDED;
  border: none;
  border-radius: 5px;
}
@media screen and (max-width: 767px) {
  .modal__birthday--year {
    font-size: calc(16vw / 3.6);
  }
}

.modal__birthday__text--year {
  flex: 5%;
  font-size: 28px;
}
@media screen and (max-width: 767px) {
  .modal__birthday__text--year {
    font-size: calc(14vw / 3.6);
  }
}

.modal__birthday--month {
  flex: 28%;
  text-align: center;
  font-size: 32px;
  font-weight: 400;
  color: #454545;
  background-color: #EDEDED;
  border: none;
  border-radius: 5px;
}
@media screen and (max-width: 767px) {
  .modal__birthday--month {
    font-size: calc(16vw / 3.6);
  }
}

.modal__birthday__text--month {
  flex: 5%;
  font-size: 28px;
}
@media screen and (max-width: 767px) {
  .modal__birthday__text--month {
    font-size: calc(14vw / 3.6);
  }
}

.modal__birthday--day {
  flex: 28%;
  text-align: center;
  font-size: 32px;
  font-weight: 400;
  color: #454545;
  background-color: #EDEDED;
  border: none;
  border-radius: 5px;
}
@media screen and (max-width: 767px) {
  .modal__birthday--day {
    font-size: calc(16vw / 3.6);
  }
}

.modal__birthday__text--day {
  flex: 5%;
  font-size: 28px;
}
@media screen and (max-width: 767px) {
  .modal__birthday__text--day {
    font-size: calc(14vw / 3.6);
  }
}

.modal__email {
  width: 100%;
  margin-bottom: 60px;
  font-size: 32px;
  font-weight: 700;
  color: #454545;
  line-height: 2.2;
  border: 0px solid;
}
@media screen and (max-width: 767px) {
  .modal__email {
    margin-bottom: calc(30vw / 3.6);
    font-size: calc(16vw / 3.6);
  }
}

.modal__email--wrapper {
  display: flex;
  width: 90%;
  margin: auto;
  border: 0px solid;
}

.modal__email--input {
  width: 45%;
  height: 70px;
  padding-top: 0.5%;
  padding-left: 2%;
  font-size: 32px;
  font-weight: 400;
  color: #454545;
  background-color: #EDEDED;
  border: none;
  border-radius: 5px;
}
@media screen and (max-width: 767px) {
  .modal__email--input {
    height: calc(35vw / 3.6);
    font-size: calc(16vw / 3.6);
  }
}

.modal__email--atmark {
  width: 5%;
}

.modal__email--select {
  width: 50%;
  height: 70px;
  padding-top: 0.5%;
  padding-left: 2%;
  font-size: 32px;
  font-weight: 400;
  color: #454545;
  background-color: #EDEDED;
  border: none;
  border-radius: 5px;
}
@media screen and (max-width: 767px) {
  .modal__email--select {
    height: calc(35vw / 3.6);
    font-size: calc(16vw / 3.6);
  }
}

.modal__submit {
  width: 80%;
  margin: 0px auto 40px;
  border: 0px solid;
}
@media screen and (max-width: 767px) {
  .modal__submit {
    margin: 0px auto calc(20vw / 3.6);
  }
}

.modal__submit--regist {
  background-color: transparent;
  border: none;
}

.modal__msg {
  width: 90%;
  margin: auto;
  font-size: 24px;
  font-weight: 700;
  color: #ff0000;
  border: 0px solid;
}
@media screen and (max-width: 767px) {
  .modal__msg {
    font-size: calc(12vw / 3.6);
  }
}

/*---------------------------
確認
---------------------------*/
.confirm {
  position: absolute;
  top: 793px;
  left: 0;
  right: 0;
  width: 662px;
  margin: auto;
  background-color: #ffffffaa;
}
@media screen and (max-width: 767px) {
  .confirm {
    top: 39.3%;
    width: 88.5%;
  }
}

.confirm__head {
  width: 100%;
  margin: 40px auto 20px;
  text-align: center;
  font-size: 36px;
  font-weight: 700;
  color: #454545;
  line-height: 1.5;
  border: 0px solid;
}
@media screen and (max-width: 767px) {
  .confirm__head {
    margin: calc(20vw / 3.6) auto calc(10vw / 3.6);
    font-size: calc(16vw / 3.6);
  }
}

.confirm__head--emphasis {
  font-size: 44px;
  color: #DF0D57;
}
@media screen and (max-width: 767px) {
  .confirm__head--emphasis {
    font-size: calc(22vw / 3.6);
  }
}

.confirm__item {
  width: 90%;
  margin: 0 auto 15px;
  font-size: 32px;
  font-weight: 700;
  color: #454545;
  line-height: 2.2;
  border: 0px solid;
}
@media screen and (max-width: 767px) {
  .confirm__item {
    margin: 0 auto calc(7.5vw / 3.6);
    font-size: calc(16vw / 3.6);
  }
}

.confirm__text {
  width: 95%;
  height: 70px;
  padding-top: 0%;
  padding-left: 5%;
  font-size: 32px;
  font-weight: 700;
  color: #454545;
  background-color: #ffffff;
  border: none;
  border-radius: 5px;
}
@media screen and (max-width: 767px) {
  .confirm__text {
    height: calc(35vw / 3.6);
    font-size: calc(16vw / 3.6);
  }
}

.confirm__btn--send {
  width: 80%;
  margin: 40px auto 20px;
}
@media screen and (max-width: 767px) {
  .confirm__btn--send {
    margin: calc(20vw / 3.6) auto calc(10vw / 3.6);
  }
}

.confirm__btn--re-enter {
  width: 60%;
  margin: 20px auto 10px;
}
@media screen and (max-width: 767px) {
  .confirm__btn--re-enter {
    margin: calc(10vw / 3.6) auto calc(5vw / 3.6);
  }
}

.confirm__btn__img {
  width: 100%;
}

.confirm__msg {
  width: 80%;
  margin: 0px auto 40px;
  text-align: center;
  font-size: 24px;
  font-weight: 700;
  color: #ff0000;
  border: 0px solid;
}
@media screen and (max-width: 767px) {
  .confirm__msg {
    margin: 0px auto calc(20vw / 3.6);
    font-size: calc(12vw / 3.6);
  }
}

/*---------------------------
完了
---------------------------*/
.complete {
  position: absolute;
  top: 793px;
  left: 0;
  right: 0;
  margin: auto;
  width: 662px;
  background-color: #ffffffaa;
}
@media screen and (max-width: 767px) {
  .complete {
    top: 44.75%;
    width: 88.5%;
  }
}

.complete__head {
  width: 90%;
  margin: 60px auto;
  text-align: center;
  font-size: 60px;
  font-weight: bold;
  color: #DF0D57;
  letter-spacing: 0.1em;
  border: 0px solid;
}
@media screen and (max-width: 767px) {
  .complete__head {
    margin: calc(25vw / 3.6) auto;
    font-size: calc(30vw / 3.6);
  }
}

.complete__head__text {
  width: 90%;
  margin: auto;
  font-size: 32px;
  font-weight: bold;
  border: 0px solid;
}
@media screen and (max-width: 767px) {
  .complete__head__text {
    font-size: calc(16vw / 3.6);
  }
}

.complete__item {
  width: 90%;
  margin: auto;
  padding: 30px 0px;
  font-size: 32px;
  font-weight: bold;
  letter-spacing: 0.1em;
  line-height: 1.6;
  background-color: #ffffff;
  border: 0px solid;
}
@media screen and (max-width: 767px) {
  .complete__item {
    padding: calc(15vw / 3.6) 0px;
    font-size: calc(16vw / 3.6);
  }
}

.complete__text {
  width: 90%;
  margin: 0px auto;
  border: 0px solid;
}
@media screen and (max-width: 767px) {
  .complete__text {
    margin: 0px auto;
  }
}

.complete__btn {
  width: 70%;
  margin: 40px auto;
}
@media screen and (max-width: 767px) {
  .complete__btn {
    margin: calc(20vw / 3.6) auto calc(20vw / 3.6);
  }
}

/*---------------------------
エラーメッセージ
---------------------------*/
.error-message {
  margin-top: 5px;
  font-size: 24px;
  color: #ff0000;
}
@media screen and (max-width: 767px) {
  .error-message {
    margin-top: calc(2.5vw / 3.6);
    font-size: calc(12vw / 3.6);
  }
}