.module-review {
  --grid: var(--_grid, calc(0.64 * var(--_rem)));
  --grid-: var(--_grid_, calc(var(--grid) * -1));
  --color-main: var(--_color-main, 56, 181, 74);
  --color-sub: var(--_color-sub, 252, 237, 230);

  background: rgb(var(--color-main));
  display: grid;
  gap: var(--grid) calc(var(--grid) / 2);
  grid-template-columns: 1fr 1fr 1fr;
  margin: var(--grid) 0;
  padding: calc(var(--grid) * 2) var(--grid);
  position: relative;
}

.module-review:before,
.module-review:after {
  color: rgb(var(--color-sub));
  content: "\e938";
  position: absolute;
}

.module-review:before {
  font-size: calc(var(--grid) * 2);
  right: var(--grid);
  top: calc(var(--grid-) / 2);
}

.module-review:after {
  bottom: calc(var(--grid-) / 2);
  font-size: calc(var(--grid) * 1.5);
  left: calc(var(--grid) * 2);
}

.module-review .module-heading {
  color: rgb(var(--color-sub));
  grid-column: 1 / 4;
  margin: 0;
  text-align: center;
}

.module-review .review-heading {
  grid-column: 1 / 4;
}

.module-review .review-item {
  display: flex;
  flex-flow: column;
  font-size: calc(0.18 * var(--_rem));
  gap: 0;
  padding: 0;
  position: relative;
}

.module-review .review-item:before,
.module-review .review-item:after {
  content: none;
}

.module-review .review-container {
  background: rgb(var(--color-sub));
  border-radius: calc(0.32 * var(--_rem)) calc(0.32 * var(--_rem)) calc(0.32 * var(--_rem)) 0;
  flex: 1;
  margin: 0 0 calc(var(--grid) / 2 + calc(0.20 * var(--_rem)));
  padding: calc(var(--grid) / 2);
  position: relative;
  z-index: 0;
}

.module-review .review-container:after {
  border-top: var(--grid) solid rgb(var(--color-sub));
  border-right: calc(var(--grid) * 1.5) solid transparent;
  bottom: calc(var(--grid) / -2);
  content: "";
  height: 0;
  left: 0;
  position: absolute;
  z-index: -1;
  width: 0;
}

.module-review .review-headline {
  font-size: calc(0.2 * var(--_rem));
  font-weight: 400;
  line-height: calc(0.32 * var(--_rem));
  margin: 0 0 calc(0.12 * var(--_rem)) 0;
}

.module-review .review-content {
  font-size: calc(0.18 * var(--_rem));
}

.module-review .review-caption {
  align-items: end;
  color: rgb(var(--color-sub));
  display: flex;
  font-size: calc(0.18 * var(--_rem));
  font-weight: 400;
  gap: 0.4em;
  margin: 0;
}

.module-review .review-rating {
  color: #f5bd24;
  letter-spacing: 0;
}

@media (max-width: 62em) {
  .module-review {
    grid-template-columns: 1fr;
  }

  .module-review .review-container {
    margin: 0 0 calc(var(--grid) * 1.5);
    padding: calc(var(--grid) * 1.5);
  }

  .module-review .module-heading,
  .module-review .review-heading {
    grid-column: auto;
  }
}