/* Revana blog: article typography, loaded after /assets/site.css.
   Colours come from the site's tokens, each with a neutral fallback, so the pages
   follow whichever theme site.css defines (dark today) and still read without it. */

.post { max-width: 72ch; margin: 0 auto; padding: 40px 0 80px; overflow-wrap: break-word; }

/* ---------- article head ---------- */
.post-head { padding-bottom: 28px; border-bottom: 1px solid var(--border, rgba(127, 127, 127, .3)); }
.post-head .crumbs { margin-bottom: 22px; }
.post-head h1 {
  margin: 6px 0 0; font-size: clamp(30px, 4.6vw, 46px); font-weight: 500; line-height: 1.08;
  letter-spacing: -0.03em; text-transform: none; color: var(--text, inherit); text-wrap: balance;
}
.post-lede { margin: 18px 0 0; font-size: 18px; line-height: 1.6; color: var(--text-2, inherit); }
.post-meta {
  margin: 18px 0 0; font: 500 11.5px/1.5 var(--mono, ui-monospace, monospace); text-transform: uppercase;
  letter-spacing: .1em; color: var(--muted, inherit);
}

/* ---------- article body ---------- */
.post-body { padding-top: 12px; font-size: 16.5px; line-height: 1.72; color: var(--text-2, inherit); }
.post-body p, .post-body ul, .post-body ol { margin: 0 0 18px; }
.post-body ul, .post-body ol { padding-left: 22px; }
.post-body li { margin: 7px 0; }
.post-body li::marker { color: var(--accent, currentColor); }
.post-body h2 {
  margin: 52px 0 14px; font-size: clamp(22px, 2.8vw, 28px); font-weight: 500; line-height: 1.2;
  letter-spacing: -0.02em; color: var(--text, inherit); scroll-margin-top: 84px;
}
.post-body h3 {
  margin: 32px 0 10px; font-size: 18px; font-weight: 550; line-height: 1.3; letter-spacing: -0.01em;
  color: var(--text, inherit); scroll-margin-top: 84px;
}
.post-body strong { font-weight: 600; color: var(--text, inherit); }
.post-body a:not(.btn) {
  color: var(--accent, #c2410c); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px;
}
.post-body a:not(.btn):hover { color: var(--accent-strong, inherit); }
.post-body :not(pre) > code {
  padding: 1px 5px; font-size: .86em; color: var(--text, inherit);
  background: var(--surface-2, rgba(127, 127, 127, .12)); border: 1px solid var(--border, rgba(127, 127, 127, .3));
}

/* code: one box per language, scrolls sideways instead of wrapping */
.post-body .codebox { margin: 20px 0 24px; }
.post-body .codebox + .codebox { margin-top: -10px; }
.post-body .codebox pre { overflow-x: auto; font-size: 13px; line-height: 1.6; }
.post-body .codebox .tab { cursor: default; }

/* tables: the wrapper scrolls on narrow screens */
.post-body .ftable-wrap { margin: 20px 0 24px; }
.post .ftable { min-width: 0; font-size: 14.5px; }
.post .ftable.wide { min-width: 600px; }
.post .ftable th, .post .ftable td { padding: 12px 14px; }
.post .ftable td { color: var(--text-2, inherit); }
.post .ftable .num { font-family: var(--mono, ui-monospace, monospace); font-size: 13.5px; white-space: nowrap; }
.post .ftable code { white-space: nowrap; }

/* callout */
.post-note {
  margin: 24px 0; padding: 14px 18px; font-size: 15.5px;
  background: var(--surface, rgba(127, 127, 127, .08)); border: 1px solid var(--border, rgba(127, 127, 127, .3));
  border-left: 3px solid var(--accent, currentColor);
}
.post-note p { margin: 0; }
.post-note p + p { margin-top: 10px; }

/* FAQ: reuses the site's .faq details */
.post-body .faq { margin-top: 16px; }
.post-body .faq summary { color: var(--text, inherit); }
.post-body .faq details p { margin: 0; padding: 0 0 16px; font-size: 15.5px; line-height: 1.65; color: var(--muted, inherit); }

/* call to action: reuses the site's .cta-band */
.post-body .cta-band { margin: 56px 0 0; }
.post-body .cta-band h2 { margin: 0; font-size: clamp(24px, 3.4vw, 34px); }
.post-body .cta-band p { margin: 12px auto 24px; }

/* related guides */
.post-related { margin-top: 48px; padding-top: 24px; border-top: 1px solid var(--border, rgba(127, 127, 127, .3)); }
.post-related h2 { margin-top: 0; font-size: 20px; }
.post-related ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.post-related li { margin: 0; }

/* ---------- blog index ---------- */
.blog-list { list-style: none; padding: 0; margin: 28px 0 0; display: grid; gap: 12px; }
.blog-card {
  display: block; padding: 20px 22px; background: var(--surface, transparent);
  border: 1px solid var(--border, rgba(127, 127, 127, .3)); transition: border-color .15s;
}
.blog-card:hover, .blog-card:focus-visible { border-color: var(--border-strong, currentColor); }
.blog-card h2 { margin: 0; font-size: 20px; font-weight: 500; line-height: 1.3; letter-spacing: -0.015em; color: var(--text, inherit); }
.blog-card p { margin: 8px 0 0; font-size: 15px; line-height: 1.6; color: var(--muted, inherit); }
.blog-card .post-meta { margin-top: 12px; color: var(--accent, inherit); }

@media (max-width: 600px) {
  .post { padding: 28px 0 56px; }
  .post-lede { font-size: 17px; }
  .post-body { font-size: 16px; }
  .post-body h2 { margin-top: 44px; }
  .post-body .codebox pre { font-size: 12px; padding: 14px; }
  .blog-card { padding: 16px; }
}
