/* 下層ページ */
/*Q&A　archive-qa.php*/
.qa_bk h3 {
  padding: 20px;
  margin: 40px 0 10px;
  border-bottom: 1px solid #ebebec;
  border-top: 1px solid #ebebec;
}

.qa_bk li {
  padding: 20px;
  border-bottom: 1px dotted #eee;
}

.qa_bk dt {
  padding-bottom: 20px;
  font-weight: bold;
}

.qa_bk dt span,
.qa_bk dd span {
  display: inline-block;
  margin-left: 40px;
  margin-top: 5px;
  line-height: 1.6;
}

.qa_bk dt::before {
  content: "Q";
  display: inline-block;
  font-size: 3rem;
  padding-right: 10px;
  color: #ebe665;
  position: absolute;
}

.qa_bk dd::before {
  content: "A";
  display: inline-block;
  font-size: 3rem;
  padding-right: 10px;
  color: #C9CDC7;
  position: absolute;
}

/*PC*/
@media screen and (min-width: 897px) {
  #facility {
    margin-top: 60px;
  }

  #facility ul {
    justify-content: left;
  }
}

/*END*/
/*Smartphone*/
@media screen and (max-width:896px) {}

/*END*/

/* ------------------------------
 施設　room
------------------------------ */
.page_top_view img.room_top {
  object-position: 50% 60%;
}

#room {
  padding: 0 0 80px;
}

#room h4 {
  font-size: 2.0rem;
  text-align: center;
  margin-bottom: 40px;
  font-weight: 500;
}

#room p.msg,
.top_rental p.msg {
  text-align: center;
  margin-bottom: 60px;
}

#room .box {
  margin-bottom: 65px;
  display: flex;
  flex-direction: column;
  background-color: #FAF5EB;
}

#room .map {
  background: #fff;
  padding: 40px 30px 30px;
}

#room .map img {
  margin: 0 auto;
  width: 100%;
}

#room .inner {
  display: flex;
  justify-content: space-between;
  padding: 40px 20px;
  box-sizing: border-box;
}

#room .txt {
  width: 55%;
  margin: 0 auto;
  padding-left: 20px;
}

#room .txt p.type {
  background: #fff;
  display: inline-block;
  padding: 5px 15px;
  margin-bottom: 20px;
}

#room .txt table {
  border-top: 1px solid #fff;
  border-bottom: 1px solid #fff;
  width: 100%;
}

#room .txt_width table {
  border-top: 1px solid #ccc;
  border-bottom: 1px solid #ccc;
  width: 100%;
  margin: 0 auto;
}

#room .txt table th,
#room .txt_width table th {
  font-size: 1.6rem;
  padding: 16px 25px;
  border-bottom: 1px dotted #fff;
  width: 25%;
  text-align: left;
}

#room .txt table td,
#room .txt_width table td {
  width: 75%;
  font-size: 1.5rem;
  padding: 15px 25px;
  line-height: 1.5;
}

#room .txt table td {
  border-bottom: 1px dotted #fff;
}

#room .txt p.txt_area {
  padding: 16px 25px;
}

#room .txt_width table th,
#room .txt_width table td {
  border-bottom: 1px dotted #ccc;
}

#room .txt_width table td span::after {
  content: '、';
}

#room .txt_width table td span:last-of-type::after {
  content: '';
}

#room ul.label {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}

#room ul.label li {
  width: 48%;
  display: flex;
  margin-bottom: 14px;
}

#room ul.label li p {
  padding: 20px 0;
  font-size: 1.6rem;
}

#room ul.label li .green {
  width: 40%;
  color: #fff;
  background: #19a495;
  text-align: center;
  font-weight: 500;
}

#room ul.label li .white {
  width: 60%;
  background: #fff;
  padding: 20px 30px;
  box-sizing: border-box;
}

.bk_white {
  background: #fff;
}

.rm_slide {
  width: 40%;
}

.rm_slide img {
  width: 100%;
  height: 420px;
  object-fit: cover;
}

/*PC*/
@media screen and (min-width: 897px) {}

/*END*/
/*Smartphone*/
@media screen and (max-width:896px) {
  #room .map {
    padding: 0;
  }

  #room .inner {
    flex-direction: column;
    padding: 40px 3%;
  }

  #room .txt {
    width: 100%;
    padding-left: 0;
    margin-top: 20px;
  }

  #room .txt_width table {
    width: 100%;
  }

  #room .txt table th,
  #room .txt_width table th {
    font-size: 1.4rem;
    padding: 16px 3px;
    width: 30%;
  }

  #room .txt table td,
  #room .txt_width table td {
    width: 70%;
    font-size: 1.4rem;
  }

  #room .txt_width table th,
  #room .txt_width table td {
    width: 100%;
    display: block;
    box-sizing: border-box;
  }

  #room .txt_width table th {
    text-align: center;
  }

  #room .txt_width table td {
    border-bottom: 1px solid #ccc;
  }

  .rm_slide {
    width: 100%;
  }

  .rm_slide img {
    width: 100%;
    height: 240px;
    object-fit: cover;
  }
}

/*END*/

/* ------------------------------
温泉　spa
------------------------------ */
#room.spa {
  padding: 0;
}

.inner_spa {
  padding: 30px 50px;
}

.inner_spa .txt_area {
  padding: 20px;
}

/*Smartphone*/
@media screen and (max-width:896px) {
  .inner_spa {
    padding: 10px 20px;
  }
}

/*END*/
/* ------------------------------
  食事　meal
------------------------------ */
.meal_top {
  object-position: 50% 70%;
}

#meal {
  padding: 80px 0;
}

#meal h4 {
  font-size: 2.0rem;
  text-align: center;
  margin-bottom: 40px;
  font-weight: 500;
}

#meal .box {
  background: #FAF5EB;
  padding: 60px 30px;
}

/*画像はイメージです*/
.p_menu {
  padding: 10px 0;
  font-size: 1.4rem;
  color: #888;
}

#meal .me_inner {
  width: 50%;
  height: auto;
}

#meal img {
  width: 100%;
  height: auto;
  object-fit: cover;
  margin: 0 auto;
}

#meal .inner {
  display: flex;
  justify-content: space-around;
}

#meal .txt {
  width: 50%;
  padding-left: 20px;
}

#meal .txt p.type {
  font-weight: bold;
}

#meal .menu_p {
  border-bottom: 1px solid #ABB4BD;
  font-size: 18px;
  padding-left: 3px;
}

#meal .txt ul {
  width: 100%;
}

#meal .txt ul li {
  font-size: 1.6rem;
  padding: 8px 16px;
  text-align: left;
  position: relative;
  line-height: 1.4;
}

/*PC*/
@media screen and (min-width: 897px) {}

/*END*/
/*Smartphone*/
@media screen and (max-width:896px) {
  #meal .me_inner {
    width: 100%;
  }

  #meal img {
    width: 100%;
    height: auto;
    object-fit: cover;
  }

  #meal .inner {
    flex-direction: column;
    padding: 0;
  }

  #meal .box {
    padding: 60px 15px;
  }

  #meal .txt {
    width: auto;
    padding-left: 0;
  }

  #meal .menu_p {
    font-size: 16px;
  }

  #meal .txt ul li {
    font-size: 1.4rem;
    padding: 12px 0 12px 13px;
    text-align: left;
  }

  #meal .menu_p {
    margin-top: 40px;
  }
}

/*END*/

/* ------------------------------
 ペット　pet
------------------------------ */
.dog_allbox {
  width: 80%;
  margin: 20px auto;
}

.dog_box_top,
.dog_box_under {
  display: flex;
  margin: 0 auto;
  justify-content: center;
}

.dog_box_top {}

.dog_box_under {
  flex-direction: row-reverse;
  position: relative;
  top: -120px;
  z-index: -100;
}

.dog_box_txt h3 {
  margin-top: 50px;
  margin-left: 20px;
  font-size: 20px;
  font-weight: bold;
  line-height: 2;
  text-align: center;
}

.dog_box_txt {
  width: 500px;
}

.dog_box_under .dog_box_txt p {
  background: #d5dfbb;
  margin-top: 170px;
  padding: 20px;
}

.dog_box_img {
  max-width: 550px;
  min-width: 40%;
}

.dog_box_under .dog_box_img {
  max-width: 550px;
  min-width: 40%;
}

.dog_box_img img {
  width: 100%;
  filter: drop-shadow(5px 5px 3px #77787B);
}

@media screen and (max-width:896px) {
  .dog_allbox {
    width: 100%;
    margin: 0 auto;
  }

  .dog_box_top,
  .dog_box_under {
    display: block;
  }

  .dog_box_txt h3 {
    margin: 60px auto 15px;
    font-size: 20px;
    text-align: center;
  }

  .dog_box_txt {
    width: 100%;
    padding: 0;
  }

  .dog_box_under {
    top: 0;
    margin-top: 20px;
  }

  .dog_box_under .dog_box_txt p {
    margin: 10px auto 0;
  }

  .dog_box_img {
    max-width: 100%;
  }
}

.dog_reserve {
  background: #d5dfbb;
  text-align: center;
  padding: 80px;
}

.dog_reserve_txt {
  font-size: 24px;
  font-weight: bold;
  line-height: 2;
  text-align: center;
}

.fa-hand-point-up {
  transform: rotate(330deg)
}

@media screen and (max-width:896px) {
  .dog_reserve {
    padding: 30px 15px;
  }

  .dog_reserve_txt {
    font-size: 20px;
  }
}

/*個人情報保護方針*/
.room .txt .rm_names p,
.room .txt .rm_name p {
  padding: 10px 20px;
  box-sizing: border-box;
  background-color: #ECE9B4;
  margin-bottom: 5px;
  text-align: center;
  font-size: 1.8rem;
}

/*特定商取引法に基づく表記*/
.under_w table tr {
  font-size: 1.6rem;
  border-bottom: 1px dotted #CFCFCF;
  text-align: left;
}

.under_w table tr th {
  width: 20%;
}

.under_w table tr td {
  padding: 20px;
}

@media screen and (max-width:896px) {
  .under_w table tr {
    display: flex;
    flex-wrap: wrap;
    margin-top: 22px;
  }

  .under_w table tr th {
    width: 100%;
    text-indent: 0.5em;
  }
}

/* 周辺観光　続きをみる */
.cp_box1 ,.cp_box2 ,.cp_box3 {
  position: relative;
}
.cp_box1 input ,.cp_box2 input ,.cp_box3 input {
  display: none;
}
/*開くためのボタンとテキストを隠すグラデーションの設定*/
.cp_box1 label ,.cp_box2 label ,.cp_box3 label {
  position: absolute;
  display: flex;
  flex-direction: column;
  align-items: center;
  z-index: 1;
  bottom: -10px;
  width: 100%;
  height: 140px; /* グラデーションの高さ */
  cursor: pointer;
  text-align: center;
  /* 以下グラデーションは背景を自身のサイトに合わせて設定してください */
  background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.95) 90%);
}
/* 開いた時にグラデーションを消す */
.cp_box1 input:checked + label ,.cp_box2 input:checked + label ,.cp_box3 input:checked + label {
  background: inherit;
}
.cp_box1 input:checked + label ,.cp_box2 input:checked + label ,.cp_box3 input:checked + label {
  /* display: none ; 閉じるボタンを消す場合コメントアウトを外す */
}
.cp_box1 .cp_container ,.cp_box2 .cp_container ,.cp_box3 .cp_container {
  overflow: hidden;
  height: 250px; /* 開く前に見えている部分の高さ */
  transition: all 0.5s;
}
/*続きをよむボタン*/
.cp_box1 label:after,
.cp_box1 label::before,
.cp_box2 label:after,
.cp_box2 label::before,
.cp_box3 label:after,
.cp_box3 label::before {
  content: '';
  position: absolute;
  line-height: 2.5rem;
}
.cp_box1 label:after ,.cp_box2 label:after ,.cp_box3 label:after {
  z-index: 2;
  bottom: 20px;
  width: 10em;
  content: '続きをよむ';
  color: #ffffff;
  background: #3382c4;;
  border-radius: 20px;
  font-size: 16px;
  padding: 8px;
}
.cp_box1 label::before ,.cp_box2 label::before ,.cp_box3 label::before {
  position: absolute;
  bottom: 38px;
  left: calc(50% - 6.5em);
  z-index: 3;
  width: 10px;
  height: 5px;
  background: #ffffff;
  clip-path: polygon(50% 100%, 0 0, 100% 0)
}
/*閉じるボタン*/
.cp_box1 input:checked + label:after ,.cp_box2 input:checked + label:after ,.cp_box3 input:checked + label:after {
  content: '閉じる';
}
.cp_box1 input:checked + label:before ,.cp_box2 input:checked + label:before ,.cp_box3 input:checked + label:before {
  left: calc(50% - 4.5em);
  transform: scale(1, -1);
}
.cp_box1 input:checked ~ .cp_container ,.cp_box2 input:checked ~ .cp_container ,.cp_box3 input:checked ~ .cp_container {
  height: auto;
  padding-bottom: 80px; /* 閉じるボタンのbottomからの位置 */
  transition: all 0.5s;
}