/* ============================================================
   BLOG LISTING PAGE (blog.html)
   Page-specific styles that extend the shared BLOG PREVIEW /
   INNER-PAGE SHARED TEMPLATE component classes in style.css.
   Do NOT edit css/style.css — add new rules here instead.
   ============================================================ */

/* ─── Equal-size responsive grid for the full post listing ──── */
.blog-listing-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 32px;
}
@media (min-width: 640px) {
  .blog-listing-grid { grid-template-columns: 1fr 1fr; }
}
@media (min-width: 1024px) {
  .blog-listing-grid { grid-template-columns: repeat(3, 1fr); }
}

/* ─── Filter behaviour for listing cards ─────────────────────── */
.blog-listing-card.is-hidden { display: none; }

.blog-filter-tabs { margin-bottom: 48px; }

.blog-empty-state { text-align: center; color: #52525b; padding: 48px 0 24px; font-size: 1rem; }

/* ─── Extra category badge colors not covered by style.css ──── */
.blog-badge-violet { background: rgba(124,58,237,0.15); border: 1px solid rgba(124,58,237,0.3); color: var(--violet-400); }
.blog-badge-yellow { background: rgba(234,179,8,0.15); border: 1px solid rgba(234,179,8,0.3); color: #facc15; }

/* ─── Newsletter CTA section ─────────────────────────────────── */
.blog-newsletter {
  background: linear-gradient(135deg, rgba(254,4,103,0.1), rgba(76,29,149,0.18) 55%, #0B0B0B);
  border-top: 1px solid rgba(255,255,255,0.08);
  padding: 96px 0;
}
.blog-newsletter-inner { max-width: 640px; margin: 0 auto; padding: 0 16px; text-align: center; }
.blog-newsletter-inner h2 { font-size: 1.75rem; font-weight: 800; color: #fff; margin-bottom: 12px; }
@media (min-width: 640px) { .blog-newsletter-inner h2 { font-size: 2rem; } }
.blog-newsletter-inner > p { color: var(--muted); margin-bottom: 32px; font-size: 1rem; }

.blog-newsletter-form {
  display: flex; flex-direction: column; gap: 12px;
  justify-content: center; max-width: 420px; margin: 0 auto;
}
@media (min-width: 640px) { .blog-newsletter-form { flex-direction: row; } }

.blog-newsletter-form input {
  flex: 1; width: 100%; padding: 14px 18px; border-radius: 12px;
  background: #1a1a1a; border: 1px solid rgba(255,255,255,0.15);
  color: #fff; font-size: 0.875rem; outline: none;
  transition: border-color 0.2s ease;
}
.blog-newsletter-form input::placeholder { color: #52525b; }
.blog-newsletter-form input:focus { border-color: rgba(254,4,103,0.6); }

.blog-newsletter-form button {
  background: var(--accent); color: #fff; font-weight: 700; border: none;
  padding: 14px 28px; border-radius: 12px; font-size: 0.875rem; cursor: pointer;
  box-shadow: 0 0 16px rgba(254,4,103,0.3);
  transition: background 0.2s ease, transform 0.2s ease;
  white-space: nowrap;
}
.blog-newsletter-form button:hover { background: var(--accent-hover); }
.blog-newsletter-form button:active { transform: scale(0.97); }

.blog-newsletter-success {
  display: inline-flex; align-items: center; gap: 8px;
  background: var(--accent); color: #fff; font-weight: 600;
  padding: 14px 24px; border-radius: 12px; font-size: 0.9375rem;
}

.blog-newsletter-note { color: #52525b; font-size: 0.75rem; margin-top: 16px; }
