/* ============================================================
   prose.css — 本文のタイポグラフィ(投稿記事・固定ページ共通)

   .dj-prose の中だけに効かせる。投稿記事は single.php の .article-body、
   固定ページは page.php の .page-body に .dj-prose を付けている。
   読み込むのは記事ページと固定ページ(page.php)だけ(inc/posts.php)。
   求人・企業・管理画面には影響させない。
   core.css のリセット(余白0・リストの点なし)を、本文の中でだけ戻す。
   色・角丸・フォントは skin.css のトークンを使う。
   ============================================================ */

.dj-prose {
  font-size: 16px;
  line-height: 1.9;
  color: var(--ink);
  overflow-wrap: anywhere;
}
@media (min-width: 768px) {
  .dj-prose { font-size: 17px; line-height: 1.95; }
}
.dj-prose > * + * { margin-top: 1.5em; }
.dj-prose p { margin-bottom: 0; }
.dj-prose a:not(.wp-block-button__link) {
  color: var(--brand-ink);
  text-decoration: underline;
  text-underline-offset: .2em;
}
.dj-prose a:not(.wp-block-button__link):hover { text-decoration-thickness: 2px; }
.dj-prose strong, .dj-prose b { font-weight: 700; }
.dj-prose mark { background: linear-gradient(transparent 60%, var(--yellow-soft) 60%); color: inherit; padding: 0 .1em; }

/* 見出し。H2 は上に大きく空けて、ブランドグリーンの左ボーダー */
.dj-prose h2,
.dj-prose h3,
.dj-prose h4 { font-weight: 700; line-height: 1.5; letter-spacing: .01em; }
.dj-prose h2 {
  margin-top: 2.6em;
  margin-bottom: 0;
  padding: .3em 0 .3em .75em;
  border-left: 5px solid var(--brand);
  font-size: 22px;
}
.dj-prose h2 + * { margin-top: 1.1em; }
.dj-prose h3 {
  margin-top: 2.1em;
  padding-bottom: .35em;
  border-bottom: 1px solid var(--line);
  font-size: 19px;
}
.dj-prose h3 + * { margin-top: .9em; }
.dj-prose h4 { margin-top: 1.8em; font-size: 17px; }
.dj-prose h4 + * { margin-top: .6em; }
@media (min-width: 768px) {
  .dj-prose h2 { font-size: 28px; }
  .dj-prose h3 { font-size: 22px; }
  .dj-prose h4 { font-size: 18px; }
}
.dj-prose > h2:first-child,
.dj-prose > h3:first-child { margin-top: 0; }

/* リスト(リセットで消えた点・番号を戻す。項目間にも余白) */
.dj-prose ul,
.dj-prose ol { padding-left: 1.5em; }
.dj-prose ul { list-style: disc; }
.dj-prose ol { list-style: decimal; }
.dj-prose ul ul { list-style: circle; }
.dj-prose li + li { margin-top: .45em; }
.dj-prose li > ul,
.dj-prose li > ol { margin-top: .45em; }
.dj-prose li::marker { color: var(--brand-dark); }

/* 画像・figure・キャプション */
.dj-prose img { max-width: 100%; height: auto; }
.dj-prose figure { margin-left: 0; margin-right: 0; }
.dj-prose .wp-block-image img { border-radius: var(--radius-md); }
.dj-prose .wp-block-image.aligncenter,
.dj-prose .wp-block-image .aligncenter { margin-left: auto; margin-right: auto; text-align: center; }
.dj-prose .wp-block-image.aligncenter img { margin: 0 auto; }
.dj-prose figcaption,
.dj-prose .wp-element-caption {
  margin-top: .6em;
  font-size: 13px;
  line-height: 1.7;
  color: var(--ink-soft);
  text-align: center;
}

/* ギャラリー */
.dj-prose .wp-block-gallery { gap: 12px; }
.dj-prose .wp-block-gallery img { border-radius: var(--radius-md); }

/* 引用 */
.dj-prose blockquote,
.dj-prose .wp-block-quote {
  margin-left: 0;
  margin-right: 0;
  padding: 1.1em 1.3em;
  border-left: 4px solid var(--brand-soft);
  background: var(--gray-bg);
  border-radius: 0 var(--radius-md) var(--radius-md) 0;
  color: var(--ink);
}
.dj-prose blockquote p + p { margin-top: .8em; }
.dj-prose blockquote cite { display: block; margin-top: .8em; font-size: 13px; font-style: normal; color: var(--ink-soft); }

/* 表(幅の大きい表は横スクロール) */
.dj-prose .wp-block-table { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.dj-prose table {
  width: 100%;
  border-collapse: collapse;
  font-size: 15px;
  line-height: 1.7;
}
.dj-prose th,
.dj-prose td {
  padding: .7em .9em;
  border: 1px solid var(--line);
  text-align: left;
  vertical-align: top;
}
.dj-prose th { background: var(--brand-tint); font-weight: 700; }
.dj-prose thead th { background: var(--brand-soft); }
.dj-prose .has-text-align-center { text-align: center; }
.dj-prose .wp-block-table table.has-fixed-layout { table-layout: auto; }
@media (max-width: 767px) {
  .dj-prose table { font-size: 14px; }
  .dj-prose .wp-block-table table { min-width: 480px; }
  /* カスタムHTMLの表(移行記事の .doto-table など)も画面からはみ出さない */
  .dj-prose > table { display: block; overflow-x: auto; }
  .dj-prose th, .dj-prose td { padding: .6em .7em; }
}

/* 区切り線 */
.dj-prose hr,
.dj-prose .wp-block-separator {
  margin-top: 2.4em;
  margin-bottom: 2.4em;
  border: 0;
  border-top: 1px solid var(--line);
  opacity: 1;
}
.dj-prose .wp-block-separator.is-style-dots { border: 0; }
.dj-prose .wp-block-separator.is-style-dots::before { color: var(--ink-soft); letter-spacing: 1.2em; }
.dj-prose .wp-block-separator + * { margin-top: 0; }

/* ボタン */
.dj-prose .wp-block-buttons { gap: 12px; }
.dj-prose .wp-block-button__link {
  display: inline-block;
  padding: .8em 1.8em;
  border-radius: var(--radius-pill);
  background: var(--cta);
  color: var(--white);
  font-size: 15px;
  font-weight: 700;
  line-height: 1.5;
  text-decoration: none;
  text-align: center;
}
.dj-prose .wp-block-button__link:hover { background: var(--cta-hover); }
.dj-prose .wp-block-button__link:focus-visible { outline: 3px solid var(--brand-dark); outline-offset: 2px; }
.dj-prose .is-style-outline > .wp-block-button__link { background: transparent; color: var(--brand-ink); border: 2px solid currentColor; }

/* カラム(SP では縦に積む) */
.dj-prose .wp-block-columns { gap: 24px; }
.dj-prose .wp-block-column > * + * { margin-top: 1em; }
@media (max-width: 767px) {
  .dj-prose .wp-block-columns { flex-direction: column; }
  .dj-prose .wp-block-column { flex-basis: 100% !important; }
}

/* 詳細(アコーディオン)・埋め込み・余白ブロック */
.dj-prose .wp-block-details { padding: .9em 1.1em; border: 1px solid var(--line); border-radius: var(--radius-md); }
.dj-prose .wp-block-details summary { cursor: pointer; font-weight: 700; }
.dj-prose .wp-block-details > * + * { margin-top: .8em; }
.dj-prose .wp-block-embed iframe { max-width: 100%; }
.dj-prose .wp-block-spacer { max-height: 60px; }
.dj-prose .wp-block-spacer + * { margin-top: 0; }

/* 文字サイズのプリセット(エディタで小さく/大きくしたときだけ) */
.dj-prose .has-small-font-size { font-size: .875em; }
.dj-prose .has-medium-font-size { font-size: 1.125em; }
.dj-prose .has-large-font-size { font-size: 1.375em; }

/* ============================================================
   固定ページの枠(page.php)
   投稿記事のサイドバー・関連記事・求人CTAは出さない。本文だけの1カラム。
   ============================================================ */
.page-wrap {
  max-width: 900px;
  margin: 0 auto;
  padding: 0 20px 72px;
}
.page-head { margin: 8px 0 32px; }
.page-title {
  margin: 0;
  font-size: clamp(26px, 3vw, 34px);
  font-weight: 700;
  line-height: 1.45;
  letter-spacing: .01em;
  color: var(--ink);
}
.page-body { max-width: 860px; }
@media (max-width: 767px) {
  .page-wrap { padding-bottom: 56px; }
  .page-head { margin-bottom: 24px; }
}
