/* ============================================================
   ENMA DIGITAL — Public Blog Pages
   Assumes /style.css is loaded first for variables, fonts, colors.
   ============================================================ */

/* ---------------- listing ---------------- */
.blog-filter-row{ display:flex; gap:12px; flex-wrap:wrap; margin-bottom:48px; }
.blog-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
@media (max-width:980px){ .blog-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:620px){ .blog-grid{ grid-template-columns:1fr; } }

.blog-card{ border-radius:20px; overflow:hidden; border:1px solid var(--border); background:var(--card); display:flex; flex-direction:column; transition:transform .4s var(--ease), border-color .4s; }
.blog-card:hover{ transform:translateY(-6px); border-color:rgba(91,255,179,.3); }
.blog-card .bc-img{ width:100%; aspect-ratio:16/10; object-fit:cover; background:var(--bg-3); }
.blog-card .bc-body{ padding:22px 22px 26px; display:flex; flex-direction:column; flex:1; }
.blog-card .bc-cat{ font-family:var(--font-alt); font-size:11.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--accent-3); margin-bottom:10px; }
.blog-card h3{ font-family:var(--font-alt); font-weight:700; font-size:19px; text-transform:none; line-height:1.3; margin-bottom:10px; }
.blog-card p{ color:var(--gray); font-size:14px; line-height:1.6; flex:1; }
.blog-card .bc-meta{ display:flex; gap:14px; margin-top:16px; font-size:12.5px; color:var(--gray-dim); font-family:var(--font-alt); }

.blog-empty{ text-align:center; padding:100px 20px; }
.blog-empty .mark{ font-family:var(--font-display); font-size:80px; color:var(--accent-3); opacity:.7; margin-bottom:20px; }

/* ---------------- single post ---------------- */
.breadcrumb{ display:flex; gap:8px; align-items:center; font-family:var(--font-alt); font-size:12.5px; color:var(--gray-dim); margin-bottom:28px; flex-wrap:wrap; }
.breadcrumb a{ color:var(--gray); }
.breadcrumb a:hover{ color:var(--accent-3); }

.post-hero-img{ width:100%; max-height:480px; object-fit:cover; border-radius:24px; border:1px solid var(--border); margin:32px 0 40px; }
.post-meta-row{ display:flex; gap:20px; flex-wrap:wrap; align-items:center; color:var(--gray); font-size:13.5px; font-family:var(--font-alt); margin-bottom:8px; }
.post-meta-row .dot{ width:4px; height:4px; border-radius:50%; background:var(--gray-dim); }

.post-layout{ display:grid; grid-template-columns:1fr 260px; gap:56px; align-items:start; }
@media (max-width:980px){ .post-layout{ grid-template-columns:1fr; } }

.post-toc{ position:sticky; top:110px; border:1px solid var(--border); border-radius:16px; padding:22px; background:var(--card); }
.post-toc h4{ font-family:var(--font-alt); font-size:12px; text-transform:uppercase; letter-spacing:.05em; color:var(--gray); margin-bottom:14px; }
.post-toc a{ display:block; font-size:13.5px; color:var(--gray); padding:6px 0; border-left:2px solid transparent; padding-left:12px; margin-left:-13px; transition:color .2s, border-color .2s; }
.post-toc a:hover{ color:var(--accent-3); border-color:var(--accent-3); }

.post-content{ font-size:16.5px; line-height:1.8; color:var(--white); }
.post-content h2{ font-family:var(--font-alt); font-weight:700; font-size:28px; margin:44px 0 18px; text-transform:none; }
.post-content h3{ font-family:var(--font-alt); font-weight:700; font-size:21px; margin:34px 0 14px; text-transform:none; }
.post-content p{ margin-bottom:20px; color:var(--gray); }
.post-content a{ color:var(--accent-3); text-decoration:underline; text-underline-offset:3px; }
.post-content img{ max-width:100%; border-radius:14px; margin:24px 0; }
.post-content blockquote{ border-left:3px solid var(--accent-3); padding:4px 0 4px 22px; margin:28px 0; color:var(--white); font-size:19px; font-style:italic; }
.post-content ul, .post-content ol{ margin:0 0 20px 22px; color:var(--gray); }
.post-content li{ margin-bottom:8px; }
.post-content table{ width:100%; border-collapse:collapse; margin:24px 0; }
.post-content table td, .post-content table th{ border:1px solid var(--border); padding:10px 14px; font-size:14.5px; }
.post-content iframe{ width:100%; aspect-ratio:16/9; border-radius:14px; border:none; margin:24px 0; }
.post-content pre{ background:var(--bg-2); border:1px solid var(--border); border-radius:12px; padding:18px; overflow-x:auto; font-size:13.5px; margin:20px 0; }

.post-tags-row{ display:flex; gap:10px; flex-wrap:wrap; margin:40px 0; }
.post-share{ display:flex; gap:12px; align-items:center; margin:32px 0; }
.post-share a{ width:38px; height:38px; border-radius:50%; border:1px solid var(--border); display:flex; align-items:center; justify-content:center; color:var(--white); transition:all .2s; }
.post-share a:hover{ border-color:var(--accent-3); color:var(--accent-3); }

.related-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
@media (max-width:780px){ .related-grid{ grid-template-columns:1fr; } }

.post-nav-row{ display:grid; grid-template-columns:1fr 1fr; gap:20px; margin:48px 0; }
.post-nav-card{ border:1px solid var(--border); border-radius:16px; padding:20px; background:var(--card); transition:border-color .3s; }
.post-nav-card:hover{ border-color:rgba(91,255,179,.35); }
.post-nav-card .pnc-dir{ font-family:var(--font-alt); font-size:11.5px; color:var(--gray-dim); text-transform:uppercase; letter-spacing:.05em; }
.post-nav-card .pnc-title{ font-family:var(--font-alt); font-weight:700; font-size:15px; margin-top:8px; }
.post-nav-card.next{ text-align:right; }
@media (max-width:620px){ .post-nav-row{ grid-template-columns:1fr; } }
