.blog-shell { max-width: 880px; padding-inline: 16px; }
.blog-shell > .legal-toolbar,
.blog-header,
.blog-list,
.blog-article { width: 100%; max-width: 760px; min-width: 0; margin-inline: auto; }
.blog-shell > .legal-toolbar { justify-content: flex-start; padding-block: .5rem; }
.blog-shell > .legal-toolbar .back-link { width: auto; min-height: 44px; display: inline-flex; align-items: center; }
.blog-header, .blog-article { margin-block: 2rem; overflow-wrap: anywhere; }
.blog-header h1, .blog-article h1 { font-size: clamp(2rem, 5vw, 3rem); line-height: 1.15; margin: .6rem 0 1rem; text-wrap: balance; }
.blog-header > p:last-child, .blog-article .legal-subtitle { color: var(--text-subtle); font-size: 1.05rem; line-height: 1.7; }
.blog-list { display: grid; gap: 1.25rem; margin-block: 0 2rem; }
.blog-card { min-width: 0; background: var(--surface); border: 1px solid var(--card-border); border-radius: 1rem; padding: 1.5rem; overflow-wrap: anywhere; }
.blog-card h2 { font-size: 1.35rem; line-height: 1.4; margin: .5rem 0 .75rem; }
.blog-card h2 a { color: inherit; text-decoration: none; }
.blog-card h2 a:hover, .blog-card h2 a:focus-visible { text-decoration: underline; }
.blog-card > p:not(.blog-meta) { color: var(--text-subtle); margin: 0 0 1.25rem; }
.blog-card .back-link { display: inline-flex; align-items: center; min-height: 44px; }
.blog-meta { color: var(--text-subtle); font-size: .875rem; line-height: 1.6; margin: 0; }
.blog-article { font-size: 1.05rem; line-height: 1.8; }
.blog-article > header { border-bottom: 1px solid var(--card-border); padding-bottom: 1.75rem; margin-bottom: 1.75rem; }
.blog-article h2 { font-size: 1.55rem; line-height: 1.3; margin: 2.2rem 0 .75rem; }
.blog-article h3 { font-size: 1.2rem; margin: 1.7rem 0 .4rem; }
.blog-article ul { padding-left: 1.4rem; }
.blog-article li + li { margin-top: .6rem; }
.blog-article a:not(.back-link) { color: var(--accent); text-underline-offset: .2em; }
.blog-article > p:last-child { display: flex; flex-wrap: wrap; gap: .75rem; }
.blog-disclaimer { border-left: 3px solid var(--accent); color: var(--text-subtle); font-size: .95rem; margin: 2.5rem 0 1.5rem; padding-left: 1rem; }
.site-footer { position: relative; z-index: 2; width: min(760px, calc(100% - 32px)); margin: 0 auto 2rem; padding-top: 1.5rem; border-top: 1px solid var(--card-border); color: var(--text-subtle); font-size: .9rem; }
.footer-links { display: flex; flex-wrap: wrap; gap: 1rem; }
@media (max-width: 640px) { .blog-header, .blog-article { margin-block: 1.25rem; } .blog-card { padding: 1.15rem; } }

/* Consistent editorial imagery and aligned card content. */
.blog-shell { max-width: 1040px; }
.blog-shell > .legal-toolbar, .blog-header, .blog-list { max-width: 960px; }
.blog-list { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: stretch; }
.blog-card { padding: 0; overflow: hidden; display: flex; flex-direction: column; }
.blog-card-cover { display: block; overflow: hidden; aspect-ratio: 1200 / 630; }
.blog-card-cover img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .25s ease; }
.blog-card:hover .blog-card-cover img { transform: scale(1.025); }
.blog-card-body { padding: 1.5rem; display: flex; flex-direction: column; flex: 1; align-items: flex-start; }
.blog-card-body > p:not(.blog-meta) { color: var(--text-subtle); margin: 0 0 1.25rem; }
.blog-card-body > .back-link { margin-top: auto; gap: .5rem; }
.blog-figure { margin: 1.75rem 0; }
.blog-figure img { display: block; width: 100%; height: auto; aspect-ratio: 1200 / 630; object-fit: cover; border-radius: 1rem; border: 1px solid var(--card-border); }
.blog-figure figcaption { color: var(--text-subtle); font-size: .78rem; line-height: 1.6; margin-top: .65rem; }
@media (max-width: 640px) { .blog-list { grid-template-columns: 1fr; } .blog-card-body { padding: 1.15rem; } }
@media (prefers-reduced-motion: reduce) { .blog-card-cover img { transition: none; } }
.blog-shell:has(.blog-article) > .legal-toolbar { max-width: 760px; }
.site-footer { width: min(960px, calc(100% - 32px)); }
body:has(.blog-article) .site-footer { width: min(760px, calc(100% - 32px)); }
