Просто уберите класс "h-100".
Ответ нам даст спецификация CSS 2.1 пункт 10.5.
"Если высота внешнего блока вычисляется по содержимому, то высота в % не работает, и заменяется на height:auto. Кроме случая, когда у элемента стоит position:absolute."
То есть свойство height, указанное в %, работает только если для внешнего блока указана высота. тут подробнее
Для button, select, input, textarea браузер устанавливает свой font-family (если открыть консоль разработчика, можно увидеть странный стили для тегов выше для которых указан не Ваш файл со стилями, а user agent stylesheet ),
избежать этого можно задав для тегов выше: font-family: inherit;