@charset "UTF-8";
@import url('https://fonts.googleapis.com/css2?family=Zen+Kaku+Gothic+New:wght@400;500;700&family=Zen+Maru+Gothic:wght@400;500;700&display=swap');

/* ==========================================================================
   リセット
   ========================================================================== */

*,
*::before,
*::after {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  margin: 0;
  padding: 0;
}

ul,
ol {
  list-style: none;
}

table {
  border-collapse: collapse;
}

section {
  width: 100%;
  padding: 0;
  margin: 0;
}

html {
  scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
}

main {
  overflow-x: hidden;
}

body {
  display: block;
  width: 100%;
  overflow-x: hidden;
  font-weight: normal;
}

a {
  text-decoration: none;
  color: inherit;
  opacity: 1;
  transition: opacity 0.3s ease;
}

a:hover {
  opacity: 0.8;
}

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

/* ==========================================================================
      　表示制御用css
      ========================================================================== */

.link-none {
  pointer-events: none;
}

@media screen and (max-width: 767px) {
  .pc {
    display: none !important;
  }
}

@media screen and (min-width: 768px) {
  .sp {
    display: none !important;
  }
}

.invisible-block {
  display: none !important;
}

/* ==========================================================================
      　ベース設定
      ========================================================================== */

.helmet-lp-body {
  background: var(--body-background-color);
  color: var(--body-text-color);
  font-family: var(--font-gothic);
  letter-spacing: var(--body-letter-spacing);
  font-size: var(--body-font-size);
  line-height: var(--body-line-height-pc);
}

@media screen and (max-width: 767px) {
  .helmet-lp-body {
    font-size: var(--body-font-size-sp);
    line-height: var(--body-line-height-sp);
  }
}

.section-inner {
  width: 100%;
  max-width: var(--section-inner-width);
  height: 100%;
  margin: 0 auto;
  padding: 0 var(--page-lr-space);
  box-sizing: border-box;
}

@media screen and (max-width: 767px) {
  .section-inner {
    padding: 0 var(--page-lr-space-sp);
  }
}

.section-inner-large {
  width: 100%;
  max-width: 1600px;
  height: 100%;
  margin: 0 auto;
  padding: 0;
  box-sizing: border-box;
}

.section-inner-infinity {
  width: 100%;
  max-width: none;
  height: 100%;
  margin: 0 auto;
  padding: 0;
  box-sizing: border-box;
}

/* ==========================================================================
   ヘルメット治療LP (helmet-lp.php) 用スタイル
   ========================================================================== */

:root {
  --page-lr-space: min(98px, 7vw);
  --page-lr-space-sp: 4.6vw;
  --body-font-size: min(1.24vw, 17px);
  --body-font-size-sp: 3.73vw;
  --section-inner-width: 1400px;
  --radius-full: 9999px;
  /* common.css に依存しない LP 用のベース変数 */
  --body-background-color: #ffffff;
  --body-text-color: #4f4f4f;
  --font-gothic: "Zen Kaku Gothic New", sans-serif;
  --body-letter-spacing: 0.1em;
  --body-line-height-pc: 1.8;
  --body-line-height-sp: 1.5;
  --helmet-color-primary: #8e694a;
  --helmet-color-border: #a48469;
  --helmet-color-text-vertical: #7e7171;
  --helmet-bg-color: #faf5ea;
  --helmet-white: #ffffff;
  --helmet-font-gothic: "Zen Kaku Gothic New", sans-serif;
  --helmet-font-maru: "Zen Maru Gothic", sans-serif;
  /* FV アニメーション用（滑らかさ重視のイージング） */
  --helmet-ease-fade: cubic-bezier(0.25, 0.1, 0.25, 1);
  --helmet-ease-pop: cubic-bezier(0.34, 1.2, 0.64, 1);
  --helmet-ease-char: cubic-bezier(0.22, 0.98, 0.36, 1);
  --helmet-duration-fade: 1.2s;
  --helmet-duration-pop: 0.5s;
  --helmet-title-char-bg: #B6957B;
  /* 監修者セクション用 */
  --helmet-doctor-text: #4f4f4f;
  --helmet-doctor-list: #3a3d4b;
  --helmet-doctor-name-bg: #e3ac9a;
  --helmet-doctor-history-bg: #eed798;
  --helmet-doctor-history-header: #dcbb60;
  --helmet-doctor-license-bg: #c4d79c;
  --helmet-doctor-license-header: #9aae6e;
  /* CTAセクション用 */
  --helmet-cta-inner-bg: #f4dcbb;
  --helmet-cta-tel-bg: #5a5a5a;
  --helmet-cta-web-bg: #e28423;
  --helmet-cta-line-bg: #06c755;
  --helmet-cta-line-lead: #1ca755;
  --helmet-cta-payment-bg: #edbc84;
  --helmet-trouble-item-bg: #bab5ac;
  --helmet-about-sub-highlight: rgba(236, 194, 101, 0.3);
  --helmet-cta-text-secondary: #5a5a5a;
  --helmet-cta-doctor-dark: #222222;
}

/* ==========================================================================
   全セクション共通アニメーション
   ========================================================================== */

/* ① 下から上にふわっと浮かび上がる（スクロールで発火） */
.anim-fade-up {
  opacity: 0;
  transform: translate3d(0, 24px, 0);
  will-change: transform, opacity;
}
section.is-inview .anim-fade-up {
  animation: animFadeUp 0.5s var(--helmet-ease-fade) both;
}

@keyframes animFadeUp {
  from {
    opacity: 0;
    transform: translate3d(0, 24px, 0);
  }
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

/* ② 右から左にふわっと浮かび上がる（スクロールで発火） */
.anim-fade-from-right {
  opacity: 0;
  transform: translate3d(24px, 0, 0);
  will-change: transform, opacity;
}
section.is-inview .anim-fade-from-right {
  animation: animFadeFromRight 0.8s var(--helmet-ease-fade) both;
}

@keyframes animFadeFromRight {
  from {
    opacity: 0;
    transform: translate3d(24px, 0, 0);
  }
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

/* ③ 小さい状態から1.2倍まで拡大し、本来のサイズに戻るポヨンとしたアニメーション（スクロールで発火） */
.anim-pop-in {
  opacity: 0;
  transform: scale3d(0.7, 0.7, 1);
  transform-origin: center center;
  will-change: transform, opacity;
}
section.is-inview .anim-pop-in {
  animation: animPopIn 0.85s linear both;
}

@keyframes animPopIn {
  0% {
    opacity: 0;
    transform: scale3d(0.7, 0.7, 1);
  }
  2% {
    opacity: 1;
    transform: scale3d(0.73, 0.73, 1);
  }
  5% {
    transform: scale3d(0.78, 0.78, 1);
  }
  8% {
    transform: scale3d(0.83, 0.83, 1);
  }
  11% {
    transform: scale3d(0.88, 0.88, 1);
  }
  14% {
    transform: scale3d(0.93, 0.93, 1);
  }
  18% {
    transform: scale3d(0.98, 0.98, 1);
  }
  22% {
    transform: scale3d(1.03, 1.03, 1);
  }
  26% {
    transform: scale3d(1.07, 1.07, 1);
  }
  30% {
    transform: scale3d(1.11, 1.11, 1);
  }
  35% {
    transform: scale3d(1.15, 1.15, 1);
  }
  40% {
    transform: scale3d(1.18, 1.18, 1);
  }
  45% {
    transform: scale3d(1.2, 1.2, 1);
  }
  50% {
    transform: scale3d(1.2, 1.2, 1);
  }
  55% {
    transform: scale3d(1.17, 1.17, 1);
  }
  60% {
    transform: scale3d(1.13, 1.13, 1);
  }
  65% {
    transform: scale3d(1.09, 1.09, 1);
  }
  70% {
    transform: scale3d(1.05, 1.05, 1);
  }
  75% {
    transform: scale3d(1.03, 1.03, 1);
  }
  80% {
    transform: scale3d(1.02, 1.02, 1);
  }
  85% {
    transform: scale3d(1.01, 1.01, 1);
  }
  90% {
    transform: scale3d(1.005, 1.005, 1);
  }
  95% {
    transform: scale3d(1.002, 1.002, 1);
  }
  100% {
    opacity: 1;
    transform: scale3d(1, 1, 1);
  }
}

/* ③' 最大1.1倍のポヨン（CTAボタン用） */
@keyframes animPopIn11 {
  0% {
    opacity: 0;
    transform: scale3d(0.7, 0.7, 1);
  }
  2% {
    opacity: 1;
    transform: scale3d(0.73, 0.73, 1);
  }
  5% {
    transform: scale3d(0.78, 0.78, 1);
  }
  8% {
    transform: scale3d(0.83, 0.83, 1);
  }
  11% {
    transform: scale3d(0.88, 0.88, 1);
  }
  14% {
    transform: scale3d(0.93, 0.93, 1);
  }
  18% {
    transform: scale3d(0.98, 0.98, 1);
  }
  22% {
    transform: scale3d(1.015, 1.015, 1);
  }
  26% {
    transform: scale3d(1.035, 1.035, 1);
  }
  30% {
    transform: scale3d(1.055, 1.055, 1);
  }
  35% {
    transform: scale3d(1.075, 1.075, 1);
  }
  40% {
    transform: scale3d(1.09, 1.09, 1);
  }
  45% {
    transform: scale3d(1.1, 1.1, 1);
  }
  50% {
    transform: scale3d(1.1, 1.1, 1);
  }
  55% {
    transform: scale3d(1.085, 1.085, 1);
  }
  60% {
    transform: scale3d(1.065, 1.065, 1);
  }
  65% {
    transform: scale3d(1.045, 1.045, 1);
  }
  70% {
    transform: scale3d(1.025, 1.025, 1);
  }
  75% {
    transform: scale3d(1.015, 1.015, 1);
  }
  80% {
    transform: scale3d(1.01, 1.01, 1);
  }
  85% {
    transform: scale3d(1.005, 1.005, 1);
  }
  90% {
    transform: scale3d(1.002, 1.002, 1);
  }
  95% {
    transform: scale3d(1.001, 1.001, 1);
  }
  100% {
    opacity: 1;
    transform: scale3d(1, 1, 1);
  }
}

/* ==========================================================================
   ベース設定
   ========================================================================== */
.lp-helmet {
  font-family: var(--helmet-font-gothic);
}

/* 共通セクションヘッダー
   ========================================================================== */
.helmet-section-header {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: min(18.667px, 1.333vw);
  margin-bottom: min(28px, 2vw);
  text-align: left;
}

.helmet-section-header__image {
  width: min(116.667px, 8.333vw);
  height: min(116.667px, 8.333vw);
  flex-shrink: 0;
  overflow: hidden;
}

.helmet-section-header__title {
  font-size: min(28px, 2vw);
  font-weight: 700;
  margin-top: min(18.667px, 1.333vw);
  color: var(--helmet-color-primary);
  line-height: 1.5;
  letter-spacing: 0.1em;
  opacity: 0;
  transform: translate3d(0, 24px, 0);
  will-change: transform, opacity;
}
section.is-inview .helmet-section-header__title {
  animation: animFadeUp 0.5s var(--helmet-ease-fade) both;
}

.helmet-section-header__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 0;
}

/* セクションヘッダー画像：四角→丸アニメーション（スクロールで発火） */
.helmet-section-header__image img.is-animated {
  will-change: border-radius;
}
section.is-inview .helmet-section-header__image img.is-animated {
  animation: sectionHeaderImageRound 0.6s var(--helmet-ease-fade) forwards;
}
/* #helmet-about はブロック単位で監視するため、inner-wrap 内のヘッダーもここで発火 */
#helmet-about .helmet-about__inner-wrap.is-inview .helmet-section-header__title {
  animation: animFadeUp 0.5s var(--helmet-ease-fade) both;
}
#helmet-about .helmet-about__inner-wrap.is-inview .helmet-section-header__image img.is-animated {
  animation: sectionHeaderImageRound 0.6s var(--helmet-ease-fade) forwards;
}
/* #helmet-doctor はブロック単位で監視するため、ヘッダーは .helmet-section-header.is-inview で発火 */
#helmet-doctor .helmet-section-header.is-inview .helmet-section-header__title {
  animation: animFadeUp 0.5s var(--helmet-ease-fade) both;
}
/* #helmet-timing, #helmet-mechanism はブロック単位で監視するため、ヘッダーは .helmet-section-header.is-inview で発火 */
#helmet-timing .helmet-section-header.is-inview .helmet-section-header__title,
#helmet-mechanism .helmet-section-header.is-inview .helmet-section-header__title {
  animation: animFadeUp 0.5s var(--helmet-ease-fade) both;
}
#helmet-timing .helmet-section-header.is-inview .helmet-section-header__image img.is-animated,
#helmet-mechanism .helmet-section-header.is-inview .helmet-section-header__image img.is-animated {
  animation: sectionHeaderImageRound 0.6s var(--helmet-ease-fade) forwards;
}

@keyframes sectionHeaderImageRound {
  from {
    border-radius: 0;
  }
  to {
    border-radius: 50%;
  }
}

@media screen and (max-width: 767px) {
  .helmet-section-header {
    flex-direction: column;
    text-align: center;
    gap: 4.267vw; /* 16px */
    margin-bottom: 6.4vw; /* 24px */
  }

  .helmet-section-header__image {
    width: 26.667vw; /* 100px */
    height: 26.667vw; /* 100px */
  }

  .helmet-section-header__title {
    font-size: 5.333vw; /* 20px */
    margin-top: 4.267vw; /* 16px */
  }
}

/* FVセクション (#helmet-fv)
   ========================================================================== */
#helmet-fv {
  background-image: url("../img/lp-helmet-fv-bg.webp");
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
  position: relative;
  overflow: hidden;
  width: 100%;
}

#helmet-fv .helmet-fv__inner {
  max-width: 1600px;
  position: relative;
  padding-top: min(20px, 1.429vw); /* 1400px 基準 */
  padding-bottom: min(70px, 5vw); /* figma 60px * 1400/1200 = 70px */
}

#helmet-fv .helmet-fv__copy {
  position: relative;
  z-index: 2;
  width: 60%;
  margin-top: min(98px, 7vw);
  margin-bottom: min(84px, 6vw);
}

#helmet-fv .helmet-fv__copy-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: min(6px, 0.429vw);
  margin-bottom: min(16px, 1.143vw);
  padding: min(8px, 0.571vw) min(24px, 1.714vw);
  background-color: var(--helmet-white);
  border-radius: min(100px, 50vw);
  box-sizing: border-box;
}

#helmet-fv .helmet-fv__copy-badge-frame {
  flex-shrink: 0;
  display: block;
  width: min(13.396px, 0.957vw);
  height: min(16px, 1.143vw);
}

#helmet-fv .helmet-fv__copy-badge-text {
  margin: 0;
  color: #e28423;
  font-family: var(--helmet-font-gothic);
  font-size: min(18px, 1.286vw);
  font-weight: 500;
  letter-spacing: 0.04em;
  line-height: 1.6;
  text-align: center;
  white-space: nowrap;
}

#helmet-fv .helmet-fv__sub-title {
  margin-left: 6px;
  color: var(--helmet-color-primary);
  font-family: var(--helmet-font-gothic);
  font-size: min(30.333px, 2.167vw);
  font-weight: 500;
  letter-spacing: 0.04em;
  line-height: 1.6;
  margin-bottom: min(15.167px, 1.083vw);
}

/* FV サブタイトル・タイトルテキスト：登場アニメーション（上からふわっと） 1番目（同時） */
#helmet-fv .helmet-fv__copy-badge.fadeFromTop,
#helmet-fv .helmet-fv__sub-title.fadeFromTop,
#helmet-fv .helmet-fv__title-text.fadeFromTop {
  will-change: transform, opacity;
  animation-name: fadeFromTopAnime;
  animation-duration: var(--helmet-duration-fade);
  animation-timing-function: var(--helmet-ease-fade);
  animation-fill-mode: forwards;
  animation-delay: 0s;
  opacity: 0;
}

@keyframes fadeFromTopAnime {
  from {
    opacity: 0;
    transform: translate3d(0, -24px, 0);
  }
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

#helmet-fv .helmet-fv__title {
  color: var(--helmet-color-primary);
  font-family: var(--helmet-font-gothic);
  font-size: min(49px, 3.5vw);
  font-weight: 500;
  letter-spacing: 0.04em;
  line-height: 1.6;
}

#helmet-fv .helmet-fv__title-text {
  display: block;
  margin-bottom: min(24px, 2vw);
}

#helmet-fv .helmet-fv__title-highlight {
  color: var(--helmet-white);
  display: flex;
  gap: min(7px, 0.5vw);
}

#helmet-fv .helmet-fv__title-char {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  width: min(93.333px, 6.667vw);
  aspect-ratio: 1;
  background-color: var(--helmet-title-char-bg);
  border-radius: min(14px, 1vw);
}

/* FV タイトル文字：順番にぽこっと登場 */
#helmet-fv .helmet-fv__title-highlight.popup.is-animated .helmet-fv__title-char {
  opacity: 0;
  will-change: transform, opacity;
  animation: titleCharPopup 0.9s var(--helmet-ease-char) both;
}

/* 1番目（同時）：タイトル文字（順番にぽこっと） */
#helmet-fv .helmet-fv__title-highlight.popup.is-animated .helmet-fv__title-char:nth-child(1) { animation-delay: 0s; }
#helmet-fv .helmet-fv__title-highlight.popup.is-animated .helmet-fv__title-char:nth-child(2) { animation-delay: 0.1s; }
#helmet-fv .helmet-fv__title-highlight.popup.is-animated .helmet-fv__title-char:nth-child(3) { animation-delay: 0.2s; }
#helmet-fv .helmet-fv__title-highlight.popup.is-animated .helmet-fv__title-char:nth-child(4) { animation-delay: 0.3s; }
#helmet-fv .helmet-fv__title-highlight.popup.is-animated .helmet-fv__title-char:nth-child(5) { animation-delay: 0.4s; }
#helmet-fv .helmet-fv__title-highlight.popup.is-animated .helmet-fv__title-char:nth-child(6) { animation-delay: 0.5s; }
#helmet-fv .helmet-fv__title-highlight.popup.is-animated .helmet-fv__title-char:nth-child(7) { animation-delay: 0.6s; }

@keyframes titleCharPopup {
  0% {
    transform: translate3d(0, 28px, 0) scale3d(0.88, 0.88, 1);
    opacity: 0;
  }
  80%,
  100% {
    opacity: 1;
  }
  100% {
    transform: translate3d(0, 0, 0) scale3d(1, 1, 1);
  }
}

#helmet-fv .helmet-fv__main-image {
  position: absolute;
  right: 0;
  top: min(80px, 5.714vw); /* 1400px 基準 */
  width: min(563.5px, 40.25vw);
  height: min(499.333px, 35.667vw);
  border-bottom-left-radius: min(116.667px, 8.333vw);
  overflow: hidden;
  background-color: var(--helmet-white);
}

/* FV メイン画像：登場アニメーション（右から） 1番目（同時） */
#helmet-fv .helmet-fv__main-image.fadeUp {
  will-change: transform, opacity;
  animation-name: fadeUpAnime;
  animation-duration: var(--helmet-duration-fade);
  animation-timing-function: var(--helmet-ease-fade);
  animation-fill-mode: forwards;
  animation-delay: 0s;
  opacity: 0;
}

@keyframes fadeUpAnime {
  from {
    opacity: 0;
    transform: translate3d(24px, 0, 0);
  }
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

#helmet-fv .helmet-fv__main-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

#helmet-fv .helmet-fv__vertical-text {
  position: absolute;
  right: min(51.333px, 3.667vw);
  top: min(163.333px, 11.667vw);
  margin: 0;
  writing-mode: vertical-rl;
  color: var(--helmet-color-text-vertical);
  font-family: var(--helmet-font-maru);
  font-size: min(23.333px, 1.667vw);
  font-weight: 500;
  letter-spacing: 0.14em;
  line-height: 1.2;
  z-index: 3;
  display: flex;
  flex-direction: column;
  gap: min(14px, 1vw);
}

#helmet-fv .helmet-fv__vertical-text .helmet-fv__vertical-line {
  margin: 0;
}

#helmet-fv .helmet-fv__vertical-text .helmet-fv__vertical-line:last-child {
  margin-top: min(94.5px, 6.75vw);
}

/* FV 縦書きテキスト：登場アニメーション（右からふわっと） 5番目 */
#helmet-fv .helmet-fv__vertical-text.fadeFromRight {
  will-change: transform, opacity;
  animation-name: fadeFromRightAnime;
  animation-duration: var(--helmet-duration-fade);
  animation-timing-function: var(--helmet-ease-fade);
  animation-fill-mode: forwards;
  animation-delay: 0.7s;
  opacity: 0;
}

@keyframes fadeFromRightAnime {
  from {
    opacity: 0;
    transform: translate3d(24px, 0, 0);
  }
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

#helmet-fv .helmet-fv__decor-deer {
  position: absolute;
  left: max(-233.333px, -16.667vw); /* -200px */
  bottom: max(-46.667px, -3.333vw); /* -40px */
  width: min(408.333px, 29.167vw);
  height: auto;
  pointer-events: none;
  z-index: 1;
}

/* FV 鹿デコ：登場アニメーション（真左からひょこっと） 7番目 + 最後に右に傾いて戻る */
#helmet-fv .helmet-fv__decor-deer.fadeFromLeft {
  will-change: transform, opacity;
  animation-name: fadeFromLeftAnime, deerTiltAnime;
  animation-duration: var(--helmet-duration-pop), 0.6s;
  animation-timing-function: var(--helmet-ease-pop), var(--helmet-ease-fade);
  animation-fill-mode: forwards, both;
  animation-delay: 1.1s, 2s;
  opacity: 0;
}

@keyframes fadeFromLeftAnime {
  from {
    opacity: 0;
    transform: translate3d(-24px, 0, 0);
  }
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

@keyframes deerTiltAnime {
  0%, 100% {
    transform: translate3d(0, 0, 0) rotate(0);
  }
  50% {
    transform: translate3d(0, 0, 0) rotate(8deg);
  }
}

#helmet-fv .helmet-fv__decor-plant-left {
  position: absolute;
  left: max(-30px, -2.5vw); /* -30px */
  bottom: -2px;
  width: min(382px, 27.3vw);
  height: auto;
  pointer-events: none;
  z-index: 1;
}

/* FV 左デコ用植物：登場アニメーション（左下からひょこっと） 7番目 */
#helmet-fv .helmet-fv__decor-plant-left.fadeLeft {
  will-change: transform, opacity;
  animation-name: fadeLeftAnime;
  animation-duration: var(--helmet-duration-pop);
  animation-timing-function: var(--helmet-ease-pop);
  animation-fill-mode: forwards;
  animation-delay: 1.15s;
  opacity: 0;
}

@keyframes fadeLeftAnime {
  from {
    opacity: 0;
    transform: translate3d(-24px, 24px, 0);
  }
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

#helmet-fv .helmet-fv__decor-plant-right {
  position: absolute;
  right: max(-40px, -3.333vw); /* -40px */
  bottom: -2px;
  width: min(402px, 28.7vw);
  height: auto;
  pointer-events: none;
  z-index: 1;
}

/* FV 右デコ用植物：登場アニメーション（右下からひょこっと） 7番目 */
#helmet-fv .helmet-fv__decor-plant-right.fadeRight {
  will-change: transform, opacity;
  animation-name: fadeRightAnime;
  animation-duration: var(--helmet-duration-pop);
  animation-timing-function: var(--helmet-ease-pop);
  animation-fill-mode: forwards;
  animation-delay: 1.2s;
  opacity: 0;
}

@keyframes fadeRightAnime {
  from {
    opacity: 0;
    transform: translate3d(24px, 24px, 0);
  }
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

#helmet-fv .helmet-fv__features {
  display: flex;
  gap: min(22.167px, 1.583vw);
  position: relative;
  z-index: 3;
  width: 55%;
}

#helmet-fv .helmet-fv-feature {
  width: min(210px, 15vw);
  height: min(210px, 15vw);
  background-color: var(--helmet-white);
  border: 2px solid var(--helmet-color-border);
  border-radius: min(11.667px, 0.833vw);
  position: relative;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

/* FV 特徴ボックス：ころっと回転しながら登場 */
#helmet-fv .helmet-fv__features.roll-in .helmet-fv-feature {
  opacity: 0;
  transform-origin: left bottom;
  will-change: transform, opacity;
  animation: featureRollIn 0.7s var(--helmet-ease-char) both;
}

/* 6番目：特徴ボックス（ころっと回転） */
#helmet-fv .helmet-fv__features.roll-in .helmet-fv-feature:nth-child(1) { animation-delay: 0.7s; }
#helmet-fv .helmet-fv__features.roll-in .helmet-fv-feature:nth-child(2) { animation-delay: 0.85s; }
#helmet-fv .helmet-fv__features.roll-in .helmet-fv-feature:nth-child(3) { animation-delay: 1s; }

@keyframes featureRollIn {
  from {
    opacity: 0;
    transform: translate3d(0, 0, 0) rotate(8deg) scale3d(0.95, 0.95, 1);
  }
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0) rotate(0) scale3d(1, 1, 1);
  }
}

#helmet-fv .helmet-fv-feature__text {
  position: absolute;
  top: min(21px, 1.5vw);
  left: min(19.833px, 1.417vw);
  color: var(--helmet-color-primary);
  font-family: var(--helmet-font-maru);
  font-size: min(18.667px, 1.333vw);
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.14em;
  z-index: 1;
}

#helmet-fv .helmet-fv-feature:nth-child(2) .helmet-fv-feature__text {
  top: min(22.167px, 1.583vw);
  left: min(23.333px, 1.667vw);
  font-size: min(21px, 1.5vw);
}

#helmet-fv .helmet-fv-feature:nth-child(3) .helmet-fv-feature__text {
  top: min(23.333px, 1.667vw);
  left: min(22.167px, 1.583vw);
  font-size: min(21px, 1.5vw);
  line-height: 1.5;
}

#helmet-fv .helmet-fv-feature__price {
  position: absolute;
  top: min(95.667px, 6.833vw);
  left: min(23.333px, 1.667vw);
  color: var(--helmet-color-primary);
  font-family: var(--helmet-font-maru);
  font-size: min(14px, 1vw);
  font-weight: 500;
  display: flex;
  align-items: baseline;
  line-height: 1;
  z-index: 1;
}

#helmet-fv .helmet-fv-feature__price span {
  font-size: min(23.333px, 1.667vw);
  font-weight: 700;
  display: inline-block;
  line-height: 1;
}

#helmet-fv .helmet-fv-feature__icon {
  position: absolute;
  bottom: 0;
  right: 0;
  transform: translate(18%, 18%);
  width: auto;
  height: min(140px, 10vw);
}

#helmet-fv .helmet-fv-feature__icon img {
  width: auto;
  height: 100%;
  display: block;
}

@media screen and (max-width: 767px) {
  /* SP Figma 375px 基準: 値は px/375*100 vw（[SP]ヘルメット治療 / mv） */
  #helmet-fv {
    background-image: url("../img/lp-helmet-fv-bg.webp");
    background-position: center top;
    min-height: 170vw;
    overflow: hidden;
  }

  #helmet-fv .helmet-fv__inner.section-inner {
    position: relative;
    max-width: none;
    padding-top: 12vw;
    padding-bottom: 24.8vw; /* 93px */
    padding-left: 0;
    padding-right: 0;
  }

  #helmet-fv .helmet-fv__content {
    position: relative;
  }

  #helmet-fv .helmet-fv__copy {
    position: relative;
    z-index: 2;
    width: 84.533vw; /* 317px タイトルブロック幅 */
    margin-top: 0;
    margin-bottom: 0;
    margin-left: 6.133vw; /* 23px サブタイトル左 */
    box-sizing: border-box;
  }

  #helmet-fv .helmet-fv__copy-badge {
    gap: 1.6vw; /* 6px */
    margin-bottom: 1vw;
    padding: 1vw 2vw;
    max-width: 100%;
  }

  #helmet-fv .helmet-fv__copy-badge-frame {
    width: 1.867vw; /* 7px */
    height: 2.133vw; /* 8px */
  }

  #helmet-fv .helmet-fv__copy-badge-text {
    font-size: 2.4vw;
    white-space: normal;
  }

  #helmet-fv .helmet-fv__sub-title {
    font-family: var(--helmet-font-gothic);
    color: var(--helmet-color-primary);
    font-size: 5.549vw; /* 20.807px */
    font-weight: 500;
    letter-spacing: 0.04em;
    line-height: 1.6;
    margin-bottom: 1.861vw; /* 約7px */
  }

  #helmet-fv .helmet-fv__title {
    font-family: var(--helmet-font-gothic);
    color: var(--helmet-color-primary);
    font-size: 4.267vw; /* 16px リード行 */
    font-weight: 500;
    letter-spacing: 0.04em;
    line-height: 1.6;
  }

  #helmet-fv .helmet-fv__title-text {
    display: block;
    margin-bottom: 1.067vw; /* 4px */
  }

  #helmet-fv .helmet-fv__title-highlight {
    color: var(--helmet-white);
    display: flex;
    flex-wrap: wrap;
    gap: 2.178vw 1.27vw; /* 行 ~8.17px / 列 ~4.76px */
    max-width: 84.533vw;
  }

  #helmet-fv .helmet-fv__title-char {
    display: inline-flex;
    flex-shrink: 0;
    justify-content: center;
    align-items: center;
    width: 15.89vw; /* 59.587px */
    aspect-ratio: 1;
    background-color: var(--helmet-title-char-bg);
    border-radius: 2.066vw; /* 7.746px */
    font-family: var(--helmet-font-gothic);
    font-size: 6.4vw; /* ~24px */
    font-weight: 500;
    line-height: 1;
  }

  #helmet-fv .helmet-fv__main-image {
    position: absolute;
    left: 20vw; /* 75px アートボード左から */
    right: auto;
    top: calc(65.6vw - 20vw); /* 元位置より約20vw上に */
    width: 80vw; /* 300px */
    height: 63.733vw; /* 239px */
    border-top-left-radius: 14.933vw; /* 56px */
    border-bottom-left-radius: 14.933vw;
    overflow: hidden;
    background-color: var(--helmet-white);
    z-index: 1;
  }

  #helmet-fv .helmet-fv__main-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  #helmet-fv .helmet-fv__vertical-text {
    position: absolute;
    top: calc(72.533vw - 20vw); /* 画像上の縦書き（約20vw上に） */
    right: 4vw;
    left: auto;
    writing-mode: vertical-rl;
    color: var(--helmet-color-text-vertical);
    font-family: var(--helmet-font-maru);
    font-size: 3.467vw; /* 13px */
    font-weight: 500;
    letter-spacing: 0.485vw; /* 1.82px */
    line-height: 1.2;
    z-index: 4;
    display: flex;
    flex-direction: column;
    gap: 1vw;
    margin: 0;
    white-space: nowrap;
  }

  #helmet-fv .helmet-fv__vertical-text .helmet-fv__vertical-line {
    margin: 0;
  }

  #helmet-fv .helmet-fv__decor-deer {
    position: absolute;
    left: -24vw;
    top: calc(88vw - 20vw);
    width: 44vw;
    height: auto;
    pointer-events: none;
    z-index: 1;
  }

  #helmet-fv .helmet-fv__decor-plant-left {
    position: absolute;
    left: -5.067vw; /* -19px */
    top: calc(120.267vw - 20vw);
    bottom: auto;
    width: 60vw;
    height: auto;
    pointer-events: none;
    z-index: 1;
  }

  #helmet-fv .helmet-fv__decor-plant-right {
    position: absolute;
    right: -10vw;
    left: auto;
    top: calc(44vw - 20vw);
    bottom: auto;
    width: 60vw;
    height: auto;
    pointer-events: none;
    z-index: 0;
  }

  #helmet-fv .helmet-fv__features {
    position: absolute;
    left: 0;
    right: 0;
    top: calc(138.933vw - 20vw); /* 元位置より約20vw上に */
    display: flex;
    flex-wrap: nowrap;
    justify-content: center;
    align-items: flex-start;
    gap: 1.656vw; /* 6.21px */
    width: 100%;
    z-index: 3;
    margin: 0;
  }

  #helmet-fv .helmet-fv-feature {
    flex-shrink: 0;
    width: 28.267vw; /* 106px */
    height: 28.267vw;
    background-color: var(--helmet-white);
    border: 0.314vw solid var(--helmet-color-border); /* 1.178px */
    border-radius: 1.57vw; /* 5.889px */
    position: relative;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    box-sizing: border-box;
  }

  #helmet-fv .helmet-fv-feature__text {
    position: absolute;
    top: 2.672vw; /* 10.02px */
    left: 2.67vw; /* 10px */
    color: var(--helmet-color-primary);
    font-family: var(--helmet-font-maru);
    font-size: 2.678vw; /* 10.041px */
    font-weight: 700;
    line-height: 1.6;
    letter-spacing: 0.375vw; /* 1.406px */
    z-index: 1;
  }

  #helmet-fv .helmet-fv-feature:nth-child(2) .helmet-fv-feature__text {
    top: 2.984vw; /* 11.19px */
    left: 3.141vw; /* 11.78px */
    font-size: 2.8vw;
    letter-spacing: 0.06em;
  }

  #helmet-fv .helmet-fv-feature:nth-child(3) .helmet-fv-feature__text {
    top: 3.141vw; /* 11.78px */
    left: 2.984vw; /* 11.19px */
    font-size: 2.827vw; /* 10.6px */
    letter-spacing: 0.396vw; /* 1.484px */
    line-height: 1.5;
  }

  #helmet-fv .helmet-fv-feature__price {
    position: absolute;
    top: 13.333vw;
    left: 2.667vw;
    color: var(--helmet-color-primary);
    font-family: var(--helmet-font-maru);
    font-size: 2.4vw;
    font-weight: 500;
    display: flex;
    align-items: baseline;
    line-height: 1;
    z-index: 1;
  }

  #helmet-fv .helmet-fv-feature__price span {
    font-size: 4.267vw;
    font-weight: 700;
    display: inline-block;
    line-height: 1;
  }

  #helmet-fv .helmet-fv-feature__icon {
    position: absolute;
    bottom: 0;
    right: 0;
    transform: translate(18%, 18%);
    width: auto;
    height: 19vw;
  }

}

/* CTAセクション (.helmet-cta) 共通・使い回し用
   ========================================================================== */
.helmet-cta {
  background-color: var(--helmet-bg-color);
  position: relative;
  padding-right: min(93.333px, 6.667vw);
  padding-top: min(74.667px, 5.333vw);
  padding-bottom: min(74.667px, 5.333vw);
}

.helmet-cta .helmet-cta__wrap {
  display: flex;
  align-items: center;
  gap: min(9.333px, 0.667vw);
  position: relative;
  background-color: var(--helmet-cta-inner-bg);
  border-radius: 0 0 min(140px, 10vw) 0;
  overflow: hidden;
}

.helmet-cta .helmet-cta__inner {
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: min(37.333px, 2.667vw);
  padding: min(65.333px, 4.667vw) min(93.333px, 6.667vw);
  max-width: var(--section-inner-width);
  margin: 0 auto;
  box-sizing: border-box;
}

.helmet-cta .helmet-cta__header {
  width: 100%;
}

.helmet-cta .helmet-cta__lead {
  font-family: var(--helmet-font-gothic);
  font-size: min(28px, 2vw);
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: min(1.12px, 0.08vw);
  color: var(--helmet-doctor-text);
  text-align: center;
  margin: 0;
  opacity: 0;
  transform: translate3d(0, 24px, 0);
  will-change: transform, opacity;
}
.helmet-cta__header.is-inview .helmet-cta__lead {
  animation: animFadeUp 0.5s var(--helmet-ease-fade) both;
}

.helmet-cta .helmet-cta__content {
  display: flex;
  align-items: center;
  gap: min(37.333px, 2.667vw);
  width: 100%;
  opacity: 0;
  transform: translate3d(0, 24px, 0);
  will-change: transform, opacity;
}
.helmet-cta__content.is-inview {
  animation: animFadeUp 0.5s var(--helmet-ease-fade) both;
}

.helmet-cta .helmet-cta__doctor {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: min(18.667px, 1.333vw);
  flex-shrink: 0;
}

.helmet-cta .helmet-cta__doctor-image {
  width: min(233.333px, 16.667vw);
  height: min(233.333px, 16.667vw);
  border-radius: var(--radius-full);
  background-color: var(--helmet-doctor-name-bg);
  overflow: hidden;
  flex-shrink: 0;
  position: relative;
  opacity: 0;
  transform: scale3d(0.7, 0.7, 1);
  transform-origin: center center;
  will-change: transform, opacity;
}
.helmet-cta__content.is-inview .helmet-cta__doctor-image {
  animation: animPopIn 0.75s var(--helmet-ease-char) both;
}

.helmet-cta .helmet-cta__doctor-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
}

.helmet-cta .helmet-cta__doctor-info {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0;
  text-align: center;
}

.helmet-cta .helmet-cta__doctor-position,
.helmet-cta .helmet-cta__doctor-name {
  font-family: var(--helmet-font-gothic);
  font-size: min(16.333px, 1.167vw);
  font-weight: 500;
  line-height: 1.8;
  letter-spacing: min(0.327px, 0.023vw);
  color: var(--helmet-cta-doctor-dark);
  margin: 0;
}

.helmet-cta .helmet-cta__diagnosis {
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: min(18.667px, 1.333vw);
  background-color: var(--helmet-white);
  border: 2px solid var(--helmet-color-border);
  border-radius: min(23.333px, 1.667vw);
  padding: min(46.667px, 3.333vw) min(65.333px, 4.667vw);
  overflow: hidden;
}

.helmet-cta .helmet-cta__diagnosis-title {
  font-family: var(--helmet-font-gothic);
  font-size: min(21px, 1.5vw);
  font-weight: 700;
  letter-spacing: min(0.84px, 0.06vw);
  color: var(--helmet-color-primary);
  line-height: 1.6;
  margin: 0;
}

.helmet-cta .helmet-cta__diagnosis-list {
  display: flex;
  flex-direction: column;
  gap: min(9.333px, 0.667vw);
  width: 100%;
  margin: 0;
  padding: 0;
  list-style: none;
}

.helmet-cta .helmet-cta__diagnosis-item {
  display: flex;
  align-items: center;
  gap: min(9.333px, 0.667vw); /* 8px */
  font-family: var(--helmet-font-gothic);
  font-size: min(18.667px, 1.333vw);
  font-weight: 500;
  line-height: 1.6;
  color: var(--helmet-doctor-text);
}

.helmet-cta .helmet-cta__diagnosis-item::before {
  content: "";
  display: block;
  width: min(9.333px, 0.667vw); /* 8px */
  height: min(9.333px, 0.667vw); /* 8px */
  flex-shrink: 0;
  border-radius: 50%;
  background-color: #a5876e;
}

.helmet-cta .helmet-cta__actions {
  display: flex;
  align-items: flex-start;
  gap: min(18.667px, 1.333vw);
  width: 100%;
  padding-top: min(28px, 2vw);
  opacity: 0;
  transform: translate3d(0, 24px, 0);
  will-change: transform, opacity;
}
.helmet-cta__actions.is-inview {
  animation: animFadeUp 0.5s var(--helmet-ease-fade) both;
}

.helmet-cta .helmet-cta__action {
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: min(9.333px, 0.667vw);
}

.helmet-cta .helmet-cta__action-lead {
  font-family: var(--helmet-font-gothic);
  font-size: min(17.5px, 1.25vw);
  font-weight: 500;
  line-height: 1;
  text-align: center;
  margin: 0;
  width: 100%;
  will-change: transform;
}
.helmet-cta__actions.is-inview .helmet-cta__action-lead {
  animation: ctaActionLeadJump 0.6s var(--helmet-ease-char) 0.85s both;
}

@keyframes ctaActionLeadJump {
  0% {
    transform: translate3d(0, 0, 0);
  }
  40% {
    transform: translate3d(0, -10px, 0);
  }
  70% {
    transform: translate3d(0, 2px, 0);
  }
  85% {
    transform: translate3d(0, -2px, 0);
  }
  100% {
    transform: translate3d(0, 0, 0);
  }
}

.helmet-cta .helmet-cta__action--tel .helmet-cta__action-lead {
  color: var(--helmet-cta-text-secondary);
}

.helmet-cta .helmet-cta__action--web .helmet-cta__action-lead {
  color: var(--helmet-cta-web-bg);
}

.helmet-cta .helmet-cta__action--line .helmet-cta__action-lead {
  color: var(--helmet-cta-line-lead);
}

.helmet-cta .helmet-cta__btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: min(9.333px, 0.667vw);
  padding: min(28px, 2vw) min(11.667px, 0.833vw); /* 24px 10px */
  border-radius: min(9.333px, 0.667vw);
  width: 100%;
  text-align: center;
  text-decoration: none;
  transition: opacity 0.3s ease;
  opacity: 0;
  transform: scale3d(0.7, 0.7, 1);
  transform-origin: center center;
  will-change: transform, opacity;
}
.helmet-cta__actions.is-inview .helmet-cta__btn {
  animation: animPopIn11 0.85s linear both;
}

.helmet-cta .helmet-cta__btn:hover {
  opacity: 0.9;
}

.helmet-cta .helmet-cta__btn--tel {
  background-color: var(--helmet-cta-tel-bg);
  color: var(--helmet-white);
}

.helmet-cta .helmet-cta__btn--web {
  background-color: var(--helmet-cta-web-bg);
  color: var(--helmet-white);
}

.helmet-cta .helmet-cta__btn--line {
  background-color: var(--helmet-cta-line-bg);
  color: var(--helmet-white);
}

.helmet-cta .helmet-cta__btn-tel,
.helmet-cta .helmet-cta__btn-main {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: min(7px, 0.5vw);
}

.helmet-cta .helmet-cta__btn-icon {
  width: min(28px, 2vw);
  height: min(28px, 2vw);
  flex-shrink: 0;
  object-fit: contain;
}

.helmet-cta .helmet-cta__btn-tel-num {
  font-family: var(--helmet-font-gothic);
  font-size: min(23.333px, 1.667vw);
  font-weight: 700;
  letter-spacing: min(0.7px, 0.05vw);
  line-height: 1;
}

.helmet-cta .helmet-cta__btn-time {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: min(9.333px, 0.667vw);
  font-family: var(--helmet-font-gothic);
  font-weight: 500;
  line-height: 1;
}

.helmet-cta .helmet-cta__btn-time-label {
  font-size: min(14px, 1vw);
  letter-spacing: min(0.28px, 0.02vw);
}

.helmet-cta .helmet-cta__btn-time-text {
  font-size: min(17.5px, 1.25vw);
}

.helmet-cta .helmet-cta__btn-text {
  font-family: var(--helmet-font-gothic);
  font-size: min(23.333px, 1.667vw);
  font-weight: 700;
  letter-spacing: min(0.7px, 0.05vw);
  line-height: 1;
}

.helmet-cta .helmet-cta__btn-sub {
  font-family: var(--helmet-font-gothic);
  font-size: min(16.333px, 1.167vw);
  font-weight: 500;
  line-height: 1;
}

.helmet-cta .helmet-cta__payment {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: min(9.333px, 0.667vw);
  width: 100%;
  background-color: var(--helmet-cta-payment-bg);
  padding: min(18.667px, 1.333vw) min(28px, 2vw);
  border-radius: min(11.667px, 0.833vw);
  opacity: 0;
  transform: translate3d(0, 24px, 0);
  will-change: transform, opacity;
}
.helmet-cta__payment.is-inview {
  animation: animFadeUp 0.5s var(--helmet-ease-fade) both;
}

.helmet-cta .helmet-cta__payment-lead {
  font-family: var(--helmet-font-gothic);
  font-size: min(18.667px, 1.333vw);
  font-weight: 500;
  line-height: 1.6;
  color: var(--helmet-doctor-text);
  margin: 0;
  white-space: nowrap;
}

.helmet-cta .helmet-cta__payment-lead-core {
  display: inline;
}

.helmet-cta .helmet-cta__payment-lead-line {
  display: inline;
}

.helmet-cta .helmet-cta__payment-list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: min(11.667px, 0.833vw);
  margin: 0;
  padding: min(11.667px, 0.833vw) min(28px, 2vw);
  list-style: none;
  background-color: var(--helmet-white);
  border-radius: min(4.667px, 0.333vw);
}

.helmet-cta .helmet-cta__payment-item {
  flex-shrink: 0;
}

.helmet-cta .helmet-cta__payment-item img {
  width: auto;
  height: min(37.333px, 2.667vw);
  object-fit: contain;
}

/* CTAセクション SP（Figma 375px 基準: px/375*100 vw） */
@media screen and (max-width: 767px) {
  .helmet-cta {
    padding-top: 10.667vw; /* 40px */
    padding-bottom: 10.667vw;
    padding-left: 0;
    padding-right: 0;
    box-sizing: border-box;
  }

  .helmet-cta .helmet-cta__wrap {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 2.133vw; /* 8px */
    border-radius: 0 0 10.667vw 0; /* 40px rounded-br */
    width: 100%;
  }

  .helmet-cta .helmet-cta__inner.section-inner {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 10.667vw 6.4vw; /* 40px 24px py px */
    gap: 8.533vw; /* 32px 見出し〜コンテンツ列間 */
    box-sizing: border-box;
  }

  .helmet-cta .helmet-cta__lead {
    font-family: var(--helmet-font-gothic);
    font-size: 5.333vw; /* 20px */
    font-weight: 700;
    line-height: 1.6;
    letter-spacing: 0.213vw; /* 0.8px */
    color: var(--helmet-color-primary);
    text-align: center;
  }

  .helmet-cta .helmet-cta__content {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4.267vw; /* 16px 院長〜診断ボックス */
    width: 100%;
  }

  .helmet-cta .helmet-cta__doctor {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2.133vw; /* 8px 画像〜名簿 */
    width: 100%;
  }

  .helmet-cta .helmet-cta__doctor-image {
    width: 53.333vw; /* 200px */
    height: 53.333vw;
  }

  .helmet-cta .helmet-cta__doctor-position,
  .helmet-cta .helmet-cta__doctor-name {
    font-size: 3.2vw; /* 12px */
    font-weight: 500;
    line-height: 1.8;
    letter-spacing: 0.064vw; /* 0.24px */
    color: var(--helmet-cta-doctor-dark);
  }

  .helmet-cta .helmet-cta__diagnosis {
    flex: 0 0 auto;
    width: 100%;
    padding: 6.4vw; /* 24px */
    gap: 4.267vw; /* 16px */
    border-width: 0.533vw; /* 2px */
    border-radius: 5.333vw; /* 20px */
    border-style: solid;
    border-color: var(--helmet-color-border);
    box-sizing: border-box;
  }

  .helmet-cta .helmet-cta__diagnosis-title {
    font-size: 4vw; /* 15px */
    font-weight: 700;
    line-height: 1.6;
    letter-spacing: 0.16vw; /* 0.6px */
    color: var(--helmet-doctor-text);
  }

  .helmet-cta .helmet-cta__diagnosis-list {
    gap: 2.133vw; /* 8px */
  }

  .helmet-cta .helmet-cta__diagnosis-item {
    font-size: 3.467vw; /* 13px */
    font-weight: 500;
    line-height: 1.6;
    gap: 1.6vw; /* 6px アイコン横 */
    color: var(--helmet-doctor-text);
  }

  .helmet-cta .helmet-cta__diagnosis-item::before {
    width: 3.2vw; /* 12px チェック相当 */
    height: 3.2vw;
  }

  .helmet-cta .helmet-cta__actions {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 3.2vw; /* 12px 各CTAブロック間 */
    width: 100%;
    padding-top: 0;
  }

  .helmet-cta .helmet-cta__action {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2.133vw; /* 8px リード〜ボタン */
    width: 100%;
    flex: none;
    min-width: 0;
  }

  .helmet-cta .helmet-cta__action-lead {
    font-size: 3.2vw; /* 12px */
    font-weight: 500;
    line-height: 1;
    letter-spacing: 0;
  }

  .helmet-cta .helmet-cta__btn {
    padding: 4.267vw 6.4vw; /* 16px 24px */
    gap: 2.133vw; /* 8px */
    border-radius: 2.133vw; /* 8px */
    width: 100%;
    box-sizing: border-box;
  }

  .helmet-cta .helmet-cta__btn-tel,
  .helmet-cta .helmet-cta__btn-main {
    gap: 1.6vw; /* 6px */
  }

  .helmet-cta .helmet-cta__btn--web .helmet-cta__btn-main,
  .helmet-cta .helmet-cta__btn--line .helmet-cta__btn-main {
    gap: 2.133vw; /* 8px */
  }

  .helmet-cta .helmet-cta__btn-icon {
    width: 6.4vw; /* 24px */
    height: 6.4vw;
  }

  .helmet-cta .helmet-cta__btn-tel-num,
  .helmet-cta .helmet-cta__btn-text {
    font-size: 4.267vw; /* 16px */
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.128vw; /* 0.48px */
  }

  .helmet-cta .helmet-cta__btn-time {
    gap: 2.133vw; /* 8px */
  }

  .helmet-cta .helmet-cta__btn-time-label {
    font-size: 2.667vw; /* 10px */
    letter-spacing: 0.053vw; /* 0.2px */
  }

  .helmet-cta .helmet-cta__btn-time-text {
    font-size: 3.2vw; /* 12px */
  }

  .helmet-cta .helmet-cta__btn-sub {
    font-size: 3.2vw; /* 12px */
    font-weight: 500;
    line-height: 1;
  }

  .helmet-cta .helmet-cta__btn--line .helmet-cta__btn-icon {
    width: 5.537vw; /* 20.761px */
    height: 5.272vw; /* 19.77px */
  }

  .helmet-cta .helmet-cta__payment {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 4.267vw 6.4vw; /* 16px 24px */
    gap: 2.133vw; /* 8px */
    border-radius: 2.667vw; /* 10px */
    width: 100%;
    margin-top: -2.133vw; /* gap 32px を 24px に近づける */
    box-sizing: border-box;
  }

  .helmet-cta .helmet-cta__payment-lead {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: center;
    gap: 2.133vw; /* 8px */
    font-size: 3.733vw; /* 14px */
    font-weight: 500;
    line-height: 1.6;
    color: var(--helmet-doctor-text);
    white-space: normal;
    text-align: center;
    max-width: 100%;
  }

  .helmet-cta .helmet-cta__payment-lead-core {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
  }

  .helmet-cta .helmet-cta__payment-lead-line {
    display: block;
    line-height: 1.6;
  }

  .helmet-cta .helmet-cta__payment-list {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    padding: 2.667vw 6.4vw; /* 10px 24px */
    gap: 2.667vw; /* 10px */
    border-radius: 1.067vw; /* 4px */
    width: 100%;
    box-sizing: border-box;
  }

  .helmet-cta .helmet-cta__payment-item img {
    width: auto;
    height: 8.529vw; /* 31.984px */
    object-fit: contain;
  }
}

/* 目次セクション (#helmet-index)
   ========================================================================== */
#helmet-index {
  background-image: url("../img/lp-helmet-section-bg-normal.webp");
  background-repeat: repeat;
  background-size: min(1166.667px, 83.333vw);
  padding-top: min(28px, 2vw);
  padding-bottom: min(46.667px, 3.333vw);
}

#helmet-index .helmet-index__inner {
  display: flex;
  flex-direction: column;
  gap: min(28px, 2vw);
}

#helmet-index .helmet-index__title {
  color: var(--helmet-color-primary);
  font-family: var(--helmet-font-gothic);
  font-size: min(28px, 2vw);
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 1.6;
  text-align: center;
  opacity: 0;
  transform: translate3d(0, 24px, 0);
  will-change: transform, opacity;
}

#helmet-index .helmet-index__content {
  background-color: #f6e7cc;
  border-radius: min(23.333px, 1.667vw);
  padding: min(46.667px, 3.333vw);
  display: flex;
  gap: min(65.333px, 4.667vw);
  align-items: flex-start;
  opacity: 0;
  transform: translate3d(0, 24px, 0);
  will-change: transform, opacity;
}

#helmet-index.is-inview .helmet-index__title,
#helmet-index.is-inview .helmet-index__content {
  animation: animFadeUp 0.5s var(--helmet-ease-fade) both;
}

#helmet-index .helmet-index__list {
  display: flex;
  flex-direction: column;
  gap: min(23.333px, 1.667vw);
  flex: 1;
}

#helmet-index .helmet-index__item {
  width: 100%;
}

#helmet-index .helmet-index__link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: min(9.333px, 0.667vw);
  color: #4f4f4f;
  font-family: var(--helmet-font-gothic);
  font-size: min(18.667px, 1.333vw);
  font-weight: 500;
  letter-spacing: 0.04em;
  line-height: 1.4;
  text-decoration: none;
  transition: opacity 0.3s;
}

#helmet-index .helmet-index__link:hover {
  opacity: 0.7;
}

#helmet-index .helmet-index__link::after {
  content: "";
  display: block;
  width: min(21px, 1.5vw);
  height: min(21px, 1.5vw);
  background-image: url("../img/lp-helmet-index-icon-arrow.webp");
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center;
  flex-shrink: 0;
}

@media screen and (max-width: 767px) {
  #helmet-index {
    background-image: url("../img/lp-helmet-section-bg-normal.webp");
    background-size: min(1166.667px, 83.333vw);
    padding-top: 6.4vw; /* 24px */
    padding-bottom: 10.667vw; /* 40px */
  }

  #helmet-index .helmet-index__inner {
    gap: 6.4vw; /* 24px */
  }

  #helmet-index .helmet-index__title {
    font-size: 5.333vw; /* 20px */
  }

  #helmet-index .helmet-index__content {
    flex-direction: column;
    gap: 6.4vw; /* 24px */
    padding: 6.4vw; /* 24px */
    border-radius: 4.267vw; /* 16px */
  }

  #helmet-index .helmet-index__list {
    gap: 4.267vw; /* 16px */
    width: 100%;
  }

  #helmet-index .helmet-index__link {
    font-size: 3.733vw; /* 14px */
    gap: 2.133vw; /* 8px */
  }

  #helmet-index .helmet-index__link::after {
    width: 4.8vw; /* 18px */
    height: 4.8vw; /* 18px */
  }
}

/* 症状セクション (#helmet-symptom)
   ========================================================================== */
#helmet-symptom {
  background-image: url("../img/lp-helmet-section-bg-normal.webp");
  background-repeat: repeat;
  background-size: min(1166.667px, 83.333vw);
  padding-top: min(46.667px, 3.333vw);
  padding-bottom: min(46.667px, 3.333vw);
}

#helmet-symptom .helmet-symptom__content {
  display: flex;
  gap: min(28px, 2vw);
  align-items: stretch;
}

#helmet-symptom .helmet-symptom__item {
  flex: 1;
  background-color: var(--helmet-white);
  border: 2px solid #a48469;
  border-radius: min(23.333px, 1.667vw);
  padding: min(46.667px, 3.333vw) min(37.333px, 2.667vw);
  display: flex;
  flex-direction: column;
  align-items: center;
  opacity: 0;
  transform: translate3d(0, 24px, 0);
  will-change: transform, opacity;
}
#helmet-symptom .helmet-symptom__item.is-inview {
  animation: animFadeUp 0.5s var(--helmet-ease-fade) both;
}

#helmet-symptom .helmet-symptom__item-header {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-bottom: min(28px, 2vw);
}

#helmet-symptom .helmet-symptom__item-sub {
  color: #828282;
  font-family: var(--helmet-font-gothic);
  font-size: min(16.333px, 1.167vw);
  font-weight: 500;
  line-height: 1.6;
  margin-bottom: 0;
}

#helmet-symptom .helmet-symptom__item-title {
  color: #e28423;
  font-family: var(--helmet-font-gothic);
  font-size: min(25.667px, 1.833vw);
  font-weight: 500;
  line-height: 1.6;
  margin-bottom: 0;
  margin-top: 0;
}

#helmet-symptom .helmet-symptom__item-text {
  color: #4f4f4f;
  font-family: var(--helmet-font-gothic);
  font-size: min(18.667px, 1.333vw);
  font-weight: 500;
  line-height: 1.6;
  margin-bottom: min(18.667px, 1.333vw);
  width: 100%;
}

#helmet-symptom .helmet-symptom__item-image {
  width: min(186.667px, 13.333vw);
  height: auto;
  margin-top: auto;
}

#helmet-symptom .helmet-symptom__item-image img {
  width: 100%;
  height: auto;
  object-fit: cover;
}

@media screen and (max-width: 767px) {
  #helmet-symptom {
    background-size: 26.667vw; /* 100px equivalent for 375px */
    padding-top: 10.667vw; /* 40px */
    padding-bottom: 10.667vw; /* 40px */
  }

  #helmet-symptom .helmet-symptom__content {
    flex-direction: column;
    gap: 6.4vw; /* 24px */
  }

  #helmet-symptom .helmet-symptom__item {
    border-radius: 4.267vw; /* 16px */
    padding: 6.4vw 5.333vw; /* 24px 20px */
  }

  #helmet-symptom .helmet-symptom__item-header {
    margin-bottom: 6.4vw; /* 24px */
  }

  #helmet-symptom .helmet-symptom__item-sub {
    font-size: 3.2vw; /* 12px */
  }

  #helmet-symptom .helmet-symptom__item-title {
    font-size: 5.333vw; /* 20px */
  }

  #helmet-symptom .helmet-symptom__item-text {
    font-size: 3.733vw; /* 14px */
    margin-bottom: 4.267vw; /* 16px */
  }

  #helmet-symptom .helmet-symptom__item-image {
    width: 32vw; /* 120px */
  }
}

/* トラブルセクション (#helmet-trouble)
   ========================================================================== */
#helmet-trouble {
  position: relative;
  background-color: #d9d3ca;
  padding-top: min(74.667px, 5.333vw);
  padding-bottom: min(74.667px, 5.333vw);
  overflow: hidden;
}

#helmet-trouble .helmet-trouble__bg-item {
  position: absolute;
  pointer-events: none;
  z-index: 0;
  opacity: 0.4;
}

#helmet-trouble .helmet-trouble__bg-item--01 {
  top: max(-93.333px, -7vw);
  right: min(444.5px, 31.75vw);
  width: min(312.667px, 22.333vw);
  height: auto;
}

#helmet-trouble .helmet-trouble__bg-item--02 {
  top: 75%;
  left: -6%;
  transform: translateY(-50%);
  width: min(280px, 20vw); /* 240px */
  height: auto;
}

#helmet-trouble .helmet-trouble__bg-item--03 {
  top: 72%;
  right: max(-197.05px, -14.075vw);
  transform: translateY(-50%);
  width: min(356.717px, 25.48vw);
  height: auto;
}

#helmet-trouble .helmet-trouble__inner {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: min(37.333px, 2.667vw);
  padding-top: 0;
  padding-bottom: 0;
}

#helmet-trouble .helmet-trouble__header {
  text-align: left;
}

#helmet-trouble .helmet-trouble__title {
  color: var(--helmet-doctor-text);
  font-family: var(--helmet-font-gothic);
  font-size: min(30.333px, 2.167vw);
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 1.6;
  margin-bottom: 0;
}

#helmet-trouble .helmet-trouble__title-line {
  display: block;
}

#helmet-trouble .helmet-trouble__title-line:first-child {
  margin-bottom: 0;
}

#helmet-trouble .helmet-trouble__lead {
  color: var(--helmet-doctor-text);
  font-family: var(--helmet-font-gothic);
  font-size: min(18.667px, 1.333vw);
  font-weight: 500;
  line-height: 1.6;
  margin-bottom: 0;
  text-align: left;
}

#helmet-trouble .helmet-trouble__content {
  display: flex;
  flex-direction: column;
  gap: min(18.667px, 1.333vw);
  width: 100%;
  max-width: min(1222.667px, 87.333vw);
  margin-left: auto;
  margin-right: auto;
}

#helmet-trouble .helmet-trouble__row {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  gap: min(18.667px, 1.333vw);
  width: 100%;
}

#helmet-trouble .helmet-trouble__row--01,
#helmet-trouble .helmet-trouble__row--02 {
  justify-content: center;
  gap: min(18.667px, 1.333vw);
}

#helmet-trouble .helmet-trouble__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: min(9.333px, 0.667vw);
  width: min(291.667px, 20.833vw);
  height: min(291.667px, 20.833vw);
  min-width: min(291.667px, 20.833vw);
  min-height: min(291.667px, 20.833vw);
  background-color: var(--helmet-trouble-item-bg);
  border-radius: 50%;
  flex-shrink: 0;
  opacity: 0;
  transform: scale3d(0.7, 0.7, 1);
  transform-origin: center center;
  will-change: transform, opacity;
}
#helmet-trouble .helmet-trouble__item.is-inview {
  animation: animPopIn11 0.85s linear both;
}

#helmet-trouble .helmet-trouble__item-icon {
  width: min(134.167px, 9.583vw);
  height: min(134.167px, 9.583vw);
  flex-shrink: 0;
}

#helmet-trouble .helmet-trouble__item-icon img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

#helmet-trouble .helmet-trouble__item-text {
  color: var(--helmet-doctor-text);
  font-family: var(--helmet-font-gothic);
  font-size: min(18.667px, 1.333vw);
  font-weight: 500;
  line-height: 1.6;
  margin-bottom: 0;
  text-align: center;
}

#helmet-trouble .helmet-trouble__item-text-line {
  display: block;
}

@media screen and (max-width: 767px) {
  /* SP Figma 375px 基準（node 57:486）: px/375*100 vw */
  #helmet-trouble {
    padding-top: 10.667vw; /* 40px */
    padding-bottom: 10.667vw;
    padding-left: 6.4vw; /* 24px */
    padding-right: 6.4vw;
    box-sizing: border-box;
  }

  #helmet-trouble .helmet-trouble__bg-item--01 {
    top: -22.4vw;
    right: 0;
    width: 71.467vw;
    opacity: 0.4;
  }

  #helmet-trouble .helmet-trouble__bg-item--02 {
    top: 75%;
    left: -6%;
    transform: translateY(-50%);
    width: 60.053vw; /* 225.2px */
    height: auto;
    opacity: 1;
  }

  #helmet-trouble .helmet-trouble__bg-item--03 {
    top: 72%;
    right: -25.6vw;
    transform: translateY(-50%);
    width: 48.8vw; /* 183px */
    height: auto;
    opacity: 0.7;
  }

  #helmet-trouble .helmet-trouble__inner.section-inner {
    position: relative;
    z-index: 1;
    max-width: none;
    margin: 0;
    padding-left: 0;
    padding-right: 0;
    padding-top: 0;
    padding-bottom: 0;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 6.4vw; /* 24px ヘッダーブロック〜カード群 */
    box-sizing: border-box;
  }

  #helmet-trouble .helmet-trouble__header {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 6.4vw; /* 24px タイトル〜リード */
    text-align: left;
  }

  #helmet-trouble .helmet-trouble__title {
    font-size: 5.333vw; /* 20px */
    font-weight: 700;
    line-height: 1.6;
    letter-spacing: 0.213vw; /* 0.8px */
    margin-bottom: 0;
  }

  #helmet-trouble .helmet-trouble__lead {
    font-size: 3.733vw; /* 14px */
    font-weight: 500;
    line-height: 1.6;
    margin-bottom: 0;
    text-align: left;
  }

  #helmet-trouble .helmet-trouble__content {
    display: flex;
    flex-direction: column;
    gap: 4.267vw; /* 16px 上段4個ブロック〜下段3個ブロック */
    width: 100%;
    max-width: none;
    margin: 0;
  }

  #helmet-trouble .helmet-trouble__row {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: flex-start;
    align-items: flex-start;
    gap: 4.267vw; /* 16px */
    width: 100%;
  }

  #helmet-trouble .helmet-trouble__row--01 {
    justify-content: center;
  }

  #helmet-trouble .helmet-trouble__row--02 {
    justify-content: center;
  }

  #helmet-trouble .helmet-trouble__row--01 .helmet-trouble__item {
    flex: 0 0 calc((100% - 4.267vw) / 2);
    width: calc((100% - 4.267vw) / 2);
    max-width: calc((100% - 4.267vw) / 2);
    min-width: 0;
    height: auto;
    aspect-ratio: 1;
    box-sizing: border-box;
  }

  #helmet-trouble .helmet-trouble__row--02 .helmet-trouble__item:nth-child(1),
  #helmet-trouble .helmet-trouble__row--02 .helmet-trouble__item:nth-child(2) {
    flex: 0 0 calc((100% - 4.267vw) / 2);
    width: calc((100% - 4.267vw) / 2);
    max-width: calc((100% - 4.267vw) / 2);
    min-width: 0;
    height: auto;
    aspect-ratio: 1;
    box-sizing: border-box;
  }

  #helmet-trouble .helmet-trouble__row--02 .helmet-trouble__item:last-child {
    flex: 0 0 100%;
    width: 41.467vw; /* 155.5px */
    max-width: 41.467vw;
    height: auto;
    aspect-ratio: 1;
    margin-left: auto;
    margin-right: auto;
    box-sizing: border-box;
  }

  #helmet-trouble .helmet-trouble__item {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0;
    background-color: var(--helmet-trouble-item-bg);
    border-radius: 50%;
  }

  #helmet-trouble .helmet-trouble__item-icon {
    width: 21.333vw; /* 80px */
    height: 21.333vw;
    max-width: none;
    max-height: none;
    flex-shrink: 0;
  }

  #helmet-trouble .helmet-trouble__item-text {
    font-size: 3.2vw; /* 12px */
    font-weight: 500;
    line-height: 1.4;
    text-align: center;
    margin-bottom: 0;
    letter-spacing: 0.01em;
  }
}

/* 赤ちゃんの頭について (#helmet-about)
   ========================================================================== */
#helmet-about {
  display: flex;
  flex-direction: column;
  background-image: url("../img/lp-helmet-section-bg-normal.webp");
  background-repeat: repeat;
  background-size: min(1166.667px, 83.333vw);
}

#helmet-about .helmet-about__inner-wrap:nth-child(2) {
  background-image: url("../img/lp-helmet-section-bg-beige.webp");
  background-repeat: repeat;
  background-size: min(1166.667px, 83.333vw);
}

#helmet-about .helmet-about__inner {
  display: flex;
  flex-direction: column;
  gap: inherit;
  padding-top: min(70px, 5vw);
  padding-bottom: min(70px, 5vw);
}

#helmet-about .helmet-about__block {
  display: flex;
  align-items: center;
  gap: min(70px, 5vw);
}

#helmet-about .helmet-about__block--reverse {
  flex-direction: row-reverse;
}

#helmet-about .helmet-about__block--disease {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: min(70px, 5vw);
}

#helmet-about .helmet-about__block--disease .helmet-about__left-col {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-width: 0;
  gap: min(28px, 2vw);
}

#helmet-about .helmet-about__block--disease .helmet-about__left-col .helmet-about__text-area {
  flex: 0 1 auto;
}

#helmet-about .helmet-about__block--disease .helmet-about__text-lead {
  display: flex;
  flex-direction: column;
  gap: min(16px, 1.143vw);
}

#helmet-about .helmet-about__block--disease .helmet-about__title {
  margin-bottom: 0;
}

#helmet-about .helmet-about__block--disease .helmet-about__sub-title {
  margin-bottom: 0;
}

#helmet-about .helmet-about__block--disease .helmet-about__sub-title-line {
  display: block;
  width: fit-content;
  background: linear-gradient(
    to bottom,
    transparent 0%,
    transparent 50%,
    var(--helmet-about-sub-highlight) 50%,
    var(--helmet-about-sub-highlight) 100%
  );
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
  padding: 0 0.15em;
}

@media screen and (min-width: 768px) {
  #helmet-about .helmet-about__block--disease .helmet-about__sub-title-line {
    font-size: min(22px, 1.571vw); /* 1400px 基準 */
  }
}

#helmet-about .helmet-about__block--disease .helmet-about__text--intro {
  margin-bottom: 0;
}

#helmet-about .helmet-about__block--disease .helmet-about__text--intro + .helmet-about__text--intro {
  margin-top: min(10px, 0.714vw);
}

#helmet-about .helmet-about__block--disease .helmet-about__text-tail {
  display: flex;
  flex-direction: column;
  gap: min(16px, 1.143vw);
}

#helmet-about .helmet-about__block--disease .helmet-about__text--detail {
  margin-bottom: 0;
}

#helmet-about .helmet-about__text-area {
  flex: 1;
  min-width: 0;
  opacity: 0;
  transform: translate3d(0, 24px, 0);
  will-change: transform, opacity;
}
#helmet-about .helmet-about__inner-wrap.is-inview .helmet-about__text-area {
  animation: animFadeUp 0.5s var(--helmet-ease-fade) both;
}

#helmet-about .helmet-about__title {
  color: #4f4f4f;
  font-family: var(--helmet-font-gothic);
  font-size: min(30px, 2.143vw); /* 1400px 基準 */
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 1.6;
  margin-bottom: min(16px, 1.143vw);
}

#helmet-about .helmet-about__title br {
  display: block;
}

#helmet-about .helmet-about__sub-title {
  color: #4f4f4f;
  font-family: var(--helmet-font-gothic);
  font-size: min(18px, 1.286vw);
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 1.6;
  margin-bottom: min(12px, 0.857vw);
}

#helmet-about .helmet-about__text {
  color: #4f4f4f;
  font-family: var(--helmet-font-gothic);
  font-size: min(18px, 1.286vw); /* 1400px 基準 */
  font-weight: 500;
  line-height: 1.8;
  margin-bottom: 0;
}

#helmet-about .helmet-about__text br {
  display: block;
}

/* 発生率ブロックのみ：マーカー帯（この箇所専用の不透明度） */
#helmet-about .helmet-about__text-marker {
  color: inherit;
  display: inline;
  background: linear-gradient(
    to bottom,
    transparent 0%,
    transparent 50%,
    rgba(236, 194, 101, 0.5) 50%,
    rgba(236, 194, 101, 0.5) 100%
  );
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
  padding: 0 0.15em;
}

#helmet-about .helmet-about__image {
  flex-shrink: 0;
  width: min(583.333px, 41.667vw);
  opacity: 0;
  transform: translate3d(0, 24px, 0);
  will-change: transform, opacity;
}
#helmet-about .helmet-about__inner-wrap.is-inview .helmet-about__image {
  animation: animFadeUp 0.5s var(--helmet-ease-fade) both;
}

#helmet-about .helmet-about__inner-wrap:nth-child(3) .helmet-about__image {
  width: min(466.667px, 33.333vw);
}

#helmet-about .helmet-about__image img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
  border-radius: min(12px, 0.857vw);
}

@media screen and (max-width: 767px) {
  #helmet-about {
    background-size: 26.667vw;
  }

  #helmet-about .helmet-about__inner-wrap:nth-child(2) {
    background-size: 26.667vw;
  }

  #helmet-about .helmet-about__inner {
    padding-top: 16vw; /* 60px */
    padding-bottom: 16vw; /* 60px */
  }

  #helmet-about .helmet-about__block {
    flex-direction: column !important;
    gap: 16vw; /* 60px */
  }

  #helmet-about .helmet-about__block--reverse {
    flex-direction: column !important;
  }

  #helmet-about .helmet-about__title {
    font-size: 4.8vw; /* 18px */
    margin-bottom: 4.267vw; /* 16px */
  }

  #helmet-about .helmet-about__sub-title {
    font-size: 4vw; /* 15px */
    margin-bottom: 3.2vw; /* 12px */
  }

  #helmet-about .helmet-about__text {
    font-size: 3.733vw; /* 14px */
  }

  #helmet-about .helmet-about__image {
    width: 100%;
    max-width: 100%;
  }

  #helmet-about .helmet-about__image img {
    border-radius: 4.267vw; /* 16px */
  }

  /* 3つ目 inner-wrap：病気が原因の…（Figma SP node 57:715, 375 基準 vw） */
  #helmet-about .helmet-about__inner-wrap:nth-child(3) .helmet-about__inner.section-inner {
    padding-top: 10.667vw; /* 40px */
    padding-bottom: 10.667vw;
    padding-left: 6.4vw; /* 24px */
    padding-right: 6.4vw;
    max-width: none;
    margin: 0 auto;
    box-sizing: border-box;
  }

  #helmet-about .helmet-about__block--disease {
    flex-direction: column;
    align-items: stretch;
    gap: 4.267vw; /* 16px */
  }

  #helmet-about .helmet-about__block--disease .helmet-about__left-col {
    display: contents;
  }

  #helmet-about .helmet-about__block--disease .helmet-about__text-lead {
    order: 1;
    display: flex;
    flex-direction: column;
    width: 100%;
    gap: 4.267vw;
  }

  #helmet-about .helmet-about__block--disease .helmet-about__image {
    order: 2;
    width: 100%;
    max-width: 100%;
    aspect-ratio: 1 / 1;
    overflow: hidden;
  }

  #helmet-about .helmet-about__block--disease .helmet-about__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  #helmet-about .helmet-about__inner-wrap:nth-child(3) .helmet-about__image {
    width: 80vw;
    margin: 0 auto;
  }

  #helmet-about .helmet-about__block--disease .helmet-about__text-tail {
    order: 3;
    display: flex;
    flex-direction: column;
    width: 100%;
    gap: 4.267vw;
  }

  #helmet-about .helmet-about__block--disease .helmet-about__title {
    font-size: 5.867vw; /* 22px */
    font-weight: 700;
    line-height: 1.6;
    letter-spacing: 0.235vw; /* 0.88px */
    margin-bottom: 0;
    color: var(--helmet-doctor-text);
  }

  #helmet-about .helmet-about__block--disease .helmet-about__sub-title {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
    font-size: 4.8vw; /* 18px */
    font-weight: 700;
    line-height: 1.6;
    letter-spacing: 0.192vw; /* 0.72px */
    margin-bottom: 0;
    color: var(--helmet-doctor-text);
  }

  #helmet-about .helmet-about__block--disease .helmet-about__text--intro {
    font-size: 3.733vw; /* 14px */
    font-weight: 500;
    line-height: 1.6;
    margin: 0;
    color: var(--helmet-doctor-text);
  }

  #helmet-about .helmet-about__block--disease .helmet-about__text--intro + .helmet-about__text--intro {
    margin-top: 0;
  }

  #helmet-about .helmet-about__block--disease .helmet-about__text--detail {
    font-size: 3.733vw; /* 14px */
    font-weight: 500;
    line-height: 1.6;
    margin: 0;
    color: var(--helmet-doctor-text);
  }
}

/* メリットセクション (#helmet-merit)
   ========================================================================== */
#helmet-merit {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: min(46.667px, 3.333vw);
  background-image: url("../img/lp-helmet-section-bg-green.webp");
  background-repeat: repeat;
  background-size: min(1166.667px, 83.333vw);
  background-position: center;
  padding-top: min(65.333px, 4.667vw);
  padding-bottom: min(65.333px, 4.667vw);
}

#helmet-merit .helmet-merit__inner {
  display: flex;
  flex-direction: column;
  width: 100%;
}

#helmet-merit .helmet-merit__box {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: min(28px, 2vw);
  background-color: #acc37c;
  border-radius: min(23.333px, 1.667vw);
  padding-top: min(65.333px, 4.667vw);
  padding-bottom: min(46.667px, 3.333vw);
  padding-left: min(74.667px, 5.333vw);
  padding-right: min(74.667px, 5.333vw);
  width: 100%;
  overflow: hidden;
}

#helmet-merit .helmet-merit__title {
  color: var(--helmet-white);
  font-family: var(--helmet-font-gothic);
  font-size: min(30.333px, 2.167vw);
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 1.6;
  margin-bottom: 0;
  text-align: center;
  width: 100%;
  opacity: 0;
  transform: translate3d(0, 24px, 0);
  will-change: transform, opacity;
}
#helmet-merit .helmet-merit__title.is-inview {
  animation: animFadeUp 0.5s var(--helmet-ease-fade) both;
}

#helmet-merit .helmet-merit__content {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: min(28px, 2vw);
  background-color: var(--helmet-white);
  border-radius: min(23.333px, 1.667vw);
  padding: min(56px, 4vw) min(46.667px, 3.333vw);
  width: 100%;
  opacity: 0;
  transform: translate3d(0, 24px, 0);
  will-change: transform, opacity;
}
#helmet-merit .helmet-merit__content.is-inview {
  animation: animFadeUp 0.5s var(--helmet-ease-fade) both;
}

#helmet-merit .helmet-merit__subtitle {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0;
  width: fit-content;
  max-width: 100%;
  margin-inline: auto;
  color: var(--helmet-doctor-text);
  font-family: var(--helmet-font-gothic);
  font-size: min(25.667px, 1.833vw);
  font-weight: 700;
  letter-spacing: 0.035em;
  line-height: 1.6;
  margin-bottom: 0;
  padding-bottom: 0;
}

#helmet-merit .helmet-merit__subtitle-line {
  display: block;
  width: fit-content;
  background: linear-gradient(
    to bottom,
    transparent 0%,
    transparent 50%,
    rgba(229, 146, 52, 0.3) 50%,
    rgba(229, 146, 52, 0.3) 100%
  );
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
  padding-inline: min(7px, 0.5vw);
  padding-bottom: min(4px, 0.3vw);
}

#helmet-merit .helmet-merit__text-wrap {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: min(16px, 1.143vw);
  padding-right: min(80px, 5.714vw); /* 1400px 基準 */
  box-sizing: border-box;
}

#helmet-merit .helmet-merit__text-row {
  width: 100%;
  box-sizing: border-box;
}

#helmet-merit .helmet-merit__text {
  color: var(--helmet-doctor-text);
  font-family: var(--helmet-font-gothic);
  font-size: min(18.667px, 1.333vw);
  font-weight: 500;
  line-height: 1.6;
  margin-bottom: 0;
}

#helmet-merit .helmet-merit__text br {
  display: block;
}

#helmet-merit .helmet-merit__illust {
  position: absolute;
  bottom: max(-9.357px, -0.668vw);
  right: min(24.29px, 1.735vw);
  width: min(156.544px, 11.182vw);
  height: auto;
  display: block;
  object-fit: contain;
  pointer-events: none;
  will-change: transform;
  transform: translate3d(80px, 0, 0);
}
#helmet-merit .helmet-merit__illust.is-inview {
  animation: knowledgeIllustSlideIn 2.2s linear forwards;
}

@media screen and (max-width: 767px) {
  /* Figma SP node 57:726（375 基準 vw） */
  #helmet-merit {
    gap: 10.667vw; /* 40px */
    padding-top: 10.667vw;
    padding-bottom: 10.667vw;
  }

  #helmet-merit .helmet-merit__inner.section-inner {
    padding-left: 6.4vw; /* 24px */
    padding-right: 6.4vw;
    box-sizing: border-box;
  }

  #helmet-merit .helmet-merit__box {
    gap: 4.267vw; /* 16px */
    padding-top: 8.533vw; /* 32px */
    padding-bottom: 8.533vw;
    padding-left: 6.4vw; /* 24px */
    padding-right: 6.4vw;
    border-radius: 5.333vw; /* 20px */
  }

  #helmet-merit .helmet-merit__title {
    font-size: 5.333vw; /* 20px */
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: 0.213vw; /* 0.8px */
  }

  #helmet-merit .helmet-merit__content {
    gap: 4.267vw; /* 16px */
    padding: 6.4vw; /* 24px */
    border-radius: 5.333vw; /* 20px */
  }

  #helmet-merit .helmet-merit__subtitle {
    font-size: 4.8vw; /* 18px */
    font-weight: 700;
    line-height: 1.6;
    letter-spacing: 0.192vw; /* 0.72px */
  }

  #helmet-merit .helmet-merit__subtitle-line {
    padding-inline: 1.867vw; /* 7px */
    padding-bottom: 1.067vw; /* 4px */
  }

  #helmet-merit .helmet-merit__text-wrap {
    gap: 4.267vw; /* 16px */
    padding-right: 0;
  }

  #helmet-merit .helmet-merit__text-row {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    padding-right: 17.067vw; /* 64px */
    box-sizing: border-box;
  }

  #helmet-merit .helmet-merit__text-row .helmet-merit__text {
    flex: 1 1 0%;
    min-width: 0;
  }

  #helmet-merit .helmet-merit__text {
    font-size: 3.733vw; /* 14px */
    font-weight: 500;
    line-height: 1.6;
  }

  #helmet-merit .helmet-merit__illust {
    position: absolute;
    bottom: 5.067vw; /* ~18.98px */
    right: 1.323vw; /* ~4.96px */
    left: auto;
    top: auto;
    width: 27.476vw; /* ~103px */
    height: auto;
    margin-top: 0;
    order: unset;
    z-index: 1;
    pointer-events: none;
  }
}

/* タイミングセクション (#helmet-timing)
   ========================================================================== */
#helmet-timing {
  background-image: url("../img/lp-helmet-section-bg-beige.webp");
  background-repeat: repeat;
  background-size: min(1166.667px, 83.333vw);
  background-position: center;
  padding-top: min(46.667px, 3.333vw);
  padding-bottom: min(46.667px, 3.333vw);
}

#helmet-timing .helmet-timing__inner {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: min(46.667px, 3.333vw);
}

#helmet-timing .helmet-timing__content {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: min(28px, 2vw);
  width: 100%;
  max-width: min(1213.333px, 86.667vw);
  margin-left: auto;
  margin-right: auto;
}

#helmet-timing .helmet-timing__subtitle {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0;
  width: fit-content;
  max-width: 100%;
  margin-inline: auto;
  color: var(--helmet-doctor-text);
  font-family: var(--helmet-font-gothic);
  font-size: min(25.667px, 1.833vw);
  font-weight: 700;
  letter-spacing: 0.035em;
  line-height: 1.6;
  margin-bottom: 0;
  opacity: 0;
  transform: translate3d(0, 24px, 0);
  will-change: transform, opacity;
}
#helmet-timing .helmet-timing__subtitle.is-inview {
  animation: animFadeUp 0.5s var(--helmet-ease-fade) both;
}

#helmet-timing .helmet-timing__subtitle-line {
  display: block;
  width: fit-content;
  background: linear-gradient(
    to bottom,
    transparent 0%,
    transparent 50%,
    rgba(237, 188, 132, 0.6) 50%,
    rgba(237, 188, 132, 0.6) 100%
  );
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
  padding-inline: min(7px, 0.5vw);
  padding-bottom: min(4px, 0.3vw);
}

#helmet-timing .helmet-timing__text {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: min(16px, 1.143vw);
  width: 100%;
  margin-bottom: 0;
  text-align: center;
  opacity: 0;
  transform: translate3d(0, 24px, 0);
  will-change: transform, opacity;
}
#helmet-timing .helmet-timing__text.is-inview {
  animation: animFadeUp 0.5s var(--helmet-ease-fade) both;
}

#helmet-timing .helmet-timing__text-p {
  color: var(--helmet-doctor-text);
  font-family: var(--helmet-font-gothic);
  font-size: min(18.667px, 1.333vw);
  font-weight: 500;
  line-height: 1.8;
  margin: 0;
}

#helmet-timing .helmet-timing__image {
  width: 100%;
  max-width: min(950.833px, 67.917vw);
  opacity: 0;
  transform: translate3d(0, 24px, 0);
  will-change: transform, opacity;
}
#helmet-timing .helmet-timing__image.is-inview {
  animation: animFadeUp 0.5s var(--helmet-ease-fade) both;
}

#helmet-timing .helmet-timing__image-scroll {
  width: 100%;
}

#helmet-timing .helmet-timing__image-scroll img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
}

@keyframes helmetScrollArrowOsc {
  0%,
  100% {
    transform: translateX(-0.2em);
  }
  50% {
    transform: translateX(0.35em);
  }
}

#helmet-timing .helmet-timing__scroll-note {
  display: none;
  margin: 0;
}

#helmet-timing .helmet-timing__scroll-note-arrow {
  display: inline-block;
  margin-left: 0.45em;
  animation: helmetScrollArrowOsc 2s ease-in-out infinite;
  will-change: transform;
}

@media screen and (max-width: 767px) {
  /* Figma SP node 57:760（375 基準 vw） */
  #helmet-timing {
    padding-top: 10.667vw; /* 40px */
    padding-bottom: 10.667vw;
  }

  #helmet-timing .helmet-timing__inner.section-inner {
    padding-left: 6.4vw; /* 24px */
    padding-right: 6.4vw;
    box-sizing: border-box;
  }

  #helmet-timing .helmet-section-header {
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    text-align: left;
    gap: 6.4vw; /* 24px */
    margin-bottom: 0;
  }

  #helmet-timing .helmet-section-header__image {
    width: 13.333vw; /* 50px */
    height: 13.333vw;
  }

  #helmet-timing .helmet-section-header__title {
    flex: 1 1 0%;
    min-width: 0;
    margin-top: 0;
    font-size: 5.333vw; /* 20px */
    font-weight: 700;
    line-height: 1.6;
    letter-spacing: 0.213vw; /* 0.8px */
    color: var(--helmet-color-primary);
  }

  #helmet-timing .helmet-timing__inner {
    gap: 6.4vw; /* 24px header〜本文ブロック */
  }

  #helmet-timing .helmet-timing__content {
    align-items: stretch;
    gap: 4.267vw; /* 16px */
    max-width: none;
  }

  #helmet-timing .helmet-timing__subtitle {
    font-size: 4.8vw; /* 18px */
    font-weight: 700;
    line-height: 1.6;
    letter-spacing: 0.192vw; /* 0.72px */
  }

  #helmet-timing .helmet-timing__subtitle-line {
    padding-inline: 1.867vw; /* 7px */
    padding-bottom: 1.067vw; /* 4px */
  }

  #helmet-timing .helmet-timing__text {
    gap: 4.267vw; /* 16px */
    text-align: left;
  }

  #helmet-timing .helmet-timing__text-p {
    font-size: 3.733vw; /* 14px */
    font-weight: 500;
    line-height: 1.8;
  }

  #helmet-timing .helmet-timing__image {
    max-width: none;
  }

  #helmet-timing .helmet-timing__image-scroll {
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    width: 100%;
    max-width: 100%;
  }

  #helmet-timing .helmet-timing__image-scroll img {
    width: 145.067vw; /* 544px */
    height: auto;
    max-width: none;
    object-fit: contain;
  }

  #helmet-timing .helmet-timing__scroll-note {
    display: block;
    margin: 2.133vw 0 0; /* 8px */
    text-align: center;
    font-family: var(--helmet-font-gothic);
    font-size: 3.2vw; /* 12px @375 */
    font-weight: 500;
    line-height: 1.4;
    letter-spacing: 0.04em;
    color: var(--helmet-doctor-text);
  }
}

@media (prefers-reduced-motion: reduce) {
  #helmet-timing .helmet-timing__scroll-note-arrow {
    animation: none;
  }
}

/* 仕組みセクション (#helmet-mechanism)
   ========================================================================== */
#helmet-mechanism.helmet-mechanism {
  background-image: url("../img/lp-helmet-section-bg-normal.webp");
  background-repeat: repeat;
  background-size: min(1166.667px, 83.333vw);
  background-position: center;
  padding-top: min(46.667px, 3.333vw); /* 40px */
  padding-bottom: min(46.667px, 3.333vw); /* 40px */
}

#helmet-mechanism .helmet-mechanism__inner {
  padding-left: min(93.333px, 6.667vw); /* 80px */
  padding-right: min(93.333px, 6.667vw); /* 80px */
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: min(46.667px, 3.333vw); /* 40px */
}

#helmet-mechanism .helmet-mechanism__content {
  width: 100%;
  max-width: min(1213.333px, 86.667vw); /* 1040px */
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: min(28px, 2vw); /* 24px */
}

#helmet-mechanism .helmet-mechanism__lead {
  font-family: var(--helmet-font-gothic);
  font-size: min(18.667px, 1.333vw); /* 16px */
  font-weight: 500;
  line-height: 1.8;
  color: #4f4f4f;
  text-align: center;
  margin: 0;
  opacity: 0;
  transform: translate3d(0, 24px, 0);
  will-change: transform, opacity;
}
#helmet-mechanism .helmet-mechanism__lead.is-inview {
  animation: animFadeUp 0.5s var(--helmet-ease-fade) both;
}

#helmet-mechanism .helmet-mechanism__image-main {
  width: 100%;
  max-width: min(980px, 70vw); /* 840px */
  background-color: var(--helmet-white);
  padding: min(28px, 2vw) min(65.333px, 4.667vw); /* 24px 56px */
  border-radius: min(28px, 2vw); /* 24px */
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transform: translate3d(0, 24px, 0);
  will-change: transform, opacity;
}
#helmet-mechanism .helmet-mechanism__image-main.is-inview {
  animation: animFadeUp 0.5s var(--helmet-ease-fade) both;
}

#helmet-mechanism .helmet-mechanism__image-main img {
  width: 100%;
  max-width: min(856.389px, 61.171vw); /* 734.05px */
  height: auto;
  display: block;
  object-fit: cover;
}

#helmet-mechanism .helmet-mechanism__text {
  font-family: var(--helmet-font-gothic);
  font-size: min(18.667px, 1.333vw); /* 16px */
  font-weight: 500;
  line-height: 1.8;
  color: #4f4f4f;
  text-align: center;
  margin: 0;
  opacity: 0;
  transform: translate3d(0, 24px, 0);
  will-change: transform, opacity;
}
#helmet-mechanism .helmet-mechanism__text.is-inview {
  animation: animFadeUp 0.5s var(--helmet-ease-fade) both;
}

#helmet-mechanism .helmet-mechanism__text br {
  display: block;
}

#helmet-mechanism .helmet-mechanism__text-marker {
  color: inherit;
  display: inline;
  background: linear-gradient(
    to bottom,
    transparent 0%,
    transparent 50%,
    rgba(236, 194, 101, 0.5) 50%,
    rgba(236, 194, 101, 0.5) 100%
  );
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
  padding: 0 0.15em;
}

#helmet-mechanism .helmet-mechanism__before-after {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: min(28px, 2vw); /* 24px */
  padding-top: min(28px, 2vw); /* 24px */
  opacity: 0;
  transform: translate3d(0, 24px, 0);
  will-change: transform, opacity;
}
#helmet-mechanism .helmet-mechanism__before-after.is-inview {
  animation: animFadeUp 0.5s var(--helmet-ease-fade) both;
}

#helmet-mechanism .helmet-mechanism__before-after-title {
  font-family: var(--helmet-font-gothic);
  font-size: min(23.333px, 1.667vw); /* 20px */
  font-weight: 700;
  color: #4f4f4f;
  letter-spacing: min(0.933px, 0.067vw); /* 0.8px */
  line-height: 1.6;
  margin: 0;
}

#helmet-mechanism .helmet-mechanism__before-after-images {
  width: 100%;
  max-width: min(980px, 70vw); /* 840px */
  background-color: var(--helmet-white);
  padding: min(46.667px, 3.333vw); /* 40px */
  border-radius: min(28px, 2vw); /* 24px */
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: min(28px, 2vw); /* 24px */
}

#helmet-mechanism .helmet-mechanism__before-after-item {
  width: 80%;
  height: auto;
  display: block;
  object-fit: contain;
}

@media screen and (max-width: 767px) {
  #helmet-mechanism.helmet-mechanism {
    padding-top: 10.667vw; /* 40px */
    padding-bottom: 10.667vw; /* 40px */
  }

  #helmet-mechanism .helmet-section-header {
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    text-align: left;
    gap: 6.4vw; /* 24px */
    margin-bottom: 0;
  }

  #helmet-mechanism .helmet-section-header__image {
    width: 13.333vw; /* 50px */
    height: 13.333vw;
  }

  #helmet-mechanism .helmet-section-header__title {
    flex: 1 1 0%;
    min-width: 0;
    margin-top: 0;
    font-size: 5.333vw; /* 20px */
    font-weight: 700;
    line-height: 1.6;
    letter-spacing: 0.213vw; /* 0.8px */
    color: var(--helmet-color-primary);
  }

  #helmet-mechanism .helmet-mechanism__inner {
    padding-left: 6.4vw; /* 24px */
    padding-right: 6.4vw; /* 24px */
    gap: 6.4vw; /* 24px */
  }

  #helmet-mechanism .helmet-mechanism__content {
    gap: 4.267vw; /* 16px */
  }

  #helmet-mechanism .helmet-mechanism__lead {
    width: 100%;
    font-size: 4vw;
    line-height: 1.8;
    text-align: left;
    color: var(--helmet-doctor-text);
  }

  #helmet-mechanism .helmet-mechanism__image-main {
    max-width: none;
    padding: 4.267vw 6.4vw; /* 16px 24px */
    border-radius: 4.267vw; /* 16px */
  }

  #helmet-mechanism .helmet-mechanism__image-main img {
    max-width: 100%;
  }

  #helmet-mechanism .helmet-mechanism__text {
    width: 100%;
    font-size: 3.733vw; /* 14px */
    line-height: 1.8;
    text-align: left;
    color: var(--helmet-doctor-text);
  }

  #helmet-mechanism .helmet-mechanism__before-after {
    gap: 4.267vw; /* 16px */
    padding-top: 6.4vw; /* 24px */
  }

  #helmet-mechanism .helmet-mechanism__before-after-title {
    font-size: 4.8vw; /* 18px */
    letter-spacing: 0.192vw; /* 0.72px */
  }

  #helmet-mechanism .helmet-mechanism__before-after-images {
    max-width: none;
    padding: 6.4vw 0; /* 24px 0 */
    border-radius: 6.4vw; /* 24px */
    gap: 3.2vw; /* 12px */
  }

  #helmet-mechanism .helmet-mechanism__before-after-item {
    width: auto;
    max-width: 100%;
  }

  #helmet-mechanism .helmet-mechanism__before-after-item:nth-child(1) {
    width: 65.867vw; /* 247px */
  }

  #helmet-mechanism .helmet-mechanism__before-after-item:nth-child(2) {
    width: 64.8vw; /* 243px */
  }

  #helmet-mechanism .helmet-mechanism__before-after-item:nth-child(3) {
    width: 63.467vw; /* 238px */
  }
}

/* 特徴セクション (#helmet-feature)
   ========================================================================== */
#helmet-feature {
  background-image: url("../img/lp-helmet-section-bg-normal.webp");
  background-repeat: repeat;
  background-size: min(1166.667px, 83.333vw);
  background-position: center;
  padding-top: min(46.667px, 3.333vw);   /* 40px */
  padding-bottom: min(46.667px, 3.333vw);
}

#helmet-feature .helmet-feature__inner {
  padding-left: min(93.333px, 6.667vw);   /* 80px */
  padding-right: min(93.333px, 6.667vw);
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: min(46.667px, 3.333vw);           /* 40px */
}

#helmet-feature .helmet-feature__content {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: min(46.667px, 3.333vw);           /* 40px */
}

#helmet-feature .helmet-feature__item {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  justify-content: flex-start;
}

#helmet-feature .helmet-feature__item:nth-child(even) {
  flex-direction: row-reverse;
}

#helmet-feature .helmet-feature__image {
  width: min(583.333px, 41.667vw);       /* 500px */
  height: min(373.333px, 26.667vw);     /* 320px */
  flex-shrink: 0;
  margin-right: max(-93.333px, -6.667vw); /* -80px overlap */
  border-radius: min(32.667px, 2.333vw);  /* 28px */
  overflow: hidden;
  background-color: var(--helmet-white);
  opacity: 0;
  transform: translate3d(0, 24px, 0);
  will-change: transform, opacity;
}
#helmet-feature .helmet-feature__item.is-inview .helmet-feature__image {
  animation: animFadeUp 0.5s var(--helmet-ease-fade) 0.2s both;
}

#helmet-feature .helmet-feature__item:nth-child(even) .helmet-feature__image {
  margin-right: 0;
  margin-left: max(-93.333px, -6.667vw);
}

#helmet-feature .helmet-feature__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

#helmet-feature .helmet-feature__text-area {
  flex: 1;
  min-width: 0;
  margin-top: min(56px, 4vw);           /* 48px offset from item top */
  background-color: var(--helmet-white);
  border: 2px solid var(--helmet-color-border);
  border-radius: min(23.333px, 1.667vw); /* 20px */
  padding: min(46.667px, 3.333vw) min(37.333px, 2.667vw); /* 40px 32px */
  display: flex;
  flex-direction: column;
  align-items: stretch;
  z-index: 1;
  opacity: 0;
  transform: translate3d(0, 24px, 0);
  will-change: transform, opacity;
}
#helmet-feature .helmet-feature__item.is-inview .helmet-feature__text-area {
  animation: animFadeUp 0.5s var(--helmet-ease-fade) 0s both;
}


#helmet-feature .helmet-feature__text-header {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: min(18.667px, 1.333vw);           /* 16px */
  padding-left: min(4.667px, 0.333vw);   /* 4px */
  margin-bottom: min(28px, 2vw);        /* 24px gap to body */
}

#helmet-feature .helmet-feature__num {
  font-family: var(--helmet-font-gothic);
  font-size: min(56px, 4vw);             /* 48px */
  font-weight: 400;
  color: var(--helmet-color-primary);
  letter-spacing: 0.02em;
  line-height: 1;
  flex-shrink: 0;
  margin-bottom: min(9.333px, 0.667vw);  /* 8px */
}

#helmet-feature .helmet-feature__title-wrap {
  display: flex;
  flex-direction: column;
  gap: 0;
  min-width: 0;
}

#helmet-feature .helmet-feature__sub-title {
  font-family: var(--helmet-font-gothic);
  font-size: min(16.333px, 1.167vw);     /* 14px */
  font-weight: 500;
  color: #717071;
  letter-spacing: 0.02em;
  line-height: 1.6;
  margin: 0;
}

#helmet-feature .helmet-feature__title {
  font-family: var(--helmet-font-gothic);
  font-size: min(23.333px, 1.667vw);     /* 20px */
  font-weight: 700;
  color: var(--helmet-color-primary);
  letter-spacing: 0.02em;
  line-height: 1.6;
  margin: 0;
}

#helmet-feature .helmet-feature__text-body {
  border-top: 0.5px solid #c2bdba;
  padding-top: min(18.667px, 1.333vw);  /* 16px */
  margin-top: 0;
}

#helmet-feature .helmet-feature__text-body p {
  font-family: var(--helmet-font-gothic);
  font-size: min(16px, 1.143vw); /* 1400px 基準 */
  font-weight: 500;
  color: #4f4f4f;
  line-height: 1.6;
  margin: 0 0 1em 0;
}

#helmet-feature .helmet-feature__text-body p:last-child {
  margin-bottom: 0;
}

#helmet-feature .helmet-feature__action {
  width: fit-content;
  margin-left: auto;
  margin-top: min(28px, 2vw);
}

#helmet-feature .helmet-feature__btn {
  display: inline-flex;
  flex-direction: row;
  align-items: center;
  gap: min(46.667px, 3.333vw);          /* 40px from Figma gap in btn */
  background-color: var(--helmet-color-primary);
  color: var(--helmet-white);
  padding: min(11.667px, 0.833vw) min(9.333px, 0.667vw) min(11.667px, 0.833vw) min(18.667px, 1.333vw); /* 10 8 10 16 */
  border-radius: min(116.667px, 8.333vw); /* 100px pill */
  font-family: var(--helmet-font-gothic);
  font-size: min(16.333px, 1.167vw);     /* 14px */
  font-weight: 700;
  line-height: 1.4;
  text-decoration: none;
  transition: opacity 0.3s ease;
}

#helmet-feature .helmet-feature__btn:hover {
  opacity: 0.9;
}

#helmet-feature .helmet-feature__btn-icon {
  width: min(32.667px, 2.333vw);         /* 28px */
  height: min(32.667px, 2.333vw);
  flex-shrink: 0;
  object-fit: contain;
}

@media screen and (max-width: 767px) {
  #helmet-feature {
    padding-top: 10.667vw;   /* 40px @375 */
    padding-bottom: 10.667vw;
  }

  #helmet-feature .helmet-feature__inner {
    padding-left: 6.4vw;   /* 24px @375 */
    padding-right: 6.4vw;
    gap: 6.4vw;           /* 24px */
  }

  #helmet-feature .helmet-section-header {
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    text-align: left;
    gap: 6.4vw; /* 24px */
    margin-bottom: 0;
  }

  #helmet-feature .helmet-section-header__image {
    width: 13.333vw; /* 50px */
    height: 13.333vw;
  }

  #helmet-feature .helmet-section-header__title {
    flex: 1 1 0%;
    min-width: 0;
    margin-top: 0;
    font-size: 5.333vw; /* 20px */
    line-height: 1.6;
    letter-spacing: 0.213vw; /* 0.8px */
    color: var(--helmet-color-primary);
  }

  #helmet-feature .helmet-section-header__title .helmet-section-header__title-lead {
    display: block;
    font-size: 3.467vw; /* 13px */
    font-weight: 700;
    line-height: 1.6;
    letter-spacing: 0.139vw; /* 0.52px */
  }

  #helmet-feature .helmet-feature__content {
    gap: 10.667vw;
  }

  #helmet-feature .helmet-feature__item {
    flex-direction: column;
    align-items: stretch;
    padding-bottom: 4vw;
  }

  #helmet-feature .helmet-feature__item:nth-child(even) {
    flex-direction: column;
  }

  #helmet-feature .helmet-feature__image {
    width: 100%;
    height: 66.133vw;        /* 248px @375 */
    margin-right: 0;
    margin-left: 0;
    margin-bottom: -21.333vw; /* overlap */
    border-radius: 5.333vw;  /* 20px */
  }

  #helmet-feature .helmet-feature__item:nth-child(even) .helmet-feature__image {
    margin-left: 0;
  }

  #helmet-feature .helmet-feature__text-area {
    padding-top: 8.533vw; /* 32px */
    margin-right: 0;
    margin-top: 4.267vw; /* 16px */
    border-radius: 5.333vw;   /* 20px */
    padding: 8.533vw 6.4vw; /* 32px 24px */
  }

  #helmet-feature .helmet-feature__item:nth-child(odd) .helmet-feature__text-area {
    margin-left: 4.267vw; /* 16px */
    margin-right: 0;
    width: calc(100% - 4.267vw);
  }

  #helmet-feature .helmet-feature__item:nth-child(even) .helmet-feature__text-area {
    margin-left: 0;
    margin-right: 4.267vw; /* 16px */
    width: calc(100% - 4.267vw);
  }

  #helmet-feature .helmet-feature__text-header {
    gap: 4.267vw;             /* 16px */
    padding-left: 1.067vw;    /* 4px */
    margin-bottom: 4.267vw;     /* 16px */
  }

  #helmet-feature .helmet-feature__num {
    font-size: 12.8vw;        /* 48px */
    margin-bottom: 2.133vw;  /* 8px @375 */
  }

  #helmet-feature .helmet-feature__title-wrap {
    gap: 0;
  }

  #helmet-feature .helmet-feature__sub-title {
    font-size: 3.2vw;       /* 12px */
    line-height: 1.4;
    letter-spacing: 0.064vw; /* 0.24px */
    color: #717071;
  }

  #helmet-feature .helmet-feature__title {
    font-size: 4.267vw;       /* 16px */
    line-height: 1.4;
    letter-spacing: 0;
  }

  #helmet-feature .helmet-feature__text-body {
    padding-top: 4.267vw;     /* 16px */
  }

  #helmet-feature .helmet-feature__text-body p {
    font-size: 3.733vw;           /* 14px */
    line-height: 1.6;
    color: var(--helmet-doctor-text);
    margin: 0 0 1.2em 0;
  }

  #helmet-feature .helmet-feature__action {
    width: 100%;
    margin-top: 6.4vw;
    margin-left: 0;
  }

  #helmet-feature .helmet-feature__btn {
    margin-left: 0;
    gap: 10.667vw;
    padding: 2.667vw 2.133vw 2.667vw 4.267vw; /* 10 8 10 16 */
    border-radius: 26.667vw;  /* 100px */
    font-size: 3.733vw;       /* 14px */
  }

  #helmet-feature .helmet-feature__btn-icon {
    width: 7.467vw;          /* 28px */
    height: 7.467vw;
  }
}

/* 治療実績セクション (#helmet-case)
   ========================================================================== */
#helmet-case {
  display: none;
  background-image: url("../img/lp-helmet-section-bg-normal.webp");
  background-repeat: repeat;
  background-size: min(1166.667px, 83.333vw);
  background-position: center;
  padding-top: min(46.667px, 3.333vw);
  padding-bottom: min(46.667px, 3.333vw);
  margin-top: -2px;
}

#helmet-case .helmet-case__wrap {
  width: 100%;
  display: flex;
  justify-content: center;
  padding-left: min(93.333px, 6.667vw);
  padding-right: 0;
}

#helmet-case .helmet-case__inner.section-inner {
  width: 100%;
  max-width: min(1600px, 100vw);
  background-color: #eed798;
  border-bottom-left-radius: min(80px, 5.714vw);
  padding: min(65.333px, 4.667vw) 0 min(100px, 7.143vw);
  display: flex;
  flex-direction: column;
  gap: min(37.333px, 2.667vw);
}

#helmet-case .helmet-case__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: min(23.333px, 1.667vw);
  padding-left: min(93.333px, 6.667vw);
  padding-right: min(93.333px, 6.667vw);
  opacity: 0;
  transform: translate3d(0, 24px, 0);
}

#helmet-case.is-inview .helmet-case__header {
  animation: animFadeUp 0.5s var(--helmet-ease-fade) 0s both;
}

#helmet-case .helmet-case__title {
  margin: 0;
  font-family: var(--helmet-font-gothic);
  font-size: min(30.333px, 2.167vw);
  font-weight: 500;
  color: #4f4f4f;
}

#helmet-case .helmet-case__link {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: min(46.667px, 3.333vw);
  background-color: var(--helmet-white);
  color: #8e694a;
  text-decoration: none;
  font-family: var(--helmet-font-gothic);
  font-size: min(16.333px, 1.167vw);
  font-weight: 500;
  padding: min(11.667px, 0.833vw) min(9.333px, 0.667vw) min(11.667px, 0.833vw) min(18.667px, 1.333vw);
  border-radius: min(116.667px, 8.333vw);
}

#helmet-case .helmet-case__link-icon {
  width: min(32.667px, 2.333vw);
  height: min(32.667px, 2.333vw);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: min(14px, 1vw);
  color: #8e694a;
}

#helmet-case .helmet-case__lead {
  margin: 0;
  font-family: var(--helmet-font-gothic);
  font-size: min(18.667px, 1.333vw);
  color: #4f4f4f;
  padding-left: min(93.333px, 6.667vw);
  padding-right: min(93.333px, 6.667vw);
  opacity: 0;
  transform: translate3d(0, 24px, 0);
}

#helmet-case.is-inview .helmet-case__lead {
  animation: animFadeUp 0.5s var(--helmet-ease-fade) 0.1s both;
}

#helmet-case .helmet-case__slider-wrap {
  display: flex;
  flex-direction: column;
  gap: min(28px, 2vw);
  opacity: 0;
  transform: translate3d(0, 24px, 0);
}

#helmet-case.is-inview .helmet-case__slider-wrap {
  animation: animFadeUp 0.5s var(--helmet-ease-fade) 0.2s both;
}

#helmet-case .helmet-case__controls {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: min(18.667px, 1.333vw);
  padding-left: min(93.333px, 6.667vw);
  padding-right: min(93.333px, 6.667vw);
}

#helmet-case .helmet-case__nav {
  display: flex;
  align-items: center;
  gap: min(14px, 1vw);
}

#helmet-case .helmet-case__nav-btn {
  width: min(42px, 3vw);
  height: min(42px, 3vw);
  display: flex;
  align-items: center;
  justify-content: center;
}

#helmet-case .helmet-case__nav-btn img {
  width: 100%;
  height: 100%;
}

#helmet-case .helmet-case__pagination {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: min(12px, 0.857vw);
}

#helmet-case .helmet-case__pagination .swiper-pagination-bullet {
  width: min(8px, 0.571vw);
  height: min(8px, 0.571vw);
  margin: 0;
  background-color: #c2c2c2;
  opacity: 1;
}

#helmet-case .helmet-case__pagination .swiper-pagination-bullet-active {
  background-color: #cfad4c;
}

#helmet-case .helmet-case__slider {
  width: 100%;
  overflow: hidden;
}

#helmet-case .helmet-case__slide {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: min(9.333px, 0.667vw);
}

#helmet-case .helmet-case__slide-image {
  width: 100%;
  height: min(256.667px, 18.333vw);
  border-radius: min(11.667px, 0.833vw);
  overflow: hidden;
  background-color: #b2b2b2;
  transform: scale(0.9);
  transition: transform 0.4s ease;
}

#helmet-case .swiper-slide-active .helmet-case__slide-image {
  transform: scale(1);
}

#helmet-case .helmet-case__slide-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

#helmet-case .helmet-case__slide-text {
  width: 100%;
  margin: 0;
  text-align: left;
  font-family: var(--helmet-font-gothic);
  font-size: min(18.667px, 1.333vw);
  color: #4f4f4f;
}

@media screen and (max-width: 767px) {
  #helmet-case {
    padding-top: 10.667vw;
    padding-bottom: 10.667vw;
  }

  #helmet-case .helmet-case__wrap {
    padding-left: 6.4vw;
    padding-right: 0;
  }

  #helmet-case .helmet-case__inner.section-inner {
    border-bottom-left-radius: 16vw;
    padding: 10vw 0 16vw;
    gap: 6.4vw;
  }

  #helmet-case .helmet-case__header {
    display: contents;
  }

  #helmet-case .helmet-case__title {
    order: 1;
    font-size: 6.4vw;
    padding-left: 6.4vw;
    padding-right: 6.4vw;
  }

  #helmet-case .helmet-case__link {
    order: 4;
    margin-left: auto;
    margin-right: auto;
    margin-top: 0;
    align-self: center;
  }

  #helmet-case .helmet-case__link {
    gap: 8vw;
    font-size: 3.733vw;
    padding: 2.667vw 2.133vw 2.667vw 4.267vw;
    border-radius: 26.667vw;
  }

  #helmet-case .helmet-case__link-icon {
    width: 7.467vw;
    height: 7.467vw;
    font-size: 3.2vw;
  }

  #helmet-case .helmet-case__lead {
    order: 2;
    font-size: 3.733vw;
    padding-left: 6.4vw;
    padding-right: 6.4vw;
  }

  #helmet-case .helmet-case__lead br {
    display: none;
  }

  #helmet-case .helmet-case__slider-wrap {
    order: 3;
    gap: 4.267vw;
  }

  #helmet-case .helmet-case__controls {
    gap: 3.2vw;
    padding-left: 6.4vw;
    padding-right: 6.4vw;
  }

  #helmet-case .helmet-case__nav {
    gap: 3.2vw;
  }

  #helmet-case .helmet-case__nav-btn {
    width: 9.6vw;
    height: 9.6vw;
  }

  #helmet-case .helmet-case__pagination {
    gap: 2.133vw;
  }

  #helmet-case .helmet-case__pagination .swiper-pagination-bullet {
    width: 2.133vw;
    height: 2.133vw;
  }

  #helmet-case .helmet-case__slide {
    gap: 2.133vw;
  }

  #helmet-case .helmet-case__slide-image {
    height: 58.667vw;
    border-radius: 3.2vw;
  }

  #helmet-case .helmet-case__slide-text {
    font-size: 3.733vw;
  }
}

/* 治療の流れ (#helmet-flow)
   ========================================================================== */
#helmet-flow{
  background-image: url("../img/lp-helmet-section-bg-beige.webp");
  background-repeat: repeat;
  background-size: min(1166.667px, 83.333vw);
  background-position: center;
  position: relative;
  overflow: hidden;
}

#helmet-flow .helmet-flow__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding-top: min(46.667px, 3.333vw);
  padding-bottom: min(93.333px, 6.667vw);
  padding-left: min(93.333px, 6.667vw);
  padding-right: min(93.333px, 6.667vw);
  gap: min(46.667px, 3.333vw);
  position: relative;
}

#helmet-flow .helmet-section-header {
  margin-right: auto;
}

#helmet-flow .helmet-flow__lead {
  font-size: min(18.667px, 1.333vw);
  color: #4f4f4f;
  font-family: var(--helmet-font-gothic);
  font-weight: 500;
  line-height: 1.6;
  text-align: center;
  max-width: min(1120px, 80vw);
  margin: 0;
}

#helmet-flow .helmet-flow__content {
  width: 80%;
  display: flex;
  flex-direction: column;
  align-items: center;
}

#helmet-flow .helmet-flow__list {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0;
  list-style: none;
  margin: 0;
  padding: 0;
  width: 100%;
}

#helmet-flow .helmet-flow__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  position: relative;
  z-index: 1;
}

#helmet-flow .helmet-flow__item::after {
  content: "";
  display: block;
  width: min(25.846px, 1.846vw);
  height: min(25.846px, 1.846vw);
  background: url("../img/lp-helmet-flow-icon-arrow.svg") no-repeat center / contain;
  flex-shrink: 0;
  margin-top: min(28px, 2vw);
  margin-bottom: min(28px, 2vw);
}

/* 流れセクション：矢印を上から下に出現（スクロールで発火） */
#helmet-flow .helmet-flow__list.arrow-animate .helmet-flow__item::after {
  opacity: 0;
  transform: translate3d(0, -16px, 0);
  will-change: transform, opacity;
}
#helmet-flow .helmet-flow__list.arrow-animate .helmet-flow__item.is-inview::after {
  animation: flowArrowDropIn 0.5s var(--helmet-ease-fade) 1.2s both;
}

@keyframes flowArrowDropIn {
  from {
    opacity: 0;
    transform: translate3d(0, -16px, 0);
  }
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

#helmet-flow .helmet-flow__item:last-child::after {
  display: none;
}

#helmet-flow .helmet-flow__item-num {
  position: absolute;
  left: max(-18.667px, -1.333vw);
  top: max(-17.278px, -1.234vw);
  width: min(65.333px, 4.667vw);
  height: min(65.333px, 4.667vw);
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* 流れセクション：ステップ番号をぽこっと出現（スクロールで発火） */
#helmet-flow .helmet-flow__item-num.pop-in {
  opacity: 0;
  transform: translate3d(0, 20px, 0) scale3d(0.85, 0.85, 1);
  will-change: transform, opacity;
}
#helmet-flow .helmet-flow__item.is-inview .helmet-flow__item-num.pop-in {
  animation: flowItemNumPopIn 0.6s var(--helmet-ease-char) 0.5s both;
}

@keyframes flowItemNumPopIn {
  0% {
    opacity: 0;
    transform: translate3d(0, 20px, 0) scale3d(0.85, 0.85, 1);
  }
  80%, 100% {
    opacity: 1;
  }
  100% {
    transform: translate3d(0, 0, 0) scale3d(1, 1, 1);
  }
}

#helmet-flow .helmet-flow__item-num img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

#helmet-flow .helmet-flow__item-box {
  width: 100%;
  background-color: var(--helmet-white);
  border: 2px solid var(--helmet-color-border);
  border-radius: min(23.333px, 1.667vw);
  padding: min(46.667px, 3.333vw) min(37.333px, 2.667vw);
  display: flex;
  flex-direction: column;
  gap: min(28px, 2vw);
  position: relative;
}

/* 流れセクション：アイテムボックスを下からふわっと浮かび上がり（スクロールで発火） */
#helmet-flow .helmet-flow__item-box.fade-up {
  opacity: 0;
  transform: translate3d(0, 24px, 0);
  will-change: transform, opacity;
}
#helmet-flow .helmet-flow__item.is-inview .helmet-flow__item-box.fade-up {
  animation: flowItemBoxFadeUp 0.8s var(--helmet-ease-fade) 0s both;
}

@keyframes flowItemBoxFadeUp {
  from {
    opacity: 0;
    transform: translate3d(0, 24px, 0);
  }
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

#helmet-flow .helmet-flow__item-header {
  display: flex;
  align-items: center;
  justify-content: center;
  padding-left: min(4.667px, 0.333vw);
}

#helmet-flow .helmet-flow__item-title {
  font-size: min(23.333px, 1.667vw);
  font-weight: 700;
  color: var(--helmet-color-primary);
  font-family: var(--helmet-font-gothic);
  letter-spacing: min(0.4px, 0.033vw);
  line-height: 1.6;
  margin: 0;
  text-align: center;
}

#helmet-flow .helmet-flow__item-body {
  display: flex;
  align-items: flex-start;
  gap: min(46.667px, 3.333vw);
  padding-top: min(18.667px, 1.333vw);
  border-top: 0.5px solid #c2bdba;
  padding-left: min(4.667px, 0.333vw);
}

#helmet-flow .helmet-flow__item-text {
  flex: 1;
  min-width: 0;
  font-size: min(17.5px, 1.25vw);
  font-weight: 500;
  color: #4f4f4f;
  font-family: var(--helmet-font-gothic);
  line-height: 1.6;
  margin: 0;
}

#helmet-flow .helmet-flow__item-para {
  margin: 0;
}

#helmet-flow .helmet-flow__item-text > .helmet-flow__item-para + .helmet-flow__item-para {
  margin-top: min(16px, 1.143vw);
}

#helmet-flow .helmet-flow__item-text > .helmet-flow__item-list {
  margin: min(20px, 1.429vw) 0 0;
  padding: min(16px, 1.143vw) min(16px, 1.143vw) min(16px, 1.143vw) min(36px, 2.571vw);
  list-style-type: disc;
  list-style-position: outside;
  font-size: min(16px, 1.067vw);
  letter-spacing: 0.05em;
  line-height: 1.6;
  background-color: #fbf4e3;
  border-radius: min(8px, 0.571vw);
  box-sizing: border-box;
}

#helmet-flow .helmet-flow__item-text > .helmet-flow__item-list > li + li {
  margin-top: min(10px, 0.714vw);
}

#helmet-flow .helmet-flow__item-link {
  color: #f19640;
  text-decoration: underline;
  text-decoration-skip-ink: none;
  text-underline-offset: min(2px, 0.143vw);
  transition: opacity 0.2s var(--helmet-ease-fade);
}

#helmet-flow .helmet-flow__item-link:hover {
  opacity: 0.82;
}

#helmet-flow .helmet-flow__item-link:focus-visible {
  outline: 2px solid #f19640;
  outline-offset: min(3px, 0.214vw);
  border-radius: min(2px, 0.143vw);
}

#helmet-flow .helmet-flow__item-link--web,
#helmet-flow .helmet-flow__item-link--line,
#helmet-flow .helmet-flow__item-link--cost,
#helmet-flow .helmet-flow__item-link--external {
  color: #f19640;
}

#helmet-flow .helmet-flow__item-link--external {
  word-break: break-all;
}

/* 流れセクション：テキストを右からふわっと出現（スクロールで発火） */
#helmet-flow .helmet-flow__item-text.fade-from-right {
  opacity: 0;
  transform: translate3d(24px, 0, 0);
  will-change: transform, opacity;
}
#helmet-flow .helmet-flow__item.is-inview .helmet-flow__item-text.fade-from-right {
  animation: flowItemTextFadeIn 0.8s var(--helmet-ease-fade) 0.15s both;
}

@keyframes flowItemTextFadeIn {
  from {
    opacity: 0;
    transform: translate3d(24px, 0, 0);
  }
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

#helmet-flow .helmet-flow__item-image {
  flex-shrink: 0;
  width: min(280px, 20vw);
  height: min(175px, 12.5vw);
  border-radius: min(11.667px, 0.833vw);
  overflow: hidden;
  background-color: #b2b2b2;
}

/* 流れセクション：アイテム画像を小さい状態から拡大（スクロールで発火） */
#helmet-flow .helmet-flow__item-image.scale-in {
  opacity: 0;
  transform: scale3d(0.6, 0.6, 1);
  transform-origin: center center;
  will-change: transform, opacity;
}
#helmet-flow .helmet-flow__item.is-inview .helmet-flow__item-image.scale-in {
  animation: flowItemImageScaleIn 0.6s var(--helmet-ease-fade) 0.35s both;
}

@keyframes flowItemImageScaleIn {
  from {
    opacity: 0;
    transform: scale3d(0.6, 0.6, 1);
  }
  to {
    opacity: 1;
    transform: scale3d(1, 1, 1);
  }
}

#helmet-flow .helmet-flow__item-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

#helmet-flow .helmet-flow__illust {
  position: absolute;
  right: max(-167.988px, -11.999vw);
  bottom: min(1100.05px, 78.575vw);
  width: min(374.009px, 26.715vw);
  height: min(449.267px, 32.09vw);
  object-fit: contain;
  object-position: bottom right;
  pointer-events: none;
  z-index: 0;
  transform-origin: center bottom;
  will-change: transform;
  animation: flowIllustTilt 5s var(--helmet-ease-fade) infinite;
}

@keyframes flowIllustTilt {
  0%, 100% {
    transform: translate3d(0, 0, 0) rotate(0);
  }
  50% {
    transform: translate3d(0, 0, 0) rotate(-6deg);
  }
}

@media screen and (max-width: 767px) {
  #helmet-flow .helmet-flow__inner {
    padding-top: 10.667vw;
    padding-bottom: 21.333vw;
    padding-left: 6.4vw;
    padding-right: 6.4vw;
    gap: 6.4vw;
  }

  #helmet-flow .helmet-section-header {
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    text-align: left;
    gap: 6.4vw;
    margin-bottom: 0;
    margin-right: 0;
  }

  #helmet-flow .helmet-section-header__image {
    width: 13.333vw;
    height: 13.333vw;
  }

  #helmet-flow .helmet-section-header__title {
    flex: 1 1 0%;
    min-width: 0;
    margin-top: 0;
    font-size: 5.333vw;
    letter-spacing: 0.213vw;
    line-height: 1.6;
    color: var(--helmet-color-primary);
  }

  #helmet-flow .helmet-flow__lead {
    width: 100%;
    font-size: 3.733vw;
    line-height: 1.6;
    text-align: left;
    color: var(--helmet-doctor-text);
    max-width: 100%;
  }

  #helmet-flow .helmet-flow__content {
    width: 100%;
    max-width: none;
  }

  #helmet-flow .helmet-flow__item::after {
    width: 5.907vw;
    height: 5.907vw;
    margin-top: 5.333vw;
    margin-bottom: 5.333vw;
  }

  #helmet-flow .helmet-flow__item-num {
    left: -4.267vw;
    top: -3.947vw;
    width: 14.933vw;
    height: 14.933vw;
  }

  #helmet-flow .helmet-flow__item-box {
    padding: 8.533vw 6.4vw;
    border-radius: 5.333vw;
    gap: 4.267vw;
  }

  #helmet-flow .helmet-flow__item-header {
    padding-left: 1.067vw;
  }

  #helmet-flow .helmet-flow__item-title {
    font-size: 4.267vw;
    letter-spacing: 0.107vw;
    line-height: 1.6;
  }

  #helmet-flow .helmet-flow__item-body {
    flex-direction: column;
    gap: 4.267vw;
    padding-top: 4.267vw;
    padding-left: 1.067vw;
  }

  #helmet-flow .helmet-flow__item-text {
    font-size: 3.733vw;
    line-height: 1.6;
    color: var(--helmet-doctor-text);
  }

  #helmet-flow .helmet-flow__item-text > .helmet-flow__item-para + .helmet-flow__item-para {
    margin-top: 4.267vw;
  }

  #helmet-flow .helmet-flow__item-text > .helmet-flow__item-list {
    margin-top: 5.333vw;
    font-size: 3.467vw;
    padding: 4.267vw 4.267vw 4.267vw 9.6vw;
    border-radius: 2.133vw;
  }

  #helmet-flow .helmet-flow__item-text > .helmet-flow__item-list > li + li {
    margin-top: 2.667vw;
  }

  #helmet-flow .helmet-flow__item-link {
    text-underline-offset: 0.4vw;
  }

  #helmet-flow .helmet-flow__item-image {
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 10;
    border-radius: 2.667vw;
  }

  #helmet-flow .helmet-flow__illust {
    display: none;
  }
}

/* 知っておきたいこと (#helmet-knowledge)
   ========================================================================== */
#helmet-knowledge.helmet-knowledge {
  background-color: #a1c2de;
  background-image: url("../img/lp-helmet-section-bg-blue.webp");
  background-repeat: repeat;
  background-position: center;
  background-size: min(1166.667px, 83.333vw);
  padding: min(65.333px, 4.667vw) 0 min(65.333px, 4.667vw);
}

#helmet-knowledge .helmet-knowledge__inner {
  padding-left: min(93.333px, 6.667vw);
  padding-right: min(93.333px, 6.667vw);
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: min(46.667px, 3.333vw);
}

#helmet-knowledge .helmet-knowledge__box {
  position: relative;
  background-color: #85aac8;
  border-radius: min(23.333px, 1.667vw);
  padding: min(65.333px, 4.667vw) min(74.667px, 6.333vw) min(46.667px, 3.333vw) min(74.667px, 6.333vw);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: min(28px, 2vw);
  overflow: hidden;
}

#helmet-knowledge .helmet-knowledge__title {
  font-size: min(30.333px, 2.167vw);
  font-weight: 700;
  color: var(--helmet-white);
  font-family: var(--helmet-font-gothic);
  letter-spacing: min(1.213px, 0.087vw);
  line-height: 1.6;
  margin: 0;
  flex-shrink: 0;
}
#helmet-knowledge .helmet-knowledge__title.is-inview {
  animation: animFadeUp 0.5s var(--helmet-ease-fade) both;
}

#helmet-knowledge .helmet-knowledge__content {
  width: 100%;
  background-color: var(--helmet-white);
  border-radius: min(23.333px, 1.667vw);
  padding: min(56px, 4vw) min(46.667px, 3.333vw) min(56px, 4vw) min(93.333px, 6.667vw); /* 80px */
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

#helmet-knowledge .helmet-knowledge__list {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: min(14px, 1vw);
  margin: 0;
  padding: 0;
}
#helmet-knowledge .helmet-knowledge__content.is-inview .helmet-knowledge__list.anim-fade-from-right {
  animation: animFadeFromRight 0.8s var(--helmet-ease-fade) both;
}

#helmet-knowledge .helmet-knowledge__item {
  display: flex;
  align-items: center;
  gap: 0;
  position: relative;
  list-style: none;
  font-size: min(18.667px, 1.333vw); /* 16px */
  font-weight: 500;
  color: #4f4f4f;
  font-family: var(--helmet-font-gothic);
  line-height: 1.6;
  margin: 0;
  padding-left: 0;
}

#helmet-knowledge .helmet-knowledge__item::before {
  content: "";
  flex-shrink: 0;
  width: min(23.333px, 1.667vw);
  height: min(23.333px, 1.667vw);
  margin-right: min(7px, 0.5vw);
  background-image: url("../img/lp-helmet-knowledge-icon-checkmark.svg");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}

#helmet-knowledge .helmet-knowledge__item .text-bold {
  font-weight: 700;
  background: linear-gradient(to top, rgba(246, 189, 37, 0.3) 50%, transparent 50%);
  padding: 0 min(2px, 0.167vw);
}

#helmet-knowledge .helmet-knowledge__illust {
  position: absolute;
  left: min(19.833px, 1.417vw);
  bottom: max(-63.49px, -4.535vw);
  width: min(127.523px, 9.109vw);
  height: min(411.667px, 29.417vw);
  object-fit: contain;
  object-position: left bottom;
  pointer-events: none;
  z-index: 1;
  will-change: transform;
  transform: translate3d(80px, 0, 0);
}
#helmet-knowledge .helmet-knowledge__illust.is-inview {
  animation: knowledgeIllustSlideIn 2.2s linear forwards;
}

@keyframes knowledgeIllustSlideIn {
  0% { transform: translate3d(80px, 0, 0); }
  1.5625% { transform: translate3d(78.75px, 0.39px, 0); }
  3.125% { transform: translate3d(77.5px, 0.78px, 0); }
  4.6875% { transform: translate3d(76.25px, 1.17px, 0); }
  6.25% { transform: translate3d(75px, 1.56px, 0); }
  7.8125% { transform: translate3d(73.75px, 1.93px, 0); }
  9.375% { transform: translate3d(72.5px, 2.31px, 0); }
  10.9375% { transform: translate3d(71.25px, 2.66px, 0); }
  12.5% { transform: translate3d(70px, 3px, 0); }
  14.0625% { transform: translate3d(68.75px, 3.32px, 0); }
  15.625% { transform: translate3d(67.5px, 3.61px, 0); }
  17.1875% { transform: translate3d(66.25px, 3.88px, 0); }
  18.75% { transform: translate3d(65px, 4.12px, 0); }
  20.3125% { transform: translate3d(63.75px, 3.88px, 0); }
  21.875% { transform: translate3d(62.5px, 3.61px, 0); }
  23.4375% { transform: translate3d(61.25px, 3.32px, 0); }
  25% { transform: translate3d(60px, 3px, 0); }
  26.5625% { transform: translate3d(58.75px, 2.66px, 0); }
  28.125% { transform: translate3d(57.5px, 2.31px, 0); }
  29.6875% { transform: translate3d(56.25px, 1.93px, 0); }
  31.25% { transform: translate3d(55px, 1.56px, 0); }
  32.8125% { transform: translate3d(53.75px, 1.17px, 0); }
  34.375% { transform: translate3d(52.5px, 0.78px, 0); }
  35.9375% { transform: translate3d(51.25px, 0.39px, 0); }
  37.5% { transform: translate3d(50px, 0, 0); }
  39.0625% { transform: translate3d(48.75px, -0.39px, 0); }
  40.625% { transform: translate3d(47.5px, -0.78px, 0); }
  42.1875% { transform: translate3d(46.25px, -1.17px, 0); }
  43.75% { transform: translate3d(45px, -1.56px, 0); }
  45.3125% { transform: translate3d(43.75px, -1.93px, 0); }
  46.875% { transform: translate3d(42.5px, -2.31px, 0); }
  48.4375% { transform: translate3d(41.25px, -2.66px, 0); }
  50% { transform: translate3d(40px, -3px, 0); }
  51.5625% { transform: translate3d(38.75px, -3.32px, 0); }
  53.125% { transform: translate3d(37.5px, -3.61px, 0); }
  54.6875% { transform: translate3d(36.25px, -3.88px, 0); }
  56.25% { transform: translate3d(35px, -4.12px, 0); }
  57.8125% { transform: translate3d(33.75px, -3.88px, 0); }
  59.375% { transform: translate3d(32.5px, -3.61px, 0); }
  60.9375% { transform: translate3d(31.25px, -3.32px, 0); }
  62.5% { transform: translate3d(30px, -3px, 0); }
  64.0625% { transform: translate3d(28.75px, -2.66px, 0); }
  65.625% { transform: translate3d(27.5px, -2.31px, 0); }
  67.1875% { transform: translate3d(26.25px, -1.93px, 0); }
  68.75% { transform: translate3d(25px, -1.56px, 0); }
  70.3125% { transform: translate3d(23.75px, -1.17px, 0); }
  71.875% { transform: translate3d(22.5px, -0.78px, 0); }
  73.4375% { transform: translate3d(21.25px, -0.39px, 0); }
  75% { transform: translate3d(20px, 0, 0); }
  76.5625% { transform: translate3d(18.75px, 0.39px, 0); }
  78.125% { transform: translate3d(17.5px, 0.78px, 0); }
  79.6875% { transform: translate3d(16.25px, 1.17px, 0); }
  81.25% { transform: translate3d(15px, 1.56px, 0); }
  82.8125% { transform: translate3d(13.75px, 1.93px, 0); }
  84.375% { transform: translate3d(12.5px, 2.31px, 0); }
  85.9375% { transform: translate3d(11.25px, 2.66px, 0); }
  87.5% { transform: translate3d(10px, 3px, 0); }
  89.0625% { transform: translate3d(8.75px, 3.32px, 0); }
  90.625% { transform: translate3d(7.5px, 3.61px, 0); }
  92.1875% { transform: translate3d(6.25px, 3.88px, 0); }
  93.75% { transform: translate3d(5px, 4.12px, 0); }
  95.3125% { transform: translate3d(3.75px, 3.81px, 0); }
  96.875% { transform: translate3d(2.5px, 2.91px, 0); }
  98.4375% { transform: translate3d(1.25px, 1.51px, 0); }
  100% { transform: translate3d(0, 0, 0); }
}

@media screen and (max-width: 767px) {
  #helmet-knowledge.helmet-knowledge {
    padding: 10.667vw 0;
  }

  #helmet-knowledge .helmet-knowledge__inner {
    padding-left: 4vw;
    padding-right: 4vw;
    gap: 10.667vw;
  }

  #helmet-knowledge .helmet-knowledge__box {
    border-radius: 5.333vw; /* 20px */
    padding: 8.533vw 4vw 8.533vw 4vw;
    gap: 4.267vw; /* 16px */
  }

  #helmet-knowledge .helmet-knowledge__title {
    font-size: 5.333vw; /* 20px */
    line-height: 1.4;
    letter-spacing: 0.213vw; /* 0.8px */
    text-align: center;
  }

  #helmet-knowledge .helmet-knowledge__content {
    border-radius: 5.333vw; /* 20px */
    padding: 6.4vw; /* 24px */
    position: relative;
    z-index: 0;
  }

  #helmet-knowledge .helmet-knowledge__list {
    gap: 3.2vw; /* 12px */
  }

  #helmet-knowledge .helmet-knowledge__item {
    align-items: flex-start;
    gap: 0;
    font-size: 4.267vw; /* 16px @375 */
    line-height: 1.6;
    color: var(--helmet-doctor-text);
  }

  #helmet-knowledge .helmet-knowledge__item::before {
    width: 5.333vw; /* 20px */
    height: 5.6vw; /* 21px */
    margin-top: 1.067vw; /* 4px */
    margin-right: 1.6vw;
  }

  #helmet-knowledge .helmet-knowledge__item .text-bold {
    background: linear-gradient(to top, rgba(246, 189, 37, 0.3) 50%, transparent 50%);
    padding: 0 0.533vw;
  }

  #helmet-knowledge .helmet-knowledge__item:last-child {
    padding-right: 17.067vw; /* 64px */
  }

  #helmet-knowledge .helmet-knowledge__illust {
    left: auto;
    right: 2.667vw;
    bottom: -44vw;
    width: 29.148vw; /* 109.305px */
    height: 94.133vw; /* 353px */
    z-index: 1;
  }
}

/* 注意点 (#helmet-attention)
   ========================================================================== */
#helmet-attention.helmet-attention {
  background-color: var(--helmet-bg-color);
  background-image: url("../img/lp-helmet-section-bg-normal.webp");
  background-repeat: repeat;
  background-position: center;
  background-size: min(1166.667px, 83.333vw);
  padding: min(74.667px, 5.333vw) 0;
}

#helmet-attention .helmet-attention__inner-wrap {
  width: 100%;
  margin-left: var(--page-lr-space);
  background-color: #d9d3ca;
  border-radius: 0 0 0 min(140px, 10vw);
}

#helmet-attention .helmet-attention__inner {
  display: flex;
  align-items: center;
  gap: min(9.333px, 0.667vw);
  padding-left: 0;
  padding-right: var(--page-lr-space);
  padding-top: 0;
  padding-bottom: 0;
}

#helmet-attention .helmet-attention__box {
  position: relative;
  flex: 1 1 0%;
  min-width: 0;
  min-height: 0;
  padding: min(65.333px, 4.667vw) min(93.333px, 6.667vw);
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: min(28px, 2vw);
}

#helmet-attention .helmet-attention__icon {
  position: absolute;
  right: max(-56.49px, -4.035vw);
  top: min(18.667px, 1.333vw);
  width: min(270px, 19.285vw);
  height: min(270px, 19.285vw);
  object-fit: contain;
  object-position: right top;
  pointer-events: none;
  z-index: 0;
  will-change: transform;
  opacity: 0;
  transform: translate3d(120%, 0, 0) rotate(180deg);
}
#helmet-attention .helmet-attention__box.is-inview .helmet-attention__icon {
  animation: attentionIconRollIn 1.5s var(--helmet-ease-char) both;
}

@keyframes attentionIconRollIn {
  from {
    opacity: 0;
    transform: translate3d(120%, 0, 0) rotate(180deg);
  }
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0) rotate(0);
  }
}

#helmet-attention .helmet-attention__header {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: min(9.333px, 0.667vw);
  flex-shrink: 0;
  width: 100%;
  z-index: 1;
}

#helmet-attention .helmet-attention__title {
  font-size: min(30.333px, 2.167vw);
  font-weight: 700;
  color: #4f4f4f;
  font-family: var(--helmet-font-gothic);
  letter-spacing: min(1.213px, 0.087vw);
  line-height: 1.6;
  margin: 0;
  opacity: 0;
  transform: translate3d(0, 24px, 0);
  will-change: transform, opacity;
}
#helmet-attention .helmet-attention__header.is-inview .helmet-attention__title {
  animation: animFadeUp 0.5s var(--helmet-ease-fade) both;
}

#helmet-attention .helmet-attention__lead {
  font-size: min(18.667px, 1.333vw);
  font-weight: 500;
  color: #4f4f4f;
  font-family: var(--helmet-font-gothic);
  line-height: 1.6;
  margin: 0;
  width: 100%;
  opacity: 0;
  transform: translate3d(0, 24px, 0);
  will-change: transform, opacity;
}
#helmet-attention .helmet-attention__header.is-inview .helmet-attention__lead {
  animation: animFadeUp 0.5s var(--helmet-ease-fade) both;
}

#helmet-attention .helmet-attention__content {
  background-color: var(--helmet-white);
  border-radius: min(11.667px, 0.833vw);
  padding: min(28px, 2vw);
  width: 100%;
  flex-shrink: 0;
  z-index: 1;
  opacity: 0;
  transform: translate3d(0, 24px, 0);
  will-change: transform, opacity;
}
#helmet-attention .helmet-attention__content.is-inview {
  animation: animFadeUp 0.5s var(--helmet-ease-fade) both;
}

#helmet-attention .helmet-attention__list {
  display: block;
  margin: 0;
  padding: 0;
  list-style: none;
  column-count: 2;
  column-gap: min(28px, 2vw);
}

#helmet-attention .helmet-attention__item {
  font-size: min(18.667px, 1.333vw);
  font-weight: 500;
  color: #4f4f4f;
  font-family: var(--helmet-font-gothic);
  line-height: 1.8;
  margin: 0 0 0 min(56px, 4vw);
  padding-left: 0;
  list-style: disc;
  list-style-position: outside;
  break-inside: avoid;
}

#helmet-attention .helmet-attention__item:last-child {
  margin-bottom: 0;
}

@media screen and (max-width: 767px) {
  #helmet-attention.helmet-attention {
    padding: 17.067vw 0;
  }

  #helmet-attention .helmet-attention__inner-wrap {
    margin-left: var(--page-lr-space-sp);
    border-radius: 0 0 0 16vw;
  }

  #helmet-attention .helmet-attention__inner {
    padding-left: 0;
    padding-right: var(--page-lr-space-sp);
    gap: 2.133vw;
  }

  #helmet-attention .helmet-attention__box {
    padding: 14vw 8vw 10vw;
    gap: 6.4vw;
  }

  #helmet-attention .helmet-attention__icon {
    right: -12.912vw;
    top: 4.267vw;
    width: 61.713vw;
    height: 61.713vw;
  }

  #helmet-attention .helmet-attention__header {
    gap: 2.133vw;
  }

  #helmet-attention .helmet-attention__title {
    font-size: 6.933vw;
    letter-spacing: 0.277vw;
  }

  #helmet-attention .helmet-attention__lead {
    font-size: 4.267vw;
  }

  #helmet-attention .helmet-attention__content {
    border-radius: 2.667vw;
    padding: 6.4vw;
  }

  #helmet-attention .helmet-attention__list {
    column-count: 1;
    column-gap: 0;
  }

  #helmet-attention .helmet-attention__item {
    font-size: 4.267vw;
    margin-left: 6vw;
  }
}

/* 費用 (#helmet-cost)
   ========================================================================== */
#helmet-cost.helmet-cost {
  background-color: var(--helmet-bg-color);
  background-image: url("../img/lp-helmet-section-bg-normal.webp");
  background-repeat: repeat;
  background-position: center;
  background-size: min(1166.667px, 83.333vw);
  padding-top: min(46.667px, 3.333vw);
  padding-bottom: min(93.333px, 6.667vw);
}

#helmet-cost .helmet-cost__inner {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: min(46.667px, 3.333vw);
}

#helmet-cost .helmet-cost__content {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: min(40px, 2.857vw);
}

/* 料金ボックス（スクロールで発火） */
#helmet-cost .helmet-cost__price-box {
  width: 80%;
  margin-top: 0;
  margin-bottom: 0;
  background-color: var(--helmet-white);
  border: 2px solid var(--helmet-color-border);
  border-radius: min(23.333px, 1.667vw);
  padding: min(46.667px, 3.333vw) min(37.333px, 2.667vw);
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: min(28px, 2vw);
  opacity: 0;
  transform: translate3d(0, 24px, 0);
  will-change: transform, opacity;
}
#helmet-cost .helmet-cost__price-box.is-inview {
  animation: animFadeUp 0.5s var(--helmet-ease-fade) both;
}

#helmet-cost .helmet-cost__price-header {
  display: flex;
  align-items: center;
  justify-content: center;
  padding-left: min(4.667px, 0.333vw);
}

#helmet-cost .helmet-cost__price-title {
  font-size: min(23.333px, 1.667vw);
  font-weight: 700;
  color: var(--helmet-color-primary);
  font-family: var(--helmet-font-gothic);
  letter-spacing: min(0.4px, 0.033vw);
  line-height: 1;
  margin: 0;
  text-align: center;
}

#helmet-cost .helmet-cost__price-body {
  margin-top: min(18.667px, 1.333vw);
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  overflow-y: hidden;
  border: 0.5px solid #d1c1b4;
  border-radius: 8px;
}

@keyframes helmet-cost-scroll-hint-arrow {
  0%,
  100% {
    transform: translateX(0);
  }
  50% {
    transform: translateX(6px);
  }
}

#helmet-cost .helmet-cost__price-scroll-hint {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.35em;
  font-size: min(14px, 1vw);
  font-weight: 500;
  color: #828282;
  font-family: var(--helmet-font-gothic);
  line-height: 1.6;
  text-align: center;
}

#helmet-cost .helmet-cost__price-scroll-hint-text {
  flex-shrink: 0;
}

#helmet-cost .helmet-cost__price-scroll-hint-arrow {
  display: inline-flex;
  flex-shrink: 0;
  color: #828282;
  animation: helmet-cost-scroll-hint-arrow 1.2s ease-in-out infinite;
}

#helmet-cost .helmet-cost__price-scroll-hint-svg {
  display: block;
  vertical-align: middle;
}

@media (prefers-reduced-motion: reduce) {
  #helmet-cost .helmet-cost__price-scroll-hint-arrow {
    animation: none;
  }
}

#helmet-cost .helmet-cost__data-table {
  width: 100%;
  min-width: 0;
  border-collapse: collapse;
  table-layout: fixed;
  font-family: var(--helmet-font-gothic);
  color: #4f4f4f;
}

#helmet-cost .helmet-cost__data-table th,
#helmet-cost .helmet-cost__data-table td {
  word-break: keep-all;
  overflow-wrap: anywhere;
}

/* 4列表：狭いビューポートでは横スクロール */
#helmet-cost .helmet-cost__price-box + .helmet-cost__price-box .helmet-cost__data-table {
  width: 100%;
  min-width: 520px;
}

#helmet-cost .helmet-cost__data-table thead th {
  border: 0;
  border-bottom: 0.5px solid #d1c1b4;
  background-color: rgba(209, 193, 180, 0.11);
  font-size: min(16px, 1.143vw);
  font-weight: 500;
  line-height: 1.6;
  text-align: center;
  vertical-align: middle;
  padding: min(10px, 0.714vw) min(12px, 0.857vw);
}

#helmet-cost .helmet-cost__data-table thead th:not(:last-child) {
  border-right: 0.5px solid #d1c1b4;
}

#helmet-cost .helmet-cost__data-table tbody th {
  border: 0;
  border-right: 0.5px solid #d1c1b4;
  background-color: rgba(209, 193, 180, 0.11);
  font-size: min(16px, 1.143vw);
  font-weight: 500;
  line-height: 1.6;
  text-align: center;
  vertical-align: middle;
  padding: min(10px, 0.714vw) min(12px, 0.857vw);
}

#helmet-cost .helmet-cost__data-table tbody td {
  border: 0;
  background-color: rgba(255, 255, 255, 0.35);
  font-size: min(18px, 1.286vw);
  font-weight: 500;
  line-height: 1.6;
  text-align: center;
  vertical-align: middle;
  padding: min(10px, 0.714vw) min(12px, 0.857vw);
}

#helmet-cost .helmet-cost__data-table tbody td:not(:last-child) {
  border-right: 0.5px solid #d1c1b4;
}

#helmet-cost .helmet-cost__data-table .helmet-cost__data-note {
  font-size: 0.875em;
}

/* tbody tr の下線（collapse では tr への border が効かないためセルに付与） */
#helmet-cost .helmet-cost__data-table tbody tr:not(:last-child) th,
#helmet-cost .helmet-cost__data-table tbody tr:not(:last-child) td {
  border-bottom: 0.5px solid #d1c1b4;
}

/* 3列プラン表：備考列のみ小さめ */
#helmet-cost .helmet-cost__price-box:first-of-type .helmet-cost__data-table tbody td:nth-child(3) {
  font-size: min(14px, 1vw);
}

/* 4列表：ヘッダーはやや小さめ（Figma準拠） */
#helmet-cost .helmet-cost__price-box + .helmet-cost__price-box .helmet-cost__data-table thead th {
  font-size: min(14px, 1vw);
}

#helmet-cost .helmet-cost__price-list {
  display: flex;
  flex-direction: column;
  gap: min(9.333px, 0.667vw);
  margin: 0;
  padding: 0;
}

#helmet-cost .helmet-cost__price-item {
  display: flex;
  align-items: center;
  gap: min(46.667px, 3.333vw);
  padding-left: min(28px, 2vw);
  padding-right: min(28px, 2vw);
}

#helmet-cost .helmet-cost__price-item::after {
  content: "";
  order: 1;
  flex: 1;
  min-width: min(23.333px, 1.667vw);
  height: min(4px, 0.333vw);
  margin-left: 0;
  margin-right: 0;
  align-self: center;
  background-image: radial-gradient(circle at center, #c2bdba min(1.5px, 0.125vw), transparent min(1.5px, 0.125vw));
  background-size: min(20px, 1.667vw) 100%;
  background-repeat: repeat-x;
  background-position: 0 50%;
}

#helmet-cost .helmet-cost__price-item dt {
  order: 0;
  flex-shrink: 0;
  font-size: min(18.667px, 1.556vw);
  font-weight: 500;
  color: #4f4f4f;
  font-family: var(--helmet-font-gothic);
  line-height: 1.6;
  margin: 0;
}

#helmet-cost .helmet-cost__price-item dd {
  order: 2;
  flex-shrink: 0;
  display: flex;
  align-items: flex-end;
  gap: min(4.667px, 0.333vw);
  font-size: min(18.667px, 1.556vw);
  font-weight: 500;
  color: #4f4f4f;
  font-family: var(--helmet-font-gothic);
  line-height: 1.6;
  margin: 0;
}

#helmet-cost .helmet-cost__price-num {
  font-size: min(23.333px, 1.667vw);
  line-height: 1.6;
}

#helmet-cost .helmet-cost__price-notes {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: min(8px, 0.571vw);
  width: 80%;
  margin: 0;
  padding: 0;
  opacity: 0;
  transform: translate3d(0, 24px, 0);
  will-change: transform, opacity;
}
#helmet-cost .helmet-cost__price-notes.is-inview {
  animation: animFadeUp 0.5s var(--helmet-ease-fade) both;
}

#helmet-cost .helmet-cost__price-notes p {
  font-size: min(16.333px, 1.167vw);
  font-weight: 500;
  color: #828282;
  font-family: var(--helmet-font-gothic);
  line-height: 1.6;
  margin: 0;
  text-align: right;
}

/* お支払い方法ボックス（スクロールで発火） */
#helmet-cost .helmet-cost__payment-box {
  width: 80%;
  margin-top: 0;
  margin-bottom: 0;
  background-color: var(--helmet-white);
  border: 2px solid var(--helmet-color-border);
  border-radius: min(23.333px, 1.667vw);
  padding: min(46.667px, 3.333vw) min(37.333px, 2.667vw);
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: min(28px, 2vw);
  opacity: 0;
  transform: translate3d(0, 24px, 0);
  will-change: transform, opacity;
}
#helmet-cost .helmet-cost__payment-box.is-inview {
  animation: animFadeUp 0.5s var(--helmet-ease-fade) both;
}
/* セクションの .is-inview では発火させず、payment-box が .is-inview のときだけアイコンを発動 */
#helmet-cost.is-inview .helmet-cost__payment-box:not(.is-inview) .helmet-cost__payment-icon.anim-pop-in {
  animation: none;
}
/* お支払いアイコンは payment-box が .is-inview になったタイミングで発動（遅延なし） */
#helmet-cost .helmet-cost__payment-box.is-inview .helmet-cost__payment-icon.anim-pop-in {
  animation: animPopIn 0.85s linear both;
}

#helmet-cost .helmet-cost__payment-header {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: min(18.667px, 1.333vw);
  padding-left: min(4.667px, 0.333vw);
}

#helmet-cost .helmet-cost__payment-title {
  font-size: min(23.333px, 1.667vw);
  font-weight: 700;
  color: var(--helmet-color-primary);
  font-family: var(--helmet-font-gothic);
  letter-spacing: min(0.4px, 0.033vw);
  line-height: 1;
  margin: 0;
  text-align: center;
}

#helmet-cost .helmet-cost__payment-lead {
  font-size: min(17.5px, 1.25vw); /* 15px - 少し小さく */
  font-weight: 500;
  color: #4f4f4f;
  font-family: var(--helmet-font-gothic);
  line-height: 1.6;
  margin: 0;
  text-align: center;
}

#helmet-cost .helmet-cost__payment-body {
  padding-top: min(18.667px, 1.333vw);
  border-top: 0.5px solid #c2bdba;
}

#helmet-cost .helmet-cost__payment-list {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: center;
  align-items: flex-start;
  gap: min(72px, 5.144vw);
  margin: 0;
  padding: 0;
  list-style: none;
}

#helmet-cost .helmet-cost__payment-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: min(9.333px, 0.667vw);
  width: min(128px, 9.143vw);
  flex-shrink: 0;
}

#helmet-cost .helmet-cost__payment-icon {
  width: min(133px, 9.5vw);
  height: min(133px, 9.5vw);
  object-fit: contain;
  display: block;
}

#helmet-cost .helmet-cost__payment-text {
  font-size: min(17.5px, 1.25vw); /* 15px - 少し小さく */
  font-weight: 500;
  color: #4f4f4f;
  font-family: var(--helmet-font-gothic);
  line-height: 1.6;
  text-align: center;
  white-space: nowrap;
}

/* 医療ローンボックス（スクロールで発火） */
#helmet-cost .helmet-cost__loan-box {
  width: 80%;
  margin-top: 0;
  margin-bottom: 0;
  background-color: var(--helmet-white);
  border: 2px solid var(--helmet-color-border);
  border-radius: min(23.333px, 1.667vw);
  padding: min(46.667px, 3.333vw) min(37.333px, 2.667vw);
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: min(28px, 2vw);
  opacity: 0;
  transform: translate3d(0, 24px, 0);
  will-change: transform, opacity;
}
#helmet-cost .helmet-cost__loan-box.is-inview {
  animation: animFadeUp 0.5s var(--helmet-ease-fade) both;
}

#helmet-cost .helmet-cost__loan-header {
  display: flex;
  align-items: center;
  justify-content: center;
  padding-left: min(4.667px, 0.333vw);
}

#helmet-cost .helmet-cost__loan-title {
  font-size: min(23.333px, 1.667vw);
  font-weight: 700;
  color: var(--helmet-color-primary);
  font-family: var(--helmet-font-gothic);
  letter-spacing: min(0.4px, 0.033vw);
  line-height: 1;
  margin: 0;
  text-align: center;
}

#helmet-cost .helmet-cost__loan-body {
  padding-top: min(18.667px, 1.333vw);
  border-top: 0.5px solid #c2bdba;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: min(28px, 2vw);
}

#helmet-cost .helmet-cost__loan-text {
  font-size: min(17.5px, 1.25vw); /* 15px - 少し小さく */
  font-weight: 500;
  color: #4f4f4f;
  font-family: var(--helmet-font-gothic);
  line-height: 1.6;
  text-align: center;
  margin: 0;
  padding-left: min(18.667px, 1.333vw);
  padding-right: min(18.667px, 1.333vw);
}

#helmet-cost .helmet-cost__loan-example {
  position: relative;
  background-color: #e9dfd6;
  border-radius: min(11.667px, 0.833vw);
  padding: 0 min(28px, 2vw) min(18.667px, 1.333vw);
  overflow: hidden;
}

#helmet-cost .helmet-cost__loan-example-label {
  display: block;
  width: fit-content;
  margin-inline: auto;
  background-color: var(--helmet-color-border);
  color: var(--helmet-white);
  font-size: min(16.333px, 1.167vw);
  font-weight: 500;
  font-family: var(--helmet-font-gothic);
  line-height: 1.9;
  text-align: center;
  padding: min(7px, 0.5vw) min(65.333px, 4.667vw);
  margin-block-end: min(28px, 2vw);
  border-radius: 0 0 min(23.333px, 1.667vw) min(23.333px, 1.667vw);
}

#helmet-cost .helmet-cost__loan-example-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: min(9.333px, 0.667vw);
  position: relative;
  z-index: 1;
}

#helmet-cost .helmet-cost__loan-example-price {
  font-size: min(18.667px, 1.556vw);
  font-weight: 500;
  color: #4f4f4f;
  font-family: var(--helmet-font-gothic);
  line-height: 1.6;
  text-align: center;
  margin: 0;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  flex-wrap: wrap;
  gap: min(7px, 0.583vw);
}

#helmet-cost .helmet-cost__loan-example-num {
  font-size: min(37.333px, 2.667vw);
  line-height: 1;
}

#helmet-cost .helmet-cost__loan-example-notes {
  margin: 0;
  padding: 0;
}

#helmet-cost .helmet-cost__loan-example-notes p {
  font-size: min(16.333px, 1.167vw);
  font-weight: 500;
  color: #4f4f4f;
  font-family: var(--helmet-font-gothic);
  line-height: 1.8;
  text-align: center;
  margin: 0 0 0.25em 0;
}

#helmet-cost .helmet-cost__loan-example-notes p:last-child {
  margin-bottom: 0;
}

#helmet-cost .helmet-cost__loan-illust {
  position: absolute;
  bottom: max(-0.49px, -0.035vw);
  left: max(-34.253px, -2.447vw);
  width: min(132.087px, 9.434vw);
  height: min(158.668px, 11.333vw);
  object-fit: contain;
  object-position: bottom left;
  pointer-events: none;
  z-index: 0;
}

@media screen and (max-width: 767px) {
  #helmet-cost.helmet-cost {
    padding-top: 10.667vw; /* 40px */
    padding-bottom: 10.667vw;
  }

  #helmet-cost .helmet-cost__inner {
    padding-left: 6.4vw;
    padding-right: 6.4vw;
    gap: 6.4vw; /* 24px */
  }

  #helmet-cost .helmet-section-header {
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    text-align: left;
    gap: 6.4vw;
    margin-bottom: 0;
  }

  #helmet-cost .helmet-section-header__image {
    width: 13.333vw; /* 50px */
    height: 13.333vw;
  }

  #helmet-cost .helmet-section-header__title {
    margin-top: 0;
    font-size: 5.333vw; /* 20px */
    line-height: 1.6;
    letter-spacing: 0.213vw; /* 0.8px */
    color: var(--helmet-color-primary);
  }

  #helmet-cost .helmet-cost__content {
    gap: 6.4vw;
    align-items: stretch;
  }

  #helmet-cost .helmet-cost__price-box {
    width: 100%;
    margin-top: 0;
    margin-bottom: 0;
    padding: 8.533vw 6.4vw; /* 32px 24px */
    border-radius: 5.333vw; /* 20px */
    gap: 4.267vw; /* 16px */
  }

  #helmet-cost .helmet-cost__payment-box,
  #helmet-cost .helmet-cost__loan-box {
    width: 100%;
    margin-top: 0;
    margin-bottom: 0;
    padding: 8.533vw 6.4vw;
    border-radius: 5.333vw;
    gap: 4.267vw;
  }

  #helmet-cost .helmet-cost__price-header {
    padding-left: 1.067vw;
  }

  #helmet-cost .helmet-cost__price-title {
    font-size: 4.8vw; /* 18px */
    letter-spacing: 0.096vw;
  }

  #helmet-cost .helmet-cost__price-body {
    margin-top: 4.267vw;
  }

  #helmet-cost .helmet-cost__price-scroll-hint {
    font-size: 3.2vw; /* 12px */
  }

  #helmet-cost .helmet-cost__price-scroll-hint-svg {
    width: 4.267vw;
    height: 4.267vw;
  }

  #helmet-cost .helmet-cost__data-table thead th,
  #helmet-cost .helmet-cost__data-table tbody th,
  #helmet-cost .helmet-cost__data-table tbody td {
    font-size: 3.7vw;
  }

  #helmet-cost .helmet-cost__data-table thead th,
  #helmet-cost .helmet-cost__data-table tbody th {
    padding: 2.667vw 2.133vw; /* 10px 8px */
  }

  #helmet-cost .helmet-cost__data-table tbody td {
    padding: 2.667vw 1.6vw;
  }

  /* デスクトップの小さめ指定より詳細度で上書きし、表内を 3.7vw に統一 */
  #helmet-cost .helmet-cost__price-box:first-of-type .helmet-cost__data-table tbody td:nth-child(3),
  #helmet-cost .helmet-cost__price-box + .helmet-cost__price-box .helmet-cost__data-table thead th {
    font-size: 3.7vw;
  }

  #helmet-cost .helmet-cost__price-list {
    gap: 2.133vw;
  }

  #helmet-cost .helmet-cost__price-item {
    gap: 3.2vw; /* 12px */
    padding-left: 2.133vw; /* 8px */
    padding-right: 2.133vw;
  }

  #helmet-cost .helmet-cost__price-item::after {
    min-width: 5.333vw;
    height: 1.067vw;
    background-image: radial-gradient(circle at center, #c2bdba 0.4vw, transparent 0.4vw);
    background-size: 5.333vw 100%;
  }

  #helmet-cost .helmet-cost__price-item dt {
    font-size: 4.267vw;
  }

  #helmet-cost .helmet-cost__price-item dd {
    font-size: 4.267vw;
    gap: 1.067vw;
  }

  #helmet-cost .helmet-cost__price-num {
    font-size: 4.267vw;
  }

  #helmet-cost .helmet-cost__price-notes {
    gap: 1.067vw; /* 4px */
    width: 100%;
    margin: 0;
    align-items: flex-start;
  }

  #helmet-cost .helmet-cost__price-notes p {
    font-size: 3.2vw; /* 12px */
    line-height: 1.2;
    text-align: left;
  }

  #helmet-cost .helmet-cost__payment-header {
    gap: 4.267vw;
    padding-left: 1.067vw;
  }

  #helmet-cost .helmet-cost__payment-title {
    font-size: 4.8vw; /* 18px */
    letter-spacing: 0.096vw;
  }

  #helmet-cost .helmet-cost__payment-lead {
    font-size: 3.733vw; /* 14px */
    line-height: 1.6;
  }

  #helmet-cost .helmet-cost__payment-body {
    padding-top: 4.267vw;
  }

  #helmet-cost .helmet-cost__payment-list {
    gap: 3%;
  }

  #helmet-cost .helmet-cost__payment-item {
    width: 30%;
    gap: 2.133vw; /* 8px */
  }

  #helmet-cost .helmet-cost__payment-icon {
    width: 21.333vw; /* 80px */
    height: 21.333vw;
  }

  #helmet-cost .helmet-cost__payment-text {
    font-size: 3vw;
    line-height: 1.6;
  }

  #helmet-cost .helmet-cost__loan-header {
    padding-left: 1.067vw;
  }

  #helmet-cost .helmet-cost__loan-title {
    font-size: 4.5vw;
    letter-spacing: 0.096vw;
  }

  #helmet-cost .helmet-cost__loan-body {
    padding-top: 4.267vw;
    gap: 6.4vw; /* 24px */
  }

  #helmet-cost .helmet-cost__loan-text {
    font-size: 3.733vw; /* 14px */
    line-height: 1.6;
    text-align: left;
    padding-left: 3.2vw; /* 12px */
    padding-right: 3.2vw;
  }

  #helmet-cost .helmet-cost__loan-example {
    padding: 0 5.333vw 4.267vw; /* 0 20 16 */
    border-radius: 2.667vw; /* 10px */
  }

  #helmet-cost .helmet-cost__loan-example-label {
    font-size: 3.733vw;
    padding: 1.6vw 14.933vw; /* 6 56 */
    margin-block-end: 3.2vw; /* 12px */
    border-radius: 0 0 5.333vw 5.333vw; /* 20px */
  }

  #helmet-cost .helmet-cost__loan-example-content {
    gap: 3.2vw; /* 12px */
  }

  #helmet-cost .helmet-cost__loan-example-price {
    font-size: 3.733vw; /* 14px */
    gap: 0.533vw; /* 2px */
  }

  #helmet-cost .helmet-cost__loan-example-num {
    font-size: 5.867vw; /* 22px */
  }

  #helmet-cost .helmet-cost__loan-example-notes p {
    font-size: 3.2vw; /* 12px */
    text-align: left;
  }

  #helmet-cost .helmet-cost__loan-illust {
    display: none;
  }
}

/* よくある質問 (#helmet-faq)
   ========================================================================== */
#helmet-faq.helmet-faq {
  background-color: var(--helmet-bg-color);
  background-image: url("../img/lp-helmet-section-bg-normal.webp");
  background-repeat: repeat;
  background-position: center;
  background-size: min(1166.667px, 83.333vw);
  padding-top: min(46.667px, 3.333vw);   /* 40px */
  padding-bottom: min(93.333px, 6.667vw); /* 80px */
}

#helmet-faq .helmet-faq__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: min(46.667px, 3.333vw); /* 40px */
}

#helmet-faq .helmet-faq__title {
  font-family: var(--helmet-font-gothic);
  font-size: min(30.333px, 2.167vw);      /* 26px */
  font-weight: 700;
  color: var(--helmet-color-primary);
  line-height: 1.6;
  letter-spacing: min(1.213px, 0.0867vw); /* 1.04px */
  margin: 0;
  text-align: center;
  opacity: 0;
  transform: translate3d(0, 24px, 0);
  will-change: transform, opacity;
}
#helmet-faq .helmet-faq__title.is-inview {
  animation: animFadeUp 0.5s var(--helmet-ease-fade) both;
}

#helmet-faq .helmet-faq__content {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: min(28px, 2vw);                    /* 24px */
  width: 100%;
  max-width: min(1003.333px, 71.667vw);   /* 860px */
}

#helmet-faq .helmet-faq__item {
  width: 100%;
  border-radius: min(11.667px, 0.833vw);  /* 10px */
  overflow: hidden;
  list-style: none;
  opacity: 0;
  transform: translate3d(0, 24px, 0);
  will-change: transform, opacity;
}
#helmet-faq .helmet-faq__item.is-inview {
  animation: animFadeUp 0.5s var(--helmet-ease-fade) both;
}

#helmet-faq .helmet-faq__question {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: min(74.667px, 5.333vw);     /* 64px */
  padding: min(24.5px, 1.75vw) min(28px, 2vw); /* 21px 24px */
  background-color: var(--helmet-white);
  border: min(2.333px, 0.167vw) solid var(--helmet-color-border);
  border-radius: min(11.667px, 0.833vw);  /* 10px */
  cursor: pointer;
  list-style: none;
  gap: min(18.667px, 1.333vw);           /* 16px */
  box-sizing: border-box;
  outline: none;
  -webkit-tap-highlight-color: transparent;
  transition: background-color 0.25s ease, border-color 0.25s ease;
}

#helmet-faq .helmet-faq__question:focus {
  outline: none;
}

#helmet-faq .helmet-faq__question::-webkit-details-marker,
#helmet-faq .helmet-faq__question::marker {
  display: none;
  content: "";
}

#helmet-faq .helmet-faq__question-inner {
  display: flex;
  align-items: center;
  gap: min(18.667px, 1.333vw);           /* 16px */
  flex: 1;
  min-width: 0;
}

#helmet-faq .helmet-faq__icon-q {
  flex-shrink: 0;
  width: min(37.333px, 2.667vw);         /* 32px */
  height: min(37.333px, 2.667vw);
  position: relative;
}

#helmet-faq .helmet-faq__icon-q img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

#helmet-faq .helmet-faq__icon-q-open {
  display: none;
}

#helmet-faq .helmet-faq__item[open] .helmet-faq__icon-q-open {
  display: block;
}

#helmet-faq .helmet-faq__item[open] .helmet-faq__icon-q-close {
  display: none;
}

/* 右側のプラス・マイナストグル */
#helmet-faq .helmet-faq__toggle {
  flex-shrink: 0;
  width: min(32.667px, 2.333vw);   /* 28px */
  height: min(32.667px, 2.333vw);
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
}

#helmet-faq .helmet-faq__icon-plus,
#helmet-faq .helmet-faq__icon-minus {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* プラス（縦線＋横線） */
#helmet-faq .helmet-faq__icon-plus::before,
#helmet-faq .helmet-faq__icon-plus::after {
  content: "";
  position: absolute;
  background-color: var(--helmet-color-border);
  border-radius: 1px;
  transition: background-color 0.25s ease;
}

#helmet-faq .helmet-faq__icon-plus::before {
  width: min(16.333px, 1.167vw);   /* 14px 横線 */
  height: 2px;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
}

#helmet-faq .helmet-faq__icon-plus::after {
  width: 2px;
  height: min(16.333px, 1.167vw);   /* 14px 縦線 */
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
}

/* マイナス（横線のみ） */
#helmet-faq .helmet-faq__icon-minus::before {
  content: "";
  position: absolute;
  width: min(16.333px, 1.167vw);
  height: 2px;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  background-color: var(--helmet-color-border);
  border-radius: 1px;
  transition: background-color 0.25s ease;
}

#helmet-faq .helmet-faq__icon-minus {
  display: none;
}

#helmet-faq .helmet-faq__item[open] .helmet-faq__icon-plus {
  display: none;
}

#helmet-faq .helmet-faq__item[open] .helmet-faq__icon-minus {
  display: flex;
}

#helmet-faq .helmet-faq__item[open] .helmet-faq__icon-minus::before {
  background-color: var(--helmet-white);
}

#helmet-faq .helmet-faq__question-text {
  font-family: var(--helmet-font-gothic);
  font-size: min(18.667px, 1.333vw);      /* 16px */
  font-weight: 500;
  color: #717071;
  line-height: 1;
  letter-spacing: min(0.373px, 0.0267vw); /* 0.32px */
  margin: 0;
  transition: color 0.25s ease;
}

/* 開いたときの質問行 */
#helmet-faq .helmet-faq__item[open] .helmet-faq__question {
  background-color: var(--helmet-color-border);
  border-color: var(--helmet-color-border);
  border-radius: min(11.667px, 0.833vw) min(11.667px, 0.833vw) 0 0;
}

#helmet-faq .helmet-faq__item[open] .helmet-faq__question-text {
  color: var(--helmet-white);
}

#helmet-faq .helmet-faq__answer {
  background-color: var(--helmet-white);
  border: min(2.333px, 0.167vw) solid var(--helmet-color-border);
  border-top: none;
  border-radius: 0 0 min(11.667px, 0.833vw) min(11.667px, 0.833vw);
  box-sizing: border-box;
}

#helmet-faq .helmet-faq__answer-inner {
  display: flex;
  align-items: flex-start;
  gap: min(18.667px, 1.333vw);           /* 16px */
  min-height: min(74.667px, 5.333vw);     /* 64px */
  padding: min(23.333px, 1.667vw) min(28px, 2vw); /* 20px 24px */
  box-sizing: border-box;
}

#helmet-faq .helmet-faq__icon-a {
  flex-shrink: 0;
  width: min(37.333px, 2.667vw);         /* 32px */
  height: min(37.333px, 2.667vw);
  object-fit: contain;
}

#helmet-faq .helmet-faq__answer-text {
  flex: 1;
  min-width: 0;
}

#helmet-faq .helmet-faq__answer-text p {
  font-family: var(--helmet-font-gothic);
  font-size: min(18.667px, 1.333vw);      /* 16px */
  font-weight: 400;
  color: #4f4f4f;
  line-height: 1.6;
  letter-spacing: min(0.373px, 0.0267vw); /* 0.32px */
  margin: 0;
}

@media screen and (max-width: 767px) {
  #helmet-faq.helmet-faq {
    padding-top: 10.667vw;   /* 40px @375 */
    padding-bottom: 21.333vw; /* 80px @375 */
  }

  #helmet-faq .helmet-faq__inner {
    gap: 10.667vw; /* 40px */
  }

  #helmet-faq .helmet-faq__title {
    font-size: 6.933vw;       /* 26px */
    letter-spacing: 0.277vw;  /* 1.04px */
  }

  #helmet-faq .helmet-faq__content {
    gap: 6.4vw;               /* 24px */
    max-width: 100%;
  }

  #helmet-faq .helmet-faq__item {
    border-radius: 2.667vw;    /* 10px */
  }

  #helmet-faq .helmet-faq__question {
    min-height: 17.067vw;      /* 64px */
    padding: 5.6vw 6.4vw;     /* 21px 24px */
    border-width: 0.533vw;    /* 2px */
    border-radius: 2.667vw;
    gap: 4.267vw;             /* 16px */
  }

  #helmet-faq .helmet-faq__question-inner {
    gap: 4.267vw;
  }

  #helmet-faq .helmet-faq__icon-q {
    width: 8.533vw;            /* 32px */
    height: 8.533vw;
  }

  #helmet-faq .helmet-faq__question-text {
    font-size: 4.267vw;        /* 16px */
    letter-spacing: 0.085vw;   /* 0.32px */
    line-height: 1.5;
  }

  #helmet-faq .helmet-faq__toggle {
    width: 7.467vw;   /* 28px */
    height: 7.467vw;
  }

  #helmet-faq .helmet-faq__icon-plus::before {
    width: 3.733vw;   /* 14px */
    height: 2px;
  }

  #helmet-faq .helmet-faq__icon-plus::after {
    width: 2px;
    height: 3.733vw;
  }

  #helmet-faq .helmet-faq__icon-minus::before {
    width: 3.733vw;
    height: 2px;
  }

  #helmet-faq .helmet-faq__item[open] .helmet-faq__question {
    border-radius: 2.667vw 2.667vw 0 0;
  }

  #helmet-faq .helmet-faq__answer {
    border-width: 0.533vw;
    border-radius: 0 0 2.667vw 2.667vw;
  }

  #helmet-faq .helmet-faq__answer-inner {
    min-height: 17.067vw;
    padding: 5.333vw 6.4vw;   /* 20px 24px */
    gap: 4.267vw;
  }

  #helmet-faq .helmet-faq__icon-a {
    width: 8.533vw;
    height: 8.533vw;
  }

  #helmet-faq .helmet-faq__answer-text p {
    font-size: 4.267vw;
    letter-spacing: 0.085vw;
  }
}

/* 監修者 (#helmet-doctor)
   ========================================================================== */
#helmet-doctor.helmet-doctor {
  margin-top: -2px;
  background-color: var(--helmet-bg-color);
  background-image: url("../img/lp-helmet-section-bg-normal.webp");
  background-repeat: repeat;
  background-position: center;
  background-size: min(1166.667px, 83.333vw);
  padding-top: min(46.667px, 3.333vw);    /* 40px */
  padding-bottom: min(93.333px, 6.667vw); /* 80px */
}

#helmet-doctor .helmet-doctor__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: min(46.667px, 3.333vw); /* 40px */
}

#helmet-doctor .helmet-doctor__content {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: min(56px, 4vw);                    /* 48px */
  width: 100%;
}

#helmet-doctor .helmet-doctor__profile {
  display: flex;
  align-items: center;
  gap: min(46.667px, 3.333vw);            /* 40px */
  width: 80%;
  opacity: 0;
  transform: translate3d(0, 24px, 0);
  will-change: transform, opacity;
}
#helmet-doctor .helmet-doctor__profile.is-inview {
  animation: animFadeUp 0.5s var(--helmet-ease-fade) both;
}

#helmet-doctor .helmet-doctor__text-wrap {
  flex: 1 1 0;
  min-width: 0;
}

#helmet-doctor .helmet-doctor__text {
  font-family: var(--helmet-font-gothic);
  font-size: min(18.667px, 1.333vw);      /* 16px */
  font-weight: 500;
  line-height: 1.6;
  color: var(--helmet-doctor-text);
  margin: 0;
}

#helmet-doctor .helmet-doctor__image-wrap {
  position: relative;
  flex-shrink: 0;
  width: min(403.667px, 28.833vw);        /* 346px */
  height: min(298.667px, 21.333vw);       /* 256px */
}

#helmet-doctor .helmet-doctor__image {
  width: 100%;
  height: 100%;
  border-radius: min(18.667px, 1.333vw);  /* 16px */
  overflow: hidden;
  border: min(2.333px, 0.167vw) solid var(--helmet-color-border);
  background-color: var(--helmet-white);
  box-sizing: border-box;
}

#helmet-doctor .helmet-doctor__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

#helmet-doctor .helmet-doctor__name-box {
  position: absolute;
  right: 0;
  bottom: 0;
  transform: translate(50%, 10%);
  width: min(233.333px, 16.667vw);        /* 200px */
  height: min(233.333px, 16.667vw);
  border-radius: var(--radius-full);
  background-color: var(--helmet-doctor-name-bg);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: min(18.667px, 1.333vw);         /* 16px */
  box-sizing: border-box;
}

#helmet-doctor .helmet-doctor__position {
  font-family: var(--helmet-font-gothic);
  font-size: min(16.333px, 1.167vw);      /* 14px */
  font-weight: 500;
  line-height: 1.6;
  color: var(--helmet-doctor-text);
  letter-spacing: min(1.96px, 0.14vw);
  text-align: center;
  margin: 0 0 min(18.667px, 1.333vw) 0;  /* gap 16px */
}

#helmet-doctor .helmet-doctor__name-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: min(4.667px, 0.333vw);             /* 4px */
}

#helmet-doctor .helmet-doctor__name-ja {
  font-family: var(--helmet-font-gothic);
  font-size: min(23.333px, 1.667vw);      /* 20px */
  font-weight: 500;
  color: var(--helmet-doctor-text);
  letter-spacing: min(2.8px, 0.2vw);
  text-align: center;
  margin: 0;
}

#helmet-doctor .helmet-doctor__name-en {
  font-family: var(--helmet-font-gothic);
  font-size: min(18.667px, 1.333vw);      /* 16px */
  font-weight: 500;
  color: var(--helmet-doctor-text);
  letter-spacing: min(2.24px, 0.16vw);
  text-align: center;
  margin: 0;
}

#helmet-doctor .helmet-doctor__info {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  width: 80%;
}

#helmet-doctor .helmet-doctor__history,
#helmet-doctor .helmet-doctor__license {
  flex: 0 0 48%;
  min-width: 0;
  align-self: stretch;
  display: flex;
  flex-direction: column;
  align-items: center;
  border-radius: min(23.333px, 1.667vw);  /* 20px */
  padding-bottom: min(18.667px, 1.333vw); /* 16px */
  padding-left: min(37.333px, 2.667vw);   /* 32px */
  padding-right: min(37.333px, 2.667vw);
  box-sizing: border-box;
  opacity: 0;
  transform: translate3d(0, 24px, 0);
  will-change: transform, opacity;
}
#helmet-doctor .helmet-doctor__history.is-inview,
#helmet-doctor .helmet-doctor__license.is-inview {
  animation: animFadeUp 0.5s var(--helmet-ease-fade) both;
}

#helmet-doctor .helmet-doctor__history {
  background-color: var(--helmet-doctor-history-bg);
}

#helmet-doctor .helmet-doctor__license {
  background-color: var(--helmet-doctor-license-bg);
}

#helmet-doctor .helmet-doctor__info-title {
  font-family: var(--helmet-font-gothic);
  font-size: min(18.667px, 1.333vw);      /* 16px */
  font-weight: 700;
  color: var(--helmet-white);
  letter-spacing: min(0.96px, 0.0687vw);
  line-height: 1;
  text-align: center;
  margin: 0 0 min(18.667px, 1.333vw) 0;  /* gap 16px */
  padding: min(14px, 1vw) min(42px, 3vw); /* py 12px px 36px */
  border-radius: 0 0 min(23.333px, 1.667vw) min(23.333px, 1.667vw);
  box-sizing: border-box;
}

#helmet-doctor .helmet-doctor__info-title--history {
  background-color: var(--helmet-doctor-history-header);
}

#helmet-doctor .helmet-doctor__info-title--license {
  background-color: var(--helmet-doctor-license-header);
}

#helmet-doctor .helmet-doctor__list {
  width: 100%;
  font-family: var(--helmet-font-gothic);
  font-size: min(18.667px, 1.333vw);      /* 16px */
  font-weight: 500;
  line-height: 1.8;
  color: var(--helmet-doctor-list);
  letter-spacing: min(0.373px, 0.0267vw); /* 0.32px */
  margin: 0;
  padding: 0;
  list-style: none;
}

#helmet-doctor .helmet-doctor__list li {
  position: relative;
  padding-left: min(18.667px, 1.333vw);   /* 16px for bullet */
  margin-bottom: min(5.333px, 0.38vw);    /* 4px */
}

#helmet-doctor .helmet-doctor__list li:last-child {
  margin-bottom: 0;
}

#helmet-doctor .helmet-doctor__list li::before {
  content: "・";
  position: absolute;
  left: 0;
}

/* SP (767px以下) */
@media screen and (max-width: 767px) {
  #helmet-doctor.helmet-doctor {
    padding-top: 10.667vw;   /* 40px */
    padding-bottom: 10.667vw;
  }

  #helmet-doctor .helmet-doctor__inner {
    padding-left: 6.4vw;
    padding-right: 6.4vw;
    gap: 6.4vw; /* 24px */
  }

  #helmet-doctor .helmet-section-header {
    justify-content: center;
    margin-bottom: 0;
    width: 100%;
  }

  #helmet-doctor .helmet-section-header__title {
    margin-top: 0;
    font-size: 5.333vw; /* 20px */
    letter-spacing: 0.213vw; /* 0.8px */
    line-height: 1.6;
    text-align: center;
  }

  #helmet-doctor .helmet-doctor__content {
    gap: 12.8vw;             /* 48px */
  }

  #helmet-doctor .helmet-doctor__profile {
    flex-direction: column;
    gap: 10vw;
    max-width: none;
    width: 100%;
  }

  #helmet-doctor .helmet-doctor__text-wrap {
    order: 2;
    width: 100%;
  }

  #helmet-doctor .helmet-doctor__text {
    font-size: 3.733vw;      /* 14px */
    line-height: 1.6;
    color: var(--helmet-doctor-text);
  }

  #helmet-doctor .helmet-doctor__image-wrap {
    order: 1;
    width: 100%;
    height: 68.267vw;       /* 256px */
  }

  #helmet-doctor .helmet-doctor__image {
    border-radius: 4.267vw;  /* 16px */
    border-width: 0.533vw;  /* 2px */
  }

  #helmet-doctor .helmet-doctor__name-box {
    display: flex;
    position: absolute;
    right: -6vw;
    bottom: -6vw;
    transform: none;
    width: 36vw;
    height: 36vw;
    padding: 3.2vw;
    border-radius: 50%;
  }

  #helmet-doctor .helmet-doctor__position {
    font-size: 2.8vw;
    letter-spacing: 0.24vw;
    line-height: 1.4;
    margin-bottom: 2.133vw;
  }

  #helmet-doctor .helmet-doctor__name-ja {
    font-size: 4.267vw;
    letter-spacing: 0.32vw;
    line-height: 1.2;
  }

  #helmet-doctor .helmet-doctor__name-en {
    font-size: 3.2vw;
    letter-spacing: 0.2vw;
    line-height: 1.2;
  }

  #helmet-doctor .helmet-doctor__name-inner {
    gap: 1.067vw;           /* 4px */
  }

  #helmet-doctor .helmet-doctor__info {
    flex-direction: column;
    gap: 4.267vw;             /* 16px */
    align-items: center;
    max-width: none;
    width: 100%;
  }

  #helmet-doctor .helmet-doctor__history,
  #helmet-doctor .helmet-doctor__license {
    max-width: none;
    width: 100%;
    border-radius: 5.333vw; /* 20px */
    padding-bottom: 4.267vw;
    padding-left: 8.533vw;   /* 32px */
    padding-right: 8.533vw;
  }

  #helmet-doctor .helmet-doctor__info-title {
    font-size: 4.267vw;
    letter-spacing: 0.256vw;
    margin-bottom: 4.267vw;
    padding: 3.2vw 9.6vw;    /* 12px 36px */
    border-radius: 0 0 5.333vw 5.333vw;
  }

  #helmet-doctor .helmet-doctor__list {
    font-size: 3.733vw; /* 14px */
    letter-spacing: 0.075vw;
    line-height: 1.8;
  }

  #helmet-doctor .helmet-doctor__list li {
    padding-left: 4.267vw;
    margin-bottom: 1.067vw;
  }
}

/* ギャラリー無限ループ (#helmet-gallery)
   CSSのみの無限ループ（同一リストを2列並べ、translateX(-100%) で接続）
   参考: https://junpei-sugiyama.com/infinite-loop-slider-only-css/
   ========================================================================== */
#helmet-gallery.helmet-gallery {
  background-color: var(--helmet-bg-color);
  padding-top: min(58.333px, 4.1667vw); /* 50px */
  padding-bottom: min(58.333px, 4.1667vw);
}

#helmet-gallery .helmet-gallery__inner.section-inner {
  max-width: none;
  padding: 0;
}

#helmet-gallery .helmet-gallery__slider {
  display: flex;
  flex-wrap: nowrap;
  gap: min(28px, 2vw); /* 24px — .helmet-gallery__list と同じ */
  width: 100%;
  overflow: hidden;
}

#helmet-gallery .helmet-gallery__list {
  display: flex;
  flex-wrap: nowrap;
  flex-shrink: 0;
  align-items: stretch;
  gap: min(28px, 2vw); /* 24px */
  margin: 0;
  padding: 0;
  list-style: none;
  animation: helmet-gallery-scroll 50s infinite linear 0.5s both;
}

#helmet-gallery .helmet-gallery__item {
  position: relative;
  flex-shrink: 0;
  width: min(403.333px, 28.833vw); /* 346px @1200 */
  aspect-ratio: 346 / 230;
  border-radius: min(14px, 1vw); /* 12px */
  overflow: hidden;
  background-color: var(--helmet-white);
}

#helmet-gallery .helmet-gallery__image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

@keyframes helmet-gallery-scroll {
  from {
    transform: translateX(0);
  }

  to {
    transform: translateX(-100%);
  }
}

@media (prefers-reduced-motion: reduce) {
  #helmet-gallery .helmet-gallery__list {
    animation: none;
    transform: none;
  }
}

/* SP (767px以下) */
@media screen and (max-width: 767px) {
  #helmet-gallery.helmet-gallery {
    padding-top: 10.667vw; /* 40px @375 */
    padding-bottom: 10.667vw;
  }

  #helmet-gallery .helmet-gallery__list {
    gap: 3.2vw; /* 12px @375 */
  }

  #helmet-gallery .helmet-gallery__slider {
    gap: 3.2vw; /* .helmet-gallery__list と同じ */
  }

  #helmet-gallery .helmet-gallery__item {
    width: 65vw;
    border-radius: 3.2vw; /* 12px @375 */
  }
}

/* SP時のみ：スクロール開始まで .flowbanner を非表示にし、スクロール後にフェードイン */
@media screen and (max-width: 767px) {
  body.page-template-helmet-lp .flowbanner.--sp {
    opacity: 0;
    visibility: hidden;
    transform: translateY(100%);
    pointer-events: none;
    transition: opacity 0.3s ease, transform 0.3s ease, visibility 0.3s ease;
  }

  body.page-template-helmet-lp.is-scrolled .flowbanner.--sp {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    pointer-events: auto;
  }
}
