/* 
The following styles are ordered as they appear in section 6.2. of the
3 February 2015 CR of the CSS3 Counter Styles Level 3 module <http://www.w3.org/TR/css-counter-styles-3/#simple-alphabetic>.
*/

ol.lower-alpha { list-style-type: lower-alpha; }
ol.lower-latin { list-style-type: lower-latin; }

ol.upper-alpha { list-style-type: upper-alpha; }
ol.upper-latin { list-style-type: upper-latin; }

ol.cjk-earthly-branch { list-style-type: cjk-earthly-branch; }
ol.cjk-heavenly-stem { list-style-type: cjk-heavenly-stem; }

ol.lower-greek { list-style-type: lower-greek; }

ol.hiragana-iroha { list-style-type: hiragana-iroha; }

ol.hiragana { list-style-type: hiragana; }

ol.katakana-iroha { list-style-type: katakana-iroha; }

ol.katakana { list-style-type: katakana; }

/* compatibility with Firefox i.e. -moz-hangul */

ol.hangul-consonant { list-style-type: hangul-consonant; }

ol.hangul { list-style-type: hangul; }

ol.ethiopic-halehame { list-style-type: ethiopic-halehame; }

ol.ethiopic-halehame-am { list-style-type: ethiopic-halehame-am; }

ol.ethiopic-halehame-ti-er { list-style-type: ethiopic-halehame-ti-er; }

ol.ethiopic-halehame-ti-et { list-style-type: ethiopic-halehame-ti-et; }

