@cogenta/theme-association 0.3.3 → 0.5.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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
@@ -0,0 +1,1059 @@
1
+ /* --------------------------------------------------------------------------
2
+ Widgets (contract D `theme@1.6`): the side column beside an event, a
3
+ programme or search results, the bands before and after the content, and
4
+ the footer's widget row.
5
+
6
+ The host draws one markup for every theme (`cg-sidebar-layout`); this file
7
+ sets it in this theme's register, the noticeboard in the hall: every
8
+ widget opens on the same heavy ink rule as the calendar, its name in the
9
+ display face, lists between hairlines, photographs cropped square, and an
10
+ ask on the paper band with the organisation's green button. The yellow
11
+ stays the header's donation ask. No shadow, no rounded panel, no tint
12
+ beyond the band the page already uses.
13
+ -------------------------------------------------------------------------- */
14
+
15
+ /* --- the layout ------------------------------------------------------------ */
16
+
17
+ .cg-sidebar-layout {
18
+ display: grid;
19
+ row-gap: var(--ca-s16);
20
+ inline-size: 100%;
21
+ max-inline-size: calc(var(--ca-page) + var(--ca-gutter) * 2);
22
+ margin-inline: auto;
23
+ padding-inline: var(--ca-gutter);
24
+ }
25
+
26
+ .cg-sidebar-layout__content {
27
+ min-inline-size: 0;
28
+ /* A column narrower than the page carries a title a step smaller. */
29
+ --ca-size-title: clamp(var(--ca-text-2xl), calc(1rem + 2.4vw), var(--ca-text-3xl));
30
+ --ca-size-day-large: clamp(var(--ca-text-4xl), calc(1rem + 3.6vw), var(--ca-text-5xl));
31
+ }
32
+
33
+ /* Inside the content column the layout holds the gutters and the width. */
34
+ .cg-sidebar-layout__content
35
+ :is(
36
+ .ca-container,
37
+ .cg-page__title,
38
+ .cg-search__form,
39
+ .cg-search__results,
40
+ .cg-search__empty,
41
+ .cg-search__error,
42
+ .cg-form,
43
+ .cg-form__confirmation,
44
+ .cg-comments
45
+ ) {
46
+ max-inline-size: none;
47
+ padding-inline: 0;
48
+ }
49
+
50
+ .cg-sidebar-layout__content .ca-figure[data-align="full"] .ca-figure__caption {
51
+ padding-inline: 0;
52
+ }
53
+
54
+ /* A band inside the column is a panel: its words keep off its edges. */
55
+ .cg-sidebar-layout__content :is(.ca-cta, [data-block][data-variant-background]) > .ca-container {
56
+ padding-inline: clamp(var(--ca-s5), 3vw, var(--ca-s10));
57
+ }
58
+
59
+ /* The results or the thread end the column; the widgets or the footer bring
60
+ the rest of the space. */
61
+ .cg-sidebar-layout__content > :is(.cg-search__results, .cg-comments):last-child {
62
+ margin-block-end: calc(var(--ca-section) / 2);
63
+ }
64
+
65
+ .cg-sidebar-layout__aside {
66
+ align-self: start;
67
+ padding-block-end: calc(var(--ca-section) / 2);
68
+ }
69
+
70
+ /* Stacked under the content on the page's own gutters, in as many columns as
71
+ the width holds. */
72
+ @media (max-width: 63.99rem) {
73
+ .cg-sidebar-layout {
74
+ row-gap: 0;
75
+ }
76
+
77
+ /* The page's last section already ends on its half step; each widget's
78
+ own rule or panel is the only separation, never a second hairline. */
79
+ .cg-sidebar-layout__aside {
80
+ grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr));
81
+ column-gap: calc(var(--ca-col-gap) * 1.5);
82
+ align-items: start;
83
+ border: 0;
84
+ }
85
+ }
86
+
87
+ @media (min-width: 64rem) {
88
+ .cg-sidebar-layout {
89
+ grid-template-columns: minmax(0, 1fr) minmax(16rem, 20rem);
90
+ column-gap: clamp(var(--ca-s10), 4vw, var(--ca-s20));
91
+ row-gap: 0;
92
+ }
93
+
94
+ /* The column starts where the page's own opening starts under the header. */
95
+ .cg-sidebar-layout__aside {
96
+ padding-block-start: calc(var(--ca-section) * 0.55);
97
+ }
98
+
99
+ /* An event's date, title and details share a narrower column: the date
100
+ keeps its three columns, the words take every other one. */
101
+ .cg-sidebar-layout__content .ca-event__heading {
102
+ grid-column: 4 / -1;
103
+ }
104
+
105
+ .cg-sidebar-layout__content .ca-entry__heading,
106
+ .cg-sidebar-layout__content .ca-page-head__title,
107
+ .cg-sidebar-layout__content .ca-page-head__meta,
108
+ .cg-sidebar-layout__content .ca-page-head__terms {
109
+ grid-column: 1 / -1;
110
+ }
111
+
112
+ /* A programme's portrait keeps its place beside the words. */
113
+ .cg-sidebar-layout__content .ca-entry[data-cover="portrait"] .ca-entry__heading {
114
+ grid-column: 1 / span 7;
115
+ }
116
+
117
+ .cg-sidebar-layout__content .ca-entry[data-cover="portrait"] .ca-entry__cover {
118
+ grid-column: 8 / -1;
119
+ }
120
+
121
+ .cg-sidebar-layout__content .ca-page-head__lead {
122
+ grid-column: 1 / span 10;
123
+ }
124
+
125
+ /* The reading text takes the column, up to its measure. */
126
+ .cg-sidebar-layout__content .ca-prose__body,
127
+ .cg-sidebar-layout__content .cg-comments > * {
128
+ grid-column: 1 / -1;
129
+ }
130
+
131
+ /* A calendar row in a narrower column: the date on two columns, the words
132
+ on the rest, the cost under the place rather than beside the title. */
133
+ .cg-sidebar-layout__content .ca-list[data-layout="list"] .ca-date {
134
+ grid-column: 1 / span 2;
135
+ }
136
+
137
+ .cg-sidebar-layout__content .ca-list[data-layout="list"] .ca-events__body {
138
+ grid-column: 3 / -1;
139
+ }
140
+
141
+ .cg-sidebar-layout__content .ca-list[data-layout="list"] .ca-events__cost {
142
+ grid-column: 3 / -1;
143
+ grid-row: auto;
144
+ justify-self: start;
145
+ padding-block-start: 0;
146
+ text-align: start;
147
+ }
148
+
149
+ /* Cards in a narrower column: as many to a row as keep a card readable,
150
+ so three programmes still share one row rather than leaving one alone. */
151
+ .cg-sidebar-layout__content .ca-list[data-layout="grid"] :is(.ca-photos, .ca-events) {
152
+ grid-template-columns: repeat(auto-fit, minmax(min(100%, 12.5rem), 1fr));
153
+ }
154
+
155
+ .cg-sidebar-layout__content .ca-rows__media,
156
+ .cg-sidebar-layout__content .ca-rows__item:nth-child(even) .ca-rows__media {
157
+ grid-column: 1 / span 5;
158
+ }
159
+
160
+ .cg-sidebar-layout__content .ca-rows__body,
161
+ .cg-sidebar-layout__content .ca-rows__item:nth-child(even) .ca-rows__body {
162
+ grid-column: 6 / -1;
163
+ }
164
+
165
+ .cg-sidebar-layout__content .ca-list[data-shape="index"] .ca-index {
166
+ grid-column: 1 / -1;
167
+ }
168
+ }
169
+
170
+ /* A band the host places outside the layout (the home page, a page opening
171
+ on its own hero): on the page's own width and gutters. */
172
+ .cg-widget-area--placed {
173
+ inline-size: 100%;
174
+ max-inline-size: calc(var(--ca-page) + var(--ca-gutter) * 2);
175
+ margin-inline: auto;
176
+ padding: calc(var(--ca-section) / 2) var(--ca-gutter);
177
+ }
178
+
179
+ .cg-sidebar-layout__content .cg-widget-area--placed {
180
+ max-inline-size: none;
181
+ padding-inline: 0;
182
+ }
183
+
184
+ .cg-widget-area--placed[data-area="sidebar"] {
185
+ grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr));
186
+ column-gap: calc(var(--ca-col-gap) * 1.5);
187
+ border: 0;
188
+ }
189
+
190
+ /* --- a widget -------------------------------------------------------------- */
191
+
192
+ .cg-widget-area {
193
+ display: grid;
194
+ gap: var(--ca-s12);
195
+ align-content: start;
196
+ }
197
+
198
+ .cg-widget {
199
+ min-inline-size: 0;
200
+ color: var(--ca-ink);
201
+ }
202
+
203
+ /* The heavy ink rule the calendar and the index open on, the name under it. */
204
+ .cg-widget__title {
205
+ margin: 0 0 var(--ca-s4);
206
+ padding-block-start: var(--ca-s4);
207
+ border-block-start: var(--ca-rule-strong) solid var(--ca-line-ink);
208
+ color: var(--ca-ink);
209
+ font-family: var(--ca-font-display);
210
+ font-size: var(--ca-text-lg);
211
+ font-weight: var(--ca-weight-semibold);
212
+ font-stretch: var(--ca-stretch-display);
213
+ line-height: var(--ca-leading-heading);
214
+ letter-spacing: var(--ca-tracking-heading);
215
+ text-transform: none;
216
+ text-wrap: balance;
217
+ }
218
+
219
+ .cg-widget__body {
220
+ font-family: var(--ca-font-text);
221
+ font-size: var(--ca-text-md);
222
+ line-height: var(--ca-leading-text);
223
+ }
224
+
225
+ .cg-widget__body :is(ul, ol) {
226
+ margin: 0;
227
+ padding: 0;
228
+ list-style: none;
229
+ }
230
+
231
+ .cg-widget__body p {
232
+ margin: 0;
233
+ }
234
+
235
+ .cg-widget a {
236
+ color: var(--ca-ink);
237
+ text-decoration-line: underline;
238
+ text-decoration-thickness: var(--ca-rule-strong);
239
+ text-decoration-color: var(--ca-green);
240
+ text-underline-offset: 0.22em;
241
+ }
242
+
243
+ .cg-widget a:hover {
244
+ color: var(--ca-green);
245
+ }
246
+
247
+ .cg-widget [aria-current="page"],
248
+ .cg-widget [aria-current="page"] > a {
249
+ color: var(--ca-green);
250
+ font-weight: var(--ca-weight-semibold);
251
+ }
252
+
253
+ .cg-widget__empty {
254
+ color: var(--ca-ink-muted);
255
+ }
256
+
257
+ /* A widget that has no name of its own opens on the rule alone. */
258
+ .cg-widget:not(:has(> .cg-widget__title)):not(
259
+ .cg-widget--cta,
260
+ .cg-widget--image,
261
+ .cg-widget--gallery,
262
+ .cg-widget--embed
263
+ ) {
264
+ padding-block-start: var(--ca-s4);
265
+ border-block-start: var(--ca-rule-strong) solid var(--ca-line-ink);
266
+ }
267
+
268
+ /* --- entries, comments, terms, links: rows between hairlines --------------- */
269
+
270
+ .cg-widget__entry,
271
+ .cg-widget__comment,
272
+ :is(.cg-widget__terms, .cg-widget__archives, .cg-widget__links, .cg-widget__toc) > li {
273
+ padding-block: var(--ca-s3);
274
+ border-block: 0;
275
+ border-block-start: var(--ca-rule) solid var(--ca-line);
276
+ }
277
+
278
+ .cg-widget__entry:first-child,
279
+ .cg-widget__comment:first-child,
280
+ :is(.cg-widget__terms, .cg-widget__archives, .cg-widget__links, .cg-widget__toc) > li:first-child {
281
+ padding-block-start: 0;
282
+ border-block-start: 0;
283
+ }
284
+
285
+ .cg-widget__entry:last-child,
286
+ .cg-widget__comment:last-child,
287
+ :is(.cg-widget__terms, .cg-widget__archives, .cg-widget__links, .cg-widget__toc) > li:last-child {
288
+ padding-block-end: 0;
289
+ }
290
+
291
+ .cg-widget__entry {
292
+ display: grid;
293
+ grid-template-columns: minmax(0, 1fr);
294
+ column-gap: var(--ca-s4);
295
+ align-items: center;
296
+ padding-block: var(--ca-s4);
297
+ }
298
+
299
+ .cg-widget__entry[data-image="image"] {
300
+ grid-template-columns: 4.5rem minmax(0, 1fr);
301
+ }
302
+
303
+ .cg-widget__entry-image {
304
+ display: block;
305
+ inline-size: 100%;
306
+ block-size: auto;
307
+ aspect-ratio: 1;
308
+ object-fit: cover;
309
+ background: var(--ca-band);
310
+ }
311
+
312
+ .cg-widget__entry-text {
313
+ display: grid;
314
+ gap: var(--ca-s1);
315
+ min-inline-size: 0;
316
+ }
317
+
318
+ /* The title is the link, with the green underline on hover. */
319
+ .cg-widget a.cg-widget__entry-title,
320
+ .cg-widget__entry-title {
321
+ color: var(--ca-ink);
322
+ font-family: var(--ca-font-display);
323
+ font-size: var(--ca-text-md);
324
+ font-weight: var(--ca-weight-semibold);
325
+ line-height: var(--ca-leading-heading);
326
+ letter-spacing: var(--ca-tracking-heading);
327
+ text-wrap: pretty;
328
+ }
329
+
330
+ .cg-widget a.cg-widget__entry-title {
331
+ text-decoration-color: transparent;
332
+ text-underline-offset: 0.16em;
333
+ }
334
+
335
+ .cg-widget a.cg-widget__entry-title:hover {
336
+ color: var(--ca-ink);
337
+ text-decoration-color: var(--ca-green);
338
+ }
339
+
340
+ .cg-widget__entry-excerpt,
341
+ .cg-widget__comment-excerpt {
342
+ color: var(--ca-ink-muted);
343
+ font-size: var(--ca-text-caption);
344
+ line-height: var(--ca-leading-ui);
345
+ }
346
+
347
+ .cg-widget__entry-date,
348
+ .cg-widget__comment-date {
349
+ color: var(--ca-green);
350
+ font-size: var(--ca-text-caption);
351
+ font-weight: var(--ca-weight-semibold);
352
+ line-height: var(--ca-leading-ui);
353
+ font-variant-numeric: lining-nums tabular-nums;
354
+ }
355
+
356
+ .cg-widget__comment {
357
+ display: grid;
358
+ gap: var(--ca-s1);
359
+ line-height: var(--ca-leading-ui);
360
+ }
361
+
362
+ .cg-widget__comment-author {
363
+ font-weight: var(--ca-weight-semibold);
364
+ }
365
+
366
+ .cg-widget a.cg-widget__comment-entry {
367
+ text-decoration-color: transparent;
368
+ }
369
+
370
+ .cg-widget a.cg-widget__comment-entry:hover {
371
+ text-decoration-color: var(--ca-green);
372
+ }
373
+
374
+ /* Terms and archives: the label on the left, the count on the right. */
375
+ :is(.cg-widget__terms, .cg-widget__archives) > li {
376
+ display: flex;
377
+ flex-wrap: wrap;
378
+ justify-content: space-between;
379
+ align-items: baseline;
380
+ gap: var(--ca-s1) var(--ca-s4);
381
+ }
382
+
383
+ :is(.cg-widget__terms, .cg-widget__archives, .cg-widget__links, .cg-widget__toc) a {
384
+ font-weight: var(--ca-weight-semibold);
385
+ text-decoration-color: transparent;
386
+ }
387
+
388
+ :is(.cg-widget__terms, .cg-widget__archives, .cg-widget__links, .cg-widget__toc) a:hover {
389
+ color: var(--ca-ink);
390
+ text-decoration-color: var(--ca-green);
391
+ }
392
+
393
+ .cg-widget__terms-item[data-depth="1"],
394
+ .cg-widget__toc-item[data-depth="1"] {
395
+ padding-inline-start: var(--ca-s5);
396
+ }
397
+
398
+ .cg-widget__terms-item[data-depth="2"],
399
+ .cg-widget__toc-item[data-depth="2"] {
400
+ padding-inline-start: var(--ca-s10);
401
+ }
402
+
403
+ .cg-widget__terms-count,
404
+ .cg-widget__archives-count,
405
+ .cg-widget__cloud-count {
406
+ color: var(--ca-ink-muted);
407
+ font-size: var(--ca-text-caption);
408
+ font-variant-numeric: lining-nums tabular-nums;
409
+ }
410
+
411
+ /* A link list ends each label on the theme's arrow. */
412
+ .cg-widget__links a::after {
413
+ content: "\2192" / "";
414
+ display: inline-block;
415
+ margin-inline-start: 0.35em;
416
+ color: var(--ca-green);
417
+ }
418
+
419
+ .cg-widget__cloud {
420
+ display: flex;
421
+ flex-wrap: wrap;
422
+ align-items: baseline;
423
+ gap: var(--ca-s2) var(--ca-s5);
424
+ }
425
+
426
+ .cg-widget__cloud-item {
427
+ display: inline-flex;
428
+ align-items: baseline;
429
+ gap: var(--ca-s1);
430
+ font-weight: var(--ca-weight-semibold);
431
+ }
432
+
433
+ .cg-widget__cloud-item a {
434
+ text-decoration-color: transparent;
435
+ }
436
+
437
+ .cg-widget__cloud-item[data-weight="1"] {
438
+ font-size: var(--ca-text-sm);
439
+ }
440
+ .cg-widget__cloud-item[data-weight="2"] {
441
+ font-size: var(--ca-text-caption);
442
+ }
443
+ .cg-widget__cloud-item[data-weight="3"] {
444
+ font-size: var(--ca-text-md);
445
+ }
446
+ .cg-widget__cloud-item[data-weight="4"] {
447
+ font-size: var(--ca-text-lg);
448
+ }
449
+ .cg-widget__cloud-item[data-weight="5"] {
450
+ font-size: var(--ca-text-xl);
451
+ }
452
+
453
+ /* --- search, a jump menu, a form: the theme's own fields ------------------- */
454
+
455
+ .cg-widget__search,
456
+ .cg-widget__jump {
457
+ display: flex;
458
+ align-items: stretch;
459
+ gap: var(--ca-s2);
460
+ }
461
+
462
+ .cg-widget__search-input,
463
+ .cg-widget__jump select,
464
+ .cg-widget__form :is(input:not([type="checkbox"]), select, textarea) {
465
+ flex: 1;
466
+ inline-size: 100%;
467
+ min-inline-size: 0;
468
+ min-block-size: 44px;
469
+ padding: var(--ca-s2) var(--ca-s3);
470
+ border: var(--ca-rule) solid var(--ca-line-strong);
471
+ border-radius: var(--ca-radius-control);
472
+ background: var(--ca-canvas);
473
+ color: var(--ca-ink);
474
+ font-family: var(--ca-font-text);
475
+ font-size: var(--ca-text-md);
476
+ line-height: var(--ca-leading-ui);
477
+ transition: border-color var(--ca-duration) var(--ca-ease);
478
+ }
479
+
480
+ .cg-widget__search-input::placeholder {
481
+ color: var(--ca-ink-subtle);
482
+ }
483
+
484
+ .cg-widget__search-input:focus-visible,
485
+ .cg-widget__jump select:focus-visible,
486
+ .cg-widget__form :is(input, select, textarea):focus-visible {
487
+ outline: var(--ca-rule-strong) solid var(--ca-green);
488
+ outline-offset: 1px;
489
+ border-color: var(--ca-green);
490
+ }
491
+
492
+ .cg-widget__search-button,
493
+ .cg-widget__jump-button,
494
+ .cg-widget__form-submit,
495
+ .cg-widget a.cg-widget__cta-action {
496
+ display: inline-flex;
497
+ flex: none;
498
+ align-items: center;
499
+ justify-content: center;
500
+ min-block-size: 44px;
501
+ padding: var(--ca-s2) var(--ca-s5);
502
+ border: var(--ca-rule) solid var(--ca-action);
503
+ border-radius: var(--ca-radius-control);
504
+ background: var(--ca-action);
505
+ color: var(--ca-action-fg);
506
+ font-family: var(--ca-font-text);
507
+ font-size: var(--ca-text-md);
508
+ font-weight: var(--ca-weight-semibold);
509
+ line-height: 1.2;
510
+ text-decoration: none;
511
+ cursor: pointer;
512
+ transition:
513
+ background-color var(--ca-duration) var(--ca-ease),
514
+ border-color var(--ca-duration) var(--ca-ease),
515
+ color var(--ca-duration) var(--ca-ease);
516
+ }
517
+
518
+ :is(.cg-widget__search-button, .cg-widget__jump-button, .cg-widget__form-submit):hover,
519
+ .cg-widget a.cg-widget__cta-action:hover {
520
+ border-color: var(--ca-action-hover);
521
+ background: var(--ca-action-hover);
522
+ color: var(--ca-action-hover-fg);
523
+ }
524
+
525
+ .cg-widget__form {
526
+ display: grid;
527
+ gap: var(--ca-s4);
528
+ }
529
+
530
+ .cg-widget__form .cg-form__field {
531
+ margin: 0;
532
+ }
533
+
534
+ .cg-widget__form label {
535
+ display: block;
536
+ margin-block-end: var(--ca-s2);
537
+ color: var(--ca-ink);
538
+ font-size: var(--ca-text-caption);
539
+ font-weight: var(--ca-weight-semibold);
540
+ }
541
+
542
+ .cg-widget__form-submit {
543
+ justify-self: start;
544
+ }
545
+
546
+ .cg-widget a.cg-widget__form-link,
547
+ .cg-widget a.cg-widget__about-link,
548
+ .cg-widget__calendar-nav a {
549
+ font-weight: var(--ca-weight-semibold);
550
+ }
551
+
552
+ .cg-widget a.cg-widget__form-link::after,
553
+ .cg-widget a.cg-widget__about-link::after {
554
+ content: "\2192" / "";
555
+ display: inline-block;
556
+ margin-inline-start: 0.35em;
557
+ }
558
+
559
+ /* --- words and pictures ---------------------------------------------------- */
560
+
561
+ .cg-widget__figure,
562
+ .cg-widget__embed,
563
+ .cg-widget__quote {
564
+ margin: 0;
565
+ }
566
+
567
+ :is(.cg-widget__image, .cg-widget__about-image, .cg-widget__gallery-image) {
568
+ display: block;
569
+ inline-size: 100%;
570
+ block-size: auto;
571
+ background: var(--ca-band);
572
+ }
573
+
574
+ .cg-widget__gallery-image {
575
+ aspect-ratio: 1;
576
+ object-fit: cover;
577
+ }
578
+
579
+ .cg-widget__caption {
580
+ margin-block-start: var(--ca-s3);
581
+ color: var(--ca-ink-muted);
582
+ font-size: var(--ca-text-caption);
583
+ line-height: var(--ca-leading-ui);
584
+ }
585
+
586
+ .cg-widget__frame {
587
+ display: block;
588
+ inline-size: 100%;
589
+ aspect-ratio: 16 / 9;
590
+ border: 0;
591
+ background: var(--ca-band);
592
+ }
593
+
594
+ .cg-widget__gallery {
595
+ display: grid;
596
+ grid-template-columns: repeat(3, minmax(0, 1fr));
597
+ gap: var(--ca-s2);
598
+ }
599
+
600
+ .cg-widget__gallery[data-columns="2"] {
601
+ grid-template-columns: repeat(2, minmax(0, 1fr));
602
+ }
603
+ .cg-widget__gallery[data-columns="4"] {
604
+ grid-template-columns: repeat(4, minmax(0, 1fr));
605
+ }
606
+
607
+ .cg-widget__text :is(p, ul, ol, h2, h3, h4) + :is(p, ul, ol, h2, h3, h4) {
608
+ margin-block-start: var(--ca-s3);
609
+ }
610
+
611
+ .cg-widget__text :is(h2, h3, h4) {
612
+ font-size: var(--ca-text-lg);
613
+ }
614
+
615
+ .cg-widget__text :is(ul, ol) {
616
+ padding-inline-start: 1.25em;
617
+ list-style: disc;
618
+ }
619
+
620
+ .cg-widget__text li::marker {
621
+ color: var(--ca-green);
622
+ }
623
+
624
+ /* A quotation as the prose sets one: the green bar, the display face. */
625
+ .cg-widget__quote {
626
+ padding-inline-start: var(--ca-s5);
627
+ border-inline-start: 3px solid var(--ca-green);
628
+ }
629
+
630
+ .cg-widget__quote-text {
631
+ margin: 0;
632
+ font-family: var(--ca-font-display);
633
+ font-size: var(--ca-text-lg);
634
+ font-weight: var(--ca-weight-medium);
635
+ line-height: var(--ca-leading-lead);
636
+ quotes: "\201C" "\201D" "\2018" "\2019";
637
+ }
638
+
639
+ .cg-widget__quote-text p::before {
640
+ content: open-quote;
641
+ }
642
+
643
+ .cg-widget__quote-text p::after {
644
+ content: close-quote;
645
+ }
646
+
647
+ .cg-widget__quote-source {
648
+ display: flex;
649
+ flex-direction: column;
650
+ gap: 0;
651
+ margin-block-start: var(--ca-s4);
652
+ font-size: var(--ca-text-caption);
653
+ line-height: var(--ca-leading-ui);
654
+ }
655
+
656
+ .cg-widget__quote-name {
657
+ font-weight: var(--ca-weight-semibold);
658
+ }
659
+
660
+ .cg-widget__quote-role {
661
+ color: var(--ca-ink-muted);
662
+ }
663
+
664
+ .cg-widget__about {
665
+ display: grid;
666
+ gap: var(--ca-s3);
667
+ justify-items: start;
668
+ }
669
+
670
+ .cg-widget__about-image {
671
+ margin-block-end: var(--ca-s2);
672
+ aspect-ratio: 4 / 3;
673
+ object-fit: cover;
674
+ }
675
+
676
+ .cg-widget__about-heading {
677
+ font-family: var(--ca-font-display);
678
+ font-size: var(--ca-text-xl);
679
+ font-weight: var(--ca-weight-bold);
680
+ font-stretch: var(--ca-stretch-display);
681
+ line-height: var(--ca-leading-heading);
682
+ letter-spacing: var(--ca-tracking-display);
683
+ text-wrap: balance;
684
+ }
685
+
686
+ .cg-widget__about-body {
687
+ color: var(--ca-ink-muted);
688
+ }
689
+
690
+ /* --- an ask: the paper band, the green button ------------------------------ */
691
+
692
+ .cg-widget--cta {
693
+ padding: var(--ca-s6) var(--ca-s6) var(--ca-s6);
694
+ background: var(--ca-band);
695
+ }
696
+
697
+ .cg-widget--cta .cg-widget__title {
698
+ margin-block-end: var(--ca-s3);
699
+ padding-block-start: 0;
700
+ border-block-start: 0;
701
+ color: var(--ca-green);
702
+ font-family: var(--ca-font-text);
703
+ font-size: var(--ca-text-caption);
704
+ font-stretch: normal;
705
+ letter-spacing: 0;
706
+ }
707
+
708
+ .cg-widget__cta {
709
+ display: grid;
710
+ gap: var(--ca-s3);
711
+ justify-items: start;
712
+ }
713
+
714
+ .cg-widget__cta-heading {
715
+ color: var(--ca-ink);
716
+ font-family: var(--ca-font-display);
717
+ font-size: var(--ca-text-xl);
718
+ font-weight: var(--ca-weight-bold);
719
+ font-stretch: var(--ca-stretch-display);
720
+ line-height: var(--ca-leading-heading);
721
+ letter-spacing: var(--ca-tracking-display);
722
+ text-wrap: balance;
723
+ }
724
+
725
+ .cg-widget__cta-body {
726
+ color: var(--ca-ink-muted);
727
+ line-height: var(--ca-leading-lead);
728
+ }
729
+
730
+ .cg-widget a.cg-widget__cta-action {
731
+ margin-block-start: var(--ca-s3);
732
+ }
733
+
734
+ /* --- the hall: address, lines, hours --------------------------------------- */
735
+
736
+ .cg-widget__contact {
737
+ display: grid;
738
+ gap: var(--ca-s2);
739
+ line-height: var(--ca-leading-ui);
740
+ }
741
+
742
+ .cg-widget__contact-line {
743
+ display: flex;
744
+ gap: var(--ca-s3);
745
+ align-items: start;
746
+ }
747
+
748
+ .cg-widget__icon {
749
+ flex: none;
750
+ margin-block-start: 0.2em;
751
+ color: var(--ca-green);
752
+ }
753
+
754
+ .cg-widget__contact-line a {
755
+ font-variant-numeric: lining-nums tabular-nums;
756
+ text-decoration-color: transparent;
757
+ }
758
+
759
+ .cg-widget__contact-line a:hover {
760
+ color: var(--ca-ink);
761
+ text-decoration-color: var(--ca-green);
762
+ }
763
+
764
+ .cg-widget__hours {
765
+ display: grid;
766
+ grid-template-columns: auto 1fr;
767
+ gap: var(--ca-s1) var(--ca-s4);
768
+ margin: var(--ca-s3) 0 0;
769
+ padding-block-start: var(--ca-s3);
770
+ border-block-start: var(--ca-rule) solid var(--ca-line);
771
+ font-variant-numeric: lining-nums tabular-nums;
772
+ }
773
+
774
+ .cg-widget__hours dt {
775
+ color: var(--ca-ink-muted);
776
+ }
777
+
778
+ .cg-widget__hours dd {
779
+ margin: 0;
780
+ justify-self: end;
781
+ font-weight: var(--ca-weight-semibold);
782
+ text-align: end;
783
+ }
784
+
785
+ .cg-widget__social {
786
+ display: flex;
787
+ flex-wrap: wrap;
788
+ gap: var(--ca-s1) var(--ca-s5);
789
+ }
790
+
791
+ .cg-widget__social-item a {
792
+ display: inline-flex;
793
+ align-items: center;
794
+ gap: var(--ca-s2);
795
+ min-block-size: 2.5rem;
796
+ text-decoration-color: transparent;
797
+ }
798
+
799
+ /* The profiles keep their names beside the icons, as in the footer. */
800
+ .cg-widget__social .cg-visually-hidden {
801
+ position: static;
802
+ inline-size: auto;
803
+ block-size: auto;
804
+ margin: 0;
805
+ overflow: visible;
806
+ clip-path: none;
807
+ white-space: normal;
808
+ }
809
+
810
+ /* --- a calendar: the noticeboard's dates ----------------------------------- */
811
+
812
+ .cg-widget__calendar-table {
813
+ inline-size: 100%;
814
+ border-collapse: collapse;
815
+ font-size: var(--ca-text-caption);
816
+ font-variant-numeric: lining-nums tabular-nums;
817
+ text-align: center;
818
+ }
819
+
820
+ .cg-widget__calendar-table caption {
821
+ padding-block-end: var(--ca-s3);
822
+ color: var(--ca-green);
823
+ font-weight: var(--ca-weight-semibold);
824
+ text-align: start;
825
+ }
826
+
827
+ .cg-widget__calendar-table th {
828
+ padding-block: var(--ca-s2);
829
+ border-block-end: var(--ca-rule) solid var(--ca-line);
830
+ color: var(--ca-ink-muted);
831
+ font-weight: var(--ca-weight-semibold);
832
+ }
833
+
834
+ .cg-widget__calendar-table td {
835
+ padding-block: var(--ca-s2);
836
+ }
837
+
838
+ .cg-widget__calendar-table td[data-posts] a {
839
+ font-weight: var(--ca-weight-bold);
840
+ }
841
+
842
+ .cg-widget__calendar-nav {
843
+ display: flex;
844
+ justify-content: space-between;
845
+ margin-block-start: var(--ca-s3);
846
+ font-size: var(--ca-text-caption);
847
+ }
848
+
849
+ /* --- before and after the content: photographs in a row ------------------- */
850
+
851
+ .cg-widget-area:is([data-area="content-after"], [data-area="content-before"]) {
852
+ padding-block: calc(var(--ca-section) / 2);
853
+ }
854
+
855
+ .cg-sidebar-layout__content > .cg-widget-area[data-area="content-after"] {
856
+ padding-block-end: 0;
857
+ }
858
+
859
+ .cg-widget-area:is([data-area="content-after"], [data-area="content-before"]) .cg-widget__title {
860
+ margin-block-end: var(--ca-s8);
861
+ padding-block-start: var(--ca-s5);
862
+ font-size: var(--ca-size-section);
863
+ font-weight: var(--ca-weight-semibold);
864
+ line-height: var(--ca-leading-heading);
865
+ letter-spacing: var(--ca-tracking-display);
866
+ }
867
+
868
+ @media (min-width: 40rem) {
869
+ .cg-widget-area:is([data-area="content-after"], [data-area="content-before"])
870
+ .cg-widget__entries {
871
+ display: grid;
872
+ grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr));
873
+ gap: var(--ca-s10) var(--ca-col-gap);
874
+ }
875
+
876
+ .cg-widget-area:is([data-area="content-after"], [data-area="content-before"]) .cg-widget__entry,
877
+ .cg-widget-area:is([data-area="content-after"], [data-area="content-before"])
878
+ .cg-widget__entry[data-image="image"] {
879
+ grid-template-columns: minmax(0, 1fr);
880
+ align-content: start;
881
+ align-items: start;
882
+ row-gap: var(--ca-s4);
883
+ padding-block: 0;
884
+ border-block-start: 0;
885
+ }
886
+
887
+ .cg-widget-area:is([data-area="content-after"], [data-area="content-before"])
888
+ .cg-widget__entry-image {
889
+ aspect-ratio: 4 / 3;
890
+ }
891
+
892
+ .cg-widget-area:is([data-area="content-after"], [data-area="content-before"])
893
+ .cg-widget__entry-text {
894
+ gap: var(--ca-s3);
895
+ }
896
+
897
+ .cg-widget-area:is([data-area="content-after"], [data-area="content-before"])
898
+ a.cg-widget__entry-title {
899
+ font-size: var(--ca-text-xl);
900
+ }
901
+
902
+ .cg-widget-area:is([data-area="content-after"], [data-area="content-before"])
903
+ .cg-widget__entry-excerpt {
904
+ font-size: var(--ca-text-md);
905
+ line-height: var(--ca-leading-text);
906
+ }
907
+ }
908
+
909
+ /* --- the footer's widget row: on the green band ---------------------------- */
910
+
911
+ .ca-footer__widgets {
912
+ display: grid;
913
+ grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr));
914
+ gap: var(--ca-s10) var(--ca-col-gap);
915
+ padding-block-start: var(--ca-s10);
916
+ border-block-start: var(--ca-rule) solid var(--ca-footer-line);
917
+ }
918
+
919
+ .ca-footer__widgets .cg-widget-area {
920
+ gap: var(--ca-s8);
921
+ }
922
+
923
+ .ca-footer__widgets .cg-widget,
924
+ .ca-footer__widgets .cg-widget a,
925
+ .ca-footer__widgets .cg-widget__entry-title {
926
+ color: var(--ca-footer-ink);
927
+ }
928
+
929
+ /* Links read like the footer menu's: plain words, underlined on hover. */
930
+ .ca-footer__widgets .cg-widget a {
931
+ font-weight: var(--ca-weight-regular);
932
+ text-decoration-color: transparent;
933
+ text-underline-offset: 0.3em;
934
+ }
935
+
936
+ .ca-footer__widgets .cg-widget__links a::after {
937
+ content: none;
938
+ }
939
+
940
+ .ca-footer__widgets .cg-widget a:hover {
941
+ color: var(--ca-footer-ink);
942
+ text-decoration-color: currentColor;
943
+ }
944
+
945
+ .ca-footer__widgets .cg-widget:not(:has(> .cg-widget__title)) {
946
+ padding-block-start: 0;
947
+ border-block-start: 0;
948
+ }
949
+
950
+ .ca-footer__widgets .cg-widget__title {
951
+ margin-block-end: var(--ca-s3);
952
+ padding-block-start: 0;
953
+ border-block-start: 0;
954
+ color: var(--ca-footer-muted);
955
+ font-family: var(--ca-font-text);
956
+ font-size: var(--ca-text-caption);
957
+ font-stretch: normal;
958
+ letter-spacing: 0;
959
+ }
960
+
961
+ .ca-footer__widgets .cg-widget__body {
962
+ line-height: var(--ca-leading-ui);
963
+ }
964
+
965
+ .ca-footer__widgets
966
+ :is(
967
+ .cg-widget__entry,
968
+ .cg-widget__comment,
969
+ .cg-widget__terms > li,
970
+ .cg-widget__archives > li,
971
+ .cg-widget__links > li,
972
+ .cg-widget__toc > li
973
+ ) {
974
+ padding-block: var(--ca-s1);
975
+ border-block-start: 0;
976
+ }
977
+
978
+ .ca-footer__widgets
979
+ :is(
980
+ .cg-widget__entry-date,
981
+ .cg-widget__entry-excerpt,
982
+ .cg-widget__comment-date,
983
+ .cg-widget__comment-excerpt,
984
+ .cg-widget__terms-count,
985
+ .cg-widget__archives-count,
986
+ .cg-widget__cloud-count,
987
+ .cg-widget__caption,
988
+ .cg-widget__cta-body,
989
+ .cg-widget__about-body,
990
+ .cg-widget__quote-role,
991
+ .cg-widget__hours dt,
992
+ .cg-widget__calendar-table th,
993
+ .cg-widget__calendar-table caption
994
+ ) {
995
+ color: var(--ca-footer-muted);
996
+ }
997
+
998
+ .ca-footer__widgets .cg-widget__icon {
999
+ color: var(--ca-footer-muted);
1000
+ }
1001
+
1002
+ .ca-footer__widgets :is(.cg-widget__hours, .cg-widget__calendar-table th) {
1003
+ border-color: var(--ca-footer-line);
1004
+ }
1005
+
1006
+ .ca-footer__widgets .cg-widget__quote {
1007
+ border-inline-start-color: var(--ca-footer-ink);
1008
+ }
1009
+
1010
+ .ca-footer__widgets .cg-widget--cta {
1011
+ padding: 0;
1012
+ background: transparent;
1013
+ }
1014
+
1015
+ .ca-footer__widgets .cg-widget__cta-heading {
1016
+ color: var(--ca-footer-ink);
1017
+ font-size: var(--ca-text-lg);
1018
+ }
1019
+
1020
+ /* On the band a button is its outline in the band's own ink: the green
1021
+ filled button would vanish into the green. */
1022
+ .ca-footer__widgets .cg-widget a.cg-widget__cta-action,
1023
+ .ca-footer__widgets
1024
+ :is(.cg-widget__search-button, .cg-widget__jump-button, .cg-widget__form-submit) {
1025
+ border-color: var(--ca-footer-ink);
1026
+ background: transparent;
1027
+ color: var(--ca-footer-ink);
1028
+ }
1029
+
1030
+ .ca-footer__widgets .cg-widget a.cg-widget__cta-action:hover,
1031
+ .ca-footer__widgets
1032
+ :is(.cg-widget__search-button, .cg-widget__jump-button, .cg-widget__form-submit):hover {
1033
+ border-color: var(--ca-footer-ink);
1034
+ background: transparent;
1035
+ color: var(--ca-footer-ink);
1036
+ text-decoration-line: underline;
1037
+ text-decoration-color: currentColor;
1038
+ }
1039
+
1040
+ .ca-footer__widgets
1041
+ :is(
1042
+ .cg-widget__search-input,
1043
+ .cg-widget__jump select,
1044
+ .cg-widget__form input:not([type="checkbox"]),
1045
+ .cg-widget__form select,
1046
+ .cg-widget__form textarea
1047
+ ) {
1048
+ border-color: var(--ca-footer-muted);
1049
+ background: var(--ca-footer);
1050
+ color: var(--ca-footer-ink);
1051
+ }
1052
+
1053
+ .ca-footer__widgets .cg-widget__search-input::placeholder {
1054
+ color: var(--ca-footer-muted);
1055
+ }
1056
+
1057
+ .ca-footer__widgets .cg-widget :focus-visible {
1058
+ outline-color: var(--ca-footer-ink);
1059
+ }