/* ===================================================================
   NCA Solar — Blog Page Styles
   Scoped exclusively to pages/blog/blog.html.
   RULE: never import this file from index.html or dashboard.html.
   =================================================================== */

/* ── Blog card grid (4-card grid below featured) ── */
.blog-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:24px; margin-top:48px; }
.blog-card { background:var(--dark2); border-radius:16px; overflow:hidden; border:1px solid rgba(255,255,255,0.07); text-decoration:none; color:#fff; transition:all 0.3s; display:block; }
.blog-card:hover { transform:translateY(-4px); border-color:rgba(245,166,35,0.3); }
.blog-card img { width:100%; height:180px; object-fit:cover; }
.blog-card-body { padding:24px; }
.blog-card-date { font-size:12px; color:var(--gray); margin-bottom:8px; }
.blog-card-title { font-size:17px; font-weight:600; margin-bottom:8px; line-height:1.35; }
.blog-card-excerpt { font-size:14px; color:rgba(255,255,255,0.6); line-height:1.55; }

/* ── Category filter row ── */
.blog-filter-row { display:flex; gap:10px; flex-wrap:wrap; margin-top:40px; margin-bottom:4px; }
.blog-filter-btn { background:rgba(255,255,255,0.05); border:1.5px solid rgba(255,255,255,0.12); color:rgba(255,255,255,0.75); padding:8px 20px; border-radius:24px; font-size:13px; font-weight:500; cursor:pointer; font-family:var(--font); transition:all 0.2s; }
.blog-filter-btn:hover, .blog-filter-btn.active { background:var(--gold); border-color:var(--gold); color:#000; font-weight:600; }

/* ── Featured article (2-col card) ── */
.blog-featured { display:grid; grid-template-columns:1.6fr 1fr; gap:0; border-radius:20px; overflow:hidden; border:1px solid rgba(255,255,255,0.08); background:var(--dark2); margin-top:32px; text-decoration:none; color:#fff; transition:all 0.3s; }
.blog-featured:hover { border-color:rgba(245,166,35,0.35); transform:translateY(-3px); }
.blog-featured-img { width:100%; height:100%; object-fit:cover; min-height:280px; display:block; }
.blog-featured-body { padding:36px 32px; display:flex; flex-direction:column; justify-content:center; }
.blog-featured-tag { font-size:11px; font-weight:600; letter-spacing:0.12em; color:var(--gold); text-transform:uppercase; margin-bottom:12px; }
.blog-featured-title { font-size:22px; font-weight:700; line-height:1.3; margin-bottom:14px; }
.blog-featured-excerpt { font-size:15px; color:rgba(255,255,255,0.6); line-height:1.65; margin-bottom:20px; }
.blog-featured-meta { font-size:13px; color:var(--gold); font-weight:500; }

/* ── Article modal ── */
.article-modal { display:none; position:fixed; inset:0; z-index:2000; overflow-y:auto; background:rgba(0,0,0,0.94); -webkit-backdrop-filter:blur(24px); backdrop-filter:blur(24px); }
.article-modal-inner { max-width:760px; margin:0 auto; padding:72px 24px 80px; position:relative; }
.article-modal-close { position:fixed; top:16px; right:20px; background:rgba(255,255,255,0.08); border:1.5px solid rgba(255,255,255,0.16); color:rgba(255,255,255,0.85); width:40px; height:40px; border-radius:50%; font-size:18px; cursor:pointer; font-family:var(--font); transition:all 0.2s; display:flex; align-items:center; justify-content:center; z-index:2001; }
.article-modal-footer { margin-top:48px; padding-top:32px; border-top:1px solid rgba(255,255,255,0.08); display:flex; gap:16px; align-items:center; justify-content:space-between; flex-wrap:wrap; }

/* ── Responsive ── */
@media (max-width:768px) {
  .blog-featured { grid-template-columns:1fr; }
  .blog-featured-img { min-height:200px; max-height:240px; }
}
