.at-themes {
    position: relative;
    background-color: var(--purple100);
}

/**
 * Themes
 */

.at-themes__themesList {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr));
    gap: 1.5rem;
    margin: 1em 0 0;
    padding: 0;
    list-style: none;
}

.at-themes__themeListItem {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-basis: 100%;
    min-height: 8rem;
    position: relative;
    overflow: hidden;
    box-shadow: 0 5px 8px rgba(0, 0, 0, 0.15);
    border-radius: var(--borderRadius);
    background-color: #fff;
    transition: transform .4s ease-out, box-shadow .3s ease-out;
}

.at-themes__theme {
    padding-inline: 1rem;
}

.at-themes__title,
.at-themes__subtitle {
    position: relative;
    text-align: center;
    transition: transform .3s ease-out;
}

.at-themes__subtitle {
    margin-bottom: 0;
    font-size: .85rem;
    opacity: .8;
}

.at-themes__themeListItem:hover .at-themes__title,
.at-themes__themeListItem:hover .at-themes__subtitle {
    transform: translateY(-.5rem);
}

.at-themes__linkWrapper {
    display: flex;
    justify-content: center;
    align-items: center;
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    transform: translateY(95%);
    transition: transform .4s ease-out;
}

.at-themes__link {
    flex-basis: 33%;
    flex-grow: 1;
    padding: .5em 0;
    text-align: center;
    text-decoration: none;
    color: #fff;
    background-color: var(--purple);
}

.at-themes__link:hover {
    opacity: .7;
}

.at-themes__link--one,
.at-themes__link--KO {
    color: initial;
    background-color: var(--yellow);
}

.at-themes__link--PO {
    background-color: var(--purple)
}

.at-themes__link--VO {
    background-color: var(--blue-contrast)
}

.at-themes__link--MBO {
    background-color: var(--green)
}

.at-themes__themeListItem:hover {
    transform: scale(1.05);
    box-shadow: 0 10px 25px 5px rgba(0, 0, 0, 0.10);
}

.at-themes__themeListItem:hover .at-themes__linkWrapper {
    transform: translateY(0);
}

@media (min-width: 768px) {
    .at-banner + .at-themes .at-themes__themesWrapper {
        margin-top: calc(-2 * (2em + 2vh));
    }
}

@media (min-width: 1024px) {
    .at-themes__themesList {
        grid-template-columns: 1fr 1fr 1fr 1fr;
    }
}
