button,
a.button,
span.button {
    display: inline-block;
    font-family: var(--font-primary);
    font-size: 25px;
    font-weight: 600;
    border: none;
    border-radius: 20px;
    padding: 20px 50px;
    background-color: var(--color-primary);
    color: var(--color-text-alt);
    transition: transform 0.1s ease;
    text-align: center;
    align-content: center;

    &.hover-shadow {
        transition: transform 0.1s ease, box-shadow 0.1s ease;
    }
}

button.image-button,
a.button.image-button,
span.button.image-button {
    padding: 0;
    background: none;

    img.normal-image {
        display: block;
    }

    img.hover-image {
        display: none;
    }
}

button:not(:disabled):hover,
a.button:not([aria-disabled="true"]):hover,
span.button:not([aria-disabled="true"]):hover {
    cursor: pointer;
    font-weight: 700;
    background-color: var(--color-accent);
    transform: scale(1.01);

    &.hover-shadow {
        box-shadow: 0 8px 16px rgba(0, 0, 0, 0.4);
    }
}

button.image-button:not(:disabled):hover,
a.button.image-button:not([aria-disabled="true"]):hover,
span.button.image-button:not([aria-disabled="true"]):hover {
    img.normal-image:has(+ img.hover-image) {
        display: none;
    }

    img.hover-image {
        display: block;
    }
}

button:disabled,
a.button[aria-disabled="true"],
span.button[aria-disabled="true"] {
    background-color: var(--disabled-color);
    border: none;
    cursor: not-allowed;
    transition: none;
    box-shadow: none;
    pointer-events: none;
}

.buttons-wrapper {
    display: flex;
    align-items: center;
    justify-content: space-between;

    button,
    a.button,
    span.button {
        margin-right: 30px;
        align-items: center;
        flex: 1;
    }

    button:last-child,
    a.button:last-child,
    span.button:last-child {
        margin: 0;
    }

    button:only-child,
    a.button:only-child,
    span.button:only-child {
        margin: 0 auto;
    }
}