@cogenta/theme-association 0.3.3 → 0.5.3

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 (148) hide show
  1. package/dist/src/index.d.ts +6 -0
  2. package/dist/src/index.d.ts.map +1 -1
  3. package/dist/src/index.js +9 -0
  4. package/dist/src/index.js.map +1 -1
  5. package/dist/src/render/blocks/accordion.d.ts.map +1 -1
  6. package/dist/src/render/blocks/accordion.js +13 -10
  7. package/dist/src/render/blocks/accordion.js.map +1 -1
  8. package/dist/src/render/blocks/breakdown.d.ts +14 -0
  9. package/dist/src/render/blocks/breakdown.d.ts.map +1 -0
  10. package/dist/src/render/blocks/breakdown.js +17 -0
  11. package/dist/src/render/blocks/breakdown.js.map +1 -0
  12. package/dist/src/render/blocks/collection-list.d.ts +4 -10
  13. package/dist/src/render/blocks/collection-list.d.ts.map +1 -1
  14. package/dist/src/render/blocks/collection-list.js +89 -58
  15. package/dist/src/render/blocks/collection-list.js.map +1 -1
  16. package/dist/src/render/blocks/cta.d.ts +0 -5
  17. package/dist/src/render/blocks/cta.d.ts.map +1 -1
  18. package/dist/src/render/blocks/cta.js +22 -10
  19. package/dist/src/render/blocks/cta.js.map +1 -1
  20. package/dist/src/render/blocks/embed.d.ts.map +1 -1
  21. package/dist/src/render/blocks/embed.js +30 -22
  22. package/dist/src/render/blocks/embed.js.map +1 -1
  23. package/dist/src/render/blocks/faq.d.ts.map +1 -1
  24. package/dist/src/render/blocks/faq.js +11 -15
  25. package/dist/src/render/blocks/faq.js.map +1 -1
  26. package/dist/src/render/blocks/feature-grid.d.ts +6 -0
  27. package/dist/src/render/blocks/feature-grid.d.ts.map +1 -1
  28. package/dist/src/render/blocks/feature-grid.js +42 -20
  29. package/dist/src/render/blocks/feature-grid.js.map +1 -1
  30. package/dist/src/render/blocks/gallery.d.ts +9 -7
  31. package/dist/src/render/blocks/gallery.d.ts.map +1 -1
  32. package/dist/src/render/blocks/gallery.js +22 -16
  33. package/dist/src/render/blocks/gallery.js.map +1 -1
  34. package/dist/src/render/blocks/hero.d.ts +23 -9
  35. package/dist/src/render/blocks/hero.d.ts.map +1 -1
  36. package/dist/src/render/blocks/hero.js +40 -23
  37. package/dist/src/render/blocks/hero.js.map +1 -1
  38. package/dist/src/render/blocks/logo-strip.d.ts +6 -0
  39. package/dist/src/render/blocks/logo-strip.d.ts.map +1 -1
  40. package/dist/src/render/blocks/logo-strip.js +7 -9
  41. package/dist/src/render/blocks/logo-strip.js.map +1 -1
  42. package/dist/src/render/blocks/logos.d.ts +14 -0
  43. package/dist/src/render/blocks/logos.d.ts.map +1 -1
  44. package/dist/src/render/blocks/logos.js +30 -16
  45. package/dist/src/render/blocks/logos.js.map +1 -1
  46. package/dist/src/render/blocks/media-figure.d.ts +12 -5
  47. package/dist/src/render/blocks/media-figure.d.ts.map +1 -1
  48. package/dist/src/render/blocks/media-figure.js +32 -18
  49. package/dist/src/render/blocks/media-figure.js.map +1 -1
  50. package/dist/src/render/blocks/pricing-table.d.ts.map +1 -1
  51. package/dist/src/render/blocks/pricing-table.js +18 -20
  52. package/dist/src/render/blocks/pricing-table.js.map +1 -1
  53. package/dist/src/render/blocks/prose.d.ts +9 -3
  54. package/dist/src/render/blocks/prose.d.ts.map +1 -1
  55. package/dist/src/render/blocks/prose.js +11 -4
  56. package/dist/src/render/blocks/prose.js.map +1 -1
  57. package/dist/src/render/blocks/quote.d.ts +4 -7
  58. package/dist/src/render/blocks/quote.d.ts.map +1 -1
  59. package/dist/src/render/blocks/quote.js +12 -17
  60. package/dist/src/render/blocks/quote.js.map +1 -1
  61. package/dist/src/render/blocks/stat-counter.d.ts +8 -1
  62. package/dist/src/render/blocks/stat-counter.d.ts.map +1 -1
  63. package/dist/src/render/blocks/stat-counter.js +18 -10
  64. package/dist/src/render/blocks/stat-counter.js.map +1 -1
  65. package/dist/src/render/blocks/stats.d.ts +12 -1
  66. package/dist/src/render/blocks/stats.d.ts.map +1 -1
  67. package/dist/src/render/blocks/stats.js +24 -14
  68. package/dist/src/render/blocks/stats.js.map +1 -1
  69. package/dist/src/render/blocks/testimonial.d.ts +6 -5
  70. package/dist/src/render/blocks/testimonial.d.ts.map +1 -1
  71. package/dist/src/render/blocks/testimonial.js +13 -11
  72. package/dist/src/render/blocks/testimonial.js.map +1 -1
  73. package/dist/src/render/chrome.d.ts +38 -1
  74. package/dist/src/render/chrome.d.ts.map +1 -1
  75. package/dist/src/render/chrome.js +117 -91
  76. package/dist/src/render/chrome.js.map +1 -1
  77. package/dist/src/render/details.d.ts +79 -0
  78. package/dist/src/render/details.d.ts.map +1 -0
  79. package/dist/src/render/details.js +221 -0
  80. package/dist/src/render/details.js.map +1 -0
  81. package/dist/src/render/figures.d.ts +29 -0
  82. package/dist/src/render/figures.d.ts.map +1 -0
  83. package/dist/src/render/figures.js +59 -0
  84. package/dist/src/render/figures.js.map +1 -0
  85. package/dist/src/render/layout.d.ts +31 -0
  86. package/dist/src/render/layout.d.ts.map +1 -0
  87. package/dist/src/render/layout.js +46 -0
  88. package/dist/src/render/layout.js.map +1 -0
  89. package/dist/src/render/page-head.d.ts +7 -0
  90. package/dist/src/render/page-head.d.ts.map +1 -0
  91. package/dist/src/render/page-head.js +95 -0
  92. package/dist/src/render/page-head.js.map +1 -0
  93. package/dist/src/render/render-block.d.ts +8 -12
  94. package/dist/src/render/render-block.d.ts.map +1 -1
  95. package/dist/src/render/render-block.js +40 -29
  96. package/dist/src/render/render-block.js.map +1 -1
  97. package/dist/src/render/strings.d.ts +15 -0
  98. package/dist/src/render/strings.d.ts.map +1 -0
  99. package/dist/src/render/strings.js +39 -0
  100. package/dist/src/render/strings.js.map +1 -0
  101. package/dist/src/render/term-archive.d.ts.map +1 -1
  102. package/dist/src/render/term-archive.js +33 -25
  103. package/dist/src/render/term-archive.js.map +1 -1
  104. package/dist/src/render/widget-areas.d.ts +14 -0
  105. package/dist/src/render/widget-areas.d.ts.map +1 -0
  106. package/dist/src/render/widget-areas.js +21 -0
  107. package/dist/src/render/widget-areas.js.map +1 -0
  108. package/dist/theme.config.d.ts +1 -1
  109. package/dist/theme.config.js +3 -3
  110. package/dist/theme.config.js.map +1 -1
  111. package/package.json +5 -5
  112. package/src/index.ts +9 -0
  113. package/src/render/blocks/accordion.ts +28 -22
  114. package/src/render/blocks/breakdown.ts +42 -0
  115. package/src/render/blocks/collection-list.ts +234 -103
  116. package/src/render/blocks/cta.ts +48 -19
  117. package/src/render/blocks/embed.ts +47 -29
  118. package/src/render/blocks/faq.ts +22 -31
  119. package/src/render/blocks/feature-grid.ts +73 -41
  120. package/src/render/blocks/gallery.ts +32 -26
  121. package/src/render/blocks/hero.ts +56 -43
  122. package/src/render/blocks/logo-strip.ts +23 -21
  123. package/src/render/blocks/logos.ts +45 -40
  124. package/src/render/blocks/media-figure.ts +49 -24
  125. package/src/render/blocks/pricing-table.ts +31 -40
  126. package/src/render/blocks/prose.ts +16 -6
  127. package/src/render/blocks/quote.ts +34 -27
  128. package/src/render/blocks/stat-counter.ts +35 -29
  129. package/src/render/blocks/stats.ts +46 -38
  130. package/src/render/blocks/testimonial.ts +29 -20
  131. package/src/render/chrome.ts +165 -91
  132. package/src/render/details.ts +276 -0
  133. package/src/render/figures.ts +68 -0
  134. package/src/render/layout.ts +78 -0
  135. package/src/render/page-head.ts +193 -0
  136. package/src/render/render-block.ts +45 -32
  137. package/src/render/strings.ts +74 -0
  138. package/src/render/term-archive.ts +94 -58
  139. package/src/render/widget-areas.ts +24 -0
  140. package/src/styles/archive.css +38 -102
  141. package/src/styles/base.css +503 -554
  142. package/src/styles/blocks.css +913 -666
  143. package/src/styles/chrome.css +506 -0
  144. package/src/styles/listings.css +591 -0
  145. package/src/styles/theme.css +25 -19
  146. package/src/styles/tokens.css +284 -234
  147. package/src/styles/widgets.css +1059 -0
  148. package/tokens.json +18 -18
@@ -1,1002 +1,1249 @@
1
1
  /*
2
- * The seventeen vocabulary blocks (`blocks@2.0`, RFC 0001) — this theme's
3
- * own layouts.
4
- *
5
- * Nothing here declares a colour, a size, a radius or a duration of its
6
- * own: a block composes the design system from `tokens.css` and nothing
7
- * else, which is what keeps a skin swap a whole-theme change.
2
+ * The vocabulary blocks, except the lists and the pages of entries
3
+ * (`listings.css`). Everything reads `tokens.css`.
8
4
  */
9
5
 
10
- /* --- hero: the cause, warm and centred on mobile, two columns from md --- */
6
+ /* --------------------------------------------------------------------------
7
+ hero: the photograph across the window, the statement on paper rising into
8
+ its bottom edge.
9
+ -------------------------------------------------------------------------- */
11
10
 
12
- .cg-hero {
13
- display: grid;
14
- gap: var(--cg-s10);
15
- margin-block-start: var(--cg-s10);
16
- text-align: center;
11
+ .ca-hero {
12
+ padding-block-start: 0;
17
13
  }
18
14
 
19
- .cg-hero__copy {
20
- display: flex;
21
- flex-direction: column;
22
- align-items: center;
15
+ .ca-hero[data-media="false"] {
16
+ padding-block-start: calc(var(--ca-section) * 0.55);
23
17
  }
24
18
 
25
- .cg-hero__title {
26
- margin: var(--cg-s4) 0 0;
27
- font-size: var(--cg-text-3xl);
28
- line-height: var(--cg-leading-tight);
29
- letter-spacing: var(--cg-tracking-tight);
30
- text-wrap: balance;
19
+ .ca-hero__media {
20
+ margin: 0;
31
21
  }
32
22
 
33
- .cg-hero__subtitle {
34
- margin: var(--cg-s5) 0 0;
35
- max-inline-size: var(--cg-measure-narrow);
36
- font-size: var(--cg-text-lg);
37
- line-height: var(--cg-leading-relaxed);
38
- color: var(--cg-ink-muted);
39
- text-wrap: pretty;
23
+ .ca-hero__image {
24
+ inline-size: 100%;
25
+ block-size: clamp(15rem, 36vw, 34rem);
26
+ object-position: 50% 30%;
27
+ background: var(--ca-band);
40
28
  }
41
29
 
42
- .cg-hero__frame {
43
- position: relative;
44
- justify-self: center;
45
- inline-size: 100%;
46
- max-inline-size: 34rem;
30
+ .ca-hero__inner {
31
+ row-gap: var(--ca-s6);
47
32
  }
48
33
 
49
- /* A flat accent "mat" behind the photo, like coloured card stock peeking
50
- out from under a framed print — never a blurred glow. */
51
- .cg-hero__halo {
52
- position: absolute;
53
- inset: -12%;
54
- z-index: 0;
55
- border-radius: var(--cg-radius-xl);
56
- background: var(--cg-accent-soft);
34
+ .ca-hero__panel {
35
+ display: grid;
36
+ justify-items: start;
37
+ row-gap: var(--ca-s5);
38
+ padding-block-start: var(--ca-s8);
57
39
  }
58
40
 
59
- .cg-hero__media {
60
- position: relative;
61
- z-index: 1;
62
- inline-size: 100%;
63
- border-radius: var(--cg-radius-xl);
64
- box-shadow: var(--cogenta-shadow-md);
41
+ .ca-hero__aside {
42
+ display: grid;
43
+ justify-items: start;
44
+ row-gap: var(--ca-s6);
65
45
  }
66
46
 
67
- @media (min-width: 60rem) {
68
- .cg-hero {
69
- grid-template-columns: 1fr 1fr;
70
- align-items: center;
71
- text-align: start;
72
- gap: var(--cg-s16);
47
+ .ca-hero__title {
48
+ max-inline-size: 18ch;
49
+ font-size: var(--ca-size-statement);
50
+ font-weight: var(--ca-weight-bold);
51
+ font-stretch: var(--ca-stretch-display);
52
+ line-height: var(--ca-leading-display);
53
+ letter-spacing: var(--ca-tracking-display);
54
+ }
55
+
56
+ .ca-hero__subtitle {
57
+ margin: 0;
58
+ max-inline-size: 46ch;
59
+ color: var(--ca-ink-muted);
60
+ font-size: var(--ca-size-lead);
61
+ line-height: var(--ca-leading-lead);
62
+ }
63
+
64
+ @media (min-width: 64rem) {
65
+ .ca-hero__panel {
66
+ grid-column: 1 / span 7;
67
+ grid-row: 1;
68
+ }
69
+
70
+ .ca-hero__aside {
71
+ grid-column: 9 / span 4;
72
+ grid-row: 1;
73
+ padding-block-start: var(--ca-s10);
73
74
  }
74
75
 
75
- .cg-hero__copy {
76
- align-items: flex-start;
76
+ .ca-hero[data-media="false"] .ca-hero__aside {
77
+ align-self: end;
78
+ padding-block-start: 0;
77
79
  }
78
80
 
79
- .cg-hero__title {
80
- font-size: calc(var(--cg-text-3xl) * 1.15);
81
+ /* The sheet starts at the window's left edge and its words on the first
82
+ column, so the photograph shows above it and to its right. */
83
+ .ca-hero[data-media="true"] .ca-hero__panel {
84
+ position: relative;
85
+ margin-block-start: calc(var(--ca-s24) * -1);
86
+ margin-inline-start: calc(var(--ca-edge) * -1);
87
+ padding: var(--ca-s10) var(--ca-s10) 0 var(--ca-edge);
88
+ background: var(--ca-canvas);
81
89
  }
82
90
  }
83
91
 
84
- /* --- prose ------------------------------------------------------------- */
92
+ /* --------------------------------------------------------------------------
93
+ prose: the reading column, on the page title's own edge.
94
+ -------------------------------------------------------------------------- */
85
95
 
86
- .cg-prose {
87
- max-inline-size: var(--cg-measure);
88
- margin-inline: auto;
89
- line-height: var(--cg-leading-relaxed);
96
+ .ca-prose__body {
97
+ max-inline-size: var(--ca-measure);
98
+ font-size: var(--ca-text-md);
99
+ line-height: var(--ca-leading-text);
90
100
  }
91
101
 
92
- .cg-prose > :first-child {
93
- margin-block-start: 0;
102
+ .ca-prose + .ca-prose {
103
+ padding-block-start: 0;
94
104
  }
95
105
 
96
- .cg-prose > :last-child {
97
- margin-block-end: 0;
106
+ .ca-prose__body > * {
107
+ margin: 0;
98
108
  }
99
109
 
100
- .cg-prose h2,
101
- .cg-prose h3,
102
- .cg-prose h4 {
103
- letter-spacing: var(--cg-tracking-snug);
104
- line-height: var(--cg-leading-snug);
105
- text-wrap: balance;
110
+ .ca-prose__body > * + * {
111
+ margin-block-start: var(--ca-s5);
106
112
  }
107
113
 
108
- .cg-prose h2 {
109
- margin-block: var(--cg-s12) var(--cg-s4);
110
- font-size: var(--cg-text-xl);
114
+ .ca-prose__body :where(h2) {
115
+ margin-block-start: var(--ca-s12);
116
+ font-size: clamp(var(--ca-text-xl), calc(0.95rem + 1vw), var(--ca-text-2xl));
117
+ font-weight: var(--ca-weight-semibold);
118
+ font-stretch: var(--ca-stretch-display);
119
+ letter-spacing: var(--ca-tracking-heading);
111
120
  }
112
121
 
113
- .cg-prose h3 {
114
- margin-block: var(--cg-s10) var(--cg-s3);
115
- font-size: var(--cg-text-lg);
122
+ .ca-prose__body :where(h3, h4) {
123
+ margin-block-start: var(--ca-s8);
124
+ font-size: var(--ca-text-lg);
125
+ font-weight: var(--ca-weight-semibold);
116
126
  }
117
127
 
118
- .cg-prose h4 {
119
- margin-block: var(--cg-s8) var(--cg-s2);
120
- font-size: var(--cg-text-md);
128
+ .ca-prose__body :where(h2, h3, h4) + * {
129
+ margin-block-start: var(--ca-s3);
121
130
  }
122
131
 
123
- .cg-prose p {
124
- margin-block: var(--cg-s5);
125
- text-wrap: pretty;
132
+ .ca-prose__body > :first-child {
133
+ margin-block-start: 0;
126
134
  }
127
135
 
128
- .cg-prose ul,
129
- .cg-prose ol {
130
- margin-block: var(--cg-s5);
131
- padding-inline-start: var(--cg-s6);
136
+ .ca-prose__body a {
137
+ color: var(--ca-ink);
138
+ text-decoration-color: var(--ca-green);
139
+ text-decoration-thickness: var(--ca-rule-strong);
132
140
  }
133
141
 
134
- .cg-prose li {
135
- margin-block: var(--cg-s2);
142
+ .ca-prose__body a:hover {
143
+ color: var(--ca-green);
136
144
  }
137
145
 
138
- .cg-prose li::marker {
139
- color: var(--cg-accent);
140
- font-weight: var(--cg-weight-bold);
146
+ .ca-prose__body :where(ul, ol) {
147
+ padding-inline-start: 1.25em;
141
148
  }
142
149
 
143
- .cg-prose strong {
144
- font-weight: var(--cg-weight-semibold);
145
- color: var(--cg-ink);
150
+ .ca-prose__body li + li {
151
+ margin-block-start: var(--ca-s2);
146
152
  }
147
153
 
148
- .cg-prose blockquote {
149
- margin-block: var(--cg-s8);
150
- margin-inline: 0;
151
- padding: var(--cg-s5) var(--cg-s6);
152
- border-radius: var(--cg-radius-md);
153
- background: var(--cg-surface-sunken);
154
- color: var(--cg-ink-muted);
155
- font-family: var(--cg-font-display);
156
- font-size: var(--cg-text-lg);
157
- font-style: italic;
154
+ .ca-prose__body li::marker {
155
+ color: var(--ca-green);
156
+ font-weight: var(--ca-weight-bold);
158
157
  }
159
158
 
160
- .cg-prose blockquote > :first-child {
161
- margin-block-start: 0;
159
+ .ca-prose__body strong {
160
+ font-weight: var(--ca-weight-bold);
162
161
  }
163
162
 
164
- .cg-prose blockquote > :last-child {
165
- margin-block-end: 0;
163
+ .ca-prose__body blockquote {
164
+ margin-block: var(--ca-s8);
165
+ padding-inline-start: var(--ca-s6);
166
+ border-inline-start: 3px solid var(--ca-green);
167
+ font-family: var(--ca-font-display);
168
+ font-size: var(--ca-text-lg);
169
+ font-weight: var(--ca-weight-medium);
170
+ line-height: var(--ca-leading-lead);
166
171
  }
167
172
 
168
- .cg-prose code {
169
- font-family: var(--cogenta-font-mono);
170
- font-size: 0.875em;
171
- background: var(--cg-surface-sunken);
172
- border-radius: var(--cg-radius-xs);
173
- padding: 0.15em 0.4em;
173
+ .ca-prose__body :where(blockquote p) {
174
+ margin: 0;
174
175
  }
175
176
 
176
- .cg-prose__figure {
177
- margin-block: var(--cg-s8);
178
- margin-inline: 0;
177
+ .ca-prose__body .cg-prose__figure {
178
+ margin-block: var(--ca-s8);
179
179
  }
180
180
 
181
- .cg-prose__figure img {
181
+ .ca-prose__body .cg-prose__figure img {
182
182
  inline-size: 100%;
183
- border-radius: var(--cg-radius-md);
184
- box-shadow: var(--cogenta-shadow-sm);
185
183
  }
186
184
 
187
- .cg-prose__figure figcaption {
188
- margin-block-start: var(--cg-s3);
189
- color: var(--cg-ink-subtle);
190
- font-size: var(--cg-text-sm);
185
+ .ca-prose__body .cg-prose__figure figcaption {
186
+ margin-block-start: var(--ca-s3);
187
+ color: var(--ca-ink-muted);
188
+ font-size: var(--ca-text-caption);
191
189
  }
192
190
 
193
- /* --- mediaFigure --------------------------------------------------------- */
191
+ /* The first paragraph under a page's title opens the page a step larger. */
192
+ :where(:is(.ca-main, .cg-sidebar-layout__content) > .ca-page-head + .ca-prose)
193
+ .ca-prose__body
194
+ > p:first-child {
195
+ font-size: var(--ca-size-lead);
196
+ line-height: var(--ca-leading-lead);
197
+ }
194
198
 
195
- .cg-figure {
196
- margin-inline: auto;
199
+ @media (min-width: 64rem) {
200
+ .ca-prose__body {
201
+ grid-column: 1 / span 8;
202
+ }
197
203
  }
198
204
 
199
- .cg-figure[data-align="start"],
200
- .cg-figure[data-align="end"] {
201
- max-inline-size: calc(var(--cg-measure) / 2);
205
+ /* --------------------------------------------------------------------------
206
+ mediaFigure
207
+ -------------------------------------------------------------------------- */
208
+
209
+ .ca-figure__inner {
210
+ margin-block: 0;
211
+ row-gap: var(--ca-s3);
202
212
  }
203
213
 
204
- .cg-figure[data-align="start"] {
205
- float: inline-start;
206
- margin-inline-end: var(--cg-s6);
214
+ .ca-figure__frame {
215
+ overflow: hidden;
216
+ background: var(--ca-band);
207
217
  }
208
218
 
209
- .cg-figure[data-align="end"] {
210
- float: inline-end;
211
- margin-inline-start: var(--cg-s6);
219
+ .ca-figure__image {
220
+ inline-size: 100%;
212
221
  }
213
222
 
214
- .cg-figure[data-align="full"] {
223
+ .ca-figure__frame[style] .ca-figure__image {
224
+ block-size: 100%;
225
+ }
226
+
227
+ .ca-figure__caption {
228
+ display: flex;
229
+ flex-wrap: wrap;
230
+ gap: var(--ca-s1) var(--ca-s3);
231
+ max-inline-size: 62ch;
232
+ color: var(--ca-ink-muted);
233
+ font-size: var(--ca-text-caption);
234
+ line-height: var(--ca-leading-ui);
235
+ }
236
+
237
+ .ca-figure__credit {
238
+ color: var(--ca-ink-subtle);
239
+ }
240
+
241
+ .ca-figure[data-align="full"] .ca-figure__inner {
215
242
  max-inline-size: none;
216
243
  padding-inline: 0;
217
244
  }
218
245
 
219
- .cg-figure__media {
220
- inline-size: 100%;
221
- aspect-ratio: var(--cg-ratio, auto);
222
- border-radius: var(--cg-radius-xl);
223
- box-shadow: var(--cogenta-shadow-md);
246
+ .ca-figure[data-align="full"] .ca-figure__caption {
247
+ padding-inline: var(--ca-edge);
224
248
  }
225
249
 
226
- .cg-figure[data-align="full"] .cg-figure__media {
227
- border-radius: 0;
228
- box-shadow: none;
250
+ @media (min-width: 64rem) {
251
+ .ca-figure[data-align="center"] .ca-figure__frame,
252
+ .ca-figure[data-align="center"] .ca-figure__caption {
253
+ grid-column: 2 / span 10;
254
+ }
255
+
256
+ .ca-figure[data-align="start"] .ca-figure__frame {
257
+ grid-column: 1 / span 7;
258
+ }
259
+
260
+ .ca-figure[data-align="start"] .ca-figure__caption {
261
+ grid-column: 9 / span 4;
262
+ grid-row: 1;
263
+ align-self: end;
264
+ }
265
+
266
+ .ca-figure[data-align="end"] .ca-figure__frame {
267
+ grid-column: 6 / span 7;
268
+ grid-row: 1;
269
+ }
270
+
271
+ .ca-figure[data-align="end"] .ca-figure__caption {
272
+ grid-column: 1 / span 4;
273
+ grid-row: 1;
274
+ align-self: end;
275
+ }
229
276
  }
230
277
 
231
- .cg-figure__caption {
232
- margin-block-start: var(--cg-s4);
233
- color: var(--cg-ink-subtle);
234
- font-size: var(--cg-text-sm);
235
- text-wrap: pretty;
278
+ /* --------------------------------------------------------------------------
279
+ featureGrid: ways in (with icons) and steps (without)
280
+ -------------------------------------------------------------------------- */
281
+
282
+ .ca-ways__items,
283
+ .ca-steps__items {
284
+ display: grid;
285
+ gap: var(--ca-s10) var(--ca-col-gap);
286
+ margin: 0;
287
+ padding: 0;
288
+ list-style: none;
236
289
  }
237
290
 
238
- .cg-figure[data-align="full"] .cg-figure__caption {
239
- max-inline-size: var(--cg-measure);
240
- margin-inline: auto;
241
- padding-inline: var(--cg-gutter);
291
+ .ca-ways__item,
292
+ .ca-steps__item {
293
+ display: grid;
294
+ align-content: start;
295
+ gap: var(--ca-s3);
296
+ padding-block-start: var(--ca-s5);
242
297
  }
243
298
 
244
- .cg-figure__credit {
245
- color: var(--cg-ink-subtle);
299
+ .ca-ways__item {
300
+ border-block-start: var(--ca-rule) solid var(--ca-line-strong);
246
301
  }
247
302
 
248
- .cg-figure__credit::before {
249
- content: " — ";
303
+ .ca-steps__item {
304
+ border-block-start: var(--ca-rule-strong) solid var(--ca-line-ink);
250
305
  }
251
306
 
252
- /* --- featureGrid → "What we do": three rounded programme cards --------- */
307
+ .ca-ways__icon {
308
+ inline-size: 1.75rem;
309
+ block-size: 1.75rem;
310
+ color: var(--ca-green);
311
+ }
253
312
 
254
- .cg-features__items {
255
- display: grid;
256
- gap: var(--cg-s6);
257
- grid-template-columns: 1fr;
313
+ .ca-ways__name,
314
+ .ca-steps__name {
315
+ font-size: var(--ca-text-lg);
316
+ font-weight: var(--ca-weight-semibold);
317
+ line-height: var(--ca-leading-heading);
258
318
  }
259
319
 
260
- @media (min-width: 42rem) {
261
- .cg-features__items {
262
- grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
263
- }
320
+ .ca-ways__text,
321
+ .ca-steps__text {
322
+ margin: 0;
323
+ max-inline-size: 42ch;
324
+ color: var(--ca-ink-muted);
264
325
  }
265
326
 
266
- .cg-feature {
267
- padding: var(--cg-s8) var(--cg-s6);
268
- background: var(--cg-surface-raised);
269
- border-radius: var(--cg-radius-lg);
270
- box-shadow: var(--cogenta-shadow-sm);
271
- transition:
272
- box-shadow var(--cg-duration) var(--cg-ease),
273
- transform var(--cg-duration) var(--cg-ease);
327
+ .ca-steps__number {
328
+ color: var(--ca-green);
329
+ font-family: var(--ca-font-display);
330
+ font-size: var(--ca-text-3xl);
331
+ font-weight: var(--ca-weight-bold);
332
+ font-stretch: var(--ca-stretch-figure);
333
+ font-variant-numeric: lining-nums tabular-nums;
334
+ line-height: 1;
274
335
  }
275
336
 
276
- .cg-feature:hover {
277
- box-shadow: var(--cogenta-shadow-md);
278
- transform: translateY(-2px);
337
+ @media (min-width: 40rem) {
338
+ .ca-ways__items,
339
+ .ca-steps__items {
340
+ grid-template-columns: repeat(2, minmax(0, 1fr));
341
+ }
279
342
  }
280
343
 
281
- .cg-feature__icon {
282
- display: flex;
283
- align-items: center;
284
- justify-content: center;
285
- inline-size: var(--cg-s10);
286
- block-size: var(--cg-s10);
287
- margin-block-end: var(--cg-s5);
288
- background: var(--cg-accent-soft);
289
- color: var(--cg-accent-soft-fg);
290
- border-radius: var(--cg-radius-pill);
344
+ @media (min-width: 64rem) {
345
+ .ca-ways[data-count="3"] .ca-ways__items,
346
+ .ca-steps[data-count="3"] .ca-steps__items {
347
+ grid-template-columns: repeat(3, minmax(0, 1fr));
348
+ }
349
+
350
+ .ca-ways[data-count="4"] .ca-ways__items,
351
+ .ca-steps[data-count="4"] .ca-steps__items {
352
+ grid-template-columns: repeat(4, minmax(0, 1fr));
353
+ }
354
+
355
+ .ca-ways[data-count="1"] .ca-ways__items,
356
+ .ca-steps[data-count="1"] .ca-steps__items {
357
+ grid-template-columns: minmax(0, 1fr);
358
+ grid-column: 1 / span 6;
359
+ }
291
360
  }
292
361
 
293
- .cg-feature__icon svg {
294
- inline-size: 1.4rem;
295
- block-size: 1.4rem;
362
+ /* --------------------------------------------------------------------------
363
+ cta: the donation ask, in the signal yellow, across the window
364
+ -------------------------------------------------------------------------- */
365
+
366
+ .ca-cta {
367
+ padding-block: calc(var(--ca-section) * 0.7);
368
+ background: var(--ca-signal);
369
+ color: var(--ca-signal-ink);
296
370
  }
297
371
 
298
- .cg-feature__title {
299
- margin: 0 0 var(--cg-s2);
300
- font-size: var(--cg-text-lg);
301
- line-height: var(--cg-leading-snug);
372
+ .ca-cta[data-variant-background] {
373
+ background: var(--ca-band);
374
+ color: var(--ca-ink);
302
375
  }
303
376
 
304
- .cg-feature__link {
377
+ .ca-cta__inner {
378
+ row-gap: var(--ca-s8);
379
+ }
380
+
381
+ .ca-cta__title {
382
+ max-inline-size: 16ch;
305
383
  color: inherit;
306
- text-decoration: none;
384
+ font-size: clamp(var(--ca-text-2xl), calc(1rem + 2.8vw), var(--ca-text-4xl));
385
+ font-weight: var(--ca-weight-bold);
386
+ font-stretch: var(--ca-stretch-display);
387
+ line-height: var(--ca-leading-display);
388
+ letter-spacing: var(--ca-tracking-display);
389
+ }
390
+
391
+ .ca-cta__body {
392
+ display: grid;
393
+ gap: var(--ca-s8);
394
+ align-content: start;
307
395
  }
308
396
 
309
- .cg-feature:hover .cg-feature__link {
310
- color: var(--cg-accent);
397
+ .ca-cta__gifts {
398
+ display: grid;
399
+ gap: var(--ca-s5);
311
400
  }
312
401
 
313
- .cg-feature__text {
402
+ .ca-cta__text {
314
403
  margin: 0;
315
- color: var(--cg-ink-muted);
316
- line-height: var(--cg-leading-relaxed);
317
- text-wrap: pretty;
404
+ max-inline-size: 46ch;
405
+ font-size: var(--ca-size-lead);
406
+ line-height: var(--ca-leading-lead);
318
407
  }
319
408
 
320
- /* --- cta → the "every gift counts" donate band -------------------------- */
409
+ /* The amounts share one column, so what each buys starts on one line. */
410
+ .ca-cta__ladder {
411
+ display: grid;
412
+ grid-template-columns: minmax(0, 1fr);
413
+ margin: 0;
414
+ border-block-end: var(--ca-rule) solid var(--ca-signal-line);
415
+ }
321
416
 
322
- .cg-cta {
323
- padding-block: var(--cg-s16);
324
- border-radius: var(--cg-radius-xl);
325
- background: var(--cg-accent);
326
- color: var(--cg-accent-fg);
327
- text-align: center;
417
+ .ca-cta__gift {
418
+ display: grid;
419
+ row-gap: var(--ca-s1);
420
+ padding-block: var(--ca-s4);
421
+ border-block-start: var(--ca-rule) solid var(--ca-signal-line);
328
422
  }
329
423
 
330
- .cg-cta__inner {
331
- max-inline-size: var(--cg-measure-narrow);
332
- margin-inline: auto;
333
- padding-inline: var(--cg-gutter);
424
+ @media (min-width: 40rem) {
425
+ .ca-cta__ladder {
426
+ grid-template-columns: max-content minmax(0, 1fr);
427
+ }
428
+
429
+ .ca-cta__gift {
430
+ grid-column: 1 / -1;
431
+ grid-template-columns: subgrid;
432
+ column-gap: var(--ca-s6);
433
+ align-items: baseline;
434
+ }
334
435
  }
335
436
 
336
- .cg-cta__title {
437
+ .ca-cta__amount {
337
438
  margin: 0;
338
- font-size: var(--cg-text-2xl);
339
- line-height: var(--cg-leading-tight);
340
- text-wrap: balance;
439
+ font-family: var(--ca-font-display);
440
+ font-size: var(--ca-text-2xl);
441
+ font-weight: var(--ca-weight-bold);
442
+ font-stretch: var(--ca-stretch-figure);
443
+ font-variant-numeric: lining-nums tabular-nums;
444
+ line-height: 1;
341
445
  }
342
446
 
343
- .cg-cta__text {
344
- margin: var(--cg-s4) 0 0;
345
- opacity: 0.92;
346
- text-wrap: pretty;
447
+ .ca-cta__buys {
448
+ margin: 0;
449
+ max-inline-size: 40ch;
347
450
  }
348
451
 
349
- .cg-cta .cg-actions {
350
- justify-content: center;
351
- margin-block-start: var(--cg-s8);
452
+ .ca-cta:not([data-variant-background]) .cg-action[data-emphasis="primary"] {
453
+ border-color: var(--ca-signal-ink);
454
+ background: var(--ca-signal-ink);
455
+ color: var(--ca-signal);
352
456
  }
353
457
 
354
- .cg-cta .cg-action[data-emphasis="primary"] {
355
- background: var(--cg-accent-fg);
356
- color: var(--cg-accent);
458
+ .ca-cta:not([data-variant-background]) .cg-action[data-emphasis="primary"]:hover {
459
+ border-color: var(--ca-signal-ink);
460
+ background: var(--ca-signal-hover);
461
+ color: var(--ca-signal-ink);
357
462
  }
358
463
 
359
- .cg-cta .cg-action[data-emphasis="secondary"] {
360
- background: transparent;
361
- color: var(--cg-accent-fg);
362
- box-shadow: inset 0 0 0 1px color-mix(in oklab, var(--cg-accent-fg) 60%, transparent);
464
+ .ca-cta:not([data-variant-background]) .cg-action[data-emphasis="secondary"],
465
+ .ca-cta:not([data-variant-background]) .cg-action[data-emphasis="secondary"]:hover {
466
+ color: var(--ca-signal-ink);
467
+ text-decoration-color: var(--ca-signal-ink);
363
468
  }
364
469
 
365
- /* --- gallery: a warm contact sheet --------------------------------------- */
470
+ @media (min-width: 64rem) {
471
+ .ca-cta__title {
472
+ grid-column: 1 / span 6;
473
+ }
366
474
 
367
- .cg-gallery__items {
368
- display: grid;
369
- gap: var(--cg-s4);
370
- grid-template-columns: repeat(2, 1fr);
475
+ .ca-cta__body {
476
+ grid-column: 7 / span 6;
477
+ grid-row: 1;
478
+ }
371
479
  }
372
480
 
373
- @media (min-width: 42rem) {
374
- .cg-gallery__items {
375
- grid-template-columns: repeat(3, 1fr);
376
- }
481
+ /* --------------------------------------------------------------------------
482
+ gallery
483
+ -------------------------------------------------------------------------- */
484
+
485
+ .ca-gallery__items {
486
+ display: grid;
487
+ grid-template-columns: repeat(2, minmax(0, 1fr));
488
+ gap: var(--ca-col-gap);
489
+ margin: 0;
490
+ padding: 0;
491
+ list-style: none;
377
492
  }
378
493
 
379
- .cg-gallery[data-layout="carousel"] .cg-gallery__items {
380
- display: flex;
381
- grid-template-columns: none;
494
+ .ca-gallery__item {
495
+ min-inline-size: 0;
382
496
  }
383
497
 
384
- .cg-gallery__item {
498
+ .ca-gallery__image {
499
+ inline-size: 100%;
500
+ block-size: 100%;
385
501
  aspect-ratio: 4 / 3;
386
- overflow: hidden;
387
- border-radius: var(--cg-radius-md);
388
- box-shadow: var(--cogenta-shadow-sm);
389
- scroll-snap-align: start;
502
+ background: var(--ca-band);
390
503
  }
391
504
 
392
- .cg-gallery[data-layout="carousel"] .cg-gallery__item {
393
- flex: 0 0 15rem;
505
+ .ca-gallery[data-layout="grid"][data-count="1"] .ca-gallery__items {
506
+ grid-template-columns: minmax(0, 1fr);
394
507
  }
395
508
 
396
- .cg-gallery__item img {
397
- inline-size: 100%;
398
- block-size: 100%;
399
- object-fit: cover;
509
+ .ca-gallery[data-layout="grid"][data-count="1"] .ca-gallery__image {
510
+ aspect-ratio: 16 / 9;
400
511
  }
401
512
 
402
- /* --- quote --------------------------------------------------------------- */
513
+ .ca-gallery[data-layout="grid"][data-count="3"] .ca-gallery__item:first-child {
514
+ grid-column: 1 / -1;
515
+ }
403
516
 
404
- .cg-quote {
405
- margin-inline: auto;
406
- max-inline-size: var(--cg-measure);
407
- padding: var(--cg-s10) var(--cg-s8);
408
- background: var(--cg-surface-sunken);
409
- border-radius: var(--cg-radius-lg);
517
+ .ca-gallery[data-layout="masonry"] .ca-gallery__items {
518
+ display: block;
519
+ columns: 2;
520
+ column-gap: var(--ca-col-gap);
410
521
  }
411
522
 
412
- .cg-quote__text p {
413
- margin: 0;
414
- font-family: var(--cg-font-display);
415
- font-size: var(--cg-text-xl);
416
- line-height: var(--cg-leading-snug);
417
- text-wrap: balance;
523
+ .ca-gallery[data-layout="masonry"] .ca-gallery__item {
524
+ margin-block-end: var(--ca-col-gap);
525
+ break-inside: avoid;
418
526
  }
419
527
 
420
- .cg-quote__attribution {
421
- display: flex;
422
- align-items: center;
423
- gap: var(--cg-s3);
424
- margin-block-start: var(--cg-s5);
425
- color: var(--cg-ink-muted);
426
- font-size: var(--cg-text-sm);
528
+ .ca-gallery[data-layout="masonry"] .ca-gallery__image {
529
+ block-size: auto;
530
+ aspect-ratio: auto;
427
531
  }
428
532
 
429
- .cg-quote__avatar {
430
- inline-size: 2.5rem;
431
- block-size: 2.5rem;
432
- border-radius: var(--cg-radius-pill);
433
- object-fit: cover;
533
+ .ca-gallery__viewport,
534
+ .ca-list__viewport {
535
+ overflow-x: auto;
536
+ overscroll-behavior-inline: contain;
537
+ scroll-snap-type: inline mandatory;
538
+ padding-block-end: var(--ca-s4);
434
539
  }
435
540
 
436
- .cg-quote__author {
437
- font-weight: var(--cg-weight-semibold);
438
- color: var(--cg-ink);
541
+ .ca-gallery__viewport .ca-gallery__items {
542
+ grid-template-columns: none;
543
+ grid-auto-flow: column;
544
+ grid-auto-columns: min(80%, 26rem);
439
545
  }
440
546
 
441
- .cg-quote__author::after {
442
- content: "";
547
+ .ca-gallery__viewport .ca-gallery__item {
548
+ scroll-snap-align: start;
443
549
  }
444
550
 
445
- .cg-quote__role::before {
446
- content: " · ";
551
+ @media (min-width: 64rem) {
552
+ .ca-gallery[data-layout="grid"] .ca-gallery__items {
553
+ grid-template-columns: repeat(12, minmax(0, 1fr));
554
+ }
555
+
556
+ .ca-gallery[data-layout="grid"] .ca-gallery__item {
557
+ grid-column: span 4;
558
+ }
559
+
560
+ .ca-gallery[data-layout="grid"][data-count="1"] .ca-gallery__item {
561
+ grid-column: 1 / -1;
562
+ }
563
+
564
+ .ca-gallery[data-layout="grid"][data-count="2"] .ca-gallery__item,
565
+ .ca-gallery[data-layout="grid"][data-count="4"] .ca-gallery__item {
566
+ grid-column: span 6;
567
+ }
568
+
569
+ .ca-gallery[data-layout="grid"][data-count="2"] .ca-gallery__image,
570
+ .ca-gallery[data-layout="grid"][data-count="4"] .ca-gallery__image {
571
+ aspect-ratio: 3 / 2;
572
+ }
573
+
574
+ .ca-gallery[data-layout="grid"][data-count="3"] .ca-gallery__item:first-child {
575
+ grid-column: span 8;
576
+ grid-row: span 2;
577
+ }
578
+
579
+ .ca-gallery[data-layout="grid"][data-count="3"] .ca-gallery__item:first-child .ca-gallery__image {
580
+ aspect-ratio: auto;
581
+ }
582
+
583
+ .ca-gallery[data-layout="masonry"] .ca-gallery__items {
584
+ columns: 3;
585
+ }
447
586
  }
448
587
 
449
- /* --- faq: rounded disclosure cards --------------------------------------- */
588
+ /* --------------------------------------------------------------------------
589
+ quote and testimonial
590
+ -------------------------------------------------------------------------- */
450
591
 
451
- .cg-faq__item {
452
- margin-block-end: var(--cg-s3);
592
+ .ca-quote__inner,
593
+ .ca-story__inner {
594
+ margin-block: 0;
453
595
  }
454
596
 
455
- .cg-faq__details {
456
- border-radius: var(--cg-radius-md);
457
- background: var(--cg-surface-raised);
458
- box-shadow: var(--cg-ring);
459
- overflow: hidden;
597
+ .ca-quote__quote,
598
+ .ca-story__quote {
599
+ margin: 0;
600
+ }
601
+
602
+ .ca-quote__text {
603
+ margin: 0;
604
+ font-family: var(--ca-font-display);
605
+ font-size: clamp(var(--ca-text-2xl), calc(1rem + 2.2vw), var(--ca-text-4xl));
606
+ font-weight: var(--ca-weight-semibold);
607
+ font-stretch: var(--ca-stretch-display);
608
+ line-height: 1.12;
609
+ letter-spacing: var(--ca-tracking-display);
610
+ text-indent: var(--ca-hang);
611
+ quotes: "\201C" "\201D";
460
612
  }
461
613
 
462
- .cg-faq__question {
614
+ .ca-quote__text::before {
615
+ content: open-quote;
616
+ }
617
+
618
+ .ca-quote__text::after {
619
+ content: close-quote;
620
+ }
621
+
622
+ .ca-quote__attribution {
463
623
  display: flex;
464
624
  align-items: center;
465
- justify-content: space-between;
466
- gap: var(--cg-s4);
467
- padding: var(--cg-s5) var(--cg-s6);
468
- font-weight: var(--cg-weight-semibold);
469
- cursor: pointer;
470
- list-style: none;
625
+ gap: var(--ca-s4);
626
+ margin-block-start: var(--ca-s6);
471
627
  }
472
628
 
473
- .cg-faq__question::-webkit-details-marker {
474
- display: none;
629
+ .ca-quote__avatar {
630
+ flex: none;
631
+ inline-size: 3.5rem;
632
+ block-size: 3.5rem;
633
+ aspect-ratio: 1;
634
+ background: var(--ca-band);
475
635
  }
476
636
 
477
- .cg-faq__question::after {
478
- content: "+";
479
- flex-shrink: 0;
480
- color: var(--cg-accent);
481
- font-size: var(--cg-text-lg);
482
- transition: transform var(--cg-duration) var(--cg-ease);
637
+ .ca-quote__who,
638
+ .ca-story__attribution {
639
+ display: grid;
640
+ gap: var(--ca-s1);
641
+ line-height: var(--ca-leading-ui);
483
642
  }
484
643
 
485
- .cg-faq__details[open] .cg-faq__question::after {
486
- transform: rotate(45deg);
644
+ .ca-quote__author,
645
+ .ca-story__name {
646
+ font-weight: var(--ca-weight-bold);
487
647
  }
488
648
 
489
- .cg-faq__answer {
490
- padding: 0 var(--cg-s6) var(--cg-s6);
491
- color: var(--cg-ink-muted);
492
- line-height: var(--cg-leading-relaxed);
649
+ .ca-quote__role,
650
+ .ca-story__role {
651
+ color: var(--ca-ink-muted);
493
652
  }
494
653
 
495
- .cg-faq__answer p {
496
- margin: 0;
654
+ .ca-story__inner {
655
+ row-gap: var(--ca-s8);
656
+ }
657
+
658
+ .ca-story__portrait {
659
+ max-inline-size: 22rem;
497
660
  }
498
661
 
499
- /* --- stats → the impact band --------------------------------------------- */
662
+ .ca-story__image {
663
+ inline-size: 100%;
664
+ aspect-ratio: 4 / 5;
665
+ background: var(--ca-band);
666
+ }
500
667
 
501
- .cg-impact__items {
668
+ .ca-story__words {
502
669
  display: grid;
503
- gap: var(--cg-s8);
504
- /* `auto-fit`, not a fixed column count: this block is also reused, with
505
- only two items, for an event's own "When / Where" panel — a fixed
506
- `repeat(4, 1fr)` at desktop widths left two ghost columns of empty
507
- space beside those two items (seen live on an event's own page).
508
- `auto-fit` collapses the tracks nothing was placed in, so two items
509
- stretch to fill the row exactly as four items already did. */
510
- grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr));
511
- margin: 0;
512
- padding: var(--cg-s10) var(--cg-s6);
513
- background: var(--cg-surface-sunken);
514
- border-radius: var(--cg-radius-xl);
515
- text-align: center;
670
+ gap: var(--ca-s6);
516
671
  }
517
672
 
518
- .cg-impact-stat {
519
- display: flex;
520
- flex-direction: column-reverse;
521
- gap: var(--cg-s2);
673
+ .ca-story__quote {
674
+ font-family: var(--ca-font-display);
675
+ font-size: var(--ca-size-quote);
676
+ font-weight: var(--ca-weight-medium);
677
+ line-height: 1.24;
678
+ letter-spacing: var(--ca-tracking-heading);
679
+ quotes: "\201C" "\201D";
522
680
  }
523
681
 
524
- .cg-impact-stat__value {
525
- display: flex;
526
- align-items: baseline;
527
- justify-content: center;
528
- gap: var(--cg-s1);
682
+ .ca-story__quote p {
529
683
  margin: 0;
530
- color: var(--cg-tint);
531
- font-family: var(--cg-font-display);
532
- font-size: var(--cg-text-3xl);
533
- font-weight: var(--cg-weight-bold);
534
- line-height: var(--cg-leading-tight);
535
- font-variant-numeric: tabular-nums;
536
684
  }
537
685
 
538
- .cg-impact-stat__unit {
539
- font-size: var(--cg-text-md);
540
- font-weight: var(--cg-weight-semibold);
541
- color: var(--cg-ink-muted);
686
+ .ca-story__quote p + p {
687
+ margin-block-start: var(--ca-s4);
542
688
  }
543
689
 
544
- .cg-impact-stat__label {
545
- color: var(--cg-ink-muted);
546
- font-size: var(--cg-text-sm);
547
- font-weight: var(--cg-weight-medium);
548
- text-wrap: balance;
690
+ .ca-story__quote > p:first-child {
691
+ text-indent: var(--ca-hang);
549
692
  }
550
693
 
551
- /* --- logos ---------------------------------------------------------------- */
694
+ .ca-story__quote > p:first-child::before {
695
+ content: open-quote;
696
+ }
552
697
 
553
- .cg-logos__items {
554
- display: flex;
555
- flex-wrap: wrap;
556
- align-items: center;
557
- gap: var(--cg-s10);
698
+ .ca-story__quote > p:last-child::after {
699
+ content: close-quote;
558
700
  }
559
701
 
560
- .cg-logo {
561
- opacity: 0.75;
562
- transition: opacity var(--cg-duration) var(--cg-ease);
702
+ @media (min-width: 64rem) {
703
+ .ca-quote__quote,
704
+ .ca-quote__attribution {
705
+ grid-column: 1 / span 9;
706
+ }
707
+
708
+ .ca-story__inner {
709
+ align-items: center;
710
+ }
711
+
712
+ .ca-story__portrait {
713
+ grid-column: 1 / span 4;
714
+ max-inline-size: none;
715
+ }
716
+
717
+ .ca-story__words {
718
+ grid-column: 6 / span 7;
719
+ }
720
+
721
+ .ca-story[data-portrait="false"] .ca-story__words {
722
+ grid-column: 1 / span 9;
723
+ }
563
724
  }
564
725
 
565
- .cg-logo:hover {
566
- opacity: 1;
726
+ /* --------------------------------------------------------------------------
727
+ faq: answers in the open, two columns of them
728
+ -------------------------------------------------------------------------- */
729
+
730
+ .ca-faq__items {
731
+ display: grid;
732
+ column-gap: var(--ca-s16);
567
733
  }
568
734
 
569
- .cg-logo__image {
570
- block-size: 2rem;
571
- inline-size: auto;
572
- max-inline-size: 9rem;
573
- object-fit: contain;
735
+ .ca-faq__item {
736
+ display: grid;
737
+ align-content: start;
738
+ gap: var(--ca-s3);
739
+ padding-block: var(--ca-s6);
740
+ border-block-start: var(--ca-rule) solid var(--ca-line-strong);
574
741
  }
575
742
 
576
- /* --- collectionList → "Upcoming events" dated cards ----------------------- */
743
+ .ca-faq__question {
744
+ font-size: var(--ca-text-lg);
745
+ font-weight: var(--ca-weight-semibold);
746
+ line-height: var(--ca-leading-heading);
747
+ }
577
748
 
578
- .cg-list__title-heading {
579
- margin-block-end: var(--cg-s8);
749
+ .ca-faq__answer > * {
750
+ margin: 0;
580
751
  }
581
752
 
582
- .cg-event-cards {
583
- display: grid;
584
- gap: var(--cg-s5);
585
- grid-template-columns: 1fr;
753
+ .ca-faq__answer > * + * {
754
+ margin-block-start: var(--ca-s3);
586
755
  }
587
756
 
588
- @media (min-width: 46rem) {
589
- .cg-event-cards {
590
- grid-template-columns: repeat(2, 1fr);
591
- }
757
+ .ca-faq__answer {
758
+ max-inline-size: var(--ca-measure);
759
+ color: var(--ca-ink-muted);
592
760
  }
593
761
 
594
- .cg-list[data-layout="grid"] .cg-event-cards {
595
- /* Never more than three across: the card below stacks its cover over a
596
- date + text row, and a fourth column squeezed that row to a few
597
- characters per line (seen live at 1280px, every word broken in two). */
598
- grid-template-columns: repeat(auto-fit, minmax(min(18rem, 100%), 1fr));
762
+ .ca-faq__answer a {
763
+ color: var(--ca-ink);
599
764
  }
600
765
 
601
766
  @media (min-width: 64rem) {
602
- .cg-list[data-layout="grid"] .cg-event-cards {
603
- grid-template-columns: repeat(3, 1fr);
767
+ .ca-faq__items {
768
+ grid-template-columns: repeat(2, minmax(0, 1fr));
604
769
  }
605
770
  }
606
771
 
607
- .cg-list[data-layout="carousel"] .cg-event-cards {
608
- display: flex;
609
- grid-template-columns: none;
610
- }
772
+ /* --------------------------------------------------------------------------
773
+ accordion: notes to open, under their title
774
+ -------------------------------------------------------------------------- */
611
775
 
612
- /* A stacked card: the cover on top, then a row with the date block beside
613
- the text. A single horizontal row (date | cover | text) only works on a
614
- wide list; in a grid column it starved the text of width. */
615
- .cg-event-card {
616
- display: grid;
617
- grid-template-columns: auto minmax(0, 1fr);
618
- grid-template-areas:
619
- "cover cover"
620
- "date body";
621
- gap: var(--cg-s4) var(--cg-s4);
622
- padding: var(--cg-s5);
623
- background: var(--cg-surface-raised);
624
- border-radius: var(--cg-radius-lg);
625
- box-shadow: var(--cogenta-shadow-sm);
626
- transition:
627
- box-shadow var(--cg-duration) var(--cg-ease),
628
- transform var(--cg-duration) var(--cg-ease);
629
- }
630
-
631
- .cg-list[data-layout="carousel"] .cg-event-card {
632
- flex: 0 0 18rem;
633
- scroll-snap-align: start;
776
+ .ca-notes__items {
777
+ margin: 0;
778
+ padding: 0;
779
+ list-style: none;
780
+ border-block-end: var(--ca-rule) solid var(--ca-line-strong);
634
781
  }
635
782
 
636
- .cg-event-card:hover {
637
- box-shadow: var(--cogenta-shadow-md);
638
- transform: translateY(-2px);
783
+ .ca-notes__item {
784
+ border-block-start: var(--ca-rule) solid var(--ca-line-strong);
639
785
  }
640
786
 
641
- .cg-event-card__date {
642
- grid-area: date;
787
+ .ca-notes__summary {
643
788
  display: flex;
644
- flex-direction: column;
645
789
  align-items: center;
646
- justify-content: center;
647
- align-self: start;
648
- inline-size: 4.5rem;
649
- block-size: 4.5rem;
650
- border-radius: var(--cg-radius-md);
651
- background: var(--cg-accent-soft);
652
- color: var(--cg-accent-soft-fg);
653
- }
654
-
655
- .cg-event-card__day {
656
- font-family: var(--cg-font-display);
657
- font-size: var(--cg-text-xl);
658
- font-weight: var(--cg-weight-bold);
659
- line-height: 1;
790
+ justify-content: space-between;
791
+ gap: var(--ca-s6);
792
+ padding-block: var(--ca-s5);
793
+ cursor: pointer;
794
+ list-style: none;
660
795
  }
661
796
 
662
- .cg-event-card__month {
663
- font-size: var(--cg-text-xs);
664
- font-weight: var(--cg-weight-bold);
665
- letter-spacing: var(--cg-tracking-wide);
666
- text-transform: uppercase;
797
+ .ca-notes__summary::-webkit-details-marker {
798
+ display: none;
667
799
  }
668
800
 
669
- .cg-event-card__time {
670
- font-size: var(--cg-text-xs);
671
- opacity: 0.85;
801
+ .ca-notes__question {
802
+ font-size: var(--ca-text-lg);
803
+ font-weight: var(--ca-weight-semibold);
804
+ line-height: var(--ca-leading-heading);
805
+ transition: color var(--ca-duration) var(--ca-ease);
672
806
  }
673
807
 
674
- .cg-event-card__cover {
675
- grid-area: cover;
676
- aspect-ratio: 16 / 9;
677
- overflow: hidden;
678
- border-radius: var(--cg-radius-md);
808
+ .ca-notes__summary:hover .ca-notes__question {
809
+ color: var(--ca-green);
679
810
  }
680
811
 
681
- .cg-event-card__cover img {
682
- inline-size: 100%;
683
- block-size: 100%;
684
- object-fit: cover;
812
+ .ca-notes__mark {
813
+ position: relative;
814
+ flex: none;
815
+ inline-size: 1rem;
816
+ block-size: 1rem;
685
817
  }
686
818
 
687
- .cg-event-card__body {
688
- grid-area: body;
689
- min-inline-size: 0;
690
- overflow-wrap: break-word;
691
- hyphens: auto;
819
+ .ca-notes__mark::before,
820
+ .ca-notes__mark::after {
821
+ content: "";
822
+ position: absolute;
823
+ inset-inline: 0;
824
+ inset-block-start: calc(50% - 1px);
825
+ block-size: var(--ca-rule-strong);
826
+ background: var(--ca-green);
692
827
  }
693
828
 
694
- .cg-event-card__location {
695
- margin: 0 0 var(--cg-s1);
696
- color: var(--cg-ink-subtle);
697
- font-size: var(--cg-text-xs);
698
- font-weight: var(--cg-weight-semibold);
699
- letter-spacing: var(--cg-tracking-wide);
700
- text-transform: uppercase;
829
+ .ca-notes__mark::after {
830
+ transform: rotate(90deg);
701
831
  }
702
832
 
703
- .cg-event-card__title {
704
- margin: 0;
705
- font-size: var(--cg-text-md);
706
- line-height: var(--cg-leading-snug);
833
+ .ca-notes__details[open] .ca-notes__mark::after {
834
+ display: none;
707
835
  }
708
836
 
709
- .cg-event-card__link {
710
- color: var(--cg-ink);
711
- text-decoration: none;
837
+ .ca-notes__answer {
838
+ max-inline-size: var(--ca-measure);
839
+ padding-block-end: var(--ca-s6);
712
840
  }
713
841
 
714
- .cg-event-card__link:hover {
715
- color: var(--cg-accent);
842
+ .ca-notes__answer > * {
843
+ margin: 0;
716
844
  }
717
845
 
718
- .cg-event-card__excerpt {
719
- margin: var(--cg-s1) 0 0;
720
- color: var(--cg-ink-muted);
721
- font-size: var(--cg-text-sm);
722
- line-height: var(--cg-leading-normal);
846
+ .ca-notes__answer > * + * {
847
+ margin-block-start: var(--ca-s3);
723
848
  }
724
849
 
725
- .cg-list__empty {
726
- padding: var(--cg-s8);
727
- color: var(--cg-ink-muted);
728
- text-align: center;
729
- background: var(--cg-surface-sunken);
730
- border-radius: var(--cg-radius-md);
731
- }
850
+ @media (min-width: 64rem) {
851
+ .ca-notes[data-titled="true"] .ca-head {
852
+ grid-column: 1 / span 4;
853
+ margin-block-end: 0;
854
+ }
732
855
 
733
- /* --- embed ----------------------------------------------------------------- */
856
+ .ca-notes[data-titled="true"] .ca-notes__items {
857
+ grid-column: 5 / -1;
858
+ }
734
859
 
735
- .cg-embed {
736
- aspect-ratio: var(--cg-ratio, 16 / 9);
737
- border-radius: var(--cg-radius-lg);
738
- overflow: hidden;
739
- background: var(--cg-surface-sunken);
860
+ .ca-notes[data-titled="false"] .ca-notes__items {
861
+ grid-column: 1 / span 8;
862
+ }
740
863
  }
741
864
 
742
- .cg-embed__frame {
743
- inline-size: 100%;
744
- block-size: 100%;
745
- border: 0;
865
+ /* --------------------------------------------------------------------------
866
+ stats and statCounter: figures with their context, and breakdowns
867
+ -------------------------------------------------------------------------- */
868
+
869
+ .ca-figures__items {
870
+ display: grid;
871
+ gap: var(--ca-s10) var(--ca-col-gap);
872
+ margin: 0;
746
873
  }
747
874
 
748
- .cg-embed__placeholder {
875
+ .ca-figures__item,
876
+ .ca-counter__item {
749
877
  display: flex;
750
878
  flex-direction: column;
751
- align-items: center;
752
- justify-content: center;
753
- gap: var(--cg-s4);
754
- inline-size: 100%;
755
- block-size: 100%;
756
- padding: var(--cg-s6);
757
- text-align: center;
879
+ gap: var(--ca-s3);
880
+ }
881
+
882
+ .ca-figures__item {
883
+ padding-block-start: var(--ca-s5);
884
+ border-block-start: var(--ca-rule-strong) solid var(--ca-line-ink);
758
885
  }
759
886
 
760
- .cg-embed__notice {
887
+ .ca-figures__value,
888
+ .ca-counter__value {
889
+ order: -1;
761
890
  margin: 0;
762
- color: var(--cg-ink-muted);
763
- max-inline-size: var(--cg-measure-narrow);
891
+ font-family: var(--ca-font-display);
892
+ font-size: var(--ca-size-figure);
893
+ font-weight: var(--ca-weight-bold);
894
+ font-stretch: var(--ca-stretch-figure);
895
+ font-variant-numeric: lining-nums tabular-nums;
896
+ line-height: 0.95;
897
+ letter-spacing: var(--ca-tracking-display);
764
898
  }
765
899
 
766
- .cg-embed__link {
767
- padding: var(--cg-s2) var(--cg-s5);
768
- border-radius: var(--cg-radius-pill);
769
- background: var(--cg-accent);
770
- color: var(--cg-accent-fg);
771
- text-decoration: none;
772
- font-weight: var(--cg-weight-semibold);
900
+ .ca-figures__value {
901
+ color: var(--ca-green);
773
902
  }
774
903
 
775
- /* --- testimonial: a volunteer's own words --------------------------------- */
904
+ .ca-figures__unit {
905
+ margin-inline-start: 0.14em;
906
+ font-size: 0.5em;
907
+ font-weight: var(--ca-weight-semibold);
908
+ letter-spacing: 0;
909
+ }
776
910
 
777
- .cg-testimonial {
778
- max-inline-size: var(--cg-measure);
779
- margin-inline: auto;
780
- padding: var(--cg-s10) var(--cg-s8);
781
- background: var(--cg-surface-sunken);
782
- border-radius: var(--cg-radius-lg);
783
- text-align: center;
911
+ .ca-figures__label {
912
+ max-inline-size: 38ch;
913
+ color: var(--ca-ink);
914
+ line-height: var(--ca-leading-text);
784
915
  }
785
916
 
786
- .cg-testimonial__quote blockquote {
917
+ .ca-counter__items {
918
+ display: grid;
919
+ grid-template-columns: repeat(2, minmax(0, 1fr));
920
+ gap: var(--ca-s8) var(--ca-col-gap);
787
921
  margin: 0;
922
+ padding-block-start: var(--ca-s6);
923
+ border-block-start: var(--ca-rule-strong) solid var(--ca-line-ink);
788
924
  }
789
925
 
790
- .cg-testimonial__quote p {
926
+ .ca-counter__label {
927
+ color: var(--ca-ink-muted);
928
+ font-size: var(--ca-text-caption);
929
+ line-height: var(--ca-leading-ui);
930
+ }
931
+
932
+ .ca-shares {
933
+ display: grid;
934
+ gap: var(--ca-s6);
791
935
  margin: 0;
792
- font-family: var(--cg-font-display);
793
- font-size: var(--cg-text-xl);
794
- line-height: var(--cg-leading-snug);
795
- text-wrap: balance;
936
+ padding-block-start: var(--ca-s6);
937
+ border-block-start: var(--ca-rule-strong) solid var(--ca-line-ink);
796
938
  }
797
939
 
798
- .cg-testimonial__attribution {
799
- display: flex;
800
- flex-direction: column;
801
- align-items: center;
802
- gap: var(--cg-s3);
803
- margin-block-start: var(--cg-s6);
940
+ .ca-shares__item {
941
+ display: grid;
942
+ grid-template-columns: minmax(0, 1fr) auto;
943
+ column-gap: var(--ca-s6);
944
+ row-gap: var(--ca-s2);
945
+ align-items: last baseline;
804
946
  }
805
947
 
806
- .cg-testimonial__avatar {
807
- inline-size: 3.5rem;
808
- block-size: 3.5rem;
809
- border-radius: var(--cg-radius-pill);
810
- object-fit: cover;
948
+ .ca-shares__label {
949
+ max-inline-size: 48ch;
950
+ line-height: var(--ca-leading-ui);
811
951
  }
812
952
 
813
- .cg-testimonial__who {
814
- display: flex;
815
- flex-direction: column;
816
- font-size: var(--cg-text-sm);
817
- color: var(--cg-ink-muted);
953
+ .ca-shares__value {
954
+ margin: 0;
955
+ font-family: var(--ca-font-display);
956
+ font-size: var(--ca-text-xl);
957
+ font-weight: var(--ca-weight-bold);
958
+ font-stretch: var(--ca-stretch-figure);
959
+ font-variant-numeric: lining-nums tabular-nums;
960
+ line-height: 1;
818
961
  }
819
962
 
820
- .cg-testimonial__name {
821
- font-weight: var(--cg-weight-bold);
822
- color: var(--cg-ink);
963
+ .ca-shares__track {
964
+ grid-column: 1 / -1;
965
+ margin: 0;
966
+ block-size: var(--ca-bar);
967
+ background: var(--ca-track);
823
968
  }
824
969
 
825
- /* --- pricingTable ------------------------------------------------------ */
970
+ .ca-shares__bar {
971
+ display: block;
972
+ block-size: 100%;
973
+ background: var(--ca-green);
974
+ }
826
975
 
827
- .cg-pricing__tiers {
828
- display: grid;
829
- gap: var(--cg-s6);
830
- grid-template-columns: 1fr;
976
+ @media (min-width: 40rem) {
977
+ .ca-figures__items {
978
+ grid-template-columns: repeat(2, minmax(0, 1fr));
979
+ }
831
980
  }
832
981
 
833
- @media (min-width: 46rem) {
834
- .cg-pricing__tiers {
835
- grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
982
+ @media (min-width: 64rem) {
983
+ .ca-figures[data-titled="true"] .ca-head,
984
+ .ca-counter[data-titled="true"][data-shape="breakdown"] .ca-head {
985
+ grid-column: 1 / span 4;
986
+ margin-block-end: 0;
987
+ }
988
+
989
+ .ca-figures[data-titled="true"] .ca-figures__items,
990
+ .ca-figures[data-titled="true"] .ca-shares,
991
+ .ca-counter[data-titled="true"] .ca-shares {
992
+ grid-column: 5 / -1;
993
+ }
994
+
995
+ .ca-counter[data-count="3"] .ca-counter__items {
996
+ grid-template-columns: repeat(3, minmax(0, 1fr));
997
+ }
998
+
999
+ .ca-counter[data-count="4"] .ca-counter__items {
1000
+ grid-template-columns: repeat(4, minmax(0, 1fr));
1001
+ }
1002
+
1003
+ .ca-counter__item + .ca-counter__item {
1004
+ padding-inline-start: var(--ca-col-gap);
1005
+ border-inline-start: var(--ca-rule) solid var(--ca-line);
836
1006
  }
837
1007
  }
838
1008
 
839
- .cg-pricing__tier {
840
- padding: var(--cg-s8) var(--cg-s6);
841
- background: var(--cg-surface-raised);
842
- border-radius: var(--cg-radius-lg);
843
- box-shadow: var(--cogenta-shadow-sm);
1009
+ /* --------------------------------------------------------------------------
1010
+ logos and logoStrip: partners in one ink
1011
+ -------------------------------------------------------------------------- */
1012
+
1013
+ .ca-mark {
1014
+ display: block;
1015
+ inline-size: auto;
1016
+ max-inline-size: 100%;
1017
+ block-size: 2.75rem;
1018
+ object-fit: contain;
1019
+ filter: grayscale(1) invert(var(--ca-mark-invert));
1020
+ mix-blend-mode: var(--ca-mark-blend);
844
1021
  }
845
1022
 
846
- .cg-pricing__tier[data-highlighted="true"] {
847
- background: var(--cg-accent);
848
- color: var(--cg-accent-fg);
849
- box-shadow: var(--cogenta-shadow-md);
1023
+ .ca-partners__items {
1024
+ display: grid;
1025
+ grid-template-columns: repeat(2, minmax(0, 1fr));
1026
+ margin: 0;
1027
+ padding: 0;
1028
+ list-style: none;
1029
+ border-block-start: var(--ca-rule) solid var(--ca-line);
850
1030
  }
851
1031
 
852
- .cg-pricing__name {
853
- margin: 0 0 var(--cg-s3);
854
- font-size: var(--cg-text-lg);
1032
+ .ca-partners__item {
1033
+ border-block-end: var(--ca-rule) solid var(--ca-line);
855
1034
  }
856
1035
 
857
- .cg-pricing__price {
858
- display: flex;
859
- align-items: baseline;
860
- gap: var(--cg-s1);
861
- margin: 0 0 var(--cg-s5);
1036
+ .ca-partners__item:nth-child(odd) {
1037
+ border-inline-end: var(--ca-rule) solid var(--ca-line);
862
1038
  }
863
1039
 
864
- .cg-pricing__amount {
865
- font-family: var(--cg-font-display);
866
- font-size: var(--cg-text-2xl);
867
- font-weight: var(--cg-weight-bold);
1040
+ .ca-partners__cell {
1041
+ display: flex;
1042
+ align-items: center;
1043
+ justify-content: center;
1044
+ min-block-size: 7rem;
1045
+ padding: var(--ca-s6);
868
1046
  }
869
1047
 
870
- .cg-pricing__interval {
871
- opacity: 0.8;
872
- font-size: var(--cg-text-sm);
1048
+ .ca-strip__caption {
1049
+ margin: 0 0 var(--ca-s8);
1050
+ padding-block-end: var(--ca-s3);
1051
+ border-block-end: var(--ca-rule) solid var(--ca-line);
1052
+ color: var(--ca-ink-muted);
1053
+ font-size: var(--ca-text-caption);
1054
+ font-weight: var(--ca-weight-semibold);
873
1055
  }
874
1056
 
875
- .cg-pricing__features {
876
- margin: 0 0 var(--cg-s6);
1057
+ .ca-strip__items {
1058
+ display: grid;
1059
+ grid-template-columns: repeat(2, minmax(0, 1fr));
1060
+ align-items: center;
1061
+ justify-items: center;
1062
+ gap: var(--ca-s8) var(--ca-col-gap);
1063
+ margin: 0;
877
1064
  padding: 0;
878
1065
  list-style: none;
879
- display: flex;
880
- flex-direction: column;
881
- gap: var(--cg-s2);
882
- font-size: var(--cg-text-sm);
883
1066
  }
884
1067
 
885
- .cg-pricing__features li::before {
886
- content: "✓ ";
887
- color: var(--cg-tint);
888
- font-weight: var(--cg-weight-bold);
1068
+ .ca-strip__item .ca-mark {
1069
+ block-size: 2.25rem;
889
1070
  }
890
1071
 
891
- .cg-pricing__tier[data-highlighted="true"] .cg-pricing__features li::before {
892
- color: var(--cg-accent-fg);
1072
+ @media (min-width: 40rem) {
1073
+ .ca-strip__items {
1074
+ display: flex;
1075
+ flex-wrap: wrap;
1076
+ justify-content: space-between;
1077
+ }
893
1078
  }
894
1079
 
895
- .cg-pricing__action .cg-action {
896
- inline-size: 100%;
897
- }
1080
+ @media (min-width: 64rem) {
1081
+ .ca-partners[data-titled="true"] .ca-head {
1082
+ grid-column: 1 / span 3;
1083
+ margin-block-end: 0;
1084
+ }
1085
+
1086
+ .ca-partners[data-titled="true"] .ca-partners__items {
1087
+ grid-column: 4 / -1;
1088
+ }
898
1089
 
899
- /* --- accordion ------------------------------------------------------------ */
1090
+ .ca-partners[data-columns="3"] .ca-partners__items {
1091
+ grid-template-columns: repeat(3, minmax(0, 1fr));
1092
+ }
1093
+
1094
+ .ca-partners[data-columns="3"] .ca-partners__item:nth-child(odd) {
1095
+ border-inline-end: 0;
1096
+ }
900
1097
 
901
- .cg-accordion__item {
902
- margin-block-end: var(--cg-s3);
1098
+ .ca-partners[data-columns="3"] .ca-partners__item:not(:nth-child(3n)) {
1099
+ border-inline-end: var(--ca-rule) solid var(--ca-line);
1100
+ }
1101
+
1102
+ .ca-strip__item .ca-mark {
1103
+ block-size: 2.75rem;
1104
+ }
903
1105
  }
904
1106
 
905
- .cg-accordion__details {
906
- border-radius: var(--cg-radius-md);
907
- background: var(--cg-surface-raised);
908
- box-shadow: var(--cg-ring);
909
- overflow: hidden;
1107
+ /* --------------------------------------------------------------------------
1108
+ pricingTable: levels of membership or regular giving, in ruled columns
1109
+ -------------------------------------------------------------------------- */
1110
+
1111
+ .ca-levels__tiers {
1112
+ display: grid;
1113
+ gap: var(--ca-s12) var(--ca-col-gap);
1114
+ margin: 0;
1115
+ padding: 0;
1116
+ list-style: none;
910
1117
  }
911
1118
 
912
- .cg-accordion__question {
1119
+ .ca-levels__tier {
913
1120
  display: flex;
914
- align-items: center;
915
- justify-content: space-between;
916
- padding: var(--cg-s5) var(--cg-s6);
917
- font-weight: var(--cg-weight-semibold);
918
- cursor: pointer;
919
- list-style: none;
1121
+ flex-direction: column;
1122
+ gap: var(--ca-s4);
1123
+ padding-block-start: var(--ca-s5);
1124
+ border-block-start: var(--ca-rule-strong) solid var(--ca-line-ink);
920
1125
  }
921
1126
 
922
- .cg-accordion__question::-webkit-details-marker {
923
- display: none;
1127
+ /* The heavier rule takes its extra thickness out of the padding, so the
1128
+ names and the amounts of every level stay on one line. */
1129
+ .ca-levels__tier[data-highlighted="true"] {
1130
+ padding-block-start: calc(var(--ca-s5) - var(--ca-rule-heavy) + var(--ca-rule-strong));
1131
+ border-block-start: var(--ca-rule-heavy) solid var(--ca-green);
924
1132
  }
925
1133
 
926
- .cg-accordion__question::after {
927
- content: "+";
928
- color: var(--cg-accent);
929
- font-size: var(--cg-text-lg);
930
- transition: transform var(--cg-duration) var(--cg-ease);
1134
+ .ca-levels__name {
1135
+ font-size: var(--ca-text-xl);
1136
+ font-weight: var(--ca-weight-semibold);
931
1137
  }
932
1138
 
933
- .cg-accordion__details[open] .cg-accordion__question::after {
934
- transform: rotate(45deg);
1139
+ .ca-levels__tier[data-highlighted="true"] .ca-levels__name {
1140
+ color: var(--ca-green);
935
1141
  }
936
1142
 
937
- .cg-accordion__answer {
938
- padding: 0 var(--cg-s6) var(--cg-s6);
939
- color: var(--cg-ink-muted);
940
- line-height: var(--cg-leading-relaxed);
1143
+ .ca-levels__price {
1144
+ display: flex;
1145
+ flex-wrap: wrap;
1146
+ align-items: baseline;
1147
+ gap: var(--ca-s2);
1148
+ margin: 0;
941
1149
  }
942
1150
 
943
- .cg-accordion__answer p {
1151
+ .ca-levels__amount {
1152
+ font-family: var(--ca-font-display);
1153
+ font-size: var(--ca-size-figure);
1154
+ font-weight: var(--ca-weight-bold);
1155
+ font-stretch: var(--ca-stretch-figure);
1156
+ font-variant-numeric: lining-nums tabular-nums;
1157
+ line-height: 1;
1158
+ letter-spacing: var(--ca-tracking-display);
1159
+ }
1160
+
1161
+ .ca-levels__interval {
1162
+ color: var(--ca-ink-muted);
1163
+ }
1164
+
1165
+ .ca-levels__lines {
944
1166
  margin: 0;
1167
+ padding: 0;
1168
+ list-style: none;
1169
+ border-block-start: var(--ca-rule) solid var(--ca-line);
945
1170
  }
946
1171
 
947
- /* --- statCounter ------------------------------------------------------ */
1172
+ .ca-levels__line {
1173
+ padding-block: var(--ca-s3);
1174
+ border-block-end: var(--ca-rule) solid var(--ca-line);
1175
+ line-height: var(--ca-leading-ui);
1176
+ }
948
1177
 
949
- .cg-stat-counters__items {
950
- display: grid;
951
- gap: var(--cg-s6);
952
- grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr));
953
- text-align: center;
1178
+ .ca-levels__action {
1179
+ margin-block-start: auto;
1180
+ padding-block-start: var(--ca-s4);
954
1181
  }
955
1182
 
956
- .cg-stat-counter {
957
- display: flex;
958
- flex-direction: column-reverse;
959
- gap: var(--cg-s1);
1183
+ @media (min-width: 40rem) {
1184
+ .ca-levels__tiers {
1185
+ grid-template-columns: repeat(2, minmax(0, 1fr));
1186
+ }
960
1187
  }
961
1188
 
962
- .cg-stat-counter__value {
963
- margin: 0;
964
- color: var(--cg-tint);
965
- font-family: var(--cg-font-display);
966
- font-size: var(--cg-text-2xl);
967
- font-weight: var(--cg-weight-bold);
968
- font-variant-numeric: tabular-nums;
1189
+ @media (min-width: 64rem) {
1190
+ .ca-levels[data-count="3"] .ca-levels__tiers {
1191
+ grid-template-columns: repeat(3, minmax(0, 1fr));
1192
+ }
1193
+
1194
+ .ca-levels[data-count="4"] .ca-levels__tiers {
1195
+ grid-template-columns: repeat(4, minmax(0, 1fr));
1196
+ }
1197
+
1198
+ .ca-levels[data-count="2"] .ca-levels__tiers {
1199
+ grid-column: 1 / span 8;
1200
+ }
1201
+
1202
+ .ca-levels[data-count="1"] .ca-levels__tiers {
1203
+ grid-template-columns: minmax(0, 1fr);
1204
+ grid-column: 1 / span 5;
1205
+ }
969
1206
  }
970
1207
 
971
- .cg-stat-counter__label {
972
- color: var(--cg-ink-muted);
973
- font-size: var(--cg-text-sm);
1208
+ /* --------------------------------------------------------------------------
1209
+ embed
1210
+ -------------------------------------------------------------------------- */
1211
+
1212
+ .ca-embed__frame {
1213
+ overflow: hidden;
1214
+ background: var(--ca-band);
974
1215
  }
975
1216
 
976
- /* --- logoStrip → "Our partners" ---------------------------------------- */
1217
+ .ca-embed__player {
1218
+ inline-size: 100%;
1219
+ block-size: 100%;
1220
+ border: 0;
1221
+ }
977
1222
 
978
- .cg-logo-band {
979
- text-align: center;
1223
+ .ca-embed__notice {
1224
+ display: grid;
1225
+ justify-items: start;
1226
+ gap: var(--ca-s3);
1227
+ max-inline-size: 40rem;
1228
+ padding: var(--ca-s6);
1229
+ border: var(--ca-rule) solid var(--ca-line-strong);
1230
+ border-radius: var(--ca-radius-control);
980
1231
  }
981
1232
 
982
- .cg-logo-band__items {
983
- display: flex;
984
- flex-wrap: wrap;
985
- align-items: center;
986
- justify-content: center;
987
- gap: var(--cg-s10);
1233
+ .ca-embed__label {
1234
+ margin: 0;
1235
+ color: var(--ca-green);
1236
+ font-size: var(--ca-text-caption);
1237
+ font-weight: var(--ca-weight-semibold);
988
1238
  }
989
1239
 
990
- .cg-logo-band__image {
991
- block-size: 1.75rem;
992
- inline-size: auto;
993
- max-inline-size: 8rem;
994
- object-fit: contain;
995
- opacity: 0.7;
1240
+ .ca-embed__reason {
1241
+ margin: 0;
996
1242
  }
997
1243
 
998
- .cg-logo-band__caption {
999
- margin-block-start: var(--cg-s6);
1000
- color: var(--cg-ink-subtle);
1001
- font-size: var(--cg-text-sm);
1244
+ @media (min-width: 64rem) {
1245
+ .ca-embed__frame,
1246
+ .ca-embed__notice {
1247
+ grid-column: 1 / span 8;
1248
+ }
1002
1249
  }