/* Blog-specific styles (migrated from inline styles in blog.html)
   Scoped to .page-blog so global hero styles remain unaffected.
*/

.page-blog main {
  /* Ensure consistent spacing with other pages: no extra top margin - sticky nav handled by body padding */
  margin-top: 0;
  min-height: calc(100vh - 70px);
}

/* Remove per-page hero overrides — use site-wide .hero-section baseline from base.css */
/* Only ensure hero-content container sizing for the blog page */
.page-blog .hero-content {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 20px;
}

/* Ensure the section following the hero uses the centralized spacing utility */
.page-blog .blog-content {
  max-width: 1400px;
  margin: 80px auto;
  padding-top: var(--section-gap);
}

/* Featured Article */
.page-blog .featured-article {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  margin-bottom: 40px;
  max-width: 100%;
}

.page-blog .featured-article .blog-card-image {
  height: 100%;
  min-height: 300px;
}

.page-blog .featured-article .blog-card-content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 40px;
}

.page-blog .featured-article h2 {
  font-size: 2rem;
  margin-bottom: 20px;
}

.page-blog .featured-article .blog-card-excerpt {
  font-size: 1.1rem;
  margin-bottom: 25px;
}

/* Blog filters & grid */
.page-blog .blog-filters {
  display: flex;
  justify-content: center;
  gap: 15px;
  margin-bottom: 60px;
  flex-wrap: wrap;
}

.page-blog .blog-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(380px, 1fr));
  gap: 40px;
  margin-bottom: 80px;
}

/* Remove blog-specific hero overrides so the hero matches index styling defined in base.css */
@media (prefers-color-scheme: dark) {
  /* hero coloring handled globally by base.css variables */
}

@media (max-width: 768px) {
  /* responsive hero typography is handled in base.css - keep only blog-specific layout below */
  .page-blog .featured-article {
    grid-template-columns: 1fr;
  }

  .page-blog .featured-article .blog-card-image {
    min-height: 200px;
  }
}

@media (max-width: 480px) {
  .page-blog .blog-filters {
    gap: 10px;
  }

  .page-blog .filter-btn {
    padding: 8px 12px;
    font-size: 0.85rem;
  }
}
