.tc-w-cards {
  --tc-cards-cols: 3;
  color: #262626;
}

.tc-w-cards__copy {
  max-width: var(--tc-span-8, 888px);
  margin-bottom: 48px;
}

.tc-w-cards__kicker {
  margin: 0 0 16px;
}

.tc-w-cards__title {
  margin: 0 0 24px;
}

.tc-w-cards__text {
  margin: 0;
  max-width: var(--tc-span-6, 660px);
}

.tc-w-cards__copy > :last-child {
  margin-bottom: 0;
}

.tc-w-cards[data-tc-align="center"] .tc-w-cards__copy {
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}

.tc-w-cards[data-tc-align="center"] .tc-w-cards__text {
  margin-left: auto;
  margin-right: auto;
}

.tc-w-cards__grid {
  display: grid;
  grid-template-columns: repeat(var(--tc-cards-cols, 3), minmax(0, 1fr));
  gap: var(--tc-gutter, 24px);
}

.tc-w-cards__card {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 16px;
  min-width: 0;
  margin: 0;
  color: inherit;
  text-decoration: none;
}

.tc-w-cards__media {
  position: relative;
  overflow: hidden;
  background: #c7c7c7;
}

.tc-w-cards__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s ease;
}

.tc-w-cards__card-title {
  margin: 0;
  font-weight: 400;
}

.tc-w-cards__card-text {
  margin: 0;
}

/* Text over image: GRIT / GLORY / GENEROSITY. */
.tc-w-cards--overlay .tc-w-cards__card {
  overflow: hidden;
  min-height: var(--tc-cards-img-h, 440px);
  gap: 0;
}

.tc-w-cards--overlay .tc-w-cards__media {
  position: absolute;
  inset: 0;
}

.tc-w-cards--overlay .tc-w-cards__media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, var(--tc-cards-shade, rgba(0, 0, 0, 0.55)) 0%, transparent 60%);
  pointer-events: none;
}

.tc-w-cards--overlay .tc-w-cards__card-copy {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: auto;
  padding: 24px;
  color: #fff9f5;
}

/* Title, image, text below: Fair Play columns. */
.tc-w-cards--stacked .tc-w-cards__media {
  height: var(--tc-cards-img-h, 300px);
}

.tc-w-cards--stacked .tc-w-cards__card-copy {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

/* Titles, images and text share rows across the cards, so a two-line title does not push its image lower. */
@supports (grid-template-rows: subgrid) {
  .tc-w-cards--stacked .tc-w-cards__card {
    display: grid;
    grid-row: span 3;
    grid-template-rows: subgrid;
    align-content: start;
  }

  .tc-w-cards--stacked .tc-w-cards__card > .tc-w-cards__card-title {
    grid-row: 1;
  }

  .tc-w-cards--stacked .tc-w-cards__card > .tc-w-cards__media {
    grid-row: 2;
  }

  .tc-w-cards--stacked .tc-w-cards__card > .tc-w-cards__card-copy {
    grid-row: 3;
  }
}

@media (hover: hover) {
  .tc-w-cards__card:hover .tc-w-cards__media img {
    transform: scale(1.04);
  }
}

@media (prefers-reduced-motion: reduce) {
  .tc-w-cards__media img {
    transition: none;
  }

  .tc-w-cards__card:hover .tc-w-cards__media img {
    transform: none;
  }
}

@media (max-width: 900px) {
  .tc-w-cards__copy {
    margin-bottom: 32px;
  }

  .tc-w-cards--overlay .tc-w-cards__card {
    min-height: var(--tc-cards-img-h, 380px);
  }

  .tc-w-cards--overlay .tc-w-cards__card-copy {
    padding: 20px;
  }
}

@media (max-width: 600px) {
  .tc-w-cards--overlay .tc-w-cards__card {
    min-height: var(--tc-cards-img-h, 340px);
  }

  .tc-w-cards--stacked .tc-w-cards__media {
    height: var(--tc-cards-img-h, 240px);
  }
}
