@charset "utf-8";

/* ============================
point
=============================== */
.point {
  padding: max(77px, 5.35vw) 0;
}
.point .s-heading {
  margin-bottom: max(30px, 2.08vw);
}
.point__List {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: min(113px, 7.85vw);
  margin-bottom: 60px;
}
.point__item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 30px 0 97px;
  position: relative;
  z-index: 1;
}
.point__item:last-child {
  padding-bottom: 0;
}

.point__item:nth-child(odd) {
  flex-direction: row-reverse;
}
.point__item .imgbk {
  width: 43.33%;
  height: auto;
  aspect-ratio: 520 / 426;
  position: relative;
}
.point__item .imgbk img {
  position: relative;
  left: -10px;
}
.point__item:nth-child(odd) .imgbk img {
  right: -10px;
  left: auto;
}

.point__item .txtbk {
  width: 50%;
  position: relative;
}
.point__item-heading_bk {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 0.67em;
}
.point__item-heading {
  font-size: max(30px, 2.08vw);
  line-height: 1.47;
  letter-spacing: 0.05em;
  display: flex;
  flex-direction: column;
}
.point__item .txtbk .point__item-num {
  width: 23.33%;
  max-width: 140px;
}
.point__item-ic {
  width: 20%;
  max-width: 120px;
}
.point__item-heading .en {
  color: #00675b;
  font-size: 60px;
  line-height: 1.1;
  letter-spacing: 0.07em;
  margin-bottom: 10px;
}
.point__item-heading .ja {
  font-size: 20px;
  letter-spacing: 0;
}

.point__item .txtbk .point__item-txt {
  letter-spacing: 0;
  margin-bottom: 20px;
}
.point__item .txtbk .point__item-note {
  font-size: 15px;
  padding: 25px 28px;
  border: 1px dashed #00675b;
  border-radius: 20px;
}

/*MEAL*/
#item-meal.point__item:before {
  content: "";
  width: 100vw;
  height: 100%;
  background-color: #efd465;
  position: absolute;
  z-index: -1;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
}
#item-meal.point__item .imgbk img {
  position: absolute;
}
#item-meal.point__item .imgbk img.meal-img1 {
  width: 80%;
  min-width: 340px;
  bottom: 43%;
}
#item-meal.point__item .imgbk img.meal-img2 {
  width: 70%;
  min-width: 300px;
  top: 42%;
  left: auto;
  right: 12px;
}
.point__item-name {
  margin-bottom: 5px;
}
.point__item-list {
  display: flex;
  flex-wrap: wrap;
  gap: 1em;
  border-top: 1px dashed #00675b;
  padding-top: 5px;
  margin-bottom: 30px;
}
.point__item-list > *:before {
  color: #00675b;
  content: "●";
  display: inline-block;
}
.point__item-plus {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 5px 0;
  padding: 10px 15px;
  border: 1px dashed #00675b;
  border-radius: 20px;
  background-color: #fff;
}
.point__item-plus > * {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  line-height: 1;
}
.plus_label {
  color: #fff;
  font-size: 12px;
  padding: 3px;
  margin-right: 5px;
  background-color: #00675b;
  border-radius: 5px;
  position: relative;
  top: 2px;
}
.txt_num {
  font-size: 23px;
}
.txt_yen {
}
.txt_gr {
  font-size: 20px;
}

/*BUS*/
#item-bus.point__item {
  align-items: flex-end;
}
#item-bus.point__item .imgbk {
  align-items: stretch;
  aspect-ratio: auto;
}
#item-bus.point__item .imgbk img {
  position: absolute;
  bottom: 0;
}
#item-bus .point__item-list {
  margin-bottom: 0;
}

/* ============================
room_information / common_space 共通
=============================== */
.r-headingBk {
  position: absolute;
  top: -37px;
}
.r-heading {
  font-size: 30px;
  line-height: 1;
  padding: 25px 0;
  position: relative;
  z-index: 1;
}
.r-heading:before {
  content: "";
  display: block;
  width: 400px;
  height: 100px;
  border-radius: 30px;
  position: absolute;
  left: -25px;
  top: 0;
  z-index: -1;
}
.bg_yl .r-heading:before {
  background-color: #efd465;
}
.bg_gn .r-heading:before {
  background-color: #00675b;
}
.r-heading-txt {
  top: -1em;
  position: relative;
  z-index: 2;
}

/* ============================
room_information
=============================== */
.room_information {
  padding: 50px 0 107px;
  position: relative;
}
.room__list {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 60px 5%;
  margin-bottom: max(55px, 3.81vw);
  position: relative;
  z-index: 1;
}
.room__item {
  width: 45.8%;
}
.room__item.wide {
  width: 100%;
}
.room__item-inner {
  gap: 60px;
}
.room__item .imgbk {
}
.room__item.wide .imgbk {
  display: flex;
  gap: 20px;
}
.room__item.wide .imgbk img {
  width: calc((100% - 20px) / 2);
}

.room__item-heading_bk {
  padding-top: 5px;
  padding-left: min(140px, 9.72vw);
  position: relative;
}
.icon_num {
  width: min(150px, 10.4vw);
  min-width: 80px;
  position: absolute;
  left: -30px;
  top: min(-45px, -3.12vw);
}
.icon_num img.inv_mov {
  transform-origin: center bottom;
  transform: scale(0.5);
}

.icon_num img.inv_mov.mov {
  transform: scale(1);
  transition: transform 0.6s cubic-bezier(0.68, -0.6, 0.32, 1.6);
}
.room__item-heading {
  font-size: 30px;
}
.room__item-txt {
  font-size: 20px;
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
}
.room__item-txt dt {
  min-width: 3.5em;
  background: url(../imgs/accom/room_dot.png) right 0 center no-repeat;
  background-size: 42px auto;
}
.room__item-txt dt span {
  padding-right: 5px;
  background-color: #efd465;
}
.room__item-txt dd {
  width: calc(100% - 3.5em);
  padding-left: 5px;
}
.room__item-txt dd span {
  display: inline-block;
}

/* -- 設備 -- */
.facility__list_wrap {
  background-color: #fff;
  padding: 1.8% 2.5%;
}
.facility__list_wrap .featuresList {
  font-size: max(20px, 1.39vw);
  line-height: 1.75;
  letter-spacing: 0.01em;
  margin-bottom: 0.8em;
}
.facility__list_wrap .featuresList-item {
  display: flex;
  align-items: flex-start;
}
.facility__list_wrap .featuresList-item:not(:last-child) {
  margin-bottom: 0.6em;
}
.facility__list_wrap .featuresList-item dt {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  gap: 0.5em;
  width: 7.2em;
}
.facility__list_wrap .featuresList-item dt::before {
  content: "";
  width: 1.25em;
  height: 1.35em;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}
.facility__list_wrap .featuresList-item dt.room_ic1::before {
  background-image: url(../imgs/accom/room_ic1.png);
}
.facility__list_wrap .featuresList-item dt.room_ic2::before {
  background-image: url(../imgs/accom/room_ic2.png);
}
.facility__list_wrap .featuresList-item dt.room_ic3::before {
  background-image: url(../imgs/accom/room_ic3.png);
}
.facility__list_wrap .featuresList-item dt.room_ic4::before {
  background-image: url(../imgs/accom/room_ic4.png);
}
.facility__list_wrap .featuresList-item dd {
  position: relative;
  padding-left: 2em;
}
.facility__list_wrap .featuresList-item dd::before {
  content: "";
  width: 1.5em;
  height: 1px;
  border-bottom: 1px dashed #707070;
  position: absolute;
  left: 0;
  top: 0.87em;
}
.facility__list_wrap .note_txt {
  font-size: 15px;
}

/* ============================
common_space
=============================== */
.common_space {
  padding: 110px 0 80px;
  position: relative;
}
.space__list {
  display: flex;
  flex-direction: column;
  gap: max(90px, 3.25vw);
  z-index: 1;
}
.space__item-inner {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 20px 5%;
  position: relative;
  z-index: 1;
}
.space__item-heading {
  width: min(150px, 10.4vw);
  min-width: 80px;
  position: absolute;
  left: -30px;
  top: min(-45px, -3.12vw);
}

.space__item-heading img {
  transform-origin: center center;
  transform: scale(0.5);
  transition: transform 0.6s cubic-bezier(0.68, -0.55, 0.27, 1.55); /* ポヨン感 */
}
.space__item.inv_mov.mov .space__item-heading img {
  transform: scale(1);
}

.space__item-inner .imgbk {
  width: 45.8%;
  min-width: 420px;
  position: relative;
}

/* ============================
price
=============================== */
.price {
  padding: 50px 0 0;
}
.price-in {
}
.price--headingBk {
  display: flex;
  align-items: flex-end;
  gap: 10px;
  margin-bottom: 30px;
}
.price--s-heading {
  font-size: 30px;
  display: flex;
  align-items: center;
  gap: 15px;
}
.price_ic {
  width: 50px;
}
.price_bb {
  /*width:70%;
	max-width:310px;*/
  font-size: 20px;
  line-height: 1.2;
  background-color: #efd465;
  border-radius: 9999px;
  padding: 5px 19px;
  position: relative;
}
.price_bb::after {
  content: "";
  width: 9px;
  height: 9px;
  background-color: #efd465;
  clip-path: polygon(100% 0, 0 50%, 100% 100%);
  position: absolute;
  top: 50%;
  right: calc(100% - 1px);
  transform: translateY(-50%);
}

.price__list {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
  margin-bottom: 20px;
  position: relative;
}
.price__list::before {
  content: "";
  width: 2px;
  height: 50px;
  background-color: #000;
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translateY(-50%);
}
.price__list-item {
  font-size: 25px;
  display: flex;
  align-items: flex-end;
  gap: 0 3em;
}
.price__list-item dt {
  width: 8em;
  position: relative;
}
.price__list-item dt::after {
  content: "";
  width: 2em;
  height: 1px;
  border-bottom: 1px dashed #707070;
  position: absolute;
  left: 100%;
  top: 50%;
}
.price__list .num {
  font-size: 40px;
  line-height: 1;
}
.price__list .num_w {
  letter-spacing: 0.08em;
}
.price_note {
  display: inline-flex;
  gap: 5px 1em;
  flex-wrap: wrap;
  margin-bottom: 30px;
}
.price_note li {
  padding-left: 1em;
  text-indent: -1em;
}

.price_option {
  font-size: 25px;
  display: flex;
  justify-content: center;
  gap: 2em;
  width: 100%;
  padding: 20px;
  margin-bottom: min(100px, 6.94vw);
  background-color: #efd465;
}
.option_txt span {
  display: inline-block;
}
.price_option-list {
  display: flex;
  align-items: center;
  gap: 2em;
}
.price_option-list .option-list-item {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}
.option-list-item .op_ic {
  width: 40px;
}
.option-list-item p {
  line-height: 1;
  display: inline-flex;
  align-items: flex-end;
}
.option-list-item .stx {
  font-size: 15px;
  padding-left: 0.5em;
}
.option-list-item .yen {
  font-size: 18px;
}

.btm_bnr {
  width: 34.72vw;
  min-width: 500px;
  margin: 0 auto;
}

@media screen and (max-width: 1440px) {
  .btm_bnr {
    width: 100%;
    max-width: 500px;
    min-width: initial;
    margin: 0 auto;
  }
}

@media screen and (max-width: 1260px) {
  /* ============================
price
=============================== */
  .price-in {
    max-width: 560px;
    margin: 0 auto;
  }
  .price--headingBk {
    justify-content: center;
  }
  .price__list {
    display: block;
  }
  .price__list::before {
    display: none;
  }
  .price__list-item {
    margin-bottom: 10px;
  }
  .price_note {
    display: block;
    margin-bottom: 20px;
  }
  .price_option {
    flex-direction: column;
    gap: 10px;
  }
}

@media screen and (max-width: 980px) {
  /* ============================
point
=============================== */
  .point__item .txtbk {
    min-width: 395px;
  }
  .point__item .txtbk .point__item-heading {
    font-size: clamp(27px, 3.06vw, 30px);
  }
  .point__item-heading_bk {
    align-items: flex-start;
  }

  .point__item .imgbk {
    width: 48%;
    max-width: calc(100% - 420px);
  }
  #item-meal.point__item .imgbk img.meal-img1 {
    width: 90%;
    max-width: 340px;
    min-width: 90%;
  }
  #item-meal.point__item .imgbk img.meal-img2 {
    width: 80%;
    max-width: 300px;
    min-width: 80%;
  }

  /* ============================
	room_information
	=============================== */
  .facility__list_wrap .featuresList {
    font-size: clamp(18px, 2.04vw, 20px);
  }

  /* ============================
	common_space
	=============================== */
  .common_space {
    padding: max(70px, 11.22vw) 0 8.16vw;
  }
  .space__list {
    gap: max(50px, 9.18vw);
  }
  .space__item-inner .imgbk {
    width: 47.5%;
    min-width: auto;
  }

  /* ============================
	price
	=============================== */
  .price__list {
    flex-direction: column;
  }
}
@media screen and (max-width: 768px) {
  /* ============================
	point
	=============================== */
  .point__item,
  .point__item:nth-child(odd) {
    flex-direction: column;
    gap: 5vw;
  }
  .point__item .txtbk {
    width: 100%;
    max-width: 600px;
    min-width: 100%;
  }
  .point__item .imgbk {
    width: 100%;
    max-width: 500px;
  }
  #item-meal.point__item .txtbk {
    padding-top: 30px;
  }
  #item-bus.point__item {
    align-items: center;
  }
  #item-bus.point__item .imgbk img {
    position: static;
  }

  /* ============================
	room_information
	=============================== */
  .room__list {
    flex-direction: column;
    justify-content: center;
    align-items: center;
  }
  .room__item {
    width: 100%;
    max-width: 500px;
  }
  .room__item.wide .imgbk {
    flex-direction: column;
  }
  .room__item.wide .imgbk img {
    width: 100%;
  }
  .icon_num {
    /* min-width:80px;*/
  }
  /* -- 設備 -- */
  .facility__list_wrap .featuresList {
    font-size: clamp(16px, 2.34vw, 18px);
  }
  .facility__list_wrap .note_txt {
    font-size: clamp(13px, 1.95vw, 15px);
  }

  /* ============================
	common_space
	=============================== */
  .space__item-heading {
    left: -15px;
    top: -25px;
  }
}

@media screen and (max-width: 640px) {
  .point__item .txtbk .point__item-note {
    padding: 20px;
  }

  /* ============================
	room_information / common_space 共通
	=============================== */
  .r-heading {
    font-size: clamp(24px, 4.68vw, 30px);
  }

  /* ============================
	room_information
	=============================== */
  .room_information {
    padding: 50px 0 107px;
    position: relative;
  }
  .room__item-heading_bk {
    padding: 20px 10px 0;
  }
  .icon_num {
    left: -5px;
    bottom: calc(100% - 25px);
    top: auto;
  }

  .room__list {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 60px 5%;
    margin-bottom: max(55px, 3.81vw);
    position: relative;
    z-index: 1;
  }

  .room__item-heading {
    font-size: clamp(24px, 4.68vw, 30px);
  }
  .room__item-txt {
    font-size: clamp(16px, 3.12vw, 20px);
  }

  /* ============================
	common_space
	=============================== */
  .space__list {
    flex-direction: column;
  }
  .space__item-inner .imgbk {
    width: 100%;
  }

  /* ============================
	price
	=============================== */
  .price--s-heading {
    font-size: max(25px, 4.68vw);
  }
  .price_bb {
    font-size: max(14px, 3.12vw);
  }
  .price_bb span {
    display: inline-block;
  }
  .price__list-item {
    font-size: max(18px, 3.9vw);
    gap: 2em;
  }
  .price__list-item dt::after {
    width: 1.5em;
  }
  .price__list .num {
    font-size: max(30px, 6.25vw);
  }
  .price_option {
    font-size: max(20px, 3.9vw);
  }
  .option_txt {
    text-align: center;
    line-height: 1.4;
  }
  .price_option-list {
    gap: 20px;
  }
}

@media screen and (max-width: 600px) {
  .price_option-list {
    gap: 10px;
    flex-direction: column-reverse;
  }
}

@media screen and (max-width: 500px) {
  .point__item-heading .en {
    font-size: clamp(50px, 10vw, 60px);
  }
  .point__item-heading .ja {
    font-size: clamp(16px, 4vw, 20px);
  }
}
@media screen and (max-width: 430px) {
  .facility__list_wrap .featuresList-item {
    flex-wrap: wrap;
  }
}
@media screen and (max-width: 400px) {
  .point__item-plus br {
    display: block;
  }

  .price_bb {
    width: 130px;
  }
  .price__list-item {
    display: block;
    text-align: center;
  }
  .price__list-item dt {
    width: 100%;
  }
  .price__list-item dd {
    /*padding-left:2em;*/
    position: relative;
  }
  .price__list-item dt::after {
    display: none;
  }
}

@media screen and (max-width: 360px) {
  .price--headingBk {
    flex-direction: column;
    align-items: center;
  }
  .price_option {
    font-size: max(18px, 3.9vw);
  }
}
