.Button {
    --padding: .2rem;
    --background: var(--color-gradient-main-dark);
    --color: var(--color-lightest);
    --background-hover: var(--color-main-dark);

    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 1rem;
    cursor: pointer;
    transition: var(--transition-default);
    outline: none;
    border: none;
    background: var(--background);
    color: var(--color);

    &.transparent {
        --background: transparent;
        box-shadow: none;
        padding: .5em 1.5em;
        border-radius: var(--radius-default);
    }

    &.raised {
        box-shadow: var(--box-shadow-z2);
        padding: .5em 1.5em;
        border-radius: var(--radius-default);

        &.danger {
            --background: var(--color-gradient-error);
            --color: var(--color-lightest);
        }
    }

    &.text {
        --background: transparent;
        --color: var(--color-darkest);
        padding: .5em 1.5em;
        border-radius: var(--radius-default);

        &:hover {
            --background: rgba(0, 0, 0, 0.05);
        }

        &.white {
            --color: var(--color-lightest);
        }

        &.danger {
            --color: var(--color-error);

            &:hover {
                --background: rgba(255, 0, 0, 0.1);
            }
        }
    }

    &.round {
        display: flex;
        justify-content: center;
        align-items: center;
        border-radius: 100%;
        padding: .5rem;
    }

    &.cta {
        background: var(--background);
        color: var(--color);
        padding: .5rem 1.5rem;
        border-radius: var(--radius-default);
        box-shadow: var(--box-shadow-z2);

        &:hover {
            background: var(--background-hover);
        }
    }

    &.cta.white {
        --background: var(--color-lightest);
        --color: var(--color-main);
        --background-hover: var(--color-light);
    }

    &.icon-button {
        display: flex;
        padding: var(--padding);
        border-radius: 100%;

        &:hover {
            scale: 1.2;
        }
    }

    &.mini-button {
        padding: .5rem 1.5rem;
        display: flex;
        flex-direction: column;
        gap: .5rem;

        & > .icon {
            font-size: 1.5rem;
        }

        & > span {
            font-size: .8rem;
        }
    }
}