/* 基本スタイル */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  scrollbar-gutter: stable;
  overflow-x: hidden;
}

body {
  font-family: "Zen Kaku Gothic New", "BIZ UDPGothic", "BIZ UDGothic",
    "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic UI", "Yu Gothic",
    "Meiryo UI", "Meiryo", "MS PGothic", -apple-system, BlinkMacSystemFont,
    "Segoe UI", sans-serif;
  line-height: 1.6;
  color: #373737;
  font-size: 16px;
  background-color: #fff;
  overflow-x: hidden;
}

/* アンカーリンク用のスクロールマージン（#collection_anchorのみ） */
#collection_anchor {
  /* ヘッダーの高さ = パディング上下 + ロゴ高さ + 余白 */
  scroll-margin-top: calc(43px * 2 + 24px + 20px);
  /* 約130px */

  @media (min-width: 1201px) {
    /* 1920px以下: パディングが2.24vw * 2 + ロゴ高さ + 余白 */
    scroll-margin-top: calc(2.24vw * 2 + 1.25vw + 1vw);
  }

  @media (max-width: 1200px) {
    scroll-margin-top: calc(27px * 2 + 22px + 20px);
    /* 約96px */
  }

  @media (max-width: 992px) {
    scroll-margin-top: calc(25px * 2 + 27px + 15px);
    /* 約92px */
  }
}

.wrapper {
  /* max-width: 1920px; */
  width: 100%;
  margin: 0 auto;
  /* overflow: hidden; */
}

@media (min-width: 993px) {
  .sp-only {
    display: none;
  }
}

@media (max-width: 992px) {
  .pc-only {
    display: none;
  }
}

/* ブレイクポイントごとの表示/非表示クラス */
/* 1201px以上で非表示 */
@media (min-width: 1201px) {
  .hide-xl {
    display: none;
  }
}

/* 993px〜1200pxで非表示 */
@media (max-width: 1200px) and (min-width: 993px) {
  .hide-lg {
    display: none;
  }
}

/* 769px〜992pxで非表示 */
@media (max-width: 992px) and (min-width: 769px) {
  .hide-md {
    display: none;
  }
}

/* 768px以下で非表示 */
@media (max-width: 768px) {
  .hide-sm {
    display: none;
  }
}

/* 1201px以上でのみ表示 */
@media (max-width: 1200px) {
  .show-xl-only {
    display: none;
  }
}

/* 993px〜1200pxでのみ表示 */
@media (min-width: 1201px),
(max-width: 992px) {
  .show-lg-only {
    display: none;
  }
}

/* 769px〜992pxでのみ表示 */
@media (min-width: 993px),
(max-width: 768px) {
  .show-md-only {
    display: none;
  }
}

/* 768px以下でのみ表示 */
@media (min-width: 769px) {
  .show-sm-only {
    display: none;
  }
}

/* 画像ユーティリティクラス ********************************************/
.img-cover {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}

.img-contain {
  width: 100%;
  /* height: 100%; */
  object-fit: contain;
  object-position: center;
  display: block;
}

/* フォントクラス ******************************************************/

/* 明朝体 */
.font-mincho {
  font-family: "Shippori Mincho", "BIZ UDPMincho", "BIZ UDMincho",
    "Hiragino Mincho ProN", "Hiragino Mincho Pro", "Yu Mincho", "YuMincho",
    "MS PMincho", "MS Mincho", "Times New Roman", serif;
}

/* header ***************************************************************/
#header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 100;
  background-color: transparent;
  transition: background-color 0.3s ease;
}

/* スクロール時の背景 */


#header .header_logo {
  aspect-ratio: 85 / 93;
  overflow: hidden;

  @media (min-width: 993px) {
    width: 4.427083333vw;
    margin: 1.822916667vw 0 0 2.916666667vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    width: 7.802340702vw;
    margin: 2.340702211vw 0 0 2.600780234vw;
  }

  @media (max-width: 768px) {
    width: 15vw;
    margin: 4.5vw 0 0 5vw;
  }
}

#header .header_logo img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  transition: filter 0.5s ease;
}

/* ダークモード時（KV2枚目など）- ロゴを白に */
#header.is-dark .header_logo img {
  filter: brightness(0) invert(1);
}

/* ダークモード時 - header_link（992px以上のみ）を白に */
@media (min-width: 992px) {
  #header.is-dark .header_link img {
    filter: brightness(0) invert(1);
    transition: filter 0.5s ease;
  }
}

#header .header_link {
  display: flex;

  @media (min-width: 993px) {
    margin: 3.333333333vw 5.208333333vw 0 0;
    gap: 0 4.791666667vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    gap: 5.201560468vw;
  }

  @media (max-width: 768px) {
    gap: 10vw;
  }
}

#header .header_link a {
  display: block;
  overflow: hidden;
  box-sizing: content-box;
  border-bottom: 1px solid transparent;

  @media (min-width: 993px) {
    padding-bottom: 0.78125vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    padding-bottom: 1.950585176vw;
  }

  @media (max-width: 768px) {
    padding-bottom: 3.75vw;
  }
}

#header .header_link a.collection_link {
  aspect-ratio: 135 / 15;

  @media (min-width: 1201px) {
    width: 7.03125vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    width: 8.4375vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    width: 10vw;
  }

  @media (max-width: 768px) {
    width: 50vw;
  }
}

#header .header_link a.story_link {
  aspect-ratio: 67 / 14;

  @media (min-width: 1201px) {
    width: 3.489583333vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    width: 4.1875vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    width: 26.00780234vw;
  }

  @media (max-width: 768px) {
    width: 25vw;
  }
}

#header .header_link a.contact_link {
  aspect-ratio: 101 / 15;

  @media (min-width: 1201px) {
    width: 5.260416667vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    width: 6.3125vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    width: 19.50585176vw;
  }

  @media (max-width: 768px) {
    width: 37.5vw;
  }
}

#header .header_link a img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  display: block;
}

@media (hover: hover) {
  #header .header_link a:hover {
    border-bottom: 1px solid #373737;
  }
}

/* ハンバーガーメニュー *************************************************/
.hamburger {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-direction: column;
  position: relative;
  z-index: 102;
  background: transparent;
  border: none;
  cursor: pointer;
  padding: 0;

  @media (min-width: 993px) {
    margin: 3.333333333vw 5.208333333vw 0 0;
    width: 2.5vw;
    height: 1.4vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    margin: 5.201560468vw 2.600780234vw 0 0;
    width: 4.421326398vw;
    height: 2.470741222vw;
  }

  @media (max-width: 768px) {
    margin: 10vw 5vw 0 0;
    width: 8.5vw;
    height: 4.75vw;
  }
}

.hamburger.active {
  justify-content: center;
}

.hamburger span {
  position: absolute;
  left: 0;
  width: 100%;
  height: 1px;
  background-color: #373737;
  transition: all 0.3s ease;
}

.hamburger span:nth-child(1) {
  top: 0;
}

.hamburger span:nth-child(2) {
  top: 50%;
}

.hamburger span:nth-child(3) {
  top: 100%;
}

/* ダークモード時 - ハンバーガーを白に */
#header.is-dark .hamburger span {
  background-color: #fff;
}

/* メニューが開いているとき */
.hamburger.active span {
  background-color: #373737 !important;
}

.hamburger.active span:nth-child(1) {
  top: 50%;
  transform: rotate(30deg);
}

.hamburger.active span:nth-child(2) {
  opacity: 0;
}

.hamburger.active span:nth-child(3) {
  top: 50%;
  transform: rotate(-30deg);
}

/* header_nav ナビゲーションメニュー */
#header .header_nav {
  position: fixed;
  top: 0;
  right: 0;
  height: 100dvh;
  overflow-y: auto;
  overflow-x: hidden;
  overscroll-behavior: contain;
  background-color: rgba(255, 255, 255, 0.98);
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: flex-start;
  /* padding: 100px 40px 40px; */
  box-sizing: border-box;
  opacity: 0;
  visibility: hidden;
  transform: translateX(100%);
  transition: opacity 0.3s ease, visibility 0.3s ease, transform 0.3s ease;
  z-index: 101;
  box-shadow: -2px 0 10px rgba(0, 0, 0, 0.1);

  @media (min-width: 1201px) {
    width: 26.04166667vw;
    padding: 7.8125vw 2.8125vw 2vw;
    gap: 1.5625vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    width: 31.25vw;
    padding: 9.375vw 3.375vw 2vw;
    gap: 1.875vw;
  }
}

#header .header_nav.active {
  opacity: 1;
  visibility: visible;
  transform: translateX(0);
}

#header .header_nav a {
  font-size: 14px;
  color: #373737;
  text-decoration: none;
  letter-spacing: 0.1em;
  padding: 12px 0;
  border-bottom: 1px solid transparent;
  transition: border-color 0.3s ease;
  width: 100%;
}

@media (hover: hover) {
  #header .header_nav a:hover {
    border-bottom-color: #373737;
  }
}

/* タブレット・スマホでは全画面メニュー */
@media (max-width: 992px) {
  #header .header_nav {
    width: 100%;
    height: 100dvh;
    padding: 100px 40px 40px;
    transform: translateX(0);
    opacity: 0;
    visibility: hidden;
    box-shadow: none;
    /* justify-content: space-around; */
    /* align-items: center; */
  }

  #header .header_nav.active {
    opacity: 1;
    visibility: visible;
  }

  #header .header_nav a {
    width: auto;
    text-align: center;
  }
}

@media (max-width: 992px) and (min-width: 769px) {
  #header .header_nav a {
    font-size: 2.5vw;
    padding: 1.950585176vw 0;
  }

  #header .header_nav {
    padding: 13.00390117vw 10.40312094vw 5.201560468vw;
  }
}

@media (max-width: 768px) {
  #header .header_nav a {
    font-size: 4.5vw;
    padding: 3.75vw 0;
  }

  #header .header_nav {
    padding: 25vw 20vw 10vw;
  }
}

/* レスポンシブ対応 - 992px以下でメニューを調整 */
@media (max-width: 992px) {
  #header .header_link {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100lvh;
    background-color: rgba(255, 255, 255, 0.95);
    flex-direction: column;
    justify-content: center;
    align-items: center;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
    z-index: 101;
  }

  #header .header_link.active {
    opacity: 1;
    visibility: visible;
  }

  #header .header_link a {
    border-bottom: none;
  }
}

/* body固定用クラス（メニュー開閉時）- モバイルのみ */
@media (max-width: 992px) {

  html.menu-open,
  html.menu-open body {
    overflow: hidden;
    height: 100%;
  }

  body.menu-open {
    position: fixed;
    left: 0;
    right: 0;
    /* top は JavaScript で動的に設定 */
  }
}
.nav_link{
  display: block
}
#header .header_nav #link_header_collection{
  aspect-ratio: 196 / 22;

  @media (min-width: 1201px) {
    width: 10.20833333vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    width: 12.25vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    width: 20.80624187vw;
  }

  @media (max-width: 768px) {
    width: 40vw;
  }
}
#header .header_nav #link_header_benefits{
  aspect-ratio: 141 / 22;

  @media (min-width: 1201px) {
    width: 7.34375vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    width: 8.8125vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    width: 14.96775563vw;
  }

  @media (max-width: 768px) {
    width: 28.7755102vw;
  }
}
#header .header_nav #link_header_commitment{
  aspect-ratio: 220 / 22;

  @media (min-width: 1201px) {
    width: 11.45833333vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    width: 13.75vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    width: 23.35394496vw;
  }

  @media (max-width: 768px) {
    width: 44.89795918vw;
  }
}
#header .header_nav #link_header_heritage{
  aspect-ratio: 150 / 22;

  @media (min-width: 1201px) {
    width: 7.8125vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    width: 9.375vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    width: 15.92314429vw;
  }

  @media (max-width: 768px) {
    width: 30.6122449vw;
  }
}
#header .header_nav #link_header_research{
  aspect-ratio: 157 / 22;

  @media (min-width: 1201px) {
    width: 8.177083333vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    width: 9.8125vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    width: 16.66622436vw;
  }

  @media (max-width: 768px) {
    width: 32.04081633vw;
  }
}
#header .header_nav #link_header_reviews{
  aspect-ratio: 134 / 22;

  @media (min-width: 1201px) {
    width: 6.979166667vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    width: 8.375vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    width: 14.22467557vw;
  }

  @media (max-width: 768px) {
    width: 27.34693878vw;
  }
}
#header .header_nav #link_header_faq{
  aspect-ratio: 60 / 22;

  @media (min-width: 1201px) {
    width: 3.125vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    width: 3.75vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    width: 6.369257716vw;
  }

  @media (max-width: 768px) {
    width: 12.24489796vw;
  }
}
#header .header_nav #link_header_comfort{
  aspect-ratio: 153 / 22;

  @media (min-width: 1201px) {
    width: 7.96875vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    width: 9.5625vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    width: 16.24160718vw;
  }

  @media (max-width: 768px) {
    width: 31.2244898vw;
  }
}
#header .header_nav #link_header_story{
  aspect-ratio: 178 / 22;

  @media (min-width: 1201px) {
    width: 9.270833333vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    width: 11.125vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    width: 18.89546456vw;
  }

  @media (max-width: 768px) {
    width: 36.32653061vw;
  }
}
#header .header_nav #link_header_contact{
  aspect-ratio: 147 / 22;

  @media (min-width: 1201px) {
    width: 7.65625vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    width: 9.1875vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    width: 15.6046814vw;
  }

  @media (max-width: 768px) {
    width: 30.0vw;
  }
}

/* KV (キービジュアル) *************************************************/
#kv {
  position: relative;
  width: 100%;
  height: 100svh;
  overflow-x: hidden;
}

/* Swiperのスタイリング */
.kv-swiper {
  width: 100%;
  height: 100%;
  z-index: 0;
}

.kv-swiper .swiper-slide {
  width: 100%;
  height: 100%;
}

.kv-swiper .swiper-slide picture {
  width: 100%;
  height: 100%;
  display: block;
}

.kv_logo {
  position: absolute;
  aspect-ratio: 682 / 245;

  @media (min-width: 1201px) {
    width: 17.76041667vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    width: 21.3125vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    width: 26.00780234vw;
    bottom: 50%;
    transform: translate(-50%, -1.88556567vw);
  }

  @media (max-width: 768px) {
    width: 50vw;
    bottom: 50%;
    transform: translate(-50%, -3.625vw);
  }
}

.kvslide01 .kv_logo {
  left: 50%;

  @media (min-width: 1201px) {
    top: 8.854166667vw;
    transform: translateX(-50%);
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    top: 10.625vw;
    transform: translateX(-50%);
  }
}

.kvslide02 .kv_logo {
  left: 50%;

  @media (min-width: 993px) {
    top: 50%;
    transform: translate(-50%, -50%);
  }
}

.kvslide03 .kv_logo {
  left: 50%;

  @media (min-width: 1201px) {
    top: 50%;
    left: 50%;
    transform: translate(10.78125vw, -17.70833333vw);
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    top: 50%;
    left: 50%;
    transform: translate(12.9375vw, -21.25vw);
  }
}

.kv_lead {
  font-family: "Noto Serif JP", serif;
  font-optical-sizing: auto;
  font-weight: 600;
  font-style: normal;
  position: absolute;
  color: #fff;
  text-align: center;

  @media (min-width: 1201px) {
    font-size: 2.34375vw;
    letter-spacing: 0.4em;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    font-size: 2.3vw;
    letter-spacing: 0.4em;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    font-size: 2.340702211vw;
    letter-spacing: 0.3em;
    top: 50%;
    transform: translate(-50%, 4.746423927vw);
    width: 100%;
    text-shadow: 1px 1px 13px rgba(0, 0, 0, 0.9);
  }

  @media (max-width: 768px) {
    font-size: 4.5vw;
    letter-spacing: 0.3em;
    top: 50%;
    transform: translate(-50%, 9.125vw);
    width: 100%;
    text-shadow: 1px 1px 13px rgba(0, 0, 0, 0.9);
  }
}

.kvslide01 .kv_lead {
  left: 50%;
  width: 100%;

  @media (min-width: 1201px) {
    bottom: 4.0625vw;
    transform: translateX(-50%);
    mix-blend-mode: difference;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    bottom: 4.875vw;
    transform: translateX(-50%);
    mix-blend-mode: difference;
  }
}

.kvslide02 .kv_lead {
  left: 50%;
  width: 100%;

  @media (min-width: 1201px) {
    bottom: 50%;
    transform: translate(-50%, 12.70833333vw);
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    bottom: 50%;
    transform: translate(-50%, 15.25vw);
  }
}

.kvslide03 .kv_lead {
  left: 50%;

  @media (min-width: 1201px) {
    top: 50%;
    transform: translate(-2.1875vw, -7.916666667vw);
    color: inherit;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    top: 50%;
    transform: translate(-2.625vw, -9.5vw);
    color: inherit;
  }
}

.kv-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}

/* サイトタイトル（SEO用 - 視覚的には非表示） */
.kv-title {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.collection_btn {
  position: absolute;

  @media (min-width: 993px) {
    bottom: 2.395833333vw;
    right: 2.916666667vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    bottom: 5.721716515vw;
    left: 50%;
    transform: translateX(-50%);
  }

  @media (max-width: 768px) {
    bottom: 11.25vw;
    left: 50%;
    transform: translateX(-50%);
  }
}

.collection_btn p {
  line-height: 1;
  color: #fff;
  mix-blend-mode: difference;
  white-space: nowrap;

  @media (min-width: 1201px) {
    font-size: 1.041666667vw;
    margin-bottom: 0.9375vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    font-size: 1.25vw;
    margin-bottom: 0.9375vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    font-size: 2.080624187vw;
    margin-bottom: 1.820546164vw;
  }

  @media (max-width: 768px) {
    font-size: 4vw;
    margin-bottom: 3.5vw;
  }
}

.collection_btn a {
  display: flex;
  justify-content: center;
  align-items: center;
  letter-spacing: 0.2em;
  color: #373737;
  background-color: #fff;
  mix-blend-mode: normal;
  text-decoration: none;

  @media (min-width: 1201px) {
    font-size: 0.9375vw;
    width: 100%;
    height: 2.708333333vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    font-size: 1.125vw;
    width: 100%;
    height: 2.708333333vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    font-size: 1.820546164vw;
    width: 28.60858257vw;
    height: 5.461638492vw;
  }

  @media (max-width: 768px) {
    font-size: 3.5vw;
    width: 55vw;
    height: 10.5vw;
  }
}

@media (hover: hover) {
  .collection_btn a:hover {
    background-color: #f1f4f5;
  }
}

.scroll-down {
  mix-blend-mode: difference;
  filter: invert(1);
  position: absolute;

  @media (min-width: 1201px) {
    top: -7.552083333vw;
    left: 3.90625vw;
    width: 0.7291666667vw;
    height: 10.3125vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    top: -7.552083333vw;
    left: 4.6875vw;
    width: 0.875vw;
    height: 12.375vw;
  }

  @media (max-width: 992px) {
    display: none;
  }
}

.scroll-down img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  display: block;
}

.scroll-down {
  opacity: 1;
  transition: opacity 0.3s ease;
}

.scroll-down.is-hidden {
  opacity: 0;
}

/* concept *************************************/
#concept {
  position: relative;

  @media (min-width: 993px) {
    padding: 6.510416667vw 0 0 11.45833333vw;
    min-height: 39.11458333vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    padding: 10.92327698vw 0 0 3.901170351vw;
    height: auto;
  }

  @media (max-width: 768px) {
    padding: 21vw 0 0 7.5vw;
    height: auto;
  }
}

.concept_title {
  font-weight: bold;
  line-height: 1.7;
  letter-spacing: 0.4em;

  @media (min-width: 1201px) {
    font-size: 1.822916667vw;
    line-height: 1.7;
    letter-spacing: 0.4em;
    margin-bottom: 2.604166667vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    font-size: 2.1875vw;
    line-height: 1.7;
    letter-spacing: 0.4em;
    margin-bottom: 2.604166667vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    font-size: 3.381014304vw;
    line-height: 2;
    letter-spacing: 0.3em;
    margin-bottom: 5.981794538vw;
  }

  @media (max-width: 768px) {
    font-size: 6.5vw;
    line-height: 2;
    letter-spacing: 0.1em;
    margin-bottom: 11.5vw;
  }
}

.concept_text {
  line-height: 2;
  font-weight: bold;

  @media (min-width: 1201px) {
    font-size: 1.09375vw;
    letter-spacing: 0.15em;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    font-size: 1.3125vw;
    letter-spacing: 0.15em;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    font-size: 1.820546164vw;
  }

  @media (max-width: 768px) {
    font-size: 3.5vw;
  }
}

.concept_text:not(:last-child) {
  @media (min-width: 993px) {
    margin-bottom: 3.125vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    margin-bottom: 5.461638492vw;
  }

  @media (max-width: 768px) {
    margin-bottom: 10.5vw;
  }
}

.concept_img01,
.concept_img02 {
  position: absolute;
  overflow: hidden;
  opacity: 0;
  transform: translateY(80px);
  transition: opacity 1.2s ease-out, transform 1.2s ease-out;
}

.concept_img01.is-visible {
  opacity: 1;
  transform: translateY(0);
  transition-delay: 0.2s;
}

.concept_img02.is-visible {
  opacity: 1;
  transform: translateY(0);
  transition-delay: 0.5s;
}

.concept_img01 {
  top: 0;
  aspect-ratio: 808 / 1008;

  @media (min-width: 1201px) {
    right: 5.833333333vw;
    width: 21.04166667vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    right: 1vw;
    width: 20.16666667vw;
  }

  @media (max-width: 992px) {
    display: none;
  }
}

.concept_img02 {
  bottom: 0;
  aspect-ratio: 738 / 922;

  @media (min-width: 1201px) {
    right: 26.875vw;
    width: 19.21875vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    right: 21.16666667vw;
    width: 18.41666667vw;
  }

  @media (max-width: 992px) {
    display: none;
  }
}

.concept_img01 img,
.concept_img02 img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}

/* collection ************************************************************/

#collection {
  @media (min-width: 993px) {
    padding-top: 9.270833333vw;
    padding-bottom: 11.19791667vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    padding-top: 13.52405722vw;
    padding-bottom: 13.39401821vw;
  }

  @media (max-width: 768px) {
    padding-top: 26vw;
    padding-bottom: 25.75vw;
  }
}

.collection_main {
  position: relative;

  @media (min-width: 993px) {
    margin-left: 11.77083333vw;
    padding-left: 38.22916667vw;
    min-height: 40.10416667vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    margin-left: 4.291287386vw;
    margin-right: 4.291287386vw;
  }

  @media (max-width: 768px) {
    margin-left: 8.25vw;
    margin-right: 8.25vw;
  }
}

.collection_main_title {
  aspect-ratio: 582 / 44;

  @media (min-width: 1201px) {
    width: 30.3125vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    width: 36.375vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    width: 39.01170351vw;
  }

  @media (max-width: 768px) {
    width: 75vw;
  }
}

.collection_main_title img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  display: block;
}

.collection_main_tag_list {
  display: flex;
  list-style: none;

  @media (max-width: 992px) {
    flex-wrap: wrap;
  }

  @media (min-width: 1201px) {
    gap: 0 0.46875vw;
    margin-top: 1.875vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    gap: 0 0.5625vw;
    margin-top: 2.25vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    gap: 0 1.300390117vw;
    margin-top: 3.511053316vw;
  }

  @media (max-width: 768px) {
    gap: 2.5vw 0;
    margin-top: 6.75vw;
  }
}

.collection_main_tag {
  background-color: #e8e9e6;
  display: flex;
  justify-self: center;
  align-items: center;

  @media (min-width: 1201px) {
    font-size: 0.8854166667vw;
    padding: 0 0.625vw;
    height: 1.71875vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    font-size: 1.0625vw;
    padding: 0 0.75vw;
    height: 2.0625vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    font-size: 1.430429129vw;
    padding: 0 1.56046814vw;
    height: 2.730819246vw;
  }

  @media (max-width: 768px) {
    font-size: 2.75vw;
    padding: 0 2.3vw;
    height: 5.25vw;
  }
}

.collection_main_slider {
  position: absolute;
  width: 33.85416667vw;
  left: 0;
  top: 0;

  @media (max-width: 992px) {
    position: relative;
    width: 100%;
    max-width: 600px;
    margin: 30px auto 48px;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    margin: 3.901170351vw auto 6.241872562vw;
  }

  @media (max-width: 768px) {
    margin: 7.5vw auto 12vw;
  }
}

.collection_slide_image {
  width: 100%;
  aspect-ratio: 1 / 1;
}

.collection_slide_image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}

.collection_slide_info {
  text-align: center;

  @media (min-width: 1201px) {
    margin-top: 3.4375vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    margin-top: 4.125vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    margin-top: 3.250975293vw;
  }

  @media (max-width: 768px) {
    margin-top: 6.25vw;
  }
}

#collection .collection_main_slider .swiper-button-next,
#collection .collection_main_slider .swiper-button-prev {
  color: #373737;
  top: auto;
  bottom: 0;

  @media (min-width: 1201px) {
    width: 0.9375vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    width: 1.125vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    width: 1.56046814vw;
  }

  @media (max-width: 768px) {
    width: 3vw;
  }
}

#collection .collection_main_slider .swiper-button-next::after,
#collection .collection_main_slider .swiper-button-prev::after {
  @media (min-width: 1201px) {
    font-size: 1.40625vw !important;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    font-size: 1.6875vw !important;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    font-size: 1.820546164vw !important;
  }

  @media (max-width: 768px) {
    font-size: 3.5vw !important;
  }
}

.collection_color_name {
  @media (min-width: 1201px) {
    height: 2.239583333vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    height: 2.6875vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    height: 3.120936281vw;
  }

  @media (max-width: 768px) {
    height: 6vw;
  }
}

.collection_color_name img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  display: block;
}

.collection_main_text {
  letter-spacing: 0.15em;
  line-height: 1.9;

  @media (min-width: 1201px) {
    font-size: 1.09375vw;
    margin-top: 3.333333333vw;
    margin-bottom: 3.385416667vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    font-size: 1.3125vw;
    margin-top: 4vw;
    margin-bottom: 4.0625vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    font-size: 1.820546164vw;
    margin-top: 6.11183355vw;
    margin-bottom: 11.75vw;
    letter-spacing: 0em;
    line-height: 1.7;
  }

  @media (max-width: 768px) {
    font-size: 3.5vw;
    margin-top: 6.631989597vw;
    margin-bottom: 12.75vw;
    letter-spacing: 0em;
    line-height: 1.7;
  }
}

.collection_link_btn {
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: center;
  color: #373737;
  line-height: 1.6;
  letter-spacing: 0.05em;
  font-weight: bold;
  border: 1px solid #373737;
  text-decoration: none;
  transition: all 0.3s ease;

  @media (min-width: 1201px) {
    font-size: 1.09375vw;
    padding-left: 2.291666667vw;
    padding-right: 1.041666667vw;
    width: 23.4375vw;
    height: 4.6875vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    font-size: 1.3125vw;
    padding-left: 2.75vw;
    padding-right: 1.25vw;
    width: 28.125vw;
    height: 5.625vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    font-size: 1.820546164vw;
    padding-left: 3.901170351vw;
    padding-right: 1.950585176vw;
    width: 40.31209363vw;
    height: 7.802340702vw;
  }

  @media (max-width: 768px) {
    font-size: 3.5vw;
    padding-left: 7.5vw;
    padding-right: 3.75vw;
    width: 77.5vw;
    height: 15vw;
  }
}

.collection_link_arrow {
  display: block;
  flex-shrink: 0;
  background-image: url(../images/research/evidence_arrow.webp);
  background-position: center;
  background-size: contain;
  background-repeat: no-repeat;
  transition: all 0.3s ease;

  @media (min-width: 1201px) {
    width: 1.71875vw;
    height: 1.71875vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    width: 2.0625vw;
    height: 2.0625vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    width: 2.990897269vw;
    height: 2.990897269vw;
  }

  @media (max-width: 768px) {
    width: 22px;
    height: 22px;
  }
}

@media (hover: hover) {
  .collection_link_btn:hover {
    background-color: #373737;
    color: #fff;
  }

  .collection_link_btn:hover .collection_link_arrow {
    filter: invert(1);
  }
}

.collection_link_wrapper .collection_link_btn {

  @media (min-width: 1201px) {
    font-size: 0.9375vw;
    padding-left: 2.291666667vw;
    padding-right: 1.041666667vw;
    width: 20.20833333vw;
    height: 4.6875vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    font-size: 1.125vw;
    padding-left: 2.75vw;
    padding-right: 1.25vw;
    width: 24.25vw;
    height: 4.875vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    font-size: 1.820546164vw;
    padding-left: 3.901170351vw;
    padding-right: 1.950585176vw;
    width: 40.31209363vw;
    height: 7.802340702vw;
  }

  @media (max-width: 768px) {
    font-size: 3.5vw;
    padding-left: 7.5vw;
    padding-right: 3.75vw;
    width: 77.5vw;
    height: 15vw;
  }
}

.collection_link_wrapper .collection_link_arrow {
  display: block;
  flex-shrink: 0;
  background-image: url(../images/research/evidence_arrow.webp);
  background-position: center;
  background-size: contain;
  background-repeat: no-repeat;
  transition: all 0.3s ease;

  @media (min-width: 1201px) {
    width: 1.458333333vw;
    height: 1.458333333vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    width: 1.75vw;
    height: 1.75vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    width: 2.990897269vw;
    height: 2.990897269vw;
  }

  @media (max-width: 768px) {
    width: 22px;
    height: 22px;
  }
}

@media (hover: hover) {
  .collection_link_btn:hover {
    background-color: #373737;
    color: #fff;
  }

  .collection_link_btn:hover .collection_link_arrow {
    filter: invert(1);
  }
}

.collection_title {
  display: flex;
  justify-content: flex-start;
  align-items: flex-end;

  @media (min-width: 1201px) {
    gap: 0 2.08vw;
    margin-top: 11.09375vw;
    margin-bottom: 6.25vw;
    margin-left: 11.77083333vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    gap: 0 2.08vw;
    margin-top: 13.3125vw;
    margin-left: 11.77083333vw;
    margin-bottom: 7.5vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    gap: 2.080624187vw 0;
    flex-direction: column-reverse;
    align-items: flex-start;
    margin-top: 13.91417425vw;
    margin-bottom: 4.681404421vw;
    margin-left: 4.291287386vw;
  }

  @media (max-width: 768px) {
    gap: 4vw 0;
    flex-direction: column-reverse;
    align-items: flex-start;
    margin-top: 26.75vw;
    margin-bottom: 9vw;
    margin-left: 8.25vw;
  }
}

.collection_img {
  aspect-ratio: 540 / 57;

  @media (min-width: 1201px) {
    width: 28.125vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    width: 33.75vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    width: 30.68920676vw;
  }

  @media (max-width: 768px) {
    width: 59vw;
  }
}

.collection_title span {
  line-height: 1;
  letter-spacing: 0.25em;
  font-weight: bold;

  @media (min-width: 1201px) {
    font-size: 1.354166667vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    font-size: 1.625vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    font-size: 1.56046814vw;
  }

  @media (max-width: 768px) {
    font-size: 3vw;
  }
}

.collection_list {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  list-style: none;

  @media (min-width: 1201px) {
    gap: 2.96875vw 0;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    gap: 3.5625vw 0;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    gap: 3.250975293vw 0;
  }

  @media (max-width: 768px) {
    gap: 6.25vw 0;
  }
}

.collection_list>* {
  width: calc((100% - 18px) / 4);

  /* 4列: (100% - gap3つ分) / 4 */
  @media (min-width: 1201px) {
    width: calc((100% - (0.3124vw * 3)) / 4);
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    width: calc((100% - (0.375vw * 2)) / 3);
  }

  @media (max-width: 992px) and (min-width: 769px) {
    width: calc((100% - (0.6501950585vw * 2)) / 3);
  }

  @media (max-width: 768px) {
    width: calc((100% - (1.25vw * 1)) / 2);
  }
}

.collection_item {
  text-align: center;
}

.collection_item a {
  display: block;
  color: inherit;
  text-decoration: none;
}

.item_img {
  width: 100%;
  aspect-ratio: 475 / 705;
  overflow: hidden;

  @media (min-width: 1201px) {
    margin-bottom: 1.145833333vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    margin-bottom: 1.375vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    margin-bottom: 1.690507152vw;
  }

  @media (max-width: 768px) {
    margin-bottom: 3.25vw;
  }
}

.item_img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  transition: transform 0.3s ease;
}

@media (hover: hover) {
  .collection_item:hover .item_img img {
    transform: scale(1.05);
  }
}

.item_name {
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;

  @media (min-width: 1201px) {
    height: 2.604166667vw;
    margin-bottom: 1.145833333vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    height: 3.125vw;
    margin-bottom: 1.375vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    height: 2.990897269vw;
    margin-bottom: 1.040312094vw;
  }

  @media (max-width: 768px) {
    height: 5.75vw;
    margin-bottom: 2vw;
  }
}

/* .item_name img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  display: block;
} */
.collection_item_01 .item_name img {
  display: block;

  @media (min-width: 993px) {
    aspect-ratio: 383 / 21;
  }

  @media (max-width: 992px) {
    aspect-ratio: 114 / 22;
  }

  @media (min-width: 1201px) {
    width: 19.94791667vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    width: 23.9375vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    width: 14.82444733vw;
  }

  @media (max-width: 768px) {
    width: 28.5vw;
  }
}

.collection_item_02 .item_name img {
  display: block;

  @media (min-width: 993px) {
    aspect-ratio: 315 / 23;
  }

  @media (max-width: 992px) {
    aspect-ratio: 114 / 22;
  }

  @media (min-width: 1201px) {
    width: 16.40625vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    width: 19.6875vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    width: 14.82444733vw;
  }

  @media (max-width: 768px) {
    width: 28.5vw;
  }
}

.collection_item_03 .item_name img {
  display: block;

  @media (min-width: 993px) {
    aspect-ratio: 382 / 21;
  }

  @media (max-width: 992px) {
    aspect-ratio: 114 / 22;
  }

  @media (min-width: 1201px) {
    width: 19.89583333vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    width: 23.875vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    width: 14.82444733vw;
  }

  @media (max-width: 768px) {
    width: 28.5vw;
  }
}

.collection_item_04 .item_name img {
  display: block;

  @media (min-width: 993px) {
    aspect-ratio: 244 / 50;
  }

  @media (max-width: 992px) {
    aspect-ratio: 114 / 22;
  }

  @media (min-width: 1201px) {
    width: 12.70833333vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    width: 15.25vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    width: 14.82444733vw;
  }

  @media (max-width: 768px) {
    width: 28.5vw;
  }
}

.collection_item_05 .item_name img {
  display: block;

  @media (min-width: 993px) {
    aspect-ratio: 307 / 21;
  }

  @media (max-width: 992px) {
    aspect-ratio: 79 / 22;
  }

  @media (min-width: 1201px) {
    width: 15.98958333vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    width: 19.1875vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    width: 10.27308192vw;
  }

  @media (max-width: 768px) {
    width: 19.75vw;
  }
}

.collection_item_06 .item_name img {
  display: block;

  @media (min-width: 993px) {
    aspect-ratio: 239 / 23;
  }

  @media (max-width: 992px) {
    aspect-ratio: 79 / 23;
  }

  @media (min-width: 1201px) {
    width: 12.44791667vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    width: 14.9375vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    width: 10.27308192vw;
  }

  @media (max-width: 768px) {
    width: 19.75vw;
  }
}

.collection_item_07 .item_name img {
  display: block;

  @media (min-width: 993px) {
    aspect-ratio: 375 / 21;
  }

  @media (max-width: 992px) {
    aspect-ratio: 111 / 22;
  }

  @media (min-width: 1201px) {
    width: 19.53125vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    width: 23.4375vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    width: 14.43433038vw;
  }

  @media (max-width: 768px) {
    width: 27.75vw;
  }
}

.collection_item_08 .item_name img {
  display: block;

  @media (min-width: 993px) {
    aspect-ratio: 416 / 23;
  }

  @media (max-width: 992px) {
    aspect-ratio: 111 / 23;
  }

  @media (min-width: 1201px) {
    width: 21.66666667vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    width: 26vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    width: 14.43433038vw;
  }

  @media (max-width: 768px) {
    width: 27.75vw;
  }
}

.item_text {
  line-height: 1;
  font-weight: bold;

  @media (min-width: 1201px) {
    font-size: 0.9375vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    font-size: 1.125vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    font-size: 1.040312094vw;
  }

  @media (max-width: 768px) {
    font-size: 2vw;
  }
}

.collection_cta_area {
  @media (min-width: 1201px) {
    padding-top: 8.958333333vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    padding-top: 10.75vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    padding-top: 8.972691808vw;
  }

  @media (max-width: 768px) {
    padding-top: 17.25vw;
  }
}

.collection_cta_lead {
  line-height: 1.7;
  letter-spacing: 0.4em;
  font-weight: bold;
  text-align: center;

  @media (min-width: 1201px) {
    font-size: 1.822916667vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    font-size: 2.1875vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    font-size: 2.080624187vw;
    letter-spacing: 0.15em;
  }

  @media (max-width: 768px) {
    font-size: 4vw;
    letter-spacing: 0.15em;
  }
}

.collection_link_wrapper {
  display: flex;
  justify-content: center;

  @media (min-width: 1201px) {
    gap: 1.302083333vw;
    margin-top: 3.854166667vw;
  }

  @media (max-width: 1200px) and (min-width: 769px) {
    display: grid;
    grid-template-columns: repeat(2, auto);
    gap: 2vw;
    margin-top: 4.625vw;
  }

  @media (max-width: 768px) {
    flex-direction: column;
    align-items: center;
    gap: 4vw;
    margin-top: 9.25vw;
  }
}

.collection_ending {
  aspect-ratio: 1750 / 800;
  margin: 0 auto;
  overflow: hidden;

  @media (max-width: 992px) {
    width: calc(100% - 44px);
    aspect-ratio: 18 / 11;
    margin-top: 70px;
  }

  @media (min-width: 1201px) {
    width: 91.14583333vw;
    margin-top: 8.4375vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    width: 91.1458vw;
    margin-top: 10.125vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    width: 90vw;
    margin-top: 9.492847854vw;
  }

  @media (max-width: 768px) {
    width: 90vw;
    margin-top: 18.25vw;
  }
}

.collection_ending img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  opacity: 0;
  filter: blur(15px);
  transition: opacity 1.2s ease-out, filter 1.2s ease-out;
}

.collection_ending.is-visible img {
  opacity: 1;
  filter: blur(0);
}

.collection_ending.is-floating img {
  animation: collectionEndingFloat 6s ease-in-out infinite;
}

@keyframes collectionEndingFloat {

  0%,
  100% {
    transform: translateY(0) rotate(0deg);
  }

  50% {
    transform: translateY(-12px) rotate(0.5deg);
  }
}

.story_movie {
  width: 100%;
  height: 100lvh;
  position: relative;
  z-index: 11;
}

.background_movie {
  width: 100%;
  height: 100lvh;
  overflow: hidden;
  position: sticky;
  top: 0;
}

.background_movie video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  transform-origin: center center;
  will-change: transform;
}

.story_movie_inner {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  text-align: center;
  color: #fff;
  width: 90%;
}

.story_movie_inner h3 {
  line-height: 1.7;
  letter-spacing: 0.25em;
  font-weight: bold;

  @media (min-width: 1201px) {
    font-size: 1.875vw;
    margin-bottom: 2.083333333vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    font-size: 2.25vw;
    margin-bottom: 2.5vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    font-size: 2.470741222vw;
    margin-bottom: 2.600780234vw;
  }

  @media (max-width: 768px) {
    font-size: 4.75vw;
    margin-bottom: 5vw;
  }
}

.story_movie_inner p {
  line-height: 1.9;
  letter-spacing: 0.25em;
  font-weight: bold;

  @media (min-width: 1201px) {
    font-size: 1.145833333vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    font-size: 1.375vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    font-size: 1.820546164vw;
  }

  @media (max-width: 768px) {
    font-size: 3.5vw;
  }
}

.story_movie_link {
  width: 28.125vw;
  aspect-ratio: 54 / 11;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  border: 1px solid #fff;
  border-radius: 50vw;
  margin-top: 5.2083vw;

  @media (max-width: 1200px) {
    width: 338px;
    margin-top: 63px;
  }
}

@media (hover: hover) {
  .story_movie_link:hover {
    background-color: rgba(255, 255, 255, 0.3);
  }
}

.story_movie_link img {
  width: 69%;
  aspect-ratio: 745 / 68;
  display: block;
}

.story_link_section {

  @media (min-width: 1201px) {
    margin-top: 7.447916667vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    margin-top: 8.9375vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    margin-top: 9.102730819vw;
  }

  @media (max-width: 768px) {
    margin-top: 17.5vw;
  }
}

.story_link_section_btn {
  display: block;
  margin: 0 auto;
  aspect-ratio: 300 / 95;

  @media (min-width: 1201px) {
    width: 36.66666667vw;
    aspect-ratio: 704 / 224;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    width: 44vw;
    aspect-ratio: 704 / 224;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    width: 39.01170351vw;
    aspect-ratio: 300 / 95;
  }

  @media (max-width: 768px) {
    width: 75vw;
    aspect-ratio: 300 / 95;
  }
}

.story_link_section_btn img {
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

@media (hover: hover) and (pointer: fine) {
  .story_link_section_btn:hover img {
    transform: scale(1.03) translateY(-5px);
    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2);
  }
}

/* benefits *************************************/

#benefits {
  padding: 8.59375vw 11.35416vw 4.427083vw;

  @media (max-width: 1200px) {
    padding: 78px 25px 45px;
  }
}

.benefits_title {
  display: flex;
  justify-content: flex-start;
  align-items: flex-end;

  @media (min-width: 1201px) {
    gap: 0 2.08vw;
    margin-bottom: 3.541666667vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    gap: 0 2.08vw;
    margin-bottom: 4.25vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    gap: 2.080624187vw 0;
    flex-direction: column-reverse;
    align-items: flex-start;
    margin-bottom: 4.941482445vw;
  }

  @media (max-width: 768px) {
    gap: 4vw 0;
    flex-direction: column-reverse;
    align-items: flex-start;
    margin-bottom: 9.5vw;
  }
}

.benefits_img {
  aspect-ratio: 390 / 57;

  @media (min-width: 1201px) {
    width: 20.3125vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    width: 24.375vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    width: 22.10663199vw;
  }

  @media (max-width: 768px) {
    width: 42.5vw;
  }
}

.benefits_title span {
  line-height: 1;
  letter-spacing: 0.25em;
  font-weight: bold;

  @media (min-width: 1201px) {
    font-size: 1.354166667vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    font-size: 1.625vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    font-size: 1.56046814vw;
    line-height: 1;
  }

  @media (max-width: 768px) {
    font-size: 3vw;
    line-height: 1;
  }
}

.benefits_text {
  line-height: 1.9;
  letter-spacing: 0.25em;
  font-weight: bold;

  @media (max-width: 992px) {
    line-height: 1.785;
    letter-spacing: 0.25em;
  }

  @media (min-width: 1201px) {
    font-size: 1.14583vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    font-size: 1.375vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    font-size: 1.820546164vw;
  }

  @media (max-width: 768px) {
    font-size: 3.5vw;
  }
}

.benefits-swiper {
  width: 100%;

  @media (max-width: 992px) {
    flex-direction: column-reverse;
    align-items: flex-start;
  }

  @media (min-width: 1201px) {
    margin-top: 3.9583vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    margin-top: 4.75vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    margin-top: 3.641092328vw;
  }

  @media (max-width: 768px) {
    margin-top: 7vw;
  }
}

.benefits-swiper .swiper-slide {
  height: auto;
}

.benefits-swiper .swiper-pagination {
  margin-top: 2.604vw;
  position: relative;
  display: flex;
  justify-content: center;

  @media (max-width: 1200px) and (min-width: 993px) {
    margin-top: 2.25vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    margin-top: 4.681404421vw;
  }

  @media (max-width: 768px) {
    margin-top: 9vw;
  }
}

.benefits-swiper .swiper-pagination-bullet {
  height: 1px;
  background: #ccc;
  opacity: 1;
  margin-left: 0 !important;
  margin-right: 0 !important;
  flex-grow: 1;
}

.benefits-swiper .swiper-pagination-bullet-active {
  background: #333;
}

.benefits_card {
  background-color: #f9f8f6;
  height: 100%;
  padding: 2.083vw 0 2.34375vw;
  text-align: center;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: center;

  @media (min-width: 1201px) {
    padding: 2.083vw 0 2.34375vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    padding: 2.5vw 0 2.8125vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    padding: 4.55136541vw 0 4.421326398vw;
  }

  @media (max-width: 768px) {
    padding: 8.75vw 0 8.5vw;
  }
}

.benefits_card_title {
  line-height: 1.16;
  letter-spacing: 0.1em;
  font-weight: bold;
  color: #998675;

  @media (max-width: 992px) {
    line-height: 1.1;
    letter-spacing: 0.1em;
  }

  @media (min-width: 1201px) {
    font-size: 1.6145833333vw;
    margin-bottom: 1.770833333vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    font-size: 1.9375vw;
    margin-bottom: 2.125vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    font-size: 2.600780234vw;
    margin-bottom: 5vw;
  }

  @media (max-width: 768px) {
    font-size: 5vw;
    margin-bottom: 5vw;
  }
}

.benefits_icon {
  aspect-ratio: 1 / 1;
  margin-bottom: 2.1875vw;
  margin-right: auto;
  margin-left: auto;

  @media (min-width: 1201px) {
    width: 10.41666667vw;
    margin-bottom: 2.1875vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    width: 12.5vw;
    margin-bottom: 2.625vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    width: 15.6046814vw;
    margin-bottom: 2.600780234vw;
  }

  @media (max-width: 768px) {
    width: 30vw;
    margin-bottom: 5vw;
  }
}

.benefits_icon img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  display: block;
}

.benefits_card_detail_title {
  font-size: 1.510416vw;
  line-height: 1.4;
  letter-spacing: 0.1em;
  font-weight: bold;
  margin-bottom: 1.510416vw;

  @media (max-width: 1200px) {
    font-size: 18px;
    margin-bottom: 18px;
  }

  @media (max-width: 992px) {
    font-size: 16px;
    line-height: 2.8;
    letter-spacing: 0.15em;
    margin-bottom: 20px;
  }
}

.benefits_card_detail {
  line-height: 1.9;
  letter-spacing: 0.15em;
  font-weight: bold;

  @media (max-width: 992px) {
    line-height: 1.8;
    letter-spacing: 0.1em;
    font-weight: 500;
  }

  @media (min-width: 1201px) {
    font-size: 0.989583vw;
    margin-bottom: 2.395833vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    font-size: 1.1875vw;
    margin-bottom: 2.875vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    font-size: 1.820546164vw;
    margin-bottom: 3.381014304vw;
  }

  @media (max-width: 768px) {
    font-size: 3.5vw;
    margin-bottom: 6.5vw;
  }
}

.benefits_tag_wrap {
  display: flex;
  gap: 0 0.46875vw;
  justify-content: center;
  align-items: center;

  @media (min-width: 1201px) {
    gap: 0 0.46875vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    gap: 0 0.5625vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    gap: 0 0.7802340702vw;
  }

  @media (max-width: 768px) {
    gap: 0 1.5vw;
  }
}

.benefits_tag {
  line-height: 1.9;
  letter-spacing: 0.15em;
  font-weight: 500;
  padding: 0.46875vw 1.197916vw;
  background-color: #e8e9e6;

  @media (max-width: 992px) {
    line-height: 1.81;
    letter-spacing: 0.15em;
  }

  @media (min-width: 1201px) {
    font-size: 0.8854166667vw;
    padding: 0.46875vw 1.197916vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    font-size: 1.0625vw;
    padding: 0.5625vw 1.4375vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    font-size: 1.430429129vw;
    padding: 0px 1.690507152vw;
  }

  @media (max-width: 768px) {
    font-size: 2.75vw;
    padding: 0px 3.25vw;
  }
}

/* commitment *************************************/
#commitment {
  position: relative;
  padding: 4.427083vw 11.35416vw 20.57291667vw;
  overflow: hidden;

  @media (max-width: 1200px) {
    padding: 45px 25px 218px;
  }
}

.commitment_title {
  display: flex;
  justify-content: flex-start;
  align-items: flex-end;

  @media (min-width: 1201px) {
    gap: 0 2.08vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    gap: 0 2.08vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    gap: 2.080624187vw 0;
    flex-direction: column-reverse;
    align-items: flex-start;
  }

  @media (max-width: 768px) {
    gap: 4vw 0;
    flex-direction: column-reverse;
    align-items: flex-start;
  }
}


.commitment_title span {
  line-height: 1;
  letter-spacing: 0.25em;
  font-weight: bold;

  @media (min-width: 1201px) {
    font-size: 1.354166667vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    font-size: 1.625vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    font-size: 1.56046814vw;
    line-height: 1;
  }

  @media (max-width: 768px) {
    font-size: 3vw;
    line-height: 1;
  }
}

.commitment_img {
  aspect-ratio: 603 / 57;

  @media (min-width: 1201px) {
    width: 31.40625vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    width: 37.6875vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    width: 34.59037711vw;
  }

  @media (max-width: 768px) {
    width: 66.5vw;
  }
}

.commitment_text_deco {
  position: absolute;
  bottom: -0.52083vw;
  left: 0;
  width: 100%;
  height: 10.15625vw;
  pointer-events: none;
  overflow: hidden;

  @media (max-width: 1200px) {
    height: 122px;
    bottom: -7px;
  }

  @media (max-width: 992px) {
    height: 92px;
  }
}

.commitment_text_deco img {
  display: block;
  width: auto;
  height: 100%;
  position: absolute;
  bottom: 0;
  white-space: nowrap;
  will-change: transform;
  aspect-ratio: 5892 / 392;
}

.commitment_item_wrap {
  margin-top: 4.0625vw;
  display: flex;
  gap: 0 5.729166667vw;
  justify-content: space-between;
  align-items: stretch;
  /* flex-start から stretch に変更 */
  text-align: center;

  @media (max-width: 1200px) {
    margin-top: 48px;
    gap: 0 68px;
    justify-content: center;
  }

  @media (min-width: 1201px) {
    gap: 0 6.770833333vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    gap: 0 8.125vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    /* gap: 0 10.40312094vw; */
    flex-direction: column;
    align-items: center;
  }

  @media (max-width: 768px) {
    flex-direction: column;
    align-items: center;
  }
}

.commitment_item {
  position: relative;
  flex: 1;
  /* 幅を均等に */
  display: flex;
  flex-direction: column;
  align-items: flex-start;

  @media (max-width: 992px) {
    border-bottom: 1px solid;
    margin-right: auto;
    margin-left: auto;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    width: 65.01950585vw;
    padding: 6.241872562vw 0;
  }

  @media (max-width: 768px) {
    width: 75vw;
    padding: 12vw 0;
  }
}

.commitment_item_line {
  display: block;
  position: absolute;
  bottom: 0;
  height: 100%;
  background-image: url(../images/commitment/line.svg);
  background-position: center;
  background-size: 100% 100%;
  background-repeat: no-repeat;

  @media (min-width: 1201px) {
    width: 4.6875vw;
    left: calc(100% + 3vw);
    transform: translateX(-50%);
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    width: 56px;
    left: calc(100% + 4vw);
    transform: translateX(-50%);
  }

  @media (max-width: 992px) {
    display: none;
  }
}

.commitment_item_number {
  height: 3.4375vw;
  margin-bottom: 2.447916667vw;

  @media (max-width: 1200px) {
    height: 41px;
    margin-bottom: 29px;
  }

  @media (max-width: 992px) {
    height: 44px;
    margin-bottom: 30px;
  }
}

.commitment_item_number img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center left;
  display: block;
}

.commitment_item_title {
  line-height: 1.16;
  letter-spacing: 0.1em;
  font-weight: bold;
  color: #998675;
  /* 2行分の高さ */
  display: grid;
  place-items: center;

  @media (max-width: 1200px) {
    font-size: 19px;
    margin-bottom: 23px;
  }

  @media (max-width: 992px) {
    font-size: 1.814516vw;
    margin-bottom: 20px;
  }

  @media (min-width: 1201px) {
    font-size: 1.614583333vw;
    margin-bottom: 1.875vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    font-size: 1.9375vw;
    margin-bottom: 2.25vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    font-size: 2.600780234vw;
    margin-bottom: 2.600780234vw;
  }

  @media (max-width: 768px) {
    font-size: 5vw;
    margin-bottom: 5vw;
  }
}

.commitment_item_title span {
  display: inline-block;
}

.commitment_item_subtitle {
  font-size: 1.510416667vw;
  line-height: 1.4;
  letter-spacing: 0.1em;
  font-weight: bold;
  margin-bottom: 1.875vw;

  @media (max-width: 1200px) {
    font-size: 18px;
    margin-bottom: 23px;
  }

  @media (max-width: 992px) {
    font-size: 1.209677vw;
    line-height: 1.5;
    letter-spacing: 0.15em;
    margin-bottom: 20px;
  }

  @media (min-width: 1201px) {
    font-size: 1.510416667vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    font-size: 1.8125vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    font-size: 2.080624187vw;
    margin-bottom: 2.600780234vw;
  }

  @media (max-width: 768px) {
    font-size: 4vw;
    margin-bottom: 5vw;
  }
}

.commitment_item_text {
  font-size: 0.989583333vw;
  line-height: 1.9;
  letter-spacing: 0;
  font-weight: bold;
  text-align: left;

  @media (max-width: 992px) {
    line-height: 1.785;
    letter-spacing: 0em;
  }

  @media (max-width: 768px) {
    font-size: 14px;
  }

  @media (min-width: 1201px) {
    font-size: 0.9895833333vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    font-size: 1.1875vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    font-size: 1.820546164vw;
  }

  @media (max-width: 768px) {
    font-size: 3.5vw;
  }
}

.commitment_item_text ul {
  list-style: none;
}

.commitment_item_text ul li {
  padding-left: 0.6em;
  text-indent: -0.6em;
}

.commitment_item_text ul li::before {
  content: "･";
}

.commintment_cta {

  @media (min-width: 1201px) {
    margin-top: 8.645833333vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    margin-top: 10.375vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    margin-top: 10.40312094vw;
  }

  @media (max-width: 768px) {
    margin-top: 20vw;
  }
}

.commintment_cta_btn {
  display: block;
  margin: 0 auto;

  @media (min-width: 1201px) {
    width: 36.66666667vw;
    height: 11.66666667vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    width: 44vw;
    height: 14vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    width: 39.01170351vw;
    height: 12.35370611vw;
  }

  @media (max-width: 768px) {
    width: 75vw;
    height: 23.75vw;
  }
}

.commintment_cta_btn img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  display: block;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

@media (hover: hover) and (pointer: fine) {
  .commintment_cta_btn:hover img {
    transform: scale(1.03) translateY(-5px);
    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2);
  }
}

/* heritage *************************************/

#heritage {
  position: relative;
  padding: 7.5vw 11.35416vw 7.2916vw;
  overflow: hidden;
  background-color: #373737;
  color: #fff;

  @media (max-width: 1200px) {
    padding: 90px 25px 88px;
  }

  /* @media (min-width: 1201px) {
    padding: 7.5vw 11.5625vw 7.291666667vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    padding: 7.9375vw 13.875vw 8.75vw;
  } */

  @media (max-width: 992px) and (min-width: 769px) {
    padding: 9.622886866vw 3.381014304vw 10.92327698vw;
  }

  @media (max-width: 768px) {
    padding: 18.5vw 6.5vw 21vw;
  }
}

.heritage_title {
  display: flex;
  justify-content: flex-start;
  align-items: flex-end;

  @media (min-width: 1201px) {
    gap: 0 2.08vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    gap: 0 2.08vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    gap: 2.080624187vw 0;
    flex-direction: column-reverse;
    align-items: flex-start;
  }

  @media (max-width: 768px) {
    gap: 4vw 0;
    flex-direction: column-reverse;
    align-items: flex-start;
  }
}



.heritage_title span {
  line-height: 1;
  letter-spacing: 0.25em;
  font-weight: bold;

  @media (min-width: 1201px) {
    font-size: 1.354166667vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    font-size: 1.625vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    font-size: 1.56046814vw;
  }

  @media (max-width: 768px) {
    font-size: 3vw;
  }
}


.heritage_img {
  aspect-ratio: 412 / 54;

  @media (min-width: 1201px) {
    width: 21.45833333vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    width: 25.75vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    width: 23.27698309vw;
  }

  @media (max-width: 768px) {
    width: 44.75vw;
  }
}

.heritage_sub_title {
  font-size: 1.510416667vw;
  line-height: 1.8;
  letter-spacing: 0.15em;
  font-weight: bold;
  margin-top: 4.947916667vw;
  margin-bottom: 2.604166667vw;

  @media (max-width: 1200px) {
    font-size: 18px;
    margin-top: 59px;
    margin-bottom: 31px;
  }

  @media (max-width: 992px) {
    font-size: 13px;
    line-height: 1.6;
    margin-top: 50px;
    margin-bottom: 30px;
  }

  @media (min-width: 1201px) {
    font-size: 1.510416667vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    font-size: 1.8125vw;
    margin-bottom: 2.25vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    font-size: 2.730819246vw;
    margin-bottom: 3.901170351vw;
    margin-top: 6.501950585vw;
  }

  @media (max-width: 768px) {
    font-size: 5.25vw;
    margin-bottom: 7.5vw;
    margin-top: 12.5vw;
  }
}

.heritage_text {
  font-size: 0.989583333vw;
  line-height: 2.3;
  letter-spacing: 0.25em;
  font-weight: 500;
  margin-bottom: 6.770833333vw;

  @media (max-width: 1200px) {
    font-size: 12px;
    margin-bottom: 81px;
  }

  @media (max-width: 992px) {
    font-size: 14px;
    line-height: 2.1;
    letter-spacing: 0;
    margin-bottom: 50px;
  }

  @media (min-width: 1201px) {
    font-size: 0.9895833333vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    font-size: 1.1875vw;
    margin-bottom: 8.125vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    font-size: 1.820546164vw;
    margin-bottom: 6.501950585vw;
  }

  @media (max-width: 768px) {
    font-size: 3.5vw;
    margin-bottom: 12.5vw;
  }
}

.heritage_map {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  aspect-ratio: 3841 / 1281;

  @media (min-width: 1201px) {
    margin-left: -11.35416vw;
    margin-right: -11.35416vw;
  }

  @media (max-width: 1200px) {
    margin-left: -25px;
    margin-right: -25px;
  }

  @media (max-width: 992px) {
    aspect-ratio: 2 / 1;
  }
}

.heritage_map img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.heritage_item_wrap {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.822916667vw 0.46875vw;
  margin-top: 6.770833333vw;

  @media (max-width: 1200px) {
    gap: 22px 6px;
    margin-top: 81px;
  }

  @media (max-width: 992px) {
    grid-template-columns: repeat(2, 1fr);
    gap: 2.205141129vw 0.56703629vw;
    margin-top: 81px;
  }

  @media (max-width: 768px) {
    grid-template-columns: 1fr;
    gap: 12px;
    margin-top: 50px;
  }
}

.heritage_item_hidden {
  @media (max-width: 768px) {
    display: none;
  }
}

.heritage_item_wrap.is-open .heritage_item_hidden {
  @media (max-width: 768px) {
    display: block;
  }
}

.heritage_toggle_btn {
  display: none;

  @media (max-width: 768px) {
    display: block;
    width: 100%;
    max-width: 280px;
    margin: 24px auto 0;
    border: none;
    font-size: 17px;
    letter-spacing: 0.1em;
    cursor: pointer;
  }

  &.is-open::after {
    @media (max-width: 768px) {
      content: "-";
      margin-left: 1em;
    }
  }

  &::after {
    @media (max-width: 768px) {
      content: "+";
      margin-left: 1em;
    }
  }

  &.is-open::before {
    @media (max-width: 768px) {
      content: "Close";
    }
  }

  &::before {
    @media (max-width: 768px) {
      content: "View More";
    }
  }
}

.heritage_item {
  text-align: center;
  background-color: #212021;
  padding: 1.5625vw 5px 3.125vw;

  @media (max-width: 1200px) {
    padding: 19px 5px 38px;
  }

  @media (max-width: 992px) {
    padding: 1.890120968vw 5px 3.780241935vw;
  }

  @media (max-width: 768px) {
    padding: 28px 5px 37px;
  }
}

.heritage_item_title {
  font-size: 4.6875vw;
  line-height: 1.2;
  letter-spacing: 0em;
  font-weight: bold;
  font-style: italic;
  color: #998675;
  margin-bottom: 1.927083333vw;

  @media (max-width: 1200px) {
    font-size: 56px;
    margin-bottom: 24px;
  }

  @media (max-width: 992px) {
    font-size: 57px;
    margin-bottom: 10px;
  }
}

.heritage_item_title .countup-number {
  font-size: inherit;
  line-height: inherit;
  letter-spacing: inherit;
  font-weight: inherit;
  font-style: inherit;
  color: inherit;
  font-family: inherit;
}

.heritage_item_title span {
  font-size: 2.604166667vw;
  line-height: 1.2;
  letter-spacing: 0em;

  @media (max-width: 1200px) {
    font-size: 31px;
  }

  @media (max-width: 992px) {
    font-size: 30px;
    line-height: 1.2;
  }
}

.heritage_item_subtitle {
  font-size: 1.614583333vw;
  line-height: 1.16;
  letter-spacing: 0.2em;
  font-weight: bold;
  margin-bottom: 1.666666667vw;

  @media (max-width: 1200px) {
    font-size: 19px;
    margin-bottom: 10px;
  }

  @media (max-width: 992px) {
    line-height: 2.5;
    letter-spacing: 0.15em;
    margin-bottom: 10px;
  }

  @media (min-width: 1201px) {
    font-size: 1.614583333vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    font-size: 1.9375vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    font-size: 2.340702211vw;
  }

  @media (max-width: 768px) {
    font-size: 4.5vw;
  }
}

.heritage_item_text {
  font-size: 0.989583333vw;
  line-height: 1.8;
  letter-spacing: 0.1em;

  @media (max-width: 992px) {
    line-height: 1.8;
    letter-spacing: 0.1em;
  }

  @media (min-width: 1201px) {
    font-size: 0.9895833333vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    font-size: 1.1875vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    font-size: 1.820546164vw;
  }

  @media (max-width: 768px) {
    font-size: 3.5vw;
  }
}

.heritage_message {
  margin-top: 6.354166667vw;
  text-align: center;

  @media (max-width: 1200px) {
    margin-top: 76px;
  }

  @media (max-width: 992px) {
    margin-top: 54px;
  }
}

.heritage_message_text {
  line-height: 1.8;
  letter-spacing: 0.15em;
  font-weight: bold;
  font-style: italic;


  @media (max-width: 992px) {
    line-height: 2;
    letter-spacing: 0.15em;
  }

  @media (min-width: 1201px) {
    font-size: 1.71875vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    font-size: 2.0625vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    font-size: 2.210663199vw;
  }

  @media (max-width: 768px) {
    font-size: 4vw;
    letter-spacing: 0;
  }
}

.heritage_message_president {
  margin-top: 2.708333333vw;
  font-size: 1.145833333vw;
  line-height: 1.7;
  letter-spacing: 0.15em;

  @media (max-width: 992px) {
    line-height: 2;
    letter-spacing: 0.25em;
  }

  @media (min-width: 1201px) {
    font-size: 1.145833333vw;
    margin-top: 2.708333333vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    font-size: 1.375vw;
    margin-top: 3.25vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    font-size: 1.820546164vw;
    margin-top: 3.381014304vw;
  }

  @media (max-width: 768px) {
    font-size: 3.5vw;
    margin-top: 6.5vw;
  }
}

/* research *************************************/

#research {
  position: relative;
  padding: 7.5vw 11.35416vw 7.2916vw;
  overflow: hidden;
  background-image: url(../images/research/research_bg.webp);
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;

  @media (max-width: 1200px) {
    padding: 90px 25px 88px;
  }
}

.research_title {
  display: flex;
  justify-content: flex-start;
  align-items: flex-end;

  @media (min-width: 1201px) {
    gap: 0 2.08vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    gap: 0 2.08vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    gap: 2.080624187vw 0;
    flex-direction: column-reverse;
    align-items: flex-start;
  }

  @media (max-width: 768px) {
    gap: 4vw 0;
    flex-direction: column-reverse;
    align-items: flex-start;
  }
}




.research_title span {
  line-height: 1;
  letter-spacing: 0.25em;
  font-weight: bold;
  color: #fff;

  @media (min-width: 1201px) {
    font-size: 1.354166667vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    font-size: 1.625vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    font-size: 1.56046814vw;
  }

  @media (max-width: 768px) {
    font-size: 3vw;
  }
}

.research_img {
  aspect-ratio: 797 / 54;

  @media (min-width: 1201px) {
    width: 41.51041667vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    width: 49.8125vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    width: 42.00260078vw;
  }

  @media (max-width: 768px) {
    width: 80.75vw;
  }
}

.research_item_wrap {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.041666667vw;
  margin-top: 4.6875vw;

  @media (max-width: 1200px) {
    gap: 13px;
    margin-top: 56px;
  }

  @media (max-width: 768px) {
    grid-template-columns: 1fr;
    gap: 10px;
    margin-top: 45px;
  }
}

.research_item {
  background-color: rgba(249, 248, 246, 0.9);
  padding: 2.96875vw 2.708333333vw;
  display: flex;
  flex-direction: column;

  @media (max-width: 1200px) {
    padding: 35px 32px;
  }

  @media (max-width: 768px) {
    padding: 30px 28px;
  }
}

.research_item_hidden {
  @media (max-width: 768px) {
    display: none;
  }
}

.research_item_wrap.is-open .research_item_hidden {
  @media (max-width: 768px) {
    display: block;
  }
}

.research_item_title {
  display: flex;
  align-items: center;
  font-weight: bold;
  line-height: 1.3;
  letter-spacing: 0.1em;
  color: #998675;

  @media (min-width: 1201px) {
    font-size: 1.40625vw;
    margin-bottom: 1.979166667vw;
    gap: 1em;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    font-size: 16px;
    margin-bottom: 2.083333333vw;
    gap: 1em;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    font-size: 2.210663199vw;
    margin-bottom: 2.600780234vw;
    gap: 1.300390117vw;
  }

  @media (max-width: 768px) {
    font-size: 4.25vw;
    margin-bottom: 5vw;
    gap: 2.5vw;
  }
}

.research_item_title span {
  letter-spacing: 0em;

  @media (min-width: 1201px) {
    font-size: 2.916666667vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    font-size: 3.5vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    font-size: 4.161248375vw;
  }

  @media (max-width: 768px) {
    font-size: 8vw;
  }
}

.research_item_title span.font-mincho {
  font-style: italic;
  font-weight: bold;
}

.research_item_title span:not(.font-mincho) {
  display: inline-flex;
  justify-content: center;
  align-items: center;

  @media (min-width: 1201px) {
    width: 0.6770833333vw;
    height: 2.447916667vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    width: 0.8125vw;
    height: 2.9375vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    width: 1.170351105vw;
    height: 4.161248375vw;
  }

  @media (max-width: 768px) {
    width: 2.25vw;
    height: 8vw;
  }
}

.research_item_text {
  font-size: 1.197916667vw;
  line-height: 1.7;
  letter-spacing: 0.05em;
  margin-bottom: 1.875vw;
  color: #373737;
  font-weight: bold;

  @media (max-width: 1200px) {
    font-size: 14px;
    margin-bottom: 22px;
  }

  @media (max-width: 768px) {
    font-size: 17px;
    line-height: 1.7;
    letter-spacing: 0.1em;
    margin-bottom: 26px;
  }
}

.research_item_subtext {
  font-size: 0.989583333vw;
  line-height: 1.9;
  letter-spacing: 0.02em;
  margin-bottom: 1.40625vw;
  color: #373737;
  font-weight: bold;

  @media (max-width: 1200px) {
    font-size: 12px;
    margin-bottom: 16px;
  }

  @media (max-width: 768px) {
    line-height: 1.7;
    letter-spacing: 0.05em;
    margin-bottom: 18px;
  }

  @media (min-width: 1201px) {
    font-size: 0.9895833333vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    font-size: 1.1875vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    font-size: 1.820546164vw;
  }

  @media (max-width: 768px) {
    font-size: 3.5vw;
  }
}

.research_item_note {
  padding-left: 1em;
  text-indent: -1em;
  line-height: 1.5;

  @media (min-width: 1201px) {
    font-size: 0.9375vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    font-size: 1.125vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    font-size: 1.56046814vw;
  }

  @media (max-width: 768px) {
    font-size: 3vw;
  }
}

.research_item_note:last-of-type {

  @media (min-width: 1201px) {
    margin-bottom: 2.708333333vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    margin-bottom: 3.25vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    margin-bottom: 3.120936281vw;
  }

  @media (max-width: 768px) {
    margin-bottom: 6vw;
  }
}

.research_item_link_wrap {
  text-align: center;
  margin-top: auto;
}

.research_item_link {
  display: inline-block;
  position: relative;
  font-size: 1.5625vw;
  font-weight: 500;
  letter-spacing: 0.05em;
  text-decoration: none;
  transition: opacity 0.3s;
  color: #373737;

  @media (max-width: 1200px) {
    font-size: 19px;
  }

  @media (max-width: 768px) {
    font-size: 17px;
  }

  &:hover {
    opacity: 0.7;
  }
}

.research_item_link img {
  display: inline-block;
  aspect-ratio: 205 / 24;

  @media (min-width: 1201px) {
    width: 10.67708333vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    width: 12.8125vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    width: 15.08452536vw;
  }

  @media (max-width: 768px) {
    width: 29vw;
  }
}

.research_item_link::after {
  content: "";
  display: inline-block;
  margin-left: 1em;
  background-image: url(../images/research/evidence_arrow.webp);
  background-position: center;
  background-size: contain;
  background-repeat: no-repeat;
  width: 1.71875vw;
  aspect-ratio: 1 / 1;
  vertical-align: middle;

  @media (max-width: 1200px) {
    width: 20px;
  }

  @media (max-width: 768px) {
    width: 22px;
  }
}

.research_toggle_btn {
  display: none;

  @media (max-width: 768px) {
    display: block;
    width: 100%;
    max-width: 70vw;
    margin: 6vw auto 0;
    border: none;
    font-size: 4.25vw;
    letter-spacing: 0.1em;
    cursor: pointer;
    color: #fff;
  }

  &.is-open::after {
    @media (max-width: 768px) {
      content: "-";
      margin-left: 1em;
    }
  }

  &::after {
    @media (max-width: 768px) {
      content: "+";
      margin-left: 1em;
    }
  }

  &.is-open::before {
    @media (max-width: 768px) {
      content: "Close";
    }
  }

  &::before {
    @media (max-width: 768px) {
      content: "View More";
    }
  }
}

/* reviews *************************************/
#reviews {
  position: relative;
  color: #fff;
  overflow: hidden;

  @media (min-width: 1201px) {
    padding: 7.552083333vw 11.5625vw 0;
    height: 46.97916667vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    padding: 9.0625vw 7.875vw 0;
    height: 56.375vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    padding: 7.282184655vw 5vw 0;
    height: 67vw;
  }

  @media (max-width: 768px) {
    padding: 14vw 5.25vw 0;
    height: 146vw;
  }
}

#reviews::before,
#reviews::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: center;
  transition: opacity 800ms ease-in-out;
  z-index: 0;
}

#reviews::before {
  background-image: url(../images/reviews/reviews_bg.webp);
  opacity: 1;

  @media (max-width: 992px) {
    background-image: url(../images/reviews/reviews_bg_sp.webp);
  }
}

#reviews::after {
  background-image: url(../images/reviews/reviews_bg2.webp);
  opacity: 0;

  @media (max-width: 992px) {
    background-image: url(../images/reviews/reviews_bg2_sp.webp);
  }
}

#reviews.bg-2::before {
  opacity: 0;
}

#reviews.bg-2::after {
  opacity: 1;
}

.reviews_sticky_wrapper {
  position: relative;
  z-index: 1;
}

.reviews_header {
  @media (min-width: 1201px) {
    padding: 0 0 6.666666667vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    padding: 0 0 8vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    padding: 0 0 6.501950585vw;
  }

  @media (max-width: 768px) {
    padding: 0 0 12.5vw;
  }
}

/* .reviews-swiper {
  padding: 40px 200px 80px;

  @media (min-width: 1201px) {
    padding: 2.08vw 10.42vw 4.17vw;
  }

  @media (max-width: 1200px) {
    padding: 25px 125px 50px;
  }

  @media (max-width: 992px) {
    padding: 20px 20px 80px;
  }
} */

.reviews-swiper .swiper-pagination {
  @media (min-width: 1201px) {
    bottom: 3.125vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    bottom: 3.75vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    bottom: 7.152145644vw;
  }

  @media (max-width: 768px) {
    bottom: 13.75vw;
  }
}

.reviews-swiper .swiper-pagination-bullet {
  background: transparent;
  border: 1px solid #fff;
  opacity: 0.5;
}

.reviews-swiper .swiper-pagination-bullet-active {
  opacity: 1;
  background-color: #fff;
}

.reviews_content {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: center;

  @media (min-width: 1201px) {
    min-height: 30vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    min-height: 36vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    min-height: 39.93498049vw;
    padding-bottom: 15.73472042vw;
  }

  @media (max-width: 768px) {
    min-height: 96vw;
    padding-bottom: 30.25vw;
  }
}

.reviews_title {
  display: flex;
  justify-content: flex-start;
  align-items: flex-end;

  @media (min-width: 1201px) {
    gap: 0 2.08vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    gap: 0 2.08vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    gap: 2.080624187vw 0;
    flex-direction: column-reverse;
    align-items: flex-start;
  }

  @media (max-width: 768px) {
    gap: 4vw 0;
    flex-direction: column-reverse;
    align-items: flex-start;
  }
}

.reviews_title span {
  line-height: 1;
  letter-spacing: 0.25em;
  font-weight: bold;

  @media (min-width: 1201px) {
    font-size: 1.354166667vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    font-size: 1.625vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    font-size: 1.56046814vw;
  }

  @media (max-width: 768px) {
    font-size: 3vw;
  }
}

.customer_reviews_img {
  display: block;
  aspect-ratio: 886 / 57;

  @media (min-width: 1201px) {
    width: 46.14583333vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    width: 55.375vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    width: 26.52795839vw;
    aspect-ratio: 204 / 68;
  }

  @media (max-width: 768px) {
    width: 51vw;
    aspect-ratio: 204 / 68;
  }
}

.reviews_item {
  text-align: center;
}

.reviews_item[data-review="1"] {
  @media (min-width: 1201px) {
    position: absolute;
    top: 0;
    right: 2.864583333vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    position: absolute;
    top: 0;
    right: 3.4375vw;
  }

  @media (max-width: 992px) {
    margin-left: auto;
    margin-right: 1px;
  }
}

.reviews_item[data-review="2"] {
  @media (min-width: 1201px) {
    position: absolute;
    top: 3.75vw;
    left: 0;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    position: absolute;
    top: 4.5vw;
    left: 0;
  }

  @media (max-width: 992px) {
    margin-right: auto;
  }
}

.reviews_item[data-review="3"] {
  @media (min-width: 1201px) {
    position: absolute;
    bottom: 8.645833333vw;
    right: 10.9375vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    position: absolute;
    bottom: 10.375vw;
    right: 13.125vw;
  }

  @media (max-width: 992px) {
    margin-left: auto;
    margin-right: 1px;
  }
}

.reviews_item[data-review="4"] {
  @media (min-width: 1201px) {
    position: absolute;
    top: 0;
    right: 2.864583333vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    position: absolute;
    top: 0;
    right: 3.4375vw;
  }

  @media (max-width: 992px) {
    margin-left: auto;
    margin-right: 1px;
  }
}

.reviews_item[data-review="5"] {
  @media (min-width: 1201px) {
    position: absolute;
    top: 3.75vw;
    left: 0;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    position: absolute;
    top: 4.5vw;
    left: 0;
  }

  @media (max-width: 992px) {
    margin-right: auto;
  }
}

.reviews_item[data-review="6"] {
  @media (min-width: 1201px) {
    position: absolute;
    bottom: 8.645833333vw;
    right: 10.9375vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    position: absolute;
    bottom: 10.375vw;
    right: 13.125vw;
  }

  @media (max-width: 992px) {
    margin-left: auto;
    margin-right: 1px;
  }
}

.reviews_item[data-review="7"] {
  @media (min-width: 1201px) {
    position: absolute;
    top: 0;
    right: 2.864583333vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    position: absolute;
    top: 0;
    right: 3.4375vw;
  }

  @media (max-width: 992px) {
    margin-left: auto;
    margin-right: 1px;
  }
}

.reviews_item[data-review="8"] {
  @media (min-width: 1201px) {
    position: absolute;
    top: 3.75vw;
    left: 0;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    position: absolute;
    top: 4.5vw;
    left: 0;
  }

  @media (max-width: 992px) {
    margin-right: auto;
  }
}

.reviews_item[data-review="9"] {
  @media (min-width: 1201px) {
    position: absolute;
    bottom: 8.645833333vw;
    right: 10.9375vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    position: absolute;
    bottom: 10.375vw;
    right: 13.125vw;
  }

  @media (max-width: 992px) {
    margin-left: auto;
    margin-right: 1px;
  }
}

.reviews_item[data-review="10"] {
  @media (min-width: 1201px) {
    position: absolute;
    top: 0;
    right: 2.864583333vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    position: absolute;
    top: 0;
    right: 3.4375vw;
  }

  @media (max-width: 992px) {
    margin-left: auto;
    margin-right: 1px;
  }
}

.reviews_item[data-review="11"] {
  @media (min-width: 1201px) {
    position: absolute;
    top: 3.75vw;
    left: 0;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    position: absolute;
    top: 4.5vw;
    left: 0;
  }

  @media (max-width: 992px) {
    margin-right: auto;
  }
}

.reviews_item[data-review="12"] {
  @media (min-width: 1201px) {
    position: absolute;
    bottom: 8.645833333vw;
    right: 10.9375vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    position: absolute;
    bottom: 10.375vw;
    right: 13.125vw;
  }

  @media (max-width: 992px) {
    margin-left: auto;
    margin-right: 1px;
  }
}

.reviews_item[data-review="13"] {
  @media (min-width: 1201px) {
    position: absolute;
    top: 0;
    right: 2.864583333vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    position: absolute;
    top: 0;
    right: 3.4375vw;
  }

  @media (max-width: 992px) {
    margin-left: auto;
    margin-right: 1px;
  }
}

.reviews_item[data-review="14"] {
  @media (min-width: 1201px) {
    position: absolute;
    bottom: 8.645833333vw;
    left: 0;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    position: absolute;
    bottom: 10.375vw;
    left: 0;
  }

  @media (max-width: 992px) {
    margin-right: auto;
  }
}

.reviews_text {
  line-height: 1.6;
  letter-spacing: 0.1em;
  font-weight: bold;
  position: relative;
  text-align: center;
  text-shadow: 0 0 10px rgba(0, 0, 0, 0.4);
  overflow: visible;
  -webkit-transform: translateZ(0);
  transform: translateZ(0);

  @media (min-width: 1201px) {
    font-size: 1.5625vw;
    padding: 1.40625vw 1.145833333vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    font-size: 1.875vw;
    padding: 1.6875vw 1.375vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    font-size: 1.950585176vw;
    padding: 1.040312094vw;
  }

  @media (max-width: 768px) {
    font-size: 3.75vw;
    padding: 2vw;
  }
}

.reviews_deco_tl,
.reviews_deco_br {
  display: block;
  position: absolute;
  border: 1px solid #fff;

  @media (min-width: 1201px) {
    width: 2.395833333vw;
    height: 4.0625vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    width: 2.875vw;
    height: 4.875vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    width: 2.730819246vw;
    height: 4.681404421vw;
  }

  @media (max-width: 768px) {
    width: 5.25vw;
    height: 9vw;
  }
}

.reviews_deco_tl {
  top: 0;
  left: 0;
  border-right: none;
  border-bottom: none;
}

.reviews_deco_br {
  bottom: 0;
  right: 0;
  border-left: none;
  border-top: none;
}

/* faq *************************************/
#faq {
  padding: 80px 200px;
  position: relative;
  overflow: hidden;
  clip-path: inset(0);

  @media (min-width: 1201px) {
    padding: 4.17vw 10.42vw;
  }

  @media (max-width: 1200px) {
    padding: 50px 125px;
  }

  @media (max-width: 992px) {
    padding: 54px 26px 78px;
  }
}

#faq::before {
  content: '';
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-image: url(../images/faq/faq_bg.webp);
  background-size: cover;
  background-position: center;
  z-index: -1;
}

.faq_inner {
  position: relative;
}

.faq_item_wrap.is-open .faq_item_hidden {
  display: block;
}

.faq_title {
  display: flex;
  justify-content: flex-start;
  align-items: flex-end;

  @media (min-width: 1201px) {
    gap: 0 2.08vw;
    margin-bottom: 5.052083333vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    gap: 0 2.08vw;
    margin-bottom: 6.0625vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    gap: 2.080624187vw 0;
    flex-direction: column-reverse;
    align-items: flex-start;
    margin-bottom: 6.501950585vw;
  }

  @media (max-width: 768px) {
    gap: 4vw 0;
    flex-direction: column-reverse;
    align-items: flex-start;
    margin-bottom: 12.5vw;
  }
}

.faq_title span {
  line-height: 1;
  letter-spacing: 0.25em;
  font-weight: bold;

  @media (min-width: 1201px) {
    font-size: 1.354166667vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    font-size: 1.625vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    font-size: 1.56046814vw;
  }

  @media (max-width: 768px) {
    font-size: 3vw;
  }
}

.faq_img {
  aspect-ratio: 161 / 54;

  @media (min-width: 1201px) {
    width: 8.385416667vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    width: 10.0625vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    width: 9.362808843vw;
  }

  @media (max-width: 768px) {
    width: 18vw;
  }
}

.faq_item {
  margin: 0 auto;

  @media (min-width: 1201px) {
    max-width: 60.41666667vw;
    padding: 3.125vw 0;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    max-width: 100%;
    width: 72.5vw;
    padding: 3.75vw 0;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    padding: 4.811443433vw 0;
  }

  @media (max-width: 768px) {
    padding: 9.25vw 0;
  }
}

.faq_item:first-child {
  padding-top: 0;
}

.faq_item:not(:last-child) {
  border-bottom: 1px solid #fff;
}

.question {
  line-height: 1.15;
  letter-spacing: 0.25em;
  font-weight: 500;


  @media (min-width: 1201px) {
    font-size: 1.666666667vw;
    margin-bottom: 2.34375vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    font-size: 2vw;
    margin-bottom: 2.8125vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    font-size: 2.600780234vw;
    margin-bottom: 2.81vw;
  }

  @media (max-width: 768px) {
    font-size: 5vw;
    margin-bottom: 2.81vw;
  }
}

.answer {
  font-size: 20px;
  line-height: 2.15;
  letter-spacing: 0.05em;

  @media (min-width: 1201px) {
    font-size: 1.09375vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    font-size: 1.3125vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    font-size: 1.820546164vw;
  }

  @media (max-width: 768px) {
    font-size: 3.5vw;
  }
}

.faq_item_note {
  display: inline-block;
  padding-left: 1em;
  text-indent: -1em;
  line-height: 1.5;

  @media (min-width: 1201px) {
    font-size: 0.9375vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    font-size: 1.125vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    font-size: 1.56046814vw;
  }

  @media (max-width: 768px) {
    font-size: 3vw;
  }
}

.faq_item a {
  color: #373737;
  text-decoration: underline;
}

.faq_item_hidden {
  display: none;
}

.faq_toggle_btn {
  display: block;
  width: 100%;
  max-width: 280px;
  margin: 60px auto 0;
  background: transparent;
  border: none;
  color: #333;
  font-size: 17px;
  letter-spacing: 0.1em;
  cursor: pointer;

  @media (min-width: 1201px) {
    max-width: 14.58vw;
    margin: 3.125vw auto 0;
    font-size: 0.885vw;
  }

  @media (max-width: 1200px) {
    max-width: 175px;
    margin: 38px auto 0;
    font-size: 16px;
  }

  @media (max-width: 768px) {
    max-width: 280px;
    margin: 24px auto 0;
    font-size: 17px;
  }

  &.is-open::after {
    content: "-";
    margin-left: 1em;
  }

  &::after {
    content: "+";
    margin-left: 1em;
  }

  &.is-open::before {
    content: "Close";
  }

  &::before {
    content: "Read More";
  }
}

/* last_cta_wrapper */


.last_cta_wrapper {

  @media (min-width: 1201px) {
    margin-top: 8.59375vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    margin-top: 10.3125vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    margin-top: 8.062418726vw;
  }

  @media (max-width: 768px) {
    margin-top: 15.5vw;
  }
}

.last_cta_btn {
  display: block;
  margin: 0 auto;

  @media (min-width: 1201px) {
    width: 36.66666667vw;
    height: 11.66666667vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    width: 44vw;
    height: 14vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    width: 39.01170351vw;
    height: 12.35370611vw;
  }

  @media (max-width: 768px) {
    width: 75vw;
    height: 23.75vw;
  }
}

.last_cta_btn img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  display: block;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

@media (hover: hover) and (pointer: fine) {
  .last_cta_btn:hover img {
    transform: scale(1.03) translateY(-5px);
    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2);
  }
}


/* comfort ***************************************************************/
#comfort {
  position: relative;
  overflow: hidden;
  background-color: #fff;

  @media (min-width: 1201px) {
    padding: 8.072916667vw 10.20833333vw 19.27083333vw 10.20833333vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    padding: 9.6875vw 12.25vw 23.125vw 12.25vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    padding: 6.89206762vw 3.901170351vw 21.71651495vw 3.901170351vw;
  }

  @media (max-width: 768px) {
    padding: 13.25vw 7.5vw 41.75vw 7.5vw;
  }
}

.comfort_title {
  display: flex;
  justify-content: flex-start;
  align-items: flex-end;

  @media (min-width: 1201px) {
    gap: 0 2.08vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    gap: 2.08vw 0;
    flex-direction: column-reverse;
    align-items: flex-start;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    gap: 2.080624187vw 0;
    flex-direction: column-reverse;
    align-items: flex-start;
  }

  @media (max-width: 768px) {
    gap: 4vw 0;
    flex-direction: column-reverse;
    align-items: flex-start;
  }
}

.comfort_title span {
  line-height: 1;
  letter-spacing: 0.11em;
  font-weight: bold;

  @media (min-width: 1201px) {
    font-size: 1.354166667vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    font-size: 1.625vw;
    letter-spacing: 0.11em;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    font-size: 1.56046814vw;
  }

  @media (max-width: 768px) {
    font-size: 3vw;
  }
}

.comfort_img {
  display: block;
  aspect-ratio: 972 / 57;

  @media (min-width: 1201px) {
    width: 50.625vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    width: 60.75vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    width: 34.4603381vw;
    aspect-ratio: 265 / 68;
  }

  @media (max-width: 768px) {
    width: 66.25vw;
    aspect-ratio: 265 / 68;
  }
}

.comfort_item_wrap {
  position: relative;

  @media (min-width: 1201px) {
    margin-top: 5.572916667vw;
    height: 94.42708333vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    margin-top: 7vw;
    height: 100.3125vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    margin-top: 6.762028609vw;
    height: 123.3125vw;
  }

  @media (max-width: 768px) {
    margin-top: 13vw;
  }
}

.comfort_item {
  position: absolute;
  opacity: 0;
  transition: opacity 0.8s ease-out, transform 0.8s ease-out;

  @media (max-width: 768px) {
    position: static;
  }
}

/* 左からスライドイン */
.comfort_item01,
.comfort_item03 {
  transform: translateX(-50px);
}

/* 右からスライドイン */
.comfort_item02,
.comfort_item04 {
  transform: translateX(50px);
}

.comfort_item.is-visible {
  opacity: 1;
  transform: translateX(0);
}

.comfort_item:not(.comfort_item04) {

  @media (max-width: 992px) and (min-width: 769px) {
    margin-bottom: 5.851755527vw;
  }

  @media (max-width: 768px) {
    margin-bottom: 11.25vw;
  }
}

.comfort_item_title {
  line-height: 1.8;
  letter-spacing: 0.3em;
  position: relative;

  @media (min-width: 1201px) {
    font-size: 1.822916667vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    font-size: 2.1875vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    font-size: 2.600780234vw;
  }

  @media (max-width: 768px) {
    font-size: 5vw;
  }
}

.comfort_item_title .number {
  line-height: 1;
  letter-spacing: 0;
  font-style: italic;
  position: relative;
  transform: translateY(-10%);

  @media (min-width: 1201px) {
    font-size: 1.510416667vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    font-size: 1.8125vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    font-size: 1.950585176vw;
  }

  @media (max-width: 768px) {
    font-size: 3.75vw;
  }
}

.comfort_item_title .slash {
  display: inline-block;
  line-height: 1;
  letter-spacing: 0;
  position: relative;
  transform: translateY(10%);

  @media (min-width: 1201px) {
    width: 0.625vw;
    height: 2.447916667vw;
    margin: 0 1.458333333vw 0 0.6770833333vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    width: 0.75vw;
    height: 2.9375vw;
    margin: 0 1.75vw 0 0.8125vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    width: 0.910273081946vw;
    height: 3.250975293vw;
    margin: 0 1.690507152vw 0 1.300390117vw;
  }

  @media (max-width: 768px) {
    width: 1.75vw;
    height: 6.25vw;
    margin: 0 3.25vw 0 2.5vw;
  }
}

.comfort_item_title .slash img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.comfort_item_text {
  line-height: 1.9;
  letter-spacing: 0.25em;
  position: relative;

  @media (min-width: 1201px) {
    font-size: 1.09375vw;
    margin-top: 1.666666667vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    font-size: 1.3125vw;
    margin-top: 2vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    font-size: 1.820546164vw;
    margin-top: 2.340702211vw;
    line-height: 1.8;
    letter-spacing: -0.09em;
  }

  @media (max-width: 768px) {
    font-size: 3.5vw;
    margin-top: 4.5vw;
    line-height: 1.8;
    letter-spacing: -0.09em;
  }
}

.comfort_item_img {
  /* overflow: hidden; */
  display: block;
  position: relative;
}

.comfort_item_img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.comfort_item01 {
  @media (min-width: 993px) {
    top: 0;
    left: 0;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    top: 0;
    left: 0;
    width: 48.11443433vw;
  }

  @media (max-width: 768px) {
    width: 92.5vw;
    margin-left: auto;
  }
}

.comfort_item02 {

  @media (min-width: 1201px) {
    top: 5.46875vw;
    right: 0;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    top: 6.5625vw;
    right: 0;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    right: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    margin-right: -1.9505851755vw;
  }

  @media (max-width: 768px) {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    margin-right: -3.75vw;
  }
}

.comfort_item03 {
  @media (min-width: 1201px) {
    top: 43.125vw;
    left: 3.4375vw;
  }

  @media (min-width: 993px) and (max-width: 1200px) {
    top: 51.75vw;
  }

  @media (min-width: 769px) and (max-width: 992px) {
    bottom: 0;
    left: -2vw;
  }

  @media (max-width: 768px) {
    margin-left: auto;
  }

  @media (max-width: 575px) {
    margin-left: 0;
    max-width: 100%;
  }
}

.comfort_item04 {

  @media (min-width: 1201px) {
    bottom: 0;
    right: 0;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    bottom: 0;
    right: -7.5vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    bottom: 0;
    right: 0;
  }

  @media (max-width: 768px) {}
}

.comfort_item01 .comfort_item_img {
  aspect-ratio: 765 / 430;

  @media (min-width: 1201px) {
    width: 39.84375vw;
    margin-left: 1.5625vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    width: 30.83333333vw;
    margin-left: 1.875vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    width: 48.11443433vw;
    margin-top: 3.901170351vw;
  }

  @media (max-width: 768px) {
    width: 92.5vw;
    margin-top: 7.5vw;
  }
}

.comfort_item02 .comfort_item_img {
  aspect-ratio: 45 / 65;

  @media (min-width: 1201px) {
    width: 23.4375vw;
    margin-left: auto;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    width: 25vw;
    margin-left: auto;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    width: 39.01170351vw;
    aspect-ratio: 300 / 248;
  }

  @media (max-width: 768px) {
    width: 75vw;
    aspect-ratio: 300 / 248;
  }
}

.comfort_item03 .comfort_item_img {
  aspect-ratio: 560 / 600;

  @media (min-width: 1201px) {
    width: 29.16666667vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    width: 20.41666667vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    width: 31.85955787vw;
    aspect-ratio: 245 / 263;
    left: -2vw;
  }

  @media (max-width: 768px) {
    width: 61.25vw;
    aspect-ratio: 245 / 263;
  }
}

.comfort_item04 .comfort_item_img {
  aspect-ratio: 715 / 430;

  @media (min-width: 1201px) {
    width: 37.23958333vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    width: 30.83333333vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    width: 48.11443433vw;
    aspect-ratio: 370 / 223;
  }

  @media (max-width: 768px) {
    width: 92.5vw;
    aspect-ratio: 370 / 223;
    margin-left: -7.5vw;
  }
}

.comfort_item01 .comfort_item_text {

  @media (min-width: 1201px) {
    margin-left: 4.322916667vw;
    margin-bottom: 2.604166667vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    margin-left: 5.1875vw;
    margin-bottom: 3.125vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    margin-left: 5.851755527vw;
    margin-bottom: 3.901170351vw;
  }

  @media (max-width: 768px) {
    margin-left: 11.25vw;
    margin-bottom: 7.5vw;
  }
}


.comfort_item02 .comfort_item_title {
  position: relative;

  @media (min-width: 1201px) {
    margin-top: 3.28125vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    margin-top: 3.9375vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    margin-top: 3.641092328vw;
    padding-left: 5.851755527vw;
  }

  @media (max-width: 768px) {
    margin-top: 7vw;
    padding-left: 11.25vw;
  }
}

.comfort_item02 .comfort_item_title .number {

  @media (max-width: 992px) and (min-width: 769px) {
    position: absolute;
    top: 0.8em;
    left: 0;
  }

  @media (max-width: 768px) {
    position: absolute;
    top: 0.8em;
    left: 0;
  }
}

.comfort_item02 .comfort_item_title .slash {

  @media (max-width: 992px) and (min-width: 769px) {
    position: absolute;
    left: 2.600780234vw;
  }

  @media (max-width: 768px) {
    position: absolute;
    left: 5vw;
  }
}

.comfort_item_title_fixed {

  @media (max-width: 992px) and (min-width: 769px) {
    display: block;
    margin-left: 30px;
  }

  @media (max-width: 768px) {
    margin-top: 7vw;
  }
}

.comfort_item02 .comfort_item_text {

  @media (min-width: 1201px) {
    margin-left: 4.322916667vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    margin-left: 5.1875vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    margin-left: 5.851755527vw;
  }

  @media (max-width: 768px) {
    margin-left: 11.25vw;
  }
}

.comfort_item03 .comfort_item_title {

  @media (min-width: 1201px) {
    margin-top: 3.28125vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    margin-top: 3.9375vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    margin-top: 3.641092328vw;
  }

  @media (max-width: 768px) {
    margin-top: 7vw;
  }
}

.comfort_item03 .comfort_item_text {

  @media (min-width: 1201px) {
    margin-left: 4.322916667vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    margin-left: 5.1875vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    margin-left: 5.851755527vw;
  }

  @media (max-width: 768px) {
    margin-left: 11.25vw;
  }
}

.comfort_item04 .comfort_item_title {

  @media (min-width: 1201px) {
    margin-top: 3.28125vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    margin-top: 3.9375vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    margin-top: 3.641092328vw;
  }

  @media (max-width: 768px) {
    margin-top: 7vw;
  }
}

.comfort_item04 .comfort_item_text {

  @media (min-width: 1201px) {
    margin-left: 4.322916667vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    margin-left: 5.1875vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    margin-left: 5.851755527vw;
  }

  @media (max-width: 768px) {
    margin-left: 11.25vw;
  }
}

.comfort_text_deco {
  position: absolute;
  bottom: -0.364583333vw;
  left: 0;
  width: 100%;
  height: 9.010416667vw;
  pointer-events: none;
  overflow: hidden;

  @media (max-width: 1200px) {
    height: 108px;
    bottom: -4px;
  }

  @media (max-width: 992px) {
    height: 70px;
  }
}

.comfort_text_deco img {
  display: block;
  width: auto;
  height: 100%;
  position: absolute;
  bottom: 0;
  white-space: nowrap;
  will-change: transform;
  aspect-ratio: 8927 / 347;
}

/* footer ***************************************************************/
#footer {
  background-color: #f1f4f5;
  overflow: hidden;
  position: relative;

  @media (min-width: 1201px) {
    padding: 20.83333333vw 0 3.020833333vw;
  }

  @media (max-width: 1200px) {
    padding: 400px 0 39px;
  }

  @media (max-width: 992px) {
    padding: 187px 0 35px;
  }
}

.footer_text_deco {
  position: absolute;
  top: 3.333333333vw;
  left: 0;
  width: 100%;
  height: 11.04166667vw;
  pointer-events: none;
  overflow: hidden;

  @media (max-width: 1200px) {
    height: 133px;
    top: 40px;
  }

  @media (max-width: 992px) {
    height: 84px;
  }
}

.footer_text_deco img {
  display: block;
  width: auto;
  height: 100%;
  position: absolute;
  bottom: 0;
  white-space: nowrap;
  will-change: transform;
  aspect-ratio: 6085 / 424;
}

.footer_gallery {
  position: relative;
  height: 164.0104167vw;

  @media (max-width: 992px) {
    height: 426.75vw;
  }
}

.gallery_img {
  position: absolute;
  overflow: hidden;
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}

.gallery_img.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.gallery_img.is-floating {
  animation: floatUpDown 3s ease-in-out infinite;
}

@keyframes floatUpDown {

  0%,
  100% {
    transform: translateY(0);
  }

  50% {
    transform: translateY(-15px);
  }
}

.gallery_img_01 {
  width: 21.04166667vw;
  aspect-ratio: 1617 / 2145;
  top: 0;
  left: 11.92708333vw;
  z-index: 2;
  transition-delay: 0.1s;

  @media (max-width: 992px) {
    width: 30vw;
    top: 25.5vw;
    left: 10vw;
  }
}

.gallery_img_01.is-visible {
  animation-delay: 0.1s;
}

.gallery_img_02 {
  width: 19.79166667vw;
  aspect-ratio: 1521 / 2013;
  top: 6.302083333vw;
  right: 13.02083333vw;
  transition-delay: 0.2s;

  @media (max-width: 992px) {
    width: 37vw;
    top: 0;
    right: 8.75vw;
  }
}

.gallery_img_02.is-visible {
  animation-delay: 0.3s;
}

.gallery_img_03 {
  width: 34.21875vw;
  aspect-ratio: 2629 / 3481;
  top: 13.4375vw;
  left: 29.6875vw;
  transition-delay: 0.3s;

  @media (max-width: 992px) {
    width: 72vw;
    top: 55vw;
    left: auto;
    right: 0;
  }
}

.gallery_img_03.is-visible {
  animation-delay: 0.5s;
}

.gallery_text {
  position: absolute;
  top: 70.83333333vw;
  left: 14.84375vw;
  text-align: left;
  font-size: 1.822916667vw;
  line-height: 2.1;
  letter-spacing: 0.4em;
  font-weight: bold;

  @media (max-width: 992px) {
    top: 164vw;
    font-size: 3.5vw;
    line-height: 2.2;
    letter-spacing: 0.25em;
    left: 50%;
    transform: translateX(-50%);
    width: 100%;
    text-align: center;
  }
}

.gallery_img_04 {
  width: 35.72916667vw;
  aspect-ratio: 2745 / 4116;
  top: 72.91666667vw;
  right: 5.833333333vw;
  z-index: 2;
  transition-delay: 0.4s;

  @media (max-width: 992px) {
    width: 63vw;
    top: 220vw;
    right: 7.5vw;
  }
}

.gallery_img_04.is-visible {
  animation-delay: 0.7s;
}

.gallery_img_05 {
  width: 39.01041667vw;
  aspect-ratio: 2996 / 1861;
  bottom: 50.36458333vw;
  left: 6.145833333vw;
  transition-delay: 0.5s;

  @media (max-width: 992px) {
    width: 62.5vw;
    bottom: 199vw;
    right: auto;
    left: 0;
  }
}

.gallery_img_05.is-visible {
  animation-delay: 0.9s;
}

.gallery_img_06 {
  width: 22.39583333vw;
  aspect-ratio: 1721 / 2413;
  bottom: 23.33333333vw;
  left: 32.8125vw;
  transition-delay: 0.6s;

  @media (max-width: 992px) {
    width: 34.75vw;
    bottom: 56vw;
    left: 39vw;
  }
}

.gallery_img_06.is-visible {
  animation-delay: 1.1s;
}

.gallery_img_07 {
  width: 17.1875vw;
  aspect-ratio: 1321 / 1761;
  bottom: 7.1875vw;
  left: 13.85416667vw;
  z-index: 2;
  transition-delay: 0.7s;

  @media (max-width: 992px) {
    width: 31vw;
    bottom: 35.5vw;
    left: 12.5vw;
  }
}

.gallery_img_07.is-visible {
  animation-delay: 1.3s;
}

.gallery_img_08 {
  width: 19.79166667vw;
  aspect-ratio: 1521 / 2013;
  bottom: 0;
  right: 16.30208333vw;
  transition-delay: 0.8s;

  @media (max-width: 992px) {
    width: 33.75vw;
    bottom: 0;
    right: 9vw;
  }
}

.gallery_img_08.is-visible {
  animation-delay: 1.5s;
}

.gallery_img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}

.footer_logo {
  margin-top: 6.25vw;
  width: 14.16666667vw;
  aspect-ratio: 682 / 244;
  margin-left: auto;
  margin-right: auto;

  @media (max-width: 992px) {
    width: 150px;
    margin-top: 60px;
  }
}

.footer_logo img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  display: block;
}

.sns_link {
  display: flex;
  justify-content: center;
  margin-top: 2.916666667vw;

  @media (max-width: 992px) {
    margin-top: 30px;
  }
}

.instagram_link {
  display: block;
  width: 3.385416667vw;
  aspect-ratio: 1 / 1;

  @media (max-width: 992px) {
    width: 45px;
  }
}

@media (hover: hover) {
  .sns_link a:hover {
    opacity: 0.8;
  }
}

.instagram_link img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  display: block;
}

.tel {
  margin-top: 2.916666667vw;
  margin-right: auto;
  margin-left: auto;
  width: 23.95833333vw;
  aspect-ratio: 922 / 68;

  @media (max-width: 992px) {
    width: 200px;
    margin-top: 32px;
    aspect-ratio: 798 / 183;
  }
}

.tel img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  display: block;
}

.footer_link {
  display: flex;
  justify-content: center;
  gap: 0 2.708333333vw;
  margin-top: 2.291666667vw;

  @media (max-width: 992px) {
    margin-top: 34px;
    flex-direction: column;
    gap: 8px 0px;
    align-items: center;
  }
}

.footer_link_item {
  list-style: none;
}

.footer_link_item a {
  font-size: 0.9375vw;
  line-height: 2.2;
  letter-spacing: 0.25em;
  color: #373737;
  text-decoration: none;

  @media (max-width: 992px) {
    font-size: 14px;
  }
}

@media (hover: hover) {
  .footer_link_item a:hover {
    text-decoration: underline;
  }
}

.copyright {
  display: block;
  width: 15.46875vw;
  aspect-ratio: 594 / 32;
  margin: 3.75vw auto 0;

  @media (max-width: 992px) {
    margin-top: 46px;
    width: 212px;
  }
}

.copyright img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  display: block;
}

/* YouTube Modal */
.youtube-modal {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 10000;
}

.youtube-modal.is-active {
  display: block;
}

.youtube-modal-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.6);
  cursor: pointer;
}

.youtube-modal-content {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 90%;
  max-width: 1200px;
  z-index: 10001;
}

.youtube-modal-close {
  position: absolute;
  top: -3.125vw;
  right: -3.125vw;
  background: transparent;
  border: 1px solid #fff;
  color: #fff;
  font-size: 0.7291666667vw;
  cursor: pointer;
  padding: 0;
  width: 3.125vw;
  height: 3.125vw;
  border-radius: 50%;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform 0.3s, opacity 0.3s;

  @media (max-width: 1200px) {
    top: -50px;
    right: 0;
    width: 30px;
    height: 30px;
    font-size: 10px;
  }
}

.youtube-modal-close:hover {
  transform: scale(1.1);
  opacity: 0.9;
}

.youtube-modal-video {
  position: relative;
  width: 100%;
  padding-bottom: 56.25%;
  /* 16:9 aspect ratio */
  background-color: #000;
}

.youtube-modal-video iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

/* Loading Screen */
.loading-screen {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #fff;
  z-index: 99999;
  display: flex;
  align-items: center;
  justify-content: center;
}

.loading-screen.is-loaded {
  animation: fadeOut 0.6s ease-out 0.5s forwards;
  pointer-events: none;
}

.loading-screen.is-loaded .loading-logo {
  animation: logoShine 0.8s ease-out forwards;
}

@keyframes fadeOut {
  0% {
    opacity: 1;
  }

  100% {
    opacity: 0;
  }
}

@keyframes logoShine {
  0% {
    opacity: 1;
  }

  20% {
    opacity: 1;
  }

  100% {
    opacity: 0;
  }
}

.loading-logo {
  width: 200px;
  height: auto;
  opacity: 0;
  animation: fadeInLogo 0.5s ease-out 0.2s forwards;
  position: relative;
  overflow: hidden;

  @media (max-width: 768px) {
    width: 150px;
  }
}

.loading-logo::after {
  content: "";
  position: absolute;
  top: 0;
  left: -100%;
  width: 50%;
  height: 100%;
  background: linear-gradient(90deg,
      rgba(255, 255, 255, 0) 0%,
      rgba(255, 255, 255, 0.8) 50%,
      rgba(255, 255, 255, 0) 100%);
  transform: skewX(-20deg);
}

.loading-screen.is-loaded .loading-logo::after {
  animation: shine 0.6s ease-out;
}

@keyframes shine {
  0% {
    left: -100%;
  }

  100% {
    left: 150%;
  }
}

.loading-logo img {
  width: 100%;
  height: auto;
  display: block;
}

@keyframes fadeInLogo {
  from {
    opacity: 0;
    transform: scale(0.95);
  }

  to {
    opacity: 1;
    transform: scale(1);
  }
}

/* Top Button */
.top_btn {
  position: fixed;
  z-index: 9999;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease;
  filter: invert(1);
  mix-blend-mode: difference;

  @media (min-width: 1201px) {
    bottom: 6.25vw;
    left: 3.90625vw;
    width: 0.7291666667vw;
    height: 8.072916667vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    bottom: 7.5vw;
    left: 4.6875vw;
    width: 0.875vw;
    height: 9.6875vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    bottom: 3.901170351vw;
    left: 3.250975293vw;
    width: 1.300390117vw;
    height: 13.65409623vw;
  }

  @media (max-width: 768px) {
    bottom: 7.50vw;
    left: 6.25vw;
    width: 2.5vw;
    height: 26.25vw;
  }
}

.top_btn.is-visible {
  opacity: 1;
  visibility: visible;
}

.top_btn img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

.top_btn:hover {
  opacity: 0.7;
}

/* Float CTA Button */
.float_btn {
  position: fixed;
  z-index: 99;
  display: block;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease, width 0.3s ease, height 0.3s ease;
  overflow: hidden;

  @media (min-width: 1201px) {
    bottom: 5.052083333vw;
    right: 5.052083333vw;
    width: 6.770833333vw;
    height: 6.770833333vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    bottom: 6.0625vw;
    right: 6.0625vw;
    width: 8.125vw;
    height: 8.125vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    bottom: 2.600780234vw;
    right: 2.600780234vw;
    width: 9.10273081946vw;
    height: 9.10273081946vw;
  }

  @media (max-width: 768px) {
    bottom: 5vw;
    right: 5vw;
    width: 17.5vw;
    height: 17.5vw;
  }
}

.float_btn img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

.float_btn.is-visible {
  opacity: 1;
  visibility: visible;
}

.float_btn picture {
  display: block;
  position: absolute;
}

.float_btn img {
  display: block;
  width: 100%;
  height: 100%;
}

.float_btn .float_btn_default {
  opacity: 1;
  transition: opacity 0.3s ease;
  bottom: 0;
  right: 0;

  @media (min-width: 1201px) {
    width: 6.770833333vw;
    height: 6.770833333vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    width: 8.125vw;
    height: 8.125vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    width: 9.10273081946vw;
    height: 9.10273081946vw;
  }

  @media (max-width: 768px) {
    width: 17.5vw;
    height: 17.5vw;
  }
}

.float_btn.is-blend .float_btn_default {
  filter: invert(1);
}

.float_btn .float_btn_hover {
  opacity: 0;
  transition: opacity 0.3s ease;
  bottom: 0;
  right: 0;

  @media (min-width: 1201px) {
    width: 36.66666667vw;
    height: 11.66666667vw;
  }

  @media (max-width: 1200px) and (min-width: 993px) {
    width: 44vw;
    height: 14vw;
  }

  @media (max-width: 992px) and (min-width: 769px) {
    width: 39.01170351vw;
    height: 12.35370611vw;
  }

  @media (max-width: 768px) {
    width: 75vw;
    height: 23.75vw;
  }
}

/* Hover effect only for non-touch devices */
@media (hover: hover) and (pointer: fine) {
  .float_btn:hover {

    @media (min-width: 1201px) {
      width: 36.66666667vw;
      height: 11.66666667vw;
    }

    @media (max-width: 1200px) and (min-width: 993px) {
      width: 44vw;
      height: 14vw;
    }

    @media (max-width: 992px) and (min-width: 769px) {
      width: 39.01170351vw;
      height: 12.35370611vw;
    }

    @media (max-width: 768px) {
      width: 75vw;
      height: 23.75vw;
    }
  }

  .float_btn:hover .float_btn_default {
    opacity: 0;
  }

  .float_btn:hover .float_btn_hover {
    opacity: 1;
  }
}