@charset "UTF-8";
.l-container {
  min-width: var(--min-device-width);
}

.l-section {
  --l-section-inner-width-default: var(--site-width);
  --l-section-space-inline-default: var(--space-inline);
  --l-section-space-inline: var(--l-section-space-inline-override, var(--l-section-space-inline-default));
  --l-section-inner-width: var(--l-section-inner-width-override, var(--l-section-inner-width-default));
  --l-section-outer: max(0px, calc((var(--vw100) - var(--l-section-inner-width)) / 2));
  --l-section-gutter: max(var(--l-section-outer), var(--l-section-space-inline));
}
.l-section:where(._gutter) {
  padding-inline: var(--l-section-space-inline);
}
.l-section__inner {
  width: 100%;
  max-width: var(--l-section-inner-width);
  margin-inline: auto;
  background-clip: content-box;
}
.l-section__inner:where(._gutter) {
  max-width: calc( 						var(--l-section-inner-width) + 						(var(--l-section-space-inline) * 2) 					);
  padding-inline: var(--l-section-space-inline);
}
.l-section__full {
  margin-inline: calc(var(--l-section-gutter) * -1);
}

.l-row-gap {
  --l-row-gap-default: 60px;
  --l-row-gap: var(--l-row-gap-override, var(--l-row-gap-default));
  display: flex;
  flex-direction: column;
  row-gap: var(--l-row-gap);
}

.l-spacer._section {
  height: var(--space-block-section);
}
.l-spacer._xxl {
  height: var(--space-block-xxl);
}
.l-spacer._xl {
  height: var(--space-block-xl);
}
.l-spacer._lg {
  height: var(--space-block-lg);
}
.l-spacer._md {
  height: var(--space-block-md);
}
.l-spacer._sm {
  height: var(--space-block-sm);
}
.l-spacer._xs {
  height: var(--space-block-xs);
}
.l-spacer._xxs {
  height: var(--space-block-xxs);
}
.l-spacer._section-trim {
  height: var(--space-block-section-trim);
}
.l-spacer._xxl-trim {
  height: var(--space-block-xxl-trim);
}
.l-spacer._xl-trim {
  height: var(--space-block-xl-trim);
}
.l-spacer._lg-trim {
  height: var(--space-block-lg-trim);
}
.l-spacer._md-trim {
  height: var(--space-block-md-trim);
}
.l-spacer._sm-trim {
  height: var(--space-block-sm-trim);
}
.l-spacer._xs-trim {
  height: var(--space-block-xs-trim);
}
.l-spacer._xxs-trim {
  height: var(--space-block-xxs-trim);
}

.l-column {
  display: grid;
  grid-template-columns: auto 80%;
  column-gap: var(--space-block-md);
}
@media (width <= 1000px) {
  .l-column {
    grid-template-columns: auto 78%;
  }
}
@media (width <= 768px) {
  .l-column {
    grid-template-columns: 1fr;
  }
}

.u-bg_pale {
  background: url(../img/cmn/bg_pale.jpg) left top;
}

.u-bg_pale_dark {
  background: url(../img/cmn/bg_pale_dark.jpg) left top;
}

.c-heading2 {
  display: flex;
  flex-direction: column-reverse;
  gap: var(--space-block-sm);
  margin-block-end: var(--space-block-lg);
}
.c-heading2__title {
  font-family: var(--typography-title_lg-font-family);
  font-weight: var(--typography-title_lg-font-weight);
  font-size: var(--typography-title_lg-font-size);
  line-height: var(--typography-title_lg-line-height);
  --letter-spacing: var(--typography-title_lg-letter-spacing);
}
.c-heading2__en {
  display: flex;
  align-items: center;
  gap: var(--space-block-xs);
  font-family: var(--typography-text_md_en-font-family);
  font-weight: var(--typography-text_md_en-font-weight);
  font-size: var(--typography-text_md_en-font-size);
  line-height: var(--typography-text_md_en-line-height);
  --letter-spacing: var(--typography-text_md_en-letter-spacing);
  text-transform: capitalize;
}
.c-heading2__en .u-svg {
  color: var(--color-primary);
}
@media (width <= 768px) {
  .c-heading2__en .u-svg {
    width: 20px;
    height: 9px;
  }
}
.c-heading2._light {
  color: var(--color-light);
}
.c-heading2._light .c-heading2__en .u-svg {
  color: var(--color-light);
}

.c-heading3 {
  margin-block-end: var(--space-block-sm);
  font-family: var(--typography-title_sm-font-family);
  font-weight: var(--typography-title_sm-font-weight);
  font-size: var(--typography-title_sm-font-size);
  line-height: var(--typography-title_sm-line-height);
  --letter-spacing: var(--typography-title_sm-letter-spacing);
}
.c-heading3._lg {
  font-family: var(--typography-title_md-font-family);
  font-weight: var(--typography-title_md-font-weight);
  font-size: var(--typography-title_md-font-size);
  line-height: var(--typography-title_md-line-height);
  --letter-spacing: var(--typography-title_md-letter-spacing);
}

.c-text p:not(:last-child) {
  margin-block-end: 2em;
}
.c-text._loose {
  font-family: var(--typography-text_md_loose-font-family);
  font-weight: var(--typography-text_md_loose-font-weight);
  font-size: var(--typography-text_md_loose-font-size);
  line-height: var(--typography-text_md_loose-line-height);
  --letter-spacing: var(--typography-text_md_loose-letter-spacing);
}

.c-deco {
  position: absolute;
  top: -19px;
  left: var(--space-block-md);
  z-index: 1;
}
@media (width <= 768px) {
  .c-deco {
    left: var(--space-block-xs);
  }
}
.c-deco._right {
  top: auto;
  bottom: -19px;
  left: auto;
  right: var(--space-block-md);
}
@media (width <= 768px) {
  .c-deco._right {
    right: var(--space-block-xs);
  }
}

.c-button_map {
  display: flex;
  align-items: center;
  gap: var(--space-block-xxs);
  background-color: var(--color-light);
  border: 1px solid var(--color-base);
  padding: 0 var(--space-block-sm);
  width: fit-content;
  border-radius: 99px;
  font-family: var(--typography-text_sm_en-font-family);
  font-weight: var(--typography-text_sm_en-font-weight);
  font-size: var(--typography-text_sm_en-font-size);
  line-height: var(--typography-text_sm_en-line-height);
  --letter-spacing: var(--typography-text_sm_en-letter-spacing);
  margin-block-start: var(--space-block-sm);
  transition: var(--sec);
}
.c-button_map .u-svg {
  rotate: -135deg;
}
.c-button_map:focus-visible {
  background-color: var(--color-base);
  color: var(--color-light);
}
@media (hover: hover) and (pointer: fine) {
  .c-button_map:hover {
    background-color: var(--color-base);
    color: var(--color-light);
  }
}

[data-tel] a {
  color: inherit;
  text-decoration: underline;
}

[data-details] summary {
  cursor: pointer;
}
[data-details-panel] {
  overflow: hidden;
}

/*
   * 個別アニメーション
   */
[data-sa=fadeInUp] {
  opacity: 0;
  transition: opacity 1.5s ease, transform 1.5s ease;
  transform: translate(0, 40px);
}
[data-sa=fadeInUp].is-show {
  opacity: 1;
  transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
  transform: translate(0, 0);
}

/*
   * グループ
   */
[data-sa-trigger=fadeInUp].is-show {
  --sa-opacity: 1;
  --sa-translate: none;
}

[data-sa-group=fadeInUp] {
  --sa-translate-default: var(--sa-translate-override, 0 40px);
  opacity: var(--sa-opacity, 0);
  translate: var(--sa-translate, var(--sa-translate-default));
  transition-property: opacity, translate;
  transition-duration: var(--sa-duration-override, var(--sec));
}

/*
   * 遅延用のユーティリティクラス
   */
.u-Tdelay0 {
  transition-delay: 0s !important;
}

.u-Adelay0 {
  animation-delay: 0s !important;
}

.u-Tdelay1 {
  transition-delay: 0.1s !important;
}

.u-Adelay1 {
  animation-delay: 0.1s !important;
}

.u-Tdelay2 {
  transition-delay: 0.2s !important;
}

.u-Adelay2 {
  animation-delay: 0.2s !important;
}

.u-Tdelay3 {
  transition-delay: 0.3s !important;
}

.u-Adelay3 {
  animation-delay: 0.3s !important;
}

.u-Tdelay4 {
  transition-delay: 0.4s !important;
}

.u-Adelay4 {
  animation-delay: 0.4s !important;
}

.u-Tdelay5 {
  transition-delay: 0.5s !important;
}

.u-Adelay5 {
  animation-delay: 0.5s !important;
}

.u-Tdelay6 {
  transition-delay: 0.6s !important;
}

.u-Adelay6 {
  animation-delay: 0.6s !important;
}

.u-Tdelay7 {
  transition-delay: 0.7s !important;
}

.u-Adelay7 {
  animation-delay: 0.7s !important;
}

.u-Tdelay8 {
  transition-delay: 0.8s !important;
}

.u-Adelay8 {
  animation-delay: 0.8s !important;
}

.u-Tdelay9 {
  transition-delay: 0.9s !important;
}

.u-Adelay9 {
  animation-delay: 0.9s !important;
}

.u-Tdelay10 {
  transition-delay: 1s !important;
}

.u-Adelay10 {
  animation-delay: 1s !important;
}

.u-Tdelay11 {
  transition-delay: 1.1s !important;
}

.u-Adelay11 {
  animation-delay: 1.1s !important;
}

.u-Tdelay12 {
  transition-delay: 1.2s !important;
}

.u-Adelay12 {
  animation-delay: 1.2s !important;
}

.u-Tdelay13 {
  transition-delay: 1.3s !important;
}

.u-Adelay13 {
  animation-delay: 1.3s !important;
}

.u-Tdelay14 {
  transition-delay: 1.4s !important;
}

.u-Adelay14 {
  animation-delay: 1.4s !important;
}

.u-Tdelay15 {
  transition-delay: 1.5s !important;
}

.u-Adelay15 {
  animation-delay: 1.5s !important;
}

.u-Tdelay16 {
  transition-delay: 1.6s !important;
}

.u-Adelay16 {
  animation-delay: 1.6s !important;
}

.u-Tdelay17 {
  transition-delay: 1.7s !important;
}

.u-Adelay17 {
  animation-delay: 1.7s !important;
}

.u-Tdelay18 {
  transition-delay: 1.8s !important;
}

.u-Adelay18 {
  animation-delay: 1.8s !important;
}

.u-Tdelay19 {
  transition-delay: 1.9s !important;
}

.u-Adelay19 {
  animation-delay: 1.9s !important;
}

.u-Tdelay20 {
  transition-delay: 2s !important;
}

.u-Adelay20 {
  animation-delay: 2s !important;
}

.u-Tdelay21 {
  transition-delay: 2.1s !important;
}

.u-Adelay21 {
  animation-delay: 2.1s !important;
}

.u-Tdelay22 {
  transition-delay: 2.2s !important;
}

.u-Adelay22 {
  animation-delay: 2.2s !important;
}

.u-Tdelay23 {
  transition-delay: 2.3s !important;
}

.u-Adelay23 {
  animation-delay: 2.3s !important;
}

.u-Tdelay24 {
  transition-delay: 2.4s !important;
}

.u-Adelay24 {
  animation-delay: 2.4s !important;
}

.u-Tdelay25 {
  transition-delay: 2.5s !important;
}

.u-Adelay25 {
  animation-delay: 2.5s !important;
}

.u-Tdelay26 {
  transition-delay: 2.6s !important;
}

.u-Adelay26 {
  animation-delay: 2.6s !important;
}

.u-Tdelay27 {
  transition-delay: 2.7s !important;
}

.u-Adelay27 {
  animation-delay: 2.7s !important;
}

.u-Tdelay28 {
  transition-delay: 2.8s !important;
}

.u-Adelay28 {
  animation-delay: 2.8s !important;
}

.u-Tdelay29 {
  transition-delay: 2.9s !important;
}

.u-Adelay29 {
  animation-delay: 2.9s !important;
}

.u-Tdelay30 {
  transition-delay: 3s !important;
}

.u-Adelay30 {
  animation-delay: 3s !important;
}

.u-Tdelay31 {
  transition-delay: 3.1s !important;
}

.u-Adelay31 {
  animation-delay: 3.1s !important;
}

.u-Tdelay32 {
  transition-delay: 3.2s !important;
}

.u-Adelay32 {
  animation-delay: 3.2s !important;
}

.u-Tdelay33 {
  transition-delay: 3.3s !important;
}

.u-Adelay33 {
  animation-delay: 3.3s !important;
}

.u-Tdelay34 {
  transition-delay: 3.4s !important;
}

.u-Adelay34 {
  animation-delay: 3.4s !important;
}

.u-Tdelay35 {
  transition-delay: 3.5s !important;
}

.u-Adelay35 {
  animation-delay: 3.5s !important;
}

.u-Tdelay36 {
  transition-delay: 3.6s !important;
}

.u-Adelay36 {
  animation-delay: 3.6s !important;
}

.u-Tdelay37 {
  transition-delay: 3.7s !important;
}

.u-Adelay37 {
  animation-delay: 3.7s !important;
}

.u-Tdelay38 {
  transition-delay: 3.8s !important;
}

.u-Adelay38 {
  animation-delay: 3.8s !important;
}

.u-Tdelay39 {
  transition-delay: 3.9s !important;
}

.u-Adelay39 {
  animation-delay: 3.9s !important;
}

.u-Tdelay40 {
  transition-delay: 4s !important;
}

.u-Adelay40 {
  animation-delay: 4s !important;
}

.u-Tdelay41 {
  transition-delay: 4.1s !important;
}

.u-Adelay41 {
  animation-delay: 4.1s !important;
}

.u-Tdelay42 {
  transition-delay: 4.2s !important;
}

.u-Adelay42 {
  animation-delay: 4.2s !important;
}

.u-Tdelay43 {
  transition-delay: 4.3s !important;
}

.u-Adelay43 {
  animation-delay: 4.3s !important;
}

.u-Tdelay44 {
  transition-delay: 4.4s !important;
}

.u-Adelay44 {
  animation-delay: 4.4s !important;
}

.u-Tdelay45 {
  transition-delay: 4.5s !important;
}

.u-Adelay45 {
  animation-delay: 4.5s !important;
}

.u-Tdelay46 {
  transition-delay: 4.6s !important;
}

.u-Adelay46 {
  animation-delay: 4.6s !important;
}

.u-Tdelay47 {
  transition-delay: 4.7s !important;
}

.u-Adelay47 {
  animation-delay: 4.7s !important;
}

.u-Tdelay48 {
  transition-delay: 4.8s !important;
}

.u-Adelay48 {
  animation-delay: 4.8s !important;
}

.u-Tdelay49 {
  transition-delay: 4.9s !important;
}

.u-Adelay49 {
  animation-delay: 4.9s !important;
}

.u-Tdelay50 {
  transition-delay: 5s !important;
}

.u-Adelay50 {
  animation-delay: 5s !important;
}

html {
  scrollbar-gutter: stable;
}

body._fixed {
  overflow: hidden;
}

/*全画面*/
.g-header {
  position: fixed;
  width: 100%;
  transition: background-color var(--sec);
  z-index: 999;
  background-color: var(--color-bg-base);
  height: var(--header);
}
.g-header__inner {
  padding-inline-start: var(--space-block-md);
  height: 100%;
}
@media (width <= 1200px) {
  .g-header__inner {
    padding-inline-start: 10px;
  }
}
@media (width <= 1200px) {
  .g-header__logo {
    width: 160px;
  }
}
.g-header__info {
  display: flex;
  justify-content: space-between;
  align-items: center;
  height: 100%;
}
.g-header__nav {
  display: flex;
  align-items: center;
  gap: var(--space-block-sm);
  height: 100%;
}
@media (width <= 1200px) {
  .g-header__nav {
    display: none;
  }
}
.g-header__nav .nav {
  display: flex;
  align-items: center;
  gap: var(--space-block-sm);
}
.g-header__nav .nav__list a {
  transition: color var(--sec);
}
.g-header__nav .nav__list a:focus-visible {
  color: var(--color-primary);
}
@media (hover: hover) and (pointer: fine) {
  .g-header__nav .nav__list a:hover {
    color: var(--color-primary);
  }
}
.g-header .language {
  text-decoration: underline;
}
.g-header__contact {
  background-color: var(--color-primary);
  border: 1px solid var(--color-primary);
  padding: var(--space-block-xs) var(--space-block-sm);
  font-family: var(--typography-text_md_bold-font-family);
  font-weight: var(--typography-text_md_bold-font-weight);
  font-size: var(--typography-text_md_bold-font-size);
  line-height: var(--typography-text_md_bold-line-height);
  --letter-spacing: var(--typography-text_md_bold-letter-spacing);
  color: var(--color-light);
  height: 100%;
  display: flex;
  align-items: center;
  gap: var(--space-block-xs);
  transition: var(--sec);
}
.g-header__contact:focus-visible {
  background-color: var(--color-bg-base);
  color: var(--color-primary);
}
@media (hover: hover) and (pointer: fine) {
  .g-header__contact:hover {
    background-color: var(--color-bg-base);
    color: var(--color-primary);
  }
}
.g-header__hm-line {
  position: absolute;
  top: 0;
  right: 0;
  cursor: pointer;
  height: 100%;
  aspect-ratio: 1/1;
  display: none;
  background-color: var(--color-base);
}
@media (width <= 1200px) {
  .g-header__hm-line {
    display: block;
  }
}
.g-header__hm-line._active span:nth-of-type(1) {
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) rotate(20deg);
}
.g-header__hm-line._active span:nth-of-type(2) {
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) rotate(-20deg);
}
.g-header__hm-line._active .nav__txt._menu {
  display: none;
}
.g-header__hm-line._active .nav__txt._close {
  display: block;
}
.g-header__hm-line span {
  position: absolute;
  display: inline-block;
  transition: all var(--sec);
  background-color: var(--color-bg-base);
  height: 1px;
  width: 30px;
  left: 50%;
  transform: translateX(-50%);
  border-radius: 10px;
}
.g-header__hm-line span:nth-of-type(1) {
  top: 42%;
}
.g-header__hm-line span:nth-of-type(2) {
  top: 58%;
}
.g-header__hm-line .nav__txt._close {
  display: none;
}
.g-header__hm {
  position: fixed;
  top: 60px;
  right: -120%;
  width: 100%;
  height: 100vh;
  transition: all var(--sec);
  z-index: 9999;
  background-color: var(--color-bg-base);
}
.g-header__hm._panelactive {
  right: 0;
}
.g-header__hm .hm__inner {
  padding: var(--space-block-md);
  width: 100%;
  width: fit-content;
  margin-inline: auto;
}
.g-header__hm .hm__menu {
  display: flex;
  flex-direction: column;
  gap: var(--space-block-sm);
}
.g-header__hm .g-header__contact {
  margin-block-start: var(--space-block-md);
  padding-block: var(--space-block-sm);
}

/*フッター*/
.g-footer .footer {
  margin-block-start: var(--space-block-md);
  text-align: center;
}
.g-footer .footer__logo {
  margin-block-end: var(--space-block-xs);
}
.g-footer .footer__info {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-block-xs);
}
@media (width <= 768px) {
  .g-footer .footer__info {
    flex-direction: column;
  }
}
.g-footer .footer__info a {
  transition: opacity var(--sec);
}
.g-footer .footer__info a:focus-visible {
  opacity: var(--opacity);
}
@media (hover: hover) and (pointer: fine) {
  .g-footer .footer__info a:hover {
    opacity: var(--opacity);
  }
}
.g-footer .footer__copy {
  font-family: var(--typography-text_sm_en-font-family);
  font-weight: var(--typography-text_sm_en-font-weight);
  font-size: var(--typography-text_sm_en-font-size);
  line-height: var(--typography-text_sm_en-line-height);
  --letter-spacing: var(--typography-text_sm_en-letter-spacing);
  padding-block: var(--space-block-xs);
  text-align: center;
  border-block-start: 1px solid var(--color-border);
  margin-block-start: var(--space-block-md);
}

/*メイン*/
.g-main {
  display: block;
}
.g-main:after {
  content: " ";
  display: block;
  clear: both;
}

.q-mv {
  position: relative;
  height: 100svh;
  min-height: 600px;
}
@media (width <= 768px) {
  .q-mv {
    height: calc(100svh - 60px);
  }
}
.q-mv .mv__slide {
  height: 100%;
  overflow: hidden;
}
.q-mv .mv__slide * {
  height: 100%;
}
.q-mv .mv__slide img {
  display: inline-block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.q-mv .mv__catch {
  position: absolute;
  left: var(--space-block-xl);
  bottom: var(--space-block-xl);
  font-family: var(--typography-title_lg-font-family);
  font-weight: var(--typography-title_lg-font-weight);
  font-size: var(--typography-title_lg-font-size);
  line-height: var(--typography-title_lg-line-height);
  --letter-spacing: var(--typography-title_lg-letter-spacing);
  font-size: 2rem;
  color: var(--color-light);
  letter-spacing: 0.1em;
  margin-inline-end: var(--space-block-md);
}
@media (width <= 800px) {
  .q-mv .mv__catch {
    left: var(--space-block-sm);
    margin-inline-end: var(--space-block-sm);
  }
}
@media (width <= 768px) {
  .q-mv .mv__catch {
    font-size: 1.5rem;
    bottom: var(--space-block-md);
  }
}
.q-mv .mv__button {
  position: absolute;
  right: var(--space-block-sm);
  bottom: var(--space-block-sm);
  background-color: var(--color-primary);
  border: 1px solid var(--color-primary);
  border-radius: 99px;
  display: flex;
  align-items: center;
  gap: var(--space-block-xs);
  width: max-content;
  color: var(--color-light);
  padding: var(--space-block-xs) var(--space-block-sm);
  transition: var(--sec);
}
@media (width <= 768px) {
  .q-mv .mv__button {
    bottom: -54px;
    right: 50%;
    translate: 50% 0;
  }
}
.q-mv .mv__button:focus-visible {
  background-color: var(--color-bg-base);
  color: var(--color-primary);
}
@media (hover: hover) and (pointer: fine) {
  .q-mv .mv__button:hover {
    background-color: var(--color-bg-base);
    color: var(--color-primary);
  }
}
.q-mv .mv__button .text {
  display: flex;
  align-items: center;
  gap: var(--space-block-xs);
}
.q-mv .mv__button .text .jp {
  font-family: var(--typography-text_md_bold-font-family);
  font-weight: var(--typography-text_md_bold-font-weight);
  font-size: var(--typography-text_md_bold-font-size);
  line-height: var(--typography-text_md_bold-line-height);
  --letter-spacing: var(--typography-text_md_bold-letter-spacing);
}
.q-mv .mv__button .text .en {
  font-family: var(--typography-text_sm_en-font-family);
  font-weight: var(--typography-text_sm_en-font-weight);
  font-size: var(--typography-text_sm_en-font-size);
  line-height: var(--typography-text_sm_en-line-height);
  --letter-spacing: var(--typography-text_sm_en-letter-spacing);
  line-height: 1;
  margin-block-end: -4px;
}
.q-mv .mv__button .arrow {
  display: flex;
}

.q-about .column {
  display: flex;
  justify-content: space-between;
  gap: var(--space-block-lg) var(--space-block-xl);
  margin-block-end: var(--space-block-lg);
}
@media (width <= 1000px) {
  .q-about .column {
    column-gap: var(--space-block-md);
  }
}
@media (width <= 768px) {
  .q-about .column {
    flex-direction: column;
  }
}
.q-about .column__head {
  width: 50%;
  min-width: 50%;
  padding-block: var(--space-block-lg);
}
@media (width <= 768px) {
  .q-about .column__head {
    width: 100%;
    padding-block: 0;
  }
}
.q-about .column__body {
  margin-inline-end: calc(50% - calc(var(--vw) * 50));
  width: 100%;
}
@media (width <= 768px) {
  .q-about .column__body {
    height: 350px;
  }
}
.q-about .column__body img {
  display: inline-block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top right;
}
.q-about .foot {
  margin-inline-start: calc(-1 * var(--l-section-space-inline));
}

.q-inn-suite {
  position: relative;
}
.q-inn-suite .slide {
  margin-block-start: var(--space-block-md);
}

.q-restaurant .restaurant {
  margin-block-start: var(--space-block-md);
}
.q-restaurant .restaurant__box {
  padding: var(--space-block-md);
  display: flex;
  align-items: flex-start;
  gap: var(--space-block-md);
  background-color: var(--color-bg-ash-dark);
}
@media (width <= 768px) {
  .q-restaurant .restaurant__box {
    padding: var(--space-block-md) var(--space-block-sm);
    gap: var(--space-block-sm);
  }
}
.q-restaurant .restaurant__box:not(:last-child) {
  margin-block-end: var(--space-block-sm);
}
.q-restaurant .restaurant__title {
  background-color: var(--color-bg-base);
  border-block: 2px solid var(--color-primary);
  padding: var(--space-block-sm) 14px;
  position: relative;
  margin-block-start: 10px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-block-sm);
  max-width: 50px;
}
.q-restaurant .restaurant__title::before {
  content: "";
  display: inline-block;
  position: absolute;
  width: 2px;
  height: 10px;
  top: -10px;
  left: 50%;
  background-color: var(--color-primary);
}
.q-restaurant .restaurant__title .title {
  font-family: var(--typography-title_md-font-family);
  font-weight: var(--typography-title_md-font-weight);
  font-size: var(--typography-title_md-font-size);
  line-height: var(--typography-title_md-line-height);
  --letter-spacing: var(--typography-title_md-letter-spacing);
  writing-mode: vertical-rl;
}
.q-restaurant .restaurant__title .en {
  font-family: var(--typography-text_md_en-font-family);
  font-weight: var(--typography-text_md_en-font-weight);
  font-size: var(--typography-text_md_en-font-size);
  line-height: var(--typography-text_md_en-line-height);
  --letter-spacing: var(--typography-text_md_en-letter-spacing);
  color: var(--color-primary);
  writing-mode: vertical-rl;
  text-orientation: mixed;
}
.q-restaurant .restaurant__store {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--space-block-md) var(--space-block-sm);
}
@media (width <= 768px) {
  .q-restaurant .restaurant__store {
    grid-template-columns: 1fr;
  }
}
.q-restaurant .restaurant__image {
  margin-block-end: var(--space-block-sm);
}
.q-restaurant .restaurant__image img {
  width: 100%;
}
.q-restaurant .restaurant .c-text a {
  transition: opacity var(--sec);
}
.q-restaurant .restaurant .c-text a:focus-visible {
  opacity: var(--opacity);
}
@media (hover: hover) and (pointer: fine) {
  .q-restaurant .restaurant .c-text a:hover {
    opacity: var(--opacity);
  }
}
.q-restaurant .restaurant .c-text a .text {
  text-decoration: underline;
}
.q-restaurant .restaurant .c-text a img {
  vertical-align: middle;
}

.q-access {
  position: relative;
}
.q-access .access__map {
  margin-block-end: var(--space-block-lg);
}
.q-access .access__map iframe {
  width: 100%;
  aspect-ratio: 800/533;
}
.q-access .access__title {
  margin-block-end: var(--space-block-md);
}
.q-access .access__title .map {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--space-block-xs);
}
.q-access .access__title .c-button_map {
  margin-block-start: 0;
}
.q-access .access__item {
  padding-block-end: var(--space-block-md);
  border-block-end: 1px solid var(--color-border);
  position: relative;
}
.q-access .access__item::before {
  content: "";
  display: inline-block;
  position: absolute;
  width: 70px;
  height: 1px;
  bottom: -1px;
  left: 0;
  background-color: var(--color-base);
}
.q-access .access__item:not(:last-child) {
  margin-block-end: var(--space-block-md);
}
.q-access .access__item .item .title {
  font-family: var(--typography-text_md_bold-font-family);
  font-weight: var(--typography-text_md_bold-font-weight);
  font-size: var(--typography-text_md_bold-font-size);
  line-height: var(--typography-text_md_bold-line-height);
  --letter-spacing: var(--typography-text_md_bold-letter-spacing);
  margin-block-end: var(--space-block-xs);
}

@media (width <= 768px) {
  .q-breakimage {
    height: 460px;
  }
}
.q-breakimage img {
  width: 100%;
}
@media (width <= 768px) {
  .q-breakimage img {
    display: inline-block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
  }
}

.q-faq .faq__item {
  border-block-start: 1px solid var(--color-border);
}
.q-faq .faq__item:last-child {
  border-block-end: 1px solid var(--color-border);
}
.q-faq .faq__item .sg-details.is-open .sg-summary .u-svg {
  rotate: 180deg;
}
.q-faq .faq__item .sg-summary {
  padding: var(--space-block-md) var(--space-block-sm);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-block-sm);
}
@media (width <= 768px) {
  .q-faq .faq__item .sg-summary {
    padding-inline: var(--space-block-xs);
  }
}
.q-faq .faq__item .sg-summary .u-svg {
  min-width: 13px;
}
.q-faq .faq__item .initials {
  color: var(--color-primary);
}
.q-faq .faq__item .sg-panel {
  margin-inline: var(--space-block-sm);
  padding-block: var(--space-block-md);
  border-block-start: 1px dashed var(--color-border);
}
@media (width <= 768px) {
  .q-faq .faq__item .sg-panel {
    margin-inline: var(--space-block-xs);
  }
}

.q-experience {
  position: relative;
}
.q-experience .experience {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--space-block-lg);
}
@media (width <= 1000px) {
  .q-experience .experience {
    column-gap: var(--space-block-md);
  }
}
@media (width <= 768px) {
  .q-experience .experience {
    grid-template-columns: 1fr;
  }
}
.q-experience .experience__image {
  margin-block-end: var(--space-block-sm);
}
.q-experience .experience__image img {
  width: 100%;
}
.q-experience .experience__access {
  margin-block-start: var(--space-block-sm);
  display: flex;
  align-items: center;
  gap: var(--space-block-xxs);
  border: 1px solid var(--color-primary);
  background-color: var(--color-light);
  border-radius: 99px;
  padding: var(--space-block-xxs) var(--space-block-sm);
  color: var(--color-primary);
  width: fit-content;
}
@media (width <= 768px) {
  .q-experience .experience__access {
    padding-inline: var(--space-block-xs);
  }
}
.q-experience .experience__access .icon {
  display: flex;
}
@media (width <= 768px) {
  .q-experience .experience__access .text {
    line-height: calc(20/16);
  }
}

.q-reservation {
  position: relative;
}
.q-reservation .c-heading2 {
  position: relative;
  z-index: 1;
}
.q-reservation .reservation {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
}
@media (width <= 768px) {
  .q-reservation .reservation {
    grid-template-columns: 1fr;
  }
}
.q-reservation .reservation__image {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.q-reservation .reservation__image::after {
  content: "";
  display: inline-block;
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  background-color: color-mix(in srgb, var(--color-base) 80%, transparent);
}
.q-reservation .reservation__image img {
  display: inline-block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.q-reservation .reservation__item {
  border: 1px solid var(--color-border);
  padding: var(--space-block-md);
  display: flex;
  flex-direction: column;
  gap: var(--space-block-sm);
  align-items: center;
  color: var(--color-light);
}
@media (width <= 1000px) {
  .q-reservation .reservation__item {
    padding-inline: var(--space-block-xs);
  }
}
@media (768px <= width) {
  .q-reservation .reservation__item:first-child {
    border-inline-end: none;
  }
}
@media (width <= 768px) {
  .q-reservation .reservation__item:first-child {
    border-block-end: none;
  }
}
.q-reservation .reservation__title {
  font-family: var(--typography-title_lg-font-family);
  font-weight: var(--typography-title_lg-font-weight);
  font-size: var(--typography-title_lg-font-size);
  line-height: var(--typography-title_lg-line-height);
  --letter-spacing: var(--typography-title_lg-letter-spacing);
  text-align: center;
}
.q-reservation .reservation__tel {
  border-block-start: 1px dashed var(--color-border);
  padding-block-start: var(--space-block-sm);
  padding-inline: var(--space-block-xs);
}
@media (width <= 768px) {
  .q-reservation .reservation__tel {
    padding-inline: 0;
  }
}
.q-reservation .reservation__tel .tel {
  display: flex;
  align-items: center;
  gap: var(--space-block-xs);
}
.q-reservation .reservation__tel .tel a {
  font-family: var(--typography-text_lg_en-font-family);
  font-weight: var(--typography-text_lg_en-font-weight);
  font-size: var(--typography-text_lg_en-font-size);
  line-height: var(--typography-text_lg_en-line-height);
  --letter-spacing: var(--typography-text_lg_en-letter-spacing);
  pointer-events: none;
}
@media (width <= 768px) {
  .q-reservation .reservation__tel .tel a {
    pointer-events: all;
  }
}
.q-reservation .reservation__tel .time {
  text-align: center;
  font-family: var(--typography-text_lg-font-family);
  font-weight: var(--typography-text_lg-font-weight);
  font-size: var(--typography-text_lg-font-size);
  line-height: var(--typography-text_lg-line-height);
  --letter-spacing: var(--typography-text_lg-letter-spacing);
}

