.tb-card {
    position: relative;
    display: block;
    text-decoration: none;
    color: theme('colors.gray.900');
    height: 100%;
    max-width: theme('maxWidth.lg');
    border: 1px solid theme('colors.gray.400');
    transition: $transition-time ease-in;
}

// Cards can, but don't have to be links. Thus state-styles are only
// applied explicitly to cards on link tags
a.tb-card:hover,
a.tb-card:focus {
    text-decoration: none;
    background-color: theme('colors.gray.200');
}

a.tb-card:active {
    transform: translateY(2px);
}

.tb-card__image {
    display: block;
    width: 100%;
    height: 14rem;
    object-fit: cover;
}

/*
 * If the teaser doesnt have an image, render the image-fallback div with a
 * background color that makes it a just visible area on a light background color.
 * If the project has dark background colors, this needs to be themed accordingy.
 */

.tb-card__image--fallback {
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: theme('colors.gray.100');

    .c-icon {
        font-size: 3rem;
        color: theme('colors.gray.500');
    }
}

.tb-card__category-list {
    @apply .-mr-1;
    @apply .-ml-1;
    position: absolute;
    top: theme('margin.4');
    right: theme('margin.4');
    left: theme('margin.4');
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    margin: 0;
    padding: 0;
}

.tb-card__category-item {
    font-size: theme('fontSize.sm');
    line-height: 1;
    margin-right: theme('margin.1');
    margin-bottom: theme('margin.1');
    margin-left: theme('margin.1');
    padding: .5em .75em;
    color: theme('colors.white');
    border-radius: 999px;
    white-space: nowrap;
    background-color: theme('colors.gray.900');
}

.tb-card__body {
    padding: theme('padding.6');
    padding-top: theme('padding.4');
}

.tb-card__topline {
    font-size: theme('fontSize.sm');
    margin: 0;
}

.tb-card__title {
    font-size: theme('fontSize.2xl');
    margin-top: .25em;
}

.tb-card__copy {
    margin-top: .5em;
}
