.pricing-document h1,
.pricing-document h2,
.pricing-document h3,
.pricing-document p,
.pricing-document dl,
.pricing-document dd {
  margin: 0;
}

.pricing-document h2 {
  font-size: var(--font-size-heading-h2);
  font-weight: var(--font-weight-bold);
  line-height: var(--line-height-heading-h2);
}

.pricing-document h3 {
  font-size: var(--font-size-heading-h4);
  font-weight: var(--font-weight-semibold);
  line-height: var(--line-height-heading-h4);
}

.pricing-hero {
  display: grid;
  min-height: 18.75rem;
  padding-block: var(--space-xl);
  align-items: center;
  color: var(--surface-ink-inverse);
  background: var(--brand-gold-700);
}

.pricing-eyebrow {
  width: calc((100% - var(--space-xl)) / 2);
  font-size: var(--font-size-utility-eyebrow);
  font-weight: var(--font-weight-bold);
  line-height: var(--line-height-utility-eyebrow);
  letter-spacing: var(--letter-spacing-utility-eyebrow);
  text-align: right;
  text-transform: uppercase;
}

.pricing-hero-row {
  display: grid;
  margin-top: var(--space-md);
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-xl);
  align-items: start;
}

.pricing-hero h1 {
  font-size: var(--font-size-display-hero);
  font-weight: var(--font-weight-bold);
  line-height: var(--line-height-display-hero);
  text-align: right;
}

.pricing-hero h1 span {
  display: block;
}

.pricing-hero-body,
.pricing-section--how-a-hall-opens .content > p,
.pricing-section--what-we-ask-young-people-for .content > p,
.pricing-founding-terms > p:first-child,
.pricing-population {
  font-size: var(--font-size-body-large);
  line-height: var(--line-height-body-large);
}

.pricing-download {
  display: flex;
  min-height: var(--target-min);
  margin-top: var(--space-md);
  align-items: center;
  gap: var(--space-md);
  flex-wrap: wrap;
}

.pricing-download-link {
  display: inline-flex;
  min-height: var(--target-min);
  font-size: var(--font-size-body-large);
  line-height: var(--line-height-body-large);
  text-decoration: none;
  align-items: center;
}

.pricing-download-link .link-label {
  text-decoration: underline;
  text-decoration-color: currentColor;
  text-decoration-skip-ink: none;
  text-decoration-thickness: 2px;
  text-underline-offset: 0.2em;
}

.pricing-download-link .link-arrow {
  text-decoration: none;
}

.pricing-download-meta {
  font-size: var(--font-size-label-default);
  font-weight: var(--font-weight-semibold);
  line-height: var(--line-height-label-default);
}

.pricing-section {
  padding-block: 2.125rem var(--layout-section-space);
}

.pricing-section > .content {
  display: grid;
  gap: var(--space-xl);
}

.pricing-section h2 {
  text-align: center;
}

.pricing-tiers,
.pricing-services,
.pricing-faq {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-xl);
}

.pricing-tier {
  display: grid;
  padding: calc(var(--space-lg) - 1px);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  background: var(--surface-panel);
  box-shadow: var(--shadow-md);
  gap: var(--space-md);
  align-content: start;
}

.pricing-tier h3 {
  font-size: var(--font-size-heading-h3);
  line-height: var(--line-height-heading-h3);
}

.pricing-offices {
  min-height: 3.25rem;
}

.pricing-amounts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-lg);
}

.pricing-amounts dt {
  font-size: var(--font-size-label-default);
  font-weight: var(--font-weight-semibold);
  line-height: var(--line-height-label-default);
}

.pricing-amounts dd {
  margin-top: var(--space-sm);
  font-size: var(--font-size-heading-h2);
  font-weight: var(--font-weight-bold);
  line-height: var(--line-height-heading-h2);
}

.pricing-amounts > div:first-child,
.pricing-founding-heading {
  color: var(--brand-text-on-light);
}

.pricing-note {
  color: var(--surface-ink-muted);
  font-size: var(--font-size-body-small);
  line-height: var(--line-height-body-small);
}

.pricing-note em {
  font-style: normal;
}

.pricing-founding {
  padding-block: var(--space-xl);
  background: var(--brand-gold-50);
}

.pricing-founding > .content {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 2.09fr);
  gap: var(--space-xl);
  align-items: center;
}

.pricing-founding-heading,
.pricing-founding-terms {
  display: grid;
  gap: var(--space-lg);
}

.pricing-founding-terms {
  gap: var(--space-md);
}

.pricing-availability {
  font-size: var(--font-size-body-large);
  font-weight: var(--font-weight-bold);
  line-height: 1.5rem;
  text-transform: uppercase;
}

.pricing-payment,
.pricing-stages {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-xl);
}

.pricing-item {
  display: grid;
  min-width: 0;
  gap: var(--space-sm);
  align-content: start;
}

.pricing-copy p + p {
  margin-top: var(--line-height-body-default);
}

.pricing-section--what-every-hall-includes {
  color: var(--surface-ink-inverse);
  background: var(--ink-700);
}

.pricing-section--what-every-hall-includes h2 {
  color: var(--brand-gold-100);
}

.pricing-section--what-every-hall-includes .pricing-item:last-child {
  grid-column: 1 / -1;
}

.pricing-section--what-every-hall-includes .content > p {
  font-size: var(--font-size-body-small);
  line-height: var(--line-height-body-small);
}

.pricing-section--what-every-hall-includes .content > p + p {
  margin-top: calc(var(--line-height-body-small) - var(--space-xl));
}

.pricing-section--what-every-hall-includes .content > p strong {
  font-weight: var(--font-weight-regular);
}

.pricing-stages {
  grid-template-columns: minmax(0, 1fr) 2px minmax(0, 1fr) 2px minmax(0, 1fr);
}

.pricing-stages h3 {
  color: var(--brand-gold-700);
  font-weight: var(--font-weight-bold);
}

.pricing-stage-label,
.pricing-payment-label {
  display: block;
}

.pricing-stage-divider {
  background: var(--brand-gold-600);
}

.pricing-section--what-we-ask-young-people-for {
  color: var(--surface-ink-inverse);
  background: var(--brand-gold-700);
}

.pricing-data-column,
.pricing-faq-column {
  display: grid;
  gap: var(--space-xl);
  align-content: start;
}

.pricing-data-column {
  gap: var(--space-lg);
}

@media (min-width: 47.5625rem) and (max-width: 63.9375rem) {
  .pricing-hero h1 {
    font-size: var(--font-size-heading-h2);
    line-height: var(--line-height-heading-h2);
  }

  .pricing-amounts dd {
    font-size: var(--font-size-heading-h3);
    line-height: var(--line-height-heading-h3);
  }
}

@media (max-width: 47.5rem) {
  .pricing-eyebrow {
    width: 100%;
    text-align: left;
  }

  .pricing-hero-row {
    margin-top: var(--space-lg);
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-lg);
  }

  .pricing-hero h1 {
    font-size: var(--font-size-heading-h1);
    line-height: var(--line-height-heading-h1);
  }

  .pricing-hero h1 span {
    display: inline;
  }

  .pricing-hero-body {
    font-size: var(--font-size-body-default);
    line-height: var(--line-height-body-default);
  }

  .pricing-section {
    padding-block: var(--space-xl);
  }

  .pricing-section--pricing-by-population > .content,
  .pricing-tiers,
  .pricing-founding > .content,
  .pricing-founding-terms {
    gap: var(--space-lg);
  }

  .pricing-tiers,
  .pricing-services,
  .pricing-payment,
  .pricing-stages,
  .pricing-faq,
  .pricing-founding > .content {
    grid-template-columns: minmax(0, 1fr);
  }

  .pricing-offices {
    min-height: 0;
  }

  .pricing-amounts dd {
    font-size: var(--font-size-heading-h3);
    font-weight: var(--font-weight-semibold);
    line-height: var(--line-height-heading-h3);
  }

  .pricing-stage-label,
  .pricing-payment-label {
    display: inline;
  }

  .pricing-stage-divider {
    height: 2px;
  }

  .pricing-data-column {
    gap: var(--space-xl);
  }
}

@media (max-width: 22rem) {
  .pricing-amounts {
    gap: var(--space-sm);
  }

  .pricing-amounts dd {
    font-size: var(--font-size-heading-h4);
  }
}
