.upcoming-events {
  display: grid;
  grid-template-columns: repeat(1, minmax(auto, 1fr));
  column-gap: 20px;
  row-gap: 40px;
  align-items: stretch;
  align-content: stretch;
}

@media screen and (min-width: 768px) {
  .upcoming-events {
    grid-template-columns: repeat(2, minmax(auto, 1fr));
  }
}

@media screen and (min-width: 992px) {
  .upcoming-events {
    grid-template-columns: repeat(3, minmax(auto, 1fr));
  }
}

.upcoming-events .event {
  display: flex;
}

.upcoming-events .event .event__date {
  background-color: #c00000;
  padding: 10px;
  color: #fff;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-width: 70px;
}

.upcoming-events .event .event__date .date__day {
  font-size: 2em;
  font-weight: 700;
}

.upcoming-events .event .event__date .date__month {
}
.upcoming-events .event .event__body {
  padding-left: 20px;
}

.upcoming-events .event .event__title {
  font-size: 1.2em;
  font-weight: 600;
  margin: 0;
}

.upcoming-events .event .event__cat {
  margin-bottom: 1.6em;
  font-style: italic;
  font-size: 1rem;
}

.upcoming-events .event .event-details {
  list-style: none;
  margin: 0;
  padding: 0;
}

.upcoming-events .event .event-details .event-details__item {
  font-size: 0.8em;
  line-height: 24px;
}
