/* ==========================================================================
   content.css — 記事本文（ブロックエディタ出力）のスタイル
   公開側（.p-article__body）とブロックエディタ（.is-root-container）の両方で読み込む。
   旧レイアウトの本文をそのまま出す固定ページ（page.php の .rz-legacy-page）にも適用する。

   旧テーマの本文パーツ（ブロックパターン由来の p-detail-* / c-list-check / c-btn1 / fz22 など）は
   **HTML・クラス名はそのまま**に、見た目だけ新デザインのトークンで作り直している。
   旧テーマは紺地に白文字だったため、旧 CSS をそのまま持ってくると白地で読めなくなる点に注意。
   ========================================================================== */

/* ---- 基本ブロック ---- */
:is(.p-article__body, .is-root-container, .rz-legacy-page) > :first-child { margin-top: 0; }
:is(.p-article__body, .is-root-container, .rz-legacy-page) h2 { scroll-margin-top: calc(var(--header-height) + 24px); }
:is(.p-article__body, .is-root-container, .rz-legacy-page) .ez-toc-section { scroll-margin-top: calc(var(--header-height) + 24px); }
:is(.p-article__body, .is-root-container, .rz-legacy-page) h4 { margin-top: 32px; font-size: var(--fs-body); font-weight: var(--fw-bold); line-height: 1.7; }
:is(.p-article__body, .is-root-container, .rz-legacy-page) a:not([class]) { color: var(--blue-600); text-decoration: underline; text-underline-offset: 3px; }
:is(.p-article__body, .is-root-container, .rz-legacy-page) img { max-width: 100%; height: auto; border-radius: var(--radius-md); }
:is(.p-article__body, .is-root-container, .rz-legacy-page) figcaption { margin-top: 10px; font-size: var(--fs-i-13); line-height: 1.6; color: var(--text-muted); }

/* ブロック間の余白（旧テーマは flex gap 5rem 相当） */
:is(.p-article__body, .is-root-container, .rz-legacy-page) > :is(figure, .wp-block-image, .wp-block-group, .wp-block-columns, .wp-block-buttons, .wp-block-table, .wp-block-embed, blockquote, table, ul, ol, [class*="p-detail-"], .c-list-check, .c-btn1) { margin-top: 32px; }

/* リスト：旧テーマの「●」「①」をデザインの色（金の点／紺の丸数字）で */
:is(.p-article__body, .is-root-container, .rz-legacy-page) :is(ul:not([class]), ul.wp-block-list:not(.c-list-check), ol) {
  display: flex; flex-direction: column; gap: 12px; padding-left: 0; list-style: none;
  font-size: var(--fs-body); line-height: 1.8; color: var(--navy-600);
}
:is(.p-article__body, .is-root-container, .rz-legacy-page) :is(ul:not([class]), ul.wp-block-list:not(.c-list-check), ol) > li { position: relative; padding-left: 28px; }
:is(.p-article__body, .is-root-container, .rz-legacy-page) :is(ul:not([class]), ul.wp-block-list:not(.c-list-check)) > li::before {
  content: ""; position: absolute; left: 8px; top: .8em; width: 6px; height: 6px; border-radius: 50%; background: var(--gold-500);
}
:is(.p-article__body, .is-root-container, .rz-legacy-page) ol { counter-reset: rz-ol; }
:is(.p-article__body, .is-root-container, .rz-legacy-page) ol > li { counter-increment: rz-ol; padding-left: 36px; }
:is(.p-article__body, .is-root-container, .rz-legacy-page) ol > li::before {
  content: counter(rz-ol); position: absolute; left: 0; top: .15em;
  display: flex; align-items: center; justify-content: center; width: 24px; height: 24px; border-radius: 50%;
  background: var(--navy-800); color: var(--text-on-dark); font-family: var(--font-latin); font-size: 12px; font-weight: var(--fw-semibold); line-height: 1;
}

/* 引用（旧テーマ：半透明ボックス＋引用符アイコン → デザインの .c-quote に寄せる） */
:is(.p-article__body, .is-root-container, .rz-legacy-page) blockquote {
  position: relative; margin-left: 0; margin-right: 0; padding: 40px 44px; background: var(--surface-alt); border-radius: var(--radius-lg); border-left: 3px solid var(--gold-400);
  font-family: var(--font-serif); font-size: var(--fs-i-17); line-height: 2; color: var(--text-strong);
}
:is(.p-article__body, .is-root-container, .rz-legacy-page) blockquote p { margin-top: 0; font: inherit; color: inherit; }
:is(.p-article__body, .is-root-container, .rz-legacy-page) blockquote p + p { margin-top: 1em; }
:is(.p-article__body, .is-root-container, .rz-legacy-page) blockquote cite { display: block; margin-top: 16px; font-family: var(--font-sans, inherit); font-style: normal; font-size: var(--fs-i-13); color: var(--text-muted); }

/* 表（標準ブロック） */
:is(.p-article__body, .is-root-container, .rz-legacy-page) table { width: 100%; border-collapse: collapse; border-top: 2px solid var(--navy-800); font-size: var(--fs-i-14); }
:is(.p-article__body, .is-root-container, .rz-legacy-page) :is(th, td) { padding: 16px 20px; border-bottom: 1px solid var(--border-card); text-align: left; vertical-align: top; line-height: 1.8; color: var(--text-strong); }
:is(.p-article__body, .is-root-container, .rz-legacy-page) th { background: var(--surface-alt); font-family: var(--font-serif); font-weight: var(--fw-semibold); }
:is(.p-article__body, .is-root-container, .rz-legacy-page) .wp-block-table { overflow-x: auto; }

/* ボタン（標準ブロック） */
:is(.p-article__body, .is-root-container, .rz-legacy-page) .wp-block-button__link {
  display: inline-flex; align-items: center; justify-content: center; min-height: 52px; padding: 0 32px;
  border-radius: var(--radius-md); background: var(--grad-gold-cta); color: var(--text-on-dark); font-weight: var(--fw-bold); text-decoration: none;
}

/* 埋め込み */
:is(.p-article__body, .is-root-container, .rz-legacy-page) .wp-block-embed iframe { max-width: 100%; }
:is(.p-article__body, .is-root-container, .rz-legacy-page) .wp-block-embed.is-type-video .wp-block-embed__wrapper { position: relative; aspect-ratio: 16 / 9; }
:is(.p-article__body, .is-root-container, .rz-legacy-page) .wp-block-embed.is-type-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; }

/* ==========================================================================
   旧テーマの本文パーツ（構成・クラス名は旧テーマのまま）
   ========================================================================== */

/* 見出し風テキスト */
:is(.p-article__body, .is-root-container, .rz-legacy-page) :is(.fz22, .fz24) { font-family: var(--font-serif); font-size: var(--fs-i-20); font-weight: var(--fw-semibold); line-height: 1.6; color: var(--text-strong); }
:is(.p-article__body, .is-root-container, .rz-legacy-page) .fz24 { font-size: var(--fs-i-24); }

/* ボックス（.p-detail-box＝グレー面／.p-detail-box2＝白カード） */
:is(.p-article__body, .is-root-container, .rz-legacy-page) :is(.p-detail-box, .p-detail-box2) { padding: 40px; border-radius: var(--radius-lg); line-height: 1.8; color: var(--text-strong); }
:is(.p-article__body, .is-root-container, .rz-legacy-page) .p-detail-box { background: var(--surface-alt); border: 1px solid var(--border-card); }
:is(.p-article__body, .is-root-container, .rz-legacy-page) .p-detail-box2 { background: var(--surface-card); border: var(--border-width-card) solid var(--border-card); box-shadow: var(--shadow-card); }
:is(.p-article__body, .is-root-container, .rz-legacy-page) .p-detail-box .fz22 { margin-bottom: 24px; padding-bottom: 16px; border-bottom: 1px solid var(--border-inner); }
:is(.p-article__body, .is-root-container, .rz-legacy-page) :is(.p-detail-box, .p-detail-box2) > :first-child { margin-top: 0; }
:is(.p-article__body, .is-root-container, .rz-legacy-page) :is(.p-detail-box, .p-detail-box2) p:not(.fz22, .fz24) { font-size: var(--fs-i-15); }
/* 旧テーマの本文パーツ内の段落は上の余白なし（旧テーマと同じ。記事本文直下の段落の余白 .p-article p は新デザインのまま）。
   個別に余白を持つパーツ（資料ダウンロード等）は、この後の各ルールで上書き */
:is(.p-article__body, .is-root-container, .rz-legacy-page) [class*="p-detail-"] p { margin-top: 0; }

/* ---- 横並びのパーツ：並び方・SP での切り替え（800px 以下）は旧テーマと同じ ----
   .p-detail-column      画像＋テキスト横並び → SP は縦積み（画像が上）
   .p-detail-columnimg   画像2枚横並び → SP も横並びのまま
   .p-detail-interview   アイコン＋発言横並び（--rev は左右反転）→ SP はアイコンを名前の横に小さく
   .p-detail-guest__prof 写真＋プロフィール横並び → SP は縦積み
   .p-detail-table       th／td 横並び → SP は縦積み
   標準ブロック（カラム・メディアとテキスト・ギャラリー）は WordPress 標準の CSS のまま（旧テーマも同じ） */

/* 画像＋テキストの2カラム */
:is(.p-article__body, .is-root-container, .rz-legacy-page) .p-detail-column { display: flex; justify-content: space-between; align-items: flex-start; gap: 32px; }
:is(.p-article__body, .is-root-container, .rz-legacy-page) .p-detail-column__img { flex: 0 0 240px; }
:is(.p-article__body, .is-root-container, .rz-legacy-page) .p-detail-column__img img { display: block; width: 100%; }
:is(.p-article__body, .is-root-container, .rz-legacy-page) .p-detail-column__txt { flex: 1 1 auto; min-width: 0; }
:is(.p-article__body, .is-root-container, .rz-legacy-page) .p-detail-column__txt > :first-child { margin-top: 0; }

/* 画像2枚並び */
:is(.p-article__body, .is-root-container, .rz-legacy-page) .p-detail-columnimg { display: flex; justify-content: space-between; align-items: flex-start; gap: 24px; }
:is(.p-article__body, .is-root-container, .rz-legacy-page) .p-detail-columnimg figure { flex: 1 1 0; min-width: 0; margin: 0; }

/* インタビュー（話者アイコン＋名前＋発言） */
:is(.p-article__body, .is-root-container, .rz-legacy-page) .p-detail-interview { display: flex; align-items: flex-start; gap: 20px; }
:is(.p-article__body, .is-root-container, .rz-legacy-page) .p-detail-interview--rev { flex-direction: row-reverse; }
:is(.p-article__body, .is-root-container, .rz-legacy-page) .p-detail-interview__img { flex: 0 0 80px; width: 80px; height: 80px; border-radius: 50%; overflow: hidden; background: var(--surface-alt); box-shadow: 0 0 0 3px var(--surface-card), 0 0 0 4px var(--gold-300); }
:is(.p-article__body, .is-root-container, .rz-legacy-page) .p-detail-interview__img img { width: 100%; height: 100%; object-fit: cover; border-radius: 0; }
:is(.p-article__body, .is-root-container, .rz-legacy-page) .p-detail-interview > :not(.p-detail-interview__img) { flex: 1 1 auto; min-width: 0; }
:is(.p-article__body, .is-root-container, .rz-legacy-page) .p-detail-interview__name { margin: 0 0 8px; font-size: var(--fs-i-15); font-weight: var(--fw-bold); line-height: 1.5; color: var(--color-gold-text); }
:is(.p-article__body, .is-root-container, .rz-legacy-page) .p-detail-interview p:not(.p-detail-interview__name) { margin-top: 0; }

/* 資料ダウンロード誘導 */
:is(.p-article__body, .is-root-container, .rz-legacy-page) .p-detail-download { line-height: 1.7; font-size: var(--fs-i-15); }
:is(.p-article__body, .is-root-container, .rz-legacy-page) .p-detail-download .fz22 { font-weight: var(--fw-semibold); }
:is(.p-article__body, .is-root-container, .rz-legacy-page) .p-detail-download p { margin: 0 0 20px; }
:is(.p-article__body, .is-root-container, .rz-legacy-page) .p-detail-download:not(.p-detail-column) p { text-align: center; }
:is(.p-article__body, .is-root-container, .rz-legacy-page) .p-detail-download:not(.p-detail-column) .c-btn1 { margin-left: auto; margin-right: auto; }
:is(.p-article__body, .is-root-container, .rz-legacy-page) .p-detail-download .c-btn1 { width: 100%; max-width: 400px; }

/* 登壇者・ゲスト紹介 */
:is(.p-article__body, .is-root-container, .rz-legacy-page) .p-detail-guest .fz24 { margin-bottom: 32px; }
:is(.p-article__body, .is-root-container, .rz-legacy-page) .p-detail-guest__item { display: flex; flex-direction: column; gap: 24px; font-size: var(--fs-i-15); line-height: 1.9; }
:is(.p-article__body, .is-root-container, .rz-legacy-page) .p-detail-guest__item:not(:first-of-type) { margin-top: 32px; padding-top: 32px; border-top: 1px solid var(--border-inner); }
:is(.p-article__body, .is-root-container, .rz-legacy-page) .p-detail-guest__item p { margin-top: 0; }
:is(.p-article__body, .is-root-container, .rz-legacy-page) .p-detail-guest__prof { display: flex; align-items: center; gap: 32px; }
:is(.p-article__body, .is-root-container, .rz-legacy-page) .p-detail-guest__prof__img { flex: 0 0 120px; width: 120px; height: 120px; border-radius: 50%; overflow: hidden; background: var(--surface-alt); }
:is(.p-article__body, .is-root-container, .rz-legacy-page) .p-detail-guest__prof__img img { width: 100%; height: 100%; object-fit: cover; border-radius: 0; }
:is(.p-article__body, .is-root-container, .rz-legacy-page) .p-detail-guest__prof__txt .fz22 { margin-bottom: 6px; }
:is(.p-article__body, .is-root-container, .rz-legacy-page) .p-detail-guest__prof__job { font-size: var(--fs-i-12); line-height: 1.6; color: var(--text-muted); }

/* 表（旧テーマの .p-detail-table） */
:is(.p-article__body, .is-root-container, .rz-legacy-page) .p-detail-table { width: 100%; border-top: 2px solid var(--navy-800); line-height: 1.8; }
:is(.p-article__body, .is-root-container, .rz-legacy-page) .p-detail-table :is(th, td) { padding: 18px 20px; border: 0; border-bottom: 1px solid var(--border-card); }
:is(.p-article__body, .is-root-container, .rz-legacy-page) .p-detail-table th { width: 180px; background: var(--surface-alt); }
:is(.p-article__body, .is-root-container, .rz-legacy-page) .p-detail-table td ul { gap: 6px; }

/* プロフィール（2カラムの画像サイズ調整用。PCは .p-detail-column のまま） */

/* ブログカード（旧テーマが本文に出していた静的 HTML 用。埋め込み URL は inc/legacy.php で .rz-blogcard に変換） */
:is(.p-article__body, .is-root-container, .rz-legacy-page) .p-detail-blogcard { padding: 20px; font-size: var(--fs-i-14); line-height: 1.6; }
:is(.p-article__body, .is-root-container, .rz-legacy-page) .p-detail-blogcard > a { color: var(--text-strong); text-decoration: none; }
:is(.p-article__body, .is-root-container, .rz-legacy-page) .p-detail-blogcard .p-detail-column__img { flex-basis: 200px; }
:is(.p-article__body, .is-root-container, .rz-legacy-page) .p-detail-blogcard__date { display: flex; gap: 10px; margin-bottom: 10px; font-family: var(--font-latin); font-size: var(--fs-i-12); color: var(--text-muted); }
:is(.p-article__body, .is-root-container, .rz-legacy-page) .p-detail-blogcard__cate { font-weight: var(--fw-bold); color: var(--color-gold-text); }
:is(.p-article__body, .is-root-container, .rz-legacy-page) .p-detail-blogcard__hdg { margin: 0 0 8px; font-size: var(--fs-i-17); font-weight: var(--fw-bold); line-height: 1.6; }
:is(.p-article__body, .is-root-container, .rz-legacy-page) .p-detail-blogcard__txt { margin: 0; font-size: var(--fs-i-13); color: var(--text-muted); }

/* チェックリスト（旧テーマの .c-list-check。アイコン画像ではなく CSS で描画） */
:is(.p-article__body, .is-root-container, .rz-legacy-page) .c-list-check { display: flex; flex-direction: column; gap: 14px; padding: 0; list-style: none; font-size: var(--fs-body); line-height: 1.6; color: var(--text-strong); }
:is(.p-article__body, .is-root-container, .rz-legacy-page) .c-list-check__item { position: relative; display: block; padding-left: 34px; }
:is(.p-article__body, .is-root-container, .rz-legacy-page) .c-list-check__item::before {
  content: ""; position: absolute; left: 0; top: .1em; width: 22px; height: 22px; border-radius: 50%; background: var(--grad-gold-cta);
}
:is(.p-article__body, .is-root-container, .rz-legacy-page) .c-list-check__item::after {
  content: ""; position: absolute; left: 8px; top: calc(.1em + 5px); width: 6px; height: 10px; border-right: 2px solid #fff; border-bottom: 2px solid #fff; transform: rotate(45deg);
}

/* ボタン（旧テーマの .c-btn1。白い丸ボタン → デザインの金ボタン） */
:is(.p-article__body, .is-root-container, .rz-legacy-page) .c-btn1 {
  display: flex; align-items: center; justify-content: center; width: fit-content; min-height: 56px; padding: 0 36px;
  border-radius: var(--radius-md); background: var(--grad-gold-cta); box-shadow: var(--shadow-btn);
  color: var(--text-on-dark); font-weight: var(--fw-bold); font-size: var(--fs-i-15); line-height: 1.4; text-decoration: none !important; white-space: normal; text-align: center;
  transition: opacity var(--dur-base);
}
:is(.p-article__body, .is-root-container, .rz-legacy-page) .c-btn1:hover { opacity: .85; color: var(--text-on-dark); }
/* グループブロックで組んだボタン（div.c-btn1 > p.c-btn1__txt > a）：ボタン全体を押せるように、リンクの当たり判定をボタン全面に広げる。文字は白 */
:is(.p-article__body, .is-root-container, .rz-legacy-page) .c-btn1 { position: relative; }
:is(.p-article__body, .is-root-container, .rz-legacy-page) .c-btn1 p { margin: 0; font: inherit; line-height: inherit; color: inherit; }
:is(.p-article__body, .is-root-container, .rz-legacy-page) .c-btn1 a { color: #FFFFFF; text-decoration: none; }
:is(.p-article__body, .rz-legacy-page) .c-btn1 a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; } /* 公開側のみ（エディタでは文字の編集を邪魔しないよう広げない） */
:is(.p-article__body, .is-root-container, .rz-legacy-page) .c-btn1__txt { display: inline-flex; align-items: center; gap: 12px; }
:is(.p-article__body, .is-root-container, .rz-legacy-page) .c-btn1--arrow .c-btn1__txt::after { content: "›"; font-size: 1.3em; line-height: 1; }
:is(.p-article__body, .is-root-container, .rz-legacy-page) .c-btn1--s { min-height: 44px; padding: 0 22px; font-size: var(--fs-i-13); }
:is(.p-article__body, .is-root-container, .rz-legacy-page) .c-btn1--navy { background: var(--navy-800); }
:is(.p-article__body, .is-root-container, .rz-legacy-page) .c-btn1--black { background: var(--text-strong); }

/* 旧テーマのユーティリティ（本文内で使用） */
:is(.p-article__body, .is-root-container, .rz-legacy-page) .u-tac { text-align: center; }
@media (min-width: 801px) {
  :is(.p-article__body, .is-root-container, .rz-legacy-page) .sp-only { display: none !important; }
  /* インタビュー：旧テーマと同じくアイコン側に少し字下げ */
  :is(.p-article__body, .is-root-container, .rz-legacy-page) .p-detail-interview { padding-left: 20px; }
  :is(.p-article__body, .is-root-container, .rz-legacy-page) .p-detail-interview--rev { padding-left: 0; padding-right: 20px; }
}

/* ---- SP（旧テーマと同じ 800px 以下で切り替え） ---- */
@media (max-width: 800px) {
  :is(.p-article__body, .is-root-container, .rz-legacy-page) .pc-only { display: none !important; }
  :is(.p-article__body, .is-root-container, .rz-legacy-page) blockquote { padding: 28px 24px; font-size: var(--fs-i-15); }
  :is(.p-article__body, .is-root-container, .rz-legacy-page) :is(.p-detail-box, .p-detail-box2) { padding: 24px 20px; }
  :is(.p-article__body, .is-root-container, .rz-legacy-page) .p-detail-column { flex-direction: column; gap: 20px; }
  :is(.p-article__body, .is-root-container, .rz-legacy-page) .p-detail-column__img { flex-basis: auto; width: 100%; }
  :is(.p-article__body, .is-root-container, .rz-legacy-page) .p-detail-prof .p-detail-column__img { width: 137px; }
  :is(.p-article__body, .is-root-container, .rz-legacy-page) .p-detail-download.p-detail-column .fz22 { text-align: center; }
  :is(.p-article__body, .is-root-container, .rz-legacy-page) .p-detail-columnimg { gap: 12px; }
  /* インタビュー：旧テーマと同じくアイコンを名前の左に小さく重ねる */
  :is(.p-article__body, .is-root-container, .rz-legacy-page) .p-detail-interview { display: block; position: relative; padding-top: 4px; }
  :is(.p-article__body, .is-root-container, .rz-legacy-page) .p-detail-interview__img { position: absolute; left: 0; top: 0; width: 40px; height: 40px; }
  :is(.p-article__body, .is-root-container, .rz-legacy-page) .p-detail-interview__name { min-height: 40px; display: flex; align-items: center; padding-left: 52px; margin-bottom: 12px; }
  :is(.p-article__body, .is-root-container, .rz-legacy-page) .p-detail-interview--rev .p-detail-interview__img { left: auto; right: 0; }
  :is(.p-article__body, .is-root-container, .rz-legacy-page) .p-detail-interview--rev .p-detail-interview__name { justify-content: flex-end; padding: 0 52px 0 0; text-align: right; }
  :is(.p-article__body, .is-root-container, .rz-legacy-page) .p-detail-guest__prof { flex-direction: column; align-items: flex-start; gap: 20px; }
  :is(.p-article__body, .is-root-container, .rz-legacy-page) .p-detail-table :is(th, td) { display: block; width: 100%; }
  :is(.p-article__body, .is-root-container, .rz-legacy-page) .p-detail-table td { border-bottom: 0; }
  :is(.p-article__body, .is-root-container, .rz-legacy-page) .p-detail-table tr:last-child td { border-bottom: 1px solid var(--border-card); }
  :is(.p-article__body, .is-root-container, .rz-legacy-page) .c-btn1 { min-height: 52px; padding: 0 24px; }
}
