/*
  Styling for staff-authored page content.

  The editor emits plain h2/h3/p/ul/table/blockquote, so these rules make that
  output match the typography of the hand-built pages instead of falling back to
  browser defaults.
*/

.cms-section {
  padding: 72px 0 80px;
}

.cms-body {
  max-width: 820px;
}

.cms-body > * + * {
  margin-top: 22px;
}

.cms-body h2 {
  font-family: 'ABCNormal', sans-serif;
  font-size: clamp(24px, 2.6vw, 34px);
  letter-spacing: -0.01em;
  color: var(--ink);
  margin-top: 48px;
}

.cms-body h3 {
  font-family: 'ABCNormal', sans-serif;
  font-size: clamp(18px, 1.8vw, 22px);
  color: var(--ink);
  margin-top: 34px;
}

.cms-body h2:first-child,
.cms-body h3:first-child {
  margin-top: 0;
}

.cms-body p,
.cms-body li {
  font-size: 16px;
  line-height: 1.75;
  color: var(--ink-soft);
}

.cms-body a {
  color: var(--green-deep);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.cms-body a:hover {
  color: var(--green);
}

.cms-body ul,
.cms-body ol {
  padding-left: 22px;
}

.cms-body li + li {
  margin-top: 8px;
}

.cms-body strong {
  color: var(--ink);
}

.cms-body blockquote {
  margin: 0;
  padding: 18px 24px;
  background: var(--paper);
  border-left: 4px solid var(--green);
}

.cms-body blockquote p {
  margin: 0;
}

.cms-body img {
  max-width: 100%;
  height: auto;
  display: block;
  border: 1px solid var(--line);
}

.cms-body hr {
  border: 0;
  border-top: 1px solid var(--line);
  margin: 40px 0;
}

/* Wide tables scroll inside their own box rather than pushing the page out. */
.cms-body table {
  width: 100%;
  border-collapse: collapse;
  display: block;
  overflow-x: auto;
  white-space: nowrap;
}

.cms-body th,
.cms-body td {
  border: 1px solid var(--line);
  padding: 10px 14px;
  text-align: left;
  font-size: 15px;
}

.cms-body th {
  background: var(--concrete-deep);
  color: var(--ink);
  font-weight: 700;
}

@media (max-width: 768px) {
  .cms-section {
    padding: 48px 0 56px;
  }
}
