/* Shared editorial pages and the home news section. */
.post-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}
.post-card {
  min-width: 0;
  border-radius: 4px;
  background: var(--color-pale);
}
.post-card-link {
  display: block;
  height: 100%;
  border-radius: 4px;
  color: var(--color-text);
  text-decoration: none;
  overflow-wrap: anywhere;
}
.post-card-link:hover { text-decoration: none; }
.post-card-link:hover .post-card-title { color: var(--color-blue); text-decoration: underline; }
.post-card-link > img { width: 100%; aspect-ratio: 1200 / 630; object-fit: cover; border-radius: 4px 4px 0 0; }
.post-card-body { padding: 24px; }
.post-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; margin-bottom: 16px; }
.post-meta time { font-size: 14px; }
.post-label { color: var(--color-blue); font-size: 14px; font-weight: 700; }
.post-card-title { font-size: 22px; }
.post-card p { margin-top: 16px; }
.listing-action { margin-top: 40px; text-align: center; }
.page-heading { padding-block: 40px 56px; overflow-wrap: anywhere; }
.page-heading h1 { font-size: clamp(28px, 3.6vw, 44px); }
.page-heading .post-meta { margin-top: 24px; margin-bottom: 0; }
.breadcrumb { margin-bottom: 28px; font-size: 14px; }
.breadcrumb ol { display: flex; flex-wrap: wrap; gap: 8px 12px; }
.breadcrumb li { min-width: 0; }
.breadcrumb li + li::before { content: '/'; margin-right: 12px; color: var(--color-blue); }
.category-nav { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 36px; }
.category-nav a, .pagination a, .pagination span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 10px 16px;
  border: 1px solid var(--color-border);
  border-radius: 4px;
}
.category-nav a[aria-current='page'] { background: var(--color-blue); color: var(--color-white); border-color: var(--color-blue); }
.pagination { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 12px; margin-top: 40px; }
.empty-list { padding-block: 32px; }
.article-content { max-width: 760px; margin-inline: auto; min-width: 0; overflow-wrap: anywhere; }
.article-cover { width: 100%; height: auto; margin-bottom: 32px; border-radius: 4px; }
.case-summary { padding: 28px; margin-bottom: 40px; background: var(--color-pale); border-radius: 4px; }
.case-summary dt { color: var(--color-blue); font-weight: 700; }
.case-summary dd + dt { margin-top: 20px; }
.prose { line-height: 1.9; }
.prose > * + * { margin-top: 24px; }
.prose h2 { margin-top: 48px; font-size: clamp(24px, 3vw, 30px); }
.prose h3 { margin-top: 32px; font-size: 22px; }
.prose h4, .prose h5, .prose h6 { color: var(--color-navy); font-size: 18px; }
.prose ul, .prose ol { padding-left: 1.5em; }
.prose ul { list-style: disc; }
.prose ol { list-style: decimal; }
.prose li + li { margin-top: 8px; }
.prose img { max-width: 100%; height: auto; border-radius: 4px; }
/* 挿絵（ファイル名が ill- で始まるもの）は元記事どおり本文の60%幅で中央に。スマホは80% */
.prose img[src*="/ill-"] { display: block; width: 60%; margin-inline: auto; }
@media (max-width: 767px) { .prose img[src*="/ill-"] { width: 80%; } }
.prose blockquote { margin-inline: 0; padding: 20px 24px; border-left: 4px solid var(--color-blue); background: var(--color-pale); }
.prose pre { max-width: 100%; overflow-x: auto; padding: 20px; border-radius: 4px; }
.prose table { display: block; max-width: 100%; overflow-x: auto; }
.prose th, .prose td { padding: 12px; border: 1px solid var(--color-border); }
@media (max-width: 960px) { .post-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) {
  .post-grid { grid-template-columns: 1fr; }
  .page-heading { padding-block: 32px 40px; }
  .case-summary { padding: 24px; }
}
