Bueno, no sé si el problema de "relantizamiento" es debido a que estás metiendo elementos de bloque (<div>) dentro de elementos inline (<a>).
Eso no sería correcto y lo confirma mi firefox diciendo esto:
Cita: línea x columna n - Aviso: missing </a> before <div>
línea xx columna nn - Aviso: discarding unexpected </a>