/*=======================================================
MV
=======================================================*/
.bl_lower_mv {
  background: url(../images/reservation/mv_bg.jpg) top center/cover no-repeat;
}

.bl_lower_mv_ttl::after {
  width: 82px;
  background: url(../images/reservation/mv_ttl.svg) top center/contain no-repeat;
}

@media screen and (max-width: 750px) {
  .bl_lower_mv {
    background: url(../images/reservation/mv_bg_sp.jpg) top center/cover no-repeat;
  }
  .bl_lower_mv_ttl::after {
    width: 123px;
  }
}
/*=======================================================
intro
=======================================================*/
.bl_intro_btn {
  min-width: 320px;
  width: fit-content;
  background: #fff;
  border: 1px solid #a7660f;
  color: #a7660f;
  border-radius: 2px;
  font-size: 24px;
  line-height: calc(38/24);
  padding: 12px 0;
  transition: all 0.5s ease;
}
.bl_intro_btn_wrapper {
  display: flex;
  gap: 32px;
  flex-wrap: wrap;
  justify-content: center;
  padding: 40px 0;
}
@media (hover: hover) {
  .bl_intro_btn:hover {
    opacity: 0.5;
  }
}
.bl_intro_btn.--is-active {
  background: #a7660f;
  color: #fff;
}
@media (hover: hover) {
  .bl_intro_btn.--is-active:hover {
    opacity: 1;
    cursor: text;
  }
}

@media screen and (max-width: 750px) {
  .bl_intro_btn {
    min-width: 480px;
    border-width: 2px;
    border-radius: 3px;
    font-size: 32px;
    padding: 18px 0;
  }
  .bl_intro_btn_wrapper {
    gap: 40px;
    padding: 64px 0;
  }
}
/*=======================================================
reservation
=======================================================*/
.bl_reservation {
  padding: 64px 0;
}
.bl_reservation:nth-of-type(odd) {
  background: #f6f3ef;
}
.bl_reservation_ttl {
  background: #31180e;
  color: #fff;
  font-size: 32px;
  line-height: 1;
  letter-spacing: 0.06em;
  padding: 16px 0;
  text-align: center;
  margin-bottom: 32px;
}
.bl_reservation_ttl .el_att {
  letter-spacing: 0.06em;
  margin-top: 16px;
  display: flex;
  padding-left: 0;
  justify-content: center;
  line-height: calc(15/14);
}
.bl_reservation_ttl .el_att::before {
  position: static;
}
.bl_reservation_step {
  display: grid;
  grid-template-rows: subgrid;
  grid-row: span 2;
  gap: 32px 0;
}
.bl_reservation_step_wrapper {
  padding: 0 66px;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  column-gap: 124px;
}
.bl_reservation_step:not(:last-of-type) .bl_step_imgwrapper {
  position: relative;
  align-self: start;
}
.bl_reservation_step:not(:last-of-type) .bl_step_imgwrapper::after {
  position: absolute;
  content: "";
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 35px 0 35px 50px;
  border-color: transparent transparent transparent #818775;
  top: 50%;
  transform: translateY(-50%);
  right: -92px;
}
.bl_reservation_step .bl_step_txt {
  text-align: center;
}
.bl_reservation_step .bl_step_txt .el_att {
  padding-left: 0;
}
.bl_reservation_step .bl_step_txt .el_att::before {
  position: static;
}
.bl_reservation_box {
  background: #dae0cd;
  padding: 32px 0;
}
.bl_reservation_box:not(:first-of-type) {
  margin-top: 32px;
}
.bl_reservation_box .bl_box_ttl {
  text-align: center;
  margin-bottom: 56px;
  font-size: 24px;
  letter-spacing: 0.06em;
}
.bl_reservation_box .bl_box_ttl .el_att {
  display: flex;
  justify-content: center;
  padding-left: 0;
}
.bl_reservation_box .bl_box_ttl .el_att::before {
  position: static;
}
.bl_reservation_box .bl_box_txt {
  text-align: center;
  margin-bottom: 32px;
}
.bl_reservation_box .bl_box_txt.--att {
  margin-bottom: 0;
  font-size: 14px;
}
.bl_reservation_box .bl_box_imgwrapper {
  width: 384px;
  margin: 0 auto 32px;
}
.bl_reservation_box .bl_box_caution {
  background: #818775;
  color: #fff;
  text-align: center;
  padding: 16px 0;
  font-size: 16px;
  letter-spacing: 0.06em;
  margin-bottom: 16px;
}
.bl_reservation_box:nth-of-type(even) {
  background: #818775;
  color: #fff;
}
.bl_reservation_box:nth-of-type(even) .bl_reservation_step:not(:last-of-type) .bl_step_imgwrapper::after {
  border-color: transparent transparent transparent #fff;
}

@media screen and (min-width: 751px) {
  .bl_reservation_box.--line-reservation-confirmation-membership-registration .bl_reservation_step:not(:last-of-type) .bl_step_imgwrapper::after {
    transform: none;
    top: 218px;
  }
}
@media screen and (max-width: 750px) {
  .bl_reservation {
    padding: 80px 0;
  }
  .bl_reservation_ttl {
    font-size: 44px;
    padding: 24px 16px;
    margin-bottom: 48px;
  }
  .bl_reservation_ttl .el_att {
    margin-top: 24px;
    text-align: left;
  }
  .bl_reservation_step {
    gap: 48px 0;
  }
  .bl_reservation_step_wrapper {
    padding: 0;
    grid-template-columns: auto;
    row-gap: 160px;
  }
  .bl_reservation_step:not(:last-of-type) .bl_step_imgwrapper::after {
    border-width: 80px 60px 0 60px;
    border-color: #818775 transparent transparent transparent;
    bottom: -120px;
    left: 50%;
    transform: translateX(-50%);
    top: initial;
    right: initial;
  }
  .bl_reservation_step .bl_step_imgwrapper {
    width: 600px;
    margin: 0 auto;
  }
  .bl_reservation_box {
    padding: 48px 0;
  }
  .bl_reservation_box:not(:first-of-type) {
    margin-top: 48px;
  }
  .bl_reservation_box .bl_box_ttl {
    font-size: 36px;
  }
  .bl_reservation_box .bl_box_txt {
    margin-bottom: 48px;
  }
  .bl_reservation_box .bl_box_txt.--att {
    font-size: 24px;
  }
  .bl_reservation_box .bl_box_imgwrapper {
    width: 600px;
    margin: 0 auto 48px;
  }
  .bl_reservation_box .bl_box_caution {
    padding: 23px 16px;
    font-size: 26px;
    margin-bottom: 24px;
  }
  .bl_reservation_box:nth-of-type(even) .bl_reservation_step:not(:last-of-type) .bl_step_imgwrapper::after {
    border-color: #fff transparent transparent transparent;
  }
}