@charset "UTF-8";

/* =================================================================
   THE CLINIC LP 2026 ／ 第1段落：ファーストビュー（FV）
   - すべてのクラスに接頭辞 "tc-lp2026-" を付与（既存サイトとの競合防止）
   - 黒いSVG素材は filter で白に変換し、ドロップシャドウを付与
   ================================================================= */

/* ---- セクション全体（ウィンドウ全面） ---- */
.tc-lp2026-fv {
  position: relative;
  width: 100%;
  height: 100vh;          /* フォールバック */
  height: 100svh;         /* モバイルのアドレスバー対応 */
  min-height: 520px;
  overflow: hidden;
  background: #0d0d0d;
  box-sizing: border-box;
  -webkit-tap-highlight-color: transparent;
}
.tc-lp2026-fv *,
.tc-lp2026-fv *::before,
.tc-lp2026-fv *::after {
  box-sizing: border-box;
}

/* ---- 背景動画 ---- */
.tc-lp2026-fv-bg {
  position: absolute;
  inset: 0;
  z-index: 1;
}
.tc-lp2026-fv-video {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;       /* 端末のアスペクト比に合わせて全面表示 */
  object-position: center;
}
/* 上下にごく薄いスクリム（白文字の可読性を担保。動画素材に依存しない保険） */
.tc-lp2026-fv-scrim {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(to bottom, rgba(0,0,0,.22) 0%, rgba(0,0,0,0) 22%),
    linear-gradient(to top,    rgba(0,0,0,.26) 0%, rgba(0,0,0,0) 24%);
}

/* ---- 共通：白化フィルター ----
   素材は黒のため brightness(0) で黒に統一 → invert(1) で白へ */
.tc-lp2026-fv-logo img,
.tc-lp2026-fv-sound-icon,
.tc-lp2026-fv-copy img,
.tc-lp2026-fv-scroll-label img {
  display: block;
  width: 100%;
  height: auto;
}

/* ---- 左上：ロゴ ---- */
.tc-lp2026-fv-logo {
  position: absolute;
  z-index: 3;
  top: clamp(18px, 3vw, 46px);
  left: clamp(20px, 3.2vw, 56px);
  margin: 0;
  width: clamp(150px, 15vw, 240px);
  line-height: 0;
}
.tc-lp2026-fv-logo img {
  filter: brightness(0) invert(1) drop-shadow(0 1px 8px rgba(0,0,0,.45));
}

/* ---- 右上：音声切り替えボタン ---- */
.tc-lp2026-fv-sound {
  position: absolute;
  z-index: 3;
  top: clamp(16px, 2.6vw, 42px);
  right: clamp(18px, 3.2vw, 56px);
  width: clamp(40px, 4.2vw, 52px);
  height: clamp(40px, 4.2vw, 52px);
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  line-height: 0;
  transition: transform .45s cubic-bezier(.22,.61,.36,1), opacity .3s ease;
}
.tc-lp2026-fv-sound:hover { transform: scale(1.08); }
.tc-lp2026-fv-sound:active { transform: scale(.96); }
.tc-lp2026-fv-sound:focus-visible {
  outline: 2px solid rgba(255,255,255,.85);
  outline-offset: 4px;
  border-radius: 50%;
}
.tc-lp2026-fv-sound-icon {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  filter: brightness(0) invert(1) drop-shadow(0 1px 10px rgba(0,0,0,.55));
  transition: opacity .35s ease;
}
/* 状態に応じてアイコンを出し分け（初期＝is-muted：ミュートアイコン表示） */
.tc-lp2026-fv-sound .tc-lp2026-fv-sound-icon--on   { opacity: 0; }
.tc-lp2026-fv-sound .tc-lp2026-fv-sound-icon--mute { opacity: 1; }
.tc-lp2026-fv-sound:not(.is-muted) .tc-lp2026-fv-sound-icon--on   { opacity: 1; }
.tc-lp2026-fv-sound:not(.is-muted) .tc-lp2026-fv-sound-icon--mute { opacity: 0; }

/* ---- 中央：キャッチコピー ---- */
.tc-lp2026-fv-copy {
  position: absolute;
  z-index: 3;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  margin: 0;
  width: min(82vw, 460px);
  line-height: 0;
  text-align: center;
}
.tc-lp2026-fv-copy img {
  margin: 0 auto;
  filter: brightness(0) invert(1) drop-shadow(0 4px 20px rgba(0,0,0,.5));
}

/* ---- 中央下部：Scroll down ---- */
.tc-lp2026-fv-scroll {
  position: absolute;
  z-index: 3;
  left: 50%;
  bottom: clamp(20px, 3vw, 44px);
  transform: translateX(-50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  text-decoration: none;
}
.tc-lp2026-fv-scroll-label {
  display: block;
  width: clamp(40px, 3.6vw, 52px);
  line-height: 0;
}
.tc-lp2026-fv-scroll-label img {
  filter: brightness(0) invert(1) drop-shadow(0 2px 10px rgba(0,0,0,.5));
}
/* 上→下に引かれる白い罫線 */
.tc-lp2026-fv-scroll-line {
  position: relative;
  display: block;
  width: 1px;
  height: clamp(48px, 7vh, 72px);
  overflow: hidden;
  background: rgba(255,255,255,.22);   /* 下地のうっすらした線 */
}
.tc-lp2026-fv-scroll-line-seg {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 46%;
  background: linear-gradient(to bottom, rgba(255,255,255,0) 0%, #fff 45%, #fff 100%);
  filter: drop-shadow(0 0 4px rgba(0,0,0,.45));
  transform: translateY(-110%);        /* 初期位置（JS/GSAPで上→下へ） */
  will-change: transform;
}

/* ---- PC レイアウト ---- */
@media (min-width: 768px) {
  .tc-lp2026-fv-copy {
    width: clamp(380px, 38vw, 560px);
  }
  .tc-lp2026-fv-scroll { gap: 14px; }
}

/* ---- モーション抑制設定の尊重 ---- */
@media (prefers-reduced-motion: reduce) {
  .tc-lp2026-fv-scroll-line-seg { transform: translateY(0); height: 100%; }
}

/* =================================================================
   THE CLINIC LP 2026 ／ 第2段落：プロローグ（PL）
   - 全面背景＋中央テキストのスライドショー
   - 左下にスクロール進捗バー（装飾・操作不可）
   - 1→2段落はGSAPで斜めに切り替え（ヌルッ）
   ================================================================= */

/* FV→PLはクロスフェードで切り替え（境界線を動かさない）。
   JSが付与する .tc-lp2026-fv--overlay でFVを固定オーバーレイ化し、
   その場で opacity を下げて背後のプロローグを見せる。
   GSAP未読込時はこのクラスが付かないため通常フロー（フォールバック）。 */
.tc-lp2026-fv--overlay {
  position: fixed;
  inset: 0;
  height: 100vh;
  height: 100svh;
  z-index: 6;
  will-change: opacity;
}

.tc-lp2026-pl {
  position: relative;
  z-index: 2;                 /* FVの上に重ねる */
  width: 100%;
  background: #2c4a66;        /* 画像読込前の下地 */
  box-sizing: border-box;
}
.tc-lp2026-pl *,
.tc-lp2026-pl *::before,
.tc-lp2026-pl *::after { box-sizing: border-box; }

/* ピン留めされるステージ（GSAPがpin中はfixed相当で固定表示される） */
.tc-lp2026-pl-stage {
  position: relative;
  width: 100%;
  height: 100vh;
  height: 100svh;
  overflow: hidden;
  -webkit-tap-highlight-color: transparent;
}

/* ---- 全面背景 ---- */
.tc-lp2026-pl-bg {
  position: absolute;
  inset: 0;
  z-index: 1;
}
.tc-lp2026-pl-bg img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;          /* モバイルは高さ基準で左右見切れ */
  object-position: center;
}
.tc-lp2026-pl-scrim {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(120% 90% at 50% 45%, rgba(0,0,0,0) 40%, rgba(8,22,38,.35) 100%),
    linear-gradient(to bottom, rgba(8,22,38,.10) 0%, rgba(8,22,38,0) 30%);
}

/* ---- 左上：ロゴ（FVと同じ位置・サイズ） ---- */
.tc-lp2026-pl-logo {
  position: absolute;
  z-index: 4;
  top: clamp(18px, 3vw, 46px);
  left: clamp(20px, 3.2vw, 56px);
  margin: 0;
  width: clamp(150px, 15vw, 240px);
  line-height: 0;
}
.tc-lp2026-pl-logo img {
  display: block;
  width: 100%;
  height: auto;
  filter: drop-shadow(0 1px 10px rgba(0,0,0,.28));
}

/* ---- 中央：スライドショー ---- */
.tc-lp2026-pl-slides {
  position: absolute;
  z-index: 3;
  inset: 0;
}
.tc-lp2026-pl-slide {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  will-change: transform, opacity;
}
.tc-lp2026-pl-slide:first-child { opacity: 1; }   /* JS未動作時も1枚目を表示 */
.tc-lp2026-pl-slide img {
  display: block;
  width: min(80vw, 380px);
  height: auto;
  filter: drop-shadow(0 6px 26px rgba(6,18,32,.40));
}

/* ---- 左下：スクロール進捗バー（装飾・操作不可） ---- */
.tc-lp2026-pl-progress {
  position: absolute;
  z-index: 4;
  left: clamp(20px, 3.2vw, 56px);
  bottom: clamp(40px, 12vh, 120px);
  width: 3px;
  height: clamp(120px, 26vh, 260px);
  pointer-events: none;
}
/* 全体の長さを示す薄く細い罫線 */
.tc-lp2026-pl-progress-track {
  position: absolute;
  left: 1px;
  top: 0;
  width: 1px;
  height: 100%;
  background: rgba(214,234,247,.30);
}
/* アクティブ部分（少し太い罫線・上から下へ伸びる） */
.tc-lp2026-pl-progress-active {
  position: absolute;
  left: 0;
  top: 0;
  width: 3px;
  height: 100%;
  background: linear-gradient(to bottom, #aed8f2, #79b4dd);
  box-shadow: 0 0 8px rgba(150,205,240,.6);
  transform: scaleY(0);
  transform-origin: top center;
  will-change: transform;
}

/* ---- PCレイアウト ---- */
@media (min-width: 768px) {
  .tc-lp2026-pl-slide img { width: min(46vw, 658px); }
}

/* ---- 静的フォールバック（GSAP未読込／モーション抑制時） ---- */
.tc-lp2026-pl.is-static .tc-lp2026-pl-stage {
  position: relative;
  height: auto;
  overflow: visible;
}
.tc-lp2026-pl.is-static .tc-lp2026-pl-bg { position: fixed; }
.tc-lp2026-pl.is-static .tc-lp2026-pl-slides {
  position: relative;
  inset: auto;
}
.tc-lp2026-pl.is-static .tc-lp2026-pl-slide {
  position: relative;
  inset: auto;
  opacity: 1;
  min-height: 100vh;
}
.tc-lp2026-pl.is-static .tc-lp2026-pl-progress { display: none; }

/* =================================================================
   THE CLINIC LP 2026 ／ 第3段落：砦とされる根拠（R3）
   見出し＝Noto Serif JP（#333）／本文＝Zen Kaku Gothic New（#666）
   背景 #f4f4f4 ／ アンカー #19517f ／ needs #52a5ce ／ link #778fab
   ================================================================= */
.tc-lp2026-r3 {
  position: relative;
  z-index: 2;
  overflow-x: clip;
  background: #f4f4f4;
  padding: clamp(128px, 28vw, 240px) 0 clamp(72px, 16vw, 140px);
  font-family: 'Hiragino Kaku Gothic ProN', 'Hiragino Kaku Gothic Pro', 'Zen Kaku Gothic New', sans-serif;
  -webkit-font-smoothing: antialiased;
  font-kerning: normal;
  font-feature-settings: "palt" 1, "kern" 1;
  box-sizing: border-box;
}
.tc-lp2026-r3 *,
.tc-lp2026-r3 *::before,
.tc-lp2026-r3 *::after { box-sizing: border-box; }

.tc-lp2026-r3-inner {
  width: 100%;
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 28px;
}

/* PC/SPで改行位置を出し分け */
.tc-lp2026-br-pc { display: none; }
@media (min-width: 768px) {
  .tc-lp2026-br-pc { display: inline; }
  .tc-lp2026-br-sp { display: none; }
}

/* ---- 導入 ---- */
.tc-lp2026-r3-intro-head {
  text-align: center;
  margin-bottom: clamp(48px, 10vw, 72px);
}
.tc-lp2026-r3-deco {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 14px;
  margin-bottom: 26px;
}
.tc-lp2026-r3-deco img { display: block; height: 18px; width: auto; }

.tc-lp2026-r3-title {
  margin: 0 0 clamp(39px, 9vw, 60px);
  font-family: 'Noto Serif JP', serif;
  font-weight: 500;
  color: #333333;
  font-size: clamp(23px, 6.2vw, 42px);
  line-height: 1.62;
  letter-spacing: .1em;
  text-indent: .1em;
}
.tc-lp2026-r3-lead {
  margin: 0;
  color: #666666;
  font-size: clamp(14px, 3.7vw, 18px);
  line-height: 2.15;
  letter-spacing: .06em;
}

/* ---- アンカーカード（4つ） ---- */
.tc-lp2026-r3-cards {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: clamp(17px, 4.5vw, 25px);
  margin-bottom: clamp(80px, 18vw, 128px);
}
.tc-lp2026-r3-card {
  display: block;
  text-decoration: none;
  border-radius: 9px;
  box-shadow: 0 6px 20px rgba(31, 64, 104, .07);
  transition: transform .32s cubic-bezier(.22,.61,.36,1), box-shadow .32s ease;
}
.tc-lp2026-r3-card-img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 9px;
}

/* ---- reasonブロック ---- */
.tc-lp2026-r3-reason {
  padding-top: clamp(36px, 8vw, 56px);
  scroll-margin-top: 24px;
}

/* needs文言（cyan、両脇に引用符マーク）
   モバイル：マークは絶対配置（テキストが長い場合は重なってよい）／テキスト中央 */
.tc-lp2026-r3-needs {
  position: relative;
  text-align: center;
  margin: 0 0 18px;
  color: #52a5ce;
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(13px, 3.6vw, 15px);
  line-height: 1.7;
  letter-spacing: .08em;
}
.tc-lp2026-r3-needs span { display: inline; }
.tc-lp2026-r3-needs-mark {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  height: 27px;
  width: auto;
  opacity: .7;
}
.tc-lp2026-r3-needs-mark:first-child { left: -2%; }
.tc-lp2026-r3-needs-mark:last-child { right: -2%; }

/* 中見出し（明朝・両脇に罫線）／罫線はウィンドウ幅の左右端まで（全幅ブリード） */
.tc-lp2026-r3-midtitle {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(20px, 6vw, 52px);
  width: 100vw;
  max-width: 100vw;
  margin: 0 0 clamp(42px, 9vw, 60px);
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
}
.tc-lp2026-r3-midtitle::before,
.tc-lp2026-r3-midtitle::after {
  content: "";
  flex: 1 1 auto;
  height: 1px;
  background: rgba(25, 81, 127, .32);
}
.tc-lp2026-r3-midtitle span {
  flex: 0 1 auto;
  font-family: 'Noto Serif JP', serif;
  font-weight: 500;
  color: #333333;
  font-size: clamp(23px, 6vw, 32px);
  line-height: 1.62;
  letter-spacing: .1em;
  text-indent: .1em;
  text-align: center;
}

/* 中見出し直下の導入文（中央寄せ） */
.tc-lp2026-r3-mid-intro {
  margin: 0 auto clamp(80px, 18vw, 120px);
  text-align: center;
  color: #666666;
  font-size: clamp(14px, 3.8vw, 18px);
  line-height: 1.95;
  letter-spacing: .06em;
}

/* 各ブロック（画像＋小見出し＋本文） */
.tc-lp2026-r3-block { margin-bottom: clamp(80px, 18vw, 120px); }
.tc-lp2026-r3-text { width: 100%; }

/* スライドショー（クロスフェード） */
.tc-lp2026-r3-slide {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  transition: opacity 1.1s ease;
}
.tc-lp2026-r3-slide.is-active { opacity: 1; }

.tc-lp2026-r3-figure {
  position: relative;
  overflow: hidden;
  border-radius: 0;
  margin: 0 -28px clamp(26px, 6vw, 36px) 0;   /* モバイル：右端をウィンドウ右端へ（テレコ） */
  aspect-ratio: 7 / 5;
  background: #e7e9ec;
}
.tc-lp2026-r3-block--imgleft > .tc-lp2026-r3-figure {
  margin-right: 0;
  margin-left: -28px;                          /* 反転：左端をウィンドウ左端へ */
}
.tc-lp2026-r3-figure img:not(.tc-lp2026-r3-slide),
.tc-lp2026-r3-figure video {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 122%;                 /* パララックス用の余白（スライド画像には適用しない） */
  object-fit: cover;
  will-change: transform;
}
.tc-lp2026-r3-figure--video { aspect-ratio: 700 / 393; }
.tc-lp2026-r3-figure--video video { height: 100%; }
/* 動画再生マーク（ユーザーインタビュー段落の .tc-lp2026-rv-playicon と同デザイン） */
.tc-lp2026-r3-playicon {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: clamp(48px, 13vw, 62px);
  height: clamp(48px, 13vw, 62px);
  border-radius: 50%;
  background: rgba(255, 255, 255, .9);
  box-shadow: 0 4px 16px rgba(31, 43, 56, .22);
  z-index: 2;
  pointer-events: none;
  transition: opacity .3s ease;
}
.tc-lp2026-r3-playicon::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 53%;
  transform: translate(-50%, -50%);
  border-style: solid;
  border-width: clamp(8px, 2.2vw, 11px) 0 clamp(8px, 2.2vw, 11px) clamp(13px, 3.6vw, 18px);
  border-color: transparent transparent transparent #2e4861;
}
/* 再生中は再生マークを隠す */
.tc-lp2026-r3-figure--video.is-playing .tc-lp2026-r3-playicon { opacity: 0; }
/* 音声オン／オフ ボタン（右下／ユーザーインタビュー動画と同デザイン） */
.tc-lp2026-r3-sound {
  position: absolute;
  right: clamp(8px, 2.4vw, 14px);
  bottom: clamp(8px, 2.4vw, 14px);
  z-index: 3;
  width: clamp(36px, 9vw, 44px);
  height: clamp(36px, 9vw, 44px);
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: rgba(31, 43, 56, .55);
  cursor: pointer;
  transition: background .25s ease;
}
.tc-lp2026-r3-sound:hover { background: rgba(31, 43, 56, .75); }
.tc-lp2026-r3-sound::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 46%;
  transform: translate(-50%, -50%);
  width: 8px;
  height: 9px;
  background: #fff;
  clip-path: polygon(0 33%, 38% 33%, 100% 0, 100% 100%, 38% 67%, 0 67%);
}
.tc-lp2026-r3-sound::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 62%;
  transform: translateY(-50%);
  width: 8px;
  height: 12px;
  border: 1.6px solid #fff;
  border-left: 0;
  border-radius: 0 10px 10px 0;
}
.tc-lp2026-r3-sound.is-muted::after {
  width: 16px;
  height: 1.7px;
  border: 0;
  border-radius: 0;
  background: #fff;
  left: 50%;
  transform: translate(-50%, -50%) rotate(-45deg);
}

/* reason3：リード文が無いため中見出し下マージンを1.5倍に（モバイル）。
   PCでは既定の全幅ブリード値と同値のため影響なし。 */
#tc-lp2026-r3-reason3 .tc-lp2026-r3-midtitle { margin-bottom: clamp(63px, 13.5vw, 90px); }

/* reason3の動画：モバイルは左寄せ（左端をウィンドウ左端へ）、上の余白を半分に */
.tc-lp2026-r3-block > .tc-lp2026-r3-figure--video {
  margin-right: 0;
  margin-left: -28px;
}
.tc-lp2026-r3-block:has(.tc-lp2026-r3-figure--video) {
  margin-top: calc(-0.5 * clamp(80px, 18vw, 120px));
}

.tc-lp2026-r3-subtitle {
  margin: 0 0 clamp(22px, 5.2vw, 31px);
  font-family: 'Noto Serif JP', serif;
  font-weight: 500;
  color: #333333;
  font-size: clamp(21px, 5.4vw, 28px);
  line-height: 1.5;
  letter-spacing: .03em;
}
.tc-lp2026-r3-body {
  margin: 0;
  color: #666666;
  font-size: clamp(15px, 3.9vw, 18px);
  line-height: 2.0;
  letter-spacing: .01em;
  text-align: justify;
  text-justify: inter-character;
}

/* リンクテキスト（右揃え・丸囲み矢印／READ MORE風ホバー） */
.tc-lp2026-r3-link {
  margin: clamp(20px, 4.5vw, 28px) 0 0;
  text-align: right;
}
.tc-lp2026-r3-link a {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  color: #778fab;
  text-decoration: none;
  font-size: clamp(14px, 3.7vw, 15px);
  letter-spacing: .08em;
}
.tc-lp2026-r3-link-txt {
  position: relative;
  display: inline-block;
}
/* 下線が左から右へスッと引かれる */
.tc-lp2026-r3-link-txt::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -5px;
  width: 100%;
  height: 1px;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: right center;
  transition: transform .55s cubic-bezier(.19,1,.22,1);
}
.tc-lp2026-r3-link a:hover .tc-lp2026-r3-link-txt::after {
  transform: scaleX(1);
  transform-origin: left center;
}
.tc-lp2026-r3-link a img {
  display: block;
  width: 34px;
  height: 34px;
  transition: transform .55s cubic-bezier(.19,1,.22,1);
}
.tc-lp2026-r3-link a:hover img { transform: translateX(7px); }

/* ---- PCレイアウト ---- */
@media (min-width: 768px) {
  /* 見出し上のマージンを2倍に */
  .tc-lp2026-r3 { padding-top: clamp(128px, 22vw, 240px); }
  /* 段落見出しの下マージンを1.2倍に */
  .tc-lp2026-r3-title { margin-bottom: clamp(31px, 7.2vw, 48px); }

  /* PCではneeds・mid文・本文・リンク矢印を大きく保つ／レイアウトを復元 */
  .tc-lp2026-r3-needs {
    display: flex;
    align-items: center;
    justify-content: center;
    position: static;
    gap: 18px;
    margin-bottom: 18px;
    font-size: clamp(17px, 2.2vw, 19px);
    line-height: normal;
  }
  .tc-lp2026-r3-needs-mark {
    position: static;
    transform: none;
    height: 24px;
    opacity: .5;
  }
  .tc-lp2026-r3-mid-intro { line-height: 2.2; }
  .tc-lp2026-r3-subtitle { letter-spacing: .08em; }
  .tc-lp2026-r3-body { letter-spacing: .05em; }
  .tc-lp2026-r3-link a img { width: 49px; height: 49px; }

  .tc-lp2026-r3-cards {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: clamp(32px, 4vw, 52px);
  }
  /* PCホバー：カードが下にクイッと下がる */
  .tc-lp2026-r3-card:hover {
    transform: translateY(10px);
    box-shadow: 0 14px 30px rgba(31, 64, 104, .14);
  }

  /* 中見出しの上マージンを1.5倍に */
  .tc-lp2026-r3-reason { padding-top: clamp(54px, 12vw, 84px); }

  /* 図説上マージンを1.5倍に（中見出し・導入文の下） */
  .tc-lp2026-r3-mid-intro { margin-bottom: clamp(60px, 13vw, 90px); }

  /* 中見出し脈の罫線をブラウザ幅いっぱいまで伸ばす（全幅ブリード） */
  .tc-lp2026-r3-midtitle {
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    margin-bottom: clamp(63px, 13.5vw, 90px);
  }

  /* 2カラム・テレコ配置（画像と本文を左右交互に） */
  .tc-lp2026-r3-block {
    display: flex;
    flex-direction: row-reverse;   /* 既定：本文=左／画像=右 */
    align-items: stretch;
    gap: clamp(40px, 5vw, 76px);
    margin-bottom: clamp(108px, 12vw, 156px);   /* 図説間を2倍→元の1.5倍 */
  }
  .tc-lp2026-r3-block--imgleft {
    flex-direction: row;           /* 反転：画像=左／本文=右 */
  }
  .tc-lp2026-r3-block > .tc-lp2026-r3-figure {
    flex: 1 1 0;
    min-width: 0;
    margin: 0;
    align-self: flex-start;        /* 画像はアスペクトを保持 */
  }
  .tc-lp2026-r3-text {
    flex: 1 1 0;
    min-width: 0;
    position: relative;            /* リンクを図説下端ラインに絶対配置するため */
    display: flex;
    flex-direction: column;
    justify-content: center;       /* 小見出し＋本文を図説高さに対して中央に */
    padding-bottom: clamp(20px, 2.6vw, 32px);  /* 下端のリンク分の余白 */
  }
  /* リンクは本文テキストボックスの右端×図説下端ラインの交点に配置 */
  .tc-lp2026-r3-link {
    position: absolute;
    right: 0;
    bottom: 0;
    margin: 0;
    padding-top: 0;
    text-align: right;
  }

  /* 動画ブロックは全幅で見せる */
  .tc-lp2026-r3-block:has(.tc-lp2026-r3-figure--video) { display: block; margin-top: 0; }
  .tc-lp2026-r3-figure--video { margin: 0; }

  .tc-lp2026-r3-subtitle { margin-bottom: clamp(31px, 3.1vw, 44px); }
}


/* =================================================================
   THE CLINIC LP 2026 ／ 第4段落：最後の砦（ft）
   - 背景固定（ビジュアルをsticky）＋テキストはスクロール
   - lucien.com「How it Works」風の切替（クロスフェード）
   - スクロールバー：PC=下部横／モバイル=左中央縦（色 #778fab）
   ================================================================= */
.tc-lp2026-ft {
  position: relative;
  z-index: 2;
  overflow-x: clip;
  background: #e8e8e8;
  font-family: 'Hiragino Kaku Gothic ProN', 'Hiragino Kaku Gothic Pro', 'Zen Kaku Gothic New', sans-serif;
  -webkit-font-smoothing: antialiased;
  font-kerning: normal;
  font-feature-settings: "palt" 1, "kern" 1;
  box-sizing: border-box;
}
.tc-lp2026-ft *,
.tc-lp2026-ft *::before,
.tc-lp2026-ft *::after { box-sizing: border-box; }

/* ---- 見出し＋リード ---- */
.tc-lp2026-ft-head {
  position: relative;
  z-index: 1;
  text-align: center;
  padding: clamp(96px, 22vw, 160px) 28px clamp(44px, 10vw, 72px);
}
.tc-lp2026-ft-title {
  margin: 0 0 clamp(34px, 7.5vw, 54px);
  font-family: 'Noto Serif JP', serif;
  font-weight: 500;
  color: #333333;
  font-size: clamp(27px, 7.4vw, 46px);
  line-height: 1.62;
  letter-spacing: .12em;
  text-indent: .12em;
}
.tc-lp2026-ft-lead {
  margin: 0;
  color: #666666;
  font-size: clamp(14px, 3.7vw, 18px);
  line-height: 2.1;
  letter-spacing: .06em;
}

/* ---- 本体 ---- */
/* 第4段落先頭の空白スペーサー：SPは不要（SP見出しは通常フローで上パディングを持つ）→ 非表示 */
.tc-lp2026-ft-topspacer { display: none; }
.tc-lp2026-ft-body {
  position: relative;
  min-height: 2304vh;          /* USP1〜USP5：重み[1,2,3,1,1]＝計8。1単位＝約288vh（他USPは従来通り） */
}

/* ビジュアル＋画像スライド（クロスフェード）。画像は原寸比率。
   モバイル：リード文以降を背景固定（sticky）にし、その上をテキストがスクロール。
   （PCはfixedで背景固定）。 */
.tc-lp2026-ft-visual {
  position: sticky;
  top: 0;
  height: 100vh;
  height: calc(100svh + 2px);   /* +2px：合成レイヤー下端のヘアライン継ぎ目を画面外へ逃がす */
  z-index: 0;
  overflow: hidden;
}
.tc-lp2026-ft-vslide {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;                    /* 画像は固定エリアの上端に揃える */
  opacity: 0;
  transition: opacity .9s ease;
}
.tc-lp2026-ft-vslide:first-child { position: relative; top: 0; }   /* 高さの基準（in-flow） */
.tc-lp2026-ft-vslide.is-active { opacity: 1; }
.tc-lp2026-ft-vimg {
  display: block;
  width: 100%;
  height: auto;
}
.tc-lp2026-ft-vimg--pc { display: none; }
/* SP：固定画像の下端ハードエッジ（細い罫線に見える）を背景へなじませる＋
   固定エリア下端のビューポート単位の継ぎ目を消すため、背景色を地色に統一 */
.tc-lp2026-ft-visual { background: #e8e8e8; }
.tc-lp2026-ft-vimg--sp {
  -webkit-mask-image: linear-gradient(to bottom, #000 95%, transparent 100%);
  mask-image: linear-gradient(to bottom, #000 95%, transparent 100%);
  /* プランA安全キャップ：極端に背の低い端末で画像が画面を超えてテキストを押し出さないよう上限。
     通常の縦長スマホ（画像高さ<80svh）では発動せず、見た目は従来どおり。 */
  max-height: 80svh;
  object-fit: contain;
  object-position: center top;
}

/* テキストステップ（モバイル：固定背景の上に「定位置」でピン留め、スクロールでクロスフェード切替） */
.tc-lp2026-ft-panel {
  position: sticky;
  top: 0;
  height: 100vh;
  height: 100svh;
  margin-top: -100vh;           /* 固定画像に重ねる */
  z-index: 1;
  pointer-events: none;         /* 透過部は下層へ（リンクは個別にauto） */
}
.tc-lp2026-ft-step {
  position: absolute;
  left: clamp(50px, 13vw, 66px);   /* 左はスクロールバーを避けて気持ち右寄り */
  right: 28px;
  bottom: clamp(40px, 9vw, 64px);
  opacity: 0;
  pointer-events: none;
  transition: opacity .8s ease;
}
.tc-lp2026-ft-step.is-active {
  opacity: 1;
  pointer-events: auto;
}
/* USP2（3枚クロスフェード）：cyimg はクロスフェード単位、内部に PC/SP 画像 */
.tc-lp2026-ft-vslide--cycle { top: 0; bottom: 0; height: 100%; }
.tc-lp2026-ft-cyimg {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  top: auto;
  opacity: 0;
  transition: opacity .9s ease;
}
.tc-lp2026-ft-cyimg.is-active { opacity: 1; }
.tc-lp2026-ft-cyimg-pic { display: block; }
.tc-lp2026-ft-cyimg-pic--pc { display: none; }
.tc-lp2026-ft-cyimg-pic--sp { display: block; width: 100%; height: auto; max-height: 74svh; object-fit: contain; object-position: center bottom; }

/* モバイル：USP2テキストは上部、画像は下端揃え（USP1とは配置が変わる） */
.tc-lp2026-ft-step--usp2 {
  top: clamp(60px, 15vw, 116px);
  bottom: auto;
}
.tc-lp2026-ft-usp2links {
  display: flex;
  justify-content: flex-end;
  margin-top: clamp(20px, 5vw, 28px);
}
/* モバイルは表示中の画像に対応するリンクだけ表示（非アクティブを隠す） */
.tc-lp2026-ft-usp2links a:not(.is-active) { display: none; }

/* USP3（重ねカード）SP実装：テキスト上部／カードスタック中央／キャプション・リンク下部 */
.tc-lp2026-ft-vslide--stack { top: 0; bottom: 0; height: 100%; }
.tc-lp2026-ft-stack {
  position: absolute;
  left: clamp(50px, 13vw, 66px);   /* 本文と同じ左右幅に揃える */
  right: 28px;
  bottom: clamp(176px, 24vh, 240px);   /* 下にキャプション＋リンク分の余白 */
  height: clamp(220px, 56vw, 320px);
}
.tc-lp2026-ft-stackcard {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  transform-origin: center bottom;
  transition: transform .8s cubic-bezier(.4,0,.2,1), opacity .8s ease;
  will-change: transform, opacity;
}
.tc-lp2026-ft-stackimg {
  display: block;
  width: 100%;
  height: auto;
  filter: drop-shadow(0 10px 24px rgba(31, 43, 56, .18));
}
.tc-lp2026-ft-stackcap {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  margin: 0;
  padding-top: clamp(14px, 3.6vw, 18px);
  opacity: 0;
  transition: opacity .5s ease;
}
.tc-lp2026-ft-stackcard.is-front .tc-lp2026-ft-stackcap { opacity: 1; }
.tc-lp2026-ft-stackcap > div {
  display: flex;
  gap: .7em;
  font-size: clamp(10px, 2.9vw, 12px);
  line-height: 1.7;
  color: #888888;
}
.tc-lp2026-ft-stackcap dt { flex: none; width: 5.4em; color: #999999; }
.tc-lp2026-ft-stackcap dd { margin: 0; color: #777777; }
.tc-lp2026-ft-stackcard[data-pos="0"] { transform: translate(0, 0) scale(1);        z-index: 40; opacity: 1; }
.tc-lp2026-ft-stackcard[data-pos="1"] { transform: translate(0, -52px) scale(.93);  z-index: 30; opacity: 1; }
.tc-lp2026-ft-stackcard[data-pos="2"] { transform: translate(0, -102px) scale(.86); z-index: 20; opacity: 1; }
.tc-lp2026-ft-stackcard[data-pos="3"] { transform: translate(0, -150px) scale(.80); z-index: 10; opacity: 1; }
.tc-lp2026-ft-stackcard.is-leaving {
  transform: translate(0, 46px) scale(1.02);
  opacity: 0;
  z-index: 50;
  transition: transform .5s cubic-bezier(.4,0,.6,1), opacity .5s ease;
}

/* USP3テキスト（SP）：上部に配置。リンクは最下部（前面症例に対応する1つ） */
.tc-lp2026-ft-step--usp3 {
  top: clamp(56px, 14vw, 110px);
  bottom: clamp(36px, 9vw, 56px);
  display: flex;
  flex-direction: column;
}
.tc-lp2026-ft-step--usp3 .tc-lp2026-ft-usp3links {
  margin: auto 0 0;
  text-align: right;
}
.tc-lp2026-ft-usp3links a:not(.is-active) { display: none; }

/* USP4（SP）：テキスト上部、注釈＋リンクは下部 */
.tc-lp2026-ft-step--usp4 {
  top: clamp(56px, 14vw, 110px);
  bottom: clamp(36px, 9vw, 56px);
}
.tc-lp2026-ft-step-note {
  margin: clamp(10px, 2.5vw, 16px) 0 0;
  color: #999999;
  font-size: clamp(11px, 3vw, 13px);
  letter-spacing: .03em;
  text-align: right;
}

/* USP4：症度数カウントアップ。共通パーツ（バッジ／数字／OVER）。 */
/* SP：統計をビジュアル域・中央寄りに、テキストは上部、注釈＋リンクは下部 */
.tc-lp2026-ft-vslide--stats {
  display: block;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  opacity: 0;
  transition: opacity .9s ease;
}
.tc-lp2026-ft-vslide--stats.is-active { opacity: 1; }
.tc-lp2026-ft-stats {
  position: absolute;
  left: 0;
  right: 0;
  bottom: clamp(120px, 30vw, 200px);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(20px, 6vw, 34px);
}
.tc-lp2026-ft-stat {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.tc-lp2026-ft-stat-badge {
  display: inline-block;
  background: #2e4861;
  color: #ffffff;
  font-size: clamp(13px, 3.3vw, 16px);
  letter-spacing: .1em;
  padding: 9px 24px;
  border-radius: 0;
  margin-bottom: clamp(8px, 1.4vw, 14px);
}
.tc-lp2026-ft-stat-row {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(2px, 1vw, 8px);
}
.tc-lp2026-ft-stat-num {
  position: relative;
  display: inline-flex;
  align-items: flex-end;
}
/* スロットマシン式：各桁は窓（縦クリップ）。数字が下から登場し上へ抜ける */
.tc-lp2026-ft-slot {
  position: relative;
  display: inline-block;
  overflow: hidden;
  height: clamp(76px, 21vw, 104px);
  aspect-ratio: 100 / 144;
}
.tc-lp2026-ft-slot--comma { aspect-ratio: 39 / 144; }
.tc-lp2026-ft-digit {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  transform: translateY(0);
  transition: transform .17s cubic-bezier(.33, 0, .25, 1), opacity .17s ease;
  will-change: transform, opacity;
}
.tc-lp2026-ft-cracker {
  position: relative;
  display: inline-block;
  width: 0;
  height: 0;
  align-self: center;
  margin-bottom: clamp(10px, 2vw, 20px);
}
.tc-lp2026-ft-confetti {
  position: absolute;
  left: 0;
  top: 0;
  width: 7px;
  height: 11px;
  border-radius: 1px;
  will-change: transform, opacity;
  animation: tc-lp2026-confetti var(--d, 1100ms) cubic-bezier(.18,.7,.4,1) forwards;
}
@keyframes tc-lp2026-confetti {
  0%   { transform: translate(0,0) rotate(0deg) scale(.4); opacity: 0; }
  12%  { opacity: 1; }
  60%  { opacity: 1; }
  100% { transform: translate(var(--tx), var(--ty)) rotate(var(--rot)) scale(1); opacity: 0; }
}
.tc-lp2026-ft-stat-num img {
  display: block;
  height: 100%;
  width: 100%;
}
.tc-lp2026-ft-stat-over {
  display: block;
  height: clamp(20px, 4.6vw, 30px);
  width: auto;
  margin-bottom: 0;
}
.tc-lp2026-ft-step-title {
  margin: 0 0 clamp(20px, 5vw, 28px);
  font-family: 'Noto Serif JP', serif;
  font-weight: 500;
  color: #333333;
  font-size: clamp(21px, 5.6vw, 28px);
  line-height: 1.5;
  letter-spacing: .04em;
}
.tc-lp2026-ft-step-body {
  margin: 0;
  color: #666666;
  font-size: clamp(15px, 3.9vw, 18px);
  line-height: 2.0;
  letter-spacing: .02em;
  text-align: justify;
  text-justify: inter-character;
}
.tc-lp2026-ft-step-link {
  margin: clamp(26px, 6vw, 36px) 0 0;
  text-align: right;
}
.tc-lp2026-ft-step-link a,
.tc-lp2026-ft-usp2links a {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  color: #778fab;
  text-decoration: none;
  font-size: clamp(14px, 3.7vw, 15px);
  letter-spacing: .08em;
}
.tc-lp2026-ft-link-txt {
  position: relative;
  display: inline-block;
}
.tc-lp2026-ft-link-txt::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -5px;
  width: 100%;
  height: 1px;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: right center;
  transition: transform .55s cubic-bezier(.19,1,.22,1);
}
.tc-lp2026-ft-step-link a:hover .tc-lp2026-ft-link-txt::after,
.tc-lp2026-ft-usp2links a:hover .tc-lp2026-ft-link-txt::after {
  transform: scaleX(1);
  transform-origin: left center;
}
.tc-lp2026-ft-step-link a img,
.tc-lp2026-ft-usp2links a img {
  display: block;
  width: 34px;
  height: 34px;
  transition: transform .55s cubic-bezier(.19,1,.22,1);
}
.tc-lp2026-ft-step-link a:hover img,
.tc-lp2026-ft-usp2links a:hover img { transform: translateX(7px); }

/* ---- スクロールバー（固定表示・区間内のみ） ---- */
.tc-lp2026-ft-progress {
  position: fixed;
  z-index: 5;
  pointer-events: none;
  opacity: 0;
  transition: opacity .4s ease;
  /* モバイル：左 中央 縦 */
  left: 14px;
  top: 50%;
  transform: translateY(-50%);
  width: 3px;
  height: clamp(96px, 24vh, 180px);
}
.tc-lp2026-ft-progress.is-visible { opacity: 1; }
.tc-lp2026-ft-progress-track {
  position: absolute;
  left: 1px;
  top: 0;
  width: 1px;
  height: 100%;
  background: rgba(119, 143, 171, .30);
}
.tc-lp2026-ft-progress-active {
  position: absolute;
  left: 0;
  top: 0;
  width: 3px;
  height: calc(var(--tc-ft-p, 0) * 100%);
  background: #778fab;
}

/* ---- SP 短い画面セーフティ（iPhone SE / Galaxy S8 など縦の短い端末）----
   通常の縦長スマホ（高さ>760px）では発動せず従来どおり。
   短い端末では、画像を下寄せで小さめにキャップし、テキストは上寄せ・コンパクト化して、
   テキストの見切れ／被写体との重なりを構造的に解消する（レイヤー可変の思想をSPへ）。 */
@media (max-width: 767px) and (max-height: 760px) {
  /* USP1・USP5：被写体を1.5倍（50svh→75svh）。上寄せ・下端フェード */
  /* USP1：被写体を1.5倍（50svh→75svh）。上寄せ・下端フェード */
  .tc-lp2026-ft-vslide:first-child .tc-lp2026-ft-vimg--sp { max-height: 75svh; }

  /* USP2：被写体を左右ウィンドウ一杯に。リンク下端に近づけて配置し（余白を詰める）、
     写真下部の被写体を見せる（object-position:center bottom で上の余白をトリミング）。 */
  .tc-lp2026-ft-vslide--cycle .tc-lp2026-ft-cyimg {
    top: clamp(308px, 83vw, 320px);
    bottom: 0;
  }
  .tc-lp2026-ft-cyimg-pic--sp {
    width: 100vw;
    height: 100%;
    max-height: none;
    object-fit: cover;
    object-position: center 68%;   /* 被写体の頭が切れない位置（素材上部の余白はスキップ／下端は多少トリミング） */
  }

  /* USP5：被写体を左右ウィンドウ一杯に。商品は薄いシャドウ素材のため下を切らず全体表示
     （下寄せテキストと重なってもシャドウはほぼ透明で影響なし）。 */
  .tc-lp2026-ft-vslide--prod .tc-lp2026-ft-vimg--sp {
    position: absolute;
    top: 0;
    left: 0;
    width: 100vw;
    height: auto;
    max-height: none;
    object-fit: contain;
    object-position: center top;
  }

  /* テキストは上寄せ・コンパクト化（USP1は画像が上寄せ＝被写体上のため下寄せのまま維持） */
  .tc-lp2026-ft-step--usp2,
  .tc-lp2026-ft-step--usp3,
  .tc-lp2026-ft-step--usp4 {
    top: clamp(32px, 8vw, 56px);
    bottom: auto;
  }
  .tc-lp2026-ft-step-title {
    margin-bottom: clamp(10px, 2.6vw, 16px);
    font-size: clamp(18px, 4.8vw, 23px);
    line-height: 1.45;
  }
  .tc-lp2026-ft-step-body {
    font-size: clamp(12.5px, 3.4vw, 15px);
    line-height: 1.75;
  }
  .tc-lp2026-ft-step-link { margin-top: clamp(14px, 3.4vw, 22px); }
  .tc-lp2026-ft-usp2links { margin-top: clamp(12px, 3vw, 20px); }
  .tc-lp2026-ft-step-note { margin-top: clamp(8px, 2vw, 12px); }

  /* USP3 重ねカード：短い画面では小さめ。配置を少し下げる */
  .tc-lp2026-ft-stack {
    height: clamp(180px, 42vw, 240px);
    bottom: clamp(112px, 16vh, 160px);
  }
  /* USP4 カウントアップ：注釈から約50px下に配置（上寄せ） */
  .tc-lp2026-ft-vslide--stats .tc-lp2026-ft-stats {
    top: clamp(272px, 75vw, 288px);
    bottom: auto;
  }
}

/* ---- PCレイアウト ---- */
@media (min-width: 768px) {
  .tc-lp2026-ft-vimg--pc { display: block; }
  .tc-lp2026-ft-vimg--sp { display: none; }

  /* セクションを背の高いスクロール領域にし、body を「ステージ」として sticky 固定。
     見出し・画像・テキスト・リンク・バーを全てステージ内に収めることで、
     固定要素が前後の段落へはみ出さない（前段落への侵略を防止）。 */
  .tc-lp2026-ft {
    min-height: 1600vh;
    /* メインコンテンツ帯（被写体・中見出し・本文）の高さを主役として確保：幅に対し≦16:6.4。 */
    --ft-main: clamp(360px, min(40vw, 62svh), 640px);
    /* 残りが頭（段落見出し＋リード文）の帯。狭い画面ほど頭は小さくなり、段落見出しが上から見切れる。 */
    --ft-dock: max(0px, calc(100svh - var(--ft-main)));
  }
  .tc-lp2026-ft-body {
    position: sticky;
    /* プランA（レイヤー可変）：固定ステージはフル画面。背景はCSS地色で全面を埋める（帯なし）。 */
    top: 0;
    height: 100svh;
    min-height: 0;
    overflow: hidden;
  }
  /* 第4段落先頭：段落見出しの上に、背景と同色の空白エリア（詰まり解消・約5倍）。
     通常フローのスペーサーなので固定ステージには影響せず崩れない。 */
  .tc-lp2026-ft-topspacer {
    display: block;
    height: clamp(120px, 16vh, 210px);
    background: #e8e8e8;
  }

  /* 左：背景画像（ステージ内・下端揃え） */
  .tc-lp2026-ft-visual {
    position: absolute;
    left: 0;
    bottom: 0;
    width: 66vw;
    height: 100%;   /* 固定ステージ（絞った高さ）に追従 */
    background: none;
    display: flex;
    align-items: flex-end;
    z-index: 0;
    opacity: 1;
    visibility: visible;
    pointer-events: none;
  }
  .tc-lp2026-ft-vslide:first-child { position: absolute; top: auto; }   /* 下端揃え */
  .tc-lp2026-ft-vslide { top: auto; bottom: 0; }
  .tc-lp2026-ft-vimg { width: 100%; height: auto; }
  /* 被写体は左下アンカー＋「縦横両軸の上限キャップ」。
     max-widthはテキスト帯（left:54vw）に侵入しない値にし、狭いウィンドウでも重ならない。 */
  .tc-lp2026-ft-vslide:first-child .tc-lp2026-ft-vimg--pc {
    width: auto; height: auto; max-width: 63vw; max-height: calc(var(--ft-main) - 20px); object-fit: contain; object-position: left bottom;
  }

  /* USP5：DOWNTIMEプロダクトは左下に原寸比率で（背景全面ではない） */
  .tc-lp2026-ft-vslide--prod {
    left: 0;
    bottom: 0;
    right: auto;
    width: auto;
    display: flex;
    align-items: flex-end;
  }
  .tc-lp2026-ft-vslide--prod .tc-lp2026-ft-vimg--pc {
    width: auto;
    height: auto;
    max-width: 51vw;
    max-height: calc(var(--ft-main) - 20px);
    object-fit: contain;
    object-position: left bottom;
  }

  /* 見出し・リードは通常フローの導入ブロック（プランA）。
     フル画面ステージの手前で自然にスクロールして抜ける（マジック値のドッキングは廃止）。 */
  /* head は body 内の上帯に absolute でドッキング（固定ステージと一体化→入場・終端とも body と同期）。
     内容は帯下端揃え。帯が狭いときは溢れた段落見出しが帯上端（ビューポート上端）で見切れる。 */
  .tc-lp2026-ft-head {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: var(--ft-dock);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    align-items: center;
    z-index: 3;
    box-sizing: border-box;
    text-align: center;
    padding: 0 40px clamp(10px, 1.6vh, 20px);
    pointer-events: none;
  }
  .tc-lp2026-ft-head .tc-lp2026-ft-title,
  .tc-lp2026-ft-head .tc-lp2026-ft-lead { max-width: 960px; }

  /* 右：ステップ（定位置・スクロールでクロスフェード切替／前段落へはみ出さない） */
  .tc-lp2026-ft-panel {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: auto;
    height: 100%;   /* inset:0 だと固定ステージ短縮時に高さがビューポート基準で解決されるため明示 */
    z-index: 1;
    margin: 0;
    pointer-events: none;
    background: none;
  }
  .tc-lp2026-ft-step {
    position: absolute;
    /* 中見出し・本文はドッキング帯の真下にトップアンカー（主コンテンツを優先し常に全表示）。
       左右幅は第3段落のテキスト列と同じ。 */
    top: calc(var(--ft-dock) + var(--ft-main) / 2);
    bottom: auto;
    transform: translateY(-50%);
    left: calc(50vw + clamp(20px, 2.5vw, 38px));
    right: max(28px, calc(50vw - 562px));
    padding-top: 0;
    opacity: 0;
    pointer-events: none;
    transition: opacity .8s ease;
  }
  .tc-lp2026-ft-step.is-active {
    opacity: 1;
    pointer-events: auto;
  }

  /* USP2：PC表示。ビジュアル左域で3枚を同一エリア・クロスフェード */
  .tc-lp2026-ft-vslide--cycle {
    display: block;
    position: absolute;
    inset: 0;
    top: auto;
    bottom: 0;
    height: 100vh;
    height: 100svh;
  }
  .tc-lp2026-ft-cyimg {
    position: absolute;
    left: 0;
    right: auto;
    bottom: 0;
    top: auto;
    width: auto;
    height: auto;
    opacity: 0;
    transition: opacity .9s ease;
  }
  .tc-lp2026-ft-cyimg.is-active { opacity: 1; }
  .tc-lp2026-ft-cyimg-pic--pc { display: block; width: auto; height: auto; max-width: 51vw; max-height: calc(var(--ft-main) - 20px); object-fit: contain; object-position: left bottom; }
  .tc-lp2026-ft-cyimg-pic--sp { display: none; }

  /* USP3：重ねカード・カルーセル（PC） */
  .tc-lp2026-ft-vslide--stack {
    display: block;
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    height: 100%;
    width: auto;
    opacity: 0;
    transition: opacity .9s ease;
  }
  .tc-lp2026-ft-vslide--stack.is-active { opacity: 1; }
  .tc-lp2026-ft-stack {
    position: absolute;
    left: max(28px, calc((100vw - 1180px) / 2 + 28px));   /* 第3段落コンテンツ左端に揃える */
    top: calc(var(--ft-dock) + var(--ft-main) / 2 + 20px);   /* メイン帯の縦中央から20px下 */
    bottom: auto;
    transform: translateY(-50%);
    width: min(40vw, 470px);
    height: min(clamp(280px, 40vh, 400px), 46svh);
  }
  .tc-lp2026-ft-stackcard {
    position: absolute;
    left: 0;
    bottom: clamp(86px, 11vh, 116px);   /* 下に施術キャプション分の余白 */
    width: 100%;
    transform-origin: center bottom;
    transition: transform .8s cubic-bezier(.4,0,.2,1), opacity .8s ease;
    will-change: transform, opacity;
  }
  .tc-lp2026-ft-stackimg {
    display: block;
    width: 100%;
    height: auto;
    filter: drop-shadow(0 14px 30px rgba(31, 43, 56, .16));
  }
  /* キャプションは画像の下に絶対配置（重なり計算に影響させない）。前面カードのみ表示 */
  .tc-lp2026-ft-stackcap {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    margin: 0;
    padding-top: clamp(12px, 1.4vw, 18px);
    opacity: 0;
    transition: opacity .5s ease;
    pointer-events: none;
  }
  .tc-lp2026-ft-stackcard.is-front .tc-lp2026-ft-stackcap { opacity: 1; }
  .tc-lp2026-ft-stackcap > div {
    display: flex;
    gap: .6em;
    font-size: clamp(11px, .82vw, 12.5px);
    line-height: 1.65;
    color: #888888;
    letter-spacing: .02em;
  }
  .tc-lp2026-ft-stackcap dt {
    flex: none;
    width: 6.2em;
    color: #999999;
  }
  .tc-lp2026-ft-stackcap dd { margin: 0; color: #777777; }

  /* 重なり位置（前面=pos0 → 奥=pos3。奥ほど小さく上にずれる） */
  .tc-lp2026-ft-stackcard[data-pos="0"] { transform: translate(0, 0) scale(1);        z-index: 40; opacity: 1; }
  .tc-lp2026-ft-stackcard[data-pos="1"] { transform: translate(34px, -40px) scale(.93); z-index: 30; opacity: 1; }
  .tc-lp2026-ft-stackcard[data-pos="2"] { transform: translate(62px, -76px) scale(.86); z-index: 20; opacity: 1; }
  .tc-lp2026-ft-stackcard[data-pos="3"] { transform: translate(86px, -108px) scale(.80); z-index: 10; opacity: 1; }
  /* 最前面が抜けて最後尾へ送られる際の離脱モーション */
  .tc-lp2026-ft-stackcard.is-leaving {
    transform: translate(0, 56px) scale(1.02);
    opacity: 0;
    z-index: 50;
    transition: transform .5s cubic-bezier(.4,0,.6,1), opacity .5s ease;
  }

  .tc-lp2026-ft-step--usp2 { display: block; }
  .tc-lp2026-ft-step--usp3 { display: block; }
  .tc-lp2026-ft-step--usp4 { display: block; }
  /* USP4：左ビジュアル域に2つの統計を縦中央配置 */
  .tc-lp2026-ft-vslide--stats {
    display: flex;
    align-items: flex-start;
    justify-content: flex-start;
    position: absolute;
    left: 0;
    top: 0;
    right: 0;
    bottom: 0;
    opacity: 0;
    transition: opacity .9s ease;
  }
  .tc-lp2026-ft-vslide--stats.is-active { opacity: 1; }
  .tc-lp2026-ft-stats {
    position: absolute;
    left: 0;
    right: auto;
    width: 50vw;   /* 被写体エリア（左半分）に合わせ、その中で横センター（base の align-items:center） */
    top: calc(var(--ft-dock) + var(--ft-main) / 2);   /* メイン帯の縦中央 */
    bottom: auto;   /* base の bottom を解除。top と両立させず、箱高さを中身なりにして translateY(-50%) で正しく中央寄せ */
    transform: translateY(-50%);
    gap: clamp(24px, 2.6vw, 40px);
  }
  .tc-lp2026-ft-slot { height: clamp(60px, 6.4vw, 92px); }
  .tc-lp2026-ft-stat-row { flex-direction: row; align-items: flex-end; gap: clamp(6px, 1vw, 12px); }
  .tc-lp2026-ft-stat-over { height: clamp(22px, 2.3vw, 30px); margin-bottom: clamp(4px, 1vw, 9px); }
  .tc-lp2026-ft-step-note {
    margin: clamp(10px, 1.4vw, 18px) 0 0;
    color: #999999;
    font-size: clamp(12px, .9vw, 13px);
    letter-spacing: .03em;
    text-align: right;
  }
  /* USP3：前面症例に対応するリンクのみ表示 */
  .tc-lp2026-ft-usp3links a:not(.is-active) { display: none; }
  /* USP3リンク：本文との間は他USPと同じマージン（2倍値） */
  .tc-lp2026-ft-step--usp3 .tc-lp2026-ft-usp3links { margin: clamp(40px, 6vh, 72px) 0 0; }
  .tc-lp2026-ft-usp2links a:not(.is-active) { display: inline-flex; }
  .tc-lp2026-ft-usp2links {
    position: static;
    margin: clamp(40px, 6vh, 72px) 0 0;
    display: flex;
    flex-wrap: nowrap;
    white-space: nowrap;
    justify-content: flex-end;
    gap: clamp(20px, 2.4vw, 40px);
  }
  .tc-lp2026-ft-usp2links a {
    display: inline-flex;
    align-items: center;
    flex: none;
    gap: 10px;
    color: #778fab;
    text-decoration: none;
    font-size: clamp(13px, 1vw, 15px);
    letter-spacing: .06em;
  }
  .tc-lp2026-ft-usp2links a img { width: 38px; height: 38px; transition: transform .55s cubic-bezier(.19,1,.22,1); }
  .tc-lp2026-ft-usp2links a:hover img { transform: translateX(6px); }

  .tc-lp2026-ft-step-title {
    font-size: clamp(22px, 1.95vw, 29px);
    letter-spacing: .06em;
  }
  .tc-lp2026-ft-step-body {
    font-size: clamp(15px, 3.9vw, 18px);
    letter-spacing: .04em;
  }
  .tc-lp2026-ft-step-link a img { width: 38px; height: 38px; }

  .tc-lp2026-ft-step-link {
    position: static;
    margin: clamp(40px, 6vh, 72px) 0 0;
    text-align: right;
    z-index: 4;
  }

  /* スクロールバー：下部 横（ステージ内） */
  .tc-lp2026-ft-progress {
    position: absolute;
    left: 50%;
    top: auto;
    bottom: clamp(28px, 5vh, 56px);
    transform: translateX(-50%);
    width: min(32vw, 440px);
    height: 3px;
  }
  .tc-lp2026-ft-progress-track {
    left: 0;
    top: 1px;
    width: 100%;
    height: 1px;
  }
  .tc-lp2026-ft-progress-active {
    width: calc(var(--tc-ft-p, 0) * 100%);
    height: 3px;
  }
}

/* =================================================================
   プランB（見栄え重視）：PC縦長ウィンドウ限定
   - 固定ステージをフル画面ではなく横長バンド（contain）にして中央配置。
   - 上下の帯には地色＋スクロール中は前後セクションが覗く。
   - 中の被写体・テキストはバンド高さ（vw基準）に追従してキャップ。
   - 長文（USP2）が短いバンドで見切れないよう、テキストはバンド上部にアンカー。
   ================================================================= */
@media (min-width: 768px) and (max-aspect-ratio: 4 / 5) {
  .tc-lp2026-ft-body {
    height: 68vw;
    top: calc((100svh - 68vw) / 2);
  }
  .tc-lp2026-ft-vslide:first-child .tc-lp2026-ft-vimg--pc,
  .tc-lp2026-ft-vslide--prod .tc-lp2026-ft-vimg--pc,
  .tc-lp2026-ft-cyimg-pic--pc {
    max-height: 60vw;
  }
  .tc-lp2026-ft-step {
    top: 5vw;
    bottom: auto;
    transform: none;
  }
}


/* =================================================================
   締め＋CV誘導（FT段落の後）
   - 締め：グレー地（#e8e8e8）・明朝中央
   - CV：青地・背景画像パララックス（第2段落画像を流用）
   ================================================================= */
.tc-lp2026-cv {
  position: relative;
  z-index: 3;
  margin-top: -2px;   /* USP段落（sticky）との境目のサブピクセル継ぎ目（細い罫線）を覆う */
  font-family: 'Hiragino Kaku Gothic ProN', 'Hiragino Kaku Gothic Pro', 'Zen Kaku Gothic New', sans-serif;
  -webkit-font-smoothing: antialiased;
  font-kerning: normal;
  font-feature-settings: "palt" 1, "kern" 1;
  box-sizing: border-box;
}
.tc-lp2026-cv *,
.tc-lp2026-cv *::before,
.tc-lp2026-cv *::after { box-sizing: border-box; }

/* ---- 締め（グレー地・明朝中央） ---- */
.tc-lp2026-cv-closing {
  background: #e8e8e8;
  text-align: center;
  padding: clamp(80px, 18vw, 180px) 28px clamp(90px, 20vw, 200px);
}
.tc-lp2026-cv-closing-text {
  margin: 0;
  font-family: 'Noto Serif JP', serif;
  font-weight: 500;
  color: #333333;
  font-size: clamp(24px, 6.6vw, 44px);
  line-height: 1.85;
  letter-spacing: .02em;
  text-indent: .02em;
  font-feature-settings: "palt" 1, "kern" 1;
}

/* ---- CV（青地・背景画像パララックス） ---- */
.tc-lp2026-cv-cta {
  position: relative;
  overflow: hidden;
  background: #1f3d5c;
}
.tc-lp2026-cv-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
}
.tc-lp2026-cv-bg img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 122%;                 /* パララックスで上下に動かす余白 */
  object-fit: cover;
  object-position: center;
  will-change: transform;
}
.tc-lp2026-cv-bg-scrim {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(20,46,74,.72) 0%, rgba(24,52,82,.62) 50%, rgba(18,40,64,.78) 100%);
}
.tc-lp2026-cv-inner {
  position: relative;
  z-index: 1;
  max-width: 1180px;
  margin: 0 auto;
  padding: clamp(72px, 16vw, 150px) 28px clamp(80px, 18vw, 160px);
  display: flex;
  flex-direction: column;
  gap: clamp(40px, 9vw, 72px);
}
.tc-lp2026-cv-lead {
  margin: 0;
  font-family: 'Noto Serif JP', serif;
  font-weight: 500;
  color: #e8e8e8;
  font-size: clamp(15px, 4.2vw, 28px);
  line-height: 2;
  letter-spacing: .08em;
  font-feature-settings: "palt" 1, "kern" 1;
}
.tc-lp2026-cv-actions {
  display: flex;
  flex-direction: column;
  gap: clamp(28px, 6vw, 40px);
  align-self: flex-end;          /* SP：右揃え */
  width: max-content;            /* 線幅＝最も広いボタン（無料カウンセリング）の内容幅 */
  max-width: 100%;
}
.tc-lp2026-cv-btn {
  position: relative;
  display: block;
  width: 100%;
  text-decoration: none;
  color: #ffffff;
  padding: 0 20px clamp(14px, 3vw, 20px);   /* 左右+20pxずつ */
  border-bottom: 1px solid rgba(255,255,255,.5);
  transition: border-color .4s ease;
}
.tc-lp2026-cv-btn-label {
  display: flex;
  align-items: center;
  justify-content: center;       /* アイコン＋文言を線幅に対して中央 */
  gap: clamp(12px, 2.4vw, 16px);
  font-size: clamp(16px, 4.4vw, 19px);
  letter-spacing: .06em;
}
.tc-lp2026-cv-btn-icon {
  display: block;
  width: clamp(30px, 7vw, 38px);
  height: auto;
  flex: none;
}
.tc-lp2026-cv-btn:hover { border-bottom-color: rgba(255,255,255,.9); }

/* ---- PCレイアウト ---- */
@media (min-width: 768px) {
  .tc-lp2026-cv-closing {
    padding: clamp(120px, 14vw, 220px) 40px clamp(130px, 15vw, 240px);
  }
  .tc-lp2026-cv-inner {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: clamp(40px, 6vw, 96px);
    padding: clamp(60px, 7vw, 100px) 28px;
  }
  .tc-lp2026-cv-lead { flex: 1 1 auto; }
  .tc-lp2026-cv-actions {
    flex: none;
    width: max-content;        /* 最も広いボタン（無料カウンセリング）の幅に揃える */
    align-self: center;
  }
  /* PC：罫線は「文言＋アイコン」の幅＋約40px（左右20pxずつ）。文言は線幅に対して中央 */
  .tc-lp2026-cv-btn {
    width: 100%;
    padding: clamp(12px, 1.4vw, 16px) 20px;
    border-bottom: none;
  }
  .tc-lp2026-cv-btn-label { justify-content: center; }
  /* 罫線（下線）：安静時は素の下線を btn に描画 */
  .tc-lp2026-cv-btn { border-bottom: 1px solid rgba(255,255,255,.5); }
  /* ホバー：右下から時計回りにラインが伸びて四角になる
     ①下辺（右→左）②左辺（下→上）③上辺（左→右）④右辺（上→下） */
  .tc-lp2026-cv-btn::before,
  .tc-lp2026-cv-btn::after {
    content: "";
    position: absolute;
    box-sizing: border-box;
    pointer-events: none;
  }
  /* ::after ＝①下辺＋②左辺（右下アンカー） */
  .tc-lp2026-cv-btn::after {
    right: 0;
    bottom: 0;
    width: 0;
    height: 0;
    border-bottom: 1px solid rgba(255,255,255,.9);
    border-left: 1px solid rgba(255,255,255,.9);
    opacity: 0;
    transition: opacity .01s ease .8s, width .2s ease .2s, height .2s ease;
  }
  /* ::before ＝③上辺＋④右辺（左上アンカー） */
  .tc-lp2026-cv-btn::before {
    left: 0;
    top: 0;
    width: 0;
    height: 0;
    border-top: 1px solid rgba(255,255,255,.9);
    border-right: 1px solid rgba(255,255,255,.9);
    opacity: 0;
    transition: opacity .01s ease .8s, width .2s ease .6s, height .2s ease .4s;
  }
  .tc-lp2026-cv-btn:hover::after {
    opacity: 1;
    width: 100%;   /* ①下辺：右→左 (0〜.2s) */
    height: 100%;  /* ②左辺：下→上 (.2〜.4s) */
    transition: opacity .01s ease, width .2s ease, height .2s ease .2s;
  }
  .tc-lp2026-cv-btn:hover::before {
    opacity: 1;
    width: 100%;   /* ③上辺：左→右 (.4〜.6s) */
    height: 100%;  /* ④右辺：上→下 (.6〜.8s) */
    transition: opacity .01s ease .4s, width .2s ease .4s, height .2s ease .6s;
  }
}


/* =================================================================
   第5段落：ユーザーレビュー（USER INTERVIEW）
   - SP先行実装。背景 #e8e8e8 ／ 見出し #2e4861 ／ リンク #778fab
   ================================================================= */
.tc-lp2026-rv {
  position: relative;
  z-index: 2;
  overflow-x: clip;
  background: #e8e8e8;
  font-family: 'Hiragino Kaku Gothic ProN', 'Hiragino Kaku Gothic Pro', 'Zen Kaku Gothic New', sans-serif;
  -webkit-font-smoothing: antialiased;
  font-kerning: normal;
  font-feature-settings: "palt" 1, "kern" 1;
  box-sizing: border-box;
}
.tc-lp2026-rv *,
.tc-lp2026-rv *::before,
.tc-lp2026-rv *::after { box-sizing: border-box; }

.tc-lp2026-rv-inner {
  padding: clamp(64px, 16vw, 120px) 0 clamp(72px, 18vw, 130px);
}
.tc-lp2026-rv-title {
  margin: clamp(48px, 13vw, 96px) 0 clamp(56px, 16vw, 112px);
  padding: 0 28px;
  line-height: 0;
}
.tc-lp2026-rv-title img {
  display: block;
  width: auto;
  height: clamp(22px, 6vw, 39px);
}

/* 動画トラック（横スクロール・2枚目が右に覗く） */
.tc-lp2026-rv-track {
  display: flex;
  gap: clamp(16px, 4.5vw, 28px);
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  padding: 0 28px;
  scrollbar-width: none;
}
.tc-lp2026-rv-track::-webkit-scrollbar { display: none; }
.tc-lp2026-rv-card {
  flex: 0 0 auto;
  width: min(78vw, 360px);
  margin: 0;
  scroll-snap-align: start;
}
.tc-lp2026-rv-video {
  position: relative;
  width: 100%;
  aspect-ratio: 9 / 16;
  overflow: hidden;
  background: #d7d7d7;
}
.tc-lp2026-rv-media {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
/* mp4埋め込み：動画＋再生/一時停止トグル＋音声ボタン */
.tc-lp2026-rv-playtoggle {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  z-index: 1;
}
.tc-lp2026-rv-poster {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  z-index: 1;
  transition: opacity .3s ease;
  pointer-events: none;
}
/* 再生中のみサムネイルを隠す（再生前・一時停止・終了時は元画像を表示） */
.tc-lp2026-rv-video.is-playing .tc-lp2026-rv-poster { opacity: 0; }
.tc-lp2026-rv-playicon {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: clamp(48px, 13vw, 62px);
  height: clamp(48px, 13vw, 62px);
  border-radius: 50%;
  background: rgba(255, 255, 255, .9);
  box-shadow: 0 4px 16px rgba(31, 43, 56, .22);
  transition: transform .35s cubic-bezier(.22,.61,.36,1), background .3s ease, opacity .3s ease;
  pointer-events: none;
}
.tc-lp2026-rv-playicon::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 53%;
  transform: translate(-50%, -50%);
  border-style: solid;
  border-width: clamp(8px, 2.2vw, 11px) 0 clamp(8px, 2.2vw, 11px) clamp(13px, 3.6vw, 18px);
  border-color: transparent transparent transparent #2e4861;
}
.tc-lp2026-rv-playtoggle:hover .tc-lp2026-rv-playicon { transform: translate(-50%, -50%) scale(1.08); background: #fff; }
/* 再生中は再生マークを隠す */
.tc-lp2026-rv-video.is-playing .tc-lp2026-rv-playicon { opacity: 0; }
/* 音声オン／オフ ボタン（右下） */
.tc-lp2026-rv-sound {
  position: absolute;
  right: clamp(8px, 2.4vw, 12px);
  bottom: clamp(8px, 2.4vw, 12px);
  z-index: 2;
  width: clamp(34px, 9vw, 40px);
  height: clamp(34px, 9vw, 40px);
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: rgba(31, 43, 56, .55);
  cursor: pointer;
  transition: background .25s ease;
}
.tc-lp2026-rv-sound:hover { background: rgba(31, 43, 56, .75); }
/* スピーカーアイコン（CSSのみ） */
.tc-lp2026-rv-sound::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 46%;
  transform: translate(-50%, -50%);
  width: 7px;
  height: 8px;
  background: #fff;
  clip-path: polygon(0 33%, 38% 33%, 100% 0, 100% 100%, 38% 67%, 0 67%);
}
/* 音声オン：音波 */
.tc-lp2026-rv-sound::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 62%;
  transform: translateY(-50%);
  width: 7px;
  height: 11px;
  border: 1.5px solid #fff;
  border-left: 0;
  border-radius: 0 9px 9px 0;
}
/* 音声オフ：音波を消して斜線 */
.tc-lp2026-rv-sound.is-muted::after {
  width: 15px;
  height: 1.6px;
  border: 0;
  border-radius: 0;
  background: #fff;
  left: 50%;
  transform: translate(-50%, -50%) rotate(-45deg);
}
/* 埋め込み挿入後の iframe */
.tc-lp2026-rv-video iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}
.tc-lp2026-rv-cap {
  margin: clamp(12px, 3.4vw, 18px) 0 0;
  text-align: center;
  color: #666666;
  font-size: clamp(13px, 3.6vw, 15px);
  letter-spacing: .04em;
}

/* リンク（中央・丸囲み矢印／READ MORE風ホバー） */
.tc-lp2026-rv-link {
  margin: clamp(28px, 7vw, 48px) 0 0;
  padding: 0 28px;
  text-align: right;
}
.tc-lp2026-rv-link a {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  color: #778fab;
  text-decoration: none;
  font-size: clamp(14px, 3.9vw, 16px);
  letter-spacing: .06em;
}
.tc-lp2026-rv-link-txt {
  position: relative;
  display: inline-block;
}
.tc-lp2026-rv-link-txt::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -5px;
  width: 100%;
  height: 1px;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: right center;
  transition: transform .55s cubic-bezier(.19,1,.22,1);
}
.tc-lp2026-rv-link a:hover .tc-lp2026-rv-link-txt::after {
  transform: scaleX(1);
  transform-origin: left center;
}
.tc-lp2026-rv-link a img {
  display: block;
  width: 38px;
  height: 38px;
  transition: transform .55s cubic-bezier(.19,1,.22,1);
}
.tc-lp2026-rv-link a:hover img { transform: translateX(7px); }

/* ---- Google マップ レビュー（自動スライダー） ---- */
.tc-lp2026-rv-gmap {
  margin-top: clamp(80px, 22vw, 160px);
}
.tc-lp2026-rv-gtitle {
  margin: 0 0 clamp(40px, 11vw, 80px);
  padding: 0 28px;
  line-height: 0;
}
.tc-lp2026-rv-gtitle img {
  display: block;
  width: auto;
  height: clamp(20px, 5.6vw, 34px);
  max-width: 100%;
}
.tc-lp2026-rv-gviewport {
  overflow: hidden;
  width: 100vw;
  margin-left: calc(50% - 50vw);
}
.tc-lp2026-rv-gtrack {
  display: flex;
  gap: clamp(40px, 14vw, 68px);
  padding: 0 28px;
  width: max-content;
  will-change: transform;
}
.tc-lp2026-rv-gcard {
  flex: 0 0 auto;
  width: min(62vw, 250px);
  margin: 0;
}
.tc-lp2026-rv-ghead {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}
.tc-lp2026-rv-gavatar {
  width: clamp(40px, 11vw, 52px);
  height: clamp(40px, 11vw, 52px);
  border-radius: 50%;
  overflow: hidden;
  background:
    radial-gradient(circle at 30% 30%, #cfe6d8 0 30%, transparent 31%),
    radial-gradient(circle at 70% 60%, #ffe1b8 0 22%, transparent 23%),
    radial-gradient(circle at 55% 40%, #d6e3f5 0 40%, transparent 41%),
    linear-gradient(135deg, #eef1f4, #e3e8ee);
  background-color: #eef1f4;
}
.tc-lp2026-rv-gavatar img { width: 100%; height: 100%; object-fit: cover; display: block; }
.tc-lp2026-rv-gname {
  color: #555555;
  font-size: clamp(13px, 3.6vw, 15px);
  letter-spacing: .04em;
}
.tc-lp2026-rv-gstars {
  display: block;
  text-align: center;
  margin: clamp(8px, 2.2vw, 12px) 0 clamp(14px, 3.6vw, 18px);
  color: #e7b53c;
  font-size: clamp(18px, 5vw, 24px);
  letter-spacing: .12em;
}
.tc-lp2026-rv-gstar-off { color: #d2d5d9; }
.tc-lp2026-rv-gstars--none { color: #b6bABF; letter-spacing: 0; }
.tc-lp2026-rv-gtext {
  margin: 0;
  padding-top: clamp(16px, 4vw, 22px);
  border-top: 1px solid #c9ccd0;
  color: #666666;
  font-size: clamp(13px, 3.7vw, 15px);
  line-height: 2;
  letter-spacing: .02em;
  text-align: justify;
}
/* 進捗バー（4段落目と同じ長さ＝min(32vw,440px)・中央） */
.tc-lp2026-rv-gbar {
  position: relative;
  height: 2px;
  width: min(64vw, 440px);
  margin: clamp(36px, 9vw, 56px) auto 0;
}
.tc-lp2026-rv-gbar-track {
  position: absolute;
  inset: 0;
  top: 50%;
  height: 1px;
  background: rgba(119, 143, 171, .30);
}
.tc-lp2026-rv-gbar-active {
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  height: 2px;
  width: 22%;
  background: #5b7da0;
}

/* ---- UGC写真 自動横スライダー（奥行き・ランダム感） ---- */
.tc-lp2026-rv-ugc {
  position: relative;
  margin-top: clamp(72px, 18vw, 140px);
  width: 100vw;
  margin-left: calc(50% - 50vw);
  height: clamp(360px, 62vw, 560px);
  overflow: hidden;
}
.tc-lp2026-rv-ugc-track {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  display: flex;
  width: max-content;
  will-change: transform;
}
.tc-lp2026-rv-ugc-strip {
  display: block;
  height: 100%;
  width: auto;
  flex: none;
}
/* スライダー直下の注釈（最小文字サイズ・本文色・スライダーに重ねない） */
.tc-lp2026-rv-ugc-note {
  margin: clamp(8px, 1.6vw, 12px) 0 0;
  padding-right: max(16px, calc(50vw - 562px));
  text-align: right;
  font-size: 10px;
  line-height: 1.5;
  letter-spacing: .02em;
  color: #666666;
}

/* ---- PCレイアウト ---- */
@media (min-width: 768px) {
  .tc-lp2026-rv-inner {
    width: 100%;
    max-width: 1180px;
    margin: 0 auto;
    padding: clamp(96px, 11vw, 170px) 28px clamp(72px, 9vw, 140px);
  }
  .tc-lp2026-rv-title {
    margin: 0 0 clamp(72px, 7.5vw, 120px);
    padding: 0;
  }
  .tc-lp2026-rv-title img { height: clamp(26px, 2.3vw, 34px); }

  /* 2本を横並び（コンテンツ幅より小さめ・中央寄せ／仕上がりイメージ準拠） */
  .tc-lp2026-rv-track {
    overflow: visible;
    gap: clamp(36px, 4.5vw, 64px);
    padding: 0;
    justify-content: center;
  }
  .tc-lp2026-rv-card {
    flex: 0 0 auto;
    width: clamp(300px, 33vw, 410px);
  }
  .tc-lp2026-rv-cap {
    margin-top: clamp(8px, 0.8vw, 11px);
    font-size: clamp(14px, 1.05vw, 16px);
    text-align: right;
  }

  .tc-lp2026-rv-link {
    margin: clamp(36px, 4vw, 60px) 0 0;
    padding: 0;
    text-align: right;
  }
  .tc-lp2026-rv-link a { font-size: clamp(15px, 1.1vw, 16px); }
  .tc-lp2026-rv-link a img { width: 44px; height: 44px; }

  /* Google レビュー（PC） */
  .tc-lp2026-rv-gmap { margin-top: clamp(90px, 9vw, 150px); }
  .tc-lp2026-rv-gtitle { padding: 0; margin: 0 0 clamp(56px, 6vw, 96px); }
  .tc-lp2026-rv-gtitle img { height: clamp(26px, 2.4vw, 36px); }
  .tc-lp2026-rv-gtrack { padding: 0 0 0 max(28px, calc(50vw - 562px)); gap: clamp(40px, 4vw, 60px); }
  .tc-lp2026-rv-gcard { width: clamp(230px, 19vw, 280px); }
  .tc-lp2026-rv-gtext { font-size: clamp(14px, 1.05vw, 15px); }
  .tc-lp2026-rv-gbar { margin-left: auto; margin-right: auto; width: min(32vw, 440px); }
}

/* =================================================================
   第6段落：ドクター紹介（背景固定・9段階）
   ================================================================= */
.tc-lp2026-dr {
  position: relative;
  z-index: 2;
  overflow-x: clip;
  background: #0e2740;
  font-family: 'Hiragino Kaku Gothic ProN', 'Hiragino Kaku Gothic Pro', 'Zen Kaku Gothic New', sans-serif;
  font-feature-settings: "palt" 1, "kern" 1;
  box-sizing: border-box;
}
.tc-lp2026-dr *, .tc-lp2026-dr *::before, .tc-lp2026-dr *::after { box-sizing: border-box; }

.tc-lp2026-dr-body {
  position: relative;
  min-height: 1180vh;            /* 集合＋ドクター7名（計8段階／切替スクロール量を確保） */
}
.tc-lp2026-dr-stage {
  position: sticky;
  top: 0;
  height: 100vh;
  height: 100svh;
  overflow: hidden;
}
.tc-lp2026-dr-screen {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: none;
  will-change: opacity, transform, filter;
  transform-origin: 50% 50%;
  backface-visibility: hidden;
}
.tc-lp2026-dr-detail > * {
  transition: none;
  will-change: opacity, transform;
}
.tc-lp2026-dr-screen.is-active { opacity: 1; }

/* --- SP/PC 出し分け --- */
.tc-lp2026-dr-only-pc { display: none; }
@media (min-width: 768px) {
  .tc-lp2026-dr-only-sp { display: none !important; }
  .tc-lp2026-dr-only-pc { display: block; }
}

/* --- PC：背景＋手前ドクターの2レイヤー視差 --- */
.tc-lp2026-dr-group {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center bottom;
}
@media (min-width: 768px) {
  /* PC集合画像：全画面で表示（縦横比差はわずかに端をトリミング） */
  .tc-lp2026-dr-only-pc.tc-lp2026-dr-group {
    object-fit: cover;
    object-position: center center;
  }
  /* トリミング前提だが、念のため余白色も画像下端色に合わせる */
  .tc-lp2026-dr-stage { background: #2f3f59; }
}
.tc-lp2026-dr-scrim {
  display: none;
}
.tc-lp2026-dr-lead {
  position: absolute;
  top: calc(clamp(40px, 12vw, 90px) + 50px);
  left: 50%;
  transform: translateX(-50%);
  width: min(82%, 460px);
  height: auto;
  filter: drop-shadow(0 2px 16px rgba(0,0,0,.35));
}

/* SP 短い画面：第6段落 stage0（集合写真＋キャッチ）
   集合写真をキャッチ文字の下から始まる全幅バンドにし、被写体を下げて文字被りを解消。
   画像上部の青い余白は object-position でスキップ、画面からはみ出す下部はトリミング。
   文字帯の背景は写真上部の紺色に合わせる。 */
@media (max-width: 767px) and (max-height: 760px) {
  .tc-lp2026-dr-stage { background: #12294a; }
  /* stage0 キャッチコピーを20px上げる */
  .tc-lp2026-dr-body .tc-lp2026-dr-lead {
    top: calc(clamp(40px, 12vw, 90px) + 30px);
  }
  /* 個人ドクター写真を30%小さく（中央寄せ・上端揃えは維持） */
  .tc-lp2026-dr-body .tc-lp2026-dr-photo {
    width: 70%;
    left: 15%;
  }
  .tc-lp2026-dr-screen[data-dr-screen="0"] .tc-lp2026-dr-group.tc-lp2026-dr-only-sp {
    position: absolute;
    inset: auto;
    /* 素材は上約30%が青背景で人物の頭は29.8%から。幅基準（100vw）で自然表示し、
       頭(29.8%×画像高216.53vw≒64.5vw)がテキスト直下(約206px)に来るよう上へシフト。
       頭より上の青はテキスト帯の背景として見え、下部（足元）は画面外でトリミング。 */
    top: calc(206px - 64.5vw);
    left: 0;
    right: auto;
    bottom: auto;
    width: 100vw;
    height: auto;
    object-fit: fill;
  }
}

@media (min-width: 768px) {
  .tc-lp2026-dr-lead-pc {
    top: calc(clamp(64px, 7vw, 110px) + 30px);
    width: min(64%, 1060px);
    filter: drop-shadow(0 2px 22px rgba(0,0,0,.45));
    z-index: 3;
  }
}

/* === 個別ドクター画面（SP） === */
.tc-lp2026-dr-bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  z-index: 0;
}
.tc-lp2026-dr-screen[data-dr-screen] {
  display: block;
}
.tc-lp2026-dr-wm {
  position: absolute;
  top: 19vh;
  left: 50%;
  transform: translateX(-50%);
  width: 94%;
  height: auto;
  z-index: 1;
  opacity: .5;
  pointer-events: none;
}
.tc-lp2026-dr-vline {
  display: none;
}
.tc-lp2026-dr-photo {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
  width: 100%;
  height: auto;
  object-fit: contain;
  object-position: top center;
}
.tc-lp2026-dr-detail {
  position: absolute;
  z-index: 3;
  left: 50%;
  bottom: 5vh;
  transform: translateX(-50%);
  width: min(88%, 500px);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2.4vh;
}
.tc-lp2026-dr-infowrap {
  position: relative;
  display: block;
  width: 100%;
  max-width: 380px;
}
.tc-lp2026-dr-info {
  display: block;
  width: 100%;
  height: auto;
  filter: drop-shadow(0 2px 12px rgba(0,0,0,.35));
}
.tc-lp2026-dr-laurel {
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: auto;
  pointer-events: none;
}
.tc-lp2026-dr-bio {
  margin: 0;
  width: 100%;
  color: #afafaf;
  font-size: clamp(12px, 3.4vw, 14px);
  line-height: 1.95;
  text-align: justify;
  text-justify: inter-character;
  font-feature-settings: "palt" 1, "kern" 1;
}
.tc-lp2026-dr-case {
  width: 100%;
  height: auto;
  border-radius: 2px;
}
/* ドクター1人目：本文末尾の注釈（右揃え・11px・本文直下に詰める） */
.tc-lp2026-dr-bio-note {
  width: 100%;
  margin: calc(-1 * (2.4vh - 4px)) 0 0;
  text-align: right;
  font-size: 11px;
  line-height: 1.5;
  letter-spacing: .02em;
  color: #9a9a9a;
}
.tc-lp2026-dr-progress {
  position: fixed;
  z-index: 5;
  left: clamp(20px, 3.2vw, 56px);
  top: 50%;
  transform: translateY(-50%);
  width: 3px;
  height: clamp(96px, 24vh, 180px);
  opacity: 0;
  transition: opacity .4s ease;
  pointer-events: none;
}
.tc-lp2026-dr-progress.is-visible { opacity: 1; }
.tc-lp2026-dr-progress-track {
  position: absolute;
  left: 1px; top: 0;
  width: 1px; height: 100%;
  background: rgba(137,200,223,.35);
}
.tc-lp2026-dr-progress-active {
  position: absolute;
  left: 0; top: 0;
  width: 3px;
  height: calc(var(--tc-dr-p, 0) * 100%);
  background: #89c8df;
}

/* === 個別ドクター画面：メッセージ（stage8・SP） === */
.tc-lp2026-dr-msg {
  position: absolute;
  z-index: 3;
  left: 50%;
  bottom: 4vh;
  transform: translateX(-50%);
  width: min(88%, 520px);
  display: flex;
  flex-direction: column;
  gap: clamp(16px, 3vh, 26px);
}
.tc-lp2026-dr-msg-title {
  margin: 0;
  font-family: 'Noto Serif JP', serif;
  font-weight: 500;
  color: #ffffff;
  font-size: clamp(20px, 5.6vw, 26px);
  line-height: 1.7;
  letter-spacing: .12em;
  font-feature-settings: "palt" 1, "kern" 1;
}
.tc-lp2026-dr-msg-body {
  margin: 0;
  color: #d4d4d4;
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(12px, 3.4vw, 14px);
  line-height: 1.95;
  text-align: justify;
  text-justify: inter-character;
  font-feature-settings: "palt" 1, "kern" 1;
}
.tc-lp2026-dr-promises {
  display: flex;
  align-items: stretch;
  gap: clamp(14px, 4vw, 24px);
}
.tc-lp2026-dr-promises-box {
  flex: none;
  width: clamp(118px, 33vw, 165px);
  height: auto;
  object-fit: contain;
  align-self: stretch;
}
.tc-lp2026-dr-promises-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: clamp(12px, 3vw, 18px);
}
.tc-lp2026-dr-promises-list li {
  display: flex;
  align-items: center;
  gap: clamp(9px, 2.4vw, 13px);
  color: #9eb6c6;
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(13px, 3.7vw, 16px);
  line-height: 1.5;
  letter-spacing: .03em;
}
.tc-lp2026-dr-check {
  flex: none;
  width: clamp(21px, 5.6vw, 27px);
  height: auto;
}

/* === 個別ドクター画面（PC：2カラム） === */
@media (min-width: 768px) {
  /* 背景は新素材（青×無影灯）。SP用jpgは隠す */
  .tc-lp2026-dr-screen:has(.tc-lp2026-dr-bg) {
    background: url("assets/6th-doctors-back_pc.jpg") center center / cover no-repeat;
  }
  .tc-lp2026-dr-bg { display: none; }

  /* 左の縦罫線アクセントは非表示（進捗バー隣の薄線を削除） */
  .tc-lp2026-dr-vline { display: none; }

  /* 左：ドクター写真（固定エリア下端揃え・等倍） */
  .tc-lp2026-dr-photo {
    top: auto;
    bottom: 0;
    left: clamp(20px, 4vw, 90px);
    width: auto;
    height: min(96vh, 1040px);
    object-fit: contain;
    object-position: bottom left;
    z-index: 2;
  }

  /* 下部の大きな氏名（ローマ字）。ブラウザ右端に配置・写真が左側に重なる */
  .tc-lp2026-dr-wm {
    top: auto;
    bottom: clamp(-8px, 2vh, 28px);
    left: auto;
    right: 40px;   /* ローマ字名右端とウィンドウ右端の間隔を全員40pxに統一 */
    transform: none;
    height: 4.66vw;   /* 文字サイズを高さで統一（基準：4人目）。幅は自動で名前長に応じて変化 */
    width: auto;
    max-width: 58vw;
    text-align: right;
    opacity: .5;   /* ローマ字氏名は透明度50%（モバイルと統一。JS側も0.5上限） */
    z-index: 1;
  }

  /* 右：肩書き＋氏名＋バッジ／本文／症例。固定エリア全体の高さに対して縦センター配置
     （症例画像を縮小せずに収める）。ローマ字氏名(.tc-lp2026-dr-wm)は別要素で下部固定。 */
  .tc-lp2026-dr-detail {
    position: absolute;
    left: 50vw;
    right: max(28px, calc(50vw - 562px));   /* 第3段落コンテンツ右端（max-width1180＋padding28）に揃える */
    top: 0;
    bottom: 0;
    transform: none;
    width: auto;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: center;   /* 固定エリア全高に対して中身を縦センター（JSのscale transformと干渉しない） */
    gap: clamp(20px, 3.2vh, 40px);
  }
  .tc-lp2026-dr-infowrap {
    position: relative;
    display: block;
    width: 100%;
    max-width: 620px;
    margin: 0 auto;
  }
  .tc-lp2026-dr-info {
    filter: drop-shadow(0 2px 14px rgba(0,0,0,.30));
  }
  .tc-lp2026-dr-bio {
    width: 100%;
    color: #afafaf;
    font-size: clamp(14px, 1.02vw, 17px);
    line-height: 2.05;
    letter-spacing: .02em;
  }
  .tc-lp2026-dr-case {
    width: 100%;
    max-width: 720px;
  }
  /* プランC：写真が本文カラムへ過剰に侵入しないよう横幅の上限を設定（標準比率では無変化）。 */
  .tc-lp2026-dr-photo { max-width: 49vw; }
  /* ドクター1人目：本文末尾の注釈（PCはgapが異なるため詰め直し） */
  .tc-lp2026-dr-bio-note {
    max-width: 720px;
    margin-top: calc(-1 * (clamp(20px, 3.2vh, 40px) - 6px));
    font-size: 11px;
  }

  /* --- メッセージ（stage8・PC） --- */
  .tc-lp2026-dr-screen--msg .tc-lp2026-dr-wm { display: none; }   /* ローマ字氏名は非表示（個別7人目は表示のまま） */
  .tc-lp2026-dr-screen--msg .tc-lp2026-dr-vline {
    display: none;
  }
  .tc-lp2026-dr-msg {
    position: absolute;
    left: 45vw;
    right: max(28px, calc(50vw - 562px));   /* 第3段落コンテンツ右端に揃える */
    top: 50%;
    bottom: auto;
    transform: translateY(-50%);
    width: auto;
    gap: clamp(28px, 3.4vh, 48px);
  }
  .tc-lp2026-dr-msg-title {
    font-size: clamp(28px, 2.7vw, 46px);
    line-height: 1.6;
    letter-spacing: .12em;
  }
  .tc-lp2026-dr-msg-body {
    font-size: clamp(15px, 1.18vw, 20px);
    line-height: 2.05;
    letter-spacing: .03em;
  }
  .tc-lp2026-dr-promises {
    align-items: center;
    gap: clamp(30px, 3vw, 56px);
  }
  .tc-lp2026-dr-promises-box {
    width: clamp(170px, 13vw, 215px);
    align-self: stretch;
  }
  .tc-lp2026-dr-promises-list { gap: clamp(16px, 1.8vw, 26px); }
  .tc-lp2026-dr-promises-list li { font-size: clamp(17px, 1.3vw, 23px); white-space: nowrap; gap: clamp(12px, 1vw, 16px); }
  .tc-lp2026-dr-promises-list .tc-lp2026-dr-check { width: clamp(28px, 2vw, 36px); }
  .tc-lp2026-dr-promises-list li br { display: none; }   /* PCは1行 */
}


/* =================================================================
   第6段落 プランA（PC縦長ウィンドウ限定）
   - 固定ステージを 16:9 の contain バンドにして中央配置。上下の余白には前後コンテンツが覗く。
   - バンドを container にして、中身（写真・詳細テキスト・氏名ローマ字）をコンテナ単位でスケール。
   - 標準（横長）比率には一切影響しない（このメディアクエリは max-aspect-ratio:4/5 のときだけ発火）。
   ================================================================= */
@media (min-width: 768px) and (max-aspect-ratio: 4 / 5) {
  .tc-lp2026-dr-stage {
    height: 56.25vw;                      /* 16:9 バンド */
    top: calc((100svh - 56.25vw) / 2);
    container-type: size;
  }
  /* 左：写真はバンド下端揃え・バンド高さに追従 */
  .tc-lp2026-dr-photo {
    height: 90cqh;
    max-width: 49cqw;
    left: 2cqw;
  }
  /* 氏名ローマ字（下部・右） */
  .tc-lp2026-dr-wm {
    bottom: 1cqh;
    right: 3cqw;
    width: 56cqw;
  }
  /* 右：詳細テキスト（肩書き＋氏名／本文／症例）。バンドに収まるようコンテナ単位でスケール */
  .tc-lp2026-dr-detail {
    left: 50cqw;
    right: 3cqw;
    top: 13cqh;
    gap: 3cqh;
  }
  .tc-lp2026-dr-infowrap { max-width: 46cqw; }
  .tc-lp2026-dr-bio {
    font-size: 1.9cqw;
    line-height: 1.9;
  }
  .tc-lp2026-dr-bio-note {
    margin-top: calc(-1 * (3cqh - 4px));
    font-size: max(9px, 1.2cqw);
  }
  .tc-lp2026-dr-case {
    max-width: 46cqw;
    max-height: 26cqh;      /* バンド内に確実に収める（千切れ防止） */
  }
  /* メッセージ画面もバンド内中央に */
  .tc-lp2026-dr-msg { left: 46cqw; right: 3cqw; }
  .tc-lp2026-dr-msg-title { font-size: 3.4cqw; }
  .tc-lp2026-dr-msg-body { font-size: 1.9cqw; }
  .tc-lp2026-dr-promises-box { width: 16cqw; }
  .tc-lp2026-dr-promises-list li { font-size: 2cqw; }
  .tc-lp2026-dr-promises-list .tc-lp2026-dr-check { width: 2.6cqw; }
}


