/* OpsHarbor blog post body. Scoped to .oh-post-body so nothing else on the site changes. */
.oh-post-body { font-size: 17px; line-height: 1.75; color: var(--primary); }
.oh-post-body > *:first-child { margin-top: 0; }
.oh-post-body p, .oh-post-body ul, .oh-post-body ol { margin: 0 0 20px; }
.oh-post-body ul, .oh-post-body ol { padding-left: 22px; }
.oh-post-body ul { list-style: disc; }
.oh-post-body ol { list-style: decimal; }
.oh-post-body li { margin-bottom: 8px; }
.oh-post-body h2 { font-size: 28px; line-height: 1.3; font-weight: 600; margin: 44px 0 16px; }
.oh-post-body h3 { font-size: 21px; line-height: 1.35; font-weight: 600; margin: 32px 0 12px; }
.oh-post-body a { color: var(--brand); text-decoration: underline; text-underline-offset: 3px; }
.oh-post-body a:hover { color: var(--primary); }
.oh-post-body strong { font-weight: 600; }
.oh-post-body blockquote { margin: 28px 0; padding: 22px 26px; background: #fff; border-left: 4px solid var(--brand); border-radius: 12px; box-shadow: 0 8px 24px rgba(0,0,0,.05); }
.oh-post-body blockquote p:last-child, .oh-post-body blockquote ul:last-child { margin-bottom: 0; }
.oh-post-body figure { margin: 32px 0; }
.oh-post-body figure img { width: 100%; height: auto; border-radius: 16px; }
.oh-post-body figcaption { font-size: 14px; color: var(--secondary); margin-top: 10px; line-height: 1.5; }
.oh-post-body .blog-chart { background: #fff; border-radius: 16px; padding: 20px; }
.oh-post-body .blog-chart svg { width: 100%; height: auto; display: block; }
.oh-post-body table { width: 100%; border-collapse: collapse; margin: 24px 0; font-size: 15px; background: #fff; border-radius: 12px; overflow: hidden; display: block; overflow-x: auto; }
.oh-post-body th, .oh-post-body td { padding: 12px 14px; text-align: left; border-bottom: 1px solid var(--neutral-200); vertical-align: top; }
.oh-post-body th { background: var(--neutral-100); font-weight: 600; }
.oh-post-body code { background: var(--neutral-100); padding: 2px 6px; border-radius: 6px; font-size: .92em; }
.oh-post-body pre { background: #fff; padding: 18px; border-radius: 12px; white-space: pre-wrap; font-size: 15px; border: 1px solid var(--neutral-200); }
.oh-post-body hr { border: 0; border-top: 1px solid var(--neutral-300); margin: 36px 0; }
@media (max-width: 767px) { .oh-post-body { font-size: 16px; } .oh-post-body h2 { font-size: 23px; } .oh-post-body h3 { font-size: 19px; } }
.oh-post-body .oh-toc { background: #fff; border-radius: 12px; padding: 20px 26px; margin: 28px 0; }
.oh-post-body .oh-toc ol { margin: 8px 0 0; }
.oh-post-body .oh-toc li { margin-bottom: 4px; }
.oh-post-body .oh-toc a { text-decoration: none; }
.blog-single-wrap .oh-hero-credit { font-size: 13px; color: var(--secondary); margin-top: 8px; }
