/* Remove default markers, we’ll draw our own */
ol.outline,
ol.outline ol {
  list-style: none;
  margin: 0;
  padding: 0;
}

/* Top-level counter: 1,2,3... */
ol.outline {
  counter-reset: top;
}

/* Each top item increments "top" and resets "sub" */
ol.outline>li {
  counter-increment: top;
  counter-reset: sub;
  margin: 0 0 1rem 0;
}

/* Put "1. " inside the H2 */
ol.outline>li>h2 {
  margin: 0;
}

ol.outline>li>h2::before {
  content: counter(top) ". ";
}

/* Nested list indentation */
ol.outline>li>ol {
  padding-left: 2.25rem;
  margin-top: 0.5rem;
}

/* Nested items: 1.1, 1.2, 2.1... */
ol.outline>li>ol>li {
  counter-increment: sub;
  margin: 1.4rem 0;
}

ol.outline>li>ol>li::before {
  content: counter(top) "." counter(sub) " ";
}

/* Disc sublist: restore default bullets + spacing */
ol.outline ol.disc {
  list-style: disc outside;
  padding-left: 1.6rem;
  /* controls how far bullets are from the left edge */
  margin: 0.5rem 0 0 0;
  /* space above the disc list */
}

/* If your outline uses ::before markers, prevent them on the disc list items */
ol.outline ol.disc>li::before {
  content: none;
}

/* Optional: a bit more breathing room between bullet and text */
ol.outline ol.disc>li {
  padding-left: 0.25rem;
}