How to adjust for a categorical variable in a way that its levels have equal weight in regression? (predictions are not for the reference category) I hope I am not asking a stupid question :)
Model
salary ~ social_club + town

Data
salary - continuous
social club - categorical, 6 levels
town - categorical, 15 levels

I am interested in salary differences between towns. DAG tells me to adjust for social clubs. However, social clubs differ a lot - they have very different mean salaries.
Setting different social club as a reference category gives me very different predictions (conditional means). Is there an adjustment way that

*

*equalises the distribution of different social clubs between towns, and

*gives predictions for all social clubs at a time (not for the reference category).

 A: I don't see that you need to "[equalise] the distribution of different social clubs between towns." Your model assumes that social_club and town have additive and independent contributions to salary. If you're OK with that assumption then your model is OK.
Multi-level categorical predictors often seem to pose difficulty because coefficients are typically reported for differences from the reference level for each other level of predictor. So coefficients and p-values and thus "significance" seem to differ depending on reference choice.
But the underlying model is the same regardless of how you choose the reference, and overall measures of significance that combine all levels of each predictor would also be the same. The intercept represents the salary when each of your two categorical predictors is at its reference level. So the intercept changes correspondingly if you alter reference levels. The estimated salary for any combination of town and social_club is thus the same regardless of coding. Comparisons among conditions take the covariance matrix among the coefficient estimates into account, so p-values for specific comparisons also don't depend on reference-level coding.
You might consider approaches that provide estimated marginal means, which seem to be more like what you want. Look, for example, at the emmeans package in R and its vignettes.
