Hi there,
some of it cannot be avoided as Woocommerce declared certain properties as !important in their CSS. For example the product-remove link:
.woocommerce a.remove {
display: block;
font-size: 1.5em;
height: 1em;
width: 1em;
text-align: center;
line-height: 1;
border-radius: 100%;
color: red!important;
text-decoration: none;
font-weight: 700;
border: 0;
}
So in GP we did this:
.woocommerce a.remove {
color: inherit!important;
....
}
Which means for the default color state you should only need this:
.woocommerce table.shop_table td.product-remove {
color: #f00;
}
Hover state would require !important however.
But overall its not an issue if you add !important to your CSS, as i would expect no one else will be adding more CSS on top of your CSS. Its just annoying when plugins or themes add use it in their code.