/* Ratify EDF guides (blog). Uses the tokens from style.css; pages are generated by scripts/build-blog.mjs. */

/* Short pages (one or two guides): keep the footer at the bottom of the window, not halfway up. */
body { min-height: 100vh; min-height: 100dvh; display: flex; flex-direction: column; }
body > main { flex: 1 0 auto; }

/* Index */
.bl-hero { display: flex; flex-direction: column; gap: 18px; padding-top: 48px; padding-bottom: 28px; }
.bl-list { display: flex; flex-direction: column; margin-bottom: 56px; }
.bl-row:first-child { border-top: 2px solid var(--ink); }
.bl-row { display: grid; grid-template-columns: 56px minmax(0, 1fr) auto; gap: 20px; padding: 22px 0; border-bottom: 1px solid var(--line); color: var(--ink); text-decoration: none; }
.bl-row:hover { color: var(--ink); background: var(--tint); }
.bl-row:hover .bl-row-title { color: var(--brand-dark); }
.bl-no { font: 13px var(--mono); color: var(--stamp-text); letter-spacing: 0.04em; }
.bl-row .bl-no { padding-top: 6px; }
.bl-row-main { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.bl-row-title { font: 600 24px/1.2 var(--serif); }
.bl-row-desc { color: var(--sub); max-width: 46em; }
.bl-row-meta { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; font: 13px var(--mono); color: var(--sub); white-space: nowrap; }
.bl-tags { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; }
.bl-tag { font: 12px var(--mono); color: #3A2FA6; border: 1px dashed var(--brand-soft); border-radius: 4px; padding: 2px 8px; }

/* Post */
.bl-post { padding-top: 40px; padding-bottom: 56px; }
.bl-post-head { display: flex; flex-direction: column; gap: 16px; max-width: 46em; padding-bottom: 28px; border-bottom: 2px solid var(--ink); }
.bl-post-head h1 { font-size: clamp(34px, 5vw, 50px); line-height: 1.08; }
.bl-crumb, .bl-meta { margin: 0; display: flex; flex-wrap: wrap; gap: 8px; font: 13px var(--mono); color: var(--sub); }
.bl-crumb a { color: var(--sub); }
.bl-body { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 48px; padding-top: 32px; }
.bl-side-h { margin: 0 0 8px; font: 12px var(--mono); color: var(--sub); letter-spacing: 0.06em; text-transform: uppercase; }
.bl-toc { position: sticky; top: 24px; align-self: start; display: flex; flex-direction: column; gap: 8px; font-size: 14px; }
.bl-toc a { color: var(--sub); text-decoration: none; border-left: 2px solid var(--line); padding-left: 10px; }
.bl-toc a:hover { color: var(--ink); border-left-color: var(--brand); }
.bl-main { min-width: 0; max-width: 42em; display: flex; flex-direction: column; gap: 28px; }

.bl-prose { font-size: 17px; line-height: 1.7; }
.bl-prose > :first-child { margin-top: 0; }
.bl-prose h2 { font: 600 28px/1.2 var(--serif); margin: 40px 0 10px; scroll-margin-top: 16px; }
.bl-prose h3 { font: 600 20px var(--serif); margin: 28px 0 6px; }
.bl-prose p, .bl-prose ul, .bl-prose ol { margin: 0 0 16px; }
.bl-prose li { margin-bottom: 6px; }
.bl-prose blockquote { margin: 24px 0; padding: 4px 0 4px 20px; border-left: 3px solid var(--stamp); font: 400 21px/1.5 var(--serif); font-style: italic; }
.bl-prose blockquote p { margin: 0; }
.bl-prose code { font: 0.9em var(--mono); background: var(--soft); padding: 1px 5px; border-radius: 3px; }
.bl-prose table { width: 100%; border-collapse: collapse; margin: 0 0 20px; font-size: 15px; }
/* Tables wrap to the column instead of scrolling sideways on phones. */
.bl-prose th, .bl-prose td { text-align: left; vertical-align: top; padding: 10px 12px; border-bottom: 1px solid var(--line); overflow-wrap: break-word; hyphens: auto; }
.bl-prose th { font: 600 12px var(--mono); letter-spacing: 0.04em; text-transform: uppercase; color: var(--sub); border-bottom: 2px solid var(--ink); }
.bl-prose hr { border: 0; border-top: 1px dashed var(--line); margin: 32px 0; }

/* A dated box for key rules: <div class="bl-callout"><p class="bl-callout-label">...</p> ... </div> */
.bl-callout { background: var(--card); border: 1.5px solid var(--ink); border-radius: 6px; padding: 18px 20px; margin: 24px 0; }
.bl-callout .bl-callout-label { margin: 0 0 8px; font: 12px var(--mono); color: var(--stamp-text); letter-spacing: 0.06em; text-transform: uppercase; }
.bl-callout dl { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px 16px; margin: 0; }
.bl-callout dt { color: var(--sub); }
.bl-callout dd { margin: 0; font-family: var(--mono); text-align: right; }

.bl-meta b, .bl-byline b { color: var(--ink); font-weight: 600; }
.bl-byline { margin: 0; font-size: 15px; color: var(--sub); padding-top: 16px; border-top: 1px dashed var(--line); }
.bl-note { margin: 0; font-size: 14px; color: var(--sub); border-left: 3px solid var(--line); padding-left: 12px; }
.bl-cta { display: flex; flex-wrap: wrap; gap: 16px; align-items: center; justify-content: space-between; background: var(--card); border: 2px solid var(--brand); border-radius: 8px; padding: 22px; }
.bl-cta > div { flex: 1 1 260px; }
.bl-cta-title { margin: 0 0 4px; font: 600 21px var(--serif); }
.bl-cta-sub { margin: 0; color: var(--sub); font-size: 15px; }
.bl-related { display: flex; flex-direction: column; gap: 4px; }
.bl-related a { display: flex; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--line); color: var(--ink); text-decoration: none; font-family: var(--serif); font-size: 18px; }
.bl-related a:hover { color: var(--brand-dark); }
.bl-back { margin: 0; }

@media (max-width: 860px) {
  .bl-body { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .bl-toc { position: static; border: 1px solid var(--line); border-radius: 6px; padding: 14px 16px; background: var(--card); }
}
@media (max-width: 720px) {
  .bl-row { grid-template-columns: minmax(0, 1fr); gap: 8px; padding: 18px 0; }
  .bl-row-meta { flex-direction: row; gap: 12px; align-items: center; }
  .bl-row-title { font-size: 21px; }
  .bl-prose { font-size: 16px; }
  .bl-prose h2 { font-size: 24px; }
  .bl-prose table { font-size: 14px; }
  .bl-prose th, .bl-prose td { padding: 8px 6px; }
  .bl-prose td:first-child { width: 38%; }
  .bl-cta .btn { width: 100%; }
}

/* Bank forms page (/bank-forms/) */
.bf-wrap { display: flex; flex-direction: column; gap: 20px; margin-bottom: 56px; }
.bf-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 16px; }
.bf-card { background: var(--card); border: 1px solid var(--line); border-radius: 8px; padding: 20px; display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.bf-card.bf-rbi { border: 2px solid var(--ink); }
.bf-card p { margin: 0; color: var(--sub); font-size: 15px; }
.bf-card-head { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; flex-wrap: wrap; }
.bf-card h2 { margin: 0; font: 600 22px/1.2 var(--serif); }
.bf-status { font: 12px var(--mono); border-radius: 4px; padding: 2px 8px; white-space: nowrap; border: 1px solid currentColor; }
.bf-s-own { color: var(--ok); }
.bf-s-rbi { color: var(--brand); }
.bf-s-guide { color: var(--warn); }
.bf-s-none { color: var(--sub); border-style: dashed; }
.bf-links { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.bf-links li { display: flex; flex-direction: column; gap: 2px; padding: 10px 12px; background: var(--bg); border-radius: 6px; }
.bf-links a { font-weight: 600; overflow-wrap: anywhere; }
.bf-meta { font: 12px var(--mono); color: var(--sub); }
.bf-actions { display: flex; flex-wrap: wrap; gap: 16px; margin-top: auto !important; padding-top: 4px; font-size: 14px; }
@media (max-width: 720px) {
  .bf-grid { grid-template-columns: minmax(0, 1fr); }
}
