@charset "UTF-8";
:root {
  --viewport-width: min(100vw, 2000px);
  --b: calc(var(--viewport-width) / 160);
}

* {
  color: #554B40;
  font-family: YakuHanJP, "Zen Kaku Gothic Antique", sans-serif;
  font-size: max(1.6rem, 14px);
  font-weight: 400;
  line-height: 2;
  letter-spacing: 0.1em;
}

a > *,
button > * {
  pointer-events: none;
  color: inherit;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
  letter-spacing: inherit;
}

a,
button {
  display: block;
}

span {
  display: inline-block;
  color: inherit;
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
  letter-spacing: inherit;
}

.sectionTitle {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: baseline;
      -ms-flex-align: baseline;
          align-items: baseline;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: max(1rem, 10px) max(2rem, 15px);
  margin-bottom: max(3rem, 20px);
  z-index: 0;
}
.sectionTitle__main {
  position: relative;
  font-family: YakuHanJP, "DM Sans", sans-serif;
  color: inherit;
  font-size: max(1.6rem, 16px);
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: 0.1em;
}
.sectionTitle__main::before {
  content: "●";
  color: inherit;
  font-size: 0.7em;
  font-weight: inherit;
  line-height: inherit;
  letter-spacing: inherit;
  margin-right: 0.5em;
  opacity: 0.4;
}
.sectionTitle__sub {
  color: inherit;
  font-size: max(2.9rem, 20px);
  font-weight: 400;
  line-height: 2.2;
  letter-spacing: 0.075em;
}
.sectionTitle--primary {
  color: #fff;
}
.sectionTitle--secondary {
  color: #554B40;
}

.btnBox .btn {
  position: relative;
  text-align: center;
  width: 100%;
  max-width: 630px;
  margin: 0 auto;
  padding: max(2rem, 15px);
  border-radius: 9999px;
  z-index: 0;
  background: -webkit-gradient(linear, left top, left bottom, from(#CBB990), to(#817363));
  background: linear-gradient(to bottom, #CBB990, #817363);
}
.btnBox .btn::before {
  content: "";
  position: absolute;
  inset: min(-0.8rem, -5px);
  border-radius: 999px;
  background: -webkit-gradient(linear, left top, left bottom, from(#CBB990), to(#817363));
  background: linear-gradient(to bottom, #CBB990, #817363);
  mix-blend-mode: multiply;
  z-index: -1;
  -webkit-transition: inset 0.4s ease;
  transition: inset 0.4s ease;
}
.btnBox .btn__text {
  color: #fff;
  font-size: max(2.2rem, 16px);
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.075em;
}
.btnBox .btn__icon {
  position: absolute;
  top: 50%;
  right: 5%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  color: #fff;
}
.btnBox .btn--primary {
  position: relative;
}
.btnBox .btn.reverse .btn__icon {
  right: unset;
  left: 5%;
  -webkit-transform: translateY(-50%) scaleX(-1);
          transform: translateY(-50%) scaleX(-1);
}
.btnBox .btn:hover::before {
  inset: 0;
}

.internal {
  background: #39322C;
}
.internal__wrapper {
  padding-top: max(11rem, 60px);
  padding-bottom: max(11rem, 60px);
}

.side {
  position: fixed;
  right: 0;
  bottom: 15%;
  z-index: 9999;
}
@media screen and (max-width: 550px) {
  .side {
    bottom: 0;
    left: 0;
    width: 100%;
  }
}
.side__list {
  display: grid;
  grid-template-rows: repeat(3, 1fr);
  gap: max(0.3rem, 3px);
}
@media screen and (max-width: 550px) {
  .side__list {
    gap: 0;
    grid-template-columns: repeat(3, 1fr);
    grid-template-rows: 1fr;
  }
}
.side__list__item {
  display: grid;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  grid-template-columns: max(1.25vw, 20px) 1fr;
  -webkit-column-gap: max(1rem, 10px);
     -moz-column-gap: max(1rem, 10px);
          column-gap: max(1rem, 10px);
  padding: max(1.5rem, 15px) max(2rem, 20px);
  background: #1D1613;
  line-height: 1;
  -webkit-transform: translateZ(0);
          transform: translateZ(0);
  will-change: filter;
  -webkit-transition: -webkit-filter 0.4s ease;
  transition: -webkit-filter 0.4s ease;
  transition: filter 0.4s ease;
  transition: filter 0.4s ease, -webkit-filter 0.4s ease;
}
@media screen and (max-width: 550px) {
  .side__list__item {
    padding: 15px 15px;
    border-left: 1px solid #fff;
  }
}
@media screen and (max-width: 550px) {
  .side__list__item:first-child {
    border-left: none;
  }
}
.side__list__item__icon {
  width: 100%;
}
.side__list__item__text {
  color: #fff;
  font-size: max(1vw, 16px);
}
@media screen and (max-width: 550px) {
  .side__list__item__text {
    font-size: 14px;
  }
}
.side__list__item:hover {
  -webkit-filter: blur(1px);
          filter: blur(1px);
}

.header {
  position: fixed;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  top: 0;
  left: 0;
  right: 0;
  width: 100%;
  height: max(8rem, 55px);
  padding-left: max(2%, 10px);
  background: rgba(85, 75, 64, 0.1);
  border-bottom: max(0.2rem, 2px) solid #fff;
  backdrop-filter: brightness(0.79) blur(10px);
  -webkit-transform: translateZ(0);
          transform: translateZ(0);
  will-change: backdrop-filter;
  z-index: 99999;
}
.header__logo {
  width: max(18rem, 150px);
  height: auto;
}
.header__nav {
  -ms-flex-item-align: stretch;
      align-self: stretch;
}
.header__nav__list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: max(6rem, 30px);
  height: 100%;
}
@media screen and (max-width: 1300px) {
  .header__nav__list {
    gap: max(4.5rem, 20px);
  }
}
@media screen and (max-width: 1000px) {
  .header__nav__list .header__nav__item {
    display: none;
  }
}
.header__nav__list .header__nav__item button {
  color: #fff;
  font-family: YakuHanJP, "DM Sans", sans-serif;
  font-size: max(1.6rem, 13px);
  font-weight: 100;
  line-height: 2;
  letter-spacing: 0.1em;
  -webkit-transform: translateZ(0);
          transform: translateZ(0);
  will-change: filter;
  -webkit-transition: -webkit-filter 0.4s ease;
  transition: -webkit-filter 0.4s ease;
  transition: filter 0.4s ease;
  transition: filter 0.4s ease, -webkit-filter 0.4s ease;
}
.header__nav__list .header__nav__item button:hover {
  -webkit-filter: blur(1px);
          filter: blur(1px);
}
.header__nav__btnBox {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-item-align: stretch;
      align-self: stretch;
  height: auto;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.header__nav__btnBox .header__btnBox__btn {
  height: 100%;
  padding: max(1rem, 5px) max(3rem, 15px);
  color: #fff;
  backdrop-filter: blur(30px) brightness(20%);
  -webkit-transform: translateZ(0);
          transform: translateZ(0);
  will-change: filter, backdrop-filter;
  -webkit-transition: -webkit-filter 0.4s ease;
  transition: -webkit-filter 0.4s ease;
  transition: filter 0.4s ease;
  transition: filter 0.4s ease, -webkit-filter 0.4s ease;
}
@media screen and (max-width: 1300px) {
  .header__nav__btnBox .header__btnBox__btn {
    padding: max(1rem, 5px) max(2rem, 10px);
  }
}
.header__nav__btnBox .header__btnBox__btn--reserve {
  background: rgba(0, 0, 0, 0.4);
}
.header__nav__btnBox .header__btnBox__btn--request {
  background: rgba(0, 0, 0, 0.7);
}
.header__nav__btnBox .header__btnBox__btn:hover {
  -webkit-filter: blur(1px);
          filter: blur(1px);
}

.footer {
  background-image: url(../images/footer-bg.webp);
  background-size: cover;
  background-position: center;
  width: 100%;
}
.footer .logo {
  width: max(20%, 150px);
  margin: 0 auto;
  padding: max(10.4rem, 50px) 0 max(4.7rem, 20px);
}
.footer .footer__nav {
  padding-bottom: max(15.5rem, 25px);
}
.footer .footer__nav--list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 3rem;
  width: 77%;
  margin: 0 auto;
}
@media screen and (max-width: 768px) {
  .footer .footer__nav--list {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
}
.footer .footer__nav--item {
  width: 100%;
}
.footer .footer__nav--item a {
  padding: max(3rem, 14px);
  color: #fff;
  font-size: max(2rem, 14px);
  line-height: 1;
  text-align: center;
  border-radius: 54px;
  background: rgba(255, 255, 255, 0.2); /* 半透明白背景 */ /* Safari対応 */
  backdrop-filter: blur(30px); /* 背景ぼかし（すりガラス効果） */
  -webkit-transform: translateZ(0);
          transform: translateZ(0);
  will-change: backdrop-filter, transform;
  -webkit-transition: 0.5s;
  transition: 0.5s;
}
.footer .footer__nav--item a:hover {
  -webkit-transform: scale(0.95) translateZ(0);
          transform: scale(0.95) translateZ(0);
  opacity: 0.4;
}
.footer .footer__copyright {
  text-align: center;
  padding-bottom: 2.7rem;
}
@media screen and (max-width: 768px) {
  .footer .footer__copyright {
    padding-bottom: calc(2.7rem + 50px);
  }
}
.footer .footer__copyright p {
  font-family: YakuHanJP, "DM Sans", sans-serif;
  font-size: max(1.2rem, 8px);
  color: #fff;
}

.hero {
  position: relative;
  overflow: hidden;
  z-index: 0;
  width: 100%;
  height: 100svh;
}
.hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: #a7a7a7;
  mix-blend-mode: multiply;
  z-index: 10;
}
.hero::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  width: 100%;
  height: 20%;
  background: -webkit-gradient(linear, left bottom, left top, from(#261d10), color-stop(30%, #261d10), to(rgba(38, 29, 16, 0)));
  background: linear-gradient(to top, #261d10, #261d10 30%, rgba(38, 29, 16, 0));
  z-index: 100;
}
.hero__bg {
  position: relative;
  width: 100%;
  min-width: 800px;
  height: 100%;
  aspect-ratio: 32/23;
}
.hero__bg img {
  width: 100%;
  height: 100%;
}
.hero__bg__back {
  width: 100%;
  height: 100%;
}
.hero__bg__middle {
  position: absolute;
  top: 50%;
  right: 0;
  width: 105%;
  height: auto;
  aspect-ratio: 1/1;
  border-radius: 50%;
  overflow: hidden;
  -webkit-filter: blur(10px);
          filter: blur(10px);
  -webkit-transform-origin: center right;
          transform-origin: center right;
  -webkit-transform: translate3d(17.5%, -50%, 0) scale(1.01);
          transform: translate3d(17.5%, -50%, 0) scale(1.01);
  will-change: filter, transform;
  -webkit-transition: all 1.2s ease 0.1s;
  transition: all 1.2s ease 0.1s;
}
@media screen and (max-width: 550px) {
  .hero__bg__middle {
    -webkit-transform: translate3d(0%, -50%, 0);
            transform: translate3d(0%, -50%, 0);
  }
}
.hero__bg__middle::before {
  content: "";
  position: absolute;
  inset: 0;
  background: #cbb990;
  mix-blend-mode: multiply;
}
.hero__bg__front {
  position: absolute;
  top: 50%;
  right: 0;
  width: 90%;
  height: auto;
  aspect-ratio: 1/1;
  overflow: hidden;
  border-radius: 50%;
  -webkit-filter: blur(10px);
          filter: blur(10px);
  -webkit-transform-origin: center right;
          transform-origin: center right;
  -webkit-transform: translate3d(15%, -50%, 0) scale(1.05);
          transform: translate3d(15%, -50%, 0) scale(1.05);
  will-change: filter, transform;
  -webkit-transition: all 1s ease;
  transition: all 1s ease;
}
@media screen and (max-width: 550px) {
  .hero__bg__front {
    -webkit-transform: translate3d(-10%, -50%, 0);
            transform: translate3d(-10%, -50%, 0);
  }
}
.hero__text {
  position: absolute;
  inset: 0;
  z-index: 10;
}
.hero__text__title {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 10%;
}
.hero__text__title h1 {
  color: #fff;
  font-size: 1.3125vw;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.1em;
  padding-left: 2.5%;
  margin-bottom: max(1.5rem, 10px);
  mix-blend-mode: difference;
  opacity: 0;
}
@media screen and (max-width: 768px) {
  .hero__text__title h1 {
    font-size: 2.5vw;
  }
}
.hero__text__title p {
  color: #fff;
  font-family: YakuHanJP, "DM Sans", sans-serif;
  font-size: 11.5625vw;
  font-weight: 100;
  line-height: 1;
  letter-spacing: 0.1em;
  mix-blend-mode: difference;
  opacity: 0;
}
@media screen and (max-width: 768px) {
  .hero__text__title p {
    font-size: 13vw;
  }
}
.hero__text__title .char {
  opacity: 0;
  -webkit-transform: translateY(6px);
          transform: translateY(6px);
  -webkit-transition: opacity 0.5s ease, -webkit-transform 0.5s ease;
  transition: opacity 0.5s ease, -webkit-transform 0.5s ease;
  transition: opacity 0.5s ease, transform 0.5s ease;
  transition: opacity 0.5s ease, transform 0.5s ease, -webkit-transform 0.5s ease;
}
.hero__text__title.is-loaded .char {
  opacity: 1;
  -webkit-transform: translateY(0);
          transform: translateY(0);
}
.hero__text__supplement {
  position: absolute;
  inset: 0;
  overflow: hidden;
}
.hero__text__supplement strong {
  position: absolute;
  top: calc(max(8rem, 50px) + max(5rem, 40px));
  right: 0;
  -webkit-writing-mode: vertical-rl;
      -ms-writing-mode: tb-rl;
          writing-mode: vertical-rl;
  text-orientation: mixed;
}
.hero__text__supplement strong > span {
  color: #fff;
  font-size: max(1.25vw, 20px);
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.2em;
  background: #39322C;
  padding: max(1rem, 10px) max(1rem, 5px);
  margin-left: max(1.5rem, 5px);
  opacity: 0;
  -webkit-transform: scaleY(0);
          transform: scaleY(0);
  -webkit-transform-origin: top;
          transform-origin: top;
  -webkit-transition: -webkit-transform 0.4s ease-out;
  transition: -webkit-transform 0.4s ease-out;
  transition: transform 0.4s ease-out;
  transition: transform 0.4s ease-out, -webkit-transform 0.4s ease-out;
}
.hero__text__supplement strong > span:nth-of-type(1) {
  -webkit-transition-delay: 0.1s;
          transition-delay: 0.1s;
}
.hero__text__supplement strong > span:nth-of-type(2) {
  -webkit-transition-delay: 0.2s;
          transition-delay: 0.2s;
}
.hero__text__supplement strong > span:nth-of-type(3) {
  -webkit-transition-delay: 0.3s;
          transition-delay: 0.3s;
}
.hero__text__supplement strong > span:nth-of-type(4) {
  -webkit-transition-delay: 0.4s;
          transition-delay: 0.4s;
}
.hero__text__supplement strong > span .char {
  opacity: 0;
  -webkit-transform: scale(1.05) translateZ(0);
          transform: scale(1.05) translateZ(0);
  -webkit-filter: blur(20px);
          filter: blur(20px);
  -webkit-transition: opacity 0.6s ease-out, -webkit-transform 0.6s ease-out, -webkit-filter 0.6s ease-out;
  transition: opacity 0.6s ease-out, -webkit-transform 0.6s ease-out, -webkit-filter 0.6s ease-out;
  transition: opacity 0.6s ease-out, transform 0.6s ease-out, filter 0.6s ease-out;
  transition: opacity 0.6s ease-out, transform 0.6s ease-out, filter 0.6s ease-out, -webkit-transform 0.6s ease-out, -webkit-filter 0.6s ease-out;
  will-change: transform, filter;
}
.hero__text__supplement strong.is-loaded span {
  -webkit-transform: scaleY(1);
          transform: scaleY(1);
}
.hero__text__supplement strong.is-loaded span .char {
  opacity: 1;
  -webkit-transform: scale(1) translateZ(0);
          transform: scale(1) translateZ(0);
  -webkit-filter: blur(0);
          filter: blur(0);
}
.hero {
  /* ============================================================
   * スクロール誘導インジケータ（縦書きテキスト + 縦長カプセル）
   * ------------------------------------------------------------
   * 仕様:
   *   - PC : ヒーロー左端中央に絶対配置（left:1%, top:50% センタリング）
   *   - SP : ヒーロー右下に絶対配置（right:5%, bottom:11%）
   * 制約 / 注意:
   *   - 旧実装は親 .hero__scroll に width 指定が無く、
   *     子 .hero__scroll__icon の `width: 100%` と循環依存し、
   *     iOS Mobile Safari 実機で aspect-ratio を含む intrinsic
   *     sizing が極小に解決されてアイコンが潰れる不具合があった。
   *   - 本実装では親に明示的な幅を与え、flex で中央寄せに固定し、
   *     縦書きテキストが親幅を引っ張らないよう flex-shrink:0 を付与。
   * ============================================================ */
}
.hero__scroll {
  position: absolute;
  left: 1%;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  /* 親に明示的な幅を持たせ、子の `width: 100%` との循環依存を断つ */
  width: max(1.4vw, 20px);
  /* 縦書きテキストとアイコンを中央揃えで縦並び（堅牢化） */
  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: max(1rem, 8px);
  opacity: 0;
  -webkit-transition: 1s opacity 2s;
  transition: 1s opacity 2s;
  z-index: 1000;
}
@media screen and (max-width: 768px) {
  .hero__scroll {
    left: unset;
    top: unset;
    right: 5%;
    bottom: 11%;
    -webkit-transform: translateY(0);
            transform: translateY(0);
    /* SP では実機での確実性のため固定 px を採用 */
    width: 20px;
  }
}
.hero__scroll__text {
  color: #fff;
  font-family: YakuHanJP, "DM Sans", sans-serif;
  font-size: max(0.875vw, 14px);
  font-weight: 100;
  line-height: 1;
  letter-spacing: 0.1em;
  -webkit-writing-mode: vertical-lr;
      -ms-writing-mode: bt-lr;
          writing-mode: vertical-lr;
  text-orientation: mixed;
  -webkit-transform: scale(-1, -1);
          transform: scale(-1, -1);
  direction: rtl;
  /* 縦書きテキストが flex の伸縮で親幅を侵さないように固定 */
  -ms-flex-negative: 0;
      flex-shrink: 0;
}
.hero__scroll__icon {
  position: relative;
  width: 100%;
  height: auto;
  aspect-ratio: 1/2.5;
  border: max(0.1rem, 1px) solid #fff;
  border-radius: 999px;
}
.hero__scroll__icon__circle {
  position: absolute;
  /* 親アイコンのサイズ変動に追従できるよう max() でフォールバック */
  inset: max(0.3rem, 3px);
}
.hero__scroll__icon__circle::before {
  content: "";
  position: absolute;
  top: 0;
  width: 100%;
  height: auto;
  aspect-ratio: 1/1;
  background: #fff;
  border-radius: 50%;
  opacity: 0;
  -webkit-animation: scrollInduction 3s ease-out infinite 2.5s;
          animation: scrollInduction 3s ease-out infinite 2.5s;
}
@-webkit-keyframes scrollInduction {
  0% {
    opacity: 0;
  }
  10% {
    opacity: 1;
    -webkit-transform: translateY(0%);
            transform: translateY(0%);
  }
  70% {
    -webkit-transform: translateY(250%);
            transform: translateY(250%);
    opacity: 0;
  }
  100% {
    -webkit-transform: translateY(250%);
            transform: translateY(250%);
    opacity: 0;
  }
}
@keyframes scrollInduction {
  0% {
    opacity: 0;
  }
  10% {
    opacity: 1;
    -webkit-transform: translateY(0%);
            transform: translateY(0%);
  }
  70% {
    -webkit-transform: translateY(250%);
            transform: translateY(250%);
    opacity: 0;
  }
  100% {
    -webkit-transform: translateY(250%);
            transform: translateY(250%);
    opacity: 0;
  }
}
.hero.loaded .hero__bg__middle {
  -webkit-filter: blur(0px);
          filter: blur(0px);
  -webkit-transform: translate3d(17.5%, -50%, 0) scale(1);
          transform: translate3d(17.5%, -50%, 0) scale(1);
}
@media screen and (max-width: 550px) {
  .hero.loaded .hero__bg__middle {
    -webkit-transform: translate3d(6%, -50%, 0) scale(1);
            transform: translate3d(6%, -50%, 0) scale(1);
  }
}
.hero.loaded .hero__bg__front {
  -webkit-filter: blur(0px);
          filter: blur(0px);
  -webkit-transform: translate3d(15%, -50%, 0) scale(1);
          transform: translate3d(15%, -50%, 0) scale(1);
}
@media screen and (max-width: 550px) {
  .hero.loaded .hero__bg__front {
    -webkit-transform: translate3d(-5%, -50%, 0) scale(1);
            transform: translate3d(-5%, -50%, 0) scale(1);
  }
}
.hero.loaded .hero__scroll {
  opacity: 1;
}

.concept {
  position: relative;
  z-index: 0;
}
.concept__bg {
  position: absolute;
  inset: 0;
  z-index: -1;
}
.concept__bg img {
  width: 100%;
  height: 100%;
}
.concept__wrapper {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  gap: 30px max(5rem, 20px);
  padding-top: max(16rem, 80px);
  padding-bottom: max(16rem, 80px);
}
@media screen and (max-width: 1000px) {
  .concept__wrapper {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
}
.concept__content .sectionTitle {
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}
.concept__content > p {
  color: #fff;
  line-height: 3;
}
.concept__image {
  -ms-flex-negative: 0;
      flex-shrink: 0;
}
@media screen and (max-width: 550px) {
  .concept__image {
    width: 100%;
  }
}
.concept__image__circle {
  position: relative;
  width: max(56.5rem, 400px);
  height: auto;
  aspect-ratio: 1/1;
}
@media screen and (max-width: 1000px) {
  .concept__image__circle {
    width: max(90rem, 400px);
  }
}
@media screen and (max-width: 550px) {
  .concept__image__circle {
    width: 100%;
  }
}
.concept__image__circle__main {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 51.5%;
  height: auto;
  border-radius: 50%;
  aspect-ratio: 1/1;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
}
.concept__image__circle__main__inner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  text-align: center;
  row-gap: max(1rem, 10px);
  width: 100%;
  height: 100%;
  border-radius: 50%;
  background: rgba(44, 36, 27, 0.3);
  backdrop-filter: brightness(0.5);
  -webkit-transform: translateZ(0);
          transform: translateZ(0);
  will-change: backdrop-filter;
  overflow: hidden;
  z-index: 0;
}
.concept__image__circle__main__inner > span {
  color: #fff;
  font-family: YakuHanJP, "DM Sans", sans-serif;
  font-size: max(2.9rem, 16px);
  font-weight: 200;
  line-height: 1.5;
  letter-spacing: 0.1em;
}
.concept__image__circle__main__inner img {
  width: max(9rem, 50px);
}
.concept__image__circle__main__shadow {
  position: absolute;
  inset: -6%;
  background: rgba(255, 255, 255, 0.04);
  border-radius: 50%;
  -webkit-filter: blur(3px);
          filter: blur(3px);
  -webkit-transform: translateZ(0);
          transform: translateZ(0);
  will-change: filter;
  z-index: -1;
}
.concept__image__circle__main__shadow::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(255, 255, 255, 0.04);
  border-radius: 50%;
  -webkit-filter: blur(3px);
          filter: blur(3px);
  -webkit-transform: scale(1.2) translateZ(0);
          transform: scale(1.2) translateZ(0);
  -webkit-transform-origin: center;
          transform-origin: center;
  will-change: filter;
}
.concept__image__circle__main__shadow::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(255, 255, 255, 0.04);
  border-radius: 50%;
  -webkit-filter: blur(3px);
          filter: blur(3px);
  -webkit-transform: scale(1.4) translateZ(0);
          transform: scale(1.4) translateZ(0);
  -webkit-transform-origin: center;
          transform-origin: center;
  will-change: filter;
}
.concept__image__circle__sub {
  position: absolute;
  display: grid;
  place-items: center;
  top: 50%;
  left: 50%;
  width: 29.2%;
  height: auto;
  border-radius: 50%;
  aspect-ratio: 1/1;
  background: linear-gradient(135deg, rgba(203, 185, 144, 0.3), rgba(129, 115, 99, 0.3));
  -webkit-box-shadow: 4px 3px 6px rgba(0, 0, 0, 0.15), inset 5px -15px 30px rgba(36, 36, 36, 0.2);
          box-shadow: 4px 3px 6px rgba(0, 0, 0, 0.15), inset 5px -15px 30px rgba(36, 36, 36, 0.2);
  backdrop-filter: blur(10px);
  will-change: backdrop-filter, transform;
  overflow: hidden;
}
.concept__image__circle__sub--first {
  -webkit-transform: translate3d(-50%, -175%, 0);
          transform: translate3d(-50%, -175%, 0);
}
.concept__image__circle__sub--second {
  -webkit-transform: translate3d(70%, -90%, 0);
          transform: translate3d(70%, -90%, 0);
}
.concept__image__circle__sub--third {
  -webkit-transform: translate3d(25%, 50%, 0);
          transform: translate3d(25%, 50%, 0);
}
.concept__image__circle__sub--fourth {
  -webkit-transform: translate3d(-125%, 50%, 0);
          transform: translate3d(-125%, 50%, 0);
}
.concept__image__circle__sub--fifth {
  -webkit-transform: translate3d(-170%, -90%, 0);
          transform: translate3d(-170%, -90%, 0);
}
.concept__image__circle__sub span {
  color: #fff;
  font-size: max(1.6rem, 13px);
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.05em;
}
.concept__image__circle__sub span b {
  color: inherit;
  font-family: inherit;
  font-size: 1.1em;
  font-weight: inherit;
  line-height: inherit;
  letter-spacing: inherit;
}

.slider {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
.slider__list {
  display: grid;
  grid-template-columns: repeat(8, 1fr);
  min-width: 200vw;
  -webkit-animation: loopSlider 40s linear infinite;
          animation: loopSlider 40s linear infinite;
  will-change: transform;
}
@media screen and (max-width: 768px) {
  .slider__list {
    -ms-flex-negative: 0;
        flex-shrink: 0;
    min-width: auto;
  }
}
@-webkit-keyframes loopSlider {
  0% {
    -webkit-transform: translateX(0%);
            transform: translateX(0%);
  }
  100% {
    -webkit-transform: translateX(-50%);
            transform: translateX(-50%);
  }
}
@keyframes loopSlider {
  0% {
    -webkit-transform: translateX(0%);
            transform: translateX(0%);
  }
  100% {
    -webkit-transform: translateX(-50%);
            transform: translateX(-50%);
  }
}
.slider__list img {
  width: 100%;
  border: max(0.2rem, 2px) solid #fff;
  border-left: max(0.15rem, 1.5px) solid #fff;
  border-right: max(0.15rem, 1.5px) solid #fff;
}
@media screen and (max-width: 768px) {
  .slider__list img {
    width: 200px;
  }
}

.style {
  position: relative;
  z-index: 0;
  background: -webkit-gradient(linear, left top, left bottom, from(#cbb990), to(#817363));
  background: linear-gradient(to bottom, #cbb990, #817363);
  overflow: hidden;
}
.style__bg {
  position: absolute;
  inset: 0;
  z-index: -1;
  mix-blend-mode: multiply;
}
.style__bg img {
  position: absolute;
  width: 100%;
  height: 100%;
  opacity: 0.5;
}
.style__deco {
  position: absolute;
  inset: 0;
  color: #fff;
  font-family: YakuHanJP, "DM Sans", sans-serif;
  font-size: max(14rem, 70px);
  font-weight: 100;
  line-height: 0.7;
  letter-spacing: 0.1em;
  opacity: 0.15;
  pointer-events: none;
}
.style__deco__top {
  position: absolute;
  top: 0;
  left: 2.5%;
  display: inline-block;
}
.style__deco__bottom {
  position: absolute;
  bottom: 0;
  right: 5%;
  display: inline-block;
}
.style__wrapper {
  display: grid;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  grid-template-columns: max(51.5rem, 300px) 1fr;
  gap: max(15.5rem, 30px);
  padding: max(12.5rem, 70px) 0 max(15rem, 100px);
}
@media screen and (max-width: 1000px) {
  .style__wrapper {
    padding: max(16rem, 70px) 0;
    grid-template-columns: 1fr;
  }
}
@media screen and (max-width: 1000px) {
  .style__image {
    max-width: 500px;
    margin: 0 auto;
  }
}
.style__image .imageBox {
  position: relative;
  width: 100%;
  height: auto;
  border-radius: 50%;
  aspect-ratio: 1/1;
  z-index: 0;
}
.style__image .imageBox::before {
  content: "";
  position: absolute;
  inset: -5%;
  background: #fff;
  border-radius: 50%;
  -webkit-box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.4);
          box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.4);
  opacity: 0.3;
  z-index: -1;
}
.style__image .imageBox img {
  width: 100%;
  height: 100%;
  border-radius: 50%;
}
.style__content {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: reverse;
      -ms-flex-direction: row-reverse;
          flex-direction: row-reverse;
  gap: max(8rem, 30px);
}
@media screen and (max-width: 550px) {
  .style__content {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
}
.style__content .sectionTitle {
  -ms-flex-wrap: nowrap;
      flex-wrap: nowrap;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: start;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  text-orientation: mixed;
  -webkit-writing-mode: vertical-rl;
      -ms-writing-mode: tb-rl;
          writing-mode: vertical-rl;
  gap: max(3rem, 10px);
  margin-bottom: 0;
}
@media screen and (max-width: 550px) {
  .style__content .sectionTitle {
    -webkit-writing-mode: horizontal-tb;
        -ms-writing-mode: lr-tb;
            writing-mode: horizontal-tb;
  }
}
.style__content > p {
  color: #fff;
  text-orientation: upright;
  -webkit-writing-mode: vertical-rl;
      -ms-writing-mode: tb-rl;
          writing-mode: vertical-rl;
  font-size: max(1.6rem, 13px);
  font-weight: 400;
  line-height: 3;
  letter-spacing: 0.075em;
}
@media screen and (max-width: 550px) {
  .style__content > p {
    -webkit-writing-mode: horizontal-tb;
        -ms-writing-mode: lr-tb;
            writing-mode: horizontal-tb;
  }
}

.kind__wrapper {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
}
@media screen and (max-width: 1000px) {
  .kind__wrapper {
    grid-template-columns: 1fr;
  }
}
.kind__content {
  position: relative;
  padding: max(11.5rem, 50px) 5%;
  border: 1px solid #fff;
  z-index: 0;
}
@media screen and (min-width: 1000px) {
  .kind__content:first-of-type {
    border-right: none;
  }
  .kind__content:last-of-type {
    border-left: none;
  }
}
.kind__content .sectionTitle {
  -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;
  gap: 0;
}
.kind__content .sectionTitle__main {
  opacity: 0.45;
  text-shadow: 0 0 2px rgba(85, 75, 64, 0.2);
}
.kind__content .sectionTitle__main::before {
  display: none;
}
.kind__content .sectionTitle__sub {
  text-shadow: 0 0 2px rgba(85, 75, 64, 0.2);
}
.kind__content > p {
  text-align: center;
  color: #fff;
  line-height: 2.3;
  text-shadow: 0 0 2px rgba(85, 75, 64, 0.2);
}
.kind__content__bg {
  position: absolute;
  inset: 0;
  z-index: -1;
  overflow: hidden;
}
.kind__content__bg::before {
  content: "";
  position: absolute;
  inset: 0;
  background: #817363;
  mix-blend-mode: multiply;
  z-index: 1;
}
.kind__content__bg img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -webkit-transform: scale(1.05);
          transform: scale(1.05);
  will-change: filter;
}

.design {
  position: relative;
  background: #ddd8ca;
  overflow: hidden;
  z-index: 0;
}
.design::before {
  content: url(../images/design-mask.webp);
  position: absolute;
  inset: 0;
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
  z-index: -1;
  mix-blend-mode: multiply;
  opacity: 0.5;
}
.design__bg {
  position: absolute;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  z-index: -2;
}
.design__bg::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 70%;
  background: -webkit-gradient(linear, left top, left bottom, from(#ddd8ca), to(rgba(221, 216, 202, 0)));
  background: linear-gradient(to bottom, #ddd8ca, rgba(221, 216, 202, 0));
}
.design__wrapper {
  padding-top: max(11.5rem, 60px);
  padding-bottom: max(14rem, 70px);
}
.design__content {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-template-rows: auto auto auto 1fr;
  gap: 30px max(2.5rem, 20px);
  margin-top: max(7rem, 50px);
}
@media screen and (max-width: 1000px) {
  .design__content {
    grid-template-columns: 1fr;
  }
}
.design__content__item {
  display: inline-grid;
  grid-template-rows: subgrid;
  grid-row: span 4;
  gap: 0;
  padding: max(6rem, 30px) 10%;
  background: rgba(255, 255, 255, 0.7);
  border-radius: max(1rem, 10px);
  backdrop-filter: blur(10px) contrast(0.7);
  -webkit-transform: translateZ(0);
          transform: translateZ(0);
  will-change: backdrop-filter;
}
.design__content__item h3 {
  margin-bottom: max(1.5rem, 10px);
}
.design__content__item h3 span {
  display: inline-block;
  background: #39322C;
  padding: max(0.5rem, 5px) max(1rem, 10px);
  color: #fff;
  font-size: max(2.9rem, 16px);
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.075em;
}
.design__content__item h4 {
  font-size: max(2.1rem, 14px);
  font-weight: 400;
  line-height: 2;
  letter-spacing: 0.075em;
  margin-bottom: max(1.5rem, 10px);
}
.design__content__item p {
  font-size: max(1.4rem, 12px);
  font-weight: 400;
  line-height: 2;
  letter-spacing: 0.075em;
}
.design__content__item .imageBox {
  width: 100%;
  height: auto;
  margin-top: max(5rem, 20px);
  aspect-ratio: 163/107;
}

.performance {
  position: relative;
  z-index: 0;
  overflow: hidden;
}
.performance__bg {
  position: absolute;
  z-index: -1;
  top: 0;
  left: 0;
  right: 0;
  width: 100%;
}
.performance__wrapper {
  position: relative;
  padding-top: max(10.5rem, 60px);
  padding-bottom: max(9.5rem, 95px);
  z-index: 0;
}
.performance__wrapper::after {
  content: "THE COMBINATION";
  position: absolute;
  bottom: 0;
  width: 100%;
  text-align: center;
  font-family: YakuHanJP, "DM Sans", sans-serif;
  font-size: max(14rem, 49px);
  font-weight: 100;
  line-height: 0.7;
  letter-spacing: 0.1em;
  white-space: nowrap;
  z-index: -1;
}
@media screen and (max-width: 550px) {
  .performance__wrapper::after {
    font-size: 10vw;
  }
}
.performance__content {
  display: grid;
  grid-template-columns: auto 1fr auto;
  row-gap: max(5rem, 50px);
}
@media screen and (max-width: 1300px) {
  .performance__content {
    grid-template-columns: 1fr auto;
  }
}
@media screen and (max-width: 1000px) {
  .performance__content {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
}
.performance__content__item {
  display: grid;
  grid-template-columns: subgrid;
  grid-column: span 3;
  border: max(0.1rem, 1px) solid #fff;
  outline: max(0.15rem, 1.5px) solid #fff;
  outline-offset: 5px;
}
@media screen and (max-width: 1300px) {
  .performance__content__item {
    grid-column: span 2;
  }
}
@media screen and (max-width: 1000px) {
  .performance__content__item {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
}
.performance__content__title {
  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;
  -webkit-writing-mode: vertical-rl;
      -ms-writing-mode: tb-rl;
          writing-mode: vertical-rl;
  text-orientation: upright;
  padding: max(3rem, 20px) max(5rem, 20px);
  border-right: max(0.1rem, 1px) solid #fff;
  background: rgba(255, 255, 255, 0.1);
  color: #fff;
  font-size: max(2.1rem, 14px);
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: 0.4em;
}
@media screen and (max-width: 1300px) {
  .performance__content__title {
    grid-column: 1/3;
    padding: max(3rem, 20px) max(3rem, 15px);
    -webkit-writing-mode: horizontal-tb;
        -ms-writing-mode: lr-tb;
            writing-mode: horizontal-tb;
    text-orientation: mixed;
    border-right: none;
  }
}
.performance__content__graph, .performance__content__image, .performance__content__image1 {
  position: relative;
  margin: max(6rem, 30px) max(4.5rem, 20px) max(6rem, 30px) 0;
  padding: 0 max(4.5rem, 20px) 0 max(7rem, 30px);
  min-width: 500px;
}
@media screen and (max-width: 1000px) {
  .performance__content__graph, .performance__content__image, .performance__content__image1 {
    width: 100%;
    height: auto;
    margin: 0;
    padding: max(6rem, 30px) max(4.5rem, 20px);
    min-width: unset;
  }
}
.performance__content__graph::before, .performance__content__image::before, .performance__content__image1::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  width: 1px;
  height: 100%;
  background-image: linear-gradient(to bottom, #554B40 4px, transparent 3px);
  background-size: 1px 7px;
  mix-blend-mode: screen;
}
@media screen and (max-width: 1000px) {
  .performance__content__graph::before, .performance__content__image::before, .performance__content__image1::before {
    top: unset;
    left: 0;
    width: 100%;
    height: 1px;
    background-image: linear-gradient(to right, #554B40 4px, transparent 3px);
    background-size: 7px 1px;
  }
}
.performance__content__graph {
  display: grid;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  grid-template-columns: auto 1fr auto;
  width: auto;
  gap: max(1.5rem, 10px) max(2rem, 15px);
}
@media screen and (max-width: 768px) {
  .performance__content__graph {
    grid-template-columns: 1fr auto;
  }
}
.performance__content__graph p,
.performance__content__graph span {
  color: #fff;
  font-size: max(1.4rem, 12px);
  font-weight: 400;
  line-height: 2.5;
  letter-spacing: 0.075em;
}
@media screen and (max-width: 768px) {
  .performance__content__graph p {
    grid-column: 1/3;
  }
}
.performance__content__graph__line {
  position: relative;
  background: -webkit-gradient(linear, left top, left bottom, from(rgba(203, 185, 144, 0.4)), to(rgba(129, 115, 99, 0.4)));
  background: linear-gradient(to bottom, rgba(203, 185, 144, 0.4), rgba(129, 115, 99, 0.4));
  width: auto;
  height: 100%;
}
.performance__content__graph__line:nth-of-type(1) {
  --percent: 0.5;
}
.performance__content__graph__line:nth-of-type(2) {
  --percent: 0.65;
}
.performance__content__graph__line:nth-of-type(3) {
  --percent: 0.85;
}
.performance__content__graph__line:nth-of-type(4) {
  --percent: 1;
}
.performance__content__graph__line::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  background: -webkit-gradient(linear, left top, left bottom, from(#CBB990), to(#817363));
  background: linear-gradient(to bottom, #CBB990, #817363);
  -webkit-transform: scaleX(var(--percent));
          transform: scaleX(var(--percent));
  -webkit-transform-origin: left;
          transform-origin: left;
}
.performance__content__image1 {
  text-align: center;
  aspect-ratio: 271/111;
}
.performance__content__image1 img {
  width: 100%;
  height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
}
.performance__content__image {
  aspect-ratio: 271/111;
}
.performance__content__image img {
  width: 100%;
  height: 100%;
}
.performance__content__text {
  margin: max(6rem, 30px) 0;
  padding-right: max(5.5rem, 20px);
}
@media screen and (max-width: 1000px) {
  .performance__content__text {
    padding-right: 0;
    margin: max(6rem, 30px) max(4.5rem, 20px);
  }
}
.performance__content__text hgroup {
  margin-bottom: max(3rem, 20px);
}
.performance__content__text hgroup h4 {
  color: #fff;
  font-size: max(1.7rem, 14px);
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: 0.075em;
}
.performance__content__text hgroup p {
  color: #fff;
  font-size: max(1.4rem, 12px);
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: 0.075em;
}
.performance__content__text ul {
  display: grid;
  gap: max(1rem, 10px);
}
@media screen and (max-width: 1000px) {
  .performance__content__text ul {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media screen and (max-width: 768px) {
  .performance__content__text ul {
    grid-template-columns: 1fr;
  }
}
.performance__content__text ul li {
  position: relative;
  padding-left: 1.4em;
  color: #fff;
  font-size: max(1.4rem, 12px);
  font-weight: 400;
  line-height: 2;
  letter-spacing: 0.075em;
}
.performance__content__text ul li::before {
  content: " -";
  position: absolute;
  left: 0;
  top: 0;
  color: #fff;
  font-size: inherit;
  font-weight: inherit;
}
.performance__comb {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  margin-top: max(5.5rem, 50px);
}
@media screen and (max-width: 1000px) {
  .performance__comb {
    row-gap: 30px;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
}
.performance__comb__supplement {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  color: #fff;
  font-size: max(2.1rem, 16px);
  font-weight: 400;
  line-height: 2.5;
  letter-spacing: 0.075em;
}
@media screen and (max-width: 1000px) {
  .performance__comb__supplement {
    text-align: center;
  }
}
.performance__comb__circle {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  width: 100%;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
}
@media screen and (max-width: 550px) {
  .performance__comb__circle {
    -webkit-transform: scale(1.07);
            transform: scale(1.07);
    -webkit-transform-origin: center;
            transform-origin: center;
  }
}
.performance__comb__circle__item {
  display: grid;
  place-items: center;
  width: 100%;
  height: auto;
  aspect-ratio: 1/1;
  background: linear-gradient(45deg, rgba(203, 185, 144, 0.5), rgba(129, 115, 99, 0.5));
  border-radius: 50%;
  backdrop-filter: blur(5px);
  -webkit-transform: translateZ(0);
          transform: translateZ(0);
  will-change: backdrop-filter;
  -webkit-box-shadow: 4px 3px 6px rgba(0, 0, 0, 0.15);
          box-shadow: 4px 3px 6px rgba(0, 0, 0, 0.15);
  color: #fff;
  font-size: max(2.1rem, 16px);
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 550px) {
  .performance__comb__circle__item {
    font-size: 3vw;
  }
}
.performance__comb__circle__item:nth-of-type(1) {
  -webkit-transform: translate3d(10%, 0, 0);
          transform: translate3d(10%, 0, 0);
}
.performance__comb__circle__item:nth-of-type(3) {
  -webkit-transform: translate3d(-10%, 0, 0);
          transform: translate3d(-10%, 0, 0);
}

.appeal {
  position: relative;
  overflow: hidden;
  z-index: 0;
}
.appeal__bg {
  position: absolute;
  inset: 0;
  z-index: -1;
  background: #817363;
}
.appeal__bg__mask {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  mix-blend-mode: multiply;
  z-index: -2;
}
.appeal__bg__mask img {
  width: 100%;
  height: 100%;
  opacity: 0.5;
}
.appeal__bg__image {
  position: relative;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  width: 70%;
  height: 100%;
  margin-left: auto;
  z-index: -1;
}
@media screen and (max-width: 768px) {
  .appeal__bg__image {
    width: 80%;
    grid-template-columns: 1fr;
    grid-template-rows: repeat(2, 1fr);
  }
}
.appeal__bg__image::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  width: 25%;
  height: 100%;
  min-width: 500px;
  background: -webkit-gradient(linear, left top, right top, from(#817363), to(rgba(129, 115, 99, 0)));
  background: linear-gradient(to right, #817363, rgba(129, 115, 99, 0));
}
@media screen and (max-width: 550px) {
  .appeal__bg__image::before {
    min-width: 150%;
  }
}
.appeal__bg__image .imageBox {
  overflow: hidden;
}
.appeal__bg__image .imageBox img {
  width: 100%;
  height: 100%;
}
.appeal__wrapper {
  padding-top: max(15rem, 80px);
  padding-bottom: max(15rem, 100px);
}
.appeal h2 {
  color: #fff;
  font-size: max(2.1rem, 17px);
  font-weight: 400;
  line-height: 2.5;
  letter-spacing: 0.075em;
  margin-bottom: max(5rem, 30px);
}
.appeal p {
  color: #fff;
  font-size: max(1.4rem, 12px);
  font-weight: 400;
  line-height: 2.9;
  letter-spacing: 0.075em;
}

.point {
  position: relative;
  background: #fff;
  z-index: 0;
}
@media screen and (max-width: 1000px) {
  .point {
    padding-bottom: max(5rem, 30px);
    background: #817363;
  }
}
.point::before {
  content: "Share time,Share life.";
  position: absolute;
  bottom: 0;
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  font-family: YakuHanJP, "DM Sans", sans-serif;
  font-size: max(14rem, 100px);
  font-weight: 100;
  line-height: 0.7;
  letter-spacing: 0.1em;
  white-space: nowrap;
  opacity: 0.07;
  z-index: 1;
}
@media screen and (max-width: 768px) {
  .point::before {
    font-size: 10vw;
    bottom: max(5rem, 30px);
  }
}
.point__wrapper {
  position: relative;
  padding-top: max(10.5rem, 60px);
  padding-bottom: max(10.5rem, 60px);
  background: #fff;
}
@media screen and (max-width: 1000px) {
  .point__wrapper {
    padding: 0 5% max(10.5rem, 60px) 5%;
  }
  .point__wrapper::before {
    position: absolute;
    content: "";
    bottom: 100%;
    left: 0;
    right: 0;
    height: max(10.5rem, 60px);
    background: #fff;
  }
}
.point__content {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: start;
}
@media screen and (max-width: 1000px) {
  .point__content {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
}
.point__content__item {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  position: relative;
}
.point__content__item:not(:last-of-type) {
  padding-right: max(6rem, 20px);
  margin-right: max(6rem, 20px);
}
@media screen and (max-width: 1000px) {
  .point__content__item:not(:last-of-type) {
    padding-right: 0;
    margin-right: 0;
    padding-bottom: max(8rem, 30px);
    margin-bottom: max(8rem, 30px);
  }
}
.point__content__item:not(:last-of-type)::before {
  content: "";
  position: absolute;
  top: 15%;
  right: 0;
  bottom: 15%;
  width: 1px;
  height: auto;
  background-image: linear-gradient(to bottom, #554b40 4px, transparent 3px);
  background-size: 1px 7px;
}
@media screen and (max-width: 1000px) {
  .point__content__item:not(:last-of-type)::before {
    top: unset;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-image: linear-gradient(to right, #554b40 4px, transparent 3px);
    background-size: 7px 1px;
  }
}
.point__content__item h3 {
  position: relative;
  font-size: max(2.1rem, 18px);
  font-weight: 400;
  line-height: 2;
  letter-spacing: 0.075em;
  margin-bottom: max(1.5rem, 10px);
}
.point__content__item h3::before {
  display: inline-block;
  content: "●";
  color: #CBB990;
  font-size: 0.7em;
  font-weight: inherit;
  line-height: inherit;
  letter-spacing: inherit;
  -webkit-transform: translateY(-10%);
          transform: translateY(-10%);
  margin-right: 0.5em;
}

.gallery {
  position: relative;
  background: #ddd8ca;
  z-index: 1;
}
.gallery__bg {
  position: absolute;
  inset: 0;
  z-index: -1;
  mix-blend-mode: multiply;
  opacity: 0.5;
}
.gallery__bg img {
  width: 100%;
  height: 100%;
}
.gallery__wrapper {
  padding-top: max(12.5rem, 70px);
  padding-bottom: max(12.5rem, 70px);
}
.gallery__btnBox {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  -webkit-column-gap: max(2.5rem, 15px);
     -moz-column-gap: max(2.5rem, 15px);
          column-gap: max(2.5rem, 15px);
  pointer-events: none;
}
@media screen and (max-width: 768px) {
  .gallery__btnBox.pc {
    display: none;
  }
}
.gallery__btnBox.sp {
  display: none;
}
@media screen and (max-width: 768px) {
  .gallery__btnBox.sp {
    position: absolute;
    display: grid;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    top: 50%;
    left: 0;
    width: min(80vw, 1600px);
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%);
    z-index: 2;
  }
}
@media screen and (max-width: 550px) {
  .gallery__btnBox.sp {
    width: 90vw;
  }
}
.gallery__btnBox__btn {
  display: grid;
  place-items: center;
  width: max(6.5rem, 40px);
  height: auto;
  aspect-ratio: 1/1;
  background: #39322C;
  border-radius: 50%;
  -webkit-transition: opacity 0.4s ease;
  transition: opacity 0.4s ease;
  pointer-events: none;
  opacity: 0.6;
}
.gallery__btnBox__btn.is-active {
  opacity: 1;
  pointer-events: auto;
}
.gallery__btnBox__btn:hover {
  opacity: 0.6;
}
.gallery__btnBox__btn span {
  display: block;
  width: 20%;
  height: auto;
  aspect-ratio: 1/1;
  border-top: 2px solid #fff;
  border-left: 2px solid #fff;
}
@media screen and (max-width: 768px) {
  .gallery__btnBox__btn--prev {
    -webkit-transform: translateX(-50%);
            transform: translateX(-50%);
  }
}
.gallery__btnBox__btn--prev span {
  -webkit-transform: rotate(-45deg);
          transform: rotate(-45deg);
}
@media screen and (max-width: 768px) {
  .gallery__btnBox__btn--next {
    margin-left: auto;
    -webkit-transform: translateX(50%);
            transform: translateX(50%);
  }
}
.gallery__btnBox__btn--next span {
  -webkit-transform: rotate(135deg);
          transform: rotate(135deg);
}
.gallery__header {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}
.gallery__header .sectionTitle {
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}
.gallery__images {
  display: grid;
  grid-template-columns: max(85.5rem, 350px) 1fr;
  gap: max(0.5rem, 5px);
}
@media screen and (max-width: 1000px) {
  .gallery__images {
    grid-template-columns: 1fr;
  }
}
.gallery__images__main {
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.gallery__images__main.is-switching img {
  opacity: 0;
  -webkit-transform: scale(1.03);
          transform: scale(1.03);
}
.gallery__images__main img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -webkit-transition: opacity 0.18s ease, -webkit-transform 0.36s ease;
  transition: opacity 0.18s ease, -webkit-transform 0.36s ease;
  transition: opacity 0.18s ease, transform 0.36s ease;
  transition: opacity 0.18s ease, transform 0.36s ease, -webkit-transform 0.36s ease;
}
.gallery__images__sub {
  position: relative;
  width: 100%;
  height: 100%;
}
@media screen and (max-width: 1000px) {
  .gallery__images__sub {
    width: 100%;
  }
}
.gallery__images__sub__inner {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  width: 100%;
  height: 100%;
  gap: max(0.5rem, 5px);
}
@media screen and (max-width: 1000px) {
  .gallery__images__sub__inner {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    overflow-x: auto;
    scroll-behavior: smooth;
    -ms-scroll-snap-type: x mandatory;
        scroll-snap-type: x mandatory;
    width: 100%;
    min-width: 100%;
  }
  .gallery__images__sub__inner::-webkit-scrollbar {
    display: none;
  }
}
.gallery__images__sub__btn {
  min-width: 150px;
  cursor: pointer;
  overflow: hidden;
  -webkit-transition: opacity 0.4s ease;
  transition: opacity 0.4s ease;
}
@media screen and (max-width: 1000px) {
  .gallery__images__sub__btn {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 28vw;
            flex: 0 0 28vw;
    max-width: max(25rem, 150px);
    scroll-snap-align: start;
  }
}
@media screen and (max-width: 768px) {
  .gallery__images__sub__btn {
    -ms-flex-preferred-size: 42vw;
        flex-basis: 42vw;
  }
}
@media screen and (max-width: 550px) {
  .gallery__images__sub__btn {
    -ms-flex-preferred-size: 74vw;
        flex-basis: 74vw;
  }
}
.gallery__images__sub__btn:hover {
  opacity: 0.7;
}
.gallery__images__sub__btn.is-switching img {
  opacity: 0;
  -webkit-transform: scale(1.03);
          transform: scale(1.03);
}
.gallery__images__sub__btn:focus-visible {
  outline: 2px solid #39322C;
  outline-offset: 3px;
}
.gallery__images__sub__btn img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -webkit-transition: opacity 0.18s ease, -webkit-transform 0.36s ease;
  transition: opacity 0.18s ease, -webkit-transform 0.36s ease;
  transition: opacity 0.18s ease, transform 0.36s ease;
  transition: opacity 0.18s ease, transform 0.36s ease, -webkit-transform 0.36s ease;
}
.gallery .btnBox {
  -webkit-transform: translateY(50%);
          transform: translateY(50%);
}

.floor {
  position: relative;
  z-index: 0;
  background: -webkit-gradient(linear, left top, left bottom, from(#CBB990), to(#817363));
  background: linear-gradient(to bottom, #CBB990, #817363);
}
.floor__bg {
  position: absolute;
  inset: 0;
  mix-blend-mode: multiply;
  z-index: -1;
}
.floor__bg img {
  width: 100%;
  height: 100%;
  opacity: 0.5;
}
.floor__wrapper {
  position: relative;
  padding-top: max(11rem, 70px);
  z-index: 10;
}
.floor__content {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: max(8rem, 20px);
  padding: max(10rem, 20px);
  background: #fff;
  border-radius: max(1rem, 10px);
}
@media screen and (max-width: 1000px) {
  .floor__content {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
}
.floor__content__image {
  position: relative;
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  width: 100%;
  min-width: 0;
}
.floor__content__image__inner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  overflow-x: hidden;
  scroll-behavior: smooth;
  -ms-scroll-snap-type: x mandatory;
      scroll-snap-type: x mandatory;
}
.floor__content__image__inner::-webkit-scrollbar {
  display: none;
}
.floor__content__image__inner .imageBox {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  text-align: center;
  width: 100%;
  scroll-snap-align: start;
}
.floor__content__image__inner .imageBox img {
  width: 80%;
}
@media screen and (max-width: 550px) {
  .floor__content__image__inner .imageBox img {
    width: 90%;
  }
}
.floor__content__image__control {
  position: absolute;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  top: 50%;
  left: 50%;
  width: 100%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  pointer-events: none;
}
.floor__content__image__control__btn {
  display: grid;
  place-items: center;
  width: max(6.5rem, 40px);
  height: auto;
  aspect-ratio: 1/1;
  background: #39322C;
  border-radius: 50%;
  -webkit-transition: opacity 0.4s ease;
  transition: opacity 0.4s ease;
  pointer-events: none;
  opacity: 0.6;
}
.floor__content__image__control__btn.is-active {
  opacity: 1;
  pointer-events: auto;
}
.floor__content__image__control__btn:hover {
  opacity: 0.6;
}
.floor__content__image__control__btn span {
  display: block;
  width: 20%;
  height: auto;
  aspect-ratio: 1/1;
  border-top: 2px solid #fff;
  border-left: 2px solid #fff;
}
@media screen and (max-width: 768px) {
  .floor__content__image__control__btn--prev {
    -webkit-transform: translateX(-50%);
            transform: translateX(-50%);
  }
}
@media screen and (max-width: 550px) {
  .floor__content__image__control__btn--prev {
    -webkit-transform: translateX(-85%);
            transform: translateX(-85%);
  }
}
.floor__content__image__control__btn--prev span {
  -webkit-transform: rotate(-45deg);
          transform: rotate(-45deg);
}
@media screen and (max-width: 768px) {
  .floor__content__image__control__btn--next {
    -webkit-transform: translateX(50%);
            transform: translateX(50%);
  }
}
@media screen and (max-width: 550px) {
  .floor__content__image__control__btn--next {
    -webkit-transform: translateX(85%);
            transform: translateX(85%);
  }
}
.floor__content__image__control__btn--next span {
  -webkit-transform: rotate(135deg);
          transform: rotate(135deg);
}
.floor__content__text {
  -ms-flex-negative: 0;
      flex-shrink: 0;
}
.floor__content__text h3 {
  position: relative;
  font-size: max(2.1rem, 14px);
  font-weight: 400;
  line-height: 2;
  letter-spacing: 0.075em;
  margin-bottom: max(8rem, 30px);
}
@media screen and (max-width: 1000px) {
  .floor__content__text h3 br {
    display: none;
  }
}
.floor__content__text ul li {
  position: relative;
  font-size: max(2.1rem, 14px);
  font-weight: 400;
  line-height: 2;
  letter-spacing: 0.075em;
  padding-bottom: max(1.5rem, 10px);
  margin-bottom: max(1.5rem, 10px);
}
.floor__content__text ul li::before {
  display: inline-block;
  content: "●";
  color: #CBB990;
  font-size: 0.7em;
  font-weight: inherit;
  line-height: inherit;
  letter-spacing: inherit;
  -webkit-transform: translateY(-10%);
          transform: translateY(-10%);
  margin-right: 0.5em;
}
.floor__content__text ul li:not(:last-of-type)::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 1px;
  background-image: linear-gradient(to right, #554b40 4px, transparent 3px);
  background-size: 7px 1px;
}
.floor__detail {
  position: relative;
  background: #39322C;
}
.floor__detail::before {
  content: "";
  position: absolute;
  bottom: 100%;
  left: 0;
  right: 0;
  width: 100%;
  height: max(6rem, 50px);
  background: #39322C;
  border-top: max(0.1rem, 1px) solid #fff;
}
.floor__detail__content {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: start;
  padding-top: max(7.5rem, 50px);
  padding-bottom: max(7.5rem, 50px);
}
@media screen and (max-width: 1000px) {
  .floor__detail__content {
    display: grid;
    -webkit-column-gap: max(5rem, 10px);
       -moz-column-gap: max(5rem, 10px);
            column-gap: max(5rem, 10px);
    grid-template-columns: repeat(2, 1fr);
  }
}
.floor__detail__content__item {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  position: relative;
  text-align: center;
}
@media screen and (max-width: 1000px) {
  .floor__detail__content__item {
    padding-bottom: max(8rem, 30px);
    margin-bottom: max(8rem, 30px);
  }
}
.floor__detail__content__item::before {
  content: "";
  position: absolute;
  top: 15%;
  right: 0;
  bottom: 15%;
  width: 1px;
  height: auto;
  background-image: linear-gradient(to bottom, #554b40 4px, transparent 3px);
  background-size: 1px 7px;
}
@media screen and (max-width: 1000px) {
  .floor__detail__content__item::before {
    top: unset;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-image: linear-gradient(to right, #554b40 4px, transparent 3px);
    background-size: 7px 1px;
  }
}
@media screen and (min-width: 1000px) {
  .floor__detail__content__item:last-of-type::before {
    display: none;
  }
}
@media screen and (min-width: 1000px) {
  .floor__detail__content__item:not(:last-of-type) {
    padding-right: max(3rem, 15px);
    margin-right: max(3rem, 15px);
  }
}
.floor__detail__content__item h3 {
  color: #fff;
  font-size: max(1.4rem, 12px);
  font-weight: 400;
  line-height: 2;
  letter-spacing: 0.075em;
  margin-bottom: max(1.5rem, 15px);
}
.floor__detail__content__item p {
  color: #fff;
  font-size: max(2.9rem, 17px);
  font-weight: 400;
  line-height: 1.8;
  letter-spacing: 0.075em;
}

.access {
  position: relative;
  z-index: 0;
}
.access__bg {
  position: absolute;
  inset: 0;
  z-index: -1;
}
.access__bg img {
  width: 100%;
  height: 100%;
}
.access__wrapper {
  display: grid;
  grid-template-columns: 1fr max(73rem, 300px);
  gap: max(5rem, 30px);
  padding-top: max(11rem, 60px);
  padding-bottom: max(11rem, 60px);
}
@media screen and (max-width: 1000px) {
  .access__wrapper {
    grid-template-columns: 1fr;
  }
}
.access__content h3 {
  color: #fff;
  font-size: max(2.1rem, 14px);
  font-weight: 400;
  line-height: 2;
  letter-spacing: 0.075em;
  margin-bottom: max(1rem, 10px);
}
.access__content__address {
  margin-bottom: max(2rem, 15px);
}
.access__content__address address {
  color: #fff;
  font-size: max(1.6rem, 12px);
  font-weight: 400;
  line-height: 1.75;
  letter-spacing: 0.075em;
}
.access__content__address ul {
  list-style: none;
  padding: 0;
  margin: 0;
}
.access__content__address ul li {
  position: relative;
  padding-left: 0.75em;
  margin-left: 0.5em;
  color: #fff;
  font-size: max(1.6rem, 12px);
  font-weight: 400;
  line-height: 1.75;
  letter-spacing: 0.075em;
}
.access__content__address ul li:before {
  content: "-";
  position: absolute;
  left: 0;
  top: 0;
  color: #fff;
  font-size: inherit;
  line-height: inherit;
  font-weight: 400;
}
.access__content__info dl {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: baseline;
      -ms-flex-align: baseline;
          align-items: baseline;
}
.access__content__info dl dt {
  position: relative;
  padding-right: 0.5em;
  margin-right: 0.5em;
}
.access__content__info dl dt::before {
  content: "";
  position: absolute;
  top: 20%;
  bottom: 20%;
  right: 0;
  width: 1px;
  height: auto;
  background: #fff;
}
.access__content__info dl dt,
.access__content__info dl dd {
  color: #fff;
  font-size: max(1.6rem, 12px) !important;
  font-weight: 400;
  line-height: 1.75;
  letter-spacing: 0.075em;
}
.access__map {
  -ms-flex-item-align: stretch;
      align-self: stretch;
  width: 100%;
  height: 100%;
  min-height: 250px;
  aspect-ratio: 146/79;
}
.access__map iframe {
  width: 100%;
  height: 100%;
}

.cta {
  position: relative;
  background: #ddd8ca;
  z-index: 0;
  overflow: hidden;
}
.cta::before {
  position: absolute;
  content: "Visit Reservation";
  left: 0;
  bottom: 0;
  font-family: YakuHanJP, "DM Sans", sans-serif;
  font-size: max(14rem, 50px);
  font-weight: 100;
  line-height: 0.8;
  letter-spacing: 0.1em;
  opacity: 0.1;
}
.cta__bg {
  position: absolute;
  inset: 0;
  z-index: -1;
  mix-blend-mode: multiply;
}
.cta__bg img {
  width: 100%;
  height: 100%;
  opacity: 0.5;
}
.cta__wrapper {
  padding-top: max(10rem, 70px);
  padding-bottom: max(13rem, 80px);
}
.cta__header {
  text-align: center;
  margin-bottom: max(4.5rem, 30px);
}
.cta__header h2 {
  font-size: max(2.9rem, 20px);
  font-weight: 400;
  line-height: 2.2;
  letter-spacing: 0.075em;
  margin-bottom: max(1rem, 10px);
}
.cta__btnBox {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: max(7.5rem, 10px);
}
@media screen and (max-width: 1000px) {
  .cta__btnBox {
    grid-template-columns: 1fr;
  }
}
.cta__btnBox .cta__btn {
  position: relative;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: max(3rem, 5px);
  padding: max(4.5rem, 15px);
  background: #fff;
  border-radius: max(1rem, 10px);
  -webkit-box-shadow: 4px 3px 6px rgba(0, 0, 0, 0.15);
          box-shadow: 4px 3px 6px rgba(0, 0, 0, 0.15);
  -webkit-transition: -webkit-box-shadow 0.4s ease, -webkit-transform 0.4s ease;
  transition: -webkit-box-shadow 0.4s ease, -webkit-transform 0.4s ease;
  transition: box-shadow 0.4s ease, transform 0.4s ease;
  transition: box-shadow 0.4s ease, transform 0.4s ease, -webkit-box-shadow 0.4s ease, -webkit-transform 0.4s ease;
}
@media screen and (max-width: 550px) {
  .cta__btnBox .cta__btn {
    grid-template-columns: 1fr;
  }
}
.cta__btnBox .cta__btn__image {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  text-align: right;
}
@media screen and (min-width: 550px) {
  .cta__btnBox .cta__btn__image img {
    -webkit-transform: scale(1.3);
            transform: scale(1.3);
    -webkit-transform-origin: center right;
            transform-origin: center right;
  }
}
.cta__btnBox .cta__btn__text h3 {
  position: relative;
  font-size: max(2.1rem, 14px);
  font-weight: 400;
  line-height: 2;
  letter-spacing: 0.075em;
  padding-bottom: max(0.5rem, 5px);
  margin-bottom: max(0.5rem, 5px);
}
.cta__btnBox .cta__btn__text h3::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 1px;
  background-image: linear-gradient(to right, #554b40 4px, transparent 3px);
  background-size: 7px 1px;
}
.cta__btnBox .cta__btn__text p {
  font-size: max(1.4rem, 12px);
  font-weight: 500;
  line-height: 1.9;
  letter-spacing: 0;
}
.cta__btnBox .cta__btn__text__arrow {
  text-align: right;
  font-size: max(1.2rem, 10px);
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0;
  margin-top: max(0.5rem, 5px);
}
.cta__btnBox .cta__btn:hover {
  -webkit-transform: translate(4px, 3px);
          transform: translate(4px, 3px);
  -webkit-box-shadow: 0 0 6px rgba(0, 0, 0, 0.15);
          box-shadow: 0 0 6px rgba(0, 0, 0, 0.15);
}

.form {
  position: relative;
  padding-top: max(10rem, 70px);
  background: #261d10;
  overflow: hidden;
  z-index: 0;
}
.form [hidden] {
  display: none !important;
}
.form__bg {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  width: 100%;
  height: auto;
  aspect-ratio: 16/10;
  z-index: -1;
}
.form__title {
  margin-bottom: max(3rem, 25px);
}
.form__content {
  width: min(100%, max(128rem, 720px));
  margin: 0 auto;
  padding: max(9rem, 45px) max(13rem, 35px);
  background: #fff;
}
@media screen and (max-width: 1000px) {
  .form__content {
    padding: max(6rem, 40px) max(5rem, 24px);
  }
}
@media screen and (max-width: 550px) {
  .form__content {
    padding: 40px 18px;
  }
}
.form__row {
  display: grid;
  grid-template-columns: max(30rem, 180px) 1fr;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: start;
  gap: max(2rem, 15px);
  margin-bottom: max(1.5rem, 15px);
}
@media screen and (max-width: 1000px) {
  .form__row {
    grid-template-columns: 1fr;
    gap: 3px;
    margin-bottom: 20px;
  }
}
.form__label {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  gap: max(1rem, 8px);
  min-height: max(5.8rem, 44px);
  color: #1D1613;
}
@media screen and (max-width: 1000px) {
  .form__label {
    min-height: auto;
  }
}
.form__labelText {
  font-size: max(1.5rem, 13px);
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0.05em;
}
.form__required {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  padding: max(0.4rem, 4px) max(0.7rem, 6px);
  background: rgba(184, 75, 63, 0.85);
  color: #fff;
  font-size: max(1.1rem, 10px);
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.05em;
}
.form__input, .form__select, .form__textarea {
  width: 100%;
  min-height: max(5.6rem, 48px);
  padding: max(1.6rem, 12px) max(2rem, 14px);
  background-color: #f0f0f0;
  border: 1px solid transparent;
  border-radius: max(0.7rem, 6px);
  color: #1D1613;
  font-size: max(1.5rem, 13px);
  font-weight: 500;
  line-height: 1.7;
  letter-spacing: 0.05em;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  -webkit-transition: border-color 0.3s ease, background-color 0.3s ease, -webkit-box-shadow 0.3s ease;
  transition: border-color 0.3s ease, background-color 0.3s ease, -webkit-box-shadow 0.3s ease;
  transition: border-color 0.3s ease, box-shadow 0.3s ease, background-color 0.3s ease;
  transition: border-color 0.3s ease, box-shadow 0.3s ease, background-color 0.3s ease, -webkit-box-shadow 0.3s ease;
}
.form__input:focus, .form__select:focus, .form__textarea:focus {
  outline: none;
  border-color: rgba(57, 50, 44, 0.55);
  background-color: #fff;
  -webkit-box-shadow: 0 0 0 3px rgba(203, 185, 144, 0.28);
          box-shadow: 0 0 0 3px rgba(203, 185, 144, 0.28);
}
.form__input::-webkit-input-placeholder, .form__select::-webkit-input-placeholder, .form__textarea::-webkit-input-placeholder {
  color: rgba(29, 22, 19, 0.28);
}
.form__input::-moz-placeholder, .form__select::-moz-placeholder, .form__textarea::-moz-placeholder {
  color: rgba(29, 22, 19, 0.28);
}
.form__input:-ms-input-placeholder, .form__select:-ms-input-placeholder, .form__textarea:-ms-input-placeholder {
  color: rgba(29, 22, 19, 0.28);
}
.form__input::-ms-input-placeholder, .form__select::-ms-input-placeholder, .form__textarea::-ms-input-placeholder {
  color: rgba(29, 22, 19, 0.28);
}
.form__input::placeholder, .form__select::placeholder, .form__textarea::placeholder {
  color: rgba(29, 22, 19, 0.28);
}
.form__select {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  background-image: linear-gradient(45deg, transparent 50%, #1D1613 50%), linear-gradient(135deg, #1D1613 50%, transparent 50%);
  background-position: calc(100% - 20px) 50%, calc(100% - 14px) 50%;
  background-size: 6px 6px, 6px 6px;
  background-repeat: no-repeat;
}
.form__textarea {
  min-height: max(18rem, 150px);
  resize: vertical;
}
.form__fieldGroup {
  width: 100%;
}
.form__dateTimeGroup {
  display: grid;
  grid-template-columns: 1fr max(16rem, 130px);
  gap: max(1.2rem, 10px);
}
@media screen and (max-width: 550px) {
  .form__dateTimeGroup {
    grid-template-columns: 1fr;
  }
}
.form__input--date {
  width: 100%;
  min-height: max(5.6rem, 48px);
  line-height: 1.7;
  -webkit-appearance: none;
  -moz-appearance: none;
       appearance: none;
  cursor: pointer;
}
.form__input--date::-webkit-date-and-time-value {
  text-align: left;
  min-height: 1.7em;
}
.form__input--date::-webkit-datetime-edit {
  line-height: 1.7;
  padding: 0;
}
.form__input--date::-webkit-calendar-picker-indicator {
  cursor: pointer;
  opacity: 0.6;
  -webkit-filter: invert(0.4);
          filter: invert(0.4);
}
.form__input--date::-webkit-calendar-picker-indicator:hover {
  opacity: 1;
  -webkit-filter: invert(0.2);
          filter: invert(0.2);
}
.form__select--time {
  width: 100%;
  min-height: max(5.6rem, 48px);
}
.form__input--other {
  margin-top: max(1rem, 10px);
}
.form__attention {
  margin-top: max(0.6rem, 6px);
  color: rgba(29, 22, 19, 0.75);
  font-size: max(1.2rem, 11px);
  font-weight: 500;
  line-height: 1.7;
  letter-spacing: 0.05em;
}
.form__checkboxList {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: max(1.4rem, 12px) max(2.4rem, 18px);
  padding-top: max(1.5rem, 10px);
}
.form__checkbox {
  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: max(0.8rem, 7px);
  color: #1D1613;
  font-size: max(1.5rem, 13px);
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.05em;
  cursor: pointer;
}
.form__checkbox input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.form__checkbox span {
  position: relative;
  display: inline-block;
  width: max(1.8rem, 16px);
  height: max(1.8rem, 16px);
  border: 1px solid #1D1613;
  background: #fff;
  -ms-flex-negative: 0;
      flex-shrink: 0;
}
.form__checkbox span::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 45%;
  width: 35%;
  height: 60%;
  border-right: 2px solid #fff;
  border-bottom: 2px solid #fff;
  -webkit-transform: translate(-50%, -50%) rotate(45deg) scale(0);
          transform: translate(-50%, -50%) rotate(45deg) scale(0);
  -webkit-transition: -webkit-transform 0.2s ease;
  transition: -webkit-transform 0.2s ease;
  transition: transform 0.2s ease;
  transition: transform 0.2s ease, -webkit-transform 0.2s ease;
}
.form__checkbox input:checked + span {
  background: #39322C;
  border-color: #39322C;
}
.form__checkbox input:checked + span::before {
  -webkit-transform: translate(-50%, -50%) rotate(45deg) scale(1);
          transform: translate(-50%, -50%) rotate(45deg) scale(1);
}
.form__checkbox--privacy {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  margin-top: max(2rem, 20px);
}
.form__privacy {
  margin-top: max(5rem, 35px);
  margin-bottom: max(4rem, 30px);
}
.form__privacyBox {
  max-height: max(20rem, 180px);
  overflow-y: auto;
  padding: max(2rem, 16px);
  border: 1px solid #1D1613;
  color: #1D1613;
}
.form__privacyBox h3,
.form__privacyBox p {
  font-size: max(1.3rem, 11px);
  font-weight: 500;
  line-height: 1.8;
  letter-spacing: 0.05em;
}
.form__privacyBox h3 {
  margin-bottom: max(0.5rem, 5px);
}
.form__privacyBox p {
  margin-bottom: max(1.2rem, 10px);
}
.form__submit, .form__confirmationButtons {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: max(5rem, 30px);
  margin-top: max(3rem, 25px);
}
@media screen and (max-width: 768px) {
  .form__submit, .form__confirmationButtons {
    -webkit-box-orient: vertical;
    -webkit-box-direction: reverse;
        -ms-flex-direction: column-reverse;
            flex-direction: column-reverse;
  }
}
@media screen and (max-width: 768px) {
  .form__btn {
    width: 100%;
  }
}
.form__btn:hover:not(:disabled) {
  -webkit-transform: translateY(2px);
          transform: translateY(2px);
  -webkit-box-shadow: inset 0 2px 4px rgba(255, 255, 255, 0.25), 0 2px 4px rgba(0, 0, 0, 0.18);
          box-shadow: inset 0 2px 4px rgba(255, 255, 255, 0.25), 0 2px 4px rgba(0, 0, 0, 0.18);
}
.form__btn:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}
.form__btn--secondary {
  opacity: 0.6;
}
.form__confirmation, .form__thanks {
  color: #1D1613;
}
.form__confirmationItem {
  display: grid;
  grid-template-columns: max(30rem, 180px) 1fr;
  gap: max(2rem, 15px);
  padding-bottom: max(1.5rem, 12px);
  margin-bottom: max(1.5rem, 12px);
  border-bottom: 1px solid rgba(29, 22, 19, 0.14);
}
@media screen and (max-width: 1000px) {
  .form__confirmationItem {
    grid-template-columns: 1fr;
    gap: 6px;
  }
}
.form__confirmationLabel, .form__confirmationValue {
  font-size: max(1.5rem, 13px);
  font-weight: 500;
  line-height: 1.8;
  letter-spacing: 0.05em;
}
.form__confirmationLabel {
  color: rgba(29, 22, 19, 0.7);
}
.form__thanks {
  text-align: center;
}
.form__thanks h3 {
  font-size: max(2.8rem, 22px);
  font-weight: 400;
  line-height: 1.8;
  letter-spacing: 0.1em;
  margin-bottom: max(2rem, 18px);
}
.form__thanks p {
  font-size: max(1.6rem, 14px);
  font-weight: 500;
  line-height: 2;
  letter-spacing: 0.05em;
  margin-bottom: max(3rem, 25px);
}
.form__loading {
  position: fixed;
  inset: 0;
  z-index: 9999;
  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;
  padding: max(2rem, 16px);
  background: rgba(0, 0, 0, 0.6);
  backdrop-filter: blur(2px);
  opacity: 0;
  pointer-events: none;
  -webkit-transition: opacity 0.25s ease;
  transition: opacity 0.25s ease;
}
.form__loading.is-active {
  opacity: 1;
  pointer-events: auto;
}
.form__loading[hidden] {
  display: none !important;
}
.form__loadingInner {
  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: max(1.8rem, 14px);
  text-align: center;
}
.form__loadingSpinner {
  width: max(7rem, 56px);
  height: max(7rem, 56px);
  border: max(0.4rem, 3px) solid rgba(255, 255, 255, 0.25);
  border-top-color: #CBB990;
  border-radius: 50%;
  -webkit-animation: sagamihara-form-spin 0.9s linear infinite;
          animation: sagamihara-form-spin 0.9s linear infinite;
}
.form__loadingText {
  color: #fff;
  font-size: max(1.5rem, 13px);
  font-weight: 500;
  line-height: 1.7;
  letter-spacing: 0.1em;
}

@-webkit-keyframes sagamihara-form-spin {
  to {
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg);
  }
}

@keyframes sagamihara-form-spin {
  to {
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg);
  }
}
.model {
  background: -webkit-gradient(linear, left top, left bottom, color-stop(50%, #261d10), color-stop(50%, #39322C));
  background: linear-gradient(to bottom, #261d10 50%, #39322C 50%);
}
@media screen and (max-width: 1000px) {
  .model {
    background: -webkit-gradient(linear, left top, left bottom, color-stop(35%, #261d10), color-stop(35%, #39322C));
    background: linear-gradient(to bottom, #261d10 35%, #39322C 35%);
  }
}
.model .model__wrapper {
  padding: max(10rem, 70px) 0 max(13rem, 90px);
}
.model .model__wrapper h3 {
  color: #fff;
  font-family: YakuHanJP, "DM Sans", sans-serif;
  font-size: max(3.4rem, 28px);
  font-weight: 400;
  line-height: 2;
  letter-spacing: 0.1em;
}
.model .model__wrapper h3 span {
  font-family: inherit;
}
.model .model__wrapper .model__content {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: max(3rem, 20px) max(2rem, 10px);
}
@media screen and (max-width: 1000px) {
  .model .model__wrapper .model__content {
    grid-template-columns: repeat(2, 1fr);
  }
}
.model .model__wrapper .model__content figure {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  text-align: center;
}
.model .model__wrapper .model__content figure img {
  width: 100%;
  aspect-ratio: 152/121;
}
.model .model__wrapper .model__content figure figcaption {
  color: #fff;
  line-height: 1.5;
  margin-top: max(1.5rem, 10px);
}

/* =============================================================
 * タッチ操作共通ユーティリティ
 * スマホで連続タップ（ダブルタップ）時に画面が拡大される挙動を抑止。
 * 仕様:
 *   - touch-action: manipulation … ダブルタップでのズーム遅延 / 拡大を無効化
 *     （2本指のピンチアウト拡大はページ全体で引き続き可能）
 *   - -webkit-tap-highlight-color: transparent … タップ時の青いハイライトを除去
 *   - user-select: none … 連続タップ時にテキストが選択状態にならないようにする
 * 適用範囲: すべての a / button 要素および role="button" を持つ要素
 * 制限事項:
 *   - input[type="text"] などテキスト系入力要素には適用しない（選択不可になるため）
 * ============================================================= */
a,
button,
[role=button] {
  -ms-touch-action: manipulation;
      touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}/*# sourceMappingURL=style.css.map */