/* ---------- Front Page ---------- */

/* ===== FV ===== */
.fv {
  position: relative;
  height: 100svh;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  overflow: hidden;
}

.fv__bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
}

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

/* TOPロゴ（FV内、SPは中央上部、PCは左上） */
.fv__logo {
  position: absolute;
  top: clamp(12px, 2vw, 24px);
  left: 50%;
  transform: translateX(-50%);
  z-index: 5;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  text-decoration: none;
  width: clamp(150px, calc(106.55px + 5.65vw), 215px);
}

.fv__logo-mark {
  width: 100%;
  height: auto;
  display: block;
}

.fv__logo-text {
  width: 100%;
  height: auto;
  display: block;
  margin: 0 auto;
  /* logo-text-sp.png は白なので紫化 */
  filter: brightness(0) saturate(100%) invert(42%) sepia(30%) saturate(1000%) hue-rotate(230deg) brightness(90%) contrast(85%);
}

.fv__content {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  padding: clamp(120px, 28vw, 180px) var(--container-padding) 0;
  width: 100%;
}

.fv__title {
  width: 100%;
  max-width: 500px;
  height: auto;
}

.fv__subtitle {
  width: 70%;
  max-width: 360px;
  height: auto;
}

.fv__lead {
  font-family: var(--font-sans);
  font-weight: 400;
  font-size: clamp(13px, 9.82px + 0.93vw, 17px);
  line-height: 1.6;
  color: var(--color-text);
  text-align: center;
}

/* SP: FV下部（CTA直上）に絶対配置。CTAボタンの高さ（65px）+α分を空ける */
.fv__circle {
  position: absolute;
  left: 0;
  right: 0;
  margin: 0 auto;
  bottom: clamp(60px, 50px + 3vw, 90px);
  z-index: 2;
  width: 100%;
  height: auto;
}

.fv__circle img {
  width: 100%;
  height: auto;
  display: block;
}

/* CTAボタン: SPは非表示、PCのみ表示 */
.fv__cta-wrap {
  display: none;
}

@media (min-width: 769px) {
  .fv__logo {
    left: clamp(16px, 2vw, 32px);
    transform: none;
    align-items: flex-start;
  }

  .fv__logo-text {
    display: none;
  }

  /* PC: 左半分を1ブロックとして縦中央寄せ・等間隔 */
  .fv__main {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    width: 50%;
    display: flex;
    flex-direction: column;
    justify-content: safe center;
    align-items: center;
    gap: min(clamp(4px, calc(-4px + 1.04vw), 16px), 2svh);
    padding: clamp(88px, calc(67px + 2.8vw), 120px) var(--container-padding) clamp(40px, calc(8px + 3vw), 80px) clamp(70px, 5vw + 30px, 140px);
    z-index: 2;
  }

  /* `.fv__content` をフラット化して title/subtitle/lead を fv__main の直接の flex 子要素に */
  .fv__content {
    display: contents;
  }

  .fv__title {
    width: min(clamp(290px, calc(16.08px + 35.62vw), 700px), 62svh);
    max-width: none;
  }

  .fv__subtitle {
    width: min(clamp(140px, calc(-20.34px + 20.85vw), 380px), 35svh);
    max-width: none;
  }

  .fv__lead {
    font-size: clamp(16px, 12.61px + 0.44vw, 22px);
    line-height: 1.8;
    white-space: nowrap;
  }

  /* circle: PC では fv__main の通常 flex 子要素。前後の gap を詰める */
  .fv__circle {
    position: static;
    left: auto;
    right: auto;
    bottom: auto;
    margin: 0;
    margin-top: clamp(-6px, calc(-2.66px - 0.17vw), -4px);
    width: auto;
    display: flex;
    justify-content: center;
  }

  .fv__circle img {
    width: min(clamp(280px, calc(-27.3px + 39.96vw), 740px), 60svh);
    max-width: 100%;
    height: auto;
  }

  /* CTAも通常 flex 子要素として表示。SPメニューと同じ2ボタンを縦並びで */
  .fv__cta-wrap {
    width: 100%;
    max-width: min(clamp(280px, calc(140px + 15vw), 460px), 50svh);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: min(clamp(8px, calc(4px + 0.7vw), 14px), 1.4svh);
    margin-top: clamp(-6px, calc(-2.66px - 0.17vw), -4px);
  }

  /* drawer__cta-btn を FV内で使う際のサイズ調整：5:1 アスペクト比固定 */
  .fv__cta-wrap .drawer__cta-btn {
    max-width: none;
    width: 100%;
    aspect-ratio: 5 / 1;
    height: auto;
    font-size: clamp(15px, calc(7.65px + 0.96vw), 26px);
  }

  /* primary（予約する）は文言が短いため文字を大きめにして間延びを防ぐ */
  .fv__cta-wrap .drawer__cta-btn--primary {
    font-size: clamp(19px, calc(10.31px + 1.13vw), 32px);
  }

  /* 矢印を右端に固定し、2ボタンで左右位置を揃える（文字は中央寄せのまま） */
  .fv__cta-wrap .drawer__cta-arrow {
    position: absolute;
    top: 50%;
    right: clamp(16px, calc(7.98px + 1.04vw), 28px);
    margin-left: 0;
    transform: translateY(calc(-50% + 2px));
  }
}

/* PCタブレット縦長め（3:2以下）: PCサイズ感の85%で aspect 1.6 に */
@media (min-width: 769px) and (max-aspect-ratio: 3/2) {
  .fv {
    height: auto;
    aspect-ratio: 1.6 / 1;
  }

  .fv__main {
    padding: clamp(88px, calc(67px + 2.8vw), 120px) var(--container-padding) clamp(40px, calc(8px + 3vw), 80px);
    gap: clamp(4px, calc(-4px + 1.04vw), 16px);
  }

  .fv__title {
    width: clamp(247px, calc(14.5px + 30.23vw), 595px);
  }

  .fv__subtitle {
    width: clamp(119px, calc(-17.29px + 17.72vw), 323px);
  }

  .fv__lead {
    font-size: clamp(14px, calc(10.72px + 0.37vw), 19px);
  }

  .fv__circle img {
    width: clamp(260px, calc(12.8px + 32.15vw), 630px);
  }

  .fv__cta-wrap {
    max-width: clamp(238px, calc(119px + 12.75vw), 391px);
  }

  .fv__cta-wrap .drawer__cta-btn {
    font-size: clamp(13px, calc(6.5px + 0.82vw), 22px);
  }

  .fv__cta-wrap .drawer__cta-btn--primary {
    font-size: clamp(16px, calc(8.65px + 0.96vw), 27px);
  }
}


/* ===== Cause ===== */
.cause {
  width: 100%;
  background: linear-gradient(137.69deg, #C8A7E9 4.92%, #E1A4D1 122.42%);
  position: relative;
}

.cause__banner {
  position: relative;
}

/* 紫背景とのずれ防止：fade-in の translateY を打ち消し、opacity のみ */
.cause__banner.fade-in,
.cause__banner.fade-in.is-visible {
  transform: none;
}

.cause__banner img {
  width: 100%;
  height: auto;
  display: block;
}

.cause__banner picture {
  display: block;
}

/* bottom-bannerの上部に重なるマスク画像 */
.cause__banner--bottom {
  position: relative;
  margin-top: clamp(-80px, -3vw, -20px);
}

.cause__banner-mask {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 2;
  pointer-events: none;
  line-height: 0;
}

.cause__banner-mask img {
  width: 100%;
  height: auto;
  display: block;
}

.cause__inner {
  margin: 0 auto;
  padding: clamp(8px, 2vw, 28px) var(--container-padding) 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  position: relative;
}

@media (min-width: 769px) {
  .cause__inner {
    padding-bottom: 0;
  }
}

.cause__intro {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: clamp(-16px, -1vw, -4px);
}

.cause__intro-img {
  display: block;
  width: clamp(160px, 28.79px + 38.71vw, 320px);
  height: auto;
}

.cause__intro-img img {
  width: 100%;
  height: auto;
  display: block;
}

@media (min-width: 769px) {
  .cause__intro-img {
    width: clamp(80px, 21vw, 390px);
  }
}

.cause__intro-icon {
  position: absolute;
  top: 50%;
  left: 50%;
  /* somosomo の半分の幅だけ右にずらす + 少し overlap */
  margin-left: clamp(80px, 20.41px + 17.52vw, 155px);
  width: clamp(80px, 32.33px + 14.02vw, 140px);
  height: auto;
  transform: translateY(-65%);
}

@media (min-width: 769px) {
  .cause__intro-icon {
    width: clamp(40px, 7vw, 120px);
    margin-left: clamp(40px, 10.5vw, 195px);
    transform: translateY(-65%);
  }
}

.cause__title {
  margin: clamp(-32px, -4vw, -12px) 0 clamp(16px, 3vw, 28px);
  width: 100%;
}

.cause__title img {
  width: 90%;
  max-width: 600px;
  height: auto;
  display: inline-block;
}

@media (min-width: 769px) {
  .cause__title img {
    width: 100%;
    max-width: 1000px;
  }
}

.cause__lead {
  font-family: var(--font-sans);
  font-weight: 600;
  font-size: clamp(22px, 17.24px + 1.40vw, 28px);
  color: var(--color-white);
  line-height: 1.6;
  margin: 0 0 clamp(20px, 3vw, 32px);
}

.cause__lead em {
  color: #FFFF00;
  font-style: normal;
}

/* SPデフォルト: pc-only非表示 / sp-only表示 */
.cause__lead.pc-only {
  display: none;
}
.cause__lead.sp-only {
  display: block;
  margin-top: 0;
  margin-bottom: 0;
  /* SP: cause__inner の左右paddingを無視して画面端まで広げる */
  margin-left: calc(-1 * var(--container-padding));
  margin-right: calc(-1 * var(--container-padding));
  width: calc(100% + var(--container-padding) * 2);
}

/* SP: keywords + note を画像の下に通常配置（バナーと重なるよう負margin） */
.cause__keywords-wrap {
  position: relative;
  z-index: 5;
  width: 100%;
  margin-top: clamp(0px, 0.5vw, 8px);
  margin-bottom: clamp(-120px, -12vw, -50px);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(8px, 1.64px + 1.87vw, 16px);
}

.cause__keywords {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: clamp(16px, 2.5vw, 36px);
  margin: 0;
  padding: 0;
  list-style: none;
}

.cause__keywords li {
  background: var(--color-white);
  color: var(--color-secondary);
  font-family: var(--font-sans);
  font-weight: 600;
  font-size: clamp(18px, 14.82px + 0.93vw, 22px);
  padding: 0 clamp(8px, 1vw, 18px);
  border-radius: 5px;
  letter-spacing: -0.03em;
  box-shadow: 5px 5px 0px 0px rgba(60, 60, 60, 0.18);
}

.cause__note {
  font-family: var(--font-sans);
  font-weight: 500;
  font-size: clamp(15px, 12.62px + 0.70vw, 18px);
  color: var(--color-white);
  line-height: 1.7;
  margin: 0;
}

/* PC: pc-only表示 / sp-only非表示 + keywords-wrap内の順序入れ替え */
@media (min-width: 769px) {
  .cause__lead.sp-only {
    display: none;
  }

  .cause__lead.pc-only {
    display: block;
  }

  /* PC: keywords → note の順に並び替え */
  .cause__keywords {
    order: 1;
  }
  .cause__note {
    order: 2;
  }

  /* PC: titleのmargin-topを0に戻す + margin-bottomもPC用に縮小 */
  .cause__title {
    margin-top: 0;
    margin-bottom: clamp(4px, 0.8vw, 12px);
  }

  /* PC: keywords-wrap を絶対配置でバナーに被せる */
  .cause__keywords-wrap {
    position: absolute;
    left: 50%;
    bottom: 0;
    margin-top: 0;
    margin-bottom: 0;
    width: max-content;
    max-width: calc(100% - var(--container-padding) * 2);
    transform: translate(-50%, 105%);
    gap: clamp(20px, 6.62px + 1.74vw, 40px);
  }

  /* PC用フォントサイズ（769→1920px で連続スケール） */
  .cause__keywords li {
    font-size: clamp(22px, -11.41px + 4.34vw, 72px);
  }
  .cause__note {
    font-size: clamp(18px, 8.64px + 1.22vw, 32px);
  }
  .cause__lead {
    font-size: clamp(28px, 11.97px + 2.09vw, 52px);
  }
}

/* ===== Solution ===== */
.solution {
  position: relative;
  background: var(--color-white);
  padding: 0 0 clamp(40px, 6vw, 100px);
  text-align: center;
  font-family: var(--font-sans);
}

.solution__arrow {
  display: block;
  width: clamp(112px, 33vw, 200px);
  height: auto;
  margin: -1px auto 0;
}

.solution__title {
  font-family: var(--font-sans);
  font-weight: 700;
  font-size: clamp(24px, 17.65px + 1.87vw, 32px);
  color: var(--color-secondary);
  line-height: 1.5;
  margin: 0 0 clamp(16px, 2vw, 24px);
  padding: clamp(20px, 3vw, 48px) 0 0;
}

.solution__title-decorated {
  position: relative;
  display: inline-block;
  z-index: 1;
}

.solution__title-line {
  position: absolute;
  bottom: -10px;
  left: 0;
  width: 100%;
  height: auto;
  z-index: -1;
}

.solution__title-line img {
  display: block;
  width: 100%;
  height: auto;
}

.solution__subtitle {
  position: relative;
  z-index: 2;
  font-family: var(--font-sans);
  font-weight: 400;
  font-size: clamp(15px, 12.62px + 0.70vw, 18px);
  color: var(--color-text);
  line-height: 1.8;
  margin: 0 auto clamp(24px, 4vw, 56px);
  padding: 0 var(--container-padding);
  width: fit-content;
  text-align: left;
}

.solution__inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 var(--container-padding);
}

.solution__visual {
  position: relative;
  width: 100%;
  margin: clamp(-260px, calc(-80.58px - 23.36vw), -160px) 0 clamp(19px, calc(15.03px + 1.17vw), 24px);
}

.solution__visual picture,
.solution__visual > picture > img {
  display: block;
  width: 100%;
  height: auto;
}

.solution__bubbles {
  position: absolute;
  left: 50%;
  bottom: 0;
  width: 100%;
  height: auto;
  transform: translate(-50%, 12%);
  pointer-events: none;
  z-index: 2;
}

.solution__bubbles.fade-in {
  transform: translate(-50%, calc(12% + 40px));
}

.solution__bubbles.fade-in.is-visible {
  transform: translate(-50%, 12%);
}

.solution__body {
  margin: 0 auto clamp(29px, calc(23.44px + 1.64vw), 36px);
  font-family: var(--font-sans);
  font-weight: 400;
  font-size: clamp(15px, 12.62px + 0.70vw, 18px);
  color: var(--color-text);
  line-height: 1.6;
  text-align: left;
}

.solution__clothes {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: clamp(20px, 3vw, 40px);
  margin: 0 auto;
  padding: clamp(10px, 1.5vw, 12px) clamp(16px, 2.5vw, 32px) clamp(28px, 4vw, 32px);
  background: linear-gradient(137.69deg, #DDC8F1 4.92%, #F7CEED 122.42%);
  border-radius: 5px;
}

.solution__clothes-media {
  display: flex;
  align-items: center;
  position: relative;
  width: calc(100% + clamp(21px, calc(11.47px + 2.80vw), 33px));
  left: clamp(-33px, calc(-11.47px - 2.80vw), -21px);
}

.solution__clothes-img {
  position: relative;
  flex-shrink: 0;
  width: 65%;
  z-index: 2;
}

.solution__clothes-img img {
  width: 100%;
  height: auto;
  display: block;
}

.solution__clothes-badge {
  position: relative;
  flex-shrink: 0;
  width: 38%;
  height: auto;
  aspect-ratio: 1;
  margin-left: -3%;
  background: var(--color-secondary);
  color: var(--color-white);
  font-family: var(--font-sans);
  font-weight: 600;
  font-size: clamp(16px, 12.82px + 0.93vw, 20px);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  line-height: 1.4;
  letter-spacing: 0.05em;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
  z-index: 1;
}

.solution__clothes-text {
  width: 100%;
  font-family: var(--font-sans);
  font-weight: 400;
  font-size: clamp(17px, 14.62px + 0.70vw, 20px);
  color: var(--color-text);
  line-height: 1.6;
  text-align: left;
}

@media (min-width: 540px) and (max-width: 768px) {
  .solution__clothes-media {
    width: 100%;
    max-width: 560px;
    margin-left: auto;
    margin-right: auto;
    left: 0;
  }
}

@media (min-width: 769px) {
  .solution__arrow {
    width: clamp(220px, calc(139.82px + 10.43vw), 340px);
  }

  .solution__title {
    font-size: clamp(36px, 11.93px + 3.13vw, 72px);
    margin-bottom: clamp(20px, 2vw, 32px);
    padding-right: var(--container-padding);
    padding-left: var(--container-padding);
  }

  .solution__subtitle {
    font-size: clamp(18px, 14px + 0.52vw, 24px);
    text-align: center;
    width: auto;
  }

  .solution__visual {
    margin-top: clamp(-150px, calc(0.13px - 7.82vw), -60px);
    margin-bottom: clamp(33px, calc(24.98px + 1.04vw), 45px);
  }

  .solution__bubbles {
    width: 45vw;
    transform: translate(-50%, 15%);
  }

  .solution__bubbles.fade-in {
    transform: translate(-50%, calc(15% + 40px));
  }

  .solution__bubbles.fade-in.is-visible {
    transform: translate(-50%, 15%);
  }

  .solution__body {
    font-size: clamp(18px, 15.32px + 0.35vw, 22px);
    margin-bottom: clamp(50px, calc(37.97px + 1.56vw), 68px);
  }

  .solution__clothes {
    flex-direction: row;
    align-items: center;
    gap: 0;
    padding: clamp(10px, 1.5vw, 24px) clamp(16px, 2.5vw, 32px);
  }

  .solution__clothes-media {
    width: auto;
    left: clamp(-40px, calc(-24.99px - 0.78vw), -31px);
    top: clamp(-6px, calc(0.68px - 0.35vw), -2px);
    flex-shrink: 0;
  }

  .solution__clothes-img {
    width: clamp(260px, calc(166.49px + 12.16vw), 400px);
    margin: clamp(-32px, -2vw, -16px) 0;
  }

  .solution__clothes-img img {
    width: 108%;
    max-width: none;
    margin-left: -4%;
  }

  .solution__clothes-badge {
    width: clamp(165px, calc(50.71px + 14.86vw), 235px);
    height: clamp(165px, calc(50.71px + 14.86vw), 235px);
    font-size: clamp(20px, 11.98px + 1.04vw, 32px);
    margin-left: clamp(-12px, calc(-12.67px + 0.09vw), -11px);
  }

  .solution__clothes-text {
    flex: 1;
    font-size: clamp(20px, 14.66px + 0.70vw, 28px);
    max-width: none;
  }
}

/* ===== Target（40代〜70代） ===== */
.target {
  background: var(--color-white);
  padding: clamp(35px, calc(11.17px + 7.01vw), 65px) 0;
  text-align: center;
  border-style: solid;
  border-width: clamp(7px, calc(1.14px + 1.50vw), 30px);
  border-image-source: linear-gradient(137.69deg, var(--color-purple-bright) 4.92%, var(--color-pink-bright) 122.42%);
  border-image-slice: 1;
}

.target__inner {
  margin: 0 auto;
  padding: 0 10px;
  position: relative;
}

.target__title {
  position: relative;
  display: inline-block;
  font-family: var(--font-sans);
  font-weight: 700;
  font-size: clamp(20px, 13.65px + 1.87vw, 28px);
  color: var(--color-secondary);
  line-height: 1.5;
  padding: 0 clamp(16px, 3vw, 40px);
  margin: 0 0 clamp(32px, 5vw, 56px);
}

.target__title::before,
.target__title::after {
  content: "";
  position: absolute;
  top: 50%;
  width: 2px;
  height: 80%;
  background: var(--color-secondary);
}

.target__title::before {
  left: 0;
  transform: translateY(-50%) rotate(-20deg);
}

.target__title::after {
  right: 0;
  transform: translateY(-50%) rotate(20deg);
}

.target__visual {
  position: relative;
  max-width: 1300px;
  margin: 0 auto clamp(32px, 5vw, 60px);
}

.target__women {
  display: block;
  width: 57vw;
  max-width: 440px;
  height: auto;
  margin: 0 auto;
  position: relative;
  z-index: 2;
}

.target__bubble {
  position: absolute;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  text-align: left;
  font-family: var(--font-sans);
  font-weight: 500;
  font-size: clamp(13px, calc(10.62px + 0.70vw), 16px);
  color: var(--color-text);
  line-height: 1.6;
  border-radius: 50%;
  padding: clamp(16px, 2.5vw, 28px);
  width: clamp(120px, 30vw, 240px);
  height: clamp(120px, 30vw, 240px);
  z-index: 1;
}

.target__bubble em {
  color: var(--color-secondary);
  font-style: normal;
  font-weight: 600;
}

.target__bubble--left {
  background: var(--color-purple-pale);
  top: -5%;
  left: 0;
}

.target__bubble--right {
  background: linear-gradient(137.69deg, var(--color-purple-pale) 4.92%, var(--color-pink-pale) 122.42%);
  bottom: 18%;
  right: 0;
  padding-left: clamp(20px, 4vw, 32px);
}

@media (max-width: 374px) {
  .target__bubble {
    font-size: 12.5px;
  }

  .target__bubble--right {
    padding-left: 28px;
  }
}

.target__bubble-effect {
  position: absolute;
  top: 5%;
  right: -5%;
  width: 25%;
  height: auto;
}

/* 装飾キラキラ */
.target__sparkle {
  position: absolute;
  height: auto;
  z-index: 0;
}

.target__sparkle--top-right {
  width: clamp(30px, 4.5vw, 52px);
  top: 3%;
  right: 12%;
}

.target__sparkle--bottom-left {
  width: clamp(28px, 4vw, 45px);
  bottom: 40%;
  left: 10%;
}

.target__sparkle--bottom-left-sub {
  width: clamp(15px, 2.5vw, 28px);
  bottom: 34%;
  left: 6%;
}

.target__cta {
  margin-top: clamp(24px, 4vw, 48px);
}

.target__cta-link {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  background: linear-gradient(92.46deg, var(--color-white) 0%, var(--color-white) 50%, #FFEAFA 53%, var(--color-primary) 72%);
  background-size: 350% 100%;
  background-position: 0% 0%;
  background-repeat: no-repeat;
  color: var(--color-primary);
  font-family: var(--font-sans);
  font-weight: 500;
  font-size: 16px;
  width: 100%;
  max-width: 250px;
  height: 50px;
  margin: 0 auto;
  border: 2px solid var(--color-primary);
  border-radius: 30px;
  text-decoration: none;
  transition: background-position 0.5s ease, color 0.3s ease;
}

.target__cta-link:hover {
  background-position: 100% 0%;
  color: var(--color-white);
}

.target__cta-arrow {
  position: relative;
  display: inline-block;
  width: 18px;
  height: 12px;
  margin-left: 8px;
}

.target__cta-arrow::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: calc(50% - 1px);
  height: 2px;
  background: currentColor;
}

.target__cta-arrow::before {
  content: "";
  position: absolute;
  right: 0;
  top: calc(50% - 1px);
  width: 9px;
  height: 2px;
  background: currentColor;
  transform: rotate(40deg);
  transform-origin: 100% 50%;
}

@media (min-width: 769px) {
  .target {
    padding: clamp(40px, 6vw, 100px) 0 clamp(60px, 8vw, 120px);
  }

  .target__inner {
    padding: 0 clamp(30px, calc(-96.96px + 16.51vw), 220px);
  }

  .target__women {
    width: clamp(400px, calc(221.59px + 23.20vw), 667px);
    max-width: none;
  }

  .target__title {
    font-size: clamp(36px, 11.93px + 3.13vw, 72px);
  }

  .target__title::before,
  .target__title::after {
    width: 4px;
  }

  .target__bubble {
    font-size: clamp(16px, calc(-0.03px + 2.09vw), 40px);
    width: clamp(220px, calc(51.67px + 21.89vw), 472px);
    height: clamp(220px, calc(51.67px + 21.89vw), 472px);
    padding-left: clamp(20px, 4vw, 56px);
    padding-right: clamp(14px, 3vw, 40px);
  }

  .target__bubble--left {
    top: 2%;
    left: -2%;
  }

  .target__bubble--right {
    bottom: 20%;
    right: -1%;
  }

  .target__bubble-effect {
    top: 10%;
  }

  .target__sparkle--top-right {
    width: clamp(48px, 7vw, 84px);
    top: 4%;
    right: 20%;
  }

  .target__sparkle--bottom-left {
    width: clamp(44px, 6vw, 72px);
    bottom: 41%;
    left: 16%;
  }

  .target__sparkle--bottom-left-sub {
    width: clamp(24px, 3.5vw, 44px);
    bottom: 36%;
    left: 11%;
  }

  .target__cta-link {
    width: 500px;
    max-width: none;
    height: 100px;
    font-size: clamp(16px, calc(7.98px + 1.04vw), 28px);
    border-width: 5px;
    border-radius: 100px;
  }

  .target__cta-arrow {
    width: clamp(20px, calc(9.34px + 1.39vw), 36px);
    height: clamp(14px, calc(8.32px + 0.87vw), 24px);
    margin-left: 14px;
  }

  .target__cta-arrow::before {
    width: clamp(12px, calc(5.99px + 0.78vw), 21px);
  }
}

@media (min-width: 769px) and (max-width: 1024px) {
  .target__bubble--left {
    top: 0;
  }
}

/* ===== Search ===== */
.search {
  background: linear-gradient(137.69deg, #FDFAFF 4.92%, #FFF7FD 122.42%);
  position: relative;
  padding-bottom: clamp(40px, 6vw, 100px);
}

.search__wave {
  display: block;
  width: 100%;
  line-height: 0;
}

.search__wave img {
  display: block;
  width: 100%;
  height: auto;
}

/* セラピスト未登録時のポップアップ（ハンバーガー z-index: 9999 より上） */
.search__popup {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
}

.search__popup[hidden] {
  display: none;
}

.search__popup-overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.4);
  cursor: pointer;
}

.search__popup-box {
  position: relative;
  background: rgba(137, 104, 171, 0.9);
  color: var(--color-white);
  border-radius: 5px;
  padding: clamp(32px, 6vw, 56px) clamp(24px, 5vw, 64px);
  width: clamp(280px, 80vw, 480px);
  aspect-ratio: 300 / 264;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
}


.search__popup-close {
  position: absolute;
  top: 8px;
  right: 12px;
  background: none;
  border: none;
  color: var(--color-white);
  font-size: 24px;
  line-height: 1;
  cursor: pointer;
  padding: 4px 8px;
}

.search__popup-title {
  font-family: var(--font-sans);
  font-weight: 600;
  font-size: clamp(22px, 6.15vw, 40px);
  line-height: 1.5;
  margin: 0 0 clamp(12px, 2vw, 20px);
}

.search__popup-text {
  font-family: var(--font-sans);
  font-weight: 400;
  font-size: clamp(13px, 3.59vw, 22px);
  line-height: 1.6;
  margin: 0 0 clamp(20px, 3vw, 32px);
}

.search__popup-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background: linear-gradient(90deg, var(--color-white) 0%, var(--color-white) 50%, #FFEAFA 53%, var(--color-primary) 72%);
  background-size: 350% 100%;
  background-position: 0% 0%;
  background-repeat: no-repeat;
  background-clip: padding-box;
  color: var(--color-primary);
  font-family: var(--font-sans);
  font-weight: 500;
  font-size: clamp(15px, 4.10vw, 24px);
  width: clamp(220px, 70%, 320px);
  height: clamp(44px, 8vw, 56px);
  border: 2px solid transparent;
  border-radius: 100px;
  text-decoration: none;
  box-shadow: 5px 5px 0px 0px rgba(60, 60, 60, 0.18);
  transition: background-position 0.5s ease, color 0.3s ease, border-color 0.3s ease;
}

@media (min-width: 769px) {
  .search__popup-box {
    width: clamp(360px, 40vw, 600px);
    border-radius: 10px;
  }

  .search__popup-link {
    width: clamp(280px, 22vw, 400px);
    height: clamp(56px, 4vw, 72px);
  }
}

.search__popup-link:hover {
  background-position: 100% 0%;
  color: var(--color-white);
  border-color: var(--color-white);
}

.search__popup-link-icon {
  display: inline-block;
  width: 1em;
  height: 1em;
  background-color: currentColor;
  -webkit-mask-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6'/%3E%3Cpolyline points='15 3 21 3 21 9'/%3E%3Cline x1='10' y1='14' x2='21' y2='3'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6'/%3E%3Cpolyline points='15 3 21 3 21 9'/%3E%3Cline x1='10' y1='14' x2='21' y2='3'/%3E%3C/svg%3E");
  -webkit-mask-size: contain;
  mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
}

/* Wave area with therapist overlay */
.search__wave-zone {
  position: relative;
  z-index: 1;
  width: 100vw;
  margin-left: calc(-50vw + 50%);
  margin-top: clamp(-50px, calc(17.5px - 12.5vw), -25px);
  padding-top: clamp(115px, calc(16.4px + 29vw), 173px);
}

/* 中間帯 540-768: 540で一番下、768で少し上 */
@media (min-width: 540px) {
  .search__wave-zone {
    margin-top: clamp(-50px, calc(-144.72px + 17.54vw), -10px);
    padding-top: clamp(173px, calc(109.06px + 11.84vw), 200px);
  }
}

.search__wave-layer {
  display: block;
  width: 100vw;
  line-height: 0;
}

.search__wave-layer img {
  display: block;
  width: 100%;
  height: auto;
}

.search__wave-layer--top {
  position: absolute;
  bottom: clamp(-148px, calc(36.43px - 23.36vw), -43px);
  left: 0;
  z-index: 2;
  pointer-events: none;
}

.search__wave-layer--bottom {
  position: relative;
  top: clamp(20px, calc(-43.55px + 18.69vw), 100px);
  z-index: 1;
  pointer-events: none;
}

.search__wave-zone .search__recruit {
  position: absolute;
  top: clamp(-30px, calc(5vw - 50px), -10px);
  left: 0;
  right: 0;
  width: 100%;
  z-index: 0;
}

.search__map-area {
  position: relative;
}

.search__inner {
  max-width: 1300px;
  margin: 0 auto;
  padding: clamp(13px, 2.67vw, 40px) var(--container-padding) clamp(40px, 6vw, 80px);
  text-align: center;
}

.search__hero {
  position: relative;
  background: var(--color-secondary);
  padding: clamp(20px, 4vw, 40px) var(--container-padding) clamp(70px, 11vw, 140px);
  text-align: center;
  -webkit-mask-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpath d='M 0 0 L 100 0 L 100 70 Q 50 100, 0 70 Z' fill='black'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpath d='M 0 0 L 100 0 L 100 70 Q 50 100, 0 70 Z' fill='black'/%3E%3C/svg%3E");
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
}

.search__title {
  display: inline-block;
  font-family: var(--font-mincho);
  font-weight: 700;
  font-size: clamp(28px, calc(16.88px + 3.27vw), 42px);
  color: var(--color-white);
  line-height: 1.5;
  margin: 0 0 clamp(8px, 1.2vw, 16px);
}

.search__title-icon {
  position: absolute;
  bottom: clamp(35px, 5.5vw, 70px);
  right: 5%;
  width: clamp(92px, calc(65.11px + 7.91vw), 217px);
  height: auto;
}

.search__lead {
  font-family: var(--font-sans);
  font-weight: 400;
  font-size: clamp(13px, calc(10.63px + 0.70vw), 24px);
  color: var(--color-white);
  margin: 0;
}

/* マップとエリアラベル */
.search__map-wrap {
  position: relative;
  max-width: 620px;
  margin: 0 auto clamp(24px, 4vw, 48px);
}

.search__map {
  display: block;
  width: 100%;
  max-width: 620px;
  margin: 0 auto;
}

.search__map img {
  width: 100%;
  height: auto;
  display: block;
}

.search__regions {
  position: absolute;
  top: 0;
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(10px, 1.7vw, 18px);
  width: clamp(146px, calc(69.64px + 19.58vw), 220px);
}

.search__regions--left {
  top: 12%;
  left: 0;
  z-index: 10;
}

.search__regions--right {
  top: auto;
  bottom: clamp(-10%, calc(-10% + (100vw - 375px) * 5% / 393px), -5%);
  right: 0;
  z-index: 10;
}

.search__regions--right li:first-child {
  grid-column: 2;
}

.search__regions a {
  display: flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: 2px solid var(--color-secondary);
  color: var(--color-secondary);
  font-family: var(--font-sans);
  font-weight: 500;
  font-size: clamp(14px, calc(9.24px + 1.40vw), 20px);
  aspect-ratio: 1 / 1;
  border-radius: 5px;
  transition: background 0.3s ease, color 0.3s ease;
  text-decoration: none;
}

.search__regions a:hover {
  background: var(--color-secondary);
  color: var(--color-white);
}

.search__regions span {
  display: inline-block;
  width: 0.45em;
  height: 0.45em;
  border-top: 0.14em solid currentColor;
  border-right: 0.14em solid currentColor;
  transform: rotate(45deg);
  margin-left: 0.5em;
  vertical-align: middle;
  text-indent: -9999px;
  overflow: hidden;
}

/* セラピスト募集 */
.search__recruit {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(11px, 3.6vw, 36px);
  margin: 0 auto;
  padding: 0 clamp(14px, 4.5vw, 36px);
}

.search__recruit-img {
  width: clamp(144px, 43.2vw, 280px);
  height: auto;
  flex-shrink: 0;
}

.search__recruit-body {
  text-align: left;
  min-width: max-content;
}

.search__recruit-badge {
  position: relative;
  display: inline-block;
  background: none;
  color: var(--color-secondary);
  font-family: var(--font-sans);
  font-weight: 700;
  font-size: clamp(27px, calc(20.65px + 1.87vw), 36px);
  line-height: 1.5;
  letter-spacing: 0.05em;
  padding: 0;
  margin: 0 0 clamp(6px, 1vw, 10px);
  white-space: nowrap;
}

@media (min-width: 769px) {
  .search__recruit-badge {
    font-size: clamp(36px, calc(11.93px + 3.13vw), 72px);
    padding: 0 clamp(16px, 3vw, 40px);
  }

  .search__recruit-badge::before,
  .search__recruit-badge::after {
    content: "";
    position: absolute;
    top: 50%;
    width: 2px;
    height: 60%;
    background: var(--color-secondary);
  }

  .search__recruit-badge::before {
    left: 0;
    transform: translateY(-50%) rotate(-20deg);
  }

  .search__recruit-badge::after {
    right: 0;
    transform: translateY(-50%) rotate(20deg);
  }
}

.search__recruit-text {
  font-family: var(--font-sans);
  font-weight: 500;
  font-size: clamp(16px, calc(13.63px + 0.70vw), 28px);
  color: var(--color-text);
  margin: 0 0 clamp(4px, 0.6vw, 8px);
  white-space: nowrap;
}

.search__recruit-link {
  position: relative;
  z-index: 5;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-family: var(--font-sans);
  font-weight: 500;
  font-size: clamp(14px, calc(10.84px + 0.93vw), 18px);
  color: var(--color-primary);
  text-decoration: none;
  border-bottom: 1px solid currentColor;
  transition: opacity 0.3s ease;
}

.search__recruit-link span {
  display: inline-block;
  width: 1em;
  height: 1em;
  background-color: currentColor;
  -webkit-mask-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6'/%3E%3Cpolyline points='15 3 21 3 21 9'/%3E%3Cline x1='10' y1='14' x2='21' y2='3'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6'/%3E%3Cpolyline points='15 3 21 3 21 9'/%3E%3Cline x1='10' y1='14' x2='21' y2='3'/%3E%3C/svg%3E");
  -webkit-mask-size: contain;
  mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  vertical-align: middle;
  text-indent: -9999px;
  overflow: hidden;
  margin-left: 0.3em;
}

.search__recruit-link:hover {
  opacity: 0.7;
}

/* 下部メッセージ（施術写真背景） */
.search__message {
  position: relative;
  z-index: 2;
}

.search__message-bg {
  position: relative;
  width: 100%;
  line-height: 0;
  margin-top: clamp(-43px, calc(-37.62px - 0.70vw), -40px);
  z-index: 3;
}

.search__message-bg picture img {
  width: 100%;
  height: auto;
  display: block;
}

.search__message-overlay {
  position: absolute;
  top: clamp(60px, 13vw, 120px);
  right: clamp(16px, 4vw, 36px);
  width: 38vw;
  height: auto;
  z-index: 4;
}

.search__message-text {
  position: absolute;
  bottom: clamp(20px, 5vw, 50px);
  left: 0;
  width: 100%;
  padding: 0;
  text-align: center;
  z-index: 4;
}

.search__message-line {
  display: none;
  font-family: var(--font-mincho);
  font-weight: 700;
  font-size: clamp(36px, calc(11.93px + 3.13vw), 72px);
  color: var(--color-text);
  line-height: 1.4;
  margin: 0 0 clamp(4px, 0.8vw, 12px);
  letter-spacing: 0;
}

@media (min-width: 769px) {
  .search__message-line {
    display: block;
  }

  .search__message-text {
    bottom: 0;
    padding: 0 var(--container-padding);
  }
}

.search__message-line em {
  position: relative;
  display: inline-block;
  color: var(--color-secondary);
  font-style: normal;
  background: var(--color-white);
  border-radius: 0;
  padding: 0.1em 0 0.1em 0.2em;
  line-height: 1.2;
}

.search__message-line em::before,
.search__message-line em::after {
  content: '';
  position: absolute;
  width: min(0.6em, 32px);
  height: min(0.6em, 32px);
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center;
}

.search__message-line em::before {
  top: 0;
  left: 0;
  transform: translate(-50%, -50%);
  background-image: url('../../images/top/search/dqm-left.png');
}

.search__message-line em::after {
  bottom: 0;
  right: 0;
  transform: translate(30%, 50%);
  background-image: url('../../images/top/search/dqm-right.png');
}

.search__message-note {
  font-family: var(--font-sans);
  font-weight: 500;
  font-size: clamp(15px, calc(7.86px + 2.10vw), 24px);
  color: var(--color-text);
  line-height: 2;
  margin: clamp(12px, 2vw, 24px) auto 0;
}

.search__message-note-highlight {
  background: var(--color-secondary);
  color: var(--color-white);
  font-style: normal;
  padding: 0;
}

@media (min-width: 769px) {
  .search {
    padding-bottom: clamp(60px, calc(6.55px + 6.95vw), 140px);
  }

  .search__inner {
    padding: 0 var(--container-padding) clamp(40px, 5vw, 80px);
  }

  .search__title {
    position: relative;
    font-size: clamp(36px, 11.93px + 3.13vw, 72px);
  }

  .search__map-wrap {
    max-width: clamp(700px, calc(432.77px + 34.75vw), 1100px);
  }

  .search__map {
    width: clamp(440px, calc(319.73px + 15.64vw), 620px);
    margin: 0 auto;
    position: relative;
    left: clamp(-80px, -4vw, -30px);
  }

  .search__regions {
    width: clamp(220px, calc(158.55px + 7.99vw), 312px);
  }

  .search__regions--left {
    top: 5%;
  }

  .search__regions--right {
    bottom: 5%;
    right: 0;
  }

  .search__regions a {
    border-width: 3px;
    border-radius: 10px;
    padding: clamp(4px, calc(1.33px + 0.35vw), 8px) clamp(8px, calc(2.66px + 0.70vw), 16px);
    font-size: clamp(17px, calc(12.32px + 0.61vw), 24px);
  }

  .search__wave-zone {
    padding-top: clamp(60px, 8vw, 160px);
    margin-top: clamp(20px, calc(13.32px + 0.87vw), 30px);
  }

  .search__wave-layer--top {
    bottom: clamp(-30px, -2vw, -10px);
  }

  .search__wave-layer--bottom {
    top: 0;
  }

  .search__message-bg {
    margin-top: clamp(-340px, -16vw, -60px);
  }

  .search__wave-zone .search__recruit {
    top: clamp(-180px, calc(-46.55px - 6.95vw), -100px);
    left: 50%;
    transform: translateX(-47%);
  }

  .search__hero {
    padding-top: clamp(40px, 5vw, 80px);
  }

  .search__recruit-img {
    width: clamp(160px, calc(39.73px + 15.64vw), 340px);
  }

  .search__recruit {
    gap: clamp(36px, 4vw, 60px);
    transform: none;
    padding: 0;
  }

  .search__recruit-link {
    font-size: clamp(17px, calc(14.63px + 0.70vw), 28px);
  }

  .search__recruit-body {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
  }

  .search__message-note {
    margin-top: clamp(20px, 3vw, 40px);
    font-size: clamp(16px, calc(13.62px + 0.70vw), 28px);
  }

  .search__title-icon {
    top: 100%;
    bottom: auto;
    right: -5%;
    transform: translateY(-50%);
  }
}

/* ===== Care（NUKU momiの腸もみ） ===== */
.care {
  background: linear-gradient(137.69deg, #FDFAFF 4.92%, #FFF7FD 122.42%);
  padding: 0 0 clamp(60px, 8vw, 120px);
}

.care__inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 var(--container-padding);
}

.care__header {
  background: linear-gradient(137.69deg, #C8A7E9 4.92%, #E1A4D1 122.42%);
  color: var(--color-white);
  padding: clamp(16px, 3vw, 28px) var(--container-padding) calc(clamp(28px, 4vw, 50px) + clamp(24px, 3.5vw, 42px));
  text-align: center;
  position: relative;
  width: 100vw;
  margin-left: calc(-50vw + 50%);
  margin-bottom: clamp(16px, 2.5vw, 28px);
  clip-path: polygon(
    0 0,
    100% 0,
    100% calc(100% - clamp(24px, 3.5vw, 42px)),
    calc(50% + clamp(14px, 2vw, 24px)) calc(100% - clamp(24px, 3.5vw, 42px)),
    50% 100%,
    calc(50% - clamp(14px, 2vw, 24px)) calc(100% - clamp(24px, 3.5vw, 42px)),
    0 calc(100% - clamp(24px, 3.5vw, 42px))
  );
}

@media (min-width: 769px) {
  .care__header {
    padding-top: clamp(28px, 4vw, 56px);
    padding-bottom: calc(clamp(40px, 6vw, 72px) + clamp(24px, 3.5vw, 42px));
    margin-bottom: clamp(32px, 5vw, 56px);
  }
}

.care__sub {
  font-family: var(--font-sans);
  font-weight: 400;
  font-size: clamp(22px, calc(17.24px + 1.40vw), 28px);
  color: var(--color-white);
  margin: 0;
}

.care__title {
  font-family: var(--font-sans);
  font-weight: 700;
  font-size: clamp(28px, calc(21.64px + 1.87vw), 36px);
  color: var(--color-white);
  margin: 0;
  line-height: 1.4;
}

/* 2カードグリッド */
.care__cards {
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(32px, 4vw, 48px);
  margin-bottom: clamp(32px, 4vw, 48px);
}

@media (min-width: 769px) {
  .care__cards {
    grid-template-columns: 1fr 1fr;
    gap: clamp(28px, 3vw, 48px);
  }

  .care__sub {
    font-size: clamp(28px, calc(21.31px + 0.87vw), 38px);
  }

  .care__title {
    font-size: clamp(36px, calc(11.93px + 3.13vw), 72px);
  }
}

.care__card,
.care__herb {
  background:
    linear-gradient(var(--color-white), var(--color-white)) padding-box,
    linear-gradient(137.69deg, #C8A7E9 4.92%, #E1A4D1 122.42%) border-box;
  border: 3px solid transparent;
  border-radius: 5px;
  padding: clamp(16px, calc(8.06px + 2.34vw), 26px) clamp(12px, calc(5.64px + 1.87vw), 20px);
  position: relative;
  box-shadow: 0 4px 16px rgba(137, 104, 171, 0.08);
}

@media (min-width: 769px) {
  .care__card,
  .care__herb {
    border-width: 5px;
    border-radius: 10px;
    padding: clamp(13px, calc(7.62px + 0.70vw), 21px);
  }
}

.care__badge,
.care__herb-badge {
  display: inline-block;
  background: var(--color-secondary);
  color: var(--color-white);
  text-align: center;
  font-family: var(--font-sans);
  font-weight: 500;
  font-size: clamp(14px, calc(10.84px + 0.93vw), 18px);
  line-height: 1.4;
  padding: clamp(8px, calc(4.84px + 0.93vw), 12px) clamp(8px, 1.5vw, 14px);
  border-radius: 5px;
  position: absolute;
  top: clamp(28px, 5vw, 40px);
  left: clamp(-20px, -1.5vw, -10px);
  transform: rotate(-7.17deg);
  transform-origin: left center;
  letter-spacing: 0.03em;
}

.care__card:nth-child(2) .care__badge {
  left: auto;
  right: clamp(-20px, -1.5vw, -10px);
  transform: rotate(7.17deg);
  transform-origin: right center;
}

@media (min-width: 769px) {
  .care__badge,
  .care__herb-badge {
    font-size: clamp(18px, calc(16.69px + 0.17vw), 20px);
    padding: clamp(6px, 0.9vw, 10px) clamp(14px, 1vw, 20px);
    top: clamp(6px, 1vw, 12px);
  }

  .care__card:nth-child(2) .care__badge {
    left: clamp(-20px, -1.5vw, -10px);
    right: auto;
    transform: rotate(-7.17deg);
    transform-origin: left center;
  }
}

.care__card-img {
  display: block;
  width: 100%;
  height: auto;
  margin: 0 0 clamp(16px, 2vw, 24px);
  aspect-ratio: 8 / 5;
  object-fit: cover;
}

@media (min-width: 769px) {
  .care__card-img {
    aspect-ratio: 17 / 10;
  }
}

.care__card-title {
  font-family: var(--font-sans);
  font-weight: 600;
  font-size: clamp(19px, calc(15.02px + 1.17vw), 24px);
  color: var(--color-secondary);
  text-align: center;
  margin: 0 calc(-1 * clamp(12px, calc(5.64px + 1.87vw), 20px)) clamp(4px, 0.6vw, 10px);
  letter-spacing: 0.05em;
}

@media (min-width: 769px) {
  .care__card-title {
    font-size: clamp(22px, calc(18.00px + 0.52vw), 28px);
    margin-left: 0;
    margin-right: 0;
  }
}

.care__card-text {
  font-family: var(--font-sans);
  font-weight: 400;
  font-size: clamp(14px, calc(10.84px + 0.93vw), 18px);
  line-height: 1.4;
  color: var(--color-text);
  margin: 0;
  text-align: left;
}

@media (min-width: 769px) {
  .care__card-text {
    font-size: clamp(18px, calc(15.31px + 0.35vw), 22px);
  }
}

/* ハーブ（NUKU CHA） */
.care__herb-body {
  display: flex;
  flex-direction: column;
  gap: clamp(16px, 2.5vw, 32px);
  align-items: center;
  text-align: center;
}

.care__herb-img {
  width: 100%;
  height: auto;
  aspect-ratio: 8 / 5;
  object-fit: cover;
}

@media (min-width: 769px) {
  .care__herb-body {
    flex-direction: row;
    align-items: center;
    text-align: left;
    gap: clamp(24px, 3vw, 40px);
  }

  .care__herb-img {
    flex: 1 1 0;
    width: 100%;
    max-width: 100%;
    aspect-ratio: auto;
  }

  .care__herb-text {
    flex: 1 1 0;
  }
}

.care__herb-title {
  font-family: var(--font-sans);
  font-weight: 600;
  font-size: clamp(17px, calc(11.2px + 1.1vw), 24px);
  color: var(--color-secondary);
  line-height: 1.5;
  margin: 0 0 clamp(4px, 0.6vw, 10px);
  letter-spacing: 0.05em;
  text-align: center;
}

.care__herb-lead {
  font-family: var(--font-sans);
  font-weight: 400;
  font-size: clamp(14px, calc(10.84px + 0.93vw), 18px);
  line-height: 1.7;
  color: var(--color-text);
  margin: 0 0 clamp(12px, 1.5vw, 20px);
  text-align: left;
}

@media (min-width: 769px) {
  .care__herb-lead {
    font-size: clamp(18px, calc(15.31px + 0.35vw), 22px);
  }
}

.care__herb-link {
  display: flex;
  width: 250px;
  height: 50px;
  margin: 0 auto;
  align-items: center;
  justify-content: center;
  gap: 6px;
  background: linear-gradient(92.46deg, var(--color-white) 0%, var(--color-white) 50%, #FFFFB6 53%, var(--color-secondary) 72%);
  background-size: 350% 100%;
  background-position: 0% 0%;
  background-repeat: no-repeat;
  border: 2px solid var(--color-secondary);
  color: var(--color-secondary);
  font-family: var(--font-sans);
  font-weight: 500;
  font-size: 16px;
  padding: 0 20px;
  border-radius: 100px;
  text-decoration: none;
  transition: background-position 0.5s ease, color 0.3s ease;
}

.care__herb-link span {
  display: inline-block;
  width: 1em;
  height: 1em;
  background-color: currentColor;
  -webkit-mask-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6'/%3E%3Cpolyline points='15 3 21 3 21 9'/%3E%3Cline x1='10' y1='14' x2='21' y2='3'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6'/%3E%3Cpolyline points='15 3 21 3 21 9'/%3E%3Cline x1='10' y1='14' x2='21' y2='3'/%3E%3C/svg%3E");
  -webkit-mask-size: contain;
  mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  vertical-align: middle;
  text-indent: -9999px;
  overflow: hidden;
  margin-left: 0.3em;
}

.care__herb-link:hover {
  background-position: 100% 0%;
  color: var(--color-white);
}

/* ===== Merit（内側から整うメリット） ===== */
.merit {
  background: var(--color-white);
  padding: clamp(40px, 6vw, 100px) clamp(18px, calc(-15.36px + 9.81vw), 60px) clamp(60px, 8vw, 120px);
  border-style: solid;
  border-width: clamp(7px, calc(1.14px + 1.50vw), 30px);
  border-image-source: linear-gradient(137.69deg, var(--color-purple-bright) 4.92%, var(--color-pink-bright) 122.42%);
  border-image-slice: 1;
}

@media (min-width: 769px) {
  .merit {
    padding-left: clamp(20px, 4vw, 60px);
    padding-right: clamp(20px, 4vw, 60px);
  }
}

.merit__inner {
  max-width: 1440px;
  margin: 0 auto;
}

.merit__title {
  position: relative;
  display: inline-block;
  font-family: var(--font-sans);
  font-weight: 700;
  font-size: clamp(24px, calc(17.64px + 1.87vw), 32px);
  color: var(--color-secondary);
  line-height: 1.5;
  padding: 0 clamp(24px, calc(14.48px + 2.80vw), 36px);
  margin: 0 0 clamp(32px, 5vw, 56px);
  text-align: center;
}

.merit__title-wrap {
  text-align: center;
}

.merit__title::before,
.merit__title::after {
  content: "";
  position: absolute;
  top: 50%;
  width: 2px;
  height: 80%;
  background: var(--color-secondary);
}

.merit__title::before {
  left: 0;
  transform: translateY(-50%) rotate(-25deg);
}

.merit__title::after {
  right: 0;
  transform: translateY(-50%) rotate(25deg);
}

.merit__title-decorated {
  position: relative;
  display: inline-block;
  z-index: 1;
}

.merit__title-line {
  position: absolute;
  bottom: -4px;
  left: 0;
  width: 100%;
  height: auto;
  z-index: -1;
}

.merit__title-line img {
  display: block;
  width: 100%;
  height: auto;
}

.merit__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: clamp(18px, 3vw, 28px);
}

@media (min-width: 769px) {
  .merit__list {
    grid-template-columns: repeat(4, 1fr);
    row-gap: clamp(28px, 3vw, 48px);
  }

  .merit__title {
    font-size: clamp(36px, 11.93px + 3.13vw, 72px);
    padding-left: clamp(19px, 3.6vw, 48px);
    padding-right: clamp(19px, 3.6vw, 48px);
  }

  .merit__title::before,
  .merit__title::after {
    width: 4px;
    height: 100%;
    top: calc(50% + clamp(2px, calc(-2px + 0.52vw), 8px));
  }
}

.merit__item {
  display: flex;
  flex-direction: column;
  gap: clamp(8px, 1vw, 16px);
}

.merit__img {
  display: block;
  width: 100%;
  aspect-ratio: 14 / 13;
  object-fit: cover;
}

@media (min-width: 769px) {
  .merit__img {
    aspect-ratio: 5 / 4;
  }
}

.merit__label {
  display: block;
  background: var(--color-secondary);
  color: var(--color-white);
  font-family: var(--font-sans);
  font-weight: 500;
  font-size: clamp(14px, calc(11.62px + 0.70vw), 17px);
  padding: clamp(4px, 0.6vw, 7px) clamp(8px, 1vw, 12px);
  border-radius: 30px;
  text-align: center;
  letter-spacing: 0.03em;
}

@media (min-width: 769px) {
  .merit__label {
    font-size: clamp(16px, calc(7.98px + 1.04vw), 28px);
    padding-top: clamp(3px, 0.3vw, 5px);
    padding-bottom: clamp(3px, 0.3vw, 5px);
  }
}

/* ===== Flow（ご利用方法） ===== */
.flow {
  background: var(--color-white);
}

.flow__header {
  background: var(--color-secondary);
  color: var(--color-white);
  padding: clamp(16px, 3vw, 28px) var(--container-padding) clamp(28px, 4vw, 50px);
  text-align: center;
  position: relative;
}

@media (min-width: 769px) {
  .flow__header {
    padding-top: clamp(28px, 4vw, 56px);
    padding-bottom: clamp(40px, 6vw, 72px);
  }
}

.flow__header::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%) translateY(99%);
  width: 0;
  height: 0;
  border-left: clamp(14px, 2vw, 24px) solid transparent;
  border-right: clamp(14px, 2vw, 24px) solid transparent;
  border-top: clamp(24px, 3.5vw, 42px) solid var(--color-secondary);
}

.flow__sub {
  font-family: var(--font-sans);
  font-weight: 400;
  font-size: clamp(22px, calc(17.24px + 1.40vw), 28px);
  margin: 0;
  letter-spacing: 0.05em;
}

.flow__title {
  font-family: var(--font-sans);
  font-weight: 700;
  font-size: clamp(28px, calc(21.64px + 1.87vw), 36px);
  margin: 0;
}

.flow__inner {
  max-width: calc(1100px + 2 * var(--container-padding));
  margin: 0 auto;
  padding: clamp(40px, 5vw, 80px) var(--container-padding) clamp(40px, 6vw, 80px);
}

.flow__steps {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
}

.flow__step {
  display: flex;
  align-items: center;
  gap: 30px;
  padding: clamp(20px, 3vw, 40px) 0;
  border-bottom: 1px solid var(--color-border-light);
}

.flow__step:last-child {
  border-bottom: none;
}

/* #FFF8FA の丸の中にアイコン */
.flow__icon-wrap {
  flex-shrink: 0;
  width: clamp(110px, 30vw, 160px);
  aspect-ratio: 1 / 1;
  border-radius: 50%;
  background: #FFF8FA;
  display: flex;
  align-items: center;
  justify-content: center;
}

@media (min-width: 769px) {
  .flow__icon-wrap {
    width: clamp(140px, calc(47.10px + 12.08vw), 180px);
  }
}

.flow__icon {
  width: 82%;
  height: 82%;
  object-fit: contain;
}

.flow__step:nth-child(3) .flow__icon {
  width: 70%;
  height: 70%;
}

@media (min-width: 769px) {
  .flow__icon {
    width: 72%;
    height: 72%;
  }

  .flow__step:nth-child(3) .flow__icon {
    width: 60%;
    height: 60%;
  }
}

.flow__body {
  flex: 1;
  min-width: 0;
}

.flow__no {
  display: inline-block;
  background: var(--color-secondary);
  color: var(--color-white);
  font-family: "Akshar", var(--font-sans);
  font-weight: 400;
  font-size: clamp(13px, calc(10.62px + 0.70vw), 16px);
  line-height: 1;
  padding: clamp(4px, 0.6vw, 5px) 6px;
  border-radius: 5px;
  margin-bottom: 8px;
  letter-spacing: 0.05em;
}

.flow__step-title {
  font-family: var(--font-sans);
  font-weight: 500;
  font-size: clamp(18px, calc(14.84px + 0.93vw), 22px);
  color: var(--color-primary);
  line-height: 1.5;
  margin: 0 0 8px;
  letter-spacing: 0.03em;
}

.flow__step-text {
  font-family: var(--font-sans);
  font-weight: 400;
  font-size: clamp(13px, calc(10.62px + 0.70vw), 16px);
  line-height: 1.4;
  color: var(--color-text);
  margin: 0;
}

.flow__step-text a {
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.15em;
}

.flow__step-text a:hover {
  opacity: 0.7;
}

@media (min-width: 769px) {
  .flow__sub {
    font-size: clamp(28px, calc(21.31px + 0.87vw), 38px);
  }

  .flow__title {
    font-size: clamp(36px, calc(11.93px + 3.13vw), 72px);
  }

  .flow__no {
    font-size: clamp(16px, calc(14.69px + 0.17vw), 18px);
  }

  .flow__step-title {
    font-size: clamp(22px, calc(18.00px + 0.52vw), 28px);
  }

  .flow__step-text {
    font-size: clamp(16px, calc(13.31px + 0.35vw), 20px);
  }
}

/* ===== Voice（お客様のお声） ===== */
.voice {
  background: linear-gradient(137.69deg, #DDC8F1 4.92%, #F7CEED 122.42%);
  padding: clamp(40px, 6vw, 100px) 0 clamp(60px, 8vw, 120px);
}

.voice__inner {
  max-width: calc(1200px + 2 * var(--container-padding));
  margin: 0 auto;
  padding: 0 var(--container-padding);
}

.voice__title {
  font-family: var(--font-sans);
  font-weight: 700;
  font-size: clamp(26px, calc(21.24px + 1.40vw), 32px);
  color: var(--color-white);
  text-align: center;
  margin: 0 0 clamp(24px, 3.75vw, 42px);
}

@media (min-width: 769px) {
  .voice__title {
    font-size: clamp(44px, calc(32.00px + 1.56vw), 62px);
    margin-bottom: clamp(32px, 5vw, 56px);
  }
}

.voice__slider-wrap {
  position: relative;
}

.voice__slider {
  width: 100%;
  min-width: 0;
  overflow: hidden;
}

.voice__slider .swiper-wrapper {
  align-items: stretch;
}

.voice__slider .swiper-slide {
  height: auto;
  display: flex;
}

.voice__slider .swiper-slide > .voice__card {
  width: 100%;
  flex: 1;
}

/* PC: 3カード横並び（Swiperを使わずgrid）、ナビ完全削除 */
@media (min-width: 769px) {
  .voice__nav {
    display: none !important;
  }

  .voice__slider {
    overflow: visible;
  }

  .voice__slider .swiper-wrapper {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: clamp(11px, 2vw, 27px);
    transform: none !important;
  }

  .voice__slider .swiper-slide {
    width: auto !important;
    height: auto;
  }
}

/* カード */
.voice__card {
  background: var(--color-white);
  border-radius: 5px;
  padding: clamp(28px, calc(20.06px + 2.34vw), 38px) clamp(37px, calc(25.88px + 3.27vw), 51px);
  box-sizing: border-box;
  height: auto;
  box-shadow: 5px 5px 0px 0px rgba(60, 60, 60, 0.18);
  margin-right: 5px;
  margin-bottom: 5px;
  display: flex;
  flex-direction: column;
}

@media (min-width: 769px) {
  .voice__card {
    padding-left: clamp(20px, 2.5vw, 36px);
    padding-right: clamp(20px, 2.5vw, 36px);
  }
}

.voice__card-header {
  display: grid;
  grid-template-columns: 11fr 15fr;
  align-items: start;
  gap: clamp(10px, 1.2vw, 16px);
  margin-bottom: clamp(16px, 2vw, 24px);
  padding-bottom: clamp(12px, 1.5vw, 20px);
  border-bottom: 1px solid var(--color-border-light);
}

@media (min-width: 769px) {
  .voice__card-header {
    grid-template-columns: 11fr 17fr;
  }
}

@media (min-width: 769px) and (max-width: 900px) {
  .voice__card-header {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
  }

  .voice__avatar {
    width: 60%;
    max-width: 120px;
  }

  .voice__profile {
    text-align: center;
    width: 100%;
  }
}

.voice__avatar {
  width: 100%;
  max-width: 150px;
  aspect-ratio: 11 / 15;
  object-fit: cover;
  object-position: center top;
  background: var(--color-bg-gray);
  justify-self: center;
}

.voice__avatar--placeholder {
  display: block;
  background: linear-gradient(135deg, #EFE4F5 0%, #F7CEED 100%);
}

.voice__profile {
  text-align: left;
  min-width: 0;
}

.voice__name {
  font-family: var(--font-sans);
  font-weight: 600;
  font-size: clamp(17px, calc(14.62px + 0.70vw), 20px);
  color: var(--color-text);
  margin: 0 0 4px;
}

@media (min-width: 769px) {
  .voice__name {
    font-size: clamp(20px, calc(18.69px + 0.17vw), 22px);
  }
}

.voice__meta,
.voice__rating,
.voice__course,
.voice__area,
.voice__therapist {
  font-family: var(--font-sans);
  font-weight: 400;
  font-size: clamp(13px, calc(10.62px + 0.70vw), 16px);
  color: var(--color-text);
  margin: 0 0 4px;
}

.voice__meta {
  word-break: keep-all;
  overflow-wrap: normal;
  line-height: 1.3;
}

.voice__therapist {
  line-height: 1.4;
}

.voice__link {
  color: inherit;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
}

.voice__course {
  margin: 0;
}

.voice__stars {
  color: var(--color-secondary);
  letter-spacing: 0.05em;
}

.voice__body {
  font-family: var(--font-sans);
  font-weight: 400;
  font-size: clamp(13px, calc(10.62px + 0.70vw), 16px);
  line-height: 1.4;
  color: var(--color-text);
  margin: 0;
}

@media (min-width: 769px) {
  .voice__meta,
  .voice__rating,
  .voice__course,
  .voice__area,
  .voice__therapist,
  .voice__body {
    font-size: clamp(16px, calc(14.69px + 0.17vw), 18px);
  }

  .voice__therapist {
    line-height: inherit;
  }
}

/* Swiper ナビ（SP用） */
.voice__nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 2;
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  width: clamp(30px, 6vw, 48px);
  display: flex;
  align-items: center;
  justify-content: center;
}

.voice__nav--prev {
  left: 0;
}

.voice__nav--next {
  right: 0;
}

.voice__nav img {
  width: 100%;
  height: auto;
  display: block;
}

.voice__nav--prev img {
  transform: scaleX(-1);
}

/* CTA */
.voice__cta {
  margin-top: clamp(24px, 3.75vw, 42px);
}

@media (min-width: 769px) {
  .voice__cta {
    margin-top: clamp(32px, 5vw, 56px);
  }
}

.voice__cta-link {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  background: linear-gradient(92.46deg, var(--color-white) 0%, var(--color-white) 50%, #FFEAFA 53%, var(--color-primary) 72%);
  background-size: 350% 100%;
  background-position: 0% 0%;
  background-repeat: no-repeat;
  color: var(--color-primary);
  font-family: var(--font-sans);
  font-weight: 500;
  font-size: 16px;
  width: 100%;
  max-width: 250px;
  height: 50px;
  margin: 0 auto;
  border: 2px solid var(--color-primary);
  border-radius: 30px;
  text-decoration: none;
  transition: background-position 0.5s ease, color 0.3s ease;
}

.voice__cta-link:hover {
  background-position: 100% 0%;
  color: var(--color-white);
}

.voice__cta-arrow {
  position: relative;
  display: inline-block;
  width: 18px;
  height: 12px;
  margin-left: 8px;
}

.voice__cta-arrow::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: calc(50% - 1px);
  height: 2px;
  background: currentColor;
}

.voice__cta-arrow::before {
  content: "";
  position: absolute;
  right: 0;
  top: calc(50% - 1px);
  width: 9px;
  height: 2px;
  background: currentColor;
  transform: rotate(40deg);
  transform-origin: 100% 50%;
}

@media (min-width: 769px) {
  .voice__cta-link {
    width: 500px;
    max-width: none;
    height: 100px;
    font-size: clamp(16px, calc(7.98px + 1.04vw), 28px);
    border-width: 5px;
    border-radius: 100px;
  }

  .voice__cta-arrow {
    width: clamp(20px, calc(9.34px + 1.39vw), 36px);
    height: clamp(14px, calc(8.32px + 0.87vw), 24px);
    margin-left: 14px;
  }

  .voice__cta-arrow::before {
    width: clamp(12px, calc(5.99px + 0.78vw), 21px);
  }
}

/* ===== FAQ ===== */
.faq {
  padding: 40px 0;
  background: var(--color-bg-gray);
}

.faq .section-title {
  margin-bottom: 40px;
}

.faq__list {
  max-width: var(--container-width);
  margin: 0 auto;
}

.faq__item {
  background: var(--color-white);
  border-radius: 5px;
  margin-bottom: 12px;
  padding: 0 16px;
}

.faq__question {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 16px 32px 16px 0;
  font-family: var(--font-sans);
  font-weight: 400;
  color: var(--color-secondary);
  cursor: pointer;
  list-style: none;
  position: relative;
}

.faq__q-icon {
  width: clamp(25px, 18.64px + 1.87vw, 33px);
  height: auto;
  flex-shrink: 0;
  margin-top: 2px;
}

.faq__question::-webkit-details-marker {
  display: none;
}

.faq__question::after {
  content: "+";
  position: absolute;
  right: 0;
  top: 2px;
  font-size: 2rem;
  color: var(--color-text);
  font-weight: 300;
}

.faq__item[open] .faq__question::after {
  content: "−";
}

.faq__answer {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  border-top: 1px solid var(--color-border-light);
  padding: 16px 0;
}

.faq__a-icon {
  width: clamp(25px, 18.64px + 1.87vw, 33px);
  height: auto;
  flex-shrink: 0;
  margin-top: 2px;
}

.faq__answer .body-text {
  flex: 1;
}

@media (min-width: 769px) {
  .faq {
    padding: clamp(100px, 66.62px + 4.34vw, 150px) 0;
  }

  .faq__item {
    border-radius: 10px;
    padding: 0 24px;
  }

  .faq__question {
    align-items: center;
    padding: 20px 32px 20px 0;
  }

  .faq__question::after {
    top: 50%;
    transform: translateY(-50%);
  }

  .faq__q-icon {
    margin-top: 0;
  }

  .faq__q-icon,
  .faq__a-icon {
    width: clamp(30px, 26px + 0.52vw, 36px);
  }
}


/* Detox セクション（最後のセクション） */
.detox {
  position: relative;
  width: 100%;
}

.detox__bg {
  display: block;
  width: 100%;
  height: auto;
}

.detox__bg img {
  display: block;
  width: 100%;
  height: auto;
}

.detox__title {
  position: absolute;
  top: clamp(40px, 14vw, 240px);
  left: 7.69vw;
  z-index: 1;
  margin: 0;
}

.detox__body {
  position: absolute;
  bottom: clamp(40px, 8vw, 100px);
  left: 0;
  right: 0;
  z-index: 1;
  text-align: center;
  padding: 0 var(--container-padding);
}

.detox__title-img {
  display: block;
  width: 24.62vw;
  height: auto;
  max-width: 100%;
}

@media (min-width: 769px) {
  .detox {
    --detox-title-w: 13.02vw;
  }

  .detox__title {
    left: 21.35vw;
    top: calc(var(--detox-title-w) * 0.65);
  }

  .detox__title-img {
    width: var(--detox-title-w);
  }

  .detox__body {
    left: 0;
    right: 0;
    margin: 0 auto;
    bottom: clamp(30px, calc(-83.58px + 14.77vw), 200px);
    text-align: center;
    padding: 0;
    width: max-content;
    max-width: 100vw;
  }

}

.detox__highlight {
  background: var(--color-secondary);
  color: var(--color-white);
  padding: 0 0.3em;
}

.detox__lead {
  font-family: var(--font-sans);
  font-weight: 400;
  font-size: clamp(14px, 4.10vw, 32px);
  line-height: 2;
  color: var(--color-text);
  margin-bottom: 16px;
}

.detox__catch {
  font-family: var(--font-sans);
  font-weight: 700;
  font-size: clamp(20px, 6.15vw, 48px);
  line-height: 1.6;
  color: var(--color-secondary);
}

@media (min-width: 769px) {
  .detox__lead {
    font-size: clamp(18px, calc(8.62px + 1.22vw), 32px);
    margin-bottom: clamp(16px, calc(-18.76px + 4.52vw), 68px);
  }

  .detox__catch {
    font-size: clamp(26px, calc(15.31px + 1.39vw), 42px);
  }
}

