/* ── Blog page styles ── */

/* Blog-specific styles layered on top of global styles.css */
.blog-filter-bar {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  margin: 1.5rem 0 2rem;
}
.blog-filter-btn {
  padding: .4rem 1rem;
  border: 1px solid var(--color-border, #dde3ec);
  border-radius: 2rem;
  background: transparent;
  cursor: pointer;
  font-size: .875rem;
  color: inherit;
  transition: background .15s, color .15s, border-color .15s;
}
.blog-filter-btn.active,
.blog-filter-btn:hover {
  background: var(--color-primary, #1565C0);
  color: #fff;
  border-color: var(--color-primary, #1565C0);
}
.blog-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 1.5rem;
  margin-top: 1.5rem;
}
.blog-card {
  display: flex;
  flex-direction: column;
  border: 1px solid var(--color-border, #dde3ec);
  border-radius: .75rem;
  padding: 1.5rem;
  text-decoration: none;
  color: inherit;
  transition: box-shadow .2s, transform .2s;
  background: var(--color-surface, #fff);
}
.blog-card:hover {
  box-shadow: 0 4px 16px rgba(0,0,0,.1);
  transform: translateY(-2px);
}
.blog-card-tag {
  display: inline-block;
  font-size: .75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--color-primary, #1565C0);
  margin-bottom: .75rem;
}
.blog-card h3 {
  margin: 0 0 .75rem;
  font-size: 1.1rem;
  line-height: 1.4;
}
.blog-card p {
  margin: 0 0 1rem;
  font-size: .9rem;
  opacity: .8;
  flex: 1;
}
.blog-card-cta {
  font-size: .875rem;
  font-weight: 600;
  color: var(--color-primary, #1565C0);
}
/* Skeleton loader */
.blog-skeleton {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 1.5rem;
}
.skeleton-card {
  border: 1px solid var(--color-border, #dde3ec);
  border-radius: .75rem;
  padding: 1.5rem;
  background: var(--color-surface, #fff);
}
.skeleton-line {
  height: 1em;
  border-radius: .25rem;
  background: linear-gradient(90deg, #e8edf2 25%, #f4f6f9 50%, #e8edf2 75%);
  background-size: 200% 100%;
  animation: shimmer 1.4s infinite;
  margin-bottom: .75rem;
}
.skeleton-line.short { width: 40%; }
.skeleton-line.medium { width: 70%; }
.skeleton-line.tall { height: 3.5em; }
@keyframes shimmer {
  0%   { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}
.blog-empty {
  text-align: center;
  padding: 4rem 1rem;
  color: var(--color-muted, #6b7280);
}
.blog-empty p {
  font-size: 1.1rem;
  margin: .5rem 0 1.5rem;
}
