@prosophia/lab-classic 0.0.3 → 0.0.4

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.
@@ -0,0 +1,879 @@
1
+ /* HomePage.module.css - Sciences Template (Verdant Edition) */
2
+
3
+ .pageWrapper {
4
+ padding-top: var(--header-height, 80px);
5
+ }
6
+
7
+ /* ===================================
8
+ HERO SECTION - Verdant Full Viewport
9
+ =================================== */
10
+
11
+ .heroSection {
12
+ min-height: calc(100vh - var(--header-height, 80px));
13
+ display: flex;
14
+ align-items: center;
15
+ position: relative;
16
+ overflow: hidden;
17
+ padding: var(--space-3xl, 6rem) var(--space-xl, 3rem);
18
+ }
19
+
20
+ /* Hero Background */
21
+ .heroSection::before {
22
+ content: '';
23
+ position: absolute;
24
+ inset: 0;
25
+ z-index: 0;
26
+ }
27
+
28
+ /* Light mode hero background - uses theme tint color */
29
+ :global(body:not(.dark-mode)) .heroSection::before,
30
+ :global(.light-mode) .heroSection::before {
31
+ background: linear-gradient(135deg,
32
+ rgba(250, 251, 251, 0.9) 0%,
33
+ var(--light-bg-tint) 50%,
34
+ rgba(250, 251, 251, 0.9) 100%);
35
+ }
36
+
37
+ /* Dark mode hero background - uses theme dark bg colors */
38
+ :global(.dark-mode) .heroSection::before,
39
+ :global(.dark) .heroSection::before {
40
+ background: linear-gradient(135deg,
41
+ var(--dark-bg-primary) 0%,
42
+ var(--dark-bg-secondary) 50%,
43
+ var(--dark-bg-primary) 100%);
44
+ }
45
+
46
+ .heroContainer {
47
+ max-width: 1400px;
48
+ margin: 0 auto;
49
+ display: grid;
50
+ grid-template-columns: 1fr;
51
+ gap: var(--space-3xl, 6rem);
52
+ align-items: center;
53
+ position: relative;
54
+ z-index: 1;
55
+ width: 100%;
56
+ }
57
+
58
+ @media (min-width: 1024px) {
59
+ .heroContainer {
60
+ grid-template-columns: 1fr 1fr;
61
+ }
62
+ }
63
+
64
+ .heroContent {
65
+ text-align: center;
66
+ }
67
+
68
+ @media (min-width: 1024px) {
69
+ .heroContent {
70
+ text-align: left;
71
+ }
72
+ }
73
+
74
+ /* Verdant Hero Label */
75
+ .heroTagline {
76
+ display: inline-block;
77
+ font-size: 0.75rem;
78
+ font-weight: 600;
79
+ letter-spacing: 0.15em;
80
+ text-transform: uppercase;
81
+ margin-bottom: var(--space-sm, 1rem);
82
+ }
83
+
84
+ :global(body:not(.dark-mode)) .heroTagline,
85
+ :global(.light-mode) .heroTagline {
86
+ color: var(--light-text-muted, #7F878B);
87
+ }
88
+
89
+ :global(.dark-mode) .heroTagline,
90
+ :global(.dark) .heroTagline {
91
+ color: var(--dark-text-muted, #5C6366);
92
+ }
93
+
94
+ /* Verdant Hero Title */
95
+ .heroHeading {
96
+ font-size: clamp(3rem, 6vw, 5.5rem);
97
+ font-weight: 300;
98
+ line-height: 1.1;
99
+ letter-spacing: -0.02em;
100
+ margin-bottom: var(--space-md, 1.5rem);
101
+ }
102
+
103
+ :global(body:not(.dark-mode)) .heroHeading,
104
+ :global(.light-mode) .heroHeading {
105
+ color: var(--light-text-primary, #0A1810);
106
+ }
107
+
108
+ :global(.dark-mode) .heroHeading,
109
+ :global(.dark) .heroHeading {
110
+ color: var(--dark-text-primary, #E8F9ED);
111
+ }
112
+
113
+ .heroHeadingAccent {
114
+ color: var(--accent-tertiary, #5CB87A);
115
+ }
116
+
117
+ .heroHeadingAccent::after {
118
+ display: none;
119
+ }
120
+
121
+ /* Verdant Hero Subtitle */
122
+ .heroDescription {
123
+ font-size: 1.25rem;
124
+ line-height: 1.6;
125
+ margin-bottom: var(--space-xl, 3rem);
126
+ max-width: 90%;
127
+ }
128
+
129
+ :global(body:not(.dark-mode)) .heroDescription,
130
+ :global(.light-mode) .heroDescription {
131
+ color: var(--light-text-muted, #7F878B);
132
+ }
133
+
134
+ :global(.dark-mode) .heroDescription,
135
+ :global(.dark) .heroDescription {
136
+ color: var(--dark-text-muted, #5C6366);
137
+ }
138
+
139
+ @media (min-width: 1024px) {
140
+ .heroDescription {
141
+ margin-left: 0;
142
+ margin-right: 0;
143
+ }
144
+ }
145
+
146
+ @media (max-width: 1023px) {
147
+ .heroDescription {
148
+ margin-left: auto;
149
+ margin-right: auto;
150
+ }
151
+ }
152
+
153
+ .heroCtas {
154
+ display: flex;
155
+ flex-direction: column;
156
+ gap: var(--space-sm, 1rem);
157
+ }
158
+
159
+ @media (min-width: 480px) {
160
+ .heroCtas {
161
+ flex-direction: row;
162
+ justify-content: center;
163
+ }
164
+ }
165
+
166
+ @media (min-width: 1024px) {
167
+ .heroCtas {
168
+ justify-content: flex-start;
169
+ }
170
+ }
171
+
172
+ /* Verdant Primary Button */
173
+ .heroPrimaryCta {
174
+ display: inline-flex;
175
+ align-items: center;
176
+ justify-content: center;
177
+ gap: 0.5rem;
178
+ padding: 0.75rem 1.75rem;
179
+ background: linear-gradient(135deg, var(--accent-primary, #2A6847), var(--accent-secondary, #3A8F62));
180
+ color: white;
181
+ border-radius: var(--radius-md, 12px);
182
+ font-weight: 500;
183
+ font-size: 0.9375rem;
184
+ text-decoration: none;
185
+ transition: all var(--transition-base);
186
+ box-shadow: 0 4px 16px rgba(42, 104, 71, 0.3);
187
+ }
188
+
189
+ .heroPrimaryCta:hover {
190
+ transform: translateY(-2px);
191
+ box-shadow: 0 6px 24px rgba(42, 104, 71, 0.4);
192
+ }
193
+
194
+ /* Verdant Secondary Button */
195
+ .heroSecondaryCta {
196
+ display: inline-flex;
197
+ align-items: center;
198
+ justify-content: center;
199
+ gap: 0.5rem;
200
+ padding: 0.75rem 1.75rem;
201
+ border: 1px solid var(--accent-tertiary, #5CB87A);
202
+ border-radius: var(--radius-md, 12px);
203
+ font-weight: 500;
204
+ font-size: 0.9375rem;
205
+ text-decoration: none;
206
+ transition: all var(--transition-base);
207
+ backdrop-filter: blur(8px);
208
+ }
209
+
210
+ :global(body:not(.dark-mode)) .heroSecondaryCta,
211
+ :global(.light-mode) .heroSecondaryCta {
212
+ background: rgba(42, 104, 71, 0.08);
213
+ color: var(--accent-primary, #2A6847);
214
+ }
215
+
216
+ :global(.dark-mode) .heroSecondaryCta,
217
+ :global(.dark) .heroSecondaryCta {
218
+ background: rgba(92, 184, 122, 0.1);
219
+ color: var(--accent-tertiary, #5CB87A);
220
+ }
221
+
222
+ .heroSecondaryCta:hover {
223
+ transform: translateY(-1px);
224
+ }
225
+
226
+ /* Verdant Hero Image - Glass Card Effect */
227
+ .heroImageWrapper {
228
+ position: relative;
229
+ border-radius: var(--radius-2xl, 24px);
230
+ overflow: hidden;
231
+ box-shadow: 0 20px 60px rgba(10, 24, 16, 0.3);
232
+ }
233
+
234
+ .heroImage {
235
+ width: 100%;
236
+ height: auto;
237
+ display: block;
238
+ transition: transform var(--transition-slow);
239
+ }
240
+
241
+ .heroImageWrapper:hover .heroImage {
242
+ transform: scale(1.02);
243
+ }
244
+
245
+ .heroImageOverlay {
246
+ display: none;
247
+ }
248
+
249
+ /* ===================================
250
+ STATS SECTION
251
+ =================================== */
252
+
253
+ .statsSection {
254
+ background: var(--color-background-card);
255
+ border-top: 1px solid var(--color-border-light);
256
+ border-bottom: 1px solid var(--color-border-light);
257
+ padding: var(--spacing-3xl) var(--spacing-lg);
258
+ }
259
+
260
+ .statsContainer {
261
+ max-width: var(--max-width-content);
262
+ margin: 0 auto;
263
+ display: grid;
264
+ grid-template-columns: repeat(2, 1fr);
265
+ gap: var(--spacing-2xl);
266
+ }
267
+
268
+ @media (min-width: 768px) {
269
+ .statsContainer {
270
+ grid-template-columns: repeat(4, 1fr);
271
+ gap: var(--spacing-3xl);
272
+ }
273
+ }
274
+
275
+ .statItem {
276
+ text-align: center;
277
+ padding: var(--spacing-lg);
278
+ }
279
+
280
+ .statValue {
281
+ display: block;
282
+ font-family: var(--font-heading);
283
+ font-size: var(--font-size-4xl);
284
+ font-weight: var(--font-weight-bold);
285
+ color: var(--color-text-accent);
286
+ line-height: 1;
287
+ margin-bottom: var(--spacing-sm);
288
+ }
289
+
290
+ @media (min-width: 768px) {
291
+ .statValue {
292
+ font-size: var(--font-size-5xl);
293
+ }
294
+ }
295
+
296
+ .statLabel {
297
+ font-size: var(--font-size-sm);
298
+ color: var(--color-text-tertiary);
299
+ text-transform: uppercase;
300
+ letter-spacing: 0.5px;
301
+ font-weight: var(--font-weight-medium);
302
+ }
303
+
304
+ /* ===================================
305
+ SHARED SECTION STYLES
306
+ =================================== */
307
+
308
+ .sectionContainer {
309
+ max-width: var(--max-width-content);
310
+ margin: 0 auto;
311
+ padding: 0 var(--spacing-lg);
312
+ }
313
+
314
+ .sectionHeader {
315
+ text-align: center;
316
+ margin-bottom: var(--spacing-4xl);
317
+ }
318
+
319
+ .sectionTitle {
320
+ font-family: var(--font-heading);
321
+ font-size: var(--font-size-4xl);
322
+ font-weight: var(--font-weight-bold);
323
+ color: var(--color-text-primary);
324
+ margin-bottom: var(--spacing-lg);
325
+ position: relative;
326
+ display: inline-block;
327
+ }
328
+
329
+ .sectionTitle::after {
330
+ content: '';
331
+ position: absolute;
332
+ bottom: -8px;
333
+ left: 50%;
334
+ transform: translateX(-50%);
335
+ width: 60px;
336
+ height: 3px;
337
+ background: var(--gradient-primary);
338
+ border-radius: var(--border-radius-full);
339
+ }
340
+
341
+ .sectionSubtitle {
342
+ font-size: var(--font-size-lg);
343
+ color: var(--color-text-secondary);
344
+ line-height: var(--line-height-relaxed);
345
+ max-width: 600px;
346
+ margin: var(--spacing-xl) auto 0;
347
+ }
348
+
349
+ .sectionCta {
350
+ text-align: center;
351
+ margin-top: var(--spacing-3xl);
352
+ }
353
+
354
+ .secondaryCta {
355
+ display: inline-flex;
356
+ align-items: center;
357
+ gap: var(--spacing-sm);
358
+ color: var(--color-text-accent);
359
+ font-weight: var(--font-weight-semibold);
360
+ font-size: var(--font-size-base);
361
+ text-decoration: none;
362
+ padding: var(--spacing-md) var(--spacing-xl);
363
+ border: 2px solid var(--color-border-accent);
364
+ border-radius: var(--border-radius-lg);
365
+ transition: all var(--transition-base);
366
+ }
367
+
368
+ .secondaryCta:hover {
369
+ background: var(--color-brand-primary);
370
+ color: var(--color-text-inverse);
371
+ transform: translateY(-2px);
372
+ box-shadow: var(--shadow-accent);
373
+ }
374
+
375
+ /* ===================================
376
+ RESEARCH AREAS SECTION - Verdant Glass Cards
377
+ =================================== */
378
+
379
+ .researchSection {
380
+ padding: var(--space-3xl, 6rem) var(--space-xl, 3rem);
381
+ }
382
+
383
+ .researchGrid {
384
+ display: grid;
385
+ grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
386
+ gap: var(--space-lg, 2rem);
387
+ }
388
+
389
+ /* Verdant Glass Research Card */
390
+ .researchCard {
391
+ backdrop-filter: blur(20px) saturate(180%);
392
+ -webkit-backdrop-filter: blur(20px) saturate(180%);
393
+ border-radius: var(--radius-xl, 20px);
394
+ padding: var(--space-xl, 3rem);
395
+ transition: all var(--transition-slow);
396
+ position: relative;
397
+ overflow: hidden;
398
+ cursor: pointer;
399
+ }
400
+
401
+ /* Light mode research card */
402
+ :global(body:not(.dark-mode)) .researchCard,
403
+ :global(.light-mode) .researchCard {
404
+ background: rgba(255, 255, 255, 0.7);
405
+ border: 1px solid rgba(21, 48, 33, 0.08);
406
+ box-shadow: 0 8px 32px rgba(10, 24, 16, 0.08);
407
+ }
408
+
409
+ /* Dark mode research card - uses theme bg colors */
410
+ :global(.dark-mode) .researchCard,
411
+ :global(.dark) .researchCard {
412
+ background: var(--dark-bg-tertiary);
413
+ border: 1px solid rgba(var(--accent-primary-rgb, 139, 218, 163), 0.12);
414
+ box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
415
+ }
416
+
417
+ .researchCard::before {
418
+ display: none;
419
+ }
420
+
421
+ .researchCard::after {
422
+ display: none;
423
+ }
424
+
425
+ .researchCard:hover {
426
+ transform: translateY(-8px);
427
+ }
428
+
429
+ :global(body:not(.dark-mode)) .researchCard:hover,
430
+ :global(.light-mode) .researchCard:hover {
431
+ box-shadow: 0 20px 60px rgba(10, 24, 16, 0.15);
432
+ border-color: rgba(42, 104, 71, 0.25);
433
+ }
434
+
435
+ :global(.dark-mode) .researchCard:hover,
436
+ :global(.dark) .researchCard:hover {
437
+ box-shadow: 0 20px 60px rgba(10, 24, 16, 0.4);
438
+ border-color: rgba(139, 218, 163, 0.25);
439
+ }
440
+
441
+ .researchIconWrapper {
442
+ width: 56px;
443
+ height: 56px;
444
+ border-radius: var(--radius-lg, 16px);
445
+ display: flex;
446
+ align-items: center;
447
+ justify-content: center;
448
+ margin-bottom: var(--space-md, 1.5rem);
449
+ transition: all var(--transition-base);
450
+ }
451
+
452
+ :global(body:not(.dark-mode)) .researchIconWrapper,
453
+ :global(.light-mode) .researchIconWrapper {
454
+ background: rgba(42, 104, 71, 0.1);
455
+ color: var(--accent-primary, #2A6847);
456
+ }
457
+
458
+ :global(.dark-mode) .researchIconWrapper,
459
+ :global(.dark) .researchIconWrapper {
460
+ background: rgba(92, 184, 122, 0.15);
461
+ color: var(--accent-tertiary, #5CB87A);
462
+ }
463
+
464
+ .researchCard:hover .researchIconWrapper {
465
+ background: linear-gradient(135deg, var(--accent-primary, #2A6847), var(--accent-secondary, #3A8F62));
466
+ color: white;
467
+ transform: scale(1.05);
468
+ }
469
+
470
+ .researchCardTitle {
471
+ font-size: 1.25rem;
472
+ font-weight: 600;
473
+ margin-bottom: var(--space-sm, 1rem);
474
+ transition: color var(--transition-base);
475
+ }
476
+
477
+ .researchCard:hover .researchCardTitle {
478
+ color: var(--accent-tertiary, #5CB87A);
479
+ }
480
+
481
+ .researchCardDescription {
482
+ font-size: 0.9375rem;
483
+ line-height: 1.6;
484
+ }
485
+
486
+ :global(body:not(.dark-mode)) .researchCardDescription,
487
+ :global(.light-mode) .researchCardDescription {
488
+ color: var(--light-text-muted, #7F878B);
489
+ }
490
+
491
+ :global(.dark-mode) .researchCardDescription,
492
+ :global(.dark) .researchCardDescription {
493
+ color: var(--dark-text-muted, #5C6366);
494
+ }
495
+
496
+ /* ===================================
497
+ PUBLICATIONS SECTION
498
+ =================================== */
499
+
500
+ .publicationsSection {
501
+ padding: var(--spacing-5xl) var(--spacing-lg);
502
+ background: var(--color-background-secondary);
503
+ }
504
+
505
+ .publicationsList {
506
+ display: flex;
507
+ flex-direction: column;
508
+ gap: var(--spacing-md);
509
+ max-width: 900px;
510
+ margin: 0 auto;
511
+ }
512
+
513
+ .publicationItem {
514
+ display: flex;
515
+ align-items: center;
516
+ justify-content: space-between;
517
+ gap: var(--spacing-xl);
518
+ padding: var(--spacing-xl);
519
+ background: var(--color-background-card);
520
+ border: 1px solid var(--color-border-light);
521
+ border-radius: var(--border-radius-lg);
522
+ text-decoration: none;
523
+ transition: all var(--transition-slow);
524
+ border-left: 3px solid transparent;
525
+ position: relative;
526
+ overflow: hidden;
527
+ }
528
+
529
+ .publicationItem::after {
530
+ content: '';
531
+ position: absolute;
532
+ inset: 0;
533
+ background: var(--gradient-card-hover);
534
+ opacity: 0;
535
+ transition: opacity var(--transition-base);
536
+ pointer-events: none;
537
+ }
538
+
539
+ .publicationItem:hover {
540
+ border-left-color: var(--color-border-accent);
541
+ box-shadow: var(--shadow-lg);
542
+ transform: translateX(8px);
543
+ }
544
+
545
+ .publicationItem:hover::after {
546
+ opacity: 1;
547
+ }
548
+
549
+ .publicationContent {
550
+ flex: 1;
551
+ min-width: 0;
552
+ }
553
+
554
+ .publicationTitle {
555
+ font-family: var(--font-heading);
556
+ font-size: var(--font-size-lg);
557
+ font-weight: var(--font-weight-semibold);
558
+ color: var(--color-text-primary);
559
+ margin-bottom: var(--spacing-sm);
560
+ line-height: var(--line-height-snug);
561
+ transition: color var(--transition-fast);
562
+ }
563
+
564
+ .publicationItem:hover .publicationTitle {
565
+ color: var(--color-text-accent);
566
+ }
567
+
568
+ .publicationAuthors {
569
+ font-size: var(--font-size-sm);
570
+ color: var(--color-text-secondary);
571
+ margin-bottom: var(--spacing-xs);
572
+ }
573
+
574
+ .publicationMeta {
575
+ display: flex;
576
+ align-items: center;
577
+ gap: var(--spacing-lg);
578
+ font-size: var(--font-size-sm);
579
+ color: var(--color-text-tertiary);
580
+ }
581
+
582
+ .publicationJournal {
583
+ font-style: italic;
584
+ }
585
+
586
+ .publicationDate {
587
+ display: flex;
588
+ align-items: center;
589
+ gap: var(--spacing-xs);
590
+ }
591
+
592
+ .publicationArrow {
593
+ flex-shrink: 0;
594
+ color: var(--color-text-tertiary);
595
+ transition: all var(--transition-base);
596
+ }
597
+
598
+ .publicationItem:hover .publicationArrow {
599
+ color: var(--color-text-accent);
600
+ transform: translateX(4px);
601
+ }
602
+
603
+ /* ===================================
604
+ NEWS SECTION - Verdant Glass Cards
605
+ =================================== */
606
+
607
+ .newsSection {
608
+ padding: var(--space-3xl, 6rem) var(--space-xl, 3rem);
609
+ }
610
+
611
+ .newsGrid {
612
+ display: grid;
613
+ grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
614
+ gap: var(--space-lg, 2rem);
615
+ }
616
+
617
+ /* Verdant Glass News Card */
618
+ .newsCard {
619
+ backdrop-filter: blur(20px) saturate(180%);
620
+ -webkit-backdrop-filter: blur(20px) saturate(180%);
621
+ border-radius: var(--radius-xl, 20px);
622
+ overflow: hidden;
623
+ text-decoration: none;
624
+ transition: all var(--transition-slow);
625
+ display: flex;
626
+ flex-direction: column;
627
+ position: relative;
628
+ }
629
+
630
+ /* Light mode news card */
631
+ :global(body:not(.dark-mode)) .newsCard,
632
+ :global(.light-mode) .newsCard {
633
+ background: rgba(255, 255, 255, 0.7);
634
+ border: 1px solid rgba(21, 48, 33, 0.08);
635
+ box-shadow: 0 8px 32px rgba(10, 24, 16, 0.08);
636
+ }
637
+
638
+ /* Dark mode news card - uses theme bg colors */
639
+ :global(.dark-mode) .newsCard,
640
+ :global(.dark) .newsCard {
641
+ background: var(--dark-bg-tertiary);
642
+ border: 1px solid rgba(var(--accent-primary-rgb, 139, 218, 163), 0.12);
643
+ box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
644
+ }
645
+
646
+ .newsCard::after {
647
+ display: none;
648
+ }
649
+
650
+ .newsCard:hover {
651
+ transform: translateY(-8px);
652
+ }
653
+
654
+ :global(body:not(.dark-mode)) .newsCard:hover,
655
+ :global(.light-mode) .newsCard:hover {
656
+ box-shadow: 0 20px 60px rgba(10, 24, 16, 0.15);
657
+ border-color: rgba(42, 104, 71, 0.25);
658
+ }
659
+
660
+ :global(.dark-mode) .newsCard:hover,
661
+ :global(.dark) .newsCard:hover {
662
+ box-shadow: 0 20px 60px rgba(10, 24, 16, 0.4);
663
+ border-color: rgba(139, 218, 163, 0.25);
664
+ }
665
+
666
+ .newsImageWrapper {
667
+ position: relative;
668
+ aspect-ratio: 16 / 9;
669
+ overflow: hidden;
670
+ }
671
+
672
+ .newsImage {
673
+ width: 100%;
674
+ height: 100%;
675
+ object-fit: cover;
676
+ transition: transform var(--transition-slow);
677
+ }
678
+
679
+ .newsCard:hover .newsImage {
680
+ transform: scale(1.08);
681
+ }
682
+
683
+ .newsContent {
684
+ padding: var(--space-lg, 2rem);
685
+ display: flex;
686
+ flex-direction: column;
687
+ flex: 1;
688
+ }
689
+
690
+ .newsDate {
691
+ display: inline-flex;
692
+ align-items: center;
693
+ gap: 0.25rem;
694
+ font-size: 0.75rem;
695
+ font-weight: 600;
696
+ letter-spacing: 0.1em;
697
+ text-transform: uppercase;
698
+ margin-bottom: var(--space-xs, 0.5rem);
699
+ color: var(--accent-tertiary, #5CB87A);
700
+ }
701
+
702
+ .newsTitle {
703
+ font-size: 1.25rem;
704
+ font-weight: 600;
705
+ line-height: 1.4;
706
+ margin-bottom: var(--space-sm, 1rem);
707
+ transition: color var(--transition-base);
708
+ }
709
+
710
+ .newsCard:hover .newsTitle {
711
+ color: var(--accent-tertiary, #5CB87A);
712
+ }
713
+
714
+ .newsSummary {
715
+ font-size: 0.9375rem;
716
+ line-height: 1.6;
717
+ flex: 1;
718
+ margin-bottom: var(--space-md, 1.5rem);
719
+ display: -webkit-box;
720
+ -webkit-line-clamp: 3;
721
+ -webkit-box-orient: vertical;
722
+ overflow: hidden;
723
+ }
724
+
725
+ :global(body:not(.dark-mode)) .newsSummary,
726
+ :global(.light-mode) .newsSummary {
727
+ color: var(--light-text-muted, #7F878B);
728
+ }
729
+
730
+ :global(.dark-mode) .newsSummary,
731
+ :global(.dark) .newsSummary {
732
+ color: var(--dark-text-muted, #5C6366);
733
+ }
734
+
735
+ .newsReadMore {
736
+ display: inline-flex;
737
+ align-items: center;
738
+ gap: 0.5rem;
739
+ font-size: 0.9375rem;
740
+ font-weight: 500;
741
+ color: var(--accent-tertiary, #5CB87A);
742
+ margin-top: auto;
743
+ transition: gap var(--transition-base);
744
+ }
745
+
746
+ .newsCard:hover .newsReadMore {
747
+ gap: 0.75rem;
748
+ }
749
+
750
+ /* ===================================
751
+ CTA SECTION - Verdant Glass
752
+ =================================== */
753
+
754
+ .ctaSection {
755
+ padding: var(--space-3xl, 6rem) var(--space-xl, 3rem);
756
+ }
757
+
758
+ .ctaContainer {
759
+ max-width: 700px;
760
+ margin: 0 auto;
761
+ text-align: center;
762
+ padding: var(--space-2xl, 4rem);
763
+ backdrop-filter: blur(20px) saturate(180%);
764
+ -webkit-backdrop-filter: blur(20px) saturate(180%);
765
+ border-radius: var(--radius-2xl, 24px);
766
+ position: relative;
767
+ overflow: hidden;
768
+ }
769
+
770
+ /* Light mode CTA */
771
+ :global(body:not(.dark-mode)) .ctaContainer,
772
+ :global(.light-mode) .ctaContainer {
773
+ background: rgba(255, 255, 255, 0.7);
774
+ border: 1px solid rgba(21, 48, 33, 0.08);
775
+ box-shadow: 0 8px 32px rgba(10, 24, 16, 0.08);
776
+ }
777
+
778
+ /* Dark mode CTA - uses theme bg colors */
779
+ :global(.dark-mode) .ctaContainer,
780
+ :global(.dark) .ctaContainer {
781
+ background: var(--dark-bg-tertiary);
782
+ border: 1px solid rgba(var(--accent-primary-rgb, 139, 218, 163), 0.12);
783
+ box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
784
+ }
785
+
786
+ .ctaContainer::before {
787
+ display: none;
788
+ }
789
+
790
+ .ctaTitle {
791
+ font-size: clamp(2rem, 4vw, 3rem);
792
+ font-weight: 500;
793
+ line-height: 1.2;
794
+ margin-bottom: var(--space-md, 1.5rem);
795
+ }
796
+
797
+ .ctaDescription {
798
+ font-size: 1.125rem;
799
+ line-height: 1.7;
800
+ margin-bottom: var(--space-xl, 3rem);
801
+ max-width: 500px;
802
+ margin-left: auto;
803
+ margin-right: auto;
804
+ }
805
+
806
+ :global(body:not(.dark-mode)) .ctaDescription,
807
+ :global(.light-mode) .ctaDescription {
808
+ color: var(--light-text-muted, #7F878B);
809
+ }
810
+
811
+ :global(.dark-mode) .ctaDescription,
812
+ :global(.dark) .ctaDescription {
813
+ color: var(--dark-text-muted, #5C6366);
814
+ }
815
+
816
+ .ctaButtons {
817
+ display: flex;
818
+ flex-direction: column;
819
+ gap: var(--space-sm, 1rem);
820
+ justify-content: center;
821
+ }
822
+
823
+ @media (min-width: 480px) {
824
+ .ctaButtons {
825
+ flex-direction: row;
826
+ }
827
+ }
828
+
829
+ .ctaPrimaryButton {
830
+ display: inline-flex;
831
+ align-items: center;
832
+ justify-content: center;
833
+ gap: 0.5rem;
834
+ padding: 0.75rem 1.75rem;
835
+ background: linear-gradient(135deg, var(--accent-primary, #2A6847), var(--accent-secondary, #3A8F62));
836
+ color: white;
837
+ border-radius: var(--radius-md, 12px);
838
+ font-weight: 500;
839
+ font-size: 0.9375rem;
840
+ text-decoration: none;
841
+ transition: all var(--transition-base);
842
+ box-shadow: 0 4px 16px rgba(42, 104, 71, 0.3);
843
+ }
844
+
845
+ .ctaPrimaryButton:hover {
846
+ transform: translateY(-2px);
847
+ box-shadow: 0 6px 24px rgba(42, 104, 71, 0.4);
848
+ }
849
+
850
+ .ctaSecondaryButton {
851
+ display: inline-flex;
852
+ align-items: center;
853
+ justify-content: center;
854
+ gap: 0.5rem;
855
+ padding: 0.75rem 1.75rem;
856
+ border: 1px solid var(--accent-tertiary, #5CB87A);
857
+ border-radius: var(--radius-md, 12px);
858
+ font-weight: 500;
859
+ font-size: 0.9375rem;
860
+ text-decoration: none;
861
+ transition: all var(--transition-base);
862
+ backdrop-filter: blur(8px);
863
+ }
864
+
865
+ :global(body:not(.dark-mode)) .ctaSecondaryButton,
866
+ :global(.light-mode) .ctaSecondaryButton {
867
+ background: rgba(42, 104, 71, 0.08);
868
+ color: var(--accent-primary, #2A6847);
869
+ }
870
+
871
+ :global(.dark-mode) .ctaSecondaryButton,
872
+ :global(.dark) .ctaSecondaryButton {
873
+ background: rgba(92, 184, 122, 0.1);
874
+ color: var(--accent-tertiary, #5CB87A);
875
+ }
876
+
877
+ .ctaSecondaryButton:hover {
878
+ transform: translateY(-1px);
879
+ }