/* ==========================================================================
   c3-top.css — C3コーポレートTOPページ専用スタイル
   対象: /c3-preview/（本番切替後は / に昇格）
   前提: base.css / layout.css / components.css が読み込み済みであること
   設計言語: 紙白・墨・朱・明朝・細罫線。「図面の中で、動く」
   ========================================================================== */

/* --------------------------------------------------------------------------
   C3 デザイントークン
   全ページC3化フェーズで base.css :root に統合する。
   それまでここで一元管理する。
   -------------------------------------------------------------------------- */
:root {
  --c3-bg:           #fafaf8;              /* 紙白 */
  --c3-ink:          #1a1a1a;              /* 墨 */
  --c3-vermilion:    #B3424A;              /* 朱（落款・CTA下線・見出し下バー） */
  --c3-rule:         rgba(26,26,26,.22);   /* 主要罫線（外枠・セクション区切り） */
  --c3-rule-light:   rgba(26,26,26,.12);   /* 淡罫線（セクション内区切り） */
  --c3-rule-faint:   rgba(26,26,26,.06);   /* 補助グリッド線 */
  --c3-text-muted:   rgba(26,26,26,.55);   /* 補助テキスト（ラベル・英字） */
  --c3-text-body:    rgba(26,26,26,.82);   /* 本文テキスト */
  --c3-font-serif:   'Noto Serif JP', serif;
  --c3-container:    1200px;
  --c3-header-h:     64px;
  /* ダーク帯（QUESTION/CTA）用 */
  --c3-dark-bg:      #1a1a1a;
  --c3-dark-text:    #fafaf8;
  --c3-dark-rule:    rgba(250,250,248,.2);
  --c3-dark-muted:   rgba(250,250,248,.6);
  --c3-dark-body:    rgba(250,250,248,.85);
  /* イージング */
  --transition-entry: cubic-bezier(0.16,1,0.3,1);
  /* 表題欄横罫線（区画境界線: 濃墨・図面グリッド補助線と別格） */
  --c3-rule-strong:  rgba(26,26,26,.9);
  /* 面取り(チャンファー) — 対角2箇所: 左上+右下 8px */
  --c3-chamfer: polygon(8px 0%, 100% 0%, 100% calc(100% - 8px), calc(100% - 8px) 100%, 0% 100%, 0% 8px);
  /* ── 白被せシーケンス ── */
  --state-exposure: 100vh;  /* 筒が見える露出区間(後から刻み可) */
  /* English font alias */
  --c3-font-en: 'Inter', sans-serif;
}

/* --------------------------------------------------------------------------
   ページ基盤
   -------------------------------------------------------------------------- */
.c3-page {
  background-color: var(--c3-bg);
  color: var(--c3-ink);
}

/* コンテンツ全体を包む骨格コンテナ */
.c3-wrap {
  position: relative;
  max-width: var(--c3-container);
  margin: 0 auto;
  border-left:  1px solid var(--c3-rule);
  border-right: 1px solid var(--c3-rule);
}

/* 補助グリッド縦線（25%/50%/75%） */
.c3-col-guide {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 1px;
  background: var(--c3-rule-faint);
  pointer-events: none;
}
.c3-col-guide--25 { left: 25%; }
.c3-col-guide--50 { left: 50%; }
.c3-col-guide--75 { left: 75%; }

/* --------------------------------------------------------------------------
   共通コンポーネント
   -------------------------------------------------------------------------- */

/* 水平細罫線 */
.c3-rule-h {
  height: 1px;
  background: var(--c3-rule);
  position: relative;
  overflow: hidden; /* rule flash の ::after をクリップ */
}
.c3-rule-h--light {
  background: var(--c3-rule-light);
}
.c3-rule-h--strong {
  background: var(--c3-rule-strong);
  height: 2px;
}

/* セクション表題欄（図面の表題欄タブ）: 区画境界線の直下に下がる表札 */
.c3-section-header {
  position: relative;
  height: 36px;
  margin-top: 8px;    /* 罫線から直下 8px 離れて下がる */
  background: transparent;
  display: flex;
  align-items: center;
  padding: 0 0 0 48px;
  pointer-events: none;
}
.c3-section-header__label {
  /* 紙白の小さな地 */
  background: var(--c3-bg);
  border: 1px solid rgba(26,26,26,.35);
  padding: 0 18px;
  height: 32px;
  display: flex;
  align-items: center;
  font-family: var(--font-en);
  font-size: 11px;
  letter-spacing: .38em;
  text-transform: uppercase;
  color: var(--c3-ink);
  white-space: nowrap;
}
.c3-section-header__stamp-cell {
  margin-left: auto;
  background: var(--c3-bg);
  width: 36px;
  height: 36px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  border-left: 1px solid var(--c3-rule-light);
}
.c3-section-header__stamp-cell .c3-stamp {
  width: 24px;
  height: 24px;
}
.c3-section-header__stamp-cell .c3-stamp .c3-stamp__char {
  font-size: 13px;
}
.c3-section-header__stamp-cell .c3-stamp::before,
.c3-section-header__stamp-cell .c3-stamp::after {
  width: 5px;
  height: 5px;
}

/* セクションラベル（QUESTION 等・個別用） */
.c3-label {
  font-family: var(--font-en);
  font-size: 11px;
  letter-spacing: .3em;
  color: var(--c3-text-muted);
  text-transform: uppercase;
}

/* 朱の下線バー */
.c3-red-bar {
  width: 32px;
  height: 2px;
  background: var(--c3-vermilion);
  margin-top: 26px;
}

/* 朱の落款（正方形ボックス + 漢字 + 隅飾り） */
.c3-stamp {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(26,26,26,.35);
  flex-shrink: 0;
}
.c3-stamp__char {
  font-family: var(--c3-font-serif);
  font-weight: 500;
  color: var(--c3-vermilion);
  line-height: 1;
}
/* 隅飾り（左上・右下） */
.c3-stamp::before,
.c3-stamp::after {
  content: '';
  position: absolute;
  width: 9px;
  height: 9px;
}
.c3-stamp::before {
  top: -1px;
  left: -1px;
  border-top:  1px solid var(--c3-ink);
  border-left: 1px solid var(--c3-ink);
}
.c3-stamp::after {
  bottom: -1px;
  right: -1px;
  border-bottom: 1px solid var(--c3-ink);
  border-right:  1px solid var(--c3-ink);
}

/* 黒帯セクション（QUESTION / CTA） */
.c3-dark-band {
  background: var(--c3-dark-bg);
  color: var(--c3-dark-text);
  box-shadow: inset 1px 0 0 var(--c3-dark-rule), inset -1px 0 0 var(--c3-dark-rule);
}

/* ボタン */
.c3-btn {
  display: inline-block;
  font-size: 14px;
  letter-spacing: .1em;
  white-space: nowrap;
  cursor: pointer;
  text-decoration: none;
  transition: opacity .25s ease;
}
.c3-btn:hover { opacity: .82; }
.c3-btn--primary {
  background: var(--c3-ink);
  color: var(--c3-bg);
  padding: 16px 40px;
  border-bottom: 2px solid var(--c3-vermilion);
  position: relative;
  overflow: hidden;
  clip-path: var(--c3-chamfer);
}
.c3-btn--primary:hover {
  border-bottom-width: 3px;
  opacity: 1; /* .c3-btn:hover のデフォルト opacity:.82 を上書き */
}
.c3-btn--primary::after {
  content: '縁';
  position: absolute;
  font-family: var(--c3-font-serif);
  font-size: 34px;
  line-height: 1;
  color: rgba(250,250,248,0);
  right: 8px;
  bottom: -6px;
  pointer-events: none;
  transition: color .3s ease, bottom .3s ease;
}
.c3-btn--primary:hover::after {
  color: rgba(250,250,248,.07);
  bottom: -2px;
}
.c3-btn--outline {
  border: 1px solid var(--c3-ink);
  color: var(--c3-ink);
  padding: 15px 40px;
  background: transparent;
}
.c3-btn--ghost {
  color: var(--c3-ink);
  border-bottom: 1px solid rgba(26,26,26,.4);
  padding-bottom: 4px;
  font-size: 13px;
  letter-spacing: .12em;
}
.c3-btn--full { display: block; width: 100%; text-align: center; }
/* 白ベース（黒帯内のCTA） */
.c3-btn--light {
  background: var(--c3-dark-text);
  color: var(--c3-dark-bg);
  padding: 17px 48px;
  clip-path: var(--c3-chamfer);
}

/* 人物写真は常時白黒（将来の本番写真撮り直しにも自動適用） */
.c3-portrait { filter: grayscale(1); }

/* --------------------------------------------------------------------------
   [UX-A] フォーカスリング — キーボードナビゲーション対応
   -------------------------------------------------------------------------- */
/* 通常要素: 2px 朱アウトライン + 3px オフセット */
.c3-header__nav-link:focus-visible,
.c3-header__hamburger:focus-visible,
.c3-drawer__close:focus-visible,
.c3-drawer__nav-link:focus-visible,
.c3-btn--outline:focus-visible,
.c3-btn--ghost:focus-visible {
  outline: 2px solid var(--c3-vermilion);
  outline-offset: 3px;
}
/* chamfer clip-path 要素: clip-path が外側 outline をクリップするため inset で代替
   .c3-btn--primary/.c3-btn--light/.c3-header__cta すべてに clip-path:var(--c3-chamfer)適用 */
.c3-btn--primary:focus-visible,
.c3-btn--light:focus-visible {
  outline: none;
  box-shadow: inset 0 0 0 2px rgba(250,250,248,.9); /* 暗色背景上の白リング */
}
.c3-header__cta:focus-visible {
  outline: none;
  opacity: 1;
  box-shadow: inset 0 0 0 2px rgba(250,250,248,.9);
}

/* data-reveal アニメーション用の初期状態（no-preference 時のみ） */
@media (prefers-reduced-motion: no-preference) {
  [data-reveal] {
    opacity: 0;
    transform: translateY(14px);
    transition: opacity .7s ease, transform .7s ease;
  }
  [data-reveal].is-visible {
    opacity: 1;
    transform: none;
  }
  /* h1/h3: 墨の定着（にじみ→シャープ） */
  h1[data-reveal], h3[data-reveal] {
    filter: blur(4px);
  }
  /* h2: 図面デコードアニメーション（JS が .c3-decoding を付与・span 制御） */
  h2[data-reveal].c3-decoding {
    opacity: 1;
    transform: none;
    filter: none;
    transition: none;
  }
  /* 水平線のスライドイン */
  [data-line="h"] {
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 1.1s cubic-bezier(.22,.61,.21,1);
  }
  [data-line="h"].is-visible {
    transform: scaleX(1);
  }
  /* 罫線: スライドイン完了後に細い光が一度走る（JS が c3-rule--flashed を付与） */
  .c3-rule--flashed::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(
      to right,
      transparent 0%,
      rgba(26,26,26,.65) 30%,
      rgba(26,26,26,.65) 55%,
      transparent 85%
    );
    transform: translateX(-100%);
    animation: c3-rule-flash .75s cubic-bezier(.25,0,.25,1) forwards;
  }
  @keyframes c3-rule-flash {
    from { transform: translateX(-100%); }
    to   { transform: translateX(200%); }
  }
}

/* --------------------------------------------------------------------------
   ヘッダー（C3専用）
   -------------------------------------------------------------------------- */
.c3-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 60;
  background: var(--c3-bg);
  border-bottom: 1px solid var(--c3-rule);
  height: var(--c3-header-h);
}
.c3-header__inner {
  max-width: var(--c3-container);
  margin: 0 auto;
  padding: 0 48px;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}
.c3-header__logo { display: flex; align-items: center; flex-shrink: 0; }
.c3-header__logo-img { height: 28px; width: auto; display: block; }

.c3-header__nav { display: none; }
.c3-header__nav-list {
  list-style: none;
  display: flex;
  align-items: center;
  gap: 28px;
}
.c3-header__nav-link {
  font-size: 13px;
  letter-spacing: .08em;
  color: var(--c3-ink);
  text-decoration: none;
  white-space: nowrap;
  transition: color .2s ease;
  position: relative;
}
.c3-header__nav-link::after {
  content: '';
  position: absolute;
  bottom: -2px;
  left: 0;
  width: 0;
  height: 1px;
  background: var(--c3-vermilion);
  transition: width .3s ease;
}
.c3-header__nav-link:hover { color: var(--c3-vermilion); }
.c3-header__nav-link:hover::after { width: 100%; }

.c3-header__cta {
  display: inline-flex;
  align-items: center;
  font-size: 13px;
  letter-spacing: .1em;
  white-space: nowrap;
  background: var(--c3-ink);
  color: var(--c3-bg);
  border-bottom: 2px solid var(--c3-vermilion);
  padding: 10px 20px;
  text-decoration: none;
  transition: opacity .25s ease;
  flex-shrink: 0;
  clip-path: var(--c3-chamfer);
}
.c3-header__cta:hover { opacity: .82; }

/* ハンバーガー */
.c3-header__hamburger {
  display: flex;
  flex-direction: column;
  gap: 5px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 16px 12px; /* [D] 縦16px: 16+13+16=45px・横12px: 12+20+12=44px 両軸44px確保 */
  flex-shrink: 0;
}
.c3-header__hamburger-bar {
  display: block;
  width: 20px;
  height: 1px;
  background: var(--c3-ink);
  transition: transform .25s ease, opacity .25s ease;
}

/* ドロワー */
.c3-drawer {
  position: fixed;
  inset: 0;
  z-index: 70;
  pointer-events: none;
}
.c3-drawer[aria-hidden="false"] { pointer-events: auto; }
.c3-drawer__overlay {
  position: absolute;
  inset: 0;
  background: rgba(26,26,26,.4);
  opacity: 0;
  transition: opacity .3s ease;
}
.c3-drawer[aria-hidden="false"] .c3-drawer__overlay { opacity: 1; }
.c3-drawer__panel {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: min(320px, 85vw);
  background: var(--c3-bg);
  border-left: 1px solid var(--c3-rule);
  transform: translateX(100%);
  transition: transform .3s ease;
  display: flex;
  flex-direction: column;
  padding-top: var(--c3-header-h);
}
.c3-drawer[aria-hidden="false"] .c3-drawer__panel { transform: translateX(0); }

.c3-drawer__close {
  position: absolute;
  top: 8px;    /* [B] 18px→8px: 視覚中心を維持(18+12=30 → 8+22=30) */
  right: 10px; /* [B] 20px→10px: 視覚中心を維持(20+12=32 → 10+22=32) */
  background: none;
  border: none;
  cursor: pointer;
  width: 44px;  /* [B] 24px→44px: タップ領域を最低基準に拡張 */
  height: 44px; /* [B] 24px→44px */
  padding: 0;
}
.c3-drawer__close span {
  display: block;
  width: 20px;
  height: 1px;
  background: var(--c3-ink);
  position: absolute;
  top: 50%;
  left: 50%; /* [B] 2px→50%: 44px幅内で中央揃え */
}
.c3-drawer__close span:first-child  { transform: translate(-50%) rotate(45deg); }
.c3-drawer__close span:last-child   { transform: translate(-50%) rotate(-45deg); }

.c3-drawer__nav { padding: 8px 0; }
.c3-drawer__nav-list { list-style: none; }
.c3-drawer__nav-link {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 16px 24px;
  border-bottom: 1px solid var(--c3-rule-light);
  font-size: 14px;
  letter-spacing: .1em;
  color: var(--c3-ink);
  text-decoration: none;
}
.c3-drawer__nav-link::before {
  content: '';
  display: block;
  width: 14px;
  height: 1px;
  background: var(--c3-rule);
  flex-shrink: 0;
}
.c3-drawer__cta { padding: 24px; margin-top: auto; }

/* --------------------------------------------------------------------------
   フッター（C3専用）
   -------------------------------------------------------------------------- */
.c3-footer {
  position: relative;
  background: var(--c3-bg);
  /* border-top 撤去: 代わりにフッター内側の左右縦罫線でグリッドを延長 */
}
/* フッター背骨: c3-wrap の外にあるため ::before で中心線を延伸 */
.c3-footer::before {
  content: '';
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 1px;
  background: var(--c3-rule-faint);
  pointer-events: none;
}
.c3-footer__inner {
  max-width: var(--c3-container);
  margin: 0 auto;
  padding: 56px 48px 24px;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 40px;
  flex-wrap: wrap;
  /* グリッド縦罫線をフッターまで延長 */
  border-left:  1px solid var(--c3-rule);
  border-right: 1px solid var(--c3-rule);
}
.c3-footer__logo-img { height: 24px; width: auto; display: block; }
.c3-footer__nav-list {
  list-style: none;
  display: flex;
  gap: 24px;
  flex-wrap: wrap;
}
.c3-footer__nav-link {
  font-size: 12px;
  letter-spacing: .08em;
  color: rgba(26,26,26,.7);
  text-decoration: none;
  white-space: nowrap;
  transition: color .2s ease;
}
.c3-footer__nav-link:hover { color: var(--c3-ink); }

.c3-footer__rule {
  max-width: var(--c3-container);
  margin: 0 auto;
  height: 1px;
  background: var(--c3-rule-light);
  /* margin-top を 0 に: 上の24pxは __inner の padding-bottom が担保するため */
  margin-top: 0;
  border-left:  1px solid var(--c3-rule);
  border-right: 1px solid var(--c3-rule);
}
.c3-footer__bottom {
  max-width: var(--c3-container);
  margin: 0 auto;
  padding: 20px 48px 32px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  border-left:  1px solid var(--c3-rule);
  border-right: 1px solid var(--c3-rule);
}
.c3-footer__address,
.c3-footer__copyright {
  font-size: 11px;
  letter-spacing: .1em;
  color: rgba(26,26,26,.55);
}

/* --------------------------------------------------------------------------
   メインコンテンツ
   -------------------------------------------------------------------------- */
.c3-main {
  padding-top: var(--c3-header-h);
}

/* --------------------------------------------------------------------------
   [01] HERO
   -------------------------------------------------------------------------- */
.c3-hero {
  position: relative;
  padding-top: var(--c3-header-h); /* c3-wrap は c3-main でなくルート直下のため、ここで固定ヘッダー分を補正 */
}
/* ─── HERO v3: 静的コピーH1 + 住人右寄せ拡大 + 円形回転文字 ─── */

/* FVステージ */
.c3-hero__stage {
  position: relative;
  min-height: calc(100svh - var(--c3-header-h));
  overflow: hidden;
}

/* ① 静的コピーH1 (左上・デコード演出 z-index:3) */
.c3-hero__heading {
  position: absolute;
  top: clamp(52px, 9svh, 108px);
  left: 48px;
  z-index: 3;
  margin: 0;
  font-family: var(--c3-font-serif);
  font-size: clamp(50px, 7.7vw, 96px);  /* PC微調整: 100px→96px(−4%) 重なり解消 */
  font-weight: 400;
  line-height: 1.18;
  color: var(--c3-ink);
  letter-spacing: .03em;
  pointer-events: none;
  user-select: none;
  max-width: none;
  white-space: nowrap; /* <br>のみで改行・それ以外は折り返し禁止 */
}

/* ② 円形回転文字(背面レイヤー z-index:1): 右上見切れ大胆化 */
.c3-hero__orbit {
  position: absolute;
  top: -24%;                          /* 8巡目: center Y≈224px VP 弧底部560px(62%VP) 上半身を大きく回る */
  left: auto;
  right: -13%;                        /* 8巡目: center X≈1119px VP(78%) 入り57%→底62%→右端36%へ */
  transform: none;
  width: clamp(480px, 52vw, 720px);
  height: clamp(480px, 52vw, 720px);
  z-index: 1;
  pointer-events: none;
}
.c3-hero__orbit svg {
  width: 100%;
  height: 100%;
  overflow: visible;
}
.c3-hero__orbit text {
  font-family: var(--font-en);
  font-size: 9px;   /* 7巡目: 10px→9px(−10%) */
  fill: rgba(26,26,26,.55);
  letter-spacing: .30em;  /* 9巡目: .20em→.30em ゆったり化 */
}
@media (prefers-reduced-motion: no-preference) {
  .c3-hero__orbit svg {
    animation: c3-orbit 36s linear infinite;
    transform-origin: 50% 50%;
  }
}
@keyframes c3-orbit {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}

/* SP orbit クリッピングコンテナ(SP11): PC 非表示。SP では57%ラインでクロップ */
.c3-hero__vis {
  display: none;
  pointer-events: none;
}

/* SP orbit: PC では非表示。位置・サイズは inline style が単一の真実源 */
.c3-hero__orbit-sp {
  display: none;
  pointer-events: none;
  z-index: 1;
}
.c3-hero__orbit-sp svg {
  width: 100%;
  height: 100%;
  overflow: visible;
}
.c3-hero__orbit-sp text {
  font-family: var(--font-en);
  fill: rgba(26,26,26,.55);
  letter-spacing: .30em;
}
@media (prefers-reduced-motion: no-preference) {
  .c3-hero__orbit-sp svg {
    animation: c3-orbit 36s linear infinite;
    transform-origin: 50% 50%;
  }
}

/* ③ 透過住人動画(中面レイヤー z-index:2): 右寄せ拡大 */
.c3-hero__figure {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
}
.c3-hero__video {
  position: absolute;
  bottom: -43%;  /* 6巡目: hat≈226px from stage top (笠 VP上から約32%) */
  left: 48%;     /* 6巡目: 人物中心 VP幅約71% */
  height: 138%;  /* 1.3倍(2巡目維持) */
  width: auto;
  object-fit: contain;
  pointer-events: none;
  transition: opacity 0.3s ease;
}

/* ④ 左下: リード文・CTAボタン (z-index:3)
   SP フルスクリーン化で stage 外に移動 → PC は .c3-hero 基準で絶対配置
   (padding-top=64px 分を上乗せ済: stage内 max(416px,100%-206px) → hero基準 max(clamp+428,100svh-206px)) */
.c3-hero__info {
  position: absolute;
  top: max(
    calc(clamp(52px, 9svh, 108px) + 428px),
    calc(100svh - 206px)
  );
  bottom: auto;
  left: 48px;
  z-index: 3;
  max-width: 380px;
}
.c3-hero__sub {
  font-size: 13px;
  line-height: 1.85;
  letter-spacing: .04em;
  color: var(--c3-text-body);
  margin: 0 0 24px;
}
.c3-hero__btns {
  display: flex;
  align-items: center;
  gap: 24px;
  flex-wrap: wrap;
}

/* ④ 「届」落款 (右下・前面レイヤー z-index:4) */
.c3-hero__stamp {
  position: absolute;
  bottom: 44px;
  right: 44px;
  z-index: 4;
  width: 100px;
  height: 100px;
  background: var(--c3-bg);
}
.c3-hero__stamp .c3-stamp__char {
  font-size: 48px;
}

/* 三方良し帯 */
.c3-hero__sanpo {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  text-align: center;
}
.c3-hero__sanpo-item {
  padding: 20px 12px;
  font-family: var(--c3-font-serif);
  font-size: 15px;
  letter-spacing: .18em;
  word-break: keep-all;
  color: var(--c3-ink);
}
.c3-hero__sanpo-item + .c3-hero__sanpo-item {
  border-left: 1px solid var(--c3-rule);
}

/* 最下部英字帯 */
.c3-hero__band {
  padding: 13px 48px;
  font-family: var(--font-en);
  font-size: 10px;
  letter-spacing: .3em;
  color: var(--c3-text-muted);
  text-align: center;
}

/* --------------------------------------------------------------------------
   [02] QUESTION（黒帯）
   -------------------------------------------------------------------------- */
.c3-question {
  position: relative;
}
.c3-question__grid {
  display: grid;
  grid-template-columns: 25% 1fr;
}
.c3-question__side {
  border-right: 1px solid var(--c3-dark-rule);
  padding: 88px 24px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 40px;
}
.c3-question__side-label {
  font-family: var(--font-en);
  font-size: 11px;
  letter-spacing: .3em;
  color: var(--c3-dark-muted);
}
.c3-question__stamp {
  width: 96px;
  height: 96px;
  border-color: rgba(250,250,248,.35);
}
.c3-question__stamp::before { border-color: var(--c3-dark-text); }
.c3-question__stamp::after  { border-color: var(--c3-dark-text); }
.c3-question__stamp .c3-stamp__char { font-size: 46px; }
.c3-question__body {
  padding: 88px 48px;
}
.c3-question__title {
  margin: 0;
  font-family: var(--c3-font-serif);
  font-weight: 600;
  font-size: clamp(26px, 3vw, 38px);
  line-height: 1.65;
  letter-spacing: .04em;
  word-break: keep-all;
  text-wrap: pretty;
  color: var(--c3-dark-text);
}
.c3-question__bar { background: var(--c3-vermilion); }
.c3-question__text {
  margin: 28px 0 0;
  max-width: 620px;
  font-size: 15px;
  line-height: 2.2;
  letter-spacing: .04em;
  color: var(--c3-dark-body);
}

/* --------------------------------------------------------------------------
   [03] 宣言
   -------------------------------------------------------------------------- */
/* 強罫線の上: 前セクション終わりの「間」(大) / 下: 表札→h2 を詰める(小) */
.c3-declaration,
.c3-services,
.c3-promise,
.c3-works,
.c3-message {
  padding-top: 72px;
}
/* SERVICES の padding-top を 0 にしてアウトカム帯と太罫を直結 */
.c3-services { padding-top: 0; }
/* ── 変換の筒: 導入見出し ── */
.c3-tube-section__intro {
  max-width: 1340px;
  margin: 0 auto;
  padding: 64px 48px 80px;
}
.c3-tube-section__lead {
  font-family: var(--c3-font-serif);
  font-size: clamp(30px, 3.6vw, 56px);
  font-weight: 400;
  letter-spacing: .04em;
  line-height: 1.5;
  color: var(--c3-ink);
  margin: 0;
}
.c3-tube-section__sub {
  margin: 20px 0 0;
  font-size: clamp(15px, 1.2vw, 17px);
  line-height: 2;
  letter-spacing: .04em;
  color: var(--c3-text-body);
}

/* ── 3カラムグリッド ──
   中央セルを stretch でグリッド高に合わせ、sticky が有効距離を確保する */
.c3-tube-grid {
  display: grid;
  grid-template-columns: 1fr 410px 1fr;
  gap: 0 48px;
  max-width: 1340px;
  margin: 0 auto;
  padding: 0 48px 80px;
  overflow: visible; /* html/body overflow-x:clip の伝播を遮断 */
}
/* HTML順は center→left→right (SP冒頭に筒を出すため)。
   grid-row:1 を明示して3アイテムを同一行に強制配置。
   ※ grid-column 指定だけでは auto-placement がleftをrow2へ押し出しstickyの可動域ゼロになる */
/* z-index 明示: 左列(2) > 中央列(1) → 工程札stacking contextが筒より手前 */
.c3-tube-grid__center { grid-column: 2; grid-row: 1; position: relative; z-index: 1; }
.c3-tube-grid__left   { grid-column: 1; grid-row: 1; align-self: start; position: relative; z-index: 2; overflow: visible; padding-top: var(--state-exposure); min-width: 0; }
.c3-tube-grid__right  { grid-column: 3; grid-row: 1; align-self: start; min-width: 0; }
/* 中央セル: デフォルト stretch → sticky 有効距離を確保 */

/* ── sticky 筒ラッパー ── */
.c3-tube-wrap {
  position: sticky;
  top: 80px;
  height: calc(100vh - 80px - 40px);
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 24px 0 16px;
}

/* 筒前面ラベル */
.c3-tube-label {
  position: relative;
  width: 100%;
  height: 34px;
  margin-bottom: 14px;
  text-align: center;
}
.c3-tube-label__text {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--c3-font-serif);
  font-size: 15px;
  letter-spacing: .22em;
  color: rgba(26,26,26,.72);
  opacity: 0;
  transition: opacity .75s ease;
}
.c3-tube-label__text.is-active { opacity: 1; }

/* 筒シルエット(ガラス標本筒) */
.c3-tube {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 152px;
  flex: 1;
  max-height: 580px;
}
.c3-tube__ring {
  width: 176px;
  height: 26px;
  border: 1.5px solid rgba(26,26,26,.35);
  border-bottom: 0;
  border-radius: 5px 5px 0 0;
  background: rgba(26,26,26,.025);
}
.c3-tube__body {
  position: relative;
  width: 100%;
  flex: 1;
  border-left:  1.5px solid rgba(26,26,26,.25);
  border-right: 1.5px solid rgba(26,26,26,.25);
  overflow: hidden;
  background: rgba(250,250,248,.55);
}
/* ガラス光沢(左端縦ハイライト) */
.c3-tube__body::before {
  content: '';
  position: absolute;
  left: 7px; top: 0; bottom: 0;
  width: 1.5px;
  background: linear-gradient(to bottom,
    rgba(255,255,255,0),
    rgba(255,255,255,.44) 20%,
    rgba(255,255,255,.44) 80%,
    rgba(255,255,255,0));
  pointer-events: none;
  z-index: 2;
}
.c3-tube__base {
  width: 100%;
  height: 34px;
  border: 1.5px solid rgba(26,26,26,.32);
  border-top: 0;
  border-radius: 0 0 76px 76px;
  background: rgba(26,26,26,.03);
}

/* 筒内 4状態(クロスフェード) */
.c3-tube__content {
  position: absolute;
  inset: 0;
}
.c3-tube__state {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity .75s ease;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 10px;
}
.c3-tube__state.is-active { opacity: 1; }
.c3-tube__inner-svg {
  display: block;
  width: 100%;
  height: 100%;
}
.c3-tube__dancer-wrap {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 30%;
  aspect-ratio: 9 / 16;
  overflow: hidden;
  pointer-events: none;
  z-index: 1;
}
.c3-tube__dancer {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* ── 実素材 筒: 3層構造（tube-main.png 775×1314 / 1:1.7どっしり型） ── */
.c3-tube-new {
  position: relative;
  flex: 1;
  max-height: 690px;
  aspect-ratio: 775 / 1314;
  align-self: center;
}

/* ⓪ オクルーダー: DOM最前・SC最背面 — ガラス透明部に背景色を重ねて外部要素を遮蔽 */
.c3-tube-new__occluder {
  position: absolute;
  top: 12%; bottom: 13%;
  left: 13%; right: 13%;
  background: #FAFAF8;
  pointer-events: none;
}

/* ① 背面: チャンバー画像。ガラス窓領域(x:16.3〜83.9% / y:19.9〜84.9%)でクリップ */
.c3-tube-new__back {
  position: absolute;
  inset: 0;
  clip-path: inset(19.9% 16.1% 15.1% 16.3%);
  overflow: hidden;
}

/* ② 中面: 実素材PNG。ガラス部(alpha≈0)が透明 → 背面を透かす。金属部(alpha=1) → 背面を隠す */
.c3-tube-new__glass {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: fill;
  pointer-events: none;
  display: block;
  user-select: none;
}

/* ③ 前面: ロゴは tube-main.png に焼き込み済み。HTMLオーバーレイ不要 */

/* ── チャンバー: 仮ダンサー動画は非表示維持。SVG状態は非表示(温存) ── */
.c3-tube__dancer-wrap { display: none; }
.c3-tube__content     { display: none; } /* SVG温存 */

/* ── チャンバー画像レイヤー(透過PNG × 5状態) ── */
.c3-tube__chambers {
  position: absolute;
  inset: 0;
}
.c3-tube__chamber {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: opacity .75s ease;
  pointer-events: none;
}
.c3-tube__chamber.is-active { opacity: 1; }
.c3-tube__chamber img,
.c3-tube__chamber video {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
  user-select: none;
  pointer-events: none;
}
.c3-tube__chamber[data-tube-chamber="4"] img,
.c3-tube__chamber[data-tube-chamber="4"] video {
  transform: scale(0.72);
}
/* state0/1/2/3/4 動画/静止画 切り替え (.c3-tube__chamber img の specificity 011 を上回るため親セレクタ込み) */
.c3-tube__chamber img.c3-chamber0-fallback,
.c3-tube__chamber img.c3-chamber1-fallback,
.c3-tube__chamber img.c3-chamber2-fallback,
.c3-tube__chamber img.c3-chamber3-fallback,
.c3-tube__chamber img.c3-chamber4-fallback { display: none; }

/* ── 縦軸線(ガラス内中央・全幅非表示) ── */
.c3-tube-axis {
  display: none;
  position: absolute;
  top: 20%; bottom: 15.1%;
  left: 50%;
  width: 0;
  border-left: 1px solid rgba(26,26,26,.06);
  pointer-events: none;
}

/* ── 観測ヘッド(エンブレム板直下・ガラス最上部) ── */
.c3-tube-head {
  position: absolute;
  top: 22%;
  left: 50%;
  transform: translateX(-50%);
  width: 76%;
  text-align: center;
  z-index: 5;
  pointer-events: none;
  padding-top: 6px;
  opacity: 0;
  transition: opacity 0.5s ease;
}
.c3-tube-head__row {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  margin-bottom: 2px;
}
.c3-tube-head__proc {
  font-family: var(--c3-font-en);
  font-size: 6.5px;
  letter-spacing: .18em;
  color: rgba(26,26,26,.32);
  white-space: nowrap;
}
.c3-tube-head__lamp {
  width: 5px; height: 5px;
  border-radius: 50%;
  background: rgba(26,26,26,.18);
  flex-shrink: 0;
  transition: background .5s ease, box-shadow .5s ease;
}
.c3-tube-head__lamp.is-active {
  background: #B3424A;
  box-shadow: 0 0 4px rgba(179,66,74,.5);
}
.c3-tube-head__code {
  display: block;
  font-family: var(--c3-font-en);
  font-size: 7.5px;
  letter-spacing: .24em;
  color: rgba(26,26,26,.42);
}

/* ── 台座進捗リング ── */
.c3-tube-base-ring {
  position: absolute;
  bottom: 64px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3px;
  z-index: 5;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.5s ease;
}
.c3-tube-ring__svg {
  width: 34px; height: 34px;
  overflow: visible;
  transform: translateY(-37px);
}
.c3-tube-ring__arc {
  transition: stroke-dashoffset .9s cubic-bezier(.4,0,.2,1);
}
.c3-tube-ring__label {
  font-family: var(--c3-font-en);
  font-size: 5.5px;
  line-height: 1;
  letter-spacing: .18em;
  color: #B3424A;
  opacity: 0;
  transition: opacity .8s ease;
  white-space: nowrap;
}
@keyframes tc-settle {
  0%   { opacity: 0;  letter-spacing: .25em; }
  18%  { opacity: 1;  letter-spacing: .32em; }
  55%  { opacity: 1;  letter-spacing: .32em; }
  100% { opacity: .5; letter-spacing: .30em; }
}
.c3-tube-ring__label.is-visible {
  animation: tc-settle 3.5s cubic-bezier(.16, 1, .3, 1) both;
}

/* アイドル=非表示 → 工程01到達でフェードイン */
.c3-tube-new.is-process-active .c3-tube-head,
.c3-tube-new.is-process-active .c3-tube-base-ring {
  opacity: 1;
}
@media (prefers-reduced-motion: reduce) {
  .c3-tube-head,
  .c3-tube-base-ring {
    transition: none;
  }
}

/* ══ 工程パネル(proc-panel)は廃止 ══ */

/* ══ 露出ゾーン (exposure zone) — IOトリガー兼コンテンツ区間 ══════════ */
.c3-exp-zone {
  min-height: var(--state-exposure, 100vh);
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  padding: 36px 0 48px;
}

.c3-exp-zone__head {
  display: flex;
  flex-direction: column;
}

/* 朱の水平線 */
.c3-exp-zone__line {
  display: block;
  width: 48px;
  height: 2px;
  background: var(--c3-vermilion);
  margin-bottom: 22px;
}

/* メタ行: 番号+区切り+コード */
.c3-exp-zone__meta {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 10px;
}
.c3-exp-zone__num {
  font-family: var(--c3-font-en);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .22em;
  color: var(--c3-vermilion);
}
.c3-exp-zone__sep {
  display: block;
  width: 28px;
  height: 1px;
  background: rgba(26,26,26,.18);
}
.c3-exp-zone__code {
  font-family: var(--c3-font-en);
  font-size: 10px;
  letter-spacing: .3em;
  color: rgba(26,26,26,.40);
  text-transform: uppercase;
}

/* タイトル: "会う" 等 */
.c3-exp-zone__title {
  font-family: var(--c3-font-serif);
  font-size: clamp(1.1rem, 1.8vw, 1.6rem);
  font-weight: 400;
  letter-spacing: .06em;
  color: rgba(26,26,26,.70);
  margin-bottom: 6px;
}

/* サブテキスト */
.c3-exp-zone__sub {
  font-size: 12px;
  letter-spacing: .06em;
  color: rgba(26,26,26,.40);
  line-height: 1.7;
}

/* ══ SVG アニメーション ══════════════════════════════════════════════════ */

/* 共通: 非active時は一時停止・fill-mode:both で0%フレーム適用 */
.anim-el {
  animation-fill-mode: both;
  animation-play-state: paused;
}
.c3-tube__state.is-active .anim-el { animation-play-state: running; }

/* reduced-motion: 全要素を最終静止状態で即表示 */
@media (prefers-reduced-motion: reduce) {
  .anim-el { opacity: 1 !important; animation: none !important; }
}

/* 共有 keyframes */
@keyframes fade-in   { from { opacity: 0 } to { opacity: 1 } }
@keyframes breathe-a { 0%,100%{ opacity:.58 } 50%{ opacity:.90 } }
@keyframes breathe-b { 0%,100%{ opacity:.35 } 50%{ opacity:.70 } }
@keyframes pulse-red { 0%,100%{ opacity:.45 } 50%{ opacity:.9  } }

/* ── State 0: 対話 ── */
.s0-wl { animation: breathe-a 3.4s ease-in-out .6s infinite; }
.s0-wr { animation: breathe-b 4.2s ease-in-out 1.1s infinite; }
.s0-nl { animation: fade-in .8s ease .9s  forwards; opacity: 0; }
.s0-nr { animation: fade-in .8s ease 1.2s forwards; opacity: 0; }
.s0-br { animation: fade-in 1s ease 1.9s  forwards; opacity: 0; }
.s0-gd { animation: fade-in 1.2s ease 3s  forwards; opacity: 0; }
.s0-sd { animation: s0-seed 1.1s cubic-bezier(.34,1.56,.64,1) 4s forwards; opacity: 0; }
@keyframes s0-seed {
  0%   { opacity: 0; transform: scale(0);
         transform-box: fill-box; transform-origin: center; }
  100% { opacity: 1; transform: scale(1);
         transform-box: fill-box; transform-origin: center; }
}

/* ── State 1: 発見 ── */
.s1-core { animation: fade-in .7s ease .6s forwards; opacity: 0; }
.s1-n1   { animation: breathe-b 2.6s ease-in-out .6s infinite; }
.s1-n2   { animation: breathe-b 2.6s ease-in-out .9s infinite; }
.s1-n3   { animation: breathe-b 2.6s ease-in-out .7s infinite; }
.s1-n4   { animation: breathe-b 2.6s ease-in-out 1s  infinite; }
.s1-n5   { animation: breathe-b 2.6s ease-in-out .75s infinite; }
.s1-n6   { animation: breathe-b 2.6s ease-in-out .85s infinite; }
.s1-sc   { animation: s1-scan 2.8s ease .8s forwards; opacity: 0; }
.s1-rg   { animation: fade-in 1s ease 2.2s forwards; opacity: 0; }
.s1-sw   { animation: fade-in .8s ease 2.8s forwards; opacity: 0; }
.s1-sm   { animation: pulse-red 2.2s ease-in-out 3.2s infinite; opacity: 0; }
.s1-sc2  { animation: fade-in 1s ease 3s forwards; opacity: 0; }
@keyframes s1-scan {
  0%   { transform: translateY(-80px); opacity: 0; }
  12%  { opacity: .65; }
  88%  { opacity: .65; }
  100% { transform: translateY(80px);  opacity: 0; }
}

/* ── State 2: 言語化 ── */
.s2-core { animation: fade-in .6s ease .6s  forwards; opacity: 0; }
.s2-l1   { animation: fade-in .7s ease .9s  forwards; opacity: 0; }
.s2-l2   { animation: fade-in .7s ease 1.1s forwards; opacity: 0; }
.s2-l3   { animation: fade-in .7s ease 1.3s forwards; opacity: 0; }
.s2-l4   { animation: fade-in .7s ease 1.5s forwards; opacity: 0; }
.s2-r1   { animation: fade-in .7s ease 1.1s forwards; opacity: 0; }
.s2-r2   { animation: fade-in .7s ease 1.4s forwards; opacity: 0; }
.s2-r3   { animation: fade-in .7s ease 1.7s forwards; opacity: 0; }
.s2-r4   { animation: fade-in .7s ease 2s   forwards; opacity: 0; }
.s2-r5   { animation: fade-in .7s ease 2.3s forwards; opacity: 0; }
.s2-bl1  { animation: fade-in .8s ease 2.6s forwards; opacity: 0; }
.s2-bl2  { animation: fade-in .8s ease 2.9s forwards; opacity: 0; }
.s2-gd   { animation: fade-in 1s ease 3.2s  forwards; opacity: 0; }

/* ── State 3: 伝達 ── */
.s3-ax   { animation: fade-in .7s ease .6s  forwards; opacity: 0; }
.s3-core { animation: fade-in .6s ease .7s  forwards; opacity: 0; }
.s3-b1   { animation: fade-in .7s ease 1.1s forwards; opacity: 0; }
.s3-b2   { animation: fade-in .7s ease 1.3s forwards; opacity: 0; }
.s3-b3   { animation: fade-in .7s ease 1.5s forwards; opacity: 0; }
.s3-b4   { animation: fade-in .7s ease 1.7s forwards; opacity: 0; }
.s3-d1   { animation: fade-in .5s ease 1.3s forwards; opacity: 0; }
.s3-d2   { animation: fade-in .5s ease 1.5s forwards; opacity: 0; }
.s3-d3   { animation: fade-in .5s ease 1.7s forwards; opacity: 0; }
.s3-d4   { animation: fade-in .5s ease 1.9s forwards; opacity: 0; }
.s3-rp1  { animation: s3-ripple 2.4s ease-out 1.5s infinite;
            transform-box: fill-box; transform-origin: center; opacity: 0; }
.s3-rp2  { animation: s3-ripple 2.4s ease-out 1.9s infinite;
            transform-box: fill-box; transform-origin: center; opacity: 0; }
.s3-rp3  { animation: s3-ripple 2.4s ease-out 1.7s infinite;
            transform-box: fill-box; transform-origin: center; opacity: 0; }
.s3-rp4  { animation: s3-ripple 2.4s ease-out 2.1s infinite;
            transform-box: fill-box; transform-origin: center; opacity: 0; }
.s3-sg   { animation: s3-signal 3s ease-in-out 2.5s infinite; opacity: 0; }
@keyframes s3-ripple {
  0%   { transform: scale(1); opacity: .6; }
  100% { transform: scale(3.5); opacity: 0; }
}
@keyframes s3-signal {
  0%   { transform: translateY(-132px); opacity: 0; }
  15%  { opacity: .9; }
  85%  { opacity: .9; }
  100% { transform: translateY(138px);  opacity: 0; }
}

/* ── 工程カード ── */
.c3-proc-card {
  min-height: 70vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 32px 0;
  border-bottom: 1px solid rgba(26,26,26,.07);
}
.c3-proc-card:last-child { border-bottom: none; }
.c3-proc-card__header {
  display: flex;
  align-items: center;
  gap: 12px;
}
.c3-proc-card__num {
  font-family: var(--c3-font-en);
  font-size: 11px;
  letter-spacing: .15em;
  color: rgba(26,26,26,.26);
  transition: color .4s ease;
}
.c3-proc-card__dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: rgba(26,26,26,.16);
  flex-shrink: 0;
  transition: background .4s ease;
}
.c3-proc-card__title {
  font-family: var(--c3-font-serif);
  font-size: clamp(22px, 2.3vw, 36px);
  font-weight: 300;
  letter-spacing: .06em;
  color: rgba(26,26,26,.16);
  margin: 0;
  transition: color .4s ease;
}
.c3-proc-card__sub {
  font-size: 13px;
  letter-spacing: .04em;
  color: rgba(26,26,26,0);
  line-height: 1.85;
  margin: 12px 0 0 30px;
  transition: color .5s ease;
}
.c3-proc-card__line {
  display: block;
  width: 14px;
  height: 1px;
  background: rgba(26,26,26,.20);
  margin: 18px 0 0;
  transition: width .4s ease;
}
/* 活性 */
.c3-proc-card.is-active .c3-proc-card__num   { color: rgba(26,26,26,.55); }
.c3-proc-card.is-active .c3-proc-card__dot   { background: #B3424A; }
.c3-proc-card.is-active .c3-proc-card__title { color: var(--c3-ink); }
.c3-proc-card.is-active .c3-proc-card__sub   { color: rgba(26,26,26,.58); }
.c3-proc-card.is-active .c3-proc-card__line  { width: 28px; }

/* ── 手段カードセット ── */
/* 手段カードパネル: 筒と同期して sticky 追随 */
.c3-means-panel {
  padding-top: var(--state-exposure); /* idle帯のみ(100vh)。バンドなし */
}

/* 各グループを各露出ゾーンに対応させてページと一緒に流れる */
.c3-means-set {
  display: flex;
  flex-direction: column;
  gap: 14px;
  min-height: var(--state-exposure);
  padding: 52px 0 48px;
  opacity: 0;
  transition: opacity .75s ease;
  pointer-events: none;
}
.c3-means-set + .c3-means-set {
  margin-top: 0; /* ゾーン間にバンドなし。ゾーンは直接隣接 */
}
.c3-means-set.is-active {
  opacity: 1;
  pointer-events: auto;
}
.c3-means-card {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 16px;
  border: 1px solid rgba(26,26,26,.13);
  padding: 18px 22px 20px;
}
.c3-means-card__icon {
  width: 92px;
  height: 92px;
  flex: none;
  object-fit: contain;
  display: block;
}
.c3-means-card__body {
  flex: 1;
  min-width: 0;
}
.c3-means-card__label {
  display: block;
  font-family: var(--c3-font-en);
  font-size: 9px;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: rgba(26,26,26,.36);
  margin-bottom: 6px;
}
.c3-means-card__title {
  font-family: var(--c3-font-serif);
  font-size: clamp(16px, 1.4vw, 21px);
  font-weight: 400;
  color: var(--c3-ink);
  margin: 0;
  letter-spacing: .04em;
}
.c3-means-card__desc {
  font-size: 12px;
  color: rgba(26,26,26,.50);
  margin: 7px 0 0;
  line-height: 1.85;
  letter-spacing: .03em;
}

/* 成果4項目グリッド */
.c3-declaration__outcomes {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
}
.c3-declaration__outcome {
  padding: 40px 16px;
  text-align: center;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 10px;
  border-left: 1px solid var(--c3-rule);
  transition: background-color .25s ease, border-color .25s ease;
}
.c3-declaration__outcome:first-child { border-left: none; }
.c3-declaration__outcome-ja {
  font-family: var(--c3-font-serif);
  font-size: 22px;
  font-weight: 600;
  letter-spacing: .1em;
  transition: color .25s ease;
}
.c3-declaration__outcome-en {
  font-family: var(--font-en);
  font-size: 10px;
  letter-spacing: .28em;
  color: var(--c3-text-muted);
  transition: color .25s ease;
}

/* ── 装飾パーツ(温存) ──────────────────────────────── */

/* ビューファインダー枠(SVG) */
.c3-deco-finder {
  display: block;
  width: 80px;
  height: 80px;
  color: rgba(26,26,26,.28);
  position: absolute;
  bottom: 80px;
  left: 24px;
}

/* グリッドマーカー(朱■) */
.c3-deco-marker {
  display: block;
  width: 4px;
  height: 4px;
  background: var(--c3-vermilion);
  position: absolute;
  flex-shrink: 0;
}
/* 登場ゾーン内マーカー */
.c3-deco-marker--a {
  bottom: 76px;
  right: 28px;
}
.c3-deco-marker--b {
  bottom: 160px;
  left: 112px;
  opacity: .55;
}
/* 右列スペーサー内マーカー */
.c3-deco-marker--c {
  bottom: 80px;
  right: 32px;
}

/* アイソメSVGアイコン */
.c3-deco-iso {
  display: block;
  width: 48px;
  height: 42px;
  color: rgba(26,26,26,.22);
  position: absolute;
  bottom: 120px;
  left: 50%;
  transform: translateX(-50%);
}

/* --------------------------------------------------------------------------
   [04] SERVICES
   -------------------------------------------------------------------------- */
.c3-services__head {
  padding: 16px 48px 56px;
}
.c3-services__title {
  margin: 0;
  font-family: var(--c3-font-serif);
  font-weight: 600;
  font-size: clamp(26px, 3.2vw, 40px);
  line-height: 1.6;
  letter-spacing: .04em;
  word-break: keep-all;
  text-wrap: pretty;
}
.c3-services__lead {
  margin: 24px 0 0;
  max-width: 620px;
  font-size: 15px;
  line-height: 2.1;
  letter-spacing: .04em;
  color: var(--c3-text-body);
}
/* サービスカードリスト（01〜04） */
.c3-services__list {
  padding: 0 48px 56px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.c3-service-row {
  display: grid;
  grid-template-columns: 88px 1fr 210px 56px;
  align-items: stretch;
  border: 1px solid var(--c3-rule);
  background: #fff;
}
.c3-service-row__num {
  padding: 32px 20px 32px 24px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  border-right: 1px solid var(--c3-rule-light);
}
.c3-service-row__num-int {
  font-family: var(--font-en);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .15em;
  color: var(--c3-vermilion);
}
.c3-service-row__num-ja {
  font-family: var(--c3-font-serif);
  font-size: 20px;
  font-weight: 400;
  color: var(--c3-ink);
}
.c3-service-row__body {
  padding: 32px 32px;
  min-width: 0;
}
.c3-service-row__title {
  margin: 0;
  font-family: var(--c3-font-serif);
  font-weight: 600;
  font-size: 18px;
  letter-spacing: .06em;
  word-break: keep-all;
}
.c3-service-row__text {
  margin: 10px 0 0;
  font-size: 13px;
  line-height: 2;
  letter-spacing: .03em;
  color: var(--c3-text-body);
}
.c3-service-row__price {
  padding: 32px 20px;
  border-left: 1px solid var(--c3-rule-light);
  font-size: 13px;
  letter-spacing: .04em;
  word-break: keep-all;
  color: var(--c3-text-body);
  display: flex;
  align-items: center;
}
.c3-service-row__arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  border-left: 1px solid var(--c3-rule-light);
}

/* 04 MONO CLOUD: <a>化カードのデフォルトリンクスタイルをリセット */
a.c3-service-row {
  text-decoration: none;
  color: inherit;
  cursor: pointer;
}
/* [C/F 前倒し] 04カードのみ focus-visible: border内側に朱リング */
a.c3-service-row:focus-visible {
  outline: 2px solid var(--c3-vermilion);
  outline-offset: -2px;
}

/* --------------------------------------------------------------------------
   [05] OUR PROMISE
   -------------------------------------------------------------------------- */
.c3-promise__head {
  padding: 16px 48px 56px;
}
.c3-promise__title {
  margin: 0;
  font-family: var(--c3-font-serif);
  font-weight: 600;
  font-size: clamp(26px, 3.2vw, 40px);
  line-height: 1.6;
  letter-spacing: .04em;
  word-break: keep-all;
  text-wrap: pretty;
}
/* OUR PROMISE: 薄グレー帯 */
.c3-promise { background: rgba(26,26,26,.03); }

/* 約束カードグリッド（01/02・03/04 横並び・05 全幅） */
.c3-promise__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  padding: 0 48px 56px;
}
.c3-promise-card {
  background: #fff;
  border: 1px solid var(--c3-rule-light);
  padding: 28px 28px 24px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  transition: border-color .22s ease;
}
.c3-promise-card--full {
  grid-column: 1 / -1;
}
.c3-promise-card__top {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 12px;
}
.c3-promise-card__head {
  display: flex;
  align-items: center;
  gap: 12px;
  flex: 1;
  min-width: 0;
}
.c3-promise-card__num {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  flex-shrink: 0;
  border-radius: 50%;
  border: 1px solid var(--c3-vermilion);
  font-family: var(--font-en);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .1em;
  color: var(--c3-vermilion);
  line-height: 1;
}
.c3-promise-card__title {
  margin: 0;
  font-family: var(--c3-font-serif);
  font-size: 15px;
  font-weight: 600;
  letter-spacing: .06em;
  line-height: 1.6;
  word-break: keep-all;
  text-wrap: pretty;
  min-width: 0;
}
.c3-promise-card__icon {
  flex-shrink: 0;
}
.c3-promise-card__icon img {
  width: 68px;
  height: 68px;
  object-fit: contain;
  display: block;
  opacity: .72;
}
.c3-promise-card__bottom {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 12px;
}
.c3-promise-card__body {
  margin: 0;
  font-size: 14px;
  line-height: 2.1;
  letter-spacing: .04em;
  color: var(--c3-text-body);
  flex: 1;
}
.c3-promise-card__arrow {
  font-family: var(--font-en);
  font-size: 16px;
  color: var(--c3-vermilion);
  flex-shrink: 0;
  line-height: 1;
  padding-bottom: 2px;
}

/* --------------------------------------------------------------------------
   [06] WORKS
   -------------------------------------------------------------------------- */
.c3-works__head {
  padding: 16px 48px 48px;
}
.c3-works__title {
  margin: 0;
  font-family: var(--c3-font-serif);
  font-weight: 600;
  font-size: clamp(26px, 3.2vw, 40px);
  line-height: 1.6;
  letter-spacing: .04em;
  word-break: keep-all;
  text-wrap: pretty;
}
.c3-works__lead {
  margin: 24px 0 0;
  max-width: 640px;
  font-size: 15px;
  line-height: 2.1;
  letter-spacing: .04em;
  color: var(--c3-text-body);
}
.c3-works__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  margin: 0 48px;
}
.c3-works__card {
  aspect-ratio: 4 / 3;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(26,26,26,.03);
  border: 1px solid var(--c3-rule-light);
}
.c3-works__card + .c3-works__card { border-left: none; }
.c3-works__card-placeholder {
  font-family: var(--c3-font-serif);
  font-size: 15px;
  letter-spacing: .3em;
  color: rgba(26,26,26,.35);
}
.c3-works__note {
  padding: 18px 48px 32px;
  font-size: 12px;
  letter-spacing: .06em;
  color: rgba(26,26,26,.6);
  line-height: 1.9;
}

/* --------------------------------------------------------------------------
   [07] MESSAGE
   -------------------------------------------------------------------------- */
.c3-message__grid {
  display: grid;
  grid-template-columns: 25% 1fr;
  align-items: start;
}
.c3-message__side {
  padding: 16px 32px 88px 48px;
  border-right: 1px solid var(--c3-rule-light);
}
.c3-message__photo-frame {
  width: 100%;
  aspect-ratio: 3 / 4;
  border: 1px solid rgba(26,26,26,.25);
  padding: 8px;
  box-sizing: border-box;
  overflow: hidden;
}
.c3-message__photo {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.c3-message__photo-alt {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(26,26,26,.04);
  font-size: 12px;
  letter-spacing: .1em;
  color: var(--c3-text-muted);
}
.c3-message__role {
  margin: 14px 0 0;
  font-size: 12px;
  letter-spacing: .14em;
  color: rgba(26,26,26,.65);
}
.c3-message__body {
  padding: 16px 48px;
}
.c3-message__title {
  margin: 0;
  font-family: var(--c3-font-serif);
  font-weight: 600;
  font-size: clamp(22px, 2.8vw, 36px);
  line-height: 1.75;
  letter-spacing: .04em;
  word-break: keep-all;
  text-wrap: pretty;
}
.c3-message__text {
  margin: 28px 0 0;
  font-size: 14px;
  line-height: 2.3;
  letter-spacing: .04em;
  color: var(--c3-text-body);
  text-wrap: pretty;
}
.c3-message__link {
  display: inline-block;
  margin-top: 36px;
  font-size: 13px;
  letter-spacing: .12em;
  color: var(--c3-ink);
  text-decoration: none;
  border-bottom: 1px solid rgba(26,26,26,.4);
  padding-bottom: 4px;
  white-space: nowrap;
  transition: border-color .2s ease;
}
.c3-message__link:hover { border-color: var(--c3-ink); }

/* --------------------------------------------------------------------------
   [変換の筒] SP / reduced-motion overrides
   -------------------------------------------------------------------------- */

/* ── SP（767px以下）: 三層z-order(見出し背面=1・筒中間=3・カード前面=5) ── */
@media (max-width: 767px) {
  .c3-tube-section__intro { padding: 36px 20px 48px; }

  /* グリッド: isolation でスタッキングコンテキストを確立(position+z-indexは外部SFへの干渉を招く) */
  .c3-tube-grid {
    display: block;
    position: relative;
    isolation: isolate;
    padding: 0 0 40px;
    overflow: visible;
  }

  /* 中央筒列: 中間層(z-index:3) — 見出しの前・カードの背後 */
  .c3-tube-grid__center {
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    pointer-events: none;
    z-index: 3;
  }

  /* 筒wrapper: SP sticky — 見出し直下 */
  .c3-tube-wrap {
    position: sticky;
    top: 200px;
    height: auto;
    width: min(92vw, 345px);
    margin: 0 auto;
    padding: 12px 0 8px;
    pointer-events: auto;
    display: flex;
    flex-direction: column;
    align-items: center;
  }

  /* 筒本体サイズ */
  .c3-tube-new {
    height: min(315px, calc(60svh - var(--c3-header-h) - 24px));
    flex: none;
  }

  /* 進捗リング: SP実測配置
     ガラス下端=vp547 / ルーバー格子=vp548-573 / 黒バンド=vp573-590
     SVG visual(bottom:542) < ガラス下端(547) ✓ / ラベル center=581.5 = 黒バンド中央 ✓ */
  .c3-tube-ring__svg { width: 20px; height: 20px; transform: translateY(-16px); }
  .c3-tube-base-ring { bottom: 28px; }

  /* ラベル */
  .c3-tube-label { height: 22px; margin-bottom: 8px; }
  .c3-tube-label__text { font-size: 10px; }

  /* 工程テキスト列: PC基底のz-index:2をautoで上書き→スタッキングコンテキスト不生成・子要素が直接競合 */
  .c3-tube-grid__left {
    padding: 0 20px;
    padding-top: 56svh;
    position: relative;
    z-index: auto;
  }

  /* 各工程ゾーン: content自然高 + 工程間の密度感を上げるため余白を圧縮 */
  .c3-exp-zone {
    min-height: 0;
    padding: 0 0 32px;
  }

  /* 工程見出しブロック: 最背面(z-index:1) */
  .c3-exp-zone__head {
    position: relative;
    z-index: 1;
    padding: 24px 0 20px;
  }

  /* 手段カードパネル: JSが各expゾーンへ移動するため非表示 */
  .c3-tube-grid__right { display: none; }

  /* expゾーン内手段カード: 最前面(z-index:5)・筒ラップ下端+余白分だけ下げる */
  .c3-exp-zone .c3-means-set {
    opacity: 1 !important;
    pointer-events: auto;
    transition: none;
    min-height: auto;
    padding: 0 0 16px;
    gap: 8px;
    position: relative;
    z-index: 5;
    /* sticky top(200) + overhead(20) + gap(30) - head_bot(212) = 38 (固定オフセット) */
    margin-top: calc(min(315px, calc(60svh - var(--c3-header-h) - 24px)) + 38px);
  }
  .c3-exp-zone .c3-means-card {
    padding: 12px 14px 14px;
    background: var(--c3-bg);
    gap: 12px;
  }
  .c3-exp-zone .c3-means-card__icon {
    width: 60px;
    height: 60px;
  }
  .c3-exp-zone .c3-means-card__title {
    font-size: 15px;
  }

  /* 最終ゾーン(DELIVER): 完成演出を見届ける最小限の余白(110svh→50svh) */
  .c3-exp-zone--final {
    padding-bottom: 50svh;
  }

  /* SVGステート: SPでもopacity遷移有効 */
  .c3-tube__state { transition: opacity .75s ease; }
}

/* ── prefers-reduced-motion: sticky無効・完成形(04)静的表示 ── */
@media (prefers-reduced-motion: reduce) {
  .c3-tube-wrap { position: relative; top: auto; height: auto; padding: 0; width: fit-content; margin: 0 auto; }
  .c3-tube-new  { height: 380px; flex: none; }

  .c3-tube-label__text { transition: none; }
  .c3-tube__state      { transition: none; }

  .c3-proc-card {
    min-height: auto;
    padding: 18px 0;
    transition: none;
  }
  .c3-proc-card__num   { transition: none; color: rgba(26,26,26,.45); }
  .c3-proc-card__dot   { transition: none; }
  .c3-proc-card__title { transition: none; color: rgba(26,26,26,.65); }
  .c3-proc-card__sub   { transition: none; color: rgba(26,26,26,.48); }
  .c3-proc-card__line  { transition: none; }
  /* active 上書き不要: JS が applyStep(3) で is-active を付与 */

  .c3-means-set { min-height: auto; padding: 16px 0; margin-top: 0 !important; opacity: 1 !important; transition: none; }

  /* state0/1/2/3/4: 動画を止めて静止画を表示 */
  .c3-chamber0-video, .c3-chamber1-video, .c3-chamber2-video, .c3-chamber3-video, .c3-chamber4-video { display: none; }
  .c3-tube__chamber img.c3-chamber0-fallback,
  .c3-tube__chamber img.c3-chamber1-fallback,
  .c3-tube__chamber img.c3-chamber2-fallback,
  .c3-tube__chamber img.c3-chamber3-fallback,
  .c3-tube__chamber img.c3-chamber4-fallback  { display: block; }
}

/* --------------------------------------------------------------------------
   [08] CTA（黒帯）
   -------------------------------------------------------------------------- */
.c3-cta {
  position: relative;
  overflow: hidden;
}
.c3-cta__deco {
  position: absolute;
  left: -0.12em;
  top: 50%;
  transform: translateY(-50%);
  font-family: var(--c3-font-serif);
  font-weight: 600;
  font-size: clamp(170px, 32.3vw, 357px); /* ×0.85縮小 */
  line-height: 1;
  color: rgba(250,250,248,.04);
  pointer-events: none;
  user-select: none;
}
.c3-cta__body {
  position: relative;
  padding: 104px 48px;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.c3-cta__title {
  margin: 0;
  font-family: var(--c3-font-serif);
  font-weight: 600;
  font-size: clamp(26px, 3.2vw, 40px);
  line-height: 1.6;
  letter-spacing: .05em;
  word-break: keep-all;
  text-wrap: pretty;
  color: var(--c3-dark-text);
}
.c3-cta__text {
  margin: 24px 0 0;
  max-width: 560px;
  font-size: 15px;
  line-height: 2.2;
  letter-spacing: .04em;
  color: var(--c3-dark-body);
}
.c3-cta__btn {
  margin-top: 48px;
}

/* --------------------------------------------------------------------------
   [B] FV キネティックテキスト（最背面）
   -------------------------------------------------------------------------- */
/* --------------------------------------------------------------------------
   [C] 番号要素の朱色着色（スクロール定着後に一拍遅れて）
   -------------------------------------------------------------------------- */
.c3-promise-row__num-int {
  transition: color .4s ease;
}
.c3-promise-row__num-int.is-num-colored {
  color: var(--c3-vermilion);
}

/* 円形矢印ボタン */
.c3-circle-btn {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  border: 1px solid var(--c3-rule);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-en);
  font-size: 14px;
  color: var(--c3-ink);
  line-height: 1;
  flex-shrink: 0;
  transition: border-color .22s, color .22s;
}

/* --------------------------------------------------------------------------
   [D] インタラクション: 行ホバー（カード・リンク行）
   -------------------------------------------------------------------------- */
.c3-service-row {
  transition: border-color .22s ease;
}
.c3-service-row:hover {
  border-color: var(--c3-vermilion);
}
.c3-service-row:hover .c3-circle-btn {
  border-color: var(--c3-vermilion);
  color: var(--c3-vermilion);
}
.c3-promise-card:hover {
  border-color: var(--c3-vermilion);
}

/* --------------------------------------------------------------------------
   [G] アウトカム帯: ホバー反転（pointer=hover環境のみ・タッチ除外）
   縦仕切り罫は dark-rule 色に変換して視認性を維持
   -------------------------------------------------------------------------- */
@media (hover: hover) {
  .c3-declaration__outcome:hover {
    background-color: var(--c3-ink);
    border-left-color: var(--c3-dark-rule);
  }
  .c3-declaration__outcome:hover .c3-declaration__outcome-ja {
    color: var(--c3-dark-text);
  }
  .c3-declaration__outcome:hover .c3-declaration__outcome-en {
    color: var(--c3-dark-muted);
  }
}

/* --------------------------------------------------------------------------
   [E] フッターご褒美: 黒帯 + SVGパス常時ループ + 白ロゴ
   -------------------------------------------------------------------------- */
.c3-footer__mark-wrap {
  position: relative;
  background: #1a1a1a;
  overflow: hidden;
  min-height: 220px;
  display: flex;
  align-items: center;
  justify-content: center;
  /* グリッド制約: c3-footer__inner 等と同じコンテナに収める */
  max-width: var(--c3-container);
  margin: 0 auto;
  /* 側面罫線: c3-wrap border と視覚的に連続させる（ダーク面なのでdark-rule色） */
  box-shadow: inset 1px 0 0 var(--c3-dark-rule), inset -1px 0 0 var(--c3-dark-rule);
}
.c3-footer__paths-bg {
  position: absolute;
  inset: 0;
  pointer-events: none;
  contain: paint; /* SVGアニメの再描画をこの要素内に隔離 */
}
.c3-footer__paths-bg svg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.c3-footer__mark-center {
  position: relative;
  z-index: 1;
  padding: 48px 24px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.c3-footer__mark-img {
  height: 72px;
  width: auto;
  display: block;
  opacity: .72;
}

/* --------------------------------------------------------------------------
   レスポンシブ — PC（デスクトップ・ナビ表示）
   -------------------------------------------------------------------------- */
@media (min-width: 768px) {
  .c3-header__nav { display: flex; }
  .c3-header__hamburger { display: none; }
  /* マーキー帯の幅は grid-column:1/-1 で全幅確保。PC追加指定なし */
  .c3-col-guide--25,
  .c3-col-guide--75 { display: block; }
}

/* SP専用改行: PC/大画面では非表示 */
.c3-br-sp { display: none; }

/* --------------------------------------------------------------------------
   レスポンシブ — SP（767px以下）
   -------------------------------------------------------------------------- */
@media (max-width: 767px) {
  /* ロゴ比率10:1のため gap を詰めて logo 高さを稼ぐ: gap=12 で 390/360px 両方安全 */
  .c3-header__inner { padding: 0 20px; gap: 12px; }
  .c3-header__logo-img { height: 20px; } /* 28px の 71% — 360px 端末でもhb収まる上限 */
  /* SPヘッダーCTA: ロゴ右・ハンバーガー隣に主ボタン様式でコンパクト表示 */
  .c3-header__cta {
    font-size: 11px;
    padding: 6px 10px;
    min-height: 44px;     /* タップ領域確保 */
    margin-left: auto;    /* ロゴとの間を自動余白で押し出してハンバーガー隣へ */
  }
  .c3-pc-text { display: none; } /* SP: 「する」省略 → 「無料で相談」のみ表示 */
  .c3-col-guide--25,
  .c3-col-guide--75 { display: none; }

  /* HERO v3: SP フルスクリーン化 */
  .c3-hero__stage {
    /* -1px: 実ヘッダー高さ65px(border込み) vs --c3-header-h:64px のズレ補正。
       border-bottom 1px がviewport内に収まるよう stage を 1px縮める */
    min-height: calc(100vh  - var(--c3-header-h) - 1px);   /* fallback */
    min-height: calc(100svh - var(--c3-header-h) - 1px);   /* dynamic viewport */
    border-bottom: 1px solid var(--c3-rule);                /* 住人フレームアウト境界の全幅罫 */
  }
  /* SP: PC専用改行を非表示・SP専用改行を表示 → 2行レイアウト */
  .c3-hero__heading .c3-br-pc { display: none; }
  .c3-br-sp { display: inline; }
  .c3-hero__heading {
    font-size: clamp(28px, 9vw, 48px);
    left: 20px;
    top: clamp(36px, 6svh, 72px);
    max-width: none;
    white-space: nowrap;
  }
  /* SP8: PC orbit 非表示 / SP orbit 表示 (SP orbit の位置は inline style が単一の真実源) */
  /* SP orbit: クロップ撤去・ステージ全面 */
  .c3-hero__orbit { display: none; }
  .c3-hero__orbit-sp { display: block; }
  .c3-hero__vis {
    display: block;
    position: absolute;
    inset: 0; /* フルスクリーン化: 57%クロップ撤去・ステージ全面に展開 */
    overflow: hidden;
    z-index: 1;
  }
  /* 住人: クロップ撤去・ステージ全面 */
  .c3-hero__figure {
    inset: 0;
    clip-path: none;
  }
  .c3-hero__video {
    bottom: auto;
    max-width: none;    /* base.css video{max-width:100%} を解除 */
    width: 120%;        /* v7: 縮小 130%→120% */
    height: auto;       /* intrinsic aspect-ratio で決定 */
    aspect-ratio: 9 / 16; /* poster 612×1088 = 9:16 */
    top: 36px;          /* v7: 120%縮小に合わせ再計算 → hat_vp≈207-211px / H1_bottom≈180-198px → gap≥12px */
    left: 50%;
    transform: translateX(-50%);
  }
  /* SP FV二分罫線: フルスクリーン化で不要 */
  .c3-hero__stage::after {
    display: none;
  }
  /* 情報エリア: stage 外に移動 → 通常フロー（スクロール後に表示） */
  .c3-hero__info {
    position: static;
    top: auto;
    bottom: auto;
    left: auto;
    z-index: auto;
    max-width: none;
    padding: 32px 20px 48px;
  }
  .c3-hero__sub {
    font-size: 12px;
    line-height: 1.75;
    margin-bottom: 16px;
    word-break: auto-phrase;
    text-wrap: pretty;
  }
  .c3-hero__btns { gap: 12px; }
  .c3-hero__stamp {
    top: auto;
    bottom: 20px; /* stage 右下に固定 */
    right: 12px;
    width: 72px;
    height: 72px;
  }
  .c3-hero__stamp .c3-stamp__char { font-size: 34px; }

  /* 三方良し帯: info が stage 外に出たためネガティブマージン不要
     stage 直後のセレクタ (.c3-hero__stage + .c3-rule-h) は
     DOM変更で info が割り込んだため無効化済 (dead rule) */
  .c3-hero__stage + .c3-rule-h {
    display: none;
  }
  .c3-hero__sanpo {
    margin-top: 0;
    border-top: none;
  }
  /* 三方良し帯: SP幅調整・上下パディング均等 */
  .c3-hero__sanpo-item {
    font-size: 13px;
    padding: 16px 4px;
    letter-spacing: .1em;
  }
  .c3-hero__band {
    font-size: 9px;
    letter-spacing: .14em;
    padding: 12px 20px;
  }

  /* QUESTION: SP */
  .c3-question__grid {
    display: block;
  }
  .c3-question__side {
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    border-right: none;
    border-bottom: 1px solid var(--c3-dark-rule);
    padding: 36px 24px 24px;
    gap: 20px;
  }
  .c3-question__stamp {
    width: 64px;
    height: 64px;
    flex-shrink: 0;
  }
  .c3-question__stamp .c3-stamp__char { font-size: 30px; }
  .c3-question__body { padding: 36px 24px 56px; }
  .c3-question__title { font-size: clamp(22px, 6vw, 32px); }

  /* 表題欄: SP */
  .c3-section-header { height: 32px; margin-top: 6px; }
  .c3-section-header__label { padding: 0 14px; font-size: 10px; letter-spacing: .28em; height: 26px; }
  .c3-section-header__stamp-cell { width: 32px; height: 32px; }
  .c3-declaration, .c3-services, .c3-promise, .c3-works, .c3-message { padding-top: 44px; }

  /* 宣言: SP */
  .c3-declaration__outcomes {
    grid-template-columns: 1fr 1fr;
    position: relative;
  }
  /* 縦罫: コンテナ全高を疑似要素で通す(border-left は行ごとに切れるため) */
  .c3-declaration__outcomes::before {
    content: '';
    position: absolute;
    top: 0; bottom: 0;
    left: 50%;
    width: 1px;
    transform: translateX(-0.5px);
    background: var(--c3-rule);
    pointer-events: none;
  }
  /* border-left は疑似要素で代替するため全アイテムから除去 */
  .c3-declaration__outcome { border-left: none; padding: 28px 12px; }
  /* 行区切り水平罫: row2アイテムの全幅で全通し */
  .c3-declaration__outcome:nth-child(n+3) { border-top: 1px solid var(--c3-rule-light); }
  /* アウトカム帯とSERVICES境界を直結(PC同様 padding-top:0) */
  .c3-services { padding-top: 0; }

  /* SERVICES: SP */
  .c3-services__head { padding: 12px 24px 40px; }
  .c3-services__list { padding: 0 16px 40px; }
  .c3-service-row { grid-template-columns: 1fr; }
  .c3-service-row__num {
    border-right: none;
    border-bottom: 1px solid var(--c3-rule-light);
    flex-direction: row;
    align-items: baseline;
    gap: 12px;
    padding: 18px 20px;
  }
  .c3-service-row__body { padding: 16px 20px 4px; }
  .c3-service-row__price {
    border-left: none;
    border-top: 1px solid var(--c3-rule-light);
    padding: 12px 20px 18px;
  }
  .c3-service-row__arrow { display: none; }

  /* PROMISE: SP */
  .c3-promise__head { padding: 12px 24px 40px; }
  .c3-promise__grid { grid-template-columns: 1fr; margin: 0 16px; padding: 0 0 40px; }
  .c3-promise-card { min-width: 0; }
  .c3-promise-card--full { grid-column: auto; }
  .c3-promise-card__icon img { width: 52px; height: 52px; }

  /* WORKS: SP */
  .c3-works__head { padding: 12px 24px 40px; }
  .c3-works__grid { grid-template-columns: 1fr; margin: 0 16px; }
  .c3-works__card { aspect-ratio: 16 / 7; border: 1px solid var(--c3-rule-light); }
  .c3-works__card + .c3-works__card { border-left: 1px solid var(--c3-rule-light); border-top: none; }
  .c3-works__note { padding: 16px 24px 32px; }

  /* MESSAGE: SP */
  .c3-message__grid { display: block; }
  .c3-message__side {
    border-right: none;
    padding: 12px 24px 0;
  }
  .c3-message__photo-frame { max-width: 240px; }
  .c3-message__body { padding: 12px 24px 64px; }

  /* CTA: SP */
  .c3-cta__body { padding: 72px 24px; }
  .c3-cta__title { text-align: center; font-size: 22px; word-break: normal; }

  /* フッター: SP */
  .c3-footer__inner { padding: 40px 24px 24px; flex-direction: column; }
  .c3-footer__nav-list { flex-direction: column; gap: 12px; }
  .c3-footer__bottom { padding: 16px 24px 28px; flex-direction: column; align-items: flex-start; gap: 4px; }

  /* [D] SP: タップフィードバック(0.15sの沈み込み) */
  .c3-btn:active {
    transform: scale(0.97);
    transition: transform .15s ease;
  }
  .c3-service-row:active {
    border-color: var(--c3-vermilion);
    transition: border-color .15s ease;
  }
  .c3-promise-card:active {
    border-color: var(--c3-vermilion);
    transition: border-color .15s ease;
  }

  /* [E] フッターマーク: SP調整 */
  .c3-footer__mark-wrap {
    min-height: 180px;
  }
  .c3-footer__mark-img {
    height: 52px;
  }
}

/* 360px 以下: 三方良し帯 補正 (5行テキストで btns が約21px 低くなるため) */
@media (max-width: 375px) {
  .c3-hero__sanpo {
    margin-top: calc(272px - 43svh);
  }
}
/* 415px 以上SP: 三方良し帯 補正 (CTAが2列横並びで btns が約36px 短くなるため) */
@media (min-width: 415px) and (max-width: 767px) {
  .c3-hero__sanpo {
    margin-top: calc(215px - 43svh);
  }
}

/* v6: 幅基準採用により min-height:701px 分岐は不要のため撤去 */
