@charset "utf8";


* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

@media screen and (max-width: 767px) {
  ._pc{ display: none; }
}

@media screen and (min-width: 768px) {
  ._sp{ display: none; }
}

body {
  font-family: "Zen Old Mincho", serif;
  font-weight: 400;
  font-style: normal;
  background-image: url(/site_img/formile/bg.jpg);
  background-repeat: repeat-y;
  background-size: 750px;
  background-position: center;
}
@media screen and (max-width: 767px) {
  body {
    background-size: 100%;
  }
}

main {
  overflow-x: hidden;
  overflow-y: hidden;
}

img {
  width: 100%;
  height: auto;
  vertical-align: top;
}

section {
  width: 100%;
  border: 0px solid;
}

picture {
  display: block;
}

/*---------------------------
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: -webkit-fit-content;
  height: -moz-fit-content;
  height: fit-content;
  margin: auto;
  border: 0px solid;
}
@media screen and (max-width: 767px) {
  .article {
    width: 100%;
  }
}

.article-relative {
  position: relative;
  max-width: 750px;
  width: 750px;
  height: -webkit-fit-content;
  height: -moz-fit-content;
  height: fit-content;
  margin: auto;
  border: 0px solid;
}
@media screen and (max-width: 767px) {
  .article-relative {
    width: 100%;
  }
}

/*---------------------------
introduction
---------------------------*/
.introduction__item--01{
  position: absolute;
  top: 8%;
  left: 0;
  right: 0;
  width: 84%;
  margin: auto;
  border: 0px solid;
}  

.introduction__item--02 {
  position: absolute;
  top: 43%;
  left: 0;
  right: 0;
  width: 84%;
  margin: auto;
  text-align: center;
  font-size: 28px;
  font-weight: bold;
  color: #735026;
  border: 0px solid;
}
@media screen and (max-width: 767px) {
  .introduction__item--02 {
    font-size: calc(14vw/3.6);
  }
}

.introduction__item--emphasis {
  font-size: 46px;
  font-weight: bold;
  color: #000000;
  line-height: 1.0;
}
@media screen and (max-width: 767px) {
  .introduction__item--emphasis {
    font-size: calc(24vw/3.6);
  }  
}

.exclamation-mark {
  position: absolute;
  top: 50.8%;
  left: 0;
  right: 0;
  width: 3.3%;
  margin: auto;
  border: 0px solid;
}
@media screen and (max-width: 767px) {
  .exclamation-mark {
    top: 51.5%;
  }
}

.slot__bg {
  position: absolute;
  top: 64.5%;
  left: 0;
  right: 0;
  width: 84%;
  margin: auto;
  border: 0px solid;
}

.slot__number {
  position: absolute;
  top: 68%;
  left: 50px;
  right: 0;
  width: 20%;
  margin: auto;
  text-align: center;
  font-size: 180px;
  color: #E8BE40;
  border: 0px solid;
}
@media screen and (max-width: 767px) {
  .slot__number {
    top: 68%;
    left: calc(25vw/3.6);
    font-size: calc(90vw/3.6);
  }
}

.blink {
  -webkit-animation: blinkAnime 0.7s infinite alternate;
          animation: blinkAnime 0.7s infinite alternate;
}
@-webkit-keyframes blinkAnime{
   0% { color: #eeeeee }
 100% { color: #E8BE40 }
}
@keyframes blinkAnime{
   0% { color: #eeeeee }
 100% { color: #E8BE40 }
}

/*---------------------------
select bell
---------------------------*/
.select-bell__title {
  position: absolute;
  top: 9.5%;
  left: 0;
  right: 0;
  width: 94%;
  margin: auto;
  border: 0px solid;
}

.select-bell-wrapper {
  position: absolute;
  display: flex;
  flex-direction: row;
  gap: 0px 20px;
  top: 44%;
  left: 0;
  right: 0;
  width: 94%;
  margin: auto;
}

.select-bell__item {
  flex: 1;
  border: 0px solid;
}

.bell__item {
  transform-origin: top center;
}

/*---------------------------
three step
---------------------------*/
.three-step__title {
  position: absolute;
  top: 4.7%;
  left: 0;
  right: 0;
  width: 90%;
  margin: auto;
  border: 0px solid;
}

.step__item--01 {
  position: absolute;
  top: 17.4%;
  left: 0;
  right: 0;
  width: 95%;
  margin: auto;
  border: 0px solid;
}

.step__item--02 {
  position: absolute;
  top: 34.5%;
  left: 0;
  right: 0;
  width: 95%;
  margin: auto;
  border: 0px solid;
}

.step__item--03 {
  position: absolute;
  top: 51.6%;
  left: 0;
  right: 0;
  width: 95%;
  margin: auto;
  border: 0px solid;
}

.step__item--grandfather {
  position: absolute;
  top: 70%;
  left: 0;
  right: 0;
  width: 95%;
  margin: auto;
  border: 0px solid;
}

/*---------------------------
review
---------------------------*/
.review__title {
  position: absolute;
  top: 1.7%;
  left: 0;
  right: 0;
  width: 47%;
  margin: auto;
  border: 0px solid;
}

.review__container {
  width: 94%;
  background-color: #ffffff;
  border-radius: 15px;
  box-shadow: 0px 4px 4px 0px #808080aa;
}

.review__head-wrapper {
  display: flex;
  align-items: center;
  width: 92%;
  margin: 20px auto 5px;
  border: 0px solid;
}
@media screen and (max-width: 767px) {
  .review__head-wrapper {
    margin: calc(10vw / 3.6) auto calc(2.5vw / 3.6);
  }
}

.review__head--icon {
  width: 8%;
  margin-right: 15px;
  border: 0px solid;
}

.review__head--name {
  width: 92%;
  font-size: 32px;
  font-weight: bold;
  color: #6DCBF0;
  border: 0px solid;
}
@media screen and (max-width: 767px) {
  .review__head--name {
    font-size: calc(15vw / 3.6);
  }
}

.review__text {
  width: 92%;
  margin: 0px auto 20px;
  font-size: 32px;
  font-weight: bold;
  line-height: 1.3;
  border: 0px solid;
}
@media screen and (max-width: 767px) {
  .review__text {
    margin: 0px auto calc(10vw / 3.6);
    font-size: calc(15vw / 3.6);
  }
}

.review__item--01 {
  position: absolute;
  top: 6.8%;
  left: 0;
  right: 0;
  margin: auto;
}

.review__item--02 {
  position: absolute;
  top: 15.4%;
  left: 0;
  right: 0;
  margin: auto;
}

.review__item--03 {
  position: absolute;
  top: 27.5%;
  left: 0;
  right: 0;
  margin: auto;
}

.review__item--04 {
  position: absolute;
  top: 38.4%;
  left: 0;
  right: 0;
  margin: auto;
}

.review__item--05 {
  position: absolute;
  top: 50.4%;
  left: 0;
  right: 0;
  margin: auto;
}

/*---------------------------
last sign
---------------------------*/
.last-sign__title {
  position: absolute;
  top: 64.5%;
  left: 0;
  right: 0;
  width: 90%;
  margin: auto;
  border: 0px solid;
}

.last-sign__item {
  position: absolute;
  top: 70%;
  left: 0;
  right: 0;
  width: 92%;
  margin: auto;
  border: 0px solid;
}

/*---------------------------
btn
---------------------------*/
.btn-cta--01 {
  position: absolute;
  top: 92%;
  left: 0;
  right: 0;
  width: 92%;
  margin: auto;
  text-align: center;
  font-size: 28px;
  font-weight: bold;
}
@media screen and (max-width: 767px) {
  .btn-cta--01 {
    font-size: calc(14vw/3.6);
  }
}

.btn-cta--02 {
  position: absolute;
  top: 95.4%;
  left: 0;
  right: 0;
  width: 92%;
  margin: auto;
  text-align: center;
  font-size: 28px;
  font-weight: bold;
}
@media screen and (max-width: 767px) {
  .btn-cta--02 {
    font-size: calc(14vw/3.6);
  }
}

/*---------------------------
footer
---------------------------*/
.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: 7.9px;
  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;
}
@media screen and (max-width: 767px) {
  .modal {
    left: 0;
  }
}

/* モーダル表示時 */
.modal.show {
  opacity: 1;
  visibility: visible;
}

.article-entry {
  max-width: 750px;
  width: 750px;
  height: -webkit-fit-content;
  height: -moz-fit-content;
  height: fit-content;
  margin: auto;
  padding-top: 120px;
  background-image: url(/site_img/formile/modal_bg_02.png);
  background-repeat: no-repeat;
  background-size: 100%;
  border: 0px solid;
}
@media screen and (max-width: 767px) {
  .article-entry {
    width: 100%;
    padding-top: calc(60vw / 3.6);
  }
}

.entry {
  width: 90%;
  margin: auto;
  border: 0px solid;
}

.modal__name {
  width: 100%;
  margin-bottom: 40px;
  font-size: 34px;
  font-weight: 700;
  color: #454545;
  border: 0px solid;
}
@media screen and (max-width: 767px) {
  .modal__name {
    margin-bottom: calc(18vw / 3.6);
    font-size: calc(16vw / 3.6);
  }
}

.modal__name--input {
  width: 90%; /* ランテック環境ではこちら */
  height: 70px;
  padding-top: 0.5%;
  padding-left: 2%;
  font-size: 34px;
  font-weight: 400;
  color: #454545;
  background-color: #ffffff;
  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__item {
  width: 90%;
  margin: 0px auto 10px;
  text-align: left;
  border: 0px solid;
}
@media screen and (max-width: 767px) {
  .modal__item {
    margin: 0px auto calc(5vw/3.6);
  }
}

.modal__item--annotation {
  font-size: 22px;
}
@media screen and (max-width: 767px) {
  .modal__item--annotation {
    font-size: calc(10vw/3.6);
  }  
}

.modal__gender {
  width: 100%;
  margin-bottom: 40px;
  font-size: 34px;
  font-weight: 700;
  color: #454545;
  border: 0px solid;
}
@media screen and (max-width: 767px) {
  .modal__gender {
    margin-bottom: calc(18vw / 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: #ffffff;
  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: 34px;
  font-weight: 700;
  color: #454545;
  border: 0px solid;
}
@media screen and (max-width: 767px) {
  .modal__birthday {
    margin-bottom: calc(18vw / 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: 34px;
  font-weight: 400;
  color: #454545;
  background-color: #ffffff;
  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: 34px;
  font-weight: 400;
  color: #454545;
  background-color: #ffffff;
  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: 34px;
  font-weight: 400;
  color: #454545;
  background-color: #ffffff;
  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: 34px;
  font-weight: 700;
  color: #454545;
  border: 0px solid;
}
@media screen and (max-width: 767px) {
  .modal__email {
    margin-bottom: calc(26vw / 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: 34px;
  font-weight: 400;
  color: #454545;
  background-color: #ffffff;
  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: 34px;
  font-weight: 400;
  color: #454545;
  background-color: #ffffff;
  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(18vw / 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 {
  width: 88.5%;
  margin: auto;
}

.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: 34px;
  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: 34px;
  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 30px;
}
@media screen and (max-width: 767px) {
  .confirm__btn--re-enter {
    margin: calc(10vw / 3.6) auto calc(15vw / 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 {
  width: 88.5%;
  margin: auto;
  border: 0px solid;
}

.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(28vw / 3.6) auto;
    font-size: calc(28vw / 3.6);
  }
}

.complete__head__text {
  width: 90%;
  margin: auto;
  font-size: 34px;
  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: 34px;
  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);
  }
}