ultimate-jekyll-manager 0.0.117 → 0.0.119

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 (44) hide show
  1. package/CLAUDE.md +616 -138
  2. package/README.md +108 -0
  3. package/TODO.md +1 -1
  4. package/dist/assets/js/core/auth.js +8 -11
  5. package/dist/assets/js/core/cookieconsent.js +24 -17
  6. package/dist/assets/js/core/exit-popup.js +15 -12
  7. package/dist/assets/js/core/social-sharing.js +8 -4
  8. package/dist/assets/js/libs/auth/pages.js +14 -13
  9. package/dist/assets/js/libs/dev.js +192 -129
  10. package/dist/assets/js/libs/prerendered-icons.js +27 -0
  11. package/dist/assets/js/pages/account/index.js +4 -3
  12. package/dist/assets/js/pages/account/sections/api-keys.js +2 -6
  13. package/dist/assets/js/pages/account/sections/connections.js +101 -59
  14. package/dist/assets/js/pages/account/sections/delete.js +83 -84
  15. package/dist/assets/js/pages/account/sections/referrals.js +29 -29
  16. package/dist/assets/js/pages/account/sections/security.js +51 -71
  17. package/dist/assets/js/pages/admin/notifications/new/index.js +17 -10
  18. package/dist/assets/js/pages/blog/index.js +7 -5
  19. package/dist/assets/js/pages/contact/index.js +6 -33
  20. package/dist/assets/js/pages/download/index.js +3 -2
  21. package/dist/assets/js/pages/payment/checkout/index.js +6 -6
  22. package/dist/assets/js/pages/payment/checkout/modules/processors-main.js +2 -2
  23. package/dist/assets/js/pages/payment/checkout/modules/session.js +4 -4
  24. package/dist/assets/js/pages/pricing/index.js +5 -2
  25. package/dist/assets/themes/classy/css/components/_cards.scss +2 -2
  26. package/dist/defaults/_.env +6 -0
  27. package/dist/defaults/_.gitignore +7 -1
  28. package/dist/defaults/dist/_includes/core/body.html +18 -3
  29. package/dist/defaults/dist/_includes/core/foot.html +1 -0
  30. package/dist/defaults/dist/_includes/themes/classy/frontend/sections/nav.html +51 -36
  31. package/dist/defaults/dist/_layouts/blueprint/admin/notifications/new.html +13 -2
  32. package/dist/defaults/dist/_layouts/themes/classy/frontend/pages/about.html +84 -42
  33. package/dist/defaults/dist/_layouts/themes/classy/frontend/pages/account/index.html +67 -35
  34. package/dist/defaults/dist/_layouts/themes/classy/frontend/pages/blog/index.html +72 -58
  35. package/dist/defaults/dist/_layouts/themes/classy/frontend/pages/blog/post.html +46 -29
  36. package/dist/defaults/dist/_layouts/themes/classy/frontend/pages/contact.html +36 -16
  37. package/dist/defaults/dist/_layouts/themes/classy/frontend/pages/download.html +111 -73
  38. package/dist/defaults/dist/_layouts/themes/classy/frontend/pages/index.html +111 -56
  39. package/dist/defaults/dist/_layouts/themes/classy/frontend/pages/pricing.html +127 -81
  40. package/dist/defaults/dist/pages/pricing.md +7 -0
  41. package/dist/defaults/dist/pages/test/libraries/lazy-loading.html +1 -1
  42. package/dist/gulp/tasks/defaults.js +210 -1
  43. package/firebase-debug.log +504 -0
  44. package/package.json +5 -5
@@ -30,7 +30,7 @@ export function buildPaymentIntentData(webManager) {
30
30
  let processorName = state.paymentMethod;
31
31
  if (state.paymentMethod === 'card') {
32
32
  // Determine which processor will be used for card payments
33
- const forcedProcessor = urlParams.get('_test_cardProcessor');
33
+ const forcedProcessor = urlParams.get('_dev_cardProcessor');
34
34
 
35
35
  if (forcedProcessor) {
36
36
  processorName = forcedProcessor;
@@ -46,7 +46,7 @@ export function buildPaymentIntentData(webManager) {
46
46
  // Get UTM parameters from storage
47
47
  const utmData = webManager.storage().get('marketing.utm');
48
48
  let utm = {};
49
-
49
+
50
50
  // Check if stored UTM data exists and is less than 30 days old
51
51
  if (utmData && utmData.timestamp && utmData.tags) {
52
52
  const daysDiff = (new Date() - new Date(utmData.timestamp)) / (1000 * 60 * 60 * 24);
@@ -56,8 +56,8 @@ export function buildPaymentIntentData(webManager) {
56
56
  }
57
57
 
58
58
  // Check for test app ID override
59
- const _test_appId = urlParams.get('_test_appId');
60
- const appId = _test_appId || webManager.config.brand.id;
59
+ const _dev_appId = urlParams.get('_dev_appId');
60
+ const appId = _dev_appId || webManager.config.brand.id;
61
61
 
62
62
  // Build the payment intent data structure
63
63
  const paymentIntentData = {
@@ -196,8 +196,9 @@ function trackPricingToggle(billingType) {
196
196
  content_category: billingType
197
197
  });
198
198
  ttq.track('ViewContent', {
199
- content_name: 'Pricing Toggle',
200
- content_type: billingType
199
+ content_id: 'pricing-page',
200
+ content_type: 'product',
201
+ content_name: 'Pricing Toggle'
201
202
  });
202
203
  }
203
204
 
@@ -247,6 +248,8 @@ function trackEnterpriseContact() {
247
248
  content_name: 'Enterprise Plan'
248
249
  });
249
250
  ttq.track('Contact', {
251
+ content_id: 'enterprise-plan',
252
+ content_type: 'product',
250
253
  content_name: 'Enterprise Plan'
251
254
  });
252
255
  }
@@ -11,8 +11,8 @@
11
11
  box-shadow: $classy-shadow-sm;
12
12
  position: relative;
13
13
 
14
- // Allow badges to overflow
15
- &:has(.badge) {
14
+ // Allow badges to overflow (except when overflow-hidden is explicitly set)
15
+ &:has(.badge):not(.overflow-hidden) {
16
16
  overflow: visible !important;
17
17
  }
18
18
 
@@ -0,0 +1,6 @@
1
+ # ========== Default Values ==========
2
+ # ...
3
+
4
+ # ========== Custom Values ==========
5
+ # Add your custom environment variables below this line
6
+ # ...
@@ -1,4 +1,7 @@
1
+ # ========== Default Values ==========
2
+ # macOS
1
3
  .DS_Store
4
+
2
5
  # Logs
3
6
  logs
4
7
  *.log
@@ -11,7 +14,6 @@ firebase-debug.log*
11
14
  .firebase/
12
15
 
13
16
  # Firebase config
14
-
15
17
  # Uncomment this if you'd like others to create their own Firebase project.
16
18
  # For a team working on the same Firebase project(s), it is recommended to leave
17
19
  # it commented so all members can deploy to the same project(s) in .firebaserc.
@@ -77,3 +79,7 @@ node_modules/
77
79
  /.cache
78
80
  /_legacy
79
81
  START-COMMANDS.md
82
+
83
+ # ========== Custom Values ==========
84
+ # Add your custom ignore patterns below this line
85
+ # ...
@@ -9,7 +9,7 @@
9
9
  hidden>
10
10
  <span class="main-alert-close">&times;</span>
11
11
  <div>
12
- <i class="fa-solid fa-warning fa-bounce me-2"></i>
12
+ {% uj_icon "warning", "fa-bounce me-2" %}
13
13
  You are using an outdated browser that our site <strong>DOES NOT</strong> support. Please <a href="https://www.google.com/chrome" rel="nofollow" target="_blank">click here</a> to update your browser.
14
14
  </div>
15
15
  </div>
@@ -19,11 +19,11 @@
19
19
  hidden>
20
20
  <span class="main-alert-close">&times;</span>
21
21
  <div>
22
- <i class="fa-solid fa-warning fa-bounce me-2"></i>
22
+ {% uj_icon "warning", "fa-bounce me-2" %}
23
23
  There is a <strong>problem with your payment method</strong>. To continue using <strong>{{ site.brand.name }}</strong>, please <a href="{{ site.url }}/account#billing" target="_blank">update your payment method</a>.
24
24
  </div>
25
25
  </div>
26
- <div
26
+ <!-- <div
27
27
  class="main-alert main-alert-top main-alert-fixed main-alert-sale bg-primary animation-fade-in"
28
28
  role="alert" aria-live="polite" aria-label="Flash sale"
29
29
  hidden>
@@ -33,7 +33,22 @@
33
33
  <strong>FLASH SALE!</strong>
34
34
  Save <strong>15%</strong> at checkout—today only! <a href="{{ site.url }}/pricing" target="_blank">Claim discount</a>.
35
35
  </div>
36
+ </div> -->
37
+
38
+ <!-- Prerendered Icons -->
39
+ {%- assign icons = page.resolved.prerender_icons | default: empty -%}
40
+ {%- iftruthy icons -%}
41
+ <!-- Pre-rendered Icon Templates -->
42
+ <div id="prerendered-icons" class="d-none" aria-hidden="true">
43
+ {%- for icon in icons -%}
44
+ {%- assign icon_name = icon.name | default: icon -%}
45
+ {%- assign icon_class = icon.class | default: "fa-3xl" -%}
46
+ <div data-icon="{{ icon_name }}" data-class="{{ icon_class }}">
47
+ {% uj_icon icon_name, icon_class %}
48
+ </div>
49
+ {%- endfor -%}
36
50
  </div>
51
+ {%- endiftruthy -%}
37
52
 
38
53
  <!-- Script to prevent clicks on disabled elements during page load -->
39
54
  <script type="text/javascript">
@@ -69,6 +69,7 @@
69
69
  buildTime: {{ site.uj.cache_breaker }},
70
70
  brand: {{ page.resolved.brand | jsonify }},
71
71
  advertising: {{ page.resolved.advertising | jsonify }},
72
+ tracking: {{ page.resolved.tracking | jsonify }},
72
73
  {% for item in page.resolved.web_manager %}
73
74
  {{ item[0] | jsonify }}: {{ item[1] | jsonify }},
74
75
  {% endfor %}
@@ -130,18 +130,23 @@
130
130
  <span>{{ child.label }}</span>
131
131
  </span>
132
132
  {% endcapture %}
133
- <li>
134
- {% iftruthy child.href %}
135
- <a class="{{ child_class }}" href="{{ child.href }}" {{ child_attributes }}>
136
- {{ child_content }}
137
- </a>
138
- {% endiftruthy %}
139
- {% iffalsy child.href %}
140
- <button class="{{ child_class }}" type="button" {{ child_attributes }}>
141
- {{ child_content }}
142
- </button>
143
- {% endiffalsy %}
144
- </li>
133
+
134
+ {% if child.divider %}
135
+ <li><hr class="dropdown-divider" {{ child_attributes }}/></li>
136
+ {% else %}
137
+ <li>
138
+ {% iftruthy child.href %}
139
+ <a class="{{ child_class }}" href="{{ child.href }}" {{ child_attributes }}>
140
+ {{ child_content }}
141
+ </a>
142
+ {% endiftruthy %}
143
+ {% iffalsy child.href %}
144
+ <button class="{{ child_class }}" type="button" {{ child_attributes }}>
145
+ {{ child_content }}
146
+ </button>
147
+ {% endiffalsy %}
148
+ </li>
149
+ {% endif %}
145
150
  {% endfor %}
146
151
  </ul>
147
152
  </li>
@@ -272,18 +277,23 @@
272
277
  <span>{{ child.label }}</span>
273
278
  </span>
274
279
  {% endcapture %}
275
- <li>
276
- {% iftruthy child.href %}
277
- <a class="{{ child_class }}" href="{{ child.href }}" {{ child_attributes }}>
278
- {{ child_content }}
279
- </a>
280
- {% endiftruthy %}
281
- {% iffalsy child.href %}
282
- <button class="{{ child_class }}" type="button" {{ child_attributes }}>
283
- {{ child_content }}
284
- </button>
285
- {% endiffalsy %}
286
- </li>
280
+
281
+ {% if child.divider %}
282
+ <li><hr class="dropdown-divider" {{ child_attributes }}/></li>
283
+ {% else %}
284
+ <li>
285
+ {% iftruthy child.href %}
286
+ <a class="{{ child_class }}" href="{{ child.href }}" {{ child_attributes }}>
287
+ {{ child_content }}
288
+ </a>
289
+ {% endiftruthy %}
290
+ {% iffalsy child.href %}
291
+ <button class="{{ child_class }}" type="button" {{ child_attributes }}>
292
+ {{ child_content }}
293
+ </button>
294
+ {% endiffalsy %}
295
+ </li>
296
+ {% endif %}
287
297
  {% endfor %}
288
298
  </ul>
289
299
  </div>
@@ -343,18 +353,23 @@
343
353
  <span>{{ child.label }}</span>
344
354
  </span>
345
355
  {% endcapture %}
346
- <li>
347
- {% iftruthy child.href %}
348
- <a class="{{ child_class }}" href="{{ child.href }}" {{ child_attributes }}>
349
- {{ child_content }}
350
- </a>
351
- {% endiftruthy %}
352
- {% iffalsy child.href %}
353
- <button class="{{ child_class }}" type="button" {{ child_attributes }}>
354
- {{ child_content }}
355
- </button>
356
- {% endiffalsy %}
357
- </li>
356
+
357
+ {% if child.divider %}
358
+ <li><hr class="dropdown-divider" {{ child_attributes }}/></li>
359
+ {% else %}
360
+ <li>
361
+ {% iftruthy child.href %}
362
+ <a class="{{ child_class }}" href="{{ child.href }}" {{ child_attributes }}>
363
+ {{ child_content }}
364
+ </a>
365
+ {% endiftruthy %}
366
+ {% iffalsy child.href %}
367
+ <button class="{{ child_class }}" type="button" {{ child_attributes }}>
368
+ {{ child_content }}
369
+ </button>
370
+ {% endiffalsy %}
371
+ </li>
372
+ {% endif %}
358
373
  {% endfor %}
359
374
  </ul>
360
375
  </div>
@@ -7,15 +7,26 @@ meta:
7
7
  title: "Create Notification - Admin"
8
8
  description: "Create and send a new notification"
9
9
  breadcrumb: "Create Notification"
10
+
11
+ ### ICON PRE-RENDERING ###
12
+ prerender_icons:
13
+ - name: "mobile"
14
+ class: "fa-sm me-1"
15
+ - name: "envelope"
16
+ class: "fa-sm me-1"
17
+ - name: "comment-sms"
18
+ class: "fa-sm me-1"
19
+ - name: "bell"
20
+ class: "fa-sm me-1"
10
21
  ---
11
22
 
12
23
  <!-- Success/Error Alerts -->
13
24
  <div class="notification-success-alert alert alert-success d-none" role="alert">
14
- <i class="bi bi-check-circle"></i> <span class="alert-message">Notification sent successfully!</span>
25
+ {% uj_icon "circle-check", "fa-sm" %} <span class="alert-message">Notification sent successfully!</span>
15
26
  </div>
16
27
 
17
28
  <div class="notification-error-alert alert alert-danger d-none" role="alert">
18
- <i class="bi bi-exclamation-triangle"></i> <span class="alert-message">An error occurred</span>
29
+ {% uj_icon "triangle-exclamation", "fa-sm" %} <span class="alert-message">An error occurred</span>
19
30
  </div>
20
31
 
21
32
  <!-- Notification Creation Form -->
@@ -6,48 +6,52 @@ layout: themes/[ site.theme.id ]/frontend/core/base
6
6
  # Hero Section
7
7
  hero:
8
8
  headline: "About"
9
- headline_accent: "Us"
9
+ headline_accent: "us"
10
10
  description: "Learn about the people, mission, and values driving {{ site.brand.name }} forward"
11
11
 
12
12
  # Mission & Vision
13
13
  mission:
14
- title: "Our Mission"
14
+ title: "Our mission"
15
15
  description: "To empower individuals and businesses with innovative technology solutions that simplify complex challenges and unlock new possibilities for growth and success."
16
16
  icon: "bullseye"
17
17
 
18
18
  vision:
19
- title: "Our Vision"
19
+ title: "Our vision"
20
20
  description: "To become the world's most trusted platform for business transformation, where innovation meets simplicity and everyone can achieve their full potential."
21
21
  icon: "lightbulb"
22
22
 
23
23
  # Story Timeline Section
24
24
  story:
25
- superheadline: "{% uj_icon 'clock-rotate-left' %} History"
25
+ superheadline:
26
+ icon: "clock-rotate-left"
27
+ text: "History"
26
28
  headline: "Follow our"
27
- headline_accent: "Journey"
29
+ headline_accent: "journey"
28
30
  subheadline: "From humble beginnings to industry leaders"
29
31
  items:
30
32
  - year: "2017"
31
- title: "The Beginning"
33
+ title: "The beginning"
32
34
  description: "{{ site.brand.name }} was founded with a vision to revolutionize the industry"
33
35
  - year: "2018"
34
- title: "Rapid Growth"
36
+ title: "Rapid growth"
35
37
  description: "Expanded our team and launched our flagship platform to thousands of users"
36
38
  - year: "2020"
37
- title: "Global Expansion"
39
+ title: "Global expansion"
38
40
  description: "Reached customers in over 100 countries and opened international offices"
39
41
  - year: "2023"
40
- title: "Innovation Award"
42
+ title: "Innovation award"
41
43
  description: "Recognized as Industry Leader and received multiple awards for innovation"
42
44
  - year: "{{ site.uj.date.year }}"
43
- title: "The Future"
45
+ title: "The future"
44
46
  description: "Continuing to push boundaries and build the future of business technology"
45
47
 
46
48
  # Company Stats
47
49
  stats:
48
- superheadline: "{% uj_icon 'chart-line' %} Numbers"
50
+ superheadline:
51
+ icon: "chart-line"
52
+ text: "Numbers"
49
53
  headline: "Measuring our"
50
- headline_accent: "Impact"
54
+ headline_accent: "impact"
51
55
  subheadline: "The milestones that define our growth"
52
56
  items:
53
57
  - number: "2017"
@@ -65,29 +69,33 @@ stats:
65
69
 
66
70
  # Company Values Section
67
71
  values:
68
- superheadline: "{% uj_icon 'compass' %} Principles"
69
- headline: "Our Core"
70
- headline_accent: "Values"
72
+ superheadline:
73
+ icon: "compass"
74
+ text: "Principles"
75
+ headline: "Our core"
76
+ headline_accent: "values"
71
77
  subheadline: "The principles that guide everything we do"
72
78
  items:
73
- - title: "Innovation First"
79
+ - title: "Innovation first"
74
80
  description: "We push boundaries and challenge the status quo to create breakthrough solutions that transform how businesses operate"
75
81
  icon: "rocket"
76
- - title: "Customer Obsessed"
82
+ - title: "Customer obsessed"
77
83
  description: "Everything we do is focused on delivering exceptional value to our customers. Their success is our success"
78
84
  icon: "heart"
79
- - title: "Team Excellence"
85
+ - title: "Team excellence"
80
86
  description: "We hire the best talent and create an environment where everyone can thrive, learn, and make an impact"
81
87
  icon: "users"
82
- - title: "Transparent Culture"
88
+ - title: "Transparent culture"
83
89
  description: "We believe in open communication, honest feedback, and shared decision-making at every level"
84
90
  icon: "magnifying-glass"
85
91
 
86
92
  # Team CTA Section
87
93
  team_cta:
88
- superheadline: "{% uj_icon 'handshake' %} People"
89
- headline: "Meet Our Amazing"
90
- headline_accent: "Team"
94
+ superheadline:
95
+ icon: "handshake"
96
+ text: "People"
97
+ headline: "Meet our amazing"
98
+ headline_accent: "team"
91
99
  subheadline: "Get to know the passionate individuals behind {{ site.brand.name }} who work every day to make your experience exceptional"
92
100
  button:
93
101
  text: "Meet the Team"
@@ -116,8 +124,13 @@ team_cta:
116
124
  <section class="pt-0">
117
125
  <div class="container">
118
126
  <div class="text-center mb-5" data-lazy="@class animation-slide-up">
119
- {% iftruthy page.resolved.story.superheadline %}
120
- <span class="badge bg-body-tertiary border-gradient-rainbow border-1 text-body p-2 mb-1 fw-semibold small">{{ page.resolved.story.superheadline }}</span>
127
+ {% iftruthy page.resolved.story.superheadline.text %}
128
+ <span class="badge bg-body-tertiary border-gradient-rainbow border-1 text-body p-2 mb-1 fw-semibold small">
129
+ {% iftruthy page.resolved.story.superheadline.icon %}
130
+ {% uj_icon page.resolved.story.superheadline.icon, "me-1" %}
131
+ {% endiftruthy %}
132
+ {{ page.resolved.story.superheadline.text }}
133
+ </span>
121
134
  {% endiftruthy %}
122
135
  <h2 class="h2 mb-2">
123
136
  {{ page.resolved.story.headline }} <span class="text-accent">{{ page.resolved.story.headline_accent }}</span>
@@ -205,8 +218,13 @@ team_cta:
205
218
  <section>
206
219
  <div class="container">
207
220
  <div class="text-center mb-5" data-lazy="@class animation-slide-up">
208
- {% iftruthy page.resolved.stats.superheadline %}
209
- <span class="badge bg-body-tertiary border-gradient-rainbow border-1 text-body p-2 mb-1 fw-semibold small">{{ page.resolved.stats.superheadline }}</span>
221
+ {% iftruthy page.resolved.stats.superheadline.text %}
222
+ <span class="badge bg-body-tertiary border-gradient-rainbow border-1 text-body p-2 mb-1 fw-semibold small">
223
+ {% iftruthy page.resolved.stats.superheadline.icon %}
224
+ {% uj_icon page.resolved.stats.superheadline.icon, "me-1" %}
225
+ {% endiftruthy %}
226
+ {{ page.resolved.stats.superheadline.text }}
227
+ </span>
210
228
  {% endiftruthy %}
211
229
  <h2 class="h2 mb-2">
212
230
  {{ page.resolved.stats.headline }}
@@ -237,8 +255,13 @@ team_cta:
237
255
  <section>
238
256
  <div class="container">
239
257
  <div class="text-center mb-5" data-lazy="@class animation-slide-up">
240
- {% iftruthy page.resolved.values.superheadline %}
241
- <span class="badge bg-body-tertiary border-gradient-rainbow border-1 text-body p-2 mb-1 fw-semibold small">{{ page.resolved.values.superheadline }}</span>
258
+ {% iftruthy page.resolved.values.superheadline.text %}
259
+ <span class="badge bg-body-tertiary border-gradient-rainbow border-1 text-body p-2 mb-1 fw-semibold small">
260
+ {% iftruthy page.resolved.values.superheadline.icon %}
261
+ {% uj_icon page.resolved.values.superheadline.icon, "me-1" %}
262
+ {% endiftruthy %}
263
+ {{ page.resolved.values.superheadline.text }}
264
+ </span>
242
265
  {% endiftruthy %}
243
266
  <h2 class="h2 mb-2">
244
267
  {{ page.resolved.values.headline }} <span class="text-accent">{{ page.resolved.values.headline_accent }}</span>
@@ -269,21 +292,40 @@ team_cta:
269
292
  <!-- Team CTA Section -->
270
293
  <section>
271
294
  <div class="container">
272
- <div class="rounded-4 p-5 bg-primary bg-gradient text-light text-center" data-lazy="@class animation-slide-up">
273
- <div class="row justify-content-center">
274
- <div class="col-lg-8">
275
- {% iftruthy page.resolved.team_cta.superheadline %}
276
- <span class="badge bg-white bg-opacity-25 text-light p-2 mb-1 fw-semibold small">{{ page.resolved.team_cta.superheadline }}</span>
277
- {% endiftruthy %}
278
- <h2 class="h2 mb-2">
279
- {{ page.resolved.team_cta.headline }} <span class="text-accent">{{ page.resolved.team_cta.headline_accent }}</span>
280
- </h2>
281
- {% iftruthy page.resolved.team_cta.subheadline %}
282
- <p class="fs-5 mb-4 opacity-90">
283
- {{ page.resolved.team_cta.subheadline }}
284
- </p>
295
+ <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">
296
+ <!-- Decorative icon - top right -->
297
+ <div class="position-absolute top-0 end-0 opacity-25" style="font-size:10rem;transform:rotate(15deg)translate(30%,-30%)">
298
+ {% uj_icon "users", "text-white" %}
299
+ </div>
300
+
301
+ <!-- Decorative icon - bottom left -->
302
+ <div class="position-absolute bottom-0 start-0 opacity-25" style="font-size:8rem;transform:rotate(-20deg)translate(-30%,30%)">
303
+ {% uj_icon "heart", "text-white" %}
304
+ </div>
305
+
306
+ <div class="position-relative">
307
+ {% iftruthy page.resolved.team_cta.superheadline.text %}
308
+ <span class="badge bg-white bg-opacity-25 text-light p-2 mb-3 fw-semibold small">
309
+ {% iftruthy page.resolved.team_cta.superheadline.icon %}
310
+ {% uj_icon page.resolved.team_cta.superheadline.icon, "me-1" %}
311
+ {% endiftruthy %}
312
+ {{ page.resolved.team_cta.superheadline.text }}
313
+ </span>
314
+ {% endiftruthy %}
315
+
316
+ <h2 class="h3 fw-bold mb-3">
317
+ {{ page.resolved.team_cta.headline }}
318
+ {% iftruthy page.resolved.team_cta.headline_accent %}
319
+ {{ page.resolved.team_cta.headline_accent }}
285
320
  {% endiftruthy %}
286
- <a href="{{ page.resolved.team_cta.button.href }}" class="btn btn-light btn-lg px-5 py-3">
321
+ </h2>
322
+
323
+ {% iftruthy page.resolved.team_cta.subheadline %}
324
+ <p class="lead mb-4">{{ page.resolved.team_cta.subheadline }}</p>
325
+ {% endiftruthy %}
326
+
327
+ <div class="d-flex flex-column flex-sm-row gap-3 justify-content-center">
328
+ <a href="{{ page.resolved.team_cta.button.href }}" class="btn btn-light btn-lg px-4">
287
329
  {% uj_icon page.resolved.team_cta.button.icon, "me-2" %}
288
330
  {{ page.resolved.team_cta.button.text }}
289
331
  </a>