@cogenta/theme-docs 0.3.2

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 (117) hide show
  1. package/LICENSE +373 -0
  2. package/dist/src/index.d.ts +21 -0
  3. package/dist/src/index.d.ts.map +1 -0
  4. package/dist/src/index.js +21 -0
  5. package/dist/src/index.js.map +1 -0
  6. package/dist/src/render/blocks/accordion.d.ts +4 -0
  7. package/dist/src/render/blocks/accordion.d.ts.map +1 -0
  8. package/dist/src/render/blocks/accordion.js +15 -0
  9. package/dist/src/render/blocks/accordion.js.map +1 -0
  10. package/dist/src/render/blocks/collection-list.d.ts +14 -0
  11. package/dist/src/render/blocks/collection-list.d.ts.map +1 -0
  12. package/dist/src/render/blocks/collection-list.js +77 -0
  13. package/dist/src/render/blocks/collection-list.js.map +1 -0
  14. package/dist/src/render/blocks/cta.d.ts +4 -0
  15. package/dist/src/render/blocks/cta.d.ts.map +1 -0
  16. package/dist/src/render/blocks/cta.js +7 -0
  17. package/dist/src/render/blocks/cta.js.map +1 -0
  18. package/dist/src/render/blocks/embed.d.ts +4 -0
  19. package/dist/src/render/blocks/embed.d.ts.map +1 -0
  20. package/dist/src/render/blocks/embed.js +71 -0
  21. package/dist/src/render/blocks/embed.js.map +1 -0
  22. package/dist/src/render/blocks/faq.d.ts +4 -0
  23. package/dist/src/render/blocks/faq.d.ts.map +1 -0
  24. package/dist/src/render/blocks/faq.js +15 -0
  25. package/dist/src/render/blocks/faq.js.map +1 -0
  26. package/dist/src/render/blocks/feature-grid.d.ts +4 -0
  27. package/dist/src/render/blocks/feature-grid.d.ts.map +1 -0
  28. package/dist/src/render/blocks/feature-grid.js +27 -0
  29. package/dist/src/render/blocks/feature-grid.js.map +1 -0
  30. package/dist/src/render/blocks/gallery.d.ts +10 -0
  31. package/dist/src/render/blocks/gallery.d.ts.map +1 -0
  32. package/dist/src/render/blocks/gallery.js +19 -0
  33. package/dist/src/render/blocks/gallery.js.map +1 -0
  34. package/dist/src/render/blocks/hero.d.ts +16 -0
  35. package/dist/src/render/blocks/hero.d.ts.map +1 -0
  36. package/dist/src/render/blocks/hero.js +28 -0
  37. package/dist/src/render/blocks/hero.js.map +1 -0
  38. package/dist/src/render/blocks/logo-strip.d.ts +4 -0
  39. package/dist/src/render/blocks/logo-strip.d.ts.map +1 -0
  40. package/dist/src/render/blocks/logo-strip.js +16 -0
  41. package/dist/src/render/blocks/logo-strip.js.map +1 -0
  42. package/dist/src/render/blocks/logos.d.ts +4 -0
  43. package/dist/src/render/blocks/logos.d.ts.map +1 -0
  44. package/dist/src/render/blocks/logos.js +22 -0
  45. package/dist/src/render/blocks/logos.js.map +1 -0
  46. package/dist/src/render/blocks/media-figure.d.ts +10 -0
  47. package/dist/src/render/blocks/media-figure.d.ts.map +1 -0
  48. package/dist/src/render/blocks/media-figure.js +25 -0
  49. package/dist/src/render/blocks/media-figure.js.map +1 -0
  50. package/dist/src/render/blocks/pricing-table.d.ts +4 -0
  51. package/dist/src/render/blocks/pricing-table.d.ts.map +1 -0
  52. package/dist/src/render/blocks/pricing-table.js +28 -0
  53. package/dist/src/render/blocks/pricing-table.js.map +1 -0
  54. package/dist/src/render/blocks/prose.d.ts +4 -0
  55. package/dist/src/render/blocks/prose.d.ts.map +1 -0
  56. package/dist/src/render/blocks/prose.js +36 -0
  57. package/dist/src/render/blocks/prose.js.map +1 -0
  58. package/dist/src/render/blocks/quote.d.ts +9 -0
  59. package/dist/src/render/blocks/quote.d.ts.map +1 -0
  60. package/dist/src/render/blocks/quote.js +22 -0
  61. package/dist/src/render/blocks/quote.js.map +1 -0
  62. package/dist/src/render/blocks/stat-counter.d.ts +4 -0
  63. package/dist/src/render/blocks/stat-counter.d.ts.map +1 -0
  64. package/dist/src/render/blocks/stat-counter.js +15 -0
  65. package/dist/src/render/blocks/stat-counter.js.map +1 -0
  66. package/dist/src/render/blocks/stats.d.ts +4 -0
  67. package/dist/src/render/blocks/stats.d.ts.map +1 -0
  68. package/dist/src/render/blocks/stats.js +11 -0
  69. package/dist/src/render/blocks/stats.js.map +1 -0
  70. package/dist/src/render/blocks/testimonial.d.ts +11 -0
  71. package/dist/src/render/blocks/testimonial.d.ts.map +1 -0
  72. package/dist/src/render/blocks/testimonial.js +20 -0
  73. package/dist/src/render/blocks/testimonial.js.map +1 -0
  74. package/dist/src/render/chrome.d.ts +3 -0
  75. package/dist/src/render/chrome.d.ts.map +1 -0
  76. package/dist/src/render/chrome.js +94 -0
  77. package/dist/src/render/chrome.js.map +1 -0
  78. package/dist/src/render/render-block.d.ts +15 -0
  79. package/dist/src/render/render-block.d.ts.map +1 -0
  80. package/dist/src/render/render-block.js +176 -0
  81. package/dist/src/render/render-block.js.map +1 -0
  82. package/dist/src/render/term-archive.d.ts +10 -0
  83. package/dist/src/render/term-archive.d.ts.map +1 -0
  84. package/dist/src/render/term-archive.js +32 -0
  85. package/dist/src/render/term-archive.js.map +1 -0
  86. package/dist/theme.config.d.ts +16 -0
  87. package/dist/theme.config.d.ts.map +1 -0
  88. package/dist/theme.config.js +46 -0
  89. package/dist/theme.config.js.map +1 -0
  90. package/package.json +57 -0
  91. package/src/index.ts +20 -0
  92. package/src/render/blocks/accordion.ts +51 -0
  93. package/src/render/blocks/collection-list.ts +170 -0
  94. package/src/render/blocks/cta.ts +25 -0
  95. package/src/render/blocks/embed.ts +94 -0
  96. package/src/render/blocks/faq.ts +46 -0
  97. package/src/render/blocks/feature-grid.ts +67 -0
  98. package/src/render/blocks/gallery.ts +39 -0
  99. package/src/render/blocks/hero.ts +61 -0
  100. package/src/render/blocks/logo-strip.ts +31 -0
  101. package/src/render/blocks/logos.ts +52 -0
  102. package/src/render/blocks/media-figure.ts +36 -0
  103. package/src/render/blocks/pricing-table.ts +72 -0
  104. package/src/render/blocks/prose.ts +49 -0
  105. package/src/render/blocks/quote.ts +35 -0
  106. package/src/render/blocks/stat-counter.ts +37 -0
  107. package/src/render/blocks/stats.ts +38 -0
  108. package/src/render/blocks/testimonial.ts +36 -0
  109. package/src/render/chrome.ts +124 -0
  110. package/src/render/render-block.ts +305 -0
  111. package/src/render/term-archive.ts +78 -0
  112. package/src/styles/archive.css +39 -0
  113. package/src/styles/base.css +1106 -0
  114. package/src/styles/blocks.css +1238 -0
  115. package/src/styles/theme.css +34 -0
  116. package/src/styles/tokens.css +307 -0
  117. package/tokens.json +36 -0
@@ -0,0 +1,1238 @@
1
+ /*
2
+ * The seventeen vocabulary blocks.
3
+ *
4
+ * One section per block, in the contract-B order. Nothing here declares a
5
+ * colour, a size, a radius or a duration of its own: a block composes the
6
+ * design system from `tokens.css` and nothing else, which is what keeps a
7
+ * skin swap a whole-theme change rather than a per-block one.
8
+ */
9
+
10
+ /* --- hero ------------------------------------------------------------------
11
+ Copy-first, information-dense: no full-bleed media wash. A small optional
12
+ illustration sits in its own panel to the right; the decorative,
13
+ non-interactive search prompt sits under the actions, matching the "search
14
+ is the first thing you do on a docs site" convention without pretending a
15
+ real control exists where this zero-JS theme has none.
16
+ ------------------------------------------------------------------------- */
17
+
18
+ .cg-hero {
19
+ display: grid;
20
+ gap: var(--cg-gap-loose);
21
+ align-items: center;
22
+ margin-block-start: var(--cg-s8);
23
+ }
24
+
25
+ @media (min-width: 60rem) {
26
+ .cg-hero {
27
+ grid-template-columns: 1fr minmax(14rem, 22rem);
28
+ gap: var(--cg-s12);
29
+ }
30
+ }
31
+
32
+ .cg-hero__eyebrow {
33
+ display: inline-block;
34
+ margin: 0 0 var(--cg-s4);
35
+ padding: var(--cg-s1) var(--cg-s3);
36
+ background: var(--cg-accent-soft);
37
+ color: var(--cg-accent-soft-fg);
38
+ border-radius: var(--cg-radius-pill);
39
+ box-shadow: var(--cg-ring-accent);
40
+ font-size: var(--cg-text-xs);
41
+ font-weight: var(--cg-weight-semibold);
42
+ letter-spacing: var(--cg-tracking-wide);
43
+ text-transform: uppercase;
44
+ }
45
+
46
+ .cg-hero__title {
47
+ margin: 0;
48
+ font-size: var(--cg-text-3xl);
49
+ line-height: var(--cg-leading-tight);
50
+ letter-spacing: var(--cg-tracking-tight);
51
+ font-weight: var(--cg-weight-bold);
52
+ text-wrap: balance;
53
+ }
54
+
55
+ @media (min-width: 60rem) {
56
+ .cg-hero__title {
57
+ font-size: calc(var(--cg-text-3xl) * 1.2);
58
+ }
59
+ }
60
+
61
+ .cg-hero__subtitle {
62
+ margin: var(--cg-s4) 0 0;
63
+ max-inline-size: var(--cg-measure-narrow);
64
+ font-size: var(--cg-text-lg);
65
+ line-height: var(--cg-leading-relaxed);
66
+ color: var(--cg-ink-muted);
67
+ text-wrap: pretty;
68
+ }
69
+
70
+ .cg-hero__search {
71
+ display: inline-flex;
72
+ align-items: center;
73
+ gap: var(--cg-s3);
74
+ margin-block-start: var(--cg-s6);
75
+ padding: var(--cg-s3) var(--cg-s4);
76
+ max-inline-size: 22rem;
77
+ background: var(--cg-surface);
78
+ border-radius: var(--cg-radius-md);
79
+ box-shadow: var(--cg-ring);
80
+ color: var(--cg-ink-subtle);
81
+ }
82
+
83
+ .cg-hero__search-icon {
84
+ inline-size: 1.05rem;
85
+ block-size: 1.05rem;
86
+ flex: none;
87
+ }
88
+
89
+ .cg-hero__search-text {
90
+ flex: 1;
91
+ font-size: var(--cg-text-sm);
92
+ }
93
+
94
+ .cg-hero__search-key {
95
+ margin: 0;
96
+ }
97
+
98
+ .cg-hero__panel {
99
+ border-radius: var(--cg-radius-lg);
100
+ overflow: hidden;
101
+ box-shadow: var(--cg-elevation-2), var(--cg-ring);
102
+ }
103
+
104
+ .cg-hero__media {
105
+ inline-size: 100%;
106
+ display: block;
107
+ }
108
+
109
+ /* --- prose ------------------------------------------------------------------
110
+ Reference-doc reading column, plus real code blocks: a rich-text paragraph
111
+ whose only content is a single `code`-marked span is promoted to
112
+ `<pre><code>` by `blocks/prose.ts` before it ever reaches this stylesheet.
113
+ ------------------------------------------------------------------------- */
114
+
115
+ .cg-prose {
116
+ max-inline-size: var(--cg-measure);
117
+ margin-inline: auto;
118
+ line-height: var(--cg-leading-relaxed);
119
+ }
120
+
121
+ .cg-prose > :first-child {
122
+ margin-block-start: 0;
123
+ }
124
+
125
+ .cg-prose > :last-child {
126
+ margin-block-end: 0;
127
+ }
128
+
129
+ .cg-prose h2,
130
+ .cg-prose h3,
131
+ .cg-prose h4 {
132
+ letter-spacing: var(--cg-tracking-snug);
133
+ line-height: var(--cg-leading-snug);
134
+ font-weight: var(--cg-weight-bold);
135
+ text-wrap: balance;
136
+ scroll-margin-block-start: calc(var(--cg-header-height) + var(--cg-s4));
137
+ }
138
+
139
+ .cg-prose h2 {
140
+ margin-block: var(--cg-s10) var(--cg-s4);
141
+ font-size: var(--cg-text-xl);
142
+ letter-spacing: var(--cg-tracking-tight);
143
+ padding-block-end: var(--cg-s2);
144
+ border-block-end: 1px solid var(--cg-line-soft);
145
+ }
146
+
147
+ .cg-prose h3 {
148
+ margin-block: var(--cg-s8) var(--cg-s3);
149
+ font-size: var(--cg-text-lg);
150
+ }
151
+
152
+ .cg-prose h4 {
153
+ margin-block: var(--cg-s6) var(--cg-s2);
154
+ font-size: var(--cg-text-md);
155
+ }
156
+
157
+ .cg-prose p {
158
+ margin-block: var(--cg-s4);
159
+ text-wrap: pretty;
160
+ }
161
+
162
+ .cg-prose ul,
163
+ .cg-prose ol {
164
+ margin-block: var(--cg-s4);
165
+ padding-inline-start: var(--cg-s6);
166
+ }
167
+
168
+ .cg-prose li {
169
+ margin-block: var(--cg-s2);
170
+ padding-inline-start: var(--cg-s1);
171
+ }
172
+
173
+ .cg-prose li::marker {
174
+ color: var(--cg-accent);
175
+ }
176
+
177
+ .cg-prose strong {
178
+ font-weight: var(--cg-weight-semibold);
179
+ color: var(--cg-ink);
180
+ }
181
+
182
+ .cg-prose blockquote {
183
+ margin-block: var(--cg-s6);
184
+ margin-inline: 0;
185
+ padding: var(--cg-s4) var(--cg-s5);
186
+ border-inline-start: 3px solid var(--cg-accent);
187
+ border-start-end-radius: var(--cg-radius-md);
188
+ border-end-end-radius: var(--cg-radius-md);
189
+ background: var(--cg-surface-tinted);
190
+ color: var(--cg-ink-muted);
191
+ font-size: var(--cg-text-md);
192
+ line-height: var(--cg-leading-normal);
193
+ }
194
+
195
+ .cg-prose blockquote > :first-child {
196
+ margin-block-start: 0;
197
+ }
198
+
199
+ .cg-prose blockquote > :last-child {
200
+ margin-block-end: 0;
201
+ }
202
+
203
+ .cg-prose code {
204
+ font-family: var(--cogenta-font-mono);
205
+ font-size: 0.875em;
206
+ background: var(--cg-surface-sunken);
207
+ border-radius: var(--cg-radius-sm);
208
+ box-shadow: var(--cg-ring);
209
+ padding: 0.15em 0.4em;
210
+ }
211
+
212
+ /* The real code block — a `<pre>` promoted from a code-marked paragraph
213
+ (`blocks/prose.ts`). `overflow-x: auto` rather than wrapping: a wrapped
214
+ shell command or a long import line is harder to read and to copy than a
215
+ horizontally scrollable one. */
216
+ .cg-prose__code {
217
+ margin-block: var(--cg-s6);
218
+ padding: var(--cg-s5);
219
+ overflow-x: auto;
220
+ background: var(--cg-surface-sunken);
221
+ border-radius: var(--cg-radius-md);
222
+ box-shadow: var(--cg-ring);
223
+ tab-size: 2;
224
+ }
225
+
226
+ .cg-prose__code code {
227
+ display: block;
228
+ padding: 0;
229
+ background: none;
230
+ box-shadow: none;
231
+ font-size: var(--cg-text-sm);
232
+ line-height: var(--cg-leading-normal);
233
+ color: var(--cg-ink);
234
+ white-space: pre;
235
+ }
236
+
237
+ .cg-prose__figure {
238
+ margin-block: var(--cg-s6);
239
+ margin-inline: 0;
240
+ }
241
+
242
+ .cg-prose__figure img {
243
+ inline-size: 100%;
244
+ border-radius: var(--cg-radius-lg);
245
+ box-shadow: var(--cg-elevation-2);
246
+ }
247
+
248
+ .cg-prose__figure figcaption {
249
+ margin-block-start: var(--cg-s3);
250
+ color: var(--cg-ink-subtle);
251
+ font-size: var(--cg-text-sm);
252
+ line-height: var(--cg-leading-normal);
253
+ }
254
+
255
+ /* --- mediaFigure ------------------------------------------------------------ */
256
+
257
+ .cg-figure {
258
+ margin-inline: auto;
259
+ }
260
+
261
+ .cg-figure[data-align="start"],
262
+ .cg-figure[data-align="end"] {
263
+ max-inline-size: calc(var(--cg-measure) / 2);
264
+ }
265
+
266
+ .cg-figure[data-align="start"] {
267
+ float: inline-start;
268
+ margin-inline-end: var(--cg-s6);
269
+ }
270
+
271
+ .cg-figure[data-align="end"] {
272
+ float: inline-end;
273
+ margin-inline-start: var(--cg-s6);
274
+ }
275
+
276
+ .cg-figure[data-align="full"] {
277
+ max-inline-size: none;
278
+ padding-inline: 0;
279
+ }
280
+
281
+ .cg-figure__media {
282
+ inline-size: 100%;
283
+ aspect-ratio: var(--cg-ratio, auto);
284
+ border-radius: var(--cg-radius-lg);
285
+ box-shadow: var(--cg-elevation-2), var(--cg-ring);
286
+ }
287
+
288
+ .cg-figure[data-align="full"] .cg-figure__media {
289
+ border-radius: 0;
290
+ }
291
+
292
+ .cg-figure__caption {
293
+ margin-block-start: var(--cg-s4);
294
+ padding-inline-start: var(--cg-s4);
295
+ border-inline-start: 2px solid var(--cg-line-strong);
296
+ color: var(--cg-ink-subtle);
297
+ font-size: var(--cg-text-sm);
298
+ line-height: var(--cg-leading-normal);
299
+ text-wrap: pretty;
300
+ }
301
+
302
+ .cg-figure[data-align="full"] .cg-figure__caption {
303
+ max-inline-size: var(--cg-measure);
304
+ margin-inline: auto;
305
+ padding-inline: var(--cg-gutter);
306
+ border-inline-start: 0;
307
+ }
308
+
309
+ .cg-figure__credit {
310
+ color: var(--cg-ink-subtle);
311
+ }
312
+
313
+ .cg-figure__credit::before {
314
+ content: " — ";
315
+ }
316
+
317
+ /* --- featureGrid ------------------------------------------------------------ */
318
+
319
+ .cg-features__items {
320
+ display: grid;
321
+ gap: var(--cg-gap);
322
+ grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
323
+ }
324
+
325
+ .cg-feature {
326
+ position: relative;
327
+ padding: var(--cg-s5);
328
+ background: var(--cg-surface-raised);
329
+ border-radius: var(--cg-radius-md);
330
+ box-shadow: var(--cg-ring);
331
+ transition:
332
+ box-shadow var(--cg-duration) var(--cg-ease),
333
+ transform var(--cg-duration) var(--cg-ease);
334
+ }
335
+
336
+ .cg-feature:hover {
337
+ box-shadow: var(--cg-elevation-2), var(--cg-ring-accent);
338
+ transform: translateY(-2px);
339
+ }
340
+
341
+ .cg-feature__link {
342
+ color: inherit;
343
+ text-decoration: none;
344
+ }
345
+
346
+ .cg-feature__link::after {
347
+ content: "";
348
+ position: absolute;
349
+ inset: 0;
350
+ border-radius: inherit;
351
+ }
352
+
353
+ .cg-feature:hover .cg-feature__link {
354
+ color: var(--cg-accent);
355
+ }
356
+
357
+ .cg-feature__icon {
358
+ display: flex;
359
+ align-items: center;
360
+ justify-content: center;
361
+ inline-size: var(--cg-s8);
362
+ block-size: var(--cg-s8);
363
+ margin-block-end: var(--cg-s4);
364
+ background: var(--cg-accent-soft);
365
+ border-radius: var(--cg-radius-sm);
366
+ box-shadow: var(--cg-ring-accent);
367
+ color: var(--cg-accent);
368
+ }
369
+
370
+ .cg-feature__icon svg {
371
+ inline-size: var(--cg-s5);
372
+ block-size: var(--cg-s5);
373
+ }
374
+
375
+ .cg-feature__title {
376
+ margin: 0 0 var(--cg-s2);
377
+ font-size: var(--cg-text-md);
378
+ font-weight: var(--cg-weight-semibold);
379
+ line-height: var(--cg-leading-snug);
380
+ letter-spacing: var(--cg-tracking-snug);
381
+ text-wrap: balance;
382
+ }
383
+
384
+ .cg-feature__text {
385
+ margin: 0;
386
+ color: var(--cg-ink-muted);
387
+ font-size: var(--cg-text-sm);
388
+ line-height: var(--cg-leading-relaxed);
389
+ text-wrap: pretty;
390
+ }
391
+
392
+ /* --- cta --------------------------------------------------------------------- */
393
+
394
+ .cg-cta {
395
+ padding: var(--cg-s12) var(--cg-s8);
396
+ background: var(--cg-surface-tinted);
397
+ border-radius: var(--cg-radius-lg);
398
+ box-shadow: var(--cg-ring-accent);
399
+ text-align: center;
400
+ }
401
+
402
+ .cg-cta__title {
403
+ margin: 0;
404
+ font-size: var(--cg-text-2xl);
405
+ line-height: var(--cg-leading-snug);
406
+ letter-spacing: var(--cg-tracking-tight);
407
+ font-weight: var(--cg-weight-bold);
408
+ text-wrap: balance;
409
+ }
410
+
411
+ .cg-cta__text {
412
+ margin: var(--cg-s3) auto 0;
413
+ max-inline-size: var(--cg-measure-narrow);
414
+ color: var(--cg-ink-muted);
415
+ font-size: var(--cg-text-lg);
416
+ line-height: var(--cg-leading-relaxed);
417
+ text-wrap: pretty;
418
+ }
419
+
420
+ .cg-cta .cg-actions {
421
+ justify-content: center;
422
+ }
423
+
424
+ /* --- gallery ------------------------------------------------------------------ */
425
+
426
+ .cg-gallery__items {
427
+ display: grid;
428
+ gap: var(--cg-gap-tight);
429
+ grid-template-columns: repeat(auto-fill, minmax(13rem, 1fr));
430
+ }
431
+
432
+ .cg-gallery__item {
433
+ overflow: hidden;
434
+ border-radius: var(--cg-radius-md);
435
+ box-shadow: var(--cg-ring);
436
+ }
437
+
438
+ .cg-gallery__item img {
439
+ inline-size: 100%;
440
+ block-size: 100%;
441
+ transition: transform var(--cg-duration-slow) var(--cg-ease);
442
+ }
443
+
444
+ .cg-gallery__item:hover img {
445
+ transform: scale(1.03);
446
+ }
447
+
448
+ .cg-gallery:not([data-layout="masonry"]) .cg-gallery__item img {
449
+ aspect-ratio: 4 / 3;
450
+ }
451
+
452
+ .cg-gallery[data-layout="masonry"] .cg-gallery__items {
453
+ display: block;
454
+ columns: 3 13rem;
455
+ column-gap: var(--cg-gap-tight);
456
+ }
457
+
458
+ .cg-gallery[data-layout="masonry"] .cg-gallery__item {
459
+ break-inside: avoid;
460
+ margin-block-end: var(--cg-gap-tight);
461
+ }
462
+
463
+ .cg-gallery[data-layout="carousel"] .cg-gallery__items {
464
+ display: grid;
465
+ grid-auto-flow: column;
466
+ grid-auto-columns: minmax(15rem, 40%);
467
+ }
468
+
469
+ .cg-gallery[data-layout="carousel"] .cg-gallery__item {
470
+ scroll-snap-align: start;
471
+ }
472
+
473
+ /* --- quote ---------------------------------------------------------------------- */
474
+
475
+ .cg-quote {
476
+ max-inline-size: var(--cg-page-narrow);
477
+ margin-inline: auto;
478
+ text-align: center;
479
+ }
480
+
481
+ .cg-quote::before {
482
+ content: "\201C" / "";
483
+ display: block;
484
+ margin-block-end: calc(var(--cg-s4) * -1);
485
+ color: var(--cg-accent-soft);
486
+ font-size: calc(var(--cg-text-3xl) * 1.8);
487
+ line-height: 1;
488
+ }
489
+
490
+ .cg-quote__text {
491
+ margin: 0;
492
+ font-size: var(--cg-text-2xl);
493
+ line-height: var(--cg-leading-snug);
494
+ letter-spacing: var(--cg-tracking-snug);
495
+ text-wrap: balance;
496
+ }
497
+
498
+ .cg-quote__attribution {
499
+ display: flex;
500
+ align-items: center;
501
+ justify-content: center;
502
+ gap: var(--cg-s3);
503
+ margin-block-start: var(--cg-s6);
504
+ color: var(--cg-ink-subtle);
505
+ font-size: var(--cg-text-sm);
506
+ }
507
+
508
+ .cg-quote__avatar {
509
+ inline-size: var(--cg-s10);
510
+ block-size: var(--cg-s10);
511
+ border-radius: var(--cg-radius-pill);
512
+ box-shadow: var(--cg-ring);
513
+ }
514
+
515
+ .cg-quote__author {
516
+ font-weight: var(--cg-weight-semibold);
517
+ color: var(--cg-ink);
518
+ }
519
+
520
+ .cg-quote__role::before {
521
+ content: "";
522
+ display: inline-block;
523
+ inline-size: var(--cg-s3);
524
+ border-block-start: 1px solid var(--cg-line-strong);
525
+ vertical-align: middle;
526
+ margin-inline-end: var(--cg-s3);
527
+ }
528
+
529
+ /* --- faq --------------------------------------------------------------------------- */
530
+
531
+ .cg-faq {
532
+ max-inline-size: var(--cg-page-narrow);
533
+ margin-inline: auto;
534
+ }
535
+
536
+ .cg-faq__items {
537
+ background: var(--cg-surface-raised);
538
+ border-radius: var(--cg-radius-md);
539
+ box-shadow: var(--cg-ring);
540
+ overflow: hidden;
541
+ }
542
+
543
+ .cg-faq__item + .cg-faq__item {
544
+ border-block-start: 1px solid var(--cg-line-soft);
545
+ }
546
+
547
+ .cg-faq__question {
548
+ display: flex;
549
+ align-items: center;
550
+ gap: var(--cg-s4);
551
+ padding: var(--cg-s4) var(--cg-s5);
552
+ font-weight: var(--cg-weight-semibold);
553
+ cursor: pointer;
554
+ list-style: none;
555
+ transition: background-color var(--cg-duration) var(--cg-ease);
556
+ }
557
+
558
+ .cg-faq__question::-webkit-details-marker {
559
+ display: none;
560
+ }
561
+
562
+ .cg-faq__question:hover {
563
+ background: var(--cg-accent-soft);
564
+ color: var(--cg-accent-soft-fg);
565
+ }
566
+
567
+ .cg-faq__question::after {
568
+ content: "";
569
+ flex: none;
570
+ margin-inline-start: auto;
571
+ inline-size: 0.5em;
572
+ block-size: 0.5em;
573
+ border-inline-end: 2px solid currentColor;
574
+ border-block-end: 2px solid currentColor;
575
+ transform: translateY(-0.15em) rotate(45deg);
576
+ transition: transform var(--cg-duration) var(--cg-ease);
577
+ }
578
+
579
+ .cg-faq__details[open] .cg-faq__question::after {
580
+ transform: translateY(0.1em) rotate(-135deg);
581
+ }
582
+
583
+ .cg-faq__details[open] .cg-faq__question {
584
+ color: var(--cg-accent);
585
+ }
586
+
587
+ .cg-faq__answer {
588
+ padding: 0 var(--cg-s5) var(--cg-s5);
589
+ color: var(--cg-ink-muted);
590
+ line-height: var(--cg-leading-relaxed);
591
+ }
592
+
593
+ .cg-faq__answer > :first-child {
594
+ margin-block-start: 0;
595
+ }
596
+
597
+ .cg-faq__answer > :last-child {
598
+ margin-block-end: 0;
599
+ }
600
+
601
+ /* --- stats --------------------------------------------------------------------- */
602
+
603
+ .cg-stats__items {
604
+ display: grid;
605
+ gap: var(--cg-gap);
606
+ grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr));
607
+ margin: 0;
608
+ }
609
+
610
+ .cg-stat {
611
+ display: flex;
612
+ flex-direction: column-reverse;
613
+ gap: var(--cg-s2);
614
+ padding: var(--cg-s5);
615
+ background: var(--cg-surface-sunken);
616
+ border-radius: var(--cg-radius-md);
617
+ box-shadow: var(--cg-ring);
618
+ }
619
+
620
+ .cg-stat__value {
621
+ display: flex;
622
+ align-items: baseline;
623
+ gap: var(--cg-s1);
624
+ margin: 0;
625
+ color: var(--cg-accent);
626
+ font-size: var(--cg-text-3xl);
627
+ font-weight: var(--cg-weight-bold);
628
+ line-height: var(--cg-leading-tight);
629
+ letter-spacing: var(--cg-tracking-tight);
630
+ font-variant-numeric: tabular-nums;
631
+ }
632
+
633
+ .cg-stat__unit {
634
+ font-size: var(--cg-text-lg);
635
+ font-weight: var(--cg-weight-medium);
636
+ color: var(--cg-ink-muted);
637
+ }
638
+
639
+ .cg-stat__label {
640
+ color: var(--cg-ink-muted);
641
+ font-size: var(--cg-text-xs);
642
+ font-weight: var(--cg-weight-semibold);
643
+ letter-spacing: var(--cg-tracking-wide);
644
+ text-transform: uppercase;
645
+ }
646
+
647
+ /* --- logos ------------------------------------------------------------------------ */
648
+
649
+ .cg-logos__items {
650
+ display: grid;
651
+ grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr));
652
+ gap: var(--cg-gap);
653
+ align-items: center;
654
+ }
655
+
656
+ .cg-logo {
657
+ display: flex;
658
+ align-items: center;
659
+ justify-content: center;
660
+ padding: var(--cg-s3);
661
+ }
662
+
663
+ .cg-logo__image {
664
+ block-size: var(--cg-s8);
665
+ inline-size: auto;
666
+ max-inline-size: 100%;
667
+ object-fit: contain;
668
+ opacity: 0.75;
669
+ transition: opacity var(--cg-duration) var(--cg-ease);
670
+ }
671
+
672
+ .cg-logo__link {
673
+ display: inline-flex;
674
+ align-items: center;
675
+ justify-content: center;
676
+ inline-size: 100%;
677
+ border-radius: var(--cg-radius-md);
678
+ }
679
+
680
+ .cg-logo:hover .cg-logo__image,
681
+ .cg-logo__link:focus-visible .cg-logo__image {
682
+ opacity: 1;
683
+ }
684
+
685
+ /* --- collectionList ---------------------------------------------------------------
686
+ Two shapes: `renderGuidesIndex` for `doc_page` (a compact, grouped index —
687
+ no images, no excerpts, just a dense list of links) and the general row
688
+ list for any other collection, which shows `entryImage` when the entry
689
+ carries one (`theme@1.4`).
690
+ ------------------------------------------------------------------------- */
691
+
692
+ .cg-list__title-heading {
693
+ margin: 0 0 var(--cg-s6);
694
+ }
695
+
696
+ .cg-list__items {
697
+ display: flex;
698
+ flex-direction: column;
699
+ gap: var(--cg-s5);
700
+ }
701
+
702
+ .cg-list[data-layout="grid"] .cg-list__items {
703
+ display: grid;
704
+ grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr));
705
+ gap: var(--cg-gap);
706
+ }
707
+
708
+ .cg-list[data-layout="carousel"] .cg-list__items {
709
+ display: grid;
710
+ grid-auto-flow: column;
711
+ grid-auto-columns: minmax(16rem, 45%);
712
+ gap: var(--cg-gap);
713
+ }
714
+
715
+ .cg-list[data-layout="carousel"] .cg-list__row {
716
+ scroll-snap-align: start;
717
+ }
718
+
719
+ .cg-list__row {
720
+ display: flex;
721
+ gap: var(--cg-s4);
722
+ padding-block: var(--cg-s4);
723
+ border-block-end: 1px solid var(--cg-line-soft);
724
+ }
725
+
726
+ .cg-list[data-layout="grid"] .cg-list__row,
727
+ .cg-list[data-layout="carousel"] .cg-list__row {
728
+ flex-direction: column;
729
+ padding: var(--cg-s5);
730
+ border: 1px solid var(--cg-line);
731
+ border-radius: var(--cg-radius-md);
732
+ box-shadow: var(--cg-ring);
733
+ }
734
+
735
+ .cg-list__thumb {
736
+ flex: none;
737
+ inline-size: 6rem;
738
+ aspect-ratio: 4 / 3;
739
+ overflow: hidden;
740
+ border-radius: var(--cg-radius-sm);
741
+ }
742
+
743
+ .cg-list[data-layout="grid"] .cg-list__thumb,
744
+ .cg-list[data-layout="carousel"] .cg-list__thumb {
745
+ inline-size: 100%;
746
+ }
747
+
748
+ .cg-list__thumb-image {
749
+ inline-size: 100%;
750
+ block-size: 100%;
751
+ object-fit: cover;
752
+ }
753
+
754
+ .cg-list__body {
755
+ display: flex;
756
+ flex-direction: column;
757
+ min-inline-size: 0;
758
+ }
759
+
760
+ .cg-list__title {
761
+ margin: 0;
762
+ font-size: var(--cg-text-md);
763
+ font-weight: var(--cg-weight-semibold);
764
+ line-height: var(--cg-leading-snug);
765
+ }
766
+
767
+ .cg-list__link {
768
+ color: var(--cg-ink);
769
+ text-decoration: none;
770
+ }
771
+
772
+ .cg-list__link:hover {
773
+ color: var(--cg-accent);
774
+ }
775
+
776
+ .cg-list__date {
777
+ margin-block-start: var(--cg-s1);
778
+ color: var(--cg-ink-subtle);
779
+ font-size: var(--cg-text-xs);
780
+ font-weight: var(--cg-weight-semibold);
781
+ letter-spacing: var(--cg-tracking-wide);
782
+ text-transform: uppercase;
783
+ }
784
+
785
+ .cg-list__excerpt {
786
+ margin: var(--cg-s2) 0 0;
787
+ color: var(--cg-ink-muted);
788
+ font-size: var(--cg-text-sm);
789
+ line-height: var(--cg-leading-normal);
790
+ }
791
+
792
+ .cg-list__empty {
793
+ padding: var(--cg-s6);
794
+ background: var(--cg-surface-sunken);
795
+ border-radius: var(--cg-radius-md);
796
+ color: var(--cg-ink-subtle);
797
+ text-align: center;
798
+ }
799
+
800
+ /* The "All guides" compact index — grouped by section, alphabetical, no
801
+ images: a reference table of contents, not a card grid. */
802
+ .cg-guides {
803
+ display: grid;
804
+ gap: var(--cg-gap);
805
+ grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
806
+ }
807
+
808
+ .cg-guides__section {
809
+ min-inline-size: 0;
810
+ }
811
+
812
+ .cg-guides__heading {
813
+ margin: 0 0 var(--cg-s3);
814
+ font-size: var(--cg-text-xs);
815
+ font-weight: var(--cg-weight-bold);
816
+ letter-spacing: var(--cg-tracking-wide);
817
+ text-transform: uppercase;
818
+ color: var(--cg-accent);
819
+ }
820
+
821
+ .cg-guides__items {
822
+ margin: 0;
823
+ padding: 0;
824
+ list-style: none;
825
+ display: flex;
826
+ flex-direction: column;
827
+ gap: var(--cg-s2);
828
+ }
829
+
830
+ .cg-guides__link {
831
+ color: var(--cg-ink-muted);
832
+ font-size: var(--cg-text-sm);
833
+ text-decoration: none;
834
+ }
835
+
836
+ .cg-guides__link:hover {
837
+ color: var(--cg-accent);
838
+ }
839
+
840
+ /* --- embed --------------------------------------------------------------------------- */
841
+
842
+ .cg-embed {
843
+ aspect-ratio: var(--cg-ratio, 16 / 9);
844
+ max-inline-size: var(--cg-measure);
845
+ margin-inline: auto;
846
+ border: 1px solid var(--cg-line);
847
+ border-radius: var(--cg-radius-md);
848
+ overflow: hidden;
849
+ }
850
+
851
+ .cg-embed__frame {
852
+ inline-size: 100%;
853
+ block-size: 100%;
854
+ border: 0;
855
+ }
856
+
857
+ .cg-embed__placeholder {
858
+ display: flex;
859
+ flex-direction: column;
860
+ align-items: center;
861
+ justify-content: center;
862
+ gap: var(--cg-s4);
863
+ block-size: 100%;
864
+ padding: var(--cg-s8);
865
+ background: var(--cg-surface-sunken);
866
+ color: var(--cg-ink-muted);
867
+ text-align: center;
868
+ }
869
+
870
+ .cg-embed__provider {
871
+ margin: 0;
872
+ padding: var(--cg-s1) var(--cg-s3);
873
+ border: 1px solid var(--cg-line-strong);
874
+ border-radius: var(--cg-radius-pill);
875
+ font-size: var(--cg-text-xs);
876
+ font-weight: var(--cg-weight-semibold);
877
+ letter-spacing: var(--cg-tracking-wide);
878
+ text-transform: uppercase;
879
+ }
880
+
881
+ .cg-embed__notice {
882
+ margin: 0;
883
+ max-inline-size: var(--cg-measure-narrow);
884
+ line-height: var(--cg-leading-relaxed);
885
+ text-wrap: pretty;
886
+ }
887
+
888
+ .cg-embed__link {
889
+ display: inline-flex;
890
+ align-items: center;
891
+ min-block-size: 44px;
892
+ padding: var(--cg-s3) var(--cg-s6);
893
+ background: var(--cg-surface-raised);
894
+ color: var(--cg-accent);
895
+ border: 1px solid var(--cg-line-strong);
896
+ border-radius: var(--cg-radius-sm);
897
+ font-size: var(--cg-text-sm);
898
+ font-weight: var(--cg-weight-semibold);
899
+ text-decoration: none;
900
+ transition:
901
+ background-color var(--cg-duration) var(--cg-ease),
902
+ color var(--cg-duration) var(--cg-ease);
903
+ }
904
+
905
+ .cg-embed__link:hover {
906
+ background: var(--cg-accent);
907
+ color: var(--cg-accent-fg);
908
+ border-color: var(--cg-accent);
909
+ }
910
+
911
+ /* --- testimonial --------------------------------------------------------------------- */
912
+
913
+ .cg-testimonial {
914
+ display: grid;
915
+ gap: var(--cg-s5);
916
+ max-inline-size: var(--cg-page-narrow);
917
+ margin-inline: auto;
918
+ padding: var(--cg-s8);
919
+ border-inline-end: 3px solid var(--cg-accent);
920
+ border-block: 1px solid var(--cg-line);
921
+ border-inline-start: 1px solid var(--cg-line);
922
+ border-radius: var(--cg-radius-md) 0 0 var(--cg-radius-md);
923
+ background: var(--cg-surface-sunken);
924
+ }
925
+
926
+ @media (min-width: 56rem) {
927
+ .cg-testimonial {
928
+ grid-template-columns: 1fr auto;
929
+ align-items: center;
930
+ gap: var(--cg-s8);
931
+ }
932
+
933
+ .cg-testimonial__attribution {
934
+ flex-direction: column;
935
+ align-items: flex-start;
936
+ min-inline-size: 13rem;
937
+ padding-inline-start: var(--cg-s6);
938
+ border-inline-start: 1px solid var(--cg-line-soft);
939
+ }
940
+ }
941
+
942
+ .cg-testimonial__quote {
943
+ margin: 0;
944
+ font-size: var(--cg-text-xl);
945
+ line-height: var(--cg-leading-snug);
946
+ letter-spacing: var(--cg-tracking-snug);
947
+ text-wrap: balance;
948
+ }
949
+
950
+ .cg-testimonial__quote p {
951
+ margin: 0;
952
+ }
953
+
954
+ .cg-testimonial__quote p + p {
955
+ margin-block-start: var(--cg-s4);
956
+ }
957
+
958
+ .cg-testimonial__attribution {
959
+ display: flex;
960
+ align-items: center;
961
+ gap: var(--cg-s3);
962
+ margin-block-start: var(--cg-s2);
963
+ }
964
+
965
+ .cg-testimonial__avatar {
966
+ inline-size: var(--cg-s10);
967
+ block-size: var(--cg-s10);
968
+ border-radius: var(--cg-radius-pill);
969
+ box-shadow: var(--cg-ring);
970
+ }
971
+
972
+ .cg-testimonial__who {
973
+ display: flex;
974
+ flex-direction: column;
975
+ gap: var(--cg-s1);
976
+ font-size: var(--cg-text-sm);
977
+ color: var(--cg-ink-subtle);
978
+ }
979
+
980
+ .cg-testimonial__name {
981
+ font-weight: var(--cg-weight-semibold);
982
+ color: var(--cg-ink);
983
+ }
984
+
985
+ /* --- pricingTable -------------------------------------------------------------------- */
986
+
987
+ .cg-pricing__tiers {
988
+ display: grid;
989
+ gap: var(--cg-s6);
990
+ margin: 0;
991
+ }
992
+
993
+ @media (min-width: 48rem) {
994
+ .cg-pricing__tiers {
995
+ grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
996
+ align-items: start;
997
+ }
998
+ }
999
+
1000
+ .cg-pricing__tier {
1001
+ display: flex;
1002
+ flex-direction: column;
1003
+ gap: var(--cg-s4);
1004
+ padding: var(--cg-s6);
1005
+ border: 1px solid var(--cg-line);
1006
+ border-radius: var(--cg-radius-md);
1007
+ background: var(--cg-surface);
1008
+ box-shadow: var(--cg-elevation-1);
1009
+ }
1010
+
1011
+ .cg-pricing__tier[data-highlighted="true"] {
1012
+ border-color: var(--cg-accent);
1013
+ box-shadow: var(--cg-elevation-3);
1014
+ }
1015
+
1016
+ .cg-pricing__name {
1017
+ margin: 0;
1018
+ font-size: var(--cg-text-lg);
1019
+ font-weight: var(--cg-weight-semibold);
1020
+ letter-spacing: var(--cg-tracking-snug);
1021
+ }
1022
+
1023
+ .cg-pricing__price {
1024
+ display: flex;
1025
+ align-items: baseline;
1026
+ gap: var(--cg-s1);
1027
+ margin: 0;
1028
+ }
1029
+
1030
+ .cg-pricing__amount {
1031
+ font-size: var(--cg-text-3xl);
1032
+ font-weight: var(--cg-weight-bold);
1033
+ letter-spacing: var(--cg-tracking-tight);
1034
+ color: var(--cg-accent);
1035
+ font-variant-numeric: tabular-nums;
1036
+ }
1037
+
1038
+ .cg-pricing__interval {
1039
+ color: var(--cg-ink-muted);
1040
+ font-size: var(--cg-text-sm);
1041
+ }
1042
+
1043
+ .cg-pricing__features {
1044
+ display: flex;
1045
+ flex-direction: column;
1046
+ gap: var(--cg-s2);
1047
+ margin: 0;
1048
+ padding: var(--cg-s4) 0 0;
1049
+ border-block-start: 1px solid var(--cg-line-soft);
1050
+ color: var(--cg-ink-muted);
1051
+ font-size: var(--cg-text-sm);
1052
+ line-height: var(--cg-leading-normal);
1053
+ }
1054
+
1055
+ .cg-pricing__feature {
1056
+ padding-inline-start: var(--cg-s5);
1057
+ position: relative;
1058
+ }
1059
+
1060
+ .cg-pricing__feature::before {
1061
+ content: "";
1062
+ position: absolute;
1063
+ inset-inline-start: 0;
1064
+ inset-block-start: 0.5em;
1065
+ inline-size: 0.55em;
1066
+ block-size: 0.3em;
1067
+ border-inline-start: 2px solid var(--cg-accent);
1068
+ border-block-end: 2px solid var(--cg-accent);
1069
+ transform: translateY(-60%) rotate(-45deg);
1070
+ }
1071
+
1072
+ .cg-pricing__action {
1073
+ margin-block-start: auto;
1074
+ padding-block-start: var(--cg-s2);
1075
+ }
1076
+
1077
+ .cg-pricing__action .cg-action {
1078
+ inline-size: 100%;
1079
+ justify-content: center;
1080
+ }
1081
+
1082
+ /* --- accordion ------------------------------------------------------------------------ */
1083
+
1084
+ .cg-panels {
1085
+ max-inline-size: var(--cg-page-narrow);
1086
+ margin-inline: auto;
1087
+ }
1088
+
1089
+ .cg-panels__items {
1090
+ display: flex;
1091
+ flex-direction: column;
1092
+ gap: var(--cg-s3);
1093
+ margin: 0;
1094
+ }
1095
+
1096
+ .cg-panels__item {
1097
+ border: 1px solid var(--cg-line);
1098
+ border-radius: var(--cg-radius-md);
1099
+ background: var(--cg-surface);
1100
+ transition: border-color var(--cg-duration) var(--cg-ease);
1101
+ }
1102
+
1103
+ .cg-panels__item:has(.cg-panels__details[open]) {
1104
+ border-color: var(--cg-line-strong);
1105
+ }
1106
+
1107
+ .cg-panels__question {
1108
+ display: flex;
1109
+ align-items: center;
1110
+ gap: var(--cg-s4);
1111
+ padding: var(--cg-s4) var(--cg-s5);
1112
+ font-weight: var(--cg-weight-semibold);
1113
+ cursor: pointer;
1114
+ list-style: none;
1115
+ }
1116
+
1117
+ .cg-panels__question::-webkit-details-marker {
1118
+ display: none;
1119
+ }
1120
+
1121
+ .cg-panels__question-text {
1122
+ flex: 1;
1123
+ }
1124
+
1125
+ .cg-panels__details[open] .cg-panels__question {
1126
+ color: var(--cg-accent);
1127
+ }
1128
+
1129
+ .cg-panels__chevron {
1130
+ flex: none;
1131
+ inline-size: 0.6em;
1132
+ block-size: 0.6em;
1133
+ border-inline-end: 2px solid currentColor;
1134
+ border-block-end: 2px solid currentColor;
1135
+ transform: rotate(45deg);
1136
+ transition: transform var(--cg-duration) var(--cg-ease);
1137
+ }
1138
+
1139
+ .cg-panels__details[open] .cg-panels__chevron {
1140
+ transform: rotate(-135deg);
1141
+ }
1142
+
1143
+ .cg-panels__answer {
1144
+ padding: 0 var(--cg-s5) var(--cg-s5);
1145
+ color: var(--cg-ink-muted);
1146
+ line-height: var(--cg-leading-relaxed);
1147
+ }
1148
+
1149
+ .cg-panels__answer > :first-child {
1150
+ margin-block-start: 0;
1151
+ }
1152
+
1153
+ .cg-panels__answer > :last-child {
1154
+ margin-block-end: 0;
1155
+ }
1156
+
1157
+ /* --- statCounter ---------------------------------------------------------------------- */
1158
+
1159
+ .cg-kpis {
1160
+ padding: var(--cg-s8) var(--cg-s6);
1161
+ border-radius: var(--cg-radius-lg);
1162
+ background: var(--cg-accent);
1163
+ color: var(--cg-accent-fg);
1164
+ }
1165
+
1166
+ .cg-kpis__items {
1167
+ display: grid;
1168
+ grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr));
1169
+ gap: var(--cg-s6);
1170
+ margin: 0;
1171
+ }
1172
+
1173
+ .cg-kpi {
1174
+ display: flex;
1175
+ flex-direction: column;
1176
+ gap: var(--cg-s1);
1177
+ }
1178
+
1179
+ .cg-kpi__label {
1180
+ order: 2;
1181
+ font-size: var(--cg-text-xs);
1182
+ font-weight: var(--cg-weight-semibold);
1183
+ letter-spacing: var(--cg-tracking-wide);
1184
+ text-transform: uppercase;
1185
+ opacity: 0.82;
1186
+ }
1187
+
1188
+ .cg-kpi__value {
1189
+ order: 1;
1190
+ margin: 0;
1191
+ font-size: var(--cg-text-3xl);
1192
+ font-weight: var(--cg-weight-bold);
1193
+ line-height: var(--cg-leading-tight);
1194
+ letter-spacing: var(--cg-tracking-tight);
1195
+ font-variant-numeric: tabular-nums;
1196
+ }
1197
+
1198
+ /* --- logoStrip ------------------------------------------------------------------------ */
1199
+
1200
+ .cg-logo-band__items {
1201
+ display: flex;
1202
+ flex-wrap: wrap;
1203
+ align-items: center;
1204
+ justify-content: center;
1205
+ gap: 0;
1206
+ margin: 0;
1207
+ padding: 0;
1208
+ list-style: none;
1209
+ }
1210
+
1211
+ .cg-logo-band__item {
1212
+ display: flex;
1213
+ align-items: center;
1214
+ justify-content: center;
1215
+ padding: var(--cg-s3) var(--cg-s5);
1216
+ border-inline-start: 1px solid var(--cg-line-soft);
1217
+ }
1218
+
1219
+ .cg-logo-band__item:first-child {
1220
+ border-inline-start: 0;
1221
+ }
1222
+
1223
+ .cg-logo-band__image {
1224
+ block-size: var(--cg-s6);
1225
+ inline-size: auto;
1226
+ max-inline-size: 100%;
1227
+ object-fit: contain;
1228
+ }
1229
+
1230
+ .cg-logo-band__caption {
1231
+ margin-block-start: var(--cg-s4);
1232
+ color: var(--cg-ink-subtle);
1233
+ font-size: var(--cg-text-xs);
1234
+ font-weight: var(--cg-weight-semibold);
1235
+ letter-spacing: var(--cg-tracking-wide);
1236
+ text-transform: uppercase;
1237
+ text-align: center;
1238
+ }