How can I map a texture node, using a factor similar to pointiness, when the mesh edges are too rounded? I'll try to clarify. I have a guitar body mesh. 

I want the front &amp; back to have a lighter wood texture.
I want the sides to have the same texture, but stained darker.

Here's the tricky part: the darkened wood texture should extend a short distance 'beyond' the sides, and into the front and back of the guitar. Here's a pic of what I mean:



Is there a node setup that lets me do this without texture painting?
I tried pointiness but it doesn't work, maybe because my mesh is a mess, or the edges are too rounded.

Here's where I'm at so far - I can target the sides by using a geometry node. Sort of like saying "apply the texture to faces parallel to the local Z axis". But you can see the issue - the green color doesn't bleed into the front and back, it strictly covers the side. The color ramp doesn't help. Is there some way to extend the green area a few inches onto the front+back faces?
I would use the normal output of the texture coordinate node and remap the values with a rgb curves node. 

For this you need to have your model's normals pointing in a global direction. Say you modeled the body along the XY plane, so the normals of the part where the cord is (I don't know the technical term) points towards the Z direction.

So we will create a gradient from blackish to orange-ish along the mesh, depending on the value of the normal. A Z component of Z means black values, and a Z component of 1 (pointing UP) is more red.

We will add a noise texture to make it a little bit more believable, but I think you know how to do this already.

The node network :



Zoom on the "RGB curves" node :



Result :