#pricing-page {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  margin-top: 3em;

  .page-head {
    text-align: center;
    max-width: 640px;
    margin-bottom: 2.5em;

    h1 {
      margin-bottom: 0.3em;
    }
    .subhead {
      opacity: 0.8;
      text-wrap: balance;
      margin: 0;
    }
  }

  .billing-toggle {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    margin: 2em 0 2.5em;

    .save-note {
      font-size: 13px;
      opacity: 0.7;
    }
  }
}

.compare-section {
  width: 100%;
  margin-top: 5em;

  .section-heading {
    margin-bottom: 0.2em;
  }
  .compare-intro {
    opacity: 0.7;
    margin: 0 0 2em;
  }
}

.compare-scroll {
  width: 100%;
  overflow-x: auto;
}

table.compare-table {
  width: 100%;
  min-width: 520px;
  border-collapse: collapse;
  font-size: 15px;
  text-align: left;

  th, td {
    padding: 12px 16px;
    border-bottom: 1px solid var(--border-color);
    vertical-align: top;
  }

  thead th {
    border-bottom: 2px solid var(--border-color);
    font-weight: 600;
  }

  /* Feature name column, then one column per plan. */
  th:first-child, td:first-child {
    width: 40%;
  }
  th:not(:first-child), td:not(:first-child) {
    width: 30%;
  }

  tbody th[scope="rowgroup"] {
    padding-top: 2.2em;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    opacity: 0.6;
    border-bottom: 1px solid var(--border-color);
  }

  .feature-name {
    font-weight: 500;

    .feature-note {
      display: block;
      margin-top: 3px;
      font-size: 13px;
      font-weight: 400;
      opacity: 0.65;
      text-wrap: balance;
    }
  }

  .plan-col-pro {
    background: var(--card-background);
  }

  .limit {
    font-variant-numeric: tabular-nums;

    .limit-unit {
      opacity: 0.65;
    }
    .limit-hint {
      display: block;
      margin-top: 2px;
      font-size: 13px;
      opacity: 0.55;
    }
  }

  .yes, .no {
    display: inline-flex;
    align-items: center;
    gap: 6px;
  }
  .yes img, .no img {
    flex: none;
    width: 15px;
    height: 15px;
    filter: var(--icon-filter);
    opacity: 0.5;
  }
  .no {
    opacity: 0.45;
  }

  @media (max-width: 600px) {
    font-size: 14px;

    th, td {
      padding: 10px 12px;
    }
  }
}

.pricing-faq {
  width: 100%;
  margin-top: 5em;

  .faq-list {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2em 3em;
    margin-top: 2em;

    @media (max-width: 700px) {
      grid-template-columns: 1fr;
    }
  }
  h3 {
    margin: 0 0 0.4em;
    font-size: 16px;
  }
  p {
    margin: 0;
    opacity: 0.75;
    text-wrap: pretty;
  }
}
