@charset "UTF-8";
/* Scss Document */
.common_color {
  color: #992422;
}

/*colors*/
@media screen and (min-width: 769px) {
  .for_pc {
    display: block;
  }
}
@media screen and (max-width: 768px) {
  .for_pc {
    display: none;
  }
}

@media screen and (min-width: 769px) {
  .for_sp {
    display: none;
  }
}
@media screen and (max-width: 768px) {
  .for_sp {
    display: block;
  }
}

@media screen and (min-width: 500px) {
  .for_ss {
    display: none;
  }
}
@media screen and (max-width: 499px) {
  .for_ss {
    display: block;
  }
}

/*テキスト*/
/*余白*/
.com-mt-01 {
  margin-top: 10.5rem;
}

.com-mt-02 {
  margin-top: 5.25rem;
}

.mt0 {
  margin-top: 0px !important;
}

.mr0 {
  margin-right: 0px !important;
}

.mb0 {
  margin-bottom: 0px !important;
}

.ml0 {
  margin-left: 0px !important;
}

.pt0 {
  padding-top: 0px !important;
}

.pr0 {
  padding-right: 0px !important;
}

.pb0 {
  padding-bottom: 0px !important;
}

.pl0 {
  padding-left: 0px !important;
}

.mt5 {
  margin-top: 5px !important;
}

.mr5 {
  margin-right: 5px !important;
}

.mb5 {
  margin-bottom: 5px !important;
}

.ml5 {
  margin-left: 5px !important;
}

.pt5 {
  padding-top: 5px !important;
}

.pr5 {
  padding-right: 5px !important;
}

.pb5 {
  padding-bottom: 5px !important;
}

.pl5 {
  padding-left: 5px !important;
}

.mt10 {
  margin-top: 10px !important;
}

.mr10 {
  margin-right: 10px !important;
}

.mb10 {
  margin-bottom: 10px !important;
}

.ml10 {
  margin-left: 10px !important;
}

.pt10 {
  padding-top: 10px !important;
}

.pr10 {
  padding-right: 10px !important;
}

.pb10 {
  padding-bottom: 10px !important;
}

.pl10 {
  padding-left: 10px !important;
}

.mt15 {
  margin-top: 15px !important;
}

.mr15 {
  margin-right: 15px !important;
}

.mb15 {
  margin-bottom: 15px !important;
}

.ml15 {
  margin-left: 15px !important;
}

.pt15 {
  padding-top: 15px !important;
}

.pr15 {
  padding-right: 15px !important;
}

.pb15 {
  padding-bottom: 15px !important;
}

.pl15 {
  padding-left: 15px !important;
}

.mt20 {
  margin-top: 20px !important;
}

.mr20 {
  margin-right: 20px !important;
}

.mb20 {
  margin-bottom: 20px !important;
}

.ml20 {
  margin-left: 20px !important;
}

.pt20 {
  padding-top: 20px !important;
}

.pr20 {
  padding-right: 20px !important;
}

.pb20 {
  padding-bottom: 20px !important;
}

.pl20 {
  padding-left: 20px !important;
}

.mt25 {
  margin-top: 25px !important;
}

.mr25 {
  margin-right: 25px !important;
}

.mb25 {
  margin-bottom: 25px !important;
}

.ml25 {
  margin-left: 25px !important;
}

.pt25 {
  padding-top: 25px !important;
}

.pr25 {
  padding-right: 25px !important;
}

.pb25 {
  padding-bottom: 25px !important;
}

.pl25 {
  padding-left: 25px !important;
}

.mt30 {
  margin-top: 30px !important;
}

.mr30 {
  margin-right: 30px !important;
}

.mb30 {
  margin-bottom: 30px !important;
}

.ml30 {
  margin-left: 30px !important;
}

.pt30 {
  padding-top: 30px !important;
}

.pr30 {
  padding-right: 30px !important;
}

.pb30 {
  padding-bottom: 30px !important;
}

.pl30 {
  padding-left: 30px !important;
}

.mt35 {
  margin-top: 35px !important;
}

.mr35 {
  margin-right: 35px !important;
}

.mb35 {
  margin-bottom: 35px !important;
}

.ml35 {
  margin-left: 35px !important;
}

.pt35 {
  padding-top: 35px !important;
}

.pr35 {
  padding-right: 35px !important;
}

.pb35 {
  padding-bottom: 35px !important;
}

.pl35 {
  padding-left: 35px !important;
}

.mt40 {
  margin-top: 40px !important;
}

.mr40 {
  margin-right: 40px !important;
}

.mb40 {
  margin-bottom: 40px !important;
}

.ml40 {
  margin-left: 40px !important;
}

.pt40 {
  padding-top: 40px !important;
}

.pr40 {
  padding-right: 40px !important;
}

.pb40 {
  padding-bottom: 40px !important;
}

.pl40 {
  padding-left: 40px !important;
}

.mt45 {
  margin-top: 45px !important;
}

.mr45 {
  margin-right: 45px !important;
}

.mb45 {
  margin-bottom: 45px !important;
}

.ml45 {
  margin-left: 45px !important;
}

.pt45 {
  padding-top: 45px !important;
}

.pr45 {
  padding-right: 45px !important;
}

.pb45 {
  padding-bottom: 45px !important;
}

.pl45 {
  padding-left: 45px !important;
}

.mt50 {
  margin-top: 50px !important;
}

.mr50 {
  margin-right: 50px !important;
}

.mb50 {
  margin-bottom: 50px !important;
}

.ml50 {
  margin-left: 50px !important;
}

.pt50 {
  padding-top: 50px !important;
}

.pr50 {
  padding-right: 50px !important;
}

.pb50 {
  padding-bottom: 50px !important;
}

.pl50 {
  padding-left: 50px !important;
}

/*フッダー*/
.opacity {
  opacity: 1;
}

html:not(.en):not(.ct):not(.cs):not(.ko) #sp_menu > nav > div {
  width: 33.333333%;
  height: 100%;
}

/*ヘッダー*/
/*ヘッダー*/
#header .con_logo .logo .regular {
  display: block;
  opacity: 1;
}
@media only screen and (max-width: 767px) {
  #header .con_logo .logo {
    padding: 0.4em 40vw 0.4em 4% !important;
  }
}
#header .premier {
  opacity: 1;
}

#original-contents {
  overflow: clip;
}

/*メインビジュアル*/
#main_visual {
  text-align: center;
  position: relative;
  margin-top: 42px;
}
@media (max-width: 1687px) {
  #main_visual {
    margin-top: 49px;
  }
}
@media (max-width: 1431px) {
  #main_visual {
    margin-top: 48px;
  }
}
@media (max-width: 1281px) {
  #main_visual {
    margin-top: 25px;
  }
}
@media (max-width: 1024px) {
  #main_visual {
    margin-top: 36px;
  }
}
@media (max-width: 767px) {
  #main_visual {
    margin-top: 0%;
    padding-left: 4%;
  }
}
#main_visual .wrapper {
  width: 90%;
  max-width: 1200px;
  margin: auto;
}
#main_visual .image {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
@media screen and (max-width: 1024px) {
  #main_visual .image {
    flex-direction: column-reverse;
    padding-left: 0;
  }
}
#main_visual .image video {
  max-width: 100%;
}
#main_visual .image .image-mv {
  position: relative;
  width: 100%;
  height: auto;
  margin-left: auto;
  overflow: hidden;
}
@media screen and (max-width: 1024px) {
  #main_visual .image .image-mv {
    width: 100%;
  }
}
@media screen and (max-width: 767px) {
  #main_visual .image .image-mv {
    margin-left: 0;
  }
}
#main_visual .image .image-mv img {
  width: 100%;
  height: auto;
}
#main_visual .image {
  /* 色戻る */
}
@keyframes mvColorReveal {
  from {
    filter: grayscale(100%) brightness(0.9);
  }
  to {
    filter: grayscale(0%) brightness(1);
  }
}
#main_visual .image {
  /* 永続ズーム */
}
@keyframes kenBurns {
  0% {
    transform: scale(1) translate(0, 0);
  }
  100% {
    transform: scale(1.12) translate(-1.5%, -1%);
  }
}
#main_visual .image .common-heading {
  opacity: 0;
  animation: headingFade 1.2s ease forwards;
  animation-delay: 2s;
  z-index: 2;
  font-size: 128px;
  font-weight: bold;
  line-height: 1;
  text-align: justify;
  display: flex;
  flex-direction: column;
  position: absolute;
  top: 60px;
  font-family: "Noto Sans JP", "メイリオ", Meiryo, sans-serif;
  background: linear-gradient(180deg, #f4dfa7 0%, #d7b46b 28%, #b98c43 58%, #7b5724 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  filter: drop-shadow(0 6px 16px rgba(0, 0, 0, 0.1));
  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.1), 0 2px 8px rgba(0, 0, 0, 0.08);
  -webkit-text-stroke: 0.4px rgba(70, 45, 10, 0.06);
}
@media screen and (max-width: 1024px) {
  #main_visual .image .common-heading {
    position: static;
    margin-right: auto;
    margin-top: -22%;
    font-size: 19vw;
    padding-left: 5%;
    padding-right: 5%;
  }
}
@keyframes headingFade {
  from {
    opacity: 0;
    filter: blur(6px);
  }
  to {
    opacity: 1;
    filter: blur(0);
  }
}
#main_visual .image .common-heading-sub {
  font-size: 32px;
  line-height: 1.6;
  color: #000;
  background-color: #bda366;
  padding: 0rem 1rem 0.5rem 1rem;
  width: 31%;
}
@media screen and (max-width: 1024px) {
  #main_visual .image .common-heading-sub {
    font-size: 6vw;
    width: 41vw;
  }
}
#main_visual .image .common-heading-sub-week {
  font-size: 28px;
}
@media screen and (max-width: 1024px) {
  #main_visual .image .common-heading-sub-week {
    font-size: 4.5vw;
  }
}
#main_visual .tit {
  margin-top: -40px;
  position: relative;
  z-index: 1;
}
#main_visual .date {
  margin-top: 10px;
}
@media (max-width: 768px) {
  #main_visual .date img {
    height: 9.1145833333vw;
  }
}

@media screen and (max-width: 768px) {
  #main_visual .image-mv img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
  }
}
.common-heading-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 1rem 0rem;
  font-size: 24px;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: #fff;
  width: 40%;
  margin-bottom: 30px;
  background: linear-gradient(135deg, #c58b52 0%, #b45f7d 45%, #7b5aa6 100%);
  box-shadow: 0 10px 25px rgba(220, 39, 67, 0.22);
  position: relative;
  overflow: hidden;
}

.common-circles {
  display: flex;
  gap: 24px;
  position: relative;
  z-index: 2;
}
@media screen and (max-width: 1024px) {
  .common-circles {
    gap: 2%;
    flex-wrap: wrap;
    justify-content: center;
  }
}

.common-circle {
  opacity: 0;
  transform: translateY(20px) scale(0.92);
  animation: circleFade 1s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

.common-circle:nth-child(1) {
  animation-delay: 3s;
}

.common-circle:nth-child(2) {
  animation-delay: 3.25s;
}

.common-circle:nth-child(3) {
  animation-delay: 3.5s;
}

@keyframes circleFade {
  from {
    opacity: 0;
    transform: translateY(20px) scale(0.92);
    filter: blur(4px);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
    filter: blur(0);
  }
}
.common-circle {
  width: 217px;
}
@media screen and (max-width: 1024px) {
  .common-circle {
    width: 48%;
  }
}

/*ヘッダーロゴ*/
.gnav_pc-tab.group_header .con_logo {
  padding: 1.5em 0;
}
.gnav_pc-tab.group_header .con_logo .box_tit .inner_tit .tit img {
  width: 50vw;
  max-width: 291px;
  min-width: 180px;
}

/*パンくずリスト*/
#pankuzu {
  margin-top: 3rem;
}
#pankuzu a {
  display: inline-block;
}
#pankuzu a:hover {
  text-decoration: underline;
}
#pankuzu a:after {
  content: ">";
  display: inline-block;
  margin-left: 0.5em;
  margin-right: 0.5em;
}

/*固定バナー*/
#banner_pc {
  position: fixed;
  right: 20px;
  bottom: 20px;
  z-index: 1;
  animation: banner_pc_move 1s ease-out infinite alternate;
}

@keyframes banner_pc_move {
  from {
    transform: translateY(0);
  }
  to {
    transform: translateY(-20px);
  }
}
/*ページメニュー*/
.page-menu {
  background-color: #f2f3f3;
  padding: 2rem 4rem;
}
@media screen and (max-width: 414px) {
  .page-menu {
    padding: 2rem 2rem;
  }
}
.page-menu .tit {
  font-weight: bold;
  font-size: 24px;
  margin-bottom: 1em;
}
@media screen and (max-width: 768px) {
  .page-menu .tit {
    font-size: 3.5vw;
  }
}
@media screen and (max-width: 414px) {
  .page-menu .tit {
    font-size: 18px;
  }
}
.page-menu .page-menu-list li {
  position: relative;
  padding-left: 1em;
}
.page-menu .page-menu-list li + li {
  margin-top: 1em;
}
.page-menu .page-menu-list li:before {
  content: "";
  display: block;
  width: 5px;
  height: 5px;
  background-color: #000;
  border-radius: 50%;
  position: absolute;
  top: 0.7em;
  left: 0;
}
.page-menu .page-menu-list li a:hover {
  text-decoration: underline;
}
.page-menu .page-menu-list__sub {
  margin-top: 1em;
}
.page-menu .page-menu-list__sub li {
  font-size: 0.9em;
}
.page-menu .page-menu-list__sub li:before {
  width: 3px;
  height: 3px;
}

/*見出し*/
header.large {
  text-align: center;
  /* margin-bottom: 50px; */
  display: flex;
  justify-content: center;
}
header.large span {
  display: block;
}
header.large .jp {
  font-size: clamp(1.7rem, 0.811rem + 1.66vw, 3.2rem);
  font-weight: bold;
  position: relative;
}
header.large .jp::before {
  content: "";
  position: absolute;
  top: -1rem;
  left: 0;
  width: 1.8rem;
  height: 2px;
  background-color: #bda366;
  transform: rotate(-45deg);
}
header.large .en {
  font-size: 20px;
  color: #bda366;
}
@media screen and (max-width: 768px) {
  header.large .en {
    font-size: 3vw;
  }
}
@media screen and (max-width: 414px) {
  header.large .en {
    font-size: 15px;
  }
}
header.large + [class^=comp_con_bw] {
  margin-top: 0;
}

header.largest {
  text-align: left;
  margin-bottom: 50px;
  border-bottom: solid 3px #000;
  position: relative;
  padding-bottom: 1em;
}
@media screen and (max-width: 768px) {
  header.largest {
    margin-bottom: 6.5104166667vw;
  }
}
header.largest:after {
  position: absolute;
  content: "";
  display: block;
  border-bottom: solid 3px #bda366;
  bottom: -3px;
  width: 20%;
}
header.largest h1 {
  font-size: 38px;
  font-weight: bold;
  line-height: 1.4;
}
header.largest h1::before {
  display: block;
  width: 0;
  height: 0;
  margin-top: calc((1 - 1.4) * 0.5em);
  content: "";
}
header.largest h1::after {
  display: block;
  width: 0;
  height: 0;
  margin-bottom: calc((1 - 1.4) * 0.5em);
  content: "";
}
@media screen and (max-width: 768px) {
  header.largest h1 {
    font-size: 4.5vw;
  }
}
@media screen and (max-width: 414px) {
  header.largest h1 {
    font-size: 22px;
  }
}
header.largest + [class^=comp_con_bw] {
  margin-top: 0;
}

.comp_st {
  margin-bottom: 1em;
}

/*section*/
section [class^=comp_con_bw]:first-child {
  margin-top: 0;
}

[class^=comp_con_bw] > [class^=comp_con_bw] {
  width: 100%;
}

/*lead*/
.icon_text.comp_con_bw_m {
  margin-top: 145px;
}
@media screen and (max-width: 768px) {
  .icon_text.comp_con_bw_m {
    margin-top: 18.8802083333vw;
  }
}
.icon_text .icon_img {
  text-align: center;
  margin-bottom: 35px;
}
.icon_text h2 span {
  display: block;
  text-align: center;
}
.icon_text h2 span.jp {
  font-size: 32px;
  font-weight: bold;
  line-height: 1.4;
  margin-bottom: 5px;
}
@media screen and (max-width: 768px) {
  .icon_text h2 span.jp {
    font-size: 4.5vw;
  }
}
@media screen and (max-width: 414px) {
  .icon_text h2 span.jp {
    font-size: 24px;
  }
}
.icon_text h2 span.en {
  color: #bda366;
}

/*特徴*/
/* =========================
特徴カード
========================= */
.hotel-list {
  display: flex;
  flex-wrap: wrap;
  gap: 32px 16px;
  align-items: stretch;
  margin-top: 50px;
}
@media screen and (max-width: 768px) {
  .hotel-list {
    margin-top: 30px;
    gap: 32px 12px;
  }
}

.hotel-list > li {
  width: calc(33.333% - 16px);
  background: #fff;
  overflow: hidden;
  position: relative;
  border: 1px solid rgba(0, 0, 0, 0.06);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.04), 0 2px 10px rgba(0, 0, 0, 0.03);
  display: flex;
  flex-direction: column;
  opacity: 0;
  transform: translateY(50px) scale(0.96);
  filter: blur(8px);
  transition: opacity 1s cubic-bezier(0.22, 1, 0.36, 1), transform 1s cubic-bezier(0.22, 1, 0.36, 1), filter 1s cubic-bezier(0.22, 1, 0.36, 1);
}

.hotel-list > li:nth-child(2) {
  transition-delay: 0.08s;
}

.hotel-list > li:nth-child(3) {
  transition-delay: 0.16s;
}

.hotel-list > li.is-show {
  opacity: 1;
  transform: translateY(0) scale(1);
  filter: blur(0);
}

@media screen and (max-width: 769px) {
  .hotel-list > li {
    width: calc(50% - 8px);
  }
}
@media screen and (max-width: 499px) {
  .hotel-list > li {
    width: 100%;
  }
}
/* 画像 */
.hotel-list > li figure {
  overflow: hidden;
  aspect-ratio: 4/3;
  flex-shrink: 0;
}

.hotel-list > li figure img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* テキスト */
.hotel-list > li .text {
  padding: 34px 24px 24px;
  display: flex;
  flex-direction: column;
  flex: 1;
}

/* タイトル */
.hotel-list > li .text .tit {
  font-size: clamp(1.4rem, 1.163rem + 0.49vw, 2rem);
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: 0.04em;
  color: #111;
  position: relative;
}
.hotel-list > li .text .tit::before {
  content: "";
  position: absolute;
  top: -1rem;
  left: 0;
  width: 1.8rem;
  height: 2px;
  background-color: #bda366;
  transform: rotate(-45deg);
}

/* 説明文 */
.hotel-list > li .text p {
  font-size: clamp(1.2rem, 0.9rem + 0.6vw, 1.6rem);
  line-height: 2;
  color: #000;
  margin-top: 12px;
}

.sec03_headig {
  font-size: 32px;
  font-weight: bold;
  text-align: center;
  margin-bottom: 80px;
}

.reservation_conditions {
  margin: 100px 0 0 0;
}

.features {
  margin-top: 80px !important;
  margin-bottom: 80px !important;
}
@media screen and (max-width: 499px) {
  .features {
    margin-top: 50px !important;
    margin-bottom: 0px !important;
  }
}

.instagram {
  margin-top: 100px !important;
}
@media screen and (max-width: 499px) {
  .instagram {
    margin-top: 50px !important;
  }
}

.insta_inner {
  display: flex;
  flex-direction: row-reverse;
  align-items: flex-start;
  gap: 80px;
}
@media screen and (max-width: 768px) {
  .insta_inner {
    flex-direction: column-reverse;
  }
}

.instagram_text {
  width: 50%;
}
@media screen and (max-width: 768px) {
  .instagram_text {
    width: 100%;
  }
}

.instagram_main-heading {
  display: flex;
  justify-content: center;
}

.instagram_text-heading {
  font-size: clamp(1.6rem, 0.752rem + 1.77vw, 3.2rem);
  font-weight: bold;
  position: relative;
  margin: 0;
  color: #bda366;
  margin-bottom: 20px;
}

.instagram_text,
.instagram_image {
  opacity: 0;
  transform: translateY(40px);
  filter: blur(8px);
  transition: opacity 1s cubic-bezier(0.22, 1, 0.36, 1), transform 1s cubic-bezier(0.22, 1, 0.36, 1), filter 1s cubic-bezier(0.22, 1, 0.36, 1);
}

.instagram_text.is-show,
.instagram_image.is-show {
  opacity: 1;
  transform: translateY(0);
  filter: blur(0);
}

.insta_jp {
  position: relative;
}
.insta_jp::before {
  content: "";
  position: absolute;
  top: -1rem;
  left: 0;
  width: 1.8rem;
  height: 2px;
  background-color: #bda366;
  transform: rotate(-45deg);
}

.instagram_image {
  position: relative;
  width: 50%;
  overflow: visible;
}
@media screen and (max-width: 768px) {
  .instagram_image {
    width: 100%;
  }
}
.instagram_image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
@media screen and (max-width: 768px) {
  .instagram_image img {
    height: auto;
  }
}

.head_bg {
  margin: 0; /* デフォルトCSS打ち消し */
  color: #bda366; /* 文字色指定 */
  margin-bottom: 20px; /* 周りの余白指定 */
}

.head_bg:before {
  content: "";
  position: absolute;
  top: -1rem;
  left: 0;
  width: 1.8rem;
  height: 2px;
  background-color: #bda366;
  transform: rotate(-45deg);
}

.campaign_group {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
@media screen and (max-width: 1024px) {
  .campaign_group {
    flex-direction: column;
  }
}

.campaign_inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
  width: 77%;
  margin: 0 auto;
}
@media screen and (max-width: 1024px) {
  .campaign_inner {
    width: 100%;
    flex-direction: column;
  }
}

.campaign_number {
  width: 100%;
  padding: 10px 0 10px 0px;
  border: solid #bda366 1px;
  color: #fff;
  font-weight: bold;
  font-size: 18px;
}
@media screen and (max-width: 1024px) {
  .campaign_number {
    font-size: 3.5vw;
  }
}

.campaign_code {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 26px;
  letter-spacing: 0.2rem;
}
@media screen and (max-width: 1024px) {
  .campaign_code {
    gap: 10px;
    letter-spacing: 0.2rem;
    flex-direction: column;
  }
}

.campaign_code-txt {
  font-size: 18px;
  color: #000;
}
@media screen and (max-width: 1024px) {
  .campaign_code-txt {
    font-size: 20px;
  }
}

.campaign_code-en {
  margin-top: 0;
  border: solid #bda366 1px;
  padding: 1rem 3rem 1rem 3rem;
  color: #000;
  font-size: 18px;
}
@media screen and (max-width: 1024px) {
  .campaign_code-en {
    font-size: 20px;
  }
}

.click_area {
  cursor: pointer;
  padding: 20px 0px 20px 0px;
  border: 1px solid #bda366;
  background-color: #fff;
  transition: 0.4s;
  display: inline-block;
  color: #000;
  font-weight: bold;
  text-align: center;
  width: 30%;
  font-size: 16px;
}
@media screen and (max-width: 1024px) {
  .click_area {
    width: 100%;
    font-size: 20px;
  }
}
.click_area:hover {
  background-color: #bda366;
  color: #fff;
}

.reservation_btn {
  margin-top: 50px !important;
  padding-bottom: 15px;
  width: 100%;
}
@media screen and (max-width: 1024px) {
  .reservation_btn {
    width: 100%;
  }
}
.reservation_btn__mv {
  width: 70%;
}
@media screen and (max-width: 1024px) {
  .reservation_btn__mv {
    width: 95%;
    margin: 0 auto;
  }
}

.pulse-btn {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 80%;
  padding: 22px 40px;
  background: linear-gradient(135deg, #e3d3a8 0%, #bda366 40%, #8c7441 100%);
  border-radius: 100px;
  color: #fff;
  font-size: 18px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-decoration: none;
  box-shadow: 0 10px 30px rgba(143, 119, 69, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.2);
  overflow: visible;
  cursor: pointer;
  transform: translateY(0);
  transition: transform 0.25s ease, box-shadow 0.25s ease, filter 0.25s ease;
  /* text-align: center; */
  margin: 0 auto;
}
.pulse-btn__mv {
  margin: 0;
}
@media screen and (max-width: 1024px) {
  .pulse-btn__mv {
    width: 100%;
  }
}

/* 文字 */
.pulse-btn span {
  position: relative;
  z-index: 2;
}

/* 波紋 */
.pulse-btn::before,
.pulse-btn::after {
  content: "";
  position: absolute;
  inset: -6px;
  border: 2px solid rgba(189, 163, 102, 0.5);
  border-radius: 100px;
  opacity: 0;
  animation: ripple 2.6s infinite;
}

/* 波紋ずらし */
.pulse-btn::after {
  animation-delay: 1.3s;
}

/* 光 */
.pulse-btn::marker {
  display: none;
}

.pulse-btn::selection {
  background: transparent;
}

/* キラッ */
.pulse-btn span::before {
  content: "";
  position: absolute;
  top: 50%;
  left: -80px;
  width: 40px;
  height: 220%;
  background: rgba(255, 255, 255, 0.45);
  transform: translateY(-50%) rotate(25deg);
  filter: blur(4px);
  animation: shine 3s infinite;
}

/* hover */
.pulse-btn:hover {
  transform: translateY(-4px);
  box-shadow: 0 10px 30px rgba(143, 119, 69, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.2);
  filter: brightness(1.05);
}

/* 押した感 */
.pulse-btn:active {
  transform: translateY(1px) scale(0.98);
}

/* 波紋 */
@keyframes ripple {
  0% {
    transform: scale(1);
    opacity: 0.7;
  }
  70% {
    opacity: 0.15;
  }
  100% {
    transform: scale(1.08);
    opacity: 0;
  }
}
/* 光移動 */
@keyframes shine {
  0% {
    left: -80px;
    opacity: 0;
  }
  10% {
    opacity: 1;
  }
  40% {
    left: 140%;
    opacity: 0;
  }
  100% {
    left: 140%;
    opacity: 0;
  }
}
.reservation_coupon {
  padding-bottom: 40px;
}
@media screen and (max-width: 768px) {
  .reservation_coupon {
    padding-bottom: 20px;
  }
}

.text {
  font-size: clamp(1.2rem, 0.9rem + 0.6vw, 1.6rem);
}

.campaign_text {
  width: 77%;
  margin: 0 auto;
  padding-top: 15px;
}
@media screen and (max-width: 1024px) {
  .campaign_text {
    width: 100%;
    font-size: clamp(1.2rem, 0.9rem + 0.6vw, 1.6rem);
  }
}

.campaign_text.campaign_text02 {
  width: 77%;
  margin: 0 auto;
  padding-top: 15px;
  padding-bottom: 40px;
}
@media screen and (max-width: 1024px) {
  .campaign_text.campaign_text02 {
    width: 100%;
    font-size: clamp(1.2rem, 0.9rem + 0.6vw, 1.6rem);
  }
}

/*フッター*/
#footer .con_footer_rsrv .inner .box_btn_plan {
  margin-top: 0;
  display: block;
}
#footer .con_footer_rsrv .inner .box_btn_plan li:nth-child(n+2) {
  margin-top: 2rem;
}

#footer .con_dacorp_footer {
  margin-top: 0;
  border-top: 0;
  background-color: #fff;
}

/*文字装飾*/
.chu {
  font-size: 90%;
  color: #bda366;
}

.center {
  text-align: center;
}

.mb0 {
  margin-bottom: 0 !important;
}

.mt0 {
  margin-top: 0 !important;
}

/* ヘッダー統一
-------------------------------------- */
#btn_pc_tab_menu {
  transition: opacity 1s ease-in-out, transform 1s ease-in-out;
  margin-left: auto;
  width: 240px;
}
@media (max-width: 1439px) {
  #btn_pc_tab_menu {
    width: 190px;
  }
}
@media (max-width: 1439px) {
  #btn_pc_tab_menu {
    width: 160px;
  }
}

#btn_pc_tab_menu.is-fix {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  opacity: 1;
  transform: translateY(0);
}

/* fix_gnav用 */
#fix_gnav.is-fix {
  position: fixed;
  top: 0;
  width: 100%;
  opacity: 1;
  transform: translateY(0);
  transition: opacity 0.2s ease-out, transform 0.2s ease-out;
}

#fix_gnav.is-hide {
  opacity: 0;
  transform: translateY(-100%);
}

/* マージン
------------------ */
.grid-tit-mt {
  margin-top: 15px;
}
@media screen and (min-width: 1025px) {
  .grid-tit-mt {
    margin-top: 65px;
    margin-top: clamp(15px, 1.5vw, 30px);
  }
}

.u-mt-small {
  margin-top: 30px;
}

.comp_con_bw_large {
  width: 90%;
  max-width: 1700px;
  margin: auto;
}

.comp_con_bw_small {
  width: 90%;
  max-width: 1120px;
  margin: auto;
}

/* Scss Document */
/*colors*/
@media screen and (min-width: 769px) {
  .for_pc {
    display: block;
  }
}
@media screen and (max-width: 768px) {
  .for_pc {
    display: none;
  }
}

@media screen and (min-width: 769px) {
  .for_sp {
    display: none;
  }
}
@media screen and (max-width: 768px) {
  .for_sp {
    display: block;
  }
}

@media screen and (min-width: 500px) {
  .for_ss {
    display: none;
  }
}
@media screen and (max-width: 499px) {
  .for_ss {
    display: block;
  }
}

/*テキスト*/
p + p {
  margin-top: 1em;
}

/*余白*/
.com-mt-01 {
  margin-top: 10.5rem;
}

.com-mt-02 {
  margin-top: 5.25rem;
}

.mt0 {
  margin-top: 0px !important;
}

.mr0 {
  margin-right: 0px !important;
}

.mb0 {
  margin-bottom: 0px !important;
}

.ml0 {
  margin-left: 0px !important;
}

.pt0 {
  padding-top: 0px !important;
}

.pr0 {
  padding-right: 0px !important;
}

.pb0 {
  padding-bottom: 0px !important;
}

.pl0 {
  padding-left: 0px !important;
}

.mt5 {
  margin-top: 5px !important;
}

.mr5 {
  margin-right: 5px !important;
}

.mb5 {
  margin-bottom: 5px !important;
}

.ml5 {
  margin-left: 5px !important;
}

.pt5 {
  padding-top: 5px !important;
}

.pr5 {
  padding-right: 5px !important;
}

.pb5 {
  padding-bottom: 5px !important;
}

.pl5 {
  padding-left: 5px !important;
}

.mt10 {
  margin-top: 10px !important;
}

.mr10 {
  margin-right: 10px !important;
}

.mb10 {
  margin-bottom: 10px !important;
}

.ml10 {
  margin-left: 10px !important;
}

.pt10 {
  padding-top: 10px !important;
}

.pr10 {
  padding-right: 10px !important;
}

.pb10 {
  padding-bottom: 10px !important;
}

.pl10 {
  padding-left: 10px !important;
}

.mt15 {
  margin-top: 15px !important;
}

.mr15 {
  margin-right: 15px !important;
}

.mb15 {
  margin-bottom: 15px !important;
}

.ml15 {
  margin-left: 15px !important;
}

.pt15 {
  padding-top: 15px !important;
}

.pr15 {
  padding-right: 15px !important;
}

.pb15 {
  padding-bottom: 15px !important;
}

.pl15 {
  padding-left: 15px !important;
}

.mt20 {
  margin-top: 20px !important;
}

.mr20 {
  margin-right: 20px !important;
}

.mb20 {
  margin-bottom: 20px !important;
}

.ml20 {
  margin-left: 20px !important;
}

.pt20 {
  padding-top: 20px !important;
}

.pr20 {
  padding-right: 20px !important;
}

.pb20 {
  padding-bottom: 20px !important;
}

.pl20 {
  padding-left: 20px !important;
}

.mt25 {
  margin-top: 25px !important;
}

.mr25 {
  margin-right: 25px !important;
}

.mb25 {
  margin-bottom: 25px !important;
}

.ml25 {
  margin-left: 25px !important;
}

.pt25 {
  padding-top: 25px !important;
}

.pr25 {
  padding-right: 25px !important;
}

.pb25 {
  padding-bottom: 25px !important;
}

.pl25 {
  padding-left: 25px !important;
}

.mt30 {
  margin-top: 30px !important;
}

.mr30 {
  margin-right: 30px !important;
}

.mb30 {
  margin-bottom: 30px !important;
}

.ml30 {
  margin-left: 30px !important;
}

.pt30 {
  padding-top: 30px !important;
}

.pr30 {
  padding-right: 30px !important;
}

.pb30 {
  padding-bottom: 30px !important;
}

.pl30 {
  padding-left: 30px !important;
}

.mt35 {
  margin-top: 35px !important;
}

.mr35 {
  margin-right: 35px !important;
}

.mb35 {
  margin-bottom: 35px !important;
}

.ml35 {
  margin-left: 35px !important;
}

.pt35 {
  padding-top: 35px !important;
}

.pr35 {
  padding-right: 35px !important;
}

.pb35 {
  padding-bottom: 35px !important;
}

.pl35 {
  padding-left: 35px !important;
}

.mt40 {
  margin-top: 40px !important;
}

.mr40 {
  margin-right: 40px !important;
}

.mb40 {
  margin-bottom: 40px !important;
}

.ml40 {
  margin-left: 40px !important;
}

.pt40 {
  padding-top: 40px !important;
}

.pr40 {
  padding-right: 40px !important;
}

.pb40 {
  padding-bottom: 40px !important;
}

.pl40 {
  padding-left: 40px !important;
}

.mt45 {
  margin-top: 45px !important;
}

.mr45 {
  margin-right: 45px !important;
}

.mb45 {
  margin-bottom: 45px !important;
}

.ml45 {
  margin-left: 45px !important;
}

.pt45 {
  padding-top: 45px !important;
}

.pr45 {
  padding-right: 45px !important;
}

.pb45 {
  padding-bottom: 45px !important;
}

.pl45 {
  padding-left: 45px !important;
}

.mt50 {
  margin-top: 50px !important;
}

.mr50 {
  margin-right: 50px !important;
}

.mb50 {
  margin-bottom: 50px !important;
}

.ml50 {
  margin-left: 50px !important;
}

.pt50 {
  padding-top: 50px !important;
}

.pr50 {
  padding-right: 50px !important;
}

.pb50 {
  padding-bottom: 50px !important;
}

.pl50 {
  padding-left: 50px !important;
}

/*フッダー*/
.opacity {
  opacity: 1;
}

html:not(.en):not(.ct):not(.cs):not(.ko) #sp_menu > nav > div {
  width: 33.333333%;
  height: 100%;
}

/*ヘッダー*/
#header .con_logo .logo .regular {
  display: block;
  opacity: 1;
}
@media only screen and (max-width: 767px) {
  #header .con_logo .logo {
    padding: 0.4em 40vw 0.4em 4% !important;
  }
}
#header .premier {
  opacity: 1;
}

/*固定バナー*/
#banner_pc {
  position: fixed;
  right: 20px;
  bottom: 20px;
  z-index: 1;
  animation: banner_pc_move 1s ease-out infinite alternate;
}

@keyframes banner_pc_move {
  from {
    transform: translateY(0);
  }
  to {
    transform: translateY(-20px);
  }
}
/*ページメニュー*/
.page-menu {
  background-color: #f5f5f5;
  padding: 2rem 4rem;
}
@media screen and (max-width: 414px) {
  .page-menu {
    padding: 2rem 2rem;
  }
}
.page-menu .tit {
  font-weight: bold;
  font-size: 24px;
  margin-bottom: 1em;
}
@media screen and (max-width: 768px) {
  .page-menu .tit {
    font-size: 3.5vw;
  }
}
@media screen and (max-width: 414px) {
  .page-menu .tit {
    font-size: 18px;
  }
}
.page-menu .page-menu-list li {
  position: relative;
  padding-left: 1em;
}
.page-menu .page-menu-list li + li {
  margin-top: 1em;
}
.page-menu .page-menu-list li:before {
  content: "";
  display: block;
  width: 5px;
  height: 5px;
  background-color: #000;
  border-radius: 50%;
  position: absolute;
  top: 0.7em;
  left: 0;
}
.page-menu .page-menu-list li a:hover {
  text-decoration: underline;
}
.page-menu .page-menu-list__sub {
  margin-top: 1em;
}
.page-menu .page-menu-list__sub li {
  font-size: 0.9em;
}
.page-menu .page-menu-list__sub li:before {
  width: 3px;
  height: 3px;
}

.comp_st {
  margin-bottom: 1em;
}

/*section*/
section [class^=comp_con_bw]:first-child {
  margin-top: 0;
}

[class^=comp_con_bw] > [class^=comp_con_bw] {
  width: 100%;
}

/*lead*/
.icon_text.comp_con_bw_m {
  margin-top: 145px;
}
@media screen and (max-width: 768px) {
  .icon_text.comp_con_bw_m {
    margin-top: 18.8802083333vw;
  }
}
.icon_text .icon_img {
  text-align: center;
  margin-bottom: 35px;
}
.icon_text h2 span {
  display: block;
  text-align: center;
}
.icon_text h2 span.jp {
  font-size: clamp(1.6rem, 0.752rem + 1.77vw, 3.2rem);
  font-weight: bold;
  line-height: 1.4;
  margin-bottom: 5px;
}
.icon_text h2 span.en {
  color: #bda366;
}

/*フッター*/
#footer .con_footer_rsrv .inner .box_btn_plan {
  margin-top: 0;
  display: block;
}
#footer .con_footer_rsrv .inner .box_btn_plan li:nth-child(n+2) {
  margin-top: 2rem;
}

#footer .con_dacorp_footer {
  margin-top: 0;
  border-top: 0;
}

/*文字装飾*/
.chu {
  font-size: 90%;
  color: #bda366;
}

.center {
  text-align: center;
}

.mb0 {
  margin-bottom: 0 !important;
}

.mt0 {
  margin-top: 0 !important;
}

/* ヘッダー統一
-------------------------------------- */
#btn_pc_tab_menu {
  transition: opacity 0.1s ease-out, transform 0.1s ease-out;
  margin-left: auto;
  width: 240px;
}
@media (max-width: 1439px) {
  #btn_pc_tab_menu {
    width: 190px;
  }
}
@media (max-width: 1439px) {
  #btn_pc_tab_menu {
    width: 160px;
  }
}

#btn_pc_tab_menu.is-fix {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  opacity: 1;
  transform: translateY(0);
}

/* fix_gnav用 */
#fix_gnav.is-fix {
  position: fixed;
  top: 0;
  width: 100%;
  opacity: 1;
  transform: translateY(0);
  transition: opacity 0.1s ease-out, transform 0.1s ease-out;
}

#fix_gnav.is-hide {
  opacity: 0;
  transform: translateY(-100%);
}/*# sourceMappingURL=index.css.map */