quindi nel mio esempio la eventuale regola del secondo <div> (il <div> interno e figlio del primo <div>) vale solo se specificata prima nell'ordine?

es.

codice:
<div id="prova">
              

bla bla</p>
              

bla bla</p>
              <div class="prova1">
                        

bla bla</p>
                        

bla bla</p>
              </div>
</div>
regola css:
div#prova p {color:red;}

Quello che volevo dire è perche gli

piu interni(quelli di 3a generazioni e discendenti ma non figli del primo <div> piu esterno)
prendono la regola "dell'antenato" prendendo cosi lo stile della regola sopra che prende come riferimento appunto il primo <div>?
E non prende magari los tile di un eventuale regola del secondo <div> che ha classe "prova1"?

Forse in questo caso conta la regola della specificita e quindi "vince" lo stile dell'antenato del primo <div> perche fa riferimento ad un "id" che è piu specifico di una"class"?
O come dicevate voi conta la regola in base alla quale a priorita l'ultimo stile inserito?