The loops starts again from the beginning because you went out of your way to tell it to do so. Instead, you need a simple state machine. In the "start state", you're looking for the specific model name. Once that's found, you're in the "want color" state, in which you continue through the data to find the next line with "color".
model = "Hyundai"
state = 0
for line in data:
if state == 0: # Look for desired model:
if model in line:
state = 1
elif state == 1:
if "color" in line:
color = get_color(line)
break
This is detailed and dirty, but the concept works. However, if you have to do this repeatedly then change your algorithm altogether. Build a reference dict with the various models and their attributes. You'll make one pass through the data; after that, all uses will be by direct look-up, not by re-parsing the input text. You'll want to finish with something like:
look_up = [
{"model": "Honda",
"color": "white",
"trim": "black"},
{"model": "Chevy",
"color": "blue",
"trim": "chrome"},
{"model": "Hyundai",
"color": "red",
"trim": "black"}
]
Doing so is a different question ... give it a try.