/**
 * SOLBOY Article Renderer — 記事専用CSS(個別投稿ページのみで読み込まれる)。
 * 既存テーマのreset.css/style.cssと競合しないよう、すべて .solboy- プレフィックスの
 * スコープ付きclassに限定する。既存サイトのデザイン(白基調・青系アクセント)を踏襲。
 * モバイルファースト。
 */

.solboy-article-main {
  display: block;
  width: 100%;
  /* テーマのheaderはposition:fixed(モバイル60px/デスクトップ80px)でbody側に余白が無いため、
     記事側で固定ヘッダー分の上余白を確保する(ローカルWordPress実測で確認) */
  padding-top: 60px;
}

/* theme-compatコメントフォームのtextareaがモバイルで数pxはみ出すのを防ぐ */
.solboy-article-main textarea,
.solboy-article-main input {
  max-width: 100%;
}

.solboy-article__inner {
  max-width: 760px;
  margin: 0 auto;
  padding: 24px 16px 64px;
  overflow-wrap: break-word; /* 長いURLで横スクロールさせない */
  word-break: break-word;
}

/* --- パンくず --- */
.solboy-breadcrumb {
  font-size: 12px;
  margin: 8px 0 16px;
}
.solboy-breadcrumb__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap; /* 長いタイトルでも折り返して崩れない */
  gap: 4px;
}
.solboy-breadcrumb__item + .solboy-breadcrumb__item::before {
  content: ">";
  margin: 0 6px 0 2px;
  color: #999;
}
.solboy-breadcrumb__item a {
  color: #1a6fa8;
  text-decoration: none;
}
.solboy-breadcrumb__item a:hover {
  text-decoration: underline;
}

/* --- 記事ヘッダー --- */
.solboy-article__title {
  font-size: 26px;
  line-height: 1.4;
  margin: 0 0 12px;
  color: #1c2b33;
}
.solboy-article__meta {
  font-size: 13px;
  color: #667;
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-bottom: 24px;
  padding-bottom: 16px;
  border-bottom: 1px solid #e3e8ec;
}

/* --- 本文(日本語向けの行間・階層) --- */
.solboy-article__content {
  font-size: 16px;
  line-height: 1.9;
  color: #23313a;
}
.solboy-article__content h2 {
  font-size: 21px;
  line-height: 1.5;
  margin: 44px 0 16px;
  padding: 10px 14px;
  background: #f0f6fa;
  border-left: 4px solid #1a6fa8;
  scroll-margin-top: 16px; /* アンカー移動時に見出しが隠れない */
}
.solboy-article__content h3 {
  font-size: 18px;
  line-height: 1.5;
  margin: 32px 0 12px;
  padding-bottom: 6px;
  border-bottom: 2px solid #e3e8ec;
}
.solboy-article__content p {
  margin: 0 0 1.4em;
}
.solboy-article__content a {
  color: #1a6fa8;
}
.solboy-article__content img {
  max-width: 100%;
  height: auto; /* 将来画像が追加されてもレスポンシブ */
}
.solboy-article__content table {
  display: block;
  overflow-x: auto; /* 将来tableが追加されても横スクロール可能 */
  border-collapse: collapse;
  max-width: 100%;
}

/* --- 目次 --- */
.solboy-toc {
  margin: 24px 0 32px;
}
.solboy-toc__details {
  background: #f7f9fb;
  border: 1px solid #dce4ea;
  border-radius: 6px;
  padding: 12px 16px;
}
.solboy-toc__summary {
  font-weight: bold;
  font-size: 15px;
  cursor: pointer;
  color: #1c2b33;
}
.solboy-toc__summary:focus-visible,
.solboy-article__content a:focus-visible,
.solboy-breadcrumb__item a:focus-visible {
  outline: 2px solid #1a6fa8;
  outline-offset: 2px;
}
.solboy-toc__list {
  margin: 10px 0 4px;
  padding-left: 22px;
  font-size: 14px;
  line-height: 1.8;
}
.solboy-toc__list a {
  color: #1a6fa8;
  text-decoration: none;
}
.solboy-toc__list a:hover {
  text-decoration: underline;
}

/* アンカー移動のスムーススクロール(motion配慮つき) */
@media (prefers-reduced-motion: no-preference) {
  html:has(.solboy-article) {
    scroll-behavior: smooth;
  }
}

/* --- タブレット以上 --- */
@media (min-width: 768px) {
  .solboy-article-main {
    padding-top: 80px; /* デスクトップの固定ヘッダー高 */
  }
  .solboy-article__inner {
    padding: 40px 24px 80px;
  }
  .solboy-article__title {
    font-size: 32px;
  }
  .solboy-article__content h2 {
    font-size: 24px;
  }
  .solboy-article__content h3 {
    font-size: 19px;
  }
}

/* --- 印刷 --- */
@media print {
  .solboy-toc__summary {
    pointer-events: none; /* 操作UIとしての見た目を抑制 */
  }
  .solboy-toc__details {
    border: none;
    background: none;
  }
  .solboy-breadcrumb {
    display: none;
  }
}
