@charset "UTF-8";
* {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  -ms-box-sizing: border-box;
  box-sizing: border-box;
}

/* 大枠 */
html,
body {
  height: 100%;
  -webkit-font-smoothing: antialiased;
  -webkit-text-size-adjust: none;
  -webkit-overflow-scrolling: touch !important;
  -moz-osx-font-smoothing: grayscale;
}

@media print {
  html,
  html body {
    overflow: visible !important;
  }
}
body {
  font-size: 13px;
  line-height: 1.6;
  font-family: "IBM Plex Sans JP", sans-serif;
  font-weight: 500;
  color: #000;
  word-wrap: break-word;
  overflow-wrap: break-word;
}
body #wrapper {
  height: auto;
}

/* アクセシビリティ */
img {
  image-rendering: -webkit-optimize-contrast;
  max-width: 100%;
  height: auto;
  vertical-align: bottom;
  box-shadow: #000 0 0 0;
  /* ロールオーバー対応 */
}

img,
x:-moz-any-link,
x:default {
  box-shadow: #000 0 0 0;
  /* IE7対応 */
}

/* リンク */
a {
  display: inline-block;
}
a:link, a:visited, a:active {
  text-decoration: none;
}
a:hover {
  opacity: 0.7;
  text-decoration: none !important;
}

.container {
  width: 100%;
  padding: 0 20px;
  margin: 0 auto;
  position: relative;
}

/* ▼▼▼ PC背景
====================================================== */
.site-content {
  overflow: visible;
}

.site-main:before {
  content: none;
}

.pcbg {
  background-image: url(../img/bg_pc.webp);
  background-position: center;
  background-size: cover;
  width: 100%;
  height: 100vh;
  position: fixed;
  top: 0;
  left: 0;
  z-index: -100;
}
@media screen and (max-width: 768px) {
  .pcbg {
    display: none;
  }
}

.contents_inner {
  display: flex;
}
.contents_inner .left {
  position: sticky;
  top: 0;
  left: 0;
  z-index: 100;
  display: flex;
  justify-content: center;
  align-items: center;
  max-width: calc(50% - 233px);
  width: 100%;
  height: 100vh;
  padding: 0 20px;
}
@media screen and (max-width: 768px) {
  .contents_inner .left {
    display: none;
  }
}
.contents_inner .left_inner {
  max-width: 200px;
  width: 100%;
}
.contents_inner .left_inner .title {
  max-width: 183px;
  margin-bottom: 8px;
}
.contents_inner .left_inner .title a {
  width: 100%;
}
.contents_inner .left_inner .sub_title {
  font-size: 10px;
  line-height: 1.2;
  font-weight: 400;
  margin-bottom: 48px;
}

/* ▼▼▼ ハンバーガーメニュー
====================================================== */
.nav_menu {
  width: 100%;
  position: fixed;
  top: 73px;
  left: 0;
  z-index: 99999;
}
@media screen and (min-width: 769px) {
  .nav_menu {
    display: none !important;
  }
}

.menu {
  --menu-width:33px;
  --menu-height:35px;
  --menu-bg-color:#D4A784;
  --menu-bar-color:#FFF;
  --menu-bar-width:19px;
  --menu-bar-height:1px;
  --menu-bar-gap:7px;
  border-radius: 50px 50px 8px 8px;
  display: block;
  width: var(--menu-width);
  height: var(--menu-height);
  background: var(--menu-bg-color);
  position: absolute;
  top: 0;
  right: 16px;
  z-index: 2000;
  transition: all 0.3s;
}
.menu .icon {
  display: block;
  width: var(--menu-bar-width);
  height: var(--menu-bar-height);
  background: var(--menu-bar-color);
  position: absolute;
  top: 50%;
  right: calc((var(--menu-width) - var(--menu-bar-width)) / 2);
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  transition: all 0.3s;
}
.menu .icon::before, .menu .icon::after {
  content: "";
  width: var(--menu-bar-width);
  height: 2px;
  background: var(--menu-bar-color);
  position: absolute;
  transition: all 0.3s;
  right: 0;
}
.menu .icon::before {
  top: calc(-1 * var(--menu-bar-gap));
}
.menu .icon::after {
  bottom: calc(-1 * var(--menu-bar-gap));
}
.menu .icon.active {
  background: transparent;
}
.menu .icon.active::before {
  transform: rotate(-130deg);
  width: 34px;
  top: 0;
  right: -6px;
}
.menu .icon.active::after {
  transform: rotate(130deg);
  width: 34px;
  bottom: 0;
  right: -6px;
}

.wrap .menu {
  background: transparent;
}

/* グローバルナビゲーション */
#gnav {
  display: block !important;
  transition: 0.5s ease-in-out;
  float: none;
  width: 100%;
  height: 100vh;
  padding: 123px 42px 66px;
  margin: 0;
  background: #E4D5BC;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1000;
  overflow: auto;
  transform: translateY(calc(-100% - 73px));
}
#gnav.open {
  transform: translateY(-73px);
}

/* ▼ メニュー
--------------------------------------- */
.menu_wrap .menu_title {
  position: relative;
  display: block;
  width: 100%;
  margin-bottom: 22px;
  padding-bottom: 10px;
}
@media screen and (max-width: 768px) {
  .menu_wrap .menu_title {
    margin-bottom: 24px;
  }
}
@media screen and (max-width: 768px) {
  .menu_wrap .menu_title.top_link {
    margin-bottom: 48px;
  }
}
.menu_wrap .menu_title::before {
  content: "";
  position: absolute;
  background: url(../img/deco_line.svg) no-repeat center/100%;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 6px;
}
.menu_wrap .menu_list {
  display: flex;
  flex-direction: column;
}
@media screen and (max-width: 768px) {
  .menu_wrap .menu_list {
    flex-wrap: wrap;
    flex-direction: row;
    gap: 10px 20px;
  }
}
.menu_wrap .menu_list .menu_item {
  width: 100%;
  height: 70px;
}
@media screen and (max-width: 768px) {
  .menu_wrap .menu_list .menu_item {
    width: calc(50% - 10px);
    height: auto;
  }
}
.menu_wrap .menu_list .menu_link {
  height: 100%;
}
.menu_wrap .menu_list .menu_link img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

/* ▼ メインコンテンツ
--------------------------------------- */
.main_contents {
  background: #fff;
  width: 100%;
  max-width: 466px;
  overflow: hidden;
}
@media screen and (max-width: 768px) {
  .main_contents {
    max-width: 100%;
  }
}

/* ▼ common
--------------------------------------- */
.section_title {
  text-align: center;
  margin-bottom: 16px;
}
.section_title img {
  width: 100%;
  height: 40px;
}
.section_title.section_others img {
  height: 35px;
}

.note_wrap {
  position: relative;
  padding-bottom: 32px;
}

.note_list {
  padding-left: 1.5em;
}

.note_item {
  font-size: 13px;
  font-weight: 400;
  line-height: 1.8;
  text-indent: -1.5em;
}
.note_item::before {
  content: "※";
  padding-right: 0.5em;
}

/* ▼ トップ　.mv
--------------------------------------- */
.mv {
  position: relative;
  padding: 25px 0 66px;
}
.mv_txt_wrap {
  position: absolute;
  top: 33px;
  left: 16px;
  width: 100%;
  z-index: 10;
}
.mv_title {
  max-width: 268px;
  width: 100%;
  margin-bottom: 4px;
}
@media screen and (max-width: 768px) {
  .mv_title {
    max-width: 216px;
  }
}
.mv_title img {
  width: 100%;
}
.mv_sub_title {
  font-size: 14px;
  font-weight: 400;
  line-height: 1.4;
}
@media screen and (max-width: 768px) {
  .mv_sub_title {
    font-size: 12px;
  }
}
.mv_img_wrap {
  display: flex;
  justify-content: flex-end;
  gap: 15px;
  margin-bottom: 16px;
}
.mv_img_wrap.paragraph02 {
  padding: 0 16px;
}
.mv_img_wrap.paragraph03 {
  padding-right: 31px;
}
.mv_img_item {
  position: relative;
  width: calc(50% - 7.5px);
  overflow: hidden;
}
@media screen and (max-width: 768px) {
  .mv_img_item {
    max-width: 167px;
  }
}
.mv_img_item.mv_img01 {
  border-radius: 100px 100px 16px 16px;
}
.mv_img_item.mv_img02 {
  border-radius: 16px 48px 16px 48px;
  top: -32px;
}
.mv_img_item.mv_img03 {
  border-radius: 16px 16px 16px 100px;
}
.mv_img_item.mv_img04 {
  border-radius: 48px;
  top: -32px;
}
.mv_img_item.mv_img05 {
  border-radius: 48px 16px 48px 16px;
}
.mv_img_inner {
  position: relative;
  width: 100%;
}
.mv_img_canvas {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
  width: 100%;
  height: 100%;
  display: block;
  pointer-events: none;
}
.mv_img_photo {
  display: block;
  width: 100%;
  height: auto;
  position: relative;
  z-index: 1;
}
.mv_img_logo {
  position: absolute;
  inset: 0;
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.6);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.4s ease, visibility 0.4s ease;
  pointer-events: none;
}
.mv_img_logo img {
  width: 80%;
  height: auto;
  object-fit: contain;
}
.mv_img_item.is-logo .mv_img_logo {
  opacity: 1;
  visibility: visible;
  transition: opacity 1s ease, visibility 1s ease;
}
.mv_img_item.is-fallback .mv_img_canvas {
  display: none;
}
.mv .mv_img04 .mv_img_logo img, .mv .mv_img05 .mv_img_logo img {
  width: 95%;
  padding-left: 25px;
}

/* ▼ common .shops
--------------------------------------- */
.shops {
  position: relative;
  padding: 106px 0 70px;
}
.shops::before, .shops::after {
  content: "";
  position: absolute;
  background: url(../img/deco_top_gd.svg) no-repeat center/cover;
  left: 0;
  width: 100%;
  height: 46px;
}
.shops::before {
  top: 0;
}
.shops::after {
  bottom: 0;
  transform: rotate(180deg);
}
.shops_text {
  text-align: center;
  margin-bottom: 22px;
}
.shops_text img {
  width: 100%;
  height: 46px;
}
.shops_wrap {
  margin-bottom: 60px;
}
.shops_title {
  position: relative;
  font-size: 18px;
  font-weight: 500;
  padding-bottom: 10px;
  margin-bottom: 40px;
}
.shops_title.others_title {
  margin-bottom: 40px;
}
.shops_title::before {
  content: "";
  position: absolute;
  background: url(../img/deco_line02.svg) no-repeat center/100%;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 9px;
}
.shops_list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 70px 40px;
}
.shops_img {
  width: 100%;
  margin-bottom: 22px;
}
.shops_name {
  font-size: 13px;
  font-weight: 500;
  color: #686868;
  text-decoration: underline !important;
}

/* ▼ トップ .card
--------------------------------------- */
.card {
  position: relative;
  padding: 24px 0 43px;
}
.card_title {
  position: relative;
  text-align: center;
  font-size: 21px;
  font-weight: 400;
  line-height: 1.8;
  margin-bottom: 24px;
  padding-bottom: 16px;
}
.card_title::before {
  content: "";
  position: absolute;
  background: url(../img/deco_line_pink.svg) no-repeat center/100%;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 9px;
}
.card_title span {
  color: #DA154F;
}
.card_title rt {
  font-weight: 600;
}
.card_content {
  position: relative;
  z-index: 2;
  padding-top: 26px;
  margin-bottom: 28px;
}
.card_content.more_content {
  margin-top: 65px;
  padding-top: 54px;
}
.card_content.more_content::after {
  content: "さらに";
  position: absolute;
  font-size: 23px;
  font-weight: 500;
  color: #DA154F;
  top: -30px;
  left: 50%;
  transform: translateX(-50%);
  background-color: #FFC7DA;
  border-radius: 50%;
  padding: 14px 18px 12px;
}
.card_content::before {
  content: "";
  position: absolute;
  background-color: #FFE9F1;
  top: 0;
  left: 0;
  width: 100%;
  height: 80%;
  z-index: -1;
}
.card_content_title {
  text-align: center;
  font-size: 20px;
  font-weight: 500;
  line-height: 1.5;
  margin-bottom: 10px;
}
.card_content_title.osc_title {
  margin-bottom: 24px;
}
.card_content_img {
  position: relative;
  width: 100%;
  max-width: 226px;
  margin: 0 auto;
}
.card_content_img::before {
  content: "";
  position: absolute;
  background: url(../img/deco_star01.svg) no-repeat center/contain;
  top: 4px;
  left: -40px;
  width: 25px;
  height: 25px;
}
.card_content_img::after {
  content: "";
  position: absolute;
  background: url(../img/deco_star02.svg) no-repeat center/contain;
  top: 4px;
  right: -35px;
  width: 25px;
  height: 24px;
}
.card_content_img img {
  width: 100%;
  height: auto;
}
.card .pink {
  color: #DA154F;
}
.card .dots {
  position: relative;
}
.card .dots::before {
  content: "";
  position: absolute;
  background: url(../img/line_dot.svg) repeat-x left center/cover;
  bottom: -2px;
  left: 0;
  width: 100%;
  height: 2px;
}
.card_point {
  margin-bottom: 28px;
}
.card_point_title {
  text-align: center;
  font-size: 16px;
  font-weight: 600;
  color: #DA154F;
  line-height: 1;
  margin-bottom: 35px;
}
.card_point_title .num {
  font-family: "figtree", sans-serif;
  font-size: 20px;
  font-weight: 600;
}
.card_point_title .small {
  font-size: 10px;
}
.card_point_title .num_b {
  font-family: "figtree", sans-serif;
  font-size: 35px;
  font-weight: 600;
}
.card_point_title .marker {
  background: linear-gradient(transparent 50%, #FFF0A6 50%);
}
.card_point_wrap {
  display: flex;
  justify-content: center;
  gap: 58px;
}
.card_point_item {
  position: relative;
  width: calc(50% - 29px);
  display: flex;
  flex-direction: column;
  align-items: center;
}
.card_point_item::before {
  content: "";
  position: absolute;
  background: url(../img/line_arrow.svg) no-repeat center left/cover;
  top: 0;
  right: -24px;
  width: 12px;
  height: 100%;
}
.card_point_item_txt {
  font-size: 16px;
  font-weight: 400;
  line-height: 1.4;
  text-align: center;
  margin-bottom: 10px;
}
.card_point_item_txt span {
  font-weight: 600;
}
.card_point_item_txt .num {
  font-family: "figtree", sans-serif;
  font-size: 20px;
  font-weight: 600;
  color: #DA154F;
}
.card_point_item_txt .small {
  color: #DA154F;
  font-size: 10px;
}
.card_point_item_img {
  width: 100%;
  max-width: 86px;
  margin: 0 auto;
}
.card_point_result {
  background-color: #FFF0A6;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  max-width: 128px;
  max-height: 128px;
  width: 100%;
  height: 100%;
  padding: 18px;
}
.card_point_result_txt {
  font-size: 16px;
  font-weight: 500;
  line-height: 1.2;
  text-align: center;
}
.card_point_result_txt .num {
  font-family: "figtree", sans-serif;
  font-size: 30px;
  font-weight: 600;
}
.card_point_result_txt .bold {
  font-weight: 600;
}
.card_btn {
  display: block;
  width: 100%;
  max-width: 302px;
  margin: 0 auto;
  padding: 12px;
  text-align: center;
  background: url(../img/arrow_pink.svg) no-repeat center right 17px/14px 11px;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.4;
  text-align: center;
  border-radius: 100vmax;
  border: 2px solid #DA154F;
}

/* ▼ 下層 .feature_heading
--------------------------------------- */
.feature_heading {
  position: relative;
  padding: 12px 0 13px;
}
.feature_heading::before {
  content: "";
  position: absolute;
  background: url(../img/deco_top_gd.svg) repeat-x top left/contain;
  left: 0;
  bottom: 0;
  transform: rotate(180deg);
  width: 100%;
  height: 20px;
}
.feature_heading .feature_title {
  max-width: 245px;
  width: 100%;
  margin: 0 auto;
}

.shop_name {
  position: relative;
  padding-top: 16px;
  margin-bottom: 26px;
}
.shop_name.new_shop {
  padding-top: 48px;
}
.shop_name_new {
  display: inline;
  position: absolute;
  top: 16px;
  left: 0;
  text-align: center;
  font-size: 12px;
  font-weight: 500;
  color: #fff;
  background-color: #00BCD9;
  border-radius: 0 20px 0 0;
  padding: 4px 18px 2px 15px;
}
.shop_name_inner {
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-bottom: 16px;
}
.shop_name_inner::before {
  content: "";
  position: absolute;
  background: url(../img/deco_line02.svg) no-repeat center/100%;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 9px;
}
.shop_name_title {
  max-width: 70%;
  width: 100%;
  height: 70px;
}
.shop_name_title img {
  width: auto;
  height: 100%;
  object-fit: contain;
}
.shop_name_floor {
  text-align: center;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.4;
}

/* ▼ 下層 .feature_mv
--------------------------------------- */
.feature_mv {
  position: relative;
  margin-bottom: 40px;
}
.feature_mv_slider {
  width: 100%;
  height: 412px;
  margin-bottom: 16px;
  clip-path: ellipse(75% 100% at 50% 100%);
  overflow: hidden;
}
@media screen and (max-width: 768px) {
  .feature_mv_slider {
    height: 332px;
  }
}
.feature_mv_slider .swiper-slide {
  width: 100%;
  height: auto;
  opacity: 0;
  transition: opacity 1s ease;
}
.feature_mv_slider .swiper-slide.swiper-slide-active {
  opacity: 1;
}
.feature_mv_slider .swiper-slide img {
  width: 100%;
  height: auto;
  display: block;
}
.feature_mv_thumbs_wrap {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 45px;
}
.feature_mv_txt {
  width: calc(100% - 132px);
  padding-left: 22px;
  font-size: 13px;
  font-weight: 400;
  line-height: 1.8;
}
.feature_mv_thumbs {
  max-width: 77px;
  width: 100%;
}
.feature_mv_thumbs .swiper-wrapper {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.feature_mv_thumbs .swiper-slide:hover {
  opacity: 0.8;
}
.feature_mv_thumbs .swiper-slide.swiper-slide-thumb-active {
  position: relative;
}
.feature_mv_thumbs .swiper-slide.swiper-slide-thumb-active::before {
  content: "";
  position: absolute;
  background-color: #202020;
  top: 0;
  left: -6px;
  width: 2px;
  height: 100%;
}
.feature_mv_thumbs .swiper-slide img {
  width: 100%;
  height: 51px;
  object-fit: cover;
}

.momo_natural .feature_mv_thumbs_wrap {
  align-items: flex-start;
}

/* ▼ 下層 .feature_mv (スライダー)
--------------------------------------- */
.recommend {
  position: relative;
  margin-bottom: 58px;
  padding: 90px 0 42px;
  z-index: 2;
}
@media screen and (max-width: 768px) {
  .recommend {
    padding: 70px 0 42px;
  }
}
.recommend::before {
  content: "";
  position: absolute;
  background-color: #DEC7B5;
  left: -42px;
  top: 0;
  width: 100%;
  height: 100%;
  border-radius: 250px 250px 16px 16px;
  z-index: -1;
}
.recommend .section_title {
  text-align: left;
  padding-left: 42px;
}
.recommend .section_title img {
  width: auto;
  height: 32px;
}
.recommend_img {
  width: 100%;
  height: auto;
  padding-left: 42px;
  margin-bottom: 24px;
}
.recommend_img img {
  width: 100%;
  height: auto;
}
.recommend_inner {
  padding: 0 84px 0 42px;
}
.recommend_inner .recommend_text {
  font-size: 13px;
  font-weight: 400;
  line-height: 1.8;
}
.recommend_inner .recommend_text:not(:last-child) {
  margin-bottom: 24px;
}
.recommend_item {
  display: block;
  font-weight: 600;
  padding-top: 6px;
}
.recommend_item.one_item {
  padding-top: 1em;
}

.map {
  margin-bottom: 42px;
}

/* ▼ .loop_img
--------------------------------------- */
.loop_img {
  overflow: hidden;
  margin-bottom: 36px;
}
.loop_img_track {
  display: flex;
  gap: 15px;
  width: fit-content;
  animation: loop 25s linear infinite;
}
.loop_img_item {
  flex-shrink: 0;
  width: 117px;
  height: 148px;
  overflow: hidden;
}
.loop_img_item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.loop_img_item.loop_img01 {
  border-radius: 80px 80px 16px 16px;
}
.loop_img_item.loop_img02 {
  border-radius: 16px 48px 16px 48px;
  top: -32px;
}
.loop_img_item.loop_img03 {
  border-radius: 16px 16px 16px 80px;
}
.loop_img_item.loop_img04 {
  border-radius: 32px;
  top: -32px;
}
.loop_img_item.loop_img05 {
  border-radius: 32px 16px 32px 16px;
}

@keyframes loop {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-660px);
  }
}
.point_link {
  margin-bottom: 12px;
}

.site-footer {
  position: relative;
}