.hidden-sp {
  display: none;
}
@media screen and (min-width: 768px) {
  .hidden-sp {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
  }
}

@media screen and (min-width: 768px) {
  .hidden-pc {
    display: none;
  }
}

@media screen and (min-width: 768px) {
  .br-sp {
    display: none;
  }
}

.br-pc {
  display: none;
}
@media screen and (min-width: 768px) {
  .br-pc {
    display: inline;
  }
}

.pc-only {
  display: none;
}
@media screen and (min-width: 768px) {
  .pc-only {
    display: inline;
  }
}

.fv {
  --k: 1.45;
  --title-shift: -3.4%;
  --title-w: 195;
  position: relative;
  height: 300vh;
  background: #889b5d;
  color: #fff;
  font-family: "Noto Sans JP", sans-serif;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .fv {
    --k: 1.3;
    --title-shift: 10%;
    --title-h: 106%;
  }
}
.fv__sticky {
  position: sticky;
  top: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  height: 100vh;
  height: 100svh;
  overflow: hidden;
}
.fv__stage {
  --stage-w: calc(min(100vw, calc(100svh * 0.6476)) * var(--k));
  --u: calc(var(--stage-w) / 390);
  position: relative;
  -webkit-box-flex: 0;
      -ms-flex: none;
          flex: none;
  width: var(--stage-w);
  aspect-ratio: 994/1535;
  background: url("../img/fv-bg-sp.webp") no-repeat center/100% 100%;
}
@media screen and (min-width: 768px) {
  .fv__stage {
    --stage-w: calc(min(100vw, calc(100svh * 1.3318)) * var(--k));
    --u: calc(var(--stage-w) / 1280);
    aspect-ratio: 3155/2369;
    background-image: url("../img/fv-bg-pc.webp");
  }
}
.fv__window {
  position: absolute;
  top: 22%;
  left: 31%;
  width: 38%;
  height: 60%;
}
@media screen and (min-width: 768px) {
  .fv__window {
    top: 27%;
    left: 26%;
    width: 48%;
    height: 46%;
  }
}
.fv__intro {
  position: absolute;
  inset: 0;
  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;
  opacity: var(--title-o, 1);
  -webkit-filter: blur(var(--title-b, 0px));
          filter: blur(var(--title-b, 0px));
  -webkit-transform: translateY(calc(var(--title-shift, 0%) + var(--title-y, 0px))) scale(var(--title-s, 1));
          transform: translateY(calc(var(--title-shift, 0%) + var(--title-y, 0px))) scale(var(--title-s, 1));
  will-change: opacity, transform, filter;
}
.fv__title {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 100%;
}
@media screen and (min-width: 768px) {
  .fv__title {
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    height: 100%;
  }
}
.fv__title picture {
  display: contents;
}
.fv__title img {
  display: block;
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  -o-object-fit: contain;
     object-fit: contain;
  -webkit-animation: fv-title-in 2.4s cubic-bezier(0.22, 0.61, 0.36, 1) 0.4s both;
          animation: fv-title-in 2.4s cubic-bezier(0.22, 0.61, 0.36, 1) 0.4s both;
}
@media screen and (max-width: 767px) {
  .fv__title img {
    -webkit-box-flex: 0;
        -ms-flex: none;
            flex: none;
    width: calc(var(--u) * var(--title-w));
    max-width: none;
  }
}
@media screen and (min-width: 768px) {
  .fv__title img {
    height: var(--title-h);
    max-height: none;
    max-width: none;
  }
}
.fv__viewport {
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
  mask-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, transparent), color-stop(7%, #000), color-stop(93%, #000), to(transparent));
  mask-image: linear-gradient(to bottom, transparent 0, #000 7%, #000 93%, transparent 100%);
  -webkit-mask-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, transparent), color-stop(7%, #000), color-stop(93%, #000), to(transparent));
  -webkit-mask-image: linear-gradient(to bottom, transparent 0, #000 7%, #000 93%, transparent 100%);
}
.fv__body {
  position: relative;
  height: 100%;
  word-break: auto-phrase;
}
@media screen and (max-width: 767px) {
  .fv__body br {
    display: none;
  }
}
.fv__panel {
  position: absolute;
  inset: 0;
  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;
  padding-inline: 0;
  opacity: var(--po, 1);
  -webkit-filter: blur(var(--pb, 0px));
          filter: blur(var(--pb, 0px));
  -webkit-transform: translateY(var(--pyo, 0px));
          transform: translateY(var(--pyo, 0px));
  will-change: opacity, transform, filter;
}
@media screen and (min-width: 768px) {
  .fv__panel {
    padding-inline: 0;
  }
}
.fv__panel > * {
  opacity: var(--o, 0);
  -webkit-transform: translateY(calc((1 - var(--o, 0)) * 16px));
          transform: translateY(calc((1 - var(--o, 0)) * 16px));
  -webkit-filter: blur(calc((1 - var(--o, 0)) * 5px));
          filter: blur(calc((1 - var(--o, 0)) * 5px));
  will-change: opacity, transform, filter;
}
.fv__panel > :first-child {
  margin-top: 0;
}
.fv__text {
  margin-top: 14px;
  font-size: max(10px, var(--u) * 8.3);
  line-height: 1.9;
  letter-spacing: 0.02em;
}
@media screen and (min-width: 768px) {
  .fv__text {
    margin-top: max(16px, var(--u) * 34);
    font-size: max(11px, var(--u) * 13);
    line-height: 2.5;
    letter-spacing: 0.03em;
  }
}
@media screen and (max-width: 767px) {
  .fv__text {
    margin-top: 30px;
    line-height: 2.8;
  }
}
.fv--calm .fv__intro {
  -webkit-filter: none;
          filter: none;
  -webkit-transform: translateY(var(--title-shift, 0%));
          transform: translateY(var(--title-shift, 0%));
}
.fv--calm .fv__panel {
  -webkit-filter: none;
          filter: none;
  -webkit-transform: none;
          transform: none;
}
.fv--calm .fv__panel > * {
  -webkit-transform: none;
          transform: none;
  -webkit-filter: none;
          filter: none;
}
.fv--calm .fv__title img {
  -webkit-animation-name: fv-title-in-calm;
          animation-name: fv-title-in-calm;
}

@-webkit-keyframes fv-title-in {
  from {
    opacity: 0;
    -webkit-filter: blur(14px);
            filter: blur(14px);
    -webkit-transform: scale(0.94) translateY(14px);
            transform: scale(0.94) translateY(14px);
  }
  to {
    opacity: 1;
    -webkit-filter: blur(0);
            filter: blur(0);
    -webkit-transform: none;
            transform: none;
  }
}

@keyframes fv-title-in {
  from {
    opacity: 0;
    -webkit-filter: blur(14px);
            filter: blur(14px);
    -webkit-transform: scale(0.94) translateY(14px);
            transform: scale(0.94) translateY(14px);
  }
  to {
    opacity: 1;
    -webkit-filter: blur(0);
            filter: blur(0);
    -webkit-transform: none;
            transform: none;
  }
}
@-webkit-keyframes fv-title-in-calm {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@keyframes fv-title-in-calm {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
.nav {
  background: #fff;
  padding: 36px 0 0;
  font-family: "Noto Sans JP", sans-serif;
}
@media screen and (min-width: 768px) {
  .nav {
    padding: clamp(0px, 90 / 1280 * 100vw, 90px) 0 0;
  }
}
.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;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 36px;
}
@media screen and (min-width: 768px) {
  .nav__list {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    gap: clamp(0px, 40 / 1280 * 100vw, 40px);
    max-width: 960px;
    margin: 0 auto;
  }
}
.nav__btn {
  position: relative;
  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;
  width: 234px;
  height: 77px;
  background: #fff;
  border: 1px solid #bcc4a4;
  -webkit-box-shadow: 6px 6px 0 #889b5d;
          box-shadow: 6px 6px 0 #889b5d;
  color: #889b5d;
  text-align: center;
  -webkit-transition: -webkit-transform 0.25s ease, -webkit-box-shadow 0.25s ease;
  transition: -webkit-transform 0.25s ease, -webkit-box-shadow 0.25s ease;
  transition: transform 0.25s ease, box-shadow 0.25s ease;
  transition: transform 0.25s ease, box-shadow 0.25s ease, -webkit-transform 0.25s ease, -webkit-box-shadow 0.25s ease;
}
@media screen and (min-width: 768px) {
  .nav__btn {
    width: clamp(0px, 292 / 1280 * 100vw, 292px);
    height: clamp(0px, 143 / 1280 * 100vw, 143px);
    padding-bottom: clamp(0px, 18 / 1280 * 100vw, 18px);
    -webkit-box-shadow: clamp(0px, 8 / 1280 * 100vw, 8px) clamp(0px, 8 / 1280 * 100vw, 8px) 0 #889b5d;
            box-shadow: clamp(0px, 8 / 1280 * 100vw, 8px) clamp(0px, 8 / 1280 * 100vw, 8px) 0 #889b5d;
  }
}
@media (hover: hover) {
  .nav__btn:hover {
    -webkit-transform: translate(6px, 6px);
            transform: translate(6px, 6px);
    -webkit-box-shadow: 0 0 0 #889b5d;
            box-shadow: 0 0 0 #889b5d;
  }
}
@media screen and (hover: hover) and (min-width: 768px) {
  .nav__btn:hover {
    -webkit-transform: translate(clamp(0px, 8 / 1280 * 100vw, 8px), clamp(0px, 8 / 1280 * 100vw, 8px));
            transform: translate(clamp(0px, 8 / 1280 * 100vw, 8px), clamp(0px, 8 / 1280 * 100vw, 8px));
  }
}
@media (hover: hover) {
  .nav__btn:hover .nav__arrow {
    -webkit-transform: translate(3px, -50%) rotate(-45deg);
            transform: translate(3px, -50%) rotate(-45deg);
  }
}
@media screen and (hover: hover) and (min-width: 768px) {
  .nav__btn:hover .nav__arrow {
    -webkit-transform: translate(-50%, clamp(0px, 4 / 1280 * 100vw, 4px)) rotate(45deg);
            transform: translate(-50%, clamp(0px, 4 / 1280 * 100vw, 4px)) rotate(45deg);
  }
}
.nav__en {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 20px;
  letter-spacing: 0.1em;
  line-height: 1.2;
  font-family: "Playfair Display", serif;
  font-weight: 600;
}
@media screen and (min-width: 768px) {
  .nav__en {
    font-size: clamp(18px, 30 / 1280 * 100vw, 30px);
  }
}
.nav__ja {
  margin-top: 6px;
  font-size: 10px;
  letter-spacing: 0.1em;
}
@media screen and (min-width: 768px) {
  .nav__ja {
    margin-top: clamp(0px, 8 / 1280 * 100vw, 8px);
    font-size: clamp(10px, 14 / 1280 * 100vw, 14px);
  }
}
.nav__arrow {
  position: absolute;
  top: 50%;
  right: 22px;
  width: 10px;
  height: 10px;
  border-right: 1px solid #889b5d;
  border-bottom: 1px solid #889b5d;
  -webkit-transform: translateY(-50%) rotate(-45deg);
          transform: translateY(-50%) rotate(-45deg);
  -webkit-transition: -webkit-transform 0.25s ease;
  transition: -webkit-transform 0.25s ease;
  transition: transform 0.25s ease;
  transition: transform 0.25s ease, -webkit-transform 0.25s ease;
}
@media screen and (min-width: 768px) {
  .nav__arrow {
    top: auto;
    right: auto;
    bottom: clamp(0px, 20 / 1280 * 100vw, 20px);
    left: 50%;
    width: clamp(8px, 14 / 1280 * 100vw, 14px);
    height: clamp(8px, 14 / 1280 * 100vw, 14px);
    -webkit-transform: translateX(-50%) rotate(45deg);
            transform: translateX(-50%) rotate(45deg);
  }
}

.lunch {
  background: #fff;
  color: #889b5d;
  font-family: "Noto Sans JP", sans-serif;
  text-align: center;
  overflow-x: clip;
  padding: 80px 0 64px;
}
@media screen and (min-width: 768px) {
  .lunch {
    padding: clamp(0px, 146 / 1280 * 100vw, 146px) 0 clamp(0px, 140 / 1280 * 100vw, 140px);
  }
}
.lunch__inner {
  max-width: 960px;
  margin: 0 auto;
}
.lunch__title {
  width: 340px;
  max-width: 100%;
  margin: 0 auto;
}
@media screen and (min-width: 768px) {
  .lunch__title {
    position: relative;
    left: 50%;
    width: clamp(0px, 985 / 1280 * 100vw, 985px);
    max-width: none;
    -webkit-transform: translateX(-50%);
            transform: translateX(-50%);
  }
}
.lunch__title img {
  display: block;
  width: 100%;
  height: auto;
}
.lunch__label {
  display: inline-block;
  text-align: center;
  min-width: 96px;
  padding: 2px 8px;
  background: #889b5d;
  color: #fff;
  font-size: 15px;
  line-height: 1.6;
  letter-spacing: 0.1em;
}
@media screen and (min-width: 768px) {
  .lunch__label {
    min-width: clamp(0px, 94 / 1280 * 100vw, 94px);
    font-size: clamp(11px, 14 / 1280 * 100vw, 14px);
  }
}
.lunch__label--en {
  font-family: "Noto Sans JP", sans-serif;
}
.lunch__date {
  margin-top: 36px;
}
@media screen and (min-width: 768px) {
  .lunch__date {
    margin-top: clamp(0px, 62 / 1280 * 100vw, 62px);
  }
}
.lunch__day {
  margin-top: 12px;
  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;
  -webkit-box-align: baseline;
      -ms-flex-align: baseline;
          align-items: baseline;
  font-family: "Playfair Display", serif;
  font-variant-numeric: lining-nums;
  font-size: 34px;
  line-height: 1.4;
}
@media screen and (min-width: 768px) {
  .lunch__day {
    margin-top: clamp(0px, 22 / 1280 * 100vw, 22px);
    font-size: clamp(24px, 40 / 1280 * 100vw, 40px);
  }
}
.lunch__wd, .lunch__tilde {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 0.6em;
}
.lunch__note {
  width: 100%;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 12px;
}
@media screen and (min-width: 768px) {
  .lunch__note {
    width: auto;
    margin-left: clamp(0px, 12 / 1280 * 100vw, 12px);
    font-size: clamp(10px, 12 / 1280 * 100vw, 12px);
  }
}
.lunch__time {
  margin-top: 24px;
  font-family: "Noto Sans JP", sans-serif;
  font-variant-numeric: lining-nums;
  font-size: 22px;
  letter-spacing: 0.04em;
}
@media screen and (min-width: 768px) {
  .lunch__time {
    margin-top: clamp(0px, 38 / 1280 * 100vw, 38px);
    font-size: clamp(16px, 24 / 1280 * 100vw, 24px);
  }
}
.lunch__time-label {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 0.65em;
}
.lunch__line {
  width: 290px;
  max-width: 100%;
  height: 1px;
  margin: 28px auto 0;
  background: #bcc4a4;
  border: 0;
}
@media screen and (min-width: 768px) {
  .lunch__line {
    width: clamp(0px, 382 / 1280 * 100vw, 382px);
    margin-top: clamp(0px, 32 / 1280 * 100vw, 32px);
  }
}
.lunch__info {
  margin-top: 36px;
  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;
  gap: 40px;
}
@media screen and (min-width: 768px) {
  .lunch__info {
    margin-top: clamp(0px, 56 / 1280 * 100vw, 56px);
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
    gap: clamp(0px, 209 / 1280 * 100vw, 209px);
    padding-left: clamp(0px, 79 / 1280 * 100vw, 79px);
  }
}
@media screen and (min-width: 768px) {
  .lunch__info-item {
    text-align: left;
  }
}
@media screen and (min-width: 768px) {
  .lunch__info-item--price {
    width: clamp(0px, 328 / 1280 * 100vw, 328px);
  }
}
.lunch__item-name {
  margin-top: 14px;
  font-size: 15px;
  letter-spacing: 0.1em;
}
@media screen and (min-width: 768px) {
  .lunch__item-name {
    margin-top: clamp(0px, 12 / 1280 * 100vw, 12px);
    font-size: clamp(12px, 16 / 1280 * 100vw, 16px);
  }
}
.lunch__price {
  margin-top: 16px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end;
  gap: 4px;
  font-family: "Noto Sans JP", sans-serif;
  font-variant-numeric: lining-nums;
  line-height: 1.1;
}
@media screen and (min-width: 768px) {
  .lunch__price {
    margin-top: clamp(0px, 14 / 1280 * 100vw, 14px);
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end;
  }
}
.lunch__price-num {
  font-size: 38px;
  font-family: "Playfair Display", serif;
}
@media screen and (min-width: 768px) {
  .lunch__price-num {
    font-size: clamp(26px, 36 / 1280 * 100vw, 36px);
  }
}
.lunch__price-unit {
  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: start;
      -ms-flex-align: start;
          align-items: flex-start;
  font-size: 22px;
}
@media screen and (min-width: 768px) {
  .lunch__price-unit {
    font-size: clamp(16px, 20 / 1280 * 100vw, 20px);
  }
}
.lunch__price-unit small {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 0.55em;
  line-height: 1;
}
.lunch__place {
  margin-top: 14px;
  font-family: "Playfair Display", serif;
  font-size: 28px;
  letter-spacing: 0.04em;
}
@media screen and (min-width: 768px) {
  .lunch__place {
    margin-top: clamp(0px, 12 / 1280 * 100vw, 12px);
    font-size: clamp(18px, 24 / 1280 * 100vw, 24px);
  }
}
.lunch__slider {
  position: relative;
  margin: 56px 25px 0;
}
@media screen and (min-width: 768px) {
  .lunch__slider {
    margin: clamp(0px, 110 / 1280 * 100vw, 110px) auto 0;
  }
}
.lunch__frame {
  padding: 8px;
  border: 1px solid #bcc4a4;
  background: #fff;
}
@media screen and (min-width: 768px) {
  .lunch__frame {
    padding: clamp(0px, 10 / 1280 * 100vw, 10px);
  }
}
.lunch__frame .swiper {
  position: relative;
  aspect-ratio: 16/9;
}
.lunch__frame .swiper::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background: radial-gradient(circle at 0 0, #fff 14px, transparent 14.5px) left top/100% 100% no-repeat, radial-gradient(circle at 100% 0, #fff 14px, transparent 14.5px) left top/100% 100% no-repeat, radial-gradient(circle at 0 100%, #fff 14px, transparent 14.5px) left top/100% 100% no-repeat, radial-gradient(circle at 100% 100%, #fff 14px, transparent 14.5px) left top/100% 100% no-repeat;
}
@media screen and (min-width: 768px) {
  .lunch__frame .swiper::after {
    background: radial-gradient(circle at 0 0, #fff 20px, transparent 20.5px) left top/100% 100% no-repeat, radial-gradient(circle at 100% 0, #fff 20px, transparent 20.5px) left top/100% 100% no-repeat, radial-gradient(circle at 0 100%, #fff 20px, transparent 20.5px) left top/100% 100% no-repeat, radial-gradient(circle at 100% 100%, #fff 20px, transparent 20.5px) left top/100% 100% no-repeat;
  }
}
.lunch__frame .swiper-slide img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.lunch__deco {
  position: absolute;
  z-index: 3;
  height: auto;
  pointer-events: none;
}
.lunch__deco--leaf {
  top: -74px;
  right: -39px;
  width: 143px;
}
@media screen and (min-width: 768px) {
  .lunch__deco--leaf {
    top: calc(clamp(0px, 213 / 1280 * 100vw, 213px) * -1);
    right: calc(clamp(0px, 195 / 1280 * 100vw, 195px) * -1);
    width: clamp(0px, 396 / 1280 * 100vw, 396px);
  }
}
.lunch__deco--flower {
  bottom: -46px;
  left: -25px;
  width: 98px;
}
@media screen and (min-width: 768px) {
  .lunch__deco--flower {
    bottom: calc(clamp(0px, 132 / 1280 * 100vw, 132px) * -1);
    left: calc(clamp(0px, 102 / 1280 * 100vw, 102px) * -1);
    width: clamp(0px, 275 / 1280 * 100vw, 275px);
  }
}
.lunch__foot {
  position: relative;
  margin-top: 16px;
  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;
  min-height: 16px;
}
@media screen and (min-width: 768px) {
  .lunch__foot {
    margin-top: clamp(0px, 28 / 1280 * 100vw, 28px);
  }
}
.lunch__pagination {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 1px;
}
@media screen and (min-width: 768px) {
  .lunch__pagination {
    gap: 8px;
  }
}
.lunch__pagination .swiper-pagination-bullet {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #bcc4a4;
  opacity: 1;
  cursor: pointer;
}
@media screen and (min-width: 768px) {
  .lunch__pagination .swiper-pagination-bullet {
    width: clamp(6px, 9 / 1280 * 100vw, 9px);
    height: clamp(6px, 9 / 1280 * 100vw, 9px);
  }
}
.lunch__pagination .swiper-pagination-bullet-active {
  background: #889b5d;
}
.lunch__caption {
  position: absolute;
  right: 0;
  font-size: 8px;
  letter-spacing: 0.02em;
}
@media screen and (min-width: 768px) {
  .lunch__caption {
    font-size: clamp(10px, 13 / 1280 * 100vw, 13px);
  }
}

.lunch__menu {
  position: relative;
  margin: 33px 25px 0;
}
@media screen and (min-width: 768px) {
  .lunch__menu {
    margin: clamp(0px, 105 / 1280 * 100vw, 105px) auto 0;
  }
}
.lunch__menu-inner {
  position: relative;
  padding: 42px 0 38px;
  border: 1px solid #bcc4a4;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .lunch__menu-inner {
    padding: clamp(0px, 89 / 1280 * 100vw, 89px) 0 clamp(0px, 51 / 1280 * 100vw, 51px);
  }
}
.lunch__menu-title {
  font-family: "Playfair Display", serif;
  font-size: 18px;
  font-weight: 400;
  line-height: 1.4;
  letter-spacing: 0.08em;
}
@media screen and (min-width: 768px) {
  .lunch__menu-title {
    font-size: clamp(18px, 34 / 1280 * 100vw, 34px);
  }
}
.lunch__menu-title::after {
  content: "";
  display: block;
  width: 87px;
  height: 1px;
  margin: 15px auto 0;
  background: #bcc4a4;
}
@media screen and (min-width: 768px) {
  .lunch__menu-title::after {
    width: clamp(0px, 205 / 1280 * 100vw, 205px);
    margin-top: clamp(0px, 41 / 1280 * 100vw, 41px);
  }
}
.lunch__menu-list {
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin: 31px auto 0;
  text-align: left;
}
@media screen and (min-width: 768px) {
  .lunch__menu-list {
    margin-top: clamp(0px, 50 / 1280 * 100vw, 50px);
    padding-left: clamp(0px, 36 / 1280 * 100vw, 36px);
  }
}
.lunch__menu-row {
  display: grid;
  grid-template-columns: clamp(0px, 72 / 390 * 100vw, 72px) 1fr;
  -webkit-column-gap: clamp(0px, 22 / 390 * 100vw, 22px);
     -moz-column-gap: clamp(0px, 22 / 390 * 100vw, 22px);
          column-gap: clamp(0px, 22 / 390 * 100vw, 22px);
}
@media screen and (min-width: 768px) {
  .lunch__menu-row {
    grid-template-columns: clamp(0px, 100 / 1280 * 100vw, 100px) 1fr;
    -webkit-column-gap: clamp(0px, 72 / 1280 * 100vw, 72px);
       -moz-column-gap: clamp(0px, 72 / 1280 * 100vw, 72px);
            column-gap: clamp(0px, 72 / 1280 * 100vw, 72px);
  }
}
.lunch__menu-row + .lunch__menu-row {
  margin-top: 20px;
}
@media screen and (min-width: 768px) {
  .lunch__menu-row + .lunch__menu-row {
    margin-top: clamp(0px, 35 / 1280 * 100vw, 35px);
  }
}
.lunch__menu-row dt {
  font-family: "Playfair Display", serif;
  font-size: clamp(10px, 12 / 390 * 100vw, 12px);
  line-height: 18px;
  letter-spacing: 0.02em;
  text-align: right;
}
@media screen and (min-width: 768px) {
  .lunch__menu-row dt {
    font-size: clamp(12px, 20 / 1280 * 100vw, 20px);
    line-height: clamp(18px, 30 / 1280 * 100vw, 30px);
  }
}
.lunch__menu-row dd {
  font-size: clamp(9px, 11 / 390 * 100vw, 11px);
  line-height: 18px;
  letter-spacing: 0.05em;
}
@media screen and (min-width: 768px) {
  .lunch__menu-row dd {
    font-size: clamp(11px, 16 / 1280 * 100vw, 16px);
    line-height: clamp(18px, 30 / 1280 * 100vw, 30px);
  }
}
.lunch__menu-sm {
  font-size: 0.8em;
}
@media screen and (min-width: 768px) {
  .lunch__menu-sm {
    font-size: 1em;
  }
}
.lunch__menu-notes {
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin: 50px auto 0;
  text-align: left;
}
@media screen and (min-width: 768px) {
  .lunch__menu-notes {
    margin-top: clamp(0px, 49 / 1280 * 100vw, 49px);
  }
}
.lunch__menu-note {
  font-size: 10px;
  line-height: 1.6;
}
@media screen and (min-width: 768px) {
  .lunch__menu-note {
    font-size: clamp(10px, 12 / 1280 * 100vw, 12px);
    line-height: 1.9;
  }
}
.lunch__menu-note + .lunch__menu-note {
  margin-top: 8px;
}
@media screen and (min-width: 768px) {
  .lunch__menu-note + .lunch__menu-note {
    margin-top: 0;
  }
}
.lunch__menu-deco {
  position: absolute;
  z-index: 2;
  height: auto;
  pointer-events: none;
}
.lunch__menu-deco--top {
  top: -17px;
  left: -10px;
  width: 107px;
}
@media screen and (min-width: 768px) {
  .lunch__menu-deco--top {
    top: clamp(0px, 55 / 1280 * 100vw, 55px);
    left: calc(clamp(0px, 52 / 1280 * 100vw, 52px) * -1);
    width: clamp(0px, 250 / 1280 * 100vw, 250px);
  }
}
.lunch__menu-deco--bottom {
  right: -5px;
  bottom: -61px;
  width: 122px;
}
@media screen and (min-width: 768px) {
  .lunch__menu-deco--bottom {
    right: calc(clamp(0px, 73 / 1280 * 100vw, 73px) * -1);
    bottom: calc(clamp(0px, 84 / 1280 * 100vw, 84px) * -1);
    width: clamp(0px, 288 / 1280 * 100vw, 288px);
  }
}
.lunch__reserve {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 10px;
  width: 275px;
  max-width: 100%;
  height: 44px;
  margin: 24px auto 0;
  background: #889b5d;
  color: #fff;
  font-size: 14px;
  letter-spacing: 0.1em;
  -webkit-transition: opacity 0.3s;
  transition: opacity 0.3s;
}
@media screen and (min-width: 768px) {
  .lunch__reserve {
    gap: clamp(0px, 14 / 1280 * 100vw, 14px);
    width: clamp(0px, 640 / 1280 * 100vw, 640px);
    height: clamp(0px, 72 / 1280 * 100vw, 72px);
    margin-top: clamp(0px, 78 / 1280 * 100vw, 78px);
    font-size: clamp(16px, 30 / 1280 * 100vw, 30px);
  }
}
.lunch__reserve:hover {
  opacity: 0.8;
}
.lunch__reserve-arrow {
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 5px 0 5px 8px;
  border-color: transparent transparent transparent #fff;
}
@media screen and (min-width: 768px) {
  .lunch__reserve-arrow {
    border-width: clamp(0px, 8 / 1280 * 100vw, 8px) 0 clamp(0px, 8 / 1280 * 100vw, 8px) clamp(0px, 13 / 1280 * 100vw, 13px);
  }
}

.dinner {
  position: relative;
  overflow-x: clip;
  background: #889b5d;
  color: #fff;
  font-family: "Noto Sans JP", sans-serif;
  text-align: center;
  padding: 54px 0 48px;
}
@media screen and (min-width: 768px) {
  .dinner {
    padding: clamp(0px, 146 / 1280 * 100vw, 146px) 0 clamp(0px, 143 / 1280 * 100vw, 143px);
  }
}
.dinner__inner {
  position: relative;
  z-index: 1;
  max-width: 960px;
  margin: 0 auto;
}
.dinner__title {
  width: 340px;
  max-width: 100%;
  margin: 0 auto;
}
@media screen and (min-width: 768px) {
  .dinner__title {
    position: relative;
    left: 50%;
    width: clamp(0px, 970 / 1280 * 100vw, 970px);
    max-width: none;
    -webkit-transform: translateX(-50%);
            transform: translateX(-50%);
  }
}
.dinner__title img {
  display: block;
  width: 100%;
  height: auto;
}
.dinner__label {
  display: inline-block;
  text-align: center;
  min-width: 97px;
  padding: 2px 8px;
  background: #fff;
  color: #889b5d;
  font-size: 14px;
  line-height: 1.6;
  letter-spacing: 0.1em;
}
@media screen and (min-width: 768px) {
  .dinner__label {
    min-width: clamp(0px, 95 / 1280 * 100vw, 95px);
    font-size: clamp(11px, 14 / 1280 * 100vw, 14px);
  }
}
.dinner__label--en {
  font-family: "Noto Sans JP", sans-serif;
}
.dinner__date {
  margin-top: 60px;
}
@media screen and (min-width: 768px) {
  .dinner__date {
    margin-top: clamp(0px, 66 / 1280 * 100vw, 66px);
  }
}
.dinner__day {
  margin-top: 25px;
  font-family: "Playfair Display", serif;
  font-variant-numeric: lining-nums;
  font-size: 34px;
  line-height: 1.25;
}
@media screen and (min-width: 768px) {
  .dinner__day {
    margin-top: clamp(0px, 13 / 1280 * 100vw, 13px);
    font-size: clamp(24px, 40 / 1280 * 100vw, 40px);
    line-height: 1.4;
  }
}
.dinner__day--second {
  margin-top: 32px;
}
@media screen and (min-width: 768px) {
  .dinner__day--second {
    margin-top: clamp(0px, 25 / 1280 * 100vw, 25px);
  }
}
.dinner__wd, .dinner__dot {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 0.6em;
}
.dinner__dot {
  margin: 0 0.1em;
}
.dinner__time {
  margin-top: 30px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  gap: 36px;
  font-family: "Noto Sans JP", sans-serif;
  font-variant-numeric: lining-nums;
  font-size: 22px;
  line-height: 39px;
  letter-spacing: 0.04em;
}
@media screen and (min-width: 768px) {
  .dinner__time {
    margin-top: clamp(0px, 25 / 1280 * 100vw, 25px);
    gap: clamp(0px, 7 / 1280 * 100vw, 7px);
    font-size: clamp(16px, 24 / 1280 * 100vw, 24px);
    line-height: clamp(24px, 34 / 1280 * 100vw, 34px);
  }
}
.dinner__time-label {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 0.65em;
}
.dinner__time-list {
  text-align: left;
  font-family: "Playfair Display", serif;
}
.dinner__line {
  width: 292px;
  max-width: 100%;
  height: 1px;
  margin: 28px auto 0;
  background: rgba(255, 255, 255, 0.7);
  border: 0;
}
@media screen and (min-width: 768px) {
  .dinner__line {
    width: clamp(0px, 385 / 1280 * 100vw, 385px);
    margin-top: clamp(0px, 28 / 1280 * 100vw, 28px);
  }
}
.dinner__part {
  margin-top: 24px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  font-family: "Noto Sans JP", sans-serif;
  font-variant-numeric: lining-nums;
  font-size: 22px;
}
@media screen and (min-width: 768px) {
  .dinner__part {
    margin-top: clamp(0px, 23 / 1280 * 100vw, 23px);
    font-size: clamp(16px, 24 / 1280 * 100vw, 24px);
  }
}
.dinner__part-label {
  margin-right: 37px;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 14px;
  line-height: 44px;
  letter-spacing: 0.05em;
}
@media screen and (min-width: 768px) {
  .dinner__part-label {
    margin-right: clamp(0px, 48 / 1280 * 100vw, 48px);
    font-size: clamp(11px, 14 / 1280 * 100vw, 14px);
    line-height: clamp(24px, 34 / 1280 * 100vw, 34px);
  }
}
.dinner__part-list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}
@media screen and (min-width: 768px) {
  .dinner__part-list {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    gap: clamp(0px, 21 / 1280 * 100vw, 21px);
  }
}
.dinner__part-list li {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 9px;
  height: 44px;
  font-family: "Playfair Display", serif;
}
@media screen and (min-width: 768px) {
  .dinner__part-list li {
    gap: clamp(0px, 8 / 1280 * 100vw, 8px);
    height: clamp(24px, 34 / 1280 * 100vw, 34px);
  }
}
.dinner__part-no {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 64px;
  height: 20px;
  border: 1px solid rgba(255, 255, 255, 0.8);
  font-family: "Noto Sans JP", sans-serif;
  font-size: 12px;
  line-height: 1;
}
@media screen and (min-width: 768px) {
  .dinner__part-no {
    width: clamp(0px, 64 / 1280 * 100vw, 64px);
    height: clamp(0px, 18 / 1280 * 100vw, 18px);
    font-size: clamp(10px, 12 / 1280 * 100vw, 12px);
  }
}
.dinner__info {
  margin-top: 43px;
  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;
  gap: 36px;
}
@media screen and (min-width: 768px) {
  .dinner__info {
    margin-top: clamp(0px, 44 / 1280 * 100vw, 44px);
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
    gap: clamp(0px, 200 / 1280 * 100vw, 200px);
    padding-left: clamp(0px, 78 / 1280 * 100vw, 78px);
  }
}
@media screen and (min-width: 768px) {
  .dinner__info-item {
    text-align: left;
  }
}
@media screen and (min-width: 768px) {
  .dinner__info-item--price {
    width: clamp(0px, 314 / 1280 * 100vw, 314px);
  }
}
.dinner__item-name {
  margin-top: 14px;
  font-size: 13px;
  letter-spacing: 0.1em;
}
@media screen and (min-width: 768px) {
  .dinner__item-name {
    margin-top: clamp(0px, 14 / 1280 * 100vw, 14px);
    font-size: clamp(12px, 16 / 1280 * 100vw, 16px);
  }
}
.dinner__price {
  margin-top: 16px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end;
  gap: 4px;
  font-family: "Noto Sans JP", sans-serif;
  font-variant-numeric: lining-nums;
  line-height: 1.1;
}
@media screen and (min-width: 768px) {
  .dinner__price {
    margin-top: clamp(0px, 16 / 1280 * 100vw, 16px);
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end;
  }
}
.dinner__price + .dinner__price {
  margin-top: 12px;
}
@media screen and (min-width: 768px) {
  .dinner__price + .dinner__price {
    margin-top: clamp(0px, 28 / 1280 * 100vw, 28px);
  }
}
.dinner__price-num {
  font-size: 38px;
  font-family: "Playfair Display", serif;
}
@media screen and (min-width: 768px) {
  .dinner__price-num {
    font-size: clamp(26px, 36 / 1280 * 100vw, 36px);
  }
}
.dinner__price-unit {
  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: start;
      -ms-flex-align: start;
          align-items: flex-start;
  font-size: 22px;
}
@media screen and (min-width: 768px) {
  .dinner__price-unit {
    font-size: clamp(16px, 20 / 1280 * 100vw, 20px);
  }
}
.dinner__price-unit small {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 0.55em;
  line-height: 1;
}
.dinner__place {
  margin-top: 14px;
  font-family: "Playfair Display", serif;
  font-size: 25px;
  letter-spacing: 0.04em;
}
@media screen and (min-width: 768px) {
  .dinner__place {
    margin-top: clamp(0px, 14 / 1280 * 100vw, 14px);
    font-size: clamp(18px, 24 / 1280 * 100vw, 24px);
  }
}
.dinner__place-note {
  margin-top: 6px;
  font-size: 9px;
}
@media screen and (min-width: 768px) {
  .dinner__place-note {
    font-size: clamp(10px, 12 / 1280 * 100vw, 12px);
    text-align: right;
  }
}

.dinner__slider {
  position: relative;
  margin: 40px 25px 0;
}
@media screen and (min-width: 768px) {
  .dinner__slider {
    margin: clamp(0px, 95 / 1280 * 100vw, 95px) auto 0;
  }
}
.dinner__frame {
  padding: 8px;
  border: 1px solid rgba(255, 255, 255, 0.8);
}
@media screen and (min-width: 768px) {
  .dinner__frame {
    padding: clamp(0px, 10 / 1280 * 100vw, 10px);
  }
}
.dinner__frame .swiper {
  position: relative;
  aspect-ratio: 16/9;
}
.dinner__frame .swiper::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background: radial-gradient(circle at 0 0, #889b5d 14px, transparent 14.5px) left top/100% 100% no-repeat, radial-gradient(circle at 100% 0, #889b5d 14px, transparent 14.5px) left top/100% 100% no-repeat, radial-gradient(circle at 0 100%, #889b5d 14px, transparent 14.5px) left top/100% 100% no-repeat, radial-gradient(circle at 100% 100%, #889b5d 14px, transparent 14.5px) left top/100% 100% no-repeat;
}
@media screen and (min-width: 768px) {
  .dinner__frame .swiper::after {
    background: radial-gradient(circle at 0 0, #889b5d 20px, transparent 20.5px) left top/100% 100% no-repeat, radial-gradient(circle at 100% 0, #889b5d 20px, transparent 20.5px) left top/100% 100% no-repeat, radial-gradient(circle at 0 100%, #889b5d 20px, transparent 20.5px) left top/100% 100% no-repeat, radial-gradient(circle at 100% 100%, #889b5d 20px, transparent 20.5px) left top/100% 100% no-repeat;
  }
}
.dinner__frame .swiper-slide img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.dinner__leaf, .dinner__holly {
  position: absolute;
  z-index: 3;
  height: auto;
  pointer-events: none;
}
.dinner__leaf {
  top: -83px;
  left: calc(max(50% - 50vw, 50% - 640px) - 8px);
  width: 131px;
}
@media screen and (min-width: 768px) {
  .dinner__leaf {
    top: calc(clamp(0px, 686 / 1280 * 100vw, 686px) * -1);
    left: calc(max(50% - 50vw, 50% - 640px) - clamp(0px, 31 / 1280 * 100vw, 31px));
    width: clamp(0px, 435 / 1280 * 100vw, 435px);
  }
}
.dinner__holly {
  right: -18px;
  bottom: -36px;
  width: 72px;
}
@media screen and (min-width: 768px) {
  .dinner__holly {
    right: calc(clamp(0px, 112 / 1280 * 100vw, 112px) * -1);
    bottom: calc(clamp(0px, 116 / 1280 * 100vw, 116px) * -1);
    width: clamp(0px, 227 / 1280 * 100vw, 227px);
  }
}
.dinner__foot {
  position: relative;
  margin-top: 16px;
  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;
  min-height: 16px;
}
@media screen and (min-width: 768px) {
  .dinner__foot {
    margin-top: clamp(0px, 28 / 1280 * 100vw, 28px);
  }
}
.dinner__pagination {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 1px;
}
@media screen and (min-width: 768px) {
  .dinner__pagination {
    gap: 8px;
  }
}
.dinner__pagination .swiper-pagination-bullet {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.5);
  opacity: 1;
  cursor: pointer;
}
@media screen and (min-width: 768px) {
  .dinner__pagination .swiper-pagination-bullet {
    width: clamp(6px, 9 / 1280 * 100vw, 9px);
    height: clamp(6px, 9 / 1280 * 100vw, 9px);
  }
}
.dinner__pagination .swiper-pagination-bullet-active {
  background: #fff;
}
.dinner__caption {
  position: absolute;
  left: 0;
  font-size: 8px;
  letter-spacing: 0.02em;
}
@media screen and (min-width: 768px) {
  .dinner__caption {
    left: auto;
    right: clamp(0px, 121 / 1280 * 100vw, 121px);
    font-size: clamp(10px, 13 / 1280 * 100vw, 13px);
  }
}

.dinner__menu {
  position: relative;
  margin: 34px 25px 0;
}
@media screen and (min-width: 768px) {
  .dinner__menu {
    margin: clamp(0px, 105 / 1280 * 100vw, 105px) auto 0;
  }
}
.dinner__menu-inner {
  position: relative;
  padding: 38px 0 25px;
  border: 1px solid rgba(255, 255, 255, 0.6);
  text-align: center;
}
@media screen and (min-width: 768px) {
  .dinner__menu-inner {
    padding: clamp(0px, 81 / 1280 * 100vw, 81px) 0 clamp(0px, 40 / 1280 * 100vw, 40px);
  }
}
.dinner__menu-title {
  font-family: "Playfair Display", serif;
  font-size: 18px;
  font-weight: 400;
  line-height: 1.4;
  letter-spacing: 0.08em;
}
@media screen and (min-width: 768px) {
  .dinner__menu-title {
    font-size: clamp(18px, 34 / 1280 * 100vw, 34px);
  }
}
.dinner__menu-title::after {
  content: "";
  display: block;
  width: 87px;
  height: 1px;
  margin: 15px auto 0;
  background: rgba(255, 255, 255, 0.6);
}
@media screen and (min-width: 768px) {
  .dinner__menu-title::after {
    width: clamp(0px, 205 / 1280 * 100vw, 205px);
    margin-top: clamp(0px, 41 / 1280 * 100vw, 41px);
  }
}
.dinner__menu-lead {
  margin-top: 17px;
  font-size: clamp(9px, 11 / 390 * 100vw, 11px);
  line-height: 1.6;
  letter-spacing: 0.02em;
}
@media screen and (min-width: 768px) {
  .dinner__menu-lead {
    margin-top: clamp(0px, 74 / 1280 * 100vw, 74px);
    font-size: clamp(12px, 18 / 1280 * 100vw, 18px);
  }
}
.dinner__menu-list {
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin: 26px auto 0;
  text-align: left;
}
@media screen and (min-width: 768px) {
  .dinner__menu-list {
    margin-top: clamp(0px, 46 / 1280 * 100vw, 46px);
  }
}
.dinner__menu-row {
  display: grid;
  grid-template-columns: clamp(0px, 80 / 390 * 100vw, 80px) 1fr;
  -webkit-column-gap: clamp(0px, 25 / 390 * 100vw, 25px);
     -moz-column-gap: clamp(0px, 25 / 390 * 100vw, 25px);
          column-gap: clamp(0px, 25 / 390 * 100vw, 25px);
}
@media screen and (min-width: 768px) {
  .dinner__menu-row {
    grid-template-columns: clamp(0px, 150 / 1280 * 100vw, 150px) 1fr;
    -webkit-column-gap: clamp(0px, 71 / 1280 * 100vw, 71px);
       -moz-column-gap: clamp(0px, 71 / 1280 * 100vw, 71px);
            column-gap: clamp(0px, 71 / 1280 * 100vw, 71px);
  }
}
.dinner__menu-row + .dinner__menu-row {
  margin-top: 25px;
}
@media screen and (min-width: 768px) {
  .dinner__menu-row + .dinner__menu-row {
    margin-top: clamp(0px, 49 / 1280 * 100vw, 49px);
  }
}
.dinner__menu-row dt {
  font-family: "Playfair Display", serif;
  font-size: clamp(9px, 11 / 390 * 100vw, 11px);
  line-height: 18px;
  letter-spacing: 0.02em;
  text-align: right;
}
@media screen and (min-width: 768px) {
  .dinner__menu-row dt {
    font-size: clamp(12px, 20 / 1280 * 100vw, 20px);
    line-height: clamp(18px, 30 / 1280 * 100vw, 30px);
  }
}
.dinner__menu-row dd {
  font-size: clamp(9px, 10 / 390 * 100vw, 10px);
  line-height: 18px;
  letter-spacing: 0.02em;
}
@media screen and (min-width: 768px) {
  .dinner__menu-row dd {
    font-size: clamp(11px, 16 / 1280 * 100vw, 16px);
    line-height: clamp(18px, 30 / 1280 * 100vw, 30px);
  }
}
.dinner__menu-sm {
  font-size: 0.8em;
}
@media screen and (min-width: 768px) {
  .dinner__menu-sm {
    font-size: 1em;
  }
}
.dinner__menu-viande {
  display: grid;
  grid-template-columns: -webkit-max-content 1fr;
  grid-template-columns: max-content 1fr;
}
.dinner__menu-or {
  grid-column: 2;
  font-size: 0.8em;
  font-weight: 700;
}
.dinner__menu-line {
  width: 103px;
  height: 1px;
  margin: 16px auto 0;
  background: rgba(255, 255, 255, 0.6);
  border: 0;
}
@media screen and (min-width: 768px) {
  .dinner__menu-line {
    width: clamp(0px, 204 / 1280 * 100vw, 204px);
    margin-top: clamp(0px, 88 / 1280 * 100vw, 88px);
  }
}
.dinner__menu-price-head {
  margin-top: 20px;
  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;
  gap: 9px;
  font-size: clamp(9px, 10 / 390 * 100vw, 10px);
  letter-spacing: 0.1em;
}
@media screen and (min-width: 768px) {
  .dinner__menu-price-head {
    margin-top: clamp(0px, 57 / 1280 * 100vw, 57px);
    gap: clamp(0px, 20 / 1280 * 100vw, 20px);
    font-size: clamp(12px, 16 / 1280 * 100vw, 16px);
  }
}
.dinner__label--menu {
  min-width: 63px;
  padding: 1px 6px;
  font-size: 10px;
  line-height: 1.5;
}
@media screen and (min-width: 768px) {
  .dinner__label--menu {
    min-width: clamp(0px, 96 / 1280 * 100vw, 96px);
    padding: 2px 8px;
    font-size: clamp(11px, 14 / 1280 * 100vw, 14px);
    line-height: 1.6;
  }
}
.dinner__menu-price-list {
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin: 20px auto 0;
  display: grid;
  grid-template-columns: auto auto;
  -webkit-column-gap: 31px;
     -moz-column-gap: 31px;
          column-gap: 31px;
  row-gap: 12px;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  text-align: left;
}
@media screen and (min-width: 768px) {
  .dinner__menu-price-list {
    margin-top: clamp(0px, 37 / 1280 * 100vw, 37px);
    -webkit-column-gap: clamp(0px, 51 / 1280 * 100vw, 51px);
       -moz-column-gap: clamp(0px, 51 / 1280 * 100vw, 51px);
            column-gap: clamp(0px, 51 / 1280 * 100vw, 51px);
    row-gap: clamp(0px, 27 / 1280 * 100vw, 27px);
  }
}
.dinner__menu-price-list dt {
  font-size: clamp(9px, 10 / 390 * 100vw, 10px);
  letter-spacing: 0.1em;
}
@media screen and (min-width: 768px) {
  .dinner__menu-price-list dt {
    font-size: clamp(12px, 17 / 1280 * 100vw, 17px);
  }
}
.dinner__menu-price-list dd {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end;
  gap: 2px;
  font-family: "Playfair Display", serif;
  font-variant-numeric: lining-nums;
  line-height: 1.1;
}
.dinner__menu-price-num {
  font-size: clamp(16px, 20 / 390 * 100vw, 20px);
}
@media screen and (min-width: 768px) {
  .dinner__menu-price-num {
    font-size: clamp(26px, 36 / 1280 * 100vw, 36px);
  }
}
.dinner__menu-price-unit {
  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: start;
      -ms-flex-align: start;
          align-items: flex-start;
  font-size: clamp(9px, 10 / 390 * 100vw, 10px);
}
@media screen and (min-width: 768px) {
  .dinner__menu-price-unit {
    font-size: clamp(14px, 20 / 1280 * 100vw, 20px);
  }
}
.dinner__menu-price-unit small {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 0.55em;
  line-height: 1;
}
.dinner__menu-note {
  margin-top: 32px;
  font-size: 9px;
  line-height: 1.6;
}
@media screen and (min-width: 768px) {
  .dinner__menu-note {
    margin-top: clamp(0px, 59 / 1280 * 100vw, 59px);
    font-size: clamp(10px, 12 / 1280 * 100vw, 12px);
  }
}
.dinner__menu-deco {
  position: absolute;
  z-index: 2;
  height: auto;
  pointer-events: none;
}
.dinner__menu-deco--top {
  top: -21px;
  right: -7px;
  width: 76px;
}
@media screen and (min-width: 768px) {
  .dinner__menu-deco--top {
    top: clamp(0px, 64 / 1280 * 100vw, 64px);
    right: calc(clamp(0px, 71 / 1280 * 100vw, 71px) * -1);
    width: clamp(0px, 246 / 1280 * 100vw, 246px);
  }
}
.dinner__menu-deco--bottom {
  bottom: 51px;
  left: 15px;
  width: 89px;
}
@media screen and (min-width: 768px) {
  .dinner__menu-deco--bottom {
    bottom: clamp(0px, 97 / 1280 * 100vw, 97px);
    left: calc(clamp(0px, 93 / 1280 * 100vw, 93px) * -1);
    width: clamp(0px, 286 / 1280 * 100vw, 286px);
  }
}
.dinner__reserve {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 10px;
  width: 275px;
  max-width: 100%;
  height: 44px;
  margin: 22px auto 0;
  background: #fff;
  color: #889b5d;
  font-size: 14px;
  letter-spacing: 0.1em;
  -webkit-transition: opacity 0.3s;
  transition: opacity 0.3s;
}
@media screen and (min-width: 768px) {
  .dinner__reserve {
    gap: clamp(0px, 14 / 1280 * 100vw, 14px);
    width: clamp(0px, 640 / 1280 * 100vw, 640px);
    height: clamp(0px, 72 / 1280 * 100vw, 72px);
    margin-top: clamp(0px, 78 / 1280 * 100vw, 78px);
    font-size: clamp(16px, 30 / 1280 * 100vw, 30px);
  }
}
.dinner__reserve:hover {
  opacity: 0.85;
}
.dinner__reserve-arrow {
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 5px 0 5px 8px;
  border-color: transparent transparent transparent #889b5d;
}
@media screen and (min-width: 768px) {
  .dinner__reserve-arrow {
    border-width: clamp(0px, 8 / 1280 * 100vw, 8px) 0 clamp(0px, 8 / 1280 * 100vw, 8px) clamp(0px, 13 / 1280 * 100vw, 13px);
  }
}

.dinner__message {
  position: relative;
  margin-top: 68px;
  display: grid;
  grid-template-columns: clamp(0px, 116 / 390 * 100vw, 116px) 1fr;
  grid-template-areas: "title title" "photo profile" "text text";
  -webkit-column-gap: clamp(0px, 27 / 390 * 100vw, 27px);
     -moz-column-gap: clamp(0px, 27 / 390 * 100vw, 27px);
          column-gap: clamp(0px, 27 / 390 * 100vw, 27px);
  padding-left: clamp(0px, 61 / 390 * 100vw, 61px);
  text-align: left;
}
@media screen and (min-width: 768px) {
  .dinner__message {
    margin-top: clamp(0px, 142 / 1280 * 100vw, 142px);
    grid-template-columns: clamp(0px, 185 / 1280 * 100vw, 185px) 1fr;
    grid-template-rows: auto auto 1fr;
    grid-template-areas: "photo title" "photo profile" "photo text";
    -webkit-column-gap: clamp(0px, 56 / 1280 * 100vw, 56px);
       -moz-column-gap: clamp(0px, 56 / 1280 * 100vw, 56px);
            column-gap: clamp(0px, 56 / 1280 * 100vw, 56px);
    padding-left: clamp(0px, 161 / 1280 * 100vw, 161px);
  }
}
.dinner__message-title {
  grid-area: title;
  margin-left: calc(clamp(0px, 61 / 390 * 100vw, 61px) * -1);
  margin-bottom: 52px;
  font-family: "Playfair Display", serif;
  font-size: clamp(14px, 17 / 390 * 100vw, 17px);
  font-weight: 400;
  line-height: 1.4;
  letter-spacing: 0.08em;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .dinner__message-title {
    margin: clamp(0px, 22 / 1280 * 100vw, 22px) 0 0;
    font-size: clamp(22px, 36 / 1280 * 100vw, 36px);
    letter-spacing: 0.05em;
    text-align: left;
  }
}
.dinner__message-photo {
  grid-area: photo;
  aspect-ratio: 116/193;
}
@media screen and (min-width: 768px) {
  .dinner__message-photo {
    aspect-ratio: 185/328;
  }
}
.dinner__message-photo img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.dinner__message-profile {
  grid-area: profile;
  align-self: center;
}
@media screen and (min-width: 768px) {
  .dinner__message-profile {
    -ms-flex-item-align: start;
        align-self: start;
    margin-top: clamp(0px, 15 / 1280 * 100vw, 15px);
  }
}
.dinner__message-hotel, .dinner__message-role {
  font-size: clamp(11px, 12 / 390 * 100vw, 12px);
  line-height: 1.9;
  letter-spacing: 0.05em;
}
@media screen and (min-width: 768px) {
  .dinner__message-hotel, .dinner__message-role {
    font-size: clamp(10px, 12 / 1280 * 100vw, 12px);
    line-height: 1.9;
    letter-spacing: 0.02em;
  }
}
.dinner__message-name {
  margin-top: 14px;
  font-size: clamp(14px, 18 / 390 * 100vw, 18px);
  line-height: 1.5;
  letter-spacing: 0.1em;
}
@media screen and (min-width: 768px) {
  .dinner__message-name {
    margin-top: clamp(0px, 8 / 1280 * 100vw, 8px);
    font-size: clamp(14px, 18 / 1280 * 100vw, 18px);
  }
}
.dinner__message-text {
  grid-area: text;
  margin-top: 17px;
  padding: 10px 0 10px 15px;
  border-left: 1px solid rgba(255, 255, 255, 0.9);
  font-size: clamp(9px, 10 / 390 * 100vw, 10px);
  line-height: 1.8;
}
@media screen and (min-width: 768px) {
  .dinner__message-text {
    -ms-flex-item-align: start;
        align-self: start;
    margin-top: clamp(0px, 25 / 1280 * 100vw, 25px);
    padding: clamp(0px, 14 / 1280 * 100vw, 14px) 0 clamp(0px, 14 / 1280 * 100vw, 14px) clamp(0px, 21 / 1280 * 100vw, 21px);
    font-size: clamp(11px, 13 / 1280 * 100vw, 13px);
    line-height: 2;
  }
}
.dinner__message-deco {
  position: absolute;
  z-index: 2;
  height: auto;
  pointer-events: none;
}
.dinner__message-deco--top {
  top: -43px;
  right: max(50% - 50vw, 50% - 640px);
  width: 115px;
}
@media screen and (min-width: 768px) {
  .dinner__message-deco--top {
    top: calc(clamp(0px, 185 / 1280 * 100vw, 185px) * -1);
    width: clamp(0px, 359 / 1280 * 100vw, 359px);
  }
}
.dinner__message-deco--bottom {
  bottom: -86px;
  left: max(50% - 50vw, 50% - 640px);
  width: 75px;
}
@media screen and (min-width: 768px) {
  .dinner__message-deco--bottom {
    bottom: calc(clamp(0px, 183 / 1280 * 100vw, 183px) * -1);
    width: clamp(0px, 254 / 1280 * 100vw, 254px);
  }
}

.stay {
  position: relative;
  overflow-x: clip;
  background: #fff;
  color: #889b5d;
  font-family: "Noto Sans JP", sans-serif;
  text-align: center;
  padding: 62px 0 53px;
}
@media screen and (min-width: 768px) {
  .stay {
    padding: clamp(0px, 160 / 1280 * 100vw, 160px) 0 clamp(0px, 173 / 1280 * 100vw, 173px);
  }
}
.stay__inner {
  max-width: 960px;
  margin: 0 auto;
}
.stay__title {
  width: 340px;
  max-width: 100%;
  margin: 0 auto;
}
@media screen and (min-width: 768px) {
  .stay__title {
    position: relative;
    left: 50%;
    width: clamp(0px, 985 / 1280 * 100vw, 985px);
    max-width: none;
    -webkit-transform: translateX(-50%);
            transform: translateX(-50%);
  }
}
.stay__title img {
  display: block;
  width: 100%;
  height: auto;
}
.stay__box {
  position: relative;
  margin: 25px 27px 0;
  padding: 49px clamp(0px, 25 / 390 * 100vw, 25px) 53px;
  border: 2px solid #889b5d;
}
@media screen and (min-width: 768px) {
  .stay__box {
    margin: clamp(0px, 100 / 1280 * 100vw, 100px) auto 0;
    padding: clamp(0px, 80 / 1280 * 100vw, 80px) 0 clamp(0px, 230 / 1280 * 100vw, 230px);
    border-width: 1px;
    border-color: #cdd2c0;
  }
}
.stay__heading {
  font-size: clamp(10px, 14 / 390 * 100vw, 14px);
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.12em;
}
@media screen and (min-width: 768px) {
  .stay__heading {
    font-size: clamp(16px, 30 / 1280 * 100vw, 30px);
    letter-spacing: 0.2em;
  }
}
.stay__slider {
  margin-top: 21px;
}
@media screen and (min-width: 768px) {
  .stay__slider {
    margin: clamp(0px, 75 / 1280 * 100vw, 75px) auto 0;
    width: clamp(0px, 787 / 1280 * 100vw, 787px);
  }
}
.stay__slider .swiper {
  aspect-ratio: 284/183;
}
@media screen and (min-width: 768px) {
  .stay__slider .swiper {
    aspect-ratio: 787/344;
    overflow: visible;
  }
}
@media screen and (min-width: 768px) {
  .stay__slider .swiper-wrapper {
    display: block;
    position: relative;
    height: 100%;
    -webkit-transform: none;
            transform: none;
  }
}
@media screen and (min-width: 768px) {
  .stay__slider .swiper-slide {
    position: absolute;
    overflow: hidden;
    min-height: 0;
    cursor: pointer;
    -webkit-transition: left 0.8s ease, top 0.8s ease, width 0.8s ease, height 0.8s ease;
    transition: left 0.8s ease, top 0.8s ease, width 0.8s ease, height 0.8s ease;
  }
  .stay__slider .swiper-slide.is-main {
    top: 0;
    left: 0;
    width: 68.1067%;
    height: 100%;
    cursor: default;
  }
  .stay__slider .swiper-slide.is-sub1, .stay__slider .swiper-slide.is-sub2 {
    left: 69.1232%;
    width: 30.8767%;
    height: 48.8372%;
  }
  .stay__slider .swiper-slide.is-sub1 {
    top: 0;
  }
  .stay__slider .swiper-slide.is-sub2 {
    top: 51.1628%;
  }
}
.stay__slider .swiper-slide img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.stay__pagination {
  margin-top: 12px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 1px;
}
@media screen and (min-width: 768px) {
  .stay__pagination {
    margin-top: clamp(0px, 21 / 1280 * 100vw, 21px);
    gap: clamp(0px, 12 / 1280 * 100vw, 12px);
  }
}
.stay__pagination .swiper-pagination-bullet {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #c4cdaa;
  opacity: 1;
  cursor: pointer;
}
@media screen and (min-width: 768px) {
  .stay__pagination .swiper-pagination-bullet {
    width: clamp(6px, 8 / 1280 * 100vw, 8px);
    height: clamp(6px, 8 / 1280 * 100vw, 8px);
  }
}
.stay__pagination .swiper-pagination-bullet-active {
  background: #889b5d;
}
.stay__text {
  margin-top: 22px;
  font-size: clamp(9px, 10 / 390 * 100vw, 10px);
  font-weight: 500;
  line-height: 2.15;
  letter-spacing: 0.05em;
}
@media screen and (min-width: 768px) {
  .stay__text {
    margin-top: clamp(0px, 82 / 1280 * 100vw, 82px);
    font-size: clamp(12px, 18 / 1280 * 100vw, 18px);
    line-height: 2.2;
  }
}
.stay__text + .stay__text {
  margin-top: 22px;
}
@media screen and (min-width: 768px) {
  .stay__text + .stay__text {
    margin-top: clamp(0px, 40 / 1280 * 100vw, 40px);
  }
}
.stay__period {
  margin-top: 41px;
  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;
  gap: 14px;
}
@media screen and (min-width: 768px) {
  .stay__period {
    margin-top: clamp(0px, 57 / 1280 * 100vw, 57px);
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    gap: clamp(0px, 16 / 1280 * 100vw, 16px);
  }
}
.stay__label {
  display: inline-block;
  min-width: 95px;
  padding: 2px 8px;
  background: #889b5d;
  color: #fff;
  font-size: 14px;
  line-height: 1.6;
  letter-spacing: 0.1em;
}
@media screen and (min-width: 768px) {
  .stay__label {
    min-width: clamp(0px, 96 / 1280 * 100vw, 96px);
    font-size: clamp(10px, 14 / 1280 * 100vw, 14px);
  }
}
.stay__dates {
  font-family: "Playfair Display", serif;
  font-variant-numeric: lining-nums;
  font-size: 23px;
  line-height: 1.4;
}
@media screen and (min-width: 768px) {
  .stay__dates {
    font-size: clamp(16px, 32 / 1280 * 100vw, 32px);
  }
}
.stay__wd, .stay__dot {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 0.6em;
}
.stay__dot {
  margin: 0 0.15em;
}
.stay__reserve {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 10px;
  width: 276px;
  max-width: 100%;
  height: 44px;
  margin: 25px auto 0;
  background: #889b5d;
  color: #fff;
  font-size: 14px;
  letter-spacing: 0.1em;
  -webkit-transition: opacity 0.3s;
  transition: opacity 0.3s;
}
@media screen and (min-width: 768px) {
  .stay__reserve {
    gap: clamp(0px, 14 / 1280 * 100vw, 14px);
    width: clamp(0px, 640 / 1280 * 100vw, 640px);
    height: clamp(0px, 72 / 1280 * 100vw, 72px);
    margin-top: calc(clamp(0px, 172 / 1280 * 100vw, 172px) * -1);
    font-size: clamp(16px, 30 / 1280 * 100vw, 30px);
  }
}
.stay__reserve:hover {
  opacity: 0.8;
}
.stay__reserve-arrow {
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 5px 0 5px 8px;
  border-color: transparent transparent transparent #fff;
}
@media screen and (min-width: 768px) {
  .stay__reserve-arrow {
    border-width: clamp(0px, 8 / 1280 * 100vw, 8px) 0 clamp(0px, 8 / 1280 * 100vw, 8px) clamp(0px, 13 / 1280 * 100vw, 13px);
  }
}
.stay__deco {
  display: none;
}
@media screen and (min-width: 768px) {
  .stay__deco {
    display: block;
    position: absolute;
    z-index: 2;
    left: calc(clamp(0px, 77 / 1280 * 100vw, 77px) * -1);
    bottom: calc(clamp(0px, 93 / 1280 * 100vw, 93px) * -1);
    width: clamp(0px, 284 / 1280 * 100vw, 284px);
    height: auto;
    pointer-events: none;
  }
}

.access {
  position: relative;
  overflow-x: clip;
  background: #fff;
  color: #889b5d;
  font-family: "Noto Sans JP", sans-serif;
  padding: 0 0 27px;
}
@media screen and (min-width: 768px) {
  .access {
    padding: 0 0 clamp(0px, 172 / 1280 * 100vw, 172px);
  }
}
.access__inner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  max-width: 960px;
  margin: 0 auto;
  padding: 0 clamp(0px, 56 / 390 * 100vw, 56px);
}
@media screen and (min-width: 768px) {
  .access__inner {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: clamp(0px, 24 / 1280 * 100vw, 24px);
    padding: 0;
  }
}
.access__photo {
  aspect-ratio: 16/9;
}
@media screen and (min-width: 768px) {
  .access__photo {
    -webkit-box-flex: 0;
        -ms-flex: none;
            flex: none;
    width: clamp(0px, 616 / 1280 * 100vw, 616px);
  }
}
.access__photo img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.access__info {
  margin-top: 29px;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .access__info {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    margin-top: 0;
    text-align: left;
  }
}
.access__head {
  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;
  gap: 13px;
}
@media screen and (min-width: 768px) {
  .access__head {
    display: block;
  }
}
.access__logo {
  display: block;
  width: clamp(0px, 67 / 390 * 100vw, 67px);
  height: auto;
}
@media screen and (min-width: 768px) {
  .access__logo {
    width: clamp(0px, 87 / 1280 * 100vw, 87px);
  }
}
.access__name {
  font-size: clamp(12px, 14 / 390 * 100vw, 14px);
  font-weight: 500;
  letter-spacing: 0.1em;
  line-height: 1.5;
}
@media screen and (min-width: 768px) {
  .access__name {
    margin-top: clamp(0px, 10 / 1280 * 100vw, 10px);
    font-size: clamp(16px, 24 / 1280 * 100vw, 24px);
  }
}
.access__address {
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin: 14px auto 0;
  font-size: clamp(10px, 11 / 390 * 100vw, 11px);
  font-style: normal;
  font-weight: 500;
  line-height: 1.6;
  text-align: left;
}
@media screen and (min-width: 768px) {
  .access__address {
    width: auto;
    margin: clamp(0px, 18 / 1280 * 100vw, 18px) 0 0;
    font-size: clamp(12px, 16 / 1280 * 100vw, 16px);
    line-height: 1.55;
  }
}
.access__route {
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin: 4px auto 0;
  font-size: clamp(6px, 7 / 390 * 100vw, 7px);
  font-weight: 500;
  line-height: 1.6;
  text-align: left;
  white-space: nowrap;
}
@media screen and (min-width: 768px) {
  .access__route {
    width: auto;
    margin: clamp(0px, 15 / 1280 * 100vw, 15px) 0 0;
    font-size: clamp(7px, 8.6 / 1280 * 100vw, 8.6px);
    line-height: 2.4;
  }
}
.access__btn {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 10px;
  height: 44px;
  margin-top: 21px;
  background: #889b5d;
  color: #fff;
  font-size: 14px;
  letter-spacing: 0.1em;
  -webkit-transition: opacity 0.3s;
  transition: opacity 0.3s;
}
@media screen and (min-width: 768px) {
  .access__btn {
    gap: clamp(0px, 8 / 1280 * 100vw, 8px);
    height: clamp(0px, 48 / 1280 * 100vw, 48px);
    margin-top: clamp(0px, 26 / 1280 * 100vw, 26px);
    font-size: clamp(14px, 20 / 1280 * 100vw, 20px);
  }
}
.access__btn:hover {
  opacity: 0.8;
}
.access__btn::after {
  content: "";
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 4px 0 4px 7px;
  border-color: transparent transparent transparent #fff;
}
@media screen and (min-width: 768px) {
  .access__btn::after {
    border-width: clamp(0px, 6 / 1280 * 100vw, 6px) 0 clamp(0px, 6 / 1280 * 100vw, 6px) clamp(0px, 10 / 1280 * 100vw, 10px);
  }
}
.access__deco {
  position: absolute;
  z-index: 2;
  left: calc(50% + 50px);
  bottom: -35px;
  width: 113px;
  height: auto;
  pointer-events: none;
}
@media screen and (min-width: 768px) {
  .access__deco {
    left: calc(50% + clamp(0px, 301 / 1280 * 100vw, 301px));
    bottom: calc(clamp(0px, 59 / 1280 * 100vw, 59px) * -1);
    width: clamp(0px, 244 / 1280 * 100vw, 244px);
  }
}

.closing {
  background: #889b5d url("../img/footer-bg-pc.webp") no-repeat center bottom/cover;
  color: #fff;
  font-family: "Noto Sans JP", sans-serif;
  text-align: center;
  aspect-ratio: 390/223;
}
@media screen and (min-width: 768px) {
  .closing {
    aspect-ratio: auto;
    height: clamp(0px, 730 / 1280 * 100vw, 730px);
  }
}
.closing__title {
  padding-top: 48px;
  font-size: clamp(24px, 32 / 390 * 100vw, 32px);
  font-weight: 400;
  line-height: 1.15;
  letter-spacing: 0.05em;
  font-family: "Playfair Display", serif;
}
@media screen and (min-width: 768px) {
  .closing__title {
    padding-top: clamp(0px, 161 / 1280 * 100vw, 161px);
    font-size: clamp(48px, 100 / 1280 * 100vw, 100px);
    line-height: 1.1;
  }
}

.reveal {
  opacity: 0;
  -webkit-transform: translateY(18px);
          transform: translateY(18px);
  -webkit-filter: blur(6px);
          filter: blur(6px);
}
@media screen and (max-width: 767px) {
  .reveal {
    -webkit-filter: blur(3px);
            filter: blur(3px);
  }
}
.reveal--photo {
  -webkit-transform: scale(1.06);
          transform: scale(1.06);
  -webkit-filter: none;
          filter: none;
}
@media screen and (max-width: 767px) {
  .reveal--photo {
    -webkit-filter: none;
            filter: none;
  }
}
.reveal.is-in {
  opacity: 1;
  -webkit-transform: none;
          transform: none;
  -webkit-filter: none;
          filter: none;
  -webkit-transition: opacity 1s ease-out var(--reveal-delay, 0s), -webkit-transform 1s cubic-bezier(0.22, 0.61, 0.36, 1) var(--reveal-delay, 0s), -webkit-filter 1s ease-out var(--reveal-delay, 0s);
  transition: opacity 1s ease-out var(--reveal-delay, 0s), -webkit-transform 1s cubic-bezier(0.22, 0.61, 0.36, 1) var(--reveal-delay, 0s), -webkit-filter 1s ease-out var(--reveal-delay, 0s);
  transition: opacity 1s ease-out var(--reveal-delay, 0s), transform 1s cubic-bezier(0.22, 0.61, 0.36, 1) var(--reveal-delay, 0s), filter 1s ease-out var(--reveal-delay, 0s);
  transition: opacity 1s ease-out var(--reveal-delay, 0s), transform 1s cubic-bezier(0.22, 0.61, 0.36, 1) var(--reveal-delay, 0s), filter 1s ease-out var(--reveal-delay, 0s), -webkit-transform 1s cubic-bezier(0.22, 0.61, 0.36, 1) var(--reveal-delay, 0s), -webkit-filter 1s ease-out var(--reveal-delay, 0s);
}

.reveal-calm .reveal {
  -webkit-transform: none;
          transform: none;
  -webkit-filter: none;
          filter: none;
}

.parallax {
  -webkit-transform: translateY(var(--py, 0px)) rotate(var(--pr, 0deg));
          transform: translateY(var(--py, 0px)) rotate(var(--pr, 0deg));
  will-change: transform;
}