.section {
  padding-bottom: 200rem;
  position: relative;
}
.section::before {
  position: absolute;
  content: "";
  display: block;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 1920rem;
  height: 2701rem;
  background: url(../../img/pic_reserve_deco.png) no-repeat center top/contain;
  z-index: -1;
}

.error {
  background-color: #ffe6e6 !important;
}

.msg {
  text-align: center;
}
.msg.errorMsg {
  color: #E55151;
}

.request_img {
  position: relative;
}
.request_img .img_wrap {
  position: absolute;
  top: -65rem;
  right: 0;
}

img.must {
  width: 52rem;
  height: 26rem;
  margin: 0 0 0 30px;
}

.reserve_flow {
  margin-top: 70rem;
  display: flex;
  gap: 180rem;
  width: 777rem;
  position: relative;
  margin-left: auto;
  margin-right: auto;
}
.reserve_flow::before, .reserve_flow::after {
  position: absolute;
  content: "";
  display: block;
  width: 150rem;
  height: 2px;
  top: 50%;
  transform: translateY(-50%);
  border-top: 2px dotted #EC6949;
}
.reserve_flow::before {
  left: 157rem;
}
.reserve_flow::after {
  right: 157rem;
}
.reserve_flow p {
  width: 139rem;
  height: 139rem;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: bold;
  background-color: #F4F4F4;
}
.reserve_flow p.active {
  background-color: #E2F2EE;
}

#mailform {
  width: 960rem;
  margin-left: auto;
  margin-right: auto;
  margin-top: 70rem;
}
#mailform table tr {
  background-color: transparent !important;
  border-bottom: 1px dashed #707070;
}
#mailform table tr.no_border {
  border-bottom: 0;
}
#mailform table tr.address th {
  padding-bottom: 0;
}
#mailform table tr.address td {
  display: flex;
  flex-wrap: wrap;
  gap: 0 25rem;
  align-items: center;
}
#mailform table tr.address td input {
  height: 56rem;
}
#mailform table tr.address td select {
  height: 56rem;
}
#mailform table tr.address td input[name=zipCode] {
  width: 212rem;
  padding-left: 5rem;
}
#mailform table tr.address td input[name=city] {
  width: 585rem;
  padding-left: 5rem;
}
#mailform table tr.address td input[name=lot] {
  width: 585rem;
  padding-left: 5rem;
}
#mailform table tr.address td select[name=pref] {
  width: 212rem;
  background-color: #fff;
  padding-left: 5rem;
}
#mailform table th {
  width: 275rem;
  padding-left: 5rem;
  padding-top: 45rem;
  padding-bottom: 30rem;
  text-align: left;
  vertical-align: middle;
  font-size: 18rem;
  vertical-align: top;
}
#mailform table td {
  width: 683rem;
  padding-top: 20rem;
  padding-bottom: 30rem;
  font-size: 18rem;
}
#mailform table td.zipCode {
  padding-bottom: 8rem;
}
#mailform table td.pref {
  padding-top: 0;
  padding-bottom: 8rem;
  position: relative;
  width: -moz-fit-content;
  width: fit-content;
}
#mailform table td.pref::before {
  position: absolute;
  content: "";
  display: block;
  top: 50%;
  right: 10rem;
  transform: translateY(-60%);
  width: 14rem;
  height: 9rem;
  background: url(../../img/ico_arrow_simple.svg) no-repeat center top/contain;
  z-index: 2;
}
#mailform table td.city {
  padding: 0;
}
#mailform table td.lot {
  padding-top: 8rem;
}
#mailform table td .errorMsg {
  color: #E55151;
  margin-top: 5rem;
  font-size: 0.9em;
}
#mailform table td input {
  padding-left: 30rem;
  height: 70rem;
  background-color: #fff;
  border: 2rem solid #E2F2EE;
}
#mailform table td input[type=checkbox] {
  cursor: pointer;
}
#mailform table td select {
  cursor: pointer;
  border: 2rem solid #E2F2EE;
}
#mailform table td input[type=text] {
  width: 100%;
}
#mailform table td input[type=email] {
  width: 100%;
}
#mailform table td input[name=age] {
  width: 96rem;
  margin-right: 20rem;
}
#mailform table td.relation {
  position: relative;
  width: -moz-fit-content;
  width: fit-content;
}
#mailform table td.relation::before {
  position: absolute;
  content: "";
  display: block;
  top: 50%;
  left: 320rem;
  transform: translateY(-80%);
  width: 12rem;
  height: 7rem;
  background: url(../../img/ico_arrow_simple.svg) no-repeat center top/contain;
  z-index: 2;
}
#mailform table td.relation select {
  width: 350rem;
  height: 70rem;
  background-color: #fff;
  padding-left: 20rem;
}
#mailform table td .flex_wrap {
  background-color: #fff;
  display: flex;
  padding-left: 30rem;
  gap: 40rem;
  position: relative;
  border: 2rem solid #E2F2EE;
}
#mailform table td .flex_wrap .notes {
  position: absolute;
  font-size: 13rem;
  top: 50%;
  transform: translateY(-50%);
  right: 10rem;
}
#mailform table td .flex_wrap label {
  display: flex;
  align-items: center;
  cursor: pointer;
}
#mailform table td .request_notes {
  font-size: 13rem;
  margin-top: 5rem;
}
#mailform table td.w_half label:first-child {
  margin-right: 25rem;
}
#mailform table td.w_half input[type=text] {
  width: 325rem;
}
#mailform table td .facility {
  background-color: #fff;
  padding: 30rem;
  border: 2rem solid #E2F2EE;
}
#mailform table td .facility label {
  display: flex;
  align-items: center;
  cursor: pointer;
}
#mailform table td .facility label + label {
  margin-top: 10rem;
}
#mailform table td .facility label input {
  height: auto;
}
#mailform table td .facility .text {
  margin-top: 20rem;
}
#mailform table td.desired_date {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
#mailform table td .date_area {
  width: 285rem;
}
#mailform table td .date_area input {
  width: 214rem;
  margin-right: 15rem;
}
#mailform table td .date_area .ui-datepicker-trigger {
  position: relative;
  z-index: 1;
}
#mailform table td .date_area .ui-datepicker-trigger img {
  width: 54rem;
  height: 54rem;
}
#mailform table td .date_check {
  width: 335rem;
  background: #fff;
  padding: 20rem;
  border: 2rem solid #E2F2EE;
}
#mailform table td .date_check div + div {
  margin-top: 10rem;
}
#mailform table td .date_check label input {
  height: auto;
}
#mailform table td textarea[name=inquiry] {
  background-color: #fff;
  width: 100%;
  border: 2rem solid #E2F2EE;
}
#mailform .mfp_buttons {
  margin-top: 80rem;
}
#mailform .mfp_buttons .formButton:not(#formBack) {
  margin-left: auto;
  margin-right: auto;
  width: 340rem;
  height: 70rem;
  border-radius: 100rem;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 18rem;
  font-weight: bold;
  position: relative;
  transition: 0.3s;
  overflow: hidden;
  background-color: #EC6949;
  border: 1px solid #EC6949;
  cursor: pointer;
}
#mailform .mfp_buttons .formButton:not(#formBack)::before {
  position: absolute;
  content: "";
  display: block;
  top: 50%;
  left: 10rem;
  transform: translateY(-50%);
  width: 30rem;
  height: 30rem;
  border-radius: 40rem;
  z-index: 1;
  transition: 0.3s;
  background: url(../../img/ico_arrow_reserve.svg) no-repeat center right/contain;
}
#mailform .mfp_buttons .formButton:not(#formBack)::after {
  content: "";
  background: #fff;
  width: 0;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
  display: block;
  transition: 0.3s;
  border-radius: 40rem;
}
#mailform .mfp_buttons .formButton:not(#formBack) span {
  position: relative;
  display: inline-block;
  z-index: 1;
}
#mailform .mfp_buttons .formButton:not(#formBack):hover {
  color: #EC6949;
}
#mailform .mfp_buttons .formButton:not(#formBack):hover::before {
  left: calc(100% - 50rem);
  background: url(../../img/ico_arrow_reserve02.svg) no-repeat center right/contain;
}
#mailform .mfp_buttons .formButton:not(#formBack):hover::after {
  width: 100%;
}
#mailform .mfp_buttons #formBack {
  border-bottom: 2px solid #3E3E3E;
  font-size: 18rem;
  font-weight: 500;
  width: 140rem;
  padding-bottom: 10rem;
  color: #EC6949;
  cursor: pointer;
}

.ui-datepicker {
  font-size: 18rem;
}

.reserve_check_area #mailform {
  width: 1080rem;
  margin-left: auto;
  margin-right: auto;
}
.reserve_check_area #mailform .reserve_check {
  padding-left: 60rem;
  padding-right: 60rem;
  padding-top: 40rem;
  padding-bottom: 100rem;
  background-color: #fff;
}
.reserve_check_area #mailform .reserve_check table th {
  padding-top: 40rem;
  padding-bottom: 40rem;
}
.reserve_check_area #mailform .reserve_check table td {
  padding-top: 40rem;
  padding-bottom: 40rem;
}
.reserve_check_area #mailform .mfp_buttons {
  display: flex;
  gap: 30rem;
  width: -moz-fit-content;
  width: fit-content;
  margin-left: auto;
  margin-right: auto;
  flex-direction: column-reverse;
  align-items: center;
}

.btn_more.thanks a {
  margin-left: auto;
  margin-right: auto;
}

@media screen and (max-width: 680px) {
  .section {
    padding-bottom: 100rem;
  }
  .section::before {
    display: none;
  }
  .request_img .img_wrap {
    position: absolute;
    width: 110rem;
    top: -83rem;
    right: -43rem;
  }
  img.must {
    width: 40rem;
    height: 20rem;
    margin: 0 0 0 10rem;
  }
  .reserve_flow {
    margin-top: 40rem;
    gap: 0;
    justify-content: space-between;
    width: 335rem;
  }
  .reserve_flow::before, .reserve_flow::after {
    width: 40rem;
  }
  .reserve_flow::before {
    left: 84rem;
  }
  .reserve_flow::after {
    right: 84rem;
  }
  .reserve_flow p {
    width: 80rem;
    height: 80rem;
  }
  #mailform {
    width: 335rem;
    margin-top: 30rem;
  }
  #mailform table {
    width: 100%;
  }
  #mailform table tr.address {
    padding-top: 15rem;
  }
  #mailform table tr.address th {
    padding-bottom: 0;
    padding-top: 0;
  }
  #mailform table tr.address th.address_top {
    padding-top: 20rem;
  }
  #mailform table tr.address td {
    display: block;
    line-height: 2;
  }
  #mailform table tr.address td.zipCode {
    margin-top: 5rem;
  }
  #mailform table tr.address td input {
    height: 45rem;
  }
  #mailform table tr.address td select {
    height: 45rem;
  }
  #mailform table tr.address td input[name=zipCode] {
    width: 100%;
    padding-left: 20rem;
  }
  #mailform table tr.address td input[name=city] {
    width: 100%;
    padding-left: 20rem;
  }
  #mailform table tr.address td input[name=lot] {
    width: 100%;
    padding-left: 20rem;
  }
  #mailform table tr.address td select[name=pref] {
    width: 100%;
    padding-left: 20rem;
  }
  #mailform table th {
    width: 100%;
    padding-top: 20rem;
    padding-bottom: 0;
    font-size: 15rem;
    display: block;
  }
  #mailform table td {
    width: 100%;
    padding-bottom: 20rem;
    padding-top: 10rem;
    font-size: 15rem;
    display: block;
  }
  #mailform table td.zipCode {
    padding-bottom: 10rem;
    padding-top: 0;
  }
  #mailform table td.pref {
    padding-top: 0;
    padding-bottom: 8rem;
    position: relative;
    width: 100%;
  }
  #mailform table td.pref::before {
    transform: translateY(70%);
    width: 10rem;
    height: 7rem;
  }
  #mailform table td.city {
    padding: 0;
  }
  #mailform table td.lot {
    padding-top: 8rem;
  }
  #mailform table td input {
    padding-left: 20rem;
    height: 50rem;
  }
  #mailform table td input[type=checkbox] {
    cursor: pointer;
  }
  #mailform table td select {
    cursor: pointer;
    border: 2rem solid #E2F2EE;
  }
  #mailform table td input[type=text] {
    width: 100%;
  }
  #mailform table td input[type=email] {
    width: 100%;
  }
  #mailform table td input[name=age] {
    margin-right: 5rem;
    width: 150rem;
  }
  #mailform table td.relation {
    position: relative;
    width: -moz-fit-content;
    width: fit-content;
  }
  #mailform table td.relation::before {
    left: 180rem;
    transform: translateY(-30%);
  }
  #mailform table td.relation select {
    width: 200rem;
    height: 50rem;
    padding-left: 20rem;
  }
  #mailform table td .flex_wrap {
    padding-left: 20rem;
    gap: 10rem;
  }
  #mailform table td .flex_wrap.tel_wrap {
    padding-left: 5rem;
    gap: 5rem;
  }
  #mailform table td.w_half label:first-child {
    margin-right: 10rem;
  }
  #mailform table td.w_half input[type=text] {
    width: 150rem;
  }
  #mailform table td .facility {
    padding: 10rem;
    font-size: 14rem;
  }
  #mailform table td .facility label {
    align-items: flex-start;
  }
  #mailform table td .facility label + label {
    margin-top: 10rem;
  }
  #mailform table td .facility label input {
    margin-top: 6rem;
  }
  #mailform table td .facility .text {
    margin-top: 20rem;
  }
  #mailform table td.desired_date {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
  }
  #mailform table td .date_area {
    width: 100%;
  }
  #mailform table td .date_area input {
    width: 200rem;
    margin-right: 5rem;
  }
  #mailform table td .date_area .ui-datepicker-trigger {
    width: 40rem;
    height: 40rem;
  }
  #mailform table td .date_check {
    width: 100%;
    padding: 10rem;
    margin-top: 5rem;
  }
  #mailform table td .date_check div + div {
    margin-top: 5rem;
  }
  #mailform table td .notes {
    font-size: 12rem;
    line-height: 1.2;
    margin-top: 5rem;
  }
  #mailform .mfp_buttons {
    margin-top: 50rem;
  }
  #mailform .mfp_buttons .formButton:not(#formBack) {
    width: 240rem;
    height: 60rem;
    font-size: 16rem;
  }
  #mailform .mfp_buttons #formBack {
    border-bottom: 1px solid #3E3E3E;
    font-size: 16rem;
    width: 100rem;
    padding-bottom: 6rem;
  }
  .ui-datepicker {
    font-size: 16rem;
  }
  .reserve_check_area #mailform {
    width: 335rem;
  }
  .reserve_check_area #mailform .reserve_check {
    padding-left: 20rem;
    padding-right: 20rem;
    padding-top: 20rem;
    padding-bottom: 50rem;
  }
  .reserve_check_area #mailform .reserve_check table th {
    padding-top: 20rem;
    padding-bottom: 10rem;
  }
  .reserve_check_area #mailform .reserve_check table td {
    padding-top: 10rem;
    padding-bottom: 20rem;
  }
  .reserve_check_area #mailform .mfp_buttons {
    flex-direction: column-reverse;
  }
  .reserve_check_area #mailform .mfp_buttons .formButton + .formButton {
    margin-top: 10rem;
  }
}/*# sourceMappingURL=reserve.css.map */