slidev-theme-measurelab 0.1.0

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 (36) hide show
  1. package/README.md +132 -0
  2. package/global.css +646 -0
  3. package/layouts/cover.vue +154 -0
  4. package/layouts/default.vue +254 -0
  5. package/layouts/full-image.vue +167 -0
  6. package/layouts/quote.vue +267 -0
  7. package/layouts/section-1.vue +217 -0
  8. package/layouts/section-2.vue +217 -0
  9. package/layouts/section-3.vue +217 -0
  10. package/layouts/three-cols.vue +291 -0
  11. package/layouts/two-cols-pic.vue +276 -0
  12. package/layouts/two-cols.vue +275 -0
  13. package/package.json +54 -0
  14. package/public/background-header-circles.svg +69 -0
  15. package/public/background-illustration.svg +1 -0
  16. package/public/background-image-half.svg +52 -0
  17. package/public/contact-background.svg +80 -0
  18. package/public/contact-grid-background-flipped.svg +53 -0
  19. package/public/contact-grid-background.svg +53 -0
  20. package/public/cta-background.svg +69 -0
  21. package/public/footer-background-illustration.svg +1 -0
  22. package/public/gmpcertified.png +0 -0
  23. package/public/google-cloud-partner.png +0 -0
  24. package/public/home-hero-background.svg +63 -0
  25. package/public/home-hero.svg +79 -0
  26. package/public/marketing-analytics-services-specialization.png +0 -0
  27. package/public/measurelab-dark-logo.svg +19 -0
  28. package/public/measurelab_favicon.svg +1 -0
  29. package/public/measurelab_logo.svg +1 -0
  30. package/public/services-analytics-bg.svg +101 -0
  31. package/public/services-hero-background.svg +39 -0
  32. package/public/services-hero.svg +76 -0
  33. package/public/technology-background.svg +71 -0
  34. package/setup/unocss.ts +68 -0
  35. package/styles/base.css +209 -0
  36. package/styles/index.ts +1 -0
package/global.css ADDED
@@ -0,0 +1,646 @@
1
+ /* Import Poppins font globally */
2
+ @import url("https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700&display=swap");
3
+
4
+ @import "tailwindcss";
5
+ @import "tw-animate-css";
6
+
7
+ @custom-variant dark (&:is(.dark *));
8
+
9
+ /* Offset for fixed navbar when using anchor links */
10
+ html {
11
+ scroll-padding-top: 30px;
12
+ }
13
+
14
+ /* Target pseudo-elements for heading anchors */
15
+ h2[id]:target::before,
16
+ h3[id]:target::before {
17
+ content: "";
18
+ display: block;
19
+ height: 120px;
20
+ margin-top: -120px;
21
+ }
22
+
23
+ /* Ensure all clickable elements have proper cursor */
24
+ button:not(:disabled),
25
+ [role="button"]:not([aria-disabled="true"]),
26
+ a[href],
27
+ input[type="submit"],
28
+ input[type="button"],
29
+ input[type="reset"],
30
+ [onclick],
31
+ .cursor-pointer {
32
+ cursor: pointer;
33
+ }
34
+
35
+ /* Ensure disabled elements have proper cursor */
36
+ button:disabled,
37
+ [role="button"][aria-disabled="true"],
38
+ [disabled],
39
+ .cursor-not-allowed {
40
+ cursor: not-allowed;
41
+ }
42
+
43
+ /* Assessment Results Animations */
44
+ @keyframes fadeInUp {
45
+ from {
46
+ opacity: 0;
47
+ transform: translateY(20px);
48
+ }
49
+ to {
50
+ opacity: 1;
51
+ transform: translateY(0);
52
+ }
53
+ }
54
+
55
+ @keyframes fadeInScale {
56
+ from {
57
+ opacity: 0;
58
+ transform: scale(0.95);
59
+ }
60
+ to {
61
+ opacity: 1;
62
+ transform: scale(1);
63
+ }
64
+ }
65
+
66
+ @keyframes slideInFromLeft {
67
+ from {
68
+ opacity: 0;
69
+ transform: translateX(-20px);
70
+ }
71
+ to {
72
+ opacity: 1;
73
+ transform: translateX(0);
74
+ }
75
+ }
76
+
77
+ /* Animation utility classes */
78
+ .animate-fadeInUp {
79
+ animation: fadeInUp 0.6s ease-out forwards;
80
+ }
81
+
82
+ .animate-fadeInScale {
83
+ animation: fadeInScale 0.6s ease-out forwards;
84
+ }
85
+
86
+ .animate-slideInFromLeft {
87
+ animation: slideInFromLeft 0.6s ease-out forwards;
88
+ }
89
+
90
+ /* Stagger delays for score cards */
91
+ .animate-delay-100 {
92
+ animation-delay: 100ms;
93
+ }
94
+
95
+ .animate-delay-200 {
96
+ animation-delay: 200ms;
97
+ }
98
+
99
+ .animate-delay-300 {
100
+ animation-delay: 300ms;
101
+ }
102
+
103
+ .animate-delay-400 {
104
+ animation-delay: 400ms;
105
+ }
106
+
107
+ .animate-delay-500 {
108
+ animation-delay: 500ms;
109
+ }
110
+
111
+ .animate-delay-700 {
112
+ animation-delay: 700ms;
113
+ }
114
+
115
+ .animate-delay-1000 {
116
+ animation-delay: 1000ms;
117
+ }
118
+
119
+ /* Respect user motion preferences */
120
+ @media (prefers-reduced-motion: reduce) {
121
+ .animate-fadeInUp,
122
+ .animate-fadeInScale,
123
+ .animate-slideInFromLeft {
124
+ animation: none;
125
+ opacity: 1;
126
+ transform: none;
127
+ }
128
+ }
129
+
130
+ :root {
131
+ --background: oklch(1 0 0);
132
+ --foreground: oklch(0.1408 0.0044 285.8229);
133
+ --card: oklch(1 0 0);
134
+ --card-foreground: oklch(0.1408 0.0044 285.8229);
135
+ --popover: oklch(1 0 0);
136
+ --popover-foreground: oklch(0.1408 0.0044 285.8229);
137
+ --primary: oklch(0.7879 0.1991 139.5227);
138
+ --primary-foreground: oklch(1 0 0);
139
+ --secondary: oklch(0.9579 0.0013 106.4242);
140
+ --secondary-foreground: oklch(0.2163 0.0435 230.7774);
141
+ --muted: oklch(0.9674 0.0013 286.3752);
142
+ --muted-foreground: oklch(0.373 0.034 259.733);
143
+ --accent: oklch(0.9674 0.0013 286.3752);
144
+ --accent-foreground: oklch(0.2103 0.0059 285.8852);
145
+ --destructive: oklch(0.583 0.2387 28.4765);
146
+ --destructive-foreground: oklch(1 0 0);
147
+ --border: oklch(0.9197 0.004 286.3202);
148
+ --input: oklch(0.9197 0.004 286.3202);
149
+ --ring: oklch(0.7879 0.1991 139.5227);
150
+ --chart-1: #40faa3; /* mint green */
151
+ --chart-2: #fbbc02; /* golden yellow */
152
+ --chart-3: #7ddaee; /* sky blue */
153
+ --chart-4: #cdfe0c; /* lime yellow */
154
+ --chart-5: #f97316; /* coral orange */
155
+ --sidebar: oklch(0.9851 0 0);
156
+ --sidebar-foreground: oklch(0.1408 0.0044 285.8229);
157
+ --sidebar-primary: oklch(0.7879 0.1991 139.5227);
158
+ --sidebar-primary-foreground: oklch(0.9819 0.0181 155.8263);
159
+ --sidebar-accent: oklch(0.9674 0.0013 286.3752);
160
+ --sidebar-accent-foreground: oklch(0.2103 0.0059 285.8852);
161
+ --sidebar-border: oklch(0.9197 0.004 286.3202);
162
+ --sidebar-ring: oklch(0.7879 0.1991 139.5227);
163
+ --font-sans: Poppins, sans-serif;
164
+ --font-serif: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif;
165
+ --font-mono:
166
+ ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono",
167
+ "Courier New", monospace;
168
+ --radius: 0.65rem;
169
+ --shadow-2xs: 0 1px 3px 0px hsl(0 0% 0% / 0.05);
170
+ --shadow-xs: 0 1px 3px 0px hsl(0 0% 0% / 0.05);
171
+ --shadow-sm:
172
+ 0 1px 3px 0px hsl(0 0% 0% / 0.1), 0 1px 2px -1px hsl(0 0% 0% / 0.1);
173
+ --shadow: 0 1px 3px 0px hsl(0 0% 0% / 0.1), 0 1px 2px -1px hsl(0 0% 0% / 0.1);
174
+ --shadow-md:
175
+ 0 1px 3px 0px hsl(0 0% 0% / 0.1), 0 2px 4px -1px hsl(0 0% 0% / 0.1);
176
+ --shadow-lg:
177
+ 0 1px 3px 0px hsl(0 0% 0% / 0.1), 0 4px 6px -1px hsl(0 0% 0% / 0.1);
178
+ --shadow-xl:
179
+ 0 1px 3px 0px hsl(0 0% 0% / 0.1), 0 8px 10px -1px hsl(0 0% 0% / 0.1);
180
+ --shadow-2xl: 0 1px 3px 0px hsl(0 0% 0% / 0.25);
181
+ --tracking-normal: 0em;
182
+ --spacing: 0.25rem;
183
+ }
184
+
185
+ .dark {
186
+ /* Backgrounds */
187
+ --background: oklch(0.2307 0.044 243.7); /* #081F30 - Primary dark background */
188
+ --foreground: oklch(0.9804 0 0); /* #F9F9F9 - Light grey text */
189
+ --card: oklch(1 0 0 / 0.05); /* Subtle white overlay for hierarchy */
190
+ --card-foreground: oklch(0.9804 0 0);
191
+ --popover: oklch(0.3 0.03 243.7); /* Slightly lighter navy for popovers */
192
+ --popover-foreground: oklch(0.9804 0 0);
193
+
194
+ /* Primary (Brand Green - stays same in both modes) */
195
+ --primary: oklch(0.7879 0.1991 139.5227);
196
+ --primary-foreground: oklch(0.3804 0.1038 150.1238);
197
+
198
+ /* Interactive States */
199
+ --secondary: oklch(0.2739 0.0055 286.0326);
200
+ --secondary-foreground: oklch(0.9804 0 0);
201
+ --muted: oklch(0.2739 0.0055 286.0326);
202
+ --muted-foreground: oklch(0.7057 0.0144 286.0246);
203
+ --accent: oklch(0.2739 0.0055 286.0326);
204
+ --accent-foreground: oklch(0.9851 0 0);
205
+
206
+ /* Borders & Inputs */
207
+ --border: oklch(0.3211 0 0); /* Dark grey borders */
208
+ --input: oklch(0.3211 0 0); /* Match borders */
209
+
210
+ /* Destructive */
211
+ --destructive: oklch(0.7022 0.1892 22.2279);
212
+ --destructive-foreground: oklch(0.985 0 0);
213
+
214
+ /* Ring */
215
+ --ring: oklch(0.5296 0.1495 148.9899);
216
+
217
+ /* Charts */
218
+ --chart-1: #40faa3; /* mint green */
219
+ --chart-2: #fbbc02; /* golden yellow */
220
+ --chart-3: #7ddaee; /* sky blue */
221
+ --chart-4: #cdfe0c; /* lime yellow */
222
+ --chart-5: #f97316; /* coral orange */
223
+
224
+ /* Sidebar */
225
+ --sidebar: oklch(0.2103 0.0059 285.8852);
226
+ --sidebar-foreground: oklch(0.9851 0 0);
227
+ --sidebar-primary: oklch(0.7019 0.1577 160.4375);
228
+ --sidebar-primary-foreground: oklch(0.3935 0.0957 152.2754);
229
+ --sidebar-accent: oklch(0.2739 0.0055 286.0326);
230
+ --sidebar-accent-foreground: oklch(0.9851 0 0);
231
+ --sidebar-border: oklch(1 0 0);
232
+ --sidebar-ring: oklch(0.5296 0.1495 148.9899);
233
+ --font-sans: Poppins, sans-serif;
234
+ --font-serif: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif;
235
+ --font-mono:
236
+ ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono",
237
+ "Courier New", monospace;
238
+ --radius: 0.625rem;
239
+ --shadow-2xs: 0 1px 3px 0px hsl(0 0% 0% / 0.05);
240
+ --shadow-xs: 0 1px 3px 0px hsl(0 0% 0% / 0.05);
241
+ --shadow-sm:
242
+ 0 1px 3px 0px hsl(0 0% 0% / 0.1), 0 1px 2px -1px hsl(0 0% 0% / 0.1);
243
+ --shadow: 0 1px 3px 0px hsl(0 0% 0% / 0.1), 0 1px 2px -1px hsl(0 0% 0% / 0.1);
244
+ --shadow-md:
245
+ 0 1px 3px 0px hsl(0 0% 0% / 0.1), 0 2px 4px -1px hsl(0 0% 0% / 0.1);
246
+ --shadow-lg:
247
+ 0 1px 3px 0px hsl(0 0% 0% / 0.1), 0 4px 6px -1px hsl(0 0% 0% / 0.1);
248
+ --shadow-xl:
249
+ 0 1px 3px 0px hsl(0 0% 0% / 0.1), 0 8px 10px -1px hsl(0 0% 0% / 0.1);
250
+ --shadow-2xl: 0 1px 3px 0px hsl(0 0% 0% / 0.25);
251
+ }
252
+
253
+ @theme inline {
254
+ --color-background: var(--background);
255
+ --color-foreground: var(--foreground);
256
+ --color-card: var(--card);
257
+ --color-card-foreground: var(--card-foreground);
258
+ --color-popover: var(--popover);
259
+ --color-popover-foreground: var(--popover-foreground);
260
+ --color-primary: var(--primary);
261
+ --color-primary-foreground: var(--primary-foreground);
262
+ --color-secondary: var(--secondary);
263
+ --color-secondary-foreground: var(--secondary-foreground);
264
+ --color-muted: var(--muted);
265
+ --color-muted-foreground: var(--muted-foreground);
266
+ --color-accent: var(--accent);
267
+ --color-accent-foreground: var(--accent-foreground);
268
+ --color-destructive: var(--destructive);
269
+ --color-destructive-foreground: var(--destructive-foreground);
270
+ --color-border: var(--border);
271
+ --color-input: var(--input);
272
+ --color-ring: var(--ring);
273
+ --color-chart-1: var(--chart-1);
274
+ --color-chart-2: var(--chart-2);
275
+ --color-chart-3: var(--chart-3);
276
+ --color-chart-4: var(--chart-4);
277
+ --color-chart-5: var(--chart-5);
278
+ --color-sidebar: var(--sidebar);
279
+ --color-sidebar-foreground: var(--sidebar-foreground);
280
+ --color-sidebar-primary: var(--sidebar-primary);
281
+ --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
282
+ --color-sidebar-accent: var(--sidebar-accent);
283
+ --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
284
+ --color-sidebar-border: var(--sidebar-border);
285
+ --color-sidebar-ring: var(--sidebar-ring);
286
+
287
+ --font-sans: var(--font-sans);
288
+ --font-mono: var(--font-mono);
289
+ --font-serif: var(--font-serif);
290
+
291
+ --radius-sm: calc(var(--radius) - 4px);
292
+ --radius-md: calc(var(--radius) - 2px);
293
+ --radius-lg: var(--radius);
294
+ --radius-xl: calc(var(--radius) + 4px);
295
+
296
+ --shadow-2xs: var(--shadow-2xs);
297
+ --shadow-xs: var(--shadow-xs);
298
+ --shadow-sm: var(--shadow-sm);
299
+ --shadow: var(--shadow);
300
+ --shadow-md: var(--shadow-md);
301
+ --shadow-lg: var(--shadow-lg);
302
+ --shadow-xl: var(--shadow-xl);
303
+ --shadow-2xl: var(--shadow-2xl);
304
+ }
305
+
306
+ /* 4. Layer Definitions: All custom styles go in layers. */
307
+ @layer base {
308
+ * {
309
+ @apply border-border outline-ring/50;
310
+ }
311
+
312
+ body {
313
+ @apply bg-background text-foreground;
314
+ font-family: "Poppins", sans-serif;
315
+ font-weight: 300;
316
+ letter-spacing: var(--tracking-normal);
317
+ }
318
+
319
+ .container {
320
+ @apply mx-auto w-full max-w-7xl px-4 sm:px-6 lg:px-8;
321
+ }
322
+
323
+ [data-radix-navigation-menu-content] {
324
+ min-width: 600px !important;
325
+ padding: 16px !important;
326
+ border-radius: 8px !important;
327
+ box-shadow:
328
+ 0 10px 38px -10px rgba(22, 23, 24, 0.35),
329
+ 0 10px 20px -15px rgba(22, 23, 24, 0.2) !important;
330
+ }
331
+
332
+ .submenu-item {
333
+ padding: 12px !important;
334
+ margin-bottom: 4px !important;
335
+ border-radius: 6px !important;
336
+ display: flex !important;
337
+ gap: 12px !important;
338
+ }
339
+
340
+ [data-radix-navigation-menu-content] > * {
341
+ width: 100% !important;
342
+ }
343
+ }
344
+
345
+ @layer components {
346
+ /* Active Nav Link Styles */
347
+ .active-nav-link {
348
+ position: relative;
349
+ color: var(--foreground) !important;
350
+ background-color: transparent !important;
351
+ }
352
+
353
+ .active-nav-link::after {
354
+ content: "";
355
+ position: absolute;
356
+ bottom: 0.25rem;
357
+ left: 0;
358
+ width: 100%;
359
+ height: 2px;
360
+ background-color: #22c55e;
361
+ border-radius: 9999px;
362
+ }
363
+
364
+ .active-nav-link[data-state="active"],
365
+ .active-nav-link[data-state="open"],
366
+ .active-nav-link:focus {
367
+ background-color: transparent !important;
368
+ color: var(--foreground) !important;
369
+ }
370
+
371
+ .active-nav-link:hover {
372
+ background-color: transparent !important;
373
+ }
374
+
375
+ .group.active-nav-link[data-state="closed"] > span.NavigationMenuTrigger,
376
+ .group.active-nav-link[data-state="open"] > span.NavigationMenuTrigger {
377
+ color: var(--foreground) !important;
378
+ }
379
+
380
+ /* Prose Styles */
381
+ .prose {
382
+ color: var(--foreground);
383
+ font-size: 1.125rem;
384
+ line-height: 1.5;
385
+ }
386
+
387
+ .prose h1,
388
+ .prose h2,
389
+ .prose h3,
390
+ .prose h4,
391
+ .prose h5,
392
+ .prose h6 {
393
+ @apply font-medium;
394
+ color: var(--foreground);
395
+ margin-top: 2em;
396
+ margin-bottom: 0.75em;
397
+ line-height: 1.3;
398
+ }
399
+
400
+ .prose h1 {
401
+ font-size: 1.75rem;
402
+ }
403
+ .prose h2 {
404
+ font-size: 1.5rem;
405
+ margin-top: 1.75em;
406
+ }
407
+ .prose h3 {
408
+ font-size: 1.25rem;
409
+ margin-top: 1.5em;
410
+ }
411
+ .prose h4 {
412
+ font-size: 1.125rem;
413
+ margin-top: 1.25em;
414
+ }
415
+ .prose p {
416
+ margin-top: 1.25em;
417
+ margin-bottom: 1.5em;
418
+ }
419
+ .prose ol,
420
+ .prose ul {
421
+ margin-top: 1.25em;
422
+ margin-bottom: 1.5em;
423
+ padding-left: 1.5rem;
424
+ }
425
+
426
+ .prose ul {
427
+ list-style-type: disc;
428
+ }
429
+
430
+ .prose ol {
431
+ list-style-type: decimal;
432
+ }
433
+
434
+ .prose li {
435
+ margin-top: 0.5em;
436
+ margin-bottom: 0.5em;
437
+ list-style-position: outside;
438
+ }
439
+
440
+ .prose strong,
441
+ .prose b {
442
+ font-weight: 500;
443
+ color: var(--foreground);
444
+ }
445
+
446
+ .prose blockquote {
447
+ @apply italic;
448
+ border-left: 4px solid var(--border);
449
+ padding-left: 1rem;
450
+ padding-top: 0.25rem;
451
+ padding-bottom: 0.25rem;
452
+ color: var(--muted-foreground);
453
+ margin-top: 1.5rem;
454
+ margin-bottom: 1.5rem;
455
+ }
456
+
457
+ .prose table {
458
+ @apply w-full text-left border-collapse;
459
+ margin-top: 2rem;
460
+ margin-bottom: 2rem;
461
+ }
462
+
463
+ .prose thead th {
464
+ @apply font-semibold;
465
+ background-color: var(--muted);
466
+ }
467
+
468
+ .prose th,
469
+ .prose td {
470
+ border-bottom: 1px solid var(--border);
471
+ padding: 0.5rem 1rem;
472
+ }
473
+
474
+ .prose img {
475
+ @apply block mx-auto;
476
+ max-width: 100%;
477
+ height: auto;
478
+ margin-top: 2rem;
479
+ margin-bottom: 2rem;
480
+ border-radius: var(--radius-lg);
481
+ box-shadow: var(--shadow-md);
482
+ }
483
+
484
+ .prose a {
485
+ color: var(--foreground) !important;
486
+ text-decoration: underline !important;
487
+ text-decoration-color: var(--primary) !important;
488
+ text-decoration-thickness: 2px !important;
489
+ text-underline-offset: 0.2em !important;
490
+ border-bottom: none !important; /* Remove any border-bottom that might create double underlines */
491
+ }
492
+
493
+ .prose a:hover {
494
+ text-decoration-color: oklch(0.6879 0.1791 139.5227) !important;
495
+ }
496
+
497
+ .prose pre {
498
+ background-color: oklch(0.1408 0.0044 285.8229);
499
+ color: oklch(0.9851 0 0);
500
+ padding: 1rem;
501
+ border-radius: var(--radius-md);
502
+ overflow-x: auto;
503
+ font-size: 0.875rem;
504
+ margin-top: 1.5rem;
505
+ margin-bottom: 1.5rem;
506
+ font-family: var(--font-mono);
507
+ border: 1px solid oklch(0.2103 0.0059 285.8852);
508
+ }
509
+
510
+ .prose pre code {
511
+ color: var(--primary);
512
+ background-color: transparent;
513
+ padding: 0;
514
+ }
515
+
516
+ .prose code {
517
+ color: var(--primary);
518
+ background-color: oklch(0.1408 0.0044 285.8229);
519
+ padding: 0.125rem 0.25rem;
520
+ border-radius: var(--radius-sm);
521
+ font-family: var(--font-mono);
522
+ }
523
+
524
+ .prose iframe {
525
+ width: 100%;
526
+ height: 16rem;
527
+ border-radius: var(--radius-lg);
528
+ margin-top: 2rem;
529
+ margin-bottom: 2rem;
530
+ }
531
+
532
+ .prose iframe[src*="youtube"],
533
+ .prose iframe[src*="youtu.be"] {
534
+ height: 28rem;
535
+ }
536
+
537
+ /* Services How To Buy column dividers */
538
+ @media (min-width: 768px) {
539
+ .services-divider::before,
540
+ .services-divider::after {
541
+ content: "";
542
+ position: absolute;
543
+ top: 4.5rem; /* Start from headline level (after icon + margin) */
544
+ bottom: 0;
545
+ width: 1px;
546
+ background-color: var(--border);
547
+ }
548
+
549
+ .services-divider::before {
550
+ left: -1.5rem; /* Exactly half of md:gap-12 (3rem ÷ 2 = 1.5rem) */
551
+ }
552
+
553
+ .services-divider::after {
554
+ right: -1.5rem; /* Exactly half of md:gap-12 (3rem ÷ 2 = 1.5rem) */
555
+ }
556
+ }
557
+
558
+ @media (min-width: 1024px) {
559
+ .services-divider::before {
560
+ left: -2rem; /* Exactly half of lg:gap-16 (4rem ÷ 2 = 2rem) */
561
+ }
562
+
563
+ .services-divider::after {
564
+ right: -2rem; /* Exactly half of lg:gap-16 (4rem ÷ 2 = 2rem) */
565
+ }
566
+ }
567
+ }
568
+
569
+ /* Print Styles for White Paper */
570
+ @media print {
571
+ /* Hide non-essential elements */
572
+ .white-paper-toc-sidebar,
573
+ .white-paper-mobile-toc,
574
+ .white-paper-cta,
575
+ .white-paper-pdf-button,
576
+ header,
577
+ footer,
578
+ nav {
579
+ display: none !important;
580
+ }
581
+
582
+ /* Reset backgrounds for printing */
583
+ body,
584
+ .bg-background {
585
+ background: white !important;
586
+ color: black !important;
587
+ }
588
+
589
+ /* Ensure content is print-friendly */
590
+ .white-paper-content {
591
+ max-width: 100% !important;
592
+ padding: 0 !important;
593
+ margin: 0 !important;
594
+ }
595
+
596
+ /* Page break management */
597
+ h1,
598
+ h2,
599
+ h3 {
600
+ break-after: avoid;
601
+ page-break-after: avoid;
602
+ }
603
+
604
+ img,
605
+ figure,
606
+ table {
607
+ break-inside: avoid;
608
+ page-break-inside: avoid;
609
+ }
610
+
611
+ /* Ensure links show their URLs */
612
+ .prose a[href]::after {
613
+ content: " (" attr(href) ")";
614
+ font-size: 0.8em;
615
+ color: #666;
616
+ }
617
+
618
+ /* Hide external link indicators in print */
619
+ .prose a[href^="http"]::after {
620
+ content: none;
621
+ }
622
+
623
+ /* Set proper margins */
624
+ @page {
625
+ margin: 2cm;
626
+ }
627
+ }
628
+
629
+ /* Recharts styling - ensure Poppins font and correct colours */
630
+ .recharts-text,
631
+ .recharts-cartesian-axis-tick text,
632
+ .recharts-label {
633
+ font-family: var(--font-sans) !important;
634
+ fill: var(--foreground) !important;
635
+ }
636
+
637
+ .recharts-legend-item-text {
638
+ font-family: var(--font-sans) !important;
639
+ fill: var(--foreground) !important;
640
+ color: var(--foreground) !important;
641
+ }
642
+
643
+ /* Dark mode chart tooltip cursor - use primary green tint */
644
+ .dark .recharts-rectangle.recharts-tooltip-cursor {
645
+ fill: oklch(0.7879 0.1991 139.5227 / 0.1) !important;
646
+ }