Good luck. The smoke odor thats caught up in the headliner is about impossible to get out. Not to mention you need to pull the dash and get the vents off to clean inside the heat/a/c system. Not to mention dropping the fan below the glove box and cleaning it out as well. You can try and get the seats and carpets cleaned but it will eventually come back. If you want to drop a dime......replace the carpet and headliner. Don't be suprised when you clean the a/c-heat vents and ducting if its yellow in color. Use tsp and water to get rid of the yellow..
Its not impossible to get out but it is hella hard. The first car I bought was a Honda Civic Sport. I looked at it on the lot and loved it. When the sales man gave me the keys to take a looka the inside, the smell that came out when I opened the door almost knocked me over. It was horrible. After haggling down to the price I wanted to pay, I told him I would only buy the car if it ws fully cleaned and detailed, including the a/c system. They took it to a car care place and cleaned the entire inside (minus the headliner) and hooked the car to some sort of machine that completely cleaned the a/c system.
Well when they brought it back it was MUCH better but you could still smell it. I tracked it down to the headliner (they didn't tell me they didn't have it cleaned) and made them do it again, with the headliner included, or I was walking away from the deal. Its amazing what you can get when you tell them you're walking!
After the second cleaning with the headliner included, the car smelled like a brand new car. No bull. I was amazed. There was no smell of smoke at all. People would get in the car and think it was brand new.
As a side note, I told him that for haveing to wait the extra time he was now going to have to throw in window vents and a stone deflector! Got that too.
Good luck with getting rid of the smell. If the home remedies don't work take it to a professional who does this for a living. They know how to get rid of that stank!