Structure before style
Write the HTML for the content, read it in the browser, and only then style it. A page with good structure and no CSS is readable, and that readable state is the thing you want to see before you start moving boxes.
One element, one job
A div that is a button is a bug. The element that already means button gives you the keyboard behaviour, the focus state, and the meaning for free. Reaching for a generic element to rebuild a real one is where accessibility quietly breaks.