.layout-grid {
  /**
   * User input values.
   */
  --grid-layout-gap: var(--sp2);
  --grid-column-count: 3;
  --grid-item--min-width: 12.5rem;
  /**
   * Calculated values.
   */
  --gap-count: calc(var(--grid-column-count) - 1);
  --total-gap-width: calc(var(--gap-count) * var(--grid-layout-gap));
  --grid-item--max-width: calc((100% - var(--total-gap-width)) / var(--grid-column-count));
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(max(var(--grid-item--min-width), var(--grid-item--max-width)), 1fr));
  grid-gap: var(--grid-layout-gap);
}

.layout-grid--vertical {
  margin-bottom: calc(var(--grid-layout-gap) * -1); /* Offset the bottom row's padding. */
  column-width: var(--grid-item--min-width);
  column-count: var(--grid-column-count);
  column-gap: var(--grid-layout-gap);
  break-inside: avoid;
}

.layout-grid--vertical .layout-grid__item {
  padding-bottom: var(--grid-layout-gap);
  break-inside: avoid;
}
.layout-grid--vertical .layout-grid__item:has(.testimonial-card) {
  margin-top: -1.875rem;
  padding-top: 1.875rem;
}
.layout-grid--vertical .layout-grid__item:has(.testimonial-card):first-child {
  margin-top: 0;
}

.layout-grid--vertical .layout-grid__item > * {
  page-break-inside: avoid;
  break-inside: avoid;
}