Cómo revertir el orden de los elementos secundarios anidados.

Supongamos que tengo el siguiente código HTML

HTML

<div class="a">
  <div class="b">
   <div class="c"></div>
  </div>
</div>

CSS

.a, .b, .c {
  width: 100px;
  height: 100px;
  position: relative;
}

.a {
  background: red;
   z-index: 999;
}

.b {
  background: green;
   margin: 40px;
   z-index: 500;
}

.c {
  background: gray;
  margin: 40px;
  z-index: 100;
}

Ahora, quiero que sea exactamente opuesto, es decir, rojo encima de todo. Intenté usar el índice z con la posición establecida enrelative pero no funciona Aquí esta lajsfiddle manifestación

Respuestas a la pregunta(1)

Su respuesta a la pregunta