@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");
@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@400;700&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 Sans JP", "Helvetica Neue",Arial,
    "Hiragino Kaku Gothic ProN",
    "Hiragino Sans", sans-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;
}
/* 全ての要素に border-box を適用（基本のキです！） */
*, *::before, *::after {
  box-sizing: border-box;
}
a {
  text-decoration: none;
  color: #333333;
}
.a_link {
  text-decoration: underline;
  color: #56B9CF;
   overflow-wrap: anywhere;
}
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: #56B9CF;
}
.bg_white {
  background: #fcfdfe;
}
.bg_beige {
  background: #FBF8F0;
}

.r_bg {
  position: relative;
}
.r_bg::before {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
}
.r_bg.separate {
  margin: 100px 0;
}

.color_w {
  color: #fcfdfe;
}
.container {
  width: 90%;
  max-width: 100%;
  margin: auto;
  padding: 100px 0;
}
.container.pt_0 {
  padding-top: 0;
}
.container.pb_0 {
  padding-bottom: 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: 182px;
  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: #56B9CF;
}
.m_box {
  padding: 80px;
  background: #FBF8F0;
}
.bg_concept {
  background-image: url(../img/top/top-nami1.png);
  background-size: contain;
  background-repeat: no-repeat;
}
.top_concept_wrap {
  padding: 12rem 5rem 0;
}
.top_concept_center {
  position: relative;
}
.top-mark {
  width: 40px;
  position: absolute;
    right: 0;
    left: 0;
    margin: 0 auto;
    top: -60px;
}
.bg_concept .txt {
  padding: 2rem;
  text-align: center;
  line-height: 2;
}
.h_ttl {
  font-size: 20px;
  text-align: center;
  font-weight: 600;
  color: #1E3237;
}
.top_concept_img {
  height: 60vh;
  width: 100%;
}
.top_concept_img img {
  height: 60vh;
  width: 100%;
  object-fit: cover;
  border-radius: 50px;
}
.h_ttl span {
  display: block;
  color: #FFC099;
  font-size: 4rem;
}
.h_ttl.beige, .h_ttl.beige span {
  color: #FFFFDE;
}
.h_ttl.blue span {
  color: #64AFC4;
}

.h_ttl.v2 {
  margin-bottom: 40px;
}
.h_ttl_sub {
  font-size: 16px;
  padding: 1.2rem 0;
  margin-bottom: 1rem;
  background-color: #64AFC4;
  font-weight: 600;
  color: #fff;
  text-align: center;
  border-radius: 0 0 25px 25px;
}
.h_ttl_sub_under {
  font-size: 16px;
  padding: 1.2rem 0;
  background-color: #90C5D4;
  font-weight: 600;
  color: #fff;
  text-align: center;
}
.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: #56B9CF;
}
.h_ttl_line::before {
  content: "";
  display: inline-block;
  width: 4px;
  height: 1.5rem;
  background: #56B9CF;
  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: 80px;
}
.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: #56B9CF;
}
.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;
  position: relative;
}
.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.v2 li {
  width: 100%;
  color: #fff;
  position: absolute;
  top: -100px;
    left: 50px;
    font-size: 2rem;
    z-index: 2;
}
.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: #56B9CF;
}
@-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 {
  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;
  left: 50px;
}
.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: "Noto Sans JP", sans-serif;
  color: #222;
  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%;
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
  background: #ffffff;
  background: -webkit-linear-gradient(to bottom, #177D94, #ffffff);
  background: linear-gradient(to bottom, #177D94, #ffffff);
}

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;
}


/* 親コンテナ */
.access-container {
  display: flex;
  gap: 20px; /* ボックス間の隙間 */
  width: 100%;
  max-width: 1000px; /* 最大幅はお好みで */
  margin: 0 auto;
}

/* 各ボックス */
.access-box {
  flex: 1; /* これで「均等な幅」になります */
  display: flex; /* ボックス内の高さも活用する場合 */
}

/* 白枠の装飾 */
.box-inner {
  width: 100%; /* 親のflex:1をいっぱいに使う */
  border: 1px solid #ffffff; /* 白い枠線 */
  padding: 30px; /* 内側の余白 */
  color: #ffffff;
  /* 背景が水色ならここで指定、または親セクションで指定 */
}

/* テキストの微調整 */
.box-inner h3 {
  margin-top: 0;
  font-size: 1.1rem;
  display: flex;
  align-items: center;
  gap: 10px;
  color: #FFFFDE;
}

.box-inner p {
  margin-bottom: 0;
  line-height: 1.6;
}

.footer_bg {
    position: relative;
    width: 100%;
    padding-top: 210px;
    z-index: 1;
    display: flex;
}

/* 上部に波模様（top-nami5.png）を配置 */
.footer_bg::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 248px; /* 画像の高さに合わせて調整 */
    background: url(../img/top/top-nami5.png) no-repeat top / contain;
    z-index: 2;
}

.footer_bg::after {
    content: "";
    position: absolute;
    top: 34%; 
    left: 0;
    width: 100%;
    bottom: 0;
    background-color: #ffffff; 
    z-index: -1;
}
.footer_bg {
  display: flex;
}

.footer_left ,.footer_right {
  display: flex;
  flex-direction: column;
  width: 50%;
  margin-top: 100px;
}


footer .f_btn {
  display: flex;
  justify-content: space-evenly;
}
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-size: 16px;
}
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;
    color: #177D94;
    border-radius: 10px;
    border: 1px solid #177D94;
}
.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;
}
.reservation_btn {
  text-align: center;
}
.reservation_btn a {
  display: inline-block;
  padding: 1rem 2rem;
    color: #ffffff;
    border-radius: 10px;
    background: #177D94;
}
.reservation_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: "\f073";
  font-weight: 900;
  margin-right: 5px;
}
.copyright {
  padding: 2rem;
  text-align: center;
  font-size: 12px;
  color: #222;
  background: #fff;
}
.copyright span {
  display: inline-block;
  margin-left: 0.5rem;
}
/*--------------------
コンテンツ
--------------------*/
.slide_bg {
  position: relative;
}
#mainvisual {
height: 800px;
width: 100%;
}
#mainvisual img {
height: 800px;
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;
  }
}

.top_news {
    width: 1200px;
    max-width: 100%;
    margin: auto;
    padding: 60px 0 0;
    height: 24vh;
}
.top_news .news_ttl {
  width: 300px;
  font-size: 1rem;
  padding-left: 26px;
}
.top_news .news_ttl span {
  align-items: center;
  font-size: 3rem;
  color: #64AFC4;
}

.top_news .top_news_list li {
    padding: 14px;
    border-bottom: 1px solid #eee;
}
.top_news .top_news_list li:first-child {
  border-top: 1px solid #eee;
}
.top_news .top_news_list li span {
  color: #64AFC4;
  font-weight: 600;
}

.top-room {
  background-image: url(../img/top/top-nami2.png);
  background-repeat: no-repeat;
  position: relative;
  height: 600px;
  background-size: contain;
}
.bg_gra {
  background: linear-gradient(to bottom, #56B9CF 0%, #ffffff 100%);
    position: absolute;
    width: 100%;
    top: 34%;
}


.bg_gra_img2 {
  width: 120px;
    position: absolute;
    top: 20px;
    left: 30%;
}
.bg_gra_img1 {
  width: 120px;
    position: absolute;
    top: 20px;
    right: 30%;
}

.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;
  margin-top: -68px;
}
.feture_ttl span {
  font-size: 4.5rem;
  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 スライダ― */
/* --- Swiper全体の囲い（見切れ設定） --- */
.room_slider_wrap {
  width: 100%;
  overflow: hidden; /* コンテナ外を綺麗に切る */
  position: relative;
  padding: 0 0 80px; /* 上下の余白 */
}

/* Swiper本体 */
.room_slider {
  overflow: visible !important; /* 両端のスライドを見せる */
}


/* --- 1. スライドの3段階サイズ調整 --- */

/* 基本：一番外側のスライド（一番小さく） */
.room_slider .swiper-slide {
  transition: all 0.6s ease;
  transform: scale(0.65) !important;
  text-align: center;
}

/* 中央の隣：next / prev（少し大きく） */
.room_slider .swiper-slide-next,
.room_slider .swiper-slide-prev {
  transform: scale(0.8) !important;
  z-index: 5;
}

/* 中央：active（一番大きく） */
.room_slider .swiper-slide-active {
  transform: scale(1) !important;
  z-index: 10;
}

/* --- 2. 画像の箱とタイトルの設定 --- */

.room_slider .slide-inner {
  display: inline-block; /* タイトルの幅を画像に合わせる */
}

.room_slider .slide-img-box {
  width: 100%;
  max-width: 450px;
  aspect-ratio: 3 / 4;
  overflow: hidden;
  border-radius: 20px;
}

.room_slider .slide-img-box img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.room_slider .slide-title {
  opacity: 1 !important;
  margin-top: 20px;
  font-weight: bold;
  font-size: 22px;
  color: #177D94;
  transition: all 0.5s ease;
  line-height: 1.2;
}
.room_slider .slide-title span {
  font-size: 16px;
  color: #333;
}

/* 中央のスライドのタイトルだけ強調 */
.room_slider .swiper-slide-active .slide-title {
  transform: scale(1.1);
}

/* --- 3. コントロールエリア（ドットと矢印） --- */

/* レイアウト全体：下部にドットと矢印を並べる */
.slider-controls {
  margin-top: 30px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
  margin-bottom: 30px;
}

/* ページネーション（ドット） */
.room-pagination {
  position: static !important;
  text-align: center;
}

.room-pagination .swiper-pagination-bullet {
  width: 12px;
  height: 12px;
  background: #ccc;
  opacity: 1;
  margin: 0 8px !important;
  transition: all 0.3s ease;
}

.room-pagination .swiper-pagination-bullet-active {
  background: #007d91;
}

/* 矢印ボタンの親要素 */
.nav-buttons {
  display: flex;
  gap: 20px;
  position: relative;
  width: 120px;
  height: 50px;
}

/* 矢印ボタン共通スタイル */
.room_slider_wrap .swiper-button-next,
.room_slider_wrap .swiper-button-prev {
  position: static !important; /* 絶対配置を解除して並列化 */
  width: 50px !important;
  height: 50px !important;
  background-color: #61bacd;
  color: #ffffff;
  border-radius: 50%;
  margin: 0 !important;
  transition: all 0.3s ease;
  /* Swiper標準の左右固定位置をリセット */
  left: auto !important;
  right: auto !important;
  top: auto !important;
  transform: none !important;
}

.room_slider_wrap .swiper-button-next::after,
.room_slider_wrap .swiper-button-prev::after {
  font-size: 18px !important;
  font-weight: bold;
}

.room_slider_wrap .swiper-button-next:hover,
.room_slider_wrap .swiper-button-prev:hover {
  opacity: 0.8;
}



.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: 300px;
    margin:0 auto;
    padding: 8px 20px;
    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: '';
}

.button-1 a {
    color: #177D94;
}

.button-2 {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 300px;
    margin:0 auto;
    padding: 8px 20px;
    border: 1px solid #FFB07E;
    border-radius: 25px;
    background-color: #fff;
    color: #FFB07E;
    font-size: 1em;
}

.button-2::after {
    transform: rotate(45deg);
    width: 5px;
    height: 5px;
    margin-left: 20px;
    border-top: 2px solid #FFB07E;
    border-right: 2px solid #FFB07E;
    content: '';
}

.button-2 a {
    color: #FFB07E;
}


/* --- レイアウト --- */
.activity_flex_container {
  display: flex;
  gap: 20px;
  margin-top: 40px;
}
.activity_slider_block {
  width: 50%; /* 左右に2つ並べる */
}

/* --- カードデザイン --- */
.activity_card {
  position: relative;
  display: block;
  border-radius: 0; /* 画像に合わせる場合は0、少し丸めるなら5px程度 */
  overflow: hidden;
  aspect-ratio: 4 / 3;
}

.activity_img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* カテゴリーラベル (円) */
.activity_label {
  position: absolute;
  top: 25px;
  left: 25px; /* 画像通り左上に配置 */
  width: 130px;
  height: 130px;
  border-radius: 50%;
  z-index: 10;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: #333;
  text-align: center;
}
.activity_slider_kanai .activity_label { background: rgba(255, 176, 126, 0.9); }
.activity_slider_gaibu .activity_label { 
  background: rgba(98, 182, 203, 0.9);
  left: auto;
  right: 25px;
}

.activity_label span { 
  font-size: 26px;
  font-weight: bold;
}
.activity_label small { 
  font-size: 15px;
  color: #fff;
 }

/* テキストオーバーレイ */
.activity_content {
  position: absolute;
  bottom: 11%;
  left: 0;
  width: 100%;
  padding: 50px 25px;
  z-index: 5;
  color: #fff;
  /* 下部に色を乗せるグラデーション */
  background: linear-gradient(to top, rgba(255, 176, 126, 1) 0%, transparent 100%);
}
.activity_slider_gaibu .activity_content {
  background: linear-gradient(to top, rgba(98, 182, 203, 1) 0%, transparent 100%);
}

.activity_title { font-size: 1.8rem; font-weight: bold; margin-bottom: 8px; text-align: left; }
.activity_excerpt { font-size: 0.95rem; line-height: 1.6; text-align: left; margin: 0; }

/* --- Swiperドット --- */
.activity_slider .swiper-pagination {
  bottom: 80px !important;
}
.activity_slider .swiper-pagination span {
      margin: 0 var(--swiper-pagination-bullet-horizontal-gap, 8px)!important;
}

.activity_slider .swiper-pagination-bullet {
  background: #fff;
  opacity: 1;
  width: 10px;
  height: 10px;
}

/* アクティブなドットの色をカテゴリーの色に合わせる */
.activity_slider_kanai .swiper-pagination-bullet-active { background: #56B9CF !important; }
.activity_slider_gaibu .swiper-pagination-bullet-active { background: #f28d70 !important; }

/* --- ボタンの「＞」デザイン統一（お部屋ページへ・一覧） --- */
.btn_more_activity,
.room_link_btn { /* 以前のお部屋ボタンのクラス名に合わせてください */
  display: inline-flex;
  align-items: center;
  justify-content: center;
  position: relative;
  padding: 15px 60px;
  border: 1px solid #f28d70;
  border-radius: 50px;
  color: #f28d70;
  text-decoration: none;
  font-size: 15px;
  transition: 0.3s;
}

.btn_more_activity::after,
.room_link_btn::after {
  content: "";
  display: inline-block;
  width: 6px;
  height: 6px;
  border-top: 1px solid #f28d70;
  border-right: 1px solid #f28d70;
  transform: rotate(45deg);
  margin-left: 20px; /* 文字との間隔 */
}

.activity_excerpt {
  display: block;
  font-size: 0.95rem;
  line-height: 1.6;
  text-align: left;
  margin: 0;
  
  /* 入力した改行をそのまま表示させる魔法のプロパティ */
  white-space: pre-wrap; 
  
  /* 文字が溢れた場合に備えて（念のため） */
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3; /* 最大3行まで表示し、それ以上は...にする */
}



/* 周辺観光 */
.info_wrap {
    display: flex;
    justify-content: space-between;
    margin-top: 60px;
    margin-bottom: 120px;
}
.info_box {
  width: 32%;
    aspect-ratio: 3/2;
}
.info_box img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      border-radius: 25px 25px 0 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;
}

/* お部屋 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: #56B9CF;
  position: relative;
  border-radius: 20px;
}
.room_menulist_box a.room_menulist_btn img {
  width: 100%;
  height: 150px;
  object-fit: cover;
  box-sizing: border-box;
  border: 1px solid #56B9CF;
  transition: 0.5s;
  border-radius: 20px;
}
.room_menulist_box a.room_menulist_btn:hover img {
  opacity: 0.4;
}
.room_menulist_box a.room_menulist_btn p {
  position: absolute;
  width: 90%;
  top: 50%;
  left: 50%;
  transform: translateY(-50%) translateX(-50%);
  text-align: center;
  color: #fff;
  font-weight: bold;
  font-size: 15px;
  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: #56B9CF;
  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);
}
.room_wrap .room_ttl {
  -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: #56B9CF;
  margin-right: 0.5rem;
  vertical-align: -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;
}
.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;
}
.room_wrap:last-of-type {
  margin-bottom: 0;
}
/* お食事 meal ----------------------------- */

.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%;
  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);
}
.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: #56B9CF;
  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) .txt {
  right: inherit;
  left: 0;
}
.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%;
  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: #56B9CF;
  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;
}
.entry_content .post_date {
  display: inline-block;
  margin-bottom: 1rem;
  font-size: 1.5rem;
  color: #56B9CF;
}
.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: #56B9CF;
  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 #56B9CF;
}
.tbl01 td {
  border-bottom: 1px solid #D5BE6E;
}
.tbl02 {
  width: 100%;
}
.tbl02 th, .tbl02 td {
  display: inline-block;
  padding: 0.5rem 1rem;
  margin-top: 0.5rem;
}
.tbl02 th {
  width: 25%;
  background: #56B9CF;
  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;
}

p.footer-tel {
  text-align: center;
  font-size: 30px;
}
p.footer-tel a {
  color: #64AFC4; 
}
p.footer-tel span.bgcl {
  font-size: 16px;
  border-radius: 12px;
  background: #64AFC4;
  color:#fff;
    padding: 2px 7px;
    margin-right: 7px;
}
p.footer-tel span.bgnone {
  font-size: 15px;
    color: #222;
}
.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: #FFC099;
  position: absolute;
}
.qa_bk dd::before {
  content: "A";
  display: inline-block;
  font-size: 2rem;
  padding-right: 10px;
  color: #56B9CF;
  position: absolute;
}

.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 {
    text-align: center;
}
.top_bnr {
  margin: 110px 0 0;
}
.top_bnr ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  width: 80%;
  max-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;
}


/* ① 土台：全体の背景色（ベージュ） */
.top-map {
    position: relative;
    width: 100%;
    min-height: 1600px;
    background-color: #ffffff; /* 一番下の色 */
    overflow: hidden;
    z-index: 1;
}

/* ② 上部の波の線 (top-nami3.png) */
.top-map::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 300px; 
    background: url(../img/top/top-nami3.png) no-repeat top / contain;
    z-index: 4; /* 一番上に配置 */
}

/* ③ 下部の波 (top-nami4.png) */
/* ここを z-index: 3 にして、塗りつぶしより上に持ってきます */
.top-map_bg {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 500px; 
    background: url(../img/top/top-nami4.png) no-repeat bottom / contain;
    z-index: 3; /* 塗りつぶし(::after)より上に表示させる */
}

/* ④ 真ん中を埋める水色の面 */
.top-map::after {
    content: "";
    position: absolute;
    top: 200px; /* 上の波の線とつながる位置 */
    left: 0;
    width: 100%;
    bottom: 0;
    background-color: #e0f2f7; 
    z-index: 2; /* 波の画像より下の階層 */
}

/* ⑤ コンテンツ */
.map_box {
    position: relative;
    z-index: 10;
    padding: 250px 0;
}

.map_img {
  width: 60%;
  margin: 50px auto;
}
.map_img img {
  width: 100%;
  object-fit: cover;
  border-radius: 20px;
}

.map_img_bg {
  position: relative;
}
.map_img_bg img {
  position: absolute;
  top: -30px;
  right: 23%;
  width: 110px;
  z-index: -1;
}

.rg_bg {
  background: #FBF9EF;
}

/* セクション全体の背景設定 */
.reserve-section {
  position: relative;
  width: 100%;
  padding: 30px; /* 上下の余白と、左右の枠線外側の余白 */
  background: url('../img/top/top_faq.jpg') no-repeat center / cover;
  display: flex;
  justify-content: center;
  align-items: center;
  box-sizing: border-box;
}

/* 白い枠線 */
.reserve-border {
  width: 100%;
  border: 1px solid rgba(255, 255, 255, 0.8); /* 少し透過した白 */
  padding: 60px 20px; /* 枠線から文字までの距離 */
  display: flex;
  justify-content: center;
  align-items: center;
  box-sizing: border-box;
}

/* コンテンツ中央揃え */
.reserve-content {
  text-align: center;
  color: #ffffff;
}


/* ボタン */
.reserve-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background-color: #ffffff;
  color: #007d91; /* 画像のような青緑色 */
  text-decoration: none;
  padding: 15px 60px;
  border-radius: 50px; /* 丸み */
  font-weight: bold;
  font-size: 1.1rem;
  margin-bottom: 25px;
  position: relative;
  transition: opacity 0.3s;
}

.reserve-button:hover {
  opacity: 0.9;
}

/* ボタン内の矢印（>） */
.reserve-button .arrow {
  margin-left: 10px;
  width: 8px;
  height: 8px;
  border-top: 2px solid #007d91;
  border-right: 2px solid #007d91;
  transform: rotate(45deg);
}


/* ボタン2 */
.other-button {
  display: block;
	text-align: center;
	vertical-align: middle;
	text-decoration: none;
	width: 320px;
	margin: auto;
	padding: 10px 20px;
	font-weight: bold;
	background-image: linear-gradient(to right, #007d91 0%, #61bacd 100%);
	border-radius: 100vh;
	color: #fff;
	box-shadow: 0 2px 5px rgba(0, 0, 0, .2);
	-webkit-box-shadow: 0 2px 5px rgba(0, 0, 0, .2);
	transition: 0.5s;
}

.other-button:hover {
	color: #fff;
	background-image: linear-gradient(to left, #007d91 0%, #61bacd 100%);
}

/* ボタン内の矢印（>） */
.other-button .arrow {
display: inline-block;
  vertical-align: middle;
  margin-left: 10px;
  width: 10px;
  height: 10px;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  transform: rotate(45deg);
  background: transparent;
}


/* アクティビティ */
.activity_wrap {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
}

.activity_box {
  width: 30%;
  height: auto;
  margin-bottom: 20px;
}

.activity_box img {
  width: 100%;
  height: 240px;
  object-fit: cover;
  border-radius: 25px 25px 0 0;
}