Here is a little trick how to avoid JS by using inputs.
After we set the label-input relationship, we need to reflect these changes with CSS.
One possible solution is for example with General sibling selectors. And it means that you can target every element after the input tag.
The example below is a dropdown made only with HTML and CSS: