.zm-button {
    position: relative;
    display: inline-flex;
    padding: 0 var(--button-padding);
    align-items: center;
    justify-content: center;
    gap: var(--spacing-xs);
    height: var(--button-size);
    border: 1px solid var(--button-border-color);
    border-radius: var(--border-radius);
    background-color: var(--button-color);
    text-decoration: none;
    color: var(--button-text-color);
    font-size: var(--button-font-size);
    font-weight: 700;
    line-height: 1;
    white-space: nowrap;
    cursor: pointer;

    &:hover,
    &:focus {
        background-color: var(--color-palette-main-70);
        border-color: var(--color-palette-main-70);
        color: var(--button-text-color-hover);
    }

    &[disabled],
    &[disabled]:focus,
    &[disabled]:hover {
        background: var(--color-disabled);
        color: var(--color-muted-text);
        border-color: var(--button-border-color-disabled);
        text-shadow: 0 1px 0 var(--color-palette-black-0);
        cursor: not-allowed;
    }
}

.zm-button--secondary {
    background: var(--button-secondary-color);
    border-color: var(--button-secondary-border-color);
    color: var(--button-secondary-text-color);

    &:hover,
    &:focus {
        background-color: var(--button-secondary-color-hover);
        border-color: var(--button-secondary-border-hover-color);
        color: var(--button-secondary-text-color-hover);
    }
}

.zm-button--danger {
    background: var(--color-palette-danger-50);
    border-color: var(--color-palette-danger-50);
    color: var(--color-palette-white);

    &:hover,
    &:focus {
        background-color: var(--color-palette-danger-70);
        border-color: var(--color-palette-danger-70);
    }
}

.zm-button--small {
    font-size: var(--button-font-size-small);
    height: var(--button-size-small);
}

.zm-button--transparent {
    background: transparent;
    border-color: transparent;
    color: var(--color-palette-black);
    padding-left: 0;
    padding-right: 0;

    &:hover,
    &:focus {
        background-color: transparent;
        border-color: transparent;
        color: var(--color-palette-main-70);
    }
}
