:root {
  --ink: #243038;
  --muted: #65717a;
  --paper: #fbfcfa;
  --line: #dce3de;
  --green: #719c20;
  --max: 72rem;
}

* { box-sizing: border-box; }
html { color: var(--ink); background: var(--paper); }
body { margin: 0; font: 18px/1.6 system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
a { color: #456d0e; text-decoration-thickness: .08em; text-underline-offset: .15em; }
a:hover { color: #263d08; }
img { display: block; height: auto; max-width: 100%; }

.site-shell { width: min(var(--max), calc(100% - 2.5rem)); margin-inline: auto; }
.site-header { border-bottom: 1px solid var(--line); background: #fff; }
.site-header__inner { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 4.5rem; }
.site-name { color: var(--ink); font-weight: 760; letter-spacing: -.02em; text-decoration: none; }
.site-nav { display: flex; flex-wrap: wrap; gap: 1.25rem; margin: 0; padding: 0; list-style: none; }
.site-nav a { color: var(--ink); text-decoration: none; }
.site-nav a:hover { color: var(--green); }

main { min-height: 70vh; padding-block: 3rem 5rem; }
.prose > * { max-width: 100%; }
.prose p, .prose li { max-width: 48rem; }
.prose h1, .prose h2, .prose h3 { color: var(--ink); line-height: 1.15; letter-spacing: -.025em; }
.prose h2 { margin-top: 3rem; }
.prose figure { margin: 1.75rem 0; }
.prose iframe { width: 100%; max-width: 100%; }

.home-page > :first-child { margin-top: 0; }
.wp-block-columns, .qodef-gutenberg-row, .stk-row, .uagb-container-inner-blocks-wrap {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr));
  gap: 1.5rem;
  align-items: start;
}
.wp-block-columns > *, .qodef-gutenberg-row > *, .stk-row > * { min-width: 0; }
.wp-block-spacer { display: none; }
.nf-form-cont, .ninja-forms-noscript-message { display: none; }
.contact-cta a { display: inline-block; padding: .7rem 1rem; border-radius: .3rem; color: #fff; background: var(--green); font-weight: 650; text-decoration: none; }

.article { max-width: 52rem; }
.article-header { margin-bottom: 2rem; }
.article-header h1 { margin: 0; font-size: clamp(2rem, 7vw, 4.4rem); line-height: 1.03; letter-spacing: -.045em; }
.article-date { margin: .8rem 0 0; color: var(--muted); font-size: .92rem; }
.article-feature { width: 100%; max-height: 34rem; margin: 0 0 2rem; object-fit: cover; }
.article .wp-block-columns { margin-block: 2rem; }

.list-page { max-width: 62rem; }
.post-list { display: grid; gap: 2rem; }
.post-card { display: grid; grid-template-columns: minmax(11rem, 16rem) 1fr; gap: 1.5rem; padding-bottom: 2rem; border-bottom: 1px solid var(--line); }
.post-card img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; background: #edf1ed; }
.post-card h2 { margin: 0; font-size: 1.45rem; line-height: 1.2; }
.post-card h2 a { color: var(--ink); }
.pagination { display: flex; justify-content: space-between; gap: 1rem; margin-top: 2.5rem; }
.not-found { text-align: center; }

.site-footer { border-top: 1px solid var(--line); background: #fff; padding-block: 2rem; color: var(--muted); font-size: .9rem; }
.site-footer nav { display: flex; flex-wrap: wrap; gap: 1rem; }
.site-footer p { margin-bottom: 0; }

@media (max-width: 40rem) {
  body { font-size: 17px; }
  .site-header__inner { align-items: flex-start; flex-direction: column; justify-content: center; padding-block: .8rem; }
  main { padding-block: 2rem 3.5rem; }
  .post-card { grid-template-columns: 1fr; gap: .8rem; }
  .post-card img { max-width: 22rem; }
  .pagination { align-items: center; flex-wrap: wrap; }
}
