/* General Buttons */
.button {
    transition: background-color .3s, color .3s, box-shadow .3s;
    display: inline-block;
    padding: 0.6rem 2rem;
    font-size: 1rem;
    font-weight: 600;
    line-height: 1.5;

    text-align: center;
    vertical-align: middle;
    cursor: pointer;
    user-select: none;

    background-color: var(--btn-bg);
    color: var(--btn-color);
    border-radius: 0.5rem;
    border: var(--btn-border);
    box-shadow: var(--btn-shadow);

    transition: color .15sease-in-out, background-color .15sease-in-out, border-color .15sease-in-out, box-shadow .15sease-in-out;
}

.button:hover {
    background-color: var(--btn-highlight-bg);
    color: var(--btn-highlight-color);
    box-shadow: var(--highlight-shadow);
}

a.button,
a.button:hover {
    text-decoration: none;
}

.button-cta {
    background-color: var(--btn-cta-bg);
    color: var(--btn-cta-color);
}

.button-cta:hover {
    background-color: var(--btn-cta-highlight-bg);
}

.button-danger,
.button-warning,
.button-confirm {
    color: var(--btn-cta-color);
    border-color: transparent;
}

.button-danger {
    background-color: var(--error-color);
}

.button-danger:hover {
    background-color: var(--error-color-highlight);
}

.button-warning {
    background-color: var(--warning-color);
}

.button-warning:hover {
    background-color: var(--warning-color-highlight);
}

.button-confirm {
    background-color: var(--success-color);
}

.button-confirm:hover {
    background-color: var(--success-color-highlight);
}

/* Google Sign-in Button */
.login-with-google-btn {
    transition: background-color .3s, box-shadow .3s;
    width: 100%;
    max-width: 260px;

    padding: 10px 16px 10px 40px;
    border: none;
    border-radius: 3px;
    box-shadow: var(--shadow);

    color: #757575;
    font-size: 14px;
    font-weight: 500;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;

    background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJNMTcuNiA5LjJsLS4xLTEuOEg5djMuNGg0LjhDMTMuNiAxMiAxMyAxMyAxMiAxMy42djIuMmgzYTguOCA4LjggMCAwIDAgMi42LTYuNnoiIGZpbGw9IiM0Mjg1RjQiIGZpbGwtcnVsZT0ibm9uemVybyIvPjxwYXRoIGQ9Ik05IDE4YzIuNCAwIDQuNS0uOCA2LTIuMmwtMy0yLjJhNS40IDUuNCAwIDAgMS04LTIuOUgxVjEzYTkgOSAwIDAgMCA4IDV6IiBmaWxsPSIjMzRBODUzIiBmaWxsLXJ1bGU9Im5vbnplcm8iLz48cGF0aCBkPSJNNCAxMC43YTUuNCA1LjQgMCAwIDEgMC0zLjRWNUgxYTkgOSAwIDAgMCAwIDhsMy0yLjN6IiBmaWxsPSIjRkJCQzA1IiBmaWxsLXJ1bGU9Im5vbnplcm8iLz48cGF0aCBkPSJNOSAzLjZjMS4zIDAgMi41LjQgMy40IDEuM0wxNSAyLjNBOSA5IDAgMCAwIDEgNWwzIDIuNGE1LjQgNS40IDAgMCAxIDUtMy43eiIgZmlsbD0iI0VBNDMzNSIgZmlsbC1ydWxlPSJub256ZXJvIi8+PHBhdGggZD0iTTAgMGgxOHYxOEgweiIvPjwvZz48L3N2Zz4=);
    background-color: white;
    background-repeat: no-repeat;
    background-position: 12px 11px;

    &:hover {
        box-shadow: var(--highlight-shadow);
        background-color: var(--google-active-blue);
        color: white;
    }

    &:active {
        background-color: #eeeeee;
    }

    &:focus {
        outline: none;
        box-shadow:
            0 -1px 0 rgba(0, 0, 0, .04),
            0 2px 4px rgba(0, 0, 0, .25),
            0 0 0 3px #c8dafc;
    }

    &:disabled {
        filter: grayscale(100%);
        background-color: #ebebeb;
        box-shadow: 0 -1px 0 rgba(0, 0, 0, .04), 0 1px 1px rgba(0, 0, 0, .25);
        cursor: not-allowed;
    }
}

/* Google Maps Button */
#match-maps-link {
    transition: background-color .3s, color .3s, box-shadow .3s;
    background-color: var(--google-blue);
    color: hsl(0, 0%, 100%);
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
    text-decoration: none;
    border: solid 1px hsl(0, 0%, 90%);
}

#match-maps-link:hover {
    background-color: var(--google-active-blue);
    box-shadow: var(--highlight-shadow);
}

.maps-icon {
    flex-shrink: 0;
}