/* ===== Public blog ===== */
.blog-hero{background:linear-gradient(160deg,#071425,#0c2039);color:#fff;padding:140px 0 60px}
.blog-hero .eyebrow{color:#8cecff}
.blog-hero h1{font-size:clamp(2.2rem,5vw,3.4rem);margin:12px 0 10px;letter-spacing:-.03em}
.blog-hero p{color:rgba(255,255,255,.7);max-width:620px;margin:0}

.blog-section{padding:70px 0 100px;background:var(--paper)}
.blog-filters{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:36px}
.blog-filters a{padding:8px 16px;border-radius:999px;background:#fff;border:1px solid var(--line);font-size:.85rem;font-weight:700;color:var(--ink)}
.blog-filters a:hover,.blog-filters a.active{background:var(--blue);color:#fff;border-color:var(--blue)}

.post-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.post-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;transition:.2s;box-shadow:var(--shadow-sm)}
.post-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.post-card .thumb{aspect-ratio:16/9;background:#dbe6f3 center/cover no-repeat}
.post-card .body{padding:20px;display:flex;flex-direction:column;gap:8px;flex:1}
.post-card .cat{font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--blue)}
.post-card h3{margin:0;font-size:1.12rem;line-height:1.3;color:var(--ink)}
.post-card p{margin:0;color:var(--muted);font-size:.9rem;flex:1}
.post-card .meta{font-size:.78rem;color:var(--muted);margin-top:6px}

.blog-empty{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:44px;text-align:center;color:var(--muted)}
.pagination-wrap{margin-top:40px}
.pagination-wrap nav{display:flex;justify-content:center}

/* single post */
.article{padding:130px 0 90px;background:#fff}
.article .container{max-width:760px}
.article .eyebrow{color:var(--blue)}
.article h1{font-size:clamp(2rem,4.5vw,3rem);line-height:1.15;letter-spacing:-.03em;color:var(--ink);margin:14px 0 14px}
.article .meta{display:flex;flex-wrap:wrap;gap:14px;color:var(--muted);font-size:.86rem;margin-bottom:26px}
.article .cover{width:100%;border-radius:18px;margin:0 0 30px;aspect-ratio:16/8;object-fit:cover}
.article .prose{color:var(--text);font-size:1.06rem;line-height:1.75}
.article .prose h2{font-size:1.6rem;margin:34px 0 12px;color:var(--ink)}
.article .prose h3{font-size:1.3rem;margin:26px 0 10px;color:var(--ink)}
.article .prose p{margin:0 0 18px}
.article .prose ul,.article .prose ol{margin:0 0 18px;padding-left:22px}
.article .prose li{margin:6px 0}
.article .prose a{color:var(--blue);text-decoration:underline}
.article .prose img{max-width:100%;height:auto;border-radius:12px;margin:18px 0}
.article .prose blockquote{margin:20px 0;padding:12px 20px;border-left:4px solid var(--blue);background:var(--paper);border-radius:0 10px 10px 0;color:var(--ink)}
.article .prose pre{background:#0b1a2e;color:#e6edf5;padding:16px;border-radius:12px;overflow:auto;font-size:.9rem}
.article .prose table{width:100%;border-collapse:collapse;margin:18px 0}
.article .prose th,.article .prose td{border:1px solid var(--line);padding:8px 12px;text-align:left}
.article .tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:34px;padding-top:22px;border-top:1px solid var(--line)}
.article .tags a{font-size:.8rem;font-weight:700;color:var(--blue);background:var(--paper);padding:6px 12px;border-radius:999px}

@media(max-width:900px){.post-grid{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.post-grid{grid-template-columns:1fr}}
