.role-card {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    aspect-ratio: 4 / 5;
    background-image: var(--card-image);
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
    padding: 28px;
    overflow: hidden;
}
.role-card::before {
    content: var(--role-description);
    position: absolute;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    font-family: 'HelveticNeueRoman';
    font-size: clamp(1.125rem, 0.9857rem + 0.5714vw, 1.5rem);
    line-height: 120%;
    top: 100%;
    left: 0;
    width: 100%;
    height: 100%;
    padding: 28px 28px 104px;
    background: linear-gradient(to bottom, transparent, var(--color-electric-blue));
    transition: all 300ms ease-in-out;
    z-index: 0;
}
.role-card:hover::before {
    top: 0%;
}
.role-card span.role-card-span {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 53px;
    padding: 6px;
    aspect-ratio: 1 / 1;
    background-color: var(--color-white);
    z-index: 1;
}
.role-card span.role-card-span .icon-container {
    display: block;
    width: 100%;
    height: 100%;
    transition: all 300ms ease-in-out;
    transform-origin: center;
}
.role-card:hover span.role-card-span .icon-container {
    transform: rotate(45deg);
}
.role-card span.role-card-span .icon-container svg {
    width: 100%;
    height: 100%;
    fill: var(--color-electric-blue);
    transform-origin: center;
}

.role-title {
    font-size: clamp(1.125rem, 0.8464rem + 1.1429vw, 1.875rem);
    text-transform: uppercase;
}