It's true that styles defined in a component’s style sheet are scoped to the component and your CSS cannot reach into the child component of the lightning-button component.
However, you can get around this by defining styles in an external stylesheet, and loading that into your component. This way you can define CSS selectors without component-namespaces automatically being added. For example, you can simply say:
// CustomExternalStyles.css
.my-button > button {
background-color: #14a6bc;
color: #ffffff;
}
Then you can import this external stylesheet into your component like this:
// myComponent.js
// ...
import customStyles from '@salesforce/resourceUrl/CustomExternalStyles';
import { loadStyle } from 'lightning/platformResourceLoader';
export default class MyComponent extends LightningElement {
connectedCallback() {
loadStyle(this, customStyles);
}
}
And finally you can use the .my-button
class on a lightning button in your component where you're importing the external stylesheet:
// myComponent.html
<lightning-button class="my-button" label="My Button"></lightning-button>
And now the inner <button>
element that gets generated will pick up the .my-button > button
selector defined in the external stylesheet.