:root {
  --lf-bg: #f5f7f2;
  --lf-surface: #ffffff;
  --lf-green: #3f7d4e;
  --lf-green-dark: #2e5f3a;
  --lf-wheat: #d6a23e;
  --lf-wheat-dark: #b6852a;
  --lf-ink: #2a2d27;
  --lf-muted: #727767;
  --lf-border: #e3e7da;
  --lf-serif: "Merriweather", Georgia, serif;
  --lf-sans: "Source Sans 3", Helvetica, Arial, sans-serif;
}

body {
  background-color: #f5f7f2;
  color: #2a2d27;
  font-family: "Source Sans 3", Helvetica, Arial, sans-serif;
  font-size: 17px;
  line-height: 1.75;
}

h1, h2, h3, h4, .brand strong, .post-card-title {
  font-family: "Merriweather", Georgia, serif;
  color: #2e5f3a;
  line-height: 1.25;
}
h1 { font-size: 34px; font-weight: 700; }
h2 { font-size: 26px; font-weight: 700; }
h3 { font-size: 20px; font-weight: 600; }

/* header / nav */
.site-header { background: #ffffff; border-bottom: 2px solid #3f7d4e; margin-bottom: 1.5rem; }
.site-header .brand strong { font-size: 22px; color: #3f7d4e; }
.site-header nav { position: relative; flex-wrap: wrap; }
.nav-links { display: flex; gap: 0.25rem; align-items: center; list-style: none; margin: 0; }
.nav-links a { color: #2a2d27; text-decoration: none; font-weight: 600; padding: 0.4rem 0.6rem; display: inline-block; }
.nav-links a:hover { color: #3f7d4e; }
.has-dropdown { position: relative; }
.has-dropdown .dropdown { display: none; position: absolute; top: 100%; left: 0; min-width: 200px; background: #ffffff; border: 1px solid #e3e7da; border-radius: 6px; list-style: none; margin: 0; padding: 0.25rem 0; z-index: 50; }
.has-dropdown:hover .dropdown, .has-dropdown:focus-within .dropdown { display: block; }
.has-dropdown .dropdown li { display: block; }
.has-dropdown .dropdown a { display: block; padding: 0.4rem 1rem; }
.has-dropdown .dropdown a:hover { background: #f5f7f2; }
.nav-toggle { display: none; cursor: pointer; font-size: 1.5rem; color: #3f7d4e; padding: 0.2rem 0.5rem; }
@media (max-width: 768px) {
  .nav-toggle { display: inline-block; }
  .nav-links { display: none; width: 100%; flex-direction: column; align-items: flex-start; }
  .nav-toggle-cb:checked ~ .nav-links { display: flex; }
  .has-dropdown .dropdown { position: static; border: none; }
}

/* cards / listing */
.post-list { display: grid; gap: 2rem; }
.post-card { background: #ffffff; border: 1px solid #e3e7da; border-radius: 10px; padding: 1.25rem 1.5rem; box-shadow: 0 1px 3px rgba(0,0,0,0.04); }
.post-card img { width: 100%; border-radius: 8px; margin-bottom: 0.75rem; object-fit: cover; }
.post-card-title { margin: 0 0 0.5rem; font-size: 20px; }
.post-card-title a { color: #2e5f3a; text-decoration: none; }
.post-card-title a:hover { color: #d6a23e; }
.read-more { display: inline-block; color: #d6a23e; font-weight: 700; text-decoration: none; }
.read-more:hover { color: #b6852a; text-decoration: underline; }
.card-grid { display: grid; gap: 1.5rem; }
.card-grid.cols-2 { grid-template-columns: repeat(2, 1fr); }
.card-grid.cols-3 { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 768px) { .card-grid.cols-2, .card-grid.cols-3 { grid-template-columns: 1fr; } }

/* prose */
.site-prose { background: #ffffff; border: 1px solid #e3e7da; border-radius: 10px; padding: 2rem 2.25rem; max-width: 800px; margin: 0 auto; }
.site-prose img { max-width: 100%; height: auto; border-radius: 8px; }
.site-prose a, .content-category a:not(.read-more):not(.post-card-title a) { color: #3f7d4e; text-decoration: underline; text-decoration-color: #e3e7da; }
.site-prose a:hover { color: #2e5f3a; text-decoration-color: #d6a23e; }
.article-meta { color: #727767; font-size: 13px; text-transform: uppercase; letter-spacing: 0.06em; }
.article-summary { font-size: 1.15rem; border-left: 3px solid #d6a23e; padding-left: 1rem; color: #2a2d27; }
.article-main-image { max-width: 100%; border-radius: 8px; margin-bottom: 1rem; }
.article-toc { background: #f5f7f2; border-radius: 8px; padding: 1rem 1.25rem; margin-bottom: 1.5rem; }
.breadcrumbs { font-size: 0.9rem; color: #727767; margin-bottom: 1rem; }
.breadcrumbs a { color: #727767; }

/* footer */
.site-footer { background: #2e5f3a; color: #d7e2d0; margin-top: 3rem; padding-top: 2rem; }
.site-footer .footer-tagline { color: #aec4a5; }
.footer-nav ul { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 0.25rem 1rem; }
.footer-nav a { color: #d7e2d0; text-decoration: none; }
.footer-nav a:hover { color: #d6a23e; }
.footer-copy { color: #aec4a5; font-size: 0.85rem; border-top: 1px solid #3f7d4e; padding-top: 1rem; }

@media print { .site-header, .site-footer, .breadcrumbs { display: none; } body { background: #fff; } }
