/* パーソナル FV 比較ページ */
/* scroll-behavior は 24h と共通（PC smooth・SP 即時＝24h/base.css）。FV の先頭合わせは fv-scroll-202610.js で即時 */
html:has(body.gym-personal--fv202610),
body.gym-personal--fv202610 {
  overscroll-behavior-y: none;
}

/* VISION24 | personal-fv-202610.css — 六本松パーソナル FV案（SPスクロール）比較用 */

/*
 * 案B: .vision-fv-shell（100svh）と信頼バーを兄弟にする
 * → absolute FV が信頼バーを押し上げない
 */
body.gym-personal--fv202610 .vision-fv-shell.vision-hero--fv202610 {
  display: block;
  overflow: hidden;
  padding-top: var(--header-h-top, var(--header-h, 72px));
  height: 100svh;
  min-height: 0;
  box-sizing: border-box;
  position: relative;
}

/*
 * 最終ページ解放
 * - absolute→relative / height:auto は禁止（配置がガクッとズレる）※実測で確認済
 * - シェルは 100svh のまま
 * - scroller の overscroll-behavior:none + overflow:hidden のままだと
 *   preventDefault を外してもジェスチャが窓へ繋がらず FV から出られない（実測）
 */
body.gym-personal--fv202610 .vision-fv-shell.vision-hero--fv202610.is-exit-ready {
  overflow: visible; /* height は 100svh のまま */
}

.vision-fv202610.is-exit-ready .vision-fv202610__scroller {
  touch-action: pan-y;
  overscroll-behavior-y: auto;
  overflow: visible;
}

.vision-fv202610.is-exit-ready .vision-fv202610__rail,
.vision-fv202610.is-exit-ready .vision-fv202610__stage {
  overflow: visible;
}

/*
 * ページ送り中はヘッダー帯・シェル上余白もネイティブのパンを止める
 * - scroller 外（固定ヘッダー）から始めたスワイプは、iOS Safari だと
 *   JS の preventDefault より先にネイティブ側で処理されページ送りが効かない
 * - タップ（ナビ・ロゴ）はそのまま。メニュー展開中・最終ページ・reduce（送りなし）は外す
 */
@media (prefers-reduced-motion: no-preference) {
  body.gym-personal--fv202610:has(.vision-fv202610.is-ready:not(.is-exit-ready)) .site-header:not(.is-nav-open),
  body.gym-personal--fv202610 .vision-fv-shell.vision-hero--fv202610:not(.is-exit-ready) {
    touch-action: none;
  }
}

/* シェル直下の信頼バー（旧 .vision-hero .vision-trust 相当） */
body.gym-personal--fv202610 .vision-fv-shell + .vision-trust--stat {
  flex-shrink: 0;
  min-width: 0;
}
body.gym-personal--fv202610 .vision-fv-shell + .vision-trust--stat .vision-trust__list {
  padding-block: 18px;
}
@media (max-width: 767px) {
  body.gym-personal--fv202610 .vision-fv-shell + .vision-trust--stat .vision-trust__list {
    padding-block: 8px;
  }
}

.vision-num {
  font-family: "Oswald", var(--f-en), sans-serif;
  font-weight: 700;
  letter-spacing: 0.01em;
}

.vision-fv-shell .vision-fv202610 {
  display: block;
  position: absolute;
  left: 0;
  right: 0;
  top: var(--header-h-top, var(--header-h, 72px));
  bottom: 0;
}

.vision-fv202610__scroller {
  height: 100%;
  /* ページ送りは JS の is-step のみ。内側スクロールは持たない（重さの元） */
  overflow: hidden;
  overscroll-behavior-y: none;
  touch-action: none;
}

.vision-fv202610__rail {
  position: relative;
  height: 100%;
}

.vision-fv202610__snap {
  display: none;
}

.vision-fv202610__stage {
  position: relative;
  height: 100%;
  min-height: 0;
  overflow: hidden;
  color: #fafafa;
  background: #0c0c0c;
  pointer-events: auto;
}

.vision-fv202610__media {
  position: absolute;
  inset: 0;
}
.vision-fv202610__media picture {
  position: absolute;
  inset: 0;
  display: block;
}
.vision-fv202610__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  transform: scale(1.06);
  transition: opacity 0.45s ease, transform 0.7s ease;
}
.vision-fv202610__img.is-on {
  opacity: 1;
  transform: scale(1.02);
}
.vision-fv202610__img:not(.is-on) {
  /* 非表示画像は合成コストを下げる */
  pointer-events: none;
}
.vision-fv202610__shade {
  position: absolute;
  inset: 0;
  background: rgba(12, 12, 12, 0.45);
}
.vision-fv202610__side-shade {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    200deg,
    rgba(12, 12, 12, 0.75) 0%,
    rgba(12, 12, 12, 0) 40%,
    rgba(12, 12, 12, 0) 55%,
    rgba(12, 12, 12, 0.85) 100%
  );
  opacity: 0;
  transition: opacity 0.8s;
}
.vision-fv202610.is-step-1 .vision-fv202610__side-shade {
  opacity: 1;
}

.vision-fv202610__bars {
  display: none;
}
.vision-fv202610__bar {
  flex: 1;
  height: 2px;
  background: rgba(250, 250, 250, 0.25);
}
.vision-fv202610__bar i {
  display: block;
  height: 100%;
  width: 0;
  background: #fee801;
  transition: width 0.6s;
}
.vision-fv202610.is-ready .vision-fv202610__bar i[data-fv202610-bar="0"],
.vision-fv202610.is-step-1 .vision-fv202610__bar i[data-fv202610-bar="1"],
.vision-fv202610.is-step-2 .vision-fv202610__bar i[data-fv202610-bar="1"],
.vision-fv202610.is-step-2 .vision-fv202610__bar i[data-fv202610-bar="2"] {
  width: 100%;
}
.vision-fv202610.is-step-1 .vision-fv202610__bar i[data-fv202610-bar="0"],
.vision-fv202610.is-step-2 .vision-fv202610__bar i[data-fv202610-bar="0"] {
  width: 100%;
}

.vision-fv202610__hero {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  pointer-events: none;
  z-index: 3;
  transition: opacity 0.55s, transform 0.7s cubic-bezier(0.2, 0.8, 0.2, 1), justify-content 0.7s;
}
.vision-fv202610__hook {
  margin: 0;
  font-size: 38px;
  font-weight: 900;
  line-height: 1.3;
  letter-spacing: 0.02em;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  text-align: center;
  transition: font-size 0.7s cubic-bezier(0.2, 0.8, 0.2, 1), gap 0.7s, transform 0.7s cubic-bezier(0.2, 0.8, 0.2, 1);
}
.vision-fv202610__hook > span {
  white-space: nowrap;
  transition: padding 0.7s, margin 0.7s, font-size 0.7s;
}
.vision-fv202610__hook-em {
  background: #fee801;
  color: #0c0c0c;
  padding: 2px 10px;
  margin-top: 6px;
}
.vision-fv202610__nap {
  margin: 18px 0 0;
  text-align: center;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.7;
  color: rgba(250, 250, 250, 0.85);
  transition: opacity 0.4s, margin 0.5s, max-height 0.5s;
  max-height: 6em;
  overflow: hidden;
}
.vision-fv202610__nap span {
  display: block;
  white-space: nowrap;
}

/*
 * step1 SP: メインはリードの上（右上）に小さく残る
 * step2 退場中も同じレイアウトを維持（外すと step0 中央へ一瞬戻ってから退場する）
 */
.vision-fv202610.is-step-1 .vision-fv202610__hero,
.vision-fv202610.is-step-2 .vision-fv202610__hero {
  inset: auto;
  top: 72px;
  left: auto;
  right: 20px;
  bottom: auto;
  width: auto;
  max-width: calc(100% - 40px);
  justify-content: flex-start;
  align-items: flex-end;
  padding: 0;
}
.vision-fv202610.is-step-1 .vision-fv202610__hero {
  opacity: 1;
  transform: none;
}
.vision-fv202610.is-step-1 .vision-fv202610__hook,
.vision-fv202610.is-step-2 .vision-fv202610__hook {
  align-items: flex-end;
  text-align: right;
  font-size: 14px;
  gap: 2px;
  line-height: 1.3;
}
.vision-fv202610.is-step-1 .vision-fv202610__hook-em,
.vision-fv202610.is-step-2 .vision-fv202610__hook-em {
  padding: 1px 6px;
  margin-top: 2px;
}
.vision-fv202610.is-step-1 .vision-fv202610__nap,
.vision-fv202610.is-step-2 .vision-fv202610__nap {
  opacity: 0;
  margin: 0;
  max-height: 0;
}

/* --- マシン文（SP: 右上 / PC: 中央） --- */
.vision-fv202610__copy-stack {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
}
.vision-fv202610__right {
  position: absolute;
  top: 96px;
  right: 20px;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 14px;
  text-align: right;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.55s, top 0.7s cubic-bezier(0.2, 0.8, 0.2, 1);
}
.vision-fv202610.is-step-1 .vision-fv202610__right,
.vision-fv202610.is-step-2 .vision-fv202610__right {
  /* メインの下にリード（step2退場中も位置維持） */
  top: 148px;
  max-width: none;
}
.vision-fv202610.is-step-1 .vision-fv202610__right {
  opacity: 1;
}
/* 見出し強調: 黄下線が伸びる + 補助は階層 */
.vision-fv202610__right-ttl {
  margin: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 6px;
  font-size: 22px;
  font-weight: 900;
  line-height: 1.45;
}
.vision-fv202610__right-ttl-line {
  display: block;
  white-space: nowrap;
}
.vision-fv202610__right-em {
  position: relative;
  display: inline-block;
  margin-top: 4px;
  padding-bottom: 6px;
  color: #fafafa;
  white-space: nowrap;
}
.vision-fv202610__right-em::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  height: 4px;
  width: 0;
  background: #fee801;
  transition: width 0.45s cubic-bezier(0.2, 0.8, 0.2, 1);
  transition-delay: 0.08s;
}
.vision-fv202610.is-step-1 .vision-fv202610__right-em::after,
.vision-fv202610.is-step-2 .vision-fv202610__right-em::after {
  width: 100%;
}
.vision-fv202610__right-sub {
  margin: 0;
  display: flex;
  flex-direction: row-reverse; /* SP右寄せに合わせてバーを右 */
  align-items: stretch;
  gap: 10px;
  max-width: 18em;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.75;
  color: rgba(250, 250, 250, 0.88);
  text-align: right;
}
.vision-fv202610__right-sub-bar {
  flex: none;
  width: 3px;
  background: #fee801;
}
.vision-fv202610__right-sub-txt {
  flex: 1;
  min-width: 0;
}

/* --- 本格指導（SP: 左下 / PC: 料金左） --- */
.vision-fv202610__left {
  position: absolute;
  left: 20px;
  bottom: 120px;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  transform-origin: left bottom;
  opacity: 0;
  pointer-events: none;
}
.vision-fv202610.is-step-1 .vision-fv202610__left {
  opacity: 1;
  transform: none;
}
.vision-fv202610__left-line,
.vision-fv202610__left-big {
  margin: 0;
  overflow: hidden;
  padding-bottom: 4px;
}
.vision-fv202610__left-line {
  font-size: 15px;
  font-weight: 700;
  line-height: 1.35;
}
.vision-fv202610__left-line .vision-num {
  font-size: 32px;
  color: #fee801;
  margin: 0 2px;
}
.vision-fv202610__left-times {
  font-size: 26px !important;
  line-height: 1;
}
.vision-fv202610__left-big {
  font-size: 56px;
  font-weight: 900;
  line-height: 1.1;
  letter-spacing: -0.01em;
  align-self: flex-end;
}
.vision-fv202610__left [data-fv202610-mask] {
  display: block;
  white-space: nowrap;
  transform: translateY(110%);
  transition: transform 0.4s cubic-bezier(0.2, 0.8, 0.2, 1);
}
.vision-fv202610.is-step-1 .vision-fv202610__left [data-fv202610-mask],
.vision-fv202610.is-step-2 .vision-fv202610__left [data-fv202610-mask] {
  transform: translateY(0);
}
.vision-fv202610.is-step-1 .vision-fv202610__left-line [data-fv202610-mask] {
  transition-delay: 0.04s;
}
.vision-fv202610.is-step-1 .vision-fv202610__left-big [data-fv202610-mask] {
  transition-delay: 0.12s;
}
.vision-fv202610__left-bar {
  display: block;
  height: 6px;
  width: 0;
  background: #fee801;
  margin-top: 6px;
  transition: width 0.9s cubic-bezier(0.2, 0.8, 0.2, 1);
}
.vision-fv202610.is-step-1 .vision-fv202610__left-bar,
.vision-fv202610.is-step-2 .vision-fv202610__left-bar {
  width: 100%;
}
.vision-fv202610.is-step-1 .vision-fv202610__left-bar {
  transition-delay: 0.2s;
}

/* --- CTA: SPは下段縦積み / PCは幅1200ドック --- */
.vision-fv202610__cta {
  position: absolute;
  inset: 0;
  z-index: 3;
  pointer-events: none;
}
.vision-fv202610__offer {
  position: absolute;
  left: 20px;
  right: 20px;
  /* SCROLL↓ の上に余白を残し、バナーがスクロール領域に被らないようにする */
  bottom: 52px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.7s, transform 0.7s;
  pointer-events: none;
}
.vision-fv202610.is-step-2 .vision-fv202610__offer {
  opacity: 1;
  transform: none;
  pointer-events: auto;
}
.vision-fv202610__price {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  text-align: center;
}
.vision-fv202610__price span {
  font-size: 15px;
  font-weight: 700;
}
.vision-fv202610__price strong {
  font-weight: 900;
  font-size: 24px;
  white-space: nowrap;
}
.vision-fv202610__price .vision-num {
  font-size: 56px;
  line-height: 1.05;
  color: #fee801;
  margin: 0 4px;
}
/* 価格直下の条件（税込・60分／月額会員制） */
.vision-fv202610__price-note {
  font-size: 12px;
  font-weight: 700;
  line-height: 1.4;
}
.vision-fv202610__actions {
  display: flex;
  flex-direction: row;
  gap: 10px;
}
.vision-fv202610__btn {
  display: flex;
  flex: 1;
  justify-content: center;
  align-items: center;
  height: 52px;
  font-weight: 900;
  font-size: 15px;
  text-decoration: none;
  border-radius: 2px;
  white-space: nowrap;
}
.vision-fv202610__btn--primary {
  background: #fee801;
  color: #0c0c0c;
}
.vision-fv202610__btn--ghost {
  background: transparent;
  color: #fafafa;
  border: 1px solid rgba(250, 250, 250, 0.7);
}
.vision-fv202610__banner {
  display: block;
}
.vision-fv202610__banner picture,
.vision-fv202610__banner img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 4px;
}

.vision-fv202610__cue {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 14px;
  margin: 0;
  font-family: var(--f-en);
  font-weight: 700;
  font-size: 11px;
  letter-spacing: 0.2em;
  color: rgba(250, 250, 250, 0.8);
  text-align: center;
  z-index: 5;
  opacity: 0;
  transition: opacity 0.4s;
  pointer-events: none;
}
/* 3ページ目も含め、FV離脱まで SCROLL をバナー下に表示 */
.vision-fv202610.is-ready .vision-fv202610__cue {
  opacity: 1;
}

/* 行の時差（メインコピーは早めに出す） */
.vision-fv202610 [data-fv202610-line] {
  opacity: 0;
  transform: translateY(12px);
  transition: opacity 0.35s ease, transform 0.35s ease;
}
.vision-fv202610.is-ready .vision-fv202610__hero [data-fv202610-line]:nth-child(1) {
  opacity: 1;
  transform: none;
  transition-delay: 0s;
}
.vision-fv202610.is-ready .vision-fv202610__hero [data-fv202610-line]:nth-child(2) {
  opacity: 1;
  transform: none;
  transition-delay: 0.06s;
}
.vision-fv202610.is-ready .vision-fv202610__hero [data-fv202610-line]:nth-child(3) {
  opacity: 1;
  transform: none;
  transition-delay: 0.12s;
}
.vision-fv202610.is-ready .vision-fv202610__nap {
  opacity: 1;
  transform: none;
  transition-delay: 0.18s;
}
.vision-fv202610.is-step-1 .vision-fv202610__right [data-fv202610-line]:nth-child(1),
.vision-fv202610.is-step-2 .vision-fv202610__right [data-fv202610-line]:nth-child(1) {
  opacity: 1;
  transform: none;
}
.vision-fv202610.is-step-1 .vision-fv202610__right [data-fv202610-line]:nth-child(1) {
  transition-delay: 0.06s;
}
.vision-fv202610.is-step-1 .vision-fv202610__right [data-fv202610-line]:nth-child(2),
.vision-fv202610.is-step-2 .vision-fv202610__right [data-fv202610-line]:nth-child(2) {
  opacity: 1;
  transform: none;
}
.vision-fv202610.is-step-1 .vision-fv202610__right [data-fv202610-line]:nth-child(2) {
  transition-delay: 0.14s;
}
.vision-fv202610.is-step-2 .vision-fv202610__offer [data-fv202610-line]:nth-child(1) {
  opacity: 1;
  transform: none;
  transition-delay: 0.04s;
}
.vision-fv202610.is-step-2 .vision-fv202610__offer [data-fv202610-line]:nth-child(2) {
  opacity: 1;
  transform: none;
  transition-delay: 0.1s;
}
.vision-fv202610.is-step-2 .vision-fv202610__offer [data-fv202610-line]:nth-child(3) {
  opacity: 1;
  transform: none;
  transition-delay: 0.16s;
}

/* step2: 他コピーと同じくフェード＋わずかな translateY で退場（scaleなし） */
.vision-fv202610.is-step-2 .vision-fv202610__hero {
  opacity: 0;
  transform: translateY(20px);
  pointer-events: none;
  transition: opacity 0.55s, transform 0.55s;
}
.vision-fv202610.is-step-2 .vision-fv202610__left,
.vision-fv202610.is-step-2 .vision-fv202610__right {
  opacity: 0;
  transform: translateY(20px);
  pointer-events: none;
  transition: opacity 0.55s, transform 0.55s;
}

@media (prefers-reduced-motion: reduce) {
  body.gym-personal--fv202610 .vision-fv-shell.vision-hero--fv202610 {
    height: auto;
    overflow: visible;
  }
  .vision-fv202610__scroller {
    overflow: visible;
    height: auto;
  }
  .vision-fv202610__rail {
    height: auto;
  }
  .vision-fv202610__snap {
    display: none;
  }
  .vision-fv202610__stage {
    position: relative;
    height: auto;
    min-height: 100svh;
    padding: 80px 20px 40px;
  }
  .vision-fv202610__img,
  .vision-fv202610 [data-fv202610-line],
  .vision-fv202610__left [data-fv202610-mask] {
    transition: none !important;
  }
  .vision-fv202610__hero,
  .vision-fv202610__right,
  .vision-fv202610__left,
  .vision-fv202610__cta,
  .vision-fv202610__offer {
    position: relative;
    inset: auto;
    opacity: 1;
    transform: none;
    pointer-events: auto;
    margin: 16px 0;
  }
  .vision-fv202610__cue {
    display: none;
  }
}

/*
 * PC（2段階）
 * - メイン／リード: 右端揃え
 * - 下段ドック幅 max 1200: [本格指導] [3300] [予約] を space-between
 * - その下にプロテインバナー（同じ幅）
 */
@media (min-width: 768px) {
  /* PC: 2ページも is-step のみ（rail は常に1画面） */
  .vision-fv202610__rail {
    height: 100%;
  }
  .vision-fv202610__stage {
    height: 100%;
  }
  .vision-fv202610__snap--sp,
  .vision-fv202610__bar--sp {
    display: none;
  }
  .vision-fv202610.is-step-1 .vision-fv202610__side-shade {
    opacity: 1;
  }
  .vision-fv202610__hook {
    font-size: 56px;
  }
  .vision-fv202610__nap {
    font-size: 13px;
  }
  /* step1 PC: フックは左（メイン／リードは右端） */
  .vision-fv202610.is-step-1 .vision-fv202610__hero {
    top: clamp(88px, 14vh, 140px);
    left: max(32px, calc(50% - 420px));
    right: auto;
    max-width: 200px;
    align-items: flex-start;
  }
  .vision-fv202610.is-step-1 .vision-fv202610__hook {
    align-items: flex-start;
    text-align: left;
    font-size: 16px;
    gap: 3px;
  }

  /* PC: メイン／リードは右端揃え */
  .vision-fv202610__right {
    top: clamp(80px, 14vh, 140px);
    left: auto;
    right: max(48px, calc(50% - 600px));
    bottom: auto;
    transform: none;
    align-items: flex-end;
    text-align: right;
    max-width: min(560px, calc(100% - 64px));
  }
  .vision-fv202610.is-step-1 .vision-fv202610__right {
    top: clamp(88px, 14vh, 140px);
    max-width: min(520px, calc(100% - 280px));
  }
  .vision-fv202610__right-ttl {
    flex-direction: column;
    flex-wrap: nowrap;
    justify-content: flex-start;
    align-items: flex-end;
    gap: 8px;
    max-width: none;
    font-size: 28px;
    line-height: 1.4;
    white-space: normal;
    text-align: right;
  }
  .vision-fv202610__right-ttl-line {
    display: block;
    white-space: nowrap;
  }
  .vision-fv202610__right-em {
    margin-top: 0;
    margin-left: 0;
    padding-bottom: 8px;
    font-size: 28px;
  }
  .vision-fv202610__right-em::after {
    height: 5px;
  }
  .vision-fv202610__right-sub {
    flex-direction: row-reverse;
    max-width: 28em;
    font-size: 17px;
    text-align: right;
  }

  .vision-fv202610__left-line {
    font-size: 18px;
  }
  .vision-fv202610__left-line .vision-num {
    font-size: 40px;
  }
  .vision-fv202610__left-times {
    font-size: 30px !important;
  }
  .vision-fv202610__left-big {
    font-size: 64px;
    align-self: flex-start;
  }

  .vision-fv202610__cta {
    inset: auto;
    left: 50%;
    bottom: 40px;
    width: min(1200px, calc(100% - 96px));
    transform: translateX(-50%);
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: flex-end;
    column-gap: 24px;
    row-gap: 16px;
  }
  /* offer の箱を外し、left / price / btn / banner を .cta の直下 flex 子にする */
  .vision-fv202610__offer {
    display: contents;
  }
  .vision-fv202610__left {
    position: relative;
    left: auto;
    bottom: auto;
    order: 1;
  }
  .vision-fv202610__price {
    order: 2;
    text-align: center;
    align-items: center;
  }
  .vision-fv202610__price span {
    font-size: 20px;
  }
  .vision-fv202610__price strong {
    font-size: 36px;
  }
  .vision-fv202610__price .vision-num {
    font-size: 80px;
  }
  .vision-fv202610__actions {
    order: 3;
    flex-direction: column;
    gap: 12px;
    min-width: 280px;
  }
  .vision-fv202610__btn {
    flex: none;
    height: 58px;
    padding: 0 28px;
    font-size: 17px;
  }
  .vision-fv202610__banner {
    order: 4;
    flex: 1 0 100%;
    width: 100%;
  }
  .vision-fv202610__cue {
    display: none;
  }

  /* 統合ページ: step1 で本格指導＋offer を同時表示 */
  .vision-fv202610.is-step-1 .vision-fv202610__left,
  .vision-fv202610.is-step-1 .vision-fv202610__right {
    opacity: 1;
    pointer-events: auto;
  }
  .vision-fv202610.is-step-1 .vision-fv202610__cta,
  .vision-fv202610.is-step-1 .vision-fv202610__offer {
    /* offer（display:contents）の pointer-events:none が料金・ボタン・バナーへ引き継がれ、PC で押せなかった（2026-10-31 修正） */
    pointer-events: auto;
  }
  .vision-fv202610.is-step-1 .vision-fv202610__left [data-fv202610-mask] {
    transform: translateY(0);
  }
  .vision-fv202610.is-step-1 .vision-fv202610__offer [data-fv202610-line] {
    opacity: 1;
    transform: none;
  }
}

/* PC 縦短: リードさらに上げ、CTA側を圧縮 */
@media (min-width: 768px) and (max-height: 860px) {
  .vision-fv202610__right {
    top: clamp(64px, 10vh, 100px);
    max-width: min(880px, calc(100% - 48px));
  }
  .vision-fv202610__right-ttl {
    font-size: 26px;
  }
  .vision-fv202610__right-em {
    font-size: 26px;
    padding-bottom: 6px;
  }
  .vision-fv202610__right-sub {
    font-size: 15px;
  }
  .vision-fv202610__left-line {
    font-size: 15px;
  }
  .vision-fv202610__left-line .vision-num {
    font-size: 32px;
  }
  .vision-fv202610__left-times {
    font-size: 24px !important;
  }
  .vision-fv202610__left-big {
    font-size: 48px;
  }
  .vision-fv202610__cta {
    bottom: 20px;
    row-gap: 10px;
    column-gap: 16px;
  }
  .vision-fv202610__price span {
    font-size: 17px;
  }
  .vision-fv202610__price strong {
    font-size: 28px;
  }
  .vision-fv202610__price .vision-num {
    font-size: 64px;
  }
  .vision-fv202610__btn {
    height: 48px;
    min-width: 220px;
    font-size: 15px;
  }
}

@media (min-width: 768px) and (max-height: 720px) {
  .vision-fv202610__right {
    top: 56px;
  }
  .vision-fv202610__right-sub {
    display: none;
  }
  .vision-fv202610__left-line {
    font-size: 13px;
  }
  .vision-fv202610__left-big {
    font-size: 40px;
  }
  .vision-fv202610__cta {
    bottom: 12px;
    row-gap: 8px;
  }
  .vision-fv202610__actions {
    gap: 8px;
  }
  .vision-fv202610__btn {
    height: 44px;
  }
}


/* ── セクション大見出し：RESULTS（kicker / catch / rule）に統一 ── */
body.gym-personal--fv202610 .sec-ttl,
body.gym-personal--fv202610 .vision-contact .sec-ttl {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

/* EN = RESULTS .vision-ba__kicker（アニメなし・字間広め・700） */
body.gym-personal--fv202610 .sec-ttl__en,
body.gym-personal--fv202610 .sec-ttl--c2 .sec-ttl__en,
body.gym-personal--fv202610 .vision-contact .sec-ttl__en {
  position: static;
  left: auto;
  right: auto;
  top: auto;
  display: block;
  margin: 0;
  padding: 0;
  overflow: visible;
  transform: none;
  font-family: var(--f-en);
  font-size: 14px;
  font-weight: 700;
  font-style: normal;
  line-height: 1.2;
  letter-spacing: .32em;
  color: var(--ink-muted-2, #9a9a9a);
  white-space: normal;
  pointer-events: auto;
}

/* reveal アニメを RESULTS 同様に静止表示へ */
body.gym-personal--fv202610 .js .sec-ttl .reveal-ltr__inner,
body.gym-personal--fv202610 .js .sec-ttl .reveal-up__inner,
body.gym-personal--fv202610 .js .vision-contact .sec-ttl .reveal-up__inner {
  display: inline;
  transform: none !important;
  transition: none !important;
}

/* JP = RESULTS .vision-ba__catch */
body.gym-personal--fv202610 .sec-ttl__jp,
body.gym-personal--fv202610 .sec-ttl--c2 .sec-ttl__jp,
body.gym-personal--fv202610 .vision-contact .sec-ttl__jp {
  display: block;
  margin: 22px 0 0;
  padding: 0;
  border: 0;
  border-top: 0;
  font-size: 40px;
  font-weight: 900;
  line-height: 1.45;
  letter-spacing: 0;
}

/* 黄ライン = RESULTS .vision-ba__rule */
body.gym-personal--fv202610 .sec-ttl__jp::after,
body.gym-personal--fv202610 .vision-contact .sec-ttl__jp::after {
  content: "";
  display: block;
  width: 44px;
  height: 3px;
  margin: 28px auto 0;
  background: #FEE801;
}

/* FEATURES/INTRODUCTION の巨大斜め英字を打ち消し */
body.gym-personal--fv202610 .sec-ttl--c2 {
  padding: 0;
  position: relative;
}
body.gym-personal--fv202610 .sec-ttl--c2 .sec-ttl__en {
  color: var(--ink-muted-2, #9a9a9a);
}

/* 黒背景セクションの英字（VOICE 等） */
body.gym-personal--fv202610 .vision-voice .sec-ttl__en,
body.gym-personal--fv202610 .sec-ttl--onblack .sec-ttl__en {
  color: rgba(255, 255, 255, .72);
}

/* リード：通常テキストのみ。assure 等の太字行は対象外 */
body.gym-personal--fv202610 .sec-ttl__lead {
  margin: 28px 0 0;
  max-width: 720px;
  font-size: 15px;
  font-weight: 400;
  line-height: 2.1;
  text-align: center;
}

@media (max-width: 899px) {
  body.gym-personal--fv202610 .sec-ttl__en,
  body.gym-personal--fv202610 .sec-ttl--c2 .sec-ttl__en,
  body.gym-personal--fv202610 .vision-contact .sec-ttl__en {
    font-size: 12px;
  }

  body.gym-personal--fv202610 .sec-ttl__jp,
  body.gym-personal--fv202610 .sec-ttl--c2 .sec-ttl__jp,
  body.gym-personal--fv202610 .vision-contact .sec-ttl__jp {
    margin-top: 16px;
    font-size: 24px;
    line-height: 1.5;
  }

  body.gym-personal--fv202610 .sec-ttl__jp::after,
  body.gym-personal--fv202610 .vision-contact .sec-ttl__jp::after {
    width: 36px;
    margin-top: 20px;
  }

  /* スマホのみリード左揃え（太字の assure 等は除外） */
  body.gym-personal--fv202610 .sec-ttl__lead {
    text-align: left;
  }

  body.gym-personal--fv202610 .sec-ttl__assure {
    text-align: center;
  }
}

/* ── 見出し内ジャンプ率 ── */
body.gym-personal--fv202610 .vision-jump {
  font-size: 1.48em;
  font-weight: 900;
  letter-spacing: 0;
}

/* SP3枚目マシン: 天井寄りを避けマシンを画面上側へ */
@media (max-width: 767px) {
  .vision-fv202610.is-step-2 .vision-fv202610__img[data-fv202610-img="2"] {
    object-position: 50% 28%;
  }
}

/*
 * FV動画版・左寄せ（六本松 pattern の $fv_video。2026-10-31）
 * 写真3枚の代わりに動画1本を全段階で流す。PC＝16:9（人物が左・右は同じ動画のぼかし）、SP＝縦長。
 * 文字は右側（PC）。セクション: 動画 → 文字の影 → メインコピー → 背景の英字 → リード → 料金・ボタン・バナー → SCROLL
 */

/* ── 動画（ヘッダーの裏まで伸ばす。ヘッダーは透明・シェルが 100svh で切るので外へは出ない） ── */
.vision-fv202610--video-left {
  --fv-hh: var(--header-h-top, var(--header-h, 72px));
  --fv-side: max(48px, calc(50% - 600px)); /* PC の右余白（リード・料金と揃える） */
}
.vision-fv202610--video-left .vision-fv202610__scroller,
.vision-fv202610--video-left .vision-fv202610__rail,
.vision-fv202610--video-left .vision-fv202610__stage {
  overflow: visible;
}
.vision-fv202610--video-left .vision-fv202610__media {
  top: calc(-1 * var(--fv-hh));
}
.vision-fv202610--video-left .vision-fv202610__video {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 30%;
  transition: opacity 0.4s ease;
}
/* 再生前の読み込み画面（黒地＋白ロゴ）は共通部品 .vision-fv-loading（shared/fv-common.css・切替は shared/fv-loading.js）。
   六本松はロゴの位置だけ変える: SP はメインコピー（画面中央）より上、PC は下の min-width で人物側（左半分の中央） */
.vision-fv202610--video-left .vision-fv202610__loading {
  --fv-loading-align: flex-start;
  --fv-loading-pad: calc(var(--fv-hh) + 14svh) 0 0;
}
/* 上端はヘッダーのロゴが読めるよう少し暗く。SP は全体を薄く沈める */
.vision-fv202610--video-left .vision-fv202610__shade {
  background:
    linear-gradient(180deg, rgba(12, 12, 12, 0.5) 0, rgba(12, 12, 12, 0) calc(var(--fv-hh) * 2)),
    rgba(12, 12, 12, 0.25);
}
@media (min-width: 768px) {
  /* 人物の左端が切れないよう左揃え */
  .vision-fv202610--video-left .vision-fv202610__video {
    object-position: 0% 50%;
  }
  .vision-fv202610--video-left .vision-fv202610__loading {
    --fv-loading-align: center;
    --fv-loading-pad: var(--fv-hh) 50% 0 0;
  }
  /* 人物（左）は明るいまま、文字を置く右側だけ沈める */
  .vision-fv202610--video-left .vision-fv202610__shade {
    background:
      linear-gradient(180deg, rgba(12, 12, 12, 0.5) 0, rgba(12, 12, 12, 0) calc(var(--fv-hh) * 2)),
      linear-gradient(90deg, rgba(12, 12, 12, 0) 38%, rgba(12, 12, 12, 0.3) 62%, rgba(12, 12, 12, 0.4) 100%);
  }
}

/* ── 文字の影 ── */
/* 白文字に薄い影（黄地・ボタン・バナーは付けない） */
.vision-fv202610--video-left .vision-fv202610__stage {
  text-shadow: 0 1px 8px rgba(0, 0, 0, 0.45);
}
.vision-fv202610--video-left .vision-fv202610__hook-em,
.vision-fv202610--video-left .vision-fv202610__btn,
.vision-fv202610--video-left .vision-fv202610__banner {
  text-shadow: none;
}
/* ── メインコピー ──
 * step0: ジャンプ率（「ただ痩せる／だけじゃない。」を小さく、黄帯を大きく）。黄帯は大きく出てそのまま収まる
 * step1（PC）: 右上へ小さく（SP は既定どおり右上） */
.vision-fv202610--video-left.is-step-0 .vision-fv202610__hook > span:not(.vision-fv202610__hook-em) {
  font-size: 0.62em;
}
@media (prefers-reduced-motion: no-preference) {
  .vision-fv202610--video-left.is-ready.is-step-0 .vision-fv202610__hook-em {
    animation: vision-fv202610-jump 0.7s cubic-bezier(0.16, 1, 0.3, 1) 0.3s both;
  }
}
@keyframes vision-fv202610-jump {
  0% {
    opacity: 0;
    transform: scale(1.7);
  }
  40% {
    opacity: 1;
  }
  100% {
    opacity: 1;
    transform: none;
  }
}
/* 「ただ痩せる」「だけじゃない。」を1行に、黄帯は次の行（SP は2画面目以降、PC は全画面）
 * 横並び＋折り返しにして、幅いっぱいの空の要素で黄帯の前だけ改行する */
.vision-fv202610--video-left:is(.is-step-1, .is-step-2) .vision-fv202610__hook {
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: flex-end;
  column-gap: 0;
}
.vision-fv202610--video-left:is(.is-step-1, .is-step-2) .vision-fv202610__hook::after {
  content: "";
  flex-basis: 100%;
  order: 1;
  height: 0;
}
.vision-fv202610--video-left:is(.is-step-1, .is-step-2) .vision-fv202610__hook-em {
  order: 2;
}
@media (min-width: 768px) {
  .vision-fv202610--video-left .vision-fv202610__hook {
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: flex-end;
    column-gap: 0;
  }
  .vision-fv202610--video-left .vision-fv202610__hook::after {
    content: "";
    flex-basis: 100%;
    order: 1;
    height: 0;
  }
  .vision-fv202610--video-left .vision-fv202610__hook-em {
    order: 2;
  }
}
@media (max-width: 767px) {
  .vision-fv202610--video-left .vision-fv202610__hook {
    font-size: 36px;
  }
}
@media (min-width: 768px) {
  .vision-fv202610--video-left {
    --fv-step1-top: clamp(20px, 3.6vh, 36px); /* step1 のメインコピーの上端（リードはこの下） */
  }
  .vision-fv202610--video-left .vision-fv202610__hero {
    padding: 0 var(--fv-side) 0 45%;
    align-items: flex-end;
  }
  /* 狭いPC幅でも右半分に収まる大きさに（1440幅で 56px） */
  .vision-fv202610--video-left .vision-fv202610__hook {
    font-size: clamp(32px, 3.9vw, 56px);
  }
  .vision-fv202610--video-left .vision-fv202610__hook,
  .vision-fv202610--video-left .vision-fv202610__nap,
  .vision-fv202610--video-left.is-step-1 .vision-fv202610__hook {
    align-items: flex-end;
    text-align: right;
  }
  .vision-fv202610--video-left.is-step-0 .vision-fv202610__hook-em {
    font-size: 1.2em;
    transform-origin: 100% 50%;
  }
  .vision-fv202610--video-left.is-step-1 .vision-fv202610__hero {
    top: var(--fv-step1-top);
    left: auto;
    right: var(--fv-side);
    max-width: none;
    align-items: flex-end;
  }
}

/* ── 背景の英字（ブランドのあしらい）。白の細い輪郭だけ・文字より奥。大きく置いて画面端から少しはみ出させる。動きなし・全段階で表示 ── */
.vision-fv202610__bg-en {
  position: absolute;
  z-index: 1;
  left: -0.04em;
  bottom: 120px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  margin: 0;
  font-family: var(--f-en);
  font-size: 23vw;
  font-style: italic;
  font-weight: 700;
  line-height: 0.86;
  letter-spacing: -0.01em;
  white-space: nowrap;
  color: transparent;
  -webkit-text-stroke: 1px rgba(250, 250, 250, 0.3);
  text-shadow: none;
  pointer-events: none;
}
.vision-fv202610__bg-en > span {
  display: block;
}
@media (min-width: 768px) {
  .vision-fv202610__bg-en {
    left: auto;
    right: -0.06em;
    bottom: -0.1em;
    align-items: flex-end;
    font-size: clamp(96px, 13.5vw, 240px);
  }
}

/* ── リード（マシンの使い方から〜）: 後ろだけ暗く沈めて英字・映像のちらつきを抑え、強調行を大きく ── */
.vision-fv202610--video-left .vision-fv202610__right {
  isolation: isolate;
}
.vision-fv202610--video-left .vision-fv202610__right::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: -56px -48px -48px -64px;
  background: radial-gradient(ellipse at 50% 50%, rgba(12, 12, 12, 0.85) 0, rgba(12, 12, 12, 0.6) 45%, rgba(12, 12, 12, 0) 74%);
  pointer-events: none;
}
.vision-fv202610--video-left .vision-fv202610__right-sub {
  opacity: 0.85;
}
@media (max-width: 767px) {
  .vision-fv202610--video-left .vision-fv202610__right-em {
    font-size: 28px;
  }
  /* 「本格指導。」を出さない分、リードは右下へ（メインコピーは右上のまま） */
  .vision-fv202610--video-left.is-step-1 .vision-fv202610__right,
  .vision-fv202610--video-left.is-step-2 .vision-fv202610__right {
    top: auto;
    bottom: 104px;
  }
}
@media (min-width: 768px) {
  .vision-fv202610--video-left.is-step-1 .vision-fv202610__right {
    top: calc(var(--fv-step1-top) + 92px);
  }
  .vision-fv202610--video-left .vision-fv202610__right-ttl {
    gap: 6px;
    font-size: clamp(18px, 2.7vh, 24px);
  }
  .vision-fv202610--video-left .vision-fv202610__right-em {
    font-size: clamp(30px, 4.9vh, 44px);
  }
  .vision-fv202610--video-left .vision-fv202610__right-sub {
    font-size: 15px;
  }
}

/* ── 料金・予約ボタン・プロテインバナー ──
 * 背面の英字に負けないよう、料金が出ている段階だけ後ろを暗く沈める（SP: step2 / PC: step1）。予約ボタンは黄の縁の光と「→」
 * PC は右の列に「料金 → ボタン → バナー」（バナーは平尾パーソナルと同じくボタン列と同じ幅） */
.vision-fv202610--video-left .vision-fv202610__cta {
  isolation: isolate;
}
.vision-fv202610--video-left .vision-fv202610__cta::before {
  content: "";
  position: absolute;
  z-index: -1;
  left: -60px;
  right: -60px;
  bottom: -40px;
  height: 420px;
  background: radial-gradient(ellipse at 50% 70%, rgba(12, 12, 12, 0.9) 0, rgba(12, 12, 12, 0.7) 40%, rgba(12, 12, 12, 0) 72%);
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.55s;
}
.vision-fv202610--video-left.is-step-2 .vision-fv202610__cta::before {
  opacity: 1;
}
.vision-fv202610--video-left .vision-fv202610__btn--primary {
  box-shadow: 0 0 0 4px rgba(254, 232, 1, 0.25), 0 10px 30px rgba(254, 232, 1, 0.25);
}
.vision-fv202610--video-left .vision-fv202610__btn--primary::after {
  content: "→";
  margin-left: 0.6em;
  font-weight: 900;
}
.vision-fv202610--video-left .vision-fv202610__btn--ghost {
  background: rgba(12, 12, 12, 0.85);
}
@media (max-width: 767px) {
  /* SCROLL の線の分だけ持ち上げる */
  .vision-fv202610--video-left .vision-fv202610__offer {
    bottom: 64px;
  }
  .vision-fv202610--video-left .vision-fv202610__price .vision-num {
    font-size: 72px;
  }
  .vision-fv202610--video-left .vision-fv202610__btn {
    height: 58px;
    font-size: 16px;
  }
}
@media (min-width: 768px) {
  .vision-fv202610--video-left .vision-fv202610__cta {
    flex-direction: column;
    flex-wrap: nowrap;
    align-items: flex-end;
    row-gap: 20px;
  }
  .vision-fv202610--video-left.is-step-1 .vision-fv202610__cta::before {
    opacity: 1;
  }
  .vision-fv202610--video-left .vision-fv202610__cta::before {
    left: auto;
    right: -140px;
    bottom: -80px;
    width: 820px;
    height: 520px;
    background: radial-gradient(ellipse at 72% 72%, rgba(12, 12, 12, 0.92) 0, rgba(12, 12, 12, 0.75) 38%, rgba(12, 12, 12, 0) 70%);
  }
  .vision-fv202610--video-left .vision-fv202610__price {
    align-items: flex-end;
    text-align: right;
  }
  .vision-fv202610--video-left .vision-fv202610__price strong {
    font-size: clamp(26px, 4vh, 36px);
  }
  .vision-fv202610--video-left .vision-fv202610__price .vision-num {
    font-size: clamp(64px, 11.1vh, 100px);
  }
  .vision-fv202610--video-left .vision-fv202610__actions,
  .vision-fv202610--video-left .vision-fv202610__banner {
    width: 452px;
    max-width: 100%;
  }
  .vision-fv202610--video-left .vision-fv202610__actions {
    flex-direction: row;
    gap: 12px;
    min-width: 0;
  }
  .vision-fv202610--video-left .vision-fv202610__btn {
    flex: 1;
    min-width: 0;
    height: clamp(52px, 7.4vh, 66px);
    font-size: 18px;
  }
  .vision-fv202610--video-left .vision-fv202610__banner {
    flex: none;
    margin-top: -4px;
  }
}

/* ── SCROLL: 見た目は共通部品 .vision-scroll-cue（shared/fv-common.css・トップと同じ）。ここは置き場所と線の長さだけ ── */
.vision-fv202610__cue--line {
  left: 50%;
  right: auto;
  bottom: 0;
  padding: 8px 12px 0;
  color: var(--scroll-cue-color, #fff);
  letter-spacing: 0;
  transform: translateX(-50%);
  --scroll-cue-line-h: 56px;
}
@media (max-width: 767px) {
  .vision-fv202610__cue--line {
    --scroll-cue-line-h: 32px;
  }
}
/* 狭いPC幅: 画面中央だと右の列（料金・ボタン・バナー 452px）に重なるので、左の空きの中央へ */
@media (min-width: 768px) and (max-width: 1199px) {
  .vision-fv202610--video-left .vision-fv202610__cue--line {
    left: calc((100% - 452px - var(--fv-side)) / 2);
  }
}

/* 信頼バー: 24h と同じ細ラインのマーキー（形は共通部品 shared/trust-line.css の .vision-trust--line）。
 * 六本松は濃紺×黄（2026-10-31 ユーザー指示。既定＝平尾・24h平尾は白地×ゴールド）。色の変数だけ置く */
body.gym-personal--ropponmatsu .vision-trust--line {
  --trust-line-bg: #111317;
  --trust-line-fg: #fff;
  --trust-line-rule: rgba(255, 255, 255, .08);
  --trust-line-sep: rgba(255, 255, 255, .28);
  --trust-line-num: #fee801;
}

/* 六本松202610: ビフォーアフター〜完走者100名平均を1つの枠線に */
body.gym-personal--fv202610.gym-personal--ropponmatsu .vision-ba__frame {
  display: flex;
  flex-direction: column;
  gap: 56px;
  margin: 0;
  padding: 40px 32px 32px;
  border: 1px solid var(--ba-line, rgba(255, 255, 255, .28));
  border-radius: var(--r-lg, 8px);
}
body.gym-personal--fv202610.gym-personal--ropponmatsu .vision-ba__frame > .vision-stat {
  margin: 0;
  border: 0;
}
@media (max-width: 899px) {
  body.gym-personal--fv202610.gym-personal--ropponmatsu .vision-ba__frame {
    gap: 40px;
    padding: 28px 16px 20px;
  }
  body.gym-personal--fv202610.gym-personal--ropponmatsu .vision-ba__frame .vision-ba__photo {
    margin-inline: 0;
    border-radius: var(--r-lg, 8px);
  }
}

/* ══════════ 5つの特徴: SPコンパクト化（平尾202610から移植・六本松のみ） ══════════
 * 平尾は personal-fv-hirao-202610.css 側。角丸・配色の変更は持ち込まない（黒はチャコールにせず ink-black）
 */

/* ── MACHINE（両店共通・2026-10-24 改修。六本松=02／平尾=05）: 数字 → ポイント3つ → マシン画像 → 目的別（非表示中）→ 不安解消
 * 平尾の色・角丸・ラベルは personal-fv-hirao-202610.css で上書き
 * 色は既存トークンだけ。黄は tokens.css の --fill-yellow（#FEE801）。白地で 1.3:1 のため線・面だけに使い、文字色にはしない
 * 背景・飾り数字「02」・英字ラベル「MACHINE」は従来の指定のまま（SP の「02」だけ見出しに重ならないよう縮小） */
body.gym-personal--fv202610 .vision-gym-br-pc { display: none; }
/* 収まらない幅では「、」の後で折り返し、「パーソナル。」の途中では切らない */
body.gym-personal--fv202610 .vision-gym-nowrap { white-space: nowrap; }
@media (min-width: 769px) { /* .vision-br-sp（personal.css）と同じ境目。768px で両方の改行が出ないように */
  body.gym-personal--fv202610 .vision-gym-br-pc { display: inline; }
}
body.gym-personal--fv202610 .vision-gym--202610 {
  display: flex;
  flex-direction: column;
  gap: 48px;
  padding: 16px var(--pad) 72px;
  color: var(--ink-dark);
}
body.gym-personal--fv202610 .vision-gym--202610 .vision-gym-lineup {
  margin: 0;
}
/* iOS（WebKit）は track の width: max-content を画像本来の幅で計算し、track が実際の約2倍になる
 * → translateX(-50%) で画像のない位置まで動き、スマホで何も映らない時間ができていた。枠の幅を明示して防ぐ */
body.gym-personal--fv202610 .vision-gym--202610 .vision-gym-lineup figure {
  width: 150px;
}

/* 数字: 黒枠で3つを囲み、1つ目（総数）は黒地のまま、2・3つ目は枠の中に白地のカード。数字の下に黄の短いバー */
body.gym-personal--fv202610 .vision-gym-count__list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
  margin: 0;
  padding: 14px;
  list-style: none;
  background: var(--fill-black);
}
body.gym-personal--fv202610 .vision-gym-count__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 28px 16px 24px;
  background: var(--fill-white);
  color: var(--ink-black);
  text-align: center;
}
body.gym-personal--fv202610 .vision-gym-count__item--main {
  background: var(--fill-black);
  color: var(--ink-white);
}
body.gym-personal--fv202610 .vision-gym-count__num {
  display: block;
  font-family: var(--f-en);
  font-size: clamp(2.4rem, 4.4vw, 3.2rem);
  font-weight: 700;
  line-height: 1;
  letter-spacing: -.02em;
}
body.gym-personal--fv202610 .vision-gym-count__num::after {
  content: "";
  display: block;
  width: 28px;
  height: 3px;
  margin: 14px auto 0;
  background: var(--fill-yellow);
}
body.gym-personal--fv202610 .vision-gym-count__label {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin-top: 12px;
}
body.gym-personal--fv202610 .vision-gym-count__jp {
  font-size: .875rem;
  font-weight: 700;
  line-height: 1.4;
}
body.gym-personal--fv202610 .vision-gym-count__en {
  font-size: .6875rem;
  letter-spacing: .12em;
  line-height: 1.4;
  color: var(--ink-gray);
}
body.gym-personal--fv202610 .vision-gym-count__item--main .vision-gym-count__en {
  color: var(--ink-muted);
}
body.gym-personal--fv202610 .vision-gym-count__more {
  margin: 12px 0 0;
  text-align: right;
}
body.gym-personal--fv202610 .vision-gym-count__link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 44px;
  font-size: .875rem;
  font-weight: 700;
  color: var(--ink-black);
  text-decoration: underline;
  text-underline-offset: 4px;
  transition: color .2s ease;
}
body.gym-personal--fv202610 .vision-gym-count__link:hover {
  color: var(--ink-gray); /* 文字・下線・矢印をまとめて変える（#EDEAE1 地で約5.9:1） */
}
body.gym-personal--fv202610 .vision-gym-count__link svg {
  flex-shrink: 0;
}

/* ポイント3つの前置き（一文） */
body.gym-personal--fv202610 .vision-gym-points__lead {
  margin: 0 0 20px;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.7;
  color: var(--ink-black);
}

/* ポイント3つ: PC は3カラムで全文。SP は details の開閉（JS なし）。本文は常に HTML に出す */
body.gym-personal--fv202610 .vision-gym-point {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
  margin: 0;
  padding: 0;
  list-style: none;
}
body.gym-personal--fv202610 .vision-gym-point__item {
  padding-top: 20px;
  border-top: 3px solid var(--fill-yellow);
}
body.gym-personal--fv202610 .vision-gym-point__fold {
  margin: 0;
}
body.gym-personal--fv202610 .vision-gym-point__sum {
  position: relative;
  display: block;
  list-style: none;
}
body.gym-personal--fv202610 .vision-gym-point__sum::-webkit-details-marker { display: none; }
body.gym-personal--fv202610 .vision-gym-point__sum::marker { content: ""; }
body.gym-personal--fv202610 .vision-gym-point__num {
  display: block;
  margin-bottom: 8px;
  font-family: var(--f-en);
  font-size: .8125rem;
  font-weight: 700;
  letter-spacing: .12em;
  color: var(--ink-black);
}
body.gym-personal--fv202610 .vision-gym-point__ttl {
  margin: 0;
  font-size: 1.0625rem;
  font-weight: 700;
  line-height: 1.5;
  color: var(--ink-black);
}
body.gym-personal--fv202610 .vision-gym-point__text {
  margin: 10px 0 0;
  font-size: .9375rem;
  line-height: 1.8;
  color: var(--ink-dark);
}
/* PC: 開閉させない。::details-content 非対応ブラウザは personal-perf.js が open を付ける */
@media (min-width: 768px) {
  body.gym-personal--fv202610 .vision-gym-point__sum {
    cursor: default;
    pointer-events: none;
  }
  @supports selector(::details-content) {
    body.gym-personal--fv202610 .vision-gym-point__fold::details-content {
      content-visibility: visible;
      block-size: auto;
    }
  }
}

/* 目的別（マシン名確定まで pattern 側で非表示）: 白地のボックス、行頭に黄の小さな四角 */
body.gym-personal--fv202610 .vision-gym-goal {
  padding: 40px 40px 32px;
  background: var(--fill-white);
}
body.gym-personal--fv202610 .vision-gym-goal__en {
  display: block;
  width: fit-content;
  margin: 0 0 12px;
  padding: .35em calc(.7em - .22em) .35em .7em; /* 右は末尾の字間ぶん減らして左右をそろえる */
  background: var(--fill-black);
  color: var(--ink-white);
  font-size: 11px;
  font-weight: 400;
  letter-spacing: .22em;
  line-height: 1;
}
body.gym-personal--fv202610 .vision-gym-goal__ttl {
  margin: 0 0 20px;
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1.5;
  color: var(--ink-black);
}
body.gym-personal--fv202610 .vision-gym-goal__list {
  margin: 0;
  border-bottom: 1px solid var(--fill-gray);
}
body.gym-personal--fv202610 .vision-gym-goal__row {
  display: grid;
  grid-template-columns: 12em minmax(0, 1fr);
  gap: 16px;
  padding: 14px 0;
  border-top: 1px solid var(--fill-gray);
  font-size: .9375rem;
  line-height: 1.7;
}
body.gym-personal--fv202610 .vision-gym-goal__row dt {
  position: relative;
  padding-left: 16px;
  font-weight: 700;
  color: var(--ink-black);
}
body.gym-personal--fv202610 .vision-gym-goal__row dt::before {
  content: "";
  position: absolute;
  left: 0;
  top: .6em;
  width: 8px;
  height: 8px;
  background: var(--fill-yellow);
}
body.gym-personal--fv202610 .vision-gym-goal__row dd {
  margin: 0;
  color: var(--ink-dark);
}
body.gym-personal--fv202610 .vision-gym-goal__note {
  margin: 20px 0 0;
  font-size: .8125rem;
  line-height: 1.8;
  color: var(--ink-gray);
}

/* 不安解消: 黒地、見出しの上に黄の線画アイコン（トレーナーと2人のセッション）。PC は見出し左・本文右 */
body.gym-personal--fv202610 .vision-gym-ease {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
  gap: 32px;
  align-items: center;
  padding: 40px;
  background: var(--fill-black);
  color: var(--ink-white);
}
body.gym-personal--fv202610 .vision-gym-ease__ttl {
  margin: 0;
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1.5;
  color: var(--ink-white);
}
body.gym-personal--fv202610 .vision-gym-ease__icon {
  display: block;
  width: 44px;
  height: 32px;
  margin-bottom: 14px;
  color: var(--fill-yellow);
}
body.gym-personal--fv202610 .vision-gym-ease__text {
  margin: 0;
  font-size: .9375rem;
  line-height: 1.8;
  color: var(--ink-white);
}

@media (max-width: 767px) {
  /* 余白・文字: 上 48px / 下 56px、要素間 36px、見出し 26px、本文 15px */
  /* 「02」は六本松だけ縮小（右上に置くので見出しに重ならない）。平尾の「05」は左に重ねる意匠のため従来の大きさ */
  body.gym-personal--fv202610.gym-personal--ropponmatsu #feat-gym .vision-feat-block__ghost {
    font-size: 4.5rem;
  }
  body.gym-personal--fv202610 #feat-gym .vision-feat-block__head {
    padding-top: 40px; /* ブロック自体の上 8px と合わせて 48px */
  }
  body.gym-personal--fv202610 #feat-gym .vision-feat-block__jp {
    font-size: 1.5625rem; /* 25px。26px だと幅375pxで2行目が約2pxあふれて3行になる */
    line-height: 1.45;
    letter-spacing: 0; /* 2行目「本格マシンで、パーソナル。」を幅375pxで1行に収める */
  }
  body.gym-personal--fv202610 #feat-gym .vision-feat-block__lead {
    font-size: .9375rem;
    line-height: 1.8;
  }
  body.gym-personal--fv202610 .vision-gym--202610 {
    gap: 36px;
    padding: 20px var(--pad) 56px;
  }

  /* 数字: 1段目は 25 を横幅いっぱい（数字・黄の縦バー・ラベルを横並び）、2段目は 18 と 7 */
  body.gym-personal--fv202610 .vision-gym-count__list {
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    padding: 10px;
  }
  body.gym-personal--fv202610 .vision-gym-count__item {
    padding: 18px 10px 16px;
  }
  body.gym-personal--fv202610 .vision-gym-count__num {
    font-size: 2rem;
  }
  body.gym-personal--fv202610 .vision-gym-count__num::after {
    width: 22px;
    margin-top: 10px;
  }
  body.gym-personal--fv202610 .vision-gym-count__label {
    margin-top: 10px;
  }
  body.gym-personal--fv202610 .vision-gym-count__jp {
    font-size: .8125rem;
  }
  body.gym-personal--fv202610 .vision-gym-count__en {
    font-size: .625rem;
    letter-spacing: .08em;
  }
  body.gym-personal--fv202610 .vision-gym-count__item--main {
    grid-column: 1 / -1;
    flex-direction: row;
    justify-content: flex-end; /* 総数は右寄せ */
    gap: 14px;
    padding: 8px 10px 10px;
    text-align: left;
  }
  body.gym-personal--fv202610 .vision-gym-count__item--main .vision-gym-count__num {
    display: flex;
    align-items: center;
    gap: 14px;
  }
  body.gym-personal--fv202610 .vision-gym-count__item--main .vision-gym-count__num::after {
    width: 3px;
    height: 32px;
    margin: 0;
  }
  body.gym-personal--fv202610 .vision-gym-count__item--main .vision-gym-count__label {
    margin-top: 0;
    gap: 2px;
  }

  body.gym-personal--fv202610 .vision-gym-points__lead {
    margin-bottom: 14px;
    font-size: .9375rem;
  }

  /* ポイント: 全体の上に黄の線、項目の間に細い線。閉じた状態は番号・タイトル・開閉アイコンだけ */
  body.gym-personal--fv202610 .vision-gym-point {
    grid-template-columns: 1fr;
    gap: 0;
    border-top: 3px solid var(--fill-yellow);
  }
  body.gym-personal--fv202610 .vision-gym-point__item {
    padding-top: 0;
    border-top: 0;
  }
  body.gym-personal--fv202610 .vision-gym-point__item + .vision-gym-point__item {
    border-top: 1px solid var(--ink-muted);
  }
  body.gym-personal--fv202610 .vision-gym-point__sum {
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: 52px;
    padding: 12px 32px 12px 0;
    cursor: pointer;
  }
  body.gym-personal--fv202610 .vision-gym-point__sum::after {
    content: "";
    position: absolute;
    right: 8px;
    top: 50%;
    width: 8px;
    height: 8px;
    border-right: 2px solid var(--ink-black);
    border-bottom: 2px solid var(--ink-black);
    transform: translateY(-70%) rotate(45deg);
    transition: transform .2s ease;
  }
  body.gym-personal--fv202610 .vision-gym-point__fold[open] > .vision-gym-point__sum::after {
    transform: translateY(-30%) rotate(-135deg);
  }
  body.gym-personal--fv202610 .vision-gym-point__num {
    flex-shrink: 0;
    margin-bottom: 0;
    font-size: .75rem;
  }
  body.gym-personal--fv202610 .vision-gym-point__ttl {
    font-size: .9375rem;
  }
  body.gym-personal--fv202610 .vision-gym-point__text {
    margin: 0 0 16px;
  }

  /* ボックス: 内側 24px / 20px。目的別の表は縦積み */
  body.gym-personal--fv202610 .vision-gym-goal {
    padding: 24px 20px;
  }
  body.gym-personal--fv202610 .vision-gym-goal__ttl {
    font-size: 1.125rem;
  }
  body.gym-personal--fv202610 .vision-gym-goal__row {
    grid-template-columns: 1fr;
    gap: 4px;
  }
  body.gym-personal--fv202610 .vision-gym-ease {
    grid-template-columns: 1fr;
    gap: 12px;
    padding: 24px 20px;
  }
  body.gym-personal--fv202610 .vision-gym-ease__ttl {
    font-size: 1.125rem;
  }
}

/* ── アメニティ6項目（SP）: 細字の説明は外して見出しだけ（詳細は下の「設備・アメニティ一覧」）。アイコンを小さく余白を詰める ── */
@media (max-width: 767px) {
  body.gym-personal--fv202610.gym-personal--ropponmatsu .vision-amenity__list li > div > span {
    display: none;
  }
  body.gym-personal--fv202610.gym-personal--ropponmatsu .vision-amenity__list {
    gap: 8px;
  }
  body.gym-personal--fv202610.gym-personal--ropponmatsu .vision-amenity__list li {
    align-items: center;
    gap: 10px;
    padding: 10px 14px;
  }
  body.gym-personal--fv202610.gym-personal--ropponmatsu .vision-amenity__ico {
    width: 28px;
    height: 28px;
  }
  body.gym-personal--fv202610.gym-personal--ropponmatsu .vision-amenity__ico svg {
    width: 15px;
    height: 15px;
  }
}

/* ── アプリ（両店・PC/SP）: スマホ枠の縦を短く（9:19 → 画面部分を写真と同じ 540:959。PC 約574px → 約470px／SP 約400px → 約320px）
 * 枠の比率で決めると内側の余白ぶん画面が細くなり写真の左右が切れるので、画面の比率で決めて枠は余白ぶん大きくする。画面は上揃え ── */
body.gym-personal--fv202610 .vision-phone__frame {
  aspect-ratio: auto;
}
body.gym-personal--fv202610 .vision-phone__screen {
  height: auto;
  aspect-ratio: 540 / 959;
}
body.gym-personal--fv202610 .vision-phone__img {
  object-position: top center;
}

/* ── アプリ SP: タブを押せるボタンらしく。押したタブの説明（01〜04）だけ下に出す ── */
@media (max-width: 899px) {
  body.gym-personal--fv202610.gym-personal--ropponmatsu .vision-phone__tabs {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr)); /* タブ4つを2×2 */
    gap: 8px;
    width: 100%;
    max-width: 420px;
    margin-inline: auto;
    padding: 0 0 4px;
  }
  body.gym-personal--fv202610.gym-personal--ropponmatsu .vision-phone__tabs li {
    min-width: 0;
  }
  body.gym-personal--fv202610.gym-personal--ropponmatsu .vision-phone__tab {
    width: 100%;
    padding: 11px 4px;
    white-space: nowrap;
    border: 2px solid var(--ink-black);
    border-radius: 999px;
    background: #fff;
    color: var(--ink-black);
    font-size: .76rem;
    font-weight: 900;
    box-shadow: 0 4px 0 var(--ink-black);
    transform: translateY(0);
    transition: transform .12s ease, box-shadow .12s ease, background-color .2s ease;
    cursor: pointer;
  }
  body.gym-personal--fv202610.gym-personal--ropponmatsu .vision-phone__tab:active,
  body.gym-personal--fv202610.gym-personal--ropponmatsu .vision-phone__tab.is-on {
    transform: translateY(3px);
    box-shadow: 0 1px 0 var(--ink-black);
  }
  body.gym-personal--fv202610.gym-personal--ropponmatsu .vision-phone__tab.is-on {
    background: #FEE801;
  }
  body.gym-personal--fv202610.gym-personal--ropponmatsu .vision-app__step:not(.is-on) {
    display: none;
  }
  body.gym-personal--fv202610.gym-personal--ropponmatsu .vision-app__step.is-on {
    animation: visionRopAppStepIn .3s ease;
  }
}
@keyframes visionRopAppStepIn {
  from { opacity: 0; transform: translateY(8px); }
  to   { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  body.gym-personal--fv202610.gym-personal--ropponmatsu .vision-app__step.is-on { animation: none; }
}

/* ── カフェ SP: タイル本文を小さく・行間を詰める ── */
@media (max-width: 767px) {
  body.gym-personal--fv202610.gym-personal--ropponmatsu #feat-cafe .vision-cafe__tile--copy p {
    font-size: .875rem;
    line-height: 1.6;
  }
}

/* ── SP: セクション見出し直下の説明文（六本松のみ）
 * 行間は平尾と同じ 1.7。横幅は一回り狭く（左右計24px）。
 * max-width だけ絞るので、左寄せは見出しと左端をそろえたまま右が詰まり、中央寄せ（margin auto）は両側が詰まる */
@media (max-width: 767px) {
  body.gym-personal--fv202610.gym-personal--ropponmatsu :is(.sec-ttl__lead, .vision-feat-block__lead, .vision-ba__lead) {
    line-height: 1.7;
    max-width: calc(100% - 24px);
  }
  body.gym-personal--fv202610.gym-personal--ropponmatsu #price .sec-ttl__lead {
    max-width: calc(100% - 24px);
  }
}

/* ── 数字書体（六本松）: Oswald は数字サブセットのみ読み込み（functions.php）、金額だけに使う ──
 * FV「25台×」は金額ではないので本文英字（Roboto）に戻す。FV料金「3,300」は .vision-num のまま Oswald */
body.gym-personal--fv202610.gym-personal--ropponmatsu .vision-fv202610__left-line .vision-num {
  font-family: var(--f-en);
  letter-spacing: 0;
}
body.gym-personal--fv202610.gym-personal--ropponmatsu :is(
  .vision-autumn-campaign__card s,
  .vision-autumn-campaign__card-value-num,
  .vision-autumn-campaign__summary-strike,
  .vision-autumn-campaign__summary-zero-num,
  .vision-price-hook__push-eq,
  .vision-cost__num,
  .vision-course-banner__num,
  .vision-init__ttl strong,
  .vision-init td.is-was,
  .vision-init td.is-now,
  .vision-quote-card__total
) {
  font-family: "Oswald", var(--f-en), "Noto Sans JP", sans-serif !important; /* 料金は #price 付きの指定に勝たせる */
  letter-spacing: .01em;
}

/* ── 見出し上の英字（六本松）: 細めに。字間は元のまま
 * （大きく開けるのはセクション英字だけ＝下の「字間を大きく開ける」。特徴ブロック内の英字は開けない） */
body.gym-personal--fv202610.gym-personal--ropponmatsu :is(
  .sec-ttl__en,
  .sec-ttl--c2 .sec-ttl__en,
  .vision-contact .sec-ttl__en,
  .vision-feat-block__en,
  .vision-ba__kicker,
  .vision-amenity__ttl-en
) {
  font-weight: 400;
}
/* サイズは一回り大きく（SP / PC） */
body.gym-personal--fv202610.gym-personal--ropponmatsu :is(.sec-ttl__en, .sec-ttl--c2 .sec-ttl__en, .vision-contact .sec-ttl__en, .vision-ba__intro .vision-ba__kicker) {
  font-size: 16px;
}
body.gym-personal--fv202610.gym-personal--ropponmatsu .vision-ba__cases-head .vision-ba__kicker {
  font-size: 15px;
}
body.gym-personal--fv202610.gym-personal--ropponmatsu .vision-feat-block__en {
  font-size: 15px; /* 黒帯にしたので小さめ */
}
body.gym-personal--fv202610.gym-personal--ropponmatsu .vision-amenity__ttl-en {
  font-size: 11px;
}
@media (max-width: 899px) {
  body.gym-personal--fv202610.gym-personal--ropponmatsu :is(.sec-ttl__en, .sec-ttl--c2 .sec-ttl__en, .vision-contact .sec-ttl__en, .vision-ba__intro .vision-ba__kicker) {
    font-size: 14px;
  }
  body.gym-personal--fv202610.gym-personal--ropponmatsu .vision-ba__cases-head .vision-ba__kicker {
    font-size: 12px;
  }
  body.gym-personal--fv202610.gym-personal--ropponmatsu .vision-feat-block__en {
    font-size: 13px;
  }
}

/* ── 背景色（六本松・2026-10-20）
 * 真っ白（#FFF / #FAFAFA）の面は、ほぼ白のライトグレージュ（A）に。カード類の白はそのまま＝浮いて見える
 * 隣り合うセクションは必ず別色（A / B=既存ベージュ / 黒 / 黄）:
 *   信頼バー A → 実績 黒 → 店内 B → キャンペーン 黄 → 悩み A
 *   → 特徴（導入 B → トレーナー A → マシン B → アプリ A → カフェ B → アメニティ A ※data-feat-bg・feat-bg.js）
 *   → セッション B → 料金 A → CTA 黒 → 2店舗 B → 声 黒 → 流れ A → アクセス B → FAQ A → 予約 B → フッター 黒
 */
body.gym-personal--fv202610.gym-personal--ropponmatsu {
  --rop-bg-a: #FBFAF7;
  --rop-bg-b: #EDEAE1; /* A と並べて切り替わりが分かる濃さ（旧 #F5F4EC は A と酷似） */
  background-color: var(--rop-bg-a);
}
/* 細ラインの信頼バー（--line）は 24h と同じ黒地のまま */
body.gym-personal--fv202610.gym-personal--ropponmatsu :is(.vision-trust:not(.vision-trust--line), #intro, #price, #flow, #faq) {
  background-color: var(--rop-bg-a);
}
body.gym-personal--fv202610.gym-personal--ropponmatsu :is(#gallery, #why, #session, #two-locations, #location, #contact) {
  background-color: var(--rop-bg-b);
}
/* 悩み（#intro）: 5つのハイパフォーマンスを囲む白い下地は外し、セクションの色をそのまま見せる（カードではないため） */
body.gym-personal--fv202610.gym-personal--ropponmatsu #intro .vision-hp {
  background-color: transparent;
}
/* 語のかたまりを途中で折らない（平尾は personal-fv-hirao-202610.css に同じ定義） */
body.gym-personal--fv202610.gym-personal--ropponmatsu .v24-nw {
  white-space: nowrap;
}

/* ── セクション英字（RESULTS / INTRODUCTION 等・六本松）: 本文英字（Roboto）のイタリック
 * 読み込み済みの Roboto 700 italic を使う（400 italic は未読込で疑似斜体になるため）。特徴ブロックの英字（TRAINERS 等）は対象外 */
body.gym-personal--fv202610.gym-personal--ropponmatsu :is(.sec-ttl__en, .sec-ttl--c2 .sec-ttl__en, .vision-contact .sec-ttl__en, .vision-ba__intro .vision-ba__kicker) {
  font-family: var(--f-en);
  font-weight: 700;
  font-style: italic;
  font-size: 16px;
}
@media (max-width: 899px) {
  body.gym-personal--fv202610.gym-personal--ropponmatsu :is(.sec-ttl__en, .sec-ttl--c2 .sec-ttl__en, .vision-contact .sec-ttl__en, .vision-ba__intro .vision-ba__kicker) {
    font-size: 14px;
  }
}
/* 悩み（#intro）: 平尾と同じく、見出しの固定（スティッキー）と白い面を外してセクションの色をそのまま見せる */
body.gym-personal--fv202610.gym-personal--ropponmatsu #intro .vision-intro__pain-wrap {
  background-color: transparent;
  background-image: none;
}
body.gym-personal--fv202610.gym-personal--ropponmatsu #intro .sec-ttl {
  position: static !important;
  top: auto !important;
  background: transparent !important;
}
/* 4つの悩み: PCは2列×2行（平尾と同じ） */
@media (min-width: 769px) {
  body.gym-personal--fv202610.gym-personal--ropponmatsu #intro .vision-intro__pains {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 48px;
    max-width: 680px;
  }
}
/* personal-feminine.css が使う色（淡黄・金）が六本松では未定義で、SAME FLOOR・比較枠「VISION24」・アメニティのゴールが透明だった
 * → 平尾（theme-hirao.css）と同じ値を六本松にも定義 */
body.gym-personal--fv202610.gym-personal--ropponmatsu {
  --c-gold: #8A6D00;
  --c-paleyellow: #FFF8B9;
  --c-paleyellow-2: #FFFDE9;
}
/* セクション英字の字間を大きく開ける（PC 1.2em / SP 0.9em）。SP は最長の INTRODUCTION（12字）が幅360pxでも1行に収まる値。折り返しは禁止 */
body.gym-personal--fv202610.gym-personal--ropponmatsu :is(.sec-ttl__en, .sec-ttl--c2 .sec-ttl__en, .vision-contact .sec-ttl__en, .vision-ba__intro .vision-ba__kicker) {
  letter-spacing: 1.2em;
  margin-right: -1.2em;
  white-space: nowrap;
}
@media (max-width: 899px) {
  body.gym-personal--fv202610.gym-personal--ropponmatsu :is(.sec-ttl__en, .sec-ttl--c2 .sec-ttl__en, .vision-contact .sec-ttl__en, .vision-ba__intro .vision-ba__kicker) {
    letter-spacing: .9em;
    margin-right: -.9em;
  }
}

/* ── トレーナー: 私の強み〜メッセージを白い面に載せる（平尾参照）
 * 六本松のトレーナー背景はほぼ白（--rop-bg-a）なので、平尾の半透明白では見えない → 不透明の白＋ごく薄い線 ── */
body.gym-personal--fv202610.gym-personal--ropponmatsu .vision-trainer__detail {
  margin-top: 12px;
  padding: 4px 18px 18px;
  border-radius: 12px;
  background: #FFFFFF;
  border: 1px solid rgba(12, 12, 12, .07);
}

/* ── アメニティ（SP）: 6項目〜「設備・アメニティ一覧」を1つの枠に（平尾と同じ）。枠の地はアイコン色を透過 ── */
@media (max-width: 767px) {
  body.gym-personal--fv202610.gym-personal--ropponmatsu .vision-amenity__top {
    margin-bottom: 0;
  }
  body.gym-personal--fv202610.gym-personal--ropponmatsu .vision-amenity__list {
    padding: 12px 12px 0;
    border-radius: 16px 16px 0 0;
    background: color-mix(in srgb, var(--ink-accent) 6%, transparent);
  }
  body.gym-personal--fv202610.gym-personal--ropponmatsu .vision-amenity__list li {
    border-color: transparent;
  }
  body.gym-personal--fv202610.gym-personal--ropponmatsu .vision-amenity__fold {
    padding: 0 12px 14px;
    border-radius: 0 0 16px 16px;
    background: color-mix(in srgb, var(--ink-accent) 6%, transparent);
  }
  body.gym-personal--fv202610.gym-personal--ropponmatsu .vision-amenity__fold-sum {
    margin: 0;
    padding: 18px 28px 6px 4px;
  }
  body.gym-personal--fv202610.gym-personal--ropponmatsu .vision-amenity__fold[open] .vision-amenity__fold-sum {
    margin-bottom: 10px;
  }
  body.gym-personal--fv202610.gym-personal--ropponmatsu .vision-amenity__note {
    margin-top: 16px;
  }
}

/* ── 特徴ブロック内の英字（TRAINERS / MACHINE / VISION'S APP / MEAL SUPPORT / POWDER ROOM / AMENITY & EQUIPMENT / YOUR VISIT）
 * 黒帯のくり抜き: 黒地×白文字を乗算で重ねる → 黒はそのまま、文字の部分は下地の色が透ける（下地が変わっても常に抜ける）
 * 幅は文字ぶんだけ（width: fit-content）。右の余白は末尾の字間ぶん減らして左右をそろえる */
body.gym-personal--fv202610.gym-personal--ropponmatsu :is(.vision-feat-block__en, .vision-amenity__ttl-en) {
  display: block;
  width: fit-content;
  padding: .3em .8em;
  background: #0C0C0C;
  color: #FFFFFF;
  mix-blend-mode: multiply;
  line-height: 1;
}
body.gym-personal--fv202610.gym-personal--ropponmatsu .vision-feat-block__en { padding-right: calc(.8em - .22em); }
body.gym-personal--fv202610.gym-personal--ropponmatsu .vision-amenity__ttl-en { padding-right: calc(.8em - .30em); }
/* 黒帯と直下の見出しの間 */
body.gym-personal--fv202610.gym-personal--ropponmatsu .vision-feat-block__en { margin-bottom: 14px; }
body.gym-personal--fv202610.gym-personal--ropponmatsu .vision-amenity__ttl-en { margin-bottom: 10px; }
/* 特徴の大きな番号（01〜05）: ブロック背景と逆の色で塗る（A地→B色 / B地→A色。背景は data-feat-bg と対応） */
body.gym-personal--fv202610.gym-personal--ropponmatsu :is(#feat-trainers, #feat-app, #feat-amenity) .vision-feat-block__ghost {
  color: var(--rop-bg-b);
  -webkit-text-fill-color: var(--rop-bg-b);
  -webkit-text-stroke-color: var(--rop-bg-b);
}
body.gym-personal--fv202610.gym-personal--ropponmatsu :is(#feat-gym, #feat-cafe) .vision-feat-block__ghost {
  color: var(--rop-bg-a);
  -webkit-text-fill-color: var(--rop-bg-a);
  -webkit-text-stroke-color: var(--rop-bg-a);
}
