@charset "UTF-8";

/*================
  reset
================*/
#wrapper div, #wrapper span, #wrapper iframe, #wrapper h1, #wrapper h2, #wrapper h3, #wrapper h4, #wrapper h5, #wrapper h6, #wrapper p, #wrapper address, #wrapper img, #wrapper small, #wrapper strong, #wrapper sub, #wrapper sup, #wrapper dl,
#wrapper dt, #wrapper dd, #wrapper ol, #wrapper ul, #wrapper form, #wrapper label, #wrapper table, #wrapper caption, #wrapper tbody, #wrapper tfoot, #wrapper thead, #wrapper tr, #wrapper th, #wrapper td, #wrapper article,
#wrapper aside, #wrapper footer, #wrapper header, #wrapper menu, #wrapper nav, #wrapper section, #wrapper video {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  font-size: 0;
  line-height: 0;
  vertical-align: baseline;
  background: transparent;
}
#wrapper article, #wrapper aside, #wrapper details, #wrapper figcaption, #wrapper figure,
#wrapper footer, #wrapper header, #wrapper menu, #wrapper nav, #wrapper section {
  display: block;
}
#wrapper ol, #wrapper ul {
  list-style: none;
}
#wrapper :focus {
  outline: 0;
}
#wrapper table {
  border-collapse: collapse;
  border-spacing: 0;
}
#wrapper *,
#wrapper *::before,
#wrapper *::after {
  box-sizing: border-box;
}
#wrapper img {
  display: block;
  height: auto;
  vertical-align: bottom;
  width: 100%;
  max-width: 100%;
}
#wrapper svg,
#wrapper video {
  width: 100%;
  height: auto;
}
/* ---------------------------------------------
  PC
--------------------------------------------- */
/*================
  共通
================*/
#wrapper .section__inner {
  max-width: 1366px;
  margin-inline: auto;
}
#wrapper .section__title {
  text-align: center;
  position: relative;
  z-index: 1;
}
#wrapper .section__title-en {
  font-size: min(20 / 1366 * 100vw, 20px);
  line-height: 2.5;
  letter-spacing: 0.1em;
  font-weight: 700;
  color: #b99b66;
}
#wrapper .section__title-ja {
  font-size: min(40 / 1366 * 100vw, 40px);
  line-height: 1;
  letter-spacing: 0.1em;
  font-weight: 700;
  color: #fff;
}
#wrapper .section__title-ja--black {
  color: #000;
}
/*================
  アニメーション
================*/
/* スクロールアニメーション共通 */
#wrapper .io {
  transition: all 1.5s ease;
}
/* fade-in
-------------------- */
#wrapper .io-fade-in {
  opacity: 0;
  transition-delay: 0.2s;
}
#wrapper .io-fade-in.is-animation-active {
  opacity: 1;
}
/*================
  追従ボタン
================*/
#wrapper .float {
  position: fixed;
  top: min(110 / 1366 * 100vw, 110px);
  right: 0;
  width: fit-content;
  z-index: 5;
  visibility: hidden;
  opacity: 0;
  transition:
    visibility 0.4s,
    opacity 0.4s;
}
#wrapper .float.is-floating-show {
  visibility: visible;
  opacity: 1;
}
#wrapper .float__button-text {
  display: block;
  font-size: min(18 / 1366 * 100vw, 18px);
  line-height: 3.8;
  font-weight: 400;
  letter-spacing: 0.1em;
  color: #fff;
  background-color: #b99b66;
  writing-mode: vertical-rl;
  border-radius: 10px 0 0 10px;
  padding: min(16 / 1366 * 100vw, 16px) 0;
}
/*================
  fv
================*/
#wrapper .fv {
  height: calc(100vh - min(90 / 1366 * 100vw, 90px));
  position: relative;
  width: 100%;
  overflow: hidden;
}
#wrapper  .fv__movie {
  position: absolute;
}
#wrapper .fv__guide {
  width: 100%;
  position: absolute;
  bottom: 0;
  right: 0;
  height: 165px;
}
#wrapper .fv__guide-scroll {
  position: absolute;
  right: min(132 / 1366 * 100vw, 132px);
  padding-bottom: 120px;
  font-size: 10px;
  line-height: 1;
  letter-spacing: 0.1em;
  font-weight: 400;
  color: #fff;
  writing-mode: vertical-rl;
}
#wrapper .fv__guide-scroll::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  translate: -50% 0;
  width: 1px;
  height: 110px;
  background-color: #fff;
  animation: fv__guide-scroll 2s infinite;
}
@keyframes fv__guide-scroll {
  0% {
    transform: scale(1, 0);
    transform-origin: 0 0;
  }
  50% {
    transform: scale(1, 1);
    transform-origin: 0 0;
  }
  51% {
    transform: scale(1, 1);
    transform-origin: 0 100%;
  }
  100% {
    transform: scale(1, 0);
    transform-origin: 0 100%;
  }
}
/*================
  achievements
================*/
#wrapper .achievements {
  background-image: url(../img/front-page/bg_pc.jpg);
  background-size: auto;
  background-repeat: repeat;
  padding: min(148 / 1366 * 100vw, 148px) 0 min(150 / 1366 * 100vw, 150px);
}
#wrapper .achievements__inner {
  position: relative;
}
#wrapper .achievements__inner::before {
  content: "";
  background: url(../img/front-page/bg_achievements_icon_pc.png) top/cover no-repeat;
  position: absolute;
  top: max(-130 / 1366 * 100vw, -130px);
  left: min(20 / 1366 * 100vw, 20px);
  width: min(406 / 1366 * 100vw, 406px);
  height: min(406 / 1366 * 100vw, 406px);
  z-index: 0;
  pointer-events: none;
}
#wrapper .achievements__contents {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: min(45 / 1366 * 100vw, 45px);
  position: relative;
  z-index: 1;
}
#wrapper .achievements__title {
  font-size: min(40 / 1366 * 100vw, 40px);
  line-height: 2.5;
  letter-spacing: 0.1em;
  font-weight: 700;
  text-align: center;
}
#wrapper .achievements__badge {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: min(22 / 1366 * 100vw, 22px);
}
#wrapper .achievements__description {
  font-size: min(20 / 1366 * 100vw, 20px);
  line-height: 1;
  letter-spacing: 0.1em;
  font-weight: 400;
  margin-top: min(27 / 1366 * 100vw, 27px);
}
#wrapper .achievements__badge-image {
  width: min(216 / 1366 * 100vw, 216px);
}
#wrapper .achievements__contents-right {
  position: relative;
}
#wrapper .achievements__photo {
  width: min(733 / 1366 * 100vw, 733px);
}
/*================
  concept
================*/
#wrapper .concept {
  padding: min(140 / 1366 * 100vw, 140px) 0 min(470 / 1366 * 100vw, 470px);
  background-color: #000;
}
#wrapper .concept__inner {
  position: relative;
}
#wrapper .concept__inner::before {
  content: "";
  background: url(../img/front-page/concept_bg_text_pc.png) right/contain no-repeat;
  position: absolute;
  top: max(-100 / 1366 * 100vw, -100px);
  right: min(20 / 1366 * 100vw, 20px);
  width: min(431 / 1366 * 100vw, 431px);
  height: min(211 / 1366 * 100vw, 211px);
  pointer-events: none;
}
#wrapper .concept__contents-block {
  display: flex;
  align-items: flex-start;
  gap: min(75 / 1366 * 100vw, 75px);
  margin-bottom: min(100 / 1366 * 100vw, 100px);
}
#wrapper .concept__contents-block:first-of-type {
  margin-top: min(75 / 1366 * 100vw, 75px);
}
#wrapper .concept__contents-block:nth-child(even) {
  flex-direction: row-reverse;
}
#wrapper .concept__contents-left {
  width: min(683 / 1366 * 100% ,683px);
}
#wrapper .concept__contents-right {
  width: 40%;
}
#wrapper .concept__contents-lead {
  font-size: min(40 / 1366 * 100vw, 40px);
  line-height: 1.5;
  letter-spacing: 0.1em;
  font-weight: 700;
  color: #fff;
  margin-top: min(-10 / 1366 * 100vw, -10px);
}
#wrapper .concept__contents-description {
  font-size: min(14 / 1366 * 100vw, 14px);
  line-height: 2.5;
  letter-spacing: 0.06em;
  font-weight: 400;
  color: #fff;
  margin-top: min(15 / 1366 * 100vw, 15px);
  width: 84%;
}
#wrapper .concept__contents-banner {
  background-image: url(../img/front-page/concept_banner_bg.jpg);
  padding: min(35 / 1366 * 100vw, 35px) 0 min(40 / 1366 * 100vw, 40px);
  width: min(765 / 1366 * 100vw, 765px);
  margin-inline: auto;
}
#wrapper .concept__contents-banner-lead {
  font-size: min(30 / 1366 * 100vw, 30px);
  line-height: 1;
  letter-spacing: 0.1em;
  font-weight: 400;
  text-align: center;
}
#wrapper .concept__contents-banner-image {
  width: min(598 / 1366 * 100vw, 598px);
  margin: min(35 / 1366 * 100vw, 35px) auto 0;
}
/*================
  menu
================*/
#wrapper .bg__block {
  background-image: url(../img/front-page/bg_pc.jpg);
  background-size: auto;
  background-repeat: repeat;
  position: relative;
}
#wrapper .bg__menu-photo {
  width: min(1286 / 1366 * 100vw, 1286px);
  position: absolute;
  right: 0;
  translate: 0 -74%;
}
#wrapper .menu {
  padding: min(220 / 1366 * 100vw, 220px) 0 min(103 / 1366 * 100vw, 103px);
}
#wrapper .menu__inner {
  position: relative;
}
#wrapper .menu__inner::after {
  content: "";
  background: url(../img/front-page/bg_menu_icon_pc.png) right/contain no-repeat;
  position: absolute;
  top: max(-100 / 1366 * 100vw, -100px);
  right: min(20 / 1366 * 100vw, 20px);
  width: min(416 / 1366 * 100vw, 416px);
  height: min(416 / 1366 * 100vw, 416px);
  z-index: 0;
  pointer-events: none;
}
#wrapper .menu__accordion {
  position: relative;
  z-index: 1;
}
#wrapper .menu__accordion--special {
  margin-top: min(83 / 1366 * 100vw, 83px);
}
#wrapper .menu__accordion--premium {
  margin-top: min(50 / 1366 * 100vw, 50px);
}
#wrapper .menu__accordion::after {
  content: "";
  display: block;
  padding-top: min(50 / 1366 * 100vw, 50px);
  width: min(1206 / 1366 * 100vw, 1206px);
  margin-inline: auto;
}
#wrapper .menu__accordion:first-of-type::after {
  border-bottom: min(2 / 1366 * 100vw, 2px) solid #000;
}
#wrapper .menu__accordion:has(.is-accordion-open)::after {
  padding-top: clamp(8.125rem, 4.1563rem + 8.4553vw, 11.375rem);
}
#wrapper .menu__accordion-heading {
  font-size: min(30 / 1366 * 100vw, 30px);
  line-height: 1;
  letter-spacing: 0.1em;
  font-weight: 700;
  width: fit-content;
  margin-inline: auto;
  position: relative;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: min(15 / 1366 * 100vw, 15px);
}
#wrapper .menu__accordion-text {
  width: min(28 / 1366 * 100vw, 28px);
  height: min(28 / 1366 * 100vw, 28px);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: #b99b66;
}
#wrapper .menu__accordion-text::before,
#wrapper .menu__accordion-text::after {
  content: "";
  position: absolute;
  width: min(14 / 1366 * 100vw, 14px);
  height: min(2 / 1366 * 100vw, 2px);
  background: #fff;
}
#wrapper .menu__accordion-text::before {
  transform: rotate(-90deg);
  transition: transform 0.3s;
}
#wrapper .menu__accordion-text.is-accordion-open::before {
  transform: rotate(0deg);
}
#wrapper .menu__accordion-body {
  display: none;
}
#wrapper .menu__accordion-body-block {
  display: flex;
  align-items: flex-start;
  gap: min(55 / 1366 * 100vw, 55px);
  margin-top: min(60 / 1366 * 100vw, 60px);
  position: relative;
}
#wrapper .menu__accordion-body-image-list {
  position: relative;
}
#wrapper .slick-list {
  width: min(622 / 1366 * 100vw, 622px);
  position: relative;
  z-index: 2;
}
#wrapper .slick-dots {
  position: absolute;
  right: 0;
  width: min(542 / 1366 * 100vw, 542px);
}
#wrapper .slick-dots li {
  pointer-events: none;
  margin: 0 min(8 / 1366 * 100vw, 8px);
}
#wrapper .slick-dots li button::before {
  content: "";
  cursor: pointer;
  width: min(10 / 1366 * 100vw, 10px);
  height: min(10 / 1366 * 100vw, 10px);
  margin: auto;
  position: absolute;
  top: min(20 / 1366 * 100vw, 20px);
  left: 0;
  right: 0;
  pointer-events: all;
  opacity: 1;
  z-index: 2;
  background-color: #e9e7e4;
  border-radius: 50%;
}
#wrapper .slick-dots li.slick-active button::before {
  background-color: #b99b66;
}
#wrapper .menu__accordion-body-right {
  width: 44%;
}
#wrapper .menu__accordion-body-explanation {
  font-size: min(14 / 1366 * 100vw, 14px);
  line-height: 2.5;
  letter-spacing: 0.06em;
  font-weight: 400;
  margin-top: max(-10 / 1366 * 100vw, -10px);
}
#wrapper .menu__accordion-body-price {
  font-size: min(20 / 1366 * 100vw, 20px);
  line-height: 1.75;
  letter-spacing: 0.06em;
  font-weight: 400;
  margin-top: min(15 / 1366 * 100vw, 15px);
  text-align: right;
}
#wrapper .menu__accordion-body-menu {
  background-color: #fff;
  position: absolute;
  bottom: -70px;
  left: 0;
  right: 0;
  margin-inline: auto;
  width: min(1206 / 1366 * 100vw, 1206px);
  z-index: 1;
  display: flex;
  justify-content: flex-end;
  padding: min(40 / 1366 * 100vw, 40px) min(25 / 1366 * 100vw, 25px) min(50 / 1366 * 100vw, 50px) 0;
}
#wrapper .menu__accordion-body-menu-detail {
  width: 50%;
}
#wrapper .menu__accordion-body-menu-heading {
  font-size: min(20 / 1366 * 100vw, 20px);
  line-height: 1.75;
  letter-spacing: 0.1em;
  font-weight: 400;
  border-bottom: min(2 / 1366 * 100vw, 2px) solid #000;
  padding-bottom: min(10 / 1366 * 100vw, 10px);
  margin-bottom: min(10 / 1366 * 100vw, 10px);
}
#wrapper .menu__accordion-body-menu-list {
  display: grid;
  grid-template: repeat(1, 1fr) / repeat(3, 1fr);
  grid-column-gap: min(40 / 1366 * 100vw, 40px)
}
#wrapper .menu__accordion-body-menu-list-item {
  font-size: min(14 / 1366 * 100vw, 14px);
  line-height: 2.5;
  letter-spacing: 0.1em;
  font-weight: 400;
  white-space: nowrap;
}
#wrapper .menu__accordion-body-menu-list-item::before {
  content: "◆";
  width: min(15 / 1366 * 100vw, 15px);
  height: min(15 / 1366 * 100vw, 15px);
  color: #b99b66;
  margin-right: min(1 / 1366 * 100vw, 1px);
}
#wrapper .menu__accordion-body-note-list {
  position: absolute;
  bottom: min(50 / 1366 * 100vw, 50px);
  left: 0;
  right: 0;
  width: min(1206 / 1366 * 100vw, 1206px);
  margin-inline: auto;
  opacity: 0;
}
#wrapper .menu__accordion-heading.is-accordion-open + .menu__accordion-body .menu__accordion-body-note-list {
  opacity: 1;
  transition: 1s;
}
#wrapper .menu__accordion-body-note-list-item {
  font-size: min(10 / 1366 * 100vw, 10px);
  line-height: 1.5;
  letter-spacing: 0.1em;
  font-weight: 400;
}
/*================
  voice
================*/
#wrapper .voice {
  background-color: #000;
  margin-right: min(80 / 1366 * 100vw, 80px);
  padding: min(85 / 1366 * 100vw, 85px) 0 min(120 / 1366 * 100vw, 120px);
}
#wrapper .voice__inner {
  width: 100vw;
}
#wrapper .voice__text {
  font-size: min(20 / 1366 * 100vw, 20px);
  line-height: 2.5;
  letter-spacing: 0.1em;
  font-weight: 400;
  color: #fff;
  text-align: center;
  margin-top: min(40 / 1366 * 100vw, 40px);
}
#wrapper .voice__review {
  max-width: 1200px;
  margin-inline: auto;
}
/*================
  sns
================*/
#wrapper .sns {
  padding: min(100 / 1366 * 100vw, 100px) 0;
  background: linear-gradient(90deg, #000 0%, #000 min(80 / 1366 * 100vw, 80px), #fff min(80 / 1366 * 100vw, 80px), #fff 100%);
}
#wrapper .sns__review {
  max-width: 1200px;
  margin-inline: auto;
}
#wrapper .sns__button {
  margin-top: min(51 / 1366 * 100vw, 51px);
}
#wrapper .sns__button-link {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: min(10 / 1366 * 100vw, 10px);
  width: min(237 / 1366 * 100vw, 237px);
  border-radius: 23px;
  background-color: #b99b66;
  margin-inline: auto;
}
#wrapper .sns__button-image {
  width: min(23 / 1366 * 100vw, 23px);
}
#wrapper .sns__button-text {
  font-size: min(20 / 1366 * 100vw, 20px);
  line-height: 2.25;
  font-weight: 400;
  letter-spacing: 0.1em;
  color: #fff;
}
/*================
  news
================*/
#wrapper .news {
  padding: min(85 / 1366 * 100vw, 85px) 0 min(100 / 1366 * 100vw, 100px);
  background-image: url(../img/front-page/bg_pc.jpg);
  background-size: auto;
  background-repeat: repeat;
  margin-right: min(80 / 1366 * 100vw, 80px);
}
#wrapper .news__inner {
  width: 100vw;
}
#wrapper .news__contents {
  width: min(848 / 1366 * 100vw, 848px);
  margin: min(20 / 1366 * 100vw, 20px) auto 0;
}
#wrapper .news__contents-group {
  display: flex;
  align-items: center;
  gap: min(20 / 1366 * 100vw, 20px);
  padding: min(30 / 1366 * 100vw, 30px) min(23 / 1366 * 100vw, 23px);
  border-bottom: 1px solid #000;
}
#wrapper .news__contents-group:last-of-type {
  padding-bottom: 0;
  border: none;
}
#wrapper .news__contents-text-heading {
  display: flex;
  align-items: center;
  gap: min(15 / 1366 * 100vw, 15px);
}
#wrapper .news__contents-text-time {
  font-size: min(14 / 1366 * 100vw, 14px);
  line-height: 1.8;
  letter-spacing: 0.1em;
  font-weight: 400;
}
#wrapper .news__contents-text-label {
  font-size: min(14 / 1366 * 100vw, 14px);
  line-height: 1.8;
  letter-spacing: 0.1em;
  font-weight: 400;
  color: #fff;
  background-color: #b99b66;
  width: min(90 / 1366 * 100vw, 90px);
  text-align: center;
}
#wrapper .news__contents-text-description {
  font-size: min(14 / 1366 * 100vw, 14px);
  line-height: 1.8;
  letter-spacing: 0.1em;
  font-weight: 400;
}
#wrapper .news__contents-text-description-link {
  color: inherit;
}
#wrapper .news__button {
  margin-top: min(70 / 1366 * 100vw, 70px);
}
#wrapper .news__button-link {
  font-size: min(20 / 1366 * 100vw, 20px);
  line-height: 2.25;
  font-weight: 400;
  letter-spacing: 0.1em;
  color: #fff;
  width: min(200 / 1366 * 100vw, 200px);
  border-radius: 23px;
  display: block;
  text-align: center;
  margin-inline: auto;
  background-color: #b99b66;
}
/*================
  shop
================*/
#wrapper .shop {
  padding: min(80 / 1366 * 100vw, 80px) 0 min(70 / 1366 * 100vw, 70px);
  background-color: #000;
}
#wrapper .shop__inner {
  padding: 0 min(80 / 1366 * 100vw, 80px);
}
#wrapper .shop__contents {
  display: grid;
  grid-template: repeat(1, 1fr) / repeat(3, 1fr);
  grid-row-gap: min(100 / 1366 * 100vw, 100px);
  margin-top: min(55 / 1366 * 100vw, 55px);
}
#wrapper .shop__card {
  width: min(402 / 1366 * 100vw, 402px);
  display: flex;
  flex-direction: column;
}
#wrapper .shop__card-detail {
  padding: 0 min(25 / 1366 * 100vw, 25px);
  display: flex;
  flex-direction: column;
  flex-grow: 1;
}
#wrapper .shop__card-detail--border {
  border-right: 1px solid #fff;
}
#wrapper .shop__card-text {
  display: block;
  width: 100%;
  padding: min(30 / 1366 * 100vw, 30px) 0 min(70 / 1366 * 100vw, 70px);
  flex-grow: 1;
}
#wrapper .shop__card-text-group {
  display: flex;
  justify-content: space-between;
}
#wrapper .shop__card-text-left {
  width: 16%;
}
#wrapper .shop__card-text-left-heading {
  font-size: min(12 / 1366 * 100vw, 12px);
  line-height: 2.5;
  font-weight: 400;
  letter-spacing: 0.04em;
  color: #fff;
}
#wrapper .shop__card-text-right {
  width: 80%;
}
#wrapper .shop__card-text-right-body {
  font-size: min(12 / 1366 * 100vw, 12px);
  line-height: 2.5;
  font-weight: 400;
  letter-spacing: 0.04em;
  color: #fff;
  white-space: nowrap;
}
#wrapper .shop__card-text-right-body--access {
  line-height: 1;
}
#wrapper .shop__card-text-right-body--access-time {
  font-size: min(12 / 1366 * 100vw, 12px);
  line-height: 2.5;
  font-weight: 400;
  letter-spacing: 0.04em;
  color: #fff;
}
#wrapper .shop__card-text-right-body-note {
  font-size: min(10 / 1366 * 100vw, 10px);
  line-height: 1.5;
  font-weight: 400;
  letter-spacing: 0.04em;
  color: #fff;
}
#wrapper .shop__card-map {
  display: inline-block;
  width: 20px;
  height: 15px;
}
#wrapper .shop__card-map-link {
  text-decoration: underline;
  color: #fff;
}
#wrapper .shop__card-text-right-body-tel {
  color: #fff;
}
#wrapper .shop__link {
  display: grid;
  grid-template: repeat(1, 1fr) / repeat(2, min(167 / 1366 * 100vw, 167px));
  grid-column-gap: min(13 / 1366 * 100vw, 13px);
  grid-row-gap: min(15 / 1366 * 100vw, 15px);
}
#wrapper .shop__link-text {
  font-size: min(14 / 1366 * 100vw, 14px);
  line-height: 2.8;
  font-weight: 400;
  letter-spacing: 0.04em;
  color: #b99b66;
  border: 1px solid #b99b66;
  display: block;
  text-align: center;
}
#wrapper .shop__button {
  margin-top: min(20 / 1366 * 100vw, 20px);
  text-align: center;
}
#wrapper .shop__button-text {
  font-size: min(20 / 1366 * 100vw, 20px);
  line-height: 2.8;
  font-weight: 400;
  letter-spacing: 0.2em;
  color: #fff;
  background-color: #970000;
  width: 100%;
  display: block;
  position: relative;
}
#wrapper .shop__button-text::before {
  content: "";
  width: min(18 / 1366 * 100vw, 18px);
  height: min(18 / 1366 * 100vw, 18px);
  background-color: #fff;
  display: block;
  position: absolute;
  top: 50%;
  right: min(15 / 1366 * 100vw, 15px);
  translate: 0 -50%;
  border-radius: 50%;
}
#wrapper .shop__button-text::after {
  content: "";
  border-style: solid;
  border-width: min(5 / 1366 * 100vw, 5px) 0 min(5 / 1366 * 100vw, 5px) min(6 / 1366 * 100vw, 6px);
  border-color: transparent transparent transparent #970000;
  position: absolute;
  top: 50%;
  right: 4.75%;
  translate: -50% -50%;
}
/* ---------------------------------------------
  SP
--------------------------------------------- */
@media (max-width: 750px) {
  /*================
  共通
  ================*/
  #wrapper .section__inner {
    padding: 0 min(40 / 750 * 100vw, 40px);
  }
  #wrapper .section__title-en {
    font-size: min(28 / 750 * 100vw, 28px);
  }
  #wrapper .section__title-ja {
    font-size: min(50 / 750 * 100vw, 50px);
  }
  /*================
    追従ボタン
  ================*/
  #wrapper .float {
    position: fixed;
    top: auto;
    bottom: 0;
    right: 0;
    width: 100%;
  }
  #wrapper .float__button-text {
    font-size: min(40 / 750 * 100vw, 40px);
    line-height: 2.25;
    writing-mode: horizontal-tb;
    border-radius: 0;
    padding: 0;
    text-align: center;
  }
  /*================
    fv
  ================*/
  #wrapper .fv {
    height: calc(100svh - min(90 / 750 * 100vw, 90px));
  }
  #wrapper .fv__guide {
    height: min(231 / 750 * 100vw, 231px);
  }
  #wrapper .fv__guide-scroll {
    right: min(40 / 750 * 100vw, 40px);
    padding-bottom: min(150 / 750 * 100vw, 150px);
    font-size: min(18 / 750 * 100vw, 18px);
  }
  #wrapper .fv__guide-scroll::after {
    height: min(137 / 750 * 100vw, 137px);
    left: 45%;
  }
  /*================
    achievements
  ================*/
  #wrapper .achievements {
    background: url(../img/front-page/bg_sp.jpg) top/cover no-repeat;
    padding: min(100 / 750 * 100vw, 100px) 0 min(145 / 750 * 100vw, 145px);
  }
  #wrapper .achievements__inner {
    padding: 0;
  }
  #wrapper .achievements__inner::before {
    background: url(../img/front-page/bg_achievements_icon_sp.png) top/cover no-repeat;
    top: max(-80 / 750 * 100vw, -80px);
    left: min(10 / 750 * 100vw, 10px);
    width: min(339 / 750 * 100vw, 339px);
    height: min(341 / 750 * 100vw, 341px);
  }
  #wrapper .achievements__contents {
    flex-direction: column;
    gap: min(70 / 750 * 100vw, 70px);
  }
  #wrapper .achievements__contents-left {
    padding: 0 min(40 / 750 * 100vw, 40px);
  }
  #wrapper .achievements__title {
    font-size: min(50 / 750 * 100vw, 50px);
  }
  #wrapper .achievements__description {
    font-size: min(26 / 750 * 100vw, 26px);
    margin-top: min(55 / 750 * 100vw, 55px);
    text-align: center;
  }
  #wrapper .achievements__badge {
    gap: min(28 / 750 * 100vw, 28px);
    margin-top: min(10 / 750 * 100vw, 10px);
  }
  #wrapper .achievements__badge-image {
    width: min(290 / 750 * 100vw, 290px);
  }
  #wrapper .achievements__contents-right {
    margin: 0 0 0 auto;
    width: min(710 / 750 * 100vw, 710px);
  }
  #wrapper .achievements__photo {
    width: 100%;
  }
  /*================
    concept
  ================*/
  #wrapper .concept {
    padding: min(120 / 750 * 100vw, 120px) 0 min(298 / 750 * 100vw, 298px);
  }
  #wrapper .concept__inner::before {
    background: url(../img/front-page/concept_bg_text_sp.png) right/contain no-repeat;
    position: absolute;
    top: max(-90 / 750 * 100vw, -90px);
    right: min(15 / 750 * 100vw, 15px);
    width: min(404 / 750 * 100vw, 404px);
    height: min(199 / 750 * 100vw, 199px);
  }
  #wrapper .concept__contents-block {
    flex-direction: column-reverse;
    gap: min(60 / 750 * 100vw, 60px);
    margin-bottom: min(75 / 750 * 100vw, 75px);
  }
  #wrapper .concept__contents-block:first-of-type {
    margin-top: min(80 / 750 * 100vw, 80px);
  }
  #wrapper .concept__contents-block:nth-child(even) {
    flex-direction: column-reverse;
  }
  #wrapper .concept__contents-block:last-of-type {
    margin-bottom: min(100 / 750 * 100vw, 100px);
  }
  #wrapper .concept__contents-left {
    width: 100%;
  }
  #wrapper .concept__contents-right {
    width: 100%;
  }
  #wrapper .concept__contents-lead {
    font-size: min(40 / 750 * 100vw, 40px);
    margin-top: 0;
    text-align: center;
    white-space: nowrap;
    font-feature-settings: "palt";
  }
  #wrapper .concept__contents-description {
    font-size: min(24 / 750 * 100vw, 24px);
    line-height: 2;
    letter-spacing: 0.1em;
    margin-top: min(35 / 750 * 100vw, 35px);
    width: 100%;
  }
  #wrapper .concept__contents-banner {
    padding: min(45 / 750 * 100vw, 45px) 0 min(50 / 750 * 100vw, 50px);
    width: 100%;
    margin-top: min(110 / 750 * 100vw, 110px);
  }
  #wrapper .concept__contents-banner-lead {
    font-size: min(30 / 750 * 100vw, 30px);
  }
  #wrapper .concept__contents-banner-image {
    width: min(593 / 750 * 100vw, 593px);
    margin: min(40 / 750 * 100vw, 40px) auto 0;
  }
  /*================
    menu
  ================*/
  #wrapper .bg__block {
    background: url(../img/front-page/bg_sp.jpg) top/cover no-repeat;
  }
  #wrapper .bg__menu-photo {
    width: min(710 / 750 * 100vw, 710px);
    translate: 0 -50%;
  }
  #wrapper .menu {
    padding: min(280 / 750 * 100vw, 280px) 0 min(50 / 750 * 100vw, 50px);
  }
  #wrapper .menu__inner::after {
    background: url(../img/front-page/bg_menu_icon_sp.png) right/contain no-repeat;
    top: max(-110 / 750 * 100vw, -110px);
    right: min(15 / 750 * 100vw, 15px);
    width: min(324 / 750 * 100vw, 324px);
    height: min(338 / 750 * 100vw, 338px);
  }
  #wrapper .menu__accordion--special {
    margin-top: min(90 / 750 * 100vw, 90px);
  }
  #wrapper .menu__accordion--premium {
    margin-top: min(60 / 750 * 100vw, 60px);
  }
  #wrapper .menu__accordion::after {
    padding-top: min(60 / 750 * 100vw, 60px);
    width: 100%;
  }
  #wrapper .menu__accordion:first-of-type::after {
    border-bottom: min(2 / 750 * 100vw, 2px) solid #000;
  }
  #wrapper .menu__accordion:has(.is-accordion-open)::after {
    padding-top: min(260 / 750 * 100vw, 260px);
  }
  #wrapper .menu__accordion-heading {
    font-size: min(35 / 750 * 100vw, 35px);
    line-height: 1.428;
    letter-spacing: 0;
    width: 100%;
    justify-content: space-between;
    white-space: nowrap;
  }
  #wrapper .menu__accordion-text {
    width: min(50 / 750 * 100vw, 50px);
    height: min(50 / 750 * 100vw, 50px);
  }
  #wrapper .menu__accordion-text::before,
  #wrapper .menu__accordion-text::after {
    width: min(24 / 750 * 100vw, 24px);
    height: min(2 / 750 * 100vw, 2px);
  }
  #wrapper .menu__accordion-body-block {
    flex-direction: column;
    align-items: center;
    gap: min(55 / 750 * 100vw, 55px);
    margin-top: min(60 / 750 * 100vw, 60px);
  }
  #wrapper .slick-list {
    width: min(610 / 750 * 100vw, 610px);
    margin-inline: auto;
  }
  #wrapper .slick-dots {
    width: 100%;
  }
  #wrapper .slick-dots li {
    margin: 0 min(8 / 750 * 100vw, 8px);
  }
  #wrapper .slick-dots li button::before {
    width: min(15 / 750 * 100vw, 15px);
    height: min(15 / 750 * 100vw, 15px);
    top: min(20 / 750 * 100vw, 20px);
  }
  #wrapper .menu__accordion-body-explanation {
    font-size: min(24 / 750 * 100vw, 24px);
    line-height: 2;
    margin-top: 0;
  }
  #wrapper .menu__accordion-body-price {
    font-size: min(24 / 750 * 100vw, 24px);
    line-height: 1;
    margin-top: min(30 / 750 * 100vw, 30px);
  }
  #wrapper .menu__accordion-body-menu {
    position: relative;
    bottom: 0;
    flex-direction: column;
    padding: min(190 / 750 * 100vw, 190px) min(30 / 750 * 100vw, 30px) min(50 / 750 * 100vw, 50px);
    margin-top: max(-110 / 750 * 100vw, -110px);
  }
  #wrapper .menu__accordion-body-menu-detail {
    width: 100%;
  }
  #wrapper .menu__accordion-body-menu-heading {
    font-size: min(24 / 750 * 100vw, 24px);
    border-bottom: min(2 / 750 * 100vw, 2px) solid #000;
    padding-bottom: min(10 / 750 * 100vw, 10px);
    margin: min(40 / 750 * 100vw, 40px) 0;
    padding-left: min(15 / 750 * 100vw, 15px);
  }
  #wrapper .menu__accordion-body-menu-list {
    columns: 2;
    grid-column-gap: 0;
    padding: 0 min(15 / 750 * 100vw, 15px);
  }
  #wrapper .menu__accordion-body-menu-list-item {
    font-size: min(24 / 750 * 100vw, 24px);
    line-height: 1.875;
    letter-spacing: 0.05em;
  }
  #wrapper .menu__accordion-body-menu-list-item::before {
    width: min(24 / 750 * 100vw, 24px);
    height: min(24 / 750 * 100vw, 24px);
    margin-right: min(4 / 750 * 100vw, 4px);
  }
  #wrapper .menu__accordion-body-note-list-item {
    font-size: min(18 / 750 * 100vw, 18px);
    line-height: 2.222;
  }
  /*================
    voice
  ================*/
  #wrapper .voice {
    margin-right: min(40 / 750 * 100vw, 40px);
    padding: min(85 / 750 * 100vw, 85px) 0 min(160 / 750 * 100vw, 160px);
  }
  #wrapper .voice__text {
    font-size: min(24 / 750 * 100vw, 24px);
    margin-top: min(30 / 750 * 100vw, 30px);
  }
  /*================
    sns
  ================*/
  #wrapper .sns {
    padding: min(80 / 750 * 100vw, 80px) 0 min(100 / 750 * 100vw, 100px);
    background: linear-gradient(90deg, #000 0%, #000 min(40 / 750 * 100vw, 40px), #fff min(40 / 750 * 100vw, 40px), #fff 100%);
  }
  #wrapper .sns__button {
    margin-top: min(59 / 750 * 100vw, 59px);
  }
  #wrapper .sns__button-link {
    gap: min(15 / 750 * 100vw, 15px);
    width: min(388 / 750 * 100vw, 388px);
    border-radius: 38px;
  }
  #wrapper .sns__button-image {
    width: min(31 / 750 * 100vw, 31px);
    margin-top: min(3 / 750 * 100vw, 3px);
  }
  #wrapper .sns__button-text {
    font-size: min(30 / 750 * 100vw, 30px);
    line-height: 2.5;
  }
  /*================
    news
  ================*/
  #wrapper .news {
    padding: min(85 / 750 * 100vw, 85px) 0 min(100 / 750 * 100vw, 100px);
    background: url(../img/front-page/bg_sp.jpg) top/cover no-repeat;
    margin-right: min(40 / 750 * 100vw, 40px);
  }
  #wrapper .news__contents {
    width: min(595 / 750 * 100vw, 595px);
    margin: min(40 / 750 * 100vw, 40px) auto 0;
  }
  #wrapper .news__contents-group {
    gap: min(15 / 750 * 100vw, 15px);
    padding: min(30 / 750 * 100vw, 30px) min(1 / 750 * 100vw, 1px);
  }
  #wrapper .news__contents-text-heading {
    gap: min(15 / 750 * 100vw, 15px);
  }
  #wrapper .news__contents-text-time {
    font-size: min(22 / 750 * 100vw, 22px);
    line-height: 1.58;
    letter-spacing: 0;
  }
  #wrapper .news__contents-text-label {
    font-size: min(18 / 750 * 100vw, 18px);
    line-height: 1.58;
    width: min(90 / 750 * 100vw, 90px);
  }
  #wrapper .news__contents-text-description {
    font-size: min(22 / 750 * 100vw, 22px);
    line-height: 1.58;
  }
  #wrapper .news__button {
    margin-top: min(70 / 750 * 100vw, 70px);
  }
  #wrapper .news__button-link {
    font-size: min(30 / 750 * 100vw, 30px);
    line-height: 2.5;
    width: min(307 / 750 * 100vw, 307px);
    border-radius: 37px;
  }
  /*================
    shop
  ================*/
  #wrapper .shop {
    padding: min(80 / 750 * 100vw, 80px) 0 min(125 / 750 * 100vw, 125px);
  }
  #wrapper .shop__inner {
    padding: 0 min(40 / 750 * 100vw, 40px);
  }
  #wrapper .shop__contents {
    display: flex;
    flex-direction: column;
    grid-row-gap: min(80 / 750 * 100vw, 80px);
    margin-top: min(90 / 750 * 100vw, 90px);
  }
  #wrapper .shop__card {
    width: 100%;
    display: flex;
    flex-direction: column;
  }
  #wrapper .shop__card-detail {
    padding: 0;
  }
  #wrapper .shop__card-detail--border {
    border-right: none;
  }
  #wrapper .shop__card-text {
    padding: min(45 / 750 * 100vw, 45px) 0;
  }
  #wrapper .shop__card-text-left {
    width: 20%;
  }
  #wrapper .shop__card-text-left-heading {
    font-size: min(24 / 750 * 100vw, 24px);
  }
  #wrapper .shop__card-text-right {
    width: 80%;
  }
  #wrapper .shop__card-text-right-body {
    font-size: min(24 / 750 * 100vw, 24px);
  }
  #wrapper .shop__card-text-right-body--access-time {
    font-size: min(24 / 750 * 100vw, 24px);
  }
  #wrapper .shop__card-text-right-body-note {
    font-size: min(18 / 750 * 100vw, 18px);
  }
  #wrapper .shop__card-map {
    width: min(30 / 750 * 100vw, 30px);
    height: min(25 / 750 * 100vw, 25px);
  }
  #wrapper .shop__link {
    display: flex;
    gap: min(18 / 750 * 100vw, 18px);
  }
  #wrapper .shop__link-wrap {
    width: calc(1 / 3 * 100%);
  }
  #wrapper .shop__link-text {
    font-size: min(24 / 750 * 100vw, 24px);
    line-height: 2.8;
  }
  #wrapper .shop__button {
    margin-top: min(50 / 750 * 100vw, 50px);
  }
  #wrapper .shop__button-text {
    font-size: min(35 / 750 * 100vw, 35px);
    line-height: 2.7;
  }
  #wrapper .shop__button-text::before {
    width: min(30 / 750 * 100vw, 30px);
    height: min(30 / 750 * 100vw, 30px);
    right: min(40 / 750 * 100vw, 40px);
  }
  #wrapper .shop__button-text::after {
    border-width: min(8 / 750 * 100vw, 8px) 0 min(8 / 750 * 100vw, 8px) min(12 / 750 * 100vw, 12px);
    right: 6.25%;
  }
}