/* ---- Blog article content ---- */
.article-content { max-width: 760px; margin: 0 auto; }
.article-meta { display: flex; align-items: center; gap: 14px; font-size: 0.85rem; color: var(--ink-soft); margin-bottom: 40px; }
.article-meta .dot { width: 4px; height: 4px; border-radius: 50%; background: var(--line); }
.article-content h2 { font-size: 1.5rem; margin-top: 44px; margin-bottom: 14px; }
.article-content h2:first-child { margin-top: 0; }
.article-content h3 { font-size: 1.15rem; margin-top: 32px; margin-bottom: 12px; color: var(--blue-950); }
.article-content p { color: var(--ink-soft); margin-bottom: 16px; line-height: 1.8; font-size: 1.02rem; }
.article-content ul, .article-content ol { margin: 16px 0 20px 22px; color: var(--ink-soft); }
.article-content li { margin-bottom: 10px; line-height: 1.75; }
.article-content ul li { list-style: disc; }
.article-content ol li { list-style: decimal; }
.article-content strong { color: var(--blue-950); }
.article-content blockquote {
  border-left: 3px solid var(--blue-500);
  background: var(--blue-50);
  padding: 18px 22px;
  border-radius: 0 10px 10px 0;
  margin: 24px 0;
  font-size: 0.98rem;
  color: var(--blue-900);
}
.article-cta {
  margin-top: 48px;
  padding: 32px;
  border-radius: var(--radius);
  background: var(--blue-50);
  border: 1px solid var(--blue-200);
  text-align: center;
}
.article-cta h3 { margin-top: 0; font-size: 1.2rem; }
.article-cta p { max-width: 46ch; margin: 8px auto 20px; }

/* ---- Blog index grid ---- */
.blog-card { display: flex; flex-direction: column; height: 100%; }
.blog-card .tag { display: inline-block; font-size: 0.7rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--blue-600); font-weight: 600; margin-bottom: 12px; }
.blog-card h3 { font-size: 1.15rem; margin-bottom: 10px; line-height: 1.35; }
.blog-card p { color: var(--ink-soft); font-size: 0.92rem; flex-grow: 1; }
.blog-card .card-link { margin-top: 18px; }
