/* Blog: the blog home (post cards with category filters) and posts (blog/*.html), plain readable text that prints cleanly. */
.ls-wrap { display: grid; gap: 28px; padding-block: 8px 48px; }
.ls-wrap > * { max-width: 860px; min-width: 0; }
.ls-wrap > .ls-hub { max-width: 1000px; }
.ls-by { font-size: 15px !important; font-weight: 700; }
.ls-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); gap: 14px; }
.ls-card { display: grid; gap: 8px; align-content: start; background: var(--card); border: 1px solid var(--line); border-radius: var(--r); padding: 18px; color: var(--fg); text-decoration: none; }
.ls-card:hover { border-color: var(--pro); }
.ls-card .pill { justify-self: start; background: var(--blue-soft); color: var(--pro); }
.ls-card h3 { font-size: 20px; }
.ls-card p { margin: 0; color: var(--muted); line-height: 1.5; }
.ls-card .ls-date { font-size: 13px; font-weight: 700; color: var(--muted); }

/* A post: one plain column of text. */
.bl-post { max-width: 72ch; padding-block: 8px 56px; font-size: 18px; line-height: 1.65; }
.bl-post > * { margin: 0 0 16px; }
.bl-post h2 { font-size: clamp(24px, 3vw, 30px); margin-top: 36px; scroll-margin-top: 16px; }
.bl-post h3 { font-size: 19px; margin-top: 24px; margin-bottom: 6px; }
.bl-post ol { padding-left: 2.4em; }
.bl-post li { margin-bottom: 6px; padding-left: 4px; }
.bl-post li::marker { font-weight: 700; color: var(--muted); }
.bl-post .g { font-size: 15px; font-weight: 700; white-space: nowrap; }
.bl-acts { margin-bottom: 20px; }
.bl-toc { font-size: 16px; color: var(--muted); }
.bl-foot { font-size: 16px; color: var(--muted); margin-top: 32px; }

@media print {
  header .mast, header nav.sec, .crumbs, .bl-acts, .bl-toc, .bl-foot, .bl-post .g, footer.site { display: none !important; }
  body { background: #fff; color: #000; }
  .page-head .wrap { padding-block: 0 8px; }
  .page-head h1 { font-size: 24pt; color: #000; }
  .page-head p { color: #333; }
  .bl-post { max-width: none; font-size: 11.5pt; line-height: 1.45; padding: 0; }
  .bl-post h2 { font-size: 15pt; margin-top: 18pt; break-after: avoid; color: #000; }
  .bl-post h3 { font-size: 12pt; break-after: avoid; color: #000; }
  .bl-post li { margin-bottom: 2pt; break-inside: avoid; }
  .bl-post a { color: #000; text-decoration: none; }
}
.bl-hero { margin: 8px 0 0; max-width: 72ch; }
.bl-hero img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; border-radius: var(--r); }
.bl-hero figcaption { font-size: 13px; color: var(--muted); margin-top: 6px; }
@media print { .bl-hero { max-width: 60%; } .bl-hero figcaption { color: #333; } .bl-hero figcaption a { color: #333; } }
