legal-markdown-js 3.0.0 → 3.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/dist/styles/{contract.petalo.css → default.css} +201 -112
  2. package/dist/styles/headers.css +146 -0
  3. package/dist/styles/highlight.css +187 -0
  4. package/package.json +1 -1
  5. package/dist/assets/logo.petalo.imported.png +0 -0
  6. package/dist/assets/logo.petalo.png +0 -0
  7. package/dist/assets/logo.petalo.transparent-colorful.png +0 -0
  8. package/dist/examples/basic-processing/simple-document/example.output.html/metadata.json +0 -19
  9. package/dist/examples/basic-processing/simple-document/metadata.json +0 -19
  10. package/dist/examples/cross-references/basic-references/agreement.output.html +0 -93
  11. package/dist/examples/cross-references/basic-references/agreement.output.md +0 -106
  12. package/dist/examples/cross-references/basic-references/internal-references.output.html +0 -52
  13. package/dist/examples/cross-references/basic-references/internal-references.output.md +0 -34
  14. package/dist/examples/cross-references/basic-references/metadata.yaml +0 -7
  15. package/dist/examples/data/metadata.json +0 -9
  16. package/dist/examples/metadata.yaml +0 -4
  17. package/dist/examples/mixins/template-loops/items-list.output.html +0 -49
  18. package/dist/examples/output/contract/contract-highlighted.HIGHLIGHT.html +0 -680
  19. package/dist/examples/output/contract/contract-highlighted.HIGHLIGHT.pdf +0 -0
  20. package/dist/examples/output/contract/contract-highlighted.html +0 -493
  21. package/dist/examples/output/contract/contract-highlighted.pdf +0 -0
  22. package/dist/examples/output/contract/contract.html +0 -493
  23. package/dist/examples/output/contract/contract.pdf +0 -0
  24. package/dist/examples/output/metadata.json +0 -19
  25. package/dist/examples/output/nda-metadata.yaml +0 -15
  26. package/dist/examples/output/ticket/ticket-highlighted.HIGHLIGHT.html +0 -374
  27. package/dist/examples/output/ticket/ticket-highlighted.HIGHLIGHT.pdf +0 -0
  28. package/dist/examples/output/ticket/ticket-highlighted.html +0 -187
  29. package/dist/examples/output/ticket/ticket-highlighted.pdf +0 -0
  30. package/dist/examples/output/ticket/ticket.html +0 -187
  31. package/dist/examples/output/ticket/ticket.pdf +0 -0
  32. package/dist/web/playground-modern.html +0 -541
  33. package/dist/web/test-consolidation.html +0 -70
  34. package/dist/web/test-direct-preprocess.html +0 -54
  35. package/dist/web/test-loops-final.html +0 -128
  36. package/dist/web/test-pre-process.html +0 -184
  37. package/dist/web/test-simple-loops.html +0 -104
@@ -1,8 +1,8 @@
1
1
  /**
2
- * Contract Template Styles
2
+ * Default Legal Markdown Styles
3
3
  *
4
- * Stylesheet for contract documents, optimized for both screen and print media.
5
- * Includes typography configuration, spacing, and specific PDF optimizations.
4
+ * Professional stylesheet for legal documents, optimized for both screen and print media.
5
+ * Features modern typography, clean design, and comprehensive print optimizations.
6
6
  *
7
7
  * Structure:
8
8
  * 1. Variables and base configuration
@@ -16,31 +16,40 @@
16
16
  /* Variables and base configuration
17
17
  ========================================================================== */
18
18
  :root {
19
- /* Colors */
20
- --color-primary: #353954;
21
- --color-accent: #41badf;
22
- --color-link: #41badf;
23
- --color-text: #333;
24
- --color-error: #e94d5c;
19
+ /* Colors - Professional slate and teal palette */
20
+ --color-primary: #1e293b; /* Slate 800 */
21
+ --color-accent: #0891b2; /* Cyan 600 */
22
+ --color-link: #0891b2; /* Cyan 600 */
23
+ --color-text: #334155; /* Slate 700 */
24
+ --color-error: #dc2626; /* Red 600 */
25
+ --color-bg: #ffffff; /* White */
26
+ --color-muted: #64748b; /* Slate 500 */
25
27
 
26
28
  /* Typography */
27
- --font-primary: Helvetica, Arial, sans-serif;
28
- --font-mono: 'Consolas', 'Monaco', 'Courier New', monospace;
29
+ --font-primary: -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
30
+ --font-mono: 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', 'Courier New', monospace;
29
31
 
30
- /* Assets */
31
- --logo-filename: logo.petalo.transparent-colorful.png;
32
+ /* Assets - Default logo placeholder */
33
+ --logo-filename: https://placehold.co/120x40/2563eb/ffffff.png?text=LOGO;
32
34
 
33
35
  /* Spacing */
34
- --spacing-xsmall: 2px;
36
+ --spacing-xsmall: 4px;
35
37
  --spacing-small: 8px;
36
- --spacing-medium: 15px;
37
- --spacing-large: 30px;
38
+ --spacing-medium: 16px;
39
+ --spacing-large: 32px;
40
+ --spacing-xlarge: 48px;
38
41
 
39
42
  /* Sizes */
40
43
  --font-size-base: 12pt;
41
- --font-size-h1: 1.6em;
42
- --font-size-h2: 14pt;
43
- --font-size-h3: 10pt;
44
+ --font-size-h1: 1.8em;
45
+ --font-size-h2: 1.4em;
46
+ --font-size-h3: 1.2em;
47
+ --font-size-h4: 1.1em;
48
+
49
+ /* Layout */
50
+ --max-width: 210mm; /* A4 width */
51
+ --border-radius: 6px;
52
+ --border-width: 1px;
44
53
  }
45
54
 
46
55
  /* Base document configuration
@@ -48,12 +57,12 @@
48
57
  body {
49
58
  font-family: var(--font-primary);
50
59
  font-size: var(--font-size-base);
51
- line-height: 1.3;
60
+ line-height: 1.6;
52
61
  color: var(--color-text);
53
- max-width: 210mm; /* A4 width */
62
+ max-width: var(--max-width);
54
63
  margin: 0 auto;
55
64
  padding: 20mm 15mm;
56
- background-color: white;
65
+ background-color: var(--color-bg);
57
66
  }
58
67
 
59
68
  /* Typography hierarchy
@@ -61,72 +70,71 @@ body {
61
70
  /* Prevent page breaks in headings */
62
71
  h1,
63
72
  h2,
64
- h3 {
73
+ h3,
74
+ h4,
75
+ h5,
76
+ h6 {
65
77
  page-break-after: avoid;
66
78
  page-break-inside: avoid;
79
+ color: var(--color-primary);
80
+ font-weight: 600;
67
81
  }
68
82
 
69
83
  /* Main document title */
70
84
  h1,
71
85
  .legal-header-level-1 {
72
- color: var(--color-primary);
73
86
  font-size: var(--font-size-h1);
74
- line-height: 1.5em;
75
- margin: var(--spacing-small) var(--spacing-small) 32px;
87
+ line-height: 1.3;
88
+ margin: var(--spacing-medium) 0 var(--spacing-large);
76
89
  text-align: center;
77
- border-bottom: solid var(--color-accent);
78
- padding: 0 5% 0.3em;
79
- display: block;
80
- font-weight: bold;
90
+ border-bottom: 3px solid var(--color-accent);
91
+ padding-bottom: var(--spacing-medium);
92
+ color: var(--color-primary);
81
93
  }
82
94
 
83
95
  /* Section headings */
84
96
  h2,
85
97
  .legal-header-level-2 {
86
98
  font-size: var(--font-size-h2);
87
- margin-top: 20px;
99
+ margin-top: var(--spacing-large);
88
100
  margin-bottom: var(--spacing-medium);
89
- border-bottom: 1px solid var(--color-link);
90
- display: block;
91
- font-weight: bold;
101
+ border-bottom: 2px solid var(--color-accent);
102
+ padding-bottom: var(--spacing-small);
103
+ color: var(--color-primary);
92
104
  }
93
105
 
94
106
  /* Subsection headings */
95
107
  h3,
96
108
  .legal-header-level-3 {
97
109
  font-size: var(--font-size-h3);
98
- font-weight: bold;
99
- border-bottom: 1px solid var(--color-link);
110
+ font-weight: 600;
100
111
  margin-top: var(--spacing-large);
101
- margin-bottom: var(--spacing-small);
112
+ margin-bottom: var(--spacing-medium);
113
+ border-bottom: 1px solid var(--color-accent);
114
+ padding-bottom: var(--spacing-xsmall);
115
+ color: var(--color-primary);
102
116
  }
103
117
 
104
118
  /* Minor headings */
105
119
  h4,
106
120
  .legal-header-level-4 {
107
- font-size: 0.9em;
108
- font-weight: bold;
121
+ font-size: var(--font-size-h4);
122
+ font-weight: 600;
109
123
  margin-top: var(--spacing-medium);
110
124
  margin-bottom: var(--spacing-small);
111
- }
112
- /* Legal headers */
113
- .legal-header-level-5 {
114
- font-size: 0.8em;
115
- font-weight: bold;
116
- margin-top: var(--spacing-small);
117
- margin-bottom: var(--spacing-xsmall);
125
+ color: var(--color-primary);
118
126
  }
119
127
 
120
- /* Annexes styling - Level 6 hack */
121
- /* The sublevel 6 is used as a hack to create annexes at top level */
128
+ /* Legal headers */
129
+ h5,
130
+ h6,
131
+ .legal-header-level-5,
122
132
  .legal-header-level-6 {
123
- font-size: var(--font-size-h2); /* Same size as level 2 */
124
- font-weight: bold;
125
- margin-left: 0 !important; /* No indentation - make it look top level */
126
- margin-top: var(--spacing-large); /* More space before annexes */
127
- margin-bottom: var(--spacing-medium);
128
- border-bottom: 1px solid var(--color-link); /* Same underline as level 2 */
129
- color: var(--color-primary); /* Highlight color */
133
+ font-size: 1em;
134
+ font-weight: 600;
135
+ margin-top: var(--spacing-medium);
136
+ margin-bottom: var(--spacing-small);
137
+ color: var(--color-primary);
130
138
  }
131
139
 
132
140
  /* Content elements
@@ -140,13 +148,24 @@ p {
140
148
  page-break-inside: avoid;
141
149
  }
142
150
 
151
+ /* Links */
152
+ a {
153
+ color: var(--color-link);
154
+ text-decoration: none;
155
+ transition: color 0.2s ease;
156
+ }
157
+
158
+ a:hover {
159
+ text-decoration: underline;
160
+ color: var(--color-accent);
161
+ }
162
+
143
163
  /* Lists */
144
164
  ul,
145
165
  ol {
146
- margin-left: var(--spacing-small);
147
- margin-bottom: var(--spacing-medium);
148
- padding-inline-start: 20px;
149
- page-break-inside: auto; /* Allow page breaks in lists */
166
+ margin: var(--spacing-medium) 0;
167
+ padding-left: var(--spacing-large);
168
+ page-break-inside: auto;
150
169
  }
151
170
 
152
171
  li {
@@ -154,36 +173,82 @@ li {
154
173
  page-break-inside: auto;
155
174
  }
156
175
 
176
+ /* Code blocks */
177
+ pre {
178
+ background-color: #f8fafc;
179
+ border: var(--border-width) solid #e2e8f0;
180
+ border-radius: var(--border-radius);
181
+ padding: var(--spacing-medium);
182
+ margin: var(--spacing-medium) 0;
183
+ overflow-x: auto;
184
+ font-family: var(--font-mono);
185
+ font-size: 0.9em;
186
+ line-height: 1.4;
187
+ }
188
+
189
+ code {
190
+ background-color: #f1f5f9;
191
+ color: var(--color-primary);
192
+ padding: var(--spacing-xsmall) var(--spacing-small);
193
+ border-radius: 4px;
194
+ font-family: var(--font-mono);
195
+ font-size: 0.9em;
196
+ }
197
+
157
198
  /* Horizontal separators */
158
199
  hr {
159
- border: 1px solid var(--color-link);
160
- margin: var(--spacing-medium) 0;
200
+ border: none;
201
+ border-top: 2px solid var(--color-accent);
202
+ margin: var(--spacing-large) 0;
161
203
  }
162
204
 
163
205
  /* Empty fields and missing values */
164
206
  .missing-value {
165
- background-color: #ffebee;
166
- color: #c62828;
167
- padding: 2px 6px;
168
- border-radius: 3px;
169
- border: 1px dashed #ef5350;
207
+ background-color: #fef2f2;
208
+ color: var(--color-error);
209
+ padding: var(--spacing-xsmall) var(--spacing-small);
210
+ border-radius: 4px;
211
+ border: var(--border-width) dashed var(--color-error);
170
212
  font-style: italic;
171
213
  }
172
214
 
215
+
173
216
  /* Tables
174
217
  ========================================================================== */
218
+ .table-responsive {
219
+ overflow-x: auto;
220
+ -webkit-overflow-scrolling: touch;
221
+ margin: var(--spacing-medium) 0;
222
+ }
223
+
175
224
  table {
176
225
  width: 100%;
177
226
  border-collapse: collapse;
178
- margin-bottom: 20px;
227
+ margin: var(--spacing-medium) 0;
179
228
  table-layout: fixed;
229
+ background-color: var(--color-bg);
230
+ }
231
+
232
+ th,
233
+ td {
234
+ border: var(--border-width) solid #e2e8f0;
235
+ padding: var(--spacing-small) var(--spacing-medium);
236
+ text-align: left;
237
+ vertical-align: top;
238
+ }
239
+
240
+ th {
241
+ background-color: #f8fafc;
242
+ font-weight: 600;
243
+ color: var(--color-primary);
180
244
  }
181
245
 
182
246
  /* Signature table
183
247
  ========================================================================== */
184
248
  .signatures {
185
249
  page-break-inside: avoid;
186
- margin-top: var(--spacing-large);
250
+ margin-top: var(--spacing-xlarge);
251
+ border: none;
187
252
  }
188
253
 
189
254
  .signatures th {
@@ -192,14 +257,18 @@ table {
192
257
 
193
258
  .signatures th,
194
259
  .signatures td {
195
- padding: var(--spacing-small);
260
+ padding: var(--spacing-medium);
196
261
  text-align: left;
262
+ border: none;
263
+ border-bottom: 2px solid var(--color-primary);
197
264
  }
198
265
 
199
266
  /* Two-column layout: 1/3 for labels, 2/3 for signatures */
200
267
  .signatures th:first-child,
201
268
  .signatures td:first-child {
202
269
  width: 33.33%;
270
+ font-weight: 600;
271
+ color: var(--color-primary);
203
272
  }
204
273
 
205
274
  .signatures th:last-child,
@@ -207,7 +276,7 @@ table {
207
276
  width: 66.67%;
208
277
  }
209
278
 
210
- .signatures td {
279
+ .signatures td:last-child {
211
280
  height: 6em;
212
281
  vertical-align: bottom;
213
282
  font-weight: normal;
@@ -215,8 +284,16 @@ table {
215
284
 
216
285
  /* Table of contents
217
286
  ========================================================================== */
287
+ .table-of-contents {
288
+ background-color: #f8fafc;
289
+ border: var(--border-width) solid #e2e8f0;
290
+ border-radius: var(--border-radius);
291
+ padding: var(--spacing-medium);
292
+ margin: var(--spacing-large) 0;
293
+ }
294
+
218
295
  .table-of-contents li {
219
- margin-bottom: 5px;
296
+ margin-bottom: var(--spacing-small);
220
297
  list-style-type: none;
221
298
  }
222
299
 
@@ -228,19 +305,16 @@ table {
228
305
  color: white !important;
229
306
  font-weight: bold !important;
230
307
  text-align: center !important;
231
- padding: var(--spacing-small) 0 !important;
232
- margin: var(--spacing-medium) 0 25px !important;
308
+ padding: var(--spacing-medium) 0 !important;
309
+ margin: var(--spacing-large) 0 !important;
233
310
  text-transform: uppercase !important;
234
311
  letter-spacing: 1px !important;
235
312
  display: block !important;
313
+ border-radius: var(--border-radius) !important;
236
314
  -webkit-print-color-adjust: exact !important;
237
315
  print-color-adjust: exact !important;
238
316
  }
239
317
 
240
- #confidential-header {
241
- margin-top: -20px;
242
- }
243
-
244
318
  /* Separator section
245
319
  ========================================================================== */
246
320
  .separator {
@@ -249,11 +323,12 @@ table {
249
323
  color: white !important;
250
324
  font-weight: bold !important;
251
325
  text-align: center !important;
252
- padding: var(--spacing-xsmall) 0 !important;
253
- margin: var(--spacing-medium) 0 10px !important;
326
+ padding: var(--spacing-small) 0 !important;
327
+ margin: var(--spacing-large) 0 var(--spacing-medium) !important;
254
328
  text-transform: uppercase !important;
255
329
  letter-spacing: 1px !important;
256
330
  display: block !important;
331
+ border-radius: var(--border-radius) !important;
257
332
  -webkit-print-color-adjust: exact !important;
258
333
  print-color-adjust: exact !important;
259
334
  }
@@ -261,19 +336,23 @@ table {
261
336
  /* Algorithm blocks
262
337
  ========================================================================== */
263
338
  .algorithm {
264
- background-color: #f8f9fa;
265
- border: 1px solid #e9ecef;
266
- border-radius: 4px;
267
- padding: var(--spacing-small) 12px;
268
- margin: 12px 0;
339
+ background-color: #f8fafc;
340
+ border: var(--border-width) solid #e2e8f0;
341
+ border-left: 4px solid var(--color-accent);
342
+ border-radius: var(--border-radius);
343
+ padding: var(--spacing-medium);
344
+ margin: var(--spacing-medium) 0;
269
345
  font-family: var(--font-mono);
270
- font-size: 12px;
346
+ font-size: 0.9em;
271
347
  line-height: 1.4;
272
348
  }
273
349
 
274
350
  .algorithm pre {
275
351
  margin: 0;
276
- white-space: pre;
352
+ white-space: pre-wrap;
353
+ background: none;
354
+ border: none;
355
+ padding: 0;
277
356
  }
278
357
 
279
358
  /* Utilities
@@ -282,18 +361,34 @@ table {
282
361
  page-break-inside: avoid !important;
283
362
  }
284
363
 
364
+ .page-break-before {
365
+ page-break-before: always !important;
366
+ }
367
+
368
+ .text-center {
369
+ text-align: center !important;
370
+ }
371
+
372
+ .text-muted {
373
+ color: var(--color-muted) !important;
374
+ }
375
+
376
+
285
377
  /* Print optimizations
286
378
  ========================================================================== */
287
379
  @media print {
288
380
  /* Page setup */
289
381
  @page {
290
382
  size: A4;
291
- margin: 20mm 10mm 10mm 10mm;
383
+ margin: 20mm 15mm 15mm 15mm;
292
384
  }
293
385
 
294
386
  body {
295
387
  font-size: 11pt;
296
388
  color: black;
389
+ max-width: 100%;
390
+ margin: 0;
391
+ padding: 0;
297
392
  }
298
393
 
299
394
  /* Links */
@@ -313,48 +408,34 @@ table {
313
408
  text-decoration: none !important;
314
409
  }
315
410
 
316
- /* Show URLs after links */
411
+ /* Show URLs after external links */
317
412
  a[href^='http']:after {
318
413
  content: ' (' attr(href) ')';
319
414
  font-size: 90%;
415
+ color: var(--color-muted);
320
416
  }
321
417
 
322
418
  /* Page break control */
323
- h3,
324
- p {
419
+ h1, h2, h3, h4, h5, h6 {
420
+ page-break-after: avoid;
421
+ }
422
+
423
+ p, li {
325
424
  page-break-inside: avoid;
326
425
  }
327
426
 
328
- ul,
329
- ol {
427
+ ul, ol {
330
428
  page-break-inside: auto;
331
429
  }
332
430
 
333
431
  img {
334
432
  page-break-inside: avoid;
433
+ max-width: 100%;
335
434
  }
336
435
 
337
- /* Page break before annexes */
338
- .legal-annex {
339
- page-break-before: always !important;
340
- display: block !important;
341
- }
342
-
343
- /* Alternative for modern browsers */
344
- .legal-header-level-6 {
345
- page-break-before: always !important;
346
- break-before: page !important; /* Modern syntax */
347
- display: block !important;
348
- }
349
-
350
- /* Annex separation
351
- .annex-section-title {
352
- page-break-before: always;
353
- page-break-after: always;
354
- } */
355
-
356
436
  /* Maintain colors in print */
357
- .confidential {
437
+ .confidential,
438
+ .separator {
358
439
  background-color: var(--color-accent) !important;
359
440
  color: white !important;
360
441
  -webkit-print-color-adjust: exact !important;
@@ -366,4 +447,12 @@ table {
366
447
  -webkit-print-color-adjust: exact;
367
448
  print-color-adjust: exact;
368
449
  }
450
+
451
+
452
+ /* Remove backgrounds for better printing */
453
+ pre,
454
+ code {
455
+ background-color: transparent !important;
456
+ border: 1px solid #ccc !important;
457
+ }
369
458
  }
@@ -0,0 +1,146 @@
1
+ /* Legal Header Styles - Header Field Tracking Support */
2
+
3
+ /* Base legal header styling */
4
+ .legal-header {
5
+ display: block;
6
+ margin: 1em 0 0.5em 0;
7
+ font-weight: 600;
8
+ line-height: 1.3;
9
+ }
10
+
11
+ /* Level-specific styling */
12
+ .legal-header-level-1,
13
+ .legal-article {
14
+ font-size: 1.6em;
15
+ font-weight: bold;
16
+ color: #1a1a1a;
17
+ margin: 2em 0 1em 0;
18
+ border-bottom: 3px solid #333;
19
+ padding-bottom: 0.2em;
20
+ }
21
+
22
+ .legal-header-level-2,
23
+ .legal-section {
24
+ font-size: 1.3em;
25
+ font-weight: 600;
26
+ color: #333;
27
+ margin: 1.5em 0 0.8em 0;
28
+ border-bottom: 1px solid #666;
29
+ padding-bottom: 0.1em;
30
+ }
31
+
32
+ .legal-header-level-3,
33
+ .legal-subsection {
34
+ font-size: 1.1em;
35
+ font-weight: 500;
36
+ color: #444;
37
+ margin: 1em 0 0.5em 0;
38
+ }
39
+
40
+ .legal-header-level-4,
41
+ .legal-sub-subsection {
42
+ font-size: 1.05em;
43
+ font-weight: 500;
44
+ color: #555;
45
+ margin: 0.8em 0 0.4em 0;
46
+ }
47
+
48
+ .legal-header-level-5,
49
+ .legal-paragraph {
50
+ font-size: 1em;
51
+ font-weight: 500;
52
+ color: #666;
53
+ margin: 0.6em 0 0.3em 0;
54
+ }
55
+
56
+ /* Data attribute based styling for more specificity */
57
+ .legal-header[data-level='1'] {
58
+ /* Additional Article-level styling */
59
+ text-transform: uppercase;
60
+ letter-spacing: 0.5px;
61
+ }
62
+
63
+ .legal-header[data-level='2'] {
64
+ /* Additional Section-level styling */
65
+ font-variant: small-caps;
66
+ }
67
+
68
+ .legal-header[data-level='3'] {
69
+ /* Additional Subsection-level styling */
70
+ font-style: italic;
71
+ }
72
+
73
+ /* Hover effects for interactive documents */
74
+ .legal-header:hover {
75
+ background-color: rgba(0, 120, 215, 0.1);
76
+ cursor: pointer;
77
+ border-radius: 2px;
78
+ padding: 2px 4px;
79
+ margin: -2px -4px;
80
+ }
81
+
82
+ /* Print optimizations */
83
+ @media print {
84
+ .legal-header {
85
+ page-break-after: avoid;
86
+ page-break-inside: avoid;
87
+ }
88
+
89
+ .legal-header:hover {
90
+ background-color: transparent;
91
+ padding: 0;
92
+ margin: 1em 0 0.5em 0;
93
+ }
94
+
95
+ .legal-header-level-1,
96
+ .legal-article {
97
+ page-break-before: always;
98
+ }
99
+
100
+ .legal-header-level-1:first-child {
101
+ page-break-before: avoid;
102
+ }
103
+ }
104
+
105
+ /* Dark mode support */
106
+ @media (prefers-color-scheme: dark) {
107
+ .legal-header-level-1,
108
+ .legal-article {
109
+ color: #e6e6e6;
110
+ border-bottom-color: #ccc;
111
+ }
112
+
113
+ .legal-header-level-2,
114
+ .legal-section {
115
+ color: #ddd;
116
+ border-bottom-color: #999;
117
+ }
118
+
119
+ .legal-header-level-3,
120
+ .legal-subsection {
121
+ color: #ccc;
122
+ }
123
+
124
+ .legal-header-level-4,
125
+ .legal-sub-subsection {
126
+ color: #bbb;
127
+ }
128
+
129
+ .legal-header-level-5,
130
+ .legal-paragraph {
131
+ color: #aaa;
132
+ }
133
+ }
134
+
135
+ /* Responsive adjustments */
136
+ @media (max-width: 768px) {
137
+ .legal-header-level-1,
138
+ .legal-article {
139
+ font-size: 1.4em;
140
+ }
141
+
142
+ .legal-header-level-2,
143
+ .legal-section {
144
+ font-size: 1.2em;
145
+ }
146
+ }