He encontrado un fallo. Resulta que he entrado con Konqueror y donde debería poner "línea" aparece "lÃnea", donde debería poner "obligación" aparece "obligación", y así con todas las palabras con acentos. La causa es muy simple: el archivo está codificado (o es enviado por el servidor) en UTF-8, pero en tu cabecera indicas que es ISO-8859-1.
Hay tres soluciones:
- Recodificar el texto en ISO-8859-1, o decirle al servidor que lo envíe con dicha codificación.
- Cambiar la cabecera del archivo (me refiero al <meta />) para que indique que la codificación es UTF-8.
- Cambiar todos los caracteres "especiales" por entidades HTML (ya sabes í, Ñ, etc)
Mi recomendación es utilizar la última, ya que de esta forma no importa qué codificación se utiliza ya que sólo se utilizará la primera parte de la tabla ASCII que es común en casi todas las codificaciones UTF e ISO y es más flexible.
En cuanto al resto, tiene muy buena pinta y secundo la petición de nuestro compañero dec.