@charset "UTF-8";
/* CSS Document */ :root {
  /* --- タイトル・見出し --- */
  --font-h2: clamp(2.4rem, 4.4vw, 999rem); /* 最小24px、中間63.36px */
  --font-h3: clamp(2.0rem, 2.5vw, 999rem); /* 最小20px、中間36px */
  --font-hero: clamp(2.2rem, 3.05vw, 999rem); /* 最小24px、中間44px、最大44px */
  --font-navi: clamp(1.4rem, 0.972vw, 999rem); /* 固定14px（最小・最大同じ） */
  /* --- 強調・装飾 --- */
  --font-strong: clamp(3.2rem, 3.61vw, 999rem); /* 最小32px、中間52px */
  --font-ll: clamp(3.2rem, 2.5vw, 999rem); /* 最小32px、中間36px */
  --font-product-name: clamp(2.4rem, 2.5vw, 999rem); /* 最小24px、中間36px */
  --font-catch: clamp(2.0rem, 2.08vw, 999rem); /* 最小20px、中間30px */
  /* --- 本文・UI --- */
  --font-l: clamp(1.8rem, 1.67vw, 999rem); /* 最小18px、中間24px */
  --font-m: clamp(1.8rem, 1.39vw, 999rem); /* 最小18px、中間20px */
  --font-base: clamp(1.4rem, 1.11vw, 999rem); /* 最小14px、中間16px */
  --color-text: #222222;
  --color-text-invert: #ffffff;
  --color-accent-blue: #1E87A7;
  --color-sub-blue: #AAD3DF;
  --color-accent-gold: #B69656;
}
html {
  font-size: 62.5%;
  /* 16px * 62.5% = 10px */
  width: 100%;
  box-sizing: border-box;
  font-weight: 400;
  max-width: 100vw;
  overflow-x: hidden;
}
body {
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 1.6em;
  line-height: 1.6;
  text-align: left;
  color: var(--color-text);
  background-color: #EFFDFE;
}
h2 {
  font-size: var(--font-h2);
  font-family: 'Shippori Mincho', serif;
}
h3 {
  font-size: var(--font-h3);
  font-family: 'Shippori Mincho', serif;
}
.product-title {
  font-size: var(--font-product-name);
  font-family: 'Zen Kaku Gothic New', sans-serif;
  font-weight: 400;
}
p {
  font-size: var(--font-base);
}
p, li, a {
  font-family: 'Zen Kaku Gothic New', sans-serif;
}
.catch {
  font-size: var(--font-catch);
}

@media (max-width: 767px) {
  body {
    font-size: 1.4em;
    overflow-x: hidden;
  }
}
a:hover {
  opacity: 0.7;
}
*, *:before, *:after {
  box-sizing: border-box;
}
img {
  width: 100%;
}
li {
  list-style: none;
}
a {
  text-decoration: none;
  color: inherit;
}
/* --------------------
    改行の切り替え 
 -------------------- */
.PC-br {
  display: inline;
}
.SP-br {
  display: none;
}
@media (max-width: 767px) {
  .PC-br {
    display: none;
  }
  .SP-br {
    display: inline;
  }
}
/* --------------------
    フォントクラス
 -------------------- */
.shippori-mincho-regular {
  font-family: "Shippori Mincho", serif;
  font-weight: 400;
  font-style: normal;
}
.shippori-mincho-medium {
  font-family: "Shippori Mincho", serif;
  font-weight: 500;
  font-style: normal;
}
.shippori-mincho-semibold {
  font-family: "Shippori Mincho", serif;
  font-weight: 600;
  font-style: normal;
}
.zen-kaku-gothic-new-regular {
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 400;
  font-style: normal;
}
.zen-kaku-gothic-new-medium {
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 500;
  font-style: normal;
}
.cormorant {
  font-family: "Cormorant", serif;
  font-weight: 600;
  font-style: normal;
}
/* --------------------
    ロゴ
 -------------------- */
.header__logo {
  width: 7%;
}
.header__logo::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 50%;
  height: 50%;
  background-image: url("../img/navi-bg.svg");
  background-repeat: no-repeat;
  background-size: contain;
  z-index: -1;
}
@media (min-width: 768px) {
  .header-logo {
    margin: 24px 0 0 125px;
    width: 3em;
    max-width: 77px;
    position: relative;
  }
  body {
    overflow-x: hidden;
  }
  html {
    overflow-x: hidden;
  }
}
/* --------------------
    【SP】_nav
 -------------------- */
.header-nav_pc {
  display: none;
}
.header-nav_sp {
  display: block;
}
/* ナビゲーションのためのCSS */
#g-nav {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background: #EFFDFE;
  z-index: -10000;
  opacity: 0;
  transition: all 0.2s;
  max-width: 100vw;
  overflow-x: hidden;
    overflow-y: auto;
  scroll-behavior: smooth;
}
/*アクティブクラスがついたら透過100%にして最前面へ*/
#g-nav.panelactive {
  opacity: 1;
  z-index: 999;
}
/*ナビゲーションの縦スクロール*/
#g-nav.panelactive #g-nav-list {
  position: relative;
  height: 100vh;
  padding-bottom: 30px;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}
#g-nav-list {
  padding-top: 10%;
  width: 100%;
  max-width: 100vw;
  overflow-x: hidden;
      text-align: center;
}
/*ナビゲーション*/
#g-nav ul {
  z-index: 999;
}
#g-nav.panelactive ul {
  display: block;
}
/*header__menuのレイアウト設定*/
#g-nav li {
  text-align: center;
}
.header__menu {
  text-align: center;
}
#g-nav li a {
  color: var(--color-text);
  line-height: 1.5;
  padding-bottom: 40px;
  display: block;
  text-transform: uppercase;
  letter-spacing: 0.1em;
}
#g-nav li span {
  font-size: 2.2rem;
  color: var(--color-accent-blue)
}
/*infoの設定*/
.header__info {
  display: flex;
  flex-direction: column;
  align-items: flex-start; /* 中身は左揃え */
  justify-content: center;
  margin: 0 auto; /* 中央寄せ */
  text-align: left;
  width: fit-content;
  max-width: 90%;
  padding-bottom: 20px;
      gap: 10px;
}
.header__info a{
  font-family: "Shippori Mincho", serif;
}
.header__info a:hover {
  opacity: 0.6;
}
.info-text-medium {
  font-size: 1.8rem;
  margin-bottom: 4%;
}
.info-text-large {
  font-size: 2rem;
  color: var(--color-accent-gold);
}
/*snsの設定*/
.header__sns {
  display: flex;
  align-items: center;
  gap: 1.2rem;
/*  margin-top: 1.5rem;*/
}
.header__sns a {
  width: 35px;
}
.header__btn {
  text-align: center;
}
.header__cta {
  background-color: var(--color-text);
  color: var(--color-text-invert);
  padding: 5% 20%;
}
/* ボタンのためのCSS ===============*/
.openbtn {
  position: fixed;
  z-index: 9999;
  top: 14px;
  right: 4vw;
  width: 9vw;              /* 最長のラインと余白を含めて設定 */
  height: 48px;
  cursor: pointer;
}

/* 共通設定 */
.openbtn span {
  display: block;
  position: absolute;
  height: 1px;
  background-color: var(--color-accent-blue);
  border-radius: 1px;
  right: 0;                /* ← 右揃え */
  transition: all 0.4s ease;
}

/* 1本目：短め */
.openbtn span:nth-of-type(1) {
  width: 18px;
  top: 12px;
}

/* 2本目：中くらい */
.openbtn span:nth-of-type(2) {
  width: 25px;
  top: 20px;
}

/* 3本目：長め */
.openbtn span:nth-of-type(3) {
  width: 33px;
  top: 28px;
}

/* アクティブ時（×マークに変化） */
.openbtn.active span:nth-of-type(1) {
  top: 22px;
  width: 35px;
  transform: rotate(-45deg);
}

.openbtn.active span:nth-of-type(2) {
  opacity: 0;
}

.openbtn.active span:nth-of-type(3) {
  top: 22px;
  width: 35px;
  transform: rotate(45deg);
}

/* 【PC】_nav ===========================*/
@media (min-width: 1000px) {
  .header-nav_sp {
    display: none;
  }
  .header {
    width: 82%;
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1.5em 0 6em;
  }
  .header-nav_pc {
    display: block;
  }
  .header-gnav_pc_list {
    display: flex;
    text-align: center;
  }
  .header-gnav_pc_list li {
    display: inline-block;
    margin-left: 4em;
    text-decoration: none;
  }
  /* カーソルを置くと下線が伸びる */
  .header-gnav_pc_list li a {
    position: relative;
    font-family: 'Shippori Mincho', serif;
    font-size: var(--font-m);
    color: var(--color-accent-blue);
    line-height: 1;
    display: inline-block; 
    text-align: center;
  }
  .header-gnav_pc_list li a span {
    font-size: var(--font-navi);
    font-family: 'Zen Kaku Gothic New', sans-serif;
    color: var(--color-text);
    line-height: 1;
  }
  .header-gnav_pc_list li.current a, .header-gnav_pc_list li a:hover {
    color: var(--color-accent-blue);
  }
 .header-gnav_pc_list li a::after {
  content: "";
  position: absolute;
  bottom: -0.7em;
  left: 50%;
  transform: translateX(-50%) scaleX(0); /* 中央基準に */
  width: 100%;
  height: 1px;
  background: #00122b;
  transition: transform 0.4s;
  transform-origin: center;
}

  .header-gnav_pc_list li a:hover::after,
.header-gnav_pc_list li.current a::after {
  transform: translateX(-50%) scaleX(1);
}
}
.hero-concept-wrapper {
  width: 100%;
  aspect-ratio: 1440 / 1710; /* 背景画像の比率に合わせて調整 */
  background-image: url("../img/hero-concept-wrapper.svg");
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center top;
  position: absolute;
  z-index: -100;
}

.section-hero {
  background-image: url("../img/hero-highlight-bg.svg");
  background-repeat: no-repeat;
  background-size: 72vw;
  background-position: center;
  position: relative;
}
.hero-wing {
  position: absolute;
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center;
  pointer-events: none;
  z-index: 100;
}
/* 羽1（左下） */
.wing-1 {
  width: 44%;
  height: 58%;
  top: 50%;
  left: -4%;
  background-image: url("../img/hero-wing-under.webp");
}
/* 羽2（右上） */
.wing-2 {
width: 80%;
    height: 48%;
    top: -10%;
    right: 4%;
  background-image: url("../img/story-wing-right.webp");
}
/* 羽3（中央あたり） */
.wing-3 {
width: 21%;
    height: 30%;
    top: 15%;
    left: 36%;
  background-image: url("../img/story-wing-left-1.webp");
}
.hero-inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 5%;
  margin: 0 auto;
  position: relative;
  width: 56%;
  padding: 5em 0;
}
.hero-title {
  font-size: var(--font-hero);
  line-height: 1.8;
  margin-bottom: 2rem;
  color: var(--color-text);
  font-weight: 500;
}
.hero-tagline {
  display: block;
}
.hero-tagline img {
  max-width: 100%;
  height: auto;
  display: block;
}
.hero-visual {
  width: 32%;;
  flex-shrink: 0;
  position: relative;
}
.hero-visual img {
  width: 100%;
  height: auto;
  display: block;
}
.hero-cta {
  position: fixed;
  bottom: 3%;
  right: 5%;
  width: 13.9vw;
  padding-top: 2em;
  aspect-ratio: 1 / 1;
  background-image: url("../img/CTA_circle.svg");
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
  color: var(--color-text-invert);
  font-size: 1.11vw;
  text-align: center;
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: opacity 0.8s ease, transform 0.8s ease;
}
/* フッターに接近したら非表示 */
.hero-cta.hide-footer {
  opacity: 0;
  transform: translateY(20%);
  pointer-events: none;
  visibility: hidden;
  transition:
    opacity 0.5s ease-in-out, visibility 0s linear 0.5s, transform 0.5s ease-in-out;
}


@media (max-width: 768px) {
  .hero-cta {
    display: none;
  }
  .header__logo::before {
    width: 70%;
    height: 50%;
  }
}
@media (min-width: 768px) and (max-width: 1000px) {
  .header__logo {
    width: 10%;
    margin: 10px 0 0 4vw;
  }
}
@media (max-width: 767px) {
  .header__logo {
    width: 14%;
    margin: 10px 0 0 4vw;
  }
}

.hero-cta:hover {
  opacity: 0.8;
}
.concept-inner {
  text-align: center;
  padding: 7.2em 0 12.2em;
}
.concept-lead, .concept-text {
  padding-top: 3.2em;
}
.concept-lead {
  font-size: var(--font-l);
  line-height: 2.2;
  font-family: 'Shippori Mincho', serif;
}
.concept-text {
  padding-bottom: 2em;
}
.section-heading {
  font-size: var(--font-catch);
}
.section-heading span {
  color: var(--color-accent-blue);
  font-size: var(--font-strong);
}
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 1em;
  padding: 1.25em 8.3em 1.25em 4.8em;
  font-size: var(--font-base);
  letter-spacing: 0.1em;
  font-family: 'Shippori Mincho', serif;
  text-decoration: none;
  text-align: center;
  border: none;
  cursor: pointer;
  transition: opacity 0.3s ease;
  position: relative;
}
.btn:hover {
  opacity: 0.8;
}
.btn-primary {
  background-color: #000;
  color: #fff;
}
.btn-primary::after {
  content: "";
  display: inline-block;
  height: 0.6em;
  transition: transform 0.3s ease;
  position: absolute;
  width: 2.2em;
  background: url("../img/arrow.svg") no-repeat;
  background-size: 100% auto;
  right: 4em;
}
.section-heading-wrapper {
  text-align: center;
}
.sub-heading {
  color: var(--color-accent-gold);
  font-family: 'Shippori Mincho', serif;
  font-size: var(--font-base);
}
.section-feature-h2 {
  position: relative;
  color: var(--color-accent-blue);
  margin: 0;
}
.section-feature-h2::before, .section-feature-h2::after {
  content: "";
  display: inline-block;
  width: 18%;
  height: 0.6em;
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center;
}
.section-feature-h2::before {
  background-image: url("../img/border-gold-left.svg");
  margin-right: 0.6em;
}
.section-feature-h2::after {
  background-image: url("../img/border-gold-right.svg");
  margin-left: 0.6em;
}
.feature-grid {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 6.25em;
  margin: 0 auto;
  padding: 6.5em 0 0;
  align-items: center;
  width: 80%;
}
.feature-column {
  display: flex;
  flex-direction: column;
}
.feature-column.left, .feature-column.right {
  gap: 4.5em;
}
.feature-column.center {
  align-items: center;
  text-align: center;
}
.feature-point {
  font-size: var(--font-base);
}
.feature-point h3 {
  font-size: var(--font-m);
  margin: 0.5em 0 0.3em;
}
.product-image img {
  max-width: 100%;
  height: auto;
}
.product-brand {
  font-size: var(--font-l);
  color: var(--color-accent-blue);
  font-family: 'Shippori Mincho', serif;
}
.product-price {
  font-size: var(--font-product-name);
  font-family: 'Shippori Mincho', serif;
  padding-bottom: 1em;
}
.product-link a {
  text-decoration: underline dotted;
  text-underline-offset: 0.8em;
}
.point-label {
  position: relative;
  display: inline-block;
  background-color: #222;
  padding: .4em 6.2em 0.4em 1.2em;
  border-radius: 0;
  font-family: "Shippori Mincho", serif;
  color: #fff;
  z-index: 1;
  line-height: 1;
}
.point-text {
  position: relative;
  z-index: 2;
  font-size: 1.6rem;
  font-weight: 400;
}
.point-number {
  position: absolute;
  top: 50%;
  left: 100%; /* 黒帯の右端に配置 */
  transform: translate(-55%, -74%);
  height: 4.25em;
  z-index: 1;
  pointer-events: none;
}
.cta-center {
  text-align: center;
  padding: 7.5em 0 9.5em;
  background-image: url("../img/feature-cta-bg.webp");
  background-repeat: no-repeat;
  background-size: cover;
  background-position: top center;
  z-index: -1;
}
.cta-center p {
  font-family: 'Shippori Mincho', serif;
  padding-bottom: 2.5em;
  font-size: var(--font-l);
  line-height: 2;
      margin-top: 3em;
}
.section-story-h2 {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.25em;
  color: var(--color-accent-gold);
  position: relative;
}
.section-story-h2 .story-heading {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 1em;
  line-height: 1;
}
.section-story-h2 .story-heading::before, .section-story-h2 .story-heading::after {
  content: "";
  display: inline-block;
  width: 4em;
  height: 0.6em;
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center;
}
.section-story-h2 .story-heading::before {
  background-image: url("../img/border-gold-left.svg");
}
.section-story-h2 .story-heading::after {
  background-image: url("../img/border-gold-right.svg");
}
.sub-heading {
  font-size: var(--font-base);
  color: var(--color-accent-gold);
}
.story-content {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 5.5em;
  padding: 3em 0;
  width: 75%;
  margin: 0 auto;
  flex-wrap: wrap;
}
.story-image, .story-image_second {
  flex: 1 1 42%;
  text-align: center;
}
.story-image figcaption {
  font-size: var(--font-l);
  margin-top: 1em;
  text-align: left;
  font-family: 'Shippori Mincho', serif;
}
.director {
  font-size: var(--font-base);
}
.en-name {
  color: var(--color-sub-blue);
}
.story-text {
  flex: 1 1 38.8%;
}
.story-lead {
  font-size: var(--font-h3);
  line-height: 1.8;
  margin-bottom: 1em;
}
.story-lead span {
  color: var(--color-accent-gold);
}
.story-text p, .story-text_second p {
  line-height: 1.6;
  margin-bottom: 1em;
}
.story-content_second {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8.25em;
  flex-wrap: wrap;
  width: 68.6%;
  margin: 0 auto;
}
.story-text_second {
  flex: 1 1 27%;
}
.story-image_second {
  flex: 1 1 18%;
}
.story-phrase-ja {
  text-align: center;
  color: var(--color-accent-gold);
  line-height: 2;
  font-family: 'Shippori Mincho', serif;
  padding: 2.5em 0 4em;
  font-size: var(--font-catch);
}
.story-phrase-wrapper {
  position: relative;
}
.story-wing {
  position: absolute;
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center;
  width: 30vw;
  height: 70%;
  pointer-events: none;
  z-index: 0;
}
/* 左羽 */
.story-wing.wing-left {
  top: 0;
  left: 6%;
  background-image: url("../img/story-wing-left.webp");
}
/* 右羽 */
.story-wing.wing-right {
  top: 11%;
  right: 6%;
  background-image: url("../img/story-wing-right-1.webp");
}
.story-catch-image {
  width: 80%;
  margin-left: auto;
}
.section-product {
  background: url('../img/product-bg.webp') no-repeat center top;
  background-size: cover;
  padding: 7.5em 0;
}
.product-inner {
  background-color: #fff;
  width: 82%;
  margin: 0 auto;
  padding: 7.25em 9em;
  box-shadow: 0 0 20px rgba(0, 0, 0, 0.05);
}
.product-inner h2 {
  text-align: center;
  color: var(--color-accent-blue);
  line-height: 0.5;
}
.product-inner .sub-heading {
  color: var(--color-text);
}
.product-detail-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 5.5em 0;
  margin: 0 auto;
  flex-wrap: wrap;
  gap: 4em;
}
.product-image-main {
  flex: 1 1 0%;
}
.product-image-main img {
  width: 100%;
  height: auto;
  display: block;
}
.product-detail-top .product-info {
  flex: 1 1 48%;
  max-width: 48%;
  color: var(--color-text);
}
.product-label {
  display: inline-block;
  padding: 0.5em 3em;
  background-color: var(--color-accent-blue);
  color: #fff;
  font-size: var(--font-base);
  margin-bottom: 0.5em;
}
.product-title-en {
  font-family: 'Shippori Mincho', serif;
  font-size: var(--font-l);
  color: var(--color-accent-blue);
}
.product-title-ja {
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: var(--font-product-name);
  font-weight: 400;
  line-height: 1;
  margin-bottom: 0.25em;
}
.product-price small {
  font-size: 0.4em;
}
.product-description {
  font-size: var(--font-base);
  line-height: 1.8;
  padding-top: 1em;
}
.product-detail-bottom {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4em;
  padding-bottom: 4.5em;
  width: 90%;
  margin: 0 auto;
  align-items: center;
}

.product-specs-wrapper {
  display: grid;
  grid-template-columns: 5em 1fr;
  gap: 3em;
  align-items: start;
  padding-bottom: 1.25em;
}
.spec-label {
  font-weight: 600;
  font-size: var(--font-base);
}
.spec-content {
  font-size: var(--font-base);
}
.product-size-table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--font-base);
  margin-top: 0.5rem;
}
.product-size-table th, .product-size-table td {
  border: 1px solid #ccc;
  text-align: center;
}
.spec-label-wrapper {
  display: flex;
  flex-direction: column;
  align-items: flex-start; /* 左寄せ */
}

.spec-label {
  font-size: var(--font-base);
  white-space: nowrap; 
}

 

.product-image-sub {
  flex: 1 1 25%;
}
.product-image-sub img {
  width: 100%;
  height: auto;
  border-radius: 50%;
  object-fit: cover;
  display: block;
}
.product-cta {
  text-align: center;
}
.faq-inner {
  padding: 7.5em 0;
}
.faq-list {
  width: 60%;
  margin: 0 auto;
  padding: 3.5em 2rem;
}
.faq-list details {
  overflow: hidden;
  transition: all 0.3s ease;
  background-color: #fff;
  border-radius: 1.2rem;
  padding: 2rem;
  margin-bottom: 2rem;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.05);
}
.faq-list details:last-of-type {
  margin-bottom: 0;
}
.faq-list p {
  padding: 2em 2em 1.5em 2.5em;
}
.faq-list-question {
  cursor: pointer;
  list-style: none;
  display: flex;
  align-items: center;
  color: var(--color-text);
  position: relative;
  font-size:  var(--font-base);
}
.faq-list-question::-webkit-details-marker {
  display: none;
}
.faq-list-question::before {
  content: "Q";
  font-family: "Cormorant", serif;
  font-size: 2.4rem;
  color: var(--color-accent-gold);
  margin-right: 1em;
}
.faq-list-question::after {
  content: "+";
  font-size: 2.4rem;
  margin-left: auto;
  color: #999;
  transition: transform 0.8s ease;
}
.faq-list details[open] summary::after {
  content: "−";
}
/* アニメーションする答え部分 */
.answer {
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  transition: all 0.8s ease;
}
.faq-list details .answer {
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  transition: max-height 0.6s ease, opacity 0.6s ease;
}
details[open] .answer {
  max-height: 500px; /* 十分に大きい値 */
  opacity: 1;
}
.site-footer {
/*  background-image: url('../img/footer-bg.jpg');
  background-size: cover;
  background-position: center;*/
  color: var(--color-text);
  padding: 6em 0 1em;
  font-size: var(--font-base);
  position: relative;
}
.footer-inner {
  max-width: 1440px;
  margin: 0 auto;
}
.footer-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 82%;
  margin: 0 auto 6.5em;
}
.footer-logo img {
  max-width: 100px;
}
.footer-bottom {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  align-items: flex-end;
  margin: 0 auto 4.6em;
  width: 82%;
}
.footer-info {
  padding-left: 0;
  margin: 0;
}
.footer-info p {
  margin-bottom: 0.8em;
}
.footer-info a {
  display: block;
  margin: 1em 0;
  color: var(--color-text);
  font-family: 'Shippori Mincho', serif;
  transition: opacity 0.3s ease;
}
.footer-info a:hover {
  opacity: 0.6;
}
.info-text-large {
  font-size: 1.8rem;
  color: var(--color-accent-gold);
}
.footer-backtotop {
  position: absolute;
right: 48%;
    bottom: 3em;
}
.footer-backtotop img {
  width: 40px;
  height: 40px;
}
.footer-copy {
  text-align: center;
  font-size: 1.2rem;
  padding-top: 1.5rem;
}
.sp-fixed-cta {
  display: none;
}
@media (max-width: 768px) {
  .hero-concept-wrapper {
    background-image: url("../img/hero-concept-wrapper-sp.svg");
    aspect-ratio: 375 / 1000; /* スマホ用画像の比率に応じてここを調整 */
  }
  .section-hero {
    background-image: url("../img/hero-highlight-bg-sp.svg");
    background-repeat: no-repeat;
    background-size: contain;
    background-position: center 66%;
    margin: 13vh 7vw 5vh;
  }
  .hero-inner {
    width: auto;
    gap: 0;
    justify-content: center;
    padding: 0;
  }
  .hero-title {
    margin: 16vh 0px 0 9vw;
  }
  .hero-tagline {
    width: 30vw;
    margin: 2vh 0px 6vh 9vw;
  }
  .hero-visual {
    width: 29vw;
    margin-bottom: -7em;
  }
  .wing-1 {
    width: 33vw;
    height: 60%;
    top: 69%;
    left: -11%;
  }
  .wing-2 {
    width: 36vw;
    height: 44%;
        top: -16%;
        right: -9%;
  }
  .wing-3 {
    width: 28vw;
    height: 28%;
    top: 11%;
    left: 42%;
  }
  .concept-inner {
    padding: 20% 0;
  }
  .concept-lead, .concept-text {
    padding-top: 8%;
  }
  .btn {
    padding: 1em 4.5em 1em 2.1em;
  }
  .btn-primary::after {
    height: 0.4em;
    width: 1.6em;
    right: 2em;
  }
  .section-feature-h2::before, .section-feature-h2::after {
    width: 11%;
  }
  .section-feature-h2::before {
    background-image: url("../img/border-gold-left-sp.svg");
    margin-right: 0.6em;
  }
  .section-feature-h2::after {
    background-image: url("../img/border-gold-right-sp.svg");
    margin-left: 0.6em;
  }
  .point-number {
    transform: translate(-70%, -74%);
    height: 48px;
  }
  .sub-heading {
    line-height: 1.2;
  }
  .section-product {
    padding: 5em 0;
  }
  .product-inner {
    padding: 3em 1em;
  }
  .product-inner .sub-heading {
    line-height: 2.5;
  }
  .product-detail-top {
    padding: 1.5em 2em;
    gap: 1.5em;
  }
  .product-detail-bottom {
    display: flex; /* gridを上書き */
    flex-direction: column-reverse;
    align-items: center;
    gap: 2rem;
    padding-bottom: 2.5em;
  }
  .product-detail-top .product-info {
    flex: 1 1 100%;
    max-width: 100%;
  }
  .product-specs-wrapper, .product-image-sub {
    max-width: 100%;
    gap: 1.5em;
  }
  .product-detail-top {
    flex-direction: column;
  }
  .product-specs-wrapper {
    order: 2;
    width: 100%;
  }
  .product-image-sub {
    order: 1;
    width: 100%;
    margin-top: 1.5rem;
  }
  .product-image-main, .product-info, .product-specs-wrapper, .product-image-sub {
    flex: 1 1 100%;
            max-width: 360px;
    display: block;
        padding-bottom: 1.5em;
  }
  .product-image{
        padding-bottom: 1em;
            max-width: 450px;
  }
  .product-image-sub img {
    max-width: 80%;
    margin: 0 auto;
  }
  .product-price {
    padding-bottom: 0.5em;
}
  .feature-column.left, .feature-column.right {
    gap: 3em;
}
  .cta-center {
    padding: 3em 0 5em;
  }
  .cta-center p {
    padding-bottom: 1.5em;
  }
  .feature-grid {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 3em;
    width: 90%;
    padding-top: 3em;
  }
    .feature-column {
    width: 100%;
  }
    .product-info,
  .product-price,
  .product-link {
    text-align: center;
  }
  .feature-column.center {
    order: 1;
    padding-bottom: 2em;
  }
  .feature-column.left {
    order: 2;
  }
  .feature-column.right {
    order: 3;
  }
    .spec-label-wrapper {
    flex-direction: row;
    align-items: center; /* テキスト高さを揃える */
    gap: 0.5em; /* 横の余白 */
  }
  .product-spec-material, .product-spec-size {
    flex-direction: column;
    align-items: stretch;
    gap: 0.5em;
  }
  .product-info {
    text-align: center;
  }
  .product-description {
    text-align: left;
  }
  .story-content {
    flex-direction: column;
    align-items: center;
    gap: 1.5em;
    width: 100%;
    padding: 3em 1.5em;
  }
  .story-content_second {
    flex-direction: column;
    align-items: center;
    width: 90%; /* スマホ時に幅を広げたい場合 */
    gap: 1.5em;
  }
  .story-text_second {
    order: 2;
    width: 100%;
  }
  .story-image_second {
    order: 1;
    width: 100%;
    margin-top: 2rem; /* 上との余白 */
            max-width: 400px;
  }
  .story-wing.wing-right, .story-wing.wing-left {
    z-index: -100;
    opacity: 0.6;
  }
  .story-image, .story-image_second {
    max-width: 450px;
}
  .story-phrase-ja {
    padding: 0.5em 0 3em;
  }
  .faq-inner {
    padding: 5em 0;
  }
  .faq-list {
    width: 100%;
    padding: 2.5em 1em 0;
  }
  .faq-list details {
    padding: 1em;
    margin-bottom: 1em;
  }
  .faq-list-question::before {
    margin-right: 0em;
  }
  .faq-list-question {
    gap: 1em;
  }
  .footer-head {
    flex-direction: column;
    align-items: center;
    gap: 2.5rem; /* 要素間の余白 */
    width: 90%;
    margin-bottom: 3em;
  }
  .footer-nav .header-nav_pc {
    display: block;
  }
  .footer-nav ul {
    display: flex;
    flex-direction: column;
    gap: 1.2em;
    align-items: center;
    padding: 0;
    margin: 0;
  }
  .footer-bottom {
    flex-direction: column;
    align-items: center;
    gap: 2.5rem; /* 要素間の余白 */
    width: 90%;
    margin-bottom: 3em;
  }
  .sp-fixed-cta {
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    background-color: var(--color-accent-blue); /* or 任意の色 */
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.8em;
    font-size: var(--font-base);
    padding: 1em;
    text-decoration: none;
    z-index: 9999;
    transform: translateY(100%);
    opacity: 0;
    pointer-events: none;
    visibility: hidden;
    transition: all 0.8s ease;
  }
  .sp-fixed-cta .icon {
    width: 1.6em;
    height: auto;
  }
  .sp-fixed-cta.show {
    transform: translateY(0);
    opacity: 1;
    pointer-events: auto;
    visibility: visible;
  }
  .sp-fixed-cta .arrow {
    font-weight: bold;
    margin-left: 0.4em;
    font-size: 1.2em;
  }
  .sp-fixed-cta.hide {
    opacity: 0;
    pointer-events: none;
    visibility: hidden;
    transform: translateY(100%);
  }
  .footer-backtotop img {
    width: 25px;
    height: 25px;
}
}
@media (max-width: 1200px){
  .product-inner{
    padding: 6em 4em;
  }
  .product-detail-top {
    gap: 2em;
}
}
@media (max-width: 900px){
  .product-inner{
    padding: 4em 0em;
  }
}
@media (max-width: 1000px) and (min-width: 768px) {
    .hero-concept-wrapper {
    background-image: url("../img/hero-concept-wrapper.svg");
    aspect-ratio:  375 / 450; /* スマホ用画像の比率に応じてここを調整 */
  }
  .concept-inner {
    padding: 4.2em 0 9.2em;
}
  .cta-center {
    padding: 2.5em 0 5.5em;
}
.feature-grid {
    gap: 3.25em;
    padding: 5.5em 0 0;
    width: 90%;
}
  .story-content {
    gap: 3.5em;
    padding: 3em 0;
    width: 85%;
}
  .story-content_second {
    gap: 3.25em;
    width: 85%;
}
  .product-detail-top {
    padding: 3.5em 0;
}
  .product-specs-wrapper {
    gap: 1em;
}
  .product-detail-bottom {
    gap: 2em;
}
}
@media (max-width: 768px) and (min-width: 400px) {
      .hero-concept-wrapper {
    background-image: url("../img/hero-concept-wrapper-tb.svg");
    aspect-ratio:  768 / 1425;
  }
    .product-inner{
    padding: 4em 1em;
  }

  .hero-inner {
    width: auto;
    justify-content: center;
  }
  .hero-title {
    margin: 16vh 0px 0 13vw;
  }
  .hero-tagline {
    width: 30vw;
    margin: 2vh 0px 6vh 13vw;
  }
  .hero-visual {
    width: 29vw;
    margin-bottom: -7em;
            max-width: 160px;
  }}
  @media (max-width: 768px) and (min-width: 500px){
  .wing-1 {
        width: 33vw;
        height: 46%;
    top: 72%;
    left: -1%;
  }
  .wing-2 {
width: 33vw;
        height: 40%;
        top: -13%;
        right: 9%;
  }
  .wing-3 {
    width: 28vw;
    height: 28%;
    top: 11%;
    left: 32vw;
  }
}
/* アニメーション定義（ベース） */
@keyframes floatWingA {
  0%, 100% {
    transform: translateY(0) rotate(0deg);
  }
  50% {
    transform: translateY(-15px) rotate(1deg);
  }
}

@keyframes floatWingB {
  0%, 100% {
    transform: translateY(0) rotate(0deg);
  }
  50% {
    transform: translateY(-12px) rotate(-1deg);
  }
}

@keyframes floatWingC {
  0%, 100% {
    transform: translateY(0) rotate(0deg);
  }
  50% {
    transform: translateY(-15px) rotate(2deg);
  }
}
.wing-1 {
  animation: floatWingA 3s ease-in-out infinite;
  animation-delay: 0s;
}

.wing-2 {
  animation: floatWingB 4.5s ease-in-out infinite;
  animation-delay: 0s;
}

.wing-3 {
  animation: floatWingC 4s ease-in-out infinite;
  animation-delay: 0s;
}
@keyframes fadeUp {
  0% {
    opacity: 0;
    transform: translateY(20px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

.hero-text-block,
.hero-visual {
  opacity: 0;
  animation: fadeUp 1.5s ease-out forwards;
}
@keyframes fadeUpPoint {
  0% {
    opacity: 0;
    transform: translateY(30px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

.feature-point {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.5s ease, transform 0.5s ease;
}

.feature-point.active {
  animation: fadeUpPoint 0.8s ease-out forwards;
}



@keyframes fadeUp {
  0% {
    opacity: 0;
    transform: translateY(30px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

/* 共通：初期状態 */
.story-image,
.story-image_second,
.story-catch-image {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.5s ease, transform 0.5s ease;
}

/* アニメーション発動時（各クラスに遅延を指定） */
.story-image.active {
  animation: fadeUp 0.8s ease-out 0s forwards;
}
.story-image_second.active {
  animation: fadeUp 0.8s ease-out 0.3s forwards;
}
.story-catch-image.active {
  animation: fadeUp 0.8s ease-out 0.6s forwards;
}

@keyframes floatWing {
  0%, 100% {
    transform: translateY(0) rotate(0deg);
  }
  50% {
    transform: translateY(-15px) rotate(-2deg);
  }
}

.wing-left {
  animation: floatWing 3s ease-in-out infinite;
  animation-delay: 0s;
}
.wing-right {
  animation: floatWing 4s ease-in-out infinite;
  animation-delay: 0s;
}