/* 
 * Style numeracji dla dokumentów prawnych - WordPress Contract Generator
 * Zgodne z praktyką prawniczą w Polsce
 */

/* ===== POZIOM 1: PARAGRAFY ===== */

/* § 1. Paragraf */
.legal-paragraph {
    counter-reset: paragraph;
    list-style: none;
    padding-left: 0;
    margin-left: 0;
}

.legal-paragraph > li {
    counter-increment: paragraph;
    padding-left: 40px;
    position: relative;
    margin-bottom: 1em;
}

.legal-paragraph > li:before {
    content: "§ " counter(paragraph) ". ";
    position: absolute;
    left: 0;
    font-weight: bold;
}

/* Poziom 1: 1. */
.legal-level1-decimal {
    counter-reset: level1;
    list-style: none;
    padding-left: 0;
    margin-left: 0;
}

.legal-level1-decimal > li {
    counter-increment: level1;
    padding-left: 30px;
    position: relative;
    margin-bottom: 0.5em;
}

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

/* Poziom 1: 1) */
.legal-level1-paren {
    counter-reset: level1;
    list-style: none;
    padding-left: 0;
    margin-left: 0;
}

.legal-level1-paren > li {
    counter-increment: level1;
    padding-left: 30px;
    position: relative;
    margin-bottom: 0.5em;
}

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

/* Poziom 1: 1.) */
.legal-level1-dotparen {
    counter-reset: level1;
    list-style: none;
    padding-left: 0;
    margin-left: 0;
}

.legal-level1-dotparen > li {
    counter-increment: level1;
    padding-left: 35px;
    position: relative;
    margin-bottom: 0.5em;
}

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

/* ===== POZIOM 2: USTĘPY / PODPUNKTY ===== */

/* Poziom 2: a) */
.legal-level2-alpha-paren {
    counter-reset: level2;
    list-style: none;
    padding-left: 0;
    margin-left: 30px;
}

.legal-level2-alpha-paren > li {
    counter-increment: level2;
    padding-left: 30px;
    position: relative;
    margin-bottom: 0.3em;
}

.legal-level2-alpha-paren > li:before {
    content: counter(level2, lower-alpha) ") ";
    position: absolute;
    left: 0;
}

/* Poziom 2: a. */
.legal-level2-alpha-dot {
    counter-reset: level2;
    list-style: none;
    padding-left: 0;
    margin-left: 30px;
}

.legal-level2-alpha-dot > li {
    counter-increment: level2;
    padding-left: 30px;
    position: relative;
    margin-bottom: 0.3em;
}

.legal-level2-alpha-dot > li:before {
    content: counter(level2, lower-alpha) ". ";
    position: absolute;
    left: 0;
}

/* Poziom 2: 1.1. (numeracja wielopoziomowa) */
.legal-level2-nested {
    counter-reset: level2;
    list-style: none;
    padding-left: 0;
    margin-left: 30px;
}

.legal-level2-nested > li {
    counter-increment: level2;
    padding-left: 40px;
    position: relative;
    margin-bottom: 0.3em;
}

/* To wymaga kontekstu rodzica - obsługa w JavaScript */
.legal-level1-decimal .legal-level2-nested > li:before {
    content: counter(level1) "." counter(level2) ". ";
    position: absolute;
    left: 0;
}

/* ===== POZIOM 3: PODPUNKTY NIŻSZE ===== */

/* Poziom 3: i) (cyfry rzymskie małe) */
.legal-level3-roman-lower {
    counter-reset: level3;
    list-style: none;
    padding-left: 0;
    margin-left: 30px;
}

.legal-level3-roman-lower > li {
    counter-increment: level3;
    padding-left: 35px;
    position: relative;
    margin-bottom: 0.2em;
}

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

/* Poziom 3: I) (cyfry rzymskie wielkie) */
.legal-level3-roman-upper {
    counter-reset: level3;
    list-style: none;
    padding-left: 0;
    margin-left: 30px;
}

.legal-level3-roman-upper > li {
    counter-increment: level3;
    padding-left: 35px;
    position: relative;
    margin-bottom: 0.2em;
}

.legal-level3-roman-upper > li:before {
    content: counter(level3, upper-roman) ") ";
    position: absolute;
    left: 0;
}

/* Poziom 3: 1.1.1. (numeracja trzypoziomowa) */
.legal-level3-nested {
    counter-reset: level3;
    list-style: none;
    padding-left: 0;
    margin-left: 30px;
}

.legal-level3-nested > li {
    counter-increment: level3;
    padding-left: 50px;
    position: relative;
    margin-bottom: 0.2em;
}

/* Wymaga kontekstu - obsługa w JavaScript */
.legal-level1-decimal .legal-level2-nested .legal-level3-nested > li:before {
    content: counter(level1) "." counter(level2) "." counter(level3) ". ";
    position: absolute;
    left: 0;
}

/* ===== WYPUNKTOWANIA (TIRET) ===== */

/* Lista z tiret (–) */
.legal-tiret {
    list-style: none;
    padding-left: 0;
    margin-left: 30px;
}

.legal-tiret > li {
    padding-left: 25px;
    position: relative;
    margin-bottom: 0.3em;
}

.legal-tiret > li:before {
    content: "–";
    position: absolute;
    left: 0;
    font-weight: normal;
}

/* Lista z kropką (•) */
.legal-bullet {
    list-style: none;
    padding-left: 0;
    margin-left: 30px;
}

.legal-bullet > li {
    padding-left: 25px;
    position: relative;
    margin-bottom: 0.3em;
}

.legal-bullet > li:before {
    content: "•";
    position: absolute;
    left: 0;
    font-weight: normal;
}

/* ===== KOMPLETNE HIERARCHIE (NESTED) ===== */

/* Pełna hierarchia: § → 1. → a) → i) */
.legal-full-hierarchy {
    counter-reset: paragraph;
    list-style: none;
    padding-left: 0;
}

.legal-full-hierarchy > li {
    counter-increment: paragraph;
    padding-left: 40px;
    position: relative;
    margin-bottom: 1em;
}

.legal-full-hierarchy > li:before {
    content: "§ " counter(paragraph) ". ";
    position: absolute;
    left: 0;
    font-weight: bold;
}

/* Ustępy w paragrafie */
.legal-full-hierarchy > li > ol {
    counter-reset: ustep;
    list-style: none;
    padding-left: 0;
    margin-top: 0.5em;
}

.legal-full-hierarchy > li > ol > li {
    counter-increment: ustep;
    padding-left: 30px;
    position: relative;
    margin-bottom: 0.5em;
}

.legal-full-hierarchy > li > ol > li:before {
    content: counter(ustep) ". ";
    position: absolute;
    left: 0;
}

/* Punkty w ustępach */
.legal-full-hierarchy > li > ol > li > ol {
    counter-reset: punkt;
    list-style: none;
    padding-left: 0;
    margin-top: 0.3em;
}

.legal-full-hierarchy > li > ol > li > ol > li {
    counter-increment: punkt;
    padding-left: 30px;
    position: relative;
    margin-bottom: 0.3em;
}

.legal-full-hierarchy > li > ol > li > ol > li:before {
    content: counter(punkt) ") ";
    position: absolute;
    left: 0;
}

/* Podpunkty literowe */
.legal-full-hierarchy > li > ol > li > ol > li > ol {
    counter-reset: podpunkt;
    list-style: none;
    padding-left: 0;
    margin-top: 0.2em;
}

.legal-full-hierarchy > li > ol > li > ol > li > ol > li {
    counter-increment: podpunkt;
    padding-left: 30px;
    position: relative;
    margin-bottom: 0.2em;
}

.legal-full-hierarchy > li > ol > li > ol > li > ol > li:before {
    content: counter(podpunkt, lower-alpha) ") ";
    position: absolute;
    left: 0;
}

/* Najniższy poziom - rzymskie */
.legal-full-hierarchy > li > ol > li > ol > li > ol > li > ol {
    counter-reset: subpunkt;
    list-style: none;
    padding-left: 0;
}

.legal-full-hierarchy > li > ol > li > ol > li > ol > li > ol > li {
    counter-increment: subpunkt;
    padding-left: 35px;
    position: relative;
    margin-bottom: 0.2em;
}

.legal-full-hierarchy > li > ol > li > ol > li > ol > li > ol > li:before {
    content: counter(subpunkt, lower-roman) ") ";
    position: absolute;
    left: 0;
}

/* ===== UNIWERSALNE KLASY POMOCNICZE ===== */

/* Wcięcie tekstu pod numerem */
.legal-indent {
    text-indent: -20px;
    padding-left: 20px;
}

/* Brak marginesu dolnego dla zagnieżdżonych list */
ol ol,
ul ol,
ol ul {
    margin-bottom: 0;
}

/* Zapewnienie odpowiedniego odstępu */
.legal-paragraph > li,
.legal-level1-decimal > li,
.legal-level1-paren > li {
    line-height: 1.6;
}

/* Wyłączenie domyślnych punktorów przeglądarki */
.legal-paragraph,
.legal-level1-decimal,
.legal-level1-paren,
.legal-level1-dotparen,
.legal-level2-alpha-paren,
.legal-level2-alpha-dot,
.legal-level2-nested,
.legal-level3-roman-lower,
.legal-level3-roman-upper,
.legal-level3-nested,
.legal-tiret,
.legal-bullet,
.legal-full-hierarchy {
    list-style-type: none !important;
}
