/* ============================================================
   記事系ページ（/boccia/ ・ /articles/ ・ /articles/<slug>/）の追加スタイル
   - style.css を読み込んだうえで、この順に読み込む
   - 色・角丸・影は style.css の :root 変数をそのまま使う
   - スマートフォン最優先。幅 700px 以上を PC 向けとして調整する
   ============================================================ */

/* ---------- ページ共通 ---------- */
.page__title {
  font-size: 1.5rem;
  margin: 1.2rem 0 0.6rem;
}

.page__lead {
  color: var(--text-muted);
  margin-bottom: 1.8rem;
}

.page__back {
  margin: 2.5rem 0 3rem;
  text-align: center;
}

/* ---------- パンくず ---------- */
.breadcrumb {
  margin: 1rem 0 0;
  font-size: 0.8rem;
  color: var(--text-muted);
}

.breadcrumb ol {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem 0.5rem;
  list-style: none;
}

.breadcrumb li + li::before {
  content: "›";
  margin-right: 0.5rem;
  color: var(--border);
}

/* ---------- ラベル（カテゴリー・難易度・学習ID） ---------- */
.label {
  display: inline-block;
  padding: 0.15em 0.75em;
  margin: 0 0.3rem 0.3rem 0;
  border-radius: var(--radius-pill);
  background-color: var(--sky);
  color: var(--navy);
  font-size: 0.78rem;
  font-weight: 700;
  line-height: 1.7;
  white-space: nowrap;
}

.label--category {
  background-color: var(--navy);
  color: var(--white);
}

.label--learning {
  background-color: var(--blue);
  color: var(--white);
}

.label--difficulty {
  background-color: var(--white);
  border: 2px solid var(--sky-deep);
}

/* ---------- 個別記事 ---------- */
.article {
  margin: 0.5rem 0 2rem;
}

.article__labels {
  margin: 0 0 0.6rem;
}

.article__title {
  font-size: 1.55rem;
  line-height: 1.45;
  margin-bottom: 0.6rem;
}

.article__dates {
  font-size: 0.82rem;
  color: var(--text-muted);
  margin-bottom: 1.2rem;
}

.article__dates time + time {
  margin-left: 0.8rem;
}

.article__notice {
  margin: 0 0 1.4rem;
  padding: 0.8rem 1rem;
  border-left: 5px solid var(--red);
  background-color: #fdf1f0;
  border-radius: 0 var(--radius) var(--radius) 0;
  font-size: 0.9rem;
}

.article__summary {
  padding: 1rem 1.1rem;
  background-color: var(--sky);
  border-radius: var(--radius);
  font-weight: 700;
  color: var(--navy);
}

/* 本文。Markdown から生成されるので、タグ単位で指定する */
.article__body {
  margin-top: 2rem;
}

.article__body h2 {
  font-size: 1.25rem;
  margin: 2.2rem 0 0.8rem;
  padding-bottom: 0.4rem;
  border-bottom: 3px solid var(--sky-deep);
}

.article__body h3 {
  font-size: 1.08rem;
  margin: 1.8rem 0 0.6rem;
  color: var(--blue);
}

.article__body ul,
.article__body ol {
  margin: 0 0 1.2em;
  padding-left: 1.4em;
}

.article__body li {
  margin-bottom: 0.4em;
}

.article__body blockquote {
  margin: 1.2em 0;
  padding: 0.2em 1rem;
  border-left: 5px solid var(--sky-deep);
  color: var(--text-muted);
}

.article__body code {
  padding: 0.1em 0.4em;
  border-radius: 6px;
  background-color: var(--sky);
  font-size: 0.9em;
}

.article__body pre {
  padding: 1rem;
  border-radius: var(--radius);
  background-color: var(--sky);
  overflow-x: auto;
}

.article__body pre code {
  padding: 0;
  background: none;
}

.article__body hr {
  margin: 2rem 0;
  border: none;
  border-top: 1px solid var(--border);
}

/* ---------- 出典・参考資料 ---------- */
.article__evidence,
.article__related {
  margin-top: 2.5rem;
  padding: 1.2rem 1.1rem;
  border: 2px solid var(--border);
  border-radius: var(--radius);
}

.article__evidence h2,
.article__related h2 {
  font-size: 1.05rem;
  margin-bottom: 0.8rem;
}

.evidence-list {
  list-style: none;
  font-size: 0.88rem;
}

.evidence-list li + li {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px dashed var(--border);
}

.evidence__publisher {
  display: block;
  font-weight: 700;
  color: var(--navy);
}

.evidence__verified {
  display: block;
  color: var(--text-muted);
  font-size: 0.82rem;
}

/* ---------- 前後の記事・戻り導線 ---------- */
.article-nav {
  display: grid;
  gap: 0.8rem;
  margin-top: 2.5rem;
}

.article-nav__item {
  display: block;
  padding: 0.9rem 1.1rem;
  border: 2px solid var(--sky-deep);
  border-radius: var(--radius);
  background-color: var(--white);
  text-decoration: none;
  color: var(--navy);
}

.article-nav__item:hover,
.article-nav__item:focus-visible {
  background-color: var(--sky);
}

.article-nav__dir {
  display: block;
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--blue);
}

.back-links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem;
  justify-content: center;
  margin: 2.5rem 0 1rem;
}

/* ---------- STEP（/boccia/） ---------- */
.step {
  margin-bottom: 2.4rem;
}

.step__head {
  display: flex;
  align-items: baseline;
  gap: 0.6rem;
  margin-bottom: 0.9rem;
  padding-bottom: 0.5rem;
  border-bottom: 3px solid var(--sky-deep);
}

.step__num {
  font-family: "M PLUS Rounded 1c", "Hiragino Maru Gothic ProN", "BIZ UDPGothic", sans-serif;
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  color: var(--blue);
  white-space: nowrap;
}

.step__title {
  font-size: 1.15rem;
}

.step__empty {
  margin: 0;
  padding: 0.9rem 1rem;
  border-radius: var(--radius);
  background-color: var(--sky);
  color: var(--text-muted);
  font-size: 0.9rem;
}

/* ---------- まず知っておきたい基本（/boccia/ の導入ブロック） ----------
   中身はトップページから移設したルール図。図そのもののスタイルは style.css 側。 */
.boccia-basics {
  margin-bottom: 2.8rem;
  padding-bottom: 2rem;
  border-bottom: 3px solid var(--sky-deep);
}

.boccia-basics__title {
  font-size: 1.2rem;
  margin-bottom: 1.2rem;
}

/* ---------- 記事カード（一覧・STEP 共通） ---------- */
.card-list {
  list-style: none;
  display: grid;
  gap: 0.9rem;
}

.card {
  display: block;
  padding: 1rem 1.1rem;
  border: 2px solid var(--border);
  border-radius: var(--radius);
  background-color: var(--white);
  text-decoration: none;
  color: var(--text);
  box-shadow: var(--shadow);
}

.card:hover,
.card:focus-visible {
  border-color: var(--blue);
}

.card__meta {
  margin: 0 0 0.4rem;
}

.card__date {
  display: inline-block;
  margin-right: 0.5rem;
  font-size: 0.8rem;
  color: var(--text-muted);
}

.card__title {
  font-size: 1.05rem;
  line-height: 1.5;
  margin-bottom: 0.4rem;
  color: var(--navy);
}

.card__summary {
  margin: 0 0 0.5rem;
  font-size: 0.9rem;
  color: var(--text-muted);
}

.card__more {
  font-size: 0.88rem;
  font-weight: 700;
  color: var(--blue);
}

.list-empty {
  padding: 1.2rem;
  border-radius: var(--radius);
  background-color: var(--sky);
  color: var(--text-muted);
  text-align: center;
}

/* ============================================================
   PC 幅（700px 以上）
   ============================================================ */
@media (min-width: 700px) {
  .page__title {
    font-size: 1.8rem;
  }

  .article__title {
    font-size: 1.9rem;
  }

  .article__body h2 {
    font-size: 1.4rem;
  }

  .article-nav {
    grid-template-columns: 1fr 1fr;
  }

  .card-list {
    gap: 1.1rem;
  }
}
