.pricing-section {
  padding-block: 48px;
}

.pricing-lockup {
  display: grid;
  grid-template-columns: minmax(190px, 0.72fr) minmax(0, 3.28fr);
  border-block: 1px solid #c9d0d9;
}

.pricing-heading {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 30px 34px 30px 0;
  border-right: 1px solid #d9dee5;
}

.pricing-heading .eyebrow {
  margin-bottom: 10px;
}

.pricing-heading h2 {
  margin: 0;
}

.pricing-rates {
  display: grid;
  grid-template-columns: repeat(2, minmax(135px, 0.9fr)) minmax(180px, 1.15fr) minmax(190px, auto);
  min-width: 0;
}

.pricing-rate,
.pricing-cta {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
  padding: 28px 30px;
  border-right: 1px solid #d9dee5;
}

.pricing-rate {
  position: relative;
}

.pricing-rate-best::before {
  position: absolute;
  inset: -1px 0 auto;
  height: 3px;
  content: "";
  background: var(--gold);
}

.pricing-rate h3 {
  margin: 0 0 10px;
  color: var(--ink-soft);
  font: 700 var(--step--1)/1.2 Inter, sans-serif;
  letter-spacing: 0;
}

.pricing-rate p {
  display: flex;
  align-items: baseline;
  gap: 8px;
  margin: 0;
}

.pricing-rate strong {
  color: var(--ink);
  font: 800 var(--step-3)/1 "Sofia Sans Condensed", sans-serif;
  letter-spacing: -0.025em;
}

.pricing-rate span {
  color: var(--ink-soft);
  font-size: var(--step--1);
}

.pricing-rate-long strong {
  max-width: 12ch;
  font-size: var(--step-1);
  line-height: 1.05;
}

/* Sits on its own row under the three rates; the call button keeps the last
   column of the first row. */
.pricing-note {
  grid-row: 2;
  grid-column: 1 / -1;
  max-width: none;
  margin: 0;
  padding: 16px 30px;
  border-top: 1px solid #d9dee5;
  color: var(--ink-soft);
  font-size: var(--step--1);
}

.pricing-cta {
  align-items: stretch;
  border-right: 0;
}

.pricing-cta .button {
  white-space: nowrap;
}

@media (max-width: 999px) {
  .pricing-lockup {
    grid-template-columns: 1fr;
  }

  .pricing-heading {
    padding: 26px 0;
    border-right: 0;
    border-bottom: 1px solid #d9dee5;
  }

  .pricing-rates {
    grid-template-columns: repeat(3, 1fr);
  }

  .pricing-note {
    grid-row: auto;
  }

  .pricing-cta {
    grid-column: 1 / -1;
    padding-inline: 0;
    border-top: 1px solid #d9dee5;
  }

  .pricing-cta .button {
    align-self: flex-start;
  }
}

@media (max-width: 639px) {
  .pricing-section {
    padding-block: 42px;
  }

  .pricing-lockup {
    border-block: 0;
  }

  .pricing-heading {
    padding-block: 0 24px;
  }

  .pricing-rates {
    grid-template-columns: 1fr;
  }

  .pricing-rate {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 21px 0;
    border-right: 0;
    border-bottom: 1px solid #d9dee5;
  }

  .pricing-rate-best::before {
    inset: 0 auto 0 -12px;
    width: 3px;
    height: auto;
  }

  .pricing-rate h3 {
    margin: 0;
  }

  .pricing-rate p {
    justify-content: flex-end;
    text-align: right;
  }

  .pricing-rate strong {
    font-size: 2.25rem;
  }

  .pricing-rate-long strong {
    font-size: 1.35rem;
  }

  .pricing-note {
    padding: 16px 0 0;
    border-top: 0;
  }

  .pricing-cta {
    grid-column: auto;
    padding: 24px 0 0;
    border-top: 0;
  }

  .pricing-cta .button {
    width: 100%;
  }
}

@media (max-width: 359px) {
  .pricing-rate p {
    flex-direction: column;
    align-items: flex-end;
    gap: 2px;
  }

  .footer-brand {
    align-items: flex-start;
  }

  .footer-brand p {
    white-space: normal;
  }
}
