@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;0,600;0,700;1,300;1,400;1,500;1,600;1,700&family=Noto+Sans+JP:wght@100..900&family=Noto+Serif+JP:wght@200..900&display=swap");
/*--------------------
/変数ここまで
--------------------*/
.mt_10 {
  margin-top: 10px;
}
.mt_20 {
  margin-top: 20px;
}
.mt_30 {
  margin-top: 30px;
}
.mt_40 {
  margin-top: 40px;
}
.mt_50 {
  margin-top: 50px;
}
.mt_60 {
  margin-top: 60px;
}
.mt_70 {
  margin-top: 70px;
}
.mt_80 {
  margin-top: 80px;
}
.mt_90 {
  margin-top: 90px;
}
.mt_100 {
  margin-top: 100px;
}
.mb_10 {
  margin-bottom: 10px;
}
.mb_20 {
  margin-bottom: 20px;
}
.mb_30 {
  margin-bottom: 30px;
}
.mb_40 {
  margin-bottom: 40px;
}
.mb_50 {
  margin-bottom: 50px;
}
.mb_60 {
  margin-bottom: 60px;
}
.mb_70 {
  margin-bottom: 70px;
}
.mb_80 {
  margin-bottom: 80px;
}
.mb_90 {
  margin-bottom: 90px;
}
.mb_100 {
  margin-bottom: 100px;
}
.mb_250 {
  margin-bottom: 250px !important;
}
.br_sp {
  display: none;
}
.br_pc {
  display: block;
}
body {
  font-family: "Noto Serif JP", "游明朝", "Yu Mincho", YuMincho, "ヒラギノ明朝 Pro W3", "Hiragino Mincho Pro", "HGS明朝E", "ＭＳ Ｐ明朝", "MS PMincho", "Times New Roman", Times, Garamond, Georgia, serif;
  -webkit-font-feature-settings: "palt";
  font-feature-settings: "palt";
  -webkit-font-feature-settings: "palt"1;
  font-feature-settings: "palt"1;
  line-height: 1.6;
  letter-spacing: 0.1rem;
  color: #44403f;
  background: #ffffff;
}
body.fixed {
  position: fixed;
  width: 100%;
  height: 100%;
}

body * {
  font-weight: 600;
}
.svg_wrap {
  position: absolute;
  z-index: -9999;
}
a {
  text-decoration: none;
  color: #44403f;
}
.a_link {
  text-decoration: underline;
  color: #036eb8;
}
img {
  max-width: 100%;
}
.eng {
  font-family: "Cormorant Garamond", serif;
  line-height: 1;
  font-weight: 600;
}
.tcenter {
  text-align: center;
}
.link_btn a {
  display: inline-block;
  width: 200px;
  padding: 1rem 2rem;
  color: #d6cdba;
  border: 1px solid #d6cdba;
  line-height: 1;
  position: relative;
  -webkit-transition: 0.3s ease-in-out;
  transition: 0.3s ease-in-out;
}
.link_btn a svg {
  width: 1.5rem;
  height: 1rem;
  fill: #d6cdba;
  position: absolute;
  top: 50%;
  right: 1.5rem;
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
  -webkit-transition: 0.3s ease-in-out;
  transition: 0.3s ease-in-out;
}
.link_btn a:hover {
  background: #d6cdba;
  color: #fcfdfe;
}
.link_btn a:hover svg {
  right: 1rem;
  fill: #fcfdfe;
}
.link_btn._white a {
  background: #fcfdfe;
  border: 0;
}
.link_btn._white a:hover {
  background: #d6cdba;
}
.link_btn._white a:hover svg {
  right: 1rem;
  fill: #fcfdfe;
}
.gmap {
  position: relative;
  padding-top: 33.3333333333%;
  margin-bottom: 60px;
}
.gmap iframe {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  -webkit-filter: grayscale(50%);
  filter: grayscale(50%);
}
.del_map {
  width: 800px;
  max-width: 100%;
  margin: 0 auto 60px;
}
.bg_base {
  background: #00a29a;
}
.bg_white {
  background: #fcfdfe;
}
.bg_beige {
  background: #ece6de;
}
.bg_beige2 {
  background: #d6cdba;
}
.r_bg {
  position: relative;
}
.r_bg::before {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background: #d6cdba;
  border-radius: 0 200px 0 0;
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
}
.r_bg.separate {
  margin: 100px 0;
}
.l_bg {
  position: relative;
  padding: 15px;
}
.l_bg::before {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background: #d6cdba;
  border-radius: 200px 0 0 0;
  position: absolute;
  top: 0;
  right: 0;
  z-index: -1;
}
.l_bg.separate {
  margin: 100px 0;
}
.color_w {
  color: #fcfdfe;
}
.container {
  width: calc(100vw - 436px);
  max-width: 100%;
  margin: auto;
  padding: 100px 0;
}
.container.pt_0 {
  padding-top: 0;
}
.container.p_0 {
  padding: 0;
}
.container2 {
  width: calc(100vw - 218px);
  max-width: 100%;
  margin: auto;
  padding: 100px 0;
}
.container2.pt_0 {
  padding-top: 0;
}
.scrollbar {
  min-height: 100px;
  max-height: 120px;
  padding: 1rem;
  overflow-y: scroll;
  overflow-x: hidden;
}
.scrollbar::-webkit-scrollbar {
  overflow: hidden;
  width: 1px;
  background: #ccc;
}
.scrollbar::-webkit-scrollbar:horizontal {
  height: 3px;
}
.scrollbar::-webkit-scrollbar-button {
  display: none;
}
.scrollbar::-webkit-scrollbar-piece {
  background: #eee;
}
.scrollbar::-webkit-scrollbar-piece:start {
  background: #eee;
}
.scrollbar::-webkit-scrollbar-thumb, .scrollbar::-webkit-scrollbar-corner {
  background: #00a29a;
}
.m_box {
  padding: 80px;
  background: #d6cdba;
  border-radius: 0 100px 0 100px;
}
.bg_concept {
  padding: 6rem 5rem 0;
}
.bg_concept .txt {
  padding: 2rem;
  text-align: center;
}
.h_ttl {
  font-size: 22px;
  text-align: center;
  font-weight: 600;
  color: #367D91;
}
.top_concept_img {
  height: 400px;
  width: 100%;
}
.top_concept_img img {
  height: 400px;
  width: 100%;
  object-fit: cover;
  border-radius: 50px;
}
.h_ttl span {
  display: block;
  color: #036eb8;
  font-size: 4rem;
}
.h_ttl.beige {
  color: #ece6de;
}
.h_ttl.beige span {
  color: #ece6de;
}
.h_ttl.v2 {
  margin-bottom: 40px;
}
.h_ttl_sub {
  font-size: 1.125rem;
  padding-bottom: 0.5rem;
  margin-bottom: 1rem;
  border-bottom: 1px solid #00a29a;
  font-weight: 600;
}
.h_ttl_sub2 {
  width: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
}
.h_ttl_sub2::before {
  content: "";
  display: block;
  width: 0.75rem;
  height: 2px;
  background: #00a29a;
  margin-right: 5px;
}
.h_ttl_line {
  padding: 0.5rem 1rem;
  margin-bottom: 1rem;
  background: #ece6de;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  font-size: 1.25rem;
  font-weight: 600;
  color: #00a29a;
}
.h_ttl_line::before {
  content: "";
  display: inline-block;
  width: 4px;
  height: 1.5rem;
  background: #00a29a;
  margin-right: 0.5rem;
}
.vertical_ttl {
  -webkit-writing-mode: vertical-rl;
  -ms-writing-mode: tb-rl;
  writing-mode: vertical-rl;
  font-size: 3rem;
  color: #ece6de;
}
.vertical_ttl span {
  display: block;
  color: #d6cdba;
  font-size: 1rem;
  letter-spacing: 0.1rem;
}
.m_text {
  font-size: 1.5rem;
}
.m_text2 {
  font-size: 1.25rem;
}
.bold {
  font-weight: 600;
}
#under {
  margin-top: 100px;
}
.page_ttl {
  position: relative;
}
.page_ttl figure {
  position: relative;
}
.page_ttl figure::before {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.3);
  position: absolute;
  top: 0;
  left: 0;
}
.page_ttl img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
}
.page_ttl .ttl_wrap {
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
  color: #ece6de;
  font-size: 3rem;
  font-weight: 600;
  line-height: 1;
  text-align: center;
}
.page_ttl .ttl_wrap span {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  font-size: 1.5rem;
  font-weight: 400;
}
.page_ttl .page_wave {
  width: 100%;
  height: 178px;
  position: absolute;
  bottom: 0;
  left: 0;
  overflow: hidden;
}
.page_ttl .page_wave svg {
  width: 100%;
  height: 356px;
  fill: #ece6de;
}
.breadcrumbs {
  width: calc(100vw - 218px);
  max-width: 100%;
  margin: auto;
  padding: 1rem;
}
.breadcrumbs ul {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
}
.breadcrumbs ul li a {
  color: #00a29a;
}
.breadcrumbs ul li:nth-of-type(2) a {
  pointer-events: none;
}
.breadcrumbs ul li:not(:first-child) a::before {
  font-family: "Font Awesome 5 Free";
  font-weight: 900;
  content: "\f054";
  display: inline-block;
  margin: 0 0.5rem;
}
.list_disc {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
}
.list_disc li {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  padding: 0.5rem 0;
  margin-right: 1rem;
}
.list_disc li::before {
  content: "";
  display: inline-block;
  width: 4px;
  height: 4px;
  background: #00a29a;
  border-radius: 50%;
  margin-right: 5px;
}
.list_disc.v2 li {
  width: 100%;
}
.list_disc.v2 li a {
  text-decoration: underline;
}
.slide_anim {
  opacity: 0;
  overflow: hidden;
}
.slide_anim.on {
  -webkit-animation-name: maskIn;
  animation-name: maskIn;
  -webkit-animation-duration: 0.5s;
  animation-duration: 0.5s;
  -webkit-animation-fill-mode: forwards;
  animation-fill-mode: forwards;
  -webkit-animation-timing-function: cubic-bezier(0.8, 0, 0.5, 1);
  animation-timing-function: cubic-bezier(0.8, 0, 0.5, 1);
  position: relative;
  opacity: 1 !important;
}
.slide_anim.on::before {
  -webkit-animation-name: maskOut;
  animation-name: maskOut;
  -webkit-animation-duration: 0.5s;
  animation-duration: 0.5s;
  -webkit-animation-delay: 0.5s;
  animation-delay: 0.5s;
  -webkit-animation-fill-mode: forwards;
  animation-fill-mode: forwards;
  -webkit-animation-timing-function: cubic-bezier(0.8, 0, 0.5, 1);
  animation-timing-function: cubic-bezier(0.8, 0, 0.5, 1);
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
  width: 100%;
  height: 100%;
}
.slide_anim::before {
  background: #00a29a;
}
@-webkit-keyframes maskIn {
  from {
    -webkit-transform: translateX(-100%);
    transform: translateX(-100%);
  }
  to {
    -webkit-transform: translateX(0);
    transform: translateX(0);
  }
}
@keyframes maskIn {
  from {
    -webkit-transform: translateX(-100%);
    transform: translateX(-100%);
  }
  to {
    -webkit-transform: translateX(0);
    transform: translateX(0);
  }
}
@-webkit-keyframes maskOut {
  from {
    -webkit-transform: translateX(0);
    transform: translateX(0);
  }
  to {
    -webkit-transform: translateX(101%);
    transform: translateX(101%);
  }
}
@keyframes maskOut {
  from {
    -webkit-transform: translateX(0);
    transform: translateX(0);
  }
  to {
    -webkit-transform: translateX(101%);
    transform: translateX(101%);
  }
}
.slide_anim2 {
  opacity: 0;
  -webkit-clip-path: polygon(0 0, 0 0, 0 100%, 0% 100%);
  clip-path: polygon(0 0, 0 0, 0 100%, 0% 100%);
}
.slide_anim2.delay {
  -webkit-animation-delay: 0.3s;
  animation-delay: 0.3s;
}
.slide_anim2.on {
  -webkit-animation: forwards slideAnim2 0.5s linear;
  animation: forwards slideAnim2 0.5s linear;
}
@-webkit-keyframes slideAnim2 {
  0% {
    opacity: 0;
    -webkit-clip-path: polygon(0 0, 0 0, 0 100%, 0% 100%);
    clip-path: polygon(0 0, 0 0, 0 100%, 0% 100%);
  }
  100% {
    opacity: 1;
    -webkit-clip-path: polygon(0 0, 100% 0, 100% 100%, 0% 100%);
    clip-path: polygon(0 0, 100% 0, 100% 100%, 0% 100%);
  }
}
@keyframes slideAnim2 {
  0% {
    opacity: 0;
    -webkit-clip-path: polygon(0 0, 0 0, 0 100%, 0% 100%);
    clip-path: polygon(0 0, 0 0, 0 100%, 0% 100%);
  }
  100% {
    opacity: 1;
    -webkit-clip-path: polygon(0 0, 100% 0, 100% 100%, 0% 100%);
    clip-path: polygon(0 0, 100% 0, 100% 100%, 0% 100%);
  }
}
/*--------------------
header
--------------------*/
header {
  width: 100%;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 10;
  -webkit-transition: 0.5s ease-in-out;
  transition: 0.5s ease-in-out;
}
header::before {
  content: "";
  display: block;
  width: calc(100vw - 436px);
  height: 100%;
  position: absolute;
  top: 0;
  right: 0;
  background: #ffffff;
  z-index: 0;
}
header::after {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background: #ffffff;
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
}

.h_nav {
  width: calc(100vw - 218px);
  max-width: 100%;
  margin: auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  height: 80px;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
}
.logo_wrap {
  height: 60px;
  position: relative;
  z-index: 1;
}
.logo_wrap img {
  height: 100%;
  -webkit-transition: 0.5s ease-in-out;
  transition: 0.5s ease-in-out;
}
.nav_wrap {
  width: 800px;
  max-width: 100%;
  height: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  position: relative;
}
.nav_wrap nav ul {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
}
.nav_wrap nav ul li {
  padding: 10px;
}
.nav_wrap nav ul li a {
  font-weight: 600;
  font-family: "Cormorant Garamond", serif;
  color: #ece6de;
  font-size: 1.25rem;
}
.nav_wrap nav .nav_reserve {
  display: none;
}
.nav_wrap .h_reserv {
  position: fixed;
  top: 0;
  right: 0;
}
.nav_wrap .h_reserv a {
  width: 80px;
  height: 80px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  color: #ffffff;
  text-align: center;
  background: #64AFC4;
}
.nav_wrap .h_reserv a i {
  font-size: 1.5rem;
}
.nav_wrap .h_reserv a span {
  display: block;
  line-height: 1.4;
  margin-top: 0.5rem;
}
.nav_wrap #nav_toggle {
  display: none;
}
/*--------------------
footer
--------------------*/
footer {
  color: #ece6de;
  position: relative;
}
footer::before {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background: #036eb8;
  border-radius: 0 200px 0 0;
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
}
footer a {
  color: #ece6de;
}
footer .f_wrap {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
  margin: 60px 0;
}
footer .f_wrap .f_left {
  width: 48%;
}
footer .f_wrap .f_right {
  width: 48%;
}
footer .f_logo {
  width: 240px;
  margin: auto;
  margin-bottom: 40px;
  -webkit-filter: brightness(0) invert(0.9);
  filter: brightness(0) invert(0.9);
}
footer .f_access {
  margin-bottom: 20px;
}
footer .f_navi {
  margin-bottom: 20px;
}
footer .f_navi ul {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
}
footer .f_navi ul li {
  padding: 0.5rem 0;
  margin: 0 1rem;
  text-align: center;
}
footer .f_navi ul li a {
  font-family: "Cormorant Garamond", serif;
  font-size: 1.125rem;
}
footer .f_sns {
  margin-bottom: 30px;
}
footer .f_sns ul {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
}
footer .f_sns ul li {
  margin: 0 1rem;
}
footer .f_sns ul li a {
  font-size: 2rem;
}
.contact_btn {
  text-align: center;
}
.contact_btn a {
  display: inline-block;
  padding: 1rem 2rem;
  background: #00a29a;
  color: #fcfdfe;
  border-radius: 10px;
}
.contact_btn a::before {
  font-style: normal;
  font-family: "Font Awesome 5 Free";
  font-variant: normal;
  text-rendering: auto;
  letter-spacing: 0;
  line-height: 1;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  content: "\f0e0";
  font-weight: 900;
  margin-right: 5px;
}
.copyright {
  padding: 2rem;
  text-align: center;
  font-family: "Cormorant Garamond", serif;
}
.copyright span {
  display: inline-block;
  margin-left: 0.5rem;
}
/*--------------------
コンテンツ
--------------------*/
.slide_bg {
  position: relative;
}
#mainvisual {
height: 700px;
width: 100%;
}
#mainvisual img {
height: 700px;
width: 100%;
object-fit: cover;
}
#mainvisual .catch {
  position: absolute;
  top: 50%;
  left: 100px;
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
  z-index: 1;
  mix-blend-mode: hard-light;
  color: #fcfdfe;
  text-shadow: 1px 1px 3px #333;
}
#mainvisual .catch span {
  font-size: 4rem;
  color: #fcfdfe;
}
#mainvisual .catch p {
  font-size: 1.25rem;
}
.top_slider .swiper-slide {
  overflow: hidden;
}
.top_slider .swiper-slide .slide_content {
  height: 100%;
  position: relative;
  overflow: hidden;
}

.top_slider_linkbtn {
  position: absolute;
  top: 200px;
  right: -50px;
  z-index: 2;
}
.top_slider_linkbtn a.linkbtn {
  position: relative;
  display: block;
  width: 230px;
  height: 230px;
  border-radius: 50%;
  background-color: rgba(96, 25, 134, 0.8);
  box-shadow: 0 10px 25px 0 rgba(0, 0, 0, .5);
  text-align: center;
  transition: 0.3s;
}
.top_slider_linkbtn a.linkbtn:hover {
  opacity: 0.8;
}
.top_slider_linkbtn .linkbtn_inner {
  position: absolute;
  width: 90%;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-size: 2.0rem;
  line-height: 1.4;
  color: #fff;
}
.top_slider_linkbtn .btn_arrow::after {
  position: absolute;
  bottom: 20px;
  left: 50%;
  transform: translateX(-50%);
  width: 0.7em;
  height: 0.7em;
  transform: rotate(135deg);
  border-right: 2px solid #fff;
  border-top: 2px solid #fff;
  content: "";
}
.fluffy {
  animation: fluffy 3s infinite;
}
@keyframes fluffy {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-20px);
  }
}
@media screen and (max-width: 1280px) {
  .top_slider_linkbtn {
    top: 150px;
    right: 0px;
  }
}
@media screen and (max-width:896px) {
  .top_slider_linkbtn {
    top: 100px;
    right: 10px;
  }
  .top_slider_linkbtn a.linkbtn {
    width: 150px;
    height: 150px;
  }
  .top_slider_linkbtn .linkbtn_inner {
    font-size: 1.2rem;
    line-height: 1.3;
  }
}
.top_news {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
}
.top_news .news_ttl {
  width: 300px;
  font-size: 1rem;
}
.top_news .news_ttl span {
  align-items: center;
  font-size: 3rem;
  color: #036eb8;
}

.top_news .top_news_list {
  width: calc(100% - 320px);
}
.top_news .top_news_list li span {
  display: inline-block;
  color: #00a29a;
  font-weight: 600;
}
.top_news .top_news_list li a {
  display: block;
  padding-bottom: 0.5rem;
  margin-bottom: 0.5rem;
  border-bottom: 1px solid #44403f;
}
.top-room {
  background: #ccc;
}
.top-room p {
  text-align: center;
  margin-bottom: 30px;
}
.feture_ttl {
  font-size: 20px;
  font-weight: 600;
  text-align: center;
  margin-bottom: 30px;
  color: #ffffff;
  line-height: 2;
}
.feture_ttl span {
  font-size: 3rem;
  display: block;
  color: #E0FFF9;
}

.feature_wrap {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
}

/* top-room スライダ― */
/* =================================================
   スライダー全体のレイアウト
   ================================================= */
.demo-swiper {
  width: 100%;
  padding-top: 50px;
  padding-bottom: 50px;
  overflow: hidden; /* 左右のはみ出しを隠すために必須 */
}

/* =================================================
   スライド（Swiper-slide）の設定
   ================================================= */
.demo-swiper .swiper-slide {
  /* ここで1枚のサイズを決めます */
  width: clamp(280px, 80vw, 500px); 
  height: auto;
  display: flex;
  align-items: center;
  justify-content: center;
  /* スライド同士の間隔をJSの設定と合わせるために余白を調整 */
  box-sizing: border-box;
}

/* =================================================
   カード要素（JSでscaleをかける対象）
   ================================================= */
.demo-swiper .card {
  width: 100%;
  transition-property: transform;
  transition-timing-function: ease-out;
  /* 拡大縮小の軸を中央に固定 */
  transform-origin: center center; 
  will-change: transform;
}

/* =================================================
   画像とタイトルの装飾
   ================================================= */
.demo-swiper .img {
  width: 100%;
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
  background: #f0f0f0;
}

.demo-swiper .img img {
  width: 100%;
  aspect-ratio: 3 / 4; /* 画像の縦横比を固定 */
  object-fit: cover;
  display: block;
}

.demo-swiper .slide-ttl {
  font-size: 24px;
  font-weight: bold;
  text-align: center;
  margin-top: 20px;
  color: #333;
}

/* =================================================
   ナビゲーションボタン（青い矢印）
   ================================================= */
.swiper-button-prev,
.swiper-button-next {
  color: #2B9296 !important; /* ボタンの色 */
  background: rgba(255, 255, 255, 0.8);
  width: 50px !important;
  height: 50px !important;
  border-radius: 50%;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
}

.swiper-button-prev::after,
.swiper-button-next::after {
  font-size: 20px !important;
  font-weight: bold;
}


.top-meal h3 {
  font-size: 22px;
  color: #64AFC4;
  text-align: center;
}
.top-meal p {
  text-align: center;
}

.button-1 {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 250px;
    margin:0 auto;
    padding: .4em 2em;
    border: 1px solid #177D94;
    border-radius: 25px;
    background-color: #fff;
    color: #177D94;
    font-size: 1em;
}

.button-1::after {
    transform: rotate(45deg);
    width: 5px;
    height: 5px;
    margin-left: 20px;
    border-top: 2px solid #177D94;
    border-right: 2px solid #177D94;
    content: '';
}








.activity_wrap {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
  margin-top: 60px;
}
.activity_wrap .activity_box {
  width: 32%;
  background: #ece6de;
  border-radius: 0 0 0 50px;
  margin-bottom: 60px;
}
.activity_wrap .activity_box figure {
  overflow: hidden;
}
.activity_wrap .activity_box img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
  -webkit-transition: 0.3s ease-in-out;
  transition: 0.3s ease-in-out;
}
.activity_wrap .activity_box .txt {
  padding: 2rem;
}
.activity_wrap .activity_box a:hover img {
  -webkit-transform: scale(1.2);
  transform: scale(1.2);
}
.activity_wrap.top_ac .activity_box {
  width: 48%;
}
.activity_wrap.top_ac .activity_box:nth-of-type(1) {
  -webkit-box-ordinal-group: 4;
  -ms-flex-order: 3;
  order: 3;
}
.activity_wrap.top_ac .activity_box:nth-of-type(2) {
  -webkit-box-ordinal-group: 3;
  -ms-flex-order: 2;
  order: 2;
}
.activity_wrap.top_ac .activity_box:nth-of-type(3) {
  -webkit-box-ordinal-group: 2;
  -ms-flex-order: 1;
  order: 1;
}
.activity_wrap.v2 {
  -webkit-box-pack: start;
  -ms-flex-pack: start;
  justify-content: flex-start;
}
.activity_wrap.v2 .activity_box {
  margin-right: 2%;
}
.activity_wrap.v2 .activity_box:nth-of-type(3n) {
  margin-right: 0;
}
.contents_wrap {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
  margin-top: 60px;
}
.contents_wrap .contents_box {
  width: 49%;
  margin-bottom: 20px;
  position: relative;
}
.contents_wrap .contents_box figure {
  height: 300px;
  overflow: hidden;
  background: #44403f;
}
.contents_wrap .contents_box figure img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
  -webkit-transition: 0.3s ease-in-out;
  transition: 0.3s ease-in-out;
  opacity: 0.9;
}
.contents_wrap .contents_box h2 {
  padding: 2rem;
  color: #ece6de;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
}
.contents_wrap .contents_box:nth-of-type(2) figure {
  border-radius: 0 100px 0 0;
}
.contents_wrap .contents_box:nth-of-type(3) figure {
  border-radius: 0 0 0 100px;
}
.contents_wrap .contents_box .link_txt {
  font-weight: 600;
  display: inline-block;
  padding: 0.5rem;
  color: #ece6de;
  border-bottom: 1px solid #ece6de;
  position: absolute;
  bottom: 1rem;
  right: 1rem;
}
.contents_wrap .contents_box .link_txt::after {
  font-style: normal;
  font-family: "Font Awesome 5 Free";
  font-variant: normal;
  text-rendering: auto;
  letter-spacing: 0;
  line-height: 1;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  content: "\f0a9";
  font-weight: 900;
  margin-left: 10px;
}
.contents_wrap .contents_box a:hover figure img {
  -webkit-transform: scale(1.2);
  transform: scale(1.2);
  opacity: 1;
}
/* お部屋 room ----------------------------- */
/* 260129 内部ナビ追加 */
.room_menulist_box {
  width: 100%;
  margin-bottom: 120px;
  padding: 0 4rem;
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  box-sizing: border-box;
  justify-content: center;
}
.room_menulist_box a.room_menulist_btn {
  width: 31%;
  height: 150px;
  margin: 10px 1%;
  box-sizing: border-box;
  background-color: #00a29a;
  position: relative;
}
.room_menulist_box a.room_menulist_btn img {
  width: 100%;
  height: 150px;
  object-fit: cover;
  box-sizing: border-box;
  border: 1px solid #00a29a;
  transition: 0.5s;
}
.room_menulist_box a.room_menulist_btn:hover img {
  opacity: 0.4;
}
.room_menulist_box a.room_menulist_btn p {
  position: absolute;
  width: 80%;
  top: 50%;
  left: 50%;
  transform: translateY(-50%) translateX(-50%);
  text-align: center;
  color: #fff;
  font-weight: bold;
  /* font-size: 1.8rem; */
  text-shadow: #000 1px 0 10px;
}
/* ここまで */
.room_cat_ttl {
  font-size: 2rem;
  text-align: center;
  padding-bottom: 1rem;
  margin-bottom: 60px;
  position: relative;
}
.room_cat_ttl::before {
  content: "";
  display: block;
  width: 3rem;
  height: 2px;
  background: #00a29a;
  position: absolute;
  bottom: 0;
  left: 50%;
  -webkit-transform: translateX(-50%);
  transform: translateX(-50%);
}
.room_cat_p {
  text-align: center;
  margin-bottom: 60px;
}
.room_wrap {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
  margin-bottom: 80px;
  position: relative;
}
.room_wrap figure {
  width: 50%;
  overflow: hidden;
}
.room_wrap figure img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
}
.room_wrap .txt {
  width: 50%;
  padding: 40px;
  background: rgba(252, 253, 254, 0.8);
  border-radius: 0 100px 0 0;
}
.room_wrap .room_ttl {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  font-size: 1.25rem;
  font-weight: 600;
  margin-bottom: 30px;
}
.room_wrap .room_ttl::before {
  content: "";
  display: inline-block;
  width: 4px;
  height: 2rem;
  background: #601986;
  margin-right: 0.5rem;
}
.room_wrap:nth-of-type(even) {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: reverse;
  -ms-flex-direction: row-reverse;
  flex-direction: row-reverse;
}
.room_wrap:nth-of-type(even) .txt {
  right: inherit;
  left: 0;
  border-radius: 0 0 0 100px;
}
.room_wrap.reverse {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: reverse;
  -ms-flex-direction: row-reverse;
  flex-direction: row-reverse;
}
.room_wrap.reverse figure {
  border-radius: 0 100px 0 0;
}
.room_wrap.reverse .txt {
  right: inherit;
  left: 0;
  border-radius: 0 0 0 100px;
}
.room_wrap:last-of-type {
  margin-bottom: 0;
}
/* お食事 meal ----------------------------- */
.h_ttl.v2.meal_title_top {
  margin-bottom: 240px;
}
.meal_wrap {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
  margin-bottom: 100px;
  position: relative;
}
.meal_wrap figure {
  width: 55%;
  border-radius: 0 0 0 100px;
  overflow: hidden;
}
.meal_wrap figure img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
}
.meal_wrap .txt {
  width: 50%;
  padding: 60px;
  position: absolute;
  top: 50%;
  right: 0;
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
  background: rgba(252, 253, 254, 0.8);
  border-radius: 0 100px 0 0;
}
.meal_wrap .meal_ttl {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  font-size: 1.5rem;
  font-weight: 600;
  margin-bottom: 30px;
}
.meal_wrap .meal_ttl::before {
  content: "";
  display: inline-block;
  width: 4px;
  height: 2rem;
  background: #601986;
  margin-right: 0.5rem;
}
.meal_wrap:nth-of-type(even) {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: reverse;
  -ms-flex-direction: row-reverse;
  flex-direction: row-reverse;
}
.meal_wrap:nth-of-type(even) figure {
  border-radius: 0 100px 0 0;
}
.meal_wrap:nth-of-type(even) .txt {
  right: inherit;
  left: 0;
  border-radius: 0 0 0 100px;
}
.meal_wrap:last-of-type {
  margin-bottom: 0;
}
.camp_wrap {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
  margin-bottom: 80px;
  position: relative;
}
.camp_wrap figure {
  width: 60%;
  border-radius: 0 0 0 100px;
  overflow: hidden;
}
.camp_wrap figure img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
}
.camp_wrap .txt {
  width: 55%;
  padding: 60px;
  position: absolute;
  top: 50%;
  right: 0;
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
  background: rgba(252, 253, 254, 0.8);
  border-radius: 0 100px 0 0;
}
.camp_wrap .camp_ttl {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  font-size: 1.5rem;
  font-weight: 600;
  margin-bottom: 10px;
}
.camp_wrap .camp_ttl::before {
  content: "";
  display: inline-block;
  width: 4px;
  height: 2rem;
  background: #00a29a;
  margin-right: 0.5rem;
}
.camp_wrap:nth-of-type(even) {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: reverse;
  -ms-flex-direction: row-reverse;
  flex-direction: row-reverse;
}
.camp_wrap:nth-of-type(even) figure {
  border-radius: 0 100px 0 0;
}
.camp_wrap:nth-of-type(even) .txt {
  right: inherit;
  left: 0;
  border-radius: 0 0 0 100px;
}
.camp_wrap.reverse {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: reverse;
  -ms-flex-direction: row-reverse;
  flex-direction: row-reverse;
}
.camp_wrap.reverse figure {
  border-radius: 0 100px 0 0;
}
.camp_wrap.reverse .txt {
  right: inherit;
  left: 0;
  border-radius: 0 0 0 100px;
}
.camp_wrap:last-of-type {
  margin-bottom: 0;
}
.entry_content {
  background: #fcfdfe;
  padding: 40px;
  border-radius: 60px;
}
.entry_content .post_date {
  display: inline-block;
  margin-bottom: 1rem;
  font-size: 1.5rem;
  color: #00a29a;
}
.entry_content .entry_title {
  font-size: 1.25rem;
  font-weight: 600;
  padding-bottom: 0.5rem;
  margin-bottom: 1rem;
  border-bottom: 2px solid #44403f;
  position: relative;
}
.entry_content .entry_title::before {
  content: "";
  display: block;
  width: 5rem;
  height: 2px;
  background: #00a29a;
  position: absolute;
  bottom: -2px;
  left: 0;
}
.entry_content .entry_box figure {
  width: 100%;
  text-align: center;
}
.entry_content .entry_box img {
  width: 100%;
  height: auto;
}
.entry_content .entry_box h3 {
  margin-bottom: 20px;
}
.entry_content .entry_box .entry_body {
  width: 100%;
  padding: 40px 0;
}
.tbl01 {
  width: 100%;
}
.tbl01 th, .tbl01 td {
  padding: 0.5rem;
}
.tbl01 th {
  width: 30%;
  border-bottom: 1px solid #00a29a;
}
.tbl01 td {
  border-bottom: 1px solid #d6cdba;
}
.tbl02 {
  width: 100%;
}
.tbl02 th, .tbl02 td {
  display: inline-block;
  padding: 0.5rem 1rem;
  margin-top: 0.5rem;
}
.tbl02 th {
  width: 25%;
  background: #00a29a;
  color: #fcfdfe;
}
.tbl02 td {
  width: 75%;
  background: #ece6de;
}
.other_list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
}
.other_list .inner {
  width: 32%;
}
.other_list .inner img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
}
.other_list .inner .txt {
  margin-top: 10px;
}
.sp {
  display: none;
}
.pc {
  display: block;
}
/*20240728*/
p.footer-tel {
  text-align: center;
  font-size: 30px;
}
p.footer-tel span {
  font-size: 16px;
}
.qa_bk h3 {
  font-size: 24px;
  text-align: center;
  margin-top: 40px;
}
.qa_bk li {
  padding: 20px 0 20px 20px;
  border-bottom: 1px solid #CBCBCB;
}
.qa_bk dt {
  padding-bottom: 20px;
}
.qa_bk dt span, .qa_bk dd span {
  display: inline-block;
  margin-left: 40px;
  margin-top: 15px;
  line-height: 1.6;
}
.qa_bk dt::before {
  content: "Q";
  display: inline-block;
  font-size: 2rem;
  padding-right: 10px;
  color: #090909;
  position: absolute;
}
.qa_bk dd::before {
  content: "A";
  display: inline-block;
  font-size: 2rem;
  padding-right: 10px;
  color: #00a29a;
  position: absolute;
}
@media screen and (max-width:896px) {
  .qa_bk li {
    padding: 20px 0 20px 0;
    border-bottom: 1px solid #CBCBCB;
  }
}
.rg_box {
  margin-top: 60px;
}
.rg_box ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
.rg_box ul li {
  width: 31%;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  margin-bottom: 1rem;
}
.rg_box ul li .txt {
  width: calc(100% - 90px);
  padding-left: 10px;
}
.rg_box ul li .txt a {
  font-size: 14px;
}


.camp_reserve {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
.camp_reserve .camp_inr {
  width: 25%;
  position: relative;
}
.camp_reserve .camp_inr iframe {
  width: 100%;
  height: 245px;
}
.camp_reserve .camp_inr2 {
  width: 73%;
  position: relative;
}
.camp_reserve .camp_inr2 iframe {
  width: 100%;
  height: 310px;
}
@media screen and (max-width: 1580px) {
  .camp_reserve .camp_inr2 iframe {
    height: 360px;
  }
}
@media screen and (max-width: 1080px) {
  .camp_reserve .camp_inr {
    width: 100%;
    margin-bottom: 10px;
  }
  .camp_reserve .camp_inr2 {
    width: 100%;
  }
}
.bnr_wrap {
  width: 800px;
  max-width: 100%;
  margin: auto;
}
.top_bnr {
  margin: 80px 0;
}
.top_bnr ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  width: 1200px;
  margin: 0 auto;
}
.top_bnr ul li {
  width: 48%;
  max-width: 600px;
  margin: 1%;
  box-shadow: 1px 1px 5px #6b6b6b;
}
.top_bnr ul li img {
  width: 100%;
  object-fit: cover;
}
/* --- バナー共通：基本は非表示 --- */
.floating-banners {
  position: fixed;
  flex-direction: column;
  gap: 12px;
  z-index: 99;
  align-items: flex-end;
}
/* PCサイズ */
@media screen and (min-width: 769px) {
  .floating-banners.pc-only.is-active {
    display: flex !important;
  }
}
/* --- バナー単体・アニメーションの設定 --- */
.floating-banner {
  position: relative;
  /* max-width: 220px; */
  max-width: 480px;
  transition: opacity 0.3s ease, transform 0.3s ease;
}
.floating-banner.hide {
  opacity: 0;
  transform: translateY(20px);
  pointer-events: none;
}
.floating-banner img {
  width: 100%;
  border-radius: 10px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, .25);
  display: block;
}
.banner-close {
  position: absolute;
  top: 8px;
  right: 8px;
  border: none;
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.5);
  color: #fff;
  font-size: 20px;
  width: 32px;
  height: 32px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3);
  transition: background 0.2s;
}
.flex {
  display: flex;
  gap: 12px;
}
/* PC用 */
.pc-only {
  left: 12px;
  bottom: 12px;
}
.sp-only {
  display: none;
}
.map_box {
  padding: 80px 0;
}
.map_img {
  width: 60%;
  margin: 50px auto;
}
.map_img img {
  width: 100%;
  object-fit: cover;
}