.container { width: min(calc(100% - 2rem), var(--container)); margin-inline: auto; }
.container--narrow { width: min(calc(100% - 2rem), var(--container-narrow)); margin-inline: auto; }
.section { position: relative; padding-block: var(--space-20); }
.section--compact { padding-block: var(--space-12); }
.section--bordered { border-top: 1px solid var(--line); }
.stack > * + * { margin-top: var(--space-6); }
.flow > * + * { margin-top: var(--space-4); }
.grid { display: grid; gap: var(--space-4); }
.grid--2, .grid--3, .grid--4 { grid-template-columns: minmax(0, 1fr); }

.section-heading {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-5);
  margin-bottom: var(--space-10);
}
.section-heading h2 { max-width: 15ch; margin-bottom: 0; }
.section-heading p { max-width: 38rem; margin-bottom: 0; }

.page-hero { padding-block: var(--space-16) var(--space-12); }
.page-hero h1 { max-width: 13ch; margin-bottom: var(--space-5); font-size: clamp(2.6rem, 8vw, 5.5rem); }
.page-hero .lede { margin-bottom: 0; }
.page-hero__meta { display: flex; flex-wrap: wrap; gap: var(--space-3); margin-top: var(--space-6); }

.split { display: grid; gap: var(--space-10); align-items: start; }
.sticky-copy { position: static; }

.doc-layout { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-8); }
.doc-layout > * { min-width: 0; }

.contact-layout { display: grid; gap: var(--space-10); }

@media (min-width: 42rem) {
  .grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .form-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 48rem) {
  .container { width: min(calc(100% - 4rem), var(--container)); }
  .container--narrow { width: min(calc(100% - 4rem), var(--container-narrow)); }
  .section { padding-block: var(--space-24); }
  .split { grid-template-columns: minmax(15rem, 0.75fr) minmax(0, 1.25fr); gap: var(--space-16); }
  .sticky-copy { position: sticky; top: 7rem; }
  .doc-layout { grid-template-columns: 14rem minmax(0, 1fr); }
  .contact-layout { grid-template-columns: 0.75fr 1.25fr; gap: var(--space-16); }
}

@media (min-width: 64rem) {
  .section-heading { flex-direction: row; align-items: end; justify-content: space-between; }
  .grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
