Suggestion, add a nested attribute for the ol element to avoid all the CSS needed to create a hierarchical list. For example:
<ol type=“A”>
<li>First main item
<ol type=“1” nested>
<li>First item first sub-topic</li>
<li>First item second sub-topic</li>
</ol>
</li>
<li>Second main item
<ol type=“1” nested>
<li>Second item first sub-topic</li>
<li>Second item second sub-topic</li>
</ol>
</li>
</ol>
To render as:
A. First main item
A.1 First item first sub-topic
A.2 First item second sub-topic
B. Second main item
B.1 Second item first sub-topic
B.2 Second item second sub-topic
… and maybe also a delimiter attribute to specify what the separator character should be for nested lists, with the default being a “.” For example in the above:
<ol type=“1” nested delimiter=""> would generate A1, A2, etc.
<ol type=“1” nested delimiter="-"> would generate A-1, A-2, etc.
(The reason behind my comment about avoiding CSS is accessibility related. All my searching for ways to get a hierarchical ol list such as A.2.1 involved counters combined with using content: and my understanding (perhaps incorrect?) is that content added using CSS content: presents accessibility problems with screen readers.)