.ft-button {
    display: block;
    min-width: 16rem;
    max-width: 16rem;
    padding: 1rem 2rem;
    text-align: center;
    font-size: 1rem;
    font-weight: bold;
    background-image: linear-gradient(-90deg, #0074db 0%, #35bdfc 98%);
    color: #fff;
    border: none;
    border-radius: 666px;
    filter: grayscale(0);
    transition: filter 0.3s, transform 0.3s ease;
    cursor: pointer;
    text-decoration: none;
    user-select: none;
    -webkit-tap-highlight-color: transparent;

    &.danger {
        background-image: radial-gradient(#780000, #a50000);
    }

    &:hover {
        transform: scale(1.05);
        color: white;
    }

    &:disabled {
        cursor: not-allowed;
        filter: grayscale(0.8);
    }

    &.small {
        padding: 0.3rem 0.9rem;
        font-size: 0.8rem;
        line-height: 1.2rem;
        font-weight: 500;
    }

    &.close {
        min-width: auto;
    }

    &.wide {
        max-width: 25rem;
    }

    &:focus-visible {
        outline: none;
        transform: scale(1.05);
        box-shadow: 0 0 5px #35bdfc;

        &.danger {
            box-shadow: 0 0 5px #e10c1f;
        }

        &:disabled {
            box-shadow: 0 0 5px slategrey;
        }
    }

    &.secondary {
        background-image: linear-gradient(-90deg, #6d9ac1 0%, #ffffff 98%);
        color: black;
    }

    &.cancel {
        background-image: linear-gradient(-90deg, #ff1e37 0%, #f99797 98%) !important;
    }

    &.medium {
        padding: 0.5rem 1.2rem;
    }

    &.outline {
        text-decoration: none;
        line-height: 1.1;
        background-color: transparent;
        background-image: none;
        border-top-style: solid;
        border-right-style: solid;
        border-bottom-style: solid;
        border-left-style: solid;
        border-top-width: 1px;
        border-right-width: 1px;
        border-bottom-width: 1px;
        border-left-width: 1px;
        border-top-color: #35bdfc;
        border-right-color: #35bdfc;
        border-bottom-color: #35bdfc;
        border-left-color: #35bdfc;
        color: #35bdfc;

        &:hover {
            background-color: #35bdfc;
        }
    }
}

.ft-button-group {
    justify-content: space-between;
    gap: 0.5rem;
    overflow: visible;
    margin-top: 2rem;
}

.ft-button .arrow,
.ft-button .go {
    display: none;
}

@media (max-width: 767px) {
    .ft-button .text {
        display: none;
    }

    .ft-button .arrow,
    .ft-button .go {
        display: inline;
    }

    .ft-button-group {
        margin-top: 2rem;
    }
}

@media (max-width: 425px) {
    .ft-button-responsive {
        padding: 0.5rem 1rem;
    }
}