How to customize input type=”file” using CSS?

A tutorial on how to style and customize input type=”file” in a very semantic, accessible way using the element with CSS only. No need to add a single line jquery code.