Here’s another idea. Image TVs for the graphics. Then, the raw content of each page is a chunk in this format:
PAGE HEAD: Appetizers
LIST HEAD:Canapes
*Spiced duck . . .
*Herb Tuille . . .
*Smoked Salmon . . .
etc.
LIST HEAD:Terrines
*Duck and pistachio
*Pork and spinach
etc.
etc.
Then use a snippet to process the chunk into the finished product; adding the divs and classes (maybe using a few pre-made tpl chunks, one for each line). The top and bottom images could be rendered via the TVs in the page template.
The snippet should be fairly simple to produce (pretty similar to the EZfaq snippet but without the JavaScript). You could have some pre-made unpublished pages containing the snippet call and the image TVs. The client would only have to fill in the page title, pick the images, and add the name of the appropriate chunk (which could also be a TV, I guess), then just fill in the chunk like the above. You could create a bunch of dummy chunks ahead of time.
Whenever possible, I try to keep the client from going anywhere near the CSS or HTML for a page and just enter slightly structured content. It’s the only way to make sure that the styling of every page is the same.
Hope this makes sense.