:root {
  --portal-graphite: #2f3432;
  --portal-moss: #566254;
  --portal-parchment: #f5f1e8;
  --portal-celadon: #a5c9b7;
  --portal-sea-glass: #315f53;
  --portal-line: #c8c0b4;
}

body {
  color: var(--portal-graphite);
}

a {
  color: var(--portal-sea-glass);
  text-underline-offset: 0.2em;
}

.portal-enhancement-band {
  padding: clamp(3rem, 7vw, 5.5rem) max(1rem, calc((100% - 76rem) / 2));
  border-block: 1px solid var(--portal-line);
  background: #edf1ec;
}

.portal-enhancement-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(18rem, 0.6fr);
  gap: clamp(2rem, 6vw, 5rem);
}

.portal-kicker {
  margin: 0 0 0.8rem;
  color: var(--portal-sea-glass);
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.portal-source-flow {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  margin: 2rem 0 0;
  padding: 1px;
  list-style: none;
  background: var(--portal-line);
}

.portal-source-flow li {
  display: grid;
  min-height: 10rem;
  align-content: space-between;
  gap: 1rem;
  padding: 1.1rem;
  background: #fff;
}

.portal-source-flow li + li::before {
  color: var(--portal-sea-glass);
  content: "→";
}

.portal-source-flow span,
.portal-changed-card p {
  color: #505a55;
  font-size: 0.84rem;
}

.portal-changed-card {
  align-self: start;
  padding: 1.5rem;
  border: 1px solid var(--portal-line);
  background: #fff;
}

.portal-changed-card h3,
.portal-changed-card > p:not(.portal-kicker) {
  margin-top: 1rem;
}

.portal-assessment {
  padding-top: 1rem;
  border-top: 1px solid var(--portal-line);
  font-weight: 750;
}

.legal-block,
.statutory-section,
.full-text-section,
article[id^="section-"] {
  content-visibility: auto;
  contain-intrinsic-size: auto 620px;
}

@media (max-width: 70rem) {
  .portal-source-flow {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 58rem) {
  .portal-enhancement-grid,
  .portal-source-flow {
    grid-template-columns: 1fr;
  }
}
