PageSourceSearch

https://www.activestate.com/company/pricing

html activestate.com collected 2026-09-24 08:25:33 UTC 254,153 bytes, 3,184 lines download raw bytes

1<!DOCTYPE html><!-- Last Published: Tue Sep 22 2026 14:55:10 GMT+0000 (Coordinated Universal Time) --><html data-wf-domain="core-01.activestate.com" data-wf-page="6a19bae46de372b248e653db" data-wf-site="6a0dc648b0f944cab4dc0cb1" lang="en"><head><meta charset="utf-8"/><link href="https://cdn.prod.website-files.com" rel="preconnect" crossorigin="anonymous"/><title>Pricing | ActiveState</title><meta content="Explore ActiveState pricing for secure open source packages, containers, and runtimes. Free containers available. Enterprise plans for custom catalogs." name="description"/><meta content="Pricing | ActiveState" property="og:title"/><meta content="Explore ActiveState pricing for secure open source packages, containers, and runtimes. Free containers available. Enterprise plans for custom catalogs." property="og:description"/><meta content="https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb1/6a10c95d166b391ef88a97d0_activestate-og.png" property="og:image"/><meta content="Pricing | ActiveState" name="twitter:title"/><meta content="Explore ActiveState pricing for secure open source packages, containers, and runtimes. Free containers available. Enterprise plans for custom catalogs." name="twitter:description"/><meta content="https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb1/6a10c95d166b391ef88a97d0_activestate-og.png" name="twitter:image"/><meta property="og:type" content="website"/><meta content="summary_large_image" name="twitter:card"/><meta content="width=device-width, initial-scale=1" name="viewport"/><meta content="JkgFN3bBFJ64KOfNVJVbDc3wcd6yWxAOg2Pk9aXT58M" name="google-site-verification"/><link href="https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb1/css/activestate.webflow.shared.846faa88d.css" rel="stylesheet" type="text/css" integrity="sha384-hG+qiN697sZedKx5D4QFDf0W/b/YWQu+QkHrB39ce3Mi50ZUJ/HVO4lsHloRZSN8" crossorigin="anonymous"/>
1<script src="https://use.typekit.net/xzy3lij.js" type="text/javascript"></script>
1<script type="text/javascript">try{Typekit.load();}catch(e){}</script>
1<script type="text/javascript">!function(o,c){var n=c.documentElement,t=" w-mod-";n.className+=t+"js",("ontouchstart"in o||o.DocumentTouch&&c instanceof DocumentTouch)&&(n.className+=t+"touch")}(window,document);</script>
1<link href="https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb1/6a10c9fbef25a50507190c12_activestate-webclip.png" rel="icon" type="image/png" sizes="32x32" media="(prefers-color-scheme: light)"/><link href="https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb1/6a10c9fbef25a50507190c12_activestate-webclip.png" rel="icon" type="image/png" sizes="32x32" media="(prefers-color-scheme: dark)"/><link href="https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb1/6a10c9fb4cc45b8a75b8924a_activestate-webclip.png" rel="icon" type="image/png" sizes="48x48"/><link href="https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb1/6a10c9fb9f77fb9d8253b71c_activestate-webclip.png" rel="apple-touch-icon" sizes="180x180"/><link href="https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb1/6a10c9fbc415128a402d51c5_activestate-webclip.png" rel="icon" type="image/png" sizes="192x192"/><link href="https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb1/6a10c9fb5f0a2c6b37089b19_activestate-webclip.png" rel="icon" type="image/png" sizes="512x512"/>
1<script type="application/ld+json">
2{
3  "@context": "https://schema.org",
4  "@type": "FAQPage",
5  "mainEntity": [{
6    "@type": "Question",
7    "name": "How does ActiveState price the Curated Catalog?",
8    "acceptedAnswer": {
9      "@type": "Answer",
10      "text": "ActiveState prices the Curated Catalog by company size and language, not by component count. Customers are placed into one of four tiers based on employee count (or developer count for the largest tier), and every language costs the same flat rate within that tier."
11    }
12  },{
13    "@type": "Question",
14    "name": "How much does ActiveState's Curated Catalog cost?",
15    "acceptedAnswer": {
16      "@type": "Answer",
17      "text": "Curated Catalog pricing starts at $25,000 per language per year for companies under 100 employees, rising to $50,000 for 100–999 employees and $150,000 for 1,000+ employees. Large organizations can license the entire catalog, with pricing scoped at contract."
18    }
19  },{
20    "@type": "Question",
21    "name": "Why is Curated Catalog pricing set by tier and language, rather than by component count?",
22    "acceptedAnswer": {
23      "@type": "Answer",
24      "text": "Tier-and-language pricing sets the number from two facts a customer already knows: company size and which languages they run. There's no usage estimate to make up front and no component count to reconcile at renewal. The price is set by decisions the customer controls directly."
25    }
26  },{
27    "@type": "Question",
28    "name": "What counts as a language for Curated Catalog pricing?",
29    "acceptedAnswer": {
30      "@type": "Answer",
31      "text": "Each of ActiveState's supported language ecosystems is licensed and priced individually at the customer's tier rate. A customer using three language ecosystems licenses and pays for three, regardless of which specific languages they are."
32    }
33  },{
34    "@type": "Question",
35    "name": "Does ActiveState offer custom engagements beyond the standard tiers?",
36    "acceptedAnswer": {
37      "@type": "Answer",
38      "text": "Yes. Organizations with OEM, embedded distribution, or complex custom solution needs work with our team on an engagement scoped to their specific requirements, separate from the standard per-language tier model. Talk to us to discuss your use case."
39    }
40  },{
41    "@type": "Question",
42    "name": "What happens when a CVE affects a component version outside ActiveState's active support window?",
43    "acceptedAnswer": {
44      "@type": "Answer",
45      "text": "ActiveState actively supports every version of a component up to, but not including, that component's end-of-life release, with full CVE response and SLA coverage for the entire supported range. Once a version reaches end of life, continued support is available through a custom EOL support agreement; customers should talk to their ActiveState representative before that transition. Most language ecosystems publish EOL dates well ahead of time, often years in advance, so organizations typically have significant lead time to plan an upgrade before support ends."
46    }
47  },{
48    "@type": "Question",
49    "name": "Does ActiveState's Curated Catalog pricing change during the contract term?",
50    "acceptedAnswer": {
51      "@type": "Answer",
52      "text": "No, ActiveState's per-language rate is fixed for the full contract term. The rate only changes at renewal, and only if the customer moves to a new size tier or adds languages."
53    }
54  },{
55    "@type": "Question",
56    "name": "Does ActiveState offer multi-year contract terms for the Curated Catalog?",
57    "acceptedAnswer": {
58      "@type": "Answer",
59      "text": "Yes, ActiveState offers discounted multi-year agreements at every pricing tier for the Curated Catalog."
60    }
61  },{
62    "@type": "Question",
63    "name": "What support level does ActiveState include with Curated Catalog?",
64    "acceptedAnswer": {
65      "@type": "Answer",
66      "text": "ActiveState includes the same support level across every Curated Catalog tier, with no tier-gated support features. Every component in the catalog carries an active CVE remediation SLA of 5 days for critical vulnerabilities, 10 days for high, and 30 days for all others. Curated Catalog customers receive a named account contact and account team from onboarding through renewal, structured onboarding that integrates components into existing package managers, pipelines, and repositories, and ongoing access to the ActiveState Portal for catalog visibility, automatic SBOMs, and version tracking. Components requiring maintenance outside the standard support window are available through special component maintenance, priced as custom work."
67    }
68  },{
69    "@type": "Question",
70    "name": "Does Curated Catalog pricing apply to ActiveState Platform Enterprise or Business Tier License Subscriptions or affect my existing contract?",
71    "acceptedAnswer": {
72      "@type": "Answer",
73      "text": "No. The Curated Catalog pricing model does not apply to existing ActiveState Platform Enterprise or Business Tier license subscriptions. Legacy platform licensing agreements are unaffected, and current customers continue under their existing contract terms through the end of their term.
74
75For pricing information on ActiveState Platform Enterprise or Business Tier License Subscriptions, contact your account representative / sales team."
76    }
77  }]
78}
79</script>
79<!-- Consent Pro script -->
80<script src="https://api.consentpro.com/v2/cdn/runtime/6a0dc648b0f944cab4dc0cb1.js" type="text/javascript" finsweet="consentpro" siteid="6a0dc648b0f944cab4dc0cb1"></script>
80
81
82<!-- [Attributes by Finsweet] Social Share -->
83<script defer src="https://cdn.jsdelivr.net/npm/@finsweet/attributes-socialshare@1/socialshare.js"></script>
83
84<!-- [Attributes by Finsweet] CMS Filter -->
85<script async src="https://cdn.jsdelivr.net/npm/@finsweet/attributes-cmsfilter@1/cmsfilter.js"></script>
85
86<!-- [Attributes by Finsweet] CMS Load -->
87<script async src="https://cdn.jsdelivr.net/npm/@finsweet/attributes-cmsload@1/cmsload.js"></script>
87
88
89<!-- Google Tag Manager -->
90<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
91new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
92j=d.createElement(s),dl=l!=='dataLayer'?'&l='+l:'';j.async=true;j.src=
93'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
94})(window,document,'script','dataLayer','GTM-TDZ3K7T');</script>
94
95<!-- End Google Tag Manager -->
96
97<!-- Keep this css code to improve the font quality-->
98<style>
99  * {
100  -webkit-font-smoothing: antialiased;
101  -moz-osx-font-smoothing: grayscale;
102  -o-font-smoothing: antialiased;
103  -webkit-appearance:none;
104}
105  ::selection {
106  background-color: #6E6E73;
107  color: white; /* Text color when selected */
108}
109
110/* For Firefox */
111::-moz-selection {
112  background-color: #6E6E73;
113  color: white; /* Text color when selected */
114}
115
116<!-- Start of HubSpot Embed Code -->
117<script type="text/javascript" id="hs-script-loader" async defer src="//js.hs-scripts.com/5262266.js"></script>
117
118<!-- End of HubSpot Embed Code -->
119
120<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/@splidejs/[email protected]/dist/css/splide-core.min.css">
121<style>
122.splide__track {
123  overflow: visible;
124}
125</style>
126
127
128<script>
129(function(l,i,m,y,g,e,o){
130l[m] = l[m] || function(){ (l[m].q = l[m].q || []).push(arguments) };
131e = i.createElement(y);
132e.async = 1;
133e.id = 'limy-analytics';
134e.src = 'https://sdk.getlimy.ai/p/limy-analytics.min.js';
135e.setAttribute(m, g);
136o = i.getElementsByTagName(y)[0];
137o.parentNode.insertBefore(e, o);
138})(window, document, 'limy', 'script', 'lmy_vCPA78Ak4M0gUfigfT4TWodvi5QzlTClMcINbuGxKuu');
139</script>
139
140
141<script type="text/javascript">
142  window.heapReadyCb=window.heapReadyCb||[],window.heap=window.heap||[],heap.load=function(e,t){window.heap.envId=e,window.heap.clientConfig=t=t||{},window.heap.clientConfig.shouldFetchServerConfig=!1;var a=document.createElement("script");a.type="text/javascript",a.async=!0,a.src="https://cdn.us.heap-api.com/config/"+e+"/heap_config.js";var r=document.getElementsByTagName("script")[0];r.parentNode.insertBefore(a,r);var n=["init","startTracking","stopTracking","track","resetIdentity","identify","identifyHashed","getSessionId","getUserId","getIdentity","addUserProperties","addEventProperties","removeEventProperty","clearEventProperties","addAccountProperties","addAdapter","addTransformer","addTransformerFn","onReady","addPageviewProperties","removePageviewProperty","clearPageviewProperties","trackPageview"],i=function(e){return function(){var t=Array.prototype.slice.call(arguments,0);window.heapReadyCb.push({name:e,fn:function(){heap[e]&&heap[e].apply(heap,t)}})}};for(var p=0;p<n.length;p++)heap[n[p]]=i(n[p])};
143  heap.load("915209274");
144</script>
144
145
146<!-- Hotjar Tracking Code for *.activestate.com -->
147<script>
148    (function(h,o,t,j,a,r){
149        h.hj=h.hj||function(){(h.hj.q=h.hj.q||[]).push(arguments)};
150        h._hjSettings={hjid:1634962,hjsv:6};
151        a=o.getElementsByTagName('head')[0];
152        r=o.createElement('script');r.async=1;
153        r.src=t+h._hjSettings.hjid+j+h._hjSettings.hjsv;
154        a.appendChild(r);
155    })(window,document,'https://static.hotjar.com/c/hotjar-','.js?sv=');
156</script>
156
157
158<meta name="google-site-verification" content="JkgFN3bBFJ64KOfNVJVbDc3wcd6yWxAOg2Pk9aXT58M" />
159
160<script>
161  // If the user has previously closed the banner, set a CSS variable to hide it before the page paints
162  if (localStorage.getItem('bannerClosed') === '1') {
163    document.documentElement.style.setProperty('--banner-display', 'none');
164  }
165</script>
165
166<style>
167  /* Use the CSS variable to hide the banner instantly on load — prevents flicker on return visits */
168  .navbar_banner-wrapper {
169    display: var(--banner-display, block);
170  }
171</style></head><body><div class="page-wrapper"><div data-wf--global-styles--variant="none"><div class="global-styles w-embed"><style>
172i, em {
173  color: inherit !important;
174}
175  p strong,
176p b {
177  color: inherit !important;
178}
179/* Make text look crisper and more legible in all browsers */
180body {
181  -webkit-font-smoothing: antialiased;
182  -moz-osx-font-smoothing: grayscale;
183  font-smoothing: antialiased;
184  text-rendering: optimizeLegibility;
185}
186
187/* Focus state style for keyboard navigation for the focusable elements */
188*[tabindex]:focus-visible,
189  input[type="file"]:focus-visible {
190   outline: 0.125rem solid #4d65ff;
191   outline-offset: 0.125rem;
192}
193
194/* Set color style to inherit */
195.inherit-color * {
196    color: inherit;
197}
198
199/* Get rid of top margin on first element in any rich text element */
200.w-richtext > :not(div):first-child, .w-richtext > div:first-child > :first-child {
201  margin-top: 0 !important;
202}
203
204/* Get rid of bottom margin on last element in any rich text element */
205.w-richtext>:last-child, .w-richtext ol li:last-child, .w-richtext ul li:last-child {
206	margin-bottom: 0 !important;
207}
208
209
210/* Make sure containers never lose their center alignment */
211.container-medium,.container-small, .container-large {
212	margin-right: auto !important;
213  margin-left: auto !important;
214}
215
216/* 
217Make the following elements inherit typography styles from the parent and not have hardcoded values. 
218Important: You will not be able to style for example "All Links" in Designer with this CSS applied.
219Uncomment this CSS to use it in the project. Leave this message for future hand-off.
220*/
221/*
222a,
223.w-input,
224.w-select,
225.w-tab-link,
226.w-nav-link,
227.w-dropdown-btn,
228.w-dropdown-toggle,
229.w-dropdown-link {
230  color: inherit;
231  text-decoration: inherit;
232  font-size: inherit;
233}
234*/
235
236/* Apply "..." after 3 lines of text */
237.text-style-3lines {
238	display: -webkit-box;
239	overflow: hidden;
240	-webkit-line-clamp: 3;
241	-webkit-box-orient: vertical;
242}
243
244  
245/* Apply "..." after 5 lines of text */
246.text-style-5lines {
247	display: -webkit-box;
248	overflow: hidden;
249	-webkit-line-clamp: 5;
250	-webkit-box-orient: vertical;
251}
252
253/* Apply "..." after 2 lines of text */
254.text-style-2lines {
255	display: -webkit-box;
256	overflow: hidden;
257	-webkit-line-clamp: 2;
258	-webkit-box-orient: vertical;
259}
260
261/* These classes are never overwritten */
262.hide {
263  display: none !important;
264}
265
266@media screen and (max-width: 991px) {
267    .hide, .hide-tablet {
268        display: none !important;
269    }
270}
271  @media screen and (max-width: 767px) {
272    .hide-mobile-landscape{
273      display: none !important;
274    }
275}
276  @media screen and (max-width: 479px) {
277    .hide-mobile{
278      display: none !important;
279    }
280}
281 
282.margin-0 {
283  margin: 0rem !important;
284}
285  
286.padding-0 {
287  padding: 0rem !important;
288}
289
290.spacing-clean {
291padding: 0rem !important;
292margin: 0rem !important;
293}
294
295.margin-top {
296  margin-right: 0rem !important;
297  margin-bottom: 0rem !important;
298  margin-left: 0rem !important;
299}
300
301.padding-top {
302  padding-right: 0rem !important;
303  padding-bottom: 0rem !important;
304  padding-left: 0rem !important;
305}
306  
307.margin-right {
308  margin-top: 0rem !important;
309  margin-bottom: 0rem !important;
310  margin-left: 0rem !important;
311}
312
313.padding-right {
314  padding-top: 0rem !important;
315  padding-bottom: 0rem !important;
316  padding-left: 0rem !important;
317}
318
319.margin-bottom {
320  margin-top: 0rem !important;
321  margin-right: 0rem !important;
322  margin-left: 0rem !important;
323}
324
325.padding-bottom {
326  padding-top: 0rem !important;
327  padding-right: 0rem !important;
328  padding-left: 0rem !important;
329}
330
331.margin-left {
332  margin-top: 0rem !important;
333  margin-right: 0rem !important;
334  margin-bottom: 0rem !important;
335}
336  
337.padding-left {
338  padding-top: 0rem !important;
339  padding-right: 0rem !important;
340  padding-bottom: 0rem !important;
341}
342  
343.margin-horizontal {
344  margin-top: 0rem !important;
345  margin-bottom: 0rem !important;
346}
347
348.padding-horizontal {
349  padding-top: 0rem !important;
350  padding-bottom: 0rem !important;
351}
352
353.margin-vertical {
354  margin-right: 0rem !important;
355  margin-left: 0rem !important;
356}
357  
358.padding-vertical {
359  padding-right: 0rem !important;
360  padding-left: 0rem !important;
361}
362
363h1, h2, h3 {
364	text-wrap: balance;
365}
366
367  @media (max-width: 767px) {
368  .img_wrapper,
369  .image-container {
370    order: 999;
371  }
372}
373
374  @media only screen and (max-width: 1120px) and (min-width: 992px)  {
375    .navbar_menu.is-page-height-tablet {
376      padding-left: .5rem;
377    }
378    .navbar .padding-global {
379      padding-left: 1rem;
380      padding-right: 1rem;
381    }
382    .navbar_links {
383      grid-column-gap: .35rem;
384    }
385  }
386
387
388</style></div><div class="hide w-embed"><style>
389/* ================================================
390   SECTION & COMPONENT COLOR SCHEMES
391   (Sets variables only - no auto text colors)
392   ================================================ */
393
394/* Reset scheme variables on component_wrapper to break inheritance from section */
395.component_wrapper:not([data-wf--0---component--variant="transparent"]) {
396  --scheme-heading: initial;
397  --scheme-paragraph: initial;
398  --scheme-link: initial;
399  --scheme-link-hover: initial;
400}
401
402/* --- Neutral Schemes --- */
403.section_wrapper[data-wf--0---section--variant="light"],
404.component_wrapper[data-wf--0---component--variant="light"] {
405  background-color: var(--_color-schemes---light--background);
406  --scheme-heading: var(--_color-schemes---light--heading);
407  --scheme-paragraph: var(--_color-schemes---light--paragraph);
408  --scheme-link: var(--_color-schemes---light--link);
409  --scheme-link-hover: var(--_color-schemes---light--link-hover);
410}
411
412.section_wrapper[data-wf--0---section--variant="subtle"],
413.component_wrapper[data-wf--0---component--variant="subtle"] {
414  background-color: var(--_color-schemes---subtle--background);
415  --scheme-heading: var(--_color-schemes---subtle--heading);
416  --scheme-paragraph: var(--_color-schemes---subtle--paragraph);
417  --scheme-link: var(--_color-schemes---subtle--link);
418  --scheme-link-hover: var(--_color-schemes---subtle--link-hover);
419}
420
421.section_wrapper[data-wf--0---section--variant="dark"],
422.component_wrapper[data-wf--0---component--variant="dark"] {
423  background-color: var(--_color-schemes---dark--background);
424  --scheme-heading: var(--_color-schemes---dark--heading);
425  --scheme-paragraph: var(--_color-schemes---dark--paragraph);
426  --scheme-link: var(--_color-schemes---dark--link);
427  --scheme-link-hover: var(--_color-schemes---dark--link-hover);
428}
429
430/* --- Brand Schemes --- */
431.section_wrapper[data-wf--0---section--variant="brand-light"],
432.component_wrapper[data-wf--0---component--variant="brand-light"] {
433  background-color: var(--_color-schemes---brand-light--background);
434  --scheme-heading: var(--_color-schemes---brand-light--heading);
435  --scheme-paragraph: var(--_color-schemes---brand-light--paragraph);
436  --scheme-link: var(--_color-schemes---brand-light--link);
437  --scheme-link-hover: var(--_color-schemes---brand-light--link-hover);
438}
439
440.section_wrapper[data-wf--0---section--variant="brand"],
441.component_wrapper[data-wf--0---component--variant="brand"] {
442  background-color: var(--_color-schemes---brand--background);
443  --scheme-heading: var(--_color-schemes---brand--heading);
444  --scheme-paragraph: var(--_color-schemes---brand--paragraph);
445  --scheme-link: var(--_color-schemes---brand--link);
446  --scheme-link-hover: var(--_color-schemes---brand--link-hover);
447}
448
449.section_wrapper[data-wf--0---section--variant="brand-dark"],
450.component_wrapper[data-wf--0---component--variant="brand-dark"] {
451  background-color: var(--_color-schemes---brand-dark--background);
452  --scheme-heading: var(--_color-schemes---brand-dark--heading);
453  --scheme-paragraph: var(--_color-schemes---brand-dark--paragraph);
454  --scheme-link: var(--_color-schemes---brand-dark--link);
455  --scheme-link-hover: var(--_color-schemes---brand-dark--link-hover);
456}
457
458/* --- Secondary Schemes --- */
459.section_wrapper[data-wf--0---section--variant="secondary-light"],
460.component_wrapper[data-wf--0---component--variant="secondary-light"] {
461  background-color: var(--_color-schemes---secondary-light--background);
462  --scheme-heading: var(--_color-schemes---secondary-light--heading);
463  --scheme-paragraph: var(--_color-schemes---secondary-light--paragraph);
464  --scheme-link: var(--_color-schemes---secondary-light--link);
465  --scheme-link-hover: var(--_color-schemes---secondary-light--link-hover);
466}
467
468.section_wrapper[data-wf--0---section--variant="secondary"],
469.component_wrapper[data-wf--0---component--variant="secondary"] {
470  background-color: var(--_color-schemes---secondary--background);
471  --scheme-heading: var(--_color-schemes---secondary--heading);
472  --scheme-paragraph: var(--_color-schemes---secondary--paragraph);
473  --scheme-link: var(--_color-schemes---secondary--link);
474  --scheme-link-hover: var(--_color-schemes---secondary--link-hover);
475}
476
477.section_wrapper[data-wf--0---section--variant="secondary-dark"],
478.component_wrapper[data-wf--0---component--variant="secondary-dark"] {
479  background-color: var(--_color-schemes---secondary-dark--background);
480  --scheme-heading: var(--_color-schemes---secondary-dark--heading);
481  --scheme-paragraph: var(--_color-schemes---secondary-dark--paragraph);
482  --scheme-link: var(--_color-schemes---secondary-dark--link);
483  --scheme-link-hover: var(--_color-schemes---secondary-dark--link-hover);
484}
485
486/* --- Accent Schemes --- */
487.section_wrapper[data-wf--0---section--variant="accent-light"],
488.component_wrapper[data-wf--0---component--variant="accent-light"] {
489  background-color: var(--_color-schemes---accent-light--background);
490  --scheme-heading: var(--_color-schemes---accent-light--heading);
491  --scheme-paragraph: var(--_color-schemes---accent-light--paragraph);
492  --scheme-link: var(--_color-schemes---accent-light--link);
493  --scheme-link-hover: var(--_color-schemes---accent-light--link-hover);
494}
495
496.section_wrapper[data-wf--0---section--variant="accent"],
497.component_wrapper[data-wf--0---component--variant="accent"] {
498  background-color: var(--_color-schemes---accent--background);
499  --scheme-heading: var(--_color-schemes---accent--heading);
500  --scheme-paragraph: var(--_color-schemes---accent--paragraph);
501  --scheme-link: var(--_color-schemes---accent--link);
502  --scheme-link-hover: var(--_color-schemes---accent--link-hover);
503}
504
505.section_wrapper[data-wf--0---section--variant="accent-dark"],
506.component_wrapper[data-wf--0---component--variant="accent-dark"] {
507  background-color: var(--_color-schemes---accent-dark--background);
508  --scheme-heading: var(--_color-schemes---accent-dark--heading);
509  --scheme-paragraph: var(--_color-schemes---accent-dark--paragraph);
510  --scheme-link: var(--_color-schemes---accent-dark--link);
511  --scheme-link-hover: var(--_color-schemes---accent-dark--link-hover);
512}
513
514/* --- Accent1-3 Schemes --- */
515.section_wrapper[data-wf--0---section--variant="accent1-light"],
516.component_wrapper[data-wf--0---component--variant="accent1-light"] {
517  background-color: var(--_color-schemes---accent1-light--background);
518  --scheme-heading: var(--_color-schemes---accent1-light--heading);
519  --scheme-paragraph: var(--_color-schemes---accent1-light--paragraph);
520  --scheme-link: var(--_color-schemes---accent1-light--link);
521  --scheme-link-hover: var(--_color-schemes---accent1-light--link-hover);
522}
523
524.section_wrapper[data-wf--0---section--variant="accent1"],
525.component_wrapper[data-wf--0---component--variant="accent1"] {
526  background-color: var(--_color-schemes---accent1--background);
527  --scheme-heading: var(--_color-schemes---accent1--heading);
528  --scheme-paragraph: var(--_color-schemes---accent1--paragraph);
529  --scheme-link: var(--_color-schemes---accent1--link);
530  --scheme-link-hover: var(--_color-schemes---accent1--link-hover);
531}
532
533.section_wrapper[data-wf--0---section--variant="accent1-dark"],
534.component_wrapper[data-wf--0---component--variant="accent1-dark"] {
535  background-color: var(--_color-schemes---accent1-dark--background);
536  --scheme-heading: var(--_color-schemes---accent1-dark--heading);
537  --scheme-paragraph: var(--_color-schemes---accent1-dark--paragraph);
538  --scheme-link: var(--_color-schemes---accent1-dark--link);
539  --scheme-link-hover: var(--_color-schemes---accent1-dark--link-hover);
540}
541
542.section_wrapper[data-wf--0---section--variant="accent2-light"],
543.component_wrapper[data-wf--0---component--variant="accent2-light"] {
544  background-color: var(--_color-schemes---accent2-light--background);
545  --scheme-heading: var(--_color-schemes---accent2-light--heading);
546  --scheme-paragraph: var(--_color-schemes---accent2-light--paragraph);
547  --scheme-link: var(--_color-schemes---accent2-light--link);
548  --scheme-link-hover: var(--_color-schemes---accent2-light--link-hover);
549}
550
551.section_wrapper[data-wf--0---section--variant="accent2"],
552.component_wrapper[data-wf--0---component--variant="accent2"] {
553  background-color: var(--_color-schemes---accent2--background);
554  --scheme-heading: var(--_color-schemes---accent2--heading);
555  --scheme-paragraph: var(--_color-schemes---accent2--paragraph);
556  --scheme-link: var(--_color-schemes---accent2--link);
557  --scheme-link-hover: var(--_color-schemes---accent2--link-hover);
558}
559
560.section_wrapper[data-wf--0---section--variant="accent2-dark"],
561.component_wrapper[data-wf--0---component--variant="accent2-dark"] {
562  background-color: var(--_color-schemes---accent2-dark--background);
563  --scheme-heading: var(--_color-schemes---accent2-dark--heading);
564  --scheme-paragraph: var(--_color-schemes---accent2-dark--paragraph);
565  --scheme-link: var(--_color-schemes---accent2-dark--link);
566  --scheme-link-hover: var(--_color-schemes---accent2-dark--link-hover);
567}
568
569.section_wrapper[data-wf--0---section--variant="accent3-light"],
570.component_wrapper[data-wf--0---component--variant="accent3-light"] {
571  background-color: var(--_color-schemes---accent3-light--background);
572  --scheme-heading: var(--_color-schemes---accent3-light--heading);
573  --scheme-paragraph: var(--_color-schemes---accent3-light--paragraph);
574  --scheme-link: var(--_color-schemes---accent3-light--link);
575  --scheme-link-hover: var(--_color-schemes---accent3-light--link-hover);
576}
577
578.section_wrapper[data-wf--0---section--variant="accent3"],
579.component_wrapper[data-wf--0---component--variant="accent3"] {
580  background-color: var(--_color-schemes---accent3--background);
581  --scheme-heading: var(--_color-schemes---accent3--heading);
582  --scheme-paragraph: var(--_color-schemes---accent3--paragraph);
583  --scheme-link: var(--_color-schemes---accent3--link);
584  --scheme-link-hover: var(--_color-schemes---accent3--link-hover);
585}
586
587.section_wrapper[data-wf--0---section--variant="accent3-dark"],
588.component_wrapper[data-wf--0---component--variant="accent3-dark"] {
589  background-color: var(--_color-schemes---accent3-dark--background);
590  --scheme-heading: var(--_color-schemes---accent3-dark--heading);
591  --scheme-paragraph: var(--_color-schemes---accent3-dark--paragraph);
592  --scheme-link: var(--_color-schemes---accent3-dark--link);
593  --scheme-link-hover: var(--_color-schemes---accent3-dark--link-hover);
594}
595
596/* --- Transparent --- */
597.section_wrapper[data-wf--0---section--variant="transparent"],
598.component_wrapper[data-wf--0---component--variant="transparent"] {
599  background-color: transparent;
600}
601
602/* ================================================
603   COLOR SCHEME UTILITY COMPONENT (for cards)
604   ================================================ */
605
606[data-wf--color-scheme--variant] {
607  display: none;
608}
609
610:has(> [data-wf--color-scheme--variant="light"]) {
611  background-color: var(--_color-schemes---light--background);
612  --scheme-heading: var(--_color-schemes---light--heading);
613  --scheme-paragraph: var(--_color-schemes---light--paragraph);
614}
615
616:has(> [data-wf--color-scheme--variant="subtle"]) {
617  background-color: var(--_color-schemes---subtle--background);
618  --scheme-heading: var(--_color-schemes---subtle--heading);
619  --scheme-paragraph: var(--_color-schemes---subtle--paragraph);
620}
621
622:has(> [data-wf--color-scheme--variant="dark"]) {
623  background-color: var(--_color-schemes---dark--background);
624  --scheme-heading: var(--_color-schemes---dark--heading);
625  --scheme-paragraph: var(--_color-schemes---dark--paragraph);
626}
627
628:has(> [data-wf--color-scheme--variant="brand-light"]) {
629  background-color: var(--_color-schemes---brand-light--background);
630  --scheme-heading: var(--_color-schemes---brand-light--heading);
631  --scheme-paragraph: var(--_color-schemes---brand-light--paragraph);
632}
633
634:has(> [data-wf--color-scheme--variant="brand"]) {
635  background-color: var(--_color-schemes---brand--background);
636  --scheme-heading: var(--_color-schemes---brand--heading);
637  --scheme-paragraph: var(--_color-schemes---brand--paragraph);
638}
639
640:has(> [data-wf--color-scheme--variant="brand-dark"]) {
641  background-color: var(--_color-schemes---brand-dark--background);
642  --scheme-heading: var(--_color-schemes---brand-dark--heading);
643  --scheme-paragraph: var(--_color-schemes---brand-dark--paragraph);
644}
645
646:has(> [data-wf--color-scheme--variant="secondary-light"]) {
647  background-color: var(--_color-schemes---secondary-light--background);
648  --scheme-heading: var(--_color-schemes---secondary-light--heading);
649  --scheme-paragraph: var(--_color-schemes---secondary-light--paragraph);
650}
651
652:has(> [data-wf--color-scheme--variant="secondary"]) {
653  background-color: var(--_color-schemes---secondary--background);
654  --scheme-heading: var(--_color-schemes---secondary--heading);
655  --scheme-paragraph: var(--_color-schemes---secondary--paragraph);
656}
657
658:has(> [data-wf--color-scheme--variant="secondary-dark"]) {
659  background-color: var(--_color-schemes---secondary-dark--background);
660  --scheme-heading: var(--_color-schemes---secondary-dark--heading);
661  --scheme-paragraph: var(--_color-schemes---secondary-dark--paragraph);
662}
663
664:has(> [data-wf--color-scheme--variant="accent-light"]) {
665  background-color: var(--_color-schemes---accent-light--background);
666  --scheme-heading: var(--_color-schemes---accent-light--heading);
667  --scheme-paragraph: var(--_color-schemes---accent-light--paragraph);
668}
669
670:has(> [data-wf--color-scheme--variant="accent"]) {
671  background-color: var(--_color-schemes---accent--background);
672  --scheme-heading: var(--_color-schemes---accent--heading);
673  --scheme-paragraph: var(--_color-schemes---accent--paragraph);
674}
675
676:has(> [data-wf--color-scheme--variant="accent-dark"]) {
677  background-color: var(--_color-schemes---accent-dark--background);
678  --scheme-heading: var(--_color-schemes---accent-dark--heading);
679  --scheme-paragraph: var(--_color-schemes---accent-dark--paragraph);
680}
681
682:has(> [data-wf--color-scheme--variant="transparent"]) {
683  background-color: transparent;
684}
685
686/* ================================================
687   TEXT COLOR VARIANTS
688   ================================================ */
689
690/* Scheme - uses parent's scheme variables (DEFAULT) */
691[data-wf--heading--variant="scheme"] {
692  color: var(--scheme-heading);
693}
694
695[data-wf--paragraph--variant="scheme"] {
696  color: var(--scheme-paragraph);
697}
698
699/* Explicit overrides */
700[data-wf--heading--variant="inverse"] {
701  color: var(--_semantic-tokens---text--text-inverse);
702}
703
704[data-wf--heading--variant="primary"] {
705  color: var(--_semantic-tokens---text--text-primary);
706}
707
708[data-wf--heading--variant="secondary"] {
709  color: var(--_semantic-tokens---text--text-secondary);
710}
711
712[data-wf--heading--variant="tertiary"] {
713  color: var(--_semantic-tokens---text--text-tertiary);
714}
715
716[data-wf--heading--variant="brand"] {
717  color: var(--_semantic-tokens---text--text-brand);
718}
719
720[data-wf--paragraph--variant="inverse"] {
721  color: var(--_semantic-tokens---text--text-inverse);
722}
723
724[data-wf--paragraph--variant="primary"] {
725  color: var(--_semantic-tokens---text--text-primary);
726}
727
728[data-wf--paragraph--variant="secondary"] {
729  color: var(--_semantic-tokens---text--text-secondary);
730}
731
732[data-wf--paragraph--variant="tertiary"] {
733  color: var(--_semantic-tokens---text--text-tertiary);
734}
735
736[data-wf--paragraph--variant="brand"] {
737  color: var(--_semantic-tokens---text--text-brand);
738}
739
740/* ================================================
741   RICH TEXT COLOR INHERITANCE
742   ================================================ */
743
744.text-rich-text h1,
745.text-rich-text h2,
746.text-rich-text h3,
747.text-rich-text h4,
748.text-rich-text h5,
749.text-rich-text h6 {
750  color: var(--scheme-heading);
751}
752
753.text-rich-text p,
754.text-rich-text li,
755.text-rich-text blockquote,
756.text-rich-text span,
757.text-rich-text label {
758  color: var(--scheme-paragraph);
759}
760
761.text-rich-text a {
762  color: var(--scheme-link);
763}
764
765.text-rich-text a:hover {
766  color: var(--scheme-link-hover);
767}
768</style></div><div class="hide w-embed"><style>
769/* Gradient Color Variants */
770.background-overlay[data-wf--background-overlay--background-overlay="primary-light"] {
771  --gradient-stop-1: var(--_gradients---primary-light--stop-1);
772  --gradient-stop-2: var(--_gradients---primary-light--stop-2);
773}
774.background-overlay[data-wf--background-overlay--background-overlay="primary"] {
775  --gradient-stop-1: var(--_gradients---primary--stop-1);
776  --gradient-stop-2: var(--_gradients---primary--stop-2);
777}
778.background-overlay[data-wf--background-overlay--background-overlay="primary-bold"] {
779  --gradient-stop-1: var(--_gradients---primary-bold--stop-1);
780  --gradient-stop-2: var(--_gradients---primary-bold--stop-2);
781}
782.background-overlay[data-wf--background-overlay--background-overlay="primary-dark"] {
783  --gradient-stop-1: var(--_gradients---primary-dark--stop-1);
784  --gradient-stop-2: var(--_gradients---primary-dark--stop-2);
785}
786.background-overlay[data-wf--background-overlay--background-overlay="primary-to-neutral"] {
787  --gradient-stop-1: var(--_gradients---primary-to-neutral--stop-1);
788  --gradient-stop-2: var(--_gradients---primary-to-neutral--stop-2);
789}
790.background-overlay[data-wf--background-overlay--background-overlay="primary-overlay-light"] {
791  --gradient-stop-1: var(--_gradients---primary-overlay-light--stop-1);
792  --gradient-stop-2: var(--_gradients---primary-overlay-light--stop-2);
793}
794.background-overlay[data-wf--background-overlay--background-overlay="primary-overlay"] {
795  --gradient-stop-1: var(--_gradients---primary-overlay--stop-1);
796  --gradient-stop-2: var(--_gradients---primary-overlay--stop-2);
797}
798.background-overlay[data-wf--background-overlay--background-overlay="primary-overlay-heavy"] {
799  --gradient-stop-1: var(--_gradients---primary-overlay-heavy--stop-1);
800  --gradient-stop-2: var(--_gradients---primary-overlay-heavy--stop-2);
801}
802.background-overlay[data-wf--background-overlay--background-overlay="dark-overlay-light"] {
803  --gradient-stop-1: var(--_gradients---dark-overlay-light--stop-1);
804  --gradient-stop-2: var(--_gradients---dark-overlay-light--stop-2);
805}
806.background-overlay[data-wf--background-overlay--background-overlay="dark-overlay"] {
807  --gradient-stop-1: var(--_gradients---dark-overlay--stop-1);
808  --gradient-stop-2: var(--_gradients---dark-overlay--stop-2);
809}
810.background-overlay[data-wf--background-overlay--background-overlay="dark-overlay-heavy"] {
811  --gradient-stop-1: var(--_gradients---dark-overlay-heavy--stop-1);
812  --gradient-stop-2: var(--_gradients---dark-overlay-heavy--stop-2);
813}
814
815/* Gradient Angle Variants - targets parent .background-overlay based on child's data attribute */
816.background-overlay:has([data-wf--gradient-angle--variant="top"]) {
817  background-image: linear-gradient(to top, var(--gradient-stop-1), var(--gradient-stop-2));
818}
819.background-overlay:has([data-wf--gradient-angle--variant="top-right"]) {
820  background-image: linear-gradient(to top right, var(--gradient-stop-1), var(--gradient-stop-2));
821}
822.background-overlay:has([data-wf--gradient-angle--variant="right"]) {
823  background-image: linear-gradient(to right, var(--gradient-stop-1), var(--gradient-stop-2));
824}
825.background-overlay:has([data-wf--gradient-angle--variant="bottom-right"]) {
826  background-image: linear-gradient(to bottom right, var(--gradient-stop-1), var(--gradient-stop-2));
827}
828.background-overlay:has([data-wf--gradient-angle--variant="bottom"]) {
829  background-image: linear-gradient(to bottom, var(--gradient-stop-1), var(--gradient-stop-2));
830}
831.background-overlay:has([data-wf--gradient-angle--variant="bottom-left"]) {
832  background-image: linear-gradient(to bottom left, var(--gradient-stop-1), var(--gradient-stop-2));
833}
834.background-overlay:has([data-wf--gradient-angle--variant="left"]) {
835  background-image: linear-gradient(to left, var(--gradient-stop-1), var(--gradient-stop-2));
836}
837.background-overlay:has([data-wf--gradient-angle--variant="top-left"]) {
838  background-image: linear-gradient(to top left, var(--gradient-stop-1), var(--gradient-stop-2));
839}
840</style></div><div class="hide w-embed"><style>
841/* ================================================
842   BUTTON COMPONENT
843   ================================================ */
844
845/* Hide variant controllers */
846[data-wf--button-style--variant],
847[data-wf--button-size--variant],
848[data-wf--button-width--variant] {
849  display: none;
850}
851
852/* Base button styles */
853.button {
854  position: relative;
855  overflow: hidden;
856  z-index: 1;
857  border-style: solid;
858  transition: color 0.2s ease, border-color 0.2s ease;
859}
860
861/* Hover background layer */
862.button::before {
863  content: '';
864  position: absolute;
865  inset: 0;
866  z-index: -1;
867  opacity: 0;
868  transition: opacity 0.2s ease;
869  border-radius: inherit;
870}
871
872.button:hover::before {
873  opacity: 1;
874}
875
876/* ================================================
877   BUTTON SIZE
878   ================================================ */
879
880.button:has([data-wf--button-size--variant="small"]) {
881  padding: var(--_buttons---button-small--padding-y) var(--_buttons---button-small--padding-x);
882  font-size: var(--_buttons---button-small--font-size);
883  border-radius: var(--_buttons---button-small--border-radius);
884  border-width: var(--_buttons---button-small--border-width);
885}
886
887.button:has([data-wf--button-size--variant="base"]) {
888  padding: var(--_buttons---button-base--padding-y) var(--_buttons---button-base--padding-x);
889  font-size: var(--_buttons---button-base--font-size);
890  border-radius: var(--_buttons---button-base--border-radius);
891  border-width: var(--_buttons---button-base--border-width);
892}
893
894.button:has([data-wf--button-size--variant="large"]) {
895  padding: var(--_buttons---button-large--padding-y) var(--_buttons---button-large--padding-x);
896  font-size: var(--_buttons---button-large--font-size);
897  border-radius: var(--_buttons---button-large--border-radius);
898  border-width: var(--_buttons---button-large--border-width);
899}
900
901/* ================================================
902   BUTTON STYLE
903   ================================================ */
904
905/* Primary */
906.button:has([data-wf--button-style--variant="primary"]) {
907  background: linear-gradient(
908    calc(var(--_buttons---gradient--direction) * 1deg),
909    var(--_buttons---primary--stop-1) 0%,
910    var(--_buttons---primary--stop-2) 100%
911  );
912  color: var(--_buttons---primary--text);
913  border-color: var(--_buttons---primary--border);
914}
915.button:has([data-wf--button-style--variant="primary"])::before {
916  background: linear-gradient(
917    calc(var(--_buttons---gradient--direction) * 1deg),
918    var(--_buttons---primary--stop-1-hover) 0%,
919    var(--_buttons---primary--stop-2-hover) 100%
920  );
921}
922.button:has([data-wf--button-style--variant="primary"]):hover {
923  color: var(--_buttons---primary--text-hover, var(--_buttons---primary--text));
924  border-color: var(--_buttons---primary--border-hover, var(--_buttons---primary--border));
925}
926
927/* Primary Alt */
928.button:has([data-wf--button-style--variant="primary-alt"]) {
929  background: linear-gradient(
930    calc(var(--_buttons---gradient--direction) * 1deg),
931    var(--_buttons---primary-alt--stop-1) 0%,
932    var(--_buttons---primary-alt--stop-2) 100%
933  );
934  color: var(--_buttons---primary-alt--text);
935  border-color: var(--_buttons---primary-alt--border);
936}
937.button:has([data-wf--button-style--variant="primary-alt"])::before {
938  background: linear-gradient(
939    calc(var(--_buttons---gradient--direction) * 1deg),
940    var(--_buttons---primary-alt--stop-1-hover) 0%,
941    var(--_buttons---primary-alt--stop-2-hover) 100%
942  );
943}
944.button:has([data-wf--button-style--variant="primary-alt"]):hover {
945  color: var(--_buttons---primary-alt--text-hover, var(--_buttons---primary-alt--text));
946  border-color: var(--_buttons---primary-alt--border-hover, var(--_buttons---primary-alt--border));
947}
948
949/* Secondary */
950.button:has([data-wf--button-style--variant="secondary"]) {
951  background: linear-gradient(
952    calc(var(--_buttons---gradient--direction) * 1deg),
953    var(--_buttons---secondary--stop-1) 0%,
954    var(--_buttons---secondary--stop-2) 100%
955  );
956  color: var(--_buttons---secondary--text);
957  border-color: var(--_buttons---secondary--border);
958}
959.button:has([data-wf--button-style--variant="secondary"])::before {
960  background: linear-gradient(
961    calc(var(--_buttons---gradient--direction) * 1deg),
962    var(--_buttons---secondary--stop-1-hover) 0%,
963    var(--_buttons---secondary--stop-2-hover) 100%
964  );
965}
966.button:has([data-wf--button-style--variant="secondary"]):hover {
967  color: var(--_buttons---secondary--text-hover, var(--_buttons---secondary--text));
968  border-color: var(--_buttons---secondary--border-hover, var(--_buttons---secondary--border));
969}
970
971/* Secondary Alt */
972.button:has([data-wf--button-style--variant="secondary-alt"]) {
973  background: linear-gradient(
974    calc(var(--_buttons---gradient--direction) * 1deg),
975    var(--_buttons---secondary-alt--stop-1) 0%,
976    var(--_buttons---secondary-alt--stop-2) 100%
977  );
978  color: var(--_buttons---secondary-alt--text);
979  border-color: var(--_buttons---secondary-alt--border);
980}
981.button:has([data-wf--button-style--variant="secondary-alt"])::before {
982  background: linear-gradient(
983    calc(var(--_buttons---gradient--direction) * 1deg),
984    var(--_buttons---secondary-alt--stop-1-hover) 0%,
985    var(--_buttons---secondary-alt--stop-2-hover) 100%
986  );
987}
988.button:has([data-wf--button-style--variant="secondary-alt"]):hover {
989  color: var(--_buttons---secondary-alt--text-hover, var(--_buttons---secondary-alt--text));
990  border-color: var(--_buttons---secondary-alt--border-hover, var(--_buttons---secondary-alt--border));
991}
992
993/* Tertiary */
994.button:has([data-wf--button-style--variant="tertiary"]) {
995  background: linear-gradient(
996    calc(var(--_buttons---gradient--direction) * 1deg),
997    var(--_buttons---tertiary--stop-1) 0%,
998    var(--_buttons---tertiary--stop-2) 100%
999  );
1000  color: var(--_buttons---tertiary--text);
1001  border-color: var(--_buttons---tertiary--border);
1002}
1003.button:has([data-wf--button-style--variant="tertiary"])::before {
1004  background: linear-gradient(
1005    calc(var(--_buttons---gradient--direction) * 1deg),
1006    var(--_buttons---tertiary--stop-1-hover) 0%,
1007    var(--_buttons---tertiary--stop-2-hover) 100%
1008  );
1009}
1010.button:has([data-wf--button-style--variant="tertiary"]):hover {
1011  color: var(--_buttons---tertiary--text-hover, var(--_buttons---tertiary--text));
1012  border-color: var(--_buttons---tertiary--border-hover, var(--_buttons---tertiary--border));
1013}
1014
1015/* Tertiary Alt */
1016.button:has([data-wf--button-style--variant="tertiary-alt"]) {
1017  background: linear-gradient(
1018    calc(var(--_buttons---gradient--direction) * 1deg),
1019    var(--_buttons---tertiary-alt--stop-1) 0%,
1020    var(--_buttons---tertiary-alt--stop-2) 100%
1021  );
1022  color: var(--_buttons---tertiary-alt--text);
1023  border-color: var(--_buttons---tertiary-alt--border);
1024}
1025.button:has([data-wf--button-style--variant="tertiary-alt"])::before {
1026  background: linear-gradient(
1027    calc(var(--_buttons---gradient--direction) * 1deg),
1028    var(--_buttons---tertiary-alt--stop-1-hover) 0%,
1029    var(--_buttons---tertiary-alt--stop-2-hover) 100%
1030  );
1031}
1032.button:has([data-wf--button-style--variant="tertiary-alt"]):hover {
1033  color: var(--_buttons---tertiary-alt--text-hover, var(--_buttons---tertiary-alt--text));
1034  border-color: var(--_buttons---tertiary-alt--border-hover, var(--_buttons---tertiary-alt--border));
1035}
1036
1037/* Outline */
1038.button:has([data-wf--button-style--variant="outline"]) {
1039  background: linear-gradient(
1040    calc(var(--_buttons---gradient--direction) * 1deg),
1041    var(--_buttons---outline--stop-1) 0%,
1042    var(--_buttons---outline--stop-2) 100%
1043  );
1044  color: var(--_buttons---outline--text);
1045  border-color: var(--_buttons---outline--border);
1046}
1047.button:has([data-wf--button-style--variant="outline"])::before {
1048  background: linear-gradient(
1049    calc(var(--_buttons---gradient--direction) * 1deg),
1050    var(--_buttons---outline--stop-1-hover) 0%,
1051    var(--_buttons---outline--stop-2-hover) 100%
1052  );
1053}
1054.button:has([data-wf--button-style--variant="outline"]):hover {
1055  color: var(--_buttons---outline--text-hover);
1056  border-color: var(--_buttons---outline--border-hover, var(--_buttons---outline--border));
1057}
1058
1059/* Outline Alt */
1060.button:has([data-wf--button-style--variant="outline-alt"]) {
1061  background: linear-gradient(
1062    calc(var(--_buttons---gradient--direction) * 1deg),
1063    var(--_buttons---outline-alt--stop-1) 0%,
1064    var(--_buttons---outline-alt--stop-2) 100%
1065  );
1066  color: var(--_buttons---outline-alt--text);
1067  border-color: var(--_buttons---outline-alt--border);
1068}
1069.button:has([data-wf--button-style--variant="outline-alt"])::before {
1070  background: linear-gradient(
1071    calc(var(--_buttons---gradient--direction) * 1deg),
1072    var(--_buttons---outline-alt--stop-1-hover) 0%,
1073    var(--_buttons---outline-alt--stop-2-hover) 100%
1074  );
1075}
1076.button:has([data-wf--button-style--variant="outline-alt"]):hover {
1077  color: var(--_buttons---outline-alt--text-hover);
1078  border-color: var(--_buttons---outline-alt--border-hover, var(--_buttons---outline-alt--border));
1079}
1080
1081/* ================================================
1082   GRADIENT TEXT BUTTONS
1083   ================================================ */
1084
1085/* Gradient Tertiary - gradient text, transparent bg */
1086.button:has([data-wf--button-style--variant="gradient-tertiary"]) {
1087  background: transparent;
1088  border-color: transparent;
1089}
1090.button:has([data-wf--button-style--variant="gradient-tertiary"]) .button_text {
1091  background: linear-gradient(
1092    calc(var(--_buttons---gradient--direction) * 1deg),
1093    var(--_buttons---gradient-tertiary--stop-1) 0%,
1094    var(--_buttons---gradient-tertiary--stop-2) 100%
1095  );
1096  -webkit-background-clip: text;
1097  background-clip: text;
1098  -webkit-text-fill-color: transparent;
1099}
1100.button:has([data-wf--button-style--variant="gradient-tertiary"])::before {
1101  background: var(--_buttons---gradient-tertiary--bg-hover);
1102}
1103.button:has([data-wf--button-style--variant="gradient-tertiary"]):hover .button_text {
1104  background: linear-gradient(
1105    calc(var(--_buttons---gradient--direction) * 1deg),
1106    var(--_buttons---gradient-tertiary--stop-1-hover) 0%,
1107    var(--_buttons---gradient-tertiary--stop-2-hover) 100%
1108  );
1109  -webkit-background-clip: text;
1110  background-clip: text;
1111  -webkit-text-fill-color: transparent;
1112}
1113
1114/* Gradient Outline - gradient text + border, transparent bg */
1115.button:has([data-wf--button-style--variant="gradient-outline"]) {
1116  background: transparent;
1117  border-color: var(--_buttons---gradient-outline--border);
1118}
1119.button:has([data-wf--button-style--variant="gradient-outline"]) .button_text {
1120  background: linear-gradient(
1121    calc(var(--_buttons---gradient--direction) * 1deg),
1122    var(--_buttons---gradient-outline--stop-1) 0%,
1123    var(--_buttons---gradient-outline--stop-2) 100%
1124  );
1125  -webkit-background-clip: text;
1126  background-clip: text;
1127  -webkit-text-fill-color: transparent;
1128}
1129.button:has([data-wf--button-style--variant="gradient-outline"])::before {
1130  background: linear-gradient(
1131    calc(var(--_buttons---gradient--direction) * 1deg),
1132    var(--_buttons---gradient-outline--stop-1-hover) 0%,
1133    var(--_buttons---gradient-outline--stop-2-hover) 100%
1134  );
1135}
1136.button:has([data-wf--button-style--variant="gradient-outline"]):hover {
1137  border-color: var(--_buttons---gradient-outline--border-hover, var(--_buttons---gradient-outline--border));
1138}
1139.button:has([data-wf--button-style--variant="gradient-outline"]):hover .button_text {
1140  background: none;
1141  -webkit-background-clip: unset;
1142  background-clip: unset;
1143  -webkit-text-fill-color: var(--_buttons---gradient-outline--text-hover);
1144  color: var(--_buttons---gradient-outline--text-hover);
1145}
1146
1147/* ================================================
1148   BUTTON WIDTH
1149   ================================================ */
1150
1151.button:has([data-wf--button-width--variant="auto"]) {
1152  width: auto;
1153}
1154
1155.button:has([data-wf--button-width--variant="full"]) {
1156  width: 100%;
1157}
1158</style></div><div class="hide w-embed"><style>
1159/* Image Align */
1160.image-wrapper:has([data-wf--image-align--variant="right"]) {
1161  display: flex !important;
1162  justify-content: flex-end !important;
1163}
1164.image-wrapper:has([data-wf--image-align--variant="left"]) {
1165  display: flex !important;
1166  justify-content: flex-start !important;
1167}
1168.image-wrapper:has([data-wf--image-align--variant="center"]) {
1169  display: flex !important;
1170  justify-content: center !important;
1171}
1172</style>
1173
1174<style>
1175/* Image Ratio - apply to img, not wrapper */
1176.image-wrapper:has([data-wf--image-ratio--variant="square"]) img { 
1177  aspect-ratio: 1 / 1 !important;
1178  object-fit: cover !important;
1179}
1180.image-wrapper:has([data-wf--image-ratio--variant="4-3"]) img { 
1181  aspect-ratio: 4 / 3 !important;
1182  object-fit: cover !important;
1183}
1184.image-wrapper:has([data-wf--image-ratio--variant="3-2"]) img { 
1185  aspect-ratio: 3 / 2 !important;
1186  object-fit: cover !important;
1187}
1188.image-wrapper:has([data-wf--image-ratio--variant="16-9"]) img { 
1189  aspect-ratio: 16 / 9 !important;
1190  object-fit: cover !important;
1191}
1192.image-wrapper:has([data-wf--image-ratio--variant="21-9"]) img { 
1193  aspect-ratio: 21 / 9 !important;
1194  object-fit: cover !important;
1195}
1196.image-wrapper:has([data-wf--image-ratio--variant="3-4"]) img { 
1197  aspect-ratio: 3 / 4 !important;
1198  object-fit: cover !important;
1199}
1200.image-wrapper:has([data-wf--image-ratio--variant="2-3"]) img { 
1201  aspect-ratio: 2 / 3 !important;
1202  object-fit: cover !important;
1203}
1204.image-wrapper:has([data-wf--image-ratio--variant="9-16"]) img { 
1205  aspect-ratio: 9 / 16 !important;
1206  object-fit: cover !important;
1207}
1208.image-wrapper:has([data-wf--image-ratio--variant="auto"]) img { 
1209  aspect-ratio: auto !important;
1210}
1211
1212  /* Image Ratio - Mobile Override (767px and below) */
1213@media (max-width: 767px) {
1214  .image-wrapper:has([data-wf--image-ratio-mobile--variant="square"]) img { aspect-ratio: 1 / 1 !important; }
1215  .image-wrapper:has([data-wf--image-ratio-mobile--variant="4-3"]) img { aspect-ratio: 4 / 3 !important; }
1216  .image-wrapper:has([data-wf--image-ratio-mobile--variant="3-2"]) img { aspect-ratio: 3 / 2 !important; }
1217  .image-wrapper:has([data-wf--image-ratio-mobile--variant="16-9"]) img { aspect-ratio: 16 / 9 !important; }
1218  .image-wrapper:has([data-wf--image-ratio-mobile--variant="21-9"]) img { aspect-ratio: 21 / 9 !important; }
1219  .image-wrapper:has([data-wf--image-ratio-mobile--variant="3-4"]) img { aspect-ratio: 3 / 4 !important; }
1220  .image-wrapper:has([data-wf--image-ratio-mobile--variant="2-3"]) img { aspect-ratio: 2 / 3 !important; }
1221  .image-wrapper:has([data-wf--image-ratio-mobile--variant="9-16"]) img { aspect-ratio: 9 / 16 !important; }
1222  .image-wrapper:has([data-wf--image-ratio-mobile--variant="auto"]) img { aspect-ratio: auto !important; }
1223}
1224</style>
1225
1226<style>
1227/* Image Size */
1228.image-wrapper:has([data-wf--image-size--variant="auto"]) img { 
1229  width: auto !important; 
1230}
1231.image-wrapper:has([data-wf--image-size--variant="25"]) img { 
1232  width: 25% !important; 
1233}
1234.image-wrapper:has([data-wf--image-size--variant="50"]) img { 
1235  width: 50% !important; 
1236}
1237.image-wrapper:has([data-wf--image-size--variant="75"]) img { 
1238  width: 75% !important; 
1239}
1240.image-wrapper:has([data-wf--image-size--variant="full"]) img { 
1241  width: 100% !important; 
1242}
1243.image-wrapper:has([data-wf--image-size--variant="125"]) img { 
1244  width: 125% !important; 
1245  max-width: none !important;
1246}
1247.image-wrapper:has([data-wf--image-size--variant="150"]) img { 
1248  width: 150% !important; 
1249  max-width: none !important;
1250}
1251.image-wrapper:has([data-wf--image-size--variant="200"]) img { 
1252  width: 200% !important; 
1253  max-width: none !important;
1254}
1255}
1256</style>
1257
1258<style>
1259/* Image Fit */
1260.image-wrapper:has([data-wf--image-fit--variant="fit"]) img { object-fit: contain !important; }
1261.image-wrapper:has([data-wf--image-fit--variant="cover"]) img { object-fit: cover !important; }
1262.image-wrapper:has([data-wf--image-fit--variant="fill"]) img { object-fit: f
1262ill !important; }
1263</style></div><div class="hide w-embed"><style>
1264/* ================================================
1265   BACKGROUND / ELEMENT - BASE
1266   ================================================ */
1267
1268[data-wf--background-element--position] {
1269  position: absolute;
1270  pointer-events: none;
1271}
1272
1273/* ================================================
1274   POSITION + TRANSFORM ORIGIN
1275   Each position pins the element to an edge/corner
1276   and sets transform-origin to match, so all
1277   transforms (flip) anchor correctly.
1278   ================================================ */
1279
1280[data-wf--background-element--position="top-left"] {
1281  top: 0;
1282  left: 0;
1283  transform-origin: top left;
1284}
1285
1286[data-wf--background-element--position="top-center"] {
1287  top: 0;
1288  left: 50%;
1289  transform: translateX(-50%);
1290  transform-origin: top center;
1291}
1292
1293[data-wf--background-element--position="top-right"] {
1294  top: 0;
1295  right: 0;
1296  transform-origin: top right;
1297}
1298
1299[data-wf--background-element--position="center-left"] {
1300  top: 50%;
1301  left: 0;
1302  transform: translateY(-50%);
1303  transform-origin: center left;
1304}
1305
1306[data-wf--background-element--position="center"] {
1307  top: 50%;
1308  left: 50%;
1309  transform: translate(-50%, -50%);
1310  transform-origin: center center;
1311}
1312
1313[data-wf--background-element--position="center-right"] {
1314  top: 50%;
1315  right: 0;
1316  transform: translateY(-50%);
1317  transform-origin: center right;
1318}
1319
1320[data-wf--background-element--position="bottom-left"] {
1321  bottom: 0;
1322  left: 0;
1323  transform-origin: bottom left;
1324}
1325
1326[data-wf--background-element--position="bottom-center"] {
1327  bottom: 0;
1328  left: 50%;
1329  transform: translateX(-50%);
1330  transform-origin: bottom center;
1331}
1332
1333[data-wf--background-element--position="bottom-right"] {
1334  bottom: 0;
1335  right: 0;
1336  transform-origin: bottom right;
1337}
1338
1339/* ================================================
1340   IMAGE SIZE
1341   Controls the width of the background element
1342   wrapper via the Image Size sub-component.
1343   Percentage-based, so it scales naturally with
1344   the viewport.
1345   ================================================ */
1346
1347[data-wf--background-element--position]:has([data-wf--image-size--variant="25"]) {
1348  width: 25%;
1349}
1350
1351[data-wf--background-element--position]:has([data-wf--image-size--variant="50"]) {
1352  width: 50%;
1353}
1354
1355[data-wf--background-element--position]:has([data-wf--image-size--variant="75"]) {
1356  width: 75%;
1357}
1358
1359[data-wf--background-element--position]:has([data-wf--image-size--variant="full"]) {
1360  width: 100%;
1361}
1362
1363[data-wf--background-element--position]:has([data-wf--image-size--variant="125"]) {
1364  width: 125%;
1365}
1366
1367[data-wf--background-element--position]:has([data-wf--image-size--variant="150"]) {
1368  width: 150%;
1369}
1370
1371[data-wf--background-element--position]:has([data-wf--image-size--variant="200"]) {
1372  width: 200%;
1373}
1374
1375[data-wf--background-element--position] img {
1376  width: 100%;
1377  height: auto;
1378}
1379
1380/* ================================================
1381   UTILITY / Z-INDEX
1382   ================================================ */
1383
1384[data-wf--utility-z-index--variant] {
1385  display: none;
1386}
1387
1388[data-wf--background-element--position]:has([data-wf--utility-z-index--variant="-1"]) {
1389  z-index: -1 !important;
1390}
1391
1392[data-wf--background-element--position]:has([data-wf--utility-z-index--variant="0"]) {
1393  z-index: 0 !important;
1394}
1395
1396[data-wf--background-element--position]:has([data-wf--utility-z-index--variant="1"]) {
1397  z-index: 1 !important;
1398}
1399
1400[data-wf--background-element--position]:has([data-wf--utility-z-index--variant="2"]) {
1401  z-index: 2 !important;
1402}
1403
1404/* ================================================
1405   UTILITY / FLIP
1406   Mirrors the element on one or both axes.
1407   Because transform-origin is set per position,
1408   flips always anchor to the correct corner/edge.
1409   ================================================ */
1410
1411[data-wf--utility-flip--variant] {
1412  display: none;
1413}
1414
1415/* --- Corners (no translate needed) --- */
1416
1417[data-wf--background-element--position="top-left"]:has([data-wf--utility-flip--variant="horizontal"]),
1418[data-wf--background-element--position="top-right"]:has([data-wf--utility-flip--variant="horizontal"]),
1419[data-wf--background-element--position="bottom-left"]:has([data-wf--utility-flip--variant="horizontal"]),
1420[data-wf--background-element--position="bottom-right"]:has([data-wf--utility-flip--variant="horizontal"]) {
1421  transform: scaleX(-1);
1422}
1423
1424[data-wf--background-element--position="top-left"]:has([data-wf--utility-flip--variant="vertical"]),
1425[data-wf--background-element--position="top-right"]:has([data-wf--utility-flip--variant="vertical"]),
1426[data-wf--background-element--position="bottom-left"]:has([data-wf--utility-flip--variant="vertical"]),
1427[data-wf--background-element--position="bottom-right"]:has([data-wf--utility-flip--variant="vertical"]) {
1428  transform: scaleY(-1);
1429}
1430
1431[data-wf--background-element--position="top-left"]:has([data-wf--utility-flip--variant="both"]),
1432[data-wf--background-element--position="top-right"]:has([data-wf--utility-flip--variant="both"]),
1433[data-wf--background-element--position="bottom-left"]:has([data-wf--utility-flip--variant="both"]),
1434[data-wf--background-element--position="bottom-right"]:has([data-wf--utility-flip--variant="both"]) {
1435  transform: scale(-1, -1);
1436}
1437
1438/* --- Top/Bottom Center (preserve translateX) --- */
1439
1440[data-wf--background-element--position="top-center"]:has([data-wf--utility-flip--variant="horizontal"]),
1441[data-wf--background-element--position="bottom-center"]:has([data-wf--utility-flip--variant="horizontal"]) {
1442  transform: translateX(-50%) scaleX(-1);
1443}
1444
1445[data-wf--background-element--position="top-center"]:has([data-wf--utility-flip--variant="vertical"]),
1446[data-wf--background-element--position="bottom-center"]:has([data-wf--utility-flip--variant="vertical"]) {
1447  transform: translateX(-50%) scaleY(-1);
1448}
1449
1450[data-wf--background-element--position="top-center"]:has([data-wf--utility-flip--variant="both"]),
1451[data-wf--background-element--position="bottom-center"]:has([data-wf--utility-flip--variant="both"]) {
1452  transform: translateX(-50%) scale(-1, -1);
1453}
1454
1455/* --- Center Left/Right (preserve translateY) --- */
1456
1457[data-wf--background-element--position="center-left"]:has([data-wf--utility-flip--variant="horizontal"]),
1458[data-wf--background-element--position="center-right"]:has([data-wf--utility-flip--variant="horizontal"]) {
1459  transform: translateY(-50%) scaleX(-1);
1460}
1461
1462[data-wf--background-element--position="center-left"]:has([data-wf--utility-flip--variant="vertical"]),
1463[data-wf--background-element--position="center-right"]:has([data-wf--utility-flip--variant="vertical"]) {
1464  transform: translateY(-50%) scaleY(-1);
1465}
1466
1467[data-wf--background-element--position="center-left"]:has([data-wf--utility-flip--variant="both"]),
1468[data-wf--background-element--position="center-right"]:has([data-wf--utility-flip--variant="both"]) {
1469  transform: translateY(-50%) scale(-1, -1);
1470}
1471
1472/* --- Center (preserve both translates) --- */
1473
1474[data-wf--background-element--position="center"]:has([data-wf--utility-flip--variant="horizontal"]) {
1475  transform: translate(-50%, -50%) scaleX(-1);
1476}
1477
1478[data-wf--background-element--position="center"]:has([data-wf--utility-flip--variant="vertical"]) {
1479  transform: translate(-50%, -50%) scaleY(-1);
1480}
1481
1482[data-wf--background-element--position="center"]:has([data-wf--utility-flip--variant="both"]) {
1483  transform: translate(-50%, -50%) scale(-1, -1);
1484}
1485
1486/* ================================================
1487   OFFSET X
1488   Shifts the element along the X axis.
1489   Negative = outward from anchor / left.
1490   Positive = inward from anchor / right.
1491
1492   For left-anchored positions: adjusts `left`
1493   For right-anchored positions: adjusts `right` (inverted)
1494   For center-X positions: adjusts `left` from 50%
1495
1496   Webflow variant labels / slugs:
1497   Neg 100% → neg-100  |  10% → 10
1498   Neg 90%  → neg-90   |  20% → 20
1499   ...                  |  ...
1500   Neg 10%  → neg-10   |  100% → 100
1501   Base     → base
1502   ================================================ */
1503
1504[data-wf--background-element-offset-x--variant] {
1505  display: none;
1506}
1507
1508/* --- Set the offset variable --- */
1509
1510[data-wf--background-element--position]:has([data-wf--background-element-offset-x--variant="neg-100"]) { --offset-x: -100%; }
1511[data-wf--background-element--position]:has([data-wf--background-element-offset-x--variant="neg-90"]) { --offset-x: -90%; }
1512[data-wf--background-element--position]:has([data-wf--background-element-offset-x--variant="neg-80"]) { --offset-x: -80%; }
1513[data-wf--background-element--position]:has([data-wf--background-element-offset-x--variant="neg-75"]) { --offset-x: -75%; }
1514[data-wf--background-element--position]:has([data-wf--background-element-offset-x--variant="neg-70"]) { --offset-x: -70%; }
1515[data-wf--background-element--position]:has([data-wf--background-element-offset-x--variant="neg-60"]) { --offset-x: -60%; }
1516[data-wf--background-element--position]:has([data-wf--background-element-offset-x--variant="neg-50"]) { --offset-x: -50%; }
1517[data-wf--background-element--position]:has([data-wf--background-element-offset-x--variant="neg-40"]) { --offset-x: -40%; }
1518[data-wf--background-element--position]:has([data-wf--background-element-offset-x--variant="neg-30"]) { --offset-x: -30%; }
1519[data-wf--background-element--position]:has([data-wf--background-element-offset-x--variant="neg-25"]) { --offset-x: -25%; }
1520[data-wf--background-element--position]:has([data-wf--background-element-offset-x--variant="neg-20"]) { --offset-x: -20%; }
1521[data-wf--background-element--position]:has([data-wf--background-element-offset-x--variant="neg-10"]) { --offset-x: -10%; }
1522[data-wf--background-element--position]:has([data-wf--background-element-offset-x--variant="10"]) { --offset-x: 10%; }
1523[data-wf--background-element--position]:has([data-wf--background-element-offset-x--variant="20"]) { --offset-x: 20%; }
1524[data-wf--background-element--position]:has([data-wf--background-element-offset-x--variant="25"]) { --offset-x: 25%; }
1525[data-wf--background-element--position]:has([data-wf--background-element-offset-x--variant="30"]) { --offset-x: 30%; }
1526[data-wf--background-element--position]:has([data-wf--background-element-offset-x--variant="40"]) { --offset-x: 40%; }
1527[data-wf--background-element--position]:has([data-wf--background-element-offset-x--variant="50"]) { --offset-x: 50%; }
1528[data-wf--background-element--position]:has([data-wf--background-element-offset-x--variant="60"]) { --offset-x: 60%; }
1529[data-wf--background-element--position]:has([data-wf--background-element-offset-x--variant="70"]) { --offset-x: 70%; }
1530[data-wf--background-element--position]:has([data-wf--background-element-offset-x--variant="75"]) { --offset-x: 75%; }
1531[data-wf--background-element--position]:has([data-wf--background-element-offset-x--variant="80"]) { --offset-x: 80%; }
1532[data-wf--background-element--position]:has([data-wf--background-element-offset-x--variant="90"]) { --offset-x: 90%; }
1533[data-wf--background-element--position]:has([data-wf--background-element-offset-x--variant="100"]) { --offset-x: 100%; }
1534
1535/* --- Apply to left-anchored positions --- */
1536
1537[data-wf--background-element--position="top-left"]:has([data-wf--background-element-offset-x--variant]:not([data-wf--background-element-offset-x--variant="base"])),
1538[data-wf--background-element--position="center-left"]:has([data-wf--background-element-offset-x--variant]:not([data-wf--background-element-offset-x--variant="base"])),
1539[data-wf--background-element--position="bottom-left"]:has([data-wf--background-element-offset-x--variant]:not([data-wf--background-element-offset-x--variant="base"])) {
1540  left: var(--offset-x);
1541}
1542
1543/* --- Apply to right-anchored positions --- */
1544
1545[data-wf--background-element--position="top-right"]:has([data-wf--background-element-offset-x--variant]:not([data-wf--background-element-offset-x--variant="base"])),
1546[data-wf--background-element--position="center-right"]:has([data-wf--background-element-offset-x--variant]:not([data-wf--background-element-offset-x--variant="base"])),
1547[data-wf--background-element--position="bottom-right"]:has([data-wf--background-element-offset-x--variant]:not([data-wf--background-element-offset-x--variant="base"])) {
1548  right: calc(0% - var(--offset-x));
1549}
1550
1551/* --- Apply to center-X positions --- */
1552
1553[data-wf--background-element--position="top-center"]:has([data-wf--background-element-offset-x--variant]:not([data-wf--background-element-offset-x--variant="base"])),
1554[data-wf--background-element--position="center"]:has([data-wf--background-element-offset-x--variant]:not([data-wf--background-element-offset-x--variant="base"])),
1555[data-wf--background-element--position="bottom-center"]:has([data-wf--background-element-offset-x--variant]:not([data-wf--background-element-offset-x--variant="base"])) {
1556  left: calc(50% + var(--offset-x));
1557}
1558
1559/* ================================================
1560   OFFSET Y
1561   Shifts the element along the Y axis.
1562   Negative = outward from anchor / up.
1563   Positive = inward from anchor / down.
1564
1565   For top-anchored positions: adjusts `top`
1566   For bottom-anchored positions: adjusts `bottom` (inverted)
1567   For center-Y positions: adjusts `top` from 50%
1568
1569   Webflow variant labels / slugs:
1570   Neg 100% → neg-100  |  10% → 10
1571   Neg 90%  → neg-90   |  20% → 20
1572   ...                  |  ...
1573   Neg 10%  → neg-10   |  100% → 100
1574   Base     → base
1575   ================================================ */
1576
1577[data-wf--background-element-offset-y--variant] {
1578  display: none;
1579}
1580
1581/* --- Set the offset variable --- */
1582
1583[data-wf--background-element--position]:has([data-wf--background-element-offset-y--variant="neg-100"]) { --offset-y: -100%; }
1584[data-wf--background-element--position]:has([data-wf--background-element-offset-y--variant="neg-90"]) { --offset-y: -90%; }
1585[data-wf--background-element--position]:has([data-wf--background-element-offset-y--variant="neg-80"]) { --offset-y: -80%; }
1586[data-wf--background-element--position]:has([data-wf--background-element-offset-y--variant="neg-75"]) { --offset-y: -75%; }
1587[data-wf--background-element--position]:has([data-wf--background-element-offset-y--variant="neg-70"]) { --offset-y: -70%; }
1588[data-wf--background-element--position]:has([data-wf--background-element-offset-y--variant="neg-60"]) { --offset-y: -60%; }
1589[data-wf--background-element--position]:has([data-wf--background-element-offset-y--variant="neg-50"]) { --offset-y: -50%; }
1590[data-wf--background-element--position]:has([data-wf--background-element-offset-y--variant="neg-40"]) { --offset-y: -40%; }
1591[data-wf--background-element--position]:has([data-wf--background-element-offset-y--variant="neg-30"]) { --offset-y: -30%; }
1592[data-wf--background-element--position]:has([data-wf--background-element-offset-y--variant="neg-25"]) { --offset-y: -25%; }
1593[data-wf--background-element--position]:has([data-wf--background-element-offset-y--variant="neg-20"]) { --offset-y: -20%; }
1594[data-wf--background-element--position]:has([data-wf--background-element-offset-y--variant="neg-10"]) { --offset-y: -10%; }
1595[data-wf--background-element--position]:has([data-wf--background-element-offset-y--variant="10"]) { --offset-y: 10%; }
1596[data-wf--background-element--position]:has([data-wf--background-element-offset-y--variant="20"]) { --offset-y: 20%; }
1597[data-wf--background-element--position]:has([data-wf--background-element-offset-y--variant="25"]) { --offset-y: 25%; }
1598[data-wf--background-element--position]:has([data-wf--background-element-offset-y--variant="30"]) { --offset-y: 30%; }
1599[data-wf--background-element--position]:has([data-wf--background-element-offset-y--variant="40"]) { --offset-y: 40%; }
1600[data-wf--background-element--position]:has([data-wf--background-element-offset-y--variant="50"]) { --offset-y: 50%; }
1601[data-wf--background-element--position]:has([data-wf--background-element-offset-y--variant="60"]) { --offset-y: 60%; }
1602[data-wf--background-element--position]:has([data-wf--background-element-offset-y--variant="70"]) { --offset-y: 70%; }
1603[data-wf--background-element--position]:has([data-wf--background-element-offset-y--variant="75"]) { --offset-y: 75%; }
1604[data-wf--background-element--position]:has([data-wf--background-element-offset-y--variant="80"]) { --offset-y: 80%; }
1605[data-wf--background-element--position]:has([data-wf--background-element-offset-y--variant="90"]) { --offset-y: 90%; }
1606[data-wf--background-element--position]:has([data-wf--background-element-offset-y--variant="100"]) { --offset-y: 100%; }
1607
1608/* --- Apply to top-anchored positions --- */
1609
1610[data-wf--background-element--position="top-left"]:has([data-wf--background-element-offset-y--variant]:not([data-wf--background-element-offset-y--variant="base"])),
1611[data-wf--background-element--position="top-center"]:has([data-wf--background-element-offset-y--variant]:not([data-wf--background-element-offset-y--variant="base"])),
1612[data-wf--background-element--position="top-right"]:has([data-wf--background-element-offset-y--variant]:not([data-wf--background-element-offset-y--variant="base"])) {
1613  top: var(--offset-y);
1614}
1615
1616/* --- Apply to bottom-anchored positions --- */
1617
1618[data-wf--background-element--position="bottom-left"]:has([data-wf--background-element-offset-y--variant]:not([data-wf--background-element-offset-y--variant="base"])),
1619[data-wf--background-element--position="bottom-center"]:has([data-wf--background-element-offset-y--variant]:not([data-wf--background-element-offset-y--variant="base"])),
1620[data-wf--background-element--position="bottom-right"]:has([data-wf--background-element-offset-y--variant]:not([data-wf--background-element-offset-y--variant="base"])) {
1621  bottom: calc(0% - var(--offset-y));
1622}
1623
1624/* --- Apply to center-Y positions --- */
1625
1626[data-wf--background-element--position="center-left"]:has([data-wf--background-element-offset-y--variant]:not([data-wf--background-element-offset-y--variant="base"])),
1627[data-wf--background-element--position="center"]:has([data-wf--background-element-offset-y--variant]:not([data-wf--background-element-offset-y--variant="base"])),
1628[data-wf--background-element--position="center-right"]:has([data-wf--background-element-offset-y--variant]:not([data-wf--background-element-offset-y--variant="base"])) {
1629  top: calc(50% + var(--offset-y));
1630}
1631</style></div><div><div class="hide w-embed"><style>
1632
1633</style></div><div class="hide w-embed"><style>
1634/* ================================================
1635   UTILITY / ALIGN
1636   ================================================ */
1637
1638[data-wf--utility-align--variant] {
1639  display: none;
1640}
1641
1642:has(> [data-wf--utility-align--variant="stretch"]),
1643:has(> [data-wf--utility-align--variant="stretch"]) > .grid {
1644  align-items: stretch;
1645}
1646
1647:has(> [data-wf--utility-align--variant="top"]),
1648:has(> [data-wf--utility-align--variant="top"]) > .grid {
1649  align-items: start;
1650}
1651
1652:has(> [data-wf--utility-align--variant="center"]),
1653:has(> [data-wf--utility-align--variant="center"]) > .grid {
1654  align-items: center;
1655}
1656
1657:has(> [data-wf--utility-align--variant="bottom"]),
1658:has(> [data-wf--utility-align--variant="bottom"]) > .grid {
1659  align-items: end;
1660}
1661
1662:has(> [data-wf--utility-align--variant="baseline"]),
1663:has(> [data-wf--utility-align--variant="baseline"]) > .grid {
1664  align-items: baseline;
1665}
1666</style></div><div class="hide w-embed"><style>
1667/* ================================================
1668   UTILITY / ALIGN SELF
1669   ================================================ */
1670/* Desktop */
1671[data-wf--utility-align-self--variant] {
1672  display: none;
1673}
1674:has(> [data-wf--utility-align-self--variant="start"]) {
1675  justify-self: start;
1676}
1677:has(> [data-wf--utility-align-self--variant="center"]) {
1678  justify-self: center;
1679}
1680:has(> [data-wf--utility-align-self--variant="end"]) {
1681  justify-self: end;
1682}
1683:has(> [data-wf--utility-align-self--variant="stretch"]) {
1684  justify-self: stretch;
1685}
1686
1687/* Mobile Override */
1688[data-wf--utility-align-self-mobile--variant] {
1689  display: none;
1690}
1691
1692@media (max-width: 767px) {
1693  :has([data-wf--utility-align-self-mobile--variant="start"]) {
1694    justify-self: start;
1695  }
1696  :has([data-wf--utility-align-self-mobile--variant="center"]) {
1697    justify-self: center;
1698  }
1699  :has([data-wf--utility-align-self-mobile--variant="end"]) {
1700    justify-self: end;
1701  }
1702  :has([data-wf--utility-align-self-mobile--variant="stretch"]) {
1703    justify-self: stretch;
1704  }
1705}
1706</style></div><div class="hide w-embed"><style>
1707/* ================================================
1708   UTILITY / BLEND MODE
1709   ================================================ */
1710
1711[data-wf--utility-blend-mode--variant] {
1712  display: none;
1713}
1714
1715:has(> [data-wf--utility-blend-mode--variant="multiply"]) {
1716  mix-blend-mode: multiply;
1717}
1718:has(> [data-wf--utility-blend-mode--variant="screen"]) {
1719  mix-blend-mode: screen;
1720}
1721:has(> [data-wf--utility-blend-mode--variant="overlay"]) {
1722  mix-blend-mode: overlay;
1723}
1724:has(> [data-wf--utility-blend-mode--variant="darken"]) {
1725  mix-blend-mode: darken;
1726}
1727:has(> [data-wf--utility-blend-mode--variant="lighten"]) {
1728  mix-blend-mode: lighten;
1729}
1730:has(> [data-wf--utility-blend-mode--variant="color-dodge"]) {
1731  mix-blend-mode: color-dodge;
1732}
1733:has(> [data-wf--utility-blend-mode--variant="color-burn"]) {
1734  mix-blend-mode: color-burn;
1735}
1736:has(> [data-wf--utility-blend-mode--variant="soft-light"]) {
1737  mix-blend-mode: soft-light;
1738}
1739:has(> [data-wf--utility-blend-mode--variant="hard-light"]) {
1740  mix-blend-mode: hard-light;
1741}
1742</style></div><div class="hide w-embed"><style>
1743/* ================================================
1744   UTILITY / BORDER RADIUS
1745   Overrides the parent element's border-radius.
1746   Drop this component inside any element that
1747   needs a radius change from its default.
1748
1749   Variants:
1750   - Base (no override)
1751   - None (0)
1752   - Small
1753   - Medium
1754   - Large
1755   - XLarge
1756   - Full (pill)
1757   ================================================ */
1758
1759[data-wf--utility-border-radius--variant] {
1760  display: none;
1761}
1762
1763:has(> [data-wf--utility-border-radius--variant="none"]) {
1764  border-radius: 0 !important;
1765}
1766
1767:has(> [data-wf--utility-border-radius--variant="small"]) {
1768  border-radius: var(--_border-radius---small) !important;
1769  overflow: hidden;
1770}
1771
1772:has(> [data-wf--utility-border-radius--variant="medium"]) {
1773  border-radius: var(--_border-radius---medium) !important;
1774  overflow: hidden;
1775}
1776
1777:has(> [data-wf--utility-border-radius--variant="large"]) {
1778  border-radius: var(--_border-radius---large) !important;
1779  overflow: hidden;
1780}
1781
1782:has(> [data-wf--utility-border-radius--variant="xlarge"]) {
1783  border-radius: var(--_border-radius---xlarge) !important;
1784  overflow: hidden;
1785}
1786
1787:has(> [data-wf--utility-border-radius--variant="full"]) {
1788  border-radius: 9999px !important;
1789  overflow: hidden;
1790}
1791</style></div><div class="hide w-embed"><style>
1792/* ================================================
1793   UTILITY / FONT
1794   ================================================ */
1795
1796[data-wf--utility-font--variant] {
1797  display: none;
1798}
1799
1800:has(> [data-wf--utility-font--variant="display"]),
1801:has(> [data-wf--utility-font--variant="display"]) h1,
1802:has(> [data-wf--utility-font--variant="display"]) h2,
1803:has(> [data-wf--utility-font--variant="display"]) h3,
1804:has(> [data-wf--utility-font--variant="display"]) h4,
1805:has(> [data-wf--utility-font--variant="display"]) h5,
1806:has(> [data-wf--utility-font--variant="display"]) h6,
1807:has(> [data-wf--utility-font--variant="display"]) p {
1808  font-family: var(--_typography---font-families--display-font);
1809}
1810
1811:has(> [data-wf--utility-font--variant="heading"]),
1812:has(> [data-wf--utility-font--variant="heading"]) h1,
1813:has(> [data-wf--utility-font--variant="heading"]) h2,
1814:has(> [data-wf--utility-font--variant="heading"]) h3,
1815:has(> [data-wf--utility-font--variant="heading"]) h4,
1816:has(> [data-wf--utility-font--variant="heading"]) h5,
1817:has(> [data-wf--utility-font--variant="heading"]) h6,
1818:has(> [data-wf--utility-font--variant="heading"]) p {
1819  font-family: var(--_typography---font-families--heading-font);
1820}
1821
1822:has(> [data-wf--utility-font--variant="body"]),
1823:has(> [data-wf--utility-font--variant="body"]) h1,
1824:has(> [data-wf--utility-font--variant="body"]) h2,
1825:has(> [data-wf--utility-font--variant="body"]) h3,
1826:has(> [data-wf--utility-font--variant="body"]) h4,
1827:has(> [data-wf--utility-font--variant="body"]) h5,
1828:has(> [data-wf--utility-font--variant="body"]) h6,
1829:has(> [data-wf--utility-font--variant="body"]) p {
1830  font-family: var(--_typography---font-families--body-font);
1831}
1832
1833:has(> [data-wf--utility-font--variant="alt-body"]),
1834:has(> [data-wf--utility-font--variant="alt-body"]) h1,
1835:has(> [data-wf--utility-font--variant="alt-body"]) h2,
1836:has(> [data-wf--utility-font--variant="alt-body"]) h3,
1837:has(> [data-wf--utility-font--variant="alt-body"]) h4,
1838:has(> [data-wf--utility-font--variant="alt-body"]) h5,
1839:has(> [data-wf--utility-font--variant="alt-body"]) h6,
1840:has(> [data-wf--utility-font--variant="alt-body"]) p {
1841  font-family: var(--_typography---font-families--alt-body-font);
1842}
1843
1844/* ================================================
1845   UTILITY / TEXT SIZE
1846   ================================================ */
1847
1848[data-wf--utility-text-size--variant] {
1849  display: none;
1850}
1851
1852:has(> [data-wf--utility-text-size--variant="display"]),
1853:has(> [data-wf--utility-text-size--variant="display"]) h1,
1854:has(> [data-wf--utility-text-size--variant="display"]) h2,
1855:has(> [data-wf--utility-text-size--variant="display"]) h3,
1856:has(> [data-wf--utility-text-size--variant="display"]) h4,
1857:has(> [data-wf--utility-text-size--variant="display"]) h5,
1858:has(> [data-wf--utility-text-size--variant="display"]) h6,
1859:has(> [data-wf--utility-text-size--variant="display"]) p {
1860  font-size: var(--_typography---heading-sizes--display);
1861  line-height: var(--_typography---line-height--display);
1862  letter-spacing: var(--_typography---letter-spacing--display);
1863}
1864
1865:has(> [data-wf--utility-text-size--variant="h1"]),
1866:has(> [data-wf--utility-text-size--variant="h1"]) h1,
1867:has(> [data-wf--utility-text-size--variant="h1"]) h2,
1868:has(> [data-wf--utility-text-size--variant="h1"]) h3,
1869:has(> [data-wf--utility-text-size--variant="h1"]) h4,
1870:has(> [data-wf--utility-text-size--variant="h1"]) h5,
1871:has(> [data-wf--utility-text-size--variant="h1"]) h6,
1872:has(> [data-wf--utility-text-size--variant="h1"]) p {
1873  font-size: var(--_typography---heading-sizes--h1);
1874  line-height: var(--_typography---line-height--h1);
1875  letter-spacing: var(--_typography---letter-spacing--h1);
1876}
1877
1878:has(> [data-wf--utility-text-size--variant="h2"]),
1879:has(> [data-wf--utility-text-size--variant="h2"]) h1,
1880:has(> [data-wf--utility-text-size--variant="h2"]) h2,
1881:has(> [data-wf--utility-text-size--variant="h2"]) h3,
1882:has(> [data-wf--utility-text-size--variant="h2"]) h4,
1883:has(> [data-wf--utility-text-size--variant="h2"]) h5,
1884:has(> [data-wf--utility-text-size--variant="h2"]) h6,
1885:has(> [data-wf--utility-text-size--variant="h2"]) p {
1886  font-size: var(--_typography---heading-sizes--h2);
1887  line-height: var(--_typography---line-height--h2);
1888  letter-spacing: var(--_typography---letter-spacing--h2);
1889}
1890
1891:has(> [data-wf--utility-text-size--variant="h3"]),
1892:has(> [data-wf--utility-text-size--variant="h3"]) h1,
1893:has(> [data-wf--utility-text-size--variant="h3"]) h2,
1894:has(> [data-wf--utility-text-size--variant="h3"]) h3,
1895:has(> [data-wf--utility-text-size--variant="h3"]) h4,
1896:has(> [data-wf--utility-text-size--variant="h3"]) h5,
1897:has(> [data-wf--utility-text-size--variant="h3"]) h6,
1898:has(> [data-wf--utility-text-size--variant="h3"]) p {
1899  font-size: var(--_typography---heading-sizes--h3);
1900  line-height: var(--_typography---line-height--h3);
1901  letter-spacing: var(--_typography---letter-spacing--h3);
1902}
1903
1904:has(> [data-wf--utility-text-size--variant="h4"]),
1905:has(> [data-wf--utility-text-size--variant="h4"]) h1,
1906:has(> [data-wf--utility-text-size--variant="h4"]) h2,
1907:has(> [data-wf--utility-text-size--variant="h4"]) h3,
1908:has(> [data-wf--utility-text-size--variant="h4"]) h4,
1909:has(> [data-wf--utility-text-size--variant="h4"]) h5,
1910:has(> [data-wf--utility-text-size--variant="h4"]) h6,
1911:has(> [data-wf--utility-text-size--variant="h4"]) p {
1912  font-size: var(--_typography---heading-sizes--h4);
1913  line-height: var(--_typography---line-height--h4);
1914  letter-spacing: var(--_typography---letter-spacing--h4);
1915}
1916
1917:has(> [data-wf--utility-text-size--variant="h5"]),
1918:has(> [data-wf--utility-text-size--variant="h5"]) h1,
1919:has(> [data-wf--utility-text-size--variant="h5"]) h2,
1920:has(> [data-wf--utility-text-size--variant="h5"]) h3,
1921:has(> [data-wf--utility-text-size--variant="h5"]) h4,
1922:has(> [data-wf--utility-text-size--variant="h5"]) h5,
1923:has(> [data-wf--utility-text-size--variant="h5"]) h6,
1924:has(> [data-wf--utility-text-size--variant="h5"]) p {
1925  font-size: var(--_typography---heading-sizes--h5);
1926  line-height: var(--_typography---line-height--h5);
1927  letter-spacing: var(--_typography---letter-spacing--h5);
1928}
1929
1930:has(> [data-wf--utility-text-size--variant="h6"]),
1931:has(> [data-wf--utility-text-size--variant="h6"]) h1,
1932:has(> [data-wf--utility-text-size--variant="h6"]) h2,
1933:has(> [data-wf--utility-text-size--variant="h6"]) h3,
1934:has(> [data-wf--utility-text-size--variant="h6"]) h4,
1935:has(> [data-wf--utility-text-size--variant="h6"]) h5,
1936:has(> [data-wf--utility-text-size--variant="h6"]) h6,
1937:has(> [data-wf--utility-text-size--variant="h6"]) p {
1938  font-size: var(--_typography---heading-sizes--h6);
1939  line-height: var(--_typography---line-height--h6);
1940  letter-spacing: var(--_typography---letter-spacing--h6);
1941}
1942
1943:has(> [data-wf--utility-text-size--variant="text-large"]),
1944:has(> [data-wf--utility-text-size--variant="text-large"]) h1,
1945:has(> [data-wf--utility-text-size--variant="text-large"]) h2,
1946:has(> [data-wf--utility-text-size--variant="text-large"]) h3,
1947:has(> [data-wf--utility-text-size--variant="text-large"]) h4,
1948:has(> [data-wf--utility-text-size--variant="text-large"]) h5,
1949:has(> [data-wf--utility-text-size--variant="text-large"]) h6,
1950:has(> [data-wf--utility-text-size--variant="text-large"]) p {
1951  font-size: var(--_typography---body-sizes--text-large);
1952  line-height: var(--_typography---line-height--paragraph);
1953  letter-spacing: var(--_typography---letter-spacing--paragraph);
1954}
1955
1956:has(> [data-wf--utility-text-size--variant="text-medium"]),
1957:has(> [data-wf--utility-text-size--variant="text-medium"]) h1,
1958:has(> [data-wf--utility-text-size--variant="text-medium"]) h2,
1959:has(> [data-wf--utility-text-size--variant="text-medium"]) h3,
1960:has(> [data-wf--utility-text-size--variant="text-medium"]) h4,
1961:has(> [data-wf--utility-text-size--variant="text-medium"]) h5,
1962:has(> [data-wf--utility-text-size--variant="text-medium"]) h6,
1963:has(> [data-wf--utility-text-size--variant="text-medium"]) p {
1964  font-size: var(--_typography---body-sizes--text-medium);
1965  line-height: var(--_typography---line-height--paragraph);
1966  letter-spacing: var(--_typography---letter-spacing--paragraph);
1967}
1968
1969:has(> [data-wf--utility-text-size--variant="text-regular"]),
1970:has(> [data-wf--utility-text-size--variant="text-regular"]) h1,
1971:has(> [data-wf--utility-text-size--variant="text-regular"]) h2,
1972:has(> [data-wf--utility-text-size--variant="text-regular"]) h3,
1973:has(> [data-wf--utility-text-size--variant="text-regular"]) h4,
1974:has(> [data-wf--utility-text-size--variant="text-regular"]) h5,
1975:has(> [data-wf--utility-text-size--variant="text-regular"]) h6,
1976:has(> [data-wf--utility-text-size--variant="text-regular"]) p {
1977  font-size: var(--_typography---body-sizes--text-regular);
1978  line-height: var(--_typography---line-height--paragraph);
1979  letter-spacing: var(--_typography---letter-spacing--paragraph);
1980}
1981
1982:has(> [data-wf--utility-text-size--variant="text-small"]),
1983:has(> [data-wf--utility-text-size--variant="text-small"]) h1,
1984:has(> [data-wf--utility-text-size--variant="text-small"]) h2,
1985:has(> [data-wf--utility-text-size--variant="text-small"]) h3,
1986:has(> [data-wf--utility-text-size--variant="text-small"]) h4,
1987:has(> [data-wf--utility-text-size--variant="text-small"]) h5,
1988:has(> [data-wf--utility-text-size--variant="text-small"]) h6,
1989:has(> [data-wf--utility-text-size--variant="text-small"]) p {
1990  font-size: var(--_typography---body-sizes--text-small);
1991  line-height: var(--_typography---line-height--paragraph);
1992  letter-spacing: var(--_typography---letter-spacing--paragraph);
1993}
1994
1995:has(> [data-wf--utility-text-size--variant="text-tiny"]),
1996:has(> [data-wf--utility-text-size--variant="text-tiny"]) h1,
1997:has(> [data-wf--utility-text-size--variant="text-tiny"]) h2,
1998:has(> [data-wf--utility-text-size--variant="text-tiny"]) h3,
1999:has(> [data-wf--utility-text-size--variant="text-tiny"]) h4,
2000:has(> [data-wf--utility-text-size--variant="text-tiny"]) h5,
2001:has(> [data-wf--utility-text-size--variant="text-tiny"]) h6,
2002:has(> [data-wf--utility-text-size--variant="text-tiny"]) p {
2003  font-size: var(--_typography---body-sizes--text-tiny);
2004  line-height: var(--_typography---line-height--paragraph);
2005  letter-spacing: var(--_typography---letter-spacing--paragraph);
2006}
2007</style></div><div class="hide w-embed"><style>
2008/* ================================================
2009   UTILITY / GAP
2010   ================================================ */
2011[data-wf--utility-gap--variant] {
2012  display: none;
2013}
2014:has(> [data-wf--utility-gap--variant="none"]),
2015:has(> [data-wf--utility-gap--variant="none"]) > .grid {
2016  gap: 0rem !important;
2017}
2018:has(> [data-wf--utility-gap--variant="tiny"]),
2019:has(> [data-wf--utility-gap--variant="tiny"]) > .grid {
2020  gap: var(--_spacing---tiny) !important;
2021}
2022:has(> [data-wf--utility-gap--variant="xxsmall"]),
2023:has(> [data-wf--utility-gap--variant="xxsmall"]) > .grid {
2024  gap: var(--_spacing---xxsmall) !important;
2025}
2026:has(> [data-wf--utility-gap--variant="xsmall"]),
2027:has(> [data-wf--utility-gap--variant="xsmall"]) > .grid {
2028  gap: var(--_spacing---xsmall) !important;
2029}
2030:has(> [data-wf--utility-gap--variant="small"]),
2031:has(> [data-wf--utility-gap--variant="small"]) > .grid {
2032  gap: var(--_spacing---small) !important;
2033}
2034:has(> [data-wf--utility-gap--variant="medium"]),
2035:has(> [data-wf--utility-gap--variant="medium"]) > .grid {
2036  gap: var(--_spacing---medium) !important;
2037}
2038:has(> [data-wf--utility-gap--variant="large"]),
2039:has(> [data-wf--utility-gap--variant="large"]) > .grid {
2040  gap: var(--_spacing---large) !important;
2041}
2042:has(> [data-wf--utility-gap--variant="xlarge"]),
2043:has(> [data-wf--utility-gap--variant="xlarge"]) > .grid {
2044  gap: var(--_spacing---xlarge) !important;
2045}
2046:has(> [data-wf--utility-gap--variant="xxlarge"]),
2047:has(> [data-wf--utility-gap--variant="xxlarge"]) > .grid {
2048  gap: var(--_spacing---xxlarge) !important;
2049}
2050:has(> [data-wf--utility-gap--variant="huge"]),
2051:has(> [data-wf--utility-gap--variant="huge"]) > .grid {
2052  gap: var(--_spacing---huge) !important;
2053}
2054:has(> [data-wf--utility-gap--variant="xhuge"]),
2055:has(> [data-wf--utility-gap--variant="xhuge"]) > .grid {
2056  gap: var(--_spacing---xhuge) !important;
2057}
2058:has(> [data-wf--utility-gap--variant="xxhuge"]),
2059:has(> [data-wf--utility-gap--variant="xxhuge"]) > .grid {
2060  gap: var(--_spacing---xxhuge) !important;
2061}
2062
2063/* ================================================
2064   UTILITY / GAP (MOBILE)
2065   Overrides gap spacing at 767px and below.
2066   Place as a direct child of the component wrapper.
2067   ================================================ */
2068
2069[data-wf--utility-gap-mobile--variant] {
2070  display: none;
2071}
2072
2073@media (max-width: 767px) {
2074  :has(> [data-wf--utility-gap-mobile--variant="none"]),
2075  :has(> [data-wf--utility-gap-mobile--variant="none"]) > .grid {
2076    gap: 0rem !important;
2077  }
2078  :has(> [data-wf--utility-gap-mobile--variant="tiny"]),
2079  :has(> [data-wf--utility-gap-mobile--variant="tiny"]) > .grid {
2080    gap: var(--_spacing---tiny) !important;
2081  }
2082  :has(> [data-wf--utility-gap-mobile--variant="xxsmall"]),
2083  :has(> [data-wf--utility-gap-mobile--variant="xxsmall"]) > .grid {
2084    gap: var(--_spacing---xxsmall) !important;
2085  }
2086  :has(> [data-wf--utility-gap-mobile--variant="xsmall"]),
2087  :has(> [data-wf--utility-gap-mobile--variant="xsmall"]) > .grid {
2088    gap: var(--_spacing---xsmall) !important;
2089  }
2090  :has(> [data-wf--utility-gap-mobile--variant="small"]),
2091  :has(> [data-wf--utility-gap-mobile--variant="small"]) > .grid {
2092    gap: var(--_spacing---small) !important;
2093  }
2094  :has(> [data-wf--utility-gap-mobile--variant="medium"]),
2095  :has(> [data-wf--utility-gap-mobile--variant="medium"]) > .grid {
2096    gap: var(--_spacing---medium) !important;
2097  }
2098  :has(> [data-wf--utility-gap-mobile--variant="large"]),
2099  :has(> [data-wf--utility-gap-mobile--variant="large"]) > .grid {
2100    gap: var(--_spacing---large) !important;
2101  }
2102  :has(> [data-wf--utility-gap-mobile--variant="xlarge"]),
2103  :has(> [data-wf--utility-gap-mobile--variant="xlarge"]) > .grid {
2104    gap: var(--_spacing---xlarge) !important;
2105  }
2106  :has(> [data-wf--utility-gap-mobile--variant="xxlarge"]),
2107  :has(> [data-wf--utility-gap-mobile--variant="xxlarge"]) > .grid {
2108    gap: var(--_spacing---xxlarge) !important;
2109  }
2110  :has(> [data-wf--utility-gap-mobile--variant="huge"]),
2111  :has(> [data-wf--utility-gap-mobile--variant="huge"]) > .grid {
2112    gap: var(--_spacing---huge) !important;
2113  }
2114  :has(> [data-wf--utility-gap-mobile--variant="xhuge"]),
2115  :has(> [data-wf--utility-gap-mobile--variant="xhuge"]) > .grid {
2116    gap: var(--_spacing---xhuge) !important;
2117  }
2118  :has(> [data-wf--utility-gap-mobile--variant="xxhuge"]),
2119  :has(> [data-wf--utility-gap-mobile--variant="xxhuge"]) > .grid {
2120    gap: var(--_spacing---xxhuge) !important;
2121  }
2122}
2123</style></div><div class="hide w-embed"><style>
2124/* ================================================
2125   UTILITY / HEIGHT
2126   ================================================ */
2127
2128[data-wf--utility-height--variant] {
2129  display: none;
2130}
2131
2132:has(> [data-wf--utility-height--variant="full"]),
2133:has(> [data-wf--utility-height--variant="full"]) > .grid {
2134  height: 100%;
2135}
2136
2137:has(> [data-wf--utility-height--variant="screen"]),
2138:has(> [data-wf--utility-height--variant="screen"]) > .grid {
2139  height: 100vh;
2140}
2141
2142:has(> [data-wf--utility-height--variant="auto"]),
2143:has(> [data-wf--utility-height--variant="auto"]) > .grid {
2144  height: auto;
2145}
2146
2147/* ================================================
2148   UTILITY / HEIGHT
2149   ================================================ */
2150[data-wf--utility-height--variant] {
2151  display: none;
2152}
2153:has(> [data-wf--utility-height--variant="10"]) {
2154  height: 10%;
2155}
2156:has(> [data-wf--utility-height--variant="20"]) {
2157  height: 20%;
2158}
2159:has(> [data-wf--utility-height--variant="30"]) {
2160  height: 30%;
2161}
2162:has(> [data-wf--utility-height--variant="40"]) {
2163  height: 40%;
2164}
2165:has(> [data-wf--utility-height--variant="50"]) {
2166  height: 50%;
2167}
2168:has(> [data-wf--utility-height--variant="60"]) {
2169  height: 60%;
2170}
2171:has(> [data-wf--utility-height--variant="70"]) {
2172  height: 70%;
2173}
2174:has(> [data-wf--utility-height--variant="80"]) {
2175  height: 80%;
2176}
2177:has(> [data-wf--utility-height--variant="90"]) {
2178  height: 90%;
2179}
2180:has(> [data-wf--utility-height--variant="100"]) {
2181  height: 100%;
2182}
2183
2184</style></div><div class="hide w-embed"><style>
2185/* ================================================
2186   UTILITY / JUSTIFY
2187   ================================================ */
2188
2189[data-wf--utility-justify--variant] {
2190  display: none;
2191}
2192
2193:has(> [data-wf--utility-justify--variant="start"]),
2194:has(> [data-wf--utility-justify--variant="start"]) > .grid {
2195  justify-content: flex-start;
2196}
2197
2198:has(> [data-wf--utility-justify--variant="center"]),
2199:has(> [data-wf--utility-justify--variant="center"]) > .grid {
2200  justify-content: center;
2201}
2202
2203:has(> [data-wf--utility-justify--variant="end"]),
2204:has(> [data-wf--utility-justify--variant="end"]) > .grid {
2205  justify-content: flex-end;
2206}
2207
2208:has(> [data-wf--utility-justify--variant="between"]),
2209:has(> [data-wf--utility-justify--variant="between"]) > .grid {
2210  justify-content: space-between;
2211}
2212
2213:has(> [data-wf--utility-justify--variant="around"]),
2214:has(> [data-wf--utility-justify--variant="around"]) > .grid {
2215  justify-content: space-around;
2216}
2217
2218:has(> [data-wf--utility-justify--variant="evenly"]),
2219:has(> [data-wf--utility-justify--variant="evenly"]) > .grid {
2220  justify-content: space-evenly;
2221}
2222
2223/* ================================================
2224   UTILITY / JUSTIFY (vertical distribution)
2225   ================================================ */
2226
2227[data-wf--utility-justify--variant] {
2228  display: none;
2229}
2230
2231:has(> [data-wf--utility-justify--variant="start"]),
2232:has(> [data-wf--utility-justify--variant="start"]) > .grid {
2233  align-content: start;
2234}
2235
2236:has(> [data-wf--utility-justify--variant="center"]),
2237:has(> [data-wf--utility-justify--variant="center"]) > .grid {
2238  align-content: center;
2239}
2240
2241:has(> [data-wf--utility-justify--variant="end"]),
2242:has(> [data-wf--utility-justify--variant="end"]) > .grid {
2243  align-content: end;
2244}
2245
2246:has(> [data-wf--utility-justify--variant="between"]),
2247:has(> [data-wf--utility-justify--variant="between"]) > .grid {
2248  align-content: space-between;
2249}
2250
2251:has(> [data-wf--utility-justify--variant="around"]),
2252:has(> [data-wf--utility-justify--variant="around"]) > .grid {
2253  align-content: space-around;
2254}
2255
2256:has(> [data-wf--utility-justify--variant="evenly"]),
2257:has(> [data-wf--utility-justify--variant="evenly"]) > .grid {
2258  align-content: space-evenly;
2259}
2260
2261:has(> [data-wf--utility-justify--variant="stretch"]),
2262:has(> [data-wf--utility-justify--variant="stretch"]) > .grid {
2263  align-content: stretch;
2264}
2265</style></div><div class="hide w-embed"><style>
2266
2267</style></div><div class="hide w-embed"><style>
2268/* ================================================
2269   UTILITY / MAX WIDTH
2270   ===========
2270===================================== */
2271
2272[data-wf--utility-max-width--variant] {
2273  display: none;
2274}
2275
2276:has(> [data-wf--utility-max-width--variant="full"]) {
2277  max-width: var(--_max-widths---full);
2278}
2279
2280:has(> [data-wf--utility-max-width--variant="xxsmall"]) {
2281  max-width: var(--_max-widths---xxsmall);
2282}
2283
2284:has(> [data-wf--utility-max-width--variant="xsmall"]) {
2285  max-width: var(--_max-widths---xsmall);
2286}
2287
2288:has(> [data-wf--utility-max-width--variant="small"]) {
2289  max-width: var(--_max-widths---small);
2290}
2291
2292:has(> [data-wf--utility-max-width--variant="medium"]) {
2293  max-width: var(--_max-widths---medium);
2294}
2295
2296:has(> [data-wf--utility-max-width--variant="large"]) {
2297  max-width: var(--_max-widths---large);
2298}
2299
2300:has(> [data-wf--utility-max-width--variant="xlarge"]) {
2301  max-width: var(--_max-widths---xlarge);
2302}
2303
2304:has(> [data-wf--utility-max-width--variant="xxlarge"]) {
2305  max-width: var(--_max-widths---xxlarge);
2306}
2307</style></div><div class="hide w-embed"><style>
2308/* ================================================
2309   UTILITY / OPACITY
2310   ================================================ */
2311
2312/* Utility / Opacity */
2313[data-wf--utility-opacity--variant] {
2314  display: none;
2315}
2316
2317:has(> [data-wf--utility-opacity--variant="90"]) {
2318  opacity: 0.9;
2319}
2320:has(> [data-wf--utility-opacity--variant="80"]) {
2321  opacity: 0.8;
2322}
2323:has(> [data-wf--utility-opacity--variant="70"]) {
2324  opacity: 0.7;
2325}
2326:has(> [data-wf--utility-opacity--variant="60"]) {
2327  opacity: 0.6;
2328}
2329:has(> [data-wf--utility-opacity--variant="50"]) {
2330  opacity: 0.5;
2331}
2332:has(> [data-wf--utility-opacity--variant="40"]) {
2333  opacity: 0.4;
2334}
2335:has(> [data-wf--utility-opacity--variant="30"]) {
2336  opacity: 0.3;
2337}
2338:has(> [data-wf--utility-opacity--variant="20"]) {
2339  opacity: 0.2;
2340}
2341:has(> [data-wf--utility-opacity--variant="10"]) {
2342  opacity: 0.1;
2343}
2344</style></div><div class="hide w-embed"><style>
2345[data-wf--utility-order-mobile--variant] {
2346  display: none;
2347}
2348@media (max-width: 767px) {
2349  :has(> [data-wf--utility-order-mobile--variant="1"]),
2350  :has(> * > [data-wf--utility-order-mobile--variant="1"]) {
2351    order: 1 !important;
2352  }
2353  :has(> [data-wf--utility-order-mobile--variant="2"]),
2354  :has(> * > [data-wf--utility-order-mobile--variant="2"]) {
2355    order: 2 !important;
2356  }
2357  :has(> [data-wf--utility-order-mobile--variant="3"]),
2358  :has(> * > [data-wf--utility-order-mobile--variant="3"]) {
2359    order: 3 !important;
2360  }
2361  :has(> [data-wf--utility-order-mobile--variant="4"]),
2362  :has(> * > [data-wf--utility-order-mobile--variant="4"]) {
2363    order: 4 !important;
2364  }
2365}
2366</style></div><div class="hide w-embed"><style>
2367/* ================================================
2368   UTILITY / TEXT ALIGN
2369   ================================================ */
2370
2371[data-wf--utility-text-align--variant] {
2372  display: none;
2373}
2374
2375:has(> [data-wf--utility-text-align--variant="left"]),
2376:has(> [data-wf--utility-text-align--variant="left"]) h1,
2377:has(> [data-wf--utility-text-align--variant="left"]) h2,
2378:has(> [data-wf--utility-text-align--variant="left"]) h3,
2379:has(> [data-wf--utility-text-align--variant="left"]) h4,
2380:has(> [data-wf--utility-text-align--variant="left"]) h5,
2381:has(> [data-wf--utility-text-align--variant="left"]) h6,
2382:has(> [data-wf--utility-text-align--variant="left"]) p {
2383  text-align: left;
2384}
2385
2386:has(> [data-wf--utility-text-align--variant="center"]),
2387:has(> [data-wf--utility-text-align--variant="center"]) h1,
2388:has(> [data-wf--utility-text-align--variant="center"]) h2,
2389:has(> [data-wf--utility-text-align--variant="center"]) h3,
2390:has(> [data-wf--utility-text-align--variant="center"]) h4,
2391:has(> [data-wf--utility-text-align--variant="center"]) h5,
2392:has(> [data-wf--utility-text-align--variant="center"]) h6,
2393:has(> [data-wf--utility-text-align--variant="center"]) p {
2394  text-align: center;
2395}
2396
2397:has(> [data-wf--utility-text-align--variant="right"]),
2398:has(> [data-wf--utility-text-align--variant="right"]) h1,
2399:has(> [data-wf--utility-text-align--variant="right"]) h2,
2400:has(> [data-wf--utility-text-align--variant="right"]) h3,
2401:has(> [data-wf--utility-text-align--variant="right"]) h4,
2402:has(> [data-wf--utility-text-align--variant="right"]) h5,
2403:has(> [data-wf--utility-text-align--variant="right"]) h6,
2404:has(> [data-wf--utility-text-align--variant="right"]) p {
2405  text-align: right;
2406}
2407
2408/* ================================================
2409   UTILITY / TEXT ALIGN (MOBILE)
2410   Overrides text alignment at 767px and below.
2411   Place as a direct child of the component wrapper.
2412   ================================================ */
2413
2414[data-wf--utility-text-align-mobile--variant] {
2415  display: none;
2416}
2417
2418@media (max-width: 767px) {
2419  :has(> [data-wf--utility-text-align-mobile--variant="left"]),
2420  :has(> [data-wf--utility-text-align-mobile--variant="left"]) h1,
2421  :has(> [data-wf--utility-text-align-mobile--variant="left"]) h2,
2422  :has(> [data-wf--utility-text-align-mobile--variant="left"]) h3,
2423  :has(> [data-wf--utility-text-align-mobile--variant="left"]) h4,
2424  :has(> [data-wf--utility-text-align-mobile--variant="left"]) h5,
2425  :has(> [data-wf--utility-text-align-mobile--variant="left"]) h6,
2426  :has(> [data-wf--utility-text-align-mobile--variant="left"]) p {
2427    text-align: left;
2428  }
2429
2430  :has(> [data-wf--utility-text-align-mobile--variant="center"]),
2431  :has(> [data-wf--utility-text-align-mobile--variant="center"]) h1,
2432  :has(> [data-wf--utility-text-align-mobile--variant="center"]) h2,
2433  :has(> [data-wf--utility-text-align-mobile--variant="center"]) h3,
2434  :has(> [data-wf--utility-text-align-mobile--variant="center"]) h4,
2435  :has(> [data-wf--utility-text-align-mobile--variant="center"]) h5,
2436  :has(> [data-wf--utility-text-align-mobile--variant="center"]) h6,
2437  :has(> [data-wf--utility-text-align-mobile--variant="center"]) p {
2438    text-align: center;
2439  }
2440
2441  :has(> [data-wf--utility-text-align-mobile--variant="right"]),
2442  :has(> [data-wf--utility-text-align-mobile--variant="right"]) h1,
2443  :has(> [data-wf--utility-text-align-mobile--variant="right"]) h2,
2444  :has(> [data-wf--utility-text-align-mobile--variant="right"]) h3,
2445  :has(> [data-wf--utility-text-align-mobile--variant="right"]) h4,
2446  :has(> [data-wf--utility-text-align-mobile--variant="right"]) h5,
2447  :has(> [data-wf--utility-text-align-mobile--variant="right"]) h6,
2448  :has(> [data-wf--utility-text-align-mobile--variant="right"]) p {
2449    text-align: right;
2450  }
2451}
2452</style></div><div class="hide w-embed"><style>
2453/* ================================================
2454   UTILITY / TEXT COLOR
2455   ================================================ */
2456
2457[data-wf--utility-text-color--variant] {
2458  display: none;
2459}
2460
2461:has(> [data-wf--utility-text-color--variant="scheme"]) h1,
2462:has(> [data-wf--utility-text-color--variant="scheme"]) h2,
2463:has(> [data-wf--utility-text-color--variant="scheme"]) h3,
2464:has(> [data-wf--utility-text-color--variant="scheme"]) h4,
2465:has(> [data-wf--utility-text-color--variant="scheme"]) h5,
2466:has(> [data-wf--utility-text-color--variant="scheme"]) h6 {
2467  color: var(--scheme-heading);
2468}
2469
2470:has(> [data-wf--utility-text-color--variant="scheme"]) p,
2471:has(> [data-wf--utility-text-color--variant="scheme"]) li,
2472:has(> [data-wf--utility-text-color--variant="scheme"]) span,
2473:has(> [data-wf--utility-text-color--variant="scheme"]) label {
2474  color: var(--scheme-paragraph);
2475}
2476
2477:has(> [data-wf--utility-text-color--variant="inverse"]),
2478:has(> [data-wf--utility-text-color--variant="inverse"]) h1,
2479:has(> [data-wf--utility-text-color--variant="inverse"]) h2,
2480:has(> [data-wf--utility-text-color--variant="inverse"]) h3,
2481:has(> [data-wf--utility-text-color--variant="inverse"]) h4,
2482:has(> [data-wf--utility-text-color--variant="inverse"]) h5,
2483:has(> [data-wf--utility-text-color--variant="inverse"]) h6,
2484:has(> [data-wf--utility-text-color--variant="inverse"]) p {
2485  color: var(--_semantic-tokens---text--text-inverse);
2486}
2487
2488:has(> [data-wf--utility-text-color--variant="primary"]),
2489:has(> [data-wf--utility-text-color--variant="primary"]) h1,
2490:has(> [data-wf--utility-text-color--variant="primary"]) h2,
2491:has(> [data-wf--utility-text-color--variant="primary"]) h3,
2492:has(> [data-wf--utility-text-color--variant="primary"]) h4,
2493:has(> [data-wf--utility-text-color--variant="primary"]) h5,
2494:has(> [data-wf--utility-text-color--variant="primary"]) h6,
2495:has(> [data-wf--utility-text-color--variant="primary"]) p {
2496  color: var(--_semantic-tokens---text--text-primary);
2497}
2498
2499:has(> [data-wf--utility-text-color--variant="secondary"]),
2500:has(> [data-wf--utility-text-color--variant="secondary"]) h1,
2501:has(> [data-wf--utility-text-color--variant="secondary"]) h2,
2502:has(> [data-wf--utility-text-color--variant="secondary"]) h3,
2503:has(> [data-wf--utility-text-color--variant="secondary"]) h4,
2504:has(> [data-wf--utility-text-color--variant="secondary"]) h5,
2505:has(> [data-wf--utility-text-color--variant="secondary"]) h6,
2506:has(> [data-wf--utility-text-color--variant="secondary"]) p {
2507  color: var(--_semantic-tokens---text--text-secondary);
2508}
2509
2510:has(> [data-wf--utility-text-color--variant="tertiary"]),
2511:has(> [data-wf--utility-text-color--variant="tertiary"]) h1,
2512:has(> [data-wf--utility-text-color--variant="tertiary"]) h2,
2513:has(> [data-wf--utility-text-color--variant="tertiary"]) h3,
2514:has(> [data-wf--utility-text-color--variant="tertiary"]) h4,
2515:has(> [data-wf--utility-text-color--variant="tertiary"]) h5,
2516:has(> [data-wf--utility-text-color--variant="tertiary"]) h6,
2517:has(> [data-wf--utility-text-color--variant="tertiary"]) p {
2518  color: var(--_semantic-tokens---text--text-tertiary);
2519}
2520
2521:has(> [data-wf--utility-text-color--variant="brand"]),
2522:has(> [data-wf--utility-text-color--variant="brand"]) h1,
2523:has(> [data-wf--utility-text-color--variant="brand"]) h2,
2524:has(> [data-wf--utility-text-color--variant="brand"]) h3,
2525:has(> [data-wf--utility-text-color--variant="brand"]) h4,
2526:has(> [data-wf--utility-text-color--variant="brand"]) h5,
2527:has(> [data-wf--utility-text-color--variant="brand"]) h6,
2528:has(> [data-wf--utility-text-color--variant="brand"]) p {
2529  color: var(--_semantic-tokens---text--text-brand);
2530}
2531</style></div><div class="hide w-embed"><style>
2532/* ================================================
2533   UTILITY / TEXT SIZE
2534   ================================================ */
2535
2536[data-wf--utility-text-size--variant] {
2537  display: none;
2538}
2539
2540:has(> [data-wf--utility-text-size--variant="display"]),
2541:has(> [data-wf--utility-text-size--variant="display"]) h1,
2542:has(> [data-wf--utility-text-size--variant="display"]) h2,
2543:has(> [data-wf--utility-text-size--variant="display"]) h3,
2544:has(> [data-wf--utility-text-size--variant="display"]) h4,
2545:has(> [data-wf--utility-text-size--variant="display"]) h5,
2546:has(> [data-wf--utility-text-size--variant="display"]) h6,
2547:has(> [data-wf--utility-text-size--variant="display"]) p {
2548  font-size: var(--_typography---heading-sizes--display);
2549  line-height: var(--_typography---line-height--display);
2550  letter-spacing: var(--_typography---letter-spacing--display);
2551}
2552
2553:has(> [data-wf--utility-text-size--variant="h1"]),
2554:has(> [data-wf--utility-text-size--variant="h1"]) h1,
2555:has(> [data-wf--utility-text-size--variant="h1"]) h2,
2556:has(> [data-wf--utility-text-size--variant="h1"]) h3,
2557:has(> [data-wf--utility-text-size--variant="h1"]) h4,
2558:has(> [data-wf--utility-text-size--variant="h1"]) h5,
2559:has(> [data-wf--utility-text-size--variant="h1"]) h6,
2560:has(> [data-wf--utility-text-size--variant="h1"]) p {
2561  font-size: var(--_typography---heading-sizes--h1);
2562  line-height: var(--_typography---line-height--h1);
2563  letter-spacing: var(--_typography---letter-spacing--h1);
2564}
2565
2566:has(> [data-wf--utility-text-size--variant="h2"]),
2567:has(> [data-wf--utility-text-size--variant="h2"]) h1,
2568:has(> [data-wf--utility-text-size--variant="h2"]) h2,
2569:has(> [data-wf--utility-text-size--variant="h2"]) h3,
2570:has(> [data-wf--utility-text-size--variant="h2"]) h4,
2571:has(> [data-wf--utility-text-size--variant="h2"]) h5,
2572:has(> [data-wf--utility-text-size--variant="h2"]) h6,
2573:has(> [data-wf--utility-text-size--variant="h2"]) p {
2574  font-size: var(--_typography---heading-sizes--h2);
2575  line-height: var(--_typography---line-height--h2);
2576  letter-spacing: var(--_typography---letter-spacing--h2);
2577}
2578
2579:has(> [data-wf--utility-text-size--variant="h3"]),
2580:has(> [data-wf--utility-text-size--variant="h3"]) h1,
2581:has(> [data-wf--utility-text-size--variant="h3"]) h2,
2582:has(> [data-wf--utility-text-size--variant="h3"]) h3,
2583:has(> [data-wf--utility-text-size--variant="h3"]) h4,
2584:has(> [data-wf--utility-text-size--variant="h3"]) h5,
2585:has(> [data-wf--utility-text-size--variant="h3"]) h6,
2586:has(> [data-wf--utility-text-size--variant="h3"]) p {
2587  font-size: var(--_typography---heading-sizes--h3);
2588  line-height: var(--_typography---line-height--h3);
2589  letter-spacing: var(--_typography---letter-spacing--h3);
2590}
2591
2592:has(> [data-wf--utility-text-size--variant="h4"]),
2593:has(> [data-wf--utility-text-size--variant="h4"]) h1,
2594:has(> [data-wf--utility-text-size--variant="h4"]) h2,
2595:has(> [data-wf--utility-text-size--variant="h4"]) h3,
2596:has(> [data-wf--utility-text-size--variant="h4"]) h4,
2597:has(> [data-wf--utility-text-size--variant="h4"]) h5,
2598:has(> [data-wf--utility-text-size--variant="h4"]) h6,
2599:has(> [data-wf--utility-text-size--variant="h4"]) p {
2600  font-size: var(--_typography---heading-sizes--h4);
2601  line-height: var(--_typography---line-height--h4);
2602  letter-spacing: var(--_typography---letter-spacing--h4);
2603}
2604
2605:has(> [data-wf--utility-text-size--variant="h5"]),
2606:has(> [data-wf--utility-text-size--variant="h5"]) h1,
2607:has(> [data-wf--utility-text-size--variant="h5"]) h2,
2608:has(> [data-wf--utility-text-size--variant="h5"]) h3,
2609:has(> [data-wf--utility-text-size--variant="h5"]) h4,
2610:has(>
2610 [data-wf--utility-text-size--variant="h5"]) h5,
2611:has(> [data-wf--utility-text-size--variant="h5"]) h6,
2612:has(> [data-wf--utility-text-size--variant="h5"]) p {
2613  font-size: var(--_typography---heading-sizes--h5);
2614  line-height: var(--_typography---line-height--h5);
2615  letter-spacing: var(--_typography---letter-spacing--h5);
2616}
2617
2618:has(> [data-wf--utility-text-size--variant="h6"]),
2619:has(> [data-wf--utility-text-size--variant="h6"]) h1,
2620:has(> [data-wf--utility-text-size--variant="h6"]) h2,
2621:has(> [data-wf--utility-text-size--variant="h6"]) h3,
2622:has(> [data-wf--utility-text-size--variant="h6"]) h4,
2623:has(> [data-wf--utility-text-size--variant="h6"]) h5,
2624:has(> [data-wf--utility-text-size--variant="h6"]) h6,
2625:has(> [data-wf--utility-text-size--variant="h6"]) p {
2626  font-size: var(--_typography---heading-sizes--h6);
2627  line-height: var(--_typography---line-height--h6);
2628  letter-spacing: var(--_typography---letter-spacing--h6);
2629}
2630
2631:has(> [data-wf--utility-text-size--variant="text-large"]),
2632:has(> [data-wf--utility-text-size--variant="text-large"]) h1,
2633:has(> [data-wf--utility-text-size--variant="text-large"]) h2,
2634:has(> [data-wf--utility-text-size--variant="text-large"]) h3,
2635:has(> [data-wf--utility-text-size--variant="text-large"]) h4,
2636:has(> [data-wf--utility-text-size--variant="text-large"]) h5,
2637:has(> [data-wf--utility-text-size--variant="text-large"]) h6,
2638:has(> [data-wf--utility-text-size--variant="text-large"]) p {
2639  font-size: var(--_typography---body-sizes--text-large);
2640  line-height: var(--_typography---line-height--paragraph);
2641  letter-spacing: var(--_typography---letter-spacing--paragraph);
2642}
2643
2644:has(> [data-wf--utility-text-size--variant="text-medium"]),
2645:has(> [data-wf--utility-text-size--variant="text-medium"]) h1,
2646:has(> [data-wf--utility-text-size--variant="text-medium"]) h2,
2647:has(> [data-wf--utility-text-size--variant="text-medium"]) h3,
2648:has(> [data-wf--utility-text-size--variant="text-medium"]) h4,
2649:has(> [data-wf--utility-text-size--variant="text-medium"]) h5,
2650:has(> [data-wf--utility-text-size--variant="text-medium"]) h6,
2651:has(> [data-wf--utility-text-size--variant="text-medium"]) p {
2652  font-size: var(--_typography---body-sizes--text-medium);
2653  line-height: var(--_typography---line-height--paragraph);
2654  letter-spacing: var(--_typography---letter-spacing--paragraph);
2655}
2656
2657:has(> [data-wf--utility-text-size--variant="text-regular"]),
2658:has(> [data-wf--utility-text-size--variant="text-regular"]) h1,
2659:has(> [data-wf--utility-text-size--variant="text-regular"]) h2,
2660:has(> [data-wf--utility-text-size--variant="text-regular"]) h3,
2661:has(> [data-wf--utility-text-size--variant="text-regular"]) h4,
2662:has(> [data-wf--utility-text-size--variant="text-regular"]) h5,
2663:has(> [data-wf--utility-text-size--variant="text-regular"]) h6,
2664:has(> [data-wf--utility-text-size--variant="text-regular"]) p {
2665  font-size: var(--_typography---body-sizes--text-regular);
2666  line-height: var(--_typography---line-height--paragraph);
2667  letter-spacing: var(--_typography---letter-spacing--paragraph);
2668}
2669
2670:has(> [data-wf--utility-text-size--variant="text-small"]),
2671:has(> [data-wf--utility-text-size--variant="text-small"]) h1,
2672:has(> [data-wf--utility-text-size--variant="text-small"]) h2,
2673:has(> [data-wf--utility-text-size--variant="text-small"]) h3,
2674:has(> [data-wf--utility-text-size--variant="text-small"]) h4,
2675:has(> [data-wf--utility-text-size--variant="text-small"]) h5,
2676:has(> [data-wf--utility-text-size--variant="text-small"]) h6,
2677:has(> [data-wf--utility-text-size--variant="text-small"]) p {
2678  font-size: var(--_typography---body-sizes--text-small);
2679  line-height: var(--_typography---line-height--paragraph);
2680  letter-spacing: var(--_typography---letter-spacing--paragraph);
2681}
2682
2683:has(> [data-wf--utility-text-size--variant="text-tiny"]),
2684:has(> [data-wf--utility-text-size--variant="text-tiny"]) h1,
2685:has(> [data-wf--utility-text-size--variant="text-tiny"]) h2,
2686:has(> [data-wf--utility-text-size--variant="text-tiny"]) h3,
2687:has(> [data-wf--utility-text-size--variant="text-tiny"]) h4,
2688:has(> [data-wf--utility-text-size--variant="text-tiny"]) h5,
2689:has(> [data-wf--utility-text-size--variant="text-tiny"]) h6,
2690:has(> [data-wf--utility-text-size--variant="text-tiny"]) p {
2691  font-size: var(--_typography---body-sizes--text-tiny);
2692  line-height: var(--_typography---line-height--paragraph);
2693  letter-spacing: var(--_typography---letter-spacing--paragraph);
2694}
2695
2696/* ================================================
2697   UTILITY / TEXT SIZE (MOBILE)
2698   Overrides font size, line height, and letter
2699   spacing at 767px and below. Place as a direct
2700   child of the component wrapper.
2701   ================================================ */
2702
2703[data-wf--utility-text-size-mobile--variant] {
2704  display: none;
2705}
2706
2707@media (max-width: 767px) {
2708  /* --- Display --- */
2709  :has(> [data-wf--utility-text-size-mobile--variant="display"]),
2710  :has(> [data-wf--utility-text-size-mobile--variant="display"]) h1,
2711  :has(> [data-wf--utility-text-size-mobile--variant="display"]) h2,
2712  :has(> [data-wf--utility-text-size-mobile--variant="display"]) h3,
2713  :has(> [data-wf--utility-text-size-mobile--variant="display"]) h4,
2714  :has(> [data-wf--utility-text-size-mobile--variant="display"]) h5,
2715  :has(> [data-wf--utility-text-size-mobile--variant="display"]) h6,
2716  :has(> [data-wf--utility-text-size-mobile--variant="display"]) p {
2717    font-size: var(--_typography---heading-sizes--display);
2718    line-height: var(--_typography---line-height--display);
2719    letter-spacing: var(--_typography---letter-spacing--display);
2720  }
2721
2722  /* --- H1 --- */
2723  :has(> [data-wf--utility-text-size-mobile--variant="h1"]),
2724  :has(> [data-wf--utility-text-size-mobile--variant="h1"]) h1,
2725  :has(> [data-wf--utility-text-size-mobile--variant="h1"]) h2,
2726  :has(> [data-wf--utility-text-size-mobile--variant="h1"]) h3,
2727  :has(> [data-wf--utility-text-size-mobile--variant="h1"]) h4,
2728  :has(> [data-wf--utility-text-size-mobile--variant="h1"]) h5,
2729  :has(> [data-wf--utility-text-size-mobile--variant="h1"]) h6,
2730  :has(> [data-wf--utility-text-size-mobile--variant="h1"]) p {
2731    font-size: var(--_typography---heading-sizes--h1);
2732    line-height: var(--_typography---line-height--h1);
2733    letter-spacing: var(--_typography---letter-spacing--h1);
2734  }
2735
2736  /* --- H2 --- */
2737  :has(> [data-wf--utility-text-size-mobile--variant="h2"]),
2738  :has(> [data-wf--utility-text-size-mobile--variant="h2"]) h1,
2739  :has(> [data-wf--utility-text-size-mobile--variant="h2"]) h2,
2740  :has(> [data-wf--utility-text-size-mobile--variant="h2"]) h3,
2741  :has(> [data-wf--utility-text-size-mobile--variant="h2"]) h4,
2742  :has(> [data-wf--utility-text-size-mobile--variant="h2"]) h5,
2743  :has(> [data-wf--utility-text-size-mobile--variant="h2"]) h6,
2744  :has(> [data-wf--utility-text-size-mobile--variant="h2"]) p {
2745    font-size: var(--_typography---heading-sizes--h2);
2746    line-height: var(--_typography---line-height--h2);
2747    letter-spacing: var(--_typography---letter-spacing--h2);
2748  }
2749
2750  /* --- H3 --- */
2751  :has(> [data-wf--utility-text-size-mobile--variant="h3"]),
2752  :has(> [data-wf--utility-text-size-mobile--variant="h3"]) h1,
2753  :has(> [data-wf--utility-text-size-mobile--variant="h3"]) h2,
2754  :has(> [data-wf--utility-text-size-mobile--variant="h3"]) h3,
2755  :has(> [data-wf--utility-text-size-mobile--variant="h3"]) h4,
2756  :has(> [data-wf--utility-text-size-mobile--variant="h3"]) h5,
2757  :has(> [data-wf--utility-text-size-mobile--variant="h3"]) h6,
2758  :has(> [data-wf--utility-text-size-mobile--variant="h3"]) p {
2759    font-size: var(--_typography---heading-sizes--h3);
2760    line-height: var(--_typography---line-height--h3);
2761    letter-spacing: var(--_typography---letter-spacing--h3);
2762  }
2763
2764  /* --- H4 --- */
2765  :has(> [data-wf--utility-text-size-mobile--variant="h4"]),
2766  :has(> [data-wf--utility-text-size-mobile--variant="h4"]) h1,
2767  :has(> [data-wf--utility-text-size-mobile--variant="h4"]) h2,
2768  :has(> [data-wf--utility-text-size-mobile--variant="h4"]) h3,
2769  :has(> [data-wf--utility-text-size-mobile--variant="h4"]) h4,
2770  :has(> [data-wf--utility-text-size-mobile--variant="h4"]) h5,
2771  :has(> [data-wf--utility-text-size-mobile--variant="h4"]) h6,
2772  :has(> [data-wf--utility-text-size-mobile--variant="h4"]) p {
2773    font-size: var(--_typography---heading-sizes--h4);
2774    line-height: var(--_typography---line-height--h4);
2775    letter-spacing: var(--_typography---letter-spacing--h4);
2776  }
2777
2778  /* --- H5 --- */
2779  :has(> [data-wf--utility-text-size-mobile--variant="h5"]),
2780  :has(> [data-wf--utility-text-size-mobile--variant="h5"]) h1,
2781  :has(> [data-wf--utility-text-size-mobile--variant="h5"]) h2,
2782  :has(> [data-wf--utility-text-size-mobile--variant="h5"]) h3,
2783  :has(> [data-wf--utility-text-size-mobile--variant="h5"]) h4,
2784  :has(>
2784 [data-wf--utility-text-size-mobile--variant="h5"]) h5,
2785  :has(> [data-wf--utility-text-size-mobile--variant="h5"]) h6,
2786  :has(> [data-wf--utility-text-size-mobile--variant="h5"]) p {
2787    font-size: var(--_typography---heading-sizes--h5);
2788    line-height: var(--_typography---line-height--h5);
2789    letter-spacing: var(--_typography---letter-spacing--h5);
2790  }
2791
2792  /* --- H6 --- */
2793  :has(> [data-wf--utility-text-size-mobile--variant="h6"]),
2794  :has(> [data-wf--utility-text-size-mobile--variant="h6"]) h1,
2795  :has(> [data-wf--utility-text-size-mobile--variant="h6"]) h2,
2796  :has(> [data-wf--utility-text-size-mobile--variant="h6"]) h3,
2797  :has(> [data-wf--utility-text-size-mobile--variant="h6"]) h4,
2798  :has(> [data-wf--utility-text-size-mobile--variant="h6"]) h5,
2799  :has(> [data-wf--utility-text-size-mobile--variant="h6"]) h6,
2800  :has(> [data-wf--utility-text-size-mobile--variant="h6"]) p {
2801    font-size: var(--_typography---heading-sizes--h6);
2802    line-height: var(--_typography---line-height--h6);
2803    letter-spacing: var(--_typography---letter-spacing--h6);
2804  }
2805
2806  /* --- Large --- */
2807  :has(> [data-wf--utility-text-size-mobile--variant="large"]),
2808  :has(> [data-wf--utility-text-size-mobile--variant="large"]) h1,
2809  :has(> [data-wf--utility-text-size-mobile--variant="large"]) h2,
2810  :has(> [data-wf--utility-text-size-mobile--variant="large"]) h3,
2811  :has(> [data-wf--utility-text-size-mobile--variant="large"]) h4,
2812  :has(> [data-wf--utility-text-size-mobile--variant="large"]) h5,
2813  :has(> [data-wf--utility-text-size-mobile--variant="large"]) h6,
2814  :has(> [data-wf--utility-text-size-mobile--variant="large"]) p {
2815    font-size: var(--_typography---body-sizes--text-large);
2816    line-height: var(--_typography---line-height--paragraph);
2817    letter-spacing: var(--_typography---letter-spacing--paragraph);
2818  }
2819
2820  /* --- Medium --- */
2821  :has(> [data-wf--utility-text-size-mobile--variant="medium"]),
2822  :has(> [data-wf--utility-text-size-mobile--variant="medium"]) h1,
2823  :has(> [data-wf--utility-text-size-mobile--variant="medium"]) h2,
2824  :has(> [data-wf--utility-text-size-mobile--variant="medium"]) h3,
2825  :has(> [data-wf--utility-text-size-mobile--variant="medium"]) h4,
2826  :has(> [data-wf--utility-text-size-mobile--variant="medium"]) h5,
2827  :has(> [data-wf--utility-text-size-mobile--variant="medium"]) h6,
2828  :has(> [data-wf--utility-text-size-mobile--variant="medium"]) p {
2829    font-size: var(--_typography---body-sizes--text-medium);
2830    line-height: var(--_typography---line-height--paragraph);
2831    letter-spacing: var(--_typography---letter-spacing--paragraph);
2832  }
2833
2834  /* --- Small --- */
2835  :has(> [data-wf--utility-text-size-mobile--variant="small"]),
2836  :has(> [data-wf--utility-text-size-mobile--variant="small"]) h1,
2837  :has(> [data-wf--utility-text-size-mobile--variant="small"]) h2,
2838  :has(> [data-wf--utility-text-size-mobile--variant="small"]) h3,
2839  :has(> [data-wf--utility-text-size-mobile--variant="small"]) h4,
2840  :has(> [data-wf--utility-text-size-mobile--variant="small"]) h5,
2841  :has(> [data-wf--utility-text-size-mobile--variant="small"]) h6,
2842  :has(> [data-wf--utility-text-size-mobile--variant="small"]) p {
2843    font-size: var(--_typography---body-sizes--text-small);
2844    line-height: var(--_typography---line-height--paragraph);
2845    letter-spacing: var(--_typography---letter-spacing--paragraph);
2846  }
2847
2848  /* --- Tiny --- */
2849  :has(> [data-wf--utility-text-size-mobile--variant="tiny"]),
2850  :has(> [data-wf--utility-text-size-mobile--variant="tiny"]) h1,
2851  :has(> [data-wf--utility-text-size-mobile--variant="tiny"]) h2,
2852  :has(> [data-wf--utility-text-size-mobile--variant="tiny"]) h3,
2853  :has(> [data-wf--utility-text-size-mobile--variant="tiny"]) h4,
2854  :has(> [data-wf--utility-text-size-mobile--variant="tiny"]) h5,
2855  :has(> [data-wf--utility-text-size-mobile--variant="tiny"]) h6,
2856  :has(> [data-wf--utility-text-size-mobile--variant="tiny"]) p {
2857    font-size: var(--_typography---body-sizes--text-tiny);
2858    line-height: var(--_typography---line-height--paragraph);
2859    letter-spacing: var(--_typography---letter-spacing--paragraph);
2860  }
2861}
2862</style></div><div class="hide w-embed"><style>
2863/* ================================================
2864   UTILITY / TEXT TRANSFORM
2865   ================================================ */
2866[data-wf--utility-text-transform--variant] {
2867  display: none;
2868}
2869:has(> [data-wf--utility-text-transform--variant="uppercase"]),
2870:has(> [data-wf--utility-text-transform--variant="uppercase"]) h1,
2871:has(> [data-wf--utility-text-transform--variant="uppercase"]) h2,
2872:has(> [data-wf--utility-text-transform--variant="uppercase"]) h3,
2873:has(> [data-wf--utility-text-transform--variant="uppercase"]) h4,
2874:has(> [data-wf--utility-text-transform--variant="uppercase"]) h5,
2875:has(> [data-wf--utility-text-transform--variant="uppercase"]) h6,
2876:has(> [data-wf--utility-text-transform--variant="uppercase"]) p {
2877  text-transform: uppercase;
2878}
2879:has(> [data-wf--utility-text-transform--variant="lowercase"]),
2880:has(> [data-wf--utility-text-transform--variant="lowercase"]) h1,
2881:has(> [data-wf--utility-text-transform--variant="lowercase"]) h2,
2882:has(> [data-wf--utility-text-transform--variant="lowercase"]) h3,
2883:has(> [data-wf--utility-text-transform--variant="lowercase"]) h4,
2884:has(> [data-wf--utility-text-transform--variant="lowercase"]) h5,
2885:has(> [data-wf--utility-text-transform--variant="lowercase"]) h6,
2886:has(> [data-wf--utility-text-transform--variant="lowercase"]) p {
2887  text-transform: lowercase;
2888}
2889:has(> [data-wf--utility-text-transform--variant="capitalize"]),
2890:has(> [data-wf--utility-text-transform--variant="capitalize"]) h1,
2891:has(> [data-wf--utility-text-transform--variant="capitalize"]) h2,
2892:has(> [data-wf--utility-text-transform--variant="capitalize"]) h3,
2893:has(> [data-wf--utility-text-transform--variant="capitalize"]) h4,
2894:has(> [data-wf--utility-text-transform--variant="capitalize"]) h5,
2895:has(> [data-wf--utility-text-transform--variant="capitalize"]) h6,
2896:has(> [data-wf--utility-text-transform--variant="capitalize"]) p {
2897  text-transform: capitalize;
2898}
2899:has(> [data-wf--utility-text-transform--variant="none"]),
2900:has(> [data-wf--utility-text-transform--variant="none"]) h1,
2901:has(> [data-wf--utility-text-transform--variant="none"]) h2,
2902:has(> [data-wf--utility-text-transform--variant="none"]) h3,
2903:has(> [data-wf--utility-text-transform--variant="none"]) h4,
2904:has(> [data-wf--utility-text-transform--variant="none"]) h5,
2905:has(> [data-wf--utility-text-transform--variant="none"]) h6,
2906:has(> [data-wf--utility-text-transform--variant="none"]) p {
2907  text-transform: none;
2908}
2909</style></div><div class="hide w-embed"><style>
2910/* ================================================
2911   UTILITY / TEXT WEIGHT
2912   ================================================ */
2913
2914[data-wf--utility-text-weight--variant] {
2915  display: none;
2916}
2917
2918:has(> [data-wf--utility-text-weight--variant="light"]),
2919:has(> [data-wf--utility-text-weight--variant="light"]) h1,
2920:has(> [data-wf--utility-text-weight--variant="light"]) h2,
2921:has(> [data-wf--utility-text-weight--variant="light"]) h3,
2922:has(> [data-wf--utility-text-weight--variant="light"]) h4,
2923:has(> [data-wf--utility-text-weight--variant="light"]) h5,
2924:has(> [data-wf--utility-text-weight--variant="light"]) h6,
2925:has(> [data-wf--utility-text-weight--variant="light"]) p {
2926  font-weight: var(--_typography---font-weights--light);
2927}
2928
2929:has(> [data-wf--utility-text-weight--variant="regular"]),
2930:has(> [data-wf--utility-text-weight--variant="regular"]) h1,
2931:has(> [data-wf--utility-text-weight--variant="regular"]) h2,
2932:has(> [data-wf--utility-text-weight--variant="regular"]) h3,
2933:has(> [data-wf--utility-text-weight--variant="regular"]) h4,
2934:has(> [data-wf--utility-text-weight--variant="regular"]) h5,
2935:has(> [data-wf--utility-text-weight--variant="regular"]) h6,
2936:has(> [data-wf--utility-text-weight--variant="regular"]) p {
2937  font-weight: var(--_typography---font-weights--regular);
2938}
2939
2940:has(> [data-wf--utility-text-weight--variant="medium"]),
2941:has(> [data-wf--utility-text-weight--variant="medium"]) h1,
2942:has(> [data-wf--utility-text-weight--variant="medium"]) h2,
2943:has(> [data-wf--utility-text-weight--variant="medium"]) h3,
2944:has(> [data-wf--utility-text-weight--variant="medium"]) h4,
2945:has(> [data-wf--utility-text-weight--variant="medium"]) h5,
2946:has(> [data-wf--utility-text-weight--variant="medium"]) h6,
2947:has(> [data-wf--utility-text-weight--variant="medium"]) p {
2948  font-weight: var(--_typography---font-weights--medium);
2949}
2950
2951:has(> [data-wf--utility-text-weight--variant="semibold"]),
2952:has(> [data-wf--utility-text-weight--variant="semibold"]) h1,
2953:has(> [data-wf--utility-text-weight--variant="semibold"]) h2,
2954:has(> [data-wf--utility-text-weight--variant="semibold"]) h3,
2955:has(> [data-wf--utility-text-weight--variant="semibold"]) h4,
2956:has(> [data-wf--utility-text-weight--variant="semibold"]) h5,
2957:has(> [data-wf--utility-text-weight--variant="semibold"]) h6,
2958:has(> [data-wf--utility-text-weight--variant="semibold"]) p {
2959  font-weight: var(--_typography---font-weights--semibold);
2960}
2961
2962:has(> [data-wf--utility-text-weight--variant="bold"]),
2963:has(> [data-wf--utility-text-weight--variant="bold"]) h1,
2964:has(> [data-wf--utility-text-weight--variant="bold"]) h2,
2965:has(> [data-wf--utility-text-weight--variant="bold"]) h3,
2966:has(> [data-wf--utility-text-weight--variant="bold"]) h4,
2967:has(> [data-wf--utility-text-weight--variant="bold"]) h5,
2968:has(> [data-wf--utility-text-weight--variant="bold"]) h6,
2969:has(> [data-wf--utility-text-weight--variant="bold"]) p {
2970  font-weight: var(--_typography---font-weights--bold);
2971}
2972</style></div><div class="hide w-embed"><style>
2973/* ================================================
2974   UTILITY / VISIBILITY
2975   Controls whether the parent element is visible
2976   at desktop or mobile breakpoints. Drop this
2977   component inside any element.
2978
2979   Variants:
2980   - Base (always visible)
2981   - Hide Tablet (hidden at 991px and below)
2982   - Hide Mobile (hidden at 767px and below)
2983   - Show Tablet (hidden on desktop, visible at 991px and below)
2984   - Show Mobile (hidden on desktop, visible at 767px and below)
2985   ================================================ */
2986
2987[data-wf--utility-visibility--variant] {
2988  display: none;
2989}
2990
2991/* Hide Tablet: visible on desktop, hidden at 991px and below */
2992@media (max-width: 991px) {
2993  :has(> [data-wf--utility-visibility--variant="hide-tablet"]) {
2994    display: none !important;
2995  }
2996}
2997
2998/* Hide Mobile: visible on desktop, hidden at 767px and below */
2999@media (max-width: 767px) {
3000  :has(> [data-wf--utility-visibility--variant="hide-mobile"]) {
3001    display: none !important;
3002  }
3003}
3004
3005/* Show Tablet: hidden on desktop, visible at 991px and below */
3006:has(> [data-wf--utility-visibility--variant="show-tablet"]) {
3007  display: none !important;
3008}
3009
3010@media (max-width: 991px) {
3011  :has(> [data-wf--utility-visibility--variant="show-tablet"]) {
3012    display: revert !important;
3013  }
3014}
3015
3016/* Show Mobile: hidden on desktop, visible at 767px and below */
3017:has(> [data-wf--utility-visibility--variant="show-mobile"]) {
3018  display: none !important;
3019}
3020
3021@media (max-width: 767px) {
3022  :has(> [data-wf--utility-visibility--variant="show-mobile"]) {
3023    display: revert !important;
3024  }
3025}
3026</style></div><div class="hide w-embed"><style>
3027/* ================================================
3028   UTILITY / WIDTH
3029   ================================================ */
3030[data-wf--utility-width--variant] {
3031  display: none;
3032}
3033:has(> [data-wf--utility-width--variant="10"]) {
3034  width: 10%;
3035}
3036:has(> [data-wf--utility-width--variant="20"]) {
3037  width: 20%;
3038}
3039:has(> [data-wf--utility-width--variant="30"]) {
3040  width: 30%;
3041}
3042:has(> [data-wf--utility-width--variant="40"]) {
3043  width: 40%;
3044}
3045:has(> [data-wf--utility-width--variant="50"]) {
3046  width: 50%;
3047}
3048:has(> [data-wf--utility-width--variant="60"]) {
3049  width: 60%;
3050}
3051:has(> [data-wf--utility-width--variant="70"]) {
3052  width: 70%;
3053}
3054:has(> [data-wf--utility-width--variant="80"]) {
3055  width: 80%;
3056}
3057:has(> [data-wf--utility-width--variant="90"]) {
3058  width: 90%;
3059}
3060:has(> [data-wf--utility-width--variant="100"]) {
3061  width: 100%;
3062}
3063</style></div><div class="hide w-embed"><style>
3064/* ================================================
3065   UTILITY / Z-INDEX
3066   ================================================ */
3067
3068[data-wf--utility-z-index--variant] {
3069  display: none;
3070}
3071
3072:has(> [data-wf--utility-z-index--variant="-1"]) {
3073  z-index: -1;
3074}
3075:has(> [data-wf--utility-z-index--variant="0"]) {
3076  z-index: 0;
3077}
3078:has(> [data-wf--utility-z-index--variant="1"]) {
3079  z-index: 1;
3080}
3081:has(> [data-wf--utility-z-index--variant="2"]) {
3082  z-index: 2;
3083}
3084</style></div></div></div><div data-animation="default" class="navbar w-nav" data-easing2="ease" fs-scrolldisable-element="smart-nav" data-easing="ease" data-collapse="medium" data-w-id="2e1679be-910f-61c1-0bad-b407f4527ee1" role="banner" data-duration="400"><div class="padding-global"><div class="container-xlarge"><div class="navbar_component"><div class="navbar_links-wrapper"><a href="/" class="navbar_logo-link w-nav-brand"><svg xmlns="http://www.w3.org/2000/svg" width="100%" viewBox="0 0 139 32" fill="none" class="navbar_logo"><path d="M8.37604 14.0551V15.9296H8.37698V19.2707C8.37698 20.134 8.84126 20.9382 9.58863 21.3701L10.8599 22.1048L12.4833 21.1678L10.4012 19.9646C10.1543 19.8218 10.0008 19.5561 10.0008 19.2707V15.8832V13.1176L10.0003 6.30873C10.0003 6.09466 10.0839 5.89326 10.2351 5.7421C10.3862 5.59094 10.5876 5.50737 10.8017 5.50737H17.4111C17.8528 5.50737 18.2124 5.86697 18.2124 6.30873V11.2417L19.8363 12.1792V6.30826C19.8353 4.97126 18.7476 3.88354 17.4106 3.88354H10.8012C10.1534 3.88354 9.5445 4.13564 9.08632 4.59382C8.62813 5.05201 8.37604 5.66088 8.37604 6.30873L8.37698 14.0547H8.37651L8.37604 14.0551Z" fill="#0A68C6"></path><path d="M15.7276 23.0428L18.6242 21.3706C19.372 20.9387 19.8367 20.1341 19.8367 19.2703V17.8066L18.2129 16.8691V19.2703C18.2129 19.5557 18.0594 19.8219 17.8125 19.9646L15.0451 21.5622V21.5631L11.4383 23.6456V23.6446L6.5743 26.4524C6.38887 26.5595 6.17292 26.5876 5.96636 26.5327C5.75934 26.4773 5.58658 26.3449 5.47954 26.1595L2.17508 20.436C1.95397 20.0533 2.08589 19.5618 2.46849 19.3412L6.75363 16.8672V14.9927L1.65681 17.9352C0.498676 18.6037 0.100582 20.0895 0.769079 21.2476L4.07354 26.9712C4.39746 27.5322 4.92043 27.9335 5.5462 28.1011C5.75511 28.157 5.9673 28.1847 6.17762 28.1847C6.59777 28.1847 7.01277 28.0744 7.38598 27.8589L14.1048 23.9798L15.7281 23.0428H15.7276Z" fill="#0A68C6"></path><path d="M26.5461 17.9352L19.8358 14.0571V14.0538L18.212 13.1163V13.1187L15.3192 11.4469C14.9451 11.23
308405 14.5254 11.1226 14.1062 11.1226C13.6869 11.1226 13.2677 11.2305 12.8936 11.4465L11.6232 12.1798V14.0543L13.7052 12.852C13.9526 12.7093 14.2597 12.7093 14.5071 12.852L18.212 14.9932L21.4756 16.878V16.879L25.7335 19.3398C26.1161 19.5609 26.2475 20.052 26.0264 20.4346L22.722 26.1586C22.6149 26.344 22.4422 26.4769 22.2352 26.5318C22.0281 26.5872 21.8122 26.5586 21.6267 26.4515L17.3501 23.9799L15.7267 24.9169L20.8146 27.8571C21.3756 28.181 22.0291 28.2674 22.6548 28.0998C23.2806 27.9322 23.8041 27.5308 24.128 26.9698L27.4324 21.2458C28.1009 20.0881 27.7028 18.6023 26.5456 17.9338L26.5461 17.9352Z" fill="#0A68C6"></path><path d="M133.985 22.8512C130.816 22.8512 128.988 20.6778 128.988 17.3466C128.988 13.9342 130.836 11.7607 133.924 11.7607C137.316 11.7607 138.941 14.2185 138.677 17.7122H131.039C131.06 20.0685 132.217 21.2466 133.985 21.2466C135.406 21.2466 136.381 20.495 136.625 19.3778H138.616C138.331 21.5512 136.442 22.8512 133.985 22.8512ZM133.924 13.3654C132.278 13.3654 131.222 14.381 131.06 16.2904H136.625C136.564 14.2591 135.467 13.3654 133.924 13.3654Z" fill="#252E37"></path><path d="M125.784 22.6685C124.017 22.6685 123.468 21.8763 123.468 20.4341V13.6295H121.437V11.9233H123.468V8.81552L125.56 8.57178V11.9233H127.937V13.6295H125.56V20.0482C125.56 20.7591 125.804 20.9419 126.475 20.9419H127.937V22.6685H125.784Z" fill="#252E37"></path><path d="M113.916 22.8513C111.296 22.8513 109.528 20.881 109.528 17.2857C109.528 13.6905 111.296 11.74
308405 113.916 11.7405C115.724 11.7405 117.064 12.6545 117.572 14.0358H117.694L117.775 11.9233H119.786V22.6685H117.694V20.5357H117.572C117.064 21.9169 115.724 22.8513 113.916 22.8513ZM114.647 21.1247C116.638 21.1247 117.674 19.5607 117.674 17.8951V16.6764C117.674 15.0311 116.638 13.4467 114.647 13.4467C112.86 13.4467 111.681 14.7467 111.681 17.2857C111.681 19.8044 112.86 21.1247 114.647 21.1247Z" fill="#252E37"></path><path d="M106.325 22.6685C104.557 22.6685 104.009 21.8763 104.009 20.4341V13.6295H101.978V11.9233H104.009V8.81552L106.101 8.57178V11.9233H108.478V13.6295H106.101V20.0482C106.101 20.7591 106.345 20.9419 107.015 20.9419H108.478V22.6685H106.325Z" fill="#252E37"></path><path d="M96.6211 22.8716C93.7977 22.8716 92.1118 21.4295 92.1118 19.2967H94.1836C94.1836 20.6982 95.1992 21.3482 96.6617 21.3482C98.1445 21.3482 98.9367 20.7592 98.9367 19.7639C98.9367 18.6467 98.2257 18.342 96.4383 18.0779C93.7367 17.692 92.3961 16.9811 92.3961 14.9702C92.3961 13.0202 94.1024 11.7202 96.6414 11.7202C99.221 11.7202 100.805 13.0405 100.846 15.092H98.7945C98.7742 13.7921 97.9211 13.2639 96.6008 13.2639C95.2805 13.2639 94.4883 13.853 94.4883 14.7671C94.4883 15.8233 95.3008 16.1483 97.1898 16.4123C99.6882 16.7577 101.049 17.4686 101.049 19.5811C101.049 21.6935 99.282 22.8716 96.6211 22.8716Z" fill="#252E37"></path><path d="M85.9809 22.8512C82.8122 22.8512 80.9841 20.6778 80.9841 17.3466C80.9841 13.9342 82.8325 11.7607 85.92 11.7607C89.3122 11.7607 90.9371 14.2185 90.6731 17.7122H83.0357C83.056 20.0685 84.2138 21.2466 85.9809 21.2466C87.4028 21.2466 88.3778 20.495 88.6215 19.3778H90.6121C90.3278 21.5512 88.4387 22.8512 85.9809 22.8512ZM85.92 13.3654C84.2747 13.3654 83.2185 14.381 83.056 16.2904H88.6215C88.5606 14.2591 87.4637 13.3654 85.92 13.3654Z" fill="#252E37"></path><path d="M74.1331 22.6685L70.2738 11.9233H72.5285L74.6816 18.5451L75.3722 20.8607H75.4534L76.1034 18.5451L78.2565 11.9233H80.5112L76.6925 22.6685H74.1331Z" fill="#252E37"></path><path d="M66.7985 10.278V7.86084H68.8907V10.278H66.7985ZM66.7985 22.6685V11.9233H68.8907V22.6685H66.7985Z" fill="#252E37"></path><path d="M62.5659 22.6685C60.7988 22.6685 60.2503 21.8763 60.2503 20.4341V13.6295H58.2191V11.9233H60.2503V8.81552L62.3425 8.57178V11.9233H64.719V13.6295H62.3425V20.0482C62.3425 20.7591 62.5862 20.9419 63.2566 20.9419H64.719V22.6685H62.5659Z" fill="#252E37"></path><path d="M52.582 22.8512C49.4336 22.8512 47.3618 20.6372 47.3618 17.306C47.3618 13.9748 49.4336 11.7607 52.6633 11.7607C55.2632 11.7607 57.1726 13.3248 57.3351 15.6404H55.3038C55.0601 14.2388 53.9835 13.5076 52.6023 13.5076C50.6117 13.5076 49.4945 15.031 49.4945 17.3263C49.4945 19.7435 50.7133 21.1044 52.582 21.1044C54.146 21.1044 55.182 20.1903 55.3445 18.8294H57.3757C57.2132 21.2669 55.2632 22.8512 52.582 22.8512Z" fill="#252E37"></path><path d="M39.3715 22.8513C36.7512 22.8513 34.984 20.881 34.984 17.2857C34.984 13.6905 36.7512 11.7405 39.3715 11.7405C41.1792 11.7405 42.5199 12.6545 43.0277 14.0358H43.1495L43.2308 11.9233H45.2417V22.6685H43.1495V20.5357H43.0277C42.5199 21.9169 41.1792 22.8513 39.3715 22.8513ZM40.1027 21.1247C42.0933 21.1247 43.1292 19.5607 43.1292 17.8951V16.6764C43.1292 15.0311 42.0933 13.4467 40.1027 13.4467C38.3152 13.4467 37.1371 14.7467 37.1371 17.2857C37.1371 19.8044 38.3152 21.1247 40.1027 21.1247Z" fill="#252E37"></path></svg></a></div><nav role="navigation" class="navbar_menu is-page-height-tablet w-nav-menu"><div class="navbar_links"><div data-hover="true" data-delay="0" data-w-id="ad3a9533-412f-b062-f6ff-538ce6d04617" class="navbar_dropdown w-dropdown"><div class="navbar-dropdown_toggle w-dropdown-toggle"><div>Products</div><div class="navbar-dropdown_icon"><svg xmlns="http://www.w3.org/2000/svg" width="100%" viewBox="0 0 16 16" fill="none" class="icon"><path d="M4 6L8 10L12 6" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"></path></svg></div></div><nav class="nav_dropdown-list _1 w-dropdown-list"><div class="nav-dropdown_content smaller"><div class="nav-dropdown_content-left"><a href="/curated-catalog" class="nav-dropdown_main w-inline-block"><div class="nav-dropdown_link-icon"><img src="https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb1/6a28ab54f3ba03dbe7f57d30_nav-catalog.png" loading="lazy" alt="" class="nav-dropdown-icon"/></div><div><p>Curated Catalog</p><div data-wf--utility-text-weight--variant="medium" class="hide"></div><div data-wf--utility-text-color--variant="primary" class="hide"></div><div data-wf--utility-text-align--variant="base" class="hide"></div><div data-wf--utility-text-size--variant="text-small" class="hide"></div><div data-wf--utility-max-width--variant="base" class="hide"></div><div data-wf--utility-font--variant="body" class="hide"></div><div data-wf--utility-text-align-mobile--variant="inherit" class="hide"></div></div><div><p>Your secure open source foundation</p><div data-wf--utility-text-weight--variant="default" class="hide"></div><div data-wf--utility-text-color--variant="secondary" class="hide"></div><div data-wf--utility-text-align--variant="center" class="hide"></div><div data-wf--utility-text-size--variant="text-tiny" class="hide"></div><div data-wf--utility-max-width--variant="base" class="hide"></div><div data-wf--utility-font--variant="body" class="hide"></div><div data-wf--utility-text-align-mobile--variant="inherit" class="hide"></div></div></a><a href="/activestate-library" class="nav-dropdown_main w-inline-block"><div class="nav-dropdown_link-icon"><img src="https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb1/6a28ab57c412067b98f4ccd3_nav-library.png" loading="lazy" alt="" class="nav-dropdown-icon"/></div><div><p>Library</p><div data-wf--utility-text-weight--variant="medium" class="hide"></div><div data-wf--utility-text-color--variant="primary" class="hide"></div><div data-wf--utility-text-align--variant="base" class="hide"></div><div data-wf--utility-text-size--variant="text-small" class="hide"></div><div data-wf--utility-max-width--variant="base" class="hide"></div><div data-wf--utility-font--variant="body" class="hide"></div><div data-wf--utility-text-align-mobile--variant="inherit" class="hide"></div></div><div><p>79M+ components</p><div data-wf--utility-text-weight--variant="default" class="hide"></div><div data-wf--utility-text-color--variant="secondary" class="hide"></div><div data-wf--utility-text-align--variant="center" class="hide"></div><div data-wf--utility-text-size--variant="text-tiny" class="hide"></div><div data-wf--utility-max-width--variant="base" class="hide"></div><div data-wf--utility-font--variant="body" class="hide"></div><div data-wf--utility-text-align-mobile--variant="inherit" class="hide"></div></div></a></div><div class="nav-dropdown_content-right"><a href="/integrations" class="nav-dropdown-link small w-inline-block"><div class="nav-dropdown_link-icon"><img src="https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb1/6a28ab59974dff5c6ff5f202_nav-integrations.png" loading="lazy" alt="" class="nav-dropdown-icon"/></div><div class="nav-dropdown_link-text"><div><p>Integrations</p><div data-wf--utility-text-weight--variant="medium" class="hide"></div><div data-wf--utility-text-color--variant="primary" class="hide"></div><div data-wf--utility-text-align--variant="base" class="hide"></div><div data-wf--utility-text-size--variant="text-small" class="hide"></div><div data-wf--utility-max-width--variant="base" class="hide"></div><div data-wf--utility-font--variant="body" class="hide"></div><div data-wf--utility-text-align-mobile--variant="inherit" class="hide"></div></div></div></a><a href="/supported-languages" class="nav-dropdown-link small w-inline-block"><div class="nav-dropdown_link-icon"><img src="https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb1/6a28ab5bd3cfb8b09ef519a5_Check%20icon.png" loading="lazy" alt="" class="nav-dropdown-icon"/></div><div class="nav-dropdown_link-text"><div><p>Supported Languages</p><div data-wf--utility-text-weight--variant="medium" class="hide"></div><div data-wf--utility-text-color--variant="primary" class="hide"></div><div data-wf--utility-text-align--variant="base" class="hide"></div><div data-wf--utility-text-size--variant="text-small" class="hide"></div><div data-wf--utility-max-width--variant="base" class="hide"></div><div data-wf--utility-font--variant="body" class="hide"></div><div data-wf--utility-text-align-mobile--variant="inherit" class="hide"></div></div></div></a><a href="/secure-containers" class="nav-dropdown-link small w-inline-block"><div class="nav-dropdown_link-icon"><img src="https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb1/6a28ab555e2da98d73d2d1e1_nav-container.png" loading="lazy" alt="" class="nav-dropdown-icon"/></div><div class="nav-dropdown_link-text"><div><p>Containers</p><div data-wf--utility-text-weight--variant="medium" class="hide"></div><div data-wf--utility-text-color--variant="primary" class="hide"></div><div data-wf--utility-text-align--variant="base" class="hide"></div><div data-wf--utility-text-size--variant="text-small" class="hide"></div><div data-wf--utility-max-width--variant="base" class="hide"></div><div data-wf--utility-font--variant="body" class="hide"></div><div data-wf--utility-text-align-mobile--variant="inherit" class="hide"></div></div><div data-wf--spacer--variant="tiny" class="spacer w-variant-46f35bc5-fb79-b0da-747d-2377747f4166"></div></div></a></div></div></nav></div><div data-hover="true" data-delay="0" class="navbar_dropdown w-dropdown"><div class="navbar-dropdown_toggle w-dropdown-toggle"><div>Solutions</div><div class="navbar-dropdown_icon">
3084<svg xmlns="http://www.w3.org/2000/svg" width="100%" viewBox="0 0 16 16" fill="none" class="icon"><path d="M4 6L8 10L12 6" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"></path></svg></div></div><nav class="nav_dropdown-list w-dropdown-list"><div class="nav-dropdown_content"><div class="nav-dropdown_content-left stacked"><div class="nav-allcaps">Solutions</div><a href="/for-security-teams" class="nav-dropdown-link w-inline-block"><div class="nav-dropdown_link-icon"><img src="https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb1/6a28af12c412067b98f61c5f_solutions-security.png" loading="lazy" alt="" class="nav-dropdown-icon"/></div><div class="nav-dropdown_link-text"><div><p>For Security Teams</p><div data-wf--utility-text-weight--variant="medium" class="hide"></div><div data-wf--utility-text-color--variant="primary" class="hide"></div><div data-wf--utility-text-align--variant="base" class="hide"></div><div data-wf--utility-text-size--variant="text-small" class="hide"></div><div data-wf--utility-max-width--variant="base" class="hide"></div><div data-wf--utility-font--variant="body" class="hide"></div><div data-wf--utility-text-align-mobile--variant="inherit" class="hide"></div></div><div data-wf--spacer--variant="tiny" class="spacer w-variant-46f35bc5-fb79-b0da-747d-2377747f4166"></div><div><p>Open Source Security for CISOs &amp; Teams</p><div data-wf--utility-text-weight--variant="default" class="hide"></div><div data-wf--utility-text-color--variant="secondary" class="hide"></div><div data-wf--utility-text-align--variant="base" class="hide"></div><div data-wf--utility-text-size--variant="text-tiny" class="hide"></div><div data-wf--utility-max-width--variant="base" class="hide"></div><div data-wf--utility-font--variant="body" class="hide"></div><div data-wf--utility-text-align-mobile--variant="inherit" class="hide"></div></div></div></a><a href="/for-engineering-teams" class="nav-dropdown-link w-inline-block"><div class="nav-dropdown_link-icon"><img src="https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb1/6a28af12db3bcf2b6048c1e1_solutions-engineering.png" loading="lazy" alt="" class="nav-dropdown-icon"/></div><div class="nav-dropdown_link-text"><div><p>For Engineering Leaders</p><div data-wf--utility-text-weight--variant="medium" class="hide"></div><div data-wf--utility-text-color--variant="primary" class="hide"></div><div data-wf--utility-text-align--variant="base" class="hide"></div><div data-wf--utility-text-size--variant="text-small" class="hide"></div><div data-wf--utility-max-width--variant="base" class="hide"></div><div data-wf--utility-font--variant="body" class="hide"></div><div data-wf--utility-text-align-mobile--variant="inherit" class="hide"></div></div><div data-wf--spacer--variant="tiny" class="spacer w-variant-46f35bc5-fb79-b0da-747d-2377747f4166"></div><div><p>Open Source Management for Engineering Leaders</p><div data-wf--utility-text-weight--variant="default" class="hide"></div><div data-wf--utility-text-color--variant="secondary" class="hide"></div><div data-wf--utility-text-align--variant="base" class="hide"></div><div data-wf--utility-text-size--variant="text-tiny" class="hide"></div><div data-wf--utility-max-width--variant="base" class="hide"></div><div data-wf--utility-font--variant="body" class="hide"></div><div data-wf--utility-text-align-mobile--variant="inherit" class="hide"></div></div></div></a><a href="/for-developers" class="nav-dropdown-link w-inline-block"><div class="nav-dropdown_link-icon"><img src="https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb1/6a28af12f7b8ea3bb9b5c617_solutions-developers.png" loading="lazy" alt="" class="nav-dropdown-icon"/></div><div class="nav-dropdown_link-text"><div><p>For Developers</p><div data-wf--utility-text-weight--variant="medium" class="hide"></div><div data-wf--utility-text-color--variant="primary" class="hide"></div><div data-wf--utility-text-align--variant="base" class="hide"></div><div data-wf--utility-text-size--variant="text-small" class="hide"></div><div data-wf--utility-max-width--variant="base" class="hide"></div><div data-wf--utility-font--variant="body" class="hide"></div><div data-wf--utility-text-align-mobile--variant="inherit" class="hide"></div></div><div data-wf--spacer--variant="tiny" class="spacer w-variant-46f35bc5-fb79-b0da-747d-2377747f4166"></div><div><p>Secure Open Source for Developers</p><div data-wf--utility-text-weight--variant="default" class="hide"></div><div data-wf--utility-text-color--variant="secondary" class="hide"></div><div data-wf--utility-text-align--variant="base" class="hide"></div><div data-wf--utility-text-size--variant="text-tiny" class="hide"></div><div data-wf--utility-max-width--variant="base" class="hide"></div><div data-wf--utility-font--variant="body" class="hide"></div><div data-wf--utility-text-align-mobile--variant="inherit" class="hide"></div></div></div></a></div><div class="nav-dropdown_content-left stacked"><div class="nav-allcaps">use cases</div><a href="/vulnerability-management" class="nav-dropdown-link w-inline-block"><div class="nav-dropdown_link-icon"><img src="https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb1/6a28af125e2da98d73d3d3eb_use-case-vulnerability.png" loading="lazy" alt="" class="nav-dropdown-icon"/></div><div class="nav-dropdown_link-text"><div><p>Vulnerability Management</p><div data-wf--utility-text-weight--variant="medium" class="hide"></div><div data-wf--utility-text-color--variant="primary" class="hide"></div><div data-wf--utility-text-align--variant="base" class="hide"></div><div data-wf--utility-text-size--variant="text-small" class="hide"></div><div data-wf--utility-max-width--variant="base" class="hide"></div><div data-wf--utility-font--variant="body" class="hide"></div><div data-wf--utility-text-align-mobile--variant="inherit" class="hide"></div></div><div data-wf--spacer--variant="tiny" class="spacer w-variant-46f35bc5-fb79-b0da-747d-2377747f4166"></div><div><p>Open Source Vulnerability Management</p><div data-wf--utility-text-weight--variant="default" class="hide"></div><div data-wf--utility-text-color--variant="secondary" class="hide"></div><div data-wf--utility-text-align--variant="base" class="hide"></div><div data-wf--utility-text-size--variant="text-tiny" class="hide"></div><div data-wf--utility-max-width--variant="base" class="hide"></div><div data-wf--utility-font--variant="body" class="hide"></div><div data-wf--utility-text-align-mobile--variant="inherit" class="hide"></div></div></div></a><a href="/software-supply-chain-security" class="nav-dropdown-link w-inline-block"><div class="nav-dropdown_link-icon"><img src="https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb1/6a28af120d58e0146ad1d299_use-case-supply-chain.png" loading="lazy" alt="" class="nav-dropdown-icon"/></div><div class="nav-dropdown_link-text"><div><p>Supply Chain Security</p><div data-wf--utility-text-weight--variant="medium" class="hide"></div><div data-wf--utility-text-color--variant="primary" class="hide"></div><div data-wf--utility-text-align--variant="base" class="hide"></div><div data-wf--utility-text-size--variant="text-small" class="hide"></div><div data-wf--utility-max-width--variant="base" class="hide"></div><div data-wf--utility-font--variant="body" class="hide"></div><div data-wf--utility-text-align-mobile--variant="inherit" class="hide"></div></div><div data-wf--spacer--variant="tiny" class="spacer w-variant-46f35bc5-fb79-b0da-747d-2377747f4166"></div><div><p>Software Supply Chain Security</p><div data-wf--utility-text-weight--variant="default" class="hide"></div><div data-wf--utility-text-color--variant="secondary" class="hide"></div><div data-wf--utility-text-align--variant="base" class="hide"></div><div data-wf--utility-text-size--variant="text-tiny" class="hide"></div><div data-wf--utility-max-width--variant="base" class="hide"></div><div data-wf--utility-font--variant="body" class="hide"></div><div data-wf--utility-text-align-mobile--variant="inherit" class="hide"></div></div></div></a><a href="/compliance-sbom" class="nav-dropdown-link w-inline-block"><div class="nav-dropdown_link-icon"><img src="https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb1/6a28af125b93f9f574f05490_use-case-compliance.png" loading="lazy" sizes="100vw" srcset="https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb1/6a28af125b93f9f574f05490_use-case-compliance-p-500.png 500w, https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb1/6a28af125b93f9f574f05490_use-case-compliance.png 628w" alt="" class="nav-dropdown-icon"/></div><div class="nav-dropdown_link-text"><div><p>Compliance &amp; SBOM</p><div data-wf--utility-text-weight--variant="medium" class="hide"></div><div data-wf--utility-text-color--variant="primary" class="hide"></div><div data-wf--utility-text-align--variant="base" class="hide"></div><div data-wf--utility-text-size--variant="text-small" class="hide"></div><div data-wf--utility-max-width--variant="base" class="hide"></div><div data-wf--utility-font--variant="body" class="hide"></div><div data-wf--utility-text-align-mobile--variant="inherit" class="hide"></div></div><div data-wf--spacer--variant="tiny" class="spacer w-variant-46f35bc5-fb79-b0da-747d-2377747f4166"></div><div><p>Open Source Compliance and SBOM Generation</p><div data-wf--utility-text-weight--variant="default" class="hide"></div><div data-wf--utility-text-color--variant="secondary" class="hide"></div><div data-wf--utility-text-align--variant="base" class="hide"></div><div data-wf--utility-text-size--variant="text-tiny" class="hide"></div><div data-wf--utility-max-width--variant="base" class="hide"></div><div data-wf--utility-font--variant="body" class="hide"></div><div data-wf--utility-text-align-mobile--variant="inherit" class="hide"></div></div></div></a></div></div></nav></div><div data-hover="true" data-delay="0" class="navbar_dropdown w-dropdown"><div class="navbar-dropdown_toggle w-dropdown-toggle"><div>Resources</div><div class="navbar-dropdown_icon">
3084<svg xmlns="http://www.w3.org/2000/svg" width="100%" viewBox="0 0 16 16" fill="none" class="icon"><path d="M4 6L8 10L12 6" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"></path></svg></div></div><nav class="nav_dropdown-list w-dropdown-list"><div class="nav-dropdown_content smaller"><div class="nav-dropdown_content-left"><a href="/blog/the-state-of-vulnerability-management-remediation-report-2026" class="featured-post_card w-inline-block"><div class="featured-post_card-img-wrapper"><img src="https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb1/6a28b2c9dde66eca7ab23d53_The-2026-State-of-Vulnerability-Management-Remediation-Container-Edition.webp" loading="lazy" sizes="100vw" srcset="https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb1/6a28b2c9dde66eca7ab23d53_The-2026-State-of-Vulnerability-Management-Remediation-Container-Edition-p-500.webp 500w, https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb1/6a28b2c9dde66eca7ab23d53_The-2026-State-of-Vulnerability-Management-Remediation-Container-Edition-p-800.webp 800w, https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb1/6a28b2c9dde66eca7ab23d53_The-2026-State-of-Vulnerability-Management-Remediation-Container-Edition-p-1080.webp 1080w, https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb1/6a28b2c9dde66eca7ab23d53_The-2026-State-of-Vulnerability-Management-Remediation-Container-Edition.webp 1440w" alt="" class="featured-card_main-img"/></div><div class="featured-card_main-heading"><div><h3>The 2026 State of Vulnerability Management &amp; Remediation</h3><div data-wf--utility-text-weight--variant="default" class="hide"></div><div data-wf--utility-text-color--variant="primary" class="hide"></div><div data-wf--utility-text-align--variant="base" class="hide"></div><div data-wf--utility-text-size--variant="text-regular" class="hide"></div><div data-wf--utility-font--variant="heading" class="hide"></div><div data-wf--utility-max-width--variant="base" class="hide"></div><div data-wf--utility-text-size-mobile--variant="base"></div><div data-wf--utility-text-align-mobile--variant="inherit" class="hide"></div></div></div><div class="featured-card_main-bottom nav"><div><p>Read the article</p><div data-wf--utility-text-weight--variant="semibold" class="hide"></div><div data-wf--utility-text-color--variant="brand" class="hide"></div><div data-wf--utility-text-align--variant="base" class="hide"></div><div data-wf--utility-text-size--variant="text-tiny" class="hide"></div><div data-wf--utility-max-width--variant="base" class="hide"></div><div data-wf--utility-font--variant="body" class="hide"></div><div data-wf--utility-text-align-mobile--variant="inherit" class="hide"></div></div><div class="icon-1x1-small"><svg xmlns="http://www.w3.org/2000/svg" width="100%" viewBox="0 0 20 20" fill="none" class="icon"><path d="M4.16602 9.99984H15.8327M9.99935 15.8332L15.8327 9.99984L9.99935 4.1665" stroke="currentColor" stroke-width="1.66667" stroke-linecap="round" stroke-linejoin="round"></path></svg></div></div></a></div><div class="nav-dropdown_content-left stacked"><a href="/resources/blog" class="nav-dropdown-link small w-inline-block"><div class="nav-dropdown_link-icon"><img src="https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb1/6a28b1f50f38383998bf481b_resources-blog.png" loading="lazy" sizes="100vw" srcset="https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb1/6a28b1f50f38383998bf481b_resources-blog-p-500.png 500w, https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb1/6a28b1f50f38383998bf481b_resources-blog.png 663w" alt="" class="nav-dropdown-icon"/></div><div class="nav-dropdown_link-text"><div><p>Blog</p><div data-wf--utility-text-weight--variant="medium" class="hide"></div><div data-wf--utility-text-color--variant="primary" class="hide"></div><div data-wf--utility-text-align--variant="base" class="hide"></div><div data-wf--utility-text-size--variant="text-small" class="hide"></div><div data-wf--utility-max-width--variant="base" class="hide"></div><div data-wf--utility-font--variant="body" class="hide"></div><div data-wf--utility-text-align-mobile--variant="inherit" class="hide"></div></div></div></a><a href="/resources/academy" class="nav-dropdown-link small w-inline-block"><div class="nav-dropdown_link-icon"><img src="https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb1/6a28b1f5f7b8ea3bb9b668a8_resources-academy.png" loading="lazy" alt="" class="nav-dropdown-icon"/></div><div class="nav-dropdown_link-text"><div><p>Academy</p><div data-wf--utility-text-weight--variant="medium" class="hide"></div><div data-wf--utility-text-color--variant="primary" class="hide"></div><div data-wf--utility-text-align--variant="base" class="hide"></div><div data-wf--utility-text-size--variant="text-small" class="hide"></div><div data-wf--utility-max-width--variant="base" class="hide"></div><div data-wf--utility-font--variant="body" class="hide"></div><div data-wf--utility-text-align-mobile--variant="inherit" class="hide"></div></div></div></a><a href="https://docs.activestate.com/" class="nav-dropdown-link small w-inline-block"><div class="nav-dropdown_link-icon"><img src="https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb1/6a28b1f5e2c01e60cce79c03_resources-docs.png" loading="lazy" alt="" class="nav-dropdown-icon"/></div><div class="nav-dropdown_link-text"><div><p>Docs</p><div data-wf--utility-text-weight--variant="medium" class="hide"></div><div data-wf--utility-text-color--variant="primary" class="hide"></div><div data-wf--utility-text-align--variant="base" class="hide"></div><div data-wf--utility-text-size--variant="text-small" class="hide"></div><div data-wf--utility-max-width--variant="base" class="hide"></div><div data-wf--utility-font--variant="body" class="hide"></div><div data-wf--utility-text-align-mobile--variant="inherit" class="hide"></div></div></div></a><a href="https://trust.activestate.com/" class="nav-dropdown-link small w-inline-block"><div class="nav-dropdown_link-icon"><img src="https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb1/6a28b1f62138ca0b906b12f0_resources-trust-center.png" loading="lazy" alt="" class="nav-dropdown-icon"/></div><div class="nav-dropdown_link-text"><div><p>Trust Center</p><div data-wf--utility-text-weight--variant="medium" class="hide"></div><div data-wf--utility-text-color--variant="primary" class="hide"></div><div data-wf--utility-text-align--variant="base" class="hide"></div><div data-wf--utility-text-size--variant="text-small" class="hide"></div><div data-wf--utility-max-width--variant="base" class="hide"></div><div data-wf--utility-font--variant="body" class="hide"></div><div data-wf--utility-text-align-mobile--variant="inherit" class="hide"></div></div></div></a><a href="/resources/roi-calculator" class="nav-dropdown-link small w-inline-block"><div class="nav-dropdown_link-icon"><svg viewBox="0 0 24 24" width="100%" fill="none" class="nav-dropdown-icon"><rect x="4" y="2" width="16" height="20" rx="3" fill="#1677D9"></rect><rect x="7" y="5" width="10" height="3.5" rx="1" fill="#ffffff"></rect><rect x="7" y="10" width="2" height="2" rx="0.5" fill="#ffffff"></rect><rect x="11" y="10" width="2" height="2" rx="0.5" fill="#ffffff"></rect><rect x="15" y="10" width="2" height="2" rx="0.5" fill="#ffffff"></rect><rect x="7" y="14" width="2" height="2" rx="0.5" fill="#ffffff"></rect><rect x="11" y="14" width="2" height="2" rx="0.5" fill="#ffffff"></rect><rect x="15" y="14" width="2" height="2" rx="0.5" fill="#ffffff"></rect><rect x="7" y="18" width="2" height="2" rx="0.5" fill="#ffffff"></rect><rect x="11" y="18" width="2" height="2" rx="0.5" fill="#ffffff"></rect><rect x="15" y="18" width="2" height="2" rx="0.5" fill="#ffffff"></rect></svg></div><div class="nav-dropdown_link-text"><div><p>ROI Calculator</p><div data-wf--utility-text-weight--variant="medium" class="hide"></div><div data-wf--utility-text-color--variant="primary" class="hide"></div><div data-wf--utility-text-align--variant="base" class="hide"></div><div data-wf--utility-text-size--variant="text-small" class="hide"></div><div data-wf--utility-max-width--variant="base" class="hide"></div><div data-wf--utility-font--variant="body" class="hide"></div><div data-wf--utility-text-align-mobile--variant="inherit" class="hide"></div></div></div></a><a href="/resources" class="nav-dropdown-link small w-inline-block"><div class="nav-dropdown_link-icon"><img src="https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb1/6a28b1f556b116ef439c884c_resources-all.png" loading="lazy" sizes="100vw" srcset="https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb1/6a28b1f556b116ef439c884c_resources-all-p-500.png 500w, https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb1/6a28b1f556b116ef439c884c_resources-all.png 609w" alt="" class="nav-dropdown-icon"/></div><div class="nav-dropdown_link-text"><div><p>View all Resources</p><div data-wf--utility-text-weight--variant="medium" class="hide"></div><div data-wf--utility-text-color--variant="primary" class="hide"></div><div data-wf--utility-text-align--variant="base" class="hide"></div><div data-wf--utility-text-size--variant="text-small" class="hide"></div><div data-wf--utility-max-width--variant="base" class="hide"></div><div data-wf--utility-font--variant="body" class="hide"></div><div data-wf--utility-text-align-mobile--variant="inherit" class="hide"></div></div></div></a></div></div></nav></div><div data-hover="true" data-delay="0" class="navbar_dropdown w-dropdown"><div class="navbar-dropdown_toggle w-dropdown-toggle"><div>Integrations</div><div class="navbar-dropdown_icon">
3084<svg xmlns="http://www.w3.org/2000/svg" width="100%" viewBox="0 0 16 16" fill="none" class="icon"><path d="M4 6L8 10L12 6" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"></path></svg></div></div><nav class="nav_dropdown-list w-dropdown-list"><div class="nav-dropdown_content smaller"><div class="nav-dropdown_content-left stacked"><a href="/platform/integrations/jfrog-artifactory" class="nav-dropdown-link small w-inline-block"><div class="nav-dropdown_link-icon"><img src="https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb1/6a1dd9ad809fb7990e9b9bfe_jfrog-logo.png" loading="lazy" sizes="100vw" srcset="https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb1/6a1dd9ad809fb7990e9b9bfe_jfrog-logo-p-500.png 500w, https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb1/6a1dd9ad809fb7990e9b9bfe_jfrog-logo.png 801w" alt="" class="nav-dropdown-icon"/></div><div class="nav-dropdown_link-text"><div><p>JFrog Artifactory</p><div data-wf--utility-text-weight--variant="medium" class="hide"></div><div data-wf--utility-text-color--variant="primary" class="hide"></div><div data-wf--utility-text-align--variant="base" class="hide"></div><div data-wf--utility-text-size--variant="text-small" class="hide"></div><div data-wf--utility-max-width--variant="base" class="hide"></div><div data-wf--utility-font--variant="body" class="hide"></div><div data-wf--utility-text-align-mobile--variant="inherit" class="hide"></div></div></div></a><a href="/platform/integrations/sonatype-nexus" class="nav-dropdown-link small w-inline-block"><div class="nav-dropdown_link-icon"><img src="https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb1/6a1dda200b029de783b2b2a4_sonatype-nexus-logo.webp" loading="lazy" alt="" class="nav-dropdown-icon"/></div><div class="nav-dropdown_link-text"><div><p>Sonatype Nexus</p><div data-wf--utility-text-weight--variant="medium" class="hide"></div><div data-wf--utility-text-color--variant="primary" class="hide"></div><div data-wf--utility-text-align--variant="base" class="hide"></div><div data-wf--utility-text-size--variant="text-small" class="hide"></div><div data-wf--utility-max-width--variant="base" class="hide"></div><div data-wf--utility-font--variant="body" class="hide"></div><div data-wf--utility-text-align-mobile--variant="inherit" class="hide"></div></div></div></a><a href="/platform/integrations/kubernetes" class="nav-dropdown-link small w-inline-block"><div class="nav-dropdown_link-icon"><img src="https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb1/6a1dda3a06f12f43d023ec11_Kubernetes_logo_without_workmark.svg" loading="lazy" alt="" class="nav-dropdown-icon"/></div><div class="nav-dropdown_link-text"><div><p>Kubernetes</p><div data-wf--utility-text-weight--variant="medium" class="hide"></div><div data-wf--utility-text-color--variant="primary" class="hide"></div><div data-wf--utility-text-align--variant="base" class="hide"></div><div data-wf--utility-text-size--variant="text-small" class="hide"></div><div data-wf--utility-max-width--variant="base" class="hide"></div><div data-wf--utility-font--variant="body" class="hide"></div><div data-wf--utility-text-align-mobile--variant="inherit" class="hide"></div></div></div></a><a href="/platform/integrations/cloudera" class="nav-dropdown-link small w-inline-block"><div class="nav-dropdown_link-icon"><img src="https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb1/6a1dda7c8ce8c61b52663021_cloudera.webp" loading="lazy" sizes="100vw" srcset="https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb1/6a1dda7c8ce8c61b52663021_cloudera-p-500.webp 500w, https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb1/6a1dda7c8ce8c61b52663021_cloudera-p-800.webp 800w, https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb1/6a1dda7c8ce8c61b52663021_cloudera-p-1080.webp 1080w, https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb1/6a1dda7c8ce8c61b52663021_cloudera.webp 1207w" alt="" class="nav-dropdown-icon"/></div><div class="nav-dropdown_link-text"><div><p>Cloudera</p><div data-wf--utility-text-weight--variant="medium" class="hide"></div><div data-wf--utility-text-color--variant="primary" class="hide"></div><div data-wf--utility-text-align--variant="base" class="hide"></div><div data-wf--utility-text-size--variant="text-small" class="hide"></div><div data-wf--utility-max-width--variant="base" class="hide"></div><div data-wf--utility-font--variant="body" class="hide"></div><div data-wf--utility-text-align-mobile--variant="inherit" class="hide"></div></div></div></a></div><div class="nav-dropdown_content-left stacked"><a href="/platform/integrations/ci-cd-pipelines" class="nav-dropdown-link small w-inline-block"><div class="nav-dropdown_link-icon"><img src="https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb1/6a28af12c412067b98f61c5f_solutions-security.png" loading="lazy" alt="" class="nav-dropdown-icon"/></div><div class="nav-dropdown_link-text"><div><p>CI/CD Pipelines</p><div data-wf--utility-text-weight--variant="medium" class="hide"></div><div data-wf--utility-text-color--variant="primary" class="hide"></div><div data-wf--utility-text-align--variant="base" class="hide"></div><div data-wf--utility-text-size--variant="text-small" class="hide"></div><div data-wf--utility-max-width--variant="base" class="hide"></div><div data-wf--utility-font--variant="body" class="hide"></div><div data-wf--utility-text-align-mobile--variant="inherit" class="hide"></div></div></div></a><a href="/platform/integrations/ides" class="nav-dropdown-link small w-inline-block"><div class="nav-dropdown_link-icon"><img src="https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb1/6a28af12f7b8ea3bb9b5c617_solutions-developers.png" loading="lazy" alt="" class="nav-dropdown-icon"/></div><div class="nav-dropdown_link-text"><div><p>IDEs</p><div data-wf--utility-text-weight--variant="medium" class="hide"></div><div data-wf--utility-text-color--variant="primary" class="hide"></div><div data-wf--utility-text-align--variant="base" class="hide"></div><div data-wf--utility-text-size--variant="text-small" class="hide"></div><div data-wf--utility-max-width--variant="base" class="hide"></div><div data-wf--utility-font--variant="body" class="hide"></div><div data-wf--utility-text-align-mobile--variant="inherit" class="hide"></div></div></div></a><a href="/platform/integrations/trivy" class="nav-dropdown-link small w-inline-block"><div class="nav-dropdown_link-icon"><img src="https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb1/6a28b9d3e4aa6cd876823e37_Trivy%20(1).png" loading="lazy" alt="" class="nav-dropdown-icon"/></div><div class="nav-dropdown_link-text"><div><p>Trivy</p><div data-wf--utility-text-weight--variant="medium" class="hide"></div><div data-wf--utility-text-color--variant="primary" class="hide"></div><div data-wf--utility-text-align--variant="base" class="hide"></div><div data-wf--utility-text-size--variant="text-small" class="hide"></div><div data-wf--utility-max-width--variant="base" class="hide"></div><div data-wf--utility-font--variant="body" class="hide"></div><div data-wf--utility-text-align-mobile--variant="inherit" class="hide"></div></div></div></a><a href="/platform/integrations/wiz" class="nav-dropdown-link small w-inline-block"><div class="nav-dropdown_link-icon"><img src="https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb1/6a28b9e85e2da98d73d68ec9_wiz-logo.png" loading="lazy" sizes="100vw" srcset="https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb1/6a28b9e85e2da98d73d68ec9_wiz-logo-p-500.png 500w, https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb1/6a28b9e85e2da98d73d68ec9_wiz-logo.png 707w" alt="" class="nav-dropdown-icon"/></div><div class="nav-dropdown_link-text"><div><p>Wiz</p><div data-wf--utility-text-weight--variant="medium" class="hide"></div><div data-wf--utility-text-color--variant="primary" class="hide"></div><div data-wf--utility-text-align--variant="base" class="hide"></div><div data-wf--utility-text-size--variant="text-small" class="hide"></div><div data-wf--utility-max-width--variant="base" class="hide"></div><div data-wf--utility-font--variant="body" class="hide"></div><div data-wf--utility-text-align-mobile--variant="inherit" class="hide"></div></div></div></a></div></div></nav></div><div data-hover="true" data-delay="0" class="navbar_dropdown w-dropdown"><div class="navbar-dropdown_toggle w-dropdown-toggle"><div>Company</div><div class="navbar-dropdown_icon">
3084<svg xmlns="http://www.w3.org/2000/svg" width="100%" viewBox="0 0 16 16" fill="none" class="icon"><path d="M4 6L8 10L12 6" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"></path></svg></div></div><nav class="nav_dropdown-list w-dropdown-list"><div class="nav-dropdown_content"><div class="nav-dropdown_content-left stacked"><a href="/company/about-us" class="nav-dropdown-link w-inline-block"><div class="nav-dropdown_link-icon"><img src="https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb1/6a28b5811e8a83e9bdc887ab_company-about.svg" loading="lazy" alt="" class="nav-dropdown-icon"/></div><div class="nav-dropdown_link-text"><div><p>About</p><div data-wf--utility-text-weight--variant="medium" class="hide"></div><div data-wf--utility-text-color--variant="primary" class="hide"></div><div data-wf--utility-text-align--variant="base" class="hide"></div><div data-wf--utility-text-size--variant="text-small" class="hide"></div><div data-wf--utility-max-width--variant="base" class="hide"></div><div data-wf--utility-font--variant="body" class="hide"></div><div data-wf--utility-text-align-mobile--variant="inherit" class="hide"></div></div><div data-wf--spacer--variant="tiny" class="spacer w-variant-46f35bc5-fb79-b0da-747d-2377747f4166"></div><div><p>Securing Open Source Since 1997</p><div data-wf--utility-text-weight--variant="default" class="hide"></div><div data-wf--utility-text-color--variant="secondary" class="hide"></div><div data-wf--utility-text-align--variant="base" class="hide"></div><div data-wf--utility-text-size--variant="text-tiny" class="hide"></div><div data-wf--utility-max-width--variant="base" class="hide"></div><div data-wf--utility-font--variant="body" class="hide"></div><div data-wf--utility-text-align-mobile--variant="inherit" class="hide"></div></div></div></a><a href="/why-activestate" class="nav-dropdown-link w-inline-block"><div class="nav-dropdown_link-icon"><img src="https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb1/6a28af120d58e0146ad1d299_use-case-supply-chain.png" loading="lazy" alt="" class="nav-dropdown-icon"/></div><div class="nav-dropdown_link-text"><div><p>Why ActiveState</p><div data-wf--utility-text-weight--variant="medium" class="hide"></div><div data-wf--utility-text-color--variant="primary" class="hide"></div><div data-wf--utility-text-align--variant="base" class="hide"></div><div data-wf--utility-text-size--variant="text-small" class="hide"></div><div data-wf--utility-max-width--variant="base" class="hide"></div><div data-wf--utility-font--variant="body" class="hide"></div><div data-wf--utility-text-align-mobile--variant="inherit" class="hide"></div></div><div data-wf--spacer--variant="tiny" class="spacer w-variant-46f35bc5-fb79-b0da-747d-2377747f4166"></div><div><p>Trusted Open Source for the AI Coding Era</p><div data-wf--utility-text-weight--variant="default" class="hide"></div><div data-wf--utility-text-color--variant="secondary" class="hide"></div><div data-wf--utility-text-align--variant="base" class="hide"></div><div data-wf--utility-text-size--variant="text-tiny" class="hide"></div><div data-wf--utility-max-width--variant="base" class="hide"></div><div data-wf--utility-font--variant="body" class="hide"></div><div data-wf--utility-text-align-mobile--variant="inherit" class="hide"></div></div></div></a><a href="/partners" class="nav-dropdown-link w-inline-block"><div class="nav-dropdown_link-icon"><img src="https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb1/6a28b58101ccf9fa6bf7e06b_company-partner.svg" loading="lazy" alt="" class="nav-dropdown-icon"/></div><div class="nav-dropdown_link-text"><div><p>Partner with Us</p><div data-wf--utility-text-weight--variant="medium" class="hide"></div><div data-wf--utility-text-color--variant="primary" class="hide"></div><div data-wf--utility-text-align--variant="base" class="hide"></div><div data-wf--utility-text-size--variant="text-small" class="hide"></div><div data-wf--utility-max-width--variant="base" class="hide"></div><div data-wf--utility-font--variant="body" class="hide"></div><div data-wf--utility-text-align-mobile--variant="inherit" class="hide"></div></div><div data-wf--spacer--variant="tiny" class="spacer w-variant-46f35bc5-fb79-b0da-747d-2377747f4166"></div><div><p>Bring Secure Open Source to Your Customers</p><div data-wf--utility-text-weight--variant="default" class="hide"></div><div data-wf--utility-text-color--variant="secondary" class="hide"></div><div data-wf--utility-text-align--variant="base" class="hide"></div><div data-wf--utility-text-size--variant="text-tiny" class="hide"></div><div data-wf--utility-max-width--variant="base" class="hide"></div><div data-wf--utility-font--variant="body" class="hide"></div><div data-wf--utility-text-align-mobile--variant="inherit" class="hide"></div></div></div></a></div><div class="nav-dropdown_content-left stacked"><a href="/company/careers" class="nav-dropdown-link w-inline-block"><div class="nav-dropdown_link-icon"><img src="https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb1/6a28b5810f38383998c02518_company-careers.svg" loading="lazy" alt="" class="nav-dropdown-icon"/></div><div class="nav-dropdown_link-text"><div><p>Careers</p><div data-wf--utility-text-weight--variant="medium" class="hide"></div><div data-wf--utility-text-color--variant="primary" class="hide"></div><div data-wf--utility-text-align--variant="base" class="hide"></div><div data-wf--utility-text-size--variant="text-small" class="hide"></div><div data-wf--utility-max-width--variant="base" class="hide"></div><div data-wf--utility-font--variant="body" class="hide"></div><div data-wf--utility-text-align-mobile--variant="inherit" class="hide"></div></div><div data-wf--spacer--variant="tiny" class="spacer w-variant-46f35bc5-fb79-b0da-747d-2377747f4166"></div><div><p>Be Part of a Diverse, Inclusive Team</p><div data-wf--utility-text-weight--variant="default" class="hide"></div><div data-wf--utility-text-color--variant="secondary" class="hide"></div><div data-wf--utility-text-align--variant="base" class="hide"></div><div data-wf--utility-text-size--variant="text-tiny" class="hide"></div><div data-wf--utility-max-width--variant="base" class="hide"></div><div data-wf--utility-font--variant="body" class="hide"></div><div data-wf--utility-text-align-mobile--variant="inherit" class="hide"></div></div></div></a><a href="/company/newsroom" class="nav-dropdown-link w-inline-block"><div class="nav-dropdown_link-icon"><img src="https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb1/6a28b1f5e2c01e60cce79c03_resources-docs.png" loading="lazy" alt="" class="nav-dropdown-icon"/></div><div class="nav-dropdown_link-text"><div><p>Press</p><div data-wf--utility-text-weight--variant="medium" class="hide"></div><div data-wf--utility-text-color--variant="primary" class="hide"></div><div data-wf--utility-text-align--variant="base" class="hide"></div><div data-wf--utility-text-size--variant="text-small" class="hide"></div><div data-wf--utility-max-width--variant="base" class="hide"></div><div data-wf--utility-font--variant="body" class="hide"></div><div data-wf--utility-text-align-mobile--variant="inherit" class="hide"></div></div><div data-wf--spacer--variant="tiny" class="spacer w-variant-46f35bc5-fb79-b0da-747d-2377747f4166"></div><div><p>ActiveState in the News</p><div data-wf--utility-text-weight--variant="default" class="hide"></div><div data-wf--utility-text-color--variant="secondary" class="hide"></div><div data-wf--utility-text-align--variant="base" class="hide"></div><div data-wf--utility-text-size--variant="text-tiny" class="hide"></div><div data-wf--utility-max-width--variant="base" class="hide"></div><div data-wf--utility-font--variant="body" class="hide"></div><div data-wf--utility-text-align-mobile--variant="inherit" class="hide"></div></div></div></a><a href="/company/contact-us" class="nav-dropdown-link w-inline-block"><div class="nav-dropdown_link-icon"><img src="https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb1/6a28b5815b93f9f574f1b4e6_company-contact.svg" loading="lazy" alt="" class="nav-dropdown-icon"/></div><div class="nav-dropdown_link-text"><div><p>Contact</p><div data-wf--utility-text-weight--variant="medium" class="hide"></div><div data-wf--utility-text-color--variant="primary" class="hide"></div><div data-wf--utility-text-align--variant="base" class="hide"></div><div data-wf--utility-text-size--variant="text-small" class="hide"></div><div data-wf--utility-max-width--variant="base" class="hide"></div><div data-wf--utility-font--variant="body" class="hide"></div><div data-wf--utility-text-align-mobile--variant="inherit" class="hide"></div></div><div data-wf--spacer--variant="tiny" class="spacer w-variant-46f35bc5-fb79-b0da-747d-2377747f4166"></div><div><p>Govern what AI introduces.</p><div data-wf--utility-text-weight--variant="default" class="hide"></div><div data-wf--utility-text-color--variant="secondary" class="hide"></div><div data-wf--utility-text-align--variant="base" class="hide"></div><div data-wf--utility-text-size--variant="text-tiny" class="hide"></div><div data-wf--utility-max-width--variant="base" class="hide"></div><div data-wf--utility-font--variant="body" class="hide"></div><div data-wf--utility-text-align-mobile--variant="inherit" class="hide"></div></div></div></a></div></div></nav></div><a href="https://activestate.com/company/pricing" class="navbar_link">Pricing</a></div><div class="navbar_menu-links"><a href="https://www.activestate.com/company/contact-us-book-a-meeting" target="_blank" class="button w-inline-block"><div class="button_text">
3084Book a Call</div><div data-wf--button-style--variant="primary" class="hide"></div><div data-wf--button-size--variant="small" class="hide"></div><div data-wf--button-width--variant="base" class="hide"></div></a></div><div class="navbar_menu-buttons"><a href="https://platform.activestate.com/sign-in" target="_blank" class="button w-inline-block"><div class="button_text">Login</div><div data-wf--button-style--variant="primary" class="hide"></div><div data-wf--button-size--variant="small" class="hide"></div><div data-wf--button-width--variant="base" class="hide"></div></a></div></nav><div data-hover="true" data-delay="0" class="navbar_dropdown w-dropdown"><div class="navbar-dropdown_toggle w-dropdown-toggle"><div>Support</div><div class="navbar-dropdown_icon"><svg xmlns="http://www.w3.org/2000/svg" width="100%" viewBox="0 0 16 16" fill="none" class="icon"><path d="M4 6L8 10L12 6" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"></path></svg></div></div><nav class="nav_dropdown-list basic w-dropdown-list"><a href="/support" class="nav-dropdown_link w-dropdown-link">Overview</a><a href="https://status.activestate.com/" target="_blank" class="nav-dropdown_link w-dropdown-link">Service Status</a></nav></div><div class="navbar_menu-button w-nav-button"><div class="menu-icon1"><div class="menu-icon1_line-top"></div><div class="menu-icon1_line-middle"><div class="menu-icon1_line-middle-inner"></div></div><div class="menu-icon1_line-bottom"></div></div></div></div></div></div></div><div class="main-wrapper"><section data-wf--0---section--variant="transparent" class="section_wrapper"><div data-wf--utility-border-radius--variant="none" class="hide"></div><div data-wf--utility-visibility--variant="base" class="hide"></div><div data-wf--padding-horizontal--variant="page-padding" class="padding_wrapper"><div class="padding"><div data-wf--container-width--variant="large" class="container-width_wrapper"><div class="container"><div data-wf--container-height--variant="base"><div class="content_height"><div data-wf--container-align--variant="left"><div class="content-align_slot"><div data-wf--component-max-width--variant="base" class="content-width_wrapper"><div class="content-width"><div data-wf--padding-vertical--variant="hero" class="section-padding w-variant-9bc43b75-ef88-b608-cc03-547efbdc32fd"></div><div class="component_slot"><section data-wf--0---section--variant="transparent" class="section_wrapper"><div data-wf--utility-border-radius--variant="none" class="hide"></div><div data-wf--utility-visibility--variant="base" class="hide"></div><div data-wf--padding-horizontal--variant="none" class="padding_wrapper"><div class="padding w-variant-9ae9bce7-8066-160e-ff10-eac90dd2a7a5"><div data-wf--container-width--variant="large" class="container-width_wrapper"><div class="container"><div data-wf--container-height--variant="base"><div class="content_height"><div data-wf--container-align--variant="center"><div class="content-align_slot w-variant-1ea32fb0-fa27-5f77-d941-fc897de038f9"><div data-wf--component-max-width--variant="large" class="content-width_wrapper"><div class="content-width w-variant-fcc8c809-a7ee-12dc-6da4-422697be1e2b"><div data-wf--padding-vertical--variant="none" class="section-padding w-variant-c249e49a-6134-1129-ace4-8fc88e1b7252"></div><div class="component_slot"><div data-wf--spacer--variant="small" class="spacer"></div><div><h1>Pricing for our Curated Catalog stays simple as your adoption grows</h1><div data-wf--utility-text-weight--variant="default" class="hide"></div><div data-wf--utility-text-color--variant="scheme" class="hide"></div><div data-wf--utility-text-align--variant="center" class="hide"></div><div data-wf--utility-text-size--variant="h2" class="hide"></div><div data-wf--utility-font--variant="heading" class="hide"></div><div data-wf--utility-max-width--variant="base" class="hide"></div><div data-wf--utility-text-size-mobile--variant="base"></div><div data-wf--utility-text-align-mobile--variant="inherit" class="hide"></div></div><div data-wf--spacer--variant="small" class="spacer"></div><div><p>ActiveState makes pricing simple and transparent. Your team is placed in a tier based on organization size. Every language you license is priced at your tier level, so adding a language is a budget line item you can plan for.</p><div data-wf--utility-text-weight--variant="default" class="hide"></div><div data-wf--utility-text-color--variant="secondary" class="hide"></div><div data-wf--utility-text-align--variant="base" class="hide"></div><div data-wf--utility-text-size--variant="text-medium" class="hide"></div><div data-wf--utility-max-width--variant="base" class="hide"></div><div data-wf--utility-font--variant="body" class="hide"></div><div data-wf--utility-text-align-mobile--variant="inherit" class="hide"></div></div><div data-wf--spacer--variant="medium" class="spacer w-variant-b83557a4-0cfd-2735-cea0-374489a03346"></div><div data-wf--button-group--variant="centered" class="button-group_wrapper"><div class="button-group w-variant-28045c7a-d103-e3f3-ce7a-71458dc88d31"><a href="https://www.activestate.com/company/contact-us-pricing" class="button w-inline-block"><div class="button_text">Get a quote for your organization</div><div data-wf--button-style--variant="primary" class="hide"></div><div data-wf--button-size--variant="base" class="hide"></div><div data-wf--button-width--variant="base" class="hide"></div></a></div></div></div><div data-wf--padding-vertical--variant="none" class="section-padding w-variant-c249e49a-6134-1129-ace4-8fc88e1b7252"></div></div></div></div></div></div></div></div></div></div></div></section></div><div data-wf--padding-vertical--variant="medium" class="section-padding w-variant-de6cb56c-802b-0ca7-5d1c-5ffea4b3737e"></div></div></div></div></div></div></div></div></div></div></div></section><section data-wf--0---section--variant="transparent" class="section_wrapper"><div data-wf--utility-border-radius--variant="none" class="hide"></div><div data-wf--utility-visibility--variant="base" class="hide"></div><div data-wf--padding-horizontal--variant="page-padding" class="padding_wrapper"><div class="padding"><div data-wf--container-width--variant="large" class="container-width_wrapper"><div class="container"><div data-wf--container-height--variant="base"><div class="content_height"><div data-wf--container-align--variant="left"><div class="content-align_slot"><div data-wf--component-max-width--variant="base" class="content-width_wrapper"><div class="content-width"><div data-wf--padding-vertical--variant="medium" class="section-padding w-variant-de6cb56c-802b-0ca7-5d1c-5ffea4b3737e"></div><div class="component_slot"><section data-wf--0---section--variant="transparent" class="section_wrapper"><div data-wf--utility-border-radius--variant="none" class="hide"></div><div data-wf--utility-visibility--variant="base" class="hide"></div><div data-wf--padding-horizontal--variant="none" class="padding_wrapper"><div class="padding w-variant-9ae9bce7-8066-160e-ff10-eac90dd2a7a5"><div data-wf--container-width--variant="large" class="container-width_wrapper"><div class="container"><div data-wf--container-height--variant="base"><div class="content_height"><div data-wf--container-align--variant="center"><div class="content-align_slot w-variant-1ea32fb0-fa27-5f77-d941-fc897de038f9"><div data-wf--component-max-width--variant="large" class="content-width_wrapper"><div class="content-width w-variant-fcc8c809-a7ee-12dc-6da4-422697be1e2b"><div data-wf--padding-vertical--variant="none" class="section-padding w-variant-c249e49a-6134-1129-ace4-8fc88e1b7252"></div><div class="component_slot"><div><h2>Why this matters</h2><div data-wf--utility-text-weight--variant="default" class="hide"></div><div data-wf--utility-text-color--variant="scheme" class="hide"></div><div data-wf--utility-text-align--variant="center" class="hide"></div><div data-wf--utility-text-size--variant="h3" class="hide"></div><div data-wf--utility-font--variant="heading" class="hide"></div><div data-wf--utility-max-width--variant="base" class="hide"></div><div data-wf--utility-text-size-mobile--variant="base"></div><div data-wf--utility-text-align-mobile--variant="inherit" class="hide"></div></div><div data-wf--spacer--variant="small" class="spacer"></div><div><p>The majority of modern applications contain unverified open source, and regulators are now turning that exposure into a board-level accountability question. Most vendors require a sales conversation before you see a real number. We publish ours. Company size set
3084s your tier, every language in that tier costs the same rate, and the number doesn&#x27;t move until your team grows.</p><div data-wf--utility-text-weight--variant="default" class="hide"></div><div data-wf--utility-text-color--variant="secondary" class="hide"></div><div data-wf--utility-text-align--variant="base" class="hide"></div><div data-wf--utility-text-size--variant="base" class="hide"></div><div data-wf--utility-max-width--variant="base" class="hide"></div><div data-wf--utility-font--variant="body" class="hide"></div><div data-wf--utility-text-align-mobile--variant="inherit" class="hide"></div></div></div><div data-wf--padding-vertical--variant="none" class="section-padding w-variant-c249e49a-6134-1129-ace4-8fc88e1b7252"></div></div></div></div></div></div></div></div></div></div></div></section></div><div data-wf--padding-vertical--variant="medium" class="section-padding w-variant-de6cb56c-802b-0ca7-5d1c-5ffea4b3737e"></div></div></div></div></div></div></div></div></div></div></div></section><section data-wf--0---section--variant="transparent" class="section_wrapper"><div data-wf--utility-border-radius--variant="none" class="hide"></div><div data-wf--utility-visibility--variant="base" class="hide"></div><div data-wf--padding-horizontal--variant="page-padding" class="padding_wrapper"><div class="padding"><div data-wf--container-width--variant="large" class="container-width_wrapper"><div class="container"><div data-wf--container-height--variant="base"><div class="content_height"><div data-wf--container-align--variant="left"><div class="content-align_slot"><div data-wf--component-max-width--variant="base" class="content-width_wrapper"><div class="content-width"><div data-wf--padding-vertical--variant="medium" class="section-padding w-variant-de6cb56c-802b-0ca7-5d1c-5ffea4b3737e"></div><div class="component_slot"><section data-wf--0---section--variant="transparent" class="section_wrapper"><div data-wf--utility-border-radius--variant="none" class="hide"></div><div data-wf--utility-visibility--variant="base" class="hide"></div><div data-wf--padding-horizontal--variant="page-padding" class="padding_wrapper"><div class="padding"><div data-wf--container-width--variant="large" class="container-width_wrapper"><div class="container"><div data-wf--container-height--variant="base"><div class="content_height"><div data-wf--container-align--variant="center"><div class="content-align_slot w-variant-1ea32fb0-fa27-5f77-d941-fc897de038f9"><div data-wf--component-max-width--variant="large" class="content-width_wrapper"><div class="content-width w-variant-fcc8c809-a7ee-12dc-6da4-422697be1e2b"><div data-wf--padding-vertical--variant="none" class="section-padding w-variant-c249e49a-6134-1129-ace4-8fc88e1b7252"></div><div class="component_slot"><div><h2>Built for both sides of the buying decision</h2><div data-wf--utility-text-weight--variant="default" class="hide"></div><div data-wf--utility-text-color--variant="scheme" class="hide"></div><div data-wf--utility-text-align--variant="center" class="hide"></div><div data-wf--utility-text-size--variant="h3" class="hide"></div><div data-wf--utility-font--variant="heading" class="hide"></div><div data-wf--utility-max-width--variant="base" class="hide"></div><div data-wf--utility-text-size-mobile--variant="base"></div><div data-wf--utility-text-align-mobile--variant="inherit" class="hide"></div></div></div><div data-wf--padding-vertical--variant="none" class="section-padding w-variant-c249e49a-6134-1129-ace4-8fc88e1b7252"></div></div></div></div></div></div></div></div></div></div></div></section><div data-wf--spacer--variant="small" class="spacer"></div><div data-wf--layout-grid--variant="2up-square-centered" class="layout_wrapper"><div data-wf--utility-gap--variant="medium" class="hide"></div><div data-wf--utility-gap-mobile--variant="base" class="hide"></div><div data-wf--utility-height--variant="auto" class="hide"><div></div></div><div data-wf--utility-align--variant="base" class="hide"></div><div data-wf--utility-justify--variant="base" class="hide"></div><div data-wf--color-scheme--variant="transparent" class="hide"></div><div data-wf--utility-order-mobile--variant="inherit" class="hide"></div><div class="grid w-variant-493a4bf5-b2f1-1af9-2647-d1070ed5f0d2">
3084<a href="#" class="feature-card w-inline-block"><div class="feature-card_text-wrapper"><div class="feature-card_heading-wrapper"><div><h2>For security and compliance leaders</h2><div data-wf--utility-text-weight--variant="default" class="hide"></div><div data-wf--utility-text-color--variant="scheme" class="hide"></div><div data-wf--utility-text-align--variant="left" class="hide"></div><div data-wf--utility-text-size--variant="h4" class="hide"></div><div data-wf--utility-font--variant="heading" class="hide"></div><div data-wf--utility-max-width--variant="base" class="hide"></div><div data-wf--utility-text-size-mobile--variant="base"></div><div data-wf--utility-text-align-mobile--variant="inherit" class="hide"></div></div></div><div><p>One number, fixed for the length of your contract. No mid-term surprises; you can plan with confidence.</p><div data-wf--utility-text-weight--variant="default" class="hide"></div><div data-wf--utility-text-color--variant="scheme" class="hide"></div><div data-wf--utility-text-align--variant="left" class="hide"></div><div data-wf--utility-text-size--variant="base" class="hide"></div><div data-wf--utility-max-width--variant="base" class="hide"></div><div data-wf--utility-font--variant="body" class="hide"></div><div data-wf--utility-text-align-mobile--variant="inherit" class="hide"></div></div></div></a><a href="#" class="feature-card w-inline-block"><div class="feature-card_text-wrapper"><div class="feature-card_heading-wrapper"><div><h2>For engineering leaders</h2><div data-wf--utility-text-weight--variant="default" class="hide"></div><div data-wf--utility-text-color--variant="scheme" class="hide"></div><div data-wf--utility-text-align--variant="left" class="hide"></div><div data-wf--utility-text-size--variant="h4" class="hide"></div><div data-wf--utility-font--variant="heading" class="hide"></div><div data-wf--utility-max-width--variant="base" class="hide"></div><div data-wf--utility-text-size-mobile--variant="base"></div><div data-wf--utility-text-align-mobile--variant="inherit" class="hide"></div></div></div><div><p>Adding a language is a roadmap decision with a rate already set. Your team adopts a new ecosystem knowing the cost upfront.</p><div data-wf--utility-text-weight--variant="default" class="hide"></div><div data-wf--utility-text-color--variant="scheme" class="hide"></div><div data-wf--utility-text-align--variant="left" class="hide"></div><div data-wf--utility-text-size--variant="base" class="hide"></div><div data-wf--utility-max-width--variant="base" class="hide"></div><div data-wf--utility-font--variant="body" class="hide"></div><div data-wf--utility-text-align-mobile--variant="inherit" class="hide"></div></div></div></a></div></div><div data-wf--spacer--variant="small" class="spacer"></div><div data-wf--spacer--variant="small" class="spacer"></div><div data-wf--button-group--variant="centered" class="button-group_wrapper"><div class="button-group w-variant-28045c7a-d103-e3f3-ce7a-71458dc88d31"><a href="https://www.activestate.com/company/contact-us-pricing" class="button w-inline-block"><div class="button_text">Let&#x27;s Talk</div><div data-wf--button-style--variant="primary" class="hide"></div><div data-wf--button-size--variant="base" class="hide"></div><div data-wf--button-width--variant="base" class="hide"></div></a></div></div></div><div data-wf--padding-vertical--variant="medium" class="section-padding w-variant-de6cb56c-802b-0ca7-5d1c-5ffea4b3737e"></div></div></div></div></div></div></div></div></div></div></div></section><section data-wf--0---section--variant="transparent" class="section_wrapper"><div data-wf--utility-border-radius--variant="none" class="hide"></div><div data-wf--utility-visibility--variant="base" class="hide"></div><div data-wf--padding-horizontal--variant="page-padding" class="padding_wrapper"><div class="padding"><div data-wf--container-width--variant="large" class="container-width_wrapper"><div class="container"><div data-wf--container-height--variant="base"><div class="content_height"><div data-wf--container-align--variant="center"><div class="content-align_slot w-variant-1ea32fb0-fa27-5f77-d941-fc897de038f9"><div data-wf--component-max-width--variant="base" class="content-width_wrapper"><div class="content-width"><div data-wf--padding-vertical--variant="medium" class="section-padding w-variant-de6cb56c-802b-0ca7-5d1c-5ffea4b3737e"></div><div class="component_slot"><div><h2>Pricing tiers</h2><div data-wf--utility-text-weight--variant="default" class="hide"></div><div data-wf--utility-text-color--variant="scheme" class="hide"></div><div data-wf--utility-text-align--variant="center" class="hide"></div><div data-wf--utility-text-size--variant="h3" class="hide"></div><div data-wf--utility-font--variant="heading" class="hide"></div><div data-wf--utility-max-width--variant="base" class="hide"></div><div data-wf--utility-text-size-mobile--variant="base"></div><div data-wf--utility-text-align-mobile--variant="inherit" class="hide"></div></div><div data-wf--spacer--variant="small" class="spacer"></div><div data-wf--pricing-tier-table--variant="small"><div class="pricing-cards-row"><div class="pricing-card-1"><div class="pricing-card-title">SMB</div><div class="pricing-card-desc-1">
3084Start with one or two languages.</div><div class="pricing-card-divider"></div><div class="pricing-card-label">Size</div><div class="pricing-card-value">&lt;<!-- --> 100 employees</div><div class="pricing-card-label">Per Language / Year</div><div class="pricing-card-price">$25,000</div></div><div class="pricing-card-1"><div class="pricing-card-title">Mid-Market</div><div class="pricing-card-desc-1">Already running multiple languages in production.</div><div class="pricing-card-divider"></div><div class="pricing-card-label">Size</div><div class="pricing-card-value">100–999 employees</div><div class="pricing-card-label">Per Language / Year</div><div class="pricing-card-price">$50,000</div></div><div class="pricing-card-1"><div class="pricing-card-title">Enterprise</div><div class="pricing-card-desc-1">Securing open source across multiple business units.</div><div class="pricing-card-divider"></div><div class="pricing-card-label">Size</div><div class="pricing-card-value">1,000+ employees</div><div class="pricing-card-label">Per Language / Year</div><div class="pricing-card-price">$150,000</div></div><div class="pricing-card-1"><div class="pricing-card-title">Enterprise+</div><div class="pricing-card-desc-1">For engineering orgs large enough that whole-catalog access is standard.</div><div class="pricing-card-divider"></div><div class="pricing-card-label">Size</div><div class="pricing-card-value">1,000+ developers</div><div class="pricing-card-label">Per Language / Year</div><a href="https://www.activestate.com/company/contact-us-pricing" class="pricing-card-cta">Talk to our team.</a></div></div></div></div><div data-wf--padding-vertical--variant="medium" class="section-padding w-variant-de6cb56c-802b-0ca7-5d1c-5ffea4b3737e"></div></div></div></div></div></div></div></div></div></div></div></section><section data-wf--0---section--variant="transparent" class="section_wrapper"><div data-wf--utility-border-radius--variant="none" class="hide"></div><div data-wf--utility-visibility--variant="base" class="hide"></div><div data-wf--padding-horizontal--variant="page-padding" class="padding_wrapper"><div class="padding"><div data-wf--container-width--variant="large" class="container-width_wrapper"><div class="container"><div data-wf--container-height--variant="base"><div class="content_height"><div data-wf--container-align--variant="center"><div class="content-align_slot w-variant-1ea32fb0-fa27-5f77-d941-fc897de038f9"><div data-wf--component-max-width--variant="large" class="content-width_wrapper"><div class="content-width w-variant-fcc8c809-a7ee-12dc-6da4-422697be1e2b"><div data-wf--padding-vertical--variant="medium" class="section-padding w-variant-de6cb56c-802b-0ca7-5d1c-5ffea4b3737e"></div><div class="component_slot"><div data-wf--spacer--variant="small" class="spacer"></div><div><h2>What&#x27;s included in every tier</h2><div data-wf--utility-text-weight--variant="default" class="hide"></div><div data-wf--utility-text-color--variant="scheme" class="hide"></div><div data-wf--utility-text-align--variant="center" class="hide"></div><div data-wf--utility-text-size--variant="h3" class="hide"></div><div data-wf--utility-font--variant="heading" class="hide"></div><div data-wf--utility-max-width--variant="base" class="hide"></div><div data-wf--utility-text-size-mobile--variant="base"></div><div data-wf--utility-text-align-mobile--variant="inherit" class="hide"></div></div><div data-wf--spacer--variant="small" class="spacer"></div><div><p>
3084Automatic SBOMs and SLSA Level 3 build provenance for every language you license, built from source and continuously remediated on a strict SLA: 5 days for Critical CVEs, 10 days for High CVEs, and 30 for all others.</p><div data-wf--utility-text-weight--variant="default" class="hide"></div><div data-wf--utility-text-color--variant="scheme" class="hide"></div><div data-wf--utility-text-align--variant="center" class="hide"></div><div data-wf--utility-text-size--variant="base" class="hide"></div><div data-wf--utility-max-width--variant="base" class="hide"></div><div data-wf--utility-font--variant="body" class="hide"></div><div data-wf--utility-text-align-mobile--variant="inherit" class="hide"></div></div><div data-wf--spacer--variant="small" class="spacer"></div><div data-wf--spacer--variant="small" class="spacer"></div><div data-wf--button-group--variant="centered" class="button-group_wrapper"><div class="button-group w-variant-28045c7a-d103-e3f3-ce7a-71458dc88d31"><a href="https://www.activestate.com/company/contact-us-pricing" class="button w-inline-block"><div class="button_text">Talk to an expert about per-language rollout</div><div data-wf--button-style--variant="primary" class="hide"></div><div data-wf--button-size--variant="base" class="hide"></div><div data-wf--button-width--variant="base" class="hide"></div></a></div></div></div><div data-wf--padding-vertical--variant="medium" class="section-padding w-variant-de6cb56c-802b-0ca7-5d1c-5ffea4b3737e"></div></div></div></div></div></div></div></div></div></div></div></section><section data-wf--0---section--variant="transparent" class="section_wrapper"><div data-wf--utility-border-radius--variant="none" class="hide"></div><div data-wf--utility-visibility--variant="base" class="hide"></div><div data-wf--padding-horizontal--variant="page-padding" class="padding_wrapper"><div class="padding"><div data-wf--container-width--variant="large" class="container-width_wrapper"><div class="container"><div data-wf--container-height--variant="base"><div class="content_height"><div data-wf--container-align--variant="center"><div class="content-align_slot w-variant-1ea32fb0-fa27-5f77-d941-fc897de038f9"><div data-wf--component-max-width--variant="base" class="content-width_wrapper"><div class="content-width"><div data-wf--padding-vertical--variant="medium" class="section-padding w-variant-de6cb56c-802b-0ca7-5d1c-5ffea4b3737e"></div><div class="component_slot"><div><h2>Adding languages and moving tiers</h2><div data-wf--utility-text-weight--variant="default" class="hide"></div><div data-wf--utility-text-color--variant="scheme" class="hide"></div><div data-wf--utility-text-align--variant="center" class="hide"></div><div data-wf--utility-text-size--variant="h3" class="hide"></div><div data-wf--utility-font--variant="heading" class="hide"></div><div data-wf--utility-max-width--variant="base" class="hide"></div><div data-wf--utility-text-size-mobile--variant="base"></div><div data-wf--utility-text-align-mobile--variant="inherit" class="hide"></div></div><div data-wf--spacer--variant="small" class="spacer"></div><div data-wf--layout-grid--variant="3-column---even" class="layout_wrapper"><div data-wf--utility-gap--variant="medium" class="hide"></div><div data-wf--utility-gap-mobile--variant="base" class="hide"></div><div data-wf--utility-height--variant="auto" class="hide"><div></div></div><div data-wf--utility-align--variant="base" class="hide"></div><div data-wf--utility-justify--variant="base" class="hide"></div><div data-wf--color-scheme--variant="transparent" class="hide"></div><div data-wf--utility-order-mobile--variant="inherit" class="hide"></div><div class="grid w-variant-8ec507cb-a5bc-ea51-7605-a194ee072078"><a href="#" class="feature-card w-inline-block"><div class="feature-card_text-wrapper"><div class="feature-card_heading-wrapper"><div><h2>Add a language at any time.</h2><div data-wf--utility-text-weight--variant="default" class="hide"></div><div data-wf--utility-text-color--variant="scheme" class="hide"></div><div data-wf--utility-text-align--variant="left" class="hide"></div><div data-wf--utility-text-size--variant="h4" class="hide"></div><div data-wf--utility-font--variant="heading" class="hide"></div><div data-wf--utility-max-width--variant="base" class="hide"></div><div data-wf--utility-text-size-mobile--variant="base"></div><div data-wf--utility-text-align-mobile--variant="inherit" class="hide"></div></div></div><div><p>Priced at your tier rate. Budgeting for a new ecosystem is transparent, with no unexpected costs.</p><div data-wf--utility-text-weight--variant="default" class="hide"></div><div data-wf--utility-text-color--variant="scheme" class="hide"></div><div data-wf--utility-text-align--variant="left" class="hide"></div><div data-wf--utility-text-size--variant="base" class="hide"></div><div data-wf--utility-max-width--variant="base" class="hide"></div><div data-wf--utility-font--variant="body" class="hide"></div><div data-wf--utility-text-align-mobile--variant="inherit" class="hide"></div></div></div></a>
3084<a href="#" class="feature-card w-inline-block"><div class="feature-card_text-wrapper"><div class="feature-card_heading-wrapper"><div><h2>Growing into Enterprise+.</h2><div data-wf--utility-text-weight--variant="default" class="hide"></div><div data-wf--utility-text-color--variant="scheme" class="hide"></div><div data-wf--utility-text-align--variant="left" class="hide"></div><div data-wf--utility-text-size--variant="h4" class="hide"></div><div data-wf--utility-font--variant="heading" class="hide"></div><div data-wf--utility-max-width--variant="base" class="hide"></div><div data-wf--utility-text-size-mobile--variant="base"></div><div data-wf--utility-text-align-mobile--variant="inherit" class="hide"></div></div></div><div><p>Large engineering organizations can start with high-impact production languages and expand coverage as adoption grows. Talk to us about phased rollouts.</p><div data-wf--utility-text-weight--variant="default" class="hide"></div><div data-wf--utility-text-color--variant="scheme" class="hide"></div><div data-wf--utility-text-align--variant="left" class="hide"></div><div data-wf--utility-text-size--variant="base" class="hide"></div><div data-wf--utility-max-width--variant="base" class="hide"></div><div data-wf--utility-font--variant="body" class="hide"></div><div data-wf--utility-text-align-mobile--variant="inherit" class="hide"></div></div></div></a><a href="#" class="feature-card w-inline-block"><div class="feature-card_text-wrapper"><div class="feature-card_heading-wrapper"><div><h2>Need custom components?</h2><div data-wf--utility-text-weight--variant="default" class="hide"></div><div data-wf--utility-text-color--variant="scheme" class="hide"></div><div data-wf--utility-text-align--variant="left" class="hide"></div><div data-wf--utility-text-size--variant="h4" class="hide"></div><div data-wf--utility-font--variant="heading" class="hide"></div><div data-wf--utility-max-width--variant="base" class="hide"></div><div data-wf--utility-text-size-mobile--variant="base"></div><div data-wf--utility-text-align-mobile--variant="inherit" class="hide"></div></div></div><div><p>Our team delivers custom components outside of the Catalog&#x27;s scope. Talk to our team to discuss your needs.</p><div data-wf--utility-text-weight--variant="default" class="hide"></div><div data-wf--utility-text-color--variant="scheme" class="hide"></div><div data-wf--utility-text-align--variant="left" class="hide"></div><div data-wf--utility-text-size--variant="base" class="hide"></div><div data-wf--utility-max-width--variant="base" class="hide"></div><div data-wf--utility-font--variant="body" class="hide"></div><div data-wf--utility-text-align-mobile--variant="inherit" class="hide"></div></div></div></a></div></div><div data-wf--spacer--variant="small" class="spacer"></div><div data-wf--layout-grid--variant="2up-square-centered" class="layout_wrapper"><div data-wf--utility-gap--variant="medium" class="hide"></div><div data-wf--utility-gap-mobile--variant="base" class="hide"></div><div data-wf--utility-height--variant="auto" class="hide"><div></div></div><div data-wf--utility-align--variant="base" class="hide"></div><div data-wf--utility-justify--variant="base" class="hide"></div><div data-wf--color-scheme--variant="transparent" class="hide"></div><div data-wf--utility-order-mobile--variant="inherit" class="hide"></div><div class="grid w-variant-493a4bf5-b2f1-1af9-2647-d1070ed5f0d2"><a href="#" class="feature-card w-inline-block"><div class="feature-card_text-wrapper"><div class="feature-card_heading-wrapper"><div><h2>Need an OEM or distribution agreement?</h2><div data-wf--utility-text-weight--variant="default" class="hide"></div><div data-wf--utility-text-color--variant="scheme" class="hide"></div><div data-wf--utility-text-align--variant="left" class="hide"></div><div data-wf--utility-text-size--variant="h4" class="hide"></div><div data-wf--utility-font--variant="heading" class="hide"></div><div data-wf--utility-max-width--variant="base" class="hide"></div><div data-wf--utility-text-size-mobile--variant="base"></div><div data-wf--utility-text-align-mobile--variant="inherit" class="hide"></div></div></div><div><p>These fall outside of our standard tier model. Talk to our team to scope an engagement built around your business.</p><div data-wf--utility-text-weight--variant="default" class="hide"></div><div data-wf--utility-text-color--variant="scheme" class="hide"></div><div data-wf--utility-text-align--variant="left" class="hide"></div><div data-wf--utility-text-size--variant="base" class="hide"></div><div data-wf--utility-max-width--variant="base" class="hide"></div><div data-wf--utility-font--variant="body" class="hide"></div><div data-wf--utility-text-align-mobile--variant="inherit" class="hide"></div></div></div></a>
3084<a href="#" class="feature-card w-inline-block"><div class="feature-card_text-wrapper"><div class="feature-card_heading-wrapper"><div><h2>Have complex integration or custom needs?</h2><div data-wf--utility-text-weight--variant="default" class="hide"></div><div data-wf--utility-text-color--variant="scheme" class="hide"></div><div data-wf--utility-text-align--variant="left" class="hide"></div><div data-wf--utility-text-size--variant="h4" class="hide"></div><div data-wf--utility-font--variant="heading" class="hide"></div><div data-wf--utility-max-width--variant="base" class="hide"></div><div data-wf--utility-text-size-mobile--variant="base"></div><div data-wf--utility-text-align-mobile--variant="inherit" class="hide"></div></div></div><div><p>Organizations with unique technical requirements can work with our team via a tailored engagement agreement. Talk to us about what&#x27;s possible.</p><div data-wf--utility-text-weight--variant="default" class="hide"></div><div data-wf--utility-text-color--variant="scheme" class="hide"></div><div data-wf--utility-text-align--variant="left" class="hide"></div><div data-wf--utility-text-size--variant="base" class="hide"></div><div data-wf--utility-max-width--variant="base" class="hide"></div><div data-wf--utility-font--variant="body" class="hide"></div><div data-wf--utility-text-align-mobile--variant="inherit" class="hide"></div></div></div></a></div></div><div data-wf--spacer--variant="small" class="spacer"></div><div data-wf--button-group--variant="centered" class="button-group_wrapper"><div class="button-group w-variant-28045c7a-d103-e3f3-ce7a-71458dc88d31"><a href="https://www.activestate.com/company/contact-us-pricing" class="button w-inline-block"><div class="button_text">Get a quote for your organization</div><div data-wf--button-style--variant="primary" class="hide"></div><div data-wf--button-size--variant="base" class="hide"></div><div data-wf--button-width--variant="base" class="hide"></div></a></div></div></div><div data-wf--padding-vertical--variant="medium" class="section-padding w-variant-de6cb56c-802b-0ca7-5d1c-5ffea4b3737e"></div></div></div></div></div></div></div></div></div></div></div></section><section data-wf--0---section--variant="transparent" class="section_wrapper"><div data-wf--utility-border-radius--variant="none" class="hide"></div><div data-wf--utility-visibility--variant="base" class="hide"></div><div data-wf--padding-horizontal--variant="page-padding" class="padding_wrapper"><div class="padding"><div data-wf--container-width--variant="large" class="container-width_wrapper"><div class="container"><div data-wf--container-height--variant="base"><div class="content_height"><div data-wf--container-align--variant="left"><div class="content-align_slot"><div data-wf--component-max-width--variant="base" class="content-width_wrapper"><div class="content-width"><div data-wf--padding-vertical--variant="medium" class="section-padding w-variant-de6cb56c-802b-0ca7-5d1c-5ffea4b3737e"></div><div class="component_slot"><div data-wf--layout-grid--variant="2-column---30-70" class="layout_wrapper"><div data-wf--utility-gap--variant="medium" class="hide"></div><div data-wf--utility-gap-mobile--variant="base" class="hide"></div><div data-wf--utility-height--variant="auto" class="hide"><div></div></div><div data-wf--utility-align--variant="base" class="hide"></div><div data-wf--utility-justify--variant="base" class="hide"></div><div data-wf--color-scheme--variant="transparent" class="hide"></div><div data-wf--utility-order-mobile--variant="inherit" class="hide"></div><div class="grid w-variant-62a3a494-53d0-55d9-6af1-352d0120f0e2"><div><h2>FAQs</h2><div data-wf--utility-text-weight--variant="default" class="hide"></div><div data-wf--utility-text-color--variant="scheme" class="hide"></div><div data-wf--utility-text-align--variant="base" class="hide"></div><div data-wf--utility-text-size--variant="base" class="hide"></div><div data-wf--utility-font--variant="heading" class="hide"></div><div data-wf--utility-max-width--variant="base" class="hide"></div><div data-wf--utility-text-size-mobile--variant="base"></div><div data-wf--utility-text-align-mobile--variant="inherit" class="hide"></div></div><div class="faqs_component"><div class="hide"><div data-wf--cta-card--variant="base" class="card_cta"><div class="card_cta-content"><div><h3>Still have questions?</h3><div data-wf--utility-text-weight--variant="default" class="hide"></div><div data-wf--utility-text-color--variant="scheme" class="hide"></div><div data-wf--utility-text-align--variant="base" class="hide"></div><div data-wf--utility-text-size--variant="h5" class="hide"></div><div data-wf--utility-font--variant="heading" class="hide"></div><div data-wf--utility-max-width--variant="base" class="hide"></div><div data-wf--utility-text-size-mobile--variant="base"></div><div data-wf--utility-text-align-mobile--variant="center" class="hide"></div></div><div><p>Talk to our team.</p><div data-wf--utility-text-weight--variant="default" class="hide"></div><div data-wf--utility-text-color--variant="scheme" class="hide"></div><div data-wf--utility-text-align--variant="base" class="hide"></div><div data-wf--utility-text-size--variant="base" class="hide"></div><div data-wf--utility-max-width--variant="base" class="hide"></div><div data-wf--utility-font--variant="body" class="hide"></div><div data-wf--utility-text-align-mobile--variant="inherit" class="hide"></div></div></div><div class="card_cta-button"><a href="/company/contact-us" class="button w-inline-block"><div class="button_text">Contact Support</div><div data-wf--button-style--variant="primary" class="hide"></div><div data-wf--button-size--variant="base" class="hide"></div><div data-wf--button-width--variant="base" class="hide"></div></a></div></div></div><div class="hide w-embed w-script">
3084<script>
3085window.Webflow ||= [];
3086window.Webflow.push(function () {
3087  var items = document.querySelectorAll('.faqs_item');
3088  if (!items.length) return;
3089
3090  items.forEach(function (item) {
3091    var card = item.querySelector('.faq-item_card');
3092    var answer = item.querySelector('.faq-item_answer');
3093    var icon = item.querySelector('.faq-item_icon');
3094    if (!card || !answer) return;
3095
3096    answer.style.overflow = 'hidden';
3097    answer.style.height = '0px';
3098    answer.style.transition = 'height 0.35s ease';
3099    card.style.cursor = 'pointer';
3100
3101    if (icon) {
3102      icon.style.transition = 'transform 0.35s ease';
3103      icon.style.transformOrigin = 'center';
3104    }
3105
3106    var isOpen = false;
3107
3108    card.addEventListener('click', function () {
3109      if (!isOpen) {
3110        answer.style.height = answer.scrollHeight + 'px';
3111        if (icon) icon.style.transform = 'rotate(-45deg)';
3112        isOpen = true;
3113      } else {
3114        // If currently at 'auto', snap to a pixel value so the transition to 0 has something to animate from.
3115        answer.style.height = answer.scrollHeight + 'px';
3116        answer.offsetHeight; // force reflow
3117        answer.style.height = '0px';
3118        if (icon) icon.style.transform = 'rotate(0deg)';
3119        isOpen = false;
3120      }
3121    });
3122
3123    answer.addEventListener('transitionend', function (e) {
3124      if (e.propertyName === 'height' && isOpen) {
3125        answer.style.height = 'auto';
3126      }
3127    });
3128  });
3129});
3130</script>
3130</div><div class="w-dyn-list"><div role="list" class="faqs_list w-dyn-items"><div role="listitem" class="faqs_item w-dyn-item"><div class="faq-item_card"><div class="faq-item_accordion"><div><h2>How does ActiveState price the Curated Catalog?</h2><div data-wf--utility-text-weight--variant="default" class="hide"></div><div data-wf--utility-text-color--variant="primary" class="hide"></div><div data-wf--utility-text-align--variant="base" class="hide"></div><div data-wf--utility-text-size--variant="text-medium" class="hide"></div><div data-wf--utility-font--variant="heading" class="hide"></div><div data-wf--utility-max-width--variant="base" class="hide"></div><div data-wf--utility-text-size-mobile--variant="base"></div><div data-wf--utility-text-align-mobile--variant="inherit" class="hide"></div></div><div class="faq-item_icon"><div class="icon-1x1-small"><svg xmlns="http://www.w3.org/2000/svg" width="100%" viewBox="0 0 16 16" fill="none" class="icon"><g opacity="0.6"><path d="M8.00004 3.33301V12.6663M3.33337 7.99967H12.6667" stroke="#535B62" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></g></svg></div></div></div><div class="faq-item_answer"><div data-wf--spacer--variant="small" class="spacer"></div><div class="text-rich-text w-richtext"><p>ActiveState prices the Curated Catalog by company size and language, not by component count. Customers are placed into one of four tiers based on employee count (or developer count for the largest tier), and every language costs the same flat rate within that tier.</p></div></div></div></div><div role="listitem" class="faqs_item w-dyn-item"><div class="faq-item_card"><div class="faq-item_accordion"><div><h2>How much does ActiveState&#x27;s Curated Catalog cost?</h2><div data-wf--utility-text-weight--variant="default" class="hide"></div><div data-wf--utility-text-color--variant="primary" class="hide"></div><div data-wf--utility-text-align--variant="base" class="hide"></div><div data-wf--utility-text-size--variant="text-medium" class="hide"></div><div data-wf--utility-font--variant="heading" class="hide"></div><div data-wf--utility-max-width--variant="base" class="hide"></div><div data-wf--utility-text-size-mobile--variant="base"></div><div data-wf--utility-text-align-mobile--variant="inherit" class="hide"></div></div><div class="faq-item_icon"><div class="icon-1x1-small"><svg xmlns="http://www.w3.org/2000/svg" width="100%" viewBox="0 0 16 16" fill="none" class="icon"><g opacity="0.6"><path d="M8.00004 3.33301V12.6663M3.33337 7.99967H12.6667" stroke="#535B62" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></g></svg></div></div></div><div class="faq-item_answer"><div data-wf--spacer--variant="small" class="spacer"></div><div class="text-rich-text w-richtext"><p>Curated Catalog pricing starts at $25,000 per language per year for companies under 100 employees, rising to $50,000 for 100–999 employees and $150,000 for 1,000+ employees. Large organizations can license the entire catalog, with pricing scoped at contract.</p></div></div></div></div><div role="listitem" class="faqs_item w-dyn-item"><div class="faq-item_card"><div class="faq-item_accordion"><div><h2>Why is Curated Catalog pricing set by tier and language, rather than by component count?</h2><div data-wf--utility-text-weight--variant="default" class="hide"></div><div data-wf--utility-text-color--variant="primary" class="hide"></div><div data-wf--utility-text-align--variant="base" class="hide"></div><div data-wf--utility-text-size--variant="text-medium" class="hide"></div><div data-wf--utility-font--variant="heading" class="hide"></div><div data-wf--utility-max-width--variant="base" class="hide"></div><div data-wf--utility-text-size-mobile--variant="base"></div><div data-wf--utility-text-align-mobile--variant="inherit" class="hide"></div></div><div class="faq-item_icon"><div class="icon-1x1-small"><svg xmlns="http://www.w3.org/2000/svg" width="100%" viewBox="0 0 16 16" fill="none" class="icon"><g opacity="0.6"><path d="M8.00004 3.33301V12.6663M3.33337 7.99967H12.6667" stroke="#535B62" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></g></svg></div></div></div><div class="faq-item_answer"><div data-wf--spacer--variant="small" class="spacer"></div><div class="text-rich-text w-richtext"><p>Tier-and-language pricing sets the number from two facts a customer already knows: company size and which languages they run. There&#x27;s no usage estimate to make up front and no component count to reconcile at renewal. The price is set by decisions the customer controls directly</p></div></div></div></div><div role="listitem" class="faqs_item w-dyn-item"><div class="faq-item_card"><div class="faq-item_accordion"><div><h2>What counts as a language for Curated Catalog pricing?</h2><div data-wf--utility-text-weight--variant="default" class="hide"></div><div data-wf--utility-text-color--variant="primary" class="hide"></div><div data-wf--utility-text-align--variant="base" class="hide"></div><div data-wf--utility-text-size--variant="text-medium" class="hide"></div><div data-wf--utility-font--variant="heading" class="hide"></div><div data-wf--utility-max-width--variant="base" class="hide"></div><div data-wf--utility-text-size-mobile--variant="base"></div><div data-wf--utility-text-align-mobile--variant="inherit" class="hide"></div></div><div class="faq-item_icon"><div class="icon-1x1-small">
3130<svg xmlns="http://www.w3.org/2000/svg" width="100%" viewBox="0 0 16 16" fill="none" class="icon"><g opacity="0.6"><path d="M8.00004 3.33301V12.6663M3.33337 7.99967H12.6667" stroke="#535B62" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></g></svg></div></div></div><div class="faq-item_answer"><div data-wf--spacer--variant="small" class="spacer"></div><div class="text-rich-text w-richtext"><p>Each of ActiveState&#x27;s supported language ecosystems is licensed and priced individually at the customer&#x27;s tier rate. A customer using three language ecosystems licenses and pays for three, regardless of which specific languages they are.</p></div></div></div></div><div role="listitem" class="faqs_item w-dyn-item"><div class="faq-item_card"><div class="faq-item_accordion"><div><h2>Does ActiveState offer custom engagements beyond the standard tiers?</h2><div data-wf--utility-text-weight--variant="default" class="hide"></div><div data-wf--utility-text-color--variant="primary" class="hide"></div><div data-wf--utility-text-align--variant="base" class="hide"></div><div data-wf--utility-text-size--variant="text-medium" class="hide"></div><div data-wf--utility-font--variant="heading" class="hide"></div><div data-wf--utility-max-width--variant="base" class="hide"></div><div data-wf--utility-text-size-mobile--variant="base"></div><div data-wf--utility-text-align-mobile--variant="inherit" class="hide"></div></div><div class="faq-item_icon"><div class="icon-1x1-small"><svg xmlns="http://www.w3.org/2000/svg" width="100%" viewBox="0 0 16 16" fill="none" class="icon"><g opacity="0.6"><path d="M8.00004 3.33301V12.6663M3.33337 7.99967H12.6667" stroke="#535B62" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></g></svg></div></div></div><div class="faq-item_answer"><div data-wf--spacer--variant="small" class="spacer"></div><div class="text-rich-text w-richtext"><p>Yes. Organizations with OEM, embedded distribution, or complex custom solution needs work with our team on an engagement scoped to their specific requirements, separate from the standard per-language tier model. Talk to us to discuss your use case.</p></div></div></div></div><div role="listitem" class="faqs_item w-dyn-item"><div class="faq-item_card"><div class="faq-item_accordion"><div><h2>What happens when a CVE affects a component version outside ActiveState&#x27;s active support window?</h2><div data-wf--utility-text-weight--variant="default" class="hide"></div><div data-wf--utility-text-color--variant="primary" class="hide"></div><div data-wf--utility-text-align--variant="base" class="hide"></div><div data-wf--utility-text-size--variant="text-medium" class="hide"></div><div data-wf--utility-font--variant="heading" class="hide"></div><div data-wf--utility-max-width--variant="base" class="hide"></div><div data-wf--utility-text-size-mobile--variant="base"></div><div data-wf--utility-text-align-mobile--variant="inherit" class="hide"></div></div><div class="faq-item_icon"><div class="icon-1x1-small"><svg xmlns="http://www.w3.org/2000/svg" width="100%" viewBox="0 0 16 16" fill="none" class="icon"><g opacity="0.6"><path d="M8.00004 3.33301V12.6663M3.33337 7.99967H12.6667" stroke="#535B62" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></g></svg></div></div></div><div class="faq-item_answer"><div data-wf--spacer--variant="small" class="spacer"></div><div class="text-rich-text w-richtext"><p>ActiveState actively supports every version of a component up to, but not including, that component&#x27;s end-of-life release, with full CVE response and SLA coverage for the entire supported range. Once a version reaches end of life, continued support is available through a custom EOL support agreement; customers should talk to their ActiveState representative before that transition. Most language ecosystems publish EOL dates well ahead of time, often years in advance, so organizations typically have significant lead time to plan an upgrade before support ends.</p></div></div></div></div><div role="listitem" class="faqs_item w-dyn-item"><div class="faq-item_card"><div class="faq-item_accordion"><div><h2>Does ActiveState&#x27;s Curated Catalog pricing change during the contract term?</h2><div data-wf--utility-text-weight--variant="default" class="hide"></div><div data-wf--utility-text-color--variant="primary" class="hide"></div><div data-wf--utility-text-align--variant="base" class="hide"></div><div data-wf--utility-text-size--variant="text-medium" class="hide"></div><div data-wf--utility-font--variant="heading" class="hide"></div><div data-wf--utility-max-width--variant="base" class="hide"></div><div data-wf--utility-text-size-mobile--variant="base"></div><div data-wf--utility-text-align-mobile--variant="inherit" class="hide"></div></div><div class="faq-item_icon"><div class="icon-1x1-small">
3130<svg xmlns="http://www.w3.org/2000/svg" width="100%" viewBox="0 0 16 16" fill="none" class="icon"><g opacity="0.6"><path d="M8.00004 3.33301V12.6663M3.33337 7.99967H12.6667" stroke="#535B62" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></g></svg></div></div></div><div class="faq-item_answer"><div data-wf--spacer--variant="small" class="spacer"></div><div class="text-rich-text w-richtext"><p>No, ActiveState&#x27;s per-language rate is fixed for the full contract term. The rate only changes at renewal, and only if the customer moves to a new size tier or adds languages.</p></div></div></div></div><div role="listitem" class="faqs_item w-dyn-item"><div class="faq-item_card"><div class="faq-item_accordion"><div><h2>Does ActiveState offer multi-year contract terms for the Curated Catalog?</h2><div data-wf--utility-text-weight--variant="default" class="hide"></div><div data-wf--utility-text-color--variant="primary" class="hide"></div><div data-wf--utility-text-align--variant="base" class="hide"></div><div data-wf--utility-text-size--variant="text-medium" class="hide"></div><div data-wf--utility-font--variant="heading" class="hide"></div><div data-wf--utility-max-width--variant="base" class="hide"></div><div data-wf--utility-text-size-mobile--variant="base"></div><div data-wf--utility-text-align-mobile--variant="inherit" class="hide"></div></div><div class="faq-item_icon"><div class="icon-1x1-small"><svg xmlns="http://www.w3.org/2000/svg" width="100%" viewBox="0 0 16 16" fill="none" class="icon"><g opacity="0.6"><path d="M8.00004 3.33301V12.6663M3.33337 7.99967H12.6667" stroke="#535B62" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></g></svg></div></div></div><div class="faq-item_answer"><div data-wf--spacer--variant="small" class="spacer"></div><div class="text-rich-text w-richtext"><p>Yes, ActiveState offers discounted multi-year agreements at every pricing tier for the Curated Catalog.</p></div></div></div></div><div role="listitem" class="faqs_item w-dyn-item"><div class="faq-item_card"><div class="faq-item_accordion"><div><h2>What support level does ActiveState include with Curated Catalog?</h2><div data-wf--utility-text-weight--variant="default" class="hide"></div><div data-wf--utility-text-color--variant="primary" class="hide"></div><div data-wf--utility-text-align--variant="base" class="hide"></div><div data-wf--utility-text-size--variant="text-medium" class="hide"></div><div data-wf--utility-font--variant="heading" class="hide"></div><div data-wf--utility-max-width--variant="base" class="hide"></div><div data-wf--utility-text-size-mobile--variant="base"></div><div data-wf--utility-text-align-mobile--variant="inherit" class="hide"></div></div><div class="faq-item_icon"><div class="icon-1x1-small"><svg xmlns="http://www.w3.org/2000/svg" width="100%" viewBox="0 0 16 16" fill="none" class="icon"><g opacity="0.6"><path d="M8.00004 3.33301V12.6663M3.33337 7.99967H12.6667" stroke="#535B62" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></g></svg></div></div></div><div class="faq-item_answer"><div data-wf--spacer--variant="small" class="spacer"></div><div class="text-rich-text w-richtext"><p>ActiveState includes the same support level across every Curated Catalog tier, with no tier-gated support features. Every component in the catalog carries an active CVE remediation SLA of 5 days for critical vulnerabilities, 10 days for high, and 30 days for all others. Curated Catalog customers receive a named account contact and account team from onboarding through renewal, structured onboarding that integrates components into existing package managers, pipelines, and repositories, and ongoing access to the ActiveState Portal for catalog visibility, automatic SBOMs, and version tracking. Components requiring maintenance outside the standard support window are available through special component maintenance, priced as custom work.</p></div></div></div></div><div role="listitem" class="faqs_item w-dyn-item"><div class="faq-item_card"><div class="faq-item_accordion"><div><h2>
3130Does Curated Catalog pricing apply to ActiveState Platform Enterprise or Business Tier License Subscriptions or affect my existing contract?</h2><div data-wf--utility-text-weight--variant="default" class="hide"></div><div data-wf--utility-text-color--variant="primary" class="hide"></div><div data-wf--utility-text-align--variant="base" class="hide"></div><div data-wf--utility-text-size--variant="text-medium" class="hide"></div><div data-wf--utility-font--variant="heading" class="hide"></div><div data-wf--utility-max-width--variant="base" class="hide"></div><div data-wf--utility-text-size-mobile--variant="base"></div><div data-wf--utility-text-align-mobile--variant="inherit" class="hide"></div></div><div class="faq-item_icon"><div class="icon-1x1-small"><svg xmlns="http://www.w3.org/2000/svg" width="100%" viewBox="0 0 16 16" fill="none" class="icon"><g opacity="0.6"><path d="M8.00004 3.33301V12.6663M3.33337 7.99967H12.6667" stroke="#535B62" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></g></svg></div></div></div><div class="faq-item_answer"><div data-wf--spacer--variant="small" class="spacer"></div><div class="text-rich-text w-richtext"><p>No. The Curated Catalog pricing model does not apply to existing ActiveState Platform Enterprise or Business Tier license subscriptions. Legacy platform licensing agreements are unaffected, and current customers continue under their existing contract terms through the end of their term.</p><p>For pricing information on ActiveState Platform Enterprise or Business Tier License Subscriptions, contact your account representative / sales team.</p></div></div></div></div></div></div></div></div></div></div><div data-wf--padding-vertical--variant="none" class="section-padding w-variant-c249e49a-6134-1129-ace4-8fc88e1b7252"></div></div></div></div></div></div></div></div></div></div></div></section></div><footer class="footer"><div class="padding-global"><div class="container-large"><div class="footer_component"><div class="footer_top"><div class="footer-top_left"><div class="footer-info_wrapper"><a href="/" class="footer-info_logo-link w-inline-block"><svg xmlns="http://www.w3.org/2000/svg" width="100%" viewBox="0 0 213 48" fill="none" class="footer-info_logo"><g clip-path="url(#clip0_14_3157)"><path d="M12.5641 21.0826V23.8943H12.5655V28.906C12.5655 30.2009 13.2619 31.4072 14.383 32.055L16.2899 33.1571L18.7249 31.7515L15.6019 29.9467C15.2315 29.7327 15.0012 29.3341 15.0012 28.906V23.8246V19.6763L15.0005 9.46297C15.0005 9.14186 15.1259 8.83977 15.3526 8.61303C15.5794 8.38628 15.8815 8.26094 16.2026 8.26094H26.1166C26.7793 8.26094 27.3187 8.80034 27.3187 9.46297V16.8624L29.7544 18.2687V9.46226C29.753 7.45677 28.1214 5.8252 26.1159 5.8252H16.2019C15.2301 5.8252 14.3168 6.20334 13.6295 6.89061C12.9422 7.57789 12.5641 8.4912 12.5641 9.46297L12.5655 21.0819H12.5648L12.5641 21.0826Z" fill="#0A68C6"></path><path d="M23.5915 34.5645L27.9362 32.0562C29.058 31.4083 29.7551 30.2014 29.7551 28.9057V26.7101L27.3194 25.3038V28.9057C27.3194 29.3338 27.0891 29.7331 26.7187 29.9472L22.5676 32.3435V32.3449L17.1574 35.4686V35.4672L9.86145 39.6789C9.5833 39.8394 9.25938 39.8817 8.94954 39.7993C8.639 39.7162 8.37987 39.5176 8.21931 39.2395L3.26262 30.6542C2.93096 30.0803 3.12883 29.343 3.70273 29.012L10.1304 25.301V22.4893L2.48521 26.903C0.748013 27.9058 0.150873 30.1345 1.15362 31.8717L6.11031 40.457C6.59619 41.2985 7.38064 41.9006 8.31931 42.1519C8.63267 42.2357 8.95095 42.2773 9.26642 42.2773C9.89666 42.2773 10.5192 42.1118 11.079 41.7886L21.1571 35.97L23.5922 34.5645H23.5915Z" fill="#0A68C6"></path><path d="M39.8192 26.9026L29.7537 21.0854V21.0805L27.318 19.6742V19.6777L22.9788 17.1702C22.4176 16.8456 21.7881 16.6836 21.1593 16.6836C20.5304 16.6836 19.9016 16.8456 19.3404 17.1695L17.4349 18.2694V21.0812L20.5579 19.2778C20.929 19.0637 21.3895 19.0637 21.7606 19.2778L27.318 22.4895L32.2134 25.3168V25.3182L38.6003 29.0095C39.1742 29.3411 39.3713 30.0777 39.0397 30.6516L34.083 39.2376C33.9224 39.5158 33.6633 39.7151 33.3528 39.7974C33.0422 39.8805 32.7183 39.8376 32.4401 39.677L26.0251 35.9695L23.5901 37.3751L31.2219 41.7853C32.0634 42.2712 33.0436 42.4008 33.9823 42.1494C34.921 41.898 35.7061 41.2959 36.192 40.4544L41.1487 31.8684C42.1514 30.1319 41.5543 27.9032 39.8185 26.9005L39.8192 26.9026Z" fill="#0A68C6"></path><path d="M200.977 34.2764C196.224 34.2764 193.482 31.0162 193.482 26.0194C193.482 20.9007 196.254 17.6406 200.885 17.6406C205.974 17.6406 208.411 21.3273 208.015 26.5679H196.559C196.589 30.1022 198.326 31.8694 200.977 31.8694C203.11 31.8694 204.572 30.742 204.938 29.0663H207.924C207.497 32.3264 204.663 34.2764 200.977 34.2764ZM200.885 20.0476C198.417 20.0476 196.833 21.571 196.589 24.4351H204.938C204.846 21.3882 203.201 20.0476 200.885 20.0476Z" fill="#252E37"></path><path d="M188.676 34.0025C186.025 34.0025 185.202 32.8142 185.202 30.651V20.444H182.156V17.8847H185.202V13.223L188.341 12.8574V17.8847H191.905V20.444H188.341V30.0721C188.341 31.1385 188.706 31.4127 189.712 31.4127H191.905V34.0025H188.676Z" fill="#252E37"></path><path d="M170.874 34.2766C166.943 34.2766 164.293 31.3211 164.293 25.9282C164.293 20.5353 166.943 17.6104 170.874 17.6104C173.585 17.6104 175.596 18.9814 176.358 21.0533H176.541L176.663 17.8846H179.679V34.0023H176.541V30.8032H176.358C175.596 32.875 173.585 34.2766 170.874 34.2766ZM171.971 31.6867C174.957 31.6867 176.51 29.3407 176.51 26.8423V25.0142C176.51 22.5462 174.957 20.1697 171.971 20.1697C169.289 20.1697 167.522 22.1197 167.522 25.9282C167.522 29.7063 169.289 31.6867 171.971 31.6867Z" fill="#252E37"></path><path d="M159.487 34.0025C156.836 34.0025 156.014 32.8142 156.014 30.651V20.444H152.967V17.8847H156.014V13.223L159.152 12.8574V17.8847H162.717V20.444H159.152V30.0721C159.152 31.1385 159.517 31.4127 160.523 31.4127H162.717V34.0025H159.487Z" fill="#252E37"></path><path d="M144.932 34.3072C140.696 34.3072 138.168 32.144 138.168 28.9448H141.275C141.275 31.0471 142.799 32.0221 144.993 32.0221C147.217 32.0221 148.405 31.1385 148.405 29.6456C148.405 27.9698 147.339 27.5128 144.657 27.1167C140.605 26.5378 138.594 25.4714 138.594 22.455C138.594 19.5301 141.154 17.5801 144.962 17.5801C148.832 17.5801 151.208 19.5605 151.269 22.6378H148.192C148.161 20.6879 146.882 19.8957 144.901 19.8957C142.921 19.8957 141.732 20.7793 141.732 22.1503C141.732 23.7347 142.951 24.2222 145.785 24.6183C149.532 25.1362 151.574 26.2026 151.574 29.3713C151.574 32.5401 148.923 34.3
3130072 144.932 34.3072Z" fill="#252E37"></path><path d="M128.971 34.2764C124.218 34.2764 121.476 31.0162 121.476 26.0194C121.476 20.9007 124.249 17.6406 128.88 17.6406C133.968 17.6406 136.406 21.3273 136.01 26.5679H124.554C124.584 30.1022 126.321 31.8694 128.971 31.8694C131.104 31.8694 132.567 30.742 132.932 29.0663H135.918C135.492 32.3264 132.658 34.2764 128.971 34.2764ZM128.88 20.0476C126.412 20.0476 124.828 21.571 124.584 24.4351H132.932C132.841 21.3882 131.196 20.0476 128.88 20.0476Z" fill="#252E37"></path><path d="M111.2 34.0025L105.411 17.8848H108.793L112.022 27.8175L113.058 31.2909H113.18L114.155 27.8175L117.385 17.8848H120.767L115.039 34.0025H111.2Z" fill="#252E37"></path><path d="M100.198 15.4168V11.791H103.336V15.4168H100.198ZM100.198 34.0025V17.8847H103.336V34.0025H100.198Z" fill="#252E37"></path><path d="M93.849 34.0025C91.1982 34.0025 90.3756 32.8142 90.3756 30.651V20.444H87.3287V17.8847H90.3756V13.223L93.5138 12.8574V17.8847H97.0786V20.444H93.5138V30.0721C93.5138 31.1385 93.8794 31.4127 94.8849 31.4127H97.0786V34.0025H93.849Z" fill="#252E37"></path><path d="M78.873 34.2764C74.1504 34.2764 71.0427 30.9553 71.0427 25.9585C71.0427 20.9617 74.1504 17.6406 78.9949 17.6406C82.8949 17.6406 85.7589 19.9867 86.0026 23.4601H82.9558C82.5902 21.3578 80.9754 20.2609 78.9035 20.2609C75.9176 20.2609 74.2418 22.546 74.2418 25.989C74.2418 29.6147 76.0699 31.6561 78.873 31.6561C81.2191 31.6561 82.773 30.285 83.0167 28.2436H86.0636C85.8198 31.8998 82.8949 34.2764 78.873 34.2764Z" fill="#252E37"></path><path d="M59.0572 34.2766C55.1268 34.2766 52.476 31.3211 52.476 25.9282C52.476 20.5353 55.1268 17.6104 59.0572 17.6104C61.7689 17.6104 63.7798 18.9814 64.5415 21.0533H64.7243L64.8462 17.8846H67.8625V34.0023H64.7243V30.8032H64.5415C63.7798 32.875 61.7689 34.2766 59.0572 34.2766ZM60.154 31.6867C63.1399 31.6867 64.6938 29.3407 64.6938 26.8423V25.0142C64.6938 22.5462 63.1399 20.1697 60.154 20.1697C57.4728 20.1697 55.7057 22.1197 55.7057 25.9282C55.7057 29.7063 57.4728 31.6867 60.154 31.6867Z" fill="#252E37"></path></g><defs><clippath id="clip0_14_3157"><rect width="208.5" height="38.1015" fill="white" transform="translate(0 4.94922)"></rect></clippath></defs></svg></a><div><p>Vetted, secure open source components built from source, remediated continuously, and delivered through your existing tools.</p><div data-wf--utility-text-weight--variant="default" class="hide"></div><div data-wf--utility-text-color--variant="secondary" class="hide"></div><div data-wf--utility-text-align--variant="base" class="hide"></div><div data-wf--utility-text-size--variant="base" class="hide"></div><div data-wf--utility-max-width--variant="base" class="hide"></div><div data-wf--utility-font--variant="body" class="hide"></div><div data-wf--utility-text-align-mobile--variant="inherit" class="hide"></div></div><div class="footer-info_social-links"><a href="https://www.linkedin.com/company/activestate/" target="_blank" class="footer_social-link w-inline-block"><svg xmlns="http://www.w3.org/2000/svg" width="100%" viewBox="0 0 24 24" fill="none" class="icon"><g clip-path="url(#clip0_14_3178)"><path d="M22.2234 0H1.77187C0.792187 0 0 0.773438 0 1.72969V22.2656C0 23.2219 0.792187 24 1.77187 24H22.2234C23.2031 24 24 23.2219 24 22.2703V1.72969C24 0.773438 23.2031 0 22.2234 0ZM7.12031 20.4516H3.55781V8.99531H7.12031V20.4516ZM5.33906 7.43438C4.19531 7.43438 3.27188 6.51094 3.27188 5.37187C3.27188 4.23281 4.19531 3.30937 5.33906 3.30937C6.47813 3.30937 7.40156 4.23281 7.40156 5.37187C7.40156 6.50625 6.47813 7.43438 5.33906 7.43438ZM20.4516 20.4516H16.8937V14.8828C16.8937 13.5562 16.8703 11.8453 15.0422 11.8453C13.1906 11.8453 12.9094 13.2937 12.9094 14.7891V20.4516H9.35625V8.99531H12.7687V10.5609H12.8156C13.2891 9.66094 14.4516 8.70938 16.1813 8.70938C19.7859 8.70938 20.4516 11.0813 20.4516 14.1656V20.4516Z" fill="currentColor"></path></g><defs><clippath id="clip0_14_3178"><rect width="24" height="24" fill="currentColor"></rect></clippath></defs></svg></a><a href="https://www.youtube.com/@activestate/videos" target="_blank" class="footer_social-link w-inline-block">
3130<svg xmlns="http://www.w3.org/2000/svg" width="100%" viewBox="0 0 461 461" fill="none" class="icon"><path d="M365.257 67.3931H95.744C42.866 67.3931 0 110.259 0 163.137V297.865C0 350.743 42.866 393.609 95.744 393.609H365.257C418.135 393.609 461.001 350.743 461.001 297.865V163.137C461.001 110.259 418.135 67.3931 365.257 67.3931ZM300.506 237.056L174.446 297.179C171.087 298.781 167.207 296.332 167.207 292.611V168.607C167.207 164.833 171.189 162.387 174.555 164.093L300.615 227.974C304.363 229.873 304.298 235.248 300.506 237.056Z" fill="currentColor"></path></svg></a><a href="https://substack.com/@activestate1" target="_blank" class="footer_social-link w-inline-block"><svg xmlns="http://www.w3.org/2000/svg" width="100%" viewBox="0 0 24 24" fill="none" class="icon"><path d="M3 1H21V3.32525H3V1Z" fill="currentColor"></path><path d="M3 5.65088H21V7.97611H3V5.65088Z" fill="currentColor"></path><path d="M3 10.3013V22.6465L12 16.6925L21 22.6465V10.3013H3Z" fill="currentColor"></path></svg></a><a href="https://medium.com/governed-at-the-source" target="_blank" class="footer_social-link w-inline-block"><svg xmlns="http://www.w3.org/2000/svg" width="100%" viewBox="0 0 800 800" fill="none" class="icon"><path d="M225.628 171.875C350.239 171.875 451.248 273.589 451.248 399.051C451.248 524.513 350.231 626.22 225.628 626.22C101.024 626.22 0 524.513 0 399.051C0 273.589 101.017 171.875 225.628 171.875ZM585.939 185.182C648.245 185.182 698.753 280.925 698.753 399.051H698.761C698.761 517.147 648.253 612.92 585.947 612.92C523.642 612.92 473.133 517.147 473.133 399.051C473.133 280.956 523.634 185.182 585.939 185.182ZM760.323 207.458C782.231 207.458 800 293.236 800 399.051C800 504.836 782.239 590.644 760.323 590.644C738.407 590.644 720.654 504.859 720.654 399.051C720.654 293.244 738.415 207.458 760.323 207.458Z" fill="currentColor"></path></svg></a><a href="https://substack.com/@activestate1" target="_blank" class="footer_social-link w-inline-block"></a></div></div><div class="footer_compliance"><img loading="lazy" src="https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb1/6a10aeb1e10df04aed1265a2_footer-badge2.png" alt="" class="footer-badge_logo"/><div class="footer-compliance_line"></div><img sizes="(max-width: 975px) 100vw, 975px" srcset="https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb1/6a10bd860a22dc4546881b0d_source-component-badge-p-500.webp 500w, https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb1/6a10bd860a22dc4546881b0d_source-component-badge-p-800.webp 800w, https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb1/6a10bd860a22dc4546881b0d_source-component-badge.webp 975w" alt="" src="https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb1/6a10bd860a22dc4546881b0d_source-component-badge.webp" loading="lazy" class="footer-badge_logo"/><div class="footer-compliance_line"></div><img loading="lazy" src="https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb1/6a26ab4335a49d638d2c9d06_GDPR-badge-300x300.webp" alt="" class="footer-badge_logo"/><div class="footer-compliance_line"></div><img loading="lazy" src="https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb1/6a10aeb14ec0843006d79f4e_footer-badge1.png" alt="" class="footer-badge_logo"/></div></div><div class="footer-top_right"><div class="footer-top_column"><div class="footer-column_heading">Product</div><div class="footer-column_links"><a href="/activestate-library" class="footer-link">ActiveState Library</a><a href="/curated-catalog" class="footer-link">Curated Catalog</a><a href="/secure-containers" class="footer-link">Secure Containers</a></div></div><div class="footer-top_column"><div class="footer-column_heading">Solutions</div><div class="footer-column_links"><a href="/for-security-teams" class="footer-link">For Security Teams</a><a href="/for-engineering-teams" class="footer-link">For Engineering Leaders</a><a href="/for-developers" class="footer-link">For Developers</a></div></div><div class="footer-top_column"><div class="footer-column_heading">Use Cases</div><div class="footer-column_links"><a href="/vulnerability-management" class="footer-link">Vulnerability Management</a><a href="/software-supply-chain-security" class="footer-link">Supply Chain Security</a><a href="/compliance-sbom" class="footer-link">Compliance &amp; SBOM</a></div></div><div class="footer-top_column"><div class="footer-column_heading">Languages</div><div class="footer-column_links is-languages"><a href="/platform/supported-languages/python" class="footer-link">Python</a><a href="/platform/supported-languages/java" class="footer-link">Java</a><a href="/platform/supported-languages/javascript" class="footer-link">JavaScript</a><a href="/platform/supported-languages/go" class="footer-link">Go</a><a href="/platform/supported-languages/r" class="footer-link">R</a><a href="/platform/supported-languages/c" class="footer-link">C / C++</a><a href="/platform/supported-languages/rust" class="footer-link">Rust</a><a href="/platform/supported-languages/net" class="footer-link">.NET</a><a href="/perl" class="footer-link">Perl</a><a href="/platform/supported-languages/legacy-languages" class="footer-link">Legacy Languages</a><a href="/supported-languages" class="footer-link">Supported Languages</a></div></div><div class="footer-top_column"><div class="footer-column_heading">Integrations</div><div class="footer-column_links"><a href="/platform/integrations/jfrog-artifactory" class="footer-link">JFrog Artifactory</a><a href="/platform/integrations/sonatype-nexus" class="footer-link">Sonatype Nexus</a><a href="/platform/integrations/kubernetes" class="footer-link">Kubernetes</a><a href="/platform/integrations/cloudera" class="footer-link">Cloudera</a><a href="/platform/integrations/ci-cd-pipelines" class="footer-link">CI/CD Pipelines</a><a href="/platform/integrations/ides" class="footer-link">IDEs</a><a href="/platform/integrations/trivy" class="footer-link">Trivy</a><a href="/platform/integrations/wiz" class="footer-link">Wiz</a></div></div><div class="footer-top_column"><div class="footer-column_heading">Company</div><div class="footer-column_links"><a href="/company/about-us" class="footer-link">About</a><a href="/why-activestate" class="footer-link">Why ActiveState</a><a href="/partners" class="footer-link">Partner with us</a><a href="/company/careers" class="footer-link">Careers</a><a href="/company/newsroom" class="footer-link">Press</a><a href="/company/contact-us" class="footer-link">Contact</a></div></div><div class="footer-top_column"><div class="footer-column_heading">Resources</div><div class="footer-column_links"><a href="/resources/blog" class="footer-link">Blog</a><a href="/resources/academy" class="footer-link">Academy</a><a href="https://docs.activestate.com" target="_blank" class="footer-link">Documentation</a><a href="/resources/case-studies" class="footer-link">Case Studies</a><a href="/resources/whitepapers" class="footer-link">Whitepapers</a><a href="https://trust.activestate.com/" class="footer-link">Trust Center</a><a href="/resources" class="footer-link">Resource Hub</a></div></div></div></div><div class="footer_bottom"><div class="footer_legal">
3130© 2026 ActiveState Software Inc. All rights reserved. ActiveState®, ActivePerl®, ActiveTcl®, ActivePython®, Komodo®, ActiveGo™, ActiveRuby™, ActiveNode™, ActiveLua™, and The Open Source Languages Company™ are all trademarks of ActiveState.</div><div class="footer_legal-links"><a fs-consent-element="open-preferences" href="#" target="_blank" class="footer_legal-link">Cookie Consent</a><a href="/eulas" target="_blank" class="footer_legal-link">Legal</a><a href="/company/privacy-policy" class="footer_legal-link">Privacy Policy</a><a href="/accessibility" class="footer_legal-link">Accessibility</a></div></div></div></div></div></footer></div>
3130<script src="https://d3e54v103j8qbb.cloudfront.net/js/jquery-3.5.1.min.dc5e7f18c8.js?site=6a0dc648b0f944cab4dc0cb1" type="text/javascript" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script>
3130<script src="https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb1/js/webflow.schunk.f2efb3c5440a81cf.js" type="text/javascript" integrity="sha384-VK02VJvMib7ytrF5M2joPWNtDQs366FZgEQ5B+Iwnjx0WBnwQXfootyziSYxdrmS" crossorigin="anonymous"></script>
3130<script src="https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb1/js/webflow.4cc304e8.1524c9732310d729.js" type="text/javascript" integrity="sha384-rpcvZe38EeDL9DMIqNElNp61kz9Isa5DTnn8qR3+LakG299l2gtjXNncf0sec65V" crossorigin="anonymous"></script>
3130
3131
3132<script>
3133  // Get the element with id "year" and set it to the current year
3134document.getElementById('year').textContent = new Date().getFullYear();
3135</script>
3135
3136
3137<script>
3138window.Webflow.push(function () {
3139  var icon = document.querySelector('.navbar-banner_icon');
3140  var wrapper = document.querySelector('.navbar_banner-wrapper');
3141  var hero = document.querySelector('[data-wf--padding-vertical--variant="hero"]');
3142
3143  if (!icon || !wrapper) return;
3144
3145  // Banner already hidden from a previous visit — nothing to wire up
3146  if (localStorage.getItem('bannerClosed') === '1') return;
3147
3148  // Allow height to animate smoothly
3149  wrapper.style.overflow = 'hidden';
3150  wrapper.style.transition = 'height 0.4s ease';
3151
3152  // Prep the hero padding transition to sync with the banner collapse
3153  if (hero) {
3154    var currentPadding = parseFloat(window.getComputedStyle(hero).paddingTop);
3155    hero.style.paddingTop = currentPadding + 'px'; // pin computed value so transition works
3156    hero.style.transition = 'padding-top 0.4s ease';
3157  }
3158
3159  icon.addEventListener('click', function () {
3160    // Pin the current height so the browser has a concrete value to transition from
3161    wrapper.style.height = wrapper.offsetHeight + 'px';
3162
3163    // Double rAF ensures the pinned height is committed before we animate to 0
3164    requestAnimationFrame(function () {
3165      requestAnimationFrame(function () {
3166        wrapper.style.height = '0px';
3167
3168        // Decrease hero top padding by 3.25rem in sync with the banner collapsing
3169        if (hero) {
3170          var rootFontSize = parseFloat(window.getComputedStyle(document.documentElement).fontSize);
3171          hero.style.paddingTop = (currentPadding - (3.25 * rootFontSize)) + 'px';
3172        }
3173
3174        // After the animation finishes, remove from layout and save the closed state
3175        wrapper.addEventListener('transitionend', function () {
3176          wrapper.style.display = 'none';
3177        }, { once: true });
3178
3179        localStorage.setItem('bannerClosed', '1');
3180      });
3181    });
3182  });
3183});
3184</script>
3184</body></html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.