@charset "UTF-8";
/********************************************************/
html {
  font-size: 62.5%;
  -webkit-tap-highlight-color: transparent;
  -ms-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
}

body {
  overflow-x: clip;
  font-size: 1.6rem;
  color: #3b4456;
  background: #f7f6f4;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 300;
  height: 100%;
  min-height: 100vh;
  margin: 0;
  padding: 0;
  line-height: 2;
  width: 100%;
}
@media (max-width: 834px) {
  body {
    font-size: 1.4rem;
  }
}

/*-------------------------------------------
 * 共通スタイル
 * -------------------------------------------*/
/* PC時に電話番号をクリックできないようにする */
a[href^="tel:"] {
  pointer-events: none;
}
@media (max-width: 834px) {
  a[href^="tel:"] {
    pointer-events: all;
  }
}

/* 選択時の背景色と文字色 */
::-moz-selection {
  background-color: #3b4456;
  color: #f7f6f4;
}
::selection {
  background-color: #3b4456;
  color: #f7f6f4;
}

/* フルイド余白設定 */
/*-------------------------------------------
 * フォント
 * -------------------------------------------*/
:root {
  --ff-noto: "Noto Sans JP", sans-serif;
  --ff-shippori: "Shippori Mincho", serif;
  --ff-work: "Work Sans", sans-serif;
  --ff-gilda: "Gilda Display", serif;
}

/*-------------------------------------------
 * フォントサイズのroot
 * -------------------------------------------*/
:root {
  --f10: 1rem;
  --f11: 1.1rem;
  --f12: clamp(1rem, 12 / 1680 * 100vw, 1.2rem);
  --f13: clamp(1rem, 13 / 1680 * 100vw, 1.3rem);
  --f14: clamp(1rem, 14 / 1680 * 100vw, 1.4rem);
  --f15: clamp(1.3rem, 15 / 1680 * 100vw, 1.5rem);
  --f16: clamp(1.3rem, 16 / 1680 * 100vw, 1.6rem);
  --f17: clamp(1.4rem, 17 / 1680 * 100vw, 1.7rem);
  --f18: clamp(1.5rem, 18 / 1680 * 100vw, 1.8rem);
  --f19: clamp(1.5rem, 19 / 1680 * 100vw, 1.9rem);
  --f20: clamp(1.5rem, 20 / 1680 * 100vw, 2rem);
  --f21: clamp(1.5rem, 21 / 1680 * 100vw, 2.1rem);
  --f22: clamp(1.6rem, 22 / 1680 * 100vw, 2.2rem);
  --f23: clamp(1.6rem, 23 / 1680 * 100vw, 2.3rem);
  --f24: clamp(1.6rem, 24 / 1680 * 100vw, 2.4rem);
  --f25: clamp(1.6rem, 25 / 1680 * 100vw, 2.5rem);
  --f26: clamp(1.6rem, 26 / 1680 * 100vw, 2.6rem);
  --f27: clamp(1.6rem, 27 / 1680 * 100vw, 2.7rem);
  --f28: clamp(1.8rem, 28 / 1680 * 100vw, 2.8rem);
  --f29: clamp(1.8rem, 29 / 1680 * 100vw, 2.9rem);
  --f30: clamp(1.8rem, 30 / 1680 * 100vw, 3rem);
  --f31: clamp(1.8rem, 31 / 1680 * 100vw, 3.1rem);
  --f32: clamp(1.8rem, 32 / 1680 * 100vw, 3.2rem);
  --f33: clamp(2rem, 33 / 1680 * 100vw, 3.3rem);
  --f34: clamp(2rem, 34 / 1680 * 100vw, 3.4rem);
  --f35: clamp(2rem, 35 / 1680 * 100vw, 3.5rem);
  --f36: clamp(2rem, 36 / 1680 * 100vw, 3.6rem);
  --f37: clamp(2rem, 37 / 1680 * 100vw, 3.7rem);
  --f38: clamp(2rem, 38 / 1680 * 100vw, 3.8rem);
  --f39: clamp(2rem, 39 / 1680 * 100vw, 3.9rem);
  --f40: clamp(2rem, 40 / 1680 * 100vw, 4rem);
  --f41: clamp(2rem, 41 / 1680 * 100vw, 4.1rem);
  --f42: clamp(2rem, 42 / 1680 * 100vw, 4.2rem);
  --f43: clamp(2rem, 43 / 1680 * 100vw, 4.3rem);
  --f44: clamp(2rem, 44 / 1680 * 100vw, 4.4rem);
  --f45: clamp(2rem, 45 / 1680 * 100vw, 4.5rem);
  --f46: clamp(2rem, 46 / 1680 * 100vw, 4.6rem);
  --f47: clamp(2rem, 47 / 1680 * 100vw, 4.7rem);
  --f48: clamp(2rem, 48 / 1680 * 100vw, 4.8rem);
  --f49: clamp(2.5rem, 49 / 1680 * 100vw, 4.9rem);
  --f50: clamp(3rem, 50 / 1680 * 100vw, 5rem);
  --f60: clamp(3rem, 60 / 1680 * 100vw, 6rem);
  --f64: clamp(3rem, 64 / 1680 * 100vw, 6.4rem);
  --f70: clamp(3.2rem, 70 / 1680 * 100vw, 7rem);
  --f80: clamp(3.2rem, 80 / 1680 * 100vw, 8rem);
  --f90: clamp(3.2rem, 90 / 1680 * 100vw, 9rem);
  --f96: clamp(3.2rem, 96 / 1680 * 100vw, 9.6rem);
  --f104: clamp(3.6rem, 104 / 1680 * 100vw, 10.4rem);
  --f110: clamp(3.6rem, 110 / 1680 * 100vw, 11rem);
  --f114: clamp(3.6rem, 114 / 1680 * 100vw, 11.4rem);
  --f120: clamp(3.6rem, 120 / 1680 * 100vw, 12rem);
}

/*-------------------------------------------
 * 色
 * -------------------------------------------*/
:root {
  --navy: #3b4456;
  --cream: #f7f6f4;
}

/*-------------------------------------------
 * インナー幅、余白
 * -------------------------------------------*/
.inner--1100 {
  width: min(90%, 1100px);
  margin-inline: auto;
}

.inner--1200 {
  width: min(90%, 1200px);
  margin-inline: auto;
}

.inner--1300 {
  width: min(90%, 1300px);
  margin-inline: auto;
}

.inner--1350 {
  width: min(90%, 1350px);
  margin-inline: auto;
}

.inner--1450 {
  width: min(90%, 1450px);
  margin-inline: auto;
}

.inner--1600 {
  width: min(90%, 1600px);
  margin-inline: auto;
}

/*-------------------------------------------
 * 改行
 * -------------------------------------------*/
.no-scroll {
  overflow: hidden;
  height: 100vh;
}

.br-sp {
  display: none;
}
@media (max-width: 834px) {
  .br-sp {
    display: block;
  }
}

.no-br-sp {
  display: block;
}
@media (max-width: 834px) {
  .no-br-sp {
    display: none;
  }
}

.sp-only {
  display: none !important;
}
@media (max-width: 834px) {
  .sp-only {
    display: block !important;
  }
}
@media (max-width: 834px) {
  .sp-only.header__tel-button, .sp-only.instagram-link {
    display: -webkit-box !important;
    display: -ms-flexbox !important;
    display: flex !important;
  }
}

/*-------------------------------------------
 * 見出し
 * -------------------------------------------*/
.sec__title-wrap {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  line-height: 1.8;
  margin-bottom: 4rem;
}
@media (max-width: 834px) {
  .sec__title-wrap {
    margin-bottom: 2rem;
  }
}

.sec__title--ja {
  font-size: var(--f24);
}

.sec__title--en {
  font-weight: 500;
  line-height: 1;
}

.sec__title-wrap--left {
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
}

.sec__title-wrap--center {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

/*-------------------------------------------
 * リンク用矢印
-------------------------------------------*/
.with-link-arrow:hover .link-arrow01 {
  left: 150%;
  -webkit-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
}
.with-link-arrow:hover .link-arrow02 {
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
}

.link-arrow {
  width: 2rem;
  height: 1.4rem;
  border-radius: 100vmax;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  line-height: 1;
  position: relative;
  overflow: hidden;
  background: var(--cream);
}

.link-arrow__img {
  width: 0.6rem;
  height: 0.6rem;
  display: block;
  -webkit-mask-image: url("../img/common/link-arrow.svg");
  mask-image: url("../img/common/link-arrow.svg");
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;
  background-color: var(--navy);
}

.link-arrow--navy-bg {
  background: var(--navy);
}
.link-arrow--navy-bg .link-arrow__img {
  background-color: var(--cream);
}

.link-arrow01 {
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  -webkit-transition-duration: 0.5s;
          transition-duration: 0.5s;
  width: 16px;
  display: block;
}

.link-arrow02 {
  position: absolute;
  top: 50%;
  left: -50%;
  -webkit-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
  -webkit-transition-duration: 0.5s;
  transition-duration: 0.5s;
  width: 16px;
  display: block;
}

/*-------------------------------------------
 * ボタン、リンク
-------------------------------------------*/
/* ボタン共通 */
.rounded-button {
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  padding: 0.6em 1em;
  min-width: 13rem;
  border-radius: 100vmax;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  font-size: var(--f16);
  font-family: var(--ff-work);
  position: relative;
  overflow: hidden;
  line-height: 1;
}

.rounded-button--navy {
  background: var(--navy);
  border: 1px solid var(--navy);
  color: var(--cream);
}

.rounded-button--cream {
  background: var(--cream);
  border: 1px solid var(--cream);
  color: var(--navy);
}

/* テキストが縦スライドするリンク */
.text-slide-link {
  display: inline-block;
  position: relative;
  overflow: hidden;
  text-decoration: none;
  -webkit-transition: all 0.3s ease;
  transition: all 0.3s ease;
}
.text-slide-link span {
  display: block;
  -webkit-transform: translateY(0);
          transform: translateY(0);
  -webkit-transition: -webkit-transform 0.5s ease;
  transition: -webkit-transform 0.5s ease;
  transition: transform 0.5s ease;
  transition: transform 0.5s ease, -webkit-transform 0.5s ease;
}
.text-slide-link::after {
  content: attr(data-text);
  position: absolute;
  left: 0;
  top: 100%;
  width: 100%;
  height: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  -webkit-transform: translateY(0);
          transform: translateY(0);
  -webkit-transition: -webkit-transform 0.5s ease;
  transition: -webkit-transform 0.5s ease;
  transition: transform 0.5s ease;
  transition: transform 0.5s ease, -webkit-transform 0.5s ease;
  background: inherit;
}
.text-slide-link:hover {
  opacity: 0.7;
}
.text-slide-link:hover span {
  -webkit-transform: translateY(-100%);
          transform: translateY(-100%);
}
.text-slide-link:hover::after {
  -webkit-transform: translateY(-100%);
          transform: translateY(-100%);
}

/* テキストが縦スライドするボタン */
.text-slide-button:hover .button-text__inner {
  -webkit-transform: translateY(-100%);
          transform: translateY(-100%);
}
.text-slide-button:hover .button-text::after {
  -webkit-transform: translateY(0);
          transform: translateY(0);
}
.text-slide-button .button-text {
  position: relative;
  overflow: hidden;
  line-height: 1.1;
  display: inline-block;
}
.text-slide-button .button-text::after {
  content: attr(data-text);
  position: absolute;
  inset: 0;
  -webkit-transform: translateY(100%);
          transform: translateY(100%);
  -webkit-transition: -webkit-transform 0.5s;
  transition: -webkit-transform 0.5s;
  transition: transform 0.5s;
  transition: transform 0.5s, -webkit-transform 0.5s;
}
.text-slide-button .button-text__inner {
  display: block;
  -webkit-transition: -webkit-transform 0.5s;
  transition: -webkit-transform 0.5s;
  transition: transform 0.5s;
  transition: transform 0.5s, -webkit-transform 0.5s;
}

/* 下線が引きなおされるリンク */
.text-underline-link__item {
  position: relative;
}
.text-underline-link__item::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 1px;
  background: var(--navy);
}

.text-underline-link:hover .text-underline-link__item::after {
  -webkit-animation: underline-redraw 1s cubic-bezier(0.23, 1, 0.32, 1) forwards;
          animation: underline-redraw 1s cubic-bezier(0.23, 1, 0.32, 1) forwards;
}

@-webkit-keyframes underline-redraw {
  0% {
    width: 100%;
    left: 0;
  }
  50% {
    width: 0;
    left: 100%;
  }
  51% {
    width: 0;
    left: 0;
  }
  100% {
    width: 100%;
    left: 0;
  }
}

@keyframes underline-redraw {
  0% {
    width: 100%;
    left: 0;
  }
  50% {
    width: 0;
    left: 100%;
  }
  51% {
    width: 0;
    left: 0;
  }
  100% {
    width: 100%;
    left: 0;
  }
}
/*-------------------------------------------
 * ヘッダー
 * -------------------------------------------*/
.header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 1000;
}
.header.is-dark-bg:not(.is-active) .header__nav-link {
  color: var(--cream);
}
.header.is-dark-bg:not(.is-active) .header__language {
  color: var(--cream);
}
.header.is-dark-bg:not(.is-active) .header__language:nth-of-type(-n+2)::after {
  color: var(--cream);
}
.header.is-dark-bg:not(.is-active) .nav-button__bars span {
  background: var(--cream);
}

.header__inner {
  padding-inline: min(5%, 4.9rem);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  padding-top: 1.5rem;
}

.header__logo {
  width: 18rem;
  height: auto;
  display: block;
  position: relative;
  z-index: 999;
  margin-top: 2rem;
}
@media (max-width: 834px) {
  .header__logo {
    width: 13rem;
    margin-top: 0.5rem;
  }
}

.header__logo-img {
  width: 100%;
  height: auto;
}

.header__nav-list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.3em 3em;
  margin-top: 2em;
}
@media (max-width: 834px) {
  .header__nav-list {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    row-gap: 1.2em;
    margin-top: 0;
    margin-bottom: 1em;
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2;
  }
}

.header__nav-list > li:last-child {
  grid-column: 2;
}

.header__nav {
  display: grid;
  grid-template-columns: auto 13.3rem;
  gap: 3rem 17%;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
}
@media (max-width: 834px) {
  .header__nav {
    opacity: 0;
    visibility: hidden;
    position: fixed;
    top: 0;
    right: 0;
    height: 100%;
    width: 100%;
    z-index: 99;
    margin: 0;
    padding: min(40vw, 22rem) 19% 8rem;
    overflow-y: auto;
    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-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
    gap: 0;
  }
  .header__nav::before {
    content: "";
    width: 100%;
    inset: 0;
    position: fixed;
    background: url(../img/common/bg_navy-pattern.webp) no-repeat center center/cover;
    z-index: -1;
  }
  .header__nav {
    -webkit-transition: opacity 0.4s ease, visibility 0.4s ease, z-index 0s 0.4s;
    transition: opacity 0.4s ease, visibility 0.4s ease, z-index 0s 0.4s;
  }
  .header__nav.is-active {
    opacity: 1;
    visibility: visible;
    z-index: 99;
    -webkit-transition: opacity 0.4s ease, visibility 0.4s ease, z-index 0s 0s;
    transition: opacity 0.4s ease, visibility 0.4s ease, z-index 0s 0s;
  }
  .header__nav.is-active .header__nav-link {
    color: var(--cream);
  }
  .header__nav.is-active .header__language {
    color: var(--cream);
  }
  .header__nav.is-active .header__language:nth-of-type(-n+2)::after {
    color: var(--cream);
  }
}

.header__nav-link {
  font-size: var(--f14);
  color: var(--navy);
}
@media (max-width: 834px) {
  .header__nav-link {
    font-size: 1.6rem;
  }
}

.header__nav-item {
  line-height: 1.4;
  white-space: nowrap;
}

.header__nav-info-area {
  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: end;
      -ms-flex-align: end;
          align-items: flex-end;
  gap: 0.3em;
}
@media (max-width: 834px) {
  .header__nav-info-area {
    display: contents;
  }
}

.header__language-wrap {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 0.5em;
}
@media (max-width: 834px) {
  .header__language-wrap {
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1;
    margin-bottom: 1.5em;
  }
}

.header__language {
  font-family: var(--ff-work);
  font-size: var(--f15);
  color: var(--navy);
  font-weight: 400;
}
.header__language.is-active {
  opacity: 0.6;
}
.header__language:first-of-type {
  position: relative;
}
.header__language:nth-of-type(-n+2)::after {
  content: "/";
  z-index: 1;
  color: var(--navy);
}

.header__link-button {
  font-size: var(--f15);
  color: var(--navy);
  border: 1px solid var(--cream);
  background: var(--cream);
  padding: 0.4em 1em 0.3em 1.3em;
  border-radius: 100vmax;
}
@media (max-width: 834px) {
  .header__link-button {
    border-radius: 5px;
    font-size: 1.8rem;
    padding-block: 0.9rem;
  }
}

.header__reserve-button {
  font-family: var(--ff-shippori);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  gap: 0.3em;
  width: min(100%, 13.3rem);
  white-space: nowrap;
  border: 1px solid var(--navy);
}
@media (max-width: 834px) {
  .header__reserve-button {
    -webkit-box-ordinal-group: 5;
        -ms-flex-order: 4;
            order: 4;
    width: 100%;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    margin-bottom: 1.5rem;
  }
}
@media (max-width: 834px) {
  .header__reserve-button .link-arrow {
    display: none;
  }
}

@media (max-width: 834px) {
  .header__tel-button {
    font-family: var(--ff-work);
    font-weight: 400;
    -webkit-box-ordinal-group: 6;
        -ms-flex-order: 5;
            order: 5;
    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;
    line-height: 1.4;
    margin-bottom: 2rem;
  }
}

@media (max-width: 834px) {
  .header__tel-time {
    font-size: 1.2rem;
  }
}

@media (max-width: 834px) {
  .header__address-area {
    -webkit-box-ordinal-group: 7;
        -ms-flex-order: 6;
            order: 6;
    font-family: var(--ff-shippori);
    color: var(--cream);
    line-height: 1.4;
  }
}

.google-map {
  font-family: var(--ff-work);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.5rem;
  margin-top: 1em;
  color: var(--navy);
}
.google-map::before {
  content: "";
  display: inline-block;
  width: 1.4rem;
  aspect-ratio: 14/18;
  -webkit-mask-image: url("../img/common/map-pin.svg");
  mask-image: url("../img/common/map-pin.svg");
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;
  background-color: var(--navy);
}

.google-map--white {
  color: var(--cream);
}
.google-map--white::before {
  background-color: var(--cream);
}
.google-map--white .text {
  border-bottom: 1px solid var(--cream);
}

.header__instagram-link {
  -webkit-box-ordinal-group: 4;
      -ms-flex-order: 3;
          order: 3;
}

.instagram-link {
  font-size: var(--f22);
  color: var(--navy);
  font-family: var(--ff-work);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 0.8rem;
  margin-bottom: 2em;
}
.instagram-link::before {
  content: "";
  display: inline-block;
  width: 2rem;
  aspect-ratio: 1;
  -webkit-mask-image: url("../img/common/instagram-icon.svg");
  mask-image: url("../img/common/instagram-icon.svg");
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;
  background-color: var(--navy);
}

.instagram-link--white {
  color: var(--cream);
}
.instagram-link--white::before {
  background-color: var(--cream);
}

/*-------------------------------------------
 * ハンバーガーボタン
 * -------------------------------------------*/
.nav-button {
  position: fixed;
  top: 1.5rem;
  right: 5%;
  width: 4.8rem;
  height: 3rem;
  text-align: center;
  z-index: 100;
  text-decoration: none;
  margin: 0;
  padding: 0;
  border: none;
  display: none;
  cursor: pointer;
}
@media (max-width: 834px) {
  .nav-button {
    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-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
  }
}
.nav-button.is-active .nav-button__bars > span {
  background: var(--cream);
}
.nav-button.is-active .nav-button__bars > span:nth-of-type(1) {
  -webkit-transform: translateY(calc(0.7rem / 2 - 1px / 2)) rotate(-10deg);
          transform: translateY(calc(0.7rem / 2 - 1px / 2)) rotate(-10deg);
}
.nav-button.is-active .nav-button__bars > span:nth-of-type(2) {
  -webkit-transform: translateY(calc(-0.7rem / 2 + 1px / 2)) rotate(10deg);
          transform: translateY(calc(-0.7rem / 2 + 1px / 2)) rotate(10deg);
}

.nav-button__bars,
.nav-button__bars span {
  display: inline-block;
  -webkit-transition: -webkit-transform 0.4s;
  transition: -webkit-transform 0.4s;
  transition: transform 0.4s;
  transition: transform 0.4s, -webkit-transform 0.4s;
}

.nav-button__bars {
  position: relative;
  width: 4.8rem;
  height: 0.7rem;
  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-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}
.nav-button__bars span {
  width: 100%;
  height: 1px;
  background: var(--navy);
}

.nav-button__inner {
  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;
}

/*-------------------------------------------
 * フッター
 * -------------------------------------------*/
.footer {
  padding-block: clamp(12rem, 16.0714285714vw, 27rem) clamp(2rem, 5.9523809524vw, 10rem);
  z-index: 10;
}
.footer .instagram-link {
  margin-bottom: 0;
}

.footer__inner {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 4rem 21.9%;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}
@media (max-width: 1199px) {
  .footer__inner {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: reverse;
        -ms-flex-direction: column-reverse;
            flex-direction: column-reverse;
  }
}

.footer__logo {
  width: 18rem;
  -webkit-transition: opacity ease-in-out 0.3s;
  transition: opacity ease-in-out 0.3s;
  display: block;
}
.footer__logo:hover {
  opacity: 0.7;
}
@media (max-width: 499px) {
  .footer__logo {
    margin-bottom: 2rem;
  }
}

.footer__nav {
  display: grid;
  grid-template-columns: auto auto auto;
  gap: 1em 18%;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}
@media (max-width: 834px) {
  .footer__nav {
    grid-template-columns: 1fr 1fr;
    row-gap: 0;
  }
}

@media (max-width: 499px) {
  .footer__nav-col--instagram {
    grid-column: 2/3;
    margin-top: 1rem;
  }
}

.footer__nav-bottom {
  grid-column: 1/-1;
}
@media (max-width: 834px) {
  .footer__nav-bottom {
    grid-column: 1/-1;
    grid-row: 3/4;
    margin-top: 1em;
  }
}

.footer__nav-link {
  font-size: var(--f14);
  font-weight: 300;
}
@media (max-width: 834px) {
  .footer__nav-link {
    font-size: 1.5rem;
  }
}
.footer__nav-link.instagram-link.text-slide-link::after {
  left: 2.2rem;
}
.footer__nav-link.instagram-link::before {
  content: "";
  width: 1.4rem;
}

.footer__nav-item {
  font-size: var(--f18);
  font-weight: 600;
  line-height: 1.4;
  white-space: nowrap;
}

.footer__nav-item + .footer__nav-item {
  margin-top: 1rem;
}

.footer__nav-child {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 1rem;
  margin-block: 1rem 2rem;
}

.footer__nav-child-item {
  font-size: var(--f16);
  font-weight: normal;
  line-height: 1.4;
  padding-left: 1.6rem;
  position: relative;
}
.footer__nav-child-item::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.6em;
  width: 0.8rem;
  height: 0.1rem;
  background-color: #000;
  border-radius: 100vmax;
}

.footer__info {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}
@media (max-width: 1199px) {
  .footer__info {
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
  }
}

.footer__copy {
  font-size: var(--f14);
  color: rgba(61, 70, 88, 0.5019607843);
  font-family: var(--ff-work);
  margin-top: auto;
}
@media (max-width: 1199px) {
  .footer__copy {
    margin-top: 3em;
  }
}

.footer__google-map {
  font-size: 1.4rem;
  font-weight: 400;
  line-height: 1.4;
}

.footer__address {
  line-height: 1.4;
  font-family: var(--ff-shippori);
  margin-block: 3em 0.5em;
}
@media (max-width: 1199px) {
  .footer__address {
    text-align: center;
  }
}
@media (max-width: 834px) {
  .footer__address {
    margin-top: 0.8em;
  }
}

.footer-main {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}

.footer-main__top {
  padding-bottom: clamp(3rem, 4.4880952381vw, 7.54rem);
  margin-bottom: clamp(3rem, 3.869047619vw, 6.5rem);
  border-bottom: 1px solid #e3e3e3;
  display: grid;
  grid-template-columns: 410fr 260fr;
  gap: 4rem 23.8%;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}
@media (max-width: 834px) {
  .footer-main__top {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
}

.footer-main__bottom {
  display: grid;
  grid-template-columns: 680fr 150fr;
  gap: 3rem 5.4%;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}
@media (max-width: 834px) {
  .footer-main__bottom {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: reverse;
        -ms-flex-direction: column-reverse;
            flex-direction: column-reverse;
  }
}

.footer-main__company {
  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;
}

.company-logo-icon {
  display: inline-block;
  width: 15rem;
  height: auto;
  aspect-ratio: 150/41;
  -webkit-mask: url(../img/common/logo_ces-resort.svg) no-repeat center/contain;
  mask: url(../img/common/logo_ces-resort.svg) no-repeat center/contain;
  background-color: var(--navy);
}

.footer-main__company-text {
  color: rgba(61, 70, 88, 0.5);
  font-size: var(--f12);
}

.footer-main__link-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 3rem 5%;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}

.footer__button-wrap {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 1.5rem;
  max-width: 26rem;
  width: 100%;
}
@media (max-width: 834px) {
  .footer__button-wrap {
    margin-inline: auto;
    font-size: 1.8rem;
    max-width: none;
  }
}

.footer__button {
  background: var(--navy);
  border-radius: 5px;
  color: #fff;
  padding: 0.8em 0.5em;
}

.footer__reserve-button {
  text-align: center;
  font-family: var(--ff-shippori);
}

.footer__tel-button {
  font-family: var(--ff-work);
  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;
  line-height: 1.4;
  font-weight: 400;
}

.footer__tel-time {
  font-size: var(--f10);
}

.footer-main__link-item-img {
  overflow: hidden;
}
.footer-main__link-item-img img {
  -webkit-transition: -webkit-transform 2s ease;
  transition: -webkit-transform 2s ease;
  transition: transform 2s ease;
  transition: transform 2s ease, -webkit-transform 2s ease;
}

.footer-main__link-item-text {
  font-size: var(--f14);
  margin-top: 1em;
  -webkit-transition: opacity 0.3s ease;
  transition: opacity 0.3s ease;
}
@media (max-width: 834px) {
  .footer-main__link-item-text {
    line-height: 1.4;
  }
}

.footer-main__link-item:hover .footer-main__link-item-img img {
  -webkit-transform: scale(1.1);
          transform: scale(1.1);
}
.footer-main__link-item:hover .footer-main__link-item-text {
  opacity: 0.7;
}

.footer__contact-button {
  margin-top: 1.6em;
  font-size: var(--f14);
}

/* 20260422　フッター追記 */
#footer_sp {
  display: none;
}

@media screen and (max-width:896px) {
  #footer_sp {
    display: block;
  }

  .reserve_sp {
    width: 100%;
    height: 60px;
    display: flex;
    position: fixed;
    bottom: 0;
    right: 0;
    z-index: 100;
    background: #3b4556;
    color: #fff;
    text-align: center;
  }

  .reserve_sp p {
    padding-top: 6px;
    font-size: 1.4rem;
    line-height: 1.8;
  }

  .reserve_sp p a {
    color: #fff;
    display: block;
  }

  .reserve_web,
  .reserve_tel,
  .reserve_qa,
  .reserve_menu {
    width: 33.3333%;
  }

  .reserve_web,
  .reserve_tel,
  .reserve_qa {
    border-right: #fff solid 1px;
  }

  .reserve_web p a {
    color: #fff;
  }

  .reserve_qa {
    background: #999598;
  }

  .reserve_qa:last-of-type {
    border-right: none;
  }
}
/* END　20260422　フッター追記 */

/*-------------------------------------------
 * 下層
 * -------------------------------------------*/
body.under {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-flow: column;
          flex-flow: column;
  min-height: 100vh;
}

.under-main {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
}

.under-fv {
  padding-top: 28rem;
  padding-bottom: clamp(3rem, 8.9285714286vw, 15rem);
}
@media (max-width: 834px) {
  .under-fv {
    padding-top: 12rem;
  }
}

.under-fv__inner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  gap: 5%;
}
@media (max-width: 834px) {
  .under-fv__inner {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
}

/*-------------------------------------------
 * 下層ページ見出し
 * -------------------------------------------*/
.under-fv__title {
  font-size: var(--f64);
  font-family: var(--ff-gilda);
  font-weight: 400;
  line-height: 1.4;
  letter-spacing: -0.03em;
}

/*-------------------------------------------
 * パンくずリスト
 * -------------------------------------------*/
.breadcrumbs-container {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
}

.breadcrumbs {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}
.breadcrumbs li {
  display: inline-block;
  font-size: var(--f12);
  letter-spacing: -0.05em;
}
.breadcrumbs li:not(:last-child)::after {
  content: "/";
  padding-inline: 0.5em;
  font-size: var(--f12);
  line-height: 1;
}
@media (max-width: 834px) {
  .breadcrumbs li:not(:last-child)::after {
    padding-inline: 1.2rem;
    font-size: 1.5rem;
  }
}

.breadcrumbs__item-link {
  line-height: 1;
}

/*-------------------------------------------
 * 404ページ
 * -------------------------------------------*/
.error-404__inner {
  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;
}

.error-404__heading {
  font-family: var(--ff-shippori);
  font-weight: 500;
  font-size: var(--f28);
}

.error-404__text {
  text-align: center;
  margin-block: 3rem;
}
@media (max-width: 834px) {
  .error-404__text {
    text-align: left;
  }
}

.error-404__button {
  font-size: var(--f14);
}

/*-------------------------------------------
 * パララックス
-------------------------------------------*/
.js-parallax--img {
  width: 100%;
  overflow: hidden;
}
.js-parallax--img img {
  display: block;
  width: 100%;
  height: calc(100% + 100px);
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center;
     object-position: center;
}

/*-------------------------------------------
 * 共通(news箇所)
-------------------------------------------*/
.news__item-link {
  position: relative;
}
.news__item-link::after {
  -webkit-transition: width 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  transition: width 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  width: 0;
  height: 1px;
  background: var(--navy);
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  z-index: 1;
}
.news__item-link:hover::after {
  width: 100%;
}
.news__item-link .link-arrow {
  margin-top: 0.2em;
}
@media (max-width: 834px) {
  .news__item-link .link-arrow {
    grid-area: link;
    margin-top: 1em;
    margin-left: auto;
  }
}

.news__item-title {
  font-size: var(--f16);
  font-weight: 400;
  margin-top: -0.2em;
}
@media (max-width: 834px) {
  .news__item-title {
    width: 100%;
    grid-area: title;
    margin-top: 1.2em;
  }
}

.news__category-item {
  font-size: var(--f12);
  font-family: var(--ff-work);
  border: 1px solid #d4d4d4;
  padding: 0.5em 1em;
  border-radius: 100vmax;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  line-height: 1;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  min-width: -webkit-fit-content;
  min-width: -moz-fit-content;
  min-width: fit-content;
  white-space: nowrap;
}
@media (max-width: 834px) {
  .news__category-item {
    grid-area: category;
  }
}
.news__category-item + .news__category-item {
  margin-top: 0.6em;
}

.news__item-date {
  font-size: var(--f14);
  font-family: var(--ff-work);
}
@media (max-width: 834px) {
  .news__item-date {
    grid-area: date;
    margin-right: 1.5em;
  }
}

/*-------------------------------------------
 * 光りながらフェードインするアイテム
 * -------------------------------------------*/
.c-glow-effect {
  width: 100%;
  height: auto;
  -webkit-filter: blur(12px) brightness(2);
          filter: blur(12px) brightness(2);
  -webkit-mask-image: linear-gradient(-25deg, transparent, transparent 25%, #000 50%);
          mask-image: linear-gradient(-25deg, transparent, transparent 25%, #000 50%);
  -webkit-mask-position: 150% 150%;
          mask-position: 150% 150%;
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-size: 350% 100%;
          mask-size: 350% 100%;
}

/*-------------------------------------------
 * ブラーが解除されるアイテム
 * -------------------------------------------*/
.c-blur-effect {
  -webkit-filter: blur(4px) brightness(1.3);
          filter: blur(4px) brightness(1.3);
}

/* -------------------------------------------
 * ロケーションマップ
 * -------------------------------------------*/
.location__map-path {
  fill: none;
  stroke: #2e3042;
  stroke-miterlimit: 10;
  stroke-width: 0.5px;
}

.location__map-line-path {
  fill: none;
  stroke: #2e3042;
  stroke-miterlimit: 10;
  stroke-width: 0.5px;
  opacity: 0;
}

.location__map-circle-path {
  fill: #3d4658;
}

.location__map-logo-path {
  isolation: isolate;
}/*# sourceMappingURL=style.css.map */