@charset "UTF-8";
/*============================
general
============================*/

html{
  font-family: "Noto Serif JP", serif;
  font-size: 62.5%;
  line-height: 1.6;
  color: #333333;
  margin: 0;
  padding:0;
  scroll-behavior: smooth;
}

body a {
  color: #525252;
  text-decoration: none;
}

body{
  margin: 0;
  padding:0;
  position: relative;
}


body * {
  position: relative;
  text-align: justify;
  box-sizing: border-box;

}

body .pc_only{
  display: block;
}

body .sp_only{
  display: none;
}

:root {
  --color-light-blue:#f0f6fb;
  --color-blue:#001e75;
  --color-middle-blue:#1362cc;
}

body a{
  transition: all ease 0.3s;
}

body a:hover{
  filter: brightness(1.1);
}

body img{
  width: 100%;
  height: auto;
  margin: 0;
  display: block;
  line-height: 0;
  font-size: 0;
}

ul,dl,ol {
  list-style: none;
  padding:0;
  margin:0;
}

h1,h2,h3,h4,p,li,dd,dt {
  margin: 0;
  padding:0;
}

picture,figure {
  line-height: 0;
  font-size: 0;
  margin: 0;
  padding:0;
}

/*============================
#site_header
============================*/
#site_header {
  font-family: Arial, Helvetica, sans-serif;
  position: fixed;
  top:0;
  left:0;
  z-index:10;
  width: 100%;
  padding: min(calc(20/1200*100%),20px) min(calc(38/1200*100%),38px);
  background: rgba(255, 255, 255, 0.50);
  font-weight: 400;
}

#site_header .sec_inner {
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
}
#site_header .sec_inner .header_logo {
  width: 230px;
  margin-right: calc(29/1200*100%);
}

#site_header .sec_inner .nav-wrap {
  display: flex;
  align-items: center;
}
#site_header .sec_inner .hamburger-menu {
  display: none;
}

#site_header .sec_inner nav {
  margin-right: 2em;
}
#site_header .sec_inner  .header_nav {
  display: flex;
  justify-content: space-between;
  line-height: 1;
}
#site_header .sec_inner .header_nav li:not(:last-of-type) {
  border-right: 1px solid #000;
  padding:0 0.5em 0 0;
  margin-right: 0.5em;
}
#site_header .sec_inner  .header_nav a{
  text-decoration: none;
  font-size: min(calc(14/1200*100vw),14px);
}
#site_header .sec_inner .header_lang {
  display: flex;
  align-items: center;
  border-radius: 10px;
  overflow: hidden;
}
#site_header .sec_inner .header_lang li {
  background-color: #e9eef6;
  line-height: 1;
  width: 50px;
  height: 30px;
  text-align: center;
  padding: 0;
  display: flex;
  align-items: center ;
  justify-content: center;
  font-size: 14px;
}
#site_header .sec_inner .header_lang li a {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}
#site_header .sec_inner .header_lang li.lang_on {
  background-color: #000;
}
#site_header .sec_inner .header_lang li.lang_on a {
  color:#FFF;
}


/*============================
#site_common
============================*/
 
main .inner {
  max-width: 1200px;
  margin: 0 auto;
}

main .cont_head {
  font-size: min(calc(100/1200*100vw),100px);
  color: #79aede;
  font-weight: 200;
  opacity: 0.5;
  letter-spacing: min(calc(30/1200*100vw),30px);
}

#fixed_area .reservation_linkBlock {
  margin-top: min(calc(50/1200*100%),50px);
}
#fixed_area .reservation_linkBlock ul {
  display: flex;
  flex-wrap: wrap;
}
#fixed_area .reservation_linkBlock li {
  width: 50%;
}
#fixed_area .reservation_linkBlock li a{
  padding:1.5em 0;
  text-align: center;
  color: #FFF;
  font-size: 14px;
  font-weight: 200;
  position: relative;
  width: 100%;
  display: flex;

}

#fixed_area .reservation_linkBlock li p {
  width: 600px;
  text-align: center;
}

#fixed_area .reservation_linkBlock li p:after {
  content:"";
  display: block;
  width: calc(58/600*100%);
  padding-top: calc(7/600*100%);
  background-image: url(/assets/img/common/reserve_icon.png);
  background-size: contain;
  background-repeat: no-repeat;
  transition: all ease 0.2s;
  position: absolute;
  right:10%;
  top:45%;
}
#fixed_area .reservation_linkBlock li p:hover:after {
  right:7%;
}
#fixed_area .reservation_linkBlock li p span {
  font-size: 24px;
  font-weight: 400;
  letter-spacing: 3px;
}
#fixed_area .reservation_linkBlock li:nth-of-type(1) a {
  background-color: #87b2e0;
  justify-content: flex-end;
}

#fixed_area .reservation_linkBlock li:nth-of-type(2) {
  background-color: #06c755;
  justify-content: flex-start;
}


/* ---------------------------------------------
 追従ボタン
--------------------------------------------- */
.bl_floatArea {
  position: fixed;
  left: 0;
  bottom: 0;
  width: 100%;
  z-index: 15;
  visibility: hidden;
  opacity: 0;
  transition: visibility .4s, opacity .4s;
  box-sizing: border-box;
}
.bl_floatArea.is_show {
  visibility: visible;
  opacity: 1;
}
.bl_floatArea_inner {
  margin: auto;
  box-sizing: border-box;
}

/* ボタン */
.bl_floatArea_btn {
  display: block;
}
/*============================
#site_footer
============================*/
#site_footer {
  background-color: #87b2e0;
  padding:50px 0 10px;
  font-family: Arial, Helvetica, sans-serif;
}
#site_footer .footer_inner {
  width: 100%;
  margin: 0 auto;
  padding:0 60px 0;
}


#site_footer .footer_navi.pc_only  .nav-list {
  font-size: min(calc(14/1200*100vw),14px);
  line-height: 1;

}
#site_footer .footer_navi.pc_only  .nav-list li {
  margin-bottom: 0;
  display: inline-block;

}
#site_footer .footer_navi.pc_only  .nav-list li a {
  color: #FFF;
}
#site_footer .footer_navi.pc_only  .nav-list li:not(:last-of-type) {
  border-right: 1px solid #FFF;
  padding-right: 0.5em;
  margin-right: 0.5em;
}

#site_footer .footer_sns {
  margin: 30px 0;
}
#site_footer .footer_sns ul{
  display: flex;
  gap: 10px;
}
#site_footer .footer_sns ul li {
  width: 35px;
}
#site_footer .copy {
  font-size: 18px;
  text-align: center;
  line-height: 166%;
  margin-top: 120px;
}

#site_footer .copy_wrap {
  display: flex;
  justify-content: space-between;
  color: #FFF;
  border-top: 1px solid #FFF;
  padding-top: 10px;
  padding-bottom: 0;
}

#site_footer .copy_wrap a{
  color: #FFF;
}


/*============================
Liquid
============================*/

@media (max-width:1200px)  {


/*============================
#site_header
============================*/




/*============================
#site_common
============================*/

main .inner {
  max-width: 100%;
  margin: 0 auto;
}

main .cont_head {
  font-size: min(calc(100/1200*100vw),100px);
  opacity: 0.5;
  letter-spacing: min(calc(30/1200*100vw),30px);
}


/*============================
#site_footer
============================*/
#site_footer {

}
#site_footer .footer_inner {
  width: 100%;

}
#site_footer .footer_main {


}
#site_footer .footer_main .footer_logo {
  width: min(calc(318/1200*100vw),318px);
  margin-bottom: min(calc(10/1200*100vw),10px)
}
#site_footer .footer_main .footer_address {
  font-size: min(calc(16/1200*100vw),16px);
  margin-bottom: min(calc(30/1200*100vw),30px);
  
}
#site_footer .footer_main .footer_list {
  font-size: min(calc(16/1200*100vw),16px);
}
#site_footer .footer_main .footer_list li {
  margin-bottom:min(calc(28/1200*100vw),28px);
}
#site_footer .footer_main .footer_list a {
  font-size: min(calc(30/1200*100vw),30px);

}

#site_footer .footer_navi.pc_only {
  /* width: min(calc(585/1200*100vw),585px); */
  
}
#site_footer .footer_navi.pc_only  .nav-list {
  /* font-size: min(calc(24/1200*100vw),24px); */
}
#site_footer .footer_navi.pc_only  .nav-list li {

}


#site_footer .copy {
  font-size: min(calc(18/1200*100vw),18px);
  text-align: center;
  line-height: 166%;
  margin-top: min(calc(120/1200*100vw),120px);
}

}


/*============================
Smartphone
============================*/

@media (max-width:769px){
  body .pc_only{
    display: none;
  }
  
  body .sp_only{
    display: block;
  }


/*============================
#site_header
============================*/
#site_header {
  position: fixed;
  top:0;
  left:0;
  z-index:100;
  width: 100%;
  padding: 0;
  background: #FFF;
}

#site_header .sec_inner {
  position: relative;
  display: flex;
  justify-content: space-between;
  width: 100%;
  height: 60px;
  padding: 0 0 0 min(calc(30/786*100%),30px);
}
#site_header .sec_inner .header_logo {
  width: 35%;
  margin: 0;
}
#site_header .sec_inner .hamburger-menu {
  display: block;
  margin-right: 0;
  order: 2;
  background-color: #87b2e0;
  padding:10px;
  height: 60px;
  width: 60px;
}

#site_header .sec_inner nav {
  position: fixed;
  width: 100vw;
  height: 100vh;
  background: #87b2e0;
  transition: all ease 0.3s;
  top:0;
  z-index:100;
  left:110%;
  font-family: "Noto Serif JP",serif;
}
#site_header .sec_inner nav.open {
  left:0;
}
#site_header .sec_inner .header_nav {
  display: block;
  padding: calc(100/750*100%) calc(40/750*100%) 0;

  justify-content: space-between;
  padding-bottom: min(calc(10/1200*100%),10px);
}
#site_header .sec_inner .header_nav li {
  margin-bottom: 5%;
}
#site_header .sec_inner .header_nav li:not(:last-of-type) {
  border-bottom: 1px solid #FFF;
  border-right: none;
}
#site_header .sec_inner  .header_nav a{
  color: #FFF;
  display: inline-block;
  text-decoration: none;
  font-size: min(calc(40/750*100vw),40px);
  white-space: nowrap;
  font-weight: 200;
  padding-bottom: 0.8em;
}

#site_header .sec_inner .nav-wrap {

}

#site_header .sec_inner .header_lang {

}

#site_header .sec_inner .header_lang li {
  width: 60px;
  height: 30px;
  text-align: center;
  padding: 0;
  display: flex;
  align-items: center ;
  justify-content: center;
  font-size: 14px;
}



/* ハンバーガーメニューの基本スタイル */
#site_header .hamburger-menu {
  display: block;
  position: relative;
  width: 40px;
  height: 40px;
  background: transparent;
  border: none;
  cursor: pointer;
  outline: none;
  z-index: 10000;
  margin-left: 20%;
}

#site_header .hamburger-menu span,
#site_header .hamburger-menu span::before,
#site_header .hamburger-menu span::after {
  display: block;
  position: absolute;
  height: 1px; /* 線の高さ */
  width: 60%; /* 線の幅 */
  background-color: #FFF; /* 線の色 */
  transition: all 0.3s ease-in-out;
  opacity: 1;
}
#site_header .hamburger-menu span::after {
  width: 40%;
}

#site_header .hamburger-menu span::before,
#site_header .hamburger-menu span::after {
  content: '';
  width: 100%;
}
#site_header .hamburger-menu span::after {
  width: 60%;
}
#site_header .hamburger-menu span::before {
  top: -10px;
}

#site_header .hamburger-menu span::after {
  top: 10px;
}

/* アクティブ時のクロス表示 */
#site_header .hamburger-menu.active span {
  background: transparent;
}

#site_header .hamburger-menu.active span::before,
#site_header .hamburger-menu.active span::after {
  top: 0; /* トップの位置を中心に揃える */
  transform-origin: 50%; /* 回転の中心を中央に設定 */
  background-color: #FFF;
}

#site_header .hamburger-menu.active span::before {
  transform: rotate(30deg);
}

#site_header .hamburger-menu.active span::after {
  transform: rotate(-30deg);
  width: 100%;
}


/*============================
#site_common
============================*/

main .cont_head {
  font-size: min(calc(100/750*100vw),100px);
  letter-spacing: min(calc(30/750*100vw),30px);
}
#fixed_area .reservation_linkBlock {
  margin-top: min(calc(50/750*100%),50px);
}
#fixed_area .reservation_linkBlock ul {
  display: flex;
  flex-wrap: wrap;
}
#fixed_area .reservation_linkBlock li {
  width: 50%;
  padding:0;
  display: flex;
}
#fixed_area .reservation_linkBlock li a{
  display: block;
  color: #FFF;
  font-size: min(calc(18/750*100vw),18px);
  letter-spacing: min(calc(3/750*100vw),3px);
  font-weight: 200;
  position: relative;
  text-align: left;
}
#fixed_area .reservation_linkBlock li p {
  width: 100%;
  text-align: left;
  display: block;
  padding-left: 15%;
}

#fixed_area .reservation_linkBlock li p:after {
  content:"";
  display: block;
  width: calc(58/375*100%);
  padding-top: calc(7/375*100%);
  background-image: url(/assets/img/common/reserve_icon.png);
  background-size: contain;
  background-repeat: no-repeat;
  transition: all ease 0.2s;
  position: absolute;
  right:16%;
  top:65%;
}
#fixed_area .reservation_linkBlock li p:hover:after {
  right:7%;
}
#fixed_area .reservation_linkBlock li p span {
  font-size: min(calc(24/750*100vw),24px);
  font-weight: 200;
  letter-spacing: 3px;
}
#fixed_area .reservation_linkBlock li a {

}
#fixed_area .reservation_linkBlock li a p {

}
#fixed_area .reservation_linkBlock li:nth-of-type(1) {
  background-color: #87b2e0;
  justify-content: center;
}
#fixed_area .reservation_linkBlock li:nth-of-type(1) a {
  justify-content: center;
}
#fixed_area .reservation_linkBlock li:nth-of-type(2) {
  background-color: #06c755;
  justify-content: center;
}
  
/*============================
#site_footer
============================*/
#site_footer {
  padding: 15px 0;
}
#site_footer .footer_inner {
  width: 100%;
  margin: 0 auto;
  padding:0;
  display: flex;
  justify-content: space-between;
}
#site_footer .footer_main {
}

#site_footer .footer_sns {
  margin: 0 0 15px;
  padding-left: calc(40/750*100%);
}
#site_footer .footer_sns ul li {
  width: 30px;
}
#site_footer .copy_wrap {
  padding: 15px calc(40/750*100%) 0;
}
#site_footer .copy {
  font-size:  min(calc(22/786*100vw),22px);
  text-align: left;
  line-height: 166%;
  margin-top: min(calc(100/786*100vw),100px);
}


}  


/* ---------------------------------------------
 アニメーション
--------------------------------------------- */
/* アニメーション共通 */
.io {
  transition: all 1s ease;
}

.io_slideShow {
  overflow: hidden;
  -webkit-clip-path: inset(0 0 100% 0);
  clip-path: inset(0 0 100% 0);
}
.io_slideShow.is_active {
  -webkit-animation: slideShow .8s ease-in-out forwards;
  animation: slideShow .8s ease-in-out forwards;
}

@-webkit-keyframes slideShow {
  0% {
    -webkit-clip-path: inset(0 0 100% 0);
    clip-path: inset(0 0 100% 0);
  }
  100% {
    -webkit-clip-path: inset(0);
    clip-path: inset(0);
  }
}

@keyframes slideShow {
  0% {
    -webkit-clip-path: inset(0 0 100% 0);
    clip-path: inset(0 0 100% 0);
  }
  100% {
    -webkit-clip-path: inset(0);
    clip-path: inset(0);
  }
}
.io_slideShow_ver {
  overflow: hidden;
  -webkit-clip-path:  inset(0 0 100% 0);
  clip-path:  inset(0 0 100% 0);
}
.io_slideShow_ver.is_active {
  -webkit-animation: slideShow_ver .8s ease-in-out forwards;
  animation: slideShow_ver .8s ease-in-out forwards;
}

@-webkit-keyframes slideShow_ver {
  0% {
    /* 上端を100%クリップして画面外（非表示）にする */
    -webkit-clip-path: inset(0 0 100% 0);
    clip-path: inset(0 0 100% 0);
  }
  100% {
    /* 全方向のクリップを解除して完全表示 */
    -webkit-clip-path: inset(0 0 0 0);
    clip-path: inset(0 0 0 0);
  }
}

.io_slideShow_ver_down {
  overflow: hidden;
  -webkit-clip-path:  inset(0 0 100% 0);
  clip-path:  inset(0 0 100% 0);
}
.io_slideShow_ver_down.is_active {
  -webkit-animation: slideShow_ver_down .8s ease-in-out forwards;
  animation: slideShow_ver_down .8s ease-in-out forwards;
}

@-webkit-keyframes slideShow_ver_down {
  0% {
    /* 上端を100%クリップして画面外（非表示）にする */
    -webkit-clip-path: inset(0 0 100% 0);
    clip-path: inset(0 0 100% 0);
  }
  100% {
    /* 全方向のクリップを解除して完全表示 */
    -webkit-clip-path: inset(0 0 0 0);
    clip-path: inset(0 0 0 0);
  }
}



/* fade-in
-------------------- */
.io_fadeUp {
  opacity: 0;
  transition-delay: .5s !important;
}

.io_fadeUp.is_active {
  opacity: 1;
}


/* fade-up
-------------------- */
.io_fadeUp {
  opacity: 0;
  -webkit-transform: translateY(20px);
  transform: translateY(20px);
}

.io_fadeUp.is_active {
  opacity: 1;
  -webkit-transform: translateY(0);
  transform: translateY(0);
}
/* fade-down
-------------------- */
.io_fadeDown {
  opacity: 0;
  -webkit-transform: translateY(-20px);
  transform: translateY(-20px);
}

.io_fadeDown.is_active {
  opacity: 1;
  -webkit-transform: translateY(0);
  transform: translateY(0);
}




/* -----------------------------------------
  ディレイ
----------------------------------------- */
.anime-delay-100 {
  -webkit-animation-delay: 0.1s !important;
          animation-delay: 0.1s !important;
  transition-delay: 0.1s !important;
}

.anime-delay-200 {
  -webkit-animation-delay: 0.2s !important;
          animation-delay: 0.2s !important;
  transition-delay: 0.2s !important;
}

.anime-delay-300 {
  -webkit-animation-delay: 0.3s !important;
          animation-delay: 0.3s !important;
  transition-delay: 0.3s !important;
}

.anime-delay-400 {
  -webkit-animation-delay: 0.4s !important;
          animation-delay: 0.4s !important;
  transition-delay: 0.4s !important;
}

.anime-delay-500 {
  -webkit-animation-delay: 0.5s !important;
          animation-delay: 0.5s !important;
  transition-delay: 0.5s !important;
}

.anime-delay-600 {
  -webkit-animation-delay: 0.6s !important;
          animation-delay: 0.6s !important;
  transition-delay: 0.6s !important;
}

.anime-delay-700 {
  -webkit-animation-delay: 0.7s !important;
          animation-delay: 0.7s !important;
  transition-delay: 0.7s !important;
}

.anime-delay-800 {
  -webkit-animation-delay: 0.8s !important;
          animation-delay: 0.8s !important;
  transition-delay: 0.8s !important;
}

.anime-delay-900 {
  -webkit-animation-delay: 0.9s !important;
          animation-delay: 0.9s !important;
  transition-delay: 0.9s !important;
}

.anime-delay-1000 {
  -webkit-animation-delay: 1s !important;
          animation-delay: 1s !important;
  transition-delay: 1s !important;
}


.anime-delay-1100 {
  -webkit-animation-delay: 1.1s !important;
          animation-delay: 1.1s !important;
  transition-delay: 1.1s !important;
}

.anime-delay-1200 {
  -webkit-animation-delay: 1.2s !important;
          animation-delay: 1.2s !important;
  transition-delay: 1.2s !important;
}

.anime-delay-1300 {
  -webkit-animation-delay: 1.3s !important;
          animation-delay: 1.3s !important;
  transition-delay: 1.3s !important;
}

.anime-delay-1400 {
  -webkit-animation-delay: 1.4s !important;
          animation-delay: 1.4s !important;
  transition-delay: 1.4s !important;
}

.anime-delay-1500 {
  -webkit-animation-delay: 1.5s !important;
          animation-delay: 1.5s !important;
  transition-delay: 1.5s !important;
}

.anime-delay-1600 {
  -webkit-animation-delay: 1.6s !important;
          animation-delay: 1.6s !important;
  transition-delay: 1.6s !important;
}

.anime-delay-1700 {
  -webkit-animation-delay: 1.7s !important;
          animation-delay: 1.7s !important;
  transition-delay: 1.7s !important;
}

.anime-delay-1800 {
  -webkit-animation-delay: 1.8s !important;
          animation-delay: 1.8s !important;
  transition-delay: 1.8s !important;
}

.anime-delay-1900 {
  -webkit-animation-delay: 1.9s !important;
          animation-delay: 1.9s !important;
  transition-delay: 1.9s !important;
}

.anime-delay-2000 {
  -webkit-animation-delay: 2s !important;
          animation-delay: 2s !important;
  transition-delay: 2s !important;
}
.anime-delay-2100 {
  -webkit-animation-delay: 2.1s !important;
          animation-delay: 2.1s !important;
  transition-delay: 2.1s !important;
}
.anime-delay-2200 {
  -webkit-animation-delay: 2.2s !important;
          animation-delay: 2.2s !important;
  transition-delay: 2.2s !important;
}
