Themes aren’t magic or privileged in any way. They are just made by poor schmuks like us, each with varying degrees of knowledge and skill, and motivation or lack thereof to keep going once a theme makes the barest cut of usability for whatever purpose it got started for.
Some themes add a hook for inserting your own CSS files or template code either via your config file or via putting particular named files into your layout dirs. Some don’t.
I just took a moment to find and look at the theme you mentioned, and it doesn’t look like they have done so, so you would probably most easily do this just by copying the whole head.html file into your non-theme layout dirs, /layout/partials/head.html
Hugo will look for partials (and other layout files) in your own directory locations before looking at the theme’s, so this lets you selectively override things at a file by file basis.
The doc link in the previous reply to a more flexible shortcake is great. Here’s another couple examples of button shortcodes(one I found elsewhere, then one I simplified for my use).
One can find lots of other examples too - I think we all end up making things like this.
If you or the theme author wanted to make a way to add/override things with finer granularity than copying and editing the whole head.html file, one could do something as simple as sticking a {{ partial "header_custom.html" . }}
near the end of the theme’s (or your version’s) head.html after the other css includes.
The theme would then commit an empty header_custom.html partial, and users could supply their own if they wanted to override with the css links and whatever else they wanted. Then no theme code gets duplicated and an easy way to extend is provided.
Other theme writers have made a range look taking plain filenames from the config.toml and inserting them into links themselves. That limits the type of customization, but arguably makes it simpler for the user by just putting a list of css filenames into a param in config.toml, for example.
This turned longer than I meant to happen, but wanted to get behind some of the things you were talking about. Hugo is great, but it takes a bit coming in fresh to see what parts are meant for what purposes, and to see how all the pieces work together with all the other (many non-hugo) parts. What Hugo doesn’t try to do is as important as what it does try to do many times.