.mashup__link-text {
  position: absolute;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  width: 1px;
  height: 1px
}

:root {
  --mashup-transition: 350ms cubic-bezier(0.5, 1, 0, 1) 62.5ms
}

.mashup__inner {
  position: relative
}

.mashup__items {
  display: grid;
  grid-template-columns: 1fr;
  grid-auto-rows: 400px
}

.mashup__item {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 400px;
  height: 100%;
  background-color: #222
}

.mashup__item::after {
  content: "";
  position: absolute;
  z-index: 1;
  top: 0;
  left: 0;
  transition: background-color var(--mashup-transition), -webkit-backdrop-filter var(--mashup-transition);
  transition: backdrop-filter var(--mashup-transition), background-color var(--mashup-transition);
  transition: backdrop-filter var(--mashup-transition), background-color var(--mashup-transition), -webkit-backdrop-filter var(--mashup-transition);
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, .5)
}

.mashup__item:is(:hover, :focus-within)::after {
  -webkit-backdrop-filter: blur(3px);
  backdrop-filter: blur(3px)
}

.mashup__link {
  position: absolute;
  z-index: 3;
  top: 0;
  left: 0;
  display: block;
  width: 100%;
  height: 100%
}

.mashup__image {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%
}

.mashup__image img {
  height: 100%;
  width: 100%;
  -o-object-fit: cover;
  object-fit: cover
}

.mashup__content {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-rows: auto 1fr;
  padding: 16px 32px;
  text-align: center;
  transition: grid-template-rows var(--mashup-transition)
}

.mashup__title {
  margin-top: 8px;
  margin-bottom: 8px;
  font-family: 'Dosis', sans-serif;
  font-size: 2rem;
  font-weight: 700;
  text-transform: uppercase;
  text-shadow: 2px 2px 4px rgba(0, 0, 0, .3);
  letter-spacing: .05rem;
  color: #fff
}

.mashup__info {
  overflow: hidden;
  color: #fff;
  transition: max-height var(--mashup-transition)
}

.mashup__cta {
  display: block;
  font-family: var(--font-family-dosis);
  font-size: 1.25rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .1rem;
  color: #fff
}

@media (min-width:768px) {

  .mashup__items--2,
  .mashup__items--4 {
    grid-template-columns: repeat(2, 1fr)
  }

  .mashup__item::after {
    background-color: rgba(0, 0, 0, .3)
  }

  .mashup__item:is(:hover, :focus-within)::after {
    background-color: rgba(0, 0, 0, .5)
  }

  .mashup__content {
    grid-template-rows: auto 0fr
  }

  .mashup__item:is(:hover, :focus-within) .mashup__content {
    grid-template-rows: auto 1fr
  }

  .mashup__info {
    max-height: 0
  }

  .mashup__item:is(:hover, :focus-within) .mashup__info {
    max-height: 180px
  }
}

@media (min-width:768px) and (max-width:1199.98px) {

  .mashup__items--3,
  .mashup__items--6 {
    grid-template-columns: repeat(2, 1fr)
  }

  .mashup__items--3 > :nth-child(6n-2),
  .mashup__items--3 > :nth-child(6n-5),
  .mashup__items--6 > :nth-child(6n-2),
  .mashup__items--6 > :nth-child(6n-5) {
    grid-column: span 2
  }

  .mashup__items--5 {
    grid-template-columns: repeat(2, 1fr)
  }

  .mashup__items--5 > :nth-child(5n-1) {
    grid-row: span 2
  }
}

@media (min-width:1200px) {

  .mashup__items--3,
  .mashup__items--6 {
    grid-template-columns: repeat(3, 1fr)
  }

  .mashup__items--5 {
    grid-template-columns: repeat(3, 1fr)
  }

  .mashup__items--5 > :nth-child(5n-4) {
    grid-row: span 2
  }
}
