.cms-managed-body {
  padding: clamp(3rem, 7vw, 6rem) 0;
  background: #f7f5ee;
}

.cms-managed-body__content,
.cms-news-article__body {
  max-width: 760px;
  margin: 0 auto;
  font-size: clamp(1.05rem, 2vw, 1.25rem);
  line-height: 1.75;
  color: #163d35;
}

.cms-managed-body__content p + p,
.cms-news-article__body p + p { margin-top: 1.4rem; }

.cms-page-blocks {
  padding: clamp(3.5rem, 8vw, 7rem) 0;
  color: #123d35;
  background: #f7f5ee;
}
.cms-page-blocks__inner { width: min(1180px, calc(100% - 2rem)); margin: 0 auto; }
.cms-block { margin: 0 auto clamp(1.5rem, 4vw, 3.5rem); }
.cms-block:last-child { margin-bottom: 0; }
.cms-block__surface { margin: 0 auto; }
.cms-block--width-narrow .cms-block__surface { max-width: 760px; }
.cms-block--width-wide .cms-block__surface { max-width: 1050px; }
.cms-block--align-center { text-align: center; }
.cms-block--align-center .cms-block__copy { margin-right: auto; margin-left: auto; }
.cms-block__eyebrow {
  margin: 0 0 .65rem;
  color: #0d6654;
  font-size: .72rem;
  font-weight: 900;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.cms-block h2 {
  max-width: 920px;
  margin: 0;
  color: inherit;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2.1rem, 5vw, 4.5rem);
  font-weight: 600;
  line-height: .98;
  letter-spacing: -.04em;
}
.cms-block--align-center h2 { margin-right: auto; margin-left: auto; }
.cms-block__copy { max-width: 780px; margin-top: 1rem; font-size: clamp(1rem, 1.8vw, 1.17rem); line-height: 1.72; }
.cms-block__copy p, .cms-block-card__copy p { margin: 0; }
.cms-block__copy p + p, .cms-block-card__copy p + p { margin-top: 1rem; }
.cms-block--image { overflow: hidden; }
.cms-block--image-contained { max-width: 960px; }
.cms-block--image-wide { max-width: 1180px; }
.cms-block--image img { display: block; width: 100%; max-height: 720px; border-radius: 1.4rem; object-fit: cover; }
.cms-block--image figcaption { max-width: 760px; margin: .8rem auto 0; color: #58736c; font-size: .82rem; line-height: 1.55; }
.cms-block--callout {
  max-width: 980px;
  padding: clamp(1.5rem, 5vw, 3.5rem);
  border: 1px solid #cbd8d2;
  border-radius: 1.5rem;
  background: #fff;
}
.cms-block--callout-lime { border-color: #bed657; background: #d8f26b; }
.cms-block--callout-green { border-color: #063f35; color: #fff; background: #063f35; }
.cms-block--callout-green .cms-block__eyebrow { color: #d8f26b; }
.cms-block--callout-coral { border-color: #f2a08a; background: #ffe1d7; }
.cms-block--cta {
  max-width: 1080px;
  padding: clamp(1.5rem, 5vw, 3.8rem);
  border-radius: 1.6rem;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: clamp(1.5rem, 5vw, 4rem);
  align-items: center;
  color: #fff;
  background: #063f35;
}
.cms-block--cta .cms-block__eyebrow { color: #d8f26b; }
.cms-block--cta > a {
  min-height: 3.35rem;
  padding: .85rem 1.15rem;
  border: 2px solid #d8f26b;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  color: #063f35;
  background: #d8f26b;
  font-weight: 900;
  text-decoration: none;
}
.cms-block--cta-lime { color: #063f35; background: #d8f26b; }
.cms-block--cta-lime .cms-block__eyebrow { color: #0d6654; }
.cms-block--cta-lime > a { color: #fff; border-color: #063f35; background: #063f35; }
.cms-block--cta-outline { border: 2px solid #063f35; color: #063f35; background: transparent; }
.cms-block--cta-outline .cms-block__eyebrow { color: #0d6654; }
.cms-block--cta-outline > a { color: #fff; border-color: #063f35; background: #063f35; }
.cms-block--cards > header { max-width: 900px; margin-bottom: clamp(1.5rem, 4vw, 2.5rem); }
.cms-block-cards { display: grid; gap: 1rem; }
.cms-block-cards--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.cms-block-cards--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.cms-block-card {
  min-width: 0;
  overflow: hidden;
  border: 1px solid #cbd8d2;
  border-radius: 1.25rem;
  display: flex;
  flex-direction: column;
  background: #fff;
}
.cms-block-card > img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.cms-block-card > div { padding: 1.35rem; display: flex; flex: 1; flex-direction: column; }
.cms-block-card h3 { margin: 0; color: #063f35; font-size: clamp(1.25rem, 2.4vw, 1.8rem); line-height: 1.08; }
.cms-block-card__copy { margin-top: .8rem; color: #4c6962; font-size: .94rem; line-height: 1.6; }
.cms-block-card a { margin-top: auto; padding-top: 1.2rem; color: #0d6654; font-weight: 900; text-decoration: none; }
.cms-page-blocks--preview { padding-bottom: 0; }

.cms-card-detail {
  display: block;
  margin-top: .9rem;
  font-size: .82rem;
  font-style: normal;
  font-weight: 700;
}

.cms-event-card small,
.cms-event-card a { display: block; margin-top: .75rem; }
.cms-event-card a { color: inherit; font-weight: 800; }

.cms-news-page { padding: clamp(3rem, 7vw, 7rem) 0; background: #f7f5ee; }
.cms-news-heading { max-width: 760px; margin-bottom: clamp(2rem, 5vw, 4rem); }
.cms-news-heading h1,
.cms-news-article header h1 { font-size: clamp(2.7rem, 7vw, 6.4rem); line-height: .92; letter-spacing: -.055em; color: #063f35; }
.cms-news-heading > p,
.cms-news-article header > p { max-width: 650px; font-size: 1.15rem; line-height: 1.6; }
.cms-news-list { display: grid; gap: 1.25rem; }
.cms-news-list[hidden],
.cms-news-article[hidden],
[data-cms-news-list-heading][hidden] { display: none !important; }
.cms-news-card { display: grid; grid-template-columns: minmax(220px, 34%) 1fr; overflow: hidden; border: 1px solid #cbd8d2; border-radius: 1.5rem; background: #fff; }
.cms-news-card__image { min-height: 270px; }
.cms-news-card__image img { width: 100%; height: 100%; object-fit: cover; }
.cms-news-card__image img[src$=".svg"],
.cms-news-article figure img[src$=".svg"] { object-fit: contain; background: #fff8ed; }
.cms-news-card > div { padding: clamp(1.5rem, 4vw, 3rem); }
.cms-news-card span,
.cms-news-article header > span { color: #0d6654; font-size: .75rem; font-weight: 800; text-transform: uppercase; letter-spacing: .12em; }
.cms-news-card h2 { margin: .65rem 0; font-size: clamp(1.7rem, 4vw, 3rem); line-height: 1; }
.cms-news-card h2 a { color: #063f35; text-decoration: none; }
.cms-news-card p { line-height: 1.6; }
.cms-news-article { max-width: 980px; margin: 0 auto; }
.cms-news-back { display: inline-block; margin-bottom: 2rem; color: #063f35; font-weight: 800; }
.cms-news-article header { max-width: 860px; }
.cms-news-article figure { margin: 2.5rem 0; overflow: hidden; border-radius: 1.5rem; }
.cms-news-article figure img { width: 100%; max-height: 620px; object-fit: cover; }
.cms-news-article__body { margin: 2.5rem 0 0; }
.cms-news-article__action { margin-top: 2rem; }
.cms-empty { padding: 2rem; border: 1px dashed #88a59b; border-radius: 1rem; background: #fff; color: #315d54; }

.cms-generic-page { min-height: 65vh; }
.cms-generic-page .page-hero { padding: clamp(4rem, 9vw, 8rem) 0; background: #d8f26b; }
.cms-generic-page .page-hero h1 { max-width: 900px; font-size: clamp(3rem, 8vw, 7rem); line-height: .9; letter-spacing: -.06em; color: #063f35; }
.cms-generic-page .page-hero p { max-width: 650px; font-size: 1.2rem; line-height: 1.6; }

@media (max-width: 720px) {
  .cms-news-card { grid-template-columns: 1fr; }
  .cms-news-card__image { min-height: 210px; }
  .cms-block--cta { grid-template-columns: 1fr; align-items: stretch; }
  .cms-block--cta > a { width: 100%; }
  .cms-block-cards--2, .cms-block-cards--3 { grid-template-columns: 1fr; }
}
