/* 
 * Style numeracji dla dokumentów prawnych
 * Hierarchia: § Paragrafy → 1. Ustępy → 1) Punkty → a) Podpunkty → i) Niższe podpunkty
 */

/* Styl 1: 1. / 1.1. / 1.1.1. */
.list-style-decimal-nested {
    counter-reset: level1;
    list-style: none;
    padding-left: 0;
}

.list-style-decimal-nested > li {
    counter-increment: level1;
    padding-left: 30px;
    position: relative;
}

.list-style-decimal-nested > li:before {
    content: counter(level1) ". ";
    position: absolute;
    left: 0;
    font-weight: bold;
}

.list-style-decimal-nested > li > ol {
    counter-reset: level2;
    list-style: none;
    padding-left: 0;
}

.list-style-decimal-nested > li > ol > li {
    counter-increment: level2;
    padding-left: 30px;
    position: relative;
}

.list-style-decimal-nested > li > ol > li:before {
    content: counter(level1) "." counter(level2) ". ";
    position: absolute;
    left: 0;
}

.list-style-decimal-nested > li > ol > li > ol {
    counter-reset: level3;
    list-style: none;
    padding-left: 0;
}

.list-style-decimal-nested > li > ol > li > ol > li {
    counter-increment: level3;
    padding-left: 30px;
    position: relative;
}

.list-style-decimal-nested > li > ol > li > ol > li:before {
    content: counter(level1) "." counter(level2) "." counter(level3) ". ";
    position: absolute;
    left: 0;
}

/* Styl 2: I. / A. / 1. / a. */
.list-style-legal {
    counter-reset: level1;
    list-style: none;
    padding-left: 0;
}

.list-style-legal > li {
    counter-increment: level1;
    padding-left: 35px;
    position: relative;
}

.list-style-legal > li:before {
    content: counter(level1, upper-roman) ". ";
    position: absolute;
    left: 0;
    font-weight: bold;
}

.list-style-legal > li > ol {
    counter-reset: level2;
    list-style: none;
    padding-left: 0;
}

.list-style-legal > li > ol > li {
    counter-increment: level2;
    padding-left: 30px;
    position: relative;
}

.list-style-legal > li > ol > li:before {
    content: counter(level2, upper-alpha) ". ";
    position: absolute;
    left: 0;
}

.list-style-legal > li > ol > li > ol {
    counter-reset: level3;
    list-style: none;
    padding-left: 0;
}

.list-style-legal > li > ol > li > ol > li {
    counter-increment: level3;
    padding-left: 30px;
    position: relative;
}

.list-style-legal > li > ol > li > ol > li:before {
    content: counter(level3) ". ";
    position: absolute;
    left: 0;
}

.list-style-legal > li > ol > li > ol > li > ol {
    counter-reset: level4;
    list-style: none;
    padding-left: 0;
}

.list-style-legal > li > ol > li > ol > li > ol > li {
    counter-increment: level4;
    padding-left: 30px;
    position: relative;
}

.list-style-legal > li > ol > li > ol > li > ol > li:before {
    content: counter(level4, lower-alpha) ". ";
    position: absolute;
    left: 0;
}

/* Styl 3: § 1 / § 1.1 / § 1.1.1 */
.list-style-paragraphs {
    counter-reset: level1;
    list-style: none;
    padding-left: 0;
}

.list-style-paragraphs > li {
    counter-increment: level1;
    padding-left: 40px;
    position: relative;
}

.list-style-paragraphs > li:before {
    content: "§ " counter(level1);
    position: absolute;
    left: 0;
    font-weight: bold;
}

.list-style-paragraphs > li > ol {
    counter-reset: level2;
    list-style: none;
    padding-left: 0;
}

.list-style-paragraphs > li > ol > li {
    counter-increment: level2;
    padding-left: 40px;
    position: relative;
}

.list-style-paragraphs > li > ol > li:before {
    content: "§ " counter(level1) "." counter(level2);
    position: absolute;
    left: 0;
}

.list-style-paragraphs > li > ol > li > ol {
    counter-reset: level3;
    list-style: none;
    padding-left: 0;
}

.list-style-paragraphs > li > ol > li > ol > li {
    counter-increment: level3;
    padding-left: 40px;
    position: relative;
}

.list-style-paragraphs > li > ol > li > ol > li:before {
    content: "§ " counter(level1) "." counter(level2) "." counter(level3);
    position: absolute;
    left: 0;
}

/* Styl 4: 1) / a) / i) */
.list-style-brackets {
    counter-reset: level1;
    list-style: none;
    padding-left: 0;
}

.list-style-brackets > li {
    counter-increment: level1;
    padding-left: 30px;
    position: relative;
}

.list-style-brackets > li:before {
    content: counter(level1) ") ";
    position: absolute;
    left: 0;
    font-weight: bold;
}

.list-style-brackets > li > ol {
    counter-reset: level2;
    list-style: none;
    padding-left: 0;
}

.list-style-brackets > li > ol > li {
    counter-increment: level2;
    padding-left: 30px;
    position: relative;
}

.list-style-brackets > li > ol > li:before {
    content: counter(level2, lower-alpha) ") ";
    position: absolute;
    left: 0;
}

.list-style-brackets > li > ol > li > ol {
    counter-reset: level3;
    list-style: none;
    padding-left: 0;
}

.list-style-brackets > li > ol > li > ol > li {
    counter-increment: level3;
    padding-left: 30px;
    position: relative;
}

.list-style-brackets > li > ol > li > ol > li:before {
    content: counter(level3, lower-roman) ") ";
    position: absolute;
    left: 0;
}

/* Styl 5: Article / Section / Paragraph */
.list-style-contract {
    counter-reset: article;
    list-style: none;
    padding-left: 0;
}

.list-style-contract > li {
    counter-increment: article;
    padding-left: 0;
    margin-bottom: 15px;
}

.list-style-contract > li:before {
    content: "Art. " counter(article) ". ";
    font-weight: bold;
    display: block;
    margin-bottom: 5px;
}

.list-style-contract > li > ol {
    counter-reset: section;
    list-style: none;
    padding-left: 30px;
}

.list-style-contract > li > ol > li {
    counter-increment: section;
    padding-left: 0;
    position: relative;
}

.list-style-contract > li > ol > li:before {
    content: counter(section) ". ";
    position: absolute;
    left: -20px;
}

.list-style-contract > li > ol > li > ol {
    counter-reset: paragraph;
    list-style: none;
    padding-left: 30px;
}

.list-style-contract > li > ol > li > ol > li {
    counter-increment: paragraph;
    padding-left: 0;
    position: relative;
}

.list-style-contract > li > ol > li > ol > li:before {
    content: counter(paragraph, lower-alpha) ") ";
    position: absolute;
    left: -25px;
}
