/* Grid layout for uniform cards */
.blog-grid .blog-card { display: flex; flex-direction: column; height: 100%; border: none; box-shadow: 0 0.5rem 1rem rgba(0,0,0,0.08); }
.blog-grid .card-body { display: flex; flex-direction: column; }
.blog-grid .card-title { min-height: 44px; line-height: 1.3; max-height: 2.6em; overflow: hidden; word-break: break-word; overflow-wrap: anywhere; }
.blog-grid .card-text { min-height: 60px; line-height: 1.4; max-height: 4.2em; overflow: hidden; word-break: break-word; overflow-wrap: anywhere; white-space: normal; }
.blog-grid .badge { font-weight: 500; }

.blog-card { border: none; }

.blog-card .card-img-top { height: 220px; object-fit: cover; }
.blog-card .card-body { padding: 1rem 1.25rem; }
.blog-card:hover { box-shadow: 0 0.75rem 1.25rem rgba(0,0,0,0.12); transform: translateY(-2px); transition: .2s; }

.blog-card .card-title { margin-bottom: .5rem; }

.blog-card .badge { font-weight: 500; }

/* Full-width page header banners */
.blog-banner,
.error-banner {
  background: url('../img/bg.jpg') center center no-repeat;
  background-size: cover;
}
.blog-banner .container-fluid,
.error-banner .container-fluid {
  max-width: 100vw;
}