The basic problem is that it uses :hover to determine when to display the menu. Touch devices have no equivalent to :hover as it is meaningless. They only respond to touches.
Adding JS onclick or something similar is required.
Thanks you mattster, I've been fighting with this and I almost solved it, then I was informed by an iPhone user the menu did not completely collapse, arghh.
One thing I noticed you don't have a rule for the class=active ? I was informed I needed a rule !
It needs to close on touch, I can't have the menu stay open ! I have two versions of code that are suppose to do the same thing, yet both so far both are failing, they either do one thing or the other thing, but not both arghhh !