@charset "UTF-8";
*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  background-color: #d2eeec;
}

body {
  margin: 0;
  padding: 0;
  background-color: #d2eeec;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overscroll-behavior-y: contain;
}
@media (max-width: 767px) {
  body {
    overflow-x: hidden;
  }
}

img {
  max-width: 100%;
  height: auto;
  vertical-align: middle;
}

a,
button {
  -webkit-tap-highlight-color: transparent;
}

a {
  color: inherit;
}
@media (hover: hover) {
  a {
    transition: opacity 0.3s;
  }
  a:hover {
    opacity: 0.6;
  }
}

.main-content {
  position: relative;
  z-index: 1;
}

@keyframes header-menu-rustle {
  0% {
    transform: rotate(0deg);
  }
  20% {
    transform: rotate(-4deg);
  }
  40% {
    transform: rotate(3.5deg);
  }
  58% {
    transform: rotate(-2.5deg);
  }
  74% {
    transform: rotate(2deg);
  }
  88% {
    transform: rotate(-1deg);
  }
  100% {
    transform: rotate(0deg);
  }
}
.header {
  background-color: #d2eeec;
  width: 100%;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 100;
  transition: transform 0.4s ease;
}
.header.is-hidden {
  transform: translateY(-100%);
}
.header__inner {
  height: 8.3333333333vw;
  padding: 0 3.4722222222vw;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.header__left {
  width: 49.3055555556vw;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.header__right {
  display: flex;
  align-items: center;
  gap: 1.7361111111vw;
}
.header__menu {
  width: 3.75vw;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.2777777778vw;
  cursor: pointer;
  text-decoration: none;
  color: inherit;
}
.header__menu-icon {
  width: 100%;
  aspect-ratio: 76.71/48.43;
  overflow: hidden;
}
.header__menu-icon img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}
.header__menu-text {
  font-family: "Baskervville", serif;
  font-style: normal;
  font-size: 1.1111111111vw;
  color: #0f9690;
  letter-spacing: 0.01em;
  line-height: 1.75;
  text-align: center;
  text-box-trim: trim-both;
  text-box-edge: cap alphabetic;
}
.header__logo {
  width: 5.5555555556vw;
  height: 4.775vw;
  display: block;
  text-decoration: none;
}
.header__logo img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}
.header__reservation {
  width: 14.9305555556vw;
  padding: 0.6944444444vw 1.3888888889vw;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.1388888889vw;
  background-color: #d2eeec;
  border: 1px solid #0f9690;
  border-radius: 0.2083333333vw;
  text-decoration: none;
  color: #0f9690;
  font-size: 1.25vw;
  text-align: center;
  white-space: nowrap;
  line-height: 1.75;
  box-sizing: border-box;
}
.header__reservation-ja {
  font-family: "Shippori Mincho", serif;
  font-weight: 600;
  letter-spacing: 0.1em;
}
.header__reservation-sep {
  font-family: "Shippori Mincho", serif;
  font-weight: 600;
  font-style: normal;
  letter-spacing: 0.1em;
}
.header__reservation-en {
  font-family: "Baskervville", serif;
  font-style: normal;
  letter-spacing: 0.01em;
  text-box-trim: trim-both;
  text-box-edge: cap alphabetic;
}
.header__instagram {
  font-family: "Baskervville", serif;
  font-style: normal;
  font-size: 1.25vw;
  color: #0f9690;
  letter-spacing: 0.01em;
  line-height: 1.75;
  text-decoration: underline;
  text-decoration-color: #0f9690;
  text-decoration-thickness: 1px;
  text-decoration-skip-ink: none;
  text-underline-offset: 0.8333333333vw;
  white-space: nowrap;
  display: block;
  text-box-trim: trim-both;
  text-box-edge: cap alphabetic;
}
@media (hover: hover) {
  .header__logo:hover, .header__menu:hover {
    opacity: 1;
  }
  .header__menu:hover .header__menu-icon img {
    transform-origin: center bottom;
    animation: header-menu-rustle 0.45s ease-out;
  }
}
@media (max-width: 767px) {
  .header__inner {
    height: auto;
    padding: 4.5333333333vw 5.3333333333vw;
  }
  .header__left {
    width: 52vw;
    gap: 0;
    justify-content: space-between;
  }
  .header__right {
    gap: 0;
  }
  .header__social {
    display: flex;
  }
  .header__menu {
    width: 10.6666666667vw;
    gap: 1.6vw;
  }
  .header__menu.is-close {
    gap: 8px;
  }
  .header__menu-text {
    font-size: 3.4666666667vw;
    letter-spacing: 0.01em;
  }
  .header__logo {
    width: 14.4vw;
    height: 12.2666666667vw;
  }
  .header__reservation {
    position: fixed;
    bottom: 5.3333333333vw;
    right: -1px;
    width: auto;
    padding: 2.1333333333vw 3.2vw;
    font-size: 3.2vw;
    border-radius: 0.5333333333vw;
    letter-spacing: 0.05em;
    z-index: 200;
    transition: opacity 0.3s;
  }
  .header__reservation.is-footer-visible {
    opacity: 0;
    pointer-events: none;
  }
  .header__reservation-ja {
    letter-spacing: 0.05em;
  }
  .header__reservation-sep {
    letter-spacing: 0.05em;
  }
  .header__instagram {
    font-size: 3.7333333333vw;
    letter-spacing: 0.01em;
    text-underline-offset: 2.1333333333vw;
  }
}

.menu {
  position: fixed;
  inset: 0;
  z-index: 300;
  pointer-events: none;
}
.menu.is-open {
  pointer-events: auto;
}
.menu__bg {
  position: absolute;
  inset: 0;
  background-color: rgba(0, 0, 0, 0.35);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.6s ease, visibility 0s 0.6s;
  cursor: pointer;
}
.menu.is-open .menu__bg {
  opacity: 1;
  visibility: visible;
  transition: opacity 0.6s ease, visibility 0s 0s;
}
.menu__panel {
  position: absolute;
  top: 0;
  left: 0;
  width: 22.2916666667vw;
  height: 100%;
  background-color: #0f9690;
  opacity: 0;
  transform: translateX(-30px);
  visibility: hidden;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  transition: transform 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94), opacity 0.6s ease, visibility 0s 0.6s;
}
.menu.is-open .menu__panel {
  opacity: 1;
  transform: translateX(0);
  visibility: visible;
  transition: transform 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94), opacity 0.6s ease, visibility 0s 0s;
}
.menu__header {
  display: contents;
}
.menu__close {
  flex-shrink: 0;
  align-self: flex-start;
  margin-top: 2.2916666667vw;
  margin-left: 3.4722222222vw;
  width: 3.75vw;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5555555556vw;
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  color: white;
}
.menu__close-icon {
  width: 100%;
  aspect-ratio: 76.71/48.43;
  overflow: hidden;
}
.menu__close-icon img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}
.menu__close-text {
  font-family: "Baskervville", serif;
  font-style: normal;
  font-size: 1.1111111111vw;
  color: white;
  letter-spacing: 0.01em;
  line-height: 1.75;
  text-align: center;
  text-box-trim: trim-both;
  text-box-edge: cap alphabetic;
}
.menu__content {
  margin-top: 3.6805555556vw;
  margin-left: 3.4722222222vw;
  padding-bottom: 4.1666666667vw;
  width: 14.9305555556vw;
  display: flex;
  flex-direction: column;
  gap: 2.2222222222vw;
}
.menu__nav {
  display: flex;
  flex-direction: column;
  gap: 3.75vw;
}
.menu__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 1.9444444444vw;
}
.menu__link {
  font-family: "Baskervville", serif;
  font-style: normal;
  font-size: 1.25vw;
  color: white;
  text-decoration: none;
  letter-spacing: 0.01em;
  line-height: 1.425;
  display: block;
}
.menu__reservation {
  width: 100%;
  padding: 0.6944444444vw 1.3888888889vw;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.1388888889vw;
  border: 1px solid white;
  border-radius: 0.2083333333vw;
  text-decoration: none;
  color: white;
  font-size: 1.25vw;
  text-align: center;
  white-space: nowrap;
  line-height: 1.75;
  box-sizing: border-box;
}
.menu__reservation-ja {
  font-family: "Shippori Mincho", serif;
  font-weight: 600;
  letter-spacing: 0.1em;
}
.menu__reservation-sep {
  font-family: "Shippori Mincho", serif;
  font-weight: 600;
  font-style: normal;
  letter-spacing: 0.1em;
}
.menu__reservation-en {
  font-family: "Baskervville", serif;
  font-style: normal;
  letter-spacing: 0.01em;
  text-box-trim: trim-both;
  text-box-edge: cap alphabetic;
}
.menu__instagram {
  display: block;
  text-decoration: none;
}
.menu__instagram img {
  width: 1.6666666667vw;
  height: 1.6666666667vw;
  display: block;
}
@media (max-width: 767px) {
  .menu__panel {
    width: 100%;
    overflow-y: auto;
    transform: none;
    transition: opacity 0.6s ease, visibility 0s 0.6s;
  }
  .menu.is-open .menu__panel {
    transform: none;
    transition: opacity 0.6s ease, visibility 0s 0s;
  }
  .menu__header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    display: flex;
    background-color: #0f9690;
    padding: 5.0666666667vw 4.8vw;
    z-index: 310;
    box-sizing: border-box;
  }
  .menu__close {
    position: static;
    margin: 0;
    width: 10.6666666667vw;
    gap: 1.6vw;
  }
  .menu__close-text {
    font-size: 3.4666666667vw;
  }
  .menu__content {
    position: static;
    margin: 31.7333333333vw 0 16vw 13.6vw;
    width: 73.0666666667vw;
    gap: 10.6666666667vw;
  }
  .menu__nav {
    gap: 10.6666666667vw;
  }
  .menu__list {
    gap: 7.4666666667vw;
  }
  .menu__link {
    font-size: 4.8vw;
  }
  .menu__reservation {
    font-size: 4.8vw;
    padding: 2.6666666667vw 5.3333333333vw;
    border-radius: 0.8vw;
  }
  .menu__instagram img {
    width: 6.4vw;
    height: 6.4vw;
  }
}
@media (hover: hover) {
  .menu__close:hover {
    opacity: 1;
  }
  .menu__close:hover .menu__close-icon img {
    transform-origin: center bottom;
    animation: header-menu-rustle 0.45s ease-out;
  }
  .menu__link:hover, .menu__instagram:hover {
    opacity: 0.7;
  }
  .menu__reservation:hover {
    opacity: 0.7;
  }
}

@keyframes hero-crossfade {
  0% {
    opacity: 0;
  }
  35.71% {
    opacity: 0;
    animation-timing-function: ease-in-out;
  }
  50% {
    opacity: 1;
  }
  85.71% {
    opacity: 1;
    animation-timing-function: ease-in-out;
  }
  100% {
    opacity: 0;
  }
}
@keyframes sp-hero-slide {
  0% {
    opacity: 0;
    animation-timing-function: ease-in-out;
  }
  4.76% {
    opacity: 1;
  }
  16.67% {
    opacity: 1;
    animation-timing-function: ease-in-out;
  }
  21.43% {
    opacity: 0;
  }
  100% {
    opacity: 0;
  }
}
.hero {
  background-color: #d2eeec;
  padding: 2.5694444444vw 0 10.6944444444vw;
}
.hero__inner {
  width: 88.8888888889vw;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.hero__item {
  position: relative;
  width: 28.6111111111vw;
  height: 37.8472222222vw;
  overflow: hidden;
  border-radius: 0.1477777778vw;
  flex-shrink: 0;
  opacity: 0;
  visibility: hidden;
  -webkit-filter: blur(35px);
  filter: blur(35px);
  transition: opacity 1.5s ease, visibility 1.5s ease, -webkit-filter 1.5s ease, filter 1.5s ease;
}
.hero__item.is-visible {
  opacity: 1;
  visibility: visible;
  -webkit-filter: blur(0);
  filter: blur(0);
}
.hero__item--4, .hero__item--5, .hero__item--6 {
  display: none;
}
.hero__item--1 img {
  object-position: left center;
}
.hero__item--2 img {
  object-position: center 5%;
}
.hero__item--3 img {
  object-position: right center;
}
.hero__picture {
  display: block;
  width: 100%;
  height: 100%;
}
.hero__picture img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.hero__picture--overlay {
  position: absolute;
  inset: 0;
  opacity: 0;
  animation: hero-crossfade 11.2s linear infinite;
}
@media (max-width: 767px) {
  .hero {
    padding: 10.6666666667vw 0 17.0666666667vw;
  }
  .hero__inner {
    display: block;
    width: 100%;
    height: 109.3333333333vw;
    position: relative;
    margin: 0;
  }
  .hero__item {
    position: absolute;
    width: 82.6666666667vw;
    height: 109.3333333333vw;
    left: 50%;
    top: 0;
    transform: translateX(-50%);
    border-radius: 0.8vw;
    flex-shrink: unset;
    visibility: visible;
    -webkit-filter: none;
    filter: none;
    transition: none;
    opacity: 0;
    animation: sp-hero-slide 33.6s linear infinite;
  }
  .hero__item--1 {
    animation-delay: -5.6s;
  }
  .hero__item--2 {
    animation-delay: 0s;
  }
  .hero__item--3 {
    animation-delay: -28s;
  }
  .hero__item--4, .hero__item--5, .hero__item--6 {
    display: block;
    position: absolute;
    width: 82.6666666667vw;
    height: 109.3333333333vw;
    left: 50%;
    top: 0;
    transform: translateX(-50%);
  }
  .hero__item--4 {
    animation-delay: -22.4s;
  }
  .hero__item--5 {
    animation-delay: -16.8s;
  }
  .hero__item--6 {
    animation-delay: -11.2s;
  }
  .hero__item--1 img, .hero__item--2 img, .hero__item--3 img {
    object-position: center center;
  }
  .hero__picture--overlay {
    display: none;
  }
  .hero__item.is-visible {
    -webkit-filter: none;
    filter: none;
  }
}

.concept {
  background-color: #d2eeec;
  position: relative;
  height: 69.4444444444vw;
  color: #0f9690;
}
.concept__title-group {
  position: absolute;
  top: 5.5555555556vw;
  left: 7.9861111111vw;
  display: flex;
  flex-direction: column;
  gap: 0.2777777778vw;
}
.concept .sp-br {
  display: none;
}
.concept__title {
  font-family: "Shippori Mincho", serif;
  font-weight: 600;
  font-size: 1.9444444444vw;
  letter-spacing: 0.1em;
  line-height: 1.75;
  white-space: nowrap;
  margin: 0;
}
.concept__subtitle {
  font-family: "Baskervville", serif;
  font-style: normal;
  font-size: 1.0416666667vw;
  letter-spacing: 0.01em;
  line-height: 1.425;
  margin: 0;
}
.concept__body-group {
  position: absolute;
  top: 16.25vw;
  left: 31.3888888889vw;
}
.concept__body-group--right {
  left: 62.5694444444vw;
  width: 25.9722222222vw;
}
.concept__body-ja {
  font-family: "Shippori Mincho", serif;
  font-weight: 600;
  font-size: 1.1111111111vw;
  letter-spacing: 0.05em;
  line-height: 2;
}
.concept__body-ja p {
  margin: 0;
}
.concept__body-en {
  font-family: "Baskervville", serif;
  font-style: normal;
  font-size: 1.0416666667vw;
  letter-spacing: 0.01em;
  line-height: 1.833;
}
.concept__body-en p {
  margin: 0;
}
@media (max-width: 767px) {
  .concept .sp-br {
    display: inline;
  }
  .concept {
    height: auto;
    padding: 6.4vw 5.3333333333vw 16vw;
    display: flex;
    flex-direction: column;
    gap: 10.6666666667vw;
  }
  .concept__title-group {
    position: static;
    gap: 1.0666666667vw;
    width: 100%;
  }
  .concept__title-group.js-fade-in {
    opacity: 1;
    transition: none;
  }
  .concept__title {
    font-size: 4.2666666667vw;
    line-height: 1.8;
    white-space: normal;
  }
  .concept__subtitle {
    font-size: 3.2vw;
    line-height: 1.8;
  }
  .concept__body-group {
    position: static;
    gap: 4vw;
    width: 100%;
  }
  .concept__body-group--right {
    position: static;
  }
  .concept__body-ja {
    font-size: 3.4666666667vw;
    line-height: 2;
    width: 100%;
  }
  .concept__body-en {
    font-size: 3.2vw;
    line-height: 1.833;
    width: 100%;
  }
}

.time {
  background-color: #d2eeec;
  overflow: hidden;
  padding: 6.1111111111vw 0 4.1666666667vw;
}
.time__track {
  position: relative;
  height: 35.0694444444vw;
  cursor: grab;
  user-select: none;
}
.time__track.is-dragging {
  cursor: grabbing;
}
.time__item {
  position: absolute;
  top: 0;
  left: 0;
  width: 24.6527777778vw;
  display: flex;
  flex-direction: column;
  gap: 0.6944444444vw;
  will-change: transform;
}
.time__media {
  width: 100%;
  aspect-ratio: 355/473;
  overflow: hidden;
  flex-shrink: 0;
}
.time__media img,
.time__media video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.time__caption {
  font-family: "Baskervville", serif;
  font-style: normal;
  font-size: 1.0416666667vw;
  letter-spacing: 0.01em;
  line-height: 1.425;
  color: #0f9690;
  text-align: center;
  margin: 0;
}
@media (max-width: 767px) {
  .time {
    padding: 17.0666666667vw 0;
  }
  .time__track {
    height: 64vw;
  }
  .time__item {
    width: 48vw;
    gap: 1.3333333333vw;
  }
  .time__caption {
    font-size: 2.6666666667vw;
  }
}

.time-main {
  background-color: #d2eeec;
  padding: 10vw 0 4.9305555556vw;
  display: flex;
  justify-content: center;
}
.time-main__figure {
  width: 36.4583333333vw;
  aspect-ratio: 525/700;
  margin: 0;
  overflow: hidden;
}
.time-main__figure img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
@media (max-width: 767px) {
  .time-main {
    padding: 34.1333333333vw 0;
  }
  .time-main__figure {
    width: 73.3333333333vw;
    aspect-ratio: 275/366;
  }
}

.room-art {
  background-color: #d2eeec;
  position: relative;
  height: 155.5555555556vw;
  color: #0f9690;
}
.room-art .sp-br {
  display: none;
}
.room-art__title-group {
  position: absolute;
  top: 9.7222222222vw;
  left: 7.9861111111vw;
  display: flex;
  flex-direction: column;
  gap: 0.2777777778vw;
}
.room-art__title {
  font-family: "Shippori Mincho", serif;
  font-weight: 600;
  font-size: 1.9444444444vw;
  letter-spacing: 0.1em;
  line-height: 1.75;
  white-space: nowrap;
  margin: 0;
}
.room-art__subtitle {
  font-family: "Baskervville", serif;
  font-style: normal;
  font-size: 1.0416666667vw;
  letter-spacing: 0.01em;
  line-height: 1.425;
  margin: 0;
}
.room-art__item {
  position: absolute;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
}
.room-art__item--1 {
  top: 21.9444444444vw;
  left: 62.4305555556vw;
  width: 27.7777777778vw;
  gap: 0.6944444444vw;
}
.room-art__item--2 {
  top: 94.2361111111vw;
  left: 5.6944444444vw;
  width: 27.7777777778vw;
  gap: 0.6944444444vw;
}
.room-art__item--3 {
  top: 37.9861111111vw;
  left: 9.7916666667vw;
  width: 18.0555555556vw;
  gap: 0.6944444444vw;
}
.room-art__item--4 {
  top: 87.5vw;
  left: 70.7638888889vw;
  width: 18.0555555556vw;
  gap: 0.6944444444vw;
}
.room-art__item--5 {
  top: 66.25vw;
  left: 39.5138888889vw;
  gap: 0.625vw;
}
.room-art__item--6 {
  top: 122.5vw;
  left: 47.4305555556vw;
  gap: 0.625vw;
}
.room-art__media {
  overflow: hidden;
  width: 100%;
  flex-shrink: 0;
}
.room-art__item--1 .room-art__media {
  aspect-ratio: 376/502;
}
.room-art__item--2 .room-art__media {
  aspect-ratio: 400/534;
}
.room-art__item--3 .room-art__media {
  aspect-ratio: 3/4;
}
.room-art__item--4 .room-art__media {
  aspect-ratio: 3/4;
}
.room-art__item--5 .room-art__media {
  width: 15.8333333333vw;
  height: 19.375vw;
}
.room-art__item--6 .room-art__media {
  width: 15.8333333333vw;
  height: 19.375vw;
}
.room-art__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.room-art__caption {
  text-align: right;
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 0.3472222222vw;
  color: #029e98;
}
.room-art__item--5 .room-art__caption, .room-art__item--6 .room-art__caption {
  width: auto;
}
.room-art__caption-ja {
  font-family: "Shippori Mincho", serif;
  font-weight: 600;
  font-size: 1.0416666667vw;
  letter-spacing: 0.01em;
  line-height: 1.8;
  margin: 0;
}
.room-art__item--5 .room-art__caption-ja, .room-art__item--6 .room-art__caption-ja {
  white-space: nowrap;
}
.room-art__caption-en {
  font-family: "Baskervville", serif;
  font-style: normal;
  font-size: 0.8333333333vw;
  letter-spacing: 0.01em;
  line-height: 1.8;
  margin: 0;
}
@media (max-width: 767px) {
  .room-art .sp-br {
    display: inline;
  }
  .room-art {
    height: 520vw;
  }
  .room-art__title-group {
    top: 6.4vw;
    left: 5.3333333333vw;
    gap: 1.0666666667vw;
  }
  .room-art__title {
    font-size: 4.2666666667vw;
    line-height: 1.8;
    white-space: normal;
  }
  .room-art__subtitle {
    font-size: 3.2vw;
    line-height: 1.8;
  }
  .room-art__item--1 {
    top: 45.8666666667vw;
    left: 45.8666666667vw;
    width: 48vw;
    gap: 1.0666666667vw;
  }
  .room-art__item--2 {
    top: 269.3333333333vw;
    left: 8.8vw;
    width: 48vw;
    gap: 1.0666666667vw;
  }
  .room-art__item--3 {
    top: 133.0666666667vw;
    left: 1.8666666667vw;
    width: 42.6666666667vw;
    gap: 1.3333333333vw;
  }
  .room-art__item--4 {
    top: 362.4vw;
    left: 51.2vw;
    width: 42.6666666667vw;
    gap: 1.3333333333vw;
  }
  .room-art__item--5 {
    top: 198.4vw;
    left: 44.5333333333vw;
    gap: 1.0666666667vw;
  }
  .room-art__item--6 {
    top: 439.2vw;
    left: 1.8666666667vw;
    width: 44.5333333333vw;
    gap: 1.0666666667vw;
  }
  .room-art__item--1 .room-art__media {
    aspect-ratio: 285/380;
    width: 100%;
  }
  .room-art__item--2 .room-art__media {
    aspect-ratio: 285/380;
    width: 100%;
  }
  .room-art__item--3 .room-art__media {
    width: 40vw;
    height: 53.6vw;
    aspect-ratio: unset;
  }
  .room-art__item--4 .room-art__media {
    width: 40vw;
    height: 53.3333333333vw;
    aspect-ratio: unset;
  }
  .room-art__item--5 .room-art__media {
    width: 34.1333333333vw;
    height: 41.8666666667vw;
  }
  .room-art__item--6 .room-art__media {
    width: 34.1333333333vw;
    height: 42.1333333333vw;
  }
  .room-art__caption {
    gap: 0.5333333333vw;
    width: 100%;
  }
  .room-art__item--5 .room-art__caption, .room-art__item--6 .room-art__caption {
    width: auto;
  }
  .room-art__caption-ja {
    font-size: 2.9333333333vw;
    line-height: 1.8;
  }
  .room-art__item--3 .room-art__caption-ja, .room-art__item--4 .room-art__caption-ja {
    white-space: nowrap;
  }
  .room-art__caption-en {
    font-size: 2.6666666667vw;
  }
}

.room-info {
  background-color: #d2eeec;
  color: #0f9690;
}
.room-info__rooms {
  display: flex;
  gap: 3.75vw;
  align-items: flex-start;
  padding: 10.6944444444vw 3.4722222222vw 5.5555555556vw;
}
.room-info__room {
  display: flex;
  flex-direction: column;
  gap: 1.7361111111vw;
  flex: 1;
  min-width: 0;
}
.room-info__media {
  position: relative;
  width: 100%;
  overflow: hidden;
  aspect-ratio: 637/458;
}
.room-info__room--3 .room-info__media {
  aspect-ratio: 435/312;
}
.room-info__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  opacity: 0;
  transition: opacity 2s ease;
}
.room-info__img.is-active {
  opacity: 1;
}
.room-info__body {
  display: flex;
  flex-direction: column;
  gap: 1.3888888889vw;
}
.room-info__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.room-info__badge {
  display: inline-flex;
  align-items: center;
  gap: 0.1388888889vw;
  border: 1px solid #0f9690;
  border-radius: 3px;
  padding: 0.6944444444vw 1.0416666667vw;
  font-family: "Baskervville", serif;
  font-size: 1.3888888889vw;
  letter-spacing: 0.01em;
  line-height: 1.425;
  white-space: nowrap;
}
.room-info__sep {
  font-size: 1.0416666667vw;
  line-height: 1.75;
  letter-spacing: 0.1em;
}
.room-info__bed {
  font-family: "Baskervville", serif;
  font-style: normal;
  font-size: 1.0416666667vw;
  letter-spacing: 0.01em;
  line-height: 1.35;
  text-align: right;
  margin: 0;
}
.room-info__bed p {
  margin: 0;
}
.room-info__bed p:first-child {
  margin-bottom: 4px;
}
.room-info__text {
  display: flex;
  flex-direction: column;
  gap: 0.5555555556vw;
}
.room-info__ja {
  font-family: "Shippori Mincho", serif;
  font-weight: 600;
  font-size: 1.1111111111vw;
  letter-spacing: 0.01em;
  line-height: 2;
  margin: 0;
}
.room-info__en {
  font-family: "Baskervville", serif;
  font-style: normal;
  font-size: 0.9722222222vw;
  letter-spacing: 0.01em;
  line-height: 1.8;
}
.room-info__en p {
  margin: 0;
}
.room-info__details {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4.4444444444vw;
  padding: 5.5555555556vw 0 10.6944444444vw;
}
.room-info__checkinout {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 53.9583333333vw;
}
.room-info__check {
  display: flex;
  align-items: center;
  gap: 5.5555555556vw;
  font-family: "Baskervville", serif;
  font-style: normal;
  font-size: 1.3888888889vw;
  letter-spacing: 0.01em;
  line-height: 1.425;
  white-space: nowrap;
}
.room-info__check span {
  display: block;
}
.room-info__plans {
  display: flex;
  align-items: flex-start;
  gap: 4.5833333333vw;
  width: 77.7777777778vw;
}
.room-info__floor-group {
  display: flex;
  gap: 1.3194444444vw;
  align-items: flex-start;
  flex-shrink: 0;
}
.room-info__floor {
  position: relative;
}
.room-info__floor-label {
  font-family: "Baskervville", serif;
  font-style: normal;
  font-size: 1.3888888889vw;
  letter-spacing: 0.01em;
  line-height: 1.425;
  margin: 0;
  position: absolute;
  top: 0;
  left: 0;
}
.room-info__floor-map {
  position: relative;
  margin-top: 2.7777777778vw;
  margin-left: 1.4583333333vw;
  width: 22.7083333333vw;
}
.room-info__floor-map img {
  width: 100%;
  height: auto;
  display: block;
}
.room-info__floor-map--2f {
  margin-left: 1.5277777778vw;
  width: 14.5833333333vw;
}
.room-info__map-label {
  position: absolute;
  font-family: "Baskervville", serif;
  font-style: normal;
  font-size: 0.7638888889vw;
  letter-spacing: 0.01em;
  line-height: 1.425;
  margin: 0;
  white-space: nowrap;
}
.room-info__meta {
  padding-top: 4.4444444444vw;
  display: flex;
  flex-direction: column;
  gap: 1.0416666667vw;
  flex: 1;
  min-width: 0;
}
.room-info__meta-ja {
  font-family: "Shippori Mincho", serif;
  font-weight: 600;
  font-size: 1.1111111111vw;
  letter-spacing: 0.01em;
  line-height: 2;
}
.room-info__meta-ja p {
  margin: 0;
}
.room-info__meta-en {
  font-family: "Baskervville", serif;
  font-style: normal;
  font-size: 1.0416666667vw;
  letter-spacing: 0.01em;
  line-height: 1.8;
}
.room-info__meta-en p {
  margin: 0;
}
@media (max-width: 767px) {
  .room-info__rooms {
    flex-direction: column;
    gap: 14.4vw;
    padding: 21.3333333333vw 5.3333333333vw 0;
  }
  .room-info__room {
    gap: 4vw;
    width: 100%;
  }
  .room-info__body {
    gap: 4vw;
  }
  .room-info__badge {
    gap: 0.5333333333vw;
    padding: 2.1333333333vw 3.2vw;
    font-size: 3.4666666667vw;
  }
  .room-info__sep {
    font-size: 2.6666666667vw;
  }
  .room-info__bed {
    font-size: 2.9333333333vw;
  }
  .room-info__text {
    gap: 1.6vw;
  }
  .room-info__ja {
    font-size: 3.4666666667vw;
    line-height: 1.8;
  }
  .room-info__en {
    font-size: 3.2vw;
    line-height: 1.8;
  }
  .room-info__details {
    align-items: flex-start;
    gap: 9.6vw;
    padding: 23.4666666667vw 5.3333333333vw 23.4666666667vw;
  }
  .room-info__checkinout {
    width: 100%;
  }
  .room-info__check {
    gap: 5.3333333333vw;
    font-size: 3.4666666667vw;
  }
  .room-info__plans {
    flex-direction: column;
    width: 100%;
    gap: 14.4vw;
  }
  .room-info__floor-group {
    gap: 2.6666666667vw;
  }
  .room-info__floor-label {
    font-size: 2.9333333333vw;
  }
  .room-info__floor-map {
    margin-top: 5.8666666667vw;
    margin-left: 3.2vw;
    width: 48.5333333333vw;
  }
  .room-info__floor-map--2f {
    margin-left: 3.2vw;
    width: 31.2vw;
  }
  .room-info__map-label {
    font-size: 2.1333333333vw;
  }
  .room-info__meta {
    padding-top: 0;
    gap: 2.9333333333vw;
  }
  .room-info__meta-ja {
    font-size: 3.4666666667vw;
    line-height: 1.8;
  }
  .room-info__meta-en {
    font-size: 3.7333333333vw;
    line-height: 1.8;
  }
}

.amenity {
  background-color: #14908a;
}
.amenity__inner {
  display: flex;
  flex-direction: column;
  gap: 4.4444444444vw;
  padding: 10.6944444444vw 10.5555555556vw 10.6944444444vw;
}
.amenity__category {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1.3888888889vw;
}
.amenity__badge {
  display: inline-flex;
  align-items: center;
  border: 1px solid #fff;
  border-radius: 3px;
  padding: 0.4166666667vw 1.0416666667vw;
  color: #fff;
  white-space: nowrap;
  line-height: 1.6;
}
.amenity__badge-ja {
  font-family: "Shippori Mincho", serif;
  font-weight: 600;
  font-size: 1.25vw;
  letter-spacing: 0.01em;
}
.amenity__badge-sep, .amenity__badge-en {
  font-family: "Baskervville", serif;
  font-style: normal;
  font-size: 1.25vw;
  letter-spacing: 0.01em;
}
.amenity__content {
  display: flex;
  gap: 2.7777777778vw;
  align-items: flex-start;
  color: #fff;
  font-size: 1.0416666667vw;
  line-height: 1.92;
  letter-spacing: 0.01em;
}
.amenity__ja {
  flex: 1;
  min-width: 0;
  font-family: "Shippori Mincho", serif;
  font-weight: 400;
  margin: 0;
}
.amenity__en {
  flex: 1;
  min-width: 0;
  font-family: "Baskervville", serif;
  font-style: normal;
  font-size: 0.9722222222vw;
  line-height: 2;
  margin: 0;
}
@media (max-width: 767px) {
  .amenity__inner {
    gap: 14.4vw;
    padding: 23.4666666667vw 5.3333333333vw 23.4666666667vw;
  }
  .amenity__category {
    gap: 5.3333333333vw;
  }
  .amenity__badge {
    padding: 2.1333333333vw 4vw;
  }
  .amenity__badge-ja {
    font-size: 3.4666666667vw;
  }
  .amenity__badge-sep, .amenity__badge-en {
    font-size: 3.7333333333vw;
  }
  .amenity__content {
    flex-direction: column;
    gap: 2.6666666667vw;
    line-height: 2;
  }
  .amenity__ja {
    font-size: 3.4666666667vw;
    line-height: 1.8;
  }
  .amenity__en {
    font-size: 3.2vw;
    line-height: 1.8;
  }
}

.spot {
  background-color: #d2eeec;
  color: #0f9690;
}
.spot__inner {
  padding: 10.6944444444vw 3.4027777778vw 7.7083333333vw;
}
.spot__heading {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.2777777778vw;
  margin-bottom: 7.7083333333vw;
}
.spot__title {
  font-family: "Shippori Mincho", serif;
  font-weight: 600;
  font-size: 1.9444444444vw;
  letter-spacing: 0.1em;
  line-height: 1.75;
  margin: 0;
}
.spot__subtitle {
  font-family: "Baskervville", serif;
  font-style: normal;
  font-size: 1.0416666667vw;
  letter-spacing: 0.01em;
  line-height: 1.425;
  text-align: center;
  margin: 0;
}
.spot__grid {
  position: relative;
  height: 100.6944444444vw;
}
.spot__item {
  position: absolute;
  display: flex;
  flex-direction: column;
  gap: 0.6944444444vw;
}
.spot__item--1 {
  top: 1.3194444444vw;
  left: 0;
  width: 24.9305555556vw;
}
.spot__item--2 {
  top: 8.125vw;
  left: 30.5555555556vw;
  width: 25.6944444444vw;
}
.spot__item--3 {
  top: 0;
  left: 61.875vw;
  width: 31.25vw;
}
.spot__item--4 {
  top: 46.1111111111vw;
  left: 61.875vw;
  width: 26.3888888889vw;
}
.spot__item--5 {
  top: 59.0277777778vw;
  left: 4.5833333333vw;
  width: 31.25vw;
}
.spot__media {
  width: 100%;
  overflow: hidden;
  flex-shrink: 0;
}
.spot__item--1 .spot__media, .spot__item--2 .spot__media {
  aspect-ratio: 3331/4096;
}
.spot__item--3 .spot__media {
  height: 24.1666666667vw;
}
.spot__item--4 .spot__media {
  height: 32.4305555556vw;
}
.spot__item--5 .spot__media {
  height: 23.4722222222vw;
}
.spot__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.spot__body {
  display: flex;
  flex-direction: column;
  gap: 1.0416666667vw;
  align-items: flex-start;
}
.spot__text {
  display: flex;
  flex-direction: column;
  gap: 0.5555555556vw;
  width: 100%;
}
.spot__text-group {
  display: flex;
  flex-direction: column;
}
.spot__name {
  font-family: "Shippori Mincho", serif;
  font-weight: 700;
  font-size: 1.1111111111vw;
  letter-spacing: 0.01em;
  line-height: 2.025;
  margin: 0;
}
.spot__description {
  font-family: "Shippori Mincho", serif;
  font-weight: 400;
  font-size: 0.9722222222vw;
  letter-spacing: 0.01em;
  line-height: 1.8;
  margin: 0;
}
.spot__en {
  font-family: "Baskervville", serif;
  font-style: normal;
  font-size: 0.9722222222vw;
  letter-spacing: 0.01em;
  line-height: 1.5;
  margin: 0;
}
.spot__en p {
  margin: 0;
}
.spot__btn {
  display: inline-flex;
  align-items: center;
  gap: 0.6944444444vw;
  border: 1px solid #47bba2;
  border-radius: 1000px;
  padding: 0.6944444444vw 1.25vw;
  text-decoration: none;
  white-space: nowrap;
  margin-top: 3px;
  margin-bottom: 4px;
}
.spot__btn-label {
  font-family: "Shippori Mincho", serif;
  font-weight: 700;
  font-size: 1.0416666667vw;
  letter-spacing: 0.01em;
  line-height: 1;
  color: #0f9690;
}
.spot__btn-arrow {
  font-family: "Baskervville", serif;
  font-style: normal;
  font-size: 1.25vw;
  line-height: 1;
  color: #47bba2;
  rotate: -30deg;
}
@media (max-width: 767px) {
  .spot__inner {
    padding: 23.4666666667vw 5.3333333333vw 0;
  }
  .spot__heading {
    gap: 1.0666666667vw;
    margin-bottom: 14.4vw;
  }
  .spot__title {
    font-size: 4.2666666667vw;
  }
  .spot__subtitle {
    font-size: 3.2vw;
  }
  .spot__grid {
    height: 693.3333333333vw;
  }
  .spot__item {
    gap: 1.6vw;
  }
  .spot__item--1 {
    top: 0;
    left: 0;
    width: 50.9333333333vw;
  }
  .spot__item--2 {
    top: 149.3333333333vw;
    left: 33.8666666667vw;
    width: 50.9333333333vw;
  }
  .spot__item--3 {
    top: 294.4vw;
    left: 0;
    width: 67.7333333333vw;
  }
  .spot__item--4 {
    top: 543.7333333333vw;
    left: 3.7333333333vw;
    width: 50.9333333333vw;
  }
  .spot__item--5 {
    top: 421.6vw;
    left: 17.3333333333vw;
    width: 67.7333333333vw;
  }
  .spot__item--3 .spot__media {
    height: 51.4666666667vw;
  }
  .spot__item--4 .spot__media {
    height: auto;
    aspect-ratio: 3331/4096;
  }
  .spot__item--5 .spot__media {
    height: auto;
    aspect-ratio: 450/309;
  }
  .spot__body {
    gap: 2.1333333333vw;
  }
  .spot__text {
    gap: 1.0666666667vw;
  }
  .spot__name {
    font-size: 3.4666666667vw;
    line-height: 1.8;
  }
  .spot__description {
    font-size: 3.2vw;
    line-height: 1.5;
  }
  .spot__en {
    font-size: 2.9333333333vw;
    line-height: 1.5;
  }
  .spot__btn {
    gap: 1.6vw;
    padding: 2.6666666667vw 3.7333333333vw;
    margin-top: 3px;
    margin-bottom: 4px;
  }
  .spot__btn-label {
    font-size: 3.2vw;
    line-height: 1;
  }
  .spot__btn-arrow {
    font-size: 3.2vw;
    line-height: 1;
  }
}

.access {
  color: #0f9690;
}
.access__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 5.5555555556vw;
  padding: 7.6388888889vw 14.0277777778vw 11.1111111111vw;
}
.access__heading {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.2777777778vw;
}
.access__title {
  font-family: "Shippori Mincho", serif;
  font-weight: 600;
  font-size: 1.9444444444vw;
  letter-spacing: 0.1em;
  line-height: 1.75;
  margin: 0;
}
.access__subtitle {
  font-family: "Baskervville", serif;
  font-style: normal;
  font-size: 1.0416666667vw;
  letter-spacing: 0.01em;
  line-height: 1.425;
  text-align: center;
  margin: 0;
}
.access__body {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3.75vw;
  width: 100%;
}
.access__table {
  width: 100%;
  border-radius: 5px;
  overflow: hidden;
  color: #fff;
}
.access__row {
  display: flex;
  border-bottom: 1px solid rgba(255, 255, 255, 0.4);
}
.access__row:last-child {
  border-bottom: none;
}
.access__label {
  width: 17.9861111111vw;
  padding: 2.5vw 1.3888888889vw 2.5vw 3.75vw;
  display: flex;
  flex-direction: column;
  justify-content: center;
  flex-shrink: 0;
  background-color: #029e98;
  border-right: 1px solid rgba(255, 255, 255, 0.4);
}
.access__label-ja {
  font-family: "Shippori Mincho", serif;
  font-weight: 700;
  font-size: 1.1111111111vw;
  letter-spacing: 0.01em;
  line-height: 1.8;
  margin: 0;
}
.access__label-en {
  font-family: "Baskervville", serif;
  font-style: normal;
  font-size: 1.0416666667vw;
  letter-spacing: 0.01em;
  line-height: 1.8;
  margin: 0;
}
.access__detail {
  flex: 1;
  padding: 3.3333333333vw 3.75vw;
  display: flex;
  flex-direction: column;
  gap: 0.5555555556vw;
  background-color: rgba(2, 158, 152, 0.72);
}
.access__detail-ja {
  font-family: "Shippori Mincho", serif;
  font-weight: 700;
  font-size: 1.1111111111vw;
  letter-spacing: 0.04em;
  line-height: 1.8;
  margin: 0;
}
.access__detail-en {
  font-family: "Baskervville", serif;
  font-style: normal;
  font-size: 1.0416666667vw;
  letter-spacing: 0.01em;
  line-height: 1.5;
  margin: 0;
}
.access__tel {
  color: #fff;
  text-decoration: underline;
}
.access__parking {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.9444444444vw;
  width: 28.4722222222vw;
}
.access__parking-text {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.access__parking-ja {
  font-family: "Shippori Mincho", serif;
  font-weight: 600;
  font-size: 1.25vw;
  letter-spacing: 0.01em;
  line-height: 1.8;
  text-align: center;
  margin: 0;
}
.access__parking-en {
  font-family: "Baskervville", serif;
  font-style: normal;
  font-size: 1.0416666667vw;
  letter-spacing: 0.01em;
  line-height: 1.8;
  text-align: center;
  margin: 0;
}
.access__map-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5555555556vw;
  border: 1px solid #47bba2;
  border-radius: 1000px;
  padding: 0.2777777778vw 1.25vw;
  font-family: "Baskervville", serif;
  font-style: normal;
  font-size: 1.25vw;
  letter-spacing: 0.01em;
  line-height: 1.75;
  color: #0f9690;
  text-decoration: none;
  white-space: nowrap;
}
.access__map-btn-arrow {
  font-family: "Baskervville", serif;
  font-style: normal;
  font-size: 1.25vw;
  line-height: 1;
  color: #47bba2;
  rotate: -30deg;
}
@media (max-width: 767px) {
  .access__inner {
    padding: 23.4666666667vw 5.3333333333vw 23.4666666667vw;
    gap: 14.4vw;
  }
  .access__heading {
    gap: 1.0666666667vw;
  }
  .access__title {
    font-size: 4.2666666667vw;
  }
  .access__subtitle {
    font-size: 3.2vw;
  }
  .access__body {
    gap: 14.4vw;
  }
  .access__row {
    flex-direction: column;
  }
  .access__label {
    width: 100%;
    min-height: 27.7333333333vw;
    padding: 5.3333333333vw 5.3333333333vw;
    align-items: center;
    border-right: none;
  }
  .access__label-ja {
    font-size: 3.7333333333vw;
    text-align: center;
  }
  .access__label-en {
    font-size: 3.2vw;
    text-align: center;
  }
  .access__detail {
    padding: 8.5333333333vw 8vw;
  }
  .access__detail-ja {
    font-size: 3.2vw;
  }
  .access__detail-en {
    font-size: 2.9333333333vw;
  }
  .access__parking {
    width: 100%;
    gap: 5.3333333333vw;
  }
  .access__parking-ja {
    font-size: 4.2666666667vw;
  }
  .access__parking-en {
    font-size: 3.2vw;
  }
  .access__map-btn {
    font-size: 4.2666666667vw;
    padding: 1.0666666667vw 4.8vw;
    gap: 1.6vw;
  }
  .access__map-btn-arrow {
    font-size: 4.2666666667vw;
    line-height: 1;
  }
}

.faq {
  color: #0f9690;
}
.faq__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 5.5555555556vw;
  padding: 7.6388888889vw 8.3333333333vw 10.6944444444vw;
}
.faq__heading {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.2777777778vw;
}
.faq__title {
  font-family: "Shippori Mincho", serif;
  font-weight: 600;
  font-size: 1.9444444444vw;
  letter-spacing: 0.1em;
  line-height: 1.75;
  margin: 0;
}
.faq__subtitle {
  font-family: "Baskervville", serif;
  font-style: normal;
  font-size: 1.0416666667vw;
  letter-spacing: 0.01em;
  line-height: 1.425;
  text-align: center;
  margin: 0;
}
.faq__list {
  width: 100%;
}
.faq__item {
  border-top: 1px solid #cccccc;
}
.faq__item:last-child {
  border-bottom: 1px solid #cccccc;
}
.faq__header {
  display: flex;
  align-items: center;
  width: 100%;
  padding: 1.7361111111vw 0;
  background: none;
  border: none;
  cursor: pointer;
  color: inherit;
  text-align: left;
}
.faq__toggle-btn {
  flex-shrink: 0;
  width: 3.75vw;
  height: 2.6388888889vw;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #0f9690;
  border-radius: 1000px;
  margin-left: 1.7361111111vw;
}
.faq__toggle-icon {
  font-family: "Baskervville", serif;
  font-style: normal;
  font-size: 1.3888888889vw;
  line-height: 1;
}
.faq__toggle-icon::before {
  content: "+";
}
.faq__item.is-open .faq__toggle-icon::before {
  content: "×";
}
.faq__category {
  padding: 0 2.7777777778vw;
  display: flex;
  flex-direction: column;
}
.faq__category-ja {
  font-family: "Shippori Mincho", serif;
  font-weight: 700;
  font-size: 1.25vw;
  letter-spacing: 0.01em;
  line-height: 2.2;
  margin: 0;
}
.faq__category-en {
  font-family: "Baskervville", serif;
  font-style: normal;
  font-size: 1.0416666667vw;
  letter-spacing: 0.01em;
  line-height: 1.8;
  margin: 0;
}
.faq__panel {
  overflow: hidden;
  max-height: 0;
  transition: max-height 0.4s ease;
  padding-left: 8.2638888889vw;
}
.faq__qa {
  display: flex;
  flex-direction: column;
  padding: 0.6944444444vw 0 1.7361111111vw;
}
.faq__qa-item {
  display: flex;
  flex-direction: column;
  gap: 15px;
  padding: 1.3888888889vw 0;
  border-top: 1px dashed #cccccc;
}
.faq__qa-item:first-child {
  border-top: none;
  padding-top: 0;
}
.faq__qa-ja {
  font-family: "Shippori Mincho", serif;
  font-weight: 400;
  font-size: 1.0416666667vw;
  letter-spacing: 0.01em;
  line-height: 1.8;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.faq__qa-ja p {
  margin: 0;
}
.faq__qa-en {
  font-family: "Baskervville", serif;
  font-style: normal;
  font-size: 0.9722222222vw;
  letter-spacing: 0.01em;
  line-height: 1.8;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.faq__qa-en p {
  margin: 0;
}
@media (max-width: 767px) {
  .faq__inner {
    padding: 23.4666666667vw 5.3333333333vw 23.4666666667vw;
    gap: 14.4vw;
  }
  .faq__heading {
    gap: 1.0666666667vw;
  }
  .faq__title {
    font-size: 4.2666666667vw;
  }
  .faq__subtitle {
    font-size: 3.2vw;
  }
  .faq__header {
    padding: 5.3333333333vw 0;
  }
  .faq__toggle-btn {
    width: 12.8vw;
    height: 9.0666666667vw;
    margin-left: 1.3333333333vw;
  }
  .faq__toggle-icon {
    font-size: 4.2666666667vw;
  }
  .faq__category {
    padding: 0 5.3333333333vw;
  }
  .faq__category-ja {
    font-size: 3.7333333333vw;
    line-height: 1.8;
  }
  .faq__category-en {
    font-size: 3.2vw;
    line-height: 1.8;
  }
  .faq__panel {
    padding-left: 1.3333333333vw;
  }
  .faq__qa {
    padding: 2.6666666667vw 0 5.3333333333vw;
  }
  .faq__qa-item {
    gap: 15px;
    padding: 5.3333333333vw 0;
  }
  .faq__qa-ja {
    font-size: 3.4666666667vw;
  }
  .faq__qa-en {
    font-size: 3.2vw;
  }
}

.footer-scene {
  background-color: #14908a;
}

.footer {
  background-color: #14908a;
  color: #fff;
  position: -webkit-sticky;
  position: sticky;
  z-index: 1;
}
.footer__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 6.9444444444vw 0 2.7777777778vw;
}
.footer__contact {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.9722222222vw;
  margin-bottom: 8.3333333333vw;
  text-align: center;
}
.footer__contact-label {
  font-family: "Baskervville", serif;
  font-style: normal;
  font-size: 2.2222222222vw;
  letter-spacing: 0.01em;
  line-height: 1.425;
  margin: 0;
}
.footer__contact-tel {
  font-family: "Baskervville", serif;
  font-style: normal;
  font-size: 2.2222222222vw;
  letter-spacing: 0.01em;
  line-height: 1.425;
  color: #fff;
  text-decoration: none;
}
.footer__nav {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2.2222222222vw;
  margin-bottom: 7.7777777778vw;
  text-align: center;
}
.footer__nav-label {
  font-family: "Baskervville", serif;
  font-style: normal;
  font-size: 2.2222222222vw;
  letter-spacing: 0.01em;
  line-height: 1.425;
  margin: 0;
}
.footer__nav-list {
  display: flex;
  gap: 3.75vw;
  align-items: center;
  list-style: none;
  margin: 0;
  padding: 0;
  white-space: nowrap;
}
.footer__nav-link {
  font-family: "Baskervville", serif;
  font-style: normal;
  font-size: 1.25vw;
  letter-spacing: 0.01em;
  line-height: 1.425;
  color: #fff;
  text-decoration: none;
}
.footer__copyright {
  font-family: "Shippori Mincho", serif;
  font-weight: 700;
  font-size: 0.9722222222vw;
  letter-spacing: 0.01em;
  line-height: 1.8;
  text-align: center;
  margin: 0;
}
.footer__story-link {
  font-family: "Baskervville", serif;
  font-style: normal;
  font-size: 1.25vw;
  letter-spacing: 0.01em;
  line-height: 1.425;
  color: #fff;
  text-decoration: none;
  text-align: center;
  margin-top: 6.1111111111vw;
}
@media (max-width: 767px) {
  .footer__inner {
    padding: 26.6666666667vw 0 6.4vw;
  }
  .footer__contact {
    gap: 3.7333333333vw;
    margin-bottom: 14.4vw;
  }
  .footer__contact-label {
    font-size: 6.4vw;
  }
  .footer__contact-tel {
    font-size: 6.4vw;
  }
  .footer__nav {
    gap: 5.3333333333vw;
    margin-bottom: 26.6666666667vw;
  }
  .footer__nav-label {
    font-size: 6.4vw;
  }
  .footer__nav-list {
    flex-direction: column;
    gap: 6.4vw;
  }
  .footer__nav-link {
    font-size: 3.7333333333vw;
  }
  .footer__copyright {
    font-size: 3.2vw;
  }
  .footer__story-link {
    font-size: 3.7333333333vw;
    margin-top: 6.4vw;
  }
}

.story {
  background-color: #d2eeec;
  color: #0f9690;
  position: relative;
  z-index: 2;
}
.story__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 15.9722222222vw 0 2.7777777778vw;
  gap: 5.5555555556vw;
}
.story__heading {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.2777777778vw;
  text-align: center;
}
.story__title {
  font-family: "Shippori Mincho", serif;
  font-weight: 600;
  font-size: 1.9444444444vw;
  letter-spacing: 0.1em;
  line-height: 1.75;
  margin: 0;
}
.story__title .story__title-br {
  display: none;
}
.story__subtitle {
  font-family: "Baskervville", serif;
  font-style: normal;
  font-size: 1.0416666667vw;
  letter-spacing: 0.01em;
  line-height: 1.425;
  margin: 0;
  white-space: nowrap;
}
.story__subtitle .sp-br {
  display: none;
}
.story__lang {
  display: flex;
  align-items: center;
  gap: 0.5555555556vw;
  margin-top: 3.4722222222vw;
}
.story__lang-btn {
  font-family: "Baskervville", serif;
  font-style: normal;
  font-size: 1.25vw;
  letter-spacing: 0.01em;
  line-height: 1.425;
  background: none;
  border: none;
  color: #0f9690;
  cursor: pointer;
  padding: 0;
  opacity: 0.4;
  transition: opacity 0.2s;
}
.story__lang-btn.is-active {
  opacity: 1;
  cursor: default;
  pointer-events: none;
}
.story__lang-sep {
  font-family: "Baskervville", serif;
  font-style: normal;
  font-size: 1.25vw;
  opacity: 0.4;
}
.story__intro {
  width: 55.5555555556vw;
  display: flex;
  flex-direction: column;
}
.story__chapter {
  width: 55.5555555556vw;
  display: flex;
  flex-direction: column;
  gap: 2.7777777778vw;
}
.story__chapter-title {
  font-family: "Shippori Mincho", serif;
  font-weight: 600;
  font-size: 1.3888888889vw;
  letter-spacing: 0.05em;
  line-height: 1.6;
  margin: 0;
}
.story__chapter-title--en {
  font-family: "Baskervville", serif;
  font-style: normal;
  font-weight: 400;
  letter-spacing: 0.01em;
}
.story__chapter-title.is-hidden {
  display: none;
}
.story__text {
  font-family: "Shippori Mincho", serif;
  font-weight: 400;
  font-size: 1.1111111111vw;
  letter-spacing: 0.05em;
  line-height: 2;
  margin: 0;
}
.story__text--en {
  font-family: "Baskervville", serif;
  font-style: normal;
  font-weight: 400;
  letter-spacing: 0.01em;
  line-height: 1.8;
}
.story__text.is-hidden {
  display: none;
}
.story__text p {
  margin: 0;
}
.story__media {
  display: flex;
  gap: 2.7083333333vw;
  align-items: flex-start;
  width: 69.4444444444vw;
}
.story__media--last {
  margin-bottom: 4.1666666667vw;
}
.story__media--narrow {
  width: 33.3333333333vw;
  margin-top: 6.9444444444vw;
}
.story__media--trio {
  width: 93.0555555556vw;
  gap: 2.4305555556vw;
}
.story__media--trio .story__img {
  flex: 1;
  min-width: 0;
  width: 0;
  height: auto;
}
.story__img {
  display: block;
  width: 100%;
  height: auto;
}
.story__media--duo .story__img {
  flex: 1;
  min-width: 0;
  width: 0;
  height: auto;
}
.story__slider {
  overflow: hidden;
  cursor: grab;
  width: 93.0555555556vw;
}
.story__slider.is-dragging {
  cursor: grabbing;
}
.story__slider-track {
  display: flex;
  gap: 2.4305555556vw;
  user-select: none;
  will-change: transform;
}
.story__slider-item {
  flex-shrink: 0;
  width: 29.4444444444vw;
  height: auto;
  display: block;
  pointer-events: none;
  user-select: none;
  -webkit-user-drag: none;
}
.story__divider {
  width: 69.4444444444vw;
  border: none;
  border-top: 1px solid currentColor;
  margin: 0;
  opacity: 0.3;
}
.story__credits {
  font-family: "Baskervville", serif;
  font-style: normal;
  font-size: 0.9722222222vw;
  letter-spacing: 0.01em;
  line-height: 1.8;
  text-align: center;
  margin: 0;
}
.story__ending {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 18.75vw;
  margin-top: 13.1944444444vw;
}
.story__fin {
  font-family: "Baskervville", serif;
  font-style: italic;
  font-size: 3.75vw;
  letter-spacing: 0.01em;
  line-height: 1;
  margin: 0;
}
.story__back-to-top {
  font-family: "Baskervville", serif;
  font-style: normal;
  font-size: 0.9722222222vw;
  letter-spacing: 0.01em;
  line-height: 1.425;
  color: #0f9690;
  text-decoration: none;
}
@media (max-width: 767px) {
  .story__inner {
    padding: 34.1333333333vw 5.3333333333vw 14.4vw;
    gap: 17.0666666667vw;
  }
  .story__heading {
    gap: 1.0666666667vw;
    width: 100%;
  }
  .story__title {
    font-size: 4.8vw;
  }
  .story__subtitle {
    font-size: 3.2vw;
    line-height: 1.8;
    white-space: normal;
  }
  .story__subtitle .sp-br {
    display: inline;
  }
  .story__lang {
    gap: 2.1333333333vw;
    margin-top: 8.5333333333vw;
  }
  .story__lang-btn, .story__lang-sep {
    font-size: 3.4666666667vw;
  }
  .story__intro {
    width: 100%;
  }
  .story__chapter {
    width: 100%;
    gap: 5.3333333333vw;
  }
  .story__chapter-title {
    font-size: 3.7333333333vw;
  }
  .story__text {
    font-size: 3.4666666667vw;
    line-height: 1.8;
  }
  .story__text--en {
    font-size: 3.2vw;
    line-height: 1.8;
  }
  .story__media {
    gap: 2.1333333333vw;
    width: 100%;
  }
  .story__media--full, .story__media--last {
    width: 100vw;
    height: 74.4vw;
    overflow: hidden;
  }
  .story__media--last {
    margin-bottom: 10.6666666667vw;
  }
  .story__media--duo {
    flex-direction: column;
    align-items: center;
    gap: 4.2666666667vw;
  }
  .story__media--narrow {
    width: 73.3333333333vw;
    margin-top: 10.6666666667vw;
    margin-bottom: 0;
  }
  .story__media--trio {
    flex-direction: column;
    align-items: center;
    gap: 4.2666666667vw;
    width: 100%;
  }
  .story__media--trio .story__img {
    width: 73.3333333333vw;
    height: 90.1333333333vw;
    object-fit: cover;
    flex: none;
    min-width: unset;
  }
  .story__media--full .story__img, .story__media--last .story__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  .story__media--duo .story__img {
    width: 73.3333333333vw;
    height: 90.1333333333vw;
    object-fit: cover;
    flex: none;
    min-width: unset;
  }
  .story__slider {
    width: 100%;
    margin-left: 0;
    cursor: default;
    overflow: visible;
  }
  .story__slider-track {
    flex-direction: column;
    align-items: center;
    gap: 4.2666666667vw;
  }
  .story__slider-item {
    width: 73.3333333333vw;
    height: 90.1333333333vw;
    object-fit: cover;
    transform: none !important;
  }
  .story__title .story__title-br {
    display: inline;
  }
  .story__divider {
    width: 89.3333333333vw;
  }
  .story__credits {
    font-size: 3.2vw;
  }
  .story__ending {
    gap: 41.0666666667vw;
    margin-top: 17.0666666667vw;
  }
  .story__fin {
    font-size: 8.5333333333vw;
  }
  .story__back-to-top {
    font-size: 3.2vw;
  }
}
@media (hover: hover) {
  .story__lang-btn:hover {
    opacity: 0.7;
  }
  .story__lang-btn.is-active:hover {
    opacity: 1;
  }
}

.js-fade-in {
  opacity: 0;
  transition: opacity 2s ease;
}
.js-fade-in.is-visible {
  opacity: 1;
}

.js-blur-in {
  opacity: 0;
  filter: blur(20px);
  transition: opacity 2s ease, filter 2s ease;
}
.js-blur-in.is-visible {
  opacity: 1;
  filter: blur(0px);
}

.page-404 {
  position: relative;
  height: 75vw;
  overflow: hidden;
}
.page-404__media {
  position: absolute;
  inset: 0;
}
.page-404__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 21%;
  display: block;
}
.page-404__body {
  position: absolute;
  top: 8.3333333333vw;
  left: 7.2222222222vw;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1.6666666667vw;
}
.page-404__title {
  font-family: "Baskervville", serif;
  font-style: normal;
  font-size: 4.4444444444vw;
  color: white;
  letter-spacing: 0.01em;
  line-height: 1.425;
  margin: 0;
}
.page-404__btn {
  display: inline-flex;
  align-items: center;
  border: 1px solid white;
  border-radius: 1000px;
  padding: 0.2777777778vw 1.25vw;
  color: white;
  font-family: "Baskervville", serif;
  font-style: normal;
  font-size: 1.25vw;
  letter-spacing: 0.01em;
  line-height: 1.75;
  text-decoration: none;
  white-space: nowrap;
}
@media (max-width: 767px) {
  .page-404 {
    height: 169.6vw;
    overflow: visible;
  }
  .page-404__media img {
    object-position: center center;
  }
  .page-404__body {
    top: 62.4vw;
    left: 5.3333333333vw;
    width: 89.3333333333vw;
    align-items: center;
    gap: 5.3333333333vw;
  }
  .page-404__title {
    font-size: 11.7333333333vw;
    width: 100%;
    text-align: center;
  }
  .page-404__btn {
    font-size: 4.2666666667vw;
    padding: 1.0666666667vw 4.8vw;
  }
}
@media (hover: hover) {
  .page-404__btn:hover {
    opacity: 0.7;
  }
}
