ultimate-jekyll-manager 0.0.118 → 0.0.120

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 (51) hide show
  1. package/CLAUDE.md +409 -23
  2. package/README.md +171 -2
  3. package/TODO.md +10 -2
  4. package/_backup/form-manager.backup.js +1020 -0
  5. package/dist/assets/js/core/auth.js +5 -4
  6. package/dist/assets/js/core/cookieconsent.js +24 -17
  7. package/dist/assets/js/core/exit-popup.js +15 -12
  8. package/dist/assets/js/core/social-sharing.js +8 -4
  9. package/dist/assets/js/libs/auth/pages.js +78 -149
  10. package/dist/assets/js/libs/dev.js +192 -129
  11. package/dist/assets/js/libs/form-manager.js +643 -775
  12. package/dist/assets/js/pages/account/index.js +3 -2
  13. package/dist/assets/js/pages/account/sections/api-keys.js +37 -52
  14. package/dist/assets/js/pages/account/sections/connections.js +37 -46
  15. package/dist/assets/js/pages/account/sections/delete.js +57 -78
  16. package/dist/assets/js/pages/account/sections/profile.js +37 -56
  17. package/dist/assets/js/pages/account/sections/security.js +102 -125
  18. package/dist/assets/js/pages/admin/notifications/new/index.js +73 -151
  19. package/dist/assets/js/pages/blog/index.js +33 -53
  20. package/dist/assets/js/pages/contact/index.js +112 -173
  21. package/dist/assets/js/pages/download/index.js +39 -86
  22. package/dist/assets/js/pages/oauth2/index.js +17 -17
  23. package/dist/assets/js/pages/payment/checkout/index.js +23 -36
  24. package/dist/assets/js/pages/pricing/index.js +5 -2
  25. package/dist/assets/js/pages/test/libraries/form-manager/index.js +194 -0
  26. package/dist/assets/themes/classy/css/components/_cards.scss +2 -2
  27. package/dist/defaults/_.env +6 -0
  28. package/dist/defaults/_.gitignore +7 -1
  29. package/dist/defaults/dist/_includes/core/body.html +5 -13
  30. package/dist/defaults/dist/_includes/core/foot.html +1 -0
  31. package/dist/defaults/dist/_includes/themes/classy/frontend/sections/nav.html +51 -36
  32. package/dist/defaults/dist/_layouts/blueprint/admin/notifications/new.html +13 -2
  33. package/dist/defaults/dist/_layouts/themes/classy/frontend/pages/about.html +84 -42
  34. package/dist/defaults/dist/_layouts/themes/classy/frontend/pages/account/index.html +26 -21
  35. package/dist/defaults/dist/_layouts/themes/classy/frontend/pages/auth/signin.html +2 -2
  36. package/dist/defaults/dist/_layouts/themes/classy/frontend/pages/auth/signup.html +2 -2
  37. package/dist/defaults/dist/_layouts/themes/classy/frontend/pages/blog/index.html +72 -58
  38. package/dist/defaults/dist/_layouts/themes/classy/frontend/pages/blog/post.html +46 -29
  39. package/dist/defaults/dist/_layouts/themes/classy/frontend/pages/contact.html +46 -53
  40. package/dist/defaults/dist/_layouts/themes/classy/frontend/pages/download.html +111 -73
  41. package/dist/defaults/dist/_layouts/themes/classy/frontend/pages/index.html +111 -56
  42. package/dist/defaults/dist/_layouts/themes/classy/frontend/pages/pricing.html +127 -81
  43. package/dist/defaults/dist/pages/test/libraries/form-manager.html +181 -0
  44. package/dist/defaults/dist/pages/test/libraries/lazy-loading.html +1 -1
  45. package/dist/gulp/tasks/defaults.js +210 -1
  46. package/dist/gulp/tasks/serve.js +18 -0
  47. package/dist/lib/logger.js +1 -1
  48. package/firebase-debug.log +770 -0
  49. package/package.json +6 -6
  50. package/.playwright-mcp/page-2025-10-22T19-11-27-666Z.png +0 -0
  51. package/.playwright-mcp/page-2025-10-22T19-11-57-357Z.png +0 -0
@@ -6,17 +6,17 @@ layout: themes/[ site.theme.id ]/frontend/core/base
6
6
  # Hero Section
7
7
  hero:
8
8
  headline: "Get in"
9
- headline_accent: "Touch"
9
+ headline_accent: "touch"
10
10
  subheadline: "We're here to help! Reach out to our friendly support team and we'll get back to you as soon as possible."
11
11
 
12
12
  # Contact Methods Section
13
13
  contact_methods:
14
- - title: "Email Support"
14
+ - title: "Email support"
15
15
  description: "Get help within 24 hours"
16
16
  icon: "envelope"
17
17
  value: "Email Us"
18
18
  link: "#form"
19
- - title: "Live Chat"
19
+ - title: "Live chat"
20
20
  description: "Chat with our team now 24/7"
21
21
  icon: "comments"
22
22
  value: "Chat Now"
@@ -24,9 +24,11 @@ contact_methods:
24
24
 
25
25
  # Contact Form Section
26
26
  contact_form:
27
- superheadline: "{% uj_icon 'envelope' %} Email"
27
+ superheadline:
28
+ icon: "envelope"
29
+ text: "Email"
28
30
  headline: "Send us a"
29
- headline_accent: "Message"
31
+ headline_accent: "message"
30
32
  subheadline: "Fill out the form below and we'll get back to you within 24 hours."
31
33
 
32
34
  # Stats Section
@@ -51,9 +53,11 @@ stats:
51
53
 
52
54
  # Testimonials Section
53
55
  testimonials:
54
- superheadline: "{% uj_icon 'comments' %} Testimonials"
55
- headline: "What Our Customers"
56
- headline_accent: "Say"
56
+ superheadline:
57
+ icon: "megaphone"
58
+ text: "Testimonials"
59
+ headline: "What our customers"
60
+ headline_accent: "say"
57
61
  subheadline: "Hear from people who've experienced our support firsthand"
58
62
  items:
59
63
  - quote: "The support team responded within minutes and solved my issue perfectly!"
@@ -74,9 +78,12 @@ testimonials:
74
78
 
75
79
  # FAQs Section
76
80
  faqs:
77
- superheadline: "{% uj_icon 'circle-question' %} FAQs"
78
- headline: "Frequently Asked"
79
- headline_accent: "Questions"
81
+ superheadline:
82
+ icon: "messages-question"
83
+ text: "FAQs"
84
+ headline: "Frequently asked"
85
+ headline_accent: "questions"
86
+ subheadline: "Everything you need to know about our support experience."
80
87
  items:
81
88
  - question: "How quickly do you respond to support requests?"
82
89
  answer: "We aim to respond to all support requests within 24 hours during business days. For urgent issues, our live chat is available 24/7."
@@ -95,7 +102,7 @@ faqs:
95
102
  {{ page.resolved.hero.headline }} <span class="text-gradient-rainbow">{{ page.resolved.hero.headline_accent }}</span>
96
103
  </h1>
97
104
  {% iftruthy page.resolved.hero.subheadline %}
98
- <p class="fs-5 text-muted mb-0">
105
+ <p class="fs-5 text-muted">
99
106
  {{ page.resolved.hero.subheadline }}
100
107
  </p>
101
108
  {% endiftruthy %}
@@ -152,8 +159,13 @@ faqs:
152
159
  <div class="card border-0 shadow-lg" data-lazy="@class animation-slide-up">
153
160
  <div class="card-body p-5">
154
161
  <div class="text-center mb-4">
155
- {% iftruthy page.resolved.contact_form.superheadline %}
156
- <span class="badge bg-body-tertiary border-gradient-rainbow border-1 text-body p-2 mb-1 fw-semibold small">{{ page.resolved.contact_form.superheadline }}</span>
162
+ {% iftruthy page.resolved.contact_form.superheadline.text %}
163
+ <span class="badge bg-body-tertiary border-gradient-rainbow border-1 text-body p-2 mb-1 fw-semibold small">
164
+ {% iftruthy page.resolved.contact_form.superheadline.icon %}
165
+ {% uj_icon page.resolved.contact_form.superheadline.icon, "me-1" %}
166
+ {% endiftruthy %}
167
+ {{ page.resolved.contact_form.superheadline.text }}
168
+ </span>
157
169
  {% endiftruthy %}
158
170
  <h2 class="h3 mb-2">
159
171
  {{ page.resolved.contact_form.headline }}
@@ -166,37 +178,24 @@ faqs:
166
178
  {% endiftruthy %}
167
179
  </div>
168
180
 
169
- <!-- Error Container -->
170
- <div class="alert alert-danger contact-error-alert mb-3 d-none" role="alert"></div>
171
-
172
- <!-- Success Container -->
173
- <div class="alert alert-success contact-success-alert mb-3 d-none" role="alert"></div>
174
-
175
- <form id="contact-form" autocomplete="on" novalidate>
181
+ <form id="contact-form" autocomplete="on">
176
182
  <div class="row g-3 mb-4">
177
183
  <div class="col-md-6">
178
- <label for="first_name" class="form-label fw-semibold">
179
- First Name <span class="text-danger">*</span>
180
- </label>
184
+ <label for="first_name" class="form-label fw-semibold">First Name <span class="text-danger">*</span></label>
181
185
  <input type="text" class="form-control form-control-lg" id="first_name" name="first_name"
182
186
  placeholder="Enter your first name"
183
187
  autocomplete="given-name"
184
- data-invalid-field="first_name"
185
- data-invalid-description="Please enter your first name"
186
188
  minlength="2"
187
189
  maxlength="50"
190
+ autofocus
188
191
  required>
189
192
  <div class="invalid-feedback"></div>
190
193
  </div>
191
194
  <div class="col-md-6">
192
- <label for="last_name" class="form-label fw-semibold">
193
- Last Name <span class="text-danger">*</span>
194
- </label>
195
+ <label for="last_name" class="form-label fw-semibold">Last Name <span class="text-danger">*</span></label>
195
196
  <input type="text" class="form-control form-control-lg" id="last_name" name="last_name"
196
197
  placeholder="Enter your last name"
197
198
  autocomplete="family-name"
198
- data-invalid-field="last_name"
199
- data-invalid-description="Please enter your last name"
200
199
  minlength="2"
201
200
  maxlength="50"
202
201
  required>
@@ -210,14 +209,10 @@ faqs:
210
209
  </div>
211
210
 
212
211
  <div class="mb-4">
213
- <label for="email" class="form-label fw-semibold">
214
- Email Address <span class="text-danger">*</span>
215
- </label>
212
+ <label for="email" class="form-label fw-semibold">Email Address <span class="text-danger">*</span></label>
216
213
  <input type="email" class="form-control form-control-lg" id="email" name="email"
217
214
  placeholder="Enter your email address"
218
215
  autocomplete="email"
219
- data-invalid-field="email"
220
- data-invalid-description="Please enter a valid email address"
221
216
  required>
222
217
  <div class="invalid-feedback"></div>
223
218
  </div>
@@ -228,17 +223,11 @@ faqs:
228
223
  placeholder="Enter your company name (optional)"
229
224
  autocomplete="organization"
230
225
  maxlength="100">
231
- <div class="invalid-feedback"></div>
232
226
  </div>
233
227
 
234
228
  <div class="mb-4">
235
- <label for="subject" class="form-label fw-semibold">
236
- Subject <span class="text-danger">*</span>
237
- </label>
238
- <select class="form-select form-select-lg" id="subject" name="subject"
239
- data-invalid-field="subject"
240
- data-invalid-description="Please select a subject"
241
- required>
229
+ <label for="subject" class="form-label fw-semibold">Subject <span class="text-danger">*</span></label>
230
+ <select class="form-select form-select-lg" id="subject" name="subject" required>
242
231
  <option value="">Choose a topic...</option>
243
232
  <option value="general">General Inquiry</option>
244
233
  <option value="support">Technical Support</option>
@@ -255,13 +244,9 @@ faqs:
255
244
  </div>
256
245
 
257
246
  <div class="mb-4">
258
- <label for="message" class="form-label fw-semibold">
259
- Message <span class="text-danger">*</span>
260
- </label>
247
+ <label for="message" class="form-label fw-semibold">Message <span class="text-danger">*</span></label>
261
248
  <textarea class="form-control form-control-lg" id="message" name="message" rows="3"
262
249
  placeholder="Tell us how we can help you..."
263
- data-invalid-field="message"
264
- data-invalid-description="Please enter your message"
265
250
  minlength="10"
266
251
  maxlength="5000"
267
252
  required></textarea>
@@ -269,9 +254,9 @@ faqs:
269
254
  </div>
270
255
 
271
256
  <div class="d-grid gap-2 d-md-flex justify-content-md-between align-items-center">
272
- <button type="submit" class="btn btn-primary btn-lg px-5" disabled>
257
+ <button type="submit" class="btn btn-primary btn-lg px-5">
273
258
  {% uj_icon "paper-plane", "me-2" %}
274
- <span class="button-text">Send Message</span>
259
+ Send Message
275
260
  </button>
276
261
  <a href="{{ site.url }}" class="btn btn-link">
277
262
  {% uj_icon "arrow-left", "me-1" %}
@@ -309,8 +294,13 @@ faqs:
309
294
  <div class="row justify-content-center">
310
295
  <div class="col-lg-8">
311
296
  <div class="text-center mb-5" data-lazy="@class animation-slide-up">
312
- {% iftruthy page.resolved.faqs.superheadline %}
313
- <span class="badge bg-body-tertiary border-gradient-rainbow border-1 text-body p-2 mb-1 fw-semibold small">{{ page.resolved.faqs.superheadline }}</span>
297
+ {% iftruthy page.resolved.faqs.superheadline.text %}
298
+ <span class="badge bg-body-tertiary border-gradient-rainbow border-1 text-body p-2 mb-1 fw-semibold small">
299
+ {% iftruthy page.resolved.faqs.superheadline.icon %}
300
+ {% uj_icon page.resolved.faqs.superheadline.icon, "me-1" %}
301
+ {% endiftruthy %}
302
+ {{ page.resolved.faqs.superheadline.text }}
303
+ </span>
314
304
  {% endiftruthy %}
315
305
  <h2 class="display-5 fw-bold mb-2">
316
306
  {{ page.resolved.faqs.headline }}
@@ -318,6 +308,9 @@ faqs:
318
308
  <span class="text-accent">{{ page.resolved.faqs.headline_accent }}</span>
319
309
  {% endiftruthy %}
320
310
  </h2>
311
+ {% iftruthy page.resolved.faqs.subheadline %}
312
+ <p class="fs-5 text-muted">{{ page.resolved.faqs.subheadline }}</p>
313
+ {% endiftruthy %}
321
314
  </div>
322
315
 
323
316
  {% if page.resolved.faqs.items %}
@@ -6,14 +6,16 @@ layout: themes/[ site.theme.id ]/frontend/core/base
6
6
  # Hero Section
7
7
  hero:
8
8
  headline: "Download {{ site.brand.name }}"
9
- headline_accent: "Today"
9
+ headline_accent: "today"
10
10
  description: "Get {{ site.brand.name }} for your platform and start building amazing things"
11
11
 
12
12
  # Downloads Section
13
13
  downloads:
14
- superheadline: "{% uj_icon 'download' %} Download"
15
- headline: "Available on Every"
16
- headline_accent: "Platform"
14
+ superheadline:
15
+ icon: "download"
16
+ text: "Download"
17
+ headline: "Available on every"
18
+ headline_accent: "platform"
17
19
  subheadline: "Choose your platform below to get started"
18
20
  supported_platforms:
19
21
  - "Windows"
@@ -78,18 +80,20 @@ downloads:
78
80
 
79
81
  # Features Section
80
82
  features:
81
- superheadline: "{% uj_icon 'star' %} Benefits"
82
- headline: "Why You Should"
83
- headline_accent: "Download"
83
+ superheadline:
84
+ icon: "star"
85
+ text: "Benefits"
86
+ headline: "Why you should"
87
+ headline_accent: "download"
84
88
  subheadline: "Everything you need to succeed, built right in"
85
89
  items:
86
- - title: "Lightning Fast"
90
+ - title: "Lightning fast"
87
91
  description: "Install in seconds and start using immediately"
88
92
  icon: "bolt"
89
- - title: "Cross-Platform"
93
+ - title: "Cross-platform"
90
94
  description: "Seamlessly sync across all your devices"
91
95
  icon: "sync"
92
- - title: "Auto-Update"
96
+ - title: "Auto-update"
93
97
  description: "Always get the latest features automatically"
94
98
  icon: "cloud-arrow-down"
95
99
  - title: "Secure"
@@ -98,9 +102,11 @@ features:
98
102
 
99
103
  # System Requirements Section
100
104
  system_requirements:
101
- superheadline: "{% uj_icon 'server' %} Requirements"
105
+ superheadline:
106
+ icon: "server"
107
+ text: "Requirements"
102
108
  headline: "System"
103
- headline_accent: "Requirements"
109
+ headline_accent: "requirements"
104
110
  subheadline: "Make sure your device meets these minimum requirements"
105
111
  desktop:
106
112
  label: "Desktop"
@@ -121,10 +127,12 @@ system_requirements:
121
127
 
122
128
  # FAQ Section
123
129
  faqs:
124
- superheadline: "{% uj_icon 'circle-question' %} FAQs"
125
- headline: "Frequently Asked"
126
- headline_accent: "Questions"
127
- subheadline: "Everything you need to know about downloading and installing. Can't find the answer you're looking for? Please chat to our friendly team."
130
+ superheadline:
131
+ icon: "messages-question"
132
+ text: "FAQs"
133
+ headline: "Frequently asked"
134
+ headline_accent: "questions"
135
+ subheadline: "Everything you need to know about downloading and installing {{ site.brand.name }}."
128
136
  items:
129
137
  - question: "Is {{ site.brand.name }} free to download?"
130
138
  answer: "Yes! {{ site.brand.name }} is completely free to download and use. We offer premium features for power users, but the core functionality is always free."
@@ -137,7 +145,9 @@ faqs:
137
145
 
138
146
  # CTA Section
139
147
  cta:
140
- superheadline: "{% uj_icon 'headset' %} Support"
148
+ superheadline:
149
+ icon: "comments"
150
+ text: "Support"
141
151
  headline: "Need help getting"
142
152
  headline_accent: "started?"
143
153
  subheadline: "Our support team is here 24/7 to help you with installation and setup"
@@ -172,8 +182,13 @@ cta:
172
182
  <section class="pt-0">
173
183
  <div class="container">
174
184
  <div class="text-center mb-5" data-lazy="@class animation-slide-up">
175
- {% iftruthy page.resolved.downloads.superheadline %}
176
- <span class="badge bg-body-tertiary border-gradient-rainbow border-1 text-body p-2 mb-1 fw-semibold small">{{ page.resolved.downloads.superheadline }}</span>
185
+ {% iftruthy page.resolved.downloads.superheadline.text %}
186
+ <span class="badge bg-body-tertiary border-gradient-rainbow border-1 text-body p-2 mb-1 fw-semibold small">
187
+ {% iftruthy page.resolved.downloads.superheadline.icon %}
188
+ {% uj_icon page.resolved.downloads.superheadline.icon, "me-1" %}
189
+ {% endiftruthy %}
190
+ {{ page.resolved.downloads.superheadline.text }}
191
+ </span>
177
192
  {% endiftruthy %}
178
193
  <h2 class="h2 mb-2">
179
194
  {{ page.resolved.downloads.headline }}
@@ -182,7 +197,7 @@ cta:
182
197
  {% endiftruthy %}
183
198
  </h2>
184
199
  {% iftruthy page.resolved.downloads.subheadline %}
185
- <p class="fs-5 text-muted mb-4">{{ page.resolved.downloads.subheadline }}</p>
200
+ <p class="fs-5 text-muted">{{ page.resolved.downloads.subheadline }}</p>
186
201
  {% endiftruthy %}
187
202
  </div>
188
203
 
@@ -190,7 +205,7 @@ cta:
190
205
  <div class="row justify-content-center mb-5">
191
206
  <div class="col-12">
192
207
  <div class="d-flex flex-wrap justify-content-center gap-3" data-lazy="@class animation-slide-up">
193
- <ul class="nav nav-pills gap-3 border-0" id="platform-selector" role="tablist">
208
+ <ul class="nav nav-pills gap-3 border-0 justify-content-center w-100" id="platform-selector" role="tablist">
194
209
  <!-- Loading tab (shown by default until platform is detected) -->
195
210
  <li class="nav-item d-none" role="presentation" data-platform="loading">
196
211
  <button
@@ -220,9 +235,9 @@ cta:
220
235
  {% endiftruthy %}
221
236
  {% endfor %}
222
237
 
223
- <li class="nav-item" role="presentation">
238
+ <li class="nav-item flex-fill flex-sm-grow-0" role="presentation">
224
239
  <button
225
- class="btn btn-outline-adaptive btn-lg platform-btn d-flex align-items-center justify-content-center"
240
+ class="btn btn-outline-adaptive btn-lg platform-btn d-flex align-items-center justify-content-center w-100"
226
241
  id="{{ platform.id }}-tab"
227
242
  data-bs-toggle="tab"
228
243
  data-bs-target="#{{ platform.id }}-pane"
@@ -320,7 +335,7 @@ cta:
320
335
  {% uj_icon "triangle-exclamation", "fs-4 me-3" %}
321
336
  <div class="text-start">
322
337
  <h6 class="mb-0">{{ page.resolved.downloads.not_available.headline }}</h6>
323
- <small>{{ page.resolved.downloads.not_available.description }}</small>
338
+ <small>{{ site.brand.name }} is not currently available for {{ platform.name }}. Please choose another platform.</small>
324
339
  </div>
325
340
  </div>
326
341
  {% endif %}
@@ -351,20 +366,8 @@ cta:
351
366
  {% endfor %}
352
367
  </div>
353
368
  {% else %}
354
- <div class="d-flex flex-column gap-3">
355
- {% for type in platform.types %}
356
- <button
357
- type="button"
358
- class="btn btn-primary btn-lg d-flex align-items-center justify-content-center"
359
- >
360
- {% uj_icon type.icon, "fa-3xl me-2" %}
361
- {{ type.name }}
362
- </button>
363
- {% endfor %}
364
- </div>
365
-
366
369
  {% if platform.id == "android" or platform.id == "ios" %}
367
- <div class="mt-4 text-start">
370
+ <div class="mb-4 text-start">
368
371
  <form id="mobile-email-form-{{ platform.id }}" class="mobile-email-form" data-platform="{{ platform.id }}">
369
372
  <label for="email-{{ platform.id }}" class="form-label">Email Address</label>
370
373
  <div class="row g-3">
@@ -389,6 +392,19 @@ cta:
389
392
  </form>
390
393
  </div>
391
394
  {% endif %}
395
+
396
+ <div class="d-flex flex-column gap-3">
397
+ {% for type in platform.types %}
398
+ <button
399
+ type="button"
400
+ class="btn btn-primary btn-lg d-flex align-items-center justify-content-center"
401
+ disabled
402
+ >
403
+ {% uj_icon type.icon, "fa-3xl me-2" %}
404
+ {{ type.name }}
405
+ </button>
406
+ {% endfor %}
407
+ </div>
392
408
  {% endif %}
393
409
  </div>
394
410
  </div>
@@ -404,8 +420,13 @@ cta:
404
420
  <section>
405
421
  <div class="container">
406
422
  <div class="text-center mb-5" data-lazy="@class animation-slide-up">
407
- {% iftruthy page.resolved.features.superheadline %}
408
- <span class="badge bg-body-tertiary border-gradient-rainbow border-1 text-body p-2 mb-1 fw-semibold small">{{ page.resolved.features.superheadline }}</span>
423
+ {% iftruthy page.resolved.features.superheadline.text %}
424
+ <span class="badge bg-body-tertiary border-gradient-rainbow border-1 text-body p-2 mb-1 fw-semibold small">
425
+ {% iftruthy page.resolved.features.superheadline.icon %}
426
+ {% uj_icon page.resolved.features.superheadline.icon, "me-1" %}
427
+ {% endiftruthy %}
428
+ {{ page.resolved.features.superheadline.text }}
429
+ </span>
409
430
  {% endiftruthy %}
410
431
  <h2 class="h2 mb-2">
411
432
  {{ page.resolved.features.headline }}
@@ -444,8 +465,13 @@ cta:
444
465
  <div class="card border-0 shadow-sm">
445
466
  <div class="card-body p-5">
446
467
  <div class="text-center mb-4">
447
- {% iftruthy page.resolved.system_requirements.superheadline %}
448
- <span class="badge bg-body-tertiary border-gradient-rainbow border-1 text-body p-2 mb-1 fw-semibold small">{{ page.resolved.system_requirements.superheadline }}</span>
468
+ {% iftruthy page.resolved.system_requirements.superheadline.text %}
469
+ <span class="badge bg-body-tertiary border-gradient-rainbow border-1 text-body p-2 mb-1 fw-semibold small">
470
+ {% iftruthy page.resolved.system_requirements.superheadline.icon %}
471
+ {% uj_icon page.resolved.system_requirements.superheadline.icon, "me-1" %}
472
+ {% endiftruthy %}
473
+ {{ page.resolved.system_requirements.superheadline.text }}
474
+ </span>
449
475
  {% endiftruthy %}
450
476
  <h2 class="h2 mb-2">
451
477
  {{ page.resolved.system_requirements.headline }}
@@ -505,9 +531,14 @@ cta:
505
531
  <div class="container">
506
532
  <div class="row justify-content-center">
507
533
  <div class="col-lg-8">
508
- <div class="text-center mb-4" data-lazy="@class animation-slide-up">
509
- {% iftruthy page.resolved.faqs.superheadline %}
510
- <span class="badge bg-body-tertiary border-gradient-rainbow border-1 text-body p-2 mb-1 fw-semibold small">{{ page.resolved.faqs.superheadline }}</span>
534
+ <div class="text-center mb-5" data-lazy="@class animation-slide-up">
535
+ {% iftruthy page.resolved.faqs.superheadline.text %}
536
+ <span class="badge bg-body-tertiary border-gradient-rainbow border-1 text-body p-2 mb-1 fw-semibold small">
537
+ {% iftruthy page.resolved.faqs.superheadline.icon %}
538
+ {% uj_icon page.resolved.faqs.superheadline.icon, "me-1" %}
539
+ {% endiftruthy %}
540
+ {{ page.resolved.faqs.superheadline.text }}
541
+ </span>
511
542
  {% endiftruthy %}
512
543
  <h2 class="h2 mb-2">
513
544
  {{ page.resolved.faqs.headline }}
@@ -516,7 +547,7 @@ cta:
516
547
  {% endiftruthy %}
517
548
  </h2>
518
549
  {% iftruthy page.resolved.faqs.subheadline %}
519
- <p class="fs-5 text-muted mb-0">{{ page.resolved.faqs.subheadline }}</p>
550
+ <p class="fs-5 text-muted">{{ page.resolved.faqs.subheadline }}</p>
520
551
  {% endiftruthy %}
521
552
  </div>
522
553
 
@@ -544,36 +575,43 @@ cta:
544
575
  <!-- CTA Section -->
545
576
  <section>
546
577
  <div class="container">
547
- <div class="rounded-4 p-5 position-relative overflow-hidden bg-primary bg-gradient" data-lazy="@class animation-slide-up">
548
- <div class="row align-items-center py-4">
549
- <div class="col-lg-8 text-light text-center text-lg-start">
550
- {% iftruthy page.resolved.cta.superheadline %}
551
- <span class="badge bg-white bg-opacity-25 text-light p-2 mb-1 fw-semibold small">{{ page.resolved.cta.superheadline }}</span>
552
- {% endiftruthy %}
553
- <h2 class="h2 lh-sm mb-2">
554
- {{ page.resolved.cta.headline }}
555
- {% iftruthy page.resolved.cta.headline_accent %}
556
- <span class="text-accent">{{ page.resolved.cta.headline_accent }}</span>
578
+ <div class="card border-0 bg-gradient bg-primary text-white rounded-4 p-4 p-md-5 text-center position-relative overflow-hidden" data-lazy="@class animation-slide-up">
579
+ <!-- Decorative icon - top right -->
580
+ <div class="position-absolute top-0 end-0 opacity-25" style="font-size:10rem;transform:rotate(15deg)translate(30%,-30%)">
581
+ {% uj_icon "messages-question", "text-white" %}
582
+ </div>
583
+
584
+ <!-- Decorative icon - bottom left -->
585
+ <div class="position-absolute bottom-0 start-0 opacity-25" style="font-size:8rem;transform:rotate(-20deg)translate(-30%,30%)">
586
+ {% uj_icon "shield-check", "text-white" %}
587
+ </div>
588
+
589
+ <div class="position-relative">
590
+ {% iftruthy page.resolved.cta.superheadline.text %}
591
+ <span class="badge bg-white bg-opacity-25 text-light p-2 mb-3 fw-semibold small">
592
+ {% iftruthy page.resolved.cta.superheadline.icon %}
593
+ {% uj_icon page.resolved.cta.superheadline.icon, "me-1" %}
557
594
  {% endiftruthy %}
558
- </h2>
559
- {% iftruthy page.resolved.cta.subheadline %}
560
- <p class="fs-5 mb-4 opacity-90">
561
- {{ page.resolved.cta.subheadline }}
562
- </p>
595
+ {{ page.resolved.cta.superheadline.text }}
596
+ </span>
597
+ {% endiftruthy %}
598
+
599
+ <h2 class="h3 fw-bold mb-3">
600
+ {{ page.resolved.cta.headline }}
601
+ {% iftruthy page.resolved.cta.headline_accent %}
602
+ <span class="text-accent">{{ page.resolved.cta.headline_accent }}</span>
563
603
  {% endiftruthy %}
564
- <div class="d-flex flex-column flex-sm-row gap-3 justify-content-center justify-content-lg-start">
565
- <a href="{{ page.resolved.cta.primary_button.href }}" class="btn btn-adaptive btn-lg px-5 py-3">
566
- {% uj_icon page.resolved.cta.primary_button.icon, "me-2" %}
567
- {{ page.resolved.cta.primary_button.text }}
568
- </a>
569
- <a href="{{ page.resolved.cta.secondary_button.href }}" class="btn btn-outline-adaptive btn-lg px-5 py-3">
570
- {% uj_icon page.resolved.cta.secondary_button.icon, "me-2" %}
571
- {{ page.resolved.cta.secondary_button.text }}
572
- </a>
573
- </div>
574
- </div>
575
- <div class="col-lg-4 d-none d-lg-block text-end">
576
- {% uj_icon "download", "text-light display-1" %}
604
+ </h2>
605
+
606
+ {% iftruthy page.resolved.cta.subheadline %}
607
+ <p class="lead mb-4">{{ page.resolved.cta.subheadline }}</p>
608
+ {% endiftruthy %}
609
+
610
+ <div class="d-flex flex-column flex-sm-row gap-3 justify-content-center">
611
+ <a href="{{ page.resolved.cta.primary_button.href }}" class="btn btn-light btn-lg px-4">
612
+ {% uj_icon page.resolved.cta.primary_button.icon, "me-2" %}
613
+ {{ page.resolved.cta.primary_button.text }}
614
+ </a>
577
615
  </div>
578
616
  </div>
579
617
  </div>