.blog-prose {
    font-size: 1.075rem;
    line-height: 1.75;
    max-width: 46rem;
}
.blog-prose h2 { margin-top: 2.2rem; margin-bottom: 0.75rem; font-weight: 600; }
.blog-prose h3 { margin-top: 1.6rem; margin-bottom: 0.5rem; font-weight: 600; }
.blog-prose p { margin-bottom: 1.15rem; }
.blog-prose ul, .blog-prose ol { margin-bottom: 1.15rem; }
.blog-prose li { margin-bottom: 0.35rem; }
.blog-prose blockquote {
    border-left: 4px solid var(--bs-primary);
    padding: 0.4rem 0 0.4rem 1rem;
    margin: 1.5rem 0;
    color: var(--bs-secondary-color);
    font-style: italic;
}
.blog-prose table {
    width: 100%;
    margin: 1.5rem 0;
    border-collapse: collapse;
}
.blog-prose th, .blog-prose td {
    border: 1px solid var(--bs-border-color);
    padding: 0.5rem 0.75rem;
    text-align: left;
}
.blog-prose pre {
    background: var(--bs-tertiary-bg);
    padding: 1rem;
    border-radius: 0.5rem;
    overflow-x: auto;
}

.blog-media { max-width: 100%; height: auto; display: block; }
.blog-figure { margin: 1.75rem 0; }
.blog-figure img, .blog-figure video { margin-inline: auto; }
.blog-figcaption {
    margin-top: 0.5rem;
    font-size: 0.9rem;
    color: var(--bs-secondary-color);
    text-align: center;
}
.blog-cta { margin: 2rem 0; text-align: center; }

.blog-placeholder {
    border: 2px dashed var(--bs-warning);
    background: var(--bs-warning-bg-subtle);
    border-radius: 0.5rem;
    padding: 1.25rem;
    margin: 1.75rem 0;
    text-align: center;
    color: var(--bs-secondary-color);
}
.blog-placeholder-kind {
    display: block;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    font-size: 0.8rem;
    color: var(--bs-warning-text-emphasis);
    margin-bottom: 0.35rem;
}
.blog-placeholder-desc { font-size: 0.95rem; }

.blog-card-hero { height: 100%; object-fit: cover; }

.story-opt-group { width: 10.5rem; }
.story-opt-group .form-select { padding-right: 1.75rem; }
