.blog-section-heading {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 1.5rem;
  margin-bottom: 1.5rem;
}
.blog-section-heading h2 { margin: 0; font-size: clamp(1.6rem, 3vw, 2.4rem); }
.blog-section-heading p { margin: .7rem 0 0; max-width: 42rem; color: #526156; }
.blog-section-heading > a { flex-shrink: 0; color: #315c3a; font-weight: 700; text-underline-offset: .25em; }
.blog-carousel {
  display: flex;
  gap: 1.4rem;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory;
  scroll-padding-inline: .3rem;
  padding: .3rem .3rem 1.3rem;
  scrollbar-width: thin;
  scrollbar-color: #5d8d55 #e5eddf;
}
.blog-carousel > .blog-card { flex: 0 0 31%; }
.blog-preview { scroll-margin-top: 6rem; }
.blog-card { min-width: 0; background: #fffdfa; border: 1px solid #d9e3d4; border-radius: 1.35rem; overflow: hidden; scroll-snap-align: start; }
.blog-card__link { display: flex; height: 100%; flex-direction: column; color: #223126; text-decoration: none; }
.blog-card__link > img { display: block; width: 100%; height: auto; aspect-ratio: 8 / 5; object-fit: cover; border-bottom: 1px solid #d9e3d4; }
.blog-card__copy { display: flex; flex: 1; flex-direction: column; align-items: start; padding: 1.4rem; }
.blog-category { color: #506443; font-size: .76rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.blog-card h3 { margin: .7rem 0 1.5rem; font-size: 1.2rem; line-height: 1.4; overflow-wrap: anywhere; }
.blog-card__read { margin-top: auto; color: #315c3a; font-size: .9rem; font-weight: 700; }
.blog-card__read span { margin-left: .35rem; }
.blog-card:hover { border-color: #5d8d55; box-shadow: 0 8px 24px #22312612; }
.blog-card:focus-within { outline: 3px solid #315c3a; outline-offset: 3px; }
.blog-carousel:focus-visible, .blog-carousel-controls button:focus-visible, .blog-toc a:focus-visible { outline: 3px solid #315c3a; outline-offset: 3px; }
.blog-carousel-controls { display: flex; align-items: center; gap: .65rem; margin-top: .7rem; }
.blog-carousel-controls[hidden] { display: none; }
.blog-carousel-controls > span { margin-right: auto; color: #526156; font-size: .9rem; }
.blog-carousel-controls button { width: 2.8rem; height: 2.8rem; border: 1px solid #99ac90; border-radius: 50%; background: #fffdfa; color: #223126; cursor: pointer; font-size: 1.3rem; }
.blog-carousel-controls button:disabled { opacity: .35; cursor: default; }
.blog-index, .blog-article { margin: 2.5rem 0 4rem; }
.blog-heading { max-width: 55rem; margin-bottom: 2.5rem; }
.blog-heading .eyebrow { display: flex; }
.blog-heading h1 { margin: 0 0 1.3rem; font-size: clamp(2rem, 4.4vw, 3.5rem); line-height: 1.13; letter-spacing: -.035em; overflow-wrap: anywhere; }
.blog-heading p { color: #526156; font-size: 1.12rem; line-height: 1.85; }
.blog-back { display: block; width: fit-content; margin-bottom: 2rem; color: #315c3a; }
.blog-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; }
.blog-grid--related { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.blog-breadcrumbs { display: flex; flex-wrap: wrap; gap: .7rem; margin-bottom: 2rem; color: #526156; font-size: .9rem; }
.blog-breadcrumbs a, .blog-toc a { color: #315c3a; text-underline-offset: .2em; }
.blog-byline { color: #526156; font-size: .9rem; }
.blog-article__image { display: block; width: 100%; max-height: 29rem; object-fit: contain; height: auto; background: #eef2e7; border: 1px solid #d9e3d4; border-radius: 1.5rem; margin-bottom: 3rem; }
.blog-article__layout { display: grid; grid-template-columns: minmax(12rem, 1fr) minmax(0, 3fr); gap: 3rem; align-items: start; }
.blog-toc { padding: 1.5rem; background: #edf2e7; border-radius: 1rem; font-size: .9rem; }
.blog-toc ol { padding-left: 1.2rem; margin-bottom: 0; }
.blog-toc li { padding-left: .2rem; margin-top: 1rem; line-height: 1.5; }
.blog-prose { max-width: 46rem; }
.blog-prose section { scroll-margin-top: 7rem; margin-bottom: 2.5rem; }
.blog-prose h2 { font-size: clamp(1.4rem, 2.5vw, 1.85rem); line-height: 1.3; margin: 0 0 1rem; }
.blog-prose p { font-size: 1.05rem; line-height: 1.9; color: #3e4b40; }
.blog-cta { margin-top: 3rem; padding: 2rem; background: #e5eddf; border-radius: 1.25rem; }
.blog-related { padding-top: 2.5rem; margin-bottom: 4rem; border-top: 1px solid #d9e3d4; }
@media (max-width: 900px) {
  .blog-carousel > .blog-card { flex-basis: 46%; }
  .blog-article__layout { grid-template-columns: minmax(0, 1fr); gap: 2rem; }
  .blog-prose { max-width: none; }
  .blog-grid--related { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  .blog-section-heading { align-items: start; flex-direction: column; }
  .blog-carousel { gap: 1rem; }
  .blog-carousel > .blog-card { flex-basis: 85%; }
  .blog-grid, .blog-grid--related { grid-template-columns: minmax(0, 1fr); }
  .blog-heading { margin-bottom: 1.5rem; }
  .blog-cta { padding: 1.4rem; }
}
