/* ==========================================================================
 * 提案デッキ（/report/proposal/）
 *
 * feature-deck.css は機能ページ145枚と共有しているので触らない。
 * ここでの上書きはすべて :is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) の中だけに効かせる。
 *
 * 配色の考え方:
 *   機能ページではスライドの「種別」（目次・概要・詳細）が色の軸になっている。
 *   提案デッキはほぼ全部が概要スライドなので種別で塗り分けても情報にならない。
 *   ここでの軸は「実装状況」。地はすべて白にして、上端の罫とバッジの色で
 *   実装済み=青 / 実装中=琥珀 / 表紙=濃紺 を示す。緑は意味を持たないので使わない。
 * ========================================================================== */

/* 全画面は <dialog> が body 直下へ出るため .proposal の外になる。
 * トークンはデッキ本体にも定義し、どちらの文脈でも解決できるようにする。 */
.proposal,
.feature-deck[data-feature-deck^="proposal-"] {
  --pd-ink: #101a2e;
  --pd-ink-2: #4a5a72;
  --pd-ink-3: #6b7a92;
  --pd-rule: #dde4ee;
  --pd-tint: #f4f7fc;
  --pd-blue: #1d4ed8;
  --pd-blue-deep: #14328f;
  --pd-blue-tint: #eef3ff;
  --pd-amber: #b45309;
  --pd-amber-tint: #fdf4e6;
  --pd-cover: #101a2e;

  /* チャット図をLINEに寄せるためだけの色。スライドの地には使わない。 */
  --pd-line: #06c755;
}

.proposal {
  max-width: 1080px;
  margin: 0 auto;
  padding: clamp(56px, 8vw, 104px) 24px 112px;
}

/* ── ページの骨格 ───────────────────────────────────────── */

.proposal__eyebrow { margin: 0 0 12px; color: var(--pd-blue); font: 700 12px/1.5 Inter, sans-serif; letter-spacing: .16em; text-transform: uppercase; }
.proposal h1 { max-width: 20em; margin: 0; color: var(--pd-ink); font-size: clamp(32px, 5vw, 54px); font-weight: 700; line-height: 1.24; letter-spacing: -.02em; word-break: auto-phrase; }
.proposal__lead { max-width: 42em; margin: 22px 0 0; color: var(--pd-ink-2); font-size: clamp(16px, 1.7vw, 18px); line-height: 1.95; word-break: auto-phrase; }

.proposal__breadcrumb { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 0 0 24px; color: var(--pd-ink-3); font-size: 13px; }
.proposal__breadcrumb a { color: var(--pd-ink-3); text-decoration: none; }
.proposal__breadcrumb a:hover { color: var(--pd-blue); text-decoration: underline; }
.proposal__breadcrumb .mi { font-size: 16px; opacity: .5; }

/* 前提表示。ページに1つだけ置く（スライドごとの注記は出さない）。 */
.proposal__status { display: flex; gap: 12px; align-items: flex-start; max-width: 46em; margin: 32px 0 0; padding: 16px 18px; border: 1px solid var(--pd-rule); border-left: 3px solid var(--pd-blue); border-radius: 4px; background: var(--pd-tint); color: var(--pd-ink-2); font-size: 14px; line-height: 1.9; }
.proposal__status .mi { flex: none; margin-top: 2px; font-size: 20px; color: var(--pd-blue); }

/* ── ハブのカード ───────────────────────────────────────── */

.proposal__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(270px, 1fr)); gap: 20px; margin-top: 56px; }
.proposal-card { display: flex; flex-direction: column; padding: 28px 26px 26px; color: inherit; text-decoration: none; border: 1px solid var(--pd-rule); border-top: 3px solid var(--pd-blue); border-radius: 4px; background: #fff; transition: border-color .18s ease, transform .18s ease; }
.proposal-card:hover { border-color: var(--pd-blue); transform: translateY(-2px); }
.proposal-card:focus-visible { outline: 3px solid var(--pd-blue); outline-offset: 2px; }
.proposal-card__tag { align-self: flex-start; color: var(--pd-blue); font: 700 11px/1.4 Inter, sans-serif; letter-spacing: .12em; text-transform: uppercase; }
.proposal-card h2 { margin: 16px 0 12px; font-size: 21px; font-weight: 700; line-height: 1.5; color: var(--pd-ink); word-break: auto-phrase; }
.proposal-card p { margin: 0; color: var(--pd-ink-2); line-height: 1.85; font-size: 14px; word-break: auto-phrase; }
.proposal-card__meta { display: inline-flex; align-items: center; gap: 6px; margin-top: auto; padding-top: 20px; color: var(--pd-ink-3); font-size: 13px; font-variant-numeric: tabular-nums; }
.proposal-card__meta .mi { font-size: 17px; }
.proposal-card__link { display: inline-flex; align-items: center; gap: 6px; margin-top: 10px; color: var(--pd-blue); font-weight: 700; font-size: 14px; }

.proposal__deck { margin-top: 44px; }

/* ── デッキ本体（機能ページの配色をここで組み替える）────────── */

:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck { --deck-blue: var(--pd-blue); border: 1px solid var(--pd-rule); border-radius: 4px; background: #fff; margin-inline: 0; color: var(--pd-ink); overflow-wrap: normal; }
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__toolbar { background: #fff; border-top: 3px solid var(--pd-ink); border-bottom: 1px solid var(--pd-rule); }
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__toolbar > strong { font-size: 15px; letter-spacing: .01em; }
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__toc { background: var(--pd-tint); border-bottom: 1px solid var(--pd-rule); }
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__toc summary { font-size: 15px; }
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__rail { border-left: 1px solid var(--pd-rule); }

/* 地はすべて白。種別（目次・概要・詳細）では塗り分けない。 */
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__slide[data-slide-layout] { background: #fff; border-bottom: 1px solid var(--pd-rule); }

/* 実装状況を上端の罫で示す。デッキを繰ると状態が連続して見える。 */
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__slide[data-slide-badge] { border-top: 4px solid var(--pd-rule); }
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__slide[data-slide-badge="implemented"] { border-top-color: var(--pd-blue); }
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__slide[data-slide-badge="partial"] { border-top-color: var(--pd-amber); }
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__slide[data-slide-badge="in-progress"] { border-top-color: var(--pd-amber); }
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__slide[data-slide-badge="cover"] { border-top-color: var(--pd-cover); }

/* 状態バッジ。スライド1枚につき示す情報はこれだけ。 */
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__brand { align-items: center; margin-bottom: 28px; padding-bottom: 16px; border-bottom: 1px solid var(--pd-rule); }
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__brand img { width: 96px; height: 22px; opacity: .85; }
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__slide .feature-deck__brand > span:not(.feature-deck__section) { display: inline-flex; align-items: center; gap: 7px; padding: 5px 12px 5px 10px; border: 1px solid currentColor; border-radius: 999px; background: transparent; font-size: 12px; font-weight: 700; letter-spacing: .02em; white-space: nowrap; }
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__slide .feature-deck__brand > span:not(.feature-deck__section)::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__slide[data-slide-badge="implemented"] .feature-deck__brand > span:not(.feature-deck__section) { color: var(--pd-blue); background: var(--pd-blue-tint); border-color: transparent; }
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__slide[data-slide-badge="partial"] .feature-deck__brand > span:not(.feature-deck__section),
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__slide[data-slide-badge="in-progress"] .feature-deck__brand > span:not(.feature-deck__section) { color: var(--pd-amber); background: var(--pd-amber-tint); border-color: transparent; }

/* 見出し。装飾アイコンは出さず、日本語として読める位置で折り返す。 */
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck .feature-deck__heading-icon { display: none; }
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck .feature-deck__paper h2 { display: block; color: var(--pd-ink); font-size: clamp(25px, 3cqi, 44px); font-weight: 700; line-height: 1.38; letter-spacing: -.015em; margin: 0 0 18px; word-break: auto-phrase; }
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck .feature-deck__message { border-left: 0; padding-left: 0; color: var(--pd-ink-2); font-size: clamp(16px, 1.7cqi, 24px); line-height: 1.85; margin: 0 0 28px; word-break: auto-phrase; }
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__paper { padding: clamp(24px, 3cqi, 56px) clamp(24px, 5cqi, 72px) clamp(32px, 4cqi, 64px); }

/* できること */
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__capabilities { gap: 8px; margin-bottom: 28px; }
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__capabilities li { background: transparent; border: 1px solid var(--pd-rule); border-radius: 3px; color: var(--pd-ink-2); font-size: clamp(14px, 1.3cqi, 19px); font-weight: 600; padding: 7px 13px; }
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__capabilities .mi { color: var(--pd-blue); font-size: 1.05em; }

/* Before / After。左は現状（無彩色）、右は導入後（青）。緑は使わない。 */
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__comparison { gap: 14px; }
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__comparison section { border: 1px solid var(--pd-rule); border-top: 3px solid var(--pd-ink-3); border-radius: 3px; background: var(--pd-tint); padding: 20px 22px; }
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__comparison section:last-child { background: #fff; border: 1px solid var(--pd-blue); border-top: 3px solid var(--pd-blue); }
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__comparison h3 { color: var(--pd-ink-3); font-size: clamp(13px, 1.2cqi, 17px); font-weight: 700; letter-spacing: .1em; text-transform: uppercase; margin-bottom: 10px; }
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__comparison section:last-child h3 { color: var(--pd-blue); }
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__comparison h3 span { text-transform: none; letter-spacing: 0; color: var(--pd-ink); font-size: clamp(16px, 1.6cqi, 22px); margin-top: 6px; }
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__comparison p { color: var(--pd-ink-2); font-size: clamp(15px, 1.5cqi, 21px); line-height: 1.85; word-break: auto-phrase; }
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__change { color: var(--pd-ink-3); }

/* 期待できるメリット */
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__benefit-heading { color: var(--pd-ink-3); font-size: clamp(13px, 1.2cqi, 17px); font-weight: 700; letter-spacing: .1em; text-transform: uppercase; margin: 32px 0 14px; }
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__benefit-heading .mi { color: var(--pd-blue); }
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__benefits { gap: 12px; }
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__benefits li { background: transparent; border: 1px solid var(--pd-rule); border-bottom: 1px solid var(--pd-rule); border-left: 3px solid var(--pd-blue); border-radius: 3px; padding: 16px 18px; color: var(--pd-ink-2); font-size: clamp(14px, 1.4cqi, 19px); line-height: 1.8; word-break: auto-phrase; }
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__benefits .mi { color: var(--pd-blue); }

/* 詳細スライドの本文 */
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__body > ul { background: transparent; border: 0; border-top: 0; padding: 0 !important; }
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck .feature-deck__body ul { font-size: clamp(15px, 1.5cqi, 21px); line-height: 1.85; }
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__body li + li { margin-top: 14px; }
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__body li::marker { color: var(--pd-blue); }
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__map { background: var(--pd-tint); border: 1px solid var(--pd-rule); border-radius: 3px; }
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__map span { border-left: 3px solid var(--pd-blue); font-size: clamp(15px, 1.5cqi, 21px); }
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__screenshot { border: 1px solid var(--pd-rule); border-radius: 3px; box-shadow: none; }
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__image-hint { background: var(--pd-ink); font-size: 13px; }
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__body figcaption { color: var(--pd-ink-3); }

/* 表紙。1枚目だけ反転させ、ここから資料が始まることを示す。 */
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__slide[data-slide-badge="cover"] { background: var(--pd-cover); }
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__slide[data-slide-badge="cover"] .feature-deck__brand { border-bottom-color: rgba(255, 255, 255, .18); }
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__slide[data-slide-badge="cover"] .feature-deck__brand img { filter: brightness(0) invert(1); opacity: .9; }
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__slide[data-slide-badge="cover"] .feature-deck__brand > span:not(.feature-deck__section) { color: #fff; border-color: rgba(255, 255, 255, .45); }
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__slide[data-slide-badge="cover"] .feature-deck__paper h2 { color: #fff; font-size: clamp(28px, 3.6cqi, 52px); }
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__slide[data-slide-badge="cover"] .feature-deck__message { color: #c3cfe4; }
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__slide[data-slide-badge="cover"] .feature-deck__contents a { background: transparent; border: 1px solid rgba(255, 255, 255, .28); border-radius: 3px; color: #fff; box-shadow: none; font-weight: 600; }
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__slide[data-slide-badge="cover"] .feature-deck__contents a:hover { background: rgba(255, 255, 255, .1); border-color: #fff; color: #fff; }
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__slide[data-slide-badge="cover"] .feature-deck__contents a > .mi { background: transparent; color: rgba(255, 255, 255, .6); }
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__slide[data-slide-badge="cover"] .feature-deck__planned { color: #f3c98b; background: transparent; border-color: rgba(243, 201, 139, .5); }

/* 見出しが固定ツールバーに隠れないようにする（目次ジャンプ時）。 */
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__slide { scroll-margin-top: 190px; }

/* ── 出典と他の宛先 ─────────────────────────────────────── */

.proposal__sources { margin-top: 64px; padding-top: 40px; border-top: 1px solid var(--pd-rule); }
.proposal__sources h2 { margin: 0 0 12px; font-size: 20px; font-weight: 700; color: var(--pd-ink); }
.proposal__sources p { max-width: 42em; margin: 0 0 20px; color: var(--pd-ink-2); line-height: 1.9; font-size: 14px; }
.proposal__sources ul { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 8px; margin: 0 0 24px; padding: 0; list-style: none; }
.proposal__sources li { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px; padding: 11px 14px; border: 1px solid var(--pd-rule); border-radius: 3px; background: #fff; font-size: 13px; color: var(--pd-ink); }
.proposal__source-id { color: var(--pd-ink-3); font: 400 11px/1.4 Inter, monospace; }
.proposal__more { display: inline-flex; align-items: center; gap: 6px; color: var(--pd-blue); font-weight: 700; font-size: 14px; }

.proposal__others { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 48px; }
.proposal__others a { display: inline-flex; align-items: center; gap: 6px; padding: 12px 18px; border: 1px solid var(--pd-rule); border-radius: 3px; color: var(--pd-ink); text-decoration: none; font-size: 14px; font-weight: 600; background: #fff; }
.proposal__others a:hover { border-color: var(--pd-blue); color: var(--pd-blue); }

@media (max-width: 640px) {
  .proposal { padding-inline: 18px; }
  .proposal__sources ul { grid-template-columns: 1fr; }
  :is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__slide { scroll-margin-top: 150px; }
}

@media (prefers-reduced-motion: reduce) {
  .proposal-card { transition: none; }
  .proposal-card:hover { transform: none; }
}

/* ==========================================================================
 * コンセプトスライドの関係図
 * 規約どおり .fig.fig-pd-{id} で前置スコープする。画像は使わない。
 * ========================================================================== */

:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .fig[class*="fig-pd-"] { margin: 0; font-size: clamp(13px, 1.5cqi, 28px); line-height: 1.6; color: var(--pd-ink); }
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .fig[class*="fig-pd-"] figcaption { margin-top: .86em; color: var(--pd-ink-3); font-size: .86em; line-height: 1.7; }
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .fig[class*="fig-pd-"] p { margin: 0; }
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .fig[class*="fig-pd-"] ol { list-style: none; margin: 0; padding: 0; }

/* 別々の道具 → 一つの作業空間 */
.fig.fig-pd-one-stop .pd-os { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: .86em; }
.fig.fig-pd-one-stop .pd-os__cap { font-family: Inter, sans-serif; font-weight: 700; font-size: .79em; line-height: 1.4; letter-spacing: .12em; text-transform: uppercase; color: var(--pd-ink-3); margin-bottom: .73em !important; }
.fig.fig-pd-one-stop .pd-os__loose { display: grid; grid-template-columns: 1fr 1fr; gap: .43em; }
.fig.fig-pd-one-stop .pd-os__loose span { display: block; font-size: .86em; padding: .75em .67em; border: 1px dashed var(--pd-rule); border-radius: 3px; background: #fff; color: var(--pd-ink-3); text-align: center; }
.fig.fig-pd-one-stop .pd-os__loose span:nth-child(2) { transform: translateY(-4px); }
.fig.fig-pd-one-stop .pd-os__loose span:nth-child(3) { transform: translateY(4px); }
.fig.fig-pd-one-stop .pd-os__arrow { color: var(--pd-ink-3); font-size: 1.57em; }
.fig.fig-pd-one-stop .pd-os__box { position: relative; padding: 1.29em .71em .71em; border: 2px solid var(--pd-blue); border-radius: 4px; background: var(--pd-blue-tint); }
.fig.fig-pd-one-stop .pd-os__boxlabel { position: absolute; font-size: .79em; top: -.82em; left: .91em; padding: .09em .73em; background: var(--pd-blue); color: #fff; font-weight: 700; border-radius: 2px; }
.fig.fig-pd-one-stop .pd-os__panes { display: grid; grid-template-columns: 1fr 1fr; gap: .36em; }
.fig.fig-pd-one-stop .pd-os__panes span { display: block; font-size: .86em; padding: .75em .5em; border: 1px solid var(--pd-blue); border-radius: 2px; background: #fff; color: var(--pd-blue-deep); font-weight: 600; text-align: center; }
.fig.fig-pd-one-stop .pd-os__base { font-size: .79em; margin-top: .73em !important; padding-top: .64em; border-top: 1px solid var(--pd-blue); color: var(--pd-blue-deep); font-weight: 700; text-align: center; }
.fig.fig-pd-one-stop .pd-os__note { font-size: .79em; margin-top: .73em !important; color: var(--pd-ink-3); text-align: center; }

/* 依頼者 → 実行主体（AI） → 承認者 */
.fig.fig-pd-ai-user .pd-chain { display: grid; gap: .57em; }
.fig.fig-pd-ai-user .pd-chain li { position: relative; padding: .86em 1em; border: 1px solid var(--pd-rule); border-left: 3px solid var(--pd-ink-3); border-radius: 3px; background: #fff; }
.fig.fig-pd-ai-user .pd-chain li + li::before { content: "↓"; position: absolute; font-size: .86em; top: -.75em; left: 1.5em; color: var(--pd-ink-3); line-height: 1; }
.fig.fig-pd-ai-user .pd-chain__ai { border-left-color: var(--pd-blue) !important; background: var(--pd-blue-tint) !important; }
.fig.fig-pd-ai-user .pd-chain__kind { display: inline-block; font-size: .71em; min-width: 2.6em; padding: .1em .6em; margin-right: .8em; border-radius: 2px; background: var(--pd-ink-3); color: #fff; font-weight: 700; text-align: center; }
.fig.fig-pd-ai-user .pd-chain__ai .pd-chain__kind { background: var(--pd-blue); }
.fig.fig-pd-ai-user .pd-chain__role { color: var(--pd-ink-3); font-size: .79em; font-weight: 700; letter-spacing: .06em; }
.fig.fig-pd-ai-user .pd-chain strong { display: block; margin: .29em 0 .14em; font-size: 1em; color: var(--pd-ink); }
.fig.fig-pd-ai-user .pd-chain p { color: var(--pd-ink-2); font-size: .86em; }
.fig.fig-pd-ai-user .pd-chain__rail { display: flex; align-items: center; font-size: .86em; gap: .5em; margin-top: .83em !important; padding: .75em 1em; border: 1px dashed var(--pd-blue); border-radius: 3px; color: var(--pd-blue-deep); font-weight: 700; }
.fig.fig-pd-ai-user .pd-chain__rail .mi { font-size: 1.33em; }

/* チャット依頼 → 統制 → 実行 */
.fig.fig-pd-chat .pd-gate__start,
.fig.fig-pd-chat .pd-gate__end { display: flex; align-items: center; font-size: .93em; gap: .54em; padding: .77em .92em; border-radius: 3px; font-weight: 700; }
.fig.fig-pd-chat .pd-gate__start { background: var(--pd-ink); color: #fff; }
.fig.fig-pd-chat .pd-gate__end { background: var(--pd-blue-tint); color: var(--pd-blue-deep); border: 1px solid var(--pd-blue); }
.fig.fig-pd-chat .pd-gate { display: grid; gap: .43em; margin: .57em 0; padding-left: 1em; border-left: 2px solid var(--pd-blue); }
.fig.fig-pd-chat .pd-gate li { display: flex; align-items: baseline; gap: .71em; padding: .71em .86em; border: 1px solid var(--pd-rule); border-radius: 3px; background: #fff; }
.fig.fig-pd-chat .pd-gate__step { flex: none; font-size: .71em; padding: .1em .7em; border-radius: 2px; background: var(--pd-blue); color: #fff; font-weight: 700; letter-spacing: .06em; }
.fig.fig-pd-chat .pd-gate strong { font-size: .93em; color: var(--pd-ink); }
.fig.fig-pd-chat .pd-gate__stop { display: flex; align-items: center; font-size: .86em; gap: .58em; margin: 0 0 .67em 1.17em !important; padding: .75em 1em; border-left: 3px solid var(--pd-amber); border-radius: 0 3px 3px 0; background: var(--pd-amber-tint); color: var(--pd-amber); font-weight: 700; }
.fig.fig-pd-chat .pd-gate__stop .mi { font-size: 1.42em; flex: none; }
.fig.fig-pd-chat .pd-gate__start .mi, .fig.fig-pd-chat .pd-gate__end .mi { font-size: 1.31em; flex: none; }

@container (max-width: 620px) {
  .fig.fig-pd-one-stop .pd-os { grid-template-columns: 1fr; }
  .fig.fig-pd-one-stop .pd-os__arrow { justify-self: center; transform: rotate(90deg); }
}

/* ==========================================================================
 * 章ラベル・章扉・俯瞰図
 * ========================================================================== */

/* ブランド行の左に章名を出す。20枚のどこにいるかが常に分かるようにする。 */
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__section{
  margin-right:auto;font-family:Inter,"Noto Sans JP",sans-serif;font-size:11px;font-weight:700;
  letter-spacing:.14em;color:var(--pd-ink-3);white-space:nowrap;
}
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__brand img{margin-left:0}
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__slide[data-slide-badge="cover"] .feature-deck__section{color:rgba(255,255,255,.55)}

/* 章扉。本文を持たず、次の章が何かだけを大きく示す。 */
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__slide[data-slide-layout="divider"]{background:var(--pd-tint)}
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__slide[data-slide-badge="section"]{border-top-color:var(--pd-ink)}
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__slide[data-slide-layout="divider"] .feature-deck__paper{
  min-height:280px;display:flex;flex-direction:column;justify-content:center;
}
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__slide[data-slide-layout="divider"] .feature-deck__brand{
  margin-bottom:auto;border-bottom:0;padding-bottom:0;
}
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__slide[data-slide-layout="divider"] h2{
  font-size:clamp(26px,3.4cqi,46px);margin:28px 0 14px;
}
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__slide[data-slide-layout="divider"] .feature-deck__message{
  max-width:44em;margin-bottom:0;
}
/* 俯瞰図は図を主役にする。左の箇条書きは補足なので幅を譲る。 */
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__slide[data-feature-slide="coverage"] .feature-deck__body{
  grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);
}

/* 俯瞰図。塗り＝実装済み、破線＝実装中。バッジと同じ区別を1枚で見せる。 */
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .fig.fig-pd-coverage{margin:0}
.fig.fig-pd-coverage .pd-cov{display:grid;gap:1em}
.fig.fig-pd-coverage .pd-cov__group h3{
  margin:0 0 .64em;font-size:.79em;font-weight:700;letter-spacing:.12em;color:var(--pd-ink-3);
  font-family:Inter,"Noto Sans JP",sans-serif;
}
.fig.fig-pd-coverage .pd-cov__group ul{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(min(13.5em,100%),1fr));gap:.43em;margin:0;padding:0;list-style:none;
}
.fig.fig-pd-coverage .pd-cov__group li{
  font-size:.86em;padding:.67em 1em;border-radius:3px;font-weight:600;line-height:1.5;
}
.fig.fig-pd-coverage .pd-cov__implemented{background:var(--pd-blue);color:#fff;border:1px solid var(--pd-blue)}
.fig.fig-pd-coverage .pd-cov__partial,
.fig.fig-pd-coverage .pd-cov__in-progress{
  background:transparent;color:var(--pd-amber);border:1px dashed var(--pd-amber);
}
.fig.fig-pd-coverage .pd-cov__legend{
  display:flex;flex-wrap:wrap;align-items:center;font-size:.79em;gap:.73em 1.1em;margin-top:1.45em !important;
  padding-top:1.1em;border-top:1px solid var(--pd-rule);
}
.fig.fig-pd-coverage .pd-cov__key{padding:.36em .91em;border-radius:3px;font-weight:700}
.fig.fig-pd-coverage .pd-cov__tally{
  margin-left:auto;font-family:Inter,sans-serif;font-variant-numeric:tabular-nums;
  font-weight:700;color:var(--pd-ink-2);
}

/* 締めのスライドの行動導線 */
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .fig.fig-pd-next{margin:0;display:grid;gap:.86em}
.fig.fig-pd-next .pd-next__primary{
  display:flex;align-items:center;gap:.86em;padding:1.14em 1.29em;border-radius:4px;
  background:var(--pd-blue);color:#fff;text-decoration:none;
}
.fig.fig-pd-next .pd-next__primary:hover{background:var(--pd-blue-deep)}
.fig.fig-pd-next .pd-next__primary strong{display:block;font-size:1.07em;line-height:1.5}
.fig.fig-pd-next .pd-next__primary small{display:block;font-size:.86em;margin-top:.25em;opacity:.85;line-height:1.7}
.fig.fig-pd-next .pd-next__primary > .mi:first-child{font-size:1.57em;flex:none}
.fig.fig-pd-next .pd-next__go{margin-left:auto;flex:none}
.fig.fig-pd-next .pd-next__links{display:grid;gap:.43em;margin:0;padding:0;list-style:none}
.fig.fig-pd-next .pd-next__links a{
  display:flex;align-items:center;font-size:.93em;gap:.69em;padding:.92em 1.08em;border:1px solid var(--pd-rule);
  border-radius:3px;color:var(--pd-ink);text-decoration:none;font-weight:600;background:#fff;
}
.fig.fig-pd-next .pd-next__links a:hover{border-color:var(--pd-blue);color:var(--pd-blue)}
.fig.fig-pd-next .pd-next__links .mi{font-size:1.38em;color:var(--pd-blue)}
.fig.fig-pd-next .pd-next__org{
  font-size:.82em;margin-top:.35em !important;padding-top:.87em;border-top:1px solid var(--pd-rule);
  color:var(--pd-ink-3);
}
/* 出典・時点の表示 */
.proposal__asof{margin:10px 0 0;color:var(--pd-ink-3);font-size:12.5px}


/* ==========================================================================
 * 利用シーン（チャット）
 *
 * 見た目はスマートフォンのチャットアプリに寄せる。相手は左（アイコンと名前）、
 * 自分は右。吹き出しにしっぽを付け、時刻と既読を添える。
 * 配色は提案デッキの青系のまま。緑はスライドの配色から外しているので使わない。
 * 寸法はすべて em で、図の基準（cqi）に追随させる。
 * ========================================================================== */

:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__scene { margin-top: 1.4em; }
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .fig.fig-pd-scene { margin: 0; }

.fig.fig-pd-scene .pd-scene { display: grid; grid-template-columns: 1fr auto 1fr; align-items: start; gap: .86em; }
.fig.fig-pd-scene .pd-scene__arrow { align-self: center; color: var(--pd-ink-3); font-size: 1.57em; }

/* ── チャットの枠 ─────────────────────────────── */
.fig.fig-pd-scene .pd-chat { border: 1px solid var(--pd-rule); border-radius: 10px; overflow: hidden; background: #c2cad4; }
.fig.fig-pd-scene .pd-chat--after { border-color: var(--pd-blue); background: #a6c3e3; }

.fig.fig-pd-scene .pd-chat__bar {
  display: flex; align-items: center; gap: .5em; padding: .71em 1.15em;
  background: #f2f4f7; border-bottom: 1px solid rgba(16, 26, 46, .12);
  font-size: .79em; font-weight: 700; line-height: 1.5; color: var(--pd-ink-2);
}
.fig.fig-pd-scene .pd-chat--after .pd-chat__bar { background: #fff; color: var(--pd-ink); }
.fig.fig-pd-scene .pd-chat__bar .mi { flex: none; font-size: 1.35em; }
.fig.fig-pd-scene .pd-chat__room { flex: 1 1 auto; min-width: 0; }
.fig.fig-pd-scene .pd-chat__count {
  flex: none; padding: 0 .55em; border-radius: 999px; background: rgba(16, 26, 46, .1);
  font-variant-numeric: tabular-nums; font-size: .92em;
}
.fig.fig-pd-scene .pd-chat--after .pd-chat__count { background: rgba(29, 78, 216, .12); color: var(--pd-blue-deep); }

/* ── 発言 ─────────────────────────────────── */
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .fig.fig-pd-scene .pd-chat__log { display: grid; gap: .5em; margin: 0; padding: 1.15em 1.15em 1.4em; list-style: none; }
.fig.fig-pd-scene .pd-chat__row { display: flex; align-items: flex-start; gap: .5em; }
.fig.fig-pd-scene .pd-chat__row--self { justify-content: flex-end; }
.fig.fig-pd-scene .pd-chat__row.is-grouped { margin-top: -.28em; }

.fig.fig-pd-scene .pd-chat__avatar {
  flex: none; display: grid; place-items: center; width: 2.4em; height: 2.4em; border-radius: 50%;
  background: var(--pd-ink-3); color: #fff; font-size: .79em; font-weight: 700; letter-spacing: 0;
}
.fig.fig-pd-scene .pd-chat__row--ai .pd-chat__avatar { background: var(--pd-blue); }
.fig.fig-pd-scene .pd-chat__row .pd-chat__avatar--ghost { background: transparent; color: transparent; }

.fig.fig-pd-scene .pd-chat__stack { min-width: 0; max-width: 76%; display: grid; gap: .14em; }
.fig.fig-pd-scene .pd-chat__row--self .pd-chat__stack { justify-items: end; }
.fig.fig-pd-scene .pd-chat__name { font-size: .72em; font-weight: 700; color: rgba(16, 26, 46, .7); padding-left: .2em; }

.fig.fig-pd-scene .pd-chat__line { display: flex; align-items: flex-end; gap: .43em; }
.fig.fig-pd-scene .pd-chat__row--self .pd-chat__line { flex-direction: row; }

.fig.fig-pd-scene .pd-chat__bubble {
  position: relative; margin: 0 !important; padding: .6em .9em; border-radius: 1.3em;
  background: #fff; color: var(--pd-ink); font-size: .93em; line-height: 1.6;
  box-shadow: 0 1px 1px rgba(16, 26, 46, .06);
}
/* しっぽ。左は左上、右は右上に付ける。 */
.fig.fig-pd-scene .pd-chat__row--other .pd-chat__bubble::before {
  content: ""; position: absolute; top: .64em; left: -.36em; width: .5em; height: .64em;
  background: inherit; clip-path: polygon(100% 0, 100% 100%, 0 0);
}
.fig.fig-pd-scene .pd-chat__row--self .pd-chat__bubble::before {
  content: ""; position: absolute; top: .64em; right: -.36em; width: .5em; height: .64em;
  background: inherit; clip-path: polygon(0 0, 0 100%, 100% 0);
}
.fig.fig-pd-scene .pd-chat__row.is-grouped .pd-chat__bubble::before { display: none; }

.fig.fig-pd-scene .pd-chat__row--ai .pd-chat__bubble { background: #fff; border-left: 3px solid var(--pd-blue); border-radius: .5em 1.3em 1.3em .5em; }
.fig.fig-pd-scene .pd-chat__row--ai .pd-chat__bubble::before { display: none; }

.fig.fig-pd-scene .pd-chat--before .pd-chat__row--self .pd-chat__bubble { background: #9fb0c4; color: #fff; }
.fig.fig-pd-scene .pd-chat--after .pd-chat__row--self .pd-chat__bubble { background: var(--pd-line); color: #06341a; }

.fig.fig-pd-scene .pd-chat__meta {
  flex: none; display: grid; justify-items: end; gap: 0; font-size: .68em; line-height: 1.4;
  color: rgba(16, 26, 46, .62); font-variant-numeric: tabular-nums;
}
.fig.fig-pd-scene .pd-chat__row--other .pd-chat__meta { justify-items: start; }
.fig.fig-pd-scene .pd-chat__read { font-weight: 700; }
.fig.fig-pd-scene .pd-chat__read { color: rgba(16, 26, 46, .55); }

/* ── 下の一行 ─────────────────────────────── */
.fig.fig-pd-scene .pd-chat__foot {
  margin: 0 !important; padding: .86em 1.15em 1em; border-top: 1px solid var(--pd-rule);
  background: #fff; font-size: .86em; line-height: 1.65; color: var(--pd-ink-2);
}
.fig.fig-pd-scene .pd-chat__foot span {
  display: block; margin-bottom: .17em; font-size: .83em; font-weight: 700;
  letter-spacing: .08em; color: var(--pd-ink-3);
}
.fig.fig-pd-scene .pd-chat--after .pd-chat__foot { border-top-color: var(--pd-blue); color: var(--pd-blue-deep); font-weight: 700; }
.fig.fig-pd-scene .pd-chat--after .pd-chat__foot span { color: var(--pd-blue); }

/* 利用シーンは実装状況の軸に載せない。上端の罫とバッジは中間色にする。 */
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__slide[data-slide-badge="scene"] { border-top-color: var(--pd-ink-3); }
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__slide[data-slide-badge="scene"] .feature-deck__brand > span:not(.feature-deck__section) {
  color: var(--pd-ink-2); background: var(--pd-tint); border-color: transparent;
}

@container (max-width: 760px) {
  .fig.fig-pd-scene .pd-scene { grid-template-columns: 1fr; }
  .fig.fig-pd-scene .pd-scene__arrow { justify-self: center; transform: rotate(90deg); }
  .fig.fig-pd-scene .pd-chat__stack { max-width: 84%; }
}

/* 計算の根拠。数値を返した発言の下に、式と対象範囲を添える。 */
.fig.fig-pd-scene .pd-chat__calc {
  display: grid; gap: .21em; margin-top: .36em; padding: .57em .71em;
  border: 1px solid var(--pd-rule); border-left: 3px solid var(--pd-blue);
  border-radius: .36em; background: #fff;
}
.fig.fig-pd-scene .pd-chat__calc-label {
  display: flex; align-items: center; gap: .3em; font-size: .68em; font-weight: 700;
  letter-spacing: .06em; color: var(--pd-blue);
}
.fig.fig-pd-scene .pd-chat__calc-label .mi { font-size: 1.3em; }
.fig.fig-pd-scene .pd-chat__calc-expr {
  font-family: Inter, "Noto Sans JP", ui-monospace, monospace; font-size: .82em; font-weight: 700;
  line-height: 1.55; color: var(--pd-ink); font-variant-numeric: tabular-nums; overflow-wrap: anywhere;
}
.fig.fig-pd-scene .pd-chat__calc-basis { font-size: .72em; line-height: 1.6; color: var(--pd-ink-3); }

/* まとめた資料。チャットには該当だけを書き、全体と判断ポイントは別URLで見せる。 */
.fig.fig-pd-scene .pd-chat__doc {
  display: grid; gap: .21em; margin-top: .36em; padding: .64em .79em;
  border: 1px solid var(--pd-rule); border-radius: .5em; background: #fff;
  box-shadow: 0 1px 1px rgba(16, 26, 46, .06);
}
.fig.fig-pd-scene .pd-chat__doc-label {
  display: flex; align-items: center; gap: .3em; font-size: .68em; font-weight: 700;
  letter-spacing: .06em; color: var(--pd-ink-3);
}
.fig.fig-pd-scene .pd-chat__doc-label .mi { font-size: 1.3em; }
.fig.fig-pd-scene .pd-chat__doc-title { font-size: .86em; font-weight: 700; line-height: 1.5; color: var(--pd-ink); }
.fig.fig-pd-scene .pd-chat__doc-url {
  display: flex; align-items: center; gap: .26em; font-family: Inter, ui-monospace, monospace;
  font-size: .72em; line-height: 1.5; color: var(--pd-blue); overflow-wrap: anywhere;
}
.fig.fig-pd-scene .pd-chat__doc-url .mi { flex: none; font-size: 1.25em; }
.fig.fig-pd-scene .pd-chat__doc-heading {
  margin-top: .3em; padding-top: .36em; border-top: 1px solid var(--pd-rule);
  font-size: .68em; font-weight: 700; letter-spacing: .06em; color: var(--pd-ink-3);
}
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .fig.fig-pd-scene .pd-chat__doc-points {
  display: grid; gap: .14em; margin: 0; padding: 0; list-style: none;
}
.fig.fig-pd-scene .pd-chat__doc-points li {
  position: relative; padding-left: .93em; font-size: .75em; line-height: 1.6; color: var(--pd-ink-2);
}
.fig.fig-pd-scene .pd-chat__doc-points li::before {
  content: ""; position: absolute; left: .21em; top: .6em; width: .29em; height: .29em;
  border-radius: 50%; background: var(--pd-blue);
}

/* ── モジュール表紙 ────────────────────────────────────────────
   機能の前に1枚置いて、何をする機能かと近い道具の名前を示す。
   章の切り替わりだと一目で分かるよう、メインカラーの地に白抜きで置く。 */
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__slide[data-slide-badge="module"] {
  background: var(--pd-blue-deep); border-top-color: var(--pd-blue);
}
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__slide[data-slide-badge="module"] .feature-deck__brand { border-bottom-color: rgba(255, 255, 255, .18); }
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__slide[data-slide-badge="module"] .feature-deck__brand img { filter: brightness(0) invert(1); opacity: .9; }
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__slide[data-slide-badge="module"] .feature-deck__brand > span:not(.feature-deck__section) { color: #fff; background: transparent; border-color: rgba(255, 255, 255, .45); }
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__slide[data-slide-badge="module"] .feature-deck__section { color: rgba(255, 255, 255, .58); }
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__slide[data-slide-badge="module"] .feature-deck__paper h2 { color: #fff; }
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__slide[data-slide-badge="module"] .feature-deck__heading-icon { color: var(--pd-blue-deep); background: #fff; }
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__slide[data-slide-badge="module"] .feature-deck__message { color: #d7e2f7; }

:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__module {
  display: grid; gap: clamp(14px, 1.7cqi, 26px); margin-top: clamp(16px, 2cqi, 30px);
  grid-template-columns: minmax(min(22em, 100%), 1.15fr) minmax(min(18em, 100%), 1fr);
  align-items: start;
}
@media (max-width: 720px) {
  :is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__module { grid-template-columns: 1fr; }
}
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__module-category {
  grid-column: 1 / -1; display: flex; align-items: center; gap: .4em; margin: 0;
  font-size: clamp(12px, 1.35cqi, 21px); font-weight: 700; letter-spacing: .02em; color: rgba(255, 255, 255, .72);
}
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__module-category .mi { font-size: 1.25em; color: rgba(255, 255, 255, .55); }

:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__module-familiar,
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__module-distinct {
  padding: clamp(14px, 1.6cqi, 26px); border-radius: 6px;
  background: rgba(255, 255, 255, .07); border: 1px solid rgba(255, 255, 255, .2);
}
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__module-distinct {
  background: rgba(255, 255, 255, .13); border-color: rgba(255, 255, 255, .42);
}
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__module h3 {
  margin: 0 0 .7em; font-size: clamp(12px, 1.35cqi, 21px); font-weight: 700;
  letter-spacing: .04em; color: rgba(255, 255, 255, .72);
}
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__module-distinct h3 { color: #fff; }
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__module-familiar ul {
  display: flex; flex-wrap: wrap; gap: .45em; margin: 0; padding: 0; list-style: none;
}
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__module-familiar li {
  padding: .3em .72em; border: 1px solid rgba(255, 255, 255, .38); border-radius: 999px;
  background: rgba(255, 255, 255, .1);
  font-size: clamp(12px, 1.45cqi, 23px); font-weight: 600; line-height: 1.5; color: #fff;
}
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__module-caveat {
  margin: .85em 0 0; font-size: clamp(11px, 1.15cqi, 18px); line-height: 1.6; color: rgba(255, 255, 255, .62);
}
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__module-distinct p {
  margin: 0; font-size: clamp(13px, 1.5cqi, 24px); line-height: 1.75; color: #fff;
}

/* ── 場面の漫画 ────────────────────────────────────────────────
   会話の図と同じ内容を1枚の絵で見せる。絵が主役なので枠は最小限に。 */
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__slide[data-slide-badge="manga"] { border-top-color: var(--pd-ink); }
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__manga {
  margin: clamp(14px, 1.8cqi, 28px) 0 0;
}
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__manga a {
  display: block; border: 1px solid var(--pd-rule); border-radius: 8px; overflow: hidden; background: #fff;
}
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__manga a:hover { border-color: var(--pd-blue); }
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__manga img {
  display: block; width: 100%; height: auto;
}
:is(.proposal__deck, .feature-deck[data-feature-deck^="proposal-"]) .feature-deck__manga figcaption {
  margin-top: .7em; font-size: clamp(11px, 1.15cqi, 18px); line-height: 1.6; color: var(--pd-ink-3);
}
