.Banners {
    --margin: var(--gap-big);

    display: flex;
    flex-wrap: wrap;
    overflow: hidden;

    margin: calc(var(--gap-big) * -1);

    > .Banner {
        flex-basis: calc(33.33% - var(--margin) * 2);
        flex-grow: 1;
        margin: var(--margin);

        &.span2 {
            flex-basis: calc(66.66% - var(--margin) * 2);
        }
    }
}

.Banners.isolated {
    margin-top: var(--gap-biggest);
    margin-bottom: var(--gap-biggest);
}

.Banner {
    border: solid var(--color-base-faintest) 1px;
    box-shadow: 0 1px 3px hsla(var(--color-primary-hue), var(--color-primary-saturation), var(--color-primary-brightness), 10%);
    border-radius: var(--border-radius);
    padding: calc(var(--gap-bigger) * .75) var(--gap-bigger);
    box-sizing: border-box;

    transition: box-shadow 100ms ease-in-out;

    &:hover {
        box-shadow: 0 5px 8px hsla(var(--color-primary-hue), var(--color-primary-saturation), var(--color-primary-brightness), 10%);
    }

    display: flex;
    flex-direction: column;
    gap: var(--base-gap);

    > .title {
        font-family: var(--font-family-title);
        font-size: 22pt;
        font-weight: 600;
        line-height: .95em;
        letter-spacing: -.5px;
        text-wrap: balance;
    }

    > .subTitle {
        > a {
            color: var(--color-primary);
            text-decoration: none;
            &:hover {
                text-decoration: underline;
            }
        }
    }
}
