/* Blog pages: listing and articles. Builds on styles-v4.css (colours, header, footer). */
.blog-main { padding: 120px 0 80px; min-height: 70vh; }

/* ---------- Listing ---------- */
.blog-head { max-width: 680px; margin-bottom: 48px; }
.blog-head .eyebrow { margin-bottom: 14px; }
.blog-head h1 { font-size: clamp(36px, 5vw, 60px); }
.blog-head p { color: var(--muted); font-size: clamp(16px, 1.4vw, 19px); margin-top: 14px; }

.post-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 20px; }
.post-card {
  display: flex; flex-direction: column; overflow: hidden; border-radius: 18px;
  border: 1px solid var(--line); background: rgba(255,255,255,.03); text-decoration: none;
  transition: border-color .2s, transform .2s;
}
.post-card:hover { border-color: rgba(143,180,255,.5); transform: translateY(-2px); }
.post-card img { width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: cover; background: var(--bg-2); }
.post-card-body { display: flex; flex-direction: column; gap: 10px; padding: 22px; flex: 1; }
.post-card h2 { font-size: 21px; font-weight: 500; line-height: 1.25; }
.post-card p { color: var(--muted); font-size: 15px; }
.post-meta { font-size: 13px; letter-spacing: .06em; text-transform: uppercase; color: var(--accent); }
.post-card .read-more { margin-top: auto; font-size: 14.5px; font-weight: 500; color: #fff; }

/* ---------- Article ---------- */
.article { max-width: 720px; margin-inline: auto; }
.back-link { display: inline-block; font-size: 15px; color: var(--muted); text-decoration: none; margin-bottom: 28px; }
.back-link:hover { color: #fff; }
.article h1 { font-size: clamp(34px, 4.6vw, 52px); margin: 12px 0 16px; }
.article .standfirst { font-size: clamp(17px, 1.5vw, 20px); color: var(--muted); }
.article-hero { margin: 32px 0 8px; border-radius: 18px; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; background: var(--bg-2); }
.article-hero-caption { font-size: 13px; color: #6f7888; }
.article-body { margin-top: 36px; }
.article-body h2 { font-size: clamp(24px, 2.6vw, 30px); font-weight: 500; margin: 44px 0 14px; }
.article-body h3 { font-size: 19px; font-weight: 500; margin: 28px 0 10px; }
.article-body p, .article-body li { color: #c9d0db; font-size: 17.5px; line-height: 1.75; }
.article-body p + p { margin-top: 18px; }
.article-body ul, .article-body ol { padding-left: 22px; margin: 16px 0; }
.article-body li + li { margin-top: 8px; }
.article-body strong { color: var(--text); font-weight: 500; }
.article-body a { color: var(--accent); }
.callout { margin: 28px 0; padding: 20px 22px; border-radius: 14px; border: 1px solid rgba(143,180,255,.3); background: rgba(143,180,255,.07); }
.callout p { font-size: 16px; color: var(--text); }
.disclaimer { margin-top: 40px; padding-top: 20px; border-top: 1px solid var(--line); font-size: 14px !important; color: #6f7888 !important; }

.article-cta { margin-top: 56px; padding: 32px; border-radius: 18px; border: 1px solid var(--line); background: var(--bg-2); }
.article-cta h2 { font-size: 26px; font-weight: 500; }
.article-cta p { color: var(--muted); margin: 10px 0 20px; }

.article-body table { width: 100%; border-collapse: collapse; margin: 20px 0; font-size: 15.5px; }
.article-body th, .article-body td { text-align: left; padding: 10px 12px; border-bottom: 1px solid var(--line); color: #c9d0db; vertical-align: top; }
.article-body th { color: var(--text); font-weight: 500; }
.table-wrap { overflow-x: auto; }

.related { margin-top: 64px; }
.related > h2 { font-size: 26px; font-weight: 500; margin-bottom: 20px; }
.related .post-card h3 { font-size: 18px; font-weight: 500; line-height: 1.3; }
.related .post-card p:not(.post-meta) { display: none; }

@media (max-width: 700px) {
  .blog-main { padding: 100px 0 56px; }
  .blog-head { margin-bottom: 32px; }
  .article-cta { padding: 24px 20px; }
  .article-cta .btn { width: 100%; }
}
