1. Możesz zrobić to zrobić za pomocą JS, korzystasz z JQuery więc:
$('.small').onClick(function(){
$('ul.lnav').slideToggle(300);
});
2. CSS. Nie będę pokazywał kodu, bo twój jest troszkę chaotyczny i szkoda mi czasu aby się połapać co jest czym.
Musisz listę z nawigacją wsadzić pod góry pasek, czyli nadać ujemny margines -100%. Następnie dodać transition: margin i stworzyć klasę [z margin: 0], która będzie nadawana gdy klikniesz w przycisk.
Jeżeli coś nie będzie działało to na 99%, ponieważ wysokość listy lnav wynosi 0. Jest to spowodowane, przez to, że dałeś float: left li. Nie mam pojęcia dlaczego, ponieważ i tak one mają 100%, a każdy element blokowy ma 100%.