gran parte de la solución está en la estructura html. hay distintas maneras de hacerlo. trabajando con listas. las opciones de la lista, pueden contener otra lista
Cita: <ol>
<li>opt1
<ol>
<li>contenido opt1</li>
</ol>
</li>
</ol>
o con lista y elementos de bloques (div, p, etc) o elementos en línea (span)
Cita: <ol>
<li>opt1
<span>contenido opt1</span>
</li>
</ol>
con css se oculta/muestran el contenido de las secciones o se ocultan con css y se muestran y se vuelven a ocultar con javascript
todo esto es a grandes rasgos