/* ── Archive / page header ── */
.page-head { padding-top: var(--s10); padding-bottom: var(--s6); }
.page-title { margin-top: var(--s3); font-size:clamp(2.4rem,5vw,3.4rem); }
.page-desc { color: var(--text-2); max-width: 640px; margin-top: var(--s4); font-size: 1.15rem; }
.author-head { display: flex; flex-direction: column; align-items: flex-start; gap: var(--s3); }

/* ── Post card grid ── */
.post-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--s6); }
@media (max-width: 940px) { .post-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .post-grid { grid-template-columns: 1fr; } }

/* ── Single post ── */
.post { padding-top: var(--s9); }
.post-head { text-align: left; padding-bottom: var(--s6); }
.post-title { margin-top: var(--s4); font-size:clamp(2.2rem,4.5vw,3.2rem); }
.post-standfirst { font-size: 1.3rem; color: var(--text-1); margin-top: var(--s5); line-height: 1.45; }
.post-meta { display: flex; align-items: center; gap: var(--s3); margin-top: var(--s6); font-size: .9rem; color: var(--text-3); }
.post-meta a { color: var(--text-2); }
.post-meta a:hover { color: var(--text-1); }
.post-image { margin: var(--s7) auto var(--s9); }
.post-image img { width: 100%; border-radius: var(--radius-xl); border: 1px solid var(--border-subtle); box-shadow: 0 40px 80px -40px rgba(123,47,255,.4); }
.post-image figcaption { text-align: center; color: var(--text-3); font-size: .85rem; margin-top: var(--s3); }
.post-footer { padding-top: var(--s7); }

.avatar { width: 30px; height: 30px; border-radius: 50%; object-fit: cover; border: 1px solid var(--border); }
.avatar.lg { width: 60px; height: 60px; }

/* ── Error / 404 ── */
.error { text-align:center; }
.error .page-title { background:var(--grad-brand); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; color:transparent; }
.error .btn { margin-top: var(--s6); }
